@datalayer/core 0.0.1 → 0.0.3

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 (676) hide show
  1. package/README.md +187 -7
  2. package/lib/App.css +47 -0
  3. package/lib/App.d.ts +3 -0
  4. package/lib/App.js +21 -5
  5. package/lib/__tests__/App.test.d.ts +1 -0
  6. package/lib/__tests__/App.test.js +17 -0
  7. package/lib/__tests__/hooks.test.d.ts +1 -0
  8. package/lib/__tests__/hooks.test.js +19 -0
  9. package/lib/__tests__/index.test.d.ts +1 -0
  10. package/lib/__tests__/index.test.js +27 -0
  11. package/lib/__tests__/integration.test.d.ts +1 -0
  12. package/lib/__tests__/integration.test.js +57 -0
  13. package/lib/__tests__/utils.test.d.ts +1 -0
  14. package/lib/__tests__/utils.test.js +59 -0
  15. package/lib/api/DatalayerApi.d.ts +75 -0
  16. package/lib/api/DatalayerApi.js +145 -0
  17. package/lib/api/index.d.ts +3 -0
  18. package/lib/api/index.js +7 -0
  19. package/lib/api/jupyter/exec/Python.d.ts +5 -0
  20. package/lib/api/jupyter/exec/Python.js +100 -0
  21. package/lib/api/jupyter/exec/Snippets.d.ts +145 -0
  22. package/lib/api/jupyter/exec/Snippets.js +120 -0
  23. package/lib/api/jupyter/exec/index.d.ts +2 -0
  24. package/lib/api/jupyter/exec/index.js +6 -0
  25. package/lib/api/jupyter/index.d.ts +2 -0
  26. package/lib/api/jupyter/index.js +6 -0
  27. package/lib/api/jupyter/kernelsHandler.d.ts +8 -0
  28. package/lib/api/jupyter/kernelsHandler.js +39 -0
  29. package/lib/api/runtimes/actions.d.ts +102 -0
  30. package/lib/api/runtimes/actions.js +264 -0
  31. package/lib/api/runtimes/apis.d.ts +273 -0
  32. package/lib/api/runtimes/apis.js +5 -0
  33. package/lib/api/runtimes/index.d.ts +5 -0
  34. package/lib/api/runtimes/index.js +9 -0
  35. package/lib/api/runtimes/settings.d.ts +15 -0
  36. package/lib/api/runtimes/settings.js +31 -0
  37. package/lib/api/runtimes/snapshots.d.ts +25 -0
  38. package/lib/api/runtimes/snapshots.js +150 -0
  39. package/lib/api/runtimes/utils.d.ts +7 -0
  40. package/lib/api/runtimes/utils.js +17 -0
  41. package/lib/assets/react.svg +1 -0
  42. package/lib/components/avatars/BoringAvatar.d.ts +19 -0
  43. package/lib/components/avatars/BoringAvatar.js +44 -0
  44. package/lib/components/avatars/BoringAvatar.stories.d.ts +27 -0
  45. package/lib/components/avatars/BoringAvatar.stories.js +23 -0
  46. package/lib/components/avatars/UserProfileAvatar.d.ts +13 -0
  47. package/lib/components/avatars/UserProfileAvatar.js +32 -0
  48. package/lib/components/avatars/index.d.ts +2 -0
  49. package/lib/components/avatars/index.js +6 -0
  50. package/lib/components/banners/NoAutomationBanner.d.ts +2 -0
  51. package/lib/components/banners/NoAutomationBanner.js +13 -0
  52. package/lib/components/banners/index.d.ts +1 -0
  53. package/lib/components/banners/index.js +5 -0
  54. package/lib/components/buttons/DownloadCSVButton.d.ts +13 -0
  55. package/lib/components/buttons/DownloadCSVButton.js +16 -0
  56. package/lib/components/buttons/DownloadJsonButton.d.ts +16 -0
  57. package/lib/components/buttons/DownloadJsonButton.js +18 -0
  58. package/lib/components/buttons/LongActionButton.d.ts +28 -0
  59. package/lib/components/buttons/LongActionButton.js +24 -0
  60. package/lib/components/buttons/UploadButton.d.ts +37 -0
  61. package/lib/components/buttons/UploadButton.js +43 -0
  62. package/lib/components/buttons/VariantType.d.ts +1 -0
  63. package/lib/components/buttons/VariantType.js +5 -0
  64. package/lib/components/buttons/index.d.ts +5 -0
  65. package/lib/components/buttons/index.js +9 -0
  66. package/lib/components/checkout/StripeCheckout.d.ts +32 -0
  67. package/lib/components/checkout/StripeCheckout.js +95 -0
  68. package/lib/components/checkout/index.d.ts +1 -0
  69. package/lib/components/checkout/index.js +5 -0
  70. package/lib/components/confetti/ConfettiSuccess.d.ts +2 -0
  71. package/lib/components/confetti/ConfettiSuccess.js +12 -0
  72. package/lib/components/confetti/index.d.ts +1 -0
  73. package/lib/components/confetti/index.js +5 -0
  74. package/lib/components/context/OrganizationSelect.d.ts +2 -0
  75. package/lib/components/context/OrganizationSelect.js +35 -0
  76. package/lib/components/context/SpaceSelect.d.ts +2 -0
  77. package/lib/components/context/SpaceSelect.js +43 -0
  78. package/lib/components/context/index.d.ts +2 -0
  79. package/lib/components/context/index.js +6 -0
  80. package/lib/components/display/AvatarSkeleton.d.ts +5 -0
  81. package/lib/components/display/AvatarSkeleton.js +11 -0
  82. package/lib/components/display/CenteredSpinner.d.ts +14 -0
  83. package/lib/components/display/CenteredSpinner.js +20 -0
  84. package/lib/components/display/CodePreview.d.ts +4 -0
  85. package/lib/components/display/CodePreview.js +15 -0
  86. package/lib/components/display/DatalayerBox.d.ts +8 -0
  87. package/lib/components/display/DatalayerBox.js +28 -0
  88. package/lib/components/display/HorizontalCenter.d.ts +9 -0
  89. package/lib/components/display/HorizontalCenter.js +14 -0
  90. package/lib/components/display/JupyterDialog.d.ts +69 -0
  91. package/lib/components/display/JupyterDialog.js +115 -0
  92. package/lib/components/display/Markdown.d.ts +23 -0
  93. package/lib/components/display/Markdown.js +20 -0
  94. package/lib/components/display/NavLink.d.ts +9 -0
  95. package/lib/components/display/NavLink.js +17 -0
  96. package/lib/components/display/NotebookSkeleton.d.ts +2 -0
  97. package/lib/components/display/NotebookSkeleton.js +11 -0
  98. package/lib/components/display/Placeholder.d.ts +2 -0
  99. package/lib/components/display/Placeholder.js +9 -0
  100. package/lib/components/display/ToTopBranded.d.ts +2 -0
  101. package/lib/components/display/ToTopBranded.js +11 -0
  102. package/lib/components/display/VisuallyHidden.d.ts +5 -0
  103. package/lib/components/display/VisuallyHidden.js +24 -0
  104. package/lib/components/display/index.d.ts +12 -0
  105. package/lib/components/display/index.js +16 -0
  106. package/lib/components/echarts/EChartsReact.d.ts +11 -0
  107. package/lib/components/echarts/EChartsReact.js +53 -0
  108. package/lib/components/echarts/index.d.ts +1 -0
  109. package/lib/components/echarts/index.js +5 -0
  110. package/lib/components/flashes/FlashClosable.d.ts +22 -0
  111. package/lib/components/flashes/FlashClosable.js +64 -0
  112. package/lib/components/flashes/FlashDisclaimer.d.ts +2 -0
  113. package/lib/components/flashes/FlashDisclaimer.js +18 -0
  114. package/lib/components/flashes/FlashGuest.d.ts +2 -0
  115. package/lib/components/flashes/FlashGuest.js +30 -0
  116. package/lib/components/flashes/FlashSurveys.d.ts +6 -0
  117. package/lib/components/flashes/FlashSurveys.js +36 -0
  118. package/lib/components/flashes/FlashUnauthorized.d.ts +2 -0
  119. package/lib/components/flashes/FlashUnauthorized.js +18 -0
  120. package/lib/components/flashes/index.d.ts +6 -0
  121. package/lib/components/flashes/index.js +10 -0
  122. package/lib/components/flashes/surveys/Survey2025_1.d.ts +3 -0
  123. package/lib/components/flashes/surveys/Survey2025_1.js +129 -0
  124. package/lib/components/flashes/surveys/SurveyProps.d.ts +6 -0
  125. package/lib/components/flashes/surveys/SurveyProps.js +5 -0
  126. package/lib/components/flashes/surveys/index.d.ts +2 -0
  127. package/lib/components/flashes/surveys/index.js +6 -0
  128. package/lib/components/iam/ExternalTokenSilentLogin.d.ts +5 -0
  129. package/lib/components/iam/ExternalTokenSilentLogin.js +33 -0
  130. package/lib/components/iam/index.d.ts +1 -0
  131. package/lib/components/iam/index.js +5 -0
  132. package/lib/components/icons/ArtifactIcon.d.ts +10 -0
  133. package/lib/components/icons/ArtifactIcon.js +58 -0
  134. package/lib/components/icons/index.d.ts +1 -0
  135. package/lib/components/icons/index.js +5 -0
  136. package/lib/components/index.d.ts +1 -0
  137. package/lib/components/index.js +5 -0
  138. package/lib/components/labels/VisibilityLabel.d.ts +4 -0
  139. package/lib/components/labels/VisibilityLabel.js +17 -0
  140. package/lib/components/labels/index.d.ts +1 -0
  141. package/lib/components/labels/index.js +5 -0
  142. package/lib/components/landings/StepBlock.d.ts +11 -0
  143. package/lib/components/landings/StepBlock.js +12 -0
  144. package/lib/components/landings/index.d.ts +1 -0
  145. package/lib/components/landings/index.js +5 -0
  146. package/lib/components/navbar/NavigationVisbilityObserver.d.ts +5 -0
  147. package/lib/components/navbar/NavigationVisbilityObserver.js +58 -0
  148. package/lib/components/navbar/SubdomainNavBar.d.ts +81 -0
  149. package/lib/components/navbar/SubdomainNavBar.js +235 -0
  150. package/lib/components/navbar/SubdomainNavBar.module.css +718 -0
  151. package/lib/components/navbar/index.d.ts +2 -0
  152. package/lib/components/navbar/index.js +6 -0
  153. package/lib/components/nbgrader/NbGradesDetails.d.ts +5 -0
  154. package/lib/components/nbgrader/NbGradesDetails.js +17 -0
  155. package/lib/components/nbgrader/index.d.ts +1 -0
  156. package/lib/components/nbgrader/index.js +5 -0
  157. package/lib/components/notebooks/JupyterNotebook.d.ts +12 -0
  158. package/lib/components/notebooks/JupyterNotebook.js +36 -0
  159. package/lib/components/notebooks/JupyterNotebookToolbar.d.ts +2 -0
  160. package/lib/components/notebooks/JupyterNotebookToolbar.js +39 -0
  161. package/lib/components/notebooks/index.d.ts +2 -0
  162. package/lib/components/notebooks/index.js +6 -0
  163. package/lib/components/primer/Helper.d.ts +32 -0
  164. package/lib/components/primer/Helper.js +19 -0
  165. package/lib/components/primer/Portals.d.ts +9 -0
  166. package/lib/components/primer/Portals.js +26 -0
  167. package/lib/components/primer/Styles.d.ts +2 -0
  168. package/lib/components/primer/Styles.js +11 -0
  169. package/lib/components/primer/index.d.ts +2 -0
  170. package/lib/components/primer/index.js +6 -0
  171. package/lib/components/progress/ConsumptionBar.d.ts +40 -0
  172. package/lib/components/progress/ConsumptionBar.js +49 -0
  173. package/lib/components/progress/CreditsIndicator.d.ts +27 -0
  174. package/lib/components/progress/CreditsIndicator.js +24 -0
  175. package/lib/components/progress/ProgressBar.d.ts +2 -0
  176. package/lib/components/progress/ProgressBar.js +21 -0
  177. package/lib/components/progress/ProgressRing.d.ts +36 -0
  178. package/lib/components/progress/ProgressRing.js +31 -0
  179. package/lib/components/progress/Timer.d.ts +9 -0
  180. package/lib/components/progress/Timer.js +28 -0
  181. package/lib/components/progress/index.d.ts +5 -0
  182. package/lib/components/progress/index.js +9 -0
  183. package/lib/components/runtimes/RuntimeCellVariables.d.ts +39 -0
  184. package/lib/components/runtimes/RuntimeCellVariables.js +172 -0
  185. package/lib/components/runtimes/RuntimeCellVariablesDialog.d.ts +37 -0
  186. package/lib/components/runtimes/RuntimeCellVariablesDialog.js +101 -0
  187. package/lib/components/runtimes/RuntimeLauncherDialog.d.ts +53 -0
  188. package/lib/components/runtimes/RuntimeLauncherDialog.js +250 -0
  189. package/lib/components/runtimes/RuntimePickerBase.d.ts +69 -0
  190. package/lib/components/runtimes/RuntimePickerBase.js +109 -0
  191. package/lib/components/runtimes/RuntimePickerCell.d.ts +34 -0
  192. package/lib/components/runtimes/RuntimePickerCell.js +106 -0
  193. package/lib/components/runtimes/RuntimePickerNotebook.d.ts +42 -0
  194. package/lib/components/runtimes/RuntimePickerNotebook.js +168 -0
  195. package/lib/components/runtimes/RuntimeReservationControl.d.ts +47 -0
  196. package/lib/components/runtimes/RuntimeReservationControl.js +38 -0
  197. package/lib/components/runtimes/RuntimeSimplePicker.d.ts +34 -0
  198. package/lib/components/runtimes/RuntimeSimplePicker.js +156 -0
  199. package/lib/components/runtimes/RuntimeTransfer.d.ts +16 -0
  200. package/lib/components/runtimes/RuntimeTransfer.js +5 -0
  201. package/lib/components/runtimes/RuntimeUtils.d.ts +17 -0
  202. package/lib/components/runtimes/RuntimeUtils.js +168 -0
  203. package/lib/components/runtimes/RuntimeVariables.d.ts +38 -0
  204. package/lib/components/runtimes/RuntimeVariables.js +75 -0
  205. package/lib/components/runtimes/index.d.ts +11 -0
  206. package/lib/components/runtimes/index.js +15 -0
  207. package/lib/components/screenshot/ScreenCapture.d.ts +38 -0
  208. package/lib/components/screenshot/ScreenCapture.js +174 -0
  209. package/lib/components/screenshot/ScreenCaptureButton.d.ts +3 -0
  210. package/lib/components/screenshot/ScreenCaptureButton.js +21 -0
  211. package/lib/components/screenshot/index.d.ts +2 -0
  212. package/lib/components/screenshot/index.js +6 -0
  213. package/lib/components/snapshots/RuntimeSnapshotMenu.d.ts +36 -0
  214. package/lib/components/snapshots/RuntimeSnapshotMenu.js +164 -0
  215. package/lib/components/snapshots/index.d.ts +1 -0
  216. package/lib/components/snapshots/index.js +5 -0
  217. package/lib/components/snippets/SnippetDialog.d.ts +42 -0
  218. package/lib/components/snippets/SnippetDialog.js +42 -0
  219. package/lib/components/snippets/index.d.ts +1 -0
  220. package/lib/components/snippets/index.js +5 -0
  221. package/lib/components/storage/ContentsBrowser.d.ts +32 -0
  222. package/lib/components/storage/ContentsBrowser.js +255 -0
  223. package/lib/components/storage/ContentsItems.d.ts +58 -0
  224. package/lib/components/storage/ContentsItems.js +78 -0
  225. package/lib/components/storage/index.d.ts +2 -0
  226. package/lib/components/storage/index.js +6 -0
  227. package/lib/components/students/StudentItemStatus.d.ts +7 -0
  228. package/lib/components/students/StudentItemStatus.js +47 -0
  229. package/lib/components/students/index.d.ts +1 -0
  230. package/lib/components/students/index.js +5 -0
  231. package/lib/components/subnav/SubNav.d.ts +84 -0
  232. package/lib/components/subnav/SubNav.js +265 -0
  233. package/lib/components/subnav/SubNav.module.css +683 -0
  234. package/lib/components/subnav/index.d.ts +1 -0
  235. package/lib/components/subnav/index.js +5 -0
  236. package/lib/components/tables/DataTable.d.ts +5 -0
  237. package/lib/components/tables/DataTable.js +19 -0
  238. package/lib/components/tables/index.d.ts +1 -0
  239. package/lib/components/tables/index.js +5 -0
  240. package/lib/components/text-reveal/TextRevealAnimation.d.ts +6 -0
  241. package/lib/components/text-reveal/TextRevealAnimation.js +49 -0
  242. package/lib/components/text-reveal/TextRevealAnimation.module.css +43 -0
  243. package/lib/components/text-reveal/index.d.ts +1 -0
  244. package/lib/components/text-reveal/index.js +5 -0
  245. package/lib/components/text-reveal/useTextRevealAnimationLines.d.ts +4 -0
  246. package/lib/components/text-reveal/useTextRevealAnimationLines.js +47 -0
  247. package/lib/components/tokens/SpaceVariantToken.d.ts +5 -0
  248. package/lib/components/tokens/SpaceVariantToken.js +20 -0
  249. package/lib/components/tokens/index.d.ts +1 -0
  250. package/lib/components/tokens/index.js +5 -0
  251. package/lib/components/toolbars/AssignmentEditorToolbar.d.ts +4 -0
  252. package/lib/components/toolbars/AssignmentEditorToolbar.js +18 -0
  253. package/lib/components/toolbars/DocumentEditorToolbar.d.ts +2 -0
  254. package/lib/components/toolbars/DocumentEditorToolbar.js +12 -0
  255. package/lib/components/toolbars/NotebookEditorToolbar.d.ts +29 -0
  256. package/lib/components/toolbars/NotebookEditorToolbar.js +30 -0
  257. package/lib/components/toolbars/index.d.ts +3 -0
  258. package/lib/components/toolbars/index.js +7 -0
  259. package/lib/components/users/PeerIndicator.d.ts +18 -0
  260. package/lib/components/users/PeerIndicator.js +100 -0
  261. package/lib/components/users/index.d.ts +1 -0
  262. package/lib/components/users/index.js +5 -0
  263. package/lib/config/Configuration.d.ts +111 -0
  264. package/lib/config/Configuration.js +25 -0
  265. package/lib/config/index.d.ts +2 -0
  266. package/lib/config/index.js +6 -0
  267. package/lib/config/integrations/Loom.d.ts +1 -0
  268. package/lib/config/integrations/Loom.js +16 -0
  269. package/lib/config/integrations/index.d.ts +1 -0
  270. package/lib/config/integrations/index.js +5 -0
  271. package/lib/examples/CellExample.d.ts +6 -0
  272. package/lib/examples/CellExample.js +24 -0
  273. package/lib/examples/NotebookExample.d.ts +8 -0
  274. package/lib/examples/NotebookExample.js +22 -0
  275. package/lib/examples/NotebookExample1.ipynb.json +136 -0
  276. package/lib/hooks/assets/OutputshotPlaceholders.d.ts +19 -0
  277. package/lib/hooks/assets/OutputshotPlaceholders.js +23 -0
  278. package/lib/hooks/assets/index.d.ts +1 -0
  279. package/lib/hooks/assets/index.js +5 -0
  280. package/lib/hooks/index.d.ts +28 -0
  281. package/lib/hooks/index.js +33 -0
  282. package/lib/hooks/layouts/LayoutBackdrop.d.ts +2 -0
  283. package/lib/hooks/layouts/LayoutBackdrop.js +30 -0
  284. package/lib/hooks/layouts/LayoutScreenshot.css +58 -0
  285. package/lib/hooks/layouts/LayoutScreenshot.d.ts +3 -0
  286. package/lib/hooks/layouts/LayoutScreenshot.js +44 -0
  287. package/lib/hooks/layouts/index.d.ts +2 -0
  288. package/lib/hooks/layouts/index.js +6 -0
  289. package/lib/hooks/useAIAgents.d.ts +13 -0
  290. package/lib/hooks/useAIAgents.js +72 -0
  291. package/lib/hooks/useAuthorization.d.ts +19 -0
  292. package/lib/hooks/useAuthorization.js +124 -0
  293. package/lib/hooks/useBackdrop.d.ts +28 -0
  294. package/lib/hooks/useBackdrop.js +100 -0
  295. package/lib/hooks/useBackdropJupyterLab.d.ts +15 -0
  296. package/lib/hooks/useBackdropJupyterLab.js +51 -0
  297. package/lib/hooks/useCache.d.ts +306 -0
  298. package/lib/hooks/useCache.js +3098 -0
  299. package/lib/hooks/useCellOutputshot.d.ts +4 -0
  300. package/lib/hooks/useCellOutputshot.js +28 -0
  301. package/lib/hooks/useContainsFocus.d.ts +9 -0
  302. package/lib/hooks/useContainsFocus.js +43 -0
  303. package/lib/hooks/useDatalayer.d.ts +21 -0
  304. package/lib/hooks/useDatalayer.js +81 -0
  305. package/lib/hooks/useError.d.ts +9 -0
  306. package/lib/hooks/useError.js +26 -0
  307. package/lib/hooks/useExternalScript.d.ts +2 -0
  308. package/lib/hooks/useExternalScript.js +17 -0
  309. package/lib/hooks/useFocusTrap.d.ts +30 -0
  310. package/lib/hooks/useFocusTrap.js +48 -0
  311. package/lib/hooks/useIAM.d.ts +14 -0
  312. package/lib/hooks/useIAM.js +93 -0
  313. package/lib/hooks/useId.d.ts +19 -0
  314. package/lib/hooks/useId.js +100 -0
  315. package/lib/hooks/useIsomorphicLayoutEffect.d.ts +3 -0
  316. package/lib/hooks/useIsomorphicLayoutEffect.js +11 -0
  317. package/lib/hooks/useJupyterLabTheme.d.ts +6 -0
  318. package/lib/hooks/useJupyterLabTheme.js +24 -0
  319. package/lib/hooks/useKeyboardEscape.d.ts +1 -0
  320. package/lib/hooks/useKeyboardEscape.js +18 -0
  321. package/lib/hooks/useLocationHandles.d.ts +10 -0
  322. package/lib/hooks/useLocationHandles.js +22 -0
  323. package/lib/hooks/useNavigate.d.ts +2 -0
  324. package/lib/hooks/useNavigate.js +24 -0
  325. package/lib/hooks/useNotebookAIAgent.d.ts +8 -0
  326. package/lib/hooks/useNotebookAIAgent.js +54 -0
  327. package/lib/hooks/useOnClickOutside.d.ts +1 -0
  328. package/lib/hooks/useOnClickOutside.js +29 -0
  329. package/lib/hooks/useRef.d.ts +10 -0
  330. package/lib/hooks/useRef.js +17 -0
  331. package/lib/hooks/useRuntimes.d.ts +5 -0
  332. package/lib/hooks/useRuntimes.js +34 -0
  333. package/lib/hooks/useScreenshot.d.ts +21 -0
  334. package/lib/hooks/useScreenshot.js +60 -0
  335. package/lib/hooks/useToast.d.ts +42 -0
  336. package/lib/hooks/useToast.js +141 -0
  337. package/lib/hooks/useUpload.d.ts +7 -0
  338. package/lib/hooks/useUpload.js +46 -0
  339. package/lib/hooks/useUser.d.ts +3 -0
  340. package/lib/hooks/useUser.js +22 -0
  341. package/lib/hooks/useVisibilityObserver.d.ts +5 -0
  342. package/lib/hooks/useVisibilityObserver.js +42 -0
  343. package/lib/hooks/useWindowSize.d.ts +21 -0
  344. package/lib/hooks/useWindowSize.js +74 -0
  345. package/lib/i18n/Labels.d.ts +1 -0
  346. package/lib/i18n/Labels.js +5 -0
  347. package/lib/i18n/index.d.ts +1 -0
  348. package/lib/i18n/index.js +5 -0
  349. package/lib/index.css +73 -0
  350. package/lib/index.d.ts +3 -0
  351. package/lib/index.js +6 -0
  352. package/lib/main.d.ts +1 -0
  353. package/lib/main.js +5 -2
  354. package/lib/mocks/components/FlashMock.d.ts +2 -0
  355. package/lib/mocks/components/FlashMock.js +13 -0
  356. package/lib/mocks/components/index.d.ts +1 -0
  357. package/lib/mocks/components/index.js +5 -0
  358. package/lib/mocks/hooks/index.d.ts +1 -0
  359. package/lib/mocks/hooks/index.js +5 -0
  360. package/lib/mocks/hooks/rests/index.d.ts +1 -0
  361. package/lib/mocks/hooks/rests/index.js +5 -0
  362. package/lib/mocks/hooks/rests/rests.d.ts +22 -0
  363. package/lib/mocks/hooks/rests/rests.js +32 -0
  364. package/lib/mocks/hooks/useDatalayerMock.d.ts +6 -0
  365. package/lib/mocks/hooks/useDatalayerMock.js +78 -0
  366. package/lib/mocks/index.d.ts +4 -0
  367. package/lib/mocks/index.js +9 -0
  368. package/lib/mocks/jupyter/index.d.ts +1 -0
  369. package/lib/mocks/jupyter/index.js +5 -0
  370. package/lib/mocks/models/CodeBlockMock.d.ts +1 -0
  371. package/lib/mocks/models/CodeBlockMock.js +5 -0
  372. package/lib/mocks/models/CodelineMock.d.ts +1 -0
  373. package/lib/mocks/models/CodelineMock.js +5 -0
  374. package/lib/mocks/models/CourseMock.d.ts +6 -0
  375. package/lib/mocks/models/CourseMock.js +29 -0
  376. package/lib/mocks/models/InviteMock.d.ts +6 -0
  377. package/lib/mocks/models/InviteMock.js +22 -0
  378. package/lib/mocks/models/JupyterLabUserMock.d.ts +2 -0
  379. package/lib/mocks/models/JupyterLabUserMock.js +17 -0
  380. package/lib/mocks/models/OrganisationMock.d.ts +5 -0
  381. package/lib/mocks/models/OrganisationMock.js +24 -0
  382. package/lib/mocks/models/SchoolMock.d.ts +6 -0
  383. package/lib/mocks/models/SchoolMock.js +25 -0
  384. package/lib/mocks/models/SpaceMock.d.ts +6 -0
  385. package/lib/mocks/models/SpaceMock.js +25 -0
  386. package/lib/mocks/models/TeamMock.d.ts +5 -0
  387. package/lib/mocks/models/TeamMock.js +26 -0
  388. package/lib/mocks/models/UserMock.d.ts +2 -0
  389. package/lib/mocks/models/UserMock.js +29 -0
  390. package/lib/mocks/models/index.d.ts +9 -0
  391. package/lib/mocks/models/index.js +13 -0
  392. package/lib/mocks/views/ActionMenuMock.d.ts +5 -0
  393. package/lib/mocks/views/ActionMenuMock.js +12 -0
  394. package/lib/mocks/views/ChartMock.d.ts +5 -0
  395. package/lib/mocks/views/ChartMock.js +15 -0
  396. package/lib/mocks/views/ChartMockOptions.d.ts +92 -0
  397. package/lib/mocks/views/ChartMockOptions.js +102 -0
  398. package/lib/mocks/views/DashboardMock.d.ts +2 -0
  399. package/lib/mocks/views/DashboardMock.js +118 -0
  400. package/lib/mocks/views/FormMock.d.ts +5 -0
  401. package/lib/mocks/views/FormMock.js +28 -0
  402. package/lib/mocks/views/TableMock.d.ts +5 -0
  403. package/lib/mocks/views/TableMock.js +155 -0
  404. package/lib/mocks/views/WipMock.d.ts +5 -0
  405. package/lib/mocks/views/WipMock.js +12 -0
  406. package/lib/mocks/views/index.d.ts +7 -0
  407. package/lib/mocks/views/index.js +11 -0
  408. package/lib/models/AIAgent.d.ts +17 -0
  409. package/lib/models/AIAgent.js +5 -0
  410. package/lib/models/Account.d.ts +4 -0
  411. package/lib/models/Account.js +5 -0
  412. package/lib/models/Assignment.d.ts +7 -0
  413. package/lib/models/Assignment.js +5 -0
  414. package/lib/models/Base.d.ts +16 -0
  415. package/lib/models/Base.js +5 -0
  416. package/lib/models/Cell.d.ts +8 -0
  417. package/lib/models/Cell.js +5 -0
  418. package/lib/models/CodeBlock.d.ts +10 -0
  419. package/lib/models/CodeBlock.js +5 -0
  420. package/lib/models/CodefeedBlocks.d.ts +7 -0
  421. package/lib/models/CodefeedBlocks.js +5 -0
  422. package/lib/models/Contact.d.ts +73 -0
  423. package/lib/models/Contact.js +90 -0
  424. package/lib/models/ContactEvent.d.ts +10 -0
  425. package/lib/models/ContactEvent.js +14 -0
  426. package/lib/models/ContactIAMProvider.d.ts +12 -0
  427. package/lib/models/ContactIAMProvider.js +20 -0
  428. package/lib/models/ContactTags.d.ts +23 -0
  429. package/lib/models/ContactTags.js +73 -0
  430. package/lib/models/Content.d.ts +5 -0
  431. package/lib/models/Content.js +5 -0
  432. package/lib/models/Course.d.ts +17 -0
  433. package/lib/models/Course.js +5 -0
  434. package/lib/models/Credits.d.ts +76 -0
  435. package/lib/models/Credits.js +11 -0
  436. package/lib/models/Dataset.d.ts +16 -0
  437. package/lib/models/Dataset.js +5 -0
  438. package/lib/models/Datasource.d.ts +11 -0
  439. package/lib/models/Datasource.js +14 -0
  440. package/lib/models/Dean.d.ts +3 -0
  441. package/lib/models/Dean.js +5 -0
  442. package/lib/models/Document.d.ts +8 -0
  443. package/lib/models/Document.js +5 -0
  444. package/lib/models/Environment.d.ts +82 -0
  445. package/lib/models/Environment.js +5 -0
  446. package/lib/models/Errors.d.ts +6 -0
  447. package/lib/models/Errors.js +13 -0
  448. package/lib/models/Exercise.d.ts +16 -0
  449. package/lib/models/Exercise.js +5 -0
  450. package/lib/models/GrowthKPI.d.ts +5 -0
  451. package/lib/models/GrowthKPI.js +9 -0
  452. package/lib/models/IAMProviderLinked.d.ts +9 -0
  453. package/lib/models/IAMProviderLinked.js +13 -0
  454. package/lib/models/IAMProviderPost.d.ts +8 -0
  455. package/lib/models/IAMProviderPost.js +22 -0
  456. package/lib/models/IAMProviderUsers.d.ts +49 -0
  457. package/lib/models/IAMProviderUsers.js +29 -0
  458. package/lib/models/IAMProvidersSpecs.d.ts +22 -0
  459. package/lib/models/IAMProvidersSpecs.js +72 -0
  460. package/lib/models/IAMToken.d.ts +11 -0
  461. package/lib/models/IAMToken.js +14 -0
  462. package/lib/models/Inbound.d.ts +25 -0
  463. package/lib/models/Inbound.js +29 -0
  464. package/lib/models/Instructor.d.ts +3 -0
  465. package/lib/models/Instructor.js +5 -0
  466. package/lib/models/Invite.d.ts +14 -0
  467. package/lib/models/Invite.js +24 -0
  468. package/lib/models/Item.d.ts +20 -0
  469. package/lib/models/Item.js +5 -0
  470. package/lib/models/ItemType.d.ts +2 -0
  471. package/lib/models/ItemType.js +5 -0
  472. package/lib/models/LandingRoles.d.ts +3 -0
  473. package/lib/models/LandingRoles.js +27 -0
  474. package/lib/models/Lesson.d.ts +5 -0
  475. package/lib/models/Lesson.js +5 -0
  476. package/lib/models/Library.d.ts +10 -0
  477. package/lib/models/Library.js +5 -0
  478. package/lib/models/Member.d.ts +3 -0
  479. package/lib/models/Member.js +5 -0
  480. package/lib/models/Notebook.d.ts +11 -0
  481. package/lib/models/Notebook.js +5 -0
  482. package/lib/models/Organization.d.ts +27 -0
  483. package/lib/models/Organization.js +36 -0
  484. package/lib/models/OrganizationMember.d.ts +6 -0
  485. package/lib/models/OrganizationMember.js +5 -0
  486. package/lib/models/Outbound.d.ts +41 -0
  487. package/lib/models/Outbound.js +45 -0
  488. package/lib/models/Page.d.ts +36 -0
  489. package/lib/models/Page.js +23 -0
  490. package/lib/models/PageTag.d.ts +19 -0
  491. package/lib/models/PageTag.js +26 -0
  492. package/lib/models/Profile.d.ts +1 -0
  493. package/lib/models/Profile.js +5 -0
  494. package/lib/models/Role.d.ts +9 -0
  495. package/lib/models/Role.js +5 -0
  496. package/lib/models/RolesOrganization.d.ts +9 -0
  497. package/lib/models/RolesOrganization.js +58 -0
  498. package/lib/models/RolesPlatform.d.ts +16 -0
  499. package/lib/models/RolesPlatform.js +142 -0
  500. package/lib/models/RolesTeam.d.ts +7 -0
  501. package/lib/models/RolesTeam.js +34 -0
  502. package/lib/models/Runtime.d.ts +123 -0
  503. package/lib/models/Runtime.js +18 -0
  504. package/lib/models/RuntimeSnapshot.d.ts +92 -0
  505. package/lib/models/RuntimeSnapshot.js +13 -0
  506. package/lib/models/School.d.ts +11 -0
  507. package/lib/models/School.js +5 -0
  508. package/lib/models/Secret.d.ts +10 -0
  509. package/lib/models/Secret.js +13 -0
  510. package/lib/models/Space.d.ts +34 -0
  511. package/lib/models/Space.js +39 -0
  512. package/lib/models/SpaceItem.d.ts +10 -0
  513. package/lib/models/SpaceItem.js +5 -0
  514. package/lib/models/SpaceMember.d.ts +6 -0
  515. package/lib/models/SpaceMember.js +5 -0
  516. package/lib/models/Student.d.ts +6 -0
  517. package/lib/models/Student.js +5 -0
  518. package/lib/models/StudentItem.d.ts +21 -0
  519. package/lib/models/StudentItem.js +5 -0
  520. package/lib/models/Survey.d.ts +20 -0
  521. package/lib/models/Survey.js +14 -0
  522. package/lib/models/Team.d.ts +22 -0
  523. package/lib/models/Team.js +32 -0
  524. package/lib/models/TeamMember.d.ts +6 -0
  525. package/lib/models/TeamMember.js +5 -0
  526. package/lib/models/URN.d.ts +63 -0
  527. package/lib/models/URN.js +40 -0
  528. package/lib/models/Usage.d.ts +46 -0
  529. package/lib/models/Usage.js +21 -0
  530. package/lib/models/User.d.ts +71 -0
  531. package/lib/models/User.js +98 -0
  532. package/lib/models/UserEvent.d.ts +10 -0
  533. package/lib/models/UserEvent.js +14 -0
  534. package/lib/models/UserOnboarding.d.ts +14 -0
  535. package/lib/models/UserOnboarding.js +19 -0
  536. package/lib/models/UserSettings.d.ts +16 -0
  537. package/lib/models/UserSettings.js +27 -0
  538. package/lib/models/WaitingListFormData.d.ts +6 -0
  539. package/lib/models/WaitingListFormData.js +5 -0
  540. package/lib/models/index.d.ts +65 -0
  541. package/lib/models/index.js +69 -0
  542. package/lib/routes/Routes.d.ts +3 -0
  543. package/lib/routes/Routes.js +7 -0
  544. package/lib/routes/index.d.ts +1 -0
  545. package/lib/routes/index.js +5 -0
  546. package/lib/state/State.d.ts +33 -0
  547. package/lib/state/State.js +44 -0
  548. package/lib/state/index.d.ts +3 -0
  549. package/lib/state/index.js +7 -0
  550. package/lib/state/storage/IAMStorage.d.ts +33 -0
  551. package/lib/state/storage/IAMStorage.js +76 -0
  552. package/lib/state/storage/index.d.ts +1 -0
  553. package/lib/state/storage/index.js +5 -0
  554. package/lib/state/substates/AIAgentState.d.ts +11 -0
  555. package/lib/state/substates/AIAgentState.js +40 -0
  556. package/lib/state/substates/CellState.d.ts +12 -0
  557. package/lib/state/substates/CellState.js +21 -0
  558. package/lib/state/substates/CoreState.d.ts +25 -0
  559. package/lib/state/substates/CoreState.js +88 -0
  560. package/lib/state/substates/DatasourceState.d.ts +11 -0
  561. package/lib/state/substates/DatasourceState.js +16 -0
  562. package/lib/state/substates/DocumentState.d.ts +10 -0
  563. package/lib/state/substates/DocumentState.js +14 -0
  564. package/lib/state/substates/GradeState.d.ts +10 -0
  565. package/lib/state/substates/GradeState.js +14 -0
  566. package/lib/state/substates/IAMState.d.ts +75 -0
  567. package/lib/state/substates/IAMState.js +291 -0
  568. package/lib/state/substates/JupyterLabState.d.ts +16 -0
  569. package/lib/state/substates/JupyterLabState.js +17 -0
  570. package/lib/state/substates/LayoutState.d.ts +62 -0
  571. package/lib/state/substates/LayoutState.js +74 -0
  572. package/lib/state/substates/NbformatState.d.ts +13 -0
  573. package/lib/state/substates/NbformatState.js +16 -0
  574. package/lib/state/substates/OrganizationState.d.ts +11 -0
  575. package/lib/state/substates/OrganizationState.js +16 -0
  576. package/lib/state/substates/RuntimesState.d.ts +88 -0
  577. package/lib/state/substates/RuntimesState.js +178 -0
  578. package/lib/state/substates/SpaceState.d.ts +11 -0
  579. package/lib/state/substates/SpaceState.js +16 -0
  580. package/lib/state/substates/SurveysState.d.ts +14 -0
  581. package/lib/state/substates/SurveysState.js +98 -0
  582. package/lib/state/substates/TeamState.d.ts +11 -0
  583. package/lib/state/substates/TeamState.js +17 -0
  584. package/lib/state/substates/index.d.ts +15 -0
  585. package/lib/state/substates/index.js +19 -0
  586. package/lib/stories/assets/accessibility.png +0 -0
  587. package/lib/stories/assets/accessibility.svg +1 -0
  588. package/lib/stories/assets/addon-library.png +0 -0
  589. package/lib/stories/assets/assets.png +0 -0
  590. package/lib/stories/assets/context.png +0 -0
  591. package/lib/stories/assets/discord.svg +1 -0
  592. package/lib/stories/assets/docs.png +0 -0
  593. package/lib/stories/assets/figma-plugin.png +0 -0
  594. package/lib/stories/assets/github.svg +1 -0
  595. package/lib/stories/assets/share.png +0 -0
  596. package/lib/stories/assets/styling.png +0 -0
  597. package/lib/stories/assets/testing.png +0 -0
  598. package/lib/stories/assets/theming.png +0 -0
  599. package/lib/stories/assets/tutorials.svg +1 -0
  600. package/lib/stories/assets/youtube.svg +1 -0
  601. package/lib/stories/button.css +35 -0
  602. package/lib/stories/header.css +37 -0
  603. package/lib/stories/page.css +73 -0
  604. package/lib/test-setup.d.ts +1 -0
  605. package/lib/test-setup.js +57 -0
  606. package/lib/theme/DatalayerTheme.d.ts +37 -0
  607. package/lib/theme/DatalayerTheme.js +62 -0
  608. package/lib/theme/DatalayerThemeProvider.d.ts +17 -0
  609. package/lib/theme/DatalayerThemeProvider.js +69 -0
  610. package/lib/theme/Palette.d.ts +5 -0
  611. package/lib/theme/Palette.js +22 -0
  612. package/lib/theme/index.d.ts +3 -0
  613. package/lib/theme/index.js +7 -0
  614. package/lib/utils/Array.d.ts +2 -0
  615. package/lib/utils/Array.js +16 -0
  616. package/lib/utils/Avatar.d.ts +9 -0
  617. package/lib/utils/Avatar.js +34 -0
  618. package/lib/utils/Browser.d.ts +3 -0
  619. package/lib/utils/Browser.js +63 -0
  620. package/lib/utils/Cells.d.ts +2 -0
  621. package/lib/utils/Cells.js +28 -0
  622. package/lib/utils/Cookie.d.ts +12 -0
  623. package/lib/utils/Cookie.js +48 -0
  624. package/lib/utils/Date.d.ts +2 -0
  625. package/lib/utils/Date.js +60 -0
  626. package/lib/utils/Download.d.ts +3 -0
  627. package/lib/utils/Download.js +48 -0
  628. package/lib/utils/DownloadFile.d.ts +10 -0
  629. package/lib/utils/DownloadFile.js +36 -0
  630. package/lib/utils/Env.d.ts +1 -0
  631. package/lib/utils/Env.js +7 -0
  632. package/lib/utils/File.d.ts +7 -0
  633. package/lib/utils/File.js +16 -0
  634. package/lib/utils/Format.d.ts +17 -0
  635. package/lib/utils/Format.js +54 -0
  636. package/lib/utils/Ids.d.ts +2 -0
  637. package/lib/utils/Ids.js +12 -0
  638. package/lib/utils/Jupyter.d.ts +1 -0
  639. package/lib/utils/Jupyter.js +12 -0
  640. package/lib/utils/Lazy.d.ts +8 -0
  641. package/lib/utils/Lazy.js +23 -0
  642. package/lib/utils/Msc.d.ts +16 -0
  643. package/lib/utils/Msc.js +28 -0
  644. package/lib/utils/Name.d.ts +7 -0
  645. package/lib/utils/Name.js +34 -0
  646. package/lib/utils/Notebook.d.ts +19 -0
  647. package/lib/utils/Notebook.js +37 -0
  648. package/lib/utils/Number.d.ts +1 -0
  649. package/lib/utils/Number.js +21 -0
  650. package/lib/utils/Plots.d.ts +16 -0
  651. package/lib/utils/Plots.js +56 -0
  652. package/lib/utils/Random.d.ts +1 -0
  653. package/lib/utils/Random.js +7 -0
  654. package/lib/utils/Screenshot.d.ts +1 -0
  655. package/lib/utils/Screenshot.js +27 -0
  656. package/lib/utils/Scroll.d.ts +2 -0
  657. package/lib/utils/Scroll.js +32 -0
  658. package/lib/utils/Sleep.d.ts +2 -0
  659. package/lib/utils/Sleep.js +8 -0
  660. package/lib/utils/Snapshot.d.ts +7 -0
  661. package/lib/utils/Snapshot.js +21 -0
  662. package/lib/utils/String.d.ts +1 -0
  663. package/lib/utils/String.js +13 -0
  664. package/lib/utils/Uri.d.ts +2 -0
  665. package/lib/utils/Uri.js +26 -0
  666. package/lib/utils/Validator.d.ts +12 -0
  667. package/lib/utils/Validator.js +44 -0
  668. package/lib/utils/WithSuspense.d.ts +2 -0
  669. package/lib/utils/WithSuspense.js +21 -0
  670. package/lib/utils/index.d.ts +26 -0
  671. package/lib/utils/index.js +31 -0
  672. package/package.json +86 -17
  673. package/style/animation/Animation.module.css +174 -0
  674. package/style/base.css +62 -3
  675. package/style/index.css +2 -3
  676. package/style/index.js +0 -7
