@datalayer/core 1.0.25 → 1.1.41

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 (339) hide show
  1. package/README.md +14 -26
  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/base.d.ts +0 -3
  6. package/lib/client/base.js +0 -2
  7. package/lib/client/index.d.ts +10 -98
  8. package/lib/client/index.js +12 -21
  9. package/lib/components/avatars/UserAvatar.d.ts +16 -0
  10. package/lib/components/avatars/UserAvatar.js +47 -0
  11. package/lib/components/avatars/index.d.ts +1 -0
  12. package/lib/components/avatars/index.js +1 -0
  13. package/lib/components/billing/BillableAccountSelect.js +4 -0
  14. package/lib/components/billing/index.js +4 -0
  15. package/lib/components/context/index.d.ts +0 -1
  16. package/lib/components/context/index.js +0 -1
  17. package/lib/components/display/DisplayHandle.d.ts +12 -0
  18. package/lib/components/display/DisplayHandle.js +11 -0
  19. package/lib/components/display/LiveRelativeTime.js +4 -0
  20. package/lib/components/display/index.d.ts +1 -0
  21. package/lib/components/display/index.js +1 -0
  22. package/lib/components/flashes/index.d.ts +0 -1
  23. package/lib/components/flashes/index.js +0 -1
  24. package/lib/components/index.d.ts +0 -1
  25. package/lib/components/index.js +0 -1
  26. package/lib/components/principal/Principal.d.ts +7 -0
  27. package/lib/components/principal/Principal.js +153 -16
  28. package/lib/components/principal/PrincipalAvatar.d.ts +1 -1
  29. package/lib/components/principal/PrincipalAvatar.js +4 -28
  30. package/lib/components/principal/PrincipalBadge.js +4 -4
  31. package/lib/components/principal/PrincipalDetailsOverlay.d.ts +4 -2
  32. package/lib/components/principal/PrincipalDetailsOverlay.js +27 -7
  33. package/lib/components/principal/PrincipalSwitcherMenu.js +76 -39
  34. package/lib/components/progress/index.d.ts +0 -1
  35. package/lib/components/progress/index.js +0 -1
  36. package/lib/components/sharing/ShareAccessComponent.d.ts +3 -2
  37. package/lib/components/sharing/ShareAccessComponent.js +180 -133
  38. package/lib/components/sharing/SharingEditor.js +4 -0
  39. package/lib/components/snippets/index.d.ts +1 -1
  40. package/lib/components/snippets/index.js +1 -1
  41. package/lib/components/students/StudentResultCircle.d.ts +21 -0
  42. package/lib/components/students/StudentResultCircle.js +59 -0
  43. package/lib/components/students/index.d.ts +1 -1
  44. package/lib/components/students/index.js +1 -1
  45. package/lib/components/time/LiveRelativeTime.js +4 -0
  46. package/lib/components/time/index.js +4 -0
  47. package/lib/components/timeline/index.js +4 -0
  48. package/lib/components/tokens/index.d.ts +1 -1
  49. package/lib/components/tokens/index.js +1 -1
  50. package/lib/components/toolbars/index.d.ts +1 -3
  51. package/lib/components/toolbars/index.js +1 -3
  52. package/lib/hooks/cacheConverters.d.ts +21 -0
  53. package/lib/hooks/cacheConverters.js +110 -0
  54. package/lib/hooks/index.d.ts +0 -2
  55. package/lib/hooks/index.js +0 -2
  56. package/lib/hooks/useCache.d.ts +64 -35
  57. package/lib/hooks/useCache.js +407 -52
  58. package/lib/hooks/useDatalayer.js +3 -1
  59. package/lib/hooks/useIAM.js +1 -3
  60. package/lib/hooks/useLocationHandles.d.ts +3 -1
  61. package/lib/hooks/useLocationHandles.js +2 -1
  62. package/lib/hooks/usePrincipalStore.d.ts +2 -2
  63. package/lib/hooks/usePrincipalStore.js +97 -14
  64. package/lib/hooks/useSelectedPrincipal.js +1 -1
  65. package/lib/hooks/useUser.js +19 -2
  66. package/lib/index.d.ts +1 -6
  67. package/lib/index.js +1 -13
  68. package/lib/main.js +3 -3
  69. package/lib/mocks/index.js +1 -1
  70. package/lib/mocks/models/index.d.ts +0 -1
  71. package/lib/mocks/models/index.js +0 -1
  72. package/lib/models/Datasource.d.ts +2 -2
  73. package/lib/models/IAM.d.ts +1 -1
  74. package/lib/models/School.d.ts +12 -3
  75. package/lib/models/Secret.d.ts +2 -2
  76. package/lib/models/Student.d.ts +13 -3
  77. package/lib/models/Usage.d.ts +11 -1
  78. package/lib/models/UserDTO.d.ts +2 -2
  79. package/lib/models/index.d.ts +0 -30
  80. package/lib/models/index.js +0 -30
  81. package/lib/routes/index.d.ts +1 -0
  82. package/lib/routes/index.js +1 -0
  83. package/lib/routes/publicPaths.d.ts +23 -0
  84. package/lib/routes/publicPaths.js +74 -0
  85. package/lib/state/State.d.ts +0 -12
  86. package/lib/state/State.js +0 -12
  87. package/lib/state/substates/LayoutState.d.ts +12 -1
  88. package/lib/state/substates/index.d.ts +0 -7
  89. package/lib/state/substates/index.js +0 -7
  90. package/lib/utils/Handles.js +3 -1
  91. package/lib/utils/index.d.ts +0 -1
  92. package/lib/utils/index.js +0 -1
  93. package/lib/views/api-keys/APIKeys.js +12 -3
  94. package/lib/views/datasources/DatasourceDetail.d.ts +1 -1
  95. package/lib/views/datasources/DatasourceNew.d.ts +1 -1
  96. package/lib/views/datasources/Datasources.d.ts +1 -1
  97. package/lib/views/datasources/Datasources.js +12 -3
  98. package/lib/views/iam/SignInSimple.d.ts +37 -1
  99. package/lib/views/iam/SignInSimple.js +110 -12
  100. package/package.json +5 -3
  101. package/lib/App.css +0 -47
  102. package/lib/App.d.ts +0 -3
  103. package/lib/App.js +0 -21
  104. package/lib/api/runtimes/checkpoints.d.ts +0 -122
  105. package/lib/api/runtimes/checkpoints.js +0 -118
  106. package/lib/api/runtimes/environments.d.ts +0 -9
  107. package/lib/api/runtimes/environments.js +0 -29
  108. package/lib/api/runtimes/healthz.d.ts +0 -15
  109. package/lib/api/runtimes/healthz.js +0 -44
  110. package/lib/api/runtimes/index.d.ts +0 -12
  111. package/lib/api/runtimes/index.js +0 -16
  112. package/lib/api/runtimes/runtimes.d.ts +0 -138
  113. package/lib/api/runtimes/runtimes.js +0 -230
  114. package/lib/api/runtimes/snapshots.d.ts +0 -38
  115. package/lib/api/runtimes/snapshots.js +0 -82
  116. package/lib/api/scheduler/index.d.ts +0 -6
  117. package/lib/api/scheduler/index.js +0 -10
  118. package/lib/api/scheduler/schedules.d.ts +0 -85
  119. package/lib/api/scheduler/schedules.js +0 -78
  120. package/lib/api/spacer/documents.d.ts +0 -12
  121. package/lib/api/spacer/documents.js +0 -43
  122. package/lib/api/spacer/healthz.d.ts +0 -15
  123. package/lib/api/spacer/healthz.js +0 -44
  124. package/lib/api/spacer/index.d.ts +0 -15
  125. package/lib/api/spacer/index.js +0 -19
  126. package/lib/api/spacer/items.d.ts +0 -25
  127. package/lib/api/spacer/items.js +0 -55
  128. package/lib/api/spacer/lexicals.d.ts +0 -34
  129. package/lib/api/spacer/lexicals.js +0 -89
  130. package/lib/api/spacer/notebooks.d.ts +0 -34
  131. package/lib/api/spacer/notebooks.js +0 -89
  132. package/lib/api/spacer/spaces.d.ts +0 -84
  133. package/lib/api/spacer/spaces.js +0 -170
  134. package/lib/api/spacer/users.d.ts +0 -9
  135. package/lib/api/spacer/users.js +0 -29
  136. package/lib/client/mixins/RuntimesMixin.d.ts +0 -93
  137. package/lib/client/mixins/RuntimesMixin.js +0 -229
  138. package/lib/client/mixins/SpacerMixin.d.ts +0 -210
  139. package/lib/client/mixins/SpacerMixin.js +0 -615
  140. package/lib/client/utils/spacerUtils.d.ts +0 -18
  141. package/lib/client/utils/spacerUtils.js +0 -32
  142. package/lib/collaboration/DatalayerCollaboration.d.ts +0 -13
  143. package/lib/collaboration/DatalayerCollaboration.js +0 -28
  144. package/lib/collaboration/DatalayerCollaborationProvider.d.ts +0 -60
  145. package/lib/collaboration/DatalayerCollaborationProvider.js +0 -163
  146. package/lib/collaboration/index.d.ts +0 -2
  147. package/lib/collaboration/index.js +0 -6
  148. package/lib/components/context/SpaceSelect.d.ts +0 -2
  149. package/lib/components/context/SpaceSelect.js +0 -42
  150. package/lib/components/flashes/FlashDisclaimer.d.ts +0 -2
  151. package/lib/components/flashes/FlashDisclaimer.js +0 -17
  152. package/lib/components/icons/ArtifactIcon.d.ts +0 -10
  153. package/lib/components/icons/ArtifactIcon.js +0 -58
  154. package/lib/components/icons/index.d.ts +0 -1
  155. package/lib/components/icons/index.js +0 -5
  156. package/lib/components/nbgrader/NbGradesDetails.d.ts +0 -5
  157. package/lib/components/nbgrader/NbGradesDetails.js +0 -14
  158. package/lib/components/nbgrader/index.d.ts +0 -1
  159. package/lib/components/nbgrader/index.js +0 -5
  160. package/lib/components/progress/CreditsIndicator.d.ts +0 -33
  161. package/lib/components/progress/CreditsIndicator.js +0 -23
  162. package/lib/components/runtimes/RuntimeCellVariables.d.ts +0 -39
  163. package/lib/components/runtimes/RuntimeCellVariables.js +0 -172
  164. package/lib/components/runtimes/RuntimeCellVariablesDialog.d.ts +0 -37
  165. package/lib/components/runtimes/RuntimeCellVariablesDialog.js +0 -101
  166. package/lib/components/runtimes/RuntimeLauncherDialog.d.ts +0 -57
  167. package/lib/components/runtimes/RuntimeLauncherDialog.js +0 -275
  168. package/lib/components/runtimes/RuntimePickerBase.d.ts +0 -69
  169. package/lib/components/runtimes/RuntimePickerBase.js +0 -122
  170. package/lib/components/runtimes/RuntimePickerCell.d.ts +0 -34
  171. package/lib/components/runtimes/RuntimePickerCell.js +0 -104
  172. package/lib/components/runtimes/RuntimePickerNotebook.d.ts +0 -42
  173. package/lib/components/runtimes/RuntimePickerNotebook.js +0 -232
  174. package/lib/components/runtimes/RuntimeReservationControl.d.ts +0 -47
  175. package/lib/components/runtimes/RuntimeReservationControl.js +0 -42
  176. package/lib/components/runtimes/RuntimeSimplePicker.d.ts +0 -38
  177. package/lib/components/runtimes/RuntimeSimplePicker.js +0 -155
  178. package/lib/components/runtimes/RuntimeTransfer.d.ts +0 -16
  179. package/lib/components/runtimes/RuntimeTransfer.js +0 -5
  180. package/lib/components/runtimes/RuntimeUtils.d.ts +0 -17
  181. package/lib/components/runtimes/RuntimeUtils.js +0 -178
  182. package/lib/components/runtimes/RuntimeVariables.d.ts +0 -38
  183. package/lib/components/runtimes/RuntimeVariables.js +0 -75
  184. package/lib/components/runtimes/index.d.ts +0 -11
  185. package/lib/components/runtimes/index.js +0 -15
  186. package/lib/components/scheduler/ScheduleMenu.d.ts +0 -54
  187. package/lib/components/scheduler/ScheduleMenu.js +0 -154
  188. package/lib/components/scheduler/index.d.ts +0 -1
  189. package/lib/components/scheduler/index.js +0 -5
  190. package/lib/components/snapshots/SandboxSnapshotMenu.d.ts +0 -33
  191. package/lib/components/snapshots/SandboxSnapshotMenu.js +0 -169
  192. package/lib/components/snapshots/index.d.ts +0 -1
  193. package/lib/components/snapshots/index.js +0 -5
  194. package/lib/components/snippets/SnippetDialog.d.ts +0 -42
  195. package/lib/components/snippets/SnippetDialog.js +0 -42
  196. package/lib/components/students/StudentItemStatus.d.ts +0 -7
  197. package/lib/components/students/StudentItemStatus.js +0 -66
  198. package/lib/components/tokens/SpaceVariantToken.d.ts +0 -5
  199. package/lib/components/tokens/SpaceVariantToken.js +0 -23
  200. package/lib/components/toolbars/AssignmentEditorToolbar.d.ts +0 -4
  201. package/lib/components/toolbars/AssignmentEditorToolbar.js +0 -18
  202. package/lib/components/toolbars/DocumentEditorToolbar.d.ts +0 -2
  203. package/lib/components/toolbars/DocumentEditorToolbar.js +0 -12
  204. package/lib/components/toolbars/NotebookEditorToolbar.d.ts +0 -29
  205. package/lib/components/toolbars/NotebookEditorToolbar.js +0 -30
  206. package/lib/examples/CellExample.d.ts +0 -6
  207. package/lib/examples/CellExample.js +0 -20
  208. package/lib/examples/NotebookExample.d.ts +0 -6
  209. package/lib/examples/NotebookExample.js +0 -19
  210. package/lib/examples/lexical-theme.css +0 -436
  211. package/lib/examples/notebooks/IPyWidgetsExample.ipynb.json +0 -101
  212. package/lib/examples/notebooks/IPyWidgetsExampleWithState.ipynb.json +0 -112
  213. package/lib/examples/notebooks/Lite.ipynb.json +0 -128
  214. package/lib/examples/notebooks/Matplotlib.ipynb.json +0 -137
  215. package/lib/examples/notebooks/NotebookExample1.ipynb.json +0 -126
  216. package/lib/examples/notebooks/NotebookExample2.ipynb.json +0 -48
  217. package/lib/examples/notebooks/NotebookOutputs.ipynb.json +0 -49
  218. package/lib/examples/notebooks/NotebookToCExample.ipynb.json +0 -102
  219. package/lib/examples/notebooks/PyGWalker.ipynb.json +0 -55
  220. package/lib/hooks/useCellOutputshot.d.ts +0 -4
  221. package/lib/hooks/useCellOutputshot.js +0 -25
  222. package/lib/hooks/useProjects.d.ts +0 -628
  223. package/lib/hooks/useProjects.js +0 -190
  224. package/lib/hooks/useRuntimes.d.ts +0 -5
  225. package/lib/hooks/useRuntimes.js +0 -34
  226. package/lib/mocks/jupyter/index.js +0 -5
  227. package/lib/mocks/models/CourseMock.d.ts +0 -6
  228. package/lib/mocks/models/CourseMock.js +0 -29
  229. package/lib/mocks/models/SpaceMock.d.ts +0 -6
  230. package/lib/mocks/models/SpaceMock.js +0 -25
  231. package/lib/models/Assignment.d.ts +0 -7
  232. package/lib/models/Assignment.js +0 -5
  233. package/lib/models/Cell.d.ts +0 -8
  234. package/lib/models/Cell.js +0 -5
  235. package/lib/models/CodeBlock.d.ts +0 -10
  236. package/lib/models/CodeBlock.js +0 -5
  237. package/lib/models/CodeSandboxSnapshot.d.ts +0 -92
  238. package/lib/models/CodeSandboxSnapshot.js +0 -13
  239. package/lib/models/CodeSandboxSnapshotDTO.d.ts +0 -173
  240. package/lib/models/CodeSandboxSnapshotDTO.js +0 -139
  241. package/lib/models/CodefeedBlocks.d.ts +0 -7
  242. package/lib/models/CodefeedBlocks.js +0 -5
  243. package/lib/models/Content.d.ts +0 -5
  244. package/lib/models/Content.js +0 -5
  245. package/lib/models/Course.d.ts +0 -17
  246. package/lib/models/Course.js +0 -5
  247. package/lib/models/Dataset.d.ts +0 -16
  248. package/lib/models/Dataset.js +0 -5
  249. package/lib/models/Document.d.ts +0 -8
  250. package/lib/models/Document.js +0 -5
  251. package/lib/models/Environment.d.ts +0 -86
  252. package/lib/models/Environment.js +0 -5
  253. package/lib/models/EnvironmentDTO.d.ts +0 -125
  254. package/lib/models/EnvironmentDTO.js +0 -88
  255. package/lib/models/Exercise.d.ts +0 -16
  256. package/lib/models/Exercise.js +0 -5
  257. package/lib/models/Item.d.ts +0 -20
  258. package/lib/models/Item.js +0 -5
  259. package/lib/models/ItemDTO.d.ts +0 -74
  260. package/lib/models/ItemDTO.js +0 -186
  261. package/lib/models/ItemType.d.ts +0 -2
  262. package/lib/models/ItemType.js +0 -5
  263. package/lib/models/Lesson.d.ts +0 -5
  264. package/lib/models/Lesson.js +0 -5
  265. package/lib/models/LexicalDTO.d.ts +0 -155
  266. package/lib/models/LexicalDTO.js +0 -157
  267. package/lib/models/Library.d.ts +0 -10
  268. package/lib/models/Library.js +0 -5
  269. package/lib/models/Notebook.d.ts +0 -11
  270. package/lib/models/Notebook.js +0 -5
  271. package/lib/models/NotebookDTO.d.ts +0 -96
  272. package/lib/models/NotebookDTO.js +0 -153
  273. package/lib/models/Page.d.ts +0 -41
  274. package/lib/models/Page.js +0 -25
  275. package/lib/models/PageTag.d.ts +0 -19
  276. package/lib/models/PageTag.js +0 -94
  277. package/lib/models/ProjectDTO.d.ts +0 -89
  278. package/lib/models/ProjectDTO.js +0 -131
  279. package/lib/models/Runtime.d.ts +0 -123
  280. package/lib/models/Runtime.js +0 -18
  281. package/lib/models/RuntimeDTO.d.ts +0 -191
  282. package/lib/models/RuntimeDTO.js +0 -204
  283. package/lib/models/Space.d.ts +0 -35
  284. package/lib/models/Space.js +0 -66
  285. package/lib/models/SpaceDTO.d.ts +0 -334
  286. package/lib/models/SpaceDTO.js +0 -244
  287. package/lib/models/SpaceItem.d.ts +0 -10
  288. package/lib/models/SpaceItem.js +0 -5
  289. package/lib/models/SpaceMember.d.ts +0 -6
  290. package/lib/models/SpaceMember.js +0 -5
  291. package/lib/models/StudentItem.d.ts +0 -21
  292. package/lib/models/StudentItem.js +0 -5
  293. package/lib/services/DatalayerServiceManager.d.ts +0 -22
  294. package/lib/services/DatalayerServiceManager.js +0 -69
  295. package/lib/services/index.d.ts +0 -4
  296. package/lib/services/index.js +0 -7
  297. package/lib/services/reconnectToRuntime.d.ts +0 -32
  298. package/lib/services/reconnectToRuntime.js +0 -59
  299. package/lib/state/substates/CellState.d.ts +0 -12
  300. package/lib/state/substates/CellState.js +0 -22
  301. package/lib/state/substates/DocumentState.d.ts +0 -10
  302. package/lib/state/substates/DocumentState.js +0 -14
  303. package/lib/state/substates/GradeState.d.ts +0 -10
  304. package/lib/state/substates/GradeState.js +0 -14
  305. package/lib/state/substates/JupyterLabState.d.ts +0 -16
  306. package/lib/state/substates/JupyterLabState.js +0 -17
  307. package/lib/state/substates/NbformatState.d.ts +0 -13
  308. package/lib/state/substates/NbformatState.js +0 -16
  309. package/lib/state/substates/RuntimesState.d.ts +0 -79
  310. package/lib/state/substates/RuntimesState.js +0 -180
  311. package/lib/state/substates/SpaceState.d.ts +0 -11
  312. package/lib/state/substates/SpaceState.js +0 -16
  313. package/lib/stateful/index.d.ts +0 -2
  314. package/lib/stateful/index.js +0 -6
  315. package/lib/stateful/jupyter/exec/Python.d.ts +0 -5
  316. package/lib/stateful/jupyter/exec/Python.js +0 -100
  317. package/lib/stateful/jupyter/exec/Snippets.d.ts +0 -105
  318. package/lib/stateful/jupyter/exec/Snippets.js +0 -101
  319. package/lib/stateful/jupyter/exec/index.d.ts +0 -2
  320. package/lib/stateful/jupyter/exec/index.js +0 -6
  321. package/lib/stateful/jupyter/index.d.ts +0 -2
  322. package/lib/stateful/jupyter/index.js +0 -6
  323. package/lib/stateful/jupyter/kernelsHandler.d.ts +0 -8
  324. package/lib/stateful/jupyter/kernelsHandler.js +0 -39
  325. package/lib/stateful/runtimes/actions.d.ts +0 -102
  326. package/lib/stateful/runtimes/actions.js +0 -249
  327. package/lib/stateful/runtimes/apis.d.ts +0 -273
  328. package/lib/stateful/runtimes/apis.js +0 -5
  329. package/lib/stateful/runtimes/index.d.ts +0 -5
  330. package/lib/stateful/runtimes/index.js +0 -9
  331. package/lib/stateful/runtimes/settings.d.ts +0 -15
  332. package/lib/stateful/runtimes/settings.js +0 -31
  333. package/lib/stateful/runtimes/snapshots.d.ts +0 -25
  334. package/lib/stateful/runtimes/snapshots.js +0 -150
  335. package/lib/stateful/runtimes/utils.d.ts +0 -7
  336. package/lib/stateful/runtimes/utils.js +0 -14
  337. package/lib/utils/Cells.d.ts +0 -2
  338. package/lib/utils/Cells.js +0 -28
  339. /package/lib/{mocks/jupyter/index.d.ts → cli-login.d.ts} +0 -0
