@meshmakers/octo-services 3.2.172-0 → 3.2.175-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.
@@ -2,9 +2,9 @@ import { map, finalize } from 'rxjs/operators';
2
2
  import { PagedResultDto, MessageService, DataSourceBase } from '@meshmakers/shared-services';
3
3
  import { InMemoryCache, ApolloLink } from '@apollo/client/core';
4
4
  import * as i0 from '@angular/core';
5
- import { inject, Injectable, Injector, NgModule } from '@angular/core';
6
- import { ApolloError } from '@apollo/client/errors';
5
+ import { inject, Injector, Injectable, NgModule } from '@angular/core';
7
6
  import { onError } from '@apollo/client/link/error';
7
+ import { CombinedGraphQLErrors } from '@apollo/client';
8
8
  import { map as map$1 } from 'rxjs';
9
9
 
10
10
  class PagedGraphResultDto extends PagedResultDto {
@@ -25,51 +25,92 @@ class OctoGraphQLServiceBase {
25
25
  this.octoServiceOptions = octoServiceOptions;
26
26
  }
27
27
  getEntities(tenantId, variables, queryNode, watchQuery, f) {
28
- const query = watchQuery
29
- ? this.prepareWatchQuery(tenantId, variables, queryNode)
30
- : this.prepareQuery(tenantId, variables, queryNode);
31
- return query.pipe(map((result) => {
32
- const resultSet = new PagedResultDto();
33
- if (result.errors != null) {
34
- console.error(result.errors);
35
- throw Error('Error in GraphQL statement.');
36
- }
37
- else if (result.data) {
38
- f(resultSet, result.data);
39
- }
40
- return resultSet;
41
- }));
28
+ if (watchQuery) {
29
+ const prepareWatchQuery = this.prepareWatchQuery(tenantId, variables, queryNode);
30
+ return prepareWatchQuery.pipe(map((result) => {
31
+ const resultSet = new PagedResultDto();
32
+ if (result.error != null) {
33
+ console.error(result.error);
34
+ throw Error('Error in GraphQL statement.');
35
+ }
36
+ else if (result.data) {
37
+ f(resultSet, result.data);
38
+ }
39
+ return resultSet;
40
+ }));
41
+ }
42
+ else {
43
+ const prepareQuery = this.prepareQuery(tenantId, variables, queryNode);
44
+ return prepareQuery.pipe(map((result) => {
45
+ const resultSet = new PagedResultDto();
46
+ if (result.error != null) {
47
+ console.error(result.error);
48
+ throw Error('Error in GraphQL statement.');
49
+ }
50
+ else if (result.data) {
51
+ f(resultSet, result.data);
52
+ }
53
+ return resultSet;
54
+ }));
55
+ }
42
56
  }
43
57
  getGraphEntities(tenantId, variables, queryNode, watchQuery, f) {
44
- const query = watchQuery
45
- ? this.prepareWatchQuery(tenantId, variables, queryNode)
46
- : this.prepareQuery(tenantId, variables, queryNode);
47
- return query.pipe(map((result) => {
48
- const resultSet = new PagedGraphResultDto();
49
- if (result.errors != null) {
50
- console.error(result.errors);
51
- throw Error('Error in GraphQL statement.');
52
- }
53
- else if (result.data) {
54
- f(resultSet, result.data);
55
- }
56
- return resultSet;
57
- }));
58
+ if (watchQuery) {
59
+ const prepareWatchQuery = this.prepareWatchQuery(tenantId, variables, queryNode);
60
+ return prepareWatchQuery.pipe(map((result) => {
61
+ const resultSet = new PagedGraphResultDto();
62
+ if (result.error != null) {
63
+ console.error(result.error);
64
+ throw Error('Error in GraphQL statement.');
65
+ }
66
+ else if (result.data) {
67
+ f(resultSet, result.data);
68
+ }
69
+ return resultSet;
70
+ }));
71
+ }
72
+ else {
73
+ const prepareQuery = this.prepareQuery(tenantId, variables, queryNode);
74
+ return prepareQuery.pipe(map((result) => {
75
+ const resultSet = new PagedGraphResultDto();
76
+ if (result.error != null) {
77
+ console.error(result.error);
78
+ throw Error('Error in GraphQL statement.');
79
+ }
80
+ else if (result.data) {
81
+ f(resultSet, result.data);
82
+ }
83
+ return resultSet;
84
+ }));
85
+ }
58
86
  }
59
87
  getEntityDetail(tenantId, variables, queryNode, watchQuery, f) {
60
- const query = watchQuery
61
- ? this.prepareWatchQuery(tenantId, variables, queryNode)
62
- : this.prepareQuery(tenantId, variables, queryNode);
63
- return query.pipe(map((result) => {
64
- if (result.errors != null) {
65
- console.error(result.errors);
66
- throw Error('Error in GraphQL statement.');
67
- }
68
- else if (result.data) {
69
- return f(result.data);
70
- }
71
- return null;
72
- }));
88
+ if (watchQuery) {
89
+ const query = this.prepareWatchQuery(tenantId, variables, queryNode);
90
+ return query.pipe(map((result) => {
91
+ if (result.error != null) {
92
+ console.error(result.error);
93
+ throw Error('Error in GraphQL statement.');
94
+ }
95
+ else if (result.data) {
96
+ return f(result.data);
97
+ }
98
+ return null;
99
+ }));
100
+ }
101
+ else {
102
+ const query = this.prepareQuery(tenantId, variables, queryNode);
103
+ return query.pipe(map((result) => {
104
+ if (result.error != null) {
105
+ console.error(result.error);
106
+ throw Error('Error in GraphQL statement.');
107
+ }
108
+ else if (result.data) {
109
+ return f(result.data);
110
+ }
111
+ return null;
112
+ }));
113
+ }
73
114
  }
74
115
  createUpdateEntity(tenantId, variables, queryNode, f) {
75
116
  this.createApolloForTenant(tenantId);
@@ -136,53 +177,6 @@ class OctoGraphQLServiceBase {
136
177
  }
137
178
  }
138
179
 
139
- class OctoMessageService {
140
- messageService = inject(MessageService);
141
- showErrorWithDetails(error) {
142
- if (error.constructor.name === ApolloError.prototype.constructor.name) {
143
- console.info("is apollo error");
144
- if (error.graphQLErrors) {
145
- for (const graphQLError of error.graphQLErrors) {
146
- const path = graphQLError.path?.join('.');
147
- const message = `${path}: ${graphQLError.message}`;
148
- this.messageService.showError(message, "Request because of GraphQL error failed");
149
- }
150
- }
151
- else if (error.networkError) {
152
- this.messageService.showError(error.networkError.message, "Request because of network error failed");
153
- }
154
- else if (error.clientErrors) {
155
- let message = "";
156
- for (const clientError of error.clientErrors) {
157
- if (message.length > 0) {
158
- message += "\n";
159
- }
160
- message += `${clientError.message}`;
161
- }
162
- this.messageService.showError(message, "Request because of client error failed");
163
- }
164
- else if (error.protocolErrors) {
165
- let message = "";
166
- for (const clientError of error.protocolErrors) {
167
- if (message.length > 0) {
168
- message += "\n";
169
- }
170
- message += `${clientError.message}`;
171
- }
172
- this.messageService.showError(message, "Request because of protocol error failed");
173
- }
174
- else {
175
- this.messageService.showErrorWithDetails(error);
176
- }
177
- }
178
- }
179
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.4", ngImport: i0, type: OctoMessageService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
180
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.4", ngImport: i0, type: OctoMessageService });
181
- }
182
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.4", ngImport: i0, type: OctoMessageService, decorators: [{
183
- type: Injectable
184
- }] });
185
-
186
180
  class OctoServiceOptions {
187
181
  assetServices;
188
182
  defaultDataSourceId;
@@ -199,53 +193,69 @@ class OctoErrorLink extends ApolloLink {
199
193
  super();
200
194
  // There is currently no other way to inject a service into an Apollo Link,
201
195
  // because Apollo deprecated without replacement
202
- this.errorLink = onError(({ graphQLErrors, operation, forward }) => {
203
- const messageService = this.injector.get(MessageService);
204
- if (graphQLErrors) {
205
- let title = 'GraphQL error';
206
- let details = '';
207
- for (const error of graphQLErrors) {
208
- if (title == 'GraphQL error') {
209
- title = `${error.message}`;
210
- }
211
- else {
212
- details += `======================`;
213
- details += `${error.message}`;
214
- }
215
- if (error.extensions) {
216
- // check for custom error properties, OctoDetails should be an array of MessageDetails
217
- if (error.extensions['code']) {
218
- details += `Global Result Code: ${error.extensions['code']}`;
196
+ this.errorLink = onError(({ error, operation, forward }) => {
197
+ if (error) {
198
+ if (error instanceof CombinedGraphQLErrors) {
199
+ this.showError(error);
200
+ }
201
+ else {
202
+ this.showErrorLike(error);
203
+ }
204
+ }
205
+ return forward(operation);
206
+ });
207
+ }
208
+ showErrorLike(error) {
209
+ const messageService = this.injector.get(MessageService);
210
+ const title = error.message;
211
+ const details = error.message;
212
+ console.error(error);
213
+ messageService.showError(details, title);
214
+ }
215
+ showError(combinedGraphQLErrors) {
216
+ const messageService = this.injector.get(MessageService);
217
+ let title = 'GraphQL error';
218
+ let details = '';
219
+ for (const error of combinedGraphQLErrors.errors) {
220
+ console.error(error);
221
+ if (title == 'GraphQL error') {
222
+ title = `${error.message}`;
223
+ }
224
+ else {
225
+ details += `======================`;
226
+ details += `${error.message}`;
227
+ }
228
+ if (error.extensions) {
229
+ // check for custom error properties, OctoDetails should be an array of MessageDetails
230
+ if (error.extensions['code']) {
231
+ details += `Global Result Code: ${error.extensions['code']}`;
232
+ }
233
+ if (error.extensions['OctoDetails'] && Array.isArray(error.extensions['OctoDetails'])) {
234
+ // iterate over the details and add them to the message
235
+ for (const detail of error.extensions['OctoDetails']) {
236
+ if (detail.message) {
237
+ details += `\n\n✗ ${detail.message}`;
219
238
  }
220
- if (error.extensions['OctoDetails'] && Array.isArray(error.extensions['OctoDetails'])) {
221
- // iterate over the details and add them to the message
222
- for (const detail of error.extensions['OctoDetails']) {
223
- if (detail.message) {
224
- details += `\n\n✗ ${detail.message}`;
225
- }
226
- if (detail.details && Array.isArray(detail.details)) {
227
- for (const subDetail of detail.details) {
228
- if (subDetail) {
229
- details += `\n • ${subDetail}`;
230
- }
231
- }
239
+ if (detail.details && Array.isArray(detail.details)) {
240
+ for (const subDetail of detail.details) {
241
+ if (subDetail) {
242
+ details += `\n • ${subDetail}`;
232
243
  }
233
244
  }
234
245
  }
235
246
  }
236
247
  }
237
- messageService.showError(details, title);
238
248
  }
239
- return forward(operation);
240
- });
249
+ messageService.showError(details, title);
250
+ }
241
251
  }
242
252
  request(operation, forward) {
243
253
  return this.errorLink.request(operation, forward);
244
254
  }
245
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.4", ngImport: i0, type: OctoErrorLink, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
246
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.4", ngImport: i0, type: OctoErrorLink });
255
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.6", ngImport: i0, type: OctoErrorLink, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
256
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.6", ngImport: i0, type: OctoErrorLink });
247
257
  }
248
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.4", ngImport: i0, type: OctoErrorLink, decorators: [{
258
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.6", ngImport: i0, type: OctoErrorLink, decorators: [{
249
259
  type: Injectable
250
260
  }], ctorParameters: () => [] });
251
261
 
@@ -258,16 +268,15 @@ class OctoServicesModule {
258
268
  provide: OctoServiceOptions,
259
269
  useValue: octoServiceOptions
260
270
  },
261
- OctoMessageService,
262
271
  OctoErrorLink
263
272
  ]
264
273
  };
265
274
  }
