@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.
- package/README.md +187 -7
- package/lib/App.css +47 -0
- package/lib/App.d.ts +3 -0
- package/lib/App.js +21 -5
- package/lib/__tests__/App.test.d.ts +1 -0
- package/lib/__tests__/App.test.js +17 -0
- package/lib/__tests__/hooks.test.d.ts +1 -0
- package/lib/__tests__/hooks.test.js +19 -0
- package/lib/__tests__/index.test.d.ts +1 -0
- package/lib/__tests__/index.test.js +27 -0
- package/lib/__tests__/integration.test.d.ts +1 -0
- package/lib/__tests__/integration.test.js +57 -0
- package/lib/__tests__/utils.test.d.ts +1 -0
- package/lib/__tests__/utils.test.js +59 -0
- package/lib/api/DatalayerApi.d.ts +75 -0
- package/lib/api/DatalayerApi.js +145 -0
- package/lib/api/index.d.ts +3 -0
- package/lib/api/index.js +7 -0
- package/lib/api/jupyter/exec/Python.d.ts +5 -0
- package/lib/api/jupyter/exec/Python.js +100 -0
- package/lib/api/jupyter/exec/Snippets.d.ts +145 -0
- package/lib/api/jupyter/exec/Snippets.js +120 -0
- package/lib/api/jupyter/exec/index.d.ts +2 -0
- package/lib/api/jupyter/exec/index.js +6 -0
- package/lib/api/jupyter/index.d.ts +2 -0
- package/lib/api/jupyter/index.js +6 -0
- package/lib/api/jupyter/kernelsHandler.d.ts +8 -0
- package/lib/api/jupyter/kernelsHandler.js +39 -0
- package/lib/api/runtimes/actions.d.ts +102 -0
- package/lib/api/runtimes/actions.js +264 -0
- package/lib/api/runtimes/apis.d.ts +273 -0
- package/lib/api/runtimes/apis.js +5 -0
- package/lib/api/runtimes/index.d.ts +5 -0
- package/lib/api/runtimes/index.js +9 -0
- package/lib/api/runtimes/settings.d.ts +15 -0
- package/lib/api/runtimes/settings.js +31 -0
- package/lib/api/runtimes/snapshots.d.ts +25 -0
- package/lib/api/runtimes/snapshots.js +150 -0
- package/lib/api/runtimes/utils.d.ts +7 -0
- package/lib/api/runtimes/utils.js +17 -0
- package/lib/assets/react.svg +1 -0
- package/lib/components/avatars/BoringAvatar.d.ts +19 -0
- package/lib/components/avatars/BoringAvatar.js +44 -0
- package/lib/components/avatars/BoringAvatar.stories.d.ts +27 -0
- package/lib/components/avatars/BoringAvatar.stories.js +23 -0
- package/lib/components/avatars/UserProfileAvatar.d.ts +13 -0
- package/lib/components/avatars/UserProfileAvatar.js +32 -0
- package/lib/components/avatars/index.d.ts +2 -0
- package/lib/components/avatars/index.js +6 -0
- package/lib/components/banners/NoAutomationBanner.d.ts +2 -0
- package/lib/components/banners/NoAutomationBanner.js +13 -0
- package/lib/components/banners/index.d.ts +1 -0
- package/lib/components/banners/index.js +5 -0
- package/lib/components/buttons/DownloadCSVButton.d.ts +13 -0
- package/lib/components/buttons/DownloadCSVButton.js +16 -0
- package/lib/components/buttons/DownloadJsonButton.d.ts +16 -0
- package/lib/components/buttons/DownloadJsonButton.js +18 -0
- package/lib/components/buttons/LongActionButton.d.ts +28 -0
- package/lib/components/buttons/LongActionButton.js +24 -0
- package/lib/components/buttons/UploadButton.d.ts +37 -0
- package/lib/components/buttons/UploadButton.js +43 -0
- package/lib/components/buttons/VariantType.d.ts +1 -0
- package/lib/components/buttons/VariantType.js +5 -0
- package/lib/components/buttons/index.d.ts +5 -0
- package/lib/components/buttons/index.js +9 -0
- package/lib/components/checkout/StripeCheckout.d.ts +32 -0
- package/lib/components/checkout/StripeCheckout.js +95 -0
- package/lib/components/checkout/index.d.ts +1 -0
- package/lib/components/checkout/index.js +5 -0
- package/lib/components/confetti/ConfettiSuccess.d.ts +2 -0
- package/lib/components/confetti/ConfettiSuccess.js +12 -0
- package/lib/components/confetti/index.d.ts +1 -0
- package/lib/components/confetti/index.js +5 -0
- package/lib/components/context/OrganizationSelect.d.ts +2 -0
- package/lib/components/context/OrganizationSelect.js +35 -0
- package/lib/components/context/SpaceSelect.d.ts +2 -0
- package/lib/components/context/SpaceSelect.js +43 -0
- package/lib/components/context/index.d.ts +2 -0
- package/lib/components/context/index.js +6 -0
- package/lib/components/display/AvatarSkeleton.d.ts +5 -0
- package/lib/components/display/AvatarSkeleton.js +11 -0
- package/lib/components/display/CenteredSpinner.d.ts +14 -0
- package/lib/components/display/CenteredSpinner.js +20 -0
- package/lib/components/display/CodePreview.d.ts +4 -0
- package/lib/components/display/CodePreview.js +15 -0
- package/lib/components/display/DatalayerBox.d.ts +8 -0
- package/lib/components/display/DatalayerBox.js +28 -0
- package/lib/components/display/HorizontalCenter.d.ts +9 -0
- package/lib/components/display/HorizontalCenter.js +14 -0
- package/lib/components/display/JupyterDialog.d.ts +69 -0
- package/lib/components/display/JupyterDialog.js +115 -0
- package/lib/components/display/Markdown.d.ts +23 -0
- package/lib/components/display/Markdown.js +20 -0
- package/lib/components/display/NavLink.d.ts +9 -0
- package/lib/components/display/NavLink.js +17 -0
- package/lib/components/display/NotebookSkeleton.d.ts +2 -0
- package/lib/components/display/NotebookSkeleton.js +11 -0
- package/lib/components/display/Placeholder.d.ts +2 -0
- package/lib/components/display/Placeholder.js +9 -0
- package/lib/components/display/ToTopBranded.d.ts +2 -0
- package/lib/components/display/ToTopBranded.js +11 -0
- package/lib/components/display/VisuallyHidden.d.ts +5 -0
- package/lib/components/display/VisuallyHidden.js +24 -0
- package/lib/components/display/index.d.ts +12 -0
- package/lib/components/display/index.js +16 -0
- package/lib/components/echarts/EChartsReact.d.ts +11 -0
- package/lib/components/echarts/EChartsReact.js +53 -0
- package/lib/components/echarts/index.d.ts +1 -0
- package/lib/components/echarts/index.js +5 -0
- package/lib/components/flashes/FlashClosable.d.ts +22 -0
- package/lib/components/flashes/FlashClosable.js +64 -0
- package/lib/components/flashes/FlashDisclaimer.d.ts +2 -0
- package/lib/components/flashes/FlashDisclaimer.js +18 -0
- package/lib/components/flashes/FlashGuest.d.ts +2 -0
- package/lib/components/flashes/FlashGuest.js +30 -0
- package/lib/components/flashes/FlashSurveys.d.ts +6 -0
- package/lib/components/flashes/FlashSurveys.js +36 -0
- package/lib/components/flashes/FlashUnauthorized.d.ts +2 -0
- package/lib/components/flashes/FlashUnauthorized.js +18 -0
- package/lib/components/flashes/index.d.ts +6 -0
- package/lib/components/flashes/index.js +10 -0
- package/lib/components/flashes/surveys/Survey2025_1.d.ts +3 -0
- package/lib/components/flashes/surveys/Survey2025_1.js +129 -0
- package/lib/components/flashes/surveys/SurveyProps.d.ts +6 -0
- package/lib/components/flashes/surveys/SurveyProps.js +5 -0
- package/lib/components/flashes/surveys/index.d.ts +2 -0
- package/lib/components/flashes/surveys/index.js +6 -0
- package/lib/components/iam/ExternalTokenSilentLogin.d.ts +5 -0
- package/lib/components/iam/ExternalTokenSilentLogin.js +33 -0
- package/lib/components/iam/index.d.ts +1 -0
- package/lib/components/iam/index.js +5 -0
- package/lib/components/icons/ArtifactIcon.d.ts +10 -0
- package/lib/components/icons/ArtifactIcon.js +58 -0
- package/lib/components/icons/index.d.ts +1 -0
- package/lib/components/icons/index.js +5 -0
- package/lib/components/index.d.ts +1 -0
- package/lib/components/index.js +5 -0
- package/lib/components/labels/VisibilityLabel.d.ts +4 -0
- package/lib/components/labels/VisibilityLabel.js +17 -0
- package/lib/components/labels/index.d.ts +1 -0
- package/lib/components/labels/index.js +5 -0
- package/lib/components/landings/StepBlock.d.ts +11 -0
- package/lib/components/landings/StepBlock.js +12 -0
- package/lib/components/landings/index.d.ts +1 -0
- package/lib/components/landings/index.js +5 -0
- package/lib/components/navbar/NavigationVisbilityObserver.d.ts +5 -0
- package/lib/components/navbar/NavigationVisbilityObserver.js +58 -0
- package/lib/components/navbar/SubdomainNavBar.d.ts +81 -0
- package/lib/components/navbar/SubdomainNavBar.js +235 -0
- package/lib/components/navbar/SubdomainNavBar.module.css +718 -0
- package/lib/components/navbar/index.d.ts +2 -0
- package/lib/components/navbar/index.js +6 -0
- package/lib/components/nbgrader/NbGradesDetails.d.ts +5 -0
- package/lib/components/nbgrader/NbGradesDetails.js +17 -0
- package/lib/components/nbgrader/index.d.ts +1 -0
- package/lib/components/nbgrader/index.js +5 -0
- package/lib/components/notebooks/JupyterNotebook.d.ts +12 -0
- package/lib/components/notebooks/JupyterNotebook.js +36 -0
- package/lib/components/notebooks/JupyterNotebookToolbar.d.ts +2 -0
- package/lib/components/notebooks/JupyterNotebookToolbar.js +39 -0
- package/lib/components/notebooks/index.d.ts +2 -0
- package/lib/components/notebooks/index.js +6 -0
- package/lib/components/primer/Helper.d.ts +32 -0
- package/lib/components/primer/Helper.js +19 -0
- package/lib/components/primer/Portals.d.ts +9 -0
- package/lib/components/primer/Portals.js +26 -0
- package/lib/components/primer/Styles.d.ts +2 -0
- package/lib/components/primer/Styles.js +11 -0
- package/lib/components/primer/index.d.ts +2 -0
- package/lib/components/primer/index.js +6 -0
- package/lib/components/progress/ConsumptionBar.d.ts +40 -0
- package/lib/components/progress/ConsumptionBar.js +49 -0
- package/lib/components/progress/CreditsIndicator.d.ts +27 -0
- package/lib/components/progress/CreditsIndicator.js +24 -0
- package/lib/components/progress/ProgressBar.d.ts +2 -0
- package/lib/components/progress/ProgressBar.js +21 -0
- package/lib/components/progress/ProgressRing.d.ts +36 -0
- package/lib/components/progress/ProgressRing.js +31 -0
- package/lib/components/progress/Timer.d.ts +9 -0
- package/lib/components/progress/Timer.js +28 -0
- package/lib/components/progress/index.d.ts +5 -0
- package/lib/components/progress/index.js +9 -0
- package/lib/components/runtimes/RuntimeCellVariables.d.ts +39 -0
- package/lib/components/runtimes/RuntimeCellVariables.js +172 -0
- package/lib/components/runtimes/RuntimeCellVariablesDialog.d.ts +37 -0
- package/lib/components/runtimes/RuntimeCellVariablesDialog.js +101 -0
- package/lib/components/runtimes/RuntimeLauncherDialog.d.ts +53 -0
- package/lib/components/runtimes/RuntimeLauncherDialog.js +250 -0
- package/lib/components/runtimes/RuntimePickerBase.d.ts +69 -0
- package/lib/components/runtimes/RuntimePickerBase.js +109 -0
- package/lib/components/runtimes/RuntimePickerCell.d.ts +34 -0
- package/lib/components/runtimes/RuntimePickerCell.js +106 -0
- package/lib/components/runtimes/RuntimePickerNotebook.d.ts +42 -0
- package/lib/components/runtimes/RuntimePickerNotebook.js +168 -0
- package/lib/components/runtimes/RuntimeReservationControl.d.ts +47 -0
- package/lib/components/runtimes/RuntimeReservationControl.js +38 -0
- package/lib/components/runtimes/RuntimeSimplePicker.d.ts +34 -0
- package/lib/components/runtimes/RuntimeSimplePicker.js +156 -0
- package/lib/components/runtimes/RuntimeTransfer.d.ts +16 -0
- package/lib/components/runtimes/RuntimeTransfer.js +5 -0
- package/lib/components/runtimes/RuntimeUtils.d.ts +17 -0
- package/lib/components/runtimes/RuntimeUtils.js +168 -0
- package/lib/components/runtimes/RuntimeVariables.d.ts +38 -0
- package/lib/components/runtimes/RuntimeVariables.js +75 -0
- package/lib/components/runtimes/index.d.ts +11 -0
- package/lib/components/runtimes/index.js +15 -0
- package/lib/components/screenshot/ScreenCapture.d.ts +38 -0
- package/lib/components/screenshot/ScreenCapture.js +174 -0
- package/lib/components/screenshot/ScreenCaptureButton.d.ts +3 -0
- package/lib/components/screenshot/ScreenCaptureButton.js +21 -0
- package/lib/components/screenshot/index.d.ts +2 -0
- package/lib/components/screenshot/index.js +6 -0
- package/lib/components/snapshots/RuntimeSnapshotMenu.d.ts +36 -0
- package/lib/components/snapshots/RuntimeSnapshotMenu.js +164 -0
- package/lib/components/snapshots/index.d.ts +1 -0
- package/lib/components/snapshots/index.js +5 -0
- package/lib/components/snippets/SnippetDialog.d.ts +42 -0
- package/lib/components/snippets/SnippetDialog.js +42 -0
- package/lib/components/snippets/index.d.ts +1 -0
- package/lib/components/snippets/index.js +5 -0
- package/lib/components/storage/ContentsBrowser.d.ts +32 -0
- package/lib/components/storage/ContentsBrowser.js +255 -0
- package/lib/components/storage/ContentsItems.d.ts +58 -0
- package/lib/components/storage/ContentsItems.js +78 -0
- package/lib/components/storage/index.d.ts +2 -0
- package/lib/components/storage/index.js +6 -0
- package/lib/components/students/StudentItemStatus.d.ts +7 -0
- package/lib/components/students/StudentItemStatus.js +47 -0
- package/lib/components/students/index.d.ts +1 -0
- package/lib/components/students/index.js +5 -0
- package/lib/components/subnav/SubNav.d.ts +84 -0
- package/lib/components/subnav/SubNav.js +265 -0
- package/lib/components/subnav/SubNav.module.css +683 -0
- package/lib/components/subnav/index.d.ts +1 -0
- package/lib/components/subnav/index.js +5 -0
- package/lib/components/tables/DataTable.d.ts +5 -0
- package/lib/components/tables/DataTable.js +19 -0
- package/lib/components/tables/index.d.ts +1 -0
- package/lib/components/tables/index.js +5 -0
- package/lib/components/text-reveal/TextRevealAnimation.d.ts +6 -0
- package/lib/components/text-reveal/TextRevealAnimation.js +49 -0
- package/lib/components/text-reveal/TextRevealAnimation.module.css +43 -0
- package/lib/components/text-reveal/index.d.ts +1 -0
- package/lib/components/text-reveal/index.js +5 -0
- package/lib/components/text-reveal/useTextRevealAnimationLines.d.ts +4 -0
- package/lib/components/text-reveal/useTextRevealAnimationLines.js +47 -0
- package/lib/components/tokens/SpaceVariantToken.d.ts +5 -0
- package/lib/components/tokens/SpaceVariantToken.js +20 -0
- package/lib/components/tokens/index.d.ts +1 -0
- package/lib/components/tokens/index.js +5 -0
- package/lib/components/toolbars/AssignmentEditorToolbar.d.ts +4 -0
- package/lib/components/toolbars/AssignmentEditorToolbar.js +18 -0
- package/lib/components/toolbars/DocumentEditorToolbar.d.ts +2 -0
- package/lib/components/toolbars/DocumentEditorToolbar.js +12 -0
- package/lib/components/toolbars/NotebookEditorToolbar.d.ts +29 -0
- package/lib/components/toolbars/NotebookEditorToolbar.js +30 -0
- package/lib/components/toolbars/index.d.ts +3 -0
- package/lib/components/toolbars/index.js +7 -0
- package/lib/components/users/PeerIndicator.d.ts +18 -0
- package/lib/components/users/PeerIndicator.js +100 -0
- package/lib/components/users/index.d.ts +1 -0
- package/lib/components/users/index.js +5 -0
- package/lib/config/Configuration.d.ts +111 -0
- package/lib/config/Configuration.js +25 -0
- package/lib/config/index.d.ts +2 -0
- package/lib/config/index.js +6 -0
- package/lib/config/integrations/Loom.d.ts +1 -0
- package/lib/config/integrations/Loom.js +16 -0
- package/lib/config/integrations/index.d.ts +1 -0
- package/lib/config/integrations/index.js +5 -0
- package/lib/examples/CellExample.d.ts +6 -0
- package/lib/examples/CellExample.js +24 -0
- package/lib/examples/NotebookExample.d.ts +8 -0
- package/lib/examples/NotebookExample.js +22 -0
- package/lib/examples/NotebookExample1.ipynb.json +136 -0
- package/lib/hooks/assets/OutputshotPlaceholders.d.ts +19 -0
- package/lib/hooks/assets/OutputshotPlaceholders.js +23 -0
- package/lib/hooks/assets/index.d.ts +1 -0
- package/lib/hooks/assets/index.js +5 -0
- package/lib/hooks/index.d.ts +28 -0
- package/lib/hooks/index.js +33 -0
- package/lib/hooks/layouts/LayoutBackdrop.d.ts +2 -0
- package/lib/hooks/layouts/LayoutBackdrop.js +30 -0
- package/lib/hooks/layouts/LayoutScreenshot.css +58 -0
- package/lib/hooks/layouts/LayoutScreenshot.d.ts +3 -0
- package/lib/hooks/layouts/LayoutScreenshot.js +44 -0
- package/lib/hooks/layouts/index.d.ts +2 -0
- package/lib/hooks/layouts/index.js +6 -0
- package/lib/hooks/useAIAgents.d.ts +13 -0
- package/lib/hooks/useAIAgents.js +72 -0
- package/lib/hooks/useAuthorization.d.ts +19 -0
- package/lib/hooks/useAuthorization.js +124 -0
- package/lib/hooks/useBackdrop.d.ts +28 -0
- package/lib/hooks/useBackdrop.js +100 -0
- package/lib/hooks/useBackdropJupyterLab.d.ts +15 -0
- package/lib/hooks/useBackdropJupyterLab.js +51 -0
- package/lib/hooks/useCache.d.ts +306 -0
- package/lib/hooks/useCache.js +3098 -0
- package/lib/hooks/useCellOutputshot.d.ts +4 -0
- package/lib/hooks/useCellOutputshot.js +28 -0
- package/lib/hooks/useContainsFocus.d.ts +9 -0
- package/lib/hooks/useContainsFocus.js +43 -0
- package/lib/hooks/useDatalayer.d.ts +21 -0
- package/lib/hooks/useDatalayer.js +81 -0
- package/lib/hooks/useError.d.ts +9 -0
- package/lib/hooks/useError.js +26 -0
- package/lib/hooks/useExternalScript.d.ts +2 -0
- package/lib/hooks/useExternalScript.js +17 -0
- package/lib/hooks/useFocusTrap.d.ts +30 -0
- package/lib/hooks/useFocusTrap.js +48 -0
- package/lib/hooks/useIAM.d.ts +14 -0
- package/lib/hooks/useIAM.js +93 -0
- package/lib/hooks/useId.d.ts +19 -0
- package/lib/hooks/useId.js +100 -0
- package/lib/hooks/useIsomorphicLayoutEffect.d.ts +3 -0
- package/lib/hooks/useIsomorphicLayoutEffect.js +11 -0
- package/lib/hooks/useJupyterLabTheme.d.ts +6 -0
- package/lib/hooks/useJupyterLabTheme.js +24 -0
- package/lib/hooks/useKeyboardEscape.d.ts +1 -0
- package/lib/hooks/useKeyboardEscape.js +18 -0
- package/lib/hooks/useLocationHandles.d.ts +10 -0
- package/lib/hooks/useLocationHandles.js +22 -0
- package/lib/hooks/useNavigate.d.ts +2 -0
- package/lib/hooks/useNavigate.js +24 -0
- package/lib/hooks/useNotebookAIAgent.d.ts +8 -0
- package/lib/hooks/useNotebookAIAgent.js +54 -0
- package/lib/hooks/useOnClickOutside.d.ts +1 -0
- package/lib/hooks/useOnClickOutside.js +29 -0
- package/lib/hooks/useRef.d.ts +10 -0
- package/lib/hooks/useRef.js +17 -0
- package/lib/hooks/useRuntimes.d.ts +5 -0
- package/lib/hooks/useRuntimes.js +34 -0
- package/lib/hooks/useScreenshot.d.ts +21 -0
- package/lib/hooks/useScreenshot.js +60 -0
- package/lib/hooks/useToast.d.ts +42 -0
- package/lib/hooks/useToast.js +141 -0
- package/lib/hooks/useUpload.d.ts +7 -0
- package/lib/hooks/useUpload.js +46 -0
- package/lib/hooks/useUser.d.ts +3 -0
- package/lib/hooks/useUser.js +22 -0
- package/lib/hooks/useVisibilityObserver.d.ts +5 -0
- package/lib/hooks/useVisibilityObserver.js +42 -0
- package/lib/hooks/useWindowSize.d.ts +21 -0
- package/lib/hooks/useWindowSize.js +74 -0
- package/lib/i18n/Labels.d.ts +1 -0
- package/lib/i18n/Labels.js +5 -0
- package/lib/i18n/index.d.ts +1 -0
- package/lib/i18n/index.js +5 -0
- package/lib/index.css +73 -0
- package/lib/index.d.ts +3 -0
- package/lib/index.js +6 -0
- package/lib/main.d.ts +1 -0
- package/lib/main.js +5 -2
- package/lib/mocks/components/FlashMock.d.ts +2 -0
- package/lib/mocks/components/FlashMock.js +13 -0
- package/lib/mocks/components/index.d.ts +1 -0
- package/lib/mocks/components/index.js +5 -0
- package/lib/mocks/hooks/index.d.ts +1 -0
- package/lib/mocks/hooks/index.js +5 -0
- package/lib/mocks/hooks/rests/index.d.ts +1 -0
- package/lib/mocks/hooks/rests/index.js +5 -0
- package/lib/mocks/hooks/rests/rests.d.ts +22 -0
- package/lib/mocks/hooks/rests/rests.js +32 -0
- package/lib/mocks/hooks/useDatalayerMock.d.ts +6 -0
- package/lib/mocks/hooks/useDatalayerMock.js +78 -0
- package/lib/mocks/index.d.ts +4 -0
- package/lib/mocks/index.js +9 -0
- package/lib/mocks/jupyter/index.d.ts +1 -0
- package/lib/mocks/jupyter/index.js +5 -0
- package/lib/mocks/models/CodeBlockMock.d.ts +1 -0
- package/lib/mocks/models/CodeBlockMock.js +5 -0
- package/lib/mocks/models/CodelineMock.d.ts +1 -0
- package/lib/mocks/models/CodelineMock.js +5 -0
- package/lib/mocks/models/CourseMock.d.ts +6 -0
- package/lib/mocks/models/CourseMock.js +29 -0
- package/lib/mocks/models/InviteMock.d.ts +6 -0
- package/lib/mocks/models/InviteMock.js +22 -0
- package/lib/mocks/models/JupyterLabUserMock.d.ts +2 -0
- package/lib/mocks/models/JupyterLabUserMock.js +17 -0
- package/lib/mocks/models/OrganisationMock.d.ts +5 -0
- package/lib/mocks/models/OrganisationMock.js +24 -0
- package/lib/mocks/models/SchoolMock.d.ts +6 -0
- package/lib/mocks/models/SchoolMock.js +25 -0
- package/lib/mocks/models/SpaceMock.d.ts +6 -0
- package/lib/mocks/models/SpaceMock.js +25 -0
- package/lib/mocks/models/TeamMock.d.ts +5 -0
- package/lib/mocks/models/TeamMock.js +26 -0
- package/lib/mocks/models/UserMock.d.ts +2 -0
- package/lib/mocks/models/UserMock.js +29 -0
- package/lib/mocks/models/index.d.ts +9 -0
- package/lib/mocks/models/index.js +13 -0
- package/lib/mocks/views/ActionMenuMock.d.ts +5 -0
- package/lib/mocks/views/ActionMenuMock.js +12 -0
- package/lib/mocks/views/ChartMock.d.ts +5 -0
- package/lib/mocks/views/ChartMock.js +15 -0
- package/lib/mocks/views/ChartMockOptions.d.ts +92 -0
- package/lib/mocks/views/ChartMockOptions.js +102 -0
- package/lib/mocks/views/DashboardMock.d.ts +2 -0
- package/lib/mocks/views/DashboardMock.js +118 -0
- package/lib/mocks/views/FormMock.d.ts +5 -0
- package/lib/mocks/views/FormMock.js +28 -0
- package/lib/mocks/views/TableMock.d.ts +5 -0
- package/lib/mocks/views/TableMock.js +155 -0
- package/lib/mocks/views/WipMock.d.ts +5 -0
- package/lib/mocks/views/WipMock.js +12 -0
- package/lib/mocks/views/index.d.ts +7 -0
- package/lib/mocks/views/index.js +11 -0
- package/lib/models/AIAgent.d.ts +17 -0
- package/lib/models/AIAgent.js +5 -0
- package/lib/models/Account.d.ts +4 -0
- package/lib/models/Account.js +5 -0
- package/lib/models/Assignment.d.ts +7 -0
- package/lib/models/Assignment.js +5 -0
- package/lib/models/Base.d.ts +16 -0
- package/lib/models/Base.js +5 -0
- package/lib/models/Cell.d.ts +8 -0
- package/lib/models/Cell.js +5 -0
- package/lib/models/CodeBlock.d.ts +10 -0
- package/lib/models/CodeBlock.js +5 -0
- package/lib/models/CodefeedBlocks.d.ts +7 -0
- package/lib/models/CodefeedBlocks.js +5 -0
- package/lib/models/Contact.d.ts +73 -0
- package/lib/models/Contact.js +90 -0
- package/lib/models/ContactEvent.d.ts +10 -0
- package/lib/models/ContactEvent.js +14 -0
- package/lib/models/ContactIAMProvider.d.ts +12 -0
- package/lib/models/ContactIAMProvider.js +20 -0
- package/lib/models/ContactTags.d.ts +23 -0
- package/lib/models/ContactTags.js +73 -0
- package/lib/models/Content.d.ts +5 -0
- package/lib/models/Content.js +5 -0
- package/lib/models/Course.d.ts +17 -0
- package/lib/models/Course.js +5 -0
- package/lib/models/Credits.d.ts +76 -0
- package/lib/models/Credits.js +11 -0
- package/lib/models/Dataset.d.ts +16 -0
- package/lib/models/Dataset.js +5 -0
- package/lib/models/Datasource.d.ts +11 -0
- package/lib/models/Datasource.js +14 -0
- package/lib/models/Dean.d.ts +3 -0
- package/lib/models/Dean.js +5 -0
- package/lib/models/Document.d.ts +8 -0
- package/lib/models/Document.js +5 -0
- package/lib/models/Environment.d.ts +82 -0
- package/lib/models/Environment.js +5 -0
- package/lib/models/Errors.d.ts +6 -0
- package/lib/models/Errors.js +13 -0
- package/lib/models/Exercise.d.ts +16 -0
- package/lib/models/Exercise.js +5 -0
- package/lib/models/GrowthKPI.d.ts +5 -0
- package/lib/models/GrowthKPI.js +9 -0
- package/lib/models/IAMProviderLinked.d.ts +9 -0
- package/lib/models/IAMProviderLinked.js +13 -0
- package/lib/models/IAMProviderPost.d.ts +8 -0
- package/lib/models/IAMProviderPost.js +22 -0
- package/lib/models/IAMProviderUsers.d.ts +49 -0
- package/lib/models/IAMProviderUsers.js +29 -0
- package/lib/models/IAMProvidersSpecs.d.ts +22 -0
- package/lib/models/IAMProvidersSpecs.js +72 -0
- package/lib/models/IAMToken.d.ts +11 -0
- package/lib/models/IAMToken.js +14 -0
- package/lib/models/Inbound.d.ts +25 -0
- package/lib/models/Inbound.js +29 -0
- package/lib/models/Instructor.d.ts +3 -0
- package/lib/models/Instructor.js +5 -0
- package/lib/models/Invite.d.ts +14 -0
- package/lib/models/Invite.js +24 -0
- package/lib/models/Item.d.ts +20 -0
- package/lib/models/Item.js +5 -0
- package/lib/models/ItemType.d.ts +2 -0
- package/lib/models/ItemType.js +5 -0
- package/lib/models/LandingRoles.d.ts +3 -0
- package/lib/models/LandingRoles.js +27 -0
- package/lib/models/Lesson.d.ts +5 -0
- package/lib/models/Lesson.js +5 -0
- package/lib/models/Library.d.ts +10 -0
- package/lib/models/Library.js +5 -0
- package/lib/models/Member.d.ts +3 -0
- package/lib/models/Member.js +5 -0
- package/lib/models/Notebook.d.ts +11 -0
- package/lib/models/Notebook.js +5 -0
- package/lib/models/Organization.d.ts +27 -0
- package/lib/models/Organization.js +36 -0
- package/lib/models/OrganizationMember.d.ts +6 -0
- package/lib/models/OrganizationMember.js +5 -0
- package/lib/models/Outbound.d.ts +41 -0
- package/lib/models/Outbound.js +45 -0
- package/lib/models/Page.d.ts +36 -0
- package/lib/models/Page.js +23 -0
- package/lib/models/PageTag.d.ts +19 -0
- package/lib/models/PageTag.js +26 -0
- package/lib/models/Profile.d.ts +1 -0
- package/lib/models/Profile.js +5 -0
- package/lib/models/Role.d.ts +9 -0
- package/lib/models/Role.js +5 -0
- package/lib/models/RolesOrganization.d.ts +9 -0
- package/lib/models/RolesOrganization.js +58 -0
- package/lib/models/RolesPlatform.d.ts +16 -0
- package/lib/models/RolesPlatform.js +142 -0
- package/lib/models/RolesTeam.d.ts +7 -0
- package/lib/models/RolesTeam.js +34 -0
- package/lib/models/Runtime.d.ts +123 -0
- package/lib/models/Runtime.js +18 -0
- package/lib/models/RuntimeSnapshot.d.ts +92 -0
- package/lib/models/RuntimeSnapshot.js +13 -0
- package/lib/models/School.d.ts +11 -0
- package/lib/models/School.js +5 -0
- package/lib/models/Secret.d.ts +10 -0
- package/lib/models/Secret.js +13 -0
- package/lib/models/Space.d.ts +34 -0
- package/lib/models/Space.js +39 -0
- package/lib/models/SpaceItem.d.ts +10 -0
- package/lib/models/SpaceItem.js +5 -0
- package/lib/models/SpaceMember.d.ts +6 -0
- package/lib/models/SpaceMember.js +5 -0
- package/lib/models/Student.d.ts +6 -0
- package/lib/models/Student.js +5 -0
- package/lib/models/StudentItem.d.ts +21 -0
- package/lib/models/StudentItem.js +5 -0
- package/lib/models/Survey.d.ts +20 -0
- package/lib/models/Survey.js +14 -0
- package/lib/models/Team.d.ts +22 -0
- package/lib/models/Team.js +32 -0
- package/lib/models/TeamMember.d.ts +6 -0
- package/lib/models/TeamMember.js +5 -0
- package/lib/models/URN.d.ts +63 -0
- package/lib/models/URN.js +40 -0
- package/lib/models/Usage.d.ts +46 -0
- package/lib/models/Usage.js +21 -0
- package/lib/models/User.d.ts +71 -0
- package/lib/models/User.js +98 -0
- package/lib/models/UserEvent.d.ts +10 -0
- package/lib/models/UserEvent.js +14 -0
- package/lib/models/UserOnboarding.d.ts +14 -0
- package/lib/models/UserOnboarding.js +19 -0
- package/lib/models/UserSettings.d.ts +16 -0
- package/lib/models/UserSettings.js +27 -0
- package/lib/models/WaitingListFormData.d.ts +6 -0
- package/lib/models/WaitingListFormData.js +5 -0
- package/lib/models/index.d.ts +65 -0
- package/lib/models/index.js +69 -0
- package/lib/routes/Routes.d.ts +3 -0
- package/lib/routes/Routes.js +7 -0
- package/lib/routes/index.d.ts +1 -0
- package/lib/routes/index.js +5 -0
- package/lib/state/State.d.ts +33 -0
- package/lib/state/State.js +44 -0
- package/lib/state/index.d.ts +3 -0
- package/lib/state/index.js +7 -0
- package/lib/state/storage/IAMStorage.d.ts +33 -0
- package/lib/state/storage/IAMStorage.js +76 -0
- package/lib/state/storage/index.d.ts +1 -0
- package/lib/state/storage/index.js +5 -0
- package/lib/state/substates/AIAgentState.d.ts +11 -0
- package/lib/state/substates/AIAgentState.js +40 -0
- package/lib/state/substates/CellState.d.ts +12 -0
- package/lib/state/substates/CellState.js +21 -0
- package/lib/state/substates/CoreState.d.ts +25 -0
- package/lib/state/substates/CoreState.js +88 -0
- package/lib/state/substates/DatasourceState.d.ts +11 -0
- package/lib/state/substates/DatasourceState.js +16 -0
- package/lib/state/substates/DocumentState.d.ts +10 -0
- package/lib/state/substates/DocumentState.js +14 -0
- package/lib/state/substates/GradeState.d.ts +10 -0
- package/lib/state/substates/GradeState.js +14 -0
- package/lib/state/substates/IAMState.d.ts +75 -0
- package/lib/state/substates/IAMState.js +291 -0
- package/lib/state/substates/JupyterLabState.d.ts +16 -0
- package/lib/state/substates/JupyterLabState.js +17 -0
- package/lib/state/substates/LayoutState.d.ts +62 -0
- package/lib/state/substates/LayoutState.js +74 -0
- package/lib/state/substates/NbformatState.d.ts +13 -0
- package/lib/state/substates/NbformatState.js +16 -0
- package/lib/state/substates/OrganizationState.d.ts +11 -0
- package/lib/state/substates/OrganizationState.js +16 -0
- package/lib/state/substates/RuntimesState.d.ts +88 -0
- package/lib/state/substates/RuntimesState.js +178 -0
- package/lib/state/substates/SpaceState.d.ts +11 -0
- package/lib/state/substates/SpaceState.js +16 -0
- package/lib/state/substates/SurveysState.d.ts +14 -0
- package/lib/state/substates/SurveysState.js +98 -0
- package/lib/state/substates/TeamState.d.ts +11 -0
- package/lib/state/substates/TeamState.js +17 -0
- package/lib/state/substates/index.d.ts +15 -0
- package/lib/state/substates/index.js +19 -0
- package/lib/stories/assets/accessibility.png +0 -0
- package/lib/stories/assets/accessibility.svg +1 -0
- package/lib/stories/assets/addon-library.png +0 -0
- package/lib/stories/assets/assets.png +0 -0
- package/lib/stories/assets/context.png +0 -0
- package/lib/stories/assets/discord.svg +1 -0
- package/lib/stories/assets/docs.png +0 -0
- package/lib/stories/assets/figma-plugin.png +0 -0
- package/lib/stories/assets/github.svg +1 -0
- package/lib/stories/assets/share.png +0 -0
- package/lib/stories/assets/styling.png +0 -0
- package/lib/stories/assets/testing.png +0 -0
- package/lib/stories/assets/theming.png +0 -0
- package/lib/stories/assets/tutorials.svg +1 -0
- package/lib/stories/assets/youtube.svg +1 -0
- package/lib/stories/button.css +35 -0
- package/lib/stories/header.css +37 -0
- package/lib/stories/page.css +73 -0
- package/lib/test-setup.d.ts +1 -0
- package/lib/test-setup.js +57 -0
- package/lib/theme/DatalayerTheme.d.ts +37 -0
- package/lib/theme/DatalayerTheme.js +62 -0
- package/lib/theme/DatalayerThemeProvider.d.ts +17 -0
- package/lib/theme/DatalayerThemeProvider.js +69 -0
- package/lib/theme/Palette.d.ts +5 -0
- package/lib/theme/Palette.js +22 -0
- package/lib/theme/index.d.ts +3 -0
- package/lib/theme/index.js +7 -0
- package/lib/utils/Array.d.ts +2 -0
- package/lib/utils/Array.js +16 -0
- package/lib/utils/Avatar.d.ts +9 -0
- package/lib/utils/Avatar.js +34 -0
- package/lib/utils/Browser.d.ts +3 -0
- package/lib/utils/Browser.js +63 -0
- package/lib/utils/Cells.d.ts +2 -0
- package/lib/utils/Cells.js +28 -0
- package/lib/utils/Cookie.d.ts +12 -0
- package/lib/utils/Cookie.js +48 -0
- package/lib/utils/Date.d.ts +2 -0
- package/lib/utils/Date.js +60 -0
- package/lib/utils/Download.d.ts +3 -0
- package/lib/utils/Download.js +48 -0
- package/lib/utils/DownloadFile.d.ts +10 -0
- package/lib/utils/DownloadFile.js +36 -0
- package/lib/utils/Env.d.ts +1 -0
- package/lib/utils/Env.js +7 -0
- package/lib/utils/File.d.ts +7 -0
- package/lib/utils/File.js +16 -0
- package/lib/utils/Format.d.ts +17 -0
- package/lib/utils/Format.js +54 -0
- package/lib/utils/Ids.d.ts +2 -0
- package/lib/utils/Ids.js +12 -0
- package/lib/utils/Jupyter.d.ts +1 -0
- package/lib/utils/Jupyter.js +12 -0
- package/lib/utils/Lazy.d.ts +8 -0
- package/lib/utils/Lazy.js +23 -0
- package/lib/utils/Msc.d.ts +16 -0
- package/lib/utils/Msc.js +28 -0
- package/lib/utils/Name.d.ts +7 -0
- package/lib/utils/Name.js +34 -0
- package/lib/utils/Notebook.d.ts +19 -0
- package/lib/utils/Notebook.js +37 -0
- package/lib/utils/Number.d.ts +1 -0
- package/lib/utils/Number.js +21 -0
- package/lib/utils/Plots.d.ts +16 -0
- package/lib/utils/Plots.js +56 -0
- package/lib/utils/Random.d.ts +1 -0
- package/lib/utils/Random.js +7 -0
- package/lib/utils/Screenshot.d.ts +1 -0
- package/lib/utils/Screenshot.js +27 -0
- package/lib/utils/Scroll.d.ts +2 -0
- package/lib/utils/Scroll.js +32 -0
- package/lib/utils/Sleep.d.ts +2 -0
- package/lib/utils/Sleep.js +8 -0
- package/lib/utils/Snapshot.d.ts +7 -0
- package/lib/utils/Snapshot.js +21 -0
- package/lib/utils/String.d.ts +1 -0
- package/lib/utils/String.js +13 -0
- package/lib/utils/Uri.d.ts +2 -0
- package/lib/utils/Uri.js +26 -0
- package/lib/utils/Validator.d.ts +12 -0
- package/lib/utils/Validator.js +44 -0
- package/lib/utils/WithSuspense.d.ts +2 -0
- package/lib/utils/WithSuspense.js +21 -0
- package/lib/utils/index.d.ts +26 -0
- package/lib/utils/index.js +31 -0
- package/package.json +86 -17
- package/style/animation/Animation.module.css +174 -0
- package/style/base.css +62 -3
- package/style/index.css +2 -3
- 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
|
+
}
|
package/lib/api/index.js
ADDED
|
@@ -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,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
|
+
}
|