@h-ai/api-contract 0.1.0-alpha.67 → 0.1.0-alpha.68
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/README.en.md +16 -0
- package/README.ja.md +16 -0
- package/README.md +16 -0
- package/dist/ai/index.d.ts +981 -200
- package/dist/ai/index.js +2 -2
- package/dist/{chunk-RVSGP2GF.js → chunk-G3SME6V5.js} +4 -5
- package/dist/chunk-G3SME6V5.js.map +1 -0
- package/dist/{chunk-VSPYX4DD.js → chunk-G55ATYDA.js} +64 -39
- package/dist/chunk-G55ATYDA.js.map +1 -0
- package/dist/{chunk-3QSKWVLP.js → chunk-IVZVAWEF.js} +30 -17
- package/dist/chunk-IVZVAWEF.js.map +1 -0
- package/dist/{chunk-CUU2F6YD.js → chunk-JKPLID6E.js} +2 -2
- package/dist/chunk-JKPLID6E.js.map +1 -0
- package/dist/{chunk-JIQINMLG.js → chunk-R5GDWFYC.js} +7 -7
- package/dist/chunk-R5GDWFYC.js.map +1 -0
- package/dist/iam/index.d.ts +845 -32
- package/dist/iam/index.js +2 -2
- package/dist/index.d.ts +196 -89
- package/dist/index.js +10 -10
- package/dist/index.js.map +1 -1
- package/dist/payment/index.d.ts +218 -28
- package/dist/payment/index.js +2 -2
- package/dist/storage/index.d.ts +414 -161
- package/dist/storage/index.js +2 -2
- package/package.json +3 -2
- package/dist/chunk-3QSKWVLP.js.map +0 -1
- package/dist/chunk-CUU2F6YD.js.map +0 -1
- package/dist/chunk-JIQINMLG.js.map +0 -1
- package/dist/chunk-RVSGP2GF.js.map +0 -1
- package/dist/chunk-VSPYX4DD.js.map +0 -1
|
@@ -1,22 +1,22 @@
|
|
|
1
|
-
import { haiResultSchema, route } from './chunk-
|
|
1
|
+
import { haiResultSchema, route } from './chunk-JKPLID6E.js';
|
|
2
2
|
import { z } from 'zod';
|
|
3
3
|
|
|
4
4
|
var PaymentProviderSchema = z.enum(["wechat", "alipay", "stripe"]);
|
|
5
|
-
var PaymentTradeTypeSchema = z.enum(["jsapi", "h5"
|
|
5
|
+
var PaymentTradeTypeSchema = z.enum(["jsapi", "h5"]);
|
|
6
6
|
var PaymentCreateOrderInputSchema = z.object({
|
|
7
7
|
provider: PaymentProviderSchema,
|
|
8
8
|
amount: z.number().int().min(1),
|
|
9
9
|
description: z.string().min(1),
|
|
10
10
|
tradeType: PaymentTradeTypeSchema,
|
|
11
|
-
userId: z.string().optional(),
|
|
11
|
+
userId: z.string().trim().min(1).max(128).optional(),
|
|
12
12
|
metadata: z.record(z.string(), z.string()).optional()
|
|
13
|
-
});
|
|
13
|
+
}).strict().refine((input) => input.tradeType === (input.provider === "wechat" ? "jsapi" : "h5"), { path: ["tradeType"] }).refine((input) => input.provider !== "wechat" || input.userId !== void 0, { path: ["userId"] });
|
|
14
14
|
var PaymentCreateOrderDataSchema = z.object({
|
|
15
15
|
provider: PaymentProviderSchema,
|
|
16
16
|
tradeType: PaymentTradeTypeSchema,
|
|
17
17
|
clientParams: z.record(z.string(), z.unknown()),
|
|
18
18
|
prepayId: z.string().optional()
|
|
19
|
-
});
|
|
19
|
+
}).refine((order) => order.tradeType === (order.provider === "wechat" ? "jsapi" : "h5"), { path: ["tradeType"] });
|
|
20
20
|
var PaymentQueryOrderInputSchema = z.object({
|
|
21
21
|
orderNo: z.string().min(1)
|
|
22
22
|
});
|
|
@@ -63,5 +63,5 @@ var paymentContract = {
|
|
|
63
63
|
};
|
|
64
64
|
|
|
65
65
|
export { PaymentCreateOrderDataSchema, PaymentCreateOrderInputSchema, PaymentNotifyMessageSchema, PaymentOrderSchema, PaymentProviderSchema, PaymentQueryOrderInputSchema, PaymentRefundDataSchema, PaymentRefundInputSchema, PaymentStripeNotifyDataSchema, PaymentTradeTypeSchema, paymentContract };
|
|
66
|
-
//# sourceMappingURL=chunk-
|
|
67
|
-
//# sourceMappingURL=chunk-
|
|
66
|
+
//# sourceMappingURL=chunk-R5GDWFYC.js.map
|
|
67
|
+
//# sourceMappingURL=chunk-R5GDWFYC.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/payment/payment-schemas.ts","../src/payment/payment-contract.ts"],"names":["z"],"mappings":"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","file":"chunk-R5GDWFYC.js","sourcesContent":["import type { HaiResult } from '@h-ai/core'\nimport { z } from 'zod'\n\n/**\n * 支付渠道 Schema。\n * @example\n * ```ts\n * import { PaymentProviderSchema } from '@h-ai/api-contract'\n *\n * const value = PaymentProviderSchema.parse('wechat')\n * void value\n * ```\n */\nexport const PaymentProviderSchema = z.enum(['wechat', 'alipay', 'stripe'])\n\n/**\n * 完整实现的支付类型:微信 jsapi,支付宝/Stripe h5。\n * @example\n * ```ts\n * import { PaymentTradeTypeSchema } from '@h-ai/api-contract'\n *\n * const value = PaymentTradeTypeSchema.parse('jsapi')\n * void value\n * ```\n */\nexport const PaymentTradeTypeSchema = z.enum(['jsapi', 'h5'])\n\n/**\n * 创建支付订单入参 Schema。\n * @example\n * ```ts\n * import { PaymentCreateOrderInputSchema } from '@h-ai/api-contract'\n *\n * const value = PaymentCreateOrderInputSchema.parse({\n * provider: 'wechat',\n * amount: 100,\n * description: 'Example order',\n * tradeType: 'jsapi',\n * userId: 'example-openid'\n * })\n * void value\n * ```\n */\nexport const PaymentCreateOrderInputSchema = z.object({\n provider: PaymentProviderSchema,\n amount: z.number().int().min(1),\n description: z.string().min(1),\n tradeType: PaymentTradeTypeSchema,\n userId: z.string().trim().min(1).max(128).optional(),\n metadata: z.record(z.string(), z.string()).optional(),\n}).strict().refine(input => input.tradeType === (input.provider === 'wechat' ? 'jsapi' : 'h5'), { path: ['tradeType'] }).refine(input => input.provider !== 'wechat' || input.userId !== undefined, { path: ['userId'] })\n\n/**\n * 创建支付订单业务数据 Schema。\n * @example\n * ```ts\n * import { PaymentCreateOrderDataSchema } from '@h-ai/api-contract'\n *\n * const value = PaymentCreateOrderDataSchema.parse({\n * provider: 'wechat',\n * tradeType: 'jsapi',\n * prepayId: 'example-prepay',\n * clientParams: {\n * appId: 'wx-example',\n * timeStamp: '1767225600',\n * nonceStr: 'example-nonce',\n * package: 'prepay_id=example-prepay',\n * signType: 'RSA',\n * paySign: 'example-only-signature'\n * }\n * })\n * void value\n * ```\n */\nexport const PaymentCreateOrderDataSchema = z.object({\n provider: PaymentProviderSchema,\n tradeType: PaymentTradeTypeSchema,\n clientParams: z.record(z.string(), z.unknown()),\n prepayId: z.string().optional(),\n}).refine(order => order.tradeType === (order.provider === 'wechat' ? 'jsapi' : 'h5'), { path: ['tradeType'] })\n\n/**\n * 查询支付订单入参 Schema。\n * @example\n * ```ts\n * import { PaymentQueryOrderInputSchema } from '@h-ai/api-contract'\n *\n * const value = PaymentQueryOrderInputSchema.parse({\n * orderNo: 'order_1'\n * })\n * void value\n * ```\n */\nexport const PaymentQueryOrderInputSchema = z.object({\n orderNo: z.string().min(1),\n})\n\n/**\n * 支付订单业务数据 Schema。\n * @example\n * ```ts\n * import { PaymentOrderSchema } from '@h-ai/api-contract'\n *\n * const value = PaymentOrderSchema.parse({\n * orderNo: 'order_1',\n * status: 'pending',\n * amount: 0\n * })\n * void value\n * ```\n */\nexport const PaymentOrderSchema = z.object({\n orderNo: z.string(),\n transactionId: z.string().optional(),\n status: z.enum(['pending', 'paid', 'closed', 'refunded', 'failed']),\n amount: z.number(),\n // ISO 8601 时间戳(例如 `2024-01-02T03:04:05.000Z`),由服务端以 `Date#toISOString()` 序列化。\n paidAt: z.iso.datetime().optional(),\n})\n\n/**\n * 退款入参 Schema。\n * @example\n * ```ts\n * import { PaymentRefundInputSchema } from '@h-ai/api-contract'\n *\n * const value = PaymentRefundInputSchema.parse({\n * provider: 'wechat',\n * orderNo: 'order_1',\n * refundNo: 'refund_1',\n * amount: 1\n * })\n * void value\n * ```\n */\nexport const PaymentRefundInputSchema = z.object({\n provider: PaymentProviderSchema,\n orderNo: z.string(),\n refundNo: z.string(),\n amount: z.number().int().min(1),\n reason: z.string().optional(),\n})\n\n/**\n * 退款业务数据 Schema。\n * @example\n * ```ts\n * import { PaymentRefundDataSchema } from '@h-ai/api-contract'\n *\n * const value = PaymentRefundDataSchema.parse({\n * refundNo: 'refund_1',\n * refundId: 'example',\n * status: 'processing'\n * })\n * void value\n * ```\n */\nexport const PaymentRefundDataSchema = z.object({\n refundNo: z.string(),\n refundId: z.string(),\n status: z.enum(['processing', 'success', 'failed']),\n})\n\n/**\n * 微信/支付宝通知响应 Schema。\n * @example\n * ```ts\n * import { PaymentNotifyMessageSchema } from '@h-ai/api-contract'\n *\n * const value = PaymentNotifyMessageSchema.parse({\n * code: 'example-1',\n * message: 'example'\n * })\n * void value\n * ```\n */\nexport const PaymentNotifyMessageSchema = z.object({\n code: z.string(),\n message: z.string(),\n})\n\n/**\n * Stripe 通知响应 Schema。\n * @example\n * ```ts\n * import { PaymentStripeNotifyDataSchema } from '@h-ai/api-contract'\n *\n * const value = PaymentStripeNotifyDataSchema.parse({\n * received: true\n * })\n * void value\n * ```\n */\nexport const PaymentStripeNotifyDataSchema = z.object({\n received: z.boolean(),\n})\n\n/**\n * 按渠道和已实现支付方式创建订单的请求。\n * @example\n * ```ts\n * import type { PaymentCreateOrderInput } from '@h-ai/api-contract'\n * import { PaymentCreateOrderInputSchema } from '@h-ai/api-contract'\n *\n * const value: PaymentCreateOrderInput = PaymentCreateOrderInputSchema.parse({\n * provider: 'wechat',\n * amount: 100,\n * description: 'Example order',\n * tradeType: 'jsapi',\n * userId: 'example-openid'\n * })\n * void value\n * ```\n */\nexport type PaymentCreateOrderInput = z.infer<typeof PaymentCreateOrderInputSchema>\n/**\n * 以 HaiResult 区分成功业务数据和公共错误的 PaymentCreateOrderOutput 响应。\n * @example\n * ```ts\n * import type { PaymentCreateOrderOutput } from '@h-ai/api-contract'\n * import { PaymentCreateOrderDataSchema } from '@h-ai/api-contract'\n * import { ok } from '@h-ai/core'\n *\n * const response: PaymentCreateOrderOutput = ok(PaymentCreateOrderDataSchema.parse({\n * provider: 'wechat',\n * tradeType: 'jsapi',\n * prepayId: 'example-prepay',\n * clientParams: {\n * appId: 'wx-example',\n * timeStamp: '1767225600',\n * nonceStr: 'example-nonce',\n * package: 'prepay_id=example-prepay',\n * signType: 'RSA',\n * paySign: 'example-only-signature'\n * }\n * }))\n * if (response.success) void response.data\n * ```\n */\nexport type PaymentCreateOrderOutput = HaiResult<z.infer<typeof PaymentCreateOrderDataSchema>>\n/**\n * 退款请求,金额单位与支付契约一致。\n * @example\n * ```ts\n * import type { PaymentRefundInput } from '@h-ai/api-contract'\n * import { PaymentRefundInputSchema } from '@h-ai/api-contract'\n *\n * const value: PaymentRefundInput = PaymentRefundInputSchema.parse({\n * provider: 'wechat',\n * orderNo: 'order_1',\n * refundNo: 'refund_1',\n * amount: 1\n * })\n * void value\n * ```\n */\nexport type PaymentRefundInput = z.infer<typeof PaymentRefundInputSchema>\n","import { z } from 'zod'\nimport { haiResultSchema } from '../common/result-schemas.js'\nimport { route } from '../common/route.js'\nimport {\n PaymentCreateOrderDataSchema,\n PaymentCreateOrderInputSchema,\n PaymentNotifyMessageSchema,\n PaymentOrderSchema,\n PaymentQueryOrderInputSchema,\n PaymentRefundDataSchema,\n PaymentRefundInputSchema,\n PaymentStripeNotifyDataSchema,\n} from './payment-schemas.js'\n\n// Webhook 通知体由各支付渠道决定(且通常需要原始 raw body 校验签名),\n// 因此 contract 层只声明为 unknown,由 procedure 实现负责按渠道解析。\nconst WebhookBodySchema = z.unknown()\n// 微信与支付宝通知共享同一响应结构,仅在本 contract 内复用。\nconst notifyMessageOutputSchema = haiResultSchema(PaymentNotifyMessageSchema)\n\n/**\n * Payment 领域 oRPC contract。\n * @example\n * ```ts\n * import { apiContract } from '@h-ai/api-contract'\n *\n * const contract = apiContract.payment\n * void contract\n * ```\n */\nexport const paymentContract = {\n orders: {\n create: route({ method: 'POST', path: '/payment/orders', operationId: 'payment.orders.create', summary: 'Create payment order', tags: ['payment', 'orders'] })\n .input(PaymentCreateOrderInputSchema)\n .output(haiResultSchema(PaymentCreateOrderDataSchema)),\n get: route({ method: 'GET', path: '/payment/orders/{orderNo}', operationId: 'payment.orders.get', summary: 'Get payment order', tags: ['payment', 'orders'] })\n .input(PaymentQueryOrderInputSchema)\n .output(haiResultSchema(PaymentOrderSchema)),\n refund: route({ method: 'POST', path: '/payment/orders/{orderNo}/refunds', operationId: 'payment.orders.refund', summary: 'Refund payment order', tags: ['payment', 'orders'] })\n .input(PaymentRefundInputSchema)\n .output(haiResultSchema(PaymentRefundDataSchema)),\n },\n notifications: {\n wechat: route({ method: 'POST', path: '/payment/notifications/wechat', operationId: 'payment.notifications.wechat', summary: 'Handle WeChat payment notification', tags: ['payment', 'notifications'] })\n .input(WebhookBodySchema)\n .output(notifyMessageOutputSchema),\n alipay: route({ method: 'POST', path: '/payment/notifications/alipay', operationId: 'payment.notifications.alipay', summary: 'Handle Alipay payment notification', tags: ['payment', 'notifications'] })\n .input(WebhookBodySchema)\n .output(notifyMessageOutputSchema),\n stripe: route({ method: 'POST', path: '/payment/notifications/stripe', operationId: 'payment.notifications.stripe', summary: 'Handle Stripe payment notification', tags: ['payment', 'notifications'] })\n .input(WebhookBodySchema)\n .output(haiResultSchema(PaymentStripeNotifyDataSchema)),\n },\n}\n\n/**\n * payment 领域公开 procedure 契约的完整类型。\n * @example\n * ```ts\n * import type { PaymentContract } from '@h-ai/api-contract'\n * import { apiContract } from '@h-ai/api-contract'\n *\n * const contract: PaymentContract = apiContract.payment\n * void contract\n * ```\n */\nexport type PaymentContract = typeof paymentContract\n"]}
|