@delon/mock 16.4.3 → 17.0.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,5 +2,6 @@ export * from './src/interface';
2
2
  export * from './src/status.error';
3
3
  export * from './src/mock.service';
4
4
  export * from './src/mock.interceptor';
5
- export * from './src/mock.module';
6
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX2FwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL21vY2svcHVibGljX2FwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLGlCQUFpQixDQUFDO0FBQ2hDLGNBQWMsb0JBQW9CLENBQUM7QUFDbkMsY0FBYyxvQkFBb0IsQ0FBQztBQUNuQyxjQUFjLHdCQUF3QixDQUFDO0FBQ3ZDLGNBQWMsbUJBQW1CLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL3NyYy9pbnRlcmZhY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9zcmMvc3RhdHVzLmVycm9yJztcbmV4cG9ydCAqIGZyb20gJy4vc3JjL21vY2suc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL3NyYy9tb2NrLmludGVyY2VwdG9yJztcbmV4cG9ydCAqIGZyb20gJy4vc3JjL21vY2subW9kdWxlJztcbiJdfQ==
5
+ export * from './src/provide';
6
+ export * from './src/utils';
7
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX2FwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL21vY2svcHVibGljX2FwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLGlCQUFpQixDQUFDO0FBQ2hDLGNBQWMsb0JBQW9CLENBQUM7QUFDbkMsY0FBYyxvQkFBb0IsQ0FBQztBQUNuQyxjQUFjLHdCQUF3QixDQUFDO0FBQ3ZDLGNBQWMsZUFBZSxDQUFDO0FBQzlCLGNBQWMsYUFBYSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9zcmMvaW50ZXJmYWNlJztcbmV4cG9ydCAqIGZyb20gJy4vc3JjL3N0YXR1cy5lcnJvcic7XG5leHBvcnQgKiBmcm9tICcuL3NyYy9tb2NrLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9zcmMvbW9jay5pbnRlcmNlcHRvcic7XG5leHBvcnQgKiBmcm9tICcuL3NyYy9wcm92aWRlJztcbmV4cG9ydCAqIGZyb20gJy4vc3JjL3V0aWxzJztcbiJdfQ==
@@ -1,3 +1,2 @@
1
- export class MockOptions {
2
- }
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZXJmYWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvbW9jay9zcmMvaW50ZXJmYWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUdBLE1BQU0sT0FBTyxXQUFXO0NBRXZCIiwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueSAqL1xuaW1wb3J0IHsgSHR0cFJlcXVlc3QgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5cbmV4cG9ydCBjbGFzcyBNb2NrT3B0aW9ucyB7XG4gIGRhdGE/OiBhbnk7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTW9ja0NhY2hlZFJ1bGUge1xuICBba2V5OiBzdHJpbmddOiBhbnk7XG5cbiAgbWV0aG9kOiBzdHJpbmc7XG5cbiAgdXJsOiBzdHJpbmc7XG5cbiAgbWFydGNoZXI6IFJlZ0V4cCB8IG51bGw7XG5cbiAgc2VnbWVudHM6IHN0cmluZ1tdO1xuXG4gIGNhbGxiYWNrKHJlcTogTW9ja1JlcXVlc3QpOiBhbnk7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTW9ja1J1bGUge1xuICBba2V5OiBzdHJpbmddOiBhbnk7XG5cbiAgbWV0aG9kOiBzdHJpbmc7XG5cbiAgdXJsOiBzdHJpbmc7XG5cbiAgLyoqIOi3r+eUseWPguaVsCAqL1xuICBwYXJhbXM/OiBhbnk7XG5cbiAgY2FsbGJhY2socmVxOiBNb2NrUmVxdWVzdCk6IGFueTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBNb2NrUmVxdWVzdCB7XG4gIC8qKiDot6/nlLHlj4LmlbAgKi9cbiAgcGFyYW1zPzogYW55O1xuICAvKiogVVJM5Y+C5pWwICovXG4gIHF1ZXJ5U3RyaW5nPzogYW55O1xuICBoZWFkZXJzPzogYW55O1xuICBib2R5PzogYW55O1xuICAvKiog5Y6f5aeLIGBIdHRwUmVxdWVzdGAgKi9cbiAgb3JpZ2luYWw6IEh0dHBSZXF1ZXN0PGFueT47XG59XG4iXX0=
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZXJmYWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvbW9jay9zcmMvaW50ZXJmYWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55ICovXG5pbXBvcnQgeyB0eXBlIEh0dHBSZXF1ZXN0IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHR5cGUgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5cbmV4cG9ydCB0eXBlIE1vY2tDYWxsYmFjayA9IGFueSB8IE9ic2VydmFibGU8YW55PiB8IFByb21pc2U8YW55PjtcblxuZXhwb3J0IGludGVyZmFjZSBNb2NrT3B0aW9ucyB7XG4gIGRhdGE/OiBhbnk7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTW9ja0NhY2hlZFJ1bGUge1xuICBba2V5OiBzdHJpbmddOiBhbnk7XG5cbiAgbWV0aG9kOiBzdHJpbmc7XG5cbiAgdXJsOiBzdHJpbmc7XG5cbiAgbWFydGNoZXI6IFJlZ0V4cCB8IG51bGw7XG5cbiAgc2VnbWVudHM6IHN0cmluZ1tdO1xuXG4gIGNhbGxiYWNrKHJlcTogTW9ja1JlcXVlc3QpOiBNb2NrQ2FsbGJhY2s7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTW9ja1J1bGUge1xuICBba2V5OiBzdHJpbmddOiBhbnk7XG5cbiAgbWV0aG9kOiBzdHJpbmc7XG5cbiAgdXJsOiBzdHJpbmc7XG5cbiAgLyoqIOi3r+eUseWPguaVsCAqL1xuICBwYXJhbXM/OiBhbnk7XG5cbiAgY2FsbGJhY2socmVxOiBNb2NrUmVxdWVzdCk6IE1vY2tDYWxsYmFjaztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBNb2NrUmVxdWVzdCB7XG4gIC8qKiDot6/nlLHlj4LmlbAgKi9cbiAgcGFyYW1zPzogYW55O1xuICAvKiogVVJM5Y+C5pWwICovXG4gIHF1ZXJ5U3RyaW5nPzogYW55O1xuICBoZWFkZXJzPzogYW55O1xuICBib2R5PzogYW55O1xuICAvKiog5Y6f5aeLIGBIdHRwUmVxdWVzdGAgKi9cbiAgb3JpZ2luYWw6IEh0dHBSZXF1ZXN0PGFueT47XG59XG4iXX0=
@@ -1,7 +1,6 @@
1
1
  export const MOCK_DEFULAT_CONFIG = {
2
2
  delay: 300,
3
3
  force: false,
4
- log: true,
5
- executeOtherInterceptors: true
4
+ log: true
6
5
  };
7
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9jay5jb25maWcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9tb2NrL3NyYy9tb2NrLmNvbmZpZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxNQUFNLENBQUMsTUFBTSxtQkFBbUIsR0FBb0I7SUFDbEQsS0FBSyxFQUFFLEdBQUc7SUFDVixLQUFLLEVBQUUsS0FBSztJQUNaLEdBQUcsRUFBRSxJQUFJO0lBQ1Qsd0JBQXdCLEVBQUUsSUFBSTtDQUMvQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBBbGFpbk1vY2tDb25maWcgfSBmcm9tICdAZGVsb24vdXRpbC9jb25maWcnO1xuXG5leHBvcnQgY29uc3QgTU9DS19ERUZVTEFUX0NPTkZJRzogQWxhaW5Nb2NrQ29uZmlnID0ge1xuICBkZWxheTogMzAwLFxuICBmb3JjZTogZmFsc2UsXG4gIGxvZzogdHJ1ZSxcbiAgZXhlY3V0ZU90aGVySW50ZXJjZXB0b3JzOiB0cnVlXG59O1xuIl19
6
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9jay5jb25maWcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9tb2NrL3NyYy9tb2NrLmNvbmZpZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxNQUFNLENBQUMsTUFBTSxtQkFBbUIsR0FBb0I7SUFDbEQsS0FBSyxFQUFFLEdBQUc7SUFDVixLQUFLLEVBQUUsS0FBSztJQUNaLEdBQUcsRUFBRSxJQUFJO0NBQ1YsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgQWxhaW5Nb2NrQ29uZmlnIH0gZnJvbSAnQGRlbG9uL3V0aWwvY29uZmlnJztcblxuZXhwb3J0IGNvbnN0IE1PQ0tfREVGVUxBVF9DT05GSUc6IEFsYWluTW9ja0NvbmZpZyA9IHtcbiAgZGVsYXk6IDMwMCxcbiAgZm9yY2U6IGZhbHNlLFxuICBsb2c6IHRydWVcbn07XG4iXX0=
@@ -1,109 +1,82 @@
1
1
  /* eslint-disable @typescript-eslint/no-explicit-any */
2
- import { HttpErrorResponse, HttpResponse, HttpResponseBase, HTTP_INTERCEPTORS } from '@angular/common/http';
3
- import { Injectable } from '@angular/core';
4
- import { of, throwError, delay } from 'rxjs';
2
+ import { HttpErrorResponse, HttpResponse, HttpResponseBase } from '@angular/common/http';
3
+ import { inject } from '@angular/core';
4
+ import { of, throwError, delay, isObservable, from, map, switchMap } from 'rxjs';
5
5
  import { deepCopy } from '@delon/util/other';
6
6
  import { MockService } from './mock.service';
7
7
  import { MockStatusError } from './status.error';
