@acosmi/sdk-ts 1.3.1 → 1.3.2
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 +43 -0
- package/README.md +11 -3
- package/dist/browser/index.mjs +60 -9
- package/dist/browser/index.mjs.map +1 -1
- package/dist/index.mjs +60 -9
- package/dist/index.mjs.map +1 -1
- package/dist/node/index.cjs +60 -8
- package/dist/node/index.cjs.map +1 -1
- package/dist/node/index.d.cts +39 -8
- package/dist/node/index.d.ts +39 -8
- package/dist/node/index.mjs +60 -9
- package/dist/node/index.mjs.map +1 -1
- package/docs/compliance.md +36 -0
- package/package.json +1 -1
package/dist/node/index.cjs
CHANGED
|
@@ -1441,6 +1441,7 @@ var ScopeComplianceSealApprovalRequest = "compliance:seal_approval:request";
|
|
|
1441
1441
|
var ScopeComplianceSealApprovalApprove = "compliance:seal_approval:approve";
|
|
1442
1442
|
var ScopeComplianceSealUseExecute = "compliance:seal_use:execute";
|
|
1443
1443
|
var ScopeComplianceReportsRead = "compliance:reports:read";
|
|
1444
|
+
var ScopeComplianceReportsWrite = "compliance:reports:write";
|
|
1444
1445
|
var ScopeComplianceReportsPublish = "compliance:reports:publish";
|
|
1445
1446
|
function allScopes() {
|
|
1446
1447
|
return [ScopeAI, ScopeSkills, ScopeAccount];
|
|
@@ -1458,6 +1459,7 @@ function complianceScopes() {
|
|
|
1458
1459
|
ScopeComplianceSealApprovalApprove,
|
|
1459
1460
|
ScopeComplianceSealUseExecute,
|
|
1460
1461
|
ScopeComplianceReportsRead,
|
|
1462
|
+
ScopeComplianceReportsWrite,
|
|
1461
1463
|
ScopeComplianceReportsPublish
|
|
1462
1464
|
];
|
|
1463
1465
|
}
|
|
@@ -3328,17 +3330,20 @@ var ComplianceClient = class {
|
|
|
3328
3330
|
}
|
|
3329
3331
|
/**
|
|
3330
3332
|
* 公开 verify。隐私边界:返回字段不含 PII / 合同原文 / storage / provider raw。
|
|
3331
|
-
*
|
|
3333
|
+
*
|
|
3334
|
+
* 匿名可调用:未 login 时走匿名请求,不会抛 `not authorized, call login() first`。
|
|
3335
|
+
* 已 login / 已持有 token 时附带 `Authorization` 以保留审计上下文。public 端点不
|
|
3336
|
+
* 应要求认证 — 收到 401 直接抛 HTTPError,不触发 `forceRefresh`,也不做 refresh
|
|
3337
|
+
* replay。
|
|
3332
3338
|
*/
|
|
3333
3339
|
verifyEvidencePublic(params, signal) {
|
|
3334
3340
|
const q = new URLSearchParams();
|
|
3335
3341
|
if (params.evidenceNo) q.set("evidenceNo", params.evidenceNo);
|
|
3336
3342
|
if (params.publicVerifyCode) q.set("publicVerifyCode", params.publicVerifyCode);
|
|
3337
3343
|
const qs = q.toString();
|
|
3338
|
-
return this.
|
|
3344
|
+
return this.publicRead(
|
|
3339
3345
|
"GET",
|
|
3340
3346
|
`/compliance/evidence/verify${qs ? "?" + qs : ""}`,
|
|
3341
|
-
null,
|
|
3342
3347
|
signal
|
|
3343
3348
|
);
|
|
3344
3349
|
}
|
|
@@ -3422,9 +3427,10 @@ var ComplianceClient = class {
|
|
|
3422
3427
|
/**
|
|
3423
3428
|
* 发布报告(写,step-up 必须)。
|
|
3424
3429
|
*
|
|
3425
|
-
*
|
|
3426
|
-
* 1031000013)。SDK
|
|
3427
|
-
*
|
|
3430
|
+
* `@status gated` — step-up 闸门未闭合前服务端会一致返回
|
|
3431
|
+
* `COMPLIANCE_STEP_UP_REQUIRED`(数值码 1031000013)。SDK 不会自动重试、不伪成功;
|
|
3432
|
+
* 调用方需要引导用户重新做 OAuth introspection 或重新登录后再次调用本方法
|
|
3433
|
+
*(使用同一 idempotency-key)。方法状态分级见 `docs/compliance.md` Method Status。
|
|
3428
3434
|
*/
|
|
3429
3435
|
publishReport(id, opts = {}) {
|
|
3430
3436
|
return this.write(
|
|
@@ -3471,7 +3477,7 @@ var ComplianceClient = class {
|
|
|
3471
3477
|
/**
|
|
3472
3478
|
* 正式签署(写,step-up 必须)。
|
|
3473
3479
|
*
|
|
3474
|
-
* 服务端闸门关闭时会一致返回 `ENVELOPE_GATE_CLOSED` (1031004004)。
|
|
3480
|
+
* `@status gated` — 服务端闸门关闭时会一致返回 `ENVELOPE_GATE_CLOSED` (1031004004)。
|
|
3475
3481
|
* SDK 不重试、不伪成功;调用方应该将该错误展示为"功能未开放"。
|
|
3476
3482
|
*/
|
|
3477
3483
|
signEnvelope(envelopeId, req, opts = {}) {
|
|
@@ -3485,7 +3491,7 @@ var ComplianceClient = class {
|
|
|
3485
3491
|
/**
|
|
3486
3492
|
* 创建 H5 签署短链(写,step-up 必须)。
|
|
3487
3493
|
*
|
|
3488
|
-
*
|
|
3494
|
+
* `@status gated` — 同 {@link signEnvelope}:服务端闸门关闭时 SDK 不重试、不伪成功。
|
|
3489
3495
|
*/
|
|
3490
3496
|
createH5SigningUrl(envelopeId, req, opts = {}) {
|
|
3491
3497
|
return this.write(
|
|
@@ -3507,6 +3513,13 @@ var ComplianceClient = class {
|
|
|
3507
3513
|
// =========================================================================
|
|
3508
3514
|
// Seal Approval
|
|
3509
3515
|
// =========================================================================
|
|
3516
|
+
/**
|
|
3517
|
+
* 提交用印审批申请(写)。
|
|
3518
|
+
*
|
|
3519
|
+
* `@status production-ready` — 服务端以 `Idempotency-Key` + 业务请求指纹做重放保护:
|
|
3520
|
+
* 同 key + 同请求 → 返回原审批 id;同 key + 不同请求 → 拒绝复用幂等键。强烈建议调用方
|
|
3521
|
+
* 持久化 `idempotencyKey`,网络重试 / 任务恢复时复用,避免重复创建审批单。
|
|
3522
|
+
*/
|
|
3510
3523
|
submitSealApproval(req, opts = {}) {
|
|
3511
3524
|
return this.write(
|
|
3512
3525
|
"POST",
|
|
@@ -3515,6 +3528,12 @@ var ComplianceClient = class {
|
|
|
3515
3528
|
writeCtx(opts)
|
|
3516
3529
|
);
|
|
3517
3530
|
}
|
|
3531
|
+
/**
|
|
3532
|
+
* 审批通过用印申请(写,step-up 必须)。
|
|
3533
|
+
*
|
|
3534
|
+
* `@status gated` — step-up 未闭合前服务端会返回 `COMPLIANCE_STEP_UP_REQUIRED`。
|
|
3535
|
+
* SDK 不重试、不伪成功。方法状态分级见 `docs/compliance.md` Method Status。
|
|
3536
|
+
*/
|
|
3518
3537
|
approveSealApproval(id, query, opts = {}) {
|
|
3519
3538
|
const q = new URLSearchParams();
|
|
3520
3539
|
if (query.expiresAt) q.set("expiresAt", query.expiresAt);
|
|
@@ -3612,6 +3631,38 @@ var ComplianceClient = class {
|
|
|
3612
3631
|
extraHeaders
|
|
3613
3632
|
});
|
|
3614
3633
|
}
|
|
3634
|
+
/**
|
|
3635
|
+
* 公开读路径:public verify。
|
|
3636
|
+
*
|
|
3637
|
+
* 与 {@link read} 的区别 — public 端点不应要求认证:
|
|
3638
|
+
* - 无 token 时匿名请求:ensureToken 抛 `not authorized` 会被吞掉,继续匿名发送。
|
|
3639
|
+
* - 有 token 时附带 `Authorization`,保留后端审计上下文。
|
|
3640
|
+
* - 不做 401 refresh replay:401 直接抛 HTTPError,不触发 `forceRefresh`。
|
|
3641
|
+
*
|
|
3642
|
+
* URL 仍走 `client.complianceURL(path)`,不复用 `/api/v4`;底层复用
|
|
3643
|
+
* `client.doRequest`,不新增 fetch/axios 直连。
|
|
3644
|
+
*/
|
|
3645
|
+
async publicRead(method, path, signal) {
|
|
3646
|
+
let token = "";
|
|
3647
|
+
try {
|
|
3648
|
+
token = await this.client.ensureToken(signal);
|
|
3649
|
+
} catch {
|
|
3650
|
+
}
|
|
3651
|
+
const url = this.client.complianceURL(path);
|
|
3652
|
+
const headers = { Accept: "application/json" };
|
|
3653
|
+
if (token) headers.Authorization = `Bearer ${token}`;
|
|
3654
|
+
const resp = await this.client.doRequest({ method, url, headers }, signal);
|
|
3655
|
+
if (resp.status < 200 || resp.status >= 300) {
|
|
3656
|
+
const bodyBytes = resp.body ? await readLimited(resp.body, maxErrorBodySize) : new Uint8Array();
|
|
3657
|
+
throw parseHTTPErrorWithHeader(resp.status, bodyBytes, resp.headers);
|
|
3658
|
+
}
|
|
3659
|
+
const text = await resp.text();
|
|
3660
|
+
if (!text) return void 0;
|
|
3661
|
+
const parsed = JSON.parse(text);
|
|
3662
|
+
const bizErr = apiResponseBusinessError(parsed);
|
|
3663
|
+
if (bizErr) throw bizErr;
|
|
3664
|
+
return parsed.data;
|
|
3665
|
+
}
|
|
3615
3666
|
/**
|
|
3616
3667
|
* 写路径:POST。
|
|
3617
3668
|
* - 发送前 ensureToken 一次确保 token fresh。
|
|
@@ -5371,6 +5422,7 @@ exports.ScopeComplianceEvidenceRead = ScopeComplianceEvidenceRead;
|
|
|
5371
5422
|
exports.ScopeComplianceEvidenceWrite = ScopeComplianceEvidenceWrite;
|
|
5372
5423
|
exports.ScopeComplianceReportsPublish = ScopeComplianceReportsPublish;
|
|
5373
5424
|
exports.ScopeComplianceReportsRead = ScopeComplianceReportsRead;
|
|
5425
|
+
exports.ScopeComplianceReportsWrite = ScopeComplianceReportsWrite;
|
|
5374
5426
|
exports.ScopeComplianceSealApprovalApprove = ScopeComplianceSealApprovalApprove;
|
|
5375
5427
|
exports.ScopeComplianceSealApprovalRequest = ScopeComplianceSealApprovalRequest;
|
|
5376
5428
|
exports.ScopeComplianceSealManage = ScopeComplianceSealManage;
|