@datalayer/core 0.0.2 → 0.0.4

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 (474) hide show
  1. package/README.md +124 -2
  2. package/lib/App.css +47 -0
  3. package/lib/App.js +14 -2
  4. package/lib/__tests__/index.test.js +7 -6
  5. package/lib/api/{RunApi.d.ts → DatalayerApi.d.ts} +4 -4
  6. package/lib/api/{RunApi.js → DatalayerApi.js} +6 -11
  7. package/lib/api/index.d.ts +3 -2
  8. package/lib/api/index.js +3 -7
  9. package/lib/api/{runtimes → jupyter}/exec/Python.js +0 -5
  10. package/lib/api/{runtimes → jupyter}/exec/Snippets.js +0 -5
  11. package/lib/api/{runtimes → jupyter}/exec/index.js +0 -5
  12. package/lib/api/jupyter/index.d.ts +2 -0
  13. package/lib/api/jupyter/index.js +6 -0
  14. package/lib/api/{runtimes → jupyter}/kernelsHandler.d.ts +1 -1
  15. package/lib/api/{runtimes → jupyter}/kernelsHandler.js +1 -6
  16. package/lib/api/runtimes/actions.d.ts +102 -0
  17. package/lib/api/runtimes/{runtimesApi.js → actions.js} +47 -53
  18. package/lib/api/runtimes/{runtimesApi.d.ts → apis.d.ts} +8 -105
  19. package/lib/api/runtimes/apis.js +5 -0
  20. package/lib/api/runtimes/index.d.ts +2 -4
  21. package/lib/api/runtimes/index.js +2 -9
  22. package/lib/api/runtimes/settings.js +3 -8
  23. package/lib/api/runtimes/snapshots.d.ts +1 -1
  24. package/lib/api/runtimes/snapshots.js +8 -13
  25. package/lib/api/runtimes/utils.js +1 -9
  26. package/lib/assets/react.svg +1 -0
  27. package/lib/collaboration/DatalayerCollaboration.d.ts +9 -0
  28. package/lib/collaboration/DatalayerCollaboration.js +28 -0
  29. package/lib/collaboration/DatalayerCollaborationProvider.d.ts +54 -0
  30. package/lib/collaboration/DatalayerCollaborationProvider.js +162 -0
  31. package/lib/collaboration/index.d.ts +2 -0
  32. package/lib/collaboration/index.js +6 -0
  33. package/lib/components/avatars/BoringAvatar.d.ts +2 -3
  34. package/lib/components/avatars/BoringAvatar.js +14 -9
  35. package/lib/components/avatars/BoringAvatar.stories.d.ts +27 -0
  36. package/lib/components/avatars/BoringAvatar.stories.js +23 -0
  37. package/lib/components/avatars/UserProfileAvatar.js +2 -14
  38. package/lib/components/avatars/index.js +0 -5
  39. package/lib/components/banners/NoAutomationBanner.js +4 -9
  40. package/lib/components/banners/index.js +0 -5
  41. package/lib/components/buttons/DownloadCSVButton.d.ts +1 -1
  42. package/lib/components/buttons/DownloadCSVButton.js +1 -6
  43. package/lib/components/buttons/DownloadJsonButton.d.ts +1 -1
  44. package/lib/components/buttons/DownloadJsonButton.js +0 -5
  45. package/lib/components/buttons/LongActionButton.js +0 -5
  46. package/lib/components/buttons/UploadButton.js +1 -6
  47. package/lib/components/buttons/index.js +0 -5
  48. package/lib/components/checkout/StripeCheckout.d.ts +1 -1
  49. package/lib/components/checkout/StripeCheckout.js +6 -11
  50. package/lib/components/checkout/index.js +0 -5
  51. package/lib/components/confetti/ConfettiSuccess.js +1 -6
  52. package/lib/components/confetti/index.js +0 -5
  53. package/lib/components/context/OrganizationSelect.js +5 -10
  54. package/lib/components/context/SpaceSelect.js +7 -12
  55. package/lib/components/context/index.js +0 -5
  56. package/lib/components/display/AvatarSkeleton.js +1 -6
  57. package/lib/components/display/CenteredSpinner.js +4 -9
  58. package/lib/components/display/CodePreview.js +4 -9
  59. package/lib/components/display/DatalayerBox.js +13 -19
  60. package/lib/components/display/HorizontalCenter.d.ts +1 -1
  61. package/lib/components/display/HorizontalCenter.js +1 -1
  62. package/lib/components/display/JupyterDialog.js +17 -20
  63. package/lib/components/display/NavLink.d.ts +4 -2
  64. package/lib/components/display/NavLink.js +6 -9
  65. package/lib/components/display/NotebookSkeleton.js +2 -7
  66. package/lib/components/display/Placeholder.js +1 -6
  67. package/lib/components/display/ToTopBranded.js +1 -6
  68. package/lib/components/display/VisuallyHidden.js +0 -5
  69. package/lib/components/display/index.js +0 -5
  70. package/lib/components/echarts/EChartsReact.d.ts +1 -1
  71. package/lib/components/echarts/EChartsReact.js +7 -7
  72. package/lib/components/echarts/index.js +0 -5
  73. package/lib/components/flashes/FlashClosable.js +11 -16
  74. package/lib/components/flashes/FlashDisclaimer.js +2 -8
  75. package/lib/components/flashes/FlashGuest.js +3 -9
  76. package/lib/components/flashes/FlashSurveys.js +3 -9
  77. package/lib/components/flashes/FlashUnauthorized.js +2 -7
  78. package/lib/components/flashes/index.js +0 -5
  79. package/lib/components/flashes/surveys/Survey2025_1.d.ts +1 -1
  80. package/lib/components/flashes/surveys/Survey2025_1.js +62 -90
  81. package/lib/components/flashes/surveys/index.js +0 -5
  82. package/lib/components/iam/ExternalTokenSilentLogin.js +6 -9
  83. package/lib/components/iam/index.js +0 -5
  84. package/lib/components/icons/ArtifactIcon.d.ts +2 -2
  85. package/lib/components/icons/ArtifactIcon.js +39 -44
  86. package/lib/components/icons/index.js +0 -5
  87. package/lib/components/index.js +1 -6
  88. package/lib/components/labels/VisibilityLabel.js +2 -10
  89. package/lib/components/labels/index.js +0 -5
  90. package/lib/components/landings/StepBlock.d.ts +1 -1
  91. package/lib/components/landings/StepBlock.js +1 -6
  92. package/lib/components/landings/index.js +0 -5
  93. package/lib/components/navbar/NavigationVisbilityObserver.js +2 -7
  94. package/lib/components/navbar/SubdomainNavBar.js +46 -29
  95. package/lib/components/navbar/SubdomainNavBar.module.css +737 -0
  96. package/lib/components/navbar/index.js +0 -5
  97. package/lib/components/nbgrader/NbGradesDetails.d.ts +1 -1
  98. package/lib/components/nbgrader/NbGradesDetails.js +5 -13
  99. package/lib/components/nbgrader/index.js +0 -5
  100. package/lib/components/notebooks/JupyterNotebook.js +5 -10
  101. package/lib/components/notebooks/JupyterNotebookToolbar.js +3 -8
  102. package/lib/components/notebooks/index.js +0 -5
  103. package/lib/components/primer/Helper.d.ts +1 -1
  104. package/lib/components/primer/Helper.js +5 -3
  105. package/lib/components/primer/Portals.d.ts +1 -1
  106. package/lib/components/primer/Portals.js +2 -7
  107. package/lib/components/primer/Styles.js +1 -6
  108. package/lib/components/primer/index.js +0 -5
  109. package/lib/components/progress/ConsumptionBar.js +2 -7
  110. package/lib/components/progress/CreditsIndicator.d.ts +1 -1
  111. package/lib/components/progress/CreditsIndicator.js +4 -13
  112. package/lib/components/progress/ProgressBar.js +0 -5
  113. package/lib/components/progress/ProgressRing.js +2 -2
  114. package/lib/components/progress/Timer.js +0 -5
  115. package/lib/components/progress/index.js +0 -5
  116. package/lib/components/runtimes/RuntimeCellVariables.js +9 -14
  117. package/lib/components/runtimes/RuntimeCellVariablesDialog.js +7 -12
  118. package/lib/components/runtimes/RuntimeLauncherDialog.d.ts +1 -2
  119. package/lib/components/runtimes/RuntimeLauncherDialog.js +32 -40
  120. package/lib/components/runtimes/RuntimePickerBase.d.ts +1 -1
  121. package/lib/components/runtimes/RuntimePickerBase.js +42 -36
  122. package/lib/components/runtimes/RuntimePickerCell.js +9 -17
  123. package/lib/components/runtimes/RuntimePickerNotebook.d.ts +1 -2
  124. package/lib/components/runtimes/RuntimePickerNotebook.js +45 -50
  125. package/lib/components/runtimes/RuntimeReservationControl.js +10 -20
  126. package/lib/components/runtimes/RuntimeSimplePicker.d.ts +1 -1
  127. package/lib/components/runtimes/RuntimeSimplePicker.js +44 -52
  128. package/lib/components/runtimes/RuntimeUtils.d.ts +1 -1
  129. package/lib/components/runtimes/RuntimeUtils.js +22 -17
  130. package/lib/components/runtimes/RuntimeVariables.js +7 -12
  131. package/lib/components/runtimes/index.js +0 -5
  132. package/lib/components/screenshot/ScreenCapture.js +10 -19
  133. package/lib/components/screenshot/ScreenCaptureButton.d.ts +1 -1
  134. package/lib/components/screenshot/ScreenCaptureButton.js +14 -8
  135. package/lib/components/screenshot/index.js +0 -5
  136. package/lib/components/snapshots/RuntimeSnapshotMenu.js +19 -22
  137. package/lib/components/snapshots/index.js +0 -5
  138. package/lib/components/snippets/SnippetDialog.js +5 -10
  139. package/lib/components/snippets/index.js +0 -5
  140. package/lib/components/storage/ContentsBrowser.js +75 -63
  141. package/lib/components/storage/ContentsItems.js +10 -13
  142. package/lib/components/storage/index.js +0 -5
  143. package/lib/components/students/StudentItemStatus.d.ts +1 -1
  144. package/lib/components/students/StudentItemStatus.js +38 -21
  145. package/lib/components/students/index.js +0 -5
  146. package/lib/components/subnav/SubNav.d.ts +3 -3
  147. package/lib/components/subnav/SubNav.js +34 -24
  148. package/lib/components/subnav/SubNav.module.css +717 -0
  149. package/lib/components/subnav/index.js +0 -5
  150. package/lib/components/tables/DataTable.js +1 -9
  151. package/lib/components/tables/index.js +0 -5
  152. package/lib/components/text-reveal/TextRevealAnimation.js +7 -8
  153. package/lib/components/text-reveal/TextRevealAnimation.module.css +45 -0
  154. package/lib/components/text-reveal/index.js +0 -5
  155. package/lib/components/text-reveal/useTextRevealAnimationLines.js +0 -5
  156. package/lib/components/tokens/SpaceVariantToken.d.ts +1 -1
  157. package/lib/components/tokens/SpaceVariantToken.js +5 -10
  158. package/lib/components/tokens/index.js +0 -5
  159. package/lib/components/toolbars/AssignmentEditorToolbar.js +1 -8
  160. package/lib/components/toolbars/DocumentEditorToolbar.js +0 -5
  161. package/lib/components/toolbars/NotebookEditorToolbar.d.ts +1 -1
  162. package/lib/components/toolbars/NotebookEditorToolbar.js +0 -5
  163. package/lib/components/toolbars/index.js +0 -5
  164. package/lib/components/users/PeerIndicator.d.ts +1 -1
  165. package/lib/components/users/PeerIndicator.js +5 -10
  166. package/lib/components/users/index.js +0 -5
  167. package/lib/config/Configuration.d.ts +48 -0
  168. package/lib/config/Configuration.js +42 -5
  169. package/lib/config/index.js +0 -5
  170. package/lib/config/integrations/Loom.js +3 -8
  171. package/lib/config/integrations/index.js +0 -5
  172. package/lib/examples/CellExample.d.ts +6 -0
  173. package/lib/examples/CellExample.js +55 -0
  174. package/lib/examples/DatalayerNotebookExample.d.ts +16 -0
  175. package/lib/examples/DatalayerNotebookExample.js +75 -0
  176. package/lib/examples/NativeNavigationExample.d.ts +8 -0
  177. package/lib/examples/NativeNavigationExample.js +97 -0
  178. package/lib/examples/NotebookExample.d.ts +6 -0
  179. package/lib/examples/NotebookExample.js +24 -0
  180. package/lib/examples/NotebookMutationsKernel.d.ts +2 -0
  181. package/lib/examples/NotebookMutationsKernel.js +115 -0
  182. package/lib/examples/NotebookMutationsServiceManager.d.ts +2 -0
  183. package/lib/examples/NotebookMutationsServiceManager.js +107 -0
  184. package/lib/examples/ReactRouterExample.d.ts +6 -0
  185. package/lib/examples/ReactRouterExample.js +175 -0
  186. package/lib/examples/example-selector.d.ts +22 -0
  187. package/lib/examples/example-selector.js +45 -0
  188. package/lib/examples/index.d.ts +2 -0
  189. package/lib/examples/index.js +6 -0
  190. package/lib/examples/main.js +153 -0
  191. package/lib/examples/notebooks/IPyWidgetsExample.ipynb.json +101 -0
  192. package/lib/examples/notebooks/IPyWidgetsExampleWithState.ipynb.json +112 -0
  193. package/lib/examples/notebooks/Lite.ipynb.json +128 -0
  194. package/lib/examples/notebooks/Matplotlib.ipynb.json +137 -0
  195. package/lib/examples/notebooks/NotebookExample1.ipynb.json +126 -0
  196. package/lib/examples/notebooks/NotebookExample2.ipynb.json +48 -0
  197. package/lib/examples/notebooks/NotebookOutputs.ipynb.json +49 -0
  198. package/lib/examples/notebooks/NotebookToCExample.ipynb.json +102 -0
  199. package/lib/examples/notebooks/OutputIPyWidgetsExample.d.ts +145 -0
  200. package/lib/examples/notebooks/OutputIPyWidgetsExample.js +153 -0
  201. package/lib/examples/notebooks/PyGWalker.ipynb.json +55 -0
  202. package/lib/hooks/assets/OutputshotPlaceholders.d.ts +10 -10
  203. package/lib/hooks/assets/OutputshotPlaceholders.js +9 -14
  204. package/lib/hooks/assets/index.js +0 -5
  205. package/lib/hooks/index.d.ts +29 -28
  206. package/lib/hooks/index.js +29 -33
  207. package/lib/hooks/layouts/LayoutBackdrop.js +3 -11
  208. package/lib/hooks/layouts/LayoutScreenshot.css +58 -0
  209. package/lib/hooks/layouts/LayoutScreenshot.d.ts +1 -0
  210. package/lib/hooks/layouts/LayoutScreenshot.js +7 -11
  211. package/lib/hooks/layouts/index.js +0 -5
  212. package/lib/hooks/useAIAgents.d.ts +1 -1
  213. package/lib/hooks/useAIAgents.js +13 -18
  214. package/lib/hooks/useAuthorization.js +4 -10
  215. package/lib/hooks/useBackdrop.js +7 -12
  216. package/lib/hooks/useBackdropJupyterLab.d.ts +1 -1
  217. package/lib/hooks/useBackdropJupyterLab.js +4 -9
  218. package/lib/hooks/useCache.d.ts +8 -4
  219. package/lib/hooks/useCache.js +410 -361
  220. package/lib/hooks/useCellOutputshot.js +3 -11
  221. package/lib/hooks/useContainsFocus.js +2 -6
  222. package/lib/hooks/useDatalayer.d.ts +21 -0
  223. package/lib/hooks/{useRun.js → useDatalayer.js} +16 -18
  224. package/lib/hooks/useError.d.ts +1 -1
  225. package/lib/hooks/useError.js +2 -7
  226. package/lib/hooks/useExternalScript.js +4 -9
  227. package/lib/hooks/useFocusTrap.d.ts +1 -1
  228. package/lib/hooks/useFocusTrap.js +3 -7
  229. package/lib/hooks/useIAM.js +6 -12
  230. package/lib/hooks/useId.js +6 -11
  231. package/lib/hooks/useIsomorphicLayoutEffect.js +0 -5
  232. package/lib/hooks/useJupyterLabTheme.js +3 -6
  233. package/lib/hooks/useKeyboardEscape.js +0 -5
  234. package/lib/hooks/useLocation.d.ts +22 -0
  235. package/lib/hooks/useLocation.js +149 -0
  236. package/lib/hooks/useLocationHandles.d.ts +2 -2
  237. package/lib/hooks/useLocationHandles.js +6 -9
  238. package/lib/hooks/useNavigate.d.ts +5 -1
  239. package/lib/hooks/useNavigate.js +62 -12
  240. package/lib/hooks/useNotebookAIAgent.js +3 -6
  241. package/lib/hooks/useOnClickOutside.js +0 -5
  242. package/lib/hooks/useParams.d.ts +5 -0
  243. package/lib/hooks/useParams.js +152 -0
  244. package/lib/hooks/useRef.js +0 -5
  245. package/lib/hooks/useRuntimes.js +2 -7
  246. package/lib/hooks/useScreenshot.js +5 -10
  247. package/lib/hooks/useToast.js +21 -21
  248. package/lib/hooks/useUpload.js +9 -14
  249. package/lib/hooks/useUser.js +1 -1
  250. package/lib/hooks/useVisibilityObserver.js +0 -5
  251. package/lib/hooks/useWindowSize.js +0 -6
  252. package/lib/i18n/Labels.js +0 -5
  253. package/lib/i18n/index.js +0 -5
  254. package/lib/index.css +73 -0
  255. package/lib/index.d.ts +6 -3
  256. package/lib/index.js +7 -3
  257. package/lib/main.js +1 -2
  258. package/lib/mocks/components/FlashMock.js +4 -9
  259. package/lib/mocks/components/index.js +0 -5
  260. package/lib/mocks/hooks/index.d.ts +1 -1
  261. package/lib/mocks/hooks/index.js +1 -6
  262. package/lib/mocks/hooks/rests/index.js +0 -5
  263. package/lib/mocks/hooks/rests/rests.js +15 -23
  264. package/lib/mocks/hooks/useDatalayerMock.d.ts +6 -0
  265. package/lib/mocks/hooks/{useRunMock.js → useDatalayerMock.js} +9 -14
  266. package/lib/mocks/index.js +0 -5
  267. package/lib/mocks/jupyter/index.js +1 -6
  268. package/lib/mocks/models/CodeBlockMock.js +1 -6
  269. package/lib/mocks/models/CodelineMock.js +1 -6
  270. package/lib/mocks/models/CourseMock.d.ts +1 -1
  271. package/lib/mocks/models/CourseMock.js +10 -15
  272. package/lib/mocks/models/InviteMock.d.ts +1 -1
  273. package/lib/mocks/models/InviteMock.js +21 -11
  274. package/lib/mocks/models/JupyterLabUserMock.js +2 -2
  275. package/lib/mocks/models/OrganisationMock.d.ts +1 -1
  276. package/lib/mocks/models/OrganisationMock.js +11 -7
  277. package/lib/mocks/models/SchoolMock.d.ts +1 -1
  278. package/lib/mocks/models/SchoolMock.js +6 -6
  279. package/lib/mocks/models/SpaceMock.d.ts +1 -1
  280. package/lib/mocks/models/SpaceMock.js +9 -14
  281. package/lib/mocks/models/TeamMock.d.ts +1 -1
  282. package/lib/mocks/models/TeamMock.js +6 -6
  283. package/lib/mocks/models/UserMock.d.ts +1 -1
  284. package/lib/mocks/models/UserMock.js +4 -11
  285. package/lib/mocks/models/index.js +0 -5
  286. package/lib/mocks/views/ActionMenuMock.js +1 -6
  287. package/lib/mocks/views/ChartMock.js +3 -8
  288. package/lib/mocks/views/ChartMockOptions.js +24 -29
  289. package/lib/mocks/views/DashboardMock.js +74 -79
  290. package/lib/mocks/views/FormMock.js +1 -6
  291. package/lib/mocks/views/TableMock.js +1 -6
  292. package/lib/mocks/views/WipMock.js +0 -5
  293. package/lib/mocks/views/index.js +0 -5
  294. package/lib/models/Account.d.ts +2 -2
  295. package/lib/models/Assignment.d.ts +2 -2
  296. package/lib/models/Cell.d.ts +1 -1
  297. package/lib/models/CodeBlock.d.ts +1 -1
  298. package/lib/models/CodefeedBlocks.d.ts +2 -2
  299. package/lib/models/Contact.d.ts +1 -1
  300. package/lib/models/Contact.js +14 -19
  301. package/lib/models/ContactEvent.js +0 -5
  302. package/lib/models/ContactIAMProvider.js +2 -2
  303. package/lib/models/Course.d.ts +7 -7
  304. package/lib/models/Credits.js +0 -5
  305. package/lib/models/Dataset.d.ts +2 -2
  306. package/lib/models/Datasource.js +0 -5
  307. package/lib/models/Dean.d.ts +1 -1
  308. package/lib/models/Document.d.ts +1 -1
  309. package/lib/models/Environment.d.ts +2 -2
  310. package/lib/models/Errors.js +0 -5
  311. package/lib/models/Exercise.d.ts +1 -1
  312. package/lib/models/GrowthKPI.js +0 -5
  313. package/lib/models/IAMProviderLinked.js +1 -1
  314. package/lib/models/IAMProviderUsers.js +0 -5
  315. package/lib/models/IAMToken.js +0 -5
  316. package/lib/models/Inbound.js +0 -5
  317. package/lib/models/Instructor.d.ts +1 -1
  318. package/lib/models/Invite.d.ts +2 -2
  319. package/lib/models/Invite.js +1 -1
  320. package/lib/models/Item.d.ts +5 -5
  321. package/lib/models/LandingRoles.js +18 -23
  322. package/lib/models/Lesson.d.ts +1 -1
  323. package/lib/models/Member.d.ts +1 -1
  324. package/lib/models/Notebook.d.ts +1 -1
  325. package/lib/models/Organization.d.ts +4 -4
  326. package/lib/models/Organization.js +2 -7
  327. package/lib/models/OrganizationMember.d.ts +2 -2
  328. package/lib/models/Outbound.js +7 -12
  329. package/lib/models/Page.js +4 -2
  330. package/lib/models/PageTag.d.ts +2 -2
  331. package/lib/models/PageTag.js +56 -9
  332. package/lib/models/Profile.d.ts +1 -1
  333. package/lib/models/RolesOrganization.d.ts +1 -1
  334. package/lib/models/RolesOrganization.js +4 -17
  335. package/lib/models/RolesPlatform.d.ts +1 -1
  336. package/lib/models/RolesPlatform.js +12 -39
  337. package/lib/models/RolesTeam.d.ts +1 -1
  338. package/lib/models/RolesTeam.js +3 -15
  339. package/lib/models/Runtime.d.ts +59 -1
  340. package/lib/models/Runtime.js +11 -9
  341. package/lib/models/RuntimeSnapshot.js +1 -1
  342. package/lib/models/School.d.ts +4 -4
  343. package/lib/models/Secret.js +0 -5
  344. package/lib/models/Space.d.ts +5 -5
  345. package/lib/models/Space.js +3 -3
  346. package/lib/models/SpaceItem.d.ts +8 -8
  347. package/lib/models/SpaceMember.d.ts +2 -2
  348. package/lib/models/Student.d.ts +2 -2
  349. package/lib/models/StudentItem.d.ts +3 -3
  350. package/lib/models/Survey.js +0 -5
  351. package/lib/models/Team.d.ts +3 -3
  352. package/lib/models/Team.js +2 -7
  353. package/lib/models/TeamMember.d.ts +2 -2
  354. package/lib/models/URN.js +1 -6
  355. package/lib/models/User.d.ts +2 -2
  356. package/lib/models/User.js +7 -10
  357. package/lib/models/UserEvent.js +0 -5
  358. package/lib/models/UserOnboarding.d.ts +1 -1
  359. package/lib/models/UserOnboarding.js +7 -12
  360. package/lib/models/UserSettings.js +2 -7
  361. package/lib/models/index.d.ts +2 -2
  362. package/lib/models/index.js +2 -7
  363. package/lib/navigation/adapters/native.d.ts +11 -0
  364. package/lib/navigation/adapters/native.js +48 -0
  365. package/lib/navigation/adapters/nextjs.d.ts +9 -0
  366. package/lib/navigation/adapters/nextjs.js +35 -0
  367. package/lib/navigation/adapters/react-router.d.ts +4 -0
  368. package/lib/navigation/adapters/react-router.js +12 -0
  369. package/lib/navigation/components.d.ts +20 -0
  370. package/lib/navigation/components.js +36 -0
  371. package/lib/navigation/index.d.ts +4 -0
  372. package/lib/navigation/index.js +12 -0
  373. package/lib/routes/Routes.js +0 -5
  374. package/lib/routes/index.d.ts +1 -1
  375. package/lib/routes/index.js +1 -6
  376. package/lib/services/DatalayerServiceManager.d.ts +22 -0
  377. package/lib/services/DatalayerServiceManager.js +79 -0
  378. package/lib/services/index.d.ts +4 -0
  379. package/lib/services/index.js +7 -0
  380. package/lib/services/reconnectToRuntime.d.ts +32 -0
  381. package/lib/services/reconnectToRuntime.js +59 -0
  382. package/lib/state/State.d.ts +1 -1
  383. package/lib/state/State.js +1 -6
  384. package/lib/state/index.d.ts +1 -1
  385. package/lib/state/index.js +1 -6
  386. package/lib/state/storage/IAMStorage.js +14 -7
  387. package/lib/state/storage/index.d.ts +1 -1
  388. package/lib/state/storage/index.js +1 -6
  389. package/lib/state/substates/AIAgentState.js +4 -7
  390. package/lib/state/substates/CellState.js +6 -10
  391. package/lib/state/substates/CoreState.d.ts +1 -1
  392. package/lib/state/substates/CoreState.js +23 -20
  393. package/lib/state/substates/DatasourceState.js +1 -6
  394. package/lib/state/substates/DocumentState.js +0 -5
  395. package/lib/state/substates/GradeState.js +0 -5
  396. package/lib/state/substates/IAMState.d.ts +5 -1
  397. package/lib/state/substates/IAMState.js +88 -72
  398. package/lib/state/substates/JupyterLabState.js +1 -6
  399. package/lib/state/substates/LayoutState.d.ts +2 -2
  400. package/lib/state/substates/LayoutState.js +41 -28
  401. package/lib/state/substates/NbformatState.js +0 -5
  402. package/lib/state/substates/OrganizationState.js +1 -6
  403. package/lib/state/substates/RuntimesState.d.ts +2 -2
  404. package/lib/state/substates/RuntimesState.js +6 -10
  405. package/lib/state/substates/SpaceState.js +1 -6
  406. package/lib/state/substates/SurveysState.js +7 -12
  407. package/lib/state/substates/TeamState.js +1 -6
  408. package/lib/state/substates/index.js +0 -5
  409. package/lib/stories/assets/accessibility.png +0 -0
  410. package/lib/stories/assets/accessibility.svg +1 -0
  411. package/lib/stories/assets/addon-library.png +0 -0
  412. package/lib/stories/assets/assets.png +0 -0
  413. package/lib/stories/assets/context.png +0 -0
  414. package/lib/stories/assets/discord.svg +1 -0
  415. package/lib/stories/assets/docs.png +0 -0
  416. package/lib/stories/assets/figma-plugin.png +0 -0
  417. package/lib/stories/assets/github.svg +1 -0
  418. package/lib/stories/assets/share.png +0 -0
  419. package/lib/stories/assets/styling.png +0 -0
  420. package/lib/stories/assets/testing.png +0 -0
  421. package/lib/stories/assets/theming.png +0 -0
  422. package/lib/stories/assets/tutorials.svg +1 -0
  423. package/lib/stories/assets/youtube.svg +1 -0
  424. package/lib/stories/button.css +35 -0
  425. package/lib/stories/header.css +37 -0
  426. package/lib/stories/page.css +73 -0
  427. package/lib/test-setup.js +73 -1
  428. package/lib/theme/DatalayerTheme.js +1 -6
  429. package/lib/theme/DatalayerThemeProvider.js +17 -19
  430. package/lib/theme/Palette.js +1 -6
  431. package/lib/theme/index.js +0 -5
  432. package/lib/utils/Array.js +0 -5
  433. package/lib/utils/Avatar.js +2 -7
  434. package/lib/utils/Browser.js +6 -11
  435. package/lib/utils/Cells.d.ts +1 -1
  436. package/lib/utils/Cookie.js +1 -6
  437. package/lib/utils/Date.js +5 -10
  438. package/lib/utils/Download.js +5 -8
  439. package/lib/utils/DownloadFile.js +4 -7
  440. package/lib/utils/Env.js +2 -6
  441. package/lib/utils/File.js +0 -5
  442. package/lib/utils/Ids.js +0 -5
  443. package/lib/utils/Jupyter.js +0 -5
  444. package/lib/utils/Lazy.d.ts +1 -1
  445. package/lib/utils/Lazy.js +2 -8
  446. package/lib/utils/Name.js +10 -13
  447. package/lib/utils/Notebook.d.ts +1 -1
  448. package/lib/utils/Notebook.js +3 -3
  449. package/lib/utils/Number.js +13 -14
  450. package/lib/utils/Plots.d.ts +1 -1
  451. package/lib/utils/Plots.js +5 -5
  452. package/lib/utils/Random.js +0 -5
  453. package/lib/utils/Screenshot.js +1 -6
  454. package/lib/utils/Scroll.js +3 -7
  455. package/lib/utils/Sleep.js +1 -6
  456. package/lib/utils/Snapshot.js +2 -7
  457. package/lib/utils/String.js +2 -7
  458. package/lib/utils/Uri.js +2 -7
  459. package/lib/utils/Validator.js +0 -5
  460. package/lib/utils/WithSuspense.js +3 -11
  461. package/lib/utils/index.js +0 -5
  462. package/package.json +96 -30
  463. package/style/animation/Animation.module.css +174 -0
  464. package/style/base.css +64 -0
  465. package/style/index.css +6 -0
  466. package/lib/__tests__/App.test.js +0 -17
  467. package/lib/api/runtimes/models.d.ts +0 -59
  468. package/lib/api/runtimes/models.js +0 -11
  469. package/lib/hooks/useRun.d.ts +0 -21
  470. package/lib/mocks/hooks/useRunMock.d.ts +0 -6
  471. /package/lib/api/{runtimes → jupyter}/exec/Python.d.ts +0 -0
  472. /package/lib/api/{runtimes → jupyter}/exec/Snippets.d.ts +0 -0
  473. /package/lib/api/{runtimes → jupyter}/exec/index.d.ts +0 -0
  474. /package/lib/{__tests__/App.test.d.ts → examples/main.d.ts} +0 -0
