@k8slens/extensions 5.3.1-git.b350ea5900.0 → 5.3.1-git.c0a0127d2d.0

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.
Files changed (42) hide show
  1. package/dist/src/common/cluster-types.d.ts +5 -1
  2. package/dist/src/common/k8s-api/kube-api-parse.d.ts +2 -2
  3. package/dist/src/common/k8s-api/kube-api.d.ts +29 -5
  4. package/dist/src/common/k8s-api/kube-json-api.d.ts +1 -2
  5. package/dist/src/common/protocol-handler/error.d.ts +3 -3
  6. package/dist/src/common/protocol-handler/router.d.ts +5 -5
  7. package/dist/src/common/utils/readableStream.d.ts +2 -2
  8. package/dist/src/extensions/extension-api.js +167 -49
  9. package/dist/src/extensions/extension-compatibility.d.ts +3 -1
  10. package/dist/src/extensions/registries/status-bar-registry.d.ts +6 -0
  11. package/dist/src/extensions/renderer-api/k8s-api.d.ts +1 -0
  12. package/dist/src/main/cluster-manager.d.ts +1 -1
  13. package/dist/src/main/lens-proxy.d.ts +8 -1
  14. package/dist/src/main/menu.d.ts +6 -1
  15. package/dist/src/main/protocol-handler/router.d.ts +3 -3
  16. package/dist/src/main/window-manager.d.ts +3 -0
  17. package/dist/src/renderer/api/terminal-api.d.ts +0 -2
  18. package/dist/src/renderer/components/+network-policies/network-policy-details.d.ts +5 -2
  19. package/dist/src/renderer/{utils/copyToClipboard.d.ts → components/cluster-manager/active-hotbar-name.d.ts} +1 -7
  20. package/dist/src/renderer/components/cluster-manager/bottom-bar.d.ts +0 -1
  21. package/dist/src/renderer/components/dialog/dialog.d.ts +1 -0
  22. package/dist/src/renderer/components/dock/install-chart.d.ts +0 -1
  23. package/dist/src/renderer/components/kube-object-menu/dependencies/api-manager.injectable.d.ts +24 -0
  24. package/dist/src/renderer/components/kube-object-menu/dependencies/cluster-name.injectable.d.ts +27 -0
  25. package/dist/src/renderer/components/kube-object-menu/dependencies/cluster.injectable.d.ts +4 -0
  26. package/dist/src/renderer/components/kube-object-menu/dependencies/edit-resource-tab.injectable.d.ts +24 -0
  27. package/dist/src/renderer/components/kube-object-menu/dependencies/hide-details.injectable.d.ts +24 -0
  28. package/dist/src/renderer/components/kube-object-menu/dependencies/kube-object-menu-items/get-kube-object-menu-items.d.ts +29 -0
  29. package/dist/src/renderer/components/kube-object-menu/dependencies/kube-object-menu-items/kube-object-menu-items.injectable.d.ts +24 -0
  30. package/dist/src/renderer/components/kube-object-menu/dependencies/kube-object-menu-items/kube-object-menu-registry.injectable.d.ts +24 -0
  31. package/dist/src/renderer/components/kube-object-menu/index.d.ts +2 -1
  32. package/dist/src/renderer/components/kube-object-menu/kube-object-menu-container.d.ts +2 -0
  33. package/dist/src/renderer/components/kube-object-menu/kube-object-menu.d.ts +14 -4
  34. package/dist/src/renderer/components/kube-object-menu/kube-object-menu.injectable.d.ts +5 -0
  35. package/dist/src/renderer/components/{clipboard/index.d.ts → kube-object-menu/kube-object-menu.test.d.ts} +1 -1
  36. package/dist/src/renderer/components/kubeconfig-dialog/kubeconfig-dialog.d.ts +0 -1
  37. package/dist/src/renderer/components/layout/__tests__/topbar-win-linux.test.d.ts +21 -0
  38. package/dist/src/renderer/components/{clipboard/clipboard.d.ts → test-utils/renderFor.d.ts} +6 -16
  39. package/dist/src/renderer/initializers/index.d.ts +1 -0
  40. package/dist/src/renderer/initializers/status-bar-registry.d.ts +21 -0
  41. package/dist/src/renderer/utils/index.d.ts +0 -1
  42. package/package.json +1 -1
