@platform-mesh/portal-ui-lib 0.24.1 → 0.24.2

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.
@@ -241,7 +241,6 @@ class ResourceService {
241
241
  ],
242
242
  variables: variables,
243
243
  });
244
- console.log(listQuery.query);
245
244
  return this.apolloFactory
246
245
  .apollo(nodeContext, readFromParentKcpPath)
247
246
  .query({
@@ -1 +1 @@
1
- {"version":3,"file":"platform-mesh-portal-ui-lib-services.mjs","sources":["../../projects/lib/services/resource/gateway.service.ts","../../projects/lib/services/resource/apollo-factory.ts","../../projects/lib/services/resource/resource.service.ts","../../projects/lib/services/platform-mesh-portal-ui-lib-services.ts"],"sourcesContent":["import { ResourceNodeContext } from './resource-node-context';\nimport { Injectable, inject } from '@angular/core';\nimport { LuigiCoreService } from '@openmfp/portal-ui-lib';\n\n@Injectable({ providedIn: 'root' })\nexport class GatewayService {\n private luigiCoreService = inject(LuigiCoreService);\n\n public getGatewayUrl(\n nodeContext: ResourceNodeContext,\n readFromParentKcpPath = false,\n ) {\n const gatewayUrl = nodeContext.portalContext.crdGatewayApiUrl;\n const currentKcpPath = gatewayUrl.match(/\\/([^\\/]+)\\/graphql$/)?.[1] || '';\n return gatewayUrl?.replace(\n currentKcpPath,\n this.resolveKcpPath(nodeContext, readFromParentKcpPath),\n );\n }\n\n public updateCrdGatewayUrlWithEntityPath(kcpPath: string) {\n const gatewayUrl =\n this.luigiCoreService.getGlobalContext().portalContext.crdGatewayApiUrl;\n const kcpPathRegexp = /(.*\\/)[^/]+(?=\\/graphql$)/;\n this.luigiCoreService.getGlobalContext().portalContext.crdGatewayApiUrl =\n gatewayUrl.replace(kcpPathRegexp, `$1${kcpPath}`);\n }\n\n public resolveKcpPath(\n nodeContext: ResourceNodeContext,\n readFromParentKcpPath = false,\n ): string {\n const gatewayUrl = nodeContext.portalContext.crdGatewayApiUrl;\n\n let kcpPath = gatewayUrl.match(/\\/([^\\/]+)\\/graphql$/)?.[1] || '';\n if (nodeContext.kcpPath) {\n kcpPath = nodeContext.kcpPath;\n }\n\n if (readFromParentKcpPath) {\n const lastIndex = kcpPath.lastIndexOf(':');\n if (lastIndex !== -1) {\n kcpPath = kcpPath.slice(0, lastIndex);\n }\n }\n\n return kcpPath;\n }\n}\n","import { GatewayService } from './gateway.service';\nimport { ResourceNodeContext } from './resource-node-context';\nimport { Injectable, inject } from '@angular/core';\nimport {\n type ApolloClientOptions,\n ApolloLink,\n Observable as ApolloObservable,\n FetchResult,\n InMemoryCache,\n Operation,\n split,\n} from '@apollo/client/core';\nimport { setContext } from '@apollo/client/link/context';\nimport { getMainDefinition } from '@apollo/client/utilities';\nimport { Apollo } from 'apollo-angular';\nimport { HttpLink } from 'apollo-angular/http';\nimport { print } from 'graphql';\nimport { Client, ClientOptions, createClient } from 'graphql-sse';\n\nclass SSELink extends ApolloLink {\n private client: Client;\n\n constructor(options: ClientOptions) {\n super();\n this.client = createClient(options);\n }\n\n public override request(operation: Operation): ApolloObservable<FetchResult> {\n return new ApolloObservable((sink) => {\n return this.client.subscribe(\n { ...operation, query: print(operation.query) },\n {\n next: sink.next.bind(sink),\n complete: sink.complete.bind(sink),\n error: sink.error.bind(sink),\n },\n );\n });\n }\n}\n\nconst noopZone = {\n run: (fn: any) => fn(),\n runOutsideAngular: (fn: any) => fn(),\n} as any;\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ApolloFactory {\n private httpLink = inject(HttpLink);\n private gatewayService = inject(GatewayService);\n\n public readonly apollo = (\n nodeContext: ResourceNodeContext,\n readFromParentKcpPath = false,\n ): Apollo =>\n new Apollo(\n noopZone,\n this.createApolloOptions(nodeContext, readFromParentKcpPath),\n );\n\n private createApolloOptions(\n nodeContext: ResourceNodeContext,\n readFromParentKcpPath = false,\n ): ApolloClientOptions<any> {\n const contextLink = setContext(() => {\n return {\n uri: () =>\n this.gatewayService.getGatewayUrl(nodeContext, readFromParentKcpPath),\n headers: {\n Authorization: `Bearer ${nodeContext.token}`,\n Accept: 'charset=utf-8',\n },\n };\n });\n\n const splitClient = split(\n ({ query }) => {\n const definition = getMainDefinition(query);\n return (\n definition.kind === 'OperationDefinition' &&\n definition.operation === 'subscription'\n );\n },\n new SSELink({\n url: () =>\n this.gatewayService.getGatewayUrl(nodeContext, readFromParentKcpPath),\n headers: () => ({\n Authorization: `Bearer ${nodeContext.token}`,\n }),\n }),\n this.httpLink.create({}),\n );\n\n const link = ApolloLink.from([contextLink, splitClient]);\n const cache = new InMemoryCache();\n\n return {\n link,\n cache,\n };\n }\n}\n","import { ApolloFactory } from './apollo-factory';\nimport { ResourceNodeContext } from './resource-node-context';\nimport { Injectable, inject } from '@angular/core';\nimport { TypedDocumentNode } from '@apollo/client/core';\nimport { LuigiCoreService } from '@openmfp/portal-ui-lib';\nimport {\n AccountInfo,\n Resource,\n ResourceDefinition,\n ResourceListResult,\n ResourceOperationTypeMap,\n ResourceSubscriptionResult,\n} from '@platform-mesh/portal-ui-lib/models';\nimport {\n capitalize,\n getValueByPath,\n replaceDotsAndHyphensWithUnderscores,\n stripTypename,\n} from '@platform-mesh/portal-ui-lib/utils';\nimport { gql } from 'apollo-angular';\nimport * as gqlBuilder from 'gql-query-builder';\nimport VariableOptions from 'gql-query-builder/build/VariableOptions';\nimport { EMPTY, Observable, throwError } from 'rxjs';\nimport { catchError, map, startWith, switchMap } from 'rxjs/operators';\n\ninterface ResourceResponseError extends Record<string, any> {\n message: string;\n}\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ResourceService {\n private apolloFactory = inject(ApolloFactory);\n private luigiCoreService = inject(LuigiCoreService);\n\n read(\n resourceId: string,\n operation: string,\n kind: string,\n fieldsOrRawQuery: any[] | string,\n nodeContext: ResourceNodeContext,\n readFromParentKcpPath: boolean = true,\n ): Observable<Resource> {\n const isNamespacedResource = this.isNamespacedResource(nodeContext);\n let query: string | TypedDocumentNode<any, any> = this.resolveReadQuery(\n fieldsOrRawQuery,\n kind,\n resourceId,\n isNamespacedResource ? nodeContext.namespaceId : undefined,\n operation,\n );\n\n try {\n query = gql`\n ${query}\n `;\n } catch (error) {\n this.luigiCoreService.showAlert({\n text: `Could not read a resource: ${resourceId}. Wrong read query: <br/><br/> ${query}`,\n type: 'error',\n });\n return EMPTY;\n }\n\n return this.apolloFactory\n .apollo(nodeContext, readFromParentKcpPath)\n .query({\n query,\n variables: {\n name: resourceId,\n ...(isNamespacedResource && {\n namespace: nodeContext.namespaceId,\n }),\n },\n })\n .pipe(\n map((res) => res.data?.[operation]?.[kind]),\n catchError((error) => {\n this.alertErrors(error);\n console.error('Error executing GraphQL query.', error);\n return error;\n }),\n );\n }\n\n private resolveReadQuery(\n fieldsOrRawQuery: any[] | string,\n kind: string,\n resourceId: string,\n namespace: string | undefined,\n operation: string,\n ) {\n if (fieldsOrRawQuery instanceof Array) {\n return (\n gqlBuilder\n .query({\n operation: kind,\n variables: {\n name: { value: resourceId, type: 'String!' },\n ...(namespace && {\n namespace: { value: namespace, type: 'String' },\n }),\n },\n fields: fieldsOrRawQuery,\n })\n .query.replace(kind, `${operation} { ${kind}`)\n .trim() + '}'\n );\n } else {\n return fieldsOrRawQuery;\n }\n }\n\n list(\n operation: string,\n fieldsOrRawQuery: any[] | string,\n nodeContext: ResourceNodeContext,\n readFromParentKcpPath: boolean = false,\n ): Observable<Resource[] | any> {\n return fieldsOrRawQuery instanceof Array\n ? this.listWithFields(\n operation,\n fieldsOrRawQuery,\n nodeContext,\n readFromParentKcpPath,\n )\n : this.listWithRawQuery(\n operation,\n fieldsOrRawQuery,\n nodeContext,\n readFromParentKcpPath,\n );\n }\n\n private listWithFields(\n operation: string,\n fields: any[],\n nodeContext: ResourceNodeContext,\n readFromParentKcpPath: boolean,\n ): Observable<Resource[] | any> {\n const resourceDefinition = nodeContext.resourceDefinition;\n if (!resourceDefinition) {\n return throwError(() => new Error('Resource definition is required'));\n }\n\n const isNamespacedResource = this.isNamespacedResource(nodeContext);\n const variables = {\n ...(isNamespacedResource && {\n namespace: { type: 'String', value: nodeContext.namespaceId },\n }),\n };\n\n fields.push({ metadata: ['uid'] });\n\n return this.initialListQuery(\n resourceDefinition,\n fields,\n nodeContext,\n readFromParentKcpPath,\n variables,\n ).pipe(\n switchMap((value: ResourceListResult) => {\n const { resourceVersion, items } = value;\n const subscriptionQuery = gqlBuilder.subscription({\n operation: operation,\n fields: ['type', { object: fields }],\n variables: {\n ...variables,\n resourceVersion: { type: 'String', value: resourceVersion },\n },\n });\n\n const result = new Map<string, Resource>(\n items.map((item) => [item.metadata.uid!, item]),\n );\n\n return this.apolloFactory\n .apollo(nodeContext, readFromParentKcpPath)\n .subscribe({\n query: gql`\n ${subscriptionQuery.query}\n `,\n variables: subscriptionQuery.variables,\n })\n .pipe(\n map((res: any): Resource[] => {\n const resourceResult: ResourceSubscriptionResult | undefined =\n getValueByPath(res.data, operation);\n\n if (!resourceResult) {\n return Array.from(result.values());\n }\n\n const { type, object } = resourceResult;\n if (type === ResourceOperationTypeMap.ADDED) {\n result.set(object.metadata.uid!, object);\n } else if (type === ResourceOperationTypeMap.MODIFIED) {\n result.set(object.metadata.uid!, object);\n } else if (type === ResourceOperationTypeMap.DELETED) {\n result.delete(object.metadata.uid!);\n }\n\n return Array.from(result.values());\n }),\n startWith(Array.from(result.values())),\n catchError((error) => {\n this.alertErrors(error);\n console.error('Error executing GraphQL query.', error);\n return error;\n }),\n );\n }),\n );\n }\n\n private initialListQuery(\n resourceDefinition: ResourceDefinition,\n fields: any[],\n nodeContext: ResourceNodeContext,\n readFromParentKcpPath: boolean,\n variables?: VariableOptions,\n ): Observable<ResourceListResult> {\n const operation = replaceDotsAndHyphensWithUnderscores(\n resourceDefinition.group,\n );\n const kind = capitalize(resourceDefinition.plural);\n const listQuery = gqlBuilder.query({\n operation,\n fields: [\n {\n [kind]: ['resourceVersion', { items: fields }],\n },\n ],\n variables: variables,\n });\n\n console.log(listQuery.query);\n\n return this.apolloFactory\n .apollo(nodeContext, readFromParentKcpPath)\n .query({\n query: gql`\n ${listQuery.query}\n `,\n variables: listQuery.variables,\n })\n .pipe(\n map((res: any): ResourceListResult => {\n const resourceListResult = getValueByPath<any, any>(\n res.data,\n `${operation}.${kind}`,\n );\n if (!resourceListResult) {\n throw new Error('Resource list result not found');\n }\n\n return resourceListResult;\n }),\n );\n }\n\n private listWithRawQuery(\n operation: string,\n rawQuery: string,\n nodeContext: ResourceNodeContext,\n readFromParentKcpPath: boolean,\n ): Observable<any> {\n const isNamespacedResource = this.isNamespacedResource(nodeContext);\n const variables = {\n ...(isNamespacedResource && {\n namespace: { type: 'String', value: nodeContext.namespaceId },\n }),\n };\n\n return this.apolloFactory\n .apollo(nodeContext, readFromParentKcpPath)\n .query({\n query: gql`\n ${rawQuery}\n `,\n variables: this.normalizeGqlBuilderVariables(variables),\n })\n .pipe(\n map(\n (res: any): Resource[] =>\n getValueByPath<any, any>(res.data, operation) ?? [],\n ),\n catchError((error) => {\n this.alertErrors(error);\n console.error('Error executing GraphQL query.', error);\n return error;\n }),\n );\n }\n\n private alertErrors(res: ResourceResponseError) {\n this.luigiCoreService.showAlert({\n text: res.message,\n type: 'error',\n });\n }\n\n delete(\n resource: Resource,\n resourceDefinition: ResourceDefinition,\n nodeContext: ResourceNodeContext,\n ) {\n const group = replaceDotsAndHyphensWithUnderscores(\n resourceDefinition.group,\n );\n const isNamespacedResource = this.isNamespacedResource(nodeContext);\n const kind = resourceDefinition.kind;\n\n const mutation = gqlBuilder.mutation({\n operation: group,\n fields: [\n {\n operation: `delete${kind}`,\n variables: {\n name: { type: 'String!', value: resource.metadata.name },\n ...(isNamespacedResource && {\n namespace: { type: 'String', value: nodeContext.namespaceId },\n }),\n },\n fields: [],\n },\n ],\n });\n\n return this.apolloFactory\n .apollo(nodeContext)\n .mutate<void>({\n mutation: gql`\n ${mutation.query}\n `,\n variables: mutation.variables,\n })\n .pipe(\n catchError((error) => {\n this.alertErrors(error);\n console.error('Error executing GraphQL query.', error);\n return error;\n }),\n );\n }\n\n create(\n resource: Resource,\n resourceDefinition: ResourceDefinition,\n nodeContext: ResourceNodeContext,\n ) {\n const isNamespacedResource = this.isNamespacedResource(nodeContext);\n const group = replaceDotsAndHyphensWithUnderscores(\n resourceDefinition.group,\n );\n const kind = resourceDefinition.kind;\n const namespace = nodeContext.namespaceId;\n\n const mutation = gqlBuilder.mutation({\n operation: group,\n fields: [\n {\n operation: `create${kind}`,\n variables: {\n ...(isNamespacedResource && {\n namespace: { type: 'String', value: namespace },\n }),\n object: { type: `${kind}Input!`, value: resource },\n },\n fields: ['__typename'],\n },\n ],\n });\n\n return this.apolloFactory\n .apollo(nodeContext)\n .mutate({\n mutation: gql`\n ${mutation.query}\n `,\n fetchPolicy: 'no-cache',\n variables: mutation.variables,\n })\n .pipe(\n catchError((error) => {\n this.alertErrors(error);\n console.error('Error executing GraphQL query.', error);\n return error;\n }),\n );\n }\n\n update(\n resource: Resource,\n resourceDefinition: ResourceDefinition,\n nodeContext: ResourceNodeContext,\n ) {\n const isNamespacedResource = this.isNamespacedResource(nodeContext);\n const group = replaceDotsAndHyphensWithUnderscores(\n resourceDefinition.group,\n );\n const kind = resourceDefinition.kind;\n const namespace = nodeContext.namespaceId;\n\n const cleanResource = stripTypename(resource);\n\n const mutation = gqlBuilder.mutation({\n operation: group,\n fields: [\n {\n operation: `update${kind}`,\n variables: {\n ...(isNamespacedResource && {\n namespace: { type: 'String', value: namespace },\n }),\n name: { type: 'String!', value: resource.metadata.name },\n object: {\n type: `${kind}Input!`,\n value: cleanResource,\n },\n },\n fields: ['__typename'],\n },\n ],\n });\n\n return this.apolloFactory\n .apollo(nodeContext)\n .mutate({\n mutation: gql`\n ${mutation.query}\n `,\n fetchPolicy: 'no-cache',\n variables: mutation.variables,\n })\n .pipe(\n catchError((error) => {\n this.alertErrors(error);\n console.error('Error executing GraphQL query.', error);\n return error;\n }),\n );\n }\n\n readAccountInfo(nodeContext: ResourceNodeContext): Observable<AccountInfo> {\n return this.apolloFactory\n .apollo(nodeContext)\n .query<string>({\n query: gql`\n {\n core_platform_mesh_io {\n AccountInfo(name: \"account\") {\n metadata {\n name\n annotations\n }\n spec {\n clusterInfo {\n ca\n }\n organization {\n originClusterId\n }\n }\n }\n }\n }\n `,\n })\n .pipe(\n map((res: any) => {\n return res.data.core_platform_mesh_io.AccountInfo;\n }),\n catchError((error) => {\n this.alertErrors(error);\n console.error('Error executing GraphQL query.', error);\n return error;\n }),\n );\n }\n\n private isNamespacedResource(nodeContext: ResourceNodeContext) {\n return nodeContext?.resourceDefinition?.scope === 'Namespaced';\n }\n\n private normalizeGqlBuilderVariables(\n variables: VariableOptions,\n ): Record<string, any> {\n return Object.fromEntries(\n Object.entries(variables).map(([key, value]) => [key, value.value]),\n );\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["ApolloObservable"],"mappings":"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"}
1
+ {"version":3,"file":"platform-mesh-portal-ui-lib-services.mjs","sources":["../../projects/lib/services/resource/gateway.service.ts","../../projects/lib/services/resource/apollo-factory.ts","../../projects/lib/services/resource/resource.service.ts","../../projects/lib/services/platform-mesh-portal-ui-lib-services.ts"],"sourcesContent":["import { ResourceNodeContext } from './resource-node-context';\nimport { Injectable, inject } from '@angular/core';\nimport { LuigiCoreService } from '@openmfp/portal-ui-lib';\n\n@Injectable({ providedIn: 'root' })\nexport class GatewayService {\n private luigiCoreService = inject(LuigiCoreService);\n\n public getGatewayUrl(\n nodeContext: ResourceNodeContext,\n readFromParentKcpPath = false,\n ) {\n const gatewayUrl = nodeContext.portalContext.crdGatewayApiUrl;\n const currentKcpPath = gatewayUrl.match(/\\/([^\\/]+)\\/graphql$/)?.[1] || '';\n return gatewayUrl?.replace(\n currentKcpPath,\n this.resolveKcpPath(nodeContext, readFromParentKcpPath),\n );\n }\n\n public updateCrdGatewayUrlWithEntityPath(kcpPath: string) {\n const gatewayUrl =\n this.luigiCoreService.getGlobalContext().portalContext.crdGatewayApiUrl;\n const kcpPathRegexp = /(.*\\/)[^/]+(?=\\/graphql$)/;\n this.luigiCoreService.getGlobalContext().portalContext.crdGatewayApiUrl =\n gatewayUrl.replace(kcpPathRegexp, `$1${kcpPath}`);\n }\n\n public resolveKcpPath(\n nodeContext: ResourceNodeContext,\n readFromParentKcpPath = false,\n ): string {\n const gatewayUrl = nodeContext.portalContext.crdGatewayApiUrl;\n\n let kcpPath = gatewayUrl.match(/\\/([^\\/]+)\\/graphql$/)?.[1] || '';\n if (nodeContext.kcpPath) {\n kcpPath = nodeContext.kcpPath;\n }\n\n if (readFromParentKcpPath) {\n const lastIndex = kcpPath.lastIndexOf(':');\n if (lastIndex !== -1) {\n kcpPath = kcpPath.slice(0, lastIndex);\n }\n }\n\n return kcpPath;\n }\n}\n","import { GatewayService } from './gateway.service';\nimport { ResourceNodeContext } from './resource-node-context';\nimport { Injectable, inject } from '@angular/core';\nimport {\n type ApolloClientOptions,\n ApolloLink,\n Observable as ApolloObservable,\n FetchResult,\n InMemoryCache,\n Operation,\n split,\n} from '@apollo/client/core';\nimport { setContext } from '@apollo/client/link/context';\nimport { getMainDefinition } from '@apollo/client/utilities';\nimport { Apollo } from 'apollo-angular';\nimport { HttpLink } from 'apollo-angular/http';\nimport { print } from 'graphql';\nimport { Client, ClientOptions, createClient } from 'graphql-sse';\n\nclass SSELink extends ApolloLink {\n private client: Client;\n\n constructor(options: ClientOptions) {\n super();\n this.client = createClient(options);\n }\n\n public override request(operation: Operation): ApolloObservable<FetchResult> {\n return new ApolloObservable((sink) => {\n return this.client.subscribe(\n { ...operation, query: print(operation.query) },\n {\n next: sink.next.bind(sink),\n complete: sink.complete.bind(sink),\n error: sink.error.bind(sink),\n },\n );\n });\n }\n}\n\nconst noopZone = {\n run: (fn: any) => fn(),\n runOutsideAngular: (fn: any) => fn(),\n} as any;\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ApolloFactory {\n private httpLink = inject(HttpLink);\n private gatewayService = inject(GatewayService);\n\n public readonly apollo = (\n nodeContext: ResourceNodeContext,\n readFromParentKcpPath = false,\n ): Apollo =>\n new Apollo(\n noopZone,\n this.createApolloOptions(nodeContext, readFromParentKcpPath),\n );\n\n private createApolloOptions(\n nodeContext: ResourceNodeContext,\n readFromParentKcpPath = false,\n ): ApolloClientOptions<any> {\n const contextLink = setContext(() => {\n return {\n uri: () =>\n this.gatewayService.getGatewayUrl(nodeContext, readFromParentKcpPath),\n headers: {\n Authorization: `Bearer ${nodeContext.token}`,\n Accept: 'charset=utf-8',\n },\n };\n });\n\n const splitClient = split(\n ({ query }) => {\n const definition = getMainDefinition(query);\n return (\n definition.kind === 'OperationDefinition' &&\n definition.operation === 'subscription'\n );\n },\n new SSELink({\n url: () =>\n this.gatewayService.getGatewayUrl(nodeContext, readFromParentKcpPath),\n headers: () => ({\n Authorization: `Bearer ${nodeContext.token}`,\n }),\n }),\n this.httpLink.create({}),\n );\n\n const link = ApolloLink.from([contextLink, splitClient]);\n const cache = new InMemoryCache();\n\n return {\n link,\n cache,\n };\n }\n}\n","import { ApolloFactory } from './apollo-factory';\nimport { ResourceNodeContext } from './resource-node-context';\nimport { Injectable, inject } from '@angular/core';\nimport { TypedDocumentNode } from '@apollo/client/core';\nimport { LuigiCoreService } from '@openmfp/portal-ui-lib';\nimport {\n AccountInfo,\n Resource,\n ResourceDefinition,\n ResourceListResult,\n ResourceOperationTypeMap,\n ResourceSubscriptionResult,\n} from '@platform-mesh/portal-ui-lib/models';\nimport {\n capitalize,\n getValueByPath,\n replaceDotsAndHyphensWithUnderscores,\n stripTypename,\n} from '@platform-mesh/portal-ui-lib/utils';\nimport { gql } from 'apollo-angular';\nimport * as gqlBuilder from 'gql-query-builder';\nimport VariableOptions from 'gql-query-builder/build/VariableOptions';\nimport { EMPTY, Observable, throwError } from 'rxjs';\nimport { catchError, map, startWith, switchMap } from 'rxjs/operators';\n\ninterface ResourceResponseError extends Record<string, any> {\n message: string;\n}\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ResourceService {\n private apolloFactory = inject(ApolloFactory);\n private luigiCoreService = inject(LuigiCoreService);\n\n read(\n resourceId: string,\n operation: string,\n kind: string,\n fieldsOrRawQuery: any[] | string,\n nodeContext: ResourceNodeContext,\n readFromParentKcpPath: boolean = true,\n ): Observable<Resource> {\n const isNamespacedResource = this.isNamespacedResource(nodeContext);\n let query: string | TypedDocumentNode<any, any> = this.resolveReadQuery(\n fieldsOrRawQuery,\n kind,\n resourceId,\n isNamespacedResource ? nodeContext.namespaceId : undefined,\n operation,\n );\n\n try {\n query = gql`\n ${query}\n `;\n } catch (error) {\n this.luigiCoreService.showAlert({\n text: `Could not read a resource: ${resourceId}. Wrong read query: <br/><br/> ${query}`,\n type: 'error',\n });\n return EMPTY;\n }\n\n return this.apolloFactory\n .apollo(nodeContext, readFromParentKcpPath)\n .query({\n query,\n variables: {\n name: resourceId,\n ...(isNamespacedResource && {\n namespace: nodeContext.namespaceId,\n }),\n },\n })\n .pipe(\n map((res) => res.data?.[operation]?.[kind]),\n catchError((error) => {\n this.alertErrors(error);\n console.error('Error executing GraphQL query.', error);\n return error;\n }),\n );\n }\n\n private resolveReadQuery(\n fieldsOrRawQuery: any[] | string,\n kind: string,\n resourceId: string,\n namespace: string | undefined,\n operation: string,\n ) {\n if (fieldsOrRawQuery instanceof Array) {\n return (\n gqlBuilder\n .query({\n operation: kind,\n variables: {\n name: { value: resourceId, type: 'String!' },\n ...(namespace && {\n namespace: { value: namespace, type: 'String' },\n }),\n },\n fields: fieldsOrRawQuery,\n })\n .query.replace(kind, `${operation} { ${kind}`)\n .trim() + '}'\n );\n } else {\n return fieldsOrRawQuery;\n }\n }\n\n list(\n operation: string,\n fieldsOrRawQuery: any[] | string,\n nodeContext: ResourceNodeContext,\n readFromParentKcpPath: boolean = false,\n ): Observable<Resource[] | any> {\n return fieldsOrRawQuery instanceof Array\n ? this.listWithFields(\n operation,\n fieldsOrRawQuery,\n nodeContext,\n readFromParentKcpPath,\n )\n : this.listWithRawQuery(\n operation,\n fieldsOrRawQuery,\n nodeContext,\n readFromParentKcpPath,\n );\n }\n\n private listWithFields(\n operation: string,\n fields: any[],\n nodeContext: ResourceNodeContext,\n readFromParentKcpPath: boolean,\n ): Observable<Resource[] | any> {\n const resourceDefinition = nodeContext.resourceDefinition;\n if (!resourceDefinition) {\n return throwError(() => new Error('Resource definition is required'));\n }\n\n const isNamespacedResource = this.isNamespacedResource(nodeContext);\n const variables = {\n ...(isNamespacedResource && {\n namespace: { type: 'String', value: nodeContext.namespaceId },\n }),\n };\n\n fields.push({ metadata: ['uid'] });\n\n return this.initialListQuery(\n resourceDefinition,\n fields,\n nodeContext,\n readFromParentKcpPath,\n variables,\n ).pipe(\n switchMap((value: ResourceListResult) => {\n const { resourceVersion, items } = value;\n const subscriptionQuery = gqlBuilder.subscription({\n operation: operation,\n fields: ['type', { object: fields }],\n variables: {\n ...variables,\n resourceVersion: { type: 'String', value: resourceVersion },\n },\n });\n\n const result = new Map<string, Resource>(\n items.map((item) => [item.metadata.uid!, item]),\n );\n\n return this.apolloFactory\n .apollo(nodeContext, readFromParentKcpPath)\n .subscribe({\n query: gql`\n ${subscriptionQuery.query}\n `,\n variables: subscriptionQuery.variables,\n })\n .pipe(\n map((res: any): Resource[] => {\n const resourceResult: ResourceSubscriptionResult | undefined =\n getValueByPath(res.data, operation);\n\n if (!resourceResult) {\n return Array.from(result.values());\n }\n\n const { type, object } = resourceResult;\n if (type === ResourceOperationTypeMap.ADDED) {\n result.set(object.metadata.uid!, object);\n } else if (type === ResourceOperationTypeMap.MODIFIED) {\n result.set(object.metadata.uid!, object);\n } else if (type === ResourceOperationTypeMap.DELETED) {\n result.delete(object.metadata.uid!);\n }\n\n return Array.from(result.values());\n }),\n startWith(Array.from(result.values())),\n catchError((error) => {\n this.alertErrors(error);\n console.error('Error executing GraphQL query.', error);\n return error;\n }),\n );\n }),\n );\n }\n\n private initialListQuery(\n resourceDefinition: ResourceDefinition,\n fields: any[],\n nodeContext: ResourceNodeContext,\n readFromParentKcpPath: boolean,\n variables?: VariableOptions,\n ): Observable<ResourceListResult> {\n const operation = replaceDotsAndHyphensWithUnderscores(\n resourceDefinition.group,\n );\n const kind = capitalize(resourceDefinition.plural);\n const listQuery = gqlBuilder.query({\n operation,\n fields: [\n {\n [kind]: ['resourceVersion', { items: fields }],\n },\n ],\n variables: variables,\n });\n\n return this.apolloFactory\n .apollo(nodeContext, readFromParentKcpPath)\n .query({\n query: gql`\n ${listQuery.query}\n `,\n variables: listQuery.variables,\n })\n .pipe(\n map((res: any): ResourceListResult => {\n const resourceListResult = getValueByPath<any, any>(\n res.data,\n `${operation}.${kind}`,\n );\n if (!resourceListResult) {\n throw new Error('Resource list result not found');\n }\n\n return resourceListResult;\n }),\n );\n }\n\n private listWithRawQuery(\n operation: string,\n rawQuery: string,\n nodeContext: ResourceNodeContext,\n readFromParentKcpPath: boolean,\n ): Observable<any> {\n const isNamespacedResource = this.isNamespacedResource(nodeContext);\n const variables = {\n ...(isNamespacedResource && {\n namespace: { type: 'String', value: nodeContext.namespaceId },\n }),\n };\n\n return this.apolloFactory\n .apollo(nodeContext, readFromParentKcpPath)\n .query({\n query: gql`\n ${rawQuery}\n `,\n variables: this.normalizeGqlBuilderVariables(variables),\n })\n .pipe(\n map(\n (res: any): Resource[] =>\n getValueByPath<any, any>(res.data, operation) ?? [],\n ),\n catchError((error) => {\n this.alertErrors(error);\n console.error('Error executing GraphQL query.', error);\n return error;\n }),\n );\n }\n\n private alertErrors(res: ResourceResponseError) {\n this.luigiCoreService.showAlert({\n text: res.message,\n type: 'error',\n });\n }\n\n delete(\n resource: Resource,\n resourceDefinition: ResourceDefinition,\n nodeContext: ResourceNodeContext,\n ) {\n const group = replaceDotsAndHyphensWithUnderscores(\n resourceDefinition.group,\n );\n const isNamespacedResource = this.isNamespacedResource(nodeContext);\n const kind = resourceDefinition.kind;\n\n const mutation = gqlBuilder.mutation({\n operation: group,\n fields: [\n {\n operation: `delete${kind}`,\n variables: {\n name: { type: 'String!', value: resource.metadata.name },\n ...(isNamespacedResource && {\n namespace: { type: 'String', value: nodeContext.namespaceId },\n }),\n },\n fields: [],\n },\n ],\n });\n\n return this.apolloFactory\n .apollo(nodeContext)\n .mutate<void>({\n mutation: gql`\n ${mutation.query}\n `,\n variables: mutation.variables,\n })\n .pipe(\n catchError((error) => {\n this.alertErrors(error);\n console.error('Error executing GraphQL query.', error);\n return error;\n }),\n );\n }\n\n create(\n resource: Resource,\n resourceDefinition: ResourceDefinition,\n nodeContext: ResourceNodeContext,\n ) {\n const isNamespacedResource = this.isNamespacedResource(nodeContext);\n const group = replaceDotsAndHyphensWithUnderscores(\n resourceDefinition.group,\n );\n const kind = resourceDefinition.kind;\n const namespace = nodeContext.namespaceId;\n\n const mutation = gqlBuilder.mutation({\n operation: group,\n fields: [\n {\n operation: `create${kind}`,\n variables: {\n ...(isNamespacedResource && {\n namespace: { type: 'String', value: namespace },\n }),\n object: { type: `${kind}Input!`, value: resource },\n },\n fields: ['__typename'],\n },\n ],\n });\n\n return this.apolloFactory\n .apollo(nodeContext)\n .mutate({\n mutation: gql`\n ${mutation.query}\n `,\n fetchPolicy: 'no-cache',\n variables: mutation.variables,\n })\n .pipe(\n catchError((error) => {\n this.alertErrors(error);\n console.error('Error executing GraphQL query.', error);\n return error;\n }),\n );\n }\n\n update(\n resource: Resource,\n resourceDefinition: ResourceDefinition,\n nodeContext: ResourceNodeContext,\n ) {\n const isNamespacedResource = this.isNamespacedResource(nodeContext);\n const group = replaceDotsAndHyphensWithUnderscores(\n resourceDefinition.group,\n );\n const kind = resourceDefinition.kind;\n const namespace = nodeContext.namespaceId;\n\n const cleanResource = stripTypename(resource);\n\n const mutation = gqlBuilder.mutation({\n operation: group,\n fields: [\n {\n operation: `update${kind}`,\n variables: {\n ...(isNamespacedResource && {\n namespace: { type: 'String', value: namespace },\n }),\n name: { type: 'String!', value: resource.metadata.name },\n object: {\n type: `${kind}Input!`,\n value: cleanResource,\n },\n },\n fields: ['__typename'],\n },\n ],\n });\n\n return this.apolloFactory\n .apollo(nodeContext)\n .mutate({\n mutation: gql`\n ${mutation.query}\n `,\n fetchPolicy: 'no-cache',\n variables: mutation.variables,\n })\n .pipe(\n catchError((error) => {\n this.alertErrors(error);\n console.error('Error executing GraphQL query.', error);\n return error;\n }),\n );\n }\n\n readAccountInfo(nodeContext: ResourceNodeContext): Observable<AccountInfo> {\n return this.apolloFactory\n .apollo(nodeContext)\n .query<string>({\n query: gql`\n {\n core_platform_mesh_io {\n AccountInfo(name: \"account\") {\n metadata {\n name\n annotations\n }\n spec {\n clusterInfo {\n ca\n }\n organization {\n originClusterId\n }\n }\n }\n }\n }\n `,\n })\n .pipe(\n map((res: any) => {\n return res.data.core_platform_mesh_io.AccountInfo;\n }),\n catchError((error) => {\n this.alertErrors(error);\n console.error('Error executing GraphQL query.', error);\n return error;\n }),\n );\n }\n\n private isNamespacedResource(nodeContext: ResourceNodeContext) {\n return nodeContext?.resourceDefinition?.scope === 'Namespaced';\n }\n\n private normalizeGqlBuilderVariables(\n variables: VariableOptions,\n ): Record<string, any> {\n return Object.fromEntries(\n Object.entries(variables).map(([key, value]) => [key, value.value]),\n );\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["ApolloObservable"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@platform-mesh/portal-ui-lib",
3
- "version": "0.24.1",
3
+ "version": "0.24.2",
4
4
  "repository": {
5
5
  "url": "git+https://github.com/platform-mesh/portal-ui-lib.git"
6
6
  },