@noxfly/noxus 2.3.2 → 2.5.0

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.
@@ -1,2 +1,113 @@
1
- export { e as AtomicHttpMethod, H as HttpMethod, l as IBatchRequestItem, m as IBatchRequestPayload, n as IBatchResponsePayload, b as IPortRequester, p as IRendererEventMessage, k as IRequest, I as IResponse, N as NoxRendererClient, o as RENDERER_EVENT_TYPE, v as RendererClientOptions, s as RendererEventHandler, u as RendererEventRegistry, t as RendererEventSubscription, R as Request, q as createRendererEventMessage, r as isRendererEventMessage } from './index-DQBQQfMw.mjs';
1
+ import { I as IRendererEventMessage, a as IResponse, b as IRequest, c as IBatchRequestItem, d as IBatchResponsePayload } from './request-Dx_5Prte.mjs';
2
+ export { A as AtomicHttpMethod, H as HttpMethod, e as IBatchRequestPayload, f as RENDERER_EVENT_TYPE, R as Request, g as createRendererEventMessage, i as isRendererEventMessage } from './request-Dx_5Prte.mjs';
2
3
  import './app-injector-B3MvgV3k.mjs';
4
+
5
+ /**
6
+ * @copyright 2025 NoxFly
7
+ * @license MIT
8
+ * @author NoxFly
9
+ */
10
+ /**
11
+ * Lightweight event registry to help renderer processes subscribe to
12
+ * push messages sent by the main process through Noxus.
13
+ */
14
+
15
+ type RendererEventHandler<TPayload = unknown> = (payload: TPayload) => void;
16
+ interface RendererEventSubscription {
17
+ unsubscribe(): void;
18
+ }
19
+ declare class RendererEventRegistry {
20
+ private readonly listeners;
21
+ /**
22
+ *
23
+ */
24
+ subscribe<TPayload>(eventName: string, handler: RendererEventHandler<TPayload>): RendererEventSubscription;
25
+ /**
26
+ *
27
+ */
28
+ unsubscribe<TPayload>(eventName: string, handler: RendererEventHandler<TPayload>): void;
29
+ /**
30
+ *
31
+ */
32
+ clear(eventName?: string): void;
33
+ /**
34
+ *
35
+ */
36
+ dispatch<TPayload>(message: IRendererEventMessage<TPayload>): void;
37
+ /**
38
+ *
39
+ */
40
+ tryDispatchFromMessageEvent(event: MessageEvent): boolean;
41
+ /**
42
+ *
43
+ */
44
+ hasHandlers(eventName: string): boolean;
45
+ }
46
+
47
+
48
+ interface IPortRequester {
49
+ requestPort(): void;
50
+ }
51
+ interface RendererClientOptions {
52
+ bridge?: IPortRequester | null;
53
+ bridgeName?: string | string[];
54
+ initMessageType?: string;
55
+ windowRef?: Window;
56
+ generateRequestId?: () => string;
57
+ }
58
+ interface PendingRequest<T = unknown> {
59
+ resolve: (value: T) => void;
60
+ reject: (reason: IResponse<T>) => void;
61
+ request: IRequest;
62
+ submittedAt: number;
63
+ }
64
+ declare class NoxRendererClient {
65
+ readonly events: RendererEventRegistry;
66
+ protected readonly pendingRequests: Map<string, PendingRequest<unknown>>;
67
+ protected requestPort: MessagePort | undefined;
68
+ protected socketPort: MessagePort | undefined;
69
+ protected senderId: number | undefined;
70
+ private readonly bridge;
71
+ private readonly initMessageType;
72
+ private readonly windowRef;
73
+ private readonly generateRequestId;
74
+ private isReady;
75
+ private setupPromise;
76
+ private setupResolve;
77
+ private setupReject;
78
+ constructor(options?: RendererClientOptions);
79
+ setup(): Promise<void>;
80
+ dispose(): void;
81
+ request<TResponse, TBody = unknown>(request: Omit<IRequest<TBody>, 'requestId' | 'senderId'>): Promise<TResponse>;
82
+ batch(requests: Omit<IBatchRequestItem<unknown>, 'requestId'>[]): Promise<IBatchResponsePayload>;
83
+ getSenderId(): number | undefined;
84
+ private readonly onWindowMessage;
85
+ private readonly onSocketMessage;
86
+ private readonly onRequestMessage;
87
+ protected onRequestCompleted(pending: PendingRequest, response: IResponse): void;
88
+ private attachRequestPort;
89
+ private attachSocketPort;
90
+ private validateReady;
91
+ private createErrorResponse;
92
+ private resetSetupState;
93
+ isElectronEnvironment(): boolean;
94
+ }
95
+
96
+
97
+ interface NoxusPreloadAPI extends IPortRequester {
98
+ }
99
+ interface NoxusPreloadOptions {
100
+ exposeAs?: string;
101
+ initMessageType?: string;
102
+ requestChannel?: string;
103
+ responseChannel?: string;
104
+ targetWindow?: Window;
105
+ }
106
+ /**
107
+ * Exposes a minimal bridge in the isolated preload context so renderer processes
108
+ * can request the two MessagePorts required by Noxus. The bridge forwards both
109
+ * request/response and socket ports to the renderer via window.postMessage.
110
+ */
111
+ declare function exposeNoxusBridge(options?: NoxusPreloadOptions): NoxusPreloadAPI;
112
+
113
+ export { IBatchRequestItem, IBatchResponsePayload, type IPortRequester, IRendererEventMessage, IRequest, IResponse, NoxRendererClient, type NoxusPreloadAPI, type NoxusPreloadOptions, type RendererClientOptions, type RendererEventHandler, RendererEventRegistry, type RendererEventSubscription, exposeNoxusBridge };
@@ -1,2 +1,113 @@
1
- export { e as AtomicHttpMethod, H as HttpMethod, l as IBatchRequestItem, m as IBatchRequestPayload, n as IBatchResponsePayload, b as IPortRequester, p as IRendererEventMessage, k as IRequest, I as IResponse, N as NoxRendererClient, o as RENDERER_EVENT_TYPE, v as RendererClientOptions, s as RendererEventHandler, u as RendererEventRegistry, t as RendererEventSubscription, R as Request, q as createRendererEventMessage, r as isRendererEventMessage } from './index-BxWQVi6C.js';
1
+ import { I as IRendererEventMessage, a as IResponse, b as IRequest, c as IBatchRequestItem, d as IBatchResponsePayload } from './request-CdpZ9qZL.js';
2
+ export { A as AtomicHttpMethod, H as HttpMethod, e as IBatchRequestPayload, f as RENDERER_EVENT_TYPE, R as Request, g as createRendererEventMessage, i as isRendererEventMessage } from './request-CdpZ9qZL.js';
2
3
  import './app-injector-B3MvgV3k.js';
