@memberjunction/graphql-dataprovider 2.102.0 → 2.104.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.
package/dist/index.d.cts CHANGED
@@ -3,6 +3,7 @@ export { gql } from 'graphql-request';
3
3
  import { ProviderConfigDataBase, ProviderBase, IEntityDataProvider, IMetadataProvider, IRunViewProvider, IRunReportProvider, IRunQueryProvider, UserInfo, RunReportParams, RunReportResult, RunQueryParams, RunQueryResult, RunViewParams, RunViewResult, EntityInfo, ProviderType, CompositeKey, RecordChange, RecordDependency, KeyValuePair, PotentialDuplicateRequest, PotentialDuplicateResponse, RecordMergeRequest, EntityMergeOptions, RecordMergeResult, BaseEntity, EntitySaveOptions, EntityDeleteOptions, DatasetItemFilterType, DatasetResultType, DatasetStatusResultType, TransactionGroupBase, EntityRecordNameInput, EntityRecordNameResult, ILocalStorageProvider, TransactionResult } from '@memberjunction/core';
4
4
  import { UserViewEntityExtended } from '@memberjunction/core-entities';
5
5
  import { Observable } from 'rxjs';
6
+ import { ExecuteAgentParams, ExecuteAgentResult } from '@memberjunction/ai-core-plus';
6
7
  import { ActionParam, ActionResult, EntityActionInvocationParams, EntityActionResult } from '@memberjunction/actions-base';
7
8
 
8
9
  /**
@@ -97,6 +98,9 @@ declare class GraphQLAIClient {
97
98
  * This method invokes an AI agent on the server through GraphQL and returns the result.
98
99
  * The agent can maintain conversation context across multiple interactions.
99
100
  *
101
+ * If a progress callback is provided in params.onProgress, this method will subscribe
102
+ * to real-time progress updates from the GraphQL server and forward them to the callback.
103
+ *
100
104
  * @param params The parameters for running the AI agent
101
105
  * @returns A Promise that resolves to a RunAIAgentResult object
102
106
  *
@@ -108,7 +112,10 @@ declare class GraphQLAIClient {
108
112
  * { role: "user", content: "What's the weather like?" }
109
113
  * ],
110
114
  * sessionId: "session-123",
111
- * data: { location: "New York" }
115
+ * data: { location: "New York" },
116
+ * onProgress: (progress) => {
117
+ * console.log(`Progress: ${progress.message} (${progress.percentage}%)`);
118
+ * }
112
119
  * });
113
120
  *
114
121
  * if (result.success) {
@@ -119,7 +126,7 @@ declare class GraphQLAIClient {
119
126
  * }
120
127
  * ```
121
128
  */
122
- RunAIAgent(params: RunAIAgentParams): Promise<RunAIAgentResult>;
129
+ RunAIAgent(params: ExecuteAgentParams): Promise<ExecuteAgentResult>;
123
130
  /**
124
131
  * Prepares variables for the AI agent mutation
125
132
  * @param params The agent parameters
@@ -416,67 +423,6 @@ interface RunAIPromptResult {
416
423
  */
417
424
  chatResult?: any;
418
425
  }
419
- /**
420
- * Parameters for running an AI agent
421
- */
422
- interface RunAIAgentParams {
423
- /**
424
- * The ID of the AI agent to run
425
- */
426
- agentId: string;
427
- /**
428
- * Conversation messages
429
- */
430
- messages: Array<{
431
- role: string;
432
- content: string;
433
- }>;
434
- /**
435
- * Session ID for maintaining conversation context
436
- */
437
- sessionId: string;
438
- /**
439
- * Data context to pass to the agent (will be JSON serialized)
440
- */
441
- data?: Record<string, any>;
442
- /**
443
- * Template data for agent templating (will be JSON serialized)
444
- */
445
- templateData?: Record<string, any>;
446
- /**
447
- * ID of the last agent run for context continuity
448
- */
449
- lastRunId?: string;
450
- /**
451
- * Auto-populate the last run payload
452
- */
453
- autoPopulateLastRunPayload?: boolean;
454
- /**
455
- * Configuration ID to use
456
- */
457
- configurationId?: string;
458
- }
459
- /**
460
- * Result from running an AI agent
461
- */
462
- interface RunAIAgentResult {
463
- /**
464
- * Whether the agent execution was successful
465
- */
466
- success: boolean;
467
- /**
468
- * Error message if the execution failed
469
- */
470
- errorMessage?: string;
471
- /**
472
- * Execution time in milliseconds
473
- */
474
- executionTimeMs?: number;
475
- /**
476
- * The agent's response payload (parsed from JSON)
477
- */
478
- payload?: any;
479
- }
480
426
 
