electron-json-rpc 1.0.1 → 1.1.2

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.md CHANGED
@@ -25,6 +25,62 @@ npm install electron-json-rpc
25
25
  - **Timeout handling** - Configurable timeout for RPC calls
26
26
  - **Batch requests** - Support for multiple requests in a single call
27
27
 
28
+ ## Serializable Types
29
+
30
+ This library uses Electron's IPC which internally uses the **Structured Clone Algorithm** for serialization. This means you can pass many more types than just JSON:
31
+
32
+ | Type | Supported | Notes |
33
+ | ------------------- | --------- | ------------------------------------- |
34
+ | Primitives | ✅ | string, number, boolean, bigint |
35
+ | null / undefined | ✅ | undefined is preserved (not null) |
36
+ | Plain Objects | ✅ | With serializable properties |
37
+ | Arrays | ✅ | Including nested and sparse arrays |
38
+ | Date | ✅ | Preserves date object |
39
+ | RegExp | ✅ | Preserves pattern and flags |
40
+ | Map / Set | ✅ | With serializable contents |
41
+ | ArrayBuffer | ✅ | Binary data |
42
+ | Typed Arrays | ✅ | Int8Array, Uint8Array, etc. |
43
+ | Error objects | ✅ | Including stack trace |
44
+ | Circular references | ✅ | Handled correctly |
45
+
46
+ **Not supported:**
47
+
48
+ - Functions
49
+ - DOM nodes
50
+ - Class instances (except built-ins like Date, Map, Set, Error)
51
+ - Symbols
52
+
53
+ ### Example
54
+
55
+ ```typescript
56
+ // Main process
57
+ rpc.register("getData", () => ({
58
+ date: new Date(),
59
+ regex: /test/gi,
60
+ map: new Map([["key", "value"]]),
61
+ buffer: new ArrayBuffer(8),
62
+ }));
63
+
64
+ // Renderer process - all types preserved!
65
+ const data = await rpc.getData();
66
+ console.log(data.date instanceof Date); // true
67
+ console.log(data.regex instanceof RegExp); // true
68
+ console.log(data.map instanceof Map); // true
69
+ console.log(data.buffer instanceof ArrayBuffer); // true
70
+ ```
71
+
72
+ ### TypeScript Type
73
+
74
+ You can use the `IpcSerializable` type to ensure values are serializable:
75
+
76
+ ```typescript
77
+ import type { IpcSerializable } from "electron-json-rpc/types";
78
+
79
+ function sendToRenderer(data: IpcSerializable) {
80
+ rpc.publish("event", data); // Type-safe!
81
+ }
82
+ ```
83
+
28
84
  ## Quick Start
29
85
 
30
86
  ### Main Process
package/README.zh-CN.md CHANGED
@@ -25,6 +25,62 @@ npm install electron-json-rpc
25
25
  - **超时处理** - 可配置的 RPC 调用超时
26
26
  - **批量请求** - 支持单次调用发送多个请求
27
27
 
28
+ ## 可序列化类型
29
+
30
+ 本库使用 Electron IPC,内部使用**结构化克隆算法**(Structured Clone Algorithm)进行序列化。这意味着你可以传递比 JSON 更多的类型:
31
+
32
+ | 类型 | 支持 | 说明 |
33
+ | ------------------- | ---- | -------------------------------------- |
34
+ | 基本类型 | ✅ | string、number、boolean、bigint |
35
+ | null / undefined | ✅ | undefined 会保留(不会像 JSON 那样变成 null) |
36
+ | 普通对象 | ✅ | 包含可序列化属性的对象 |
37
+ | 数组 | ✅ | 包括嵌套数组和稀疏数组 |
38
+ | Date | ✅ | 保留 Date 对象 |
39
+ | RegExp | ✅ | 保留正则表达式和标志 |
40
+ | Map / Set | ✅ | 内容可序列化的 Map 和 Set |
41
+ | ArrayBuffer | ✅ | 二进制数据 |
42
+ | Typed Arrays | ✅ | Int8Array、Uint8Array 等 |
43
+ | Error 对象 | ✅ | 包括堆栈信息 |
44
+ | 循环引用 | ✅ | 可以正确处理 |
45
+
46
+ **不支持的类型:**
47
+
48
+ - 函数
49
+ - DOM 节点
50
+ - 类实例(除了内置类型如 Date、Map、Set、Error)
51
+ - Symbol
52
+
53
+ ### 示例
54
+
55
+ ```typescript
56
+ // 主进程
57
+ rpc.register("getData", () => ({
58
+ date: new Date(),
59
+ regex: /test/gi,
60
+ map: new Map([["key", "value"]]),
61
+ buffer: new ArrayBuffer(8),
62
+ }));
63
+
64
+ // 渲染进程 - 所有类型都正确保留!
65
+ const data = await rpc.getData();
66
+ console.log(data.date instanceof Date); // true
67
+ console.log(data.regex instanceof RegExp); // true
68
+ console.log(data.map instanceof Map); // true
69
+ console.log(data.buffer instanceof ArrayBuffer); // true
70
+ ```
71
+
72
+ ### TypeScript 类型
73
+
74
+ 你可以使用 `IpcSerializable` 类型来确保值是可序列化的:
75
+
76
+ ```typescript
77
+ import type { IpcSerializable } from "electron-json-rpc/types";
78
+
79
+ function sendToRenderer(data: IpcSerializable) {
80
+ rpc.publish("event", data); // 类型安全!
81
+ }
82
+ ```
83
+
28
84
  ## 快速开始
29
85
 
30
86
  ### 主进程
package/dist/debug.d.mts CHANGED
@@ -1,4 +1,4 @@
1
- import { h as RpcLogger } from "./types-BnGse9DF.mjs";
1
+ import { _ as RpcLogger } from "./types-BdcKpjjp.mjs";
2
2
 