package/README.md CHANGED
@@ -37,26 +37,44 @@ This package serves as the base foundation used by many other Datalayer packages
37
37
  - **📸 Snapshot Management**: Create and manage compute snapshots of your runtimes for reproducible environments
38
38
  - **🔒 Secrets Management**: Securely handle sensitive data and credentials in your workflows
39
39
  - **🐍 Python SDK**: Programmatic access to Datalayer platform with context managers and clean resource management
40
+ - **🌐 TypeScript/React SDK**: React components and services for building Jupyter-based applications
40
41
  - **💻 Command Line Interface**: CLI tools for managing runtimes, snapshots, and platform resources
41
42
  - **🔧 Base Classes**: Core application classes and configuration inherited by other Datalayer projects
43
+ - **📓 Jupyter Integration**: ServiceManager and collaboration providers for notebook experiences
44
+ - **🧭 Universal Navigation**: Smart navigation hooks that auto-detect and work with React Router, Next.js, or native browser
42
45
 
43
46
  ## Installation
44
47
 
48
+ ### Python SDK
49
+
45
50
  Install Datalayer Core using pip:
46
51
 
47
52
  ```bash
48
53
  pip install datalayer-core
49
54
  ```
50
55
 
51
- For development installation:
56
+ ### TypeScript/React SDK
57
+
58
+ Install as an npm package:
59
+
60
+ ```bash
61
+ npm install @datalayer/core
62
+ ```
63
+
64
+ ### Development Installation
52
65
 
