@datalayer/core 1.0.25 → 1.1.43

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 (359) hide show
  1. package/README.md +11 -134
  2. package/lib/api/index.d.ts +0 -9
  3. package/lib/api/index.js +0 -9
  4. package/lib/cli-login.js +167 -0
  5. package/lib/client/auth/AuthenticationManager.d.ts +3 -3
  6. package/lib/client/auth/AuthenticationManager.js +13 -13
  7. package/lib/client/auth/strategies.d.ts +2 -2
  8. package/lib/client/auth/strategies.js +6 -6
  9. package/lib/client/base.d.ts +9 -12
  10. package/lib/client/base.js +17 -19
  11. package/lib/client/index.d.ts +10 -98
  12. package/lib/client/index.js +12 -21
  13. package/lib/client/mixins/IAMMixin.js +26 -26
  14. package/lib/components/auth/Login.js +2 -2
  15. package/lib/components/avatars/UserAvatar.d.ts +16 -0
  16. package/lib/components/avatars/UserAvatar.js +47 -0
  17. package/lib/components/avatars/index.d.ts +1 -0
  18. package/lib/components/avatars/index.js +1 -0
  19. package/lib/components/billing/BillableAccountSelect.js +4 -0
  20. package/lib/components/billing/index.js +4 -0
  21. package/lib/components/context/index.d.ts +0 -1
  22. package/lib/components/context/index.js +0 -1
  23. package/lib/components/display/DisplayHandle.d.ts +12 -0
  24. package/lib/components/display/DisplayHandle.js +11 -0
  25. package/lib/components/display/LiveRelativeTime.js +4 -0
  26. package/lib/components/display/index.d.ts +1 -0
  27. package/lib/components/display/index.js +1 -0
  28. package/lib/components/flashes/index.d.ts +0 -1
  29. package/lib/components/flashes/index.js +0 -1
  30. package/lib/components/index.d.ts +0 -1
  31. package/lib/components/index.js +0 -1
  32. package/lib/components/principal/Principal.d.ts +7 -0
  33. package/lib/components/principal/Principal.js +153 -16
  34. package/lib/components/principal/PrincipalAvatar.d.ts +1 -1
  35. package/lib/components/principal/PrincipalAvatar.js +4 -28
  36. package/lib/components/principal/PrincipalBadge.js +4 -4
  37. package/lib/components/principal/PrincipalDetailsOverlay.d.ts +4 -2
  38. package/lib/components/principal/PrincipalDetailsOverlay.js +27 -7
  39. package/lib/components/principal/PrincipalSwitcherMenu.js +79 -42
  40. package/lib/components/progress/index.d.ts +0 -1
  41. package/lib/components/progress/index.js +0 -1
  42. package/lib/components/sharing/ShareAccessComponent.d.ts +3 -2
  43. package/lib/components/sharing/ShareAccessComponent.js +194 -147
  44. package/lib/components/sharing/SharingEditor.js +4 -0
  45. package/lib/components/snippets/index.d.ts +1 -1
  46. package/lib/components/snippets/index.js +1 -1
  47. package/lib/components/students/StudentResultCircle.d.ts +21 -0
  48. package/lib/components/students/StudentResultCircle.js +59 -0
  49. package/lib/components/students/index.d.ts +1 -1
  50. package/lib/components/students/index.js +1 -1
  51. package/lib/components/time/LiveRelativeTime.js +4 -0
  52. package/lib/components/time/index.js +4 -0
  53. package/lib/components/timeline/index.js +4 -0
  54. package/lib/components/tokens/index.d.ts +1 -1
  55. package/lib/components/tokens/index.js +1 -1
  56. package/lib/components/toolbars/index.d.ts +1 -3
  57. package/lib/components/toolbars/index.js +1 -3
  58. package/lib/config/Configuration.d.ts +13 -13
  59. package/lib/config/Configuration.js +5 -5
  60. package/lib/hooks/cacheConverters.d.ts +21 -0
  61. package/lib/hooks/cacheConverters.js +110 -0
  62. package/lib/hooks/index.d.ts +0 -2
  63. package/lib/hooks/index.js +0 -2
  64. package/lib/hooks/useCache.d.ts +64 -35
  65. package/lib/hooks/useCache.js +661 -306
  66. package/lib/hooks/useDatalayer.js +3 -1
  67. package/lib/hooks/useIAM.js +2 -4
  68. package/lib/hooks/useLocationHandles.d.ts +3 -1
  69. package/lib/hooks/useLocationHandles.js +2 -1
  70. package/lib/hooks/usePrincipalStore.d.ts +2 -2
  71. package/lib/hooks/usePrincipalStore.js +97 -14
  72. package/lib/hooks/useSelectedPrincipal.js +1 -1
  73. package/lib/hooks/useUser.js +19 -2
  74. package/lib/index.d.ts +1 -6
  75. package/lib/index.js +1 -13
  76. package/lib/main.js +3 -3
  77. package/lib/mocks/index.js +1 -1
  78. package/lib/mocks/models/index.d.ts +0 -1
  79. package/lib/mocks/models/index.js +0 -1
  80. package/lib/models/Datasource.d.ts +2 -2
  81. package/lib/models/IAM.d.ts +1 -1
  82. package/lib/models/School.d.ts +12 -3
  83. package/lib/models/Secret.d.ts +2 -2
  84. package/lib/models/Student.d.ts +13 -3
  85. package/lib/models/Usage.d.ts +11 -1
  86. package/lib/models/UserDTO.d.ts +2 -2
  87. package/lib/models/UserSettings.d.ts +1 -1
  88. package/lib/models/UserSettings.js +1 -1
  89. package/lib/models/index.d.ts +0 -30
  90. package/lib/models/index.js +0 -30
  91. package/lib/otel/client/OtelClient.d.ts +2 -2
  92. package/lib/otel/client/OtelClient.js +2 -2
  93. package/lib/otel/hooks/index.js +5 -5
  94. package/lib/otel/types.d.ts +1 -1
  95. package/lib/otel/views/OtelLive.js +1 -1
  96. package/lib/routes/index.d.ts +1 -0
  97. package/lib/routes/index.js +1 -0
  98. package/lib/routes/publicPaths.d.ts +23 -0
  99. package/lib/routes/publicPaths.js +74 -0
  100. package/lib/state/State.d.ts +0 -12
  101. package/lib/state/State.js +0 -12
  102. package/lib/state/substates/CoreState.js +13 -13
  103. package/lib/state/substates/IAMState.d.ts +1 -1
  104. package/lib/state/substates/IAMState.js +14 -14
  105. package/lib/state/substates/LayoutState.d.ts +12 -1
  106. package/lib/state/substates/SurveysState.d.ts +1 -1
  107. package/lib/state/substates/SurveysState.js +10 -10
  108. package/lib/state/substates/index.d.ts +0 -7
  109. package/lib/state/substates/index.js +0 -7
  110. package/lib/utils/Handles.js +3 -1
  111. package/lib/utils/index.d.ts +0 -1
  112. package/lib/utils/index.js +0 -1
  113. package/lib/views/api-keys/APIKeys.js +12 -3
  114. package/lib/views/datasources/DatasourceDetail.d.ts +1 -1
  115. package/lib/views/datasources/DatasourceNew.d.ts +1 -1
  116. package/lib/views/datasources/Datasources.d.ts +1 -1
  117. package/lib/views/datasources/Datasources.js +12 -3
  118. package/lib/views/iam/SignInSimple.d.ts +37 -1
  119. package/lib/views/iam/SignInSimple.js +111 -13
  120. package/package.json +5 -3
  121. package/lib/App.css +0 -47
  122. package/lib/App.d.ts +0 -3
  123. package/lib/App.js +0 -21
  124. package/lib/api/runtimes/checkpoints.d.ts +0 -122
  125. package/lib/api/runtimes/checkpoints.js +0 -118
  126. package/lib/api/runtimes/environments.d.ts +0 -9
  127. package/lib/api/runtimes/environments.js +0 -29
  128. package/lib/api/runtimes/healthz.d.ts +0 -15
  129. package/lib/api/runtimes/healthz.js +0 -44
  130. package/lib/api/runtimes/index.d.ts +0 -12
  131. package/lib/api/runtimes/index.js +0 -16
  132. package/lib/api/runtimes/runtimes.d.ts +0 -138
  133. package/lib/api/runtimes/runtimes.js +0 -230
  134. package/lib/api/runtimes/snapshots.d.ts +0 -38
  135. package/lib/api/runtimes/snapshots.js +0 -82
  136. package/lib/api/scheduler/index.d.ts +0 -6
  137. package/lib/api/scheduler/index.js +0 -10
  138. package/lib/api/scheduler/schedules.d.ts +0 -85
  139. package/lib/api/scheduler/schedules.js +0 -78
  140. package/lib/api/spacer/documents.d.ts +0 -12
  141. package/lib/api/spacer/documents.js +0 -43
  142. package/lib/api/spacer/healthz.d.ts +0 -15
  143. package/lib/api/spacer/healthz.js +0 -44
  144. package/lib/api/spacer/index.d.ts +0 -15
  145. package/lib/api/spacer/index.js +0 -19
  146. package/lib/api/spacer/items.d.ts +0 -25
  147. package/lib/api/spacer/items.js +0 -55
  148. package/lib/api/spacer/lexicals.d.ts +0 -34
  149. package/lib/api/spacer/lexicals.js +0 -89
  150. package/lib/api/spacer/notebooks.d.ts +0 -34
  151. package/lib/api/spacer/notebooks.js +0 -89
  152. package/lib/api/spacer/spaces.d.ts +0 -84
  153. package/lib/api/spacer/spaces.js +0 -170
  154. package/lib/api/spacer/users.d.ts +0 -9
  155. package/lib/api/spacer/users.js +0 -29
  156. package/lib/client/mixins/RuntimesMixin.d.ts +0 -93
  157. package/lib/client/mixins/RuntimesMixin.js +0 -229
  158. package/lib/client/mixins/SpacerMixin.d.ts +0 -210
  159. package/lib/client/mixins/SpacerMixin.js +0 -615
  160. package/lib/client/utils/spacerUtils.d.ts +0 -18
  161. package/lib/client/utils/spacerUtils.js +0 -32
  162. package/lib/collaboration/DatalayerCollaboration.d.ts +0 -13
  163. package/lib/collaboration/DatalayerCollaboration.js +0 -28
  164. package/lib/collaboration/DatalayerCollaborationProvider.d.ts +0 -60
  165. package/lib/collaboration/DatalayerCollaborationProvider.js +0 -163
  166. package/lib/collaboration/index.d.ts +0 -2
  167. package/lib/collaboration/index.js +0 -6
  168. package/lib/components/context/SpaceSelect.d.ts +0 -2
  169. package/lib/components/context/SpaceSelect.js +0 -42
  170. package/lib/components/flashes/FlashDisclaimer.d.ts +0 -2
  171. package/lib/components/flashes/FlashDisclaimer.js +0 -17
  172. package/lib/components/icons/ArtifactIcon.d.ts +0 -10
  173. package/lib/components/icons/ArtifactIcon.js +0 -58
  174. package/lib/components/icons/index.d.ts +0 -1
  175. package/lib/components/icons/index.js +0 -5
  176. package/lib/components/nbgrader/NbGradesDetails.d.ts +0 -5
  177. package/lib/components/nbgrader/NbGradesDetails.js +0 -14
  178. package/lib/components/nbgrader/index.d.ts +0 -1
  179. package/lib/components/nbgrader/index.js +0 -5
  180. package/lib/components/progress/CreditsIndicator.d.ts +0 -33
  181. package/lib/components/progress/CreditsIndicator.js +0 -23
  182. package/lib/components/runtimes/RuntimeCellVariables.d.ts +0 -39
  183. package/lib/components/runtimes/RuntimeCellVariables.js +0 -172
  184. package/lib/components/runtimes/RuntimeCellVariablesDialog.d.ts +0 -37
  185. package/lib/components/runtimes/RuntimeCellVariablesDialog.js +0 -101
  186. package/lib/components/runtimes/RuntimeLauncherDialog.d.ts +0 -57
  187. package/lib/components/runtimes/RuntimeLauncherDialog.js +0 -275
  188. package/lib/components/runtimes/RuntimePickerBase.d.ts +0 -69
  189. package/lib/components/runtimes/RuntimePickerBase.js +0 -122
  190. package/lib/components/runtimes/RuntimePickerCell.d.ts +0 -34
  191. package/lib/components/runtimes/RuntimePickerCell.js +0 -104
  192. package/lib/components/runtimes/RuntimePickerNotebook.d.ts +0 -42
  193. package/lib/components/runtimes/RuntimePickerNotebook.js +0 -232
  194. package/lib/components/runtimes/RuntimeReservationControl.d.ts +0 -47
  195. package/lib/components/runtimes/RuntimeReservationControl.js +0 -42
  196. package/lib/components/runtimes/RuntimeSimplePicker.d.ts +0 -38
  197. package/lib/components/runtimes/RuntimeSimplePicker.js +0 -155
  198. package/lib/components/runtimes/RuntimeTransfer.d.ts +0 -16
  199. package/lib/components/runtimes/RuntimeTransfer.js +0 -5
  200. package/lib/components/runtimes/RuntimeUtils.d.ts +0 -17
  201. package/lib/components/runtimes/RuntimeUtils.js +0 -178
  202. package/lib/components/runtimes/RuntimeVariables.d.ts +0 -38
  203. package/lib/components/runtimes/RuntimeVariables.js +0 -75
  204. package/lib/components/runtimes/index.d.ts +0 -11
  205. package/lib/components/runtimes/index.js +0 -15
  206. package/lib/components/scheduler/ScheduleMenu.d.ts +0 -54
  207. package/lib/components/scheduler/ScheduleMenu.js +0 -154
  208. package/lib/components/scheduler/index.d.ts +0 -1
  209. package/lib/components/scheduler/index.js +0 -5
  210. package/lib/components/snapshots/SandboxSnapshotMenu.d.ts +0 -33
  211. package/lib/components/snapshots/SandboxSnapshotMenu.js +0 -169
  212. package/lib/components/snapshots/index.d.ts +0 -1
  213. package/lib/components/snapshots/index.js +0 -5
  214. package/lib/components/snippets/SnippetDialog.d.ts +0 -42
  215. package/lib/components/snippets/SnippetDialog.js +0 -42
  216. package/lib/components/students/StudentItemStatus.d.ts +0 -7
  217. package/lib/components/students/StudentItemStatus.js +0 -66
  218. package/lib/components/tokens/SpaceVariantToken.d.ts +0 -5
  219. package/lib/components/tokens/SpaceVariantToken.js +0 -23
  220. package/lib/components/toolbars/AssignmentEditorToolbar.d.ts +0 -4
  221. package/lib/components/toolbars/AssignmentEditorToolbar.js +0 -18
  222. package/lib/components/toolbars/DocumentEditorToolbar.d.ts +0 -2
  223. package/lib/components/toolbars/DocumentEditorToolbar.js +0 -12
  224. package/lib/components/toolbars/NotebookEditorToolbar.d.ts +0 -29
  225. package/lib/components/toolbars/NotebookEditorToolbar.js +0 -30
  226. package/lib/examples/CellExample.d.ts +0 -6
  227. package/lib/examples/CellExample.js +0 -20
  228. package/lib/examples/NotebookExample.d.ts +0 -6
  229. package/lib/examples/NotebookExample.js +0 -19
  230. package/lib/examples/lexical-theme.css +0 -436
  231. package/lib/examples/notebooks/IPyWidgetsExample.ipynb.json +0 -101
  232. package/lib/examples/notebooks/IPyWidgetsExampleWithState.ipynb.json +0 -112
  233. package/lib/examples/notebooks/Lite.ipynb.json +0 -128
  234. package/lib/examples/notebooks/Matplotlib.ipynb.json +0 -137
  235. package/lib/examples/notebooks/NotebookExample1.ipynb.json +0 -126
  236. package/lib/examples/notebooks/NotebookExample2.ipynb.json +0 -48
  237. package/lib/examples/notebooks/NotebookOutputs.ipynb.json +0 -49
  238. package/lib/examples/notebooks/NotebookToCExample.ipynb.json +0 -102
  239. package/lib/examples/notebooks/PyGWalker.ipynb.json +0 -55
  240. package/lib/hooks/useCellOutputshot.d.ts +0 -4
  241. package/lib/hooks/useCellOutputshot.js +0 -25
  242. package/lib/hooks/useProjects.d.ts +0 -628
  243. package/lib/hooks/useProjects.js +0 -190
  244. package/lib/hooks/useRuntimes.d.ts +0 -5
  245. package/lib/hooks/useRuntimes.js +0 -34
  246. package/lib/mocks/jupyter/index.js +0 -5
  247. package/lib/mocks/models/CourseMock.d.ts +0 -6
  248. package/lib/mocks/models/CourseMock.js +0 -29
  249. package/lib/mocks/models/SpaceMock.d.ts +0 -6
  250. package/lib/mocks/models/SpaceMock.js +0 -25
  251. package/lib/models/Assignment.d.ts +0 -7
  252. package/lib/models/Assignment.js +0 -5
  253. package/lib/models/Cell.d.ts +0 -8
  254. package/lib/models/Cell.js +0 -5
  255. package/lib/models/CodeBlock.d.ts +0 -10
  256. package/lib/models/CodeBlock.js +0 -5
  257. package/lib/models/CodeSandboxSnapshot.d.ts +0 -92
  258. package/lib/models/CodeSandboxSnapshot.js +0 -13
  259. package/lib/models/CodeSandboxSnapshotDTO.d.ts +0 -173
  260. package/lib/models/CodeSandboxSnapshotDTO.js +0 -139
  261. package/lib/models/CodefeedBlocks.d.ts +0 -7
  262. package/lib/models/CodefeedBlocks.js +0 -5
  263. package/lib/models/Content.d.ts +0 -5
  264. package/lib/models/Content.js +0 -5
  265. package/lib/models/Course.d.ts +0 -17
  266. package/lib/models/Course.js +0 -5
  267. package/lib/models/Dataset.d.ts +0 -16
  268. package/lib/models/Dataset.js +0 -5
  269. package/lib/models/Document.d.ts +0 -8
  270. package/lib/models/Document.js +0 -5
  271. package/lib/models/Environment.d.ts +0 -86
  272. package/lib/models/Environment.js +0 -5
  273. package/lib/models/EnvironmentDTO.d.ts +0 -125
  274. package/lib/models/EnvironmentDTO.js +0 -88
  275. package/lib/models/Exercise.d.ts +0 -16
  276. package/lib/models/Exercise.js +0 -5
  277. package/lib/models/Item.d.ts +0 -20
  278. package/lib/models/Item.js +0 -5
  279. package/lib/models/ItemDTO.d.ts +0 -74
  280. package/lib/models/ItemDTO.js +0 -186
  281. package/lib/models/ItemType.d.ts +0 -2
  282. package/lib/models/ItemType.js +0 -5
  283. package/lib/models/Lesson.d.ts +0 -5
  284. package/lib/models/Lesson.js +0 -5
  285. package/lib/models/LexicalDTO.d.ts +0 -155
  286. package/lib/models/LexicalDTO.js +0 -157
  287. package/lib/models/Library.d.ts +0 -10
  288. package/lib/models/Library.js +0 -5
  289. package/lib/models/Notebook.d.ts +0 -11
  290. package/lib/models/Notebook.js +0 -5
  291. package/lib/models/NotebookDTO.d.ts +0 -96
  292. package/lib/models/NotebookDTO.js +0 -153
  293. package/lib/models/Page.d.ts +0 -41
  294. package/lib/models/Page.js +0 -25
  295. package/lib/models/PageTag.d.ts +0 -19
  296. package/lib/models/PageTag.js +0 -94
  297. package/lib/models/ProjectDTO.d.ts +0 -89
  298. package/lib/models/ProjectDTO.js +0 -131
  299. package/lib/models/Runtime.d.ts +0 -123
  300. package/lib/models/Runtime.js +0 -18
  301. package/lib/models/RuntimeDTO.d.ts +0 -191
  302. package/lib/models/RuntimeDTO.js +0 -204
  303. package/lib/models/Space.d.ts +0 -35
  304. package/lib/models/Space.js +0 -66
  305. package/lib/models/SpaceDTO.d.ts +0 -334
  306. package/lib/models/SpaceDTO.js +0 -244
  307. package/lib/models/SpaceItem.d.ts +0 -10
  308. package/lib/models/SpaceItem.js +0 -5
  309. package/lib/models/SpaceMember.d.ts +0 -6
  310. package/lib/models/SpaceMember.js +0 -5
  311. package/lib/models/StudentItem.d.ts +0 -21
  312. package/lib/models/StudentItem.js +0 -5
  313. package/lib/services/DatalayerServiceManager.d.ts +0 -22
  314. package/lib/services/DatalayerServiceManager.js +0 -69
  315. package/lib/services/index.d.ts +0 -4
  316. package/lib/services/index.js +0 -7
  317. package/lib/services/reconnectToRuntime.d.ts +0 -32
  318. package/lib/services/reconnectToRuntime.js +0 -59
  319. package/lib/state/substates/CellState.d.ts +0 -12
  320. package/lib/state/substates/CellState.js +0 -22
  321. package/lib/state/substates/DocumentState.d.ts +0 -10
  322. package/lib/state/substates/DocumentState.js +0 -14
  323. package/lib/state/substates/GradeState.d.ts +0 -10
  324. package/lib/state/substates/GradeState.js +0 -14
  325. package/lib/state/substates/JupyterLabState.d.ts +0 -16
  326. package/lib/state/substates/JupyterLabState.js +0 -17
  327. package/lib/state/substates/NbformatState.d.ts +0 -13
  328. package/lib/state/substates/NbformatState.js +0 -16
  329. package/lib/state/substates/RuntimesState.d.ts +0 -79
  330. package/lib/state/substates/RuntimesState.js +0 -180
  331. package/lib/state/substates/SpaceState.d.ts +0 -11
  332. package/lib/state/substates/SpaceState.js +0 -16
  333. package/lib/stateful/index.d.ts +0 -2
  334. package/lib/stateful/index.js +0 -6
  335. package/lib/stateful/jupyter/exec/Python.d.ts +0 -5
  336. package/lib/stateful/jupyter/exec/Python.js +0 -100
  337. package/lib/stateful/jupyter/exec/Snippets.d.ts +0 -105
  338. package/lib/stateful/jupyter/exec/Snippets.js +0 -101
  339. package/lib/stateful/jupyter/exec/index.d.ts +0 -2
  340. package/lib/stateful/jupyter/exec/index.js +0 -6
  341. package/lib/stateful/jupyter/index.d.ts +0 -2
  342. package/lib/stateful/jupyter/index.js +0 -6
  343. package/lib/stateful/jupyter/kernelsHandler.d.ts +0 -8
  344. package/lib/stateful/jupyter/kernelsHandler.js +0 -39
  345. package/lib/stateful/runtimes/actions.d.ts +0 -102
  346. package/lib/stateful/runtimes/actions.js +0 -249
  347. package/lib/stateful/runtimes/apis.d.ts +0 -273
  348. package/lib/stateful/runtimes/apis.js +0 -5
  349. package/lib/stateful/runtimes/index.d.ts +0 -5
  350. package/lib/stateful/runtimes/index.js +0 -9
  351. package/lib/stateful/runtimes/settings.d.ts +0 -15
  352. package/lib/stateful/runtimes/settings.js +0 -31
  353. package/lib/stateful/runtimes/snapshots.d.ts +0 -25
  354. package/lib/stateful/runtimes/snapshots.js +0 -150
  355. package/lib/stateful/runtimes/utils.d.ts +0 -7
  356. package/lib/stateful/runtimes/utils.js +0 -14
  357. package/lib/utils/Cells.d.ts +0 -2
  358. package/lib/utils/Cells.js +0 -28
  359. /package/lib/{mocks/jupyter/index.d.ts → cli-login.d.ts} +0 -0