3
3
  //#region src/debug.d.ts
4
4
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"error-xVRu7Lxq.mjs","names":[],"sources":["../src/types.ts","../src/error.ts"],"sourcesContent":["/**\n * JSON-RPC 2.0 types for Electron IPC communication\n */\n\n/**\n * JSON-RPC 2.0 Request\n * id is optional for notifications (one-way calls)\n */\nexport interface JsonRpcRequest {\n jsonrpc: \"2.0\";\n id?: string | number | null;\n method: string;\n params?: unknown[] | Record<string, unknown>;\n}\n\n/**\n * JSON-RPC 2.0 Response\n */\nexport interface JsonRpcResponse {\n jsonrpc: \"2.0\";\n id: string | number | null;\n result?: unknown;\n error?: JsonRpcError;\n}\n\n/**\n * JSON-RPC 2.0 Error\n */\nexport interface JsonRpcError {\n code: number;\n message: string;\n data?: unknown;\n}\n\n/**\n * JSON-RPC 2.0 Error codes\n */\nexport enum JsonRpcErrorCode {\n ParseError = -32700,\n InvalidRequest = -32600,\n MethodNotFound = -32601,\n InvalidParams = -32602,\n InternalError = -32603,\n}\n\n/**\n * RPC method handler type\n */\nexport type RpcHandler = (...params: unknown[]) => unknown | Promise<unknown>;\n\n/**\n * Validator function for params\n * Throw an error to reject the request with InvalidParams error\n */\nexport type RpcValidator = (params: unknown[]) => void | Promise<void>;\n\n/**\n * RPC method registration options\n */\nexport interface RpcMethodOptions {\n /** Optional validator for parameters */\n validate?: RpcValidator;\n /** Optional description for documentation */\n description?: string;\n}\n\n/**\n * Typed API interface for RPC client\n * Converts method signatures to match JSON-RPC behavior\n */\nexport type RpcApi<T extends Record<string, (...args: any[]) => any>> = {\n [K in keyof T]: T[K] extends (...args: infer P) => infer R\n ? R extends void\n ? (...params: P) => void // Notification (void return)\n : (...params: P) => Promise<Awaited<R>> // Regular method\n : never;\n};\n\n/**\n * Options for RPC client\n */\nexport interface RpcClientOptions {\n /** Timeout in milliseconds (default: 30000) */\n timeout?: number;\n /** API name exposed by preload (default: 'rpc') */\n apiName?: string;\n}\n\n/**\n * Options for exposing RPC API in preload\n */\nexport interface ExposeRpcApiOptions {\n contextBridge: {\n exposeInMainWorld: (name: string, api: Record<string, unknown>) => void;\n };\n ipcRenderer: {\n send: (channel: string, ...args: unknown[]) => void;\n on: (channel: string, listener: (event: unknown, ...args: unknown[]) => void) => void;\n removeListener: (channel: string, listener: (...args: unknown[]) => void) => void;\n };\n /** Optional whitelist of methods to expose */\n methods?: string[];\n /** API name exposed to renderer (default: 'rpc') */\n apiName?: string;\n}\n\n/**\n * Stream chunk message for IPC\n */\nexport interface StreamChunk {\n streamId: string | number;\n type: \"chunk\" | \"end\" | \"error\";\n data?: unknown;\n error?: JsonRpcError;\n}\n\n/**\n * Stream request with stream flag\n */\nexport interface StreamRequest extends JsonRpcRequest {\n stream?: true;\n}\n\n/**\n * Stream handler - returns a ReadableStream\n */\nexport type StreamHandler = (...params: unknown[]) => ReadableStream;\n\n/**\n * Stream method registration options\n */\nexport interface StreamMethodOptions extends RpcMethodOptions {\n /** Indicates this method returns a stream */\n stream?: true;\n}\n\n/**\n * Underlying source for ReadableStream\n */\nexport type UnderlyingSource<T> = {\n start?: (controller: ReadableStreamDefaultController<T>) => void | Promise<void>;\n pull?: (controller: ReadableStreamDefaultController<T>) => void | Promise<void>;\n cancel?: (reason?: unknown) => void | Promise<void>;\n type?: undefined;\n};\n\n/**\n * Event handler callback type\n */\nexport type EventHandler<T = unknown> = (data: T) => void;\n\n/**\n * Event subscriber information\n */\nexport interface EventSubscriber {\n windowId: number;\n eventName: string;\n}\n\n/**\n * Event bus API type\n * Maps event names to their data types\n */\nexport type EventBusEvents<T extends Record<string, unknown>> = {\n [K in keyof T]: T[K];\n};\n\n/**\n * Typed event bus interface\n */\nexport type EventBus<T extends Record<string, unknown> = Record<string, unknown>> = {\n /**\n * Subscribe to an event\n * @returns Unsubscribe function\n */\n on<K extends keyof T>(eventName: K, callback: EventHandler<T[K]>): () => void;\n\n /**\n * Unsubscribe from an event\n * If no callback is provided, removes all handlers for the event\n */\n off<K extends keyof T>(eventName: K, callback?: EventHandler<T[K]>): void;\n\n /**\n * Subscribe to an event once (auto-unsubscribe after first call)\n */\n once<K extends keyof T>(eventName: K, callback: EventHandler<T[K]>): void;\n\n /**\n * Get list of subscribed event names\n */\n getSubscribedEvents(): string[];\n};\n\n/**\n * RPC debug log entry type\n */\nexport interface RpcLogEntry {\n /** Log entry type */\n type: \"request\" | \"response\" | \"error\" | \"notify\" | \"stream\" | \"event\";\n /** RPC method or event name */\n method: string;\n /** Request parameters */\n params?: unknown[];\n /** Response result */\n result?: unknown;\n /** Error message */\n error?: string;\n /** Timestamp in milliseconds */\n timestamp: number;\n /** Duration in milliseconds (for responses/errors) */\n duration?: number;\n /** Request ID for correlating request/response */\n requestId?: string | number;\n}\n\n/**\n * RPC logger function type\n */\nexport type RpcLogger = (entry: RpcLogEntry) => void;\n\n/**\n * Debug options for RPC clients\n */\nexport interface RpcDebugOptions {\n /** Enable debug logging */\n debug?: boolean;\n /** Custom logger function */\n logger?: RpcLogger;\n}\n","/**\n * JSON-RPC error utilities\n */\n\nimport type { JsonRpcError } from \"./types.js\";\nimport { JsonRpcErrorCode } from \"./types.js\";\n\n/**\n * Create a JSON-RPC error object\n */\nexport function createJsonRpcError(code: number, message: string, data?: unknown): JsonRpcError {\n return { code, message, data };\n}\n\n/**\n * Predefined error creators\n */\nexport const errors = {\n parseError: (data?: unknown) =>\n createJsonRpcError(JsonRpcErrorCode.ParseError, \"Parse error\", data),\n invalidRequest: (data?: unknown) =>\n createJsonRpcError(JsonRpcErrorCode.InvalidRequest, \"Invalid Request\", data),\n methodNotFound: (method?: string) =>\n createJsonRpcError(\n JsonRpcErrorCode.MethodNotFound,\n `Method not found${method ? `: ${method}` : \"\"}`,\n ),\n invalidParams: (data?: unknown) =>\n createJsonRpcError(JsonRpcErrorCode.InvalidParams, \"Invalid params\", data),\n internalError: (data?: unknown) =>\n createJsonRpcError(JsonRpcErrorCode.InternalError, \"Internal error\", data),\n};\n\n/**\n * Check if an error is a JSON-RPC error\n */\nexport function isJsonRpcError(error: unknown): error is JsonRpcError {\n return (\n typeof error === \"object\" &&\n error !== null &&\n \"code\" in error &&\n typeof (error as JsonRpcError).code === \"number\" &&\n \"message\" in error &&\n typeof (error as JsonRpcError).message === \"string\"\n );\n}\n\n/**\n * Convert an Error object to JSON-RPC error\n */\nexport function errorToJsonRpc(error: unknown): JsonRpcError {\n if (isJsonRpcError(error)) {\n return error;\n }\n\n if (error instanceof Error) {\n return {\n code: JsonRpcErrorCode.InternalError,\n message: error.message,\n data: error.name,\n };\n }\n\n return {\n code: JsonRpcErrorCode.InternalError,\n message: \"Unknown error\",\n data: error,\n };\n}\n\n/**\n * Timeout error class\n */\nexport class RpcTimeoutError extends Error {\n declare readonly name: \"RpcTimeoutError\";\n readonly timeout: number;\n\n constructor(timeout: number) {\n super(`RPC call timed out after ${timeout}ms`);\n this.name = \"RpcTimeoutError\";\n this.timeout = timeout;\n }\n}\n\n/**\n * Check if an error is a timeout error\n */\nexport function isTimeoutError(error: unknown): error is RpcTimeoutError {\n return error instanceof RpcTimeoutError;\n}\n\n/**\n * Error thrown when queue is full and fullBehavior is 'reject'\n */\nexport class RpcQueueFullError extends Error {\n declare readonly name: \"RpcQueueFullError\";\n readonly currentSize: number;\n readonly maxSize: number;\n\n constructor(currentSize: number, maxSize: number) {\n super(`RPC queue is full (${currentSize}/${maxSize})`);\n this.name = \"RpcQueueFullError\";\n this.currentSize = currentSize;\n this.maxSize = maxSize;\n }\n}\n\n/**\n * Error thrown when connection to main process is lost\n */\nexport class RpcConnectionError extends Error {\n declare readonly name: \"RpcConnectionError\";\n readonly code?: string;\n\n constructor(message: string, code?: string) {\n super(message);\n this.name = \"RpcConnectionError\";\n this.code = code;\n }\n}\n\n/**\n * Error thrown when request is evicted from queue\n */\nexport class RpcQueueEvictedError extends Error {\n declare readonly name: \"RpcQueueEvictedError\";\n readonly reason: \"full\" | \"timeout\";\n\n constructor(reason: \"full\" | \"timeout\") {\n super(`Request evicted from queue: ${reason}`);\n this.name = \"RpcQueueEvictedError\";\n this.reason = reason;\n }\n}\n\n/**\n * Check if an error is a queue full error\n */\nexport function isQueueFullError(error: unknown): error is RpcQueueFullError {\n return error instanceof RpcQueueFullError;\n}\n\n/**\n * Check if an error is a connection error\n */\nexport function isConnectionError(error: unknown): error is RpcConnectionError {\n return error instanceof RpcConnectionError;\n}\n\n/**\n * Check if an error is a queue evicted error\n */\nexport function isQueueEvictedError(error: unknown): error is RpcQueueEvictedError {\n return error instanceof RpcQueueEvictedError;\n}\n"],"mappings":";;;;AAqCA,IAAY,8DAAL;AACL;AACA;AACA;AACA;AACA;;;;;;;;;AChCF,SAAgB,mBAAmB,MAAc,SAAiB,MAA8B;AAC9F,QAAO;EAAE;EAAM;EAAS;EAAM;;;;;AAMhC,MAAa,SAAS;CACpB,aAAa,SACX,mBAAmB,iBAAiB,YAAY,eAAe,KAAK;CACtE,iBAAiB,SACf,mBAAmB,iBAAiB,gBAAgB,mBAAmB,KAAK;CAC9E,iBAAiB,WACf,mBACE,iBAAiB,gBACjB,mBAAmB,SAAS,KAAK,WAAW,KAC7C;CACH,gBAAgB,SACd,mBAAmB,iBAAiB,eAAe,kBAAkB,KAAK;CAC5E,gBAAgB,SACd,mBAAmB,iBAAiB,eAAe,kBAAkB,KAAK;CAC7E;;;;AAKD,SAAgB,eAAe,OAAuC;AACpE,QACE,OAAO,UAAU,YACjB,UAAU,QACV,UAAU,SACV,OAAQ,MAAuB,SAAS,YACxC,aAAa,SACb,OAAQ,MAAuB,YAAY;;;;;AAO/C,SAAgB,eAAe,OAA8B;AAC3D,KAAI,eAAe,MAAM,CACvB,QAAO;AAGT,KAAI,iBAAiB,MACnB,QAAO;EACL,MAAM,iBAAiB;EACvB,SAAS,MAAM;EACf,MAAM,MAAM;EACb;AAGH,QAAO;EACL,MAAM,iBAAiB;EACvB,SAAS;EACT,MAAM;EACP;;;;;AAMH,IAAa,kBAAb,cAAqC,MAAM;CAEzC,AAAS;CAET,YAAY,SAAiB;AAC3B,QAAM,4BAA4B,QAAQ,IAAI;AAC9C,OAAK,OAAO;AACZ,OAAK,UAAU;;;;;;AAOnB,SAAgB,eAAe,OAA0C;AACvE,QAAO,iBAAiB;;;;;AAM1B,IAAa,oBAAb,cAAuC,MAAM;CAE3C,AAAS;CACT,AAAS;CAET,YAAY,aAAqB,SAAiB;AAChD,QAAM,sBAAsB,YAAY,GAAG,QAAQ,GAAG;AACtD,OAAK,OAAO;AACZ,OAAK,cAAc;AACnB,OAAK,UAAU;;;;;;AAOnB,IAAa,qBAAb,cAAwC,MAAM;CAE5C,AAAS;CAET,YAAY,SAAiB,MAAe;AAC1C,QAAM,QAAQ;AACd,OAAK,OAAO;AACZ,OAAK,OAAO;;;;;;AAOhB,IAAa,uBAAb,cAA0C,MAAM;CAE9C,AAAS;CAET,YAAY,QAA4B;AACtC,QAAM,+BAA+B,SAAS;AAC9C,OAAK,OAAO;AACZ,OAAK,SAAS;;;;;;AAOlB,SAAgB,iBAAiB,OAA4C;AAC3E,QAAO,iBAAiB;;;;;AAM1B,SAAgB,kBAAkB,OAA6C;AAC7E,QAAO,iBAAiB;;;;;AAM1B,SAAgB,oBAAoB,OAA+C;AACjF,QAAO,iBAAiB"}
1
+ {"version":3,"file":"error-xVRu7Lxq.mjs","names":[],"sources":["../src/types.ts","../src/error.ts"],"sourcesContent":["/**\n * JSON-RPC 2.0 types for Electron IPC communication\n */\n\n/**\n * JSON-RPC 2.0 Request\n * id is optional for notifications (one-way calls)\n */\nexport interface JsonRpcRequest {\n jsonrpc: \"2.0\";\n id?: string | number | null;\n method: string;\n params?: unknown[] | Record<string, unknown>;\n}\n\n/**\n * JSON-RPC 2.0 Response\n */\nexport interface JsonRpcResponse {\n jsonrpc: \"2.0\";\n id: string | number | null;\n result?: unknown;\n error?: JsonRpcError;\n}\n\n/**\n * JSON-RPC 2.0 Error\n */\nexport interface JsonRpcError {\n code: number;\n message: string;\n data?: unknown;\n}\n\n/**\n * JSON-RPC 2.0 Error codes\n */\nexport enum JsonRpcErrorCode {\n ParseError = -32700,\n InvalidRequest = -32600,\n MethodNotFound = -32601,\n InvalidParams = -32602,\n InternalError = -32603,\n}\n\n/**\n * RPC method handler type\n */\nexport type RpcHandler = (...params: unknown[]) => unknown | Promise<unknown>;\n\n/**\n * Validator function for params\n * Throw an error to reject the request with InvalidParams error\n */\nexport type RpcValidator = (params: unknown[]) => void | Promise<void>;\n\n/**\n * RPC method registration options\n */\nexport interface RpcMethodOptions {\n /** Optional validator for parameters */\n validate?: RpcValidator;\n /** Optional description for documentation */\n description?: string;\n}\n\n/**\n * Typed API interface for RPC client\n * Converts method signatures to match JSON-RPC behavior\n */\nexport type RpcApi<T extends Record<string, (...args: any[]) => any>> = {\n [K in keyof T]: T[K] extends (...args: infer P) => infer R\n ? R extends void\n ? (...params: P) => void // Notification (void return)\n : (...params: P) => Promise<Awaited<R>> // Regular method\n : never;\n};\n\n/**\n * Options for RPC client\n */\nexport interface RpcClientOptions {\n /** Timeout in milliseconds (default: 30000) */\n timeout?: number;\n /** API name exposed by preload (default: 'rpc') */\n apiName?: string;\n}\n\n/**\n * Options for exposing RPC API in preload\n */\nexport interface ExposeRpcApiOptions {\n contextBridge: {\n exposeInMainWorld: (name: string, api: Record<string, unknown>) => void;\n };\n ipcRenderer: {\n send: (channel: string, ...args: unknown[]) => void;\n on: (channel: string, listener: (event: unknown, ...args: unknown[]) => void) => void;\n removeListener: (channel: string, listener: (...args: unknown[]) => void) => void;\n };\n /** Optional whitelist of methods to expose */\n methods?: string[];\n /** API name exposed to renderer (default: 'rpc') */\n apiName?: string;\n}\n\n/**\n * Stream chunk message for IPC\n */\nexport interface StreamChunk {\n streamId: string | number;\n type: \"chunk\" | \"end\" | \"error\";\n data?: unknown;\n error?: JsonRpcError;\n}\n\n/**\n * Stream request with stream flag\n */\nexport interface StreamRequest extends JsonRpcRequest {\n stream?: true;\n}\n\n/**\n * Stream handler - returns a ReadableStream\n */\nexport type StreamHandler = (...params: unknown[]) => ReadableStream;\n\n/**\n * Stream method registration options\n */\nexport interface StreamMethodOptions extends RpcMethodOptions {\n /** Indicates this method returns a stream */\n stream?: true;\n}\n\n/**\n * Underlying source for ReadableStream\n */\nexport type UnderlyingSource<T> = {\n start?: (controller: ReadableStreamDefaultController<T>) => void | Promise<void>;\n pull?: (controller: ReadableStreamDefaultController<T>) => void | Promise<void>;\n cancel?: (reason?: unknown) => void | Promise<void>;\n type?: undefined;\n};\n\n/**\n * Event handler callback type\n */\nexport type EventHandler<T = unknown> = (data: T) => void;\n\n/**\n * Event subscriber information\n */\nexport interface EventSubscriber {\n windowId: number;\n eventName: string;\n}\n\n/**\n * Event bus API type\n * Maps event names to their data types\n */\nexport type EventBusEvents<T extends Record<string, unknown>> = {\n [K in keyof T]: T[K];\n};\n\n/**\n * Typed event bus interface\n */\nexport type EventBus<T extends Record<string, unknown> = Record<string, unknown>> = {\n /**\n * Subscribe to an event\n * @returns Unsubscribe function\n */\n on<K extends keyof T>(eventName: K, callback: EventHandler<T[K]>): () => void;\n\n /**\n * Unsubscribe from an event\n * If no callback is provided, removes all handlers for the event\n */\n off<K extends keyof T>(eventName: K, callback?: EventHandler<T[K]>): void;\n\n /**\n * Subscribe to an event once (auto-unsubscribe after first call)\n */\n once<K extends keyof T>(eventName: K, callback: EventHandler<T[K]>): void;\n\n /**\n * Get list of subscribed event names\n */\n getSubscribedEvents(): string[];\n};\n\n/**\n * RPC debug log entry type\n */\nexport interface RpcLogEntry {\n /** Log entry type */\n type: \"request\" | \"response\" | \"error\" | \"notify\" | \"stream\" | \"event\";\n /** RPC method or event name */\n method: string;\n /** Request parameters */\n params?: unknown[];\n /** Response result */\n result?: unknown;\n /** Error message */\n error?: string;\n /** Timestamp in milliseconds */\n timestamp: number;\n /** Duration in milliseconds (for responses/errors) */\n duration?: number;\n /** Request ID for correlating request/response */\n requestId?: string | number;\n}\n\n/**\n * RPC logger function type\n */\nexport type RpcLogger = (entry: RpcLogEntry) => void;\n\n/**\n * Debug options for RPC clients\n */\nexport interface RpcDebugOptions {\n /** Enable debug logging */\n debug?: boolean;\n /** Custom logger function */\n logger?: RpcLogger;\n}\n\n/**\n * All types that can be serialized by Electron IPC using the Structured Clone Algorithm.\n *\n * Electron IPC internally uses structured clone, not JSON, which supports many more types.\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/API/Web_Workers_API/Structured_clone_algorithm\n * @see https://www.electronjs.org/docs/latest/tutorial/ipc#ipc-messages\n *\n * @example\n * ```typescript\n * import type { IpcSerializable } from 'electron-json-rpc/types';\n *\n * const data: IpcSerializable = new Date(); // OK\n * ```\n */\nexport type IpcSerializable =\n | string\n | number\n | boolean\n | bigint\n | undefined\n | null\n | Date\n | RegExp\n | { [key: string]: IpcSerializable }\n | IpcSerializable[]\n | ArrayBuffer\n | Int8Array\n | Uint8Array\n | Uint8ClampedArray\n | Int16Array\n | Uint16Array\n | Int32Array\n | Uint32Array\n | Float32Array\n | Float64Array\n | BigInt64Array\n | BigUint64Array\n | Map<IpcSerializable, IpcSerializable>\n | Set<IpcSerializable>\n | Error\n | EvalError\n | RangeError\n | ReferenceError\n | SyntaxError\n | TypeError\n | URIError;\n\n/**\n * Primitive types supported by Electron IPC\n */\nexport type IpcPrimitive = string | number | boolean | bigint | undefined;\n","/**\n * JSON-RPC error utilities\n */\n\nimport type { JsonRpcError } from \"./types.js\";\nimport { JsonRpcErrorCode } from \"./types.js\";\n\n/**\n * Create a JSON-RPC error object\n */\nexport function createJsonRpcError(code: number, message: string, data?: unknown): JsonRpcError {\n return { code, message, data };\n}\n\n/**\n * Predefined error creators\n */\nexport const errors = {\n parseError: (data?: unknown) =>\n createJsonRpcError(JsonRpcErrorCode.ParseError, \"Parse error\", data),\n invalidRequest: (data?: unknown) =>\n createJsonRpcError(JsonRpcErrorCode.InvalidRequest, \"Invalid Request\", data),\n methodNotFound: (method?: string) =>\n createJsonRpcError(\n JsonRpcErrorCode.MethodNotFound,\n `Method not found${method ? `: ${method}` : \"\"}`,\n ),\n invalidParams: (data?: unknown) =>\n createJsonRpcError(JsonRpcErrorCode.InvalidParams, \"Invalid params\", data),\n internalError: (data?: unknown) =>\n createJsonRpcError(JsonRpcErrorCode.InternalError, \"Internal error\", data),\n};\n\n/**\n * Check if an error is a JSON-RPC error\n */\nexport function isJsonRpcError(error: unknown): error is JsonRpcError {\n return (\n typeof error === \"object\" &&\n error !== null &&\n \"code\" in error &&\n typeof (error as JsonRpcError).code === \"number\" &&\n \"message\" in error &&\n typeof (error as JsonRpcError).message === \"string\"\n );\n}\n\n/**\n * Convert an Error object to JSON-RPC error\n */\nexport function errorToJsonRpc(error: unknown): JsonRpcError {\n if (isJsonRpcError(error)) {\n return error;\n }\n\n if (error instanceof Error) {\n return {\n code: JsonRpcErrorCode.InternalError,\n message: error.message,\n data: error.name,\n };\n }\n\n return {\n code: JsonRpcErrorCode.InternalError,\n message: \"Unknown error\",\n data: error,\n };\n}\n\n/**\n * Timeout error class\n */\nexport class RpcTimeoutError extends Error {\n declare readonly name: \"RpcTimeoutError\";\n readonly timeout: number;\n\n constructor(timeout: number) {\n super(`RPC call timed out after ${timeout}ms`);\n this.name = \"RpcTimeoutError\";\n this.timeout = timeout;\n }\n}\n\n/**\n * Check if an error is a timeout error\n */\nexport function isTimeoutError(error: unknown): error is RpcTimeoutError {\n return error instanceof RpcTimeoutError;\n}\n\n/**\n * Error thrown when queue is full and fullBehavior is 'reject'\n */\nexport class RpcQueueFullError extends Error {\n declare readonly name: \"RpcQueueFullError\";\n readonly currentSize: number;\n readonly maxSize: number;\n\n constructor(currentSize: number, maxSize: number) {\n super(`RPC queue is full (${currentSize}/${maxSize})`);\n this.name = \"RpcQueueFullError\";\n this.currentSize = currentSize;\n this.maxSize = maxSize;\n }\n}\n\n/**\n * Error thrown when connection to main process is lost\n */\nexport class RpcConnectionError extends Error {\n declare readonly name: \"RpcConnectionError\";\n readonly code?: string;\n\n constructor(message: string, code?: string) {\n super(message);\n this.name = \"RpcConnectionError\";\n this.code = code;\n }\n}\n\n/**\n * Error thrown when request is evicted from queue\n */\nexport class RpcQueueEvictedError extends Error {\n declare readonly name: \"RpcQueueEvictedError\";\n readonly reason: \"full\" | \"timeout\";\n\n constructor(reason: \"full\" | \"timeout\") {\n super(`Request evicted from queue: ${reason}`);\n this.name = \"RpcQueueEvictedError\";\n this.reason = reason;\n }\n}\n\n/**\n * Check if an error is a queue full error\n */\nexport function isQueueFullError(error: unknown): error is RpcQueueFullError {\n return error instanceof RpcQueueFullError;\n}\n\n/**\n * Check if an error is a connection error\n */\nexport function isConnectionError(error: unknown): error is RpcConnectionError {\n return error instanceof RpcConnectionError;\n}\n\n/**\n * Check if an error is a queue evicted error\n */\nexport function isQueueEvictedError(error: unknown): error is RpcQueueEvictedError {\n return error instanceof RpcQueueEvictedError;\n}\n"],"mappings":";;;;AAqCA,IAAY,8DAAL;AACL;AACA;AACA;AACA;AACA;;;;;;;;;AChCF,SAAgB,mBAAmB,MAAc,SAAiB,MAA8B;AAC9F,QAAO;EAAE;EAAM;EAAS;EAAM;;;;;AAMhC,MAAa,SAAS;CACpB,aAAa,SACX,mBAAmB,iBAAiB,YAAY,eAAe,KAAK;CACtE,iBAAiB,SACf,mBAAmB,iBAAiB,gBAAgB,mBAAmB,KAAK;CAC9E,iBAAiB,WACf,mBACE,iBAAiB,gBACjB,mBAAmB,SAAS,KAAK,WAAW,KAC7C;CACH,gBAAgB,SACd,mBAAmB,iBAAiB,eAAe,kBAAkB,KAAK;CAC5E,gBAAgB,SACd,mBAAmB,iBAAiB,eAAe,kBAAkB,KAAK;CAC7E;;;;AAKD,SAAgB,eAAe,OAAuC;AACpE,QACE,OAAO,UAAU,YACjB,UAAU,QACV,UAAU,SACV,OAAQ,MAAuB,SAAS,YACxC,aAAa,SACb,OAAQ,MAAuB,YAAY;;;;;AAO/C,SAAgB,eAAe,OAA8B;AAC3D,KAAI,eAAe,MAAM,CACvB,QAAO;AAGT,KAAI,iBAAiB,MACnB,QAAO;EACL,MAAM,iBAAiB;EACvB,SAAS,MAAM;EACf,MAAM,MAAM;EACb;AAGH,QAAO;EACL,MAAM,iBAAiB;EACvB,SAAS;EACT,MAAM;EACP;;;;;AAMH,IAAa,kBAAb,cAAqC,MAAM;CAEzC,AAAS;CAET,YAAY,SAAiB;AAC3B,QAAM,4BAA4B,QAAQ,IAAI;AAC9C,OAAK,OAAO;AACZ,OAAK,UAAU;;;;;;AAOnB,SAAgB,eAAe,OAA0C;AACvE,QAAO,iBAAiB;;;;;AAM1B,IAAa,oBAAb,cAAuC,MAAM;CAE3C,AAAS;CACT,AAAS;CAET,YAAY,aAAqB,SAAiB;AAChD,QAAM,sBAAsB,YAAY,GAAG,QAAQ,GAAG;AACtD,OAAK,OAAO;AACZ,OAAK,cAAc;AACnB,OAAK,UAAU;;;;;;AAOnB,IAAa,qBAAb,cAAwC,MAAM;CAE5C,AAAS;CAET,YAAY,SAAiB,MAAe;AAC1C,QAAM,QAAQ;AACd,OAAK,OAAO;AACZ,OAAK,OAAO;;;;;;AAOhB,IAAa,uBAAb,cAA0C,MAAM;CAE9C,AAAS;CAET,YAAY,QAA4B;AACtC,QAAM,+BAA+B,SAAS;AAC9C,OAAK,OAAO;AACZ,OAAK,SAAS;;;;;;AAOlB,SAAgB,iBAAiB,OAA4C;AAC3E,QAAO,iBAAiB;;;;;AAM1B,SAAgB,kBAAkB,OAA6C;AAC7E,QAAO,iBAAiB;;;;;AAM1B,SAAgB,oBAAoB,OAA+C;AACjF,QAAO,iBAAiB"}
package/dist/index.d.mts CHANGED
@@ -1,4 +1,4 @@
1
- import { S as UnderlyingSource, _ as RpcValidator, a as ExposeRpcApiOptions, b as StreamMethodOptions, c as JsonRpcRequest, d as RpcClientOptions, f as RpcDebugOptions, g as RpcMethodOptions, h as RpcLogger, i as EventSubscriber, l as JsonRpcResponse, m as RpcLogEntry, n as EventBusEvents, o as JsonRpcError, p as RpcHandler, r as EventHandler, s as JsonRpcErrorCode, t as EventBus, u as RpcApi, v as StreamChunk, x as StreamRequest, y as StreamHandler } from "./types-BnGse9DF.mjs";
1
+ import { C as StreamRequest, S as StreamMethodOptions, _ as RpcLogger, a as ExposeRpcApiOptions, b as StreamChunk, c as JsonRpcError, d as JsonRpcResponse, f as RpcApi, g as RpcLogEntry, h as RpcHandler, i as EventSubscriber, l as JsonRpcErrorCode, m as RpcDebugOptions, n as EventBusEvents, o as IpcPrimitive, p as RpcClientOptions, r as EventHandler, s as IpcSerializable, t as EventBus, u as JsonRpcRequest, v as RpcMethodOptions, w as UnderlyingSource, x as StreamHandler, y as RpcValidator } from "./types-BdcKpjjp.mjs";
2
2
  import { STREAM_CHANNEL, asyncGeneratorToStream, createStreamChunk, generateStreamId, isReadableStream, iterableToStream, readStream } from "./stream.mjs";