@@ -1,170 +0,0 @@
1
- /*
2
- * Copyright (c) 2023-2025 Datalayer, Inc.
3
- * Distributed under the terms of the Modified BSD License.
4
- */
5
- /**
6
- * Workspace spaces API functions for the Datalayer platform.
7
- *
8
- * Provides function for creating workspace spaces.
9
- *
10
- * @module api/spacer/spaces
11
- */
12
- import { requestDatalayerAPI } from '../DatalayerApi.js';
13
- import { API_BASE_PATHS, DEFAULT_SERVICE_URLS } from '../constants.js';
14
- import { validateToken } from '../utils/validation.js';
15
- /**
16
- * Create a new workspace space.
17
- * @param token - Authentication token
18
- * @param data - Space creation configuration
19
- * @param baseUrl - Base URL for the API
20
- * @returns Promise resolving to the created space response
21
- */
22
- export const createSpace = async (token, data, baseUrl = DEFAULT_SERVICE_URLS.SPACER) => {
23
- validateToken(token);
24
- return requestDatalayerAPI({
25
- url: `${baseUrl}${API_BASE_PATHS.SPACER}/spaces`,
26
- method: 'POST',
27
- token,
28
- body: data,
29
- });
30
- };
31
- /**
32
- * Get a space by UID.
33
- * @param token - Authentication token
34
- * @param uid - Space UID
35
- * @param baseUrl - Base URL for the API
36
- * @returns Promise resolving to the space response
37
- */
38
- export const getSpace = async (token, uid, baseUrl = DEFAULT_SERVICE_URLS.SPACER) => {
39
- validateToken(token);
40
- return requestDatalayerAPI({
41
- url: `${baseUrl}${API_BASE_PATHS.SPACER}/spaces/${uid}`,
42
- method: 'GET',
43
- token,
44
- });
45
- };
46
- /**
47
- * Update a space (owner updating their own space).
48
- * @param token - Authentication token
49
- * @param uid - Space UID
50
- * @param data - Update data (supports arbitrary Solr fields)
51
- * @param baseUrl - Base URL for the API
52
- * @returns Promise resolving to the updated space response
53
- */
54
- export const updateSpace = async (token, uid, data, baseUrl = DEFAULT_SERVICE_URLS.SPACER) => {
55
- validateToken(token);
56
- return requestDatalayerAPI({
57
- url: `${baseUrl}${API_BASE_PATHS.SPACER}/spaces/${uid}`,
58
- method: 'PUT',
59
- token,
60
- body: data,
61
- });
62
- };
63
- /**
64
- * Update a user-specific space (e.g., org admin managing another user's space).
65
- * @param token - Authentication token
66
- * @param uid - Space UID
67
- * @param userId - User ID
68
- * @param data - Update data (supports arbitrary Solr fields)
69
- * @param baseUrl - Base URL for the API
70
- * @returns Promise resolving to the updated space response
71
- */
72
- export const updateUserSpace = async (token, uid, userId, data, baseUrl = DEFAULT_SERVICE_URLS.SPACER) => {
73
- validateToken(token);
74
- return requestDatalayerAPI({
75
- url: `${baseUrl}${API_BASE_PATHS.SPACER}/spaces/${uid}/users/${userId}`,
76
- method: 'PUT',
77
- token,
78
- body: data,
79
- });
80
- };
81
- /**
82
- * Delete a space and all its contents.
83
- * @param token - Authentication token
84
- * @param uid - Space UID
85
- * @param baseUrl - Base URL for the API
86
- * @returns Promise resolving to the delete response
87
- */
88
- export const deleteSpace = async (token, uid, baseUrl = DEFAULT_SERVICE_URLS.SPACER) => {
89
- validateToken(token);
90
- return requestDatalayerAPI({
91
- url: `${baseUrl}${API_BASE_PATHS.SPACER}/spaces/${uid}`,
92
- method: 'DELETE',
93
- token,
94
- });
95
- };
96
- /**
97
- * Get default items (notebook UID and document UID) for a space.
98
- * @param token - Authentication token
99
- * @param uid - Space UID
100
- * @param baseUrl - Base URL for the API
101
- * @returns Promise resolving to the default items response
102
- */
103
- export const getSpaceDefaultItems = async (token, uid, baseUrl = DEFAULT_SERVICE_URLS.SPACER) => {
104
- validateToken(token);
105
- return requestDatalayerAPI({
106
- url: `${baseUrl}${API_BASE_PATHS.SPACER}/spaces/${uid}/default-items`,
107
- method: 'GET',
108
- token,
109
- });
110
- };
111
- /**
112
- * Get spaces by type (e.g., 'project', 'workspace', 'course').
113
- * @param token - Authentication token
114
- * @param type - Space type to filter by
115
- * @param baseUrl - Base URL for the API
116
- * @returns Promise resolving to the spaces response
117
- */
118
- export const getSpacesByType = async (token, type, baseUrl = DEFAULT_SERVICE_URLS.SPACER) => {
119
- validateToken(token);
120
- return requestDatalayerAPI({
121
- url: `${baseUrl}${API_BASE_PATHS.SPACER}/spaces/types/${type}`,
122
- method: 'GET',
123
- token,
124
- });
125
- };
126
- /**
127
- * Make a space public.
128
- * @param token - Authentication token
129
- * @param uid - Space UID
130
- * @param baseUrl - Base URL for the API
131
- * @returns Promise resolving to the updated space response
132
- */
133
- export const makeSpacePublic = async (token, uid, baseUrl = DEFAULT_SERVICE_URLS.SPACER) => {
134
- validateToken(token);
135
- return requestDatalayerAPI({
136
- url: `${baseUrl}${API_BASE_PATHS.SPACER}/spaces/${uid}/public`,
137
- method: 'PUT',
138
- token,
139
- });
140
- };
141
- /**
142
- * Make a space private.
143
- * @param token - Authentication token
144
- * @param uid - Space UID
145
- * @param baseUrl - Base URL for the API
146
- * @returns Promise resolving to the updated space response
147
- */
148
- export const makeSpacePrivate = async (token, uid, baseUrl = DEFAULT_SERVICE_URLS.SPACER) => {
149
- validateToken(token);
150
- return requestDatalayerAPI({
151
- url: `${baseUrl}${API_BASE_PATHS.SPACER}/spaces/${uid}/private`,
152
- method: 'PUT',
153
- token,
154
- });
155
- };
156
- /**
157
- * Export a space and its contents.
158
- * @param token - Authentication token
159
- * @param uid - Space UID
160
- * @param baseUrl - Base URL for the API
161
- * @returns Promise resolving to the export data
162
- */
163
- export const exportSpace = async (token, uid, baseUrl = DEFAULT_SERVICE_URLS.SPACER) => {
164
- validateToken(token);
165
- return requestDatalayerAPI({
166
- url: `${baseUrl}${API_BASE_PATHS.SPACER}/spaces/${uid}/export`,
167
- method: 'GET',
168
- token,
169
- });
170
- };
@@ -1,9 +0,0 @@
1
- import { SpacesForUserResponse } from '../../models/SpaceDTO';
2
- /**
3
- * Get all spaces for the current authenticated user.
4
- * @param token - Authentication token
5
- * @param baseUrl - Base URL for the API (defaults to production Spacer URL)
6
- * @returns Promise resolving to the user's spaces
7
- * @throws {Error} If authentication token is missing or invalid
8
- */
9
- export declare const getMySpaces: (token: string, baseUrl?: string) => Promise<SpacesForUserResponse>;
@@ -1,29 +0,0 @@
1
- /*
2
- * Copyright (c) 2023-2025 Datalayer, Inc.
3
- * Distributed under the terms of the Modified BSD License.
4
- */
5
- /**
6
- * User-related Spacer API functions for the Datalayer platform.
7
- *
8
- * Provides functions for user-specific operations in the Spacer service.
9
- *
10
- * @module api/spacer/users
11
- */
12
- import { requestDatalayerAPI } from '../DatalayerApi.js';
13
- import { API_BASE_PATHS, DEFAULT_SERVICE_URLS } from '../constants.js';
14
- import { validateToken } from '../utils/validation.js';
15
- /**
16
- * Get all spaces for the current authenticated user.
17
- * @param token - Authentication token
18
- * @param baseUrl - Base URL for the API (defaults to production Spacer URL)
19
- * @returns Promise resolving to the user's spaces
20
- * @throws {Error} If authentication token is missing or invalid
21
- */
22
- export const getMySpaces = async (token, baseUrl = DEFAULT_SERVICE_URLS.SPACER) => {
23
- validateToken(token);
24
- return requestDatalayerAPI({
25
- url: `${baseUrl}${API_BASE_PATHS.SPACER}/spaces/users/me`,
26
- method: 'GET',
27
- token,
28
- });
29
- };
@@ -1,93 +0,0 @@
1
- import type { Constructor } from '../utils/mixins';
2
- import { EnvironmentDTO } from '../../models/EnvironmentDTO';
3
- import { RuntimeDTO } from '../../models/RuntimeDTO';
4
- import { CodeSandboxSnapshotDTO } from '../../models/CodeSandboxSnapshotDTO';
5
- import { HealthCheck } from '../../models/HealthCheck';
6
- /** Options for ensuring a runtime is available. */
7
- export interface EnsureRuntimeOptions {
8
- /** Name of the environment to use */
9
- environmentName?: string;
10
- /** Maximum credits to allocate */
11
- creditsLimit?: number;
12
- /** Whether to wait for runtime to be ready */
13
- waitForReady?: boolean;
14
- /** Maximum time to wait for ready state (ms) */
15
- maxWaitTime?: number;
16
- /** Whether to reuse existing suitable runtime */
17
- reuseExisting?: boolean;
18
- /** Snapshot ID to create runtime from */
19
- snapshotId?: string;
20
- }
21
- /** Runtimes mixin providing computational environment and runtime management. */
22
- export declare function RuntimesMixin<TBase extends Constructor>(Base: TBase): {
23
- new (...args: any[]): {
24
- _extractRuntimePodName(runtimePodNameOrInstance: string | RuntimeDTO): string;
25
- _extractSnapshotId(snapshotIdOrInstance: string | CodeSandboxSnapshotDTO): string;
26
- /**
27
- * List all available computational environments.
28
- * @returns Array of Environment model instances
29
- */
30
- listEnvironments(): Promise<EnvironmentDTO[]>;
31
- /**
32
- * Create a new computational runtime.
33
- * @param environmentName - Name of the environment to use
34
- * @param type - Type of runtime
35
- * @param givenName - User-friendly name for the runtime
36
- * @param creditsLimit - Credits limit
37
- * @returns Created runtime
38
- */
39
- createRuntime(environmentName: string, type: "notebook" | "terminal" | "job", givenName: string, minutesLimit: number, fromSnapshotId?: string): Promise<RuntimeDTO>;
40
- /**
41
- * List all runtimes.
42
- * @returns Array of runtimes
43
- */
44
- listRuntimes(): Promise<RuntimeDTO[]>;
45
- /**
46
- * Get details for a specific runtime by pod name.
47
- * @param podName - Runtime pod name
48
- * @returns Runtime details
49
- */
50
- getRuntime(podName: string): Promise<RuntimeDTO>;
51
- /**
52
- * Delete a runtime permanently.
53
- * @param podName - Runtime pod name
54
- */
55
- deleteRuntime(podName: string): Promise<void>;
56
- /**
57
- * Terminate all runtimes.
58
- * Lists all runtimes and deletes them in parallel.
59
- * @returns Array of results for each deletion (fulfilled or rejected)
60
- */
61
- terminateAllRuntimes(): Promise<PromiseSettledResult<void>[]>;
62
- /**
63
- * Create a snapshot of a runtime.
64
- * @param podName - Pod name of the runtime to snapshot
65
- * @param name - Name for the snapshot
66
- * @param description - Description of the snapshot
67
- * @param stop - Whether to stop the runtime after creating snapshot (defaults to false)
68
- * @returns Created snapshot
69
- */
70
- createSnapshot(podName: string, name: string, description: string, stop?: boolean): Promise<CodeSandboxSnapshotDTO>;
71
- /**
72
- * List all code sandbox snapshots.
73
- * @returns Array of snapshots
74
- */
75
- listSnapshots(): Promise<CodeSandboxSnapshotDTO[]>;
76
- /**
77
- * Get details for a specific snapshot by ID.
78
- * @param id - Snapshot ID
79
- * @returns Snapshot details
80
- */
81
- getSnapshot(id: string): Promise<CodeSandboxSnapshotDTO>;
82
- /**
83
- * Delete a snapshot permanently.
84
- * @param id - Snapshot ID
85
- */
86
- deleteSnapshot(id: string): Promise<void>;
87
- /**
88
- * Check the health status of the Runtimes service.
89
- * @returns Health check result with status and response time
90
- */
91
- checkRuntimesHealth(): Promise<HealthCheck>;
92
- };
93
- } & TBase;
@@ -1,229 +0,0 @@
1
- /*
2
- * Copyright (c) 2023-2025 Datalayer, Inc.
3
- * Distributed under the terms of the Modified BSD License.
4
- */
5
- /**
6
- * Runtimes mixin for managing computational environments and runtime instances.
7
- * @module client/mixins/RuntimesMixin
8
- */
9
- import * as environments from '../../api/runtimes/environments.js';
10
- import * as runtimes from '../../api/runtimes/runtimes.js';
11
- import * as snapshots from '../../api/runtimes/snapshots.js';
12
- import { EnvironmentDTO } from '../../models/EnvironmentDTO.js';
13
- import { RuntimeDTO } from '../../models/RuntimeDTO.js';
14
- import { CodeSandboxSnapshotDTO } from '../../models/CodeSandboxSnapshotDTO.js';
15
- import { HealthCheck } from '../../models/HealthCheck.js';
16
- /** Runtimes mixin providing computational environment and runtime management. */
17
- export function RuntimesMixin(Base) {
18
- return class extends Base {
19
- // ========================================================================
20
- // Helper Functions
21
- // ========================================================================
22
- _extractRuntimePodName(runtimePodNameOrInstance) {
23
- return typeof runtimePodNameOrInstance === 'string'
24
- ? runtimePodNameOrInstance
25
- : runtimePodNameOrInstance.podName;
26
- }
27
- _extractSnapshotId(snapshotIdOrInstance) {
28
- return typeof snapshotIdOrInstance === 'string'
29
- ? snapshotIdOrInstance
30
- : snapshotIdOrInstance.uid;
31
- }
32
- // ========================================================================
33
- // Environments
34
- // ========================================================================
35
- /**
36
- * List all available computational environments.
37
- * @returns Array of Environment model instances
38
- */
39
- async listEnvironments() {
40
- const token = this.getToken();
41
- const runtimesRunUrl = this.getRuntimesRunUrl();
42
- const response = await environments.listEnvironments(token, runtimesRunUrl);
43
- // Save for later use after first call
44
- this.environments = response.environments.map(env => new EnvironmentDTO(env, this));
45
- return this.environments;
46
- }
47
- // ========================================================================
48
- // Runtimes
49
- // ========================================================================
50
- /**
51
- * Create a new computational runtime.
52
- * @param environmentName - Name of the environment to use
53
- * @param type - Type of runtime
54
- * @param givenName - User-friendly name for the runtime
55
- * @param creditsLimit - Credits limit
56
- * @returns Created runtime
57
- */
58
- async createRuntime(environmentName, type, givenName, minutesLimit, fromSnapshotId) {
59
- if (!this.environments) {
60
- await this.listEnvironments();
61
- }
62
- if (this.environments) {
63
- const env = this.environments.find((e) => e.name === environmentName);
64
- if (!env) {
65
- throw new Error(`Environment "${environmentName}" not found. Available environments: ${this.environments.map((e) => e.name).join(', ')}`);
66
- }
67
- else {
68
- const token = this.getToken();
69
- const runtimesRunUrl = this.getRuntimesRunUrl();
70
- const creditsLimit = this.calculateCreditsFromMinutes(minutesLimit, env.burningRate);
71
- const data = {
72
- environment_name: environmentName,
73
- type,
74
- given_name: givenName,
75
- credits_limit: creditsLimit,
76
- from: fromSnapshotId,
77
- };
78
- const response = await runtimes.createRuntime(token, data, runtimesRunUrl);
79
- return new RuntimeDTO(response.runtime, this);
80
- }
81
- }
82
- else {
83
- throw new Error('Environments not loaded');
84
- }
85
- }
86
- /**
87
- * List all runtimes.
88
- * @returns Array of runtimes
89
- */
90
- async listRuntimes() {
91
- const token = this.getToken();
92
- const runtimesRunUrl = this.getRuntimesRunUrl();
93
- const response = await runtimes.listRuntimes(token, runtimesRunUrl);
94
- return response.runtimes.map(r => new RuntimeDTO(r, this));
95
- }
96
- /**
97
- * Get details for a specific runtime by pod name.
98
- * @param podName - Runtime pod name
99
- * @returns Runtime details
100
- */
101
- async getRuntime(podName) {
102
- const token = this.getToken();
103
- const runtimesRunUrl = this.getRuntimesRunUrl();
104
- const runtimeData = await runtimes.getRuntime(token, podName, runtimesRunUrl);
105
- return new RuntimeDTO(runtimeData, this);
106
- }
107
- /**
108
- * Delete a runtime permanently.
109
- * @param podName - Runtime pod name
110
- */
111
- async deleteRuntime(podName) {
112
- const token = this.getToken();
113
- const runtimesRunUrl = this.getRuntimesRunUrl();
114
- await runtimes.deleteRuntime(token, podName, runtimesRunUrl);
115
- }
116
- /**
117
- * Terminate all runtimes.
118
- * Lists all runtimes and deletes them in parallel.
119
- * @returns Array of results for each deletion (fulfilled or rejected)
120
- */
121
- async terminateAllRuntimes() {
122
- const token = this.getToken();
123
- const runtimesRunUrl = this.getRuntimesRunUrl();
124
- // List all runtimes
125
- const response = await runtimes.listRuntimes(token, runtimesRunUrl);
126
- // Delete all runtimes in parallel
127
- const deletePromises = response.runtimes.map(runtime => runtimes.deleteRuntime(token, runtime.pod_name, runtimesRunUrl));
128
- return Promise.allSettled(deletePromises);
129
- }
130
- // ========================================================================
131
- // Snapshots
132
- // ========================================================================
133
- /**
134
- * Create a snapshot of a runtime.
135
- * @param podName - Pod name of the runtime to snapshot
136
- * @param name - Name for the snapshot
137
- * @param description - Description of the snapshot
138
- * @param stop - Whether to stop the runtime after creating snapshot (defaults to false)
139
- * @returns Created snapshot
140
- */
141
- async createSnapshot(podName, name, description, stop = false) {
142
- const token = this.getToken();
143
- const runtimesRunUrl = this.getRuntimesRunUrl();
144
- const data = {
145
- pod_name: podName,
146
- name,
147
- description,
148
- stop,
149
- };
150
- const response = await snapshots.createSnapshot(token, data, runtimesRunUrl);
151
- return new CodeSandboxSnapshotDTO(response.snapshot, this);
152
- }
153
- /**
154
- * List all code sandbox snapshots.
155
- * @returns Array of snapshots
156
- */
157
- async listSnapshots() {
158
- const token = this.getToken();
159
- const runtimesRunUrl = this.getRuntimesRunUrl();
160
- const response = await snapshots.listSnapshots(token, runtimesRunUrl);
161
- return response.snapshots.map(s => new CodeSandboxSnapshotDTO(s, this));
162
- }
163
- /**
164
- * Get details for a specific snapshot by ID.
165
- * @param id - Snapshot ID
166
- * @returns Snapshot details
167
- */
168
- async getSnapshot(id) {
169
- const token = this.getToken();
170
- const runtimesRunUrl = this.getRuntimesRunUrl();
171
- const response = await snapshots.getSnapshot(token, id, runtimesRunUrl);
172
- return new CodeSandboxSnapshotDTO(response.snapshot, this);
173
- }
174
- /**
175
- * Delete a snapshot permanently.
176
- * @param id - Snapshot ID
177
- */
178
- async deleteSnapshot(id) {
179
- const token = this.getToken();
180
- const runtimesRunUrl = this.getRuntimesRunUrl();
181
- await snapshots.deleteSnapshot(token, id, runtimesRunUrl);
182
- }
183
- // ========================================================================
184
- // Service Health Checks
185
- // ========================================================================
186
- /**
187
- * Check the health status of the Runtimes service.
188
- * @returns Health check result with status and response time
189
- */
190
- async checkRuntimesHealth() {
191
- const startTime = Date.now();
192
- const errors = [];
193
- let status = 'unknown';
194
- let healthy = false;
195
- try {
196
- // Test basic connectivity by listing environments (lightweight operation)
197
- const environments = await this.listEnvironments();
198
- const responseTime = Date.now() - startTime;
199
- if (Array.isArray(environments)) {
200
- healthy = true;
201
- status = 'operational';
202
- }
203
- else {
204
- status = 'degraded';
205
- errors.push('Unexpected response format from environments endpoint');
206
- }
207
- return new HealthCheck({
208
- healthy,
209
- status,
210
- responseTime,
211
- errors,
212
- timestamp: new Date(),
213
- }, this);
214
- }
215
- catch (error) {
216
- const responseTime = Date.now() - startTime;
217
- status = 'down';
218
- errors.push(`Service unreachable: ${error}`);
219
- return new HealthCheck({
220
- healthy: false,
221
- status,
222
- responseTime,
223
- errors,
224
- timestamp: new Date(),
225
- }, this);
226
- }
227
- }
228
- };
229
- }