ng2-rest 21.0.11 → 21.0.15
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +0 -8
- package/browser/fesm2022/ng2-rest-browser.mjs +11 -9
- package/browser/fesm2022/ng2-rest-browser.mjs.map +1 -1
- package/browser/package.json +1 -1
- package/browser/types/ng2-rest-browser.d.ts +0 -2
- package/browser-prod/README.md +24 -0
- package/browser-prod/fesm2022/ng2-rest-browser.mjs +1804 -0
- package/browser-prod/fesm2022/ng2-rest-browser.mjs.map +1 -0
- package/browser-prod/types/ng2-rest-browser.d.ts +427 -0
- package/lib/axios-interceptors.js.map +1 -1
- package/lib/build-info._auto-generated_.d.ts +5 -1
- package/lib/build-info._auto-generated_.js +6 -2
- package/lib/build-info._auto-generated_.js.map +1 -1
- package/lib/env/env.angular-node-app.d.ts +30 -30
- package/lib/env/env.angular-node-app.js +32 -32
- package/lib/env/env.angular-node-app.js.map +1 -1
- package/lib/env/env.docs-webapp.d.ts +30 -30
- package/lib/env/env.docs-webapp.js +32 -32
- package/lib/env/env.docs-webapp.js.map +1 -1
- package/lib/env/env.electron-app.d.ts +30 -30
- package/lib/env/env.electron-app.js +32 -32
- package/lib/env/env.electron-app.js.map +1 -1
- package/lib/env/env.mobile-app.d.ts +30 -30
- package/lib/env/env.mobile-app.js +32 -32
- package/lib/env/env.mobile-app.js.map +1 -1
- package/lib/env/env.npm-lib-and-cli-tool.d.ts +30 -30
- package/lib/env/env.npm-lib-and-cli-tool.js +32 -32
- package/lib/env/env.npm-lib-and-cli-tool.js.map +1 -1
- package/lib/env/env.vscode-plugin.d.ts +30 -30
- package/lib/env/env.vscode-plugin.js +32 -32
- package/lib/env/env.vscode-plugin.js.map +1 -1
- package/lib/index._auto-generated_.js +1 -1
- package/lib/index._auto-generated_.js.map +1 -1
- package/lib/resource-service.d.ts +0 -1
- package/lib/resource-service.js +5 -7
- package/lib/resource-service.js.map +1 -1
- package/lib/rest-request.d.ts +0 -1
- package/lib/rest-request.js +4 -3
- package/lib/rest-request.js.map +1 -1
- package/lib-prod/axios-interceptors.d.ts +22 -0
- package/lib-prod/axios-interceptors.js +22 -0
- package/lib-prod/axios-interceptors.js.map +1 -0
- package/lib-prod/build-info._auto-generated_.d.ts +24 -0
- package/lib-prod/build-info._auto-generated_.js +30 -0
- package/lib-prod/build-info._auto-generated_.js.map +1 -0
- package/lib-prod/content-type.d.ts +5 -0
- package/lib-prod/content-type.js +15 -0
- package/lib-prod/content-type.js.map +1 -0
- package/lib-prod/cookie.d.ts +8 -0
- package/lib-prod/cookie.js +32 -0
- package/lib-prod/cookie.js.map +1 -0
- package/lib-prod/env/env.angular-node-app.d.ts +64 -0
- package/lib-prod/env/env.angular-node-app.js +71 -0
- package/lib-prod/env/env.angular-node-app.js.map +1 -0
- package/lib-prod/env/env.docs-webapp.d.ts +64 -0
- package/lib-prod/env/env.docs-webapp.js +71 -0
- package/lib-prod/env/env.docs-webapp.js.map +1 -0
- package/lib-prod/env/env.electron-app.d.ts +64 -0
- package/lib-prod/env/env.electron-app.js +71 -0
- package/lib-prod/env/env.electron-app.js.map +1 -0
- package/lib-prod/env/env.mobile-app.d.ts +64 -0
- package/lib-prod/env/env.mobile-app.js +71 -0
- package/lib-prod/env/env.mobile-app.js.map +1 -0
- package/lib-prod/env/env.npm-lib-and-cli-tool.d.ts +64 -0
- package/lib-prod/env/env.npm-lib-and-cli-tool.js +71 -0
- package/lib-prod/env/env.npm-lib-and-cli-tool.js.map +1 -0
- package/lib-prod/env/env.vscode-plugin.d.ts +64 -0
- package/lib-prod/env/env.vscode-plugin.js +71 -0
- package/lib-prod/env/env.vscode-plugin.js.map +1 -0
- package/lib-prod/env/index.d.ts +6 -0
- package/lib-prod/env/index.js +23 -0
- package/lib-prod/env/index.js.map +1 -0
- package/lib-prod/helpers.d.ts +11 -0
- package/lib-prod/helpers.js +26 -0
- package/lib-prod/helpers.js.map +1 -0
- package/lib-prod/index._auto-generated_.d.ts +0 -0
- package/lib-prod/index._auto-generated_.js +6 -0
- package/lib-prod/index._auto-generated_.js.map +1 -0
- package/lib-prod/index.d.ts +10 -0
- package/lib-prod/index.js +30 -0
- package/lib-prod/index.js.map +1 -0
- package/lib-prod/mapping.d.ts +13 -0
- package/lib-prod/mapping.js +280 -0
- package/lib-prod/mapping.js.map +1 -0
- package/lib-prod/models.d.ts +186 -0
- package/lib-prod/models.js +214 -0
- package/lib-prod/models.js.map +1 -0
- package/lib-prod/other/simple-resource.d.ts +30 -0
- package/lib-prod/other/simple-resource.js +138 -0
- package/lib-prod/other/simple-resource.js.map +1 -0
- package/lib-prod/params.d.ts +24 -0
- package/lib-prod/params.js +319 -0
- package/lib-prod/params.js.map +1 -0
- package/lib-prod/resource-service.d.ts +43 -0
- package/lib-prod/resource-service.js +210 -0
- package/lib-prod/resource-service.js.map +1 -0
- package/lib-prod/rest-headers.d.ts +58 -0
- package/lib-prod/rest-headers.js +141 -0
- package/lib-prod/rest-headers.js.map +1 -0
- package/lib-prod/rest-request.d.ts +29 -0
- package/lib-prod/rest-request.js +376 -0
- package/lib-prod/rest-request.js.map +1 -0
- package/lib-prod/rest.class.d.ts +36 -0
- package/lib-prod/rest.class.js +145 -0
- package/lib-prod/rest.class.js.map +1 -0
- package/package.json +9 -7
- package/tmp-environment.json +8 -4
- package/websql/fesm2022/ng2-rest-websql.mjs +11 -9
- package/websql/fesm2022/ng2-rest-websql.mjs.map +1 -1
- package/websql/package.json +1 -1
- package/websql/types/ng2-rest-websql.d.ts +0 -2
- package/websql-prod/README.md +24 -0
- package/websql-prod/fesm2022/ng2-rest-websql.mjs +1804 -0
- package/websql-prod/fesm2022/ng2-rest-websql.mjs.map +1 -0
- package/websql-prod/types/ng2-rest-websql.d.ts +427 -0
|
@@ -0,0 +1,141 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.RestHeaders = void 0;
|
|
4
|
+
class RestHeaders {
|
|
5
|
+
/** @internal header names are lower case */
|
|
6
|
+
_headers = new Map();
|
|
7
|
+
/** @internal map lower case names to actual names */
|
|
8
|
+
_normalizedNames = new Map();
|
|
9
|
+
static from(headers) {
|
|
10
|
+
if (!headers) {
|
|
11
|
+
return void 0;
|
|
12
|
+
}
|
|
13
|
+
return new RestHeaders(headers);
|
|
14
|
+
}
|
|
15
|
+
constructor(headers) {
|
|
16
|
+
if (headers instanceof RestHeaders) {
|
|
17
|
+
headers.forEach((values, name) => {
|
|
18
|
+
values.forEach(value => this.set(name, value));
|
|
19
|
+
});
|
|
20
|
+
}
|
|
21
|
+
else {
|
|
22
|
+
Object.keys(headers).forEach((name) => {
|
|
23
|
+
const values = (Array.isArray(headers[name]) ? headers[name] : [headers[name]]);
|
|
24
|
+
this.delete(name);
|
|
25
|
+
values.forEach(value => this.set(name, value));
|
|
26
|
+
});
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Returns a new RestHeaders instance from the given DOMString of Response RestHeaders
|
|
31
|
+
*/
|
|
32
|
+
static fromResponseHeaderString(headersString) {
|
|
33
|
+
const headers = new RestHeaders();
|
|
34
|
+
// console.log({
|
|
35
|
+
// headersString
|
|
36
|
+
// })
|
|
37
|
+
headersString.split('\n').forEach(line => {
|
|
38
|
+
const index = line.indexOf(':');
|
|
39
|
+
if (index > 0) {
|
|
40
|
+
const name = line.slice(0, index);
|
|
41
|
+
const value = line.slice(index + 1).trim();
|
|
42
|
+
headers.set(name, value);
|
|
43
|
+
}
|
|
44
|
+
});
|
|
45
|
+
return headers;
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Appends a header to existing list of header values for a given header name.
|
|
49
|
+
*/
|
|
50
|
+
append(name, value) {
|
|
51
|
+
const values = this.getAll(name);
|
|
52
|
+
if (values === null) {
|
|
53
|
+
this.set(name, value);
|
|
54
|
+
}
|
|
55
|
+
else {
|
|
56
|
+
values.push(value);
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Deletes all header values for the given name.
|
|
61
|
+
*/
|
|
62
|
+
delete(name) {
|
|
63
|
+
const lcName = name.toLowerCase();
|
|
64
|
+
this._normalizedNames.delete(lcName);
|
|
65
|
+
this._headers.delete(lcName);
|
|
66
|
+
}
|
|
67
|
+
forEach(fn) {
|
|
68
|
+
this._headers.forEach((values, lcName) => fn(values, this._normalizedNames.get(lcName), this._headers));
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* Returns first header that matches given name.
|
|
72
|
+
*/
|
|
73
|
+
get(name) {
|
|
74
|
+
const values = this.getAll(name);
|
|
75
|
+
if (values === null) {
|
|
76
|
+
return null;
|
|
77
|
+
}
|
|
78
|
+
return values.length > 0 ? values[0] : null;
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* Checks for existence of header by given name.
|
|
82
|
+
*/
|
|
83
|
+
has(name) { return this._headers.has(name.toLowerCase()); }
|
|
84
|
+
/**
|
|
85
|
+
* Returns the names of the headers
|
|
86
|
+
*/
|
|
87
|
+
keys() { return Array.from(this._normalizedNames.values()); }
|
|
88
|
+
/**
|
|
89
|
+
* Sets or overrides header value for given name.
|
|
90
|
+
*/
|
|
91
|
+
set(name, value) {
|
|
92
|
+
if (Array.isArray(value)) {
|
|
93
|
+
if (value.length) {
|
|
94
|
+
this._headers.set(name.toLowerCase(), [value.join(',')]);
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
else {
|
|
98
|
+
this._headers.set(name.toLowerCase(), [value]);
|
|
99
|
+
}
|
|
100
|
+
this.mayBeSetNormalizedName(name);
|
|
101
|
+
}
|
|
102
|
+
/**
|
|
103
|
+
* Returns values of all headers.
|
|
104
|
+
*/
|
|
105
|
+
values() { return Array.from(this._headers.values()); }
|
|
106
|
+
/**
|
|
107
|
+
* Returns string of all headers.
|
|
108
|
+
*/
|
|
109
|
+
// TODO(vicb): returns {[name: string]: string[]}
|
|
110
|
+
toJSON() {
|
|
111
|
+
const serialized = {};
|
|
112
|
+
if (!this._headers) {
|
|
113
|
+
// debugger
|
|
114
|
+
}
|
|
115
|
+
// console.log('serializing headers',this._headers)
|
|
116
|
+
this._headers.forEach((values, name) => {
|
|
117
|
+
const split = [];
|
|
118
|
+
values.forEach(v => split.push(...v.split(',')));
|
|
119
|
+
// console.log({
|
|
120
|
+
// values
|
|
121
|
+
// })
|
|
122
|
+
// values.forEach(v => split.push(...(v ? v : '').split(',')));
|
|
123
|
+
serialized[this._normalizedNames.get(name)] = split;
|
|
124
|
+
});
|
|
125
|
+
return serialized;
|
|
126
|
+
}
|
|
127
|
+
/**
|
|
128
|
+
* Returns list of header values for a given name.
|
|
129
|
+
*/
|
|
130
|
+
getAll(name) {
|
|
131
|
+
return this.has(name) ? this._headers.get(name.toLowerCase()) : null;
|
|
132
|
+
}
|
|
133
|
+
mayBeSetNormalizedName(name) {
|
|
134
|
+
const lcName = name.toLowerCase();
|
|
135
|
+
if (!this._normalizedNames.has(lcName)) {
|
|
136
|
+
this._normalizedNames.set(lcName, name);
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
exports.RestHeaders = RestHeaders;
|
|
141
|
+
//# sourceMappingURL=rest-headers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rest-headers.js","sourceRoot":"","sources":[""],"names":[],"mappings":";;;AAKA,MAAa,WAAW;IACtB,4CAA4C;IAC5C,QAAQ,GAA0B,IAAI,GAAG,EAAE,CAAC;IAC5C,qDAAqD;IACrD,gBAAgB,GAAwB,IAAI,GAAG,EAAE,CAAC;IAG3C,MAAM,CAAC,IAAI,CAAC,OAA4B;QAC7C,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO,KAAK,CAAC,CAAC;QAChB,CAAC;QACD,OAAO,IAAI,WAAW,CAAC,OAAO,CAAC,CAAC;IAClC,CAAC;IAED,YAAoB,OAA+D;QACjF,IAAI,OAAO,YAAY,WAAW,EAAE,CAAC;YACnC,OAAO,CAAC,OAAO,CAAC,CAAC,MAAgB,EAAE,IAAY,EAAE,EAAE;gBACjD,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;YACjD,CAAC,CAAC,CAAC;QACL,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,IAAY,EAAE,EAAE;gBAC5C,MAAM,MAAM,GAAa,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAQ,CAAC;gBACjG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;gBAClB,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;YACjD,CAAC,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,wBAAwB,CAAC,aAAqB;QACnD,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE,CAAC;QAClC,gBAAgB;QAChB,kBAAkB;QAClB,KAAK;QACL,aAAa,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;YACvC,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YAChC,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;gBACd,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;gBAClC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;gBAC3C,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;YAC3B,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,OAAO,OAAO,CAAC;IACjB,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,IAAY,EAAE,KAAa;QAChC,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAEjC,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;YACpB,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QACxB,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACrB,CAAC;IACH,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,IAAY;QACjB,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;QAClC,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QACrC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAC/B,CAAC;IAED,OAAO,CAAC,EAA4E;QAClF,IAAI,CAAC,QAAQ,CAAC,OAAO,CACnB,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,CAAC,MAAM,EAAE,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;IACtF,CAAC;IAED;;OAEG;IACH,GAAG,CAAC,IAAY;QACd,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAEjC,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;YACpB,OAAO,IAAI,CAAC;QACd,CAAC;QAED,OAAO,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAC9C,CAAC;IAED;;OAEG;IACH,GAAG,CAAC,IAAY,IAAa,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,CAAC;IAE5E;;OAEG;IACH,IAAI,KAAe,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC;IAEvE;;OAEG;IACH,GAAG,CAAC,IAAY,EAAE,KAAwB;QACxC,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YACzB,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;gBACjB,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YAC3D,CAAC;QACH,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;QACjD,CAAC;QACD,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,CAAC;IACpC,CAAC;IAED;;OAEG;IACH,MAAM,KAAiB,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC;IAEnE;;OAEG;IACH,iDAAiD;IACjD,MAAM;QACJ,MAAM,UAAU,GAAiC,EAAE,CAAC;QACpD,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;YACnB,WAAW;QAEb,CAAC;QACD,mDAAmD;QACnD,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,MAAgB,EAAE,IAAY,EAAE,EAAE;YACvD,MAAM,KAAK,GAAa,EAAE,CAAC;YAC3B,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YACjD,gBAAgB;YAChB,WAAW;YACX,KAAK;YACL,+DAA+D;YAC/D,UAAU,CAAC,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,KAAK,CAAC;QACtD,CAAC,CAAC,CAAC;QAEH,OAAO,UAAU,CAAC;IACpB,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,IAAY;QACjB,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IACvE,CAAC;IAEO,sBAAsB,CAAC,IAAY;QACzC,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;QAElC,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;YACvC,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QAC1C,CAAC;IACH,CAAC;CACF;AA3JD,kCA2JC"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { TaonAxiosClientInterceptor } from './axios-interceptors';
|
|
2
|
+
import { Models } from './models';
|
|
3
|
+
import { RestHeaders } from './rest-headers';
|
|
4
|
+
export declare class RestRequest {
|
|
5
|
+
private static jobId;
|
|
6
|
+
private subjectInuUse;
|
|
7
|
+
private meta;
|
|
8
|
+
/**
|
|
9
|
+
* key is interceptorName (just to identify who is intercepting)
|
|
10
|
+
*/
|
|
11
|
+
interceptors: Map<string, TaonAxiosClientInterceptor<any>>;
|
|
12
|
+
/**
|
|
13
|
+
* key is a joined string METHOD-expressPath.
|
|
14
|
+
* Example `GET-/api/users`
|
|
15
|
+
*/
|
|
16
|
+
methodsInterceptors: Map<string, TaonAxiosClientInterceptor<any>>;
|
|
17
|
+
private handlerResult;
|
|
18
|
+
private req;
|
|
19
|
+
private getReplay;
|
|
20
|
+
private generalReq;
|
|
21
|
+
get(url: string, body: string, headers: RestHeaders, meta: Models.MetaRequest, isArray: boolean, mockHttp: Models.MockHttp, axiosOptions?: Models.Ng2RestAxiosRequestConfig): Models.PromiseObservableMix<any>;
|
|
22
|
+
head(url: string, body: string, headers: RestHeaders, meta: Models.MetaRequest, isArray: boolean, mockHttp: Models.MockHttp, axiosOptions?: Models.Ng2RestAxiosRequestConfig): Models.PromiseObservableMix<any>;
|
|
23
|
+
delete(url: string, body: string, headers: RestHeaders, meta: Models.MetaRequest, isArray: boolean, mockHttp: Models.MockHttp, axiosOptions?: Models.Ng2RestAxiosRequestConfig): Models.PromiseObservableMix<any>;
|
|
24
|
+
post(url: string, body: string, headers: RestHeaders, meta: Models.MetaRequest, isArray: boolean, mockHttp: Models.MockHttp, axiosOptions?: Models.Ng2RestAxiosRequestConfig): Models.PromiseObservableMix<any>;
|
|
25
|
+
put(url: string, body: string, headers: RestHeaders, meta: Models.MetaRequest, isArray: boolean, mockHttp: Models.MockHttp, axiosOptions?: Models.Ng2RestAxiosRequestConfig): Models.PromiseObservableMix<any>;
|
|
26
|
+
patch(url: string, body: string, headers: RestHeaders, meta: Models.MetaRequest, isArray: boolean, mockHttp: Models.MockHttp, axiosOptions?: Models.Ng2RestAxiosRequestConfig): Models.PromiseObservableMix<any>;
|
|
27
|
+
jsonp(url: string, body: string, headers: RestHeaders, meta: Models.MetaRequest, isArray: boolean, mockHttp: Models.MockHttp, axiosOptions?: Models.Ng2RestAxiosRequestConfig): Models.PromiseObservableMix<any>;
|
|
28
|
+
private replaySubjects;
|
|
29
|
+
}
|
|
@@ -0,0 +1,376 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.RestRequest = void 0;
|
|
4
|
+
//#region imports
|
|
5
|
+
const axios_1 = require("axios");
|
|
6
|
+
const rxjs_1 = require("rxjs");
|
|
7
|
+
const rxjs_2 = require("rxjs");
|
|
8
|
+
const lib_prod_1 = require("tnp-core/lib-prod");
|
|
9
|
+
const lib_prod_2 = require("tnp-core/lib-prod");
|
|
10
|
+
const lib_prod_3 = require("typescript-class-helpers/lib-prod");
|
|
11
|
+
const axios_interceptors_1 = require("./axios-interceptors");
|
|
12
|
+
const models_1 = require("./models");
|
|
13
|
+
const resource_service_1 = require("./resource-service");
|
|
14
|
+
const rest_headers_1 = require("./rest-headers");
|
|
15
|
+
//#endregion
|
|
16
|
+
// const log = Log.create('[ng2-rest] rest-request', Level.__NOTHING);
|
|
17
|
+
/**
|
|
18
|
+
* TODO refactor this (remove jobid)
|
|
19
|
+
*/
|
|
20
|
+
const jobIDkey = 'jobID';
|
|
21
|
+
const customObs = 'customObs';
|
|
22
|
+
const cancelFn = 'cancelFn';
|
|
23
|
+
const isCanceled = 'isCanceled';
|
|
24
|
+
//#region mock request
|
|
25
|
+
//#endregion
|
|
26
|
+
class RestRequest {
|
|
27
|
+
//#region fields
|
|
28
|
+
static jobId = 0;
|
|
29
|
+
subjectInuUse = {};
|
|
30
|
+
meta = {};
|
|
31
|
+
//#endregion
|
|
32
|
+
/**
|
|
33
|
+
* key is interceptorName (just to identify who is intercepting)
|
|
34
|
+
*/
|
|
35
|
+
interceptors = new Map();
|
|
36
|
+
/**
|
|
37
|
+
* key is a joined string METHOD-expressPath.
|
|
38
|
+
* Example `GET-/api/users`
|
|
39
|
+
*/
|
|
40
|
+
methodsInterceptors = new Map();
|
|
41
|
+
handlerResult(options, sourceRequest) {
|
|
42
|
+
if (lib_prod_1._.isUndefined(options)) {
|
|
43
|
+
options = {};
|
|
44
|
+
}
|
|
45
|
+
// log.d(`HANDLE RESULT (jobid:${options.jobid}) ${sourceRequest.url}`);
|
|
46
|
+
const { res, jobid, isArray, method } = options;
|
|
47
|
+
if (typeof res !== 'object') {
|
|
48
|
+
throw new Error('No resposnse for request. ');
|
|
49
|
+
}
|
|
50
|
+
if (lib_prod_2.Helpers.isBrowser) {
|
|
51
|
+
res.headers = rest_headers_1.RestHeaders.from(res.headers);
|
|
52
|
+
}
|
|
53
|
+
// error no internet
|
|
54
|
+
if (res.error) {
|
|
55
|
+
this.subjectInuUse[jobid].error(new models_1.HttpResponseError(res.error, res.data, res.headers, res.code, jobid, sourceRequest));
|
|
56
|
+
return;
|
|
57
|
+
}
|
|
58
|
+
const entity = this.meta[jobid].entity;
|
|
59
|
+
const circular = this.meta[jobid].circular;
|
|
60
|
+
const success = resource_service_1.Resource['_listenSuccess'];
|
|
61
|
+
const reqResp = new models_1.Models.HttpResponse(sourceRequest, res.data, res.headers, res.code, entity, circular, jobid, isArray);
|
|
62
|
+
success.next(reqResp);
|
|
63
|
+
this.subjectInuUse[jobid].next(reqResp);
|
|
64
|
+
this.meta[jobid] = void 0;
|
|
65
|
+
this.subjectInuUse[jobid].complete();
|
|
66
|
+
}
|
|
67
|
+
async req(url, method, headers, body, jobid, isArray = false, mockHttp, axiosOptions) {
|
|
68
|
+
const CancelToken = axios_1.default.CancelToken;
|
|
69
|
+
const source = CancelToken.source();
|
|
70
|
+
this.subjectInuUse[jobid][cancelFn] = source.cancel;
|
|
71
|
+
var response;
|
|
72
|
+
if (mockHttp) {
|
|
73
|
+
if (typeof mockHttp === 'object') {
|
|
74
|
+
response = {
|
|
75
|
+
data: mockHttp.data,
|
|
76
|
+
status: mockHttp.code,
|
|
77
|
+
headers: mockHttp.headers,
|
|
78
|
+
statusText: mockHttp.error,
|
|
79
|
+
config: {},
|
|
80
|
+
};
|
|
81
|
+
}
|
|
82
|
+
else if (typeof mockHttp === 'function') {
|
|
83
|
+
const r = mockHttp(url, method, headers, body);
|
|
84
|
+
response = {
|
|
85
|
+
data: r.data,
|
|
86
|
+
status: r.code,
|
|
87
|
+
headers: r.headers,
|
|
88
|
+
statusText: r.error,
|
|
89
|
+
config: {},
|
|
90
|
+
};
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
const isFormData = lib_prod_3.CLASS.getNameFromObject(body) === 'FormData';
|
|
94
|
+
const formData = isFormData ? body : void 0;
|
|
95
|
+
//#region @backend
|
|
96
|
+
if (formData) {
|
|
97
|
+
const headersForm = formData.getHeaders();
|
|
98
|
+
headersForm['Content-Length'] = formData.getLengthSync();
|
|
99
|
+
for (const [key, value] of Object.entries(headersForm)) {
|
|
100
|
+
headers.set(key, value?.toString());
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
//#endregion
|
|
104
|
+
const headersJson = headers.toJSON();
|
|
105
|
+
const responseType = headersJson.responsetypeaxios
|
|
106
|
+
? headersJson.responsetypeaxios
|
|
107
|
+
: 'text';
|
|
108
|
+
try {
|
|
109
|
+
if (!response) {
|
|
110
|
+
//#region @backend
|
|
111
|
+
lib_prod_2.Helpers.log(`[${method}] (jobid=${jobid}) request to: ${(url || '')?.split('?')[0]}`);
|
|
112
|
+
//#endregion
|
|
113
|
+
// console.log('headers axios:', headers.toJSON())
|
|
114
|
+
// console.log({ responseType, headersJson, body, method, url })
|
|
115
|
+
let axiosConfig = {
|
|
116
|
+
url,
|
|
117
|
+
method,
|
|
118
|
+
data: body,
|
|
119
|
+
responseType,
|
|
120
|
+
headers: headersJson,
|
|
121
|
+
cancelToken: source.token,
|
|
122
|
+
...(axiosOptions || {}), // merge with axiosOptions
|
|
123
|
+
// withCredentials: true, // this can be done manually
|
|
124
|
+
};
|
|
125
|
+
if (isFormData) {
|
|
126
|
+
axiosConfig.maxBodyLength = Infinity;
|
|
127
|
+
}
|
|
128
|
+
// console.log('AXIOS CONFIG', axiosConfig);
|
|
129
|
+
const uri = new URL(url);
|
|
130
|
+
const backend = new axios_interceptors_1.AxiosBackendHandler();
|
|
131
|
+
const globalInterceptors = Array.from(this.interceptors.entries()).map(([_, interceptor]) => interceptor);
|
|
132
|
+
const methodInterceptors = Array.from(this.methodsInterceptors.entries())
|
|
133
|
+
.filter(([key]) => {
|
|
134
|
+
const ending = `-${method?.toUpperCase()}-${uri.pathname}`;
|
|
135
|
+
return key.endsWith(ending);
|
|
136
|
+
})
|
|
137
|
+
.map(([_, interceptor]) => interceptor);
|
|
138
|
+
// console.log(
|
|
139
|
+
// `for ${uri.pathname} global ${globalInterceptors.length} method: ${methodInterceptors.length}`,
|
|
140
|
+
// );
|
|
141
|
+
const allInterceptors = [...globalInterceptors, ...methodInterceptors];
|
|
142
|
+
const handler = (0, axios_interceptors_1.buildInterceptorChain)(allInterceptors, backend);
|
|
143
|
+
response = await (0, rxjs_1.firstValueFrom)(handler.handle(axiosConfig));
|
|
144
|
+
// log.d(`after response of jobid: ${jobid}`);
|
|
145
|
+
}
|
|
146
|
+
// console.log('AXIOS RESPONES', response)
|
|
147
|
+
if (this.subjectInuUse[jobid][isCanceled]) {
|
|
148
|
+
return;
|
|
149
|
+
}
|
|
150
|
+
// handle normal request
|
|
151
|
+
this.handlerResult({
|
|
152
|
+
res: {
|
|
153
|
+
code: response.status,
|
|
154
|
+
data: response.data,
|
|
155
|
+
isArray,
|
|
156
|
+
jobid,
|
|
157
|
+
headers: rest_headers_1.RestHeaders.from(response.headers),
|
|
158
|
+
},
|
|
159
|
+
method,
|
|
160
|
+
jobid,
|
|
161
|
+
isArray,
|
|
162
|
+
}, {
|
|
163
|
+
url,
|
|
164
|
+
body,
|
|
165
|
+
method,
|
|
166
|
+
isArray,
|
|
167
|
+
});
|
|
168
|
+
}
|
|
169
|
+
catch (catchedError) {
|
|
170
|
+
if (this.subjectInuUse[jobid][isCanceled]) {
|
|
171
|
+
return;
|
|
172
|
+
}
|
|
173
|
+
// console.log('ERROR RESPONESE catchedError typeof ', typeof catchedError)
|
|
174
|
+
// console.log('ERROR RESPONESE catchedError', catchedError)
|
|
175
|
+
if (typeof catchedError === 'object' &&
|
|
176
|
+
catchedError.response &&
|
|
177
|
+
catchedError.response.data) {
|
|
178
|
+
const err = catchedError.response.data;
|
|
179
|
+
const msg = catchedError.response.data.message || '';
|
|
180
|
+
// console.log({
|
|
181
|
+
// 'err.stack': err?.stack
|
|
182
|
+
// })
|
|
183
|
+
let stack = (err.stack || '').split('\n');
|
|
184
|
+
const errObs = resource_service_1.Resource['_listenErrors'];
|
|
185
|
+
errObs.next({
|
|
186
|
+
msg,
|
|
187
|
+
stack,
|
|
188
|
+
data: catchedError.response.data,
|
|
189
|
+
});
|
|
190
|
+
}
|
|
191
|
+
const error = catchedError && catchedError.response
|
|
192
|
+
? `[${catchedError.response.statusText}]: `
|
|
193
|
+
: '';
|
|
194
|
+
// handle error request
|
|
195
|
+
this.handlerResult({
|
|
196
|
+
res: {
|
|
197
|
+
code: catchedError && catchedError.response
|
|
198
|
+
? catchedError.response.status
|
|
199
|
+
: void 0,
|
|
200
|
+
error: `${error}${catchedError.message}`,
|
|
201
|
+
data: catchedError && catchedError.response
|
|
202
|
+
? JSON.stringify(catchedError.response.data)
|
|
203
|
+
: void 0,
|
|
204
|
+
isArray,
|
|
205
|
+
jobid,
|
|
206
|
+
headers: rest_headers_1.RestHeaders.from(catchedError &&
|
|
207
|
+
catchedError.response &&
|
|
208
|
+
catchedError.response.headers),
|
|
209
|
+
},
|
|
210
|
+
method,
|
|
211
|
+
jobid,
|
|
212
|
+
isArray,
|
|
213
|
+
}, {
|
|
214
|
+
url,
|
|
215
|
+
body,
|
|
216
|
+
isArray,
|
|
217
|
+
method,
|
|
218
|
+
});
|
|
219
|
+
}
|
|
220
|
+
}
|
|
221
|
+
getReplay(method, meta, onlyGetLastReplayForMethod) {
|
|
222
|
+
let replay;
|
|
223
|
+
//#region prevent empty tree
|
|
224
|
+
if (lib_prod_1._.isUndefined(this.replaySubjects[meta.endpoint])) {
|
|
225
|
+
// log.i(`(${meta.endpoint}) `);
|
|
226
|
+
this.replaySubjects[meta.endpoint] = {};
|
|
227
|
+
}
|
|
228
|
+
if (lib_prod_1._.isUndefined(this.replaySubjects[meta.endpoint][meta.path])) {
|
|
229
|
+
// log.i(`(${meta.endpoint})(${meta.path}) `);
|
|
230
|
+
this.replaySubjects[meta.endpoint][meta.path] = {};
|
|
231
|
+
}
|
|
232
|
+
if (lib_prod_1._.isUndefined(this.replaySubjects[meta.endpoint][meta.path][method])) {
|
|
233
|
+
// log.i(`(${meta.endpoint})(${meta.path}) `);
|
|
234
|
+
this.replaySubjects[meta.endpoint][meta.path][method] = {};
|
|
235
|
+
}
|
|
236
|
+
//#endregion
|
|
237
|
+
const objectIDToCreateOrLast = Object.keys(this.replaySubjects[meta.endpoint][meta.path][method]).length + (onlyGetLastReplayForMethod ? 0 : 1);
|
|
238
|
+
if (onlyGetLastReplayForMethod && objectIDToCreateOrLast === 0) {
|
|
239
|
+
return replay;
|
|
240
|
+
}
|
|
241
|
+
if (lib_prod_1._.isUndefined(this.replaySubjects[meta.endpoint][meta.path][method][objectIDToCreateOrLast])) {
|
|
242
|
+
// log.i(`(${meta.endpoint})(${meta.path})(${method}) `);
|
|
243
|
+
this.replaySubjects[meta.endpoint][meta.path][method][objectIDToCreateOrLast] = {
|
|
244
|
+
subject: new rxjs_2.Subject(),
|
|
245
|
+
data: void 0,
|
|
246
|
+
};
|
|
247
|
+
}
|
|
248
|
+
replay =
|
|
249
|
+
this.replaySubjects[meta.endpoint][meta.path][method][objectIDToCreateOrLast];
|
|
250
|
+
if (!lib_prod_1._.isNumber(replay.id)) {
|
|
251
|
+
if (RestRequest.jobId === Number.MAX_SAFE_INTEGER) {
|
|
252
|
+
RestRequest.jobId = 0;
|
|
253
|
+
}
|
|
254
|
+
const jobid = RestRequest.jobId++;
|
|
255
|
+
replay.id = jobid;
|
|
256
|
+
const subject = replay.subject;
|
|
257
|
+
subject[jobIDkey] = jobid; // modify internal rxjs subject obj
|
|
258
|
+
this.meta[jobid] = meta;
|
|
259
|
+
this.subjectInuUse[jobid] = subject;
|
|
260
|
+
this.subjectInuUse[jobid][customObs] = new rxjs_1.Observable(observer => {
|
|
261
|
+
// observer.remove(() => {
|
|
262
|
+
// });
|
|
263
|
+
observer.add(() => {
|
|
264
|
+
// console.log(`cancel observable job${jobid}`)
|
|
265
|
+
if (!this.subjectInuUse[jobid][isCanceled]) {
|
|
266
|
+
this.subjectInuUse[jobid][isCanceled] = true;
|
|
267
|
+
if (typeof this.subjectInuUse[jobid][cancelFn] === 'function') {
|
|
268
|
+
this.subjectInuUse[jobid][cancelFn]('[ng2-rest] on purpose canceled http request');
|
|
269
|
+
}
|
|
270
|
+
}
|
|
271
|
+
else {
|
|
272
|
+
// console.log(`somehow second time cancel ${jobid}`)
|
|
273
|
+
}
|
|
274
|
+
});
|
|
275
|
+
const sub = subject.subscribe({
|
|
276
|
+
next: a => observer.next(a),
|
|
277
|
+
error: a => observer.error(a),
|
|
278
|
+
complete: () => {
|
|
279
|
+
setTimeout(() => {
|
|
280
|
+
sub.unsubscribe();
|
|
281
|
+
observer.complete();
|
|
282
|
+
});
|
|
283
|
+
},
|
|
284
|
+
});
|
|
285
|
+
});
|
|
286
|
+
//#region DISPOSE @UNCOMMENT AFTER TESTS
|
|
287
|
+
// if (objectIDToCreateOrLast > 2) {
|
|
288
|
+
// const oldReq: Models.ReplayData = this.replaySubjects[meta.endpoint][meta.path][method][(objectIDToCreateOrLast - 2)];
|
|
289
|
+
// if (_.isUndefined(this.meta[oldReq.id])) {
|
|
290
|
+
// // cant delete this - for counter purpose
|
|
291
|
+
// this.replaySubjects[meta.endpoint][meta.path][method][(objectIDToCreateOrLast - 2)] = {};
|
|
292
|
+
// delete this.subjectInuUse[oldReq.id];
|
|
293
|
+
// delete this.meta[oldReq.id];
|
|
294
|
+
// }
|
|
295
|
+
// }
|
|
296
|
+
//#endregion
|
|
297
|
+
}
|
|
298
|
+
return replay;
|
|
299
|
+
}
|
|
300
|
+
//#region http methods
|
|
301
|
+
generalReq(method, url, body, headers, meta, isArray, mockHttp, axiosOptions) {
|
|
302
|
+
const replay = this.getReplay(method, meta, false);
|
|
303
|
+
replay.data = { url, body, headers, isArray };
|
|
304
|
+
((pthis, purl, pmethod, pheaders, pbody, pid, pisArray, pmockHttp, axiosOpt) => {
|
|
305
|
+
// log.d(`for ${purl} jobid ${pid}`);
|
|
306
|
+
setTimeout(() => pthis.req(purl, pmethod, pheaders, pbody, pid, pisArray, pmockHttp, axiosOpt));
|
|
307
|
+
})(this, url, method, headers, body, replay.id, isArray, mockHttp, axiosOptions);
|
|
308
|
+
const resp = (0, rxjs_1.firstValueFrom)(replay.subject[customObs]);
|
|
309
|
+
resp.observable = replay.subject[customObs];
|
|
310
|
+
return resp;
|
|
311
|
+
}
|
|
312
|
+
get(url, body, headers, meta, isArray, mockHttp, axiosOptions) {
|
|
313
|
+
return this.generalReq('get', url, body, headers, meta, isArray, mockHttp, axiosOptions);
|
|
314
|
+
}
|
|
315
|
+
head(url, body, headers, meta, isArray, mockHttp, axiosOptions) {
|
|
316
|
+
return this.generalReq('head', url, body, headers, meta, isArray, mockHttp, axiosOptions);
|
|
317
|
+
}
|
|
318
|
+
delete(url, body, headers, meta, isArray, mockHttp, axiosOptions) {
|
|
319
|
+
return this.generalReq('delete', url, body, headers, meta, isArray, mockHttp, axiosOptions);
|
|
320
|
+
}
|
|
321
|
+
post(url, body, headers, meta, isArray, mockHttp, axiosOptions) {
|
|
322
|
+
return this.generalReq('post', url, body, headers, meta, isArray, mockHttp, axiosOptions);
|
|
323
|
+
}
|
|
324
|
+
put(url, body, headers, meta, isArray, mockHttp, axiosOptions) {
|
|
325
|
+
return this.generalReq('put', url, body, headers, meta, isArray, mockHttp, axiosOptions);
|
|
326
|
+
}
|
|
327
|
+
patch(url, body, headers, meta, isArray, mockHttp, axiosOptions) {
|
|
328
|
+
return this.generalReq('patch', url, body, headers, meta, isArray, mockHttp, axiosOptions);
|
|
329
|
+
}
|
|
330
|
+
jsonp(url, body, headers, meta, isArray, mockHttp, axiosOptions) {
|
|
331
|
+
const method = 'jsonp';
|
|
332
|
+
if (lib_prod_1.UtilsOs.isSSRMode) {
|
|
333
|
+
const emptyStuff = Promise.resolve();
|
|
334
|
+
emptyStuff.observable = new rxjs_1.Observable();
|
|
335
|
+
console.warn(`Cannot perform jsonp request in SSR mode`);
|
|
336
|
+
return emptyStuff;
|
|
337
|
+
}
|
|
338
|
+
const replay = this.getReplay('jsonp', meta, false);
|
|
339
|
+
const jobid = replay.id;
|
|
340
|
+
setTimeout(() => {
|
|
341
|
+
if (url.endsWith('/'))
|
|
342
|
+
url = url.slice(0, url.length - 1);
|
|
343
|
+
let num = Math.round(10000 * Math.random());
|
|
344
|
+
let callbackMethodName = 'cb_' + num;
|
|
345
|
+
let win = globalThis; // TODO not a good idea! @LAST
|
|
346
|
+
win[callbackMethodName] = data => {
|
|
347
|
+
// handle jsonp result data
|
|
348
|
+
this.handlerResult({
|
|
349
|
+
res: {
|
|
350
|
+
data,
|
|
351
|
+
isArray,
|
|
352
|
+
},
|
|
353
|
+
method,
|
|
354
|
+
jobid,
|
|
355
|
+
isArray,
|
|
356
|
+
}, {
|
|
357
|
+
url,
|
|
358
|
+
body,
|
|
359
|
+
isArray,
|
|
360
|
+
method,
|
|
361
|
+
});
|
|
362
|
+
};
|
|
363
|
+
let sc = document.createElement('script');
|
|
364
|
+
sc.src = `${url}?callback=${callbackMethodName}`;
|
|
365
|
+
document.body.appendChild(sc);
|
|
366
|
+
document.body.removeChild(sc);
|
|
367
|
+
});
|
|
368
|
+
const resp = (0, rxjs_1.firstValueFrom)(replay.subject[customObs]);
|
|
369
|
+
resp.observable = replay.subject[customObs];
|
|
370
|
+
return resp;
|
|
371
|
+
}
|
|
372
|
+
//#endregion
|
|
373
|
+
replaySubjects = {};
|
|
374
|
+
}
|
|
375
|
+
exports.RestRequest = RestRequest;
|
|
376
|
+
//# sourceMappingURL=rest-request.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rest-request.js","sourceRoot":"","sources":[""],"names":[],"mappings":";;;AAAA,iBAAiB;AACjB,iCAAiE;AAIjE,+BAAwD;AACxD,+BAA+B;AAC/B,gDAA+C;AAC/C,gDAA4C;AAC5C,gEAA0D;AAE1D,6DAI8B;AAC9B,qCAAqD;AACrD,yDAA8C;AAC9C,iDAA6C;AAC7C,YAAY;AAEZ,sEAAsE;AAEtE;;GAEG;AACH,MAAM,QAAQ,GAAG,OAAO,CAAC;AACzB,MAAM,SAAS,GAAG,WAAW,CAAC;AAC9B,MAAM,QAAQ,GAAG,UAAU,CAAC;AAC5B,MAAM,UAAU,GAAG,YAAY,CAAC;AAEhC,sBAAsB;AACtB,YAAY;AAEZ,MAAa,WAAW;IACtB,gBAAgB;IACR,MAAM,CAAC,KAAK,GAAG,CAAC,CAAC;IACjB,aAAa,GAAmC,EAAE,CAAC;IACnD,IAAI,GAAyC,EAAE,CAAC;IACxD,YAAY;IAEZ;;OAEG;IACH,YAAY,GAAG,IAAI,GAAG,EAAsC,CAAC;IAE7D;;;OAGG;IACH,mBAAmB,GAAG,IAAI,GAAG,EAAsC,CAAC;IAE5D,aAAa,CACnB,OAAmC,EACnC,aAAsD;QAEtD,IAAI,YAAC,CAAC,WAAW,CAAC,OAAO,CAAC,EAAE,CAAC;YAC3B,OAAO,GAAG,EAAS,CAAC;QACtB,CAAC;QACD,wEAAwE;QACxE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC;QAEhD,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;YAC5B,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC;QAChD,CAAC;QAED,IAAI,kBAAO,CAAC,SAAS,EAAE,CAAC;YACtB,GAAG,CAAC,OAAO,GAAG,0BAAW,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAC9C,CAAC;QAED,oBAAoB;QACpB,IAAI,GAAG,CAAC,KAAK,EAAE,CAAC;YACd,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,KAAK,CAC7B,IAAI,0BAAiB,CACnB,GAAG,CAAC,KAAK,EACT,GAAG,CAAC,IAAI,EACR,GAAG,CAAC,OAAO,EACX,GAAG,CAAC,IAAI,EACR,KAAK,EACL,aAAa,CACd,CACF,CAAC;YACF,OAAO;QACT,CAAC;QACD,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC;QACvC,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC;QAE3C,MAAM,OAAO,GAAG,2BAAQ,CAAC,gBAAgB,CAExC,CAAC;QAEF,MAAM,OAAO,GAAG,IAAI,eAAM,CAAC,YAAY,CACrC,aAAa,EACb,GAAG,CAAC,IAAI,EACR,GAAG,CAAC,OAAO,EACX,GAAG,CAAC,IAAI,EACR,MAAM,EACN,QAAQ,EACR,KAAK,EACL,OAAO,CACR,CAAC;QACF,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAEtB,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACxC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,CAAC;QAC1B,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,QAAQ,EAAE,CAAC;IACvC,CAAC;IAEO,KAAK,CAAC,GAAG,CACf,GAAW,EACX,MAAyB,EACzB,OAAqB,EACrB,IAAU,EACV,KAAc,EACd,OAAO,GAAG,KAAK,EACf,QAA0B,EAC1B,YAA+C;QAE/C,MAAM,WAAW,GAAG,eAAK,CAAC,WAAW,CAAC;QACtC,MAAM,MAAM,GAAG,WAAW,CAAC,MAAM,EAAE,CAAC;QACpC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC;QAEpD,IAAI,QAA4B,CAAC;QACjC,IAAI,QAAQ,EAAE,CAAC;YACb,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE,CAAC;gBACjC,QAAQ,GAAG;oBACT,IAAI,EAAE,QAAQ,CAAC,IAAI;oBACnB,MAAM,EAAE,QAAQ,CAAC,IAAI;oBACrB,OAAO,EAAE,QAAQ,CAAC,OAAc;oBAChC,UAAU,EAAE,QAAQ,CAAC,KAAK;oBAC1B,MAAM,EAAE,EAAS;iBAClB,CAAC;YACJ,CAAC;iBAAM,IAAI,OAAO,QAAQ,KAAK,UAAU,EAAE,CAAC;gBAC1C,MAAM,CAAC,GAAG,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;gBAC/C,QAAQ,GAAG;oBACT,IAAI,EAAE,CAAC,CAAC,IAAI;oBACZ,MAAM,EAAE,CAAC,CAAC,IAAI;oBACd,OAAO,EAAE,CAAC,CAAC,OAAc;oBACzB,UAAU,EAAE,CAAC,CAAC,KAAK;oBACnB,MAAM,EAAE,EAAS;iBAClB,CAAC;YACJ,CAAC;QACH,CAAC;QAED,MAAM,UAAU,GAAG,gBAAK,CAAC,iBAAiB,CAAC,IAAI,CAAC,KAAK,UAAU,CAAC;QAChE,MAAM,QAAQ,GAAa,UAAU,CAAC,CAAC,CAAE,IAAY,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;QAC/D,kBAAkB;QAClB,IAAI,QAAQ,EAAE,CAAC;YACb,MAAM,WAAW,GAAG,QAAQ,CAAC,UAAU,EAAE,CAAC;YAC1C,WAAW,CAAC,gBAAgB,CAAC,GAAG,QAAQ,CAAC,aAAa,EAAE,CAAC;YACzD,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC;gBACvD,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,EAAE,QAAQ,EAAY,CAAC,CAAC;YAChD,CAAC;QACH,CAAC;QACD,YAAY;QAEZ,MAAM,WAAW,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;QACrC,MAAM,YAAY,GAAG,WAAW,CAAC,iBAAiB;YAChD,CAAC,CAAC,WAAW,CAAC,iBAAiB;YAC/B,CAAC,CAAC,MAAM,CAAC;QAEX,IAAI,CAAC;YACH,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACd,kBAAkB;gBAClB,kBAAO,CAAC,GAAG,CACT,IAAI,MAAM,YAAY,KAAK,kBAAkB,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAC1E,CAAC;gBACF,YAAY;gBAEZ,kDAAkD;gBAClD,gEAAgE;gBAChE,IAAI,WAAW,GAA4B;oBACzC,GAAG;oBACH,MAAM;oBACN,IAAI,EAAE,IAAI;oBACV,YAAY;oBACZ,OAAO,EAAE,WAAW;oBACpB,WAAW,EAAE,MAAM,CAAC,KAAK;oBACzB,GAAG,CAAC,YAAY,IAAI,EAAE,CAAC,EAAE,0BAA0B;oBACnD,sDAAsD;iBACvD,CAAC;gBAEF,IAAI,UAAU,EAAE,CAAC;oBACf,WAAW,CAAC,aAAa,GAAG,QAAQ,CAAC;gBACvC,CAAC;gBAED,4CAA4C;gBAC5C,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC;gBACzB,MAAM,OAAO,GAAG,IAAI,wCAAmB,EAAO,CAAC;gBAE/C,MAAM,kBAAkB,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,CAAC,CAAC,GAAG,CACpE,CAAC,CAAC,CAAC,EAAE,WAAW,CAAC,EAAE,EAAE,CAAC,WAAW,CAClC,CAAC;gBAEF,MAAM,kBAAkB,GAAG,KAAK,CAAC,IAAI,CACnC,IAAI,CAAC,mBAAmB,CAAC,OAAO,EAAE,CACnC;qBACE,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE;oBAChB,MAAM,MAAM,GAAG,IAAI,MAAM,EAAE,WAAW,EAAE,IAAI,GAAG,CAAC,QAAQ,EAAE,CAAC;oBAC3D,OAAO,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;gBAC9B,CAAC,CAAC;qBACD,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,WAAW,CAAC,EAAE,EAAE,CAAC,WAAW,CAAC,CAAC;gBAE1C,eAAe;gBACf,oGAAoG;gBACpG,KAAK;gBAEL,MAAM,eAAe,GAAG,CAAC,GAAG,kBAAkB,EAAE,GAAG,kBAAkB,CAAC,CAAC;gBAEvE,MAAM,OAAO,GAAG,IAAA,0CAAqB,EAAC,eAAe,EAAE,OAAO,CAAC,CAAC;gBAChE,QAAQ,GAAG,MAAM,IAAA,qBAAc,EAAC,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC;gBAC7D,8CAA8C;YAChD,CAAC;YAED,0CAA0C;YAE1C,IAAI,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,UAAU,CAAC,EAAE,CAAC;gBAC1C,OAAO;YACT,CAAC;YAED,wBAAwB;YACxB,IAAI,CAAC,aAAa,CAChB;gBACE,GAAG,EAAE;oBACH,IAAI,EAAE,QAAQ,CAAC,MAAa;oBAC5B,IAAI,EAAE,QAAQ,CAAC,IAAI;oBACnB,OAAO;oBACP,KAAK;oBACL,OAAO,EAAE,0BAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAc,CAAC;iBACnD;gBACD,MAAM;gBACN,KAAK;gBACL,OAAO;aACR,EACD;gBACE,GAAG;gBACH,IAAI;gBACJ,MAAM;gBACN,OAAO;aACR,CACF,CAAC;QACJ,CAAC;QAAC,OAAO,YAAY,EAAE,CAAC;YACtB,IAAI,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,UAAU,CAAC,EAAE,CAAC;gBAC1C,OAAO;YACT,CAAC;YACD,2EAA2E;YAC3E,4DAA4D;YAC5D,IACE,OAAO,YAAY,KAAK,QAAQ;gBAChC,YAAY,CAAC,QAAQ;gBACrB,YAAY,CAAC,QAAQ,CAAC,IAAI,EAC1B,CAAC;gBACD,MAAM,GAAG,GAAG,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC;gBACvC,MAAM,GAAG,GAAW,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,IAAI,EAAE,CAAC;gBAC7D,gBAAgB;gBAChB,4BAA4B;gBAC5B,KAAK;gBACL,IAAI,KAAK,GAAa,CAAC,GAAG,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;gBAEpD,MAAM,MAAM,GAAG,2BAAQ,CACrB,eAAe,CACgB,CAAC;gBAClC,MAAM,CAAC,IAAI,CAAC;oBACV,GAAG;oBACH,KAAK;oBACL,IAAI,EAAE,YAAY,CAAC,QAAQ,CAAC,IAAI;iBACjC,CAAC,CAAC;YACL,CAAC;YACD,MAAM,KAAK,GACT,YAAY,IAAI,YAAY,CAAC,QAAQ;gBACnC,CAAC,CAAC,IAAI,YAAY,CAAC,QAAQ,CAAC,UAAU,KAAK;gBAC3C,CAAC,CAAC,EAAE,CAAC;YAET,uBAAuB;YACvB,IAAI,CAAC,aAAa,CAChB;gBACE,GAAG,EAAE;oBACH,IAAI,EACF,YAAY,IAAI,YAAY,CAAC,QAAQ;wBACnC,CAAC,CAAE,YAAY,CAAC,QAAQ,CAAC,MAAc;wBACvC,CAAC,CAAC,KAAK,CAAC;oBACZ,KAAK,EAAE,GAAG,KAAK,GAAG,YAAY,CAAC,OAAO,EAAE;oBACxC,IAAI,EACF,YAAY,IAAI,YAAY,CAAC,QAAQ;wBACnC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC;wBAC5C,CAAC,CAAC,KAAK,CAAC;oBACZ,OAAO;oBACP,KAAK;oBACL,OAAO,EAAE,0BAAW,CAAC,IAAI,CACvB,YAAY;wBACV,YAAY,CAAC,QAAQ;wBACrB,YAAY,CAAC,QAAQ,CAAC,OAAO,CAChC;iBACF;gBACD,MAAM;gBACN,KAAK;gBACL,OAAO;aACR,EACD;gBACE,GAAG;gBACH,IAAI;gBACJ,OAAO;gBACP,MAAM;aACP,CACF,CAAC;QACJ,CAAC;IACH,CAAC;IAEO,SAAS,CACf,MAAyB,EACzB,IAAwB,EACxB,0BAAmC;QAEnC,IAAI,MAAyB,CAAC;QAE9B,4BAA4B;QAC5B,IAAI,YAAC,CAAC,WAAW,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC;YACtD,gCAAgC;YAChC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC;QAC1C,CAAC;QACD,IAAI,YAAC,CAAC,WAAW,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;YACjE,8CAA8C;YAC9C,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;QACrD,CAAC;QACD,IAAI,YAAC,CAAC,WAAW,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC;YACzE,8CAA8C;YAC9C,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC;QAC7D,CAAC;QACD,YAAY;QAEZ,MAAM,sBAAsB,GAC1B,MAAM,CAAC,IAAI,CACT,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,CAAW,CAChE,CAAC,MAAM,GAAG,CAAC,0BAA0B,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAClD,IAAI,0BAA0B,IAAI,sBAAsB,KAAK,CAAC,EAAE,CAAC;YAC/D,OAAO,MAAM,CAAC;QAChB,CAAC;QAED,IACE,YAAC,CAAC,WAAW,CACX,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CACnD,sBAAsB,CACvB,CACF,EACD,CAAC;YACD,yDAAyD;YACzD,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CACnD,sBAAsB,CACvB,GAAsB;gBACrB,OAAO,EAAE,IAAI,cAAO,EAAE;gBACtB,IAAI,EAAE,KAAK,CAAC;aACb,CAAC;QACJ,CAAC;QAED,MAAM;YACJ,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CACnD,sBAAsB,CACvB,CAAC;QAEJ,IAAI,CAAC,YAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC;YAC3B,IAAI,WAAW,CAAC,KAAK,KAAK,MAAM,CAAC,gBAAgB,EAAE,CAAC;gBAClD,WAAW,CAAC,KAAK,GAAG,CAAC,CAAC;YACxB,CAAC;YAED,MAAM,KAAK,GAAW,WAAW,CAAC,KAAK,EAAE,CAAC;YAC1C,MAAM,CAAC,EAAE,GAAG,KAAK,CAAC;YAClB,MAAM,OAAO,GAAiB,MAAM,CAAC,OAAO,CAAC;YAC7C,OAAO,CAAC,QAAQ,CAAC,GAAG,KAAK,CAAC,CAAC,mCAAmC;YAE9D,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC;YACxB,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC;YAEpC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,GAAG,IAAI,iBAAU,CAAC,QAAQ,CAAC,EAAE;gBAC/D,0BAA0B;gBAE1B,MAAM;gBACN,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAE;oBAChB,+CAA+C;oBAC/C,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,UAAU,CAAC,EAAE,CAAC;wBAC3C,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC;wBAC7C,IAAI,OAAO,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,KAAK,UAAU,EAAE,CAAC;4BAC9D,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,CACjC,6CAA6C,CAC9C,CAAC;wBACJ,CAAC;oBACH,CAAC;yBAAM,CAAC;wBACN,qDAAqD;oBACvD,CAAC;gBACH,CAAC,CAAC,CAAC;gBACH,MAAM,GAAG,GAAG,OAAO,CAAC,SAAS,CAAC;oBAC5B,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;oBAC3B,KAAK,EAAE,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;oBAC7B,QAAQ,EAAE,GAAG,EAAE;wBACb,UAAU,CAAC,GAAG,EAAE;4BACd,GAAG,CAAC,WAAW,EAAE,CAAC;4BAClB,QAAQ,CAAC,QAAQ,EAAE,CAAC;wBACtB,CAAC,CAAC,CAAC;oBACL,CAAC;iBACF,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;YAEH,yCAAyC;YACzC,oCAAoC;YACpC,2HAA2H;YAC3H,+CAA+C;YAC/C,gDAAgD;YAChD,gGAAgG;YAChG,4CAA4C;YAC5C,mCAAmC;YACnC,MAAM;YACN,IAAI;YACJ,YAAY;QACd,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,sBAAsB;IAEd,UAAU,CAChB,MAAyB,EACzB,GAAW,EACX,IAAY,EACZ,OAAoB,EACpB,IAAwB,EACxB,OAAgB,EAChB,QAAyB,EACzB,YAA8C;QAE9C,MAAM,MAAM,GAAsB,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;QACtE,MAAM,CAAC,IAAI,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC;QAE9C,CAAC,CACC,KAAK,EACL,IAAI,EACJ,OAAO,EACP,QAAQ,EACR,KAAK,EACL,GAAG,EACH,QAAQ,EACR,SAAS,EACT,QAAQ,EACR,EAAE;YACF,qCAAqC;YACrC,UAAU,CAAC,GAAG,EAAE,CACd,KAAK,CAAC,GAAG,CACP,IAAI,EACJ,OAAO,EACP,QAAQ,EACR,KAAK,EACL,GAAG,EACH,QAAQ,EACR,SAAS,EACT,QAAQ,CACT,CACF,CAAC;QACJ,CAAC,CAAC,CACA,IAAI,EACJ,GAAG,EACH,MAAM,EACN,OAAO,EACP,IAAI,EACJ,MAAM,CAAC,EAAE,EACT,OAAO,EACP,QAAQ,EACR,YAAY,CACb,CAAC;QAEF,MAAM,IAAI,GAAqC,IAAA,qBAAc,EAC3D,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CACnB,CAAC;QACT,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QAC5C,OAAO,IAAI,CAAC;IACd,CAAC;IAED,GAAG,CACD,GAAW,EACX,IAAY,EACZ,OAAoB,EACpB,IAAwB,EACxB,OAAgB,EAChB,QAAyB,EACzB,YAA+C;QAE/C,OAAO,IAAI,CAAC,UAAU,CACpB,KAAK,EACL,GAAG,EACH,IAAI,EACJ,OAAO,EACP,IAAI,EACJ,OAAO,EACP,QAAQ,EACR,YAAY,CACb,CAAC;IACJ,CAAC;IAED,IAAI,CACF,GAAW,EACX,IAAY,EACZ,OAAoB,EACpB,IAAwB,EACxB,OAAgB,EAChB,QAAyB,EACzB,YAA+C;QAE/C,OAAO,IAAI,CAAC,UAAU,CACpB,MAAM,EACN,GAAG,EACH,IAAI,EACJ,OAAO,EACP,IAAI,EACJ,OAAO,EACP,QAAQ,EACR,YAAY,CACb,CAAC;IACJ,CAAC;IAED,MAAM,CACJ,GAAW,EACX,IAAY,EACZ,OAAoB,EACpB,IAAwB,EACxB,OAAgB,EAChB,QAAyB,EACzB,YAA+C;QAE/C,OAAO,IAAI,CAAC,UAAU,CACpB,QAAQ,EACR,GAAG,EACH,IAAI,EACJ,OAAO,EACP,IAAI,EACJ,OAAO,EACP,QAAQ,EACR,YAAY,CACb,CAAC;IACJ,CAAC;IAED,IAAI,CACF,GAAW,EACX,IAAY,EACZ,OAAoB,EACpB,IAAwB,EACxB,OAAgB,EAChB,QAAyB,EACzB,YAA+C;QAE/C,OAAO,IAAI,CAAC,UAAU,CACpB,MAAM,EACN,GAAG,EACH,IAAI,EACJ,OAAO,EACP,IAAI,EACJ,OAAO,EACP,QAAQ,EACR,YAAY,CACb,CAAC;IACJ,CAAC;IAED,GAAG,CACD,GAAW,EACX,IAAY,EACZ,OAAoB,EACpB,IAAwB,EACxB,OAAgB,EAChB,QAAyB,EACzB,YAA+C;QAE/C,OAAO,IAAI,CAAC,UAAU,CACpB,KAAK,EACL,GAAG,EACH,IAAI,EACJ,OAAO,EACP,IAAI,EACJ,OAAO,EACP,QAAQ,EACR,YAAY,CACb,CAAC;IACJ,CAAC;IAED,KAAK,CACH,GAAW,EACX,IAAY,EACZ,OAAoB,EACpB,IAAwB,EACxB,OAAgB,EAChB,QAAyB,EACzB,YAA+C;QAE/C,OAAO,IAAI,CAAC,UAAU,CACpB,OAAO,EACP,GAAG,EACH,IAAI,EACJ,OAAO,EACP,IAAI,EACJ,OAAO,EACP,QAAQ,EACR,YAAY,CACb,CAAC;IACJ,CAAC;IAED,KAAK,CACH,GAAW,EACX,IAAY,EACZ,OAAoB,EACpB,IAAwB,EACxB,OAAgB,EAChB,QAAyB,EACzB,YAA+C;QAE/C,MAAM,MAAM,GAAG,OAAO,CAAC;QAEvB,IAAI,kBAAO,CAAC,SAAS,EAAE,CAAC;YACtB,MAAM,UAAU,GAAG,OAAO,CAAC,OAAO,EAAsC,CAAC;YACzE,UAAU,CAAC,UAAU,GAAG,IAAI,iBAAU,EAAO,CAAC;YAC9C,OAAO,CAAC,IAAI,CAAC,0CAA0C,CAAC,CAAC;YACzD,OAAO,UAAU,CAAC;QACpB,CAAC;QAED,MAAM,MAAM,GAAsB,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;QACvE,MAAM,KAAK,GAAG,MAAM,CAAC,EAAE,CAAC;QAExB,UAAU,CAAC,GAAG,EAAE;YACd,IAAI,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC;gBAAE,GAAG,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;YAC1D,IAAI,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;YAC5C,IAAI,kBAAkB,GAAG,KAAK,GAAG,GAAG,CAAC;YACrC,IAAI,GAAG,GAAQ,UAAU,CAAC,CAAC,8BAA8B;YACzD,GAAG,CAAC,kBAAkB,CAAC,GAAG,IAAI,CAAC,EAAE;gBAC/B,2BAA2B;gBAC3B,IAAI,CAAC,aAAa,CAChB;oBACE,GAAG,EAAE;wBACH,IAAI;wBACJ,OAAO;qBACR;oBACD,MAAM;oBACN,KAAK;oBACL,OAAO;iBACR,EACD;oBACE,GAAG;oBACH,IAAI;oBACJ,OAAO;oBACP,MAAM;iBACP,CACF,CAAC;YACJ,CAAC,CAAC;YACF,IAAI,EAAE,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;YAC1C,EAAE,CAAC,GAAG,GAAG,GAAG,GAAG,aAAa,kBAAkB,EAAE,CAAC;YACjD,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;YAC9B,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;QAChC,CAAC,CAAC,CAAC;QAEH,MAAM,IAAI,GAAqC,IAAA,qBAAc,EAC3D,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CACnB,CAAC;QACT,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QAC5C,OAAO,IAAI,CAAC;IACd,CAAC;IACD,YAAY;IACJ,cAAc,GAAG,EAAE,CAAC;;AAlnB9B,kCAmnBC"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { Models } from './models';
|
|
2
|
+
import { RestHeaders } from './rest-headers';
|
|
3
|
+
import { RestRequest } from './rest-request';
|
|
4
|
+
export declare class Rest<T, TA = T[]> implements Models.FnMethodsHttpWithMock<T, TA> {
|
|
5
|
+
private request;
|
|
6
|
+
private meta;
|
|
7
|
+
private customContentType;
|
|
8
|
+
private mockHttp;
|
|
9
|
+
mock(mock: Models.MockHttp): Models.FnMethodsHttp<T, TA>;
|
|
10
|
+
private __meta_endpoint;
|
|
11
|
+
private _endpointRest;
|
|
12
|
+
private get endpoint();
|
|
13
|
+
private restQueryParams;
|
|
14
|
+
set __rest_endpoint(endpoint: any);
|
|
15
|
+
private creatUrl;
|
|
16
|
+
private _headers;
|
|
17
|
+
get headers(): RestHeaders;
|
|
18
|
+
constructor(endpoint: string, request: RestRequest, meta: Models.MetaRequest, customContentType: RestHeaders);
|
|
19
|
+
private req;
|
|
20
|
+
array: {
|
|
21
|
+
get: (item: TA, params?: Models.UrlParams[], axiosOptions?: Models.Ng2RestAxiosRequestConfig) => Models.PromiseObservableMix<Models.HttpResponse<TA>>;
|
|
22
|
+
head: (item: TA, params?: Models.UrlParams[], axiosOptions?: Models.Ng2RestAxiosRequestConfig) => Models.PromiseObservableMix<Models.HttpResponse<TA>>;
|
|
23
|
+
post: (item: TA, params?: Models.UrlParams[], axiosOptions?: Models.Ng2RestAxiosRequestConfig) => Models.PromiseObservableMix<Models.HttpResponse<TA>>;
|
|
24
|
+
put: (item: TA, params?: Models.UrlParams[], axiosOptions?: Models.Ng2RestAxiosRequestConfig) => Models.PromiseObservableMix<Models.HttpResponse<TA>>;
|
|
25
|
+
patch: (item: TA, params?: Models.UrlParams[], axiosOptions?: Models.Ng2RestAxiosRequestConfig) => Models.PromiseObservableMix<Models.HttpResponse<TA>>;
|
|
26
|
+
delete: (item: TA, params?: Models.UrlParams[], axiosOptions?: Models.Ng2RestAxiosRequestConfig) => Models.PromiseObservableMix<Models.HttpResponse<TA>>;
|
|
27
|
+
jsonp: (item: TA, params?: Models.UrlParams[], axiosOptions?: Models.Ng2RestAxiosRequestConfig) => Models.PromiseObservableMix<Models.HttpResponse<TA>>;
|
|
28
|
+
};
|
|
29
|
+
get(item: T, params?: Models.UrlParams[], axiosOptions?: Models.Ng2RestAxiosRequestConfig): Models.PromiseObservableMix<Models.HttpResponse<T>>;
|
|
30
|
+
head(item: T, params?: Models.UrlParams[], axiosOptions?: Models.Ng2RestAxiosRequestConfig): Models.PromiseObservableMix<Models.HttpResponse<T>>;
|
|
31
|
+
post(item: T, params?: Models.UrlParams[], axiosOptions?: Models.Ng2RestAxiosRequestConfig): Models.PromiseObservableMix<Models.HttpResponse<T>>;
|
|
32
|
+
put(item: T, params?: Models.UrlParams[], axiosOptions?: Models.Ng2RestAxiosRequestConfig): Models.PromiseObservableMix<Models.HttpResponse<T>>;
|
|
33
|
+
patch(item: T, params?: Models.UrlParams[], axiosOptions?: Models.Ng2RestAxiosRequestConfig): Models.PromiseObservableMix<Models.HttpResponse<T>>;
|
|
34
|
+
delete(item: T, params?: Models.UrlParams[], axiosOptions?: Models.Ng2RestAxiosRequestConfig): Models.PromiseObservableMix<Models.HttpResponse<T>>;
|
|
35
|
+
jsonp(item: T, params?: Models.UrlParams[], axiosOptions?: Models.Ng2RestAxiosRequestConfig): Models.PromiseObservableMix<Models.HttpResponse<T>>;
|
|
36
|
+
}
|