@nativescript/canvas-polyfill 3.0.0-alpha.9 → 3.0.0-beta.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/DOM/CharacterData.d.ts +7 -0
- package/DOM/CharacterData.js +18 -0
- package/DOM/CharacterData.js.map +1 -1
- package/DOM/Document.js +4 -2
- package/DOM/Document.js.map +1 -1
- package/DOM/Element.d.ts +1 -0
- package/DOM/Element.js +14 -4
- package/DOM/Element.js.map +1 -1
- package/DOM/HTMLElement.js +4 -9
- package/DOM/HTMLElement.js.map +1 -1
- package/DOM/HTMLImageElement.js +50 -35
- package/DOM/HTMLImageElement.js.map +1 -1
- package/DOM/Text.d.ts +0 -1
- package/DOM/Text.js.map +1 -1
- package/DOM/XMLDocument.js +1 -1
- package/DOM/XMLDocument.js.map +1 -1
- package/DOM/querySelector.d.ts +2 -0
- package/DOM/querySelector.js +6 -0
- package/DOM/querySelector.js.map +1 -0
- package/DOM/querySelectorGuard.d.ts +1 -0
- package/DOM/querySelectorGuard.js +26 -0
- package/DOM/querySelectorGuard.js.map +1 -0
- package/DOM/svg/SVGElement.d.ts +4 -2
- package/DOM/svg/SVGElement.js +27 -10
- package/DOM/svg/SVGElement.js.map +1 -1
- package/DOM/svg/SVGTSpanElement.d.ts +4 -0
- package/DOM/svg/SVGTSpanElement.js +9 -0
- package/DOM/svg/SVGTSpanElement.js.map +1 -0
- package/DOM/svg/index.d.ts +1 -0
- package/DOM/svg/index.js +1 -0
- package/DOM/svg/index.js.map +1 -1
- package/async/file/file.windows.d.ts +10 -0
- package/async/file/file.windows.js +46 -0
- package/async/file/file.windows.js.map +1 -0
- package/async/http/http.windows.d.ts +19 -0
- package/async/http/http.windows.js +243 -0
- package/async/http/http.windows.js.map +1 -0
- package/async/xhr/TNSXMLHttpRequest.js +25 -6
- package/async/xhr/TNSXMLHttpRequest.js.map +1 -1
- package/gamepad.d.ts +4 -0
- package/gamepad.js +44 -0
- package/gamepad.js.map +1 -0
- package/navigator.d.ts +1 -1
- package/navigator.js +2 -2
- package/navigator.js.map +1 -1
- package/package.json +1 -1
- package/resize.js +36 -10
- package/resize.js.map +1 -1
- package/utils.js +2 -1
- package/utils.js.map +1 -1
- package/window.js +9 -12
- package/window.js.map +1 -1
package/DOM/svg/SVGElement.js
CHANGED
|
@@ -14,18 +14,15 @@ export class SVGElement extends Element {
|
|
|
14
14
|
return this._className;
|
|
15
15
|
}
|
|
16
16
|
set className(value) { }
|
|
17
|
-
_appendChild(view
|
|
17
|
+
_appendChild(view) {
|
|
18
18
|
if (view?.nativeElement?.__domElement) {
|
|
19
19
|
this.nativeValue?.__domElement?.appendChild?.(view.nativeElement.__domElement);
|
|
20
|
-
if (redraw) {
|
|
21
|
-
this.nativeValue.__redraw();
|
|
22
|
-
}
|
|
23
20
|
this.nativeValue?.addChild?.(view.nativeElement);
|
|
24
21
|
return view;
|
|
25
22
|
}
|
|
26
23
|
else if (view instanceof Text) {
|
|
27
|
-
const dom = this.__domElement ?? this.nativeElement.__domElement;
|
|
28
|
-
const text = dom
|
|
24
|
+
const dom = (this.__domElement ?? this.nativeElement.__domElement);
|
|
25
|
+
const text = dom?.createTextNode?.(view.data);
|
|
29
26
|
view.__domNode = text;
|
|
30
27
|
dom?.appendChild?.(text);
|
|
31
28
|
return view;
|
|
@@ -38,16 +35,26 @@ export class SVGElement extends Element {
|
|
|
38
35
|
return null;
|
|
39
36
|
}
|
|
40
37
|
appendChild(view) {
|
|
41
|
-
return this._appendChild(view
|
|
38
|
+
return this._appendChild(view);
|
|
42
39
|
}
|
|
43
40
|
append(views) {
|
|
44
41
|
for (const view of arguments) {
|
|
45
|
-
this._appendChild(view
|
|
42
|
+
this._appendChild(view);
|
|
46
43
|
}
|
|
47
|
-
this.nativeValue.__redraw();
|
|
48
44
|
}
|
|
49
45
|
insertBefore(view) { }
|
|
50
|
-
removeChild(view) {
|
|
46
|
+
removeChild(view) {
|
|
47
|
+
const child = view?.nativeElement?.__domElement ?? view?.__domNode;
|
|
48
|
+
if (!child) {
|
|
49
|
+
return null;
|
|
50
|
+
}
|
|
51
|
+
const parent = (this.__domElement ?? this.nativeElement?.__domElement);
|
|
52
|
+
if (!parent?.removeChild?.(child)) {
|
|
53
|
+
return null;
|
|
54
|
+
}
|
|
55
|
+
this.nativeValue?.removeChild?.(view.nativeElement);
|
|
56
|
+
return view;
|
|
57
|
+
}
|
|
51
58
|
setAttribute(key, value) {
|
|
52
59
|
const dom = this.__domElement ?? this.nativeElement.__domElement;
|
|
53
60
|
if (dom) {
|
|
@@ -64,6 +71,16 @@ export class SVGElement extends Element {
|
|
|
64
71
|
}
|
|
65
72
|
return super.getAttribute(key) ?? null;
|
|
66
73
|
}
|
|
74
|
+
get textContent() {
|
|
75
|
+
const dom = this.__domElement ?? this.nativeElement?.__domElement;
|
|
76
|
+
return dom?.textContent ?? '';
|
|
77
|
+
}
|
|
78
|
+
set textContent(value) {
|
|
79
|
+
const dom = this.__domElement ?? this.nativeElement?.__domElement;
|
|
80
|
+
if (dom) {
|
|
81
|
+
dom.textContent = value;
|
|
82
|
+
}
|
|
83
|
+
}
|
|
67
84
|
removeAttribute(key) {
|
|
68
85
|
const dom = this.__domElement ?? this.nativeElement.__domElement;
|
|
69
86
|
if (dom) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SVGElement.js","sourceRoot":"","sources":["../../../../../packages/canvas-polyfill/DOM/svg/SVGElement.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAErC,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AAG/B,MAAM,OAAO,UAAW,SAAQ,OAAO;IAGtC,YAAY,OAAe;QAC1B,KAAK,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC;QAHd,eAAU,GAAG,IAAI,iBAAiB,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;IAI9D,CAAC;IAED,IAAY,WAAW;QACtB,OAAO,IAAI,CAAC,aAAsB,CAAC;IACpC,CAAC;IAED,aAAa;IACb,IAAI,SAAS;QACZ,OAAO,IAAI,CAAC,UAAU,CAAC;IACxB,CAAC;IAED,IAAI,SAAS,CAAC,KAAc,IAAG,CAAC;IAEhC,YAAY,CAAC,IAAI
|
|
1
|
+
{"version":3,"file":"SVGElement.js","sourceRoot":"","sources":["../../../../../packages/canvas-polyfill/DOM/svg/SVGElement.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { SVGTextPositioningElement } from './SVGTextPositioningElement';
|
|
2
|
+
import { TSpan } from '@nativescript/canvas-svg';
|
|
3
|
+
export class SVGTSpanElement extends SVGTextPositioningElement {
|
|
4
|
+
constructor() {
|
|
5
|
+
super('tspan');
|
|
6
|
+
this.nativeElement = new TSpan();
|
|
7
|
+
}
|
|
8
|
+
}
|
|
9
|
+
//# sourceMappingURL=SVGTSpanElement.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SVGTSpanElement.js","sourceRoot":"","sources":["../../../../../packages/canvas-polyfill/DOM/svg/SVGTSpanElement.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,yBAAyB,EAAE,MAAM,6BAA6B,CAAC;AACxE,OAAO,EAAE,KAAK,EAAE,MAAM,0BAA0B,CAAC;AACjD,MAAM,OAAO,eAAgB,SAAQ,yBAAyB;IAC7D;QACC,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,aAAa,GAAG,IAAI,KAAK,EAAW,CAAC;IAC3C,CAAC;CACD"}
|
package/DOM/svg/index.d.ts
CHANGED
|
@@ -22,6 +22,7 @@ export * from './SVGMatrix';
|
|
|
22
22
|
export * from './SVGTransform';
|
|
23
23
|
export * from './SVGAnimatedRect';
|
|
24
24
|
export * from './SVGTextElement';
|
|
25
|
+
export * from './SVGTSpanElement';
|
|
25
26
|
export * from './SVGStopElement';
|
|
26
27
|
export * from './SVGUseElement';
|
|
27
28
|
export * from './SVGAnimatedTransformList';
|
package/DOM/svg/index.js
CHANGED
|
@@ -22,6 +22,7 @@ export * from './SVGMatrix';
|
|
|
22
22
|
export * from './SVGTransform';
|
|
23
23
|
export * from './SVGAnimatedRect';
|
|
24
24
|
export * from './SVGTextElement';
|
|
25
|
+
export * from './SVGTSpanElement';
|
|
25
26
|
export * from './SVGStopElement';
|
|
26
27
|
export * from './SVGUseElement';
|
|
27
28
|
export * from './SVGAnimatedTransformList';
|
package/DOM/svg/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../packages/canvas-polyfill/DOM/svg/index.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAC;AACpC,cAAc,qBAAqB,CAAC;AACpC,cAAc,oBAAoB,CAAC;AACnC,cAAc,cAAc,CAAC;AAC7B,cAAc,qBAAqB,CAAC;AACpC,cAAc,sBAAsB,CAAC;AACrC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,sBAAsB,CAAC;AACrC,cAAc,sBAAsB,CAAC;AACrC,cAAc,mBAAmB,CAAC;AAClC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,kBAAkB,CAAC;AACjC,cAAc,kBAAkB,CAAC;AACjC,cAAc,kBAAkB,CAAC;AACjC,cAAc,qBAAqB,CAAC;AACpC,cAAc,sBAAsB,CAAC;AACrC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,kBAAkB,CAAC;AACjC,cAAc,iBAAiB,CAAC;AAChC,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,cAAc,kBAAkB,CAAC;AACjC,cAAc,iBAAiB,CAAC;AAChC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,oBAAoB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../packages/canvas-polyfill/DOM/svg/index.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAC;AACpC,cAAc,qBAAqB,CAAC;AACpC,cAAc,oBAAoB,CAAC;AACnC,cAAc,cAAc,CAAC;AAC7B,cAAc,qBAAqB,CAAC;AACpC,cAAc,sBAAsB,CAAC;AACrC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,sBAAsB,CAAC;AACrC,cAAc,sBAAsB,CAAC;AACrC,cAAc,mBAAmB,CAAC;AAClC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,kBAAkB,CAAC;AACjC,cAAc,kBAAkB,CAAC;AACjC,cAAc,kBAAkB,CAAC;AACjC,cAAc,qBAAqB,CAAC;AACpC,cAAc,sBAAsB,CAAC;AACrC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,kBAAkB,CAAC;AACjC,cAAc,iBAAiB,CAAC;AAChC,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,cAAc,iBAAiB,CAAC;AAChC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,oBAAoB,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export declare class FileManager {
|
|
2
|
+
/** `readFile` is always the native module's (off the JS thread, straight into an ArrayBuffer). */
|
|
3
|
+
static supportFastRead: boolean;
|
|
4
|
+
static writeFile(bytes: any, path: string, callback: (...args: any[]) => void): void;
|
|
5
|
+
static readFile(path: string, options: Options, callback: (...args: any[]) => void): void;
|
|
6
|
+
static deleteFile(path: string, options: Options, callback: (...args: any[]) => void): void;
|
|
7
|
+
}
|
|
8
|
+
export interface Options {
|
|
9
|
+
asStream?: boolean;
|
|
10
|
+
}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import { getFileAccess } from '@nativescript/core';
|
|
2
|
+
/** The bytes of an ArrayBuffer or a view, as an ArrayBuffer (no copy when it is a whole buffer). */
|
|
3
|
+
function toArrayBuffer(bytes) {
|
|
4
|
+
if (bytes instanceof ArrayBuffer) {
|
|
5
|
+
return bytes;
|
|
6
|
+
}
|
|
7
|
+
if (ArrayBuffer.isView(bytes)) {
|
|
8
|
+
if (bytes.byteOffset === 0 && bytes.byteLength === bytes.buffer.byteLength) {
|
|
9
|
+
return bytes.buffer;
|
|
10
|
+
}
|
|
11
|
+
return bytes.buffer.slice(bytes.byteOffset, bytes.byteOffset + bytes.byteLength);
|
|
12
|
+
}
|
|
13
|
+
return null;
|
|
14
|
+
}
|
|
15
|
+
export class FileManager {
|
|
16
|
+
static writeFile(bytes, path, callback) {
|
|
17
|
+
const buffer = toArrayBuffer(bytes);
|
|
18
|
+
if (!buffer) {
|
|
19
|
+
callback(new Error('writeFile expects an ArrayBuffer or an ArrayBufferView'), null);
|
|
20
|
+
return;
|
|
21
|
+
}
|
|
22
|
+
getFileAccess()
|
|
23
|
+
.writeBufferAsync(path, buffer)
|
|
24
|
+
.then(() => callback(null, path), (error) => callback(error instanceof Error ? error : new Error(String(error)), null));
|
|
25
|
+
}
|
|
26
|
+
static readFile(path, options = { asStream: false }, callback) {
|
|
27
|
+
// Read off the JS thread by the native module, straight into an ArrayBuffer.
|
|
28
|
+
global.CanvasModule.readFile(path, function (error, result) {
|
|
29
|
+
if (error) {
|
|
30
|
+
callback(new Error(error), null);
|
|
31
|
+
}
|
|
32
|
+
else {
|
|
33
|
+
callback(null, result);
|
|
34
|
+
}
|
|
35
|
+
});
|
|
36
|
+
}
|
|
37
|
+
static deleteFile(path, options = { asStream: false }, callback) {
|
|
38
|
+
// Through WinRT promises: the operation completes (or rejects for a missing file) later.
|
|
39
|
+
NSWinRT.toPromise(Windows.Storage.StorageFile.GetFileFromPathAsync(path))
|
|
40
|
+
.then((file) => NSWinRT.toPromise(file.DeleteAsync()))
|
|
41
|
+
.then(() => callback(null, true), (error) => callback(error instanceof Error ? error : new Error(String(error?.message ?? error)), null));
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
/** `readFile` is always the native module's (off the JS thread, straight into an ArrayBuffer). */
|
|
45
|
+
FileManager.supportFastRead = true;
|
|
46
|
+
//# sourceMappingURL=file.windows.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"file.windows.js","sourceRoot":"","sources":["../../../../../packages/canvas-polyfill/async/file/file.windows.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAInD,oGAAoG;AACpG,SAAS,aAAa,CAAC,KAAU;IAChC,IAAI,KAAK,YAAY,WAAW,EAAE,CAAC;QAClC,OAAO,KAAK,CAAC;IACd,CAAC;IACD,IAAI,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;QAC/B,IAAI,KAAK,CAAC,UAAU,KAAK,CAAC,IAAI,KAAK,CAAC,UAAU,KAAK,KAAK,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC;YAC5E,OAAO,KAAK,CAAC,MAAqB,CAAC;QACpC,CAAC;QACD,OAAO,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,UAAU,EAAE,KAAK,CAAC,UAAU,GAAG,KAAK,CAAC,UAAU,CAAgB,CAAC;IACjG,CAAC;IACD,OAAO,IAAI,CAAC;AACb,CAAC;AAED,MAAM,OAAO,WAAW;IAIhB,MAAM,CAAC,SAAS,CAAC,KAAU,EAAE,IAAY,EAAE,QAA2B;QAC5E,MAAM,MAAM,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC;QACpC,IAAI,CAAC,MAAM,EAAE,CAAC;YACb,QAAQ,CAAC,IAAI,KAAK,CAAC,wDAAwD,CAAC,EAAE,IAAI,CAAC,CAAC;YACpF,OAAO;QACR,CAAC;QACD,aAAa,EAAE;aACb,gBAAgB,CAAC,IAAI,EAAE,MAAM,CAAC;aAC9B,IAAI,CACJ,GAAG,EAAE,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,EAC1B,CAAC,KAAK,EAAE,EAAE,CAAC,QAAQ,CAAC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,CACpF,CAAC;IACJ,CAAC;IAEM,MAAM,CAAC,QAAQ,CAAC,IAAY,EAAE,UAAmB,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE,QAA2B;QACvG,6EAA6E;QAC7E,MAAM,CAAC,YAAY,CAAC,QAAQ,CAAC,IAAI,EAAE,UAAU,KAAK,EAAE,MAAkE;YACrH,IAAI,KAAK,EAAE,CAAC;gBACX,QAAQ,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,CAAC;YAClC,CAAC;iBAAM,CAAC;gBACP,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;YACxB,CAAC;QACF,CAAC,CAAC,CAAC;IACJ,CAAC;IAEM,MAAM,CAAC,UAAU,CAAC,IAAY,EAAE,UAAmB,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE,QAA2B;QACzG,yFAAyF;QACzF,OAAO,CAAC,SAAS,CAAC,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC;aACvE,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;aACrD,IAAI,CACJ,GAAG,EAAE,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,EAC1B,CAAC,KAAK,EAAE,EAAE,CAAC,QAAQ,CAAC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,EAAE,OAAO,IAAI,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,CACtG,CAAC;IACJ,CAAC;;AApCD,kGAAkG;AAC3F,2BAAe,GAAG,IAAI,CAAC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { Headers, HttpDownloadRequestOptions, HttpRequestOptions } from './http-request-common';
|
|
2
|
+
export type CancellablePromise = Promise<any> & {
|
|
3
|
+
cancel: () => void;
|
|
4
|
+
};
|
|
5
|
+
export declare enum HttpResponseEncoding {
|
|
6
|
+
UTF8 = 0,
|
|
7
|
+
GBK = 1
|
|
8
|
+
}
|
|
9
|
+
export declare function addHeader(headers: Headers, key: string, value: string): void;
|
|
10
|
+
export declare class Http {
|
|
11
|
+
/** Pending WinRT operations by request, for cancel(). */
|
|
12
|
+
static _tasks: Map<number, any>;
|
|
13
|
+
private static _nextId;
|
|
14
|
+
private static _client;
|
|
15
|
+
constructor();
|
|
16
|
+
private static get client();
|
|
17
|
+
request(options: HttpRequestOptions): CancellablePromise;
|
|
18
|
+
static getFile(options: HttpDownloadRequestOptions): CancellablePromise;
|
|
19
|
+
}
|
|
@@ -0,0 +1,243 @@
|
|
|
1
|
+
import { Utils } from '@nativescript/core';
|
|
2
|
+
import { FileManager } from '../file/file';
|
|
3
|
+
import { HttpError, TNSHttpSettings } from './http-request-common';
|
|
4
|
+
export var HttpResponseEncoding;
|
|
5
|
+
(function (HttpResponseEncoding) {
|
|
6
|
+
HttpResponseEncoding[HttpResponseEncoding["UTF8"] = 0] = "UTF8";
|
|
7
|
+
HttpResponseEncoding[HttpResponseEncoding["GBK"] = 1] = "GBK";
|
|
8
|
+
})(HttpResponseEncoding || (HttpResponseEncoding = {}));
|
|
9
|
+
const GET = 'GET';
|
|
10
|
+
const TEXT_TYPES = ['text/plain', 'application/xml', 'application/rss+xml', 'text/html', 'text/xml', 'image/svg+xml'];
|
|
11
|
+
export function addHeader(headers, key, value) {
|
|
12
|
+
if (!headers[key]) {
|
|
13
|
+
headers[key] = value;
|
|
14
|
+
}
|
|
15
|
+
else if (Array.isArray(headers[key])) {
|
|
16
|
+
headers[key].push(value);
|
|
17
|
+
}
|
|
18
|
+
else {
|
|
19
|
+
const values = [headers[key]];
|
|
20
|
+
values.push(value);
|
|
21
|
+
headers[key] = values;
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
function isTextContentType(contentType) {
|
|
25
|
+
const type = typeof contentType === 'string' ? contentType.toLowerCase() : '';
|
|
26
|
+
return TEXT_TYPES.some((text) => type.indexOf(text) >= 0);
|
|
27
|
+
}
|
|
28
|
+
/** The highest-quality type of an Accept (or Content-Type) value, as the iOS implementation picks it. */
|
|
29
|
+
function preferredType(value) {
|
|
30
|
+
const plain = [];
|
|
31
|
+
const weighted = [];
|
|
32
|
+
for (const type of value.split(',')) {
|
|
33
|
+
(type.indexOf(';q=') > -1 ? weighted : plain).push(type.trim());
|
|
34
|
+
}
|
|
35
|
+
const quality = (type) => parseFloat(type.substring(type.indexOf(';q=') + 3));
|
|
36
|
+
weighted.sort((a, b) => quality(b) - quality(a));
|
|
37
|
+
return [...plain, ...weighted][0] ?? 'text/plain';
|
|
38
|
+
}
|
|
39
|
+
/** Name/value pairs of an IIterable<IKeyValuePair<string, string>> header collection. */
|
|
40
|
+
function collectHeaders(collection, into) {
|
|
41
|
+
try {
|
|
42
|
+
const iterator = collection.First();
|
|
43
|
+
while (iterator && iterator.HasCurrent) {
|
|
44
|
+
const pair = iterator.Current;
|
|
45
|
+
addHeader(into, pair.Key, pair.Value);
|
|
46
|
+
iterator.MoveNext();
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
catch (e) { }
|
|
50
|
+
}
|
|
51
|
+
function headerValue(headers, name) {
|
|
52
|
+
const lower = name.toLowerCase();
|
|
53
|
+
const entries = headers instanceof Map ? Array.from(headers.entries()) : Object.entries(headers ?? {});
|
|
54
|
+
const match = entries.find(([key]) => key.toLowerCase() === lower);
|
|
55
|
+
return match ? String(Array.isArray(match[1]) ? match[1][0] : match[1]) : undefined;
|
|
56
|
+
}
|
|
57
|
+
/** An IBuffer's bytes as an ArrayBuffer: a view over the buffer where the runtime supports it. */
|
|
58
|
+
function bufferToArrayBuffer(buffer) {
|
|
59
|
+
const view = NSWinRT.interop?.arrayBufferFromBuffer?.(buffer);
|
|
60
|
+
if (view instanceof ArrayBuffer) {
|
|
61
|
+
return view;
|
|
62
|
+
}
|
|
63
|
+
const bytes = new Uint8Array(buffer.Length);
|
|
64
|
+
Windows.Storage.Streams.DataReader.FromBuffer(buffer).ReadBytes(bytes);
|
|
65
|
+
return bytes.buffer;
|
|
66
|
+
}
|
|
67
|
+
function bytesToBuffer(bytes) {
|
|
68
|
+
const writer = new Windows.Storage.Streams.DataWriter();
|
|
69
|
+
writer.WriteBytes(bytes);
|
|
70
|
+
return writer.DetachBuffer();
|
|
71
|
+
}
|
|
72
|
+
function requestContent(content) {
|
|
73
|
+
const Http = Windows.Web.Http;
|
|
74
|
+
if (Utils.isString(content)) {
|
|
75
|
+
return new Http.HttpStringContent(content.toString());
|
|
76
|
+
}
|
|
77
|
+
if (content instanceof ArrayBuffer) {
|
|
78
|
+
return new Http.HttpBufferContent(bytesToBuffer(new Uint8Array(content)));
|
|
79
|
+
}
|
|
80
|
+
if (ArrayBuffer.isView(content)) {
|
|
81
|
+
return new Http.HttpBufferContent(bytesToBuffer(new Uint8Array(content.buffer, content.byteOffset, content.byteLength)));
|
|
82
|
+
}
|
|
83
|
+
if (Utils.isObject(content)) {
|
|
84
|
+
return new Http.HttpStringContent(JSON.stringify(content));
|
|
85
|
+
}
|
|
86
|
+
return null;
|
|
87
|
+
}
|
|
88
|
+
function decodeText(bytes) {
|
|
89
|
+
try {
|
|
90
|
+
return new TextDecoder('utf-8').decode(new Uint8Array(bytes));
|
|
91
|
+
}
|
|
92
|
+
catch (e) {
|
|
93
|
+
// Latin-1, as the iOS implementation falls back to.
|
|
94
|
+
let text = '';
|
|
95
|
+
const view = new Uint8Array(bytes);
|
|
96
|
+
for (let i = 0; i < view.length; i++) {
|
|
97
|
+
text += String.fromCharCode(view[i]);
|
|
98
|
+
}
|
|
99
|
+
return text;
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
export class Http {
|
|
103
|
+
constructor() { }
|
|
104
|
+
static get client() {
|
|
105
|
+
// One client for the app, as HttpClient is designed to be shared (connection reuse).
|
|
106
|
+
if (!Http._client) {
|
|
107
|
+
Http._client = new Windows.Web.Http.HttpClient();
|
|
108
|
+
}
|
|
109
|
+
return Http._client;
|
|
110
|
+
}
|
|
111
|
+
request(options) {
|
|
112
|
+
const id = ++Http._nextId;
|
|
113
|
+
let settled = false;
|
|
114
|
+
let failure;
|
|
115
|
+
let timer;
|
|
116
|
+
const request = new Promise((resolve, reject) => {
|
|
117
|
+
if (!options.url) {
|
|
118
|
+
reject(new Error('Request url was empty.'));
|
|
119
|
+
return;
|
|
120
|
+
}
|
|
121
|
+
const fail = (type, message) => {
|
|
122
|
+
if (!settled) {
|
|
123
|
+
settled = true;
|
|
124
|
+
reject({ type, message });
|
|
125
|
+
}
|
|
126
|
+
};
|
|
127
|
+
const done = () => {
|
|
128
|
+
settled = true;
|
|
129
|
+
clearTimeout(timer);
|
|
130
|
+
Http._tasks.delete(id);
|
|
131
|
+
};
|
|
132
|
+
try {
|
|
133
|
+
const Http_ = Windows.Web.Http;
|
|
134
|
+
const method = Utils.isDefined(options.method) ? options.method : GET;
|
|
135
|
+
const message = new Http_.HttpRequestMessage(new Http_.HttpMethod(method), new Windows.Foundation.Uri(options.url.trim()));
|
|
136
|
+
const content = options.content !== undefined && options.content !== null ? requestContent(options.content) : null;
|
|
137
|
+
const headers = options.headers instanceof Map ? Array.from(options.headers.entries()) : Object.entries(options.headers ?? {});
|
|
138
|
+
for (const [key, value] of headers) {
|
|
139
|
+
const text = String(value);
|
|
140
|
+
if (key.toLowerCase() === 'content-type') {
|
|
141
|
+
if (content) {
|
|
142
|
+
content.Headers.ContentType = Http_.Headers.HttpMediaTypeHeaderValue.Parse(text);
|
|
143
|
+
}
|
|
144
|
+
continue;
|
|
145
|
+
}
|
|
146
|
+
// Content headers (Content-Language, ...) belong on the content.
|
|
147
|
+
if (!message.Headers.TryAppendWithoutValidation(key, text) && content) {
|
|
148
|
+
content.Headers.TryAppendWithoutValidation(key, text);
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
if (content) {
|
|
152
|
+
message.Content = content;
|
|
153
|
+
}
|
|
154
|
+
if (Utils.isNumber(options.timeout) && options.timeout > 0) {
|
|
155
|
+
timer = setTimeout(() => {
|
|
156
|
+
failure = HttpError.Timeout;
|
|
157
|
+
Http._tasks.get(id)?.Cancel?.();
|
|
158
|
+
fail(HttpError.Timeout, 'The request timed out.');
|
|
159
|
+
}, options.timeout);
|
|
160
|
+
}
|
|
161
|
+
// Headers first (ResponseHeadersRead), then the body, so onHeaders fires early.
|
|
162
|
+
const send = Http.client.SendRequestAsync(message, Http_.HttpCompletionOption.ResponseHeadersRead);
|
|
163
|
+
Http._tasks.set(id, send);
|
|
164
|
+
NSWinRT.toPromise(send)
|
|
165
|
+
.then((response) => {
|
|
166
|
+
const statusCode = response.StatusCode;
|
|
167
|
+
const url = response.RequestMessage?.RequestUri?.AbsoluteUri ?? options.url;
|
|
168
|
+
const responseHeaders = {};
|
|
169
|
+
collectHeaders(response.Headers, responseHeaders);
|
|
170
|
+
collectHeaders(response.Content?.Headers, responseHeaders);
|
|
171
|
+
options.onHeaders?.({ headers: responseHeaders, status: statusCode });
|
|
172
|
+
const length = parseInt(headerValue(responseHeaders, 'Content-Length') ?? '', 10);
|
|
173
|
+
const lengthComputable = !isNaN(length) && length > -1;
|
|
174
|
+
options.onProgress?.({ lengthComputable, loaded: 0, total: lengthComputable ? length : 0 });
|
|
175
|
+
const read = response.Content.ReadAsBufferAsync();
|
|
176
|
+
Http._tasks.set(id, read);
|
|
177
|
+
return NSWinRT.toPromise(read).then((buffer) => {
|
|
178
|
+
const bytes = bufferToArrayBuffer(buffer);
|
|
179
|
+
const progress = { lengthComputable, loaded: bytes.byteLength, total: lengthComputable ? length : 0 };
|
|
180
|
+
options.onLoading?.();
|
|
181
|
+
options.onProgress?.(progress);
|
|
182
|
+
const requestType = headerValue(options.headers, 'Content-Type') ?? headerValue(options.headers, 'Accept');
|
|
183
|
+
let returnType = requestType ? preferredType(requestType) : '*/*';
|
|
184
|
+
if (returnType === '*/*') {
|
|
185
|
+
returnType = headerValue(responseHeaders, 'Content-Type') ?? '';
|
|
186
|
+
}
|
|
187
|
+
let body = bytes;
|
|
188
|
+
let responseText;
|
|
189
|
+
if (isTextContentType(returnType)) {
|
|
190
|
+
responseText = body = decodeText(bytes);
|
|
191
|
+
}
|
|
192
|
+
else if (returnType.indexOf('application/json') > -1) {
|
|
193
|
+
responseText = decodeText(bytes);
|
|
194
|
+
try {
|
|
195
|
+
body = JSON.parse(responseText);
|
|
196
|
+
}
|
|
197
|
+
catch (err) {
|
|
198
|
+
fail(HttpError.Error, String(err));
|
|
199
|
+
done();
|
|
200
|
+
return;
|
|
201
|
+
}
|
|
202
|
+
}
|
|
203
|
+
const saved = TNSHttpSettings.saveImage && TNSHttpSettings.currentlySavedImages?.[url];
|
|
204
|
+
if (saved?.localPath) {
|
|
205
|
+
FileManager.writeFile(bytes, saved.localPath, (error, result) => {
|
|
206
|
+
if (TNSHttpSettings.debug) {
|
|
207
|
+
console.log('http image save:', error ? error : result);
|
|
208
|
+
}
|
|
209
|
+
});
|
|
210
|
+
}
|
|
211
|
+
if (!settled) {
|
|
212
|
+
done();
|
|
213
|
+
resolve({ url, content: body, responseText, statusCode, headers: responseHeaders });
|
|
214
|
+
}
|
|
215
|
+
});
|
|
216
|
+
})
|
|
217
|
+
.catch((error) => {
|
|
218
|
+
done();
|
|
219
|
+
fail(failure ?? HttpError.Error, error?.message ?? String(error));
|
|
220
|
+
});
|
|
221
|
+
}
|
|
222
|
+
catch (ex) {
|
|
223
|
+
done();
|
|
224
|
+
fail(HttpError.Error, ex?.message ?? String(ex));
|
|
225
|
+
}
|
|
226
|
+
});
|
|
227
|
+
request['cancel'] = function () {
|
|
228
|
+
const operation = Http._tasks.get(id);
|
|
229
|
+
if (operation && !settled) {
|
|
230
|
+
failure = HttpError.Cancelled;
|
|
231
|
+
operation.Cancel?.();
|
|
232
|
+
}
|
|
233
|
+
};
|
|
234
|
+
return request;
|
|
235
|
+
}
|
|
236
|
+
static getFile(options) {
|
|
237
|
+
return null;
|
|
238
|
+
}
|
|
239
|
+
}
|
|
240
|
+
/** Pending WinRT operations by request, for cancel(). */
|
|
241
|
+
Http._tasks = new Map();
|
|
242
|
+
Http._nextId = 0;
|
|
243
|
+
//# sourceMappingURL=http.windows.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"http.windows.js","sourceRoot":"","sources":["../../../../../packages/canvas-polyfill/async/http/http.windows.ts"],"names":[],"mappings":"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"}
|
|
@@ -539,7 +539,7 @@ export class TNSXMLHttpRequest {
|
|
|
539
539
|
if (this.responseType === XMLHttpRequestResponseType.json) {
|
|
540
540
|
try {
|
|
541
541
|
if (fastRead) {
|
|
542
|
-
this._responseText = this._toJSString(data);
|
|
542
|
+
this._responseText = this._toJSString(data.buffer);
|
|
543
543
|
this._response = JSON.parse(this._responseText);
|
|
544
544
|
}
|
|
545
545
|
else {
|
|
@@ -563,7 +563,7 @@ export class TNSXMLHttpRequest {
|
|
|
563
563
|
}
|
|
564
564
|
else if (this.responseType === XMLHttpRequestResponseType.text) {
|
|
565
565
|
if (fastRead) {
|
|
566
|
-
const response = this._toJSString(data);
|
|
566
|
+
const response = this._toJSString(data.buffer);
|
|
567
567
|
this._responseText = this._response = response ? response : '';
|
|
568
568
|
}
|
|
569
569
|
else {
|
|
@@ -585,7 +585,7 @@ export class TNSXMLHttpRequest {
|
|
|
585
585
|
}
|
|
586
586
|
else if (this.responseType === XMLHttpRequestResponseType.document) {
|
|
587
587
|
if (fastRead) {
|
|
588
|
-
let response = this._toJSString(data);
|
|
588
|
+
let response = this._toJSString(data.buffer);
|
|
589
589
|
this._responseText = this._response = response ? response : '';
|
|
590
590
|
}
|
|
591
591
|
else {
|
|
@@ -606,7 +606,7 @@ export class TNSXMLHttpRequest {
|
|
|
606
606
|
}
|
|
607
607
|
}
|
|
608
608
|
else if (this.responseType === XMLHttpRequestResponseType.arraybuffer) {
|
|
609
|
-
this._response = data;
|
|
609
|
+
this._response = data.buffer;
|
|
610
610
|
}
|
|
611
611
|
else if (this.responseType === XMLHttpRequestResponseType.blob) {
|
|
612
612
|
const header = this.getResponseHeader('Content-Type') || this.getResponseHeader('content-type');
|
|
@@ -731,6 +731,13 @@ export class TNSXMLHttpRequest {
|
|
|
731
731
|
// this should probably be caught before the promise resolves
|
|
732
732
|
}
|
|
733
733
|
}
|
|
734
|
+
else if (res.content instanceof ArrayBuffer) {
|
|
735
|
+
this._responseText = this._toJSString(res.content) ?? '';
|
|
736
|
+
try {
|
|
737
|
+
this._response = JSON.parse(this._responseText);
|
|
738
|
+
}
|
|
739
|
+
catch (err) { }
|
|
740
|
+
}
|
|
734
741
|
else if (typeof res.content === 'object') {
|
|
735
742
|
this._response = res.content;
|
|
736
743
|
this._responseText = res.responseText;
|
|
@@ -761,6 +768,9 @@ export class TNSXMLHttpRequest {
|
|
|
761
768
|
if (typeof res.content === 'string') {
|
|
762
769
|
this._responseText = res.content;
|
|
763
770
|
}
|
|
771
|
+
else if (res.content instanceof ArrayBuffer) {
|
|
772
|
+
this._responseText = this._toJSString(res.content) ?? '';
|
|
773
|
+
}
|
|
764
774
|
else if (typeof res.content === 'object') {
|
|
765
775
|
this._responseText = JSON.stringify(res.content); // Stringify or build manually 🧐
|
|
766
776
|
}
|
|
@@ -789,6 +799,9 @@ export class TNSXMLHttpRequest {
|
|
|
789
799
|
if (typeof res.content === 'string') {
|
|
790
800
|
this._responseText = res.content;
|
|
791
801
|
}
|
|
802
|
+
else if (res.content instanceof ArrayBuffer) {
|
|
803
|
+
this._responseText = this._response = this._toJSString(res.content) ?? '';
|
|
804
|
+
}
|
|
792
805
|
else {
|
|
793
806
|
if (global.isIOS) {
|
|
794
807
|
if (res.content instanceof NSData) {
|
|
@@ -810,7 +823,10 @@ export class TNSXMLHttpRequest {
|
|
|
810
823
|
}
|
|
811
824
|
}
|
|
812
825
|
else if (this.responseType === XMLHttpRequestResponseType.arraybuffer) {
|
|
813
|
-
if (
|
|
826
|
+
if (res.content instanceof ArrayBuffer) {
|
|
827
|
+
this._response = res.content;
|
|
828
|
+
}
|
|
829
|
+
else if (__APPLE__) {
|
|
814
830
|
this._response = interop.bufferFromData(res.content);
|
|
815
831
|
}
|
|
816
832
|
else {
|
|
@@ -820,7 +836,10 @@ export class TNSXMLHttpRequest {
|
|
|
820
836
|
else if (this.responseType === XMLHttpRequestResponseType.blob) {
|
|
821
837
|
const header = this.getResponseHeader('Content-Type') || this.getResponseHeader('content-type');
|
|
822
838
|
const type = { type: header ?? 'application/octet-stream' };
|
|
823
|
-
if (
|
|
839
|
+
if (res.content instanceof ArrayBuffer) {
|
|
840
|
+
this._response = new Blob([res.content], type);
|
|
841
|
+
}
|
|
842
|
+
else if (__APPLE__) {
|
|
824
843
|
if (typeof res.content === 'string') {
|
|
825
844
|
const encoder = new TextEncoder();
|
|
826
845
|
const buffer = encoder.encode(res.content);
|