@k8slens/extensions 5.3.1-git.4f33dfdfd5.0 → 5.3.1-git.4f75acf2b4.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 (203) hide show
  1. package/dist/src/common/base-store.d.ts +5 -2
  2. package/dist/src/common/catalog/catalog-entity.d.ts +51 -0
  3. package/dist/src/common/catalog-entities/kubernetes-cluster.d.ts +1 -2
  4. package/dist/src/common/cluster-types.d.ts +5 -1
  5. package/dist/src/{extensions/registries/welcome-menu-registry.d.ts → common/ipc/catalog.d.ts} +9 -7
  6. package/dist/src/common/ipc/extension-loader.ipc.d.ts +21 -0
  7. package/dist/src/common/ipc/index.d.ts +1 -0
  8. package/dist/src/common/ipc/update-available.ipc.d.ts +2 -0
  9. package/dist/src/common/k8s-api/cluster-context.d.ts +1 -0
  10. package/dist/src/common/k8s-api/endpoints/crd.api.d.ts +29 -28
  11. package/dist/src/common/k8s-api/endpoints/daemon-set.api.d.ts +2 -5
  12. package/dist/src/common/k8s-api/endpoints/deployment.api.d.ts +2 -5
  13. package/dist/src/common/k8s-api/endpoints/job.api.d.ts +2 -5
  14. package/dist/src/common/k8s-api/endpoints/metrics.api.d.ts +2 -0
  15. package/dist/src/common/k8s-api/endpoints/network-policy.api.d.ts +72 -32
  16. package/dist/src/common/k8s-api/endpoints/nodes.api.d.ts +6 -6
  17. package/dist/src/common/k8s-api/endpoints/persistent-volume-claims.api.d.ts +3 -16
  18. package/dist/src/common/k8s-api/endpoints/poddisruptionbudget.api.d.ts +2 -6
  19. package/dist/src/common/k8s-api/endpoints/pods.api.d.ts +2 -0
  20. package/dist/src/common/k8s-api/endpoints/replica-set.api.d.ts +2 -5
  21. package/dist/src/common/k8s-api/endpoints/stateful-set.api.d.ts +2 -5
  22. package/dist/src/common/k8s-api/kube-api-parse.d.ts +2 -2
  23. package/dist/src/common/k8s-api/kube-api.d.ts +58 -30
  24. package/dist/src/common/k8s-api/kube-json-api.d.ts +1 -2
  25. package/dist/src/common/k8s-api/kube-object.d.ts +25 -2
  26. package/dist/src/common/k8s-api/kube-object.store.d.ts +11 -7
  27. package/dist/src/common/k8s-api/kube-watch-api.d.ts +7 -30
  28. package/dist/src/common/protocol-handler/error.d.ts +3 -3
  29. package/dist/src/common/protocol-handler/router.d.ts +13 -7
  30. package/dist/src/common/user-store/preferences-helpers.d.ts +14 -0
  31. package/dist/src/common/user-store/user-store.d.ts +2 -1
  32. package/dist/src/common/utils/index.d.ts +1 -0
  33. package/dist/src/common/utils/promise-exec.d.ts +1 -2
  34. package/dist/src/common/utils/readableStream.d.ts +2 -2
  35. package/dist/src/common/vars.d.ts +1 -0
  36. package/dist/src/extensions/extension-api.js +1726 -3058
  37. package/dist/src/extensions/extension-compatibility.d.ts +3 -1
  38. package/dist/src/extensions/extension-discovery.d.ts +3 -1
  39. package/dist/src/extensions/{extension-loader.d.ts → extension-loader/extension-loader.d.ts} +15 -7
  40. package/dist/src/extensions/extension-loader/extension-loader.injectable.d.ts +4 -0
  41. package/dist/src/{main/initializers/registries.d.ts → extensions/extension-loader/index.d.ts} +1 -1
  42. package/dist/src/extensions/extensions.injectable.d.ts +3 -0
  43. package/dist/src/extensions/getDiForUnitTesting.d.ts +22 -0
  44. package/dist/src/extensions/lens-extension.d.ts +2 -1
  45. package/dist/src/extensions/lens-main-extension.d.ts +3 -1
  46. package/dist/src/extensions/lens-renderer-extension.d.ts +12 -6
  47. package/dist/src/extensions/main-extensions.injectable.d.ts +5 -0
  48. package/dist/src/extensions/registries/base-registry.d.ts +1 -1
  49. package/dist/src/extensions/registries/index.d.ts +0 -4
  50. package/dist/src/extensions/registries/status-bar-registry.d.ts +6 -0
  51. package/dist/src/extensions/renderer-api/k8s-api.d.ts +1 -0
  52. package/dist/src/extensions/renderer-extensions.injectable.d.ts +5 -0
  53. package/dist/src/main/catalog-pusher.d.ts +1 -1
  54. package/dist/src/main/cluster-manager.d.ts +1 -1
  55. package/dist/src/main/cluster.d.ts +3 -7
  56. package/dist/src/main/context-handler.d.ts +8 -1
  57. package/dist/src/main/getDi.d.ts +22 -0
  58. package/dist/src/main/getDiForUnitTesting.d.ts +22 -0
  59. package/dist/src/main/helm/helm-release-manager.d.ts +9 -10
  60. package/dist/src/main/helm/helm-repo-manager.d.ts +2 -2
  61. package/dist/src/main/helm/helm-service.d.ts +2 -2
  62. package/dist/src/main/initializers/index.d.ts +0 -1
  63. package/dist/src/main/initializers/ipc.d.ts +3 -1
  64. package/dist/src/main/kube-auth-proxy.d.ts +5 -7
  65. package/dist/src/main/kubeconfig-manager.d.ts +16 -4
  66. package/dist/src/main/lens-proxy.d.ts +8 -1
  67. package/dist/src/main/menu/electron-menu-items.injectable.d.ts +3 -0
  68. package/dist/src/main/menu/electron-menu-items.test.d.ts +1 -0
  69. package/dist/src/main/menu/menu.d.ts +33 -0
  70. package/dist/src/main/protocol-handler/index.d.ts +1 -1
  71. package/dist/src/main/protocol-handler/{router.d.ts → lens-protocol-router-main/lens-protocol-router-main.d.ts} +14 -8
  72. package/dist/src/main/protocol-handler/lens-protocol-router-main/lens-protocol-router-main.injectable.d.ts +4 -0
  73. package/dist/src/main/tray/tray-menu-items.injectable.d.ts +3 -0
  74. package/dist/src/main/tray/tray-menu-items.test.d.ts +1 -0
  75. package/dist/src/main/tray/tray.d.ts +27 -0
  76. package/dist/src/main/window-manager.d.ts +3 -0
  77. package/dist/src/renderer/api/__tests__/catalog-entity-registry.test.d.ts +1 -1
  78. package/dist/src/renderer/api/catalog-entity-registry.d.ts +4 -0
  79. package/dist/src/renderer/api/catalog-entity.d.ts +1 -5
  80. package/dist/src/renderer/api/terminal-api.d.ts +0 -2
  81. package/dist/src/renderer/bootstrap.d.ts +5 -2
  82. package/dist/src/renderer/cluster-frame.d.ts +2 -1
  83. package/dist/src/renderer/components/+catalog/catalog-entity-details.d.ts +3 -3
  84. package/dist/src/renderer/components/+catalog/catalog-entity-drawer-menu.d.ts +1 -2
  85. package/dist/src/renderer/components/+catalog/catalog-entity.store.d.ts +4 -4
  86. package/dist/src/renderer/components/+catalog/catalog.d.ts +5 -6
  87. package/dist/src/renderer/components/+catalog/helpers.d.ts +26 -0
  88. package/dist/src/renderer/components/+events/kube-event-details.d.ts +1 -1
  89. package/dist/src/renderer/components/{clipboard/clipboard.d.ts → +extensions/attempt-install/attempt-install.d.ts} +11 -16
  90. package/dist/src/renderer/components/+extensions/attempt-install/attempt-install.injectable.d.ts +3 -0
  91. package/dist/src/renderer/components/+extensions/attempt-install/create-temp-files-and-validate/create-temp-files-and-validate.d.ts +11 -0
  92. package/dist/src/renderer/components/+extensions/attempt-install/get-extension-dest-folder/get-extension-dest-folder.d.ts +1 -0
  93. package/dist/src/renderer/components/+extensions/attempt-install/unpack-extension/unpack-extension.d.ts +28 -0
  94. package/dist/src/renderer/components/+extensions/attempt-install/unpack-extension/unpack-extension.injectable.d.ts +3 -0
  95. package/dist/src/renderer/components/+extensions/attempt-install/validate-package/validate-package.d.ts +22 -0
  96. package/dist/src/renderer/components/+extensions/attempt-install-by-info/attempt-install-by-info.d.ts +13 -0
  97. package/dist/src/renderer/components/+extensions/attempt-install-by-info/attempt-install-by-info.injectable.d.ts +3 -0
  98. package/dist/src/renderer/components/+extensions/attempt-installs/attempt-installs.d.ts +6 -0
  99. package/dist/src/renderer/components/+extensions/attempt-installs/attempt-installs.injectable.d.ts +3 -0
  100. package/dist/src/renderer/components/+extensions/confirm-uninstall-extension/confirm-uninstall-extension.d.ts +7 -0
  101. package/dist/src/renderer/components/+extensions/confirm-uninstall-extension/confirm-uninstall-extension.injectable.d.ts +3 -0
  102. package/dist/src/renderer/components/+extensions/disable-extension/disable-extension.d.ts +27 -0
  103. package/dist/src/renderer/components/+extensions/disable-extension/disable-extension.injectable.d.ts +3 -0
  104. package/dist/src/renderer/components/+extensions/enable-extension/enable-extension.d.ts +27 -0
  105. package/dist/src/renderer/components/+extensions/enable-extension/enable-extension.injectable.d.ts +3 -0
  106. package/dist/src/renderer/components/+extensions/extensions.d.ts +1 -15
  107. package/dist/src/{extensions/registries/menu-registry.d.ts → renderer/components/+extensions/get-base-registry-url/get-base-registry-url.d.ts} +5 -6
  108. package/dist/src/renderer/components/+extensions/get-base-registry-url/get-base-registry-url.injectable.d.ts +23 -0
  109. package/dist/src/renderer/components/+extensions/get-message-from-error/get-message-from-error.d.ts +21 -0
  110. package/dist/src/{extensions/registries/welcome-banner-registry.d.ts → renderer/components/+extensions/install-from-input/install-from-input.d.ts} +8 -17
  111. package/dist/src/renderer/components/+extensions/install-from-input/install-from-input.injectable.d.ts +3 -0
  112. package/dist/src/renderer/components/+extensions/install-from-select-file-dialog/install-from-select-file-dialog.d.ts +5 -0
  113. package/dist/src/renderer/components/+extensions/install-from-select-file-dialog/install-from-select-file-dialog.injectable.d.ts +3 -0
  114. package/dist/src/renderer/components/+extensions/install-on-drop/install-on-drop.d.ts +5 -0
  115. package/dist/src/renderer/components/+extensions/install-on-drop/install-on-drop.injectable.d.ts +3 -0
  116. package/dist/src/renderer/components/+extensions/read-file-notify/read-file-notify.d.ts +2 -0
  117. package/dist/src/renderer/components/+extensions/supported-extension-formats.d.ts +21 -0
  118. package/dist/src/renderer/components/+extensions/uninstall-extension/uninstall-extension.d.ts +27 -0
  119. package/dist/src/renderer/components/+extensions/uninstall-extension/uninstall-extension.injectable.d.ts +3 -0
  120. package/dist/src/renderer/components/+extensions/user-extensions/user-extensions.injectable.d.ts +3 -0
  121. package/dist/src/renderer/components/+namespaces/namespace-details.d.ts +0 -1
  122. package/dist/src/renderer/components/+namespaces/namespace-select.d.ts +0 -1
  123. package/dist/src/renderer/components/+namespaces/namespace.store.d.ts +5 -3
  124. package/dist/src/renderer/components/+network-ingresses/ingress-details.d.ts +1 -1
  125. package/dist/src/renderer/{initializers/welcome-menu-registry.d.ts → components/+network-policies/__tests__/network-policy-details.test.d.ts} +1 -1
  126. package/dist/src/renderer/components/+network-policies/network-policy-details.d.ts +8 -4
  127. package/dist/src/renderer/components/+nodes/node-details.d.ts +1 -2
  128. package/dist/src/renderer/components/+nodes/nodes.d.ts +2 -1
  129. package/dist/src/renderer/components/+preferences/extension-settings.d.ts +7 -0
  130. package/dist/src/renderer/components/+preferences/preferences.d.ts +0 -2
  131. package/dist/src/renderer/components/+storage-classes/storage-class-details.d.ts +1 -1
  132. package/dist/src/renderer/components/+storage-volume-claims/volume-claim-details.d.ts +1 -1
  133. package/dist/src/renderer/components/+welcome/welcome-banner-items/welcome-banner-items.injectable.d.ts +3 -0
  134. package/dist/src/renderer/components/+welcome/welcome-menu-items/get-welcome-menu-items.d.ts +27 -0
  135. package/dist/src/renderer/components/+welcome/welcome-menu-items/welcome-menu-items.injectable.d.ts +3 -0
  136. package/dist/src/renderer/components/+welcome/welcome.d.ts +1 -3
  137. package/dist/src/renderer/components/+workloads-cronjobs/cronjob-details.d.ts +1 -1
  138. package/dist/src/renderer/components/+workloads-daemonsets/daemonset-details.d.ts +0 -1
  139. package/dist/src/renderer/components/+workloads-deployments/deployment-details.d.ts +0 -1
  140. package/dist/src/renderer/components/+workloads-jobs/job-details.d.ts +1 -1
  141. package/dist/src/renderer/components/+workloads-overview/overview-workload-status.d.ts +2 -7
  142. package/dist/src/renderer/components/+workloads-overview/overview.d.ts +2 -0
  143. package/dist/src/renderer/components/+workloads-replicasets/replicaset-details.d.ts +1 -2
  144. package/dist/src/renderer/components/+workloads-statefulsets/statefulset-details.d.ts +0 -1
  145. package/dist/src/renderer/components/{layout/__tests__/topbar.test.d.ts → avatar/__tests__/avatar.test.d.ts} +0 -0
  146. package/dist/src/renderer/components/avatar/avatar.d.ts +7 -8
  147. package/dist/src/renderer/components/{clipboard → avatar}/index.d.ts +1 -1
  148. package/dist/src/renderer/components/checkbox/checkbox.d.ts +0 -1
  149. package/dist/src/renderer/components/cluster-manager/active-hotbar-name.d.ts +21 -0
  150. package/dist/src/renderer/components/cluster-manager/bottom-bar.d.ts +0 -1
  151. package/dist/src/renderer/components/context.d.ts +8 -1
  152. package/dist/src/renderer/components/dialog/dialog.d.ts +1 -0
  153. package/dist/src/renderer/components/dock/dock.store.d.ts +11 -4
  154. package/dist/src/renderer/components/dock/install-chart.d.ts +0 -1
  155. package/dist/src/renderer/components/dock/terminal.d.ts +1 -1
  156. package/dist/src/renderer/components/drawer/drawer.d.ts +14 -3
  157. package/dist/src/renderer/components/getDi.d.ts +22 -0
  158. package/dist/src/renderer/components/getDiForUnitTesting.d.ts +22 -0
  159. package/dist/src/renderer/components/hotbar/hotbar-entity-icon.d.ts +3 -3
  160. package/dist/src/renderer/components/hotbar/hotbar-icon.d.ts +3 -10
  161. package/dist/src/renderer/components/hotbar/hotbar-menu.d.ts +3 -0
  162. package/dist/src/renderer/components/kube-object-list-layout/kube-object-list-layout.d.ts +2 -0
  163. package/dist/src/renderer/components/kube-object-menu/dependencies/api-manager.injectable.d.ts +3 -0
  164. package/dist/src/{main/tray.d.ts → renderer/components/kube-object-menu/dependencies/cluster-name.injectable.d.ts} +3 -5
  165. package/dist/src/renderer/components/kube-object-menu/dependencies/cluster.injectable.d.ts +3 -0
  166. package/dist/src/renderer/components/kube-object-menu/dependencies/edit-resource-tab.injectable.d.ts +24 -0
  167. package/dist/src/renderer/components/kube-object-menu/dependencies/hide-details.injectable.d.ts +24 -0
  168. package/dist/src/renderer/components/kube-object-menu/dependencies/kube-object-menu-items/get-kube-object-menu-items.d.ts +26 -0
  169. package/dist/src/renderer/components/kube-object-menu/dependencies/kube-object-menu-items/kube-object-menu-items.injectable.d.ts +9 -0
  170. package/dist/src/renderer/components/kube-object-menu/dependencies/kube-object-menu-items/kube-object-menu-registry.injectable.d.ts +24 -0
  171. package/dist/src/renderer/components/kube-object-menu/index.d.ts +2 -1
  172. package/dist/src/renderer/components/kube-object-menu/kube-object-menu.d.ts +4 -13
  173. package/dist/src/renderer/components/kube-object-menu/kube-object-menu.test.d.ts +21 -0
  174. package/dist/src/renderer/components/kubeconfig-dialog/kubeconfig-dialog.d.ts +0 -1
  175. package/dist/src/renderer/components/layout/{topbar.d.ts → close-button.d.ts} +3 -3
  176. package/dist/src/renderer/components/layout/top-bar/top-bar-items/top-bar-items.injectable.d.ts +3 -0
  177. package/dist/src/renderer/components/layout/top-bar/top-bar-win-linux.test.d.ts +21 -0
  178. package/dist/src/renderer/components/layout/top-bar/top-bar.d.ts +22 -0
  179. package/dist/src/renderer/components/layout/top-bar/top-bar.test.d.ts +21 -0
  180. package/dist/src/renderer/components/menu/menu-actions.d.ts +1 -1
  181. package/dist/src/renderer/components/monaco-editor/monaco-editor.d.ts +1 -1
  182. package/dist/src/renderer/components/resizing-anchor/resizing-anchor.d.ts +3 -1
  183. package/dist/src/renderer/components/switch/__tests__/switch.test.d.ts +21 -0
  184. package/dist/src/renderer/components/switch/form-switcher.d.ts +3 -0
  185. package/dist/src/renderer/components/switch/index.d.ts +1 -0
  186. package/dist/src/{extensions/registries/topbar-registry.d.ts → renderer/components/switch/switch.d.ts} +4 -9
  187. package/dist/src/renderer/components/switch/switcher.d.ts +4 -1
  188. package/dist/src/renderer/components/test-utils/renderFor.d.ts +27 -0
  189. package/dist/src/renderer/initializers/index.d.ts +1 -1
  190. package/dist/src/renderer/initializers/ipc.d.ts +2 -1
  191. package/dist/src/renderer/initializers/status-bar-registry.d.ts +21 -0
  192. package/dist/src/renderer/port-forward/port-forward.store.d.ts +1 -1
  193. package/dist/src/{main/menu.d.ts → renderer/protocol-handler/bind-protocol-add-route-handlers/bind-protocol-add-route-handlers.d.ts} +8 -6
  194. package/dist/src/renderer/protocol-handler/bind-protocol-add-route-handlers/bind-protocol-add-route-handlers.injectable.d.ts +3 -0
  195. package/dist/src/renderer/protocol-handler/index.d.ts +2 -2
  196. package/dist/src/renderer/protocol-handler/{router.d.ts → lens-protocol-router-renderer/lens-protocol-router-renderer.d.ts} +8 -1
  197. package/dist/src/renderer/protocol-handler/lens-protocol-router-renderer/lens-protocol-router-renderer.injectable.d.ts +4 -0
  198. package/dist/src/renderer/root-frame.d.ts +3 -1
  199. package/dist/src/renderer/theme.store.d.ts +0 -1
  200. package/dist/src/renderer/utils/index.d.ts +0 -1
  201. package/package.json +1 -1
  202. package/dist/src/renderer/protocol-handler/app-handlers.d.ts +0 -21
  203. package/dist/src/renderer/utils/copyToClipboard.d.ts +0 -27