8
- import * as i0 from "@angular/core";
9
- class HttpMockInterceptorHandler {
10
- constructor(next, interceptor) {
11
- this.next = next;
12
- this.interceptor = interceptor;
8
+ export const mockInterceptor = (req, next) => {
9
+ const src = inject(MockService);
10
+ const config = src.config;
11
+ const rule = src.getRule(req.method, req.url.split('?')[0]);
12
+ if (!rule && !config.force) {
13
+ return next(req);
13
14
  }
14
- handle(req) {
15
- return this.interceptor.intercept(req, this.next);
16
- }
17
- }
18
- export class MockInterceptor {
19
- constructor(injector) {
20
- this.injector = injector;
21
- }
22
- intercept(req, next) {
23
- const src = this.injector.get(MockService);
24
- const config = src.config;
25
- const rule = src.getRule(req.method, req.url.split('?')[0]);
26
- if (!rule && !config.force) {
27
- return next.handle(req);
28
- }
29
- let res;
30
- switch (typeof rule.callback) {
31
- case 'function':
32
- const mockRequest = {
33
- original: req,
34
- body: req.body,
35
- queryString: {},
36
- headers: {},
37
- params: rule.params
38
- };
39
- const urlParams = req.url.split('?');
40
- if (urlParams.length > 1) {
41
- urlParams[1].split('&').forEach(item => {
42
- const itemArr = item.split('=');
43
- const key = itemArr[0];
44
- const value = itemArr[1];
45
- // is array
46
- if (Object.keys(mockRequest.queryString).includes(key)) {
47
- if (!Array.isArray(mockRequest.queryString[key])) {
48
- mockRequest.queryString[key] = [mockRequest.queryString[key]];
49
- }
50
- mockRequest.queryString[key].push(value);
51
- }
52
- else {
53
- mockRequest.queryString[key] = value;
15
+ let res$;
16
+ switch (typeof rule.callback) {
17
+ case 'function':
18
+ const mockRequest = {
19
+ original: req,
20
+ body: req.body,
21
+ queryString: {},
22
+ headers: {},
23
+ params: rule.params
24
+ };
25
+ const urlParams = req.url.split('?');
26
+ if (urlParams.length > 1) {
27
+ urlParams[1].split('&').forEach(item => {
28
+ const itemArr = item.split('=');
29
+ const key = itemArr[0];
30
+ const value = itemArr[1];
31
+ // is array
32
+ if (Object.keys(mockRequest.queryString).includes(key)) {
33
+ if (!Array.isArray(mockRequest.queryString[key])) {
34
+ mockRequest.queryString[key] = [mockRequest.queryString[key]];
54
35
  }
55
- });
56
- }
57
- req.params.keys().forEach(key => (mockRequest.queryString[key] = req.params.get(key)));
58
- req.headers.keys().forEach(key => (mockRequest.headers[key] = req.headers.get(key)));
59
- try {
60
- res = rule.callback.call(this, mockRequest);
61
- }
62
- catch (e) {
63
- res = new HttpErrorResponse({
64
- url: req.url,
65
- headers: req.headers,
66
- status: e instanceof MockStatusError ? e.status : 400,
67
- statusText: e.statusText || 'Unknown Error',
68
- error: e.error
69
- });
70
- }
71
- break;
72
- default:
73
- res = rule.callback;
74
- break;
75
- }
76
- if (!(res instanceof HttpResponseBase)) {
77
- res = new HttpResponse({
78
- status: 200,
79
- url: req.url,
80
- body: res
81
- });
82
- }
83
- if (res.body) {
84
- res.body = deepCopy(res.body);
36
+ mockRequest.queryString[key].push(value);
37
+ }
38
+ else {
39
+ mockRequest.queryString[key] = value;
40
+ }
41
+ });
42
+ }
43
+ req.params.keys().forEach(key => (mockRequest.queryString[key] = req.params.get(key)));
44
+ req.headers.keys().forEach(key => (mockRequest.headers[key] = req.headers.get(key)));
45
+ try {
46
+ const fnRes = rule.callback.call(this, mockRequest);
47
+ res$ = isObservable(fnRes) ? fnRes : from(Promise.resolve(fnRes));
48
+ }
49
+ catch (e) {
50
+ res$ = of(new HttpErrorResponse({
51
+ url: req.url,
52
+ headers: req.headers,
53
+ status: e instanceof MockStatusError ? e.status : 400,
54
+ statusText: e.statusText || 'Unknown Error',
55
+ error: e.error
56
+ }));
57
+ }
58
+ break;
59
+ default:
60
+ res$ = of(rule.callback);
61
+ break;
62
+ }
63
+ res$ = res$.pipe(map(res => res instanceof HttpResponseBase
64
+ ? res
65
+ : new HttpResponse({
66
+ status: 200,
67
+ url: req.url,
68
+ body: deepCopy(res)
69
+ })), map((res) => {
70
+ const anyRes = res;
71
+ if (anyRes.body) {
72
+ anyRes.body = deepCopy(anyRes.body);
85
73
  }
86
74
  if (config.log) {
87
75
  console.log(`%c👽${req.method}->${req.urlWithParams}->request`, 'background:#000;color:#bada55', req);
88
76
  console.log(`%c👽${req.method}->${req.urlWithParams}->response`, 'background:#000;color:#bada55', res);
89
77
  }
90
- const res$ = res instanceof HttpErrorResponse ? throwError(() => res) : of(res);
91
- if (config.executeOtherInterceptors) {
92
- const interceptors = this.injector.get(HTTP_INTERCEPTORS, []);
93
- const lastInterceptors = interceptors.slice(interceptors.indexOf(this) + 1);
94
- if (lastInterceptors.length > 0) {
95
- const chain = lastInterceptors.reduceRight((_next, _interceptor) => new HttpMockInterceptorHandler(_next, _interceptor), {
96
- handle: () => res$
97
- });
98
- return chain.handle(req).pipe(delay(config.delay));
99
- }
100
- }
101
- return res$.pipe(delay(config.delay));
102
- }
103
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: MockInterceptor, deps: [{ token: i0.Injector }], target: i0.ɵɵFactoryTarget.Injectable }); }
104
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: MockInterceptor }); }
105
- }
106
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: MockInterceptor, decorators: [{
107
- type: Injectable
108
- }], ctorParameters: function () { return [{ type: i0.Injector }]; } });
109
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9jay5pbnRlcmNlcHRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL21vY2svc3JjL21vY2suaW50ZXJjZXB0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsdURBQXVEO0FBQ3ZELE9BQU8sRUFFTCxpQkFBaUIsRUFLakIsWUFBWSxFQUNaLGdCQUFnQixFQUNoQixpQkFBaUIsRUFDbEIsTUFBTSxzQkFBc0IsQ0FBQztBQUM5QixPQUFPLEVBQUUsVUFBVSxFQUFZLE1BQU0sZUFBZSxDQUFDO0FBQ3JELE9BQU8sRUFBYyxFQUFFLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUV6RCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFHN0MsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7QUFFakQsTUFBTSwwQkFBMEI7SUFDOUIsWUFDVSxJQUFpQixFQUNqQixXQUE0QjtRQUQ1QixTQUFJLEdBQUosSUFBSSxDQUFhO1FBQ2pCLGdCQUFXLEdBQVgsV0FBVyxDQUFpQjtJQUNuQyxDQUFDO0lBRUosTUFBTSxDQUFDLEdBQXFCO1FBQzFCLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNwRCxDQUFDO0NBQ0Y7QUFHRCxNQUFNLE9BQU8sZUFBZTtJQUMxQixZQUFvQixRQUFrQjtRQUFsQixhQUFRLEdBQVIsUUFBUSxDQUFVO0lBQUcsQ0FBQztJQUUxQyxTQUFTLENBQUMsR0FBcUIsRUFBRSxJQUFpQjtRQUNoRCxNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUMzQyxNQUFNLE1BQU0sR0FBRyxHQUFHLENB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Q25DLE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLGlCQUFpQixFQUFFLEVBQUUsQ0FBQyxDQUFDO1lBQzlELE1BQU0sZ0JBQWdCLEdBQUcsWUFBWSxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO1lBQzVFLElBQUksZ0JBQWdCLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtnQkFDL0IsTUFBTSxLQUFLLEdBQUcsZ0JBQWdCLENBQUMsV0FBVyxDQUN4QyxDQUFDLEtBQUssRUFBRSxZQUFZLEVBQUUsRUFBRSxDQUFDLElBQUksMEJBQTBCLENBQUMsS0FBSyxFQUFFLFlBQVksQ0FBQyxFQUM1RTtvQkFDRSxNQUFNLEVBQUUsR0FBRyxFQUFFLENBQUMsSUFBSTtpQkFDSixDQUNqQixDQUFDO2dCQUNGLE9BQU8sS0FBSyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxLQUFNLENBQUMsQ0FBQyxDQUFDO2FBQ3JEO1NBQ0Y7UUFFRCxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxLQUFNLENBQUMsQ0FBQyxDQUFDO0lBQ3pDLENBQUM7K0dBNUZVLGVBQWU7bUhBQWYsZUFBZTs7NEZBQWYsZUFBZTtrQkFEM0IsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnkgKi9cbmltcG9ydCB7XG4gIEh0dHBCYWNrZW5kLFxuICBIdHRwRXJyb3JSZXNwb25zZSxcbiAgSHR0cEV2ZW50LFxuICBIdHRwSGFuZGxlcixcbiAgSHR0cEludGVyY2VwdG9yLFxuICBIdHRwUmVxdWVzdCxcbiAgSHR0cFJlc3BvbnNlLFxuICBIdHRwUmVzcG9uc2VCYXNlLFxuICBIVFRQX0lOVEVSQ0VQVE9SU1xufSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBJbmplY3RhYmxlLCBJbmplY3RvciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgb2YsIHRocm93RXJyb3IsIGRlbGF5IH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IGRlZXBDb3B5IH0gZnJvbSAnQGRlbG9uL3V0aWwvb3RoZXInO1xuXG5pbXBvcnQgeyBNb2NrUmVxdWVzdCB9IGZyb20gJy4vaW50ZXJmYWNlJztcbmltcG9ydCB7IE1vY2tTZXJ2aWNlIH0gZnJvbSAnLi9tb2NrLnNlcnZpY2UnO1xuaW1wb3J0IHsgTW9ja1N0YXR1c0Vycm9yIH0gZnJvbSAnLi9zdGF0dXMuZXJyb3InO1xuXG5jbGFzcyBIdHRwTW9ja0ludGVyY2VwdG9ySGFuZGxlciBpbXBsZW1lbnRzIEh0dHBIYW5kbGVyIHtcbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBuZXh0OiBIdHRwSGFuZGxlcixcbiAgICBwcml2YXRlIGludGVyY2VwdG9yOiBIdHRwSW50ZXJjZXB0b3JcbiAgKSB7fVxuXG4gIGhhbmRsZShyZXE6IEh0dHBSZXF1ZXN0PGFueT4pOiBPYnNlcnZhYmxlPEh0dHBFdmVudDxhbnk+PiB7XG4gICAgcmV0dXJuIHRoaXMuaW50ZXJjZXB0b3IuaW50ZXJjZXB0KHJlcSwgdGhpcy5uZXh0KTtcbiAgfVxufVxuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgTW9ja0ludGVyY2VwdG9yIGltcGxlbWVudHMgSHR0cEludGVyY2VwdG9yIHtcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBpbmplY3RvcjogSW5qZWN0b3IpIHt9XG5cbiAgaW50ZXJjZXB0KHJlcTogSHR0cFJlcXVlc3Q8YW55PiwgbmV4dDogSHR0cEhhbmRsZXIpOiBPYnNlcnZhYmxlPEh0dHBFdmVudDxhbnk+PiB7XG4gICAgY29uc3Qgc3JjID0gdGhpcy5pbmplY3Rvci5nZXQoTW9ja1NlcnZpY2UpO1xuICAgIGNvbnN0IGNvbmZpZyA9IHNyYy5jb25maWc7XG4gICAgY29uc3QgcnVsZSA9IHNyYy5nZXRSdWxlKHJlcS5tZXRob2QsIHJlcS51cmwuc3BsaXQoJz8nKVswXSk7XG4gICAgaWYgKCFydWxlICYmICFjb25maWcuZm9yY2UpIHtcbiAgICAgIHJldHVybiBuZXh0LmhhbmRsZShyZXEpO1xuICAgIH1cblxuICAgIGxldCByZXM6IGFueTtcbiAgICBzd2l0Y2ggKHR5cGVvZiBydWxlIS5jYWxsYmFjaykge1xuICAgICAgY2FzZSAnZnVuY3Rpb24nOlxuICAgICAgICBjb25zdCBtb2NrUmVxdWVzdDogTW9ja1JlcXVlc3QgPSB7XG4gICAgICAgICAgb3JpZ2luYWw6IHJlcSxcbiAgICAgICAgICBib2R5OiByZXEuYm9keSxcbiAgICAgICAgICBxdWVyeVN0cmluZzoge30sXG4gICAgICAgICAgaGVhZGVyczoge30sXG4gICAgICAgICAgcGFyYW1zOiBydWxlIS5wYXJhbXNcbiAgICAgICAgfTtcbiAgICAgICAgY29uc3QgdXJsUGFyYW1zID0gcmVxLnVybC5zcGxpdCgnPycpO1xuICAgICAgICBpZiAodXJsUGFyYW1zLmxlbmd0aCA+IDEpIHtcbiAgICAgICAgICB1cmxQYXJhbXNbMV0uc3BsaXQoJyYnKS5mb3JFYWNoKGl0ZW0gPT4ge1xuICAgICAgICAgICAgY29uc3QgaXRlbUFyciA9IGl0ZW0uc3BsaXQoJz0nKTtcbiAgICAgICAgICAgIGNvbnN0IGtleSA9IGl0ZW1BcnJbMF07XG4gICAgICAgICAgICBjb25zdCB2YWx1ZSA9IGl0ZW1BcnJbMV07XG4gICAgICAgICAgICAvLyBpcyBhcnJheVxuICAgICAgICAgICAgaWYgKE9iamVjdC5rZXlzKG1vY2tSZXF1ZXN0LnF1ZXJ5U3RyaW5nKS5pbmNsdWRlcyhrZXkpKSB7XG4gICAgICAgICAgICAgIGlmICghQXJyYXkuaXNBcnJheShtb2NrUmVxdWVzdC5xdWVyeVN0cmluZ1trZXldKSkge1xuICAgICAgICAgICAgICAgIG1vY2tSZXF1ZXN0LnF1ZXJ5U3RyaW5nW2tleV0gPSBbbW9ja1JlcXVlc3QucXVlcnlTdHJpbmdba2V5XV07XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgbW9ja1JlcXVlc3QucXVlcnlTdHJpbmdba2V5XS5wdXNoKHZhbHVlKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIG1vY2tSZXF1ZXN0LnF1ZXJ5U3RyaW5nW2tleV0gPSB2YWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICByZXEucGFyYW1zLmtleXMoKS5mb3JFYWNoKGtleSA9PiAobW9ja1JlcXVlc3QucXVlcnlTdHJpbmdba2V5XSA9IHJlcS5wYXJhbXMuZ2V0KGtleSkpKTtcbiAgICAgICAgcmVxLmhlYWRlcnMua2V5cygpLmZvckVhY2goa2V5ID0+IChtb2NrUmVxdWVzdC5oZWFkZXJzW2tleV0gPSByZXEuaGVhZGVycy5nZXQoa2V5KSkpO1xuXG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgcmVzID0gcnVsZSEuY2FsbGJhY2suY2FsbCh0aGlzLCBtb2NrUmVxdWVzdCk7XG4gICAgICAgIH0gY2F0Y2ggKGU6IGFueSkge1xuICAgICAgICAgIHJlcyA9IG5ldyBIdHRwRXJyb3JSZXNwb25zZSh7XG4gICAgICAgICAgICB1cmw6IHJlcS51cmwsXG4gICAgICAgICAgICBoZWFkZXJzOiByZXEuaGVhZGVycyxcbiAgICAgICAgICAgIHN0YXR1czogZSBpbnN0YW5jZW9mIE1vY2tTdGF0dXNFcnJvciA/IGUuc3RhdHVzIDogNDAwLFxuICAgICAgICAgICAgc3RhdHVzVGV4dDogZS5zdGF0dXNUZXh0IHx8ICdVbmtub3duIEVycm9yJyxcbiAgICAgICAgICAgIGVycm9yOiBlLmVycm9yXG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgYnJlYWs7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICByZXMgPSBydWxlIS5jYWxsYmFjaztcbiAgICAgICAgYnJlYWs7XG4gICAgfVxuXG4gICAgaWYgKCEocmVzIGluc3RhbmNlb2YgSHR0cFJlc3BvbnNlQmFzZSkpIHtcbiAgICAgIHJlcyA9IG5ldyBIdHRwUmVzcG9uc2Uoe1xuICAgICAgICBzdGF0dXM6IDIwMCxcbiAgICAgICAgdXJsOiByZXEudXJsLFxuICAgICAgICBib2R5OiByZXNcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIGlmIChyZXMuYm9keSkge1xuICAgICAgcmVzLmJvZHkgPSBkZWVwQ29weShyZXMuYm9keSk7XG4gICAgfVxuXG4gICAgaWYgKGNvbmZpZy5sb2cpIHtcbiAgICAgIGNvbnNvbGUubG9nKGAlY/Cfkb0ke3JlcS5tZXRob2R9LT4ke3JlcS51cmxXaXRoUGFyYW1zfS0+cmVxdWVzdGAsICdiYWNrZ3JvdW5kOiMwMDA7Y29sb3I6I2JhZGE1NScsIHJlcSk7XG4gICAgICBjb25zb2xlLmxvZyhgJWPwn5G9JHtyZXEubWV0aG9kfS0+JHtyZXEudXJsV2l0aFBhcmFtc30tPnJlc3BvbnNlYCwgJ2JhY2tncm91bmQ6IzAwMDtjb2xvcjojYmFkYTU1JywgcmVzKTtcbiAgICB9XG5cbiAgICBjb25zdCByZXMkID0gcmVzIGluc3RhbmNlb2YgSHR0cEVycm9yUmVzcG9uc2UgPyB0aHJvd0Vycm9yKCgpID0+IHJlcykgOiBvZihyZXMpO1xuXG4gICAgaWYgKGNvbmZpZy5leGVjdXRlT3RoZXJJbnRlcmNlcHRvcnMpIHtcbiAgICAgIGNvbnN0IGludGVyY2VwdG9ycyA9IHRoaXMuaW5qZWN0b3IuZ2V0KEhUVFBfSU5URVJDRVBUT1JTLCBbXSk7XG4gICAgICBjb25zdCBsYXN0SW50ZXJjZXB0b3JzID0gaW50ZXJjZXB0b3JzLnNsaWNlKGludGVyY2VwdG9ycy5pbmRleE9mKHRoaXMpICsgMSk7XG4gICAgICBpZiAobGFzdEludGVyY2VwdG9ycy5sZW5ndGggPiAwKSB7XG4gICAgICAgIGNvbnN0IGNoYWluID0gbGFzdEludGVyY2VwdG9ycy5yZWR1Y2VSaWdodChcbiAgICAgICAgICAoX25leHQsIF9pbnRlcmNlcHRvcikgPT4gbmV3IEh0dHBNb2NrSW50ZXJjZXB0b3JIYW5kbGVyKF9uZXh0LCBfaW50ZXJjZXB0b3IpLFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGhhbmRsZTogKCkgPT4gcmVzJFxuICAgICAgICAgIH0gYXMgSHR0cEJhY2tlbmRcbiAgICAgICAgKTtcbiAgICAgICAgcmV0dXJuIGNoYWluLmhhbmRsZShyZXEpLnBpcGUoZGVsYXkoY29uZmlnLmRlbGF5ISkpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiByZXMkLnBpcGUoZGVsYXkoY29uZmlnLmRlbGF5ISkpO1xuICB9XG59XG4iXX0=
78
+ return res;
79
+ }), switchMap((res) => (res instanceof HttpErrorResponse ? throwError(() => res) : of(res))));
80
+ return res$.pipe(delay(config.delay));
81
+ };
82
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9jay5pbnRlcmNlcHRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL21vY2svc3JjL21vY2suaW50ZXJjZXB0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsdURBQXVEO0FBQ3ZELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxZQUFZLEVBQUUsZ0JBQWdCLEVBQXFCLE1BQU0sc0JBQXNCLENBQUM7QUFDNUcsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN2QyxPQUFPLEVBQWMsRUFBRSxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQUUsWUFBWSxFQUFFLElBQUksRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRTdGLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUc3QyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRWpELE1BQU0sQ0FBQyxNQUFNLGVBQWUsR0FBc0IsQ0FBQyxHQUFHLEVBQUUsSUFBSSxFQUFFLEVBQUU7SUFDOUQsTUFBTSxHQUFHLEdBQUcsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ2hDLE1BQU0sTUFBTSxHQUFHLEdBQUcsQ0FBQyxNQUFNLENBQUM7SUFDMUIsTUFBTSxJQUFJLEdBQUcsR0FBRyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsTUFBTSxFQUFFLEdBQUcsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDNUQsSUFBSSxDQUFDLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUU7UUFDMUIsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7S0FDbEI7SUFFRCxJQUFJLElBQXFCLENBQUM7SUFDMUIsUUFBUSxP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LEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQzNHLENBQUM7SUFFRixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxLQUFNLENBQUMsQ0FBQyxDQUFDO0FBQ3pDLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnkgKi9cbmltcG9ydCB7IEh0dHBFcnJvclJlc3BvbnNlLCBIdHRwUmVzcG9uc2UsIEh0dHBSZXNwb25zZUJhc2UsIEh0dHBJbnRlcmNlcHRvckZuIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBvZiwgdGhyb3dFcnJvciwgZGVsYXksIGlzT2JzZXJ2YWJsZSwgZnJvbSwgbWFwLCBzd2l0Y2hNYXAgfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHsgZGVlcENvcHkgfSBmcm9tICdAZGVsb24vdXRpbC9vdGhlcic7XG5cbmltcG9ydCB7IE1vY2tSZXF1ZXN0IH0gZnJvbSAnLi9pbnRlcmZhY2UnO1xuaW1wb3J0IHsgTW9ja1NlcnZpY2UgfSBmcm9tICcuL21vY2suc2VydmljZSc7XG5pbXBvcnQgeyBNb2NrU3RhdHVzRXJyb3IgfSBmcm9tICcuL3N0YXR1cy5lcnJvcic7XG5cbmV4cG9ydCBjb25zdCBtb2NrSW50ZXJjZXB0b3I6IEh0dHBJbnRlcmNlcHRvckZuID0gKHJlcSwgbmV4dCkgPT4ge1xuICBjb25zdCBzcmMgPSBpbmplY3QoTW9ja1NlcnZpY2UpO1xuICBjb25zdCBjb25maWcgPSBzcmMuY29uZmlnO1xuICBjb25zdCBydWxlID0gc3JjLmdldFJ1bGUocmVxLm1ldGhvZCwgcmVxLnVybC5zcGxpdCgnPycpWzBdKTtcbiAgaWYgKCFydWxlICYmICFjb25maWcuZm9yY2UpIHtcbiAgICByZXR1cm4gbmV4dChyZXEpO1xuICB9XG5cbiAgbGV0IHJlcyQ6IE9ic2VydmFibGU8YW55PjtcbiAgc3dpdGNoICh0eXBlb2YgcnVsZSEuY2FsbGJhY2spIHtcbiAgICBjYXNlICdmdW5jdGlvbic6XG4gICAgICBjb25zdCBtb2NrUmVxdWVzdDogTW9ja1JlcXVlc3QgPSB7XG4gICAgICAgIG9yaWdpbmFsOiByZXEsXG4gICAgICAgIGJvZHk6IHJlcS5ib2R5LFxuICAgICAgICBxdWVyeVN0cmluZzoge30sXG4gICAgICAgIGhlYWRlcnM6IHt9LFxuICAgICAgICBwYXJhbXM6IHJ1bGUhLnBhcmFtc1xuICAgICAgfTtcbiAgICAgIGNvbnN0IHVybFBhcmFtcyA9IHJlcS51cmwuc3BsaXQoJz8nKTtcbiAgICAgIGlmICh1cmxQYXJhbXMubGVuZ3RoID4gMSkge1xuICAgICAgICB1cmxQYXJhbXNbMV0uc3BsaXQoJyYnKS5mb3JFYWNoKGl0ZW0gPT4ge1xuICAgICAgICAgIGNvbnN0IGl0ZW1BcnIgPSBpdGVtLnNwbGl0KCc9Jyk7XG4gICAgICAgICAgY29uc3Qga2V5ID0gaXRlbUFyclswXTtcbiAgICAgICAgICBjb25zdCB2YWx1ZSA9IGl0ZW1BcnJbMV07XG4gICAgICAgICAgLy8gaXMgYXJyYXlcbiAgICAgICAgICBpZiAoT2JqZWN0LmtleXMobW9ja1JlcXVlc3QucXVlcnlTdHJpbmcpLmluY2x1ZGVzKGtleSkpIHtcbiAgICAgICAgICAgIGlmICghQXJyYXkuaXNBcnJheShtb2NrUmVxdWVzdC5xdWVyeVN0cmluZ1trZXldKSkge1xuICAgICAgICAgICAgICBtb2NrUmVxdWVzdC5xdWVyeVN0cmluZ1trZXldID0gW21vY2tSZXF1ZXN0LnF1ZXJ5U3RyaW5nW2tleV1dO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgbW9ja1JlcXVlc3QucXVlcnlTdHJpbmdba2V5XS5wdXNoKHZhbHVlKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgbW9ja1JlcXVlc3QucXVlcnlTdHJpbmdba2V5XSA9IHZhbHVlO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgICByZXEucGFyYW1zLmtleXMoKS5mb3JFYWNoKGtleSA9PiAobW9ja1JlcXVlc3QucXVlcnlTdHJpbmdba2V5XSA9IHJlcS5wYXJhbXMuZ2V0KGtleSkpKTtcbiAgICAgIHJlcS5oZWFkZXJzLmtleXMoKS5mb3JFYWNoKGtleSA9PiAobW9ja1JlcXVlc3QuaGVhZGVyc1trZXldID0gcmVxLmhlYWRlcnMuZ2V0KGtleSkpKTtcblxuICAgICAgdHJ5IHtcbiAgICAgICAgY29uc3QgZm5SZXMgPSBydWxlIS5jYWxsYmFjay5jYWxsKHRoaXMsIG1vY2tSZXF1ZXN0KTtcbiAgICAgICAgcmVzJCA9IGlzT2JzZXJ2YWJsZShmblJlcykgPyBmblJlcyA6IGZyb20oUHJvbWlzZS5yZXNvbHZlKGZuUmVzKSk7XG4gICAgICB9IGNhdGNoIChlOiBhbnkpIHtcbiAgICAgICAgcmVzJCA9IG9mKFxuICAgICAgICAgIG5ldyBIdHRwRXJyb3JSZXNwb25zZSh7XG4gICAgICAgICAgICB1cmw6IHJlcS51cmwsXG4gICAgICAgICAgICBoZWFkZXJzOiByZXEuaGVhZGVycyxcbiAgICAgICAgICAgIHN0YXR1czogZSBpbnN0YW5jZW9mIE1vY2tTdGF0dXNFcnJvciA/IGUuc3RhdHVzIDogNDAwLFxuICAgICAgICAgICAgc3RhdHVzVGV4dDogZS5zdGF0dXNUZXh0IHx8ICdVbmtub3duIEVycm9yJyxcbiAgICAgICAgICAgIGVycm9yOiBlLmVycm9yXG4gICAgICAgICAgfSlcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICAgIGJyZWFrO1xuICAgIGRlZmF1bHQ6XG4gICAgICByZXMkID0gb2YocnVsZSEuY2FsbGJhY2spO1xuICAgICAgYnJlYWs7XG4gIH1cblxuICByZXMkID0gcmVzJC5waXBlKFxuICAgIG1hcChyZXMgPT5cbiAgICAgIHJlcyBpbnN0YW5jZW9mIEh0dHBSZXNwb25zZUJhc2VcbiAgICAgICAgPyByZXNcbiAgICAgICAgOiBuZXcgSHR0cFJlc3BvbnNlKHtcbiAgICAgICAgICAgIHN0YXR1czogMjAwLFxuICAgICAgICAgICAgdXJsOiByZXEudXJsLFxuICAgICAgICAgICAgYm9keTogZGVlcENvcHkocmVzKVxuICAgICAgICAgIH0pXG4gICAgKSxcbiAgICBtYXAoKHJlczogSHR0cFJlc3BvbnNlQmFzZSkgPT4ge1xuICAgICAgY29uc3QgYW55UmVzOiBhbnkgPSByZXM7XG4gICAgICBpZiAoYW55UmVzLmJvZHkpIHtcbiAgICAgICAgYW55UmVzLmJvZHkgPSBkZWVwQ29weShhbnlSZXMuYm9keSk7XG4gICAgICB9XG4gICAgICBpZiAoY29uZmlnLmxvZykge1xuICAgICAgICBjb25zb2xlLmxvZyhgJWPwn5G9JHtyZXEubWV0aG9kfS0+JHtyZXEudXJsV2l0aFBhcmFtc30tPnJlcXVlc3RgLCAnYmFja2dyb3VuZDojMDAwO2NvbG9yOiNiYWRhNTUnLCByZXEpO1xuICAgICAgICBjb25zb2xlLmxvZyhgJWPwn5G9JHtyZXEubWV0aG9kfS0+JHtyZXEudXJsV2l0aFBhcmFtc30tPnJlc3BvbnNlYCwgJ2JhY2tncm91bmQ6IzAwMDtjb2xvcjojYmFkYTU1JywgcmVzKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiByZXM7XG4gICAgfSksXG4gICAgc3dpdGNoTWFwKChyZXM6IEh0dHBSZXNwb25zZUJhc2UpID0+IChyZXMgaW5zdGFuY2VvZiBIdHRwRXJyb3JSZXNwb25zZSA/IHRocm93RXJyb3IoKCkgPT4gcmVzKSA6IG9mKHJlcykpKVxuICApO1xuXG4gIHJldHVybiByZXMkLnBpcGUoZGVsYXkoY29uZmlnLmRlbGF5ISkpO1xufTtcbiJdfQ==
@@ -1,9 +1,9 @@
1
1
  /* eslint-disable @typescript-eslint/no-explicit-any */
