@zudojs/rpc 0.0.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 (147) hide show
  1. package/README.md +58 -0
  2. package/dist/.tsbuildinfo +1 -0
  3. package/dist/index.d.ts +45 -0
  4. package/dist/index.d.ts.map +1 -0
  5. package/dist/index.js +39 -0
  6. package/dist/index.js.map +1 -0
  7. package/dist/rpc/client/index.d.ts +3 -0
  8. package/dist/rpc/client/index.d.ts.map +1 -0
  9. package/dist/rpc/client/index.js +2 -0
  10. package/dist/rpc/client/index.js.map +1 -0
  11. package/dist/rpc/client/rpcClient.core.d.ts +26 -0
  12. package/dist/rpc/client/rpcClient.core.d.ts.map +1 -0
  13. package/dist/rpc/client/rpcClient.core.js +60 -0
  14. package/dist/rpc/client/rpcClient.core.js.map +1 -0
  15. package/dist/rpc/constants/index.d.ts +2 -0
  16. package/dist/rpc/constants/index.d.ts.map +1 -0
  17. package/dist/rpc/constants/index.js +2 -0
  18. package/dist/rpc/constants/index.js.map +1 -0
  19. package/dist/rpc/constants/rpcConstants.core.d.ts +30 -0
  20. package/dist/rpc/constants/rpcConstants.core.d.ts.map +1 -0
  21. package/dist/rpc/constants/rpcConstants.core.js +30 -0
  22. package/dist/rpc/constants/rpcConstants.core.js.map +1 -0
  23. package/dist/rpc/context/index.d.ts +3 -0
  24. package/dist/rpc/context/index.d.ts.map +1 -0
  25. package/dist/rpc/context/index.js +2 -0
  26. package/dist/rpc/context/index.js.map +1 -0
  27. package/dist/rpc/context/rpcContext.type.d.ts +18 -0
  28. package/dist/rpc/context/rpcContext.type.d.ts.map +1 -0
  29. package/dist/rpc/context/rpcContext.type.js +20 -0
  30. package/dist/rpc/context/rpcContext.type.js.map +1 -0
  31. package/dist/rpc/dispatcher/index.d.ts +2 -0
  32. package/dist/rpc/dispatcher/index.d.ts.map +1 -0
  33. package/dist/rpc/dispatcher/index.js +2 -0
  34. package/dist/rpc/dispatcher/index.js.map +1 -0
  35. package/dist/rpc/dispatcher/rpcDispatcher.core.d.ts +19 -0
  36. package/dist/rpc/dispatcher/rpcDispatcher.core.d.ts.map +1 -0
  37. package/dist/rpc/dispatcher/rpcDispatcher.core.js +38 -0
  38. package/dist/rpc/dispatcher/rpcDispatcher.core.js.map +1 -0
  39. package/dist/rpc/errors/index.d.ts +3 -0
  40. package/dist/rpc/errors/index.d.ts.map +1 -0
  41. package/dist/rpc/errors/index.js +2 -0
  42. package/dist/rpc/errors/index.js.map +1 -0
  43. package/dist/rpc/errors/rpc.errors.d.ts +3 -0
  44. package/dist/rpc/errors/rpc.errors.d.ts.map +1 -0
  45. package/dist/rpc/errors/rpc.errors.js +2 -0
  46. package/dist/rpc/errors/rpc.errors.js.map +1 -0
  47. package/dist/rpc/interceptor/index.d.ts +3 -0
  48. package/dist/rpc/interceptor/index.d.ts.map +1 -0
  49. package/dist/rpc/interceptor/index.js +2 -0
  50. package/dist/rpc/interceptor/index.js.map +1 -0
  51. package/dist/rpc/interceptor/rpcInterceptor.type.d.ts +12 -0
  52. package/dist/rpc/interceptor/rpcInterceptor.type.d.ts.map +1 -0
  53. package/dist/rpc/interceptor/rpcInterceptor.type.js +11 -0
  54. package/dist/rpc/interceptor/rpcInterceptor.type.js.map +1 -0
  55. package/dist/rpc/middleware/index.d.ts +3 -0
  56. package/dist/rpc/middleware/index.d.ts.map +1 -0
  57. package/dist/rpc/middleware/index.js +2 -0
  58. package/dist/rpc/middleware/index.js.map +1 -0
  59. package/dist/rpc/middleware/rpcMiddleware.core.d.ts +17 -0
  60. package/dist/rpc/middleware/rpcMiddleware.core.d.ts.map +1 -0
  61. package/dist/rpc/middleware/rpcMiddleware.core.js +29 -0
  62. package/dist/rpc/middleware/rpcMiddleware.core.js.map +1 -0
  63. package/dist/rpc/procedure/index.d.ts +5 -0
  64. package/dist/rpc/procedure/index.d.ts.map +1 -0
  65. package/dist/rpc/procedure/index.js +4 -0
  66. package/dist/rpc/procedure/index.js.map +1 -0
  67. package/dist/rpc/procedure/rpcProcedure.type.d.ts +27 -0
  68. package/dist/rpc/procedure/rpcProcedure.type.d.ts.map +1 -0
  69. package/dist/rpc/procedure/rpcProcedure.type.js +11 -0
  70. package/dist/rpc/procedure/rpcProcedure.type.js.map +1 -0
  71. package/dist/rpc/procedure/rpcProcedureRegistry.core.d.ts +40 -0
  72. package/dist/rpc/procedure/rpcProcedureRegistry.core.d.ts.map +1 -0
  73. package/dist/rpc/procedure/rpcProcedureRegistry.core.js +66 -0
  74. package/dist/rpc/procedure/rpcProcedureRegistry.core.js.map +1 -0
  75. package/dist/rpc/procedure/rpcProcedureRouter.core.d.ts +37 -0
  76. package/dist/rpc/procedure/rpcProcedureRouter.core.d.ts.map +1 -0
  77. package/dist/rpc/procedure/rpcProcedureRouter.core.js +59 -0
  78. package/dist/rpc/procedure/rpcProcedureRouter.core.js.map +1 -0
  79. package/dist/rpc/reliability/cancellation/rpcCancellation.helper.d.ts +14 -0
  80. package/dist/rpc/reliability/cancellation/rpcCancellation.helper.d.ts.map +1 -0
  81. package/dist/rpc/reliability/cancellation/rpcCancellation.helper.js +21 -0
  82. package/dist/rpc/reliability/cancellation/rpcCancellation.helper.js.map +1 -0
  83. package/dist/rpc/reliability/deadline/rpcDeadline.helper.d.ts +18 -0
  84. package/dist/rpc/reliability/deadline/rpcDeadline.helper.d.ts.map +1 -0
  85. package/dist/rpc/reliability/deadline/rpcDeadline.helper.js +27 -0
  86. package/dist/rpc/reliability/deadline/rpcDeadline.helper.js.map +1 -0
  87. package/dist/rpc/reliability/index.d.ts +6 -0
  88. package/dist/rpc/reliability/index.d.ts.map +1 -0
  89. package/dist/rpc/reliability/index.js +5 -0
  90. package/dist/rpc/reliability/index.js.map +1 -0
  91. package/dist/rpc/reliability/retry/rpcRetry.helper.d.ts +32 -0
  92. package/dist/rpc/reliability/retry/rpcRetry.helper.d.ts.map +1 -0
  93. package/dist/rpc/reliability/retry/rpcRetry.helper.js +50 -0
  94. package/dist/rpc/reliability/retry/rpcRetry.helper.js.map +1 -0
  95. package/dist/rpc/reliability/timeout/rpcTimeout.helper.d.ts +14 -0
  96. package/dist/rpc/reliability/timeout/rpcTimeout.helper.d.ts.map +1 -0
  97. package/dist/rpc/reliability/timeout/rpcTimeout.helper.js +22 -0
  98. package/dist/rpc/reliability/timeout/rpcTimeout.helper.js.map +1 -0
  99. package/dist/rpc/server/index.d.ts +2 -0
  100. package/dist/rpc/server/index.d.ts.map +1 -0
  101. package/dist/rpc/server/index.js +2 -0
  102. package/dist/rpc/server/index.js.map +1 -0
  103. package/dist/rpc/server/rpcServer.core.d.ts +27 -0
  104. package/dist/rpc/server/rpcServer.core.d.ts.map +1 -0
  105. package/dist/rpc/server/rpcServer.core.js +59 -0
  106. package/dist/rpc/server/rpcServer.core.js.map +1 -0
  107. package/dist/rpc/streaming/index.d.ts +3 -0
  108. package/dist/rpc/streaming/index.d.ts.map +1 -0
  109. package/dist/rpc/streaming/index.js +2 -0
  110. package/dist/rpc/streaming/index.js.map +1 -0
  111. package/dist/rpc/streaming/rpcStreaming.type.d.ts +22 -0
  112. package/dist/rpc/streaming/rpcStreaming.type.d.ts.map +1 -0
  113. package/dist/rpc/streaming/rpcStreaming.type.js +15 -0
  114. package/dist/rpc/streaming/rpcStreaming.type.js.map +1 -0
  115. package/dist/rpc/transport/index.d.ts +2 -0
  116. package/dist/rpc/transport/index.d.ts.map +1 -0
  117. package/dist/rpc/transport/index.js +2 -0
  118. package/dist/rpc/transport/index.js.map +1 -0
  119. package/dist/rpc/transport/rpcTransport.type.d.ts +17 -0
  120. package/dist/rpc/transport/rpcTransport.type.d.ts.map +1 -0
  121. package/dist/rpc/transport/rpcTransport.type.js +2 -0
  122. package/dist/rpc/transport/rpcTransport.type.js.map +1 -0
  123. package/dist/rpc/types/index.d.ts +13 -0
  124. package/dist/rpc/types/index.d.ts.map +1 -0
  125. package/dist/rpc/types/index.js +9 -0
  126. package/dist/rpc/types/index.js.map +1 -0
  127. package/dist/rpc/types/rpcMetadata.type.d.ts +31 -0
  128. package/dist/rpc/types/rpcMetadata.type.d.ts.map +1 -0
  129. package/dist/rpc/types/rpcMetadata.type.js +7 -0
  130. package/dist/rpc/types/rpcMetadata.type.js.map +1 -0
  131. package/dist/rpc/types/rpcProcedureName.type.d.ts +12 -0
  132. package/dist/rpc/types/rpcProcedureName.type.d.ts.map +1 -0
  133. package/dist/rpc/types/rpcProcedureName.type.js +7 -0
  134. package/dist/rpc/types/rpcProcedureName.type.js.map +1 -0
  135. package/dist/rpc/types/rpcRequest.type.d.ts +27 -0
  136. package/dist/rpc/types/rpcRequest.type.d.ts.map +1 -0
  137. package/dist/rpc/types/rpcRequest.type.js +11 -0
  138. package/dist/rpc/types/rpcRequest.type.js.map +1 -0
  139. package/dist/rpc/types/rpcResponse.type.d.ts +32 -0
  140. package/dist/rpc/types/rpcResponse.type.d.ts.map +1 -0
  141. package/dist/rpc/types/rpcResponse.type.js +33 -0
  142. package/dist/rpc/types/rpcResponse.type.js.map +1 -0
  143. package/dist/testing/index.d.ts +11 -0
  144. package/dist/testing/index.d.ts.map +1 -0
  145. package/dist/testing/index.js +10 -0
  146. package/dist/testing/index.js.map +1 -0
  147. package/package.json +53 -0