3
3
 
4
4
  //#region src/error.d.ts
@@ -74,5 +74,5 @@ declare function isConnectionError(error: unknown): error is RpcConnectionError;
74
74
  */
75
75
  declare function isQueueEvictedError(error: unknown): error is RpcQueueEvictedError;
76
76
  //#endregion
77
- export { EventBus, EventBusEvents, EventHandler, EventSubscriber, ExposeRpcApiOptions, JsonRpcError, JsonRpcErrorCode, JsonRpcRequest, JsonRpcResponse, RpcApi, RpcClientOptions, RpcConnectionError, RpcDebugOptions, RpcHandler, RpcLogEntry, RpcLogger, RpcMethodOptions, RpcQueueEvictedError, RpcQueueFullError, RpcTimeoutError, RpcValidator, STREAM_CHANNEL, StreamChunk, StreamHandler, StreamMethodOptions, StreamRequest, UnderlyingSource, asyncGeneratorToStream, createJsonRpcError, createStreamChunk, errorToJsonRpc, errors, generateStreamId, isConnectionError, isJsonRpcError, isQueueEvictedError, isQueueFullError, isReadableStream, isTimeoutError, iterableToStream, readStream };
77
+ export { EventBus, EventBusEvents, EventHandler, EventSubscriber, ExposeRpcApiOptions, IpcPrimitive, IpcSerializable, JsonRpcError, JsonRpcErrorCode, JsonRpcRequest, JsonRpcResponse, RpcApi, RpcClientOptions, RpcConnectionError, RpcDebugOptions, RpcHandler, RpcLogEntry, RpcLogger, RpcMethodOptions, RpcQueueEvictedError, RpcQueueFullError, RpcTimeoutError, RpcValidator, STREAM_CHANNEL, StreamChunk, StreamHandler, StreamMethodOptions, StreamRequest, UnderlyingSource, asyncGeneratorToStream, createJsonRpcError, createStreamChunk, errorToJsonRpc, errors, generateStreamId, isConnectionError, isJsonRpcError, isQueueEvictedError, isQueueFullError, isReadableStream, isTimeoutError, iterableToStream, readStream };
78
78
  //# sourceMappingURL=index.d.mts.map