4
+
5
+ /**
6
+ * @copyright 2025 NoxFly
7
+ * @license MIT
8
+ * @author NoxFly
9
+ */
10
+ /**
11
+ * Lightweight event registry to help renderer processes subscribe to
12
+ * push messages sent by the main process through Noxus.
13
+ */
14
+
15
+ type RendererEventHandler<TPayload = unknown> = (payload: TPayload) => void;
16
+ interface RendererEventSubscription {
17
+ unsubscribe(): void;
18
+ }
19
+ declare class RendererEventRegistry {
20
+ private readonly listeners;
21
+ /**
22
+ *
23
+ */
24
+ subscribe<TPayload>(eventName: string, handler: RendererEventHandler<TPayload>): RendererEventSubscription;
25
+ /**
26
+ *
27
+ */
28
+ unsubscribe<TPayload>(eventName: string, handler: RendererEventHandler<TPayload>): void;
29
+ /**
30
+ *
31
+ */
32
+ clear(eventName?: string): void;
33
+ /**
34
+ *
35
+ */
36
+ dispatch<TPayload>(message: IRendererEventMessage<TPayload>): void;
37
+ /**
38
+ *
39
+ */
40
+ tryDispatchFromMessageEvent(event: MessageEvent): boolean;
41
+ /**
42
+ *
43
+ */
44
+ hasHandlers(eventName: string): boolean;
45
+ }
46
+
47
+
48
+ interface IPortRequester {
49
+ requestPort(): void;
50
+ }
51
+ interface RendererClientOptions {
52
+ bridge?: IPortRequester | null;
53
+ bridgeName?: string | string[];
54
+ initMessageType?: string;
55
+ windowRef?: Window;
56
+ generateRequestId?: () => string;
57
+ }
58
+ interface PendingRequest<T = unknown> {
59
+ resolve: (value: T) => void;
60
+ reject: (reason: IResponse<T>) => void;
61
+ request: IRequest;
62
+ submittedAt: number;
63
+ }
64
+ declare class NoxRendererClient {
65
+ readonly events: RendererEventRegistry;
66
+ protected readonly pendingRequests: Map<string, PendingRequest<unknown>>;
67
+ protected requestPort: MessagePort | undefined;
68
+ protected socketPort: MessagePort | undefined;
69
+ protected senderId: number | undefined;
70
+ private readonly bridge;
71
+ private readonly initMessageType;
72
+ private readonly windowRef;
73
+ private readonly generateRequestId;
74
+ private isReady;
75
+ private setupPromise;
76
+ private setupResolve;
77
+ private setupReject;
78
+ constructor(options?: RendererClientOptions);
79
+ setup(): Promise<void>;
80
+ dispose(): void;
81
+ request<TResponse, TBody = unknown>(request: Omit<IRequest<TBody>, 'requestId' | 'senderId'>): Promise<TResponse>;
82
+ batch(requests: Omit<IBatchRequestItem<unknown>, 'requestId'>[]): Promise<IBatchResponsePayload>;
83
+ getSenderId(): number | undefined;
84
+ private readonly onWindowMessage;
85
+ private readonly onSocketMessage;
86
+ private readonly onRequestMessage;
87
+ protected onRequestCompleted(pending: PendingRequest, response: IResponse): void;
88
+ private attachRequestPort;
89
+ private attachSocketPort;
90
+ private validateReady;
91
+ private createErrorResponse;
92
+ private resetSetupState;
93
+ isElectronEnvironment(): boolean;
94
+ }
95
+
96
+
97
+ interface NoxusPreloadAPI extends IPortRequester {
98
+ }
99
+ interface NoxusPreloadOptions {
100
+ exposeAs?: string;
101
+ initMessageType?: string;
102
+ requestChannel?: string;
103
+ responseChannel?: string;
104
+ targetWindow?: Window;
105
+ }
106
+ /**
107
+ * Exposes a minimal bridge in the isolated preload context so renderer processes
108
+ * can request the two MessagePorts required by Noxus. The bridge forwards both
109
+ * request/response and socket ports to the renderer via window.postMessage.
110
+ */
111
+ declare function exposeNoxusBridge(options?: NoxusPreloadOptions): NoxusPreloadAPI;
112
+
113
+ export { IBatchRequestItem, IBatchResponsePayload, type IPortRequester, IRendererEventMessage, IRequest, IResponse, NoxRendererClient, type NoxusPreloadAPI, type NoxusPreloadOptions, type RendererClientOptions, type RendererEventHandler, RendererEventRegistry, type RendererEventSubscription, exposeNoxusBridge };
package/dist/renderer.js CHANGED
@@ -33,6 +33,7 @@ __export(src_exports, {
33
33
  RendererEventRegistry: () => RendererEventRegistry,
34
34
  Request: () => Request,
35
35
  createRendererEventMessage: () => createRendererEventMessage,
36
+ exposeNoxusBridge: () => exposeNoxusBridge,
36
37
  isRendererEventMessage: () => isRendererEventMessage
37
38
  });