@@ -0,0 +1,17 @@
1
+ import type { RPCRequest } from "../types/rpcRequest.type.js";
2
+ import type { RPCResponse } from "../types/rpcResponse.type.js";
3
+ /**
4
+ * Options for RPC transport requests.
5
+ */
6
+ export interface RPCTransportRequestOptions {
7
+ readonly signal?: AbortSignal;
8
+ readonly timeout?: number;
9
+ }
10
+ /**
11
+ * Transport interface for sending and receiving RPC messages.
12
+ */
13
+ export interface RPCTransport {
14
+ send(request: RPCRequest): Promise<RPCResponse>;
15
+ close?(): Promise<void>;
16
+ }
17
+ //# sourceMappingURL=rpcTransport.type.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rpcTransport.type.d.ts","sourceRoot":"","sources":["../../../src/rpc/transport/rpcTransport.type.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAC;AAE9D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAEhE;;GAEG;AACH,MAAM,WAAW,0BAA0B;IACzC,QAAQ,CAAC,MAAM,CAAC,EAAE,WAAW,CAAC;IAE9B,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,IAAI,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;IAEhD,KAAK,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACzB"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=rpcTransport.type.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rpcTransport.type.js","sourceRoot":"","sources":["../../../src/rpc/transport/rpcTransport.type.ts"],"names":[],"mappings":""}
@@ -0,0 +1,13 @@
1
+ /**
2
+ * @zudojs/rpc/types
3
+ *
4
+ * Core types for the Zudojs RPC package.
5
+ */
6
+ export type { RPCProcedureName } from "./rpcProcedureName.type.js";
7
+ export type { RPCMetadata, RPCMetadataOptions } from "./rpcMetadata.type.js";
8
+ export { createRPCMetadata } from "./rpcMetadata.type.js";
9
+ export type { RPCRequest, RPCRequestOptions } from "./rpcRequest.type.js";
10
+ export { createRPCRequest } from "./rpcRequest.type.js";
11
+ export type { RPCErrorPayload, RPCResponse } from "./rpcResponse.type.js";
12
+ export { createRPCErrorPayload, createRPCResponse, createRPCErrorResponse, } from "./rpcResponse.type.js";
13
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/rpc/types/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,YAAY,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAEnE,YAAY,EAAE,WAAW,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAE7E,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAE1D,YAAY,EAAE,UAAU,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAE1E,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAExD,YAAY,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAE1E,OAAO,EACL,qBAAqB,EACrB,iBAAiB,EACjB,sBAAsB,GACvB,MAAM,uBAAuB,CAAC"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * @zudojs/rpc/types
3
+ *
4
+ * Core types for the Zudojs RPC package.
5
+ */
6
+ export { createRPCMetadata } from "./rpcMetadata.type.js";
7
+ export { createRPCRequest } from "./rpcRequest.type.js";
8
+ export { createRPCErrorPayload, createRPCResponse, createRPCErrorResponse, } from "./rpcResponse.type.js";
9
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/rpc/types/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAMH,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAI1D,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAIxD,OAAO,EACL,qBAAqB,EACrB,iBAAiB,EACjB,sBAAsB,GACvB,MAAM,uBAAuB,CAAC"}
@@ -0,0 +1,31 @@
1
+ /**
2
+ * Metadata attached to RPC requests and responses.
3
+ */
4
+ export interface RPCMetadata {
5
+ readonly requestId?: string;
6
+ readonly correlationId?: string;
7
+ readonly traceId?: string;
8
+ readonly spanId?: string;
9
+ readonly tenantId?: string;
10
+ readonly userId?: string;
11
+ readonly deadline?: number;
12
+ readonly [key: string]: string | number | boolean | undefined;
13
+ }
14
+ /**
15
+ * Options for creating RPC metadata.
16
+ */
17
+ export interface RPCMetadataOptions {
18
+ readonly requestId?: string;
19
+ readonly correlationId?: string;
20
+ readonly traceId?: string;
21
+ readonly spanId?: string;
22
+ readonly tenantId?: string;
23
+ readonly userId?: string;
24
+ readonly deadline?: number;
25
+ readonly [key: string]: string | number | boolean | undefined;
26
+ }
27
+ /**
28
+ * Creates RPC metadata from options.
29
+ */
30
+ export declare function createRPCMetadata(options?: RPCMetadataOptions): RPCMetadata;
31
+ //# sourceMappingURL=rpcMetadata.type.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rpcMetadata.type.d.ts","sourceRoot":"","sources":["../../../src/rpc/types/rpcMetadata.type.ts"],"names":[],"mappings":"AAEA;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAE5B,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;IAEhC,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAE1B,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAEzB,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAE3B,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAEzB,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAE3B,QAAQ,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,SAAS,CAAC;CAC/D;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAE5B,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;IAEhC,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAE1B,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAEzB,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAE3B,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAEzB,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAE3B,QAAQ,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,SAAS,CAAC;CAC/D;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAC/B,OAAO,GAAE,kBAAuB,GAC/B,WAAW,CAEb"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Creates RPC metadata from options.
3
+ */
4
+ export function createRPCMetadata(options = {}) {
5
+ return Object.freeze({ ...options });
6
+ }
7
+ //# sourceMappingURL=rpcMetadata.type.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rpcMetadata.type.js","sourceRoot":"","sources":["../../../src/rpc/types/rpcMetadata.type.ts"],"names":[],"mappings":"AA4CA;;GAEG;AACH,MAAM,UAAU,iBAAiB,CAC/B,OAAO,GAAuB,EAAE;IAEhC,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,GAAG,OAAO,EAAE,CAAC,CAAC;AACvC,CAAC"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * @zudojs/rpc/types
3
+ *
4
+ * Core types for the Zudojs RPC package.
5
+ */
6
+ /**
7
+ * A valid RPC procedure name.
8
+ *
9
+ * Must be dot-separated lowercase identifiers, e.g. "users.getUser".
10
+ */
11
+ export type RPCProcedureName = string;
12
+ //# sourceMappingURL=rpcProcedureName.type.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rpcProcedureName.type.d.ts","sourceRoot":"","sources":["../../../src/rpc/types/rpcProcedureName.type.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH;;;;GAIG;AACH,MAAM,MAAM,gBAAgB,GAAG,MAAM,CAAC"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * @zudojs/rpc/types
3
+ *
4
+ * Core types for the Zudojs RPC package.
5
+ */
6
+ export {};
7
+ //# sourceMappingURL=rpcProcedureName.type.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rpcProcedureName.type.js","sourceRoot":"","sources":["../../../src/rpc/types/rpcProcedureName.type.ts"],"names":[],"mappings":"AAAA;;;;GAIG"}
@@ -0,0 +1,27 @@
1
+ import type { RPCMetadata } from "./rpcMetadata.type.js";
2
+ import type { RPCProcedureName } from "./rpcProcedureName.type.js";
3
+ /**
4
+ * An RPC request message.
5
+ */
6
+ export interface RPCRequest<TPayload = unknown> {
7
+ readonly id: string;
8
+ readonly procedure: RPCProcedureName;
9
+ readonly payload: TPayload;
10
+ readonly metadata: RPCMetadata;
11
+ readonly timestamp: number;
12
+ }
13
+ /**
14
+ * Options for creating an RPC request.
15
+ */
16
+ export interface RPCRequestOptions<TPayload = unknown> {
17
+ readonly id: string;
18
+ readonly procedure: RPCProcedureName;
19
+ readonly payload: TPayload;
20
+ readonly metadata?: RPCMetadata;
21
+ readonly timestamp?: number;
22
+ }
23
+ /**
24
+ * Creates an RPC request.
25
+ */
26
+ export declare function createRPCRequest<TPayload = unknown>(options: RPCRequestOptions<TPayload>): RPCRequest<TPayload>;
27
+ //# sourceMappingURL=rpcRequest.type.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rpcRequest.type.d.ts","sourceRoot":"","sources":["../../../src/rpc/types/rpcRequest.type.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAEzD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAEnE;;GAEG;AACH,MAAM,WAAW,UAAU,CAAC,QAAQ,GAAG,OAAO;IAC5C,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IAEpB,QAAQ,CAAC,SAAS,EAAE,gBAAgB,CAAC;IAErC,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC;IAE3B,QAAQ,CAAC,QAAQ,EAAE,WAAW,CAAC;IAE/B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;CAC5B;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB,CAAC,QAAQ,GAAG,OAAO;IACnD,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IAEpB,QAAQ,CAAC,SAAS,EAAE,gBAAgB,CAAC;IAErC,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC;IAE3B,QAAQ,CAAC,QAAQ,CAAC,EAAE,WAAW,CAAC;IAEhC,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,QAAQ,GAAG,OAAO,EACjD,OAAO,EAAE,iBAAiB,CAAC,QAAQ,CAAC,GACnC,UAAU,CAAC,QAAQ,CAAC,CAMtB"}
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Creates an RPC request.
3
+ */
4
+ export function createRPCRequest(options) {
5
+ return Object.freeze({
6
+ ...options,
7
+ metadata: options.metadata ?? {},
8
+ timestamp: options.timestamp ?? Date.now(),
9
+ });
10
+ }
11
+ //# sourceMappingURL=rpcRequest.type.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rpcRequest.type.js","sourceRoot":"","sources":["../../../src/rpc/types/rpcRequest.type.ts"],"names":[],"mappings":"AAkCA;;GAEG;AACH,MAAM,UAAU,gBAAgB,CAC9B,OAAoC;IAEpC,OAAO,MAAM,CAAC,MAAM,CAAC;QACnB,GAAG,OAAO;QACV,QAAQ,EAAE,OAAO,CAAC,QAAQ,IAAI,EAAE;QAChC,SAAS,EAAE,OAAO,CAAC,SAAS,IAAI,IAAI,CAAC,GAAG,EAAE;KAC3C,CAAC,CAAC;AACL,CAAC"}
@@ -0,0 +1,32 @@
1
+ import type { RPCMetadata } from "./rpcMetadata.type.js";
2
+ /**
3
+ * Payload for an RPC error response.
4
+ */
5
+ export interface RPCErrorPayload {
6
+ readonly code: string;
7
+ readonly message: string;
8
+ readonly details?: unknown;
9
+ }
10
+ /**
11
+ * Creates an RPC error payload.
12
+ */
13
+ export declare function createRPCErrorPayload(code: string, message: string, details?: unknown): RPCErrorPayload;
14
+ /**
15
+ * An RPC response message.
16
+ */
17
+ export interface RPCResponse<TResult = unknown> {
18
+ readonly id: string;
19
+ readonly success: boolean;
20
+ readonly result?: TResult;
21
+ readonly error?: RPCErrorPayload;
22
+ readonly metadata?: RPCMetadata;
23
+ }
24
+ /**
25
+ * Creates a successful RPC response.
26
+ */
27
+ export declare function createRPCResponse<TResult = unknown>(id: string, result: TResult, metadata?: RPCMetadata): RPCResponse<TResult>;
28
+ /**
29
+ * Creates a failed RPC response.
30
+ */
31
+ export declare function createRPCErrorResponse(id: string, error: RPCErrorPayload, metadata?: RPCMetadata): RPCResponse<never>;
32
+ //# sourceMappingURL=rpcResponse.type.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rpcResponse.type.d.ts","sourceRoot":"","sources":["../../../src/rpc/types/rpcResponse.type.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAEzD;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAEtB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IAEzB,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC;CAC5B;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CACnC,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,MAAM,EACf,OAAO,CAAC,EAAE,OAAO,GAChB,eAAe,CAMjB;AAED;;GAEG;AACH,MAAM,WAAW,WAAW,CAAC,OAAO,GAAG,OAAO;IAC5C,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IAEpB,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAE1B,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC;IAE1B,QAAQ,CAAC,KAAK,CAAC,EAAE,eAAe,CAAC;IAEjC,QAAQ,CAAC,QAAQ,CAAC,EAAE,WAAW,CAAC;CACjC;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,GAAG,OAAO,EACjD,EAAE,EAAE,MAAM,EACV,MAAM,EAAE,OAAO,EACf,QAAQ,CAAC,EAAE,WAAW,GACrB,WAAW,CAAC,OAAO,CAAC,CAOtB;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CACpC,EAAE,EAAE,MAAM,EACV,KAAK,EAAE,eAAe,EACtB,QAAQ,CAAC,EAAE,WAAW,GACrB,WAAW,CAAC,KAAK,CAAC,CAOpB"}
@@ -0,0 +1,33 @@
1
+ /**
2
+ * Creates an RPC error payload.
3
+ */
4
+ export function createRPCErrorPayload(code, message, details) {
5
+ return Object.freeze({
6
+ code,
7
+ message,
8
+ ...(details !== undefined ? { details } : {}),
9
+ });
10
+ }
11
+ /**
12
+ * Creates a successful RPC response.
13
+ */
14
+ export function createRPCResponse(id, result, metadata) {
15
+ return Object.freeze({
16
+ id,
17
+ success: true,
18
+ result,
19
+ ...(metadata !== undefined ? { metadata } : {}),
20
+ });
21
+ }
22
+ /**
23
+ * Creates a failed RPC response.
24
+ */
25
+ export function createRPCErrorResponse(id, error, metadata) {
26
+ return Object.freeze({
27
+ id,
28
+ success: false,
29
+ error,
30
+ ...(metadata !== undefined ? { metadata } : {}),
31
+ });
32
+ }
33
+ //# sourceMappingURL=rpcResponse.type.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rpcResponse.type.js","sourceRoot":"","sources":["../../../src/rpc/types/rpcResponse.type.ts"],"names":[],"mappings":"AAaA;;GAEG;AACH,MAAM,UAAU,qBAAqB,CACnC,IAAY,EACZ,OAAe,EACf,OAAiB;IAEjB,OAAO,MAAM,CAAC,MAAM,CAAC;QACnB,IAAI;QACJ,OAAO;QACP,GAAG,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAC9C,CAAC,CAAC;AACL,CAAC;AAiBD;;GAEG;AACH,MAAM,UAAU,iBAAiB,CAC/B,EAAU,EACV,MAAe,EACf,QAAsB;IAEtB,OAAO,MAAM,CAAC,MAAM,CAAC;QACnB,EAAE;QACF,OAAO,EAAE,IAAI;QACb,MAAM;QACN,GAAG,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAChD,CAAC,CAAC;AACL,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,sBAAsB,CACpC,EAAU,EACV,KAAsB,EACtB,QAAsB;IAEtB,OAAO,MAAM,CAAC,MAAM,CAAC;QACnB,EAAE;QACF,OAAO,EAAE,KAAK;QACd,KAAK;QACL,GAAG,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAChD,CAAC,CAAC;AACL,CAAC"}
@@ -0,0 +1,11 @@
1
+ /**
2
+ * @zudojs/rpc/testing
3
+ *
4
+ * Testing utilities for the RPC package.
5
+ */
6
+ export type { RPCTransport } from "../rpc/transport/rpcTransport.type.js";
7
+ export { createRPCRequest } from "../rpc/types/rpcRequest.type.js";
8
+ export { createRPCProcedure } from "../rpc/procedure/rpcProcedure.type.js";
9
+ export { RPCServer } from "../rpc/server/rpcServer.core.js";
10
+ export { RPCClient } from "../rpc/client/rpcClient.core.js";
11
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/testing/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,YAAY,EAAE,YAAY,EAAE,MAAM,uCAAuC,CAAC;AAE1E,OAAO,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AAEnE,OAAO,EAAE,kBAAkB,EAAE,MAAM,uCAAuC,CAAC;AAE3E,OAAO,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAC;AAE5D,OAAO,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAC"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * @zudojs/rpc/testing
3
+ *
4
+ * Testing utilities for the RPC package.
5
+ */
6
+ export { createRPCRequest } from "../rpc/types/rpcRequest.type.js";
7
+ export { createRPCProcedure } from "../rpc/procedure/rpcProcedure.type.js";
8
+ export { RPCServer } from "../rpc/server/rpcServer.core.js";
9
+ export { RPCClient } from "../rpc/client/rpcClient.core.js";
10
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/testing/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,OAAO,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AAEnE,OAAO,EAAE,kBAAkB,EAAE,MAAM,uCAAuC,CAAC;AAE3E,OAAO,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAC;AAE5D,OAAO,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAC"}
package/package.json ADDED
@@ -0,0 +1,53 @@
1
+ {
2
+ "name": "@zudojs/rpc",
3
+ "version": "0.0.1",
4
+ "description": "Remote procedure call infrastructure for Zudojs applications.",
5
+ "license": "MIT",
6
+ "type": "module",
7
+ "main": "./dist/index.js",
8
+ "module": "./dist/index.js",
9
+ "types": "./dist/index.d.ts",
10
+ "exports": {
11
+ ".": {
12
+ "types": "./dist/index.d.ts",
13
+ "import": "./dist/index.js"
14
+ }
15
+ },
16
+ "files": [
17
+ "dist"
18
+ ],
19
+ "scripts": {
20
+ "build": "tsc -p tsconfig.json",
21
+ "typecheck": "tsc -p tsconfig.json --noEmit",
22
+ "clean": "rm -rf dist",
23
+ "test": "vitest run",
24
+ "test:watch": "vitest"
25
+ },
26
+ "engines": {
27
+ "node": ">=24.0.0"
28
+ },
29
+ "dependencies": {
30
+ "@zudojs/errors": "workspace:*",
31
+ "@zudojs/constants": "workspace:*",
32
+ "@zudojs/types": "workspace:*",
33
+ "@zudojs/schema": "workspace:*"
34
+ },
35
+ "devDependencies": {
36
+ "typescript": "^7.0.2",
37
+ "vitest": "^4.1.11"
38
+ },
39
+ "publishConfig": {
40
+ "access": "public"
41
+ },
42
+ "keywords": [
43
+ "zudojs",
44
+ "rpc",
45
+ "remote",
46
+ "procedure"
47
+ ],
48
+ "homepage": "https://github.com/oyinlola-tech/zudo#readme",
49
+ "repository": {
50
+ "type": "git",
51
+ "url": "https://github.com/oyinlola-tech/zudo"
52
+ }
53
+ }