package/dist/main.d.mts CHANGED
@@ -1,4 +1,4 @@
1
- import { g as RpcMethodOptions, p as RpcHandler, y as StreamHandler } from "./types-BnGse9DF.mjs";
1
+ import { h as RpcHandler, v as RpcMethodOptions, x as StreamHandler } from "./types-BdcKpjjp.mjs";
2
2
 
3
3
  //#region src/main.d.ts
4
4
  /**
@@ -1,4 +1,4 @@
1
- import { a as ExposeRpcApiOptions } from "./types-BnGse9DF.mjs";
1
+ import { a as ExposeRpcApiOptions } from "./types-BdcKpjjp.mjs";
2
2
 
3
3
  //#region src/preload.d.ts
4
4
  /**
@@ -1,4 +1,4 @@
1
- import { d as RpcClientOptions, f as RpcDebugOptions } from "../types-BnGse9DF.mjs";
1
+ import { m as RpcDebugOptions, p as RpcClientOptions } from "../types-BdcKpjjp.mjs";
2
2
 
3
3
  //#region src/renderer/builder.d.ts
4
4
  /**
@@ -1,4 +1,4 @@
1
- import { d as RpcClientOptions, f as RpcDebugOptions, u as RpcApi } from "../types-BnGse9DF.mjs";
1
+ import { f as RpcApi, m as RpcDebugOptions, p as RpcClientOptions } from "../types-BdcKpjjp.mjs";
2
2
 
3
3
  //#region src/renderer/client.d.ts
4
4
  /**
@@ -1,4 +1,4 @@
1
- import { f as RpcDebugOptions, r as EventHandler, t as EventBus } from "../types-BnGse9DF.mjs";
1
+ import { m as RpcDebugOptions, r as EventHandler, t as EventBus } from "../types-BdcKpjjp.mjs";
2
2
 
3
3
  //#region src/renderer/event.d.ts
4
4
  /**
@@ -1,4 +1,4 @@
1
- import { d as RpcClientOptions, h as RpcLogger, m as RpcLogEntry, r as EventHandler, t as EventBus, u as RpcApi } from "../types-BnGse9DF.mjs";
1
+ import { _ as RpcLogger, f as RpcApi, g as RpcLogEntry, p as RpcClientOptions, r as EventHandler, t as EventBus } from "../types-BdcKpjjp.mjs";
2
2
  import { isRpcDebug, setRpcDebug, setRpcLogger } from "../debug.mjs";
3
3
  import { RpcBuilder, RpcBuilderMethods, RpcBuilderWithMethod, createRpc } from "./builder.mjs";
4
4
  import { createRpcClient, createTypedRpcClient, defineRpcApi, useRpcProxy } from "./client.mjs";
@@ -196,6 +196,28 @@ interface RpcDebugOptions {
196
196
  /** Custom logger function */