481
427
  /**************************************************************************************************************
482
428
  * The graphQLDataProvider provides a data provider for the entities framework that uses GraphQL to communicate
@@ -870,6 +816,7 @@ declare class ActionItemOutput {
870
816
  */
871
817
  declare class GraphQLSystemUserClient {
872
818
  private _client;
819
+ private _sessionId;
873
820
  /**
874
821
  * Returns the underlying GraphQL client which is an instance of the GraphQLClient object
875
822
  * from the graphql-request package. This is useful if you want to perform any operation
@@ -1011,7 +958,7 @@ declare class GraphQLSystemUserClient {
1011
958
  * });
1012
959
  * ```
1013
960
  */
1014
- RunAIAgent(params: RunAIAgentParams): Promise<RunAIAgentResult>;
961
+ RunAIAgent(params: ExecuteAgentParams): Promise<ExecuteAgentResult>;
1015
962
  /**
1016
963
  * Helper method to prepare prompt variables for GraphQL
1017
964
  * @private
@@ -2600,6 +2547,72 @@ interface ComponentDependencyTree {
2600
2547
  */
2601
2548
  totalCount?: number;
2602
2549
  }
2550
+ /**
2551
+ * Input parameters for sending component feedback
2552
+ */
2553
+ interface ComponentFeedbackParams {
2554
+ /**
2555
+ * Component name
2556
+ */
2557
+ componentName: string;
2558
+ /**
2559
+ * Component namespace
2560
+ */
2561
+ componentNamespace: string;
2562
+ /**
2563
+ * Component version (optional)
2564
+ */
2565
+ componentVersion?: string;
2566
+ /**
2567
+ * Registry name (optional - for registry-specific feedback)
2568
+ */
2569
+ registryName?: string;
2570
+ /**
2571
+ * Rating (typically 0-5 scale)
2572
+ */
2573
+ rating: number;
2574
+ /**
2575
+ * Type of feedback (optional)
2576
+ */
2577
+ feedbackType?: string;
2578
+ /**
2579
+ * User comments (optional)
2580
+ */
2581
+ comments?: string;
2582
+ /**
2583
+ * Associated conversation ID (optional)
2584
+ */
2585
+ conversationID?: string;
2586
+ /**
2587
+ * Associated conversation detail ID (optional)
2588
+ */
2589
+ conversationDetailID?: string;
2590
+ /**
2591
+ * Associated report ID (optional)
2592
+ */
2593
+ reportID?: string;
2594
+ /**
2595
+ * Associated dashboard ID (optional)
2596
+ */
2597
+ dashboardID?: string;
2598
+ }
2599
+ /**
2600
+ * Response from sending component feedback
2601
+ */
2602
+ interface ComponentFeedbackResponse {
2603
+ /**
2604
+ * Whether the feedback was successfully submitted
2605
+ */
2606
+ success: boolean;
2607
+ /**
2608
+ * ID of the created feedback record (if available)
2609
+ */
2610
+ feedbackID?: string;
2611
+ /**
2612
+ * Error message if submission failed
2613
+ */
2614
+ error?: string;
2615
+ }
2603
2616
  /**
2604
2617
  * Client for executing Component Registry operations through GraphQL.
2605
2618
  * This class provides an easy way to fetch components from external registries
@@ -2782,6 +2795,40 @@ declare class GraphQLComponentRegistryClient {
2782
2795
  * ```
2783
2796
  */
2784
2797
  GetLatestVersion(registryName: string, namespace: string, name: string): Promise<string | null>;
