@downcity/services 0.1.50 → 0.1.55

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.
Files changed (63) hide show
  1. package/README.md +11 -12
  2. package/bin/index.d.ts +5 -8
  3. package/bin/index.d.ts.map +1 -1
  4. package/bin/index.js +3 -4
  5. package/bin/index.js.map +1 -1
  6. package/bin/payment/index.d.ts +17 -9
  7. package/bin/payment/index.d.ts.map +1 -1
  8. package/bin/payment/index.js +841 -33
  9. package/bin/payment/index.js.map +1 -1
  10. package/bin/payment/redirect.d.ts +39 -0
  11. package/bin/payment/redirect.d.ts.map +1 -0
  12. package/bin/payment/redirect.js +41 -0
  13. package/bin/payment/redirect.js.map +1 -0
  14. package/bin/payment/schema.d.ts +426 -0
  15. package/bin/payment/schema.d.ts.map +1 -0
  16. package/bin/payment/schema.js +41 -0
  17. package/bin/payment/schema.js.map +1 -0
  18. package/bin/payment/types.d.ts +300 -91
  19. package/bin/payment/types.d.ts.map +1 -1
  20. package/bin/payment/types.js +4 -4
  21. package/bin/payment-creem/index.d.ts.map +1 -1
  22. package/bin/payment-creem/index.js +8 -63
  23. package/bin/payment-creem/index.js.map +1 -1
  24. package/bin/payment-creem/types.d.ts +0 -19
  25. package/bin/payment-creem/types.d.ts.map +1 -1
  26. package/bin/payment-dodo/dodo.d.ts +119 -0
  27. package/bin/payment-dodo/dodo.d.ts.map +1 -0
  28. package/bin/payment-dodo/dodo.js +93 -0
  29. package/bin/payment-dodo/dodo.js.map +1 -0
  30. package/bin/payment-dodo/index.d.ts +17 -0
  31. package/bin/payment-dodo/index.d.ts.map +1 -0
  32. package/bin/payment-dodo/index.js +549 -0
  33. package/bin/payment-dodo/index.js.map +1 -0
  34. package/bin/payment-dodo/schema.d.ts +378 -0
  35. package/bin/payment-dodo/schema.d.ts.map +1 -0
  36. package/bin/payment-dodo/schema.js +47 -0
  37. package/bin/payment-dodo/schema.js.map +1 -0
  38. package/bin/payment-dodo/types.d.ts +261 -0
  39. package/bin/payment-dodo/types.d.ts.map +1 -0
  40. package/bin/payment-dodo/types.js +10 -0
  41. package/bin/payment-dodo/types.js.map +1 -0
  42. package/bin/payment-stripe/index.d.ts.map +1 -1
  43. package/bin/payment-stripe/index.js +10 -73
  44. package/bin/payment-stripe/index.js.map +1 -1
  45. package/bin/payment-stripe/types.d.ts +0 -24
  46. package/bin/payment-stripe/types.d.ts.map +1 -1
  47. package/bin/payment-waffo/index.d.ts +17 -0
  48. package/bin/payment-waffo/index.d.ts.map +1 -0
  49. package/bin/payment-waffo/index.js +550 -0
  50. package/bin/payment-waffo/index.js.map +1 -0
  51. package/bin/payment-waffo/schema.d.ts +388 -0
  52. package/bin/payment-waffo/schema.d.ts.map +1 -0
  53. package/bin/payment-waffo/schema.js +39 -0
  54. package/bin/payment-waffo/schema.js.map +1 -0
  55. package/bin/payment-waffo/types.d.ts +289 -0
  56. package/bin/payment-waffo/types.d.ts.map +1 -0
  57. package/bin/payment-waffo/types.js +10 -0
  58. package/bin/payment-waffo/types.js.map +1 -0
  59. package/bin/payment-waffo/waffo.d.ts +111 -0
  60. package/bin/payment-waffo/waffo.d.ts.map +1 -0
  61. package/bin/payment-waffo/waffo.js +84 -0
  62. package/bin/payment-waffo/waffo.js.map +1 -0
  63. package/package.json +8 -4