38
39
  module.exports = __toCommonJS(src_exports);
@@ -217,6 +218,42 @@ function isRendererEventMessage(value) {
217
218
  }
218
219
  __name(isRendererEventMessage, "isRendererEventMessage");
219
220
 
221
+ // src/preload-bridge.ts
222
+ var import_renderer = require("electron/renderer");
223
+ var DEFAULT_EXPOSE_NAME = "noxus";
224
+ var DEFAULT_INIT_EVENT = "init-port";
225
+ var DEFAULT_REQUEST_CHANNEL = "gimme-my-port";
226
+ var DEFAULT_RESPONSE_CHANNEL = "port";
227
+ function exposeNoxusBridge(options = {}) {
228
+ const { exposeAs = DEFAULT_EXPOSE_NAME, initMessageType = DEFAULT_INIT_EVENT, requestChannel = DEFAULT_REQUEST_CHANNEL, responseChannel = DEFAULT_RESPONSE_CHANNEL, targetWindow = window } = options;
229
+ const api = {
230
+ requestPort: /* @__PURE__ */ __name(() => {
231
+ import_renderer.ipcRenderer.send(requestChannel);
232
+ import_renderer.ipcRenderer.once(responseChannel, (event, message) => {
233
+ const ports = (event.ports ?? []).filter((port) => port !== void 0);
234
+ if (ports.length === 0) {
235
+ console.error("[Noxus] No MessagePort received from main process.");
236
+ return;
237
+ }
238
+ for (const port of ports) {
239
+ try {
240
+ port.start();
241
+ } catch (error) {
242
+ console.error("[Noxus] Failed to start MessagePort.", error);
243
+ }
244
+ }
245
+ targetWindow.postMessage({
246
+ type: initMessageType,
247
+ senderId: message?.senderId
248
+ }, "*", ports);
249
+ });
250
+ }, "requestPort")
251
+ };
252
+ import_renderer.contextBridge.exposeInMainWorld(exposeAs, api);
253
+ return api;
254
+ }
255
+ __name(exposeNoxusBridge, "exposeNoxusBridge");
256
+
220
257
  // src/renderer-events.ts
