@h-ai/api-contract 0.1.0-alpha.19 → 0.1.0-alpha.21

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/dist/index.d.ts CHANGED
@@ -1604,23 +1604,6 @@ declare const apiContract: {
1604
1604
  };
1605
1605
  };
1606
1606
 
1607
- /**
1608
- * @h-ai/api-contract — 认证公共 Schema
1609
- *
1610
- * Bearer Token 和 Refresh Token 请求体的基础 Schema,
1611
- * 供 IAM 领域的登录 / 刷新 / 登出 procedure 复用。
1612
- * @module auth-schemas
1613
- */
1614
-
1615
- /** Bearer Token 输入 Schema。用于需要随请求体传入 access token 的场景(如显式登出)。 */
1616
- declare const BearerTokenInputSchema: z.ZodObject<{
1617
- accessToken: z.ZodString;
1618
- }, z.core.$strip>;
1619
- /** Refresh Token 请求体 Schema。用于换取新 Token 对。 */
1620
- declare const RefreshTokenInputSchema: z.ZodObject<{
1621
- refreshToken: z.ZodString;
1622
- }, z.core.$strip>;
1623
-
1624
1607
  /**
1625
1608
  * @h-ai/api-contract — 通用响应 Schema
1626
1609
  *
@@ -1633,4 +1616,4 @@ declare const IdParamSchema: z.ZodObject<{
1633
1616
  id: z.ZodString;
1634
1617
  }, z.core.$strip>;
1635
1618
 
1636
- export { BearerTokenInputSchema, type CreateApiContractOptions, type CreatedApiContract, HaiErrorSchema, IdParamSchema, PaginationQuerySchema, RefreshTokenInputSchema, apiContract, paginatedSchema };
1619
+ export { type CreateApiContractOptions, type CreatedApiContract, HaiErrorSchema, IdParamSchema, PaginationQuerySchema, apiContract, paginatedSchema };
package/dist/index.js CHANGED
@@ -43,16 +43,10 @@ var apiContract = {
43
43
  /** Payment 领域 contract。 */
44
44
  payment: paymentContract
45
45
  };
46
- var BearerTokenInputSchema = z.object({
47
- accessToken: z.string().min(1)
48
- });
49
- var RefreshTokenInputSchema = z.object({
50
- refreshToken: z.string().min(1)
51
- });
52
46
  var IdParamSchema = z.object({
53
47
  id: z.string().min(1)
54
48
  });
55
49
 
56
- export { BearerTokenInputSchema, IdParamSchema, RefreshTokenInputSchema, apiContract };
50
+ export { IdParamSchema, apiContract };
57
51
  //# sourceMappingURL=index.js.map
