@datalayer/core 0.0.1 → 0.0.2
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 +176 -7
- package/lib/App.d.ts +3 -0
- package/lib/App.js +4 -0
- 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 +26 -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/RunApi.d.ts +75 -0
- package/lib/api/RunApi.js +150 -0
- package/lib/api/index.d.ts +2 -0
- package/lib/api/index.js +11 -0
- package/lib/api/runtimes/exec/Python.d.ts +5 -0
- package/lib/api/runtimes/exec/Python.js +105 -0
- package/lib/api/runtimes/exec/Snippets.d.ts +145 -0
- package/lib/api/runtimes/exec/Snippets.js +125 -0
- package/lib/api/runtimes/exec/index.d.ts +2 -0
- package/lib/api/runtimes/exec/index.js +11 -0
- package/lib/api/runtimes/index.d.ts +7 -0
- package/lib/api/runtimes/index.js +16 -0
- package/lib/api/runtimes/kernelsHandler.d.ts +8 -0
- package/lib/api/runtimes/kernelsHandler.js +44 -0
- package/lib/api/runtimes/models.d.ts +59 -0
- package/lib/api/runtimes/models.js +11 -0
- package/lib/api/runtimes/runtimesApi.d.ts +370 -0
- package/lib/api/runtimes/runtimesApi.js +269 -0
- package/lib/api/runtimes/settings.d.ts +15 -0
- package/lib/api/runtimes/settings.js +36 -0
- package/lib/api/runtimes/snapshots.d.ts +25 -0
- package/lib/api/runtimes/snapshots.js +155 -0
- package/lib/api/runtimes/utils.d.ts +7 -0
- package/lib/api/runtimes/utils.js +22 -0
- package/lib/components/avatars/BoringAvatar.d.ts +20 -0
- package/lib/components/avatars/BoringAvatar.js +39 -0
- package/lib/components/avatars/UserProfileAvatar.d.ts +13 -0
- package/lib/components/avatars/UserProfileAvatar.js +37 -0
- package/lib/components/avatars/index.d.ts +2 -0
- package/lib/components/avatars/index.js +11 -0
- package/lib/components/banners/NoAutomationBanner.d.ts +2 -0
- package/lib/components/banners/NoAutomationBanner.js +18 -0
- package/lib/components/banners/index.d.ts +1 -0
- package/lib/components/banners/index.js +10 -0
- package/lib/components/buttons/DownloadCSVButton.d.ts +13 -0
- package/lib/components/buttons/DownloadCSVButton.js +21 -0
- package/lib/components/buttons/DownloadJsonButton.d.ts +16 -0
- package/lib/components/buttons/DownloadJsonButton.js +23 -0
- package/lib/components/buttons/LongActionButton.d.ts +28 -0
- package/lib/components/buttons/LongActionButton.js +29 -0
- package/lib/components/buttons/UploadButton.d.ts +37 -0
- package/lib/components/buttons/UploadButton.js +48 -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 +14 -0
- package/lib/components/checkout/StripeCheckout.d.ts +32 -0
- package/lib/components/checkout/StripeCheckout.js +100 -0
- package/lib/components/checkout/index.d.ts +1 -0
- package/lib/components/checkout/index.js +10 -0
- package/lib/components/confetti/ConfettiSuccess.d.ts +2 -0
- package/lib/components/confetti/ConfettiSuccess.js +17 -0
- package/lib/components/confetti/index.d.ts +1 -0
- package/lib/components/confetti/index.js +10 -0
- package/lib/components/context/OrganizationSelect.d.ts +2 -0
- package/lib/components/context/OrganizationSelect.js +40 -0
- package/lib/components/context/SpaceSelect.d.ts +2 -0
- package/lib/components/context/SpaceSelect.js +48 -0
- package/lib/components/context/index.d.ts +2 -0
- package/lib/components/context/index.js +11 -0
- package/lib/components/display/AvatarSkeleton.d.ts +5 -0
- package/lib/components/display/AvatarSkeleton.js +16 -0
- package/lib/components/display/CenteredSpinner.d.ts +14 -0
- package/lib/components/display/CenteredSpinner.js +25 -0
- package/lib/components/display/CodePreview.d.ts +4 -0
- package/lib/components/display/CodePreview.js +20 -0
- package/lib/components/display/DatalayerBox.d.ts +8 -0
- package/lib/components/display/DatalayerBox.js +33 -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 +120 -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 +22 -0
- package/lib/components/display/NotebookSkeleton.d.ts +2 -0
- package/lib/components/display/NotebookSkeleton.js +16 -0
- package/lib/components/display/Placeholder.d.ts +2 -0
- package/lib/components/display/Placeholder.js +14 -0
- package/lib/components/display/ToTopBranded.d.ts +2 -0
- package/lib/components/display/ToTopBranded.js +16 -0
- package/lib/components/display/VisuallyHidden.d.ts +5 -0
- package/lib/components/display/VisuallyHidden.js +29 -0
- package/lib/components/display/index.d.ts +12 -0
- package/lib/components/display/index.js +21 -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 +10 -0
- package/lib/components/flashes/FlashClosable.d.ts +22 -0
- package/lib/components/flashes/FlashClosable.js +69 -0
- package/lib/components/flashes/FlashDisclaimer.d.ts +2 -0
- package/lib/components/flashes/FlashDisclaimer.js +23 -0
- package/lib/components/flashes/FlashGuest.d.ts +2 -0
- package/lib/components/flashes/FlashGuest.js +35 -0
- package/lib/components/flashes/FlashSurveys.d.ts +6 -0
- package/lib/components/flashes/FlashSurveys.js +41 -0
- package/lib/components/flashes/FlashUnauthorized.d.ts +2 -0
- package/lib/components/flashes/FlashUnauthorized.js +23 -0
- package/lib/components/flashes/index.d.ts +6 -0
- package/lib/components/flashes/index.js +15 -0
- package/lib/components/flashes/surveys/Survey2025_1.d.ts +3 -0
- package/lib/components/flashes/surveys/Survey2025_1.js +134 -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 +11 -0
- package/lib/components/iam/ExternalTokenSilentLogin.d.ts +5 -0
- package/lib/components/iam/ExternalTokenSilentLogin.js +38 -0
- package/lib/components/iam/index.d.ts +1 -0
- package/lib/components/iam/index.js +10 -0
- package/lib/components/icons/ArtifactIcon.d.ts +10 -0
- package/lib/components/icons/ArtifactIcon.js +63 -0
- package/lib/components/icons/index.d.ts +1 -0
- package/lib/components/icons/index.js +10 -0
- package/lib/components/index.d.ts +1 -0
- package/lib/components/index.js +10 -0
- package/lib/components/labels/VisibilityLabel.d.ts +4 -0
- package/lib/components/labels/VisibilityLabel.js +22 -0
- package/lib/components/labels/index.d.ts +1 -0
- package/lib/components/labels/index.js +10 -0
- package/lib/components/landings/StepBlock.d.ts +11 -0
- package/lib/components/landings/StepBlock.js +17 -0
- package/lib/components/landings/index.d.ts +1 -0
- package/lib/components/landings/index.js +10 -0
- package/lib/components/navbar/NavigationVisbilityObserver.d.ts +5 -0
- package/lib/components/navbar/NavigationVisbilityObserver.js +63 -0
- package/lib/components/navbar/SubdomainNavBar.d.ts +81 -0
- package/lib/components/navbar/SubdomainNavBar.js +240 -0
- package/lib/components/navbar/index.d.ts +2 -0
- package/lib/components/navbar/index.js +11 -0
- package/lib/components/nbgrader/NbGradesDetails.d.ts +5 -0
- package/lib/components/nbgrader/NbGradesDetails.js +22 -0
- package/lib/components/nbgrader/index.d.ts +1 -0
- package/lib/components/nbgrader/index.js +10 -0
- package/lib/components/notebooks/JupyterNotebook.d.ts +12 -0
- package/lib/components/notebooks/JupyterNotebook.js +41 -0
- package/lib/components/notebooks/JupyterNotebookToolbar.d.ts +2 -0
- package/lib/components/notebooks/JupyterNotebookToolbar.js +44 -0
- package/lib/components/notebooks/index.d.ts +2 -0
- package/lib/components/notebooks/index.js +11 -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 +31 -0
- package/lib/components/primer/Styles.d.ts +2 -0
- package/lib/components/primer/Styles.js +16 -0
- package/lib/components/primer/index.d.ts +2 -0
- package/lib/components/primer/index.js +11 -0
- package/lib/components/progress/ConsumptionBar.d.ts +40 -0
- package/lib/components/progress/ConsumptionBar.js +54 -0
- package/lib/components/progress/CreditsIndicator.d.ts +27 -0
- package/lib/components/progress/CreditsIndicator.js +30 -0
- package/lib/components/progress/ProgressBar.d.ts +2 -0
- package/lib/components/progress/ProgressBar.js +26 -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 +33 -0
- package/lib/components/progress/index.d.ts +5 -0
- package/lib/components/progress/index.js +14 -0
- package/lib/components/runtimes/RuntimeCellVariables.d.ts +39 -0
- package/lib/components/runtimes/RuntimeCellVariables.js +177 -0
- package/lib/components/runtimes/RuntimeCellVariablesDialog.d.ts +37 -0
- package/lib/components/runtimes/RuntimeCellVariablesDialog.js +106 -0
- package/lib/components/runtimes/RuntimeLauncherDialog.d.ts +54 -0
- package/lib/components/runtimes/RuntimeLauncherDialog.js +254 -0
- package/lib/components/runtimes/RuntimePickerBase.d.ts +69 -0
- package/lib/components/runtimes/RuntimePickerBase.js +114 -0
- package/lib/components/runtimes/RuntimePickerCell.d.ts +34 -0
- package/lib/components/runtimes/RuntimePickerCell.js +111 -0
- package/lib/components/runtimes/RuntimePickerNotebook.d.ts +43 -0
- package/lib/components/runtimes/RuntimePickerNotebook.js +173 -0
- package/lib/components/runtimes/RuntimeReservationControl.d.ts +47 -0
- package/lib/components/runtimes/RuntimeReservationControl.js +43 -0
- package/lib/components/runtimes/RuntimeSimplePicker.d.ts +34 -0
- package/lib/components/runtimes/RuntimeSimplePicker.js +161 -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 +173 -0
- package/lib/components/runtimes/RuntimeVariables.d.ts +38 -0
- package/lib/components/runtimes/RuntimeVariables.js +80 -0
- package/lib/components/runtimes/index.d.ts +11 -0
- package/lib/components/runtimes/index.js +20 -0
- package/lib/components/screenshot/ScreenCapture.d.ts +38 -0
- package/lib/components/screenshot/ScreenCapture.js +179 -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 +11 -0
- package/lib/components/snapshots/RuntimeSnapshotMenu.d.ts +36 -0
- package/lib/components/snapshots/RuntimeSnapshotMenu.js +169 -0
- package/lib/components/snapshots/index.d.ts +1 -0
- package/lib/components/snapshots/index.js +10 -0
- package/lib/components/snippets/SnippetDialog.d.ts +42 -0
- package/lib/components/snippets/SnippetDialog.js +47 -0
- package/lib/components/snippets/index.d.ts +1 -0
- package/lib/components/snippets/index.js +10 -0
- package/lib/components/storage/ContentsBrowser.d.ts +32 -0
- package/lib/components/storage/ContentsBrowser.js +250 -0
- package/lib/components/storage/ContentsItems.d.ts +58 -0
- package/lib/components/storage/ContentsItems.js +83 -0
- package/lib/components/storage/index.d.ts +2 -0
- package/lib/components/storage/index.js +11 -0
- package/lib/components/students/StudentItemStatus.d.ts +7 -0
- package/lib/components/students/StudentItemStatus.js +49 -0
- package/lib/components/students/index.d.ts +1 -0
- package/lib/components/students/index.js +10 -0
- package/lib/components/subnav/SubNav.d.ts +84 -0
- package/lib/components/subnav/SubNav.js +270 -0
- package/lib/components/subnav/index.d.ts +1 -0
- package/lib/components/subnav/index.js +10 -0
- package/lib/components/tables/DataTable.d.ts +5 -0
- package/lib/components/tables/DataTable.js +24 -0
- package/lib/components/tables/index.d.ts +1 -0
- package/lib/components/tables/index.js +10 -0
- package/lib/components/text-reveal/TextRevealAnimation.d.ts +6 -0
- package/lib/components/text-reveal/TextRevealAnimation.js +55 -0
- package/lib/components/text-reveal/index.d.ts +1 -0
- package/lib/components/text-reveal/index.js +10 -0
- package/lib/components/text-reveal/useTextRevealAnimationLines.d.ts +4 -0
- package/lib/components/text-reveal/useTextRevealAnimationLines.js +52 -0
- package/lib/components/tokens/SpaceVariantToken.d.ts +5 -0
- package/lib/components/tokens/SpaceVariantToken.js +25 -0
- package/lib/components/tokens/index.d.ts +1 -0
- package/lib/components/tokens/index.js +10 -0
- package/lib/components/toolbars/AssignmentEditorToolbar.d.ts +4 -0
- package/lib/components/toolbars/AssignmentEditorToolbar.js +23 -0
- package/lib/components/toolbars/DocumentEditorToolbar.d.ts +2 -0
- package/lib/components/toolbars/DocumentEditorToolbar.js +17 -0
- package/lib/components/toolbars/NotebookEditorToolbar.d.ts +29 -0
- package/lib/components/toolbars/NotebookEditorToolbar.js +35 -0
- package/lib/components/toolbars/index.d.ts +3 -0
- package/lib/components/toolbars/index.js +12 -0
- package/lib/components/users/PeerIndicator.d.ts +18 -0
- package/lib/components/users/PeerIndicator.js +105 -0
- package/lib/components/users/index.d.ts +1 -0
- package/lib/components/users/index.js +10 -0
- package/lib/config/Configuration.d.ts +111 -0
- package/lib/config/Configuration.js +30 -0
- package/lib/config/index.d.ts +2 -0
- package/lib/config/index.js +11 -0
- package/lib/config/integrations/Loom.d.ts +1 -0
- package/lib/config/integrations/Loom.js +21 -0
- package/lib/config/integrations/index.d.ts +1 -0
- package/lib/config/integrations/index.js +10 -0
- package/lib/hooks/assets/OutputshotPlaceholders.d.ts +19 -0
- package/lib/hooks/assets/OutputshotPlaceholders.js +28 -0
- package/lib/hooks/assets/index.d.ts +1 -0
- package/lib/hooks/assets/index.js +10 -0
- package/lib/hooks/index.d.ts +28 -0
- package/lib/hooks/index.js +38 -0
- package/lib/hooks/layouts/LayoutBackdrop.d.ts +2 -0
- package/lib/hooks/layouts/LayoutBackdrop.js +35 -0
- package/lib/hooks/layouts/LayoutScreenshot.d.ts +2 -0
- package/lib/hooks/layouts/LayoutScreenshot.js +48 -0
- package/lib/hooks/layouts/index.d.ts +2 -0
- package/lib/hooks/layouts/index.js +11 -0
- package/lib/hooks/useAIAgents.d.ts +13 -0
- package/lib/hooks/useAIAgents.js +77 -0
- package/lib/hooks/useAuthorization.d.ts +19 -0
- package/lib/hooks/useAuthorization.js +130 -0
- package/lib/hooks/useBackdrop.d.ts +28 -0
- package/lib/hooks/useBackdrop.js +105 -0
- package/lib/hooks/useBackdropJupyterLab.d.ts +15 -0
- package/lib/hooks/useBackdropJupyterLab.js +56 -0
- package/lib/hooks/useCache.d.ts +306 -0
- package/lib/hooks/useCache.js +3103 -0
- package/lib/hooks/useCellOutputshot.d.ts +4 -0
- package/lib/hooks/useCellOutputshot.js +33 -0
- package/lib/hooks/useContainsFocus.d.ts +9 -0
- package/lib/hooks/useContainsFocus.js +48 -0
- package/lib/hooks/useError.d.ts +9 -0
- package/lib/hooks/useError.js +31 -0
- package/lib/hooks/useExternalScript.d.ts +2 -0
- package/lib/hooks/useExternalScript.js +22 -0
- package/lib/hooks/useFocusTrap.d.ts +30 -0
- package/lib/hooks/useFocusTrap.js +53 -0
- package/lib/hooks/useIAM.d.ts +14 -0
- package/lib/hooks/useIAM.js +98 -0
- package/lib/hooks/useId.d.ts +19 -0
- package/lib/hooks/useId.js +105 -0
- package/lib/hooks/useIsomorphicLayoutEffect.d.ts +3 -0
- package/lib/hooks/useIsomorphicLayoutEffect.js +16 -0
- package/lib/hooks/useJupyterLabTheme.d.ts +6 -0
- package/lib/hooks/useJupyterLabTheme.js +29 -0
- package/lib/hooks/useKeyboardEscape.d.ts +1 -0
- package/lib/hooks/useKeyboardEscape.js +23 -0
- package/lib/hooks/useLocationHandles.d.ts +10 -0
- package/lib/hooks/useLocationHandles.js +27 -0
- package/lib/hooks/useNavigate.d.ts +2 -0
- package/lib/hooks/useNavigate.js +29 -0
- package/lib/hooks/useNotebookAIAgent.d.ts +8 -0
- package/lib/hooks/useNotebookAIAgent.js +59 -0
- package/lib/hooks/useOnClickOutside.d.ts +1 -0
- package/lib/hooks/useOnClickOutside.js +34 -0
- package/lib/hooks/useRef.d.ts +10 -0
- package/lib/hooks/useRef.js +22 -0
- package/lib/hooks/useRun.d.ts +21 -0
- package/lib/hooks/useRun.js +85 -0
- package/lib/hooks/useRuntimes.d.ts +5 -0
- package/lib/hooks/useRuntimes.js +39 -0
- package/lib/hooks/useScreenshot.d.ts +21 -0
- package/lib/hooks/useScreenshot.js +65 -0
- package/lib/hooks/useToast.d.ts +42 -0
- package/lib/hooks/useToast.js +143 -0
- package/lib/hooks/useUpload.d.ts +7 -0
- package/lib/hooks/useUpload.js +51 -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 +47 -0
- package/lib/hooks/useWindowSize.d.ts +21 -0
- package/lib/hooks/useWindowSize.js +80 -0
- package/lib/i18n/Labels.d.ts +1 -0
- package/lib/i18n/Labels.js +10 -0
- package/lib/i18n/index.d.ts +1 -0
- package/lib/i18n/index.js +10 -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 +4 -0
- package/lib/mocks/components/FlashMock.d.ts +2 -0
- package/lib/mocks/components/FlashMock.js +18 -0
- package/lib/mocks/components/index.d.ts +1 -0
- package/lib/mocks/components/index.js +10 -0
- package/lib/mocks/hooks/index.d.ts +1 -0
- package/lib/mocks/hooks/index.js +10 -0
- package/lib/mocks/hooks/rests/index.d.ts +1 -0
- package/lib/mocks/hooks/rests/index.js +10 -0
- package/lib/mocks/hooks/rests/rests.d.ts +22 -0
- package/lib/mocks/hooks/rests/rests.js +37 -0
- package/lib/mocks/hooks/useRunMock.d.ts +6 -0
- package/lib/mocks/hooks/useRunMock.js +83 -0
- package/lib/mocks/index.d.ts +4 -0
- package/lib/mocks/index.js +14 -0
- package/lib/mocks/jupyter/index.d.ts +1 -0
- package/lib/mocks/jupyter/index.js +10 -0
- package/lib/mocks/models/CodeBlockMock.d.ts +1 -0
- package/lib/mocks/models/CodeBlockMock.js +10 -0
- package/lib/mocks/models/CodelineMock.d.ts +1 -0
- package/lib/mocks/models/CodelineMock.js +10 -0
- package/lib/mocks/models/CourseMock.d.ts +6 -0
- package/lib/mocks/models/CourseMock.js +34 -0
- package/lib/mocks/models/InviteMock.d.ts +6 -0
- package/lib/mocks/models/InviteMock.js +27 -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 +30 -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 +34 -0
- package/lib/mocks/models/index.d.ts +9 -0
- package/lib/mocks/models/index.js +18 -0
- package/lib/mocks/views/ActionMenuMock.d.ts +5 -0
- package/lib/mocks/views/ActionMenuMock.js +17 -0
- package/lib/mocks/views/ChartMock.d.ts +5 -0
- package/lib/mocks/views/ChartMock.js +20 -0
- package/lib/mocks/views/ChartMockOptions.d.ts +92 -0
- package/lib/mocks/views/ChartMockOptions.js +107 -0
- package/lib/mocks/views/DashboardMock.d.ts +2 -0
- package/lib/mocks/views/DashboardMock.js +123 -0
- package/lib/mocks/views/FormMock.d.ts +5 -0
- package/lib/mocks/views/FormMock.js +33 -0
- package/lib/mocks/views/TableMock.d.ts +5 -0
- package/lib/mocks/views/TableMock.js +160 -0
- package/lib/mocks/views/WipMock.d.ts +5 -0
- package/lib/mocks/views/WipMock.js +17 -0
- package/lib/mocks/views/index.d.ts +7 -0
- package/lib/mocks/views/index.js +16 -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 +95 -0
- package/lib/models/ContactEvent.d.ts +10 -0
- package/lib/models/ContactEvent.js +19 -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 +16 -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 +19 -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 +18 -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 +14 -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 +34 -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 +19 -0
- package/lib/models/Inbound.d.ts +25 -0
- package/lib/models/Inbound.js +34 -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 +32 -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 +41 -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 +50 -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 +63 -0
- package/lib/models/RolesPlatform.d.ts +16 -0
- package/lib/models/RolesPlatform.js +147 -0
- package/lib/models/RolesTeam.d.ts +7 -0
- package/lib/models/RolesTeam.js +39 -0
- package/lib/models/Runtime.d.ts +65 -0
- package/lib/models/Runtime.js +16 -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 +18 -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 +19 -0
- package/lib/models/Team.d.ts +22 -0
- package/lib/models/Team.js +37 -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 +45 -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 +103 -0
- package/lib/models/UserEvent.d.ts +10 -0
- package/lib/models/UserEvent.js +19 -0
- package/lib/models/UserOnboarding.d.ts +14 -0
- package/lib/models/UserOnboarding.js +24 -0
- package/lib/models/UserSettings.d.ts +16 -0
- package/lib/models/UserSettings.js +32 -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 +74 -0
- package/lib/routes/Routes.d.ts +3 -0
- package/lib/routes/Routes.js +12 -0
- package/lib/routes/index.d.ts +1 -0
- package/lib/routes/index.js +10 -0
- package/lib/state/State.d.ts +33 -0
- package/lib/state/State.js +49 -0
- package/lib/state/index.d.ts +3 -0
- package/lib/state/index.js +12 -0
- package/lib/state/storage/IAMStorage.d.ts +33 -0
- package/lib/state/storage/IAMStorage.js +81 -0
- package/lib/state/storage/index.d.ts +1 -0
- package/lib/state/storage/index.js +10 -0
- package/lib/state/substates/AIAgentState.d.ts +11 -0
- package/lib/state/substates/AIAgentState.js +45 -0
- package/lib/state/substates/CellState.d.ts +12 -0
- package/lib/state/substates/CellState.js +26 -0
- package/lib/state/substates/CoreState.d.ts +25 -0
- package/lib/state/substates/CoreState.js +93 -0
- package/lib/state/substates/DatasourceState.d.ts +11 -0
- package/lib/state/substates/DatasourceState.js +21 -0
- package/lib/state/substates/DocumentState.d.ts +10 -0
- package/lib/state/substates/DocumentState.js +19 -0
- package/lib/state/substates/GradeState.d.ts +10 -0
- package/lib/state/substates/GradeState.js +19 -0
- package/lib/state/substates/IAMState.d.ts +75 -0
- package/lib/state/substates/IAMState.js +294 -0
- package/lib/state/substates/JupyterLabState.d.ts +16 -0
- package/lib/state/substates/JupyterLabState.js +22 -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 +21 -0
- package/lib/state/substates/OrganizationState.d.ts +11 -0
- package/lib/state/substates/OrganizationState.js +21 -0
- package/lib/state/substates/RuntimesState.d.ts +88 -0
- package/lib/state/substates/RuntimesState.js +183 -0
- package/lib/state/substates/SpaceState.d.ts +11 -0
- package/lib/state/substates/SpaceState.js +21 -0
- package/lib/state/substates/SurveysState.d.ts +14 -0
- package/lib/state/substates/SurveysState.js +103 -0
- package/lib/state/substates/TeamState.d.ts +11 -0
- package/lib/state/substates/TeamState.js +22 -0
- package/lib/state/substates/index.d.ts +15 -0
- package/lib/state/substates/index.js +24 -0
- package/lib/test-setup.d.ts +1 -0
- package/lib/test-setup.js +7 -0
- package/lib/theme/DatalayerTheme.d.ts +37 -0
- package/lib/theme/DatalayerTheme.js +67 -0
- package/lib/theme/DatalayerThemeProvider.d.ts +17 -0
- package/lib/theme/DatalayerThemeProvider.js +74 -0
- package/lib/theme/Palette.d.ts +5 -0
- package/lib/theme/Palette.js +27 -0
- package/lib/theme/index.d.ts +3 -0
- package/lib/theme/index.js +12 -0
- package/lib/utils/Array.d.ts +2 -0
- package/lib/utils/Array.js +21 -0
- package/lib/utils/Avatar.d.ts +9 -0
- package/lib/utils/Avatar.js +39 -0
- package/lib/utils/Browser.d.ts +3 -0
- package/lib/utils/Browser.js +68 -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 +53 -0
- package/lib/utils/Date.d.ts +2 -0
- package/lib/utils/Date.js +65 -0
- package/lib/utils/Download.d.ts +3 -0
- package/lib/utils/Download.js +53 -0
- package/lib/utils/DownloadFile.d.ts +10 -0
- package/lib/utils/DownloadFile.js +41 -0
- package/lib/utils/Env.d.ts +1 -0
- package/lib/utils/Env.js +12 -0
- package/lib/utils/File.d.ts +7 -0
- package/lib/utils/File.js +21 -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 +17 -0
- package/lib/utils/Jupyter.d.ts +1 -0
- package/lib/utils/Jupyter.js +17 -0
- package/lib/utils/Lazy.d.ts +8 -0
- package/lib/utils/Lazy.js +29 -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 +39 -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 +26 -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 +12 -0
- package/lib/utils/Screenshot.d.ts +1 -0
- package/lib/utils/Screenshot.js +32 -0
- package/lib/utils/Scroll.d.ts +2 -0
- package/lib/utils/Scroll.js +36 -0
- package/lib/utils/Sleep.d.ts +2 -0
- package/lib/utils/Sleep.js +13 -0
- package/lib/utils/Snapshot.d.ts +7 -0
- package/lib/utils/Snapshot.js +26 -0
- package/lib/utils/String.d.ts +1 -0
- package/lib/utils/String.js +18 -0
- package/lib/utils/Uri.d.ts +2 -0
- package/lib/utils/Uri.js +31 -0
- package/lib/utils/Validator.d.ts +12 -0
- package/lib/utils/Validator.js +49 -0
- package/lib/utils/WithSuspense.d.ts +2 -0
- package/lib/utils/WithSuspense.js +26 -0
- package/lib/utils/index.d.ts +26 -0
- package/lib/utils/index.js +36 -0
- package/package.json +43 -4
- package/style/base.css +0 -5
- package/style/index.css +0 -7
- package/style/index.js +0 -7
package/README.md
CHANGED
|
@@ -1,19 +1,188 @@
|
|
|
1
|
+
**Datalayer Core**
|
|
2
|
+
|
|
3
|
+
---
|
|
4
|
+
|
|
1
5
|
[](https://datalayer.io)
|
|
2
6
|
|
|
3
7
|
[](https://github.com/sponsors/datalayer)
|
|
4
8
|
|
|
5
9
|
# Ξ Datalayer Core
|
|
6
10
|
|
|
7
|
-
|
|
11
|
+
<p align="center">
|
|
12
|
+
<img src="https://assets.datalayer.tech/datalayer-25.svg" alt="Datalayer Logo" width="200"></img>
|
|
13
|
+
</p>
|
|
14
|
+
|
|
15
|
+
<p align="center">
|
|
16
|
+
<strong>The foundational Python SDK for the Datalayer AI Platform</strong>
|
|
17
|
+
</p>
|
|
18
|
+
|
|
19
|
+
<p align="center">
|
|
20
|
+
<a href="https://pypi.org/project/datalayer-core/"><img src="https://img.shields.io/pypi/v/datalayer-core.svg" alt="PyPI version"></img></a>
|
|
21
|
+
<a href="https://pypi.org/project/datalayer-core/"><img src="https://img.shields.io/pypi/pyversions/datalayer-core.svg" alt="Python versions"></img></a>
|
|
22
|
+
<a href="https://github.com/datalayer/core/blob/main/LICENSE"><img src="https://img.shields.io/badge/License-BSD%203--Clause-blue.svg" alt="License"></img></a>
|
|
23
|
+
<a href="https://docs.datalayer.app/"><img src="https://img.shields.io/badge/docs-datalayer.app-blue" alt="Documentation"></img></a>
|
|
24
|
+
<a href="https://github.com/datalayer/core/actions/workflows/tests.yml"><img src="https://github.com/datalayer/core/actions/workflows/tests.yml/badge.svg" alt="Units Tests"></img></a>
|
|
25
|
+
</p>
|
|
26
|
+
|
|
27
|
+
## Overview
|
|
28
|
+
|
|
29
|
+
Datalayer Core is the foundational package that powers the [Datalayer AI Platform](https://datalayer.app/). It provides both a Python SDK and Command Line Interface (CLI) for AI engineers, data scientists, and researchers to seamlessly integrate scalable compute runtimes into their workflows.
|
|
30
|
+
|
|
31
|
+
This package serves as the base foundation used by many other Datalayer packages, containing core application classes, configuration, and unified APIs for authentication, runtime management, and code execution in cloud-based environments.
|
|
32
|
+
|
|
33
|
+
## Key Features
|
|
34
|
+
|
|
35
|
+
- **🔐 Simple Authentication**: Easy token-based authentication with environment variable support
|
|
36
|
+
- **⚡ Runtime Management**: Create and manage scalable compute runtimes (CPU/GPU) for code execution
|
|
37
|
+
- **📸 Snapshot Management**: Create and manage compute snapshots of your runtimes for reproducible environments
|
|
38
|
+
- **🔒 Secrets Management**: Securely handle sensitive data and credentials in your workflows
|
|
39
|
+
- **🐍 Python SDK**: Programmatic access to Datalayer platform with context managers and clean resource management
|
|
40
|
+
- **💻 Command Line Interface**: CLI tools for managing runtimes, snapshots, and platform resources
|
|
41
|
+
- **🔧 Base Classes**: Core application classes and configuration inherited by other Datalayer projects
|
|
42
|
+
|
|
43
|
+
## Installation
|
|
44
|
+
|
|
45
|
+
Install Datalayer Core using pip:
|
|
46
|
+
|
|
47
|
+
```bash
|
|
48
|
+
pip install datalayer-core
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
For development installation:
|
|
52
|
+
|
|
53
|
+
```bash
|
|
54
|
+
git clone https://github.com/datalayer/core.git
|
|
55
|
+
cd core
|
|
56
|
+
pip install -e .[test]
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
## Quick Start
|
|
60
|
+
|
|
61
|
+
### 1. Authentication
|
|
62
|
+
|
|
63
|
+
Set your Datalayer token as an environment variable:
|
|
64
|
+
|
|
65
|
+
```bash
|
|
66
|
+
export DATALAYER_TOKEN="your-token-here"
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
Or pass it directly to the SDK:
|
|
70
|
+
|
|
71
|
+
```python
|
|
72
|
+
from datalayer_core import DatalayerClient
|
|
73
|
+
|
|
74
|
+
# Using environment variable
|
|
75
|
+
client = DatalayerClient()
|
|
76
|
+
|
|
77
|
+
# Or pass token directly
|
|
78
|
+
client = DatalayerClient(token="your-token-here")
|
|
79
|
+
|
|
80
|
+
if client.authenticate():
|
|
81
|
+
print("Successfully authenticated!")
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
### 2. Execute Code in a Runtime
|
|
85
|
+
|
|
86
|
+
Use context managers to create runtimes and ensure proper resource cleanup:
|
|
8
87
|
|
|
9
|
-
|
|
88
|
+
```python
|
|
89
|
+
from datalayer_core import DatalayerClient
|
|
10
90
|
|
|
11
|
-
|
|
91
|
+
client = DatalayerClient()
|
|
92
|
+
|
|
93
|
+
# Execute code in a managed runtime
|
|
94
|
+
with client.create_runtime() as runtime:
|
|
95
|
+
response = runtime.execute("print('Hello from Datalayer!')")
|
|
96
|
+
print(response.stdout)
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
### 3. Using the CLI
|
|
100
|
+
|
|
101
|
+
The CLI provides command-line access to Datalayer platform features:
|
|
102
|
+
|
|
103
|
+
```bash
|
|
104
|
+
# List available runtimes
|
|
105
|
+
datalayer runtime list
|
|
106
|
+
|
|
107
|
+
# Create a new runtime
|
|
108
|
+
datalayer runtime create ai-env --given-name my-runtime-123
|
|
109
|
+
|
|
110
|
+
# Execute a script in a runtime
|
|
111
|
+
datalayer runtime exec my-script.py --runtime <runtime-id>
|
|
112
|
+
|
|
113
|
+
# Create a snapshot from a runtime but do not terminate the runtime
|
|
114
|
+
datalayer snapshots create <pod-name> my-snapshot 'AI work!' False
|
|
115
|
+
```
|
|
116
|
+
|
|
117
|
+
## Platform Integration
|
|
118
|
+
|
|
119
|
+
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.
|
|
120
|
+
|
|
121
|
+
Key platform features accessible through this SDK and CLI:
|
|
122
|
+
|
|
123
|
+
- **Remote Runtimes**: Execute code on powerful remote machines with CPU, RAM, and GPU resources
|
|
124
|
+
- **Multiple Interfaces**: Access and consume runtimes through Python SDK, CLI, or other integrated tools
|
|
125
|
+
- **Scalable Compute**: Dynamically scale your computational resources based on workload requirements
|
|
126
|
+
|
|
127
|
+
## Documentation
|
|
128
|
+
|
|
129
|
+
- **Command Line Interface (CLI)**: [https://docs.datalayer.app/cli/](https://docs.datalayer.app/cli/)
|
|
130
|
+
- **Core Python SDK**: [core.datalayer.tech/python/](https://core.datalayer.tech/python/)
|
|
131
|
+
- **Platform Documentation**: [docs.datalayer.app](https://docs.datalayer.app/)
|
|
132
|
+
- **API Reference**: [API documentation](https://docs.datalayer.app/api/)
|
|
133
|
+
|
|
134
|
+
## Development
|
|
135
|
+
|
|
136
|
+
### Running Tests
|
|
12
137
|
|
|
13
138
|
```bash
|
|
14
139
|
pip install -e .[test]
|
|
15
|
-
|
|
16
|
-
jupyter server extension list
|
|
17
|
-
# open http://localhost:8888/api/jupyter?token=60c1661cc408f978c309d04157af55c9588ff9557c9380e4fb50785750703da6
|
|
18
|
-
make start
|
|
140
|
+
pytest datalayer_core/tests/
|
|
19
141
|
```
|
|
142
|
+
|
|
143
|
+
### Contributing
|
|
144
|
+
|
|
145
|
+
This SDK is designed to be simple and extensible. We welcome contributions! Please:
|
|
146
|
+
|
|
147
|
+
1. Fork the repository
|
|
148
|
+
2. Create a feature branch
|
|
149
|
+
3. Make your changes
|
|
150
|
+
4. Add tests for new functionality
|
|
151
|
+
5. Submit a pull request
|
|
152
|
+
|
|
153
|
+
For issues and enhancement requests, please use the [GitHub issue tracker](https://github.com/datalayer/core/issues).
|
|
154
|
+
|
|
155
|
+
## Architecture
|
|
156
|
+
|
|
157
|
+
Datalayer Core serves as the foundation for the entire Datalayer ecosystem:
|
|
158
|
+
|
|
159
|
+
- **Base Classes**: Core application classes inherited by other Datalayer packages
|
|
160
|
+
- **Configuration Management**: Centralized configuration system for all Datalayer components
|
|
161
|
+
- **Authentication Layer**: Unified authentication across all Datalayer services
|
|
162
|
+
- **Runtime Abstraction**: Common interface for different types of compute runtimes
|
|
163
|
+
- **Resource Management**: Automatic cleanup and lifecycle management
|
|
164
|
+
|
|
165
|
+
## Use Cases
|
|
166
|
+
|
|
167
|
+
- **AI/ML Development**: Scale your machine learning workflows with cloud compute using SDK or CLI
|
|
168
|
+
- **Data Analysis**: Process large datasets with powerful remote runtimes
|
|
169
|
+
- **Research**: Collaborate on computational research with reproducible environments
|
|
170
|
+
- **Automation**: Integrate Datalayer into CI/CD pipelines and automated workflows using CLI tools
|
|
171
|
+
- **Prototyping**: Quickly test ideas without local hardware limitations
|
|
172
|
+
|
|
173
|
+
## License
|
|
174
|
+
|
|
175
|
+
This project is licensed under the [BSD 3-Clause License](https://github.com/datalayer/core/blob/main/LICENSE).
|
|
176
|
+
|
|
177
|
+
## Support
|
|
178
|
+
|
|
179
|
+
- **Documentation**: [Datalayer Platform Documentation](https://docs.datalayer.app/)
|
|
180
|
+
- **Issues**: [GitHub Issues](https://github.com/datalayer/core/issues)
|
|
181
|
+
- **Community**: [Datalayer Platform](https://datalayer.app/)
|
|
182
|
+
|
|
183
|
+
---
|
|
184
|
+
|
|
185
|
+
<p align="center">
|
|
186
|
+
<strong>🚀 AI Platform for Data Analysis</strong><br></br>
|
|
187
|
+
<a href="https://datalayer.app/">Get started with Datalayer today!</a>
|
|
188
|
+
</p>
|
package/lib/App.d.ts
ADDED
package/lib/App.js
CHANGED
|
@@ -1,4 +1,8 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
2
|
+
/*
|
|
3
|
+
* Copyright (c) 2023-2025 Datalayer, Inc.
|
|
4
|
+
* Distributed under the terms of the Modified BSD License.
|
|
5
|
+
*/
|
|
2
6
|
import { useState } from 'react';
|
|
3
7
|
import reactLogo from './assets/react.svg';
|
|
4
8
|
import viteLogo from '/vite.svg';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright (c) 2023-2025 Datalayer, Inc.
|
|
3
|
+
* Distributed under the terms of the Modified BSD License.
|
|
4
|
+
*/
|
|
5
|
+
import { describe, it, expect } from 'vitest';
|
|
6
|
+
import { App } from '../App';
|
|
7
|
+
describe('App Component', () => {
|
|
8
|
+
it('should be a function component', () => {
|
|
9
|
+
expect(typeof App).toBe('function');
|
|
10
|
+
});
|
|
11
|
+
it('should be defined', () => {
|
|
12
|
+
expect(App).toBeDefined();
|
|
13
|
+
});
|
|
14
|
+
it('component name should be App', () => {
|
|
15
|
+
expect(App.name).toBe('App');
|
|
16
|
+
});
|
|
17
|
+
});
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright (c) 2023-2025 Datalayer, Inc.
|
|
3
|
+
* Distributed under the terms of the Modified BSD License.
|
|
4
|
+
*/
|
|
5
|
+
import { describe, it, expect } from 'vitest';
|
|
6
|
+
import { useCache } from '../hooks';
|
|
7
|
+
describe('hooks', () => {
|
|
8
|
+
it('should export qfds constant', () => {
|
|
9
|
+
expect(useCache).toBeDefined();
|
|
10
|
+
});
|
|
11
|
+
/*
|
|
12
|
+
it('useCache should have correct value', () => {
|
|
13
|
+
expect(useCache).toBe('');
|
|
14
|
+
});
|
|
15
|
+
it('useCache should be a string', () => {
|
|
16
|
+
expect(typeof useCache).toBe('string');
|
|
17
|
+
});
|
|
18
|
+
*/
|
|
19
|
+
});
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright (c) 2023-2025 Datalayer, Inc.
|
|
3
|
+
* Distributed under the terms of the Modified BSD License.
|
|
4
|
+
*/
|
|
5
|
+
import { describe, it, expect } from 'vitest';
|
|
6
|
+
import * as coreIndex from '../index';
|
|
7
|
+
describe('@datalayer/core - index', () => {
|
|
8
|
+
it('should export App', () => {
|
|
9
|
+
expect(coreIndex.App).toBeDefined();
|
|
10
|
+
expect(typeof coreIndex.App).toBe('function');
|
|
11
|
+
});
|
|
12
|
+
it('should export BackdropContext from hooks', () => {
|
|
13
|
+
expect(coreIndex.BackdropContext).toBeDefined();
|
|
14
|
+
expect(coreIndex.BackdropContext).toBe('lkj');
|
|
15
|
+
});
|
|
16
|
+
it('should export utils functions', () => {
|
|
17
|
+
expect(coreIndex.convertToLargestUnit).toBeDefined();
|
|
18
|
+
expect(coreIndex.asArray).toBeDefined();
|
|
19
|
+
});
|
|
20
|
+
it('should have all expected exports', () => {
|
|
21
|
+
const exports = Object.keys(coreIndex);
|
|
22
|
+
expect(exports).toContain('App');
|
|
23
|
+
expect(exports).toContain('convertToLargestUnit');
|
|
24
|
+
expect(exports).toContain('asArray');
|
|
25
|
+
});
|
|
26
|
+
});
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright (c) 2023-2025 Datalayer, Inc.
|
|
3
|
+
* Distributed under the terms of the Modified BSD License.
|
|
4
|
+
*/
|
|
5
|
+
import { describe, it, expect } from 'vitest';
|
|
6
|
+
describe('@datalayer/core - Integration Tests', () => {
|
|
7
|
+
it('should have proper TypeScript compilation', () => {
|
|
8
|
+
// This test ensures TypeScript compilation is working
|
|
9
|
+
const testNumber = 42;
|
|
10
|
+
const testString = 'hello';
|
|
11
|
+
const testBoolean = true;
|
|
12
|
+
expect(typeof testNumber).toBe('number');
|
|
13
|
+
expect(typeof testString).toBe('string');
|
|
14
|
+
expect(typeof testBoolean).toBe('boolean');
|
|
15
|
+
});
|
|
16
|
+
it('should support modern JavaScript features', () => {
|
|
17
|
+
// Test arrow functions
|
|
18
|
+
const add = (a, b) => a + b;
|
|
19
|
+
expect(add(2, 3)).toBe(5);
|
|
20
|
+
// Test template literals
|
|
21
|
+
const name = 'Datalayer';
|
|
22
|
+
const greeting = `Hello, ${name}!`;
|
|
23
|
+
expect(greeting).toBe('Hello, Datalayer!');
|
|
24
|
+
// Test destructuring
|
|
25
|
+
const obj = { x: 1, y: 2 };
|
|
26
|
+
const { x, y } = obj;
|
|
27
|
+
expect(x).toBe(1);
|
|
28
|
+
expect(y).toBe(2);
|
|
29
|
+
// Test spread operator
|
|
30
|
+
const arr1 = [1, 2, 3];
|
|
31
|
+
const arr2 = [...arr1, 4, 5];
|
|
32
|
+
expect(arr2).toEqual([1, 2, 3, 4, 5]);
|
|
33
|
+
});
|
|
34
|
+
it('should support async/await', async () => {
|
|
35
|
+
const asyncFunction = async () => {
|
|
36
|
+
return new Promise(resolve => {
|
|
37
|
+
setTimeout(() => resolve('async result'), 10);
|
|
38
|
+
});
|
|
39
|
+
};
|
|
40
|
+
const result = await asyncFunction();
|
|
41
|
+
expect(result).toBe('async result');
|
|
42
|
+
});
|
|
43
|
+
it('should support generics', () => {
|
|
44
|
+
function identity(arg) {
|
|
45
|
+
return arg;
|
|
46
|
+
}
|
|
47
|
+
expect(identity('test')).toBe('test');
|
|
48
|
+
expect(identity(123)).toBe(123);
|
|
49
|
+
expect(identity(true)).toBe(true);
|
|
50
|
+
});
|
|
51
|
+
it('should handle error cases', () => {
|
|
52
|
+
const throwError = () => {
|
|
53
|
+
throw new Error('Test error');
|
|
54
|
+
};
|
|
55
|
+
expect(throwError).toThrow('Test error');
|
|
56
|
+
});
|
|
57
|
+
});
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright (c) 2023-2025 Datalayer, Inc.
|
|
3
|
+
* Distributed under the terms of the Modified BSD License.
|
|
4
|
+
*/
|
|
5
|
+
import { describe, it, expect } from 'vitest';
|
|
6
|
+
import { formatString, addNumbers, isDefined, delay } from '../utils';
|
|
7
|
+
describe('utils', () => {
|
|
8
|
+
describe('formatString', () => {
|
|
9
|
+
it('should trim and lowercase strings', () => {
|
|
10
|
+
expect(formatString(' HELLO WORLD ')).toBe('hello world');
|
|
11
|
+
});
|
|
12
|
+
it('should handle empty strings', () => {
|
|
13
|
+
expect(formatString('')).toBe('');
|
|
14
|
+
});
|
|
15
|
+
it('should handle already formatted strings', () => {
|
|
16
|
+
expect(formatString('hello')).toBe('hello');
|
|
17
|
+
});
|
|
18
|
+
});
|
|
19
|
+
describe('addNumbers', () => {
|
|
20
|
+
it('should add positive numbers', () => {
|
|
21
|
+
expect(addNumbers(2, 3)).toBe(5);
|
|
22
|
+
});
|
|
23
|
+
it('should add negative numbers', () => {
|
|
24
|
+
expect(addNumbers(-2, -3)).toBe(-5);
|
|
25
|
+
});
|
|
26
|
+
it('should add zero', () => {
|
|
27
|
+
expect(addNumbers(5, 0)).toBe(5);
|
|
28
|
+
});
|
|
29
|
+
it('should handle decimals', () => {
|
|
30
|
+
expect(addNumbers(1.5, 2.5)).toBe(4);
|
|
31
|
+
});
|
|
32
|
+
});
|
|
33
|
+
describe('isDefined', () => {
|
|
34
|
+
it('should return true for defined values', () => {
|
|
35
|
+
expect(isDefined('hello')).toBe(true);
|
|
36
|
+
expect(isDefined(0)).toBe(true);
|
|
37
|
+
expect(isDefined(false)).toBe(true);
|
|
38
|
+
expect(isDefined([])).toBe(true);
|
|
39
|
+
});
|
|
40
|
+
it('should return false for undefined', () => {
|
|
41
|
+
expect(isDefined(undefined)).toBe(false);
|
|
42
|
+
});
|
|
43
|
+
it('should return false for null', () => {
|
|
44
|
+
expect(isDefined(null)).toBe(false);
|
|
45
|
+
});
|
|
46
|
+
});
|
|
47
|
+
describe('delay', () => {
|
|
48
|
+
it('should resolve after specified time', async () => {
|
|
49
|
+
const start = Date.now();
|
|
50
|
+
await delay(100);
|
|
51
|
+
const end = Date.now();
|
|
52
|
+
expect(end - start).toBeGreaterThanOrEqual(90); // Allow some tolerance
|
|
53
|
+
});
|
|
54
|
+
it('should return a Promise', () => {
|
|
55
|
+
const result = delay(1);
|
|
56
|
+
expect(result).toBeInstanceOf(Promise);
|
|
57
|
+
});
|
|
58
|
+
});
|
|
59
|
+
});
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* A wrapped error for a fetch response.
|
|
3
|
+
*/
|
|
4
|
+
export declare class RunResponseError extends Error {
|
|
5
|
+
/**
|
|
6
|
+
* Create a RunResponseError from a response, handling the traceback and message
|
|
7
|
+
* as appropriate.
|
|
8
|
+
*
|
|
9
|
+
* @param response The response object.
|
|
10
|
+
*
|
|
11
|
+
* @returns A promise that resolves with a `RunResponseError` object.
|
|
12
|
+
*/
|
|
13
|
+
static create(response: Response): Promise<RunResponseError>;
|
|
14
|
+
/**
|
|
15
|
+
* Create a new response error.
|
|
16
|
+
*/
|
|
17
|
+
constructor(response: Response, message?: string, warnings?: undefined, errors?: undefined, exceptionMessage?: undefined, traceback?: string);
|
|
18
|
+
/**
|
|
19
|
+
* Warnings listed in the response.
|
|
20
|
+
*/
|
|
21
|
+
readonly warnings: string[];
|
|
22
|
+
/**
|
|
23
|
+
* Errors listed in the response.
|
|
24
|
+
*/
|
|
25
|
+
readonly errors: string[];
|
|
26
|
+
/**
|
|
27
|
+
* The response associated with the error.
|
|
28
|
+
*/
|
|
29
|
+
readonly response: Response;
|
|
30
|
+
/**
|
|
31
|
+
* The exception associated with the error.
|
|
32
|
+
*/
|
|
33
|
+
readonly exceptionMessage?: string;
|
|
34
|
+
/**
|
|
35
|
+
* The traceback associated with the error.
|
|
36
|
+
*/
|
|
37
|
+
readonly traceback: string;
|
|
38
|
+
private static _defaultMessage;
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* A wrapped error for a network error.
|
|
42
|
+
*/
|
|
43
|
+
export declare class NetworkError extends TypeError {
|
|
44
|
+
/**
|
|
45
|
+
* Create a new network error.
|
|
46
|
+
*/
|
|
47
|
+
constructor(original: TypeError);
|
|
48
|
+
}
|
|
49
|
+
export interface IRequestRunAPIOptions {
|
|
50
|
+
/**
|
|
51
|
+
* URL to request
|
|
52
|
+
*/
|
|
53
|
+
url: string;
|
|
54
|
+
/**
|
|
55
|
+
* HTTP method
|
|
56
|
+
*/
|
|
57
|
+
method?: string;
|
|
58
|
+
/**
|
|
59
|
+
* JSON-serializable object
|
|
60
|
+
*/
|
|
61
|
+
body?: any;
|
|
62
|
+
/**
|
|
63
|
+
* Headers
|
|
64
|
+
*/
|
|
65
|
+
headers?: Record<string, string>;
|
|
66
|
+
/**
|
|
67
|
+
* Authorization bearer token
|
|
68
|
+
*/
|
|
69
|
+
token?: string;
|
|
70
|
+
/**
|
|
71
|
+
* Request abort signal.
|
|
72
|
+
*/
|
|
73
|
+
signal?: AbortSignal;
|
|
74
|
+
}
|
|
75
|
+
export declare function requestRunAPI<T = any>({ url, method, body, token, signal, headers }: IRequestRunAPIOptions): Promise<T>;
|
|
@@ -0,0 +1,150 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright (c) 2023-2025 Datalayer, Inc.
|
|
3
|
+
* Distributed under the terms of the Modified BSD License.
|
|
4
|
+
*/
|
|
5
|
+
/*
|
|
6
|
+
* Copyright (c) 2021-2024 Datalayer, Inc.
|
|
7
|
+
*
|
|
8
|
+
* Datalayer License
|
|
9
|
+
*/
|
|
10
|
+
import { URLExt } from '@jupyterlab/coreutils';
|
|
11
|
+
import { sleep } from '../utils';
|
|
12
|
+
/**
|
|
13
|
+
* A wrapped error for a fetch response.
|
|
14
|
+
*/
|
|
15
|
+
export class RunResponseError extends Error {
|
|
16
|
+
/**
|
|
17
|
+
* Create a RunResponseError from a response, handling the traceback and message
|
|
18
|
+
* as appropriate.
|
|
19
|
+
*
|
|
20
|
+
* @param response The response object.
|
|
21
|
+
*
|
|
22
|
+
* @returns A promise that resolves with a `RunResponseError` object.
|
|
23
|
+
*/
|
|
24
|
+
static async create(response) {
|
|
25
|
+
try {
|
|
26
|
+
const data = await response.json();
|
|
27
|
+
const { message, errors, warnings, traceback, exception } = data;
|
|
28
|
+
if (traceback) {
|
|
29
|
+
console.error(traceback);
|
|
30
|
+
}
|
|
31
|
+
const responseError = new RunResponseError(response, message ?? RunResponseError._defaultMessage(response), warnings, errors, exception, traceback ?? '');
|
|
32
|
+
return responseError;
|
|
33
|
+
}
|
|
34
|
+
catch (e) {
|
|
35
|
+
console.debug(e);
|
|
36
|
+
return new RunResponseError(response);
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Create a new response error.
|
|
41
|
+
*/
|
|
42
|
+
constructor(response, message = RunResponseError._defaultMessage(response), warnings = undefined, errors = undefined, exceptionMessage = undefined, traceback = '') {
|
|
43
|
+
super(message);
|
|
44
|
+
this.name = 'RunResponseError';
|
|
45
|
+
this.warnings = warnings ?? [];
|
|
46
|
+
this.errors = errors ?? [];
|
|
47
|
+
this.response = response;
|
|
48
|
+
this.exceptionMessage = exceptionMessage;
|
|
49
|
+
this.traceback = traceback;
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Warnings listed in the response.
|
|
53
|
+
*/
|
|
54
|
+
warnings;
|
|
55
|
+
/**
|
|
56
|
+
* Errors listed in the response.
|
|
57
|
+
*/
|
|
58
|
+
errors;
|
|
59
|
+
/**
|
|
60
|
+
* The response associated with the error.
|
|
61
|
+
*/
|
|
62
|
+
response;
|
|
63
|
+
/**
|
|
64
|
+
* The exception associated with the error.
|
|
65
|
+
*/
|
|
66
|
+
exceptionMessage;
|
|
67
|
+
/**
|
|
68
|
+
* The traceback associated with the error.
|
|
69
|
+
*/
|
|
70
|
+
traceback;
|
|
71
|
+
static _defaultMessage(response) {
|
|
72
|
+
return `Invalid response: ${response.status} ${response.statusText}`;
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* A wrapped error for a network error.
|
|
77
|
+
*/
|
|
78
|
+
export class NetworkError extends TypeError {
|
|
79
|
+
/**
|
|
80
|
+
* Create a new network error.
|
|
81
|
+
*/
|
|
82
|
+
constructor(original) {
|
|
83
|
+
super(original.message);
|
|
84
|
+
this.name = 'NetworkError';
|
|
85
|
+
this.stack = original.stack;
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
export async function requestRunAPI({ url, method, body, token, signal, headers = {} }) {
|
|
89
|
+
const headers_ = new Headers(headers);
|
|
90
|
+
if (!headers_.has('Accept')) {
|
|
91
|
+
headers_.set('Accept', 'application/json');
|
|
92
|
+
}
|
|
93
|
+
if (!headers_.has('Content-Type')) {
|
|
94
|
+
headers_.set('Content-Type', 'application/json');
|
|
95
|
+
}
|
|
96
|
+
if (token) {
|
|
97
|
+
headers_.set('Authorization', `Bearer ${token}`);
|
|
98
|
+
}
|
|
99
|
+
// headers_.set('Origin', currentUri());
|
|
100
|
+
let response;
|
|
101
|
+
try {
|
|
102
|
+
response = await fetch(url, {
|
|
103
|
+
method: method ?? 'GET',
|
|
104
|
+
headers: headers_,
|
|
105
|
+
body: body ? JSON.stringify(body) : undefined,
|
|
106
|
+
// credentials: token ? 'include' : 'omit',
|
|
107
|
+
credentials: 'include',
|
|
108
|
+
mode: 'cors',
|
|
109
|
+
cache: 'no-store',
|
|
110
|
+
signal
|
|
111
|
+
});
|
|
112
|
+
}
|
|
113
|
+
catch (error) {
|
|
114
|
+
throw new NetworkError(error);
|
|
115
|
+
}
|
|
116
|
+
if (response.ok) {
|
|
117
|
+
response = await wait_for_redirection(response, url, headers_);
|
|
118
|
+
const content = await response.text();
|
|
119
|
+
return (content ? JSON.parse(content) : null);
|
|
120
|
+
}
|
|
121
|
+
else {
|
|
122
|
+
throw await RunResponseError.create(response);
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
async function wait_for_redirection(response, url, headers_) {
|
|
126
|
+
let redirect = response.headers.get('Location');
|
|
127
|
+
if (redirect) {
|
|
128
|
+
const parsedURL = URLExt.parse(url);
|
|
129
|
+
const baseUrl = parsedURL.protocol + '//' + parsedURL.hostname;
|
|
130
|
+
if (!redirect.startsWith(baseUrl)) {
|
|
131
|
+
redirect = URLExt.join(baseUrl, redirect);
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
let sleepTimeout = 1000;
|
|
135
|
+
while (response.status === 202 && redirect) {
|
|
136
|
+
await sleep(sleepTimeout);
|
|
137
|
+
sleepTimeout *= 2;
|
|
138
|
+
response = await fetch(redirect, {
|
|
139
|
+
method: 'GET',
|
|
140
|
+
headers: headers_,
|
|
141
|
+
credentials: 'include',
|
|
142
|
+
mode: 'cors',
|
|
143
|
+
cache: 'no-store'
|
|
144
|
+
});
|
|
145
|
+
if (!response.ok) {
|
|
146
|
+
throw await RunResponseError.create(response);
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
return response;
|
|
150
|
+
}
|
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[];
|