@ama-sdk/client-angular 11.3.0-prerelease.47

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (59) hide show
  1. package/LICENSE +26 -0
  2. package/README.md +26 -0
  3. package/cjs/angular-plugin.js +4 -0
  4. package/cjs/api-angular-client.js +562 -0
  5. package/cjs/index.spec.js +5 -0
  6. package/cjs/plugins/index.js +18 -0
  7. package/cjs/plugins/mock-intercept/index.js +19 -0
  8. package/cjs/plugins/mock-intercept/mock-intercept.angular.js +346 -0
  9. package/cjs/plugins/mock-intercept/mock-intercept.interface.js +4 -0
  10. package/cjs/public_api.js +20 -0
  11. package/collection.json +11 -0
  12. package/esm2015/angular-plugin.js +4 -0
  13. package/esm2015/api-angular-client.js +552 -0
  14. package/esm2015/index.spec.js +4 -0
  15. package/esm2015/plugins/index.js +1 -0
  16. package/esm2015/plugins/mock-intercept/index.js +2 -0
  17. package/esm2015/plugins/mock-intercept/mock-intercept.angular.js +341 -0
  18. package/esm2015/plugins/mock-intercept/mock-intercept.interface.js +3 -0
  19. package/esm2015/public_api.js +3 -0
  20. package/package.json +192 -0
  21. package/schematics/ng-add/index.d.ts +8 -0
  22. package/schematics/ng-add/index.d.ts.map +1 -0
  23. package/schematics/ng-add/index.js +67 -0
  24. package/schematics/ng-add/migration/import-map.d.ts +6 -0
  25. package/schematics/ng-add/migration/import-map.d.ts.map +1 -0
  26. package/schematics/ng-add/migration/import-map.js +17 -0
  27. package/schematics/ng-add/schema.d.ts +6 -0
  28. package/schematics/ng-add/schema.d.ts.map +1 -0
  29. package/schematics/ng-add/schema.js +3 -0
  30. package/schematics/ng-add/schema.json +18 -0
  31. package/schematics/package.json +3 -0
  32. package/src/angular-plugin.d.ts +38 -0
  33. package/src/angular-plugin.d.ts.map +1 -0
  34. package/src/angular-plugin.js +2 -0
  35. package/src/angular-plugin.js.map +1 -0
  36. package/src/api-angular-client.d.ts +49 -0
  37. package/src/api-angular-client.d.ts.map +1 -0
  38. package/src/api-angular-client.js +131 -0
  39. package/src/api-angular-client.js.map +1 -0
  40. package/src/plugins/index.d.ts +2 -0
  41. package/src/plugins/index.d.ts.map +1 -0
  42. package/src/plugins/index.js +2 -0
  43. package/src/plugins/index.js.map +1 -0
  44. package/src/plugins/mock-intercept/index.d.ts +3 -0
  45. package/src/plugins/mock-intercept/index.d.ts.map +1 -0
  46. package/src/plugins/mock-intercept/index.js +3 -0
  47. package/src/plugins/mock-intercept/index.js.map +1 -0
  48. package/src/plugins/mock-intercept/mock-intercept.angular.d.ts +15 -0
  49. package/src/plugins/mock-intercept/mock-intercept.angular.d.ts.map +1 -0
  50. package/src/plugins/mock-intercept/mock-intercept.angular.js +62 -0
  51. package/src/plugins/mock-intercept/mock-intercept.angular.js.map +1 -0
  52. package/src/plugins/mock-intercept/mock-intercept.interface.d.ts +12 -0
  53. package/src/plugins/mock-intercept/mock-intercept.interface.d.ts.map +1 -0
  54. package/src/plugins/mock-intercept/mock-intercept.interface.js +2 -0
  55. package/src/plugins/mock-intercept/mock-intercept.interface.js.map +1 -0
  56. package/src/public_api.d.ts +4 -0
  57. package/src/public_api.d.ts.map +1 -0
  58. package/src/public_api.js +4 -0
  59. package/src/public_api.js.map +1 -0
