@nativescript/canvas-polyfill 2.0.0-webgpu.8 → 2.0.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 (87) hide show
  1. package/DOM/CSSStyleDeclaration.d.ts +8 -0
  2. package/DOM/CSSStyleDeclaration.js +20 -0
  3. package/DOM/CSSStyleDeclaration.js.map +1 -0
  4. package/DOM/Document.d.ts +3 -0
  5. package/DOM/Document.js +24 -105
  6. package/DOM/Document.js.map +1 -1
  7. package/DOM/Element.d.ts +7 -0
  8. package/DOM/Element.js +80 -2
  9. package/DOM/Element.js.map +1 -1
  10. package/DOM/EventTarget.d.ts +6 -1
  11. package/DOM/EventTarget.js +34 -31
  12. package/DOM/EventTarget.js.map +1 -1
  13. package/DOM/HTMLBodyElement.d.ts +3 -0
  14. package/DOM/HTMLBodyElement.js +4 -0
  15. package/DOM/HTMLBodyElement.js.map +1 -0
  16. package/DOM/HTMLCanvasElement.d.ts +4 -0
  17. package/DOM/HTMLCanvasElement.js +10 -0
  18. package/DOM/HTMLCanvasElement.js.map +1 -1
  19. package/DOM/HTMLDivElement.d.ts +2 -0
  20. package/DOM/HTMLDivElement.js +8 -0
  21. package/DOM/HTMLDivElement.js.map +1 -1
  22. package/DOM/HTMLElement.d.ts +11 -1
  23. package/DOM/HTMLElement.js +82 -0
  24. package/DOM/HTMLElement.js.map +1 -1
  25. package/DOM/HTMLHeadElement.d.ts +3 -0
  26. package/DOM/HTMLHeadElement.js +4 -0
  27. package/DOM/HTMLHeadElement.js.map +1 -0
  28. package/DOM/HTMLHtmlElement.d.ts +3 -0
  29. package/DOM/HTMLHtmlElement.js +4 -0
  30. package/DOM/HTMLHtmlElement.js.map +1 -0
  31. package/DOM/HTMLImageElement.d.ts +6 -0
  32. package/DOM/HTMLImageElement.js +316 -90
  33. package/DOM/HTMLImageElement.js.map +1 -1
  34. package/DOM/HTMLVideoElement.d.ts +5 -1
  35. package/DOM/HTMLVideoElement.js +17 -2
  36. package/DOM/HTMLVideoElement.js.map +1 -1
  37. package/DOM/Node.d.ts +13 -0
  38. package/DOM/Node.js +22 -2
  39. package/DOM/Node.js.map +1 -1
  40. package/DOM/Text.d.ts +1 -0
  41. package/DOM/Text.js +2 -0
  42. package/DOM/Text.js.map +1 -1
  43. package/DOM/domUtils.d.ts +2 -0
  44. package/DOM/domUtils.js +51 -0
  45. package/DOM/domUtils.js.map +1 -0
  46. package/DOM/svg/SVGElement.js +3 -3
  47. package/DOM/svg/SVGElement.js.map +1 -1
  48. package/MutationObserver.d.ts +4 -3
  49. package/MutationObserver.js +22 -12
  50. package/MutationObserver.js.map +1 -1
  51. package/async/file/file.android.js +6 -4
  52. package/async/file/file.android.js.map +1 -1
  53. package/async/file/file.ios.js +6 -4
  54. package/async/file/file.ios.js.map +1 -1
  55. package/async/http/http.ios.js +1 -1
  56. package/async/http/http.ios.js.map +1 -1
  57. package/async/xhr/TNSXMLHttpRequest.d.ts +2 -2
  58. package/async/xhr/TNSXMLHttpRequest.js +163 -78
  59. package/async/xhr/TNSXMLHttpRequest.js.map +1 -1
  60. package/index.d.ts +2 -0
  61. package/index.js +8 -11
  62. package/index.js.map +1 -1
  63. package/localStorage.js +32 -30
  64. package/localStorage.js.map +1 -1
  65. package/navigator.d.ts +4 -1
  66. package/navigator.js +16 -3
  67. package/navigator.js.map +1 -1
  68. package/package.json +6 -6
  69. package/performance.js +43 -20
  70. package/performance.js.map +1 -1
  71. package/platforms/android/async-release.aar +0 -0
  72. package/process.js +1 -0
  73. package/process.js.map +1 -1
  74. package/urlBlobPatch.d.ts +1 -0
  75. package/urlBlobPatch.js +123 -0
  76. package/urlBlobPatch.js.map +1 -0
  77. package/window.js +69 -33
  78. package/window.js.map +1 -1
  79. package/workerPatch.d.ts +3 -0
  80. package/workerPatch.js +13 -0
  81. package/workerPatch.js.map +1 -0
  82. package/URL.android.d.ts +0 -46
  83. package/URL.android.js +0 -444
  84. package/URL.android.js.map +0 -1
  85. package/URL.ios.d.ts +0 -51
  86. package/URL.ios.js +0 -661
  87. package/URL.ios.js.map +0 -1
