@dooboostore/simple-boot-http-server 1.0.23 → 1.0.24

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 (167) hide show
  1. package/README.MD +27 -1
  2. package/dist/cjs/SimpleBootHttpServer.js +79 -39
  3. package/dist/cjs/SimpleBootHttpServer.js.map +3 -3
  4. package/dist/cjs/codes/HttpHeaders.js +14 -3
  5. package/dist/cjs/codes/HttpHeaders.js.map +2 -2
  6. package/dist/cjs/codes/Mimes.js +2 -0
  7. package/dist/cjs/codes/Mimes.js.map +2 -2
  8. package/dist/cjs/decorators/MethodMapping.js +7 -6
  9. package/dist/cjs/decorators/MethodMapping.js.map +3 -3
  10. package/dist/cjs/endpoints/WebSocketEndPoint.js +16 -0
  11. package/dist/cjs/endpoints/WebSocketEndPoint.js.map +7 -0
  12. package/dist/cjs/filters/CacheFilter.js +75 -35
  13. package/dist/cjs/filters/CacheFilter.js.map +3 -3
  14. package/dist/cjs/filters/IntentSchemeFilter.js +98 -0
  15. package/dist/cjs/filters/IntentSchemeFilter.js.map +7 -0
  16. package/dist/cjs/filters/ResourceFilter.js +4 -1
  17. package/dist/cjs/filters/ResourceFilter.js.map +2 -2
  18. package/dist/cjs/filters/TopicProtocolFilter.js +343 -0
  19. package/dist/cjs/filters/TopicProtocolFilter.js.map +7 -0
  20. package/dist/cjs/filters/index.js +2 -0
  21. package/dist/cjs/filters/index.js.map +2 -2
  22. package/dist/cjs/index.js +28 -0
  23. package/dist/cjs/index.js.map +2 -2
  24. package/dist/cjs/models/RequestResponse.js +51 -89
  25. package/dist/cjs/models/RequestResponse.js.map +3 -3
  26. package/dist/cjs/models/datas/body/ReqPathData.js +29 -0
  27. package/dist/cjs/models/datas/body/ReqPathData.js.map +7 -0
  28. package/dist/cjs/option/HttpServerOption.js +25 -5
  29. package/dist/cjs/option/HttpServerOption.js.map +2 -2
  30. package/dist/cjs/proxy/SymbolIntentApiServiceProxy.js +141 -0
  31. package/dist/cjs/proxy/SymbolIntentApiServiceProxy.js.map +7 -0
  32. package/dist/cjs/proxy/SymbolIntentApiServiceProxyBase.js +35 -0
  33. package/dist/cjs/proxy/SymbolIntentApiServiceProxyBase.js.map +7 -0
  34. package/dist/cjs/proxy/TopicProtocolApiServiceProxy.js +324 -0
  35. package/dist/cjs/proxy/TopicProtocolApiServiceProxy.js.map +7 -0
  36. package/dist/cjs/proxy/index.js +26 -0
  37. package/dist/cjs/proxy/index.js.map +7 -0
  38. package/dist/cjs/resolvers/ResourceResolver.js +2 -2
  39. package/dist/cjs/resolvers/ResourceResolver.js.map +2 -2
  40. package/dist/cjs/session/SessionManager.js +2 -2
  41. package/dist/cjs/session/SessionManager.js.map +2 -2
  42. package/dist/cjs/websocket/WebSocketClient.js +554 -0
  43. package/dist/cjs/websocket/WebSocketClient.js.map +7 -0
  44. package/dist/cjs/websocket/WebSocketManager.js +652 -0
  45. package/dist/cjs/websocket/WebSocketManager.js.map +7 -0
  46. package/dist/cjs/websocket/index.js +24 -0
  47. package/dist/cjs/websocket/index.js.map +7 -0
  48. package/dist/esm/SimpleBootHttpServer.js +59 -19
  49. package/dist/esm/SimpleBootHttpServer.js.map +2 -2
  50. package/dist/esm/codes/HttpHeaders.js +12 -2
  51. package/dist/esm/codes/HttpHeaders.js.map +2 -2
  52. package/dist/esm/codes/Mimes.js +2 -0
  53. package/dist/esm/codes/Mimes.js.map +2 -2
  54. package/dist/esm/decorators/MethodMapping.js +2 -1
  55. package/dist/esm/decorators/MethodMapping.js.map +2 -2
  56. package/dist/esm/endpoints/WebSocketEndPoint.js +1 -0
  57. package/dist/esm/endpoints/WebSocketEndPoint.js.map +7 -0
  58. package/dist/esm/filters/CacheFilter.js +67 -27
  59. package/dist/esm/filters/CacheFilter.js.map +2 -2
  60. package/dist/esm/filters/IntentSchemeFilter.js +75 -0
  61. package/dist/esm/filters/IntentSchemeFilter.js.map +7 -0
  62. package/dist/esm/filters/ResourceFilter.js +4 -1
  63. package/dist/esm/filters/ResourceFilter.js.map +2 -2
  64. package/dist/esm/filters/TopicProtocolFilter.js +310 -0
  65. package/dist/esm/filters/TopicProtocolFilter.js.map +7 -0
  66. package/dist/esm/filters/index.js +1 -0
  67. package/dist/esm/filters/index.js.map +2 -2
  68. package/dist/esm/index.js +12 -0
  69. package/dist/esm/index.js.map +2 -2
  70. package/dist/esm/models/RequestResponse.js +46 -84
  71. package/dist/esm/models/RequestResponse.js.map +2 -2
  72. package/dist/esm/models/datas/body/ReqPathData.js +6 -0
  73. package/dist/esm/models/datas/body/ReqPathData.js.map +7 -0
  74. package/dist/esm/option/HttpServerOption.js +24 -4
  75. package/dist/esm/option/HttpServerOption.js.map +2 -2
  76. package/dist/esm/proxy/SymbolIntentApiServiceProxy.js +118 -0
  77. package/dist/esm/proxy/SymbolIntentApiServiceProxy.js.map +7 -0
  78. package/dist/esm/proxy/SymbolIntentApiServiceProxyBase.js +12 -0
  79. package/dist/esm/proxy/SymbolIntentApiServiceProxyBase.js.map +7 -0
  80. package/dist/esm/proxy/TopicProtocolApiServiceProxy.js +301 -0
  81. package/dist/esm/proxy/TopicProtocolApiServiceProxy.js.map +7 -0
  82. package/dist/esm/proxy/index.js +4 -0
  83. package/dist/esm/proxy/index.js.map +7 -0
  84. package/dist/esm/resolvers/ResourceResolver.js +1 -1
  85. package/dist/esm/resolvers/ResourceResolver.js.map +1 -1
  86. package/dist/esm/session/SessionManager.js +1 -1
  87. package/dist/esm/session/SessionManager.js.map +1 -1
  88. package/dist/esm/websocket/WebSocketClient.js +529 -0
  89. package/dist/esm/websocket/WebSocketClient.js.map +7 -0
  90. package/dist/esm/websocket/WebSocketManager.js +622 -0
  91. package/dist/esm/websocket/WebSocketManager.js.map +7 -0
  92. package/dist/esm/websocket/index.js +3 -0
  93. package/dist/esm/websocket/index.js.map +7 -0
  94. package/dist/esm-bundle/dooboostore-simple-boot-http-server.esm.js +13190 -4886
  95. package/dist/esm-bundle/dooboostore-simple-boot-http-server.esm.js.map +4 -4
  96. package/dist/types/SimpleBootHttpServer.d.ts +5 -3
  97. package/dist/types/SimpleBootHttpServer.d.ts.map +1 -1
  98. package/dist/types/codes/HttpHeaders.d.ts +3 -0
  99. package/dist/types/codes/HttpHeaders.d.ts.map +1 -1
  100. package/dist/types/codes/Mimes.d.ts +3 -1
  101. package/dist/types/codes/Mimes.d.ts.map +1 -1
  102. package/dist/types/decorators/MethodMapping.d.ts +3 -2
  103. package/dist/types/decorators/MethodMapping.d.ts.map +1 -1
  104. package/dist/types/endpoints/WebSocketEndPoint.d.ts +17 -0
  105. package/dist/types/endpoints/WebSocketEndPoint.d.ts.map +1 -0
  106. package/dist/types/filters/CacheFilter.d.ts +6 -0
  107. package/dist/types/filters/CacheFilter.d.ts.map +1 -1
  108. package/dist/types/filters/IntentSchemeFilter.d.ts +20 -0
  109. package/dist/types/filters/IntentSchemeFilter.d.ts.map +1 -0
  110. package/dist/types/filters/ResourceFilter.d.ts.map +1 -1
  111. package/dist/types/filters/TopicProtocolFilter.d.ts +34 -0
  112. package/dist/types/filters/TopicProtocolFilter.d.ts.map +1 -0
  113. package/dist/types/filters/index.d.ts +1 -0
  114. package/dist/types/filters/index.d.ts.map +1 -1
  115. package/dist/types/index.d.ts +12 -0
  116. package/dist/types/index.d.ts.map +1 -1
  117. package/dist/types/models/RequestResponse.d.ts +9 -6
  118. package/dist/types/models/RequestResponse.d.ts.map +1 -1
  119. package/dist/types/models/datas/body/ReqPathData.d.ts +4 -0
  120. package/dist/types/models/datas/body/ReqPathData.d.ts.map +1 -0
  121. package/dist/types/option/HttpServerOption.d.ts +30 -20
  122. package/dist/types/option/HttpServerOption.d.ts.map +1 -1
  123. package/dist/types/proxy/SymbolIntentApiServiceProxy.d.ts +18 -0
  124. package/dist/types/proxy/SymbolIntentApiServiceProxy.d.ts.map +1 -0
  125. package/dist/types/proxy/SymbolIntentApiServiceProxyBase.d.ts +5 -0
  126. package/dist/types/proxy/SymbolIntentApiServiceProxyBase.d.ts.map +1 -0
  127. package/dist/types/proxy/TopicProtocolApiServiceProxy.d.ts +28 -0
  128. package/dist/types/proxy/TopicProtocolApiServiceProxy.d.ts.map +1 -0
  129. package/dist/types/proxy/index.d.ts +4 -0
  130. package/dist/types/proxy/index.d.ts.map +1 -0
  131. package/dist/types/session/SessionManager.d.ts +2 -17
  132. package/dist/types/session/SessionManager.d.ts.map +1 -1
  133. package/dist/types/websocket/WebSocketClient.d.ts +88 -0
  134. package/dist/types/websocket/WebSocketClient.d.ts.map +1 -0
  135. package/dist/types/websocket/WebSocketManager.d.ts +163 -0
  136. package/dist/types/websocket/WebSocketManager.d.ts.map +1 -0
  137. package/dist/types/websocket/index.d.ts +3 -0
  138. package/dist/types/websocket/index.d.ts.map +1 -0
  139. package/dist/umd-bundle/dooboostore-simple-boot-http-server.umd.js +13262 -4958
  140. package/dist/umd-bundle/dooboostore-simple-boot-http-server.umd.js.map +4 -4
  141. package/dist/umd-bundle/websocket-client.umd.js +11194 -0
  142. package/dist/umd-bundle/websocket-client.umd.js.map +7 -0
  143. package/package.json +24 -15
  144. package/src/SimpleBootHttpServer.ts +366 -312
  145. package/src/codes/HttpHeaders.ts +13 -2
  146. package/src/codes/Mimes.ts +27 -25
  147. package/src/decorators/MethodMapping.ts +4 -3
  148. package/src/endpoints/WebSocketEndPoint.ts +12 -0
  149. package/src/filters/CacheFilter.ts +112 -67
  150. package/src/filters/IntentSchemeFilter.ts +69 -0
  151. package/src/filters/ResourceFilter.ts +6 -1
  152. package/src/filters/TopicProtocolFilter.ts +349 -0
  153. package/src/filters/index.ts +1 -0
  154. package/src/index.ts +12 -12
  155. package/src/models/RequestResponse.ts +108 -240
  156. package/src/models/datas/body/ReqPathData.ts +3 -0
  157. package/src/option/HttpServerOption.ts +73 -23
  158. package/src/proxy/SymbolIntentApiServiceProxy.ts +120 -0
  159. package/src/proxy/SymbolIntentApiServiceProxyBase.ts +16 -0
  160. package/src/proxy/TopicProtocolApiServiceProxy.ts +328 -0
  161. package/src/proxy/index.ts +3 -0
  162. package/src/resolvers/ResourceResolver.ts +1 -1
  163. package/src/session/SessionManager.ts +3 -3
  164. package/src/websocket/WebSocketClient.ts +637 -0
  165. package/src/websocket/WebSocketManager.ts +713 -0
  166. package/src/websocket/index.ts +2 -0
  167. package/tsconfig.json +3 -1