2
- import { Injectable } from '@angular/core';
2
+ import { Inject, Injectable, Optional } from '@angular/core';
3
3
  import { MOCK_DEFULAT_CONFIG } from './mock.config';
4
+ import { DELON_MOCK_CONFIG } from './provide';
4
5
  import * as i0 from "@angular/core";
5
6
  import * as i1 from "@delon/util/config";
6
- import * as i2 from "./interface";
7
7
  export class MockService {
8
8
  constructor(cogSrv, options) {
9
9
  this.cached = [];
@@ -131,11 +131,16 @@ export class MockService {
131
131
  ngOnDestroy() {
132
132
  this.clearCache();
133
133
  }
134
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: MockService, deps: [{ token: i1.AlainConfigService }, { token: i2.MockOptions }], target: i0.ɵɵFactoryTarget.Injectable }); }
135
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: MockService, providedIn: 'root' }); }
134
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: MockService, deps: [{ token: i1.AlainConfigService }, { token: DELON_MOCK_CONFIG, optional: true }], target: i0.ɵɵFactoryTarget.Injectable }); }
135
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: MockService, providedIn: 'root' }); }
136
136
  }
137
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: MockService, decorators: [{
137
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: MockService, decorators: [{
138
138
  type: Injectable,
139
139
  args: [{ providedIn: 'root' }]
140
- }], ctorParameters: function () { return [{ type: i1.AlainConfigService }, { type: i2.MockOptions }]; } });
141
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9jay5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvbW9jay9zcmMvbW9jay5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLHVEQUF1RDtBQUN2RCxPQUFPLEVBQUUsVUFBVSxFQUFhLE1BQU0sZUFBZSxDQUFDO0FBS3RELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7OztBQUdwRCxNQUFNLE9BQU8sV0FBVztJQUl0QixZQUFZLE1BQTBCLEVBQUUsT0FBb0I7UUFIcEQsV0FBTSxHQUFxQixFQUFFLENBQUM7UUFJcEMsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDLE1BQU0sRUFBRSxtQkFBbUIsQ0FBRSxDQUFDO1FBQ3pELElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQzlCLENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsT0FBTyxDQUFDLElBQVM7UUFDZixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3ZCLENBQUM7SUFFRCxxQkFBcUI7SUFFYixTQUFTLENBQUMsSUFBUztRQUN6QixJQUFJLENBQUMsTUFBTSxHQUFHLEVBQUUsQ0FBQztRQUNqQixJQUFJO1lBQ0YsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsQ0FBQztTQUMxQjtRQUFDLE9BQU8sQ0FBQyxFQUFFO1lBQ1YsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQztTQUNyQjtJQUNILENBQUM7SUFFTyxhQUFhLENBQUMsSUFBUztRQUM3QixJQUFJLENBQUMsSUFBSTtZQUFFLE9BQU87UUFDbEIsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxHQUFXLEVBQUUsRUFBRTtZQUN4QyxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLENB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QUUsS0FBYSxFQUFFLEVBQUU7Z0JBQ3JELE1BQU0sQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDLEdBQUcsS0FBSyxDQUFDO1lBQ3RDLENBQUMsQ0FBQyxDQUFDO1NBQ0o7UUFDRCxPQUFPO1lBQ0wsR0FBRztZQUNILE1BQU0sRUFBRSxHQUFHLENBQUMsTUFBTTtZQUNsQixNQUFNO1lBQ04sUUFBUSxFQUFFLEdBQUcsQ0FBQyxRQUFRO1NBQ3ZCLENBQUM7SUFDSixDQUFDO0lBRUQsVUFBVTtRQUNSLElBQUksQ0FBQyxNQUFNLEdBQUcsRUFBRSxDQUFDO0lBQ25CLENBQUM7SUFFRCxJQUFJLEtBQUs7UUFDUCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUM7SUFDckIsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7SUFDcEIsQ0FBQzsrR0E1SVUsV0FBVzttSEFBWCxXQUFXLGNBREUsTUFBTTs7NEZBQ25CLFdBQVc7a0JBRHZCLFVBQVU7bUJBQUMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueSAqL1xuaW1wb3J0IHsgSW5qZWN0YWJsZSwgT25EZXN0cm95IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IEFsYWluQ29uZmlnU2VydmljZSwgQWxhaW5Nb2NrQ29uZmlnIH0gZnJvbSAnQGRlbG9uL3V0aWwvY29uZmlnJztcblxuaW1wb3J0IHsgTW9ja0NhY2hlZFJ1bGUsIE1vY2tPcHRpb25zLCBNb2NrUnVsZSB9IGZyb20gJy4vaW50ZXJmYWNlJztcbmltcG9ydCB7IE1PQ0tfREVGVUxBVF9DT05GSUcgfSBmcm9tICcuL21vY2suY29uZmlnJztcblxuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcbmV4cG9ydCBjbGFzcyBNb2NrU2VydmljZSBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG4gIHByaXZhdGUgY2FjaGVkOiBNb2NrQ2FjaGVkUnVsZVtdID0gW107XG4gIHJlYWRvbmx5IGNvbmZpZzogQWxhaW5Nb2NrQ29uZmlnO1xuXG4gIGNvbnN0cnVjdG9yKGNvZ1NydjogQWxhaW5Db25maWdTZXJ2aWNlLCBvcHRpb25zOiBNb2NrT3B0aW9ucykge1xuICAgIHRoaXMuY29uZmlnID0gY29nU3J2Lm1lcmdlKCdtb2NrJywgTU9DS19ERUZVTEFUX0NPTkZJRykhO1xuICAgIHRoaXMuc2V0RGF0YShvcHRpb25zPy5kYXRhKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXNldCByZXF1ZXN0IGRhdGFcbiAgICpcbiAgICog6YeN5paw6K6+572u6K+35rGC5pWw5o2uXG4gICAqL1xuICBzZXREYXRhKGRhdGE6IGFueSk6IHZvaWQge1xuICAgIHRoaXMuYXBwbHlNb2NrKGRhdGEpO1xuICB9XG5cbiAgLy8gI3JlZ2lvbiBwYXJzZSBydWxlXG5cbiAgcHJpdmF0ZSBhcHBseU1vY2soZGF0YTogYW55KTogdm9pZCB7XG4gICAgdGhpcy5jYWNoZWQgPSBbXTtcbiAgICB0cnkge1xuICAgICAgdGhpcy5yZWFsQXBwbHlNb2NrKGRhdGEpO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIHRoaXMub3V0cHV0RXJyb3IoZSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSByZWFsQXBwbHlNb2NrKGRhdGE6IGFueSk6IHZvaWQge1xuICAgIGlmICghZGF0YSkgcmV0dXJuO1xuICAgIE9iamVjdC5rZXlzKGRhdGEpLmZvckVhY2goKGtleTogc3RyaW5nKSA9PiB7XG4gICAgICBjb25zdCBydWxlcyA9IGRhdGFba2V5XTtcbiAgICAgIGlmICghcnVsZXMpIHJldHVybjtcbiAgICAgIE9iamVjdC5rZXlzKHJ1bGVzKS5mb3JFYWNoKChydWxlS2V5OiBzdHJpbmcpID0+IHtcbiAgICAgICAgY29uc3QgdmFsdWUgPSBydWxlc1tydWxlS2V5XTtcbiAgICAgICAgaWYgKCEodHlwZW9mIHZhbHVlID09PSAnZnVuY3Rpb24nIHx8IHR5cGVvZiB2YWx1ZSA9PT0gJ29iamVjdCcgfHwgdHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJykpIHtcbiAgICAgICAgICB0aHJvdyBFcnJvcihcbiAgICAgICAgICAgIGBtb2NrIHZhbHVlIG9mIFske2tleX0tJHtydWxlS2V5fV0gc2hvdWxkIGJlIGZ1bmN0aW9uIG9yIG9iamVjdCBvciBzdHJpbmcsIGJ1dCBnb3QgJHt0eXBlb2YgdmFsdWV9YFxuICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgcnVsZSA9IHRoaXMuZ2VuUnVsZShydWxlS2V5LCB2YWx1ZSk7XG4gICAgICAgIGlmIChbJ0dFVCcsICdQT1NUJywgJ1BVVCcsICdIRUFEJywgJ0RFTEVURScsICdQQVRDSCcsICdPUFRJT05TJ10uaW5kZXhPZihydWxlLm1ldGhvZCkgPT09IC0xKSB7XG4gICAgICAgICAgdGhyb3cgRXJyb3IoYG1ldGhvZCBvZiAke2tleX0tJHtydWxlS2V5fSBpcyBub3QgdmFsaWRgKTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBpdGVtID0gdGhpcy5jYWNoZWQuZmluZCh3ID0+IHcudXJsID09PSBydWxlLnVybCAmJiB3Lm1ldGhvZCA9PT0gcnVsZS5tZXRob2QpO1xuICAgICAgICBpZiAoaXRlbSkge1xuICAgICAgICAgIGl0ZW0uY2FsbGJhY2sgPSBydWxlLmNhbGxiYWNrO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRoaXMuY2FjaGVkLnB1c2gocnVsZSk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH0pO1xuICAgIC8vIHJlZ3VsYXIgb3JkZXJpbmdcbiAgICB0aGlzLmNhY2hlZC5zb3J0KChhLCBiKSA9PiAoYi5tYXJ0Y2hlciB8fCAnJykudG9TdHJpbmcoKS5sZW5ndGggLSAoYS5tYXJ0Y2hlciB8fCAnJykudG9TdHJpbmcoKS5sZW5ndGgpO1xuICB9XG5cbiAgcHJpdmF0ZSBnZW5SdWxlKGtleTogc3RyaW5nLCBjYWxsYmFjazogYW55KTogTW9ja0NhY2hlZFJ1bGUge1xuICAgIGxldCBtZXRob2QgPSAnR0VUJztcbiAgICBsZXQgdXJsID0ga2V5O1xuXG4gICAgaWYgKGtleS5pbmRleE9mKCcgJykgPiAtMSkge1xuICAgICAgY29uc3Qgc3BsaXRlZCA9IGtleS5zcGxpdCgnICcpO1xuICAgICAgbWV0aG9kID0gc3BsaXRlZFswXS50b0xvd2VyQ2FzZSgpO1xuICAgICAgdXJsID0gc3BsaXRlZFsxXTtcbiAgICB9XG5cbiAgICBsZXQgbWFydGNoZXI6IFJlZ0V4cCB8IG51bGwgPSBudWxsO1xuICAgIGxldCBzZWdtZW50czogc3RyaW5nW10gPSBbXTtcbiAgICBpZiAofnVybC5pbmRleE9mKCc6JykpIHtcbiAgICAgIHNlZ21lbnRzID0gdXJsIVxuICAgICAgICAuc3BsaXQoJy8nKVxuICAgICAgICAuZmlsdGVyKHNlZ21lbnQgPT4gc2VnbWVudC5zdGFydHNXaXRoKCc6JykpXG4gICAgICAgIC5tYXAodiA9PiB2LnN1YnN0cmluZygxKSk7XG4gICAgICBjb25zdCByZVN0ciA9IHVybCFcbiAgICAgICAgLnNwbGl0KCcvJylcbiAgICAgICAgLm1hcChzZWdtZW50ID0+IChzZWdtZW50LnN0YXJ0c1dpdGgoJzonKSA/IGAoW14vXSspYCA6IHNlZ21lbnQpKVxuICAgICAgICAuam9pbignLycpO1xuICAgICAgbWFydGNoZXIgPSBuZXcgUmVnRXhwKGBeJHtyZVN0cn1gLCAnaScpO1xuICAgIH0gZWxzZSBpZiAoLyhcXChbXildK1xcKSkvaS50ZXN0KHVybCkpIHtcbiAgICAgIG1hcnRjaGVyID0gbmV3IFJlZ0V4cCh1cmwsICdpJyk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHtcbiAgICAgIHVybCxcbiAgICAgIG1hcnRjaGVyLFxuICAgICAgc2VnbWVudHMsXG4gICAgICBjYWxsYmFjayxcbiAgICAgIG1ldGhvZDogbWV0aG9kLnRvVXBwZXJDYXNlKClcbiAgICB9O1xuICB9XG5cbiAgcHJpdmF0ZSBvdXRwdXRFcnJvcihlcnJvcjogYW55KTogdm9pZCB7XG4gICAgY29uc3QgZmlsZVBhdGggPSBlcnJvci5tZXNzYWdlLnNwbGl0KCc6ICcpWzBdO1xuICAgIGNvbnN0IGVycm9ycyA9IChlcnJvci5zdGFjayBhcyBzdHJpbmcpXG4gICAgICAuc3BsaXQoJ1xcbicpXG4gICAgICAuZmlsdGVyKGxpbmUgPT4gbGluZS50cmltKCkuaW5kZXhPZignYXQgJykgIT09IDApXG4gICAgICAubWFwKGxpbmUgPT4gbGluZS5yZXBsYWNlKGAke2ZpbGVQYXRofTogYCwgJycpKTtcbiAgICBlcnJvcnMuc3BsaWNlKDEsIDAsICcnKTtcblxuICAgIGNvbnNvbGUuZ3JvdXAoKTtcbiAgICBjb25zb2xlLndhcm4oYD09PT09PT09PT1GYWlsZWQgdG8gcGFyc2UgbW9jayBjb25maWcuPT09PT09PT09PWApO1xuICAgIGNvbnNvbGUubG9nKGVycm9ycy5qb2luKCdcXG4nKSk7XG4gICAgY29uc29sZS5ncm91cEVuZCgpO1xuXG4gICAgdGhyb3cgZXJyb3I7XG4gIH1cblxuICAvLyAjZW5kcmVnaW9uXG5cbiAgZ2V0UnVsZShtZXRob2Q6IHN0cmluZywgdXJsOiBzdHJpbmcpOiBNb2NrUnVsZSB8IG51bGwge1xuICAgIG1ldGhvZCA9IChtZXRob2QgfHwgJ0dFVCcpLnRvVXBwZXJDYXNlKCk7XG4gICAgY29uc3QgcGFyYW1zOiBhbnkgPSB7fTtcbiAgICBjb25zdCBsaXN0ID0gdGhpcy5jYWNoZWQuZmlsdGVyKHcgPT4gdy5tZXRob2QgPT09IG1ldGhvZCAmJiAody5tYXJ0Y2hlciA/IHcubWFydGNoZXIudGVzdCh1cmwpIDogdy51cmwgPT09IHVybCkpO1xuICAgIGlmIChsaXN0Lmxlbmd0aCA9PT0gMCkgcmV0dXJuIG51bGw7XG4gICAgY29uc3QgcmV0ID0gbGlzdC5maW5kKHcgPT4gdy51cmwgPT09IHVybCkgfHwgbGlzdFswXTtcbiAgICBpZiAocmV0Lm1hcnRjaGVyKSB7XG4gICAgICBjb25zdCBleGVjQXJyID0gcmV0Lm1hcnRjaGVyLmV4ZWModXJsKTtcbiAgICAgIGV4ZWNBcnIhLnNsaWNlKDEpLm1hcCgodmFsdWU6IHN0cmluZywgaW5kZXg6IG51bWJlcikgPT4ge1xuICAgICAgICBwYXJhbXNbcmV0LnNlZ21lbnRzW2luZGV4XV0gPSB2YWx1ZTtcbiAgICAgIH0pO1xuICAgIH1cbiAgICByZXR1cm4ge1xuICAgICAgdXJsLFxuICAgICAgbWV0aG9kOiByZXQubWV0aG9kLFxuICAgICAgcGFyYW1zLFxuICAgICAgY2FsbGJhY2s6IHJldC5jYWxsYmFja1xuICAgIH07XG4gIH1cblxuICBjbGVhckNhY2hlKCk6IHZvaWQge1xuICAgIHRoaXMuY2FjaGVkID0gW107XG4gIH1cblxuICBnZXQgcnVsZXMoKTogTW9ja0NhY2hlZFJ1bGVbXSB7XG4gICAgcmV0dXJuIHRoaXMuY2FjaGVkO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5jbGVhckNhY2hlKCk7XG4gIH1cbn1cbiJdfQ==
140
+ }], ctorParameters: () => [{ type: i1.AlainConfigService }, { type: undefined, decorators: [{
141
+ type: Optional
142
+ }, {
143
+ type: Inject,
144
+ args: [DELON_MOCK_CONFIG]
145
+ }] }] });
146
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9jay5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvbW9jay9zcmMvbW9jay5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLHVEQUF1RDtBQUN2RCxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBYSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFLeEUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3BELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLFdBQVcsQ0FBQzs7O0FBRzlDLE1BQU0sT0FBTyxXQUFXO0lBSXRCLFlBQVksTUFBMEIsRUFBeUMsT0FBcUI7UUFINUYsV0FBTSxHQUFxQixFQUFFLENBQUM7UUFJcEMsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDLE1BQU0sRUFBRSxtQkFBbUIsQ0FBRSxDQUFDO1FBQ3pELElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQzlCLENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsT0FBTyxDQUFDLElBQVM7UUFDZixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3ZCLENBQUM7SUFFRCxxQkFBcUI7SUFFYixTQUFTLENBQUMsSUFBUztRQUN6QixJQUFJLENBQUMsTUFBTSxHQUFHLEVBQUUsQ0FBQztRQUNqQixJQUFJO1lBQ0YsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsQ0FBQztTQUMxQjtRQUFDLE9BQU8sQ0FBQyxFQUFFO1lBQ1YsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQztTQUNyQjtJQUNILENBQUM7SUFFTyxhQUFhLENBQUMsSUFBUztRQUM3QixJQUFJLENBQUMsSUFBSTtZQUFFLE9BQU87UUFDbEIsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxPQUFPLENBQUMs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WUFDdkMsT0FBUSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFhLEVBQUUsS0FBYSxFQUFFLEVBQUU7Z0JBQ3JELE1BQU0sQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDLEdBQUcsS0FBSyxDQUFDO1lBQ3RDLENBQUMsQ0FBQyxDQUFDO1NBQ0o7UUFDRCxPQUFPO1lBQ0wsR0FBRztZQUNILE1BQU0sRUFBRSxHQUFHLENBQUMsTUFBTTtZQUNsQixNQUFNO1lBQ04sUUFBUSxFQUFFLEdBQUcsQ0FBQyxRQUFRO1NBQ3ZCLENBQUM7SUFDSixDQUFDO0lBRUQsVUFBVTtRQUNSLElBQUksQ0FBQyxNQUFNLEdBQUcsRUFBRSxDQUFDO0lBQ25CLENBQUM7SUFFRCxJQUFJLEtBQUs7UUFDUCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUM7SUFDckIsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7SUFDcEIsQ0FBQzs4R0E1SVUsV0FBVyxvREFJc0MsaUJBQWlCO2tIQUpsRSxXQUFXLGNBREUsTUFBTTs7MkZBQ25CLFdBQVc7a0JBRHZCLFVBQVU7bUJBQUMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFOzswQkFLUyxRQUFROzswQkFBSSxNQUFNOzJCQUFDLGlCQUFpQiIsInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnkgKi9cbmltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSwgT25EZXN0cm95LCBPcHRpb25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBBbGFpbkNvbmZpZ1NlcnZpY2UsIEFsYWluTW9ja0NvbmZpZyB9IGZyb20gJ0BkZWxvbi91dGlsL2NvbmZpZyc7XG5cbmltcG9ydCB7IE1vY2tDYWNoZWRSdWxlLCBNb2NrT3B0aW9ucywgTW9ja1J1bGUgfSBmcm9tICcuL2ludGVyZmFjZSc7XG5pbXBvcnQgeyBNT0NLX0RFRlVMQVRfQ09ORklHIH0gZnJvbSAnLi9tb2NrLmNvbmZpZyc7XG5pbXBvcnQgeyBERUxPTl9NT0NLX0NPTkZJRyB9IGZyb20gJy4vcHJvdmlkZSc7XG5cbkBJbmplY3RhYmxlKHsgcHJvdmlkZWRJbjogJ3Jvb3QnIH0pXG5leHBvcnQgY2xhc3MgTW9ja1NlcnZpY2UgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xuICBwcml2YXRlIGNhY2hlZDogTW9ja0NhY2hlZFJ1bGVbXSA9IFtdO1xuICByZWFkb25seSBjb25maWc6IEFsYWluTW9ja0NvbmZpZztcblxuICBjb25zdHJ1Y3Rvcihjb2dTcnY6IEFsYWluQ29uZmlnU2VydmljZSwgQE9wdGlvbmFsKCkgQEluamVjdChERUxPTl9NT0NLX0NPTkZJRykgb3B0aW9ucz86IE1vY2tPcHRpb25zKSB7XG4gICAgdGhpcy5jb25maWcgPSBjb2dTcnYubWVyZ2UoJ21vY2snLCBNT0NLX0RFRlVMQVRfQ09ORklHKSE7XG4gICAgdGhpcy5zZXREYXRhKG9wdGlvbnM/LmRhdGEpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlc2V0IHJlcXVlc3QgZGF0YVxuICAgKlxuICAgKiDph43mlrDorr7nva7or7fmsYLmlbDmja5cbiAgICovXG4gIHNldERhdGEoZGF0YTogYW55KTogdm9pZCB7XG4gICAgdGhpcy5hcHBseU1vY2soZGF0YSk7XG4gIH1cblxuICAvLyAjcmVnaW9uIHBhcnNlIHJ1bGVcblxuICBwcml2YXRlIGFwcGx5TW9jayhkYXRhOiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLmNhY2hlZCA9IFtdO1xuICAgIHRyeSB7XG4gICAgICB0aGlzLnJlYWxBcHBseU1vY2soZGF0YSk7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgdGhpcy5vdXRwdXRFcnJvcihlKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHJlYWxBcHBseU1vY2soZGF0YTogYW55KTogdm9pZCB7XG4gICAgaWYgKCFkYXRhKSByZXR1cm47XG4gICAgT2JqZWN0LmtleXMoZGF0YSkuZm9yRWFjaCgoa2V5OiBzdHJpbmcpID0+IHtcbiAgICAgIGNvbnN0IHJ1bGVzID0gZGF0YVtrZXldO1xuICAgICAgaWYgKCFydWxlcykgcmV0dXJuO1xuICAgICAgT2JqZWN0LmtleXMocnVsZXMpLmZvckVhY2goKHJ1bGVLZXk6IHN0cmluZykgPT4ge1xuICAgICAgICBjb25zdCB2YWx1ZSA9IHJ1bGVzW3J1bGVLZXldO1xuICAgICAgICBpZiAoISh0eXBlb2YgdmFsdWUgPT09ICdmdW5jdGlvbicgfHwgdHlwZW9mIHZhbHVlID09PSAnb2JqZWN0JyB8fCB0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnKSkge1xuICAgICAgICAgIHRocm93IEVycm9yKFxuICAgICAgICAgICAgYG1vY2sgdmFsdWUgb2YgWyR7a2V5fS0ke3J1bGVLZXl9XSBzaG91bGQgYmUgZnVuY3Rpb24gb3Igb2JqZWN0IG9yIHN0cmluZywgYnV0IGdvdCAke3R5cGVvZiB2YWx1ZX1gXG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBydWxlID0gdGhpcy5nZW5SdWxlKHJ1bGVLZXksIHZhbHVlKTtcbiAgICAgICAgaWYgKFsnR0VUJywgJ1BPU1QnLCAnUFVUJywgJ0hFQUQnLCAnREVMRVRFJywgJ1BBVENIJywgJ09QVElPTlMnXS5pbmRleE9mKHJ1bGUubWV0aG9kKSA9PT0gLTEpIHtcbiAgICAgICAgICB0aHJvdyBFcnJvcihgbWV0aG9kIG9mICR7a2V5fS0ke3J1bGVLZXl9IGlzIG5vdCB2YWxpZGApO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGl0ZW0gPSB0aGlzLmNhY2hlZC5maW5kKHcgPT4gdy51cmwgPT09IHJ1bGUudXJsICYmIHcubWV0aG9kID09PSBydWxlLm1ldGhvZCk7XG4gICAgICAgIGlmIChpdGVtKSB7XG4gICAgICAgICAgaXRlbS5jYWxsYmFjayA9IHJ1bGUuY2FsbGJhY2s7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy5jYWNoZWQucHVzaChydWxlKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfSk7XG4gICAgLy8gcmVndWxhciBvcmRlcmluZ1xuICAgIHRoaXMuY2FjaGVkLnNvcnQoKGEsIGIpID0+IChiLm1hcnRjaGVyIHx8ICcnKS50b1N0cmluZygpLmxlbmd0aCAtIChhLm1hcnRjaGVyIHx8ICcnKS50b1N0cmluZygpLmxlbmd0aCk7XG4gIH1cblxuICBwcml2YXRlIGdlblJ1bGUoa2V5OiBzdHJpbmcsIGNhbGxiYWNrOiBhbnkpOiBNb2NrQ2FjaGVkUnVsZSB7XG4gICAgbGV0IG1ldGhvZCA9ICdHRVQnO1xuICAgIGxldCB1cmwgPSBrZXk7XG5cbiAgICBpZiAoa2V5LmluZGV4T2YoJyAnKSA+IC0xKSB7XG4gICAgICBjb25zdCBzcGxpdGVkID0ga2V5LnNwbGl0KCcgJyk7XG4gICAgICBtZXRob2QgPSBzcGxpdGVkWzBdLnRvTG93ZXJDYXNlKCk7XG4gICAgICB1cmwgPSBzcGxpdGVkWzFdO1xuICAgIH1cblxuICAgIGxldCBtYXJ0Y2hlcjogUmVnRXhwIHwgbnVsbCA9IG51bGw7XG4gICAgbGV0IHNlZ21lbnRzOiBzdHJpbmdbXSA9IFtdO1xuICAgIGlmICh+dXJsLmluZGV4T2YoJzonKSkge1xuICAgICAgc2VnbWVudHMgPSB1cmwhXG4gICAgICAgIC5zcGxpdCgnLycpXG4gICAgICAgIC5maWx0ZXIoc2VnbWVudCA9PiBzZWdtZW50LnN0YXJ0c1dpdGgoJzonKSlcbiAgICAgICAgLm1hcCh2ID0+IHYuc3Vic3RyaW5nKDEpKTtcbiAgICAgIGNvbnN0IHJlU3RyID0gdXJsIVxuICAgICAgICAuc3BsaXQoJy8nKVxuICAgICAgICAubWFwKHNlZ21lbnQgPT4gKHNlZ21lbnQuc3RhcnRzV2l0aCgnOicpID8gYChbXi9dKylgIDogc2VnbWVudCkpXG4gICAgICAgIC5qb2luKCcvJyk7XG4gICAgICBtYXJ0Y2hlciA9IG5ldyBSZWdFeHAoYF4ke3JlU3RyfWAsICdpJyk7XG4gICAgfSBlbHNlIGlmICgvKFxcKFteKV0rXFwpKS9pLnRlc3QodXJsKSkge1xuICAgICAgbWFydGNoZXIgPSBuZXcgUmVnRXhwKHVybCwgJ2knKTtcbiAgICB9XG5cbiAgICByZXR1cm4ge1xuICAgICAgdXJsLFxuICAgICAgbWFydGNoZXIsXG4gICAgICBzZWdtZW50cyxcbiAgICAgIGNhbGxiYWNrLFxuICAgICAgbWV0aG9kOiBtZXRob2QudG9VcHBlckNhc2UoKVxuICAgIH07XG4gIH1cblxuICBwcml2YXRlIG91dHB1dEVycm9yKGVycm9yOiBhbnkpOiB2b2lkIHtcbiAgICBjb25zdCBmaWxlUGF0aCA9IGVycm9yLm1lc3NhZ2Uuc3BsaXQoJzogJylbMF07XG4gICAgY29uc3QgZXJyb3JzID0gKGVycm9yLnN0YWNrIGFzIHN0cmluZylcbiAgICAgIC5zcGxpdCgnXFxuJylcbiAgICAgIC5maWx0ZXIobGluZSA9PiBsaW5lLnRyaW0oKS5pbmRleE9mKCdhdCAnKSAhPT0gMClcbiAgICAgIC5tYXAobGluZSA9PiBsaW5lLnJlcGxhY2UoYCR7ZmlsZVBhdGh9OiBgLCAnJykpO1xuICAgIGVycm9ycy5zcGxpY2UoMSwgMCwgJycpO1xuXG4gICAgY29uc29sZS5ncm91cCgpO1xuICAgIGNvbnNvbGUud2FybihgPT09PT09PT09PUZhaWxlZCB0byBwYXJzZSBtb2NrIGNvbmZpZy49PT09PT09PT09YCk7XG4gICAgY29uc29sZS5sb2coZXJyb3JzLmpvaW4oJ1xcbicpKTtcbiAgICBjb25zb2xlLmdyb3VwRW5kKCk7XG5cbiAgICB0aHJvdyBlcnJvcjtcbiAgfVxuXG4gIC8vICNlbmRyZWdpb25cblxuICBnZXRSdWxlKG1ldGhvZDogc3RyaW5nLCB1cmw6IHN0cmluZyk6IE1vY2tSdWxlIHwgbnVsbCB7XG4gICAgbWV0aG9kID0gKG1ldGhvZCB8fCAnR0VUJykudG9VcHBlckNhc2UoKTtcbiAgICBjb25zdCBwYXJhbXM6IGFueSA9IHt9O1xuICAgIGNvbnN0IGxpc3QgPSB0aGlzLmNhY2hlZC5maWx0ZXIodyA9PiB3Lm1ldGhvZCA9PT0gbWV0aG9kICYmICh3Lm1hcnRjaGVyID8gdy5tYXJ0Y2hlci50ZXN0KHVybCkgOiB3LnVybCA9PT0gdXJsKSk7XG4gICAgaWYgKGxpc3QubGVuZ3RoID09PSAwKSByZXR1cm4gbnVsbDtcbiAgICBjb25zdCByZXQgPSBsaXN0LmZpbmQodyA9PiB3LnVybCA9PT0gdXJsKSB8fCBsaXN0WzBdO1xuICAgIGlmIChyZXQubWFydGNoZXIpIHtcbiAgICAgIGNvbnN0IGV4ZWNBcnIgPSByZXQubWFydGNoZXIuZXhlYyh1cmwpO1xuICAgICAgZXhlY0FyciEuc2xpY2UoMSkubWFwKCh2YWx1ZTogc3RyaW5nLCBpbmRleDogbnVtYmVyKSA9PiB7XG4gICAgICAgIHBhcmFtc1tyZXQuc2VnbWVudHNbaW5kZXhdXSA9IHZhbHVlO1xuICAgICAgfSk7XG4gICAgfVxuICAgIHJldHVybiB7XG4gICAgICB1cmwsXG4gICAgICBtZXRob2Q6IHJldC5tZXRob2QsXG4gICAgICBwYXJhbXMsXG4gICAgICBjYWxsYmFjazogcmV0LmNhbGxiYWNrXG4gICAgfTtcbiAgfVxuXG4gIGNsZWFyQ2FjaGUoKTogdm9pZCB7XG4gICAgdGhpcy5jYWNoZWQgPSBbXTtcbiAgfVxuXG4gIGdldCBydWxlcygpOiBNb2NrQ2FjaGVkUnVsZVtdIHtcbiAgICByZXR1cm4gdGhpcy5jYWNoZWQ7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLmNsZWFyQ2FjaGUoKTtcbiAgfVxufVxuIl19
@@ -0,0 +1,6 @@
1
+ import { InjectionToken, makeEnvironmentProviders } from '@angular/core';
2
+ export const DELON_MOCK_CONFIG = new InjectionToken('alain-mock-config');
3
+ export function provideMockConfig(config) {
4
+ return makeEnvironmentProviders([{ provide: DELON_MOCK_CONFIG, useValue: config }]);
5
+ }
6
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvdmlkZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL21vY2svc3JjL3Byb3ZpZGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUF3QixjQUFjLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFJL0YsTUFBTSxDQUFDLE1BQU0saUJBQWlCLEdBQUcsSUFBSSxjQUFjLENBQWMsbUJBQW1CLENBQUMsQ0FBQztBQUV0RixNQUFNLFVBQVUsaUJBQWlCLENBQUMsTUFBb0I7SUFDcEQsT0FBTyx3QkFBd0IsQ0FBQyxDQUFDLEVBQUUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsQ0FBQyxDQUFDLENBQUM7QUFDdEYsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEVudmlyb25tZW50UHJvdmlkZXJzLCBJbmplY3Rpb25Ub2tlbiwgbWFrZUVudmlyb25tZW50UHJvdmlkZXJzIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IE1vY2tPcHRpb25zIH0gZnJvbSAnLi9pbnRlcmZhY2UnO1xuXG5leHBvcnQgY29uc3QgREVMT05fTU9DS19DT05GSUcgPSBuZXcgSW5qZWN0aW9uVG9rZW48TW9ja09wdGlvbnM+KCdhbGFpbi1tb2NrLWNvbmZpZycpO1xuXG5leHBvcnQgZnVuY3Rpb24gcHJvdmlkZU1vY2tDb25maWcoY29uZmlnPzogTW9ja09wdGlvbnMpOiBFbnZpcm9ubWVudFByb3ZpZGVycyB7XG4gIHJldHVybiBtYWtlRW52aXJvbm1lbnRQcm92aWRlcnMoW3sgcHJvdmlkZTogREVMT05fTU9DS19DT05GSUcsIHVzZVZhbHVlOiBjb25maWcgfV0pO1xufVxuIl19
@@ -0,0 +1,13 @@
1
+ /**
2
+ * Used to simulate delays
3
+ */
4
+ export function delay(ms) {
5
+ return new Promise(resolve => setTimeout(resolve, ms));
6
+ }
7
+ /**
8
+ * Return a random number
9
+ */
10
+ export function r(min = 1, max = 100) {
11
+ return Math.floor(Math.random() * (max - min + 1) + min);
12
+ }
13
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9tb2NrL3NyYy91dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUNILE1BQU0sVUFBVSxLQUFLLENBQUMsRUFBVTtJQUM5QixPQUFPLElBQUksT0FBTyxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDO0FBQ3pELENBQUM7QUFFRDs7R0FFRztBQUNILE1BQU0sVUFBVSxDQUFDLENBQUMsR0FBRyxHQUFHLENBQUMsRUFBRSxHQUFHLEdBQUcsR0FBRztJQUNsQyxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxHQUFHLENBQUMsR0FBRyxHQUFHLEdBQUcsR0FBRyxDQUFDLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQztBQUMzRCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBVc2VkIHRvIHNpbXVsYXRlIGRlbGF5c1xuICovXG5leHBvcnQgZnVuY3Rpb24gZGVsYXkobXM6IG51bWJlcik6IFByb21pc2U8dm9pZD4ge1xuICByZXR1cm4gbmV3IFByb21pc2UocmVzb2x2ZSA9PiBzZXRUaW1lb3V0KHJlc29sdmUsIG1zKSk7XG59XG5cbi8qKlxuICogUmV0dXJuIGEgcmFuZG9tIG51bWJlclxuICovXG5leHBvcnQgZnVuY3Rpb24gcihtaW4gPSAxLCBtYXggPSAxMDApOiBudW1iZXIge1xuICByZXR1cm4gTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogKG1heCAtIG1pbiArIDEpICsgbWluKTtcbn1cbiJdfQ==
package/fesm2022/mock.mjs CHANGED
@@ -1,13 +1,10 @@
1
1
  import * as i0 from '@angular/core';
