@alauda-fe/common 1.4.28-beta.5 → 1.4.28-beta.6

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 (64) hide show
  1. package/array-form-table/form/component.d.ts +1 -1
  2. package/code/code-editor-configs.d.ts +0 -2
  3. package/code/public-api.d.ts +0 -4
  4. package/code/resource-yaml-display/component.d.ts +6 -64
  5. package/core/abstract/base-nested-form-control.d.ts +1 -1
  6. package/core/constants/constants.d.ts +0 -3
  7. package/core/services/intercept-deactivate.service.d.ts +2 -2
  8. package/core/services/public-api.d.ts +0 -1
  9. package/core/services/time.service.d.ts +2 -8
  10. package/core/types/public-api.d.ts +0 -1
  11. package/esm2022/code/code-editor-configs.mjs +2 -12
  12. package/esm2022/code/public-api.mjs +1 -5
  13. package/esm2022/code/resource-yaml-display/component.mjs +42 -256
  14. package/esm2022/core/constants/constants.mjs +1 -4
  15. package/esm2022/core/guards/intercept-deactivate.guard.mjs +2 -2
  16. package/esm2022/core/services/intercept-deactivate.service.mjs +1 -1
  17. package/esm2022/core/services/public-api.mjs +1 -2
  18. package/esm2022/core/services/time.service.mjs +36 -13
  19. package/esm2022/core/services/workspace-helper.service.mjs +3 -4
  20. package/esm2022/core/types/public-api.mjs +1 -2
  21. package/esm2022/exec/terminal-group/component.mjs +2 -2
  22. package/esm2022/page-scaffold/page/page.module.mjs +6 -5
  23. package/esm2022/page-scaffold/page-header/help-menu/module.mjs +9 -8
  24. package/esm2022/table/module.mjs +12 -11
  25. package/esm2022/translate/constants.mjs +1 -2
  26. package/esm2022/translate/intl-format.pipes.mjs +293 -0
  27. package/esm2022/translate/public-api.mjs +4 -3
  28. package/esm2022/translate/relative-time-manager.service.mjs +87 -0
  29. package/esm2022/translate/translate.directive.mjs +5 -4
  30. package/esm2022/translate/translate.module.mjs +22 -3
  31. package/esm2022/translate/translate.pipe.mjs +7 -8
  32. package/esm2022/translate/translate.service.mjs +721 -142
  33. package/esm2022/translate/types.mjs +1 -1
  34. package/package.json +2 -2
  35. package/page-scaffold/page/page.module.d.ts +4 -3
  36. package/page-scaffold/page-header/help-menu/module.d.ts +2 -1
  37. package/styles/global.scss +0 -4
  38. package/table/component.d.ts +1 -1
  39. package/table/module.d.ts +2 -1
  40. package/translate/intl-format.pipes.d.ts +122 -0
  41. package/translate/public-api.d.ts +3 -2
  42. package/translate/relative-time-manager.service.d.ts +32 -0
  43. package/translate/translate.module.d.ts +4 -2
  44. package/translate/translate.pipe.d.ts +4 -5
  45. package/translate/translate.service.d.ts +292 -20
  46. package/translate/types.d.ts +16 -0
  47. package/code/managed-fields-folder.util.d.ts +0 -35
  48. package/code/resource-yaml-display/schema/component.d.ts +0 -61
  49. package/code/resource-yaml-editor/component.d.ts +0 -95
  50. package/code/yaml-examples.d.ts +0 -8
  51. package/code/yaml-sidebar/component.d.ts +0 -57
  52. package/code/yaml-sidebar/types.d.ts +0 -21
  53. package/code/yaml-sidebar/yaml-examples.d.ts +0 -8
  54. package/core/services/kubernetes-schema.service.d.ts +0 -44
  55. package/core/types/openapi.d.ts +0 -37
  56. package/esm2022/code/managed-fields-folder.util.mjs +0 -147
  57. package/esm2022/code/resource-yaml-display/schema/component.mjs +0 -531
  58. package/esm2022/code/resource-yaml-editor/component.mjs +0 -392
  59. package/esm2022/code/yaml-examples.mjs +0 -337
  60. package/esm2022/code/yaml-sidebar/component.mjs +0 -482
  61. package/esm2022/code/yaml-sidebar/types.mjs +0 -2
  62. package/esm2022/code/yaml-sidebar/yaml-examples.mjs +0 -340
  63. package/esm2022/core/services/kubernetes-schema.service.mjs +0 -129
  64. package/esm2022/core/types/openapi.mjs +0 -2
