@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,145 @@
1
+ /*
2
+ * Copyright (c) 2023-2025 Datalayer, Inc.
3
+ * Distributed under the terms of the Modified BSD License.
4
+ */
5
+ import { URLExt } from '@jupyterlab/coreutils';
6
+ import { sleep } from '../utils';
7
+ /**
8
+ * A wrapped error for a fetch response.
9
+ */
10
+ export class RunResponseError extends Error {
11
+ /**
12
+ * Create a RunResponseError from a response,
13
+ * handling the traceback and message as appropriate.
14
+ *
15
+ * @param response The response object.
16
+ *
17
+ * @returns A promise that resolves with a `RunResponseError` object.
18
+ */
19
+ static async create(response) {
20
+ try {
21
+ const data = await response.json();
22
+ const { message, errors, warnings, traceback, exception } = data;
23
+ if (traceback) {
24
+ console.error(traceback);
25
+ }
26
+ const responseError = new RunResponseError(response, message ?? RunResponseError._defaultMessage(response), warnings, errors, exception, traceback ?? '');
27
+ return responseError;
28
+ }
29
+ catch (e) {
30
+ console.debug(e);
31
+ return new RunResponseError(response);
32
+ }
33
+ }
34
+ /**
35
+ * Create a new response error.
36
+ */
37
+ constructor(response, message = RunResponseError._defaultMessage(response), warnings = undefined, errors = undefined, exceptionMessage = undefined, traceback = '') {
38
+ super(message);
39
+ this.name = 'RunResponseError';
40
+ this.warnings = warnings ?? [];
41
+ this.errors = errors ?? [];
42
+ this.response = response;
43
+ this.exceptionMessage = exceptionMessage;
44
+ this.traceback = traceback;
45
+ }
46
+ /**
47
+ * Warnings listed in the response.
48
+ */
49
+ warnings;
50
+ /**
51
+ * Errors listed in the response.
52
+ */
53
+ errors;
54
+ /**
55
+ * The response associated with the error.
56
+ */
57
+ response;
58
+ /**
59
+ * The exception associated with the error.
60
+ */
61
+ exceptionMessage;
62
+ /**
63
+ * The traceback associated with the error.
64
+ */
65
+ traceback;
66
+ static _defaultMessage(response) {
67
+ return `Invalid response: ${response.status} ${response.statusText}`;
68
+ }
69
+ }
70
+ /**
71
+ * A wrapped error for a network error.
72
+ */
73
+ export class NetworkError extends TypeError {
74
+ /**
75
+ * Create a new network error.
76
+ */
77
+ constructor(original) {
78
+ super(original.message);
79
+ this.name = 'NetworkError';
80
+ this.stack = original.stack;
81
+ }
82
+ }
83
+ export async function requestDatalayerAPI({ url, method, body, token, signal, headers = {} }) {
84
+ const headers_ = new Headers(headers);
85
+ if (!headers_.has('Accept')) {
86
+ headers_.set('Accept', 'application/json');
87
+ }
88
+ if (!headers_.has('Content-Type')) {
89
+ headers_.set('Content-Type', 'application/json');
90
+ }
91
+ if (token) {
92
+ headers_.set('Authorization', `Bearer ${token}`);
93
+ }
94
+ // headers_.set('Origin', currentUri());
95
+ let response;
96
+ try {
97
+ response = await fetch(url, {
98
+ method: method ?? 'GET',
99
+ headers: headers_,
100
+ body: body ? JSON.stringify(body) : undefined,
101
+ // credentials: token ? 'include' : 'omit',
102
+ credentials: 'include',
103
+ mode: 'cors',
104
+ cache: 'no-store',
105
+ signal
106
+ });
107
+ }
108
+ catch (error) {
109
+ throw new NetworkError(error);
110
+ }
111
+ if (response.ok) {
112
+ response = await wait_for_redirection(response, url, headers_);
113
+ const content = await response.text();
114
+ return (content ? JSON.parse(content) : null);
115
+ }
116
+ else {
117
+ throw await RunResponseError.create(response);
118
+ }
119
+ }
120
+ async function wait_for_redirection(response, url, headers_) {
121
+ let redirect = response.headers.get('Location');
122
+ if (redirect) {
123
+ const parsedURL = URLExt.parse(url);
124
+ const baseUrl = parsedURL.protocol + '//' + parsedURL.hostname;
125
+ if (!redirect.startsWith(baseUrl)) {
126
+ redirect = URLExt.join(baseUrl, redirect);
127
+ }
128
+ }
129
+ let sleepTimeout = 1000;
130
+ while (response.status === 202 && redirect) {
131
+ await sleep(sleepTimeout);
132
+ sleepTimeout *= 2;
133
+ response = await fetch(redirect, {
134
+ method: 'GET',
135
+ headers: headers_,
136
+ credentials: 'include',
137
+ mode: 'cors',
138
+ cache: 'no-store'
139
+ });
140
+ if (!response.ok) {
141
+ throw await RunResponseError.create(response);
142
+ }
143
+ }
144
+ return response;
145
+ }
@@ -0,0 +1,3 @@
1
+ export * from "./jupyter";
2
+ export * from "./runtimes";
3
+ export * from "./DatalayerApi";
@@ -0,0 +1,7 @@
1
+ /*
2
+ * Copyright (c) 2023-2025 Datalayer, Inc.
3
+ * Distributed under the terms of the Modified BSD License.
4
+ */
5
+ export * from "./jupyter";
6
+ export * from "./runtimes";
7
+ export * from "./DatalayerApi";
@@ -0,0 +1,5 @@
1
+ export declare function listVariables(): string;
2
+ export declare function saveVariables(variables: string[]): string;
3
+ export declare function loadVariables(variables: string): string;
4
+ export declare function changeCurrentWorkingDirectory(path: string): string;
5
+ export declare function getOutputCandidates(code: string): string[];
@@ -0,0 +1,100 @@
1
+ /*
2
+ * Copyright (c) 2023-2025 Datalayer, Inc.
3
+ * Distributed under the terms of the Modified BSD License.
4
+ */
5
+ export function listVariables() {
6
+ return `
7
+ def _list_variables():
8
+ import json
9
+ from types import BuiltinFunctionType, BuiltinMethodType, FunctionType, MethodType, MethodWrapperType, ModuleType, TracebackType
10
+
11
+ _FORBIDDEN_TYPES = [type, BuiltinFunctionType, BuiltinMethodType, FunctionType, MethodType, MethodWrapperType, ModuleType, TracebackType]
12
+ try:
13
+ from IPython.core.autocall import ExitAutocall
14
+ _FORBIDDEN_TYPES.append(ExitAutocall)
15
+ except ImportError:
16
+ pass
17
+ _exclude = tuple(_FORBIDDEN_TYPES)
18
+
19
+ _all = frozenset(globals())
20
+ _vars = {}
21
+ for _n in _all:
22
+ _v = globals()[_n]
23
+
24
+ if not (
25
+ _n.startswith('_') or
26
+ isinstance(_v, _exclude) or
27
+ # Special IPython variables
28
+ (_n == 'In' and isinstance(_v, list)) or
29
+ (_n == 'Out' and isinstance(_v, dict))
30
+ ):
31
+ _vars[_n] = type(_v).__qualname__
32
+
33
+ return json.dumps(_vars)
34
+
35
+ _list_variables()`;
36
+ }
37
+ export function saveVariables(variables) {
38
+ return `
39
+ def _pickle_variables():
40
+ from base64 import encodebytes
41
+ import json
42
+ import pickle
43
+ _names = {${variables.map(v => `"${v}"`).join(',')}}
44
+ _data = {}
45
+ for _n in _names:
46
+ try:
47
+ _v = globals()[_n]
48
+ dump = pickle.dumps(_v)
49
+ _data[_n] = encodebytes(dump).decode("ascii")
50
+ except:
51
+ ...
52
+
53
+ return json.dumps(_data)
54
+
55
+ _pickle_variables()
56
+ `;
57
+ }
58
+ export function loadVariables(variables) {
59
+ return `
60
+ def _load_variables():
61
+ from base64 import decodebytes
62
+ import json
63
+ import pickle
64
+ _data = json.loads(${variables})
65
+ _loaded = []
66
+ for _n, _v in _data.items():
67
+ try:
68
+ dump = decodebytes(_v.encode("ascii"))
69
+ globals()[_n] = pickle.loads(dump)
70
+ _loaded.append(_n)
71
+ except:
72
+ ...
73
+ return json.dumps(_loaded)
74
+
75
+ _load_variables()
76
+ `;
77
+ }
78
+ export function changeCurrentWorkingDirectory(path) {
79
+ const formattedPath = path
80
+ .split('/')
81
+ .map(seg => `"${seg}"`)
82
+ .join(' / ');
83
+ return `
84
+ def _change_current_directory():
85
+ import os
86
+ from pathlib import Path
87
+ _local_content_mount_point = Path(Path.home() / ${formattedPath})
88
+ _local_content_mount_point.mkdir(parents=True, exist_ok=True)
89
+ os.chdir(_local_content_mount_point)
90
+
91
+ assert Path.cwd() == _local_content_mount_point
92
+
93
+ _change_current_directory()
94
+ `;
95
+ }
96
+ export function getOutputCandidates(code) {
97
+ return Array.from(code.matchAll(/^((?<output>[A-z][\w]*)\s*=[^=]|\((?<walrus>[A-z][\w]*)\s*:=[^=)]+\))/gm))
98
+ .map(match => match.groups?.output ?? match.groups?.walrus ?? '')
99
+ .filter(n => !!n);
100
+ }
@@ -0,0 +1,145 @@
1
+ /**
2
+ * Runtime snippets.
3
+ */
4
+ export interface IRuntimeSnippets {
5
+ /**
6
+ * Code snippet to change the current working directory.
7
+ *
8
+ * The code snippet has no returned value.
9
+ *
10
+ * The path is relative to the home directory and use
11
+ * the separator `/`.
12
+ *
13
+ * @param path New current directory
14
+ * @returns The code snippet
15
+ */
16
+ changeCurrentWorkingDirectory(path: string): string;
17
+ /**
18
+ * Code snippet to list the transferable kernel variables.
19
+ *
20
+ * The code snippet must return a serialized-JSON
21
+ * dictionary (<variable name>, <variable type>)
22
+ *
23
+ * @returns The code snippet
24
+ */
25
+ listVariables(): string;
26
+ /**
27
+ * Code snippet to load kernel variables.
28
+ *
29
+ * The code snippet must return a serialized-JSON list
30
+ * with successfully loaded variables.
31
+ *
32
+ * The format used to store the variable value is up to the kernel.
33
+ * It should JSON-serializable and will be passed from {@link saveVariables}.
34
+ *
35
+ * @param variables Serialized-JSON dictionary (<variable name>, <variable value blob>)
36
+ * @returns The code snippet
37
+ */
38
+ loadVariables(variables: string): string;
39
+ /**
40
+ * Code snippet to save kernel variables.
41
+ *
42
+ * The code snippet must return a serialized-JSON dictionary
43
+ * (<variable name>, <variable value blob>).
44
+ *
45
+ * The format used to store the variable value is up to the kernel.
46
+ * It should JSON-serializable and will be passed to {@link loadVariables}
47
+ * without modification.
48
+ *
49
+ * @param variables Variable names.
50
+ * @returns The code snippet
51
+ */
52
+ saveVariables(variables: string[]): string;
53
+ /**
54
+ * Extract output variables candidates by parsing the cell content.
55
+ *
56
+ * @param code Cell code source
57
+ * @returns The output variable candidates
58
+ */
59
+ getOutputCandidates(code: string): string[];
60
+ }
61
+ /**
62
+ * Facade to interact with kernels by requesting code execution.
63
+ */
64
+ export declare class RuntimeSnippetsFacade {
65
+ private static $language;
66
+ /**
67
+ * Register a facade for a given language
68
+ *
69
+ * @param language Kernel language
70
+ * @param API Kernel API
71
+ */
72
+ static register(language: string, API: IRuntimeSnippets): void;
73
+ /**
74
+ * Whether there is an API for the given kernel language
75
+ *
76
+ * @param language Kernel language
77
+ */
78
+ static supports(language: string): boolean;
79
+ private _language;
80
+ /**
81
+ * Create a kernel snippet generator for a given kernel
82
+ * language.
83
+ *
84
+ * It will raise if the language is not available.
85
+ *
86
+ * @param language Kernel language
87
+ */
88
+ constructor(language: string);
89
+ /**
90
+ * Kernel language
91
+ */
92
+ get language(): string;
93
+ /**
94
+ * Code snippet to change the current working directory.
95
+ *
96
+ * The code snippet has no returned value.
97
+ *
98
+ * @param path New current directory
99
+ * @returns The code snippet
100
+ */
101
+ changeCurrentWorkingDirectory(path: string): string;
102
+ /**
103
+ * Code snippet to list the transferable kernel variables.
104
+ *
105
+ * The code snippet must return a serialized-JSON
106
+ * dictionary (<variable name>, <variable type>)
107
+ *
108
+ * @returns The code snippet
109
+ */
110
+ listVariables(): string;
111
+ /**
112
+ * Code snippet to load kernel variables.
113
+ *
114
+ * The code snippet must return a serialized-JSON list
115
+ * with successfully loaded variables.
116
+ *
117
+ * The format used to store the variable value is up to the kernel.
118
+ * It should JSON-serializable and will be passed from {@link saveVariables}.
119
+ *
120
+ * @param variables Serialized-JSON dictionary (<variable name>, <variable value blob>)
121
+ * @returns The code snippet
122
+ */
123
+ loadVariables(variables: string): string;
124
+ /**
125
+ * Code snippet to save kernel variables.
126
+ *
127
+ * The code snippet must return a serialized-JSON dictionary
128
+ * (<variable name>, <variable value blob>).
129
+ *
130
+ * The format used to store the variable value is up to the kernel.
131
+ * It should JSON-serializable and will be passed to {@link loadVariables}
132
+ * without modification.
133
+ *
134
+ * @param variables Variable names.
135
+ * @returns The code snippet
136
+ */
137
+ saveVariables(variables: string[]): string;
138
+ /**
139
+ * Extract output variables candidates by parsing the cell content.
140
+ *
141
+ * @param code Cell code source
142
+ * @returns The output variable candidates
143
+ */
144
+ getOutputCandidates(code: string): string[];
145
+ }
@@ -0,0 +1,120 @@
1
+ /*
2
+ * Copyright (c) 2023-2025 Datalayer, Inc.
3
+ * Distributed under the terms of the Modified BSD License.
4
+ */
5
+ import * as Python from './Python';
6
+ /**
7
+ * Facade to interact with kernels by requesting code execution.
8
+ */
9
+ export class RuntimeSnippetsFacade {
10
+ static $language = new Map();
11
+ /**
12
+ * Register a facade for a given language
13
+ *
14
+ * @param language Kernel language
15
+ * @param API Kernel API
16
+ */
17
+ static register(language, API) {
18
+ this.$language.set(language, API);
19
+ }
20
+ /**
21
+ * Whether there is an API for the given kernel language
22
+ *
23
+ * @param language Kernel language
24
+ */
25
+ static supports(language) {
26
+ return this.$language.has(language);
27
+ }
28
+ _language;
29
+ /**
30
+ * Create a kernel snippet generator for a given kernel
31
+ * language.
32
+ *
33
+ * It will raise if the language is not available.
34
+ *
35
+ * @param language Kernel language
36
+ */
37
+ constructor(language) {
38
+ if (!RuntimeSnippetsFacade.$language.has(language)) {
39
+ throw new Error(`${language} is not supported.`);
40
+ }
41
+ this._language = language;
42
+ }
43
+ /**
44
+ * Kernel language
45
+ */
46
+ get language() {
47
+ return this._language;
48
+ }
49
+ /**
50
+ * Code snippet to change the current working directory.
51
+ *
52
+ * The code snippet has no returned value.
53
+ *
54
+ * @param path New current directory
55
+ * @returns The code snippet
56
+ */
57
+ changeCurrentWorkingDirectory(path) {
58
+ return RuntimeSnippetsFacade.$language
59
+ .get(this.language)
60
+ .changeCurrentWorkingDirectory(path);
61
+ }
62
+ /**
63
+ * Code snippet to list the transferable kernel variables.
64
+ *
65
+ * The code snippet must return a serialized-JSON
66
+ * dictionary (<variable name>, <variable type>)
67
+ *
68
+ * @returns The code snippet
69
+ */
70
+ listVariables() {
71
+ return RuntimeSnippetsFacade.$language.get(this.language).listVariables();
72
+ }
73
+ /**
74
+ * Code snippet to load kernel variables.
75
+ *
76
+ * The code snippet must return a serialized-JSON list
77
+ * with successfully loaded variables.
78
+ *
79
+ * The format used to store the variable value is up to the kernel.
80
+ * It should JSON-serializable and will be passed from {@link saveVariables}.
81
+ *
82
+ * @param variables Serialized-JSON dictionary (<variable name>, <variable value blob>)
83
+ * @returns The code snippet
84
+ */
85
+ loadVariables(variables) {
86
+ return RuntimeSnippetsFacade.$language
87
+ .get(this.language)
88
+ .loadVariables(variables);
89
+ }
90
+ /**
91
+ * Code snippet to save kernel variables.
92
+ *
93
+ * The code snippet must return a serialized-JSON dictionary
94
+ * (<variable name>, <variable value blob>).
95
+ *
96
+ * The format used to store the variable value is up to the kernel.
97
+ * It should JSON-serializable and will be passed to {@link loadVariables}
98
+ * without modification.
99
+ *
100
+ * @param variables Variable names.
101
+ * @returns The code snippet
102
+ */
103
+ saveVariables(variables) {
104
+ return RuntimeSnippetsFacade.$language
105
+ .get(this.language)
106
+ .saveVariables(variables);
107
+ }
108
+ /**
109
+ * Extract output variables candidates by parsing the cell content.
110
+ *
111
+ * @param code Cell code source
112
+ * @returns The output variable candidates
113
+ */
114
+ getOutputCandidates(code) {
115
+ return RuntimeSnippetsFacade.$language
116
+ .get(this.language)
117
+ .getOutputCandidates(code);
118
+ }
119
+ }
120
+ RuntimeSnippetsFacade.register('python', Python);
@@ -0,0 +1,2 @@
1
+ export * from './Python';
2
+ export * from './Snippets';
@@ -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 './Python';
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';
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Call the jupyter_kernels extension
3
+ *
4
+ * @param endPoint API REST end point for the extension
5
+ * @param init Initial values for the request
6
+ * @returns The response body interpreted as JSON
7
+ */
8
+ export declare function requestJupyterKernelsExtension<T>(endPoint?: string, init?: RequestInit): Promise<T>;
@@ -0,0 +1,39 @@
1
+ /*
2
+ * Copyright (c) 2023-2025 Datalayer, Inc.
3
+ * Distributed under the terms of the Modified BSD License.
4
+ */
5
+ import { URLExt } from '@jupyterlab/coreutils';
6
+ import { ServerConnection } from '@jupyterlab/services';
7
+ /**
8
+ * Call the jupyter_kernels extension
9
+ *
10
+ * @param endPoint API REST end point for the extension
11
+ * @param init Initial values for the request
12
+ * @returns The response body interpreted as JSON
13
+ */
14
+ export async function requestJupyterKernelsExtension(endPoint = '', init = {}) {
15
+ // Make request to Jupyter API
16
+ const settings = ServerConnection.makeSettings();
17
+ const requestUrl = URLExt.join(settings.baseUrl, 'jupyter_kernels', // API Namespace
18
+ endPoint);
19
+ let response;
20
+ try {
21
+ response = await ServerConnection.makeRequest(requestUrl, init, settings);
22
+ }
23
+ catch (error) {
24
+ throw new ServerConnection.NetworkError(error);
25
+ }
26
+ let data = await response.text();
27
+ if (data.length > 0) {
28
+ try {
29
+ data = JSON.parse(data);
30
+ }
31
+ catch (error) {
32
+ console.log('Not a JSON response body.', response);
33
+ }
34
+ }
35
+ if (!response.ok) {
36
+ throw new ServerConnection.ResponseError(response, data.message || data);
37
+ }
38
+ return data;
39
+ }