@datalayer/core 1.0.24 → 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 (364) hide show
  1. package/README.md +35 -24
  2. package/lib/api/constants.d.ts +3 -0
  3. package/lib/api/constants.js +3 -0
  4. package/lib/api/index.d.ts +0 -8
  5. package/lib/api/index.js +0 -8
  6. package/lib/cli-login.js +167 -0
  7. package/lib/client/base.d.ts +0 -3
  8. package/lib/client/base.js +0 -2
  9. package/lib/client/index.d.ts +10 -98
  10. package/lib/client/index.js +12 -21
  11. package/lib/components/avatars/UserAvatar.d.ts +16 -0
  12. package/lib/components/avatars/UserAvatar.js +47 -0
  13. package/lib/components/avatars/index.d.ts +1 -0
  14. package/lib/components/avatars/index.js +1 -0
  15. package/lib/components/billing/BillableAccountSelect.js +4 -0
  16. package/lib/components/billing/index.js +4 -0
  17. package/lib/components/checkout/StripeCheckout.js +48 -2
  18. package/lib/components/context/index.d.ts +0 -1
  19. package/lib/components/context/index.js +0 -1
  20. package/lib/components/display/DisplayHandle.d.ts +12 -0
  21. package/lib/components/display/DisplayHandle.js +11 -0
  22. package/lib/components/display/LiveRelativeTime.d.ts +1 -10
  23. package/lib/components/display/LiveRelativeTime.js +5 -16
  24. package/lib/components/display/index.d.ts +1 -0
  25. package/lib/components/display/index.js +1 -0
  26. package/lib/components/flashes/index.d.ts +0 -1
  27. package/lib/components/flashes/index.js +0 -1
  28. package/lib/components/index.d.ts +2 -0
  29. package/lib/components/index.js +2 -0
  30. package/lib/components/principal/Principal.d.ts +7 -0
  31. package/lib/components/principal/Principal.js +153 -16
  32. package/lib/components/principal/PrincipalAvatar.d.ts +1 -1
  33. package/lib/components/principal/PrincipalAvatar.js +4 -28
  34. package/lib/components/principal/PrincipalBadge.js +4 -4
  35. package/lib/components/principal/PrincipalDetailsOverlay.d.ts +4 -2
  36. package/lib/components/principal/PrincipalDetailsOverlay.js +27 -7
  37. package/lib/components/principal/PrincipalSwitcherMenu.js +76 -39
  38. package/lib/components/progress/index.d.ts +0 -1
  39. package/lib/components/progress/index.js +0 -1
  40. package/lib/components/sharing/ShareAccessComponent.d.ts +3 -2
  41. package/lib/components/sharing/ShareAccessComponent.js +180 -133
  42. package/lib/components/sharing/SharingEditor.js +4 -0
  43. package/lib/components/snippets/index.d.ts +1 -1
  44. package/lib/components/snippets/index.js +1 -1
  45. package/lib/components/students/StudentResultCircle.d.ts +21 -0
  46. package/lib/components/students/StudentResultCircle.js +59 -0
  47. package/lib/components/students/index.d.ts +1 -1
  48. package/lib/components/students/index.js +1 -1
  49. package/lib/components/time/LiveRelativeTime.d.ts +14 -0
  50. package/lib/components/time/LiveRelativeTime.js +43 -0
  51. package/lib/components/time/index.d.ts +1 -0
  52. package/lib/components/time/index.js +9 -0
  53. package/lib/components/timeline/Timeline.d.ts +20 -0
  54. package/lib/components/timeline/Timeline.js +90 -0
  55. package/lib/components/timeline/index.d.ts +1 -0
  56. package/lib/components/timeline/index.js +9 -0
  57. package/lib/components/tokens/index.d.ts +1 -1
  58. package/lib/components/tokens/index.js +1 -1
  59. package/lib/components/toolbars/index.d.ts +1 -3
  60. package/lib/components/toolbars/index.js +1 -3
  61. package/lib/hooks/cacheConverters.d.ts +21 -0
  62. package/lib/hooks/cacheConverters.js +110 -0
  63. package/lib/hooks/index.d.ts +0 -2
  64. package/lib/hooks/index.js +0 -2
  65. package/lib/hooks/useCache.d.ts +65 -36
  66. package/lib/hooks/useCache.js +424 -65
  67. package/lib/hooks/useDatalayer.js +3 -1
  68. package/lib/hooks/useIAM.js +1 -3
  69. package/lib/hooks/useLocationHandles.d.ts +3 -1
  70. package/lib/hooks/useLocationHandles.js +2 -1
  71. package/lib/hooks/usePrincipalStore.d.ts +2 -2
  72. package/lib/hooks/usePrincipalStore.js +97 -14
  73. package/lib/hooks/useProjectStore.d.ts +1 -1
  74. package/lib/hooks/useSelectedPrincipal.js +1 -1
  75. package/lib/hooks/useUser.js +19 -2
  76. package/lib/index.d.ts +1 -6
  77. package/lib/index.js +1 -13
  78. package/lib/main.js +3 -3
  79. package/lib/mocks/index.js +1 -1
  80. package/lib/mocks/models/index.d.ts +0 -1
  81. package/lib/mocks/models/index.js +0 -1
  82. package/lib/models/Datasource.d.ts +2 -2
  83. package/lib/models/IAM.d.ts +1 -1
  84. package/lib/models/IAMToken.d.ts +1 -1
  85. package/lib/models/School.d.ts +12 -3
  86. package/lib/models/Secret.d.ts +2 -2
  87. package/lib/models/Student.d.ts +13 -3
  88. package/lib/models/Usage.d.ts +11 -1
  89. package/lib/models/UserDTO.d.ts +2 -2
  90. package/lib/models/index.d.ts +0 -30
  91. package/lib/models/index.js +0 -30
  92. package/lib/routes/index.d.ts +1 -0
  93. package/lib/routes/index.js +1 -0
  94. package/lib/routes/publicPaths.d.ts +23 -0
  95. package/lib/routes/publicPaths.js +74 -0
  96. package/lib/state/State.d.ts +0 -12
  97. package/lib/state/State.js +0 -12
  98. package/lib/state/substates/CoreState.js +1 -1
  99. package/lib/state/substates/LayoutState.d.ts +12 -1
  100. package/lib/state/substates/index.d.ts +0 -7
  101. package/lib/state/substates/index.js +0 -7
  102. package/lib/utils/Date.d.ts +7 -0
  103. package/lib/utils/Date.js +43 -10
  104. package/lib/utils/Handles.js +3 -1
  105. package/lib/utils/index.d.ts +1 -1
  106. package/lib/utils/index.js +1 -1
  107. package/lib/views/api-keys/APIKeyEdit.d.ts +8 -0
  108. package/lib/views/{iam-tokens/IAMTokenEdit.js → api-keys/APIKeyEdit.js} +31 -31
  109. package/lib/views/api-keys/APIKeyNew.d.ts +8 -0
  110. package/lib/views/api-keys/APIKeyNew.js +143 -0
  111. package/lib/views/api-keys/APIKeys.d.ts +12 -0
  112. package/lib/views/api-keys/APIKeys.js +128 -0
  113. package/lib/views/api-keys/APIKeysStandalone.d.ts +2 -0
  114. package/lib/views/api-keys/APIKeysStandalone.js +117 -0
  115. package/lib/views/api-keys/index.d.ts +3 -0
  116. package/lib/{mocks/jupyter → views/api-keys}/index.js +3 -1
  117. package/lib/views/datasources/DatasourceDetail.d.ts +1 -1
  118. package/lib/views/datasources/DatasourceNew.d.ts +1 -1
  119. package/lib/views/datasources/Datasources.d.ts +1 -1
  120. package/lib/views/datasources/Datasources.js +12 -3
  121. package/lib/views/iam/SignInSimple.d.ts +37 -1
  122. package/lib/views/iam/SignInSimple.js +110 -12
  123. package/package.json +5 -3
  124. package/lib/App.css +0 -47
  125. package/lib/App.d.ts +0 -3
  126. package/lib/App.js +0 -21
  127. package/lib/api/runtimes/checkpoints.d.ts +0 -122
  128. package/lib/api/runtimes/checkpoints.js +0 -118
  129. package/lib/api/runtimes/environments.d.ts +0 -9
  130. package/lib/api/runtimes/environments.js +0 -29
  131. package/lib/api/runtimes/healthz.d.ts +0 -15
  132. package/lib/api/runtimes/healthz.js +0 -44
  133. package/lib/api/runtimes/index.d.ts +0 -12
  134. package/lib/api/runtimes/index.js +0 -16
  135. package/lib/api/runtimes/runtimes.d.ts +0 -138
  136. package/lib/api/runtimes/runtimes.js +0 -230
  137. package/lib/api/runtimes/snapshots.d.ts +0 -38
  138. package/lib/api/runtimes/snapshots.js +0 -82
  139. package/lib/api/spacer/documents.d.ts +0 -12
  140. package/lib/api/spacer/documents.js +0 -43
  141. package/lib/api/spacer/healthz.d.ts +0 -15
  142. package/lib/api/spacer/healthz.js +0 -44
  143. package/lib/api/spacer/index.d.ts +0 -15
  144. package/lib/api/spacer/index.js +0 -19
  145. package/lib/api/spacer/items.d.ts +0 -25
  146. package/lib/api/spacer/items.js +0 -55
  147. package/lib/api/spacer/lexicals.d.ts +0 -34
  148. package/lib/api/spacer/lexicals.js +0 -89
  149. package/lib/api/spacer/notebooks.d.ts +0 -34
  150. package/lib/api/spacer/notebooks.js +0 -89
  151. package/lib/api/spacer/spaces.d.ts +0 -84
  152. package/lib/api/spacer/spaces.js +0 -170
  153. package/lib/api/spacer/users.d.ts +0 -9
  154. package/lib/api/spacer/users.js +0 -29
  155. package/lib/client/mixins/RuntimesMixin.d.ts +0 -93
  156. package/lib/client/mixins/RuntimesMixin.js +0 -229
  157. package/lib/client/mixins/SpacerMixin.d.ts +0 -210
  158. package/lib/client/mixins/SpacerMixin.js +0 -615
  159. package/lib/client/utils/spacerUtils.d.ts +0 -18
  160. package/lib/client/utils/spacerUtils.js +0 -32
  161. package/lib/collaboration/DatalayerCollaboration.d.ts +0 -13
  162. package/lib/collaboration/DatalayerCollaboration.js +0 -28
  163. package/lib/collaboration/DatalayerCollaborationProvider.d.ts +0 -60
  164. package/lib/collaboration/DatalayerCollaborationProvider.js +0 -163
  165. package/lib/collaboration/index.d.ts +0 -2
  166. package/lib/collaboration/index.js +0 -6
  167. package/lib/components/context/SpaceSelect.d.ts +0 -2
  168. package/lib/components/context/SpaceSelect.js +0 -42
  169. package/lib/components/flashes/FlashDisclaimer.d.ts +0 -2
  170. package/lib/components/flashes/FlashDisclaimer.js +0 -17
  171. package/lib/components/icons/ArtifactIcon.d.ts +0 -10
  172. package/lib/components/icons/ArtifactIcon.js +0 -58
  173. package/lib/components/icons/index.d.ts +0 -1
  174. package/lib/components/icons/index.js +0 -5
  175. package/lib/components/nbgrader/NbGradesDetails.d.ts +0 -5
  176. package/lib/components/nbgrader/NbGradesDetails.js +0 -14
  177. package/lib/components/nbgrader/index.d.ts +0 -1
  178. package/lib/components/nbgrader/index.js +0 -5
  179. package/lib/components/progress/CreditsIndicator.d.ts +0 -33
  180. package/lib/components/progress/CreditsIndicator.js +0 -23
  181. package/lib/components/runtimes/RuntimeCellVariables.d.ts +0 -39
  182. package/lib/components/runtimes/RuntimeCellVariables.js +0 -172
  183. package/lib/components/runtimes/RuntimeCellVariablesDialog.d.ts +0 -37
  184. package/lib/components/runtimes/RuntimeCellVariablesDialog.js +0 -101
  185. package/lib/components/runtimes/RuntimeLauncherDialog.d.ts +0 -57
  186. package/lib/components/runtimes/RuntimeLauncherDialog.js +0 -275
  187. package/lib/components/runtimes/RuntimePickerBase.d.ts +0 -69
  188. package/lib/components/runtimes/RuntimePickerBase.js +0 -122
  189. package/lib/components/runtimes/RuntimePickerCell.d.ts +0 -34
  190. package/lib/components/runtimes/RuntimePickerCell.js +0 -104
  191. package/lib/components/runtimes/RuntimePickerNotebook.d.ts +0 -42
  192. package/lib/components/runtimes/RuntimePickerNotebook.js +0 -232
  193. package/lib/components/runtimes/RuntimeReservationControl.d.ts +0 -47
  194. package/lib/components/runtimes/RuntimeReservationControl.js +0 -42
  195. package/lib/components/runtimes/RuntimeSimplePicker.d.ts +0 -38
  196. package/lib/components/runtimes/RuntimeSimplePicker.js +0 -155
  197. package/lib/components/runtimes/RuntimeTransfer.d.ts +0 -16
  198. package/lib/components/runtimes/RuntimeTransfer.js +0 -5
  199. package/lib/components/runtimes/RuntimeUtils.d.ts +0 -17
  200. package/lib/components/runtimes/RuntimeUtils.js +0 -178
  201. package/lib/components/runtimes/RuntimeVariables.d.ts +0 -38
  202. package/lib/components/runtimes/RuntimeVariables.js +0 -75
  203. package/lib/components/runtimes/index.d.ts +0 -11
  204. package/lib/components/runtimes/index.js +0 -15
  205. package/lib/components/snapshots/SandboxSnapshotMenu.d.ts +0 -33
  206. package/lib/components/snapshots/SandboxSnapshotMenu.js +0 -169
  207. package/lib/components/snapshots/index.d.ts +0 -1
  208. package/lib/components/snapshots/index.js +0 -5
  209. package/lib/components/snippets/SnippetDialog.d.ts +0 -42
  210. package/lib/components/snippets/SnippetDialog.js +0 -42
  211. package/lib/components/students/StudentItemStatus.d.ts +0 -7
  212. package/lib/components/students/StudentItemStatus.js +0 -66
  213. package/lib/components/tokens/SpaceVariantToken.d.ts +0 -5
  214. package/lib/components/tokens/SpaceVariantToken.js +0 -23
  215. package/lib/components/toolbars/AssignmentEditorToolbar.d.ts +0 -4
  216. package/lib/components/toolbars/AssignmentEditorToolbar.js +0 -18
  217. package/lib/components/toolbars/DocumentEditorToolbar.d.ts +0 -2
  218. package/lib/components/toolbars/DocumentEditorToolbar.js +0 -12
  219. package/lib/components/toolbars/NotebookEditorToolbar.d.ts +0 -29
  220. package/lib/components/toolbars/NotebookEditorToolbar.js +0 -30
  221. package/lib/examples/CellExample.d.ts +0 -6
  222. package/lib/examples/CellExample.js +0 -20
  223. package/lib/examples/NotebookExample.d.ts +0 -6
  224. package/lib/examples/NotebookExample.js +0 -19
  225. package/lib/examples/lexical-theme.css +0 -436
  226. package/lib/examples/notebooks/IPyWidgetsExample.ipynb.json +0 -101
  227. package/lib/examples/notebooks/IPyWidgetsExampleWithState.ipynb.json +0 -112
  228. package/lib/examples/notebooks/Lite.ipynb.json +0 -128
  229. package/lib/examples/notebooks/Matplotlib.ipynb.json +0 -137
  230. package/lib/examples/notebooks/NotebookExample1.ipynb.json +0 -126
  231. package/lib/examples/notebooks/NotebookExample2.ipynb.json +0 -48
  232. package/lib/examples/notebooks/NotebookOutputs.ipynb.json +0 -49
  233. package/lib/examples/notebooks/NotebookToCExample.ipynb.json +0 -102
  234. package/lib/examples/notebooks/PyGWalker.ipynb.json +0 -55
  235. package/lib/hooks/useCellOutputshot.d.ts +0 -4
  236. package/lib/hooks/useCellOutputshot.js +0 -25
  237. package/lib/hooks/useProjects.d.ts +0 -628
  238. package/lib/hooks/useProjects.js +0 -190
  239. package/lib/hooks/useRuntimes.d.ts +0 -5
  240. package/lib/hooks/useRuntimes.js +0 -34
  241. package/lib/mocks/models/CourseMock.d.ts +0 -6
  242. package/lib/mocks/models/CourseMock.js +0 -29
  243. package/lib/mocks/models/SpaceMock.d.ts +0 -6
  244. package/lib/mocks/models/SpaceMock.js +0 -25
  245. package/lib/models/Assignment.d.ts +0 -7
  246. package/lib/models/Assignment.js +0 -5
  247. package/lib/models/Cell.d.ts +0 -8
  248. package/lib/models/Cell.js +0 -5
  249. package/lib/models/CodeBlock.d.ts +0 -10
  250. package/lib/models/CodeBlock.js +0 -5
  251. package/lib/models/CodeSandboxSnapshot.d.ts +0 -92
  252. package/lib/models/CodeSandboxSnapshot.js +0 -13
  253. package/lib/models/CodeSandboxSnapshotDTO.d.ts +0 -173
  254. package/lib/models/CodeSandboxSnapshotDTO.js +0 -139
  255. package/lib/models/CodefeedBlocks.d.ts +0 -7
  256. package/lib/models/CodefeedBlocks.js +0 -5
  257. package/lib/models/Content.d.ts +0 -5
  258. package/lib/models/Content.js +0 -5
  259. package/lib/models/Course.d.ts +0 -17
  260. package/lib/models/Course.js +0 -5
  261. package/lib/models/Dataset.d.ts +0 -16
  262. package/lib/models/Dataset.js +0 -5
  263. package/lib/models/Document.d.ts +0 -8
  264. package/lib/models/Document.js +0 -5
  265. package/lib/models/Environment.d.ts +0 -86
  266. package/lib/models/Environment.js +0 -5
  267. package/lib/models/EnvironmentDTO.d.ts +0 -125
  268. package/lib/models/EnvironmentDTO.js +0 -88
  269. package/lib/models/Exercise.d.ts +0 -16
  270. package/lib/models/Exercise.js +0 -5
  271. package/lib/models/Item.d.ts +0 -20
  272. package/lib/models/Item.js +0 -5
  273. package/lib/models/ItemDTO.d.ts +0 -74
  274. package/lib/models/ItemDTO.js +0 -186
  275. package/lib/models/ItemType.d.ts +0 -2
  276. package/lib/models/ItemType.js +0 -5
  277. package/lib/models/Lesson.d.ts +0 -5
  278. package/lib/models/Lesson.js +0 -5
  279. package/lib/models/LexicalDTO.d.ts +0 -155
  280. package/lib/models/LexicalDTO.js +0 -157
  281. package/lib/models/Library.d.ts +0 -10
  282. package/lib/models/Library.js +0 -5
  283. package/lib/models/Notebook.d.ts +0 -11
  284. package/lib/models/Notebook.js +0 -5
  285. package/lib/models/NotebookDTO.d.ts +0 -96
  286. package/lib/models/NotebookDTO.js +0 -153
  287. package/lib/models/Page.d.ts +0 -41
  288. package/lib/models/Page.js +0 -25
  289. package/lib/models/PageTag.d.ts +0 -19
  290. package/lib/models/PageTag.js +0 -94
  291. package/lib/models/ProjectDTO.d.ts +0 -89
  292. package/lib/models/ProjectDTO.js +0 -131
  293. package/lib/models/Runtime.d.ts +0 -123
  294. package/lib/models/Runtime.js +0 -18
  295. package/lib/models/RuntimeDTO.d.ts +0 -191
  296. package/lib/models/RuntimeDTO.js +0 -204
  297. package/lib/models/Space.d.ts +0 -35
  298. package/lib/models/Space.js +0 -66
  299. package/lib/models/SpaceDTO.d.ts +0 -334
  300. package/lib/models/SpaceDTO.js +0 -244
  301. package/lib/models/SpaceItem.d.ts +0 -10
  302. package/lib/models/SpaceItem.js +0 -5
  303. package/lib/models/SpaceMember.d.ts +0 -6
  304. package/lib/models/SpaceMember.js +0 -5
  305. package/lib/models/StudentItem.d.ts +0 -21
  306. package/lib/models/StudentItem.js +0 -5
  307. package/lib/services/DatalayerServiceManager.d.ts +0 -22
  308. package/lib/services/DatalayerServiceManager.js +0 -69
  309. package/lib/services/index.d.ts +0 -4
  310. package/lib/services/index.js +0 -7
  311. package/lib/services/reconnectToRuntime.d.ts +0 -32
  312. package/lib/services/reconnectToRuntime.js +0 -59
  313. package/lib/state/substates/CellState.d.ts +0 -12
  314. package/lib/state/substates/CellState.js +0 -22
  315. package/lib/state/substates/DocumentState.d.ts +0 -10
  316. package/lib/state/substates/DocumentState.js +0 -14
  317. package/lib/state/substates/GradeState.d.ts +0 -10
  318. package/lib/state/substates/GradeState.js +0 -14
  319. package/lib/state/substates/JupyterLabState.d.ts +0 -16
  320. package/lib/state/substates/JupyterLabState.js +0 -17
  321. package/lib/state/substates/NbformatState.d.ts +0 -13
  322. package/lib/state/substates/NbformatState.js +0 -16
  323. package/lib/state/substates/RuntimesState.d.ts +0 -79
  324. package/lib/state/substates/RuntimesState.js +0 -180
  325. package/lib/state/substates/SpaceState.d.ts +0 -11
  326. package/lib/state/substates/SpaceState.js +0 -16
  327. package/lib/stateful/index.d.ts +0 -2
  328. package/lib/stateful/index.js +0 -6
  329. package/lib/stateful/jupyter/exec/Python.d.ts +0 -5
  330. package/lib/stateful/jupyter/exec/Python.js +0 -100
  331. package/lib/stateful/jupyter/exec/Snippets.d.ts +0 -105
  332. package/lib/stateful/jupyter/exec/Snippets.js +0 -101
  333. package/lib/stateful/jupyter/exec/index.d.ts +0 -2
  334. package/lib/stateful/jupyter/exec/index.js +0 -6
  335. package/lib/stateful/jupyter/index.d.ts +0 -2
  336. package/lib/stateful/jupyter/index.js +0 -6
  337. package/lib/stateful/jupyter/kernelsHandler.d.ts +0 -8
  338. package/lib/stateful/jupyter/kernelsHandler.js +0 -39
  339. package/lib/stateful/runtimes/actions.d.ts +0 -102
  340. package/lib/stateful/runtimes/actions.js +0 -249
  341. package/lib/stateful/runtimes/apis.d.ts +0 -273
  342. package/lib/stateful/runtimes/apis.js +0 -5
  343. package/lib/stateful/runtimes/index.d.ts +0 -5
  344. package/lib/stateful/runtimes/index.js +0 -9
  345. package/lib/stateful/runtimes/settings.d.ts +0 -15
  346. package/lib/stateful/runtimes/settings.js +0 -31
  347. package/lib/stateful/runtimes/snapshots.d.ts +0 -25
  348. package/lib/stateful/runtimes/snapshots.js +0 -150
  349. package/lib/stateful/runtimes/utils.d.ts +0 -7
  350. package/lib/stateful/runtimes/utils.js +0 -14
  351. package/lib/utils/Cells.d.ts +0 -2
  352. package/lib/utils/Cells.js +0 -28
  353. package/lib/views/iam-tokens/IAMTokenEdit.d.ts +0 -6
  354. package/lib/views/iam-tokens/IAMTokenNew.d.ts +0 -8
  355. package/lib/views/iam-tokens/IAMTokenNew.js +0 -118
  356. package/lib/views/iam-tokens/IAMTokens.d.ts +0 -12
  357. package/lib/views/iam-tokens/IAMTokens.js +0 -87
  358. package/lib/views/iam-tokens/Tokens.d.ts +0 -2
  359. package/lib/views/iam-tokens/Tokens.js +0 -85
  360. package/lib/views/iam-tokens/index.d.ts +0 -3
  361. package/lib/views/iam-tokens/index.js +0 -7
  362. /package/lib/{mocks/jupyter/index.d.ts → cli-login.d.ts} +0 -0
  363. /package/lib/utils/{logger.d.ts → Logger.d.ts} +0 -0
  364. /package/lib/utils/{logger.js → Logger.js} +0 -0
