@datalayer/jupyter-react 1.0.7 → 1.1.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 (249) hide show
  1. package/lib/app/JupyterReact.js +2 -2
  2. package/lib/app/JupyterReact.js.map +1 -1
  3. package/lib/app/tabs/ComponentsTab.js.map +1 -1
  4. package/lib/app/tabs/components/FileBrowserComponent.js +1 -3
  5. package/lib/app/tabs/components/FileBrowserComponent.js.map +1 -1
  6. package/lib/app/tabs/components/IPyWidgetsComponent.js +1 -1
  7. package/lib/app/tabs/components/IPyWidgetsComponent.js.map +1 -1
  8. package/lib/components/cell/Cell.js +2 -2
  9. package/lib/components/cell/Cell.js.map +1 -1
  10. package/lib/components/cell/CellAdapter.js +14 -11
  11. package/lib/components/cell/CellAdapter.js.map +1 -1
  12. package/lib/components/cell/CellState.js +2 -2
  13. package/lib/components/cell/CellState.js.map +1 -1
  14. package/lib/components/codemirror/{CodeMirrorDatalayerEditor.d.ts → CodeMirrorEditor.d.ts} +12 -1
  15. package/lib/components/codemirror/{CodeMirrorDatalayerEditor.js → CodeMirrorEditor.js} +5 -3
  16. package/lib/components/codemirror/CodeMirrorEditor.js.map +1 -0
  17. package/lib/components/codemirror/index.d.ts +2 -1
  18. package/lib/components/codemirror/index.js +2 -1
  19. package/lib/components/codemirror/index.js.map +1 -1
  20. package/lib/components/console/ConsoleAdapter.js.map +1 -1
  21. package/lib/components/console/ConsoleState.js.map +1 -1
  22. package/lib/components/filebrowser/FileBrowser.js +1 -1
  23. package/lib/components/filebrowser/FileBrowser.js.map +1 -1
  24. package/lib/components/index.d.ts +1 -0
  25. package/lib/components/index.js +1 -1
  26. package/lib/components/index.js.map +1 -1
  27. package/lib/components/jupyterlab/JupyterLabApp.js +5 -4
  28. package/lib/components/jupyterlab/JupyterLabApp.js.map +1 -1
  29. package/lib/components/jupyterlab/JupyterLabAppAdapter.js +6 -4
  30. package/lib/components/jupyterlab/JupyterLabAppAdapter.js.map +1 -1
  31. package/lib/components/jupyterlab/JupyterLabAppPlugins.js.map +1 -1
  32. package/lib/components/kernel/KernelDetective.d.ts +1 -1
  33. package/lib/components/kernel/KernelDetective.js +5 -6
  34. package/lib/components/kernel/KernelDetective.js.map +1 -1
  35. package/lib/components/kernel/KernelSelector.js +6 -6
  36. package/lib/components/kernel/KernelSelector.js.map +1 -1
  37. package/lib/components/kernel/Kernelndicator.js +5 -3
  38. package/lib/components/kernel/Kernelndicator.js.map +1 -1
  39. package/lib/components/kernel/Kernels.js +1 -1
  40. package/lib/components/kernel/Kernels.js.map +1 -1
  41. package/lib/components/kernel/inspector/widget.js.map +1 -1
  42. package/lib/components/lumino/Lumino.js +32 -6
  43. package/lib/components/lumino/Lumino.js.map +1 -1
  44. package/lib/components/notebook/Notebook.d.ts +3 -3
  45. package/lib/components/notebook/Notebook.js +86 -111
  46. package/lib/components/notebook/Notebook.js.map +1 -1
  47. package/lib/components/notebook/Notebook2.d.ts +5 -5
  48. package/lib/components/notebook/Notebook2.js +8 -6
  49. package/lib/components/notebook/Notebook2.js.map +1 -1
  50. package/lib/components/notebook/Notebook2Base.d.ts +18 -6
  51. package/lib/components/notebook/Notebook2Base.js +47 -103
  52. package/lib/components/notebook/Notebook2Base.js.map +1 -1
  53. package/lib/components/notebook/NotebookAdapter.js +61 -49
  54. package/lib/components/notebook/NotebookAdapter.js.map +1 -1
  55. package/lib/components/notebook/NotebookCommands.js +1 -1
  56. package/lib/components/notebook/NotebookCommands.js.map +1 -1
  57. package/lib/components/notebook/NotebookExtensions.d.ts +5 -5
  58. package/lib/components/notebook/NotebookState.js +34 -10
  59. package/lib/components/notebook/NotebookState.js.map +1 -1
  60. package/lib/components/notebook/cell/prompt/Countdown.js.map +1 -1
  61. package/lib/components/notebook/cell/sidebar/CellSidebarButton.js +4 -4
  62. package/lib/components/notebook/cell/sidebar/CellSidebarButton.js.map +1 -1
  63. package/lib/components/notebook/cell/sidebar/CellSidebarExtension.d.ts +3 -3
  64. package/lib/components/notebook/cell/sidebar/CellSidebarExtension.js.map +1 -1
  65. package/lib/components/notebook/model/JupyterReactNotebookModelFactory.js +1 -1
  66. package/lib/components/notebook/model/JupyterReactNotebookModelFactory.js.map +1 -1
  67. package/lib/components/output/Output.js +6 -6
  68. package/lib/components/output/Output.js.map +1 -1
  69. package/lib/components/output/OutputAdapter.js +1 -1
  70. package/lib/components/output/OutputAdapter.js.map +1 -1
  71. package/lib/components/output/OutputState.js.map +1 -1
  72. package/lib/components/terminal/TerminalAdapter.js +24 -3
  73. package/lib/components/terminal/TerminalAdapter.js.map +1 -1
  74. package/lib/components/terminal/TerminalState.js.map +1 -1
  75. package/lib/components/utils/SpinnerCentered.js +2 -2
  76. package/lib/components/utils/SpinnerCentered.js.map +1 -1
  77. package/lib/examples/Cell.js +1 -1
  78. package/lib/examples/Cell.js.map +1 -1
  79. package/lib/examples/Cells.js.map +1 -1
  80. package/lib/examples/CellsExecute.js +2 -2
  81. package/lib/examples/CellsExecute.js.map +1 -1
  82. package/lib/examples/FileBrowser.js +1 -4
  83. package/lib/examples/FileBrowser.js.map +1 -1
  84. package/lib/examples/JupyterLabApp.js +1 -7
  85. package/lib/examples/JupyterLabApp.js.map +1 -1
  86. package/lib/examples/JupyterLabAppHeadless.js +3 -8
  87. package/lib/examples/JupyterLabAppHeadless.js.map +1 -1
  88. package/lib/examples/JupyterLabAppHeadlessServerless.js +3 -8
  89. package/lib/examples/JupyterLabAppHeadlessServerless.js.map +1 -1
  90. package/lib/examples/JupyterLabAppServerless.js +1 -3
  91. package/lib/examples/JupyterLabAppServerless.js.map +1 -1
  92. package/lib/examples/JupyterLabAppServiceManager.js +1 -3
  93. package/lib/examples/JupyterLabAppServiceManager.js.map +1 -1
  94. package/lib/examples/JupyterLabTheme.js +16 -14
  95. package/lib/examples/JupyterLabTheme.js.map +1 -1
  96. package/lib/examples/KernelExecute.js +3 -2
  97. package/lib/examples/KernelExecute.js.map +1 -1
  98. package/lib/examples/KernelExecutor.js.map +1 -1
  99. package/lib/examples/Kernels.js +2 -2
  100. package/lib/examples/Kernels.js.map +1 -1
  101. package/lib/examples/Notebook2.js +4 -7
  102. package/lib/examples/Notebook2.js.map +1 -1
  103. package/lib/examples/Notebook2Collaborative.js +23 -0
  104. package/lib/examples/Notebook2Collaborative.js.map +1 -0
  105. package/lib/examples/NotebookCollaborative.js +4 -1
  106. package/lib/examples/NotebookCollaborative.js.map +1 -1
  107. package/lib/examples/NotebookColormode.js.map +1 -1
  108. package/lib/examples/NotebookExtension.js +1 -1
  109. package/lib/examples/NotebookExtension.js.map +1 -1
  110. package/lib/examples/NotebookKernel.js +1 -1
  111. package/lib/examples/NotebookKernel.js.map +1 -1
  112. package/lib/examples/NotebookKernelChange.js +2 -3
  113. package/lib/examples/NotebookKernelChange.js.map +1 -1
  114. package/lib/examples/NotebookLite.js.map +1 -1
  115. package/lib/examples/NotebookNbformat.js +3 -6
  116. package/lib/examples/NotebookNbformat.js.map +1 -1
  117. package/lib/examples/NotebookNbformatChange.js +6 -1
  118. package/lib/examples/NotebookNbformatChange.js.map +1 -1
  119. package/lib/examples/NotebookPathChange.js +6 -1
  120. package/lib/examples/NotebookPathChange.js.map +1 -1
  121. package/lib/examples/Output.js +1 -2
  122. package/lib/examples/Output.js.map +1 -1
  123. package/lib/examples/OutputIPyWidgets.js +3 -2
  124. package/lib/examples/OutputIPyWidgets.js.map +1 -1
  125. package/lib/examples/RunningSessions.js +2 -6
  126. package/lib/examples/RunningSessions.js.map +1 -1
  127. package/lib/examples/Viewer.js.map +1 -1
  128. package/lib/examples/extensions/cellsidebars/CellSidebarSource.js +2 -2
  129. package/lib/examples/extensions/cellsidebars/CellSidebarSource.js.map +1 -1
  130. package/lib/examples/extensions/celltoolbar/CellToolbar.d.ts +2 -2
  131. package/lib/examples/extensions/celltoolbar/CellToolbar.js.map +1 -1
  132. package/lib/examples/extensions/celltoolbar/CellToolbarComponent.d.ts +2 -2
  133. package/lib/examples/extensions/celltoolbar/CellToolbarComponent.js.map +1 -1
  134. package/lib/examples/extensions/celltoolbar/CellToolbarExtension.d.ts +3 -3
  135. package/lib/examples/extensions/celltoolbar/CellToolbarExtension.js.map +1 -1
  136. package/lib/examples/extensions/celltoolbar/CellToolbarWidget.d.ts +2 -2
  137. package/lib/examples/extensions/celltoolbar/CellToolbarWidget.js +1 -2
  138. package/lib/examples/extensions/celltoolbar/CellToolbarWidget.js.map +1 -1
  139. package/lib/examples/extensions/exectime/ExecTimeExtension.d.ts +3 -3
  140. package/lib/examples/extensions/exectime/ExecTimeExtension.js +1 -2
  141. package/lib/examples/extensions/exectime/ExecTimeExtension.js.map +1 -1
  142. package/lib/examples/extensions/exectime/ExecTimeWidget.js +1 -1
  143. package/lib/examples/extensions/exectime/ExecTimeWidget.js.map +1 -1
  144. package/lib/examples/extensions/exectime/utils.js +6 -1
  145. package/lib/examples/extensions/exectime/utils.js.map +1 -1
  146. package/lib/examples/extensions/toc/TocExtension.d.ts +3 -3
  147. package/lib/examples/extensions/toc/TocExtension.js +2 -2
  148. package/lib/examples/extensions/toc/TocExtension.js.map +1 -1
  149. package/lib/examples/notebooks/Lite.ipynb.json +10 -28
  150. package/lib/examples/notebooks/NotebookExample1.ipynb.json +3 -11
  151. package/lib/examples/notebooks/NotebookOutputs.ipynb.json +3 -9
  152. package/lib/examples/notebooks/NotebookToCExample.ipynb.json +7 -22
  153. package/lib/examples/toolbars/NotebookToolbarAutoSave.js.map +1 -1
  154. package/lib/index.d.ts +0 -1
  155. package/lib/index.js +0 -1
  156. package/lib/index.js.map +1 -1
  157. package/lib/jupyter/Jupyter.js +3 -2
  158. package/lib/jupyter/Jupyter.js.map +1 -1
  159. package/lib/jupyter/JupyterConfig.js +16 -63
  160. package/lib/jupyter/JupyterConfig.js.map +1 -1
  161. package/lib/jupyter/JupyterContext.js +4 -3
  162. package/lib/jupyter/JupyterContext.js.map +1 -1
  163. package/lib/jupyter/JupyterDefaults.js.map +1 -1
  164. package/lib/jupyter/collaboration/CollaborationContext.d.ts +70 -0
  165. package/lib/jupyter/collaboration/CollaborationContext.js +110 -0
  166. package/lib/jupyter/collaboration/CollaborationContext.js.map +1 -0
  167. package/lib/jupyter/collaboration/ICollaborationProvider.d.ts +120 -0
  168. package/lib/jupyter/collaboration/ICollaborationProvider.js +93 -0
  169. package/lib/jupyter/collaboration/ICollaborationProvider.js.map +1 -0
  170. package/lib/jupyter/collaboration/JupyterCollaboration.d.ts +1 -1
  171. package/lib/jupyter/collaboration/JupyterCollaboration.js +1 -1
  172. package/lib/jupyter/collaboration/JupyterCollaboration.js.map +1 -1
  173. package/lib/jupyter/collaboration/index.d.ts +3 -2
  174. package/lib/jupyter/collaboration/index.js +3 -2
  175. package/lib/jupyter/collaboration/index.js.map +1 -1
  176. package/lib/jupyter/collaboration/providers/JupyterCollaborationProvider.d.ts +38 -0
  177. package/lib/jupyter/collaboration/providers/JupyterCollaborationProvider.js +98 -0
  178. package/lib/jupyter/collaboration/providers/JupyterCollaborationProvider.js.map +1 -0
  179. package/lib/jupyter/collaboration/providers/NoOpCollaborationProvider.d.ts +23 -0
  180. package/lib/jupyter/collaboration/providers/NoOpCollaborationProvider.js +39 -0
  181. package/lib/jupyter/collaboration/providers/NoOpCollaborationProvider.js.map +1 -0
  182. package/lib/jupyter/collaboration/providers/index.d.ts +2 -0
  183. package/lib/jupyter/collaboration/providers/index.js +8 -0
  184. package/lib/jupyter/collaboration/providers/index.js.map +1 -0
  185. package/lib/jupyter/ipywidgets/classic/htmlmanager.d.ts +1 -1
  186. package/lib/jupyter/ipywidgets/classic/htmlmanager.js +4 -4
  187. package/lib/jupyter/ipywidgets/classic/htmlmanager.js.map +1 -1
  188. package/lib/jupyter/ipywidgets/classic/manager.js +2 -1
  189. package/lib/jupyter/ipywidgets/classic/manager.js.map +1 -1
  190. package/lib/jupyter/ipywidgets/lab/manager.js +1 -1
  191. package/lib/jupyter/ipywidgets/lab/manager.js.map +1 -1
  192. package/lib/jupyter/ipywidgets/lab/renderer.js +2 -1
  193. package/lib/jupyter/ipywidgets/lab/renderer.js.map +1 -1
  194. package/lib/jupyter/ipywidgets/libembed-amd.js +4 -3
  195. package/lib/jupyter/ipywidgets/libembed-amd.js.map +1 -1
  196. package/lib/jupyter/ipywidgets/libembed.js +3 -2
  197. package/lib/jupyter/ipywidgets/libembed.js.map +1 -1
  198. package/lib/jupyter/ipywidgets/mimetypes.js.map +1 -1
  199. package/lib/jupyter/ipywidgets/semvercache.js.map +1 -1
  200. package/lib/jupyter/kernel/Kernel.js.map +1 -1
  201. package/lib/jupyter/kernel/KernelExecutor.js +6 -3
  202. package/lib/jupyter/kernel/KernelExecutor.js.map +1 -1
  203. package/lib/jupyter/kernel/KernelState.js +1 -1
  204. package/lib/jupyter/kernel/KernelState.js.map +1 -1
  205. package/lib/jupyter/lite/LiteServer.js +1 -1
  206. package/lib/jupyter/lite/LiteServer.js.map +1 -1
  207. package/lib/jupyter/services/ServiceManagerLess.js +15 -14
  208. package/lib/jupyter/services/ServiceManagerLess.js.map +1 -1
  209. package/lib/jupyter/services/ServiceManagerLite.js +2 -2
  210. package/lib/jupyter/services/ServiceManagerLite.js.map +1 -1
  211. package/lib/state/JupyterReactState.d.ts +0 -3
  212. package/lib/state/JupyterReactState.js +7 -20
  213. package/lib/state/JupyterReactState.js.map +1 -1
  214. package/lib/state/index.d.ts +1 -2
  215. package/lib/state/index.js +1 -2
  216. package/lib/state/index.js.map +1 -1
  217. package/lib/theme/JupyterLabCss.d.ts +9 -9
  218. package/lib/theme/JupyterLabCss.js +9 -11
  219. package/lib/theme/JupyterLabCss.js.map +1 -1
  220. package/lib/theme/JupyterReactTheme.js.map +1 -1
  221. package/lib/theme/themes/JupyterLabTheme.js.map +1 -1
  222. package/lib/utils/cursorExtension.js +2 -2
  223. package/lib/utils/cursorExtension.js.map +1 -1
  224. package/package.json +2 -3
  225. package/lib/components/codemirror/CodeMirrorDatalayerEditor.js.map +0 -1
  226. package/lib/examples/NotebookMutationsKernel.js +0 -119
  227. package/lib/examples/NotebookMutationsKernel.js.map +0 -1
  228. package/lib/examples/NotebookMutationsServiceManager.d.ts +0 -1
  229. package/lib/examples/NotebookMutationsServiceManager.js +0 -124
  230. package/lib/examples/NotebookMutationsServiceManager.js.map +0 -1
  231. package/lib/jupyter/collaboration/DatalayerCollaboration.d.ts +0 -9
  232. package/lib/jupyter/collaboration/DatalayerCollaboration.js +0 -30
  233. package/lib/jupyter/collaboration/DatalayerCollaboration.js.map +0 -1
  234. package/lib/jupyter/collaboration/ICollaborative.d.ts +0 -36
  235. package/lib/jupyter/collaboration/ICollaborative.js +0 -7
  236. package/lib/jupyter/collaboration/ICollaborative.js.map +0 -1
  237. package/lib/providers/index.d.ts +0 -1
  238. package/lib/providers/index.js +0 -7
  239. package/lib/providers/index.js.map +0 -1
  240. package/lib/providers/kernels/DatalayerKernels.d.ts +0 -25
  241. package/lib/providers/kernels/DatalayerKernels.js +0 -58
  242. package/lib/providers/kernels/DatalayerKernels.js.map +0 -1
  243. package/lib/providers/kernels/index.d.ts +0 -1
  244. package/lib/providers/kernels/index.js +0 -7
  245. package/lib/providers/kernels/index.js.map +0 -1
  246. package/lib/state/IDatalayerConfig.d.ts +0 -22
  247. package/lib/state/IDatalayerConfig.js +0 -7
  248. package/lib/state/IDatalayerConfig.js.map +0 -1
  249. /package/lib/examples/{NotebookMutationsKernel.d.ts → Notebook2Collaborative.d.ts} +0 -0
