@heybox/hb-sdk 0.9.1-alpha.6 → 0.9.1-alpha.8
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/CHANGELOG.md +18 -0
- package/README.md +8 -5
- package/dist/cli-chunks/{browser-DUdEZCyq.cjs → browser-YVckob3g.cjs} +1 -1
- package/dist/cli-chunks/{build-DYYWRiaY.cjs → build-CQkpLf81.cjs} +5 -5
- package/dist/cli-chunks/{context-Bo4L-Cx_.cjs → context-CqJDNtEi.cjs} +2 -2
- package/dist/cli-chunks/{create-CKC4yp0J.cjs → create-BRuR2M7y.cjs} +1 -1
- package/dist/cli-chunks/{dev-BMX6UXUe.cjs → dev-KJAFHEg_.cjs} +10 -10
- package/dist/cli-chunks/{doctor-DqEYRo4I.cjs → doctor-DhiUViwk.cjs} +1 -1
- package/dist/cli-chunks/{index-J4uQvKT_.cjs → index-9trmrUtW.cjs} +16 -16
- package/dist/cli-chunks/{index-DmCWB_hF.cjs → index-rxAV5dza.cjs} +3 -3
- package/dist/cli-chunks/{index.esm-eNPTDv6W.cjs → index.esm-Cv9FlhXy.cjs} +7 -7
- package/dist/cli-chunks/{login-BL2OE6r9.cjs → login-5DEcU9eL.cjs} +2 -2
- package/dist/cli-chunks/{project-vite-Du1m7Y_3.cjs → project-vite-CXWFwbEz.cjs} +1 -1
- package/dist/cli-chunks/{remote-ZHJUtx6l.cjs → remote-laUZaGpI.cjs} +30 -22
- package/dist/cli-chunks/{runtime-gate-DedD3ynE.cjs → runtime-gate-DmJhPcNQ.cjs} +2 -2
- package/dist/cli-chunks/{runtime-permission-env-DWaPlchd.cjs → runtime-permission-env-Gy2dH17F.cjs} +14 -5
- package/dist/cli-chunks/{skill-D4z_a_BH.cjs → skill--mZIZkyn.cjs} +2 -2
- package/dist/cli-chunks/{version-tzrFwpkl.cjs → version-BMp9qmtC.cjs} +1 -1
- package/dist/cli.cjs +1 -1
- package/dist/devtools/browser-dev-host/assets/browser-dev-host-COdk-39n.js +102 -0
- package/dist/devtools/browser-dev-host/assets/{desktop-app-launch-D6QZYpUq.js → desktop-app-launch-BU-vzcs0.js} +1 -1
- package/dist/devtools/browser-dev-host/assets/{index-Bqsp608m.js → index-BZBZfB4t.js} +3 -3
- package/dist/devtools/browser-dev-host/index.html +2 -2
- package/dist/index.cjs.js +80 -2
- package/dist/index.esm.js +80 -2
- package/dist/miniapp-publish.cjs.js +2 -1
- package/dist/miniapp-publish.esm.js +2 -1
- package/dist/protocol.cjs.js +9 -0
- package/dist/protocol.esm.js +9 -1
- package/dist/vite.cjs.js +3 -2
- package/dist/vite.esm.js +3 -2
- package/package.json +5 -5
- package/skill/skill.json +4 -4
- package/types/index.d.ts +85 -1
- package/types/protocol.d.ts +4 -1
- package/dist/devtools/browser-dev-host/assets/browser-dev-host-BL1URvGR.js +0 -102
|
@@ -5,8 +5,8 @@
|
|
|
5
5
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
6
6
|
<meta name="theme-color" content="#f4f5f7" />
|
|
7
7
|
<title>小程序工坊调试台</title>
|
|
8
|
-
<script type="module" crossorigin src="/assets/index-
|
|
9
|
-
<link rel="modulepreload" crossorigin href="/assets/desktop-app-launch-
|
|
8
|
+
<script type="module" crossorigin src="/assets/index-BZBZfB4t.js"></script>
|
|
9
|
+
<link rel="modulepreload" crossorigin href="/assets/desktop-app-launch-BU-vzcs0.js">
|
|
10
10
|
<link rel="stylesheet" crossorigin href="/assets/index-BRxbUJVN.css">
|
|
11
11
|
</head>
|
|
12
12
|
<body>
|
package/dist/index.cjs.js
CHANGED
|
@@ -425,6 +425,7 @@ const STORAGE_GET_STORAGE_METHOD = 'storage.getStorage';
|
|
|
425
425
|
const STORAGE_SET_STORAGE_METHOD = 'storage.setStorage';
|
|
426
426
|
const NETWORK_REQUEST_METHOD = 'network.request';
|
|
427
427
|
const NETWORK_DOWNLOAD_METHOD = 'network.download';
|
|
428
|
+
const NETWORK_UPLOAD_METHOD = 'network.upload';
|
|
428
429
|
const FILES_PICK_FILES_METHOD = 'files.pickFiles';
|
|
429
430
|
const FILES_PICK_DIRECTORY_METHOD = 'files.pickDirectory';
|
|
430
431
|
const FILES_SAVE_FILE_METHOD = 'files.saveFile';
|
|
@@ -7277,7 +7278,7 @@ function createMessageId() {
|
|
|
7277
7278
|
/** 构建时替换为当前发布包的实际版本。 */
|
|
7278
7279
|
const HB_SDK_VERSION = typeof undefined === 'string'
|
|
7279
7280
|
? undefined
|
|
7280
|
-
: '0.9.1-alpha.
|
|
7281
|
+
: '0.9.1-alpha.8';
|
|
7281
7282
|
|
|
7282
7283
|
const RUNTIME_MODES = new Set(['production', 'preview', 'development', 'unknown']);
|
|
7283
7284
|
const OPERATING_SYSTEM_NAMES = new Set(['android', 'ios', 'ohos', 'windows', 'macos', 'linux', 'unknown']);
|
|
@@ -7323,6 +7324,8 @@ function readRecord$1(value) {
|
|
|
7323
7324
|
}
|
|
7324
7325
|
|
|
7325
7326
|
const DEFAULT_TIMEOUT = 10000;
|
|
7327
|
+
// 选择器等待由用户决定,使用长操作的生命周期清理,不设固定总时长。
|
|
7328
|
+
const FILE_PICKER_METHODS = new Set([FILES_PICK_FILES_METHOD, FILES_PICK_DIRECTORY_METHOD, FILES_SAVE_FILE_METHOD]);
|
|
7326
7329
|
const HANDSHAKE_RETRY_INTERVAL = 250;
|
|
7327
7330
|
/** 底层 bridge client,负责握手、请求响应、事件分发与超时清理。 */
|
|
7328
7331
|
class MiniProgramBridgeClient {
|
|
@@ -7404,7 +7407,7 @@ class MiniProgramBridgeClient {
|
|
|
7404
7407
|
}
|
|
7405
7408
|
/** 调用父容器开放能力。 */
|
|
7406
7409
|
async request(method, ...args) {
|
|
7407
|
-
return this.performRequest(method, args[0],
|
|
7410
|
+
return this.performRequest(method, args[0], !FILE_PICKER_METHODS.has(method));
|
|
7408
7411
|
}
|
|
7409
7412
|
/** 发起不使用固定总时长 timer 的长操作。 */
|
|
7410
7413
|
async requestOperation(method, payload, options = {}) {
|
|
@@ -10734,8 +10737,82 @@ function createNetworkModule(requester) {
|
|
|
10734
10737
|
return {
|
|
10735
10738
|
request: (config) => request(requester, config),
|
|
10736
10739
|
download: (options) => download(requester, options),
|
|
10740
|
+
upload: (options) => upload(requester, options),
|
|
10737
10741
|
};
|
|
10738
10742
|
}
|
|
10743
|
+
/** 发起请求级可取消上传;传给 bridge 的只有文件引用和可序列化的元数据。 */
|
|
10744
|
+
async function upload(requester, options) {
|
|
10745
|
+
if (!isPlainObject(options) || !options || !['raw', 'multipart'].includes(options.format)) {
|
|
10746
|
+
throw createSDKError('INVALID_PARAMS', 'upload options 必须是带 format 的对象');
|
|
10747
|
+
}
|
|
10748
|
+
if (options.signal?.aborted)
|
|
10749
|
+
throw createSDKError('UPLOAD_CANCELLED', '上传已取消');
|
|
10750
|
+
const source = getFileHandleRegistry(requester).requireFile(options.from);
|
|
10751
|
+
if (typeof options.url !== 'string' || !options.url)
|
|
10752
|
+
throw createSDKError('INVALID_PARAMS', 'url 必须是非空字符串');
|
|
10753
|
+
if (options.params !== undefined && (!isPlainObject(options.params) || containsUnsupportedNetworkData(options.params))) {
|
|
10754
|
+
throw createSDKError('INVALID_PARAMS', 'params 必须是可序列化对象');
|
|
10755
|
+
}
|
|
10756
|
+
if (options.headers !== undefined &&
|
|
10757
|
+
(!isPlainObject(options.headers) || Object.values(options.headers).some((value) => typeof value !== 'string'))) {
|
|
10758
|
+
throw createSDKError('INVALID_PARAMS', 'headers 必须是字符串字典');
|
|
10759
|
+
}
|
|
10760
|
+
if (options.timeout !== undefined)
|
|
10761
|
+
assertFinitePositive(options.timeout, 'timeout');
|
|
10762
|
+
if (options.maxBytes !== undefined && (!Number.isSafeInteger(options.maxBytes) || options.maxBytes <= 0)) {
|
|
10763
|
+
throw createSDKError('INVALID_PARAMS', 'maxBytes 必须是正的 safe integer');
|
|
10764
|
+
}
|
|
10765
|
+
if (options.onProgress !== undefined && typeof options.onProgress !== 'function')
|
|
10766
|
+
throw createSDKError('INVALID_PARAMS', 'onProgress 必须是函数');
|
|
10767
|
+
if (options.validateStatus !== undefined && typeof options.validateStatus !== 'function')
|
|
10768
|
+
throw createSDKError('INVALID_PARAMS', 'validateStatus 必须是函数');
|
|
10769
|
+
if (options.format === 'multipart' &&
|
|
10770
|
+
options.fields !== undefined &&
|
|
10771
|
+
(!isPlainObject(options.fields) || Object.values(options.fields).some((value) => typeof value !== 'string'))) {
|
|
10772
|
+
throw createSDKError('INVALID_PARAMS', 'fields 必须是字符串字典');
|
|
10773
|
+
}
|
|
10774
|
+
const { signal, onProgress, validateStatus, from, ...metadata } = options;
|
|
10775
|
+
const payload = {
|
|
10776
|
+
...metadata,
|
|
10777
|
+
from: source.ref,
|
|
10778
|
+
...(options.params === undefined ? {} : { params: clonePublicValue(options.params) }),
|
|
10779
|
+
...(options.headers === undefined ? {} : { headers: { ...options.headers } }),
|
|
10780
|
+
...(options.format === 'multipart' && options.fields !== undefined ? { fields: { ...options.fields } } : {}),
|
|
10781
|
+
};
|
|
10782
|
+
const config = {
|
|
10783
|
+
...options,
|
|
10784
|
+
...(payload.params === undefined ? {} : { params: payload.params }),
|
|
10785
|
+
...(payload.headers === undefined ? {} : { headers: payload.headers }),
|
|
10786
|
+
...(payload.format === 'multipart' && payload.fields !== undefined ? { fields: payload.fields } : {}),
|
|
10787
|
+
};
|
|
10788
|
+
const result = await requester.requestOperation(NETWORK_UPLOAD_METHOD, payload, {
|
|
10789
|
+
...(signal === undefined ? {} : { signal }),
|
|
10790
|
+
...(onProgress === undefined
|
|
10791
|
+
? {}
|
|
10792
|
+
: {
|
|
10793
|
+
onProgress: (value) => {
|
|
10794
|
+
if (!isMiniProgramDownloadProgressPayload(value))
|
|
10795
|
+
return;
|
|
10796
|
+
try {
|
|
10797
|
+
onProgress({
|
|
10798
|
+
loaded: value.loaded,
|
|
10799
|
+
...(value.total === undefined ? {} : { total: value.total }),
|
|
10800
|
+
lengthComputable: value.lengthComputable,
|
|
10801
|
+
});
|
|
10802
|
+
}
|
|
10803
|
+
catch {
|
|
10804
|
+
// 业务进度观察者不改变上传终态。
|
|
10805
|
+
}
|
|
10806
|
+
},
|
|
10807
|
+
}),
|
|
10808
|
+
createAbortError: () => createSDKError('UPLOAD_CANCELLED', '上传已取消'),
|
|
10809
|
+
});
|
|
10810
|
+
const normalized = toNetworkResponse(result, config);
|
|
10811
|
+
const response = { ...normalized, config };
|
|
10812
|
+
if (!(validateStatus ?? DEFAULT_VALIDATE_STATUS)(response.status))
|
|
10813
|
+
throw new HbMiniProgramNetworkError(response);
|
|
10814
|
+
return response;
|
|
10815
|
+
}
|
|
10739
10816
|
|
|
10740
10817
|
function invalidParams(message) {
|
|
10741
10818
|
return createSDKError('INVALID_PARAMS', message);
|
|
@@ -11783,6 +11860,7 @@ const storage = {
|
|
|
11783
11860
|
const network = {
|
|
11784
11861
|
request: (config) => getDefaultSDK().network.request(config),
|
|
11785
11862
|
download: (options) => getDefaultSDK().network.download(options),
|
|
11863
|
+
upload: (options) => getDefaultSDK().network.upload(options),
|
|
11786
11864
|
};
|
|
11787
11865
|
/** 默认 SDK 实例的 files 模块。 */
|
|
11788
11866
|
const files = {
|
package/dist/index.esm.js
CHANGED
|
@@ -421,6 +421,7 @@ const STORAGE_GET_STORAGE_METHOD = 'storage.getStorage';
|
|
|
421
421
|
const STORAGE_SET_STORAGE_METHOD = 'storage.setStorage';
|
|
422
422
|
const NETWORK_REQUEST_METHOD = 'network.request';
|
|
423
423
|
const NETWORK_DOWNLOAD_METHOD = 'network.download';
|
|
424
|
+
const NETWORK_UPLOAD_METHOD = 'network.upload';
|
|
424
425
|
const FILES_PICK_FILES_METHOD = 'files.pickFiles';
|
|
425
426
|
const FILES_PICK_DIRECTORY_METHOD = 'files.pickDirectory';
|
|
426
427
|
const FILES_SAVE_FILE_METHOD = 'files.saveFile';
|
|
@@ -7273,7 +7274,7 @@ function createMessageId() {
|
|
|
7273
7274
|
/** 构建时替换为当前发布包的实际版本。 */
|
|
7274
7275
|
const HB_SDK_VERSION = typeof undefined === 'string'
|
|
7275
7276
|
? undefined
|
|
7276
|
-
: '0.9.1-alpha.
|
|
7277
|
+
: '0.9.1-alpha.8';
|
|
7277
7278
|
|
|
7278
7279
|
const RUNTIME_MODES = new Set(['production', 'preview', 'development', 'unknown']);
|
|
7279
7280
|
const OPERATING_SYSTEM_NAMES = new Set(['android', 'ios', 'ohos', 'windows', 'macos', 'linux', 'unknown']);
|
|
@@ -7319,6 +7320,8 @@ function readRecord$1(value) {
|
|
|
7319
7320
|
}
|
|
7320
7321
|
|
|
7321
7322
|
const DEFAULT_TIMEOUT = 10000;
|
|
7323
|
+
// 选择器等待由用户决定,使用长操作的生命周期清理,不设固定总时长。
|
|
7324
|
+
const FILE_PICKER_METHODS = new Set([FILES_PICK_FILES_METHOD, FILES_PICK_DIRECTORY_METHOD, FILES_SAVE_FILE_METHOD]);
|
|
7322
7325
|
const HANDSHAKE_RETRY_INTERVAL = 250;
|
|
7323
7326
|
/** 底层 bridge client,负责握手、请求响应、事件分发与超时清理。 */
|
|
7324
7327
|
class MiniProgramBridgeClient {
|
|
@@ -7400,7 +7403,7 @@ class MiniProgramBridgeClient {
|
|
|
7400
7403
|
}
|
|
7401
7404
|
/** 调用父容器开放能力。 */
|
|
7402
7405
|
async request(method, ...args) {
|
|
7403
|
-
return this.performRequest(method, args[0],
|
|
7406
|
+
return this.performRequest(method, args[0], !FILE_PICKER_METHODS.has(method));
|
|
7404
7407
|
}
|
|
7405
7408
|
/** 发起不使用固定总时长 timer 的长操作。 */
|
|
7406
7409
|
async requestOperation(method, payload, options = {}) {
|
|
@@ -10730,8 +10733,82 @@ function createNetworkModule(requester) {
|
|
|
10730
10733
|
return {
|
|
10731
10734
|
request: (config) => request(requester, config),
|
|
10732
10735
|
download: (options) => download(requester, options),
|
|
10736
|
+
upload: (options) => upload(requester, options),
|
|
10733
10737
|
};
|
|
10734
10738
|
}
|
|
10739
|
+
/** 发起请求级可取消上传;传给 bridge 的只有文件引用和可序列化的元数据。 */
|
|
10740
|
+
async function upload(requester, options) {
|
|
10741
|
+
if (!isPlainObject(options) || !options || !['raw', 'multipart'].includes(options.format)) {
|
|
10742
|
+
throw createSDKError('INVALID_PARAMS', 'upload options 必须是带 format 的对象');
|
|
10743
|
+
}
|
|
10744
|
+
if (options.signal?.aborted)
|
|
10745
|
+
throw createSDKError('UPLOAD_CANCELLED', '上传已取消');
|
|
10746
|
+
const source = getFileHandleRegistry(requester).requireFile(options.from);
|
|
10747
|
+
if (typeof options.url !== 'string' || !options.url)
|
|
10748
|
+
throw createSDKError('INVALID_PARAMS', 'url 必须是非空字符串');
|
|
10749
|
+
if (options.params !== undefined && (!isPlainObject(options.params) || containsUnsupportedNetworkData(options.params))) {
|
|
10750
|
+
throw createSDKError('INVALID_PARAMS', 'params 必须是可序列化对象');
|
|
10751
|
+
}
|
|
10752
|
+
if (options.headers !== undefined &&
|
|
10753
|
+
(!isPlainObject(options.headers) || Object.values(options.headers).some((value) => typeof value !== 'string'))) {
|
|
10754
|
+
throw createSDKError('INVALID_PARAMS', 'headers 必须是字符串字典');
|
|
10755
|
+
}
|
|
10756
|
+
if (options.timeout !== undefined)
|
|
10757
|
+
assertFinitePositive(options.timeout, 'timeout');
|
|
10758
|
+
if (options.maxBytes !== undefined && (!Number.isSafeInteger(options.maxBytes) || options.maxBytes <= 0)) {
|
|
10759
|
+
throw createSDKError('INVALID_PARAMS', 'maxBytes 必须是正的 safe integer');
|
|
10760
|
+
}
|
|
10761
|
+
if (options.onProgress !== undefined && typeof options.onProgress !== 'function')
|
|
10762
|
+
throw createSDKError('INVALID_PARAMS', 'onProgress 必须是函数');
|
|
10763
|
+
if (options.validateStatus !== undefined && typeof options.validateStatus !== 'function')
|
|
10764
|
+
throw createSDKError('INVALID_PARAMS', 'validateStatus 必须是函数');
|
|
10765
|
+
if (options.format === 'multipart' &&
|
|
10766
|
+
options.fields !== undefined &&
|
|
10767
|
+
(!isPlainObject(options.fields) || Object.values(options.fields).some((value) => typeof value !== 'string'))) {
|
|
10768
|
+
throw createSDKError('INVALID_PARAMS', 'fields 必须是字符串字典');
|
|
10769
|
+
}
|
|
10770
|
+
const { signal, onProgress, validateStatus, from, ...metadata } = options;
|
|
10771
|
+
const payload = {
|
|
10772
|
+
...metadata,
|
|
10773
|
+
from: source.ref,
|
|
10774
|
+
...(options.params === undefined ? {} : { params: clonePublicValue(options.params) }),
|
|
10775
|
+
...(options.headers === undefined ? {} : { headers: { ...options.headers } }),
|
|
10776
|
+
...(options.format === 'multipart' && options.fields !== undefined ? { fields: { ...options.fields } } : {}),
|
|
10777
|
+
};
|
|
10778
|
+
const config = {
|
|
10779
|
+
...options,
|
|
10780
|
+
...(payload.params === undefined ? {} : { params: payload.params }),
|
|
10781
|
+
...(payload.headers === undefined ? {} : { headers: payload.headers }),
|
|
10782
|
+
...(payload.format === 'multipart' && payload.fields !== undefined ? { fields: payload.fields } : {}),
|
|
10783
|
+
};
|
|
10784
|
+
const result = await requester.requestOperation(NETWORK_UPLOAD_METHOD, payload, {
|
|
10785
|
+
...(signal === undefined ? {} : { signal }),
|
|
10786
|
+
...(onProgress === undefined
|
|
10787
|
+
? {}
|
|
10788
|
+
: {
|
|
10789
|
+
onProgress: (value) => {
|
|
10790
|
+
if (!isMiniProgramDownloadProgressPayload(value))
|
|
10791
|
+
return;
|
|
10792
|
+
try {
|
|
10793
|
+
onProgress({
|
|
10794
|
+
loaded: value.loaded,
|
|
10795
|
+
...(value.total === undefined ? {} : { total: value.total }),
|
|
10796
|
+
lengthComputable: value.lengthComputable,
|
|
10797
|
+
});
|
|
10798
|
+
}
|
|
10799
|
+
catch {
|
|
10800
|
+
// 业务进度观察者不改变上传终态。
|
|
10801
|
+
}
|
|
10802
|
+
},
|
|
10803
|
+
}),
|
|
10804
|
+
createAbortError: () => createSDKError('UPLOAD_CANCELLED', '上传已取消'),
|
|
10805
|
+
});
|
|
10806
|
+
const normalized = toNetworkResponse(result, config);
|
|
10807
|
+
const response = { ...normalized, config };
|
|
10808
|
+
if (!(validateStatus ?? DEFAULT_VALIDATE_STATUS)(response.status))
|
|
10809
|
+
throw new HbMiniProgramNetworkError(response);
|
|
10810
|
+
return response;
|
|
10811
|
+
}
|
|
10735
10812
|
|
|
10736
10813
|
function invalidParams(message) {
|
|
10737
10814
|
return createSDKError('INVALID_PARAMS', message);
|
|
@@ -11779,6 +11856,7 @@ const storage = {
|
|
|
11779
11856
|
const network = {
|
|
11780
11857
|
request: (config) => getDefaultSDK().network.request(config),
|
|
11781
11858
|
download: (options) => getDefaultSDK().network.download(options),
|
|
11859
|
+
upload: (options) => getDefaultSDK().network.upload(options),
|
|
11782
11860
|
};
|
|
11783
11861
|
/** 默认 SDK 实例的 files 模块。 */
|
|
11784
11862
|
const files = {
|
|
@@ -71,6 +71,7 @@ const MINI_PROGRAM_PERMISSION_CATALOG = [
|
|
|
71
71
|
config: {},
|
|
72
72
|
methods: [
|
|
73
73
|
'network.download',
|
|
74
|
+
'network.upload',
|
|
74
75
|
'files.pickFiles',
|
|
75
76
|
'files.pickDirectory',
|
|
76
77
|
'files.saveFile',
|
|
@@ -129,7 +130,7 @@ const MINI_PROGRAM_PERMISSION_CATALOG = [
|
|
|
129
130
|
description: '是否申请访问小黑盒官方域名。',
|
|
130
131
|
},
|
|
131
132
|
},
|
|
132
|
-
methods: ['network.request', 'network.download'],
|
|
133
|
+
methods: ['network.request', 'network.download', 'network.upload'],
|
|
133
134
|
conditions: ['声明后仍需平台批准,并继续执行网络安全策略。'],
|
|
134
135
|
},
|
|
135
136
|
{
|
|
@@ -69,6 +69,7 @@ const MINI_PROGRAM_PERMISSION_CATALOG = [
|
|
|
69
69
|
config: {},
|
|
70
70
|
methods: [
|
|
71
71
|
'network.download',
|
|
72
|
+
'network.upload',
|
|
72
73
|
'files.pickFiles',
|
|
73
74
|
'files.pickDirectory',
|
|
74
75
|
'files.saveFile',
|
|
@@ -127,7 +128,7 @@ const MINI_PROGRAM_PERMISSION_CATALOG = [
|
|
|
127
128
|
description: '是否申请访问小黑盒官方域名。',
|
|
128
129
|
},
|
|
129
130
|
},
|
|
130
|
-
methods: ['network.request', 'network.download'],
|
|
131
|
+
methods: ['network.request', 'network.download', 'network.upload'],
|
|
131
132
|
conditions: ['声明后仍需平台批准,并继续执行网络安全策略。'],
|
|
132
133
|
},
|
|
133
134
|
{
|
package/dist/protocol.cjs.js
CHANGED
|
@@ -46,6 +46,7 @@ const STORAGE_GET_STORAGE_METHOD = 'storage.getStorage';
|
|
|
46
46
|
const STORAGE_SET_STORAGE_METHOD = 'storage.setStorage';
|
|
47
47
|
const NETWORK_REQUEST_METHOD = 'network.request';
|
|
48
48
|
const NETWORK_DOWNLOAD_METHOD = 'network.download';
|
|
49
|
+
const NETWORK_UPLOAD_METHOD = 'network.upload';
|
|
49
50
|
const FILES_PICK_FILES_METHOD = 'files.pickFiles';
|
|
50
51
|
const FILES_PICK_DIRECTORY_METHOD = 'files.pickDirectory';
|
|
51
52
|
const FILES_SAVE_FILE_METHOD = 'files.saveFile';
|
|
@@ -204,6 +205,13 @@ const MINI_PROGRAM_PROTOCOL_CAPABILITIES = [
|
|
|
204
205
|
requirement: { kind: 'all', permissions: ['network', 'filesystem'] },
|
|
205
206
|
risk: 'high',
|
|
206
207
|
},
|
|
208
|
+
{
|
|
209
|
+
method: NETWORK_UPLOAD_METHOD,
|
|
210
|
+
module: 'network',
|
|
211
|
+
capability: NETWORK_UPLOAD_METHOD,
|
|
212
|
+
requirement: { kind: 'all', permissions: ['network', 'filesystem'] },
|
|
213
|
+
risk: 'high',
|
|
214
|
+
},
|
|
207
215
|
{
|
|
208
216
|
method: FILES_PICK_FILES_METHOD,
|
|
209
217
|
module: 'files',
|
|
@@ -7208,6 +7216,7 @@ exports.NAVIGATION_OPEN_APP_PAGE_METHOD = NAVIGATION_OPEN_APP_PAGE_METHOD;
|
|
|
7208
7216
|
exports.NAVIGATION_RELOAD_METHOD = NAVIGATION_RELOAD_METHOD;
|
|
7209
7217
|
exports.NETWORK_DOWNLOAD_METHOD = NETWORK_DOWNLOAD_METHOD;
|
|
7210
7218
|
exports.NETWORK_REQUEST_METHOD = NETWORK_REQUEST_METHOD;
|
|
7219
|
+
exports.NETWORK_UPLOAD_METHOD = NETWORK_UPLOAD_METHOD;
|
|
7211
7220
|
exports.RUNTIME_LOCATION_PROBE_METHOD = RUNTIME_LOCATION_PROBE_METHOD;
|
|
7212
7221
|
exports.SDK_CSP_VIOLATION_METHOD = SDK_CSP_VIOLATION_METHOD;
|
|
7213
7222
|
exports.SDK_HANDSHAKE_METHOD = SDK_HANDSHAKE_METHOD;
|
package/dist/protocol.esm.js
CHANGED
|
@@ -44,6 +44,7 @@ const STORAGE_GET_STORAGE_METHOD = 'storage.getStorage';
|
|
|
44
44
|
const STORAGE_SET_STORAGE_METHOD = 'storage.setStorage';
|
|
45
45
|
const NETWORK_REQUEST_METHOD = 'network.request';
|
|
46
46
|
const NETWORK_DOWNLOAD_METHOD = 'network.download';
|
|
47
|
+
const NETWORK_UPLOAD_METHOD = 'network.upload';
|
|
47
48
|
const FILES_PICK_FILES_METHOD = 'files.pickFiles';
|
|
48
49
|
const FILES_PICK_DIRECTORY_METHOD = 'files.pickDirectory';
|
|
49
50
|
const FILES_SAVE_FILE_METHOD = 'files.saveFile';
|
|
@@ -202,6 +203,13 @@ const MINI_PROGRAM_PROTOCOL_CAPABILITIES = [
|
|
|
202
203
|
requirement: { kind: 'all', permissions: ['network', 'filesystem'] },
|
|
203
204
|
risk: 'high',
|
|
204
205
|
},
|
|
206
|
+
{
|
|
207
|
+
method: NETWORK_UPLOAD_METHOD,
|
|
208
|
+
module: 'network',
|
|
209
|
+
capability: NETWORK_UPLOAD_METHOD,
|
|
210
|
+
requirement: { kind: 'all', permissions: ['network', 'filesystem'] },
|
|
211
|
+
risk: 'high',
|
|
212
|
+
},
|
|
205
213
|
{
|
|
206
214
|
method: FILES_PICK_FILES_METHOD,
|
|
207
215
|
module: 'files',
|
|
@@ -7172,4 +7180,4 @@ object({
|
|
|
7172
7180
|
regions: array(viewRegionSchema).max(VIEW_BUDGET.maxRegions)
|
|
7173
7181
|
});
|
|
7174
7182
|
|
|
7175
|
-
export { AUTH_LOGIN_METHOD, CLOUD_LEADERBOARD_DELETE_CURRENT_USER_ENTRY_METHOD, CLOUD_LEADERBOARD_GET_CURRENT_USER_ENTRY_METHOD, CLOUD_LEADERBOARD_GET_INFO_METHOD, CLOUD_LEADERBOARD_GET_LIST_METHOD, CLOUD_LEADERBOARD_SUBMIT_METHOD, DEVICE_EXECUTE_PROTOCOL_METHOD, DEVICE_SET_CLIPBOARD_METHOD, DEVICE_VIBRATE_METHOD, DIRECTORY_CREATE_METHOD, DIRECTORY_EXISTS_METHOD, DIRECTORY_LIST_METHOD, DIRECTORY_REMOVE_METHOD, FILES_PICK_DIRECTORY_METHOD, FILES_PICK_FILES_METHOD, FILES_SAVE_FILE_METHOD, FILE_CREATE_METHOD, FILE_EXISTS_METHOD, FILE_READ_BYTES_METHOD, FILE_READ_TEXT_METHOD, FILE_REMOVE_METHOD, FILE_STAT_METHOD, FILE_WRITE_BYTES_METHOD, FILE_WRITE_TEXT_METHOD, MINI_PROGRAM_BRIDGE_NONCE_PARAM, MINI_PROGRAM_MESSAGE_NAMESPACE, MINI_PROGRAM_MESSAGE_VERSION, MINI_PROGRAM_OPERATION_PROGRESS_METHOD, MINI_PROGRAM_PROTOCOL_CAPABILITIES, NAVIGATION_CLOSE_METHOD, NAVIGATION_OPEN_APP_PAGE_METHOD, NAVIGATION_RELOAD_METHOD, NETWORK_DOWNLOAD_METHOD, NETWORK_REQUEST_METHOD, RUNTIME_LOCATION_PROBE_METHOD, SDK_CSP_VIOLATION_METHOD, SDK_HANDSHAKE_METHOD, SDK_LOCATION_REPORT_METHOD, SHARE_COPY_LINK_METHOD, SHARE_SCREENSHOT_METHOD, SHARE_SHOW_SHARE_MENU_METHOD, STORAGE_GET_STORAGE_METHOD, STORAGE_SET_STORAGE_METHOD, UI_HIDE_LOADING_METHOD, UI_SHOW_LOADING_METHOD, UI_SHOW_TOAST_METHOD, USER_GET_INFO_METHOD, USER_GET_STEAM_GAME_LIST_METHOD, USER_INFO_AUTHORIZATION_SCOPES, USER_REVOKE_AUTHORIZATION_METHOD, VIEWPORT_GET_WINDOW_INFO_METHOD, VIEWPORT_SET_DISPLAY_METHOD, VIEWPORT_SET_NAVIGATION_BAR_STYLE_METHOD, isManagedMiniProgramRuntimePermissionKey, isMiniProgramBridgeMessage, isMiniProgramByteArray, isMiniProgramDirectoryDescriptor, isMiniProgramDirectoryRef, isMiniProgramDownloadProgressPayload, isMiniProgramFileDescriptor, isMiniProgramFileRef, isMiniProgramFileStat, isMiniProgramFileSystemEntityDescriptor, isMiniProgramPathRootRef, isMiniProgramRelativePath, parseMiniProgramRuntimePermissions };
|
|
7183
|
+
export { AUTH_LOGIN_METHOD, CLOUD_LEADERBOARD_DELETE_CURRENT_USER_ENTRY_METHOD, CLOUD_LEADERBOARD_GET_CURRENT_USER_ENTRY_METHOD, CLOUD_LEADERBOARD_GET_INFO_METHOD, CLOUD_LEADERBOARD_GET_LIST_METHOD, CLOUD_LEADERBOARD_SUBMIT_METHOD, DEVICE_EXECUTE_PROTOCOL_METHOD, DEVICE_SET_CLIPBOARD_METHOD, DEVICE_VIBRATE_METHOD, DIRECTORY_CREATE_METHOD, DIRECTORY_EXISTS_METHOD, DIRECTORY_LIST_METHOD, DIRECTORY_REMOVE_METHOD, FILES_PICK_DIRECTORY_METHOD, FILES_PICK_FILES_METHOD, FILES_SAVE_FILE_METHOD, FILE_CREATE_METHOD, FILE_EXISTS_METHOD, FILE_READ_BYTES_METHOD, FILE_READ_TEXT_METHOD, FILE_REMOVE_METHOD, FILE_STAT_METHOD, FILE_WRITE_BYTES_METHOD, FILE_WRITE_TEXT_METHOD, MINI_PROGRAM_BRIDGE_NONCE_PARAM, MINI_PROGRAM_MESSAGE_NAMESPACE, MINI_PROGRAM_MESSAGE_VERSION, MINI_PROGRAM_OPERATION_PROGRESS_METHOD, MINI_PROGRAM_PROTOCOL_CAPABILITIES, NAVIGATION_CLOSE_METHOD, NAVIGATION_OPEN_APP_PAGE_METHOD, NAVIGATION_RELOAD_METHOD, NETWORK_DOWNLOAD_METHOD, NETWORK_REQUEST_METHOD, NETWORK_UPLOAD_METHOD, RUNTIME_LOCATION_PROBE_METHOD, SDK_CSP_VIOLATION_METHOD, SDK_HANDSHAKE_METHOD, SDK_LOCATION_REPORT_METHOD, SHARE_COPY_LINK_METHOD, SHARE_SCREENSHOT_METHOD, SHARE_SHOW_SHARE_MENU_METHOD, STORAGE_GET_STORAGE_METHOD, STORAGE_SET_STORAGE_METHOD, UI_HIDE_LOADING_METHOD, UI_SHOW_LOADING_METHOD, UI_SHOW_TOAST_METHOD, USER_GET_INFO_METHOD, USER_GET_STEAM_GAME_LIST_METHOD, USER_INFO_AUTHORIZATION_SCOPES, USER_REVOKE_AUTHORIZATION_METHOD, VIEWPORT_GET_WINDOW_INFO_METHOD, VIEWPORT_SET_DISPLAY_METHOD, VIEWPORT_SET_NAVIGATION_BAR_STYLE_METHOD, isManagedMiniProgramRuntimePermissionKey, isMiniProgramBridgeMessage, isMiniProgramByteArray, isMiniProgramDirectoryDescriptor, isMiniProgramDirectoryRef, isMiniProgramDownloadProgressPayload, isMiniProgramFileDescriptor, isMiniProgramFileRef, isMiniProgramFileStat, isMiniProgramFileSystemEntityDescriptor, isMiniProgramPathRootRef, isMiniProgramRelativePath, parseMiniProgramRuntimePermissions };
|
package/dist/vite.cjs.js
CHANGED
|
@@ -100,6 +100,7 @@ const MINI_PROGRAM_PERMISSION_CATALOG = [
|
|
|
100
100
|
config: {},
|
|
101
101
|
methods: [
|
|
102
102
|
'network.download',
|
|
103
|
+
'network.upload',
|
|
103
104
|
'files.pickFiles',
|
|
104
105
|
'files.pickDirectory',
|
|
105
106
|
'files.saveFile',
|
|
@@ -158,7 +159,7 @@ const MINI_PROGRAM_PERMISSION_CATALOG = [
|
|
|
158
159
|
description: '是否申请访问小黑盒官方域名。',
|
|
159
160
|
},
|
|
160
161
|
},
|
|
161
|
-
methods: ['network.request', 'network.download'],
|
|
162
|
+
methods: ['network.request', 'network.download', 'network.upload'],
|
|
162
163
|
conditions: ['声明后仍需平台批准,并继续执行网络安全策略。'],
|
|
163
164
|
},
|
|
164
165
|
{
|
|
@@ -10281,7 +10282,7 @@ async function ensureBasicInfoDirectory(rootPath, relative) {
|
|
|
10281
10282
|
/** 构建时替换为当前发布包的实际版本。 */
|
|
10282
10283
|
const HB_SDK_VERSION = typeof undefined === 'string'
|
|
10283
10284
|
? undefined
|
|
10284
|
-
: '0.9.1-alpha.
|
|
10285
|
+
: '0.9.1-alpha.8';
|
|
10285
10286
|
|
|
10286
10287
|
/**
|
|
10287
10288
|
* iframe 与调试台页面的开发期 console 捕获转发。
|
package/dist/vite.esm.js
CHANGED
|
@@ -97,6 +97,7 @@ const MINI_PROGRAM_PERMISSION_CATALOG = [
|
|
|
97
97
|
config: {},
|
|
98
98
|
methods: [
|
|
99
99
|
'network.download',
|
|
100
|
+
'network.upload',
|
|
100
101
|
'files.pickFiles',
|
|
101
102
|
'files.pickDirectory',
|
|
102
103
|
'files.saveFile',
|
|
@@ -155,7 +156,7 @@ const MINI_PROGRAM_PERMISSION_CATALOG = [
|
|
|
155
156
|
description: '是否申请访问小黑盒官方域名。',
|
|
156
157
|
},
|
|
157
158
|
},
|
|
158
|
-
methods: ['network.request', 'network.download'],
|
|
159
|
+
methods: ['network.request', 'network.download', 'network.upload'],
|
|
159
160
|
conditions: ['声明后仍需平台批准,并继续执行网络安全策略。'],
|
|
160
161
|
},
|
|
161
162
|
{
|
|
@@ -10278,7 +10279,7 @@ async function ensureBasicInfoDirectory(rootPath, relative) {
|
|
|
10278
10279
|
/** 构建时替换为当前发布包的实际版本。 */
|
|
10279
10280
|
const HB_SDK_VERSION = typeof undefined === 'string'
|
|
10280
10281
|
? undefined
|
|
10281
|
-
: '0.9.1-alpha.
|
|
10282
|
+
: '0.9.1-alpha.8';
|
|
10282
10283
|
|
|
10283
10284
|
/**
|
|
10284
10285
|
* iframe 与调试台页面的开发期 console 捕获转发。
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@heybox/hb-sdk",
|
|
3
|
-
"version": "0.9.1-alpha.
|
|
3
|
+
"version": "0.9.1-alpha.8",
|
|
4
4
|
"sideEffects": [
|
|
5
5
|
"./src/index.ts",
|
|
6
6
|
"./src/core/singleton.ts",
|
|
@@ -75,7 +75,7 @@
|
|
|
75
75
|
"undici": "^7.28.0",
|
|
76
76
|
"ws": "^8.18.0",
|
|
77
77
|
"sharp": "^0.34.5",
|
|
78
|
-
"@heybox/hb-sdk-protocol": "0.9.1-alpha.
|
|
78
|
+
"@heybox/hb-sdk-protocol": "0.9.1-alpha.8"
|
|
79
79
|
},
|
|
80
80
|
"peerDependencies": {
|
|
81
81
|
"vite": ">=5"
|
|
@@ -128,11 +128,11 @@
|
|
|
128
128
|
"@ai-desktop/view-contract": "file:../hb-sdk-protocol/vendor/view-contract-2.2.2-6ac49bbf6410.tgz",
|
|
129
129
|
"rollup-plugin-dts": "6.4.0",
|
|
130
130
|
"@heybox-domain/heybox-theme": "~0.1.0",
|
|
131
|
-
"@heybox
|
|
132
|
-
"@heybox/hb-api": "~1.28.14",
|
|
133
|
-
"@heybox/hb-sdk-runtime": "~0.9.1-alpha.6",
|
|
131
|
+
"@heybox/hb-sdk-runtime": "~0.9.1-alpha.8",
|
|
134
132
|
"@heybox/runtime": "~0.2.1",
|
|
135
133
|
"@heybox/runtime-policy": "~0.2.1",
|
|
134
|
+
"@heybox/hb-api": "~1.28.14",
|
|
135
|
+
"@heybox-domain/heybox-vue3-ui": "~0.1.0",
|
|
136
136
|
"@heybox/runtime-transport-fetch": "~0.2.1"
|
|
137
137
|
},
|
|
138
138
|
"publishConfig": {
|
package/skill/skill.json
CHANGED
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "hb-sdk",
|
|
3
|
-
"skillVersion": "0.9.1-alpha.
|
|
3
|
+
"skillVersion": "0.9.1-alpha.8+skill.3260e7d71ada",
|
|
4
4
|
"sdk": {
|
|
5
5
|
"package": "@heybox/hb-sdk",
|
|
6
|
-
"version": "0.9.1-alpha.
|
|
7
|
-
"compatibility": "0.9.1-alpha.
|
|
6
|
+
"version": "0.9.1-alpha.8",
|
|
7
|
+
"compatibility": "0.9.1-alpha.8"
|
|
8
8
|
},
|
|
9
9
|
"distribution": {
|
|
10
10
|
"type": "npm",
|
|
11
11
|
"package": "@heybox/hb-sdk",
|
|
12
|
-
"version": "0.9.1-alpha.
|
|
12
|
+
"version": "0.9.1-alpha.8",
|
|
13
13
|
"path": "skill"
|
|
14
14
|
},
|
|
15
15
|
"integrity": "sha256-3260e7d71ada646d5d8b269490e3de4b5ecd3fe824b18cdb73fe64247738ffea"
|
package/types/index.d.ts
CHANGED
|
@@ -1332,6 +1332,7 @@ interface FilesModule {
|
|
|
1332
1332
|
* 必须直接从按钮点击等可信用户操作调用。不要先 `await` 握手或其他异步任务;应提前通过
|
|
1333
1333
|
* `getHandshakeState()` / `onHandshakeStateChange()` 控制按钮只在 ready 时可用,再在点击回调
|
|
1334
1334
|
* 中立即调用 picker。取消是正常用户结果,应按 `FILE_PICKER_CANCELLED` 结束当前流程。
|
|
1335
|
+
* 选择器等待不设固定超时;用户确认、取消或当前 SDK / Runtime 会话结束后才结束操作。
|
|
1335
1336
|
*
|
|
1336
1337
|
* 默认 `mode: 'read'`、`multiple: false` 且无 `accept`。返回的是用户选择范围内的精确外部
|
|
1337
1338
|
* File direct handles,不是浏览器原生 `File`,不能扩张到父目录或兄弟文件;每项授权只在
|
|
@@ -1421,6 +1422,7 @@ interface FilesModule {
|
|
|
1421
1422
|
* 必须直接从按钮点击等可信用户操作调用。不要先 `await` 握手或其他异步任务;应提前通过
|
|
1422
1423
|
* `getHandshakeState()` / `onHandshakeStateChange()` 控制按钮只在 ready 时可用,再在点击回调
|
|
1423
1424
|
* 中立即调用 picker。取消是正常用户结果,应按 `FILE_PICKER_CANCELLED` 结束当前流程。
|
|
1425
|
+
* 选择器等待不设固定超时;用户确认、取消或当前 SDK / Runtime 会话结束后才结束操作。
|
|
1424
1426
|
*
|
|
1425
1427
|
* 默认授权模式为 `read`。返回的是用户选择范围的精确外部目录授权,只在当前 Runtime
|
|
1426
1428
|
* session 有效;session 结束或授权撤销后不能恢复或持久化复用。其 `file()` / `directory()`
|
|
@@ -1507,6 +1509,7 @@ interface FilesModule {
|
|
|
1507
1509
|
* 必须直接从按钮点击等可信用户操作调用。不要先 `await` 握手或其他异步任务;应提前通过
|
|
1508
1510
|
* `getHandshakeState()` / `onHandshakeStateChange()` 控制按钮只在 ready 时可用,再在点击回调
|
|
1509
1511
|
* 中立即调用。取消是正常用户结果,应按 `FILE_PICKER_CANCELLED` 结束当前流程。
|
|
1512
|
+
* 选择器等待不设固定超时;用户确认、取消或当前 SDK / Runtime 会话结束后才结束操作。
|
|
1510
1513
|
*
|
|
1511
1514
|
* 返回的是当前 Runtime session 内一个精确外部 File 授权,不会额外保留或暴露父 Directory
|
|
1512
1515
|
* handle。它占用 picker / `saveFile()` 共享的 1024 direct-handle 配额中的一个;session 结束
|
|
@@ -1747,6 +1750,61 @@ type DownloadOptions = DownloadBaseOptions & ({
|
|
|
1747
1750
|
/** 是否允许原子创建或替换目录内的同名文件,默认 `false`;`false` 时采用独占创建。 */
|
|
1748
1751
|
overwrite?: boolean;
|
|
1749
1752
|
});
|
|
1753
|
+
/** 上传进度仅统计文件内容字节;100% 不表示服务端已经接受本次上传。 */
|
|
1754
|
+
interface UploadProgress {
|
|
1755
|
+
/** 已交给 Host 传输层的文件内容字节数,不表示服务端已保存。 */
|
|
1756
|
+
loaded: number;
|
|
1757
|
+
/** Host 可以确定文件大小时提供的总字节数。 */
|
|
1758
|
+
total?: number;
|
|
1759
|
+
/** 总大小是否已知;空文件的 total 可以为 0。 */
|
|
1760
|
+
lengthComputable: boolean;
|
|
1761
|
+
}
|
|
1762
|
+
/** 单文件流式上传的公共选项。 */
|
|
1763
|
+
interface UploadBaseOptions {
|
|
1764
|
+
/** 开发者指定的 HTTPS URL;官方域名与重定向首版不支持。 */
|
|
1765
|
+
url: string;
|
|
1766
|
+
/** 当前 SDK 会话的可读 FileHandle;不接受浏览器 File、Blob 或本机路径。 */
|
|
1767
|
+
from: FileHandle;
|
|
1768
|
+
/** 由 Host 编码的查询参数。 */
|
|
1769
|
+
params?: MiniProgramNetworkParams;
|
|
1770
|
+
/** 应用请求头;multipart 的 Content-Type 与 boundary 由 Host 生成。 */
|
|
1771
|
+
headers?: MiniProgramNetworkHeaders;
|
|
1772
|
+
/** 网络空闲超时,单位毫秒;不是上传的固定总时长。 */
|
|
1773
|
+
timeout?: number;
|
|
1774
|
+
/** 文件内容大小上限,必须是正的 safe integer;不包含 multipart 元数据。 */
|
|
1775
|
+
maxBytes?: number;
|
|
1776
|
+
/** 取消本次上传;取消或超时不能保证服务端没有保存数据。 */
|
|
1777
|
+
signal?: AbortSignal;
|
|
1778
|
+
/** 当前请求的文件字节进度;回调抛错不影响上传。 */
|
|
1779
|
+
onProgress?: (progress: UploadProgress) => void;
|
|
1780
|
+
/** SDK 侧 HTTP 状态校验,默认只接受 2xx。 */
|
|
1781
|
+
validateStatus?: MiniProgramNetworkValidateStatus;
|
|
1782
|
+
}
|
|
1783
|
+
/** raw 默认 PUT,也支持 POST;multipart 固定 POST 且仅含一个文件。 */
|
|
1784
|
+
type UploadOptions = UploadBaseOptions & ({
|
|
1785
|
+
format: 'raw';
|
|
1786
|
+
method?: 'PUT' | 'POST';
|
|
1787
|
+
fieldName?: never;
|
|
1788
|
+
fields?: never;
|
|
1789
|
+
fileName?: never;
|
|
1790
|
+
contentType?: never;
|
|
1791
|
+
} | {
|
|
1792
|
+
format: 'multipart';
|
|
1793
|
+
method?: 'POST';
|
|
1794
|
+
/** 文件表单字段名,不得与 fields 的字段名重复。 */
|
|
1795
|
+
fieldName: string;
|
|
1796
|
+
/** 字符串表单字段;复杂值由调用方自行序列化。 */
|
|
1797
|
+
fields?: Record<string, string>;
|
|
1798
|
+
/** 单个安全文件名,默认使用 from.name。 */
|
|
1799
|
+
fileName?: string;
|
|
1800
|
+
/** 文件 part 的 MIME type,默认 application/octet-stream。 */
|
|
1801
|
+
contentType?: string;
|
|
1802
|
+
});
|
|
1803
|
+
/** 上传完成后的 HTTP 响应;data 的泛型不执行运行时 schema 校验。 */
|
|
1804
|
+
interface UploadResponse<T = unknown> extends NetworkResponsePayload<T> {
|
|
1805
|
+
/** SDK 在调用时构造的配置快照,保留原始 FileHandle。 */
|
|
1806
|
+
config: UploadOptions;
|
|
1807
|
+
}
|
|
1750
1808
|
/**
|
|
1751
1809
|
* bridge / runtime 可消费的网络请求 payload。
|
|
1752
1810
|
*
|
|
@@ -1984,6 +2042,32 @@ interface MiniProgramNetworkModule {
|
|
|
1984
2042
|
* @hbClient macos none
|
|
1985
2043
|
*/
|
|
1986
2044
|
download(options: DownloadOptions): Promise<FileHandle>;
|
|
2045
|
+
/**
|
|
2046
|
+
* 将受控文件直接流式上传至开发者指定的 URL。
|
|
2047
|
+
*
|
|
2048
|
+
* @remarks
|
|
2049
|
+
* 要求 network 与 filesystem 权限,只需文件的读权限。文件字节不经过 iframe bridge。
|
|
2050
|
+
* 上传绑定当前 Runtime 会话,不自动重试、不分片、不续传,也不预先复制文件快照。
|
|
2051
|
+
* 调用方必须保证上传期间源文件不被修改;Host 检测到变化时失败,但不能可靠发现所有修改。
|
|
2052
|
+
* 进度达到 100% 后仍需等待 HTTP 响应。取消、超时或网络失败不能撤销服务端的副作用。
|
|
2053
|
+
*
|
|
2054
|
+
* @param options - 源文件、URL、上传格式、请求头、限制与请求级进度/取消选项。
|
|
2055
|
+
* @returns 标准化 HTTP 响应;默认仅 2xx resolve。
|
|
2056
|
+
* @throws HbMiniProgramNetworkError HTTP 状态未通过 validateStatus。
|
|
2057
|
+
* @throws HbMiniProgramSDKError 文件、参数、权限、传输或 Host 能力错误。
|
|
2058
|
+
* @since 0.9.1-alpha.7
|
|
2059
|
+
* @hbPlatform android
|
|
2060
|
+
* @hbPlatform ios
|
|
2061
|
+
* @hbPlatform ohos
|
|
2062
|
+
* @hbPlatform windows
|
|
2063
|
+
* @hbPlatform macos
|
|
2064
|
+
* @hbClient android none
|
|
2065
|
+
* @hbClient ios none
|
|
2066
|
+
* @hbClient ohos none
|
|
2067
|
+
* @hbClient windows none
|
|
2068
|
+
* @hbClient macos none
|
|
2069
|
+
*/
|
|
2070
|
+
upload<T = unknown>(options: UploadOptions): Promise<UploadResponse<T>>;
|
|
1987
2071
|
}
|
|
1988
2072
|
|
|
1989
2073
|
/**
|
|
@@ -7534,4 +7618,4 @@ declare const hbSDK: {
|
|
|
7534
7618
|
};
|
|
7535
7619
|
|
|
7536
7620
|
export { HbMiniProgramNetworkError, HbMiniProgramSDKError, auth, cloud, companion, hbSDK as default, device, environment, files, getHandshakeState, navigation, network, off, on, onHandshakeStateChange, share, storage, ui, user, viewport, workspaceCards };
|
|
7537
|
-
export type { ClosePayload, CloseResult, CompanionAttachments, CompanionExitHandler, CompanionNotification, CompanionNotifications, CompanionOutputHandler, CompanionOwnershipLostHandler, CompanionPrepareOptions, CompanionSession, CompanionState, CompanionStateChangeHandler, CompanionStdio, CopyLinkPayload, CopyLinkResult, CreateOptions, DeleteCurrentUserLeaderboardEntryPayload, DeleteCurrentUserLeaderboardEntryResult, DirectoryHandle, DownloadBaseOptions, DownloadOptions, DownloadProgress, FileHandle, FileMode, FileStat, FileSystem, FileSystemEntity, FilesModule, GetCurrentUserLeaderboardEntryPayload, GetCurrentUserLeaderboardEntryResult, GetLeaderboardInfoPayload, GetLeaderboardInfoResult, GetLeaderboardListPayload, GetLeaderboardListResult, GetSteamGameListOptions, GetSteamGameListPayload, GetSteamGameListResult, GetStoragePayload, GetStorageResult, GetUserInfoPayload, GetUserInfoResult, GetWindowInfoPayload, GetWindowInfoResult, HideLoadingPayload, HideLoadingResult, LeaderboardEntry, LeaderboardOrder, ListOptions, LoginOptions, LoginPayload, LoginResult, LoginScope, MiniProgramAppPageTarget, MiniProgramAuthModule, MiniProgramCloudLeaderboardModule, MiniProgramCloudModule, MiniProgramCompanionModule, MiniProgramCopyLinkOptions, MiniProgramDeviceModule, MiniProgramEnvironmentInfo, MiniProgramEnvironmentModule, MiniProgramEventHandler, MiniProgramGameDetailGameType, MiniProgramGameDetailPage, MiniProgramNavigationBarForegroundStyle, MiniProgramNavigationModule, MiniProgramNetworkHeaders, MiniProgramNetworkModule, MiniProgramNetworkParams, MiniProgramNetworkRequestConfig, MiniProgramNetworkRequestMethod, MiniProgramNetworkResponse, MiniProgramNetworkValidateStatus, MiniProgramSDKHandshakeState, MiniProgramSDKHandshakeStateHandler, MiniProgramSafeArea, MiniProgramScreenshotOptions, MiniProgramScreenshotRect, MiniProgramSetNavigationBarStyleOptions, MiniProgramShareChannel, MiniProgramShareExtraValue, MiniProgramShareModule, MiniProgramSharePostOptions, MiniProgramShowShareMenuOptions, MiniProgramStorageModule, MiniProgramToastStatus, MiniProgramUiModule, MiniProgramUserModule, MiniProgramVibrateIntensity, MiniProgramViewportModule, MiniProgramWindowInfoResult, NetworkRequestPayload, NetworkResponsePayload, OpenAppPageOptions, OpenAppPagePayload, OpenAppPageResult, OpenGameDetailAppPageOptions, OpenGameDetailAppPagePayload, OpenMiniProgramAppPageOptions, OpenMiniProgramAppPagePayload, OpenPostDetailAppPageOptions, OpenPostDetailAppPagePayload, OpenUserDetailAppPageOptions, OpenUserDetailAppPagePayload, PathRoot, PickDirectoryOptions, PickFilesOptions, ReloadPayload, ReloadResult, RemoveOptions, RevokeAuthorizationPayload, RevokeAuthorizationResult, SaveFileOptions, ScreenshotPayload, ScreenshotResult, SetClipboardPayload, SetClipboardResult, SetNavigationBarStylePayload, SetNavigationBarStyleResult, SetStoragePayload, ShowLoadingPayload, ShowLoadingResult, ShowShareMenuPayload, ShowShareMenuResult, ShowToastPayload, ShowToastResult, SteamGameListData, SteamGameListItem, SteamGameListSort, SteamGamePrice, SubmitLeaderboardEntryPayload, SubmitLeaderboardEntryResult, VibratePayload, VibrateResult, WorkspaceCardsModule };
|
|
7621
|
+
export type { ClosePayload, CloseResult, CompanionAttachments, CompanionExitHandler, CompanionNotification, CompanionNotifications, CompanionOutputHandler, CompanionOwnershipLostHandler, CompanionPrepareOptions, CompanionSession, CompanionState, CompanionStateChangeHandler, CompanionStdio, CopyLinkPayload, CopyLinkResult, CreateOptions, DeleteCurrentUserLeaderboardEntryPayload, DeleteCurrentUserLeaderboardEntryResult, DirectoryHandle, DownloadBaseOptions, DownloadOptions, DownloadProgress, FileHandle, FileMode, FileStat, FileSystem, FileSystemEntity, FilesModule, GetCurrentUserLeaderboardEntryPayload, GetCurrentUserLeaderboardEntryResult, GetLeaderboardInfoPayload, GetLeaderboardInfoResult, GetLeaderboardListPayload, GetLeaderboardListResult, GetSteamGameListOptions, GetSteamGameListPayload, GetSteamGameListResult, GetStoragePayload, GetStorageResult, GetUserInfoPayload, GetUserInfoResult, GetWindowInfoPayload, GetWindowInfoResult, HideLoadingPayload, HideLoadingResult, LeaderboardEntry, LeaderboardOrder, ListOptions, LoginOptions, LoginPayload, LoginResult, LoginScope, MiniProgramAppPageTarget, MiniProgramAuthModule, MiniProgramCloudLeaderboardModule, MiniProgramCloudModule, MiniProgramCompanionModule, MiniProgramCopyLinkOptions, MiniProgramDeviceModule, MiniProgramEnvironmentInfo, MiniProgramEnvironmentModule, MiniProgramEventHandler, MiniProgramGameDetailGameType, MiniProgramGameDetailPage, MiniProgramNavigationBarForegroundStyle, MiniProgramNavigationModule, MiniProgramNetworkHeaders, MiniProgramNetworkModule, MiniProgramNetworkParams, MiniProgramNetworkRequestConfig, MiniProgramNetworkRequestMethod, MiniProgramNetworkResponse, MiniProgramNetworkValidateStatus, MiniProgramSDKHandshakeState, MiniProgramSDKHandshakeStateHandler, MiniProgramSafeArea, MiniProgramScreenshotOptions, MiniProgramScreenshotRect, MiniProgramSetNavigationBarStyleOptions, MiniProgramShareChannel, MiniProgramShareExtraValue, MiniProgramShareModule, MiniProgramSharePostOptions, MiniProgramShowShareMenuOptions, MiniProgramStorageModule, MiniProgramToastStatus, MiniProgramUiModule, MiniProgramUserModule, MiniProgramVibrateIntensity, MiniProgramViewportModule, MiniProgramWindowInfoResult, NetworkRequestPayload, NetworkResponsePayload, OpenAppPageOptions, OpenAppPagePayload, OpenAppPageResult, OpenGameDetailAppPageOptions, OpenGameDetailAppPagePayload, OpenMiniProgramAppPageOptions, OpenMiniProgramAppPagePayload, OpenPostDetailAppPageOptions, OpenPostDetailAppPagePayload, OpenUserDetailAppPageOptions, OpenUserDetailAppPagePayload, PathRoot, PickDirectoryOptions, PickFilesOptions, ReloadPayload, ReloadResult, RemoveOptions, RevokeAuthorizationPayload, RevokeAuthorizationResult, SaveFileOptions, ScreenshotPayload, ScreenshotResult, SetClipboardPayload, SetClipboardResult, SetNavigationBarStylePayload, SetNavigationBarStyleResult, SetStoragePayload, ShowLoadingPayload, ShowLoadingResult, ShowShareMenuPayload, ShowShareMenuResult, ShowToastPayload, ShowToastResult, SteamGameListData, SteamGameListItem, SteamGameListSort, SteamGamePrice, SubmitLeaderboardEntryPayload, SubmitLeaderboardEntryResult, UploadBaseOptions, UploadOptions, UploadProgress, UploadResponse, VibratePayload, VibrateResult, WorkspaceCardsModule };
|