@@ -1,191 +0,0 @@
1
- import type { DatalayerClient } from '../index';
2
- import { CodeSandboxSnapshotDTO } from './CodeSandboxSnapshotDTO';
3
- /**
4
- * Represents a running instance of a computing environment.
5
- * @interface RuntimeData
6
- */
7
- export interface RuntimeData {
8
- /** Kubernetes pod name for the runtime instance */
9
- pod_name: string;
10
- /** Unique identifier for the runtime */
11
- uid: string;
12
- /** Name of the environment this runtime is based on */
13
- environment_name: string;
14
- /** Title of the environment for display */
15
- environment_title: string;
16
- /** Type of runtime - notebook, terminal, or job */
17
- type: string;
18
- /** Credits consumed per second */
19
- burning_rate: number;
20
- /** User-friendly name for the runtime */
21
- given_name: string;
22
- /** Authentication token for accessing the runtime */
23
- token: string;
24
- /** Ingress URL for accessing the runtime */
25
- ingress: string;
26
- /** ISO 8601 timestamp of when the runtime started */
27
- started_at: string;
28
- /** ISO 8601 timestamp of when the runtime will expire */
29
- expired_at: string;
30
- }
31
- /**
32
- * Stable public interface for Runtime data.
33
- * This is the contract that Client consumers can rely on.
34
- * The raw API may change, but this interface remains stable.
35
- */
36
- export interface RuntimeJSON {
37
- /** ulid for the runtime */
38
- uid: string;
39
- /** Kubernetes pod name for the runtime instance */
40
- podName: string;
41
- /** User-friendly name for the runtime */
42
- givenName: string;
43
- /** Name of the environment this runtime is based on */
44
- environmentName: string;
45
- /** Title of the environment for display */
46
- environmentTitle: string;
47
- /** Type of runtime - notebook, terminal, or job */
48
- type: string;
49
- /** Credits consumed per second */
50
- burningRate: number;
51
- /** Credits allocated/available to this runtime */
52
- ingress: string;
53
- /** Authentication token for accessing the runtime */
54
- token: string;
55
- /** When the runtime was started */
56
- startedAt: string;
57
- /** When the runtime will expire */
58
- expiredAt: string;
59
- }
60
- /**
61
- * Request payload for creating a new runtime
62
- * @interface CreateRuntimeRequest
63
- */
64
- export interface CreateRuntimeRequest {
65
- /** Name of the environment to use */
66
- environment_name: string;
67
- /** Type of runtime (e.g., 'notebook', 'terminal', 'job') */
68
- type?: 'notebook' | 'terminal' | 'job';
69
- /** Optional given name for the runtime */
70
- given_name?: string;
71
- /** Maximum credits this runtime can consume */
72
- credits_limit?: number;
73
- /** Optional capabilities for the runtime */
74
- capabilities?: string[];
75
- /** Optional source to create runtime from (e.g., snapshot ID) */
76
- from?: string;
77
- }
78
- /**
79
- * Response from creating a new runtime
80
- * @interface CreateRuntimeResponse
81
- */
82
- export interface CreateRuntimeResponse {
83
- /** Whether the request was successful */
84
- success: boolean;
85
- /** Response message from the server */
86
- message: string;
87
- /** The created runtime instance */
88
- runtime: RuntimeData;
89
- }
90
- /**
91
- * Response from listing runtimes
92
- * @interface ListRuntimesResponse
93
- */
94
- export interface ListRuntimesResponse {
95
- /** Whether the request was successful */
96
- success: boolean;
97
- /** Response message from the server */
98
- message: string;
99
- /** Array of runtime instances */
100
- runtimes: RuntimeData[];
101
- }
102
- /**
103
- * Runtime domain model that wraps API responses with convenient methods.
104
- * Provides state management and lifecycle operations for computational runtimes.
105
- *
106
- * @example
107
- * ```typescript
108
- * const runtime = await client.createRuntime({ environment_name: 'python-cpu' });
109
- * await runtime.waitUntilReady();
110
- * ```
111
- */
112
- export declare class RuntimeDTO {
113
- /** @internal */
114
- _data: RuntimeData;
115
- private _client;
116
- private _deleted;
117
- /**
118
- * Create a Runtime instance.
119
- *
120
- * @param data - Runtime data from API
121
- * @param client - Client instance
122
- */
123
- constructor(data: RuntimeData, client: DatalayerClient);
124
- /**
125
- * Check if this runtime has been deleted and throw error if so.
126
- * @throws Error if deleted
127
- */
128
- private _checkDeleted;
129
- /** Kubernetes pod name for the runtime instance. */
130
- get podName(): string;
131
- /** Unique identifier for the runtime. */
132
- get uid(): string;
133
- /** Name of the environment this runtime is based on. */
134
- get environmentName(): string;
135
- /** Ingress URL for accessing the runtime. */
136
- get ingress(): string;
137
- /** Authentication token for accessing the runtime. */
138
- get token(): string;
139
- /** Credits consumed per second. */
140
- get burningRate(): number;
141
- /** User-friendly name for the runtime. */
142
- get givenName(): string;
143
- /** Type of runtime (notebook, terminal, or job). */
144
- get type(): string;
145
- /** When the runtime started. */
146
- get startedAt(): Date;
147
- /** When the runtime will expire. */
148
- get expiredAt(): Date;
149
- /** Environment title for display. */
150
- get environmentTitle(): string;
151
- /**
152
- * Delete this runtime permanently.
153
- * After deletion, subsequent calls to dynamic methods will throw errors.
154
- */
155
- delete(): Promise<void>;
156
- /**
157
- * Update runtime from a snapshot.
158
- *
159
- * @param from - Snapshot identifier to restore from
160
- * @returns Updated Runtime instance
161
- */
162
- update(from: string): Promise<RuntimeDTO>;
163
- /**
164
- * Create a snapshot of this runtime.
165
- *
166
- * @param name - Name for the snapshot
167
- * @param description - Optional description
168
- * @param stop - Whether to stop runtime after snapshotting
169
- * @returns Created Snapshot instance
170
- */
171
- createSnapshot(name: string, description?: string, stop?: boolean): Promise<CodeSandboxSnapshotDTO>;
172
- /**
173
- * Get runtime data in camelCase format.
174
- * Returns only the core fields that consumers need.
175
- * This provides a stable interface regardless of API changes.
176
- * Returns the current cached state - call getState() first if you need fresh data.
177
- *
178
- * @returns Core runtime data with camelCase properties
179
- */
180
- toJSON(): RuntimeJSON;
181
- /**
182
- * Get the raw runtime data exactly as received from the API.
183
- * This preserves the original snake_case naming from the API response.
184
- * Returns the current cached state - call getState() first if you need fresh data.
185
- *
186
- * @returns Raw runtime data from API
187
- */
188
- rawData(): RuntimeData;
189
- /** String representation of the runtime. */
190
- toString(): string;
191
- }
@@ -1,204 +0,0 @@
1
- /*
2
- * Copyright (c) 2023-2025 Datalayer, Inc.
3
- * Distributed under the terms of the Modified BSD License.
4
- */
5
- /**
6
- * Runtime domain model for the Datalayer Client.
7
- *
8
- * @module models/RuntimeDTO
9
- */
10
- import { updateRuntime } from '../api/runtimes/runtimes.js';
11
- import { validateJSON } from '../api/utils/validation.js';
12
- /**
13
- * Runtime domain model that wraps API responses with convenient methods.
14
- * Provides state management and lifecycle operations for computational runtimes.
15
- *
16
- * @example
17
- * ```typescript
18
- * const runtime = await client.createRuntime({ environment_name: 'python-cpu' });
19
- * await runtime.waitUntilReady();
20
- * ```
21
- */
22
- export class RuntimeDTO {
23
- /** @internal */
24
- _data;
25
- _client;
26
- _deleted = false;
27
- /**
28
- * Create a Runtime instance.
29
- *
30
- * @param data - Runtime data from API
31
- * @param client - Client instance
32
- */
33
- constructor(data, client) {
34
- this._data = data;
35
- this._client = client;
36
- }
37
- // ========================================================================
38
- // Helper Methods
39
- // ========================================================================
40
- /**
41
- * Check if this runtime has been deleted and throw error if so.
42
- * @throws Error if deleted
43
- */
44
- _checkDeleted() {
45
- if (this._deleted) {
46
- throw new Error(`Runtime ${this._data.pod_name} has been deleted and no longer exists`);
47
- }
48
- }
49
- // ========================================================================
50
- // Static Properties (set at creation, never change)
51
- // ========================================================================
52
- /** Kubernetes pod name for the runtime instance. */
53
- get podName() {
54
- this._checkDeleted();
55
- return this._data.pod_name;
56
- }
57
- /** Unique identifier for the runtime. */
58
- get uid() {
59
- this._checkDeleted();
60
- return this._data.uid;
61
- }
62
- /** Name of the environment this runtime is based on. */
63
- get environmentName() {
64
- this._checkDeleted();
65
- return this._data.environment_name;
66
- }
67
- /** Ingress URL for accessing the runtime. */
68
- get ingress() {
69
- this._checkDeleted();
70
- return this._data.ingress;
71
- }
72
- /** Authentication token for accessing the runtime. */
73
- get token() {
74
- this._checkDeleted();
75
- return this._data.token;
76
- }
77
- /** Credits consumed per second. */
78
- get burningRate() {
79
- this._checkDeleted();
80
- return this._data.burning_rate;
81
- }
82
- /** User-friendly name for the runtime. */
83
- get givenName() {
84
- this._checkDeleted();
85
- return this._data.given_name;
86
- }
87
- /** Type of runtime (notebook, terminal, or job). */
88
- get type() {
89
- this._checkDeleted();
90
- return this._data.type;
91
- }
92
- /** When the runtime started. */
93
- get startedAt() {
94
- this._checkDeleted();
95
- return new Date(Number(this._data.started_at) * 1000);
96
- }
97
- /** When the runtime will expire. */
98
- get expiredAt() {
99
- this._checkDeleted();
100
- return new Date(Number(this._data.expired_at) * 1000);
101
- }
102
- /** Environment title for display. */
103
- get environmentTitle() {
104
- this._checkDeleted();
105
- return this._data.environment_title || '';
106
- }
107
- // ========================================================================
108
- // Action Methods
109
- // ========================================================================
110
- /**
111
- * Delete this runtime permanently.
112
- * After deletion, subsequent calls to dynamic methods will throw errors.
113
- */
114
- async delete() {
115
- await this._client.deleteRuntime(this.podName);
116
- this._deleted = true;
117
- }
118
- /**
119
- * Update runtime from a snapshot.
120
- *
121
- * @param from - Snapshot identifier to restore from
122
- * @returns Updated Runtime instance
123
- */
124
- async update(from) {
125
- this._checkDeleted();
126
- const updated = await updateRuntime(this._client.getToken(), this.podName, from, this._client.getRuntimesRunUrl());
127
- return new RuntimeDTO(updated, this._client);
128
- }
129
- /**
130
- * Create a snapshot of this runtime.
131
- *
132
- * @param name - Name for the snapshot
133
- * @param description - Optional description
134
- * @param stop - Whether to stop runtime after snapshotting
135
- * @returns Created Snapshot instance
136
- */
137
- async createSnapshot(name, description, stop) {
138
- this._checkDeleted();
139
- return await this._client.createSnapshot(this.podName, name, description, stop);
140
- }
141
- // ========================================================================
142
- // Utility Methods
143
- // ========================================================================
144
- /**
145
- * Get runtime data in camelCase format.
146
- * Returns only the core fields that consumers need.
147
- * This provides a stable interface regardless of API changes.
148
- * Returns the current cached state - call getState() first if you need fresh data.
149
- *
150
- * @returns Core runtime data with camelCase properties
151
- */
152
- toJSON() {
153
- this._checkDeleted();
154
- // Safely convert dates to ISO strings, handling invalid dates
155
- const safeToISO = (date) => {
156
- try {
157
- const iso = date.toISOString();
158
- return iso;
159
- }
160
- catch {
161
- // If date is invalid, return empty string or current time
162
- return new Date().toISOString();
163
- }
164
- };
165
- const obj = {
166
- // Core identifiers
167
- uid: this.uid,
168
- podName: this.podName,
169
- givenName: this.givenName,
170
- // Environment info
171
- environmentName: this.environmentName,
172
- environmentTitle: this.environmentTitle,
173
- // State and type
174
- type: this.type,
175
- // Burning
176
- burningRate: this.burningRate,
177
- // URLs and tokens
178
- // FIXME: Consider renaming? jupyterServerUrl and jupyterServerToken
179
- ingress: this.ingress,
180
- token: this.token,
181
- // Timing
182
- startedAt: safeToISO(this.startedAt),
183
- expiredAt: safeToISO(this.expiredAt),
184
- };
185
- validateJSON(obj, 'Runtime');
186
- return obj;
187
- }
188
- /**
189
- * Get the raw runtime data exactly as received from the API.
190
- * This preserves the original snake_case naming from the API response.
191
- * Returns the current cached state - call getState() first if you need fresh data.
192
- *
193
- * @returns Raw runtime data from API
194
- */
195
- rawData() {
196
- this._checkDeleted();
197
- return this._data;
198
- }
199
- /** String representation of the runtime. */
200
- toString() {
201
- this._checkDeleted();
202
- return `Runtime(${this.podName}, ${this.environmentName})`;
203
- }
204
- }
@@ -1,35 +0,0 @@
1
- import { SpaceMember } from './SpaceMember';
2
- import { ISpaceItem } from './SpaceItem';
3
- import { ICourse as ICourse } from './Course';
4
- import { IOrganization } from './Organization';
5
- import { IUser } from './User';
6
- /**
7
- * Convert the raw space object to {@link ISpace}.
8
- *
9
- * @param user Raw space object from DB
10
- * @returns Space
11
- */
12
- export declare const asSpace: (raw_space: any) => ISpace;
13
- export type ISpaceVariant = 'default' | 'course' | 'project';
14
- export type IAnySpace = ISpace | ICourse;
15
- export type IBaseSpace = {
16
- id: string;
17
- handle: string;
18
- type: string;
19
- variant: ISpaceVariant;
20
- name: string;
21
- description: string;
22
- creationDate: Date;
23
- public: boolean;
24
- owner: IUser;
25
- organization?: Partial<IOrganization>;
26
- members?: SpaceMember[];
27
- sharedOwnerUserUids?: string[];
28
- };
29
- export type ISpace = IBaseSpace & {
30
- type: 'space';
31
- variant: 'default';
32
- items?: Array<ISpaceItem>;
33
- itemIds?: Array<string>;
34
- };
35
- export default ISpace;
@@ -1,66 +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 { asArray } from '../utils/index.js';
7
- /**
8
- * Convert the raw space object to {@link ISpace}.
9
- *
10
- * @param user Raw space object from DB
11
- * @returns Space
12
- */
13
- export const asSpace = (raw_space) => {
14
- const sharedOwnerUserUids = asArray(raw_space?.shared_owner_user_uids_ss ||
15
- raw_space?.shared_ower_user_uids_ss ||
16
- []).filter((uid) => typeof uid === 'string' && uid.length > 0);
17
- // The backend resolves the canonical (friendly) account handles and exposes
18
- // them as `space.owner` and `space.organization`. Trust those single sources
19
- // of truth; do not invent fallbacks here.
20
- const organizationHandle = raw_space?.organization?.handle;
21
- const owner = raw_space?.owner
22
- ? asUser(raw_space.owner)
23
- : {
24
- id: '',
25
- handle: '',
26
- email: '',
27
- firstName: '',
28
- lastName: '',
29
- initials: '',
30
- displayName: '',
31
- roles: [],
32
- iamProviders: [],
33
- setRoles: () => { },
34
- unsubscribedFromOutbounds: false,
35
- onboarding: {},
36
- events: [],
37
- settings: {},
38
- };
39
- let members = new Array();
40
- if (raw_space.members) {
41
- members = asArray(raw_space.members).map(m => {
42
- const member = asUser(m);
43
- return member;
44
- });
45
- }
46
- const space = {
47
- id: raw_space.uid,
48
- handle: raw_space.handle_s,
49
- type: 'space',
50
- variant: raw_space.variant_s,
51
- name: raw_space.name_t,
52
- description: raw_space.description_t,
53
- public: raw_space.public_b,
54
- members,
55
- creationDate: new Date(raw_space.creation_ts_dt),
56
- owner,
57
- organization: organizationHandle
58
- ? { handle: organizationHandle }
59
- : undefined,
60
- sharedOwnerUserUids,
61
- // Preserve raw Solr fields so consumers can access dynamic fields
62
- // (e.g. attached_agent_pod_name_s for project-agent assignment)
63
- ...raw_space,
64
- };
65
- return space;
66
- };