@k8slens/extensions 5.3.0-git.b7ff8c37cb.0 → 5.3.0-git.bc34045a4f.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 (223) hide show
  1. package/__mocks__/electron.ts +2 -2
  2. package/dist/src/{renderer/components/+user-management/select-options.d.ts → common/__tests__/base-store.test.d.ts} +1 -7
  3. package/dist/src/common/__tests__/system-ca.test.d.ts +1 -0
  4. package/dist/src/common/base-store.d.ts +3 -2
  5. package/dist/src/common/cluster-store.d.ts +2 -3
  6. package/dist/src/common/cluster-types.d.ts +7 -1
  7. package/dist/src/common/hotbar-store.d.ts +1 -0
  8. package/dist/src/common/k8s-api/endpoints/cluster-role-binding.api.d.ts +1 -1
  9. package/dist/src/common/k8s-api/endpoints/cluster-role.api.d.ts +1 -1
  10. package/dist/src/common/k8s-api/endpoints/cluster.api.d.ts +1 -1
  11. package/dist/src/common/k8s-api/endpoints/configmap.api.d.ts +1 -1
  12. package/dist/src/common/k8s-api/endpoints/crd.api.d.ts +1 -1
  13. package/dist/src/common/k8s-api/endpoints/cron-job.api.d.ts +1 -1
  14. package/dist/src/common/k8s-api/endpoints/daemon-set.api.d.ts +1 -1
  15. package/dist/src/common/k8s-api/endpoints/deployment.api.d.ts +1 -1
  16. package/dist/src/common/k8s-api/endpoints/endpoint.api.d.ts +1 -1
  17. package/dist/src/common/k8s-api/endpoints/events.api.d.ts +1 -1
  18. package/dist/src/common/k8s-api/endpoints/hpa.api.d.ts +1 -1
  19. package/dist/src/common/k8s-api/endpoints/ingress.api.d.ts +11 -8
  20. package/dist/src/common/k8s-api/endpoints/job.api.d.ts +1 -2
  21. package/dist/src/common/k8s-api/endpoints/limit-range.api.d.ts +1 -1
  22. package/dist/src/common/k8s-api/endpoints/namespaces.api.d.ts +1 -1
  23. package/dist/src/common/k8s-api/endpoints/network-policy.api.d.ts +1 -1
  24. package/dist/src/common/k8s-api/endpoints/nodes.api.d.ts +1 -1
  25. package/dist/src/common/k8s-api/endpoints/persistent-volume-claims.api.d.ts +1 -1
  26. package/dist/src/common/k8s-api/endpoints/persistent-volume.api.d.ts +1 -1
  27. package/dist/src/common/k8s-api/endpoints/pod-metrics.api.d.ts +1 -1
  28. package/dist/src/common/k8s-api/endpoints/poddisruptionbudget.api.d.ts +1 -1
  29. package/dist/src/common/k8s-api/endpoints/pods.api.d.ts +29 -33
  30. package/dist/src/common/k8s-api/endpoints/podsecuritypolicy.api.d.ts +1 -1
  31. package/dist/src/common/k8s-api/endpoints/replica-set.api.d.ts +1 -1
  32. package/dist/src/common/k8s-api/endpoints/resource-quota.api.d.ts +1 -1
  33. package/dist/src/common/k8s-api/endpoints/role-binding.api.d.ts +1 -1
  34. package/dist/src/common/k8s-api/endpoints/role.api.d.ts +1 -1
  35. package/dist/src/common/k8s-api/endpoints/secret.api.d.ts +1 -1
  36. package/dist/src/common/k8s-api/endpoints/selfsubjectrulesreviews.api.d.ts +1 -1
  37. package/dist/src/common/k8s-api/endpoints/service-accounts.api.d.ts +1 -1
  38. package/dist/src/common/k8s-api/endpoints/service.api.d.ts +2 -2
  39. package/dist/src/common/k8s-api/endpoints/stateful-set.api.d.ts +1 -1
  40. package/dist/src/common/k8s-api/endpoints/storage-class.api.d.ts +1 -1
  41. package/dist/src/common/k8s-api/index.d.ts +1 -1
  42. package/dist/src/common/k8s-api/kube-api.d.ts +12 -3
  43. package/dist/src/common/k8s-api/kube-json-api.d.ts +2 -0
  44. package/dist/src/common/k8s-api/kube-object.d.ts +9 -1
  45. package/dist/src/common/k8s-api/kube-object.store.d.ts +25 -7
  46. package/dist/src/common/k8s-api/kube-watch-api.d.ts +29 -8
  47. package/dist/src/common/system-ca.d.ts +20 -1
  48. package/dist/src/common/user-store/preferences-helpers.d.ts +2 -6
  49. package/dist/src/common/user-store/user-store.d.ts +3 -7
  50. package/dist/src/common/utils/base64.d.ts +12 -4
  51. package/dist/src/common/utils/index.d.ts +2 -2
  52. package/dist/src/common/utils/paths.d.ts +1 -0
  53. package/dist/src/{main → common/utils}/promise-exec.d.ts +0 -0
  54. package/dist/src/common/weblink-store.d.ts +1 -0
  55. package/dist/src/extensions/0.extension-api.js +15 -0
  56. package/dist/src/extensions/1.extension-api.js +15 -0
  57. package/dist/src/extensions/10.extension-api.js +15 -0
  58. package/dist/src/extensions/11.extension-api.js +15 -0
  59. package/dist/src/extensions/12.extension-api.js +15 -0
  60. package/dist/src/extensions/13.extension-api.js +15 -0
  61. package/dist/src/extensions/14.extension-api.js +15 -0
  62. package/dist/src/extensions/15.extension-api.js +15 -0
  63. package/dist/src/extensions/16.extension-api.js +15 -0
  64. package/dist/src/extensions/17.extension-api.js +15 -0
  65. package/dist/src/extensions/18.extension-api.js +15 -0
  66. package/dist/src/extensions/19.extension-api.js +15 -0
  67. package/dist/src/extensions/2.extension-api.js +543 -0
  68. package/dist/src/extensions/20.extension-api.js +15 -0
  69. package/dist/src/extensions/21.extension-api.js +15 -0
  70. package/dist/src/extensions/22.extension-api.js +15 -0
  71. package/dist/src/extensions/23.extension-api.js +15 -0
  72. package/dist/src/extensions/24.extension-api.js +15 -0
  73. package/dist/src/extensions/25.extension-api.js +15 -0
  74. package/dist/src/extensions/26.extension-api.js +15 -0
  75. package/dist/src/extensions/27.extension-api.js +15 -0
  76. package/dist/src/extensions/28.extension-api.js +15 -0
  77. package/dist/src/extensions/29.extension-api.js +15 -0
  78. package/dist/src/extensions/3.extension-api.js +423 -0
  79. package/dist/src/extensions/30.extension-api.js +15 -0
  80. package/dist/src/extensions/31.extension-api.js +15 -0
  81. package/dist/src/extensions/32.extension-api.js +15 -0
  82. package/dist/src/extensions/33.extension-api.js +15 -0
  83. package/dist/src/extensions/34.extension-api.js +15 -0
  84. package/dist/src/extensions/35.extension-api.js +15 -0
  85. package/dist/src/extensions/36.extension-api.js +15 -0
  86. package/dist/src/extensions/37.extension-api.js +15 -0
  87. package/dist/src/extensions/38.extension-api.js +15 -0
  88. package/dist/src/extensions/39.extension-api.js +15 -0
  89. package/dist/src/extensions/4.extension-api.js +363 -0
  90. package/dist/src/extensions/40.extension-api.js +15 -0
  91. package/dist/src/extensions/41.extension-api.js +15 -0
  92. package/dist/src/extensions/42.extension-api.js +15 -0
  93. package/dist/src/extensions/43.extension-api.js +15 -0
  94. package/dist/src/extensions/44.extension-api.js +15 -0
  95. package/dist/src/extensions/45.extension-api.js +15 -0
  96. package/dist/src/extensions/46.extension-api.js +15 -0
  97. package/dist/src/extensions/47.extension-api.js +15 -0
  98. package/dist/src/extensions/48.extension-api.js +15 -0
  99. package/dist/src/extensions/49.extension-api.js +15 -0
  100. package/dist/src/extensions/5.extension-api.js +51 -0
  101. package/dist/src/extensions/50.extension-api.js +15 -0
  102. package/dist/src/extensions/51.extension-api.js +15 -0
  103. package/dist/src/extensions/52.extension-api.js +15 -0
  104. package/dist/src/extensions/53.extension-api.js +15 -0
  105. package/dist/src/extensions/54.extension-api.js +15 -0
  106. package/dist/src/extensions/55.extension-api.js +15 -0
  107. package/dist/src/extensions/56.extension-api.js +15 -0
  108. package/dist/src/extensions/57.extension-api.js +15 -0
  109. package/dist/src/extensions/58.extension-api.js +15 -0
  110. package/dist/src/extensions/59.extension-api.js +15 -0
  111. package/dist/src/extensions/6.extension-api.js +27 -0
  112. package/dist/src/extensions/60.extension-api.js +15 -0
  113. package/dist/src/extensions/61.extension-api.js +15 -0
  114. package/dist/src/extensions/62.extension-api.js +15 -0
  115. package/dist/src/extensions/63.extension-api.js +15 -0
  116. package/dist/src/extensions/64.extension-api.js +15 -0
  117. package/dist/src/extensions/65.extension-api.js +15 -0
  118. package/dist/src/extensions/66.extension-api.js +15 -0
  119. package/dist/src/extensions/67.extension-api.js +15 -0
  120. package/dist/src/extensions/68.extension-api.js +15 -0
  121. package/dist/src/extensions/69.extension-api.js +15 -0
  122. package/dist/src/extensions/7.extension-api.js +15 -0
  123. package/dist/src/extensions/70.extension-api.js +15 -0
  124. package/dist/src/extensions/71.extension-api.js +15 -0
  125. package/dist/src/extensions/72.extension-api.js +15 -0
  126. package/dist/src/extensions/73.extension-api.js +15 -0
  127. package/dist/src/extensions/74.extension-api.js +15 -0
  128. package/dist/src/extensions/75.extension-api.js +15 -0
  129. package/dist/src/extensions/76.extension-api.js +15 -0
  130. package/dist/src/extensions/77.extension-api.js +15 -0
  131. package/dist/src/extensions/78.extension-api.js +15 -0
  132. package/dist/src/extensions/79.extension-api.js +15 -0
  133. package/dist/src/extensions/8.extension-api.js +15 -0
  134. package/dist/src/extensions/9.extension-api.js +15 -0
  135. package/dist/src/extensions/common-api/app.d.ts +2 -0
  136. package/dist/src/extensions/common-api/index.d.ts +1 -1
  137. package/dist/src/{common/utils/makeCss.d.ts → extensions/common-api/user-preferences.d.ts} +2 -7
  138. package/dist/src/extensions/extension-api.js +5872 -1680
  139. package/dist/src/extensions/extension-store.d.ts +1 -0
  140. package/dist/src/extensions/extensions-store.d.ts +1 -0
  141. package/dist/src/extensions/main-api/k8s-api.d.ts +1 -1
  142. package/dist/src/extensions/registries/workloads-overview-detail-registry.d.ts +6 -3
  143. package/dist/src/extensions/renderer-api/k8s-api.d.ts +1 -1
  144. package/dist/src/main/catalog/catalog-entity-registry.d.ts +2 -2
  145. package/dist/src/main/cluster-manager.d.ts +2 -0
  146. package/dist/src/main/cluster.d.ts +5 -10
  147. package/dist/src/main/context-handler.d.ts +8 -5
  148. package/dist/src/main/extension-filesystem.d.ts +1 -0
  149. package/dist/src/main/index.d.ts +0 -1
  150. package/dist/src/main/kube-auth-proxy.d.ts +1 -8
  151. package/dist/src/main/kubectl.d.ts +1 -1
  152. package/dist/src/main/lens-proxy.d.ts +1 -1
  153. package/dist/src/main/prometheus/helm.d.ts +1 -1
  154. package/dist/src/main/prometheus/lens.d.ts +1 -1
  155. package/dist/src/main/prometheus/operator.d.ts +1 -1
  156. package/dist/src/main/prometheus/provider-registry.d.ts +2 -1
  157. package/dist/src/main/prometheus/stacklight.d.ts +1 -1
  158. package/dist/src/main/proxy-functions/kube-api-request.d.ts +1 -1
  159. package/dist/src/main/proxy-functions/shell-api-request.d.ts +14 -0
  160. package/dist/src/main/proxy-functions/types.d.ts +2 -0
  161. package/dist/src/main/shell-session/node-shell-session.d.ts +4 -4
  162. package/dist/src/main/shell-session/shell-session.d.ts +95 -8
  163. package/dist/src/main/utils/shell-env.d.ts +1 -3
  164. package/dist/src/migrations/user-store/index.d.ts +1 -1
  165. package/dist/src/preload.d.ts +1 -1
  166. package/dist/src/renderer/api/terminal-api.d.ts +33 -20
  167. package/dist/src/renderer/api/websocket-api.d.ts +55 -32
  168. package/dist/src/renderer/bootstrap.d.ts +1 -1
  169. package/dist/src/renderer/{components/app.d.ts → cluster-frame.d.ts} +6 -4
  170. package/dist/src/renderer/components/+add-cluster/add-cluster.d.ts +0 -1
  171. package/dist/src/renderer/components/+apps-helm-charts/helm-chart-details.d.ts +3 -3
  172. package/dist/src/renderer/components/+apps-releases/release-menu.d.ts +3 -3
  173. package/dist/src/renderer/components/+catalog/catalog-add-button.d.ts +7 -1
  174. package/dist/src/renderer/components/+catalog/catalog.d.ts +0 -1
  175. package/dist/src/renderer/components/+namespaces/namespace-select-filter.d.ts +3 -0
  176. package/dist/src/renderer/components/+namespaces/namespace.store.d.ts +55 -2
  177. package/dist/src/renderer/components/+user-management/+cluster-role-bindings/__tests__/dialog.test.d.ts +21 -0
  178. package/dist/src/renderer/components/+user-management/+cluster-role-bindings/dialog.d.ts +2 -3
  179. package/dist/src/renderer/components/+user-management/+role-bindings/__tests__/dialog.test.d.ts +21 -0
  180. package/dist/src/renderer/components/+user-management/+role-bindings/dialog.d.ts +2 -3
  181. package/dist/src/renderer/components/+workloads-daemonsets/daemonsets.d.ts +0 -1
  182. package/dist/src/renderer/components/+workloads-deployments/deployment-scale-dialog.d.ts +1 -0
  183. package/dist/src/renderer/components/+workloads-overview/overview.d.ts +3 -0
  184. package/dist/src/renderer/components/+workloads-pods/pod-details-affinities.d.ts +1 -2
  185. package/dist/src/renderer/components/+workloads-replicasets/replicaset-scale-dialog.d.ts +1 -0
  186. package/dist/src/renderer/components/+workloads-statefulsets/statefulset-scale-dialog.d.ts +1 -0
  187. package/dist/src/renderer/components/animate/animate.d.ts +3 -2
  188. package/dist/src/renderer/components/badge/badge.d.ts +1 -0
  189. package/dist/src/renderer/components/cluster-manager/cluster-status.d.ts +6 -7
  190. package/dist/src/renderer/components/cluster-manager/lens-views.d.ts +12 -8
  191. package/dist/src/renderer/components/cluster-settings/components/__tests__/cluster-local-terminal-settings.test.d.ts +21 -0
  192. package/dist/src/renderer/components/cluster-settings/components/{cluster-home-dir-setting.d.ts → cluster-local-terminal-settings.d.ts} +1 -12
  193. package/dist/src/renderer/components/cluster-settings/components/index.d.ts +1 -1
  194. package/dist/src/renderer/components/dialog/dialog.d.ts +1 -0
  195. package/dist/src/renderer/components/dock/create-resource.d.ts +2 -2
  196. package/dist/src/renderer/components/dock/dock.store.d.ts +20 -2
  197. package/dist/src/renderer/components/dock/edit-resource.d.ts +3 -3
  198. package/dist/src/renderer/components/dock/editor-panel.d.ts +11 -17
  199. package/dist/src/renderer/components/dock/install-chart.d.ts +6 -5
  200. package/dist/src/renderer/components/dock/terminal-window.d.ts +2 -3
  201. package/dist/src/renderer/components/dock/terminal.d.ts +7 -11
  202. package/dist/src/renderer/components/dock/upgrade-chart.d.ts +2 -1
  203. package/dist/src/renderer/components/drawer/drawer.d.ts +1 -0
  204. package/dist/src/renderer/components/item-object-list/item-list-layout.d.ts +6 -0
  205. package/dist/src/renderer/components/kube-object-list-layout/kube-object-list-layout.d.ts +4 -0
  206. package/dist/src/renderer/components/kubeconfig-dialog/kubeconfig-dialog.d.ts +0 -1
  207. package/dist/src/renderer/components/layout/__tests__/sidebar-cluster.test.d.ts +21 -0
  208. package/dist/src/renderer/components/layout/sidebar-cluster.d.ts +24 -0
  209. package/dist/src/renderer/components/layout/sidebar.d.ts +2 -5
  210. package/dist/src/renderer/components/list/list.d.ts +1 -1
  211. package/dist/src/renderer/components/menu/menu.d.ts +1 -0
  212. package/dist/src/renderer/components/monaco-editor/index.d.ts +23 -0
  213. package/dist/src/renderer/components/monaco-editor/monaco-editor.d.ts +93 -0
  214. package/dist/src/renderer/components/monaco-editor/monaco-themes.d.ts +29 -0
  215. package/dist/src/renderer/components/monaco-editor/monaco-validators.d.ts +9 -0
  216. package/dist/src/renderer/components/table/table-cell.d.ts +1 -0
  217. package/dist/src/renderer/initializers/kube-object-detail-registry.d.ts +1 -1
  218. package/dist/src/renderer/port-forward/index.d.ts +1 -0
  219. package/dist/src/renderer/port-forward/port-forward-notify.d.ts +21 -0
  220. package/dist/src/renderer/{lens-app.d.ts → root-frame.d.ts} +4 -2
  221. package/dist/src/renderer/theme.store.d.ts +4 -15
  222. package/package.json +1 -1
  223. package/dist/src/renderer/components/dock/monaco-model-manager.d.ts +0 -42
