@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,153 +0,0 @@
1
- /*
2
- * Copyright (c) 2023-2025 Datalayer, Inc.
3
- * Distributed under the terms of the Modified BSD License.
4
- */
5
- import * as notebooks from '../api/spacer/notebooks.js';
6
- import { ItemDTO } from './ItemDTO.js';
7
- import { ItemTypes } from '../client/constants.js';
8
- import { validateJSON } from '../api/utils/validation.js';
9
- /**
10
- * Notebook domain model that extends the base Item class.
11
- * Provides notebook-specific functionality for managing Jupyter notebooks.
12
- *
13
- * @example
14
- * ```typescript
15
- * const notebook = await client.createNotebook(formData);
16
- * const kernelSpec = await notebook.getKernelSpec();
17
- * ```
18
- */
19
- export class NotebookDTO extends ItemDTO {
20
- /**
21
- * Create a Notebook instance.
22
- *
23
- * @param data - Notebook data from API
24
- * @param client - Client instance
25
- */
26
- constructor(data, client) {
27
- super(data, client);
28
- }
29
- // ========================================================================
30
- // Abstract Method Implementations
31
- // ========================================================================
32
- /** Document type identifier. */
33
- get type() {
34
- this._checkDeleted();
35
- return ItemTypes.NOTEBOOK;
36
- }
37
- /** The cached name of the notebook. */
38
- get name() {
39
- this._checkDeleted();
40
- return (this._data.name_t ||
41
- this._data.notebook_name_s ||
42
- this._data.name ||
43
- '');
44
- }
45
- /** The cached content. */
46
- get content() {
47
- this._checkDeleted();
48
- if (!this._data.content && this._data.model_s) {
49
- try {
50
- return JSON.parse(this._data.model_s);
51
- }
52
- catch {
53
- return this._data.model_s;
54
- }
55
- }
56
- return this._data.content;
57
- }
58
- /** Get the current name from API. */
59
- async getName() {
60
- this._checkDeleted();
61
- // For now, return cached value - implement API call if needed
62
- return this.name;
63
- }
64
- /** Get when the notebook was last updated from API. */
65
- async getUpdatedAt() {
66
- this._checkDeleted();
67
- const dateStr = this._data.updated_at || this._data.update_ts_dt;
68
- if (!dateStr) {
69
- throw new Error('No update timestamp available for notebook');
70
- }
71
- return new Date(dateStr);
72
- }
73
- /** Update the notebook. */
74
- async update(name, description) {
75
- // FIXME: check if both are needed, and use the existing values if only one provided
76
- this._checkDeleted();
77
- const token = this._client.getToken();
78
- const spacerRunUrl = this._client.getSpacerRunUrl();
79
- const updateData = {};
80
- if (name !== undefined)
81
- updateData.name = name;
82
- if (description !== undefined)
83
- updateData.description = description;
84
- await notebooks.updateNotebook(token, this.uid, updateData, spacerRunUrl);
85
- // FIXME: handle partial updates
86
- return this;
87
- }
88
- // ========================================================================
89
- // Notebook-specific Properties
90
- // ========================================================================
91
- /** File path within the space. */
92
- get path() {
93
- this._checkDeleted();
94
- return this._data.path || '';
95
- }
96
- /** Version number. */
97
- get version() {
98
- this._checkDeleted();
99
- return this._data.version || 0;
100
- }
101
- /** Notebook metadata. */
102
- get metadata() {
103
- this._checkDeleted();
104
- return this._data.metadata || {};
105
- }
106
- /** Kernel specification (cached). */
107
- get kernelSpec() {
108
- this._checkDeleted();
109
- return this._data.kernel_spec;
110
- }
111
- /** Description of the notebook. */
112
- get description() {
113
- this._checkDeleted();
114
- return this._data.description_t || '';
115
- }
116
- /** Get the notebook extension. */
117
- get extension() {
118
- this._checkDeleted();
119
- const ext = this._data.notebook_extension_s;
120
- return ext ? (ext.startsWith('.') ? ext : `.${ext}`) : '.ipynb';
121
- }
122
- /**
123
- * Get notebook data in camelCase format.
124
- * Returns only the core fields that consumers need.
125
- * This provides a stable interface regardless of API changes.
126
- *
127
- * @returns Core notebook data with camelCase properties
128
- */
129
- toJSON() {
130
- this._checkDeleted();
131
- const obj = {
132
- id: this.id,
133
- uid: this.uid,
134
- name: this.name,
135
- description: this.description,
136
- type: this.type,
137
- extension: this.extension,
138
- cdnUrl: this._data.cdn_url_s,
139
- };
140
- validateJSON(obj, 'Notebook');
141
- return obj;
142
- }
143
- /**
144
- * Get the raw notebook data exactly as received from the API.
145
- * This preserves the original snake_case naming from the API response.
146
- *
147
- * @returns Raw notebook data from API
148
- */
149
- rawData() {
150
- this._checkDeleted();
151
- return this._data;
152
- }
153
- }
@@ -1,41 +0,0 @@
1
- import { INotebookContent } from '@jupyterlab/nbformat';
2
- import { IUser } from './User';
3
- import { PageTagName } from './PageTag';
4
- import { ICodeSandboxSnapshot } from './CodeSandboxSnapshot';
5
- export type PageTheme = 'default';
6
- export type PageVariant = 'document' | 'cell' | 'notebook';
7
- /**
8
- * Page attributes.
9
- *
10
- * - Notebook
11
- * - Screen Capture
12
- * - Theme
13
- * - Tags
14
- * - Video Explainer
15
- * - Kernel Launcher Button
16
- * - Kernel Snapshot
17
- * - Share Button
18
- * - Stars Counter - 1 ⭐ -> 1 Credit
19
- */
20
- export type IPage = {
21
- id: string;
22
- variant: PageVariant;
23
- type: 'page';
24
- name: string;
25
- description: string;
26
- theme: PageTheme;
27
- tags: Array<PageTagName>;
28
- nbformat: INotebookContent;
29
- screenCapture?: string;
30
- creator?: IUser;
31
- creatorId?: string;
32
- selectedPrincipalUid?: string;
33
- selectedPrincipalKind?: 'user' | 'organization' | 'team';
34
- selectedOrganizationUid?: string;
35
- kernelSnapshot?: ICodeSandboxSnapshot;
36
- kernelSnapshotId?: string;
37
- createdAt?: string;
38
- updatedAt?: string;
39
- };
40
- export declare const asPage: (s: any) => IPage;
41
- export default IPage;
@@ -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 { asUser } from './User.js';
6
- import { asCodeSandboxSnapshot, } from './CodeSandboxSnapshot.js';
7
- export const asPage = (s) => {
8
- return {
9
- id: s.uid,
10
- type: 'page',
11
- variant: s.variant_s,
12
- name: s.name_t,
13
- description: s.description_t,
14
- theme: s.theme_s,
15
- nbformat: s.nbformat_s ? JSON.parse(s.nbformat_s) : undefined,
16
- screenCapture: s.screen_capture_cdn_url_s || s.screen_capture_s,
17
- tags: s.tags_ss ?? [],
18
- creator: s.creator ? asUser(s.creator) : undefined,
19
- creatorId: s.creator_uid,
20
- kernelSnapshot: s.kernel_snapshot
21
- ? asCodeSandboxSnapshot(s.kernel_snapshot)
22
- : undefined,
23
- kernelSnapshotId: s.kernel_snapshot_uid,
24
- };
25
- };
@@ -1,19 +0,0 @@
1
- import { CardIconColors } from '@primer/react-brand';
2
- import { Icon } from '@primer/octicons-react';
3
- type CardIconColorsType = (typeof CardIconColors)[number];
4
- export type PageTagMetadata = {
5
- fillColor: React.CSSProperties['backgroundColor'];
6
- };
7
- export type PageTagName = 'agent' | 'ai' | 'ai-agent' | 'deep-learning' | 'example' | 'llm' | 'notebook' | 'python' | 'pytorch' | 'spatial' | 'tutorial';
8
- export type PageTag = {
9
- id: string;
10
- text?: PageTagName;
11
- color: CardIconColorsType;
12
- Icon: Icon;
13
- metadata?: PageTagMetadata;
14
- };
15
- export declare const PAGE_TAGE_NONE: PageTag;
16
- export declare const PAGE_TAGS: PageTag[];
17
- export declare const PAGE_TAGS_BY_NAME_MAP: Map<PageTagName | undefined, PageTag>;
18
- export declare const PAGE_TAGS_BY_COLOR_MAP: Map<"blue" | "coral" | "gray" | "green" | "indigo" | "lime" | "orange" | "pink" | "purple" | "red" | "teal" | "yellow" | "default" | "lemon", PageTag>;
19
- export {};
@@ -1,94 +0,0 @@
1
- /*
2
- * Copyright (c) 2023-2025 Datalayer, Inc.
3
- * Distributed under the terms of the Modified BSD License.
4
- */
5
- import { CopilotIcon, ZapIcon } from '@primer/octicons-react';
6
- export const PAGE_TAGE_NONE = {
7
- id: '0',
8
- text: undefined,
9
- Icon: CopilotIcon,
10
- color: 'pink',
11
- };
12
- const PAGE_TAGE_AGENT = {
13
- id: '9',
14
- text: 'agent',
15
- Icon: CopilotIcon,
16
- color: 'teal',
17
- };
18
- const PAGE_TAGE_AI = {
19
- id: '1',
20
- text: 'ai',
21
- Icon: CopilotIcon,
22
- color: 'pink',
23
- };
24
- const PAGE_TAGE_AI_AGENT = {
25
- id: '10',
26
- text: 'ai-agent',
27
- Icon: CopilotIcon,
28
- color: 'purple',
29
- };
30
- const PAGE_TAGE_DEEP_LEARNING = {
31
- id: '2',
32
- text: 'deep-learning',
33
- Icon: ZapIcon,
34
- color: 'blue',
35
- };
36
- const PAGE_TAGE_EXAMPLE = {
37
- id: '3',
38
- text: 'example',
39
- Icon: CopilotIcon,
40
- color: 'lime',
41
- };
42
- const PAGE_TAGE_LLM = {
43
- id: '4',
44
- text: 'llm',
45
- Icon: CopilotIcon,
46
- color: 'coral',
47
- };
48
- const PAGE_TAGE_NOTEBOOK = {
49
- id: '11',
50
- text: 'notebook',
51
- Icon: CopilotIcon,
52
- color: 'blue',
53
- };
54
- const PAGE_TAGE_PYTHON = {
55
- id: '5',
56
- text: 'python',
57
- Icon: CopilotIcon,
58
- color: 'gray',
59
- metadata: { fillColor: 'var(--base-color-green-0)' },
60
- };
61
- const PAGE_TAGE_PYTORCH = {
62
- id: '6',
63
- text: 'pytorch',
64
- Icon: CopilotIcon,
65
- color: 'green',
66
- };
67
- const PAGE_TAGE_SPATIAL = {
68
- id: '7',
69
- text: 'spatial',
70
- Icon: CopilotIcon,
71
- color: 'lemon',
72
- };
73
- const PAGE_TAGE_TUTORIAL = {
74
- id: '8',
75
- text: 'tutorial',
76
- Icon: CopilotIcon,
77
- color: 'orange',
78
- metadata: { fillColor: 'yellow' },
79
- };
80
- export const PAGE_TAGS = [
81
- PAGE_TAGE_AGENT,
82
- PAGE_TAGE_AI,
83
- PAGE_TAGE_AI_AGENT,
84
- PAGE_TAGE_DEEP_LEARNING,
85
- PAGE_TAGE_EXAMPLE,
86
- PAGE_TAGE_LLM,
87
- PAGE_TAGE_NOTEBOOK,
88
- PAGE_TAGE_PYTHON,
89
- PAGE_TAGE_PYTORCH,
90
- PAGE_TAGE_SPATIAL,
91
- PAGE_TAGE_TUTORIAL,
92
- ];
93
- export const PAGE_TAGS_BY_NAME_MAP = new Map(PAGE_TAGS.map(t => [t.text, t]));
94
- export const PAGE_TAGS_BY_COLOR_MAP = new Map(PAGE_TAGS.map(t => [t.color, t]));
@@ -1,89 +0,0 @@
1
- /**
2
- * Project domain model for the Datalayer Client.
3
- *
4
- * Projects are spaces with variant='project' that can have attached agents.
5
- * This is a standalone model (no inheritance from SpaceDTO) to avoid
6
- * circular dependency issues in the module graph.
7
- *
8
- * @module models/ProjectDTO
9
- */
10
- import type { SpaceData } from './SpaceDTO';
11
- /**
12
- * Stable public interface for Project data.
13
- */
14
- export interface ProjectJSON {
15
- uid: string;
16
- id: string;
17
- handle: string;
18
- name: string;
19
- description: string;
20
- variant: string;
21
- isPublic: boolean;
22
- createdAt: string;
23
- attachedAgentPodName: string | null;
24
- attachedAgentSpecId: string | null;
25
- attachedAgentGivenName: string | null;
26
- hasAgent: boolean;
27
- }
28
- /**
29
- * Default items (notebook UID and document UID) for a project.
30
- */
31
- export interface ProjectDefaultItems {
32
- defaultNotebookUid: string | null;
33
- defaultDocumentUid: string | null;
34
- }
35
- /**
36
- * Project domain model wrapping raw space data with project-specific accessors.
37
- *
38
- * @example
39
- * ```typescript
40
- * const projects = await client.getProjects();
41
- * const project = projects[0];
42
- * console.log(project.hasAgent); // false
43
- * await client.assignAgent(project.uid, 'my-agent-pod');
44
- * ```
45
- */
46
- export declare class ProjectDTO {
47
- private _data;
48
- private _deleted;
49
- private _createdAt;
50
- constructor(data: SpaceData);
51
- /** Unique identifier for the project. */
52
- get uid(): string;
53
- /** Internal numeric/string ID from the backend. Falls back to UID when not present. SDK client methods accept `uid` directly. */
54
- get id(): string;
55
- /** URL-friendly handle. */
56
- get handle(): string;
57
- /** Project name. */
58
- get name(): string;
59
- /** Project description. */
60
- get description(): string;
61
- /** Space variant (should be 'project'). */
62
- get variant(): string;
63
- /** Whether the project is public. */
64
- get isPublic(): boolean;
65
- /** Creation date (stable across calls). */
66
- get createdAt(): Date;
67
- /** Attached agent runtime pod name, if any. */
68
- get attachedAgentPodName(): string | undefined;
69
- /** Attached agentspec ID (e.g., 'data-acquisition'), if any. */
70
- get attachedAgentSpecId(): string | undefined;
71
- /** Human-readable name of the attached agent runtime, if any. */
72
- get attachedAgentGivenName(): string | undefined;
73
- /** Whether an agent is currently attached to this project. */
74
- get hasAgent(): boolean;
75
- /** Mark this project as deleted. */
76
- markDeleted(): void;
77
- /** Whether this project has been deleted. */
78
- get isDeleted(): boolean;
79
- /**
80
- * Get project data in camelCase format.
81
- * @returns Project data with camelCase properties
82
- */
83
- toJSON(): ProjectJSON;
84
- /** Get raw space data as received from the API. */
85
- rawData(): SpaceData;
86
- /** String representation of the project. */
87
- toString(): string;
88
- private _checkDeleted;
89
- }
@@ -1,131 +0,0 @@
1
- /*
2
- * Copyright (c) 2023-2025 Datalayer, Inc.
3
- * Distributed under the terms of the Modified BSD License.
4
- */
5
- /**
6
- * Project domain model wrapping raw space data with project-specific accessors.
7
- *
8
- * @example
9
- * ```typescript
10
- * const projects = await client.getProjects();
11
- * const project = projects[0];
12
- * console.log(project.hasAgent); // false
13
- * await client.assignAgent(project.uid, 'my-agent-pod');
14
- * ```
15
- */
16
- export class ProjectDTO {
17
- _data;
18
- _deleted = false;
19
- _createdAt;
20
- constructor(data) {
21
- this._data = data;
22
- // Cache creation date at construction to ensure stable value
23
- this._createdAt = data.creation_ts_dt
24
- ? new Date(data.creation_ts_dt)
25
- : new Date();
26
- }
27
- /** Unique identifier for the project. */
28
- get uid() {
29
- this._checkDeleted();
30
- return this._data.uid;
31
- }
32
- /** Internal numeric/string ID from the backend. Falls back to UID when not present. SDK client methods accept `uid` directly. */
33
- get id() {
34
- this._checkDeleted();
35
- return this._data.id ?? this._data.uid;
36
- }
37
- /** URL-friendly handle. */
38
- get handle() {
39
- this._checkDeleted();
40
- return this._data.handle_s;
41
- }
42
- /** Project name. */
43
- get name() {
44
- this._checkDeleted();
45
- return this._data.name_t;
46
- }
47
- /** Project description. */
48
- get description() {
49
- this._checkDeleted();
50
- return this._data.description_t ?? '';
51
- }
52
- /** Space variant (should be 'project'). */
53
- get variant() {
54
- this._checkDeleted();
55
- return this._data.variant_s;
56
- }
57
- /** Whether the project is public. */
58
- get isPublic() {
59
- this._checkDeleted();
60
- return this._data.public_b ?? false;
61
- }
62
- /** Creation date (stable across calls). */
63
- get createdAt() {
64
- this._checkDeleted();
65
- return this._createdAt;
66
- }
67
- /** Attached agent runtime pod name, if any. */
68
- get attachedAgentPodName() {
69
- this._checkDeleted();
70
- return this._data.attached_agent_pod_name_s || undefined;
71
- }
72
- /** Attached agentspec ID (e.g., 'data-acquisition'), if any. */
73
- get attachedAgentSpecId() {
74
- this._checkDeleted();
75
- return this._data.attached_agent_spec_id_s || undefined;
76
- }
77
- /** Human-readable name of the attached agent runtime, if any. */
78
- get attachedAgentGivenName() {
79
- this._checkDeleted();
80
- return this._data.attached_agent_given_name_s || undefined;
81
- }
82
- /** Whether an agent is currently attached to this project. */
83
- get hasAgent() {
84
- this._checkDeleted();
85
- return !!this._data.attached_agent_pod_name_s;
86
- }
87
- /** Mark this project as deleted. */
88
- markDeleted() {
89
- this._deleted = true;
90
- }
91
- /** Whether this project has been deleted. */
92
- get isDeleted() {
93
- return this._deleted;
94
- }
95
- /**
96
- * Get project data in camelCase format.
97
- * @returns Project data with camelCase properties
98
- */
99
- toJSON() {
100
- this._checkDeleted();
101
- return {
102
- uid: this.uid,
103
- id: this.id,
104
- handle: this.handle,
105
- name: this.name,
106
- description: this.description,
107
- variant: this.variant,
108
- isPublic: this.isPublic,
109
- createdAt: this.createdAt.toISOString(),
110
- attachedAgentPodName: this.attachedAgentPodName ?? null,
111
- attachedAgentSpecId: this.attachedAgentSpecId ?? null,
112
- attachedAgentGivenName: this.attachedAgentGivenName ?? null,
113
- hasAgent: this.hasAgent,
114
- };
115
- }
116
- /** Get raw space data as received from the API. */
117
- rawData() {
118
- this._checkDeleted();
119
- return this._data;
120
- }
121
- /** String representation of the project. */
122
- toString() {
123
- this._checkDeleted();
124
- return `Project(${this._data.uid}, ${this._data.name_t})`;
125
- }
126
- _checkDeleted() {
127
- if (this._deleted) {
128
- throw new Error(`Project ${this._data.uid} has been deleted and no longer exists`);
129
- }
130
- }
131
- }
@@ -1,123 +0,0 @@
1
- import { Kernel } from '@jupyterlab/services';
2
- export declare const BACKWARDS_COMPATIBLE_KERNEL_TYPES_MAP: {
3
- default: IRuntimeType;
4
- snippet: IRuntimeType;
5
- notebook: IRuntimeType;
6
- cell: IRuntimeType;
7
- };
8
- /**
9
- * Error thrown when a runtime has been created
10
- * but it can ont be reached.
11
- */
12
- export declare class RuntimeUnreachable extends Error {
13
- name: string;
14
- }
15
- /**
16
- * Runtime location.
17
- */
18
- export type IRuntimeLocation = 'browser' | 'local' | string;
19
- /**
20
- * Runtime model.
21
- */
22
- export interface IRuntimeModel extends IRuntimePod, Kernel.IModel {
23
- }
24
- /**
25
- * Runtime pod.
26
- */
27
- export interface IRuntimePod {
28
- /**
29
- * Environment display name
30
- */
31
- environment_title: string;
32
- /**
33
- * Environment name
34
- */
35
- environment_name: string;
36
- /**
37
- * Runtime name
38
- */
39
- pod_name: string;
40
- /**
41
- * Runtime ingress URL
42
- */
43
- ingress: string;
44
- /**
45
- * Runtime user given name
46
- */
47
- given_name: string;
48
- /**
49
- * Runtime type
50
- */
51
- type: IRuntimeType;
52
- /**
53
- * Server authentication token
54
- */
55
- token: string;
56
- /**
57
- * Credits burning rate per second
58
- */
59
- burning_rate: number;
60
- /**
61
- * Kernel reservation ID
62
- */
63
- reservation_id?: string;
64
- /**
65
- * Runtime usage starting timestamp
66
- */
67
- started_at: string;
68
- /**
69
- * Runtime credits reservation expiration timestamp
70
- */
71
- expired_at?: string;
72
- }
73
- /**
74
- * Runtime description.
75
- */
76
- export interface IRuntimeDesc {
77
- /**
78
- * Runtime ID.
79
- */
80
- id?: string;
81
- /**
82
- * Runtime Kernel ID.
83
- */
84
- kernelId?: string;
85
- /**
86
- * Runtime name.
87
- */
88
- name: string;
89
- /**
90
- * Runtime language.
91
- */
92
- language: string;
93
- /**
94
- * Runtime location.
95
- */
96
- location: IRuntimeLocation;
97
- /**
98
- * Runtime display name.
99
- */
100
- displayName?: string;
101
- /**
102
- * Runtime parameters.
103
- */
104
- params?: Record<string, any>;
105
- /**
106
- * Runtime credits burning rate.
107
- */
108
- burningRate?: number;
109
- /**
110
- * Runtime Pod name (if applicable).
111
- */
112
- podName?: string;
113
- }
114
- /**
115
- * Runtime type.
116
- *
117
- * TODO refactor with type `IRuntimeLocation`
118
- */
119
- export type IRuntimeType = 'notebook' | 'cell';
120
- /**
121
- * Runtime optional capabilities.
122
- */
123
- export type IRuntimeCapabilities = 'user_storage';
@@ -1,18 +0,0 @@
1
- /*
2
- * Copyright (c) 2023-2025 Datalayer, Inc.
3
- * Distributed under the terms of the Modified BSD License.
4
- */
5
- export const BACKWARDS_COMPATIBLE_KERNEL_TYPES_MAP = {
6
- // Backwards compatible mapping.
7
- default: 'notebook',
8
- snippet: 'cell',
9
- notebook: 'notebook',
10
- cell: 'cell',
11
- };
12
- /**
13
- * Error thrown when a runtime has been created
14
- * but it can ont be reached.
15
- */
16
- export class RuntimeUnreachable extends Error {
17
- name = 'RuntimeUnreachable';
18
- }