@k8slens/extensions 5.6.0-git.240dfad167.0 → 5.6.0-git.2b9c2ad69e.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 (55) hide show
  1. package/dist/src/common/cluster/cluster.d.ts +2 -2
  2. package/dist/src/common/cluster/create-cluster-injection-token.d.ts +2 -2
  3. package/dist/src/common/cluster-store/allowed-resources-injection-token.d.ts +6 -0
  4. package/dist/src/common/cluster-store/cluster-store.d.ts +4 -1
  5. package/dist/src/common/cluster-store/read-cluster-config.injectable.d.ts +4 -0
  6. package/dist/src/common/cluster-types.d.ts +8 -0
  7. package/dist/src/common/front-end-routing/{route-injection-token.d.ts → front-end-route-injection-token.d.ts} +1 -1
  8. package/dist/src/common/front-end-routing/navigate-to-route-injection-token.d.ts +1 -1
  9. package/dist/src/common/front-end-routing/routes/catalog/catalog-route.injectable.d.ts +1 -1
  10. package/dist/src/common/front-end-routing/routes/cluster/custom-resources/custom-resources/custom-resources-route.injectable.d.ts +1 -1
  11. package/dist/src/common/front-end-routing/routes/cluster-view/cluster-view-route.injectable.d.ts +1 -1
  12. package/dist/src/common/fs/read-file-sync.injectable.d.ts +3 -0
  13. package/dist/src/common/k8s-api/endpoints/cluster.api.d.ts +7 -0
  14. package/dist/src/common/k8s-api/endpoints/ingress.api.d.ts +1 -1
  15. package/dist/src/common/k8s-api/endpoints/metrics.api.d.ts +1 -1
  16. package/dist/src/common/k8s-api/kube-object.store.d.ts +2 -2
  17. package/dist/src/common/kube-helpers.d.ts +10 -2
  18. package/dist/src/common/utils/buildUrl.d.ts +1 -1
  19. package/dist/src/common/utils/reject-promise.d.ts +2 -2
  20. package/dist/src/common/utils/resolve-system-proxy/resolve-system-proxy-injection-token.d.ts +6 -0
  21. package/dist/src/common/utils/type-narrowing.d.ts +5 -0
  22. package/dist/src/common/vars/base-bundled-binaries-dir.injectable.d.ts +2 -2
  23. package/dist/src/common/vars/normalized-platform-architecture.injectable.d.ts +2 -0
  24. package/dist/src/common/vars/package-json.injectable.d.ts +13 -9
  25. package/dist/src/extensions/common-api/index.d.ts +2 -1
  26. package/dist/src/extensions/common-api/proxy.d.ts +10 -0
  27. package/dist/src/extensions/extension-loader/extension/extension.injectable.d.ts +7 -0
  28. package/dist/src/extensions/extension-loader/extension-loader.d.ts +2 -2
  29. package/dist/src/extensions/extension-loader/extension-registrator-injection-token.d.ts +7 -0
  30. package/dist/src/extensions/extensions-store/extensions-store.d.ts +5 -4
  31. package/dist/src/extensions/lens-extension-set-dependencies.d.ts +1 -1
  32. package/dist/src/extensions/lens-renderer-extension.d.ts +2 -0
  33. package/dist/src/extensions/registries/entity-setting-registry.d.ts +1 -1
  34. package/dist/src/extensions/renderer-api/components.d.ts +1 -0
  35. package/dist/src/main/kube-auth-proxy/kube-auth-proxy.d.ts +1 -0
  36. package/dist/src/main/start-main-application/lens-window/application-window/application-window.injectable.d.ts +1 -6
  37. package/dist/src/main/start-main-application/lens-window/application-window/{create-electron-window-for.injectable.d.ts → create-electron-window.injectable.d.ts} +4 -5
  38. package/dist/src/main/start-main-application/lens-window/application-window/create-lens-window.injectable.d.ts +6 -9
  39. package/dist/src/main/start-main-application/lens-window/application-window/lens-window-injection-token.d.ts +5 -2
  40. package/dist/src/main/start-main-application/lens-window/application-window/wait-until-bundled-extensions-are-loaded.injectable.d.ts +2 -0
  41. package/dist/src/main/start-main-application/lens-window/navigate.injectable.d.ts +1 -1
  42. package/dist/src/main/start-main-application/lens-window/splash-window/splash-window.injectable.d.ts +1 -6
  43. package/dist/src/{common/cluster-store → renderer/cluster-frame-context}/hosted-cluster-id.injectable.d.ts +0 -0
  44. package/dist/src/{common/cluster-store → renderer/cluster-frame-context}/hosted-cluster.injectable.d.ts +1 -1
  45. package/dist/src/renderer/components/+preferences/app-preference-tab/app-preference-tab-registration.d.ts +9 -0
  46. package/dist/src/renderer/components/dock/dock/create-dock-tab.injectable.d.ts +1 -1
  47. package/dist/src/renderer/components/input/input.d.ts +6 -7
  48. package/dist/src/renderer/components/input/input_validators.d.ts +28 -15
  49. package/dist/src/renderer/components/layout/sidebar-items.injectable.d.ts +0 -2
  50. package/dist/src/renderer/components/notifications/notifications.d.ts +4 -4
  51. package/dist/src/renderer/components/wizard/wizard.d.ts +2 -0
  52. package/dist/src/renderer/routes/route-path-parameters.injectable.d.ts +1 -1
  53. package/package.json +2 -2
  54. package/dist/src/common/cluster-store/allowed-resources.injectable.d.ts +0 -2
  55. package/dist/src/common/vars/bundled-binaries-normalized-arch.injectable.d.ts +0 -2
@@ -9,7 +9,7 @@ import type { KubeconfigManager } from "../../main/kubeconfig-manager/kubeconfig
9
9
  import type { KubeResource } from "../rbac";
10
10
  import type { VersionDetector } from "../../main/cluster-detectors/version-detector";
11
11
  import type { DetectorRegistry } from "../../main/cluster-detectors/detector-registry";
