@servora/proto-utils 0.0.2 → 0.1.1

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 (116) hide show
  1. package/dist/client/errors.d.ts +32 -0
  2. package/dist/client/errors.d.ts.map +1 -0
  3. package/dist/client/errors.js +37 -0
  4. package/dist/client/errors.js.map +1 -0
  5. package/dist/client/index.d.ts +3 -0
  6. package/dist/client/index.d.ts.map +1 -0
  7. package/dist/client/index.js +3 -0
  8. package/dist/client/index.js.map +1 -0
  9. package/dist/client/request.d.ts +54 -0
  10. package/dist/client/request.d.ts.map +1 -0
  11. package/dist/client/request.js +149 -0
  12. package/dist/client/request.js.map +1 -0
  13. package/dist/gen/servora/audit/v1/index.d.ts +26 -0
  14. package/dist/gen/servora/audit/v1/index.d.ts.map +1 -0
  15. package/dist/gen/servora/audit/v1/index.js +6 -0
  16. package/dist/gen/servora/audit/v1/index.js.map +1 -0
  17. package/dist/gen/servora/authn/v1/index.d.ts +6 -0
  18. package/dist/gen/servora/authn/v1/index.d.ts.map +1 -0
  19. package/dist/gen/servora/authn/v1/index.js +6 -0
  20. package/dist/gen/servora/authn/v1/index.js.map +1 -0
  21. package/dist/gen/servora/authz/v1/index.d.ts +8 -0
  22. package/dist/gen/servora/authz/v1/index.d.ts.map +1 -0
  23. package/dist/gen/servora/authz/v1/index.js +6 -0
  24. package/dist/gen/servora/authz/v1/index.js.map +1 -0
  25. package/dist/gen/servora/cloudevents/v1/index.d.ts +31 -0
  26. package/dist/gen/servora/cloudevents/v1/index.d.ts.map +1 -0
  27. package/dist/gen/servora/cloudevents/v1/index.js +6 -0
  28. package/dist/gen/servora/cloudevents/v1/index.js.map +1 -0
  29. package/dist/gen/servora/conf/v1/index.d.ts +9 -0
  30. package/dist/gen/servora/conf/v1/index.d.ts.map +1 -0
  31. package/dist/gen/servora/conf/v1/index.js +6 -0
  32. package/dist/gen/servora/conf/v1/index.js.map +1 -0
  33. package/dist/gen/servora/core/v1/index.d.ts +157 -0
  34. package/dist/gen/servora/core/v1/index.d.ts.map +1 -0
  35. package/dist/gen/servora/core/v1/index.js +6 -0
  36. package/dist/gen/servora/core/v1/index.js.map +1 -0
  37. package/dist/gen/servora/infra/db/clickhouse/v1/index.d.ts +22 -0
  38. package/dist/gen/servora/infra/db/clickhouse/v1/index.d.ts.map +1 -0
  39. package/dist/gen/servora/infra/db/clickhouse/v1/index.js +6 -0
  40. package/dist/gen/servora/infra/db/clickhouse/v1/index.js.map +1 -0
  41. package/dist/gen/servora/infra/kafka/v1/index.d.ts +28 -0
  42. package/dist/gen/servora/infra/kafka/v1/index.d.ts.map +1 -0
  43. package/dist/gen/servora/infra/kafka/v1/index.js +6 -0
  44. package/dist/gen/servora/infra/kafka/v1/index.js.map +1 -0
  45. package/dist/gen/servora/infra/mail/v1/index.d.ts +20 -0
  46. package/dist/gen/servora/infra/mail/v1/index.d.ts.map +1 -0
  47. package/dist/gen/servora/infra/mail/v1/index.js +6 -0
  48. package/dist/gen/servora/infra/mail/v1/index.js.map +1 -0
  49. package/dist/gen/servora/infra/redis/v1/index.d.ts +13 -0
  50. package/dist/gen/servora/infra/redis/v1/index.d.ts.map +1 -0
  51. package/dist/gen/servora/infra/redis/v1/index.js +6 -0
  52. package/dist/gen/servora/infra/redis/v1/index.js.map +1 -0
  53. package/dist/gen/servora/mapper/v1/index.d.ts +7 -0
  54. package/dist/gen/servora/mapper/v1/index.d.ts.map +1 -0
  55. package/dist/gen/servora/mapper/v1/index.js +6 -0
  56. package/dist/gen/servora/mapper/v1/index.js.map +1 -0
  57. package/dist/gen/servora/obs/audit/v1/index.d.ts +7 -0
  58. package/dist/gen/servora/obs/audit/v1/index.d.ts.map +1 -0
  59. package/dist/gen/servora/obs/audit/v1/index.js +6 -0
  60. package/dist/gen/servora/obs/audit/v1/index.js.map +1 -0
  61. package/dist/gen/servora/pagination/v1/index.d.ts +26 -0
  62. package/dist/gen/servora/pagination/v1/index.d.ts.map +1 -0
  63. package/dist/gen/servora/pagination/v1/index.js +6 -0
  64. package/dist/gen/servora/pagination/v1/index.js.map +1 -0
  65. package/dist/gen/servora/security/authn/oidc/v1/index.d.ts +7 -0
  66. package/dist/gen/servora/security/authn/oidc/v1/index.d.ts.map +1 -0
  67. package/dist/gen/servora/security/authn/oidc/v1/index.js +6 -0
  68. package/dist/gen/servora/security/authn/oidc/v1/index.js.map +1 -0
  69. package/dist/gen/servora/security/authz/openfga/v1/index.d.ts +7 -0
  70. package/dist/gen/servora/security/authz/openfga/v1/index.d.ts.map +1 -0
  71. package/dist/gen/servora/security/authz/openfga/v1/index.js +6 -0
  72. package/dist/gen/servora/security/authz/openfga/v1/index.js.map +1 -0
  73. package/dist/gen/servora/security/jwt/v1/index.d.ts +9 -0
  74. package/dist/gen/servora/security/jwt/v1/index.d.ts.map +1 -0
  75. package/dist/gen/servora/security/jwt/v1/index.js +6 -0
  76. package/dist/gen/servora/security/jwt/v1/index.js.map +1 -0
  77. package/dist/gen/servora/security/tls/v1/index.d.ts +7 -0
  78. package/dist/gen/servora/security/tls/v1/index.d.ts.map +1 -0
  79. package/dist/gen/servora/security/tls/v1/index.js +6 -0
  80. package/dist/gen/servora/security/tls/v1/index.js.map +1 -0
  81. package/dist/gen/servora/transport/http/cors/v1/index.d.ts +12 -0
  82. package/dist/gen/servora/transport/http/cors/v1/index.d.ts.map +1 -0
  83. package/dist/gen/servora/transport/http/cors/v1/index.js +6 -0
  84. package/dist/gen/servora/transport/http/cors/v1/index.js.map +1 -0
  85. package/dist/index.d.ts +3 -0
  86. package/dist/index.d.ts.map +1 -0
  87. package/dist/index.js +3 -0
  88. package/dist/index.js.map +1 -0
  89. package/dist/query.d.ts +1 -0
  90. package/dist/query.d.ts.map +1 -1
  91. package/dist/query.js +8 -6
  92. package/dist/query.js.map +1 -1
  93. package/package.json +37 -6
  94. package/src/client/errors.ts +54 -0
  95. package/src/client/index.ts +2 -0
  96. package/src/client/request.ts +233 -0
  97. package/src/gen/servora/audit/v1/index.ts +64 -0
  98. package/src/gen/servora/authn/v1/index.ts +25 -0
  99. package/src/gen/servora/authz/v1/index.ts +28 -0
  100. package/src/gen/servora/cloudevents/v1/index.ts +49 -0
  101. package/src/gen/servora/conf/v1/index.ts +32 -0
  102. package/src/gen/servora/core/v1/index.ts +221 -0
  103. package/src/gen/servora/infra/db/clickhouse/v1/index.ts +33 -0
  104. package/src/gen/servora/infra/kafka/v1/index.ts +41 -0
  105. package/src/gen/servora/infra/mail/v1/index.ts +32 -0
  106. package/src/gen/servora/infra/redis/v1/index.ts +23 -0
  107. package/src/gen/servora/mapper/v1/index.ts +18 -0
  108. package/src/gen/servora/obs/audit/v1/index.ts +13 -0
  109. package/src/gen/servora/pagination/v1/index.ts +37 -0
  110. package/src/gen/servora/security/authn/oidc/v1/index.ts +13 -0
  111. package/src/gen/servora/security/authz/openfga/v1/index.ts +13 -0
  112. package/src/gen/servora/security/jwt/v1/index.ts +17 -0
  113. package/src/gen/servora/security/tls/v1/index.ts +13 -0
  114. package/src/gen/servora/transport/http/cors/v1/index.ts +22 -0
  115. package/src/index.ts +2 -0
  116. package/src/query.ts +13 -11