package/README.md CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  Downcity 官方服务聚合包。
4
4
 
5
- 这个包统一提供账号、余额、usage、Stripe 支付与 Creem 支付等官方服务,避免业务侧分别安装多个 `service-*` 包。
5
+ 这个包统一提供账号、余额、usage、统一 Payment 与多支付 provider 等官方服务,避免业务侧分别安装多个 `service-*` 包。
6
6
 
7
7
  ## 安装
8
8
 
@@ -16,14 +16,12 @@ pnpm add @downcity/services
16
16
  import {
17
17
  accountsService,
18
18
  balanceService,
19
- creemPaymentMethod,
20
- creemPaymentService,
19
+ creemPaymentProvider,
20
+ dodoPaymentProvider,
21
21
  paymentService,
22
- stripePaymentMethod,
23
- stripePaymentService,
22
+ stripePaymentProvider,
24
23
  usageService,
25
- type CreemPaymentServiceBalanceBridge,
26
- type StripePaymentServiceBalanceBridge,
24
+ waffoPaymentProvider,
27
25
  } from "@downcity/services";
28
26
  ```
29
27
 
@@ -36,7 +34,8 @@ const methods = await guest.service("payment").get("methods");
36
34
  再根据返回结果调用具体支付方式,例如:
37
35
 
38
36
  ```ts
