@multiplatform.one/platform 7.10.0 → 7.15.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/README.md +67 -0
- package/dist/cjs/config/devOrigin.cjs +42 -0
- package/dist/cjs/config/devOriginSource.cjs +32 -0
- package/dist/cjs/config/index.cjs +1 -0
- package/dist/cjs/file/index.cjs +30 -0
- package/dist/cjs/file/saveFile.cjs +47 -0
- package/dist/cjs/file/types.cjs +56 -0
- package/dist/cjs/utils/downloadFile.cjs +10 -4
- package/dist/esm/config/devOrigin.mjs +16 -0
- package/dist/esm/config/devOrigin.mjs.map +1 -0
- package/dist/esm/config/devOriginSource.mjs +7 -0
- package/dist/esm/config/devOriginSource.mjs.map +1 -0
- package/dist/esm/config/index.mjs +1 -0
- package/dist/esm/config/index.mjs.map +1 -1
- package/dist/esm/file/index.mjs +4 -0
- package/dist/esm/file/index.mjs.map +1 -0
- package/dist/esm/file/saveFile.mjs +22 -0
- package/dist/esm/file/saveFile.mjs.map +1 -0
- package/dist/esm/file/types.mjs +30 -0
- package/dist/esm/file/types.mjs.map +1 -0
- package/dist/esm/utils/downloadFile.mjs +10 -4
- package/dist/esm/utils/downloadFile.mjs.map +1 -1
- package/file.ts +1 -0
- package/package.json +18 -4
- package/src/config/config.native.ts +2 -1
- package/src/config/devOrigin.spec.ts +79 -0
- package/src/config/devOrigin.ts +45 -0
- package/src/config/devOriginSource.native.ts +9 -0
- package/src/config/devOriginSource.ts +5 -0
- package/src/config/index.ts +1 -0
- package/src/file/index.ts +3 -0
- package/src/file/saveFile.native.spec.ts +245 -0
- package/src/file/saveFile.native.ts +83 -0
- package/src/file/saveFile.spec.ts +98 -0
- package/src/file/saveFile.ts +25 -0
- package/src/file/saveFile.unavailable.native.spec.ts +24 -0
- package/src/file/types.ts +74 -0
- package/src/utils/downloadFile.spec.ts +54 -0
- package/src/utils/downloadFile.ts +11 -4
- package/types/config/config.native.d.ts.map +1 -1
- package/types/config/devOrigin.d.ts +28 -0
- package/types/config/devOrigin.d.ts.map +1 -0
- package/types/config/devOriginSource.d.ts +3 -0
- package/types/config/devOriginSource.d.ts.map +1 -0
- package/types/config/devOriginSource.native.d.ts +3 -0
- package/types/config/devOriginSource.native.d.ts.map +1 -0
- package/types/config/index.d.ts +1 -0
- package/types/config/index.d.ts.map +1 -1
- package/types/file/index.d.ts +4 -0
- package/types/file/index.d.ts.map +1 -0
- package/types/file/saveFile.d.ts +3 -0
- package/types/file/saveFile.d.ts.map +1 -0
- package/types/file/saveFile.native.d.ts +3 -0
- package/types/file/saveFile.native.d.ts.map +1 -0
- package/types/file/types.d.ts +34 -0
- package/types/file/types.d.ts.map +1 -0
- package/types/utils/downloadFile.d.ts.map +1 -1
|
@@ -3,12 +3,19 @@ export function downloadFile(url: string, filename: string): void {
|
|
|
3
3
|
a.href = url;
|
|
4
4
|
a.download = filename;
|
|
5
5
|
document.body.appendChild(a);
|
|
6
|
-
|
|
7
|
-
|
|
6
|
+
try {
|
|
7
|
+
a.click();
|
|
8
|
+
} finally {
|
|
9
|
+
a.remove();
|
|
10
|
+
}
|
|
8
11
|
}
|
|
9
12
|
|
|
10
13
|
export function downloadBlob(blob: Blob, filename: string): void {
|
|
11
14
|
const url = URL.createObjectURL(blob);
|
|
12
|
-
|
|
13
|
-
|
|
15
|
+
try {
|
|
16
|
+
downloadFile(url, filename);
|
|
17
|
+
} finally {
|
|
18
|
+
// Activation has no completion receipt; keep the URL alive for the browser to read.
|
|
19
|
+
setTimeout(() => URL.revokeObjectURL(url), 60_000);
|
|
20
|
+
}
|
|
14
21
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.native.d.ts","sourceRoot":"","sources":["../../src/config/config.native.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"config.native.d.ts","sourceRoot":"","sources":["../../src/config/config.native.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAEvC,qBAAa,MAAO,YAAW,OAAO;IACpC,OAAO,CAAC,OAAO,CAA8B;IAE7C,OAAO,CAAC,UAAU,CAA4B;IAE9C,OAAO,CAAC,UAAU;IAKlB,OAAO,CAAC,cAAc;IAQtB,OAAO,CAAC,aAAa;gBAUT,MAAM,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAM;IAY3D,GAAG,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAC7B,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IACpC,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,MAAM;IAO9C,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;IAK9B,GAAG,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAQjC,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;CAKxC"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Where the running app learns the dev machine's address from.
|
|
3
|
+
*
|
|
4
|
+
* On native, `hostUri` is Expo's `Constants.expoConfig.hostUri`: the
|
|
5
|
+
* `host:port` the device fetched its manifest from, which @expo/cli fills in
|
|
6
|
+
* from the request's Host header. It is therefore the one address the device
|
|
7
|
+
* is already proven to reach, whatever the machine's LAN IP happens to be,
|
|
8
|
+
* and it is absent in a release build, where nothing points at localhost.
|
|
9
|
+
*/
|
|
10
|
+
export interface DevOriginSource {
|
|
11
|
+
isWeb: boolean;
|
|
12
|
+
hostUri?: string;
|
|
13
|
+
}
|
|
14
|
+
/** The host part of a `host:port`, `scheme://host:port/path` or `[v6]:port` value. */
|
|
15
|
+
export declare function devHostFromHostUri(hostUri: string | undefined): string | undefined;
|
|
16
|
+
/**
|
|
17
|
+
* Point a loopback-configured origin at the dev machine on native.
|
|
18
|
+
*
|
|
19
|
+
* `http://localhost:8000` in .env means "the machine running the dev server"
|
|
20
|
+
* on every platform. In a browser that is the page host; on a simulator, an
|
|
21
|
+
* emulator or a phone it is the host the bundle came from, so the same .env
|
|
22
|
+
* serves all of them. Web, and anything without a hostUri, is returned as is.
|
|
23
|
+
*
|
|
24
|
+
* String-based on purpose: React Native's URL polyfill has no `hostname`
|
|
25
|
+
* setter, so a new-URL-and-assign rewrite silently no-ops on device.
|
|
26
|
+
*/
|
|
27
|
+
export declare function resolveDevOrigin(url: string, source?: DevOriginSource): string;
|
|
28
|
+
//# sourceMappingURL=devOrigin.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"devOrigin.d.ts","sourceRoot":"","sources":["../../src/config/devOrigin.ts"],"names":[],"mappings":"AAEA;;;;;;;;GAQG;AACH,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,OAAO,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAID,sFAAsF;AACtF,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,CAOlF;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,GAAE,eAAmC,GAAG,MAAM,CAKjG"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"devOriginSource.d.ts","sourceRoot":"","sources":["../../src/config/devOriginSource.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAEnD,wBAAgB,eAAe,IAAI,eAAe,CAEjD"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"devOriginSource.native.d.ts","sourceRoot":"","sources":["../../src/config/devOriginSource.native.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAEnD,wBAAgB,eAAe,IAAI,eAAe,CAKjD"}
|
package/types/config/index.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/config/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAElC,QAAA,MAAM,MAAM,QAAe,CAAC;AAE5B,OAAO,EAAE,MAAM,EAAE,CAAC;AAClB,cAAc,UAAU,CAAC;AACzB,cAAc,iBAAiB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/config/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAElC,QAAA,MAAM,MAAM,QAAe,CAAC;AAE5B,OAAO,EAAE,MAAM,EAAE,CAAC;AAClB,cAAc,UAAU,CAAC;AACzB,cAAc,aAAa,CAAC;AAC5B,cAAc,iBAAiB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/file/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AACxC,YAAY,EAAE,eAAe,EAAE,cAAc,EAAE,iBAAiB,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"saveFile.d.ts","sourceRoot":"","sources":["../../src/file/saveFile.ts"],"names":[],"mappings":"AACA,OAAO,EAAiB,KAAK,eAAe,EAAE,KAAK,cAAc,EAAmB,MAAM,SAAS,CAAC;AAEpG,wBAAsB,QAAQ,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,cAAc,CAAC,CAqBhF"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"saveFile.native.d.ts","sourceRoot":"","sources":["../../src/file/saveFile.native.ts"],"names":[],"mappings":"AAEA,OAAO,EAAiB,KAAK,eAAe,EAAE,KAAK,cAAc,EAAmB,MAAM,SAAS,CAAC;AAIpG,wBAAsB,QAAQ,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,cAAc,CAAC,CA4EhF"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
export interface FileSaveOptions {
|
|
2
|
+
bytes: Uint8Array;
|
|
3
|
+
filename: string;
|
|
4
|
+
mimeType: string;
|
|
5
|
+
}
|
|
6
|
+
export type WrittenFile = {
|
|
7
|
+
status: "written";
|
|
8
|
+
uri: string;
|
|
9
|
+
requestedFilename: string;
|
|
10
|
+
filename?: string;
|
|
11
|
+
byteLength: number;
|
|
12
|
+
};
|
|
13
|
+
export type FileSaveResult = WrittenFile | {
|
|
14
|
+
status: "download-requested";
|
|
15
|
+
} | {
|
|
16
|
+
status: "not-saved";
|
|
17
|
+
reason: "cancelled-or-refused";
|
|
18
|
+
};
|
|
19
|
+
export type FileSaveErrorCode = "invalid-input" | "unavailable" | "busy" | "picker-failed" | "write-failed";
|
|
20
|
+
export declare class FileSaveError extends Error {
|
|
21
|
+
readonly code: FileSaveErrorCode;
|
|
22
|
+
readonly cleanupError?: unknown;
|
|
23
|
+
constructor(code: FileSaveErrorCode, message: string, options?: {
|
|
24
|
+
cause?: unknown;
|
|
25
|
+
cleanupError?: unknown;
|
|
26
|
+
});
|
|
27
|
+
}
|
|
28
|
+
export declare function prepareFileSave(options: FileSaveOptions): {
|
|
29
|
+
bytes: Uint8Array<ArrayBuffer>;
|
|
30
|
+
filename: string;
|
|
31
|
+
mimeType: string;
|
|
32
|
+
nativeMimeType: string;
|
|
33
|
+
};
|
|
34
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/file/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,UAAU,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,MAAM,WAAW,GAAG;IACxB,MAAM,EAAE,SAAS,CAAC;IAClB,GAAG,EAAE,MAAM,CAAC;IACZ,iBAAiB,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,cAAc,GACtB,WAAW,GACX;IAAE,MAAM,EAAE,oBAAoB,CAAA;CAAE,GAChC;IAAE,MAAM,EAAE,WAAW,CAAC;IAAC,MAAM,EAAE,sBAAsB,CAAA;CAAE,CAAC;AAE5D,MAAM,MAAM,iBAAiB,GACzB,eAAe,GACf,aAAa,GACb,MAAM,GACN,eAAe,GACf,cAAc,CAAC;AAEnB,qBAAa,aAAc,SAAQ,KAAK;IACtC,QAAQ,CAAC,IAAI,EAAE,iBAAiB,CAAC;IACjC,QAAQ,CAAC,YAAY,CAAC,EAAE,OAAO,CAAC;gBAG9B,IAAI,EAAE,iBAAiB,EACvB,OAAO,EAAE,MAAM,EACf,OAAO,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,OAAO,CAAC;QAAC,YAAY,CAAC,EAAE,OAAO,CAAA;KAAE;CAOxD;AAQD,wBAAgB,eAAe,CAAC,OAAO,EAAE,eAAe;;;;;EAyBvD"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"downloadFile.d.ts","sourceRoot":"","sources":["../../src/utils/downloadFile.ts"],"names":[],"mappings":"AAAA,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"downloadFile.d.ts","sourceRoot":"","sources":["../../src/utils/downloadFile.ts"],"names":[],"mappings":"AAAA,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI,CAUhE;AAED,wBAAgB,YAAY,CAAC,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI,CAQ/D"}
|