@downcity/services 0.1.60 → 0.1.63
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/LICENSE +183 -0
- package/bin/balance/amount.d.ts +52 -0
- package/bin/balance/amount.d.ts.map +1 -0
- package/bin/balance/amount.js +102 -0
- package/bin/balance/amount.js.map +1 -0
- package/bin/balance/index.d.ts +2 -0
- package/bin/balance/index.d.ts.map +1 -1
- package/bin/balance/index.js +1 -0
- package/bin/balance/index.js.map +1 -1
- package/bin/balance/routes.d.ts.map +1 -1
- package/bin/balance/routes.js +1 -0
- package/bin/balance/routes.js.map +1 -1
- package/bin/balance/schema.d.ts +10 -86
- package/bin/balance/schema.d.ts.map +1 -1
- package/bin/balance/schema.js +10 -26
- package/bin/balance/schema.js.map +1 -1
- package/bin/balance/service.d.ts +23 -88
- package/bin/balance/service.d.ts.map +1 -1
- package/bin/balance/service.js +74 -53
- package/bin/balance/service.js.map +1 -1
- package/bin/balance/types.d.ts +41 -21
- package/bin/balance/types.d.ts.map +1 -1
- package/bin/balance/types.js +4 -1
- package/bin/balance/types.js.map +1 -1
- package/bin/balance/utils.d.ts.map +1 -1
- package/bin/balance/utils.js +17 -9
- package/bin/balance/utils.js.map +1 -1
- package/bin/billing/index.d.ts +7 -0
- package/bin/billing/index.d.ts.map +1 -0
- package/bin/billing/index.js +6 -0
- package/bin/billing/index.js.map +1 -0
- package/bin/billing/routes.d.ts +14 -0
- package/bin/billing/routes.d.ts.map +1 -0
- package/bin/billing/routes.js +61 -0
- package/bin/billing/routes.js.map +1 -0
- package/bin/billing/schema.d.ts +582 -0
- package/bin/billing/schema.d.ts.map +1 -0
- package/bin/billing/schema.js +81 -0
- package/bin/billing/schema.js.map +1 -0
- package/bin/billing/service.d.ts +619 -0
- package/bin/billing/service.d.ts.map +1 -0
- package/bin/billing/service.js +457 -0
- package/bin/billing/service.js.map +1 -0
- package/bin/billing/types.d.ts +205 -0
- package/bin/billing/types.d.ts.map +1 -0
- package/bin/billing/types.js +10 -0
- package/bin/billing/types.js.map +1 -0
- package/bin/index.d.ts +5 -1
- package/bin/index.d.ts.map +1 -1
- package/bin/index.js +3 -1
- package/bin/index.js.map +1 -1
- package/bin/payment/index.d.ts.map +1 -1
- package/bin/payment/index.js +0 -1
- package/bin/payment/index.js.map +1 -1
- package/bin/payment/types.d.ts +5 -3
- package/bin/payment/types.d.ts.map +1 -1
- package/bin/payment-creem/creem.d.ts.map +1 -1
- package/bin/payment-creem/creem.js +15 -1
- package/bin/payment-creem/creem.js.map +1 -1
- package/bin/payment-creem/index.d.ts.map +1 -1
- package/bin/payment-creem/index.js +0 -1
- package/bin/payment-creem/index.js.map +1 -1
- package/bin/payment-creem/types.d.ts +0 -4
- package/bin/payment-creem/types.d.ts.map +1 -1
- package/bin/payment-dodo/dodo.d.ts.map +1 -1
- package/bin/payment-dodo/dodo.js +16 -2
- package/bin/payment-dodo/dodo.js.map +1 -1
- package/bin/payment-dodo/index.d.ts.map +1 -1
- package/bin/payment-dodo/index.js +0 -1
- package/bin/payment-dodo/index.js.map +1 -1
- package/bin/payment-dodo/types.d.ts +0 -4
- package/bin/payment-dodo/types.d.ts.map +1 -1
- package/bin/payment-stripe/index.d.ts.map +1 -1
- package/bin/payment-stripe/index.js +0 -1
- package/bin/payment-stripe/index.js.map +1 -1
- package/bin/payment-stripe/stripe.d.ts.map +1 -1
- package/bin/payment-stripe/stripe.js +14 -1
- package/bin/payment-stripe/stripe.js.map +1 -1
- package/bin/payment-stripe/types.d.ts +0 -4
- package/bin/payment-stripe/types.d.ts.map +1 -1
- package/bin/payment-waffo/index.d.ts.map +1 -1
- package/bin/payment-waffo/index.js +0 -1
- package/bin/payment-waffo/index.js.map +1 -1
- package/bin/payment-waffo/types.d.ts +0 -4
- package/bin/payment-waffo/types.d.ts.map +1 -1
- package/bin/payment-waffo/waffo.d.ts.map +1 -1
- package/bin/payment-waffo/waffo.js +15 -1
- package/bin/payment-waffo/waffo.js.map +1 -1
- package/bin/types/Amount.d.ts +25 -0
- package/bin/types/Amount.d.ts.map +1 -0
- package/bin/types/Amount.js +17 -0
- package/bin/types/Amount.js.map +1 -0
- package/package.json +2 -2
package/bin/balance/types.d.ts
CHANGED
|
@@ -2,7 +2,10 @@
|
|
|
2
2
|
* Balance 服务对外类型定义。
|
|
3
3
|
*
|
|
4
4
|
* 关键说明(中文)
|
|
5
|
-
* -
|
|
5
|
+
* - 存储与计算使用 microcredits,1 credit = 1_000_000 microcredits
|
|
6
|
+
* - API 中 `balance` / `balance_after` 表示 microcredits 整数
|
|
7
|
+
* - `balance_microcredits` / `balance_after_microcredits` 是同值的显式说明字段
|
|
8
|
+
* - `amount` 仍表示用户可理解的 credits 金额,`amount_microcredits` 表示精确整数金额
|
|
6
9
|
* - `redeem_code` 是一次性兑换码,用于直接给用户充值
|
|
7
10
|
* - 充值单 `topup` 与 `redeem_code` 是两条不同语义的充值链路
|
|
8
11
|
*/
|
|
@@ -11,18 +14,17 @@
|
|
|
11
14
|
*/
|
|
12
15
|
export interface BalanceServiceOptions {
|
|
13
16
|
/**
|
|
14
|
-
*
|
|
17
|
+
* 首次自动开户时要发放的初始余额,单位为 credits。
|
|
15
18
|
*
|
|
16
|
-
* 默认值为 `0
|
|
19
|
+
* 默认值为 `0`。允许最多 6 位小数,内部会转成 microcredits。
|
|
17
20
|
*/
|
|
18
21
|
init?: number;
|
|
19
22
|
/**
|
|
20
|
-
*
|
|
23
|
+
* 首次自动开户时要发放的初始余额,单位为 microcredits。
|
|
21
24
|
*
|
|
22
|
-
*
|
|
23
|
-
* 默认值为 `credits`。
|
|
25
|
+
* 设置后优先级高于 `init`。
|
|
24
26
|
*/
|
|
25
|
-
|
|
27
|
+
init_microcredits?: number;
|
|
26
28
|
}
|
|
27
29
|
/**
|
|
28
30
|
* 余额附加信息。
|
|
@@ -66,13 +68,16 @@ export interface BalanceAccount extends Record<string, unknown> {
|
|
|
66
68
|
*/
|
|
67
69
|
user_id: string;
|
|
68
70
|
/**
|
|
69
|
-
*
|
|
71
|
+
* 当前可用余额,单位为 microcredits。
|
|
72
|
+
*
|
|
73
|
+
* 说明:为了让 API 的余额语义明确,`balance` 本身就是 microcredits;
|
|
74
|
+
* `balance_microcredits` 保留为同值的显式别名。
|
|
70
75
|
*/
|
|
71
76
|
balance: number;
|
|
72
77
|
/**
|
|
73
|
-
*
|
|
78
|
+
* 当前可用余额,单位为 microcredits。
|
|
74
79
|
*/
|
|
75
|
-
|
|
80
|
+
balance_microcredits: number;
|
|
76
81
|
/**
|
|
77
82
|
* 账户创建时间。
|
|
78
83
|
*/
|
|
@@ -99,7 +104,7 @@ export interface BalanceLedgerEntry extends Record<string, unknown> {
|
|
|
99
104
|
*/
|
|
100
105
|
kind: BalanceLedgerKind;
|
|
101
106
|
/**
|
|
102
|
-
*
|
|
107
|
+
* 本次变动金额,单位为 credits。
|
|
103
108
|
*
|
|
104
109
|
* 约定:
|
|
105
110
|
* - 加款为正数
|
|
@@ -107,13 +112,20 @@ export interface BalanceLedgerEntry extends Record<string, unknown> {
|
|
|
107
112
|
*/
|
|
108
113
|
amount: number;
|
|
109
114
|
/**
|
|
110
|
-
*
|
|
115
|
+
* 本次变动金额,单位为 microcredits。
|
|
116
|
+
*/
|
|
117
|
+
amount_microcredits: number;
|
|
118
|
+
/**
|
|
119
|
+
* 本次变动后的余额快照,单位为 microcredits。
|
|
120
|
+
*
|
|
121
|
+
* 说明:`balance_after` 本身就是 microcredits;
|
|
122
|
+
* `balance_after_microcredits` 保留为同值的显式别名。
|
|
111
123
|
*/
|
|
112
124
|
balance_after: number;
|
|
113
125
|
/**
|
|
114
|
-
*
|
|
126
|
+
* 本次变动后的余额快照,单位为 microcredits。
|
|
115
127
|
*/
|
|
116
|
-
|
|
128
|
+
balance_after_microcredits: number;
|
|
117
129
|
/**
|
|
118
130
|
* 流水说明。
|
|
119
131
|
*/
|
|
@@ -144,13 +156,17 @@ export interface BalanceTopup extends Record<string, unknown> {
|
|
|
144
156
|
*/
|
|
145
157
|
user_id: string;
|
|
146
158
|
/**
|
|
147
|
-
*
|
|
159
|
+
* 充值金额,单位为 credits。
|
|
148
160
|
*/
|
|
149
161
|
amount: number;
|
|
150
162
|
/**
|
|
151
|
-
*
|
|
163
|
+
* 充值金额,单位为 microcredits。
|
|
152
164
|
*/
|
|
153
|
-
|
|
165
|
+
amount_microcredits: number;
|
|
166
|
+
/**
|
|
167
|
+
* 充值金额,单位为 USD cents。
|
|
168
|
+
*/
|
|
169
|
+
amount_usd_cents: number;
|
|
154
170
|
/**
|
|
155
171
|
* 当前状态。
|
|
156
172
|
*/
|
|
@@ -185,13 +201,13 @@ export interface BalanceRedeemCode extends Record<string, unknown> {
|
|
|
185
201
|
*/
|
|
186
202
|
redeem_code_id: string;
|
|
187
203
|
/**
|
|
188
|
-
*
|
|
204
|
+
* 充值金额,单位为 credits。
|
|
189
205
|
*/
|
|
190
206
|
amount: number;
|
|
191
207
|
/**
|
|
192
|
-
*
|
|
208
|
+
* 充值金额,单位为 microcredits。
|
|
193
209
|
*/
|
|
194
|
-
|
|
210
|
+
amount_microcredits: number;
|
|
195
211
|
/**
|
|
196
212
|
* 当前状态。
|
|
197
213
|
*/
|
|
@@ -238,9 +254,13 @@ export interface BalanceRedeemCode extends Record<string, unknown> {
|
|
|
238
254
|
*/
|
|
239
255
|
export interface BalanceCreateRedeemCodeInput extends BalanceExtra {
|
|
240
256
|
/**
|
|
241
|
-
*
|
|
257
|
+
* 兑换成功后要充值到用户账户的额度,单位为 credits。
|
|
242
258
|
*/
|
|
243
259
|
amount: number;
|
|
260
|
+
/**
|
|
261
|
+
* 兑换成功后要充值到用户账户的额度,单位为 microcredits。
|
|
262
|
+
*/
|
|
263
|
+
amount_microcredits?: number;
|
|
244
264
|
/**
|
|
245
265
|
* 可选自定义兑换码明文。
|
|
246
266
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/balance/types.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/balance/types.ts"],"names":[],"mappings":"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"}
|
package/bin/balance/types.js
CHANGED
|
@@ -2,7 +2,10 @@
|
|
|
2
2
|
* Balance 服务对外类型定义。
|
|
3
3
|
*
|
|
4
4
|
* 关键说明(中文)
|
|
5
|
-
* -
|
|
5
|
+
* - 存储与计算使用 microcredits,1 credit = 1_000_000 microcredits
|
|
6
|
+
* - API 中 `balance` / `balance_after` 表示 microcredits 整数
|
|
7
|
+
* - `balance_microcredits` / `balance_after_microcredits` 是同值的显式说明字段
|
|
8
|
+
* - `amount` 仍表示用户可理解的 credits 金额,`amount_microcredits` 表示精确整数金额
|
|
6
9
|
* - `redeem_code` 是一次性兑换码,用于直接给用户充值
|
|
7
10
|
* - 充值单 `topup` 与 `redeem_code` 是两条不同语义的充值链路
|
|
8
11
|
*/
|
package/bin/balance/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/balance/types.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/balance/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/balance/utils.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EACV,cAAc,EACd,kBAAkB,EAElB,YAAY,EAEZ,iBAAiB,EACjB,uBAAuB,EACxB,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/balance/utils.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EACV,cAAc,EACd,kBAAkB,EAElB,YAAY,EAEZ,iBAAiB,EACjB,uBAAuB,EACxB,MAAM,YAAY,CAAC;AAKpB;;GAEG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAIlE;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAErD;AAED;;GAEG;AACH,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAM9E;AAED;;GAEG;AACH,wBAAgB,2BAA2B,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAMjF;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAIrD;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAEpD;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,GAAG,MAAM,CAE/E;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CASpE;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,GAAG,MAAM,CAKhG;AAED;;GAEG;AACH,wBAAgB,QAAQ,IAAI,MAAM,CAOjC;AAED;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,SAAS,GAAG,MAAM,CAe1E;AAED;;GAEG;AACH,wBAAgB,kBAAkB,IAAI,MAAM,CAW3C;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAMnD;AAED;;GAEG;AACH,wBAAsB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAOlE;AAED;;GAEG;AACH,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,OAAO,GAAG,uBAAuB,GAAG,SAAS,CAO7F;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,cAAc,GAAG,cAAc,CASnE;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,kBAAkB,GAAG,kBAAkB,CAgB1E;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,YAAY,GAAG,YAAY,CAe7D;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,iBAAiB,GAAG;IAAE,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,iBAAiB,CAgBrG"}
|
package/bin/balance/utils.js
CHANGED
|
@@ -5,6 +5,7 @@
|
|
|
5
5
|
* - 所有输入都在这里统一做标准化
|
|
6
6
|
* - redeem_code 明文只在创建时短暂存在,落库前必须哈希
|
|
7
7
|
*/
|
|
8
|
+
import { microcreditsToCredits, microcreditsToUsdCents } from "./amount.js";
|
|
8
9
|
const REDEEM_CODE_ALPHABET = "ABCDEFGHJKLMNPQRSTUVWXYZ23456789";
|
|
9
10
|
/**
|
|
10
11
|
* 读取必填字符串。
|
|
@@ -167,10 +168,11 @@ export function normalizeRedeemCodeStatus(value) {
|
|
|
167
168
|
* 解析账户行。
|
|
168
169
|
*/
|
|
169
170
|
export function parseAccountRow(row) {
|
|
171
|
+
const balance_microcredits = Number(row.balance_microcredits ?? row.balance);
|
|
170
172
|
return {
|
|
171
173
|
user_id: String(row.user_id),
|
|
172
|
-
balance:
|
|
173
|
-
|
|
174
|
+
balance: balance_microcredits,
|
|
175
|
+
balance_microcredits,
|
|
174
176
|
created_at: String(row.created_at),
|
|
175
177
|
updated_at: String(row.updated_at),
|
|
176
178
|
};
|
|
@@ -179,13 +181,16 @@ export function parseAccountRow(row) {
|
|
|
179
181
|
* 解析流水行。
|
|
180
182
|
*/
|
|
181
183
|
export function parseLedgerRow(row) {
|
|
184
|
+
const amount_microcredits = Number(row.amount_microcredits ?? row.amount);
|
|
185
|
+
const balance_after_microcredits = Number(row.balance_after_microcredits ?? row.balance_after);
|
|
182
186
|
return {
|
|
183
187
|
entry_id: String(row.entry_id),
|
|
184
188
|
user_id: String(row.user_id),
|
|
185
189
|
kind: String(row.kind),
|
|
186
|
-
amount:
|
|
187
|
-
|
|
188
|
-
|
|
190
|
+
amount: microcreditsToCredits(amount_microcredits),
|
|
191
|
+
amount_microcredits,
|
|
192
|
+
balance_after: balance_after_microcredits,
|
|
193
|
+
balance_after_microcredits,
|
|
189
194
|
note: String(row.note ?? ""),
|
|
190
195
|
ref: String(row.ref ?? ""),
|
|
191
196
|
metadata_json: String(row.metadata_json ?? "{}"),
|
|
@@ -196,11 +201,13 @@ export function parseLedgerRow(row) {
|
|
|
196
201
|
* 解析充值单行。
|
|
197
202
|
*/
|
|
198
203
|
export function parseTopupRow(row) {
|
|
204
|
+
const amount_microcredits = Number(row.amount_microcredits ?? row.amount);
|
|
199
205
|
return {
|
|
200
206
|
topup_id: String(row.topup_id),
|
|
201
207
|
user_id: String(row.user_id),
|
|
202
|
-
amount:
|
|
203
|
-
|
|
208
|
+
amount: microcreditsToCredits(amount_microcredits),
|
|
209
|
+
amount_microcredits,
|
|
210
|
+
amount_usd_cents: microcreditsToUsdCents(amount_microcredits),
|
|
204
211
|
status: String(row.status),
|
|
205
212
|
note: String(row.note ?? ""),
|
|
206
213
|
ref: String(row.ref ?? ""),
|
|
@@ -213,10 +220,11 @@ export function parseTopupRow(row) {
|
|
|
213
220
|
* 解析 redeem_code 行。
|
|
214
221
|
*/
|
|
215
222
|
export function parseRedeemCodeRow(row) {
|
|
223
|
+
const amount_microcredits = Number(row.amount_microcredits ?? row.amount);
|
|
216
224
|
return {
|
|
217
225
|
redeem_code_id: String(row.redeem_code_id),
|
|
218
|
-
amount:
|
|
219
|
-
|
|
226
|
+
amount: microcreditsToCredits(amount_microcredits),
|
|
227
|
+
amount_microcredits,
|
|
220
228
|
status: String(row.status),
|
|
221
229
|
code_mask: String(row.code_mask ?? ""),
|
|
222
230
|
note: String(row.note ?? ""),
|
package/bin/balance/utils.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/balance/utils.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/balance/utils.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAWH,OAAO,EAAE,qBAAqB,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAC;AAE5E,MAAM,oBAAoB,GAAG,kCAAkC,CAAC;AAEhE;;GAEG;AACH,MAAM,UAAU,YAAY,CAAC,KAAc,EAAE,KAAa;IACxD,MAAM,UAAU,GAAG,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IAC9C,IAAI,CAAC,UAAU;QAAE,MAAM,IAAI,SAAS,CAAC,GAAG,KAAK,cAAc,CAAC,CAAC;IAC7D,OAAO,UAAU,CAAC;AACpB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,eAAe,CAAC,KAAa;IAC3C,OAAO,YAAY,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;AACxC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,wBAAwB,CAAC,KAAc,EAAE,KAAa;IACpE,MAAM,UAAU,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IACjC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,UAAU,CAAC,IAAI,UAAU,IAAI,CAAC,EAAE,CAAC;QACrD,MAAM,IAAI,SAAS,CAAC,GAAG,KAAK,6BAA6B,CAAC,CAAC;IAC7D,CAAC;IACD,OAAO,UAAU,CAAC;AACpB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,2BAA2B,CAAC,KAAc,EAAE,KAAa;IACvE,MAAM,UAAU,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IACjC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,UAAU,CAAC,IAAI,UAAU,GAAG,CAAC,EAAE,CAAC;QACpD,MAAM,IAAI,SAAS,CAAC,GAAG,KAAK,iCAAiC,CAAC,CAAC;IACjE,CAAC;IACD,OAAO,UAAU,CAAC;AACpB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,cAAc,CAAC,KAAc;IAC3C,MAAM,UAAU,GAAG,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC;IACvC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,UAAU,CAAC,IAAI,UAAU,IAAI,CAAC;QAAE,OAAO,EAAE,CAAC;IAChE,OAAO,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;AACnC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,aAAa,CAAC,KAAc;IAC1C,OAAO,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;AACpC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,aAAa,CAAC,IAAyC;IACrE,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;AACpC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,aAAa,CAAC,KAAa;IACzC,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,IAAI,IAAI,CAAC,CAAC;QACzC,OAAO,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC;YACnE,CAAC,CAAC,MAAiC;YACnC,CAAC,CAAC,EAAE,CAAC;IACT,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,aAAa,CAAC,OAAe,EAAE,IAAyC;IACtF,OAAO,IAAI,CAAC,SAAS,CAAC;QACpB,GAAG,aAAa,CAAC,OAAO,CAAC;QACzB,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC;KAChB,CAAC,CAAC;AACL,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,QAAQ;IACtB,MAAM,KAAK,GAAG,IAAI,UAAU,CAAC,EAAE,CAAC,CAAC;IACjC,MAAM,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;IAC9B,OAAO,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,GAAG,KAAK,CAAC,CAAC;SACvC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC;SACnB,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC;SACnB,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;AACxB,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,mBAAmB,CAAC,KAAc,EAAE,KAAK,GAAG,MAAM;IAChE,MAAM,UAAU,GAAG,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC;SACnC,IAAI,EAAE;SACN,WAAW,EAAE;SACb,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;IAE1B,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,MAAM,IAAI,SAAS,CAAC,GAAG,KAAK,cAAc,CAAC,CAAC;IAC9C,CAAC;IAED,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;QACpC,MAAM,IAAI,SAAS,CAAC,GAAG,KAAK,wCAAwC,CAAC,CAAC;IACxE,CAAC;IAED,OAAO,UAAU,CAAC;AACpB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,kBAAkB;IAChC,MAAM,KAAK,GAAG,IAAI,UAAU,CAAC,EAAE,CAAC,CAAC;IACjC,MAAM,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;IAE9B,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,oBAAoB,CAAC,KAAK,GAAG,oBAAoB,CAAC,MAAM,CAAC,CAAC,CAAC;IACtG,OAAO;QACL,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC;QAC1B,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC;QAC1B,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC;QAC3B,KAAK,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC;KAC7B,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACd,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,cAAc,CAAC,IAAY;IACzC,MAAM,UAAU,GAAG,mBAAmB,CAAC,IAAI,CAAC,CAAC;IAC7C,MAAM,IAAI,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACpC,MAAM,IAAI,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IAClC,MAAM,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,UAAU,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC;IAChF,OAAO,GAAG,IAAI,GAAG,YAAY,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,MAAM,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;AACrG,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,IAAY;IAC/C,MAAM,UAAU,GAAG,mBAAmB,CAAC,IAAI,CAAC,CAAC;IAC7C,MAAM,IAAI,GAAG,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;IAClD,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;IAC3D,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,UAAU,CAAC,MAAM,CAAC,CAAC;SACtC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;SACjD,IAAI,CAAC,EAAE,CAAC,CAAC;AACd,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,yBAAyB,CAAC,KAAc;IACtD,MAAM,UAAU,GAAG,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IAC9C,IAAI,CAAC,UAAU;QAAE,OAAO,SAAS,CAAC;IAClC,IAAI,UAAU,KAAK,QAAQ,IAAI,UAAU,KAAK,UAAU,IAAI,UAAU,KAAK,UAAU,EAAE,CAAC;QACtF,OAAO,UAAU,CAAC;IACpB,CAAC;IACD,MAAM,IAAI,SAAS,CAAC,mDAAmD,CAAC,CAAC;AAC3E,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,eAAe,CAAC,GAAmB;IACjD,MAAM,oBAAoB,GAAG,MAAM,CAAC,GAAG,CAAC,oBAAoB,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC;IAC7E,OAAO;QACL,OAAO,EAAE,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC;QAC5B,OAAO,EAAE,oBAAoB;QAC7B,oBAAoB;QACpB,UAAU,EAAE,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC;QAClC,UAAU,EAAE,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC;KACnC,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,cAAc,CAAC,GAAuB;IACpD,MAAM,mBAAmB,GAAG,MAAM,CAAC,GAAG,CAAC,mBAAmB,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC;IAC1E,MAAM,0BAA0B,GAAG,MAAM,CAAC,GAAG,CAAC,0BAA0B,IAAI,GAAG,CAAC,aAAa,CAAC,CAAC;IAC/F,OAAO;QACL,QAAQ,EAAE,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;QAC9B,OAAO,EAAE,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC;QAC5B,IAAI,EAAE,MAAM,CAAC,GAAG,CAAC,IAAI,CAAsB;QAC3C,MAAM,EAAE,qBAAqB,CAAC,mBAAmB,CAAC;QAClD,mBAAmB;QACnB,aAAa,EAAE,0BAA0B;QACzC,0BAA0B;QAC1B,IAAI,EAAE,MAAM,CAAC,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC;QAC5B,GAAG,EAAE,MAAM,CAAC,GAAG,CAAC,GAAG,IAAI,EAAE,CAAC;QAC1B,aAAa,EAAE,MAAM,CAAC,GAAG,CAAC,aAAa,IAAI,IAAI,CAAC;QAChD,UAAU,EAAE,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC;KACnC,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,aAAa,CAAC,GAAiB;IAC7C,MAAM,mBAAmB,GAAG,MAAM,CAAC,GAAG,CAAC,mBAAmB,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC;IAC1E,OAAO;QACL,QAAQ,EAAE,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;QAC9B,OAAO,EAAE,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC;QAC5B,MAAM,EAAE,qBAAqB,CAAC,mBAAmB,CAAC;QAClD,mBAAmB;QACnB,gBAAgB,EAAE,sBAAsB,CAAC,mBAAmB,CAAC;QAC7D,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,MAAM,CAAuB;QAChD,IAAI,EAAE,MAAM,CAAC,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC;QAC5B,GAAG,EAAE,MAAM,CAAC,GAAG,CAAC,GAAG,IAAI,EAAE,CAAC;QAC1B,aAAa,EAAE,MAAM,CAAC,GAAG,CAAC,aAAa,IAAI,IAAI,CAAC;QAChD,UAAU,EAAE,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC;QAClC,UAAU,EAAE,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC;KACnC,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,kBAAkB,CAAC,GAA+C;IAChF,MAAM,mBAAmB,GAAG,MAAM,CAAC,GAAG,CAAC,mBAAmB,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC;IAC1E,OAAO;QACL,cAAc,EAAE,MAAM,CAAC,GAAG,CAAC,cAAc,CAAC;QAC1C,MAAM,EAAE,qBAAqB,CAAC,mBAAmB,CAAC;QAClD,mBAAmB;QACnB,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,MAAM,CAA4B;QACrD,SAAS,EAAE,MAAM,CAAC,GAAG,CAAC,SAAS,IAAI,EAAE,CAAC;QACtC,IAAI,EAAE,MAAM,CAAC,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC;QAC5B,GAAG,EAAE,MAAM,CAAC,GAAG,CAAC,GAAG,IAAI,EAAE,CAAC;QAC1B,aAAa,EAAE,MAAM,CAAC,GAAG,CAAC,aAAa,IAAI,IAAI,CAAC;QAChD,mBAAmB,EAAE,MAAM,CAAC,GAAG,CAAC,mBAAmB,IAAI,EAAE,CAAC;QAC1D,WAAW,EAAE,MAAM,CAAC,GAAG,CAAC,WAAW,IAAI,EAAE,CAAC;QAC1C,UAAU,EAAE,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC;QAClC,UAAU,EAAE,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC;KACnC,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* billing 服务子模块公共入口。
|
|
3
|
+
*/
|
|
4
|
+
export { BillingService, billingService } from "./service.js";
|
|
5
|
+
export { billingCharges, billingPricingRules } from "./schema.js";
|
|
6
|
+
export type { BillingBalanceBridge, BillingCharge, BillingChargeQuery, BillingChargeStatus, BillingPricingRule, BillingPricingRuleInput, BillingPricingRuleQuery, BillingPricingRuleStatus, BillingServiceOptions, } from "./types.js";
|
|
7
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/billing/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC9D,OAAO,EAAE,cAAc,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAClE,YAAY,EACV,oBAAoB,EACpB,aAAa,EACb,kBAAkB,EAClB,mBAAmB,EACnB,kBAAkB,EAClB,uBAAuB,EACvB,uBAAuB,EACvB,wBAAwB,EACxB,qBAAqB,GACtB,MAAM,YAAY,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/billing/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC9D,OAAO,EAAE,cAAc,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Billing 服务 HTTP 路由装配模块。
|
|
3
|
+
*
|
|
4
|
+
* 关键说明(中文)
|
|
5
|
+
* - 管理端维护 pricing rule 和查看全量 charge
|
|
6
|
+
* - 用户侧只查看自己的 charge
|
|
7
|
+
*/
|
|
8
|
+
import type { ServiceInstallContext } from "@downcity/city";
|
|
9
|
+
import type { BillingService } from "./service.js";
|
|
10
|
+
/**
|
|
11
|
+
* 注册 Billing 服务 HTTP 路由。
|
|
12
|
+
*/
|
|
13
|
+
export declare function registerBillingRoutes(service: BillingService, ctx: ServiceInstallContext): void;
|
|
14
|
+
//# sourceMappingURL=routes.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"routes.d.ts","sourceRoot":"","sources":["../../src/billing/routes.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,qBAAqB,EAAuB,MAAM,gBAAgB,CAAC;AACjF,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAGnD;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,cAAc,EAAE,GAAG,EAAE,qBAAqB,GAAG,IAAI,CA2C/F"}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Billing 服务 HTTP 路由装配模块。
|
|
3
|
+
*
|
|
4
|
+
* 关键说明(中文)
|
|
5
|
+
* - 管理端维护 pricing rule 和查看全量 charge
|
|
6
|
+
* - 用户侧只查看自己的 charge
|
|
7
|
+
*/
|
|
8
|
+
/**
|
|
9
|
+
* 注册 Billing 服务 HTTP 路由。
|
|
10
|
+
*/
|
|
11
|
+
export function registerBillingRoutes(service, ctx) {
|
|
12
|
+
ctx.route({
|
|
13
|
+
method: "GET",
|
|
14
|
+
path: "/pricing",
|
|
15
|
+
auth: ["admin"],
|
|
16
|
+
handler: async (c) => {
|
|
17
|
+
const input = await c.json();
|
|
18
|
+
return c.jsonResponse({ items: await service.listPricingRules(input) });
|
|
19
|
+
},
|
|
20
|
+
});
|
|
21
|
+
ctx.route({
|
|
22
|
+
method: "POST",
|
|
23
|
+
path: "/pricing/upsert",
|
|
24
|
+
auth: ["admin"],
|
|
25
|
+
handler: async (c) => c.jsonResponse(await service.upsertPricingRule(await c.json())),
|
|
26
|
+
});
|
|
27
|
+
ctx.route({
|
|
28
|
+
method: "GET",
|
|
29
|
+
path: "/charges",
|
|
30
|
+
auth: ["admin"],
|
|
31
|
+
handler: async (c) => {
|
|
32
|
+
const input = await c.json();
|
|
33
|
+
return c.jsonResponse({ items: await service.listCharges(input) });
|
|
34
|
+
},
|
|
35
|
+
});
|
|
36
|
+
ctx.route({
|
|
37
|
+
method: "GET",
|
|
38
|
+
path: "/me",
|
|
39
|
+
auth: ["user"],
|
|
40
|
+
handler: async (c) => {
|
|
41
|
+
const input = await c.json();
|
|
42
|
+
return c.jsonResponse({
|
|
43
|
+
items: await service.listCharges({
|
|
44
|
+
...input,
|
|
45
|
+
user_id: readUserId(c),
|
|
46
|
+
town_id: c.town?.town_id,
|
|
47
|
+
}),
|
|
48
|
+
});
|
|
49
|
+
},
|
|
50
|
+
});
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* 读取当前 user_id。
|
|
54
|
+
*/
|
|
55
|
+
function readUserId(ctx) {
|
|
56
|
+
const user_id = String(ctx.user?.user_id ?? "").trim();
|
|
57
|
+
if (!user_id)
|
|
58
|
+
throw new TypeError("user_id is required");
|
|
59
|
+
return user_id;
|
|
60
|
+
}
|
|
61
|
+
//# sourceMappingURL=routes.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"routes.js","sourceRoot":"","sources":["../../src/billing/routes.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAMH;;GAEG;AACH,MAAM,UAAU,qBAAqB,CAAC,OAAuB,EAAE,GAA0B;IACvF,GAAG,CAAC,KAAK,CAAC;QACR,MAAM,EAAE,KAAK;QACb,IAAI,EAAE,UAAU;QAChB,IAAI,EAAE,CAAC,OAAO,CAAC;QACf,OAAO,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;YACnB,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,IAAI,EAA+B,CAAC;YAC1D,OAAO,CAAC,CAAC,YAAY,CAAC,EAAE,KAAK,EAAE,MAAM,OAAO,CAAC,gBAAgB,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAC1E,CAAC;KACF,CAAC,CAAC;IAEH,GAAG,CAAC,KAAK,CAAC;QACR,MAAM,EAAE,MAAM;QACd,IAAI,EAAE,iBAAiB;QACvB,IAAI,EAAE,CAAC,OAAO,CAAC;QACf,OAAO,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC,MAAM,OAAO,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC,IAAI,EAA2B,CAAC,CAAC;KAC/G,CAAC,CAAC;IAEH,GAAG,CAAC,KAAK,CAAC;QACR,MAAM,EAAE,KAAK;QACb,IAAI,EAAE,UAAU;QAChB,IAAI,EAAE,CAAC,OAAO,CAAC;QACf,OAAO,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;YACnB,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,IAAI,EAAsB,CAAC;YACjD,OAAO,CAAC,CAAC,YAAY,CAAC,EAAE,KAAK,EAAE,MAAM,OAAO,CAAC,WAAW,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QACrE,CAAC;KACF,CAAC,CAAC;IAEH,GAAG,CAAC,KAAK,CAAC;QACR,MAAM,EAAE,KAAK;QACb,IAAI,EAAE,KAAK;QACX,IAAI,EAAE,CAAC,MAAM,CAAC;QACd,OAAO,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;YACnB,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,IAAI,EAAsB,CAAC;YACjD,OAAO,CAAC,CAAC,YAAY,CAAC;gBACpB,KAAK,EAAE,MAAM,OAAO,CAAC,WAAW,CAAC;oBAC/B,GAAG,KAAK;oBACR,OAAO,EAAE,UAAU,CAAC,CAAC,CAAC;oBACtB,OAAO,EAAE,CAAC,CAAC,IAAI,EAAE,OAAO;iBACzB,CAAC;aACH,CAAC,CAAC;QACL,CAAC;KACF,CAAC,CAAC;AACL,CAAC;AAED;;GAEG;AACH,SAAS,UAAU,CAAC,GAAwB;IAC1C,MAAM,OAAO,GAAG,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,OAAO,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IACvD,IAAI,CAAC,OAAO;QAAE,MAAM,IAAI,SAAS,CAAC,qBAAqB,CAAC,CAAC;IACzD,OAAO,OAAO,CAAC;AACjB,CAAC"}
|