39
- const checkout = await user.service("payment.stripe").action("checkout/create").invoke({
37
+ const checkout = await user.service("payment").action("checkout/create").invoke({
38
+ method_id: "stripe",
40
39
  topup_id: "topup_demo",
41
40
  });
42
41
  ```
@@ -44,7 +43,8 @@ const checkout = await user.service("payment.stripe").action("checkout/create").
44
43
  Creem 支付方式使用同样的调用形态:
45
44
 
46
45
  ```ts
47
- const checkout = await user.service("payment.creem").action("checkout/create").invoke({
46
+ const checkout = await user.service("payment").action("checkout/create").invoke({
47
+ method_id: "creem",
48
48
  topup_id: "topup_demo",
49
49
  });
50
50
  ```
@@ -53,7 +53,6 @@ const checkout = await user.service("payment.creem").action("checkout/create").i
53
53
 
54
54
  - `accountsService()`:注册、登录、邮箱验证、GitHub/Google OAuth 与 `user_token` 签发
55
55
  - `balanceService()`:全局余额账户、流水、充值单与兑换码
56
- - `paymentService()`:统一暴露当前 City 可用的支付方式列表
56
+ - `paymentService()`:统一暴露支付方式、checkout、webhook、payments 与入账同步
57
57
  - `usageService()`:记录真实用户侧 service 调用事件
58
- - `stripePaymentService()`:把 Stripe 一次性支付同步成 balance topup 到账
59
- - `creemPaymentService()`:把 Creem 一次性支付同步成 balance topup 到账
58
+ - `stripePaymentProvider()` / `creemPaymentProvider()` / `dodoPaymentProvider()` / `waffoPaymentProvider()`:作为 provider 挂到统一 `paymentService()`
package/bin/index.d.ts CHANGED
@@ -3,7 +3,8 @@
3
3
  *
4
4
  * 关键说明(中文)
5
5
  * - 对外统一暴露 Downcity 官方服务
6
- * - 保留 accounts / balance / payment / payment-stripe / usage 五个清晰子模块
6
+ * - 保留 accounts / balance / payment / usage 四个清晰服务边界
7
+ * - Stripe / Creem / Dodo / Waffo 统一作为 payment provider 暴露
7
8
  * - 业务侧只需要从一个包完成导入
8
9
  */
9
10
  export { accountsOAuthStates, userProfiles } from "./accounts/schema.js";
@@ -12,13 +13,9 @@ export type { AccountsServiceOptions } from "./accounts/index.js";
12
13
  export { balanceAccounts, balanceLedger, balanceRedeemCodes, balanceTopups } from "./balance/schema.js";
13
14
  export { BalanceService, balanceService } from "./balance/service.js";
14
15
  export type { BalanceAccount, BalanceCreateRedeemCodeInput, BalanceExtra, BalanceHistoryQuery, BalanceLedgerEntry, BalanceLedgerKind, BalanceRedeemCode, BalanceRedeemCodeIssueResult, BalanceRedeemCodeQuery, BalanceRedeemCodeRedeemResult, BalanceRedeemCodeStatus, BalanceServiceOptions, BalanceTopup, BalanceTopupQuery, BalanceTopupStatus, } from "./balance/types.js";
15
- export { creemPaymentMethod, paymentService, stripePaymentMethod } from "./payment/index.js";
16
- export type { PaymentMethodDefinition, PaymentMethodItem, PaymentMethodType, PaymentServiceOptions, } from "./payment/types.js";
17
- export type { CreemPaymentMethodOptions, StripePaymentMethodOptions } from "./payment/types.js";
18
- export { stripeEvents, stripePayments, stripePaymentService } from "./payment-stripe/index.js";
19
- export type { StripeCheckoutCreateResult, StripeCreateCheckoutInput, StripeEventRecord, StripeEventSyncStatus, StripePaymentRecord, StripePaymentServiceBalanceBridge, StripePaymentServiceOptions, StripePaymentStatus, StripePaymentTopupRecord, StripeWebhookEvent, } from "./payment-stripe/types.js";
20
- export { creemEvents, creemPayments, creemPaymentService } from "./payment-creem/index.js";
21
- export type { CreemCheckoutCreateResult, CreemCreateCheckoutInput, CreemEventRecord, CreemEventSyncStatus, CreemPaymentRecord, CreemPaymentServiceBalanceBridge, CreemPaymentServiceOptions, CreemPaymentStatus, CreemPaymentTopupRecord, CreemWebhookEvent, } from "./payment-creem/types.js";
16
+ export { creemPaymentProvider, dodoPaymentProvider, paymentService, stripePaymentProvider, waffoPaymentProvider, } from "./payment/index.js";
17
+ export type { PaymentCheckoutCreateResult, PaymentCreateCheckoutInput, PaymentEventRecord, PaymentEventSyncStatus, PaymentMethodItem, PaymentMethodReason, PaymentMethodType, PaymentProvider, PaymentProviderCheckoutInput, PaymentProviderCheckoutResult, PaymentProviderContext, PaymentProviderWebhookEvent, PaymentProviderWebhookInput, PaymentRecord, PaymentServiceBalanceBridge, PaymentServiceOptions, PaymentStatus, PaymentTopupRecord, } from "./payment/types.js";
18
+ export type { CreemPaymentProviderOptions, DodoPaymentProviderOptions, StripePaymentProviderOptions, WaffoPaymentProviderOptions, } from "./payment/types.js";
22
19
  export { usageEvents, usageService } from "./usage/index.js";
23
20
  export type { UsageServiceOptions } from "./usage/index.js";
24
21
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,mBAAmB,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACzE,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACvE,YAAY,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAElE,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,kBAAkB,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACxG,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtE,YAAY,EACV,cAAc,EACd,4BAA4B,EAC5B,YAAY,EACZ,mBAAmB,EACnB,kBAAkB,EAClB,iBAAiB,EACjB,iBAAiB,EACjB,4BAA4B,EAC5B,sBAAsB,EACtB,6BAA6B,EAC7B,uBAAuB,EACvB,qBAAqB,EACrB,YAAY,EACZ,iBAAiB,EACjB,kBAAkB,GACnB,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EAAE,kBAAkB,EAAE,cAAc,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAC7F,YAAY,EACV,uBAAuB,EACvB,iBAAiB,EACjB,iBAAiB,EACjB,qBAAqB,GACtB,MAAM,oBAAoB,CAAC;AAC5B,YAAY,EAAE,yBAAyB,EAAE,0BAA0B,EAAE,MAAM,oBAAoB,CAAC;AAEhG,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AAC/F,YAAY,EACV,0BAA0B,EAC1B,yBAAyB,EACzB,iBAAiB,EACjB,qBAAqB,EACrB,mBAAmB,EACnB,iCAAiC,EACjC,2BAA2B,EAC3B,mBAAmB,EACnB,wBAAwB,EACxB,kBAAkB,GACnB,MAAM,2BAA2B,CAAC;AAEnC,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC3F,YAAY,EACV,yBAAyB,EACzB,wBAAwB,EACxB,gBAAgB,EAChB,oBAAoB,EACpB,kBAAkB,EAClB,gCAAgC,EAChC,0BAA0B,EAC1B,kBAAkB,EAClB,uBAAuB,EACvB,iBAAiB,GAClB,MAAM,0BAA0B,CAAC;AAElC,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAC7D,YAAY,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,mBAAmB,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACzE,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACvE,YAAY,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAElE,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,kBAAkB,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACxG,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtE,YAAY,EACV,cAAc,EACd,4BAA4B,EAC5B,YAAY,EACZ,mBAAmB,EACnB,kBAAkB,EAClB,iBAAiB,EACjB,iBAAiB,EACjB,4BAA4B,EAC5B,sBAAsB,EACtB,6BAA6B,EAC7B,uBAAuB,EACvB,qBAAqB,EACrB,YAAY,EACZ,iBAAiB,EACjB,kBAAkB,GACnB,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EACL,oBAAoB,EACpB,mBAAmB,EACnB,cAAc,EACd,qBAAqB,EACrB,oBAAoB,GACrB,MAAM,oBAAoB,CAAC;AAC5B,YAAY,EACV,2BAA2B,EAC3B,0BAA0B,EAC1B,kBAAkB,EAClB,sBAAsB,EACtB,iBAAiB,EACjB,mBAAmB,EACnB,iBAAiB,EACjB,eAAe,EACf,4BAA4B,EAC5B,6BAA6B,EAC7B,sBAAsB,EACtB,2BAA2B,EAC3B,2BAA2B,EAC3B,aAAa,EACb,2BAA2B,EAC3B,qBAAqB,EACrB,aAAa,EACb,kBAAkB,GACnB,MAAM,oBAAoB,CAAC;AAC5B,YAAY,EACV,2BAA2B,EAC3B,0BAA0B,EAC1B,4BAA4B,EAC5B,2BAA2B,GAC5B,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAC7D,YAAY,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC"}
package/bin/index.js CHANGED
@@ -3,15 +3,14 @@
3
3
  *
4
4
  * 关键说明(中文)
5
5
  * - 对外统一暴露 Downcity 官方服务
6
- * - 保留 accounts / balance / payment / payment-stripe / usage 五个清晰子模块
6
+ * - 保留 accounts / balance / payment / usage 四个清晰服务边界
7
+ * - Stripe / Creem / Dodo / Waffo 统一作为 payment provider 暴露
7
8
  * - 业务侧只需要从一个包完成导入
8
9
  */
9
10
  export { accountsOAuthStates, userProfiles } from "./accounts/schema.js";
10
11
  export { AccountsService, accountsService } from "./accounts/index.js";
11
12
  export { balanceAccounts, balanceLedger, balanceRedeemCodes, balanceTopups } from "./balance/schema.js";
12
13
  export { BalanceService, balanceService } from "./balance/service.js";
13
- export { creemPaymentMethod, paymentService, stripePaymentMethod } from "./payment/index.js";
14
- export { stripeEvents, stripePayments, stripePaymentService } from "./payment-stripe/index.js";
15
- export { creemEvents, creemPayments, creemPaymentService } from "./payment-creem/index.js";
14
+ export { creemPaymentProvider, dodoPaymentProvider, paymentService, stripePaymentProvider, waffoPaymentProvider, } from "./payment/index.js";
16
15
  export { usageEvents, usageService } from "./usage/index.js";
17
16
  //# sourceMappingURL=index.js.map
package/bin/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,mBAAmB,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACzE,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAGvE,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,kBAAkB,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACxG,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAmBtE,OAAO,EAAE,kBAAkB,EAAE,cAAc,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAS7F,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AAc/F,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAc3F,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,mBAAmB,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACzE,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAGvE,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,kBAAkB,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACxG,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAmBtE,OAAO,EACL,oBAAoB,EACpB,mBAAmB,EACnB,cAAc,EACd,qBAAqB,EACrB,oBAAoB,GACrB,MAAM,oBAAoB,CAAC;AA4B5B,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC"}
@@ -1,23 +1,31 @@
1
1
  /**
2
- * Downcity 官方 Payment 服务。
2
+ * Downcity 官方 Payment 统一服务。
3
3
  *
4
4
  * 关键说明(中文)
5
- * - 这是统一的支付入口服务
6
- * - 当前只负责暴露 methods,让前端知道有哪些支付方式可用
7
- * - 具体支付链路仍由 `payment.stripe` 之类的具体服务承接
5
+ * - payment 是唯一支付服务,Stripe / Creem / Dodo / Waffo 都只是 provider。
6
+ * - 统一负责 checkout、本地支付记录、webhook 幂等、状态同步和 balance 入账。
7
+ * - 所有 provider 共用 `/v1/payment/*` 路由和统一 payments/events 表。
8
8
  */
9
9
  import type { ServiceDefinition } from "@downcity/city";
10
- import type { PaymentMethodDefinition, PaymentServiceOptions, CreemPaymentMethodOptions, StripePaymentMethodOptions } from "./types.js";
10
+ import type { CreemPaymentProviderOptions, DodoPaymentProviderOptions, PaymentProvider, PaymentServiceOptions, StripePaymentProviderOptions, WaffoPaymentProviderOptions } from "./types.js";
11
11
  /**
12
12
  * 创建统一 Payment 服务。
13
13
  */
14
14
  export declare function paymentService(options: PaymentServiceOptions): ServiceDefinition;
15
15
  /**
16
- * 生成 Stripe 支付方式定义。
16
+ * 创建 Stripe payment provider。
17
17
  */
18
- export declare function stripePaymentMethod(options?: StripePaymentMethodOptions): PaymentMethodDefinition;
18
+ export declare function stripePaymentProvider(options?: StripePaymentProviderOptions): PaymentProvider;
19
19
  /**
20
- * 生成 Creem 支付方式定义。
20
+ * 创建 Creem payment provider。
21
21
  */
22
- export declare function creemPaymentMethod(options?: CreemPaymentMethodOptions): PaymentMethodDefinition;
22
+ export declare function creemPaymentProvider(options?: CreemPaymentProviderOptions): PaymentProvider;
23
+ /**
24
+ * 创建 Dodo Payments provider。
25
+ */
26
+ export declare function dodoPaymentProvider(options?: DodoPaymentProviderOptions): PaymentProvider;
27
+ /**
28
+ * 创建 Waffo Pancake provider。
29
+ */
30
+ export declare function waffoPaymentProvider(options?: WaffoPaymentProviderOptions): PaymentProvider;
23
31
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/payment/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,KAAK,EACV,uBAAuB,EAEvB,qBAAqB,EACrB,yBAAyB,EACzB,0BAA0B,EAC3B,MAAM,YAAY,CAAC;AAEpB;;GAEG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,qBAAqB,GAAG,iBAAiB,CAuBhF;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,GAAE,0BAA+B,GAAG,uBAAuB,CAiBrG;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,GAAE,yBAA8B,GAAG,uBAAuB,CAmBnG"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/payment/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAkB,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAOxE,OAAO,KAAK,EACV,2BAA2B,EAC3B,0BAA0B,EAM1B,eAAe,EAMf,qBAAqB,EAErB,4BAA4B,EAC5B,2BAA2B,EAC5B,MAAM,YAAY,CAAC;AA+BpB;;GAEG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,qBAAqB,GAAG,iBAAiB,CAwOhF;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,GAAE,4BAAiC,GAAG,eAAe,CAgFjG;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,GAAE,2BAAgC,GAAG,eAAe,CA+E/F;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,GAAE,0BAA+B,GAAG,eAAe,CA2F7F;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,GAAE,2BAAgC,GAAG,eAAe,CAyF/F"}