@nativescript/canvas-polyfill 1.0.0-beta.1 → 1.0.0-beta.13
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/DOM/CharacterData.js +4 -22
- package/DOM/CharacterData.js.map +1 -1
- package/DOM/Document.js +25 -48
- package/DOM/Document.js.map +1 -1
- package/DOM/Element.js +56 -119
- package/DOM/Element.js.map +1 -1
- package/DOM/HTMLCanvasElement.js +23 -50
- package/DOM/HTMLCanvasElement.js.map +1 -1
- package/DOM/HTMLImageElement.js +109 -182
- package/DOM/HTMLImageElement.js.map +1 -1
- package/DOM/HTMLVideoElement.js +80 -127
- package/DOM/HTMLVideoElement.js.map +1 -1
- package/DOM/Node.js +41 -52
- package/DOM/Node.js.map +1 -1
- package/DOM/Text.js +4 -22
- package/DOM/Text.js.map +1 -1
- package/DOM/XMLDocument.js +2 -23
- package/DOM/XMLDocument.js.map +1 -1
- package/DOM/svg/SVGCircleElement.js +25 -52
- package/DOM/svg/SVGCircleElement.js.map +1 -1
- package/DOM/svg/SVGElement.js +37 -68
- package/DOM/svg/SVGElement.js.map +1 -1
- package/DOM/svg/SVGGGElement.js +25 -52
- package/DOM/svg/SVGGGElement.js.map +1 -1
- package/DOM/svg/SVGPathElement.js +25 -52
- package/DOM/svg/SVGPathElement.js.map +1 -1
- package/DOM/svg/SVGRectElement.js +25 -52
- package/DOM/svg/SVGRectElement.js.map +1 -1
- package/URL.android.d.ts +38 -0
- package/URL.android.js +266 -0
- package/URL.android.js.map +1 -0
- package/URL.ios.d.ts +37 -0
- package/URL.ios.js +209 -0
- package/URL.ios.js.map +1 -0
- package/async/file/file.android.js +13 -19
- package/async/file/file.android.js.map +1 -1
- package/async/file/file.ios.js +21 -27
- package/async/file/file.ios.js.map +1 -1
- package/async/http/http-request-common.js +30 -57
- package/async/http/http-request-common.js.map +1 -1
- package/async/http/http.android.js +137 -156
- package/async/http/http.android.js.map +1 -1
- package/async/http/http.ios.js +91 -106
- package/async/http/http.ios.js.map +1 -1
- package/async/xhr/TNSXMLHttpRequest.js +438 -571
- package/async/xhr/TNSXMLHttpRequest.js.map +1 -1
- package/index.js +8 -35
- package/index.js.map +1 -1
- package/package.json +2 -2
- package/performance.js +11 -11
- package/resize.js +6 -6
- package/resize.js.map +1 -1
- package/window.js +11 -11
- package/window.js.map +1 -1
- package/URL.d.ts +0 -5
- package/URL.js +0 -48
- package/URL.js.map +0 -1
|
@@ -1,14 +1,3 @@
|
|
|
1
|
-
var __assign = (this && this.__assign) || function () {
|
|
2
|
-
__assign = Object.assign || function(t) {
|
|
3
|
-
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
4
|
-
s = arguments[i];
|
|
5
|
-
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
6
|
-
t[p] = s[p];
|
|
7
|
-
}
|
|
8
|
-
return t;
|
|
9
|
-
};
|
|
10
|
-
return __assign.apply(this, arguments);
|
|
11
|
-
};
|
|
12
1
|
import { fileNameFromPath, HttpError, isImageUrl, SaveImageStorageKey, TNSHttpSettings } from './http-request-common';
|
|
13
2
|
import { NetworkAgent } from '@nativescript/core/debugger';
|
|
14
3
|
import { File, Folder, knownFolders, path, ApplicationSettings } from '@nativescript/core';
|
|
@@ -19,7 +8,7 @@ export var HttpResponseEncoding;
|
|
|
19
8
|
HttpResponseEncoding[HttpResponseEncoding["UTF8"] = 0] = "UTF8";
|
|
20
9
|
HttpResponseEncoding[HttpResponseEncoding["GBK"] = 1] = "GBK";
|
|
21
10
|
})(HttpResponseEncoding || (HttpResponseEncoding = {}));
|
|
22
|
-
|
|
11
|
+
const statuses = {
|
|
23
12
|
100: 'Continue',
|
|
24
13
|
101: 'Switching Protocols',
|
|
25
14
|
200: 'OK',
|
|
@@ -62,22 +51,22 @@ var statuses = {
|
|
|
62
51
|
505: 'HTTP Version Not Supported'
|
|
63
52
|
};
|
|
64
53
|
function parseJSON(source) {
|
|
65
|
-
|
|
54
|
+
const src = source.trim();
|
|
66
55
|
if (src.lastIndexOf(')') === src.length - 1) {
|
|
67
56
|
return JSON.parse(src.substring(src.indexOf('(') + 1, src.lastIndexOf(')')));
|
|
68
57
|
}
|
|
69
58
|
return JSON.parse(src);
|
|
70
59
|
}
|
|
71
|
-
|
|
60
|
+
const textTypes = [
|
|
72
61
|
'text/plain',
|
|
73
62
|
'application/xml',
|
|
74
63
|
'application/rss+xml',
|
|
75
64
|
'text/html',
|
|
76
65
|
'text/xml'
|
|
77
66
|
];
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
for (
|
|
67
|
+
const isTextContentType = (contentType) => {
|
|
68
|
+
let result = false;
|
|
69
|
+
for (let i = 0; i < textTypes.length; i++) {
|
|
81
70
|
if (contentType.toLowerCase().indexOf(textTypes[i]) >= 0) {
|
|
82
71
|
result = true;
|
|
83
72
|
break;
|
|
@@ -85,18 +74,18 @@ var isTextContentType = function (contentType) {
|
|
|
85
74
|
}
|
|
86
75
|
return result;
|
|
87
76
|
};
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
77
|
+
const requestCallbacks = new Map();
|
|
78
|
+
let requestIdCounter = 0;
|
|
79
|
+
export class Http {
|
|
80
|
+
constructor() {
|
|
92
81
|
}
|
|
93
|
-
|
|
82
|
+
static buildJavaOptions(options) {
|
|
94
83
|
if (!isString(options.url)) {
|
|
95
84
|
throw new Error('Http request must provide a valid url.');
|
|
96
85
|
}
|
|
97
|
-
|
|
86
|
+
let javaOptions = new com.github.triniwiz.async.Async2.Http.RequestOptions();
|
|
98
87
|
javaOptions.url = options.url;
|
|
99
|
-
|
|
88
|
+
let method;
|
|
100
89
|
if (isString(typeof options.method)) {
|
|
101
90
|
javaOptions.method = options.method;
|
|
102
91
|
method = options.method.toLowerCase();
|
|
@@ -113,27 +102,27 @@ var Http = /** @class */ (function () {
|
|
|
113
102
|
javaOptions.timeout = options.timeout;
|
|
114
103
|
}
|
|
115
104
|
if (options.headers) {
|
|
116
|
-
|
|
117
|
-
|
|
105
|
+
const arrayList = new java.util.ArrayList();
|
|
106
|
+
const pair = com.github.triniwiz.async.Async2.Http.KeyValuePair;
|
|
118
107
|
if (options.headers instanceof Map) {
|
|
119
|
-
options.headers.forEach(
|
|
120
|
-
|
|
108
|
+
options.headers.forEach((value, key) => {
|
|
109
|
+
arrayList.add(new pair(key, value + ''));
|
|
121
110
|
});
|
|
122
111
|
}
|
|
123
112
|
else {
|
|
124
|
-
for (
|
|
125
|
-
|
|
113
|
+
for (let key in options.headers) {
|
|
114
|
+
arrayList.add(new pair(key, options.headers[key] + ''));
|
|
126
115
|
}
|
|
127
116
|
}
|
|
128
|
-
javaOptions.headers =
|
|
117
|
+
javaOptions.headers = arrayList;
|
|
129
118
|
}
|
|
130
119
|
return javaOptions;
|
|
131
|
-
}
|
|
132
|
-
|
|
120
|
+
}
|
|
121
|
+
static buildJavaDownloadOptions(options) {
|
|
133
122
|
if (!isString(options.url)) {
|
|
134
123
|
throw new Error('Http request must provide a valid url.');
|
|
135
124
|
}
|
|
136
|
-
|
|
125
|
+
const javaOptions = new com.github.triniwiz.async.Async2.Http.DownloadRequestOptions();
|
|
137
126
|
javaOptions.url = options.url;
|
|
138
127
|
if (typeof options.timeout === 'number') {
|
|
139
128
|
javaOptions.timeout = options.timeout;
|
|
@@ -147,50 +136,50 @@ var Http = /** @class */ (function () {
|
|
|
147
136
|
javaOptions.filePath = path.join(knownFolders.temp().path, 'async_http', java.util.UUID.randomUUID().toString());
|
|
148
137
|
}
|
|
149
138
|
if (options.headers) {
|
|
150
|
-
|
|
151
|
-
|
|
139
|
+
const arrayList = new java.util.ArrayList();
|
|
140
|
+
const pair = com.github.triniwiz.async.Async2.Http.KeyValuePair;
|
|
152
141
|
if (options.headers instanceof Map) {
|
|
153
|
-
options.headers.forEach(
|
|
154
|
-
|
|
142
|
+
options.headers.forEach((value, key) => {
|
|
143
|
+
arrayList.add(new pair(key, value + ''));
|
|
155
144
|
});
|
|
156
145
|
}
|
|
157
146
|
else {
|
|
158
|
-
for (
|
|
159
|
-
|
|
147
|
+
for (let key in options.headers) {
|
|
148
|
+
arrayList.add(new pair(key, options.headers[key] + ''));
|
|
160
149
|
}
|
|
161
150
|
}
|
|
162
|
-
javaOptions.headers =
|
|
151
|
+
javaOptions.headers = arrayList;
|
|
163
152
|
}
|
|
164
153
|
return javaOptions;
|
|
165
|
-
}
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
154
|
+
}
|
|
155
|
+
request(options) {
|
|
156
|
+
const headers = {};
|
|
157
|
+
let statusCode = 0;
|
|
158
|
+
let id;
|
|
159
|
+
const counter = requestIdCounter;
|
|
160
|
+
const request = new Promise((resolve, reject) => {
|
|
172
161
|
try {
|
|
173
162
|
// initialize the options
|
|
174
|
-
|
|
163
|
+
const javaOptions = Http.buildJavaOptions(options);
|
|
175
164
|
if (TNSHttpSettings.debug) {
|
|
176
165
|
// @ts-ignore
|
|
177
166
|
if (global.__inspector && global.__inspector.isConnected) {
|
|
178
167
|
NetworkAgent.requestWillBeSent(requestIdCounter, options);
|
|
179
168
|
}
|
|
180
169
|
}
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
onCancel
|
|
170
|
+
const makeRemoteRequest = () => {
|
|
171
|
+
const callback = new com.github.triniwiz.async.Async2.Http.Callback({
|
|
172
|
+
onCancel(param) {
|
|
184
173
|
reject({
|
|
185
174
|
type: HttpError.Cancelled,
|
|
186
175
|
result: param
|
|
187
176
|
});
|
|
188
177
|
requestCallbacks.delete(id);
|
|
189
178
|
},
|
|
190
|
-
onComplete
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
179
|
+
onComplete(result) {
|
|
180
|
+
let content;
|
|
181
|
+
let responseText;
|
|
182
|
+
let _isString = false;
|
|
194
183
|
if (result.content instanceof org.json.JSONObject || result.content instanceof org.json.JSONArray) {
|
|
195
184
|
content = deserialize(result.content);
|
|
196
185
|
responseText = result.contentText;
|
|
@@ -201,19 +190,19 @@ var Http = /** @class */ (function () {
|
|
|
201
190
|
responseText = result.contentText;
|
|
202
191
|
}
|
|
203
192
|
if (result && result.headers) {
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
for (
|
|
193
|
+
const length = result.headers.size();
|
|
194
|
+
let pair;
|
|
195
|
+
for (let i = 0; i < length; i++) {
|
|
207
196
|
pair = result.headers.get(i);
|
|
208
197
|
addHeader(headers, pair.key, pair.value);
|
|
209
198
|
}
|
|
210
199
|
}
|
|
211
200
|
// send response data (for requestId) to network debugger
|
|
212
|
-
|
|
201
|
+
let contentType = headers['Content-Type'];
|
|
213
202
|
if (isNullOrUndefined(contentType)) {
|
|
214
203
|
contentType = headers['content-type'];
|
|
215
204
|
}
|
|
216
|
-
|
|
205
|
+
let acceptHeader;
|
|
217
206
|
if (isNullOrUndefined(contentType)) {
|
|
218
207
|
acceptHeader = headers['Accept'];
|
|
219
208
|
if (isNullOrUndefined(acceptHeader)) {
|
|
@@ -223,14 +212,13 @@ var Http = /** @class */ (function () {
|
|
|
223
212
|
else {
|
|
224
213
|
acceptHeader = contentType;
|
|
225
214
|
}
|
|
226
|
-
|
|
215
|
+
let returnType = 'text/plain';
|
|
227
216
|
if (!isNullOrUndefined(acceptHeader) && isString(acceptHeader)) {
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
for (
|
|
233
|
-
var value = acceptValues_1[_i];
|
|
217
|
+
let acceptValues = acceptHeader.split(',');
|
|
218
|
+
let quality = [];
|
|
219
|
+
let defaultQuality = [];
|
|
220
|
+
let customQuality = [];
|
|
221
|
+
for (let value of acceptValues) {
|
|
234
222
|
if (value.indexOf(';q=') > -1) {
|
|
235
223
|
customQuality.push(value);
|
|
236
224
|
}
|
|
@@ -238,13 +226,13 @@ var Http = /** @class */ (function () {
|
|
|
238
226
|
defaultQuality.push(value);
|
|
239
227
|
}
|
|
240
228
|
}
|
|
241
|
-
customQuality = customQuality.sort(
|
|
242
|
-
|
|
243
|
-
|
|
229
|
+
customQuality = customQuality.sort((a, b) => {
|
|
230
|
+
const a_quality = parseFloat(a.substring(a.indexOf(';q=')).replace(';q=', ''));
|
|
231
|
+
const b_quality = parseFloat(b.substring(b.indexOf(';q=')).replace(';q=', ''));
|
|
244
232
|
return (b_quality - a_quality);
|
|
245
233
|
});
|
|
246
|
-
quality.push
|
|
247
|
-
quality.push
|
|
234
|
+
quality.push(...defaultQuality);
|
|
235
|
+
quality.push(...customQuality);
|
|
248
236
|
returnType = quality[0];
|
|
249
237
|
}
|
|
250
238
|
result['statusCode'] = statusCode;
|
|
@@ -254,8 +242,8 @@ var Http = /** @class */ (function () {
|
|
|
254
242
|
if (global.__inspector && global.__inspector.isConnected) {
|
|
255
243
|
NetworkAgent.responseReceived(counter, {
|
|
256
244
|
url: result.url,
|
|
257
|
-
statusCode
|
|
258
|
-
headers
|
|
245
|
+
statusCode,
|
|
246
|
+
headers,
|
|
259
247
|
responseAsString: isString ? (result.contentText ? result.contentText : result.content.toString()) : null,
|
|
260
248
|
responseAsImage: null // TODO needs base64 Image
|
|
261
249
|
}, headers);
|
|
@@ -276,25 +264,25 @@ var Http = /** @class */ (function () {
|
|
|
276
264
|
}
|
|
277
265
|
resolve({
|
|
278
266
|
url: result.url,
|
|
279
|
-
content
|
|
280
|
-
responseText
|
|
267
|
+
content,
|
|
268
|
+
responseText,
|
|
281
269
|
statusCode: statusCode,
|
|
282
270
|
headers: headers
|
|
283
271
|
});
|
|
284
272
|
requestCallbacks.delete(id);
|
|
285
273
|
},
|
|
286
|
-
onError
|
|
274
|
+
onError(param0, param1) {
|
|
287
275
|
reject({
|
|
288
276
|
type: HttpError.Error,
|
|
289
277
|
message: param0
|
|
290
278
|
});
|
|
291
279
|
requestCallbacks.delete(id);
|
|
292
280
|
},
|
|
293
|
-
onHeaders
|
|
281
|
+
onHeaders(jHeaders, status) {
|
|
294
282
|
statusCode = status;
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
for (
|
|
283
|
+
const length = jHeaders.size();
|
|
284
|
+
let pair;
|
|
285
|
+
for (let i = 0; i < length; i++) {
|
|
298
286
|
pair = jHeaders.get(i);
|
|
299
287
|
addHeader(headers, pair.key, pair.value);
|
|
300
288
|
}
|
|
@@ -302,35 +290,33 @@ var Http = /** @class */ (function () {
|
|
|
302
290
|
options.onHeaders(headers, statusCode);
|
|
303
291
|
}
|
|
304
292
|
requestCallbacks.delete(id);
|
|
305
|
-
},
|
|
306
|
-
onLoading: function () {
|
|
293
|
+
}, onLoading() {
|
|
307
294
|
options.onLoading();
|
|
308
295
|
requestCallbacks.delete(id);
|
|
309
|
-
},
|
|
310
|
-
onProgress: function (lengthComputable, loaded, total) {
|
|
296
|
+
}, onProgress(lengthComputable, loaded, total) {
|
|
311
297
|
if (options.onProgress) {
|
|
312
298
|
options.onProgress({
|
|
313
|
-
lengthComputable
|
|
314
|
-
loaded
|
|
315
|
-
total
|
|
299
|
+
lengthComputable,
|
|
300
|
+
loaded,
|
|
301
|
+
total
|
|
316
302
|
});
|
|
317
303
|
}
|
|
318
304
|
requestCallbacks.delete(id);
|
|
319
305
|
},
|
|
320
|
-
onTimeout
|
|
306
|
+
onTimeout() {
|
|
321
307
|
reject({
|
|
322
308
|
type: HttpError.Timeout
|
|
323
309
|
});
|
|
324
310
|
requestCallbacks.delete(id);
|
|
325
311
|
}
|
|
326
312
|
});
|
|
327
|
-
id = com.github.triniwiz.async.Async2.Http.makeRequest(
|
|
313
|
+
id = com.github.triniwiz.async.Async2.Http.makeRequest(javaOptions, callback);
|
|
328
314
|
requestCallbacks.set(id, callback);
|
|
329
315
|
};
|
|
330
316
|
if (TNSHttpSettings.saveImage && isImageUrl(options.url)) {
|
|
331
317
|
// handle saved images to disk
|
|
332
318
|
if (!TNSHttpSettings.currentlySavedImages) {
|
|
333
|
-
|
|
319
|
+
const stored = ApplicationSettings.getString(SaveImageStorageKey);
|
|
334
320
|
if (stored) {
|
|
335
321
|
try {
|
|
336
322
|
TNSHttpSettings.currentlySavedImages = JSON.parse(stored);
|
|
@@ -343,12 +329,12 @@ var Http = /** @class */ (function () {
|
|
|
343
329
|
TNSHttpSettings.currentlySavedImages = {};
|
|
344
330
|
}
|
|
345
331
|
}
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
332
|
+
const imageSetting = TNSHttpSettings.currentlySavedImages[options.url];
|
|
333
|
+
const requests = imageSetting ? imageSetting.requests : 0;
|
|
334
|
+
let localPath;
|
|
349
335
|
if (imageSetting && imageSetting.localPath && File.exists(imageSetting.localPath)) {
|
|
350
336
|
// previously saved to disk
|
|
351
|
-
FileManager.readFile(imageSetting.localPath, null,
|
|
337
|
+
FileManager.readFile(imageSetting.localPath, null, (error, file) => {
|
|
352
338
|
if (error) {
|
|
353
339
|
if (TNSHttpSettings.debug) {
|
|
354
340
|
console.log('http image load error:', error);
|
|
@@ -367,7 +353,7 @@ var Http = /** @class */ (function () {
|
|
|
367
353
|
}
|
|
368
354
|
else if (requests >= TNSHttpSettings.saveImage.numberOfRequests) {
|
|
369
355
|
// setup to write to disk when response finishes
|
|
370
|
-
|
|
356
|
+
let filename = fileNameFromPath(options.url);
|
|
371
357
|
if (filename.indexOf('?')) {
|
|
372
358
|
// strip any params if were any
|
|
373
359
|
filename = filename.split('?')[0];
|
|
@@ -376,7 +362,7 @@ var Http = /** @class */ (function () {
|
|
|
376
362
|
makeRemoteRequest();
|
|
377
363
|
}
|
|
378
364
|
// save settings
|
|
379
|
-
TNSHttpSettings.currentlySavedImages[options.url] =
|
|
365
|
+
TNSHttpSettings.currentlySavedImages[options.url] = Object.assign(Object.assign({}, (imageSetting || {})), { date: Date.now(), requests: requests + 1, localPath });
|
|
380
366
|
ApplicationSettings.setString(SaveImageStorageKey, JSON.stringify(TNSHttpSettings.currentlySavedImages));
|
|
381
367
|
}
|
|
382
368
|
else {
|
|
@@ -395,46 +381,46 @@ var Http = /** @class */ (function () {
|
|
|
395
381
|
com.github.triniwiz.async.Async2.Http.cancelRequest(id);
|
|
396
382
|
};
|
|
397
383
|
return request;
|
|
398
|
-
}
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
|
|
384
|
+
}
|
|
385
|
+
static getFile(options) {
|
|
386
|
+
const headers = {};
|
|
387
|
+
let statusCode = 0;
|
|
388
|
+
let id;
|
|
389
|
+
const counter = requestIdCounter;
|
|
390
|
+
const request = new Promise((resolve, reject) => {
|
|
405
391
|
try {
|
|
406
392
|
// initialize the options
|
|
407
|
-
|
|
393
|
+
const javaOptions = Http.buildJavaDownloadOptions(options);
|
|
408
394
|
if (TNSHttpSettings.debug) {
|
|
409
395
|
// @ts-ignore
|
|
410
396
|
if (global.__inspector && global.__inspector.isConnected) {
|
|
411
397
|
NetworkAgent.requestWillBeSent(requestIdCounter, options);
|
|
412
398
|
}
|
|
413
399
|
}
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
onCancel
|
|
400
|
+
const makeRemoteRequest = () => {
|
|
401
|
+
const callback = new com.github.triniwiz.async.Async2.Http.Callback({
|
|
402
|
+
onCancel(param) {
|
|
417
403
|
reject({
|
|
418
404
|
type: HttpError.Cancelled,
|
|
419
405
|
result: param
|
|
420
406
|
});
|
|
421
407
|
requestCallbacks.delete(id);
|
|
422
408
|
},
|
|
423
|
-
onComplete
|
|
409
|
+
onComplete(result) {
|
|
424
410
|
if (result && result.headers) {
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
for (
|
|
411
|
+
const length = result.headers.size();
|
|
412
|
+
let pair;
|
|
413
|
+
for (let i = 0; i < length; i++) {
|
|
428
414
|
pair = result.headers.get(i);
|
|
429
415
|
addHeader(headers, pair.key, pair.value);
|
|
430
416
|
}
|
|
431
417
|
}
|
|
432
418
|
// send response data (for requestId) to network debugger
|
|
433
|
-
|
|
419
|
+
let contentType = headers['Content-Type'];
|
|
434
420
|
if (isNullOrUndefined(contentType)) {
|
|
435
421
|
contentType = headers['content-type'];
|
|
436
422
|
}
|
|
437
|
-
|
|
423
|
+
let acceptHeader;
|
|
438
424
|
if (isNullOrUndefined(contentType)) {
|
|
439
425
|
acceptHeader = headers['Accept'];
|
|
440
426
|
if (isNullOrUndefined(acceptHeader)) {
|
|
@@ -444,14 +430,13 @@ var Http = /** @class */ (function () {
|
|
|
444
430
|
else {
|
|
445
431
|
acceptHeader = contentType;
|
|
446
432
|
}
|
|
447
|
-
|
|
433
|
+
let returnType = 'text/plain';
|
|
448
434
|
if (!isNullOrUndefined(acceptHeader) && isString(acceptHeader)) {
|
|
449
|
-
|
|
450
|
-
|
|
451
|
-
|
|
452
|
-
|
|
453
|
-
for (
|
|
454
|
-
var value = acceptValues_2[_i];
|
|
435
|
+
let acceptValues = acceptHeader.split(',');
|
|
436
|
+
let quality = [];
|
|
437
|
+
let defaultQuality = [];
|
|
438
|
+
let customQuality = [];
|
|
439
|
+
for (let value of acceptValues) {
|
|
455
440
|
if (value.indexOf(';q=') > -1) {
|
|
456
441
|
customQuality.push(value);
|
|
457
442
|
}
|
|
@@ -459,13 +444,13 @@ var Http = /** @class */ (function () {
|
|
|
459
444
|
defaultQuality.push(value);
|
|
460
445
|
}
|
|
461
446
|
}
|
|
462
|
-
customQuality = customQuality.sort(
|
|
463
|
-
|
|
464
|
-
|
|
447
|
+
customQuality = customQuality.sort((a, b) => {
|
|
448
|
+
const a_quality = parseFloat(a.substring(a.indexOf(';q=')).replace(';q=', ''));
|
|
449
|
+
const b_quality = parseFloat(b.substring(b.indexOf(';q=')).replace(';q=', ''));
|
|
465
450
|
return (b_quality - a_quality);
|
|
466
451
|
});
|
|
467
|
-
quality.push
|
|
468
|
-
quality.push
|
|
452
|
+
quality.push(...defaultQuality);
|
|
453
|
+
quality.push(...customQuality);
|
|
469
454
|
returnType = quality[0];
|
|
470
455
|
}
|
|
471
456
|
result['statusCode'] = statusCode;
|
|
@@ -475,8 +460,8 @@ var Http = /** @class */ (function () {
|
|
|
475
460
|
if (global.__inspector && global.__inspector.isConnected) {
|
|
476
461
|
NetworkAgent.responseReceived(counter, {
|
|
477
462
|
url: result.url,
|
|
478
|
-
statusCode
|
|
479
|
-
headers
|
|
463
|
+
statusCode,
|
|
464
|
+
headers,
|
|
480
465
|
responseAsString: isString ? (result.contentText ? result.contentText : result.content.toString()) : null,
|
|
481
466
|
responseAsImage: null // TODO needs base64 Image
|
|
482
467
|
}, headers);
|
|
@@ -485,18 +470,18 @@ var Http = /** @class */ (function () {
|
|
|
485
470
|
resolve(result.filePath);
|
|
486
471
|
requestCallbacks.delete(id);
|
|
487
472
|
},
|
|
488
|
-
onError
|
|
473
|
+
onError(param0, param1) {
|
|
489
474
|
reject({
|
|
490
475
|
type: HttpError.Error,
|
|
491
476
|
message: param0
|
|
492
477
|
});
|
|
493
478
|
requestCallbacks.delete(id);
|
|
494
479
|
},
|
|
495
|
-
onHeaders
|
|
480
|
+
onHeaders(jHeaders, status) {
|
|
496
481
|
statusCode = status;
|
|
497
|
-
|
|
498
|
-
|
|
499
|
-
for (
|
|
482
|
+
const length = jHeaders.size();
|
|
483
|
+
let pair;
|
|
484
|
+
for (let i = 0; i < length; i++) {
|
|
500
485
|
pair = jHeaders.get(i);
|
|
501
486
|
addHeader(headers, pair.key, pair.value);
|
|
502
487
|
}
|
|
@@ -504,29 +489,27 @@ var Http = /** @class */ (function () {
|
|
|
504
489
|
options.onHeaders(headers, statusCode);
|
|
505
490
|
}
|
|
506
491
|
requestCallbacks.delete(id);
|
|
507
|
-
},
|
|
508
|
-
onLoading: function () {
|
|
492
|
+
}, onLoading() {
|
|
509
493
|
options.onLoading();
|
|
510
494
|
requestCallbacks.delete(id);
|
|
511
|
-
},
|
|
512
|
-
onProgress: function (lengthComputable, loaded, total) {
|
|
495
|
+
}, onProgress(lengthComputable, loaded, total) {
|
|
513
496
|
if (options.onProgress) {
|
|
514
497
|
options.onProgress({
|
|
515
|
-
lengthComputable
|
|
516
|
-
loaded
|
|
517
|
-
total
|
|
498
|
+
lengthComputable,
|
|
499
|
+
loaded,
|
|
500
|
+
total
|
|
518
501
|
});
|
|
519
502
|
}
|
|
520
503
|
requestCallbacks.delete(id);
|
|
521
504
|
},
|
|
522
|
-
onTimeout
|
|
505
|
+
onTimeout() {
|
|
523
506
|
reject({
|
|
524
507
|
type: HttpError.Timeout
|
|
525
508
|
});
|
|
526
509
|
requestCallbacks.delete(id);
|
|
527
510
|
}
|
|
528
511
|
});
|
|
529
|
-
id = com.github.triniwiz.async.Async2.Http.getFileRequest(
|
|
512
|
+
id = com.github.triniwiz.async.Async2.Http.getFileRequest(javaOptions, callback);
|
|
530
513
|
requestCallbacks.set(id, callback);
|
|
531
514
|
};
|
|
532
515
|
makeRemoteRequest();
|
|
@@ -543,12 +526,10 @@ var Http = /** @class */ (function () {
|
|
|
543
526
|
com.github.triniwiz.async.Async2.Http.cancelRequest(id);
|
|
544
527
|
};
|
|
545
528
|
return request;
|
|
546
|
-
}
|
|
547
|
-
|
|
548
|
-
}());
|
|
549
|
-
export { Http };
|
|
529
|
+
}
|
|
530
|
+
}
|
|
550
531
|
function serialize(data) {
|
|
551
|
-
|
|
532
|
+
let store;
|
|
552
533
|
switch (typeof data) {
|
|
553
534
|
case 'string':
|
|
554
535
|
case 'boolean':
|
|
@@ -564,11 +545,11 @@ function serialize(data) {
|
|
|
564
545
|
}
|
|
565
546
|
if (Array.isArray(data)) {
|
|
566
547
|
store = new org.json.JSONArray();
|
|
567
|
-
data.forEach(
|
|
548
|
+
data.forEach((item) => store.put(serialize(item)));
|
|
568
549
|
return store;
|
|
569
550
|
}
|
|
570
551
|
store = new org.json.JSONObject();
|
|
571
|
-
Object.keys(data).forEach(
|
|
552
|
+
Object.keys(data).forEach((key) => store.put(key, serialize(data[key])));
|
|
572
553
|
return store;
|
|
573
554
|
}
|
|
574
555
|
default:
|
|
@@ -583,7 +564,7 @@ function deserialize(data) {
|
|
|
583
564
|
return data;
|
|
584
565
|
}
|
|
585
566
|
if (typeof data.getClass === 'function') {
|
|
586
|
-
|
|
567
|
+
let store;
|
|
587
568
|
switch (data.getClass().getName()) {
|
|
588
569
|
case 'java.lang.String': {
|
|
589
570
|
return String(data);
|
|
@@ -599,16 +580,16 @@ function deserialize(data) {
|
|
|
599
580
|
}
|
|
600
581
|
case 'org.json.JSONArray': {
|
|
601
582
|
store = [];
|
|
602
|
-
for (
|
|
583
|
+
for (let j = 0; j < data.length(); j++) {
|
|
603
584
|
store[j] = deserialize(data.get(j));
|
|
604
585
|
}
|
|
605
586
|
break;
|
|
606
587
|
}
|
|
607
588
|
case 'org.json.JSONObject': {
|
|
608
589
|
store = {};
|
|
609
|
-
|
|
590
|
+
let i = data.keys();
|
|
610
591
|
while (i.hasNext()) {
|
|
611
|
-
|
|
592
|
+
let key = i.next();
|
|
612
593
|
store[key] = deserialize(data.get(key));
|
|
613
594
|
}
|
|
614
595
|
break;
|
|
@@ -624,7 +605,7 @@ function deserialize(data) {
|
|
|
624
605
|
}
|
|
625
606
|
}
|
|
626
607
|
function decodeResponse(raw, encoding) {
|
|
627
|
-
|
|
608
|
+
let charsetName = 'UTF-8';
|
|
628
609
|
if (encoding === HttpResponseEncoding.GBK) {
|
|
629
610
|
charsetName = 'GBK';
|
|
630
611
|
}
|
|
@@ -638,7 +619,7 @@ export function addHeader(headers, key, value) {
|
|
|
638
619
|
headers[key].push(value);
|
|
639
620
|
}
|
|
640
621
|
else {
|
|
641
|
-
|
|
622
|
+
const values = [headers[key]];
|
|
642
623
|
values.push(value);
|
|
643
624
|
headers[key] = values;
|
|
644
625
|
}
|