@based/server 4.0.1 → 4.0.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.
Files changed (429) hide show
  1. package/dist/auth/defaultConfig.d.ts +3 -0
  2. package/dist/auth/defaultConfig.js +12 -0
  3. package/dist/auth/defaultConfig.js.map +1 -0
  4. package/dist/auth/index.d.ts +12 -6
  5. package/dist/auth/index.js +32 -20
  6. package/dist/auth/index.js.map +1 -1
  7. package/dist/auth/parseAuthState.d.ts +2 -1
  8. package/dist/auth/parseAuthState.js +28 -6
  9. package/dist/auth/parseAuthState.js.map +1 -1
  10. package/dist/authorize.d.ts +9 -0
  11. package/dist/authorize.js +59 -0
  12. package/dist/authorize.js.map +1 -0
  13. package/dist/compress.js +3 -0
  14. package/dist/compress.js.map +1 -1
  15. package/dist/createSimpleServer.d.ts +20 -10
  16. package/dist/createSimpleServer.js +64 -53
  17. package/dist/createSimpleServer.js.map +1 -1
  18. package/dist/error/errorTypeHandlers.js +31 -12
  19. package/dist/error/errorTypeHandlers.js.map +1 -1
  20. package/dist/error/index.d.ts +11 -1
  21. package/dist/error/index.js +9 -10
  22. package/dist/error/index.js.map +1 -1
  23. package/dist/error/types.d.ts +41 -45
  24. package/dist/error/types.js +3 -1
  25. package/dist/error/types.js.map +1 -1
  26. package/dist/functionApi/callFunction.d.ts +3 -0
  27. package/dist/functionApi/callFunction.js +29 -0
  28. package/dist/functionApi/callFunction.js.map +1 -0
  29. package/dist/functionApi/client/index.d.ts +16 -0
  30. package/dist/functionApi/client/index.js +44 -0
  31. package/dist/functionApi/client/index.js.map +1 -0
  32. package/dist/functionApi/client/query.d.ts +11 -0
  33. package/dist/functionApi/client/query.js +32 -0
  34. package/dist/functionApi/client/query.js.map +1 -0
  35. package/dist/functionApi/get.d.ts +3 -0
  36. package/dist/functionApi/get.js +71 -0
  37. package/dist/functionApi/get.js.map +1 -0
  38. package/dist/functionApi/index.d.ts +5 -0
  39. package/dist/functionApi/index.js +25 -0
  40. package/dist/functionApi/index.js.map +1 -0
  41. package/dist/functionApi/observe.d.ts +4 -0
  42. package/dist/functionApi/observe.js +44 -0
  43. package/dist/functionApi/observe.js.map +1 -0
  44. package/dist/functionApi/stream.d.ts +3 -0
  45. package/dist/functionApi/stream.js +30 -0
  46. package/dist/functionApi/stream.js.map +1 -0
  47. package/dist/functions/index.d.ts +16 -8
  48. package/dist/functions/index.js +39 -10
  49. package/dist/functions/index.js.map +1 -1
  50. package/dist/functions/timeout.d.ts +3 -3
  51. package/dist/functions/timeout.js.map +1 -1
  52. package/dist/functions/types.d.ts +44 -30
  53. package/dist/functions/types.js +40 -12
  54. package/dist/functions/types.js.map +1 -1
  55. package/dist/incoming/http/authorize.d.ts +2 -2
  56. package/dist/incoming/http/authorize.js +4 -4
  57. package/dist/incoming/http/authorize.js.map +1 -1
  58. package/dist/incoming/http/function.d.ts +3 -4
  59. package/dist/incoming/http/function.js +30 -35
  60. package/dist/incoming/http/function.js.map +1 -1
  61. package/dist/incoming/http/get.d.ts +3 -3
  62. package/dist/incoming/http/get.js +23 -33
  63. package/dist/incoming/http/get.js.map +1 -1
  64. package/dist/incoming/http/index.js +49 -30
  65. package/dist/incoming/http/index.js.map +1 -1
  66. package/dist/incoming/http/parseQuery.d.ts +1 -1
  67. package/dist/incoming/http/parseQuery.js +3 -1
  68. package/dist/incoming/http/parseQuery.js.map +1 -1
  69. package/dist/incoming/http/readBody.d.ts +4 -3
  70. package/dist/incoming/http/readBody.js +32 -8
  71. package/dist/incoming/http/readBody.js.map +1 -1
  72. package/dist/incoming/http/streamFunction/DataStream.d.ts +8 -0
  73. package/dist/incoming/http/streamFunction/DataStream.js +42 -3
  74. package/dist/incoming/http/streamFunction/DataStream.js.map +1 -1
  75. package/dist/incoming/http/streamFunction/getExtension.d.ts +1 -1
  76. package/dist/incoming/http/streamFunction/index.d.ts +3 -3
  77. package/dist/incoming/http/streamFunction/index.js +6 -87
  78. package/dist/incoming/http/streamFunction/index.js.map +1 -1
  79. package/dist/incoming/http/streamFunction/multiPart/index.d.ts +4 -0
  80. package/dist/incoming/http/streamFunction/multiPart/index.js +66 -0
  81. package/dist/incoming/http/streamFunction/multiPart/index.js.map +1 -0
  82. package/dist/incoming/http/streamFunction/multiPart/readFormData.d.ts +12 -0
  83. package/dist/{network/http/streamFunction/multipartStream.js → incoming/http/streamFunction/multiPart/readFormData.js} +83 -89
  84. package/dist/incoming/http/streamFunction/multiPart/readFormData.js.map +1 -0
  85. package/dist/incoming/http/streamFunction/multipartStream.d.ts +3 -4
  86. package/dist/incoming/http/streamFunction/multipartStream.js +68 -66
  87. package/dist/incoming/http/streamFunction/multipartStream.js.map +1 -1
  88. package/dist/incoming/http/streamFunction/stream/createStream.d.ts +6 -0
  89. package/dist/incoming/http/streamFunction/stream/createStream.js +75 -0
  90. package/dist/incoming/http/streamFunction/stream/createStream.js.map +1 -0
  91. package/dist/incoming/http/streamFunction/stream/index.d.ts +4 -0
  92. package/dist/incoming/http/streamFunction/stream/index.js +70 -0
  93. package/dist/incoming/http/streamFunction/stream/index.js.map +1 -0
  94. package/dist/incoming/http/streamFunction/stream.d.ts +1 -1
  95. package/dist/incoming/index.d.ts +1 -1
  96. package/dist/incoming/index.js +13 -11
  97. package/dist/incoming/index.js.map +1 -1
  98. package/dist/incoming/upgrade.js +18 -9
  99. package/dist/incoming/upgrade.js.map +1 -1
  100. package/dist/incoming/ws/auth.d.ts +4 -4
  101. package/dist/incoming/ws/auth.js +37 -19
  102. package/dist/incoming/ws/auth.js.map +1 -1
  103. package/dist/incoming/ws/function.d.ts +2 -3
  104. package/dist/incoming/ws/function.js +21 -73
  105. package/dist/incoming/ws/function.js.map +1 -1
  106. package/dist/incoming/ws/get.d.ts +2 -3
  107. package/dist/incoming/ws/get.js +33 -54
  108. package/dist/incoming/ws/get.js.map +1 -1
  109. package/dist/incoming/ws/index.d.ts +1 -1
  110. package/dist/incoming/ws/index.js +2 -1
  111. package/dist/incoming/ws/index.js.map +1 -1
  112. package/dist/incoming/ws/observable.d.ts +7 -6
  113. package/dist/incoming/ws/observable.js +25 -49
  114. package/dist/incoming/ws/observable.js.map +1 -1
  115. package/dist/incoming/ws/types.d.ts +3 -0
  116. package/dist/{auth → incoming/ws}/types.js +0 -0
  117. package/dist/{auth → incoming/ws}/types.js.map +1 -1
  118. package/dist/index.d.ts +2 -2
  119. package/dist/index.js +2 -2
  120. package/dist/index.js.map +1 -1
  121. package/dist/installFn.d.ts +4 -0
  122. package/dist/installFn.js +94 -0
  123. package/dist/installFn.js.map +1 -0
  124. package/dist/observable/create.d.ts +1 -1
  125. package/dist/observable/create.js +5 -1
  126. package/dist/observable/create.js.map +1 -1
  127. package/dist/observable/destroy.js +1 -1
  128. package/dist/observable/destroy.js.map +1 -1
  129. package/dist/observable/error.d.ts +1 -1
  130. package/dist/observable/index.d.ts +0 -1
  131. package/dist/observable/index.js +0 -1
  132. package/dist/observable/index.js.map +1 -1
  133. package/dist/observable/send.d.ts +3 -3
  134. package/dist/observable/send.js +2 -8
  135. package/dist/observable/send.js.map +1 -1
  136. package/dist/observable/start/error.d.ts +2 -1
  137. package/dist/observable/start/error.js +13 -11
  138. package/dist/observable/start/error.js.map +1 -1
  139. package/dist/observable/start/index.js +17 -8
  140. package/dist/observable/start/index.js.map +1 -1
  141. package/dist/observable/subscribe.d.ts +3 -3
  142. package/dist/observable/subscribe.js +6 -12
  143. package/dist/observable/subscribe.js.map +1 -1
  144. package/dist/observable/types.d.ts +6 -5
  145. package/dist/observable/unsub.d.ts +1 -1
  146. package/dist/observable/unsub.js.map +1 -1
  147. package/dist/observable/verify.d.ts +1 -1
  148. package/dist/observable/verify.js +1 -1
  149. package/dist/observable/verify.js.map +1 -1
  150. package/dist/protocol.d.ts +1 -0
  151. package/dist/protocol.js +11 -1
  152. package/dist/protocol.js.map +1 -1
  153. package/dist/security.d.ts +1 -1
  154. package/dist/security.js +1 -1
  155. package/dist/security.js.map +1 -1
  156. package/dist/sendError.d.ts +3 -2
  157. package/dist/sendError.js +30 -16
  158. package/dist/sendError.js.map +1 -1
  159. package/dist/sendHttpResponse.d.ts +1 -1
  160. package/dist/sendHttpResponse.js +29 -4
  161. package/dist/sendHttpResponse.js.map +1 -1
  162. package/dist/server.d.ts +10 -3
  163. package/dist/server.js +16 -4
  164. package/dist/server.js.map +1 -1
  165. package/dist/verifyRoute.d.ts +14 -0
  166. package/dist/verifyRoute.js +99 -0
  167. package/dist/verifyRoute.js.map +1 -0
  168. package/package.json +4 -2
  169. package/dist/BasedServerClient.d.ts +0 -71
  170. package/dist/BasedServerClient.js +0 -390
  171. package/dist/BasedServerClient.js.map +0 -1
  172. package/dist/Client.d.ts +0 -75
  173. package/dist/Client.js +0 -277
  174. package/dist/Client.js.map +0 -1
  175. package/dist/Params.d.ts +0 -20
  176. package/dist/Params.js +0 -48
  177. package/dist/Params.js.map +0 -1
  178. package/dist/api/index.d.ts +0 -7
  179. package/dist/api/index.js +0 -173
  180. package/dist/api/index.js.map +0 -1
  181. package/dist/auth/authorize.d.ts +0 -2
  182. package/dist/auth/authorize.js +0 -8
  183. package/dist/auth/authorize.js.map +0 -1
  184. package/dist/auth/dummyAuth.d.ts +0 -2
  185. package/dist/auth/dummyAuth.js +0 -8
  186. package/dist/auth/dummyAuth.js.map +0 -1
  187. package/dist/auth/types.d.ts +0 -10
  188. package/dist/clientContext.d.ts +0 -0
  189. package/dist/clientContext.js +0 -83
  190. package/dist/clientContext.js.map +0 -1
  191. package/dist/closeListener.d.ts +0 -4
  192. package/dist/closeListener.js +0 -13
  193. package/dist/closeListener.js.map +0 -1
  194. package/dist/context.d.ts +0 -54
  195. package/dist/context.js +0 -18
  196. package/dist/context.js.map +0 -1
  197. package/dist/error.d.ts +0 -66
  198. package/dist/error.js +0 -149
  199. package/dist/error.js.map +0 -1
  200. package/dist/findPrefix.d.ts +0 -3
  201. package/dist/findPrefix.js +0 -20
  202. package/dist/findPrefix.js.map +0 -1
  203. package/dist/functions/workerPool.d.ts +0 -0
  204. package/dist/functions/workerPool.js +0 -5
  205. package/dist/functions/workerPool.js.map +0 -1
  206. package/dist/getFromConfig.d.ts +0 -3
  207. package/dist/getFromConfig.js +0 -50
  208. package/dist/getFromConfig.js.map +0 -1
  209. package/dist/handlers/authorize.d.ts +0 -5
  210. package/dist/handlers/authorize.js +0 -196
  211. package/dist/handlers/authorize.js.map +0 -1
  212. package/dist/handlers/bulkUpdate/index.d.ts +0 -5
  213. package/dist/handlers/bulkUpdate/index.js +0 -26
  214. package/dist/handlers/bulkUpdate/index.js.map +0 -1
  215. package/dist/handlers/configuration/index.d.ts +0 -10
  216. package/dist/handlers/configuration/index.js +0 -74
  217. package/dist/handlers/configuration/index.js.map +0 -1
  218. package/dist/handlers/configuration/observable/index.d.ts +0 -46
  219. package/dist/handlers/configuration/observable/index.js +0 -277
  220. package/dist/handlers/configuration/observable/index.js.map +0 -1
  221. package/dist/handlers/configure/index.d.ts +0 -5
  222. package/dist/handlers/configure/index.js +0 -44
  223. package/dist/handlers/configure/index.js.map +0 -1
  224. package/dist/handlers/copy/index.d.ts +0 -8
  225. package/dist/handlers/copy/index.js +0 -135
  226. package/dist/handlers/copy/index.js.map +0 -1
  227. package/dist/handlers/delete/index.d.ts +0 -5
  228. package/dist/handlers/delete/index.js +0 -34
  229. package/dist/handlers/delete/index.js.map +0 -1
  230. package/dist/handlers/digest/index.d.ts +0 -5
  231. package/dist/handlers/digest/index.js +0 -23
  232. package/dist/handlers/digest/index.js.map +0 -1
  233. package/dist/handlers/functions/call.d.ts +0 -6
  234. package/dist/handlers/functions/call.js +0 -54
  235. package/dist/handlers/functions/call.js.map +0 -1
  236. package/dist/handlers/functions/observable/Observable.d.ts +0 -49
  237. package/dist/handlers/functions/observable/Observable.js +0 -290
  238. package/dist/handlers/functions/observable/Observable.js.map +0 -1
  239. package/dist/handlers/functions/observable/SharedObservable.d.ts +0 -45
  240. package/dist/handlers/functions/observable/SharedObservable.js +0 -291
  241. package/dist/handlers/functions/observable/SharedObservable.js.map +0 -1
  242. package/dist/handlers/functions/observable/index.d.ts +0 -14
  243. package/dist/handlers/functions/observable/index.js +0 -130
  244. package/dist/handlers/functions/observable/index.js.map +0 -1
  245. package/dist/handlers/get/index.d.ts +0 -5
  246. package/dist/handlers/get/index.js +0 -23
  247. package/dist/handlers/get/index.js.map +0 -1
  248. package/dist/handlers/getConfig/index.d.ts +0 -5
  249. package/dist/handlers/getConfig/index.js +0 -38
  250. package/dist/handlers/getConfig/index.js.map +0 -1
  251. package/dist/handlers/handleRequests.d.ts +0 -5
  252. package/dist/handlers/handleRequests.js +0 -78
  253. package/dist/handlers/handleRequests.js.map +0 -1
  254. package/dist/handlers/index.d.ts +0 -4
  255. package/dist/handlers/index.js +0 -49
  256. package/dist/handlers/index.js.map +0 -1
  257. package/dist/handlers/messageParser.d.ts +0 -5
  258. package/dist/handlers/messageParser.js +0 -122
  259. package/dist/handlers/messageParser.js.map +0 -1
  260. package/dist/handlers/removeField/index.d.ts +0 -5
  261. package/dist/handlers/removeField/index.js +0 -42
  262. package/dist/handlers/removeField/index.js.map +0 -1
  263. package/dist/handlers/removeType/index.d.ts +0 -5
  264. package/dist/handlers/removeType/index.js +0 -30
  265. package/dist/handlers/removeType/index.js.map +0 -1
  266. package/dist/handlers/rest/file/DataStream.d.ts +0 -7
  267. package/dist/handlers/rest/file/DataStream.js +0 -17
  268. package/dist/handlers/rest/file/DataStream.js.map +0 -1
  269. package/dist/handlers/rest/file/formStream.d.ts +0 -4
  270. package/dist/handlers/rest/file/formStream.js +0 -188
  271. package/dist/handlers/rest/file/formStream.js.map +0 -1
  272. package/dist/handlers/rest/file/getExtenstion.d.ts +0 -2
  273. package/dist/handlers/rest/file/getExtenstion.js +0 -22
  274. package/dist/handlers/rest/file/getExtenstion.js.map +0 -1
  275. package/dist/handlers/rest/file/index.d.ts +0 -4
  276. package/dist/handlers/rest/file/index.js +0 -53
  277. package/dist/handlers/rest/file/index.js.map +0 -1
  278. package/dist/handlers/rest/file/storeFile.d.ts +0 -6
  279. package/dist/handlers/rest/file/storeFile.js +0 -44
  280. package/dist/handlers/rest/file/storeFile.js.map +0 -1
  281. package/dist/handlers/rest/file/stream.d.ts +0 -5
  282. package/dist/handlers/rest/file/stream.js +0 -104
  283. package/dist/handlers/rest/file/stream.js.map +0 -1
  284. package/dist/handlers/rest/file/types.d.ts +0 -9
  285. package/dist/handlers/rest/file/types.js +0 -3
  286. package/dist/handlers/rest/file/types.js.map +0 -1
  287. package/dist/handlers/rest/getReqMessage.d.ts +0 -3
  288. package/dist/handlers/rest/getReqMessage.js +0 -92
  289. package/dist/handlers/rest/getReqMessage.js.map +0 -1
  290. package/dist/handlers/rest/index.d.ts +0 -4
  291. package/dist/handlers/rest/index.js +0 -121
  292. package/dist/handlers/rest/index.js.map +0 -1
  293. package/dist/handlers/rest/invalidReq.d.ts +0 -4
  294. package/dist/handlers/rest/invalidReq.js +0 -20
  295. package/dist/handlers/rest/invalidReq.js.map +0 -1
  296. package/dist/handlers/rest/parseResponse.d.ts +0 -6
  297. package/dist/handlers/rest/parseResponse.js +0 -230
  298. package/dist/handlers/rest/parseResponse.js.map +0 -1
  299. package/dist/handlers/rest/playground/index.d.ts +0 -5
  300. package/dist/handlers/rest/playground/index.js +0 -308
  301. package/dist/handlers/rest/playground/index.js.map +0 -1
  302. package/dist/handlers/rest/readBody.d.ts +0 -3
  303. package/dist/handlers/rest/readBody.js +0 -45
  304. package/dist/handlers/rest/readBody.js.map +0 -1
  305. package/dist/handlers/set/index.d.ts +0 -5
  306. package/dist/handlers/set/index.js +0 -20
  307. package/dist/handlers/set/index.js.map +0 -1
  308. package/dist/handlers/subscription/index.d.ts +0 -32
  309. package/dist/handlers/subscription/index.js +0 -223
  310. package/dist/handlers/subscription/index.js.map +0 -1
  311. package/dist/handlers/token.d.ts +0 -5
  312. package/dist/handlers/token.js +0 -122
  313. package/dist/handlers/token.js.map +0 -1
  314. package/dist/handlers/track/index.d.ts +0 -7
  315. package/dist/handlers/track/index.js +0 -102
  316. package/dist/handlers/track/index.js.map +0 -1
  317. package/dist/handlers/userAuth/index.d.ts +0 -5
  318. package/dist/handlers/userAuth/index.js +0 -78
  319. package/dist/handlers/userAuth/index.js.map +0 -1
  320. package/dist/network/http/authorize.d.ts +0 -3
  321. package/dist/network/http/authorize.js +0 -28
  322. package/dist/network/http/authorize.js.map +0 -1
  323. package/dist/network/http/compress.d.ts +0 -6
  324. package/dist/network/http/compress.js +0 -56
  325. package/dist/network/http/compress.js.map +0 -1
  326. package/dist/network/http/end.d.ts +0 -4
  327. package/dist/network/http/end.js +0 -19
  328. package/dist/network/http/end.js.map +0 -1
  329. package/dist/network/http/function.d.ts +0 -3
  330. package/dist/network/http/function.js +0 -47
  331. package/dist/network/http/function.js.map +0 -1
  332. package/dist/network/http/get.d.ts +0 -3
  333. package/dist/network/http/get.js +0 -129
  334. package/dist/network/http/get.js.map +0 -1
  335. package/dist/network/http/index.d.ts +0 -3
  336. package/dist/network/http/index.js +0 -122
  337. package/dist/network/http/index.js.map +0 -1
  338. package/dist/network/http/readBody.d.ts +0 -3
  339. package/dist/network/http/readBody.js +0 -112
  340. package/dist/network/http/readBody.js.map +0 -1
  341. package/dist/network/http/send.d.ts +0 -5
  342. package/dist/network/http/send.js +0 -60
  343. package/dist/network/http/send.js.map +0 -1
  344. package/dist/network/http/streamFunction/DataStream.d.ts +0 -7
  345. package/dist/network/http/streamFunction/DataStream.js +0 -19
  346. package/dist/network/http/streamFunction/DataStream.js.map +0 -1
  347. package/dist/network/http/streamFunction/getExtension.d.ts +0 -2
  348. package/dist/network/http/streamFunction/getExtension.js +0 -29
  349. package/dist/network/http/streamFunction/getExtension.js.map +0 -1
  350. package/dist/network/http/streamFunction/index.d.ts +0 -3
  351. package/dist/network/http/streamFunction/index.js +0 -81
  352. package/dist/network/http/streamFunction/index.js.map +0 -1
  353. package/dist/network/http/streamFunction/multipartStream.d.ts +0 -12
  354. package/dist/network/http/streamFunction/multipartStream.js.map +0 -1
  355. package/dist/network/http/streamFunction/stream.d.ts +0 -5
  356. package/dist/network/http/streamFunction/stream.js +0 -103
  357. package/dist/network/http/streamFunction/stream.js.map +0 -1
  358. package/dist/network/index.d.ts +0 -4
  359. package/dist/network/index.js +0 -84
  360. package/dist/network/index.js.map +0 -1
  361. package/dist/network/message/auth.d.ts +0 -4
  362. package/dist/network/message/auth.js +0 -32
  363. package/dist/network/message/auth.js.map +0 -1
  364. package/dist/network/message/function.d.ts +0 -3
  365. package/dist/network/message/function.js +0 -67
  366. package/dist/network/message/function.js.map +0 -1
  367. package/dist/network/message/get.d.ts +0 -3
  368. package/dist/network/message/get.js +0 -109
  369. package/dist/network/message/get.js.map +0 -1
  370. package/dist/network/message/index.d.ts +0 -3
  371. package/dist/network/message/index.js +0 -62
  372. package/dist/network/message/index.js.map +0 -1
  373. package/dist/network/message/observable.d.ts +0 -5
  374. package/dist/network/message/observable.js +0 -103
  375. package/dist/network/message/observable.js.map +0 -1
  376. package/dist/network/message/send.d.ts +0 -4
  377. package/dist/network/message/send.js +0 -11
  378. package/dist/network/message/send.js.map +0 -1
  379. package/dist/network/upgrade.d.ts +0 -4
  380. package/dist/network/upgrade.js +0 -49
  381. package/dist/network/upgrade.js.map +0 -1
  382. package/dist/network/worker/get.d.ts +0 -0
  383. package/dist/network/worker/get.js +0 -122
  384. package/dist/network/worker/get.js.map +0 -1
  385. package/dist/network/worker/observable.d.ts +0 -0
  386. package/dist/network/worker/observable.js +0 -120
  387. package/dist/network/worker/observable.js.map +0 -1
  388. package/dist/openListener.d.ts +0 -4
  389. package/dist/openListener.js +0 -13
  390. package/dist/openListener.js.map +0 -1
  391. package/dist/secrets.d.ts +0 -9
  392. package/dist/secrets.js +0 -150
  393. package/dist/secrets.js.map +0 -1
  394. package/dist/security/index.d.ts +0 -3
  395. package/dist/security/index.js +0 -66
  396. package/dist/security/index.js.map +0 -1
  397. package/dist/types.d.ts +0 -129
  398. package/dist/types.js +0 -17
  399. package/dist/types.js.map +0 -1
  400. package/dist/upgradeListener.d.ts +0 -4
  401. package/dist/upgradeListener.js +0 -47
  402. package/dist/upgradeListener.js.map +0 -1
  403. package/dist/worker/authorize.d.ts +0 -5
  404. package/dist/worker/authorize.js +0 -15
  405. package/dist/worker/authorize.js.map +0 -1
  406. package/dist/worker/fnMap.d.ts +0 -2
  407. package/dist/worker/fnMap.js +0 -5
  408. package/dist/worker/fnMap.js.map +0 -1
  409. package/dist/worker/functions.d.ts +0 -3
  410. package/dist/worker/functions.js +0 -8
  411. package/dist/worker/functions.js.map +0 -1
  412. package/dist/worker/http/function.d.ts +0 -4
  413. package/dist/worker/http/function.js +0 -75
  414. package/dist/worker/http/function.js.map +0 -1
  415. package/dist/worker/index.d.ts +0 -1
  416. package/dist/worker/index.js +0 -101
  417. package/dist/worker/index.js.map +0 -1
  418. package/dist/worker/observable.d.ts +0 -15
  419. package/dist/worker/observable.js +0 -110
  420. package/dist/worker/observable.js.map +0 -1
  421. package/dist/worker/ws/function.d.ts +0 -3
  422. package/dist/worker/ws/function.js +0 -42
  423. package/dist/worker/ws/function.js.map +0 -1
  424. package/dist/workers/index.d.ts +0 -0
  425. package/dist/workers/index.js +0 -20
  426. package/dist/workers/index.js.map +0 -1
  427. package/dist/workers/workerCode.d.ts +0 -12
  428. package/dist/workers/workerCode.js +0 -46
  429. package/dist/workers/workerCode.js.map +0 -1