2798
+ /**
2799
+ * Send feedback for a component.
2800
+ *
2801
+ * This is a registry-agnostic method that allows submitting feedback
2802
+ * for any component from any registry. The feedback can include ratings,
2803
+ * comments, and associations with conversations, reports, or dashboards.
2804
+ *
2805
+ * @param params The feedback parameters
2806
+ * @returns A Promise that resolves to a ComponentFeedbackResponse
2807
+ *
2808
+ * @example
2809
+ * ```typescript
2810
+ * const response = await registryClient.SendComponentFeedback({
2811
+ * componentName: 'DataGrid',
2812
+ * componentNamespace: 'core/ui',
2813
+ * componentVersion: '1.0.0',
2814
+ * registryName: 'MJ',
2815
+ * rating: 5,
2816
+ * feedbackType: 'feature-request',
2817
+ * comments: 'Would love to see export to Excel functionality',
2818
+ * conversationID: 'conv-123'
2819
+ * });
2820
+ *
2821
+ * if (response.success) {
2822
+ * console.log('Feedback submitted successfully!');
2823
+ * if (response.feedbackID) {
2824
+ * console.log(`Feedback ID: ${response.feedbackID}`);
2825
+ * }
2826
+ * } else {
2827
+ * console.error('Feedback submission failed:', response.error);
2828
+ * }
2829
+ * ```
2830
+ */
2831
+ SendComponentFeedback(params: ComponentFeedbackParams): Promise<ComponentFeedbackResponse>;
2785
2832
  }
2786
2833
 
2787
- export { ActionItemInput, ActionItemOutput, type ComponentDependencyTree, type ComponentSpecWithHash, type CreateQueryInput, type CreateQueryResult, type DeleteQueryOptionsInput, type DeleteQueryResult, type EmbedTextParams, type EmbedTextResult, type ExecuteSimplePromptParams, FieldMapper, GetDataOutput, type GetQueryDataByNameSystemUserInput, type GetQueryDataSystemUserInput, type GetRegistryComponentParams, GraphQLAIClient, GraphQLActionClient, GraphQLComponentRegistryClient, GraphQLDataProvider, GraphQLProviderConfigData, GraphQLSystemUserClient, GraphQLTransactionGroup, type QueryEntity, type QueryField, type QueryParameter, type QueryPermission, type QueryPermissionInput, type RegistryComponentSearchResult, RoleInput, RolesAndUsersInput, type RunAIAgentParams, type RunAIAgentResult, type RunAIPromptParams, type RunAIPromptResult, type RunDynamicViewSystemUserInput, type RunQuerySystemUserResult, type RunViewByIDSystemUserInput, type RunViewByNameSystemUserInput, type RunViewSystemUserInput, type RunViewSystemUserResult, type RunViewSystemUserResultRow, type SearchRegistryComponentsParams, type SimplePromptResult, SimpleRemoteEntity, SimpleRemoteEntityField, SimpleRemoteEntityOutput, SyncDataAction, SyncDataResult, SyncRolesAndUsersResult, type UpdateQueryInput, type UpdateQueryResult, UserInput, setupGraphQLClient };
2834
+ export { ActionItemInput, ActionItemOutput, type ComponentDependencyTree, type ComponentSpecWithHash, type CreateQueryInput, type CreateQueryResult, type DeleteQueryOptionsInput, type DeleteQueryResult, type EmbedTextParams, type EmbedTextResult, type ExecuteSimplePromptParams, FieldMapper, GetDataOutput, type GetQueryDataByNameSystemUserInput, type GetQueryDataSystemUserInput, type GetRegistryComponentParams, GraphQLAIClient, GraphQLActionClient, GraphQLComponentRegistryClient, GraphQLDataProvider, GraphQLProviderConfigData, GraphQLSystemUserClient, GraphQLTransactionGroup, type QueryEntity, type QueryField, type QueryParameter, type QueryPermission, type QueryPermissionInput, type RegistryComponentSearchResult, RoleInput, RolesAndUsersInput, type RunAIPromptParams, type RunAIPromptResult, type RunDynamicViewSystemUserInput, type RunQuerySystemUserResult, type RunViewByIDSystemUserInput, type RunViewByNameSystemUserInput, type RunViewSystemUserInput, type RunViewSystemUserResult, type RunViewSystemUserResultRow, type SearchRegistryComponentsParams, type SimplePromptResult, SimpleRemoteEntity, SimpleRemoteEntityField, SimpleRemoteEntityOutput, SyncDataAction, SyncDataResult, SyncRolesAndUsersResult, type UpdateQueryInput, type UpdateQueryResult, UserInput, setupGraphQLClient };
package/dist/index.d.mts CHANGED
@@ -3,6 +3,7 @@ export { gql } from 'graphql-request';
3
3
  import { ProviderConfigDataBase, ProviderBase, IEntityDataProvider, IMetadataProvider, IRunViewProvider, IRunReportProvider, IRunQueryProvider, UserInfo, RunReportParams, RunReportResult, RunQueryParams, RunQueryResult, RunViewParams, RunViewResult, EntityInfo, ProviderType, CompositeKey, RecordChange, RecordDependency, KeyValuePair, PotentialDuplicateRequest, PotentialDuplicateResponse, RecordMergeRequest, EntityMergeOptions, RecordMergeResult, BaseEntity, EntitySaveOptions, EntityDeleteOptions, DatasetItemFilterType, DatasetResultType, DatasetStatusResultType, TransactionGroupBase, EntityRecordNameInput, EntityRecordNameResult, ILocalStorageProvider, TransactionResult } from '@memberjunction/core';