53
66
  ```bash
54
67
  git clone https://github.com/datalayer/core.git
55
68
  cd core
69
+
70
+ # Python development
56
71
  pip install -e .[test]
72
+
73
+ # TypeScript development
74
+ npm install
57
75
  ```
58
76
 
59
- ## Quick Start
77
+ ## Quick Start with Python
60
78
 
61
79
  ### 1. Authentication
62
80
 
@@ -114,6 +132,60 @@ datalayer runtime exec my-script.py --runtime <runtime-id>
114
132
  datalayer snapshots create <pod-name> my-snapshot 'AI work!' False
115
133
  ```
116
134
 
135
+ ## Examples
136
+
137
+ ### Python Examples
138
+
139
+ For comprehensive Python usage examples, see the [`examples/`](https://github.com/datalayer/core/tree/main/examples) directory which includes:
140
+
141
+ - **FastAPI + scikit-learn**: Web application with ML models
142
+ - **Streamlit + scikit-learn**: Interactive data science apps
143
+ - **PyTorch GPU workloads**: High-performance computing examples
144
+ - **Decorator patterns**: Remote function execution with `@datalayer`
145
+ - **And more**: Complete examples with documentation and setup instructions
146
+
147
+ ### TypeScript/React Examples
148
+
149
+ Run the interactive examples locally:
150
+
151
+ ```bash
152
+ # Install dependencies
153
+ npm install
154
+
155
+ # Set your Datalayer API token in .env
156
+ echo "VITE_DATALAYER_API_TOKEN=your-token-here" > .env
157
+
158
+ # Start the examples server
159
+ npm run example
160
+ ```
161
+
162
+ Available at http://localhost:3000/:
163
+
164
+ - **DatalayerNotebookExample**: Full integration with Datalayer services and collaboration
165
+ - **NotebookExample**: Basic Jupyter notebook in React
166
+ - **CellExample**: Individual code cell execution
167
+ - **ReactRouterAdvancedExample**: Comprehensive navigation demo with React Router integration
168
+ - **ReactRouterNavigationExample**: Basic navigation with route parameters
169
+ - **NativeNavigationExample**: Browser-native navigation fallback
170
+
171
+ ### Next.js Application Example
172
+
173
+ A complete Next.js application demonstrating platform integration:
174
+
175
+ ```bash
176
+ cd examples/nextjs-notebook
177
+ npm install
178
+ npm run dev
179
+ ```
180
+
181
+ Features:
182
+
183
+ - Token authentication with Datalayer IAM
184
+ - Browse and create notebooks from your workspace
185
+ - Select compute environments for execution
186
+ - Interactive notebook viewer with real-time outputs
187
+ - Clean, responsive UI with GitHub Primer components
188
+
117
189
  ## Platform Integration
118
190
 
119
191
  Datalayer adds AI capabilities and scalable compute runtimes to your development workflows. The platform is designed to seamlessly integrate into your existing processes and supercharge your computations with the processing power you need.
@@ -133,11 +205,61 @@ Key platform features accessible through this SDK and CLI:
133
205
 
134
206
  ## Development
135
207
 
208
+ ### Building the Library
209
+
210
+ ```bash
211
+ # Build TypeScript library
212
+ npm run build:lib
213
+
214
+ # Build Python package
215
+ python -m build
216
+ ```
217
+
218
+ ### Setup
219
+
220
+ ```bash
221
+ # Install Python dependencies
222
+ pip install -e .[test]
223
+
224
+ # Install TypeScript dependencies
225
+ npm install
226
+ ```
227
+
228
+ ### Code Quality
229
+
230
+ This project maintains high code quality standards with automated linting, formatting, and type checking:
231
+
232
+ ```bash
233
+ # Run all checks (format, lint, type-check)
234
+ npm run check
235
+
236
+ # Auto-fix all issues
237
+ npm run check:fix
238
+
239
+ # Individual commands
240
+ npm run lint # ESLint with React/TypeScript rules
241
+ npm run lint:fix # Auto-fix linting issues
242
+ npm run format # Prettier formatting
243
+ npm run format:check # Check formatting without changes
244
+ npm run type-check # TypeScript compilation check
245
+ ```
246
+
247
+ Pre-commit hooks automatically run formatting and linting on staged files via Husky and lint-staged.
248
+
136
249
  ### Running Tests
137
250
 
138
251
  ```bash
