@datalayer/core 0.0.2 → 0.0.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +124 -2
- package/lib/App.css +47 -0
- package/lib/App.js +14 -2
- package/lib/__tests__/index.test.js +7 -6
- package/lib/api/{RunApi.d.ts → DatalayerApi.d.ts} +4 -4
- package/lib/api/{RunApi.js → DatalayerApi.js} +6 -11
- package/lib/api/index.d.ts +3 -2
- package/lib/api/index.js +3 -7
- package/lib/api/{runtimes → jupyter}/exec/Python.js +0 -5
- package/lib/api/{runtimes → jupyter}/exec/Snippets.js +0 -5
- package/lib/api/{runtimes → jupyter}/exec/index.js +0 -5
- package/lib/api/jupyter/index.d.ts +2 -0
- package/lib/api/jupyter/index.js +6 -0
- package/lib/api/{runtimes → jupyter}/kernelsHandler.d.ts +1 -1
- package/lib/api/{runtimes → jupyter}/kernelsHandler.js +1 -6
- package/lib/api/runtimes/actions.d.ts +102 -0
- package/lib/api/runtimes/{runtimesApi.js → actions.js} +47 -53
- package/lib/api/runtimes/{runtimesApi.d.ts → apis.d.ts} +8 -105
- package/lib/api/runtimes/apis.js +5 -0
- package/lib/api/runtimes/index.d.ts +2 -4
- package/lib/api/runtimes/index.js +2 -9
- package/lib/api/runtimes/settings.js +3 -8
- package/lib/api/runtimes/snapshots.d.ts +1 -1
- package/lib/api/runtimes/snapshots.js +8 -13
- package/lib/api/runtimes/utils.js +1 -9
- package/lib/assets/react.svg +1 -0
- package/lib/collaboration/DatalayerCollaboration.d.ts +9 -0
- package/lib/collaboration/DatalayerCollaboration.js +28 -0
- package/lib/collaboration/DatalayerCollaborationProvider.d.ts +54 -0
- package/lib/collaboration/DatalayerCollaborationProvider.js +162 -0
- package/lib/collaboration/index.d.ts +2 -0
- package/lib/collaboration/index.js +6 -0
- package/lib/components/avatars/BoringAvatar.d.ts +2 -3
- package/lib/components/avatars/BoringAvatar.js +14 -9
- package/lib/components/avatars/BoringAvatar.stories.d.ts +27 -0
- package/lib/components/avatars/BoringAvatar.stories.js +23 -0
- package/lib/components/avatars/UserProfileAvatar.js +2 -14
- package/lib/components/avatars/index.js +0 -5
- package/lib/components/banners/NoAutomationBanner.js +4 -9
- package/lib/components/banners/index.js +0 -5
- package/lib/components/buttons/DownloadCSVButton.d.ts +1 -1
- package/lib/components/buttons/DownloadCSVButton.js +1 -6
- package/lib/components/buttons/DownloadJsonButton.d.ts +1 -1
- package/lib/components/buttons/DownloadJsonButton.js +0 -5
- package/lib/components/buttons/LongActionButton.js +0 -5
- package/lib/components/buttons/UploadButton.js +1 -6
- package/lib/components/buttons/index.js +0 -5
- package/lib/components/checkout/StripeCheckout.d.ts +1 -1
- package/lib/components/checkout/StripeCheckout.js +6 -11
- package/lib/components/checkout/index.js +0 -5
- package/lib/components/confetti/ConfettiSuccess.js +1 -6
- package/lib/components/confetti/index.js +0 -5
- package/lib/components/context/OrganizationSelect.js +5 -10
- package/lib/components/context/SpaceSelect.js +7 -12
- package/lib/components/context/index.js +0 -5
- package/lib/components/display/AvatarSkeleton.js +1 -6
- package/lib/components/display/CenteredSpinner.js +4 -9
- package/lib/components/display/CodePreview.js +4 -9
- package/lib/components/display/DatalayerBox.js +13 -19
- package/lib/components/display/HorizontalCenter.d.ts +1 -1
- package/lib/components/display/HorizontalCenter.js +1 -1
- package/lib/components/display/JupyterDialog.js +17 -20
- package/lib/components/display/NavLink.d.ts +4 -2
- package/lib/components/display/NavLink.js +6 -9
- package/lib/components/display/NotebookSkeleton.js +2 -7
- package/lib/components/display/Placeholder.js +1 -6
- package/lib/components/display/ToTopBranded.js +1 -6
- package/lib/components/display/VisuallyHidden.js +0 -5
- package/lib/components/display/index.js +0 -5
- package/lib/components/echarts/EChartsReact.d.ts +1 -1
- package/lib/components/echarts/EChartsReact.js +7 -7
- package/lib/components/echarts/index.js +0 -5
- package/lib/components/flashes/FlashClosable.js +11 -16
- package/lib/components/flashes/FlashDisclaimer.js +2 -8
- package/lib/components/flashes/FlashGuest.js +3 -9
- package/lib/components/flashes/FlashSurveys.js +3 -9
- package/lib/components/flashes/FlashUnauthorized.js +2 -7
- package/lib/components/flashes/index.js +0 -5
- package/lib/components/flashes/surveys/Survey2025_1.d.ts +1 -1
- package/lib/components/flashes/surveys/Survey2025_1.js +62 -90
- package/lib/components/flashes/surveys/index.js +0 -5
- package/lib/components/iam/ExternalTokenSilentLogin.js +6 -9
- package/lib/components/iam/index.js +0 -5
- package/lib/components/icons/ArtifactIcon.d.ts +2 -2
- package/lib/components/icons/ArtifactIcon.js +39 -44
- package/lib/components/icons/index.js +0 -5
- package/lib/components/index.js +1 -6
- package/lib/components/labels/VisibilityLabel.js +2 -10
- package/lib/components/labels/index.js +0 -5
- package/lib/components/landings/StepBlock.d.ts +1 -1
- package/lib/components/landings/StepBlock.js +1 -6
- package/lib/components/landings/index.js +0 -5
- package/lib/components/navbar/NavigationVisbilityObserver.js +2 -7
- package/lib/components/navbar/SubdomainNavBar.js +46 -29
- package/lib/components/navbar/SubdomainNavBar.module.css +737 -0
- package/lib/components/navbar/index.js +0 -5
- package/lib/components/nbgrader/NbGradesDetails.d.ts +1 -1
- package/lib/components/nbgrader/NbGradesDetails.js +5 -13
- package/lib/components/nbgrader/index.js +0 -5
- package/lib/components/notebooks/JupyterNotebook.js +5 -10
- package/lib/components/notebooks/JupyterNotebookToolbar.js +3 -8
- package/lib/components/notebooks/index.js +0 -5
- package/lib/components/primer/Helper.d.ts +1 -1
- package/lib/components/primer/Helper.js +5 -3
- package/lib/components/primer/Portals.d.ts +1 -1
- package/lib/components/primer/Portals.js +2 -7
- package/lib/components/primer/Styles.js +1 -6
- package/lib/components/primer/index.js +0 -5
- package/lib/components/progress/ConsumptionBar.js +2 -7
- package/lib/components/progress/CreditsIndicator.d.ts +1 -1
- package/lib/components/progress/CreditsIndicator.js +4 -13
- package/lib/components/progress/ProgressBar.js +0 -5
- package/lib/components/progress/ProgressRing.js +2 -2
- package/lib/components/progress/Timer.js +0 -5
- package/lib/components/progress/index.js +0 -5
- package/lib/components/runtimes/RuntimeCellVariables.js +9 -14
- package/lib/components/runtimes/RuntimeCellVariablesDialog.js +7 -12
- package/lib/components/runtimes/RuntimeLauncherDialog.d.ts +1 -2
- package/lib/components/runtimes/RuntimeLauncherDialog.js +32 -40
- package/lib/components/runtimes/RuntimePickerBase.d.ts +1 -1
- package/lib/components/runtimes/RuntimePickerBase.js +42 -36
- package/lib/components/runtimes/RuntimePickerCell.js +9 -17
- package/lib/components/runtimes/RuntimePickerNotebook.d.ts +1 -2
- package/lib/components/runtimes/RuntimePickerNotebook.js +45 -50
- package/lib/components/runtimes/RuntimeReservationControl.js +10 -20
- package/lib/components/runtimes/RuntimeSimplePicker.d.ts +1 -1
- package/lib/components/runtimes/RuntimeSimplePicker.js +44 -52
- package/lib/components/runtimes/RuntimeUtils.d.ts +1 -1
- package/lib/components/runtimes/RuntimeUtils.js +22 -17
- package/lib/components/runtimes/RuntimeVariables.js +7 -12
- package/lib/components/runtimes/index.js +0 -5
- package/lib/components/screenshot/ScreenCapture.js +10 -19
- package/lib/components/screenshot/ScreenCaptureButton.d.ts +1 -1
- package/lib/components/screenshot/ScreenCaptureButton.js +14 -8
- package/lib/components/screenshot/index.js +0 -5
- package/lib/components/snapshots/RuntimeSnapshotMenu.js +19 -22
- package/lib/components/snapshots/index.js +0 -5
- package/lib/components/snippets/SnippetDialog.js +5 -10
- package/lib/components/snippets/index.js +0 -5
- package/lib/components/storage/ContentsBrowser.js +75 -63
- package/lib/components/storage/ContentsItems.js +10 -13
- package/lib/components/storage/index.js +0 -5
- package/lib/components/students/StudentItemStatus.d.ts +1 -1
- package/lib/components/students/StudentItemStatus.js +38 -21
- package/lib/components/students/index.js +0 -5
- package/lib/components/subnav/SubNav.d.ts +3 -3
- package/lib/components/subnav/SubNav.js +34 -24
- package/lib/components/subnav/SubNav.module.css +717 -0
- package/lib/components/subnav/index.js +0 -5
- package/lib/components/tables/DataTable.js +1 -9
- package/lib/components/tables/index.js +0 -5
- package/lib/components/text-reveal/TextRevealAnimation.js +7 -8
- package/lib/components/text-reveal/TextRevealAnimation.module.css +45 -0
- package/lib/components/text-reveal/index.js +0 -5
- package/lib/components/text-reveal/useTextRevealAnimationLines.js +0 -5
- package/lib/components/tokens/SpaceVariantToken.d.ts +1 -1
- package/lib/components/tokens/SpaceVariantToken.js +5 -10
- package/lib/components/tokens/index.js +0 -5
- package/lib/components/toolbars/AssignmentEditorToolbar.js +1 -8
- package/lib/components/toolbars/DocumentEditorToolbar.js +0 -5
- package/lib/components/toolbars/NotebookEditorToolbar.d.ts +1 -1
- package/lib/components/toolbars/NotebookEditorToolbar.js +0 -5
- package/lib/components/toolbars/index.js +0 -5
- package/lib/components/users/PeerIndicator.d.ts +1 -1
- package/lib/components/users/PeerIndicator.js +5 -10
- package/lib/components/users/index.js +0 -5
- package/lib/config/Configuration.d.ts +48 -0
- package/lib/config/Configuration.js +42 -5
- package/lib/config/index.js +0 -5
- package/lib/config/integrations/Loom.js +3 -8
- package/lib/config/integrations/index.js +0 -5
- package/lib/examples/CellExample.d.ts +6 -0
- package/lib/examples/CellExample.js +55 -0
- package/lib/examples/DatalayerNotebookExample.d.ts +16 -0
- package/lib/examples/DatalayerNotebookExample.js +75 -0
- package/lib/examples/NativeNavigationExample.d.ts +8 -0
- package/lib/examples/NativeNavigationExample.js +97 -0
- package/lib/examples/NotebookExample.d.ts +6 -0
- package/lib/examples/NotebookExample.js +24 -0
- package/lib/examples/NotebookMutationsKernel.d.ts +2 -0
- package/lib/examples/NotebookMutationsKernel.js +115 -0
- package/lib/examples/NotebookMutationsServiceManager.d.ts +2 -0
- package/lib/examples/NotebookMutationsServiceManager.js +107 -0
- package/lib/examples/ReactRouterExample.d.ts +6 -0
- package/lib/examples/ReactRouterExample.js +175 -0
- package/lib/examples/example-selector.d.ts +22 -0
- package/lib/examples/example-selector.js +45 -0
- package/lib/examples/index.d.ts +2 -0
- package/lib/examples/index.js +6 -0
- package/lib/examples/main.js +153 -0
- package/lib/examples/notebooks/IPyWidgetsExample.ipynb.json +101 -0
- package/lib/examples/notebooks/IPyWidgetsExampleWithState.ipynb.json +112 -0
- package/lib/examples/notebooks/Lite.ipynb.json +128 -0
- package/lib/examples/notebooks/Matplotlib.ipynb.json +137 -0
- package/lib/examples/notebooks/NotebookExample1.ipynb.json +126 -0
- package/lib/examples/notebooks/NotebookExample2.ipynb.json +48 -0
- package/lib/examples/notebooks/NotebookOutputs.ipynb.json +49 -0
- package/lib/examples/notebooks/NotebookToCExample.ipynb.json +102 -0
- package/lib/examples/notebooks/OutputIPyWidgetsExample.d.ts +145 -0
- package/lib/examples/notebooks/OutputIPyWidgetsExample.js +153 -0
- package/lib/examples/notebooks/PyGWalker.ipynb.json +55 -0
- package/lib/hooks/assets/OutputshotPlaceholders.d.ts +10 -10
- package/lib/hooks/assets/OutputshotPlaceholders.js +9 -14
- package/lib/hooks/assets/index.js +0 -5
- package/lib/hooks/index.d.ts +29 -28
- package/lib/hooks/index.js +29 -33
- package/lib/hooks/layouts/LayoutBackdrop.js +3 -11
- package/lib/hooks/layouts/LayoutScreenshot.css +58 -0
- package/lib/hooks/layouts/LayoutScreenshot.d.ts +1 -0
- package/lib/hooks/layouts/LayoutScreenshot.js +7 -11
- package/lib/hooks/layouts/index.js +0 -5
- package/lib/hooks/useAIAgents.d.ts +1 -1
- package/lib/hooks/useAIAgents.js +13 -18
- package/lib/hooks/useAuthorization.js +4 -10
- package/lib/hooks/useBackdrop.js +7 -12
- package/lib/hooks/useBackdropJupyterLab.d.ts +1 -1
- package/lib/hooks/useBackdropJupyterLab.js +4 -9
- package/lib/hooks/useCache.d.ts +8 -4
- package/lib/hooks/useCache.js +410 -361
- package/lib/hooks/useCellOutputshot.js +3 -11
- package/lib/hooks/useContainsFocus.js +2 -6
- package/lib/hooks/useDatalayer.d.ts +21 -0
- package/lib/hooks/{useRun.js → useDatalayer.js} +16 -18
- package/lib/hooks/useError.d.ts +1 -1
- package/lib/hooks/useError.js +2 -7
- package/lib/hooks/useExternalScript.js +4 -9
- package/lib/hooks/useFocusTrap.d.ts +1 -1
- package/lib/hooks/useFocusTrap.js +3 -7
- package/lib/hooks/useIAM.js +6 -12
- package/lib/hooks/useId.js +6 -11
- package/lib/hooks/useIsomorphicLayoutEffect.js +0 -5
- package/lib/hooks/useJupyterLabTheme.js +3 -6
- package/lib/hooks/useKeyboardEscape.js +0 -5
- package/lib/hooks/useLocation.d.ts +22 -0
- package/lib/hooks/useLocation.js +149 -0
- package/lib/hooks/useLocationHandles.d.ts +2 -2
- package/lib/hooks/useLocationHandles.js +6 -9
- package/lib/hooks/useNavigate.d.ts +5 -1
- package/lib/hooks/useNavigate.js +62 -12
- package/lib/hooks/useNotebookAIAgent.js +3 -6
- package/lib/hooks/useOnClickOutside.js +0 -5
- package/lib/hooks/useParams.d.ts +5 -0
- package/lib/hooks/useParams.js +152 -0
- package/lib/hooks/useRef.js +0 -5
- package/lib/hooks/useRuntimes.js +2 -7
- package/lib/hooks/useScreenshot.js +5 -10
- package/lib/hooks/useToast.js +21 -21
- package/lib/hooks/useUpload.js +9 -14
- package/lib/hooks/useUser.js +1 -1
- package/lib/hooks/useVisibilityObserver.js +0 -5
- package/lib/hooks/useWindowSize.js +0 -6
- package/lib/i18n/Labels.js +0 -5
- package/lib/i18n/index.js +0 -5
- package/lib/index.css +73 -0
- package/lib/index.d.ts +6 -3
- package/lib/index.js +7 -3
- package/lib/main.js +1 -2
- package/lib/mocks/components/FlashMock.js +4 -9
- package/lib/mocks/components/index.js +0 -5
- package/lib/mocks/hooks/index.d.ts +1 -1
- package/lib/mocks/hooks/index.js +1 -6
- package/lib/mocks/hooks/rests/index.js +0 -5
- package/lib/mocks/hooks/rests/rests.js +15 -23
- package/lib/mocks/hooks/useDatalayerMock.d.ts +6 -0
- package/lib/mocks/hooks/{useRunMock.js → useDatalayerMock.js} +9 -14
- package/lib/mocks/index.js +0 -5
- package/lib/mocks/jupyter/index.js +1 -6
- package/lib/mocks/models/CodeBlockMock.js +1 -6
- package/lib/mocks/models/CodelineMock.js +1 -6
- package/lib/mocks/models/CourseMock.d.ts +1 -1
- package/lib/mocks/models/CourseMock.js +10 -15
- package/lib/mocks/models/InviteMock.d.ts +1 -1
- package/lib/mocks/models/InviteMock.js +21 -11
- package/lib/mocks/models/JupyterLabUserMock.js +2 -2
- package/lib/mocks/models/OrganisationMock.d.ts +1 -1
- package/lib/mocks/models/OrganisationMock.js +11 -7
- package/lib/mocks/models/SchoolMock.d.ts +1 -1
- package/lib/mocks/models/SchoolMock.js +6 -6
- package/lib/mocks/models/SpaceMock.d.ts +1 -1
- package/lib/mocks/models/SpaceMock.js +9 -14
- package/lib/mocks/models/TeamMock.d.ts +1 -1
- package/lib/mocks/models/TeamMock.js +6 -6
- package/lib/mocks/models/UserMock.d.ts +1 -1
- package/lib/mocks/models/UserMock.js +4 -11
- package/lib/mocks/models/index.js +0 -5
- package/lib/mocks/views/ActionMenuMock.js +1 -6
- package/lib/mocks/views/ChartMock.js +3 -8
- package/lib/mocks/views/ChartMockOptions.js +24 -29
- package/lib/mocks/views/DashboardMock.js +74 -79
- package/lib/mocks/views/FormMock.js +1 -6
- package/lib/mocks/views/TableMock.js +1 -6
- package/lib/mocks/views/WipMock.js +0 -5
- package/lib/mocks/views/index.js +0 -5
- package/lib/models/Account.d.ts +2 -2
- package/lib/models/Assignment.d.ts +2 -2
- package/lib/models/Cell.d.ts +1 -1
- package/lib/models/CodeBlock.d.ts +1 -1
- package/lib/models/CodefeedBlocks.d.ts +2 -2
- package/lib/models/Contact.d.ts +1 -1
- package/lib/models/Contact.js +14 -19
- package/lib/models/ContactEvent.js +0 -5
- package/lib/models/ContactIAMProvider.js +2 -2
- package/lib/models/Course.d.ts +7 -7
- package/lib/models/Credits.js +0 -5
- package/lib/models/Dataset.d.ts +2 -2
- package/lib/models/Datasource.js +0 -5
- package/lib/models/Dean.d.ts +1 -1
- package/lib/models/Document.d.ts +1 -1
- package/lib/models/Environment.d.ts +2 -2
- package/lib/models/Errors.js +0 -5
- package/lib/models/Exercise.d.ts +1 -1
- package/lib/models/GrowthKPI.js +0 -5
- package/lib/models/IAMProviderLinked.js +1 -1
- package/lib/models/IAMProviderUsers.js +0 -5
- package/lib/models/IAMToken.js +0 -5
- package/lib/models/Inbound.js +0 -5
- package/lib/models/Instructor.d.ts +1 -1
- package/lib/models/Invite.d.ts +2 -2
- package/lib/models/Invite.js +1 -1
- package/lib/models/Item.d.ts +5 -5
- package/lib/models/LandingRoles.js +18 -23
- package/lib/models/Lesson.d.ts +1 -1
- package/lib/models/Member.d.ts +1 -1
- package/lib/models/Notebook.d.ts +1 -1
- package/lib/models/Organization.d.ts +4 -4
- package/lib/models/Organization.js +2 -7
- package/lib/models/OrganizationMember.d.ts +2 -2
- package/lib/models/Outbound.js +7 -12
- package/lib/models/Page.js +4 -2
- package/lib/models/PageTag.d.ts +2 -2
- package/lib/models/PageTag.js +56 -9
- package/lib/models/Profile.d.ts +1 -1
- package/lib/models/RolesOrganization.d.ts +1 -1
- package/lib/models/RolesOrganization.js +4 -17
- package/lib/models/RolesPlatform.d.ts +1 -1
- package/lib/models/RolesPlatform.js +12 -39
- package/lib/models/RolesTeam.d.ts +1 -1
- package/lib/models/RolesTeam.js +3 -15
- package/lib/models/Runtime.d.ts +59 -1
- package/lib/models/Runtime.js +11 -9
- package/lib/models/RuntimeSnapshot.js +1 -1
- package/lib/models/School.d.ts +4 -4
- package/lib/models/Secret.js +0 -5
- package/lib/models/Space.d.ts +5 -5
- package/lib/models/Space.js +3 -3
- package/lib/models/SpaceItem.d.ts +8 -8
- package/lib/models/SpaceMember.d.ts +2 -2
- package/lib/models/Student.d.ts +2 -2
- package/lib/models/StudentItem.d.ts +3 -3
- package/lib/models/Survey.js +0 -5
- package/lib/models/Team.d.ts +3 -3
- package/lib/models/Team.js +2 -7
- package/lib/models/TeamMember.d.ts +2 -2
- package/lib/models/URN.js +1 -6
- package/lib/models/User.d.ts +2 -2
- package/lib/models/User.js +7 -10
- package/lib/models/UserEvent.js +0 -5
- package/lib/models/UserOnboarding.d.ts +1 -1
- package/lib/models/UserOnboarding.js +7 -12
- package/lib/models/UserSettings.js +2 -7
- package/lib/models/index.d.ts +2 -2
- package/lib/models/index.js +2 -7
- package/lib/navigation/adapters/native.d.ts +11 -0
- package/lib/navigation/adapters/native.js +48 -0
- package/lib/navigation/adapters/nextjs.d.ts +9 -0
- package/lib/navigation/adapters/nextjs.js +35 -0
- package/lib/navigation/adapters/react-router.d.ts +4 -0
- package/lib/navigation/adapters/react-router.js +12 -0
- package/lib/navigation/components.d.ts +20 -0
- package/lib/navigation/components.js +36 -0
- package/lib/navigation/index.d.ts +4 -0
- package/lib/navigation/index.js +12 -0
- package/lib/routes/Routes.js +0 -5
- package/lib/routes/index.d.ts +1 -1
- package/lib/routes/index.js +1 -6
- package/lib/services/DatalayerServiceManager.d.ts +22 -0
- package/lib/services/DatalayerServiceManager.js +79 -0
- package/lib/services/index.d.ts +4 -0
- package/lib/services/index.js +7 -0
- package/lib/services/reconnectToRuntime.d.ts +32 -0
- package/lib/services/reconnectToRuntime.js +59 -0
- package/lib/state/State.d.ts +1 -1
- package/lib/state/State.js +1 -6
- package/lib/state/index.d.ts +1 -1
- package/lib/state/index.js +1 -6
- package/lib/state/storage/IAMStorage.js +14 -7
- package/lib/state/storage/index.d.ts +1 -1
- package/lib/state/storage/index.js +1 -6
- package/lib/state/substates/AIAgentState.js +4 -7
- package/lib/state/substates/CellState.js +6 -10
- package/lib/state/substates/CoreState.d.ts +1 -1
- package/lib/state/substates/CoreState.js +23 -20
- package/lib/state/substates/DatasourceState.js +1 -6
- package/lib/state/substates/DocumentState.js +0 -5
- package/lib/state/substates/GradeState.js +0 -5
- package/lib/state/substates/IAMState.d.ts +5 -1
- package/lib/state/substates/IAMState.js +88 -72
- package/lib/state/substates/JupyterLabState.js +1 -6
- package/lib/state/substates/LayoutState.d.ts +2 -2
- package/lib/state/substates/LayoutState.js +41 -28
- package/lib/state/substates/NbformatState.js +0 -5
- package/lib/state/substates/OrganizationState.js +1 -6
- package/lib/state/substates/RuntimesState.d.ts +2 -2
- package/lib/state/substates/RuntimesState.js +6 -10
- package/lib/state/substates/SpaceState.js +1 -6
- package/lib/state/substates/SurveysState.js +7 -12
- package/lib/state/substates/TeamState.js +1 -6
- package/lib/state/substates/index.js +0 -5
- 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.js +73 -1
- package/lib/theme/DatalayerTheme.js +1 -6
- package/lib/theme/DatalayerThemeProvider.js +17 -19
- package/lib/theme/Palette.js +1 -6
- package/lib/theme/index.js +0 -5
- package/lib/utils/Array.js +0 -5
- package/lib/utils/Avatar.js +2 -7
- package/lib/utils/Browser.js +6 -11
- package/lib/utils/Cells.d.ts +1 -1
- package/lib/utils/Cookie.js +1 -6
- package/lib/utils/Date.js +5 -10
- package/lib/utils/Download.js +5 -8
- package/lib/utils/DownloadFile.js +4 -7
- package/lib/utils/Env.js +2 -6
- package/lib/utils/File.js +0 -5
- package/lib/utils/Ids.js +0 -5
- package/lib/utils/Jupyter.js +0 -5
- package/lib/utils/Lazy.d.ts +1 -1
- package/lib/utils/Lazy.js +2 -8
- package/lib/utils/Name.js +10 -13
- package/lib/utils/Notebook.d.ts +1 -1
- package/lib/utils/Notebook.js +3 -3
- package/lib/utils/Number.js +13 -14
- package/lib/utils/Plots.d.ts +1 -1
- package/lib/utils/Plots.js +5 -5
- package/lib/utils/Random.js +0 -5
- package/lib/utils/Screenshot.js +1 -6
- package/lib/utils/Scroll.js +3 -7
- package/lib/utils/Sleep.js +1 -6
- package/lib/utils/Snapshot.js +2 -7
- package/lib/utils/String.js +2 -7
- package/lib/utils/Uri.js +2 -7
- package/lib/utils/Validator.js +0 -5
- package/lib/utils/WithSuspense.js +3 -11
- package/lib/utils/index.js +0 -5
- package/package.json +96 -30
- package/style/animation/Animation.module.css +174 -0
- package/style/base.css +64 -0
- package/style/index.css +6 -0
- package/lib/__tests__/App.test.js +0 -17
- package/lib/api/runtimes/models.d.ts +0 -59
- package/lib/api/runtimes/models.js +0 -11
- package/lib/hooks/useRun.d.ts +0 -21
- package/lib/mocks/hooks/useRunMock.d.ts +0 -6
- /package/lib/api/{runtimes → jupyter}/exec/Python.d.ts +0 -0
- /package/lib/api/{runtimes → jupyter}/exec/Snippets.d.ts +0 -0
- /package/lib/api/{runtimes → jupyter}/exec/index.d.ts +0 -0
- /package/lib/{__tests__/App.test.d.ts → examples/main.d.ts} +0 -0
package/README.md
CHANGED
|
@@ -37,26 +37,44 @@ This package serves as the base foundation used by many other Datalayer packages
|
|
|
37
37
|
- **📸 Snapshot Management**: Create and manage compute snapshots of your runtimes for reproducible environments
|
|
38
38
|
- **🔒 Secrets Management**: Securely handle sensitive data and credentials in your workflows
|
|
39
39
|
- **🐍 Python SDK**: Programmatic access to Datalayer platform with context managers and clean resource management
|
|
40
|
+
- **🌐 TypeScript/React SDK**: React components and services for building Jupyter-based applications
|
|
40
41
|
- **💻 Command Line Interface**: CLI tools for managing runtimes, snapshots, and platform resources
|
|
41
42
|
- **🔧 Base Classes**: Core application classes and configuration inherited by other Datalayer projects
|
|
43
|
+
- **📓 Jupyter Integration**: ServiceManager and collaboration providers for notebook experiences
|
|
44
|
+
- **🧭 Universal Navigation**: Smart navigation hooks that auto-detect and work with React Router, Next.js, or native browser
|
|
42
45
|
|
|
43
46
|
## Installation
|
|
44
47
|
|
|
48
|
+
### Python SDK
|
|
49
|
+
|
|
45
50
|
Install Datalayer Core using pip:
|
|
46
51
|
|
|
47
52
|
```bash
|
|
48
53
|
pip install datalayer-core
|
|
49
54
|
```
|
|
50
55
|
|
|
51
|
-
|
|
56
|
+
### TypeScript/React SDK
|
|
57
|
+
|
|
58
|
+
Install as an npm package:
|
|
59
|
+
|
|
60
|
+
```bash
|
|
61
|
+
npm install @datalayer/core
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
### Development Installation
|
|
52
65
|
|
|
53
66
|
```bash
|
|
54
67
|
git clone https://github.com/datalayer/core.git
|
|
55
68
|
cd core
|
|
69
|
+
|
|
70
|
+
# Python development
|
|
56
71
|
pip install -e .[test]
|
|
72
|
+
|
|
73
|
+
# TypeScript development
|
|
74
|
+
npm install
|
|
57
75
|
```
|
|
58
76
|
|
|
59
|
-
## Quick Start
|
|
77
|
+
## Quick Start with Python
|
|
60
78
|
|
|
61
79
|
### 1. Authentication
|
|
62
80
|
|
|
@@ -114,6 +132,60 @@ datalayer runtime exec my-script.py --runtime <runtime-id>
|
|
|
114
132
|
datalayer snapshots create <pod-name> my-snapshot 'AI work!' False
|
|
115
133
|
```
|
|
116
134
|
|
|
135
|
+
## Examples
|
|
136
|
+
|
|
137
|
+
### Python Examples
|
|
138
|
+
|
|
139
|
+
For comprehensive Python usage examples, see the [`examples/`](https://github.com/datalayer/core/tree/main/examples) directory which includes:
|
|
140
|
+
|
|
141
|
+
- **FastAPI + scikit-learn**: Web application with ML models
|
|
142
|
+
- **Streamlit + scikit-learn**: Interactive data science apps
|
|
143
|
+
- **PyTorch GPU workloads**: High-performance computing examples
|
|
144
|
+
- **Decorator patterns**: Remote function execution with `@datalayer`
|
|
145
|
+
- **And more**: Complete examples with documentation and setup instructions
|
|
146
|
+
|
|
147
|
+
### TypeScript/React Examples
|
|
148
|
+
|
|
149
|
+
Run the interactive examples locally:
|
|
150
|
+
|
|
151
|
+
```bash
|
|
152
|
+
# Install dependencies
|
|
153
|
+
npm install
|
|
154
|
+
|
|
155
|
+
# Set your Datalayer API token in .env
|
|
156
|
+
echo "VITE_DATALAYER_API_TOKEN=your-token-here" > .env
|
|
157
|
+
|
|
158
|
+
# Start the examples server
|
|
159
|
+
npm run example
|
|
160
|
+
```
|
|
161
|
+
|
|
162
|
+
Available at http://localhost:3000/:
|
|
163
|
+
|
|
164
|
+
- **DatalayerNotebookExample**: Full integration with Datalayer services and collaboration
|
|
165
|
+
- **NotebookExample**: Basic Jupyter notebook in React
|
|
166
|
+
- **CellExample**: Individual code cell execution
|
|
167
|
+
- **ReactRouterAdvancedExample**: Comprehensive navigation demo with React Router integration
|
|
168
|
+
- **ReactRouterNavigationExample**: Basic navigation with route parameters
|
|
169
|
+
- **NativeNavigationExample**: Browser-native navigation fallback
|
|
170
|
+
|
|
171
|
+
### Next.js Application Example
|
|
172
|
+
|
|
173
|
+
A complete Next.js application demonstrating platform integration:
|
|
174
|
+
|
|
175
|
+
```bash
|
|
176
|
+
cd examples/nextjs-notebook
|
|
177
|
+
npm install
|
|
178
|
+
npm run dev
|
|
179
|
+
```
|
|
180
|
+
|
|
181
|
+
Features:
|
|
182
|
+
|
|
183
|
+
- Token authentication with Datalayer IAM
|
|
184
|
+
- Browse and create notebooks from your workspace
|
|
185
|
+
- Select compute environments for execution
|
|
186
|
+
- Interactive notebook viewer with real-time outputs
|
|
187
|
+
- Clean, responsive UI with GitHub Primer components
|
|
188
|
+
|
|
117
189
|
## Platform Integration
|
|
118
190
|
|
|
119
191
|
Datalayer adds AI capabilities and scalable compute runtimes to your development workflows. The platform is designed to seamlessly integrate into your existing processes and supercharge your computations with the processing power you need.
|
|
@@ -133,11 +205,61 @@ Key platform features accessible through this SDK and CLI:
|
|
|
133
205
|
|
|
134
206
|
## Development
|
|
135
207
|
|
|
208
|
+
### Building the Library
|
|
209
|
+
|
|
210
|
+
```bash
|
|
211
|
+
# Build TypeScript library
|
|
212
|
+
npm run build:lib
|
|
213
|
+
|
|
214
|
+
# Build Python package
|
|
215
|
+
python -m build
|
|
216
|
+
```
|
|
217
|
+
|
|
218
|
+
### Setup
|
|
219
|
+
|
|
220
|
+
```bash
|
|
221
|
+
# Install Python dependencies
|
|
222
|
+
pip install -e .[test]
|
|
223
|
+
|
|
224
|
+
# Install TypeScript dependencies
|
|
225
|
+
npm install
|
|
226
|
+
```
|
|
227
|
+
|
|
228
|
+
### Code Quality
|
|
229
|
+
|
|
230
|
+
This project maintains high code quality standards with automated linting, formatting, and type checking:
|
|
231
|
+
|
|
232
|
+
```bash
|
|
233
|
+
# Run all checks (format, lint, type-check)
|
|
234
|
+
npm run check
|
|
235
|
+
|
|
236
|
+
# Auto-fix all issues
|
|
237
|
+
npm run check:fix
|
|
238
|
+
|
|
239
|
+
# Individual commands
|
|
240
|
+
npm run lint # ESLint with React/TypeScript rules
|
|
241
|
+
npm run lint:fix # Auto-fix linting issues
|
|
242
|
+
npm run format # Prettier formatting
|
|
243
|
+
npm run format:check # Check formatting without changes
|
|
244
|
+
npm run type-check # TypeScript compilation check
|
|
245
|
+
```
|
|
246
|
+
|
|
247
|
+
Pre-commit hooks automatically run formatting and linting on staged files via Husky and lint-staged.
|
|
248
|
+
|
|
136
249
|
### Running Tests
|
|
137
250
|
|
|
138
251
|
```bash
|
|
252
|
+
# Python tests
|
|
139
253
|
pip install -e .[test]
|
|
140
254
|
pytest datalayer_core/tests/
|
|
255
|
+
|
|
256
|
+
# TypeScript tests
|
|
257
|
+
npm run test
|
|
258
|
+
|
|
259
|
+
# TypeScript type checking
|
|
260
|
+
npm run type-check
|
|
261
|
+
npm run test:watch # Watch mode
|
|
262
|
+
npm run test:coverage # With coverage
|
|
141
263
|
```
|
|
142
264
|
|
|
143
265
|
### Contributing
|
package/lib/App.css
ADDED
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright (c) 2023-2025 Datalayer, Inc.
|
|
3
|
+
* Distributed under the terms of the Modified BSD License.
|
|
4
|
+
*/
|
|
5
|
+
|
|
6
|
+
#root {
|
|
7
|
+
max-width: 1280px;
|
|
8
|
+
margin: 0 auto;
|
|
9
|
+
padding: 2rem;
|
|
10
|
+
/* text-align: center; */
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
.logo {
|
|
14
|
+
height: 6em;
|
|
15
|
+
padding: 1.5em;
|
|
16
|
+
will-change: filter;
|
|
17
|
+
transition: filter 300ms;
|
|
18
|
+
}
|
|
19
|
+
.logo:hover {
|
|
20
|
+
filter: drop-shadow(0 0 2em #646cffaa);
|
|
21
|
+
}
|
|
22
|
+
.logo.react:hover {
|
|
23
|
+
filter: drop-shadow(0 0 2em #61dafbaa);
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
@keyframes logo-spin {
|
|
27
|
+
from {
|
|
28
|
+
transform: rotate(0deg);
|
|
29
|
+
}
|
|
30
|
+
to {
|
|
31
|
+
transform: rotate(360deg);
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
@media (prefers-reduced-motion: no-preference) {
|
|
36
|
+
a:nth-of-type(2) .logo {
|
|
37
|
+
animation: logo-spin infinite 20s linear;
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
.card {
|
|
42
|
+
padding: 2em;
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
.read-the-docs {
|
|
46
|
+
color: #888;
|
|
47
|
+
}
|
package/lib/App.js
CHANGED
|
@@ -3,12 +3,24 @@ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-run
|
|
|
3
3
|
* Copyright (c) 2023-2025 Datalayer, Inc.
|
|
4
4
|
* Distributed under the terms of the Modified BSD License.
|
|
5
5
|
*/
|
|
6
|
+
/*
|
|
7
|
+
* Copyright (c) 2021-2023 Datalayer, Inc.
|
|
8
|
+
*
|
|
9
|
+
* MIT License
|
|
10
|
+
*/
|
|
6
11
|
import { useState } from 'react';
|
|
7
12
|
import reactLogo from './assets/react.svg';
|
|
8
|
-
import
|
|
13
|
+
import { useJupyter, JupyterReactTheme } from '@datalayer/jupyter-react';
|
|
14
|
+
import { CellExample } from './examples/CellExample';
|
|
15
|
+
import { NotebookExample } from './examples/NotebookExample';
|
|
9
16
|
import './App.css';
|
|
10
17
|
export function App() {
|
|
18
|
+
const { serviceManager } = useJupyter({
|
|
19
|
+
jupyterServerUrl: 'https://oss.datalayer.run/api/jupyter-server',
|
|
20
|
+
jupyterServerToken: '60c1661cc408f978c309d04157af55c9588ff9557c9380e4fb50785750703da6',
|
|
21
|
+
startDefaultKernel: true,
|
|
22
|
+
});
|
|
11
23
|
const [count, setCount] = useState(0);
|
|
12
|
-
return (_jsxs(_Fragment, { children: [_jsxs("div", { children: [_jsx("a", { href: "https://
|
|
24
|
+
return (_jsxs("div", { className: "App", children: [_jsx(_Fragment, { children: _jsxs(JupyterReactTheme, { children: [serviceManager && _jsx(CellExample, { serviceManager: serviceManager }), serviceManager && (_jsx(NotebookExample, { serviceManager: serviceManager }))] }) }), _jsxs("div", { children: [_jsx("a", { href: "https://reactjs.org", target: "_blank", rel: "noreferrer", children: _jsx("img", { src: reactLogo, className: "logo react", alt: "React logo" }) }), _jsx("a", { href: "https://vitejs.dev", target: "_blank", rel: "noreferrer", children: _jsx("img", { src: "/vite.svg", className: "logo", alt: "Vite logo" }) })] }), _jsx("h1", { children: "React + Vite" }), _jsx("h2", { children: "On CodeSandbox!" }), _jsxs("div", { className: "card", children: [_jsxs("button", { onClick: () => setCount(count => count + 1), children: ["count is ", count] }), _jsxs("p", { children: ["Edit ", _jsx("code", { children: "src/App.tsx" }), " and save to test HMR."] }), _jsx("p", { children: "Tip: you can use the inspector button next to address bar to click on components in the preview and open the code in the editor!" })] }), _jsx("p", { className: "read-the-docs", children: "Click on the Vite and React logos to learn more" })] }));
|
|
13
25
|
}
|
|
14
26
|
export default App;
|
|
@@ -5,22 +5,23 @@
|
|
|
5
5
|
import { describe, it, expect } from 'vitest';
|
|
6
6
|
import * as coreIndex from '../index';
|
|
7
7
|
describe('@datalayer/core - index', () => {
|
|
8
|
-
it('should export App', () => {
|
|
9
|
-
expect(coreIndex.App).toBeDefined();
|
|
10
|
-
expect(typeof coreIndex.App).toBe('function');
|
|
11
|
-
});
|
|
12
8
|
it('should export BackdropContext from hooks', () => {
|
|
13
9
|
expect(coreIndex.BackdropContext).toBeDefined();
|
|
14
|
-
expect(coreIndex.BackdropContext).
|
|
10
|
+
expect(coreIndex.BackdropContext).toHaveProperty('$$typeof');
|
|
11
|
+
expect(typeof coreIndex.BackdropContext).toBe('object');
|
|
15
12
|
});
|
|
16
13
|
it('should export utils functions', () => {
|
|
17
14
|
expect(coreIndex.convertToLargestUnit).toBeDefined();
|
|
18
15
|
expect(coreIndex.asArray).toBeDefined();
|
|
19
16
|
});
|
|
17
|
+
it('should export DatalayerServiceManager from services', () => {
|
|
18
|
+
expect(coreIndex.createDatalayerServiceManager).toBeDefined();
|
|
19
|
+
expect(typeof coreIndex.createDatalayerServiceManager).toBe('function');
|
|
20
|
+
});
|
|
20
21
|
it('should have all expected exports', () => {
|
|
21
22
|
const exports = Object.keys(coreIndex);
|
|
22
|
-
expect(exports).toContain('App');
|
|
23
23
|
expect(exports).toContain('convertToLargestUnit');
|
|
24
24
|
expect(exports).toContain('asArray');
|
|
25
|
+
expect(exports).toContain('createDatalayerServiceManager');
|
|
25
26
|
});
|
|
26
27
|
});
|
|
@@ -3,8 +3,8 @@
|
|
|
3
3
|
*/
|
|
4
4
|
export declare class RunResponseError extends Error {
|
|
5
5
|
/**
|
|
6
|
-
* Create a RunResponseError from a response,
|
|
7
|
-
* as appropriate.
|
|
6
|
+
* Create a RunResponseError from a response,
|
|
7
|
+
* handling the traceback and message as appropriate.
|
|
8
8
|
*
|
|
9
9
|
* @param response The response object.
|
|
10
10
|
*
|
|
@@ -46,7 +46,7 @@ export declare class NetworkError extends TypeError {
|
|
|
46
46
|
*/
|
|
47
47
|
constructor(original: TypeError);
|
|
48
48
|
}
|
|
49
|
-
export interface
|
|
49
|
+
export interface IRequestDatalayerAPIOptions {
|
|
50
50
|
/**
|
|
51
51
|
* URL to request
|
|
52
52
|
*/
|
|
@@ -72,4 +72,4 @@ export interface IRequestRunAPIOptions {
|
|
|
72
72
|
*/
|
|
73
73
|
signal?: AbortSignal;
|
|
74
74
|
}
|
|
75
|
-
export declare function
|
|
75
|
+
export declare function requestDatalayerAPI<T = any>({ url, method, body, token, signal, headers, }: IRequestDatalayerAPIOptions): Promise<T>;
|
|
@@ -2,11 +2,6 @@
|
|
|
2
2
|
* Copyright (c) 2023-2025 Datalayer, Inc.
|
|
3
3
|
* Distributed under the terms of the Modified BSD License.
|
|
4
4
|
*/
|
|
5
|
-
/*
|
|
6
|
-
* Copyright (c) 2021-2024 Datalayer, Inc.
|
|
7
|
-
*
|
|
8
|
-
* Datalayer License
|
|
9
|
-
*/
|
|
10
5
|
import { URLExt } from '@jupyterlab/coreutils';
|
|
11
6
|
import { sleep } from '../utils';
|
|
12
7
|
/**
|
|
@@ -14,8 +9,8 @@ import { sleep } from '../utils';
|
|
|
14
9
|
*/
|
|
15
10
|
export class RunResponseError extends Error {
|
|
16
11
|
/**
|
|
17
|
-
* Create a RunResponseError from a response,
|
|
18
|
-
* as appropriate.
|
|
12
|
+
* Create a RunResponseError from a response,
|
|
13
|
+
* handling the traceback and message as appropriate.
|
|
19
14
|
*
|
|
20
15
|
* @param response The response object.
|
|
21
16
|
*
|
|
@@ -85,7 +80,7 @@ export class NetworkError extends TypeError {
|
|
|
85
80
|
this.stack = original.stack;
|
|
86
81
|
}
|
|
87
82
|
}
|
|
88
|
-
export async function
|
|
83
|
+
export async function requestDatalayerAPI({ url, method, body, token, signal, headers = {}, }) {
|
|
89
84
|
const headers_ = new Headers(headers);
|
|
90
85
|
if (!headers_.has('Accept')) {
|
|
91
86
|
headers_.set('Accept', 'application/json');
|
|
@@ -103,11 +98,11 @@ export async function requestRunAPI({ url, method, body, token, signal, headers
|
|
|
103
98
|
method: method ?? 'GET',
|
|
104
99
|
headers: headers_,
|
|
105
100
|
body: body ? JSON.stringify(body) : undefined,
|
|
106
|
-
//
|
|
101
|
+
// credentials: token ? 'include' : 'omit',
|
|
107
102
|
credentials: 'include',
|
|
108
103
|
mode: 'cors',
|
|
109
104
|
cache: 'no-store',
|
|
110
|
-
signal
|
|
105
|
+
signal,
|
|
111
106
|
});
|
|
112
107
|
}
|
|
113
108
|
catch (error) {
|
|
@@ -140,7 +135,7 @@ async function wait_for_redirection(response, url, headers_) {
|
|
|
140
135
|
headers: headers_,
|
|
141
136
|
credentials: 'include',
|
|
142
137
|
mode: 'cors',
|
|
143
|
-
cache: 'no-store'
|
|
138
|
+
cache: 'no-store',
|
|
144
139
|
});
|
|
145
140
|
if (!response.ok) {
|
|
146
141
|
throw await RunResponseError.create(response);
|
package/lib/api/index.d.ts
CHANGED
|
@@ -1,2 +1,3 @@
|
|
|
1
|
-
export * from
|
|
2
|
-
export * from
|
|
1
|
+
export * from './jupyter';
|
|
2
|
+
export * from './runtimes';
|
|
3
|
+
export * from './DatalayerApi';
|
package/lib/api/index.js
CHANGED
|
@@ -2,10 +2,6 @@
|
|
|
2
2
|
* Copyright (c) 2023-2025 Datalayer, Inc.
|
|
3
3
|
* Distributed under the terms of the Modified BSD License.
|
|
4
4
|
*/
|
|
5
|
-
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
* Datalayer License
|
|
9
|
-
*/
|
|
10
|
-
export * from "./runtimes";
|
|
11
|
-
export * from "./RunApi";
|
|
5
|
+
export * from './jupyter';
|
|
6
|
+
export * from './runtimes';
|
|
7
|
+
export * from './DatalayerApi';
|
|
@@ -2,11 +2,6 @@
|
|
|
2
2
|
* Copyright (c) 2023-2025 Datalayer, Inc.
|
|
3
3
|
* Distributed under the terms of the Modified BSD License.
|
|
4
4
|
*/
|
|
5
|
-
/*
|
|
6
|
-
* Copyright (c) 2021-2024 Datalayer, Inc.
|
|
7
|
-
*
|
|
8
|
-
* Datalayer License
|
|
9
|
-
*/
|
|
10
5
|
export function listVariables() {
|
|
11
6
|
return `
|
|
12
7
|
def _list_variables():
|
|
@@ -2,11 +2,6 @@
|
|
|
2
2
|
* Copyright (c) 2023-2025 Datalayer, Inc.
|
|
3
3
|
* Distributed under the terms of the Modified BSD License.
|
|
4
4
|
*/
|
|
5
|
-
/*
|
|
6
|
-
* Copyright (c) 2021-2024 Datalayer, Inc.
|
|
7
|
-
*
|
|
8
|
-
* Datalayer License
|
|
9
|
-
*/
|
|
10
5
|
import * as Python from './Python';
|
|
11
6
|
/**
|
|
12
7
|
* Facade to interact with kernels by requesting code execution.
|
|
@@ -2,15 +2,10 @@
|
|
|
2
2
|
* Copyright (c) 2023-2025 Datalayer, Inc.
|
|
3
3
|
* Distributed under the terms of the Modified BSD License.
|
|
4
4
|
*/
|
|
5
|
-
/*
|
|
6
|
-
* Copyright (c) 2021-2024 Datalayer, Inc.
|
|
7
|
-
*
|
|
8
|
-
* Datalayer License
|
|
9
|
-
*/
|
|
10
5
|
import { URLExt } from '@jupyterlab/coreutils';
|
|
11
6
|
import { ServerConnection } from '@jupyterlab/services';
|
|
12
7
|
/**
|
|
13
|
-
* Call the
|
|
8
|
+
* Call the jupyter_kernels extension
|
|
14
9
|
*
|
|
15
10
|
* @param endPoint API REST end point for the extension
|
|
16
11
|
* @param init Initial values for the request
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
import { IRuntimeOptions } from '..';
|
|
2
|
+
import type { IRuntimeSnapshot, IDatalayerEnvironment, IRuntimePod } from '../../models';
|
|
3
|
+
/**
|
|
4
|
+
* Get available Environments.
|
|
5
|
+
*/
|
|
6
|
+
export declare function getEnvironments(): Promise<IDatalayerEnvironment[]>;
|
|
7
|
+
/**
|
|
8
|
+
* Create a Runtime.
|
|
9
|
+
*/
|
|
10
|
+
export declare function createRuntime(options: IRuntimeOptions): Promise<IRuntimePod>;
|
|
11
|
+
/**
|
|
12
|
+
* Get the Runtimes.
|
|
13
|
+
*/
|
|
14
|
+
export declare function getRuntimes(): Promise<IRuntimePod[]>;
|
|
15
|
+
/**
|
|
16
|
+
* Delete a Runtime
|
|
17
|
+
*/
|
|
18
|
+
export declare function deleteRuntime(options: {
|
|
19
|
+
/**
|
|
20
|
+
* Runtime ID
|
|
21
|
+
*/
|
|
22
|
+
id: string;
|
|
23
|
+
/**
|
|
24
|
+
* Deletion reason
|
|
25
|
+
*/
|
|
26
|
+
reason?: string;
|
|
27
|
+
}): Promise<void>;
|
|
28
|
+
/**
|
|
29
|
+
* Snapshot a Runtime.
|
|
30
|
+
*/
|
|
31
|
+
export declare function snapshotRuntime(options: {
|
|
32
|
+
/**
|
|
33
|
+
* Runtime ID.
|
|
34
|
+
*/
|
|
35
|
+
id: string;
|
|
36
|
+
/**
|
|
37
|
+
* Snapshot name.
|
|
38
|
+
*/
|
|
39
|
+
name?: string;
|
|
40
|
+
/**
|
|
41
|
+
* Snapshot description.
|
|
42
|
+
*/
|
|
43
|
+
description?: string;
|
|
44
|
+
/**
|
|
45
|
+
* Whether to stop the kernel after the snapshot completion or not.
|
|
46
|
+
*/
|
|
47
|
+
stop?: boolean;
|
|
48
|
+
}): Promise<IRuntimeSnapshot>;
|
|
49
|
+
/**
|
|
50
|
+
* Get Runtime Snapshots.
|
|
51
|
+
*/
|
|
52
|
+
export declare function getRuntimeSnapshots(): Promise<IRuntimeSnapshot[]>;
|
|
53
|
+
/**
|
|
54
|
+
* Load a Runtime Snapshot within a kernel.
|
|
55
|
+
*/
|
|
56
|
+
export declare function loadRuntimeSnapshot(options: {
|
|
57
|
+
/**
|
|
58
|
+
* Runtime ID
|
|
59
|
+
*/
|
|
60
|
+
id: string;
|
|
61
|
+
/**
|
|
62
|
+
* Snapshot UID
|
|
63
|
+
*/
|
|
64
|
+
from: string;
|
|
65
|
+
}): Promise<void>;
|
|
66
|
+
/**
|
|
67
|
+
* Returns the Runtime Snapshot download URL.
|
|
68
|
+
*
|
|
69
|
+
* @param id Snapshot UID to download
|
|
70
|
+
* @returns The download URL
|
|
71
|
+
*/
|
|
72
|
+
export declare function createRuntimeSnapshotDownloadURL(id: string): string;
|
|
73
|
+
/**
|
|
74
|
+
* Export a Runtime Snapshot.
|
|
75
|
+
*
|
|
76
|
+
* @param id Runtime snapshot UID to download
|
|
77
|
+
*/
|
|
78
|
+
export declare function exportRuntimeSnapshot(id: string): void;
|
|
79
|
+
/**
|
|
80
|
+
* Delete a Runtime Snapshot.
|
|
81
|
+
*/
|
|
82
|
+
export declare function deleteRuntimeSnapshot(id: string): Promise<void>;
|
|
83
|
+
/**
|
|
84
|
+
* Update Runtime Snapshot metadata.
|
|
85
|
+
*/
|
|
86
|
+
export declare function updateRuntimeSnapshot(id: string, metadata: {
|
|
87
|
+
name?: string;
|
|
88
|
+
description?: string;
|
|
89
|
+
}): Promise<void>;
|
|
90
|
+
/**
|
|
91
|
+
* Upload a Runtime Snapshot.
|
|
92
|
+
*
|
|
93
|
+
* Note: The promise will be rejected if the runtime state is empty.
|
|
94
|
+
*/
|
|
95
|
+
export declare function uploadRuntimeSnapshot(options: {
|
|
96
|
+
file: File | Blob;
|
|
97
|
+
metadata: {
|
|
98
|
+
filename: string;
|
|
99
|
+
[key: string]: string;
|
|
100
|
+
};
|
|
101
|
+
onProgress?: (bytesUploaded: number, bytesTotal: number) => void;
|
|
102
|
+
}): Promise<void>;
|