@lingxia/types 0.4.3 → 0.5.1
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/dist/app/index.d.ts +33 -0
- package/dist/app/index.d.ts.map +1 -1
- package/dist/error.js +7 -8
- package/dist/error.js.map +1 -1
- package/dist/file/index.d.ts +38 -39
- package/dist/file/index.d.ts.map +1 -1
- package/dist/index.d.ts +7 -2
- package/dist/index.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/app/index.ts +32 -0
- package/src/file/index.ts +41 -49
- package/src/index.ts +8 -3
package/dist/app/index.d.ts
CHANGED
|
@@ -58,4 +58,37 @@ export interface EventEmitter {
|
|
|
58
58
|
emit(event: string, ...args: unknown[]): void;
|
|
59
59
|
once(event: string, handler: (...args: unknown[]) => void): void;
|
|
60
60
|
}
|
|
61
|
+
/**
|
|
62
|
+
* Injected by the runtime into methods listed in `stream_handlers` page metadata.
|
|
63
|
+
*
|
|
64
|
+
* Use this when your async source uses callbacks rather than an async iterator.
|
|
65
|
+
* For the generator form (`async *method()`), no handle is needed — the runtime
|
|
66
|
+
* pumps the generator automatically.
|
|
67
|
+
*/
|
|
68
|
+
export interface StreamHandle<T = unknown> {
|
|
69
|
+
/** Send a chunk to View. */
|
|
70
|
+
send(payload: T): void;
|
|
71
|
+
/** End the stream with an optional final value. */
|
|
72
|
+
end(result?: unknown): void;
|
|
73
|
+
/** End the stream with an error. */
|
|
74
|
+
error(code: string, message?: string): void;
|
|
75
|
+
}
|
|
76
|
+
/**
|
|
77
|
+
* Injected by the runtime as the second parameter when View opens a channel.
|
|
78
|
+
*
|
|
79
|
+
* Use `ch.send()` to push data to View, `ch.on()` to receive data/close
|
|
80
|
+
* events from View, and `ch.close()` to shut down the channel.
|
|
81
|
+
*/
|
|
82
|
+
export interface ChannelHandle<TSend = unknown, TReceive = unknown> {
|
|
83
|
+
/** Push a message to View. */
|
|
84
|
+
send(payload: TSend): void;
|
|
85
|
+
/** Close the channel from Logic side. */
|
|
86
|
+
close(code?: string, reason?: string): void;
|
|
87
|
+
/** Register a listener for incoming events. */
|
|
88
|
+
on(event: 'data', handler: (payload: TReceive) => void): void;
|
|
89
|
+
on(event: 'close', handler: (info: {
|
|
90
|
+
code: string;
|
|
91
|
+
reason: string;
|
|
92
|
+
}) => void): void;
|
|
93
|
+
}
|
|
61
94
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/app/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/app/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,WAAW,qBAAqB;IACpC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC;IACzB,MAAM,EACF,YAAY,GACZ,YAAY,GACZ,YAAY,GACZ,MAAM,GACN,OAAO,GACP,aAAa,GACb,aAAa,CAAC;CACnB;AAED,MAAM,MAAM,gBAAgB,GAAG,SAAS,GAAG,SAAS,GAAG,WAAW,CAAC;AAEnE,MAAM,WAAW,SAAS;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,gBAAgB,CAAC;CAC/B;AAED,MAAM,WAAW,gBAAgB;IAC/B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC/B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE;QACb,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KACrC,CAAC;CACH;AAED,MAAM,WAAW,SAAS;IACxB,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACrC,QAAQ,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,gBAAgB,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAChE,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,qBAAqB,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAChE,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,qBAAqB,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAChE,mBAAmB,CAAC,EAAE,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACjD,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,WAAY,SAAQ,SAAS;IAC5C,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACrC;AAED,MAAM,WAAW,eAAe;IAC9B,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC;CACnC;AAED,MAAM,WAAW,UAAU,CAAC,KAAK,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IACzF,IAAI,CAAC,EAAE,KAAK,CAAC;IACb,MAAM,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,eAAe,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7D,MAAM,CAAC,EAAE,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACpC,OAAO,CAAC,EAAE,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACrC,MAAM,CAAC,EAAE,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACpC,QAAQ,CAAC,EAAE,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACtC,iBAAiB,CAAC,EAAE,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC/C,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,YAAY,CAAC,KAAK,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAC3F,IAAI,EAAE,KAAK,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,QAAQ,CAAC,EAAE,MAAM,IAAI,GAAG,IAAI,CAAC;IACrF,eAAe,IAAI,YAAY,CAAC;CACjC;AAED,MAAM,WAAW,YAAY;IAC3B,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI,GAAG,IAAI,CAAC;IAC/D,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI,GAAG,IAAI,CAAC;IAChE,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;IAC9C,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI,GAAG,IAAI,CAAC;CAClE"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/app/index.ts"],"names":[],"mappings":"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"}
|
package/dist/error.js
CHANGED
|
@@ -1,12 +1,17 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
3
|
+
exports.isLxApiError = isLxApiError;
|
|
4
|
+
exports.extractLxErrorCode = extractLxErrorCode;
|
|
5
|
+
exports.isKnownLxErrorCode = isKnownLxErrorCode;
|
|
6
|
+
exports.infoForLxErrorCode = infoForLxErrorCode;
|
|
7
|
+
exports.parseLxApiError = parseLxApiError;
|
|
8
|
+
exports.requireLxApiError = requireLxApiError;
|
|
9
|
+
exports.formatLxApiError = formatLxApiError;
|
|
4
10
|
const error_1 = require("./generated/error");
|
|
5
11
|
const ERR_CODE_INDEX = error_1.ERR_CODE_INFO_BY_CODE;
|
|
6
12
|
function isLxApiError(error) {
|
|
7
13
|
return parseLxApiError(error) !== null;
|
|
8
14
|
}
|
|
9
|
-
exports.isLxApiError = isLxApiError;
|
|
10
15
|
function readMessage(error) {
|
|
11
16
|
if (typeof error === "string")
|
|
12
17
|
return error;
|
|
@@ -46,17 +51,14 @@ function extractLxErrorCode(error) {
|
|
|
46
51
|
return null;
|
|
47
52
|
return parseIntegerCode(data.bizCode) ?? parseIntegerCode(data.code);
|
|
48
53
|
}
|
|
49
|
-
exports.extractLxErrorCode = extractLxErrorCode;
|
|
50
54
|
function isKnownLxErrorCode(code) {
|
|
51
55
|
return Number.isInteger(code) && Object.prototype.hasOwnProperty.call(ERR_CODE_INDEX, code);
|
|
52
56
|
}
|
|
53
|
-
exports.isKnownLxErrorCode = isKnownLxErrorCode;
|
|
54
57
|
function infoForLxErrorCode(code) {
|
|
55
58
|
if (!isKnownLxErrorCode(code))
|
|
56
59
|
return null;
|
|
57
60
|
return ERR_CODE_INDEX[code];
|
|
58
61
|
}
|
|
59
|
-
exports.infoForLxErrorCode = infoForLxErrorCode;
|
|
60
62
|
function parseLxApiError(error) {
|
|
61
63
|
const code = extractLxErrorCode(error);
|
|
62
64
|
if (code === null)
|
|
@@ -70,16 +72,13 @@ function parseLxApiError(error) {
|
|
|
70
72
|
raw: error,
|
|
71
73
|
};
|
|
72
74
|
}
|
|
73
|
-
exports.parseLxApiError = parseLxApiError;
|
|
74
75
|
function requireLxApiError(error) {
|
|
75
76
|
const parsed = parseLxApiError(error);
|
|
76
77
|
if (parsed)
|
|
77
78
|
return parsed;
|
|
78
79
|
throw new Error(`Unknown LingXia API error: ${readMessage(error)}`);
|
|
79
80
|
}
|
|
80
|
-
exports.requireLxApiError = requireLxApiError;
|
|
81
81
|
function formatLxApiError(error) {
|
|
82
82
|
return `[${error.code}] ${error.message}`;
|
|
83
83
|
}
|
|
84
|
-
exports.formatLxApiError = formatLxApiError;
|
|
85
84
|
//# sourceMappingURL=error.js.map
|
package/dist/error.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"error.js","sourceRoot":"","sources":["../src/error.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"error.js","sourceRoot":"","sources":["../src/error.ts"],"names":[],"mappings":"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"}
|
package/dist/file/index.d.ts
CHANGED
|
@@ -2,9 +2,18 @@
|
|
|
2
2
|
* File system APIs.
|
|
3
3
|
* Corresponds to: lingxia-logic/src/fs.rs
|
|
4
4
|
*/
|
|
5
|
-
export interface
|
|
5
|
+
export interface OpenFileOptions {
|
|
6
|
+
/** Local file path or runtime-managed temp path. */
|
|
6
7
|
filePath: string;
|
|
8
|
+
/** Optional coarse file type hint such as `pdf`, `docx`, or `xlsx`. */
|
|
7
9
|
fileType?: string;
|
|
10
|
+
/**
|
|
11
|
+
* `auto`: prefer native review, then fall back to external open.
|
|
12
|
+
* `review`: require native review UI and reject when unsupported.
|
|
13
|
+
* `external`: hand off directly to the system / external app.
|
|
14
|
+
*/
|
|
15
|
+
mode?: 'auto' | 'review' | 'external';
|
|
16
|
+
/** Hint for whether the native review UI should expose its action menu when supported. */
|
|
8
17
|
showMenu?: boolean;
|
|
9
18
|
}
|
|
10
19
|
/** Desktop only. Currently supported on macOS. Windows is planned. */
|
|
@@ -49,54 +58,44 @@ export interface ChooseDirectoryResult {
|
|
|
49
58
|
export interface DownloadOptions {
|
|
50
59
|
/** HTTP(S) source URL. */
|
|
51
60
|
url: string;
|
|
52
|
-
/**
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
61
|
+
/** Optional request headers. */
|
|
62
|
+
headers?: Record<string, string>;
|
|
63
|
+
/** Request timeout in milliseconds. */
|
|
64
|
+
timeout?: number;
|
|
65
|
+
/** Optional destination path. Relative paths resolve under user data. */
|
|
66
|
+
filePath?: string;
|
|
67
|
+
/** Optional abort signal. */
|
|
57
68
|
signal?: AbortSignal;
|
|
58
69
|
}
|
|
70
|
+
export interface DownloadProgressEvent {
|
|
71
|
+
kind: 'progress' | 'paused' | 'resumed' | 'canceled' | 'success';
|
|
72
|
+
downloadedBytes?: number;
|
|
73
|
+
totalBytes?: number;
|
|
74
|
+
/** Present only when the total size is known. */
|
|
75
|
+
progress?: number;
|
|
76
|
+
result?: DownloadResult;
|
|
77
|
+
}
|
|
78
|
+
export interface DownloadIteratorResult {
|
|
79
|
+
done: boolean;
|
|
80
|
+
value?: DownloadProgressEvent;
|
|
81
|
+
}
|
|
59
82
|
export interface DownloadResult {
|
|
60
|
-
/**
|
|
61
|
-
|
|
62
|
-
/** Suggested filename resolved by runtime from headers/url. */
|
|
63
|
-
fileName: string;
|
|
83
|
+
/** Final accessible file path or URI. */
|
|
84
|
+
filePath: string;
|
|
64
85
|
/** MIME type when available. */
|
|
65
86
|
mimeType?: string;
|
|
66
87
|
/** File size in bytes. */
|
|
67
88
|
size: number;
|
|
68
89
|
}
|
|
69
|
-
export interface DownloadProgressEvent {
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
* 0~1 progress value.
|
|
75
|
-
* - precise ratio when totalBytes is known
|
|
76
|
-
* - monotonic estimated progress when totalBytes is unknown
|
|
77
|
-
*/
|
|
78
|
-
progress: number;
|
|
79
|
-
}
|
|
80
|
-
export interface DownloadSuccessEvent {
|
|
81
|
-
kind: 'success';
|
|
82
|
-
result: DownloadResult;
|
|
83
|
-
}
|
|
84
|
-
export interface DownloadPausedEvent {
|
|
85
|
-
kind: 'paused';
|
|
86
|
-
}
|
|
87
|
-
export interface DownloadResumedEvent {
|
|
88
|
-
kind: 'resumed';
|
|
89
|
-
}
|
|
90
|
-
export interface DownloadCanceledEvent {
|
|
91
|
-
kind: 'canceled';
|
|
92
|
-
}
|
|
93
|
-
export type DownloadEvent = DownloadProgressEvent | DownloadSuccessEvent | DownloadPausedEvent | DownloadResumedEvent | DownloadCanceledEvent;
|
|
94
|
-
export interface DownloadTask extends AsyncIterable<DownloadEvent> {
|
|
95
|
-
/** Pause current download and keep resume metadata. */
|
|
90
|
+
export interface DownloadTask extends PromiseLike<DownloadResult>, AsyncIterable<DownloadProgressEvent> {
|
|
91
|
+
next(): Promise<DownloadIteratorResult>;
|
|
92
|
+
return(): Promise<DownloadIteratorResult>;
|
|
93
|
+
catch<TResult = never>(onrejected?: ((reason: unknown) => TResult | PromiseLike<TResult>) | null): Promise<DownloadResult | TResult>;
|
|
94
|
+
finally(onfinally?: (() => void) | null): Promise<DownloadResult>;
|
|
96
95
|
pause(): Promise<void>;
|
|
97
|
-
/** Resume a paused download from persisted resume metadata. */
|
|
98
96
|
resume(): Promise<void>;
|
|
99
|
-
/** Cancel and remove downloaded temp artifacts. */
|
|
100
97
|
cancel(): Promise<void>;
|
|
98
|
+
abort(): Promise<void>;
|
|
99
|
+
wait(): Promise<DownloadResult>;
|
|
101
100
|
}
|
|
102
101
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/file/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/file/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,WAAW,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/file/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -22,7 +22,7 @@ import type { AppConfig, AppInstance, LxAppInfo, PageConfig, PageInstance } from
|
|
|
22
22
|
import type { DeviceInfo, ScreenInfo, MakePhoneCallOptions, WifiInfo, ConnectWifiOptions, WifiConnectedCallback, NetworkInfo, NetworkChangeCallback } from './device';
|
|
23
23
|
import type { KeyEventCallback } from './input';
|
|
24
24
|
import type { LxEnv, Storage } from './storage';
|
|
25
|
-
import type {
|
|
25
|
+
import type { OpenFileOptions, ChooseDirectoryOptions, ChooseDirectoryResult, ChooseFileOptions, ChooseFileResult, DownloadOptions, DownloadTask } from './file';
|
|
26
26
|
import type { DeviceOrientation, DeviceOrientationChangeEvent } from './display';
|
|
27
27
|
import type { GetLocationOptions, LocationInfo } from './location';
|
|
28
28
|
import type { AppBaseInfo, SystemSettingInfo, OpenURLOptions } from './system';
|
|
@@ -50,7 +50,12 @@ export interface Lx {
|
|
|
50
50
|
setDeviceOrientation(orientation: DeviceOrientation): boolean;
|
|
51
51
|
onDeviceOrientationChange(callback: (event: DeviceOrientationChangeEvent) => void): void;
|
|
52
52
|
offDeviceOrientationChange(callback?: (event: DeviceOrientationChangeEvent) => void): void;
|
|
53
|
-
|
|
53
|
+
/**
|
|
54
|
+
* Open a local file with the requested strategy.
|
|
55
|
+
* Use `mode: 'review'` when the UX requires in-app preview,
|
|
56
|
+
* otherwise prefer `mode: 'auto'`.
|
|
57
|
+
*/
|
|
58
|
+
openFile(options: OpenFileOptions): void;
|
|
54
59
|
downloadFile(options: DownloadOptions): DownloadTask;
|
|
55
60
|
getStorage(): Storage;
|
|
56
61
|
getLocation(options?: GetLocationOptions): Promise<LocationInfo>;
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,cAAc,OAAO,CAAC;AACtB,cAAc,UAAU,CAAC;AACzB,cAAc,WAAW,CAAC;AAC1B,cAAc,SAAS,CAAC;AACxB,cAAc,WAAW,CAAC;AAC1B,cAAc,QAAQ,CAAC;AACvB,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,UAAU,CAAC;AACzB,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC;AACxB,cAAc,MAAM,CAAC;AACrB,cAAc,SAAS,CAAC;AACxB,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AAEjC,OAAO,KAAK,EACV,SAAS,EACT,WAAW,EACX,SAAS,EACT,UAAU,EACV,YAAY,EACb,MAAM,OAAO,CAAC;AAEf,OAAO,KAAK,EACV,UAAU,EACV,UAAU,EACV,oBAAoB,EACpB,QAAQ,EACR,kBAAkB,EAClB,qBAAqB,EACrB,WAAW,EACX,qBAAqB,EACtB,MAAM,UAAU,CAAC;AAElB,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAEhD,OAAO,KAAK,EACV,KAAK,EACL,OAAO,EACR,MAAM,WAAW,CAAC;AAEnB,OAAO,KAAK,EACV,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
package/src/app/index.ts
CHANGED
|
@@ -75,3 +75,35 @@ export interface EventEmitter {
|
|
|
75
75
|
emit(event: string, ...args: unknown[]): void;
|
|
76
76
|
once(event: string, handler: (...args: unknown[]) => void): void;
|
|
77
77
|
}
|
|
78
|
+
|
|
79
|
+
/**
|
|
80
|
+
* Injected by the runtime into methods listed in `stream_handlers` page metadata.
|
|
81
|
+
*
|
|
82
|
+
* Use this when your async source uses callbacks rather than an async iterator.
|
|
83
|
+
* For the generator form (`async *method()`), no handle is needed — the runtime
|
|
84
|
+
* pumps the generator automatically.
|
|
85
|
+
*/
|
|
86
|
+
export interface StreamHandle<T = unknown> {
|
|
87
|
+
/** Send a chunk to View. */
|
|
88
|
+
send(payload: T): void;
|
|
89
|
+
/** End the stream with an optional final value. */
|
|
90
|
+
end(result?: unknown): void;
|
|
91
|
+
/** End the stream with an error. */
|
|
92
|
+
error(code: string, message?: string): void;
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
/**
|
|
96
|
+
* Injected by the runtime as the second parameter when View opens a channel.
|
|
97
|
+
*
|
|
98
|
+
* Use `ch.send()` to push data to View, `ch.on()` to receive data/close
|
|
99
|
+
* events from View, and `ch.close()` to shut down the channel.
|
|
100
|
+
*/
|
|
101
|
+
export interface ChannelHandle<TSend = unknown, TReceive = unknown> {
|
|
102
|
+
/** Push a message to View. */
|
|
103
|
+
send(payload: TSend): void;
|
|
104
|
+
/** Close the channel from Logic side. */
|
|
105
|
+
close(code?: string, reason?: string): void;
|
|
106
|
+
/** Register a listener for incoming events. */
|
|
107
|
+
on(event: 'data', handler: (payload: TReceive) => void): void;
|
|
108
|
+
on(event: 'close', handler: (info: { code: string; reason: string }) => void): void;
|
|
109
|
+
}
|
package/src/file/index.ts
CHANGED
|
@@ -3,9 +3,18 @@
|
|
|
3
3
|
* Corresponds to: lingxia-logic/src/fs.rs
|
|
4
4
|
*/
|
|
5
5
|
|
|
6
|
-
export interface
|
|
6
|
+
export interface OpenFileOptions {
|
|
7
|
+
/** Local file path or runtime-managed temp path. */
|
|
7
8
|
filePath: string;
|
|
9
|
+
/** Optional coarse file type hint such as `pdf`, `docx`, or `xlsx`. */
|
|
8
10
|
fileType?: string;
|
|
11
|
+
/**
|
|
12
|
+
* `auto`: prefer native review, then fall back to external open.
|
|
13
|
+
* `review`: require native review UI and reject when unsupported.
|
|
14
|
+
* `external`: hand off directly to the system / external app.
|
|
15
|
+
*/
|
|
16
|
+
mode?: 'auto' | 'review' | 'external';
|
|
17
|
+
/** Hint for whether the native review UI should expose its action menu when supported. */
|
|
9
18
|
showMenu?: boolean;
|
|
10
19
|
}
|
|
11
20
|
|
|
@@ -56,66 +65,49 @@ export interface ChooseDirectoryResult {
|
|
|
56
65
|
export interface DownloadOptions {
|
|
57
66
|
/** HTTP(S) source URL. */
|
|
58
67
|
url: string;
|
|
59
|
-
/**
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
68
|
+
/** Optional request headers. */
|
|
69
|
+
headers?: Record<string, string>;
|
|
70
|
+
/** Request timeout in milliseconds. */
|
|
71
|
+
timeout?: number;
|
|
72
|
+
/** Optional destination path. Relative paths resolve under user data. */
|
|
73
|
+
filePath?: string;
|
|
74
|
+
/** Optional abort signal. */
|
|
64
75
|
signal?: AbortSignal;
|
|
65
76
|
}
|
|
66
77
|
|
|
67
|
-
export interface DownloadResult {
|
|
68
|
-
/** Downloaded file URI under user cache, e.g. lx://usercache/... */
|
|
69
|
-
tempFilePath: string;
|
|
70
|
-
/** Suggested filename resolved by runtime from headers/url. */
|
|
71
|
-
fileName: string;
|
|
72
|
-
/** MIME type when available. */
|
|
73
|
-
mimeType?: string;
|
|
74
|
-
/** File size in bytes. */
|
|
75
|
-
size: number;
|
|
76
|
-
}
|
|
77
|
-
|
|
78
78
|
export interface DownloadProgressEvent {
|
|
79
|
-
kind: 'progress';
|
|
80
|
-
downloadedBytes
|
|
79
|
+
kind: 'progress' | 'paused' | 'resumed' | 'canceled' | 'success';
|
|
80
|
+
downloadedBytes?: number;
|
|
81
81
|
totalBytes?: number;
|
|
82
|
-
/**
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
* - monotonic estimated progress when totalBytes is unknown
|
|
86
|
-
*/
|
|
87
|
-
progress: number;
|
|
88
|
-
}
|
|
89
|
-
|
|
90
|
-
export interface DownloadSuccessEvent {
|
|
91
|
-
kind: 'success';
|
|
92
|
-
result: DownloadResult;
|
|
82
|
+
/** Present only when the total size is known. */
|
|
83
|
+
progress?: number;
|
|
84
|
+
result?: DownloadResult;
|
|
93
85
|
}
|
|
94
86
|
|
|
95
|
-
export interface
|
|
96
|
-
|
|
87
|
+
export interface DownloadIteratorResult {
|
|
88
|
+
done: boolean;
|
|
89
|
+
value?: DownloadProgressEvent;
|
|
97
90
|
}
|
|
98
91
|
|
|
99
|
-
export interface
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
92
|
+
export interface DownloadResult {
|
|
93
|
+
/** Final accessible file path or URI. */
|
|
94
|
+
filePath: string;
|
|
95
|
+
/** MIME type when available. */
|
|
96
|
+
mimeType?: string;
|
|
97
|
+
/** File size in bytes. */
|
|
98
|
+
size: number;
|
|
105
99
|
}
|
|
106
100
|
|
|
107
|
-
export
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
|
113
|
-
|
|
114
|
-
export interface DownloadTask extends AsyncIterable<DownloadEvent> {
|
|
115
|
-
/** Pause current download and keep resume metadata. */
|
|
101
|
+
export interface DownloadTask extends PromiseLike<DownloadResult>, AsyncIterable<DownloadProgressEvent> {
|
|
102
|
+
next(): Promise<DownloadIteratorResult>;
|
|
103
|
+
return(): Promise<DownloadIteratorResult>;
|
|
104
|
+
catch<TResult = never>(
|
|
105
|
+
onrejected?: ((reason: unknown) => TResult | PromiseLike<TResult>) | null,
|
|
106
|
+
): Promise<DownloadResult | TResult>;
|
|
107
|
+
finally(onfinally?: (() => void) | null): Promise<DownloadResult>;
|
|
116
108
|
pause(): Promise<void>;
|
|
117
|
-
/** Resume a paused download from persisted resume metadata. */
|
|
118
109
|
resume(): Promise<void>;
|
|
119
|
-
/** Cancel and remove downloaded temp artifacts. */
|
|
120
110
|
cancel(): Promise<void>;
|
|
111
|
+
abort(): Promise<void>;
|
|
112
|
+
wait(): Promise<DownloadResult>;
|
|
121
113
|
}
|
package/src/index.ts
CHANGED
|
@@ -47,13 +47,13 @@ import type {
|
|
|
47
47
|
} from './storage';
|
|
48
48
|
|
|
49
49
|
import type {
|
|
50
|
-
|
|
50
|
+
OpenFileOptions,
|
|
51
51
|
ChooseDirectoryOptions,
|
|
52
52
|
ChooseDirectoryResult,
|
|
53
53
|
ChooseFileOptions,
|
|
54
54
|
ChooseFileResult,
|
|
55
|
-
DownloadTask,
|
|
56
55
|
DownloadOptions,
|
|
56
|
+
DownloadTask,
|
|
57
57
|
} from './file';
|
|
58
58
|
|
|
59
59
|
import type {
|
|
@@ -145,7 +145,12 @@ export interface Lx {
|
|
|
145
145
|
onDeviceOrientationChange(callback: (event: DeviceOrientationChangeEvent) => void): void;
|
|
146
146
|
offDeviceOrientationChange(callback?: (event: DeviceOrientationChangeEvent) => void): void;
|
|
147
147
|
|
|
148
|
-
|
|
148
|
+
/**
|
|
149
|
+
* Open a local file with the requested strategy.
|
|
150
|
+
* Use `mode: 'review'` when the UX requires in-app preview,
|
|
151
|
+
* otherwise prefer `mode: 'auto'`.
|
|
152
|
+
*/
|
|
153
|
+
openFile(options: OpenFileOptions): void;
|
|
149
154
|
downloadFile(options: DownloadOptions): DownloadTask;
|
|
150
155
|
|
|
151
156
|
getStorage(): Storage;
|