@@ -1,190 +0,0 @@
1
- /*
2
- * Copyright (c) 2023-2025 Datalayer, Inc.
3
- * Distributed under the terms of the Modified BSD License.
4
- */
5
- /**
6
- * Hook for fetching and managing projects.
7
- *
8
- * Projects are backed by the Spacer service as spaces with type_s="project".
9
- * Projects persist forever — only agents can terminate.
10
- *
11
- * Free tier limits: max 3 projects per user.
12
- *
13
- * @module hooks/useProjects
14
- */
15
- import { useMemo, useCallback } from 'react';
16
- import { useCache } from './useCache.js';
17
- /** The space type value used to identify project spaces in Solr */
18
- export const PROJECT_SPACE_VARIANT = 'project';
19
- const normalizeProjectItems = (items) => {
20
- if (Array.isArray(items)) {
21
- return items;
22
- }
23
- if (items && typeof items === 'object') {
24
- return [items];
25
- }
26
- return [];
27
- };
28
- const isProjectSpace = (space) => {
29
- const variant = space?.variant ?? space?.variant_s;
30
- if (variant !== PROJECT_SPACE_VARIANT) {
31
- return false;
32
- }
33
- const items = normalizeProjectItems(space?.items);
34
- if (items.length === 0) {
35
- return true;
36
- }
37
- const hasNotebook = items.some(item => (item?.type_s ?? item?.type) === 'notebook');
38
- const hasDocument = items.some(item => {
39
- const type = item?.type_s ?? item?.type;
40
- return type === 'document' || type === 'lexical';
41
- });
42
- return hasNotebook && hasDocument;
43
- };
44
- /**
45
- * Hook to fetch user's projects (spaces with type "project").
46
- *
47
- * Uses the spacer service's spaces endpoint filtered by type.
48
- */
49
- export function useProjects() {
50
- const { useUserSpaces } = useCache();
51
- const { data: allSpaces, ...rest } = useUserSpaces();
52
- // Filter to only project-type spaces
53
- const projects = useMemo(() => {
54
- if (!allSpaces)
55
- return [];
56
- return allSpaces
57
- .filter((space) => isProjectSpace(space))
58
- .map((space) => ({
59
- uid: space.uid,
60
- id: space.id ?? space.uid,
61
- handle: space.handle ?? space.handle_s,
62
- name: space.name ?? space.name_t,
63
- description: space.description ?? space.description_t ?? '',
64
- createdAt: space.created_at ? new Date(space.created_at) : new Date(),
65
- isPublic: space.public ?? space.public_b ?? false,
66
- attachedAgentPodName: space.attached_agent_pod_name_s || undefined,
67
- attachedAgentSpecId: space.attached_agent_spec_id_s || undefined,
68
- }));
69
- }, [allSpaces]);
70
- return { data: projects, ...rest };
71
- }
72
- /**
73
- * Hook to fetch a single project by UID.
74
- */
75
- export function useProject(uid) {
76
- const { useSpace } = useCache();
77
- // useSpace requires a string – pass empty string when uid is undefined
78
- // (the query is disabled when spaceId is falsy inside useCache)
79
- const { data: space, ...rest } = useSpace(uid ?? '');
80
- const project = useMemo(() => {
81
- if (!space)
82
- return undefined;
83
- const s = space;
84
- return {
85
- uid: s.uid,
86
- id: s.id ?? s.uid,
87
- handle: s.handle ?? s.handle_s,
88
- name: s.name ?? s.name_t,
89
- description: s.description ?? s.description_t ?? '',
90
- createdAt: s.created_at ? new Date(s.created_at) : new Date(),
91
- isPublic: s.public ?? s.public_b ?? false,
92
- attachedAgentPodName: s.attached_agent_pod_name_s || undefined,
93
- attachedAgentSpecId: s.attached_agent_spec_id_s || undefined,
94
- };
95
- }, [space]);
96
- return { data: project, ...rest };
97
- }
98
- /**
99
- * Hook to create a new project.
100
- * Creates a space with type "project" via the spacer service.
101
- */
102
- export function useCreateProject() {
103
- const { useCreateSpace } = useCache();
104
- const createSpaceMutation = useCreateSpace();
105
- const createProject = useCallback(async (request) => {
106
- const spaceHandle = request.name
107
- .toLowerCase()
108
- .replace(/[^a-z0-9]+/g, '-')
109
- .replace(/^-|-$/g, '');
110
- return createSpaceMutation.mutateAsync({
111
- space: {
112
- name: request.name,
113
- description: request.description || '',
114
- handle: spaceHandle || `project-${Date.now()}`,
115
- variant: PROJECT_SPACE_VARIANT,
116
- public: false,
117
- },
118
- });
119
- }, [createSpaceMutation]);
120
- return {
121
- ...createSpaceMutation,
122
- createProject,
123
- };
124
- }
125
- /**
126
- * Hook to update a project (e.g. persist the attached agent pod name).
127
- * Uses the spacer PUT endpoint via useUpdateSpace.
128
- */
129
- export function useUpdateProject() {
130
- const { useUpdateSpace } = useCache();
131
- const updateSpaceMutation = useUpdateSpace();
132
- /** Assign an agent runtime to the project */
133
- const assignAgent = useCallback(async (project, agentPodName, agentSpecId) => {
134
- return updateSpaceMutation.mutateAsync({
135
- id: project.id,
136
- name: project.name,
137
- description: project.description,
138
- attached_agent_pod_name_s: agentPodName,
139
- attached_agent_spec_id_s: agentSpecId || '',
140
- });
141
- }, [updateSpaceMutation]);
142
- /** Rename a project */
143
- const renameProject = useCallback(async (project, newName) => {
144
- return updateSpaceMutation.mutateAsync({
145
- id: project.id,
146
- name: newName,
147
- description: project.description,
148
- });
149
- }, [updateSpaceMutation]);
150
- /** Remove the agent assignment from the project */
151
- const unassignAgent = useCallback(async (project) => {
152
- return updateSpaceMutation.mutateAsync({
153
- id: project.id,
154
- name: project.name,
155
- description: project.description,
156
- attached_agent_pod_name_s: '',
157
- attached_agent_spec_id_s: '',
158
- });
159
- }, [updateSpaceMutation]);
160
- return {
161
- ...updateSpaceMutation,
162
- assignAgent,
163
- unassignAgent,
164
- renameProject,
165
- };
166
- }
167
- /**
168
- * Hook to refresh the projects list.
169
- */
170
- export function useRefreshProjects() {
171
- const { useRefreshUserSpaces } = useCache();
172
- return useRefreshUserSpaces();
173
- }
174
- /**
175
- * Hook to delete a project (space) and all its contents.
176
- */
177
- export function useDeleteProject() {
178
- const { useDeleteSpace } = useCache();
179
- return useDeleteSpace();
180
- }
181
- /**
182
- * Hook to fetch the default notebook and document UIDs for a project.
183
- *
184
- * This calls the spacer `GET /spaces/:uid/default-items` endpoint which
185
- * returns the UID of the first notebook and first document in the space.
186
- */
187
- export function useProjectDefaultItems(projectUid) {
188
- const { useSpaceDefaultItems } = useCache();
189
- return useSpaceDefaultItems(projectUid);
190
- }
@@ -1,5 +0,0 @@
1
- export declare const useRuntimes: () => {
2
- mountLocalFolder: (kernelId: string) => void;
3
- unmountLocalFolder: (kernelId: string) => void;
4
- };
5
- export default useRuntimes;
@@ -1,34 +0,0 @@
1
- /*
2
- * Copyright (c) 2023-2025 Datalayer, Inc.
3
- * Distributed under the terms of the Modified BSD License.
4
- */
5
- import { requestJupyterKernelsExtension } from '../stateful/jupyter/kernelsHandler.js';
6
- export const useRuntimes = () => {
7
- // Folder Mounting ----------------------------------------------------------
8
- const mountLocalFolder = (kernelId) => {
9
- requestJupyterKernelsExtension(`jump/${kernelId}`)
10
- .then(data => {
11
- // console.log('--- Mount Local Folder', data);
12
- })
13
- .catch(reason => {
14
- console.error(`Error while accessing the jupyter server jupyter_kernels extension.\n${reason}`);
15
- });
16
- };
17
- const unmountLocalFolder = (kernelId) => {
18
- requestJupyterKernelsExtension(`jump/${kernelId}`, {
19
- method: 'DELETE',
20
- })
21
- .then(data => {
22
- // console.log('--- Unmount Local Folder', data);
23
- })
24
- .catch(reason => {
25
- console.error(`Error while accessing the jupyter server jupyter_kernels extension.\n${reason}`);
26
- });
27
- };
28
- // --------------------------------------------------------------------------
29
- return {
30
- mountLocalFolder,
31
- unmountLocalFolder,
32
- };
33
- };
34
- export default useRuntimes;
@@ -1,5 +0,0 @@
1
- export {};
2
- /*
3
- * Copyright (c) 2023-2025 Datalayer, Inc.
4
- * Distributed under the terms of the Modified BSD License.
5
- */
@@ -1,6 +0,0 @@
1
- import { ICourse } from '../../models/Course';
2
- export declare const newCourseMock: (name: string) => ICourse;
3
- export declare const COURSE_1_MOCK: ICourse;
4
- export declare const COURSE_2_MOCK: ICourse;
5
- export declare const COURSE_3_MOCK: ICourse;
6
- export declare const COURSES_MOCK: ICourse[];
@@ -1,29 +0,0 @@
1
- /*
2
- * Copyright (c) 2023-2025 Datalayer, Inc.
3
- * Distributed under the terms of the Modified BSD License.
4
- */
5
- import { uniqueNamesGenerator, names } from 'unique-names-generator';
6
- import { newUlid } from '../../utils/index.js';
7
- import { newSpaceMock } from './SpaceMock.js';
8
- import { newUserMock } from './UserMock.js';
9
- export const newCourseMock = (name) => {
10
- const course = {
11
- id: newUlid(),
12
- owner: newUserMock(uniqueNamesGenerator({ dictionaries: [names] }), uniqueNamesGenerator({ dictionaries: [names] })),
13
- handle: newUlid(),
14
- type: 'space',
15
- variant: 'course',
16
- name: name,
17
- description: name + ' description.',
18
- public: false,
19
- creationDate: new Date(),
20
- items: [],
21
- itemIds: [],
22
- seedSpace: newSpaceMock('space content'),
23
- };
24
- return course;
25
- };
26
- export const COURSE_1_MOCK = newCourseMock('Course 1');
27
- export const COURSE_2_MOCK = newCourseMock('Course 2');
28
- export const COURSE_3_MOCK = newCourseMock('Course 3');
29
- export const COURSES_MOCK = [COURSE_1_MOCK, COURSE_2_MOCK, COURSE_3_MOCK];
@@ -1,6 +0,0 @@
1
- import { ISpace } from '../../models/Space';
2
- export declare const newSpaceMock: (name: string) => ISpace;
3
- export declare const SPACE_1_MOCK: ISpace;
4
- export declare const SPACE_2_MOCK: ISpace;
5
- export declare const SPACE_3: ISpace;
6
- export declare const SPACES_MOCK: ISpace[];
@@ -1,25 +0,0 @@
1
- /*
2
- * Copyright (c) 2023-2025 Datalayer, Inc.
3
- * Distributed under the terms of the Modified BSD License.
4
- */
5
- import { uniqueNamesGenerator, names } from 'unique-names-generator';
6
- import { newUlid } from '../../utils/index.js';
7
- import { newUserMock } from './UserMock.js';
8
- export const newSpaceMock = (name) => {
9
- const space = {
10
- id: newUlid(),
11
- owner: newUserMock(uniqueNamesGenerator({ dictionaries: [names] }), uniqueNamesGenerator({ dictionaries: [names] })),
12
- handle: newUlid(),
13
- type: 'space',
14
- variant: 'default',
15
- name: name,
16
- description: name + ' description.',
17
- public: false,
18
- creationDate: new Date(),
19
- };
20
- return space;
21
- };
22
- export const SPACE_1_MOCK = newSpaceMock('Space 1');
23
- export const SPACE_2_MOCK = newSpaceMock('Space 2');
24
- export const SPACE_3 = newSpaceMock('Space 3');
25
- export const SPACES_MOCK = [SPACE_1_MOCK, SPACE_2_MOCK, SPACE_3];
@@ -1,7 +0,0 @@
1
- import { IBaseNotebook } from './Notebook';
2
- import { IStudentItem } from './StudentItem';
3
- export type IAssignment = IBaseNotebook & {
4
- type: 'assignment';
5
- studentItem?: IStudentItem;
6
- };
7
- export default IAssignment;
@@ -1,5 +0,0 @@
1
- /*
2
- * Copyright (c) 2023-2025 Datalayer, Inc.
3
- * Distributed under the terms of the Modified BSD License.
4
- */
5
- export {};
@@ -1,8 +0,0 @@
1
- import { IItem } from './Item';
2
- export type ICell = IItem & {
3
- type: 'cell';
4
- source: string;
5
- outputshotUrl?: string;
6
- outputshotData?: string;
7
- };
8
- export default ICell;
@@ -1,5 +0,0 @@
1
- /*
2
- * Copyright (c) 2023-2025 Datalayer, Inc.
3
- * Distributed under the terms of the Modified BSD License.
4
- */
5
- export {};
@@ -1,10 +0,0 @@
1
- import { IUser } from './User';
2
- export type CodeBlock = {
3
- id: string;
4
- type: 'codeblock';
5
- code: string;
6
- author: IUser;
7
- ancestor: CodeBlock;
8
- descendants: CodeBlock[];
9
- };
10
- export default CodeBlock;
@@ -1,5 +0,0 @@
1
- /*
2
- * Copyright (c) 2023-2025 Datalayer, Inc.
3
- * Distributed under the terms of the Modified BSD License.
4
- */
5
- export {};
@@ -1,92 +0,0 @@
1
- /**
2
- * Code Sandbox snapshot from API.
3
- */
4
- export interface IAPICodeSandboxSnapshot {
5
- /**
6
- * Snapshot UID
7
- */
8
- uid: string;
9
- /**
10
- * Snapshot name
11
- */
12
- name: string;
13
- /**
14
- * Snapshot description
15
- */
16
- description: string;
17
- /**
18
- * Snapshot environment
19
- */
20
- environment: string;
21
- /**
22
- * Snapshot metadata
23
- */
24
- metadata: Record<string, any>;
25
- /**
26
- * Snapshot size in bytes
27
- */
28
- size: number;
29
- /**
30
- * Latest update time of the snapshot
31
- */
32
- updated_at: string;
33
- /**
34
- * Snapshot format
35
- */
36
- format: string;
37
- /**
38
- * Snapshot format version
39
- */
40
- format_version: string;
41
- /**
42
- * Snapshot status
43
- */
44
- status: string;
45
- }
46
- /**
47
- * Code Sandbox snapshot model.
48
- */
49
- export interface ICodeSandboxSnapshot {
50
- /**
51
- * Snapshot UID
52
- */
53
- id: string;
54
- /**
55
- * Snapshot name
56
- */
57
- name: string;
58
- /**
59
- * Snapshot description
60
- */
61
- description: string;
62
- /**
63
- * Snapshot environment
64
- */
65
- environment: string;
66
- /**
67
- * Snapshot metadata
68
- */
69
- metadata: Record<string, any>;
70
- /**
71
- * Snapshot size in bytes
72
- */
73
- size: number;
74
- /**
75
- * Latest update time of the snapshot
76
- */
77
- updatedAt: Date;
78
- /**
79
- * Snapshot format
80
- */
81
- format: string;
82
- /**
83
- * Snapshot format version
84
- */
85
- formatVersion: string;
86
- /**
87
-
88
- * Snapshot status
89
- */
90
- status: string;
91
- }
92
- export declare function asCodeSandboxSnapshot(s: IAPICodeSandboxSnapshot): ICodeSandboxSnapshot;
@@ -1,13 +0,0 @@
1
- /*
2
- * Copyright (c) 2023-2025 Datalayer, Inc.
3
- * Distributed under the terms of the Modified BSD License.
4
- */
5
- export function asCodeSandboxSnapshot(s) {
6
- const { uid, updated_at, format_version, ...others } = s;
7
- return {
8
- ...others,
9
- id: uid,
10
- updatedAt: new Date(updated_at),
11
- formatVersion: format_version,
12
- };
13
- }
@@ -1,173 +0,0 @@
1
- /**
2
- * Snapshot domain model for the Datalayer Client.
3
- *
4
- * @module models/CodeSandboxSnapshotDTO
5
- */
6
- import type { DatalayerClient } from '../index';
7
- import { RuntimeDTO } from './RuntimeDTO';
8
- /**
9
- * Represents a runthime snapshot of a runtime's state and files.
10
- * @interface CodeSandboxSnapshotData
11
- */
12
- export interface CodeSandboxSnapshotData {
13
- /** Unique identifier for the snapshot */
14
- uid: string;
15
- /** Name of the snapshot */
16
- name: string;
17
- /** Optional description of the snapshot */
18
- description?: string;
19
- /** Name of the environment used by the runtime */
20
- environment: string;
21
- /** Metadata associated with the snapshot */
22
- metadata?: {
23
- version?: string;
24
- language_info?: any;
25
- [key: string]: any;
26
- };
27
- /** Size of the snapshot in bytes */
28
- size?: number;
29
- /** Format of the snapshot */
30
- format?: string;
31
- /** Format version of the snapshot */
32
- format_version?: string;
33
- /** Status of the snapshot */
34
- status?: string;
35
- /** ISO 8601 timestamp when the snapshot was last updated */
36
- updated_at: string;
37
- /** List of files included in the snapshot */
38
- files?: any[];
39
- }
40
- /**
41
- * Stable public interface for Snapshot data.
42
- * This is the contract that Client consumers can rely on.
43
- * The raw API may change, but this interface remains stable.
44
- */
45
- export interface CodeSandboxSnapshotJSON {
46
- /** Unique identifier for the snapshot */
47
- uid: string;
48
- /** Name of the snapshot */
49
- name: string;
50
- /** Optional description of the snapshot */
51
- description?: string;
52
- /** Name of the environment used by the runtime */
53
- environment: string;
54
- /** ISO 8601 timestamp when the snapshot was last updated */
55
- updatedAt: string;
56
- }
57
- /**
58
- * Request payload for creating a code sandbox snapshot
59
- * @interface CreateCodeSandboxSnapshotRequest
60
- */
61
- export interface CreateCodeSandboxSnapshotRequest {
62
- /** Pod name of the runtime to snapshot */
63
- pod_name: string;
64
- /** Name for the snapshot */
65
- name: string;
66
- /** Description of the snapshot */
67
- description: string;
68
- /** Whether to stop the runtime after creating snapshot */
69
- stop: boolean;
70
- }
71
- /**
72
- * Response for getting a specific code snapshot snapshot
73
- * @interface GetCodeSandboxSnapshotResponse
74
- */
75
- export interface GetCodeSandboxSnapshotResponse {
76
- /** Indicates if the request was successful */
77
- success: boolean;
78
- /** Response message */
79
- message: string;
80
- /** The snapshot details */
81
- snapshot: CodeSandboxSnapshotData;
82
- }
83
- /**
84
- * Response for creating a code sandbox snapshot
85
- * @interface CreateCodeSandboxSnapshotResponse
86
- */
87
- export interface CreateCodeSandboxSnapshotResponse {
88
- /** Indicates if the request was successful */
89
- success: boolean;
90
- /** Response message */
91
- message: string;
92
- /** The created snapshot details */
93
- snapshot: CodeSandboxSnapshotData;
94
- }
95
- /**
96
- * Response from listing code sandbox snapshots
97
- * @interface ListCodeSandboxSnapshotsResponse
98
- */
99
- export interface ListCodeSandboxSnapshotsResponse {
100
- /** Whether the request was successful */
101
- success: boolean;
102
- /** Response message from the server */
103
- message: string;
104
- /** Array of code sandbox snapshots */
105
- snapshots: CodeSandboxSnapshotData[];
106
- }
107
- /**
108
- * Snapshot domain model that wraps API responses with convenient methods.
109
- * Provides code sandbox snapshot management with data refresh and lifecycle operations.
110
- *
111
- * @example
112
- * ```typescript
113
- * const snapshot = await runtime.createSnapshot('my-checkpoint');
114
- * const runtime = await snapshot.restore();
115
- * ```
116
- */
117
- export declare class CodeSandboxSnapshotDTO {
118
- protected _data: CodeSandboxSnapshotData;
119
- private _client;
120
- private _deleted;
121
- /**
122
- * Create a Code Sandbox Snapshot instance.
123
- *
124
- * @param data - Snapshot data from API
125
- * @param client - Client instance
126
- */
127
- constructor(data: CodeSandboxSnapshotData, client: DatalayerClient);
128
- /**
129
- * Check if this snapshot has been deleted and throw error if so.
130
- * @throws Error if deleted
131
- */
132
- private _checkDeleted;
133
- /** Unique identifier for the snapshot. */
134
- get uid(): string;
135
- /** Name of the snapshot. */
136
- get name(): string;
137
- /** Description of the snapshot. */
138
- get description(): string;
139
- /** Name of the environment used by the runtime. */
140
- get environment(): string;
141
- /** When the snapshot was last updated. */
142
- get updatedAt(): Date;
143
- /**
144
- * Delete this snapshot permanently.
145
- * After deletion, subsequent calls to dynamic methods will throw errors.
146
- */
147
- delete(): Promise<void>;
148
- /**
149
- * Create a code sandbox from this snapshot (restore functionality).
150
- *
151
- * @param minutesLimit - Time limit in minutes for the restored runtime
152
- * @returns Created Runtime instance
153
- */
154
- restore(minutesLimit: number): Promise<RuntimeDTO>;
155
- /**
156
- * Get code snapshot snapshot data in camelCase format.
157
- * Returns only the core fields that consumers need.
158
- * This provides a stable interface regardless of API changes.
159
- * Note: Returns current cached state - call getStatus() first if you need fresh data.
160
- *
161
- * @returns Core code snapshot snapshot data with camelCase properties
162
- */
163
- toJSON(): CodeSandboxSnapshotJSON;
164
- /**
165
- * Get the raw snapshot data exactly as received from the API.
166
- * This preserves the original snake_case naming from the API response.
167
- *
168
- * @returns Raw snapshot data from API
169
- */
170
- rawData(): CodeSandboxSnapshotData;
171
- /** String representation of the snapshot. */
172
- toString(): string;
173
- }