58
52
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/composition/create-api-contract.ts","../src/api-contract-main.ts","../src/common/auth-schemas.ts","../src/common/response-schemas.ts"],"names":["z"],"mappings":";;;;;;;;;;;;;AAsCO,SAAS,kBAA4D,OAAA,EAAmC;AAC7G,EAAA,MAAM,WAA8C,EAAC;AAErD,EAAA,KAAA,MAAW,CAAC,MAAA,EAAQ,cAAc,KAAK,MAAA,CAAO,OAAA,CAAQ,OAAO,CAAA,EAAG;AAC9D,IAAA,IAAI,cAAA,EAAgB;AAClB,MAAA,QAAA,CAAS,MAAM,CAAA,GAAI,cAAA;AAAA,IACrB;AAAA,EACF;AAEA,EAAA,OAAO,QAAA;AACT;;;ACjBO,IAAM,WAAA,GAAc;AAAA;AAAA,EAEzB,MAAA,EAAQ,iBAAA;AAAA;AAAA,EAGR,eAAA;AAAA;AAAA,EAEA,gBAAA,EAAkB,mBAAA;AAAA;AAAA,EAElB,eAAA;AAAA;AAAA,EAEA,KAAA;AAAA;AAAA;AAAA,EAIA,GAAA,EAAK,WAAA;AAAA;AAAA,EAEL,OAAA,EAAS,eAAA;AAAA;AAAA,EAET,EAAA,EAAI,UAAA;AAAA;AAAA,EAEJ,OAAA,EAAS;AACX;AC1CO,IAAM,sBAAA,GAAyB,EAAE,MAAA,CAAO;AAAA,EAC7C,WAAA,EAAa,CAAA,CAAE,MAAA,EAAO,CAAE,IAAI,CAAC;AAC/B,CAAC;AAGM,IAAM,uBAAA,GAA0B,EAAE,MAAA,CAAO;AAAA,EAC9C,YAAA,EAAc,CAAA,CAAE,MAAA,EAAO,CAAE,IAAI,CAAC;AAChC,CAAC;ACRM,IAAM,aAAA,GAAgBA,EAAE,MAAA,CAAO;AAAA,EACpC,EAAA,EAAIA,CAAAA,CAAE,MAAA,EAAO,CAAE,IAAI,CAAC;AACtB,CAAC","file":"index.js","sourcesContent":["/**\n * @h-ai/api-contract — Contract 组合工具\n *\n * 提供将多个领域 contract 组合为应用级 contract 的工厂函数。\n * 仅描述接口边界,不包含任何 procedure 实现。\n * @module create-api-contract\n */\n\nimport type { AnyContractRouter } from '@orpc/contract'\n\n/** API contract 组合输入。key 为领域名称,value 为领域 contract 或 false/undefined(跳过该领域)。 */\nexport type CreateApiContractOptions = Record<string, AnyContractRouter | false | undefined>\n\n/** 根据输入过滤 false/undefined 后得到的应用级 contract 类型。 */\nexport type CreatedApiContract<T extends CreateApiContractOptions> = {\n readonly [K in keyof T as T[K] extends false | undefined ? never : K]: Exclude<T[K], false | undefined>\n}\n\n/**\n * 按领域组合应用级 API contract。\n *\n * contract 只描述接口边界;具体的 procedure 实现由 `@h-ai/serv` 的 feature 模块或应用层提供。\n * 传入 `false` 或 `undefined` 的领域将从最终 contract 中移除,类型也会同步收窄。\n *\n * @param options - 各领域 contract(传 false/undefined 表示禁用该领域)\n * @returns 过滤后的应用级 oRPC contract router\n *\n * @example\n * ```ts\n * import { apiContract } from '@h-ai/api-contract'\n *\n * const myContract = apiContract.create({\n * iam: apiContract.iam,\n * storage: apiContract.storage,\n * payment: false, // 未启用,不会出现在 contract 或 OpenAPI spec 中\n * })\n * ```\n */\nexport function createApiContract<const T extends CreateApiContractOptions>(options: T): CreatedApiContract<T> {\n const contract: Record<string, AnyContractRouter> = {}\n\n for (const [domain, domainContract] of Object.entries(options)) {\n if (domainContract) {\n contract[domain] = domainContract\n }\n }\n\n return contract as CreatedApiContract<T>\n}\n","/**\n * @h-ai/api-contract — 统一命名空间入口\n *\n * 将 contract 组合工厂、HaiResult schema 工具与各领域 contract 集中暴露在\n * `apiContract.*` 之下。应用层只需 `import { apiContract } from '@h-ai/api-contract'`\n * 即可完成所有 contract 装配,无需感知子模块路径或 `@orpc/contract` 实现细节。\n *\n * @module api-contract-main\n *\n * @example\n * ```ts\n * import { apiContract } from '@h-ai/api-contract'\n *\n * const contract = apiContract.create({\n * iam: apiContract.iam,\n * storage: apiContract.storage,\n * ai: apiContract.ai,\n * })\n * ```\n */\n\nimport { aiContract } from './ai/ai-contract.js'\nimport { paginatedSchema } from './common/pagination-schemas.js'\nimport { haiResultSchema, HaiVoidResultSchema } from './common/result-schemas.js'\nimport { route } from './common/route.js'\nimport { createApiContract } from './composition/create-api-contract.js'\nimport { iamContract } from './iam/iam-contract.js'\nimport { paymentContract } from './payment/payment-contract.js'\nimport { storageContract } from './storage/storage-contract.js'\n\n/** hai-framework API contract 统一入口(扁平命名空间)。 */\nexport const apiContract = {\n /** 组合任意领域 contract,过滤掉 `false` / `undefined`,输出可被 serv 挂载的 router。 */\n create: createApiContract,\n\n /** 把 data schema 包成 `HaiResult<T>` 区分联合,供 procedure `.output(...)` 使用。 */\n haiResultSchema,\n /** `HaiResult<void>` 常量 schema。 */\n voidResultSchema: HaiVoidResultSchema,\n /** 分页响应 schema 工厂。 */\n paginatedSchema,\n /** 创建 oRPC contract 路由节点,供自定义 contract 定义 HTTP 元数据。 */\n route,\n\n // 领域 contract(框架内置)\n /** IAM 领域 contract(认证 / 用户 / 角色 / 权限)。 */\n iam: iamContract,\n /** Storage 领域 contract(预签名 URL / 文件管理)。 */\n storage: storageContract,\n /** AI 领域 contract(聊天 / 记忆 / 会话)。 */\n ai: aiContract,\n /** Payment 领域 contract。 */\n payment: paymentContract,\n}\n","/**\n * @h-ai/api-contract — 认证公共 Schema\n *\n * Bearer Token 和 Refresh Token 请求体的基础 Schema,\n * 供 IAM 领域的登录 / 刷新 / 登出 procedure 复用。\n * @module auth-schemas\n */\n\nimport { z } from 'zod'\n\n/** Bearer Token 输入 Schema。用于需要随请求体传入 access token 的场景(如显式登出)。 */\nexport const BearerTokenInputSchema = z.object({\n accessToken: z.string().min(1),\n})\n\n/** Refresh Token 请求体 Schema。用于换取新 Token 对。 */\nexport const RefreshTokenInputSchema = z.object({\n refreshToken: z.string().min(1),\n})\n","/**\n * @h-ai/api-contract — 通用响应 Schema\n *\n * 跨领域共用的基础请求 / 响应结构,如 ID 路径参数。\n * @module response-schemas\n */\n\nimport { z } from 'zod'\n\n/** 通用 ID 路径参数 Schema。用于 `GET /resource/{id}` 等 RESTful 路由的输入校验。 */\nexport const IdParamSchema = z.object({\n id: z.string().min(1),\n})\n"]}
1
+ {"version":3,"sources":["../src/composition/create-api-contract.ts","../src/api-contract-main.ts","../src/common/response-schemas.ts"],"names":[],"mappings":";;;;;;;;;;;;;AAsCO,SAAS,kBAA4D,OAAA,EAAmC;AAC7G,EAAA,MAAM,WAA8C,EAAC;AAErD,EAAA,KAAA,MAAW,CAAC,MAAA,EAAQ,cAAc,KAAK,MAAA,CAAO,OAAA,CAAQ,OAAO,CAAA,EAAG;AAC9D,IAAA,IAAI,cAAA,EAAgB;AAClB,MAAA,QAAA,CAAS,MAAM,CAAA,GAAI,cAAA;AAAA,IACrB;AAAA,EACF;AAEA,EAAA,OAAO,QAAA;AACT;;;ACjBO,IAAM,WAAA,GAAc;AAAA;AAAA,EAEzB,MAAA,EAAQ,iBAAA;AAAA;AAAA,EAGR,eAAA;AAAA;AAAA,EAEA,gBAAA,EAAkB,mBAAA;AAAA;AAAA,EAElB,eAAA;AAAA;AAAA,EAEA,KAAA;AAAA;AAAA;AAAA,EAIA,GAAA,EAAK,WAAA;AAAA;AAAA,EAEL,OAAA,EAAS,eAAA;AAAA;AAAA,EAET,EAAA,EAAI,UAAA;AAAA;AAAA,EAEJ,OAAA,EAAS;AACX;AC3CO,IAAM,aAAA,GAAgB,EAAE,MAAA,CAAO;AAAA,EACpC,EAAA,EAAI,CAAA,CAAE,MAAA,EAAO,CAAE,IAAI,CAAC;AACtB,CAAC","file":"index.js","sourcesContent":["/**\n * @h-ai/api-contract — Contract 组合工具\n *\n * 提供将多个领域 contract 组合为应用级 contract 的工厂函数。\n * 仅描述接口边界,不包含任何 procedure 实现。\n * @module create-api-contract\n */\n\nimport type { AnyContractRouter } from '@orpc/contract'\n\n/** API contract 组合输入。key 为领域名称,value 为领域 contract 或 false/undefined(跳过该领域)。 */\nexport type CreateApiContractOptions = Record<string, AnyContractRouter | false | undefined>\n\n/** 根据输入过滤 false/undefined 后得到的应用级 contract 类型。 */\nexport type CreatedApiContract<T extends CreateApiContractOptions> = {\n readonly [K in keyof T as T[K] extends false | undefined ? never : K]: Exclude<T[K], false | undefined>\n}\n\n/**\n * 按领域组合应用级 API contract。\n *\n * contract 只描述接口边界;具体的 procedure 实现由 `@h-ai/serv` 的 feature 模块或应用层提供。\n * 传入 `false` 或 `undefined` 的领域将从最终 contract 中移除,类型也会同步收窄。\n *\n * @param options - 各领域 contract(传 false/undefined 表示禁用该领域)\n * @returns 过滤后的应用级 oRPC contract router\n *\n * @example\n * ```ts\n * import { apiContract } from '@h-ai/api-contract'\n *\n * const myContract = apiContract.create({\n * iam: apiContract.iam,\n * storage: apiContract.storage,\n * payment: false, // 未启用,不会出现在 contract 或 OpenAPI spec 中\n * })\n * ```\n */\nexport function createApiContract<const T extends CreateApiContractOptions>(options: T): CreatedApiContract<T> {\n const contract: Record<string, AnyContractRouter> = {}\n\n for (const [domain, domainContract] of Object.entries(options)) {\n if (domainContract) {\n contract[domain] = domainContract\n }\n }\n\n return contract as CreatedApiContract<T>\n}\n","/**\n * @h-ai/api-contract — 统一命名空间入口\n *\n * 将 contract 组合工厂、HaiResult schema 工具与各领域 contract 集中暴露在\n * `apiContract.*` 之下。应用层只需 `import { apiContract } from '@h-ai/api-contract'`\n * 即可完成所有 contract 装配,无需感知子模块路径或 `@orpc/contract` 实现细节。\n *\n * @module api-contract-main\n *\n * @example\n * ```ts\n * import { apiContract } from '@h-ai/api-contract'\n *\n * const contract = apiContract.create({\n * iam: apiContract.iam,\n * storage: apiContract.storage,\n * ai: apiContract.ai,\n * })\n * ```\n */\n\nimport { aiContract } from './ai/ai-contract.js'\nimport { paginatedSchema } from './common/pagination-schemas.js'\nimport { haiResultSchema, HaiVoidResultSchema } from './common/result-schemas.js'\nimport { route } from './common/route.js'\nimport { createApiContract } from './composition/create-api-contract.js'\nimport { iamContract } from './iam/iam-contract.js'\nimport { paymentContract } from './payment/payment-contract.js'\nimport { storageContract } from './storage/storage-contract.js'\n\n/** hai-framework API contract 统一入口(扁平命名空间)。 */\nexport const apiContract = {\n /** 组合任意领域 contract,过滤掉 `false` / `undefined`,输出可被 serv 挂载的 router。 */\n create: createApiContract,\n\n /** 把 data schema 包成 `HaiResult<T>` 区分联合,供 procedure `.output(...)` 使用。 */\n haiResultSchema,\n /** `HaiResult<void>` 常量 schema。 */\n voidResultSchema: HaiVoidResultSchema,\n /** 分页响应 schema 工厂。 */\n paginatedSchema,\n /** 创建 oRPC contract 路由节点,供自定义 contract 定义 HTTP 元数据。 */\n route,\n\n // 领域 contract(框架内置)\n /** IAM 领域 contract(认证 / 用户 / 角色 / 权限)。 */\n iam: iamContract,\n /** Storage 领域 contract(预签名 URL / 文件管理)。 */\n storage: storageContract,\n /** AI 领域 contract(聊天 / 记忆 / 会话)。 */\n ai: aiContract,\n /** Payment 领域 contract。 */\n payment: paymentContract,\n}\n","/**\n * @h-ai/api-contract — 通用响应 Schema\n *\n * 跨领域共用的基础请求 / 响应结构,如 ID 路径参数。\n * @module response-schemas\n */\n\nimport { z } from 'zod'\n\n/** 通用 ID 路径参数 Schema。用于 `GET /resource/{id}` 等 RESTful 路由的输入校验。 */\nexport const IdParamSchema = z.object({\n id: z.string().min(1),\n})\n"]}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@h-ai/api-contract",
3
3
  "type": "module",
4
- "version": "0.1.0-alpha.19",
4
+ "version": "0.1.0-alpha.21",
5
5
  "description": "Hai Framework public API contracts powered by oRPC and Zod.",
6
6
  "license": "Apache-2.0",
7
7
  "exports": {
@@ -38,7 +38,7 @@
38
38
  "dependencies": {
39
39
  "@orpc/contract": "^1.14.3",
40
40
  "zod": "^4.4.3",
41
- "@h-ai/core": "0.1.0-alpha.19"
41
+ "@h-ai/core": "0.1.0-alpha.21"
42
42
  },
43
43
  "devDependencies": {
44
44
  "@types/node": "^25.9.1",