197
197
  logger?: RpcLogger;
198
198
  }
199
+ /**
200
+ * All types that can be serialized by Electron IPC using the Structured Clone Algorithm.
201
+ *
202
+ * Electron IPC internally uses structured clone, not JSON, which supports many more types.
203
+ *
204
+ * @see https://developer.mozilla.org/en-US/docs/Web/API/Web_Workers_API/Structured_clone_algorithm
205
+ * @see https://www.electronjs.org/docs/latest/tutorial/ipc#ipc-messages
206
+ *
207
+ * @example
208
+ * ```typescript
209
+ * import type { IpcSerializable } from 'electron-json-rpc/types';
210
+ *
211
+ * const data: IpcSerializable = new Date(); // OK
212
+ * ```
213
+ */
214
+ type IpcSerializable = string | number | boolean | bigint | undefined | null | Date | RegExp | {
215
+ [key: string]: IpcSerializable;
216
+ } | IpcSerializable[] | ArrayBuffer | Int8Array | Uint8Array | Uint8ClampedArray | Int16Array | Uint16Array | Int32Array | Uint32Array | Float32Array | Float64Array | BigInt64Array | BigUint64Array | Map<IpcSerializable, IpcSerializable> | Set<IpcSerializable> | Error | EvalError | RangeError | ReferenceError | SyntaxError | TypeError | URIError;
217
+ /**
218
+ * Primitive types supported by Electron IPC
219
+ */
220
+ type IpcPrimitive = string | number | boolean | bigint | undefined;
199
221
  //#endregion