2
- import { Injectable, NgModule } from '@angular/core';
2
+ import { InjectionToken, makeEnvironmentProviders, Injectable, Optional, Inject, inject } from '@angular/core';
3
3
  import * as i1 from '@delon/util/config';
4
- import { HttpErrorResponse, HttpResponseBase, HttpResponse, HTTP_INTERCEPTORS } from '@angular/common/http';
5
- import { throwError, of, delay } from 'rxjs';
4
+ import { HttpErrorResponse, HttpResponseBase, HttpResponse } from '@angular/common/http';
5
+ import { of, isObservable, from, map, throwError, switchMap, delay as delay$1 } from 'rxjs';
6
6
  import { deepCopy } from '@delon/util/other';
7
7
 
8
- class MockOptions {
9
- }
10
-
11
8
  /* eslint-disable @typescript-eslint/no-explicit-any */
12
9
  class MockStatusError {
13
10
  constructor(status, error) {
@@ -19,10 +16,14 @@ class MockStatusError {
19
16
  const MOCK_DEFULAT_CONFIG = {
20
17
  delay: 300,
21
18
  force: false,
22
- log: true,
23
- executeOtherInterceptors: true
19
+ log: true
24
20
  };
25
21
 
22
+ const DELON_MOCK_CONFIG = new InjectionToken('alain-mock-config');
23
+ function provideMockConfig(config) {
24
+ return makeEnvironmentProviders([{ provide: DELON_MOCK_CONFIG, useValue: config }]);
25
+ }
26
+
26
27
  /* eslint-disable @typescript-eslint/no-explicit-any */
27
28
  class MockService {
28
29
  constructor(cogSrv, options) {
@@ -151,144 +152,111 @@ class MockService {
151
152
  ngOnDestroy() {
152
153
  this.clearCache();
153
154
  }
154
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: MockService, deps: [{ token: i1.AlainConfigService }, { token: MockOptions }], target: i0.ɵɵFactoryTarget.Injectable }); }
155
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: MockService, providedIn: 'root' }); }
155
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: MockService, deps: [{ token: i1.AlainConfigService }, { token: DELON_MOCK_CONFIG, optional: true }], target: i0.ɵɵFactoryTarget.Injectable }); }
156
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: MockService, providedIn: 'root' }); }
156
157
  }