@@ -0,0 +1,88 @@
1
+ import { TopicResponse, TopicServerEventRequest, TopicType } from './WebSocketManager';
2
+ import { Observable } from '@dooboostore/core';
3
+ export * from '@dooboostore/core';
4
+ type TopicObserverNextCallBack<T> = <R = any>(data: T, meta: {
5
+ socket: WebSocket;
6
+ }) => void;
7
+ type TopicObserverEventCallBack = {
8
+ [event: string]: <T, R = any>(data: T, meta: {
9
+ socket: WebSocket;
10
+ }) => Promise<R> | void | any;
11
+ } | (<T, R = any>(event: string, data: T, meta: {
12
+ socket: WebSocket;
13
+ }) => Promise<R> | void | any);
14
+ type TopicObserverErrorCallBack = <R = any>(err: any) => void;
15
+ export type TopicObserverCallBack<T> = {
16
+ next: TopicObserverNextCallBack<T>;
17
+ event?: TopicObserverEventCallBack;
18
+ error?: TopicObserverErrorCallBack;
19
+ complete?: () => void;
20
+ } | TopicObserverNextCallBack<T>;
21
+ export interface WebSocketClientConfig {
22
+ retryConnectionCount?: number;
23
+ retryConnectionDelay?: number;
24
+ maxPendingMessages?: number;
25
+ maxPendingBinaryMessages?: number;
26
+ }
27
+ type OnUnsubscribeCallback = (type: 'server' | 'manual') => void;
28
+ export type Subscription = {
29
+ closed: boolean;
30
+ unsubscribe: () => void;
31
+ };
32
+ export declare class WebSocketClient {
33
+ private websocket;
34
+ private topics;
35
+ private observer?;
36
+ private pendingMessages;
37
+ private pendingBinaryMessages;
38
+ private isConnected;
39
+ private onOpenCallback;
40
+ private onCloseCallback;
41
+ private _subject;
42
+ private connectionUrl;
43
+ private connectionProtocols?;
44
+ private retryConnectionCount;
45
+ private retryConnectionDelay;
46
+ private currentRetryCount;
47
+ private reconnectTimeout?;
48
+ private isManualClose;
49
+ private isConnecting;
50
+ private maxPendingMessages;
51
+ private maxPendingBinaryMessages;
52
+ constructor(connection: {
53
+ url: string | URL;
54
+ protocols?: string | string[];
55
+ }, config?: WebSocketClientConfig);
56
+ constructor(connection: string, config?: WebSocketClientConfig);
57
+ constructor(connection: URL, config?: WebSocketClientConfig);
58
+ private get observable();
59
+ private connect;
60
+ private attemptReconnect;
61
+ private sendMessage;
62
+ sendBinary(data: ArrayBuffer | Blob | Uint8Array): void;
63
+ private parseIncomingTopic;
64
+ private parseBinaryTopic;
65
+ private isBinaryPayload;
66
+ private hasBinaryPayload;
67
+ private buildBinaryMessage;
68
+ subject(target: string, option?: {
69
+ type?: TopicType;
70
+ subScribeBody?: any;
71
+ observer?: TopicObserverCallBack<any>;
72
+ onUnsubscribe?: OnUnsubscribeCallback;
73
+ }): {
74
+ readonly closed: boolean;
75
+ unsubscribe: () => void;
76
+ readonly observable: Observable<any, any>;
77
+ send: (body?: any) => Observable<any, any>;
78
+ onUnsubscribe: (callback: OnUnsubscribeCallback) => void;
79
+ };
80
+ onOpen(callback: () => void): void;
81
+ onClose(callback: () => void): void;
82
+ subscribe<T = any>(observer: (data: TopicResponse<T> | TopicServerEventRequest<T>) => void): void;
83
+ close(): void;
84
+ reconnect(): void;
85
+ getReadyState(): number;
86
+ isConnectionOpen(): boolean;
87
+ }
88
+ //# sourceMappingURL=WebSocketClient.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WebSocketClient.d.ts","sourceRoot":"","sources":["../../../src/websocket/WebSocketClient.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,163 @@
1
+ import { WebSocketEndPoint, WebSocketSet } from '../endpoints/WebSocketEndPoint';
2
+ import { RawData } from 'ws';
3
+ import { IntentManager } from '@dooboostore/simple-boot';
4
+ import { RouterManager } from '@dooboostore/simple-boot';
5
+ export type WebSocketRequest = {
6
+ webSocketSet: WebSocketSet;
7
+ uuid: string;
8
+ webSocketManager: WebSocketManager;
9
+ sendEvent: <R>(event: string, body: any, config?: {
10
+ responseTimeout?: number;
11
+ }) => Promise<R>;
12
+ };
13
+ export type TopicType = 'intent' | 'router';
14
+ export type SubscribeType = 'subscribe';
15
+ export type UnsubscribeType = 'unsubscribe';
16
+ export type TopicRequest<T = any> = {
17
+ type?: TopicType;
18
+ uuid: string;
19
+ requestUUID: string;
20
+ body?: T;
21
+ };
22
+ export type TopicSubscribeRequest<T = any> = {
23
+ type: SubscribeType;
24
+ target: string;
25
+ uuid: string;
26
+ body?: T;
27
+ };
28
+ export type TopicUnsubscribeRequest = {
29
+ type: UnsubscribeType;
30
+ uuid: string;
31
+ };
32
+ export type TopicResponse<T = any> = {
33
+ state: 'success' | 'error';
34
+ target: string;
35
+ uuid: string;
36
+ requestUUID?: string;
37
+ body: T;
38
+ };
39
+ export type TopicServerEventRequest<T = any> = {
40
+ type: 'event';
41
+ uuid: string;
42
+ eventUUID: string;
43
+ event: string;
44
+ body?: T;
45
+ };
46
+ export type TopicServerEventUnSubscribeRequest = {
47
+ type: 'unsubscribe';
48
+ uuid: string;
49
+ };
50
+ export type TopicServerEventResponse<T = any> = {
51
+ type: 'event';
52
+ uuid: string;
53
+ eventUUID: string;
54
+ body?: T;
55
+ };
56
+ export declare const isTopicRequest: <T = any>(obj: any) => obj is TopicRequest<T>;
57
+ export declare const isTopicSubscribeRequest: <T = any>(obj: any) => obj is TopicSubscribeRequest<T>;
58
+ export declare const isTopicUnsubscribeRequest: (obj: any) => obj is TopicUnsubscribeRequest;
59
+ export declare const isTopicResponse: <T = any>(obj: any) => obj is TopicResponse<T>;
60
+ export declare const isTopicServerEventRequest: <T = any>(obj: any) => obj is TopicServerEventRequest<T>;
61
+ export declare const isTopicServerEventResponse: <T = any>(obj: any) => obj is TopicServerEventResponse<T>;
62
+ export declare const isTopicServerEventUnSubscribeRequest: (obj: any) => obj is TopicServerEventUnSubscribeRequest;
63
+ type EventResponseCallBack = <T>(data: T, wsSet: WebSocketSet) => void;
64
+ export type RegisteredClient<T = any> = {
65
+ uuid: string;
66
+ target: string;
67
+ subscribeBody?: T;
68
+ };
69
+ type RegisteredClientSet<T = any> = RegisteredClient<T> & {
70
+ webSocketSet: WebSocketSet;
71
+ };
72
+ export declare class WebSocketManager implements WebSocketEndPoint {
73
+ private intentManager;
74
+ private routerManager;
75
+ private clients;
76
+ private eventSubscriptions;
77
+ private subject;
78
+ constructor(intentManager: IntentManager, routerManager: RouterManager);
79
+ get observable(): import("@dooboostore/core").Observable<TopicUnsubscribeRequest | TopicRequest<any> | TopicSubscribeRequest<any> | TopicServerEventResponse<any>, any>;
80
+ connect(wsSet: WebSocketSet): void;
81
+ close(wsSet: WebSocketSet): void;
82
+ setClientTopic(wsSet: WebSocketSet, uuid: string, target: string, subscribeBody?: any): void;
83
+ findAllClientsByTarget(target: string): RegisteredClientSet[];
84
+ findClientsByTarget(target: string): RegisteredClientSet;
85
+ removeClientByUUID(uuid: string): boolean;
86
+ findClientByUUID(uuid: string): RegisteredClientSet | undefined;
87
+ sendDataByUUID({ uuid, body }: {
88
+ uuid: string;
89
+ body?: any;
90
+ }): boolean;
91
+ sendUnSubscribeByUUID({ uuid }: {
92
+ uuid: string;
93
+ }): boolean;
94
+ sendAllDataByTarget({ target, body }: {
95
+ target: string;
96
+ body?: any;
97
+ }): number;
98
+ sendAllUnSubscribeByTarget({ target }: {
99
+ target: string;
100
+ }): number;
101
+ sendEventDataByUUID({ uuid, event, body }: {
102
+ uuid: string;
103
+ event: string;
104
+ body?: any;
105
+ }, config?: {
106
+ responseCallBack?: EventResponseCallBack;
107
+ }): string | undefined;
108
+ sendEventDataByUUIDPromise<R>({ uuid, event, body }: {
109
+ uuid: string;
110
+ event: string;
111
+ body?: any;
112
+ }, config?: {
113
+ responseTimeout?: number;
114
+ }): Promise<R>;
115
+ sendEventDataByUUIDPromiseSettled<R>({ uuid, event, body }: {
116
+ uuid: string;
117
+ event: string;
118
+ body?: any;
119
+ }, config?: {
120
+ responseTimeout?: number;
121
+ }): Promise<PromiseSettledResult<R>>;
122
+ sendAllEventDataByTargetPromise<R>({ target, event, body }: {
123
+ target: string;
124
+ event: string;
125
+ body?: any;
126
+ }, config?: {
127
+ responseTimeout?: number;
128
+ }): Promise<{
129
+ body: R;
130
+ uuid: string;
131
+ }[]>;
132
+ sendAllEventDataByTargetPromiseSettled<R>({ target, event, body }: {
133
+ target: string;
134
+ event: string;
135
+ body?: any;
136
+ }, config?: {
137
+ responseTimeout?: number;
138
+ }): Promise<PromiseSettledResult<{
139
+ body: R;
140
+ uuid: string;
141
+ }>[]>;
142
+ sendAllEventDataByTarget({ target, event, body }: {
143
+ target: string;
144
+ event: string;
145
+ body?: any;
146
+ }, config?: {
147
+ responseCallBack?: EventResponseCallBack;
148
+ }): number;
149
+ private addEventSubscribes;
150
+ getOpenClients(): WebSocketSet[];
151
+ private isBinaryPayload;
152
+ private hasBinaryPayload;
153
+ private buildBinaryTopic;
154
+ private sendTopic;
155
+ private parseBinaryTopic;
156
+ message(wsSet: WebSocketSet, data: {
157
+ data: RawData;
158
+ isBinary: boolean;
159
+ }): void;
160
+ private removeAllClientsByWebSocketSet;
161
+ }
162
+ export {};
163
+ //# sourceMappingURL=WebSocketManager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WebSocketManager.d.ts","sourceRoot":"","sources":["../../../src/websocket/WebSocketManager.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ export * from './WebSocketClient';
2
+ export * from './WebSocketManager';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/websocket/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAClC,cAAc,oBAAoB,CAAC"}