mirror of
https://github.com/dbeaver/cloudbeaver.git
synced 2026-09-24 16:04:36 +08:00
dbeaver/pro#6783 refactor: plugins bundles (#3761)
Co-authored-by: mr-anton-t <42037741+mr-anton-t@users.noreply.github.com>
This commit is contained in:
co-authored by
mr-anton-t
parent
58b8eafc7b
commit
0fe432f45c
@@ -12,7 +12,8 @@
|
||||
"description": "",
|
||||
"license": "Apache-2.0",
|
||||
"exports": {
|
||||
".": "./lib/index.js"
|
||||
".": "./lib/index.js",
|
||||
"./module": "./lib/module.js"
|
||||
},
|
||||
"scripts": {
|
||||
"build": "tsc -b",
|
||||
@@ -34,7 +35,7 @@
|
||||
"@cloudbeaver/core-settings": "workspace:*",
|
||||
"@cloudbeaver/core-storage": "workspace:*",
|
||||
"@cloudbeaver/core-utils": "workspace:*",
|
||||
"@dbeaver/js-helpers": "workspace:^",
|
||||
"@dbeaver/js-helpers": "workspace:*",
|
||||
"mobx": "^6",
|
||||
"tslib": "^2"
|
||||
},
|
||||
@@ -42,6 +43,7 @@
|
||||
"@cloudbeaver/core-cli": "workspace:*",
|
||||
"@cloudbeaver/tsconfig": "workspace:*",
|
||||
"@dbeaver/cli": "workspace:*",
|
||||
"rimraf": "^6",
|
||||
"typescript": "^5"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -7,7 +7,6 @@
|
||||
*/
|
||||
|
||||
import './module.js';
|
||||
export * from './manifest.js';
|
||||
export * from './AdministrationItem/AdministrationItemService.js';
|
||||
export * from './AdministrationItem/filterConfigurationWizard.js';
|
||||
export * from './AdministrationItem/IAdministrationItem.js';
|
||||
|
||||
@@ -1,14 +0,0 @@
|
||||
/*
|
||||
* CloudBeaver - Cloud Database Manager
|
||||
* Copyright (C) 2020-2025 DBeaver Corp and others
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0.
|
||||
* you may not use this file except in compliance with the License.
|
||||
*/
|
||||
import type { PluginManifest } from '@cloudbeaver/core-di';
|
||||
|
||||
export const coreAdministrationManifest: PluginManifest = {
|
||||
info: {
|
||||
name: 'Core Administration',
|
||||
},
|
||||
};
|
||||
@@ -14,7 +14,7 @@ import { AdministrationScreenService } from './AdministrationScreen/Administrati
|
||||
import { AdministrationLocaleService } from './AdministrationLocaleService.js';
|
||||
import { AdministrationItemService } from './AdministrationItem/AdministrationItemService.js';
|
||||
|
||||
ModuleRegistry.add({
|
||||
export default ModuleRegistry.add({
|
||||
name: '@cloudbeaver/core-administration',
|
||||
|
||||
configure: serviceCollection => {
|
||||
|
||||
@@ -12,7 +12,8 @@
|
||||
"description": "",
|
||||
"license": "Apache-2.0",
|
||||
"exports": {
|
||||
".": "./lib/index.js"
|
||||
".": "./lib/index.js",
|
||||
"./module": "./lib/module.js"
|
||||
},
|
||||
"scripts": {
|
||||
"build": "tsc -b",
|
||||
@@ -35,7 +36,7 @@
|
||||
"@cloudbeaver/core-ui": "workspace:*",
|
||||
"@cloudbeaver/core-utils": "workspace:*",
|
||||
"@cloudbeaver/core-version": "workspace:*",
|
||||
"@dbeaver/ui-kit": "workspace:^",
|
||||
"@dbeaver/ui-kit": "workspace:*",
|
||||
"mobx": "^6",
|
||||
"mobx-react-lite": "^4",
|
||||
"react": "^19",
|
||||
@@ -46,6 +47,7 @@
|
||||
"@cloudbeaver/core-cli": "workspace:*",
|
||||
"@cloudbeaver/tsconfig": "workspace:*",
|
||||
"@types/react": "^19",
|
||||
"rimraf": "^6",
|
||||
"typescript": "^5",
|
||||
"typescript-plugin-css-modules": "^5"
|
||||
}
|
||||
|
||||
@@ -15,6 +15,3 @@ export * from './AppLocaleService.js';
|
||||
|
||||
// components
|
||||
export * from './BodyLazy.js';
|
||||
|
||||
// Interfaces
|
||||
export * from './manifest.js';
|
||||
|
||||
@@ -1,14 +0,0 @@
|
||||
/*
|
||||
* CloudBeaver - Cloud Database Manager
|
||||
* Copyright (C) 2020-2025 DBeaver Corp and others
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0.
|
||||
* you may not use this file except in compliance with the License.
|
||||
*/
|
||||
import type { PluginManifest } from '@cloudbeaver/core-di';
|
||||
|
||||
export const coreAppManifest: PluginManifest = {
|
||||
info: {
|
||||
name: 'Core App',
|
||||
},
|
||||
};
|
||||
@@ -11,7 +11,7 @@ import { AppScreenService } from './AppScreen/AppScreenService.js';
|
||||
import { AppScreenBootstrap } from './AppScreen/AppScreenBootstrap.js';
|
||||
import { AppLocaleService } from './AppLocaleService.js';
|
||||
|
||||
ModuleRegistry.add({
|
||||
export default ModuleRegistry.add({
|
||||
name: '@cloudbeaver/core-app',
|
||||
|
||||
configure: serviceCollection => {
|
||||
|
||||
@@ -13,6 +13,7 @@
|
||||
"license": "Apache-2.0",
|
||||
"exports": {
|
||||
".": "./lib/index.js",
|
||||
"./module": "./lib/module.js",
|
||||
"./*": "./lib/*"
|
||||
},
|
||||
"scripts": {
|
||||
@@ -34,17 +35,19 @@
|
||||
"@cloudbeaver/core-settings": "workspace:*",
|
||||
"@cloudbeaver/core-storage": "workspace:*",
|
||||
"@cloudbeaver/core-utils": "workspace:*",
|
||||
"@dbeaver/js-helpers": "workspace:^",
|
||||
"@dbeaver/js-helpers": "workspace:*",
|
||||
"mobx": "^6",
|
||||
"tslib": "^2"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@cloudbeaver/core-cli": "workspace:*",
|
||||
"@cloudbeaver/core-root": "workspace:*",
|
||||
"@cloudbeaver/core-sdk": "workspace:*",
|
||||
"@cloudbeaver/core-settings": "workspace:*",
|
||||
"@cloudbeaver/tests-runner": "workspace:*",
|
||||
"@cloudbeaver/tsconfig": "workspace:*",
|
||||
"@dbeaver/cli": "workspace:*",
|
||||
"@dbeaver/react-tests": "workspace:^",
|
||||
"@dbeaver/react-tests": "workspace:*",
|
||||
"msw": "^2",
|
||||
"rimraf": "^6",
|
||||
"typescript": "^5",
|
||||
|
||||
@@ -8,7 +8,6 @@
|
||||
|
||||
import './module.js';
|
||||
|
||||
export * from './manifest.js';
|
||||
export * from './ELMRole.js';
|
||||
export * from './AppAuthService.js';
|
||||
export * from './AUTH_PROVIDER_LOCAL_ID.js';
|
||||
|
||||
@@ -1,14 +0,0 @@
|
||||
/*
|
||||
* CloudBeaver - Cloud Database Manager
|
||||
* Copyright (C) 2020-2025 DBeaver Corp and others
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0.
|
||||
* you may not use this file except in compliance with the License.
|
||||
*/
|
||||
import type { PluginManifest } from '@cloudbeaver/core-di';
|
||||
|
||||
export const coreAuthenticationManifest: PluginManifest = {
|
||||
info: {
|
||||
name: 'Core Authentication',
|
||||
},
|
||||
};
|
||||
@@ -31,7 +31,7 @@ import { AuthConfigurationsResource } from './AuthConfigurationsResource.js';
|
||||
import { AuthConfigurationParametersResource } from './AuthConfigurationParametersResource.js';
|
||||
import { AppAuthService } from './AppAuthService.js';
|
||||
|
||||
ModuleRegistry.add({
|
||||
export default ModuleRegistry.add({
|
||||
name: '@cloudbeaver/core-authentication',
|
||||
|
||||
configure: serviceCollection => {
|
||||
|
||||
@@ -12,7 +12,8 @@
|
||||
"description": "",
|
||||
"license": "Apache-2.0",
|
||||
"exports": {
|
||||
".": "./lib/index.js"
|
||||
".": "./lib/index.js",
|
||||
"./module": "./lib/module.js"
|
||||
},
|
||||
"scripts": {
|
||||
"build": "tsc -b",
|
||||
@@ -57,13 +58,14 @@
|
||||
"@cloudbeaver/tests-runner": "workspace:*",
|
||||
"@cloudbeaver/tsconfig": "workspace:*",
|
||||
"@dbeaver/cli": "workspace:*",
|
||||
"@dbeaver/react-tests": "workspace:^",
|
||||
"@dbeaver/react-tests": "workspace:*",
|
||||
"@testing-library/jest-dom": "^6",
|
||||
"@testing-library/react": "^16",
|
||||
"@types/react": "^19",
|
||||
"mobx": "^6",
|
||||
"react": "^19",
|
||||
"react-dom": "^19",
|
||||
"rimraf": "^6",
|
||||
"typescript": "^5",
|
||||
"typescript-plugin-css-modules": "^5",
|
||||
"vitest": "^3"
|
||||
|
||||
@@ -5,9 +5,9 @@
|
||||
* Licensed under the Apache License, Version 2.0.
|
||||
* you may not use this file except in compliance with the License.
|
||||
*/
|
||||
import type React from 'react';
|
||||
import { use } from 'react';
|
||||
|
||||
import { App, useService } from '@cloudbeaver/core-di';
|
||||
import { AppContext } from '@cloudbeaver/core-di';
|
||||
import { clsx } from '@dbeaver/ui-kit';
|
||||
|
||||
import style from './AppRefreshButton.module.css';
|
||||
@@ -17,10 +17,14 @@ interface IProps {
|
||||
}
|
||||
|
||||
export const AppRefreshButton: React.FC<IProps> = function AppRefreshButton({ className }) {
|
||||
const app = useService(App);
|
||||
const app = use(AppContext);
|
||||
|
||||
if (!app) {
|
||||
return null;
|
||||
}
|
||||
|
||||
function refresh() {
|
||||
app.restart();
|
||||
app?.restart();
|
||||
}
|
||||
|
||||
return (
|
||||
|
||||
@@ -19,6 +19,7 @@
|
||||
display: flex;
|
||||
margin: auto;
|
||||
padding: 16px 24px;
|
||||
gap: 8px;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
}
|
||||
@@ -29,4 +30,17 @@
|
||||
.details {
|
||||
padding: 8px 16px;
|
||||
white-space: pre-wrap;
|
||||
font-size: 14px;
|
||||
|
||||
& summary {
|
||||
cursor: pointer;
|
||||
margin-bottom: 8px;
|
||||
}
|
||||
|
||||
& code {
|
||||
display: block;
|
||||
font-size: 12px;
|
||||
overflow: auto;
|
||||
height: 250px;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
/*
|
||||
* CloudBeaver - Cloud Database Manager
|
||||
* Copyright (C) 2020-2024 DBeaver Corp and others
|
||||
* Copyright (C) 2020-2025 DBeaver Corp and others
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0.
|
||||
* you may not use this file except in compliance with the License.
|
||||
@@ -36,11 +36,19 @@ export const DisplayError = observer<Props>(function DisplayError({ root, childr
|
||||
{root && <AppRefreshButton />}
|
||||
{children}
|
||||
{error && (
|
||||
<div className={s(styles, { details: true })}>
|
||||
{error.toString()}
|
||||
{stack && <br />}
|
||||
{stack}
|
||||
</div>
|
||||
<details className={s(styles, { details: true })}>
|
||||
<summary>Details</summary>
|
||||
<p>
|
||||
{error.toString()}
|
||||
{stack && (
|
||||
<>
|
||||
<br />
|
||||
<br />
|
||||
</>
|
||||
)}
|
||||
<code>{stack}</code>
|
||||
</p>
|
||||
</details>
|
||||
)}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -251,7 +251,6 @@ export * from './useUserData.js';
|
||||
export * from './useListKeyboardNavigation.js';
|
||||
export * from './useMergeRefs.js';
|
||||
export * from './usePasswordValidation.js';
|
||||
export * from './manifest.js';
|
||||
export * from './importLazyComponent.js';
|
||||
export * from './ClickableLoader.js';
|
||||
export * from './FormControls/TagsComboboxLoader.js';
|
||||
|
||||
@@ -1,14 +0,0 @@
|
||||
/*
|
||||
* CloudBeaver - Cloud Database Manager
|
||||
* Copyright (C) 2020-2025 DBeaver Corp and others
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0.
|
||||
* you may not use this file except in compliance with the License.
|
||||
*/
|
||||
import type { PluginManifest } from '@cloudbeaver/core-di';
|
||||
|
||||
export const coreBlocksManifest: PluginManifest = {
|
||||
info: {
|
||||
name: 'Core Blocks',
|
||||
},
|
||||
};
|
||||
@@ -9,7 +9,7 @@
|
||||
import { Bootstrap, ModuleRegistry } from '@cloudbeaver/core-di';
|
||||
import { BlocksLocaleService } from './BlocksLocaleService.js';
|
||||
|
||||
ModuleRegistry.add({
|
||||
export default ModuleRegistry.add({
|
||||
name: '@cloudbeaver/core-blocks',
|
||||
|
||||
configure: serviceCollection => {
|
||||
|
||||
@@ -46,7 +46,16 @@ export function useS<T extends ComponentStyle[]>(...componentStyles: [...T]): Ex
|
||||
const stylesRef = useRef<ComponentStyle[]>([]);
|
||||
const [patch, forceUpdate] = useState(0);
|
||||
const loadedStyles = useRef<BaseStyles[]>([]);
|
||||
const themeService = useService(ThemeService);
|
||||
let themeService: ThemeService | undefined;
|
||||
|
||||
try {
|
||||
// this service not required, in some cases we don't have services initialized and need to show basic UI
|
||||
// eslint-disable-next-line react-hooks/rules-of-hooks
|
||||
themeService = useService(ThemeService);
|
||||
} catch {
|
||||
themeService = undefined;
|
||||
}
|
||||
|
||||
const [currentThemeId, setCurrentThemeId] = useState(() => themeService?.themeId);
|
||||
const lastThemeRef = useRef<string | undefined>(currentThemeId);
|
||||
const filteredStyles = themeService
|
||||
|
||||
@@ -12,7 +12,8 @@
|
||||
"description": "",
|
||||
"license": "Apache-2.0",
|
||||
"exports": {
|
||||
".": "./lib/index.js"
|
||||
".": "./lib/index.js",
|
||||
"./module": "./lib/module.js"
|
||||
},
|
||||
"scripts": {
|
||||
"build": "tsc -b",
|
||||
@@ -21,41 +22,10 @@
|
||||
"validate-dependencies": "core-cli-validate-dependencies"
|
||||
},
|
||||
"dependencies": {
|
||||
"@cloudbeaver/core-administration": "workspace:*",
|
||||
"@cloudbeaver/core-app": "workspace:*",
|
||||
"@cloudbeaver/core-authentication": "workspace:*",
|
||||
"@cloudbeaver/core-blocks": "workspace:*",
|
||||
"@cloudbeaver/core-browser": "workspace:*",
|
||||
"@cloudbeaver/core-browser-cookies": "workspace:*",
|
||||
"@cloudbeaver/core-browser-settings": "workspace:*",
|
||||
"@cloudbeaver/core-client-activity": "workspace:*",
|
||||
"@cloudbeaver/core-connections": "workspace:*",
|
||||
"@cloudbeaver/core-di": "workspace:*",
|
||||
"@cloudbeaver/core-dialogs": "workspace:*",
|
||||
"@cloudbeaver/core-events": "workspace:*",
|
||||
"@cloudbeaver/core-executor": "workspace:*",
|
||||
"@cloudbeaver/core-links": "workspace:*",
|
||||
"@cloudbeaver/core-localization": "workspace:*",
|
||||
"@cloudbeaver/core-navigation-tree": "workspace:*",
|
||||
"@cloudbeaver/core-product": "workspace:*",
|
||||
"@cloudbeaver/core-projects": "workspace:*",
|
||||
"@cloudbeaver/core-resource": "workspace:*",
|
||||
"@cloudbeaver/core-resource-manager": "workspace:*",
|
||||
"@cloudbeaver/core-root": "workspace:*",
|
||||
"@cloudbeaver/core-routing": "workspace:*",
|
||||
"@cloudbeaver/core-sdk": "workspace:*",
|
||||
"@cloudbeaver/core-server-localization": "workspace:*",
|
||||
"@cloudbeaver/core-session-localization": "workspace:*",
|
||||
"@cloudbeaver/core-settings": "workspace:*",
|
||||
"@cloudbeaver/core-settings-localization": "workspace:*",
|
||||
"@cloudbeaver/core-settings-user": "workspace:*",
|
||||
"@cloudbeaver/core-storage": "workspace:*",
|
||||
"@cloudbeaver/core-task-manager": "workspace:*",
|
||||
"@cloudbeaver/core-theming": "workspace:*",
|
||||
"@cloudbeaver/core-ui": "workspace:*",
|
||||
"@cloudbeaver/core-version": "workspace:*",
|
||||
"@cloudbeaver/core-version-update": "workspace:*",
|
||||
"@cloudbeaver/core-view": "workspace:*",
|
||||
"mobx": "^6",
|
||||
"react": "^19",
|
||||
"react-dom": "^19",
|
||||
@@ -66,6 +36,7 @@
|
||||
"@cloudbeaver/tsconfig": "workspace:*",
|
||||
"@types/react": "^19",
|
||||
"@types/react-dom": "^19",
|
||||
"rimraf": "^6",
|
||||
"typescript": "^5",
|
||||
"typescript-plugin-css-modules": "^5"
|
||||
}
|
||||
|
||||
@@ -7,15 +7,13 @@
|
||||
*/
|
||||
import { configure } from 'mobx';
|
||||
|
||||
import { App, type PluginManifest } from '@cloudbeaver/core-di';
|
||||
import { App, type IModule } from '@cloudbeaver/core-di';
|
||||
import { executionExceptionContext, SyncExecutor } from '@cloudbeaver/core-executor';
|
||||
|
||||
import { coreManifests } from './manifest.js';
|
||||
|
||||
export async function bootstrap(plugins: PluginManifest[]): Promise<App> {
|
||||
export async function bootstrap(modules: IModule[]): Promise<App> {
|
||||
configure({ enforceActions: 'never' });
|
||||
|
||||
const app = new App([...coreManifests, ...plugins]);
|
||||
const app = new App(modules);
|
||||
(window as any).internalRestartApp = () => app.restart();
|
||||
let exception: Error | null = null;
|
||||
|
||||
@@ -26,7 +24,7 @@ export async function bootstrap(plugins: PluginManifest[]): Promise<App> {
|
||||
}
|
||||
|
||||
const { renderLayout } = await import('./renderLayout.js');
|
||||
const render = renderLayout();
|
||||
const render = renderLayout(app);
|
||||
const unmountExecutor = new SyncExecutor();
|
||||
|
||||
unmountExecutor.addHandler(() => render.unmount());
|
||||
|
||||
@@ -6,8 +6,4 @@
|
||||
* you may not use this file except in compliance with the License.
|
||||
*/
|
||||
|
||||
import { coreManifests } from './manifest.js';
|
||||
|
||||
export * from './bootstrap.js';
|
||||
|
||||
export default coreManifests;
|
||||
|
||||
@@ -1,83 +0,0 @@
|
||||
/*
|
||||
* CloudBeaver - Cloud Database Manager
|
||||
* Copyright (C) 2020-2025 DBeaver Corp and others
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0.
|
||||
* you may not use this file except in compliance with the License.
|
||||
*/
|
||||
import { coreAdministrationManifest } from '@cloudbeaver/core-administration';
|
||||
import { coreAppManifest } from '@cloudbeaver/core-app';
|
||||
import { coreAuthenticationManifest } from '@cloudbeaver/core-authentication';
|
||||
import { coreBlocksManifest } from '@cloudbeaver/core-blocks';
|
||||
import { coreBrowserManifest } from '@cloudbeaver/core-browser';
|
||||
import { coreBrowserCookiesManifest } from '@cloudbeaver/core-browser-cookies';
|
||||
import { coreBrowserSettingsManifest } from '@cloudbeaver/core-browser-settings';
|
||||
import { coreClientActivityManifest } from '@cloudbeaver/core-client-activity';
|
||||
import { coreConnectionsManifest } from '@cloudbeaver/core-connections';
|
||||
import { coreDIManifest, type PluginManifest } from '@cloudbeaver/core-di';
|
||||
import { coreDialogsManifest } from '@cloudbeaver/core-dialogs';
|
||||
import { coreEventsManifest } from '@cloudbeaver/core-events';
|
||||
import { coreLinksManifest } from '@cloudbeaver/core-links';
|
||||
import { coreLocalizationManifest } from '@cloudbeaver/core-localization';
|
||||
import { coreNavigationTree } from '@cloudbeaver/core-navigation-tree';
|
||||
import { coreProductManifest } from '@cloudbeaver/core-product';
|
||||
import { coreProjectsManifest } from '@cloudbeaver/core-projects';
|
||||
import { coreResourceManifest } from '@cloudbeaver/core-resource';
|
||||
import { resourceManagerManifest } from '@cloudbeaver/core-resource-manager';
|
||||
import { coreRootManifest } from '@cloudbeaver/core-root';
|
||||
import { coreRoutingManifest } from '@cloudbeaver/core-routing';
|
||||
import { coreSDKManifest } from '@cloudbeaver/core-sdk';
|
||||
import { coreServerLocalization } from '@cloudbeaver/core-server-localization';
|
||||
import { coreSessionLocalization } from '@cloudbeaver/core-session-localization';
|
||||
import { coreSettingsManifest } from '@cloudbeaver/core-settings';
|
||||
import { coreSettingsLocalizationManifest } from '@cloudbeaver/core-settings-localization';
|
||||
import { coreSettingsUserManifest } from '@cloudbeaver/core-settings-user';
|
||||
import { coreStorageManifest } from '@cloudbeaver/core-storage';
|
||||
import { coreTaskManagerManifest } from '@cloudbeaver/core-task-manager';
|
||||
import { coreThemingManifest } from '@cloudbeaver/core-theming';
|
||||
import { coreUIManifest } from '@cloudbeaver/core-ui';
|
||||
import { coreVersionManifest } from '@cloudbeaver/core-version';
|
||||
import { coreVersionUpdateManifest } from '@cloudbeaver/core-version-update';
|
||||
import { coreViewManifest } from '@cloudbeaver/core-view';
|
||||
|
||||
export const coreManifests: PluginManifest[] = [
|
||||
{
|
||||
info: {
|
||||
name: 'DBeaver core',
|
||||
},
|
||||
},
|
||||
coreDIManifest,
|
||||
coreRoutingManifest, // important, should be first because the router starts in load phase first after all plugins register phase
|
||||
coreBrowserManifest,
|
||||
coreThemingManifest,
|
||||
coreLocalizationManifest,
|
||||
coreSettingsLocalizationManifest,
|
||||
coreSessionLocalization,
|
||||
coreServerLocalization,
|
||||
coreBlocksManifest,
|
||||
coreSettingsManifest,
|
||||
coreStorageManifest,
|
||||
coreEventsManifest,
|
||||
coreResourceManifest,
|
||||
coreSDKManifest,
|
||||
coreRootManifest,
|
||||
coreLinksManifest,
|
||||
coreBrowserSettingsManifest,
|
||||
coreBrowserCookiesManifest,
|
||||
coreProductManifest,
|
||||
coreProjectsManifest,
|
||||
coreAuthenticationManifest,
|
||||
coreUIManifest,
|
||||
coreViewManifest,
|
||||
coreVersionManifest,
|
||||
coreVersionUpdateManifest,
|
||||
coreConnectionsManifest,
|
||||
coreAdministrationManifest,
|
||||
coreDialogsManifest,
|
||||
resourceManagerManifest,
|
||||
coreAppManifest,
|
||||
coreClientActivityManifest,
|
||||
coreNavigationTree,
|
||||
coreSettingsUserManifest,
|
||||
coreTaskManagerManifest,
|
||||
];
|
||||
@@ -10,7 +10,7 @@ import { createRoot, type Root } from 'react-dom/client';
|
||||
|
||||
import { BodyLazy } from '@cloudbeaver/core-app';
|
||||
import { DisplayError, ErrorBoundary, Loader, s } from '@cloudbeaver/core-blocks';
|
||||
import { HideAppLoadingScreen, IServiceProvider, ServiceProvider } from '@cloudbeaver/core-di';
|
||||
import { App, AppContext, HideAppLoadingScreen, IServiceProvider, ServiceProvider } from '@cloudbeaver/core-di';
|
||||
|
||||
import styles from './renderLayout.module.css';
|
||||
|
||||
@@ -21,7 +21,7 @@ interface IRender {
|
||||
unmount(): void;
|
||||
}
|
||||
|
||||
export function renderLayout(): IRender {
|
||||
export function renderLayout(app: App): IRender {
|
||||
let root: Root | undefined;
|
||||
|
||||
return {
|
||||
@@ -47,16 +47,18 @@ export function renderLayout(): IRender {
|
||||
},
|
||||
renderApp(serviceProvider: IServiceProvider | null) {
|
||||
this.initRoot().render(
|
||||
<ErrorBoundary fallback={<HideAppLoadingScreen />} simple>
|
||||
<ServiceProvider provider={serviceProvider!}>
|
||||
<ErrorBoundary fallback={<HideAppLoadingScreen />} root>
|
||||
<Suspense fallback={<Loader className={s(styles, { loader: true })} />}>
|
||||
<BodyLazy />
|
||||
<HideAppLoadingScreen />
|
||||
</Suspense>
|
||||
</ErrorBoundary>
|
||||
</ServiceProvider>
|
||||
</ErrorBoundary>,
|
||||
<AppContext value={app}>
|
||||
<ErrorBoundary fallback={<HideAppLoadingScreen />} simple>
|
||||
<ServiceProvider provider={serviceProvider!}>
|
||||
<ErrorBoundary fallback={<HideAppLoadingScreen />} root>
|
||||
<Suspense fallback={<Loader className={s(styles, { loader: true })} />}>
|
||||
<BodyLazy />
|
||||
<HideAppLoadingScreen />
|
||||
</Suspense>
|
||||
</ErrorBoundary>
|
||||
</ServiceProvider>
|
||||
</ErrorBoundary>
|
||||
</AppContext>,
|
||||
);
|
||||
},
|
||||
renderError(serviceProvider: IServiceProvider | null, exception?: any) {
|
||||
@@ -64,12 +66,14 @@ export function renderLayout(): IRender {
|
||||
console.error(exception);
|
||||
}
|
||||
this.initRoot().render(
|
||||
<ErrorBoundary fallback={<HideAppLoadingScreen />} simple>
|
||||
<ServiceProvider provider={serviceProvider!}>
|
||||
<DisplayError error={exception} root />
|
||||
<HideAppLoadingScreen />
|
||||
</ServiceProvider>
|
||||
</ErrorBoundary>,
|
||||
<AppContext value={app}>
|
||||
<ErrorBoundary fallback={<HideAppLoadingScreen />} simple>
|
||||
<ServiceProvider provider={serviceProvider!}>
|
||||
<DisplayError error={exception} root />
|
||||
<HideAppLoadingScreen />
|
||||
</ServiceProvider>
|
||||
</ErrorBoundary>
|
||||
</AppContext>,
|
||||
);
|
||||
},
|
||||
};
|
||||
|
||||
@@ -7,113 +7,20 @@
|
||||
"composite": true
|
||||
},
|
||||
"references": [
|
||||
{
|
||||
"path": "../core-administration"
|
||||
},
|
||||
{
|
||||
"path": "../core-app"
|
||||
},
|
||||
{
|
||||
"path": "../core-authentication"
|
||||
},
|
||||
{
|
||||
"path": "../core-blocks"
|
||||
},
|
||||
{
|
||||
"path": "../core-browser"
|
||||
},
|
||||
{
|
||||
"path": "../core-browser-cookies"
|
||||
},
|
||||
{
|
||||
"path": "../core-browser-settings"
|
||||
},
|
||||
{
|
||||
"path": "../core-cli"
|
||||
},
|
||||
{
|
||||
"path": "../core-client-activity"
|
||||
},
|
||||
{
|
||||
"path": "../core-connections"
|
||||
},
|
||||
{
|
||||
"path": "../core-di"
|
||||
},
|
||||
{
|
||||
"path": "../core-dialogs"
|
||||
},
|
||||
{
|
||||
"path": "../core-events"
|
||||
},
|
||||
{
|
||||
"path": "../core-executor"
|
||||
},
|
||||
{
|
||||
"path": "../core-links"
|
||||
},
|
||||
{
|
||||
"path": "../core-localization"
|
||||
},
|
||||
{
|
||||
"path": "../core-navigation-tree"
|
||||
},
|
||||
{
|
||||
"path": "../core-product"
|
||||
},
|
||||
{
|
||||
"path": "../core-projects"
|
||||
},
|
||||
{
|
||||
"path": "../core-resource"
|
||||
},
|
||||
{
|
||||
"path": "../core-resource-manager"
|
||||
},
|
||||
{
|
||||
"path": "../core-root"
|
||||
},
|
||||
{
|
||||
"path": "../core-routing"
|
||||
},
|
||||
{
|
||||
"path": "../core-sdk"
|
||||
},
|
||||
{
|
||||
"path": "../core-server-localization"
|
||||
},
|
||||
{
|
||||
"path": "../core-session-localization"
|
||||
},
|
||||
{
|
||||
"path": "../core-settings"
|
||||
},
|
||||
{
|
||||
"path": "../core-settings-localization"
|
||||
},
|
||||
{
|
||||
"path": "../core-settings-user"
|
||||
},
|
||||
{
|
||||
"path": "../core-storage"
|
||||
},
|
||||
{
|
||||
"path": "../core-task-manager"
|
||||
},
|
||||
{
|
||||
"path": "../core-theming"
|
||||
},
|
||||
{
|
||||
"path": "../core-ui"
|
||||
},
|
||||
{
|
||||
"path": "../core-version"
|
||||
},
|
||||
{
|
||||
"path": "../core-version-update"
|
||||
},
|
||||
{
|
||||
"path": "../core-view"
|
||||
}
|
||||
],
|
||||
"include": [
|
||||
|
||||
@@ -12,7 +12,8 @@
|
||||
"description": "",
|
||||
"license": "Apache-2.0",
|
||||
"exports": {
|
||||
".": "./lib/index.js"
|
||||
".": "./lib/index.js",
|
||||
"./module": "./lib/module.js"
|
||||
},
|
||||
"scripts": {
|
||||
"build": "tsc -b",
|
||||
@@ -30,6 +31,7 @@
|
||||
"@cloudbeaver/core-cli": "workspace:*",
|
||||
"@cloudbeaver/tsconfig": "workspace:*",
|
||||
"@dbeaver/cli": "workspace:*",
|
||||
"rimraf": "^6",
|
||||
"typescript": "^5"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -8,4 +8,3 @@
|
||||
|
||||
import './module.js';
|
||||
export * from './CookiesService.js';
|
||||
export * from './manifest.js';
|
||||
|
||||
@@ -1,14 +0,0 @@
|
||||
/*
|
||||
* CloudBeaver - Cloud Database Manager
|
||||
* Copyright (C) 2020-2025 DBeaver Corp and others
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0.
|
||||
* you may not use this file except in compliance with the License.
|
||||
*/
|
||||
import type { PluginManifest } from '@cloudbeaver/core-di';
|
||||
|
||||
export const coreBrowserCookiesManifest: PluginManifest = {
|
||||
info: {
|
||||
name: 'Core Browser Cookies',
|
||||
},
|
||||
};
|
||||
@@ -9,7 +9,7 @@
|
||||
import { ModuleRegistry } from '@cloudbeaver/core-di';
|
||||
import { CookiesService } from './CookiesService.js';
|
||||
|
||||
ModuleRegistry.add({
|
||||
export default ModuleRegistry.add({
|
||||
name: '@cloudbeaver/core-browser-cookies',
|
||||
|
||||
configure: serviceCollection => {
|
||||
|
||||
@@ -12,7 +12,8 @@
|
||||
"description": "",
|
||||
"license": "Apache-2.0",
|
||||
"exports": {
|
||||
".": "./lib/index.js"
|
||||
".": "./lib/index.js",
|
||||
"./module": "./lib/module.js"
|
||||
},
|
||||
"scripts": {
|
||||
"build": "tsc -b",
|
||||
@@ -32,7 +33,8 @@
|
||||
"@cloudbeaver/core-cli": "workspace:*",
|
||||
"@cloudbeaver/tsconfig": "workspace:*",
|
||||
"@dbeaver/cli": "workspace:*",
|
||||
"@dbeaver/react-tests": "workspace:^",
|
||||
"@dbeaver/react-tests": "workspace:*",
|
||||
"rimraf": "^6",
|
||||
"typescript": "^5",
|
||||
"vitest": "^3"
|
||||
}
|
||||
|
||||
@@ -8,4 +8,3 @@
|
||||
|
||||
import './module.js';
|
||||
export * from './BrowserSettingsService.js';
|
||||
export * from './manifest.js';
|
||||
|
||||
@@ -1,14 +0,0 @@
|
||||
/*
|
||||
* CloudBeaver - Cloud Database Manager
|
||||
* Copyright (C) 2020-2025 DBeaver Corp and others
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0.
|
||||
* you may not use this file except in compliance with the License.
|
||||
*/
|
||||
import type { PluginManifest } from '@cloudbeaver/core-di';
|
||||
|
||||
export const coreBrowserSettingsManifest: PluginManifest = {
|
||||
info: {
|
||||
name: 'Core Browser Settings',
|
||||
},
|
||||
};
|
||||
@@ -10,7 +10,7 @@ import { Bootstrap, Dependency, ModuleRegistry, proxy } from '@cloudbeaver/core-
|
||||
import { LocaleService } from './LocaleService.js';
|
||||
import { BrowserSettingsService } from './BrowserSettingsService.js';
|
||||
|
||||
ModuleRegistry.add({
|
||||
export default ModuleRegistry.add({
|
||||
name: '@cloudbeaver/core-browser-settings',
|
||||
|
||||
configure: serviceCollection => {
|
||||
|
||||
@@ -14,6 +14,7 @@
|
||||
"license": "Apache-2.0",
|
||||
"exports": {
|
||||
".": "./lib/index.js",
|
||||
"./module": "./lib/module.js",
|
||||
"./*": "./lib/*.js"
|
||||
},
|
||||
"scripts": {
|
||||
@@ -42,6 +43,7 @@
|
||||
"@cloudbeaver/core-cli": "workspace:*",
|
||||
"@cloudbeaver/tsconfig": "workspace:*",
|
||||
"@dbeaver/cli": "workspace:*",
|
||||
"rimraf": "^6",
|
||||
"typescript": "^5",
|
||||
"vite": "^7"
|
||||
}
|
||||
|
||||
@@ -10,6 +10,5 @@ import './module.js';
|
||||
export * from './IndexedDB/IndexedDBService.js';
|
||||
export * from './IndexedDB/IndexedDB.js';
|
||||
export * from './LocalStorageSaveService.js';
|
||||
export * from './manifest.js';
|
||||
export * from './promptForFiles.js';
|
||||
export * from './ServiceWorkerService.js';
|
||||
|
||||
@@ -1,14 +0,0 @@
|
||||
/*
|
||||
* CloudBeaver - Cloud Database Manager
|
||||
* Copyright (C) 2020-2025 DBeaver Corp and others
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0.
|
||||
* you may not use this file except in compliance with the License.
|
||||
*/
|
||||
import type { PluginManifest } from '@cloudbeaver/core-di';
|
||||
|
||||
export const coreBrowserManifest: PluginManifest = {
|
||||
info: {
|
||||
name: 'Core Browser',
|
||||
},
|
||||
};
|
||||
@@ -12,7 +12,7 @@ import { ServiceWorkerBootstrap } from './ServiceWorkerBootstrap.js';
|
||||
import { LocalStorageSaveService } from './LocalStorageSaveService.js';
|
||||
import { IndexedDBService } from './IndexedDB/IndexedDBService.js';
|
||||
|
||||
ModuleRegistry.add({
|
||||
export default ModuleRegistry.add({
|
||||
name: '@cloudbeaver/core-browser',
|
||||
|
||||
configure: serviceCollection => {
|
||||
|
||||
@@ -1,8 +1,4 @@
|
||||
---
|
||||
to: <%= name %>/src/index.ts
|
||||
---
|
||||
import './module.js';
|
||||
import { <%= h.changeCase.camel(name) %>Manifest } from './manifest.js';
|
||||
|
||||
export default <%= h.changeCase.camel(name) %>Manifest;
|
||||
export { <%= h.changeCase.camel(name) %>Manifest };
|
||||
import './module.js';
|
||||
@@ -1,10 +0,0 @@
|
||||
---
|
||||
to: <%= name %>/src/manifest.ts
|
||||
---
|
||||
import type { PluginManifest } from '@cloudbeaver/core-di';
|
||||
|
||||
export const <%= h.changeCase.camel(name) %>Manifest: PluginManifest = {
|
||||
info: {
|
||||
name: '<%= h.changeCase.sentence(name) %>',
|
||||
},
|
||||
};
|
||||
@@ -4,7 +4,7 @@ to: <%= name %>/src/module.ts
|
||||
import { Bootstrap, ModuleRegistry } from '@cloudbeaver/core-di';
|
||||
import { <%= h.changeCase.pascal(name) %>Bootstrap } from './<%= h.changeCase.pascal(name) %>Bootstrap.js';
|
||||
|
||||
ModuleRegistry.add({
|
||||
export default ModuleRegistry.add({
|
||||
name: '@cloudbeaver/<%= name %>',
|
||||
|
||||
configure: serviceCollection => {
|
||||
|
||||
@@ -15,7 +15,8 @@ to: <%= name %>/package.json
|
||||
"description": "",
|
||||
"license": "Apache-2.0",
|
||||
"exports": {
|
||||
".": "./lib/index.js"
|
||||
".": "./lib/index.js",
|
||||
"./module": "./lib/module.js"
|
||||
},
|
||||
"scripts": {
|
||||
"build": "tsc -b",
|
||||
|
||||
@@ -40,18 +40,17 @@
|
||||
},
|
||||
"dependencies": {
|
||||
"glob": "^11",
|
||||
"js-yaml": "^4",
|
||||
"tslib": "^2"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@cloudbeaver/tsconfig": "workspace:*",
|
||||
"@swc/core": "^1",
|
||||
"@types/js-yaml": "^4",
|
||||
"@types/node": "^22",
|
||||
"enquirer": "^2",
|
||||
"execa": "^9",
|
||||
"glob": "^11",
|
||||
"hygen": "^6",
|
||||
"js-yaml": "^4",
|
||||
"typescript": "^5"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
/*
|
||||
* CloudBeaver - Cloud Database Manager
|
||||
* Copyright (C) 2020-2024 DBeaver Corp and others
|
||||
* Copyright (C) 2020-2025 DBeaver Corp and others
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0.
|
||||
* you may not use this file except in compliance with the License.
|
||||
*/
|
||||
export const IGNORED_DEPENDENCIES = ['tslib'];
|
||||
export const IGNORED_DEPENDENCIES = ['tslib', 'child_process', 'fs', 'path', 'readline'];
|
||||
|
||||
@@ -6,8 +6,9 @@
|
||||
* you may not use this file except in compliance with the License.
|
||||
*/
|
||||
export const KNOWN_PEER_DEPS_MAP: Record<string, string[]> = {
|
||||
'react-leaflet': ['leaflet'],
|
||||
'mobx-react-lite': ['mobx', 'react-dom'],
|
||||
'@testing-library/react': ['@testing-library/dom', 'react-dom'],
|
||||
'@testing-library/react': ['@testing-library/jest-dom', 'react-dom'],
|
||||
'@typescript-eslint/eslint-plugin': ['typescript'],
|
||||
'react-minisearch': ['minisearch'],
|
||||
};
|
||||
|
||||
@@ -40,6 +40,18 @@ export function validateDependencies(currentPackageRoot: string) {
|
||||
|
||||
packageLogger.log('info', true, `Analyzing ${currentPackage['name']}`);
|
||||
|
||||
const isUseRimraf = Object.values(currentPackage.scripts || {}).some(script => script.includes('rimraf'));
|
||||
|
||||
if (isUseRimraf) {
|
||||
devDependencies.add('rimraf');
|
||||
}
|
||||
|
||||
const isUseDbeaverCli = Object.values(currentPackage.scripts || {}).some(script => script.includes('dbeaver-test'));
|
||||
|
||||
if (isUseDbeaverCli) {
|
||||
devDependencies.add('@dbeaver/cli');
|
||||
}
|
||||
|
||||
const isUseCoreCli = Object.values(currentPackage.scripts || {}).some(script => script.includes('core-cli'));
|
||||
|
||||
if (isUseCoreCli && currentPackage.name !== '@cloudbeaver/core-cli') {
|
||||
@@ -75,6 +87,9 @@ export function validateDependencies(currentPackageRoot: string) {
|
||||
if (isCSSModuleFileRegex) {
|
||||
devDependencies.add('typescript-plugin-css-modules');
|
||||
}
|
||||
if (isTestFile) {
|
||||
devDependencies.add('@dbeaver/react-tests');
|
||||
}
|
||||
|
||||
if (isTSXFileRegex) {
|
||||
if (isTestFile) {
|
||||
|
||||
@@ -12,7 +12,8 @@
|
||||
"description": "",
|
||||
"license": "Apache-2.0",
|
||||
"exports": {
|
||||
".": "./lib/index.js"
|
||||
".": "./lib/index.js",
|
||||
"./module": "./lib/module.js"
|
||||
},
|
||||
"scripts": {
|
||||
"build": "tsc -b",
|
||||
@@ -31,7 +32,8 @@
|
||||
"@cloudbeaver/core-cli": "workspace:*",
|
||||
"@cloudbeaver/tsconfig": "workspace:*",
|
||||
"@dbeaver/cli": "workspace:*",
|
||||
"@dbeaver/react-tests": "workspace:^",
|
||||
"@dbeaver/react-tests": "workspace:*",
|
||||
"rimraf": "^6",
|
||||
"typescript": "^5",
|
||||
"vitest": "^3"
|
||||
}
|
||||
|
||||
@@ -8,4 +8,3 @@
|
||||
|
||||
import './module.js';
|
||||
export * from './ClientActivityService.js';
|
||||
export * from './manifest.js';
|
||||
|
||||
@@ -1,14 +0,0 @@
|
||||
/*
|
||||
* CloudBeaver - Cloud Database Manager
|
||||
* Copyright (C) 2020-2025 DBeaver Corp and others
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0.
|
||||
* you may not use this file except in compliance with the License.
|
||||
*/
|
||||
import type { PluginManifest } from '@cloudbeaver/core-di';
|
||||
|
||||
export const coreClientActivityManifest: PluginManifest = {
|
||||
info: {
|
||||
name: 'Core Client Activity',
|
||||
},
|
||||
};
|
||||
@@ -9,7 +9,7 @@
|
||||
import { ModuleRegistry } from '@cloudbeaver/core-di';
|
||||
import { ClientActivityService } from './ClientActivityService.js';
|
||||
|
||||
ModuleRegistry.add({
|
||||
export default ModuleRegistry.add({
|
||||
name: '@cloudbeaver/core-client-activity',
|
||||
|
||||
configure: serviceCollection => {
|
||||
|
||||
@@ -12,7 +12,8 @@
|
||||
"description": "",
|
||||
"license": "Apache-2.0",
|
||||
"exports": {
|
||||
".": "./lib/index.js"
|
||||
".": "./lib/index.js",
|
||||
"./module": "./lib/module.js"
|
||||
},
|
||||
"scripts": {
|
||||
"build": "tsc -b",
|
||||
@@ -37,7 +38,7 @@
|
||||
"@cloudbeaver/core-sdk": "workspace:*",
|
||||
"@cloudbeaver/core-settings": "workspace:*",
|
||||
"@cloudbeaver/core-utils": "workspace:*",
|
||||
"@dbeaver/js-helpers": "workspace:^",
|
||||
"@dbeaver/js-helpers": "workspace:*",
|
||||
"mobx": "^6",
|
||||
"react": "^19",
|
||||
"tslib": "^2"
|
||||
@@ -46,6 +47,7 @@
|
||||
"@cloudbeaver/core-cli": "workspace:*",
|
||||
"@cloudbeaver/tsconfig": "workspace:*",
|
||||
"@types/react": "^19",
|
||||
"rimraf": "^6",
|
||||
"typescript": "^5"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -64,5 +64,3 @@ export * from './useDBDriver.js';
|
||||
export * from './USER_NAME_PROPERTY_ID.js';
|
||||
export * from './parseConnectionKey.js';
|
||||
export * from './DBDriverExpertSettingsResource.js';
|
||||
|
||||
export { manifest as coreConnectionsManifest } from './manifest.js';
|
||||
|
||||
@@ -1,14 +0,0 @@
|
||||
/*
|
||||
* CloudBeaver - Cloud Database Manager
|
||||
* Copyright (C) 2020-2025 DBeaver Corp and others
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0.
|
||||
* you may not use this file except in compliance with the License.
|
||||
*/
|
||||
import type { PluginManifest } from '@cloudbeaver/core-di';
|
||||
|
||||
export const manifest: PluginManifest = {
|
||||
info: {
|
||||
name: 'Core Connections',
|
||||
},
|
||||
};
|
||||
@@ -34,7 +34,7 @@ import { ConnectionExecutionContextResource } from './ConnectionExecutionContext
|
||||
import { ConnectionDialectResource } from './ConnectionDialectResource.js';
|
||||
import { DBDriverExpertSettingsResource } from './DBDriverExpertSettingsResource.js';
|
||||
|
||||
ModuleRegistry.add({
|
||||
export default ModuleRegistry.add({
|
||||
name: '@cloudbeaver/core-connections',
|
||||
|
||||
configure: serviceCollection => {
|
||||
|
||||
@@ -12,7 +12,8 @@
|
||||
"description": "",
|
||||
"license": "Apache-2.0",
|
||||
"exports": {
|
||||
".": "./lib/index.js"
|
||||
".": "./lib/index.js",
|
||||
"./module": "./lib/module.js"
|
||||
},
|
||||
"scripts": {
|
||||
"build": "tsc -b",
|
||||
@@ -31,6 +32,7 @@
|
||||
"@cloudbeaver/core-cli": "workspace:*",
|
||||
"@cloudbeaver/tsconfig": "workspace:*",
|
||||
"@types/react": "^19",
|
||||
"rimraf": "^6",
|
||||
"typescript": "^5"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -15,4 +15,3 @@ export * from './DataContext/IDataContextProvider.js';
|
||||
export * from './DataContext/useDataContext.js';
|
||||
export * from './DataContext/DataContextGetter.js';
|
||||
export * from './DataContext/useDataContextLink.js';
|
||||
export { coreDataContextManifest } from './manifest.js';
|
||||
|
||||
@@ -1,14 +0,0 @@
|
||||
/*
|
||||
* CloudBeaver - Cloud Database Manager
|
||||
* Copyright (C) 2020-2025 DBeaver Corp and others
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0.
|
||||
* you may not use this file except in compliance with the License.
|
||||
*/
|
||||
import type { PluginManifest } from '@cloudbeaver/core-di';
|
||||
|
||||
export const coreDataContextManifest: PluginManifest = {
|
||||
info: {
|
||||
name: 'Core Data Context',
|
||||
},
|
||||
};
|
||||
@@ -12,7 +12,8 @@
|
||||
"description": "",
|
||||
"license": "Apache-2.0",
|
||||
"exports": {
|
||||
".": "./lib/index.js"
|
||||
".": "./lib/index.js",
|
||||
"./module": "./lib/module.js"
|
||||
},
|
||||
"scripts": {
|
||||
"build": "tsc -b",
|
||||
@@ -23,9 +24,8 @@
|
||||
},
|
||||
"dependencies": {
|
||||
"@cloudbeaver/core-executor": "workspace:*",
|
||||
"@wroud/di": "^0",
|
||||
"@wroud/di": "^0.18.3",
|
||||
"@wroud/di-react": "^0",
|
||||
"mobx": "^6",
|
||||
"react": "^19",
|
||||
"tslib": "^2"
|
||||
},
|
||||
@@ -33,8 +33,10 @@
|
||||
"@cloudbeaver/core-cli": "workspace:*",
|
||||
"@cloudbeaver/tsconfig": "workspace:*",
|
||||
"@dbeaver/cli": "workspace:*",
|
||||
"@dbeaver/react-tests": "workspace:^",
|
||||
"@dbeaver/react-tests": "workspace:*",
|
||||
"@types/react": "^19",
|
||||
"@wroud/di": "^0.18.3",
|
||||
"rimraf": "^6",
|
||||
"typescript": "^5",
|
||||
"vitest": "^3"
|
||||
}
|
||||
|
||||
@@ -11,8 +11,7 @@ import { Executor, type IExecutor } from '@cloudbeaver/core-executor';
|
||||
import { Bootstrap } from './Bootstrap.js';
|
||||
import { Dependency } from './Dependency.js';
|
||||
import { IServiceProvider } from './IServiceProvider.js';
|
||||
import type { PluginManifest } from './PluginManifest.js';
|
||||
import { ModuleRegistry, ServiceContainerBuilder } from '@wroud/di';
|
||||
import { ModuleRegistry, ServiceContainerBuilder, type IModule } from '@wroud/di';
|
||||
import { IPreloadService } from './IPreloadService.js';
|
||||
|
||||
export interface IStartData {
|
||||
@@ -22,13 +21,13 @@ export interface IStartData {
|
||||
|
||||
export class App {
|
||||
readonly onStart: IExecutor<IStartData>;
|
||||
private readonly plugins: PluginManifest[];
|
||||
private readonly modules: IModule[];
|
||||
|
||||
private builder: ServiceContainerBuilder | null;
|
||||
private serviceProvider: IServiceProvider | null;
|
||||
|
||||
constructor(plugins: PluginManifest[] = []) {
|
||||
this.plugins = plugins;
|
||||
constructor(plugins: IModule[] = []) {
|
||||
this.modules = plugins;
|
||||
this.onStart = new Executor<IStartData>(undefined, () => true);
|
||||
this.serviceProvider = null;
|
||||
this.builder = null;
|
||||
@@ -58,8 +57,8 @@ export class App {
|
||||
this.builder = null;
|
||||
}
|
||||
|
||||
addPlugin(manifest: PluginManifest): void {
|
||||
this.plugins.push(manifest);
|
||||
addModule(module: IModule): void {
|
||||
this.modules.push(module);
|
||||
}
|
||||
|
||||
getServiceProvider(): IServiceProvider | null {
|
||||
@@ -71,9 +70,23 @@ export class App {
|
||||
if (!this.builder) {
|
||||
this.builder = new ServiceContainerBuilder();
|
||||
this.builder.addSingleton(App, this);
|
||||
let modulesToLoad = [...this.modules];
|
||||
const requiredModules = new Set(ModuleRegistry);
|
||||
|
||||
for (const module of ModuleRegistry) {
|
||||
if (this.modules.length === 0) {
|
||||
modulesToLoad = [...requiredModules];
|
||||
}
|
||||
|
||||
for (const module of modulesToLoad) {
|
||||
await module.configure(this.builder);
|
||||
requiredModules.delete(module);
|
||||
}
|
||||
|
||||
if (requiredModules.size > 0) {
|
||||
console.warn(
|
||||
'Some required modules were not added to the application: ',
|
||||
[...requiredModules].map(m => m.name).sort((a, b) => a.localeCompare(b)),
|
||||
);
|
||||
}
|
||||
|
||||
await this.builder.validate();
|
||||
|
||||
@@ -8,12 +8,12 @@
|
||||
import { expect, test } from 'vitest';
|
||||
|
||||
import { App } from '../../App.js';
|
||||
import { manifest } from './manifest.js';
|
||||
import { TestBootstrap } from './TestBootstrap.js';
|
||||
import { TestService } from './TestService.js';
|
||||
import testModule from './module.js';
|
||||
|
||||
test.skip('App Initialization', async () => {
|
||||
const app = new App([manifest]);
|
||||
const app = new App([testModule]);
|
||||
|
||||
await (app as any).registerServices();
|
||||
const serviceProvider = app.getServiceProvider()!;
|
||||
|
||||
+1
-8
@@ -6,18 +6,11 @@
|
||||
* you may not use this file except in compliance with the License.
|
||||
*/
|
||||
import { ModuleRegistry, proxy } from '@wroud/di';
|
||||
import type { PluginManifest } from '../../PluginManifest.js';
|
||||
import { TestService } from './TestService.js';
|
||||
import { TestBootstrap } from './TestBootstrap.js';
|
||||
import { Bootstrap } from '../../Bootstrap.js';
|
||||
|
||||
export const manifest: PluginManifest = {
|
||||
info: {
|
||||
name: 'Sample Manifest',
|
||||
},
|
||||
};
|
||||
|
||||
ModuleRegistry.add({
|
||||
export default ModuleRegistry.add({
|
||||
name: 'test-manifest',
|
||||
configure(serviceCollection) {
|
||||
serviceCollection.addSingleton(TestService).addSingleton(Bootstrap, proxy(TestBootstrap)).addSingleton(TestBootstrap);
|
||||
@@ -16,9 +16,8 @@ export * from './Dependency.js';
|
||||
export * from './dependencyInjectorContext.js';
|
||||
export * from './DIService.js';
|
||||
export * from './injectable.js';
|
||||
export * from './PluginManifest.js';
|
||||
export * from './useApp.js';
|
||||
export * from './useService.js';
|
||||
export * from './IServiceProvider.js';
|
||||
export * from './AppLoadingScreen/HideAppLoadingScreenLazy.js';
|
||||
export * from './AppLoadingScreen/displayUpdateStatus.js';
|
||||
export { manifest as coreDIManifest } from './manifest.js';
|
||||
|
||||
@@ -5,4 +5,4 @@
|
||||
* Licensed under the Apache License, Version 2.0.
|
||||
* you may not use this file except in compliance with the License.
|
||||
*/
|
||||
export { injectable, ModuleRegistry, optional, proxy } from '@wroud/di';
|
||||
export { injectable, ModuleRegistry, type IModule, optional, proxy } from '@wroud/di';
|
||||
|
||||
@@ -1,14 +0,0 @@
|
||||
/*
|
||||
* CloudBeaver - Cloud Database Manager
|
||||
* Copyright (C) 2020-2025 DBeaver Corp and others
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0.
|
||||
* you may not use this file except in compliance with the License.
|
||||
*/
|
||||
import type { PluginManifest } from './PluginManifest.js';
|
||||
|
||||
export const manifest: PluginManifest = {
|
||||
info: {
|
||||
name: 'Core DI',
|
||||
},
|
||||
};
|
||||
+4
-6
@@ -6,9 +6,7 @@
|
||||
* you may not use this file except in compliance with the License.
|
||||
*/
|
||||
|
||||
export interface PluginManifest {
|
||||
info: {
|
||||
name: string;
|
||||
defaultSettings?: Record<string, any>;
|
||||
};
|
||||
}
|
||||
import { createContext } from 'react';
|
||||
import type { App } from './App.js';
|
||||
|
||||
export const AppContext = createContext<App | null>(null);
|
||||
@@ -12,7 +12,8 @@
|
||||
"description": "",
|
||||
"license": "Apache-2.0",
|
||||
"exports": {
|
||||
".": "./lib/index.js"
|
||||
".": "./lib/index.js",
|
||||
"./module": "./lib/module.js"
|
||||
},
|
||||
"scripts": {
|
||||
"build": "tsc -b",
|
||||
@@ -29,6 +30,7 @@
|
||||
"devDependencies": {
|
||||
"@cloudbeaver/core-cli": "workspace:*",
|
||||
"@cloudbeaver/tsconfig": "workspace:*",
|
||||
"rimraf": "^6",
|
||||
"typescript": "^5"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -8,4 +8,3 @@
|
||||
|
||||
import './module.js';
|
||||
export * from './CommonDialog/CommonDialogService.js';
|
||||
export * from './manifest.js';
|
||||
|
||||
@@ -1,14 +0,0 @@
|
||||
/*
|
||||
* CloudBeaver - Cloud Database Manager
|
||||
* Copyright (C) 2020-2025 DBeaver Corp and others
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0.
|
||||
* you may not use this file except in compliance with the License.
|
||||
*/
|
||||
import type { PluginManifest } from '@cloudbeaver/core-di';
|
||||
|
||||
export const coreDialogsManifest: PluginManifest = {
|
||||
info: {
|
||||
name: 'Core Dialogs',
|
||||
},
|
||||
};
|
||||
@@ -9,7 +9,7 @@
|
||||
import { ModuleRegistry } from '@cloudbeaver/core-di';
|
||||
import { CommonDialogService } from './CommonDialog/CommonDialogService.js';
|
||||
|
||||
ModuleRegistry.add({
|
||||
export default ModuleRegistry.add({
|
||||
name: '@cloudbeaver/core-dialogs',
|
||||
|
||||
configure: serviceCollection => {
|
||||
|
||||
@@ -12,7 +12,8 @@
|
||||
"description": "",
|
||||
"license": "Apache-2.0",
|
||||
"exports": {
|
||||
".": "./lib/index.js"
|
||||
".": "./lib/index.js",
|
||||
"./module": "./lib/module.js"
|
||||
},
|
||||
"scripts": {
|
||||
"build": "tsc -b",
|
||||
@@ -35,7 +36,8 @@
|
||||
"@cloudbeaver/core-cli": "workspace:*",
|
||||
"@cloudbeaver/tsconfig": "workspace:*",
|
||||
"@dbeaver/cli": "workspace:*",
|
||||
"@dbeaver/react-tests": "workspace:^",
|
||||
"@dbeaver/react-tests": "workspace:*",
|
||||
"rimraf": "^6",
|
||||
"typescript": "^5",
|
||||
"vitest": "^3"
|
||||
}
|
||||
|
||||
@@ -14,4 +14,3 @@ export * from './INotification.js';
|
||||
export * from './UIError.js';
|
||||
export * from './ExceptionsCatcherService.js';
|
||||
export * from './EventsSettingsService.js';
|
||||
export * from './manifest.js';
|
||||
|
||||
@@ -1,14 +0,0 @@
|
||||
/*
|
||||
* CloudBeaver - Cloud Database Manager
|
||||
* Copyright (C) 2020-2025 DBeaver Corp and others
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0.
|
||||
* you may not use this file except in compliance with the License.
|
||||
*/
|
||||
import type { PluginManifest } from '@cloudbeaver/core-di';
|
||||
|
||||
export const coreEventsManifest: PluginManifest = {
|
||||
info: {
|
||||
name: 'Core Events',
|
||||
},
|
||||
};
|
||||
@@ -12,7 +12,7 @@ import { LocaleService } from './LocaleService.js';
|
||||
import { ExceptionsCatcherService } from './ExceptionsCatcherService.js';
|
||||
import { EventsSettingsService } from './EventsSettingsService.js';
|
||||
|
||||
ModuleRegistry.add({
|
||||
export default ModuleRegistry.add({
|
||||
name: '@cloudbeaver/core-events',
|
||||
|
||||
configure: serviceCollection => {
|
||||
|
||||
@@ -12,7 +12,8 @@
|
||||
"description": "",
|
||||
"license": "Apache-2.0",
|
||||
"exports": {
|
||||
".": "./lib/index.js"
|
||||
".": "./lib/index.js",
|
||||
"./module": "./lib/module.js"
|
||||
},
|
||||
"scripts": {
|
||||
"build": "tsc -b",
|
||||
@@ -29,6 +30,7 @@
|
||||
"@cloudbeaver/core-cli": "workspace:*",
|
||||
"@cloudbeaver/tsconfig": "workspace:*",
|
||||
"@dbeaver/cli": "workspace:*",
|
||||
"rimraf": "^6",
|
||||
"typescript": "^5"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -12,7 +12,8 @@
|
||||
"description": "",
|
||||
"license": "Apache-2.0",
|
||||
"exports": {
|
||||
".": "./lib/index.js"
|
||||
".": "./lib/index.js",
|
||||
"./module": "./lib/module.js"
|
||||
},
|
||||
"scripts": {
|
||||
"build": "tsc -b",
|
||||
@@ -26,6 +27,7 @@
|
||||
"devDependencies": {
|
||||
"@cloudbeaver/core-cli": "workspace:*",
|
||||
"@cloudbeaver/tsconfig": "workspace:*",
|
||||
"rimraf": "^6",
|
||||
"typescript": "^5"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -12,7 +12,8 @@
|
||||
"description": "",
|
||||
"license": "Apache-2.0",
|
||||
"exports": {
|
||||
".": "./lib/index.js"
|
||||
".": "./lib/index.js",
|
||||
"./module": "./lib/module.js"
|
||||
},
|
||||
"scripts": {
|
||||
"build": "tsc -b",
|
||||
@@ -22,13 +23,13 @@
|
||||
"validate-dependencies": "core-cli-validate-dependencies"
|
||||
},
|
||||
"dependencies": {
|
||||
"@cloudbeaver/core-di": "workspace:*",
|
||||
"tslib": "^2"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@cloudbeaver/core-cli": "workspace:*",
|
||||
"@cloudbeaver/tsconfig": "workspace:*",
|
||||
"@dbeaver/cli": "workspace:*",
|
||||
"rimraf": "^6",
|
||||
"typescript": "^5"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -8,4 +8,3 @@
|
||||
|
||||
export * from './WebsiteLinks.js';
|
||||
export * from './GithubLinks.js';
|
||||
export * from './manifest.js';
|
||||
|
||||
@@ -1,14 +0,0 @@
|
||||
/*
|
||||
* CloudBeaver - Cloud Database Manager
|
||||
* Copyright (C) 2020-2025 DBeaver Corp and others
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0.
|
||||
* you may not use this file except in compliance with the License.
|
||||
*/
|
||||
import type { PluginManifest } from '@cloudbeaver/core-di';
|
||||
|
||||
export const coreLinksManifest: PluginManifest = {
|
||||
info: {
|
||||
name: 'Core Links',
|
||||
},
|
||||
};
|
||||
@@ -12,9 +12,6 @@
|
||||
},
|
||||
{
|
||||
"path": "../core-cli"
|
||||
},
|
||||
{
|
||||
"path": "../core-di"
|
||||
}
|
||||
],
|
||||
"include": [
|
||||
|
||||
@@ -12,7 +12,8 @@
|
||||
"description": "",
|
||||
"license": "Apache-2.0",
|
||||
"exports": {
|
||||
".": "./lib/index.js"
|
||||
".": "./lib/index.js",
|
||||
"./module": "./lib/module.js"
|
||||
},
|
||||
"scripts": {
|
||||
"build": "tsc -b",
|
||||
@@ -31,7 +32,8 @@
|
||||
"@cloudbeaver/core-cli": "workspace:*",
|
||||
"@cloudbeaver/tsconfig": "workspace:*",
|
||||
"@dbeaver/cli": "workspace:*",
|
||||
"@dbeaver/react-tests": "workspace:^",
|
||||
"@dbeaver/react-tests": "workspace:*",
|
||||
"rimraf": "^6",
|
||||
"typescript": "^5",
|
||||
"vitest": "^3"
|
||||
}
|
||||
|
||||
@@ -7,7 +7,6 @@
|
||||
*/
|
||||
|
||||
import './module.js';
|
||||
export * from './manifest.js';
|
||||
export * from './LocalizationService.js';
|
||||
export * from './Locale.js';
|
||||
export * from './TLocalizationToken.js';
|
||||
|
||||
@@ -1,14 +0,0 @@
|
||||
/*
|
||||
* CloudBeaver - Cloud Database Manager
|
||||
* Copyright (C) 2020-2025 DBeaver Corp and others
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0.
|
||||
* you may not use this file except in compliance with the License.
|
||||
*/
|
||||
import type { PluginManifest } from '@cloudbeaver/core-di';
|
||||
|
||||
export const coreLocalizationManifest: PluginManifest = {
|
||||
info: {
|
||||
name: 'Core Localization',
|
||||
},
|
||||
};
|
||||
@@ -9,7 +9,7 @@
|
||||
import { Bootstrap, ModuleRegistry, proxy } from '@cloudbeaver/core-di';
|
||||
import { LocalizationService } from './LocalizationService.js';
|
||||
|
||||
ModuleRegistry.add({
|
||||
export default ModuleRegistry.add({
|
||||
name: '@cloudbeaver/core-localization',
|
||||
|
||||
configure: serviceCollection => {
|
||||
|
||||
@@ -12,7 +12,8 @@
|
||||
"description": "",
|
||||
"license": "Apache-2.0",
|
||||
"exports": {
|
||||
".": "./lib/index.js"
|
||||
".": "./lib/index.js",
|
||||
"./module": "./lib/module.js"
|
||||
},
|
||||
"scripts": {
|
||||
"build": "tsc -b",
|
||||
@@ -35,16 +36,16 @@
|
||||
"@cloudbeaver/core-settings": "workspace:*",
|
||||
"@cloudbeaver/core-ui": "workspace:*",
|
||||
"@cloudbeaver/core-utils": "workspace:*",
|
||||
"@dbeaver/js-helpers": "workspace:^",
|
||||
"@dbeaver/js-helpers": "workspace:*",
|
||||
"mobx": "^6",
|
||||
"tslib": "^2"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@cloudbeaver/core-cli": "workspace:*",
|
||||
"@cloudbeaver/tests-runner": "workspace:*",
|
||||
"@cloudbeaver/tsconfig": "workspace:*",
|
||||
"@dbeaver/cli": "workspace:*",
|
||||
"@dbeaver/react-tests": "workspace:^",
|
||||
"@dbeaver/react-tests": "workspace:*",
|
||||
"rimraf": "^6",
|
||||
"typescript": "^5",
|
||||
"vitest": "^3"
|
||||
}
|
||||
|
||||
@@ -7,7 +7,6 @@
|
||||
*/
|
||||
|
||||
import './module.js';
|
||||
export * from './manifest.js';
|
||||
export * from './NAVIGATION_TREE_SETTINGS_GROUP.js';
|
||||
export * from './NavTreeSettingsService.js';
|
||||
|
||||
|
||||
@@ -1,14 +0,0 @@
|
||||
/*
|
||||
* CloudBeaver - Cloud Database Manager
|
||||
* Copyright (C) 2020-2025 DBeaver Corp and others
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0.
|
||||
* you may not use this file except in compliance with the License.
|
||||
*/
|
||||
import type { PluginManifest } from '@cloudbeaver/core-di';
|
||||
|
||||
export const coreNavigationTree: PluginManifest = {
|
||||
info: {
|
||||
name: 'Core Navigation Tree',
|
||||
},
|
||||
};
|
||||
@@ -15,7 +15,7 @@ import { DBObjectResource } from './NodesManager/DBObjectResource.js';
|
||||
import { NavTreeSettingsService } from './NavTreeSettingsService.js';
|
||||
import { LocaleService } from './LocaleService.js';
|
||||
|
||||
ModuleRegistry.add({
|
||||
export default ModuleRegistry.add({
|
||||
name: '@cloudbeaver/core-navigation-tree',
|
||||
|
||||
configure: serviceCollection => {
|
||||
|
||||
@@ -57,9 +57,6 @@
|
||||
},
|
||||
{
|
||||
"path": "../core-utils"
|
||||
},
|
||||
{
|
||||
"path": "../tests-runner"
|
||||
}
|
||||
],
|
||||
"include": [
|
||||
|
||||
@@ -12,7 +12,8 @@
|
||||
"description": "",
|
||||
"license": "Apache-2.0",
|
||||
"exports": {
|
||||
".": "./lib/index.js"
|
||||
".": "./lib/index.js",
|
||||
"./module": "./lib/module.js"
|
||||
},
|
||||
"scripts": {
|
||||
"build": "tsc -b",
|
||||
@@ -35,6 +36,7 @@
|
||||
"@cloudbeaver/core-cli": "workspace:*",
|
||||
"@cloudbeaver/tsconfig": "workspace:*",
|
||||
"@types/react": "^19",
|
||||
"rimraf": "^6",
|
||||
"typescript": "^5",
|
||||
"typescript-plugin-css-modules": "^5"
|
||||
}
|
||||
|
||||
@@ -12,7 +12,8 @@
|
||||
"description": "",
|
||||
"license": "Apache-2.0",
|
||||
"exports": {
|
||||
".": "./lib/index.js"
|
||||
".": "./lib/index.js",
|
||||
"./module": "./lib/module.js"
|
||||
},
|
||||
"scripts": {
|
||||
"build": "tsc -b",
|
||||
@@ -29,6 +30,7 @@
|
||||
"devDependencies": {
|
||||
"@cloudbeaver/core-cli": "workspace:*",
|
||||
"@cloudbeaver/tsconfig": "workspace:*",
|
||||
"rimraf": "^6",
|
||||
"typescript": "^5"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -8,4 +8,3 @@
|
||||
|
||||
import './module.js';
|
||||
export * from './ProductSettingsService.js';
|
||||
export * from './manifest.js';
|
||||
|
||||
@@ -1,14 +0,0 @@
|
||||
/*
|
||||
* CloudBeaver - Cloud Database Manager
|
||||
* Copyright (C) 2020-2025 DBeaver Corp and others
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0.
|
||||
* you may not use this file except in compliance with the License.
|
||||
*/
|
||||
import type { PluginManifest } from '@cloudbeaver/core-di';
|
||||
|
||||
export const coreProductManifest: PluginManifest = {
|
||||
info: {
|
||||
name: 'Core Product',
|
||||
},
|
||||
};
|
||||
@@ -9,7 +9,7 @@
|
||||
import { ModuleRegistry } from '@cloudbeaver/core-di';
|
||||
import { ProductSettingsService } from './ProductSettingsService.js';
|
||||
|
||||
ModuleRegistry.add({
|
||||
export default ModuleRegistry.add({
|
||||
name: '@cloudbeaver/core-product',
|
||||
|
||||
configure: serviceCollection => {
|
||||
|
||||
@@ -12,7 +12,8 @@
|
||||
"description": "",
|
||||
"license": "Apache-2.0",
|
||||
"exports": {
|
||||
".": "./lib/index.js"
|
||||
".": "./lib/index.js",
|
||||
"./module": "./lib/module.js"
|
||||
},
|
||||
"scripts": {
|
||||
"build": "tsc -b",
|
||||
@@ -37,6 +38,7 @@
|
||||
"devDependencies": {
|
||||
"@cloudbeaver/core-cli": "workspace:*",
|
||||
"@cloudbeaver/tsconfig": "workspace:*",
|
||||
"rimraf": "^6",
|
||||
"typescript": "^5"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -17,4 +17,3 @@ export * from './ProjectInfoResource.js';
|
||||
export * from './ProjectsService.js';
|
||||
export * from './NAV_NODE_TYPE_PROJECT.js';
|
||||
export * from './NavTree/getProjectNodeId.js';
|
||||
export { manifest as coreProjectsManifest } from './manifest.js';
|
||||
|
||||
@@ -1,14 +0,0 @@
|
||||
/*
|
||||
* CloudBeaver - Cloud Database Manager
|
||||
* Copyright (C) 2020-2025 DBeaver Corp and others
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0.
|
||||
* you may not use this file except in compliance with the License.
|
||||
*/
|
||||
import type { PluginManifest } from '@cloudbeaver/core-di';
|
||||
|
||||
export const manifest: PluginManifest = {
|
||||
info: {
|
||||
name: 'Core Projects',
|
||||
},
|
||||
};
|
||||
@@ -12,7 +12,7 @@ import { ProjectInfoResource } from './ProjectInfoResource.js';
|
||||
import { ProjectInfoEventHandler } from './ProjectInfoEventHandler.js';
|
||||
import { LocaleService } from './LocaleService.js';
|
||||
|
||||
ModuleRegistry.add({
|
||||
export default ModuleRegistry.add({
|
||||
name: '@cloudbeaver/core-projects',
|
||||
|
||||
configure: serviceCollection => {
|
||||
|
||||
@@ -12,7 +12,8 @@
|
||||
"description": "",
|
||||
"license": "Apache-2.0",
|
||||
"exports": {
|
||||
".": "./lib/index.js"
|
||||
".": "./lib/index.js",
|
||||
"./module": "./lib/module.js"
|
||||
},
|
||||
"scripts": {
|
||||
"build": "tsc -b",
|
||||
@@ -37,6 +38,7 @@
|
||||
"devDependencies": {
|
||||
"@cloudbeaver/core-cli": "workspace:*",
|
||||
"@cloudbeaver/tsconfig": "workspace:*",
|
||||
"rimraf": "^6",
|
||||
"typescript": "^5"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -20,4 +20,3 @@ export * from './NAV_NODE_TYPE_RM_RESOURCE.js';
|
||||
export * from './RESOURCES_NODE_PATH.js';
|
||||
export * from './isRMProjectNode.js';
|
||||
export * from './isRMResourceNode.js';
|
||||
export { resourceManagerManifest } from './manifest.js';
|
||||
|
||||
@@ -1,14 +0,0 @@
|
||||
/*
|
||||
* CloudBeaver - Cloud Database Manager
|
||||
* Copyright (C) 2020-2025 DBeaver Corp and others
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0.
|
||||
* you may not use this file except in compliance with the License.
|
||||
*/
|
||||
import type { PluginManifest } from '@cloudbeaver/core-di';
|
||||
|
||||
export const resourceManagerManifest: PluginManifest = {
|
||||
info: {
|
||||
name: 'Resource Manager Core',
|
||||
},
|
||||
};
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user