157
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: MockService, decorators: [{
158
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: MockService, decorators: [{
158
159
  type: Injectable,
159
160
  args: [{ providedIn: 'root' }]
160
- }], ctorParameters: function () { return [{ type: i1.AlainConfigService }, { type: MockOptions }]; } });
161
+ }], ctorParameters: () => [{ type: i1.AlainConfigService }, { type: undefined, decorators: [{
162
+ type: Optional
163
+ }, {
164
+ type: Inject,
165
+ args: [DELON_MOCK_CONFIG]
166
+ }] }] });
161
167
 
162
168
  /* eslint-disable @typescript-eslint/no-explicit-any */
163
- class HttpMockInterceptorHandler {
164
- constructor(next, interceptor) {
165
- this.next = next;
166
- this.interceptor = interceptor;
167
- }
168
- handle(req) {
169
- return this.interceptor.intercept(req, this.next);
169
+ const mockInterceptor = (req, next) => {
170
+ const src = inject(MockService);
171
+ const config = src.config;
172
+ const rule = src.getRule(req.method, req.url.split('?')[0]);
173
+ if (!rule && !config.force) {
174
+ return next(req);
170
175
  }
171
- }
172
- class MockInterceptor {
173
- constructor(injector) {
174
- this.injector = injector;
175
- }
176
- intercept(req, next) {
177
- const src = this.injector.get(MockService);
178
- const config = src.config;
179
- const rule = src.getRule(req.method, req.url.split('?')[0]);
180
- if (!rule && !config.force) {
181
- return next.handle(req);
182
- }
183
- let res;
184
- switch (typeof rule.callback) {
185
- case 'function':
186
- const mockRequest = {
187
- original: req,
188
- body: req.body,
189
- queryString: {},
190
- headers: {},
191
- params: rule.params
192
- };
193
- const urlParams = req.url.split('?');
194
- if (urlParams.length > 1) {
195
- urlParams[1].split('&').forEach(item => {
196
- const itemArr = item.split('=');
197
- const key = itemArr[0];
198
- const value = itemArr[1];
199
- // is array
200
- if (Object.keys(mockRequest.queryString).includes(key)) {
201
- if (!Array.isArray(mockRequest.queryString[key])) {
202
- mockRequest.queryString[key] = [mockRequest.queryString[key]];
203
- }
204
- mockRequest.queryString[key].push(value);
176
+ let res$;
177
+ switch (typeof rule.callback) {
178
+ case 'function':
179
+ const mockRequest = {
180
+ original: req,
181
+ body: req.body,
182
+ queryString: {},
183
+ headers: {},
184
+ params: rule.params
185
+ };
186
+ const urlParams = req.url.split('?');
187
+ if (urlParams.length > 1) {
188
+ urlParams[1].split('&').forEach(item => {
189
+ const itemArr = item.split('=');
190
+ const key = itemArr[0];
191
+ const value = itemArr[1];
192
+ // is array
193
+ if (Object.keys(mockRequest.queryString).includes(key)) {
194
+ if (!Array.isArray(mockRequest.queryString[key])) {
195
+ mockRequest.queryString[key] = [mockRequest.queryString[key]];
205
196
  }
206
- else {
207
- mockRequest.queryString[key] = value;
208
- }
209
- });
210
- }
211
- req.params.keys().forEach(key => (mockRequest.queryString[key] = req.params.get(key)));
212
- req.headers.keys().forEach(key => (mockRequest.headers[key] = req.headers.get(key)));
213
- try {
214
- res = rule.callback.call(this, mockRequest);
215
- }
216
- catch (e) {
217
- res = new HttpErrorResponse({
218
- url: req.url,
219
- headers: req.headers,
220
- status: e instanceof MockStatusError ? e.status : 400,
221
- statusText: e.statusText || 'Unknown Error',
222
- error: e.error
223
- });
224
- }
225
- break;
226
- default:
227
- res = rule.callback;
228
- break;
229
- }
230
- if (!(res instanceof HttpResponseBase)) {
231
- res = new HttpResponse({
232
- status: 200,
233
- url: req.url,
234
- body: res
235
- });
236
- }
237
- if (res.body) {
238
- res.body = deepCopy(res.body);
197
+ mockRequest.queryString[key].push(value);
198
+ }
199
+ else {
200
+ mockRequest.queryString[key] = value;
201
+ }
202
+ });
203
+ }
204
+ req.params.keys().forEach(key => (mockRequest.queryString[key] = req.params.get(key)));
205
+ req.headers.keys().forEach(key => (mockRequest.headers[key] = req.headers.get(key)));
206
+ try {
207
+ const fnRes = rule.callback.call(this, mockRequest);
208
+ res$ = isObservable(fnRes) ? fnRes : from(Promise.resolve(fnRes));
209
+ }
210
+ catch (e) {
211
+ res$ = of(new HttpErrorResponse({
212
+ url: req.url,
213
+ headers: req.headers,
214
+ status: e instanceof MockStatusError ? e.status : 400,
215
+ statusText: e.statusText || 'Unknown Error',
216
+ error: e.error
217
+ }));
218
+ }
219
+ break;
220
+ default:
221
+ res$ = of(rule.callback);
222
+ break;
223
+ }
224
+ res$ = res$.pipe(map(res => res instanceof HttpResponseBase
225
+ ? res
226
+ : new HttpResponse({
227
+ status: 200,
228
+ url: req.url,
229
+ body: deepCopy(res)
230
+ })), map((res) => {
231
+ const anyRes = res;
232
+ if (anyRes.body) {
233
+ anyRes.body = deepCopy(anyRes.body);
239
234
  }
240
235
  if (config.log) {
241
236
  console.log(`%c👽${req.method}->${req.urlWithParams}->request`, 'background:#000;color:#bada55', req);
242
237
  console.log(`%c👽${req.method}->${req.urlWithParams}->response`, 'background:#000;color:#bada55', res);
243
238
  }
244
- const res$ = res instanceof HttpErrorResponse ? throwError(() => res) : of(res);
245
- if (config.executeOtherInterceptors) {
246
- const interceptors = this.injector.get(HTTP_INTERCEPTORS, []);
247
- const lastInterceptors = interceptors.slice(interceptors.indexOf(this) + 1);
248
- if (lastInterceptors.length > 0) {
249
- const chain = lastInterceptors.reduceRight((_next, _interceptor) => new HttpMockInterceptorHandler(_next, _interceptor), {
250
- handle: () => res$
251
- });
252
- return chain.handle(req).pipe(delay(config.delay));
253
- }
254
- }
255
- return res$.pipe(delay(config.delay));
256
- }
257
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: MockInterceptor, deps: [{ token: i0.Injector }], target: i0.ɵɵFactoryTarget.Injectable }); }
258
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: MockInterceptor }); }
259
- }
260
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: MockInterceptor, decorators: [{
261
- type: Injectable
262
- }], ctorParameters: function () { return [{ type: i0.Injector }]; } });
239
+ return res;
240
+ }), switchMap((res) => (res instanceof HttpErrorResponse ? throwError(() => res) : of(res))));
241
+ return res$.pipe(delay$1(config.delay));
242
+ };
263
243
 
