@lingxia/types 0.4.3 → 0.5.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/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 +10 -40
- package/dist/file/index.d.ts.map +1 -1
- package/dist/index.d.ts +8 -3
- 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 +10 -52
- package/src/index.ts +9 -4
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":"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"}
|
|
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,12 +58,6 @@ export interface ChooseDirectoryResult {
|
|
|
49
58
|
export interface DownloadOptions {
|
|
50
59
|
/** HTTP(S) source URL. */
|
|
51
60
|
url: string;
|
|
52
|
-
/**
|
|
53
|
-
* Optional external cancellation channel.
|
|
54
|
-
* When aborted, it has the same effect as calling `task.cancel()`.
|
|
55
|
-
* Useful for timeout/router/lifecycle composition.
|
|
56
|
-
*/
|
|
57
|
-
signal?: AbortSignal;
|
|
58
61
|
}
|
|
59
62
|
export interface DownloadResult {
|
|
60
63
|
/** Downloaded file URI under user cache, e.g. lx://usercache/... */
|
|
@@ -66,37 +69,4 @@ export interface DownloadResult {
|
|
|
66
69
|
/** File size in bytes. */
|
|
67
70
|
size: number;
|
|
68
71
|
}
|
|
69
|
-
export interface DownloadProgressEvent {
|
|
70
|
-
kind: 'progress';
|
|
71
|
-
downloadedBytes: number;
|
|
72
|
-
totalBytes?: number;
|
|
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. */
|
|
96
|
-
pause(): Promise<void>;
|
|
97
|
-
/** Resume a paused download from persisted resume metadata. */
|
|
98
|
-
resume(): Promise<void>;
|
|
99
|
-
/** Cancel and remove downloaded temp artifacts. */
|
|
100
|
-
cancel(): Promise<void>;
|
|
101
|
-
}
|
|
102
72
|
//# 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":"AAAA;;;GAGG;AAEH,MAAM,WAAW,eAAe;IAC9B,oDAAoD;IACpD,QAAQ,EAAE,MAAM,CAAC;IACjB,uEAAuE;IACvE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;;;OAIG;IACH,IAAI,CAAC,EAAE,MAAM,GAAG,QAAQ,GAAG,UAAU,CAAC;IACtC,0FAA0F;IAC1F,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,sEAAsE;AACtE,MAAM,WAAW,gBAAgB;IAC/B,iDAAiD;IACjD,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,4DAA4D;IAC5D,UAAU,EAAE,MAAM,EAAE,CAAC;CACtB;AAED,sEAAsE;AACtE,MAAM,WAAW,iBAAiB;IAChC,qDAAqD;IACrD,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,oEAAoE;IACpE,OAAO,CAAC,EAAE,gBAAgB,EAAE,CAAC;IAC7B,mEAAmE;IACnE,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,0EAA0E;IAC1E,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,sEAAsE;AACtE,MAAM,WAAW,gBAAgB;IAC/B,+DAA+D;IAC/D,QAAQ,EAAE,OAAO,CAAC;IAClB,oEAAoE;IACpE,KAAK,EAAE,MAAM,EAAE,CAAC;CACjB;AAED,sEAAsE;AACtE,MAAM,WAAW,sBAAsB;IACrC,mEAAmE;IACnE,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,0EAA0E;IAC1E,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,sEAAsE;AACtE,MAAM,WAAW,qBAAqB;IACpC,+DAA+D;IAC/D,QAAQ,EAAE,OAAO,CAAC;IAClB,+EAA+E;IAC/E,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,eAAe;IAC9B,0BAA0B;IAC1B,GAAG,EAAE,MAAM,CAAC;CACb;AAED,MAAM,WAAW,cAAc;IAC7B,oEAAoE;IACpE,YAAY,EAAE,MAAM,CAAC;IACrB,+DAA+D;IAC/D,QAAQ,EAAE,MAAM,CAAC;IACjB,gCAAgC;IAChC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,0BAA0B;IAC1B,IAAI,EAAE,MAAM,CAAC;CACd"}
|
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, DownloadResult } 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,8 +50,13 @@ 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
|
-
|
|
54
|
-
|
|
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;
|
|
59
|
+
downloadFile(options: DownloadOptions): Promise<DownloadResult>;
|
|
55
60
|
getStorage(): Storage;
|
|
56
61
|
getLocation(options?: GetLocationOptions): Promise<LocationInfo>;
|
|
57
62
|
navigateToLxApp(options: NavigateToLxAppOptions): Promise<void>;
|
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":"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,eAAe,EACf,sBAAsB,EACtB,qBAAqB,EACrB,iBAAiB,EACjB,gBAAgB,EAChB,eAAe,EACf,cAAc,EACf,MAAM,QAAQ,CAAC;AAEhB,OAAO,KAAK,EACV,iBAAiB,EACjB,4BAA4B,EAC7B,MAAM,WAAW,CAAC;AAEnB,OAAO,KAAK,EACV,kBAAkB,EAClB,YAAY,EACb,MAAM,YAAY,CAAC;AAEpB,OAAO,KAAK,EACV,WAAW,EACX,iBAAiB,EACjB,cAAc,EACf,MAAM,UAAU,CAAC;AAElB,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAC;AAE1D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAE9C,OAAO,KAAK,EACV,mBAAmB,EACnB,SAAS,EACT,oBAAoB,EACpB,mBAAmB,EACnB,oBAAoB,EACpB,mBAAmB,EACnB,mBAAmB,EACnB,SAAS,EACT,4BAA4B,EAC5B,2BAA2B,EAC3B,kBAAkB,EAClB,gBAAgB,EAChB,mBAAmB,EACnB,kBAAkB,EAClB,gBAAgB,EAChB,eAAe,EACf,cAAc,EACd,YAAY,EACb,MAAM,SAAS,CAAC;AAEjB,OAAO,KAAK,EACV,gBAAgB,EAChB,gBAAgB,EAChB,WAAW,EACX,sBAAsB,EACtB,iBAAiB,EACjB,iBAAiB,EACjB,gBAAgB,EAChB,mBAAmB,EACnB,iBAAiB,EACjB,gBAAgB,EAChB,eAAe,EACf,4BAA4B,EAC5B,4BAA4B,EAC5B,mBAAmB,EACnB,qBAAqB,EACrB,wBAAwB,EACxB,qBAAqB,EACrB,oBAAoB,EACpB,gBAAgB,EAChB,eAAe,EACf,WAAW,EACZ,MAAM,MAAM,CAAC;AAEd,MAAM,WAAW,EAAE;IACjB,GAAG,EAAE,KAAK,CAAC;IAEX,aAAa,IAAI,UAAU,CAAC;IAC5B,aAAa,IAAI,UAAU,CAAC;IAC5B,YAAY,IAAI,OAAO,CAAC;IACxB,WAAW,IAAI,OAAO,CAAC;IACvB,aAAa,CAAC,OAAO,EAAE,oBAAoB,GAAG,OAAO,CAAC;IAEtD,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3B,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1B,WAAW,CAAC,OAAO,EAAE,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACxD,WAAW,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;IACnC,gBAAgB,IAAI,OAAO,CAAC,QAAQ,CAAC,CAAC;IACtC,eAAe,CAAC,QAAQ,EAAE,qBAAqB,GAAG,IAAI,CAAC;IACvD,gBAAgB,CAAC,QAAQ,CAAC,EAAE,qBAAqB,GAAG,IAAI,CAAC;IACzD,cAAc,IAAI,OAAO,CAAC,WAAW,CAAC,CAAC;IACvC,eAAe,CAAC,QAAQ,EAAE,qBAAqB,GAAG,IAAI,CAAC;IACvD,gBAAgB,CAAC,QAAQ,CAAC,EAAE,qBAAqB,GAAG,IAAI,CAAC;IAEzD,oBAAoB,CAAC,WAAW,EAAE,iBAAiB,GAAG,OAAO,CAAC;IAC9D,yBAAyB,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,4BAA4B,KAAK,IAAI,GAAG,IAAI,CAAC;IACzF,0BAA0B,CAAC,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,4BAA4B,KAAK,IAAI,GAAG,IAAI,CAAC;IAE3F;;;;OAIG;IACH,QAAQ,CAAC,OAAO,EAAE,eAAe,GAAG,IAAI,CAAC;IACzC,YAAY,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC;IAEhE,UAAU,IAAI,OAAO,CAAC;IAEtB,WAAW,CAAC,OAAO,CAAC,EAAE,kBAAkB,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;IAEjE,eAAe,CAAC,OAAO,EAAE,sBAAsB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAChE,iBAAiB,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAEnC,cAAc,IAAI,WAAW,CAAC;IAC9B,YAAY,IAAI,SAAS,CAAC;IAC1B,gBAAgB,IAAI,iBAAiB,CAAC;IACtC,OAAO,CAAC,OAAO,EAAE,cAAc,GAAG,IAAI,CAAC;IAEvC,gBAAgB,IAAI,aAAa,CAAC;IAElC,YAAY,CAAC,OAAO,EAAE,mBAAmB,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC;IAC/D,aAAa,CAAC,OAAO,EAAE,oBAAoB,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAAC;IAC3E,aAAa,CAAC,OAAO,EAAE,oBAAoB,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAAC;IAC3E,YAAY,CAAC,OAAO,EAAE,mBAAmB,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC;IAC/D,qBAAqB,CAAC,OAAO,EAAE,4BAA4B,GAAG,OAAO,CAAC,2BAA2B,CAAC,CAAC;IAEnG,WAAW,CAAC,OAAO,CAAC,EAAE,kBAAkB,GAAG,OAAO,CAAC,gBAAgB,EAAE,CAAC,CAAC;IAEvE;;;;;;;;;;;OAWG;IACH,YAAY,CAAC,OAAO,EAAE,mBAAmB,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAAC;IAExE,sBAAsB,CAAC,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACjE,sBAAsB,CAAC,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEjE,QAAQ,CAAC,OAAO,CAAC,EAAE,eAAe,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC;IAE7D,kBAAkB,CAAC,WAAW,EAAE,MAAM,GAAG,YAAY,CAAC;IAEtD,SAAS,CAAC,OAAO,EAAE,gBAAgB,GAAG,IAAI,CAAC;IAC3C,SAAS,IAAI,IAAI,CAAC;IAElB,SAAS,CAAC,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;IAE3D,eAAe,CAAC,OAAO,EAAE,sBAAsB,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC;IAE7E,UAAU,CAAC,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAAC;IAClE,YAAY,CAAC,OAAO,EAAE,mBAAmB,GAAG,IAAI,CAAC;IACjD,UAAU,CAAC,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACtD,SAAS,CAAC,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACpD,QAAQ,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAElD,qBAAqB,CAAC,OAAO,EAAE,4BAA4B,GAAG,OAAO,CAAC;IACtE,qBAAqB,CAAC,OAAO,EAAE,4BAA4B,GAAG,OAAO,CAAC;IACtE,cAAc,IAAI,OAAO,CAAC;IAE1B,gBAAgB,CAAC,OAAO,EAAE,mBAAmB,GAAG,OAAO,CAAC;IACxD,gBAAgB,CAAC,OAAO,EAAE,mBAAmB,GAAG,OAAO,CAAC;IACxD,cAAc,CAAC,OAAO,EAAE,qBAAqB,GAAG,OAAO,CAAC;IACxD,iBAAiB,CAAC,OAAO,EAAE,wBAAwB,GAAG,OAAO,CAAC;IAC9D,UAAU,IAAI,OAAO,CAAC;IACtB,UAAU,IAAI,OAAO,CAAC;IACtB,cAAc,CAAC,OAAO,EAAE,qBAAqB,GAAG,OAAO,CAAC;IACxD,aAAa,CAAC,OAAO,EAAE,oBAAoB,GAAG,OAAO,CAAC;IAEtD,SAAS,CAAC,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC;IAC/D,SAAS,IAAI,IAAI,CAAC;IAElB,oBAAoB,IAAI,IAAI,CAAC;IAC7B,mBAAmB,IAAI,IAAI,CAAC;IAE5B,cAAc,IAAI,OAAO,CAAC,WAAW,CAAC,CAAC;IAEvC,sEAAsE;IACtE,UAAU,CAAC,OAAO,CAAC,EAAE,iBAAiB,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAAC;IACnE,sEAAsE;IACtE,eAAe,CAAC,OAAO,CAAC,EAAE,sBAAsB,GAAG,OAAO,CAAC,qBAAqB,CAAC,CAAC;IAElF,SAAS,CAAC,QAAQ,EAAE,gBAAgB,GAAG,IAAI,CAAC;IAC5C,UAAU,CAAC,QAAQ,CAAC,EAAE,gBAAgB,GAAG,IAAI,CAAC;IAC9C,OAAO,CAAC,QAAQ,EAAE,gBAAgB,GAAG,IAAI,CAAC;IAC1C,QAAQ,CAAC,QAAQ,CAAC,EAAE,gBAAgB,GAAG,IAAI,CAAC;CAC7C;AAED,OAAO,CAAC,MAAM,CAAC;IACb,MAAM,EAAE,EAAE,EAAE,CAAC;IAEb,SAAS,GAAG,CAAC,MAAM,EAAE,SAAS,GAAG,WAAW,CAAC;IAC7C,SAAS,MAAM,CAAC,CAAC,SAAS,WAAW,GAAG,WAAW,KAAK,CAAC,GAAG,IAAI,CAAC;IACjE,SAAS,IAAI,CAAC,KAAK,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC3E,MAAM,EAAE,UAAU,CAAC,KAAK,CAAC,GAAG,QAAQ,CAAC,YAAY,CAAC,KAAK,CAAC,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,GAC5E,IAAI,CAAC;IACR,SAAS,eAAe,CAAC,CAAC,SAAS,YAAY,GAAG,YAAY,KAAK,CAAC,EAAE,CAAC;CACxE;AAED,OAAO,EAAE,CAAC"}
|
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,12 +65,6 @@ export interface ChooseDirectoryResult {
|
|
|
56
65
|
export interface DownloadOptions {
|
|
57
66
|
/** HTTP(S) source URL. */
|
|
58
67
|
url: string;
|
|
59
|
-
/**
|
|
60
|
-
* Optional external cancellation channel.
|
|
61
|
-
* When aborted, it has the same effect as calling `task.cancel()`.
|
|
62
|
-
* Useful for timeout/router/lifecycle composition.
|
|
63
|
-
*/
|
|
64
|
-
signal?: AbortSignal;
|
|
65
68
|
}
|
|
66
69
|
|
|
67
70
|
export interface DownloadResult {
|
|
@@ -74,48 +77,3 @@ export interface DownloadResult {
|
|
|
74
77
|
/** File size in bytes. */
|
|
75
78
|
size: number;
|
|
76
79
|
}
|
|
77
|
-
|
|
78
|
-
export interface DownloadProgressEvent {
|
|
79
|
-
kind: 'progress';
|
|
80
|
-
downloadedBytes: number;
|
|
81
|
-
totalBytes?: number;
|
|
82
|
-
/**
|
|
83
|
-
* 0~1 progress value.
|
|
84
|
-
* - precise ratio when totalBytes is known
|
|
85
|
-
* - monotonic estimated progress when totalBytes is unknown
|
|
86
|
-
*/
|
|
87
|
-
progress: number;
|
|
88
|
-
}
|
|
89
|
-
|
|
90
|
-
export interface DownloadSuccessEvent {
|
|
91
|
-
kind: 'success';
|
|
92
|
-
result: DownloadResult;
|
|
93
|
-
}
|
|
94
|
-
|
|
95
|
-
export interface DownloadPausedEvent {
|
|
96
|
-
kind: 'paused';
|
|
97
|
-
}
|
|
98
|
-
|
|
99
|
-
export interface DownloadResumedEvent {
|
|
100
|
-
kind: 'resumed';
|
|
101
|
-
}
|
|
102
|
-
|
|
103
|
-
export interface DownloadCanceledEvent {
|
|
104
|
-
kind: 'canceled';
|
|
105
|
-
}
|
|
106
|
-
|
|
107
|
-
export type DownloadEvent =
|
|
108
|
-
| DownloadProgressEvent
|
|
109
|
-
| DownloadSuccessEvent
|
|
110
|
-
| DownloadPausedEvent
|
|
111
|
-
| DownloadResumedEvent
|
|
112
|
-
| DownloadCanceledEvent;
|
|
113
|
-
|
|
114
|
-
export interface DownloadTask extends AsyncIterable<DownloadEvent> {
|
|
115
|
-
/** Pause current download and keep resume metadata. */
|
|
116
|
-
pause(): Promise<void>;
|
|
117
|
-
/** Resume a paused download from persisted resume metadata. */
|
|
118
|
-
resume(): Promise<void>;
|
|
119
|
-
/** Cancel and remove downloaded temp artifacts. */
|
|
120
|
-
cancel(): Promise<void>;
|
|
121
|
-
}
|
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
|
+
DownloadResult,
|
|
57
57
|
} from './file';
|
|
58
58
|
|
|
59
59
|
import type {
|
|
@@ -145,8 +145,13 @@ export interface Lx {
|
|
|
145
145
|
onDeviceOrientationChange(callback: (event: DeviceOrientationChangeEvent) => void): void;
|
|
146
146
|
offDeviceOrientationChange(callback?: (event: DeviceOrientationChangeEvent) => void): void;
|
|
147
147
|
|
|
148
|
-
|
|
149
|
-
|
|
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;
|
|
154
|
+
downloadFile(options: DownloadOptions): Promise<DownloadResult>;
|
|
150
155
|
|
|
151
156
|
getStorage(): Storage;
|
|
152
157
|
|