@@ -21,6 +21,7 @@
21
21
  import { BaseStore } from "../common/base-store";
22
22
  import type { LensExtension } from "./lens-extension";
23
23
  export declare abstract class ExtensionStore<T> extends BaseStore<T> {
24
+ readonly displayName = "ExtensionStore<T>";
24
25
  protected extension: LensExtension;
25
26
  loadExtension(extension: LensExtension): void;
26
27
  load(): void;
@@ -28,6 +28,7 @@ export interface LensExtensionState {
28
28
  name: string;
29
29
  }
30
30
  export declare class ExtensionsStore extends BaseStore<LensExtensionsStoreModel> {
31
+ readonly displayName = "ExtensionsStore";
31
32
  constructor();
32
33
  get enabledExtensions(): string[];
33
34
  protected state: import("mobx").ObservableMap<string, LensExtensionState>;
@@ -22,7 +22,7 @@ export { isAllowedResource } from "../../common/utils/allowed-resource";
22
22
  export { ResourceStack } from "../../common/k8s/resource-stack";
23
23
  export { apiManager } from "../../common/k8s-api/api-manager";
24
24
  export { KubeApi, forCluster, forRemoteCluster } from "../../common/k8s-api/kube-api";
25
- export { KubeObject } from "../../common/k8s-api/kube-object";
25
+ export { KubeObject, KubeStatus } from "../../common/k8s-api/kube-object";
26
26
  export { KubeObjectStore } from "../../common/k8s-api/kube-object.store";
27
27
  export { Pod, podsApi, PodsApi } from "../../common/k8s-api/endpoints/pods.api";
28
28
  export { Node, nodesApi, NodesApi } from "../../common/k8s-api/endpoints/nodes.api";
@@ -21,12 +21,15 @@
21
21
  import type React from "react";
22
22
  import { BaseRegistry } from "./base-registry";
23
23
  export interface WorkloadsOverviewDetailComponents {
24
- Details: React.ComponentType<any>;
24
+ Details: React.ComponentType<{}>;
25
25
  }
26
26
  export interface WorkloadsOverviewDetailRegistration {
27
27
  components: WorkloadsOverviewDetailComponents;
28
28
  priority?: number;
29
29
  }
30
- export declare class WorkloadsOverviewDetailRegistry extends BaseRegistry<WorkloadsOverviewDetailRegistration> {
31
- getItems(): WorkloadsOverviewDetailRegistration[];
30
+ declare type RegisteredWorkloadsOverviewDetail = Required<WorkloadsOverviewDetailRegistration>;
31
+ export declare class WorkloadsOverviewDetailRegistry extends BaseRegistry<WorkloadsOverviewDetailRegistration, RegisteredWorkloadsOverviewDetail> {
32
+ getItems(): Required<WorkloadsOverviewDetailRegistration>[];
33
+ protected getRegisteredItem(item: WorkloadsOverviewDetailRegistration): RegisteredWorkloadsOverviewDetail;
32
34
  }
35
+ export {};
@@ -23,7 +23,7 @@ export { ResourceStack } from "../../common/k8s/resource-stack";
23
23
  export { apiManager } from "../../common/k8s-api/api-manager";
24
24
  export { KubeObjectStore } from "../../common/k8s-api/kube-object.store";
25
25
  export { KubeApi, forCluster, forRemoteCluster } from "../../common/k8s-api/kube-api";
26
- export { KubeObject } from "../../common/k8s-api/kube-object";
26
+ export { KubeObject, KubeStatus } from "../../common/k8s-api/kube-object";
27
27
  export { Pod, podsApi, PodsApi } from "../../common/k8s-api/endpoints";
28
28
  export { Node, nodesApi, NodesApi } from "../../common/k8s-api/endpoints";
29
29
  export { Deployment, deploymentApi, DeploymentApi } from "../../common/k8s-api/endpoints";
@@ -19,7 +19,7 @@
19
19
  * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
20
20
  */
21
21
  import { IComputedValue, IObservableArray } from "mobx";
22
- import { CatalogCategoryRegistry, CatalogEntity, CatalogEntityKindData } from "../../common/catalog";
22
+ import { CatalogCategoryRegistry, CatalogEntity, CatalogEntityConstructor, CatalogEntityKindData } from "../../common/catalog";
23
23
  export declare class CatalogEntityRegistry {
24
24
  private categoryRegistry;
25
25
  protected sources: import("mobx").ObservableMap<string, IComputedValue<CatalogEntity<import("../../common/catalog").CatalogEntityMetadata, import("../../common/catalog").CatalogEntityStatus, import("../../common/catalog").CatalogEntitySpec>[]>>;
@@ -30,6 +30,6 @@ export declare class CatalogEntityRegistry {
30
30
  get items(): CatalogEntity[];
31
31
  getById<T extends CatalogEntity>(id: string): T | undefined;
32
32
  getItemsForApiKind<T extends CatalogEntity>(apiVersion: string, kind: string): T[];
33
- getItemsByEntityClass<T extends CatalogEntity>({ apiVersion, kind }: CatalogEntityKindData): T[];
33
+ getItemsByEntityClass<T extends CatalogEntity>({ apiVersion, kind }: CatalogEntityKindData & CatalogEntityConstructor<T>): T[];
34
34
  }
35
35
  export declare const catalogEntityRegistry: CatalogEntityRegistry;
@@ -24,9 +24,11 @@ import type http from "http";
24
24
  import { Cluster } from "./cluster";
25
25
  import { Singleton } from "../common/utils";
26
26
  import { KubernetesCluster } from "../common/catalog-entities/kubernetes-cluster";
27
+ import type { ClusterId } from "../common/cluster-types";
27
28
  export declare class ClusterManager extends Singleton {
28
29
  private store;
29
30
  deleting: import("mobx").ObservableSet<string>;
31
+ visibleCluster: ClusterId | undefined;
30
32
  constructor();
31
33
  init: () => void;
32
34
  protected updateCatalog(clusters: Cluster[]): void;
@@ -103,12 +103,6 @@ export declare class Cluster implements ClusterModel, ClusterState {
103
103
  * @observable
104
104
  */
105
105
  disconnected: boolean;
106
- /**
107
- * Connection failure reason
108
- *
109
- * @observable
110
- */
111
- failureReason: string;
112
106
  /**
113
107
  * Does user have admin like access
114
108
  *
@@ -243,10 +237,6 @@ export declare class Cluster implements ClusterModel, ClusterState {
243
237
  * @internal
244
238
  */
245
239
  refreshConnectionStatus(): Promise<void>;
246
- /**
247
- * @internal
248
- */
249
- refreshAllowedResources(): Promise<void>;
250
240
  getKubeconfig(): Promise<KubeConfig>;
251
241
  /**
252
242
  * @internal
@@ -293,6 +283,11 @@ export declare class Cluster implements ClusterModel, ClusterState {
293
283
  accessible: boolean;
294
284
  disconnected: boolean;
295
285
  };
286
+ /**
287
+ * broadcast an authentication update concerning this cluster
288
+ * @internal
289
+ */
290
+ broadcastConnectUpdate(message: string, isError?: boolean): void;
296
291
  protected getAllowedNamespaces(): Promise<string[]>;
297
292
  protected getAllowedResources(): Promise<KubeResource[]>;
298
293
  isAllowedResource(kind: string): boolean;
@@ -25,6 +25,10 @@ import type { Cluster } from "./cluster";
25
25
  import type httpProxy from "http-proxy";
26
26
  import { UrlWithStringQuery } from "url";
27
27
  import { KubeAuthProxy } from "./kube-auth-proxy";
28
+ export interface PrometheusDetails {
29
+ prometheusPath: string;
30
+ provider: PrometheusProvider;
31
+ }
28
32
  export declare class ContextHandler {
29
33
  protected cluster: Cluster;
30
34
  clusterUrl: UrlWithStringQuery;
@@ -34,15 +38,14 @@ export declare class ContextHandler {
34
38
  protected prometheusPath: string | null;
35
39
  constructor(cluster: Cluster);
36
40
  setupPrometheus(preferences?: ClusterPrometheusPreferences): void;
37
- protected resolvePrometheusPath(): Promise<string>;
38
- getPrometheusProvider(): Promise<PrometheusProvider>;
41
+ getPrometheusDetails(): Promise<PrometheusDetails>;
42
+ protected ensurePrometheusPath({ service, namespace, port }: PrometheusService): string;
43
+ protected ensurePrometheusProvider(service: PrometheusService): PrometheusProvider;
39
44
  protected listPotentialProviders(): PrometheusProvider[];
40
- getPrometheusService(): Promise<PrometheusService | undefined>;
41
- getPrometheusPath(): Promise<string>;
45
+ protected getPrometheusService(): Promise<PrometheusService>;
42
46
  resolveAuthProxyUrl(): Promise<string>;
43
47
  getApiTarget(isLongRunningRequest?: boolean): Promise<httpProxy.ServerOptions>;
44
48
  protected newApiTarget(timeout: number): Promise<httpProxy.ServerOptions>;
45
49
  ensureServer(): Promise<void>;
46
50
  stopServer(): void;
47
- get proxyLastError(): string;
48
51
  }
@@ -23,6 +23,7 @@ interface FSProvisionModel {
23
23
  extensions: Record<string, string>;
24
24
  }
25
25
  export declare class FilesystemProvisionerStore extends BaseStore<FSProvisionModel> {
26
+ readonly displayName = "FilesystemProvisionerStore";
26
27
  registeredExtensions: import("mobx").ObservableMap<string, string>;
27
28
  constructor();
28
29
  /**
@@ -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 "../common/system-ca";
22
21
  import * as Mobx from "mobx";
23
22
  import * as LensExtensionsCommonApi from "../extensions/common-api";
24
23
  import * as LensExtensionsMainApi from "../extensions/main-api";
@@ -22,15 +22,10 @@
22
22
  import { ChildProcess } from "child_process";
23
23
  import type { Cluster } from "./cluster";
24
24
  import { Kubectl } from "./kubectl";
25
- export interface KubeAuthProxyLog {
26
- data: string;
27
- error?: boolean;
28
- }
29
25
  export declare class KubeAuthProxy {
30
- lastError: string;
31
26
  readonly apiPrefix: string;
32
27
  get port(): number;
33
- protected _port: number;
28
+ protected _port?: number;
34
29
  protected cluster: Cluster;
35
30
  protected env: NodeJS.ProcessEnv;
36
31
  protected proxyProcess: ChildProcess;
@@ -42,7 +37,5 @@ export declare class KubeAuthProxy {
42
37
  cancel(): void;
43
38
  };
44
39
  run(): Promise<void>;
45
- protected parseError(data: string): string;
46
- protected sendIpcLogMessage(res: KubeAuthProxyLog): void;
47
40
  exit(): void;
48
41
  }
@@ -41,5 +41,5 @@ export declare class Kubectl {
41
41
  ensureKubectl(): Promise<boolean>;
42
42
  downloadKubectl(): Promise<void>;
43
43
  protected writeInitScripts(): Promise<void>;
44
- protected getDownloadMirror(): import("../common/user-store/preferences-helpers").DownloadMirror;
44
+ protected getDownloadMirror(): string;
45
45
  }
@@ -42,7 +42,7 @@ export declare class LensProxy extends Singleton {
42
42
  protected proxy: httpProxy;
43
43
  protected getClusterForRequest: GetClusterForRequest;
44
44
  port: number;
45
- constructor(router: Router, functions: LensProxyFunctions);
45
+ constructor(router: Router, { shellApiRequest, kubeApiRequest, getClusterForRequest }: LensProxyFunctions);
46
46
  /**
47
47
  * Starts the lens proxy.
48
48
  * @resolves After the server is listening
@@ -26,5 +26,5 @@ export declare class PrometheusHelm extends PrometheusLens {
26
26
  readonly name: string;
27
27
  readonly rateAccuracy: string;
28
28
  readonly isConfigurable: boolean;
29
- getPrometheusService(client: CoreV1Api): Promise<PrometheusService | undefined>;
29
+ getPrometheusService(client: CoreV1Api): Promise<PrometheusService>;
30
30
  }
@@ -25,6 +25,6 @@ export declare class PrometheusLens extends PrometheusProvider {
25
25
  readonly name: string;
26
26
  readonly rateAccuracy: string;
27
27
  readonly isConfigurable: boolean;
28
- getPrometheusService(client: CoreV1Api): Promise<PrometheusService | undefined>;
28
+ getPrometheusService(client: CoreV1Api): Promise<PrometheusService>;
29
29
  getQuery(opts: Record<string, string>, queryName: string): string;
30
30
  }
@@ -25,6 +25,6 @@ export declare class PrometheusOperator extends PrometheusProvider {
25
25
  readonly id: string;
26
26
  readonly name: string;
27
27
  readonly isConfigurable: boolean;
28
- getPrometheusService(client: CoreV1Api): Promise<PrometheusService | undefined>;
28
+ getPrometheusService(client: CoreV1Api): Promise<PrometheusService>;
29
29
  getQuery(opts: Record<string, string>, queryName: string): string;
30
30
  }
@@ -34,7 +34,8 @@ export declare abstract class PrometheusProvider {
34
34
  abstract getQuery(opts: Record<string, string>, queryName: string): string;
35
35
  abstract getPrometheusService(client: CoreV1Api): Promise<PrometheusService | undefined>;
36
36
  protected bytesSent(ingress: string, namespace: string, statuses: string): string;
37
- protected getFirstNamespacedServer(client: CoreV1Api, ...selectors: string[]): Promise<PrometheusService | undefined>;
37
+ protected getFirstNamespacedService(client: CoreV1Api, ...selectors: string[]): Promise<PrometheusService>;
38
+ protected getNamespacedService(client: CoreV1Api, name: string, namespace: string): Promise<PrometheusService>;
38
39
  }
39
40
  export declare class PrometheusProviderRegistry extends Singleton {
40
41
  providers: Map<string, PrometheusProvider>;
@@ -25,6 +25,6 @@ export declare class PrometheusStacklight extends PrometheusProvider {
25
25
  readonly name: string;
26
26
  readonly rateAccuracy: string;
27
27
  readonly isConfigurable: boolean;
28
- getPrometheusService(client: CoreV1Api): Promise<PrometheusService | undefined>;
28
+ getPrometheusService(client: CoreV1Api): Promise<PrometheusService>;
29
29
  getQuery(opts: Record<string, string>, queryName: string): string;
30
30
  }
@@ -19,4 +19,4 @@
19
19
  * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
20
20
  */
21
21
  import type { ProxyApiRequestArgs } from "./types";
22
- export declare function kubeApiRequest({ req, socket, head }: ProxyApiRequestArgs): Promise<void>;
22
+ export declare function kubeApiRequest({ req, socket, head, cluster }: ProxyApiRequestArgs): Promise<void>;
@@ -19,4 +19,18 @@
19
19
  * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
20
20
  */
21
21
  import type { ProxyApiRequestArgs } from "./types";
22
+ import { Singleton } from "../../common/utils";
23
+ import type { ClusterId } from "../../common/cluster-types";
24
+ export declare class ShellRequestAuthenticator extends Singleton {
25
+ private tokens;
26
+ init(): void;
27
+ /**
28
+ * Authenticates a single use token for creating a new shell
29
+ * @param clusterId The `ClusterId` for the shell
30
+ * @param tabId The ID for the shell
31
+ * @param token The value that is being presented as a one time authentication token
32
+ * @returns `true` if `token` was valid, false otherwise
33
+ */
34
+ authenticate(clusterId: ClusterId, tabId: string, token: string): boolean;
35
+ }
22
36
  export declare function shellApiRequest({ req, socket, head }: ProxyApiRequestArgs): void;
@@ -21,8 +21,10 @@
21
21
  /// <reference types="node" />
22
22
  import type http from "http";
23
23
  import type net from "net";
24
+ import type { Cluster } from "../cluster";
24
25
  export interface ProxyApiRequestArgs {
25
26
  req: http.IncomingMessage;
26
27
  socket: net.Socket;
27
28
  head: Buffer;
29
+ cluster: Cluster;
28
30
  }
@@ -21,7 +21,7 @@
21
21
  /// <reference types="node" />
22
22
  /// <reference types="node/http" />
23
23
  /// <reference types="got/dist/source/core/utils/timed-out" />
24
- import type * as WebSocket from "ws";
24
+ import type WebSocket from "ws";
25
25
  import * as k8s from "@kubernetes/client-node";
26
26
  import type { KubeConfig } from "@kubernetes/client-node";
27
27
  import type { Cluster } from "../cluster";
@@ -29,10 +29,10 @@ import { ShellSession } from "./shell-session";
29
29
  export declare class NodeShellSession extends ShellSession {
30
30
  protected nodeName: string;
31
31
  ShellType: string;
32
- protected podId: string;
32
+ protected readonly podName: string;
33
33
  protected kc: KubeConfig;
34
- protected get cwd(): string | undefined;
35
- constructor(socket: WebSocket, cluster: Cluster, nodeName: string);
34
+ protected readonly cwd: string | undefined;
35
+ constructor(socket: WebSocket, cluster: Cluster, nodeName: string, terminalId: string);
36
36
  open(): Promise<void>;
37
37
  protected createNodeShellPod(): Promise<{
38
38
  response: import("http").IncomingMessage;
@@ -20,28 +20,115 @@
20
20
  */
21
21
  import type { Cluster } from "../cluster";
22
22
  import { Kubectl } from "../kubectl";
23
- import type * as WebSocket from "ws";
23
+ import type WebSocket from "ws";
24
24
  import * as pty from "node-pty";
25
+ import { TerminalMessage } from "../../renderer/api/terminal-api";
25
26
  export declare class ShellOpenError extends Error {
26
27
  cause: Error;
27
28
  constructor(message: string, cause: Error);
28
29
  }
30
+ export declare enum WebSocketCloseEvent {
31
+ /**
32
+ * The connection successfully completed the purpose for which it was created.
33
+ */
34
+ NormalClosure = 1000,
35
+ /**
36
+ * The endpoint is going away, either because of a server failure or because
37
+ * the browser is navigating away from the page that opened the connection.
38
+ */
39
+ GoingAway = 1001,
40
+ /**
41
+ * The endpoint is terminating the connection due to a protocol error.
42
+ */
43
+ ProtocolError = 1002,
44
+ /**
45
+ * The connection is being terminated because the endpoint received data of a
46
+ * type it cannot accept. (For example, a text-only endpoint received binary
47
+ * data.)
48
+ */
49
+ UnsupportedData = 1003,
50
+ /**
51
+ * Indicates that no status code was provided even though one was expected.
52
+ */
53
+ NoStatusReceived = 1005,
54
+ /**
55
+ * Indicates that a connection was closed abnormally (that is, with no close
56
+ * frame being sent) when a status code is expected.
57
+ */
58
+ AbnormalClosure = 1006,
59
+ /**
60
+ * The endpoint is terminating the connection because a message was received
61
+ * that contained inconsistent data (e.g., non-UTF-8 data within a text message).
62
+ */
63
+ InvalidFramePayloadData = 1007,
64
+ /**
65
+ * The endpoint is terminating the connection because it received a message
66
+ * that violates its policy. This is a generic status code, used when codes
67
+ * 1003 and 1009 are not suitable.
68
+ */
69
+ PolicyViolation = 1008,
70
+ /**
71
+ * The endpoint is terminating the connection because a data frame was
72
+ * received that is too large.
73
+ */
74
+ MessageTooBig = 1009,
75
+ /**
76
+ * The client is terminating the connection because it expected the server to
77
+ * negotiate one or more extension, but the server didn't.
78
+ */
79
+ MissingExtension = 1010,
80
+ /**
81
+ * The server is terminating the connection because it encountered an
82
+ * unexpected condition that prevented it from fulfilling the request.
83
+ */
84
+ InternalError = 1011,
85
+ /**
86
+ * The server is terminating the connection because it is restarting.
87
+ */
88
+ ServiceRestart = 1012,
89
+ /**
90
+ * The server is terminating the connection due to a temporary condition,
91
+ * e.g. it is overloaded and is casting off some of its clients.
92
+ */
93
+ TryAgainLater = 1013,
94
+ /**
95
+ * The server was acting as a gateway or proxy and received an invalid
96
+ * response from the upstream server. This is similar to 502 HTTP Status Code.
97
+ */
98
+ BadGateway = 1014,
99
+ /**
100
+ * Indicates that the connection was closed due to a failure to perform a TLS
101
+ * handshake (e.g., the server certificate can't be verified).
102
+ */
103
+ TlsHandshake = 1015
104
+ }
29
105
  export declare abstract class ShellSession {
30
106
  protected websocket: WebSocket;
31
107
  protected cluster: Cluster;
32
108
  abstract ShellType: string;
33
- static shellEnvs: Map<string, Record<string, any>>;
109
+ private static shellEnvs;
110
+ private static processes;
111
+ /**
112
+ * Kill all remaining shell backing processes. Should be called when about to
113
+ * quit
114
+ */
115
+ static cleanup(): void;
34
116
  protected kubectl: Kubectl;
35
117
  protected running: boolean;
36
- protected shellProcess: pty.IPty;
37
118
  protected kubectlBinDirP: Promise<string>;
38
119
  protected kubeconfigPathP: Promise<string>;
120
+ protected readonly terminalId: string;
39
121
  protected abstract get cwd(): string | undefined;
40
- constructor(websocket: WebSocket, cluster: Cluster);
41
- protected open(shell: string, args: string[], env: Record<string, any>): Promise<void>;
122
+ protected ensureShellProcess(shell: string, args: string[], env: Record<string, string>, cwd: string): {
123
+ shellProcess: pty.IPty;
124
+ resume: boolean;
125
+ };
126
+ constructor(websocket: WebSocket, cluster: Cluster, terminalId: string);
127
+ protected send(message: TerminalMessage): void;
128
+ protected getCwd(env: Record<string, string>): Promise<string>;
129
+ protected openShellProcess(shell: string, args: string[], env: Record<string, string>): Promise<void>;
42
130
  protected getPathEntries(): string[];
43
- protected getCachedShellEnv(): Promise<Record<string, any>>;
131
+ protected getCachedShellEnv(): Promise<Record<string, string>>;
44
132
  protected getShellEnv(): Promise<Record<string, any>>;
45
- protected exit(code?: number): void;
46
- protected sendResponse(msg: string): void;
133
+ protected exit(code?: WebSocketCloseEvent): void;
47
134
  }
@@ -18,9 +18,7 @@
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 interface EnvironmentVariables {
22
- readonly [key: string]: string;
23
- }
21
+ export declare type EnvironmentVariables = Record<string, string>;
24
22
  /**
25
23
  * Attempts to get the shell environment per the user's existing startup scripts.
26
24
  * If the environment can't be retrieved after 5 seconds an error message is logged.
@@ -19,6 +19,6 @@
19
19
  * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
20
20
  */
21
21
  import { fileNameMigration } from "./file-name-migration";
22
- export { fileNameMigration };
22
+ export { fileNameMigration, };
23
23
  declare const _default: import("conf/dist/source/types").Migrations<any>;
24
24
  export default _default;
@@ -19,4 +19,4 @@
19
19
  * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
20
20
  */
21
21
  import fetch from "node-fetch";
22
- export { fetch };
22
+ export { fetch, };
@@ -18,15 +18,28 @@
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 { EventEmitter } from "../utils";
22
- import { WebSocketApi } from "./websocket-api";
21
+ import { WebSocketApi, WebSocketEvents } from "./websocket-api";
23
22
  export declare enum TerminalChannels {
24
- STDIN = 0,
25
- STDOUT = 1,
26
- STDERR = 2,
27
- TERMINAL_SIZE = 4,
28
- TOKEN = 9
23
+ STDIN = "stdin",
24
+ STDOUT = "stdout",
25
+ CONNECTED = "connected",
26
+ RESIZE = "resize"
29
27
  }
28
+ export declare type TerminalMessage = {
29
+ type: TerminalChannels.STDIN;
30
+ data: string;
31
+ } | {
32
+ type: TerminalChannels.STDOUT;
33
+ data: string;
34
+ } | {
35
+ type: TerminalChannels.CONNECTED;
36
+ } | {
37
+ type: TerminalChannels.RESIZE;
38
+ data: {
39
+ width: number;
40
+ height: number;
41
+ };
42
+ };
30
43
  declare enum TerminalColor {
31
44
  RED = "\u001B[31m",
32
45
  GREEN = "\u001B[32m",
@@ -41,26 +54,26 @@ declare enum TerminalColor {
41
54
  export declare type TerminalApiQuery = Record<string, string> & {
42
55
  id: string;
43
56
  node?: string;
44
- type?: string | "node";
57
+ type?: string;
45
58
  };
46
- export declare class TerminalApi extends WebSocketApi {
47
- protected options: TerminalApiQuery;
59
+ export interface TerminalEvents extends WebSocketEvents {
60
+ ready: () => void;
61
+ connected: () => void;
62
+ }
63
+ export declare class TerminalApi extends WebSocketApi<TerminalEvents> {
64
+ protected query: TerminalApiQuery;
48
65
  protected size: {
49
- Width: number;
50
- Height: number;
66
+ width: number;
67
+ height: number;
51
68
  };
52
- onReady: EventEmitter<[]>;
53
69
  isReady: boolean;
54
- readonly url: string;
55
- constructor(options: TerminalApiQuery);
56
- connect(): void;
70
+ constructor(query: TerminalApiQuery);
71
+ connect(): Promise<void>;
57
72
  destroy(): void;
58
- removeAllListeners(): void;
59
- protected _onReady(data: string): boolean;
60
73
  reconnect(): void;
61
- sendCommand(key: string, channel?: TerminalChannels): void;
74
+ sendMessage(message: TerminalMessage): void;
62
75
  sendTerminalSize(cols: number, rows: number): void;
63
- protected parseMessage(data: string): any;
76
+ protected _onMessage({ data, ...evt }: MessageEvent<ArrayBuffer>): void;
64
77
  protected _onOpen(evt: Event): void;
65
78
  protected _onClose(evt: CloseEvent): void;
66
79
  protected emitStatus(data: string, options?: {