@@ -24,9 +24,14 @@ import { KubeJsonApi, KubeJsonApiData } from "./kube-json-api";
24
24
  import type { RequestInit } from "node-fetch";
25
25
  import AbortController from "abort-controller";
26
26
  import type { Patch } from "rfc6902";
27
+ /**
28
+ * The options used for creating a `KubeApi`
29
+ */
27
30
  export interface IKubeApiOptions<T extends KubeObject> {
28
31
  /**
29
32
  * base api-path for listing all resources, e.g. "/api/v1/pods"
33
+ *
34
+ * If not specified then will be the one on the `objectConstructor`
30
35
  */
31
36
  apiBase?: string;
32
37
  /**
@@ -36,11 +41,29 @@ export interface IKubeApiOptions<T extends KubeObject> {
36
41
  * This option only has effect if checkPreferredVersion is true.
37
42
  */
38
43
  fallbackApiBases?: string[];
44
+ /**
45
+ * If `true` then will check all declared apiBases against the kube api server
46
+ * for the first accepted one.
47
+ */
48
+ checkPreferredVersion?: boolean;
49
+ /**
50
+ * The constructor for the kube objects returned from the API
51
+ */
39
52
  objectConstructor: KubeObjectConstructor<T>;
53
+ /**
54
+ * The api instance to use for making requests
55
+ *
56
+ * @default apiKube
57
+ */
40
58
  request?: KubeJsonApi;
59
+ /**
60
+ * @deprecated should be specified by `objectConstructor`
61
+ */
41
62
  isNamespaced?: boolean;
63
+ /**
64
+ * @deprecated should be specified by `objectConstructor`
65
+ */
42
66
  kind?: string;
43
- checkPreferredVersion?: boolean;
44
67
  }
