@datalayer/core 1.0.25 → 1.1.43

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (359) hide show
  1. package/README.md +11 -134
  2. package/lib/api/index.d.ts +0 -9
  3. package/lib/api/index.js +0 -9
  4. package/lib/cli-login.js +167 -0
  5. package/lib/client/auth/AuthenticationManager.d.ts +3 -3
  6. package/lib/client/auth/AuthenticationManager.js +13 -13
  7. package/lib/client/auth/strategies.d.ts +2 -2
  8. package/lib/client/auth/strategies.js +6 -6
  9. package/lib/client/base.d.ts +9 -12
  10. package/lib/client/base.js +17 -19
  11. package/lib/client/index.d.ts +10 -98
  12. package/lib/client/index.js +12 -21
  13. package/lib/client/mixins/IAMMixin.js +26 -26
  14. package/lib/components/auth/Login.js +2 -2
  15. package/lib/components/avatars/UserAvatar.d.ts +16 -0
  16. package/lib/components/avatars/UserAvatar.js +47 -0
  17. package/lib/components/avatars/index.d.ts +1 -0
  18. package/lib/components/avatars/index.js +1 -0
  19. package/lib/components/billing/BillableAccountSelect.js +4 -0
  20. package/lib/components/billing/index.js +4 -0
  21. package/lib/components/context/index.d.ts +0 -1
  22. package/lib/components/context/index.js +0 -1
  23. package/lib/components/display/DisplayHandle.d.ts +12 -0
  24. package/lib/components/display/DisplayHandle.js +11 -0
  25. package/lib/components/display/LiveRelativeTime.js +4 -0
  26. package/lib/components/display/index.d.ts +1 -0
  27. package/lib/components/display/index.js +1 -0
  28. package/lib/components/flashes/index.d.ts +0 -1
  29. package/lib/components/flashes/index.js +0 -1
  30. package/lib/components/index.d.ts +0 -1
  31. package/lib/components/index.js +0 -1
  32. package/lib/components/principal/Principal.d.ts +7 -0
  33. package/lib/components/principal/Principal.js +153 -16
  34. package/lib/components/principal/PrincipalAvatar.d.ts +1 -1
  35. package/lib/components/principal/PrincipalAvatar.js +4 -28
  36. package/lib/components/principal/PrincipalBadge.js +4 -4
  37. package/lib/components/principal/PrincipalDetailsOverlay.d.ts +4 -2
  38. package/lib/components/principal/PrincipalDetailsOverlay.js +27 -7
  39. package/lib/components/principal/PrincipalSwitcherMenu.js +79 -42
  40. package/lib/components/progress/index.d.ts +0 -1
  41. package/lib/components/progress/index.js +0 -1
  42. package/lib/components/sharing/ShareAccessComponent.d.ts +3 -2
  43. package/lib/components/sharing/ShareAccessComponent.js +194 -147
  44. package/lib/components/sharing/SharingEditor.js +4 -0
  45. package/lib/components/snippets/index.d.ts +1 -1
  46. package/lib/components/snippets/index.js +1 -1
  47. package/lib/components/students/StudentResultCircle.d.ts +21 -0
  48. package/lib/components/students/StudentResultCircle.js +59 -0
  49. package/lib/components/students/index.d.ts +1 -1
  50. package/lib/components/students/index.js +1 -1
  51. package/lib/components/time/LiveRelativeTime.js +4 -0
  52. package/lib/components/time/index.js +4 -0
  53. package/lib/components/timeline/index.js +4 -0
  54. package/lib/components/tokens/index.d.ts +1 -1
  55. package/lib/components/tokens/index.js +1 -1
  56. package/lib/components/toolbars/index.d.ts +1 -3
  57. package/lib/components/toolbars/index.js +1 -3
  58. package/lib/config/Configuration.d.ts +13 -13
  59. package/lib/config/Configuration.js +5 -5
  60. package/lib/hooks/cacheConverters.d.ts +21 -0
  61. package/lib/hooks/cacheConverters.js +110 -0
  62. package/lib/hooks/index.d.ts +0 -2
  63. package/lib/hooks/index.js +0 -2
  64. package/lib/hooks/useCache.d.ts +64 -35
  65. package/lib/hooks/useCache.js +661 -306
  66. package/lib/hooks/useDatalayer.js +3 -1
  67. package/lib/hooks/useIAM.js +2 -4
  68. package/lib/hooks/useLocationHandles.d.ts +3 -1
  69. package/lib/hooks/useLocationHandles.js +2 -1
  70. package/lib/hooks/usePrincipalStore.d.ts +2 -2
  71. package/lib/hooks/usePrincipalStore.js +97 -14
  72. package/lib/hooks/useSelectedPrincipal.js +1 -1
  73. package/lib/hooks/useUser.js +19 -2
  74. package/lib/index.d.ts +1 -6
  75. package/lib/index.js +1 -13
  76. package/lib/main.js +3 -3
  77. package/lib/mocks/index.js +1 -1
  78. package/lib/mocks/models/index.d.ts +0 -1
  79. package/lib/mocks/models/index.js +0 -1
  80. package/lib/models/Datasource.d.ts +2 -2
  81. package/lib/models/IAM.d.ts +1 -1
  82. package/lib/models/School.d.ts +12 -3
  83. package/lib/models/Secret.d.ts +2 -2
  84. package/lib/models/Student.d.ts +13 -3
  85. package/lib/models/Usage.d.ts +11 -1
  86. package/lib/models/UserDTO.d.ts +2 -2
  87. package/lib/models/UserSettings.d.ts +1 -1
  88. package/lib/models/UserSettings.js +1 -1
  89. package/lib/models/index.d.ts +0 -30
  90. package/lib/models/index.js +0 -30
  91. package/lib/otel/client/OtelClient.d.ts +2 -2
  92. package/lib/otel/client/OtelClient.js +2 -2
  93. package/lib/otel/hooks/index.js +5 -5
  94. package/lib/otel/types.d.ts +1 -1
  95. package/lib/otel/views/OtelLive.js +1 -1
  96. package/lib/routes/index.d.ts +1 -0
  97. package/lib/routes/index.js +1 -0
  98. package/lib/routes/publicPaths.d.ts +23 -0
  99. package/lib/routes/publicPaths.js +74 -0
  100. package/lib/state/State.d.ts +0 -12
  101. package/lib/state/State.js +0 -12
  102. package/lib/state/substates/CoreState.js +13 -13
  103. package/lib/state/substates/IAMState.d.ts +1 -1
  104. package/lib/state/substates/IAMState.js +14 -14
  105. package/lib/state/substates/LayoutState.d.ts +12 -1
  106. package/lib/state/substates/SurveysState.d.ts +1 -1
  107. package/lib/state/substates/SurveysState.js +10 -10
  108. package/lib/state/substates/index.d.ts +0 -7
  109. package/lib/state/substates/index.js +0 -7
  110. package/lib/utils/Handles.js +3 -1
  111. package/lib/utils/index.d.ts +0 -1
  112. package/lib/utils/index.js +0 -1
  113. package/lib/views/api-keys/APIKeys.js +12 -3
  114. package/lib/views/datasources/DatasourceDetail.d.ts +1 -1
  115. package/lib/views/datasources/DatasourceNew.d.ts +1 -1
  116. package/lib/views/datasources/Datasources.d.ts +1 -1
  117. package/lib/views/datasources/Datasources.js +12 -3
  118. package/lib/views/iam/SignInSimple.d.ts +37 -1
  119. package/lib/views/iam/SignInSimple.js +111 -13
  120. package/package.json +5 -3
  121. package/lib/App.css +0 -47
  122. package/lib/App.d.ts +0 -3
  123. package/lib/App.js +0 -21
  124. package/lib/api/runtimes/checkpoints.d.ts +0 -122
  125. package/lib/api/runtimes/checkpoints.js +0 -118
  126. package/lib/api/runtimes/environments.d.ts +0 -9
  127. package/lib/api/runtimes/environments.js +0 -29
  128. package/lib/api/runtimes/healthz.d.ts +0 -15
  129. package/lib/api/runtimes/healthz.js +0 -44
  130. package/lib/api/runtimes/index.d.ts +0 -12
  131. package/lib/api/runtimes/index.js +0 -16
  132. package/lib/api/runtimes/runtimes.d.ts +0 -138
  133. package/lib/api/runtimes/runtimes.js +0 -230
  134. package/lib/api/runtimes/snapshots.d.ts +0 -38
  135. package/lib/api/runtimes/snapshots.js +0 -82
  136. package/lib/api/scheduler/index.d.ts +0 -6
  137. package/lib/api/scheduler/index.js +0 -10
  138. package/lib/api/scheduler/schedules.d.ts +0 -85
  139. package/lib/api/scheduler/schedules.js +0 -78
  140. package/lib/api/spacer/documents.d.ts +0 -12
  141. package/lib/api/spacer/documents.js +0 -43
  142. package/lib/api/spacer/healthz.d.ts +0 -15
  143. package/lib/api/spacer/healthz.js +0 -44
  144. package/lib/api/spacer/index.d.ts +0 -15
  145. package/lib/api/spacer/index.js +0 -19
  146. package/lib/api/spacer/items.d.ts +0 -25
  147. package/lib/api/spacer/items.js +0 -55
  148. package/lib/api/spacer/lexicals.d.ts +0 -34
  149. package/lib/api/spacer/lexicals.js +0 -89
  150. package/lib/api/spacer/notebooks.d.ts +0 -34
  151. package/lib/api/spacer/notebooks.js +0 -89
  152. package/lib/api/spacer/spaces.d.ts +0 -84
  153. package/lib/api/spacer/spaces.js +0 -170
  154. package/lib/api/spacer/users.d.ts +0 -9
  155. package/lib/api/spacer/users.js +0 -29
  156. package/lib/client/mixins/RuntimesMixin.d.ts +0 -93
  157. package/lib/client/mixins/RuntimesMixin.js +0 -229
  158. package/lib/client/mixins/SpacerMixin.d.ts +0 -210
  159. package/lib/client/mixins/SpacerMixin.js +0 -615
  160. package/lib/client/utils/spacerUtils.d.ts +0 -18
  161. package/lib/client/utils/spacerUtils.js +0 -32
  162. package/lib/collaboration/DatalayerCollaboration.d.ts +0 -13
  163. package/lib/collaboration/DatalayerCollaboration.js +0 -28
  164. package/lib/collaboration/DatalayerCollaborationProvider.d.ts +0 -60
  165. package/lib/collaboration/DatalayerCollaborationProvider.js +0 -163
  166. package/lib/collaboration/index.d.ts +0 -2
  167. package/lib/collaboration/index.js +0 -6
  168. package/lib/components/context/SpaceSelect.d.ts +0 -2
  169. package/lib/components/context/SpaceSelect.js +0 -42
  170. package/lib/components/flashes/FlashDisclaimer.d.ts +0 -2
  171. package/lib/components/flashes/FlashDisclaimer.js +0 -17
  172. package/lib/components/icons/ArtifactIcon.d.ts +0 -10
  173. package/lib/components/icons/ArtifactIcon.js +0 -58
  174. package/lib/components/icons/index.d.ts +0 -1
  175. package/lib/components/icons/index.js +0 -5
  176. package/lib/components/nbgrader/NbGradesDetails.d.ts +0 -5
  177. package/lib/components/nbgrader/NbGradesDetails.js +0 -14
  178. package/lib/components/nbgrader/index.d.ts +0 -1
  179. package/lib/components/nbgrader/index.js +0 -5
  180. package/lib/components/progress/CreditsIndicator.d.ts +0 -33
  181. package/lib/components/progress/CreditsIndicator.js +0 -23
  182. package/lib/components/runtimes/RuntimeCellVariables.d.ts +0 -39
  183. package/lib/components/runtimes/RuntimeCellVariables.js +0 -172
  184. package/lib/components/runtimes/RuntimeCellVariablesDialog.d.ts +0 -37
  185. package/lib/components/runtimes/RuntimeCellVariablesDialog.js +0 -101
  186. package/lib/components/runtimes/RuntimeLauncherDialog.d.ts +0 -57
  187. package/lib/components/runtimes/RuntimeLauncherDialog.js +0 -275
  188. package/lib/components/runtimes/RuntimePickerBase.d.ts +0 -69
  189. package/lib/components/runtimes/RuntimePickerBase.js +0 -122
  190. package/lib/components/runtimes/RuntimePickerCell.d.ts +0 -34
  191. package/lib/components/runtimes/RuntimePickerCell.js +0 -104
  192. package/lib/components/runtimes/RuntimePickerNotebook.d.ts +0 -42
  193. package/lib/components/runtimes/RuntimePickerNotebook.js +0 -232
  194. package/lib/components/runtimes/RuntimeReservationControl.d.ts +0 -47
  195. package/lib/components/runtimes/RuntimeReservationControl.js +0 -42
  196. package/lib/components/runtimes/RuntimeSimplePicker.d.ts +0 -38
  197. package/lib/components/runtimes/RuntimeSimplePicker.js +0 -155
  198. package/lib/components/runtimes/RuntimeTransfer.d.ts +0 -16
  199. package/lib/components/runtimes/RuntimeTransfer.js +0 -5
  200. package/lib/components/runtimes/RuntimeUtils.d.ts +0 -17
  201. package/lib/components/runtimes/RuntimeUtils.js +0 -178
  202. package/lib/components/runtimes/RuntimeVariables.d.ts +0 -38
  203. package/lib/components/runtimes/RuntimeVariables.js +0 -75
  204. package/lib/components/runtimes/index.d.ts +0 -11
  205. package/lib/components/runtimes/index.js +0 -15
  206. package/lib/components/scheduler/ScheduleMenu.d.ts +0 -54
  207. package/lib/components/scheduler/ScheduleMenu.js +0 -154
  208. package/lib/components/scheduler/index.d.ts +0 -1
  209. package/lib/components/scheduler/index.js +0 -5
  210. package/lib/components/snapshots/SandboxSnapshotMenu.d.ts +0 -33
  211. package/lib/components/snapshots/SandboxSnapshotMenu.js +0 -169
  212. package/lib/components/snapshots/index.d.ts +0 -1
  213. package/lib/components/snapshots/index.js +0 -5
  214. package/lib/components/snippets/SnippetDialog.d.ts +0 -42
  215. package/lib/components/snippets/SnippetDialog.js +0 -42
  216. package/lib/components/students/StudentItemStatus.d.ts +0 -7
  217. package/lib/components/students/StudentItemStatus.js +0 -66
  218. package/lib/components/tokens/SpaceVariantToken.d.ts +0 -5
  219. package/lib/components/tokens/SpaceVariantToken.js +0 -23
  220. package/lib/components/toolbars/AssignmentEditorToolbar.d.ts +0 -4
  221. package/lib/components/toolbars/AssignmentEditorToolbar.js +0 -18
  222. package/lib/components/toolbars/DocumentEditorToolbar.d.ts +0 -2
  223. package/lib/components/toolbars/DocumentEditorToolbar.js +0 -12
  224. package/lib/components/toolbars/NotebookEditorToolbar.d.ts +0 -29
  225. package/lib/components/toolbars/NotebookEditorToolbar.js +0 -30
  226. package/lib/examples/CellExample.d.ts +0 -6
  227. package/lib/examples/CellExample.js +0 -20
  228. package/lib/examples/NotebookExample.d.ts +0 -6
  229. package/lib/examples/NotebookExample.js +0 -19
  230. package/lib/examples/lexical-theme.css +0 -436
  231. package/lib/examples/notebooks/IPyWidgetsExample.ipynb.json +0 -101
  232. package/lib/examples/notebooks/IPyWidgetsExampleWithState.ipynb.json +0 -112
  233. package/lib/examples/notebooks/Lite.ipynb.json +0 -128
  234. package/lib/examples/notebooks/Matplotlib.ipynb.json +0 -137
  235. package/lib/examples/notebooks/NotebookExample1.ipynb.json +0 -126
  236. package/lib/examples/notebooks/NotebookExample2.ipynb.json +0 -48
  237. package/lib/examples/notebooks/NotebookOutputs.ipynb.json +0 -49
  238. package/lib/examples/notebooks/NotebookToCExample.ipynb.json +0 -102
  239. package/lib/examples/notebooks/PyGWalker.ipynb.json +0 -55
  240. package/lib/hooks/useCellOutputshot.d.ts +0 -4
  241. package/lib/hooks/useCellOutputshot.js +0 -25
  242. package/lib/hooks/useProjects.d.ts +0 -628
  243. package/lib/hooks/useProjects.js +0 -190
  244. package/lib/hooks/useRuntimes.d.ts +0 -5
  245. package/lib/hooks/useRuntimes.js +0 -34
  246. package/lib/mocks/jupyter/index.js +0 -5
  247. package/lib/mocks/models/CourseMock.d.ts +0 -6
  248. package/lib/mocks/models/CourseMock.js +0 -29
  249. package/lib/mocks/models/SpaceMock.d.ts +0 -6
  250. package/lib/mocks/models/SpaceMock.js +0 -25
  251. package/lib/models/Assignment.d.ts +0 -7
  252. package/lib/models/Assignment.js +0 -5
  253. package/lib/models/Cell.d.ts +0 -8
  254. package/lib/models/Cell.js +0 -5
  255. package/lib/models/CodeBlock.d.ts +0 -10
  256. package/lib/models/CodeBlock.js +0 -5
  257. package/lib/models/CodeSandboxSnapshot.d.ts +0 -92
  258. package/lib/models/CodeSandboxSnapshot.js +0 -13
  259. package/lib/models/CodeSandboxSnapshotDTO.d.ts +0 -173
  260. package/lib/models/CodeSandboxSnapshotDTO.js +0 -139
  261. package/lib/models/CodefeedBlocks.d.ts +0 -7
  262. package/lib/models/CodefeedBlocks.js +0 -5
  263. package/lib/models/Content.d.ts +0 -5
  264. package/lib/models/Content.js +0 -5
  265. package/lib/models/Course.d.ts +0 -17
  266. package/lib/models/Course.js +0 -5
  267. package/lib/models/Dataset.d.ts +0 -16
  268. package/lib/models/Dataset.js +0 -5
  269. package/lib/models/Document.d.ts +0 -8
  270. package/lib/models/Document.js +0 -5
  271. package/lib/models/Environment.d.ts +0 -86
  272. package/lib/models/Environment.js +0 -5
  273. package/lib/models/EnvironmentDTO.d.ts +0 -125
  274. package/lib/models/EnvironmentDTO.js +0 -88
  275. package/lib/models/Exercise.d.ts +0 -16
  276. package/lib/models/Exercise.js +0 -5
  277. package/lib/models/Item.d.ts +0 -20
  278. package/lib/models/Item.js +0 -5
  279. package/lib/models/ItemDTO.d.ts +0 -74
  280. package/lib/models/ItemDTO.js +0 -186
  281. package/lib/models/ItemType.d.ts +0 -2
  282. package/lib/models/ItemType.js +0 -5
  283. package/lib/models/Lesson.d.ts +0 -5
  284. package/lib/models/Lesson.js +0 -5
  285. package/lib/models/LexicalDTO.d.ts +0 -155
  286. package/lib/models/LexicalDTO.js +0 -157
  287. package/lib/models/Library.d.ts +0 -10
  288. package/lib/models/Library.js +0 -5
  289. package/lib/models/Notebook.d.ts +0 -11
  290. package/lib/models/Notebook.js +0 -5
  291. package/lib/models/NotebookDTO.d.ts +0 -96
  292. package/lib/models/NotebookDTO.js +0 -153
  293. package/lib/models/Page.d.ts +0 -41
  294. package/lib/models/Page.js +0 -25
  295. package/lib/models/PageTag.d.ts +0 -19
  296. package/lib/models/PageTag.js +0 -94
  297. package/lib/models/ProjectDTO.d.ts +0 -89
  298. package/lib/models/ProjectDTO.js +0 -131
  299. package/lib/models/Runtime.d.ts +0 -123
  300. package/lib/models/Runtime.js +0 -18
  301. package/lib/models/RuntimeDTO.d.ts +0 -191
  302. package/lib/models/RuntimeDTO.js +0 -204
  303. package/lib/models/Space.d.ts +0 -35
  304. package/lib/models/Space.js +0 -66
  305. package/lib/models/SpaceDTO.d.ts +0 -334
  306. package/lib/models/SpaceDTO.js +0 -244
  307. package/lib/models/SpaceItem.d.ts +0 -10
  308. package/lib/models/SpaceItem.js +0 -5
  309. package/lib/models/SpaceMember.d.ts +0 -6
  310. package/lib/models/SpaceMember.js +0 -5
  311. package/lib/models/StudentItem.d.ts +0 -21
  312. package/lib/models/StudentItem.js +0 -5
  313. package/lib/services/DatalayerServiceManager.d.ts +0 -22
  314. package/lib/services/DatalayerServiceManager.js +0 -69
  315. package/lib/services/index.d.ts +0 -4
  316. package/lib/services/index.js +0 -7
  317. package/lib/services/reconnectToRuntime.d.ts +0 -32
  318. package/lib/services/reconnectToRuntime.js +0 -59
  319. package/lib/state/substates/CellState.d.ts +0 -12
  320. package/lib/state/substates/CellState.js +0 -22
  321. package/lib/state/substates/DocumentState.d.ts +0 -10
  322. package/lib/state/substates/DocumentState.js +0 -14
  323. package/lib/state/substates/GradeState.d.ts +0 -10
  324. package/lib/state/substates/GradeState.js +0 -14
  325. package/lib/state/substates/JupyterLabState.d.ts +0 -16
  326. package/lib/state/substates/JupyterLabState.js +0 -17
  327. package/lib/state/substates/NbformatState.d.ts +0 -13
  328. package/lib/state/substates/NbformatState.js +0 -16
  329. package/lib/state/substates/RuntimesState.d.ts +0 -79
  330. package/lib/state/substates/RuntimesState.js +0 -180
  331. package/lib/state/substates/SpaceState.d.ts +0 -11
  332. package/lib/state/substates/SpaceState.js +0 -16
  333. package/lib/stateful/index.d.ts +0 -2
  334. package/lib/stateful/index.js +0 -6
  335. package/lib/stateful/jupyter/exec/Python.d.ts +0 -5
  336. package/lib/stateful/jupyter/exec/Python.js +0 -100
  337. package/lib/stateful/jupyter/exec/Snippets.d.ts +0 -105
  338. package/lib/stateful/jupyter/exec/Snippets.js +0 -101
  339. package/lib/stateful/jupyter/exec/index.d.ts +0 -2
  340. package/lib/stateful/jupyter/exec/index.js +0 -6
  341. package/lib/stateful/jupyter/index.d.ts +0 -2
  342. package/lib/stateful/jupyter/index.js +0 -6
  343. package/lib/stateful/jupyter/kernelsHandler.d.ts +0 -8
  344. package/lib/stateful/jupyter/kernelsHandler.js +0 -39
  345. package/lib/stateful/runtimes/actions.d.ts +0 -102
  346. package/lib/stateful/runtimes/actions.js +0 -249
  347. package/lib/stateful/runtimes/apis.d.ts +0 -273
  348. package/lib/stateful/runtimes/apis.js +0 -5
  349. package/lib/stateful/runtimes/index.d.ts +0 -5
  350. package/lib/stateful/runtimes/index.js +0 -9
  351. package/lib/stateful/runtimes/settings.d.ts +0 -15
  352. package/lib/stateful/runtimes/settings.js +0 -31
  353. package/lib/stateful/runtimes/snapshots.d.ts +0 -25
  354. package/lib/stateful/runtimes/snapshots.js +0 -150
  355. package/lib/stateful/runtimes/utils.d.ts +0 -7
  356. package/lib/stateful/runtimes/utils.js +0 -14
  357. package/lib/utils/Cells.d.ts +0 -2
  358. package/lib/utils/Cells.js +0 -28
  359. /package/lib/{mocks/jupyter/index.d.ts → cli-login.d.ts} +0 -0