252
+ # Python tests
139
253
  pip install -e .[test]
140
254
  pytest datalayer_core/tests/
255
+
256
+ # TypeScript tests
257
+ npm run test
258
+
259
+ # TypeScript type checking
260
+ npm run type-check
261
+ npm run test:watch # Watch mode
262
+ npm run test:coverage # With coverage
141
263
  ```
142
264
 
143
265
  ### Contributing
package/lib/App.css ADDED
@@ -0,0 +1,47 @@
1
+ /*
2
+ * Copyright (c) 2023-2025 Datalayer, Inc.
3
+ * Distributed under the terms of the Modified BSD License.
4
+ */
5
+
6
+ #root {
7
+ max-width: 1280px;
8
+ margin: 0 auto;
9
+ padding: 2rem;
10
+ /* text-align: center; */
11
+ }
12
+
13
+ .logo {
14
+ height: 6em;
15
+ padding: 1.5em;
16
+ will-change: filter;
17
+ transition: filter 300ms;
18
+ }
19
+ .logo:hover {
20
+ filter: drop-shadow(0 0 2em #646cffaa);
21
+ }
22
+ .logo.react:hover {
23
+ filter: drop-shadow(0 0 2em #61dafbaa);
24
+ }
25
+
26
+ @keyframes logo-spin {
27
+ from {
28
+ transform: rotate(0deg);
29
+ }
30
+ to {
31
+ transform: rotate(360deg);
32
+ }
33
+ }
34
+
35
+ @media (prefers-reduced-motion: no-preference) {
36
+ a:nth-of-type(2) .logo {
37
+ animation: logo-spin infinite 20s linear;
38
+ }
39
+ }
40
+
41
+ .card {
42
+ padding: 2em;
43
+ }
44
+
45
+ .read-the-docs {
46
+ color: #888;
47
+ }
package/lib/App.js CHANGED
@@ -3,12 +3,24 @@ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-run
3
3
  * Copyright (c) 2023-2025 Datalayer, Inc.
4
4
  * Distributed under the terms of the Modified BSD License.
5
5
  */
6
+ /*
7
+ * Copyright (c) 2021-2023 Datalayer, Inc.
8
+ *
9
+ * MIT License
10
+ */
6
11
  import { useState } from 'react';
7
12
  import reactLogo from './assets/react.svg';
8
- import viteLogo from '/vite.svg';
13
+ import { useJupyter, JupyterReactTheme } from '@datalayer/jupyter-react';
14
+ import { CellExample } from './examples/CellExample';
15
+ import { NotebookExample } from './examples/NotebookExample';
9
16
  import './App.css';
10
17
  export function App() {
18
+ const { serviceManager } = useJupyter({
19
+ jupyterServerUrl: 'https://oss.datalayer.run/api/jupyter-server',
20
+ jupyterServerToken: '60c1661cc408f978c309d04157af55c9588ff9557c9380e4fb50785750703da6',
21
+ startDefaultKernel: true,
22
+ });
11
23
  const [count, setCount] = useState(0);
12
- return (_jsxs(_Fragment, { children: [_jsxs("div", { children: [_jsx("a", { href: "https://vite.dev", target: "_blank", children: _jsx("img", { src: viteLogo, className: "logo", alt: "Vite logo" }) }), _jsx("a", { href: "https://react.dev", target: "_blank", children: _jsx("img", { src: reactLogo, className: "logo react", alt: "React logo" }) })] }), _jsx("h1", { children: "Vite + React" }), _jsxs("div", { className: "card", children: [_jsxs("button", { onClick: () => setCount((count) => count + 1), children: ["count is ", count] }), _jsxs("p", { children: ["Edit ", _jsx("code", { children: "src/App.tsx" }), " and save to test HMR"] })] }), _jsx("p", { className: "read-the-docs", children: "Click on the Vite and React logos to learn more" })] }));
24
+ return (_jsxs("div", { className: "App", children: [_jsx(_Fragment, { children: _jsxs(JupyterReactTheme, { children: [serviceManager && _jsx(CellExample, { serviceManager: serviceManager }), serviceManager && (_jsx(NotebookExample, { serviceManager: serviceManager }))] }) }), _jsxs("div", { children: [_jsx("a", { href: "https://reactjs.org", target: "_blank", rel: "noreferrer", children: _jsx("img", { src: reactLogo, className: "logo react", alt: "React logo" }) }), _jsx("a", { href: "https://vitejs.dev", target: "_blank", rel: "noreferrer", children: _jsx("img", { src: "/vite.svg", className: "logo", alt: "Vite logo" }) })] }), _jsx("h1", { children: "React + Vite" }), _jsx("h2", { children: "On CodeSandbox!" }), _jsxs("div", { className: "card", children: [_jsxs("button", { onClick: () => setCount(count => count + 1), children: ["count is ", count] }), _jsxs("p", { children: ["Edit ", _jsx("code", { children: "src/App.tsx" }), " and save to test HMR."] }), _jsx("p", { children: "Tip: you can use the inspector button next to address bar to click on components in the preview and open the code in the editor!" })] }), _jsx("p", { className: "read-the-docs", children: "Click on the Vite and React logos to learn more" })] }));
13
25
  }
14
26
  export default App;
@@ -5,22 +5,23 @@
5
5
  import { describe, it, expect } from 'vitest';
6
6
  import * as coreIndex from '../index';
7
7
  describe('@datalayer/core - index', () => {
8
- it('should export App', () => {
9
- expect(coreIndex.App).toBeDefined();
10
- expect(typeof coreIndex.App).toBe('function');
11
- });
12
8
  it('should export BackdropContext from hooks', () => {
13
9
  expect(coreIndex.BackdropContext).toBeDefined();
14
- expect(coreIndex.BackdropContext).toBe('lkj');
10
+ expect(coreIndex.BackdropContext).toHaveProperty('$$typeof');
11
+ expect(typeof coreIndex.BackdropContext).toBe('object');
15
12
  });
16
13
  it('should export utils functions', () => {
17
14
  expect(coreIndex.convertToLargestUnit).toBeDefined();
18
15
  expect(coreIndex.asArray).toBeDefined();
19
16
  });
17
+ it('should export DatalayerServiceManager from services', () => {
18
+ expect(coreIndex.createDatalayerServiceManager).toBeDefined();
19
+ expect(typeof coreIndex.createDatalayerServiceManager).toBe('function');
20
+ });
20
21
  it('should have all expected exports', () => {
21
22
  const exports = Object.keys(coreIndex);
22
- expect(exports).toContain('App');
23
23
  expect(exports).toContain('convertToLargestUnit');
24
24
  expect(exports).toContain('asArray');
25
+ expect(exports).toContain('createDatalayerServiceManager');
25
26
  });
26
27
  });
@@ -3,8 +3,8 @@
3
3
  */
4
4
  export declare class RunResponseError extends Error {
5
5
  /**
6
- * Create a RunResponseError from a response, handling the traceback and message
7
- * as appropriate.
6
+ * Create a RunResponseError from a response,
7
+ * handling the traceback and message as appropriate.
8
8
  *
9
9
  * @param response The response object.
10
10
  *
@@ -46,7 +46,7 @@ export declare class NetworkError extends TypeError {
46
46
  */
47
47
  constructor(original: TypeError);
48
48
  }
49
- export interface IRequestRunAPIOptions {
49
+ export interface IRequestDatalayerAPIOptions {
50
50
  /**
51
51
  * URL to request
52
52
  */
@@ -72,4 +72,4 @@ export interface IRequestRunAPIOptions {
72
72
  */
73
73
  signal?: AbortSignal;
74
74
  }
75
- export declare function requestRunAPI<T = any>({ url, method, body, token, signal, headers }: IRequestRunAPIOptions): Promise<T>;
75
+ export declare function requestDatalayerAPI<T = any>({ url, method, body, token, signal, headers, }: IRequestDatalayerAPIOptions): Promise<T>;
@@ -2,11 +2,6 @@
2
2
  * Copyright (c) 2023-2025 Datalayer, Inc.
3
3
  * Distributed under the terms of the Modified BSD License.
4
4
  */
5
- /*
6
- * Copyright (c) 2021-2024 Datalayer, Inc.
7
- *
8
- * Datalayer License
9
- */
10
5
  import { URLExt } from '@jupyterlab/coreutils';
11
6
  import { sleep } from '../utils';
12
7
  /**
@@ -14,8 +9,8 @@ import { sleep } from '../utils';
14
9
  */
15
10
  export class RunResponseError extends Error {
16
11
  /**
17
- * Create a RunResponseError from a response, handling the traceback and message
18
- * as appropriate.
12
+ * Create a RunResponseError from a response,
13
+ * handling the traceback and message as appropriate.
19
14
  *
20
15
  * @param response The response object.
21
16
  *
@@ -85,7 +80,7 @@ export class NetworkError extends TypeError {
85
80
  this.stack = original.stack;
86
81
  }
87
82
  }
88
- export async function requestRunAPI({ url, method, body, token, signal, headers = {} }) {
83
+ export async function requestDatalayerAPI({ url, method, body, token, signal, headers = {}, }) {
89
84
  const headers_ = new Headers(headers);
90
85
  if (!headers_.has('Accept')) {
91
86
  headers_.set('Accept', 'application/json');
@@ -103,11 +98,11 @@ export async function requestRunAPI({ url, method, body, token, signal, headers
103
98
  method: method ?? 'GET',
104
99
  headers: headers_,
105
100
  body: body ? JSON.stringify(body) : undefined,
106
- // credentials: token ? 'include' : 'omit',
101
+ // credentials: token ? 'include' : 'omit',
107
102
  credentials: 'include',
108
103
  mode: 'cors',
109
104
  cache: 'no-store',
110
- signal
105
+ signal,
111
106
  });
112
107
  }
113
108
  catch (error) {
@@ -140,7 +135,7 @@ async function wait_for_redirection(response, url, headers_) {
140
135
  headers: headers_,
141
136
  credentials: 'include',
142
137
  mode: 'cors',
143
- cache: 'no-store'
138
+ cache: 'no-store',
144
139
  });
145
140
  if (!response.ok) {
146
141
  throw await RunResponseError.create(response);
@@ -1,2 +1,3 @@
1
- export * from "./runtimes";
2
- export * from "./RunApi";
1
+ export * from './jupyter';
2
+ export * from './runtimes';
3
+ export * from './DatalayerApi';
package/lib/api/index.js CHANGED
@@ -2,10 +2,6 @@
2
2
  * Copyright (c) 2023-2025 Datalayer, Inc.
3
3
  * Distributed under the terms of the Modified BSD License.
4
4
  */
5
- /*
6
- * Copyright (c) 2021-2024 Datalayer, Inc.
7
- *
8
- * Datalayer License
9
- */
10
- export * from "./runtimes";
11
- export * from "./RunApi";
5
+ export * from './jupyter';
6
+ export * from './runtimes';
7
+ export * from './DatalayerApi';
@@ -2,11 +2,6 @@
2
2
  * Copyright (c) 2023-2025 Datalayer, Inc.
3
3
  * Distributed under the terms of the Modified BSD License.
4
4
  */
5
- /*
6
- * Copyright (c) 2021-2024 Datalayer, Inc.
7
- *
8
- * Datalayer License
9
- */
10
5
  export function listVariables() {
11
6
  return `