45
68
  export interface IKubeApiQueryParams {
46
69
  watch?: boolean | number;
@@ -81,6 +104,9 @@ export declare type PropagationPolicy = undefined | "Orphan" | "Foreground" | "B
81
104
  */
82
105
  export interface IKubeApiCluster extends ILocalKubeApiConfig {
83
106
  }
107
+ export declare type PartialKubeObject<T extends KubeObject> = Partial<Omit<T, "metadata">> & {
108
+ metadata?: Partial<T["metadata"]>;
109
+ };
84
110
  export interface IRemoteKubeApiConfig {
85
111
  cluster: {
86
112
  server: string;
@@ -106,14 +132,34 @@ export declare type KubeApiWatchOptions = {
106
132
  timeout?: number;
107
133
  };
108
134
  export declare type KubeApiPatchType = "merge" | "json" | "strategic";
135
+ export interface ResourceDescriptor {
136
+ /**
137
+ * The name of the kubernetes resource
138
+ */
139
+ name: string;
140
+ /**
141
+ * The namespace that the resource lives in (if the resource is namespaced)
142
+ *
143
+ * Note: if not provided and the resource kind is namespaced, then this defaults to `"default"`
144
+ */
145
+ namespace?: string;
146
+ }
147
+ export interface DeleteResourceDescriptor extends ResourceDescriptor {
148
+ /**
149
+ * This determinines how child resources should be handled by kubernetes
150
+ *
151
+ * @default "Background"
152
+ */
153
+ propagationPolicy?: PropagationPolicy;
154
+ }
109
155
  export declare class KubeApi<T extends KubeObject> {
110
156
  protected options: IKubeApiOptions<T>;
111
157
  readonly kind: string;
112
- readonly apiBase: string;
113
- readonly apiPrefix: string;
114
- readonly apiGroup: string;
115
158
  readonly apiVersion: string;
116
- readonly apiVersionPreferred?: string;
159
+ apiBase: string;
160
+ apiPrefix: string;
161
+ apiGroup: string;
162
+ apiVersionPreferred?: string;
117
163
  readonly apiResource: string;
118
164
  readonly isNamespaced: boolean;
119
165
  objectConstructor: KubeObjectConstructor<T>;
@@ -136,34 +182,16 @@ export declare class KubeApi<T extends KubeObject> {
136
182
  setResourceVersion(namespace: string, newVersion: string): void;
137
183
  getResourceVersion(namespace?: string): string;
138
184
  refreshResourceVersion(params?: KubeApiListOptions): Promise<T[]>;
139
- getUrl({ name, namespace }?: {
140
- name?: string;
141
- namespace?: string;
142
- }, query?: Partial<IKubeApiQueryParams>): string;
185
+ private computeApiBase;
186
+ getUrl({ name, namespace }?: Partial<ResourceDescriptor>, query?: Partial<IKubeApiQueryParams>): string;
143
187
  protected normalizeQuery(query?: Partial<IKubeApiQueryParams>): Partial<IKubeApiQueryParams>;
144
188
  protected parseResponse(data: unknown, namespace?: string): T | T[] | null;
145
189
  list({ namespace, reqInit }?: KubeApiListOptions, query?: IKubeApiQueryParams): Promise<T[] | null>;
146
- get({ name, namespace }?: {
147
- name?: string;
148
- namespace?: string;
149
- }, query?: IKubeApiQueryParams): Promise<T | null>;
150
- create({ name, namespace }?: {
151
- name?: string;
152
- namespace?: string;
153
- }, data?: Partial<T>): Promise<T | null>;
154
- update({ name, namespace }?: {
155
- name?: string;
156
- namespace?: string;
157
- }, data?: Partial<T>): Promise<T | null>;
158
- patch({ name, namespace }?: {
159
- name?: string;
160
- namespace?: string;
161
- }, data?: Partial<T> | Patch, strategy?: KubeApiPatchType): Promise<T | null>;
162
- delete({ name, namespace, propagationPolicy }: {
163
- name: string;
164
- namespace?: string;
165
- propagationPolicy?: PropagationPolicy;
166
- }): Promise<KubeJsonApiData>;
190
+ get(desc: ResourceDescriptor, query?: IKubeApiQueryParams): Promise<T | null>;
191
+ create({ name, namespace }: Partial<ResourceDescriptor>, data?: PartialKubeObject<T>): Promise<T | null>;
192
+ update({ name, namespace }: ResourceDescriptor, data: PartialKubeObject<T>): Promise<T | null>;
193
+ patch(desc: ResourceDescriptor, data?: PartialKubeObject<T> | Patch, strategy?: KubeApiPatchType): Promise<T>;
194
+ delete({ propagationPolicy, ...desc }: DeleteResourceDescriptor): Promise<KubeJsonApiData>;
167
195
  getWatchUrl(namespace?: string, query?: IKubeApiQueryParams): string;
168
196
  watch(opts?: KubeApiWatchOptions): () => void;
169
197
  protected modifyWatchEvent(event: IKubeWatchEvent<KubeJsonApiData>): void;
@@ -20,7 +20,6 @@
20
20
  */
21
21
  import { JsonApi, JsonApiData, JsonApiError } from "./json-api";
22
22
  import type { Response } from "node-fetch";
23
- import type { Cluster } from "../../main/cluster";
24
23
  export interface KubeJsonApiListMetadata {
25
24
  resourceVersion: string;
26
25
  selfLink?: string;
@@ -64,6 +63,6 @@ export interface KubeJsonApiError extends JsonApiError {
64
63
  };
65
64
  }
66
65
  export declare class KubeJsonApi extends JsonApi<KubeJsonApiData> {
67
- static forCluster(cluster: Cluster): KubeJsonApi;
66
+ static forCluster(clusterId: string): KubeJsonApi;
68
67
  protected parseError(error: KubeJsonApiError | any, res: Response): string[];
69
68
  }
@@ -81,9 +81,32 @@ export declare class KubeCreationError extends Error {
81
81
  data: any;
82
82
  constructor(message: string, data: any);
83
83
  }
84
+ export declare type LabelMatchExpression = {
85
+ /**
86
+ * The label key that the selector applies to.
87
+ */
88
+ key: string;
89
+ } & ({
90
+ /**
91
+ * This represents the key's relationship to a set of values.
92
+ */
93
+ operator: "Exists" | "DoesNotExist";
94
+ values?: undefined;
95
+ } | {
96
+ operator: "In" | "NotIn";
97
+ /**
98
+ * The set of values for to match according to the operator for the label.
99
+ */
100
+ values: string[];
101
+ });
102
+ export interface LabelSelector {
103
+ matchLabels?: Record<string, string | undefined>;
104
+ matchExpressions?: LabelMatchExpression[];
105
+ }
84
106
  export declare class KubeObject<Metadata extends KubeObjectMetadata = KubeObjectMetadata, Status = any, Spec = any> implements ItemObject {
85
- static readonly kind: string;
86
- static readonly namespaced: boolean;
107
+ static readonly kind?: string;
108
+ static readonly namespaced?: boolean;
109
+ static readonly apiBase?: string;
87
110
  apiVersion: string;
88
111
  kind: string;
89
112
  metadata: Metadata;
@@ -25,10 +25,10 @@ import { ItemStore } from "../item.store";
25
25
  import { IKubeApiQueryParams, KubeApi } from "./kube-api";
26
26
  import type { KubeJsonApiData } from "./kube-json-api";
27
27
  import type { RequestInit } from "node-fetch";
28
+ import AbortController from "abort-controller";
28
29
  import type { Patch } from "rfc6902";
29
- export interface KubeObjectStoreLoadingParams<K extends KubeObject> {
30
+ export interface KubeObjectStoreLoadingParams {
30
31
  namespaces: string[];
31
- api?: KubeApi<K>;
32
32
  reqInit?: RequestInit;
33
33
  /**
34
34
  * A function that is called when listing fails. If set then blocks errors
@@ -52,6 +52,10 @@ export interface KubeObjectStoreSubscribeParams {
52
52
  * being rejected with
53
53
  */
54
54
  onLoadFailure?: (err: any) => void;
55
+ /**
56
+ * An optional parent abort controller
57
+ */
58
+ abortController?: AbortController;
55
59
  }
56
60
  export declare abstract class KubeObjectStore<T extends KubeObject> extends ItemStore<T> {
57
61
  static defaultContext: import("mobx").IObservableValue<ClusterContext>;
@@ -78,16 +82,16 @@ export declare abstract class KubeObjectStore<T extends KubeObject> extends Item
78
82
  getByLabel(labels: string[] | {
79
83
  [label: string]: string;
80
84
  }): T[];
81
- protected loadItems({ namespaces, api, reqInit, onLoadFailure }: KubeObjectStoreLoadingParams<T>): Promise<T[]>;
85
+ protected loadItems({ namespaces, reqInit, onLoadFailure }: KubeObjectStoreLoadingParams): Promise<T[]>;
82
86
  protected filterItemsOnLoad(items: T[]): T[];
83
- loadAll(options?: KubeObjectStoreLoadAllParams): Promise<void | T[]>;
87
+ loadAll({ namespaces, merge, reqInit, onLoadFailure }?: KubeObjectStoreLoadAllParams): Promise<void | T[]>;
84
88
  reloadAll(opts?: {
85
89
  force?: boolean;
86
90
  namespaces?: string[];
87
91
  merge?: boolean;
88
92
  }): Promise<void | T[]>;
89
- protected mergeItems(partialItems: T[], { replace, updateStore, sort, filter }?: {
90
- replace?: boolean;
93
+ protected mergeItems(partialItems: T[], { merge, updateStore, sort, filter }?: {
94
+ merge?: boolean;
91
95
  updateStore?: boolean;
92
96
  sort?: boolean;
93
97
  filter?: boolean;
@@ -117,7 +121,7 @@ export declare abstract class KubeObjectStore<T extends KubeObject> extends Item
117
121
  removeSelectedItems(): Promise<void[]>;
118
122
  protected eventsBuffer: import("mobx").IObservableArray<IKubeWatchEvent<KubeJsonApiData>>;
119
123
  protected bindWatchEventsUpdater(delay?: number): void;
120
- subscribe(opts?: KubeObjectStoreSubscribeParams): () => void;
124
+ subscribe({ onLoadFailure, abortController }?: KubeObjectStoreSubscribeParams): () => void;
121
125
  private watchNamespace;
122
126
  protected updateFromEventsBuffer(): void;
123
127
  }
@@ -21,57 +21,34 @@
21
21
  import type { KubeObjectStore } from "./kube-object.store";
22
22
  import type { ClusterContext } from "./cluster-context";
23
23
  import { Disposer } from "../utils";
24
- import type { KubeApi } from "./kube-api";
25
24
  import type { KubeJsonApiData } from "./kube-json-api";
26
25
  import type { KubeObject } from "./kube-object";
27
26
  export interface IKubeWatchEvent<T extends KubeJsonApiData> {
28
27
  type: "ADDED" | "MODIFIED" | "DELETED" | "ERROR";
29
28
  object?: T;
30
29
  }
31
- interface KubeWatchPreloadOptions {
30
+ export interface KubeWatchSubscribeStoreOptions {
32
31
  /**
33
32
  * The namespaces to watch
34
- * @default all-accessible
33
+ * @default all selected namespaces
35
34
  */
36
35
  namespaces?: string[];
37
- /**
38
- * Whether to skip loading if the store is already loaded
39
- * @default false
40
- */
41
- loadOnce?: boolean;
42
36
  /**
43
37
  * A function that is called when listing fails. If set then blocks errors
44
38
  * being rejected with
45
39
  */
46
40
  onLoadFailure?: (err: any) => void;
47
41
  }
48
- export interface KubeWatchSubscribeStoreOptions extends KubeWatchPreloadOptions {
49
- /**
50
- * Whether to subscribe only after loading all stores
51
- * @default true
52
- */
53
- waitUntilLoaded?: boolean;
54
- /**
55
- * Whether to preload the stores before watching
56
- * @default true
57
- */
58
- preload?: boolean;
59
- }
60
42
  export interface IKubeWatchLog {
61
43
  message: string | string[] | Error;
62
44
  meta?: object;
63
45
  cssStyle?: string;
64
46
  }
65
47
  export declare class KubeWatchApi {
66
- context: ClusterContext;
67
- constructor();
68
- isAllowedApi(api: KubeApi<KubeObject>): boolean;
69
- preloadStores(stores: KubeObjectStore<KubeObject>[], { loadOnce, namespaces, onLoadFailure }?: KubeWatchPreloadOptions): {
70
- loading: Promise<PromiseSettledResult<any>[]>;
71
- cancelLoading: () => void;
72
- };
73
- subscribeStores(stores: KubeObjectStore<KubeObject>[], opts?: KubeWatchSubscribeStoreOptions): Disposer;
74
- protected log({ message, cssStyle, meta }: IKubeWatchLog): void;
48
+ #private;
49
+ static context: ClusterContext;
50
+ private subscribeStore;
51
+ subscribeStores(stores: KubeObjectStore<KubeObject>[], { namespaces, onLoadFailure }?: KubeWatchSubscribeStoreOptions): Disposer;
52
+ protected log(message: any, meta: any): void;
75
53
  }
76
54
  export declare const kubeWatchApi: KubeWatchApi;
77
- export {};
@@ -27,13 +27,13 @@ export declare enum RoutingErrorType {
27
27
  NO_EXTENSION_ID = "no-ext-id",
28
28
  MISSING_EXTENSION = "missing-ext"
29
29
  }
30
- export declare class RoutingError extends Error {
30
+ export declare class RoutingError<Query> extends Error {
31
31
  type: RoutingErrorType;
32
- url: Url;
32
+ url: Url<Query>;
33
33
  /**
34
34
  * Will be set if the routing error originated in an extension route table
35
35
  */
36
36
  extensionName?: string;
37
- constructor(type: RoutingErrorType, url: Url);
37
+ constructor(type: RoutingErrorType, url: Url<Query>);
38
38
  toString(): string;
39
39
  }
@@ -19,8 +19,8 @@
19
19
  * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
20
20
  */
21
21
  import { match } from "react-router";
22
- import { Singleton } from "../utils";
23
22
  import type Url from "url-parse";
23
+ import type { ExtensionLoader as ExtensionLoaderType } from "../../extensions/extension-loader/extension-loader";
24
24
  import type { LensExtension } from "../../extensions/lens-extension";
25
25
  import type { RouteHandler } from "../../extensions/registries/protocol-handler";
26
26
  export declare const ProtocolHandlerIpcPrefix = "protocol-handler";
@@ -54,29 +54,34 @@ export declare enum RouteAttempt {
54
54
  MISSING_EXTENSION = "no-extension"
55
55
  }
56
56
  export declare function foldAttemptResults(mainAttempt: RouteAttempt, rendererAttempt: RouteAttempt): RouteAttempt;
57
- export declare abstract class LensProtocolRouter extends Singleton {
57
+ interface Dependencies {
58
+ extensionLoader: ExtensionLoaderType;
59
+ }
60
+ export declare abstract class LensProtocolRouter {
61
+ protected dependencies: Dependencies;
58
62
  protected internalRoutes: Map<string, RouteHandler>;
59
63
  static readonly LoggingPrefix = "[PROTOCOL ROUTER]";
60
64
  static readonly ExtensionUrlSchema: string;
65
+ constructor(dependencies: Dependencies);
61
66
  /**
62
67
  * Attempts to route the given URL to all internal routes that have been registered
63
68
  * @param url the parsed URL that initiated the `lens://` protocol
64
69
  * @returns true if a route has been found
65
70
  */
66
- protected _routeToInternal(url: Url): RouteAttempt;
71
+ protected _routeToInternal(url: Url<Record<string, string>>): RouteAttempt;
67
72
  /**
68
73
  * match against all matched URIs, returning either the first exact match or
69
74
  * the most specific match if none are exact.
70
75
  * @param routes the array of path schemas, handler pairs to match against
71
76
  * @param url the url (in its current state)
72
77
  */
73
- protected _findMatchingRoute(routes: Iterable<[string, RouteHandler]>, url: Url): null | [match<Record<string, string>>, RouteHandler];
78
+ protected _findMatchingRoute(routes: Iterable<[string, RouteHandler]>, url: Url<Record<string, string>>): null | [match<Record<string, string>>, RouteHandler];
74
79
  /**
75
80
  * find the most specific matching handler and call it
76
81
  * @param routes the array of (path schemas, handler) pairs to match against
77
82
  * @param url the url (in its current state)
78
83
  */
79
- protected _route(routes: Iterable<[string, RouteHandler]>, url: Url, extensionName?: string): RouteAttempt;
84
+ protected _route(routes: Iterable<[string, RouteHandler]>, url: Url<Record<string, string>>, extensionName?: string): RouteAttempt;
80
85
  /**
81
86
  * Tries to find the matching LensExtension instance
82
87
  *
@@ -84,7 +89,7 @@ export declare abstract class LensProtocolRouter extends Singleton {
84
89
  * @param url the protocol request URI that was "open"-ed
85
90
  * @returns either the found name or the instance of `LensExtension`
86
91
  */
87
- protected _findMatchingExtensionByName(url: Url): Promise<LensExtension | string>;
92
+ protected _findMatchingExtensionByName(url: Url<Record<string, string>>): Promise<LensExtension | string>;
88
93
  /**
89
94
  * Find a matching extension by the first one or two path segments of `url` and then try to `_route`
90
95
  * its correspondingly registered handlers.
@@ -95,7 +100,7 @@ export declare abstract class LensProtocolRouter extends Singleton {
95
100
  * Note: this function modifies its argument, do not reuse
96
101
  * @param url the protocol request URI that was "open"-ed
97
102
  */
98
- protected _routeToExtension(url: Url): Promise<RouteAttempt>;
103
+ protected _routeToExtension(url: Url<Record<string, string>>): Promise<RouteAttempt>;
99
104
  /**
100
105
  * Add a handler under the `lens://app` tree of routing.
101
106
  * @param pathSchema the URI path schema to match against for this handler
@@ -108,3 +113,4 @@ export declare abstract class LensProtocolRouter extends Singleton {
108
113
  */
109
114
  removeInternalHandler(urlSchema: string): void;
110
115
  }
116
+ export {};
@@ -39,6 +39,19 @@ export interface DownloadMirror {
39
39
  }
40
40
  export declare const defaultPackageMirror = "default";
41
41
  export declare const packageMirrors: Map<string, DownloadMirror>;
42
+ export declare enum ExtensionRegistryLocation {
43
+ DEFAULT = "default",
44
+ NPMRC = "npmrc",
45
+ CUSTOM = "custom"
46
+ }
47
+ export declare type ExtensionRegistry = {
48
+ location: ExtensionRegistryLocation.DEFAULT | ExtensionRegistryLocation.NPMRC;
49
+ customUrl?: undefined;
50
+ } | {
51
+ location: ExtensionRegistryLocation.CUSTOM;
52
+ customUrl: string;
53
+ };
54
+ export declare const defaultExtensionRegistryUrl = "https://registry.npmjs.org";
42
55
  declare type PreferencesModelType<field extends keyof typeof DESCRIPTORS> = typeof DESCRIPTORS[field] extends PreferenceDescription<infer T, any> ? T : never;
43
56
  declare type UserStoreModelType<field extends keyof typeof DESCRIPTORS> = typeof DESCRIPTORS[field] extends PreferenceDescription<any, infer T> ? T : never;
44
57
  export declare type UserStoreFlatModel = {
@@ -65,6 +78,7 @@ export declare const DESCRIPTORS: {
65
78
  editorConfiguration: PreferenceDescription<EditorConfiguration, EditorConfiguration>;
66
79
  terminalCopyOnSelect: PreferenceDescription<boolean, boolean>;
67
80
  updateChannel: PreferenceDescription<string, string>;
81
+ extensionRegistryUrl: PreferenceDescription<ExtensionRegistry, ExtensionRegistry>;
68
82
  };
69
83
  export declare const CONSTANTS: {
70
84
  updateChannels: Map<string, {
@@ -20,7 +20,7 @@
20
20
  */
21
21
  import { BaseStore } from "../base-store";
22
22
  import { ObservableToggleSet } from "../../renderer/utils";
23
- import { EditorConfiguration, KubeconfigSyncValue, UserPreferencesModel } from "./preferences-helpers";
23
+ import { EditorConfiguration, ExtensionRegistry, KubeconfigSyncValue, UserPreferencesModel } from "./preferences-helpers";
24
24
  export interface UserStoreModel {
25
25
  lastSeenAppVersion: string;
26
26
  preferences: UserPreferencesModel;
@@ -47,6 +47,7 @@ export declare class UserStore extends BaseStore<UserStoreModel> {
47
47
  kubectlBinariesPath?: string;
48
48
  terminalCopyOnSelect: boolean;
49
49
  updateChannel?: string;
50
+ extensionRegistryUrl: ExtensionRegistry;
50
51
  /**
51
52
  * Download kubectl binaries matching cluster version
52
53
  */
@@ -44,6 +44,7 @@ export * from "./n-fircate";
44
44
  export * from "./objects";
45
45
  export * from "./openExternal";
46
46
  export * from "./paths";
47
+ export * from "./promise-exec";
47
48
  export * from "./reject-promise";
48
49
  export * from "./singleton";
49
50
  export * from "./sort-compare";
@@ -19,6 +19,5 @@
19
19
  * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
20
20
  */
21
21
  /// <reference types="node" />
22
- import { exec, execFile } from "child_process";
23
- export declare const promiseExec: typeof exec.__promisify__;
22
+ import { execFile } from "child_process";
24
23
  export declare const promiseExecFile: typeof execFile.__promisify__;
@@ -39,7 +39,7 @@ export declare class ReadableWebToNodeStream<T extends TypedArray> extends Reada
39
39
  private pendingRead;
40
40
  /**
41
41
  *
42
- * @param stream Readable​Stream: https://developer.mozilla.org/en-US/docs/Web/API/ReadableStream
42
+ * @param stream ReadableStream: https://developer.mozilla.org/en-US/docs/Web/API/ReadableStream
43
43
  */
44
44
  constructor(stream: ReadableStream<T>);
45
45
  /**
@@ -50,7 +50,7 @@ export declare class ReadableWebToNodeStream<T extends TypedArray> extends Reada
50
50
  */
51
51
  _read(): Promise<void>;
52
52
  /**
53
- * If there is no unresolved read call to Web-API Readable​Stream immediately returns;
53
+ * If there is no unresolved read call to Web-API ReadableStream immediately returns;
54
54
  * otherwise will wait until the read is resolved.
55
55
  */
56
56
  waitForReadToComplete(): Promise<void>;
@@ -33,6 +33,7 @@ export declare const isIntegrationTesting: boolean;
33
33
  export declare const productName: string;
34
34
  export declare const appName: string;
35
35
  export declare const publicPath: string;
36
+ export declare const defaultTheme: string;
36
37
  export declare const contextDir: string;
37
38
  export declare const buildDir: string;
38
39
  export declare const preloadEntrypoint: string;