@@ -4,21 +4,17 @@
4
4
  * MIT License
5
5
  */
6
6
  import { PageConfig } from '@jupyterlab/coreutils';
7
- import { DEFAULT_JUPYTER_SERVER_URL, DEFAULT_JUPYTER_SERVER_TOKEN, DEFAULT_API_KERNEL_PREFIX_URL } from './JupyterDefaults';
7
+ import { DEFAULT_JUPYTER_SERVER_URL, DEFAULT_JUPYTER_SERVER_TOKEN, DEFAULT_API_KERNEL_PREFIX_URL, } from './JupyterDefaults';
8
8
  /**
9
9
  * The current Jupyter configuration.
10
10
  */
11
11
  let config = undefined;
12
- /**
13
- * Datalayer configuration is loaded.
14
- */
15
- let datalayerConfigLoaded = false;
16
12
  /**
17
13
  * Setter for jupyterServerUrl.
18
14
  */
19
15
  export const setJupyterServerUrl = (jupyterServerUrl) => {
20
16
  if (!config) {
21
- throw new Error("Jupyter React Config must be loaded first.");
17
+ throw new Error('Jupyter React Config must be loaded first.');
22
18
  }
23
19
  PageConfig.setOption('baseUrl', jupyterServerUrl);
24
20
  PageConfig.setOption('wsUrl', jupyterServerUrl.replace(/^http/, 'ws'));
@@ -29,7 +25,7 @@ export const setJupyterServerUrl = (jupyterServerUrl) => {
29
25
  */
30
26
  export const getJupyterServerUrl = () => {
31
27
  if (!config) {
32
- throw new Error("Jupyter React Config must be loaded first.");
28
+ throw new Error('Jupyter React Config must be loaded first.');
33
29
  }
34
30
  return config.jupyterServerUrl;
35
31
  };
@@ -38,7 +34,7 @@ export const getJupyterServerUrl = () => {
38
34
  */
39
35
  export const setJupyterServerToken = (jupyterServerToken) => {
40
36
  if (!config) {
41
- throw new Error("Jupyter React Config must be loaded first.");
37
+ throw new Error('Jupyter React Config must be loaded first.');
42
38
  }
43
39
  PageConfig.setOption('token', jupyterServerToken);
44
40
  config.jupyterServerToken = jupyterServerToken;
@@ -48,40 +44,10 @@ export const setJupyterServerToken = (jupyterServerToken) => {
48
44
  */
49
45
  export const getJupyterServerToken = () => {
50
46
  if (!config) {
51
- throw new Error("Jupyter React Config must be loaded first.");
47
+ throw new Error('Jupyter React Config must be loaded first.');
52
48
  }
53
49
  return config.jupyterServerToken;
54
50
  };
55
- /**
56
- * Get the datalayer configuration fully
57
- * or for a particular parameter.
58
- *
59
- * @param name The parameter name
60
- * @returns The parameter value if {@link name} is specified, otherwise the full configuration.
61
- */
62
- function loadDatalayerConfig(name) {
63
- if (!datalayerConfigLoaded) {
64
- const datalayerConfigData = document.getElementById('datalayer-config-data');
65
- if (datalayerConfigData?.textContent) {
66
- console.log('Found Datalayer config data in page', datalayerConfigData);
67
- try {
68
- config = {
69
- ...config,
70
- ...JSON.parse(datalayerConfigData.textContent)
71
- };
72
- datalayerConfigLoaded = true;
73
- }
74
- catch (error) {
75
- console.error('Failed to parse the Datalayer configuration.', error);
76
- }
77
- }
78
- else {
79
- console.log('No Datalayer config data found in page');
80
- }
81
- }
82
- // @ts-expect-error IJupyterConfig does not have index signature
83
- return name ? config[name] : config;
84
- }
85
51
  /**
86
52
  * Method to load the Jupyter configuration from the host HTML page.
87
53
  */
@@ -106,32 +72,19 @@ export const loadJupyterConfig = (props = {}) => {
106
72
  }
107
73
  // Hub related information ('hubHost' 'hubPrefix' 'hubUser' ,'hubServerName').
108
74
  config.insideJupyterHub = PageConfig.getOption('hubHost') !== '';
109
- // Load the Datalayer config.
110
- loadDatalayerConfig();
111
- if (datalayerConfigLoaded) {
112
- // There is a Datalayer config, mix the configs...
113
- setJupyterServerUrl(jupyterServerUrl || config.jupyterServerUrl);
114
- setJupyterServerToken(jupyterServerToken || config.jupyterServerToken);
75
+ // Look for a Jupyter config...
76
+ if (jupyterConfig) {
77
+ setJupyterServerUrl(jupyterServerUrl ??
78
+ jupyterConfig.baseUrl ??
79
+ location.protocol + '//' + location.host + jupyterConfig.baseUrl);
80
+ setJupyterServerToken(jupyterServerToken ?? jupyterConfig.token ?? '');
115
81
  }
116
82
  else {
117
- // No Datalayer config, look for a Jupyter config...
118
- if (jupyterConfig) {
119
- setJupyterServerUrl(jupyterServerUrl ??
120
- jupyterConfig.jupyterServerUrl ??
121
- location.protocol + '//' + location.host + jupyterConfig.baseUrl);
122
- setJupyterServerToken(jupyterServerToken ??
123
- jupyterConfig.token ??
124
- '');
125
- }
126
- else {
127
- // No Datalayer and no Jupyter config, rely on location...
128
- setJupyterServerUrl(jupyterServerUrl ??
129
- config.jupyterServerUrl ??
130
- location.protocol + '//' + location.host + DEFAULT_API_KERNEL_PREFIX_URL);
131
- setJupyterServerToken(jupyterServerToken ??
132
- config.jupyterServerToken ??
133
- '');
134
- }
83
+ // No Jupyter config, rely on location...
84
+ setJupyterServerUrl(jupyterServerUrl ??
85
+ config.jupyterServerUrl ??
86
+ location.protocol + '//' + location.host + DEFAULT_API_KERNEL_PREFIX_URL);
87
+ setJupyterServerToken(jupyterServerToken ?? config.jupyterServerToken ?? '');
135
88
  }
136
89
  if (lite) {
137
90
  setJupyterServerUrl(location.protocol + '//' + location.host);
@@ -1 +1 @@
1
- {"version":3,"file":"JupyterConfig.js","sourceRoot":"","sources":["../../src/jupyter/JupyterConfig.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"JupyterConfig.js","sourceRoot":"","sources":["../../src/jupyter/JupyterConfig.ts"],"names":[],"mappings":"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"}
@@ -5,7 +5,7 @@ import { jsxs as _jsxs } from "react/jsx-runtime";
5
5
  * MIT License
6
6
  */
7
7
  import { createContext, useContext } from 'react';
8
- import { ServerConnection } from '@jupyterlab/services';
8
+ import { ServerConnection, } from '@jupyterlab/services';
9
9
  import { useJupyterReactStoreFromProps } from '../state';
10
10
  import { requestAPI } from './JupyterHandlers';
11
11
  /**
@@ -25,6 +25,8 @@ const JupyterProvider = JupyterContext.Provider;
25
25
  */
26
26
  export const useJupyter = (props) => {
27
27
  const context = useContext(JupyterContext);
28
+ // Always call the hook, but only use its result if there's no context
29
+ const { jupyterConfig, kernel, kernelIsLoading, serviceManager } = useJupyterReactStoreFromProps(props ?? {});
28
30
  if (context) {
29
31
  // We are within a React Context, just return the JupyterContext.
30
32
  // The provided props are irrelevant in this case.
@@ -32,7 +34,6 @@ export const useJupyter = (props) => {
32
34
  }
33
35
  // We are not within a React Context....
34
36
  // so create a JupyterContext from the store based on the provided props.
35
- const { jupyterConfig, kernel, kernelIsLoading, serviceManager, } = useJupyterReactStoreFromProps(props ?? {});
36
37
  const storeContext = {
37
38
  defaultKernel: kernel,
38
39
  jupyterServerUrl: jupyterConfig.jupyterServerUrl,
@@ -79,7 +80,7 @@ export const createServerSettings = (jupyterServerUrl, jupyterServerToken) => {
79
80
  /**
80
81
  * The Jupyter context provider.
81
82
  */
82
- export const JupyterContextProvider = (props) => {
83
+ export const JupyterContextProvider = props => {
83
84
  const { children, skeleton } = props;
84
85
  const { jupyterServerUrl, kernel, kernelIsLoading, lite, serverSettings, serviceManager, } = useJupyter(props);
85
86
  return (_jsxs(JupyterProvider, { value: {
@@ -1 +1 @@
1
- {"version":3,"file":"JupyterContext.js","sourceRoot":"","sources":["../../src/jupyter/JupyterContext.tsx"],"names":[],"mappings":";AAAA;;;;GAIG;AAEH,OAAc,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AACzD,OAAO,EAA2B,gBAAgB,EAAkB,MAAM,sBAAsB,CAAC;AACjG,OAAO,EAAE,6BAA6B,EAAE,MAAM,UAAU,CAAC;AACzD,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AA0I/C;;GAEG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,aAAa,CACzC,SAAS,CACV,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG,cAAc,CAAC,QAAQ,CAAC;AAE9D;;GAEG;AACH,MAAM,eAAe,GAAG,cAAc,CAAC,QAAQ,CAAC;AAEhD;;GAEG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,KAAwB,EAAsB,EAAE;IACzE,MAAM,OAAO,GAAG,UAAU,CAAC,cAAc,CAAC,CAAC;IAC3C,IAAI,OAAO,EAAE,CAAC;QACZ,iEAAiE;QACjE,kDAAkD;QAClD,OAAO,OAAO,CAAC;IACjB,CAAC;IACD,wCAAwC;IACxC,yEAAyE;IACzE,MAAM,EACJ,aAAa,EACb,MAAM,EACN,eAAe,EACf,cAAc,GACf,GAAG,6BAA6B,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC;IAC/C,MAAM,YAAY,GAAuB;QACvC,aAAa,EAAE,MAAM;QACrB,gBAAgB,EAAE,aAAc,CAAC,gBAAgB;QACjD,MAAM;QACN,eAAe;QACf,aAAa,EAAE,cAAc,EAAE,OAAO;QACtC,IAAI,EAAE,KAAK,EAAE,IAAI;QACjB,UAAU,EAAE,KAAK,EAAE,UAAU,IAAI,KAAK;QACtC,cAAc,EAAE,cAAc,EAAE,cAAc;QAC9C,cAAc;KACf,CAAA;IACD,OAAO,YAAY,CAAC;AACtB,CAAC,CAAC;AAEF;;;GAGG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,KAAK,EACpC,cAA0C,EACxB,EAAE;IACpB,IAAI,CAAC;QACH,MAAM,UAAU,CAAM,cAAc,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC;QACjD,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,OAAO,MAAM,EAAE,CAAC;QAChB,OAAO,CAAC,GAAG,CAAC,+CAA+C,EAAE,MAAM,CAAC,CAAC;QACrE,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,gBAAwB,EAAE,kBAA0B,EAAE,EAAE;IAC3F,OAAO,gBAAgB,CAAC,YAAY,CAAC;QACnC,OAAO,EAAE,gBAAgB;QACzB,KAAK,EAAE,gBAAgB,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC;QAC9C,KAAK,EAAE,kBAAkB;QACzB,WAAW,EAAE,IAAI;QACjB,IAAI,EAAE;YACJ,IAAI,EAAE,MAAM;YACZ,WAAW,EAAE,SAAS;YACtB,KAAK,EAAE,UAAU;SAClB;KACF,CAAC,CAAC;AACL,CAAC,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAkC,CAAC,KAAK,EAAE,EAAE;IAC7E,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,KAAK,CAAC;IACrC,MAAM,EACJ,gBAAgB,EAChB,MAAM,EACN,eAAe,EACf,IAAI,EACJ,cAAc,EACd,cAAc,GACf,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC;IACtB,OAAO,CACL,MAAC,eAAe,IACd,KAAK,EAAE;YACL,aAAa,EAAE,MAAM;YACrB,sHAAsH;YACtH,gBAAgB;YAChB,MAAM;YACN,eAAe;YACf,aAAa,EAAE,cAAc,EAAE,OAAO;YACtC,IAAI;YACJ,cAAc;YACd,UAAU,EAAE,KAAK,CAAC,UAAU,IAAI,KAAK;YACrC,cAAc;SACf,aAEC,eAAe,IAAI,QAAQ,EAC3B,QAAQ,IACM,CACnB,CAAC;AAEJ,CAAC,CAAA"}
1
+ {"version":3,"file":"JupyterContext.js","sourceRoot":"","sources":["../../src/jupyter/JupyterContext.tsx"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"JupyterDefaults.js","sourceRoot":"","sources":["../../src/jupyter/JupyterDefaults.tsx"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,MAAM,CAAC,MAAM,0BAA0B,GAAG,8CAA8C,CAAC;AAEzF,MAAM,CAAC,MAAM,4BAA4B,GAAG,kEAAkE,CAAC;AAE/G;;GAEG;AACH,MAAM,CAAC,MAAM,6BAA6B,GAAG,qBAAqB,CAAC;AAEnE,MAAM,CAAC,MAAM,mBAAmB,GAAG,QAAQ,CAAC"}
1
+ {"version":3,"file":"JupyterDefaults.js","sourceRoot":"","sources":["../../src/jupyter/JupyterDefaults.tsx"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,MAAM,CAAC,MAAM,0BAA0B,GACrC,8CAA8C,CAAC;AAEjD,MAAM,CAAC,MAAM,4BAA4B,GACvC,kEAAkE,CAAC;AAErE;;GAEG;AACH,MAAM,CAAC,MAAM,6BAA6B,GAAG,qBAAqB,CAAC;AAEnE,MAAM,CAAC,MAAM,mBAAmB,GAAG,QAAQ,CAAC"}
@@ -0,0 +1,70 @@
1
+ import React from 'react';
2
+ import { YNotebook } from '@jupyter/ydoc';
3
+ import { ICollaborationProvider, CollaborationStatus } from './ICollaborationProvider';
4
+ /**
5
+ * Collaboration context value
6
+ */
7
+ export interface ICollaborationContext {
8
+ /**
9
+ * The collaboration provider instance
10
+ */
11
+ provider: ICollaborationProvider | null;
12
+ /**
13
+ * Current connection status
14
+ */
15
+ status: CollaborationStatus;
16
+ /**
17
+ * Whether the provider is connected
18
+ */
19
+ isConnected: boolean;
20
+ /**
21
+ * Whether the document is synchronized
22
+ */
23
+ isSynced: boolean;
24
+ /**
25
+ * Error if any
26
+ */
27
+ error: Error | null;
28
+ /**
29
+ * Connect to collaboration service
30
+ */
31
+ connect: (sharedModel: YNotebook, documentId: string, options?: Record<string, any>) => Promise<void>;
32
+ /**
33
+ * Disconnect from collaboration service
34
+ */
35
+ disconnect: () => void;
36
+ }
37
+ /**
38
+ * Props for CollaborationProvider component
39
+ */
40
+ export interface ICollaborationProviderProps {
41
+ /**
42
+ * Collaboration provider instance
43
+ */
44
+ provider?: ICollaborationProvider;
45
+ /**
46
+ * Children components
47
+ */
48
+ children: React.ReactNode;
49
+ }
50
+ /**
51
+ * Collaboration provider component
52
+ *
53
+ * This component provides collaboration context to its children.
54
+ */
55
+ export declare function CollaborationProvider({ provider: providerProp, children, }: ICollaborationProviderProps): JSX.Element;
56
+ /**
57
+ * Hook to use collaboration context
58
+ *
59
+ * @returns The collaboration context value
60
+ * @throws Error if used outside of CollaborationProvider
61
+ */
62
+ export declare function useCollaboration(): ICollaborationContext;
63
+ /**
64
+ * Hook to get collaboration status
65
+ */
66
+ export declare function useCollaborationStatus(): CollaborationStatus;
67
+ /**
68
+ * Hook to check if collaboration is connected
69
+ */
70
+ export declare function useIsCollaborationConnected(): boolean;
@@ -0,0 +1,110 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ /*
3
+ * Copyright (c) 2021-2023 Datalayer, Inc.
4
+ *
5
+ * MIT License
6
+ */
7
+ import { createContext, useContext, useEffect, useMemo, useState, } from 'react';
8
+ import { CollaborationStatus, } from './ICollaborationProvider';
9
+ const CollaborationContext = createContext(undefined);
10
+ /**
11
+ * Collaboration provider component
12
+ *
13
+ * This component provides collaboration context to its children.
14
+ */
15
+ export function CollaborationProvider({ provider: providerProp, children, }) {
16
+ const [status, setStatus] = useState(CollaborationStatus.Disconnected);
17
+ const [isSynced, setIsSynced] = useState(false);
18
+ const [error, setError] = useState(null);
19
+ // Use the provider instance
20
+ const provider = useMemo(() => {
21
+ return providerProp || null;
22
+ }, [providerProp]);
23
+ // Subscribe to provider events
24
+ useEffect(() => {
25
+ if (!provider) {
26
+ return;
27
+ }
28
+ const statusHandler = (sender, newStatus) => {
29
+ setStatus(newStatus);
30
+ };
31
+ const errorHandler = (sender, error) => {
32
+ setError(error);
33
+ };
34
+ const syncHandler = (sender, synced) => {
35
+ setIsSynced(synced);
36
+ };
37
+ provider.events.statusChanged.connect(statusHandler);
38
+ provider.events.errorOccurred.connect(errorHandler);
39
+ provider.events.syncStateChanged.connect(syncHandler);
40
+ // Set initial status
41
+ setStatus(provider.status);
42
+ return () => {
43
+ provider.events.statusChanged.disconnect(statusHandler);
44
+ provider.events.errorOccurred.disconnect(errorHandler);
45
+ provider.events.syncStateChanged.disconnect(syncHandler);
46
+ };
47
+ }, [provider]);
48
+ // Cleanup on unmount
49
+ useEffect(() => {
50
+ return () => {
51
+ provider?.dispose();
52
+ };
53
+ }, [provider]);
54
+ const connect = async (sharedModel, documentId, options) => {
55
+ if (!provider) {
56
+ throw new Error('No collaboration provider configured');
57
+ }
58
+ setError(null);
59
+ try {
60
+ await provider.connect(sharedModel, documentId, options);
61
+ }
62
+ catch (err) {
63
+ setError(err);
64
+ throw err;
65
+ }
66
+ };
67
+ const disconnect = () => {
68
+ provider?.disconnect();
69
+ setIsSynced(false);
70
+ setError(null);
71
+ };
72
+ const value = {
73
+ provider,
74
+ status,
75
+ isConnected: status === CollaborationStatus.Connected,
76
+ isSynced,
77
+ error,
78
+ connect,
79
+ disconnect,
80
+ };
81
+ return (_jsx(CollaborationContext.Provider, { value: value, children: children }));
82
+ }
83
+ /**
84
+ * Hook to use collaboration context
85
+ *
86
+ * @returns The collaboration context value
87
+ * @throws Error if used outside of CollaborationProvider
88
+ */
89
+ export function useCollaboration() {
90
+ const context = useContext(CollaborationContext);
91
+ if (!context) {
92
+ throw new Error('useCollaboration must be used within a CollaborationProvider');
93
+ }
94
+ return context;
95
+ }
96
+ /**
97
+ * Hook to get collaboration status
98
+ */
99
+ export function useCollaborationStatus() {
100
+ const { status } = useCollaboration();
101
+ return status;
102
+ }
103
+ /**
104
+ * Hook to check if collaboration is connected
105
+ */
106
+ export function useIsCollaborationConnected() {
107
+ const { isConnected } = useCollaboration();
108
+ return isConnected;
109
+ }
110
+ //# sourceMappingURL=CollaborationContext.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CollaborationContext.js","sourceRoot":"","sources":["../../../src/jupyter/collaboration/CollaborationContext.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,120 @@
1
+ import { YNotebook } from '@jupyter/ydoc';
2
+ import { WebsocketProvider } from 'y-websocket';
3
+ import { IDisposable } from '@lumino/disposable';
4
+ import { ISignal, Signal } from '@lumino/signaling';
5
+ /**
6
+ * Collaboration provider connection status
7
+ */
8
+ export declare enum CollaborationStatus {
9
+ Disconnected = "disconnected",
10
+ Connecting = "connecting",
11
+ Connected = "connected",
12
+ Error = "error"
13
+ }
14
+ /**
15
+ * Events emitted by collaboration providers
16
+ */
17
+ export interface ICollaborationProviderEvents {
18
+ /**
19
+ * Signal emitted when connection status changes
20
+ */
21
+ statusChanged: ISignal<ICollaborationProvider, CollaborationStatus>;
22
+ /**
23
+ * Signal emitted when an error occurs
24
+ */
25
+ errorOccurred: ISignal<ICollaborationProvider, Error>;
26
+ /**
27
+ * Signal emitted when synchronization state changes
28
+ */
29
+ syncStateChanged: ISignal<ICollaborationProvider, boolean>;
30
+ }
31
+ /**
32
+ * Interface for collaboration providers
33
+ *
34
+ * This interface defines the contract that all collaboration providers must implement.
35
+ * It provides a uniform way to connect to different collaboration backends while
36
+ * maintaining the same API for the notebook components.
37
+ */
38
+ export interface ICollaborationProvider extends IDisposable {
39
+ /**
40
+ * Provider type identifier
41
+ */
42
+ readonly type: string;
43
+ /**
44
+ * Current connection status
45
+ */
46
+ readonly status: CollaborationStatus;
47
+ /**
48
+ * Whether the provider is currently connected
49
+ */
50
+ readonly isConnected: boolean;
51
+ /**
52
+ * Provider events
53
+ */
54
+ readonly events: ICollaborationProviderEvents;
55
+ /**
56
+ * Connect to the collaboration service
57
+ *
58
+ * @param sharedModel - The shared notebook model
59
+ * @param documentId - Document identifier
60
+ * @param options - Additional connection options
61
+ * @returns Promise that resolves when connected
62
+ */
63
+ connect(sharedModel: YNotebook, documentId: string, options?: Record<string, any>): Promise<void>;
64
+ /**
65
+ * Disconnect from the collaboration service
66
+ */
67
+ disconnect(): void;
68
+ /**
69
+ * Get the underlying WebSocket provider
70
+ *
71
+ * @returns The WebSocket provider or null if not connected
72
+ */
73
+ getProvider(): WebsocketProvider | null;
74
+ /**
75
+ * Get the shared model
76
+ *
77
+ * @returns The shared model or null if not connected
78
+ */
79
+ getSharedModel(): YNotebook | null;
80
+ /**
81
+ * Handle connection close event
82
+ *
83
+ * @param event - Close event
84
+ */
85
+ handleConnectionClose(event: CloseEvent): void;
86
+ /**
87
+ * Handle synchronization event
88
+ *
89
+ * @param isSynced - Whether the document is synchronized
90
+ */
91
+ handleSync(isSynced: boolean): void;
92
+ }
93
+ /**
94
+ * Abstract base class for collaboration providers
95
+ *
96
+ * This class provides common functionality for all collaboration providers.
97
+ */
98
+ export declare abstract class CollaborationProviderBase implements ICollaborationProvider {
99
+ readonly type: string;
100
+ protected _status: CollaborationStatus;
101
+ protected _provider: WebsocketProvider | null;
102
+ protected _sharedModel: YNotebook | null;
103
+ protected _statusChanged: Signal<this, CollaborationStatus>;
104
+ protected _errorOccurred: Signal<this, Error>;
105
+ protected _syncStateChanged: Signal<this, boolean>;
106
+ protected _isDisposed: boolean;
107
+ constructor(type: string);
108
+ get status(): CollaborationStatus;
109
+ get isConnected(): boolean;
110
+ get isDisposed(): boolean;
111
+ get events(): ICollaborationProviderEvents;
112
+ abstract connect(sharedModel: YNotebook, documentId: string, options?: Record<string, any>): Promise<void>;
113
+ disconnect(): void;
114
+ getProvider(): WebsocketProvider | null;
115
+ getSharedModel(): YNotebook | null;
116
+ handleConnectionClose(event: CloseEvent): void;
117
+ handleSync(isSynced: boolean): void;
118
+ dispose(): void;
119
+ protected setStatus(status: CollaborationStatus): void;
120
+ }
@@ -0,0 +1,93 @@
1
+ /*
2
+ * Copyright (c) 2021-2023 Datalayer, Inc.
3
+ *
4
+ * MIT License
5
+ */
6
+ import { Signal } from '@lumino/signaling';
7
+ /**
8
+ * Collaboration provider connection status
9
+ */
10
+ export var CollaborationStatus;
11
+ (function (CollaborationStatus) {
12
+ CollaborationStatus["Disconnected"] = "disconnected";
13
+ CollaborationStatus["Connecting"] = "connecting";
14
+ CollaborationStatus["Connected"] = "connected";
15
+ CollaborationStatus["Error"] = "error";
16
+ })(CollaborationStatus || (CollaborationStatus = {}));
17
+ /**
18
+ * Abstract base class for collaboration providers
19
+ *
20
+ * This class provides common functionality for all collaboration providers.
21
+ */
22
+ export class CollaborationProviderBase {
23
+ type;
24
+ _status = CollaborationStatus.Disconnected;
25
+ _provider = null;
26
+ _sharedModel = null;
27
+ _statusChanged = new Signal(this);
28
+ _errorOccurred = new Signal(this);
29
+ _syncStateChanged = new Signal(this);
30
+ _isDisposed = false;
31
+ constructor(type) {
32
+ this.type = type;
33
+ }
34
+ get status() {
35
+ return this._status;
36
+ }
37
+ get isConnected() {
38
+ return this._status === CollaborationStatus.Connected;
39
+ }
40
+ get isDisposed() {
41
+ return this._isDisposed;
42
+ }
43
+ get events() {
44
+ return {
45
+ statusChanged: this._statusChanged,
46
+ errorOccurred: this._errorOccurred,
47
+ syncStateChanged: this._syncStateChanged,
48
+ };
49
+ }
50
+ disconnect() {
51
+ if (this._provider) {
52
+ this._provider.disconnect();
53
+ this._provider.destroy();
54
+ this._provider = null;
55
+ }
56
+ this._sharedModel = null;
57
+ this.setStatus(CollaborationStatus.Disconnected);
58
+ }
59
+ getProvider() {
60
+ return this._provider;
61
+ }
62
+ getSharedModel() {
63
+ return this._sharedModel;
64
+ }
65
+ handleConnectionClose(event) {
66
+ if (event.code > 1000) {
67
+ console.error('Connection closed unexpectedly:', event);
68
+ this.setStatus(CollaborationStatus.Error);
69
+ this._errorOccurred.emit(new Error(`Connection closed: ${event.reason}`));
70
+ }
71
+ }
72
+ handleSync(isSynced) {
73
+ this._syncStateChanged.emit(isSynced);
74
+ if (isSynced) {
75
+ this.setStatus(CollaborationStatus.Connected);
76
+ }
77
+ }
78
+ dispose() {
79
+ if (this._isDisposed) {
80
+ return;
81
+ }
82
+ this.disconnect();
83
+ Signal.clearData(this);
84
+ this._isDisposed = true;
85
+ }
86
+ setStatus(status) {
87
+ if (this._status !== status) {
88
+ this._status = status;
89
+ this._statusChanged.emit(status);
90
+ }
91
+ }
92
+ }
93
+ //# sourceMappingURL=ICollaborationProvider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ICollaborationProvider.js","sourceRoot":"","sources":["../../../src/jupyter/collaboration/ICollaborationProvider.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import { Contents, ServerConnection } from '@jupyterlab/services';
2
- export declare const COLLABORATION_ROOM_URL_PATH = "api/collaboration/document";
2
+ export declare const COLLABORATION_ROOM_URL_PATH = "api/collaboration/room";
3
3
  export declare const COLLABORATION_SESSION_URL_PATH = "api/collaboration/session";
4
4
  /**
5
5
  * Document session model
@@ -5,7 +5,7 @@
5
5
  */
6
6
  import { URLExt } from '@jupyterlab/coreutils';
7
7
  import { ServerConnection } from '@jupyterlab/services';
8
- export const COLLABORATION_ROOM_URL_PATH = 'api/collaboration/document';
8
+ export const COLLABORATION_ROOM_URL_PATH = 'api/collaboration/room';
9
9
  export const COLLABORATION_SESSION_URL_PATH = 'api/collaboration/session';
10
10
  export async function requestJupyterCollaborationSession(format, type, path, serverSettings) {
11
11
  const settings = serverSettings ?? ServerConnection.makeSettings();
@@ -1 +1 @@
1
- {"version":3,"file":"JupyterCollaboration.js","sourceRoot":"","sources":["../../../src/jupyter/collaboration/JupyterCollaboration.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAC/C,OAAO,EAAY,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAElE,MAAM,CAAC,MAAM,2BAA2B,GAAG,4BAA4B,CAAC;AAExE,MAAM,CAAC,MAAM,8BAA8B,GAAG,2BAA2B,CAAC;AAwB1E,MAAM,CAAC,KAAK,UAAU,kCAAkC,CACtD,MAAc,EACd,IAAY,EACZ,IAAY,EACZ,cAA2C;IAE3C,MAAM,QAAQ,GAAG,cAAc,IAAI,gBAAgB,CAAC,YAAY,EAAE,CAAC;IACnE,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,8BAA8B,EAAE,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC;IACpG,MAAM,IAAI,GAAG;QACX,MAAM,EAAE,KAAK;QACb,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;KACvC,CAAC;IACF,IAAI,QAAkB,CAAC;IACvB,IAAI,CAAC;QACH,QAAQ,GAAG,MAAM,gBAAgB,CAAC,WAAW,CAAC,GAAG,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC;IACrE,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,IAAI,gBAAgB,CAAC,YAAY,CAAC,KAAc,CAAC,CAAC;IAC1D,CAAC;IACD,IAAI,IAAI,GAAQ,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;IACtC,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACpB,IAAI,CAAC;YACH,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC1B,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,GAAG,CAAC,2BAA2B,EAAE,QAAQ,CAAC,CAAC;QACrD,CAAC;IACH,CAAC;IACD,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;QACjB,MAAM,IAAI,gBAAgB,CAAC,aAAa,CAAC,QAAQ,EAAE,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,CAAC;IAC3E,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,eAAe,EAAE,CAAC"}
1
+ {"version":3,"file":"JupyterCollaboration.js","sourceRoot":"","sources":["../../../src/jupyter/collaboration/JupyterCollaboration.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAC/C,OAAO,EAAY,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAElE,MAAM,CAAC,MAAM,2BAA2B,GAAG,wBAAwB,CAAC;AAEpE,MAAM,CAAC,MAAM,8BAA8B,GAAG,2BAA2B,CAAC;AAwB1E,MAAM,CAAC,KAAK,UAAU,kCAAkC,CACtD,MAAc,EACd,IAAY,EACZ,IAAY,EACZ,cAA2C;IAE3C,MAAM,QAAQ,GAAG,cAAc,IAAI,gBAAgB,CAAC,YAAY,EAAE,CAAC;IACnE,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CACrB,QAAQ,CAAC,OAAO,EAChB,8BAA8B,EAC9B,kBAAkB,CAAC,IAAI,CAAC,CACzB,CAAC;IACF,MAAM,IAAI,GAAG;QACX,MAAM,EAAE,KAAK;QACb,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;KACvC,CAAC;IACF,IAAI,QAAkB,CAAC;IACvB,IAAI,CAAC;QACH,QAAQ,GAAG,MAAM,gBAAgB,CAAC,WAAW,CAAC,GAAG,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC;IACrE,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,IAAI,gBAAgB,CAAC,YAAY,CAAC,KAAc,CAAC,CAAC;IAC1D,CAAC;IACD,IAAI,IAAI,GAAQ,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;IACtC,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACpB,IAAI,CAAC;YACH,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC1B,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,GAAG,CAAC,2BAA2B,EAAE,QAAQ,CAAC,CAAC;QACrD,CAAC;IACH,CAAC;IACD,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;QACjB,MAAM,IAAI,gBAAgB,CAAC,aAAa,CAAC,QAAQ,EAAE,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,CAAC;IAC3E,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,eAAe,EAAE,CAAC"}
@@ -1,3 +1,4 @@
1
- export * from './DatalayerCollaboration';
2
- export * from './ICollaborative';
3
1
  export * from './JupyterCollaboration';
2
+ export * from './ICollaborationProvider';
3
+ export * from './CollaborationContext';
4
+ export * from './providers';
@@ -3,7 +3,8 @@
3
3
  *
4
4
  * MIT License
5
5
  */
6
- export * from './DatalayerCollaboration';
7
- export * from './ICollaborative';
8
6
  export * from './JupyterCollaboration';
7
+ export * from './ICollaborationProvider';
8
+ export * from './CollaborationContext';
9
+ export * from './providers';
9
10
  //# sourceMappingURL=index.js.map