12
- import type { ClusterState, ClusterRefreshOptions, ClusterMetricsResourceType, ClusterId, ClusterMetadata, ClusterModel, ClusterPreferences, ClusterPrometheusPreferences, UpdateClusterModel } from "../cluster-types";
12
+ import type { ClusterState, ClusterRefreshOptions, ClusterMetricsResourceType, ClusterId, ClusterMetadata, ClusterModel, ClusterPreferences, ClusterPrometheusPreferences, UpdateClusterModel, ClusterConfigData } from "../cluster-types";
13
13
  import { ClusterStatus } from "../cluster-types";
14
14
  import type { CanI } from "./authorization-review.injectable";
15
15
  import type { ListNamespaces } from "./list-namespaces.injectable";
@@ -187,7 +187,7 @@ export declare class Cluster implements ClusterModel, ClusterState {
187
187
  * @internal
188
188
  */
189
189
  get defaultNamespace(): string | undefined;
190
- constructor(dependencies: ClusterDependencies, model: ClusterModel);
190
+ constructor(dependencies: ClusterDependencies, model: ClusterModel, configData: ClusterConfigData);
191
191
  /**
192
192
  * Update cluster data model
193
193
  *
@@ -1,4 +1,4 @@
1
- import type { ClusterModel } from "../cluster-types";
1
+ import type { ClusterConfigData, ClusterModel } from "../cluster-types";
2
2
  import type { Cluster } from "./cluster";
3
- export declare type CreateCluster = (model: ClusterModel) => Cluster;
3
+ export declare type CreateCluster = (model: ClusterModel, configData: ClusterConfigData) => Cluster;
4
4
  export declare const createClusterInjectionToken: import("@ogre-tools/injectable").InjectionToken<CreateCluster, void>;
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Copyright (c) OpenLens Authors. All rights reserved.
3
+ * Licensed under MIT License. See LICENSE in root directory for more information.
4
+ */
5
+ import type { IComputedValue } from "mobx";
6
+ export declare const allowedResourcesInjectionToken: import("@ogre-tools/injectable").InjectionToken<IComputedValue<Set<string>>, void>;
@@ -5,11 +5,14 @@
5
5
  import { BaseStore } from "../base-store";
6
6
  import { Cluster } from "../cluster/cluster";
7
7
  import type { ClusterModel, ClusterId } from "../cluster-types";
8
+ import type { CreateCluster } from "../cluster/create-cluster-injection-token";
9
+ import type { ReadClusterConfigSync } from "./read-cluster-config.injectable";
8
10
  export interface ClusterStoreModel {
9
11
  clusters?: ClusterModel[];
10
12
  }
11
13
  interface Dependencies {
12
- createCluster: (model: ClusterModel) => Cluster;
14
+ createCluster: CreateCluster;
15
+ readClusterConfigSync: ReadClusterConfigSync;
13
16
  }
14
17
  export declare class ClusterStore extends BaseStore<ClusterStoreModel> {
15
18
  private dependencies;
@@ -0,0 +1,4 @@
1
+ import type { ClusterConfigData, ClusterModel } from "../cluster-types";
2
+ export declare type ReadClusterConfigSync = (model: ClusterModel) => ClusterConfigData;
3
+ declare const readClusterConfigSyncInjectable: import("@ogre-tools/injectable").Injectable<ReadClusterConfigSync, unknown, void>;
4
+ export default readClusterConfigSyncInjectable;
@@ -53,6 +53,14 @@ export interface ClusterModel {
53
53
  */
54
54
  labels?: Record<string, string>;
55
55
  }
56
+ /**
57
+ * This data is retreived from the kubeconfig file before calling the cluster constructor.
58
+ *
59
+ * That is done to remove the external dependency on the construction of Cluster instances.
60
+ */
61
+ export interface ClusterConfigData {
62
+ clusterServerUrl: string;
63
+ }
56
64
  /**
57
65
  * The complete set of cluster settings or preferences
58
66
  */
@@ -1,6 +1,6 @@
1
1
  import type { IComputedValue } from "mobx";
2
2
  import type { LensRendererExtension } from "../../extensions/lens-renderer-extension";
3
- export declare const routeInjectionToken: import("@ogre-tools/injectable").InjectionToken<Route<unknown>, void>;
3
+ export declare const frontEndRouteInjectionToken: import("@ogre-tools/injectable").InjectionToken<Route<unknown>, void>;
4
4
  export interface Route<TParameter = void> {
5
5
  path: string;
6
6
  clusterFrame: boolean;
@@ -1,4 +1,4 @@
1
- import type { Route } from "./route-injection-token";
1
+ import type { Route } from "./front-end-route-injection-token";
2
2
  declare type InferParametersFrom<TRoute> = TRoute extends Route<infer TParameters> ? TParameters : never;
3
3
  declare type RequiredKeys<T> = Exclude<{
4
4
  [K in keyof T]: T extends Record<K, T[K]> ? K : never;
@@ -1,4 +1,4 @@
1
- import type { Route } from "../../route-injection-token";
1
+ import type { Route } from "../../front-end-route-injection-token";
2
2
  export interface CatalogPathParameters {
3
3
  group?: string;
4
4
  kind?: string;
@@ -1,4 +1,4 @@
1
- import type { Route } from "../../../../route-injection-token";
1
+ import type { Route } from "../../../../front-end-route-injection-token";
2
2
  export interface CustomResourcesPathParameters {
3
3
  group?: string;
4
4
  name?: string;
@@ -2,5 +2,5 @@ declare const clusterViewRouteInjectable: import("@ogre-tools/injectable").Injec
2
2
  path: string;
3
3
  clusterFrame: boolean;
4
4
  isEnabled: import("mobx").IComputedValue<boolean>;
5
- }, import("../../route-injection-token").Route<unknown>, void>;
5
+ }, import("../../front-end-route-injection-token").Route<unknown>, void>;
6
6
  export default clusterViewRouteInjectable;
@@ -0,0 +1,3 @@
1
+ export declare type ReadFileSync = (filePath: string) => string;
2
+ declare const readFileSyncInjectable: import("@ogre-tools/injectable").Injectable<ReadFileSync, unknown, void>;
3
+ export default readFileSyncInjectable;
@@ -7,7 +7,13 @@ import { KubeObject } from "../kube-object";
7
7
  import type { DerivedKubeApiOptions, IgnoredKubeApiOptions } from "../kube-api";
8
8
  import { KubeApi } from "../kube-api";
9
9
  export declare class ClusterApi extends KubeApi<Cluster> {
10
+ /**
11
+ * @deprecated This field is legacy and never used.
12
+ */
10
13
  static kind: string;
14
+ /**
15
+ * @deprecated This field is legacy and never used.
16
+ */
11
17
  static namespaced: boolean;
12
18
  constructor(opts?: DerivedKubeApiOptions & IgnoredKubeApiOptions);
13
19
  }
@@ -68,5 +74,6 @@ export interface Cluster {
68
74
  export declare class Cluster extends KubeObject {
69
75
  static kind: string;
70
76
  static apiBase: string;
77
+ static namespaced: boolean;
71
78
  getStatus(): ClusterStatus;
72
79
  }
@@ -77,7 +77,7 @@ export interface IngressSpec {
77
77
  }
78
78
  export interface IngressStatus {
79
79
  loadBalancer: {
80
- ingress: ILoadBalancerIngress[];
80
+ ingress?: ILoadBalancerIngress[];
81
81
  };
82
82
  }
83
83
  export declare class Ingress extends KubeObject<IngressStatus, IngressSpec, KubeObjectScope.Namespace> {
@@ -45,7 +45,7 @@ export interface IResourceMetrics<T extends MetricData> {
45
45
  networkTransmit: T;
46
46
  }
47
47
  export declare const metricsApi: {
48
- getMetrics<T = IMetricsQuery>(query: T, reqParams?: IMetricsReqParams): Promise<T extends object ? { [K in keyof T]: MetricData; } : MetricData>;
48
+ getMetrics<T = IMetricsQuery>(query: T, reqParams?: IMetricsReqParams): Promise<T extends object ? T extends infer T_1 ? { [K in keyof T_1]: MetricData; } : never : MetricData>;
49
49
  getMetricProviders(): Promise<MetricProviderInfo[]>;
50
50
  };
51
51
  export declare function normalizeMetrics(metrics: MetricData | undefined | null, frames?: number): MetricData;
@@ -59,7 +59,7 @@ export interface KubeObjectStoreOptions {
59
59
  }
60
60
  export declare type KubeApiDataFrom<K extends KubeObject, A> = A extends KubeApi<K, infer D> ? D extends KubeJsonApiDataFor<K> ? D : never : never;
61
61
  export declare abstract class KubeObjectStore<K extends KubeObject = KubeObject, A extends KubeApi<K, D> = KubeApi<K, KubeJsonApiDataFor<K>>, D extends KubeJsonApiDataFor<K> = KubeApiDataFrom<K, A>> extends ItemStore<K> {
62
- static readonly defaultContext: import("mobx").IObservableValue<ClusterContext>;
62
+ static readonly defaultContext: import("mobx").IObservableValue<ClusterContext | undefined>;
63
63
  readonly api: A;
64
64
  readonly limit: number | undefined;
65
65
  readonly bufferSize: number;
@@ -71,7 +71,7 @@ export declare abstract class KubeObjectStore<K extends KubeObject = KubeObject,
71
71
  cancel(): void;
72
72
  };
73
73
  constructor(api: A, opts?: KubeObjectStoreOptions);
74
- get context(): ClusterContext;
74
+ get context(): ClusterContext | undefined;
75
75
  get contextItems(): K[];
76
76
  getTotalCount(): number;
77
77
  get query(): KubeApiQueryParams;
@@ -23,7 +23,7 @@ export interface ConfigResult {
23
23
  export declare function loadConfigFromString(content: string): ConfigResult;
24
24
  export interface SplitConfigEntry {
25
25
  config: KubeConfig;
26
- error?: string;
26
+ validationResult: ValidateKubeConfigResult;
27
27
  }
28
28
  /**
29
29
  * Breaks kube config into several configs. Each context as it own KubeConfig object
@@ -35,10 +35,18 @@ export declare function splitConfig(kubeConfig: KubeConfig): SplitConfigEntry[];
35
35
  * @returns The yaml representation of the kubeconfig object
36
36
  */
37
37
  export declare function dumpConfigYaml(kubeConfig: PartialDeep<KubeConfig>): string;
38
+ export declare type ValidateKubeConfigResult = {
39
+ error: Error;
40
+ } | {
41
+ error?: undefined;
42
+ context: Context;
43
+ cluster: Cluster;
44
+ user: User;
45
+ };
38
46
  /**
39
47
  * Checks if `config` has valid `Context`, `User`, `Cluster`, and `exec` fields (if present when required)
40
48
  *
41
49
  * Note: This function returns an error instead of throwing it, returning `undefined` if the validation passes
42
50
  */
43
- export declare function validateKubeConfig(config: KubeConfig, contextName: string): Error | undefined;
51
+ export declare function validateKubeConfig(config: KubeConfig, contextName: string): ValidateKubeConfigResult;
44
52
  export {};
@@ -12,4 +12,4 @@ export interface URLParams<P extends object = {}, Q extends object = {}> {
12
12
  fragment?: string;
13
13
  }
14
14
  export declare function buildURL<P extends object = {}, Q extends object = {}>(path: string, { params, query, fragment }?: URLParams<P, Q>): string;
15
- export declare function buildURLPositional<P extends object = {}, Q extends object = {}>(path: string): (params?: P | undefined, query?: Q | undefined, fragment?: string | undefined) => string;
15
+ export declare function buildURLPositional<P extends object = {}, Q extends object = {}>(path: string): (params?: P, query?: Q, fragment?: string) => string;
@@ -2,11 +2,11 @@
2
2
  * Copyright (c) OpenLens Authors. All rights reserved.
3
3
  * Licensed under MIT License. See LICENSE in root directory for more information.
4
4
  */
5
- import "abort-controller/polyfill";
5
+ import type { AbortSignal } from "abort-controller";
6
6
  /**
7
7
  * Creates a new promise that will be rejected when the signal rejects.
8
8
  *
9
9
  * Useful for `Promise.race()` applications.
10
10
  * @param signal The AbortController's signal to reject with
11
11
  */
12
- export declare function rejectPromiseBy(signal: AbortSignal): Promise<void>;
12
+ export declare function rejectPromiseBy(signal: AbortSignal): Promise<never>;
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Copyright (c) OpenLens Authors. All rights reserved.
3
+ * Licensed under MIT License. See LICENSE in root directory for more information.
4
+ */
5
+ export declare type ResolveSystemProxy = (url: string) => Promise<string>;
6
+ export declare const resolveSystemProxyInjectionToken: import("@ogre-tools/injectable").InjectionToken<ResolveSystemProxy, void>;
@@ -3,6 +3,9 @@
3
3
  * Licensed under MIT License. See LICENSE in root directory for more information.
4
4
  */
5
5
  /// <reference types="node" />
6
+ /// <reference types="node" />
7
+ /// <reference types="node" />
8
+ /// <reference types="node" />
6
9
  import type { ExecException, ExecFileException } from "child_process";
7
10
  import type { IncomingMessage } from "http";
8
11
  /**
@@ -96,6 +99,8 @@ export declare function bindPredicate<FnArgs extends any[], T>(fn: (arg1: unknow
96
99
  export declare function hasDefiniteField<Field extends keyof T, T>(field: Field): (val: T) => val is T & {
97
100
  [f in Field]-?: NonNullable<T[Field]>;
98
101
  };
102
+ export declare function isPromiseSettledRejected<T>(result: PromiseSettledResult<T>): result is PromiseRejectedResult;
103
+ export declare function isPromiseSettledFulfilled<T>(result: PromiseSettledResult<T>): result is PromiseFulfilledResult<T>;
99
104
  export declare function isErrnoException(error: unknown): error is NodeJS.ErrnoException;
100
105
  export declare function isExecException(error: unknown): error is ExecException;
101
106
  export declare function isExecFileException(error: unknown): error is ExecFileException;
@@ -1,2 +1,2 @@
1
- declare const baseBundeledBinariesDirectoryInjectable: import("@ogre-tools/injectable").Injectable<string, unknown, void>;
2
- export default baseBundeledBinariesDirectoryInjectable;
1
+ declare const baseBundledBinariesDirectoryInjectable: import("@ogre-tools/injectable").Injectable<string, unknown, void>;
2
+ export default baseBundledBinariesDirectoryInjectable;
@@ -0,0 +1,2 @@
1
+ declare const normalizedPlatformArchitectureInjectable: import("@ogre-tools/injectable").Injectable<"arm64" | "x64" | "ia32", unknown, void>;
2
+ export default normalizedPlatformArchitectureInjectable;
@@ -59,8 +59,10 @@ declare const packageJsonInjectable: import("@ogre-tools/injectable").Injectable
59
59
  collectCoverage: boolean;
60
60
  verbose: boolean;
61
61
  transform: {
62
- "^.+\\.tsx?$": string;
62
+ "^.+\\.(t|j)sx?$": string[];
63
63
  };
64
+ testEnvironment: string;
65
+ resolver: string;
64
66
  moduleNameMapper: {
65
67
  "\\.(css|scss)$": string;
66
68
  "\\.(svg|png|jpg|eot|woff2?|ttf)$": string;
@@ -68,11 +70,7 @@ declare const packageJsonInjectable: import("@ogre-tools/injectable").Injectable
68
70
  modulePathIgnorePatterns: string[];
69
71
  setupFiles: string[];
70
72
  setupFilesAfterEnv: string[];
71
- globals: {
72
- "ts-jest": {
73
- isolatedModules: boolean;
74
- };
75
- };
73
+ runtime: string;
76
74
  };
77
75
  build: {
78
76
  generateUpdatesFilesForAllChannels: boolean;
@@ -135,12 +133,14 @@ declare const packageJsonInjectable: import("@ogre-tools/injectable").Injectable
135
133
  "@hapi/subtext": string;
136
134
  "@kubernetes/client-node": string;
137
135
  "@material-ui/styles": string;
138
- "@ogre-tools/injectable": string;
139
- "@ogre-tools/injectable-react": string;
140
136
  "@ogre-tools/fp": string;
137
+ "@ogre-tools/injectable": string;
141
138
  "@ogre-tools/injectable-extension-for-auto-registration": string;
139
+ "@ogre-tools/injectable-extension-for-mobx": string;
140
+ "@ogre-tools/injectable-react": string;
142
141
  "@sentry/electron": string;
143
142
  "@sentry/integrations": string;
143
+ "@side/jest-runtime": string;
144
144
  "@types/circular-dependency-plugin": string;
145
145
  "abort-controller": string;
146
146
  "auto-bind": string;
@@ -215,6 +215,8 @@ declare const packageJsonInjectable: import("@ogre-tools/injectable").Injectable
215
215
  "@material-ui/lab": string;
216
216
  "@pmmmwh/react-refresh-webpack-plugin": string;
217
217
  "@sentry/types": string;
218
+ "@swc/core": string;
219
+ "@swc/jest": string;
218
220
  "@testing-library/dom": string;
219
221
  "@testing-library/jest-dom": string;
220
222
  "@testing-library/react": string;
@@ -231,6 +233,8 @@ declare const packageJsonInjectable: import("@ogre-tools/injectable").Injectable
231
233
  "@types/fs-extra": string;
232
234
  "@types/glob-to-regexp": string;
233
235
  "@types/gunzip-maybe": string;
236
+ "@types/hapi__call": string;
237
+ "@types/hapi__subtext": string;
234
238
  "@types/html-webpack-plugin": string;
235
239
  "@types/http-proxy": string;
236
240
  "@types/jest": string;
@@ -303,6 +307,7 @@ declare const packageJsonInjectable: import("@ogre-tools/injectable").Injectable
303
307
  "include-media": string;
304
308
  jest: string;
305
309
  "jest-canvas-mock": string;
310
+ "jest-environment-jsdom": string;
306
311
  "jest-fetch-mock": string;
307
312
  "jest-mock-extended": string;
308
313
  "make-plural": string;
@@ -329,7 +334,6 @@ declare const packageJsonInjectable: import("@ogre-tools/injectable").Injectable
329
334
  "style-loader": string;
330
335
  tailwindcss: string;
331
336
  "tar-stream": string;
332
- "ts-jest": string;
333
337
  "ts-loader": string;
334
338
  "ts-node": string;
335
339
  "type-fest": string;
@@ -8,5 +8,6 @@ import * as Store from "./stores";
8
8
  import * as Util from "./utils";
9
9
  import * as Catalog from "./catalog";
10
10
  import * as Types from "./types";
11
+ import * as Proxy from "./proxy";
11
12
  import logger from "../../common/logger";
12
- export { App, EventBus, Catalog, Store, Types, Util, logger, };
13
+ export { App, EventBus, Catalog, Store, Types, Util, logger, Proxy, };
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Copyright (c) OpenLens Authors. All rights reserved.
3
+ * Licensed under MIT License. See LICENSE in root directory for more information.
4
+ */
5
+ /**
6
+ * Resolves URL-specific proxy information from system. See more here: https://www.electronjs.org/docs/latest/api/session#sesresolveproxyurl
7
+ * @param url - The URL for proxy information
8
+ * @returns Promise for proxy information as string
9
+ */
10
+ export declare const resolveSystemProxy: import("../../common/utils/resolve-system-proxy/resolve-system-proxy-injection-token").ResolveSystemProxy;
@@ -0,0 +1,7 @@
1
+ import type { LensExtension } from "../../lens-extension";
2
+ export interface Extension {
3
+ register: () => void;
4
+ deregister: () => void;
5
+ }
6
+ declare const extensionInjectable: import("@ogre-tools/injectable").Injectable<Extension, unknown, LensExtension<import("../../lens-extension-set-dependencies").LensExtensionDependencies>>;
7
+ export default extensionInjectable;
@@ -9,12 +9,12 @@ import type { InstalledExtension } from "../extension-discovery/extension-discov
9
9
  import type { LensExtension, LensExtensionConstructor, LensExtensionId } from "../lens-extension";
10
10
  import type { LensExtensionState } from "../extensions-store/extensions-store";
11
11
  import type { CreateExtensionInstance } from "./create-extension-instance.token";
12
+ import type { Extension } from "./extension/extension.injectable";
12
13
  interface Dependencies {
13
14
  updateExtensionsState: (extensionsState: Record<LensExtensionId, LensExtensionState>) => void;
14
15
  createExtensionInstance: CreateExtensionInstance;
15
- readonly extensionRegistrators: ((extension: LensExtension, extensionInstallationCount: number) => void)[];
16
- readonly extensionInstallationCounter: Map<string, number>;
17
16
  readonly extensionInstances: ObservableMap<LensExtensionId, LensExtension>;
17
+ getExtension: (instance: LensExtension) => Extension;
18
18
  }
19
19
  export interface ExtensionLoading {
20
20
  isBundled: boolean;
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Copyright (c) OpenLens Authors. All rights reserved.
3
+ * Licensed under MIT License. See LICENSE in root directory for more information.
4
+ */
5
+ import type { Injectable } from "@ogre-tools/injectable";
6
+ import type { LensExtension } from "../lens-extension";
7
+ export declare const extensionRegistratorInjectionToken: import("@ogre-tools/injectable").InjectionToken<(extension: LensExtension) => Injectable<any, any, any>[], void>;
@@ -11,15 +11,16 @@ export interface LensExtensionState {
11
11
  enabled?: boolean;
12
12
  name: string;
13
13
  }
14
+ export interface IsEnabledExtensionDescriptor {
15
+ id: string;
16
+ isBundled: boolean;
17
+ }
14
18
  export declare class ExtensionsStore extends BaseStore<LensExtensionsStoreModel> {
15
19
  readonly displayName = "ExtensionsStore";
16
20
  constructor();
17
21
  get enabledExtensions(): string[];
18
22
  protected state: import("mobx").ObservableMap<string, LensExtensionState>;
19
- isEnabled({ id, isBundled }: {
20
- id: string;
21
- isBundled: boolean;
22
- }): boolean;
23
+ isEnabled({ id, isBundled }: IsEnabledExtensionDescriptor): boolean;
23
24
  mergeState: (extensionsState: Record<LensExtensionId, LensExtensionState> | [LensExtensionId, LensExtensionState][]) => void;
24
25
  protected fromStore({ extensions }: LensExtensionsStoreModel): void;
25
26
  toJSON(): LensExtensionsStoreModel;
@@ -5,7 +5,7 @@
5
5
  import type { IComputedValue } from "mobx";
6
6
  import type { CatalogCategoryRegistry } from "../common/catalog";
7
7
  import type { NavigateToRoute } from "../common/front-end-routing/navigate-to-route-injection-token";
8
- import type { Route } from "../common/front-end-routing/route-injection-token";
8
+ import type { Route } from "../common/front-end-routing/front-end-route-injection-token";
9
9
  import type { CatalogEntityRegistry as MainCatalogEntityRegistry } from "../main/catalog";
10
10
  import type { CatalogEntityRegistry as RendererCatalogEntityRegistry } from "../renderer/api/catalog/entity/registry";
11
11
  import type { GetExtensionPageParameters } from "../renderer/routes/get-extension-page-parameters.injectable";
@@ -22,12 +22,14 @@ import type { WorkloadsOverviewDetailRegistration } from "../renderer/components
22
22
  import type { KubeObjectStatusRegistration } from "../renderer/components/kube-object-status-icon/kube-object-status-registration";
23
23
  import type { LensRendererExtensionDependencies } from "./lens-extension-set-dependencies";
24
24
  import type { KubeObjectHandlerRegistration } from "../renderer/kube-object/handler";
25
+ import type { AppPreferenceTabRegistration } from "../renderer/components/+preferences/app-preference-tab/app-preference-tab-registration";
25
26
  export declare class LensRendererExtension extends LensExtension<LensRendererExtensionDependencies> {
26
27
  globalPages: registries.PageRegistration[];
27
28
  clusterPages: registries.PageRegistration[];
28
29
  clusterPageMenus: registries.ClusterPageMenuRegistration[];
29
30
  kubeObjectStatusTexts: KubeObjectStatusRegistration[];
30
31
  appPreferences: AppPreferenceRegistration[];
32
+ appPreferenceTabs: AppPreferenceTabRegistration[];
31
33
  entitySettings: registries.EntitySettingRegistration[];
32
34
  statusBarItems: StatusBarRegistration[];
33
35
  kubeObjectDetailItems: registries.KubeObjectDetailRegistration[];
@@ -26,5 +26,5 @@ export interface RegisteredEntitySetting extends EntitySettingRegistration {
26
26
  }
27
27
  export declare class EntitySettingRegistry extends BaseRegistry<EntitySettingRegistration, RegisteredEntitySetting> {
28
28
  getRegisteredItem(item: EntitySettingRegistration): RegisteredEntitySetting;
29
- getItemsForKind: (kind: string, apiVersion: string, source?: string | undefined) => RegisteredEntitySetting[];
29
+ getItemsForKind: (kind: string, apiVersion: string, source?: string) => RegisteredEntitySetting[];
30
30
  }
@@ -66,3 +66,4 @@ export declare class TerminalStore {
66
66
  };
67
67
  static resetInstance(): void;
68
68
  }
69
+ export declare const notificationsStore: import("../../renderer/components/notifications").NotificationsStore;
@@ -3,6 +3,7 @@
3
3
  * Licensed under MIT License. See LICENSE in root directory for more information.
4
4
  */
5
5
  /// <reference types="node" />
6
+ /// <reference types="node" />
6
7
  import type { ChildProcess } from "child_process";
7
8
  import type { Cluster } from "../../common/cluster/cluster";
8
9
  import type { SelfSignedCert } from "selfsigned";
@@ -1,7 +1,2 @@
1
- declare const applicationWindowInjectable: import("@ogre-tools/injectable").Injectable<{
2
- readonly visible: boolean;
3
- show: () => Promise<void>;
4
- close: () => void;
5
- send: (args: import("./lens-window-injection-token").SendToViewArgs) => void;
6
- }, import("./lens-window-injection-token").LensWindow, void>;
1
+ declare const applicationWindowInjectable: import("@ogre-tools/injectable").Injectable<import("./lens-window-injection-token").LensWindow, import("./lens-window-injection-token").LensWindow, void>;
7
2
  export default applicationWindowInjectable;
@@ -1,4 +1,4 @@
1
- import type { LensWindow } from "./create-lens-window.injectable";
1
+ import type { ElectronWindow } from "./create-lens-window.injectable";
2
2
  import type { RequireExactlyOne } from "type-fest";
3
3
  export declare type ElectronWindowTitleBarStyle = "hiddenInset" | "hidden" | "default" | "customButtonsOnHover";
4
4
  export interface FileSource {
@@ -24,7 +24,6 @@ export interface ElectronWindowConfiguration {
24
24
  onBlur?: () => void;
25
25
  onDomReady?: () => void;
26
26
  }
27
- export declare type CreateElectronWindow = () => Promise<LensWindow>;
28
- export declare type CreateElectronWindowFor = (config: ElectronWindowConfiguration) => CreateElectronWindow;
29
- declare const createElectronWindowFor: import("@ogre-tools/injectable").Injectable<CreateElectronWindowFor, unknown, void>;
30
- export default createElectronWindowFor;
27
+ export declare type CreateElectronWindow = (config: ElectronWindowConfiguration) => ElectronWindow;
28
+ declare const createElectronWindowInjectable: import("@ogre-tools/injectable").Injectable<CreateElectronWindow, unknown, void>;
29
+ export default createElectronWindowInjectable;
@@ -1,9 +1,11 @@
1
- import type { SendToViewArgs } from "./lens-window-injection-token";
2
- import type { ContentSource, ElectronWindowTitleBarStyle } from "./create-electron-window-for.injectable";
3
- export interface LensWindow {
1
+ import type { LensWindow, SendToViewArgs } from "./lens-window-injection-token";
2
+ import type { ContentSource, ElectronWindowTitleBarStyle } from "./create-electron-window.injectable";
3
+ export interface ElectronWindow {
4
4
  show: () => void;
5
5
  close: () => void;
6
6
  send: (args: SendToViewArgs) => void;
7
+ loadFile: (filePath: string) => Promise<void>;
8
+ loadUrl: (url: string) => Promise<void>;
7
9
  }
8
10
  export interface LensWindowConfiguration {
9
11
  id: string;
@@ -20,10 +22,5 @@ export interface LensWindowConfiguration {
20
22
  onBlur?: () => void;
21
23
  onDomReady?: () => void;
22
24
  }
23
- declare const createLensWindowInjectable: import("@ogre-tools/injectable").Injectable<(configuration: LensWindowConfiguration) => {
24
- readonly visible: boolean;
25
- show: () => Promise<void>;
26
- close: () => void;
27
- send: (args: SendToViewArgs) => void;
28
- }, unknown, void>;
25
+ declare const createLensWindowInjectable: import("@ogre-tools/injectable").Injectable<(configuration: LensWindowConfiguration) => LensWindow, unknown, void>;
29
26
  export default createLensWindowInjectable;
@@ -5,9 +5,12 @@ export interface SendToViewArgs {
5
5
  data?: unknown[];
6
6
  }
7
7
  export interface LensWindow {
8
- show: () => Promise<void>;
8
+ id: string;
9
+ start: () => Promise<void>;
9
10
  close: () => void;
11
+ show: () => void;
10
12
  send: (args: SendToViewArgs) => void;
11
- visible: boolean;
13
+ isVisible: boolean;
14
+ isStarting: boolean;
12
15
  }
13
16
  export declare const lensWindowInjectionToken: import("@ogre-tools/injectable").InjectionToken<LensWindow, void>;
@@ -0,0 +1,2 @@
1
+ declare const waitUntilBundledExtensionsAreLoadedInjectable: import("@ogre-tools/injectable").Injectable<() => Promise<void>, unknown, void>;
2
+ export default waitUntilBundledExtensionsAreLoadedInjectable;
@@ -1,2 +1,2 @@
1
- declare const navigateInjectable: import("@ogre-tools/injectable").Injectable<(url: string, frameId?: number | undefined) => Promise<void>, unknown, void>;
1
+ declare const navigateInjectable: import("@ogre-tools/injectable").Injectable<(url: string, frameId?: number) => Promise<void>, unknown, void>;
2
2
  export default navigateInjectable;
@@ -1,7 +1,2 @@
1
- declare const splashWindowInjectable: import("@ogre-tools/injectable").Injectable<{
2
- readonly visible: boolean;
3
- show: () => Promise<void>;
4
- close: () => void;
5
- send: (args: import("../application-window/lens-window-injection-token").SendToViewArgs) => void;
6
- }, import("../application-window/lens-window-injection-token").LensWindow, void>;
1
+ declare const splashWindowInjectable: import("@ogre-tools/injectable").Injectable<import("../application-window/lens-window-injection-token").LensWindow, import("../application-window/lens-window-injection-token").LensWindow, void>;
7
2
  export default splashWindowInjectable;
@@ -1,2 +1,2 @@
1
- declare const hostedClusterInjectable: import("@ogre-tools/injectable").Injectable<import("../cluster/cluster").Cluster | undefined, unknown, void>;
1
+ declare const hostedClusterInjectable: import("@ogre-tools/injectable").Injectable<import("../../common/cluster/cluster").Cluster | undefined, unknown, void>;
2
2
  export default hostedClusterInjectable;
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Copyright (c) OpenLens Authors. All rights reserved.
3
+ * Licensed under MIT License. See LICENSE in root directory for more information.
4
+ */
5
+ export interface AppPreferenceTabRegistration {
6
+ title: string;
7
+ id: string;
8
+ orderNumber?: number;
9
+ }
@@ -1,3 +1,3 @@
1
1
  import type { DockTab, DockTabCreate } from "./store";
2
- declare const createDockTabInjectable: import("@ogre-tools/injectable").Injectable<(rawTabDesc: DockTabCreate, addNumber?: boolean | undefined) => DockTab, unknown, void>;
2
+ declare const createDockTabInjectable: import("@ogre-tools/injectable").Injectable<(rawTabDesc: DockTabCreate, addNumber?: boolean) => DockTab, unknown, void>;
3
3
  export default createDockTabInjectable;
@@ -8,10 +8,9 @@ import type { DOMAttributes, InputHTMLAttributes, TextareaHTMLAttributes } from
8
8
  import React from "react";
9
9
  import type { TooltipProps } from "../tooltip";
10
10
  import * as Validators from "./input_validators";
11
- import type { InputValidator } from "./input_validators";
12
- declare const InputValidators: {
13
- inputValidator<IsAsync extends boolean = false>(validator: Validators.InputValidator<IsAsync>): Validators.InputValidator<IsAsync>;
14
- AsyncInputValidationError: typeof Validators.AsyncInputValidationError;
11
+ import type { InputValidator, InputValidation, InputValidationResult, SyncValidationMessage } from "./input_validators";
12
+ declare const asyncInputValidator: typeof Validators.asyncInputValidator, inputValidator: typeof Validators.inputValidator, isAsyncValidator: typeof Validators.isAsyncValidator, unionInputValidatorsAsync: typeof Validators.unionInputValidatorsAsync, InputValidators: {
13
+ unionInputValidators(baseValidator: Pick<Validators.InputValidator<false>, "message" | "condition">, ...validators: Validators.InputValidator<false>[]): Validators.InputValidator<false>;
15
14
  isRequired: Validators.InputValidator<false>;
16
15
  isEmail: Validators.InputValidator<false>;
17
16
  isNumber: Validators.InputValidator<false>;
@@ -30,8 +29,8 @@ declare const InputValidators: {
30
29
  systemName: Validators.InputValidator<false>;
31
30
  accountId: Validators.InputValidator<false>;
32
31
  };
33
- export { InputValidators };
34
- export type { InputValidator };
32
+ export { InputValidators, asyncInputValidator, inputValidator, isAsyncValidator, unionInputValidatorsAsync, };
33
+ export type { InputValidator, InputValidation, InputValidationResult, SyncValidationMessage, };
35
34
  declare type InputElement = HTMLInputElement | HTMLTextAreaElement;
36
35
  declare type InputElementProps = InputHTMLAttributes<HTMLInputElement> & TextareaHTMLAttributes<HTMLTextAreaElement> & DOMAttributes<InputElement>;
37
36
  export interface IconDataFnArg {
@@ -75,7 +74,7 @@ interface State {
75
74
  export declare class Input extends React.Component<InputProps, State> {
76
75
  static defaultProps: object;
77
76
  input: InputElement | null;
78
- validators: InputValidator<boolean>[];
77
+ validators: InputValidator[];
79
78
  state: State;
80
79
  constructor(props: InputProps);
81
80
  componentWillUnmount(): void;
@@ -3,29 +3,42 @@
3
3
  * Licensed under MIT License. See LICENSE in root directory for more information.
4
4
  */
5
5
  import type { InputProps } from "./input";
6
- import type { ReactNode } from "react";
7
- export declare class AsyncInputValidationError extends Error {
8
- }
9
- export declare type InputValidator<IsAsync extends boolean> = {
6
+ import type React from "react";
7
+ import type { SetRequired } from "type-fest";
8
+ export declare type InputValidationResult<IsAsync extends boolean> = IsAsync extends true ? Promise<void> : boolean;
9
+ export declare type InputValidation<IsAsync extends boolean> = (value: string, props?: InputProps) => InputValidationResult<IsAsync>;
10
+ export declare type SyncValidationMessage = React.ReactNode | ((value: string, props?: InputProps) => React.ReactNode);
11
+ export declare type InputValidator<IsAsync extends boolean = boolean> = {
10
12
  /**
11
13
  * Filters itself based on the input props
12
14
  */
13
15
  condition?: (props: InputProps) => any;
14
- } & (IsAsync extends false ? {
15
- validate: (value: string, props: InputProps) => boolean;
16
- message: ReactNode | ((value: string, props: InputProps) => ReactNode | string);
17
- debounce?: undefined;
18
- } : {
16
+ } & (IsAsync extends true ? {
19
17
  /**
20
- * If asyncronous then the rejection message is the error message
21
- *
22
- * This function MUST reject with an instance of {@link AsyncInputValidationError}
18
+ * The validation message maybe either specified from the `message` field (higher priority)
19
+ * or if that is not provided then the message will retrived from the rejected with value
23
20
  */
24
- validate: (value: string, props: InputProps) => Promise<void>;
25
- message?: undefined;
21
+ validate: InputValidation<true>;
22
+ message?: SyncValidationMessage;
26
23
  debounce: number;
24
+ } : {
25
+ validate: InputValidation<false>;
26
+ message: SyncValidationMessage;
27
+ debounce?: undefined;
27
28
  });
28
- export declare function inputValidator<IsAsync extends boolean = false>(validator: InputValidator<IsAsync>): InputValidator<IsAsync>;
29
+ export declare function isAsyncValidator(validator: InputValidator<boolean>): validator is InputValidator<true>;
30
+ export declare function asyncInputValidator(validator: InputValidator<true>): InputValidator<true>;
31
+ export declare function inputValidator(validator: InputValidator<false>): InputValidator<false>;
32
+ /**
33
+ * Create a new input validator from a list of syncronous input validators. Will match as valid if
34
+ * one of the input validators matches the input
35
+ */
36
+ export declare function unionInputValidators(baseValidator: Pick<InputValidator<false>, "condition" | "message">, ...validators: InputValidator<false>[]): InputValidator<false>;
37
+ /**
38
+ * Create a new input validator from a list of syncronous or async input validators. Will match as
39
+ * valid if one of the input validators matches the input
40
+ */
41
+ export declare function unionInputValidatorsAsync(baseValidator: SetRequired<Pick<InputValidator<boolean>, "condition" | "message">, "message">, ...validators: InputValidator<boolean>[]): InputValidator<true>;
29
42
  export declare const isRequired: InputValidator<false>;
30
43
  export declare const isEmail: InputValidator<false>;
31
44
  export declare const isNumber: InputValidator<false>;
@@ -1,6 +1,5 @@
1
1
  /// <reference types="react" />
2
2
  import type { IComputedValue } from "mobx";
3
- import type { LensRendererExtension } from "../../../extensions/lens-renderer-extension";
4
3
  export interface SidebarItemRegistration {
5
4
  id: string;
6
5
  parentId: string | null;
@@ -10,7 +9,6 @@ export interface SidebarItemRegistration {
10
9
  isActive?: IComputedValue<boolean>;
11
10
  isVisible?: IComputedValue<boolean>;
12
11
  orderNumber: number;
13
- extension?: LensRendererExtension;
14
12
  }
15
13
  export declare const sidebarItemsInjectionToken: import("@ogre-tools/injectable").InjectionToken<IComputedValue<SidebarItemRegistration[]>, void>;
16
14
  export interface HierarchicalSidebarItem {
@@ -7,8 +7,8 @@ import React from "react";
7
7
  import type { Notification, NotificationMessage } from "./notifications.store";
8
8
  export declare const Notifications: React.FC<{}> & {
9
9
  ok: (message: NotificationMessage) => () => void;
10
- checkedError: (message: unknown, fallback: string, customOpts?: Partial<Omit<Notification, "message">> | undefined) => () => void;
11
- error: (message: NotificationMessage, customOpts?: Partial<Omit<Notification, "message">> | undefined) => () => void;
12
- shortInfo: (message: NotificationMessage, customOpts?: Partial<Omit<Notification, "message">> | undefined) => () => void;
13
- info: (message: NotificationMessage, customOpts?: Partial<Omit<Notification, "message">> | undefined) => () => void;
10
+ checkedError: (message: unknown, fallback: string, customOpts?: Partial<Omit<Notification, "message">>) => () => void;
11
+ error: (message: NotificationMessage, customOpts?: Partial<Omit<Notification, "message">>) => () => void;
12
+ shortInfo: (message: NotificationMessage, customOpts?: Partial<Omit<Notification, "message">>) => () => void;
13
+ info: (message: NotificationMessage, customOpts?: Partial<Omit<Notification, "message">>) => () => void;
14
14
  };
@@ -64,6 +64,8 @@ export interface WizardStepProps<D> extends WizardCommonProps<D> {
64
64
  skip?: boolean;
65
65
  scrollable?: boolean;
66
66
  children?: React.ReactNode | React.ReactNode[];
67
+ testIdForNext?: string;
68
+ testIdForPrev?: string;
67
69
  }
68
70
  interface WizardStepState {
69
71
  waiting?: boolean;
@@ -1,3 +1,3 @@
1
- import type { Route } from "../../common/front-end-routing/route-injection-token";
1
+ import type { Route } from "../../common/front-end-routing/front-end-route-injection-token";
2
2
  declare const routePathParametersInjectable: import("@ogre-tools/injectable").Injectable<import("mobx").IComputedValue<Record<string, string>>, unknown, Route<unknown>>;
3
3
  export default routePathParametersInjectable;
package/package.json CHANGED
@@ -2,8 +2,8 @@
2
2
  "name": "@k8slens/extensions",
3
3
  "productName": "OpenLens extensions",
4
4
  "description": "OpenLens - Open Source Kubernetes IDE: extensions",
5
- "version": "5.6.0-git.240dfad167.0",
6
- "copyright": "© 2021 OpenLens Authors",
5
+ "version": "5.6.0-git.2b9c2ad69e.0",
6
+ "copyright": "© 2022 OpenLens Authors",
7
7
  "license": "MIT",
8
8
  "main": "dist/src/extensions/extension-api.js",
9
9
  "types": "dist/src/extensions/extension-api.d.ts",
@@ -1,2 +0,0 @@
1
- declare const allowedResourcesInjectable: import("@ogre-tools/injectable").Injectable<import("mobx").IComputedValue<Set<string>>, unknown, void>;
2
- export default allowedResourcesInjectable;
@@ -1,2 +0,0 @@
1
- declare const bundledBinariesNormalizedArchInjectable: import("@ogre-tools/injectable").Injectable<"arm64" | "x64" | "ia32", unknown, void>;
2
- export default bundledBinariesNormalizedArchInjectable;