@nativescript/canvas-polyfill 2.0.0-webgpu.9 → 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.
- package/DOM/CSSStyleDeclaration.d.ts +8 -0
- package/DOM/CSSStyleDeclaration.js +20 -0
- package/DOM/CSSStyleDeclaration.js.map +1 -0
- package/DOM/Document.d.ts +3 -0
- package/DOM/Document.js +24 -105
- package/DOM/Document.js.map +1 -1
- package/DOM/Element.d.ts +7 -0
- package/DOM/Element.js +80 -2
- package/DOM/Element.js.map +1 -1
- package/DOM/EventTarget.d.ts +6 -1
- package/DOM/EventTarget.js +34 -31
- package/DOM/EventTarget.js.map +1 -1
- package/DOM/HTMLBodyElement.d.ts +3 -0
- package/DOM/HTMLBodyElement.js +4 -0
- package/DOM/HTMLBodyElement.js.map +1 -0
- package/DOM/HTMLCanvasElement.d.ts +4 -0
- package/DOM/HTMLCanvasElement.js +10 -0
- package/DOM/HTMLCanvasElement.js.map +1 -1
- package/DOM/HTMLDivElement.d.ts +2 -0
- package/DOM/HTMLDivElement.js +8 -0
- package/DOM/HTMLDivElement.js.map +1 -1
- package/DOM/HTMLElement.d.ts +11 -1
- package/DOM/HTMLElement.js +82 -0
- package/DOM/HTMLElement.js.map +1 -1
- package/DOM/HTMLHeadElement.d.ts +3 -0
- package/DOM/HTMLHeadElement.js +4 -0
- package/DOM/HTMLHeadElement.js.map +1 -0
- package/DOM/HTMLHtmlElement.d.ts +3 -0
- package/DOM/HTMLHtmlElement.js +4 -0
- package/DOM/HTMLHtmlElement.js.map +1 -0
- package/DOM/HTMLImageElement.d.ts +6 -0
- package/DOM/HTMLImageElement.js +316 -90
- package/DOM/HTMLImageElement.js.map +1 -1
- package/DOM/HTMLVideoElement.d.ts +5 -1
- package/DOM/HTMLVideoElement.js +17 -2
- package/DOM/HTMLVideoElement.js.map +1 -1
- package/DOM/Node.d.ts +13 -0
- package/DOM/Node.js +22 -2
- package/DOM/Node.js.map +1 -1
- package/DOM/Text.d.ts +1 -0
- package/DOM/Text.js +2 -0
- package/DOM/Text.js.map +1 -1
- package/DOM/domUtils.d.ts +2 -0
- package/DOM/domUtils.js +51 -0
- package/DOM/domUtils.js.map +1 -0
- package/DOM/svg/SVGElement.js +3 -3
- package/DOM/svg/SVGElement.js.map +1 -1
- package/MutationObserver.d.ts +4 -3
- package/MutationObserver.js +22 -12
- package/MutationObserver.js.map +1 -1
- package/async/file/file.android.js +6 -4
- package/async/file/file.android.js.map +1 -1
- package/async/file/file.ios.js +6 -4
- package/async/file/file.ios.js.map +1 -1
- package/async/http/http.ios.js +1 -1
- package/async/http/http.ios.js.map +1 -1
- package/async/xhr/TNSXMLHttpRequest.d.ts +2 -2
- package/async/xhr/TNSXMLHttpRequest.js +163 -78
- package/async/xhr/TNSXMLHttpRequest.js.map +1 -1
- package/index.d.ts +2 -0
- package/index.js +8 -11
- package/index.js.map +1 -1
- package/localStorage.js +32 -30
- package/localStorage.js.map +1 -1
- package/navigator.d.ts +4 -1
- package/navigator.js +16 -3
- package/navigator.js.map +1 -1
- package/package.json +6 -6
- package/performance.js +43 -20
- package/performance.js.map +1 -1
- package/platforms/android/async-release.aar +0 -0
- package/process.js +1 -0
- package/process.js.map +1 -1
- package/urlBlobPatch.d.ts +1 -0
- package/urlBlobPatch.js +123 -0
- package/urlBlobPatch.js.map +1 -0
- package/window.js +69 -33
- package/window.js.map +1 -1
- package/workerPatch.d.ts +3 -0
- package/workerPatch.js +13 -0
- package/workerPatch.js.map +1 -0
- package/URL.android.d.ts +0 -46
- package/URL.android.js +0 -444
- package/URL.android.js.map +0 -1
- package/URL.ios.d.ts +0 -51
- package/URL.ios.js +0 -661
- package/URL.ios.js.map +0 -1
package/index.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
require('globals');
|
|
2
|
-
if (
|
|
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
|
|
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
|
-
|
|
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":"AAAA,OAAO,CAAC,
|
|
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
|
-
|
|
27
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
}
|
package/localStorage.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"localStorage.js","sourceRoot":"","sources":["../../../packages/canvas-polyfill/localStorage.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAExD,IAAI,IAAU,CAAC;AACf,IAAI,mBAAmB,GAAG,IAAI,CAAC;AAE/B,MAAM,gBAAgB,GAAG,UAAU,OAAgB;IAClD,IAAI,CAAC;QACJ,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC,CAAC;IAC3D,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACd,
|
|
1
|
+
{"version":3,"file":"localStorage.js","sourceRoot":"","sources":["../../../packages/canvas-polyfill/localStorage.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAExD,IAAI,IAAU,CAAC;AACf,IAAI,mBAAmB,GAAG,IAAI,CAAC;AAE/B,MAAM,gBAAgB,GAAG,UAAU,OAAgB;IAClD,IAAI,CAAC;QACJ,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC,CAAC;IAC3D,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACd,OAAO,CAAC,GAAG,CAAC,gDAAgD,EAAE,GAAG,CAAC,CAAC;IACpE,CAAC;AACF,CAAC,CAAC;AAEF,MAAM,QAAQ,GAAG,UAAU,OAAgB;IAC1C,IAAI,mBAAmB,KAAK,IAAI,EAAE,CAAC;QAClC,YAAY,CAAC,mBAAmB,CAAC,CAAC;IACnC,CAAC;IACD,mBAAmB,GAAG,UAAU,CAAC,GAAG,EAAE;QACrC,mBAAmB,GAAG,IAAI,CAAC;QAC3B,gBAAgB,CAAC,OAAO,CAAC,CAAC;IAC3B,CAAC,EAAE,GAAG,CAAC,CAAC;AACT,CAAC,CAAC;AAEF,MAAM,OAAO;IAAb;QACC,sBAAiB,GAA2B,EAAE,CAAC;QAC/C,+DAA+D;QACvD,YAAO,GAAW,CAAC,CAAC;IAkD7B,CAAC;IAhDA,OAAO,CAAC,IAAY;QACnB,MAAM,GAAG,GAAG,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;QACzC,OAAO,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC;IACvC,CAAC;IAED,GAAG,CAAC,EAAU;QACb,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;QACjD,OAAO,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAC3C,CAAC;IAED,aAAa,CAAC,IAAY,EAAE,KAAU;QACrC,IAAI,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC,iBAAiB,CAAC,EAAE,CAAC;YACvC,IAAI,CAAC,OAAO,EAAE,CAAC;QAChB,CAAC;QACD,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC;QACrC,QAAQ,CAAC,IAAI,CAAC,CAAC;IAChB,CAAC;IAED,OAAO,CAAC,IAAY,EAAE,KAAU;QAC/B,IAAI,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC,iBAAiB,CAAC,EAAE,CAAC;YACvC,IAAI,CAAC,OAAO,EAAE,CAAC;QAChB,CAAC;QACD,IAAI,KAAK,IAAI,IAAI,EAAE,CAAC;YACnB,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,GAAG,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,WAAW,CAAC;QACtE,CAAC;aAAM,CAAC;YACP,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,QAAQ,EAAE,CAAC;QACjD,CAAC;QACD,QAAQ,CAAC,IAAI,CAAC,CAAC;IAChB,CAAC;IAED,UAAU,CAAC,IAAY;QACtB,uFAAuF;QACvF,IAAI,IAAI,IAAI,IAAI,CAAC,iBAAiB,EAAE,CAAC;YACpC,OAAO,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;YACpC,IAAI,CAAC,OAAO,EAAE,CAAC;YACf,QAAQ,CAAC,IAAI,CAAC,CAAC;QAChB,CAAC;IACF,CAAC;IAED,KAAK;QACJ,IAAI,CAAC,iBAAiB,GAAG,EAAE,CAAC;QAC5B,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC;QACjB,QAAQ,CAAC,IAAI,CAAC,CAAC;IAChB,CAAC;IAED,IAAI,MAAM;QACT,OAAO,IAAI,CAAC,OAAO,CAAC;IACrB,CAAC;CACD;AAED,MAAM,cAAc;IAApB;QACS,aAAQ,GAAG,IAAI,GAAG,EAAkB,CAAC;IAkC9C,CAAC;IAhCA,OAAO,CAAC,IAAY;QACnB,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC;IACxC,CAAC;IAED,GAAG,CAAC,EAAU;QACb,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;QAC9C,OAAO,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAC3C,CAAC;IAED,aAAa,CAAC,IAAY,EAAE,KAAU;QACrC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IAChC,CAAC;IAED,OAAO,CAAC,IAAY,EAAE,KAAU;QAC/B,IAAI,KAAK,IAAI,IAAI,EAAE,CAAC;YACnB,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;QAChE,CAAC;aAAM,CAAC;YACP,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC;QAC3C,CAAC;IACF,CAAC;IAED,UAAU,CAAC,IAAY;QACtB,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAC5B,CAAC;IAED,KAAK;QACJ,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;IACvB,CAAC;IAED,IAAI,MAAM;QACT,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;IAC3B,CAAC;CACD;AAED,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;IACf,MAAO,CAAC,OAAO,GAAG,OAAO,CAAC;AACjC,CAAC;AAED,IAAI,CAAC,MAAM,CAAC,YAAY,IAAU,MAAO,CAAC,GAAG,EAAE,CAAC;IAC/C,MAAM,IAAI,GAAG,YAAY,CAAC,SAAS,EAAE,CAAC,IAAI,GAAG,kBAAkB,CAAC;IAChE,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IAC3B,mBAAmB,GAAG,IAAI,CAAC;IAE3B,MAAM,QAAQ,GAAG,UAAU,OAAgB;QAC1C,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;YACxB,OAAO;QACR,CAAC;QACD,IAAI,IAAI,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;YACrB,OAAO;QACR,CAAC;QACD,IAAI,CAAC;YACJ,MAAM,QAAQ,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;YACrC,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;YAClC,OAAO,CAAC,iBAAiB,GAAG,IAAI,CAAC;YACjC,kDAAkD;YAC5C,OAAQ,CAAC,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC;QACnD,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACd,OAAO,CAAC,GAAG,CAAC,8CAA8C,EAAE,GAAG,CAAC,CAAC;QAClE,CAAC;IACF,CAAC,CAAC;IAEF,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;IAC9B,QAAQ,CAAC,OAAO,CAAC,CAAC;IAClB,MAAM,CAAC,YAAY,GAAG,OAAO,CAAC;AAC/B,CAAC;AAED,IAAI,CAAC,MAAM,CAAC,cAAc,EAAE,CAAC;IAC5B,MAAM,CAAC,cAAc,GAAG,IAAI,cAAc,EAAE,CAAC;AAC9C,CAAC;AAED,eAAe,MAAM,CAAC,YAAY,CAAC;AAEnC,IAAU,MAAO,CAAC,GAAG,EAAE,CAAC;IACjB,MAAO,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC;IACrB,MAAO,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,EAAE;QAC9B,0CAA0C;QAC1C,IAAI,mBAAmB,KAAK,IAAI,EAAE,CAAC;YAClC,YAAY,CAAC,mBAAmB,CAAC,CAAC;YAClC,mBAAmB,GAAG,IAAI,CAAC;YAC3B,IAAI,MAAM,CAAC,YAAY,EAAE,CAAC;gBACzB,gBAAgB,CAAC,MAAM,CAAC,YAAmB,CAAC,CAAC;YAC9C,CAAC;QACF,CAAC;QACD,MAAM,CAAC,YAAY,GAAG,SAAS,CAAC;IACjC,CAAC,CAAC,CAAC;AACJ,CAAC"}
|
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 = '
|
|
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.
|
|
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;
|
|
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
|
|
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": "
|
|
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": "
|
|
37
|
-
"@nativescript/canvas-media": "
|
|
38
|
-
"@nativescript/canvas-svg": "
|
|
39
|
-
"@xmldom/xmldom": "0.8.
|
|
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
|
-
|
|
50
|
-
|
|
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
|
-
|
|
56
|
+
mark(name) {
|
|
57
|
+
this._marks.set(name, this.now());
|
|
54
58
|
},
|
|
55
|
-
clearMeasures() {
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
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
|
-
|
|
65
|
-
|
|
67
|
+
clearMarks(name) {
|
|
68
|
+
if (name) {
|
|
69
|
+
this._marks.delete(name);
|
|
70
|
+
}
|
|
71
|
+
else {
|
|
72
|
+
this._marks.clear();
|
|
73
|
+
}
|
|
66
74
|
},
|
|
67
|
-
|
|
68
|
-
|
|
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
|
-
|
|
73
|
-
|
|
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
|
-
|
|
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
|
}
|
package/performance.js.map
CHANGED
|
@@ -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;
|
|
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;YACD,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,MAAM,EAAE,IAAI,GAAG,EAAkB;QACjC,SAAS,EAAE,IAAI,GAAG,EAAmD;QACrE,OAAO,CAAC,IAAY,EAAE,SAAkB,EAAE,OAAgB;YACzD,MAAM,KAAK,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAChE,MAAM,GAAG,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;YAC5E,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,QAAQ,EAAE,GAAG,GAAG,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC;QACvE,CAAC;QACD,IAAI,CAAC,IAAY;YAChB,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;QACnC,CAAC;QACD,aAAa,CAAC,IAAa;YAC1B,IAAI,IAAI,EAAE,CAAC;gBACV,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YAC7B,CAAC;iBAAM,CAAC;gBACP,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;YACxB,CAAC;QACF,CAAC;QACD,UAAU,CAAC,IAAa;YACvB,IAAI,IAAI,EAAE,CAAC;gBACV,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YAC1B,CAAC;iBAAM,CAAC;gBACP,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;YACrB,CAAC;QACF,CAAC;QACD,oBAAoB,KAAI,CAAC;QACzB,2BAA2B,KAAI,CAAC;QAChC,gBAAgB,CAAC,IAAY;YAC5B,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;gBACxB,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,GAAG,CAAC,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC;YACxG,CAAC;YACD,IAAI,IAAI,KAAK,MAAM,EAAE,CAAC;gBACrB,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,SAAS,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;YAC5H,CAAC;YACD,OAAO,EAAE,CAAC;QACX,CAAC;QACD,gBAAgB,CAAC,IAAY;YAC5B,MAAM,OAAO,GAAG,EAAE,CAAC;YACnB,IAAI,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC3B,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC,CAAC;YAC1F,CAAC;YACD,IAAI,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC9B,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC,CAAC;YAC3E,CAAC;YACD,OAAO,OAAO,CAAC;QAChB,CAAC;QACD,UAAU;YACT,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,SAAS,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;YAClI,MAAM,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,GAAG,CAAC,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC;YACjH,OAAO,CAAC,GAAG,KAAK,EAAE,GAAG,QAAQ,CAAC,CAAC;QAChC,CAAC;KACD,CAAC;AACH,CAAC"}
|
|
Binary file
|
package/process.js
CHANGED
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 {};
|
package/urlBlobPatch.js
ADDED
|
@@ -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":"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"}
|