@@ -0,0 +1,18 @@
1
+ {
2
+ "$schema": "http://json-schema.org/draft-07/schema",
3
+ "$id": "ngAddSchematicsSchema",
4
+ "title": "Add Otter ama-sdk-client-angular ",
5
+ "description": "ngAdd Otter ama-sdk-client-angular",
6
+ "properties": {
7
+ "projectName": {
8
+ "type": "string",
9
+ "description": "Project name",
10
+ "$default": {
11
+ "$source": "projectName"
12
+ }
13
+ }
14
+ },
15
+ "additionalProperties": true,
16
+ "required": [
17
+ ]
18
+ }
@@ -0,0 +1,3 @@
1
+ {
2
+ "type": "commonjs"
3
+ }
@@ -0,0 +1,38 @@
1
+ import type { Observable } from 'rxjs';
2
+ import type { HttpResponse } from '@angular/common/http';
3
+ import type { ApiClient, PluginContext, RequestOptions } from '@ama-sdk/core';
4
+ /**
5
+ * Interface of an async runnable plugin
6
+ */
7
+ export interface PluginObservableRunner<T, V> {
8
+ /** Transformation function */
9
+ transform(data: V): Observable<T>;
10
+ }
11
+ /** Angular HTTP Call Response type */
12
+ export type AngularCall = Observable<HttpResponse<any>>;
13
+ /**
14
+ * Interface of an SDK reply plugin.
15
+ * The plugin will be run on the reply of a call
16
+ */
17
+ export interface AngularPluginContext extends PluginContext {
18
+ /** URL targeted */
19
+ url: string;
20
+ /** List of loaded plugins apply to the Angular HTTP call */
21
+ angularPlugins: PluginObservableRunner<HttpResponse<any>, AngularCall>[];
22
+ /** Api Client processing the call the the API */
23
+ apiClient: ApiClient;
24
+ /** Angular call options */
25
+ requestOptions: RequestOptions;
26
+ }
27
+ /**
28
+ * Interface of a Angular plugin.
29
+ * The plugin will be run around the Angular Http call
30
+ */
31
+ export interface AngularPlugin {
32
+ /**
33
+ * Load the plugin with the context
34
+ * @param context Context of Angular plugin
35
+ */
36
+ load(context: AngularPluginContext): PluginObservableRunner<HttpResponse<any>, AngularCall>;
37
+ }
38
+ //# sourceMappingURL=angular-plugin.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"angular-plugin.d.ts","sourceRoot":"","sources":["../../src/angular-plugin.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,MAAM,CAAC;AACvC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,KAAK,EAAE,SAAS,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAE9E;;GAEG;AACH,MAAM,WAAW,sBAAsB,CAAC,CAAC,EAAE,CAAC;IAC1C,8BAA8B;IAC9B,SAAS,CAAC,IAAI,EAAE,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;CACnC;AAED,sCAAsC;AACtC,MAAM,MAAM,WAAW,GAAG,UAAU,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC;AAExD;;;GAGG;AACH,MAAM,WAAW,oBAAqB,SAAQ,aAAa;IACzD,mBAAmB;IACnB,GAAG,EAAE,MAAM,CAAC;IAEZ,4DAA4D;IAC5D,cAAc,EAAE,sBAAsB,CAAC,YAAY,CAAC,GAAG,CAAC,EAAE,WAAW,CAAC,EAAE,CAAC;IAEzE,iDAAiD;IACjD,SAAS,EAAE,SAAS,CAAC;IAErB,2BAA2B;IAC3B,cAAc,EAAE,cAAc,CAAC;CAChC;AAED;;;GAGG;AACH,MAAM,WAAW,aAAa;IAC5B;;;OAGG;IACH,IAAI,CAAC,OAAO,EAAE,oBAAoB,GAAG,sBAAsB,CAAC,YAAY,CAAC,GAAG,CAAC,EAAE,WAAW,CAAC,CAAC;CAC7F"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=angular-plugin.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"angular-plugin.js","sourceRoot":"","sources":["../../src/angular-plugin.ts"],"names":[],"mappings":""}
@@ -0,0 +1,49 @@
1
+ import type { HttpClient } from '@angular/common/http';
2
+ import type { ApiClient, ApiTypes, BaseApiClientOptions, PartialExcept, RequestOptions, RequestOptionsParameters, ReviverType, TokenizedOptions } from '@ama-sdk/core';
3
+ import type { AngularPlugin } from './angular-plugin';
4
+ /** @see BaseApiClientOptions */
5
+ export interface BaseApiAngularClientOptions extends BaseApiClientOptions {
6
+ /** Angular HTTP Client */
7
+ httpClient: HttpClient;
8
+ /** List of plugins to apply to the Angular Http call */
9
+ angularPlugins: AngularPlugin[];
10
+ }
11
+ /** @see BaseApiConstructor */
12
+ export interface BaseApiAngularClientConstructor extends PartialExcept<BaseApiAngularClientOptions, 'basePath' | 'httpClient'> {
13
+ }
14
+ /** Client to process the call to the API using Angular API */
15
+ export declare class ApiAngularClient implements ApiClient {
16
+ /** @inheritdoc */
17
+ options: BaseApiAngularClientOptions;
18
+ /**
19
+ * Initialize your API Client instance
20
+ * @param options Configuration of the API Client
21
+ */
22
+ constructor(options: BaseApiAngularClientConstructor);
23
+ /** @inheritdoc */
24
+ extractQueryParams<T extends {
25
+ [key: string]: any;
26
+ }>(data: T, names: (keyof T)[]): {
27
+ [p in keyof T]: string;
28
+ };
29
+ /** @inheritdoc */
30
+ getRequestOptions(requestOptionsParameters: RequestOptionsParameters): Promise<RequestOptions>;
31
+ /** @inheritdoc */
32
+ prepareUrl(url: string, queryParameters?: {
33
+ [key: string]: string | undefined;
34
+ }): string;
35
+ /** @inheritdoc */
36
+ processFormData(data: any, type: string): string | FormData;
37
+ /** @inheritdoc */
38
+ tokenizeRequestOptions(url: string, queryParameters: {
39
+ [key: string]: string;
40
+ }, piiParamTokens: {
41
+ [key: string]: string;
42
+ }, data: any): TokenizedOptions | undefined;
43
+ /** @inheritdoc */
44
+ processCall(url: string, options: RequestOptions, apiType: ApiTypes | string, apiName: string, revivers?: undefined, operationId?: string): Promise<void>;
45
+ processCall<T>(url: string, options: RequestOptions, apiType: ApiTypes, apiName: string, revivers: ReviverType<T> | {
46
+ [statusCode: number]: ReviverType<T> | undefined;
47
+ }, operationId?: string): Promise<T>;
48
+ }
49
+ //# sourceMappingURL=api-angular-client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api-angular-client.d.ts","sourceRoot":"","sources":["../../src/api-angular-client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAgB,MAAM,sBAAsB,CAAC;AACrE,OAAO,KAAK,EACV,SAAS,EACT,QAAQ,EACR,oBAAoB,EACpB,aAAa,EACb,cAAc,EACd,wBAAwB,EACxB,WAAW,EACX,gBAAgB,EACjB,MAAM,eAAe,CAAC;AAYvB,OAAO,KAAK,EAAe,aAAa,EAA0B,MAAM,kBAAkB,CAAC;AAE3F,gCAAgC;AAChC,MAAM,WAAW,2BAA4B,SAAQ,oBAAoB;IACvE,2BAA2B;IAC3B,UAAU,EAAE,UAAU,CAAC;IACvB,wDAAwD;IACxD,cAAc,EAAE,aAAa,EAAE,CAAC;CACjC;AAED,8BAA8B;AAC9B,MAAM,WAAW,+BAAgC,SAAQ,aAAa,CAAC,2BAA2B,EAAE,UAAU,GAAG,YAAY,CAAC;CAC7H;AAUD,8DAA8D;AAC9D,qBAAa,gBAAiB,YAAW,SAAS;IAEhD,kBAAkB;IACX,OAAO,EAAE,2BAA2B,CAAC;IAE5C;;;OAGG;gBACS,OAAO,EAAE,+BAA+B;IAOpD,kBAAkB;IACX,kBAAkB,CAAC,CAAC,SAAS;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;KAAE,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,MAAM,CAAC,CAAC,EAAE,GAAG;SAAG,CAAC,IAAI,MAAM,CAAC,GAAG,MAAM;KAAG;IAIrH,kBAAkB;IACL,iBAAiB,CAAC,wBAAwB,EAAE,wBAAwB,GAAG,OAAO,CAAC,cAAc,CAAC;IAkB3G,kBAAkB;IACX,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,eAAe,GAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAA;KAAO;IAI1F,kBAAkB;IACX,eAAe,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM;IAI9C,kBAAkB;IACX,sBAAsB,CAAC,GAAG,EAAE,MAAM,EAAE,eAAe,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE,EAAE,cAAc,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE,EAAE,IAAI,EAAE,GAAG,GAAG,gBAAgB,GAAG,SAAS;IAI1K,kBAAkB;IACL,WAAW,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,cAAc,EAAE,OAAO,EAAE,QAAQ,GAAG,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,SAAS,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IACzJ,WAAW,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,cAAc,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,WAAW,CAAC,CAAC,CAAC,GAAG;QAAE,CAAC,UAAU,EAAE,MAAM,GAAG,WAAW,CAAC,CAAC,CAAC,GAAG,SAAS,CAAA;KAAE,EACnL,WAAW,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC;CA2FpC"}
@@ -0,0 +1,131 @@
1
+ import { EmptyResponseError, ExceptionReply, extractQueryParams, filterUndefinedValues, getResponseReviver, prepareUrl, processFormData, ReviverReply, tokenizeRequestOptions } from '@ama-sdk/core';
2
+ const DEFAULT_OPTIONS = {
3
+ replyPlugins: [new ReviverReply(), new ExceptionReply()],
4
+ angularPlugins: [],
5
+ requestPlugins: [],
6
+ enableTokenization: false,
7
+ disableFallback: false
8
+ };
9
+ /** Client to process the call to the API using Angular API */
10
+ export class ApiAngularClient {
11
+ /**
12
+ * Initialize your API Client instance
13
+ * @param options Configuration of the API Client
14
+ */
15
+ constructor(options) {
16
+ this.options = {
17
+ ...DEFAULT_OPTIONS,
18
+ ...options
19
+ };
20
+ }
21
+ /** @inheritdoc */
22
+ extractQueryParams(data, names) {
23
+ return extractQueryParams(data, names);
24
+ }
25
+ /** @inheritdoc */
26
+ async getRequestOptions(requestOptionsParameters) {
27
+ let opts = {
28
+ ...requestOptionsParameters,
29
+ headers: new Headers(filterUndefinedValues(requestOptionsParameters.headers)),
30
+ queryParams: filterUndefinedValues(requestOptionsParameters.queryParams)
31
+ };
32
+ if (this.options.requestPlugins) {
33
+ for (const plugin of this.options.requestPlugins) {
34
+ opts = await plugin.load({
35
+ logger: this.options.logger,
36
+ apiName: requestOptionsParameters.api?.apiName
37
+ }).transform(opts);
38
+ }
39
+ }
40
+ return opts;
41
+ }
42
+ /** @inheritdoc */
43
+ prepareUrl(url, queryParameters = {}) {
44
+ return prepareUrl(url, queryParameters);
45
+ }
46
+ /** @inheritdoc */
47
+ processFormData(data, type) {
48
+ return processFormData(data, type);
49
+ }
50
+ /** @inheritdoc */
51
+ tokenizeRequestOptions(url, queryParameters, piiParamTokens, data) {
52
+ return this.options.enableTokenization ? tokenizeRequestOptions(url, queryParameters, piiParamTokens, data) : undefined;
53
+ }
54
+ async processCall(url, options, apiType, apiName, revivers, operationId) {
55
+ let response;
56
+ let root;
57
+ let exception;
58
+ const origin = options.headers.get('Origin');
59
+ // Execute call
60
+ try {
61
+ const headers = Object.fromEntries(options.headers.entries());
62
+ const asyncResponse = new Promise((resolve, reject) => {
63
+ let data;
64
+ const metadataSignal = options.metadata?.signal;
65
+ metadataSignal?.throwIfAborted();
66
+ const loadedPlugins = [];
67
+ if (this.options.angularPlugins) {
68
+ loadedPlugins.push(...this.options.angularPlugins.map((plugin) => plugin.load({
69
+ angularPlugins: loadedPlugins,
70
+ apiClient: this,
71
+ url,
72
+ apiName,
73
+ requestOptions: options,
74
+ logger: this.options.logger
75
+ })));
76
+ }
77
+ let httpRequest = this.options.httpClient.request(options.method, url, {
78
+ ...options,
79
+ observe: 'response',
80
+ headers
81
+ });
82
+ for (const plugin of loadedPlugins) {
83
+ httpRequest = plugin.transform(httpRequest);
84
+ }
85
+ const subscription = httpRequest.subscribe({
86
+ next: (res) => data = res,
87
+ error: (err) => reject(err),
88
+ complete: () => resolve(data)
89
+ });
90
+ metadataSignal?.throwIfAborted();
91
+ metadataSignal?.addEventListener('abort', () => {
92
+ subscription.unsubscribe();
93
+ reject(metadataSignal.reason);
94
+ });
95
+ });
96
+ response = await asyncResponse;
97
+ root = response.body;
98
+ }
99
+ catch (e) {
100
+ exception = new EmptyResponseError(e.message || 'Fail to Fetch', undefined, { apiName, operationId, url, origin });
101
+ }
102
+ // eslint-disable-next-line no-console
103
+ const reviver = getResponseReviver(revivers, response, operationId, { disableFallback: this.options.disableFallback, log: console.error });
104
+ const replyPlugins = this.options.replyPlugins ?
105
+ this.options.replyPlugins.map((plugin) => plugin.load({
106
+ dictionaries: root && root.dictionaries,
107
+ response: response && {
108
+ ...response,
109
+ headers: new Headers(response.headers.keys()
110
+ .map((key) => [key, response.headers.get(key)]))
111
+ },
112
+ reviver,
113
+ apiType,
114
+ apiName,
115
+ exception,
116
+ operationId,
117
+ url,
118
+ origin,
119
+ logger: this.options.logger
120
+ })) : [];
121
+ let parsedData = root;
122
+ for (const pluginRunner of replyPlugins) {
123
+ parsedData = await pluginRunner.transform(parsedData);
124
+ }
125
+ if (exception) {
126
+ throw exception;
127
+ }
128
+ return parsedData;
129
+ }
130
+ }
131
+ //# sourceMappingURL=api-angular-client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api-angular-client.js","sourceRoot":"","sources":["../../src/api-angular-client.ts"],"names":[],"mappings":"AAWA,OAAO,EACL,kBAAkB,EAClB,cAAc,EACd,kBAAkB,EAClB,qBAAqB,EACrB,kBAAkB,EAClB,UAAU,EACV,eAAe,EACf,YAAY,EACZ,sBAAsB,EACvB,MAAM,eAAe,CAAC;AAevB,MAAM,eAAe,GAAiE;IACpF,YAAY,EAAE,CAAC,IAAI,YAAY,EAAE,EAAE,IAAI,cAAc,EAAE,CAAC;IACxD,cAAc,EAAE,EAAE;IAClB,cAAc,EAAE,EAAE;IAClB,kBAAkB,EAAE,KAAK;IACzB,eAAe,EAAE,KAAK;CACvB,CAAC;AAEF,8DAA8D;AAC9D,MAAM,OAAO,gBAAgB;IAK3B;;;OAGG;IACH,YAAY,OAAwC;QAClD,IAAI,CAAC,OAAO,GAAG;YACb,GAAG,eAAe;YAClB,GAAG,OAAO;SACX,CAAC;IACJ,CAAC;IAED,kBAAkB;IACX,kBAAkB,CAAmC,IAAO,EAAE,KAAkB;QACrF,OAAO,kBAAkB,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IACzC,CAAC;IAED,kBAAkB;IACX,KAAK,CAAC,iBAAiB,CAAC,wBAAkD;QAC/E,IAAI,IAAI,GAAmB;YACzB,GAAG,wBAAwB;YAC3B,OAAO,EAAE,IAAI,OAAO,CAAC,qBAAqB,CAAC,wBAAwB,CAAC,OAAO,CAAC,CAAC;YAC7E,WAAW,EAAE,qBAAqB,CAAC,wBAAwB,CAAC,WAAW,CAAC;SACzE,CAAC;QACF,IAAI,IAAI,CAAC,OAAO,CAAC,cAAc,EAAE,CAAC;YAChC,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,OAAO,CAAC,cAAc,EAAE,CAAC;gBACjD,IAAI,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC;oBACvB,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,MAAM;oBAC3B,OAAO,EAAE,wBAAwB,CAAC,GAAG,EAAE,OAAO;iBAC/C,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;YACrB,CAAC;QACH,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAED,kBAAkB;IACX,UAAU,CAAC,GAAW,EAAE,kBAAyD,EAAE;QACxF,OAAO,UAAU,CAAC,GAAG,EAAE,eAAe,CAAC,CAAC;IAC1C,CAAC;IAED,kBAAkB;IACX,eAAe,CAAC,IAAS,EAAE,IAAY;QAC5C,OAAO,eAAe,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IACrC,CAAC;IAED,kBAAkB;IACX,sBAAsB,CAAC,GAAW,EAAE,eAA0C,EAAE,cAAyC,EAAE,IAAS;QACzI,OAAO,IAAI,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC,CAAC,sBAAsB,CAAC,GAAG,EAAE,eAAe,EAAE,cAAc,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAC1H,CAAC;IAMM,KAAK,CAAC,WAAW,CAAI,GAAW,EAAE,OAAuB,EAAE,OAA0B,EAAE,OAAe,EAC3G,QAA4F,EAAE,WAAoB;QAElH,IAAI,QAAuC,CAAC;QAC5C,IAAI,IAAS,CAAC;QACd,IAAI,SAA4B,CAAC;QAEjC,MAAM,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAE7C,eAAe;QACf,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;YAE9D,MAAM,aAAa,GAAG,IAAI,OAAO,CAAoB,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;gBACvE,IAAI,IAAuB,CAAC;gBAC5B,MAAM,cAAc,GAAG,OAAO,CAAC,QAAQ,EAAE,MAAM,CAAC;gBAChD,cAAc,EAAE,cAAc,EAAE,CAAC;gBAEjC,MAAM,aAAa,GAA+D,EAAE,CAAC;gBACrF,IAAI,IAAI,CAAC,OAAO,CAAC,cAAc,EAAE,CAAC;oBAChC,aAAa,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC;wBAC5E,cAAc,EAAE,aAAa;wBAC7B,SAAS,EAAE,IAAI;wBACf,GAAG;wBACH,OAAO;wBACP,cAAc,EAAE,OAAO;wBACvB,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,MAAM;qBAC5B,CAAC,CAAC,CAAC,CAAC;gBACP,CAAC;gBAED,IAAI,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,EAAE;oBACrE,GAAG,OAAO;oBACV,OAAO,EAAE,UAAU;oBACnB,OAAO;iBACR,CAAC,CAAC;gBAEH,KAAK,MAAM,MAAM,IAAI,aAAa,EAAE,CAAC;oBACnC,WAAW,GAAG,MAAM,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;gBAC9C,CAAC;gBAED,MAAM,YAAY,GAAG,WAAW,CAAC,SAAS,CAAC;oBACzC,IAAI,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,GAAG,GAAG;oBACzB,KAAK,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC;oBAC3B,QAAQ,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC;iBAC9B,CAAC,CAAC;gBACH,cAAc,EAAE,cAAc,EAAE,CAAC;gBACjC,cAAc,EAAE,gBAAgB,CAAC,OAAO,EAAE,GAAG,EAAE;oBAC7C,YAAY,CAAC,WAAW,EAAE,CAAC;oBAC3B,MAAM,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;gBAChC,CAAC,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;YACH,QAAQ,GAAG,MAAM,aAAa,CAAC;YAC/B,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC;QACvB,CAAC;QAAC,OAAO,CAAM,EAAE,CAAC;YAChB,SAAS,GAAG,IAAI,kBAAkB,CAAC,CAAC,CAAC,OAAO,IAAI,eAAe,EAAE,SAAS,EAAE,EAAE,OAAO,EAAE,WAAW,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC,CAAC;QACrH,CAAC;QAED,sCAAsC;QACtC,MAAM,OAAO,GAAG,kBAAkB,CAAC,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,EAAE,eAAe,EAAE,IAAI,CAAC,OAAO,CAAC,eAAe,EAAE,GAAG,EAAE,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC;QAC3I,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;YAC9C,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAI;gBACvD,YAAY,EAAE,IAAI,IAAI,IAAI,CAAC,YAAY;gBACvC,QAAQ,EAAE,QAAQ,IAAI;oBACpB,GAAG,QAAQ;oBACX,OAAO,EAAE,IAAI,OAAO,CAClB,QAAQ,CAAC,OAAO,CAAC,IAAI,EAAE;yBACpB,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAE,CAAC,GAAG,EAAE,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAE,CAAsB,CAAC,CACzE;iBACF;gBACD,OAAO;gBACP,OAAO;gBACP,OAAO;gBACP,SAAS;gBACT,WAAW;gBACX,GAAG;gBACH,MAAM;gBACN,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,MAAM;aAC5B,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAEX,IAAI,UAAU,GAAG,IAAI,CAAC;QACtB,KAAK,MAAM,YAAY,IAAI,YAAY,EAAE,CAAC;YACxC,UAAU,GAAG,MAAM,YAAY,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;QACxD,CAAC;QAED,IAAI,SAAS,EAAE,CAAC;YACd,MAAM,SAAS,CAAC;QAClB,CAAC;QAED,OAAO,UAAU,CAAC;IACpB,CAAC;CACF"}
@@ -0,0 +1,2 @@
1
+ export * from './mock-intercept/index';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/plugins/index.ts"],"names":[],"mappings":"AAAA,cAAc,wBAAwB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export * from './mock-intercept/index';
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/plugins/index.ts"],"names":[],"mappings":"AAAA,cAAc,wBAAwB,CAAC"}
@@ -0,0 +1,3 @@
1
+ export * from './mock-intercept.angular';
2
+ export * from './mock-intercept.interface';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/plugins/mock-intercept/index.ts"],"names":[],"mappings":"AAAA,cAAc,0BAA0B,CAAC;AACzC,cAAc,4BAA4B,CAAC"}
@@ -0,0 +1,3 @@
1
+ export * from './mock-intercept.angular';
2
+ export * from './mock-intercept.interface';
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/plugins/mock-intercept/index.ts"],"names":[],"mappings":"AAAA,cAAc,0BAA0B,CAAC;AACzC,cAAc,4BAA4B,CAAC"}
@@ -0,0 +1,15 @@
1
+ import type { AngularCall, AngularPlugin, AngularPluginContext, PluginObservableRunner } from '../../angular-plugin';
2
+ import { HttpResponse } from '@angular/common/http';
3
+ import type { MockInterceptAngularParameters } from './mock-intercept.interface';
4
+ /**
5
+ * Plugin to mock and intercept the call of SDK
6
+ *
7
+ * This plugin should be used only with the MockInterceptRequest Plugin.
8
+ * It will allow the user to delay the response or to handle the getResponse function provided with the mock (if present).
9
+ */
10
+ export declare class MockInterceptAngular implements AngularPlugin {
11
+ protected options: MockInterceptAngularParameters;
12
+ constructor(options: MockInterceptAngularParameters);
13
+ load(context: AngularPluginContext): PluginObservableRunner<HttpResponse<any>, AngularCall>;
14
+ }
15
+ //# sourceMappingURL=mock-intercept.angular.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mock-intercept.angular.d.ts","sourceRoot":"","sources":["../../../../src/plugins/mock-intercept/mock-intercept.angular.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,aAAa,EAAE,oBAAoB,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAErH,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,KAAK,EAAE,8BAA8B,EAAE,MAAM,4BAA4B,CAAC;AAEjF;;;;;GAKG;AACH,qBAAa,oBAAqB,YAAW,aAAa;IAE5C,SAAS,CAAC,OAAO,EAAE,8BAA8B;gBAAvC,OAAO,EAAE,8BAA8B;IAEtD,IAAI,CAAC,OAAO,EAAE,oBAAoB,GAAG,sBAAsB,CAAC,YAAY,CAAC,GAAG,CAAC,EAAE,WAAW,CAAC;CA2DnG"}
@@ -0,0 +1,62 @@
1
+ import { delay, from, mergeMap } from 'rxjs';
2
+ import { CUSTOM_MOCK_OPERATION_ID_HEADER, MockInterceptRequest } from '@ama-sdk/core';
3
+ import { HttpResponse } from '@angular/common/http';
4
+ /**
5
+ * Plugin to mock and intercept the call of SDK
6
+ *
7
+ * This plugin should be used only with the MockInterceptRequest Plugin.
8
+ * It will allow the user to delay the response or to handle the getResponse function provided with the mock (if present).
9
+ */
10
+ export class MockInterceptAngular {
11
+ constructor(options) {
12
+ this.options = options;
13
+ }
14
+ load(context) {
15
+ if (!context.apiClient.options.requestPlugins.some((plugin) => plugin instanceof MockInterceptRequest)) {
16
+ throw new Error('MockInterceptAngular plugin should be used only with the MockInterceptRequest plugin');
17
+ }
18
+ return {
19
+ transform: (call) => {
20
+ return from((async () => {
21
+ await this.options.adapter.initialize();
22
+ let originalCall = call;
23
+ // eslint-disable-next-line @typescript-eslint/no-unnecessary-type-assertion
24
+ if (!context.options.headers || !(context.options.headers instanceof Headers) || !context.options.headers.has(CUSTOM_MOCK_OPERATION_ID_HEADER)) {
25
+ return originalCall;
26
+ }
27
+ if (typeof this.options.delayTiming !== 'undefined') {
28
+ const delayTime = typeof this.options.delayTiming === 'number' ? this.options.delayTiming : await this.options.delayTiming({
29
+ ...context,
30
+ fetchPlugins: [],
31
+ options: context.requestOptions
32
+ });
33
+ originalCall = originalCall.pipe(delay(delayTime));
34
+ }
35
+ // eslint-disable-next-line @typescript-eslint/no-unnecessary-type-assertion
36
+ const operationId = context.options.headers.get(CUSTOM_MOCK_OPERATION_ID_HEADER);
37
+ try {
38
+ const mock = this.options.adapter.getLatestMock(operationId);
39
+ if (!mock.getResponse) {
40
+ return originalCall;
41
+ }
42
+ const response = mock.getResponse();
43
+ return originalCall.pipe(mergeMap(async (res) => {
44
+ const body = await response.json();
45
+ const responseCloned = res.clone();
46
+ return new HttpResponse({
47
+ ...responseCloned,
48
+ body,
49
+ url: responseCloned.url || undefined
50
+ });
51
+ }));
52
+ }
53
+ catch {
54
+ (context.logger || console).error(`Failed to retrieve the latest mock for Operation ID ${operationId}, fallback to default mock`);
55
+ return originalCall;
56
+ }
57
+ })()).pipe(mergeMap((res) => res));
58
+ }
59
+ };
60
+ }
61
+ }
62
+ //# sourceMappingURL=mock-intercept.angular.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mock-intercept.angular.js","sourceRoot":"","sources":["../../../../src/plugins/mock-intercept/mock-intercept.angular.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ import type { MockAdapter } from '@ama-sdk/core';
2
+ import type { AngularPluginContext } from '../../angular-plugin';
3
+ /**
4
+ * Mock Angular Plugin options
5
+ */
6
+ export interface MockInterceptAngularParameters {
7
+ /** List of mocks to be used */
8
+ adapter: MockAdapter;
9
+ /** Delays the mock response, in milliseconds */
10
+ delayTiming?: number | ((context: AngularPluginContext) => number | Promise<number>);
11
+ }
12
+ //# sourceMappingURL=mock-intercept.interface.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mock-intercept.interface.d.ts","sourceRoot":"","sources":["../../../../src/plugins/mock-intercept/mock-intercept.interface.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAEjE;;GAEG;AACH,MAAM,WAAW,8BAA8B;IAC7C,+BAA+B;IAC/B,OAAO,EAAE,WAAW,CAAC;IACrB,gDAAgD;IAChD,WAAW,CAAC,EAAE,MAAM,GAAG,CAAC,CAAC,OAAO,EAAE,oBAAoB,KAAK,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;CACtF"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=mock-intercept.interface.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mock-intercept.interface.js","sourceRoot":"","sources":["../../../../src/plugins/mock-intercept/mock-intercept.interface.ts"],"names":[],"mappings":""}
@@ -0,0 +1,4 @@
1
+ export * from './api-angular-client';
2
+ export * from './angular-plugin';
3
+ export * from './plugins/index';
4
+ //# sourceMappingURL=public_api.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"public_api.d.ts","sourceRoot":"","sources":["../../src/public_api.ts"],"names":[],"mappings":"AAAA,cAAc,sBAAsB,CAAC;AACrC,cAAc,kBAAkB,CAAC;AACjC,cAAc,iBAAiB,CAAC"}
@@ -0,0 +1,4 @@
1
+ export * from './api-angular-client';
2
+ export * from './angular-plugin';
3
+ export * from './plugins/index';
4
+ //# sourceMappingURL=public_api.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"public_api.js","sourceRoot":"","sources":["../../src/public_api.ts"],"names":[],"mappings":"AAAA,cAAc,sBAAsB,CAAC;AACrC,cAAc,kBAAkB,CAAC;AACjC,cAAc,iBAAiB,CAAC"}