@heybox/hb-sdk 0.9.4-alpha.5 → 0.9.4
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 +39 -0
- package/README.md +10 -5
- package/dist/cli-chunks/{artifact-jsQYkAtl.cjs → artifact-DKBVVALl.cjs} +3 -3
- package/dist/cli-chunks/{build-DP_wWCqD.cjs → build-ByqewdbU.cjs} +5 -5
- package/dist/cli-chunks/{create-BBP7d0VG.cjs → create-RucKGsv0.cjs} +1 -1
- package/dist/cli-chunks/{deploy-lock-CWw3roCU.cjs → deploy-lock-IBHm1WFG.cjs} +1 -1
- package/dist/cli-chunks/{dev-Bk5K5rIN.cjs → dev-D-_6vms0.cjs} +8 -8
- package/dist/cli-chunks/{dev-context-_5_wHVh2.cjs → dev-context-B4ZtDxzm.cjs} +2 -2
- package/dist/cli-chunks/{doctor-DUZQAmFA.cjs → doctor-DQeX2AJX.cjs} +1 -1
- package/dist/cli-chunks/{games-ClpE0MnF.cjs → games-BMmrK7pj.cjs} +2 -2
- package/dist/cli-chunks/{index-bC9zBCaD.cjs → index-DOg8iLM6.cjs} +1 -1
- package/dist/cli-chunks/{index-f08ccpUh.cjs → index-Dx_O9N1P.cjs} +17 -18
- package/dist/cli-chunks/{index.esm-CipGgSZl.cjs → index.esm-C_JZnx87.cjs} +6 -6
- package/dist/cli-chunks/{login-Gx4BRnFT.cjs → login-DzbMxAOa.cjs} +1 -1
- package/dist/cli-chunks/{project-vite-1w111P1v.cjs → project-vite-DXt33L_j.cjs} +1 -1
- package/dist/cli-chunks/{remote-DfxjFx2c.cjs → remote-CxGBKlIt.cjs} +10 -8
- package/dist/cli-chunks/{runtime-permission-env-Dxy6rI1X.cjs → runtime-permission-env-BAi5k5Hm.cjs} +18 -4
- package/dist/cli-chunks/{skill-B0BZ_jWO.cjs → skill-CtKW4NiU.cjs} +2 -2
- package/dist/cli-chunks/{version-BOTQ1B8f.cjs → version-CJsHJ4QU.cjs} +1 -1
- package/dist/cli.cjs +1 -1
- package/dist/devtools/browser-dev-host/assets/browser-dev-host-B9Gx2iIY.js +102 -0
- package/dist/devtools/browser-dev-host/assets/{desktop-app-launch-TmPyZOfN.js → desktop-app-launch-BElRBLGR.js} +1 -1
- package/dist/devtools/browser-dev-host/assets/{index-DiXCkImS.js → index-zZH5iNv_.js} +3 -3
- package/dist/devtools/browser-dev-host/index.html +2 -2
- package/dist/index.cjs.js +77 -4
- package/dist/index.esm.js +77 -5
- package/dist/miniapp-publish.cjs.js +16 -2
- package/dist/miniapp-publish.esm.js +16 -2
- package/dist/protocol.cjs.js +19 -3
- package/dist/protocol.esm.js +19 -3
- package/dist/vite.cjs.js +17 -3
- package/dist/vite.esm.js +17 -3
- package/package.json +6 -6
- package/skill/skill.json +4 -4
- package/types/index.d.ts +80 -4
- package/types/miniapp-publish/index.d.ts +1 -1
- package/dist/devtools/browser-dev-host/assets/browser-dev-host-Mo7HHCc9.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-zZH5iNv_.js"></script>
|
|
9
|
+
<link rel="modulepreload" crossorigin href="/assets/desktop-app-launch-BElRBLGR.js">
|
|
10
10
|
<link rel="stylesheet" crossorigin href="/assets/index-h-fYisyX.css">
|
|
11
11
|
</head>
|
|
12
12
|
<body>
|
package/dist/index.cjs.js
CHANGED
|
@@ -415,6 +415,10 @@ const COMPANION_SESSION_OWNERSHIP_LOST_EVENT = 'companion.session.ownershipLost'
|
|
|
415
415
|
const WORKSPACE_CARDS_REQUEST_REFRESH_METHOD = 'workspaceCards.requestRefresh';
|
|
416
416
|
const AUTH_GET_ACCOUNT_STATE_METHOD = 'auth.getAccountState';
|
|
417
417
|
const AUTH_LOGIN_METHOD = 'auth.login';
|
|
418
|
+
const GAME_SAVES_LIST_METHOD = 'gameSaves.list';
|
|
419
|
+
const GAME_SAVES_SYNC_METHOD = 'gameSaves.sync';
|
|
420
|
+
const GAME_SAVES_GET_FILE_METHOD = 'gameSaves.getFile';
|
|
421
|
+
const GAME_SAVES_READ_PARSED_DATA_METHOD = 'gameSaves.readParsedData';
|
|
418
422
|
const USER_GET_INFO_METHOD = 'user.getInfo';
|
|
419
423
|
const USER_REVOKE_AUTHORIZATION_METHOD = 'user.revokeAuthorization';
|
|
420
424
|
const USER_GET_STEAM_GAME_LIST_METHOD = 'user.getSteamGameList';
|
|
@@ -840,7 +844,9 @@ function isMiniProgramDirectoryRef(value) {
|
|
|
840
844
|
if (isNonEmptyString$1(value.handleId)) {
|
|
841
845
|
return hasOnlyKeys(value, ['kind', 'handleId']);
|
|
842
846
|
}
|
|
843
|
-
return (isMiniProgramPathRootRef(value.root) &&
|
|
847
|
+
return (isMiniProgramPathRootRef(value.root) &&
|
|
848
|
+
(value.relativePath === '.' || isMiniProgramRelativePath(value.relativePath)) &&
|
|
849
|
+
hasOnlyKeys(value, ['kind', 'root', 'relativePath']));
|
|
844
850
|
}
|
|
845
851
|
/**
|
|
846
852
|
* 判断未知值是否具有文件 descriptor 的最低 wire 结构。
|
|
@@ -1258,6 +1264,7 @@ const MINI_PROGRAM_PERMISSION_KEYS = [
|
|
|
1258
1264
|
'share',
|
|
1259
1265
|
'storage',
|
|
1260
1266
|
'cloud_storage',
|
|
1267
|
+
'gameSaves',
|
|
1261
1268
|
'filesystem',
|
|
1262
1269
|
'media',
|
|
1263
1270
|
'clipboard',
|
|
@@ -7485,7 +7492,7 @@ function createMessageId() {
|
|
|
7485
7492
|
/** 构建时替换为当前发布包的实际版本。 */
|
|
7486
7493
|
const HB_SDK_VERSION = typeof undefined === 'string'
|
|
7487
7494
|
? undefined
|
|
7488
|
-
: '0.9.4
|
|
7495
|
+
: '0.9.4';
|
|
7489
7496
|
|
|
7490
7497
|
const RUNTIME_MODES = new Set(['production', 'preview', 'development', 'unknown']);
|
|
7491
7498
|
const OPERATING_SYSTEM_NAMES = new Set(['android', 'ios', 'ohos', 'windows', 'macos', 'linux', 'unknown']);
|
|
@@ -8474,6 +8481,61 @@ function isMiniProgramFileSystemValue(value) {
|
|
|
8474
8481
|
return !!value && typeof value === 'object' && brandedFileSystemValues.has(value);
|
|
8475
8482
|
}
|
|
8476
8483
|
|
|
8484
|
+
function createGameSavesModule(requester) {
|
|
8485
|
+
return {
|
|
8486
|
+
async list(gameId) {
|
|
8487
|
+
const payload = { gameId };
|
|
8488
|
+
const result = await requester.request(GAME_SAVES_LIST_METHOD, payload);
|
|
8489
|
+
const accountId = result.accountId;
|
|
8490
|
+
return result.saves.map((save) => {
|
|
8491
|
+
const saveId = save.saveId;
|
|
8492
|
+
return {
|
|
8493
|
+
...save,
|
|
8494
|
+
files: save.files.map((file) => {
|
|
8495
|
+
const fileId = file.fileId;
|
|
8496
|
+
return Object.freeze({
|
|
8497
|
+
...file,
|
|
8498
|
+
async downloadFile({ signal } = {}) {
|
|
8499
|
+
const descriptor = await requester.requestOperation(GAME_SAVES_GET_FILE_METHOD, { gameId, accountId, saveId, fileId }, {
|
|
8500
|
+
...(signal ? { signal } : {}),
|
|
8501
|
+
createAbortError: () => createSDKError('DOWNLOAD_CANCELLED', '存档下载已取消'),
|
|
8502
|
+
});
|
|
8503
|
+
if (!descriptor || descriptor.mode !== 'read')
|
|
8504
|
+
throw createSDKError('INVALID_RESPONSE', '存档必须为只读文件');
|
|
8505
|
+
return getFileHandleRegistry(requester).createFile(descriptor);
|
|
8506
|
+
},
|
|
8507
|
+
});
|
|
8508
|
+
}),
|
|
8509
|
+
};
|
|
8510
|
+
});
|
|
8511
|
+
},
|
|
8512
|
+
async getLatestStructuredData(gameId) {
|
|
8513
|
+
const result = await requester.request(GAME_SAVES_READ_PARSED_DATA_METHOD, { gameId });
|
|
8514
|
+
// 旧宿主的 overview 不能作为完整数据交付;只返回公开字段。
|
|
8515
|
+
if (result?.status === 'ready' && result.data && typeof result.data === 'object' && !Array.isArray(result.data)) {
|
|
8516
|
+
return { status: 'ready', data: result.data };
|
|
8517
|
+
}
|
|
8518
|
+
if (result?.status === 'empty' || result?.status === 'unsupported')
|
|
8519
|
+
return { status: result.status };
|
|
8520
|
+
if (result?.status === 'failed' && typeof result.error?.code === 'string' && typeof result.error?.message === 'string') {
|
|
8521
|
+
return { status: 'failed', error: { code: result.error.code, message: result.error.message } };
|
|
8522
|
+
}
|
|
8523
|
+
throw createSDKError('INVALID_RESPONSE', '结构化数据响应不合法');
|
|
8524
|
+
},
|
|
8525
|
+
async sync(gameId, options = {}) {
|
|
8526
|
+
const { signal } = options;
|
|
8527
|
+
const payload = { gameId };
|
|
8528
|
+
const result = await requester.requestOperation(GAME_SAVES_SYNC_METHOD, payload, {
|
|
8529
|
+
...(signal ? { signal } : {}),
|
|
8530
|
+
createAbortError: () => createSDKError('REQUEST_CANCELLED', '已停止等待存档同步'),
|
|
8531
|
+
});
|
|
8532
|
+
if (result?.state !== 'succeeded')
|
|
8533
|
+
throw createSDKError('INVALID_RESPONSE', '同步完成响应不合法');
|
|
8534
|
+
// 成功不返回内部任务阶段;旧宿主的完成响应仍需校验。
|
|
8535
|
+
},
|
|
8536
|
+
};
|
|
8537
|
+
}
|
|
8538
|
+
|
|
8477
8539
|
function normalizeAlias(alias) {
|
|
8478
8540
|
if (typeof alias !== 'string' || !COMPANION_ALIAS_PATTERN.test(alias)) {
|
|
8479
8541
|
throw createSDKError('INVALID_PARAMS', 'alias 必须是规范的 Companion alias');
|
|
@@ -11640,6 +11702,8 @@ class MiniProgramSDK {
|
|
|
11640
11702
|
navigation;
|
|
11641
11703
|
/** 云端数据相关开放能力。 */
|
|
11642
11704
|
cloud;
|
|
11705
|
+
/** 查询、同步并读取当前用户的 Steam 游戏存档。 */
|
|
11706
|
+
gameSaves;
|
|
11643
11707
|
/** 受管桌面程序能力。 */
|
|
11644
11708
|
companion;
|
|
11645
11709
|
/** 当前实例的环境信息。 */
|
|
@@ -11662,6 +11726,7 @@ class MiniProgramSDK {
|
|
|
11662
11726
|
this.device = createDeviceModule(this.client);
|
|
11663
11727
|
this.navigation = createNavigationModule(this.client);
|
|
11664
11728
|
this.cloud = createCloudModule(this.client);
|
|
11729
|
+
this.gameSaves = createGameSavesModule(this.client);
|
|
11665
11730
|
this.companion = createCompanionModule(this.client);
|
|
11666
11731
|
this.environment = createEnvironmentModule(this.client);
|
|
11667
11732
|
}
|
|
@@ -12224,6 +12289,12 @@ const navigation = {
|
|
|
12224
12289
|
openAppPage: (options) => getDefaultSDK().navigation.openAppPage(options),
|
|
12225
12290
|
};
|
|
12226
12291
|
/** 默认 SDK 实例的 cloud 模块。 */
|
|
12292
|
+
/** 当前用户的游戏存档能力。 */
|
|
12293
|
+
const gameSaves = {
|
|
12294
|
+
list: (gameId) => getDefaultSDK().gameSaves.list(gameId),
|
|
12295
|
+
getLatestStructuredData: (gameId) => getDefaultSDK().gameSaves.getLatestStructuredData(gameId),
|
|
12296
|
+
sync: (gameId, options) => getDefaultSDK().gameSaves.sync(gameId, options),
|
|
12297
|
+
};
|
|
12227
12298
|
const cloud = {
|
|
12228
12299
|
leaderboard: {
|
|
12229
12300
|
submit: (options) => getDefaultSDK().cloud.leaderboard.submit(options),
|
|
@@ -12255,9 +12326,9 @@ const environment = {
|
|
|
12255
12326
|
};
|
|
12256
12327
|
/** 默认 SDK 的工作区卡片模块。 */
|
|
12257
12328
|
const workspaceCards = {
|
|
12258
|
-
requestRefresh: options => getDefaultSDK().workspaceCards.requestRefresh(options),
|
|
12329
|
+
requestRefresh: (options) => getDefaultSDK().workspaceCards.requestRefresh(options),
|
|
12259
12330
|
getLaunchContext: () => getDefaultSDK().workspaceCards.getLaunchContext(),
|
|
12260
|
-
onLaunchContextChange: listener => getDefaultSDK().workspaceCards.onLaunchContextChange(listener),
|
|
12331
|
+
onLaunchContextChange: (listener) => getDefaultSDK().workspaceCards.onLaunchContextChange(listener),
|
|
12261
12332
|
};
|
|
12262
12333
|
|
|
12263
12334
|
const hbSDK = {
|
|
@@ -12278,6 +12349,7 @@ const hbSDK = {
|
|
|
12278
12349
|
environment,
|
|
12279
12350
|
navigation,
|
|
12280
12351
|
cloud,
|
|
12352
|
+
gameSaves,
|
|
12281
12353
|
companion,
|
|
12282
12354
|
workspaceCards,
|
|
12283
12355
|
};
|
|
@@ -12292,6 +12364,7 @@ exports.default = hbSDK;
|
|
|
12292
12364
|
exports.device = device;
|
|
12293
12365
|
exports.environment = environment;
|
|
12294
12366
|
exports.files = files;
|
|
12367
|
+
exports.gameSaves = gameSaves;
|
|
12295
12368
|
exports.getHandshakeState = getHandshakeState;
|
|
12296
12369
|
exports.media = media;
|
|
12297
12370
|
exports.navigation = navigation;
|
package/dist/index.esm.js
CHANGED
|
@@ -411,6 +411,10 @@ const COMPANION_SESSION_OWNERSHIP_LOST_EVENT = 'companion.session.ownershipLost'
|
|
|
411
411
|
const WORKSPACE_CARDS_REQUEST_REFRESH_METHOD = 'workspaceCards.requestRefresh';
|
|
412
412
|
const AUTH_GET_ACCOUNT_STATE_METHOD = 'auth.getAccountState';
|
|
413
413
|
const AUTH_LOGIN_METHOD = 'auth.login';
|
|
414
|
+
const GAME_SAVES_LIST_METHOD = 'gameSaves.list';
|
|
415
|
+
const GAME_SAVES_SYNC_METHOD = 'gameSaves.sync';
|
|
416
|
+
const GAME_SAVES_GET_FILE_METHOD = 'gameSaves.getFile';
|
|
417
|
+
const GAME_SAVES_READ_PARSED_DATA_METHOD = 'gameSaves.readParsedData';
|
|
414
418
|
const USER_GET_INFO_METHOD = 'user.getInfo';
|
|
415
419
|
const USER_REVOKE_AUTHORIZATION_METHOD = 'user.revokeAuthorization';
|
|
416
420
|
const USER_GET_STEAM_GAME_LIST_METHOD = 'user.getSteamGameList';
|
|
@@ -836,7 +840,9 @@ function isMiniProgramDirectoryRef(value) {
|
|
|
836
840
|
if (isNonEmptyString$1(value.handleId)) {
|
|
837
841
|
return hasOnlyKeys(value, ['kind', 'handleId']);
|
|
838
842
|
}
|
|
839
|
-
return (isMiniProgramPathRootRef(value.root) &&
|
|
843
|
+
return (isMiniProgramPathRootRef(value.root) &&
|
|
844
|
+
(value.relativePath === '.' || isMiniProgramRelativePath(value.relativePath)) &&
|
|
845
|
+
hasOnlyKeys(value, ['kind', 'root', 'relativePath']));
|
|
840
846
|
}
|
|
841
847
|
/**
|
|
842
848
|
* 判断未知值是否具有文件 descriptor 的最低 wire 结构。
|
|
@@ -1254,6 +1260,7 @@ const MINI_PROGRAM_PERMISSION_KEYS = [
|
|
|
1254
1260
|
'share',
|
|
1255
1261
|
'storage',
|
|
1256
1262
|
'cloud_storage',
|
|
1263
|
+
'gameSaves',
|
|
1257
1264
|
'filesystem',
|
|
1258
1265
|
'media',
|
|
1259
1266
|
'clipboard',
|
|
@@ -7481,7 +7488,7 @@ function createMessageId() {
|
|
|
7481
7488
|
/** 构建时替换为当前发布包的实际版本。 */
|
|
7482
7489
|
const HB_SDK_VERSION = typeof undefined === 'string'
|
|
7483
7490
|
? undefined
|
|
7484
|
-
: '0.9.4
|
|
7491
|
+
: '0.9.4';
|
|
7485
7492
|
|
|
7486
7493
|
const RUNTIME_MODES = new Set(['production', 'preview', 'development', 'unknown']);
|
|
7487
7494
|
const OPERATING_SYSTEM_NAMES = new Set(['android', 'ios', 'ohos', 'windows', 'macos', 'linux', 'unknown']);
|
|
@@ -8470,6 +8477,61 @@ function isMiniProgramFileSystemValue(value) {
|
|
|
8470
8477
|
return !!value && typeof value === 'object' && brandedFileSystemValues.has(value);
|
|
8471
8478
|
}
|
|
8472
8479
|
|
|
8480
|
+
function createGameSavesModule(requester) {
|
|
8481
|
+
return {
|
|
8482
|
+
async list(gameId) {
|
|
8483
|
+
const payload = { gameId };
|
|
8484
|
+
const result = await requester.request(GAME_SAVES_LIST_METHOD, payload);
|
|
8485
|
+
const accountId = result.accountId;
|
|
8486
|
+
return result.saves.map((save) => {
|
|
8487
|
+
const saveId = save.saveId;
|
|
8488
|
+
return {
|
|
8489
|
+
...save,
|
|
8490
|
+
files: save.files.map((file) => {
|
|
8491
|
+
const fileId = file.fileId;
|
|
8492
|
+
return Object.freeze({
|
|
8493
|
+
...file,
|
|
8494
|
+
async downloadFile({ signal } = {}) {
|
|
8495
|
+
const descriptor = await requester.requestOperation(GAME_SAVES_GET_FILE_METHOD, { gameId, accountId, saveId, fileId }, {
|
|
8496
|
+
...(signal ? { signal } : {}),
|
|
8497
|
+
createAbortError: () => createSDKError('DOWNLOAD_CANCELLED', '存档下载已取消'),
|
|
8498
|
+
});
|
|
8499
|
+
if (!descriptor || descriptor.mode !== 'read')
|
|
8500
|
+
throw createSDKError('INVALID_RESPONSE', '存档必须为只读文件');
|
|
8501
|
+
return getFileHandleRegistry(requester).createFile(descriptor);
|
|
8502
|
+
},
|
|
8503
|
+
});
|
|
8504
|
+
}),
|
|
8505
|
+
};
|
|
8506
|
+
});
|
|
8507
|
+
},
|
|
8508
|
+
async getLatestStructuredData(gameId) {
|
|
8509
|
+
const result = await requester.request(GAME_SAVES_READ_PARSED_DATA_METHOD, { gameId });
|
|
8510
|
+
// 旧宿主的 overview 不能作为完整数据交付;只返回公开字段。
|
|
8511
|
+
if (result?.status === 'ready' && result.data && typeof result.data === 'object' && !Array.isArray(result.data)) {
|
|
8512
|
+
return { status: 'ready', data: result.data };
|
|
8513
|
+
}
|
|
8514
|
+
if (result?.status === 'empty' || result?.status === 'unsupported')
|
|
8515
|
+
return { status: result.status };
|
|
8516
|
+
if (result?.status === 'failed' && typeof result.error?.code === 'string' && typeof result.error?.message === 'string') {
|
|
8517
|
+
return { status: 'failed', error: { code: result.error.code, message: result.error.message } };
|
|
8518
|
+
}
|
|
8519
|
+
throw createSDKError('INVALID_RESPONSE', '结构化数据响应不合法');
|
|
8520
|
+
},
|
|
8521
|
+
async sync(gameId, options = {}) {
|
|
8522
|
+
const { signal } = options;
|
|
8523
|
+
const payload = { gameId };
|
|
8524
|
+
const result = await requester.requestOperation(GAME_SAVES_SYNC_METHOD, payload, {
|
|
8525
|
+
...(signal ? { signal } : {}),
|
|
8526
|
+
createAbortError: () => createSDKError('REQUEST_CANCELLED', '已停止等待存档同步'),
|
|
8527
|
+
});
|
|
8528
|
+
if (result?.state !== 'succeeded')
|
|
8529
|
+
throw createSDKError('INVALID_RESPONSE', '同步完成响应不合法');
|
|
8530
|
+
// 成功不返回内部任务阶段;旧宿主的完成响应仍需校验。
|
|
8531
|
+
},
|
|
8532
|
+
};
|
|
8533
|
+
}
|
|
8534
|
+
|
|
8473
8535
|
function normalizeAlias(alias) {
|
|
8474
8536
|
if (typeof alias !== 'string' || !COMPANION_ALIAS_PATTERN.test(alias)) {
|
|
8475
8537
|
throw createSDKError('INVALID_PARAMS', 'alias 必须是规范的 Companion alias');
|
|
@@ -11636,6 +11698,8 @@ class MiniProgramSDK {
|
|
|
11636
11698
|
navigation;
|
|
11637
11699
|
/** 云端数据相关开放能力。 */
|
|
11638
11700
|
cloud;
|
|
11701
|
+
/** 查询、同步并读取当前用户的 Steam 游戏存档。 */
|
|
11702
|
+
gameSaves;
|
|
11639
11703
|
/** 受管桌面程序能力。 */
|
|
11640
11704
|
companion;
|
|
11641
11705
|
/** 当前实例的环境信息。 */
|
|
@@ -11658,6 +11722,7 @@ class MiniProgramSDK {
|
|
|
11658
11722
|
this.device = createDeviceModule(this.client);
|
|
11659
11723
|
this.navigation = createNavigationModule(this.client);
|
|
11660
11724
|
this.cloud = createCloudModule(this.client);
|
|
11725
|
+
this.gameSaves = createGameSavesModule(this.client);
|
|
11661
11726
|
this.companion = createCompanionModule(this.client);
|
|
11662
11727
|
this.environment = createEnvironmentModule(this.client);
|
|
11663
11728
|
}
|
|
@@ -12220,6 +12285,12 @@ const navigation = {
|
|
|
12220
12285
|
openAppPage: (options) => getDefaultSDK().navigation.openAppPage(options),
|
|
12221
12286
|
};
|
|
12222
12287
|
/** 默认 SDK 实例的 cloud 模块。 */
|
|
12288
|
+
/** 当前用户的游戏存档能力。 */
|
|
12289
|
+
const gameSaves = {
|
|
12290
|
+
list: (gameId) => getDefaultSDK().gameSaves.list(gameId),
|
|
12291
|
+
getLatestStructuredData: (gameId) => getDefaultSDK().gameSaves.getLatestStructuredData(gameId),
|
|
12292
|
+
sync: (gameId, options) => getDefaultSDK().gameSaves.sync(gameId, options),
|
|
12293
|
+
};
|
|
12223
12294
|
const cloud = {
|
|
12224
12295
|
leaderboard: {
|
|
12225
12296
|
submit: (options) => getDefaultSDK().cloud.leaderboard.submit(options),
|
|
@@ -12251,9 +12322,9 @@ const environment = {
|
|
|
12251
12322
|
};
|
|
12252
12323
|
/** 默认 SDK 的工作区卡片模块。 */
|
|
12253
12324
|
const workspaceCards = {
|
|
12254
|
-
requestRefresh: options => getDefaultSDK().workspaceCards.requestRefresh(options),
|
|
12325
|
+
requestRefresh: (options) => getDefaultSDK().workspaceCards.requestRefresh(options),
|
|
12255
12326
|
getLaunchContext: () => getDefaultSDK().workspaceCards.getLaunchContext(),
|
|
12256
|
-
onLaunchContextChange: listener => getDefaultSDK().workspaceCards.onLaunchContextChange(listener),
|
|
12327
|
+
onLaunchContextChange: (listener) => getDefaultSDK().workspaceCards.onLaunchContextChange(listener),
|
|
12257
12328
|
};
|
|
12258
12329
|
|
|
12259
12330
|
const hbSDK = {
|
|
@@ -12274,8 +12345,9 @@ const hbSDK = {
|
|
|
12274
12345
|
environment,
|
|
12275
12346
|
navigation,
|
|
12276
12347
|
cloud,
|
|
12348
|
+
gameSaves,
|
|
12277
12349
|
companion,
|
|
12278
12350
|
workspaceCards,
|
|
12279
12351
|
};
|
|
12280
12352
|
|
|
12281
|
-
export { HbMiniProgramNetworkError, HbMiniProgramSDKError, USER_INFO_AUTHORIZATION_SCOPES, auth, cloud, companion, hbSDK as default, device, environment, files, getHandshakeState, media, navigation, network, off, on, onHandshakeStateChange, share, storage, ui, user, viewport, workspaceCards };
|
|
12353
|
+
export { HbMiniProgramNetworkError, HbMiniProgramSDKError, USER_INFO_AUTHORIZATION_SCOPES, auth, cloud, companion, hbSDK as default, device, environment, files, gameSaves, getHandshakeState, media, navigation, network, off, on, onHandshakeStateChange, share, storage, ui, user, viewport, workspaceCards };
|
|
@@ -13,6 +13,7 @@ const MINI_PROGRAM_PERMISSION_KEYS = [
|
|
|
13
13
|
'share',
|
|
14
14
|
'storage',
|
|
15
15
|
'cloud_storage',
|
|
16
|
+
'gameSaves',
|
|
16
17
|
'filesystem',
|
|
17
18
|
'media',
|
|
18
19
|
'clipboard',
|
|
@@ -23,6 +24,16 @@ const MINI_PROGRAM_PERMISSION_KEYS = [
|
|
|
23
24
|
'workspaceCards',
|
|
24
25
|
];
|
|
25
26
|
const MINI_PROGRAM_PERMISSION_CATALOG = [
|
|
27
|
+
{
|
|
28
|
+
key: 'gameSaves',
|
|
29
|
+
name: '游戏存档',
|
|
30
|
+
description: '获取和同步当前用户指定游戏的 Steam 云存档,并读取存档文件,无需单独弹窗确认。',
|
|
31
|
+
access: 'declaration',
|
|
32
|
+
risk: 'high',
|
|
33
|
+
config: {},
|
|
34
|
+
methods: ['gameSaves.list', 'gameSaves.sync', 'gameSaves.getFile', 'gameSaves.readParsedData'],
|
|
35
|
+
conditions: ['需要用户明确授权、有效 Steam 登录和支持文件读取的宿主;可按需读取受支持游戏的已有解析概览,不触发解析。'],
|
|
36
|
+
},
|
|
26
37
|
{
|
|
27
38
|
key: 'userInfo',
|
|
28
39
|
name: '用户信息',
|
|
@@ -188,9 +199,12 @@ const MINI_PROGRAM_PERMISSION_CATALOG = [
|
|
|
188
199
|
conditions: ['最高危险权限:批准后该入口可执行任意协议,并绕过其他 SDK 能力权限及专用授权流程。'],
|
|
189
200
|
},
|
|
190
201
|
{
|
|
191
|
-
key: 'workspaceCards',
|
|
202
|
+
key: 'workspaceCards',
|
|
203
|
+
name: '工作区卡片',
|
|
192
204
|
description: '在已绑定游戏的桌面工作区展示受审核卡片。',
|
|
193
|
-
access: 'platform-approval',
|
|
205
|
+
access: 'platform-approval',
|
|
206
|
+
risk: 'high',
|
|
207
|
+
config: {},
|
|
194
208
|
methods: ['workspaceCards.requestRefresh'],
|
|
195
209
|
conditions: ['需平台批准、Host 支持与有效执行租约;不隐式授予网络或存储权限。'],
|
|
196
210
|
},
|
|
@@ -11,6 +11,7 @@ const MINI_PROGRAM_PERMISSION_KEYS = [
|
|
|
11
11
|
'share',
|
|
12
12
|
'storage',
|
|
13
13
|
'cloud_storage',
|
|
14
|
+
'gameSaves',
|
|
14
15
|
'filesystem',
|
|
15
16
|
'media',
|
|
16
17
|
'clipboard',
|
|
@@ -21,6 +22,16 @@ const MINI_PROGRAM_PERMISSION_KEYS = [
|
|
|
21
22
|
'workspaceCards',
|
|
22
23
|
];
|
|
23
24
|
const MINI_PROGRAM_PERMISSION_CATALOG = [
|
|
25
|
+
{
|
|
26
|
+
key: 'gameSaves',
|
|
27
|
+
name: '游戏存档',
|
|
28
|
+
description: '获取和同步当前用户指定游戏的 Steam 云存档,并读取存档文件,无需单独弹窗确认。',
|
|
29
|
+
access: 'declaration',
|
|
30
|
+
risk: 'high',
|
|
31
|
+
config: {},
|
|
32
|
+
methods: ['gameSaves.list', 'gameSaves.sync', 'gameSaves.getFile', 'gameSaves.readParsedData'],
|
|
33
|
+
conditions: ['需要用户明确授权、有效 Steam 登录和支持文件读取的宿主;可按需读取受支持游戏的已有解析概览,不触发解析。'],
|
|
34
|
+
},
|
|
24
35
|
{
|
|
25
36
|
key: 'userInfo',
|
|
26
37
|
name: '用户信息',
|
|
@@ -186,9 +197,12 @@ const MINI_PROGRAM_PERMISSION_CATALOG = [
|
|
|
186
197
|
conditions: ['最高危险权限:批准后该入口可执行任意协议,并绕过其他 SDK 能力权限及专用授权流程。'],
|
|
187
198
|
},
|
|
188
199
|
{
|
|
189
|
-
key: 'workspaceCards',
|
|
200
|
+
key: 'workspaceCards',
|
|
201
|
+
name: '工作区卡片',
|
|
190
202
|
description: '在已绑定游戏的桌面工作区展示受审核卡片。',
|
|
191
|
-
access: 'platform-approval',
|
|
203
|
+
access: 'platform-approval',
|
|
204
|
+
risk: 'high',
|
|
205
|
+
config: {},
|
|
192
206
|
methods: ['workspaceCards.requestRefresh'],
|
|
193
207
|
conditions: ['需平台批准、Host 支持与有效执行租约;不隐式授予网络或存储权限。'],
|
|
194
208
|
},
|
package/dist/protocol.cjs.js
CHANGED
|
@@ -34,6 +34,10 @@ const MINI_PROGRAM_OPERATION_PROGRESS_METHOD = 'operation.progress';
|
|
|
34
34
|
const WORKSPACE_CARDS_REQUEST_REFRESH_METHOD = 'workspaceCards.requestRefresh';
|
|
35
35
|
const AUTH_GET_ACCOUNT_STATE_METHOD = 'auth.getAccountState';
|
|
36
36
|
const AUTH_LOGIN_METHOD = 'auth.login';
|
|
37
|
+
const GAME_SAVES_LIST_METHOD = 'gameSaves.list';
|
|
38
|
+
const GAME_SAVES_SYNC_METHOD = 'gameSaves.sync';
|
|
39
|
+
const GAME_SAVES_GET_FILE_METHOD = 'gameSaves.getFile';
|
|
40
|
+
const GAME_SAVES_READ_PARSED_DATA_METHOD = 'gameSaves.readParsedData';
|
|
37
41
|
const USER_GET_INFO_METHOD = 'user.getInfo';
|
|
38
42
|
const USER_REVOKE_AUTHORIZATION_METHOD = 'user.revokeAuthorization';
|
|
39
43
|
const USER_GET_STEAM_GAME_LIST_METHOD = 'user.getSteamGameList';
|
|
@@ -108,10 +112,19 @@ const COMPANION_SHOW_NOTIFICATION_METHOD = 'companion.showNotification';
|
|
|
108
112
|
* 仅表示无需 Manifest 权限声明,不表示绕过参数校验、Host 能力、可信手势或业务策略。
|
|
109
113
|
*/
|
|
110
114
|
const MINI_PROGRAM_PROTOCOL_CAPABILITIES = [
|
|
115
|
+
...[GAME_SAVES_LIST_METHOD, GAME_SAVES_SYNC_METHOD, GAME_SAVES_GET_FILE_METHOD, GAME_SAVES_READ_PARSED_DATA_METHOD].map((method) => ({
|
|
116
|
+
method,
|
|
117
|
+
module: 'gameSaves',
|
|
118
|
+
capability: method,
|
|
119
|
+
requirement: { kind: 'all', permissions: ['gameSaves'] },
|
|
120
|
+
risk: 'high',
|
|
121
|
+
})),
|
|
111
122
|
{
|
|
112
|
-
method: WORKSPACE_CARDS_REQUEST_REFRESH_METHOD,
|
|
123
|
+
method: WORKSPACE_CARDS_REQUEST_REFRESH_METHOD,
|
|
124
|
+
module: 'workspaceCards',
|
|
113
125
|
capability: WORKSPACE_CARDS_REQUEST_REFRESH_METHOD,
|
|
114
|
-
requirement: { kind: 'all', permissions: ['workspaceCards'] },
|
|
126
|
+
requirement: { kind: 'all', permissions: ['workspaceCards'] },
|
|
127
|
+
risk: 'high',
|
|
115
128
|
},
|
|
116
129
|
{
|
|
117
130
|
method: AUTH_GET_ACCOUNT_STATE_METHOD,
|
|
@@ -807,7 +820,9 @@ function isMiniProgramDirectoryRef(value) {
|
|
|
807
820
|
if (isNonEmptyString$1(value.handleId)) {
|
|
808
821
|
return hasOnlyKeys(value, ['kind', 'handleId']);
|
|
809
822
|
}
|
|
810
|
-
return (isMiniProgramPathRootRef(value.root) &&
|
|
823
|
+
return (isMiniProgramPathRootRef(value.root) &&
|
|
824
|
+
(value.relativePath === '.' || isMiniProgramRelativePath(value.relativePath)) &&
|
|
825
|
+
hasOnlyKeys(value, ['kind', 'root', 'relativePath']));
|
|
811
826
|
}
|
|
812
827
|
/**
|
|
813
828
|
* 判断未知值是否具有文件 descriptor 的最低 wire 结构。
|
|
@@ -1410,6 +1425,7 @@ const MINI_PROGRAM_PERMISSION_KEYS = [
|
|
|
1410
1425
|
'share',
|
|
1411
1426
|
'storage',
|
|
1412
1427
|
'cloud_storage',
|
|
1428
|
+
'gameSaves',
|
|
1413
1429
|
'filesystem',
|
|
1414
1430
|
'media',
|
|
1415
1431
|
'clipboard',
|
package/dist/protocol.esm.js
CHANGED
|
@@ -32,6 +32,10 @@ const MINI_PROGRAM_OPERATION_PROGRESS_METHOD = 'operation.progress';
|
|
|
32
32
|
const WORKSPACE_CARDS_REQUEST_REFRESH_METHOD = 'workspaceCards.requestRefresh';
|
|
33
33
|
const AUTH_GET_ACCOUNT_STATE_METHOD = 'auth.getAccountState';
|
|
34
34
|
const AUTH_LOGIN_METHOD = 'auth.login';
|
|
35
|
+
const GAME_SAVES_LIST_METHOD = 'gameSaves.list';
|
|
36
|
+
const GAME_SAVES_SYNC_METHOD = 'gameSaves.sync';
|
|
37
|
+
const GAME_SAVES_GET_FILE_METHOD = 'gameSaves.getFile';
|
|
38
|
+
const GAME_SAVES_READ_PARSED_DATA_METHOD = 'gameSaves.readParsedData';
|
|
35
39
|
const USER_GET_INFO_METHOD = 'user.getInfo';
|
|
36
40
|
const USER_REVOKE_AUTHORIZATION_METHOD = 'user.revokeAuthorization';
|
|
37
41
|
const USER_GET_STEAM_GAME_LIST_METHOD = 'user.getSteamGameList';
|
|
@@ -106,10 +110,19 @@ const COMPANION_SHOW_NOTIFICATION_METHOD = 'companion.showNotification';
|
|
|
106
110
|
* 仅表示无需 Manifest 权限声明,不表示绕过参数校验、Host 能力、可信手势或业务策略。
|
|
107
111
|
*/
|
|
108
112
|
const MINI_PROGRAM_PROTOCOL_CAPABILITIES = [
|
|
113
|
+
...[GAME_SAVES_LIST_METHOD, GAME_SAVES_SYNC_METHOD, GAME_SAVES_GET_FILE_METHOD, GAME_SAVES_READ_PARSED_DATA_METHOD].map((method) => ({
|
|
114
|
+
method,
|
|
115
|
+
module: 'gameSaves',
|
|
116
|
+
capability: method,
|
|
117
|
+
requirement: { kind: 'all', permissions: ['gameSaves'] },
|
|
118
|
+
risk: 'high',
|
|
119
|
+
})),
|
|
109
120
|
{
|
|
110
|
-
method: WORKSPACE_CARDS_REQUEST_REFRESH_METHOD,
|
|
121
|
+
method: WORKSPACE_CARDS_REQUEST_REFRESH_METHOD,
|
|
122
|
+
module: 'workspaceCards',
|
|
111
123
|
capability: WORKSPACE_CARDS_REQUEST_REFRESH_METHOD,
|
|
112
|
-
requirement: { kind: 'all', permissions: ['workspaceCards'] },
|
|
124
|
+
requirement: { kind: 'all', permissions: ['workspaceCards'] },
|
|
125
|
+
risk: 'high',
|
|
113
126
|
},
|
|
114
127
|
{
|
|
115
128
|
method: AUTH_GET_ACCOUNT_STATE_METHOD,
|
|
@@ -805,7 +818,9 @@ function isMiniProgramDirectoryRef(value) {
|
|
|
805
818
|
if (isNonEmptyString$1(value.handleId)) {
|
|
806
819
|
return hasOnlyKeys(value, ['kind', 'handleId']);
|
|
807
820
|
}
|
|
808
|
-
return (isMiniProgramPathRootRef(value.root) &&
|
|
821
|
+
return (isMiniProgramPathRootRef(value.root) &&
|
|
822
|
+
(value.relativePath === '.' || isMiniProgramRelativePath(value.relativePath)) &&
|
|
823
|
+
hasOnlyKeys(value, ['kind', 'root', 'relativePath']));
|
|
809
824
|
}
|
|
810
825
|
/**
|
|
811
826
|
* 判断未知值是否具有文件 descriptor 的最低 wire 结构。
|
|
@@ -1408,6 +1423,7 @@ const MINI_PROGRAM_PERMISSION_KEYS = [
|
|
|
1408
1423
|
'share',
|
|
1409
1424
|
'storage',
|
|
1410
1425
|
'cloud_storage',
|
|
1426
|
+
'gameSaves',
|
|
1411
1427
|
'filesystem',
|
|
1412
1428
|
'media',
|
|
1413
1429
|
'clipboard',
|
package/dist/vite.cjs.js
CHANGED
|
@@ -63,6 +63,7 @@ const MINI_PROGRAM_PERMISSION_KEYS = [
|
|
|
63
63
|
'share',
|
|
64
64
|
'storage',
|
|
65
65
|
'cloud_storage',
|
|
66
|
+
'gameSaves',
|
|
66
67
|
'filesystem',
|
|
67
68
|
'media',
|
|
68
69
|
'clipboard',
|
|
@@ -73,6 +74,16 @@ const MINI_PROGRAM_PERMISSION_KEYS = [
|
|
|
73
74
|
'workspaceCards',
|
|
74
75
|
];
|
|
75
76
|
const MINI_PROGRAM_PERMISSION_CATALOG = [
|
|
77
|
+
{
|
|
78
|
+
key: 'gameSaves',
|
|
79
|
+
name: '游戏存档',
|
|
80
|
+
description: '获取和同步当前用户指定游戏的 Steam 云存档,并读取存档文件,无需单独弹窗确认。',
|
|
81
|
+
access: 'declaration',
|
|
82
|
+
risk: 'high',
|
|
83
|
+
config: {},
|
|
84
|
+
methods: ['gameSaves.list', 'gameSaves.sync', 'gameSaves.getFile', 'gameSaves.readParsedData'],
|
|
85
|
+
conditions: ['需要用户明确授权、有效 Steam 登录和支持文件读取的宿主;可按需读取受支持游戏的已有解析概览,不触发解析。'],
|
|
86
|
+
},
|
|
76
87
|
{
|
|
77
88
|
key: 'userInfo',
|
|
78
89
|
name: '用户信息',
|
|
@@ -238,9 +249,12 @@ const MINI_PROGRAM_PERMISSION_CATALOG = [
|
|
|
238
249
|
conditions: ['最高危险权限:批准后该入口可执行任意协议,并绕过其他 SDK 能力权限及专用授权流程。'],
|
|
239
250
|
},
|
|
240
251
|
{
|
|
241
|
-
key: 'workspaceCards',
|
|
252
|
+
key: 'workspaceCards',
|
|
253
|
+
name: '工作区卡片',
|
|
242
254
|
description: '在已绑定游戏的桌面工作区展示受审核卡片。',
|
|
243
|
-
access: 'platform-approval',
|
|
255
|
+
access: 'platform-approval',
|
|
256
|
+
risk: 'high',
|
|
257
|
+
config: {},
|
|
244
258
|
methods: ['workspaceCards.requestRefresh'],
|
|
245
259
|
conditions: ['需平台批准、Host 支持与有效执行租约;不隐式授予网络或存储权限。'],
|
|
246
260
|
},
|
|
@@ -10315,7 +10329,7 @@ async function ensureBasicInfoDirectory(rootPath, relative) {
|
|
|
10315
10329
|
/** 构建时替换为当前发布包的实际版本。 */
|
|
10316
10330
|
const HB_SDK_VERSION = typeof undefined === 'string'
|
|
10317
10331
|
? undefined
|
|
10318
|
-
: '0.9.4
|
|
10332
|
+
: '0.9.4';
|
|
10319
10333
|
|
|
10320
10334
|
/**
|
|
10321
10335
|
* iframe 与调试台页面的开发期 console 捕获转发。
|
package/dist/vite.esm.js
CHANGED
|
@@ -60,6 +60,7 @@ const MINI_PROGRAM_PERMISSION_KEYS = [
|
|
|
60
60
|
'share',
|
|
61
61
|
'storage',
|
|
62
62
|
'cloud_storage',
|
|
63
|
+
'gameSaves',
|
|
63
64
|
'filesystem',
|
|
64
65
|
'media',
|
|
65
66
|
'clipboard',
|
|
@@ -70,6 +71,16 @@ const MINI_PROGRAM_PERMISSION_KEYS = [
|
|
|
70
71
|
'workspaceCards',
|
|
71
72
|
];
|
|
72
73
|
const MINI_PROGRAM_PERMISSION_CATALOG = [
|
|
74
|
+
{
|
|
75
|
+
key: 'gameSaves',
|
|
76
|
+
name: '游戏存档',
|
|
77
|
+
description: '获取和同步当前用户指定游戏的 Steam 云存档,并读取存档文件,无需单独弹窗确认。',
|
|
78
|
+
access: 'declaration',
|
|
79
|
+
risk: 'high',
|
|
80
|
+
config: {},
|
|
81
|
+
methods: ['gameSaves.list', 'gameSaves.sync', 'gameSaves.getFile', 'gameSaves.readParsedData'],
|
|
82
|
+
conditions: ['需要用户明确授权、有效 Steam 登录和支持文件读取的宿主;可按需读取受支持游戏的已有解析概览,不触发解析。'],
|
|
83
|
+
},
|
|
73
84
|
{
|
|
74
85
|
key: 'userInfo',
|
|
75
86
|
name: '用户信息',
|
|
@@ -235,9 +246,12 @@ const MINI_PROGRAM_PERMISSION_CATALOG = [
|
|
|
235
246
|
conditions: ['最高危险权限:批准后该入口可执行任意协议,并绕过其他 SDK 能力权限及专用授权流程。'],
|
|
236
247
|
},
|
|
237
248
|
{
|
|
238
|
-
key: 'workspaceCards',
|
|
249
|
+
key: 'workspaceCards',
|
|
250
|
+
name: '工作区卡片',
|
|
239
251
|
description: '在已绑定游戏的桌面工作区展示受审核卡片。',
|
|
240
|
-
access: 'platform-approval',
|
|
252
|
+
access: 'platform-approval',
|
|
253
|
+
risk: 'high',
|
|
254
|
+
config: {},
|
|
241
255
|
methods: ['workspaceCards.requestRefresh'],
|
|
242
256
|
conditions: ['需平台批准、Host 支持与有效执行租约;不隐式授予网络或存储权限。'],
|
|
243
257
|
},
|
|
@@ -10312,7 +10326,7 @@ async function ensureBasicInfoDirectory(rootPath, relative) {
|
|
|
10312
10326
|
/** 构建时替换为当前发布包的实际版本。 */
|
|
10313
10327
|
const HB_SDK_VERSION = typeof undefined === 'string'
|
|
10314
10328
|
? undefined
|
|
10315
|
-
: '0.9.4
|
|
10329
|
+
: '0.9.4';
|
|
10316
10330
|
|
|
10317
10331
|
/**
|
|
10318
10332
|
* iframe 与调试台页面的开发期 console 捕获转发。
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@heybox/hb-sdk",
|
|
3
|
-
"version": "0.9.4
|
|
3
|
+
"version": "0.9.4",
|
|
4
4
|
"sideEffects": [
|
|
5
5
|
"./src/index.ts",
|
|
6
6
|
"./src/core/singleton.ts",
|
|
@@ -76,7 +76,7 @@
|
|
|
76
76
|
"undici": "^7.28.0",
|
|
77
77
|
"ws": "^8.18.0",
|
|
78
78
|
"sharp": "^0.34.5",
|
|
79
|
-
"@heybox/hb-sdk-protocol": "0.9.4
|
|
79
|
+
"@heybox/hb-sdk-protocol": "0.9.4"
|
|
80
80
|
},
|
|
81
81
|
"peerDependencies": {
|
|
82
82
|
"vite": ">=5"
|
|
@@ -128,13 +128,13 @@
|
|
|
128
128
|
"vitest": "^3.2.4",
|
|
129
129
|
"@ai-desktop/view-contract": "file:../hb-sdk-protocol/vendor/view-contract-2.2.2-6ac49bbf6410.tgz",
|
|
130
130
|
"rollup-plugin-dts": "6.4.0",
|
|
131
|
-
"@heybox-domain/heybox-vue3-ui": "~0.1.0",
|
|
132
131
|
"@heybox-domain/heybox-theme": "~0.1.0",
|
|
132
|
+
"@heybox/hb-sdk-runtime": "~0.9.4",
|
|
133
|
+
"@heybox-domain/heybox-vue3-ui": "~0.1.0",
|
|
133
134
|
"@heybox/hb-api": "~1.28.19",
|
|
134
|
-
"@heybox/hb-sdk-runtime": "~0.9.4-alpha.5",
|
|
135
135
|
"@heybox/runtime": "~0.2.1",
|
|
136
|
-
"@heybox/runtime-
|
|
137
|
-
"@heybox/runtime-
|
|
136
|
+
"@heybox/runtime-transport-fetch": "~0.2.1",
|
|
137
|
+
"@heybox/runtime-policy": "~0.2.1"
|
|
138
138
|
},
|
|
139
139
|
"publishConfig": {
|
|
140
140
|
"registry": "https://registry.npmjs.org/",
|
package/skill/skill.json
CHANGED
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "hb-sdk",
|
|
3
|
-
"skillVersion": "0.9.4
|
|
3
|
+
"skillVersion": "0.9.4+skill.d0d502673711",
|
|
4
4
|
"sdk": {
|
|
5
5
|
"package": "@heybox/hb-sdk",
|
|
6
|
-
"version": "0.9.4
|
|
7
|
-
"compatibility": "0.9.4
|
|
6
|
+
"version": "0.9.4",
|
|
7
|
+
"compatibility": "0.9.4"
|
|
8
8
|
},
|
|
9
9
|
"distribution": {
|
|
10
10
|
"type": "npm",
|
|
11
11
|
"package": "@heybox/hb-sdk",
|
|
12
|
-
"version": "0.9.4
|
|
12
|
+
"version": "0.9.4",
|
|
13
13
|
"path": "skill"
|
|
14
14
|
},
|
|
15
15
|
"integrity": "sha256-d0d502673711f5d077ee62e657749125788e396d5203894b7077dfe866fd2990"
|