@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,41 @@
1
+ // Code generated by protoc-gen-typescript-http. DO NOT EDIT.
2
+ /* eslint-disable camelcase */
3
+ // @ts-nocheck
4
+
5
+ export type Kafka = {
6
+ brokers: string[] | undefined;
7
+ clientId: string | undefined;
8
+ consumerGroup: string | undefined;
9
+ requiredAcks: number | undefined;
10
+ retryMax: number | undefined;
11
+ retryBackoff: wellKnownDuration | undefined;
12
+ dialTimeout: wellKnownDuration | undefined;
13
+ readTimeout: wellKnownDuration | undefined;
14
+ writeTimeout: wellKnownDuration | undefined;
15
+ compression: string | undefined;
16
+ tls: servorasecuritytlsv1_TLS | undefined;
17
+ sasl: Kafka_SASL | undefined;
18
+ };
19
+
20
+ // Generated output always contains 0, 3, 6, or 9 fractional digits,
21
+ // depending on required precision, followed by the suffix "s".
22
+ // Accepted are any fractional digits (also none) as long as they fit
23
+ // into nano-seconds precision and the suffix "s" is required.
24
+ type wellKnownDuration = string;
25
+
26
+ export type servorasecuritytlsv1_TLS = {
27
+ enable: boolean | undefined;
28
+ certPath: string | undefined;
29
+ keyPath: string | undefined;
30
+ caPath: string | undefined;
31
+ };
32
+
33
+ // SASL 认证配置(可选)。
34
+ export type Kafka_SASL = {
35
+ mechanism: string | undefined;
36
+ username: string | undefined;
37
+ password: string | undefined;
38
+ };
39
+
40
+
41
+ // @@protoc_insertion_point(typescript-http-eof)
@@ -0,0 +1,32 @@
1
+ // Code generated by protoc-gen-typescript-http. DO NOT EDIT.
2
+ /* eslint-disable camelcase */
3
+ // @ts-nocheck
4
+
5
+ export type Mail = {
6
+ smtp: SMTP | undefined;
7
+ from: MailFrom | undefined;
8
+ };
9
+
10
+ export type SMTP = {
11
+ host: string | undefined;
12
+ port: number | undefined;
13
+ username: string | undefined;
14
+ password: string | undefined;
15
+ tls: boolean | undefined;
16
+ skipVerifySsl: boolean | undefined;
17
+ sendTimeout: wellKnownDuration | undefined;
18
+ };
19
+
20
+ // Generated output always contains 0, 3, 6, or 9 fractional digits,
21
+ // depending on required precision, followed by the suffix "s".
22
+ // Accepted are any fractional digits (also none) as long as they fit
23
+ // into nano-seconds precision and the suffix "s" is required.
24
+ type wellKnownDuration = string;
25
+
26
+ export type MailFrom = {
27
+ address: string | undefined;
28
+ name: string | undefined;
29
+ };
30
+
31
+
32
+ // @@protoc_insertion_point(typescript-http-eof)
@@ -0,0 +1,23 @@
1
+ // Code generated by protoc-gen-typescript-http. DO NOT EDIT.
2
+ /* eslint-disable camelcase */
3
+ // @ts-nocheck
4
+
5
+ export type Redis = {
6
+ network: string | undefined;
7
+ addr: string | undefined;
8
+ userName: string | undefined;
9
+ password: string | undefined;
10
+ db: number | undefined;
11
+ dialTimeout: wellKnownDuration | undefined;
12
+ readTimeout: wellKnownDuration | undefined;
13
+ writeTimeout: wellKnownDuration | undefined;
14
+ };
15
+
16
+ // Generated output always contains 0, 3, 6, or 9 fractional digits,
17
+ // depending on required precision, followed by the suffix "s".
18
+ // Accepted are any fractional digits (also none) as long as they fit
19
+ // into nano-seconds precision and the suffix "s" is required.
20
+ type wellKnownDuration = string;
21
+
22
+
23
+ // @@protoc_insertion_point(typescript-http-eof)
@@ -0,0 +1,18 @@
1
+ // Code generated by protoc-gen-typescript-http. DO NOT EDIT.
2
+ /* eslint-disable camelcase */
3
+ // @ts-nocheck
4
+
5
+ // MapperRule is a message-level annotation controlling read projection mapper codegen.
6
+ export type MapperRule = {
7
+ // Proto field names to clear after reading from storage into a DTO.
8
+ ignoreRead: string[] | undefined;
9
+ };
10
+
11
+ // MapperFieldRule is a field-level annotation controlling read projection field mapping.
12
+ export type MapperFieldRule = {
13
+ // Rename the storage/entity Go field used to populate this DTO field.
14
+ rename: string | undefined;
15
+ };
16
+
17
+
18
+ // @@protoc_insertion_point(typescript-http-eof)
@@ -0,0 +1,13 @@
1
+ // Code generated by protoc-gen-typescript-http. DO NOT EDIT.
2
+ /* eslint-disable camelcase */
3
+ // @ts-nocheck
4
+
5
+ export type AuditContract = {
6
+ enabled: boolean | undefined;
7
+ emitterType: string | undefined;
8
+ topic: string | undefined;
9
+ serviceName: string | undefined;
10
+ };
11
+
12
+
13
+ // @@protoc_insertion_point(typescript-http-eof)
@@ -0,0 +1,37 @@
1
+ // Code generated by protoc-gen-typescript-http. DO NOT EDIT.
2
+ /* eslint-disable camelcase */
3
+ // @ts-nocheck
4
+
5
+ export type PagePaginationRequest = {
6
+ page: number | undefined;
7
+ pageSize: number | undefined;
8
+ };
9
+
10
+ export type CursorPaginationRequest = {
11
+ cursor: string | undefined;
12
+ limit: number | undefined;
13
+ };
14
+
15
+ export type PaginationRequest = {
16
+ page?: PagePaginationRequest;
17
+ cursor?: CursorPaginationRequest;
18
+ };
19
+
20
+ export type PagePaginationResponse = {
21
+ total: number | undefined;
22
+ page: number | undefined;
23
+ pageSize: number | undefined;
24
+ };
25
+
26
+ export type CursorPaginationResponse = {
27
+ nextCursor: string | undefined;
28
+ hasMore: boolean | undefined;
29
+ };
30
+
31
+ export type PaginationResponse = {
32
+ page?: PagePaginationResponse;
33
+ cursor?: CursorPaginationResponse;
34
+ };
35
+
36
+
37
+ // @@protoc_insertion_point(typescript-http-eof)
@@ -0,0 +1,13 @@
1
+ // Code generated by protoc-gen-typescript-http. DO NOT EDIT.
2
+ /* eslint-disable camelcase */
3
+ // @ts-nocheck
4
+
5
+ export type Config = {
6
+ cryptoKey: string | undefined;
7
+ grantTypeRefreshToken: boolean | undefined;
8
+ defaultLogoutRedirectUri: string | undefined;
9
+ loginBaseUrl: string | undefined;
10
+ };
11
+
12
+
13
+ // @@protoc_insertion_point(typescript-http-eof)
@@ -0,0 +1,13 @@
1
+ // Code generated by protoc-gen-typescript-http. DO NOT EDIT.
2
+ /* eslint-disable camelcase */
3
+ // @ts-nocheck
4
+
5
+ export type Config = {
6
+ apiUrl: string | undefined;
7
+ storeId: string | undefined;
8
+ modelId: string | undefined;
9
+ apiToken: string | undefined;
10
+ };
11
+
12
+
13
+ // @@protoc_insertion_point(typescript-http-eof)
@@ -0,0 +1,17 @@
1
+ // Code generated by protoc-gen-typescript-http. DO NOT EDIT.
2
+ /* eslint-disable camelcase */
3
+ // @ts-nocheck
4
+
5
+ // RS256 asymmetric signing. Signers configure private_key_path or
6
+ // private_key_pem; private_key_path takes precedence when both are set.
7
+ export type Jwt = {
8
+ privateKeyPath: string | undefined;
9
+ privateKeyPem: string | undefined;
10
+ accessExpire: number | undefined;
11
+ refreshExpire: number | undefined;
12
+ issuer: string | undefined;
13
+ audience: string | undefined;
14
+ };
15
+
16
+
17
+ // @@protoc_insertion_point(typescript-http-eof)
@@ -0,0 +1,13 @@
1
+ // Code generated by protoc-gen-typescript-http. DO NOT EDIT.
2
+ /* eslint-disable camelcase */
3
+ // @ts-nocheck
4
+
5
+ export type TLS = {
6
+ enable: boolean | undefined;
7
+ certPath: string | undefined;
8
+ keyPath: string | undefined;
9
+ caPath: string | undefined;
10
+ };
11
+
12
+
13
+ // @@protoc_insertion_point(typescript-http-eof)
@@ -0,0 +1,22 @@
1
+ // Code generated by protoc-gen-typescript-http. DO NOT EDIT.
2
+ /* eslint-disable camelcase */
3
+ // @ts-nocheck
4
+
5
+ export type CORS = {
6
+ enable: boolean | undefined;
7
+ allowedOrigins: string[] | undefined;
8
+ allowedMethods: string[] | undefined;
9
+ allowedHeaders: string[] | undefined;
10
+ exposedHeaders: string[] | undefined;
11
+ allowCredentials: boolean | undefined;
12
+ maxAge: wellKnownDuration | undefined;
13
+ };
14
+
15
+ // Generated output always contains 0, 3, 6, or 9 fractional digits,
16
+ // depending on required precision, followed by the suffix "s".
17
+ // Accepted are any fractional digits (also none) as long as they fit
18
+ // into nano-seconds precision and the suffix "s" is required.
19
+ type wellKnownDuration = string;
20
+
21
+
22
+ // @@protoc_insertion_point(typescript-http-eof)
package/src/index.ts ADDED
@@ -0,0 +1,2 @@
1
+ export * from "./client/index.js";
2
+ export * from "./query.js";
package/src/query.ts CHANGED
@@ -13,9 +13,9 @@
13
13
  function omitEmpty(obj: Record<string, unknown>): Record<string, unknown> {
14
14
  return Object.fromEntries(
15
15
  Object.entries(obj).filter(
16
- ([, v]) => v !== null && v !== undefined && v !== '',
16
+ ([, v]) => v !== null && v !== undefined && v !== "",
17
17
  ),
18
- )
18
+ );
19
19
  }
