@nativescript/canvas-polyfill 2.0.0-alpha.5 → 2.0.0-alpha.50
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/Document.d.ts +3 -2
- package/DOM/Element.d.ts +3 -3
- package/DOM/Element.js +14 -10
- package/DOM/Element.js.map +1 -1
- package/DOM/HTMLCanvasElement.d.ts +3 -0
- package/DOM/HTMLCanvasElement.js +5 -0
- package/DOM/HTMLCanvasElement.js.map +1 -1
- package/DOM/HTMLImageElement.js +9 -17
- package/DOM/HTMLImageElement.js.map +1 -1
- package/DOM/HTMLVideoElement.js +10 -20
- package/DOM/HTMLVideoElement.js.map +1 -1
- package/DOM/Node.d.ts +2 -0
- package/DOM/Node.js +15 -0
- package/DOM/Node.js.map +1 -1
- package/DOM/XMLDocument.d.ts +4 -0
- package/DOM/XMLDocument.js +18 -0
- package/DOM/XMLDocument.js.map +1 -1
- package/LICENSE +201 -0
- package/MutationObserver.d.ts +10 -0
- package/MutationObserver.js +22 -0
- package/MutationObserver.js.map +1 -0
- package/URL.android.d.ts +16 -14
- package/URL.android.js +293 -42
- package/URL.android.js.map +1 -1
- package/URL.ios.d.ts +19 -5
- package/URL.ios.js +536 -96
- package/URL.ios.js.map +1 -1
- package/async/file/file.android.js +2 -3
- package/async/file/file.android.js.map +1 -1
- package/async/file/file.ios.js +26 -39
- package/async/file/file.ios.js.map +1 -1
- package/async/http/http.android.js +6 -1
- package/async/http/http.android.js.map +1 -1
- package/async/http/http.ios.js +9 -4
- package/async/http/http.ios.js.map +1 -1
- package/async/xhr/TNSXMLHttpRequest.js +175 -41
- package/async/xhr/TNSXMLHttpRequest.js.map +1 -1
- package/index.d.ts +1 -0
- package/index.js +8 -0
- package/index.js.map +1 -1
- package/localStorage.d.ts +2 -0
- package/localStorage.js +150 -0
- package/localStorage.js.map +1 -0
- package/package.json +5 -5
- package/performance.js +11 -11
- package/performance.js.map +1 -1
- package/platforms/android/async-release.aar +0 -0
- package/platforms/android/canvas_polyfill.aar +0 -0
- package/platforms/android/java/org/nativescript/canvas/polyfill/Utils.java +33 -7
- package/resize.js +15 -10
- package/resize.js.map +1 -1
- package/url-search.d.ts +0 -0
- package/url-search.js +343 -0
- package/url-search.js.map +1 -0
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
export class MutationObserver {
|
|
2
|
+
constructor(callback) {
|
|
3
|
+
this.callback = callback;
|
|
4
|
+
}
|
|
5
|
+
observe(element, options) {
|
|
6
|
+
this.element = element;
|
|
7
|
+
return (this.interval = setInterval((function (_this) {
|
|
8
|
+
return function () {
|
|
9
|
+
var html;
|
|
10
|
+
html = _this.element.innerHTML;
|
|
11
|
+
if (html !== _this.oldHtml) {
|
|
12
|
+
_this.oldHtml = html;
|
|
13
|
+
return _this.callback(null);
|
|
14
|
+
}
|
|
15
|
+
};
|
|
16
|
+
})(this), 200));
|
|
17
|
+
}
|
|
18
|
+
disconnect() {
|
|
19
|
+
return clearInterval(this.interval);
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
//# sourceMappingURL=MutationObserver.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MutationObserver.js","sourceRoot":"","sources":["../../../packages/canvas-polyfill/MutationObserver.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,gBAAgB;IAK5B,YAAY,QAAoB;QAC/B,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC1B,CAAC;IAED,OAAO,CAAC,OAAO,EAAE,OAAO;QACvB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,OAAO,CAAC,IAAI,CAAC,QAAQ,GAAG,WAAW,CAClC,CAAC,UAAU,KAAK;YACf,OAAO;gBACN,IAAI,IAAI,CAAC;gBACT,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC;gBAC/B,IAAI,IAAI,KAAK,KAAK,CAAC,OAAO,EAAE;oBAC3B,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC;oBACrB,OAAO,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;iBAC5B;YACF,CAAC,CAAC;QACH,CAAC,CAAC,CAAC,IAAI,CAAC,EACR,GAAG,CACH,CAAC,CAAC;IACJ,CAAC;IAED,UAAU;QACT,OAAO,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACrC,CAAC;CACD"}
|
package/URL.android.d.ts
CHANGED
|
@@ -1,44 +1,46 @@
|
|
|
1
|
+
interface BlobItem {
|
|
2
|
+
blob: Blob;
|
|
3
|
+
path?: string;
|
|
4
|
+
type?: string;
|
|
5
|
+
ext?: string;
|
|
6
|
+
}
|
|
7
|
+
import './url-search';
|
|
1
8
|
export declare class URL {
|
|
2
|
-
_native:
|
|
9
|
+
_native: any;
|
|
3
10
|
_isBlobURL: boolean;
|
|
4
11
|
constructor(url: string, base?: string | URL);
|
|
5
|
-
get native():
|
|
6
|
-
private _updateURL;
|
|
12
|
+
get native(): any;
|
|
7
13
|
get hash(): string;
|
|
8
|
-
_hash: string;
|
|
9
14
|
set hash(value: string);
|
|
10
15
|
get host(): string;
|
|
11
16
|
set host(value: string);
|
|
12
17
|
get hostname(): string;
|
|
13
|
-
_hostname: string;
|
|
14
18
|
set hostname(value: string);
|
|
15
19
|
get href(): string;
|
|
16
20
|
set href(value: string);
|
|
17
|
-
get origin():
|
|
18
|
-
_password: string;
|
|
21
|
+
get origin(): any;
|
|
19
22
|
get password(): string;
|
|
20
23
|
set password(value: string);
|
|
21
24
|
get pathname(): string;
|
|
22
|
-
_pathname: string;
|
|
23
25
|
set pathname(value: string);
|
|
24
26
|
get port(): string;
|
|
25
|
-
_port: number;
|
|
26
27
|
set port(value: string);
|
|
27
28
|
get protocol(): string;
|
|
28
|
-
_protocol: string;
|
|
29
29
|
set protocol(value: string);
|
|
30
30
|
get search(): string;
|
|
31
|
-
_search: string;
|
|
32
31
|
set search(value: string);
|
|
32
|
+
get searchParams(): URLSearchParams;
|
|
33
33
|
get username(): string;
|
|
34
|
-
_username: string;
|
|
35
34
|
set username(value: string);
|
|
36
|
-
toJSON():
|
|
37
|
-
toString():
|
|
35
|
+
toJSON(): any;
|
|
36
|
+
toString(): any;
|
|
37
|
+
static canParse(url: any, base: any): boolean;
|
|
38
38
|
static createObjectURL(object: any, options?: any): string;
|
|
39
39
|
static revokeObjectURL(url: string): void;
|
|
40
40
|
static InternalAccessor: {
|
|
41
41
|
new (): {};
|
|
42
42
|
getPath(url: string): any;
|
|
43
|
+
getData(url: string): BlobItem;
|
|
43
44
|
};
|
|
44
45
|
}
|
|
46
|
+
export {};
|
package/URL.android.js
CHANGED
|
@@ -8,69 +8,64 @@ const MIME_TO_EXT = {
|
|
|
8
8
|
'image/gif': '.gif',
|
|
9
9
|
};
|
|
10
10
|
function get_mime_ext(value) {
|
|
11
|
-
|
|
12
|
-
return (_a = '.' + MIME_TO_EXT[value]) !== null && _a !== void 0 ? _a : '';
|
|
11
|
+
return '.' + MIME_TO_EXT[value] ?? '';
|
|
13
12
|
}
|
|
14
13
|
let sharedPreferences;
|
|
14
|
+
const BLOB_STORE = new Map();
|
|
15
|
+
import './url-search';
|
|
16
|
+
/*
|
|
15
17
|
export class URL {
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
this._hostname = '';
|
|
21
|
-
this._password = '';
|
|
22
|
-
this._pathname = '';
|
|
23
|
-
this._port = -1;
|
|
24
|
-
this._protocol = '';
|
|
25
|
-
this._search = '';
|
|
26
|
-
this._username = '';
|
|
27
|
-
if ((_a = url === null || url === void 0 ? void 0 : url.startsWith) === null || _a === void 0 ? void 0 : _a.call(url, 'blob:')) {
|
|
18
|
+
_native: java.net.URI;
|
|
19
|
+
_isBlobURL = false;
|
|
20
|
+
constructor(url: string, base?: string | URL) {
|
|
21
|
+
if (url?.startsWith?.('blob:')) {
|
|
28
22
|
this._isBlobURL = true;
|
|
29
23
|
}
|
|
30
|
-
let baseUrl;
|
|
24
|
+
let baseUrl: java.net.URL;
|
|
31
25
|
if (typeof url === 'string' && url.startsWith('blob:')) {
|
|
32
26
|
this._native = new java.net.URI(url);
|
|
33
|
-
}
|
|
34
|
-
else {
|
|
27
|
+
} else {
|
|
35
28
|
if (base instanceof URL) {
|
|
36
29
|
baseUrl = base._native.toURL();
|
|
37
|
-
}
|
|
38
|
-
else if (base) {
|
|
30
|
+
} else if (base) {
|
|
39
31
|
try {
|
|
40
32
|
baseUrl = new java.net.URL(base);
|
|
41
|
-
}
|
|
42
|
-
catch (e) {
|
|
33
|
+
} catch (e) {
|
|
43
34
|
throw new TypeError(`Failed to construct 'URL': Invalid base URL`);
|
|
44
35
|
}
|
|
45
36
|
}
|
|
46
37
|
try {
|
|
47
38
|
if (baseUrl) {
|
|
48
39
|
this._native = new java.net.URL(baseUrl, url).toURI();
|
|
49
|
-
}
|
|
50
|
-
else {
|
|
40
|
+
} else {
|
|
51
41
|
this._native = new java.net.URL(url).toURI();
|
|
52
42
|
}
|
|
53
|
-
}
|
|
54
|
-
catch (e) {
|
|
43
|
+
} catch (e) {
|
|
55
44
|
throw new TypeError(`Failed to construct 'URL': Invalid URL`);
|
|
56
45
|
}
|
|
57
46
|
}
|
|
58
47
|
}
|
|
48
|
+
|
|
59
49
|
get native() {
|
|
60
50
|
return this._native.toURL();
|
|
61
51
|
}
|
|
62
|
-
|
|
52
|
+
|
|
53
|
+
private _updateURL() {
|
|
63
54
|
const currentURL = this.native;
|
|
64
55
|
this._native = new java.net.URI(this._protocol || currentURL.getProtocol(), `${this._username}${this.password ? ':' : ''}${this._password}` || currentURL.getUserInfo(), this._hostname || currentURL.getHost(), this._port || currentURL.getPort(), this._pathname || currentURL.getPath(), this._search || currentURL.getQuery(), this._hash || currentURL.getRef());
|
|
65
56
|
}
|
|
57
|
+
|
|
66
58
|
get hash() {
|
|
67
59
|
const hash = this._native.getFragment();
|
|
68
60
|
return hash ? `#${hash}` : '';
|
|
69
61
|
}
|
|
70
|
-
|
|
62
|
+
|
|
63
|
+
_hash = '';
|
|
64
|
+
set hash(value: string) {
|
|
71
65
|
this._hash = value;
|
|
72
66
|
this._updateURL();
|
|
73
67
|
}
|
|
68
|
+
|
|
74
69
|
get host() {
|
|
75
70
|
const port = this._native.getPort();
|
|
76
71
|
const scheme = this.protocol;
|
|
@@ -80,47 +75,62 @@ export class URL {
|
|
|
80
75
|
}
|
|
81
76
|
return `${this._native.getHost()}${returnPort && port != -1 ? ':' : ''}${returnPort && port != -1 ? port : ''}`;
|
|
82
77
|
}
|
|
83
|
-
|
|
78
|
+
|
|
79
|
+
set host(value: string) {
|
|
84
80
|
const url = new java.net.URL(value);
|
|
85
81
|
this._port = url.getPort();
|
|
86
82
|
this._hostname = url.getHost();
|
|
87
83
|
this._updateURL();
|
|
88
84
|
}
|
|
85
|
+
|
|
89
86
|
get hostname() {
|
|
90
87
|
return this._native.getHost();
|
|
91
88
|
}
|
|
92
|
-
|
|
89
|
+
|
|
90
|
+
_hostname = '';
|
|
91
|
+
set hostname(value: string) {
|
|
93
92
|
this._hostname = value;
|
|
94
93
|
this._updateURL();
|
|
95
94
|
}
|
|
95
|
+
|
|
96
96
|
get href() {
|
|
97
97
|
return this._native.toString();
|
|
98
98
|
}
|
|
99
|
-
|
|
99
|
+
|
|
100
|
+
set href(value: string) {
|
|
100
101
|
this._native = new java.net.URI(value);
|
|
101
102
|
}
|
|
103
|
+
|
|
102
104
|
get origin() {
|
|
103
105
|
let url = this._native;
|
|
104
106
|
if (this._isBlobURL) {
|
|
105
107
|
url = new java.net.URI(this._native.toString().replace('blob:', ''));
|
|
106
108
|
}
|
|
109
|
+
|
|
107
110
|
return `${url.getScheme()}://${url.getHost()}`;
|
|
108
111
|
}
|
|
112
|
+
|
|
113
|
+
_password = '';
|
|
109
114
|
get password() {
|
|
110
115
|
const user = this._native.getUserInfo() || '';
|
|
111
116
|
return user.split(':')[1] || '';
|
|
112
117
|
}
|
|
113
|
-
|
|
118
|
+
|
|
119
|
+
set password(value: string) {
|
|
114
120
|
this._password = value;
|
|
115
121
|
this._updateURL();
|
|
116
122
|
}
|
|
123
|
+
|
|
117
124
|
get pathname() {
|
|
118
125
|
return this._native.getPath();
|
|
119
126
|
}
|
|
120
|
-
|
|
127
|
+
|
|
128
|
+
_pathname = '';
|
|
129
|
+
set pathname(value: string) {
|
|
121
130
|
this._pathname = value;
|
|
122
131
|
this._updateURL();
|
|
123
132
|
}
|
|
133
|
+
|
|
124
134
|
get port() {
|
|
125
135
|
const port = this._native.getPort();
|
|
126
136
|
if (port === -1) {
|
|
@@ -128,54 +138,295 @@ export class URL {
|
|
|
128
138
|
}
|
|
129
139
|
return `${port}`;
|
|
130
140
|
}
|
|
131
|
-
|
|
141
|
+
|
|
142
|
+
_port = -1;
|
|
143
|
+
set port(value: string) {
|
|
132
144
|
this._port = +value;
|
|
133
145
|
this._updateURL();
|
|
134
146
|
}
|
|
147
|
+
|
|
135
148
|
get protocol() {
|
|
136
149
|
return this._native.getScheme() + ':';
|
|
137
150
|
}
|
|
138
|
-
|
|
151
|
+
|
|
152
|
+
_protocol = '';
|
|
153
|
+
set protocol(value: string) {
|
|
139
154
|
this._protocol = value;
|
|
140
155
|
this._updateURL();
|
|
141
156
|
}
|
|
157
|
+
|
|
142
158
|
get search() {
|
|
143
159
|
const query = this._native.getQuery();
|
|
144
160
|
return query ? `?${query}` : '';
|
|
145
161
|
}
|
|
146
|
-
|
|
162
|
+
|
|
163
|
+
_search = '';
|
|
164
|
+
set search(value: string) {
|
|
147
165
|
this._search = value;
|
|
148
166
|
this._updateURL();
|
|
149
167
|
}
|
|
168
|
+
|
|
169
|
+
get searchParams() {
|
|
170
|
+
return new URLSearchParams(this._native.toString());
|
|
171
|
+
}
|
|
172
|
+
|
|
150
173
|
get username() {
|
|
151
174
|
const user = this._native.getUserInfo() || '';
|
|
152
175
|
return user.split(':')[0] || '';
|
|
153
176
|
}
|
|
154
|
-
|
|
177
|
+
|
|
178
|
+
_username = '';
|
|
179
|
+
set username(value: string) {
|
|
155
180
|
this.username = value;
|
|
156
181
|
this._updateURL();
|
|
157
182
|
}
|
|
183
|
+
|
|
158
184
|
toJSON() {
|
|
159
185
|
return this._native.toString();
|
|
160
186
|
}
|
|
187
|
+
|
|
161
188
|
toString() {
|
|
162
189
|
return this._native.toString();
|
|
163
190
|
}
|
|
191
|
+
|
|
192
|
+
public static createObjectURL(object: any, options = null): string {
|
|
193
|
+
//const buf = (Blob as any).InternalAccessor.getBuffer(object);
|
|
194
|
+
if (object instanceof Blob || object instanceof File) {
|
|
195
|
+
const id = java.util.UUID.randomUUID().toString();
|
|
196
|
+
const ret = `blob:nativescript/${id}`;
|
|
197
|
+
BLOB_STORE.set(ret, {
|
|
198
|
+
blob: object,
|
|
199
|
+
type: object?.type,
|
|
200
|
+
ext: options?.ext,
|
|
201
|
+
});
|
|
202
|
+
return ret;
|
|
203
|
+
// return org.nativescript.canvas.polyfill.Utils.createObjectURL(Utils.android.getApplicationContext(), buf, buf.byteOffset, object?.type ?? null, options?.ext ?? null);
|
|
204
|
+
}
|
|
205
|
+
return null;
|
|
206
|
+
}
|
|
207
|
+
|
|
208
|
+
public static revokeObjectURL(url: string) {
|
|
209
|
+
const blob = BLOB_STORE.get(url);
|
|
210
|
+
if (blob.path) {
|
|
211
|
+
org.nativescript.canvas.polyfill.Utils.revokeObjectURL(Utils.android.getApplicationContext(), url ?? null);
|
|
212
|
+
}
|
|
213
|
+
BLOB_STORE.delete(url);
|
|
214
|
+
//org.nativescript.canvas.polyfill.Utils.revokeObjectURL(Utils.android.getApplicationContext(), url ?? null);
|
|
215
|
+
}
|
|
216
|
+
|
|
217
|
+
public static InternalAccessor = class {
|
|
218
|
+
public static getPath(url: string) {
|
|
219
|
+
// return org.nativescript.canvas.polyfill.Utils.getPath(Utils.android.getApplicationContext(), url ?? null);
|
|
220
|
+
const blob = BLOB_STORE.get(url);
|
|
221
|
+
if (!blob) {
|
|
222
|
+
return '';
|
|
223
|
+
}
|
|
224
|
+
if (blob.path) {
|
|
225
|
+
return blob.path;
|
|
226
|
+
}
|
|
227
|
+
const buf = (Blob as any).InternalAccessor.getBuffer(blob.blob);
|
|
228
|
+
const path = org.nativescript.canvas.polyfill.Utils.getItemOrCreateAndReturn(Utils.android.getApplicationContext(), url, buf, buf.byteOffset, blob?.type ?? null, blob?.ext ?? null);
|
|
229
|
+
blob.path = path;
|
|
230
|
+
BLOB_STORE.set(url, blob);
|
|
231
|
+
return path;
|
|
232
|
+
}
|
|
233
|
+
|
|
234
|
+
public static getData(url: string) {
|
|
235
|
+
return BLOB_STORE.get(url);
|
|
236
|
+
}
|
|
237
|
+
};
|
|
238
|
+
}
|
|
239
|
+
*/
|
|
240
|
+
export class URL {
|
|
241
|
+
constructor(url, base) {
|
|
242
|
+
this._isBlobURL = false;
|
|
243
|
+
if (url?.startsWith?.('blob:')) {
|
|
244
|
+
this._isBlobURL = true;
|
|
245
|
+
}
|
|
246
|
+
let baseUrl;
|
|
247
|
+
if (typeof url === 'string' && url.startsWith('blob:')) {
|
|
248
|
+
this._native = new global.CanvasModule.URL(url);
|
|
249
|
+
}
|
|
250
|
+
else {
|
|
251
|
+
if (base instanceof URL) {
|
|
252
|
+
baseUrl = base._native.toString();
|
|
253
|
+
}
|
|
254
|
+
else if (base) {
|
|
255
|
+
try {
|
|
256
|
+
baseUrl = base.toString();
|
|
257
|
+
}
|
|
258
|
+
catch (e) {
|
|
259
|
+
throw new TypeError(`Failed to construct 'URL': Invalid base URL`);
|
|
260
|
+
}
|
|
261
|
+
}
|
|
262
|
+
try {
|
|
263
|
+
if (baseUrl) {
|
|
264
|
+
this._native = new global.CanvasModule.URL(url, baseUrl);
|
|
265
|
+
}
|
|
266
|
+
else {
|
|
267
|
+
this._native = new global.CanvasModule.URL(url);
|
|
268
|
+
}
|
|
269
|
+
}
|
|
270
|
+
catch (e) {
|
|
271
|
+
throw new TypeError(`Failed to construct 'URL': Invalid URL`);
|
|
272
|
+
}
|
|
273
|
+
}
|
|
274
|
+
}
|
|
275
|
+
get native() {
|
|
276
|
+
return this._native;
|
|
277
|
+
}
|
|
278
|
+
get hash() {
|
|
279
|
+
return this.native.hash;
|
|
280
|
+
}
|
|
281
|
+
set hash(value) {
|
|
282
|
+
this.native.hash = value;
|
|
283
|
+
}
|
|
284
|
+
get host() {
|
|
285
|
+
return this.native.host;
|
|
286
|
+
}
|
|
287
|
+
set host(value) {
|
|
288
|
+
this.native.host = value;
|
|
289
|
+
}
|
|
290
|
+
get hostname() {
|
|
291
|
+
return this.native.hostname;
|
|
292
|
+
}
|
|
293
|
+
set hostname(value) {
|
|
294
|
+
this.native.hostname = value;
|
|
295
|
+
}
|
|
296
|
+
get href() {
|
|
297
|
+
return this.native.href;
|
|
298
|
+
}
|
|
299
|
+
set href(value) {
|
|
300
|
+
this.native.href = value;
|
|
301
|
+
}
|
|
302
|
+
get origin() {
|
|
303
|
+
// let url = this._native;
|
|
304
|
+
// if (this._isBlobURL) {
|
|
305
|
+
// url = new java.net.URI(this._native.toString().replace('blob:', ''));
|
|
306
|
+
// }
|
|
307
|
+
// return `${url.getScheme()}://${url.getHost()}`;
|
|
308
|
+
return this.native.origin;
|
|
309
|
+
}
|
|
310
|
+
get password() {
|
|
311
|
+
return this.native.password;
|
|
312
|
+
}
|
|
313
|
+
set password(value) {
|
|
314
|
+
this.native.password = value;
|
|
315
|
+
}
|
|
316
|
+
get pathname() {
|
|
317
|
+
return this.native.pathname;
|
|
318
|
+
}
|
|
319
|
+
set pathname(value) {
|
|
320
|
+
this.native.pathname = value;
|
|
321
|
+
}
|
|
322
|
+
get port() {
|
|
323
|
+
return this.native.port;
|
|
324
|
+
}
|
|
325
|
+
set port(value) {
|
|
326
|
+
this.native.port = value;
|
|
327
|
+
}
|
|
328
|
+
get protocol() {
|
|
329
|
+
return this.native.protocol;
|
|
330
|
+
}
|
|
331
|
+
set protocol(value) {
|
|
332
|
+
this.native.protocol = value;
|
|
333
|
+
}
|
|
334
|
+
get search() {
|
|
335
|
+
return this.native.search;
|
|
336
|
+
}
|
|
337
|
+
set search(value) {
|
|
338
|
+
this.native.search = value;
|
|
339
|
+
}
|
|
340
|
+
get searchParams() {
|
|
341
|
+
return new URLSearchParams(this.native.toString());
|
|
342
|
+
}
|
|
343
|
+
get username() {
|
|
344
|
+
return this.native.username;
|
|
345
|
+
}
|
|
346
|
+
set username(value) {
|
|
347
|
+
this.native.username = value;
|
|
348
|
+
}
|
|
349
|
+
toJSON() {
|
|
350
|
+
return this.native.toString();
|
|
351
|
+
}
|
|
352
|
+
toString() {
|
|
353
|
+
return this.native.toString();
|
|
354
|
+
}
|
|
355
|
+
static canParse(url, base) {
|
|
356
|
+
let ret = false;
|
|
357
|
+
if (url?.startsWith?.('blob:')) {
|
|
358
|
+
ret = true;
|
|
359
|
+
}
|
|
360
|
+
let baseUrl;
|
|
361
|
+
if (typeof url === 'string' && url.startsWith('blob:')) {
|
|
362
|
+
ret = true;
|
|
363
|
+
}
|
|
364
|
+
else {
|
|
365
|
+
if (base instanceof URL) {
|
|
366
|
+
baseUrl = base._native.toString();
|
|
367
|
+
}
|
|
368
|
+
else if (base) {
|
|
369
|
+
try {
|
|
370
|
+
baseUrl = base.toString();
|
|
371
|
+
}
|
|
372
|
+
catch (e) {
|
|
373
|
+
throw new TypeError(`Failed to construct 'URL': Invalid base URL`);
|
|
374
|
+
}
|
|
375
|
+
}
|
|
376
|
+
try {
|
|
377
|
+
if (baseUrl) {
|
|
378
|
+
ret = global.CanvasModule.URL.canParse(url, baseUrl);
|
|
379
|
+
}
|
|
380
|
+
else {
|
|
381
|
+
ret = global.CanvasModule.URL.canParse(url);
|
|
382
|
+
}
|
|
383
|
+
}
|
|
384
|
+
catch (e) { }
|
|
385
|
+
}
|
|
386
|
+
return ret;
|
|
387
|
+
}
|
|
164
388
|
static createObjectURL(object, options = null) {
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
389
|
+
//const buf = (Blob as any).InternalAccessor.getBuffer(object);
|
|
390
|
+
if (object instanceof Blob || object instanceof File) {
|
|
391
|
+
const id = java.util.UUID.randomUUID().toString();
|
|
392
|
+
const ret = `blob:nativescript/${id}`;
|
|
393
|
+
BLOB_STORE.set(ret, {
|
|
394
|
+
blob: object,
|
|
395
|
+
type: object?.type,
|
|
396
|
+
ext: options?.ext,
|
|
397
|
+
});
|
|
398
|
+
return ret;
|
|
399
|
+
// return org.nativescript.canvas.polyfill.Utils.createObjectURL(Utils.android.getApplicationContext(), buf, buf.byteOffset, object?.type ?? null, options?.ext ?? null);
|
|
169
400
|
}
|
|
170
401
|
return null;
|
|
171
402
|
}
|
|
172
403
|
static revokeObjectURL(url) {
|
|
173
|
-
|
|
404
|
+
const blob = BLOB_STORE.get(url);
|
|
405
|
+
if (blob.path) {
|
|
406
|
+
org.nativescript.canvas.polyfill.Utils.revokeObjectURL(Utils.android.getApplicationContext(), url ?? null);
|
|
407
|
+
}
|
|
408
|
+
BLOB_STORE.delete(url);
|
|
409
|
+
//org.nativescript.canvas.polyfill.Utils.revokeObjectURL(Utils.android.getApplicationContext(), url ?? null);
|
|
174
410
|
}
|
|
175
411
|
}
|
|
176
412
|
URL.InternalAccessor = class {
|
|
177
413
|
static getPath(url) {
|
|
178
|
-
return org.nativescript.canvas.polyfill.Utils.getPath(Utils.android.getApplicationContext(), url
|
|
414
|
+
// return org.nativescript.canvas.polyfill.Utils.getPath(Utils.android.getApplicationContext(), url ?? null);
|
|
415
|
+
const blob = BLOB_STORE.get(url);
|
|
416
|
+
if (!blob) {
|
|
417
|
+
return '';
|
|
418
|
+
}
|
|
419
|
+
if (blob.path) {
|
|
420
|
+
return blob.path;
|
|
421
|
+
}
|
|
422
|
+
const buf = Blob.InternalAccessor.getBuffer(blob.blob);
|
|
423
|
+
const path = org.nativescript.canvas.polyfill.Utils.getItemOrCreateAndReturn(Utils.android.getApplicationContext(), url, buf, buf.byteOffset, blob?.type ?? null, blob?.ext ?? null);
|
|
424
|
+
blob.path = path;
|
|
425
|
+
BLOB_STORE.set(url, blob);
|
|
426
|
+
return path;
|
|
427
|
+
}
|
|
428
|
+
static getData(url) {
|
|
429
|
+
return BLOB_STORE.get(url);
|
|
179
430
|
}
|
|
180
431
|
};
|
|
181
432
|
//# sourceMappingURL=URL.android.js.map
|
package/URL.android.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"URL.android.js","sourceRoot":"","sources":["../../../packages/canvas-polyfill/URL.android.ts"],"names":[],"mappings":"AAAA,OAAO,EAAkE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAC3G,MAAM,SAAS,GAAG,oBAAoB,CAAC;AACvC,MAAM,QAAQ,GAAG,UAAU,CAAC;AAC5B,MAAM,SAAS,GAAG,mCAAmC,CAAC;AAGtD,MAAM,WAAW,GAAG;IACnB,YAAY,EAAE,MAAM;IACpB,WAAW,EAAE,MAAM;IACnB,WAAW,EAAE,MAAM;CACnB,CAAC;AAEF,SAAS,YAAY,CAAC,KAAK
|
|
1
|
+
{"version":3,"file":"URL.android.js","sourceRoot":"","sources":["../../../packages/canvas-polyfill/URL.android.ts"],"names":[],"mappings":"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"}
|
package/URL.ios.d.ts
CHANGED
|
@@ -1,7 +1,15 @@
|
|
|
1
|
+
interface BlobItem {
|
|
2
|
+
blob: Blob;
|
|
3
|
+
path?: string;
|
|
4
|
+
type?: string;
|
|
5
|
+
ext?: string;
|
|
6
|
+
}
|
|
7
|
+
import './url-search';
|
|
1
8
|
export declare class URL {
|
|
2
|
-
|
|
9
|
+
_native: any;
|
|
10
|
+
_isBlobURL: boolean;
|
|
3
11
|
constructor(url: string, base?: string | URL);
|
|
4
|
-
get native():
|
|
12
|
+
get native(): any;
|
|
5
13
|
get hash(): string;
|
|
6
14
|
set hash(value: string);
|
|
7
15
|
get host(): string;
|
|
@@ -10,7 +18,7 @@ export declare class URL {
|
|
|
10
18
|
set hostname(value: string);
|
|
11
19
|
get href(): string;
|
|
12
20
|
set href(value: string);
|
|
13
|
-
get origin():
|
|
21
|
+
get origin(): any;
|
|
14
22
|
get password(): string;
|
|
15
23
|
set password(value: string);
|
|
16
24
|
get pathname(): string;
|
|
@@ -21,17 +29,23 @@ export declare class URL {
|
|
|
21
29
|
set protocol(value: string);
|
|
22
30
|
get search(): string;
|
|
23
31
|
set search(value: string);
|
|
32
|
+
get searchParams(): URLSearchParams;
|
|
24
33
|
get username(): string;
|
|
25
34
|
set username(value: string);
|
|
26
|
-
toJSON():
|
|
27
|
-
toString():
|
|
35
|
+
toJSON(): any;
|
|
36
|
+
toString(): any;
|
|
37
|
+
static canParse(url: any, base: any): boolean;
|
|
28
38
|
static createObjectURL(object: any, options?: any): string;
|
|
39
|
+
static createObjectURLLegacy(object: any, options?: any): string;
|
|
40
|
+
static createObjectURLLegacyWithId(id: string, object: any, options?: any): string;
|
|
29
41
|
static revokeObjectURL(url: string): void;
|
|
30
42
|
static InternalAccessor: {
|
|
31
43
|
new (): {};
|
|
32
44
|
getPath(url: string): string;
|
|
45
|
+
getData(url: string): BlobItem;
|
|
33
46
|
};
|
|
34
47
|
private static getUUID;
|
|
35
48
|
private static putItem;
|
|
36
49
|
private static getItem;
|
|
37
50
|
}
|
|
51
|
+
export {};
|