264
- class DelonMockModule {
265
- static forRoot(options) {
266
- return {
267
- ngModule: DelonMockModule,
268
- providers: [
269
- { provide: MockOptions, useValue: options },
270
- { provide: HTTP_INTERCEPTORS, useClass: MockInterceptor, multi: true }
271
- ]
272
- };
273
- }
274
- static forChild() {
275
- return {
276
- ngModule: DelonMockModule,
277
- providers: [{ provide: HTTP_INTERCEPTORS, useClass: MockInterceptor, multi: true }]
278
- };
279
- }
280
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DelonMockModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
281
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: DelonMockModule }); }
282
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DelonMockModule }); }
244
+ /**
245
+ * Used to simulate delays
246
+ */
247
+ function delay(ms) {
248
+ return new Promise(resolve => setTimeout(resolve, ms));
249
+ }
250
+ /**
251
+ * Return a random number
252
+ */
253
+ function r(min = 1, max = 100) {
254
+ return Math.floor(Math.random() * (max - min + 1) + min);
283
255
  }
284
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DelonMockModule, decorators: [{
285
- type: NgModule,
286
- args: [{}]
287
- }] });
288
256
 
289
257
  /**
290
258
  * Generated bundle index. Do not edit.
291
259
  */
292
260
 
293
- export { DelonMockModule, MockInterceptor, MockOptions, MockService, MockStatusError };
261
+ export { DELON_MOCK_CONFIG, MockService, MockStatusError, delay, mockInterceptor, provideMockConfig, r };
294
262
  //# sourceMappingURL=mock.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"mock.mjs","sources":["../../../../packages/mock/src/interface.ts","../../../../packages/mock/src/status.error.ts","../../../../packages/mock/src/mock.config.ts","../../../../packages/mock/src/mock.service.ts","../../../../packages/mock/src/mock.interceptor.ts","../../../../packages/mock/src/mock.module.ts","../../../../packages/mock/mock.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { HttpRequest } from '@angular/common/http';\n\nexport class MockOptions {\n data?: any;\n}\n\nexport interface MockCachedRule {\n [key: string]: any;\n\n method: string;\n\n url: string;\n\n martcher: RegExp | null;\n\n segments: string[];\n\n callback(req: MockRequest): any;\n}\n\nexport interface MockRule {\n [key: string]: any;\n\n method: string;\n\n url: string;\n\n /** 路由参数 */\n params?: any;\n\n callback(req: MockRequest): any;\n}\n\nexport interface MockRequest {\n /** 路由参数 */\n params?: any;\n /** URL参数 */\n queryString?: any;\n headers?: any;\n body?: any;\n /** 原始 `HttpRequest` */\n original: HttpRequest<any>;\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\n\nexport class MockStatusError {\n statusText?: string;\n\n constructor(\n public status: number,\n public error?: any\n ) {}\n}\n","import type { AlainMockConfig } from '@delon/util/config';\n\nexport const MOCK_DEFULAT_CONFIG: AlainMockConfig = {\n delay: 300,\n force: false,\n log: true,\n executeOtherInterceptors: true\n};\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { Injectable, OnDestroy } from '@angular/core';\n\nimport { AlainConfigService, AlainMockConfig } from '@delon/util/config';\n\nimport { MockCachedRule, MockOptions, MockRule } from './interface';\nimport { MOCK_DEFULAT_CONFIG } from './mock.config';\n\n@Injectable({ providedIn: 'root' })\nexport class MockService implements OnDestroy {\n private cached: MockCachedRule[] = [];\n readonly config: AlainMockConfig;\n\n constructor(cogSrv: AlainConfigService, options: MockOptions) {\n this.config = cogSrv.merge('mock', MOCK_DEFULAT_CONFIG)!;\n this.setData(options?.data);\n }\n\n /**\n * Reset request data\n *\n * 重新设置请求数据\n */\n setData(data: any): void {\n this.applyMock(data);\n }\n\n // #region parse rule\n\n private applyMock(data: any): void {\n this.cached = [];\n try {\n this.realApplyMock(data);\n } catch (e) {\n this.outputError(e);\n }\n }\n\n private realApplyMock(data: any): void {\n if (!data) return;\n Object.keys(data).forEach((key: string) => {\n const rules = data[key];\n if (!rules) return;\n Object.keys(rules).forEach((ruleKey: string) => {\n const value = rules[ruleKey];\n if (!(typeof value === 'function' || typeof value === 'object' || typeof value === 'string')) {\n throw Error(\n `mock value of [${key}-${ruleKey}] should be function or object or string, but got ${typeof value}`\n );\n }\n const rule = this.genRule(ruleKey, value);\n if (['GET', 'POST', 'PUT', 'HEAD', 'DELETE', 'PATCH', 'OPTIONS'].indexOf(rule.method) === -1) {\n throw Error(`method of ${key}-${ruleKey} is not valid`);\n }\n const item = this.cached.find(w => w.url === rule.url && w.method === rule.method);\n if (item) {\n item.callback = rule.callback;\n } else {\n this.cached.push(rule);\n }\n });\n });\n // regular ordering\n this.cached.sort((a, b) => (b.martcher || '').toString().length - (a.martcher || '').toString().length);\n }\n\n private genRule(key: string, callback: any): MockCachedRule {\n let method = 'GET';\n let url = key;\n\n if (key.indexOf(' ') > -1) {\n const splited = key.split(' ');\n method = splited[0].toLowerCase();\n url = splited[1];\n }\n\n let martcher: RegExp | null = null;\n let segments: string[] = [];\n if (~url.indexOf(':')) {\n segments = url!\n .split('/')\n .filter(segment => segment.startsWith(':'))\n .map(v => v.substring(1));\n const reStr = url!\n .split('/')\n .map(segment => (segment.startsWith(':') ? `([^/]+)` : segment))\n .join('/');\n martcher = new RegExp(`^${reStr}`, 'i');\n } else if (/(\\([^)]+\\))/i.test(url)) {\n martcher = new RegExp(url, 'i');\n }\n\n return {\n url,\n martcher,\n segments,\n callback,\n method: method.toUpperCase()\n };\n }\n\n private outputError(error: any): void {\n const filePath = error.message.split(': ')[0];\n const errors = (error.stack as string)\n .split('\\n')\n .filter(line => line.trim().indexOf('at ') !== 0)\n .map(line => line.replace(`${filePath}: `, ''));\n errors.splice(1, 0, '');\n\n console.group();\n console.warn(`==========Failed to parse mock config.==========`);\n console.log(errors.join('\\n'));\n console.groupEnd();\n\n throw error;\n }\n\n // #endregion\n\n getRule(method: string, url: string): MockRule | null {\n method = (method || 'GET').toUpperCase();\n const params: any = {};\n const list = this.cached.filter(w => w.method === method && (w.martcher ? w.martcher.test(url) : w.url === url));\n if (list.length === 0) return null;\n const ret = list.find(w => w.url === url) || list[0];\n if (ret.martcher) {\n const execArr = ret.martcher.exec(url);\n execArr!.slice(1).map((value: string, index: number) => {\n params[ret.segments[index]] = value;\n });\n }\n return {\n url,\n method: ret.method,\n params,\n callback: ret.callback\n };\n }\n\n clearCache(): void {\n this.cached = [];\n }\n\n get rules(): MockCachedRule[] {\n return this.cached;\n }\n\n ngOnDestroy(): void {\n this.clearCache();\n }\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport {\n HttpBackend,\n HttpErrorResponse,\n HttpEvent,\n HttpHandler,\n HttpInterceptor,\n HttpRequest,\n HttpResponse,\n HttpResponseBase,\n HTTP_INTERCEPTORS\n} from '@angular/common/http';\nimport { Injectable, Injector } from '@angular/core';\nimport { Observable, of, throwError, delay } from 'rxjs';\n\nimport { deepCopy } from '@delon/util/other';\n\nimport { MockRequest } from './interface';\nimport { MockService } from './mock.service';\nimport { MockStatusError } from './status.error';\n\nclass HttpMockInterceptorHandler implements HttpHandler {\n constructor(\n private next: HttpHandler,\n private interceptor: HttpInterceptor\n ) {}\n\n handle(req: HttpRequest<any>): Observable<HttpEvent<any>> {\n return this.interceptor.intercept(req, this.next);\n }\n}\n\n@Injectable()\nexport class MockInterceptor implements HttpInterceptor {\n constructor(private injector: Injector) {}\n\n intercept(req: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {\n const src = this.injector.get(MockService);\n const config = src.config;\n const rule = src.getRule(req.method, req.url.split('?')[0]);\n if (!rule && !config.force) {\n return next.handle(req);\n }\n\n let res: any;\n switch (typeof rule!.callback) {\n case 'function':\n const mockRequest: MockRequest = {\n original: req,\n body: req.body,\n queryString: {},\n headers: {},\n params: rule!.params\n };\n const urlParams = req.url.split('?');\n if (urlParams.length > 1) {\n urlParams[1].split('&').forEach(item => {\n const itemArr = item.split('=');\n const key = itemArr[0];\n const value = itemArr[1];\n // is array\n if (Object.keys(mockRequest.queryString).includes(key)) {\n if (!Array.isArray(mockRequest.queryString[key])) {\n mockRequest.queryString[key] = [mockRequest.queryString[key]];\n }\n mockRequest.queryString[key].push(value);\n } else {\n mockRequest.queryString[key] = value;\n }\n });\n }\n req.params.keys().forEach(key => (mockRequest.queryString[key] = req.params.get(key)));\n req.headers.keys().forEach(key => (mockRequest.headers[key] = req.headers.get(key)));\n\n try {\n res = rule!.callback.call(this, mockRequest);\n } catch (e: any) {\n res = new HttpErrorResponse({\n url: req.url,\n headers: req.headers,\n status: e instanceof MockStatusError ? e.status : 400,\n statusText: e.statusText || 'Unknown Error',\n error: e.error\n });\n }\n break;\n default:\n res = rule!.callback;\n break;\n }\n\n if (!(res instanceof HttpResponseBase)) {\n res = new HttpResponse({\n status: 200,\n url: req.url,\n body: res\n });\n }\n\n if (res.body) {\n res.body = deepCopy(res.body);\n }\n\n if (config.log) {\n console.log(`%c👽${req.method}->${req.urlWithParams}->request`, 'background:#000;color:#bada55', req);\n console.log(`%c👽${req.method}->${req.urlWithParams}->response`, 'background:#000;color:#bada55', res);\n }\n\n const res$ = res instanceof HttpErrorResponse ? throwError(() => res) : of(res);\n\n if (config.executeOtherInterceptors) {\n const interceptors = this.injector.get(HTTP_INTERCEPTORS, []);\n const lastInterceptors = interceptors.slice(interceptors.indexOf(this) + 1);\n if (lastInterceptors.length > 0) {\n const chain = lastInterceptors.reduceRight(\n (_next, _interceptor) => new HttpMockInterceptorHandler(_next, _interceptor),\n {\n handle: () => res$\n } as HttpBackend\n );\n return chain.handle(req).pipe(delay(config.delay!));\n }\n }\n\n return res$.pipe(delay(config.delay!));\n }\n}\n","import { HTTP_INTERCEPTORS } from '@angular/common/http';\nimport { ModuleWithProviders, NgModule } from '@angular/core';\n\nimport { MockOptions } from './interface';\nimport { MockInterceptor } from './mock.interceptor';\n\n@NgModule({})\nexport class DelonMockModule {\n static forRoot(options?: MockOptions): ModuleWithProviders<DelonMockModule> {\n return {\n ngModule: DelonMockModule,\n providers: [\n { provide: MockOptions, useValue: options },\n { provide: HTTP_INTERCEPTORS, useClass: MockInterceptor, multi: true }\n ]\n };\n }\n\n static forChild(): ModuleWithProviders<DelonMockModule> {\n return {\n ngModule: DelonMockModule,\n providers: [{ provide: HTTP_INTERCEPTORS, useClass: MockInterceptor, multi: true }]\n };\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["i2.MockOptions"],"mappings":"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"}
