ng2-rest 13.1.5 → 13.1.6
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/app.d.ts +0 -1
- package/app.js +3 -3
- package/browser/esm2020/lib/content-type.mjs +2 -1
- package/browser/esm2020/lib/cookie.mjs +3 -1
- package/browser/esm2020/lib/helpers.mjs +3 -1
- package/browser/esm2020/lib/index.mjs +3 -1
- package/browser/esm2020/lib/mapping.mjs +3 -21
- package/browser/esm2020/lib/models.mjs +3 -9
- package/browser/esm2020/lib/other/simple-resource.mjs +3 -2
- package/browser/esm2020/lib/params.mjs +3 -29
- package/browser/esm2020/lib/request-cache.mjs +3 -1
- package/browser/esm2020/lib/resource.service.mjs +3 -38
- package/browser/esm2020/lib/rest-headers.mjs +3 -3
- package/browser/esm2020/lib/rest-request.mjs +3 -36
- package/browser/esm2020/lib/rest.class.mjs +3 -11
- package/browser/fesm2015/ng2-rest.mjs +26 -141
- package/browser/fesm2015/ng2-rest.mjs.map +1 -1
- package/browser/fesm2020/ng2-rest.mjs +26 -141
- package/browser/fesm2020/ng2-rest.mjs.map +1 -1
- package/browser/lib/content-type.d.ts +2 -1
- package/browser/lib/cookie.d.ts +2 -1
- package/browser/lib/helpers.d.ts +2 -1
- package/browser/lib/index.d.ts +2 -1
- package/browser/lib/mapping.d.ts +2 -1
- package/browser/lib/models.d.ts +2 -1
- package/browser/lib/other/simple-resource.d.ts +2 -1
- package/browser/lib/params.d.ts +2 -1
- package/browser/lib/request-cache.d.ts +2 -1
- package/browser/lib/resource.service.d.ts +2 -1
- package/browser/lib/rest-headers.d.ts +2 -1
- package/browser/lib/rest-request.d.ts +2 -1
- package/browser/lib/rest.class.d.ts +2 -1
- package/browser/ng2-rest.d.ts +2 -1
- package/browser/public-api.d.ts +2 -1
- package/client/esm2020/lib/content-type.mjs +2 -1
- package/client/esm2020/lib/cookie.mjs +3 -1
- package/client/esm2020/lib/helpers.mjs +3 -1
- package/client/esm2020/lib/index.mjs +3 -1
- package/client/esm2020/lib/mapping.mjs +3 -21
- package/client/esm2020/lib/models.mjs +3 -9
- package/client/esm2020/lib/other/simple-resource.mjs +3 -2
- package/client/esm2020/lib/params.mjs +3 -29
- package/client/esm2020/lib/request-cache.mjs +3 -1
- package/client/esm2020/lib/resource.service.mjs +3 -38
- package/client/esm2020/lib/rest-headers.mjs +3 -3
- package/client/esm2020/lib/rest-request.mjs +3 -36
- package/client/esm2020/lib/rest.class.mjs +3 -11
- package/client/fesm2015/ng2-rest.mjs +26 -141
- package/client/fesm2015/ng2-rest.mjs.map +1 -1
- package/client/fesm2020/ng2-rest.mjs +26 -141
- package/client/fesm2020/ng2-rest.mjs.map +1 -1
- package/client/lib/content-type.d.ts +2 -1
- package/client/lib/cookie.d.ts +2 -1
- package/client/lib/helpers.d.ts +2 -1
- package/client/lib/index.d.ts +2 -1
- package/client/lib/mapping.d.ts +2 -1
- package/client/lib/models.d.ts +2 -1
- package/client/lib/other/simple-resource.d.ts +2 -1
- package/client/lib/params.d.ts +2 -1
- package/client/lib/request-cache.d.ts +2 -1
- package/client/lib/resource.service.d.ts +2 -1
- package/client/lib/rest-headers.d.ts +2 -1
- package/client/lib/rest-request.d.ts +2 -1
- package/client/lib/rest.class.d.ts +2 -1
- package/client/ng2-rest.d.ts +2 -1
- package/client/public-api.d.ts +2 -1
- package/package.json +4 -4
- package/tmp-environment.json +35 -35
- package/websql/esm2020/lib/content-type.mjs +2 -1
- package/websql/esm2020/lib/cookie.mjs +3 -1
- package/websql/esm2020/lib/helpers.mjs +3 -1
- package/websql/esm2020/lib/index.mjs +3 -1
- package/websql/esm2020/lib/mapping.mjs +3 -21
- package/websql/esm2020/lib/models.mjs +3 -9
- package/websql/esm2020/lib/other/simple-resource.mjs +3 -2
- package/websql/esm2020/lib/params.mjs +3 -29
- package/websql/esm2020/lib/request-cache.mjs +3 -1
- package/websql/esm2020/lib/resource.service.mjs +3 -38
- package/websql/esm2020/lib/rest-headers.mjs +3 -3
- package/websql/esm2020/lib/rest-request.mjs +3 -36
- package/websql/esm2020/lib/rest.class.mjs +3 -11
- package/websql/fesm2015/ng2-rest.mjs +26 -141
- package/websql/fesm2015/ng2-rest.mjs.map +1 -1
- package/websql/fesm2020/ng2-rest.mjs +26 -141
- package/websql/fesm2020/ng2-rest.mjs.map +1 -1
- package/websql/lib/content-type.d.ts +2 -1
- package/websql/lib/cookie.d.ts +2 -1
- package/websql/lib/helpers.d.ts +2 -1
- package/websql/lib/index.d.ts +2 -1
- package/websql/lib/mapping.d.ts +2 -1
- package/websql/lib/models.d.ts +2 -1
- package/websql/lib/other/simple-resource.d.ts +2 -1
- package/websql/lib/params.d.ts +2 -1
- package/websql/lib/request-cache.d.ts +2 -1
- package/websql/lib/resource.service.d.ts +2 -1
- package/websql/lib/rest-headers.d.ts +2 -1
- package/websql/lib/rest-request.d.ts +2 -1
- package/websql/lib/rest.class.d.ts +2 -1
- package/websql/ng2-rest.d.ts +2 -1
- package/websql/public-api.d.ts +2 -1
|
@@ -35,12 +35,9 @@ export function getRestPramsNames(pattern) {
|
|
|
35
35
|
export function containsModels(url, models) {
|
|
36
36
|
if (url.charAt(0) !== '/')
|
|
37
37
|
url = '/' + url;
|
|
38
|
-
// url = url.replace(new RegExp('\/', 'g'), '');
|
|
39
38
|
let res = models.filter(m => {
|
|
40
39
|
let word = '/' + m;
|
|
41
|
-
// log.d('word', word)
|
|
42
40
|
let iii = url.indexOf(word);
|
|
43
|
-
// log.d('iii', iii)
|
|
44
41
|
if (iii + word.length < url.length && url.charAt(iii + word.length) !== '/') {
|
|
45
42
|
return false;
|
|
46
43
|
}
|
|
@@ -50,7 +47,6 @@ export function containsModels(url, models) {
|
|
|
50
47
|
}
|
|
51
48
|
return false;
|
|
52
49
|
}).length;
|
|
53
|
-
// log.d('containsModels', res);
|
|
54
50
|
return res === models.length;
|
|
55
51
|
}
|
|
56
52
|
export function stars(n) {
|
|
@@ -62,13 +58,11 @@ export function stars(n) {
|
|
|
62
58
|
export function getRestParams(url, pattern) {
|
|
63
59
|
let res = {};
|
|
64
60
|
let models = getRestPramsNames(pattern);
|
|
65
|
-
// log.d('models', models);
|
|
66
61
|
models.forEach(m => {
|
|
67
62
|
pattern = pattern.replace(`:${m}`, stars(m.length));
|
|
68
63
|
});
|
|
69
64
|
let currentModel = void 0;
|
|
70
65
|
diffChars(pattern, url).forEach(d => {
|
|
71
|
-
// log.d('d', d);
|
|
72
66
|
if (d.added) {
|
|
73
67
|
if (!isNaN(Number(d.value)))
|
|
74
68
|
res[currentModel] = Number(d.value);
|
|
@@ -81,7 +75,6 @@ export function getRestParams(url, pattern) {
|
|
|
81
75
|
currentModel = void 0;
|
|
82
76
|
}
|
|
83
77
|
let m = d.value.replace(':', "");
|
|
84
|
-
// log.d('model m', m)
|
|
85
78
|
if (d.removed) {
|
|
86
79
|
currentModel = models.shift();
|
|
87
80
|
}
|
|
@@ -98,7 +91,6 @@ function cutUrlModel(params, models, output) {
|
|
|
98
91
|
let m = models.pop();
|
|
99
92
|
let param = m.match(/:[a-zA-Z0-9\.]+/)[0].replace(':', '');
|
|
100
93
|
const paramIsPath = regexisPath.test(param);
|
|
101
|
-
// log.i('cut param', param)
|
|
102
94
|
let model = m.match(/[a-zA-Z0-9]+\//)[0].replace('\/', '');
|
|
103
95
|
if (params === void 0 ||
|
|
104
96
|
(paramIsPath ? _.get(params, param) === void 0 : params[param] === void 0) ||
|
|
@@ -109,13 +101,11 @@ function cutUrlModel(params, models, output) {
|
|
|
109
101
|
}
|
|
110
102
|
else {
|
|
111
103
|
if (paramIsPath) {
|
|
112
|
-
// log.i('param is path', param)
|
|
113
104
|
let mrep = m.replace(new RegExp(`:${param}`, 'g'), `${_.get(params, param)}`);
|
|
114
105
|
output.unshift(mrep);
|
|
115
106
|
return cutUrlModel(params, models, output);
|
|
116
107
|
}
|
|
117
108
|
else {
|
|
118
|
-
// log.i('param is normal', param)
|
|
119
109
|
let mrep = m.replace(new RegExp(`:${param}`, 'g'), `${params[param]}`);
|
|
120
110
|
output.unshift(mrep);
|
|
121
111
|
return cutUrlModel(params, models, output);
|
|
@@ -125,13 +115,10 @@ function cutUrlModel(params, models, output) {
|
|
|
125
115
|
export function interpolateParamsToUrl(params, url) {
|
|
126
116
|
const regexInt = /\[\[([^\..]+\.[^\..]+)+\]\]/g;
|
|
127
117
|
url = url.split('/').map(p => {
|
|
128
|
-
// log.d('url parts', p)
|
|
129
118
|
let isParam = p.startsWith(':');
|
|
130
119
|
if (isParam) {
|
|
131
120
|
let part = p.slice(1);
|
|
132
|
-
// log.d('url param part', p)
|
|
133
121
|
if (regexInt.test(part)) {
|
|
134
|
-
// let level = (url.split('.').length - 1)
|
|
135
122
|
part = part.replace('[[', '');
|
|
136
123
|
part = part.replace(']]', '');
|
|
137
124
|
}
|
|
@@ -139,35 +126,28 @@ export function interpolateParamsToUrl(params, url) {
|
|
|
139
126
|
}
|
|
140
127
|
return p;
|
|
141
128
|
}).join('/');
|
|
142
|
-
// log.i('URL TO EXPOSE', url)
|
|
143
|
-
// log.i('params', params)
|
|
144
129
|
let slash = {
|
|
145
130
|
start: url.charAt(0) === '\/',
|
|
146
131
|
end: url.charAt(url.length - 1) === '\/'
|
|
147
132
|
};
|
|
148
133
|
let morePramsOnEnd = url.match(/(\/:[a-zA-Z0-9\.]+){2,10}/g);
|
|
149
134
|
if (morePramsOnEnd && (Array.isArray(morePramsOnEnd) && morePramsOnEnd.length === 1)) {
|
|
150
|
-
// log.i('morePramsOnEnd', morePramsOnEnd)
|
|
151
135
|
let m = morePramsOnEnd[0];
|
|
152
136
|
let match = m.match(/\/:[a-zA-Z0-9\.]+/g);
|
|
153
|
-
// log.i('match', match)
|
|
154
137
|
match.forEach(e => {
|
|
155
138
|
let c = e.replace('\/:', '');
|
|
156
|
-
// log.i('c', c)
|
|
157
139
|
if (regexisPath.test(c)) {
|
|
158
140
|
url = url.replace(e, `/${_.get(params, c)}`);
|
|
159
141
|
}
|
|
160
142
|
else {
|
|
161
143
|
url = url.replace(e, `/${params[c]}`);
|
|
162
144
|
}
|
|
163
|
-
// log.i('prog url', url)
|
|
164
145
|
});
|
|
165
146
|
return url;
|
|
166
147
|
}
|
|
167
148
|
let nestedParams = url.match(/[a-zA-Z0-9]+\/:[a-zA-Z0-9\.]+/g);
|
|
168
149
|
if (!nestedParams || (Array.isArray(nestedParams) && nestedParams.length === 0))
|
|
169
150
|
return url;
|
|
170
|
-
// check alone params
|
|
171
151
|
if (!slash.end)
|
|
172
152
|
url = `${url}/`;
|
|
173
153
|
let addUndefinedForAlone = (!/:[a-zA-Z0-9\.]+\/$/g.test(url) && /[a-zA-Z0-9]+\/$/g.test(url));
|
|
@@ -204,14 +184,12 @@ export function decodeUrl(url) {
|
|
|
204
184
|
continue;
|
|
205
185
|
}
|
|
206
186
|
if (paramsObject.hasOwnProperty(p)) {
|
|
207
|
-
// chcek if property is number
|
|
208
187
|
let n = Number(params[p]);
|
|
209
188
|
if (!isNaN(n)) {
|
|
210
189
|
params[p] = n;
|
|
211
190
|
continue;
|
|
212
191
|
}
|
|
213
192
|
if (typeof params[p] === 'string') {
|
|
214
|
-
// check if property is object
|
|
215
193
|
let json;
|
|
216
194
|
try {
|
|
217
195
|
json = JSON.parse(params[p]);
|
|
@@ -221,12 +199,6 @@ export function decodeUrl(url) {
|
|
|
221
199
|
params[p] = json;
|
|
222
200
|
continue;
|
|
223
201
|
}
|
|
224
|
-
// chcek if property value is like regular rexpression
|
|
225
|
-
// let regexExpression;
|
|
226
|
-
// try {
|
|
227
|
-
// regexExpression = new RegExp(params[p]);
|
|
228
|
-
// } catch (e) { }
|
|
229
|
-
// if (regexExpression !== undefined) params[p] = regexExpression;
|
|
230
202
|
}
|
|
231
203
|
}
|
|
232
204
|
}
|
|
@@ -302,4 +274,6 @@ export function prepareUrlOldWay(params) {
|
|
|
302
274
|
}
|
|
303
275
|
return this.endpoint + '/' + params;
|
|
304
276
|
}
|
|
305
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFyYW1zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vdG1wLWxpYnMtZm9yLWJ1bmRsZS13ZWJzcWwvbmcyLXJlc3QvcHJvamVjdHMvbmcyLXJlc3Qvc3JjL2xpYi9wYXJhbXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNqQyxPQUFPLEVBQUUsQ0FBQyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDcEMsT0FBTyxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUUvQyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBRXBDLE1BQU0sR0FBRyxHQUFHLEdBQUcsQ0FBQyxNQUFNLENBQUMsbUJBQW1CLEVBQUUsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFBO0FBSTVELHlDQUF5QztBQUN6QyxNQUFNLFVBQVUsT0FBTyxDQUFDLE9BQWU7SUFDckMsT0FBTyxDQUFDLElBQUksTUFBTSxDQUFDLGNBQWMsRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDO0FBQzVFLENBQUM7QUFFRCxNQUFNLFVBQVUsS0FBSyxDQUFDLEdBQVcsRUFBRSxPQUFlO0lBQ2hELElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxFQUFFO1FBQy9CLEdBQUcsQ0FBQyxLQUFLLENBQUMsa0JBQWtCLEdBQUcsRUFBRSxDQUFDLENBQUM7UUFDbkMsT0FBTyxLQUFLLENBQUM7S0FDZDtJQUNELElBQUksR0FBRyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxLQUFLLEdBQUc7UUFBRSxHQUFHLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDLE1BQU0s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SUFDNUQsSUFBSSxDQUFDLE1BQU07UUFBRSxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUM7SUFDbEMsSUFBSSxPQUFPLE1BQU0sS0FBSyxRQUFRLEVBQUU7UUFDOUIsTUFBTSxHQUFHLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQztLQUM1QjtJQUNELE9BQU8sSUFBSSxDQUFDLFFBQVEsR0FBRyxHQUFHLEdBQUcsTUFBTSxDQUFDO0FBQ3RDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBkaWZmQ2hhcnMgfSBmcm9tICdkaWZmJztcbmltcG9ydCB7IF8gfSBmcm9tICd0bnAtY29yZS93ZWJzcWwnO1xuaW1wb3J0IHsgTG9nLCBMZXZlbCB9IGZyb20gJ25nMi1sb2dnZXIvd2Vic3FsJztcbmltcG9ydCB7IE1vZGVscyB9IGZyb20gJy4vbW9kZWxzJztcbmltcG9ydCB7IEhlbHBlcnMgfSBmcm9tICcuL2hlbHBlcnMnO1xuXG5jb25zdCBsb2cgPSBMb2cuY3JlYXRlKCdbbmcyLXJlc3RdIHBhcmFtcycsIExldmVsLl9fTk9USElORylcblxuXG5cbi8qKiBjaGVjayBpZiBzdHJpbmcgaXMgYSB2YWxpZCBwYXR0ZXJuICovXG5leHBvcnQgZnVuY3Rpb24gaXNWYWxpZChwYXR0ZXJuOiBzdHJpbmcpIHtcbiAgcmV0dXJuIChuZXcgUmVnRXhwKCdcXC86W2EtekEtWl0qJywgJ2cnKSkudGVzdChwYXR0ZXJuLnJlcGxhY2UoJzovLycsICcnKSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjaGVjayh1cmw6IHN0cmluZywgcGF0dGVybjogc3RyaW5nKTogYm9vbGVhbiB7XG4gIGlmICghSGVscGVycy5jaGVja1ZhbGlkVXJsKHVybCkpIHtcbiAgICBsb2cuZXJyb3IoYEluY29ycmVjdCB1cmw6ICR7dXJsfWApO1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuICBpZiAodXJsLmNoYXJBdCh1cmwubGVuZ3RoIC0gMSkgPT09ICcvJykgdXJsID0gdXJsLnNsaWNlKDAsIHVybC5sZW5ndGggLSAyKTtcbiAgaWYgKHBhdHRlcm4uY2hhckF0KHBhdHRlcm4ubGVuZ3RoIC0gMSkgPT09ICcvJykgcGF0dGVybiA9IHBhdHRlcm4uc2xpY2UoMCwgdXJsLmxlbmd0aCAtIDIpO1xuICBwYXR0ZXJuID0gcGF0dGVybi5yZXBsYWNlKC9cXC8vZywgJ1xcLycpO1xuICBwYXR0ZXJuID0gcGF0dGVybi5yZXBsYWNlKG5ldyBSZWdFeHAoJ1xcLzpbYS16QS1aXSonLCAnZycpLCAnLisnKTtcbiAgbGV0IHJlZyA9IG5ldyBSZWdFeHAocGF0dGVybiwgJ2cnKTtcbiAgcmV0dXJuIHJlZy50ZXN0KHVybCk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRNb2RlbHMocGF0dGVybjogc3RyaW5nKTogc3RyaW5nW10ge1xuICBsZXQgbSA9IHBhdHRlcm4ubWF0Y2gobmV3IFJlZ0V4cCgnW2Etei1BLVpdKlxcLzonLCAnZycpKTtcbiAgcmV0dXJuIG0ubWFwKHAgPT4gcC5yZXBsYWNlKCcvOicsICcnKSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRSZXN0UHJhbXNOYW1lcyhwYXR0ZXJuOiBzdHJpbmcpOiBzdHJpbmdbXSB7XG4gIGlmIChwYXR0ZXJuLmNoYXJBdChwYXR0ZXJuLmxlbmd0aCAtIDEpICE9PSAnLycpIHBhdHRlcm4gPSBgJHtwYXR0ZXJufS9gO1xuICBsZXQgbSA9IHBhdHRlcm4ubWF0Y2gobmV3IFJlZ0V4cCgnOlthLXpBLVpdKlxcLycsICdnJykpO1xuICBsZXQgcmVzID0gbS5tYXAocCA9PiBwLnJlcGxhY2UoJzonLCAnJykucmVwbGFjZSgnLycsICcnKSk7XG4gIHJldHVybiByZXMuZmlsdGVyKHAgPT4gcC50cmltKCkgIT09ICcnKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNvbnRhaW5zTW9kZWxzKHVybDogc3RyaW5nLCBtb2RlbHM6IHN0cmluZ1tdKTogYm9vbGVhbiB7XG4gIGlmICh1cmwuY2hhckF0KDApICE9PSAnLycpIHVybCA9ICcvJyArIHVybDtcbiAgLy8gdXJsID0gdXJsLnJlcGxhY2UobmV3IFJlZ0V4cCgnXFwvJywgJ2cnKSwgJycpO1xuICBsZXQgcmVzID0gbW9kZWxzLmZpbHRlcihtID0+IHtcbiAgICBsZXQgd29yZCA9ICcvJyArIG07XG4gICAgLy8gbG9nLmQoJ3dvcmQnLCB3b3JkKVxuICAgIGxldCBpaWkgPSB1cmwuaW5kZXhPZih3b3JkKTtcbiAgICAvLyBsb2cuZCgnaWlpJywgaWlpKVxuICAgIGlmIChpaWkgKyB3b3JkLmxlbmd0aCA8IHVybC5sZW5ndGggJiYgdXJsLmNoYXJBdChpaWkgKyB3b3JkLmxlbmd0aCkgIT09ICcvJykge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICBpZiAoaWlpICE9PSAtMSkge1xuICAgICAgdXJsID0gdXJsLnJlcGxhY2UobmV3IFJlZ0V4cCgnXFwvJyArIG0sICdnJyksICcnKTtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICByZXR1cm4gZmFsc2U7XG4gIH0pLmxlbmd0aDtcbiAgLy8gbG9nLmQoJ2NvbnRhaW5zTW9kZWxzJywgcmVzKTtcbiAgcmV0dXJuIHJlcyA9PT0gbW9kZWxzLmxlbmd0aDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHN0YXJzKG46IG51bWJlcik6IHN0cmluZyB7XG4gIGxldCByZXMgPSAnJztcbiAgZm9yIChsZXQgaSA9IDA7IGkgPCBuOyBpKyspIHJlcyArPSAnKic7XG4gIHJldHVybiByZXM7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRSZXN0UGFyYW1zKHVybDogc3RyaW5nLCBwYXR0ZXJuOiBzdHJpbmcpOiBPYmplY3Qge1xuICBsZXQgcmVzID0ge307XG4gIGxldCBtb2RlbHMgPSBnZXRSZXN0UHJhbXNOYW1lcyhwYXR0ZXJuKTtcbiAgLy8gbG9nLmQoJ21vZGVscycsIG1vZGVscyk7XG4gIG1vZGVscy5mb3JFYWNoKG0gPT4ge1xuICAgIHBhdHRlcm4gPSBwYXR0ZXJuLnJlcGxhY2UoYDoke219YCwgc3RhcnMobS5sZW5ndGgpKTtcbiAgfSlcblxuICBsZXQgY3VycmVudE1vZGVsOiBzdHJpbmcgPSB2b2lkIDA7XG4gIGRpZmZDaGFycyhwYXR0ZXJuLCB1cmwpLmZvckVhY2goZCA9PiB7XG4gICAgLy8gbG9nLmQoJ2QnLCBkKTtcbiAgICBpZiAoZC5hZGRlZCkge1xuICAgICAgaWYgKCFpc05hTihOdW1iZXIoZC52YWx1ZSkpKSByZXNbY3VycmVudE1vZGVsXSA9IE51bWJlcihkLnZhbHVlKTtcbiAgICAgIGVsc2UgaWYgKGQudmFsdWUudHJpbSgpID09PSAndHJ1ZScpIHJlc1tjdXJyZW50TW9kZWxdID0gdHJ1ZTtcbiAgICAgIGVsc2UgaWYgKGQudmFsdWUudHJpbSgpID09PSAnZmFsc2UnKSByZXNbY3VycmVudE1vZGVsXSA9IGZhbHNlO1xuICAgICAgZWxzZSByZXNbY3VycmVudE1vZGVsXSA9IGRlY29kZVVSSUNvbXBvbmVudChkLnZhbHVlKTtcbiAgICAgIGN1cnJlbnRNb2RlbCA9IHZvaWQgMDtcbiAgICB9XG4gICAgbGV0IG0gPSBkLnZhbHVlLnJlcGxhY2UoJzonLCBcIlwiKTtcbiAgICAvLyBsb2cuZCgnbW9kZWwgbScsIG0pXG4gICAgaWYgKGQucmVtb3ZlZCkge1xuICAgICAgY3VycmVudE1vZGVsID0gbW9kZWxzLnNoaWZ0KCk7XG4gICAgfVxuICB9KTtcbiAgcmV0dXJuIHJlcztcbn1cblxuZXhwb3J0IGNvbnN0IHJlZ2V4aXNQYXRoID0gL1teXFwuLl0rKFxcLlteXFwuLl0rKSsvZztcblxuLyoqXG4gKiBNb2RlbHMgbGlrZSBib29rcy86aWRcbiAqL1xuZnVuY3Rpb24gY3V0VXJsTW9kZWwocGFyYW1zOiBPYmplY3QsIG1vZGVsczogc3RyaW5nW10sIG91dHB1dDogc3RyaW5nW10pIHtcbiAgaWYgKG1vZGVscy5sZW5ndGggPT09IDApIHJldHVybiBvdXRwdXQuam9pbignXFwvJyk7XG4gIGxldCBtID0gbW9kZWxzLnBvcCgpO1xuXG4gIGxldCBwYXJhbSA9IG0ubWF0Y2goLzpbYS16QS1aMC05XFwuXSsvKVswXS5yZXBsYWNlKCc6JywgJycpO1xuICBjb25zdCBwYXJhbUlzUGF0aCA9IHJlZ2V4aXNQYXRoLnRlc3QocGFyYW0pXG4gIC8vIGxvZy5pKCdjdXQgcGFyYW0nLCBwYXJhbSlcbiAgbGV0IG1vZGVsID0gbS5tYXRjaCgvW2EtekEtWjAtOV0rXFwvLylbMF0ucmVwbGFjZSgnXFwvJywgJycpO1xuICBpZiAocGFyYW1zID09PSB2b2lkIDAgfHxcbiAgICAocGFyYW1Jc1BhdGggPyBfLmdldChwYXJhbXMsIHBhcmFtKSA9PT0gdm9pZCAwIDogcGFyYW1zW3BhcmFtXSA9PT0gdm9pZCAwKSB8fFxuICAgIHBhcmFtID09PSAndW5kZWZpbmVkJykge1xuICAgIG91dHB1dC5sZW5ndGggPSAwO1xuICAgIG91dHB1dC51bnNoaWZ0KG1vZGVsKVxuICAgIHJldHVybiBjdXRVcmxNb2RlbChwYXJhbXMsIG1vZGVscywgb3V0cHV0KTtcbiAgfSBlbHNlIHtcbiAgICBpZiAocGFyYW1Jc1BhdGgpIHtcbiAgICAgIC8vIGxvZy5pKCdwYXJhbSBpcyBwYXRoJywgcGFyYW0pXG4gICAgICBsZXQgbXJlcCA9IG0ucmVwbGFjZShuZXcgUmVnRXhwKGA6JHtwYXJhbX1gLCAnZycpLCBgJHtfLmdldChwYXJhbXMsIHBhcmFtKX1gKVxuICAgICAgb3V0cHV0LnVuc2hpZnQobXJlcClcbiAgICAgIHJldHVybiBjdXRVcmxNb2RlbChwYXJhbXMsIG1vZGVscywgb3V0cHV0KTtcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gbG9nLmkoJ3BhcmFtIGlzIG5vcm1hbCcsIHBhcmFtKVxuICAgICAgbGV0IG1yZXAgPSBtLnJlcGxhY2UobmV3IFJlZ0V4cChgOiR7cGFyYW19YCwgJ2cnKSwgYCR7cGFyYW1zW3BhcmFtXX1gKVxuICAgICAgb3V0cHV0LnVuc2hpZnQobXJlcClcbiAgICAgIHJldHVybiBjdXRVcmxNb2RlbChwYXJhbXMsIG1vZGVscywgb3V0cHV0KTtcbiAgICB9XG5cbiAgfVxufVxuXG5cbmV4cG9ydCBmdW5jdGlvbiBpbnRlcnBvbGF0ZVBhcmFtc1RvVXJsKHBhcmFtczogT2JqZWN0LCB1cmw6IHN0cmluZyk6IHN0cmluZyB7XG5cbiAgY29uc3QgcmVnZXhJbnQgPSAvXFxbXFxbKFteXFwuLl0rXFwuW15cXC4uXSspK1xcXVxcXS9nO1xuXG4gIHVybCA9IHVybC5zcGxpdCgnLycpLm1hcChwID0+IHtcbiAgICAvLyBsb2cuZCgndXJsIHBhcnRzJywgcClcbiAgICBsZXQgaXNQYXJhbSA9IHAuc3RhcnRzV2l0aCgnOicpXG4gICAgaWYgKGlzUGFyYW0pIHtcbiAgICAgIGxldCBwYXJ0ID0gcC5zbGljZSgxKTtcbiAgICAgIC8vIGxvZy5kKCd1cmwgcGFyYW0gcGFydCcsIHApXG4gICAgICBpZiAocmVnZXhJbnQudGVzdChwYXJ0KSkge1xuICAgICAgICAvLyBsZXQgbGV2ZWwgPSAodXJsLnNwbGl0KCcuJykubGVuZ3RoIC0gMSlcbiAgICAgICAgcGFydCA9IHBhcnQucmVwbGFjZSgnW1snLCAnJylcbiAgICAgICAgcGFydCA9IHBhcnQucmVwbGFjZSgnXV0nLCAnJylcbiAgICAgIH1cbiAgICAgIHJldHVybiBgOiR7cGFydH1gXG4gICAgfVxuICAgIHJldHVybiBwO1xuICB9KS5qb2luKCcvJyk7XG5cbiAgLy8gbG9nLmkoJ1VSTCBUTyBFWFBPU0UnLCB1cmwpXG5cbiAgLy8gbG9nLmkoJ3BhcmFtcycsIHBhcmFtcylcblxuICBsZXQgc2xhc2ggPSB7XG4gICAgc3RhcnQ6IHVybC5jaGFyQXQoMCkgPT09ICdcXC8nLFxuICAgIGVuZDogdXJsLmNoYXJBdCh1cmwubGVuZ3RoIC0gMSkgPT09ICdcXC8nXG4gIH1cblxuICBsZXQgbW9yZVByYW1zT25FbmQgPSB1cmwubWF0Y2goLyhcXC86W2EtekEtWjAtOVxcLl0rKXsyLDEwfS9nKTtcbiAgaWYgKG1vcmVQcmFtc09uRW5kICYmIChBcnJheS5pc0FycmF5KG1vcmVQcmFtc09uRW5kKSAmJiBtb3JlUHJhbXNPbkVuZC5sZW5ndGggPT09IDEpKSB7XG4gICAgLy8gbG9nLmkoJ21vcmVQcmFtc09uRW5kJywgbW9yZVByYW1zT25FbmQpXG4gICAgbGV0IG0gPSBtb3JlUHJhbXNPbkVuZFswXTtcbiAgICBsZXQgbWF0Y2ggPSBtLm1hdGNoKC9cXC86W2EtekEtWjAtOVxcLl0rL2cpO1xuICAgIC8vIGxvZy5pKCdtYXRjaCcsIG1hdGNoKVxuICAgIG1hdGNoLmZvckVhY2goZSA9PiB7XG4gICAgICBsZXQgYyA9IGUucmVwbGFjZSgnXFwvOicsICcnKTtcbiAgICAgIC8vIGxvZy5pKCdjJywgYylcbiAgICAgIGlmIChyZWdleGlzUGF0aC50ZXN0KGMpKSB7XG4gICAgICAgIHVybCA9IHVybC5yZXBsYWNlKGUsIGAvJHtfLmdldChwYXJhbXMsIGMpfWApXG4gICAgICB9IGVsc2Uge1xuICAgICAgICB1cmwgPSB1cmwucmVwbGFjZShlLCBgLyR7cGFyYW1zW2NdfWApXG4gICAgICB9XG5cblxuICAgICAgLy8gbG9nLmkoJ3Byb2cgdXJsJywgdXJsKVxuICAgIH0pXG4gICAgcmV0dXJuIHVybDtcbiAgfVxuXG4gIGxldCBuZXN0ZWRQYXJhbXMgPSB1cmwubWF0Y2goL1thLXpBLVowLTldK1xcLzpbYS16QS1aMC05XFwuXSsvZyk7XG4gIGlmICghbmVzdGVkUGFyYW1zIHx8IChBcnJheS5pc0FycmF5KG5lc3RlZFBhcmFtcykgJiYgbmVzdGVkUGFyYW1zLmxlbmd0aCA9PT0gMCkpIHJldHVybiB1cmw7XG5cbiAgLy8gY2hlY2sgYWxvbmUgcGFyYW1zXG4gIGlmICghc2xhc2guZW5kKSB1cmwgPSBgJHt1cmx9L2A7XG4gIGxldCBhZGRVbmRlZmluZWRGb3JBbG9uZSA9ICghLzpbYS16QS1aMC05XFwuXStcXC8kL2cudGVzdCh1cmwpICYmIC9bYS16QS1aMC05XStcXC8kL2cudGVzdCh1cmwpKTtcblxuICBsZXQgcmVwbGFjZSA9IChuZXN0ZWRQYXJhbXMubGVuZ3RoID4gMSA/IG5lc3RlZFBhcmFtcy5qb2luKCdcXC8nKSA6IG5lc3RlZFBhcmFtc1swXSkgK1xuICAgIChhZGRVbmRlZmluZWRGb3JBbG9uZSA/ICdcXC8nICsgdXJsLm1hdGNoKC9bYS16QS1aMC05XStcXC8kL2cpWzBdIDogJ1xcLycpO1xuICBsZXQgYmVnaW5IcmVmID0gdXJsLnJlcGxhY2UocmVwbGFjZSwgJycpXG5cbiAgaWYgKGFkZFVuZGVmaW5lZEZvckFsb25lKSB7XG4gICAgdXJsID0gdXJsLnJlcGxhY2UoL1xcLyQvZywgJy86dW5kZWZpbmVkJylcbiAgICBuZXN0ZWRQYXJhbXMgPSB1cmwubWF0Y2goL1thLXpBLVowLTldK1xcLzpbYS16QS1aMC05XFwuXSsvZyk7XG4gICAgdXJsID0gY3V0VXJsTW9kZWwocGFyYW1zLCBuZXN0ZWRQYXJhbXMsIFtdKVxuICB9IGVsc2Uge1xuICAgIHVybCA9IGN1dFVybE1vZGVsKHBhcmFtcywgbmVzdGVkUGFyYW1zLCBbXSlcbiAgfVxuICB1cmwgPSBiZWdpbkhyZWYgKyB1cmw7XG5cbiAgaWYgKHVybC5jaGFyQXQodXJsLmxlbmd0aCAtIDEpICE9PSAnLycgJiYgc2xhc2guZW5kKSB1cmwgPSBgJHt1cmx9L2A7XG4gIGlmICh1cmwuY2hhckF0KDApICE9PSAnXFwvJyAmJiBzbGFzaC5zdGFydCkgdXJsID0gYC8ke3VybH1gO1xuXG4gIHJldHVybiB1cmw7XG59XG5cbi8qKlxuICogR2V0IHF1ZXJ5IHBhcmFtcyBmcm9tIHVybCwgbGlrZSAnZXgnIGluIC9hcGkvYm9va3M/ZXg9dmFsdWVcbiovXG5leHBvcnQgZnVuY3Rpb24gZGVjb2RlVXJsKHVybDogc3RyaW5nKTogT2JqZWN0IHtcbiAgbGV0IHJlZ2V4ID0gL1s/Jl0oW149I10rKT0oW14mI10qKS9nLFxuICAgIHBhcmFtcyA9IHt9LFxuICAgIG1hdGNoO1xuICB3aGlsZSAobWF0Y2ggPSByZWdleC5leGVjKHVybCkpIHtcbiAgICBwYXJhbXNbZGVjb2RlVVJJQ29tcG9uZW50KG1hdGNoWzFdKV0gPSBkZWNvZGVVUklDb21wb25lbnQobWF0Y2hbMl0pO1xuICB9XG4gIGxldCBwYXJhbXNPYmplY3QgPSA8T2JqZWN0PnBhcmFtcztcbiAgZm9yIChsZXQgcCBpbiBwYXJhbXNPYmplY3QpIHtcbiAgICBpZiAocGFyYW1zT2JqZWN0W3BdID09PSB2b2lkIDApIHtcbiAgICAgIGRlbGV0ZSBwYXJhbXNPYmplY3RbcF07XG4gICAgICBjb250aW51ZTtcbiAgICB9XG4gICAgaWYgKHBhcmFtc09iamVjdC5oYXNPd25Qcm9wZXJ0eShwKSkge1xuICAgICAgLy8gY2hjZWsgaWYgcHJvcGVydHkgaXMgbnVtYmVyXG4gICAgICBsZXQgbiA9IE51bWJlcihwYXJhbXNbcF0pO1xuICAgICAgaWYgKCFpc05hTihuKSkge1xuICAgICAgICBwYXJhbXNbcF0gPSBuO1xuICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cbiAgICAgIGlmICh0eXBlb2YgcGFyYW1zW3BdID09PSAnc3RyaW5nJykge1xuXG4gICAgICAgIC8vIGNoZWNrIGlmIHByb3BlcnR5IGlzIG9iamVjdFxuICAgICAgICBsZXQganNvbjtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICBqc29uID0gSlNPTi5wYXJzZShwYXJhbXNbcF0pO1xuICAgICAgICB9IGNhdGNoIChlcnJvcikgeyB9XG4gICAgICAgIGlmIChqc29uICE9PSB2b2lkIDApIHtcbiAgICAgICAgICBwYXJhbXNbcF0gPSBqc29uO1xuICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gY2hjZWsgaWYgcHJvcGVydHkgdmFsdWUgaXMgbGlrZSByZWd1bGFyIHJleHByZXNzaW9uXG4gICAgICAgIC8vIGxldCByZWdleEV4cHJlc3Npb247XG4gICAgICAgIC8vIHRyeSB7XG4gICAgICAgIC8vICAgICByZWdleEV4cHJlc3Npb24gPSBuZXcgUmVnRXhwKHBhcmFtc1twXSk7XG4gICAgICAgIC8vIH0gY2F0Y2ggKGUpIHsgfVxuICAgICAgICAvLyBpZiAocmVnZXhFeHByZXNzaW9uICE9PSB1bmRlZmluZWQpIHBhcmFtc1twXSA9IHJlZ2V4RXhwcmVzc2lvbjtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgcmV0dXJuIHBhcmFtcztcbn1cblxuLyoqXG4gKiBDcmVhdGUgcXVlcnkgcGFyYW1zIHN0cmluZyBmb3IgdXJsXG4gKlxuICogQGV4cG9ydFxuICogQHBhcmFtIHtVcmxQYXJhbXNbXX0gcGFyYW1zXG4gKiBAcmV0dXJucyB7c3RyaW5nfVxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0UGFyYW1zVXJsKHBhcmFtczogTW9kZWxzLlVybFBhcmFtc1tdLCBkb05vdFNlcmlhbGl6ZTogYm9vbGVhbiA9IGZhbHNlKTogc3RyaW5nIHtcbiAgbGV0IHVybHBhcnRzOiBzdHJpbmdbXSA9IFtdO1xuICBpZiAoIXBhcmFtcykgcmV0dXJuICcnO1xuICBpZiAoIShwYXJhbXMgaW5zdGFuY2VvZiBBcnJheSkpIHJldHVybiAnJztcbiAgaWYgKHBhcmFtcy5sZW5ndGggPT09IDApIHJldHVybiAnJztcblxuICBwYXJhbXMuZm9yRWFjaCh1cmxwYXJhbSA9PiB7XG4gICAgaWYgKEpTT04uc3RyaW5naWZ5KHVybHBhcmFtKSAhPT0gJ3t9Jykge1xuXG4gICAgICBsZXQgcGFyYW1ldGVyczogc3RyaW5nW10gPSBbXTtcbiAgICAgIGxldCBwYXJhbU9iamVjdCA9IDxPYmplY3Q+dXJscGFyYW07XG5cblxuICAgICAgZm9yIChsZXQgcCBpbiBwYXJhbU9iamVjdCkge1xuICAgICAgICBpZiAocGFyYW1PYmplY3RbcF0gPT09IHZvaWQgMCkgZGVsZXRlIHBhcmFtT2JqZWN0W3BdO1xuICAgICAgICBpZiAocGFyYW1PYmplY3QuaGFzT3duUHJvcGVydHkocCkgJiYgdHlwZW9mIHAgPT09ICdzdHJpbmcnICYmIHAgIT09ICdyZWdleCcgJiYgIShwYXJhbU9iamVjdFtwXSBpbnN0YW5jZW9mIFJlZ0V4cCkpIHtcbiAgICAgICAgICBpZiAocC5sZW5ndGggPiAwICYmIHBbMF0gPT09ICcvJykge1xuICAgICAgICAgICAgbGV0IG5ld05hbWUgPSBwLnNsaWNlKDEsIHAubGVuZ3RoIC0gMSk7XG4gICAgICAgICAgICB1cmxwYXJhbVtuZXdOYW1lXSA9IHVybHBhcmFtW3BdO1xuICAgICAgICAgICAgdXJscGFyYW1bcF0gPSB2b2lkIDA7XG4gICAgICAgICAgICBwID0gbmV3TmFtZTtcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKHAubGVuZ3RoID4gMCAmJiBwW3AubGVuZ3RoIC0gMV0gPT09ICcvJykge1xuICAgICAgICAgICAgbGV0IG5ld05hbWUgPSBwLnNsaWNlKDAsIHAubGVuZ3RoIC0gMik7XG4gICAgICAgICAgICB1cmxwYXJhbVtuZXdOYW1lXSA9IHVybHBhcmFtW3BdO1xuICAgICAgICAgICAgdXJscGFyYW1bcF0gPSB2b2lkIDA7XG4gICAgICAgICAgICBwID0gbmV3TmFtZTtcbiAgICAgICAgICB9XG4gICAgICAgICAgbGV0IHY6IGFueSA9IHVybHBhcmFtW3BdO1xuICAgICAgICAgIGlmICh2IGluc3RhbmNlb2YgT2JqZWN0KSB7XG4gICAgICAgICAgICB1cmxwYXJhbVtwXSA9IEpTT04uc3RyaW5naWZ5KHVybHBhcmFtW3BdKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgdXJscGFyYW1bcF0gPSBkb05vdFNlcmlhbGl6ZSA/IDxzdHJpbmc+dXJscGFyYW1bcF0gOiBlbmNvZGVVUklDb21wb25lbnQoPHN0cmluZz51cmxwYXJhbVtwXSk7XG4gICAgICAgICAgaWYgKHVybHBhcmFtLnJlZ2V4ICE9PSB2b2lkIDAgJiYgdXJscGFyYW0ucmVnZXggaW5zdGFuY2VvZiBSZWdFeHApIHtcblxuICAgICAgICAgICAgaWYgKCF1cmxwYXJhbS5yZWdleC50ZXN0KDxzdHJpbmc+dXJscGFyYW1bcF0pKSB7XG4gICAgICAgICAgICAgIGNvbnNvbGUud2FybihgRGF0YTogJHt1cmxwYXJhbVtwXX0gaW5jb3N0aXN0ZW50IHdpdGggcmVnZXggJHt1cmxwYXJhbS5yZWdleC5zb3VyY2V9YCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICAgIHBhcmFtZXRlcnMucHVzaChgJHtwfT0ke3VybHBhcmFtW3BdfWApO1xuICAgICAgICB9XG5cbiAgICAgIH1cblxuICAgICAgdXJscGFydHMucHVzaChwYXJhbWV0ZXJzLmpvaW4oJyYnKSk7XG5cblxuICAgIH1cblxuXG4gIH0pO1xuICBsZXQgam9pbiA9IHVybHBhcnRzLmpvaW4oKS50cmltKCk7XG4gIGlmIChqb2luLnRyaW0oKSA9PT0gJycpIHJldHVybiAnJztcbiAgcmV0dXJuIGA/JHt1cmxwYXJ0cy5qb2luKCcmJyl9YDtcbn1cblxuXG5mdW5jdGlvbiB0cmFuc2Zvcm0obykge1xuICBpZiAodHlwZW9mIG8gPT09ICdvYmplY3QnKSB7XG4gICAgcmV0dXJuIGVuY29kZVVSSUNvbXBvbmVudChKU09OLnN0cmluZ2lmeShvKSk7XG4gIH1cbiAgcmV0dXJuIG87XG59XG5cblxuZXhwb3J0IGZ1bmN0aW9uIHByZXBhcmVVcmxPbGRXYXkocGFyYW1zPzogVGVtcGxhdGVTdHJpbmdzQXJyYXkpOiBzdHJpbmcge1xuICBpZiAoIXBhcmFtcykgcmV0dXJuIHRoaXMuZW5kcG9pbnQ7XG4gIGlmICh0eXBlb2YgcGFyYW1zID09PSAnb2JqZWN0Jykge1xuICAgIHBhcmFtcyA9IHRyYW5zZm9ybShwYXJhbXMpO1xuICB9XG4gIHJldHVybiB0aGlzLmVuZHBvaW50ICsgJy8nICsgcGFyYW1zO1xufSJdfQ==
|
|
277
|
+
;
|
|
278
|
+
({}); // @--end-of-file-for-module=ng2-rest tmp-src-bundle-websql/lib/params.ts
|
|
279
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFyYW1zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vdG1wLWxpYnMtZm9yLWJ1bmRsZS13ZWJzcWwvbmcyLXJlc3QvcHJvamVjdHMvbmcyLXJlc3Qvc3JjL2xpYi9wYXJhbXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNqQyxPQUFPLEVBQUUsQ0FBQyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDcEMsT0FBTyxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUUvQyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBRXBDLE1BQU0sR0FBRyxHQUFHLEdBQUcsQ0FBQyxNQUFNLENBQUMsbUJBQW1CLEVBQUUsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFBO0FBSTVELHlDQUF5QztBQUN6QyxNQUFNLFVBQVUsT0FBTyxDQUFDLE9BQWU7SUFDckMsT0FBTyxDQUFDLElBQUksTUFBTSxDQUFDLGNBQWMsRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDO0FBQzVFLENBQUM7QUFFRCxNQUFNLFVBQVUsS0FBSyxDQUFDLEdBQVcsRUFBRSxPQUFlO0lBQ2hELElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxFQUFFO1FBQy9CLEdBQUcsQ0FBQyxLQUFLLENBQUMsa0JBQWtCLEdBQUcsRUFBRSxDQUFDLENBQUM7UUFDbkMsT0FBTyxLQUFLLENBQUM7S0FDZDtJQUNELElBQUksR0FBRyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxLQUFLLEdBQUc7UUFBRSxHQUFHLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDLE1BQU0s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RyxDQUFDLElBQUksUUFBUSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQztpQkFDeEM7YUFFRjtZQUVELFFBQVEsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO1NBR3JDO0lBR0gsQ0FBQyxDQUFDLENBQUM7SUFDSCxJQUFJLElBQUksR0FBRyxRQUFRLENBQUMsSUFBSSxFQUFFLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDbEMsSUFBSSxJQUFJLENBQUMsSUFBSSxFQUFFLEtBQUssRUFBRTtRQUFFLE9BQU8sRUFBRSxDQUFDO0lBQ2xDLE9BQU8sSUFBSSxRQUFRLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUM7QUFDbEMsQ0FBQztBQUdELFNBQVMsU0FBUyxDQUFDLENBQUM7SUFDbEIsSUFBSSxPQUFPLENBQUMsS0FBSyxRQUFRLEVBQUU7UUFDekIsT0FBTyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7S0FDOUM7SUFDRCxPQUFPLENBQUMsQ0FBQztBQUNYLENBQUM7QUFHRCxNQUFNLFVBQVUsZ0JBQWdCLENBQUMsTUFBNkI7SUFDNUQsSUFBSSxDQUFDLE1BQU07UUFBRSxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUM7SUFDbEMsSUFBSSxPQUFPLE1BQU0sS0FBSyxRQUFRLEVBQUU7UUFDOUIsTUFBTSxHQUFHLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQztLQUM1QjtJQUNELE9BQU8sSUFBSSxDQUFDLFFBQVEsR0FBRyxHQUFHLEdBQUcsTUFBTSxDQUFDO0FBQ3RDLENBQUM7QUFDQSxDQUFDO0FBQUEsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLHlFQUF5RSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGRpZmZDaGFycyB9IGZyb20gJ2RpZmYnO1xuaW1wb3J0IHsgXyB9IGZyb20gJ3RucC1jb3JlL3dlYnNxbCc7XG5pbXBvcnQgeyBMb2csIExldmVsIH0gZnJvbSAnbmcyLWxvZ2dlci93ZWJzcWwnO1xuaW1wb3J0IHsgTW9kZWxzIH0gZnJvbSAnLi9tb2RlbHMnO1xuaW1wb3J0IHsgSGVscGVycyB9IGZyb20gJy4vaGVscGVycyc7XG5cbmNvbnN0IGxvZyA9IExvZy5jcmVhdGUoJ1tuZzItcmVzdF0gcGFyYW1zJywgTGV2ZWwuX19OT1RISU5HKVxuXG5cblxuLyoqIGNoZWNrIGlmIHN0cmluZyBpcyBhIHZhbGlkIHBhdHRlcm4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc1ZhbGlkKHBhdHRlcm46IHN0cmluZykge1xuICByZXR1cm4gKG5ldyBSZWdFeHAoJ1xcLzpbYS16QS1aXSonLCAnZycpKS50ZXN0KHBhdHRlcm4ucmVwbGFjZSgnOi8vJywgJycpKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNoZWNrKHVybDogc3RyaW5nLCBwYXR0ZXJuOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgaWYgKCFIZWxwZXJzLmNoZWNrVmFsaWRVcmwodXJsKSkge1xuICAgIGxvZy5lcnJvcihgSW5jb3JyZWN0IHVybDogJHt1cmx9YCk7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG4gIGlmICh1cmwuY2hhckF0KHVybC5sZW5ndGggLSAxKSA9PT0gJy8nKSB1cmwgPSB1cmwuc2xpY2UoMCwgdXJsLmxlbmd0aCAtIDIpO1xuICBpZiAocGF0dGVybi5jaGFyQXQocGF0dGVybi5sZW5ndGggLSAxKSA9PT0gJy8nKSBwYXR0ZXJuID0gcGF0dGVybi5zbGljZSgwLCB1cmwubGVuZ3RoIC0gMik7XG4gIHBhdHRlcm4gPSBwYXR0ZXJuLnJlcGxhY2UoL1xcLy9nLCAnXFwvJyk7XG4gIHBhdHRlcm4gPSBwYXR0ZXJuLnJlcGxhY2UobmV3IFJlZ0V4cCgnXFwvOlthLXpBLVpdKicsICdnJyksICcuKycpO1xuICBsZXQgcmVnID0gbmV3IFJlZ0V4cChwYXR0ZXJuLCAnZycpO1xuICByZXR1cm4gcmVnLnRlc3QodXJsKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldE1vZGVscyhwYXR0ZXJuOiBzdHJpbmcpOiBzdHJpbmdbXSB7XG4gIGxldCBtID0gcGF0dGVybi5tYXRjaChuZXcgUmVnRXhwKCdbYS16LUEtWl0qXFwvOicsICdnJykpO1xuICByZXR1cm4gbS5tYXAocCA9PiBwLnJlcGxhY2UoJy86JywgJycpKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldFJlc3RQcmFtc05hbWVzKHBhdHRlcm46IHN0cmluZyk6IHN0cmluZ1tdIHtcbiAgaWYgKHBhdHRlcm4uY2hhckF0KHBhdHRlcm4ubGVuZ3RoIC0gMSkgIT09ICcvJykgcGF0dGVybiA9IGAke3BhdHRlcm59L2A7XG4gIGxldCBtID0gcGF0dGVybi5tYXRjaChuZXcgUmVnRXhwKCc6W2EtekEtWl0qXFwvJywgJ2cnKSk7XG4gIGxldCByZXMgPSBtLm1hcChwID0+IHAucmVwbGFjZSgnOicsICcnKS5yZXBsYWNlKCcvJywgJycpKTtcbiAgcmV0dXJuIHJlcy5maWx0ZXIocCA9PiBwLnRyaW0oKSAhPT0gJycpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY29udGFpbnNNb2RlbHModXJsOiBzdHJpbmcsIG1vZGVsczogc3RyaW5nW10pOiBib29sZWFuIHtcbiAgaWYgKHVybC5jaGFyQXQoMCkgIT09ICcvJykgdXJsID0gJy8nICsgdXJsO1xuXG4gIGxldCByZXMgPSBtb2RlbHMuZmlsdGVyKG0gPT4ge1xuICAgIGxldCB3b3JkID0gJy8nICsgbTtcblxuICAgIGxldCBpaWkgPSB1cmwuaW5kZXhPZih3b3JkKTtcblxuICAgIGlmIChpaWkgKyB3b3JkLmxlbmd0aCA8IHVybC5sZW5ndGggJiYgdXJsLmNoYXJBdChpaWkgKyB3b3JkLmxlbmd0aCkgIT09ICcvJykge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICBpZiAoaWlpICE9PSAtMSkge1xuICAgICAgdXJsID0gdXJsLnJlcGxhY2UobmV3IFJlZ0V4cCgnXFwvJyArIG0sICdnJyksICcnKTtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICByZXR1cm4gZmFsc2U7XG4gIH0pLmxlbmd0aDtcblxuICByZXR1cm4gcmVzID09PSBtb2RlbHMubGVuZ3RoO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gc3RhcnMobjogbnVtYmVyKTogc3RyaW5nIHtcbiAgbGV0IHJlcyA9ICcnO1xuICBmb3IgKGxldCBpID0gMDsgaSA8IG47IGkrKykgcmVzICs9ICcqJztcbiAgcmV0dXJuIHJlcztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldFJlc3RQYXJhbXModXJsOiBzdHJpbmcsIHBhdHRlcm46IHN0cmluZyk6IE9iamVjdCB7XG4gIGxldCByZXMgPSB7fTtcbiAgbGV0IG1vZGVscyA9IGdldFJlc3RQcmFtc05hbWVzKHBhdHRlcm4pO1xuXG4gIG1vZGVscy5mb3JFYWNoKG0gPT4ge1xuICAgIHBhdHRlcm4gPSBwYXR0ZXJuLnJlcGxhY2UoYDoke219YCwgc3RhcnMobS5sZW5ndGgpKTtcbiAgfSlcblxuICBsZXQgY3VycmVudE1vZGVsOiBzdHJpbmcgPSB2b2lkIDA7XG4gIGRpZmZDaGFycyhwYXR0ZXJuLCB1cmwpLmZvckVhY2goZCA9PiB7XG5cbiAgICBpZiAoZC5hZGRlZCkge1xuICAgICAgaWYgKCFpc05hTihOdW1iZXIoZC52YWx1ZSkpKSByZXNbY3VycmVudE1vZGVsXSA9IE51bWJlcihkLnZhbHVlKTtcbiAgICAgIGVsc2UgaWYgKGQudmFsdWUudHJpbSgpID09PSAndHJ1ZScpIHJlc1tjdXJyZW50TW9kZWxdID0gdHJ1ZTtcbiAgICAgIGVsc2UgaWYgKGQudmFsdWUudHJpbSgpID09PSAnZmFsc2UnKSByZXNbY3VycmVudE1vZGVsXSA9IGZhbHNlO1xuICAgICAgZWxzZSByZXNbY3VycmVudE1vZGVsXSA9IGRlY29kZVVSSUNvbXBvbmVudChkLnZhbHVlKTtcbiAgICAgIGN1cnJlbnRNb2RlbCA9IHZvaWQgMDtcbiAgICB9XG4gICAgbGV0IG0gPSBkLnZhbHVlLnJlcGxhY2UoJzonLCBcIlwiKTtcblxuICAgIGlmIChkLnJlbW92ZWQpIHtcbiAgICAgIGN1cnJlbnRNb2RlbCA9IG1vZGVscy5zaGlmdCgpO1xuICAgIH1cbiAgfSk7XG4gIHJldHVybiByZXM7XG59XG5cbmV4cG9ydCBjb25zdCByZWdleGlzUGF0aCA9IC9bXlxcLi5dKyhcXC5bXlxcLi5dKykrL2c7XG5cbi8qKlxuICogTW9kZWxzIGxpa2UgYm9va3MvOmlkXG4gKi9cbmZ1bmN0aW9uIGN1dFVybE1vZGVsKHBhcmFtczogT2JqZWN0LCBtb2RlbHM6IHN0cmluZ1tdLCBvdXRwdXQ6IHN0cmluZ1tdKSB7XG4gIGlmIChtb2RlbHMubGVuZ3RoID09PSAwKSByZXR1cm4gb3V0cHV0LmpvaW4oJ1xcLycpO1xuICBsZXQgbSA9IG1vZGVscy5wb3AoKTtcblxuICBsZXQgcGFyYW0gPSBtLm1hdGNoKC86W2EtekEtWjAtOVxcLl0rLylbMF0ucmVwbGFjZSgnOicsICcnKTtcbiAgY29uc3QgcGFyYW1Jc1BhdGggPSByZWdleGlzUGF0aC50ZXN0KHBhcmFtKVxuXG4gIGxldCBtb2RlbCA9IG0ubWF0Y2goL1thLXpBLVowLTldK1xcLy8pWzBdLnJlcGxhY2UoJ1xcLycsICcnKTtcbiAgaWYgKHBhcmFtcyA9PT0gdm9pZCAwIHx8XG4gICAgKHBhcmFtSXNQYXRoID8gXy5nZXQocGFyYW1zLCBwYXJhbSkgPT09IHZvaWQgMCA6IHBhcmFtc1twYXJhbV0gPT09IHZvaWQgMCkgfHxcbiAgICBwYXJhbSA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgICBvdXRwdXQubGVuZ3RoID0gMDtcbiAgICBvdXRwdXQudW5zaGlmdChtb2RlbClcbiAgICByZXR1cm4gY3V0VXJsTW9kZWwocGFyYW1zLCBtb2RlbHMsIG91dHB1dCk7XG4gIH0gZWxzZSB7XG4gICAgaWYgKHBhcmFtSXNQYXRoKSB7XG5cbiAgICAgIGxldCBtcmVwID0gbS5yZXBsYWNlKG5ldyBSZWdFeHAoYDoke3BhcmFtfWAsICdnJyksIGAke18uZ2V0KHBhcmFtcywgcGFyYW0pfWApXG4gICAgICBvdXRwdXQudW5zaGlmdChtcmVwKVxuICAgICAgcmV0dXJuIGN1dFVybE1vZGVsKHBhcmFtcywgbW9kZWxzLCBvdXRwdXQpO1xuICAgIH0gZWxzZSB7XG5cbiAgICAgIGxldCBtcmVwID0gbS5yZXBsYWNlKG5ldyBSZWdFeHAoYDoke3BhcmFtfWAsICdnJyksIGAke3BhcmFtc1twYXJhbV19YClcbiAgICAgIG91dHB1dC51bnNoaWZ0KG1yZXApXG4gICAgICByZXR1cm4gY3V0VXJsTW9kZWwocGFyYW1zLCBtb2RlbHMsIG91dHB1dCk7XG4gICAgfVxuXG4gIH1cbn1cblxuXG5leHBvcnQgZnVuY3Rpb24gaW50ZXJwb2xhdGVQYXJhbXNUb1VybChwYXJhbXM6IE9iamVjdCwgdXJsOiBzdHJpbmcpOiBzdHJpbmcge1xuXG4gIGNvbnN0IHJlZ2V4SW50ID0gL1xcW1xcWyhbXlxcLi5dK1xcLlteXFwuLl0rKStcXF1cXF0vZztcblxuICB1cmwgPSB1cmwuc3BsaXQoJy8nKS5tYXAocCA9PiB7XG5cbiAgICBsZXQgaXNQYXJhbSA9IHAuc3RhcnRzV2l0aCgnOicpXG4gICAgaWYgKGlzUGFyYW0pIHtcbiAgICAgIGxldCBwYXJ0ID0gcC5zbGljZSgxKTtcblxuICAgICAgaWYgKHJlZ2V4SW50LnRlc3QocGFydCkpIHtcblxuICAgICAgICBwYXJ0ID0gcGFydC5yZXBsYWNlKCdbWycsICcnKVxuICAgICAgICBwYXJ0ID0gcGFydC5yZXBsYWNlKCddXScsICcnKVxuICAgICAgfVxuICAgICAgcmV0dXJuIGA6JHtwYXJ0fWBcbiAgICB9XG4gICAgcmV0dXJuIHA7XG4gIH0pLmpvaW4oJy8nKTtcblxuXG5cblxuXG4gIGxldCBzbGFzaCA9IHtcbiAgICBzdGFydDogdXJsLmNoYXJBdCgwKSA9PT0gJ1xcLycsXG4gICAgZW5kOiB1cmwuY2hhckF0KHVybC5sZW5ndGggLSAxKSA9PT0gJ1xcLydcbiAgfVxuXG4gIGxldCBtb3JlUHJhbXNPbkVuZCA9IHVybC5tYXRjaCgvKFxcLzpbYS16QS1aMC05XFwuXSspezIsMTB9L2cpO1xuICBpZiAobW9yZVByYW1zT25FbmQgJiYgKEFycmF5LmlzQXJyYXkobW9yZVByYW1zT25FbmQpICYmIG1vcmVQcmFtc09uRW5kLmxlbmd0aCA9PT0gMSkpIHtcblxuICAgIGxldCBtID0gbW9yZVByYW1zT25FbmRbMF07XG4gICAgbGV0IG1hdGNoID0gbS5tYXRjaCgvXFwvOlthLXpBLVowLTlcXC5dKy9nKTtcblxuICAgIG1hdGNoLmZvckVhY2goZSA9PiB7XG4gICAgICBsZXQgYyA9IGUucmVwbGFjZSgnXFwvOicsICcnKTtcblxuICAgICAgaWYgKHJlZ2V4aXNQYXRoLnRlc3QoYykpIHtcbiAgICAgICAgdXJsID0gdXJsLnJlcGxhY2UoZSwgYC8ke18uZ2V0KHBhcmFtcywgYyl9YClcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHVybCA9IHVybC5yZXBsYWNlKGUsIGAvJHtwYXJhbXNbY119YClcbiAgICAgIH1cblxuXG5cbiAgICB9KVxuICAgIHJldHVybiB1cmw7XG4gIH1cblxuICBsZXQgbmVzdGVkUGFyYW1zID0gdXJsLm1hdGNoKC9bYS16QS1aMC05XStcXC86W2EtekEtWjAtOVxcLl0rL2cpO1xuICBpZiAoIW5lc3RlZFBhcmFtcyB8fCAoQXJyYXkuaXNBcnJheShuZXN0ZWRQYXJhbXMpICYmIG5lc3RlZFBhcmFtcy5sZW5ndGggPT09IDApKSByZXR1cm4gdXJsO1xuXG5cbiAgaWYgKCFzbGFzaC5lbmQpIHVybCA9IGAke3VybH0vYDtcbiAgbGV0IGFkZFVuZGVmaW5lZEZvckFsb25lID0gKCEvOlthLXpBLVowLTlcXC5dK1xcLyQvZy50ZXN0KHVybCkgJiYgL1thLXpBLVowLTldK1xcLyQvZy50ZXN0KHVybCkpO1xuXG4gIGxldCByZXBsYWNlID0gKG5lc3RlZFBhcmFtcy5sZW5ndGggPiAxID8gbmVzdGVkUGFyYW1zLmpvaW4oJ1xcLycpIDogbmVzdGVkUGFyYW1zWzBdKSArXG4gICAgKGFkZFVuZGVmaW5lZEZvckFsb25lID8gJ1xcLycgKyB1cmwubWF0Y2goL1thLXpBLVowLTldK1xcLyQvZylbMF0gOiAnXFwvJyk7XG4gIGxldCBiZWdpbkhyZWYgPSB1cmwucmVwbGFjZShyZXBsYWNlLCAnJylcblxuICBpZiAoYWRkVW5kZWZpbmVkRm9yQWxvbmUpIHtcbiAgICB1cmwgPSB1cmwucmVwbGFjZSgvXFwvJC9nLCAnLzp1bmRlZmluZWQnKVxuICAgIG5lc3RlZFBhcmFtcyA9IHVybC5tYXRjaCgvW2EtekEtWjAtOV0rXFwvOlthLXpBLVowLTlcXC5dKy9nKTtcbiAgICB1cmwgPSBjdXRVcmxNb2RlbChwYXJhbXMsIG5lc3RlZFBhcmFtcywgW10pXG4gIH0gZWxzZSB7XG4gICAgdXJsID0gY3V0VXJsTW9kZWwocGFyYW1zLCBuZXN0ZWRQYXJhbXMsIFtdKVxuICB9XG4gIHVybCA9IGJlZ2luSHJlZiArIHVybDtcblxuICBpZiAodXJsLmNoYXJBdCh1cmwubGVuZ3RoIC0gMSkgIT09ICcvJyAmJiBzbGFzaC5lbmQpIHVybCA9IGAke3VybH0vYDtcbiAgaWYgKHVybC5jaGFyQXQoMCkgIT09ICdcXC8nICYmIHNsYXNoLnN0YXJ0KSB1cmwgPSBgLyR7dXJsfWA7XG5cbiAgcmV0dXJuIHVybDtcbn1cblxuLyoqXG4gKiBHZXQgcXVlcnkgcGFyYW1zIGZyb20gdXJsLCBsaWtlICdleCcgaW4gL2FwaS9ib29rcz9leD12YWx1ZVxuKi9cbmV4cG9ydCBmdW5jdGlvbiBkZWNvZGVVcmwodXJsOiBzdHJpbmcpOiBPYmplY3Qge1xuICBsZXQgcmVnZXggPSAvWz8mXShbXj0jXSspPShbXiYjXSopL2csXG4gICAgcGFyYW1zID0ge30sXG4gICAgbWF0Y2g7XG4gIHdoaWxlIChtYXRjaCA9IHJlZ2V4LmV4ZWModXJsKSkge1xuICAgIHBhcmFtc1tkZWNvZGVVUklDb21wb25lbnQobWF0Y2hbMV0pXSA9IGRlY29kZVVSSUNvbXBvbmVudChtYXRjaFsyXSk7XG4gIH1cbiAgbGV0IHBhcmFtc09iamVjdCA9IDxPYmplY3Q+cGFyYW1zO1xuICBmb3IgKGxldCBwIGluIHBhcmFtc09iamVjdCkge1xuICAgIGlmIChwYXJhbXNPYmplY3RbcF0gPT09IHZvaWQgMCkge1xuICAgICAgZGVsZXRlIHBhcmFtc09iamVjdFtwXTtcbiAgICAgIGNvbnRpbnVlO1xuICAgIH1cbiAgICBpZiAocGFyYW1zT2JqZWN0Lmhhc093blByb3BlcnR5KHApKSB7XG5cbiAgICAgIGxldCBuID0gTnVtYmVyKHBhcmFtc1twXSk7XG4gICAgICBpZiAoIWlzTmFOKG4pKSB7XG4gICAgICAgIHBhcmFtc1twXSA9IG47XG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuICAgICAgaWYgKHR5cGVvZiBwYXJhbXNbcF0gPT09ICdzdHJpbmcnKSB7XG5cblxuICAgICAgICBsZXQganNvbjtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICBqc29uID0gSlNPTi5wYXJzZShwYXJhbXNbcF0pO1xuICAgICAgICB9IGNhdGNoIChlcnJvcikgeyB9XG4gICAgICAgIGlmIChqc29uICE9PSB2b2lkIDApIHtcbiAgICAgICAgICBwYXJhbXNbcF0gPSBqc29uO1xuICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICB9XG5cblxuXG5cblxuXG5cbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgcmV0dXJuIHBhcmFtcztcbn1cblxuLyoqXG4gKiBDcmVhdGUgcXVlcnkgcGFyYW1zIHN0cmluZyBmb3IgdXJsXG4gKlxuICogQGV4cG9ydFxuICogQHBhcmFtIHtVcmxQYXJhbXNbXX0gcGFyYW1zXG4gKiBAcmV0dXJucyB7c3RyaW5nfVxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0UGFyYW1zVXJsKHBhcmFtczogTW9kZWxzLlVybFBhcmFtc1tdLCBkb05vdFNlcmlhbGl6ZTogYm9vbGVhbiA9IGZhbHNlKTogc3RyaW5nIHtcbiAgbGV0IHVybHBhcnRzOiBzdHJpbmdbXSA9IFtdO1xuICBpZiAoIXBhcmFtcykgcmV0dXJuICcnO1xuICBpZiAoIShwYXJhbXMgaW5zdGFuY2VvZiBBcnJheSkpIHJldHVybiAnJztcbiAgaWYgKHBhcmFtcy5sZW5ndGggPT09IDApIHJldHVybiAnJztcblxuICBwYXJhbXMuZm9yRWFjaCh1cmxwYXJhbSA9PiB7XG4gICAgaWYgKEpTT04uc3RyaW5naWZ5KHVybHBhcmFtKSAhPT0gJ3t9Jykge1xuXG4gICAgICBsZXQgcGFyYW1ldGVyczogc3RyaW5nW10gPSBbXTtcbiAgICAgIGxldCBwYXJhbU9iamVjdCA9IDxPYmplY3Q+dXJscGFyYW07XG5cblxuICAgICAgZm9yIChsZXQgcCBpbiBwYXJhbU9iamVjdCkge1xuICAgICAgICBpZiAocGFyYW1PYmplY3RbcF0gPT09IHZvaWQgMCkgZGVsZXRlIHBhcmFtT2JqZWN0W3BdO1xuICAgICAgICBpZiAocGFyYW1PYmplY3QuaGFzT3duUHJvcGVydHkocCkgJiYgdHlwZW9mIHAgPT09ICdzdHJpbmcnICYmIHAgIT09ICdyZWdleCcgJiYgIShwYXJhbU9iamVjdFtwXSBpbnN0YW5jZW9mIFJlZ0V4cCkpIHtcbiAgICAgICAgICBpZiAocC5sZW5ndGggPiAwICYmIHBbMF0gPT09ICcvJykge1xuICAgICAgICAgICAgbGV0IG5ld05hbWUgPSBwLnNsaWNlKDEsIHAubGVuZ3RoIC0gMSk7XG4gICAgICAgICAgICB1cmxwYXJhbVtuZXdOYW1lXSA9IHVybHBhcmFtW3BdO1xuICAgICAgICAgICAgdXJscGFyYW1bcF0gPSB2b2lkIDA7XG4gICAgICAgICAgICBwID0gbmV3TmFtZTtcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKHAubGVuZ3RoID4gMCAmJiBwW3AubGVuZ3RoIC0gMV0gPT09ICcvJykge1xuICAgICAgICAgICAgbGV0IG5ld05hbWUgPSBwLnNsaWNlKDAsIHAubGVuZ3RoIC0gMik7XG4gICAgICAgICAgICB1cmxwYXJhbVtuZXdOYW1lXSA9IHVybHBhcmFtW3BdO1xuICAgICAgICAgICAgdXJscGFyYW1bcF0gPSB2b2lkIDA7XG4gICAgICAgICAgICBwID0gbmV3TmFtZTtcbiAgICAgICAgICB9XG4gICAgICAgICAgbGV0IHY6IGFueSA9IHVybHBhcmFtW3BdO1xuICAgICAgICAgIGlmICh2IGluc3RhbmNlb2YgT2JqZWN0KSB7XG4gICAgICAgICAgICB1cmxwYXJhbVtwXSA9IEpTT04uc3RyaW5naWZ5KHVybHBhcmFtW3BdKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgdXJscGFyYW1bcF0gPSBkb05vdFNlcmlhbGl6ZSA/IDxzdHJpbmc+dXJscGFyYW1bcF0gOiBlbmNvZGVVUklDb21wb25lbnQoPHN0cmluZz51cmxwYXJhbVtwXSk7XG4gICAgICAgICAgaWYgKHVybHBhcmFtLnJlZ2V4ICE9PSB2b2lkIDAgJiYgdXJscGFyYW0ucmVnZXggaW5zdGFuY2VvZiBSZWdFeHApIHtcblxuICAgICAgICAgICAgaWYgKCF1cmxwYXJhbS5yZWdleC50ZXN0KDxzdHJpbmc+dXJscGFyYW1bcF0pKSB7XG4gICAgICAgICAgICAgIGNvbnNvbGUud2FybihgRGF0YTogJHt1cmxwYXJhbVtwXX0gaW5jb3N0aXN0ZW50IHdpdGggcmVnZXggJHt1cmxwYXJhbS5yZWdleC5zb3VyY2V9YCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICAgIHBhcmFtZXRlcnMucHVzaChgJHtwfT0ke3VybHBhcmFtW3BdfWApO1xuICAgICAgICB9XG5cbiAgICAgIH1cblxuICAgICAgdXJscGFydHMucHVzaChwYXJhbWV0ZXJzLmpvaW4oJyYnKSk7XG5cblxuICAgIH1cblxuXG4gIH0pO1xuICBsZXQgam9pbiA9IHVybHBhcnRzLmpvaW4oKS50cmltKCk7XG4gIGlmIChqb2luLnRyaW0oKSA9PT0gJycpIHJldHVybiAnJztcbiAgcmV0dXJuIGA/JHt1cmxwYXJ0cy5qb2luKCcmJyl9YDtcbn1cblxuXG5mdW5jdGlvbiB0cmFuc2Zvcm0obykge1xuICBpZiAodHlwZW9mIG8gPT09ICdvYmplY3QnKSB7XG4gICAgcmV0dXJuIGVuY29kZVVSSUNvbXBvbmVudChKU09OLnN0cmluZ2lmeShvKSk7XG4gIH1cbiAgcmV0dXJuIG87XG59XG5cblxuZXhwb3J0IGZ1bmN0aW9uIHByZXBhcmVVcmxPbGRXYXkocGFyYW1zPzogVGVtcGxhdGVTdHJpbmdzQXJyYXkpOiBzdHJpbmcge1xuICBpZiAoIXBhcmFtcykgcmV0dXJuIHRoaXMuZW5kcG9pbnQ7XG4gIGlmICh0eXBlb2YgcGFyYW1zID09PSAnb2JqZWN0Jykge1xuICAgIHBhcmFtcyA9IHRyYW5zZm9ybShwYXJhbXMpO1xuICB9XG4gIHJldHVybiB0aGlzLmVuZHBvaW50ICsgJy8nICsgcGFyYW1zO1xufVxuIDsoe30pOyAvLyBALS1lbmQtb2YtZmlsZS1mb3ItbW9kdWxlPW5nMi1yZXN0IHRtcC1zcmMtYnVuZGxlLXdlYnNxbC9saWIvcGFyYW1zLnRzIl19
|
|
@@ -92,4 +92,6 @@ export class RequestCache {
|
|
|
92
92
|
RequestCache.LOCAL_STORAGE_KEY = 'ng2restrequestcache';
|
|
93
93
|
RequestCache.cached = [];
|
|
94
94
|
RequestCache.isRestoredFromLocalStorage = false;
|
|
95
|
-
|
|
95
|
+
;
|
|
96
|
+
({}); // @--end-of-file-for-module=ng2-rest tmp-src-bundle-websql/lib/request-cache.ts
|
|
97
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVxdWVzdC1jYWNoZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3RtcC1saWJzLWZvci1idW5kbGUtd2Vic3FsL25nMi1yZXN0L3Byb2plY3RzL25nMi1yZXN0L3NyYy9saWIvcmVxdWVzdC1jYWNoZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQ2xDLE9BQU8sRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDL0MsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzFDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxNQUFNLEdBQUcsR0FBRyxHQUFHLENBQUMsTUFBTSxDQUFDLGVBQWUsRUFBRSxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUE7QUFHeEQsTUFBTSxPQUFPLFlBQVk7SUFpRXZCLFlBQ1MsUUFBa0M7UUFBbEMsYUFBUSxHQUFSLFFBQVEsQ0FBMEI7SUFHM0MsQ0FBQztJQTlETyxNQUFNLENBQUMsdUJBQXVCO1FBQ3BDLElBQUksT0FBTyxDQUFDLE1BQU0sRUFBRTtZQUNsQixPQUFPO1NBQ1I7UUFDRCxJQUFJLENBQUMsWUFBWSxDQUFDLDBCQUEwQixFQUFFO1lBQzVDLFlBQVksQ0FBQywwQkFBMEIsR0FBRyxJQUFJLENBQUM7WUFDL0MsTUFBTSxJQUFJLEdBQUcsWUFBWSxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsaUJBQWlCLENBQUMsQ0FBQztZQUNsRSxJQUFJLFFBQVEsR0FBbUIsRUFBRSxDQUFDO1lBQ2xDLElBQUksSUFBSSxFQUFFO2dCQUNSLElBQUk7b0JBQ0YsUUFBUSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFtQixDQUFDO2lCQUMvQztnQkFBQyxPQUFPLEtBQUssRUFBRTtpQkFFZjtnQkFDRCxNQUFNLFFBQVEsR0FBRyxR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QUN2QyxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRTtZQUN2QixZQUFZLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUMvQixJQUFJLENBQUMsc0JBQXNCLEVBQUUsQ0FBQztTQUMvQjthQUFNO1lBQ0wsT0FBTyxDQUFDLEdBQUcsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1NBQy9CO1FBQ0QsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQsTUFBTTtRQUNKLFlBQVksQ0FBQyx1QkFBdUIsRUFBRSxDQUFDO1FBQ3ZDLE1BQU0sS0FBSyxHQUFHLFlBQVksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ2hELElBQUksS0FBSyxLQUFLLENBQUMsQ0FBQyxFQUFFO1lBQ2hCLFlBQVksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQztZQUNyQyxJQUFJLENBQUMsc0JBQXNCLEVBQUUsQ0FBQztTQUMvQjthQUFNO1lBQ0wsT0FBTyxDQUFDLEdBQUcsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1NBQ2hDO0lBQ0gsQ0FBQzs7QUEvR2UsOEJBQWlCLEdBQUcscUJBQXFCLENBQUM7QUFFM0MsbUJBQU0sR0FBbUIsRUFBRSxDQUFDO0FBQzVCLHVDQUEwQixHQUFHLEtBQUssQ0FBQztBQStHbkQsQ0FBQztBQUFBLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxnRkFBZ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBfIH0gZnJvbSAndG5wLWNvcmUvd2Vic3FsJztcbmltcG9ydCB7IE1vZGVscyB9IGZyb20gJy4vbW9kZWxzJztcbmltcG9ydCB7IExvZywgTGV2ZWwgfSBmcm9tICduZzItbG9nZ2VyL3dlYnNxbCc7XG5pbXBvcnQgeyBIZWxwZXJzIH0gZnJvbSAndG5wLWNvcmUvd2Vic3FsJztcbmltcG9ydCB7IFJlc3RIZWFkZXJzIH0gZnJvbSAnLi9yZXN0LWhlYWRlcnMnO1xuY29uc3QgbG9nID0gTG9nLmNyZWF0ZSgncmVxdWVzdC1jYWNoZScsIExldmVsLl9fTk9USElORylcblxuXG5leHBvcnQgY2xhc3MgUmVxdWVzdENhY2hlIHtcblxuICBzdGF0aWMgcmVhZG9ubHkgTE9DQUxfU1RPUkFHRV9LRVkgPSAnbmcycmVzdHJlcXVlc3RjYWNoZSc7XG5cbiAgcHJpdmF0ZSBzdGF0aWMgY2FjaGVkOiBSZXF1ZXN0Q2FjaGVbXSA9IFtdO1xuICBwcml2YXRlIHN0YXRpYyBpc1Jlc3RvcmVkRnJvbUxvY2FsU3RvcmFnZSA9IGZhbHNlO1xuXG4gIHByaXZhdGUgc3RhdGljIHJlc3RvcmVGcm9tTG9jYWxTdG9yYWdlKCkge1xuICAgIGlmIChIZWxwZXJzLmlzTm9kZSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAoIVJlcXVlc3RDYWNoZS5pc1Jlc3RvcmVkRnJvbUxvY2FsU3RvcmFnZSkge1xuICAgICAgUmVxdWVzdENhY2hlLmlzUmVzdG9yZWRGcm9tTG9jYWxTdG9yYWdlID0gdHJ1ZTtcbiAgICAgIGNvbnN0IGRhdGEgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbShSZXF1ZXN0Q2FjaGUuTE9DQUxfU1RPUkFHRV9LRVkpO1xuICAgICAgbGV0IHJlcXVlc3RzOiBSZXF1ZXN0Q2FjaGVbXSA9IFtdO1xuICAgICAgaWYgKGRhdGEpIHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICByZXF1ZXN0cyA9IEpTT04ucGFyc2UoZGF0YSkgYXMgUmVxdWVzdENhY2hlW107XG4gICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG5cbiAgICAgICAgfVxuICAgICAgICBjb25zdCByZXN0b3JlZCA9IHJlcXVlc3RzLm1hcChyID0+IHtcbiAgICAgICAgICBsZXQgeyBzb3VyY2VSZXF1ZXN0LCByZXNwb25zZVRleHQsIGJvZHksIGhlYWRlcnMsIGNpcmN1bGFyLFxuICAgICAgICAgICAgZW50aXR5LCBpc0FycmF5LCBjb29raWVzLCBzdGF0dXNDb2RlIH0gPSByLnJlc3BvbnNlO1xuICAgICAgICAgIHIucmVzcG9uc2UgPSBuZXcgTW9kZWxzLkh0dHBSZXNwb25zZShcbiAgICAgICAgICAgIHNvdXJjZVJlcXVlc3QsXG4gICAgICAgICAgICByZXNwb25zZVRleHQsXG4gICAgICAgICAgICBSZXN0SGVhZGVycy5mcm9tKGhlYWRlcnMpLFxuICAgICAgICAgICAgc3RhdHVzQ29kZSxcbiAgICAgICAgICAgIGVudGl0eSxcbiAgICAgICAgICAgIGNpcmN1bGFyLFxuICAgICAgICAgICAgLTEsIC8vIGpvYmlkIGZyb20gbG9jYWwgc3RvcmFnZSBUT0RPXG4gICAgICAgICAgICBpc0FycmF5LFxuICAgICAgICAgICk7XG4gICAgICAgICAgciA9IG5ldyBSZXF1ZXN0Q2FjaGUoci5yZXNwb25zZSk7XG4gICAgICAgICAgci5yZXNwb25zZS5ycSA9IHI7XG5cbiAgICAgICAgICByZXR1cm4gcjtcbiAgICAgICAgfSk7XG4gICAgICAgIGxvZy5pKCdSRVNUT1JFRCBGUk9NIExPQ0FMIFNUT1JBR0UnLCByZXN0b3JlZCk7XG4gICAgICAgIFJlcXVlc3RDYWNoZS5jYWNoZWQgPSByZXN0b3JlZDtcbiAgICAgIH1cblxuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBzdGF0aWMgZmluZEJ5KHNvdXJjZVJlcXVlc3Q6IE1vZGVscy5IYW5kbGVSZXN1bHRTb3VyY2VSZXF1ZXN0T3B0aW9ucykge1xuICAgIGxvZy5pKCdmaW5kYnknLCBzb3VyY2VSZXF1ZXN0KVxuICAgIGxvZy5pKCdSZXF1ZXN0Q2FjaGUuY2FjaGVkJywgUmVxdWVzdENhY2hlLmNhY2hlZClcbiAgICBSZXF1ZXN0Q2FjaGUucmVzdG9yZUZyb21Mb2NhbFN0b3JhZ2UoKTtcbiAgICByZXR1cm4gUmVxdWVzdENhY2hlLmNhY2hlZC5maW5kKGMgPT4ge1xuICAgICAgY29uc3QgYSA9IGMucmVzcG9uc2Uuc291cmNlUmVxdWVzdDtcbiAgICAgIGNvbnN0IGIgPSBzb3VyY2VSZXF1ZXN0O1xuICAgICAgcmV0dXJuIChcbiAgICAgICAgYS5pc0FycmF5ID09PSBiLmlzQXJyYXkgJiZcbiAgICAgICAgYS51cmwgPT09IGIudXJsICYmXG4gICAgICAgIGEubWV0aG9kID09PSBiLm1ldGhvZCAmJlxuICAgICAgICBhLmJvZHkgPT09IGIuYm9keVxuICAgICAgKVxuICAgIH0pO1xuICB9XG5cblxuXG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIHJlc3BvbnNlOiBNb2RlbHMuSHR0cFJlc3BvbnNlPGFueT5cbiAgKSB7XG5cbiAgfVxuXG4gIGdldCBjb250YWluc0NhY2hlKCkge1xuICAgIFJlcXVlc3RDYWNoZS5yZXN0b3JlRnJvbUxvY2FsU3RvcmFnZSgpO1xuICAgIHJldHVybiBSZXF1ZXN0Q2FjaGUuY2FjaGVkLmluY2x1ZGVzKHRoaXMpO1xuICB9XG5cbiAgcHJpdmF0ZSBwZXJzaXN0c0luTG9jYWxTdG9yYWdlKCkge1xuICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKFJlcXVlc3RDYWNoZS5MT0NBTF9TVE9SQUdFX0tFWSxcbiAgICAgIEpTT04uc3RyaW5naWZ5KFJlcXVlc3RDYWNoZS5jYWNoZWQubWFwKHIgPT4ge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIHJlc3BvbnNlOiB7XG4gICAgICAgICAgICBzb3VyY2VSZXF1ZXN0OiByLnJlc3BvbnNlLnNvdXJjZVJlcXVlc3QsXG4gICAgICAgICAgICByZXNwb25zZVRleHQ6IHIucmVzcG9uc2UucmVzcG9uc2VUZXh0LFxuICAgICAgICAgICAgaGVhZGVyczogci5yZXNwb25zZS5oZWFkZXJzLFxuICAgICAgICAgICAgc3RhdHVzQ29kZTogci5yZXNwb25zZS5zdGF0dXNDb2RlLFxuICAgICAgICAgICAgZW50aXR5OiByLnJlc3BvbnNlLmVudGl0eSxcbiAgICAgICAgICAgIGNpcmN1bGFyOiByLnJlc3BvbnNlLmNpcmN1bGFyLFxuICAgICAgICAgICAgaXNBcnJheTogci5yZXNwb25zZS5pc0FycmF5LFxuICAgICAgICAgIH0gYXMgTW9kZWxzLkh0dHBSZXNwb25zZTxhbnk+XG4gICAgICAgIH07XG4gICAgICB9KSkpO1xuICB9XG5cbiAgc3RvcmUoKSB7XG4gICAgUmVxdWVzdENhY2hlLnJlc3RvcmVGcm9tTG9jYWxTdG9yYWdlKCk7XG4gICAgaWYgKCF0aGlzLmNvbnRhaW5zQ2FjaGUpIHtcbiAgICAgIFJlcXVlc3RDYWNoZS5jYWNoZWQucHVzaCh0aGlzKTtcbiAgICAgIHRoaXMucGVyc2lzdHNJbkxvY2FsU3RvcmFnZSgpO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zb2xlLmxvZygnYWxyZWFkeSBzdG9yZWQnKTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICByZW1vdmUoKSB7XG4gICAgUmVxdWVzdENhY2hlLnJlc3RvcmVGcm9tTG9jYWxTdG9yYWdlKCk7XG4gICAgY29uc3QgaW5kZXggPSBSZXF1ZXN0Q2FjaGUuY2FjaGVkLmluZGV4T2YodGhpcyk7XG4gICAgaWYgKGluZGV4ICE9PSAtMSkge1xuICAgICAgUmVxdWVzdENhY2hlLmNhY2hlZC5zcGxpY2UoaW5kZXgsIDEpO1xuICAgICAgdGhpcy5wZXJzaXN0c0luTG9jYWxTdG9yYWdlKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnNvbGUubG9nKCdhbHJlYWR5IHJlbW92ZWQnKTtcbiAgICB9XG4gIH1cblxufVxuIDsoe30pOyAvLyBALS1lbmQtb2YtZmlsZS1mb3ItbW9kdWxlPW5nMi1yZXN0IHRtcC1zcmMtYnVuZGxlLXdlYnNxbC9saWIvcmVxdWVzdC1jYWNoZS50cyJdfQ==
|
|
@@ -7,8 +7,6 @@ import { Cookie } from './cookie';
|
|
|
7
7
|
import { interpolateParamsToUrl, isValid, containsModels, getModels } from './params';
|
|
8
8
|
import { Helpers } from 'tnp-core/websql';
|
|
9
9
|
export class Resource {
|
|
10
|
-
//#endregion
|
|
11
|
-
//#region constructor
|
|
12
10
|
constructor() {
|
|
13
11
|
setTimeout(() => {
|
|
14
12
|
const zone = this.getZone();
|
|
@@ -24,7 +22,6 @@ export class Resource {
|
|
|
24
22
|
static get listenSuccessOperations() {
|
|
25
23
|
return this._listenSuccess.asObservable();
|
|
26
24
|
}
|
|
27
|
-
//#region private mthods and fields
|
|
28
25
|
getZone() {
|
|
29
26
|
const isNode = (typeof window === 'undefined');
|
|
30
27
|
if (isNode) {
|
|
@@ -64,7 +61,6 @@ export class Resource {
|
|
|
64
61
|
RestRequest.zone = zone;
|
|
65
62
|
}
|
|
66
63
|
checkNestedModels(model, allModels) {
|
|
67
|
-
// if (model.indexOf('/') !== -1) { //TODO make this better, becouse now I unecesary checking shit
|
|
68
64
|
for (let p in allModels) {
|
|
69
65
|
if (allModels.hasOwnProperty(p)) {
|
|
70
66
|
let m = allModels[p];
|
|
@@ -77,7 +73,6 @@ export class Resource {
|
|
|
77
73
|
}
|
|
78
74
|
}
|
|
79
75
|
}
|
|
80
|
-
// }
|
|
81
76
|
return model;
|
|
82
77
|
}
|
|
83
78
|
static getModel(endpoint, model) {
|
|
@@ -89,8 +84,6 @@ export class Resource {
|
|
|
89
84
|
const r = Resource.endpoints[endpoint].models[model];
|
|
90
85
|
return Resource.endpoints[endpoint].models[model];
|
|
91
86
|
}
|
|
92
|
-
//#endregion
|
|
93
|
-
//#region create
|
|
94
87
|
static create(e, model, entityMapping, circular, customContentType) {
|
|
95
88
|
const badRestRegEX = new RegExp('((\/:)[a-z]+)+', 'g');
|
|
96
89
|
const matchArr = model.match(badRestRegEX) || [];
|
|
@@ -108,7 +101,6 @@ Instead use nested approach: /book/:bookid/author/:authorid
|
|
|
108
101
|
;
|
|
109
102
|
Resource.map(e, e);
|
|
110
103
|
Resource.instance.add(e, model ? model : '', entityMapping, circular, customContentType);
|
|
111
|
-
// if (model.charAt(model.length - 1) !== '/') model = `${model}/`;
|
|
112
104
|
return {
|
|
113
105
|
model: (params) => Resource.instance.api(e, interpolateParamsToUrl(params, model)),
|
|
114
106
|
replay: (method) => {
|
|
@@ -119,12 +111,9 @@ Instead use nested approach: /book/:bookid/author/:authorid
|
|
|
119
111
|
}
|
|
120
112
|
};
|
|
121
113
|
}
|
|
122
|
-
//#endregion
|
|
123
|
-
//#region reset
|
|
124
114
|
static reset() {
|
|
125
115
|
Resource.endpoints = {};
|
|
126
116
|
}
|
|
127
|
-
//#region map
|
|
128
117
|
static map(endpoint, url) {
|
|
129
118
|
log.i('url', url);
|
|
130
119
|
let regex = /(http|https):\/\/(\w+:{0,1}\w*)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%!\-\/]))?/;
|
|
@@ -148,7 +137,6 @@ Instead use nested approach: /book/:bookid/author/:authorid
|
|
|
148
137
|
log.i('enpoints', Resource.endpoints);
|
|
149
138
|
return true;
|
|
150
139
|
}
|
|
151
|
-
//#endregion
|
|
152
140
|
static prepareModel(model) {
|
|
153
141
|
if (model.charAt(model.length - 1) === '/')
|
|
154
142
|
model = model.slice(0, model.length - 1);
|
|
@@ -156,7 +144,6 @@ Instead use nested approach: /book/:bookid/author/:authorid
|
|
|
156
144
|
model = model.slice(1, model.length);
|
|
157
145
|
return model;
|
|
158
146
|
}
|
|
159
|
-
//#region add
|
|
160
147
|
/**
|
|
161
148
|
* And enipoint to application
|
|
162
149
|
*
|
|
@@ -189,8 +176,6 @@ Instead use nested approach: /book/:bookid/author/:authorid
|
|
|
189
176
|
}, customContentType); // TODO put custom content type in meta ?
|
|
190
177
|
return;
|
|
191
178
|
}
|
|
192
|
-
//#endregion
|
|
193
|
-
//#region api
|
|
194
179
|
/**
|
|
195
180
|
* Access api throught endpoint
|
|
196
181
|
*
|
|
@@ -199,10 +184,6 @@ Instead use nested approach: /book/:bookid/author/:authorid
|
|
|
199
184
|
* @returns {Rest<T, TA>}
|
|
200
185
|
*/
|
|
201
186
|
api(endpoint, model) {
|
|
202
|
-
// log.i(`[api]
|
|
203
|
-
// creating for endpoint: "${endpoint}"
|
|
204
|
-
// model: "${model}"
|
|
205
|
-
// `)
|
|
206
187
|
if (model.charAt(0) === '/')
|
|
207
188
|
model = model.slice(1, model.length);
|
|
208
189
|
let e = (endpoint).toString();
|
|
@@ -213,26 +194,17 @@ Instead use nested approach: /book/:bookid/author/:authorid
|
|
|
213
194
|
let orgModel = model;
|
|
214
195
|
model = this.checkNestedModels(model, allModels);
|
|
215
196
|
if (Resource.endpoints[e].models[model] === void 0) {
|
|
216
|
-
// log.d('Resource.endpoints', Resource.endpoints);
|
|
217
197
|
throw `Model '${model}' is undefined in endpoint: ${Resource.endpoints[e].url} `;
|
|
218
198
|
}
|
|
219
199
|
let res = Resource.endpoints[(endpoint).toString()].models[model];
|
|
220
|
-
// log.d(`
|
|
221
|
-
// orgModel: ${orgModel}
|
|
222
|
-
// model: ${model}
|
|
223
|
-
// `)
|
|
224
200
|
if (orgModel !== model) {
|
|
225
201
|
let baseUrl = Resource.endpoints[(endpoint).toString()].url;
|
|
226
|
-
// log.d('base', Resource.endpoints[<string>(endpoint).toString()])
|
|
227
|
-
// log.d('baseUrl', baseUrl)
|
|
228
|
-
// log.d('orgModel', orgModel)
|
|
229
202
|
res.__rest_endpoint = `${baseUrl}/${orgModel}`;
|
|
230
203
|
}
|
|
231
204
|
else {
|
|
232
205
|
res.__rest_endpoint = void 0;
|
|
233
206
|
}
|
|
234
207
|
;
|
|
235
|
-
// log.i(`Resource.endpoints`, Resource.endpoints)
|
|
236
208
|
return res;
|
|
237
209
|
}
|
|
238
210
|
}
|
|
@@ -242,14 +214,7 @@ Resource.enableWarnings = true;
|
|
|
242
214
|
Resource.instance = new Resource();
|
|
243
215
|
Resource.endpoints = {};
|
|
244
216
|
Resource.request = new RestRequest();
|
|
245
|
-
//#endregion
|
|
246
217
|
Resource.Cookies = Cookie.Instance;
|
|
247
|
-
|
|
248
|
-
//
|
|
249
|
-
// .mock({
|
|
250
|
-
// code: 500,
|
|
251
|
-
// data: {},
|
|
252
|
-
// isArray: true
|
|
253
|
-
// })
|
|
254
|
-
// .array.
|
|
255
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzb3VyY2Uuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3RtcC1saWJzLWZvci1idW5kbGUtd2Vic3FsL25nMi1yZXN0L3Byb2plY3RzL25nMi1yZXN0L3NyYy9saWIvcmVzb3VyY2Uuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9CLE9BQU8sRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDL0MsTUFBTSxHQUFHLEdBQUcsR0FBRyxDQUFDLE1BQU0sQ0FBQyxpQkFBaUIsRUFDdEMsS0FBSyxDQUFDLFNBQVMsQ0FDaEIsQ0FBQTtBQUVELE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDcEMsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTdDLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFHbEMsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE9BQU8sRUFBRSxjQUFjLEVBQUUsU0FBUyxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBRXRGLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQTtBQU96QyxNQUFNLE9BQU8sUUFBUTtJQWlIbkIsWUFBWTtJQUVaLHFCQUFxQjtJQUNyQjtRQUNFLFVBQVUsQ0FBQyxHQUFHLEVBQUU7WUFDZCxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDNUIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLEVBQUU7Z0JBQUUsV0FBVyxDQUFDLElBQUksR0FBRyxJQUFJLENBQUE7YUFBRTtZQUFBLENBQUM7UUFDckQsQ0FBQyxDQUFDLENBQUE7SUFDSixDQUFDO0lBdEhNLE1BQU0sS0FBSyxZQUFZO1FBQzVCLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUMzQyxDQUFDO0lBRU0sTUFBTSxLQUFLLHVCQUF1QjtRQUN2QyxPQUFPLElBQUksQ0FBQyxjQUFjLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDNUMsQ0FBQztJQUdELG1DQUFtQztJQUMzQixPQUFPO1FBQ2IsTUFBTSxNQUFNLEdBQUcsQ0FBQyxPQUFPLE1BQU0sS0FBSyxXQUFXLENBQUMsQ0FBQTtRQUM5QyxJQUFJLE1BQU0sRUFBRTtZQUFFLE9BQU07U0FBRTtRQUFBLENBQUM7UUFDdkIsTUFBTSxFQUFFLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3hCLE1BQU0seUJBQXlCLEdBQUcsTUFBTSxDQUFDLDJCQUEyQixDQUFDLENBQUM7UUFDdEUsSUFBSSxDQUFDLEVBQUUsSUFBSSxDQUFDLHlCQUF5QixFQUFFO1lBQUUsT0FBTztTQUFFO1FBQ2xELE1BQU0sS0FBSyxHQUFHLEVBQUUsQ0FBQyxLQUFLLENBQUM7UUFDdkIsTUFBTSxVQUFVLEdBQUcsRUFBRSxDQUFDLFVBQVUsQ0FBQztRQUNqQyxJQUFJLENBQUMsVUFBVSxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sRUFBRTtZQUFFLE9BQU87U0FBRTtRQUNsRCxNQUFNLFNBQVMsR0FBRyxVQUFVLENBQUMsTUFBTSxDQUFDO1FBQ3BDLElBQUksQ0FBQyxLQUFLLElBQUksT0FBTyxLQUFLLEtBQUssVUFBVSxJQUFJLENBQUMseUJBQXlCLEVBQUU7WUFBRSxPQUFPO1NBQUU7UUFDcEYsTUFBTSxlQUFlLEdBQVUseUJBQXlCLEVBQUUsQ0FBQztRQUMzRCxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxlQUFlLENBQUMsSUFBSSxlQUFlLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRTtZQUFFLE9BQU87U0FBRTtRQUNoRixNQUFNLFdBQVcsR0FBRyxFQUFFLENBQUMsS0FBSyxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ2pELElBQUksQ0FBQyxXQUFXLEVBQUU7WUFBRSxPQUFPO1NBQUU7UUFDN0IsTUFBTSxRQUFRLEdBQUcsV0FBVyxDQUFDLFFBQVEsQ0FBQztRQUN0QyxJQUFJLENBQUMsUUFBUSxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsSUFBSSxPQUFPLFFBQVEsQ0FBQyxHQUFHLEtBQUssVUFBVSxFQUFFO1lBQUUsT0FBTztTQUFFO1FBQ2pGLE1BQU0sSUFBSSxHQUFHLFFBQVEsQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLENBQUE7UUFDcEMsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBR00sTUFBTSxDQUFDLGlCQUFpQixDQUFDLElBQUk7UUFDbEMsV0FBVyxDQUFDLElBQUksR0FBRyxJQUFJLENBQUM7SUFDMUIsQ0FBQztJQUVPLGlCQUFpQixDQUFDLEtBQWEsRUFBRSxTQUFpQjtRQUN4RCxrR0FBa0c7UUFDbEcsS0FBSyxJQUFJLENBQUMsSUFBSSxTQUFTLEVBQUU7WUFDdkIsSUFBSSxTQUFTLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxFQUFFO2dCQUMvQixJQUFJLENBQUMsR0FBRyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQ3JCLElBQUksT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFO29CQUNkLElBQUksU0FBUyxHQUFHLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQztvQkFDN0IsSUFBSSxjQUFjLENBQUMsS0FBSyxFQUFFLFNBQVMsQ0FBQyxFQUFFO3dCQUNwQyxLQUFLLEdBQUcsQ0FBQyxDQUFDO3dCQUNWLE1BQU07cUJBQ1A7aUJBQ0Y7YUFDRjtTQUNGO1FBQ0QsSUFBSTtRQUNKLE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztJQUlNLE1BQU0sQ0FBQyxRQUFRLENBQUMsUUFBZ0IsRUFBRSxLQUFhO1FBQ3BELEtBQUssR0FBRyxRQUFRLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3JDLE1BQU0sQ0FBQyxHQUFHLFFBQVEsQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDdkMsSUFBSSxDQUFDLENBQUMsRUFBRTtZQUFFLE9BQU8sS0FBSyxDQUFDLENBQUM7U0FBRTtRQUMxQixNQUFNLENBQUMsR0FBRyxRQUFRLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNyRCxPQUFPLFFBQVEsQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3BELENBQUM7SUFFRCxZQUFZO0lBR1osZ0JBQWdCO0lBQ1QsTUFBTSxDQUFDLE1BQU0sQ0FDbEIsQ0FBUyxFQUNULEtBQWMsRUFDZCxhQUErQixFQUMvQixRQUFpQixFQUNqQixpQkFBK0I7UUFFL0IsTUFBTSxZQUFZLEdBQUcsSUFBSSxNQUFNLENBQUMsZ0JBQWdCLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFDdkQsTUFBTSxRQUFRLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDakQsTUFBTSx3QkFBd0IsR0FBRyxRQUFRLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDakQsTUFBTSxpQkFBaUIsR0FBRyxDQUFDLENBQUMsd0JBQXdCLENBQUMsS0FBSyxDQUFDLElBQUksTUFBTSxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLE1BQU0sSUFBSSxDQUFDLENBQUMsQ0FBQztRQUNyRyxJQUFJLGlCQUFpQixJQUFJLEtBQUssQ0FBQyxNQUFNLENBQUMsd0JBQXdCLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRTtZQUN0RSxNQUFNLElBQUksS0FBSyxDQUFDOztrQkFFSixLQUFLOzs7O2FBSVYsQ0FBQyxDQUFBO1NBQ1Q7UUFBQSxDQUFDO1FBQ0YsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDbkIsUUFBUSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsYUFBYSxFQUFFLFFBQVEsRUFBRSxpQkFBaUIsQ0FBQyxDQUFDO1FBQ3pGLG1FQUFtRTtRQUNuRSxPQUFPO1lBQ0wsS0FBSyxFQUFFLENBQUMsTUFBZSxFQUFFLEVBQUUsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FDL0MsQ0FBQyxFQUNELHNCQUFzQixDQUFDLE1BQU0sRUFBRSxLQUFLLENBQUMsQ0FDdEM7WUFDRCxNQUFNLEVBQUUsQ0FBQyxNQUF5QixFQUFFLEVBQUU7Z0JBQ3BDLFFBQVEsQ0FBQyxRQUFRLENBQUMsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUM3QyxDQUFDO1lBQ0QsSUFBSSxPQUFPO2dCQUNULE9BQU8sUUFBUSxDQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUMsT0FBTyxDQUFDO1lBQzdDLENBQUM7U0FDRixDQUFBO0lBQ0gsQ0FBQztJQUNELFlBQVk7SUFFWixlQUFlO0lBQ1IsTUFBTSxDQUFDLEtBQUs7UUFDakIsUUFBUSxDQUFDLFNBQVMsR0FBRyxFQUFFLENBQUM7SUFDMUIsQ0FBQztJQWNELGFBQWE7SUFDTCxNQUFNLENBQUMsR0FBRyxDQUFDLFFBQWdCLEVBQUUsR0FBVztRQUU5QyxHQUFHLENBQUMsQ0FBQyxDQUFDLEtBQUssRUFBRSxHQUFHLENBQUMsQ0FBQTtRQUNqQixJQUFJLEtBQUssR0FBRyw2RUFBNkUsQ0FBQztRQUMxRixJQUFJLENBQUMsR0FBRyxRQUFRLENBQUM7UUFDakIsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUU7WUFDcEIsTUFBTSwrQkFBK0IsR0FBRyxFQUFFLENBQUM7U0FDNUM7UUFDRCxJQUFJLEdBQUcsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsS0FBSyxHQUFHO1lBQUUsR0FBRyxHQUFHLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDM0UsR0FBRyxDQUFDLENBQUMsQ0FBQyxXQUFXLEVBQUUsR0FBRyxDQUFDLENBQUE7UUFDdkIsSUFBSSxRQUFRLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxLQUFLLEtBQUssQ0FBQyxFQUFFO1lBQ3BDLE9BQU8sQ0FBQyxHQUFHLENBQUMsMERBQTBEO2tCQUNsRSxRQUFRLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsR0FBRyxHQUFHLENBQUMsQ0FBQztZQUNyQyxPQUFPLEtBQUssQ0FBQztTQUNkO1FBQ0QsUUFBUSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsR0FBRztZQUN0QixHQUFHLEVBQUUsR0FBRztZQUNSLE1BQU0sRUFBRSxFQUFFO1lBQ1YsTUFBTSxFQUFFLElBQUk7U0FDYixDQUFDO1FBQ0YsR0FBRyxDQUFDLENBQUMsQ0FBQyxVQUFVLEVBQUUsUUFBUSxDQUFDLFNBQVMsQ0FBQyxDQUFBO1FBQ3JDLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUNELFlBQVk7SUFFSixNQUFNLENBQUMsWUFBWSxDQUFDLEtBQUs7UUFDL0IsSUFBSSxLQUFLLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLEtBQUssR0FBRztZQUFFLEtBQUssR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxLQUFLLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQ3JGLElBQUksS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsS0FBSyxHQUFHO1lBQUUsS0FBSyxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNsRSxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7SUFHRCxhQUFhO0lBQ2I7Ozs7OztPQU1HO0lBQ0ssR0FBRyxDQUFDLFFBQVcsRUFBRSxLQUFhLEVBQUUsTUFBdUIsRUFBRSxRQUFpQixFQUFFLGlCQUErQjtRQUNqSCxHQUFHLENBQUMsQ0FBQyxDQUFDLGVBQWUsS0FBSyxPQUFZLFFBQVEsRUFBRSxDQUFDLENBQUM7UUFDbEQsS0FBSyxHQUFHLFFBQVEsQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLENBQUM7UUFFckMsSUFBSSxDQUFTLENBQUM7UUFDZCxDQUFDLEdBQVcsQ0FBQyxRQUFRLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUVsQyxJQUFJLFFBQVEsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEtBQUssS0FBSyxDQUFDLEVBQUU7WUFDcEMsT0FBTyxDQUFDLEtBQUssQ0FBQyw0Q0FBNEMsR0FBRyxLQUFLLENBQUMsQ0FBQztZQUNwRSxPQUFPO1NBQ1I7UUFDRCxJQUFJLFFBQVEsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxLQUFLLEtBQUssQ0FBQyxFQUFFO1lBQ2xELElBQUksUUFBUSxDQUFDLGNBQWM7Z0JBQUUsT0FBTyxDQUFDLElBQUksQ0FBQyxVQUFVLEtBQUssb0NBQW9DO3NCQUN6RixRQUFRLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQy9CLE9BQU87U0FDUjtRQUNELFFBQVEsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQztZQUNqQyxJQUFJLElBQUksQ0FBUSxRQUFRLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUc7a0JBQ3JDLEdBQUcsR0FBRyxLQUFLLEVBQUUsUUFBUSxDQUFDLE9BQU8sRUFBRTtnQkFDakMsUUFBUSxFQUFFLENBQUM7Z0JBQ1gsSUFBSSxFQUFFLEtBQUs7Z0JBQ1gsTUFBTTtnQkFDTixRQUFRO2FBQ1QsRUFBRSxpQkFBaUIsQ0FBQyxDQUFDLENBQUMseUNBQXlDO1FBQ2xFLE9BQU87SUFDVCxDQUFDO0lBQ0QsWUFBWTtJQUVaLGFBQWE7SUFDYjs7Ozs7O09BTUc7SUFDSyxHQUFHLENBQUMsUUFBVyxFQUFFLEtBQWE7UUFDcEMsZUFBZTtRQUVmLHVDQUF1QztRQUN2QyxvQkFBb0I7UUFFcEIsS0FBSztRQUNMLElBQUksS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsS0FBSyxHQUFHO1lBQUUsS0FBSyxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNsRSxJQUFJLENBQUMsR0FBVyxDQUFDLFFBQVEsQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ3RDLElBQUksUUFBUSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsS0FBSyxLQUFLLENBQUMsRUFBRTtZQUNwQyxNQUFNLGFBQWtCLFFBQVEsc0NBQXNDLEtBQUssRUFBRSxDQUFDO1NBQy9FO1FBQ0QsSUFBSSxTQUFTLEdBQVcsUUFBUSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUM7UUFDckQsSUFBSSxRQUFRLEdBQUcsS0FBSyxDQUFDO1FBQ3JCLEtBQUssR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsS0FBSyxFQUFFLFNBQVMsQ0FBQyxDQUFDO1FBRWpELElBQUksUUFBUSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLEtBQUssS0FBSyxDQUFDLEVBQUU7WUFDbEQsbURBQW1EO1lBQ25ELE1BQU0sVUFBVSxLQUFLLCtCQUErQixRQUFRLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsR0FBRyxDQUFDO1NBQ2xGO1FBRUQsSUFBSSxHQUFHLEdBQWdCLFFBQVEsQ0FBQyxTQUFTLENBQVMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUV2RixVQUFVO1FBQ1Ysd0JBQXdCO1FBQ3hCLGtCQUFrQjtRQUVsQixLQUFLO1FBQ0wsSUFBSSxRQUFRLEtBQUssS0FBSyxFQUFFO1lBQ3RCLElBQUksT0FBTyxHQUFHLFFBQVEsQ0FBQyxTQUFTLENBQVMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQztZQUNwRSxtRUFBbUU7WUFDbkUsNEJBQTRCO1lBQzVCLDhCQUE4QjtZQUM5QixHQUFHLENBQUMsZUFBZSxHQUFHLEdBQUcsT0FBTyxJQUFJLFFBQVEsRUFBRSxDQUFDO1NBQ2hEO2FBQU07WUFDTCxHQUFHLENBQUMsZUFBZSxHQUFHLEtBQUssQ0FBQyxDQUFDO1NBQzlCO1FBQUEsQ0FBQztRQUVGLGtEQUFrRDtRQUNsRCxPQUFPLEdBQUcsQ0FBQztJQUNiLENBQUM7O0FBbFBnQixzQkFBYSxHQUFHLElBQUksT0FBTyxFQUF1QixDQUFDO0FBQ25ELHVCQUFjLEdBQUcsSUFBSSxPQUFPLEVBQTRCLENBQUM7QUFRNUQsdUJBQWMsR0FBWSxJQUFJLENBQUM7QUErQzlCLGlCQUFRLEdBQUcsSUFBSSxRQUFRLEVBQW9CLENBQUM7QUFDNUMsa0JBQVMsR0FBRyxFQUFFLENBQUM7QUFRZixnQkFBTyxHQUFnQixJQUFJLFdBQVcsRUFBRSxDQUFDO0FBd0R4RCxZQUFZO0FBRUUsZ0JBQU8sR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDO0FBOEgxQyxrQ0FBa0M7QUFDbEMsY0FBYztBQUNkLFlBQVk7QUFDWixpQkFBaUI7QUFDakIsZ0JBQWdCO0FBQ2hCLG9CQUFvQjtBQUNwQixPQUFPO0FBQ1AsWUFBWSIsInNvdXJjZXNDb250ZW50IjpbIi8vI3JlZ2lvbiBpbXBvcnRzXG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBMb2csIExldmVsIH0gZnJvbSAnbmcyLWxvZ2dlci93ZWJzcWwnO1xuY29uc3QgbG9nID0gTG9nLmNyZWF0ZSgncmVzb3VjZS1zZXJ2aWNlJyxcbiAgTGV2ZWwuX19OT1RISU5HXG4pXG5cbmltcG9ydCB7IFJlc3QgfSBmcm9tICcuL3Jlc3QuY2xhc3MnO1xuaW1wb3J0IHsgUmVzdFJlcXVlc3QgfSBmcm9tICcuL3Jlc3QtcmVxdWVzdCc7XG5pbXBvcnQgeyBSZXN0SGVhZGVycyB9IGZyb20gJy4vcmVzdC1oZWFkZXJzJztcbmltcG9ydCB7IENvb2tpZSB9IGZyb20gJy4vY29va2llJztcbmltcG9ydCB7IE1hcHBpbmcgfSBmcm9tICcuL21hcHBpbmcnO1xuaW1wb3J0IHsgTW9kZWxzIH0gZnJvbSAnLi9tb2RlbHMnO1xuaW1wb3J0IHsgaW50ZXJwb2xhdGVQYXJhbXNUb1VybCwgaXNWYWxpZCwgY29udGFpbnNNb2RlbHMsIGdldE1vZGVscyB9IGZyb20gJy4vcGFyYW1zJztcbmltcG9ydCB7IENpcmMgfSBmcm9tICdqc29uMTAvd2Vic3FsJztcbmltcG9ydCB7IEhlbHBlcnMgfSBmcm9tICd0bnAtY29yZS93ZWJzcWwnXG5pbXBvcnQgeyBDT05URU5UX1RZUEUgfSBmcm9tICcuL2NvbnRlbnQtdHlwZSc7XG4vLyNlbmRyZWdpb25cblxuZGVjbGFyZSBjb25zdCBnbG9iYWw6IGFueTtcblxuXG5leHBvcnQgY2xhc3MgUmVzb3VyY2U8RSwgVCwgVEE+IHtcbiAgcHJvdGVjdGVkIHN0YXRpYyBfbGlzdGVuRXJyb3JzID0gbmV3IFN1YmplY3Q8TW9kZWxzLkJhY2tlbmRFcnJvcj4oKTtcbiAgcHJvdGVjdGVkIHN0YXRpYyBfbGlzdGVuU3VjY2VzcyA9IG5ldyBTdWJqZWN0PE1vZGVscy5IdHRwUmVzcG9uc2U8YW55Pj4oKTtcbiAgcHVibGljIHN0YXRpYyBnZXQgbGlzdGVuRXJyb3JzKCkge1xuICAgIHJldHVybiB0aGlzLl9saXN0ZW5FcnJvcnMuYXNPYnNlcnZhYmxlKCk7XG4gIH1cblxuICBwdWJsaWMgc3RhdGljIGdldCBsaXN0ZW5TdWNjZXNzT3BlcmF0aW9ucygpIHtcbiAgICByZXR1cm4gdGhpcy5fbGlzdGVuU3VjY2Vzcy5hc09ic2VydmFibGUoKTtcbiAgfVxuICBwdWJsaWMgc3RhdGljIGVuYWJsZVdhcm5pbmdzOiBib29sZWFuID0gdHJ1ZTtcblxuICAvLyNyZWdpb24gcHJpdmF0ZSBtdGhvZHMgYW5kIGZpZWxkc1xuICBwcml2YXRlIGdldFpvbmUoKSB7XG4gICAgY29uc3QgaXNOb2RlID0gKHR5cGVvZiB3aW5kb3cgPT09ICd1bmRlZmluZWQnKVxuICAgIGlmIChpc05vZGUpIHsgcmV0dXJuIH07XG4gICAgY29uc3QgbmcgPSB3aW5kb3dbJ25nJ107XG4gICAgY29uc3QgZ2V0QWxsQW5ndWxhclJvb3RFbGVtZW50cyA9IHdpbmRvd1snZ2V0QWxsQW5ndWxhclJvb3RFbGVtZW50cyddO1xuICAgIGlmICghbmcgfHwgIWdldEFsbEFuZ3VsYXJSb290RWxlbWVudHMpIHsgcmV0dXJuOyB9XG4gICAgY29uc3QgcHJvYmUgPSBuZy5wcm9iZTtcbiAgICBjb25zdCBjb3JlVG9rZW5zID0gbmcuY29yZVRva2VucztcbiAgICBpZiAoIWNvcmVUb2tlbnMgfHwgIWNvcmVUb2tlbnMuTmdab25lKSB7IHJldHVybjsgfVxuICAgIGNvbnN0IHpvbmVDbGFzcyA9IGNvcmVUb2tlbnMuTmdab25lO1xuICAgIGlmICghcHJvYmUgfHwgdHlwZW9mIHByb2JlICE9PSAnZnVuY3Rpb24nIHx8ICFnZXRBbGxBbmd1bGFyUm9vdEVsZW1lbnRzKSB7IHJldHVybjsgfVxuICAgIGNvbnN0IGFuZ3VsYXJFbGVtZW50czogYW55W10gPSBnZXRBbGxBbmd1bGFyUm9vdEVsZW1lbnRzKCk7XG4gICAgaWYgKCFBcnJheS5pc0FycmF5KGFuZ3VsYXJFbGVtZW50cykgfHwgYW5ndWxhckVsZW1lbnRzLmxlbmd0aCA9PT0gMCkgeyByZXR1cm47IH1cbiAgICBjb25zdCByb290RWxlbWVudCA9IG5nLnByb2JlKGFuZ3VsYXJFbGVtZW50c1swXSk7XG4gICAgaWYgKCFyb290RWxlbWVudCkgeyByZXR1cm47IH1cbiAgICBjb25zdCBpbmplY3RvciA9IHJvb3RFbGVtZW50LmluamVjdG9yO1xuICAgIGlmICghaW5qZWN0b3IgfHwgIWluamVjdG9yLmdldCB8fCB0eXBlb2YgaW5qZWN0b3IuZ2V0ICE9PSAnZnVuY3Rpb24nKSB7IHJldHVybjsgfVxuICAgIGNvbnN0IHpvbmUgPSBpbmplY3Rvci5nZXQoem9uZUNsYXNzKVxuICAgIHJldHVybiB6b25lO1xuICB9XG5cblxuICBwdWJsaWMgc3RhdGljIGluaXRBbmd1bGFyTmdab25lKHpvbmUpIHtcbiAgICBSZXN0UmVxdWVzdC56b25lID0gem9uZTtcbiAgfVxuXG4gIHByaXZhdGUgY2hlY2tOZXN0ZWRNb2RlbHMobW9kZWw6IHN0cmluZywgYWxsTW9kZWxzOiBPYmplY3QpIHtcbiAgICAvLyBpZiAobW9kZWwuaW5kZXhPZignLycpICE9PSAtMSkgeyAvL1RPRE8gbWFrZSB0aGlzIGJldHRlciwgYmVjb3VzZSBub3cgSSB1bmVjZXNhcnkgY2hlY2tpbmcgc2hpdFxuICAgIGZvciAobGV0IHAgaW4gYWxsTW9kZWxzKSB7XG4gICAgICBpZiAoYWxsTW9kZWxzLmhhc093blByb3BlcnR5KHApKSB7XG4gICAgICAgIGxldCBtID0gYWxsTW9kZWxzW3BdO1xuICAgICAgICBpZiAoaXNWYWxpZChwKSkge1xuICAgICAgICAgIGxldCB1cmxNb2RlbHMgPSBnZXRNb2RlbHMocCk7XG4gICAgICAgICAgaWYgKGNvbnRhaW5zTW9kZWxzKG1vZGVsLCB1cmxNb2RlbHMpKSB7XG4gICAgICAgICAgICBtb2RlbCA9IHA7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgLy8gfVxuICAgIHJldHVybiBtb2RlbDtcbiAgfVxuXG4gIHByaXZhdGUgc3RhdGljIGluc3RhbmNlID0gbmV3IFJlc291cmNlPHN0cmluZywgYW55LCBhbnk+KCk7XG4gIHByaXZhdGUgc3RhdGljIGVuZHBvaW50cyA9IHt9O1xuICBwdWJsaWMgc3RhdGljIGdldE1vZGVsKGVuZHBvaW50OiBzdHJpbmcsIG1vZGVsOiBzdHJpbmcpOiBSZXN0PGFueT4ge1xuICAgIG1vZGVsID0gUmVzb3VyY2UucHJlcGFyZU1vZGVsKG1vZGVsKTtcbiAgICBjb25zdCBlID0gUmVzb3VyY2UuZW5kcG9pbnRzW2VuZHBvaW50XTtcbiAgICBpZiAoIWUpIHsgcmV0dXJuIHZvaWQgMDsgfVxuICAgIGNvbnN0IHIgPSBSZXNvdXJjZS5lbmRwb2ludHNbZW5kcG9pbnRdLm1vZGVsc1ttb2RlbF07XG4gICAgcmV0dXJuIFJlc291cmNlLmVuZHBvaW50c1tlbmRwb2ludF0ubW9kZWxzW21vZGVsXTtcbiAgfVxuICBwcml2YXRlIHN0YXRpYyByZXF1ZXN0OiBSZXN0UmVxdWVzdCA9IG5ldyBSZXN0UmVxdWVzdCgpO1xuICAvLyNlbmRyZWdpb25cblxuXG4gIC8vI3JlZ2lvbiBjcmVhdGVcbiAgcHVibGljIHN0YXRpYyBjcmVhdGU8QSwgVEEgPSBBW10+KFxuICAgIGU6IHN0cmluZyxcbiAgICBtb2RlbD86IHN0cmluZyxcbiAgICBlbnRpdHlNYXBwaW5nPzogTWFwcGluZy5NYXBwaW5nLFxuICAgIGNpcmN1bGFyPzogQ2lyY1tdLFxuICAgIGN1c3RvbUNvbnRlbnRUeXBlPzogUmVzdEhlYWRlcnMsXG4gICk6IE1vZGVscy5SZXNvdXJjZU1vZGVsPEEsIFRBPiB7XG4gICAgY29uc3QgYmFkUmVzdFJlZ0VYID0gbmV3IFJlZ0V4cCgnKChcXC86KVthLXpdKykrJywgJ2cnKTtcbiAgICBjb25zdCBtYXRjaEFyciA9IG1vZGVsLm1hdGNoKGJhZFJlc3RSZWdFWCkgfHwgW107XG4gICAgY29uc3QgYmFkTW9kZWxzTmV4dFRvRWFjaE90aGVyID0gbWF0Y2hBcnIuam9pbigpO1xuICAgIGNvbnN0IGF0bGVhczJEb3VibGVEb3RzID0gKChiYWRNb2RlbHNOZXh0VG9FYWNoT3RoZXIubWF0Y2gobmV3IFJlZ0V4cCgnOicsICdnJykpIHx8IFtdKS5sZW5ndGggPj0gMik7XG4gICAgaWYgKGF0bGVhczJEb3VibGVEb3RzICYmIG1vZGVsLnNlYXJjaChiYWRNb2RlbHNOZXh0VG9FYWNoT3RoZXIpICE9PSAtMSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBcblxuQmFkIHJlc3QgbW9kZWw6ICR7bW9kZWx9XG5cbkRvIG5vdCBjcmVhdGUgcmVzdCBtb2RlbHMgbGlrZSB0aGlzOiAgICAvYm9vay9hdXRob3IvOmJvb2tpZC86YXV0aG9yaWRcbkluc3RlYWQgdXNlIG5lc3RlZCBhcHByb2FjaDogICAgICAgICAgICAvYm9vay86Ym9va2lkL2F1dGhvci86YXV0aG9yaWRcbiAgICAgICAgICAgIGApXG4gICAgfTtcbiAgICBSZXNvdXJjZS5tYXAoZSwgZSk7XG4gICAgUmVzb3VyY2UuaW5zdGFuY2UuYWRkKGUsIG1vZGVsID8gbW9kZWwgOiAnJywgZW50aXR5TWFwcGluZywgY2lyY3VsYXIsIGN1c3RvbUNvbnRlbnRUeXBlKTtcbiAgICAvLyBpZiAobW9kZWwuY2hhckF0KG1vZGVsLmxlbmd0aCAtIDEpICE9PSAnLycpIG1vZGVsID0gYCR7bW9kZWx9L2A7XG4gICAgcmV0dXJuIHtcbiAgICAgIG1vZGVsOiAocGFyYW1zPzogT2JqZWN0KSA9PiBSZXNvdXJjZS5pbnN0YW5jZS5hcGkoXG4gICAgICAgIGUsXG4gICAgICAgIGludGVycG9sYXRlUGFyYW1zVG9VcmwocGFyYW1zLCBtb2RlbClcbiAgICAgICksXG4gICAgICByZXBsYXk6IChtZXRob2Q6IE1vZGVscy5IdHRwTWV0aG9kKSA9PiB7XG4gICAgICAgIFJlc291cmNlLmdldE1vZGVsKGUsIG1vZGVsKS5yZXBsYXkobWV0aG9kKTtcbiAgICAgIH0sXG4gICAgICBnZXQgaGVhZGVycygpIHtcbiAgICAgICAgcmV0dXJuIFJlc291cmNlLmdldE1vZGVsKGUsIG1vZGVsKS5oZWFkZXJzO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICAvLyNlbmRyZWdpb25cblxuICAvLyNyZWdpb24gcmVzZXRcbiAgcHVibGljIHN0YXRpYyByZXNldCgpIHtcbiAgICBSZXNvdXJjZS5lbmRwb2ludHMgPSB7fTtcbiAgfVxuICAvLyNlbmRyZWdpb25cblxuICAvLyNyZWdpb24gY29uc3RydWN0b3JcbiAgcHJpdmF0ZSBjb25zdHJ1Y3RvcigpIHtcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIGNvbnN0IHpvbmUgPSB0aGlzLmdldFpvbmUoKTtcbiAgICAgIGlmICghUmVzdFJlcXVlc3Quem9uZSkgeyBSZXN0UmVxdWVzdC56b25lID0gem9uZSB9O1xuICAgIH0pXG4gIH1cbiAgLy8jZW5kcmVnaW9uXG5cbiAgcHVibGljIHN0YXRpYyBDb29raWVzID0gQ29va2llLkluc3RhbmNlO1xuXG4gIC8vI3JlZ2lvbiBtYXBcbiAgcHJpdmF0ZSBzdGF0aWMgbWFwKGVuZHBvaW50OiBzdHJpbmcsIHVybDogc3RyaW5nKTogYm9vbGVhbiB7XG5cbiAgICBsb2cuaSgndXJsJywgdXJsKVxuICAgIGxldCByZWdleCA9IC8oaHR0cHxodHRwcyk6XFwvXFwvKFxcdys6ezAsMX1cXHcqKT8oXFxTKykoOlswLTldKyk/KFxcL3xcXC8oW1xcdyMhOi4/Kz0mJSFcXC1cXC9dKSk/LztcbiAgICBsZXQgZSA9IGVuZHBvaW50O1xuICAgIGlmICghcmVnZXgudGVzdCh1cmwpKSB7XG4gICAgICB0aHJvdyBgVXJsIGFkZHJlc3MgaXMgbm90IGNvcnJlY3Q6ICR7dXJsfWA7XG4gICAgfVxuICAgIGlmICh1cmwuY2hhckF0KHVybC5sZW5ndGggLSAxKSA9PT0gJy8nKSB1cmwgPSB1cmwuc2xpY2UoMCwgdXJsLmxlbmd0aCAtIDEpO1xuICAgIGxvZy5pKCd1cmwgYWZ0ZXInLCB1cmwpXG4gICAgaWYgKFJlc291cmNlLmVuZHBvaW50c1tlXSAhPT0gdm9pZCAwKSB7XG4gICAgICBIZWxwZXJzLmxvZygnQ2Fubm90IHVzZSBtYXAgZnVuY3Rpb24gYXQgdGhlIHNhbWUgQVBJIGVuZHBvaW50IGFnYWluICgnXG4gICAgICAgICsgUmVzb3VyY2UuZW5kcG9pbnRzW2VdLnVybCArICcpJyk7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIFJlc291cmNlLmVuZHBvaW50c1tlXSA9IHtcbiAgICAgIHVybDogdXJsLFxuICAgICAgbW9kZWxzOiB7fSxcbiAgICAgIGVudGl0eTogbnVsbFxuICAgIH07XG4gICAgbG9nLmkoJ2VucG9pbnRzJywgUmVzb3VyY2UuZW5kcG9pbnRzKVxuICAgIHJldHVybiB0cnVlO1xuICB9XG4gIC8vI2VuZHJlZ2lvblxuXG4gIHByaXZhdGUgc3RhdGljIHByZXBhcmVNb2RlbChtb2RlbCkge1xuICAgIGlmIChtb2RlbC5jaGFyQXQobW9kZWwubGVuZ3RoIC0gMSkgPT09ICcvJykgbW9kZWwgPSBtb2RlbC5zbGljZSgwLCBtb2RlbC5sZW5ndGggLSAxKTtcbiAgICBpZiAobW9kZWwuY2hhckF0KDApID09PSAnLycpIG1vZGVsID0gbW9kZWwuc2xpY2UoMSwgbW9kZWwubGVuZ3RoKTtcbiAgICByZXR1cm4gbW9kZWw7XG4gIH1cblxuXG4gIC8vI3JlZ2lvbiBhZGRcbiAgLyoqXG4gICAqIEFuZCBlbmlwb2ludCB0byBhcHBsaWNhdGlvblxuICAgKlxuICAgKiBAcGFyYW0ge0V9IGVuZHBvaW50XG4gICAqIEBwYXJhbSB7c3RyaW5nfSBtb2RlbFxuICAgKiBAcmV0dXJucyB7Ym9vbGVhbn1cbiAgICovXG4gIHByaXZhdGUgYWRkKGVuZHBvaW50OiBFLCBtb2RlbDogc3RyaW5nLCBlbnRpdHk6IE1hcHBpbmcuTWFwcGluZywgY2lyY3VsYXI/OiBDaXJjW10sIGN1c3RvbUNvbnRlbnRUeXBlPzogUmVzdEhlYWRlcnMpIHtcbiAgICBsb2cuaShgSSBhbSBtYXBpbmcgJHttb2RlbH0gb24gJHs8YW55PmVuZHBvaW50fWApO1xuICAgIG1vZGVsID0gUmVzb3VyY2UucHJlcGFyZU1vZGVsKG1vZGVsKTtcblxuICAgIGxldCBlOiBzdHJpbmc7XG4gICAgZSA9IDxzdHJpbmc+KGVuZHBvaW50KS50b1N0cmluZygpO1xuXG4gICAgaWYgKFJlc291cmNlLmVuZHBvaW50c1tlXSA9PT0gdm9pZCAwKSB7XG4gICAgICBjb25zb2xlLmVycm9yKCdFbmRwb2ludCBpcyBub3QgbWFwcGVkICEgQ2Fubm90IGFkZCBtb2RlbCAnICsgbW9kZWwpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAoUmVzb3VyY2UuZW5kcG9pbnRzW2VdLm1vZGVsc1ttb2RlbF0gIT09IHZvaWQgMCkge1xuICAgICAgaWYgKFJlc291cmNlLmVuYWJsZVdhcm5pbmdzKSBjb25zb2xlLndhcm4oYE1vZGVsICcke21vZGVsfScgaXMgYWxyZWFkeSBkZWZpbmVkIGluIGVuZHBvaW50OiBgXG4gICAgICAgICsgUmVzb3VyY2UuZW5kcG9pbnRzW2VdLnVybCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIFJlc291cmNlLmVuZHBvaW50c1tlXS5tb2RlbHNbbW9kZWxdID1cbiAgICAgIG5ldyBSZXN0PFQsIFRBPihSZXNvdXJjZS5lbmRwb2ludHNbZV0udXJsXG4gICAgICAgICsgJy8nICsgbW9kZWwsIFJlc291cmNlLnJlcXVlc3QsIHtcbiAgICAgICAgZW5kcG9pbnQ6IGUsXG4gICAgICAgIHBhdGg6IG1vZGVsLFxuICAgICAgICBlbnRpdHksXG4gICAgICAgIGNpcmN1bGFyLFxuICAgICAgfSwgY3VzdG9tQ29udGVudFR5cGUpOyAvLyBUT0RPIHB1dCBjdXN0b20gY29udGVudCB0eXBlIGluIG1ldGEgP1xuICAgIHJldHVybjtcbiAgfVxuICAvLyNlbmRyZWdpb25cblxuICAvLyNyZWdpb24gYXBpXG4gIC8qKlxuICAgKiBBY2Nlc3MgYXBpIHRocm91Z2h0IGVuZHBvaW50XG4gICAqXG4gICAqIEBwYXJhbSB7RX0gZW5kcG9pbnRcbiAgICogQHBhcmFtIHtzdHJpbmd9IG1vZGVsXG4gICAqIEByZXR1cm5zIHtSZXN0PFQsIFRBPn1cbiAgICovXG4gIHByaXZhdGUgYXBpKGVuZHBvaW50OiBFLCBtb2RlbDogc3RyaW5nKTogUmVzdDxULCBUQT4ge1xuICAgIC8vIGxvZy5pKGBbYXBpXVxuXG4gICAgLy8gY3JlYXRpbmcgZm9yIGVuZHBvaW50OiBcIiR7ZW5kcG9pbnR9XCJcbiAgICAvLyBtb2RlbDogXCIke21vZGVsfVwiXG5cbiAgICAvLyBgKVxuICAgIGlmIChtb2RlbC5jaGFyQXQoMCkgPT09ICcvJykgbW9kZWwgPSBtb2RlbC5zbGljZSgxLCBtb2RlbC5sZW5ndGgpO1xuICAgIGxldCBlID0gPHN0cmluZz4oZW5kcG9pbnQpLnRvU3RyaW5nKCk7XG4gICAgaWYgKFJlc291cmNlLmVuZHBvaW50c1tlXSA9PT0gdm9pZCAwKSB7XG4gICAgICB0aHJvdyBgRW5kcG9pbnQ6ICR7PGFueT5lbmRwb2ludH0gaXMgbm90IG1hcHBlZCAhIENhbm5vdCBhZGQgbW9kZWw6ICR7bW9kZWx9YDtcbiAgICB9XG4gICAgbGV0IGFsbE1vZGVsczogT2JqZWN0ID0gUmVzb3VyY2UuZW5kcG9pbnRzW2VdLm1vZGVscztcbiAgICBsZXQgb3JnTW9kZWwgPSBtb2RlbDtcbiAgICBtb2RlbCA9IHRoaXMuY2hlY2tOZXN0ZWRNb2RlbHMobW9kZWwsIGFsbE1vZGVscyk7XG5cbiAgICBpZiAoUmVzb3VyY2UuZW5kcG9pbnRzW2VdLm1vZGVsc1ttb2RlbF0gPT09IHZvaWQgMCkge1xuICAgICAgLy8gbG9nLmQoJ1Jlc291cmNlLmVuZHBvaW50cycsIFJlc291cmNlLmVuZHBvaW50cyk7XG4gICAgICB0aHJvdyBgTW9kZWwgJyR7bW9kZWx9JyBpcyB1bmRlZmluZWQgaW4gZW5kcG9pbnQ6ICR7UmVzb3VyY2UuZW5kcG9pbnRzW2VdLnVybH0gYDtcbiAgICB9XG5cbiAgICBsZXQgcmVzOiBSZXN0PFQsIFRBPiA9IFJlc291cmNlLmVuZHBvaW50c1s8c3RyaW5nPihlbmRwb2ludCkudG9TdHJpbmcoKV0ubW9kZWxzW21vZGVsXTtcblxuICAgIC8vIGxvZy5kKGBcbiAgICAvLyBvcmdNb2RlbDogJHtvcmdNb2RlbH1cbiAgICAvLyBtb2RlbDogJHttb2RlbH1cblxuICAgIC8vIGApXG4gICAgaWYgKG9yZ01vZGVsICE9PSBtb2RlbCkge1xuICAgICAgbGV0IGJhc2VVcmwgPSBSZXNvdXJjZS5lbmRwb2ludHNbPHN0cmluZz4oZW5kcG9pbnQpLnRvU3RyaW5nKCldLnVybDtcbiAgICAgIC8vIGxvZy5kKCdiYXNlJywgUmVzb3VyY2UuZW5kcG9pbnRzWzxzdHJpbmc+KGVuZHBvaW50KS50b1N0cmluZygpXSlcbiAgICAgIC8vIGxvZy5kKCdiYXNlVXJsJywgYmFzZVVybClcbiAgICAgIC8vIGxvZy5kKCdvcmdNb2RlbCcsIG9yZ01vZGVsKVxuICAgICAgcmVzLl9fcmVzdF9lbmRwb2ludCA9IGAke2Jhc2VVcmx9LyR7b3JnTW9kZWx9YDtcbiAgICB9IGVsc2Uge1xuICAgICAgcmVzLl9fcmVzdF9lbmRwb2ludCA9IHZvaWQgMDtcbiAgICB9O1xuXG4gICAgLy8gbG9nLmkoYFJlc291cmNlLmVuZHBvaW50c2AsIFJlc291cmNlLmVuZHBvaW50cylcbiAgICByZXR1cm4gcmVzO1xuICB9XG4gIC8vI2VuZHJlZ2lvblxuXG59XG5cblxuXG4vLyBjb25zdCByZXMgPSBSZXNvdXJjZS5jcmVhdGUoJycpXG4vLyByZXMubW9kZWwoKVxuLy8gICAubW9jayh7XG4vLyAgICAgY29kZTogNTAwLFxuLy8gICAgIGRhdGE6IHt9LFxuLy8gICAgIGlzQXJyYXk6IHRydWVcbi8vICAgfSlcbi8vICAgLmFycmF5LiJdfQ==
|
|
218
|
+
;
|
|
219
|
+
({}); // @--end-of-file-for-module=ng2-rest tmp-src-bundle-websql/lib/resource.service.ts
|
|
220
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzb3VyY2Uuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3RtcC1saWJzLWZvci1idW5kbGUtd2Vic3FsL25nMi1yZXN0L3Byb2plY3RzL25nMi1yZXN0L3NyYy9saWIvcmVzb3VyY2Uuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9CLE9BQU8sRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDL0MsTUFBTSxHQUFHLEdBQUcsR0FBRyxDQUFDLE1BQU0sQ0FBQyxpQkFBaUIsRUFDdEMsS0FBSyxDQUFDLFNBQVMsQ0FDaEIsQ0FBQTtBQUVELE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDcEMsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTdDLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFHbEMsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE9BQU8sRUFBRSxjQUFjLEVBQUUsU0FBUyxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBRXRGLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQTtBQU96QyxNQUFNLE9BQU8sUUFBUTtJQW9IbkI7UUFDRSxVQUFVLENBQUMsR0FBRyxFQUFFO1lBQ2QsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQzVCLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxFQUFFO2dCQUFFLFdBQVcsQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFBO2FBQUU7WUFBQSxDQUFDO1FBQ3JELENBQUMsQ0FBQyxDQUFBO0lBQ0osQ0FBQztJQXRITSxNQUFNLEtBQUssWUFBWTtRQUM1QixPQUFPLElBQUksQ0FBQyxhQUFhLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDM0MsQ0FBQztJQUVN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QUErQzlCLGlCQUFRLEdBQUcsSUFBSSxRQUFRLEVBQW9CLENBQUM7QUFDNUMsa0JBQVMsR0FBRyxFQUFFLENBQUM7QUFRZixnQkFBTyxHQUFnQixJQUFJLFdBQVcsRUFBRSxDQUFDO0FBMEQxQyxnQkFBTyxHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUM7QUFzSXpDLENBQUM7QUFBQSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsbUZBQW1GIiwic291cmNlc0NvbnRlbnQiOlsiXG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBMb2csIExldmVsIH0gZnJvbSAnbmcyLWxvZ2dlci93ZWJzcWwnO1xuY29uc3QgbG9nID0gTG9nLmNyZWF0ZSgncmVzb3VjZS1zZXJ2aWNlJyxcbiAgTGV2ZWwuX19OT1RISU5HXG4pXG5cbmltcG9ydCB7IFJlc3QgfSBmcm9tICcuL3Jlc3QuY2xhc3MnO1xuaW1wb3J0IHsgUmVzdFJlcXVlc3QgfSBmcm9tICcuL3Jlc3QtcmVxdWVzdCc7XG5pbXBvcnQgeyBSZXN0SGVhZGVycyB9IGZyb20gJy4vcmVzdC1oZWFkZXJzJztcbmltcG9ydCB7IENvb2tpZSB9IGZyb20gJy4vY29va2llJztcbmltcG9ydCB7IE1hcHBpbmcgfSBmcm9tICcuL21hcHBpbmcnO1xuaW1wb3J0IHsgTW9kZWxzIH0gZnJvbSAnLi9tb2RlbHMnO1xuaW1wb3J0IHsgaW50ZXJwb2xhdGVQYXJhbXNUb1VybCwgaXNWYWxpZCwgY29udGFpbnNNb2RlbHMsIGdldE1vZGVscyB9IGZyb20gJy4vcGFyYW1zJztcbmltcG9ydCB7IENpcmMgfSBmcm9tICdqc29uMTAvd2Vic3FsJztcbmltcG9ydCB7IEhlbHBlcnMgfSBmcm9tICd0bnAtY29yZS93ZWJzcWwnXG5pbXBvcnQgeyBDT05URU5UX1RZUEUgfSBmcm9tICcuL2NvbnRlbnQtdHlwZSc7XG5cblxuZGVjbGFyZSBjb25zdCBnbG9iYWw6IGFueTtcblxuXG5leHBvcnQgY2xhc3MgUmVzb3VyY2U8RSwgVCwgVEE+IHtcbiAgcHJvdGVjdGVkIHN0YXRpYyBfbGlzdGVuRXJyb3JzID0gbmV3IFN1YmplY3Q8TW9kZWxzLkJhY2tlbmRFcnJvcj4oKTtcbiAgcHJvdGVjdGVkIHN0YXRpYyBfbGlzdGVuU3VjY2VzcyA9IG5ldyBTdWJqZWN0PE1vZGVscy5IdHRwUmVzcG9uc2U8YW55Pj4oKTtcbiAgcHVibGljIHN0YXRpYyBnZXQgbGlzdGVuRXJyb3JzKCkge1xuICAgIHJldHVybiB0aGlzLl9saXN0ZW5FcnJvcnMuYXNPYnNlcnZhYmxlKCk7XG4gIH1cblxuICBwdWJsaWMgc3RhdGljIGdldCBsaXN0ZW5TdWNjZXNzT3BlcmF0aW9ucygpIHtcbiAgICByZXR1cm4gdGhpcy5fbGlzdGVuU3VjY2Vzcy5hc09ic2VydmFibGUoKTtcbiAgfVxuICBwdWJsaWMgc3RhdGljIGVuYWJsZVdhcm5pbmdzOiBib29sZWFuID0gdHJ1ZTtcblxuXG4gIHByaXZhdGUgZ2V0Wm9uZSgpIHtcbiAgICBjb25zdCBpc05vZGUgPSAodHlwZW9mIHdpbmRvdyA9PT0gJ3VuZGVmaW5lZCcpXG4gICAgaWYgKGlzTm9kZSkgeyByZXR1cm4gfTtcbiAgICBjb25zdCBuZyA9IHdpbmRvd1snbmcnXTtcbiAgICBjb25zdCBnZXRBbGxBbmd1bGFyUm9vdEVsZW1lbnRzID0gd2luZG93WydnZXRBbGxBbmd1bGFyUm9vdEVsZW1lbnRzJ107XG4gICAgaWYgKCFuZyB8fCAhZ2V0QWxsQW5ndWxhclJvb3RFbGVtZW50cykgeyByZXR1cm47IH1cbiAgICBjb25zdCBwcm9iZSA9IG5nLnByb2JlO1xuICAgIGNvbnN0IGNvcmVUb2tlbnMgPSBuZy5jb3JlVG9rZW5zO1xuICAgIGlmICghY29yZVRva2VucyB8fCAhY29yZVRva2Vucy5OZ1pvbmUpIHsgcmV0dXJuOyB9XG4gICAgY29uc3Qgem9uZUNsYXNzID0gY29yZVRva2Vucy5OZ1pvbmU7XG4gICAgaWYgKCFwcm9iZSB8fCB0eXBlb2YgcHJvYmUgIT09ICdmdW5jdGlvbicgfHwgIWdldEFsbEFuZ3VsYXJSb290RWxlbWVudHMpIHsgcmV0dXJuOyB9XG4gICAgY29uc3QgYW5ndWxhckVsZW1lbnRzOiBhbnlbXSA9IGdldEFsbEFuZ3VsYXJSb290RWxlbWVudHMoKTtcbiAgICBpZiAoIUFycmF5LmlzQXJyYXkoYW5ndWxhckVsZW1lbnRzKSB8fCBhbmd1bGFyRWxlbWVudHMubGVuZ3RoID09PSAwKSB7IHJldHVybjsgfVxuICAgIGNvbnN0IHJvb3RFbGVtZW50ID0gbmcucHJvYmUoYW5ndWxhckVsZW1lbnRzWzBdKTtcbiAgICBpZiAoIXJvb3RFbGVtZW50KSB7IHJldHVybjsgfVxuICAgIGNvbnN0IGluamVjdG9yID0gcm9vdEVsZW1lbnQuaW5qZWN0b3I7XG4gICAgaWYgKCFpbmplY3RvciB8fCAhaW5qZWN0b3IuZ2V0IHx8IHR5cGVvZiBpbmplY3Rvci5nZXQgIT09ICdmdW5jdGlvbicpIHsgcmV0dXJuOyB9XG4gICAgY29uc3Qgem9uZSA9IGluamVjdG9yLmdldCh6b25lQ2xhc3MpXG4gICAgcmV0dXJuIHpvbmU7XG4gIH1cblxuXG4gIHB1YmxpYyBzdGF0aWMgaW5pdEFuZ3VsYXJOZ1pvbmUoem9uZSkge1xuICAgIFJlc3RSZXF1ZXN0LnpvbmUgPSB6b25lO1xuICB9XG5cbiAgcHJpdmF0ZSBjaGVja05lc3RlZE1vZGVscyhtb2RlbDogc3RyaW5nLCBhbGxNb2RlbHM6IE9iamVjdCkge1xuXG4gICAgZm9yIChsZXQgcCBpbiBhbGxNb2RlbHMpIHtcbiAgICAgIGlmIChhbGxNb2RlbHMuaGFzT3duUHJvcGVydHkocCkpIHtcbiAgICAgICAgbGV0IG0gPSBhbGxNb2RlbHNbcF07XG4gICAgICAgIGlmIChpc1ZhbGlkKHApKSB7XG4gICAgICAgICAgbGV0IHVybE1vZGVscyA9IGdldE1vZGVscyhwKTtcbiAgICAgICAgICBpZiAoY29udGFpbnNNb2RlbHMobW9kZWwsIHVybE1vZGVscykpIHtcbiAgICAgICAgICAgIG1vZGVsID0gcDtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBtb2RlbDtcbiAgfVxuXG4gIHByaXZhdGUgc3RhdGljIGluc3RhbmNlID0gbmV3IFJlc291cmNlPHN0cmluZywgYW55LCBhbnk+KCk7XG4gIHByaXZhdGUgc3RhdGljIGVuZHBvaW50cyA9IHt9O1xuICBwdWJsaWMgc3RhdGljIGdldE1vZGVsKGVuZHBvaW50OiBzdHJpbmcsIG1vZGVsOiBzdHJpbmcpOiBSZXN0PGFueT4ge1xuICAgIG1vZGVsID0gUmVzb3VyY2UucHJlcGFyZU1vZGVsKG1vZGVsKTtcbiAgICBjb25zdCBlID0gUmVzb3VyY2UuZW5kcG9pbnRzW2VuZHBvaW50XTtcbiAgICBpZiAoIWUpIHsgcmV0dXJuIHZvaWQgMDsgfVxuICAgIGNvbnN0IHIgPSBSZXNvdXJjZS5lbmRwb2ludHNbZW5kcG9pbnRdLm1vZGVsc1ttb2RlbF07XG4gICAgcmV0dXJuIFJlc291cmNlLmVuZHBvaW50c1tlbmRwb2ludF0ubW9kZWxzW21vZGVsXTtcbiAgfVxuICBwcml2YXRlIHN0YXRpYyByZXF1ZXN0OiBSZXN0UmVxdWVzdCA9IG5ldyBSZXN0UmVxdWVzdCgpO1xuXG5cblxuXG4gIHB1YmxpYyBzdGF0aWMgY3JlYXRlPEEsIFRBID0gQVtdPihcbiAgICBlOiBzdHJpbmcsXG4gICAgbW9kZWw/OiBzdHJpbmcsXG4gICAgZW50aXR5TWFwcGluZz86IE1hcHBpbmcuTWFwcGluZyxcbiAgICBjaXJjdWxhcj86IENpcmNbXSxcbiAgICBjdXN0b21Db250ZW50VHlwZT86IFJlc3RIZWFkZXJzLFxuICApOiBNb2RlbHMuUmVzb3VyY2VNb2RlbDxBLCBUQT4ge1xuICAgIGNvbnN0IGJhZFJlc3RSZWdFWCA9IG5ldyBSZWdFeHAoJygoXFwvOilbYS16XSspKycsICdnJyk7XG4gICAgY29uc3QgbWF0Y2hBcnIgPSBtb2RlbC5tYXRjaChiYWRSZXN0UmVnRVgpIHx8IFtdO1xuICAgIGNvbnN0IGJhZE1vZGVsc05leHRUb0VhY2hPdGhlciA9IG1hdGNoQXJyLmpvaW4oKTtcbiAgICBjb25zdCBhdGxlYXMyRG91YmxlRG90cyA9ICgoYmFkTW9kZWxzTmV4dFRvRWFjaE90aGVyLm1hdGNoKG5ldyBSZWdFeHAoJzonLCAnZycpKSB8fCBbXSkubGVuZ3RoID49IDIpO1xuICAgIGlmIChhdGxlYXMyRG91YmxlRG90cyAmJiBtb2RlbC5zZWFyY2goYmFkTW9kZWxzTmV4dFRvRWFjaE90aGVyKSAhPT0gLTEpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgXG5cbkJhZCByZXN0IG1vZGVsOiAke21vZGVsfVxuXG5EbyBub3QgY3JlYXRlIHJlc3QgbW9kZWxzIGxpa2UgdGhpczogICAgL2Jvb2svYXV0aG9yLzpib29raWQvOmF1dGhvcmlkXG5JbnN0ZWFkIHVzZSBuZXN0ZWQgYXBwcm9hY2g6ICAgICAgICAgICAgL2Jvb2svOmJvb2tpZC9hdXRob3IvOmF1dGhvcmlkXG4gICAgICAgICAgICBgKVxuICAgIH07XG4gICAgUmVzb3VyY2UubWFwKGUsIGUpO1xuICAgIFJlc291cmNlLmluc3RhbmNlLmFkZChlLCBtb2RlbCA/IG1vZGVsIDogJycsIGVudGl0eU1hcHBpbmcsIGNpcmN1bGFyLCBjdXN0b21Db250ZW50VHlwZSk7XG5cbiAgICByZXR1cm4ge1xuICAgICAgbW9kZWw6IChwYXJhbXM/OiBPYmplY3QpID0+IFJlc291cmNlLmluc3RhbmNlLmFwaShcbiAgICAgICAgZSxcbiAgICAgICAgaW50ZXJwb2xhdGVQYXJhbXNUb1VybChwYXJhbXMsIG1vZGVsKVxuICAgICAgKSxcbiAgICAgIHJlcGxheTogKG1ldGhvZDogTW9kZWxzLkh0dHBNZXRob2QpID0+IHtcbiAgICAgICAgUmVzb3VyY2UuZ2V0TW9kZWwoZSwgbW9kZWwpLnJlcGxheShtZXRob2QpO1xuICAgICAgfSxcbiAgICAgIGdldCBoZWFkZXJzKCkge1xuICAgICAgICByZXR1cm4gUmVzb3VyY2UuZ2V0TW9kZWwoZSwgbW9kZWwpLmhlYWRlcnM7XG4gICAgICB9XG4gICAgfVxuICB9XG5cblxuXG4gIHB1YmxpYyBzdGF0aWMgcmVzZXQoKSB7XG4gICAgUmVzb3VyY2UuZW5kcG9pbnRzID0ge307XG4gIH1cblxuXG5cbiAgcHJpdmF0ZSBjb25zdHJ1Y3RvcigpIHtcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIGNvbnN0IHpvbmUgPSB0aGlzLmdldFpvbmUoKTtcbiAgICAgIGlmICghUmVzdFJlcXVlc3Quem9uZSkgeyBSZXN0UmVxdWVzdC56b25lID0gem9uZSB9O1xuICAgIH0pXG4gIH1cblxuXG4gIHB1YmxpYyBzdGF0aWMgQ29va2llcyA9IENvb2tpZS5JbnN0YW5jZTtcblxuXG4gIHByaXZhdGUgc3RhdGljIG1hcChlbmRwb2ludDogc3RyaW5nLCB1cmw6IHN0cmluZyk6IGJvb2xlYW4ge1xuXG4gICAgbG9nLmkoJ3VybCcsIHVybClcbiAgICBsZXQgcmVnZXggPSAvKGh0dHB8aHR0cHMpOlxcL1xcLyhcXHcrOnswLDF9XFx3Kik/KFxcUyspKDpbMC05XSspPyhcXC98XFwvKFtcXHcjITouPys9JiUhXFwtXFwvXSkpPy87XG4gICAgbGV0IGUgPSBlbmRwb2ludDtcbiAgICBpZiAoIXJlZ2V4LnRlc3QodXJsKSkge1xuICAgICAgdGhyb3cgYFVybCBhZGRyZXNzIGlzIG5vdCBjb3JyZWN0OiAke3VybH1gO1xuICAgIH1cbiAgICBpZiAodXJsLmNoYXJBdCh1cmwubGVuZ3RoIC0gMSkgPT09ICcvJykgdXJsID0gdXJsLnNsaWNlKDAsIHVybC5sZW5ndGggLSAxKTtcbiAgICBsb2cuaSgndXJsIGFmdGVyJywgdXJsKVxuICAgIGlmIChSZXNvdXJjZS5lbmRwb2ludHNbZV0gIT09IHZvaWQgMCkge1xuICAgICAgSGVscGVycy5sb2coJ0Nhbm5vdCB1c2UgbWFwIGZ1bmN0aW9uIGF0IHRoZSBzYW1lIEFQSSBlbmRwb2ludCBhZ2FpbiAoJ1xuICAgICAgICArIFJlc291cmNlLmVuZHBvaW50c1tlXS51cmwgKyAnKScpO1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICBSZXNvdXJjZS5lbmRwb2ludHNbZV0gPSB7XG4gICAgICB1cmw6IHVybCxcbiAgICAgIG1vZGVsczoge30sXG4gICAgICBlbnRpdHk6IG51bGxcbiAgICB9O1xuICAgIGxvZy5pKCdlbnBvaW50cycsIFJlc291cmNlLmVuZHBvaW50cylcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG5cbiAgcHJpdmF0ZSBzdGF0aWMgcHJlcGFyZU1vZGVsKG1vZGVsKSB7XG4gICAgaWYgKG1vZGVsLmNoYXJBdChtb2RlbC5sZW5ndGggLSAxKSA9PT0gJy8nKSBtb2RlbCA9IG1vZGVsLnNsaWNlKDAsIG1vZGVsLmxlbmd0aCAtIDEpO1xuICAgIGlmIChtb2RlbC5jaGFyQXQoMCkgPT09ICcvJykgbW9kZWwgPSBtb2RlbC5zbGljZSgxLCBtb2RlbC5sZW5ndGgpO1xuICAgIHJldHVybiBtb2RlbDtcbiAgfVxuXG5cblxuICAvKipcbiAgICogQW5kIGVuaXBvaW50IHRvIGFwcGxpY2F0aW9uXG4gICAqXG4gICAqIEBwYXJhbSB7RX0gZW5kcG9pbnRcbiAgICogQHBhcmFtIHtzdHJpbmd9IG1vZGVsXG4gICAqIEByZXR1cm5zIHtib29sZWFufVxuICAgKi9cbiAgcHJpdmF0ZSBhZGQoZW5kcG9pbnQ6IEUsIG1vZGVsOiBzdHJpbmcsIGVudGl0eTogTWFwcGluZy5NYXBwaW5nLCBjaXJjdWxhcj86IENpcmNbXSwgY3VzdG9tQ29udGVudFR5cGU/OiBSZXN0SGVhZGVycykge1xuICAgIGxvZy5pKGBJIGFtIG1hcGluZyAke21vZGVsfSBvbiAkezxhbnk+ZW5kcG9pbnR9YCk7XG4gICAgbW9kZWwgPSBSZXNvdXJjZS5wcmVwYXJlTW9kZWwobW9kZWwpO1xuXG4gICAgbGV0IGU6IHN0cmluZztcbiAgICBlID0gPHN0cmluZz4oZW5kcG9pbnQpLnRvU3RyaW5nKCk7XG5cbiAgICBpZiAoUmVzb3VyY2UuZW5kcG9pbnRzW2VdID09PSB2b2lkIDApIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoJ0VuZHBvaW50IGlzIG5vdCBtYXBwZWQgISBDYW5ub3QgYWRkIG1vZGVsICcgKyBtb2RlbCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGlmIChSZXNvdXJjZS5lbmRwb2ludHNbZV0ubW9kZWxzW21vZGVsXSAhPT0gdm9pZCAwKSB7XG4gICAgICBpZiAoUmVzb3VyY2UuZW5hYmxlV2FybmluZ3MpIGNvbnNvbGUud2FybihgTW9kZWwgJyR7bW9kZWx9JyBpcyBhbHJlYWR5IGRlZmluZWQgaW4gZW5kcG9pbnQ6IGBcbiAgICAgICAgKyBSZXNvdXJjZS5lbmRwb2ludHNbZV0udXJsKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgUmVzb3VyY2UuZW5kcG9pbnRzW2VdLm1vZGVsc1ttb2RlbF0gPVxuICAgICAgbmV3IFJlc3Q8VCwgVEE+KFJlc291cmNlLmVuZHBvaW50c1tlXS51cmxcbiAgICAgICAgKyAnLycgKyBtb2RlbCwgUmVzb3VyY2UucmVxdWVzdCwge1xuICAgICAgICBlbmRwb2ludDogZSxcbiAgICAgICAgcGF0aDogbW9kZWwsXG4gICAgICAgIGVudGl0eSxcbiAgICAgICAgY2lyY3VsYXIsXG4gICAgICB9LCBjdXN0b21Db250ZW50VHlwZSk7IC8vIFRPRE8gcHV0IGN1c3RvbSBjb250ZW50IHR5cGUgaW4gbWV0YSA/XG4gICAgcmV0dXJuO1xuICB9XG5cblxuXG4gIC8qKlxuICAgKiBBY2Nlc3MgYXBpIHRocm91Z2h0IGVuZHBvaW50XG4gICAqXG4gICAqIEBwYXJhbSB7RX0gZW5kcG9pbnRcbiAgICogQHBhcmFtIHtzdHJpbmd9IG1vZGVsXG4gICAqIEByZXR1cm5zIHtSZXN0PFQsIFRBPn1cbiAgICovXG4gIHByaXZhdGUgYXBpKGVuZHBvaW50OiBFLCBtb2RlbDogc3RyaW5nKTogUmVzdDxULCBUQT4ge1xuXG5cblxuXG5cblxuICAgIGlmIChtb2RlbC5jaGFyQXQoMCkgPT09ICcvJykgbW9kZWwgPSBtb2RlbC5zbGljZSgxLCBtb2RlbC5sZW5ndGgpO1xuICAgIGxldCBlID0gPHN0cmluZz4oZW5kcG9pbnQpLnRvU3RyaW5nKCk7XG4gICAgaWYgKFJlc291cmNlLmVuZHBvaW50c1tlXSA9PT0gdm9pZCAwKSB7XG4gICAgICB0aHJvdyBgRW5kcG9pbnQ6ICR7PGFueT5lbmRwb2ludH0gaXMgbm90IG1hcHBlZCAhIENhbm5vdCBhZGQgbW9kZWw6ICR7bW9kZWx9YDtcbiAgICB9XG4gICAgbGV0IGFsbE1vZGVsczogT2JqZWN0ID0gUmVzb3VyY2UuZW5kcG9pbnRzW2VdLm1vZGVscztcbiAgICBsZXQgb3JnTW9kZWwgPSBtb2RlbDtcbiAgICBtb2RlbCA9IHRoaXMuY2hlY2tOZXN0ZWRNb2RlbHMobW9kZWwsIGFsbE1vZGVscyk7XG5cbiAgICBpZiAoUmVzb3VyY2UuZW5kcG9pbnRzW2VdLm1vZGVsc1ttb2RlbF0gPT09IHZvaWQgMCkge1xuXG4gICAgICB0aHJvdyBgTW9kZWwgJyR7bW9kZWx9JyBpcyB1bmRlZmluZWQgaW4gZW5kcG9pbnQ6ICR7UmVzb3VyY2UuZW5kcG9pbnRzW2VdLnVybH0gYDtcbiAgICB9XG5cbiAgICBsZXQgcmVzOiBSZXN0PFQsIFRBPiA9IFJlc291cmNlLmVuZHBvaW50c1s8c3RyaW5nPihlbmRwb2ludCkudG9TdHJpbmcoKV0ubW9kZWxzW21vZGVsXTtcblxuXG5cblxuXG5cbiAgICBpZiAob3JnTW9kZWwgIT09IG1vZGVsKSB7XG4gICAgICBsZXQgYmFzZVVybCA9IFJlc291cmNlLmVuZHBvaW50c1s8c3RyaW5nPihlbmRwb2ludCkudG9TdHJpbmcoKV0udXJsO1xuXG5cblxuICAgICAgcmVzLl9fcmVzdF9lbmRwb2ludCA9IGAke2Jhc2VVcmx9LyR7b3JnTW9kZWx9YDtcbiAgICB9IGVsc2Uge1xuICAgICAgcmVzLl9fcmVzdF9lbmRwb2ludCA9IHZvaWQgMDtcbiAgICB9O1xuXG5cbiAgICByZXR1cm4gcmVzO1xuICB9XG5cblxufVxuXG5cblxuXG5cblxuXG5cblxuXG5cbiA7KHt9KTsgLy8gQC0tZW5kLW9mLWZpbGUtZm9yLW1vZHVsZT1uZzItcmVzdCB0bXAtc3JjLWJ1bmRsZS13ZWJzcWwvbGliL3Jlc291cmNlLnNlcnZpY2UudHMiXX0=
|
|
@@ -100,11 +100,9 @@ export class RestHeaders {
|
|
|
100
100
|
/**
|
|
101
101
|
* Returns string of all headers.
|
|
102
102
|
*/
|
|
103
|
-
// TODO(vicb): returns {[name: string]: string[]}
|
|
104
103
|
toJSON() {
|
|
105
104
|
const serialized = {};
|
|
106
105
|
if (!this._headers) {
|
|
107
|
-
// debugger
|
|
108
106
|
}
|
|
109
107
|
this._headers.forEach((values, name) => {
|
|
110
108
|
const split = [];
|
|
@@ -126,4 +124,6 @@ export class RestHeaders {
|
|
|
126
124
|
}
|
|
127
125
|
}
|
|
128
126
|
}
|
|
129
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzdC1oZWFkZXJzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vdG1wLWxpYnMtZm9yLWJ1bmRsZS13ZWJzcWwvbmcyLXJlc3QvcHJvamVjdHMvbmcyLXJlc3Qvc3JjL2xpYi9yZXN0LWhlYWRlcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBS0EsTUFBTSxPQUFPLFdBQVc7SUFjdEIsWUFBb0IsT0FBK0Q7UUFibkYsNENBQTRDO1FBQzVDLGFBQVEsR0FBMEIsSUFBSSxHQUFHLEVBQUUsQ0FBQztRQUM1QyxxREFBcUQ7UUFDckQscUJBQWdCLEdBQXdCLElBQUksR0FBRyxFQUFFLENBQUM7UUFXaEQsSUFBSSxPQUFPLFlBQVksV0FBVyxFQUFFO1lBQ2xDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQyxNQUFnQixFQUFFLElBQVksRUFBRSxFQUFFO2dCQUNqRCxNQUFNLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQztZQUNqRCxDQUFDLENBQUMsQ0FBQztTQUNKO2FBQU07WUFDTCxNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQVksRUFBRSxFQUFFO2dCQUM1QyxNQUFNLE1BQU0sR0FBYSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBUSxDQUFDO2dCQUNqRyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO2dCQUNsQixNQUFNLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLENB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LENBQUM7UUFFSCxPQUFPLFVBQVUsQ0FBQztJQUNwQixDQUFDO0lBRUQ7O09BRUc7SUFDSCxNQUFNLENBQUMsSUFBWTtRQUNqQixPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7SUFDdkUsQ0FBQztJQUVPLHNCQUFzQixDQUFDLElBQVk7UUFDekMsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBRWxDLElBQUksQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxFQUFFO1lBQ3RDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxDQUFDO1NBQ3pDO0lBQ0gsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBCYXNlZCBvbiBIZWFkZXJzIGZyb20gaHR0cHM6Ly9naXRodWIuY29tL2FuZ3VsYXIvYW5ndWxhci9ibG9iL21hc3Rlci9wYWNrYWdlcy9odHRwL3NyYy9oZWFkZXJzLnRzXG4gKi9cbmV4cG9ydCB0eXBlIFJlc3RIZWFkZXJzT3B0aW9ucyA9IFJlc3RIZWFkZXJzIHwgeyBbbmFtZTogc3RyaW5nXTogKHN0cmluZyB8IHN0cmluZ1tdKSB9XG5cbmV4cG9ydCBjbGFzcyBSZXN0SGVhZGVycyB7XG4gIC8qKiBAaW50ZXJuYWwgaGVhZGVyIG5hbWVzIGFyZSBsb3dlciBjYXNlICovXG4gIF9oZWFkZXJzOiBNYXA8c3RyaW5nLCBzdHJpbmdbXT4gPSBuZXcgTWFwKCk7XG4gIC8qKiBAaW50ZXJuYWwgbWFwIGxvd2VyIGNhc2UgbmFtZXMgdG8gYWN0dWFsIG5hbWVzICovXG4gIF9ub3JtYWxpemVkTmFtZXM6IE1hcDxzdHJpbmcsIHN0cmluZz4gPSBuZXcgTWFwKCk7XG5cblxuICBwdWJsaWMgc3RhdGljIGZyb20oaGVhZGVycz86IFJlc3RIZWFkZXJzT3B0aW9ucykge1xuICAgIGlmICghaGVhZGVycykge1xuICAgICAgcmV0dXJuIHZvaWQgMDtcbiAgICB9XG4gICAgcmV0dXJuIG5ldyBSZXN0SGVhZGVycyhoZWFkZXJzKTtcbiAgfVxuXG4gIHByaXZhdGUgY29uc3RydWN0b3IoaGVhZGVycz86IFJlc3RIZWFkZXJzIHwgeyBbbmFtZTogc3RyaW5nXTogKHN0cmluZyB8IHN0cmluZ1tdKSB9KSB7XG4gICAgaWYgKGhlYWRlcnMgaW5zdGFuY2VvZiBSZXN0SGVhZGVycykge1xuICAgICAgaGVhZGVycy5mb3JFYWNoKCh2YWx1ZXM6IHN0cmluZ1tdLCBuYW1lOiBzdHJpbmcpID0+IHtcbiAgICAgICAgdmFsdWVzLmZvckVhY2godmFsdWUgPT4gdGhpcy5zZXQobmFtZSwgdmFsdWUpKTtcbiAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICBPYmplY3Qua2V5cyhoZWFkZXJzKS5mb3JFYWNoKChuYW1lOiBzdHJpbmcpID0+IHtcbiAgICAgICAgY29uc3QgdmFsdWVzOiBzdHJpbmdbXSA9IChBcnJheS5pc0FycmF5KGhlYWRlcnNbbmFtZV0pID8gaGVhZGVyc1tuYW1lXSA6IFtoZWFkZXJzW25hbWVdXSkgYXMgYW55O1xuICAgICAgICB0aGlzLmRlbGV0ZShuYW1lKTtcbiAgICAgICAgdmFsdWVzLmZvckVhY2godmFsdWUgPT4gdGhpcy5zZXQobmFtZSwgdmFsdWUpKTtcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIGEgbmV3IFJlc3RIZWFkZXJzIGluc3RhbmNlIGZyb20gdGhlIGdpdmVuIERPTVN0cmluZyBvZiBSZXNwb25zZSBSZXN0SGVhZGVyc1xuICAgKi9cbiAgc3RhdGljIGZyb21SZXNwb25zZUhlYWRlclN0cmluZyhoZWFkZXJzU3RyaW5nOiBzdHJpbmcpOiBSZXN0SGVhZGVycyB7XG4gICAgY29uc3QgaGVhZGVycyA9IG5ldyBSZXN0SGVhZGVycygpO1xuXG4gICAgaGVhZGVyc1N0cmluZy5zcGxpdCgnXFxuJykuZm9yRWFjaChsaW5lID0+IHtcbiAgICAgIGNvbnN0IGluZGV4ID0gbGluZS5pbmRleE9mKCc6Jyk7XG4gICAgICBpZiAoaW5kZXggPiAwKSB7XG4gICAgICAgIGNvbnN0IG5hbWUgPSBsaW5lLnNsaWNlKDAsIGluZGV4KTtcbiAgICAgICAgY29uc3QgdmFsdWUgPSBsaW5lLnNsaWNlKGluZGV4ICsgMSkudHJpbSgpO1xuICAgICAgICBoZWFkZXJzLnNldChuYW1lLCB2YWx1ZSk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICByZXR1cm4gaGVhZGVycztcbiAgfVxuXG4gIC8qKlxuICAgKiBBcHBlbmRzIGEgaGVhZGVyIHRvIGV4aXN0aW5nIGxpc3Qgb2YgaGVhZGVyIHZhbHVlcyBmb3IgYSBnaXZlbiBoZWFkZXIgbmFtZS5cbiAgICovXG4gIGFwcGVuZChuYW1lOiBzdHJpbmcsIHZhbHVlOiBzdHJpbmcpOiB2b2lkIHtcbiAgICBjb25zdCB2YWx1ZXMgPSB0aGlzLmdldEFsbChuYW1lKTtcblxuICAgIGlmICh2YWx1ZXMgPT09IG51bGwpIHtcbiAgICAgIHRoaXMuc2V0KG5hbWUsIHZhbHVlKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdmFsdWVzLnB1c2godmFsdWUpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBEZWxldGVzIGFsbCBoZWFkZXIgdmFsdWVzIGZvciB0aGUgZ2l2ZW4gbmFtZS5cbiAgICovXG4gIGRlbGV0ZShuYW1lOiBzdHJpbmcpOiB2b2lkIHtcbiAgICBjb25zdCBsY05hbWUgPSBuYW1lLnRvTG93ZXJDYXNlKCk7XG4gICAgdGhpcy5fbm9ybWFsaXplZE5hbWVzLmRlbGV0ZShsY05hbWUpO1xuICAgIHRoaXMuX2hlYWRlcnMuZGVsZXRlKGxjTmFtZSk7XG4gIH1cblxuICBmb3JFYWNoKGZuOiAodmFsdWVzOiBzdHJpbmdbXSwgbmFtZTogc3RyaW5nLCBoZWFkZXJzOiBNYXA8c3RyaW5nLCBzdHJpbmdbXT4pID0+IHZvaWQpOiB2b2lkIHtcbiAgICB0aGlzLl9oZWFkZXJzLmZvckVhY2goXG4gICAgICAodmFsdWVzLCBsY05hbWUpID0+IGZuKHZhbHVlcywgdGhpcy5fbm9ybWFsaXplZE5hbWVzLmdldChsY05hbWUpLCB0aGlzLl9oZWFkZXJzKSk7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyBmaXJzdCBoZWFkZXIgdGhhdCBtYXRjaGVzIGdpdmVuIG5hbWUuXG4gICAqL1xuICBnZXQobmFtZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgICBjb25zdCB2YWx1ZXMgPSB0aGlzLmdldEFsbChuYW1lKTtcblxuICAgIGlmICh2YWx1ZXMgPT09IG51bGwpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIHJldHVybiB2YWx1ZXMubGVuZ3RoID4gMCA/IHZhbHVlc1swXSA6IG51bGw7XG4gIH1cblxuICAvKipcbiAgICogQ2hlY2tzIGZvciBleGlzdGVuY2Ugb2YgaGVhZGVyIGJ5IGdpdmVuIG5hbWUuXG4gICAqL1xuICBoYXMobmFtZTogc3RyaW5nKTogYm9vbGVhbiB7IHJldHVybiB0aGlzLl9oZWFkZXJzLmhhcyhuYW1lLnRvTG93ZXJDYXNlKCkpOyB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgdGhlIG5hbWVzIG9mIHRoZSBoZWFkZXJzXG4gICAqL1xuICBrZXlzKCk6IHN0cmluZ1tdIHsgcmV0dXJuIEFycmF5LmZyb20odGhpcy5fbm9ybWFsaXplZE5hbWVzLnZhbHVlcygpKTsgfVxuXG4gIC8qKlxuICAgKiBTZXRzIG9yIG92ZXJyaWRlcyBoZWFkZXIgdmFsdWUgZm9yIGdpdmVuIG5hbWUuXG4gICAqL1xuICBzZXQobmFtZTogc3RyaW5nLCB2YWx1ZTogc3RyaW5nIHwgc3RyaW5nW10pOiB2b2lkIHtcbiAgICBpZiAoQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHtcbiAgICAgIGlmICh2YWx1ZS5sZW5ndGgpIHtcbiAgICAgICAgdGhpcy5faGVhZGVycy5zZXQobmFtZS50b0xvd2VyQ2FzZSgpLCBbdmFsdWUuam9pbignLCcpXSk7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuX2hlYWRlcnMuc2V0KG5hbWUudG9Mb3dlckNhc2UoKSwgW3ZhbHVlXSk7XG4gICAgfVxuICAgIHRoaXMubWF5QmVTZXROb3JtYWxpemVkTmFtZShuYW1lKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHZhbHVlcyBvZiBhbGwgaGVhZGVycy5cbiAgICovXG4gIHZhbHVlcygpOiBzdHJpbmdbXVtdIHsgcmV0dXJuIEFycmF5LmZyb20odGhpcy5faGVhZGVycy52YWx1ZXMoKSk7IH1cblxuICAvKipcbiAgICogUmV0dXJucyBzdHJpbmcgb2YgYWxsIGhlYWRlcnMuXG4gICAqL1xuICAvLyBUT0RPKHZpY2IpOiByZXR1cm5zIHtbbmFtZTogc3RyaW5nXTogc3RyaW5nW119XG4gIHRvSlNPTigpOiB7IFtuYW1lOiBzdHJpbmddOiBhbnkgfSB7XG4gICAgY29uc3Qgc2VyaWFsaXplZDogeyBbbmFtZTogc3RyaW5nXTogc3RyaW5nW10gfSA9IHt9O1xuICAgIGlmICghdGhpcy5faGVhZGVycykge1xuICAgICAgLy8gZGVidWdnZXJcblxuICAgIH1cbiAgICB0aGlzLl9oZWFkZXJzLmZvckVhY2goKHZhbHVlczogc3RyaW5nW10sIG5hbWU6IHN0cmluZykgPT4ge1xuICAgICAgY29uc3Qgc3BsaXQ6IHN0cmluZ1tdID0gW107XG4gICAgICB2YWx1ZXMuZm9yRWFjaCh2ID0+IHNwbGl0LnB1c2goLi4udi5zcGxpdCgnLCcpKSk7XG4gICAgICBzZXJpYWxpemVkW3RoaXMuX25vcm1hbGl6ZWROYW1lcy5nZXQobmFtZSldID0gc3BsaXQ7XG4gICAgfSk7XG5cbiAgICByZXR1cm4gc2VyaWFsaXplZDtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIGxpc3Qgb2YgaGVhZGVyIHZhbHVlcyBmb3IgYSBnaXZlbiBuYW1lLlxuICAgKi9cbiAgZ2V0QWxsKG5hbWU6IHN0cmluZyk6IHN0cmluZ1tdIHtcbiAgICByZXR1cm4gdGhpcy5oYXMobmFtZSkgPyB0aGlzLl9oZWFkZXJzLmdldChuYW1lLnRvTG93ZXJDYXNlKCkpIDogbnVsbDtcbiAgfVxuXG4gIHByaXZhdGUgbWF5QmVTZXROb3JtYWxpemVkTmFtZShuYW1lOiBzdHJpbmcpOiB2b2lkIHtcbiAgICBjb25zdCBsY05hbWUgPSBuYW1lLnRvTG93ZXJDYXNlKCk7XG5cbiAgICBpZiAoIXRoaXMuX25vcm1hbGl6ZWROYW1lcy5oYXMobGNOYW1lKSkge1xuICAgICAgdGhpcy5fbm9ybWFsaXplZE5hbWVzLnNldChsY05hbWUsIG5hbWUpO1xuICAgIH1cbiAgfVxufSJdfQ==
|
|
127
|
+
;
|
|
128
|
+
({}); // @--end-of-file-for-module=ng2-rest tmp-src-bundle-websql/lib/rest-headers.ts
|
|
129
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzdC1oZWFkZXJzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vdG1wLWxpYnMtZm9yLWJ1bmRsZS13ZWJzcWwvbmcyLXJlc3QvcHJvamVjdHMvbmcyLXJlc3Qvc3JjL2xpYi9yZXN0LWhlYWRlcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBS0EsTUFBTSxPQUFPLFdBQVc7SUFjdEIsWUFBb0IsT0FBK0Q7UUFibkYsNENBQTRDO1FBQzVDLGFBQVEsR0FBMEIsSUFBSSxHQUFHLEVBQUUsQ0FBQztRQUM1QyxxREFBcUQ7UUFDckQscUJBQWdCLEdBQXdCLElBQUksR0FBRyxFQUFFLENBQUM7UUFXaEQsSUFBSSxPQUFPLFlBQVksV0FBVyxFQUFFO1lBQ2xDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQyxNQUFnQixFQUFFLElBQVksRUFBRSxFQUFFO2dCQUNqRCxNQUFNLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQztZQUNqRCxDQUFDLENBQUMsQ0FBQztTQUNKO2FBQU07WUFDTCxNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQVksRUFBRSxFQUFFO2dCQUM1QyxNQUFNLE1BQU0sR0FBYSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBUSxDQUFDO2dCQUNqRyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO2dCQUNsQixNQUFNLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLENB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QUM7SUFDcEIsQ0FBQztJQUVEOztPQUVHO0lBQ0gsTUFBTSxDQUFDLElBQVk7UUFDakIsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO0lBQ3ZFLENBQUM7SUFFTyxzQkFBc0IsQ0FBQyxJQUFZO1FBQ3pDLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUVsQyxJQUFJLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsRUFBRTtZQUN0QyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsR0FBRyxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsQ0FBQztTQUN6QztJQUNILENBQUM7Q0FDRjtBQUNBLENBQUM7QUFBQSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsK0VBQStFIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBCYXNlZCBvbiBIZWFkZXJzIGZyb20gaHR0cHM6Ly9naXRodWIuY29tL2FuZ3VsYXIvYW5ndWxhci9ibG9iL21hc3Rlci9wYWNrYWdlcy9odHRwL3NyYy9oZWFkZXJzLnRzXG4gKi9cbmV4cG9ydCB0eXBlIFJlc3RIZWFkZXJzT3B0aW9ucyA9IFJlc3RIZWFkZXJzIHwgeyBbbmFtZTogc3RyaW5nXTogKHN0cmluZyB8IHN0cmluZ1tdKSB9XG5cbmV4cG9ydCBjbGFzcyBSZXN0SGVhZGVycyB7XG4gIC8qKiBAaW50ZXJuYWwgaGVhZGVyIG5hbWVzIGFyZSBsb3dlciBjYXNlICovXG4gIF9oZWFkZXJzOiBNYXA8c3RyaW5nLCBzdHJpbmdbXT4gPSBuZXcgTWFwKCk7XG4gIC8qKiBAaW50ZXJuYWwgbWFwIGxvd2VyIGNhc2UgbmFtZXMgdG8gYWN0dWFsIG5hbWVzICovXG4gIF9ub3JtYWxpemVkTmFtZXM6IE1hcDxzdHJpbmcsIHN0cmluZz4gPSBuZXcgTWFwKCk7XG5cblxuICBwdWJsaWMgc3RhdGljIGZyb20oaGVhZGVycz86IFJlc3RIZWFkZXJzT3B0aW9ucykge1xuICAgIGlmICghaGVhZGVycykge1xuICAgICAgcmV0dXJuIHZvaWQgMDtcbiAgICB9XG4gICAgcmV0dXJuIG5ldyBSZXN0SGVhZGVycyhoZWFkZXJzKTtcbiAgfVxuXG4gIHByaXZhdGUgY29uc3RydWN0b3IoaGVhZGVycz86IFJlc3RIZWFkZXJzIHwgeyBbbmFtZTogc3RyaW5nXTogKHN0cmluZyB8IHN0cmluZ1tdKSB9KSB7XG4gICAgaWYgKGhlYWRlcnMgaW5zdGFuY2VvZiBSZXN0SGVhZGVycykge1xuICAgICAgaGVhZGVycy5mb3JFYWNoKCh2YWx1ZXM6IHN0cmluZ1tdLCBuYW1lOiBzdHJpbmcpID0+IHtcbiAgICAgICAgdmFsdWVzLmZvckVhY2godmFsdWUgPT4gdGhpcy5zZXQobmFtZSwgdmFsdWUpKTtcbiAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICBPYmplY3Qua2V5cyhoZWFkZXJzKS5mb3JFYWNoKChuYW1lOiBzdHJpbmcpID0+IHtcbiAgICAgICAgY29uc3QgdmFsdWVzOiBzdHJpbmdbXSA9IChBcnJheS5pc0FycmF5KGhlYWRlcnNbbmFtZV0pID8gaGVhZGVyc1tuYW1lXSA6IFtoZWFkZXJzW25hbWVdXSkgYXMgYW55O1xuICAgICAgICB0aGlzLmRlbGV0ZShuYW1lKTtcbiAgICAgICAgdmFsdWVzLmZvckVhY2godmFsdWUgPT4gdGhpcy5zZXQobmFtZSwgdmFsdWUpKTtcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIGEgbmV3IFJlc3RIZWFkZXJzIGluc3RhbmNlIGZyb20gdGhlIGdpdmVuIERPTVN0cmluZyBvZiBSZXNwb25zZSBSZXN0SGVhZGVyc1xuICAgKi9cbiAgc3RhdGljIGZyb21SZXNwb25zZUhlYWRlclN0cmluZyhoZWFkZXJzU3RyaW5nOiBzdHJpbmcpOiBSZXN0SGVhZGVycyB7XG4gICAgY29uc3QgaGVhZGVycyA9IG5ldyBSZXN0SGVhZGVycygpO1xuXG4gICAgaGVhZGVyc1N0cmluZy5zcGxpdCgnXFxuJykuZm9yRWFjaChsaW5lID0+IHtcbiAgICAgIGNvbnN0IGluZGV4ID0gbGluZS5pbmRleE9mKCc6Jyk7XG4gICAgICBpZiAoaW5kZXggPiAwKSB7XG4gICAgICAgIGNvbnN0IG5hbWUgPSBsaW5lLnNsaWNlKDAsIGluZGV4KTtcbiAgICAgICAgY29uc3QgdmFsdWUgPSBsaW5lLnNsaWNlKGluZGV4ICsgMSkudHJpbSgpO1xuICAgICAgICBoZWFkZXJzLnNldChuYW1lLCB2YWx1ZSk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICByZXR1cm4gaGVhZGVycztcbiAgfVxuXG4gIC8qKlxuICAgKiBBcHBlbmRzIGEgaGVhZGVyIHRvIGV4aXN0aW5nIGxpc3Qgb2YgaGVhZGVyIHZhbHVlcyBmb3IgYSBnaXZlbiBoZWFkZXIgbmFtZS5cbiAgICovXG4gIGFwcGVuZChuYW1lOiBzdHJpbmcsIHZhbHVlOiBzdHJpbmcpOiB2b2lkIHtcbiAgICBjb25zdCB2YWx1ZXMgPSB0aGlzLmdldEFsbChuYW1lKTtcblxuICAgIGlmICh2YWx1ZXMgPT09IG51bGwpIHtcbiAgICAgIHRoaXMuc2V0KG5hbWUsIHZhbHVlKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdmFsdWVzLnB1c2godmFsdWUpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBEZWxldGVzIGFsbCBoZWFkZXIgdmFsdWVzIGZvciB0aGUgZ2l2ZW4gbmFtZS5cbiAgICovXG4gIGRlbGV0ZShuYW1lOiBzdHJpbmcpOiB2b2lkIHtcbiAgICBjb25zdCBsY05hbWUgPSBuYW1lLnRvTG93ZXJDYXNlKCk7XG4gICAgdGhpcy5fbm9ybWFsaXplZE5hbWVzLmRlbGV0ZShsY05hbWUpO1xuICAgIHRoaXMuX2hlYWRlcnMuZGVsZXRlKGxjTmFtZSk7XG4gIH1cblxuICBmb3JFYWNoKGZuOiAodmFsdWVzOiBzdHJpbmdbXSwgbmFtZTogc3RyaW5nLCBoZWFkZXJzOiBNYXA8c3RyaW5nLCBzdHJpbmdbXT4pID0+IHZvaWQpOiB2b2lkIHtcbiAgICB0aGlzLl9oZWFkZXJzLmZvckVhY2goXG4gICAgICAodmFsdWVzLCBsY05hbWUpID0+IGZuKHZhbHVlcywgdGhpcy5fbm9ybWFsaXplZE5hbWVzLmdldChsY05hbWUpLCB0aGlzLl9oZWFkZXJzKSk7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyBmaXJzdCBoZWFkZXIgdGhhdCBtYXRjaGVzIGdpdmVuIG5hbWUuXG4gICAqL1xuICBnZXQobmFtZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgICBjb25zdCB2YWx1ZXMgPSB0aGlzLmdldEFsbChuYW1lKTtcblxuICAgIGlmICh2YWx1ZXMgPT09IG51bGwpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIHJldHVybiB2YWx1ZXMubGVuZ3RoID4gMCA/IHZhbHVlc1swXSA6IG51bGw7XG4gIH1cblxuICAvKipcbiAgICogQ2hlY2tzIGZvciBleGlzdGVuY2Ugb2YgaGVhZGVyIGJ5IGdpdmVuIG5hbWUuXG4gICAqL1xuICBoYXMobmFtZTogc3RyaW5nKTogYm9vbGVhbiB7IHJldHVybiB0aGlzLl9oZWFkZXJzLmhhcyhuYW1lLnRvTG93ZXJDYXNlKCkpOyB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgdGhlIG5hbWVzIG9mIHRoZSBoZWFkZXJzXG4gICAqL1xuICBrZXlzKCk6IHN0cmluZ1tdIHsgcmV0dXJuIEFycmF5LmZyb20odGhpcy5fbm9ybWFsaXplZE5hbWVzLnZhbHVlcygpKTsgfVxuXG4gIC8qKlxuICAgKiBTZXRzIG9yIG92ZXJyaWRlcyBoZWFkZXIgdmFsdWUgZm9yIGdpdmVuIG5hbWUuXG4gICAqL1xuICBzZXQobmFtZTogc3RyaW5nLCB2YWx1ZTogc3RyaW5nIHwgc3RyaW5nW10pOiB2b2lkIHtcbiAgICBpZiAoQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHtcbiAgICAgIGlmICh2YWx1ZS5sZW5ndGgpIHtcbiAgICAgICAgdGhpcy5faGVhZGVycy5zZXQobmFtZS50b0xvd2VyQ2FzZSgpLCBbdmFsdWUuam9pbignLCcpXSk7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuX2hlYWRlcnMuc2V0KG5hbWUudG9Mb3dlckNhc2UoKSwgW3ZhbHVlXSk7XG4gICAgfVxuICAgIHRoaXMubWF5QmVTZXROb3JtYWxpemVkTmFtZShuYW1lKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHZhbHVlcyBvZiBhbGwgaGVhZGVycy5cbiAgICovXG4gIHZhbHVlcygpOiBzdHJpbmdbXVtdIHsgcmV0dXJuIEFycmF5LmZyb20odGhpcy5faGVhZGVycy52YWx1ZXMoKSk7IH1cblxuICAvKipcbiAgICogUmV0dXJucyBzdHJpbmcgb2YgYWxsIGhlYWRlcnMuXG4gICAqL1xuXG4gIHRvSlNPTigpOiB7IFtuYW1lOiBzdHJpbmddOiBhbnkgfSB7XG4gICAgY29uc3Qgc2VyaWFsaXplZDogeyBbbmFtZTogc3RyaW5nXTogc3RyaW5nW10gfSA9IHt9O1xuICAgIGlmICghdGhpcy5faGVhZGVycykge1xuXG5cbiAgICB9XG4gICAgdGhpcy5faGVhZGVycy5mb3JFYWNoKCh2YWx1ZXM6IHN0cmluZ1tdLCBuYW1lOiBzdHJpbmcpID0+IHtcbiAgICAgIGNvbnN0IHNwbGl0OiBzdHJpbmdbXSA9IFtdO1xuICAgICAgdmFsdWVzLmZvckVhY2godiA9PiBzcGxpdC5wdXNoKC4uLnYuc3BsaXQoJywnKSkpO1xuICAgICAgc2VyaWFsaXplZFt0aGlzLl9ub3JtYWxpemVkTmFtZXMuZ2V0KG5hbWUpXSA9IHNwbGl0O1xuICAgIH0pO1xuXG4gICAgcmV0dXJuIHNlcmlhbGl6ZWQ7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyBsaXN0IG9mIGhlYWRlciB2YWx1ZXMgZm9yIGEgZ2l2ZW4gbmFtZS5cbiAgICovXG4gIGdldEFsbChuYW1lOiBzdHJpbmcpOiBzdHJpbmdbXSB7XG4gICAgcmV0dXJuIHRoaXMuaGFzKG5hbWUpID8gdGhpcy5faGVhZGVycy5nZXQobmFtZS50b0xvd2VyQ2FzZSgpKSA6IG51bGw7XG4gIH1cblxuICBwcml2YXRlIG1heUJlU2V0Tm9ybWFsaXplZE5hbWUobmFtZTogc3RyaW5nKTogdm9pZCB7XG4gICAgY29uc3QgbGNOYW1lID0gbmFtZS50b0xvd2VyQ2FzZSgpO1xuXG4gICAgaWYgKCF0aGlzLl9ub3JtYWxpemVkTmFtZXMuaGFzKGxjTmFtZSkpIHtcbiAgICAgIHRoaXMuX25vcm1hbGl6ZWROYW1lcy5zZXQobGNOYW1lLCBuYW1lKTtcbiAgICB9XG4gIH1cbn1cbiA7KHt9KTsgLy8gQC0tZW5kLW9mLWZpbGUtZm9yLW1vZHVsZT1uZzItcmVzdCB0bXAtc3JjLWJ1bmRsZS13ZWJzcWwvbGliL3Jlc3QtaGVhZGVycy50cyJdfQ==
|