12
7
  def _list_variables():
@@ -2,11 +2,6 @@
2
2
  * Copyright (c) 2023-2025 Datalayer, Inc.
3
3
  * Distributed under the terms of the Modified BSD License.
4
4
  */
5
- /*
6
- * Copyright (c) 2021-2024 Datalayer, Inc.
7
- *
8
- * Datalayer License
9
- */
10
5
  import * as Python from './Python';
11
6
  /**
12
7
  * Facade to interact with kernels by requesting code execution.
@@ -2,10 +2,5 @@
2
2
  * Copyright (c) 2023-2025 Datalayer, Inc.
3
3
  * Distributed under the terms of the Modified BSD License.
4
4
  */
5
- /*
6
- * Copyright (c) 2021-2024 Datalayer, Inc.
7
- *
8
- * Datalayer License
9
- */
10
5
  export * from './Python';
11
6
  export * from './Snippets';
@@ -0,0 +1,2 @@
1
+ export * from './exec';
2
+ export * from './kernelsHandler';
@@ -0,0 +1,6 @@
1
+ /*
2
+ * Copyright (c) 2023-2025 Datalayer, Inc.
3
+ * Distributed under the terms of the Modified BSD License.
4
+ */
5
+ export * from './exec';
6
+ export * from './kernelsHandler';
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Call the Runtimes extension
2
+ * Call the jupyter_kernels extension
3
3
  *
4
4
  * @param endPoint API REST end point for the extension
5
5
  * @param init Initial values for the request
@@ -2,15 +2,10 @@
2
2
  * Copyright (c) 2023-2025 Datalayer, Inc.
3
3
  * Distributed under the terms of the Modified BSD License.
4
4
  */
5
- /*
6
- * Copyright (c) 2021-2024 Datalayer, Inc.
7
- *
8
- * Datalayer License
9
- */
10
5
  import { URLExt } from '@jupyterlab/coreutils';
11
6
  import { ServerConnection } from '@jupyterlab/services';
12
7
  /**
13
- * Call the Runtimes extension
8
+ * Call the jupyter_kernels extension
14
9
  *
15
10
  * @param endPoint API REST end point for the extension
16
11
  * @param init Initial values for the request
@@ -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>;