4
4
  import { UserViewEntityExtended } from '@memberjunction/core-entities';
5
5
  import { Observable } from 'rxjs';
6
+ import { ExecuteAgentParams, ExecuteAgentResult } from '@memberjunction/ai-core-plus';
6
7
  import { ActionParam, ActionResult, EntityActionInvocationParams, EntityActionResult } from '@memberjunction/actions-base';
7
8
 
8
9
  /**
@@ -97,6 +98,9 @@ declare class GraphQLAIClient {
97
98
  * This method invokes an AI agent on the server through GraphQL and returns the result.
98
99
  * The agent can maintain conversation context across multiple interactions.
99
100
  *
101
+ * If a progress callback is provided in params.onProgress, this method will subscribe
102
+ * to real-time progress updates from the GraphQL server and forward them to the callback.
103
+ *
100
104
  * @param params The parameters for running the AI agent
101
105
  * @returns A Promise that resolves to a RunAIAgentResult object
102
106
  *
@@ -108,7 +112,10 @@ declare class GraphQLAIClient {
108
112
  * { role: "user", content: "What's the weather like?" }
109
113
  * ],
110
114
  * sessionId: "session-123",
111
- * data: { location: "New York" }
115
+ * data: { location: "New York" },
116
+ * onProgress: (progress) => {
117
+ * console.log(`Progress: ${progress.message} (${progress.percentage}%)`);
118
+ * }
112
119
  * });
113
120
  *
114
121
  * if (result.success) {
@@ -119,7 +126,7 @@ declare class GraphQLAIClient {
119
126
  * }
120
127
  * ```
121
128
  */
122
- RunAIAgent(params: RunAIAgentParams): Promise<RunAIAgentResult>;
129
+ RunAIAgent(params: ExecuteAgentParams): Promise<ExecuteAgentResult>;
123
130
  /**
124
131
  * Prepares variables for the AI agent mutation
125
132
  * @param params The agent parameters
@@ -416,67 +423,6 @@ interface RunAIPromptResult {
416
423
  */
417
424
  chatResult?: any;
418
425
  }
419
- /**
420
- * Parameters for running an AI agent
421
- */
422
- interface RunAIAgentParams {
423
- /**
424
- * The ID of the AI agent to run
425
- */
426
- agentId: string;
427
- /**
428
- * Conversation messages
429
- */
430
- messages: Array<{
431
- role: string;
432
- content: string;
433
- }>;
434
- /**
435
- * Session ID for maintaining conversation context
436
- */
437
- sessionId: string;
438
- /**
439
- * Data context to pass to the agent (will be JSON serialized)
440
- */
441
- data?: Record<string, any>;
442
- /**
443
- * Template data for agent templating (will be JSON serialized)
444
- */
445
- templateData?: Record<string, any>;
446
- /**
447
- * ID of the last agent run for context continuity
448
- */
449
- lastRunId?: string;
450
- /**
451
- * Auto-populate the last run payload
452
- */
453
- autoPopulateLastRunPayload?: boolean;
454
- /**
455
- * Configuration ID to use
456
- */
457
- configurationId?: string;
458
- }
459
- /**
460
- * Result from running an AI agent
461
- */
462
- interface RunAIAgentResult {
463
- /**
464
- * Whether the agent execution was successful
465
- */
466
- success: boolean;
467
- /**
468
- * Error message if the execution failed
469
- */
470
- errorMessage?: string;
471
- /**
472
- * Execution time in milliseconds
473
- */
474
- executionTimeMs?: number;
475
- /**
476
- * The agent's response payload (parsed from JSON)
477
- */
478
- payload?: any;
479
- }
480
426
 