package/index.js CHANGED
@@ -1,5 +1,5 @@
1
- require('globals');
2
- if (global.android && !global.__canvasLoaded) {
1
+ require('@nativescript/core/globals');
2
+ if (__ANDROID__ && !global.__canvasLoaded) {
3
3
  try {
4
4
  // load canvas lib if polyfill is called before
5
5
  java.lang.System.loadLibrary('canvasnative');
@@ -15,7 +15,8 @@ import './resize';
15
15
  import './process';
16
16
  import './localStorage';
17
17
  import { TextDecoder, TextEncoder, ImageBitmap } from '@nativescript/canvas';
18
- import { URL } from './URL';
18
+ import './workerPatch';
19
+ import { FontFaceSet } from '@nativescript/canvas';
19
20
  if (!global.Document) {
20
21
  Object.defineProperty(global, 'Document', {
21
22
  value: Document,
@@ -24,6 +25,9 @@ if (!global.Document) {
24
25
  });
25
26
  }
26
27
  global.document = global.window.document = global.document || new Document();
28
+ if (!global.document.fonts) {
29
+ global.document.fonts = global.fonts || new FontFaceSet();
30
+ }
27
31
  global.window.createImageBitmap = global.createImageBitmap = (...args) => {
28
32
  const image = args[0];
29
33
  const sx_or_options = args[1];
@@ -95,12 +99,5 @@ if (!(global.TextEncoder instanceof TextEncoder)) {
95
99
  writable: true,
96
100
  });
97
101
  }
98
- if (typeof global?.URL?.createObjectURL !== 'function') {
99
- Object.defineProperty(global, 'URL', {
100
- value: URL,
101
- configurable: true,
102
- writable: true,
103
- });
104
- global.window.URL = global.URL;
105
- }
102
+ import './urlBlobPatch';
106
103
  //# sourceMappingURL=index.js.map
package/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../packages/canvas-polyfill/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../packages/canvas-polyfill/index.ts"],"names":[],"mappings":"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"}
package/localStorage.js CHANGED
@@ -6,7 +6,6 @@ const internalSaveData = function (storage) {
6
6
  file.writeText(JSON.stringify(storage._localStorageData));
7
7
  }
8
8
  catch (err) {
9
- // This should never happen on normal data, but if they tried to put non JS stuff it won't serialize
10
9
  console.log('localStorage: unable to write storage, error: ', err);
11
10
  }
12
11
  };
@@ -15,38 +14,37 @@ const saveData = function (storage) {
15
14
  clearTimeout(localStorageTimeout);
16
15
  }
17
16
  localStorageTimeout = setTimeout(() => {
17
+ localStorageTimeout = null;
18
18
  internalSaveData(storage);
19
19
  }, 250);
20
20
  };
21
21
  class Storage {
22
22
  constructor() {
23
23
  this._localStorageData = {};
24
+ // Track length explicitly to avoid Object.keys() on every read
25
+ this._length = 0;
24
26
  }
25
27
  getItem(name) {
26
- if (this._localStorageData.hasOwnProperty(name)) {
27
- return this._localStorageData[name];
28
- }
29
- return null;
28
+ const val = this._localStorageData[name];
29
+ return val !== undefined ? val : null;
30
30
  }
31
31
  key(id) {
32
32
  const keys = Object.keys(this._localStorageData);
33
- if (id >= keys.length) {
34
- return null;
35
- }
36
- return keys[id];
33
+ return id < keys.length ? keys[id] : null;
37
34
  }
38
35
  setItemObject(name, value) {
36
+ if (!(name in this._localStorageData)) {
37
+ this._length++;
38
+ }
39
39
  this._localStorageData[name] = value;
40
40
  saveData(this);
41
41
  }
42
42
  setItem(name, value) {
43
+ if (!(name in this._localStorageData)) {
44
+ this._length++;
45
+ }
43
46
  if (value == null) {
44
- if (value === null) {
45
- this._localStorageData[name] = 'null';
46
- }
47
- else {
48
- this._localStorageData[name] = 'undefined';
49
- }
47
+ this._localStorageData[name] = value === null ? 'null' : 'undefined';
50
48
  }
51
49
  else {
52
50
  this._localStorageData[name] = value.toString();
@@ -54,17 +52,20 @@ class Storage {
54
52
  saveData(this);
55
53
  }
56
54
  removeItem(name) {
57
- if (this._localStorageData[name]) {
55
+ // Use `in` operator — not truthy check — so falsy values (0, '') are handled correctly
56
+ if (name in this._localStorageData) {
58
57
  delete this._localStorageData[name];
58
+ this._length--;
59
59
  saveData(this);
60
60
  }
61
61
  }
62
62
  clear() {
63
63
  this._localStorageData = {};
64
+ this._length = 0;
64
65
  saveData(this);
65
66
  }
66
67
  get length() {
67
- return Object.keys(this._localStorageData).length;
68
+ return this._length;
68
69
  }
69
70
  }
70
71
  class SessionStorage {
@@ -76,22 +77,14 @@ class SessionStorage {
76
77
  }
77
78
  key(id) {
78
79
  const keys = Array.from(this._storage.keys());
79
- if (id >= keys.length) {
80
- return null;
81
- }
82
- return keys[id];
80
+ return id < keys.length ? keys[id] : null;
83
81
  }
84
82
  setItemObject(name, value) {
85
83
  this._storage.set(name, value);
86
84
  }
87
85
  setItem(name, value) {
88
86
  if (value == null) {
89
- if (value === null) {
90
- this._storage.set(name, 'null');
91
- }
92
- else {
93
- this._storage.set(name, 'undefined');
94
- }
87
+ this._storage.set(name, value === null ? 'null' : 'undefined');
95
88
  }
96
89
  else {
97
90
  this._storage.set(name, value.toString());
@@ -118,14 +111,15 @@ if (!global.localStorage || module.hot) {
118
111
  if (!File.exists(path)) {
119
112
  return;
120
113
  }
121
- let data;
122
114
  if (file.size === 0) {
123
115
  return;
124
116
  }
125
117
  try {
126
- let textData = file.readTextSync();
127
- data = JSON.parse(textData);
118
+ const textData = file.readTextSync();
119
+ const data = JSON.parse(textData);
128
120
  storage._localStorageData = data;
121
+ // Sync the length counter after loading from disk
122
+ storage._length = Object.keys(data).length;
129
123
  }
130
124
  catch (err) {
131
125
  console.log('localStorage: error reading storage, Error: ', err);
@@ -142,6 +136,14 @@ export default global.localStorage;
142
136
  if (module.hot) {
143
137
  module.hot.accept();
144
138
  module.hot.dispose(() => {
139
+ // Flush any pending writes before dispose
140
+ if (localStorageTimeout !== null) {
141
+ clearTimeout(localStorageTimeout);
142
+ localStorageTimeout = null;
143
+ if (global.localStorage) {
144
+ internalSaveData(global.localStorage);
145
+ }
146
+ }
145
147
  global.localStorage = undefined;
146
148
  });
147
149
  }
@@ -1 +1 @@
1
- {"version":3,"file":"localStorage.js","sourceRoot":"","sources":["../../../packages/canvas-polyfill/localStorage.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"localStorage.js","sourceRoot":"","sources":["../../../packages/canvas-polyfill/localStorage.ts"],"names":[],"mappings":"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"}
package/navigator.d.ts CHANGED
@@ -1,12 +1,15 @@
1
1
  import { GPU } from '@nativescript/canvas';
2
2
  export declare class Navigator {
3
+ appCodeName: string;
4
+ appName: string;
3
5
  product: string;
4
6
  userAgent: string;
5
7
  vendor: string;
6
8
  vendorSub: string;
7
- platform: any[];
8
9
  appVersion: string;
9
10
  maxTouchPoints: number;
10
11
  standalone: boolean;
12
+ language(): string;
11
13
  get gpu(): GPU;
14
+ get platform(): string;
12
15
  }
package/navigator.js CHANGED
@@ -3,17 +3,30 @@ import { GPU } from '@nativescript/canvas';
3
3
  const gpu = new GPU();
4
4
  export class Navigator {
5
5
  constructor() {
6
+ this.appCodeName = 'Mozilla';
7
+ this.appName = 'Netscape';
6
8
  this.product = 'NativeScript';
7
- this.userAgent = 'chrome';
9
+ this.userAgent = `Mozilla/5.0 (${this.platform === 'Android' ? 'Linux' : this.platform}; ${this.platform} ${Device.osVersion};) (KHTML, like Gecko) ${__IOS__ ? 'Version/18.6' + Device.osVersion : ''} ${__ANDROID__ ? 'Chrome/100.3.22.0' : ''} Mobile Safari/537.36 NativeScript/` + `${global.__runtimeVersion ?? '8.0.0'}`.replaceAll('"', '');
8
10
  this.vendor = '';
9
11
  this.vendorSub = '';
10
- this.platform = [];
11
- this.appVersion = Device.osVersion;
12
+ this.appVersion = `5.0 (${this.platform === 'Android' ? 'Linux' : this.platform}; ${this.platform} ${Device.osVersion};) (KHTML, like Gecko) ${__APPLE__ ? 'Version/18.6' : ''} ${__ANDROID__ ? 'Chrome/100.3.22.0' : ''} Mobile Safari/537.36 NativeScript/` + `${global.__runtimeVersion ?? '8.0.0'}`.replaceAll('"', '');
12
13
  this.maxTouchPoints = 5;
13
14
  this.standalone = true;
14
15
  }
16
+ language() {
17
+ return Device.language;
18
+ }
15
19
  get gpu() {
16
20
  return gpu;
17
21
  }
22
+ get platform() {
23
+ if (global.isIOS) {
24
+ if (Device.os === 'iPadOS') {
25
+ return 'MacIntel';
26
+ }
27
+ return Device.deviceType === 'Tablet' ? 'iPad' : 'iPhone';
28
+ }
29
+ return Device.os;
30
+ }
18
31
  }
19
32
  //# sourceMappingURL=navigator.js.map
package/navigator.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"navigator.js","sourceRoot":"","sources":["../../../packages/canvas-polyfill/navigator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC5C,OAAO,EAAE,GAAG,EAAE,MAAM,sBAAsB,CAAC;AAE3C,MAAM,GAAG,GAAG,IAAI,GAAG,EAAE,CAAC;AAEtB,MAAM,OAAO,SAAS;IAAtB;QACC,YAAO,GAAG,cAAc,CAAC;QACzB,cAAS,GAAG,QAAQ,CAAC;QACrB,WAAM,GAAG,EAAE,CAAC;QACZ,cAAS,GAAG,EAAE,CAAC;QACf,aAAQ,GAAG,EAAE,CAAC;QACd,eAAU,GAAG,MAAM,CAAC,SAAS,CAAC;QAC9B,mBAAc,GAAG,CAAC,CAAC;QACnB,eAAU,GAAG,IAAI,CAAC;IAInB,CAAC;IAHA,IAAI,GAAG;QACN,OAAO,GAAG,CAAC;IACZ,CAAC;CACD"}
1
+ {"version":3,"file":"navigator.js","sourceRoot":"","sources":["../../../packages/canvas-polyfill/navigator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC5C,OAAO,EAAE,GAAG,EAAE,MAAM,sBAAsB,CAAC;AAE3C,MAAM,GAAG,GAAG,IAAI,GAAG,EAAE,CAAC;AAEtB,MAAM,OAAO,SAAS;IAAtB;QACC,gBAAW,GAAG,SAAS,CAAC;QACxB,YAAO,GAAG,UAAU,CAAC;QACrB,YAAO,GAAG,cAAc,CAAC;QACzB,cAAS,GAAG,gBAAgB,IAAI,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,KAAK,IAAI,CAAC,QAAQ,IAAI,MAAM,CAAC,SAAS,0BAA0B,OAAO,CAAC,CAAC,CAAC,cAAc,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,IAAI,WAAW,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,EAAE,qCAAqC,GAAG,GAAG,MAAM,CAAC,gBAAgB,IAAI,OAAO,EAAE,CAAC,UAAU,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;QAC/U,WAAM,GAAG,EAAE,CAAC;QACZ,cAAS,GAAG,EAAE,CAAC;QACf,eAAU,GAAG,QAAQ,IAAI,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,KAAK,IAAI,CAAC,QAAQ,IAAI,MAAM,CAAC,SAAS,0BAA0B,SAAS,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,IAAI,WAAW,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,EAAE,sCAAsC,GAAG,GAAG,MAAM,CAAC,gBAAgB,IAAI,OAAO,EAAE,CAAC,UAAU,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;QACxT,mBAAc,GAAG,CAAC,CAAC;QACnB,eAAU,GAAG,IAAI,CAAC;IAgBnB,CAAC;IAfA,QAAQ;QACP,OAAO,MAAM,CAAC,QAAQ,CAAC;IACxB,CAAC;IACD,IAAI,GAAG;QACN,OAAO,GAAG,CAAC;IACZ,CAAC;IACD,IAAI,QAAQ;QACX,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;YAClB,IAAI,MAAM,CAAC,EAAE,KAAK,QAAQ,EAAE,CAAC;gBAC5B,OAAO,UAAU,CAAC;YACnB,CAAC;YACD,OAAO,MAAM,CAAC,UAAU,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC;QAC3D,CAAC;QACD,OAAO,MAAM,CAAC,EAAE,CAAC;IAClB,CAAC;CACD"}
package/package.json CHANGED
@@ -1,9 +1,9 @@
1
1
  {
2
2
  "name": "@nativescript/canvas-polyfill",
3
- "version": "2.0.0-webgpu.8",
3
+ "version": "2.0.0",
4
4
  "description": "Polyfill for making NativeScript compatible with web libs like pixi.js, three.js, phaser.js, babylon.js, etc....",
5
5
  "main": "index",
6
- "typings": "index.d.ts",
6
+ "typings": "global.d.ts",
7
7
  "nativescript": {
8
8
  "platforms": {
9
9
  "ios": "7.0.0",
@@ -33,10 +33,10 @@
33
33
  "readmeFilename": "README.md",
34
34
  "bootstrapper": "@nativescript/plugin-seed",
35
35
  "dependencies": {
36
- "@nativescript/canvas": "webgpu",
37
- "@nativescript/canvas-media": "webgpu",
38
- "@nativescript/canvas-svg": "webgpu",
39
- "@xmldom/xmldom": "0.8.10",
36
+ "@nativescript/canvas": "*",
37
+ "@nativescript/canvas-media": "*",
38
+ "@nativescript/canvas-svg": "*",
39
+ "@xmldom/xmldom": ">=0.8.12",
40
40
  "query-selector": "2.0.0",
41
41
  "set-value": "4.1.0"
42
42
  },
package/performance.js CHANGED
@@ -46,34 +46,57 @@ if (!global.performance || !global.performance.now) {
46
46
  totalJSHeapSize: -1,
47
47
  usedJSHeapSize: -1,
48
48
  },
49
- measure() {
50
- console.warn('window.performance.measure is not implemented');
49
+ _marks: new Map(),
50
+ _measures: new Map(),
51
+ measure(name, startMark, endMark) {
52
+ const start = startMark ? (this._marks.get(startMark) ?? 0) : 0;
53
+ const end = endMark ? (this._marks.get(endMark) ?? this.now()) : this.now();
54
+ this._measures.set(name, { duration: end - start, startTime: start });
51
55
  },
52
- mark() {
53
- console.warn('window.performance.mark is not implemented');
56
+ mark(name) {
57
+ this._marks.set(name, this.now());
54
58
  },
55
- clearMeasures() {
56
- console.warn('window.performance.clearMeasures is not implemented');
57
- },
58
- clearMarks() {
59
- console.warn('window.performance.clearMarks is not implemented');
60
- },
61
- clearResourceTimings() {
62
- console.warn('window.performance.clearResourceTimings is not implemented');
59
+ clearMeasures(name) {
60
+ if (name) {
61
+ this._measures.delete(name);
62
+ }
63
+ else {
64
+ this._measures.clear();
65
+ }
63
66
  },
64
- setResourceTimingBufferSize() {
65
- console.warn('window.performance.setResourceTimingBufferSize is not implemented');
67
+ clearMarks(name) {
68
+ if (name) {
69
+ this._marks.delete(name);
70
+ }
71
+ else {
72
+ this._marks.clear();
73
+ }
66
74
  },
67
- getEntriesByType() {
68
- console.warn('window.performance.getEntriesByType is not implemented');
75
+ clearResourceTimings() { },
76
+ setResourceTimingBufferSize() { },
77
+ getEntriesByType(type) {
78
+ if (type === 'measure') {
79
+ return Array.from(this._measures.entries()).map(([name, v]) => ({ name, ...v, entryType: 'measure' }));
80
+ }
81
+ if (type === 'mark') {
82
+ return Array.from(this._marks.entries()).map(([name, startTime]) => ({ name, startTime, duration: 0, entryType: 'mark' }));
83
+ }
69
84
  return [];
70
85
  },
71
- getEntriesByName() {
72
- console.warn('window.performance.getEntriesByName is not implemented');
73
- return [];
86
+ getEntriesByName(name) {
87
+ const entries = [];
88
+ if (this._marks.has(name)) {
89
+ entries.push({ name, startTime: this._marks.get(name), duration: 0, entryType: 'mark' });
90
+ }
91
+ if (this._measures.has(name)) {
92
+ entries.push({ name, ...this._measures.get(name), entryType: 'measure' });
93
+ }
94
+ return entries;
74
95
  },
75
96
  getEntries() {
76
- console.warn('window.performance.getEntries is not implemented');
97
+ const marks = Array.from(this._marks.entries()).map(([name, startTime]) => ({ name, startTime, duration: 0, entryType: 'mark' }));
98
+ const measures = Array.from(this._measures.entries()).map(([name, v]) => ({ name, ...v, entryType: 'measure' }));
99
+ return [...marks, ...measures];
77
100
  },
78
101
  };
79
102
  }
@@ -1 +1 @@
1
- {"version":3,"file":"performance.js","sourceRoot":"","sources":["../../../packages/canvas-polyfill/performance.ts"],"names":[],"mappings":"AAAA,IAAI,CAAE,MAAc,CAAC,WAAW,IAAI,CAAE,MAAc,CAAC,WAAW,CAAC,GAAG,EAAE,CAAC;IACrE,MAAc,CAAC,WAAW,GAAG;QAC7B,UAAU,EAAE,CAAC,CAAC;QACd,MAAM,EAAE;YACP,UAAU,EAAE,CAAC,CAAC;YACd,YAAY,EAAE,CAAC,CAAC;YAChB,WAAW,EAAE,CAAC,CAAC;YACf,wBAAwB,EAAE,CAAC,CAAC;YAC5B,0BAA0B,EAAE,CAAC,CAAC;YAC9B,cAAc,EAAE,CAAC,CAAC;YAClB,UAAU,EAAE,CAAC,CAAC;YACd,eAAe,EAAE,CAAC,CAAC;YACnB,iBAAiB,EAAE,CAAC,CAAC;YACrB,UAAU,EAAE,CAAC,CAAC;YACd,YAAY,EAAE,CAAC,CAAC;YAChB,cAAc,EAAE,CAAC,CAAC;YAClB,eAAe,EAAE,CAAC,CAAC;YACnB,WAAW,EAAE,CAAC,CAAC;YACf,aAAa,EAAE,CAAC,CAAC;YACjB,YAAY,EAAE,CAAC,CAAC;YAChB,WAAW,EAAE,CAAC,CAAC;YACf,aAAa,EAAE,CAAC,CAAC;YACjB,qBAAqB,EAAE,CAAC,CAAC;YACzB,cAAc,EAAE,CAAC,CAAC;YAClB,gBAAgB,EAAE,CAAC,CAAC;SACpB;QACD,GAAG;YACF,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;gBAClB,OAAO,WAAW,CAAC,GAAG,EAAE,CAAC;YAC1B,CAAC;YAED,OAAO,MAAM,EAAE,CAAC;QACjB,CAAC;QACD,MAAM;YACL,OAAO;gBACN,MAAM,EAAE,IAAI,CAAC,MAAM;gBACnB,UAAU,EAAE,IAAI,CAAC,UAAU;gBAC3B,UAAU,EAAE,IAAI,CAAC,UAAU;aAC3B,CAAC;QACH,CAAC;QACD,UAAU,EAAE;YACX,aAAa,EAAE,CAAC,CAAC;YACjB,IAAI,EAAE,CAAC,CAAC;SACR;QACD,MAAM,EAAE;YACP,eAAe,EAAE,CAAC,CAAC;YACnB,eAAe,EAAE,CAAC,CAAC;YACnB,cAAc,EAAE,CAAC,CAAC;SAClB;QACD,OAAO;YACN,OAAO,CAAC,IAAI,CAAC,+CAA+C,CAAC,CAAC;QAC/D,CAAC;QACD,IAAI;YACH,OAAO,CAAC,IAAI,CAAC,4CAA4C,CAAC,CAAC;QAC5D,CAAC;QACD,aAAa;YACZ,OAAO,CAAC,IAAI,CAAC,qDAAqD,CAAC,CAAC;QACrE,CAAC;QACD,UAAU;YACT,OAAO,CAAC,IAAI,CAAC,kDAAkD,CAAC,CAAC;QAClE,CAAC;QACD,oBAAoB;YACnB,OAAO,CAAC,IAAI,CAAC,4DAA4D,CAAC,CAAC;QAC5E,CAAC;QACD,2BAA2B;YAC1B,OAAO,CAAC,IAAI,CAAC,mEAAmE,CAAC,CAAC;QACnF,CAAC;QACD,gBAAgB;YACf,OAAO,CAAC,IAAI,CAAC,wDAAwD,CAAC,CAAC;YACvE,OAAO,EAAE,CAAC;QACX,CAAC;QACD,gBAAgB;YACf,OAAO,CAAC,IAAI,CAAC,wDAAwD,CAAC,CAAC;YACvE,OAAO,EAAE,CAAC;QACX,CAAC;QACD,UAAU;YACT,OAAO,CAAC,IAAI,CAAC,kDAAkD,CAAC,CAAC;QAClE,CAAC;KACD,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"performance.js","sourceRoot":"","sources":["../../../packages/canvas-polyfill/performance.ts"],"names":[],"mappings":"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"}
Binary file
package/process.js CHANGED
@@ -1,3 +1,4 @@
1
1
  global.process = global.process || {};
2
2
  global.process.browser = true;
3
+ global.process.env = global.process.env || {};
3
4
  //# sourceMappingURL=process.js.map
package/process.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"process.js","sourceRoot":"","sources":["../../../packages/canvas-polyfill/process.ts"],"names":[],"mappings":"AAAC,MAAc,CAAC,OAAO,GAAI,MAAc,CAAC,OAAO,IAAI,EAAE,CAAC;AACvD,MAAc,CAAC,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC"}
1
+ {"version":3,"file":"process.js","sourceRoot":"","sources":["../../../packages/canvas-polyfill/process.ts"],"names":[],"mappings":"AAAC,MAAc,CAAC,OAAO,GAAI,MAAc,CAAC,OAAO,IAAI,EAAE,CAAC;AACvD,MAAc,CAAC,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC;AACtC,MAAc,CAAC,OAAO,CAAC,GAAG,GAAI,MAAc,CAAC,OAAO,CAAC,GAAG,IAAI,EAAE,CAAC"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,123 @@
1
+ import { Folder, knownFolders, path, Utils, File as NSFile } from '@nativescript/core';
2
+ const BLOB_PATH = 'blob:nativescript/';
3
+ const BLOB_DIR = 'ns_blobs';
4
+ const BLOB_KEYS = 'org.nativescript.canvas.blob.keys';
5
+ let sharedPreferences;
6
+ // replace the internal blob handling
7
+ const BLOB_STORE = new Map();
8
+ URL.createObjectURL = function (object, options = null) {
9
+ try {
10
+ if (object instanceof Blob || object instanceof File) {
11
+ // todo use faster method
12
+ const id = crypto.randomUUID();
13
+ const ret = `blob:nativescript/${id}`;
14
+ BLOB_STORE.set(ret, {
15
+ blob: object,
16
+ type: object?.type,
17
+ ext: options?.ext,
18
+ });
19
+ return ret;
20
+ }
21
+ }
22
+ catch (error) {
23
+ return null;
24
+ }
25
+ return null;
26
+ };
27
+ URL.revokeObjectURL = function (url) {
28
+ BLOB_STORE.delete(url);
29
+ };
30
+ const InternalAccessor = class {
31
+ };
32
+ InternalAccessor.getData = function (url) {
33
+ return BLOB_STORE.get(url);
34
+ };
35
+ URL.InternalAccessor = InternalAccessor;
36
+ if (__ANDROID__) {
37
+ URL.InternalAccessor.getPath = (url) => {
38
+ const blob = URL.InternalAccessor.getData(url);
39
+ if (!blob) {
40
+ return '';
41
+ }
42
+ if (blob.path) {
43
+ return blob.path;
44
+ }
45
+ const buf = Blob.InternalAccessor.getBuffer(blob.blob);
46
+ const path = org.nativescript.canvas.polyfill.Utils.getItemOrCreateAndReturn(Utils.android.getApplicationContext(), url, buf, buf.byteOffset, blob?.type ?? null, blob?.ext ?? null);
47
+ blob.path = path;
48
+ BLOB_STORE.set(url, blob);
49
+ return path;
50
+ };
51
+ }
52
+ if (__IOS__) {
53
+ const putItem = (key, value) => {
54
+ if (!sharedPreferences) {
55
+ sharedPreferences = NSUserDefaults.alloc().initWithSuiteName(BLOB_KEYS);
56
+ }
57
+ sharedPreferences.setObjectForKey(value, key);
58
+ };
59
+ const createObjectURLLegacyWithId = (id, object, options = null) => {
60
+ const buf = Blob.InternalAccessor.getBuffer(object);
61
+ if (buf || object instanceof Blob || object instanceof File) {
62
+ const exists = Folder.exists(path.join(knownFolders.documents().path, BLOB_DIR));
63
+ if (!exists) {
64
+ Folder.fromPath(path.join(knownFolders.documents().path, BLOB_DIR));
65
+ }
66
+ let fileName = id;
67
+ // todo get type from magic bytes
68
+ if (options?.ext) {
69
+ fileName = `${fileName}.${options.ext}`;
70
+ }
71
+ const filePath = path.join(knownFolders.documents().path, BLOB_DIR, fileName);
72
+ NSFile.fromPath(filePath).writeSync(NSData.dataWithData(buf));
73
+ putItem(id, fileName);
74
+ return `${BLOB_PATH}${id}`;
75
+ }
76
+ return null;
77
+ };
78
+ const getItem = (key) => {
79
+ const fileDir = Folder.fromPath(path.join(knownFolders.documents().path, BLOB_DIR));
80
+ let fileName = null;
81
+ if (!sharedPreferences) {
82
+ sharedPreferences = NSUserDefaults.alloc().initWithSuiteName(BLOB_KEYS);
83
+ }
84
+ if (!sharedPreferences.objectForKey(key)) {
85
+ return null;
86
+ }
87
+ fileName = sharedPreferences.stringForKey(key);
88
+ if (fileName) {
89
+ return path.join(fileDir.path, fileName);
90
+ }
91
+ return null;
92
+ };
93
+ URL.InternalAccessor.getPath = (url) => {
94
+ const blob = URL.InternalAccessor.getData(url);
95
+ if (!blob) {
96
+ return '';
97
+ }
98
+ if (blob.path) {
99
+ return blob.path;
100
+ }
101
+ //const buf = (Blob as any).InternalAccessor.getBuffer(blob.blob);
102
+ const id = url.replace(BLOB_PATH, '');
103
+ if (id === '') {
104
+ return '';
105
+ }
106
+ const created = createObjectURLLegacyWithId(id, blob.blob, {
107
+ type: blob?.type,
108
+ ext: blob?.ext,
109
+ });
110
+ if (!created) {
111
+ return '';
112
+ }
113
+ let fileName = id;
114
+ if (blob?.ext) {
115
+ fileName = `${fileName}.${blob?.ext}`;
116
+ }
117
+ const filePath = path.join(knownFolders.documents().path, BLOB_DIR, fileName);
118
+ blob.path = filePath;
119
+ BLOB_STORE.set(url, blob);
120
+ return filePath;
121
+ };
122
+ }
123
+ //# sourceMappingURL=urlBlobPatch.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"urlBlobPatch.js","sourceRoot":"","sources":["../../../packages/canvas-polyfill/urlBlobPatch.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,IAAI,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAEvF,MAAM,SAAS,GAAG,oBAAoB,CAAC;AACvC,MAAM,QAAQ,GAAG,UAAU,CAAC;AAC5B,MAAM,SAAS,GAAG,mCAAmC,CAAC;AAEtD,IAAI,iBAAiB,CAAC;AAEtB,qCAAqC;AACrC,MAAM,UAAU,GAAG,IAAI,GAAG,EAAE,CAAC;AAC7B,GAAG,CAAC,eAAe,GAAG,UAAU,MAAM,EAAE,OAAO,GAAG,IAAI;IACrD,IAAI,CAAC;QACJ,IAAI,MAAM,YAAY,IAAI,IAAI,MAAM,YAAY,IAAI,EAAE,CAAC;YACtD,yBAAyB;YACzB,MAAM,EAAE,GAAG,MAAM,CAAC,UAAU,EAAE,CAAC;YAC/B,MAAM,GAAG,GAAG,qBAAqB,EAAE,EAAE,CAAC;YACtC,UAAU,CAAC,GAAG,CAAC,GAAG,EAAE;gBACnB,IAAI,EAAE,MAAM;gBACZ,IAAI,EAAE,MAAM,EAAE,IAAI;gBAClB,GAAG,EAAE,OAAO,EAAE,GAAG;aACjB,CAAC,CAAC;YACH,OAAO,GAAG,CAAC;QACZ,CAAC;IACF,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QAChB,OAAO,IAAI,CAAC;IACb,CAAC;IACD,OAAO,IAAI,CAAC;AACb,CAAC,CAAC;AACF,GAAG,CAAC,eAAe,GAAG,UAAU,GAAG;IAClC,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;AACxB,CAAC,CAAC;AAEF,MAAM,gBAAgB,GAAG;CAAQ,CAAC;AAC5B,gBAAiB,CAAC,OAAO,GAAG,UAAU,GAAG;IAC9C,OAAO,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AAC5B,CAAC,CAAC;AACI,GAAI,CAAC,gBAAgB,GAAG,gBAAgB,CAAC;AAE/C,IAAI,WAAW,EAAE,CAAC;IACX,GAAI,CAAC,gBAAgB,CAAC,OAAO,GAAG,CAAC,GAAW,EAAE,EAAE;QACrD,MAAM,IAAI,GAAS,GAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QACtD,IAAI,CAAC,IAAI,EAAE,CAAC;YACX,OAAO,EAAE,CAAC;QACX,CAAC;QACD,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YACf,OAAO,IAAI,CAAC,IAAI,CAAC;QAClB,CAAC;QACD,MAAM,GAAG,GAAI,IAAY,CAAC,gBAAgB,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAChE,MAAM,IAAI,GAAS,GAAI,CAAC,YAAY,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,wBAAwB,CAAC,KAAK,CAAC,OAAO,CAAC,qBAAqB,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,UAAU,EAAE,IAAI,EAAE,IAAI,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,IAAI,IAAI,CAAC,CAAC;QAC5L,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,UAAU,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QAC1B,OAAO,IAAI,CAAC;IACb,CAAC,CAAC;AACH,CAAC;AAED,IAAI,OAAO,EAAE,CAAC;IACb,MAAM,OAAO,GAAG,CAAC,GAAW,EAAE,KAAa,EAAE,EAAE;QAC9C,IAAI,CAAC,iBAAiB,EAAE,CAAC;YACxB,iBAAiB,GAAG,cAAc,CAAC,KAAK,EAAE,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC;QACzE,CAAC;QAEgB,iBAAkB,CAAC,eAAe,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;IACjE,CAAC,CAAC;IAEF,MAAM,2BAA2B,GAAG,CAAC,EAAU,EAAE,MAAW,EAAE,OAAO,GAAG,IAAI,EAAE,EAAE;QAC/E,MAAM,GAAG,GAAI,IAAY,CAAC,gBAAgB,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QAC7D,IAAI,GAAG,IAAI,MAAM,YAAY,IAAI,IAAI,MAAM,YAAY,IAAI,EAAE,CAAC;YAC7D,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,SAAS,EAAE,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC;YACjF,IAAI,CAAC,MAAM,EAAE,CAAC;gBACb,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,SAAS,EAAE,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC;YACrE,CAAC;YACD,IAAI,QAAQ,GAAG,EAAE,CAAC;YAClB,iCAAiC;YACjC,IAAI,OAAO,EAAE,GAAG,EAAE,CAAC;gBAClB,QAAQ,GAAG,GAAG,QAAQ,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;YACzC,CAAC;YAED,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,SAAS,EAAE,CAAC,IAAI,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;YAE9E,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC;YAE9D,OAAO,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC;YACtB,OAAO,GAAG,SAAS,GAAG,EAAE,EAAE,CAAC;QAC5B,CAAC;QACD,OAAO,IAAI,CAAC;IACb,CAAC,CAAC;IAEF,MAAM,OAAO,GAAG,CAAC,GAAW,EAAE,EAAE;QAC/B,MAAM,OAAO,GAAG,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,SAAS,EAAE,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC;QACpF,IAAI,QAAQ,GAAG,IAAI,CAAC;QAEpB,IAAI,CAAC,iBAAiB,EAAE,CAAC;YACxB,iBAAiB,GAAG,cAAc,CAAC,KAAK,EAAE,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC;QACzE,CAAC;QAED,IAAI,CAAkB,iBAAkB,CAAC,YAAY,CAAC,GAAG,CAAC,EAAE,CAAC;YAC5D,OAAO,IAAI,CAAC;QACb,CAAC;QAED,QAAQ,GAAoB,iBAAkB,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;QAEjE,IAAI,QAAQ,EAAE,CAAC;YACd,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;QAC1C,CAAC;QACD,OAAO,IAAI,CAAC;IACb,CAAC,CAAC;IAEI,GAAI,CAAC,gBAAgB,CAAC,OAAO,GAAG,CAAC,GAAW,EAAE,EAAE;QACrD,MAAM,IAAI,GAAS,GAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QACtD,IAAI,CAAC,IAAI,EAAE,CAAC;YACX,OAAO,EAAE,CAAC;QACX,CAAC;QACD,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YACf,OAAO,IAAI,CAAC,IAAI,CAAC;QAClB,CAAC;QACD,kEAAkE;QAElE,MAAM,EAAE,GAAG,GAAG,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;QAEtC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;YACf,OAAO,EAAE,CAAC;QACX,CAAC;QAED,MAAM,OAAO,GAAG,2BAA2B,CAAC,EAAE,EAAE,IAAI,CAAC,IAAI,EAAE;YAC1D,IAAI,EAAE,IAAI,EAAE,IAAI;YAChB,GAAG,EAAE,IAAI,EAAE,GAAG;SACd,CAAC,CAAC;QAEH,IAAI,CAAC,OAAO,EAAE,CAAC;YACd,OAAO,EAAE,CAAC;QACX,CAAC;QAED,IAAI,QAAQ,GAAG,EAAE,CAAC;QAElB,IAAI,IAAI,EAAE,GAAG,EAAE,CAAC;YACf,QAAQ,GAAG,GAAG,QAAQ,IAAI,IAAI,EAAE,GAAG,EAAE,CAAC;QACvC,CAAC;QAED,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,SAAS,EAAE,CAAC,IAAI,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;QAE9E,IAAI,CAAC,IAAI,GAAG,QAAQ,CAAC;QAErB,UAAU,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QAC1B,OAAO,QAAQ,CAAC;IACjB,CAAC,CAAC;AACH,CAAC"}