@@ -1,340 +0,0 @@
1
- /**
2
- * Kubernetes 资源的内置 YAML 示例
3
- * 按照 apiVersion.kind 的格式组织
4
- */
5
- export const BUILT_IN_YAML_EXAMPLES = {
6
- 'apps/v1.Deployment': [
7
- {
8
- title: 'Basic Deployment',
9
- description: 'A basic deployment example with nginx container',
10
- yaml: `apiVersion: apps/v1
11
- kind: Deployment
12
- metadata:
13
- name: example
14
- spec:
15
- selector:
16
- matchLabels:
17
- app: httpd
18
- replicas: 3
19
- template:
20
- metadata:
21
- labels:
22
- app: httpd
23
- spec:
24
- containers:
25
- - name: httpd
26
- image: internal-docker-registry.cpaas-system.svc/demo-ns/nginx:alpine
27
- ports:
28
- - containerPort: 8080`,
29
- },
30
- ],
31
- 'v1.ConfigMap': [
32
- {
33
- title: 'Basic ConfigMap',
34
- description: 'A basic ConfigMap example with properties and file data',
35
- yaml: `apiVersion: v1
36
- kind: ConfigMap
37
- metadata:
38
- name: example
39
- namespace: default
40
- data:
41
- example.property.1: hello
42
- example.property.2: world
43
- example.property.file: |-
44
- property.1=value-1
45
- property.2=value-2
46
- property.3=value-3`,
47
- },
48
- ],
49
- 'batch/v1.CronJob': [
50
- {
51
- title: 'Basic CronJob',
52
- description: 'A basic CronJob example that runs daily',
53
- yaml: `apiVersion: batch/v1
54
- kind: CronJob
55
- metadata:
56
- name: example
57
- spec:
58
- schedule: "@daily"
59
- jobTemplate:
60
- spec:
61
- template:
62
- spec:
63
- containers:
64
- - name: hello
65
- image: busybox
66
- args:
67
- - /bin/sh
68
- - -c
69
- - date; echo Hello from the Kubernetes cluster
70
- restartPolicy: OnFailure`,
71
- },
72
- ],
73
- 'v1.PersistentVolume': [
74
- {
75
- title: 'Basic PersistentVolume',
76
- description: 'A basic PersistentVolume example with NFS storage',
77
- yaml: `apiVersion: v1
78
- kind: PersistentVolume
79
- metadata:
80
- name: example
81
- spec:
82
- capacity:
83
- storage: 5Gi
84
- accessModes:
85
- - ReadWriteOnce
86
- persistentVolumeReclaimPolicy: Retain
87
- storageClassName: slow
88
- nfs:
89
- path: /tmp
90
- server: 172.17.0.2`,
91
- },
92
- ],
93
- 'autoscaling/v2.HorizontalPodAutoscaler': [
94
- {
95
- title: 'Basic HorizontalPodAutoscaler',
96
- description: 'A basic HPA example with CPU utilization target',
97
- yaml: `apiVersion: autoscaling/v2
98
- kind: HorizontalPodAutoscaler
99
- metadata:
100
- name: example
101
- spec:
102
- scaleTargetRef:
103
- apiVersion: apps/v1
104
- kind: Deployment
105
- name: example
106
- minReplicas: 1
107
- maxReplicas: 3
108
- metrics:
109
- - type: Resource
110
- resource:
111
- name: cpu
112
- target:
113
- averageUtilization: 50
114
- type: Utilization`,
115
- },
116
- ],
117
- 'apps/v1.DaemonSet': [
118
- {
119
- title: 'Basic DaemonSet',
120
- description: 'A basic DaemonSet example with nginx container',
121
- yaml: `apiVersion: apps/v1
122
- kind: DaemonSet
123
- metadata:
124
- name: example
125
- spec:
126
- selector:
127
- matchLabels:
128
- app: httpd
129
- template:
130
- metadata:
131
- labels:
132
- app: httpd
133
- spec:
134
- containers:
135
- - name: httpd
136
- image: internal-docker-registry.cpaas-system.svc/demo-ns/nginx:alpine
137
- ports:
138
- - containerPort: 8080`,
139
- },
140
- ],
141
- 'v1.PersistentVolumeClaim': [
142
- {
143
- title: 'Basic PersistentVolumeClaim',
144
- description: 'A basic PVC example requesting 1Gi storage',
145
- yaml: `apiVersion: v1
146
- kind: PersistentVolumeClaim
147
- metadata:
148
- name: example
149
- spec:
150
- accessModes:
151
- - ReadWriteOnce
152
- volumeMode: Filesystem
153
- resources:
154
- requests:
155
- storage: 1Gi`,
156
- },
157
- ],
158
- 'v1.ResourceQuota': [
159
- {
160
- title: 'Compute ResourceQuota',
161
- description: 'A ResourceQuota example for compute resources',
162
- yaml: `apiVersion: v1
163
- kind: ResourceQuota
164
- metadata:
165
- name: compute-quota
166
- namespace: default
167
- spec:
168
- hard:
169
- requests.cpu: '1'
170
- requests.memory: 1Gi
171
- limits.cpu: '2'
172
- limits.memory: 2Gi`,
173
- },
174
- {
175
- title: 'Storage Class ResourceQuota',
176
- description: 'A ResourceQuota example for storage class specific quotas',
177
- yaml: `apiVersion: v1
178
- kind: ResourceQuota
179
- metadata:
180
- name: storage-class-quota
181
- namespace: default
182
- spec:
183
- hard:
184
- requests.storage: 100Gi
185
- persistentvolumeclaims: '100'
186
- # For quota specific to a storage class, the storage class must have the same name
187
- gold.storage-class.kubernetes.io/requests.storage: 3Gi
188
- gold.storage-class.kubernetes.io/persistentvolumeclaims: '5'
189
- silver.storage-class.kubernetes.io/requests.storage: 2Gi
190
- silver.storage-class.kubernetes.io/persistentvolumeclaims: '3'
191
- bronze.storage-class.kubernetes.io/requests.storage: 1Gi
192
- bronze.storage-class.kubernetes.io/persistentvolumeclaims: '1'`,
193
- },
194
- {
195
- title: 'Object Counts ResourceQuota',
196
- description: 'A ResourceQuota example for object count limits',
197
- yaml: `apiVersion: v1
198
- kind: ResourceQuota
199
- metadata:
200
- name: object-counts
201
- namespace: default
202
- spec:
203
- hard:
204
- configmaps: "10"
205
- persistentvolumeclaims: "4"
206
- replicationcontrollers: "20"
207
- secrets: "10"
208
- services: "10"
209
- services.loadbalancers: "2"`,
210
- },
211
- ],
212
- 'v1.LimitRange': [
213
- {
214
- title: 'Memory LimitRange',
215
- description: 'A LimitRange example for container memory limits',
216
- yaml: `apiVersion: v1
217
- kind: LimitRange
218
- metadata:
219
- name: mem-limit-range
220
- spec:
221
- limits:
222
- - default:
223
- memory: 512Mi
224
- defaultRequest:
225
- memory: 256Mi
226
- type: Container`,
227
- },
228
- ],
229
- 'apps/v1.StatefulSet': [
230
- {
231
- title: 'Basic StatefulSet',
232
- description: 'A basic StatefulSet example with persistent storage',
233
- yaml: `apiVersion: apps/v1
234
- kind: StatefulSet
235
- metadata:
236
- name: example
237
- spec:
238
- serviceName: "httpd"
239
- replicas: 3
240
- selector:
241
- matchLabels:
242
- app: httpd
243
- template:
244
- metadata:
245
- labels:
246
- app: httpd
247
- spec:
248
- terminationGracePeriodSeconds: 10
249
- containers:
250
- - name: httpd
251
- image: internal-docker-registry.cpaas-system.svc/demo-ns/nginx:alpine
252
- ports:
253
- - containerPort: 8080
254
- name: web
255
- volumeMounts:
256
- - name: www
257
- mountPath: /var/www/html
258
- volumeClaimTemplates:
259
- - metadata:
260
- name: www
261
- spec:
262
- accessModes: [ "ReadWriteOnce" ]
263
- storageClassName: my-storage-class
264
- resources:
265
- requests:
266
- storage: 1Gi`,
267
- },
268
- ],
269
- 'storage.k8s.io/v1.StorageClass': [
270
- {
271
- title: 'Basic StorageClass',
272
- description: 'A basic StorageClass example',
273
- yaml: `apiVersion: storage.k8s.io/v1
274
- kind: StorageClass
275
- metadata:
276
- name: example
277
- provisioner: my-provisioner
278
- reclaimPolicy: Delete`,
279
- },
280
- ],
281
- 'v1.Secret': [
282
- {
283
- title: 'Basic Secret',
284
- description: 'A basic Secret example with username and password',
285
- yaml: `apiVersion: v1
286
- kind: Secret
287
- metadata:
288
- name: example
289
- type: Opaque
290
- stringData:
291
- username: admin
292
- password: opensesame`,
293
- },
294
- ],
295
- 'app.k8s.io/v1beta1.Application': [
296
- {
297
- title: 'Basic Application',
298
- description: 'A basic Application example with Deployment and Service',
299
- yaml: `apiVersion: apps/v1
300
- kind: Deployment
301
- metadata:
302
- labels:
303
- app: nginx
304
- name: nginx-deployment
305
- namespace: yintest-ns1
306
- spec:
307
- replicas: 1
308
- selector:
309
- matchLabels:
310
- app: nginx
311
- template:
312
- metadata:
313
- labels:
314
- app: nginx
315
- spec:
316
- containers:
317
- - image: nginx:1.7.9
318
- name: nginx
319
- ports:
320
- - containerPort: 80
321
- ---
322
- apiVersion: v1
323
- kind: Service
324
- metadata:
325
- labels:
326
- app: nginx
327
- name: nginx
328
- namespace: yintest-ns1
329
- spec:
330
- ports:
331
- - port: 80
332
- protocol: TCP
333
- targetPort: 80
334
- selector:
335
- app: nginx
336
- type: ClusterIP`,
337
- },
338
- ],
339
- };
340
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoieWFtbC1leGFtcGxlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tbW9uL3NyYy9jb2RlL3lhbWwtc2lkZWJhci95YW1sLWV4YW1wbGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBOzs7R0FHRztBQUNILE1BQU0sQ0FBQyxNQUFNLHNCQUFzQixHQUFxQztJQUN0RSxvQkFBb0IsRUFBRTtRQUNwQjtZQUNFLEtBQUssRUFBRSxrQkFBa0I7WUFDekIsV0FBVyxFQUFFLGlEQUFpRDtZQUM5RCxJQUFJLEVBQUU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs4QkFrQmtCO1NBQ3pCO0tBQ0Y7SUFFRCxjQUFjLEVBQUU7UUFDZDtZQUNFLEtBQUssRUFBRSxpQkFBaUI7WUFDeEIsV0FBVyxFQUFFLHlEQUF5RDtZQUN0RSxJQUFJLEVBQUU7Ozs7Ozs7Ozs7O3VCQVdXO1NBQ2xCO0tBQ0Y7SUFFRCxrQkFBa0IsRUFBRTtRQUNsQjtZQUNFLEtBQUssRUFBRSxlQUFlO1lBQ3RCLFdBQVcsRUFBRSx5Q0FBeUM7WUFDdEQsSUFBSSxFQUFFOzs7Ozs7Ozs7Ozs7Ozs7OzttQ0FpQnVCO1NBQzlCO0tBQ0Y7SUFFRCxxQkFBcUIsRUFBRTtRQUNyQjtZQUNFLEtBQUssRUFBRSx3QkFBd0I7WUFDL0IsV0FBVyxFQUFFLG1EQUFtRDtZQUNoRSxJQUFJLEVBQUU7Ozs7Ozs7Ozs7Ozs7dUJBYVc7U0FDbEI7S0FDRjtJQUVELHdDQUF3QyxFQUFFO1FBQ3hDO1lBQ0UsS0FBSyxFQUFFLCtCQUErQjtZQUN0QyxXQUFXLEVBQUUsaURBQWlEO1lBQzlELElBQUksRUFBRTs7Ozs7Ozs7Ozs7Ozs7Ozs7MEJBaUJjO1NBQ3JCO0tBQ0Y7SUFFRCxtQkFBbUIsRUFBRTtRQUNuQjtZQUNFLEtBQUssRUFBRSxpQkFBaUI7WUFDeEIsV0FBVyxFQUFFLGdEQUFnRDtZQUM3RCxJQUFJLEVBQUU7Ozs7Ozs7Ozs7Ozs7Ozs7OzhCQWlCa0I7U0FDekI7S0FDRjtJQUVELDBCQUEwQixFQUFFO1FBQzFCO1lBQ0UsS0FBSyxFQUFFLDZCQUE2QjtZQUNwQyxXQUFXLEVBQUUsNENBQTRDO1lBQ3pELElBQUksRUFBRTs7Ozs7Ozs7OzttQkFVTztTQUNkO0tBQ0Y7SUFFRCxrQkFBa0IsRUFBRTtRQUNsQjtZQUNFLEtBQUssRUFBRSx1QkFBdUI7WUFDOUIsV0FBVyxFQUFFLCtDQUErQztZQUM1RCxJQUFJLEVBQUU7Ozs7Ozs7Ozs7dUJBVVc7U0FDbEI7UUFDRDtZQUNFLEtBQUssRUFBRSw2QkFBNkI7WUFDcEMsV0FBVyxFQUFFLDJEQUEyRDtZQUN4RSxJQUFJLEVBQUU7Ozs7Ozs7Ozs7Ozs7OzttRUFldUQ7U0FDOUQ7UUFDRDtZQUNFLEtBQUssRUFBRSw2QkFBNkI7WUFDcEMsV0FBVyxFQUFFLGlEQUFpRDtZQUM5RCxJQUFJLEVBQUU7Ozs7Ozs7Ozs7OztnQ0FZb0I7U0FDM0I7S0FDRjtJQUVELGVBQWUsRUFBRTtRQUNmO1lBQ0UsS0FBSyxFQUFFLG1CQUFtQjtZQUMxQixXQUFXLEVBQUUsa0RBQWtEO1lBQy9ELElBQUksRUFBRTs7Ozs7Ozs7OztvQkFVUTtTQUNmO0tBQ0Y7SUFFRCxxQkFBcUIsRUFBRTtRQUNyQjtZQUNFLEtBQUssRUFBRSxtQkFBbUI7WUFDMUIsV0FBVyxFQUFFLHFEQUFxRDtZQUNsRSxJQUFJLEVBQUU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozt1QkFpQ1c7U0FDbEI7S0FDRjtJQUVELGdDQUFnQyxFQUFFO1FBQ2hDO1lBQ0UsS0FBSyxFQUFFLG9CQUFvQjtZQUMzQixXQUFXLEVBQUUsOEJBQThCO1lBQzNDLElBQUksRUFBRTs7Ozs7c0JBS1U7U0FDakI7S0FDRjtJQUVELFdBQVcsRUFBRTtRQUNYO1lBQ0UsS0FBSyxFQUFFLGNBQWM7WUFDckIsV0FBVyxFQUFFLG1EQUFtRDtZQUNoRSxJQUFJLEVBQUU7Ozs7Ozs7dUJBT1c7U0FDbEI7S0FDRjtJQUVELGdDQUFnQyxFQUFFO1FBQ2hDO1lBQ0UsS0FBSyxFQUFFLG1CQUFtQjtZQUMxQixXQUFXLEVBQUUseURBQXlEO1lBQ3RFLElBQUksRUFBRTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztrQkFxQ007U0FDYjtLQUNGO0NBQ0YsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFlhbWxFeGFtcGxlIH0gZnJvbSAnLi90eXBlcyc7XG5cbi8qKlxuICogS3ViZXJuZXRlcyDotYTmupDnmoTlhoXnva4gWUFNTCDnpLrkvotcbiAqIOaMieeFpyBhcGlWZXJzaW9uLmtpbmQg55qE5qC85byP57uE57uHXG4gKi9cbmV4cG9ydCBjb25zdCBCVUlMVF9JTl9ZQU1MX0VYQU1QTEVTOiB7IFtrZXk6IHN0cmluZ106IFlhbWxFeGFtcGxlW10gfSA9IHtcbiAgJ2FwcHMvdjEuRGVwbG95bWVudCc6IFtcbiAgICB7XG4gICAgICB0aXRsZTogJ0Jhc2ljIERlcGxveW1lbnQnLFxuICAgICAgZGVzY3JpcHRpb246ICdBIGJhc2ljIGRlcGxveW1lbnQgZXhhbXBsZSB3aXRoIG5naW54IGNvbnRhaW5lcicsXG4gICAgICB5YW1sOiBgYXBpVmVyc2lvbjogYXBwcy92MVxua2luZDogRGVwbG95bWVudFxubWV0YWRhdGE6XG4gIG5hbWU6IGV4YW1wbGVcbnNwZWM6XG4gIHNlbGVjdG9yOlxuICAgIG1hdGNoTGFiZWxzOlxuICAgICAgYXBwOiBodHRwZFxuICByZXBsaWNhczogM1xuICB0ZW1wbGF0ZTpcbiAgICBtZXRhZGF0YTpcbiAgICAgIGxhYmVsczpcbiAgICAgICAgYXBwOiBodHRwZFxuICAgIHNwZWM6XG4gICAgICBjb250YWluZXJzOlxuICAgICAgLSBuYW1lOiBodHRwZFxuICAgICAgICBpbWFnZTogaW50ZXJuYWwtZG9ja2VyLXJlZ2lzdHJ5LmNwYWFzLXN5c3RlbS5zdmMvZGVtby1ucy9uZ2lueDphbHBpbmVcbiAgICAgICAgcG9ydHM6XG4gICAgICAgIC0gY29udGFpbmVyUG9ydDogODA4MGAsXG4gICAgfSxcbiAgXSxcblxuICAndjEuQ29uZmlnTWFwJzogW1xuICAgIHtcbiAgICAgIHRpdGxlOiAnQmFzaWMgQ29uZmlnTWFwJyxcbiAgICAgIGRlc2NyaXB0aW9uOiAnQSBiYXNpYyBDb25maWdNYXAgZXhhbXBsZSB3aXRoIHByb3BlcnRpZXMgYW5kIGZpbGUgZGF0YScsXG4gICAgICB5YW1sOiBgYXBpVmVyc2lvbjogdjFcbmtpbmQ6IENvbmZpZ01hcFxubWV0YWRhdGE6XG4gIG5hbWU6IGV4YW1wbGVcbiAgbmFtZXNwYWNlOiBkZWZhdWx0XG5kYXRhOlxuICBleGFtcGxlLnByb3BlcnR5LjE6IGhlbGxvXG4gIGV4YW1wbGUucHJvcGVydHkuMjogd29ybGRcbiAgZXhhbXBsZS5wcm9wZXJ0eS5maWxlOiB8LVxuICAgIHByb3BlcnR5LjE9dmFsdWUtMVxuICAgIHByb3BlcnR5LjI9dmFsdWUtMlxuICAgIHByb3BlcnR5LjM9dmFsdWUtM2AsXG4gICAgfSxcbiAgXSxcblxuICAnYmF0Y2gvdjEuQ3JvbkpvYic6IFtcbiAgICB7XG4gICAgICB0aXRsZTogJ0Jhc2ljIENyb25Kb2InLFxuICAgICAgZGVzY3JpcHRpb246ICdBIGJhc2ljIENyb25Kb2IgZXhhbXBsZSB0aGF0IHJ1bnMgZGFpbHknLFxuICAgICAgeWFtbDogYGFwaVZlcnNpb246IGJhdGNoL3YxXG5raW5kOiBDcm9uSm9iXG5tZXRhZGF0YTpcbiAgbmFtZTogZXhhbXBsZVxuc3BlYzpcbiAgc2NoZWR1bGU6IFwiQGRhaWx5XCJcbiAgam9iVGVtcGxhdGU6XG4gICAgc3BlYzpcbiAgICAgIHRlbXBsYXRlOlxuICAgICAgICBzcGVjOlxuICAgICAgICAgIGNvbnRhaW5lcnM6XG4gICAgICAgICAgLSBuYW1lOiBoZWxsb1xuICAgICAgICAgICAgaW1hZ2U6IGJ1c3lib3hcbiAgICAgICAgICAgIGFyZ3M6XG4gICAgICAgICAgICAtIC9iaW4vc2hcbiAgICAgICAgICAgIC0gLWNcbiAgICAgICAgICAgIC0gZGF0ZTsgZWNobyBIZWxsbyBmcm9tIHRoZSBLdWJlcm5ldGVzIGNsdXN0ZXJcbiAgICAgICAgICByZXN0YXJ0UG9saWN5OiBPbkZhaWx1cmVgLFxuICAgIH0sXG4gIF0sXG5cbiAgJ3YxLlBlcnNpc3RlbnRWb2x1bWUnOiBbXG4gICAge1xuICAgICAgdGl0bGU6ICdCYXNpYyBQZXJzaXN0ZW50Vm9sdW1lJyxcbiAgICAgIGRlc2NyaXB0aW9uOiAnQSBiYXNpYyBQZXJzaXN0ZW50Vm9sdW1lIGV4YW1wbGUgd2l0aCBORlMgc3RvcmFnZScsXG4gICAgICB5YW1sOiBgYXBpVmVyc2lvbjogdjFcbmtpbmQ6IFBlcnNpc3RlbnRWb2x1bWVcbm1ldGFkYXRhOlxuICBuYW1lOiBleGFtcGxlXG5zcGVjOlxuICBjYXBhY2l0eTpcbiAgICBzdG9yYWdlOiA1R2lcbiAgYWNjZXNzTW9kZXM6XG4gICAgLSBSZWFkV3JpdGVPbmNlXG4gIHBlcnNpc3RlbnRWb2x1bWVSZWNsYWltUG9saWN5OiBSZXRhaW5cbiAgc3RvcmFnZUNsYXNzTmFtZTogc2xvd1xuICBuZnM6XG4gICAgcGF0aDogL3RtcFxuICAgIHNlcnZlcjogMTcyLjE3LjAuMmAsXG4gICAgfSxcbiAgXSxcblxuICAnYXV0b3NjYWxpbmcvdjIuSG9yaXpvbnRhbFBvZEF1dG9zY2FsZXInOiBbXG4gICAge1xuICAgICAgdGl0bGU6ICdCYXNpYyBIb3Jpem9udGFsUG9kQXV0b3NjYWxlcicsXG4gICAgICBkZXNjcmlwdGlvbjogJ0EgYmFzaWMgSFBBIGV4YW1wbGUgd2l0aCBDUFUgdXRpbGl6YXRpb24gdGFyZ2V0JyxcbiAgICAgIHlhbWw6IGBhcGlWZXJzaW9uOiBhdXRvc2NhbGluZy92Mlxua2luZDogSG9yaXpvbnRhbFBvZEF1dG9zY2FsZXJcbm1ldGFkYXRhOlxuICBuYW1lOiBleGFtcGxlXG5zcGVjOlxuICBzY2FsZVRhcmdldFJlZjpcbiAgICBhcGlWZXJzaW9uOiBhcHBzL3YxXG4gICAga2luZDogRGVwbG95bWVudFxuICAgIG5hbWU6IGV4YW1wbGVcbiAgbWluUmVwbGljYXM6IDFcbiAgbWF4UmVwbGljYXM6IDNcbiAgbWV0cmljczpcbiAgLSB0eXBlOiBSZXNvdXJjZVxuICAgIHJlc291cmNlOlxuICAgICAgbmFtZTogY3B1XG4gICAgICB0YXJnZXQ6XG4gICAgICAgIGF2ZXJhZ2VVdGlsaXphdGlvbjogNTBcbiAgICAgICAgdHlwZTogVXRpbGl6YXRpb25gLFxuICAgIH0sXG4gIF0sXG5cbiAgJ2FwcHMvdjEuRGFlbW9uU2V0JzogW1xuICAgIHtcbiAgICAgIHRpdGxlOiAnQmFzaWMgRGFlbW9uU2V0JyxcbiAgICAgIGRlc2NyaXB0aW9uOiAnQSBiYXNpYyBEYWVtb25TZXQgZXhhbXBsZSB3aXRoIG5naW54IGNvbnRhaW5lcicsXG4gICAgICB5YW1sOiBgYXBpVmVyc2lvbjogYXBwcy92MVxua2luZDogRGFlbW9uU2V0XG5tZXRhZGF0YTpcbiAgbmFtZTogZXhhbXBsZVxuc3BlYzpcbiAgc2VsZWN0b3I6XG4gICAgbWF0Y2hMYWJlbHM6XG4gICAgICBhcHA6IGh0dHBkXG4gIHRlbXBsYXRlOlxuICAgIG1ldGFkYXRhOlxuICAgICAgbGFiZWxzOlxuICAgICAgICBhcHA6IGh0dHBkXG4gICAgc3BlYzpcbiAgICAgIGNvbnRhaW5lcnM6XG4gICAgICAtIG5hbWU6IGh0dHBkXG4gICAgICAgIGltYWdlOiBpbnRlcm5hbC1kb2NrZXItcmVnaXN0cnkuY3BhYXMtc3lzdGVtLnN2Yy9kZW1vLW5zL25naW54OmFscGluZVxuICAgICAgICBwb3J0czpcbiAgICAgICAgLSBjb250YWluZXJQb3J0OiA4MDgwYCxcbiAgICB9LFxuICBdLFxuXG4gICd2MS5QZXJzaXN0ZW50Vm9sdW1lQ2xhaW0nOiBbXG4gICAge1xuICAgICAgdGl0bGU6ICdCYXNpYyBQZXJzaXN0ZW50Vm9sdW1lQ2xhaW0nLFxuICAgICAgZGVzY3JpcHRpb246ICdBIGJhc2ljIFBWQyBleGFtcGxlIHJlcXVlc3RpbmcgMUdpIHN0b3JhZ2UnLFxuICAgICAgeWFtbDogYGFwaVZlcnNpb246IHYxXG5raW5kOiBQZXJzaXN0ZW50Vm9sdW1lQ2xhaW1cbm1ldGFkYXRhOlxuICBuYW1lOiBleGFtcGxlXG5zcGVjOlxuICBhY2Nlc3NNb2RlczpcbiAgICAtIFJlYWRXcml0ZU9uY2VcbiAgdm9sdW1lTW9kZTogRmlsZXN5c3RlbVxuICByZXNvdXJjZXM6XG4gICAgcmVxdWVzdHM6XG4gICAgICBzdG9yYWdlOiAxR2lgLFxuICAgIH0sXG4gIF0sXG5cbiAgJ3YxLlJlc291cmNlUXVvdGEnOiBbXG4gICAge1xuICAgICAgdGl0bGU6ICdDb21wdXRlIFJlc291cmNlUXVvdGEnLFxuICAgICAgZGVzY3JpcHRpb246ICdBIFJlc291cmNlUXVvdGEgZXhhbXBsZSBmb3IgY29tcHV0ZSByZXNvdXJjZXMnLFxuICAgICAgeWFtbDogYGFwaVZlcnNpb246IHYxXG5raW5kOiBSZXNvdXJjZVF1b3RhXG5tZXRhZGF0YTpcbiAgbmFtZTogY29tcHV0ZS1xdW90YVxuICBuYW1lc3BhY2U6IGRlZmF1bHRcbnNwZWM6XG4gIGhhcmQ6XG4gICAgcmVxdWVzdHMuY3B1OiAnMSdcbiAgICByZXF1ZXN0cy5tZW1vcnk6IDFHaVxuICAgIGxpbWl0cy5jcHU6ICcyJ1xuICAgIGxpbWl0cy5tZW1vcnk6IDJHaWAsXG4gICAgfSxcbiAgICB7XG4gICAgICB0aXRsZTogJ1N0b3JhZ2UgQ2xhc3MgUmVzb3VyY2VRdW90YScsXG4gICAgICBkZXNjcmlwdGlvbjogJ0EgUmVzb3VyY2VRdW90YSBleGFtcGxlIGZvciBzdG9yYWdlIGNsYXNzIHNwZWNpZmljIHF1b3RhcycsXG4gICAgICB5YW1sOiBgYXBpVmVyc2lvbjogdjFcbmtpbmQ6IFJlc291cmNlUXVvdGFcbm1ldGFkYXRhOlxuICBuYW1lOiBzdG9yYWdlLWNsYXNzLXF1b3RhXG4gIG5hbWVzcGFjZTogZGVmYXVsdFxuc3BlYzpcbiAgaGFyZDpcbiAgICByZXF1ZXN0cy5zdG9yYWdlOiAxMDBHaVxuICAgIHBlcnNpc3RlbnR2b2x1bWVjbGFpbXM6ICcxMDAnXG4gICAgIyBGb3IgcXVvdGEgc3BlY2lmaWMgdG8gYSBzdG9yYWdlIGNsYXNzLCB0aGUgc3RvcmFnZSBjbGFzcyBtdXN0IGhhdmUgdGhlIHNhbWUgbmFtZVxuICAgIGdvbGQuc3RvcmFnZS1jbGFzcy5rdWJlcm5ldGVzLmlvL3JlcXVlc3RzLnN0b3JhZ2U6IDNHaVxuICAgIGdvbGQuc3RvcmFnZS1jbGFzcy5rdWJlcm5ldGVzLmlvL3BlcnNpc3RlbnR2b2x1bWVjbGFpbXM6ICc1J1xuICAgIHNpbHZlci5zdG9yYWdlLWNsYXNzLmt1YmVybmV0ZXMuaW8vcmVxdWVzdHMuc3RvcmFnZTogMkdpXG4gICAgc2lsdmVyLnN0b3JhZ2UtY2xhc3Mua3ViZXJuZXRlcy5pby9wZXJzaXN0ZW50dm9sdW1lY2xhaW1zOiAnMydcbiAgICBicm9uemUuc3RvcmFnZS1jbGFzcy5rdWJlcm5ldGVzLmlvL3JlcXVlc3RzLnN0b3JhZ2U6IDFHaVxuICAgIGJyb256ZS5zdG9yYWdlLWNsYXNzLmt1YmVybmV0ZXMuaW8vcGVyc2lzdGVudHZvbHVtZWNsYWltczogJzEnYCxcbiAgICB9LFxuICAgIHtcbiAgICAgIHRpdGxlOiAnT2JqZWN0IENvdW50cyBSZXNvdXJjZVF1b3RhJyxcbiAgICAgIGRlc2NyaXB0aW9uOiAnQSBSZXNvdXJjZVF1b3RhIGV4YW1wbGUgZm9yIG9iamVjdCBjb3VudCBsaW1pdHMnLFxuICAgICAgeWFtbDogYGFwaVZlcnNpb246IHYxXG5raW5kOiBSZXNvdXJjZVF1b3RhXG5tZXRhZGF0YTpcbiAgbmFtZTogb2JqZWN0LWNvdW50c1xuICBuYW1lc3BhY2U6IGRlZmF1bHRcbnNwZWM6XG4gIGhhcmQ6XG4gICAgY29uZmlnbWFwczogXCIxMFwiXG4gICAgcGVyc2lzdGVudHZvbHVtZWNsYWltczogXCI0XCJcbiAgICByZXBsaWNhdGlvbmNvbnRyb2xsZXJzOiBcIjIwXCJcbiAgICBzZWNyZXRzOiBcIjEwXCJcbiAgICBzZXJ2aWNlczogXCIxMFwiXG4gICAgc2VydmljZXMubG9hZGJhbGFuY2VyczogXCIyXCJgLFxuICAgIH0sXG4gIF0sXG5cbiAgJ3YxLkxpbWl0UmFuZ2UnOiBbXG4gICAge1xuICAgICAgdGl0bGU6ICdNZW1vcnkgTGltaXRSYW5nZScsXG4gICAgICBkZXNjcmlwdGlvbjogJ0EgTGltaXRSYW5nZSBleGFtcGxlIGZvciBjb250YWluZXIgbWVtb3J5IGxpbWl0cycsXG4gICAgICB5YW1sOiBgYXBpVmVyc2lvbjogdjFcbmtpbmQ6IExpbWl0UmFuZ2Vcbm1ldGFkYXRhOlxuICBuYW1lOiBtZW0tbGltaXQtcmFuZ2VcbnNwZWM6XG4gIGxpbWl0czpcbiAgLSBkZWZhdWx0OlxuICAgICAgbWVtb3J5OiA1MTJNaVxuICAgIGRlZmF1bHRSZXF1ZXN0OlxuICAgICAgbWVtb3J5OiAyNTZNaVxuICAgIHR5cGU6IENvbnRhaW5lcmAsXG4gICAgfSxcbiAgXSxcblxuICAnYXBwcy92MS5TdGF0ZWZ1bFNldCc6IFtcbiAgICB7XG4gICAgICB0aXRsZTogJ0Jhc2ljIFN0YXRlZnVsU2V0JyxcbiAgICAgIGRlc2NyaXB0aW9uOiAnQSBiYXNpYyBTdGF0ZWZ1bFNldCBleGFtcGxlIHdpdGggcGVyc2lzdGVudCBzdG9yYWdlJyxcbiAgICAgIHlhbWw6IGBhcGlWZXJzaW9uOiBhcHBzL3YxXG5raW5kOiBTdGF0ZWZ1bFNldFxubWV0YWRhdGE6XG4gIG5hbWU6IGV4YW1wbGVcbnNwZWM6XG4gIHNlcnZpY2VOYW1lOiBcImh0dHBkXCJcbiAgcmVwbGljYXM6IDNcbiAgc2VsZWN0b3I6XG4gICAgbWF0Y2hMYWJlbHM6XG4gICAgICBhcHA6IGh0dHBkXG4gIHRlbXBsYXRlOlxuICAgIG1ldGFkYXRhOlxuICAgICAgbGFiZWxzOlxuICAgICAgICBhcHA6IGh0dHBkXG4gICAgc3BlYzpcbiAgICAgIHRlcm1pbmF0aW9uR3JhY2VQZXJpb2RTZWNvbmRzOiAxMFxuICAgICAgY29udGFpbmVyczpcbiAgICAgIC0gbmFtZTogaHR0cGRcbiAgICAgICAgaW1hZ2U6IGludGVybmFsLWRvY2tlci1yZWdpc3RyeS5jcGFhcy1zeXN0ZW0uc3ZjL2RlbW8tbnMvbmdpbng6YWxwaW5lXG4gICAgICAgIHBvcnRzOlxuICAgICAgICAtIGNvbnRhaW5lclBvcnQ6IDgwODBcbiAgICAgICAgICBuYW1lOiB3ZWJcbiAgICAgICAgdm9sdW1lTW91bnRzOlxuICAgICAgICAtIG5hbWU6IHd3d1xuICAgICAgICAgIG1vdW50UGF0aDogL3Zhci93d3cvaHRtbFxuICB2b2x1bWVDbGFpbVRlbXBsYXRlczpcbiAgLSBtZXRhZGF0YTpcbiAgICAgIG5hbWU6IHd3d1xuICAgIHNwZWM6XG4gICAgICBhY2Nlc3NNb2RlczogWyBcIlJlYWRXcml0ZU9uY2VcIiBdXG4gICAgICBzdG9yYWdlQ2xhc3NOYW1lOiBteS1zdG9yYWdlLWNsYXNzXG4gICAgICByZXNvdXJjZXM6XG4gICAgICAgIHJlcXVlc3RzOlxuICAgICAgICAgIHN0b3JhZ2U6IDFHaWAsXG4gICAgfSxcbiAgXSxcblxuICAnc3RvcmFnZS5rOHMuaW8vdjEuU3RvcmFnZUNsYXNzJzogW1xuICAgIHtcbiAgICAgIHRpdGxlOiAnQmFzaWMgU3RvcmFnZUNsYXNzJyxcbiAgICAgIGRlc2NyaXB0aW9uOiAnQSBiYXNpYyBTdG9yYWdlQ2xhc3MgZXhhbXBsZScsXG4gICAgICB5YW1sOiBgYXBpVmVyc2lvbjogc3RvcmFnZS5rOHMuaW8vdjFcbmtpbmQ6IFN0b3JhZ2VDbGFzc1xubWV0YWRhdGE6XG4gIG5hbWU6IGV4YW1wbGVcbnByb3Zpc2lvbmVyOiBteS1wcm92aXNpb25lclxucmVjbGFpbVBvbGljeTogRGVsZXRlYCxcbiAgICB9LFxuICBdLFxuXG4gICd2MS5TZWNyZXQnOiBbXG4gICAge1xuICAgICAgdGl0bGU6ICdCYXNpYyBTZWNyZXQnLFxuICAgICAgZGVzY3JpcHRpb246ICdBIGJhc2ljIFNlY3JldCBleGFtcGxlIHdpdGggdXNlcm5hbWUgYW5kIHBhc3N3b3JkJyxcbiAgICAgIHlhbWw6IGBhcGlWZXJzaW9uOiB2MVxua2luZDogU2VjcmV0XG5tZXRhZGF0YTpcbiAgbmFtZTogZXhhbXBsZVxudHlwZTogT3BhcXVlXG5zdHJpbmdEYXRhOlxuICB1c2VybmFtZTogYWRtaW5cbiAgcGFzc3dvcmQ6IG9wZW5zZXNhbWVgLFxuICAgIH0sXG4gIF0sXG5cbiAgJ2FwcC5rOHMuaW8vdjFiZXRhMS5BcHBsaWNhdGlvbic6IFtcbiAgICB7XG4gICAgICB0aXRsZTogJ0Jhc2ljIEFwcGxpY2F0aW9uJyxcbiAgICAgIGRlc2NyaXB0aW9uOiAnQSBiYXNpYyBBcHBsaWNhdGlvbiBleGFtcGxlIHdpdGggRGVwbG95bWVudCBhbmQgU2VydmljZScsXG4gICAgICB5YW1sOiBgYXBpVmVyc2lvbjogYXBwcy92MVxua2luZDogRGVwbG95bWVudFxubWV0YWRhdGE6XG4gIGxhYmVsczpcbiAgICBhcHA6IG5naW54XG4gIG5hbWU6IG5naW54LWRlcGxveW1lbnRcbiAgbmFtZXNwYWNlOiB5aW50ZXN0LW5zMVxuc3BlYzpcbiAgcmVwbGljYXM6IDFcbiAgc2VsZWN0b3I6XG4gICAgbWF0Y2hMYWJlbHM6XG4gICAgICBhcHA6IG5naW54XG4gIHRlbXBsYXRlOlxuICAgIG1ldGFkYXRhOlxuICAgICAgbGFiZWxzOlxuICAgICAgICBhcHA6IG5naW54XG4gICAgc3BlYzpcbiAgICAgIGNvbnRhaW5lcnM6XG4gICAgICAgIC0gaW1hZ2U6IG5naW54OjEuNy45XG4gICAgICAgICAgbmFtZTogbmdpbnhcbiAgICAgICAgICBwb3J0czpcbiAgICAgICAgICAgIC0gY29udGFpbmVyUG9ydDogODBcbi0tLVxuYXBpVmVyc2lvbjogdjFcbmtpbmQ6IFNlcnZpY2Vcbm1ldGFkYXRhOlxuICBsYWJlbHM6XG4gICAgYXBwOiBuZ2lueFxuICBuYW1lOiBuZ2lueFxuICBuYW1lc3BhY2U6IHlpbnRlc3QtbnMxXG5zcGVjOlxuICBwb3J0czpcbiAgICAtIHBvcnQ6IDgwXG4gICAgICBwcm90b2NvbDogVENQXG4gICAgICB0YXJnZXRQb3J0OiA4MFxuICBzZWxlY3RvcjpcbiAgICBhcHA6IG5naW54XG4gIHR5cGU6IENsdXN0ZXJJUGAsXG4gICAgfSxcbiAgXSxcbn07Il19
@@ -1,129 +0,0 @@
1
- import { HttpClient } from '@angular/common/http';
2
- import { Injectable, inject } from '@angular/core';
3
- import { BehaviorSubject, switchMap, shareReplay, catchError, of, tap, debounceTime, } from 'rxjs';
4
- import { API_GATEWAY } from '../constants/constants';
5
- import { WorkspaceHelperService } from './workspace-helper.service';
6
- import * as i0 from "@angular/core";
7
- export class KubernetesSchemaService {
8
- constructor() {
9
- this.http = inject(HttpClient);
10
- // 移除可选依赖注入,改为直接注入
11
- this.workspaceHelper = inject(WorkspaceHelperService);
12
- this.initialized = false;
13
- this.schemaCache = new Map();
14
- this.schemaCache$$ = new BehaviorSubject(new Map());
15
- }
16
- get definitions() {
17
- return this.schemaCache?.get(this.workspaceHelper?.baseParamsSnapshot.cluster)?.definitions;
18
- }
19
- // 延迟初始化方法
20
- ensureInitialized() {
21
- if (!this.initialized && this.workspaceHelper) {
22
- this.workspaceHelper.baseParams.subscribe(() => {
23
- this.clearCache();
24
- });
25
- this.initialized = true;
26
- }
27
- }
28
- /**
29
- * 获取当前集群的 OpenAPI schema
30
- */
31
- getOpenAPISchema() {
32
- this.ensureInitialized();
33
- // 如果没有 WorkspaceHelperService,返回 null
34
- if (!this.workspaceHelper) {
35
- console.warn('WorkspaceHelperService not available, cannot fetch OpenAPI schema');
36
- return of(null);
37
- }
38
- return this.workspaceHelper.baseParams.pipe(switchMap(workspace => {
39
- const cluster = workspace.cluster || 'global';
40
- const cached = this.schemaCache.get(cluster);
41
- if (cached) {
42
- return of(cached);
43
- }
44
- return this.fetchOpenAPISchema(cluster).pipe(tap(schema => {
45
- if (schema) {
46
- this.schemaCache.set(cluster, schema);
47
- this.schemaCache$$.next(new Map(this.schemaCache));
48
- }
49
- }), catchError(error => {
50
- console.error(`Failed to fetch OpenAPI schema for cluster ${cluster}:`, error);
51
- return of(null);
52
- }));
53
- }), shareReplay(1));
54
- }
55
- /**
56
- * 根据 Kubernetes 资源类型获取对应的 schema
57
- */
58
- getResourceSchema(apiVersion, kind) {
59
- return this.getOpenAPISchema().pipe(switchMap(openApiDoc => {
60
- if (!openApiDoc?.definitions) {
61
- return of(null);
62
- }
63
- // 尝试多种可能的 schema key 格式
64
- const possibleKeys = [
65
- `${apiVersion}.${kind}`,
66
- `${apiVersion}/${kind}`,
67
- kind,
68
- `io.k8s.api.${apiVersion.replace('/', '.')}.${kind}`,
69
- `io.k8s.api.${apiVersion.split('/')[0]}.${apiVersion.split('/')[1] || 'v1'}.${kind}`,
70
- ];
71
- for (const key of possibleKeys) {
72
- const schema = openApiDoc.definitions[key];
73
- if (schema) {
74
- return of(schema);
75
- }
76
- }
77
- // 如果没有找到精确匹配,尝试模糊匹配
78
- const fuzzyKey = Object.keys(openApiDoc.definitions).find(key => key.toLowerCase().includes(kind.toLowerCase()));
79
- if (fuzzyKey) {
80
- return of(openApiDoc.definitions[fuzzyKey]);
81
- }
82
- return of(null);
83
- }));
84
- }
85
- /**
86
- * 获取所有可用的资源定义
87
- */
88
- getAllResourceDefinitions() {
89
- return this.getOpenAPISchema().pipe(switchMap(openApiDoc => {
90
- return of(openApiDoc?.definitions || null);
91
- }));
92
- }
93
- /**
94
- * 清理缓存
95
- */
96
- clearCache() {
97
- this.schemaCache.clear();
98
- this.schemaCache$$.next(new Map());
99
- }
100
- /**
101
- * 获取缓存状态
102
- */
103
- getCacheStatus() {
104
- return this.schemaCache$$.asObservable();
105
- }
106
- /**
107
- * 检查 WorkspaceHelperService 是否可用
108
- */
109
- isWorkspaceHelperAvailable() {
110
- return !!this.workspaceHelper;
111
- }
112
- /**
113
- * 从 Kubernetes API 获取 OpenAPI schema
114
- */
115
- fetchOpenAPISchema(cluster) {
116
- const url = `${API_GATEWAY}/kubernetes/${cluster}/openapi/v2`;
117
- return this.http.get(url).pipe(debounceTime(500), catchError(error => {
118
- console.error(`Failed to fetch OpenAPI schema for cluster ${cluster}:`, error);
119
- return of(null);
120
- }));
121
- }
122
- static { this.ɵfac = function KubernetesSchemaService_Factory(t) { return new (t || KubernetesSchemaService)(); }; }
123
- static { this.ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: KubernetesSchemaService, factory: KubernetesSchemaService.ɵfac, providedIn: 'root' }); }
124
- }
125
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(KubernetesSchemaService, [{
126
- type: Injectable,
127
- args: [{ providedIn: 'root' }]
128
- }], null, null); })();
129
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia3ViZXJuZXRlcy1zY2hlbWEuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tbW9uL3NyYy9jb3JlL3NlcnZpY2VzL2t1YmVybmV0ZXMtc2NoZW1hLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFFTCxlQUFlLEVBQ2YsU0FBUyxFQUNULFdBQVcsRUFDWCxVQUFVLEVBQ1YsRUFBRSxFQUNGLEdBQUcsRUFDSCxZQUFZLEdBQ2IsTUFBTSxNQUFNLENBQUM7QUFFZCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFJckQsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7O0FBR3BFLE1BQU0sT0FBTyx1QkFBdUI7SUFEcEM7UUFFbUIsU0FBSSxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUMzQyxrQkFBa0I7UUFDVCxvQkFBZSxHQUFHLE1BQU0sQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDO1FBRWxELGdCQUFXLEdBQUcsS0FBSyxDQUFDO1FBQ1gsZ0JBQVcsR0FBRyxJQUFJLEdBQUcsRUFBNkIsQ0FBQztRQUNuRCxrQkFBYSxHQUFHLElBQUksZUFBZSxDQUVsRCxJQUFJLEdBQUcsRUFBRSxDQUFDLENBQUM7S0E2SmQ7SUEzSkMsSUFBSSxXQUFXO1FBQ2IsT0FBTyxJQUFJLENBQUMsV0FBVyxFQUFFLEdBQUcsQ0FDMUIsSUFBSSxDQUFDLGVBQWUsRUFBRSxrQkFBa0IsQ0FBQyxPQUFPLENBQ2pELEVBQUUsV0FBVyxDQUFDO0lBQ2pCLENBQUM7SUFFRCxVQUFVO0lBQ0YsaUJBQWlCO1FBQ3ZCLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxJQUFJ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QWtCLENBQUMsT0FBZTtRQUN4QyxNQUFNLEdBQUcsR0FBRyxHQUFHLFdBQVcsZUFBZSxPQUFPLGFBQWEsQ0FBQztRQUU5RCxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFvQixHQUFHLENBQUMsQ0FBQyxJQUFJLENBQy9DLFlBQVksQ0FBQyxHQUFHLENBQUMsRUFDakIsVUFBVSxDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQ2pCLE9BQU8sQ0FBQyxLQUFLLENBQ1gsOENBQThDLE9BQU8sR0FBRyxFQUN4RCxLQUFLLENBQ04sQ0FBQztZQUNGLE9BQU8sRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ2xCLENBQUMsQ0FBQyxDQUNILENBQUM7SUFDSixDQUFDO3dGQXJLVSx1QkFBdUI7dUVBQXZCLHVCQUF1QixXQUF2Qix1QkFBdUIsbUJBRFYsTUFBTTs7aUZBQ25CLHVCQUF1QjtjQURuQyxVQUFVO2VBQUMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IEluamVjdGFibGUsIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgT2JzZXJ2YWJsZSxcbiAgQmVoYXZpb3JTdWJqZWN0LFxuICBzd2l0Y2hNYXAsXG4gIHNoYXJlUmVwbGF5LFxuICBjYXRjaEVycm9yLFxuICBvZixcbiAgdGFwLFxuICBkZWJvdW5jZVRpbWUsXG59IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgeyBBUElfR0FURVdBWSB9IGZyb20gJy4uL2NvbnN0YW50cy9jb25zdGFudHMnO1xuaW1wb3J0IHsgT3BlbkFQSVYyRG9jdW1lbnQgfSBmcm9tICcuLi90eXBlcy9vcGVuYXBpJztcbmltcG9ydCB7IE9wZW5BUElWM1NjaGVtYU9iamVjdCB9IGZyb20gJy4uL3R5cGVzL3NjaGVtYSc7XG5cbmltcG9ydCB7IFdvcmtzcGFjZUhlbHBlclNlcnZpY2UgfSBmcm9tICcuL3dvcmtzcGFjZS1oZWxwZXIuc2VydmljZSc7XG5cbkBJbmplY3RhYmxlKHsgcHJvdmlkZWRJbjogJ3Jvb3QnIH0pXG5leHBvcnQgY2xhc3MgS3ViZXJuZXRlc1NjaGVtYVNlcnZpY2Uge1xuICBwcml2YXRlIHJlYWRvbmx5IGh0dHAgPSBpbmplY3QoSHR0cENsaWVudCk7XG4gIC8vIOenu+mZpOWPr+mAieS+nei1luazqOWFpe+8jOaUueS4uuebtOaOpeazqOWFpVxuICByZWFkb25seSB3b3Jrc3BhY2VIZWxwZXIgPSBpbmplY3QoV29ya3NwYWNlSGVscGVyU2VydmljZSk7XG5cbiAgcHJpdmF0ZSBpbml0aWFsaXplZCA9IGZhbHNlO1xuICBwcml2YXRlIHJlYWRvbmx5IHNjaGVtYUNhY2hlID0gbmV3IE1hcDxzdHJpbmcsIE9wZW5BUElWMkRvY3VtZW50PigpO1xuICBwcml2YXRlIHJlYWRvbmx5IHNjaGVtYUNhY2hlJCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFxuICAgIE1hcDxzdHJpbmcsIE9wZW5BUElWMkRvY3VtZW50PlxuICA+KG5ldyBNYXAoKSk7XG5cbiAgZ2V0IGRlZmluaXRpb25zKCkge1xuICAgIHJldHVybiB0aGlzLnNjaGVtYUNhY2hlPy5nZXQoXG4gICAgICB0aGlzLndvcmtzcGFjZUhlbHBlcj8uYmFzZVBhcmFtc1NuYXBzaG90LmNsdXN0ZXIsXG4gICAgKT8uZGVmaW5pdGlvbnM7XG4gIH1cblxuICAvLyDlu7bov5/liJ3lp4vljJbmlrnms5VcbiAgcHJpdmF0ZSBlbnN1cmVJbml0aWFsaXplZCgpIHtcbiAgICBpZiAoIXRoaXMuaW5pdGlhbGl6ZWQgJiYgdGhpcy53b3Jrc3BhY2VIZWxwZXIpIHtcbiAgICAgIHRoaXMud29ya3NwYWNlSGVscGVyLmJhc2VQYXJhbXMuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgdGhpcy5jbGVhckNhY2hlKCk7XG4gICAgICB9KTtcbiAgICAgIHRoaXMuaW5pdGlhbGl6ZWQgPSB0cnVlO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiDojrflj5blvZPliY3pm4bnvqTnmoQgT3BlbkFQSSBzY2hlbWFcbiAgICovXG4gIGdldE9wZW5BUElTY2hlbWEoKTogT2JzZXJ2YWJsZTxPcGVuQVBJVjJEb2N1bWVudCB8IG51bGw+IHtcbiAgICB0aGlzLmVuc3VyZUluaXRpYWxpemVkKCk7XG5cbiAgICAvLyDlpoLmnpzmsqHmnIkgV29ya3NwYWNlSGVscGVyU2VydmljZe+8jOi/lOWbniBudWxsXG4gICAgaWYgKCF0aGlzLndvcmtzcGFjZUhlbHBlcikge1xuICAgICAgY29uc29sZS53YXJuKFxuICAgICAgICAnV29ya3NwYWNlSGVscGVyU2VydmljZSBub3QgYXZhaWxhYmxlLCBjYW5ub3QgZmV0Y2ggT3BlbkFQSSBzY2hlbWEnLFxuICAgICAgKTtcbiAgICAgIHJldHVybiBvZihudWxsKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy53b3Jrc3BhY2VIZWxwZXIuYmFzZVBhcmFtcy5waXBlKFxuICAgICAgc3dpdGNoTWFwKHdvcmtzcGFjZSA9PiB7XG4gICAgICAgIGNvbnN0IGNsdXN0ZXIgPSB3b3Jrc3BhY2UuY2x1c3RlciB8fCAnZ2xvYmFsJztcbiAgICAgICAgY29uc3QgY2FjaGVkID0gdGhpcy5zY2hlbWFDYWNoZS5nZXQoY2x1c3Rlcik7XG5cbiAgICAgICAgaWYgKGNhY2hlZCkge1xuICAgICAgICAgIHJldHVybiBvZihjYWNoZWQpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHRoaXMuZmV0Y2hPcGVuQVBJU2NoZW1hKGNsdXN0ZXIpLnBpcGUoXG4gICAgICAgICAgdGFwKHNjaGVtYSA9PiB7XG4gICAgICAgICAgICBpZiAoc2NoZW1hKSB7XG4gICAgICAgICAgICAgIHRoaXMuc2NoZW1hQ2FjaGUuc2V0KGNsdXN0ZXIsIHNjaGVtYSk7XG4gICAgICAgICAgICAgIHRoaXMuc2NoZW1hQ2FjaGUkJC5uZXh0KG5ldyBNYXAodGhpcy5zY2hlbWFDYWNoZSkpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pLFxuICAgICAgICAgIGNhdGNoRXJyb3IoZXJyb3IgPT4ge1xuICAgICAgICAgICAgY29uc29sZS5lcnJvcihcbiAgICAgICAgICAgICAgYEZhaWxlZCB0byBmZXRjaCBPcGVuQVBJIHNjaGVtYSBmb3IgY2x1c3RlciAke2NsdXN0ZXJ9OmAsXG4gICAgICAgICAgICAgIGVycm9yLFxuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIHJldHVybiBvZihudWxsKTtcbiAgICAgICAgICB9KSxcbiAgICAgICAgKTtcbiAgICAgIH0pLFxuICAgICAgc2hhcmVSZXBsYXkoMSksXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiDmoLnmja4gS3ViZXJuZXRlcyDotYTmupDnsbvlnovojrflj5blr7nlupTnmoQgc2NoZW1hXG4gICAqL1xuICBnZXRSZXNvdXJjZVNjaGVtYShcbiAgICBhcGlWZXJzaW9uOiBzdHJpbmcsXG4gICAga2luZDogc3RyaW5nLFxuICApOiBPYnNlcnZhYmxlPE9wZW5BUElWM1NjaGVtYU9iamVjdCB8IG51bGw+IHtcbiAgICByZXR1cm4gdGhpcy5nZXRPcGVuQVBJU2NoZW1hKCkucGlwZShcbiAgICAgIHN3aXRjaE1hcChvcGVuQXBpRG9jID0+IHtcbiAgICAgICAgaWYgKCFvcGVuQXBpRG9jPy5kZWZpbml0aW9ucykge1xuICAgICAgICAgIHJldHVybiBvZihudWxsKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIOWwneivleWkmuenjeWPr+iDveeahCBzY2hlbWEga2V5IOagvOW8j1xuICAgICAgICBjb25zdCBwb3NzaWJsZUtleXMgPSBbXG4gICAgICAgICAgYCR7YXBpVmVyc2lvbn0uJHtraW5kfWAsXG4gICAgICAgICAgYCR7YXBpVmVyc2lvbn0vJHtraW5kfWAsXG4gICAgICAgICAga2luZCxcbiAgICAgICAgICBgaW8uazhzLmFwaS4ke2FwaVZlcnNpb24ucmVwbGFjZSgnLycsICcuJyl9LiR7a2luZH1gLFxuICAgICAgICAgIGBpby5rOHMuYXBpLiR7YXBpVmVyc2lvbi5zcGxpdCgnLycpWzBdfS4ke2FwaVZlcnNpb24uc3BsaXQoJy8nKVsxXSB8fCAndjEnfS4ke2tpbmR9YCxcbiAgICAgICAgXTtcblxuICAgICAgICBmb3IgKGNvbnN0IGtleSBvZiBwb3NzaWJsZUtleXMpIHtcbiAgICAgICAgICBjb25zdCBzY2hlbWEgPSBvcGVuQXBpRG9jLmRlZmluaXRpb25zW2tleV07XG4gICAgICAgICAgaWYgKHNjaGVtYSkge1xuICAgICAgICAgICAgcmV0dXJuIG9mKHNjaGVtYSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLy8g5aaC5p6c5rKh5pyJ5om+5Yiw57K+56Gu5Yy56YWN77yM5bCd6K+V5qih57OK5Yy56YWNXG4gICAgICAgIGNvbnN0IGZ1enp5S2V5ID0gT2JqZWN0LmtleXMob3BlbkFwaURvYy5kZWZpbml0aW9ucykuZmluZChrZXkgPT5cbiAgICAgICAgICBrZXkudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhraW5kLnRvTG93ZXJDYXNlKCkpLFxuICAgICAgICApO1xuXG4gICAgICAgIGlmIChmdXp6eUtleSkge1xuICAgICAgICAgIHJldHVybiBvZihvcGVuQXBpRG9jLmRlZmluaXRpb25zW2Z1enp5S2V5XSk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gb2YobnVsbCk7XG4gICAgICB9KSxcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIOiOt+WPluaJgOacieWPr+eUqOeahOi1hOa6kOWumuS5iVxuICAgKi9cbiAgZ2V0QWxsUmVzb3VyY2VEZWZpbml0aW9ucygpOiBPYnNlcnZhYmxlPFJlY29yZDxcbiAgICBzdHJpbmcsXG4gICAgT3BlbkFQSVYzU2NoZW1hT2JqZWN0XG4gID4gfCBudWxsPiB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0T3BlbkFQSVNjaGVtYSgpLnBpcGUoXG4gICAgICBzd2l0Y2hNYXAob3BlbkFwaURvYyA9PiB7XG4gICAgICAgIHJldHVybiBvZihvcGVuQXBpRG9jPy5kZWZpbml0aW9ucyB8fCBudWxsKTtcbiAgICAgIH0pLFxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICog5riF55CG57yT5a2YXG4gICAqL1xuICBjbGVhckNhY2hlKCk6IHZvaWQge1xuICAgIHRoaXMuc2NoZW1hQ2FjaGUuY2xlYXIoKTtcbiAgICB0aGlzLnNjaGVtYUNhY2hlJCQubmV4dChuZXcgTWFwKCkpO1xuICB9XG5cbiAgLyoqXG4gICAqIOiOt+WPlue8k+WtmOeKtuaAgVxuICAgKi9cbiAgZ2V0Q2FjaGVTdGF0dXMoKTogT2JzZXJ2YWJsZTxNYXA8c3RyaW5nLCBPcGVuQVBJVjJEb2N1bWVudD4+IHtcbiAgICByZXR1cm4gdGhpcy5zY2hlbWFDYWNoZSQkLmFzT2JzZXJ2YWJsZSgpO1xuICB9XG5cbiAgLyoqXG4gICAqIOajgOafpSBXb3Jrc3BhY2VIZWxwZXJTZXJ2aWNlIOaYr+WQpuWPr+eUqFxuICAgKi9cbiAgaXNXb3Jrc3BhY2VIZWxwZXJBdmFpbGFibGUoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICEhdGhpcy53b3Jrc3BhY2VIZWxwZXI7XG4gIH1cblxuICAvKipcbiAgICog5LuOIEt1YmVybmV0ZXMgQVBJIOiOt+WPliBPcGVuQVBJIHNjaGVtYVxuICAgKi9cbiAgcHJpdmF0ZSBmZXRjaE9wZW5BUElTY2hlbWEoY2x1c3Rlcjogc3RyaW5nKTogT2JzZXJ2YWJsZTxPcGVuQVBJVjJEb2N1bWVudD4ge1xuICAgIGNvbnN0IHVybCA9IGAke0FQSV9HQVRFV0FZfS9rdWJlcm5ldGVzLyR7Y2x1c3Rlcn0vb3BlbmFwaS92MmA7XG5cbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxPcGVuQVBJVjJEb2N1bWVudD4odXJsKS5waXBlKFxuICAgICAgZGVib3VuY2VUaW1lKDUwMCksXG4gICAgICBjYXRjaEVycm9yKGVycm9yID0+IHtcbiAgICAgICAgY29uc29sZS5lcnJvcihcbiAgICAgICAgICBgRmFpbGVkIHRvIGZldGNoIE9wZW5BUEkgc2NoZW1hIGZvciBjbHVzdGVyICR7Y2x1c3Rlcn06YCxcbiAgICAgICAgICBlcnJvcixcbiAgICAgICAgKTtcbiAgICAgICAgcmV0dXJuIG9mKG51bGwpO1xuICAgICAgfSksXG4gICAgKTtcbiAgfVxufVxuIl19
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3BlbmFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tbW9uL3NyYy9jb3JlL3R5cGVzL29wZW5hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE9wZW5BUElWM1NjaGVtYU9iamVjdCB9IGZyb20gJy4vc2NoZW1hJztcblxuZXhwb3J0IGludGVyZmFjZSBPcGVuQVBJVjJEb2N1bWVudCB7XG4gIHN3YWdnZXI6IHN0cmluZztcbiAgaW5mbzoge1xuICAgIHRpdGxlOiBzdHJpbmc7XG4gICAgdmVyc2lvbjogc3RyaW5nO1xuICAgIGRlc2NyaXB0aW9uPzogc3RyaW5nO1xuICB9O1xuICBob3N0Pzogc3RyaW5nO1xuICBiYXNlUGF0aD86IHN0cmluZztcbiAgc2NoZW1lcz86IHN0cmluZ1tdO1xuICBjb25zdW1lcz86IHN0cmluZ1tdO1xuICBwcm9kdWNlcz86IHN0cmluZ1tdO1xuICBwYXRoczogUmVjb3JkPHN0cmluZywgYW55PjtcbiAgZGVmaW5pdGlvbnM6IFJlY29yZDxzdHJpbmcsIE9wZW5BUElWM1NjaGVtYU9iamVjdD47XG4gIHBhcmFtZXRlcnM/OiBSZWNvcmQ8c3RyaW5nLCBhbnk+O1xuICByZXNwb25zZXM/OiBSZWNvcmQ8c3RyaW5nLCBhbnk+O1xuICBzZWN1cml0eURlZmluaXRpb25zPzogUmVjb3JkPHN0cmluZywgYW55PjtcbiAgc2VjdXJpdHk/OiBhbnlbXTtcbiAgdGFncz86IGFueVtdO1xuICBleHRlcm5hbERvY3M/OiBhbnk7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2NoZW1hUHJvcGVydHkge1xuICBuYW1lOiBzdHJpbmc7XG4gIHR5cGU6IHN0cmluZztcbiAgZGVzY3JpcHRpb24/OiBzdHJpbmc7XG4gIHJlcXVpcmVkOiBib29sZWFuO1xuICBwcm9wZXJ0aWVzPzogeyBba2V5OiBzdHJpbmddOiBPcGVuQVBJVjNTY2hlbWFPYmplY3QgfTtcbiAgaXRlbXM/OiBPcGVuQVBJVjNTY2hlbWFPYmplY3Q7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2NoZW1hQnJlYWRjcnVtYiB7XG4gIG5hbWU6IHN0cmluZztcbiAgcGF0aDogc3RyaW5nW107XG4gIHNjaGVtYTogT3BlbkFQSVYzU2NoZW1hT2JqZWN0O1xufVxuIl19