481
427
  /**************************************************************************************************************
482
428
  * The graphQLDataProvider provides a data provider for the entities framework that uses GraphQL to communicate
@@ -870,6 +816,7 @@ declare class ActionItemOutput {
870
816
  */
871
817
  declare class GraphQLSystemUserClient {
872
818
  private _client;
819
+ private _sessionId;
873
820
  /**
874
821
  * Returns the underlying GraphQL client which is an instance of the GraphQLClient object
875
822
  * from the graphql-request package. This is useful if you want to perform any operation
@@ -1011,7 +958,7 @@ declare class GraphQLSystemUserClient {
1011
958
  * });
1012
959
  * ```
1013
960
  */
1014
- RunAIAgent(params: RunAIAgentParams): Promise<RunAIAgentResult>;
961
+ RunAIAgent(params: ExecuteAgentParams): Promise<ExecuteAgentResult>;
1015
962
  /**
1016
963
  * Helper method to prepare prompt variables for GraphQL
1017
964
  * @private
@@ -2600,6 +2547,72 @@ interface ComponentDependencyTree {
2600
2547
  */
2601
2548
  totalCount?: number;
2602
2549
  }
2550
+ /**
2551
+ * Input parameters for sending component feedback
2552
+ */
2553
+ interface ComponentFeedbackParams {
2554
+ /**
2555
+ * Component name
2556
+ */
2557
+ componentName: string;
2558
+ /**
2559
+ * Component namespace
2560
+ */
2561
+ componentNamespace: string;
2562
+ /**
2563
+ * Component version (optional)
2564
+ */
2565
+ componentVersion?: string;
2566
+ /**
2567
+ * Registry name (optional - for registry-specific feedback)
2568
+ */
2569
+ registryName?: string;
2570
+ /**
2571
+ * Rating (typically 0-5 scale)
2572
+ */
2573
+ rating: number;
2574
+ /**
2575
+ * Type of feedback (optional)
2576
+ */
2577
+ feedbackType?: string;
2578
+ /**
2579
+ * User comments (optional)
2580
+ */
2581
+ comments?: string;
2582
+ /**
2583
+ * Associated conversation ID (optional)
2584
+ */
2585
+ conversationID?: string;
2586
+ /**
2587
+ * Associated conversation detail ID (optional)
2588
+ */
2589
+ conversationDetailID?: string;
2590
+ /**
2591
+ * Associated report ID (optional)
2592
+ */
2593
+ reportID?: string;
2594
+ /**
2595
+ * Associated dashboard ID (optional)
2596
+ */
2597
+ dashboardID?: string;
2598
+ }
2599
+ /**
2600
+ * Response from sending component feedback
2601
+ */
2602
+ interface ComponentFeedbackResponse {
2603
+ /**
2604
+ * Whether the feedback was successfully submitted
2605
+ */
2606
+ success: boolean;
2607
+ /**
2608
+ * ID of the created feedback record (if available)
2609
+ */
2610
+ feedbackID?: string;
2611
+ /**
2612
+ * Error message if submission failed
2613
+ */
2614
+ error?: string;
2615
+ }
2603
2616
  /**
2604
2617
  * Client for executing Component Registry operations through GraphQL.
2605
2618
  * This class provides an easy way to fetch components from external registries
@@ -2782,6 +2795,40 @@ declare class GraphQLComponentRegistryClient {
2782
2795
  * ```
2783
2796
  */
2784
2797
  GetLatestVersion(registryName: string, namespace: string, name: string): Promise<string | null>;