@@ -18,6 +18,8 @@
18
18
  * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
19
19
  * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
20
20
  */
21
+ import { SemVer } from "semver";
21
22
  import type { LensExtensionManifest } from "./lens-extension";
22
- export declare function isCompatibleExtension(manifest: LensExtensionManifest): boolean;
23
+ export declare function rawIsCompatibleExtension(version: SemVer): (manifest: LensExtensionManifest) => boolean;
24
+ export declare const isCompatibleExtension: (manifest: LensExtensionManifest) => boolean;
23
25
  export declare function isCompatibleBundledExtension(manifest: LensExtensionManifest): boolean;
@@ -22,6 +22,12 @@ import type React from "react";
22
22
  import { BaseRegistry } from "./base-registry";
23
23
  interface StatusBarComponents {
24
24
  Item?: React.ComponentType;
25
+ /**
26
+ * The side of the bottom bar to place this component.
27
+ *
28
+ * @default "right"
29
+ */
30
+ position?: "left" | "right";
25
31
  }
26
32
  interface StatusBarRegistrationV2 {
27
33
  components?: StatusBarComponents;
@@ -54,6 +54,7 @@ export { ClusterRole, clusterRoleApi } from "../../common/k8s-api/endpoints";
54
54
  export { ClusterRoleBinding, clusterRoleBindingApi } from "../../common/k8s-api/endpoints";
55
55
  export { CustomResourceDefinition, crdApi } from "../../common/k8s-api/endpoints";
56
56
  export { KubeObjectStatusLevel } from "./kube-object-status";
57
+ export { KubeJsonApi } from "../../common/k8s-api/kube-json-api";
57
58
  export type { ILocalKubeApiConfig, IRemoteKubeApiConfig, IKubeApiCluster } from "../../common/k8s-api/kube-api";
58
59
  export type { IPodContainer, IPodContainerStatus } from "../../common/k8s-api/endpoints";
59
60
  export type { ISecretRef } from "../../common/k8s-api/endpoints";
@@ -34,7 +34,7 @@ export declare class ClusterManager extends Singleton {
34
34
  protected updateCatalog(clusters: Cluster[]): void;
35
35
  protected updateEntityFromCluster(cluster: Cluster): void;
36
36
  protected updateEntityStatus(entity: KubernetesCluster, cluster?: Cluster): void;
37
- syncClustersFromCatalog(entities: KubernetesCluster[]): void;
37
+ protected syncClustersFromCatalog(entities: KubernetesCluster[]): void;
38
38
  protected onNetworkOffline: () => void;
39
39
  protected onNetworkOnline: () => void;
40
40
  stop(): void;
@@ -43,9 +43,16 @@ export declare class LensProxy extends Singleton {
43
43
  protected getClusterForRequest: GetClusterForRequest;
44
44
  port: number;
45
45
  constructor(router: Router, { shellApiRequest, kubeApiRequest, getClusterForRequest }: LensProxyFunctions);
46
+ /**
47
+ * Starts to listen on an OS provided port. Will reject if the server throws
48
+ * an error.
49
+ *
50
+ * Resolves with the port number that was picked
51
+ */
52
+ private attemptToListen;
46
53
  /**
47
54
  * Starts the lens proxy.
48
- * @resolves After the server is listening
55
+ * @resolves After the server is listening on a good port
49
56
  * @rejects if there is an error before that happens
50
57
  */
51
58
  listen(): Promise<void>;
@@ -18,9 +18,14 @@
18
18
  * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
19
19
  * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
20
20
  */
21
- import { BrowserWindow } from "electron";
21
+ import { BrowserWindow, MenuItemConstructorOptions } from "electron";
22
22
  import type { WindowManager } from "./window-manager";
23
23
  export declare type MenuTopId = "mac" | "file" | "edit" | "view" | "help";
24
+ interface MenuItemsOpts extends MenuItemConstructorOptions {
25
+ submenu?: MenuItemConstructorOptions[];
26
+ }
24
27
  export declare function initMenu(windowManager: WindowManager): import("mobx").IReactionDisposer;
25
28
  export declare function showAbout(browserWindow: BrowserWindow): void;
29
+ export declare function getAppMenu(windowManager: WindowManager): MenuItemsOpts[];
26
30
  export declare function buildMenu(windowManager: WindowManager): void;
31
+ export {};
@@ -39,9 +39,9 @@ export declare class LensProtocolRouterMain extends proto.LensProtocolRouter {
39
39
  */
40
40
  route(rawUrl: string): Promise<void>;
41
41
  protected _executeMissingExtensionHandlers(extensionName: string): Promise<boolean>;
42
- protected _findMatchingExtensionByName(url: URLParse): Promise<LensExtension | string>;
43
- protected _routeToInternal(url: URLParse): RouteAttempt;
44
- protected _routeToExtension(url: URLParse): Promise<RouteAttempt>;
42
+ protected _findMatchingExtensionByName(url: URLParse<Record<string, string>>): Promise<LensExtension | string>;
43
+ protected _routeToInternal(url: URLParse<Record<string, string>>): RouteAttempt;
44
+ protected _routeToExtension(url: URLParse<Record<string, string>>): Promise<RouteAttempt>;
45
45
  /**
46
46
  * Add a function to the list which will be sequentially called if an extension
47
47
  * is not found while routing to the extensions
@@ -23,6 +23,9 @@ import { BrowserWindow } from "electron";
23
23
  import windowStateKeeper from "electron-window-state";
24
24
  import { Singleton } from "../common/utils";
25
25
  import { ClusterFrameInfo } from "../common/cluster-frames";
26
+ export declare const enum IpcMainWindowEvents {
27
+ OPEN_CONTEXT_MENU = "window:open-context-menu"
28
+ }
26
29
  export interface SendToViewArgs {
27
30
  channel: string;
28
31
  frameInfo?: ClusterFrameInfo;
@@ -69,8 +69,6 @@ export declare class TerminalApi extends WebSocketApi<TerminalEvents> {
69
69
  isReady: boolean;
70
70
  constructor(query: TerminalApiQuery);
71
71
  connect(): Promise<void>;
72
- destroy(): void;
73
- reconnect(): void;
74
72
  sendMessage(message: TerminalMessage): void;
75
73
  sendTerminalSize(cols: number, rows: number): void;
76
74
  protected _onMessage({ data, ...evt }: MessageEvent<ArrayBuffer>): void;
@@ -19,13 +19,16 @@
19
19
  * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
20
20
  */
21
21
  import React from "react";
22
- import { IPolicyIpBlock, IPolicySelector, NetworkPolicy, NetworkPolicyPeer, NetworkPolicyPort } from "../../../common/k8s-api/endpoints/network-policy.api";
22
+ import { IPolicyIpBlock, NetworkPolicy, NetworkPolicyPeer, NetworkPolicyPort } from "../../../common/k8s-api/endpoints/network-policy.api";
23
23
  import type { KubeObjectDetailsProps } from "../kube-object-details";
24
+ import type { LabelMatchExpression, LabelSelector } from "../../../common/k8s-api/kube-object";
24
25
  interface Props extends KubeObjectDetailsProps<NetworkPolicy> {
25
26
  }
26
27
  export declare class NetworkPolicyDetails extends React.Component<Props> {
27
28
  renderIPolicyIpBlock(ipBlock: IPolicyIpBlock | undefined): JSX.Element;
28
- renderIPolicySelector(name: string, selector: IPolicySelector | undefined): JSX.Element;
29
+ renderMatchLabels(matchLabels: Record<string, string | undefined> | undefined): JSX.Element[];
30
+ renderMatchExpressions(matchExpressions: LabelMatchExpression[] | undefined): JSX.Element[];
31
+ renderIPolicySelector(name: string, selector: LabelSelector | undefined): JSX.Element;
29
32
  renderNetworkPolicyPeers(name: string, peers: NetworkPolicyPeer[] | undefined): JSX.Element;
30
33
  renderNetworkPolicyPorts(ports: NetworkPolicyPort[] | undefined): JSX.Element;
31
34
  render(): JSX.Element;
@@ -18,10 +18,4 @@
18
18
  * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
19
19
  * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
20
20
  */
21
- export declare function copyToClipboard(elem: HTMLElement, { resetSelection }?: {
22
- resetSelection?: boolean;
23
- }): {
24
- copied: boolean;
25
- copiedText: string;
26
- clearSelection: () => void;
27
- };
21
+ export declare const ActiveHotbarName: () => JSX.Element;
@@ -18,7 +18,6 @@
18
18
  * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
19
19
  * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
20
20
  */
21
- import "./bottom-bar.scss";
22
21
  import React from "react";
23
22
  import { StatusBarRegistration } from "../../../extensions/registries";
24
23
  export declare class BottomBar extends React.Component {
@@ -30,6 +30,7 @@ export interface DialogProps {
30
30
  modal?: boolean;
31
31
  pinned?: boolean;
32
32
  animated?: boolean;
33
+ "data-testid"?: string;
33
34
  }
34
35
  interface DialogState {
35
36
  isOpen: boolean;
@@ -30,7 +30,6 @@ export declare class InstallChart extends Component<Props> {
30
30
  error: string;
31
31
  showNotes: boolean;
32
32
  constructor(props: Props);
33
- get values(): string;
34
33
  get chartData(): IChartInstallData;
35
34
  get tabId(): string;
36
35
  get versions(): string[];
@@ -0,0 +1,24 @@
1
+ /**
2
+ * Copyright (c) 2021 OpenLens Authors
3
+ *
4
+ * Permission is hereby granted, free of charge, to any person obtaining a copy of
5
+ * this software and associated documentation files (the "Software"), to deal in
6
+ * the Software without restriction, including without limitation the rights to
7
+ * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
8
+ * the Software, and to permit persons to whom the Software is furnished to do so,
9
+ * subject to the following conditions:
10
+ *
11
+ * The above copyright notice and this permission notice shall be included in all
12
+ * copies or substantial portions of the Software.
13
+ *
14
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
15
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
16
+ * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
17
+ * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
18
+ * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
19
+ * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
20
+ */
21
+ import type { ApiManager } from "../../../../common/k8s-api/api-manager";
22
+ import type { Injectable } from "@ogre-tools/injectable";
23
+ declare const apiManagerInjectable: Injectable<ApiManager>;
24
+ export default apiManagerInjectable;
@@ -0,0 +1,27 @@
1
+ /**
2
+ * Copyright (c) 2021 OpenLens Authors
3
+ *
4
+ * Permission is hereby granted, free of charge, to any person obtaining a copy of
5
+ * this software and associated documentation files (the "Software"), to deal in
6
+ * the Software without restriction, including without limitation the rights to
7
+ * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
8
+ * the Software, and to permit persons to whom the Software is furnished to do so,
9
+ * subject to the following conditions:
10
+ *
11
+ * The above copyright notice and this permission notice shall be included in all
12
+ * copies or substantial portions of the Software.
13
+ *
14
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
15
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
16
+ * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
17
+ * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
18
+ * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
19
+ * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
20
+ */
21
+ import type { Injectable } from "@ogre-tools/injectable";
22
+ import type { Cluster } from "../../../../main/cluster";
23
+ interface Dependencies {
24
+ cluster: Cluster;
25
+ }
26
+ declare const clusterNameInjectable: Injectable<string | undefined, Dependencies>;
27
+ export default clusterNameInjectable;
@@ -0,0 +1,4 @@
1
+ import type { Injectable } from "@ogre-tools/injectable";
2
+ import type { Cluster } from "../../../../main/cluster";
3
+ declare const clusterInjectable: Injectable<Cluster | null>;
4
+ export default clusterInjectable;
@@ -0,0 +1,24 @@
1
+ /**
2
+ * Copyright (c) 2021 OpenLens Authors
3
+ *
4
+ * Permission is hereby granted, free of charge, to any person obtaining a copy of
5
+ * this software and associated documentation files (the "Software"), to deal in
6
+ * the Software without restriction, including without limitation the rights to
7
+ * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
8
+ * the Software, and to permit persons to whom the Software is furnished to do so,
9
+ * subject to the following conditions:
10
+ *
11
+ * The above copyright notice and this permission notice shall be included in all
12
+ * copies or substantial portions of the Software.
13
+ *
14
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
15
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
16
+ * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
17
+ * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
18
+ * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
19
+ * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
20
+ */
21
+ import { editResourceTab } from "../../dock/edit-resource.store";
22
+ import type { Injectable } from "@ogre-tools/injectable";
23
+ declare const editResourceTabInjectable: Injectable<typeof editResourceTab>;
24
+ export default editResourceTabInjectable;
@@ -0,0 +1,24 @@
1
+ /**
2
+ * Copyright (c) 2021 OpenLens Authors
3
+ *
4
+ * Permission is hereby granted, free of charge, to any person obtaining a copy of
5
+ * this software and associated documentation files (the "Software"), to deal in
6
+ * the Software without restriction, including without limitation the rights to
7
+ * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
8
+ * the Software, and to permit persons to whom the Software is furnished to do so,
9
+ * subject to the following conditions:
10
+ *
11
+ * The above copyright notice and this permission notice shall be included in all
12
+ * copies or substantial portions of the Software.
13
+ *
14
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
15
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
16
+ * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
17
+ * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
18
+ * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
19
+ * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
20
+ */
21
+ import { hideDetails } from "../../kube-detail-params";
22
+ import type { Injectable } from "@ogre-tools/injectable";
23
+ export declare const hideDetailsInjectable: Injectable<typeof hideDetails>;
24
+ export default hideDetailsInjectable;
@@ -0,0 +1,29 @@
1
+ /**
2
+ * Copyright (c) 2021 OpenLens Authors
3
+ *
4
+ * Permission is hereby granted, free of charge, to any person obtaining a copy of
5
+ * this software and associated documentation files (the "Software"), to deal in
6
+ * the Software without restriction, including without limitation the rights to
7
+ * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
8
+ * the Software, and to permit persons to whom the Software is furnished to do so,
9
+ * subject to the following conditions:
10
+ *
11
+ * The above copyright notice and this permission notice shall be included in all
12
+ * copies or substantial portions of the Software.
13
+ *
14
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
15
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
16
+ * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
17
+ * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
18
+ * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
19
+ * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
20
+ */
21
+ import type { KubeObjectMenuRegistry } from "../../../../../extensions/registries";
22
+ import type { KubeObject } from "../../../../../common/k8s-api/kube-object";
23
+ export interface Dependencies {
24
+ kubeObjectMenuRegistry: KubeObjectMenuRegistry;
25
+ }
26
+ export interface InstantiationParameter {
27
+ kubeObject: KubeObject;
28
+ }
29
+ export declare const getKubeObjectMenuItems: ({ kubeObjectMenuRegistry }: Dependencies, { kubeObject }: InstantiationParameter) => import("react").ComponentType<any>[];
@@ -0,0 +1,24 @@
1
+ /**
2
+ * Copyright (c) 2021 OpenLens Authors
3
+ *
4
+ * Permission is hereby granted, free of charge, to any person obtaining a copy of
5
+ * this software and associated documentation files (the "Software"), to deal in
6
+ * the Software without restriction, including without limitation the rights to
7
+ * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
8
+ * the Software, and to permit persons to whom the Software is furnished to do so,
9
+ * subject to the following conditions:
10
+ *
11
+ * The above copyright notice and this permission notice shall be included in all
12
+ * copies or substantial portions of the Software.
13
+ *
14
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
15
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
16
+ * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
17
+ * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
18
+ * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
19
+ * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
20
+ */
21
+ import { Injectable } from "@ogre-tools/injectable";
22
+ import { InstantiationParameter, Dependencies, getKubeObjectMenuItems } from "./get-kube-object-menu-items";
23
+ declare const kubeObjectMenuItemsInjectable: Injectable<ReturnType<typeof getKubeObjectMenuItems>, Dependencies, InstantiationParameter>;
24
+ export default kubeObjectMenuItemsInjectable;
@@ -0,0 +1,24 @@
1
+ /**
2
+ * Copyright (c) 2021 OpenLens Authors
3
+ *
4
+ * Permission is hereby granted, free of charge, to any person obtaining a copy of
5
+ * this software and associated documentation files (the "Software"), to deal in
6
+ * the Software without restriction, including without limitation the rights to
7
+ * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
8
+ * the Software, and to permit persons to whom the Software is furnished to do so,
9
+ * subject to the following conditions:
10
+ *
11
+ * The above copyright notice and this permission notice shall be included in all
12
+ * copies or substantial portions of the Software.
13
+ *
14
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
15
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
16
+ * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
17
+ * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
18
+ * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
19
+ * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
20
+ */
21
+ import { KubeObjectMenuRegistry } from "../../../../../extensions/registries";
22
+ import type { Injectable } from "@ogre-tools/injectable";
23
+ declare const kubeObjectMenuRegistryInjectable: Injectable<KubeObjectMenuRegistry>;
24
+ export default kubeObjectMenuRegistryInjectable;
@@ -18,4 +18,5 @@
18
18
  * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
19
19
  * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
20
20
  */
21
- export * from "./kube-object-menu";
21
+ export type { KubeObjectMenuProps } from "./kube-object-menu";
22
+ export { KubeObjectMenu } from "./kube-object-menu-container";
@@ -0,0 +1,2 @@
1
+ /// <reference types="react" />
2
+ export declare const KubeObjectMenu: import("react").FC<import("./kube-object-menu").KubeObjectMenuProps<import("../../../common/k8s-api/kube-object").KubeObject<import("../../../common/k8s-api/kube-object").KubeObjectMetadata, any, any>>>;
@@ -20,13 +20,23 @@
20
20
  */
21
21
  import React from "react";
22
22
  import type { KubeObject } from "../../../common/k8s-api/kube-object";
23
- import { MenuActionsProps } from "../menu/menu-actions";
24
- export interface KubeObjectMenuProps<T> extends MenuActionsProps {
25
- object: T | null | undefined;
23
+ import { MenuActionsProps } from "../menu";
24
+ import type { ApiManager } from "../../../common/k8s-api/api-manager";
25
+ export interface KubeObjectMenuDependencies<TKubeObject> {
26
+ apiManager: ApiManager;
27
+ kubeObjectMenuItems: React.ElementType[];
28
+ clusterName: string;
29
+ hideDetails: () => void;
30
+ editResourceTab: (kubeObject: TKubeObject) => void;
31
+ }
32
+ export interface KubeObjectMenuProps<TKubeObject> extends MenuActionsProps {
33
+ object: TKubeObject | null | undefined;
26
34
  editable?: boolean;
27
35
  removable?: boolean;
28
36
  }
29
- export declare class KubeObjectMenu<T extends KubeObject> extends React.Component<KubeObjectMenuProps<T>> {
37
+ export interface KubeObjectMenuPropsAndDependencies<TKubeObject> extends KubeObjectMenuProps<TKubeObject>, KubeObjectMenuDependencies<TKubeObject> {
38
+ }
39
+ export declare class KubeObjectMenu<TKubeObject extends KubeObject> extends React.Component<KubeObjectMenuPropsAndDependencies<TKubeObject>> {
30
40
  get store(): import("../../../common/k8s-api/kube-object.store").KubeObjectStore<KubeObject<import("../../../common/k8s-api/kube-object").KubeObjectMetadata, any, any>>;
31
41
  get isEditable(): boolean;
32
42
  get isRemovable(): boolean;
@@ -0,0 +1,5 @@
1
+ import { KubeObjectMenuDependencies, KubeObjectMenuProps } from "./kube-object-menu";
2
+ import type { KubeObject } from "../../../common/k8s-api/kube-object";
3
+ import { Injectable } from "@ogre-tools/injectable";
4
+ declare const KubeObjectMenuInjectable: Injectable<JSX.Element, KubeObjectMenuDependencies<KubeObject>, KubeObjectMenuProps<KubeObject>>;
5
+ export default KubeObjectMenuInjectable;
@@ -18,4 +18,4 @@
18
18
  * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
19
19
  * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
20
20
  */
21
- export * from "./clipboard";
21
+ import "@testing-library/jest-dom/extend-expect";
@@ -28,7 +28,6 @@ interface IKubeconfigDialogData {
28
28
  interface Props extends Partial<DialogProps> {
29
29
  }
30
30
  export declare class KubeConfigDialog extends React.Component<Props> {
31
- configTextArea: HTMLTextAreaElement;
32
31
  config: string;
33
32
  constructor(props: Props);
34
33
  static open(data: IKubeconfigDialogData): void;
@@ -0,0 +1,21 @@
1
+ /**
2
+ * Copyright (c) 2021 OpenLens Authors
3
+ *
4
+ * Permission is hereby granted, free of charge, to any person obtaining a copy of
5
+ * this software and associated documentation files (the "Software"), to deal in
6
+ * the Software without restriction, including without limitation the rights to
7
+ * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
8
+ * the Software, and to permit persons to whom the Software is furnished to do so,
9
+ * subject to the following conditions:
10
+ *
11
+ * The above copyright notice and this permission notice shall be included in all
12
+ * copies or substantial portions of the Software.
13
+ *
14
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
15
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
16
+ * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
17
+ * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
18
+ * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
19
+ * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
20
+ */
21
+ import "@testing-library/jest-dom/extend-expect";
@@ -18,20 +18,10 @@
18
18
  * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
19
19
  * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
20
20
  */
21
- import "./clipboard.scss";
22
21
  import React from "react";
23
- export interface CopyToClipboardProps {
24
- resetSelection?: boolean;
25
- showNotification?: boolean;
26
- cssSelectorLimit?: string;
27
- getNotificationMessage?(copiedText: string): React.ReactNode;
28
- }
29
- export declare const defaultProps: Partial<CopyToClipboardProps>;
30
- export declare class Clipboard extends React.Component<CopyToClipboardProps> {
31
- static displayName: string;
32
- static defaultProps: object;
33
- get rootElem(): HTMLElement;
34
- get rootReactElem(): React.ReactElement<React.HTMLProps<any>>;
35
- onClick(evt: React.MouseEvent): void;
36
- render(): React.ReactElement<React.HTMLProps<any>, string | React.JSXElementConstructor<any>>;
37
- }
22
+ import { RenderResult } from "@testing-library/react";
23
+ import type { ConfigurableDependencyInjectionContainer } from "@ogre-tools/injectable";
24
+ export declare type DiRender = (ui: React.ReactElement) => RenderResult;
25
+ declare type DiRenderFor = (di: ConfigurableDependencyInjectionContainer) => DiRender;
26
+ export declare const renderFor: DiRenderFor;
27
+ export {};
@@ -29,3 +29,4 @@ export * from "./registries";
29
29
  export * from "./welcome-menu-registry";
30
30
  export * from "./workloads-overview-detail-registry";
31
31
  export * from "./catalog-category-registry";
32
+ export * from "./status-bar-registry";
@@ -0,0 +1,21 @@
1
+ /**
2
+ * Copyright (c) 2021 OpenLens Authors
3
+ *
4
+ * Permission is hereby granted, free of charge, to any person obtaining a copy of
5
+ * this software and associated documentation files (the "Software"), to deal in
6
+ * the Software without restriction, including without limitation the rights to
7
+ * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
8
+ * the Software, and to permit persons to whom the Software is furnished to do so,
9
+ * subject to the following conditions:
10
+ *
11
+ * The above copyright notice and this permission notice shall be included in all
12
+ * copies or substantial portions of the Software.
13
+ *
14
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
15
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
16
+ * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
17
+ * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
18
+ * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
19
+ * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
20
+ */
21
+ export declare function initStatusBarRegistry(): void;
@@ -20,7 +20,6 @@
20
20
  */
21
21
  export * from "../../common/utils";
22
22
  export * from "../../common/event-emitter";
23
- export * from "./copyToClipboard";
24
23
  export * from "./createStorage";
25
24
  export * from "./cssNames";
26
25
  export * from "./cssVar";
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "@k8slens/extensions",
3
3
  "productName": "OpenLens extensions",
4
4
  "description": "OpenLens - Open Source Kubernetes IDE: extensions",
5
- "version": "5.3.1-git.b350ea5900.0",
5
+ "version": "5.3.1-git.c0a0127d2d.0",
6
6
  "copyright": "© 2021 OpenLens Authors",
7
7
  "license": "MIT",
8
8
  "main": "dist/src/extensions/extension-api.js",