@@ -0,0 +1,102 @@
1
+ import { IRuntimeOptions } from '..';
2
+ import type { IRuntimeSnapshot, IDatalayerEnvironment, IRuntimePod } from '../../models';
3
+ /**
4
+ * Get available Environments.
5
+ */
6
+ export declare function getEnvironments(): Promise<IDatalayerEnvironment[]>;
7
+ /**
8
+ * Create a Runtime.
9
+ */
10
+ export declare function createRuntime(options: IRuntimeOptions): Promise<IRuntimePod>;
11
+ /**
12
+ * Get the Runtimes.
13
+ */
14
+ export declare function getRuntimes(): Promise<IRuntimePod[]>;
15
+ /**
16
+ * Delete a Runtime
17
+ */
18
+ export declare function deleteRuntime(options: {
19
+ /**
20
+ * Runtime ID
21
+ */
22
+ id: string;
23
+ /**
24
+ * Deletion reason
25
+ */
26
+ reason?: string;
27
+ }): Promise<void>;
28
+ /**
29
+ * Snapshot a Runtime.
30
+ */
31
+ export declare function snapshotRuntime(options: {
32
+ /**
33
+ * Runtime ID.
34
+ */
35
+ id: string;
36
+ /**
37
+ * Snapshot name.
38
+ */
39
+ name?: string;
40
+ /**
41
+ * Snapshot description.
42
+ */
43
+ description?: string;
44
+ /**
45
+ * Whether to stop the kernel after the snapshot completion or not.
46
+ */
47
+ stop?: boolean;
48
+ }): Promise<IRuntimeSnapshot>;
49
+ /**
50
+ * Get Runtime Snapshots.
51
+ */
52
+ export declare function getRuntimeSnapshots(): Promise<IRuntimeSnapshot[]>;
53
+ /**
54
+ * Load a Runtime Snapshot within a kernel.
55
+ */
56
+ export declare function loadRuntimeSnapshot(options: {
57
+ /**
58
+ * Runtime ID
59
+ */
60
+ id: string;
61
+ /**
62
+ * Snapshot UID
63
+ */
64
+ from: string;
65
+ }): Promise<void>;
66
+ /**
67
+ * Returns the Runtime Snapshot download URL.
68
+ *
69
+ * @param id Snapshot UID to download
70
+ * @returns The download URL
71
+ */
72
+ export declare function createRuntimeSnapshotDownloadURL(id: string): string;
73
+ /**
74
+ * Export a Runtime Snapshot.
75
+ *
76
+ * @param id Runtime snapshot UID to download
77
+ */
78
+ export declare function exportRuntimeSnapshot(id: string): void;
79
+ /**
80
+ * Delete a Runtime Snapshot.
81
+ */
82
+ export declare function deleteRuntimeSnapshot(id: string): Promise<void>;
83
+ /**
84
+ * Update Runtime Snapshot metadata.
85
+ */
86
+ export declare function updateRuntimeSnapshot(id: string, metadata: {
87
+ name?: string;
88
+ description?: string;
89
+ }): Promise<void>;
90
+ /**
91
+ * Upload a Runtime Snapshot.
92
+ *
93
+ * Note: The promise will be rejected if the runtime state is empty.
94
+ */
95
+ export declare function uploadRuntimeSnapshot(options: {
96
+ file: File | Blob;
97
+ metadata: {
98
+ filename: string;
99
+ [key: string]: string;
100
+ };
101
+ onProgress?: (bytesUploaded: number, bytesTotal: number) => void;
102
+ }): Promise<void>;
@@ -0,0 +1,264 @@
1
+ /*
2
+ * Copyright (c) 2023-2025 Datalayer, Inc.
3
+ * Distributed under the terms of the Modified BSD License.
4
+ */
5
+ /**
6
+ * Runtimes APIs.
7
+ */
8
+ import { URLExt } from '@jupyterlab/coreutils';
9
+ import { PromiseDelegate } from '@lumino/coreutils';
10
+ import { Upload } from 'tus-js-client';
11
+ import { requestDatalayerAPI } from '..';
12
+ import { asRuntimeSnapshot } from '../../models';
13
+ import { iamStore, runtimesStore } from '../../state';
14
+ import { sleep } from '../../utils';
15
+ /**
16
+ * Get available Environments.
17
+ */
18
+ export async function getEnvironments() {
19
+ const data = await requestDatalayerAPI({
20
+ url: URLExt.join(runtimesStore.getState().runtimesRunUrl, 'api/runtimes/v1/environments'),
21
+ token: iamStore.getState().token
22
+ });
23
+ if (!data.success) {
24
+ console.error('Failed to fetch available environments.', data);
25
+ return [];
26
+ }
27
+ return data.environments ?? [];
28
+ }
29
+ /**
30
+ * Create a Runtime.
31
+ */
32
+ export async function createRuntime(options) {
33
+ const { externalToken, token } = iamStore.getState();
34
+ const body = {
35
+ environment_name: options.environmentName,
36
+ type: options.type ?? 'notebook',
37
+ given_name: options.givenName,
38
+ credits_limit: options.creditsLimit
39
+ };
40
+ if (options.capabilities) {
41
+ body['capabilities'] = options.capabilities;
42
+ }
43
+ if (options.snapshot) {
44
+ body['from'] = options.snapshot;
45
+ }
46
+ const data = await requestDatalayerAPI({
47
+ url: URLExt.join(runtimesStore.getState().runtimesRunUrl, `api/runtimes/v1/runtimes`),
48
+ method: 'POST',
49
+ body,
50
+ token: token,
51
+ // externalToken may be needed for addons (like credits...).
52
+ headers: externalToken ?
53
+ {
54
+ 'X-External-Token': externalToken
55
+ }
56
+ : undefined
57
+ });
58
+ if (!data.success || !data.runtime) {
59
+ const msg = `Failed to create a kernel for the environment ${options.environmentName}.`;
60
+ console.error(msg, data);
61
+ throw new Error(msg);
62
+ }
63
+ return data.runtime;
64
+ }
65
+ /**
66
+ * Get the Runtimes.
67
+ */
68
+ export async function getRuntimes() {
69
+ const data = await requestDatalayerAPI({
70
+ url: URLExt.join(runtimesStore.getState().runtimesRunUrl, 'api/runtimes/v1/runtimes'),
71
+ token: iamStore.getState().token
72
+ });
73
+ if (!data.success) {
74
+ const msg = 'Failed to list the running kernels.';
75
+ console.error(msg, data);
76
+ throw new Error(msg);
77
+ }
78
+ return data.runtimes ?? [];
79
+ }
80
+ /**
81
+ * Delete a Runtime
82
+ */
83
+ export async function deleteRuntime(options) {
84
+ const externalToken = iamStore.getState().externalToken;
85
+ await requestDatalayerAPI({
86
+ url: URLExt.join(runtimesStore.getState().runtimesRunUrl, `api/runtimes/v1/runtimes/${options.id}`) +
87
+ URLExt.objectToQueryString(options.reason ? { reason: options.reason } : {}),
88
+ method: 'DELETE',
89
+ token: iamStore.getState().token,
90
+ // externalToken may be needed for addons (like credits...).
91
+ headers: externalToken ?
92
+ {
93
+ 'X-External-Token': externalToken
94
+ }
95
+ :
96
+ undefined
97
+ });
98
+ }
99
+ /**
100
+ * Snapshot a Runtime.
101
+ */
102
+ export async function snapshotRuntime(options) {
103
+ const data = await requestDatalayerAPI({
104
+ url: URLExt.join(runtimesStore.getState().runtimesRunUrl, 'api/runtimes/v1/runtime-snapshots'),
105
+ method: 'POST',
106
+ body: {
107
+ pod_name: options.id,
108
+ name: options.name,
109
+ description: options.description,
110
+ stop: options.stop
111
+ },
112
+ token: iamStore.getState().token
113
+ });
114
+ if (!data.success || !data.snapshot) {
115
+ throw new Error(`Failed to pause the kernel snapshot ${options.id} - ${data}`);
116
+ }
117
+ return asRuntimeSnapshot(data.snapshot);
118
+ }
119
+ /**
120
+ * Get Runtime Snapshots.
121
+ */
122
+ export async function getRuntimeSnapshots() {
123
+ const data = await requestDatalayerAPI({
124
+ url: URLExt.join(runtimesStore.getState().runtimesRunUrl, 'api/runtimes/v1/runtime-snapshots'),
125
+ token: iamStore.getState().token
126
+ });
127
+ if (!data.success) {
128
+ console.error('Failed to fetch kernel snapshots.', data);
129
+ return [];
130
+ }
131
+ return (data.snapshots ?? []).map(asRuntimeSnapshot);
132
+ }
133
+ /**
134
+ * Load a Runtime Snapshot within a kernel.
135
+ */
136
+ export async function loadRuntimeSnapshot(options) {
137
+ const data = await requestDatalayerAPI({
138
+ url: URLExt.join(runtimesStore.getState().runtimesRunUrl, 'api/runtimes/v1/runtimes', options.id),
139
+ method: 'PUT',
140
+ body: {
141
+ from: options.from
142
+ },
143
+ token: iamStore.getState().token
144
+ });
145
+ if (!data.success) {
146
+ throw new Error(`Failed to load the kernel snapshot; ${data.message}`);
147
+ }
148
+ }
149
+ /**
150
+ * Returns the Runtime Snapshot download URL.
151
+ *
152
+ * @param id Snapshot UID to download
153
+ * @returns The download URL
154
+ */
155
+ export function createRuntimeSnapshotDownloadURL(id) {
156
+ return (URLExt.join(runtimesStore.getState().runtimesRunUrl, `api/runtimes/v1/runtime-snapshots/${id}`) +
157
+ URLExt.objectToQueryString({
158
+ download: '1',
159
+ token: iamStore.getState().token ?? ''
160
+ }));
161
+ }
162
+ /**
163
+ * Export a Runtime Snapshot.
164
+ *
165
+ * @param id Runtime snapshot UID to download
166
+ */
167
+ export function exportRuntimeSnapshot(id) {
168
+ const url = createRuntimeSnapshotDownloadURL(id);
169
+ const element = document.createElement('a');
170
+ element.href = url;
171
+ element.download = '';
172
+ document.body.appendChild(element);
173
+ element.click();
174
+ document.body.removeChild(element);
175
+ }
176
+ /**
177
+ * Delete a Runtime Snapshot.
178
+ */
179
+ export async function deleteRuntimeSnapshot(id) {
180
+ await requestDatalayerAPI({
181
+ url: URLExt.join(runtimesStore.getState().runtimesRunUrl, `api/runtimes/v1/runtime-snapshots/${id}`),
182
+ method: 'DELETE',
183
+ token: iamStore.getState().token
184
+ });
185
+ // Poll Runtime Snapshot state up-to its deletion
186
+ try {
187
+ let sleepTimeout = 1000;
188
+ while (true) {
189
+ await sleep(sleepTimeout);
190
+ sleepTimeout *= 2;
191
+ const response = await requestDatalayerAPI({
192
+ url: URLExt.join(runtimesStore.getState().runtimesRunUrl, `api/runtimes/v1/runtime-snapshots/${id}`),
193
+ token: iamStore.getState().token
194
+ });
195
+ if (response.success === false) {
196
+ throw new Error(response.message);
197
+ }
198
+ }
199
+ }
200
+ catch (error) {
201
+ if (error.name === 'RunResponseError' &&
202
+ error.response.status === 404) {
203
+ // Expected not found
204
+ }
205
+ else {
206
+ throw error;
207
+ }
208
+ }
209
+ }
210
+ /**
211
+ * Update Runtime Snapshot metadata.
212
+ */
213
+ export async function updateRuntimeSnapshot(id, metadata) {
214
+ if (metadata.name || metadata.description) {
215
+ await requestDatalayerAPI({
216
+ url: URLExt.join(runtimesStore.getState().runtimesRunUrl, `api/runtimes/v1/runtime-snapshots/${id}`),
217
+ method: 'PATCH',
218
+ body: { ...metadata },
219
+ token: iamStore.getState().token
220
+ });
221
+ }
222
+ }
223
+ /**
224
+ * Upload a Runtime Snapshot.
225
+ *
226
+ * Note: The promise will be rejected if the runtime state is empty.
227
+ */
228
+ export async function uploadRuntimeSnapshot(options) {
229
+ if (options.file.size === 0) {
230
+ return Promise.reject('Empty Runtime Snapshot.');
231
+ }
232
+ const tracker = new PromiseDelegate();
233
+ // Create a new tus upload.
234
+ const upload = new Upload(options.file, {
235
+ // Endpoint is the upload creation URL from your tus server.
236
+ endpoint: `${runtimesStore.getState().runtimesRunUrl}/api/runtimes/v1/runtime-snapshots/upload`,
237
+ headers: { Authorization: `Bearer ${iamStore.getState().token}` },
238
+ // Retry delays will enable tus-js-client to automatically retry on errors.
239
+ // retryDelays: [0, 3000, 5000, 10000, 20000],
240
+ retryDelays: null,
241
+ // Attach additional meta data about the file for the server.
242
+ metadata: options.metadata,
243
+ // Callback for errors which cannot be fixed using retries.
244
+ onError: error => {
245
+ console.error(`Failed to upload ${options.metadata.filename}.`, error);
246
+ tracker.reject(error);
247
+ },
248
+ // Callback for reporting upload progress.
249
+ onProgress: options.onProgress,
250
+ // Callback for once the upload is completed.
251
+ onSuccess: () => {
252
+ tracker.resolve();
253
+ }
254
+ });
255
+ // Check if there are any previous uploads to continue then start the upload.
256
+ const previousUploads = await upload.findPreviousUploads();
257
+ // Found previous uploads so we select the first one.
258
+ if (previousUploads.length) {
259
+ upload.resumeFromPreviousUpload(previousUploads[0]);
260
+ }
261
+ // Start the upload.
262
+ upload.start();
263
+ return tracker.promise;
264
+ }
@@ -0,0 +1,273 @@
1
+ /**
2
+ * Runtimes APIs.
3
+ */
4
+ import { ISessionContext } from '@jupyterlab/apputils';
5
+ import { ServiceManager, Kernel, ServerConnection } from '@jupyterlab/services';
6
+ import { IDisposable } from '@lumino/disposable';
7
+ import { ISignal } from '@lumino/signaling';
8
+ import type { IRuntimeSnapshot, IRuntimeCapabilities, IRuntimeModel, IDatalayerEnvironment, IRuntimeType, IRuntimeLocation } from '../../models';
9
+ /**
10
+ * Abstract interface for the Datalayer session context.
11
+ * It extends the JupyterLab session context
12
+ * to include the runtime location.
13
+ */
14
+ export interface IDatalayerSessionContext extends ISessionContext {
15
+ get location(): IRuntimeLocation;
16
+ }
17
+ /**
18
+ * Runtime creation options
19
+ */
20
+ export interface IRuntimeOptions {
21
+ /**
22
+ * Environment name
23
+ */
24
+ environmentName: string;
25
+ /**
26
+ * Credits limit to be consumed by the kernel
27
+ */
28
+ creditsLimit: number;
29
+ /**
30
+ * Runtime type
31
+ */
32
+ type?: IRuntimeType;
33
+ /**
34
+ * Runtime given name
35
+ */
36
+ givenName?: string;
37
+ /**
38
+ * Kernel capabilities
39
+ */
40
+ capabilities?: IRuntimeCapabilities[];
41
+ /**
42
+ * Kernel snapshot to restore
43
+ */
44
+ snapshot?: string;
45
+ }
46
+ /**
47
+ * Interface for the Environments Manager
48
+ */
49
+ export interface IEnvironmentsManager extends IDisposable {
50
+ /**
51
+ * Signal emitted when the environments changes.
52
+ */
53
+ readonly changed: ISignal<IEnvironmentsManager, readonly IDatalayerEnvironment[]>;
54
+ /**
55
+ * A signal emitted when there is a connection failure.
56
+ */
57
+ readonly connectionFailure: ISignal<IEnvironmentsManager, Error>;
58
+ /**
59
+ * Test whether the manager is ready.
60
+ */
61
+ readonly isReady: boolean;
62
+ /**
63
+ * A promise that fulfills when the manager is ready.
64
+ */
65
+ readonly ready: Promise<void>;
66
+ /**
67
+ * Get the list of environments.
68
+ */
69
+ get(): readonly IDatalayerEnvironment[];
70
+ /**
71
+ * Refresh the environment list.
72
+ */
73
+ refresh(): Promise<void>;
74
+ /**
75
+ * Refresh the environments.
76
+ */
77
+ refreshEnvironments(): Promise<void>;
78
+ }
79
+ /**
80
+ * Interface for the Remote Runtimes Manager
81
+ */
82
+ export interface IRemoteRuntimesManager extends IDisposable {
83
+ /**
84
+ * A signal emitted when there is a connection failure.
85
+ */
86
+ readonly connectionFailure: ISignal<IRemoteRuntimesManager, Error>;
87
+ /**
88
+ * Test whether the manager is ready.
89
+ */
90
+ readonly isReady: boolean;
91
+ /**
92
+ * A promise that fulfills when the manager is ready.
93
+ */
94
+ readonly ready: Promise<void>;
95
+ /**
96
+ * Remote kernels changed
97
+ */
98
+ readonly changed: ISignal<IRemoteRuntimesManager, readonly IRuntimeModel[]>;
99
+ /**
100
+ * The server settings.
101
+ */
102
+ readonly serverSettings: ServerConnection.ISettings;
103
+ /**
104
+ * Get the list of remote kernels.
105
+ */
106
+ get(): readonly IRuntimeModel[];
107
+ /**
108
+ * Get the service manager for a remote server
109
+ *
110
+ * @param serverName Remote kernel server name
111
+ * @returns Service manager for the remote server
112
+ */
113
+ getServices(serverName: string): any | undefined;
114
+ /**
115
+ * Refresh the environment list
116
+ */
117
+ refresh(): Promise<void>;
118
+ /**
119
+ * Launch a Kernel.
120
+ *
121
+ * @param createOptions - The kernel creation options
122
+ *
123
+ * @param connectOptions - The kernel connection options
124
+ *
125
+ * @returns A promise that resolves with the kernel connection.
126
+ */
127
+ startNew(createOptions: IRuntimeOptions, connectOptions?: Omit<Kernel.IKernelConnection.IOptions, 'model' | 'serverSettings'>): Promise<Kernel.IKernelConnection>;
128
+ /**
129
+ * Find a kernel by id.
130
+ *
131
+ * @param id - The id of the target kernel.
132
+ *
133
+ * @returns A promise that resolves with the kernel's model, or undefined if not found.
134
+ */
135
+ findById(id: string): Promise<IRuntimeModel | undefined>;
136
+ /**
137
+ * Connect to an existing kernel.
138
+ *
139
+ * @param options - The connection options.
140
+ *
141
+ * @returns A promise that resolves with the new kernel instance.
142
+ */
143
+ connectTo(options: Kernel.IKernelConnection.IOptions): Kernel.IKernelConnection;
144
+ /**
145
+ * Shut down a kernel by id.
146
+ *
147
+ * @param id - The id of the target kernel.
148
+ *
149
+ * @returns A promise that resolves when the operation is complete.
150
+ */
151
+ shutdown(id: string): Promise<void>;
152
+ /**
153
+ * Shut down all kernels.
154
+ *
155
+ * @returns A promise that resolves when all of the kernels are shut down.
156
+ */
157
+ shutdownAll(): Promise<void>;
158
+ /**
159
+ * @deprecated Use {@link refresh} instead.
160
+ */
161
+ refreshKernels(): Promise<void>;
162
+ /**
163
+ * Snapshot a remote kernel
164
+ *
165
+ * The remote kernel may be given by its `id` or `podName`.
166
+ * A custom description for the snapshot can be provided.
167
+ *
168
+ * @returns The snapshot description
169
+ */
170
+ snapshot(options: {
171
+ /**
172
+ * The kernel id to snapshot
173
+ */
174
+ id?: string;
175
+ /**
176
+ * The kernel pod name to snapshot
177
+ */
178
+ podName?: string;
179
+ /**
180
+ * The snapshot name
181
+ */
182
+ name?: string;
183
+ /**
184
+ * The snapshot description
185
+ */
186
+ description?: string;
187
+ /**
188
+ * Whether to stop the kernel after the snapshot completion or not.
189
+ */
190
+ stop?: boolean;
191
+ }): Promise<IRuntimeSnapshot | undefined>;
192
+ /**
193
+ * Load a snapshot within a remote kernel
194
+ *
195
+ * The remote kernel may be given by its `id` or `podName`.
196
+ */
197
+ loadSnapshot(options: {
198
+ /**
199
+ * The kernel id
200
+ */
201
+ id?: string;
202
+ /**
203
+ * The kernel pod name
204
+ */
205
+ podName?: string;
206
+ /**
207
+ * The snapshot UID
208
+ */
209
+ snapshot: string;
210
+ }): Promise<void>;
211
+ }
212
+ /**
213
+ * Interface for the Remote Services Manager
214
+ */
215
+ export interface IRemoteServicesManager extends IDisposable {
216
+ /**
217
+ * The environments manager.
218
+ */
219
+ readonly environments: IEnvironmentsManager;
220
+ /**
221
+ * The remote runtimes manager.
222
+ */
223
+ readonly runtimesManager: IRemoteRuntimesManager;
224
+ /**
225
+ * The server settings.
226
+ */
227
+ readonly serverSettings: ServerConnection.ISettings;
228
+ /**
229
+ * A signal emitted when there is a connection failure with the kernel.
230
+ */
231
+ readonly connectionFailure: ISignal<IRemoteServicesManager, Error>;
232
+ /**
233
+ * Test whether the service manager is disposed.
234
+ */
235
+ readonly isDisposed: boolean;
236
+ /**
237
+ * Whether the remote manager is ready or not.
238
+ */
239
+ readonly isReady: boolean;
240
+ /**
241
+ * Wait for the remote manager to be ready.
242
+ */
243
+ readonly ready: Promise<void>;
244
+ }
245
+ /**
246
+ * Interface for the Service Manager that manages multiple Jupyter service managers.
247
+ */
248
+ export interface IMultiServiceManager extends ServiceManager.IManager {
249
+ /**
250
+ * Service manager for browser kernels.
251
+ *
252
+ * The kernels managed by this service manager
253
+ * are fully executed in a service worker with
254
+ * browser.
255
+ */
256
+ browser: ServiceManager.IManager | undefined;
257
+ /**
258
+ * Signal emitted when the browser services changes.
259
+ */
260
+ readonly browserChanged: ISignal<ServiceManager.IManager, ServiceManager.IManager | undefined>;
261
+ /**
262
+ * Classical Service manager on the Local Jupyter server.
263
+ */
264
+ readonly local: ServiceManager.IManager;
265
+ /**
266
+ * Service manager on a Remote Jupyter server.
267
+ */
268
+ remote: IRemoteServicesManager | undefined;
269
+ /**
270
+ * Signal emitted when the remote services changes.
271
+ */
272
+ readonly remoteChanged: ISignal<ServiceManager.IManager, IRemoteServicesManager | undefined>;
273
+ }
@@ -0,0 +1,5 @@
1
+ /*
2
+ * Copyright (c) 2023-2025 Datalayer, Inc.
3
+ * Distributed under the terms of the Modified BSD License.
4
+ */
5
+ export {};
@@ -0,0 +1,5 @@
1
+ export * from './actions';
2
+ export * from './apis';
3
+ export * from './settings';
4
+ export * from './snapshots';
5
+ export * from './utils';
@@ -0,0 +1,9 @@
1
+ /*
2
+ * Copyright (c) 2023-2025 Datalayer, Inc.
3
+ * Distributed under the terms of the Modified BSD License.
4
+ */
5
+ export * from './actions';
6
+ export * from './apis';
7
+ export * from './settings';
8
+ export * from './snapshots';
9
+ export * from './utils';
@@ -0,0 +1,15 @@
1
+ import { ServerConnection } from '@jupyterlab/services';
2
+ /**
3
+ * Create a settings object given a subset of options.
4
+ *
5
+ * TODO This is already present somewhere else?
6
+ *
7
+ * @param options - An optional partial set of options.
8
+ *
9
+ * @returns The full settings object.
10
+ */
11
+ export declare function makeDatalayerSettings(baseUrl: string, token: string, wsUrl?: string): ServerConnection.ISettings;
12
+ declare const _default: {
13
+ makeDatalayerSettings: typeof makeDatalayerSettings;
14
+ };
15
+ export default _default;
@@ -0,0 +1,31 @@
1
+ /*
2
+ * Copyright (c) 2023-2025 Datalayer, Inc.
3
+ * Distributed under the terms of the Modified BSD License.
4
+ */
5
+ import { ServerConnection } from '@jupyterlab/services';
6
+ /**
7
+ * Create a settings object given a subset of options.
8
+ *
9
+ * TODO This is already present somewhere else?
10
+ *
11
+ * @param options - An optional partial set of options.
12
+ *
13
+ * @returns The full settings object.
14
+ */
15
+ export function makeDatalayerSettings(baseUrl, token, wsUrl) {
16
+ const serverSettings = ServerConnection.makeSettings({
17
+ baseUrl,
18
+ wsUrl: wsUrl || baseUrl.replace(/^http/, 'ws'),
19
+ token,
20
+ appendToken: true,
21
+ init: {
22
+ mode: 'cors',
23
+ credentials: 'include',
24
+ cache: 'no-store'
25
+ }
26
+ });
27
+ return serverSettings;
28
+ }
29
+ export default {
30
+ makeDatalayerSettings
31
+ };