@acosmi/sdk-ts 1.6.0 → 1.9.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +141 -0
- package/dist/browser/index.mjs +381 -1
- package/dist/browser/index.mjs.map +1 -1
- package/dist/index.mjs +381 -1
- package/dist/index.mjs.map +1 -1
- package/dist/node/index.cjs +384 -0
- package/dist/node/index.cjs.map +1 -1
- package/dist/node/index.d.cts +615 -1
- package/dist/node/index.d.ts +615 -1
- package/dist/node/index.mjs +381 -1
- package/dist/node/index.mjs.map +1 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -5,6 +5,147 @@ All notable changes to `@acosmi/sdk-ts` will be documented in this file.
|
|
|
5
5
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
|
|
6
6
|
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
7
7
|
|
|
8
|
+
## [1.9.0] - 2026-05-25
|
|
9
|
+
|
|
10
|
+
### Added — 商品化总规划 P7: 财务 finance namespace (发票/退款/对公转账)
|
|
11
|
+
|
|
12
|
+
钉死决策 (§13.7):
|
|
13
|
+
- 决策 14 对公转账: 支付页弹窗 + 企业微信对接销售/财务 + 财务系统手工 mark, **零银行 API**.
|
|
14
|
+
- 决策 15 退款规则: 订阅不退 / Token 包 7 天未用全额 / 服务交付后不退, 按 dist_refund_policy 表配置, 不硬编码.
|
|
15
|
+
- R12 价格快照: 订单创建时同步落 dist_order_price_snapshot, 支付回调按快照算 entitlement, 防 in-flight 改价错配.
|
|
16
|
+
|
|
17
|
+
- 新 namespace `finance/`:
|
|
18
|
+
- 类型 (`finance/types`):
|
|
19
|
+
- `Invoice` (普票/增普/增专) + `RequestInvoiceInput`
|
|
20
|
+
- `RefundPolicy` (5 条 seed: SUBSCRIPTION_NO_REFUND / TOKEN_PACK_7DAY_UNUSED / TOKEN_PACK_PRORATA_USED / COMPLIANCE_NO_REFUND_AFTER_DELIVERY / LEGAL_NO_REFUND_AFTER_DELIVERY)
|
|
21
|
+
- `RefundRecord` + `RequestRefundInput` (productFamily 派生 policyCode)
|
|
22
|
+
- `CorporateTransfer` + `InitiateCorporateTransferInput` + `InitiateCorporateTransferResult` (qrUrl/salesWechatId/financeEmail 弹窗数据)
|
|
23
|
+
- 方法 (与 tk-dist `/api/distribution/finance/**` 对齐):
|
|
24
|
+
- `client.requestRefund(req)` / `client.listMyRefunds()`
|
|
25
|
+
- `client.requestInvoice(req)` / `client.listMyInvoices()`
|
|
26
|
+
- `client.initiateCorporateTransfer(req)` / `client.uploadCorporateTransferProof(id, url)` / `client.listMyCorporateTransfers()`
|
|
27
|
+
|
|
28
|
+
### Notes
|
|
29
|
+
|
|
30
|
+
- admin 板块 (审批 / 财务工作台 / 月度对账 / dashboard) 由 admin UI 直连 `/api/admin/finance/**`, 不在 SDK 边界.
|
|
31
|
+
- DistPricingConfigService 新增 3 key 支撑决策 14 弹窗: `corporate_transfer_qr_url` / `corporate_transfer_sales_wechat_id` / `corporate_transfer_finance_email` (ops 热更).
|
|
32
|
+
- V51 SQL: 7 CREATE TABLE (`dist_invoice` / `dist_contract` / `dist_corporate_transfer` / `dist_refund_policy` / `dist_refund_record` / `dist_order_price_snapshot` / `dist_reconciliation`) + 5 INSERT seed policy + 3 INSERT seed pricing config.
|
|
33
|
+
- R12 实施: `OrderPaymentService.createPurchase` 在 `orderMapper.insert(order)` 后同步调 `OrderPriceSnapshotService.captureSnapshot(orderId, productId)`.
|
|
34
|
+
- 月度对账作业 `MonthlyReconciliationJob` 每月 1 号 02:30 跑上月对账, 差异 > 1% → log.error 告警.
|
|
35
|
+
|
|
36
|
+
## [1.8.1] - 2026-05-25
|
|
37
|
+
|
|
38
|
+
### Added — 商品化总规划 P6a: 企业席位 enterprise namespace
|
|
39
|
+
|
|
40
|
+
钉死决策 (§-1.4 H10 + §-1.2.D): tk-dist 新建 `dist_enterprise_*` 独立表族, 与 `dist_org_node` 分销代理体系
|
|
41
|
+
完全分离 (实测分销 dist_org_node 1 条 + dist_org_member 24 条均为代理身份, 不复用). §-1.2.D 钉死 4 项:
|
|
42
|
+
销售对接 ≥200 席 / 月度变更 3 次/订阅 / per_seat_cap = pool/seats×1.5 / pool = seats × Pro Max × 0.8.
|
|
43
|
+
|
|
44
|
+
- 新 namespace `enterprise/`:
|
|
45
|
+
- 类型 (`enterprise/types`):
|
|
46
|
+
- `EnterpriseSummary` (企业组织, contactPhone/Email 仅 OWNER/ADMIN 可见)
|
|
47
|
+
- `EnterpriseMember` (OWNER / ADMIN / MEMBER 角色, 不参与佣金)
|
|
48
|
+
- `OrgSubscription` (订阅 + §-1.2.D 4 项派生计算字段)
|
|
49
|
+
- `OrgSeat` (席位, seat_no 1..N, per_seat_monthly_cap_tk override)
|
|
50
|
+
- `InviteMemberRequest` / `AssignSeatRequest` / `OrgConsumeReport`
|
|
51
|
+
- 方法 (与 tk-dist `/api/admin/enterprises/**` + `/me/enterprises` 端点对齐):
|
|
52
|
+
- `client.listMyEnterprises()` / `client.getEnterprise(id)`
|
|
53
|
+
- `client.inviteMember(req)` / `client.listEnterpriseMembers(enterpriseId)`
|
|
54
|
+
- `client.listOrgSubscriptions(enterpriseId)`
|
|
55
|
+
- `client.listSeats(orgSubscriptionId)` / `client.assignSeat(req)` / `client.revokeSeat(seatId, note?)`
|
|
56
|
+
- `client.getOrgConsumeReport(enterpriseId)`
|
|
57
|
+
|
|
58
|
+
### Notes
|
|
59
|
+
|
|
60
|
+
- 不升 major (与 P5 1.8.0 兼容); admin 9 controllers (Enterprise / Member / Subscription / Seat /
|
|
61
|
+
SeatAssignment / Settlement / Sales / Billing / RiskControl) 由 admin UI 直连, 不在 SDK 边界.
|
|
62
|
+
- 后端 EntitlementService.hold() 入口已加 P6a enterprise pool fast-path (用户被分配席位 → 走简化
|
|
63
|
+
SHARED 池扣减; 池满 / 超 per_seat_cap → fallback 个人桶 + Free 兜底, 现有逻辑零侵入).
|
|
64
|
+
- web /org/console 路由占位 skeleton (订阅概览 / 成员管理 / 席位分配 / 用量统计), SDK 接入留 P6b.
|
|
65
|
+
- P6b (变更规则 + console UI 接入) + P6c (AI 初审外包对接) 后续 wave 实施.
|
|
66
|
+
|
|
67
|
+
## [1.8.0] - 2026-05-25
|
|
68
|
+
|
|
69
|
+
### Added — 商品化总规划 P5 (方案 B): 法律案件咨询 casehall namespace
|
|
70
|
+
|
|
71
|
+
钉死决策: Java tk-dist `yudao-module-casehall` 子模块, 与 `yudao-module-compliance` 并列体系
|
|
72
|
+
(不另起架构分裂). Go 网关侧 `legal_* 10 表` 保留供 `legal-wf-*` 工作流运行时使用,
|
|
73
|
+
与本商业化数据流松耦合。
|
|
74
|
+
|
|
75
|
+
- 新 namespace `casehall/`:
|
|
76
|
+
- 类型 (`casehall/types`):
|
|
77
|
+
- `LawyerSummary` (公开 L1 视图, licenseNo 等 PII L3 已脱敏剥离)
|
|
78
|
+
- `SubmitCaseLeadRequest` / `CaseLead` / `CaseMatter`
|
|
79
|
+
- `LegalConsultation` / `BookConsultationRequest`
|
|
80
|
+
- `LegalServiceOrder` / `LegalServiceSku`
|
|
81
|
+
- `LegalSkuCode` literal union (5 SKU)
|
|
82
|
+
- 方法 (与 tk-dist `/casehall/app/**` C 端公开 + `/casehall/me/**` 登录态对齐):
|
|
83
|
+
- `client.listLawyers({ practiceArea?, location?, pageNo?, pageSize? })`
|
|
84
|
+
- `client.getLawyer(id)`
|
|
85
|
+
- `client.submitCaseLead(req)` / `client.listMyCaseLeads()` / `client.getMyCases()`
|
|
86
|
+
- `client.bookConsultation(req)` / `client.listMyConsultations()`
|
|
87
|
+
- `client.listMyLegalOrders()` / `client.listLegalSKUs(region?)`
|
|
88
|
+
- 5 Legal SKU (复用 `dist_compliance_sku.benefit_type='LEGAL_SERVICE'`, V49 注入):
|
|
89
|
+
- `LEGAL_CONSULTATION_ONCE` 19900 分
|
|
90
|
+
- `LEGAL_CONSULTATION_60MIN` 35900 分
|
|
91
|
+
- `LEGAL_DOC_REVIEW_HUMAN` 49900 分
|
|
92
|
+
- `LEGAL_CASE_LEAD_CLAIM` 9900 分
|
|
93
|
+
- `LEGAL_LAWYER_SERVICE_PKG` 199900 分
|
|
94
|
+
|
|
95
|
+
### Notes
|
|
96
|
+
|
|
97
|
+
- admin 板块 9 模块 (`/casehall/admin/**`) 不在 SDK 边界, 仅 admin UI 直连。
|
|
98
|
+
- 路由实际生效由后续窗口在 nexus-v4 网关层路由白名单中开放。
|
|
99
|
+
|
|
100
|
+
## [1.7.0] - 2026-05-25
|
|
101
|
+
|
|
102
|
+
### Added — 商品化总规划 P4: csign 电子认证 SKU (扩展 pricing namespace)
|
|
103
|
+
|
|
104
|
+
- 新类型 (`pricing/types`): `ComplianceSku` / `ComplianceQuoteResponse` / `ComplianceBenefitType`
|
|
105
|
+
- 新方法 (匿名可调用):
|
|
106
|
+
- `client.listComplianceSkus(region?)` → `ComplianceSku[]`
|
|
107
|
+
- `client.quoteCompliance(skuCode, quantity?, region?)` → `ComplianceQuoteResponse`
|
|
108
|
+
- 端点 (Go 网关反代到 tk-dist `/api/distribution/public/compliance/**`, @PermitAll 匿名):
|
|
109
|
+
- `/distribution/public/compliance/skus?region=CN|OS|GLOBAL`
|
|
110
|
+
- `/distribution/public/compliance/quote?skuCode=...&quantity=...®ion=...`
|
|
111
|
+
- 字段白名单: 公开端点不暴露 `upstreamCostFen` / `status` / 内部 id
|
|
112
|
+
|
|
113
|
+
### Added — 商品化总规划 P1: 订阅档位 + 公开业务参数 namespace
|
|
114
|
+
|
|
115
|
+
- 新 namespace `subscription/`:
|
|
116
|
+
- 类型: `SubscriptionPlan` / `UserSubscription` / `SubscriptionAudience` / `RolloverPolicy`
|
|
117
|
+
- 方法: `client.listPlans(audience?)` / `client.listUserSubscriptions()`
|
|
118
|
+
- 新 namespace `pricing/`:
|
|
119
|
+
- 类型: `PricingConfig` (Record<string,string>) / `PublicModelSummary`
|
|
120
|
+
- 方法: `client.getPricingConfig(key?)` / `client.listPublicModels()`
|
|
121
|
+
- 端点 (Go 网关反代到 tk-dist `/api/distribution/public/pricing/**`, 网关代理路由 P3 商品中心补):
|
|
122
|
+
- `/distribution/public/pricing/plans?audience=PERSONAL|ENTERPRISE`
|
|
123
|
+
- `/distribution/public/pricing/config?key=...`
|
|
124
|
+
- `/distribution/public/pricing/models`
|
|
125
|
+
- `/distribution/user/subscriptions`
|
|
126
|
+
|
|
127
|
+
### Added — 商品化总规划 P3: 商品中心 namespace (同 minor 升级, version 仍 1.7.0)
|
|
128
|
+
|
|
129
|
+
- 新 namespace `products/`:
|
|
130
|
+
- 类型: `Product` / `ProductFamily` / `Audience` / `BillingMode` / `RegionScope`
|
|
131
|
+
- 枚举常量: `ProductFamilyEnum` / `AudienceEnum` / `BillingModeEnum` / `RegionScopeEnum`
|
|
132
|
+
- 方法: `client.listProductsByFamily(family?, audience?, region?)` / `client.getProductBySlug(slug, region?)`
|
|
133
|
+
- 端点 (Go 网关反代到 tk-dist `/api/distribution/public/products/**`):
|
|
134
|
+
- `/distribution/public/products/by-family?family=MODEL_MEMBERSHIP&audience=PERSONAL®ion=GLOBAL`
|
|
135
|
+
- `/distribution/public/products/by-slug/{slug}`
|
|
136
|
+
- 字段白名单严格 (与后端 `DistProductMappingService#toPublicResponse` 同源):
|
|
137
|
+
仅暴露 `id / publicSlug / displayName / productFamily / audience / billingMode / regionScope / basePriceFen / tokenQuota / displayMetadataJson`.
|
|
138
|
+
`featureGateJson` (H5 能力开关) / `retiredAt` / `salesChannelJson` / `priceSnapshotPolicy` 禁止外泄.
|
|
139
|
+
- 后端 V47 DDL: `dist_product_mapping` 加 9 字段 (`product_family / audience / billing_mode / feature_gate_json / region_scope / sales_channel_json / price_snapshot_policy / display_metadata_json / retired_at`).
|
|
140
|
+
|
|
141
|
+
### Compatibility — 100% 后向
|
|
142
|
+
|
|
143
|
+
- 新增三个 barrel namespace (subscription/pricing/products), 现有所有 import 路径不变.
|
|
144
|
+
- 新增方法走 declaration merging 注入 `Client.prototype`, 不破坏既有签名.
|
|
145
|
+
- 缺省 wire 字段策略与 v1.6.x 一致 (snake_case → camelCase 不做映射, 直接吃 Java 返回结构).
|
|
146
|
+
|
|
147
|
+
---
|
|
148
|
+
|
|
8
149
|
## [1.6.0] - 2026-05-24
|
|
9
150
|
|
|
10
151
|
### Added — 业务侧终端用户 id (endUserId) + 请求保活
|
package/dist/browser/index.mjs
CHANGED
|
@@ -6126,6 +6126,386 @@ Client.prototype.getBugReport = async function(bugID, signal) {
|
|
|
6126
6126
|
return resp.data;
|
|
6127
6127
|
};
|
|
6128
6128
|
|
|
6129
|
-
|
|
6129
|
+
// src/subscription/client.ts
|
|
6130
|
+
Client.prototype.listPlans = async function(audience, signal) {
|
|
6131
|
+
const query = audience ? `?audience=${encodeURIComponent(audience)}` : "";
|
|
6132
|
+
const resp = await this.doJSON(
|
|
6133
|
+
"GET",
|
|
6134
|
+
`/distribution/public/pricing/plans${query}`,
|
|
6135
|
+
null,
|
|
6136
|
+
signal
|
|
6137
|
+
);
|
|
6138
|
+
return Array.isArray(resp.data) ? resp.data : [];
|
|
6139
|
+
};
|
|
6140
|
+
Client.prototype.listUserSubscriptions = async function(signal) {
|
|
6141
|
+
const resp = await this.doJSON(
|
|
6142
|
+
"GET",
|
|
6143
|
+
"/distribution/user/subscriptions",
|
|
6144
|
+
null,
|
|
6145
|
+
signal
|
|
6146
|
+
);
|
|
6147
|
+
return Array.isArray(resp.data) ? resp.data : [];
|
|
6148
|
+
};
|
|
6149
|
+
|
|
6150
|
+
// src/pricing/client.ts
|
|
6151
|
+
Client.prototype.getPricingConfig = async function(key, signal) {
|
|
6152
|
+
const query = key ? `?key=${encodeURIComponent(key)}` : "";
|
|
6153
|
+
const resp = await this.doJSON(
|
|
6154
|
+
"GET",
|
|
6155
|
+
`/distribution/public/pricing/config${query}`,
|
|
6156
|
+
null,
|
|
6157
|
+
signal
|
|
6158
|
+
);
|
|
6159
|
+
return resp.data ?? {};
|
|
6160
|
+
};
|
|
6161
|
+
Client.prototype.listPublicModels = async function(signal) {
|
|
6162
|
+
const resp = await this.doJSON(
|
|
6163
|
+
"GET",
|
|
6164
|
+
"/distribution/public/pricing/models",
|
|
6165
|
+
null,
|
|
6166
|
+
signal
|
|
6167
|
+
);
|
|
6168
|
+
return Array.isArray(resp.data) ? resp.data : [];
|
|
6169
|
+
};
|
|
6170
|
+
Client.prototype.listComplianceSkus = async function(region, signal) {
|
|
6171
|
+
const query = region ? `?region=${encodeURIComponent(region)}` : "";
|
|
6172
|
+
const resp = await this.doJSON(
|
|
6173
|
+
"GET",
|
|
6174
|
+
`/distribution/public/compliance/skus${query}`,
|
|
6175
|
+
null,
|
|
6176
|
+
signal
|
|
6177
|
+
);
|
|
6178
|
+
return Array.isArray(resp.data) ? resp.data : [];
|
|
6179
|
+
};
|
|
6180
|
+
Client.prototype.quoteCompliance = async function(skuCode, quantity, region, signal) {
|
|
6181
|
+
if (!skuCode) {
|
|
6182
|
+
throw new Error("quoteCompliance: skuCode is required");
|
|
6183
|
+
}
|
|
6184
|
+
const params = [`skuCode=${encodeURIComponent(skuCode)}`];
|
|
6185
|
+
if (quantity != null) params.push(`quantity=${quantity}`);
|
|
6186
|
+
if (region) params.push(`region=${encodeURIComponent(region)}`);
|
|
6187
|
+
const resp = await this.doJSON(
|
|
6188
|
+
"GET",
|
|
6189
|
+
`/distribution/public/compliance/quote?${params.join("&")}`,
|
|
6190
|
+
null,
|
|
6191
|
+
signal
|
|
6192
|
+
);
|
|
6193
|
+
return resp.data ?? { skuCode, available: false };
|
|
6194
|
+
};
|
|
6195
|
+
|
|
6196
|
+
// src/products/types.ts
|
|
6197
|
+
var ProductFamilyEnum = {
|
|
6198
|
+
MODEL_MEMBERSHIP: "MODEL_MEMBERSHIP",
|
|
6199
|
+
TOKEN_PACK: "TOKEN_PACK",
|
|
6200
|
+
COMPLIANCE: "COMPLIANCE",
|
|
6201
|
+
LEGAL: "LEGAL",
|
|
6202
|
+
DESIGN_AGENT: "DESIGN_AGENT",
|
|
6203
|
+
ENTERPRISE: "ENTERPRISE"
|
|
6204
|
+
};
|
|
6205
|
+
var AudienceEnum = {
|
|
6206
|
+
PERSONAL: "PERSONAL",
|
|
6207
|
+
ENTERPRISE: "ENTERPRISE",
|
|
6208
|
+
DEVELOPER: "DEVELOPER"
|
|
6209
|
+
};
|
|
6210
|
+
var BillingModeEnum = {
|
|
6211
|
+
ONE_TIME: "ONE_TIME",
|
|
6212
|
+
SUBSCRIPTION: "SUBSCRIPTION",
|
|
6213
|
+
METERED: "METERED",
|
|
6214
|
+
HYBRID: "HYBRID"
|
|
6215
|
+
};
|
|
6216
|
+
var RegionScopeEnum = {
|
|
6217
|
+
CN: "CN",
|
|
6218
|
+
OS: "OS",
|
|
6219
|
+
GLOBAL: "GLOBAL"
|
|
6220
|
+
};
|
|
6221
|
+
|
|
6222
|
+
// src/products/client.ts
|
|
6223
|
+
Client.prototype.listProductsByFamily = async function(family, audience, region, signal) {
|
|
6224
|
+
const params = [];
|
|
6225
|
+
if (family) params.push(`family=${encodeURIComponent(family)}`);
|
|
6226
|
+
if (audience) params.push(`audience=${encodeURIComponent(audience)}`);
|
|
6227
|
+
if (region) params.push(`region=${encodeURIComponent(region)}`);
|
|
6228
|
+
const query = params.length > 0 ? `?${params.join("&")}` : "";
|
|
6229
|
+
const resp = await this.doJSON(
|
|
6230
|
+
"GET",
|
|
6231
|
+
`/distribution/public/products/by-family${query}`,
|
|
6232
|
+
null,
|
|
6233
|
+
signal
|
|
6234
|
+
);
|
|
6235
|
+
return Array.isArray(resp.data) ? resp.data : [];
|
|
6236
|
+
};
|
|
6237
|
+
Client.prototype.getProductBySlug = async function(slug, region, signal) {
|
|
6238
|
+
if (!slug) {
|
|
6239
|
+
throw new Error("getProductBySlug: slug is required");
|
|
6240
|
+
}
|
|
6241
|
+
const query = region ? `?region=${encodeURIComponent(region)}` : "";
|
|
6242
|
+
const resp = await this.doJSON(
|
|
6243
|
+
"GET",
|
|
6244
|
+
`/distribution/public/products/by-slug/${encodeURIComponent(slug)}${query}`,
|
|
6245
|
+
null,
|
|
6246
|
+
signal
|
|
6247
|
+
);
|
|
6248
|
+
if (!resp.data) {
|
|
6249
|
+
throw new Error(`getProductBySlug: product not found (slug=${slug})`);
|
|
6250
|
+
}
|
|
6251
|
+
return resp.data;
|
|
6252
|
+
};
|
|
6253
|
+
|
|
6254
|
+
// src/casehall/client.ts
|
|
6255
|
+
Client.prototype.listLawyers = async function(params, signal) {
|
|
6256
|
+
const qs = new URLSearchParams();
|
|
6257
|
+
if (params?.practiceArea) qs.set("practiceArea", params.practiceArea);
|
|
6258
|
+
if (params?.location) qs.set("location", params.location);
|
|
6259
|
+
if (params?.pageNo != null) qs.set("pageNo", String(params.pageNo));
|
|
6260
|
+
if (params?.pageSize != null) qs.set("pageSize", String(params.pageSize));
|
|
6261
|
+
const q = qs.toString() ? `?${qs.toString()}` : "";
|
|
6262
|
+
const resp = await this.doJSON(
|
|
6263
|
+
"GET",
|
|
6264
|
+
`/casehall/app/lawyers${q}`,
|
|
6265
|
+
null,
|
|
6266
|
+
signal
|
|
6267
|
+
);
|
|
6268
|
+
return resp.data ?? [];
|
|
6269
|
+
};
|
|
6270
|
+
Client.prototype.getLawyer = async function(id, signal) {
|
|
6271
|
+
const resp = await this.doJSON(
|
|
6272
|
+
"GET",
|
|
6273
|
+
`/casehall/app/lawyers/${id}`,
|
|
6274
|
+
null,
|
|
6275
|
+
signal
|
|
6276
|
+
);
|
|
6277
|
+
if (!resp.data) throw new Error(`lawyer ${id} not found`);
|
|
6278
|
+
return resp.data;
|
|
6279
|
+
};
|
|
6280
|
+
Client.prototype.submitCaseLead = async function(req, signal) {
|
|
6281
|
+
const resp = await this.doJSON(
|
|
6282
|
+
"POST",
|
|
6283
|
+
`/casehall/me/case-leads`,
|
|
6284
|
+
req,
|
|
6285
|
+
signal
|
|
6286
|
+
);
|
|
6287
|
+
return resp.data ?? { id: 0 };
|
|
6288
|
+
};
|
|
6289
|
+
Client.prototype.listMyCaseLeads = async function(signal) {
|
|
6290
|
+
const resp = await this.doJSON(
|
|
6291
|
+
"GET",
|
|
6292
|
+
`/casehall/me/case-leads`,
|
|
6293
|
+
null,
|
|
6294
|
+
signal
|
|
6295
|
+
);
|
|
6296
|
+
return resp.data ?? [];
|
|
6297
|
+
};
|
|
6298
|
+
Client.prototype.getMyCases = async function(signal) {
|
|
6299
|
+
const resp = await this.doJSON(
|
|
6300
|
+
"GET",
|
|
6301
|
+
`/casehall/me/cases`,
|
|
6302
|
+
null,
|
|
6303
|
+
signal
|
|
6304
|
+
);
|
|
6305
|
+
return resp.data ?? [];
|
|
6306
|
+
};
|
|
6307
|
+
Client.prototype.bookConsultation = async function(req, signal) {
|
|
6308
|
+
const resp = await this.doJSON(
|
|
6309
|
+
"POST",
|
|
6310
|
+
`/casehall/me/consultations`,
|
|
6311
|
+
req,
|
|
6312
|
+
signal
|
|
6313
|
+
);
|
|
6314
|
+
return resp.data ?? { consultationId: 0 };
|
|
6315
|
+
};
|
|
6316
|
+
Client.prototype.listMyConsultations = async function(signal) {
|
|
6317
|
+
const resp = await this.doJSON(
|
|
6318
|
+
"GET",
|
|
6319
|
+
`/casehall/me/consultations`,
|
|
6320
|
+
null,
|
|
6321
|
+
signal
|
|
6322
|
+
);
|
|
6323
|
+
return resp.data ?? [];
|
|
6324
|
+
};
|
|
6325
|
+
Client.prototype.listMyLegalOrders = async function(signal) {
|
|
6326
|
+
const resp = await this.doJSON(
|
|
6327
|
+
"GET",
|
|
6328
|
+
`/casehall/me/orders`,
|
|
6329
|
+
null,
|
|
6330
|
+
signal
|
|
6331
|
+
);
|
|
6332
|
+
return resp.data ?? [];
|
|
6333
|
+
};
|
|
6334
|
+
Client.prototype.listLegalSKUs = async function(region, signal) {
|
|
6335
|
+
const q = region ? `?region=${encodeURIComponent(region)}&benefitType=LEGAL_SERVICE` : `?benefitType=LEGAL_SERVICE`;
|
|
6336
|
+
const resp = await this.doJSON(
|
|
6337
|
+
"GET",
|
|
6338
|
+
`/casehall/app/legal-skus${q}`,
|
|
6339
|
+
null,
|
|
6340
|
+
signal
|
|
6341
|
+
);
|
|
6342
|
+
return resp.data ?? [];
|
|
6343
|
+
};
|
|
6344
|
+
|
|
6345
|
+
// src/enterprise/client.ts
|
|
6346
|
+
Client.prototype.listMyEnterprises = async function(signal) {
|
|
6347
|
+
const resp = await this.doJSON(
|
|
6348
|
+
"GET",
|
|
6349
|
+
`/me/enterprises`,
|
|
6350
|
+
null,
|
|
6351
|
+
signal
|
|
6352
|
+
);
|
|
6353
|
+
return resp.data ?? [];
|
|
6354
|
+
};
|
|
6355
|
+
Client.prototype.getEnterprise = async function(id, signal) {
|
|
6356
|
+
const resp = await this.doJSON(
|
|
6357
|
+
"GET",
|
|
6358
|
+
`/api/admin/enterprises/${id}`,
|
|
6359
|
+
null,
|
|
6360
|
+
signal
|
|
6361
|
+
);
|
|
6362
|
+
if (!resp.data) throw new Error(`enterprise ${id} not found`);
|
|
6363
|
+
return resp.data;
|
|
6364
|
+
};
|
|
6365
|
+
Client.prototype.inviteMember = async function(req, signal) {
|
|
6366
|
+
const resp = await this.doJSON(
|
|
6367
|
+
"POST",
|
|
6368
|
+
`/api/admin/enterprise-members`,
|
|
6369
|
+
req,
|
|
6370
|
+
signal
|
|
6371
|
+
);
|
|
6372
|
+
if (!resp.data) throw new Error("invite member failed");
|
|
6373
|
+
return resp.data;
|
|
6374
|
+
};
|
|
6375
|
+
Client.prototype.listEnterpriseMembers = async function(enterpriseId, signal) {
|
|
6376
|
+
const resp = await this.doJSON(
|
|
6377
|
+
"GET",
|
|
6378
|
+
`/api/admin/enterprise-members/by-enterprise/${enterpriseId}`,
|
|
6379
|
+
null,
|
|
6380
|
+
signal
|
|
6381
|
+
);
|
|
6382
|
+
return resp.data ?? [];
|
|
6383
|
+
};
|
|
6384
|
+
Client.prototype.listOrgSubscriptions = async function(enterpriseId, signal) {
|
|
6385
|
+
const resp = await this.doJSON(
|
|
6386
|
+
"GET",
|
|
6387
|
+
`/api/admin/org-subscriptions/by-enterprise/${enterpriseId}`,
|
|
6388
|
+
null,
|
|
6389
|
+
signal
|
|
6390
|
+
);
|
|
6391
|
+
return resp.data ?? [];
|
|
6392
|
+
};
|
|
6393
|
+
Client.prototype.listSeats = async function(orgSubscriptionId, signal) {
|
|
6394
|
+
const resp = await this.doJSON(
|
|
6395
|
+
"GET",
|
|
6396
|
+
`/api/admin/org-seats/by-subscription/${orgSubscriptionId}`,
|
|
6397
|
+
null,
|
|
6398
|
+
signal
|
|
6399
|
+
);
|
|
6400
|
+
return resp.data ?? [];
|
|
6401
|
+
};
|
|
6402
|
+
Client.prototype.assignSeat = async function(req, signal) {
|
|
6403
|
+
const resp = await this.doJSON(
|
|
6404
|
+
"POST",
|
|
6405
|
+
`/api/admin/org-seats/assign`,
|
|
6406
|
+
req,
|
|
6407
|
+
signal
|
|
6408
|
+
);
|
|
6409
|
+
if (!resp.data) throw new Error("assign seat failed");
|
|
6410
|
+
return resp.data;
|
|
6411
|
+
};
|
|
6412
|
+
Client.prototype.revokeSeat = async function(seatId, note, signal) {
|
|
6413
|
+
const qs = note ? `?note=${encodeURIComponent(note)}` : "";
|
|
6414
|
+
await this.doJSON(
|
|
6415
|
+
"POST",
|
|
6416
|
+
`/api/admin/org-seats/${seatId}/revoke${qs}`,
|
|
6417
|
+
null,
|
|
6418
|
+
signal
|
|
6419
|
+
);
|
|
6420
|
+
};
|
|
6421
|
+
Client.prototype.getOrgConsumeReport = async function(enterpriseId, signal) {
|
|
6422
|
+
const resp = await this.doJSON(
|
|
6423
|
+
"GET",
|
|
6424
|
+
`/api/admin/enterprise-settlements/overview/${enterpriseId}`,
|
|
6425
|
+
null,
|
|
6426
|
+
signal
|
|
6427
|
+
);
|
|
6428
|
+
if (!resp.data) {
|
|
6429
|
+
return {
|
|
6430
|
+
enterpriseId,
|
|
6431
|
+
subscriptionCount: 0,
|
|
6432
|
+
totalPoolTk: 0,
|
|
6433
|
+
totalUsedTk: 0,
|
|
6434
|
+
totalPriceFen: 0
|
|
6435
|
+
};
|
|
6436
|
+
}
|
|
6437
|
+
return resp.data;
|
|
6438
|
+
};
|
|
6439
|
+
|
|
6440
|
+
// src/finance/client.ts
|
|
6441
|
+
Client.prototype.requestRefund = async function(req, signal) {
|
|
6442
|
+
const resp = await this.doJSON(
|
|
6443
|
+
"POST",
|
|
6444
|
+
`/api/distribution/finance/refund/request`,
|
|
6445
|
+
req,
|
|
6446
|
+
signal
|
|
6447
|
+
);
|
|
6448
|
+
if (!resp.data) throw new Error("refund/request: empty response");
|
|
6449
|
+
return resp.data;
|
|
6450
|
+
};
|
|
6451
|
+
Client.prototype.listMyRefunds = async function(signal) {
|
|
6452
|
+
const resp = await this.doJSON(
|
|
6453
|
+
"GET",
|
|
6454
|
+
`/api/distribution/finance/refund/my`,
|
|
6455
|
+
null,
|
|
6456
|
+
signal
|
|
6457
|
+
);
|
|
6458
|
+
return resp.data ?? [];
|
|
6459
|
+
};
|
|
6460
|
+
Client.prototype.requestInvoice = async function(req, signal) {
|
|
6461
|
+
const resp = await this.doJSON(
|
|
6462
|
+
"POST",
|
|
6463
|
+
`/api/distribution/finance/invoice/request`,
|
|
6464
|
+
req,
|
|
6465
|
+
signal
|
|
6466
|
+
);
|
|
6467
|
+
if (!resp.data) throw new Error("invoice/request: empty response");
|
|
6468
|
+
return resp.data;
|
|
6469
|
+
};
|
|
6470
|
+
Client.prototype.listMyInvoices = async function(signal) {
|
|
6471
|
+
const resp = await this.doJSON(
|
|
6472
|
+
"GET",
|
|
6473
|
+
`/api/distribution/finance/invoice/my`,
|
|
6474
|
+
null,
|
|
6475
|
+
signal
|
|
6476
|
+
);
|
|
6477
|
+
return resp.data ?? [];
|
|
6478
|
+
};
|
|
6479
|
+
Client.prototype.initiateCorporateTransfer = async function(req, signal) {
|
|
6480
|
+
const resp = await this.doJSON(
|
|
6481
|
+
"POST",
|
|
6482
|
+
`/api/distribution/finance/corporate-transfer/initiate`,
|
|
6483
|
+
req,
|
|
6484
|
+
signal
|
|
6485
|
+
);
|
|
6486
|
+
if (!resp.data) throw new Error("corporate-transfer/initiate: empty response");
|
|
6487
|
+
return resp.data;
|
|
6488
|
+
};
|
|
6489
|
+
Client.prototype.uploadCorporateTransferProof = async function(id, proofUrl, signal) {
|
|
6490
|
+
const qs = new URLSearchParams({ proofUrl });
|
|
6491
|
+
const resp = await this.doJSON(
|
|
6492
|
+
"POST",
|
|
6493
|
+
`/api/distribution/finance/corporate-transfer/${id}/upload-proof?${qs.toString()}`,
|
|
6494
|
+
null,
|
|
6495
|
+
signal
|
|
6496
|
+
);
|
|
6497
|
+
return resp.data ?? false;
|
|
6498
|
+
};
|
|
6499
|
+
Client.prototype.listMyCorporateTransfers = async function(signal) {
|
|
6500
|
+
const resp = await this.doJSON(
|
|
6501
|
+
"GET",
|
|
6502
|
+
`/api/distribution/finance/corporate-transfer/my`,
|
|
6503
|
+
null,
|
|
6504
|
+
signal
|
|
6505
|
+
);
|
|
6506
|
+
return resp.data ?? [];
|
|
6507
|
+
};
|
|
6508
|
+
|
|
6509
|
+
export { AgentRunStreamError, AgentRunsClient, AnthropicAdapter, AudienceEnum, BillingModeEnum, BucketClassCommercial, BucketClassGeneric, BusinessError, Client, ComplianceClient, CompliancePollError, LocalStorageTokenStore as DefaultBrowserTokenStore, DefaultRetryPolicy, ErrAuthDenied, ErrBillingCallbackCannotCommit, ErrBillingCommitRequiresLocalVerify, ErrBillingS2sForbidden, ErrBrowserOpen, ErrComplianceStepUpRequired, ErrDiscovery, ErrEnvelopeGateClosed, ErrOAuthCORSBlocked, ErrProviderNotConfigured, ErrProviderUnknownNoRetry, ErrRefreshProxyFailed, ErrRegistration, ErrSSLProxy, ErrSealApprovalContractHashMismatch, ErrSealApprovalExpired, ErrSealApprovalLocationMismatch, ErrSealApprovalNonceUsed, ErrSealApprovalNotApproved, ErrSealApprovalSealMismatch, ErrSealApprovalTransactorMismatch, ErrSealUseAlreadyConsumed, ErrStateMismatch, ErrTimeout, ErrTokenExchange, ErrTokenExpired, EventAuthURL, EventComplete, EventError, FileTokenStore, FilterStatusAdminBypass, FilterStatusDisabledByFlag, FilterStatusFallbackMissingUser, FilterStatusFallbackNoBuckets, FilterStatusFallbackTkdistError, FilterStatusFallbackTkdistSkew, FilterStatusInternalBypass, FilterStatusOK, FilterStatusUnknown, HTTPError, IdempotencyKeyHeader, InMemoryTokenStore, LocalStorageTokenStore, ModelNotFoundError, NetworkError, OpenAIAdapter, OrderTerminalError, ProductFamilyEnum, ProviderFormat, RETRY_ADVICE_REASONS, RateLimitError, RegionScopeEnum, ScopeAI, ScopeAccount, ScopeComplianceContractSigningRead, ScopeComplianceContractSigningWrite, ScopeComplianceContractTemplateRead, ScopeComplianceContractTemplateWrite, ScopeComplianceEvidenceRead, ScopeComplianceEvidenceWrite, ScopeComplianceReportsPublish, ScopeComplianceReportsRead, ScopeComplianceReportsWrite, ScopeComplianceSealApprovalApprove, ScopeComplianceSealApprovalRequest, ScopeComplianceSealManage, ScopeComplianceSealUseExecute, ScopeComplianceTimestampIssue, ScopeComplianceTimestampVerify, ScopeEntitlements, ScopeModels, ScopeModelsChat, ScopeProfile, ScopeSkillStore, ScopeSkills, ScopeTokenPackages, ScopeTools, ScopeToolsExecute, ScopeWallet, ScopeWalletReadonly, ServerToolTypeWebSearch, StreamError, ThinkingHigh, ThinkingHighMinMaxTokens, ThinkingMax, ThinkingMaxFallbackMaxTokens, ThinkingOff, allScopes, anthropicResponseTextContent, anthropicResponseThinkingContent, anthropicResponseToolUseBlocks, apiResponseBusinessError, apiResponseGetMessage, authorize, bucketInfoIsCommercial, bucketRowIsCommercial, buildBetas, classifyComplianceError, commerceScopes, completeWebAuthorizationRequest, complianceErrorToRetryAdvice, complianceScopes, computeBackoff, createWebAuthorizationRequest, defaultRetryable, defaultSafeToRetry, discover, discoverWebOAuthMetadata, discoverWithProfile, effectivePolicy, exchangeCode, extractAnthropicBlockMeta, fileLockDefaults, findDesktopVisualUnderstandingModel, findFirstModelByInputModality, generateState, getAdapter, getAdapterForModel, isBillingConfirmable, isComplianceBusinessError, isComplianceTerminalError, isSSECommentLine, isSSLError, maxEndUserIdLength, modelScopes, modelSupportsImageInput, modelSupportsInputModality, newFileTokenStore, newThinkingConfig, newTokenSet, newWebSearchTool, parseNotificationEvent, parseSettlement, parseSourcesEvent, refreshToken, register, registerWebOAuthClient, retryReasonForComplianceKey, retryReasonForOAuthError, revokeToken, sanitize_exports as sanitize, skillScopes, tokenSetIsExpired, uniqueMerge, validateEndUserId };
|
|
6130
6510
|
//# sourceMappingURL=index.mjs.map
|
|
6131
6511
|
//# sourceMappingURL=index.mjs.map
|