@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,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/websocket/WebSocketManager.ts"],
4
+ "sourcesContent": ["import { Sim } from '@dooboostore/simple-boot';\nimport { WebSocketEndPoint, WebSocketSet } from '../endpoints/WebSocketEndPoint';\nimport { RawData, WebSocket } from 'ws';\nimport { IntentManager } from '@dooboostore/simple-boot';\nimport { RouterManager } from '@dooboostore/simple-boot';\nimport { Intent } from '@dooboostore/simple-boot';\nimport { RandomUtils } from '@dooboostore/core';\nimport { Subject } from '@dooboostore/core';\nexport type WebSocketRequest = { webSocketSet: WebSocketSet; uuid: string; webSocketManager: WebSocketManager; sendEvent: <R>(event: string, body: any, config?: { responseTimeout?: number }) => Promise<R> };\nexport type TopicType = 'intent' | 'router';\nexport type SubscribeType = 'subscribe';\nexport type UnsubscribeType = 'unsubscribe';\nexport type TopicRequest<T = any> = {\n type?: TopicType;\n uuid: string;\n requestUUID: string;\n body?: T;\n};\nexport type TopicSubscribeRequest<T = any> = {\n type: SubscribeType;\n target: string;\n uuid: string;\n body?: T;\n};\nexport type TopicUnsubscribeRequest = {\n type: UnsubscribeType;\n uuid: string;\n};\n\nexport type TopicResponse<T = any> = {\n state: 'success' | 'error';\n // type: TopicType | SubscribeType | UnsubscribeType;\n target: string;\n uuid: string;\n requestUUID?: string;\n body: T;\n};\n\nexport type TopicServerEventRequest<T = any> = {\n type: 'event';\n uuid: string;\n eventUUID: string;\n event: string;\n body?: T;\n};\nexport type TopicServerEventUnSubscribeRequest = {\n type: 'unsubscribe';\n uuid: string;\n};\nexport type TopicServerEventResponse<T = any> = {\n type: 'event';\n uuid: string;\n eventUUID: string;\n body?: T;\n};\n\nexport const isTopicRequest = <T = any>(obj: any): obj is TopicRequest<T> => {\n return typeof obj === 'object' && obj !== null && 'uuid' in obj && typeof obj.uuid === 'string' && (obj.type === undefined || obj.type === 'intent' || obj.type === 'router') && (obj.body === undefined || true);\n};\n\nexport const isTopicSubscribeRequest = <T = any>(obj: any): obj is TopicSubscribeRequest<T> => {\n return typeof obj === 'object' && obj !== null && 'type' in obj && obj.type === 'subscribe' && 'target' in obj && typeof obj.target === 'string' && 'uuid' in obj && typeof obj.uuid === 'string' && (obj.body === undefined || true);\n};\n\nexport const isTopicUnsubscribeRequest = (obj: any): obj is TopicUnsubscribeRequest => {\n return typeof obj === 'object' && obj !== null && 'type' in obj && obj.type === 'unsubscribe' && 'uuid' in obj && typeof obj.uuid === 'string';\n};\n\nexport const isTopicResponse = <T = any>(obj: any): obj is TopicResponse<T> => {\n return typeof obj === 'object' && obj !== null && 'state' in obj && (obj.state === 'success' || obj.state === 'error') && 'target' in obj && typeof obj.target === 'string' && 'uuid' in obj && typeof obj.uuid === 'string' && 'body' in obj;\n};\n\nexport const isTopicServerEventRequest = <T = any>(obj: any): obj is TopicServerEventRequest<T> => {\n return typeof obj === 'object' && obj !== null && 'type' in obj && obj.type === 'event' && 'uuid' in obj && typeof obj.uuid === 'string' && 'eventUUID' in obj && typeof obj.eventUUID === 'string' && 'event' in obj && typeof obj.event === 'string' && (obj.body === undefined || true);\n};\n\nexport const isTopicServerEventResponse = <T = any>(obj: any): obj is TopicServerEventResponse<T> => {\n return typeof obj === 'object' && obj !== null && 'type' in obj && obj.type === 'event' && 'uuid' in obj && typeof obj.uuid === 'string' && 'eventUUID' in obj && typeof obj.eventUUID === 'string' && (obj.body === undefined || true);\n};\n\nexport const isTopicServerEventUnSubscribeRequest = (obj: any): obj is TopicServerEventUnSubscribeRequest => {\n return typeof obj === 'object' && obj !== null && 'type' in obj && obj.type === 'unsubscribe' && 'uuid' in obj && typeof obj.uuid === 'string';\n};\n\ntype EventResponseCallBack = <T>(data: T, wsSet: WebSocketSet) => void;\n\nexport type RegisteredClient<T = any> = { uuid: string; target: string; subscribeBody?: T };\n\ntype RegisteredClientSet<T = any> = RegisteredClient<T> & { webSocketSet: WebSocketSet };\n\n@Sim\nexport class WebSocketManager implements WebSocketEndPoint {\n private clients: Map<WebSocketSet, RegisteredClient[]> = new Map();\n private eventSubscriptions: Map<string, Map<string, EventResponseCallBack>> = new Map();\n private subject = new Subject<TopicRequest | TopicUnsubscribeRequest | TopicSubscribeRequest | TopicServerEventResponse>();\n constructor(\n private intentManager: IntentManager,\n private routerManager: RouterManager\n ) {}\n\n get observable() {\n return this.subject.asObservable();\n }\n connect(wsSet: WebSocketSet) {\n this.clients.set(wsSet, []);\n console.log('WebSocket connected:', wsSet.request.url);\n }\n close(wsSet: WebSocketSet) {\n this.removeAllClientsByWebSocketSet(wsSet);\n this.clients.delete(wsSet);\n console.log('WebSocket disconnected:', wsSet.request.url);\n }\n\n setClientTopic(wsSet: WebSocketSet, uuid: string, target: string, subscribeBody?: any) {\n const clientTopics = this.clients.get(wsSet);\n if (clientTopics && !clientTopics.find(it => it.uuid === uuid)) {\n clientTopics.push({ uuid, target, subscribeBody });\n this.clients.set(wsSet, clientTopics);\n } else if (clientTopics) {\n throw { message: 'Already subscribed topic' };\n }\n }\n\n findAllClientsByTarget(target: string): RegisteredClientSet[] {\n const results: RegisteredClientSet[] = [];\n for (const [wsSet, topics] of Array.from(this.clients.entries())) {\n const find = topics.find(it => it.target === target);\n if (find) {\n results.push({ ...find, webSocketSet: wsSet });\n }\n }\n return results;\n }\n\n findClientsByTarget(target: string): RegisteredClientSet {\n for (const [wsSet, topics] of Array.from(this.clients.entries())) {\n const find = topics.find(it => it.target === target);\n if (find) {\n return { ...find, webSocketSet: wsSet };\n }\n }\n }\n\n removeClientByUUID(uuid: string) {\n for (const [wsSet, topics] of Array.from(this.clients.entries())) {\n const findIndex = topics.findIndex(it => it.uuid === uuid);\n if (findIndex >= 0) {\n topics.splice(findIndex, 1);\n this.clients.set(wsSet, topics);\n // 이벤트 구독도 함께 정리\n this.eventSubscriptions.delete(uuid);\n return true;\n }\n }\n return false;\n }\n\n findClientByUUID(uuid: string): RegisteredClientSet | undefined {\n for (const [wsSet, topics] of Array.from(this.clients.entries())) {\n const find = topics.find(it => it.uuid === uuid);\n if (find) {\n return { ...find, webSocketSet: wsSet };\n }\n }\n return undefined;\n }\n\n sendDataByUUID({ uuid, body }: { uuid: string; body?: any }) {\n const client = this.findClientByUUID(uuid);\n if (client) {\n const data: TopicResponse = {\n state: 'success',\n target: client.target,\n uuid: uuid,\n body: body\n };\n this.sendTopic(client.webSocketSet, data);\n return true;\n }\n return false;\n }\n\n sendUnSubscribeByUUID({ uuid }: { uuid: string }) {\n const client = this.findClientByUUID(uuid);\n if (client) {\n const data: TopicServerEventUnSubscribeRequest = {\n type: 'unsubscribe',\n uuid: uuid\n };\n this.removeClientByUUID(uuid);\n this.sendTopic(client.webSocketSet, data);\n return true;\n }\n return false;\n }\n\n sendAllDataByTarget({ target, body }: { target: string; body?: any }) {\n const clients = this.findAllClientsByTarget(target);\n clients.forEach(it => {\n const data: TopicResponse = {\n state: 'success',\n target: it.target,\n uuid: it.uuid,\n body: body\n };\n this.sendTopic(it.webSocketSet, data);\n });\n return clients.length;\n }\n sendAllUnSubscribeByTarget({ target }: { target: string }) {\n const clients = this.findAllClientsByTarget(target);\n clients.forEach(it => {\n const data: TopicUnsubscribeRequest = {\n type: 'unsubscribe',\n uuid: it.uuid\n };\n this.removeClientByUUID(it.uuid);\n this.sendTopic(it.webSocketSet, data);\n });\n return clients.length;\n }\n\n sendEventDataByUUID({ uuid, event, body }: { uuid: string; event: string; body?: any }, config?: { responseCallBack?: EventResponseCallBack }): string | undefined {\n const client = this.findClientByUUID(uuid);\n if (client) {\n const eventUUID = RandomUtils.uuid4();\n const eventTopic: TopicServerEventRequest = {\n type: 'event',\n uuid: uuid,\n // target: client.target,\n eventUUID: eventUUID,\n event: event,\n body: body\n };\n\n if (config.responseCallBack) {\n this.addEventSubscribes(uuid, eventUUID, config.responseCallBack);\n }\n this.sendTopic(client.webSocketSet, eventTopic);\n return eventUUID;\n }\n return undefined;\n }\n\n sendEventDataByUUIDPromise<R>({ uuid, event, body }: { uuid: string; event: string; body?: any }, config?: { responseTimeout?: number }): Promise<R> {\n return new Promise((resolve, reject) => {\n let timeoutId: NodeJS.Timeout | undefined;\n let eventUUIDForCleanup: string | undefined;\n\n if (config?.responseTimeout !== undefined) {\n timeoutId = setTimeout(() => {\n if (eventUUIDForCleanup) {\n const subscriptions = this.eventSubscriptions.get(uuid);\n if (subscriptions) {\n subscriptions.delete(eventUUIDForCleanup);\n if (subscriptions.size <= 0) {\n this.eventSubscriptions.delete(uuid);\n }\n }\n }\n reject(new Error('WebSocket event response timeout for UUID: ' + uuid));\n }, config.responseTimeout);\n }\n\n const eventUUID = this.sendEventDataByUUID(\n { uuid, event, body },\n {\n responseCallBack: (data: any) => {\n if (timeoutId) clearTimeout(timeoutId);\n resolve(data);\n }\n }\n );\n eventUUIDForCleanup = eventUUID;\n\n if (!eventUUID) {\n if (timeoutId) clearTimeout(timeoutId);\n reject(new Error('WebSocket client not found for UUID: ' + uuid));\n }\n });\n }\n\n async sendEventDataByUUIDPromiseSettled<R>({ uuid, event, body }: { uuid: string; event: string; body?: any }, config?: { responseTimeout?: number }): Promise<PromiseSettledResult<R>> {\n try {\n const value = await this.sendEventDataByUUIDPromise<R>({ uuid, event, body }, config);\n return { status: 'fulfilled', value };\n } catch (reason) {\n return { status: 'rejected', reason };\n }\n }\n\n sendAllEventDataByTargetPromise<R>({ target, event, body }: { target: string; event: string; body?: any }, config?: { responseTimeout?: number }): Promise<{ body: R; uuid: string }[]> {\n const clients = this.findAllClientsByTarget(target);\n const promises: Promise<{ body: R; uuid: string }>[] = clients.map(it => {\n return this.sendEventDataByUUIDPromise<R>({ uuid: it.uuid, event, body }, config).then(result => ({\n body: result,\n uuid: it.uuid\n }));\n });\n return Promise.all(promises);\n }\n sendAllEventDataByTargetPromiseSettled<R>({ target, event, body }: { target: string; event: string; body?: any }, config?: { responseTimeout?: number }): Promise<PromiseSettledResult<{ body: R; uuid: string }>[]> {\n const clients = this.findAllClientsByTarget(target);\n const promises: Promise<{ body: R; uuid: string }>[] = clients.map(it => {\n return this.sendEventDataByUUIDPromise<R>({ uuid: it.uuid, event, body }, config).then(result => ({\n body: result,\n uuid: it.uuid\n }));\n });\n return Promise.allSettled(promises);\n }\n\n sendAllEventDataByTarget({ target, event, body }: { target: string; event: string; body?: any }, config?: { responseCallBack?: EventResponseCallBack }) {\n const clients = this.findAllClientsByTarget(target);\n clients.forEach(it => {\n const eventUUID = RandomUtils.uuid4();\n const eventTopic: TopicServerEventRequest = {\n type: 'event',\n uuid: it.uuid,\n // target: it.target,\n eventUUID: eventUUID,\n event: event,\n body: body\n };\n if (config?.responseCallBack) {\n this.addEventSubscribes(it.uuid, eventUUID, config?.responseCallBack);\n }\n this.sendTopic(it.webSocketSet, eventTopic);\n });\n return clients.length;\n }\n\n private addEventSubscribes(uuid: string, eventUUID: string, eventResponseCallBack: EventResponseCallBack) {\n let eventMap = this.eventSubscriptions.get(uuid);\n if (eventMap) {\n eventMap.set(eventUUID, eventResponseCallBack);\n } else {\n eventMap = new Map();\n eventMap.set(eventUUID, eventResponseCallBack);\n this.eventSubscriptions.set(uuid, eventMap);\n }\n }\n\n getOpenClients() {\n return Array.from(this.clients.keys()).filter(it => it.socket.readyState === WebSocket.OPEN);\n }\n\n private isBinaryPayload(value: any) {\n if (!value) {\n return false;\n }\n if (Buffer.isBuffer(value)) {\n return true;\n }\n if (typeof Uint8Array !== 'undefined' && value instanceof Uint8Array) {\n return true;\n }\n if (typeof ArrayBuffer !== 'undefined' && value instanceof ArrayBuffer) {\n return true;\n }\n if (value && typeof value === 'object' && 'buffer' in value) {\n const bufferValue = (value as any).buffer;\n return Buffer.isBuffer(bufferValue) || bufferValue instanceof Uint8Array || bufferValue instanceof ArrayBuffer;\n }\n return false;\n }\n\n private hasBinaryPayload(value: any): boolean {\n if (this.isBinaryPayload(value)) {\n return true;\n }\n if (Array.isArray(value)) {\n return value.some(item => this.hasBinaryPayload(item));\n }\n if (value && typeof value === 'object') {\n return Object.keys(value).some(key => this.hasBinaryPayload(value[key]));\n }\n return false;\n }\n\n private buildBinaryTopic(topic: any): Buffer {\n const fileRefs = new Map<any, string>();\n const fileEntries: Array<{ id: string; name: string; mime: string; buffer: Buffer }> = [];\n let fileIndex = 0;\n\n const registerFile = (value: any) => {\n const existing = fileRefs.get(value);\n if (existing) {\n return existing;\n }\n const id = `f${++fileIndex}`;\n fileRefs.set(value, id);\n\n let name = 'file';\n let mime = 'application/octet-stream';\n let buffer: Buffer = Buffer.alloc(0);\n\n if (Buffer.isBuffer(value)) {\n buffer = value;\n } else if (value instanceof Uint8Array) {\n buffer = Buffer.from(value);\n } else if (value instanceof ArrayBuffer) {\n buffer = Buffer.from(value);\n } else if (value && typeof value === 'object' && 'buffer' in value) {\n const fileLike = value as any;\n if (typeof fileLike.name === 'string') {\n name = fileLike.name || name;\n }\n if (typeof fileLike.mime === 'string') {\n mime = fileLike.mime || mime;\n }\n const innerBuffer = fileLike.buffer;\n if (Buffer.isBuffer(innerBuffer)) {\n buffer = innerBuffer;\n } else if (innerBuffer instanceof Uint8Array) {\n buffer = Buffer.from(innerBuffer);\n } else if (innerBuffer instanceof ArrayBuffer) {\n buffer = Buffer.from(innerBuffer);\n }\n }\n\n fileEntries.push({ id, name, mime, buffer });\n return id;\n };\n\n const replaceFiles = (value: any): any => {\n if (this.isBinaryPayload(value)) {\n const id = registerFile(value);\n return { $file: id };\n }\n if (Array.isArray(value)) {\n return value.map(item => replaceFiles(item));\n }\n if (value && typeof value === 'object') {\n const result: Record<string, any> = {};\n Object.keys(value).forEach(key => {\n result[key] = replaceFiles(value[key]);\n });\n return result;\n }\n return value;\n };\n\n const payload = replaceFiles(topic.body);\n let offset = 0;\n const files = fileEntries.map(entry => {\n const size = entry.buffer.length;\n const meta = {\n id: entry.id,\n name: entry.name,\n mime: entry.mime,\n size,\n offset\n };\n offset += size;\n return meta;\n });\n\n const meta = { ...topic, body: payload, files };\n const json = Buffer.from(JSON.stringify(meta), 'utf8');\n const header = Buffer.alloc(4);\n header.writeUInt32LE(json.length, 0);\n\n const buffers = [header, json, ...fileEntries.map(entry => entry.buffer)];\n return Buffer.concat(buffers);\n }\n\n private sendTopic(wsSet: WebSocketSet, topic: any) {\n if (this.hasBinaryPayload(topic?.body)) {\n const buffer = this.buildBinaryTopic(topic);\n wsSet.socket.send(buffer, { binary: true });\n return;\n }\n wsSet.socket.send(JSON.stringify(topic), { binary: false });\n }\n\n private parseBinaryTopic(data: RawData): TopicRequest | undefined {\n let buffer: Buffer;\n if (Buffer.isBuffer(data)) {\n buffer = data;\n } else if (data instanceof ArrayBuffer) {\n buffer = Buffer.from(data);\n } else if (Array.isArray(data)) {\n buffer = Buffer.concat(data.map(item => (Buffer.isBuffer(item) ? item : Buffer.from(item as any))));\n } else {\n return undefined;\n }\n\n if (buffer.length < 4) {\n return undefined;\n }\n\n const jsonLength = buffer.readUInt32LE(0);\n const jsonStart = 4;\n const jsonEnd = jsonStart + jsonLength;\n if (buffer.length < jsonEnd) {\n return undefined;\n }\n\n const jsonText = buffer.slice(jsonStart, jsonEnd).toString('utf8');\n let meta: any;\n try {\n meta = JSON.parse(jsonText);\n } catch (error) {\n console.warn('Invalid WebSocket binary payload:', error);\n return undefined;\n }\n\n const filesMeta = Array.isArray(meta.files) ? meta.files : [];\n const fileMap = new Map<string, { name: string; mime: string; size: number; buffer: Buffer }>();\n filesMeta.forEach((file: any) => {\n if (!file || typeof file.id !== 'string' || typeof file.size !== 'number' || typeof file.offset !== 'number') {\n return;\n }\n const start = jsonEnd + file.offset;\n const end = start + file.size;\n if (start < jsonEnd || end > buffer.length) {\n return;\n }\n const slice = buffer.slice(start, end);\n fileMap.set(file.id, {\n name: file.name || 'file',\n mime: file.mime || 'application/octet-stream',\n size: file.size,\n buffer: slice\n });\n });\n\n const replaceFileRefs = (value: any): any => {\n if (value && typeof value === 'object' && '$file' in value && typeof value.$file === 'string') {\n const file = fileMap.get(value.$file);\n if (file) {\n return file;\n }\n }\n if (Array.isArray(value)) {\n return value.map(item => replaceFileRefs(item));\n }\n if (value && typeof value === 'object') {\n const result: Record<string, any> = {};\n Object.keys(value).forEach(key => {\n result[key] = replaceFileRefs(value[key]);\n });\n return result;\n }\n return value;\n };\n\n const body = replaceFileRefs(meta.body);\n return {\n type: meta.type,\n uuid: meta.uuid,\n requestUUID: meta.requestUUID,\n body\n };\n }\n\n message(wsSet: WebSocketSet, data: { data: RawData; isBinary: boolean }): void {\n let topic: TopicRequest | TopicUnsubscribeRequest | TopicSubscribeRequest | TopicServerEventResponse | undefined;\n if (data.isBinary) {\n topic = this.parseBinaryTopic(data.data);\n if (!topic) {\n return;\n }\n } else {\n try {\n topic = JSON.parse(data.data.toString());\n } catch (error) {\n console.warn('Invalid WebSocket payload:', error);\n return;\n }\n }\n\n this.subject.next(topic);\n // console.log('WebSocket message received:', topic);\n const uuid = topic.uuid;\n // const client = this.findClientByUUID(uuid);\n // if (!client) return;\n\n // 구독\n if (topic.type === 'subscribe') {\n try {\n this.setClientTopic(wsSet, topic.uuid, topic.target, topic.body);\n } catch (err: any) {\n const responseTopic: TopicResponse = {\n state: 'error',\n // type: topic.type,\n target: topic.target,\n uuid: topic.uuid,\n body: { message: err.message || 'Error subscribing topic' }\n };\n wsSet.socket.send(JSON.stringify(responseTopic), { binary: false });\n }\n return;\n // 구독 해제\n } else if (topic.type === 'unsubscribe') {\n this.removeClientByUUID(uuid);\n return;\n } else if (topic.type === 'event') {\n const subscriptions = this.eventSubscriptions.get(topic.uuid);\n if (subscriptions) {\n const eventCallback = subscriptions.get(topic.eventUUID);\n if (eventCallback) {\n eventCallback(topic.body, wsSet);\n subscriptions.delete(topic.eventUUID);\n }\n if (subscriptions.size <= 0) {\n this.eventSubscriptions.delete(topic.uuid);\n }\n }\n return;\n } else {\n // 실행!!\n // 등록 체크\n const clientTopics = this.findClientByUUID(uuid);\n if (!clientTopics) {\n const responseTopic: TopicResponse = {\n state: 'error',\n uuid: topic.uuid,\n requestUUID: topic.requestUUID,\n target: '',\n body: { message: 'WebSocket client not registered' }\n };\n this.sendTopic(wsSet, responseTopic);\n return;\n }\n\n const intent = new Intent(clientTopics.target);\n const webSocketRequest: WebSocketRequest = {\n webSocketSet: wsSet,\n uuid: clientTopics.uuid,\n webSocketManager: this,\n sendEvent: <R>(event: string, body: any, config?: { responseTimeout?: number }) => this.sendEventDataByUUIDPromise<R>({ uuid: clientTopics.uuid, event, body }, config)\n };\n intent.data = [topic.body, webSocketRequest];\n if (topic.type === 'intent') {\n this.intentManager.publishMeta(intent).then(async it => {\n if (it.target.length <= 0) {\n const responseTopic: TopicResponse = {\n state: 'error',\n // type: topic.type,\n target: clientTopics.target,\n uuid: topic.uuid,\n requestUUID: topic.requestUUID,\n body: { message: 'Not found intent target' }\n };\n this.sendTopic(wsSet, responseTopic);\n } else {\n const rdata = it.return[0];\n const wdata = rdata instanceof Promise ? await rdata : rdata;\n const responseTopic: TopicResponse = {\n state: 'success',\n uuid: topic.uuid,\n requestUUID: topic.requestUUID,\n target: clientTopics.target,\n body: wdata\n };\n this.sendTopic(wsSet, responseTopic);\n }\n });\n } else if (topic.type === 'router') {\n this.routerManager.routing(intent).then(async routerModule => {\n const moduleInstance = routerModule.getModuleInstance?.();\n if (routerModule && moduleInstance) {\n if (routerModule.propertyKeys) {\n for (const it of routerModule.propertyKeys) {\n let r = moduleInstance[it]?.(topic.body, webSocketRequest);\n r = r instanceof Promise ? await r : r;\n const responseTopic: TopicResponse = {\n state: 'success',\n requestUUID: topic.requestUUID,\n uuid: topic.uuid,\n target: clientTopics.target,\n body: r\n };\n this.sendTopic(wsSet, responseTopic);\n }\n } else {\n const responseTopic: TopicResponse = {\n state: 'error',\n uuid: topic.uuid,\n requestUUID: topic.requestUUID,\n target: clientTopics.target,\n body: { message: 'Not found router target' }\n };\n this.sendTopic(wsSet, responseTopic);\n }\n } else {\n const responseTopic: TopicResponse = {\n state: 'error',\n uuid: topic.uuid,\n requestUUID: topic.requestUUID,\n target: clientTopics.target,\n body: { message: 'Not found router target' }\n };\n this.sendTopic(wsSet, responseTopic);\n }\n });\n }\n }\n }\n\n private removeAllClientsByWebSocketSet(wsSet: WebSocketSet) {\n const topics = this.clients.get(wsSet);\n if (!topics) {\n return;\n }\n for (const topic of topics) {\n this.eventSubscriptions.delete(topic.uuid);\n }\n this.clients.set(wsSet, []);\n }\n}\n"],
5
+ "mappings": "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",
6
+ "names": ["WebSocketManager", "meta"]
7
+ }
@@ -0,0 +1,3 @@
1
+ export * from "./WebSocketClient.js";
2
+ export * from "./WebSocketManager.js";
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/websocket/index.ts"],
4
+ "sourcesContent": ["export * from './WebSocketClient';\nexport * from './WebSocketManager';"],
5
+ "mappings": "AAAA,cAAc;AACd,cAAc;",
6
+ "names": []
7
+ }