@@ -0,0 +1,32 @@
1
+ /**
2
+ * Kratos 错误解析工具
3
+ *
4
+ * Kratos 统一错误格式:{ code, reason, message, metadata? }
5
+ * 所有使用 protoc-gen-go-errors 生成的服务均输出此格式。
6
+ */
7
+ import type { ApiError } from "./request.js";
8
+ export interface KratosErrorBody {
9
+ code: number;
10
+ reason: string;
11
+ message: string;
12
+ metadata?: Record<string, string>;
13
+ }
14
+ /**
15
+ * 从 ApiError 中提取 Kratos 结构化错误体。
16
+ * 非 HTTP 错误、或响应体不符合格式时返回 null。
17
+ */
18
+ export declare function parseKratosError(err: ApiError): KratosErrorBody | null;
19
+ /**
20
+ * 判断 ApiError 是否为指定的 Kratos reason。
21
+ *
22
+ * @example
23
+ * if (isKratosReason(err, 'EMAIL_NOT_VERIFIED')) { ... }
24
+ */
25
+ export declare function isKratosReason(err: ApiError, reason: string): boolean;
26
+ /**
27
+ * 提取用户可读的错误消息,含 network / timeout 降级处理。
28
+ *
29
+ * @param fallback 当无法提取有效消息时的兜底文案,默认 '操作失败'
30
+ */
31
+ export declare function kratosMessage(err: ApiError, fallback?: string): string;
32
+ //# sourceMappingURL=errors.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/client/errors.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAE7C,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACnC;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,QAAQ,GAAG,eAAe,GAAG,IAAI,CAUtE;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAErE;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,QAAQ,EAAE,QAAQ,SAAS,GAAG,MAAM,CAOtE"}
@@ -0,0 +1,37 @@
1
+ /**
2
+ * 从 ApiError 中提取 Kratos 结构化错误体。
3
+ * 非 HTTP 错误、或响应体不符合格式时返回 null。
4
+ */
5
+ export function parseKratosError(err) {
6
+ if (err.kind !== "http" || !err.responseBody)
7
+ return null;
8
+ const body = err.responseBody;
9
+ if (typeof body.code !== "number" ||
10
+ typeof body.reason !== "string" ||
11
+ typeof body.message !== "string")
12
+ return null;
13
+ return body;
14
+ }
15
+ /**
16
+ * 判断 ApiError 是否为指定的 Kratos reason。
17
+ *
18
+ * @example
19
+ * if (isKratosReason(err, 'EMAIL_NOT_VERIFIED')) { ... }
20
+ */
21
+ export function isKratosReason(err, reason) {
22
+ return parseKratosError(err)?.reason === reason;
23
+ }
24
+ /**
25
+ * 提取用户可读的错误消息,含 network / timeout 降级处理。
26
+ *
27
+ * @param fallback 当无法提取有效消息时的兜底文案,默认 '操作失败'
28
+ */
29
+ export function kratosMessage(err, fallback = "操作失败") {
30
+ if (err.kind === "network")
31
+ return "网络连接失败,请检查网络设置";
32
+ if (err.kind === "timeout")
33
+ return "请求超时,请稍后重试";
34
+ return (parseKratosError(err)?.message ??
35
+ (err.httpStatus ? `请求失败(HTTP ${err.httpStatus})` : fallback));
36
+ }
37
+ //# sourceMappingURL=errors.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/client/errors.ts"],"names":[],"mappings":"AAeA;;;GAGG;AACH,MAAM,UAAU,gBAAgB,CAAC,GAAa;IAC5C,IAAI,GAAG,CAAC,IAAI,KAAK,MAAM,IAAI,CAAC,GAAG,CAAC,YAAY;QAAE,OAAO,IAAI,CAAC;IAC1D,MAAM,IAAI,GAAG,GAAG,CAAC,YAAuC,CAAC;IACzD,IACE,OAAO,IAAI,CAAC,IAAI,KAAK,QAAQ;QAC7B,OAAO,IAAI,CAAC,MAAM,KAAK,QAAQ;QAC/B,OAAO,IAAI,CAAC,OAAO,KAAK,QAAQ;QAEhC,OAAO,IAAI,CAAC;IACd,OAAO,IAAkC,CAAC;AAC5C,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,cAAc,CAAC,GAAa,EAAE,MAAc;IAC1D,OAAO,gBAAgB,CAAC,GAAG,CAAC,EAAE,MAAM,KAAK,MAAM,CAAC;AAClD,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,aAAa,CAAC,GAAa,EAAE,QAAQ,GAAG,MAAM;IAC5D,IAAI,GAAG,CAAC,IAAI,KAAK,SAAS;QAAE,OAAO,gBAAgB,CAAC;IACpD,IAAI,GAAG,CAAC,IAAI,KAAK,SAAS;QAAE,OAAO,YAAY,CAAC;IAChD,OAAO,CACL,gBAAgB,CAAC,GAAG,CAAC,EAAE,OAAO;QAC9B,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,aAAa,GAAG,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,CAC7D,CAAC;AACJ,CAAC"}
@@ -0,0 +1,3 @@
1
+ export * from "./errors.js";
2
+ export * from "./request.js";
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/client/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC"}
@@ -0,0 +1,3 @@
1
+ export * from "./errors.js";
2
+ export * from "./request.js";
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/client/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC"}
@@ -0,0 +1,54 @@
1
+ /**
2
+ * @servora/proto-utils/client — 通用 HTTP 请求处理器
3
+ *
4
+ * 为 proto 生成的 TypeScript client 提供标准 RequestHandler 实现,包含:
5
+ * - Bearer token 自动注入
6
+ * - Token 自动刷新(单例防重复)
7
+ * - 结构化 ApiError(区分 http / network / timeout)
8
+ * - 全局 onError 回调(延迟到宏任务,避免与 toast.promise 竞态)
9
+ *
10
+ * 消费方通过 @servora/proto-utils 使用本实现,ofetch 由本包依赖提供。
11
+ */
12
+ export type RequestType = {
13
+ path: string;
14
+ method: string;
15
+ body: string | null;
16
+ };
17
+ export type RequestMeta = {
18
+ service: string;
19
+ method: string;
20
+ };
21
+ export type RequestHandler = (request: RequestType, meta: RequestMeta) => Promise<unknown>;
22
+ export interface TokenStore {
23
+ getAccessToken: () => string | null;
24
+ getRefreshToken: () => string | null;
25
+ setTokens: (accessToken: string, refreshToken: string) => void;
26
+ clear: () => void;
27
+ }
28
+ export interface RequestHandlerOptions {
29
+ baseUrl?: string;
30
+ tokenStore?: TokenStore;
31
+ contextHeaders?: (meta: RequestMeta) => Record<string, string>;
32
+ timeoutMs?: number;
33
+ onError?: (error: ApiError, meta: RequestMeta) => void;
34
+ autoRefreshToken?: boolean;
35
+ }
36
+ export type ApiErrorKind = "http" | "network" | "timeout";
37
+ export declare class ApiError extends Error {
38
+ readonly kind: ApiErrorKind;
39
+ readonly httpStatus?: number;
40
+ readonly responseBody?: unknown;
41
+ readonly service: string;
42
+ readonly method: string;
43
+ constructor(opts: {
44
+ kind: ApiErrorKind;
45
+ message: string;
46
+ httpStatus?: number;
47
+ responseBody?: unknown;
48
+ service: string;
49
+ method: string;
50
+ cause?: unknown;
51
+ });
52
+ }
53
+ export declare function createRequestHandler(options?: RequestHandlerOptions): RequestHandler;
54
+ //# sourceMappingURL=request.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"request.d.ts","sourceRoot":"","sources":["../../src/client/request.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAKH,MAAM,MAAM,WAAW,GAAG;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;CACrB,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG,CAC3B,OAAO,EAAE,WAAW,EACpB,IAAI,EAAE,WAAW,KACd,OAAO,CAAC,OAAO,CAAC,CAAC;AAEtB,MAAM,WAAW,UAAU;IACzB,cAAc,EAAE,MAAM,MAAM,GAAG,IAAI,CAAC;IACpC,eAAe,EAAE,MAAM,MAAM,GAAG,IAAI,CAAC;IACrC,SAAS,EAAE,CAAC,WAAW,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,KAAK,IAAI,CAAC;IAC/D,KAAK,EAAE,MAAM,IAAI,CAAC;CACnB;AAED,MAAM,WAAW,qBAAqB;IACpC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,cAAc,CAAC,EAAE,CAAC,IAAI,EAAE,WAAW,KAAK,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC/D,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,KAAK,IAAI,CAAC;IACvD,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B;AAED,MAAM,MAAM,YAAY,GAAG,MAAM,GAAG,SAAS,GAAG,SAAS,CAAC;AAE1D,qBAAa,QAAS,SAAQ,KAAK;IACjC,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC;IAC5B,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,YAAY,CAAC,EAAE,OAAO,CAAC;IAChC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;gBAEZ,IAAI,EAAE;QAChB,IAAI,EAAE,YAAY,CAAC;QACnB,OAAO,EAAE,MAAM,CAAC;QAChB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,YAAY,CAAC,EAAE,OAAO,CAAC;QACvB,OAAO,EAAE,MAAM,CAAC;QAChB,MAAM,EAAE,MAAM,CAAC;QACf,KAAK,CAAC,EAAE,OAAO,CAAC;KACjB;CASF;AASD,wBAAgB,oBAAoB,CAClC,OAAO,GAAE,qBAA0B,GAClC,cAAc,CAoJhB"}
@@ -0,0 +1,149 @@
1
+ /**
2
+ * @servora/proto-utils/client — 通用 HTTP 请求处理器
3
+ *
4
+ * 为 proto 生成的 TypeScript client 提供标准 RequestHandler 实现,包含:
5
+ * - Bearer token 自动注入
6
+ * - Token 自动刷新(单例防重复)
7
+ * - 结构化 ApiError(区分 http / network / timeout)
8
+ * - 全局 onError 回调(延迟到宏任务,避免与 toast.promise 竞态)
9
+ *
10
+ * 消费方通过 @servora/proto-utils 使用本实现,ofetch 由本包依赖提供。
11
+ */
12
+ import { ofetch } from "ofetch";
13
+ export class ApiError extends Error {
14
+ kind;
15
+ httpStatus;
16
+ responseBody;
17
+ service;
18
+ method;
19
+ constructor(opts) {
20
+ super(opts.message, { cause: opts.cause });
21
+ this.name = "ApiError";
22
+ this.kind = opts.kind;
23
+ this.httpStatus = opts.httpStatus;
24
+ this.responseBody = opts.responseBody;
25
+ this.service = opts.service;
26
+ this.method = opts.method;
27
+ }
28
+ }
29
+ function ensureLeadingSlash(path) {
30
+ return path.startsWith("/") ? path : `/${path}`;
31
+ }
32
+ const REFRESH_PATH = "/v1/auth/refresh-token";
33
+ const AUTH_PATH_PREFIX = "/v1/auth/";
34
+ export function createRequestHandler(options = {}) {
35
+ const { baseUrl = "", tokenStore, contextHeaders, timeoutMs = 30_000, onError, autoRefreshToken = false, } = options;
36
+ let refreshPromise = null;
37
+ async function tryRefreshToken() {
38
+ if (!tokenStore)
39
+ return false;
40
+ const refreshToken = tokenStore.getRefreshToken();
41
+ if (!refreshToken)
42
+ return false;
43
+ if (refreshPromise)
44
+ return refreshPromise;
45
+ refreshPromise = (async () => {
46
+ try {
47
+ const data = await ofetch(REFRESH_PATH, {
48
+ baseURL: baseUrl,
49
+ method: "POST",
50
+ body: { refreshToken },
51
+ timeout: timeoutMs,
52
+ });
53
+ tokenStore.setTokens(data.accessToken, data.refreshToken);
54
+ return true;
55
+ }
56
+ catch {
57
+ tokenStore.clear();
58
+ return false;
59
+ }
60
+ finally {
61
+ refreshPromise = null;
62
+ }
63
+ })();
64
+ return refreshPromise;
65
+ }
66
+ async function doRequest(request, meta, isRetry = false) {
67
+ const headers = {
68
+ Accept: "application/json",
69
+ };
70
+ if (request.body) {
71
+ headers["Content-Type"] = "application/json";
72
+ }
73
+ if (tokenStore) {
74
+ const token = tokenStore.getAccessToken();
75
+ if (token) {
76
+ headers.Authorization = `Bearer ${token}`;
77
+ }
78
+ }
79
+ if (contextHeaders) {
80
+ Object.assign(headers, contextHeaders(meta));
81
+ }
82
+ const fetchOptions = {
83
+ baseURL: baseUrl,
84
+ method: request.method,
85
+ headers,
86
+ timeout: timeoutMs,
87
+ };
88
+ if (request.body) {
89
+ fetchOptions.body = request.body;
90
+ }
91
+ const normalizedPath = ensureLeadingSlash(request.path);
92
+ try {
93
+ return await ofetch(normalizedPath, fetchOptions);
94
+ }
95
+ catch (err) {
96
+ const fetchError = err != null && typeof err === "object"
97
+ ? err
98
+ : {};
99
+ const response = fetchError.response;
100
+ if (response) {
101
+ const status = response.status;
102
+ const body = response._data;
103
+ const apiErr = new ApiError({
104
+ kind: "http",
105
+ message: `HTTP ${status} on ${meta.service}.${meta.method}`,
106
+ httpStatus: status,
107
+ responseBody: body,
108
+ service: meta.service,
109
+ method: meta.method,
110
+ cause: err,
111
+ });
112
+ if (autoRefreshToken &&
113
+ status === 401 &&
114
+ !isRetry &&
115
+ !normalizedPath.startsWith(AUTH_PATH_PREFIX)) {
116
+ const refreshed = await tryRefreshToken();
117
+ if (refreshed) {
118
+ return doRequest(request, meta, true);
119
+ }
120
+ }
121
+ // 延迟到宏任务再调 onError,让 promise 链先跑完(含 toast.promise 的 _mark),
122
+ // 避免全局 handler 与 sonner.promise error callback 同时弹出双重 toast。
123
+ if (onError) {
124
+ const _err = apiErr;
125
+ setTimeout(() => onError(_err, meta), 0);
126
+ }
127
+ throw apiErr;
128
+ }
129
+ const rawMessage = typeof fetchError.message === "string" ? fetchError.message : "";
130
+ const kind = rawMessage.toLowerCase().includes("timeout")
131
+ ? "timeout"
132
+ : "network";
133
+ const apiErr = new ApiError({
134
+ kind,
135
+ message: `${kind} error on ${meta.service}.${meta.method}: ${rawMessage}`,
136
+ service: meta.service,
137
+ method: meta.method,
138
+ cause: err,
139
+ });
140
+ if (onError) {
141
+ const _err = apiErr;
142
+ setTimeout(() => onError(_err, meta), 0);
143
+ }
144
+ throw apiErr;
145
+ }
146
+ }
147
+ return doRequest;
148
+ }
149
+ //# sourceMappingURL=request.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"request.js","sourceRoot":"","sources":["../../src/client/request.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,26 @@
1
+ export type AuditMode = "AUDIT_MODE_UNSPECIFIED" | "AUDIT_MODE_DISABLED" | "AUDIT_MODE_ENABLED";
2
+ export type ExtensionMapping = {
3
+ name: string | undefined;
4
+ fromField?: string;
5
+ literal?: servoracloudeventsv1_CloudEvent_CloudEventAttributeValue;
6
+ };
7
+ export type servoracloudeventsv1_CloudEvent_CloudEventAttributeValue = {
8
+ ceBoolean?: boolean;
9
+ ceInteger?: number;
10
+ ceString?: string;
11
+ ceBytes?: string;
12
+ ceUri?: string;
13
+ ceUriRef?: string;
14
+ ceTimestamp?: wellKnownTimestamp;
15
+ };
16
+ type wellKnownTimestamp = string;
17
+ export type AuditRule = {
18
+ mode: AuditMode | undefined;
19
+ eventType: string | undefined;
20
+ severity: string | undefined;
21
+ detailMessageField: string | undefined;
22
+ targetIdField: string | undefined;
23
+ extensions: ExtensionMapping[] | undefined;
24
+ };
25
+ export {};
26
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/gen/servora/audit/v1/index.ts"],"names":[],"mappings":"AAUA,MAAM,MAAM,SAAS,GACjB,wBAAwB,GACxB,qBAAqB,GACrB,oBAAoB,CAAC;AAGzB,MAAM,MAAM,gBAAgB,GAAG;IAE7B,IAAI,EAAE,MAAM,GAAG,SAAS,CAAC;IAEzB,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB,OAAO,CAAC,EAAE,wDAAwD,CAAC;CACpE,CAAC;AAGF,MAAM,MAAM,wDAAwD,GAAG;IACrE,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,kBAAkB,CAAC;CAClC,CAAC;AAKF,KAAK,kBAAkB,GAAG,MAAM,CAAC;AAKjC,MAAM,MAAM,SAAS,GAAG;IAEtB,IAAI,EAAE,SAAS,GAAG,SAAS,CAAC;IAE5B,SAAS,EAAE,MAAM,GAAG,SAAS,CAAC;IAG9B,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAC;IAG7B,kBAAkB,EAAE,MAAM,GAAG,SAAS,CAAC;IAGvC,aAAa,EAAE,MAAM,GAAG,SAAS,CAAC;IAElC,UAAU,EAAE,gBAAgB,EAAE,GAAG,SAAS,CAAC;CAC5C,CAAC"}
@@ -0,0 +1,6 @@
1
+ // Code generated by protoc-gen-typescript-http. DO NOT EDIT.
2
+ /* eslint-disable camelcase */
3
+ // @ts-nocheck
4
+ export {};
5
+ // @@protoc_insertion_point(typescript-http-eof)
6
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/gen/servora/audit/v1/index.ts"],"names":[],"mappings":"AAAA,6DAA6D;AAC7D,8BAA8B;AAC9B,cAAc;;AA6Dd,gDAAgD"}
@@ -0,0 +1,6 @@
1
+ export type AuthnRule = {
2
+ mode: AuthnRule_Mode | undefined;
3
+ schemes: string[] | undefined;
4
+ };
5
+ export type AuthnRule_Mode = "MODE_UNSPECIFIED" | "MODE_PUBLIC" | "MODE_REQUIRED";
6
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/gen/servora/authn/v1/index.ts"],"names":[],"mappings":"AAKA,MAAM,MAAM,SAAS,GAAG;IAEtB,IAAI,EAAE,cAAc,GAAG,SAAS,CAAC;IAKjC,OAAO,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC;CAC/B,CAAC;AAGF,MAAM,MAAM,cAAc,GAEtB,kBAAkB,GAElB,aAAa,GAEb,eAAe,CAAC"}
@@ -0,0 +1,6 @@
1
+ // Code generated by protoc-gen-typescript-http. DO NOT EDIT.
2
+ /* eslint-disable camelcase */
3
+ // @ts-nocheck
4
+ export {};
5
+ // @@protoc_insertion_point(typescript-http-eof)
6
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/gen/servora/authn/v1/index.ts"],"names":[],"mappings":"AAAA,6DAA6D;AAC7D,8BAA8B;AAC9B,cAAc;;AAsBd,gDAAgD"}
@@ -0,0 +1,8 @@
1
+ export type AuthzMode = "AUTHZ_MODE_UNSPECIFIED" | "AUTHZ_MODE_NONE" | "AUTHZ_MODE_CHECK";
2
+ export type AuthzRule = {
3
+ mode: AuthzMode | undefined;
4
+ action: string | undefined;
5
+ resourceType: string | undefined;
6
+ resourceIdField: string | undefined;
7
+ };
8
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/gen/servora/authz/v1/index.ts"],"names":[],"mappings":"AAKA,MAAM,MAAM,SAAS,GAEjB,wBAAwB,GAExB,iBAAiB,GAEjB,kBAAkB,CAAC;AAGvB,MAAM,MAAM,SAAS,GAAG;IAEtB,IAAI,EAAE,SAAS,GAAG,SAAS,CAAC;IAE5B,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;IAE3B,YAAY,EAAE,MAAM,GAAG,SAAS,CAAC;IAGjC,eAAe,EAAE,MAAM,GAAG,SAAS,CAAC;CACrC,CAAC"}
@@ -0,0 +1,6 @@
1
+ // Code generated by protoc-gen-typescript-http. DO NOT EDIT.
2
+ /* eslint-disable camelcase */
3
+ // @ts-nocheck
4
+ export {};
5
+ // @@protoc_insertion_point(typescript-http-eof)
6
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/gen/servora/authz/v1/index.ts"],"names":[],"mappings":"AAAA,6DAA6D;AAC7D,8BAA8B;AAC9B,cAAc;;AAyBd,gDAAgD"}
@@ -0,0 +1,31 @@
1
+ export type CloudEvent = {
2
+ id: string | undefined;
3
+ source: string | undefined;
4
+ specVersion: string | undefined;
5
+ type: string | undefined;
6
+ attributes: {
7
+ [key: string]: CloudEvent_CloudEventAttributeValue;
8
+ } | undefined;
9
+ binaryData?: string;
10
+ textData?: string;
11
+ protoData?: wellKnownAny;
12
+ };
13
+ export type CloudEvent_CloudEventAttributeValue = {
14
+ ceBoolean?: boolean;
15
+ ceInteger?: number;
16
+ ceString?: string;
17
+ ceBytes?: string;
18
+ ceUri?: string;
19
+ ceUriRef?: string;
20
+ ceTimestamp?: wellKnownTimestamp;
21
+ };
22
+ type wellKnownTimestamp = string;
23
+ interface wellKnownAny {
24
+ "@type": string;
25
+ [key: string]: unknown;
26
+ }
27
+ export type CloudEventBatch = {
28
+ events: CloudEvent[] | undefined;
29
+ };
30
+ export {};
31
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/gen/servora/cloudevents/v1/index.ts"],"names":[],"mappings":"AAIA,MAAM,MAAM,UAAU,GAAG;IAEvB,EAAE,EAAE,MAAM,GAAG,SAAS,CAAC;IACvB,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,WAAW,EAAE,MAAM,GAAG,SAAS,CAAC;IAChC,IAAI,EAAE,MAAM,GAAG,SAAS,CAAC;IAEzB,UAAU,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,mCAAmC,CAAA;KAAE,GAAG,SAAS,CAAC;IAC/E,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,YAAY,CAAC;CAC1B,CAAC;AAGF,MAAM,MAAM,mCAAmC,GAAG;IAChD,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,kBAAkB,CAAC;CAClC,CAAC;AAKF,KAAK,kBAAkB,GAAG,MAAM,CAAC;AAOjC,UAAU,YAAY;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,MAAM,MAAM,eAAe,GAAG;IAC5B,MAAM,EAAE,UAAU,EAAE,GAAG,SAAS,CAAC;CAClC,CAAC"}
@@ -0,0 +1,6 @@
1
+ // Code generated by protoc-gen-typescript-http. DO NOT EDIT.
2
+ /* eslint-disable camelcase */
3
+ // @ts-nocheck
4
+ export {};
5
+ // @@protoc_insertion_point(typescript-http-eof)
6
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/gen/servora/cloudevents/v1/index.ts"],"names":[],"mappings":"AAAA,6DAA6D;AAC7D,8BAA8B;AAC9B,cAAc;;AA8Cd,gDAAgD"}
@@ -0,0 +1,9 @@
1
+ export type SectionRule = {
2
+ key: string | undefined;
3
+ optional: boolean | undefined;
4
+ };
5
+ export type FieldRule = {
6
+ default: string | undefined;
7
+ required: boolean | undefined;
8
+ };
9
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/gen/servora/conf/v1/index.ts"],"names":[],"mappings":"AAMA,MAAM,MAAM,WAAW,GAAG;IAGxB,GAAG,EAAE,MAAM,GAAG,SAAS,CAAC;IAIxB,QAAQ,EAAE,OAAO,GAAG,SAAS,CAAC;CAC/B,CAAC;AAKF,MAAM,MAAM,SAAS,GAAG;IAMtB,OAAO,EAAE,MAAM,GAAG,SAAS,CAAC;IAE5B,QAAQ,EAAE,OAAO,GAAG,SAAS,CAAC;CAC/B,CAAC"}
@@ -0,0 +1,6 @@
1
+ // Code generated by protoc-gen-typescript-http. DO NOT EDIT.
2
+ /* eslint-disable camelcase */
3
+ // @ts-nocheck
4
+ export {};
5
+ // @@protoc_insertion_point(typescript-http-eof)
6
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/gen/servora/conf/v1/index.ts"],"names":[],"mappings":"AAAA,6DAA6D;AAC7D,8BAA8B;AAC9B,cAAc;;AA6Bd,gDAAgD"}
@@ -0,0 +1,157 @@
1
+ export type Bootstrap = {
2
+ app: App | undefined;
3
+ server: Server | undefined;
4
+ data: Data | undefined;
5
+ registry: Registry | undefined;
6
+ source: Source | undefined;
7
+ obs: Observability | undefined;
8
+ };
9
+ export type App = {
10
+ env: string | undefined;
11
+ name: string | undefined;
12
+ version: string | undefined;
13
+ metadata: {
14
+ [key: string]: string;
15
+ } | undefined;
16
+ externalUrl: string | undefined;
17
+ };
18
+ export type Server = {
19
+ http: Server_HTTP | undefined;
20
+ grpc: Server_GRPC | undefined;
21
+ };
22
+ export type Server_HTTP = {
23
+ listen: Server_Listen | undefined;
24
+ tls: servorasecuritytlsv1_TLS | undefined;
25
+ advertise: Server_Advertise | undefined;
26
+ };
27
+ export type Server_Listen = {
28
+ network: string | undefined;
29
+ addr: string | undefined;
30
+ timeout: wellKnownDuration | undefined;
31
+ };
32
+ type wellKnownDuration = string;
33
+ export type servorasecuritytlsv1_TLS = {
34
+ enable: boolean | undefined;
35
+ certPath: string | undefined;
36
+ keyPath: string | undefined;
37
+ caPath: string | undefined;
38
+ };
39
+ export type Server_Advertise = {
40
+ endpoint: string | undefined;
41
+ host: string | undefined;
42
+ };
43
+ export type Server_GRPC = {
44
+ listen: Server_Listen | undefined;
45
+ tls: servorasecuritytlsv1_TLS | undefined;
46
+ advertise: Server_Advertise | undefined;
47
+ };
48
+ export type Data = {
49
+ database: Data_Database | undefined;
50
+ client: Data_Client | undefined;
51
+ };
52
+ export type Data_Database = {
53
+ driver: string | undefined;
54
+ source: string | undefined;
55
+ };
56
+ export type Data_Client = {
57
+ services: Data_Client_Service[] | undefined;
58
+ };
59
+ export type Data_Client_Service = {
60
+ name: string | undefined;
61
+ endpoints: Data_Client_Endpoint[] | undefined;
62
+ };
63
+ export type Data_Client_Endpoint = {
64
+ protocol: string | undefined;
65
+ endpoint: string | undefined;
66
+ timeout: wellKnownDuration | undefined;
67
+ tls: servorasecuritytlsv1_TLS | undefined;
68
+ options: wellKnownStruct | undefined;
69
+ };
70
+ type wellKnownStruct = Record<string, unknown>;
71
+ export type Registry = {
72
+ consul?: Consul;
73
+ etcd?: Etcd;
74
+ nacos?: Nacos;
75
+ kubernetes?: Kubernetes;
76
+ };
77
+ export type Consul = {
78
+ addr: string | undefined;
79
+ scheme: string | undefined;
80
+ token: string | undefined;
81
+ datacenter: string | undefined;
82
+ timeout: wellKnownDuration | undefined;
83
+ tags: string[] | undefined;
84
+ key: string | undefined;
85
+ };
86
+ export type Etcd = {
87
+ endpoints: string[] | undefined;
88
+ username: string | undefined;
89
+ password: string | undefined;
90
+ timeout: wellKnownDuration | undefined;
91
+ key: string | undefined;
92
+ namespace: string | undefined;
93
+ };
94
+ export type Nacos = {
95
+ addr: string | undefined;
96
+ port: number | undefined;
97
+ namespace: string | undefined;
98
+ group: string | undefined;
99
+ username: string | undefined;
100
+ password: string | undefined;
101
+ timeout: wellKnownDuration | undefined;
102
+ dataId: string | undefined;
103
+ };
104
+ export type Kubernetes = {
105
+ enable: boolean | undefined;
106
+ };
107
+ export type Source = {
108
+ consul?: Consul;
109
+ etcd?: Etcd;
110
+ nacos?: Nacos;
111
+ };
112
+ export type Observability = {
113
+ log: Log | undefined;
114
+ trace: Trace | undefined;
115
+ metrics: Metrics | undefined;
116
+ };
117
+ export type Log = {
118
+ level: Log_LogLevel | undefined;
119
+ backends: Log_LogBackend[] | undefined;
120
+ };
121
+ export type Log_LogLevel = "LOG_LEVEL_UNSPECIFIED" | "LOG_LEVEL_DEBUG" | "LOG_LEVEL_INFO" | "LOG_LEVEL_WARN" | "LOG_LEVEL_ERROR";
122
+ export type Log_LogBackend = {
123
+ stdout?: Log_StdoutBackend;
124
+ file?: Log_FileBackend;
125
+ otel?: Log_OtelBackend;
126
+ noop?: Log_NoopBackend;
127
+ };
128
+ export type Log_StdoutBackend = {
129
+ format: Log_LogFormat | undefined;
130
+ };
131
+ export type Log_LogFormat = "LOG_FORMAT_UNSPECIFIED" | "LOG_FORMAT_JSON" | "LOG_FORMAT_TEXT";
132
+ export type Log_FileBackend = {
133
+ path: string | undefined;
134
+ maxSize: number | undefined;
135
+ maxBackups: number | undefined;
136
+ maxAge: number | undefined;
137
+ compress: boolean | undefined;
138
+ format: Log_LogFormat | undefined;
139
+ };
140
+ export type Log_OtelBackend = {
141
+ endpoint: string | undefined;
142
+ protocol: Log_OtelProtocol | undefined;
143
+ insecure: boolean | undefined;
144
+ };
145
+ export type Log_OtelProtocol = "OTEL_PROTOCOL_UNSPECIFIED" | "OTEL_PROTOCOL_GRPC" | "OTEL_PROTOCOL_HTTP_PROTOBUF";
146
+ export type Log_NoopBackend = {};
147
+ export type Trace = {
148
+ endpoint: string | undefined;
149
+ insecure: boolean | undefined;
150
+ samplingRatio: number | undefined;
151
+ caPath: string | undefined;
152
+ };
153
+ export type Metrics = {
154
+ enable: boolean | undefined;
155
+ };
156
+ export {};
157
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/gen/servora/core/v1/index.ts"],"names":[],"mappings":"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"}