1
+ {"version":3,"file":"mock.mjs","sources":["../../../../packages/mock/src/status.error.ts","../../../../packages/mock/src/mock.config.ts","../../../../packages/mock/src/provide.ts","../../../../packages/mock/src/mock.service.ts","../../../../packages/mock/src/mock.interceptor.ts","../../../../packages/mock/src/utils.ts","../../../../packages/mock/mock.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\n\nexport class MockStatusError {\n statusText?: string;\n\n constructor(\n public status: number,\n public error?: any\n ) {}\n}\n","import type { AlainMockConfig } from '@delon/util/config';\n\nexport const MOCK_DEFULAT_CONFIG: AlainMockConfig = {\n delay: 300,\n force: false,\n log: true\n};\n","import { EnvironmentProviders, InjectionToken, makeEnvironmentProviders } from '@angular/core';\n\nimport { MockOptions } from './interface';\n\nexport const DELON_MOCK_CONFIG = new InjectionToken<MockOptions>('alain-mock-config');\n\nexport function provideMockConfig(config?: MockOptions): EnvironmentProviders {\n return makeEnvironmentProviders([{ provide: DELON_MOCK_CONFIG, useValue: config }]);\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { Inject, Injectable, OnDestroy, Optional } from '@angular/core';\n\nimport { AlainConfigService, AlainMockConfig } from '@delon/util/config';\n\nimport { MockCachedRule, MockOptions, MockRule } from './interface';\nimport { MOCK_DEFULAT_CONFIG } from './mock.config';\nimport { DELON_MOCK_CONFIG } from './provide';\n\n@Injectable({ providedIn: 'root' })\nexport class MockService implements OnDestroy {\n private cached: MockCachedRule[] = [];\n readonly config: AlainMockConfig;\n\n constructor(cogSrv: AlainConfigService, @Optional() @Inject(DELON_MOCK_CONFIG) options?: MockOptions) {\n this.config = cogSrv.merge('mock', MOCK_DEFULAT_CONFIG)!;\n this.setData(options?.data);\n }\n\n /**\n * Reset request data\n *\n * 重新设置请求数据\n */\n setData(data: any): void {\n this.applyMock(data);\n }\n\n // #region parse rule\n\n private applyMock(data: any): void {\n this.cached = [];\n try {\n this.realApplyMock(data);\n } catch (e) {\n this.outputError(e);\n }\n }\n\n private realApplyMock(data: any): void {\n if (!data) return;\n Object.keys(data).forEach((key: string) => {\n const rules = data[key];\n if (!rules) return;\n Object.keys(rules).forEach((ruleKey: string) => {\n const value = rules[ruleKey];\n if (!(typeof value === 'function' || typeof value === 'object' || typeof value === 'string')) {\n throw Error(\n `mock value of [${key}-${ruleKey}] should be function or object or string, but got ${typeof value}`\n );\n }\n const rule = this.genRule(ruleKey, value);\n if (['GET', 'POST', 'PUT', 'HEAD', 'DELETE', 'PATCH', 'OPTIONS'].indexOf(rule.method) === -1) {\n throw Error(`method of ${key}-${ruleKey} is not valid`);\n }\n const item = this.cached.find(w => w.url === rule.url && w.method === rule.method);\n if (item) {\n item.callback = rule.callback;\n } else {\n this.cached.push(rule);\n }\n });\n });\n // regular ordering\n this.cached.sort((a, b) => (b.martcher || '').toString().length - (a.martcher || '').toString().length);\n }\n\n private genRule(key: string, callback: any): MockCachedRule {\n let method = 'GET';\n let url = key;\n\n if (key.indexOf(' ') > -1) {\n const splited = key.split(' ');\n method = splited[0].toLowerCase();\n url = splited[1];\n }\n\n let martcher: RegExp | null = null;\n let segments: string[] = [];\n if (~url.indexOf(':')) {\n segments = url!\n .split('/')\n .filter(segment => segment.startsWith(':'))\n .map(v => v.substring(1));\n const reStr = url!\n .split('/')\n .map(segment => (segment.startsWith(':') ? `([^/]+)` : segment))\n .join('/');\n martcher = new RegExp(`^${reStr}`, 'i');\n } else if (/(\\([^)]+\\))/i.test(url)) {\n martcher = new RegExp(url, 'i');\n }\n\n return {\n url,\n martcher,\n segments,\n callback,\n method: method.toUpperCase()\n };\n }\n\n private outputError(error: any): void {\n const filePath = error.message.split(': ')[0];\n const errors = (error.stack as string)\n .split('\\n')\n .filter(line => line.trim().indexOf('at ') !== 0)\n .map(line => line.replace(`${filePath}: `, ''));\n errors.splice(1, 0, '');\n\n console.group();\n console.warn(`==========Failed to parse mock config.==========`);\n console.log(errors.join('\\n'));\n console.groupEnd();\n\n throw error;\n }\n\n // #endregion\n\n getRule(method: string, url: string): MockRule | null {\n method = (method || 'GET').toUpperCase();\n const params: any = {};\n const list = this.cached.filter(w => w.method === method && (w.martcher ? w.martcher.test(url) : w.url === url));\n if (list.length === 0) return null;\n const ret = list.find(w => w.url === url) || list[0];\n if (ret.martcher) {\n const execArr = ret.martcher.exec(url);\n execArr!.slice(1).map((value: string, index: number) => {\n params[ret.segments[index]] = value;\n });\n }\n return {\n url,\n method: ret.method,\n params,\n callback: ret.callback\n };\n }\n\n clearCache(): void {\n this.cached = [];\n }\n\n get rules(): MockCachedRule[] {\n return this.cached;\n }\n\n ngOnDestroy(): void {\n this.clearCache();\n }\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { HttpErrorResponse, HttpResponse, HttpResponseBase, HttpInterceptorFn } from '@angular/common/http';\nimport { inject } from '@angular/core';\nimport { Observable, of, throwError, delay, isObservable, from, map, switchMap } from 'rxjs';\n\nimport { deepCopy } from '@delon/util/other';\n\nimport { MockRequest } from './interface';\nimport { MockService } from './mock.service';\nimport { MockStatusError } from './status.error';\n\nexport const mockInterceptor: HttpInterceptorFn = (req, next) => {\n const src = inject(MockService);\n const config = src.config;\n const rule = src.getRule(req.method, req.url.split('?')[0]);\n if (!rule && !config.force) {\n return next(req);\n }\n\n let res$: Observable<any>;\n switch (typeof rule!.callback) {\n case 'function':\n const mockRequest: MockRequest = {\n original: req,\n body: req.body,\n queryString: {},\n headers: {},\n params: rule!.params\n };\n const urlParams = req.url.split('?');\n if (urlParams.length > 1) {\n urlParams[1].split('&').forEach(item => {\n const itemArr = item.split('=');\n const key = itemArr[0];\n const value = itemArr[1];\n // is array\n if (Object.keys(mockRequest.queryString).includes(key)) {\n if (!Array.isArray(mockRequest.queryString[key])) {\n mockRequest.queryString[key] = [mockRequest.queryString[key]];\n }\n mockRequest.queryString[key].push(value);\n } else {\n mockRequest.queryString[key] = value;\n }\n });\n }\n req.params.keys().forEach(key => (mockRequest.queryString[key] = req.params.get(key)));\n req.headers.keys().forEach(key => (mockRequest.headers[key] = req.headers.get(key)));\n\n try {\n const fnRes = rule!.callback.call(this, mockRequest);\n res$ = isObservable(fnRes) ? fnRes : from(Promise.resolve(fnRes));\n } catch (e: any) {\n res$ = of(\n new HttpErrorResponse({\n url: req.url,\n headers: req.headers,\n status: e instanceof MockStatusError ? e.status : 400,\n statusText: e.statusText || 'Unknown Error',\n error: e.error\n })\n );\n }\n break;\n default:\n res$ = of(rule!.callback);\n break;\n }\n\n res$ = res$.pipe(\n map(res =>\n res instanceof HttpResponseBase\n ? res\n : new HttpResponse({\n status: 200,\n url: req.url,\n body: deepCopy(res)\n })\n ),\n map((res: HttpResponseBase) => {\n const anyRes: any = res;\n if (anyRes.body) {\n anyRes.body = deepCopy(anyRes.body);\n }\n if (config.log) {\n console.log(`%c👽${req.method}->${req.urlWithParams}->request`, 'background:#000;color:#bada55', req);\n console.log(`%c👽${req.method}->${req.urlWithParams}->response`, 'background:#000;color:#bada55', res);\n }\n return res;\n }),\n switchMap((res: HttpResponseBase) => (res instanceof HttpErrorResponse ? throwError(() => res) : of(res)))\n );\n\n return res$.pipe(delay(config.delay!));\n};\n","/**\n * Used to simulate delays\n */\nexport function delay(ms: number): Promise<void> {\n return new Promise(resolve => setTimeout(resolve, ms));\n}\n\n/**\n * Return a random number\n */\nexport function r(min = 1, max = 100): number {\n return Math.floor(Math.random() * (max - min + 1) + min);\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["this","delay"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@delon/mock",
3
- "version": "16.4.3",
3
+ "version": "17.0.0",
4
4
  "author": "cipchk<cipchk@qq.com>",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -27,8 +27,8 @@
27
27
  ],
28
28
  "dependencies": {
29
29
  "mockjs": "^1.1.0",
30
- "@types/mockjs": "^1.0.7",
31
- "@delon/util": "^16.4.3",
30
+ "@types/mockjs": "^1.0.10",
31
+ "@delon/util": "^17.0.0",
32
32
  "tslib": "^2.3.0"
33
33
  },
34
34
  "module": "fesm2022/mock.mjs",
package/public_api.d.ts CHANGED
@@ -2,4 +2,5 @@ export * from './src/interface';
2
2
  export * from './src/status.error';
3
3
  export * from './src/mock.service';
4
4
  export * from './src/mock.interceptor';
5
- export * from './src/mock.module';
5
+ export * from './src/provide';
6
+ export * from './src/utils';
@@ -1,5 +1,7 @@
1
- import { HttpRequest } from '@angular/common/http';
2
- export declare class MockOptions {
1
+ import { type HttpRequest } from '@angular/common/http';
2
+ import type { Observable } from 'rxjs';
3
+ export type MockCallback = any | Observable<any> | Promise<any>;
4
+ export interface MockOptions {
3
5
  data?: any;
4
6
  }
5
7
  export interface MockCachedRule {
@@ -8,7 +10,7 @@ export interface MockCachedRule {
8
10
  url: string;
9
11
  martcher: RegExp | null;
10
12
  segments: string[];
11
- callback(req: MockRequest): any;
13
+ callback(req: MockRequest): MockCallback;
12
14
  }
13
15
  export interface MockRule {
14
16
  [key: string]: any;
@@ -16,7 +18,7 @@ export interface MockRule {
16
18
  url: string;
17
19
  /** 路由参数 */
18
20
  params?: any;
19
- callback(req: MockRequest): any;
21
+ callback(req: MockRequest): MockCallback;
20
22
  }
21
23
  export interface MockRequest {
22
24
  /** 路由参数 */
@@ -1,11 +1,2 @@
1
- import { HttpEvent, HttpHandler, HttpInterceptor, HttpRequest } from '@angular/common/http';
2
- import { Injector } from '@angular/core';
3
- import { Observable } from 'rxjs';
4
- import * as i0 from "@angular/core";
5
- export declare class MockInterceptor implements HttpInterceptor {
6
- private injector;
7
- constructor(injector: Injector);
8
- intercept(req: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>>;
9
- static ɵfac: i0.ɵɵFactoryDeclaration<MockInterceptor, never>;
10
- static ɵprov: i0.ɵɵInjectableDeclaration<MockInterceptor>;
11
- }
1
+ import { HttpInterceptorFn } from '@angular/common/http';
2
+ export declare const mockInterceptor: HttpInterceptorFn;
@@ -5,7 +5,7 @@ import * as i0 from "@angular/core";
5
5
  export declare class MockService implements OnDestroy {
6
6
  private cached;
7
7
  readonly config: AlainMockConfig;
8
- constructor(cogSrv: AlainConfigService, options: MockOptions);
8
+ constructor(cogSrv: AlainConfigService, options?: MockOptions);
9
9
  /**
10
10
  * Reset request data
11
11
  *
@@ -20,6 +20,6 @@ export declare class MockService implements OnDestroy {
20
20
  clearCache(): void;
21
21
  get rules(): MockCachedRule[];
22
22
  ngOnDestroy(): void;
23
- static ɵfac: i0.ɵɵFactoryDeclaration<MockService, never>;
23
+ static ɵfac: i0.ɵɵFactoryDeclaration<MockService, [null, { optional: true; }]>;
24
24
  static ɵprov: i0.ɵɵInjectableDeclaration<MockService>;
25
25
  }
@@ -0,0 +1,4 @@
1
+ import { EnvironmentProviders, InjectionToken } from '@angular/core';
2
+ import { MockOptions } from './interface';
3
+ export declare const DELON_MOCK_CONFIG: InjectionToken<MockOptions>;
4
+ export declare function provideMockConfig(config?: MockOptions): EnvironmentProviders;
package/src/utils.d.ts ADDED
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Used to simulate delays
3
+ */
4
+ export declare function delay(ms: number): Promise<void>;
5
+ /**
6
+ * Return a random number
7
+ */
8
+ export declare function r(min?: number, max?: number): number;
@@ -1,30 +0,0 @@
1
- import { HTTP_INTERCEPTORS } from '@angular/common/http';
2
- import { NgModule } from '@angular/core';
3
- import { MockOptions } from './interface';
4
- import { MockInterceptor } from './mock.interceptor';
5
- import * as i0 from "@angular/core";
6
- export class DelonMockModule {
7
- static forRoot(options) {
8
- return {
9
- ngModule: DelonMockModule,
10
- providers: [
11
- { provide: MockOptions, useValue: options },
12
- { provide: HTTP_INTERCEPTORS, useClass: MockInterceptor, multi: true }
13
- ]
14
- };
15
- }
16
- static forChild() {
17
- return {
18
- ngModule: DelonMockModule,
19
- providers: [{ provide: HTTP_INTERCEPTORS, useClass: MockInterceptor, multi: true }]
20
- };
21
- }
22
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DelonMockModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
23
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: DelonMockModule }); }
24
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DelonMockModule }); }
25
- }
26
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DelonMockModule, decorators: [{
27
- type: NgModule,
28
- args: [{}]
29
- }] });
30
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9jay5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9tb2NrL3NyYy9tb2NrLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN6RCxPQUFPLEVBQXVCLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUU5RCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQzFDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQzs7QUFHckQsTUFBTSxPQUFPLGVBQWU7SUFDMUIsTUFBTSxDQUFDLE9BQU8sQ0FBQyxPQUFxQjtRQUNsQyxPQUFPO1lBQ0wsUUFBUSxFQUFFLGVBQWU7WUFDekIsU0FBUyxFQUFFO2dCQUNULEVBQUUsT0FBTyxFQUFFLFdBQVcsRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFO2dCQUMzQyxFQUFFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxRQUFRLEVBQUUsZUFBZSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUU7YUFDdkU7U0FDRixDQUFDO0lBQ0osQ0FBQztJQUVELE1BQU0sQ0FBQyxRQUFRO1FBQ2IsT0FBTztZQUNMLFFBQVEsRUFBRSxlQUFlO1lBQ3pCLFNBQVMsRUFBRSxDQUFDLEVBQUUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLFFBQVEsRUFBRSxlQUFlLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxDQUFDO1NBQ3BGLENBQUM7SUFDSixDQUFDOytHQWhCVSxlQUFlO2dIQUFmLGVBQWU7Z0hBQWYsZUFBZTs7NEZBQWYsZUFBZTtrQkFEM0IsUUFBUTttQkFBQyxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSFRUUF9JTlRFUkNFUFRPUlMgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBNb2R1bGVXaXRoUHJvdmlkZXJzLCBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBNb2NrT3B0aW9ucyB9IGZyb20gJy4vaW50ZXJmYWNlJztcbmltcG9ydCB7IE1vY2tJbnRlcmNlcHRvciB9IGZyb20gJy4vbW9jay5pbnRlcmNlcHRvcic7XG5cbkBOZ01vZHVsZSh7fSlcbmV4cG9ydCBjbGFzcyBEZWxvbk1vY2tNb2R1bGUge1xuICBzdGF0aWMgZm9yUm9vdChvcHRpb25zPzogTW9ja09wdGlvbnMpOiBNb2R1bGVXaXRoUHJvdmlkZXJzPERlbG9uTW9ja01vZHVsZT4ge1xuICAgIHJldHVybiB7XG4gICAgICBuZ01vZHVsZTogRGVsb25Nb2NrTW9kdWxlLFxuICAgICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHsgcHJvdmlkZTogTW9ja09wdGlvbnMsIHVzZVZhbHVlOiBvcHRpb25zIH0sXG4gICAgICAgIHsgcHJvdmlkZTogSFRUUF9JTlRFUkNFUFRPUlMsIHVzZUNsYXNzOiBNb2NrSW50ZXJjZXB0b3IsIG11bHRpOiB0cnVlIH1cbiAgICAgIF1cbiAgICB9O1xuICB9XG5cbiAgc3RhdGljIGZvckNoaWxkKCk6IE1vZHVsZVdpdGhQcm92aWRlcnM8RGVsb25Nb2NrTW9kdWxlPiB7XG4gICAgcmV0dXJuIHtcbiAgICAgIG5nTW9kdWxlOiBEZWxvbk1vY2tNb2R1bGUsXG4gICAgICBwcm92aWRlcnM6IFt7IHByb3ZpZGU6IEhUVFBfSU5URVJDRVBUT1JTLCB1c2VDbGFzczogTW9ja0ludGVyY2VwdG9yLCBtdWx0aTogdHJ1ZSB9XVxuICAgIH07XG4gIH1cbn1cbiJdfQ==
@@ -1,10 +0,0 @@
1
- import { ModuleWithProviders } from '@angular/core';
2
- import { MockOptions } from './interface';
3
- import * as i0 from "@angular/core";
4
- export declare class DelonMockModule {
5
- static forRoot(options?: MockOptions): ModuleWithProviders<DelonMockModule>;
6
- static forChild(): ModuleWithProviders<DelonMockModule>;
7
- static ɵfac: i0.ɵɵFactoryDeclaration<DelonMockModule, never>;
8
- static ɵmod: i0.ɵɵNgModuleDeclaration<DelonMockModule, never, never, never>;
9
- static ɵinj: i0.ɵɵInjectorDeclaration<DelonMockModule>;
10
- }