@heybox/hb-sdk 0.6.8-alpha.1 → 0.6.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 +48 -0
- package/README.md +2 -0
- package/dist/cli-chunks/{build-Do18KfQL.cjs → build-D4crgajb.cjs} +29 -25
- package/dist/cli-chunks/{context-CQ5481xZ.cjs → context-fRWWSXDj.cjs} +122 -23
- package/dist/cli-chunks/{create-BU7nViJ9.cjs → create-BU_EFgDz.cjs} +1 -1
- package/dist/cli-chunks/{dev-DJY-_cK4.cjs → dev-BrkChQ7v.cjs} +142 -108
- package/dist/cli-chunks/{doctor-BduOKHnV.cjs → doctor-DZXVO4rL.cjs} +1 -1
- package/dist/cli-chunks/{index-e2GK8bAH.cjs → index-CSjJrnkO.cjs} +14 -14
- package/dist/cli-chunks/{index-BVNo9ygg.cjs → index-DxH41nsb.cjs} +3 -3
- package/dist/cli-chunks/{login-C2wtKo_W.cjs → login-DLVozxrs.cjs} +2 -2
- package/dist/cli-chunks/{project-vite-D769ezhw.cjs → project-vite-CwmMfCk3.cjs} +1 -1
- package/dist/cli-chunks/{remote-Cf4i1DSL.cjs → remote-CfpkkC9I.cjs} +40 -22
- package/dist/cli-chunks/{runtime-gate-DfMJQGH9.cjs → runtime-gate-CgN_v4Te.cjs} +3 -3
- package/dist/cli-chunks/{index-v4-6fbXX.cjs → runtime-permission-env-B0jK9Rt1.cjs} +71 -0
- package/dist/cli-chunks/{session-z1D8xVrB.cjs → session-DB7ARwm4.cjs} +1 -1
- package/dist/cli.cjs +1 -1
- package/dist/devtools/mock-host/main.js +609 -6
- package/dist/index.cjs.js +403 -7
- package/dist/index.esm.js +403 -7
- package/dist/vite.cjs.js +17 -2
- package/dist/vite.esm.js +17 -2
- package/package.json +2 -2
- package/skill/SKILL.md +7 -6
- package/skill/references/api-root.md +7 -2
- package/skill/references/cli.md +4 -0
- package/skill/references/examples.md +17 -2
- package/skill/references/safety-boundaries.md +2 -0
- package/skill/scripts/sync-references.mjs +17 -2
- package/skill/skill.json +4 -4
- package/types/core/network-sanitize.d.ts +31 -0
- package/types/modules/network/index.d.ts +2 -0
- package/types/modules/network/observability.d.ts +39 -0
- package/types/modules/network/request-shape.d.ts +44 -0
- package/types/vite/html-policy.d.ts +1 -0
- package/types/vite/runtime-permission-env.d.ts +9 -0
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,53 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 0.6.8
|
|
4
|
+
|
|
5
|
+
### SDK
|
|
6
|
+
|
|
7
|
+
- `network.request` 增加脱敏诊断日志和更完整的错误上下文,覆盖 HTTP 非 2xx、无效响应及 bridge/runtime 错误;业务应继续通过错误类型与结构化字段判断失败。
|
|
8
|
+
- `network.request` 在 SDK、Mock Host 和 Mock 网络代理中统一拒绝 `multipart/form-data`,并提示改用 form-urlencoded、JSON 或专用上传能力。
|
|
9
|
+
|
|
10
|
+
### Build and CLI
|
|
11
|
+
|
|
12
|
+
- `hb-sdk dev` 与 `hb-sdk remote deploy` 在远端已启用 `network.request` 且 `useOfficialDomain=true` 时跳过平台 CSP;普通 build、匿名或异常权限快照继续 fail closed 注入。
|
|
13
|
+
|
|
14
|
+
### Runtime
|
|
15
|
+
|
|
16
|
+
- Runtime 为 `network.request` 参数校验、adapter 失败与非 2xx 响应增加脱敏诊断,并同步拒绝 multipart 请求;非 2xx 响应继续保持 bridge success 语义。
|
|
17
|
+
- Runtime 默认分享链接保留当前 Host `h_src`,并在小程序加载成功时上报 `h_src` 与 `h_src_parent`,不改变 SDK 公共 API。
|
|
18
|
+
|
|
19
|
+
### Docs / Agent Skill
|
|
20
|
+
|
|
21
|
+
- 精简外部开发者 README 并拆分详细参考内容;npm 包显式包含 README 与共同 Changelog。
|
|
22
|
+
- 同步公开 Agent Skill references、SDK compatibility、版本元数据与 integrity 至 0.6.8。
|
|
23
|
+
|
|
24
|
+
## 0.6.8-alpha.4
|
|
25
|
+
|
|
26
|
+
### Build and CLI
|
|
27
|
+
|
|
28
|
+
- 恢复远端官方域名网络权限项目的 CSP 兼容行为:`hb-sdk dev` 与 `hb-sdk remote deploy` 在 `network.request.status=enabled` 且 `useOfficialDomain=true` 时跳过平台 CSP,其他场景继续 fail closed 注入。
|
|
29
|
+
|
|
30
|
+
## 0.6.8-alpha.3
|
|
31
|
+
|
|
32
|
+
### SDK
|
|
33
|
+
|
|
34
|
+
- `network.request` 失败时输出脱敏诊断日志,覆盖 HTTP 非 2xx、无效响应与 bridge/runtime 错误;`HbMiniProgramNetworkError` 文案补充 statusText/method/url(message 为诊断字符串,业务请用 `instanceof` + `status`/`data` 等字段,勿精确匹配全文) (@heybox/hb-sdk).
|
|
35
|
+
- 诊断日志与错误文案统一脱敏:敏感 header/query/body 字段、URL userinfo;Mock Host / mock network proxy 复用同一套脱敏原语 (@heybox/hb-sdk).
|
|
36
|
+
- 日志前缀:`[hb-sdk][network.request]` / `[hb-sdk][mock-host][network.request]` / `[hb-sdk][mock-network]` (@heybox/hb-sdk).
|
|
37
|
+
- `network.request` 提前拒绝 `multipart/form-data`(含手写 boundary body),以 `INVALID_PARAMS` 给出可操作中文说明;Mock 网络代理同步拒绝,避免本地 fetch 能通、App Host heybox 代发失败 (@heybox/hb-sdk).
|
|
38
|
+
- `HbMiniProgramNetworkError` 识别宿主伪装的 `network_error` / `unsupported-request-shape` 失败,在 message 中标明“非目标站 HTTP 状态”并补充 form/json 用法提示 (@heybox/hb-sdk).
|
|
39
|
+
|
|
40
|
+
### Runtime
|
|
41
|
+
|
|
42
|
+
- Runtime 侧记录 `network.request` 参数校验失败、adapter 失败与非 2xx 诊断日志(前缀 `[hb-sdk-runtime][network.request]`;非 2xx 仍保持 bridge success) (@heybox/hb-sdk-runtime).
|
|
43
|
+
- Runtime 参数校验同步拒绝 multipart,避免落到 heybox transport 后变成含糊的 500 `network_error` (@heybox/hb-sdk-runtime).
|
|
44
|
+
|
|
45
|
+
## 0.6.8-alpha.2
|
|
46
|
+
|
|
47
|
+
### Docs / Agent Skill
|
|
48
|
+
|
|
49
|
+
- 同步 Agent skill 元数据与 integrity 至 package 版本 0.6.8-alpha.2 (@heybox/hb-sdk).
|
|
50
|
+
|
|
3
51
|
## 0.6.8-alpha.0
|
|
4
52
|
|
|
5
53
|
### Docs / Agent Skill
|
package/README.md
CHANGED
|
@@ -97,6 +97,8 @@ try {
|
|
|
97
97
|
- `auth.login()` 只能由明确的用户操作触发,不要在页面初始化时自动登录。
|
|
98
98
|
- `on()` 返回取消监听函数,组件卸载或页面销毁时需要调用。
|
|
99
99
|
- 业务网络请求使用 `network.request()`,不要依赖浏览器原生网络出口。
|
|
100
|
+
- `network.request` 不支持 `multipart/form-data`;App Host 仅支持 form(`application/x-www-form-urlencoded`)与 JSON。表单请用 `URLSearchParams#toString()` 作为 `data`,文件上传请走专用上传能力。
|
|
101
|
+
- 仅当远端已启用 `network.request` 且 `useOfficialDomain=true` 时,`hb-sdk dev` 与 `hb-sdk remote deploy` 构建才会跳过平台 CSP;其他构建继续注入平台 CSP。
|
|
100
102
|
- 构建必须启用 `miniappManifest()`,推荐统一使用 `hb-sdk build`。
|
|
101
103
|
|
|
102
104
|
## CLI 主流程
|
|
@@ -3,10 +3,11 @@
|
|
|
3
3
|
var fs$1 = require('node:fs');
|
|
4
4
|
var fs = require('node:fs/promises');
|
|
5
5
|
var path = require('node:path');
|
|
6
|
-
var
|
|
7
|
-
var runtimeGate = require('./runtime-gate-
|
|
8
|
-
var index = require('./index-
|
|
9
|
-
var projectVite = require('./project-vite-
|
|
6
|
+
var runtimePermissionEnv = require('./runtime-permission-env-B0jK9Rt1.cjs');
|
|
7
|
+
var runtimeGate = require('./runtime-gate-CgN_v4Te.cjs');
|
|
8
|
+
var index = require('./index-CSjJrnkO.cjs');
|
|
9
|
+
var projectVite = require('./project-vite-CwmMfCk3.cjs');
|
|
10
|
+
require('node:async_hooks');
|
|
10
11
|
require('node:module');
|
|
11
12
|
require('path');
|
|
12
13
|
require('os');
|
|
@@ -25,25 +26,28 @@ async function runBuildCommand(_options = {}, runtime = {}) {
|
|
|
25
26
|
const distDir = path.join(projectRoot, 'dist');
|
|
26
27
|
const env = runtime.env ?? process.env;
|
|
27
28
|
const mode = env.HB_SDK_ENV?.trim() || undefined;
|
|
29
|
+
const skipPlatformCsp = runtimePermissionEnv.shouldSkipMiniappPlatformCspFromEnv(env);
|
|
28
30
|
await fs.rm(distDir, { force: true, recursive: true });
|
|
29
31
|
try {
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
32
|
+
return await runtimePermissionEnv.withMiniappPlatformCspEnv(skipPlatformCsp, async () => {
|
|
33
|
+
const vite = await logger.task('正在加载项目 Vite', () => projectVite.loadProjectVite(projectRoot), {
|
|
34
|
+
successText: '已加载项目 Vite',
|
|
35
|
+
});
|
|
36
|
+
await logger.task('正在构建小程序', () => vite.build({
|
|
37
|
+
root: projectRoot,
|
|
38
|
+
...(mode ? { mode } : {}),
|
|
39
|
+
plugins: [createFixedBuildOutputPlugin(projectRoot)],
|
|
40
|
+
build: {
|
|
41
|
+
outDir: 'dist',
|
|
42
|
+
emptyOutDir: true,
|
|
43
|
+
watch: null,
|
|
44
|
+
write: true,
|
|
45
|
+
},
|
|
46
|
+
}), { successText: 'Vite 构建完成' });
|
|
47
|
+
const result = await validateBuildOutput(projectRoot, logger);
|
|
48
|
+
logger.success(`构建完成: dist/ | manifest version ${result.version} | sdkVersion ${result.sdkVersion} | 待上传文件 ${result.fileCount} 个 | ${formatSize(result.totalBytes)}`);
|
|
49
|
+
return result;
|
|
50
|
+
}, env);
|
|
47
51
|
}
|
|
48
52
|
catch (error) {
|
|
49
53
|
await fs.rm(distDir, { force: true, recursive: true });
|
|
@@ -89,8 +93,8 @@ async function validateBuildOutput(projectRoot, logger) {
|
|
|
89
93
|
}
|
|
90
94
|
const { sdkVersion, version } = runtimeGate.validateMiniappManifestForDeploy(manifest);
|
|
91
95
|
const allFiles = await walkDistFiles(distDir);
|
|
92
|
-
const uploadFiles = allFiles.filter((file) =>
|
|
93
|
-
const sizeError =
|
|
96
|
+
const uploadFiles = allFiles.filter((file) => runtimePermissionEnv.shouldUploadDistFile(file.relativePath));
|
|
97
|
+
const sizeError = runtimePermissionEnv.validateUploadTotalSize(uploadFiles);
|
|
94
98
|
if (sizeError) {
|
|
95
99
|
throw new Error(sizeError.replace('重新 deploy', '重新 build'));
|
|
96
100
|
}
|
|
@@ -110,12 +114,12 @@ async function walkDistFiles(distDir) {
|
|
|
110
114
|
const entries = await fs.readdir(absDir, { withFileTypes: true });
|
|
111
115
|
for (const entry of entries) {
|
|
112
116
|
const absPath = path.join(absDir, entry.name);
|
|
113
|
-
const relPath =
|
|
117
|
+
const relPath = runtimePermissionEnv.normalizeRelativePath(relDir ? `${relDir}/${entry.name}` : entry.name);
|
|
114
118
|
const link = await fs.lstat(absPath);
|
|
115
119
|
if (link.isSymbolicLink()) {
|
|
116
120
|
throw new Error(`dist 目录包含 symlink,拒绝处理:${relPath}`);
|
|
117
121
|
}
|
|
118
|
-
if (
|
|
122
|
+
if (runtimePermissionEnv.relativePathContainsNodeModulesSegment(relPath)) {
|
|
119
123
|
throw new Error(`dist 目录含 node_modules:${relPath}`);
|
|
120
124
|
}
|
|
121
125
|
if (entry.isDirectory()) {
|
|
@@ -1,11 +1,106 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var session = require('./session-
|
|
4
|
-
var
|
|
3
|
+
var session = require('./session-DB7ARwm4.cjs');
|
|
4
|
+
var runtimePermissionEnv = require('./runtime-permission-env-B0jK9Rt1.cjs');
|
|
5
5
|
var fs$1 = require('node:fs');
|
|
6
6
|
var fs = require('node:fs/promises');
|
|
7
7
|
var path = require('node:path');
|
|
8
8
|
|
|
9
|
+
const MANAGED_RUNTIME_PERMISSION_KEYS = new Set(['network.request']);
|
|
10
|
+
/**
|
|
11
|
+
* 判断 permission key 是否由 Runtime 权限快照管理。
|
|
12
|
+
*
|
|
13
|
+
* @param key 待判断的 permission key。
|
|
14
|
+
* @returns 该 key 需要读取 Runtime 权限快照时返回 `true`。
|
|
15
|
+
*/
|
|
16
|
+
function isManagedMiniProgramRuntimePermissionKey(key) {
|
|
17
|
+
return MANAGED_RUNTIME_PERMISSION_KEYS.has(key);
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* 解析服务端权限快照;格式不完整时整份快照失效并 fail closed。
|
|
21
|
+
*
|
|
22
|
+
* @param snapshot 待校验的服务端权限快照。
|
|
23
|
+
* @returns 解析状态和通过校验的受管权限。
|
|
24
|
+
*/
|
|
25
|
+
function parseMiniProgramRuntimePermissions(snapshot) {
|
|
26
|
+
if (!isRecord(snapshot) || snapshot.schema_version !== 1 || !Array.isArray(snapshot.entries)) {
|
|
27
|
+
return { valid: false, permissions: {} };
|
|
28
|
+
}
|
|
29
|
+
if (snapshot.revision !== undefined && (typeof snapshot.revision !== 'number' || !Number.isInteger(snapshot.revision) || snapshot.revision < 0)) {
|
|
30
|
+
return { valid: false, permissions: {} };
|
|
31
|
+
}
|
|
32
|
+
const seenKeys = new Set();
|
|
33
|
+
const permissions = {};
|
|
34
|
+
for (const rawEntry of snapshot.entries) {
|
|
35
|
+
if (!isRecord(rawEntry) || typeof rawEntry.key !== 'string' || !rawEntry.key.trim()) {
|
|
36
|
+
return { valid: false, permissions: {} };
|
|
37
|
+
}
|
|
38
|
+
const key = rawEntry.key.trim();
|
|
39
|
+
if (seenKeys.has(key) || (rawEntry.status !== 'enabled' && rawEntry.status !== 'disabled') || !isRecord(rawEntry.config)) {
|
|
40
|
+
return { valid: false, permissions: {} };
|
|
41
|
+
}
|
|
42
|
+
seenKeys.add(key);
|
|
43
|
+
if (!isManagedMiniProgramRuntimePermissionKey(key)) {
|
|
44
|
+
continue;
|
|
45
|
+
}
|
|
46
|
+
if (key === 'network.request' && typeof rawEntry.config.useOfficialDomain !== 'boolean') {
|
|
47
|
+
return { valid: false, permissions: {} };
|
|
48
|
+
}
|
|
49
|
+
permissions[key] = {
|
|
50
|
+
key,
|
|
51
|
+
status: rawEntry.status,
|
|
52
|
+
config: { useOfficialDomain: rawEntry.config.useOfficialDomain },
|
|
53
|
+
};
|
|
54
|
+
}
|
|
55
|
+
return { valid: true, permissions };
|
|
56
|
+
}
|
|
57
|
+
function isRecord(value) {
|
|
58
|
+
return typeof value === 'object' && value !== null && !Array.isArray(value);
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
function shouldSkipMiniappPlatformCsp(runtimePermissions) {
|
|
62
|
+
const parsed = parseMiniProgramRuntimePermissions(runtimePermissions);
|
|
63
|
+
const networkRequest = parsed.permissions['network.request'];
|
|
64
|
+
return parsed.valid && networkRequest?.status === 'enabled' && networkRequest.config.useOfficialDomain === true;
|
|
65
|
+
}
|
|
66
|
+
const DEFAULT_PERMISSION_STATE = {
|
|
67
|
+
networkRequest: {
|
|
68
|
+
status: 'disabled',
|
|
69
|
+
useOfficialDomain: false,
|
|
70
|
+
},
|
|
71
|
+
};
|
|
72
|
+
function createMiniProgramMockPermissionState(context) {
|
|
73
|
+
const parsed = parseMiniProgramRuntimePermissions(context.runtimePermissions);
|
|
74
|
+
const networkRequest = parsed.permissions['network.request'];
|
|
75
|
+
return parsed.valid && networkRequest
|
|
76
|
+
? {
|
|
77
|
+
networkRequest: {
|
|
78
|
+
status: networkRequest.status,
|
|
79
|
+
useOfficialDomain: networkRequest.config.useOfficialDomain === true,
|
|
80
|
+
},
|
|
81
|
+
}
|
|
82
|
+
: cloneDefaultPermissionState();
|
|
83
|
+
}
|
|
84
|
+
function createMiniProgramMockRuntimePermissions(state) {
|
|
85
|
+
return {
|
|
86
|
+
schema_version: 1,
|
|
87
|
+
entries: [
|
|
88
|
+
{
|
|
89
|
+
key: 'network.request',
|
|
90
|
+
status: state.networkRequest.status,
|
|
91
|
+
config: {
|
|
92
|
+
useOfficialDomain: state.networkRequest.useOfficialDomain,
|
|
93
|
+
},
|
|
94
|
+
},
|
|
95
|
+
],
|
|
96
|
+
};
|
|
97
|
+
}
|
|
98
|
+
function cloneDefaultPermissionState() {
|
|
99
|
+
return {
|
|
100
|
+
networkRequest: { ...DEFAULT_PERMISSION_STATE.networkRequest },
|
|
101
|
+
};
|
|
102
|
+
}
|
|
103
|
+
|
|
9
104
|
function createRemoteApiClient(options) {
|
|
10
105
|
return {
|
|
11
106
|
listDeveloperEntities: () => listDeveloperEntities(options),
|
|
@@ -32,74 +127,74 @@ function createRemoteApiClient(options) {
|
|
|
32
127
|
};
|
|
33
128
|
}
|
|
34
129
|
async function listDeveloperEntities(runtime) {
|
|
35
|
-
return remoteGet(
|
|
130
|
+
return remoteGet(runtimePermissionEnv.DEVELOPER_ENTITY_LIST_API_PATH, {}, runtime);
|
|
36
131
|
}
|
|
37
132
|
async function switchDeveloperEntity(options, runtime) {
|
|
38
|
-
return (await remotePostForm(
|
|
133
|
+
return (await remotePostForm(runtimePermissionEnv.DEVELOPER_ENTITY_SWITCH_API_PATH, options, runtime, { requireResult: false })) ?? {};
|
|
39
134
|
}
|
|
40
135
|
async function getDeveloperAccessStatus(runtime) {
|
|
41
|
-
return remoteGet(
|
|
136
|
+
return remoteGet(runtimePermissionEnv.USER_MINIPROGRAM_ACCESS_STATUS_API_PATH, {}, runtime);
|
|
42
137
|
}
|
|
43
138
|
async function listUserMiniprograms(options, runtime) {
|
|
44
|
-
return remoteGet(
|
|
139
|
+
return remoteGet(runtimePermissionEnv.LIST_USER_MINIPROGRAM_API_PATH, options, runtime);
|
|
45
140
|
}
|
|
46
141
|
async function createUserMiniprogram(runtime) {
|
|
47
|
-
return remotePostForm(
|
|
142
|
+
return remotePostForm(runtimePermissionEnv.CREATE_USER_MINIPROGRAM_API_PATH, {}, runtime);
|
|
48
143
|
}
|
|
49
144
|
async function getUserMiniprogramDetail(options, runtime) {
|
|
50
|
-
return remoteGet(
|
|
145
|
+
return remoteGet(runtimePermissionEnv.DETAIL_USER_MINIPROGRAM_API_PATH, options, runtime);
|
|
51
146
|
}
|
|
52
147
|
async function getPreviewAllowlist(options, runtime) {
|
|
53
|
-
return remoteGet(
|
|
148
|
+
return remoteGet(runtimePermissionEnv.USER_MINIPROGRAM_PREVIEW_ALLOWLIST_API_PATH, options, runtime);
|
|
54
149
|
}
|
|
55
150
|
async function updatePreviewAllowlist(options, runtime) {
|
|
56
|
-
return remotePostForm(
|
|
151
|
+
return remotePostForm(runtimePermissionEnv.UPDATE_USER_MINIPROGRAM_PREVIEW_ALLOWLIST_API_PATH, options, runtime);
|
|
57
152
|
}
|
|
58
153
|
async function createUserMiniprogramLeaderboard(options, runtime) {
|
|
59
|
-
return remotePostForm(
|
|
154
|
+
return remotePostForm(runtimePermissionEnv.CREATE_USER_MINIPROGRAM_LEADERBOARD_API_PATH, options, runtime);
|
|
60
155
|
}
|
|
61
156
|
async function getUserMiniprogramLeaderboard(options, runtime) {
|
|
62
|
-
return remoteGet(
|
|
157
|
+
return remoteGet(runtimePermissionEnv.DETAIL_USER_MINIPROGRAM_LEADERBOARD_API_PATH, options, runtime);
|
|
63
158
|
}
|
|
64
159
|
async function listUserMiniprogramLeaderboards(options, runtime) {
|
|
65
|
-
return remoteGet(
|
|
160
|
+
return remoteGet(runtimePermissionEnv.LIST_USER_MINIPROGRAM_LEADERBOARD_API_PATH, options, runtime);
|
|
66
161
|
}
|
|
67
162
|
async function deleteUserMiniprogramLeaderboard(options, runtime) {
|
|
68
|
-
return (await remotePostForm(
|
|
163
|
+
return (await remotePostForm(runtimePermissionEnv.DELETE_USER_MINIPROGRAM_LEADERBOARD_API_PATH, options, runtime, { requireResult: false })) ?? {};
|
|
69
164
|
}
|
|
70
165
|
async function precheckUserMiniprogramVersion(options, runtime) {
|
|
71
|
-
return remotePostForm(
|
|
166
|
+
return remotePostForm(runtimePermissionEnv.PRECHECK_USER_MINIPROGRAM_VERSION_API_PATH, options, runtime);
|
|
72
167
|
}
|
|
73
168
|
async function submitUserMiniprogramAudit(options, runtime) {
|
|
74
169
|
const form = { ...options };
|
|
75
170
|
if (form.manifest && typeof form.manifest !== 'string') {
|
|
76
171
|
form.manifest = JSON.stringify(form.manifest);
|
|
77
172
|
}
|
|
78
|
-
return remotePostForm(
|
|
173
|
+
return remotePostForm(runtimePermissionEnv.SUBMIT_USER_MINIPROGRAM_AUDIT_API_PATH, form, runtime);
|
|
79
174
|
}
|
|
80
175
|
async function getVersionPreviewInfo(options, runtime) {
|
|
81
|
-
return remoteGet(
|
|
176
|
+
return remoteGet(runtimePermissionEnv.USER_MINIPROGRAM_VERSION_PREVIEW_INFO_API_PATH, {
|
|
82
177
|
mini_program_id: options.mini_program_id,
|
|
83
178
|
preview_version: options.version,
|
|
84
179
|
}, runtime);
|
|
85
180
|
}
|
|
86
181
|
async function withdrawUserMiniprogramVersion(options, runtime) {
|
|
87
|
-
return remotePostForm(
|
|
182
|
+
return remotePostForm(runtimePermissionEnv.WITHDRAW_USER_MINIPROGRAM_VERSION_API_PATH, options, runtime);
|
|
88
183
|
}
|
|
89
184
|
async function releaseUserMiniprogramVersion(options, runtime) {
|
|
90
|
-
return remotePostForm(
|
|
185
|
+
return remotePostForm(runtimePermissionEnv.RELEASE_USER_MINIPROGRAM_VERSION_API_PATH, options, runtime);
|
|
91
186
|
}
|
|
92
187
|
async function takeDownUserMiniprogram(options, runtime) {
|
|
93
|
-
return remotePostForm(
|
|
188
|
+
return remotePostForm(runtimePermissionEnv.TAKE_DOWN_USER_MINIPROGRAM_API_PATH, options, runtime);
|
|
94
189
|
}
|
|
95
190
|
async function reopenUserMiniprogram(options, runtime) {
|
|
96
|
-
return remotePostForm(
|
|
191
|
+
return remotePostForm(runtimePermissionEnv.REOPEN_USER_MINIPROGRAM_API_PATH, options, runtime);
|
|
97
192
|
}
|
|
98
193
|
async function updateSquareDisplay(options, runtime) {
|
|
99
|
-
return remotePostForm(
|
|
194
|
+
return remotePostForm(runtimePermissionEnv.UPDATE_SQUARE_DISPLAY_API_PATH, options, runtime);
|
|
100
195
|
}
|
|
101
196
|
async function listUserMiniprogramVersions(options, runtime) {
|
|
102
|
-
return remoteGet(
|
|
197
|
+
return remoteGet(runtimePermissionEnv.LIST_USER_MINIPROGRAM_VERSION_API_PATH, options, runtime);
|
|
103
198
|
}
|
|
104
199
|
async function remoteGet(path, query, runtime) {
|
|
105
200
|
const pathWithQuery = createPathWithQuery(path, query);
|
|
@@ -302,10 +397,14 @@ function isTruthyEnvFlag(value) {
|
|
|
302
397
|
}
|
|
303
398
|
|
|
304
399
|
exports.MiniProgramProjectBindingError = MiniProgramProjectBindingError;
|
|
400
|
+
exports.createMiniProgramMockPermissionState = createMiniProgramMockPermissionState;
|
|
401
|
+
exports.createMiniProgramMockRuntimePermissions = createMiniProgramMockRuntimePermissions;
|
|
305
402
|
exports.createRemoteApiClientForEnvironment = createRemoteApiClientForEnvironment;
|
|
306
403
|
exports.getBoundMiniProgram = getBoundMiniProgram;
|
|
404
|
+
exports.parseMiniProgramRuntimePermissions = parseMiniProgramRuntimePermissions;
|
|
307
405
|
exports.readBoundMiniProgramId = readBoundMiniProgramId;
|
|
308
406
|
exports.readBoundMiniProgramIdFromPackageJson = readBoundMiniProgramIdFromPackageJson;
|
|
309
407
|
exports.readMiniProgramProjectPackage = readMiniProgramProjectPackage;
|
|
310
408
|
exports.resolveRemoteEnvironment = resolveRemoteEnvironment;
|
|
409
|
+
exports.shouldSkipMiniappPlatformCsp = shouldSkipMiniappPlatformCsp;
|
|
311
410
|
exports.writeBoundMiniProgramId = writeBoundMiniProgramId;
|
|
@@ -5,7 +5,7 @@ var fs = require('node:fs/promises');
|
|
|
5
5
|
var path = require('node:path');
|
|
6
6
|
var require$$0 = require('fs');
|
|
7
7
|
var require$$1 = require('path');
|
|
8
|
-
var index = require('./index-
|
|
8
|
+
var index = require('./index-CSjJrnkO.cjs');
|
|
9
9
|
require('node:module');
|
|
10
10
|
require('os');
|
|
11
11
|
require('readline');
|