200
- export { UnderlyingSource as S, RpcValidator as _, ExposeRpcApiOptions as a, StreamMethodOptions as b, JsonRpcRequest as c, RpcClientOptions as d, RpcDebugOptions as f, RpcMethodOptions as g, RpcLogger as h, EventSubscriber as i, JsonRpcResponse as l, RpcLogEntry as m, EventBusEvents as n, JsonRpcError as o, RpcHandler as p, EventHandler as r, JsonRpcErrorCode as s, EventBus as t, RpcApi as u, StreamChunk as v, StreamRequest as x, StreamHandler as y };
201
- //# sourceMappingURL=types-BnGse9DF.d.mts.map
222
+ export { StreamRequest as C, StreamMethodOptions as S, RpcLogger as _, ExposeRpcApiOptions as a, StreamChunk as b, JsonRpcError as c, JsonRpcResponse as d, RpcApi as f, RpcLogEntry as g, RpcHandler as h, EventSubscriber as i, JsonRpcErrorCode as l, RpcDebugOptions as m, EventBusEvents as n, IpcPrimitive as o, RpcClientOptions as p, EventHandler as r, IpcSerializable as s, EventBus as t, JsonRpcRequest as u, RpcMethodOptions as v, UnderlyingSource as w, StreamHandler as x, RpcValidator as y };
223
+ //# sourceMappingURL=types-BdcKpjjp.d.mts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types-BnGse9DF.d.mts","names":[],"sources":["../src/types.ts"],"mappings":"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"}
1
+ {"version":3,"file":"types-BdcKpjjp.d.mts","names":[],"sources":["../src/types.ts"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "electron-json-rpc",
3
- "version": "1.0.1",
3
+ "version": "1.1.2",
4
4
  "description": "JSON-RPC implementation for Electron",
5
5
  "license": "MIT",
6
6
  "files": [