20
20
 
21
21
  /**
@@ -35,10 +35,10 @@ function omitEmpty(obj: Record<string, unknown>): Record<string, unknown> {
35
35
  export function makeFilter(
36
36
  fields?: null | Record<string, unknown>,
37
37
  ): string | undefined {
38
- if (fields == null) return undefined
39
- const cleaned = omitEmpty(fields)
40
- if (Object.keys(cleaned).length === 0) return undefined
41
- return JSON.stringify(cleaned)
38
+ if (fields == null) return undefined;
39
+ const cleaned = omitEmpty(fields);
40
+ if (Object.keys(cleaned).length === 0) return undefined;
41
+ return JSON.stringify(cleaned);
42
42
  }
43
43
 
44
44
  /**
@@ -55,10 +55,12 @@ export function makeFilter(
55
55
  * makeOrderBy()
56
56
  * // → '["-created_at"]'
57
57
  */
58
+ export const DEFAULT_ORDER_BY = ["-created_at"];
59
+
58
60
  export function makeOrderBy(fields?: null | string[]): string | undefined {
59
- const resolved = fields ?? ['-created_at']
60
- if (resolved.length === 0) return undefined
61
- return JSON.stringify(resolved)
61
+ if (fields == null) return undefined;
62
+ if (fields.length === 0) return undefined;
63
+ return JSON.stringify(fields);
62
64
  }
63
65
 
64
66
  /**
@@ -76,6 +78,6 @@ export function makeOrderBy(fields?: null | string[]): string | undefined {
76
78
  * // → 'name,avatar,id' (id 不重复出现)
77
79
  */
78
80
  export function makeUpdateMask(fields: string[]): string {
79
- const without = fields.filter((f) => f !== 'id')
80
- return [...without, 'id'].join(',')
81
+ const unique = [...new Set(fields.filter((f) => f !== "id"))];
82
+ return [...unique, "id"].join(",");
81
83
  }