2798
+ /**
2799
+ * Send feedback for a component.
2800
+ *
2801
+ * This is a registry-agnostic method that allows submitting feedback
2802
+ * for any component from any registry. The feedback can include ratings,
2803
+ * comments, and associations with conversations, reports, or dashboards.
2804
+ *
2805
+ * @param params The feedback parameters
2806
+ * @returns A Promise that resolves to a ComponentFeedbackResponse
2807
+ *
2808
+ * @example
2809
+ * ```typescript
2810
+ * const response = await registryClient.SendComponentFeedback({
2811
+ * componentName: 'DataGrid',
2812
+ * componentNamespace: 'core/ui',
2813
+ * componentVersion: '1.0.0',
2814
+ * registryName: 'MJ',
2815
+ * rating: 5,
2816
+ * feedbackType: 'feature-request',
2817
+ * comments: 'Would love to see export to Excel functionality',
2818
+ * conversationID: 'conv-123'
2819
+ * });
2820
+ *
2821
+ * if (response.success) {
2822
+ * console.log('Feedback submitted successfully!');
2823
+ * if (response.feedbackID) {
2824
+ * console.log(`Feedback ID: ${response.feedbackID}`);
2825
+ * }
2826
+ * } else {
2827
+ * console.error('Feedback submission failed:', response.error);
2828
+ * }
2829
+ * ```
2830
+ */
2831
+ SendComponentFeedback(params: ComponentFeedbackParams): Promise<ComponentFeedbackResponse>;
2785
2832
  }
2786
2833
 
2787
- export { ActionItemInput, ActionItemOutput, type ComponentDependencyTree, type ComponentSpecWithHash, type CreateQueryInput, type CreateQueryResult, type DeleteQueryOptionsInput, type DeleteQueryResult, type EmbedTextParams, type EmbedTextResult, type ExecuteSimplePromptParams, FieldMapper, GetDataOutput, type GetQueryDataByNameSystemUserInput, type GetQueryDataSystemUserInput, type GetRegistryComponentParams, GraphQLAIClient, GraphQLActionClient, GraphQLComponentRegistryClient, GraphQLDataProvider, GraphQLProviderConfigData, GraphQLSystemUserClient, GraphQLTransactionGroup, type QueryEntity, type QueryField, type QueryParameter, type QueryPermission, type QueryPermissionInput, type RegistryComponentSearchResult, RoleInput, RolesAndUsersInput, type RunAIAgentParams, type RunAIAgentResult, type RunAIPromptParams, type RunAIPromptResult, type RunDynamicViewSystemUserInput, type RunQuerySystemUserResult, type RunViewByIDSystemUserInput, type RunViewByNameSystemUserInput, type RunViewSystemUserInput, type RunViewSystemUserResult, type RunViewSystemUserResultRow, type SearchRegistryComponentsParams, type SimplePromptResult, SimpleRemoteEntity, SimpleRemoteEntityField, SimpleRemoteEntityOutput, SyncDataAction, SyncDataResult, SyncRolesAndUsersResult, type UpdateQueryInput, type UpdateQueryResult, UserInput, setupGraphQLClient };
2834
+ export { ActionItemInput, ActionItemOutput, type ComponentDependencyTree, type ComponentSpecWithHash, type CreateQueryInput, type CreateQueryResult, type DeleteQueryOptionsInput, type DeleteQueryResult, type EmbedTextParams, type EmbedTextResult, type ExecuteSimplePromptParams, FieldMapper, GetDataOutput, type GetQueryDataByNameSystemUserInput, type GetQueryDataSystemUserInput, type GetRegistryComponentParams, GraphQLAIClient, GraphQLActionClient, GraphQLComponentRegistryClient, GraphQLDataProvider, GraphQLProviderConfigData, GraphQLSystemUserClient, GraphQLTransactionGroup, type QueryEntity, type QueryField, type QueryParameter, type QueryPermission, type QueryPermissionInput, type RegistryComponentSearchResult, RoleInput, RolesAndUsersInput, type RunAIPromptParams, type RunAIPromptResult, type RunDynamicViewSystemUserInput, type RunQuerySystemUserResult, type RunViewByIDSystemUserInput, type RunViewByNameSystemUserInput, type RunViewSystemUserInput, type RunViewSystemUserResult, type RunViewSystemUserResultRow, type SearchRegistryComponentsParams, type SimplePromptResult, SimpleRemoteEntity, SimpleRemoteEntityField, SimpleRemoteEntityOutput, SyncDataAction, SyncDataResult, SyncRolesAndUsersResult, type UpdateQueryInput, type UpdateQueryResult, UserInput, setupGraphQLClient };