266
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.4", ngImport: i0, type: OctoServicesModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
267
- static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.4", ngImport: i0, type: OctoServicesModule });
268
- static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.4", ngImport: i0, type: OctoServicesModule });
275
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.6", ngImport: i0, type: OctoServicesModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
276
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.6", ngImport: i0, type: OctoServicesModule });
277
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.6", ngImport: i0, type: OctoServicesModule });
269
278
  }
270
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.4", ngImport: i0, type: OctoServicesModule, decorators: [{
279
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.6", ngImport: i0, type: OctoServicesModule, decorators: [{
271
280
  type: NgModule,
272
281
  args: [{
273
282
  declarations: [],
@@ -340,7 +349,7 @@ class AssetRepoGraphQlDataSource extends GraphQlDataSource {
340
349
  this.clear();
341
350
  super.onBeginLoad();
342
351
  const variables = this.createVariables(skip, take, searchFilter, fieldFilter, sort);
343
- this.queryRef = this.query.watch(variables, { errorPolicy: 'all' });
352
+ this.queryRef = this.query.watch({ variables, errorPolicy: 'all' });
344
353
  this.subscription = this.queryRef.valueChanges
345
354
  .pipe(map$1((v, i) => this.executeLoad(v, i)))
346
355
  .subscribe({
@@ -400,5 +409,5 @@ var SortOrdersDto;
400
409
  * Generated bundle index. Do not edit.
401
410
  */
402
411
 
403
- export { AssetRepoGraphQlDataSource, FieldFilterOperatorsDto, GraphQL, GraphQLCloneIgnoredProperties, GraphQLCommonIgnoredProperties, GraphQlDataSource, OctoErrorLink, OctoGraphQLServiceBase, OctoMessageService, OctoServiceOptions, OctoServicesModule, PagedGraphResultDto, SearchFilterTypesDto, SortOrdersDto };
412
+ export { AssetRepoGraphQlDataSource, FieldFilterOperatorsDto, GraphQL, GraphQLCloneIgnoredProperties, GraphQLCommonIgnoredProperties, GraphQlDataSource, OctoErrorLink, OctoGraphQLServiceBase, OctoServiceOptions, OctoServicesModule, PagedGraphResultDto, SearchFilterTypesDto, SortOrdersDto };
404
413
  //# sourceMappingURL=meshmakers-octo-services.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"meshmakers-octo-services.mjs","sources":["../../../../projects/meshmakers/octo-services/src/lib/models/pagedGraphResultDto.ts","../../../../projects/meshmakers/octo-services/src/lib/services/octo-graph-ql-service-base.ts","../../../../projects/meshmakers/octo-services/src/lib/services/octo-message.service.ts","../../../../projects/meshmakers/octo-services/src/lib/options/octo-service-options.ts","../../../../projects/meshmakers/octo-services/src/lib/shared/octo-error-link.ts","../../../../projects/meshmakers/octo-services/src/lib/octo-services.module.ts","../../../../projects/meshmakers/octo-services/src/lib/shared/graphQL.ts","../../../../projects/meshmakers/octo-services/src/lib/services/assetRepoGraphQlDataSource.ts","../../../../projects/meshmakers/octo-services/src/lib/shared/globalTypes.ts","../../../../projects/meshmakers/octo-services/src/public-api.ts","../../../../projects/meshmakers/octo-services/src/meshmakers-octo-services.ts"],"sourcesContent":["import { PagedResultDto } from '@meshmakers/shared-services';\n\nexport class PagedGraphResultDto<P, C> extends PagedResultDto<C> {\n document: P | null;\n\n constructor() {\n super();\n\n this.document = null;\n }\n}\n","import { DocumentNode } from 'graphql';\nimport { finalize, map } from 'rxjs/operators';\nimport { Apollo } from 'apollo-angular';\nimport { OctoServiceOptions } from '../options/octo-service-options';\nimport { PagedGraphResultDto } from '../models/pagedGraphResultDto';\nimport { PagedResultDto } from '@meshmakers/shared-services';\nimport { HttpLink } from 'apollo-angular/http';\nimport { ApolloQueryResult, InMemoryCache } from '@apollo/client/core';\nimport { OperationVariables } from '@apollo/client/core/types';\nimport { Observable } from 'rxjs';\n\nexport class OctoGraphQLServiceBase {\n constructor(\n private readonly apollo: Apollo,\n private readonly httpLink: HttpLink,\n private readonly octoServiceOptions: OctoServiceOptions\n ) {}\n\n protected getEntities<TResult, TEntity, TVariable extends OperationVariables>(\n tenantId: string,\n variables: TVariable,\n queryNode: DocumentNode,\n watchQuery: boolean,\n f: (resultSet: PagedResultDto<TEntity>, result: TResult) => void\n ): Observable<PagedResultDto<TEntity>> {\n const query = watchQuery\n ? this.prepareWatchQuery<TResult, TVariable>(tenantId, variables, queryNode)\n : this.prepareQuery<TResult, TVariable>(tenantId, variables, queryNode);\n return query.pipe(\n map((result) => {\n const resultSet = new PagedResultDto<TEntity>();\n\n if (result.errors != null) {\n console.error(result.errors);\n throw Error('Error in GraphQL statement.');\n } else if (result.data) {\n f(resultSet, result.data);\n }\n return resultSet;\n })\n );\n }\n\n protected getGraphEntities<TResult, TP, TC, TVariable extends OperationVariables>(\n tenantId: string,\n variables: TVariable,\n queryNode: DocumentNode,\n watchQuery: boolean,\n f: (resultSet: PagedGraphResultDto<TP, TC>, result: TResult) => void\n ): Observable<PagedGraphResultDto<TP, TC>> {\n const query = watchQuery\n ? this.prepareWatchQuery<TResult, TVariable>(tenantId, variables, queryNode)\n : this.prepareQuery<TResult, TVariable>(tenantId, variables, queryNode);\n return query.pipe(\n map((result) => {\n const resultSet = new PagedGraphResultDto<TP, TC>();\n\n if (result.errors != null) {\n console.error(result.errors);\n throw Error('Error in GraphQL statement.');\n } else if (result.data) {\n f(resultSet, result.data);\n }\n return resultSet;\n })\n );\n }\n\n protected getEntityDetail<TResult, TEntity, TVariable extends OperationVariables>(\n tenantId: string,\n variables: TVariable,\n queryNode: DocumentNode,\n watchQuery: boolean,\n f: (result: TResult) => TEntity\n ): Observable<TEntity | null> {\n const query = watchQuery\n ? this.prepareWatchQuery<TResult, TVariable>(tenantId, variables, queryNode)\n : this.prepareQuery<TResult, TVariable>(tenantId, variables, queryNode);\n return query.pipe(\n map((result) => {\n if (result.errors != null) {\n console.error(result.errors);\n throw Error('Error in GraphQL statement.');\n } else if (result.data) {\n return f(result.data);\n }\n return null;\n })\n );\n }\n\n protected createUpdateEntity<TResult, TEntity, TVariable extends OperationVariables>(\n tenantId: string,\n variables: TVariable,\n queryNode: DocumentNode,\n f: (result: TResult | null | undefined) => TEntity\n ): Observable<TEntity> {\n this.createApolloForTenant(tenantId);\n\n return this.apollo\n .use(tenantId)\n .mutate<TResult>({\n mutation: queryNode,\n variables\n })\n .pipe(\n map((value) => f(value.data)),\n finalize(() => {\n const promise = this.apollo.use(tenantId).client.reFetchObservableQueries(true);\n promise\n .then(() => {})\n .catch((error: string) => {\n console.error(error);\n });\n })\n );\n }\n\n protected deleteEntity<TResult, TVariable extends OperationVariables>(\n tenantId: string,\n variables: TVariable,\n queryNode: DocumentNode,\n f: (result: TResult | null | undefined) => boolean\n ): Observable<boolean> {\n this.createApolloForTenant(tenantId);\n\n return this.apollo\n .use(tenantId)\n .mutate<TResult>({\n mutation: queryNode,\n variables\n })\n .pipe(\n map((value) => f(value.data)),\n finalize(() => {\n const promise = this.apollo.use(tenantId).client.reFetchObservableQueries(true);\n promise\n .then(() => {})\n .catch((error: string) => {\n console.error(error);\n });\n })\n );\n }\n\n private createApolloForTenant(tenantId: string): void {\n const result = this.apollo.use(tenantId);\n if (result) {\n return;\n }\n\n const service = this.octoServiceOptions.assetServices ?? '';\n const uri = `${service}tenants/${tenantId}/GraphQL`;\n\n this.apollo.createNamed(tenantId, {\n link: this.httpLink.create({ uri }),\n cache: new InMemoryCache({\n dataIdFromObject: (o) => (o['rtId'] as string)\n })\n });\n }\n\n private prepareWatchQuery<TResult, TVariable extends OperationVariables>(\n tenantId: string,\n variables: TVariable,\n queryNode: DocumentNode\n ): Observable<ApolloQueryResult<TResult>> {\n this.createApolloForTenant(tenantId);\n\n return this.apollo.use(tenantId).watchQuery<TResult>({\n query: queryNode,\n variables\n }).valueChanges;\n }\n\n private prepareQuery<TResult, TVariable extends OperationVariables>(\n tenantId: string,\n variables: TVariable,\n queryNode: DocumentNode\n ): Observable<ApolloQueryResult<TResult>> {\n this.createApolloForTenant(tenantId);\n\n return this.apollo.use(tenantId).query<TResult>({\n query: queryNode,\n variables,\n fetchPolicy: 'network-only'\n });\n }\n}\n","import { Injectable, inject } from '@angular/core';\nimport { MessageService } from \"@meshmakers/shared-services\";\nimport { ApolloError } from \"@apollo/client/errors\";\n\n@Injectable()\nexport class OctoMessageService{\n private readonly messageService = inject(MessageService);\n\n\n showErrorWithDetails(error: any): void {\n if (error.constructor.name === ApolloError.prototype.constructor.name)\n {\n console.info(\"is apollo error\");\n\n if (error.graphQLErrors) {\n for (const graphQLError of error.graphQLErrors) {\n const path = graphQLError.path?.join('.');\n const message = `${path}: ${graphQLError.message}`;\n this.messageService.showError(message, \"Request because of GraphQL error failed\");\n }\n }\n else if (error.networkError) {\n this.messageService.showError(error.networkError.message, \"Request because of network error failed\");\n }\n else if (error.clientErrors) {\n let message = \"\";\n for (const clientError of error.clientErrors) {\n if (message.length > 0) {\n message += \"\\n\";\n }\n message += `${clientError.message}`;\n }\n this.messageService.showError(message, \"Request because of client error failed\");\n }\n else if (error.protocolErrors) {\n let message = \"\";\n for (const clientError of error.protocolErrors) {\n if (message.length > 0) {\n message += \"\\n\";\n }\n message += `${clientError.message}`;\n }\n this.messageService.showError(message, \"Request because of protocol error failed\");\n }\n else {\n this.messageService.showErrorWithDetails(error);\n }\n }\n }\n\n}\n","export class OctoServiceOptions {\n assetServices: string | null;\n defaultDataSourceId?: string;\n\n constructor() {\n this.assetServices = null;\n this.defaultDataSourceId = undefined;\n }\n}\n","import {onError} from '@apollo/client/link/error';\nimport { inject, Injectable, Injector } from \"@angular/core\";\nimport {MessageService} from \"@meshmakers/shared-services\";\nimport {ApolloLink} from '@apollo/client/core';\n\n@Injectable()\nexport class OctoErrorLink extends ApolloLink {\n private errorLink: ApolloLink;\n private readonly injector: Injector = inject(Injector);\n\n constructor() {\n super();\n\n // There is currently no other way to inject a service into an Apollo Link,\n // because Apollo deprecated without replacement\n this.errorLink = onError(({graphQLErrors, operation, forward}) => {\n const messageService = this.injector.get(MessageService);\n\n if (graphQLErrors) {\n\n let title = 'GraphQL error';\n let details = '';\n for (const error of graphQLErrors) {\n if (title == 'GraphQL error') {\n title = `${error.message}`;\n } else {\n details += `======================`;\n details += `${error.message}`;\n }\n\n if (error.extensions) {\n // check for custom error properties, OctoDetails should be an array of MessageDetails\n if (error.extensions['code']) {\n details += `Global Result Code: ${error.extensions['code']}`;\n }\n\n if (error.extensions['OctoDetails'] && Array.isArray(error.extensions['OctoDetails'])) {\n\n // iterate over the details and add them to the message\n for (const detail of error.extensions['OctoDetails']) {\n if (detail.message) {\n details += `\\n\\n✗ ${detail.message}`;\n }\n\n if (detail.details && Array.isArray(detail.details)) {\n for (const subDetail of detail.details) {\n if (subDetail) {\n details += `\\n • ${subDetail}`;\n }\n }\n }\n }\n\n }\n }\n }\n\n messageService.showError(details, title);\n }\n\n return forward(operation);\n });\n }\n\n override request(operation: any, forward: any) {\n return this.errorLink.request(operation, forward);\n }\n}\n","import { ModuleWithProviders, NgModule } from '@angular/core';\nimport { OctoServiceOptions } from './options/octo-service-options';\nimport { OctoMessageService } from \"./services/octo-message.service\";\nimport { OctoErrorLink } from \"./shared/octo-error-link\";\n\n@NgModule({\n declarations: [],\n imports: [],\n exports: []\n})\nexport class OctoServicesModule {\n static forRoot(octoServiceOptions: OctoServiceOptions): ModuleWithProviders<OctoServicesModule> {\n return {\n ngModule: OctoServicesModule,\n providers: [\n {\n provide: OctoServiceOptions,\n useValue: octoServiceOptions\n },\n OctoMessageService,\n OctoErrorLink\n ]\n };\n }\n}\n","export class GraphQL {\n public static getCursor(position: number): string {\n return btoa(`arrayconnection:${position}`);\n }\n\n public static offsetToCursor(offset: number): string | null {\n if (!offset) {\n return null;\n }\n\n return this.getCursor(offset - 1);\n }\n}\n\nexport const GraphQLCommonIgnoredProperties = ['__typename'];\nexport const GraphQLCloneIgnoredProperties = ['id', 'rtId', 'ckTypeId', '__typename'];\n","import { map, Subscription } from 'rxjs';\nimport { DataSourceBase, MessageService, PagedResultDto } from '@meshmakers/shared-services';\nimport { FieldFilterDto, InputMaybe, SearchFilterDto, SortDto } from '../shared/globalTypes';\nimport { Query, QueryRef } from 'apollo-angular';\nimport type { ApolloQueryResult, OperationVariables } from '@apollo/client/core';\nimport { GraphQL } from \"../shared/graphQL\";\n\nexport interface IQueryVariablesDto extends OperationVariables {\n first?: number | null | undefined;\n after?: string | null | undefined;\n sort?: InputMaybe<InputMaybe<SortDto> | InputMaybe<SortDto>[]> | undefined;\n searchFilter?: InputMaybe<SearchFilterDto> | undefined;\n fieldFilters?: InputMaybe<InputMaybe<FieldFilterDto>[] | InputMaybe<FieldFilterDto>>;\n}\n\nexport abstract class GraphQlDataSource<TDto> extends DataSourceBase<TDto> {\n public abstract refetch(): Promise<void>;\n\n public abstract refetchWith(\n skip?: number,\n take?: number,\n searchFilter?: SearchFilterDto | null,\n fieldFilter?: FieldFilterDto[] | null,\n sort?: SortDto[] | null\n ): Promise<void>;\n\n public abstract loadData(\n skip?: number,\n take?: number,\n searchFilter?: SearchFilterDto | null,\n fieldFilter?: FieldFilterDto[] | null,\n sort?: SortDto[] | null\n ): void;\n}\n\nexport class AssetRepoGraphQlDataSource<TDto, TQueryDto, TVariablesDto extends IQueryVariablesDto> extends GraphQlDataSource<TDto> {\n private queryRef: QueryRef<TQueryDto, TVariablesDto> | null;\n private subscription: Subscription | null;\n\n constructor(\n protected messageService: MessageService,\n private readonly query: Query<TQueryDto, TVariablesDto>,\n private readonly defaultSort: SortDto[] | null = null\n ) {\n super();\n this.queryRef = null;\n this.subscription = null;\n }\n\n override clear(): void {\n super.clear();\n this.queryRef?.stopPolling();\n this.queryRef = null;\n this.subscription?.unsubscribe();\n this.subscription = null;\n }\n\n public async refetch(): Promise<void> {\n await this.queryRef?.refetch();\n }\n\n public async refetchWith(\n skip = 0,\n take = 10,\n searchFilter: SearchFilterDto | null = null,\n fieldFilter: FieldFilterDto[] | null = null,\n sort: SortDto[] | null = null\n ): Promise<void> {\n const variables = this.createVariables(skip, take, searchFilter, fieldFilter, sort);\n await this.queryRef?.refetch(variables);\n }\n\n protected createVariables(\n skip = 0,\n take = 10,\n searchFilter: SearchFilterDto | null = null,\n fieldFilter: FieldFilterDto[] | null = null,\n sort: SortDto[] | null = null\n ): TVariablesDto {\n // Default sort\n if ((!sort || (sort && sort.length === 0)) && searchFilter === null) {\n sort = new Array<SortDto>();\n if (this.defaultSort) {\n sort = this.defaultSort;\n }\n }\n\n return {\n first: take,\n after: GraphQL.offsetToCursor(skip),\n sort,\n searchFilter,\n fieldFilters: fieldFilter\n } as TVariablesDto;\n }\n\n public loadData(\n skip = 0,\n take = 10,\n searchFilter: SearchFilterDto | null = null,\n fieldFilter: FieldFilterDto[] | null = null,\n sort: SortDto[] | null = null\n ): void {\n this.clear();\n super.onBeginLoad();\n\n const variables = this.createVariables(skip, take, searchFilter, fieldFilter, sort);\n this.queryRef = this.query.watch(variables, { errorPolicy: 'all' });\n\n this.subscription = this.queryRef.valueChanges\n .pipe(\n map((v, i) => this.executeLoad(v, i)))\n .subscribe({\n next: (pagedResult) => super.onCompleteLoad(pagedResult),\n error: (e) => {\n this.messageService.showErrorWithDetails(e);\n super.onCompleteLoad(new PagedResultDto<TDto>());\n }\n });\n }\n\n protected executeLoad(_value: ApolloQueryResult<TQueryDto>, _index: number): PagedResultDto<TDto> {\n return new PagedResultDto<TDto>();\n }\n}\n","/* eslint-disable */\n// @generated\n// This file was automatically generated and should not be edited.\n\n//==============================================================\n// START Enums and Input Objects\n//==============================================================\nexport type Maybe<T> = T | null;\nexport type InputMaybe<T> = Maybe<T>;\n\n/** All built-in and custom scalars, mapped to their actual values */\nexport type Scalars = {\n ID: { input: string; output: string; }\n String: { input: string; output: string; }\n Boolean: { input: boolean; output: boolean; }\n Int: { input: number; output: number; }\n Float: { input: number; output: number; }\n BigInt: { input: any; output: any; }\n CkAttributeId: { input: string; output: string; }\n CkEnumId: { input: string; output: string; }\n CkModelId: { input: any; output: any; }\n CkRecordId: { input: string; output: string; }\n CkTypeId: { input: string; output: string; }\n DateTime: { input: any; output: any; }\n Decimal: { input: any; output: any; }\n LargeBinary: { input: any; output: any; }\n OctoObjectId: { input: string; output: string; }\n Seconds: { input: any; output: any; }\n SimpleScalar: { input: any; output: any; }\n ULong: { input: any; output: any; }\n Uri: { input: any; output: any; }\n};\n\nexport type FieldFilterDto = {\n attributePath: Scalars['String']['input'];\n comparisonValue?: InputMaybe<Scalars['SimpleScalar']['input']>;\n operator: FieldFilterOperatorsDto;\n};\n\n/** Defines the operator of field compare */\nexport enum FieldFilterOperatorsDto {\n AnyEqDto = 'ANY_EQ',\n AnyLikeDto = 'ANY_LIKE',\n EqualsDto = 'EQUALS',\n GreaterEqualThanDto = 'GREATER_EQUAL_THAN',\n GreaterThanDto = 'GREATER_THAN',\n InDto = 'IN',\n LessEqualThanDto = 'LESS_EQUAL_THAN',\n LessThanDto = 'LESS_THAN',\n LikeDto = 'LIKE',\n MatchRegExDto = 'MATCH_REG_EX',\n NotEqualsDto = 'NOT_EQUALS',\n NotInDto = 'NOT_IN'\n}\n\n\nexport type SearchFilterDto = {\n attributePaths?: InputMaybe<Array<InputMaybe<Scalars['String']['input']>>>;\n language?: InputMaybe<Scalars['String']['input']>;\n searchTerm: Scalars['String']['input'];\n type?: InputMaybe<SearchFilterTypesDto>;\n};\n\n/** The type of search that is used (a text based search using text analysis (high performance, scoring, maybe more false positives) or filtering of attributes (lower performance, more exact results) */\nexport enum SearchFilterTypesDto {\n AttributeFilterDto = 'ATTRIBUTE_FILTER',\n TextSearchDto = 'TEXT_SEARCH'\n}\n\nexport type SortDto = {\n attributePath: Scalars['String']['input'];\n sortOrder?: InputMaybe<SortOrdersDto>;\n};\n\n/** Defines the sort order */\nexport enum SortOrdersDto {\n AscendingDto = 'ASCENDING',\n DefaultDto = 'DEFAULT',\n DescendingDto = 'DESCENDING'\n}\n\n//==============================================================\n// END Enums and Input Objects\n//==============================================================\n","/*\n * Public API Surface of octo-services\n */\n\nexport * from './lib/services/octo-graph-ql-service-base';\nexport * from './lib/services/octo-message.service';\nexport * from './lib/options/octo-service-options';\nexport * from './lib/octo-services.module';\nexport * from './lib/models/pagedGraphResultDto';\nexport * from './lib/shared/graphQL';\nexport * from './lib/services/assetRepoGraphQlDataSource';\nexport * from './lib/shared/globalTypes';\nexport * from './lib/shared/octo-error-link';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["map"],"mappings":"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"}
1
+ {"version":3,"file":"meshmakers-octo-services.mjs","sources":["../../../../projects/meshmakers/octo-services/src/lib/models/pagedGraphResultDto.ts","../../../../projects/meshmakers/octo-services/src/lib/services/octo-graph-ql-service-base.ts","../../../../projects/meshmakers/octo-services/src/lib/options/octo-service-options.ts","../../../../projects/meshmakers/octo-services/src/lib/shared/octo-error-link.ts","../../../../projects/meshmakers/octo-services/src/lib/octo-services.module.ts","../../../../projects/meshmakers/octo-services/src/lib/shared/graphQL.ts","../../../../projects/meshmakers/octo-services/src/lib/services/assetRepoGraphQlDataSource.ts","../../../../projects/meshmakers/octo-services/src/lib/shared/globalTypes.ts","../../../../projects/meshmakers/octo-services/src/public-api.ts","../../../../projects/meshmakers/octo-services/src/meshmakers-octo-services.ts"],"sourcesContent":["import { PagedResultDto } from '@meshmakers/shared-services';\n\nexport class PagedGraphResultDto<P, C> extends PagedResultDto<C> {\n document: P | null;\n\n constructor() {\n super();\n\n this.document = null;\n }\n}\n","import { DocumentNode } from 'graphql';\nimport { finalize, map } from 'rxjs/operators';\nimport { Apollo } from 'apollo-angular';\nimport { OctoServiceOptions } from '../options/octo-service-options';\nimport { PagedGraphResultDto } from '../models/pagedGraphResultDto';\nimport { PagedResultDto } from '@meshmakers/shared-services';\nimport { HttpLink } from 'apollo-angular/http';\nimport { InMemoryCache } from '@apollo/client/core';\nimport { OperationVariables } from '@apollo/client/core/types';\nimport { Observable } from 'rxjs';\nimport { DeepPartial } from \"@apollo/client/utilities\";\nimport QueryResult = Apollo.QueryResult;\nimport type { ObservableQuery } from \"@apollo/client\";\n\nexport class OctoGraphQLServiceBase {\n constructor(\n private readonly apollo: Apollo,\n private readonly httpLink: HttpLink,\n private readonly octoServiceOptions: OctoServiceOptions\n ) {}\n\n protected getEntities<TResult, TEntity, TVariable extends OperationVariables>(\n tenantId: string,\n variables: TVariable,\n queryNode: DocumentNode,\n watchQuery: boolean,\n f: (resultSet: PagedResultDto<TEntity>, result: NonNullable<TResult> | NonNullable<DeepPartial<TResult>>) => void\n ): Observable<PagedResultDto<TEntity>> {\n\n if (watchQuery){\n const prepareWatchQuery = this.prepareWatchQuery<TResult, TVariable>(tenantId, variables, queryNode);\n\n return prepareWatchQuery.pipe(\n map((result) => {\n const resultSet = new PagedResultDto<TEntity>();\n\n if (result.error != null) {\n console.error(result.error);\n throw Error('Error in GraphQL statement.');\n } else if (result.data) {\n f(resultSet, result.data);\n }\n return resultSet;\n })\n );\n } else {\n const prepareQuery = this.prepareQuery<TResult, TVariable>(tenantId, variables, queryNode);\n\n return prepareQuery.pipe(\n map((result) => {\n const resultSet = new PagedResultDto<TEntity>();\n\n if (result.error != null) {\n console.error(result.error);\n throw Error('Error in GraphQL statement.');\n } else if (result.data) {\n f(resultSet, result.data);\n }\n return resultSet;\n })\n );\n }\n }\n\n protected getGraphEntities<TResult, TP, TC, TVariable extends OperationVariables>(\n tenantId: string,\n variables: TVariable,\n queryNode: DocumentNode,\n watchQuery: boolean,\n f: (resultSet: PagedGraphResultDto<TP, TC>, result: NonNullable<TResult> | NonNullable<DeepPartial<TResult>>) => void\n ): Observable<PagedGraphResultDto<TP, TC>> {\n\n if (watchQuery){\n const prepareWatchQuery = this.prepareWatchQuery<TResult, TVariable>(tenantId, variables, queryNode);\n\n return prepareWatchQuery.pipe(\n map((result) => {\n const resultSet = new PagedGraphResultDto<TP, TC>();\n\n if (result.error != null) {\n console.error(result.error);\n throw Error('Error in GraphQL statement.');\n } else if (result.data) {\n f(resultSet, result.data);\n }\n return resultSet;\n })\n );\n } else{\n const prepareQuery = this.prepareQuery<TResult, TVariable>(tenantId, variables, queryNode);\n\n return prepareQuery.pipe(\n map((result) => {\n const resultSet = new PagedGraphResultDto<TP, TC>();\n\n if (result.error != null) {\n console.error(result.error);\n throw Error('Error in GraphQL statement.');\n } else if (result.data) {\n f(resultSet, result.data);\n }\n return resultSet;\n })\n );\n }\n }\n\n protected getEntityDetail<TResult, TEntity, TVariable extends OperationVariables>(\n tenantId: string,\n variables: TVariable,\n queryNode: DocumentNode,\n watchQuery: boolean,\n f: (result: NonNullable<TResult> | NonNullable<DeepPartial<TResult>>) => TEntity\n ): Observable<TEntity | null> {\n\n\n if (watchQuery){\n const query = this.prepareWatchQuery<TResult, TVariable>(tenantId, variables, queryNode);\n return query.pipe(\n map((result) => {\n if (result.error != null) {\n console.error(result.error);\n throw Error('Error in GraphQL statement.');\n } else if (result.data) {\n return f(result.data);\n }\n return null;\n })\n );\n }else {\n const query = this.prepareQuery<TResult, TVariable>(tenantId, variables, queryNode);\n return query.pipe(\n map((result) => {\n if (result.error != null) {\n console.error(result.error);\n throw Error('Error in GraphQL statement.');\n } else if (result.data) {\n return f(result.data);\n }\n return null;\n })\n );\n }\n }\n\n protected createUpdateEntity<TResult, TEntity, TVariable extends OperationVariables>(\n tenantId: string,\n variables: TVariable,\n queryNode: DocumentNode,\n f: (result: TResult | null | undefined) => TEntity\n ): Observable<TEntity> {\n this.createApolloForTenant(tenantId);\n\n return this.apollo\n .use(tenantId)\n .mutate<TResult>({\n mutation: queryNode,\n variables\n })\n .pipe(\n map((value) => f(value.data)),\n finalize(() => {\n const promise = this.apollo.use(tenantId).client.reFetchObservableQueries(true);\n promise\n .then(() => {})\n .catch((error: string) => {\n console.error(error);\n });\n })\n );\n }\n\n protected deleteEntity<TResult, TVariable extends OperationVariables>(\n tenantId: string,\n variables: TVariable,\n queryNode: DocumentNode,\n f: (result: TResult | null | undefined) => boolean\n ): Observable<boolean> {\n this.createApolloForTenant(tenantId);\n\n return this.apollo\n .use(tenantId)\n .mutate<TResult>({\n mutation: queryNode,\n variables\n })\n .pipe(\n map((value) => f(value.data)),\n finalize(() => {\n const promise = this.apollo.use(tenantId).client.reFetchObservableQueries(true);\n promise\n .then(() => {})\n .catch((error: string) => {\n console.error(error);\n });\n })\n );\n }\n\n private createApolloForTenant(tenantId: string): void {\n const result = this.apollo.use(tenantId);\n if (result) {\n return;\n }\n\n const service = this.octoServiceOptions.assetServices ?? '';\n const uri = `${service}tenants/${tenantId}/GraphQL`;\n\n this.apollo.createNamed(tenantId, {\n link: this.httpLink.create({ uri }),\n cache: new InMemoryCache({\n dataIdFromObject: (o) => (o['rtId'] as string)\n })\n });\n }\n\n private prepareWatchQuery<TResult, TVariable extends OperationVariables>(\n tenantId: string,\n variables: TVariable,\n queryNode: DocumentNode\n ): Observable<ObservableQuery.Result<TResult>> {\n this.createApolloForTenant(tenantId);\n\n return this.apollo.use(tenantId).watchQuery<TResult>({\n query: queryNode,\n variables\n }).valueChanges;\n }\n\n private prepareQuery<TResult, TVariable extends OperationVariables>(\n tenantId: string,\n variables: TVariable,\n queryNode: DocumentNode\n ): Observable<QueryResult<TResult>> {\n this.createApolloForTenant(tenantId);\n\n return this.apollo.use(tenantId).query<TResult>({\n query: queryNode,\n variables,\n fetchPolicy: 'network-only'\n });\n }\n}\n","export class OctoServiceOptions {\n assetServices: string | null;\n defaultDataSourceId?: string;\n\n constructor() {\n this.assetServices = null;\n this.defaultDataSourceId = undefined;\n }\n}\n","import {onError} from '@apollo/client/link/error';\nimport { inject, Injectable, Injector } from \"@angular/core\";\nimport {MessageService} from \"@meshmakers/shared-services\";\nimport {ApolloLink} from '@apollo/client/core';\nimport { CombinedGraphQLErrors, ErrorLike } from \"@apollo/client\";\n\n@Injectable()\nexport class OctoErrorLink extends ApolloLink {\n private errorLink: ApolloLink;\n private readonly injector: Injector = inject(Injector);\n\n constructor() {\n super();\n\n // There is currently no other way to inject a service into an Apollo Link,\n // because Apollo deprecated without replacement\n this.errorLink = onError(({error, operation, forward}) => {\n\n if (error) {\n\n if (error instanceof CombinedGraphQLErrors) {\n this.showError(error);\n } else {\n this.showErrorLike(error);\n }\n }\n\n return forward(operation);\n });\n }\n\n private showErrorLike(error: ErrorLike): void {\n const messageService = this.injector.get(MessageService);\n\n const title = error.message;\n const details = error.message\n\n console.error(error);\n\n messageService.showError(details, title);\n }\n\n private showError(combinedGraphQLErrors: CombinedGraphQLErrors): void{\n const messageService = this.injector.get(MessageService);\n\n let title = 'GraphQL error';\n let details = '';\n for (const error of combinedGraphQLErrors.errors) {\n\n console.error(error);\n\n if (title == 'GraphQL error') {\n title = `${error.message}`;\n } else {\n details += `======================`;\n details += `${error.message}`;\n }\n\n if (error.extensions) {\n // check for custom error properties, OctoDetails should be an array of MessageDetails\n if (error.extensions['code']) {\n details += `Global Result Code: ${error.extensions['code']}`;\n }\n\n if (error.extensions['OctoDetails'] && Array.isArray(error.extensions['OctoDetails'])) {\n\n // iterate over the details and add them to the message\n for (const detail of error.extensions['OctoDetails']) {\n if (detail.message) {\n details += `\\n\\n✗ ${detail.message}`;\n }\n\n if (detail.details && Array.isArray(detail.details)) {\n for (const subDetail of detail.details) {\n if (subDetail) {\n details += `\\n • ${subDetail}`;\n }\n }\n }\n }\n }\n }\n messageService.showError(details, title);\n }\n\n }\n\n override request(operation: any, forward: any) {\n return this.errorLink.request(operation, forward);\n }\n}\n","import { ModuleWithProviders, NgModule } from '@angular/core';\nimport { OctoServiceOptions } from './options/octo-service-options';\nimport { OctoErrorLink } from \"./shared/octo-error-link\";\n\n@NgModule({\n declarations: [],\n imports: [],\n exports: []\n})\nexport class OctoServicesModule {\n static forRoot(octoServiceOptions: OctoServiceOptions): ModuleWithProviders<OctoServicesModule> {\n return {\n ngModule: OctoServicesModule,\n providers: [\n {\n provide: OctoServiceOptions,\n useValue: octoServiceOptions\n },\n OctoErrorLink\n ]\n };\n }\n}\n","export class GraphQL {\n public static getCursor(position: number): string {\n return btoa(`arrayconnection:${position}`);\n }\n\n public static offsetToCursor(offset: number): string | null {\n if (!offset) {\n return null;\n }\n\n return this.getCursor(offset - 1);\n }\n}\n\nexport const GraphQLCommonIgnoredProperties = ['__typename'];\nexport const GraphQLCloneIgnoredProperties = ['id', 'rtId', 'ckTypeId', '__typename'];\n","import { map, Subscription } from 'rxjs';\nimport { DataSourceBase, MessageService, PagedResultDto } from '@meshmakers/shared-services';\nimport { FieldFilterDto, InputMaybe, SearchFilterDto, SortDto } from '../shared/globalTypes';\nimport { Query, QueryRef } from 'apollo-angular';\nimport type { OperationVariables } from '@apollo/client/core';\nimport { GraphQL } from \"../shared/graphQL\";\nimport type { ObservableQuery } from \"@apollo/client\";\n\nexport interface IQueryVariablesDto extends OperationVariables {\n first?: number | null | undefined;\n after?: string | null | undefined;\n sort?: InputMaybe<InputMaybe<SortDto> | InputMaybe<SortDto>[]> | undefined;\n searchFilter?: InputMaybe<SearchFilterDto> | undefined;\n fieldFilters?: InputMaybe<InputMaybe<FieldFilterDto>[] | InputMaybe<FieldFilterDto>>;\n}\n\nexport abstract class GraphQlDataSource<TDto> extends DataSourceBase<TDto> {\n public abstract refetch(): Promise<void>;\n\n public abstract refetchWith(\n skip?: number,\n take?: number,\n searchFilter?: SearchFilterDto | null,\n fieldFilter?: FieldFilterDto[] | null,\n sort?: SortDto[] | null\n ): Promise<void>;\n\n public abstract loadData(\n skip?: number,\n take?: number,\n searchFilter?: SearchFilterDto | null,\n fieldFilter?: FieldFilterDto[] | null,\n sort?: SortDto[] | null\n ): void;\n}\n\nexport class AssetRepoGraphQlDataSource<TDto, TQueryDto, TVariablesDto extends IQueryVariablesDto> extends GraphQlDataSource<TDto> {\n private queryRef: QueryRef<TQueryDto, TVariablesDto> | null;\n private subscription: Subscription | null;\n\n constructor(\n protected messageService: MessageService,\n private readonly query: Query<TQueryDto, TVariablesDto>,\n private readonly defaultSort: SortDto[] | null = null\n ) {\n super();\n this.queryRef = null;\n this.subscription = null;\n }\n\n override clear(): void {\n super.clear();\n this.queryRef?.stopPolling();\n this.queryRef = null;\n this.subscription?.unsubscribe();\n this.subscription = null;\n }\n\n public async refetch(): Promise<void> {\n await this.queryRef?.refetch();\n }\n\n public async refetchWith(\n skip = 0,\n take = 10,\n searchFilter: SearchFilterDto | null = null,\n fieldFilter: FieldFilterDto[] | null = null,\n sort: SortDto[] | null = null\n ): Promise<void> {\n const variables = this.createVariables(skip, take, searchFilter, fieldFilter, sort);\n await this.queryRef?.refetch(variables);\n }\n\n protected createVariables(\n skip = 0,\n take = 10,\n searchFilter: SearchFilterDto | null = null,\n fieldFilter: FieldFilterDto[] | null = null,\n sort: SortDto[] | null = null\n ): TVariablesDto {\n // Default sort\n if ((!sort || (sort && sort.length === 0)) && searchFilter === null) {\n sort = new Array<SortDto>();\n if (this.defaultSort) {\n sort = this.defaultSort;\n }\n }\n\n return {\n first: take,\n after: GraphQL.offsetToCursor(skip),\n sort,\n searchFilter,\n fieldFilters: fieldFilter\n } as TVariablesDto;\n }\n\n public loadData(\n skip = 0,\n take = 10,\n searchFilter: SearchFilterDto | null = null,\n fieldFilter: FieldFilterDto[] | null = null,\n sort: SortDto[] | null = null\n ): void {\n this.clear();\n super.onBeginLoad();\n\n const variables = this.createVariables(skip, take, searchFilter, fieldFilter, sort);\n this.queryRef = this.query.watch({ variables, errorPolicy: 'all' } as Query.WatchOptions<TQueryDto, TVariablesDto>);\n\n this.subscription = this.queryRef.valueChanges\n .pipe(\n map((v, i) => this.executeLoad(v, i)))\n .subscribe({\n next: (pagedResult) => super.onCompleteLoad(pagedResult),\n error: (e) => {\n this.messageService.showErrorWithDetails(e);\n super.onCompleteLoad(new PagedResultDto<TDto>());\n }\n });\n }\n\n protected executeLoad(_value: ObservableQuery.Result<TQueryDto>, _index: number): PagedResultDto<TDto> {\n return new PagedResultDto<TDto>();\n }\n}\n","/* eslint-disable */\n// @generated\n// This file was automatically generated and should not be edited.\n\n//==============================================================\n// START Enums and Input Objects\n//==============================================================\nexport type Maybe<T> = T | null;\nexport type InputMaybe<T> = Maybe<T>;\n\n/** All built-in and custom scalars, mapped to their actual values */\nexport type Scalars = {\n ID: { input: string; output: string; }\n String: { input: string; output: string; }\n Boolean: { input: boolean; output: boolean; }\n Int: { input: number; output: number; }\n Float: { input: number; output: number; }\n BigInt: { input: any; output: any; }\n CkAttributeId: { input: string; output: string; }\n CkEnumId: { input: string; output: string; }\n CkModelId: { input: any; output: any; }\n CkRecordId: { input: string; output: string; }\n CkTypeId: { input: string; output: string; }\n DateTime: { input: any; output: any; }\n Decimal: { input: any; output: any; }\n LargeBinary: { input: any; output: any; }\n OctoObjectId: { input: string; output: string; }\n Seconds: { input: any; output: any; }\n SimpleScalar: { input: any; output: any; }\n ULong: { input: any; output: any; }\n Uri: { input: any; output: any; }\n};\n\nexport type FieldFilterDto = {\n attributePath: Scalars['String']['input'];\n comparisonValue?: InputMaybe<Scalars['SimpleScalar']['input']>;\n operator: FieldFilterOperatorsDto;\n};\n\n/** Defines the operator of field compare */\nexport enum FieldFilterOperatorsDto {\n AnyEqDto = 'ANY_EQ',\n AnyLikeDto = 'ANY_LIKE',\n EqualsDto = 'EQUALS',\n GreaterEqualThanDto = 'GREATER_EQUAL_THAN',\n GreaterThanDto = 'GREATER_THAN',\n InDto = 'IN',\n LessEqualThanDto = 'LESS_EQUAL_THAN',\n LessThanDto = 'LESS_THAN',\n LikeDto = 'LIKE',\n MatchRegExDto = 'MATCH_REG_EX',\n NotEqualsDto = 'NOT_EQUALS',\n NotInDto = 'NOT_IN'\n}\n\n\nexport type SearchFilterDto = {\n attributePaths?: InputMaybe<Array<InputMaybe<Scalars['String']['input']>>>;\n language?: InputMaybe<Scalars['String']['input']>;\n searchTerm: Scalars['String']['input'];\n type?: InputMaybe<SearchFilterTypesDto>;\n};\n\n/** The type of search that is used (a text based search using text analysis (high performance, scoring, maybe more false positives) or filtering of attributes (lower performance, more exact results) */\nexport enum SearchFilterTypesDto {\n AttributeFilterDto = 'ATTRIBUTE_FILTER',\n TextSearchDto = 'TEXT_SEARCH'\n}\n\nexport type SortDto = {\n attributePath: Scalars['String']['input'];\n sortOrder?: InputMaybe<SortOrdersDto>;\n};\n\n/** Defines the sort order */\nexport enum SortOrdersDto {\n AscendingDto = 'ASCENDING',\n DefaultDto = 'DEFAULT',\n DescendingDto = 'DESCENDING'\n}\n\n//==============================================================\n// END Enums and Input Objects\n//==============================================================\n","/*\n * Public API Surface of octo-services\n */\n\nexport * from './lib/services/octo-graph-ql-service-base';\nexport * from './lib/options/octo-service-options';\nexport * from './lib/octo-services.module';\nexport * from './lib/models/pagedGraphResultDto';\nexport * from './lib/shared/graphQL';\nexport * from './lib/services/assetRepoGraphQlDataSource';\nexport * from './lib/shared/globalTypes';\nexport * from './lib/shared/octo-error-link';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["map"],"mappings":"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"}
package/index.d.ts CHANGED
@@ -1,14 +1,16 @@
1
+ import * as graphql from 'graphql';
1
2
  import { DocumentNode } from 'graphql';
2
3
  import { Apollo, Query } from 'apollo-angular';
3
4
  import { PagedResultDto, DataSourceBase, MessageService } from '@meshmakers/shared-services';
4
5
  import { HttpLink } from 'apollo-angular/http';
5
6
  import { OperationVariables } from '@apollo/client/core/types';
6
7
  import { Observable } from 'rxjs';
8
+ import { DeepPartial } from '@apollo/client/utilities';
7
9
  import * as i0 from '@angular/core';
8
10
  import { ModuleWithProviders } from '@angular/core';
9
- import * as _apollo_client_core from '@apollo/client/core';
10
- import { OperationVariables as OperationVariables$1, ApolloQueryResult, ApolloLink } from '@apollo/client/core';
11
- import * as zen_observable_ts from 'zen-observable-ts';
11
+ import { OperationVariables as OperationVariables$1, ApolloLink } from '@apollo/client/core';
12
+ import * as _apollo_client from '@apollo/client';
13
+ import { ObservableQuery } from '@apollo/client';
12
14
 
13
15
  declare class OctoServiceOptions {
14
16
  assetServices: string | null;
@@ -26,9 +28,9 @@ declare class OctoGraphQLServiceBase {
26
28
  private readonly httpLink;
27
29
  private readonly octoServiceOptions;
28
30
  constructor(apollo: Apollo, httpLink: HttpLink, octoServiceOptions: OctoServiceOptions);
29
- protected getEntities<TResult, TEntity, TVariable extends OperationVariables>(tenantId: string, variables: TVariable, queryNode: DocumentNode, watchQuery: boolean, f: (resultSet: PagedResultDto<TEntity>, result: TResult) => void): Observable<PagedResultDto<TEntity>>;
30
- protected getGraphEntities<TResult, TP, TC, TVariable extends OperationVariables>(tenantId: string, variables: TVariable, queryNode: DocumentNode, watchQuery: boolean, f: (resultSet: PagedGraphResultDto<TP, TC>, result: TResult) => void): Observable<PagedGraphResultDto<TP, TC>>;
31
- protected getEntityDetail<TResult, TEntity, TVariable extends OperationVariables>(tenantId: string, variables: TVariable, queryNode: DocumentNode, watchQuery: boolean, f: (result: TResult) => TEntity): Observable<TEntity | null>;
31
+ protected getEntities<TResult, TEntity, TVariable extends OperationVariables>(tenantId: string, variables: TVariable, queryNode: DocumentNode, watchQuery: boolean, f: (resultSet: PagedResultDto<TEntity>, result: NonNullable<TResult> | NonNullable<DeepPartial<TResult>>) => void): Observable<PagedResultDto<TEntity>>;
32
+ protected getGraphEntities<TResult, TP, TC, TVariable extends OperationVariables>(tenantId: string, variables: TVariable, queryNode: DocumentNode, watchQuery: boolean, f: (resultSet: PagedGraphResultDto<TP, TC>, result: NonNullable<TResult> | NonNullable<DeepPartial<TResult>>) => void): Observable<PagedGraphResultDto<TP, TC>>;
33
+ protected getEntityDetail<TResult, TEntity, TVariable extends OperationVariables>(tenantId: string, variables: TVariable, queryNode: DocumentNode, watchQuery: boolean, f: (result: NonNullable<TResult> | NonNullable<DeepPartial<TResult>>) => TEntity): Observable<TEntity | null>;
32
34
  protected createUpdateEntity<TResult, TEntity, TVariable extends OperationVariables>(tenantId: string, variables: TVariable, queryNode: DocumentNode, f: (result: TResult | null | undefined) => TEntity): Observable<TEntity>;
33
35
  protected deleteEntity<TResult, TVariable extends OperationVariables>(tenantId: string, variables: TVariable, queryNode: DocumentNode, f: (result: TResult | null | undefined) => boolean): Observable<boolean>;
34
36
  private createApolloForTenant;
@@ -36,13 +38,6 @@ declare class OctoGraphQLServiceBase {
36
38
  private prepareQuery;
37
39
  }
38
40
 
39
- declare class OctoMessageService {
40
- private readonly messageService;
41
- showErrorWithDetails(error: any): void;
42
- static ɵfac: i0.ɵɵFactoryDeclaration<OctoMessageService, never>;
43
- static ɵprov: i0.ɵɵInjectableDeclaration<OctoMessageService>;
44
- }
45
-
46
41
  declare class OctoServicesModule {
47
42
  static forRoot(octoServiceOptions: OctoServiceOptions): ModuleWithProviders<OctoServicesModule>;
48
43
  static ɵfac: i0.ɵɵFactoryDeclaration<OctoServicesModule, never>;
@@ -204,17 +199,19 @@ declare class AssetRepoGraphQlDataSource<TDto, TQueryDto, TVariablesDto extends
204
199
  refetchWith(skip?: number, take?: number, searchFilter?: SearchFilterDto | null, fieldFilter?: FieldFilterDto[] | null, sort?: SortDto[] | null): Promise<void>;
205
200
  protected createVariables(skip?: number, take?: number, searchFilter?: SearchFilterDto | null, fieldFilter?: FieldFilterDto[] | null, sort?: SortDto[] | null): TVariablesDto;
206
201
  loadData(skip?: number, take?: number, searchFilter?: SearchFilterDto | null, fieldFilter?: FieldFilterDto[] | null, sort?: SortDto[] | null): void;
207
- protected executeLoad(_value: ApolloQueryResult<TQueryDto>, _index: number): PagedResultDto<TDto>;
202
+ protected executeLoad(_value: ObservableQuery.Result<TQueryDto>, _index: number): PagedResultDto<TDto>;
208
203
  }
209
204
 
210
205
  declare class OctoErrorLink extends ApolloLink {
211
206
  private errorLink;
212
207
  private readonly injector;
213
208
  constructor();
214
- request(operation: any, forward: any): zen_observable_ts.Observable<_apollo_client_core.FetchResult> | null;
209
+ private showErrorLike;
210
+ private showError;
211
+ request(operation: any, forward: any): _apollo_client.Observable<graphql.FormattedExecutionResult<Record<string, any>, Record<string, any>>>;
215
212
  static ɵfac: i0.ɵɵFactoryDeclaration<OctoErrorLink, never>;
216
213
  static ɵprov: i0.ɵɵInjectableDeclaration<OctoErrorLink>;
217
214
  }
218
215
 
219
- export { AssetRepoGraphQlDataSource, FieldFilterOperatorsDto, GraphQL, GraphQLCloneIgnoredProperties, GraphQLCommonIgnoredProperties, GraphQlDataSource, OctoErrorLink, OctoGraphQLServiceBase, OctoMessageService, OctoServiceOptions, OctoServicesModule, PagedGraphResultDto, SearchFilterTypesDto, SortOrdersDto };
216
+ export { AssetRepoGraphQlDataSource, FieldFilterOperatorsDto, GraphQL, GraphQLCloneIgnoredProperties, GraphQLCommonIgnoredProperties, GraphQlDataSource, OctoErrorLink, OctoGraphQLServiceBase, OctoServiceOptions, OctoServicesModule, PagedGraphResultDto, SearchFilterTypesDto, SortOrdersDto };
220
217
  export type { FieldFilterDto, IQueryVariablesDto, InputMaybe, Maybe, Scalars, SearchFilterDto, SortDto };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@meshmakers/octo-services",
3
- "version": "3.2.172-0",
3
+ "version": "3.2.175-0",
4
4
  "peerDependencies": {
5
5
  "@angular/common": "^20.2.3",
6
6
  "@angular/core": "^20.2.3",