@@ -9,38 +9,7 @@ const sendError_1 = require("../../../sendError");
9
9
  const sendHttpResponse_1 = require("../../../sendHttpResponse");
10
10
  const getExtension_1 = __importDefault(require("./getExtension"));
11
11
  const MAX_CHUNK_SIZE = 1024 * 1024 * 5;
12
- const streamProgress = (stream, size) => {
13
- stream.emit('progress', 0);
14
- if (size < 200000) {
15
- stream.on('end', () => {
16
- stream.emit('progress', 1);
17
- });
18
- }
19
- else {
20
- let progress = 0;
21
- let total = 0;
22
- let setInProgress = false;
23
- const updateProgress = () => {
24
- if (!setInProgress) {
25
- setInProgress = true;
26
- setTimeout(() => {
27
- stream.emit('progress', progress);
28
- setInProgress = false;
29
- }, 250);
30
- }
31
- };
32
- stream.on('end', () => {
33
- progress = 1;
34
- updateProgress();
35
- });
36
- stream.on('data', (chunk) => {
37
- total += chunk.byteLength;
38
- progress = total / size;
39
- updateProgress();
40
- });
41
- }
42
- };
43
- // only use this if you have individual file else its just all
12
+ // only use this if you have an individual file else its just all
44
13
  const setHeader = (file) => {
45
14
  file.headersSet++;
46
15
  if (file.headersSet === 2) {
@@ -51,10 +20,41 @@ const setHeader = (file) => {
51
20
  const toBuffer = (str, firstWritten) => {
52
21
  return Buffer.from(firstWritten ? str + '\r\n' : str, 'binary');
53
22
  };
54
- exports.default = (ctx, server, payload, route, fn) => {
55
- if (!payload || (!payload && typeof payload !== 'object')) {
56
- payload = {};
23
+ const handleMeta = (file, line, meta, isWriting, promiseQ, fn) => {
24
+ const opts = file.opts;
25
+ opts.name = line.match(/filename="(.*?)"/)?.[1] || 'untitled';
26
+ const firstCommaIndex = meta.indexOf(',');
27
+ if (firstCommaIndex !== -1 && meta.startsWith('size=')) {
28
+ const size = meta.slice(5, firstCommaIndex);
29
+ if (size) {
30
+ const sizeNr = Number(size);
31
+ file.opts.size = sizeNr;
32
+ file.stream.size = sizeNr;
33
+ }
34
+ const payloadRaw = decodeURI(meta.slice(firstCommaIndex + 1));
35
+ if (payloadRaw !== undefined && payloadRaw !== '') {
36
+ try {
37
+ file.opts.payload = JSON.parse(payloadRaw);
38
+ }
39
+ catch (err) {
40
+ file.opts.payload = payloadRaw;
41
+ }
42
+ }
43
+ }
44
+ isWriting = setHeader(file);
45
+ if (isWriting) {
46
+ promiseQ.push(fn({
47
+ payload: file.opts.payload || {},
48
+ fileName: file.opts.name,
49
+ mimeType: file.opts.type,
50
+ extension: file.opts.extension,
51
+ size: file.opts.size || 0,
52
+ stream: file.stream,
53
+ }));
57
54
  }
55
+ return isWriting;
56
+ };
57
+ exports.default = (ctx, server, route, fn) => {
58
58
  const files = [];
59
59
  const contentLength = ctx.session.headers['content-length'];
60
60
  const promiseQ = [];
@@ -62,6 +62,7 @@ exports.default = (ctx, server, payload, route, fn) => {
62
62
  let boundary = null;
63
63
  let prevLine;
64
64
  let isWriting = false;
65
+ let collectMeta;
65
66
  let total = 0;
66
67
  let progress = 0;
67
68
  ctx.session.res.onData((chunk, isLast) => {
@@ -88,7 +89,6 @@ exports.default = (ctx, server, payload, route, fn) => {
88
89
  if (progress === 1) {
89
90
  file.isDone = true;
90
91
  }
91
- file.stream.emit('progress', progress);
92
92
  }
93
93
  }
94
94
  setInProgress = false;
@@ -115,9 +115,6 @@ exports.default = (ctx, server, payload, route, fn) => {
115
115
  else {
116
116
  file.stream.end();
117
117
  }
118
- if (!file.opts.size && !file.isDone) {
119
- file.stream.emit('progress', 1);
120
- }
121
118
  file.isDone = true;
122
119
  prevLine = null;
123
120
  if (line === boundary + '--') {
@@ -136,36 +133,31 @@ exports.default = (ctx, server, payload, route, fn) => {
136
133
  }
137
134
  const file = files[files.length - 1];
138
135
  if (!file) {
139
- // TODO: invalid file
136
+ // TODO: invalid file error
140
137
  return (0, sendError_1.sendError)(server, ctx, error_1.BasedErrorCode.InvalidPayload, route);
141
138
  }
142
- if (!isWriting && line.includes('Content-Disposition')) {
143
- const meta = line.match(/name="(.*?)"/)?.[1];
139
+ if (!isWriting && collectMeta) {
140
+ const fullMeta = collectMeta + line;
141
+ const meta = fullMeta.match(/name="(.*?)"/)?.[1];
144
142
  if (!meta) {
145
- // TODO: invalid file
146
- return (0, sendError_1.sendError)(server, ctx, error_1.BasedErrorCode.InvalidPayload, route);
143
+ collectMeta = fullMeta;
144
+ continue;
147
145
  }
148
- const opts = file.opts;
149
- opts.name = line.match(/filename="(.*?)"/)?.[1] || 'untitled';
150
- const disposition = meta.split('|');
151
- for (const seg of disposition) {
152
- if (/=/.test(seg)) {
153
- const [k, v] = seg.split('=');
154
- if (k === 'size') {
155
- opts[k] = Number(v);
156
- }
157
- else {
158
- opts[k] = v;
159
- }
146
+ collectMeta = '';
147
+ isWriting = handleMeta(file, line, meta, isWriting, promiseQ, fn);
148
+ continue;
149
+ }
150
+ if (!collectMeta && !isWriting && line.includes('Content-Disposition')) {
151
+ const meta = line.match(/name="(.*?)"/)?.[1];
152
+ if (!meta) {
153
+ if (/name="(.*?)/.test(line)) {
154
+ collectMeta = line;
155
+ continue;
160
156
  }
157
+ // TODO: invalid file error
158
+ return (0, sendError_1.sendError)(server, ctx, error_1.BasedErrorCode.InvalidPayload, route);
161
159
  }
162
- if (opts.size) {
163
- streamProgress(file.stream, opts.size);
164
- }
165
- isWriting = setHeader(file);
166
- if (isWriting) {
167
- promiseQ.push(fn({ payload: { ...payload, ...file.opts }, stream: file.stream }));
168
- }
160
+ isWriting = handleMeta(file, line, meta, isWriting, promiseQ, fn);
169
161
  continue;
170
162
  }
171
163
  if (!isWriting && line.includes('Content-Type')) {
@@ -175,10 +167,20 @@ exports.default = (ctx, server, payload, route, fn) => {
175
167
  return (0, sendError_1.sendError)(server, ctx, error_1.BasedErrorCode.InvalidPayload, route);
176
168
  }
177
169
  file.opts.type = mimeType;
178
- file.opts.extension = (0, getExtension_1.default)(mimeType);
170
+ const extension = (0, getExtension_1.default)(mimeType);
171
+ if (extension) {
172
+ file.opts.extension = extension;
173
+ }
179
174
  isWriting = setHeader(file);
180
175
  if (isWriting) {
181
- promiseQ.push(fn({ payload: { ...payload, ...file.opts }, stream: file.stream }));
176
+ promiseQ.push(fn({
177
+ payload: file.opts.payload,
178
+ fileName: file.opts.name,
179
+ mimeType: file.opts.type,
180
+ extension: file.opts.extension,
181
+ size: file.opts.size,
182
+ stream: file.stream,
183
+ }));
182
184
  }
183
185
  continue;
184
186
  }
@@ -194,7 +196,7 @@ exports.default = (ctx, server, payload, route, fn) => {
194
196
  Promise.allSettled(promiseQ).then((results) => {
195
197
  const r = results.map((v) => {
196
198
  if (v.status === 'rejected') {
197
- return { err: v.reason };
199
+ return v.reason;
198
200
  }
199
201
  else {
200
202
  return v.value;
@@ -1 +1 @@
1
- {"version":3,"file":"multipartStream.js","sourceRoot":"","sources":["../../../../src/incoming/http/streamFunction/multipartStream.ts"],"names":[],"mappings":";;;;;AAAA,6CAAyC;AAEzC,0CAA+C;AAC/C,kDAA8C;AAC9C,gEAA4D;AAC5D,kEAAyC;AAIzC,MAAM,cAAc,GAAG,IAAI,GAAG,IAAI,GAAG,CAAC,CAAA;AAgBtC,MAAM,cAAc,GAAG,CAAC,MAAkB,EAAE,IAAY,EAAE,EAAE;IAC1D,MAAM,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC,CAAA;IAC1B,IAAI,IAAI,GAAG,MAAM,EAAE;QACjB,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE;YACpB,MAAM,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC,CAAA;QAC5B,CAAC,CAAC,CAAA;KACH;SAAM;QACL,IAAI,QAAQ,GAAG,CAAC,CAAA;QAChB,IAAI,KAAK,GAAG,CAAC,CAAA;QACb,IAAI,aAAa,GAAG,KAAK,CAAA;QACzB,MAAM,cAAc,GAAG,GAAG,EAAE;YAC1B,IAAI,CAAC,aAAa,EAAE;gBAClB,aAAa,GAAG,IAAI,CAAA;gBACpB,UAAU,CAAC,GAAG,EAAE;oBACd,MAAM,CAAC,IAAI,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAA;oBACjC,aAAa,GAAG,KAAK,CAAA;gBACvB,CAAC,EAAE,GAAG,CAAC,CAAA;aACR;QACH,CAAC,CAAA;QACD,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE;YACpB,QAAQ,GAAG,CAAC,CAAA;YACZ,cAAc,EAAE,CAAA;QAClB,CAAC,CAAC,CAAA;QACF,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE;YAC1B,KAAK,IAAI,KAAK,CAAC,UAAU,CAAA;YACzB,QAAQ,GAAG,KAAK,GAAG,IAAI,CAAA;YACvB,cAAc,EAAE,CAAA;QAClB,CAAC,CAAC,CAAA;KACH;AACH,CAAC,CAAA;AAED,8DAA8D;AAC9D,MAAM,SAAS,GAAG,CAAC,IAAoB,EAAW,EAAE;IAClD,IAAI,CAAC,UAAU,EAAE,CAAA;IACjB,IAAI,IAAI,CAAC,UAAU,KAAK,CAAC,EAAE;QACzB,OAAO,IAAI,CAAA;KACZ;IACD,OAAO,KAAK,CAAA;AACd,CAAC,CAAA;AAED,MAAM,QAAQ,GAAG,CAAC,GAAW,EAAE,YAAqB,EAAU,EAAE;IAC9D,OAAO,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,GAAG,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAA;AACjE,CAAC,CAAA;AAED,kBAAe,CACb,GAAyB,EACzB,MAAmB,EACnB,OAAY,EACZ,KAAyB,EACzB,EAAkC,EAClC,EAAE;IACF,IAAI,CAAC,OAAO,IAAI,CAAC,CAAC,OAAO,IAAI,OAAO,OAAO,KAAK,QAAQ,CAAC,EAAE;QACzD,OAAO,GAAG,EAAE,CAAA;KACb;IAED,MAAM,KAAK,GAAqB,EAAE,CAAA;IAElC,MAAM,aAAa,GAAG,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAA;IAE3D,MAAM,QAAQ,GAAmB,EAAE,CAAA;IAEnC,IAAI,aAAa,GAAG,KAAK,CAAA;IACzB,IAAI,QAAQ,GAAG,IAAI,CAAA;IACnB,IAAI,QAAgB,CAAA;IACpB,IAAI,SAAS,GAAG,KAAK,CAAA;IACrB,IAAI,KAAK,GAAG,CAAC,CAAA;IACb,IAAI,QAAQ,GAAG,CAAC,CAAA;IAEhB,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE;QACvC,4CAA4C;QAC5C,IAAI,KAAK,CAAC,UAAU,GAAG,cAAc,EAAE;YACrC,IAAA,qBAAS,EAAC,MAAM,EAAE,GAAG,EAAE,sBAAc,CAAC,aAAa,EAAE,KAAK,CAAC,CAAA;YAC3D,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE;gBACxB,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAA;aACtB;YACD,OAAM;SACP;QAED,IAAI,YAAY,GAAG,KAAK,CAAA;QACxB,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;QAClE,KAAK,IAAI,KAAK,CAAC,UAAU,CAAA;QAEzB,QAAQ,GAAG,KAAK,GAAG,aAAa,CAAA;QAEhC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE;YACxB,IAAI,IAAI,CAAC,UAAU,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;gBAC1D,IAAI,aAAa,GAAG,MAAM,EAAE;oBAC1B,IAAI,CAAC,aAAa,EAAE;wBAClB,aAAa,GAAG,IAAI,CAAA;wBACpB,UAAU,CAAC,GAAG,EAAE;4BACd,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE;gCACxB,IAAI,IAAI,CAAC,UAAU,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;oCAC1D,IAAI,QAAQ,KAAK,CAAC,EAAE;wCAClB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAA;qCACnB;oCACD,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAA;iCACvC;6BACF;4BACD,aAAa,GAAG,KAAK,CAAA;wBACvB,CAAC,EAAE,GAAG,CAAC,CAAA;qBACR;oBACD,MAAK;iBACN;aACF;SACF;QAED,IAAI,CAAC,QAAQ,EAAE;YACb,QAAQ,GAAG,MAAM,CAAC,CAAC,CAAC,CAAA;SACrB;QAED,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACtC,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,CAAA;YAEtB,IAAI,CAAC,QAAQ,EAAE;gBACb,SAAQ;aACT;YAED,IAAI,SAAS,IAAI,CAAC,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,QAAQ,GAAG,IAAI,CAAC,EAAE;gBAChE,SAAS,GAAG,KAAK,CAAA;gBACjB,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAA;gBACpC,IAAI,QAAQ,EAAE;oBACZ,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC,CAAA;iBAClD;qBAAM;oBACL,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,CAAA;iBAClB;gBACD,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;oBACnC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC,CAAA;iBAChC;gBACD,IAAI,CAAC,MAAM,GAAG,IAAI,CAAA;gBAElB,QAAQ,GAAG,IAAI,CAAA;gBACf,IAAI,IAAI,KAAK,QAAQ,GAAG,IAAI,EAAE;oBAC5B,SAAQ;iBACT;aACF;YAED,IAAI,IAAI,KAAK,QAAQ,IAAI,CAAC,SAAS,EAAE;gBACnC,MAAM,IAAI,GAAG;oBACX,MAAM,EAAE,IAAI,uBAAU,EAAE;oBACxB,UAAU,EAAE,CAAC;oBACb,IAAI,EAAE,EAAE;oBACR,MAAM,EAAE,KAAK;iBACd,CAAA;gBACD,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;gBAChB,SAAQ;aACT;YAED,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAA;YAEpC,IAAI,CAAC,IAAI,EAAE;gBACT,qBAAqB;gBACrB,OAAO,IAAA,qBAAS,EAAC,MAAM,EAAE,GAAG,EAAE,sBAAc,CAAC,cAAc,EAAE,KAAK,CAAC,CAAA;aACpE;YAED,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,QAAQ,CAAC,qBAAqB,CAAC,EAAE;gBACtD,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;gBAC5C,IAAI,CAAC,IAAI,EAAE;oBACT,qBAAqB;oBACrB,OAAO,IAAA,qBAAS,EAAC,MAAM,EAAE,GAAG,EAAE,sBAAc,CAAC,cAAc,EAAE,KAAK,CAAC,CAAA;iBACpE;gBACD,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAA;gBACtB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,kBAAkB,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,UAAU,CAAA;gBAC7D,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;gBACnC,KAAK,MAAM,GAAG,IAAI,WAAW,EAAE;oBAC7B,IAAI,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;wBACjB,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;wBAC7B,IAAI,CAAC,KAAK,MAAM,EAAE;4BAChB,IAAI,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAA;yBACpB;6BAAM;4BACL,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAA;yBACZ;qBACF;iBACF;gBACD,IAAI,IAAI,CAAC,IAAI,EAAE;oBACb,cAAc,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,CAAA;iBACvC;gBACD,SAAS,GAAG,SAAS,CAAC,IAAI,CAAC,CAAA;gBAC3B,IAAI,SAAS,EAAE;oBACb,QAAQ,CAAC,IAAI,CACX,EAAE,CAAC,EAAE,OAAO,EAAE,EAAE,GAAG,OAAO,EAAE,GAAG,IAAI,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,CACnE,CAAA;iBACF;gBACD,SAAQ;aACT;YAED,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,EAAE;gBAC/C,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CACzB,8CAA8C,CAC/C,EAAE,CAAC,CAAC,CAAC,CAAA;gBACN,IAAI,CAAC,QAAQ,EAAE;oBACb,0DAA0D;oBAC1D,OAAO,IAAA,qBAAS,EAAC,MAAM,EAAE,GAAG,EAAE,sBAAc,CAAC,cAAc,EAAE,KAAK,CAAC,CAAA;iBACpE;gBACD,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,QAAQ,CAAA;gBACzB,IAAI,CAAC,IAAI,CAAC,SAAS,GAAG,IAAA,sBAAY,EAAC,QAAQ,CAAC,CAAA;gBAC5C,SAAS,GAAG,SAAS,CAAC,IAAI,CAAC,CAAA;gBAC3B,IAAI,SAAS,EAAE;oBACb,QAAQ,CAAC,IAAI,CACX,EAAE,CAAC,EAAE,OAAO,EAAE,EAAE,GAAG,OAAO,EAAE,GAAG,IAAI,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,CACnE,CAAA;iBACF;gBACD,SAAQ;aACT;YAED,IAAI,SAAS,EAAE;gBACb,IAAI,QAAQ,EAAE;oBACZ,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC,CAAA;iBACpD;gBACD,QAAQ,GAAG,IAAI,CAAA;gBACf,YAAY,GAAG,IAAI,CAAA;aACpB;SACF;QAED,IAAI,MAAM,EAAE;YACV,OAAO,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE;gBAC5C,MAAM,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;oBAC1B,IAAI,CAAC,CAAC,MAAM,KAAK,UAAU,EAAE;wBAC3B,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAA;qBACzB;yBAAM;wBACL,OAAO,CAAC,CAAC,KAAK,CAAA;qBACf;gBACH,CAAC,CAAC,CAAA;gBACF,IAAA,mCAAgB,EAAC,GAAG,EAAE,CAAC,CAAC,CAAA;YAC1B,CAAC,CAAC,CAAA;SACH;IACH,CAAC,CAAC,CAAA;AACJ,CAAC,CAAA"}
1
+ {"version":3,"file":"multipartStream.js","sourceRoot":"","sources":["../../../../src/incoming/http/streamFunction/multipartStream.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ import { DataStream } from '../DataStream';
2
+ import { HttpSession, Context } from '@based/functions';
3
+ import { BasedFunctionRoute } from '../../../../functions';
4
+ import { BasedServer } from '../../../../server';
5
+ declare const _default: (server: BasedServer, route: BasedFunctionRoute, ctx: Context<HttpSession>, size: number) => DataStream;
6
+ export default _default;
@@ -0,0 +1,75 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const DataStream_1 = require("../DataStream");
7
+ const sendError_1 = require("../../../../sendError");
8
+ const node_zlib_1 = __importDefault(require("node:zlib"));
9
+ const error_1 = require("../../../../error");
10
+ const MAX_CHUNK_SIZE = 1024 * 1024 * 5;
11
+ const UNCOMPRESS_OPTS = {
12
+ chunkSize: 1024 * 1024 * 5,
13
+ };
14
+ exports.default = (server, route, ctx, size) => {
15
+ const stream = new DataStream_1.DataStream(size);
16
+ const contentEncoding = ctx.session.headers['content-encoding'];
17
+ if (contentEncoding) {
18
+ let uncompressStream;
19
+ if (contentEncoding === 'deflate') {
20
+ uncompressStream = node_zlib_1.default.createInflate(UNCOMPRESS_OPTS);
21
+ }
22
+ else if (contentEncoding === 'gzip') {
23
+ uncompressStream = node_zlib_1.default.createGunzip(UNCOMPRESS_OPTS);
24
+ }
25
+ else if (contentEncoding === 'br') {
26
+ uncompressStream = node_zlib_1.default.createBrotliDecompress(UNCOMPRESS_OPTS);
27
+ }
28
+ if (uncompressStream) {
29
+ ctx.session.res.onData((c, isLast) => {
30
+ if (c.byteLength > MAX_CHUNK_SIZE) {
31
+ (0, sendError_1.sendError)(server, ctx, error_1.BasedErrorCode.ChunkTooLarge, route);
32
+ uncompressStream.destroy();
33
+ stream.destroy();
34
+ return;
35
+ }
36
+ const buf = Buffer.alloc(c.byteLength, Buffer.from(c));
37
+ if (isLast) {
38
+ uncompressStream.end(buf);
39
+ }
40
+ else {
41
+ if (!uncompressStream.write(buf)) {
42
+ // console.info('BACKPRESSURE')
43
+ }
44
+ }
45
+ });
46
+ uncompressStream.on('error', (err) => {
47
+ console.warn('Uncompress error', route, contentEncoding, err);
48
+ (0, sendError_1.sendError)(server, ctx, error_1.BasedErrorCode.ChunkTooLarge, route);
49
+ uncompressStream.destroy();
50
+ stream.destroy();
51
+ });
52
+ uncompressStream.pipe(stream);
53
+ }
54
+ else {
55
+ (0, sendError_1.sendError)(server, ctx, error_1.BasedErrorCode.UnsupportedContentEncoding, route);
56
+ }
57
+ }
58
+ else {
59
+ ctx.session.res.onData((c, isLast) => {
60
+ if (c.byteLength > MAX_CHUNK_SIZE) {
61
+ (0, sendError_1.sendError)(server, ctx, error_1.BasedErrorCode.ChunkTooLarge, route);
62
+ stream.destroy();
63
+ return;
64
+ }
65
+ if (isLast) {
66
+ stream.end(Buffer.from(c));
67
+ }
68
+ else {
69
+ stream.write(Buffer.from(c));
70
+ }
71
+ });
72
+ }
73
+ return stream;
74
+ };
75
+ //# sourceMappingURL=createStream.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"createStream.js","sourceRoot":"","sources":["../../../../../src/incoming/http/streamFunction/stream/createStream.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import { BasedServer } from '../../../../server';
2
+ import { BasedStreamFunctionRoute } from '../../../../functions';
3
+ import { HttpSession, Context } from '@based/functions';
4
+ export declare const singleStream: (server: BasedServer, ctx: Context<HttpSession>, route: BasedStreamFunctionRoute, type: string, size: number) => void;
@@ -0,0 +1,70 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.singleStream = void 0;
7
+ const createStream_1 = __importDefault(require("./createStream"));
8
+ const sendError_1 = require("../../../../sendError");
9
+ const getExtension_1 = __importDefault(require("../getExtension"));
10
+ const error_1 = require("../../../../error");
11
+ const sendHttpResponse_1 = require("../../../../sendHttpResponse");
12
+ const mime_types_1 = __importDefault(require("mime-types"));
13
+ const utils_1 = require("@saulx/utils");
14
+ const installFn_1 = require("../../../../installFn");
15
+ const authorize_1 = require("../../../../authorize");
16
+ const singleStream = (server, ctx, route, type, size) => {
17
+ const extension = ctx.session.req.getHeader('content-extension');
18
+ if (extension) {
19
+ const mime = mime_types_1.default.lookup(extension);
20
+ if (mime) {
21
+ type = ctx.session.headers['content-type'] = mime;
22
+ }
23
+ }
24
+ const stream = (0, createStream_1.default)(server, route, ctx, size);
25
+ let payload;
26
+ if ('query' in ctx.session) {
27
+ try {
28
+ payload = (0, utils_1.parseQuery)(decodeURIComponent(ctx.session.query));
29
+ }
30
+ catch (err) { }
31
+ }
32
+ const streamPayload = {
33
+ payload,
34
+ stream,
35
+ size,
36
+ mimeType: type,
37
+ extension: (0, getExtension_1.default)(type) || '',
38
+ };
39
+ (0, authorize_1.authorize)(route, server, ctx, payload, () => {
40
+ (0, installFn_1.installFn)(server, ctx, route).then((spec) => {
41
+ if (spec === null) {
42
+ stream.destroy();
43
+ return;
44
+ }
45
+ const fn = spec.function;
46
+ fn(server.client, streamPayload, ctx)
47
+ .catch((err) => {
48
+ // stream.destroy()
49
+ (0, sendError_1.sendError)(server, ctx, error_1.BasedErrorCode.FunctionError, {
50
+ err,
51
+ route,
52
+ });
53
+ })
54
+ .then((r) => {
55
+ if (stream.readableEnded || stream.listenerCount('data') === 0) {
56
+ (0, sendHttpResponse_1.sendHttpResponse)(ctx, r);
57
+ }
58
+ else {
59
+ stream.on('end', () => {
60
+ (0, sendHttpResponse_1.sendHttpResponse)(ctx, r);
61
+ });
62
+ }
63
+ });
64
+ });
65
+ }, undefined, undefined, () => {
66
+ stream.destroy();
67
+ });
68
+ };
69
+ exports.singleStream = singleStream;
70
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/incoming/http/streamFunction/stream/index.ts"],"names":[],"mappings":";;;;;;AAAA,kEAA6C;AAE7C,qDAAiD;AACjD,mEAA0C;AAG1C,6CAAkD;AAClD,mEAA+D;AAC/D,4DAAkC;AAClC,wCAAyC;AACzC,qDAAiD;AACjD,qDAAiD;AAE1C,MAAM,YAAY,GAAG,CAC1B,MAAmB,EACnB,GAAyB,EACzB,KAA+B,EAC/B,IAAY,EACZ,IAAY,EACZ,EAAE;IACF,MAAM,SAAS,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,mBAAmB,CAAC,CAAA;IAChE,IAAI,SAAS,EAAE;QACb,MAAM,IAAI,GAAG,oBAAS,CAAC,MAAM,CAAC,SAAS,CAAC,CAAA;QACxC,IAAI,IAAI,EAAE;YACR,IAAI,GAAG,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,cAAc,CAAC,GAAG,IAAI,CAAA;SAClD;KACF;IAED,MAAM,MAAM,GAAG,IAAA,sBAAgB,EAAC,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,CAAC,CAAA;IAEzD,IAAI,OAAY,CAAA;IAChB,IAAI,OAAO,IAAI,GAAG,CAAC,OAAO,EAAE;QAC1B,IAAI;YACF,OAAO,GAAG,IAAA,kBAAU,EAAC,kBAAkB,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAA;SAC5D;QAAC,OAAO,GAAG,EAAE,GAAE;KACjB;IAED,MAAM,aAAa,GAAkB;QACnC,OAAO;QACP,MAAM;QACN,IAAI;QACJ,QAAQ,EAAE,IAAI;QACd,SAAS,EAAE,IAAA,sBAAY,EAAC,IAAI,CAAC,IAAI,EAAE;KACpC,CAAA;IAED,IAAA,qBAAS,EACP,KAAK,EACL,MAAM,EACN,GAAG,EACH,OAAO,EACP,GAAG,EAAE;QACH,IAAA,qBAAS,EAAC,MAAM,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE;YAC1C,IAAI,IAAI,KAAK,IAAI,EAAE;gBACjB,MAAM,CAAC,OAAO,EAAE,CAAA;gBAChB,OAAM;aACP;YACD,MAAM,EAAE,GAAG,IAAI,CAAC,QAAQ,CAAA;YACxB,EAAE,CAAC,MAAM,CAAC,MAAM,EAAE,aAAa,EAAE,GAAG,CAAC;iBAClC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;gBACb,mBAAmB;gBACnB,IAAA,qBAAS,EAAC,MAAM,EAAE,GAAG,EAAE,sBAAc,CAAC,aAAa,EAAE;oBACnD,GAAG;oBACH,KAAK;iBACN,CAAC,CAAA;YACJ,CAAC,CAAC;iBACD,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE;gBACV,IAAI,MAAM,CAAC,aAAa,IAAI,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE;oBAC9D,IAAA,mCAAgB,EAAC,GAAG,EAAE,CAAC,CAAC,CAAA;iBACzB;qBAAM;oBACL,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE;wBACpB,IAAA,mCAAgB,EAAC,GAAG,EAAE,CAAC,CAAC,CAAA;oBAC1B,CAAC,CAAC,CAAA;iBACH;YACH,CAAC,CAAC,CAAA;QACN,CAAC,CAAC,CAAA;IACJ,CAAC,EACD,SAAS,EACT,SAAS,EACT,GAAG,EAAE;QACH,MAAM,CAAC,OAAO,EAAE,CAAA;IAClB,CAAC,CACF,CAAA;AACH,CAAC,CAAA;AArEY,QAAA,YAAY,gBAqExB"}
@@ -1,5 +1,5 @@
1
1
  import { DataStream } from './DataStream';
2
- import { HttpSession, Context } from '../../../context';
2
+ import { HttpSession, Context } from '@based/functions';
3
3
  import { BasedFunctionRoute } from '../../../functions';
4
4
  import { BasedServer } from '../../../server';
5
5
  declare const _default: (server: BasedServer, route: BasedFunctionRoute, ctx: Context<HttpSession>, size: number) => DataStream;
@@ -1,3 +1,3 @@
1
1
  import type { BasedServer, ServerOptions } from '../server';
2
- declare const _default: (server: BasedServer, { key, cert, port, ws: wsListeners }: ServerOptions) => void;
2
+ declare const _default: (server: BasedServer, { key, cert, port, ws: wsListeners, disableRest }: ServerOptions) => void;
3
3
  export default _default;
@@ -9,7 +9,7 @@ const ws_1 = require("./ws");
9
9
  const observable_1 = require("../observable");
10
10
  const http_1 = require("./http");
11
11
  const auth_1 = require("./ws/auth");
12
- exports.default = (server, { key, cert, port, ws: wsListeners }) => {
12
+ exports.default = (server, { key, cert, port, ws: wsListeners, disableRest }) => {
13
13
  const app = key && cert
14
14
  ? uws_1.default.SSLApp({
15
15
  key_file_name: key,
@@ -26,11 +26,11 @@ exports.default = (server, { key, cert, port, ws: wsListeners }) => {
26
26
  close: () => undefined,
27
27
  };
28
28
  }
29
- app
30
- .ws('/*', {
29
+ app.ws('/*', {
31
30
  maxPayloadLength: 1024 * 1024 * 10,
32
31
  idleTimeout: 100,
33
32
  maxBackpressure: 1024,
33
+ // No compression handled in the protocol
34
34
  // compression: uws.SHARED_COMPRESSOR,
35
35
  upgrade: server.auth?.authorizeConnection
36
36
  ? (res, req, ctx) => {
@@ -49,13 +49,12 @@ exports.default = (server, { key, cert, port, ws: wsListeners }) => {
49
49
  };
50
50
  ws.c = ctx;
51
51
  wsListeners.open(ctx);
52
- if (ctx.session.authState) {
53
- (0, auth_1.sendAuthMessage)(ctx);
52
+ if (ctx.session.authState.token || ctx.session.authState.refreshToken) {
53
+ (0, auth_1.sendAndVerifyAuthMessage)(server, ctx);
54
54
  }
55
55
  }
56
56
  },
57
57
  close: (ws) => {
58
- console.info('CLOSE!');
59
58
  // cl--
60
59
  ws.obs.forEach((id) => {
61
60
  (0, observable_1.unsubscribeWsIgnoreClient)(server, id, ws.c);
@@ -74,11 +73,14 @@ exports.default = (server, { key, cert, port, ws: wsListeners }) => {
74
73
  // ws.client.drain()
75
74
  // }
76
75
  },
77
- })
78
- // REST
79
- .get('/*', (res, req) => (0, http_1.httpHandler)(server, req, res))
80
- .post('/*', (res, req) => (0, http_1.httpHandler)(server, req, res))
81
- .options('/*', (res, req) => (0, http_1.httpHandler)(server, req, res));
76
+ });
77
+ if (!disableRest) {
78
+ app.get('/*', (res, req) => (0, http_1.httpHandler)(server, req, res));
79
+ app.post('/*', (res, req) => (0, http_1.httpHandler)(server, req, res));
80
+ app.options('/*', (res, req) => (0, http_1.httpHandler)(server, req, res));
81
+ }
82
+ // REST make this configurable
83
+ // .options('/*', (res, req) => httpHandler(server, req, res))
82
84
  server.uwsApp = app;
83
85
  };
84
86
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/incoming/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/incoming/index.ts"],"names":[],"mappings":"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"}
@@ -4,14 +4,25 @@ exports.upgradeAuthorize = exports.upgrade = void 0;
4
4
  const auth_1 = require("../auth");
5
5
  const security_1 = require("../security");
6
6
  const ip_1 = require("../ip");
7
+ const error_1 = require("../error");
7
8
  let clientId = 0;
8
- const upgradeInternal = (res, req,
9
+ const upgradeInternal = (server, res, req,
9
10
  // eslint-disable-next-line
10
11
  ctx, ip) => {
11
- const query = req.getQuery(); // encode
12
+ const secWebSocketProtocol = req.getHeader('sec-websocket-protocol');
12
13
  const ua = req.getHeader('user-agent');
14
+ if (!secWebSocketProtocol) {
15
+ server.emit('error', {
16
+ session: {
17
+ ua,
18
+ ip,
19
+ },
20
+ }, { code: error_1.BasedErrorCode.MissingAuthStateProtocolHeader });
21
+ res.close();
22
+ return;
23
+ }
24
+ const query = req.getQuery();
13
25
  const secWebSocketKey = req.getHeader('sec-websocket-key');
14
- const secWebSocketProtocol = req.getHeader('sec-websocket-protocol');
15
26
  const secWebSocketExtensions = req.getHeader('sec-websocket-extensions');
16
27
  res.writeStatus('101 Switching Protocols');
17
28
  res.upgrade({
@@ -19,9 +30,7 @@ ctx, ip) => {
19
30
  ua,
20
31
  ip,
21
32
  id: ++clientId,
22
- authState: secWebSocketProtocol
23
- ? (0, auth_1.parseAuthState)(decodeURI(secWebSocketProtocol))
24
- : undefined,
33
+ authState: (0, auth_1.parseAuthState)(secWebSocketProtocol),
25
34
  obs: new Set(),
26
35
  unauthorizedObs: new Set(),
27
36
  }, secWebSocketKey, secWebSocketProtocol, secWebSocketExtensions, ctx);
@@ -33,7 +42,7 @@ ctx) => {
33
42
  if ((0, security_1.blockIncomingRequest)(server, ip, res, req, server.rateLimit.ws, 10)) {
34
43
  return;
35
44
  }
36
- upgradeInternal(res, req, ctx, ip);
45
+ upgradeInternal(server, res, req, ctx, ip);
37
46
  };
38
47
  exports.upgrade = upgrade;
39
48
  const upgradeAuthorize = (server, res, req,
@@ -47,12 +56,12 @@ ctx) => {
47
56
  if ((0, security_1.blockIncomingRequest)(server, ip, res, req, server.rateLimit.ws, 10)) {
48
57
  return;
49
58
  }
50
- server.auth.authorizeConnection(req).then((authorized) => {
59
+ server.auth.authorizeConnection(server.client, req).then((authorized) => {
51
60
  if (aborted) {
52
61
  return;
53
62
  }
54
63
  if (authorized) {
55
- upgradeInternal(res, req, ctx, ip);
64
+ upgradeInternal(server, res, req, ctx, ip);
56
65
  }
57
66
  else {
58
67
  res.writeStatus('401 Unauthorized');
@@ -1 +1 @@
1
- {"version":3,"file":"upgrade.js","sourceRoot":"","sources":["../../src/incoming/upgrade.ts"],"names":[],"mappings":";;;AACA,kCAAwC;AAExC,0CAAkD;AAElD,8BAA6B;AAE7B,IAAI,QAAQ,GAAG,CAAC,CAAA;AAEhB,MAAM,eAAe,GAAG,CACtB,GAAqB,EACrB,GAAoB;AACpB,2BAA2B;AAC3B,GAA4B,EAC5B,EAAU,EACV,EAAE;IACF,MAAM,KAAK,GAAG,GAAG,CAAC,QAAQ,EAAE,CAAA,CAAC,SAAS;IACtC,MAAM,EAAE,GAAG,GAAG,CAAC,SAAS,CAAC,YAAY,CAAC,CAAA;IACtC,MAAM,eAAe,GAAG,GAAG,CAAC,SAAS,CAAC,mBAAmB,CAAC,CAAA;IAC1D,MAAM,oBAAoB,GAAG,GAAG,CAAC,SAAS,CAAC,wBAAwB,CAAC,CAAA;IACpE,MAAM,sBAAsB,GAAG,GAAG,CAAC,SAAS,CAAC,0BAA0B,CAAC,CAAA;IACxE,GAAG,CAAC,WAAW,CAAC,yBAAyB,CAAC,CAAA;IAC1C,GAAG,CAAC,OAAO,CACS;QAChB,KAAK;QACL,EAAE;QACF,EAAE;QACF,EAAE,EAAE,EAAE,QAAQ;QACd,SAAS,EAAE,oBAAoB;YAC7B,CAAC,CAAC,IAAA,qBAAc,EAAC,SAAS,CAAC,oBAAoB,CAAC,CAAC;YACjD,CAAC,CAAC,SAAS;QACb,GAAG,EAAE,IAAI,GAAG,EAAE;QACd,eAAe,EAAE,IAAI,GAAG,EAAE;KAC3B,EACD,eAAe,EACf,oBAAoB,EACpB,sBAAsB,EACtB,GAAG,CACJ,CAAA;AACH,CAAC,CAAA;AAEM,MAAM,OAAO,GAAG,CACrB,MAAmB,EACnB,GAAqB,EACrB,GAAoB;AACpB,2BAA2B;AAC3B,GAA4B,EAC5B,EAAE;IACF,MAAM,EAAE,GAAG,IAAA,UAAK,EAAC,GAAG,CAAC,CAAA;IACrB,IAAI,IAAA,+BAAoB,EAAC,MAAM,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE;QACvE,OAAM;KACP;IACD,eAAe,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,CAAA;AACpC,CAAC,CAAA;AAZY,QAAA,OAAO,WAYnB;AAEM,MAAM,gBAAgB,GAAG,CAC9B,MAAmB,EACnB,GAAqB,EACrB,GAAoB;AACpB,2BAA2B;AAC3B,GAA4B,EAC5B,EAAE;IACF,IAAI,OAAO,GAAG,KAAK,CAAA;IACnB,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE;QACjB,OAAO,GAAG,IAAI,CAAA;IAChB,CAAC,CAAC,CAAA;IACF,MAAM,EAAE,GAAG,IAAA,UAAK,EAAC,GAAG,CAAC,CAAA;IACrB,IAAI,IAAA,+BAAoB,EAAC,MAAM,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE;QACvE,OAAM;KACP;IACD,MAAM,CAAC,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,EAAE;QACvD,IAAI,OAAO,EAAE;YACX,OAAM;SACP;QACD,IAAI,UAAU,EAAE;YACd,eAAe,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,CAAA;SACnC;aAAM;YACL,GAAG,CAAC,WAAW,CAAC,kBAAkB,CAAC,CAAA;YACnC,GAAG,CAAC,GAAG,EAAE,CAAA;SACV;IACH,CAAC,CAAC,CAAA;AACJ,CAAC,CAAA;AA1BY,QAAA,gBAAgB,oBA0B5B"}
1
+ {"version":3,"file":"upgrade.js","sourceRoot":"","sources":["../../src/incoming/upgrade.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import { BasedServer } from '../../server';
2
- import { WebSocketSession, Context } from '../../context';
3
- export declare type AuthState = any;
4
- export declare const authMessage: (arr: Uint8Array, start: number, len: number, isDeflate: boolean, ctx: Context<WebSocketSession>, server: BasedServer) => boolean;
5
- export declare const sendAuthMessage: (ctx: Context<WebSocketSession>) => void;
2
+ import { WebSocketSession, Context } from '@based/functions';
3
+ import { BinaryMessageHandler } from './types';
4
+ export declare const authMessage: BinaryMessageHandler;
5
+ export declare const sendAndVerifyAuthMessage: (server: BasedServer, ctx: Context<WebSocketSession>) => void;