221
258
  var _RendererEventRegistry = class _RendererEventRegistry {
222
259
  constructor() {
@@ -298,7 +335,7 @@ __name(_RendererEventRegistry, "RendererEventRegistry");
298
335
  var RendererEventRegistry = _RendererEventRegistry;
299
336
 
300
337
  // src/renderer-client.ts
301
- var DEFAULT_INIT_EVENT = "init-port";
338
+ var DEFAULT_INIT_EVENT2 = "init-port";
302
339
  var DEFAULT_BRIDGE_NAMES = [
303
340
  "noxus",
304
341
  "ipcRenderer"
@@ -420,7 +457,7 @@ var _NoxRendererClient = class _NoxRendererClient {
420
457
  this.windowRef = options.windowRef ?? window;
421
458
  const resolvedBridge = options.bridge ?? resolveBridgeFromWindow(this.windowRef, options.bridgeName);
422
459
  this.bridge = resolvedBridge ?? null;
423
- this.initMessageType = options.initMessageType ?? DEFAULT_INIT_EVENT;
460
+ this.initMessageType = options.initMessageType ?? DEFAULT_INIT_EVENT2;
424
461
  this.generateRequestId = options.generateRequestId ?? defaultRequestId;
425
462
  }
426
463
  async setup() {
@@ -549,6 +586,7 @@ var NoxRendererClient = _NoxRendererClient;
549
586
  RendererEventRegistry,
550
587
  Request,
551
588
  createRendererEventMessage,
589
+ exposeNoxusBridge,
552
590
  isRendererEventMessage
553
591
  });
554
592
  /**
package/dist/renderer.mjs CHANGED
@@ -188,6 +188,42 @@ function isRendererEventMessage(value) {
188
188
  }
189
189
  __name(isRendererEventMessage, "isRendererEventMessage");
190
190
 
191
+ // src/preload-bridge.ts
192
+ import { contextBridge, ipcRenderer } from "electron/renderer";
193
+ var DEFAULT_EXPOSE_NAME = "noxus";
194
+ var DEFAULT_INIT_EVENT = "init-port";
195
+ var DEFAULT_REQUEST_CHANNEL = "gimme-my-port";
196
+ var DEFAULT_RESPONSE_CHANNEL = "port";
197
+ function exposeNoxusBridge(options = {}) {
198
+ const { exposeAs = DEFAULT_EXPOSE_NAME, initMessageType = DEFAULT_INIT_EVENT, requestChannel = DEFAULT_REQUEST_CHANNEL, responseChannel = DEFAULT_RESPONSE_CHANNEL, targetWindow = window } = options;
199
+ const api = {
200
+ requestPort: /* @__PURE__ */ __name(() => {
201
+ ipcRenderer.send(requestChannel);
202
+ ipcRenderer.once(responseChannel, (event, message) => {
203
+ const ports = (event.ports ?? []).filter((port) => port !== void 0);
204
+ if (ports.length === 0) {
205
+ console.error("[Noxus] No MessagePort received from main process.");
206
+ return;
207
+ }
208
+ for (const port of ports) {
209
+ try {
210
+ port.start();
211
+ } catch (error) {
212
+ console.error("[Noxus] Failed to start MessagePort.", error);
213
+ }
214
+ }
215
+ targetWindow.postMessage({
216
+ type: initMessageType,
217
+ senderId: message?.senderId
218
+ }, "*", ports);
219
+ });
220
+ }, "requestPort")
221
+ };
222
+ contextBridge.exposeInMainWorld(exposeAs, api);
223
+ return api;
224
+ }
225
+ __name(exposeNoxusBridge, "exposeNoxusBridge");
226
+
191
227
  // src/renderer-events.ts