@@ -1,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
- }
@@ -1,210 +0,0 @@
1
- import type { UpdateSpaceRequest } from '../../models/SpaceDTO';
2
- import type { Constructor } from '../utils/mixins';
3
- import { NotebookDTO } from '../../models/NotebookDTO';
4
- import { LexicalDTO } from '../../models/LexicalDTO';
5
- import { SpaceDTO } from '../../models/SpaceDTO';
6
- import { ProjectDTO, type ProjectDefaultItems } from '../../models/ProjectDTO';
7
- import { HealthCheck } from '../../models/HealthCheck';
8
- /** Options for content loading with CDN support. */
9
- export interface ContentLoadingOptions {
10
- /** Whether to try CDN first before API (default: true) */
11
- preferCDN?: boolean;
12
- /** CDN base URL (default: https://cdn.datalayer.run) */
13
- cdnBaseUrl?: string;
14
- }
15
- /** Spacer mixin providing workspace and content management. */
16
- export declare function SpacerMixin<TBase extends Constructor>(Base: TBase): {
17
- new (...args: any[]): {
18
- /**
19
- * Get all workspaces for the authenticated user.
20
- * @returns Array of Space instances
21
- */
22
- getMySpaces(): Promise<SpaceDTO[]>;
23
- /**
24
- * Create a new workspace.
25
- * @param name - Space name
26
- * @param description - Space description
27
- * @param variant - Space variant type
28
- * @param spaceHandle - Unique handle for the space
29
- * @param organizationId - Organization ID
30
- * @param seedSpaceId - Seed space ID for initialization
31
- * @param isPublic - Whether the space is public
32
- * @returns Created Space instance
33
- */
34
- createSpace(name: string, description: string, variant: string, spaceHandle: string, organizationId: string, seedSpaceId: string, isPublic: boolean): Promise<SpaceDTO>;
35
- /**
36
- * Create a new notebook.
37
- * @param spaceId - ID of the space to create the notebook in
38
- * @param name - Name of the notebook
39
- * @param description - Description of the notebook
40
- * @param file - Optional file for notebook content
41
- * @returns Created Notebook instance
42
- */
43
- createNotebook(spaceId: string, name: string, description: string, file?: File | Blob): Promise<NotebookDTO>;
44
- /**
45
- * Get a notebook by ID.
46
- * @param id - Notebook ID
47
- * @returns Notebook instance
48
- */
49
- getNotebook(id: string): Promise<NotebookDTO>;
50
- /**
51
- * Update a notebook.
52
- * @param id - Notebook ID
53
- * @param name - Optional new name for the notebook
54
- * @param description - Optional new description for the notebook
55
- * @returns Updated Notebook instance
56
- */
57
- updateNotebook(id: string, name?: string, description?: string): Promise<NotebookDTO>;
58
- /**
59
- * Create a new lexical document.
60
- * @param spaceId - ID of the space to create the lexical document in
61
- * @param name - Name of the lexical document
62
- * @param description - Description of the lexical document
63
- * @param file - Optional file for document content
64
- * @returns Created Lexical instance
65
- */
66
- createLexical(spaceId: string, name: string, description: string, file?: File | Blob): Promise<LexicalDTO>;
67
- /**
68
- * Get a lexical document by ID.
69
- * @param id - Document ID
70
- * @returns Lexical instance
71
- */
72
- getLexical(id: string): Promise<LexicalDTO>;
73
- /**
74
- * Update a lexical document.
75
- * @param id - Document ID
76
- * @param name - Optional new name for the lexical document
77
- * @param description - Optional new description for the lexical document
78
- * @returns Updated Lexical instance
79
- */
80
- updateLexical(id: string, name?: string, description?: string): Promise<LexicalDTO>;
81
- /**
82
- * Get the items of a space as model instances.
83
- * @param spaceId - Space ID
84
- * @returns Array of Notebook and Lexical model instances
85
- */
86
- getSpaceItems(spaceId: string): Promise<(NotebookDTO | LexicalDTO)[]>;
87
- /**
88
- * Get a single item from a space.
89
- * @param itemId - Item ID to retrieve
90
- * @returns Notebook or Lexical model instance
91
- * @throws Error if item not found
92
- */
93
- getSpaceItem(itemId: string): Promise<NotebookDTO | LexicalDTO>;
94
- /**
95
- * Delete an item from a space.
96
- * @param itemId - Item ID to delete
97
- * @throws Error if deletion fails
98
- */
99
- deleteSpaceItem(itemId: string): Promise<void>;
100
- getContent(itemId: string): Promise<any>;
101
- /**
102
- * Check the health status of the Spacer service.
103
- * Performs a lightweight check to verify service accessibility.
104
- *
105
- * @returns Health check result with status and response time
106
- */
107
- checkSpacerHealth(): Promise<HealthCheck>;
108
- /**
109
- * Get collaboration session ID for a document
110
- */
111
- getCollaborationSessionId(documentId: string): Promise<string>;
112
- /**
113
- * Get a space by UID.
114
- * @param uid - Space UID
115
- * @returns Space instance
116
- */
117
- getSpace(uid: string): Promise<SpaceDTO>;
118
- /**
119
- * Update a space (owner updating their own space).
120
- * @param uid - Space UID
121
- * @param data - Update data (supports arbitrary Solr fields)
122
- * @returns Updated Space instance
123
- */
124
- updateSpace(uid: string, data: UpdateSpaceRequest): Promise<SpaceDTO>;
125
- /**
126
- * Update a user-specific space (e.g., org admin context).
127
- * @param uid - Space UID
128
- * @param userId - User ID
129
- * @param data - Update data (supports arbitrary Solr fields)
130
- * @returns Updated Space instance
131
- */
132
- updateUserSpace(uid: string, userId: string, data: UpdateSpaceRequest): Promise<SpaceDTO>;
133
- /**
134
- * Delete a space and all its contents.
135
- * @param uid - Space UID
136
- */
137
- deleteSpace(uid: string): Promise<void>;
138
- /**
139
- * Make a space public.
140
- * @param uid - Space UID
141
- * @returns Updated Space instance
142
- */
143
- makeSpacePublic(uid: string): Promise<SpaceDTO>;
144
- /**
145
- * Make a space private.
146
- * @param uid - Space UID
147
- * @returns Updated Space instance
148
- */
149
- makeSpacePrivate(uid: string): Promise<SpaceDTO>;
150
- /**
151
- * Export a space and its contents.
152
- * @param uid - Space UID
153
- * @returns Export data
154
- */
155
- exportSpace(uid: string): Promise<any>;
156
- /**
157
- * Clone a notebook.
158
- * @param id - Notebook ID to clone
159
- * @returns Cloned Notebook instance
160
- */
161
- cloneNotebook(id: string): Promise<NotebookDTO>;
162
- /**
163
- * Clone a lexical document.
164
- * @param id - Document ID to clone
165
- * @returns Cloned Lexical instance
166
- */
167
- cloneLexical(id: string): Promise<LexicalDTO>;
168
- /**
169
- * Get all projects for the authenticated user.
170
- * Projects are spaces with variant='project'.
171
- * @returns Array of Project instances
172
- */
173
- getProjects(): Promise<ProjectDTO[]>;
174
- /**
175
- * Get a project by UID.
176
- * @param uid - Project UID
177
- * @returns Project instance
178
- */
179
- getProject(uid: string): Promise<ProjectDTO>;
180
- /**
181
- * Create a new project.
182
- * @param name - Project name
183
- * @param description - Project description
184
- * @returns Created Project instance
185
- */
186
- createProject(name: string, description?: string): Promise<ProjectDTO>;
187
- /**
188
- * Update a project.
189
- * @param uid - Project UID
190
- * @param data - Update data (supports arbitrary Solr fields)
191
- * @returns Updated Project instance
192
- */
193
- updateProject(uid: string, data: UpdateSpaceRequest): Promise<ProjectDTO>;
194
- /**
195
- * Rename a project.
196
- * @param uid - Project UID
197
- * @param newName - New project name
198
- * @param description - Project description to preserve.
199
- * @param userId - Authenticated user ID for user-scoped update.
200
- * @returns Updated Project instance
201
- */
202
- renameProject(uid: string, newName: string, description?: string): Promise<ProjectDTO>;
203
- /**
204
- * Get default items (notebook UID and document UID) for a project.
205
- * @param uid - Project UID
206
- * @returns Default notebook and document UIDs
207
- */
208
- getProjectDefaultItems(uid: string): Promise<ProjectDefaultItems>;
209
- };
210
- } & TBase;