@rebasepro/studio 0.0.1-canary.09e5ec5
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/LICENSE +114 -0
- package/README.md +159 -0
- package/dist/ApiExplorer-gMJt5JrS.js +1053 -0
- package/dist/ApiExplorer-gMJt5JrS.js.map +1 -0
- package/dist/AuthSimulationSelector-BF4rkRGp.js +118 -0
- package/dist/AuthSimulationSelector-BF4rkRGp.js.map +1 -0
- package/dist/BranchesView-DcHZtvXo.js +292 -0
- package/dist/BranchesView-DcHZtvXo.js.map +1 -0
- package/dist/CronJobsView-CijCToeK.js +456 -0
- package/dist/CronJobsView-CijCToeK.js.map +1 -0
- package/dist/JSEditor-D8nVp3Lp.js +1308 -0
- package/dist/JSEditor-D8nVp3Lp.js.map +1 -0
- package/dist/MonacoEditor-CMYEjiRf.js +161 -0
- package/dist/MonacoEditor-CMYEjiRf.js.map +1 -0
- package/dist/RLSEditor-DBH09u9v.js +1831 -0
- package/dist/RLSEditor-DBH09u9v.js.map +1 -0
- package/dist/SQLEditor-CkVx9vgr.js +1792 -0
- package/dist/SQLEditor-CkVx9vgr.js.map +1 -0
- package/dist/SchemaVisualizer-BgD5Zb77.js +1069 -0
- package/dist/SchemaVisualizer-BgD5Zb77.js.map +1 -0
- package/dist/StorageView-CTqGFhY9.js +907 -0
- package/dist/StorageView-CTqGFhY9.js.map +1 -0
- package/dist/common/src/collections/CollectionRegistry.d.ts +56 -0
- package/dist/common/src/collections/index.d.ts +1 -0
- package/dist/common/src/data/buildRebaseData.d.ts +14 -0
- package/dist/common/src/index.d.ts +3 -0
- package/dist/common/src/util/builders.d.ts +57 -0
- package/dist/common/src/util/callbacks.d.ts +6 -0
- package/dist/common/src/util/collections.d.ts +11 -0
- package/dist/common/src/util/common.d.ts +2 -0
- package/dist/common/src/util/conditions.d.ts +26 -0
- package/dist/common/src/util/entities.d.ts +58 -0
- package/dist/common/src/util/enums.d.ts +3 -0
- package/dist/common/src/util/index.d.ts +16 -0
- package/dist/common/src/util/navigation_from_path.d.ts +34 -0
- package/dist/common/src/util/navigation_utils.d.ts +20 -0
- package/dist/common/src/util/parent_references_from_path.d.ts +6 -0
- package/dist/common/src/util/paths.d.ts +14 -0
- package/dist/common/src/util/permissions.d.ts +5 -0
- package/dist/common/src/util/references.d.ts +2 -0
- package/dist/common/src/util/relations.d.ts +22 -0
- package/dist/common/src/util/resolutions.d.ts +72 -0
- package/dist/common/src/util/storage.d.ts +24 -0
- package/dist/core/src/components/AIIcon.d.ts +16 -0
- package/dist/core/src/components/ConfirmationDialog.d.ts +9 -0
- package/dist/core/src/components/Debug/UIReferenceView.d.ts +1 -0
- package/dist/core/src/components/Debug/UIStyleGuide.d.ts +1 -0
- package/dist/core/src/components/ErrorTooltip.d.ts +2 -0
- package/dist/core/src/components/ErrorView.d.ts +21 -0
- package/dist/core/src/components/LanguageToggle.d.ts +1 -0
- package/dist/core/src/components/LoginView/LoginView.d.ts +68 -0
- package/dist/core/src/components/LoginView/index.d.ts +2 -0
- package/dist/core/src/components/NotFoundPage.d.ts +1 -0
- package/dist/core/src/components/RebaseAuth.d.ts +10 -0
- package/dist/core/src/components/RebaseLogo.d.ts +7 -0
- package/dist/core/src/components/UnsavedChangesDialog.d.ts +9 -0
- package/dist/core/src/components/UserDisplay.d.ts +7 -0
- package/dist/core/src/components/UserSelectPopover.d.ts +62 -0
- package/dist/core/src/components/UserSettingsView.d.ts +1 -0
- package/dist/core/src/components/common/index.d.ts +6 -0
- package/dist/core/src/components/common/table_height.d.ts +5 -0
- package/dist/core/src/components/common/types.d.ts +63 -0
- package/dist/core/src/components/common/useColumnsIds.d.ts +9 -0
- package/dist/core/src/components/common/useDataTableController.d.ts +45 -0
- package/dist/core/src/components/common/useDebouncedData.d.ts +9 -0
- package/dist/core/src/components/common/useScrollRestoration.d.ts +14 -0
- package/dist/core/src/components/index.d.ts +16 -0
- package/dist/core/src/contexts/AdminModeController.d.ts +4 -0
- package/dist/core/src/contexts/AnalyticsContext.d.ts +3 -0
- package/dist/core/src/contexts/AuthControllerContext.d.ts +3 -0
- package/dist/core/src/contexts/CustomizationControllerContext.d.ts +3 -0
- package/dist/core/src/contexts/DataDriverContext.d.ts +3 -0
- package/dist/core/src/contexts/DatabaseAdminContext.d.ts +3 -0
- package/dist/core/src/contexts/DialogsProvider.d.ts +4 -0
- package/dist/core/src/contexts/EffectiveRoleController.d.ts +4 -0
- package/dist/core/src/contexts/InternalUserManagementContext.d.ts +3 -0
- package/dist/core/src/contexts/ModeController.d.ts +4 -0
- package/dist/core/src/contexts/RebaseClientInstanceContext.d.ts +6 -0
- package/dist/core/src/contexts/RebaseDataContext.d.ts +3 -0
- package/dist/core/src/contexts/SnackbarProvider.d.ts +2 -0
- package/dist/core/src/contexts/StorageSourceContext.d.ts +3 -0
- package/dist/core/src/contexts/UserConfigurationPersistenceContext.d.ts +3 -0
- package/dist/core/src/contexts/index.d.ts +13 -0
- package/dist/core/src/core/PluginLifecycleManager.d.ts +17 -0
- package/dist/core/src/core/PluginProviderStack.d.ts +21 -0
- package/dist/core/src/core/Rebase.d.ts +14 -0
- package/dist/core/src/core/RebaseProps.d.ts +136 -0
- package/dist/core/src/core/RebaseRouter.d.ts +4 -0
- package/dist/core/src/core/RebaseRoutes.d.ts +17 -0
- package/dist/core/src/core/index.d.ts +4 -0
- package/dist/core/src/hooks/ApiConfigContext.d.ts +24 -0
- package/dist/core/src/hooks/data/delete.d.ts +31 -0
- package/dist/core/src/hooks/data/save.d.ts +34 -0
- package/dist/core/src/hooks/data/useCollectionFetch.d.ts +51 -0
- package/dist/core/src/hooks/data/useData.d.ts +13 -0
- package/dist/core/src/hooks/data/useDataOrder.d.ts +12 -0
- package/dist/core/src/hooks/data/useEntityFetch.d.ts +38 -0
- package/dist/core/src/hooks/data/useRelationSelector.d.ts +52 -0
- package/dist/core/src/hooks/data/useUserSelector.d.ts +31 -0
- package/dist/core/src/hooks/index.d.ts +37 -0
- package/dist/core/src/hooks/useAdminModeController.d.ts +19 -0
- package/dist/core/src/hooks/useAnalyticsController.d.ts +5 -0
- package/dist/core/src/hooks/useAuthController.d.ts +11 -0
- package/dist/core/src/hooks/useAuthSubscription.d.ts +2 -0
- package/dist/core/src/hooks/useBackendStorageSource.d.ts +30 -0
- package/dist/core/src/hooks/useBridgeRegistration.d.ts +18 -0
- package/dist/core/src/hooks/useBrowserTitleAndIcon.d.ts +6 -0
- package/dist/core/src/hooks/useBuildAdminModeController.d.ts +6 -0
- package/dist/core/src/hooks/useBuildEffectiveRoleController.d.ts +8 -0
- package/dist/core/src/hooks/useBuildLocalConfigurationPersistence.d.ts +2 -0
- package/dist/core/src/hooks/useBuildModeController.d.ts +6 -0
- package/dist/core/src/hooks/useClipboard.d.ts +57 -0
- package/dist/core/src/hooks/useCollapsedGroups.d.ts +12 -0
- package/dist/core/src/hooks/useCustomizationController.d.ts +11 -0
- package/dist/core/src/hooks/useDialogsController.d.ts +11 -0
- package/dist/core/src/hooks/useEffectiveRoleController.d.ts +7 -0
- package/dist/core/src/hooks/useInternalUserManagementController.d.ts +12 -0
- package/dist/core/src/hooks/useLargeLayout.d.ts +1 -0
- package/dist/core/src/hooks/useModeController.d.ts +19 -0
- package/dist/core/src/hooks/usePermissions.d.ts +12 -0
- package/dist/core/src/hooks/useRebaseClient.d.ts +5 -0
- package/dist/core/src/hooks/useRebaseContext.d.ts +11 -0
- package/dist/core/src/hooks/useRebaseRegistry.d.ts +34 -0
- package/dist/core/src/hooks/useSlot.d.ts +18 -0
- package/dist/core/src/hooks/useSnackbarController.d.ts +20 -0
- package/dist/core/src/hooks/useStorageSource.d.ts +7 -0
- package/dist/core/src/hooks/useStudioBridge.d.ts +91 -0
- package/dist/core/src/hooks/useTranslation.d.ts +17 -0
- package/dist/core/src/hooks/useUnsavedChangesDialog.d.ts +12 -0
- package/dist/core/src/hooks/useUserConfigurationPersistence.d.ts +8 -0
- package/dist/core/src/hooks/useValidateAuthenticator.d.ts +21 -0
- package/dist/core/src/i18n/RebaseI18nProvider.d.ts +33 -0
- package/dist/core/src/index.d.ts +15 -0
- package/dist/core/src/internal/common.d.ts +3 -0
- package/dist/core/src/internal/useRestoreScroll.d.ts +6 -0
- package/dist/core/src/locales/de.d.ts +2 -0
- package/dist/core/src/locales/en.d.ts +10 -0
- package/dist/core/src/locales/es.d.ts +10 -0
- package/dist/core/src/locales/fr.d.ts +2 -0
- package/dist/core/src/locales/hi.d.ts +2 -0
- package/dist/core/src/locales/it.d.ts +2 -0
- package/dist/core/src/locales/pt.d.ts +7 -0
- package/dist/core/src/util/constants.d.ts +1 -0
- package/dist/core/src/util/createFormexStub.d.ts +2 -0
- package/dist/core/src/util/entity_cache.d.ts +27 -0
- package/dist/core/src/util/enums.d.ts +5 -0
- package/dist/core/src/util/icon_list.d.ts +5 -0
- package/dist/core/src/util/icon_synonyms.d.ts +1 -0
- package/dist/core/src/util/icons.d.ts +20 -0
- package/dist/core/src/util/index.d.ts +10 -0
- package/dist/core/src/util/previews.d.ts +4 -0
- package/dist/core/src/util/useStorageUploadController.d.ts +38 -0
- package/dist/core/src/util/useTraceUpdate.d.ts +2 -0
- package/dist/formex/src/Field.d.ts +52 -0
- package/dist/formex/src/Formex.d.ts +7 -0
- package/dist/formex/src/index.d.ts +5 -0
- package/dist/formex/src/types.d.ts +40 -0
- package/dist/formex/src/useCreateFormex.d.ts +14 -0
- package/dist/formex/src/utils.d.ts +16 -0
- package/dist/index.es.js +726 -0
- package/dist/index.es.js.map +1 -0
- package/dist/index.umd.js +9647 -0
- package/dist/index.umd.js.map +1 -0
- package/dist/studio/src/components/ApiExplorer/ApiExplorer.d.ts +9 -0
- package/dist/studio/src/components/ApiExplorer/EndpointDetail.d.ts +9 -0
- package/dist/studio/src/components/ApiExplorer/TryItPanel.d.ts +15 -0
- package/dist/studio/src/components/ApiExplorer/parseSpec.d.ts +16 -0
- package/dist/studio/src/components/ApiExplorer/types.d.ts +90 -0
- package/dist/studio/src/components/AuthSimulationSelector.d.ts +11 -0
- package/dist/studio/src/components/Branches/BranchesView.d.ts +1 -0
- package/dist/studio/src/components/CronJobs/CronJobsView.d.ts +1 -0
- package/dist/studio/src/components/JSEditor/JSEditor.d.ts +1 -0
- package/dist/studio/src/components/JSEditor/JSEditorSidebar.d.ts +21 -0
- package/dist/studio/src/components/JSEditor/JSMonacoEditor.d.ts +18 -0
- package/dist/studio/src/components/RLSEditor/PolicyEditor.d.ts +9 -0
- package/dist/studio/src/components/RLSEditor/RLSEditor.d.ts +19 -0
- package/dist/studio/src/components/RLSEditor/index.d.ts +1 -0
- package/dist/studio/src/components/RebaseStudio.d.ts +2 -0
- package/dist/studio/src/components/SQLEditor/ExplainVisualizer.d.ts +24 -0
- package/dist/studio/src/components/SQLEditor/MonacoEditor.d.ts +17 -0
- package/dist/studio/src/components/SQLEditor/SQLEditor.d.ts +11 -0
- package/dist/studio/src/components/SQLEditor/SQLEditorSidebar.d.ts +21 -0
- package/dist/studio/src/components/SQLEditor/SchemaBrowser.d.ts +8 -0
- package/dist/studio/src/components/SchemaVisualizer/RelationEdge.d.ts +3 -0
- package/dist/studio/src/components/SchemaVisualizer/SchemaVisualizer.d.ts +2 -0
- package/dist/studio/src/components/SchemaVisualizer/TableNode.d.ts +3 -0
- package/dist/studio/src/components/SchemaVisualizer/index.d.ts +5 -0
- package/dist/studio/src/components/SchemaVisualizer/schema-visualizer.utils.d.ts +42 -0
- package/dist/studio/src/components/SchemaVisualizer/useSchemaGraph.d.ts +37 -0
- package/dist/studio/src/components/StorageView/StorageView.d.ts +1 -0
- package/dist/studio/src/components/StudioHomePage.d.ts +9 -0
- package/dist/studio/src/index.d.ts +4 -0
- package/dist/studio/src/utils/entities.d.ts +0 -0
- package/dist/studio/src/utils/pgColumnToProperty.d.ts +6 -0
- package/dist/studio/src/utils/sql_utils.d.ts +52 -0
- package/dist/types/src/controllers/analytics_controller.d.ts +7 -0
- package/dist/types/src/controllers/auth.d.ts +119 -0
- package/dist/types/src/controllers/client.d.ts +170 -0
- package/dist/types/src/controllers/collection_registry.d.ts +45 -0
- package/dist/types/src/controllers/customization_controller.d.ts +60 -0
- package/dist/types/src/controllers/data.d.ts +168 -0
- package/dist/types/src/controllers/data_driver.d.ts +160 -0
- package/dist/types/src/controllers/database_admin.d.ts +11 -0
- package/dist/types/src/controllers/dialogs_controller.d.ts +36 -0
- package/dist/types/src/controllers/effective_role.d.ts +4 -0
- package/dist/types/src/controllers/email.d.ts +34 -0
- package/dist/types/src/controllers/index.d.ts +18 -0
- package/dist/types/src/controllers/local_config_persistence.d.ts +20 -0
- package/dist/types/src/controllers/navigation.d.ts +213 -0
- package/dist/types/src/controllers/registry.d.ts +54 -0
- package/dist/types/src/controllers/side_dialogs_controller.d.ts +67 -0
- package/dist/types/src/controllers/side_entity_controller.d.ts +90 -0
- package/dist/types/src/controllers/snackbar.d.ts +24 -0
- package/dist/types/src/controllers/storage.d.ts +171 -0
- package/dist/types/src/index.d.ts +4 -0
- package/dist/types/src/rebase_context.d.ts +105 -0
- package/dist/types/src/types/backend.d.ts +536 -0
- package/dist/types/src/types/builders.d.ts +15 -0
- package/dist/types/src/types/chips.d.ts +5 -0
- package/dist/types/src/types/collections.d.ts +856 -0
- package/dist/types/src/types/cron.d.ts +102 -0
- package/dist/types/src/types/data_source.d.ts +64 -0
- package/dist/types/src/types/entities.d.ts +145 -0
- package/dist/types/src/types/entity_actions.d.ts +98 -0
- package/dist/types/src/types/entity_callbacks.d.ts +173 -0
- package/dist/types/src/types/entity_link_builder.d.ts +7 -0
- package/dist/types/src/types/entity_overrides.d.ts +10 -0
- package/dist/types/src/types/entity_views.d.ts +61 -0
- package/dist/types/src/types/export_import.d.ts +21 -0
- package/dist/types/src/types/index.d.ts +23 -0
- package/dist/types/src/types/locales.d.ts +4 -0
- package/dist/types/src/types/modify_collections.d.ts +5 -0
- package/dist/types/src/types/plugins.d.ts +279 -0
- package/dist/types/src/types/properties.d.ts +1176 -0
- package/dist/types/src/types/property_config.d.ts +70 -0
- package/dist/types/src/types/relations.d.ts +336 -0
- package/dist/types/src/types/slots.d.ts +252 -0
- package/dist/types/src/types/translations.d.ts +870 -0
- package/dist/types/src/types/user_management_delegate.d.ts +121 -0
- package/dist/types/src/types/websockets.d.ts +78 -0
- package/dist/types/src/users/index.d.ts +2 -0
- package/dist/types/src/users/roles.d.ts +22 -0
- package/dist/types/src/users/user.d.ts +46 -0
- package/dist/ui/src/components/Alert.d.ts +12 -0
- package/dist/ui/src/components/Autocomplete.d.ts +21 -0
- package/dist/ui/src/components/Avatar.d.ts +11 -0
- package/dist/ui/src/components/Badge.d.ts +8 -0
- package/dist/ui/src/components/BooleanSwitch.d.ts +14 -0
- package/dist/ui/src/components/BooleanSwitchWithLabel.d.ts +17 -0
- package/dist/ui/src/components/Button.d.ts +14 -0
- package/dist/ui/src/components/Card.d.ts +9 -0
- package/dist/ui/src/components/CenteredView.d.ts +9 -0
- package/dist/ui/src/components/Checkbox.d.ts +13 -0
- package/dist/ui/src/components/Chip.d.ts +26 -0
- package/dist/ui/src/components/CircularProgress.d.ts +5 -0
- package/dist/ui/src/components/CircularProgressCenter.d.ts +11 -0
- package/dist/ui/src/components/Collapse.d.ts +9 -0
- package/dist/ui/src/components/ColorPicker.d.ts +30 -0
- package/dist/ui/src/components/Container.d.ts +8 -0
- package/dist/ui/src/components/DateTimeField.d.ts +24 -0
- package/dist/ui/src/components/DebouncedTextField.d.ts +2 -0
- package/dist/ui/src/components/Dialog.d.ts +39 -0
- package/dist/ui/src/components/DialogActions.d.ts +7 -0
- package/dist/ui/src/components/DialogContent.d.ts +7 -0
- package/dist/ui/src/components/DialogTitle.d.ts +10 -0
- package/dist/ui/src/components/ErrorBoundary.d.ts +11 -0
- package/dist/ui/src/components/ExpandablePanel.d.ts +12 -0
- package/dist/ui/src/components/FileUpload.d.ts +23 -0
- package/dist/ui/src/components/IconButton.d.ts +12 -0
- package/dist/ui/src/components/InfoLabel.d.ts +5 -0
- package/dist/ui/src/components/InputLabel.d.ts +11 -0
- package/dist/ui/src/components/Label.d.ts +7 -0
- package/dist/ui/src/components/LoadingButton.d.ts +7 -0
- package/dist/ui/src/components/Markdown.d.ts +10 -0
- package/dist/ui/src/components/Menu.d.ts +23 -0
- package/dist/ui/src/components/Menubar.d.ts +80 -0
- package/dist/ui/src/components/MultiSelect.d.ts +48 -0
- package/dist/ui/src/components/Paper.d.ts +6 -0
- package/dist/ui/src/components/Popover.d.ts +24 -0
- package/dist/ui/src/components/RadioGroup.d.ts +28 -0
- package/dist/ui/src/components/ResizablePanels.d.ts +18 -0
- package/dist/ui/src/components/SearchBar.d.ts +22 -0
- package/dist/ui/src/components/Select.d.ts +43 -0
- package/dist/ui/src/components/Separator.d.ts +5 -0
- package/dist/ui/src/components/Sheet.d.ts +22 -0
- package/dist/ui/src/components/Skeleton.d.ts +6 -0
- package/dist/ui/src/components/Slider.d.ts +21 -0
- package/dist/ui/src/components/Table.d.ts +34 -0
- package/dist/ui/src/components/Tabs.d.ts +19 -0
- package/dist/ui/src/components/TextField.d.ts +58 -0
- package/dist/ui/src/components/TextareaAutosize.d.ts +43 -0
- package/dist/ui/src/components/ToggleButtonGroup.d.ts +30 -0
- package/dist/ui/src/components/Tooltip.d.ts +19 -0
- package/dist/ui/src/components/Typography.d.ts +36 -0
- package/dist/ui/src/components/VirtualTable/VirtualTable.d.ts +11 -0
- package/dist/ui/src/components/VirtualTable/VirtualTableCell.d.ts +21 -0
- package/dist/ui/src/components/VirtualTable/VirtualTableHeader.d.ts +29 -0
- package/dist/ui/src/components/VirtualTable/VirtualTableHeaderRow.d.ts +2 -0
- package/dist/ui/src/components/VirtualTable/VirtualTableProps.d.ts +243 -0
- package/dist/ui/src/components/VirtualTable/VirtualTableRow.d.ts +3 -0
- package/dist/ui/src/components/VirtualTable/index.d.ts +3 -0
- package/dist/ui/src/components/VirtualTable/types.d.ts +38 -0
- package/dist/ui/src/components/common/SelectInputLabel.d.ts +5 -0
- package/dist/ui/src/components/index.d.ts +53 -0
- package/dist/ui/src/hooks/PortalContainerContext.d.ts +31 -0
- package/dist/ui/src/hooks/index.d.ts +6 -0
- package/dist/ui/src/hooks/useDebounceCallback.d.ts +1 -0
- package/dist/ui/src/hooks/useDebounceValue.d.ts +1 -0
- package/dist/ui/src/hooks/useDebouncedCallback.d.ts +1 -0
- package/dist/ui/src/hooks/useInjectStyles.d.ts +7 -0
- package/dist/ui/src/hooks/useOutsideAlerter.d.ts +5 -0
- package/dist/ui/src/icons/GitHubIcon.d.ts +2 -0
- package/dist/ui/src/icons/HandleIcon.d.ts +1 -0
- package/dist/ui/src/icons/Icon.d.ts +20 -0
- package/dist/ui/src/icons/cool_icon_keys.d.ts +1 -0
- package/dist/ui/src/icons/icon_keys.d.ts +1 -0
- package/dist/ui/src/icons/index.d.ts +6 -0
- package/dist/ui/src/index.d.ts +5 -0
- package/dist/ui/src/styles.d.ts +12 -0
- package/dist/ui/src/util/chip_colors.d.ts +4 -0
- package/dist/ui/src/util/cls.d.ts +2 -0
- package/dist/ui/src/util/debounce.d.ts +10 -0
- package/dist/ui/src/util/hash.d.ts +1 -0
- package/dist/ui/src/util/index.d.ts +4 -0
- package/dist/ui/src/util/key_to_icon_component.d.ts +1 -0
- package/package.json +84 -0
- package/src/components/ApiExplorer/ApiExplorer.tsx +290 -0
- package/src/components/ApiExplorer/EndpointDetail.tsx +271 -0
- package/src/components/ApiExplorer/TryItPanel.tsx +510 -0
- package/src/components/ApiExplorer/parseSpec.ts +104 -0
- package/src/components/ApiExplorer/types.ts +84 -0
- package/src/components/AuthSimulationSelector.tsx +77 -0
- package/src/components/Branches/BranchesView.tsx +370 -0
- package/src/components/CronJobs/CronJobsView.tsx +346 -0
- package/src/components/JSEditor/JSEditor.tsx +1033 -0
- package/src/components/JSEditor/JSEditorSidebar.tsx +340 -0
- package/src/components/JSEditor/JSMonacoEditor.tsx +390 -0
- package/src/components/RLSEditor/PolicyEditor.tsx +444 -0
- package/src/components/RLSEditor/RLSEditor.tsx +692 -0
- package/src/components/RLSEditor/index.ts +1 -0
- package/src/components/RebaseStudio.tsx +121 -0
- package/src/components/SQLEditor/ExplainVisualizer.tsx +128 -0
- package/src/components/SQLEditor/MonacoEditor.tsx +203 -0
- package/src/components/SQLEditor/SQLEditor.tsx +1419 -0
- package/src/components/SQLEditor/SQLEditorSidebar.tsx +174 -0
- package/src/components/SQLEditor/SchemaBrowser.tsx +158 -0
- package/src/components/SchemaVisualizer/RelationEdge.tsx +102 -0
- package/src/components/SchemaVisualizer/SchemaVisualizer.tsx +665 -0
- package/src/components/SchemaVisualizer/TableNode.tsx +257 -0
- package/src/components/SchemaVisualizer/index.ts +5 -0
- package/src/components/SchemaVisualizer/schema-visualizer.utils.ts +140 -0
- package/src/components/SchemaVisualizer/useSchemaGraph.ts +397 -0
- package/src/components/StorageView/StorageView.tsx +1035 -0
- package/src/components/StudioHomePage.tsx +357 -0
- package/src/index.ts +31 -0
- package/src/utils/entities.ts +2 -0
- package/src/utils/pgColumnToProperty.test.ts +401 -0
- package/src/utils/pgColumnToProperty.ts +275 -0
- package/src/utils/sql_utils.test.ts +265 -0
- package/src/utils/sql_utils.ts +291 -0
- package/src/vite-env.d.ts +1 -0
|
@@ -0,0 +1,357 @@
|
|
|
1
|
+
import type { HomePageSection, PluginGenericProps } from "@rebasepro/types";
|
|
2
|
+
import React, { useEffect } from "react";
|
|
3
|
+
import { Card, cls, Container, Typography } from "@rebasepro/ui";
|
|
4
|
+
import { ArrowRightIcon } from "lucide-react";
|
|
5
|
+
import { iconSize } from "@rebasepro/ui";
|
|
6
|
+
import { IconForView, useRebaseContext, useRestoreScroll, useSlot } from "@rebasepro/core";
|
|
7
|
+
import { useNavigate } from "react-router-dom";
|
|
8
|
+
import { useStudioBreadcrumbs } from "@rebasepro/core";
|
|
9
|
+
|
|
10
|
+
/* ═══════════════════════════════════════════════════════════════
|
|
11
|
+
Static studio tool definitions
|
|
12
|
+
═══════════════════════════════════════════════════════════════ */
|
|
13
|
+
|
|
14
|
+
interface StudioTool {
|
|
15
|
+
path: string;
|
|
16
|
+
name: string;
|
|
17
|
+
description: string;
|
|
18
|
+
icon: string;
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
interface StudioSection {
|
|
22
|
+
label: string;
|
|
23
|
+
dotColor: string;
|
|
24
|
+
iconColor: string;
|
|
25
|
+
tools: StudioTool[];
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
const SECTIONS: StudioSection[] = [
|
|
29
|
+
{
|
|
30
|
+
label: "Database",
|
|
31
|
+
dotColor: "bg-emerald-400",
|
|
32
|
+
iconColor: "text-emerald-400",
|
|
33
|
+
tools: [
|
|
34
|
+
{ path: "/schema", name: "Collections", description: "Define and manage your data model and collection schemas", icon: "LayoutList" },
|
|
35
|
+
{ path: "/schema-visualizer", name: "Schema Visualizer", description: "Interactive ERD showing tables, columns, and relationships", icon: "Network" },
|
|
36
|
+
{ path: "/sql", name: "SQL Console", description: "Execute raw SQL queries directly against your database", icon: "terminal" },
|
|
37
|
+
{ path: "/branches", name: "Branches", description: "Create and manage isolated database copies for development", icon: "GitBranch" },
|
|
38
|
+
{ path: "/rls", name: "RLS Policies", description: "Configure Row Level Security for fine-grained data access", icon: "ShieldCheck" }
|
|
39
|
+
]
|
|
40
|
+
},
|
|
41
|
+
{
|
|
42
|
+
label: "Compute",
|
|
43
|
+
dotColor: "bg-blue-400",
|
|
44
|
+
iconColor: "text-blue-400",
|
|
45
|
+
tools: [
|
|
46
|
+
{ path: "/js", name: "JS Console", description: "Run JavaScript with the Rebase SDK in a live sandbox", icon: "code" },
|
|
47
|
+
{ path: "/cron", name: "Cron Jobs", description: "Monitor and manage scheduled background tasks", icon: "Clock" }
|
|
48
|
+
]
|
|
49
|
+
},
|
|
50
|
+
{
|
|
51
|
+
label: "API",
|
|
52
|
+
dotColor: "bg-violet-400",
|
|
53
|
+
iconColor: "text-violet-400",
|
|
54
|
+
tools: [
|
|
55
|
+
{ path: "/api", name: "API Explorer", description: "Interactive API documentation with live request testing", icon: "BookOpen" }
|
|
56
|
+
]
|
|
57
|
+
},
|
|
58
|
+
{
|
|
59
|
+
label: "Storage",
|
|
60
|
+
dotColor: "bg-amber-400",
|
|
61
|
+
iconColor: "text-amber-400",
|
|
62
|
+
tools: [
|
|
63
|
+
{ path: "/storage", name: "Storage", description: "Browse, upload, and manage files in your storage bucket", icon: "HardDrive" }
|
|
64
|
+
]
|
|
65
|
+
},
|
|
66
|
+
{
|
|
67
|
+
label: "Access Control",
|
|
68
|
+
dotColor: "bg-rose-400",
|
|
69
|
+
iconColor: "text-rose-400",
|
|
70
|
+
tools: [
|
|
71
|
+
{ path: "/users", name: "Users", description: "Manage developers and assign roles in your workspace", icon: "group" },
|
|
72
|
+
{ path: "/roles", name: "Roles", description: "Create and configure fine-grained access permissions", icon: "ShieldEllipsis" }
|
|
73
|
+
]
|
|
74
|
+
}
|
|
75
|
+
];
|
|
76
|
+
|
|
77
|
+
/* ═══════════════════════════════════════════════════════════════ */
|
|
78
|
+
|
|
79
|
+
export function StudioHomePage({
|
|
80
|
+
additionalActions,
|
|
81
|
+
additionalChildrenStart,
|
|
82
|
+
additionalChildrenEnd,
|
|
83
|
+
sections,
|
|
84
|
+
hiddenGroups
|
|
85
|
+
}: {
|
|
86
|
+
additionalActions?: React.ReactNode;
|
|
87
|
+
additionalChildrenStart?: React.ReactNode;
|
|
88
|
+
additionalChildrenEnd?: React.ReactNode;
|
|
89
|
+
sections?: HomePageSection[];
|
|
90
|
+
hiddenGroups?: string[];
|
|
91
|
+
}) {
|
|
92
|
+
const context = useRebaseContext();
|
|
93
|
+
const breadcrumbs = useStudioBreadcrumbs();
|
|
94
|
+
const navigate = useNavigate();
|
|
95
|
+
|
|
96
|
+
useEffect(() => {
|
|
97
|
+
breadcrumbs.set({ breadcrumbs: [] });
|
|
98
|
+
}, [breadcrumbs.set]);
|
|
99
|
+
|
|
100
|
+
const { containerRef } = useRestoreScroll();
|
|
101
|
+
|
|
102
|
+
const sectionProps: PluginGenericProps = { context };
|
|
103
|
+
|
|
104
|
+
const pluginActions = useSlot("home.actions", sectionProps);
|
|
105
|
+
|
|
106
|
+
return (
|
|
107
|
+
<div ref={containerRef} className="py-2 overflow-auto h-full w-full">
|
|
108
|
+
<Container maxWidth="6xl">
|
|
109
|
+
|
|
110
|
+
{(additionalActions || pluginActions) && (
|
|
111
|
+
<div className="w-full sticky py-4 transition-all duration-400 ease-in-out top-0 z-10 flex flex-row gap-4 justify-end">
|
|
112
|
+
{additionalActions}
|
|
113
|
+
{pluginActions}
|
|
114
|
+
</div>
|
|
115
|
+
)}
|
|
116
|
+
|
|
117
|
+
{additionalChildrenStart}
|
|
118
|
+
|
|
119
|
+
{/* ── Tool sections ── */}
|
|
120
|
+
<div className="flex flex-col gap-8 pt-2">
|
|
121
|
+
{SECTIONS.map((section) => (
|
|
122
|
+
<section key={section.label} aria-label={section.label}>
|
|
123
|
+
{/* Section header */}
|
|
124
|
+
<Typography
|
|
125
|
+
variant="caption"
|
|
126
|
+
component="h2"
|
|
127
|
+
color="secondary"
|
|
128
|
+
className="py-2 font-medium uppercase text-sm text-surface-600 dark:text-surface-400"
|
|
129
|
+
>
|
|
130
|
+
{section.label}
|
|
131
|
+
</Typography>
|
|
132
|
+
|
|
133
|
+
{/* Card grid */}
|
|
134
|
+
<div className="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-3 mt-2">
|
|
135
|
+
{section.tools.map((tool) => (
|
|
136
|
+
<Card
|
|
137
|
+
key={tool.path}
|
|
138
|
+
onClick={() => {
|
|
139
|
+
navigate(tool.path);
|
|
140
|
+
context.analyticsController?.onAnalyticsEvent?.(
|
|
141
|
+
"home_navigate_to_view",
|
|
142
|
+
{ path: tool.path }
|
|
143
|
+
);
|
|
144
|
+
}}
|
|
145
|
+
className={cls(
|
|
146
|
+
"h-full px-4 py-2.5 cursor-pointer transition-all duration-200 ease-in-out",
|
|
147
|
+
"hover:-translate-y-0.5 hover:shadow-md hover:shadow-primary/5"
|
|
148
|
+
)}
|
|
149
|
+
>
|
|
150
|
+
<div className="flex flex-col items-start h-full">
|
|
151
|
+
<div className="grow w-full">
|
|
152
|
+
{/* Icon */}
|
|
153
|
+
<div className={cls("h-6 flex items-center", section.iconColor)}>
|
|
154
|
+
<IconForView
|
|
155
|
+
collectionOrView={{ slug: tool.path,
|
|
156
|
+
name: tool.name,
|
|
157
|
+
icon: tool.icon }}
|
|
158
|
+
size="small"
|
|
159
|
+
/>
|
|
160
|
+
</div>
|
|
161
|
+
|
|
162
|
+
{/* Title */}
|
|
163
|
+
<Typography
|
|
164
|
+
gutterBottom
|
|
165
|
+
variant="subtitle1"
|
|
166
|
+
className="mt-1 font-semibold"
|
|
167
|
+
component="h2"
|
|
168
|
+
>
|
|
169
|
+
{tool.name}
|
|
170
|
+
</Typography>
|
|
171
|
+
|
|
172
|
+
{/* Description */}
|
|
173
|
+
<Typography variant="caption" color="secondary" component="div">
|
|
174
|
+
{tool.description}
|
|
175
|
+
</Typography>
|
|
176
|
+
</div>
|
|
177
|
+
|
|
178
|
+
{/* Arrow */}
|
|
179
|
+
<div style={{ alignSelf: "flex-end" }}>
|
|
180
|
+
<div className="p-2">
|
|
181
|
+
<ArrowRightIcon className="text-primary" size={iconSize.small}/>
|
|
182
|
+
</div>
|
|
183
|
+
</div>
|
|
184
|
+
</div>
|
|
185
|
+
</Card>
|
|
186
|
+
))}
|
|
187
|
+
</div>
|
|
188
|
+
</section>
|
|
189
|
+
))}
|
|
190
|
+
</div>
|
|
191
|
+
|
|
192
|
+
{/* ── SDK Quick Start ── */}
|
|
193
|
+
<div className="mt-10 mb-6">
|
|
194
|
+
<div className="flex items-center mb-1">
|
|
195
|
+
<Typography
|
|
196
|
+
variant="caption"
|
|
197
|
+
component="h2"
|
|
198
|
+
color="secondary"
|
|
199
|
+
className="py-2 font-medium uppercase text-sm text-surface-600 dark:text-surface-400"
|
|
200
|
+
>
|
|
201
|
+
Quick Start
|
|
202
|
+
</Typography>
|
|
203
|
+
</div>
|
|
204
|
+
|
|
205
|
+
<Typography variant="body2" color="secondary" className="mb-4 max-w-2xl">
|
|
206
|
+
Generate a fully-typed SDK from your collections with{" "}
|
|
207
|
+
<code className="text-emerald-400 font-mono text-xs bg-emerald-400/10 px-1.5 py-0.5 rounded">
|
|
208
|
+
npx rebase generate-sdk
|
|
209
|
+
</code>
|
|
210
|
+
{" "}and start querying your data with full TypeScript autocompletion.
|
|
211
|
+
</Typography>
|
|
212
|
+
|
|
213
|
+
<div className="rounded-lg border border-surface-200/40 dark:border-surface-700/40 bg-white dark:bg-surface-950 overflow-hidden">
|
|
214
|
+
{/* Title bar */}
|
|
215
|
+
<div className="flex items-center justify-between px-4 py-2.5 border-b border-surface-200/40 dark:border-surface-700/40 bg-surface-50 dark:bg-surface-900/80">
|
|
216
|
+
<div className="flex items-center gap-2.5">
|
|
217
|
+
<div className="flex gap-1.5">
|
|
218
|
+
<span className="w-2.5 h-2.5 rounded-full bg-red-400/60"/>
|
|
219
|
+
<span className="w-2.5 h-2.5 rounded-full bg-amber-400/60"/>
|
|
220
|
+
<span className="w-2.5 h-2.5 rounded-full bg-emerald-400/60"/>
|
|
221
|
+
</div>
|
|
222
|
+
<span className="text-xs font-mono text-surface-400 dark:text-surface-500 ml-1">
|
|
223
|
+
app.ts
|
|
224
|
+
</span>
|
|
225
|
+
</div>
|
|
226
|
+
<span className="text-xs font-mono text-surface-400 dark:text-surface-500">
|
|
227
|
+
TypeScript
|
|
228
|
+
</span>
|
|
229
|
+
</div>
|
|
230
|
+
|
|
231
|
+
{/* Syntax-highlighted code */}
|
|
232
|
+
<div className="px-5 py-4 overflow-x-auto text-[13px] leading-6 font-mono">
|
|
233
|
+
<SyntaxHighlightedSnippet/>
|
|
234
|
+
</div>
|
|
235
|
+
</div>
|
|
236
|
+
</div>
|
|
237
|
+
|
|
238
|
+
{/* ── Extra sections from props ── */}
|
|
239
|
+
{sections?.map((s) => (
|
|
240
|
+
<div key={s.key} className="my-10">
|
|
241
|
+
<Typography
|
|
242
|
+
variant="caption"
|
|
243
|
+
component="h2"
|
|
244
|
+
color="secondary"
|
|
245
|
+
className="p-4 py-2 rounded font-medium uppercase text-sm text-surface-600 dark:text-surface-400"
|
|
246
|
+
>
|
|
247
|
+
{s.title}
|
|
248
|
+
</Typography>
|
|
249
|
+
<div className="mt-4">{s.children}</div>
|
|
250
|
+
</div>
|
|
251
|
+
))}
|
|
252
|
+
|
|
253
|
+
{additionalChildrenEnd}
|
|
254
|
+
</Container>
|
|
255
|
+
</div>
|
|
256
|
+
);
|
|
257
|
+
}
|
|
258
|
+
|
|
259
|
+
/* ═══════════════════════════════════════════════════════════════
|
|
260
|
+
Hand-crafted syntax-highlighted code snippet.
|
|
261
|
+
Uses inline spans with Tailwind color classes to avoid
|
|
262
|
+
pulling in a syntax highlighting library.
|
|
263
|
+
═══════════════════════════════════════════════════════════════ */
|
|
264
|
+
|
|
265
|
+
function SyntaxHighlightedSnippet() {
|
|
266
|
+
const kw = "text-violet-600 dark:text-violet-400"; // keywords
|
|
267
|
+
const str = "text-emerald-600 dark:text-emerald-400"; // strings
|
|
268
|
+
const typ = "text-amber-600 dark:text-amber-300"; // types
|
|
269
|
+
const fn = "text-blue-600 dark:text-blue-400"; // functions
|
|
270
|
+
const cm = "text-surface-500 dark:text-surface-400 italic"; // comments
|
|
271
|
+
const op = "text-surface-500 dark:text-surface-400"; // operators / punctuation
|
|
272
|
+
const tx = "text-surface-950 dark:text-surface-200"; // plain text
|
|
273
|
+
|
|
274
|
+
return (
|
|
275
|
+
<pre className="m-0 whitespace-pre">
|
|
276
|
+
<span className={kw}>import</span>
|
|
277
|
+
<span className={tx}>{" { "}</span>
|
|
278
|
+
<span className={fn}>createRebaseClient</span>
|
|
279
|
+
<span className={tx}>{" } "}</span>
|
|
280
|
+
<span className={kw}>from</span>
|
|
281
|
+
<span className={tx}> </span>
|
|
282
|
+
<span className={str}>'@rebasepro/client'</span>
|
|
283
|
+
<span className={op}>;</span>
|
|
284
|
+
{"\n"}
|
|
285
|
+
|
|
286
|
+
<span className={kw}>import</span>
|
|
287
|
+
<span className={tx}> </span>
|
|
288
|
+
<span className={kw}>type</span>
|
|
289
|
+
<span className={tx}>{" { "}</span>
|
|
290
|
+
<span className={typ}>Database</span>
|
|
291
|
+
<span className={tx}>{" } "}</span>
|
|
292
|
+
<span className={kw}>from</span>
|
|
293
|
+
<span className={tx}> </span>
|
|
294
|
+
<span className={str}>'./database.types'</span>
|
|
295
|
+
<span className={op}>;</span>
|
|
296
|
+
{"\n\n"}
|
|
297
|
+
|
|
298
|
+
<span className={kw}>const</span>
|
|
299
|
+
<span className={tx}> rebase </span>
|
|
300
|
+
<span className={op}>= </span>
|
|
301
|
+
<span className={fn}>createRebaseClient</span>
|
|
302
|
+
<span className={op}>{"<"}</span>
|
|
303
|
+
<span className={typ}>Database</span>
|
|
304
|
+
<span className={op}>{">("}</span>
|
|
305
|
+
<span className={tx}>{"{"}</span>
|
|
306
|
+
{"\n"}
|
|
307
|
+
<span className={tx}>{" baseUrl"}</span>
|
|
308
|
+
<span className={op}>: </span>
|
|
309
|
+
<span className={str}>'http://localhost:3001'</span>
|
|
310
|
+
<span className={op}>,</span>
|
|
311
|
+
{"\n"}
|
|
312
|
+
<span className={tx}>{"}"}</span>
|
|
313
|
+
<span className={op}>);</span>
|
|
314
|
+
{"\n\n"}
|
|
315
|
+
|
|
316
|
+
<span className={cm}>{"// Fully typed — autocompletion for tables and columns"}</span>
|
|
317
|
+
{"\n"}
|
|
318
|
+
<span className={kw}>const</span>
|
|
319
|
+
<span className={tx}>{" { "}</span>
|
|
320
|
+
<span className={tx}>data</span>
|
|
321
|
+
<span className={op}>: </span>
|
|
322
|
+
<span className={tx}>users</span>
|
|
323
|
+
<span className={tx}>{" } "}</span>
|
|
324
|
+
<span className={op}>= </span>
|
|
325
|
+
<span className={kw}>await</span>
|
|
326
|
+
<span className={tx}> rebase</span>
|
|
327
|
+
<span className={op}>.</span>
|
|
328
|
+
<span className={tx}>data</span>
|
|
329
|
+
<span className={op}>.</span>
|
|
330
|
+
<span className={tx}>users</span>
|
|
331
|
+
<span className={op}>.</span>
|
|
332
|
+
<span className={fn}>find</span>
|
|
333
|
+
<span className={op}>();</span>
|
|
334
|
+
{"\n"}
|
|
335
|
+
|
|
336
|
+
<span className={kw}>const</span>
|
|
337
|
+
<span className={tx}>{" { "}</span>
|
|
338
|
+
<span className={tx}>data</span>
|
|
339
|
+
<span className={op}>: </span>
|
|
340
|
+
<span className={tx}>posts</span>
|
|
341
|
+
<span className={tx}>{" } "}</span>
|
|
342
|
+
<span className={op}>= </span>
|
|
343
|
+
<span className={kw}>await</span>
|
|
344
|
+
<span className={tx}> rebase</span>
|
|
345
|
+
<span className={op}>.</span>
|
|
346
|
+
<span className={tx}>data</span>
|
|
347
|
+
<span className={op}>.</span>
|
|
348
|
+
<span className={fn}>collection</span>
|
|
349
|
+
<span className={op}>(</span>
|
|
350
|
+
<span className={str}>'posts'</span>
|
|
351
|
+
<span className={op}>)</span>
|
|
352
|
+
<span className={op}>.</span>
|
|
353
|
+
<span className={fn}>find</span>
|
|
354
|
+
<span className={op}>();</span>
|
|
355
|
+
</pre>
|
|
356
|
+
);
|
|
357
|
+
}
|
package/src/index.ts
ADDED
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
// ─── Bridge ─────────────────────────────────────────────────────────
|
|
2
|
+
// Re-export the Studio Bridge from @rebasepro/core.
|
|
3
|
+
// The bridge lives in core so both studio and CMS can access it
|
|
4
|
+
// without circular dependencies.
|
|
5
|
+
export {
|
|
6
|
+
StudioBridgeProvider,
|
|
7
|
+
StudioBridgeContext,
|
|
8
|
+
useStudioCollectionRegistry,
|
|
9
|
+
useStudioSideEntityController,
|
|
10
|
+
useStudioUrlController,
|
|
11
|
+
useStudioNavigationState,
|
|
12
|
+
useStudioBreadcrumbs
|
|
13
|
+
} from "@rebasepro/core";
|
|
14
|
+
export type {
|
|
15
|
+
StudioBridge,
|
|
16
|
+
BreadcrumbEntry,
|
|
17
|
+
BreadcrumbsController
|
|
18
|
+
} from "@rebasepro/core";
|
|
19
|
+
|
|
20
|
+
// ─── Studio Entry Point ─────────────────────────────────────────────
|
|
21
|
+
// Only export the lightweight orchestrator & home page.
|
|
22
|
+
// Individual tools (SQLEditor, JSEditor, RLSEditor, StorageView, etc.)
|
|
23
|
+
// are lazy-loaded by RebaseStudio.tsx — DO NOT re-export them here
|
|
24
|
+
// or they'll be pulled into the main bundle, defeating code splitting.
|
|
25
|
+
export * from "./components/RebaseStudio";
|
|
26
|
+
export * from "./components/StudioHomePage";
|
|
27
|
+
|
|
28
|
+
// ─── Direct tool imports (for advanced usage) ───────────────────────
|
|
29
|
+
// Consumers that need direct access to a tool should use deep imports:
|
|
30
|
+
// import { SQLEditor } from "@rebasepro/studio/components/SQLEditor/SQLEditor";
|
|
31
|
+
// This avoids pulling all tools into their bundle.
|