@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.
Files changed (52) hide show
  1. package/DOM/CharacterData.d.ts +7 -0
  2. package/DOM/CharacterData.js +18 -0
  3. package/DOM/CharacterData.js.map +1 -1
  4. package/DOM/Document.js +4 -2
  5. package/DOM/Document.js.map +1 -1
  6. package/DOM/Element.d.ts +1 -0
  7. package/DOM/Element.js +14 -4
  8. package/DOM/Element.js.map +1 -1
  9. package/DOM/HTMLElement.js +4 -9
  10. package/DOM/HTMLElement.js.map +1 -1
  11. package/DOM/HTMLImageElement.js +50 -35
  12. package/DOM/HTMLImageElement.js.map +1 -1
  13. package/DOM/Text.d.ts +0 -1
  14. package/DOM/Text.js.map +1 -1
  15. package/DOM/XMLDocument.js +1 -1
  16. package/DOM/XMLDocument.js.map +1 -1
  17. package/DOM/querySelector.d.ts +2 -0
  18. package/DOM/querySelector.js +6 -0
  19. package/DOM/querySelector.js.map +1 -0
  20. package/DOM/querySelectorGuard.d.ts +1 -0
  21. package/DOM/querySelectorGuard.js +26 -0
  22. package/DOM/querySelectorGuard.js.map +1 -0
  23. package/DOM/svg/SVGElement.d.ts +4 -2
  24. package/DOM/svg/SVGElement.js +27 -10
  25. package/DOM/svg/SVGElement.js.map +1 -1
  26. package/DOM/svg/SVGTSpanElement.d.ts +4 -0
  27. package/DOM/svg/SVGTSpanElement.js +9 -0
  28. package/DOM/svg/SVGTSpanElement.js.map +1 -0
  29. package/DOM/svg/index.d.ts +1 -0
  30. package/DOM/svg/index.js +1 -0
  31. package/DOM/svg/index.js.map +1 -1
  32. package/async/file/file.windows.d.ts +10 -0
  33. package/async/file/file.windows.js +46 -0
  34. package/async/file/file.windows.js.map +1 -0
  35. package/async/http/http.windows.d.ts +19 -0
  36. package/async/http/http.windows.js +243 -0
  37. package/async/http/http.windows.js.map +1 -0
  38. package/async/xhr/TNSXMLHttpRequest.js +25 -6
  39. package/async/xhr/TNSXMLHttpRequest.js.map +1 -1
  40. package/gamepad.d.ts +4 -0
  41. package/gamepad.js +44 -0
  42. package/gamepad.js.map +1 -0
  43. package/navigator.d.ts +1 -1
  44. package/navigator.js +2 -2
  45. package/navigator.js.map +1 -1
  46. package/package.json +1 -1
  47. package/resize.js +36 -10
  48. package/resize.js.map +1 -1
  49. package/utils.js +2 -1
  50. package/utils.js.map +1 -1
  51. package/window.js +9 -12
  52. package/window.js.map +1 -1
@@ -14,18 +14,15 @@ export class SVGElement extends Element {
14
14
  return this._className;
15
15
  }
16
16
  set className(value) { }
17
- _appendChild(view, redraw = true) {
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.ownerDocument?.createTextNode?.(view.data);
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, true);
38
+ return this._appendChild(view);
42
39
  }
43
40
  append(views) {
44
41
  for (const view of arguments) {
45
- this._appendChild(view, false);
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":"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"}
1
+ {"version":3,"file":"SVGElement.js","sourceRoot":"","sources":["../../../../../packages/canvas-polyfill/DOM/svg/SVGElement.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import { SVGTextPositioningElement } from './SVGTextPositioningElement';
2
+ export declare class SVGTSpanElement extends SVGTextPositioningElement {
3
+ constructor();
4
+ }
@@ -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"}
@@ -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';
@@ -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 (__APPLE__) {
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 (__APPLE__) {
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);