192
228
  var _RendererEventRegistry = class _RendererEventRegistry {
193
229
  constructor() {
@@ -269,7 +305,7 @@ __name(_RendererEventRegistry, "RendererEventRegistry");
269
305
  var RendererEventRegistry = _RendererEventRegistry;
270
306
 
271
307
  // src/renderer-client.ts
272
- var DEFAULT_INIT_EVENT = "init-port";
308
+ var DEFAULT_INIT_EVENT2 = "init-port";
273
309
  var DEFAULT_BRIDGE_NAMES = [
274
310
  "noxus",
275
311
  "ipcRenderer"
@@ -391,7 +427,7 @@ var _NoxRendererClient = class _NoxRendererClient {
391
427
  this.windowRef = options.windowRef ?? window;
392
428
  const resolvedBridge = options.bridge ?? resolveBridgeFromWindow(this.windowRef, options.bridgeName);
393
429
  this.bridge = resolvedBridge ?? null;
394
- this.initMessageType = options.initMessageType ?? DEFAULT_INIT_EVENT;
430
+ this.initMessageType = options.initMessageType ?? DEFAULT_INIT_EVENT2;
395
431
  this.generateRequestId = options.generateRequestId ?? defaultRequestId;
396
432
  }
397
433
  async setup() {
@@ -519,6 +555,7 @@ export {
519
555
  RendererEventRegistry,
520
556
  Request,
521
557
  createRendererEventMessage,
558
+ exposeNoxusBridge,
522
559
  isRendererEventMessage
523
560
  };
524
561
  /**
@@ -164,90 +164,4 @@ interface IRendererEventMessage<TPayload = unknown> {
164
164
  declare function createRendererEventMessage<TPayload = unknown>(event: string, payload?: TPayload): IRendererEventMessage<TPayload>;
165
165
  declare function isRendererEventMessage(value: unknown): value is IRendererEventMessage;
166
166
 
167
- /**
168
- * Lightweight event registry to help renderer processes subscribe to
169
- * push messages sent by the main process through Noxus.
170
- */
171
-
172
- type RendererEventHandler<TPayload = unknown> = (payload: TPayload) => void;
173
- interface RendererEventSubscription {
174
- unsubscribe(): void;
175
- }
176
- declare class RendererEventRegistry {
177
- private readonly listeners;
178
- /**
179
- *
180
- */
181
- subscribe<TPayload>(eventName: string, handler: RendererEventHandler<TPayload>): RendererEventSubscription;
182
- /**
183
- *
184
- */
185
- unsubscribe<TPayload>(eventName: string, handler: RendererEventHandler<TPayload>): void;
186
- /**
187
- *
188
- */
189
- clear(eventName?: string): void;
190
- /**
191
- *
192
- */
193
- dispatch<TPayload>(message: IRendererEventMessage<TPayload>): void;
194
- /**
195
- *
196
- */
197
- tryDispatchFromMessageEvent(event: MessageEvent): boolean;
198
- /**
199
- *
200
- */
201
- hasHandlers(eventName: string): boolean;
202
- }
203
-
204
-
205
- interface IPortRequester {
206
- requestPort(): void;
207
- }
208
- interface RendererClientOptions {
209
- bridge?: IPortRequester | null;
210
- bridgeName?: string | string[];
211
- initMessageType?: string;
212
- windowRef?: Window;
213
- generateRequestId?: () => string;
214
- }
215
- interface PendingRequest<T = unknown> {
216
- resolve: (value: T) => void;
217
- reject: (reason: IResponse<T>) => void;
218
- request: IRequest;
219
- submittedAt: number;
220
- }
221
- declare class NoxRendererClient {
222
- readonly events: RendererEventRegistry;
223
- protected readonly pendingRequests: Map<string, PendingRequest<unknown>>;
224
- protected requestPort: MessagePort | undefined;
225
- protected socketPort: MessagePort | undefined;
226
- protected senderId: number | undefined;
227
- private readonly bridge;
228
- private readonly initMessageType;
229
- private readonly windowRef;
230
- private readonly generateRequestId;
231
- private isReady;
232
- private setupPromise;
233
- private setupResolve;
234
- private setupReject;
235
- constructor(options?: RendererClientOptions);
236
- setup(): Promise<void>;
237
- dispose(): void;
238
- request<TResponse, TBody = unknown>(request: Omit<IRequest<TBody>, 'requestId' | 'senderId'>): Promise<TResponse>;
239
- batch(requests: Omit<IBatchRequestItem<unknown>, 'requestId'>[]): Promise<IBatchResponsePayload>;
240
- getSenderId(): number | undefined;
241
- private readonly onWindowMessage;
242
- private readonly onSocketMessage;
243
- private readonly onRequestMessage;
244
- protected onRequestCompleted(pending: PendingRequest, response: IResponse): void;
245
- private attachRequestPort;
246
- private attachSocketPort;
247
- private validateReady;
248
- private createErrorResponse;
249
- private resetSetupState;
250
- isElectronEnvironment(): boolean;
251
- }
252
-
253
- export { Authorize as A, Delete as D, Get as G, type HttpMethod as H, type IResponse as I, NoxRendererClient as N, Post as P, Request as R, type IGuard as a, type IPortRequester as b, getGuardForControllerAction as c, type IRouteMetadata as d, type AtomicHttpMethod as e, getRouteMetadata as f, getGuardForController as g, Put as h, Patch as i, ROUTE_METADATA_KEY as j, type IRequest as k, type IBatchRequestItem as l, type IBatchRequestPayload as m, type IBatchResponsePayload as n, RENDERER_EVENT_TYPE as o, type IRendererEventMessage as p, createRendererEventMessage as q, isRendererEventMessage as r, type RendererEventHandler as s, type RendererEventSubscription as t, RendererEventRegistry as u, type RendererClientOptions as v };
167
+ export { type AtomicHttpMethod as A, Delete as D, Get as G, type HttpMethod as H, type IRendererEventMessage as I, Post as P, Request as R, type IResponse as a, type IRequest as b, type IBatchRequestItem as c, type IBatchResponsePayload as d, type IBatchRequestPayload as e, RENDERER_EVENT_TYPE as f, createRendererEventMessage as g, type IGuard as h, isRendererEventMessage as i, Authorize as j, getGuardForController as k, getGuardForControllerAction as l, type IRouteMetadata as m, getRouteMetadata as n, Put as o, Patch as p, ROUTE_METADATA_KEY as q };
@@ -164,90 +164,4 @@ interface IRendererEventMessage<TPayload = unknown> {
164
164
  declare function createRendererEventMessage<TPayload = unknown>(event: string, payload?: TPayload): IRendererEventMessage<TPayload>;
165
165
  declare function isRendererEventMessage(value: unknown): value is IRendererEventMessage;
166
166
 
167
- /**
168
- * Lightweight event registry to help renderer processes subscribe to
169
- * push messages sent by the main process through Noxus.
170
- */
171
-
172
- type RendererEventHandler<TPayload = unknown> = (payload: TPayload) => void;
173
- interface RendererEventSubscription {
174
- unsubscribe(): void;
175
- }
176
- declare class RendererEventRegistry {
177
- private readonly listeners;
178
- /**
179
- *
180
- */
181
- subscribe<TPayload>(eventName: string, handler: RendererEventHandler<TPayload>): RendererEventSubscription;
182
- /**
183
- *
184
- */
185
- unsubscribe<TPayload>(eventName: string, handler: RendererEventHandler<TPayload>): void;
186
- /**
187
- *
188
- */
189
- clear(eventName?: string): void;
190
- /**
191
- *
192
- */
193
- dispatch<TPayload>(message: IRendererEventMessage<TPayload>): void;
194
- /**
195
- *
196
- */
197
- tryDispatchFromMessageEvent(event: MessageEvent): boolean;
198
- /**
199
- *
200
- */
201
- hasHandlers(eventName: string): boolean;
202
- }
203
-
204
-
205
- interface IPortRequester {
206
- requestPort(): void;
207
- }
208
- interface RendererClientOptions {
209
- bridge?: IPortRequester | null;
210
- bridgeName?: string | string[];
211
- initMessageType?: string;
212
- windowRef?: Window;
213
- generateRequestId?: () => string;
214
- }
215
- interface PendingRequest<T = unknown> {
216
- resolve: (value: T) => void;
217
- reject: (reason: IResponse<T>) => void;
218
- request: IRequest;
219
- submittedAt: number;
220
- }
221
- declare class NoxRendererClient {
222
- readonly events: RendererEventRegistry;
223
- protected readonly pendingRequests: Map<string, PendingRequest<unknown>>;
224
- protected requestPort: MessagePort | undefined;
225
- protected socketPort: MessagePort | undefined;
226
- protected senderId: number | undefined;
227
- private readonly bridge;
228
- private readonly initMessageType;
229
- private readonly windowRef;
230
- private readonly generateRequestId;
231
- private isReady;
232
- private setupPromise;
233
- private setupResolve;
234
- private setupReject;
235
- constructor(options?: RendererClientOptions);
236
- setup(): Promise<void>;
237
- dispose(): void;
238
- request<TResponse, TBody = unknown>(request: Omit<IRequest<TBody>, 'requestId' | 'senderId'>): Promise<TResponse>;
239
- batch(requests: Omit<IBatchRequestItem<unknown>, 'requestId'>[]): Promise<IBatchResponsePayload>;
240
- getSenderId(): number | undefined;
241
- private readonly onWindowMessage;
242
- private readonly onSocketMessage;
243
- private readonly onRequestMessage;
244
- protected onRequestCompleted(pending: PendingRequest, response: IResponse): void;
245
- private attachRequestPort;
246
- private attachSocketPort;
247
- private validateReady;
248
- private createErrorResponse;
249
- private resetSetupState;
250
- isElectronEnvironment(): boolean;
251
- }
252
-
253
- export { Authorize as A, Delete as D, Get as G, type HttpMethod as H, type IResponse as I, NoxRendererClient as N, Post as P, Request as R, type IGuard as a, type IPortRequester as b, getGuardForControllerAction as c, type IRouteMetadata as d, type AtomicHttpMethod as e, getRouteMetadata as f, getGuardForController as g, Put as h, Patch as i, ROUTE_METADATA_KEY as j, type IRequest as k, type IBatchRequestItem as l, type IBatchRequestPayload as m, type IBatchResponsePayload as n, RENDERER_EVENT_TYPE as o, type IRendererEventMessage as p, createRendererEventMessage as q, isRendererEventMessage as r, type RendererEventHandler as s, type RendererEventSubscription as t, RendererEventRegistry as u, type RendererClientOptions as v };
167
+ export { type AtomicHttpMethod as A, Delete as D, Get as G, type HttpMethod as H, type IRendererEventMessage as I, Post as P, Request as R, type IResponse as a, type IRequest as b, type IBatchRequestItem as c, type IBatchResponsePayload as d, type IBatchRequestPayload as e, RENDERER_EVENT_TYPE as f, createRendererEventMessage as g, type IGuard as h, isRendererEventMessage as i, Authorize as j, getGuardForController as k, getGuardForControllerAction as l, type IRouteMetadata as m, getRouteMetadata as n, Put as o, Patch as p, ROUTE_METADATA_KEY as q };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@noxfly/noxus",
3
- "version": "2.3.2",
3
+ "version": "2.5.0",
4
4
  "main": "dist/main.js",
5
5
  "module": "dist/main.mjs",
6
6
  "types": "dist/main.d.ts",