@based/server 4.0.1 → 4.0.3

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 (438) 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 +31 -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 copy.d.ts +3 -0
  27. package/dist/functionApi/callFunction copy.js +29 -0
  28. package/dist/functionApi/callFunction copy.js.map +1 -0
  29. package/dist/functionApi/callFunction.d.ts +3 -0
  30. package/dist/functionApi/callFunction.js +29 -0
  31. package/dist/functionApi/callFunction.js.map +1 -0
  32. package/dist/functionApi/client/index.d.ts +17 -0
  33. package/dist/functionApi/client/index.js +54 -0
  34. package/dist/functionApi/client/index.js.map +1 -0
  35. package/dist/functionApi/client/query.d.ts +11 -0
  36. package/dist/functionApi/client/query.js +32 -0
  37. package/dist/functionApi/client/query.js.map +1 -0
  38. package/dist/functionApi/get.d.ts +3 -0
  39. package/dist/functionApi/get.js +71 -0
  40. package/dist/functionApi/get.js.map +1 -0
  41. package/dist/functionApi/index.d.ts +5 -0
  42. package/dist/functionApi/index.js +25 -0
  43. package/dist/functionApi/index.js.map +1 -0
  44. package/dist/functionApi/observe.d.ts +4 -0
  45. package/dist/functionApi/observe.js +44 -0
  46. package/dist/functionApi/observe.js.map +1 -0
  47. package/dist/functionApi/stream.d.ts +3 -0
  48. package/dist/functionApi/stream.js +30 -0
  49. package/dist/functionApi/stream.js.map +1 -0
  50. package/dist/functions/index.d.ts +16 -8
  51. package/dist/functions/index.js +39 -10
  52. package/dist/functions/index.js.map +1 -1
  53. package/dist/functions/timeout.d.ts +3 -3
  54. package/dist/functions/timeout.js.map +1 -1
  55. package/dist/functions/types.d.ts +45 -31
  56. package/dist/functions/types.js +40 -12
  57. package/dist/functions/types.js.map +1 -1
  58. package/dist/incoming/http/function.d.ts +3 -4
  59. package/dist/incoming/http/function.js +29 -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 +44 -43
  63. package/dist/incoming/http/get.js.map +1 -1
  64. package/dist/incoming/http/index.js +50 -31
  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/query.d.ts +4 -0
  70. package/dist/incoming/http/query.js +165 -0
  71. package/dist/incoming/http/query.js.map +1 -0
  72. package/dist/incoming/http/readBody.d.ts +4 -3
  73. package/dist/incoming/http/readBody.js +32 -8
  74. package/dist/incoming/http/readBody.js.map +1 -1
  75. package/dist/incoming/http/streamFunction/DataStream.d.ts +8 -0
  76. package/dist/incoming/http/streamFunction/DataStream.js +42 -3
  77. package/dist/incoming/http/streamFunction/DataStream.js.map +1 -1
  78. package/dist/incoming/http/streamFunction/getExtension.d.ts +1 -1
  79. package/dist/incoming/http/streamFunction/index.d.ts +3 -3
  80. package/dist/incoming/http/streamFunction/index.js +6 -87
  81. package/dist/incoming/http/streamFunction/index.js.map +1 -1
  82. package/dist/incoming/http/streamFunction/multiPart/index.d.ts +4 -0
  83. package/dist/incoming/http/streamFunction/multiPart/index.js +66 -0
  84. package/dist/incoming/http/streamFunction/multiPart/index.js.map +1 -0
  85. package/dist/incoming/http/streamFunction/multiPart/readFormData.d.ts +12 -0
  86. package/dist/incoming/http/streamFunction/{multipartStream.js → multiPart/readFormData.js} +80 -86
  87. package/dist/incoming/http/streamFunction/multiPart/readFormData.js.map +1 -0
  88. package/dist/incoming/http/streamFunction/stream/createStream.d.ts +6 -0
  89. package/dist/incoming/http/streamFunction/{stream.js → stream/createStream.js} +5 -38
  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/index.d.ts +1 -1
  95. package/dist/incoming/index.js +13 -11
  96. package/dist/incoming/index.js.map +1 -1
  97. package/dist/incoming/upgrade.js +18 -9
  98. package/dist/incoming/upgrade.js.map +1 -1
  99. package/dist/incoming/ws/auth.d.ts +4 -4
  100. package/dist/incoming/ws/auth.js +37 -19
  101. package/dist/incoming/ws/auth.js.map +1 -1
  102. package/dist/incoming/ws/function.d.ts +2 -3
  103. package/dist/incoming/ws/function.js +21 -73
  104. package/dist/incoming/ws/function.js.map +1 -1
  105. package/dist/incoming/ws/get.d.ts +2 -3
  106. package/dist/incoming/ws/get.js +33 -54
  107. package/dist/incoming/ws/get.js.map +1 -1
  108. package/dist/incoming/ws/index.d.ts +1 -1
  109. package/dist/incoming/ws/index.js +2 -1
  110. package/dist/incoming/ws/index.js.map +1 -1
  111. package/dist/incoming/ws/observable.d.ts +7 -6
  112. package/dist/incoming/ws/observable.js +25 -49
  113. package/dist/incoming/ws/observable.js.map +1 -1
  114. package/dist/incoming/ws/types.d.ts +3 -0
  115. package/dist/{auth → incoming/ws}/types.js +0 -0
  116. package/dist/{auth → incoming/ws}/types.js.map +1 -1
  117. package/dist/index.d.ts +2 -2
  118. package/dist/index.js +2 -2
  119. package/dist/index.js.map +1 -1
  120. package/dist/installFn.d.ts +4 -0
  121. package/dist/installFn.js +94 -0
  122. package/dist/installFn.js.map +1 -0
  123. package/dist/observable/create.d.ts +1 -1
  124. package/dist/observable/create.js +5 -1
  125. package/dist/observable/create.js.map +1 -1
  126. package/dist/observable/destroy.js +1 -1
  127. package/dist/observable/destroy.js.map +1 -1
  128. package/dist/observable/index.d.ts +0 -1
  129. package/dist/observable/index.js +0 -1
  130. package/dist/observable/index.js.map +1 -1
  131. package/dist/observable/send.d.ts +3 -3
  132. package/dist/observable/send.js +2 -8
  133. package/dist/observable/send.js.map +1 -1
  134. package/dist/observable/start/error.d.ts +2 -1
  135. package/dist/observable/start/error.js +13 -11
  136. package/dist/observable/start/error.js.map +1 -1
  137. package/dist/observable/start/index.js +17 -8
  138. package/dist/observable/start/index.js.map +1 -1
  139. package/dist/observable/subscribe.d.ts +3 -3
  140. package/dist/observable/subscribe.js +6 -12
  141. package/dist/observable/subscribe.js.map +1 -1
  142. package/dist/observable/types.d.ts +6 -5
  143. package/dist/observable/unsub.d.ts +1 -1
  144. package/dist/observable/unsub.js.map +1 -1
  145. package/dist/protocol.d.ts +1 -0
  146. package/dist/protocol.js +11 -1
  147. package/dist/protocol.js.map +1 -1
  148. package/dist/security.d.ts +1 -1
  149. package/dist/security.js +1 -1
  150. package/dist/security.js.map +1 -1
  151. package/dist/sendError.d.ts +3 -2
  152. package/dist/sendError.js +30 -16
  153. package/dist/sendError.js.map +1 -1
  154. package/dist/sendHttpResponse.d.ts +3 -2
  155. package/dist/sendHttpResponse.js +62 -10
  156. package/dist/sendHttpResponse.js.map +1 -1
  157. package/dist/server.d.ts +10 -3
  158. package/dist/server.js +16 -4
  159. package/dist/server.js.map +1 -1
  160. package/dist/verifyRoute.d.ts +14 -0
  161. package/dist/verifyRoute.js +99 -0
  162. package/dist/verifyRoute.js.map +1 -0
  163. package/package.json +4 -2
  164. package/dist/BasedServerClient.d.ts +0 -71
  165. package/dist/BasedServerClient.js +0 -390
  166. package/dist/BasedServerClient.js.map +0 -1
  167. package/dist/Client.d.ts +0 -75
  168. package/dist/Client.js +0 -277
  169. package/dist/Client.js.map +0 -1
  170. package/dist/Params.d.ts +0 -20
  171. package/dist/Params.js +0 -48
  172. package/dist/Params.js.map +0 -1
  173. package/dist/api/index.d.ts +0 -7
  174. package/dist/api/index.js +0 -173
  175. package/dist/api/index.js.map +0 -1
  176. package/dist/auth/authorize.d.ts +0 -2
  177. package/dist/auth/authorize.js +0 -8
  178. package/dist/auth/authorize.js.map +0 -1
  179. package/dist/auth/dummyAuth.d.ts +0 -2
  180. package/dist/auth/dummyAuth.js +0 -8
  181. package/dist/auth/dummyAuth.js.map +0 -1
  182. package/dist/auth/types.d.ts +0 -10
  183. package/dist/clientContext.d.ts +0 -0
  184. package/dist/clientContext.js +0 -83
  185. package/dist/clientContext.js.map +0 -1
  186. package/dist/closeListener.d.ts +0 -4
  187. package/dist/closeListener.js +0 -13
  188. package/dist/closeListener.js.map +0 -1
  189. package/dist/context.d.ts +0 -54
  190. package/dist/context.js +0 -18
  191. package/dist/context.js.map +0 -1
  192. package/dist/error.d.ts +0 -66
  193. package/dist/error.js +0 -149
  194. package/dist/error.js.map +0 -1
  195. package/dist/findPrefix.d.ts +0 -3
  196. package/dist/findPrefix.js +0 -20
  197. package/dist/findPrefix.js.map +0 -1
  198. package/dist/functions/workerPool.d.ts +0 -0
  199. package/dist/functions/workerPool.js +0 -5
  200. package/dist/functions/workerPool.js.map +0 -1
  201. package/dist/getFromConfig.d.ts +0 -3
  202. package/dist/getFromConfig.js +0 -50
  203. package/dist/getFromConfig.js.map +0 -1
  204. package/dist/handlers/authorize.d.ts +0 -5
  205. package/dist/handlers/authorize.js +0 -196
  206. package/dist/handlers/authorize.js.map +0 -1
  207. package/dist/handlers/bulkUpdate/index.d.ts +0 -5
  208. package/dist/handlers/bulkUpdate/index.js +0 -26
  209. package/dist/handlers/bulkUpdate/index.js.map +0 -1
  210. package/dist/handlers/configuration/index.d.ts +0 -10
  211. package/dist/handlers/configuration/index.js +0 -74
  212. package/dist/handlers/configuration/index.js.map +0 -1
  213. package/dist/handlers/configuration/observable/index.d.ts +0 -46
  214. package/dist/handlers/configuration/observable/index.js +0 -277
  215. package/dist/handlers/configuration/observable/index.js.map +0 -1
  216. package/dist/handlers/configure/index.d.ts +0 -5
  217. package/dist/handlers/configure/index.js +0 -44
  218. package/dist/handlers/configure/index.js.map +0 -1
  219. package/dist/handlers/copy/index.d.ts +0 -8
  220. package/dist/handlers/copy/index.js +0 -135
  221. package/dist/handlers/copy/index.js.map +0 -1
  222. package/dist/handlers/delete/index.d.ts +0 -5
  223. package/dist/handlers/delete/index.js +0 -34
  224. package/dist/handlers/delete/index.js.map +0 -1
  225. package/dist/handlers/digest/index.d.ts +0 -5
  226. package/dist/handlers/digest/index.js +0 -23
  227. package/dist/handlers/digest/index.js.map +0 -1
  228. package/dist/handlers/functions/call.d.ts +0 -6
  229. package/dist/handlers/functions/call.js +0 -54
  230. package/dist/handlers/functions/call.js.map +0 -1
  231. package/dist/handlers/functions/observable/Observable.d.ts +0 -49
  232. package/dist/handlers/functions/observable/Observable.js +0 -290
  233. package/dist/handlers/functions/observable/Observable.js.map +0 -1
  234. package/dist/handlers/functions/observable/SharedObservable.d.ts +0 -45
  235. package/dist/handlers/functions/observable/SharedObservable.js +0 -291
  236. package/dist/handlers/functions/observable/SharedObservable.js.map +0 -1
  237. package/dist/handlers/functions/observable/index.d.ts +0 -14
  238. package/dist/handlers/functions/observable/index.js +0 -130
  239. package/dist/handlers/functions/observable/index.js.map +0 -1
  240. package/dist/handlers/get/index.d.ts +0 -5
  241. package/dist/handlers/get/index.js +0 -23
  242. package/dist/handlers/get/index.js.map +0 -1
  243. package/dist/handlers/getConfig/index.d.ts +0 -5
  244. package/dist/handlers/getConfig/index.js +0 -38
  245. package/dist/handlers/getConfig/index.js.map +0 -1
  246. package/dist/handlers/handleRequests.d.ts +0 -5
  247. package/dist/handlers/handleRequests.js +0 -78
  248. package/dist/handlers/handleRequests.js.map +0 -1
  249. package/dist/handlers/index.d.ts +0 -4
  250. package/dist/handlers/index.js +0 -49
  251. package/dist/handlers/index.js.map +0 -1
  252. package/dist/handlers/messageParser.d.ts +0 -5
  253. package/dist/handlers/messageParser.js +0 -122
  254. package/dist/handlers/messageParser.js.map +0 -1
  255. package/dist/handlers/removeField/index.d.ts +0 -5
  256. package/dist/handlers/removeField/index.js +0 -42
  257. package/dist/handlers/removeField/index.js.map +0 -1
  258. package/dist/handlers/removeType/index.d.ts +0 -5
  259. package/dist/handlers/removeType/index.js +0 -30
  260. package/dist/handlers/removeType/index.js.map +0 -1
  261. package/dist/handlers/rest/file/DataStream.d.ts +0 -7
  262. package/dist/handlers/rest/file/DataStream.js +0 -17
  263. package/dist/handlers/rest/file/DataStream.js.map +0 -1
  264. package/dist/handlers/rest/file/formStream.d.ts +0 -4
  265. package/dist/handlers/rest/file/formStream.js +0 -188
  266. package/dist/handlers/rest/file/formStream.js.map +0 -1
  267. package/dist/handlers/rest/file/getExtenstion.d.ts +0 -2
  268. package/dist/handlers/rest/file/getExtenstion.js +0 -22
  269. package/dist/handlers/rest/file/getExtenstion.js.map +0 -1
  270. package/dist/handlers/rest/file/index.d.ts +0 -4
  271. package/dist/handlers/rest/file/index.js +0 -53
  272. package/dist/handlers/rest/file/index.js.map +0 -1
  273. package/dist/handlers/rest/file/storeFile.d.ts +0 -6
  274. package/dist/handlers/rest/file/storeFile.js +0 -44
  275. package/dist/handlers/rest/file/storeFile.js.map +0 -1
  276. package/dist/handlers/rest/file/stream.d.ts +0 -5
  277. package/dist/handlers/rest/file/stream.js +0 -104
  278. package/dist/handlers/rest/file/stream.js.map +0 -1
  279. package/dist/handlers/rest/file/types.d.ts +0 -9
  280. package/dist/handlers/rest/file/types.js +0 -3
  281. package/dist/handlers/rest/file/types.js.map +0 -1
  282. package/dist/handlers/rest/getReqMessage.d.ts +0 -3
  283. package/dist/handlers/rest/getReqMessage.js +0 -92
  284. package/dist/handlers/rest/getReqMessage.js.map +0 -1
  285. package/dist/handlers/rest/index.d.ts +0 -4
  286. package/dist/handlers/rest/index.js +0 -121
  287. package/dist/handlers/rest/index.js.map +0 -1
  288. package/dist/handlers/rest/invalidReq.d.ts +0 -4
  289. package/dist/handlers/rest/invalidReq.js +0 -20
  290. package/dist/handlers/rest/invalidReq.js.map +0 -1
  291. package/dist/handlers/rest/parseResponse.d.ts +0 -6
  292. package/dist/handlers/rest/parseResponse.js +0 -230
  293. package/dist/handlers/rest/parseResponse.js.map +0 -1
  294. package/dist/handlers/rest/playground/index.d.ts +0 -5
  295. package/dist/handlers/rest/playground/index.js +0 -308
  296. package/dist/handlers/rest/playground/index.js.map +0 -1
  297. package/dist/handlers/rest/readBody.d.ts +0 -3
  298. package/dist/handlers/rest/readBody.js +0 -45
  299. package/dist/handlers/rest/readBody.js.map +0 -1
  300. package/dist/handlers/set/index.d.ts +0 -5
  301. package/dist/handlers/set/index.js +0 -20
  302. package/dist/handlers/set/index.js.map +0 -1
  303. package/dist/handlers/subscription/index.d.ts +0 -32
  304. package/dist/handlers/subscription/index.js +0 -223
  305. package/dist/handlers/subscription/index.js.map +0 -1
  306. package/dist/handlers/token.d.ts +0 -5
  307. package/dist/handlers/token.js +0 -122
  308. package/dist/handlers/token.js.map +0 -1
  309. package/dist/handlers/track/index.d.ts +0 -7
  310. package/dist/handlers/track/index.js +0 -102
  311. package/dist/handlers/track/index.js.map +0 -1
  312. package/dist/handlers/userAuth/index.d.ts +0 -5
  313. package/dist/handlers/userAuth/index.js +0 -78
  314. package/dist/handlers/userAuth/index.js.map +0 -1
  315. package/dist/incoming/http/authorize.d.ts +0 -4
  316. package/dist/incoming/http/authorize.js +0 -37
  317. package/dist/incoming/http/authorize.js.map +0 -1
  318. package/dist/incoming/http/streamFunction/multipartStream.d.ts +0 -13
  319. package/dist/incoming/http/streamFunction/multipartStream.js.map +0 -1
  320. package/dist/incoming/http/streamFunction/stream.d.ts +0 -6
  321. package/dist/incoming/http/streamFunction/stream.js.map +0 -1
  322. package/dist/network/http/authorize.d.ts +0 -3
  323. package/dist/network/http/authorize.js +0 -28
  324. package/dist/network/http/authorize.js.map +0 -1
  325. package/dist/network/http/compress.d.ts +0 -6
  326. package/dist/network/http/compress.js +0 -56
  327. package/dist/network/http/compress.js.map +0 -1
  328. package/dist/network/http/end.d.ts +0 -4
  329. package/dist/network/http/end.js +0 -19
  330. package/dist/network/http/end.js.map +0 -1
  331. package/dist/network/http/function.d.ts +0 -3
  332. package/dist/network/http/function.js +0 -47
  333. package/dist/network/http/function.js.map +0 -1
  334. package/dist/network/http/get.d.ts +0 -3
  335. package/dist/network/http/get.js +0 -129
  336. package/dist/network/http/get.js.map +0 -1
  337. package/dist/network/http/index.d.ts +0 -3
  338. package/dist/network/http/index.js +0 -122
  339. package/dist/network/http/index.js.map +0 -1
  340. package/dist/network/http/readBody.d.ts +0 -3
  341. package/dist/network/http/readBody.js +0 -112
  342. package/dist/network/http/readBody.js.map +0 -1
  343. package/dist/network/http/send.d.ts +0 -5
  344. package/dist/network/http/send.js +0 -60
  345. package/dist/network/http/send.js.map +0 -1
  346. package/dist/network/http/streamFunction/DataStream.d.ts +0 -7
  347. package/dist/network/http/streamFunction/DataStream.js +0 -19
  348. package/dist/network/http/streamFunction/DataStream.js.map +0 -1
  349. package/dist/network/http/streamFunction/getExtension.d.ts +0 -2
  350. package/dist/network/http/streamFunction/getExtension.js +0 -29
  351. package/dist/network/http/streamFunction/getExtension.js.map +0 -1
  352. package/dist/network/http/streamFunction/index.d.ts +0 -3
  353. package/dist/network/http/streamFunction/index.js +0 -81
  354. package/dist/network/http/streamFunction/index.js.map +0 -1
  355. package/dist/network/http/streamFunction/multipartStream.d.ts +0 -12
  356. package/dist/network/http/streamFunction/multipartStream.js +0 -208
  357. package/dist/network/http/streamFunction/multipartStream.js.map +0 -1
  358. package/dist/network/http/streamFunction/stream.d.ts +0 -5
  359. package/dist/network/http/streamFunction/stream.js +0 -103
  360. package/dist/network/http/streamFunction/stream.js.map +0 -1
  361. package/dist/network/index.d.ts +0 -4
  362. package/dist/network/index.js +0 -84
  363. package/dist/network/index.js.map +0 -1
  364. package/dist/network/message/auth.d.ts +0 -4
  365. package/dist/network/message/auth.js +0 -32
  366. package/dist/network/message/auth.js.map +0 -1
  367. package/dist/network/message/function.d.ts +0 -3
  368. package/dist/network/message/function.js +0 -67
  369. package/dist/network/message/function.js.map +0 -1
  370. package/dist/network/message/get.d.ts +0 -3
  371. package/dist/network/message/get.js +0 -109
  372. package/dist/network/message/get.js.map +0 -1
  373. package/dist/network/message/index.d.ts +0 -3
  374. package/dist/network/message/index.js +0 -62
  375. package/dist/network/message/index.js.map +0 -1
  376. package/dist/network/message/observable.d.ts +0 -5
  377. package/dist/network/message/observable.js +0 -103
  378. package/dist/network/message/observable.js.map +0 -1
  379. package/dist/network/message/send.d.ts +0 -4
  380. package/dist/network/message/send.js +0 -11
  381. package/dist/network/message/send.js.map +0 -1
  382. package/dist/network/upgrade.d.ts +0 -4
  383. package/dist/network/upgrade.js +0 -49
  384. package/dist/network/upgrade.js.map +0 -1
  385. package/dist/network/worker/get.d.ts +0 -0
  386. package/dist/network/worker/get.js +0 -122
  387. package/dist/network/worker/get.js.map +0 -1
  388. package/dist/network/worker/observable.d.ts +0 -0
  389. package/dist/network/worker/observable.js +0 -120
  390. package/dist/network/worker/observable.js.map +0 -1
  391. package/dist/observable/error.d.ts +0 -4
  392. package/dist/observable/error.js +0 -17
  393. package/dist/observable/error.js.map +0 -1
  394. package/dist/observable/verify.d.ts +0 -4
  395. package/dist/observable/verify.js +0 -18
  396. package/dist/observable/verify.js.map +0 -1
  397. package/dist/openListener.d.ts +0 -4
  398. package/dist/openListener.js +0 -13
  399. package/dist/openListener.js.map +0 -1
  400. package/dist/secrets.d.ts +0 -9
  401. package/dist/secrets.js +0 -150
  402. package/dist/secrets.js.map +0 -1
  403. package/dist/security/index.d.ts +0 -3
  404. package/dist/security/index.js +0 -66
  405. package/dist/security/index.js.map +0 -1
  406. package/dist/types.d.ts +0 -129
  407. package/dist/types.js +0 -17
  408. package/dist/types.js.map +0 -1
  409. package/dist/upgradeListener.d.ts +0 -4
  410. package/dist/upgradeListener.js +0 -47
  411. package/dist/upgradeListener.js.map +0 -1
  412. package/dist/worker/authorize.d.ts +0 -5
  413. package/dist/worker/authorize.js +0 -15
  414. package/dist/worker/authorize.js.map +0 -1
  415. package/dist/worker/fnMap.d.ts +0 -2
  416. package/dist/worker/fnMap.js +0 -5
  417. package/dist/worker/fnMap.js.map +0 -1
  418. package/dist/worker/functions.d.ts +0 -3
  419. package/dist/worker/functions.js +0 -8
  420. package/dist/worker/functions.js.map +0 -1
  421. package/dist/worker/http/function.d.ts +0 -4
  422. package/dist/worker/http/function.js +0 -75
  423. package/dist/worker/http/function.js.map +0 -1
  424. package/dist/worker/index.d.ts +0 -1
  425. package/dist/worker/index.js +0 -101
  426. package/dist/worker/index.js.map +0 -1
  427. package/dist/worker/observable.d.ts +0 -15
  428. package/dist/worker/observable.js +0 -110
  429. package/dist/worker/observable.js.map +0 -1
  430. package/dist/worker/ws/function.d.ts +0 -3
  431. package/dist/worker/ws/function.js +0 -42
  432. package/dist/worker/ws/function.js.map +0 -1
  433. package/dist/workers/index.d.ts +0 -0
  434. package/dist/workers/index.js +0 -20
  435. package/dist/workers/index.js.map +0 -1
  436. package/dist/workers/workerCode.d.ts +0 -12
  437. package/dist/workers/workerCode.js +0 -46
  438. package/dist/workers/workerCode.js.map +0 -1
@@ -1,40 +1,58 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.sendAuthMessage = exports.authMessage = void 0;
3
+ exports.sendAndVerifyAuthMessage = exports.authMessage = void 0;
4
4
  const protocol_1 = require("../../protocol");
5
5
  const observable_1 = require("./observable");
6
- const auth_1 = require("../../auth");
7
6
  const security_1 = require("../../security");
7
+ const sendAuthMessage = (ctx, payload) => ctx.session?.send((0, protocol_1.encodeAuthResponse)((0, protocol_1.valueToBuffer)(payload)), true, false);
8
+ const parse = (payload) => {
9
+ try {
10
+ return JSON.parse(payload);
11
+ }
12
+ catch (err) {
13
+ return { error: 'invalid token' };
14
+ }
15
+ };
8
16
  const authMessage = (arr, start, len, isDeflate, ctx, server) => {
9
- // TODO: Check refresh etc here!
10
- // TODO: Allow AUTH to be calleed in http to refresh a token
11
- // include an REQ-ID in the auth request
12
- // | 4 header | * payload |
13
- const authPayload = (0, protocol_1.decodePayload)(new Uint8Array(arr.slice(start + 4, start + len)), isDeflate);
14
- // 10 rate limit tokens for auth (very strange when this gets called often)
15
17
  if ((0, security_1.rateLimitRequest)(server, ctx, 10, server.rateLimit.ws)) {
16
18
  ctx.session.close();
17
19
  return false;
18
20
  }
19
- const authState = (0, auth_1.parseAuthState)(authPayload);
20
- ctx.session.authState = authState;
21
+ // | 4 header | * payload |
22
+ const payload = (0, protocol_1.decodePayload)(new Uint8Array(arr.slice(start + 4, start + len)), isDeflate);
23
+ const authState = parse(payload);
24
+ const verified = server.auth.verifyAuthState(server.client, ctx, authState);
25
+ ctx.session.authState = verified === true ? authState : verified;
26
+ if (verified !== true && verified.error) {
27
+ sendAuthMessage(ctx, verified);
28
+ return true;
29
+ }
21
30
  if (ctx.session.unauthorizedObs.size) {
22
31
  ctx.session.unauthorizedObs.forEach((obs) => {
23
32
  const { id, name, checksum, payload } = obs;
24
- (0, observable_1.enableSubscribe)(server, ctx, id, checksum, name, payload, {
25
- name: 'internal-websocket-auth',
26
- });
33
+ (0, observable_1.enableSubscribe)({
34
+ name,
35
+ query: true,
36
+ }, server, ctx, payload, id, checksum);
27
37
  });
28
38
  ctx.session.unauthorizedObs.clear();
29
39
  }
30
- // TODO needs to call refresh mechanism or something also need that on HTTP
31
- ctx.session.send((0, protocol_1.encodeAuthResponse)((0, protocol_1.valueToBuffer)(true)), true, false);
40
+ sendAuthMessage(ctx, verified);
32
41
  return true;
33
42
  };
34
43
  exports.authMessage = authMessage;
35
- const sendAuthMessage = (ctx) => {
36
- // TODO needs to call refresh mechanism or something
37
- ctx.session.send((0, protocol_1.encodeAuthResponse)((0, protocol_1.valueToBuffer)(true)), true, false);
44
+ // send and verify
45
+ const sendAndVerifyAuthMessage = (server, ctx) => {
46
+ if (!ctx.session) {
47
+ return;
48
+ }
49
+ const verified = server.auth.verifyAuthState(server.client, ctx, ctx.session.authState);
50
+ if (verified === true) {
51
+ sendAuthMessage(ctx, true);
52
+ return;
53
+ }
54
+ ctx.session.authState = verified;
55
+ sendAuthMessage(ctx, verified);
38
56
  };
39
- exports.sendAuthMessage = sendAuthMessage;
57
+ exports.sendAndVerifyAuthMessage = sendAndVerifyAuthMessage;
40
58
  //# sourceMappingURL=auth.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"auth.js","sourceRoot":"","sources":["../../../src/incoming/ws/auth.ts"],"names":[],"mappings":";;;AAAA,6CAIuB;AAGvB,6CAA8C;AAC9C,qCAA2C;AAC3C,6CAAiD;AAI1C,MAAM,WAAW,GAAG,CACzB,GAAe,EACf,KAAa,EACb,GAAW,EACX,SAAkB,EAClB,GAA8B,EAC9B,MAAmB,EACV,EAAE;IACX,gCAAgC;IAChC,4DAA4D;IAC5D,wCAAwC;IAExC,2BAA2B;IAC3B,MAAM,WAAW,GAAG,IAAA,wBAAa,EAC/B,IAAI,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,GAAG,CAAC,CAAC,EACjD,SAAS,CACV,CAAA;IAED,2EAA2E;IAC3E,IAAI,IAAA,2BAAgB,EAAC,MAAM,EAAE,GAAG,EAAE,EAAE,EAAE,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC,EAAE;QAC1D,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE,CAAA;QACnB,OAAO,KAAK,CAAA;KACb;IAED,MAAM,SAAS,GAAc,IAAA,qBAAc,EAAC,WAAW,CAAC,CAAA;IACxD,GAAG,CAAC,OAAO,CAAC,SAAS,GAAG,SAAS,CAAA;IACjC,IAAI,GAAG,CAAC,OAAO,CAAC,eAAe,CAAC,IAAI,EAAE;QACpC,GAAG,CAAC,OAAO,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;YAC1C,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,GAAG,CAAA;YAC3C,IAAA,4BAAe,EAAC,MAAM,EAAE,GAAG,EAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE;gBACxD,IAAI,EAAE,yBAAyB;aAChC,CAAC,CAAA;QACJ,CAAC,CAAC,CAAA;QACF,GAAG,CAAC,OAAO,CAAC,eAAe,CAAC,KAAK,EAAE,CAAA;KACpC;IACD,2EAA2E;IAC3E,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,IAAA,6BAAkB,EAAC,IAAA,wBAAa,EAAC,IAAI,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,CAAA;IACtE,OAAO,IAAI,CAAA;AACb,CAAC,CAAA;AAtCY,QAAA,WAAW,eAsCvB;AAEM,MAAM,eAAe,GAAG,CAAC,GAA8B,EAAE,EAAE;IAChE,oDAAoD;IACpD,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,IAAA,6BAAkB,EAAC,IAAA,wBAAa,EAAC,IAAI,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,CAAA;AACxE,CAAC,CAAA;AAHY,QAAA,eAAe,mBAG3B"}
1
+ {"version":3,"file":"auth.js","sourceRoot":"","sources":["../../../src/incoming/ws/auth.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,2 @@
1
- import { BasedServer } from '../../server';
2
- import { WebSocketSession, Context } from '../../context';
3
- export declare const functionMessage: (arr: Uint8Array, start: number, len: number, isDeflate: boolean, ctx: Context<WebSocketSession>, server: BasedServer) => boolean;
1
+ import { BinaryMessageHandler } from './types';
2
+ export declare const functionMessage: BinaryMessageHandler;
@@ -4,34 +4,24 @@ exports.functionMessage = void 0;
4
4
  const protocol_1 = require("../../protocol");
5
5
  const error_1 = require("../../error");
6
6
  const sendError_1 = require("../../sendError");
7
- const functions_1 = require("../../functions");
8
7
  const security_1 = require("../../security");
9
- const sendFunction = (server, ctx, route, payload, requestId) => {
10
- server.functions
11
- .install(route.name)
12
- .then((spec) => {
13
- if (!ctx.session) {
14
- return;
15
- }
16
- if (spec && !(0, functions_1.isObservableFunctionSpec)(spec)) {
17
- spec
18
- .function(payload, ctx)
19
- .then(async (v) => {
20
- ctx.session?.send((0, protocol_1.encodeFunctionResponse)(requestId, (0, protocol_1.valueToBuffer)(v)), true, false);
21
- })
22
- .catch((err) => {
23
- (0, sendError_1.sendError)(server, ctx, err.code, {
24
- route,
25
- requestId,
26
- err,
27
- });
28
- });
29
- }
8
+ const verifyRoute_1 = require("../../verifyRoute");
9
+ const installFn_1 = require("../../installFn");
10
+ const authorize_1 = require("../../authorize");
11
+ const sendFunction = async (route, server, ctx, payload, requestId) => {
12
+ const spec = await (0, installFn_1.installFn)(server, ctx, route, requestId);
13
+ spec
14
+ ?.function(server.client, payload, ctx)
15
+ .then(async (v) => {
16
+ ctx.session?.send((0, protocol_1.encodeFunctionResponse)(requestId, (0, protocol_1.valueToBuffer)(v)), true, false);
30
17
  })
31
- .catch(() => (0, sendError_1.sendError)(server, ctx, error_1.BasedErrorCode.FunctionNotFound, {
32
- name: route.name,
33
- requestId,
34
- }));
18
+ .catch((err) => {
19
+ (0, sendError_1.sendError)(server, ctx, error_1.BasedErrorCode.FunctionError, {
20
+ route,
21
+ requestId,
22
+ err,
23
+ });
24
+ });
35
25
  };
36
26
  const functionMessage = (arr, start, len, isDeflate, ctx, server) => {
37
27
  // | 4 header | 3 id | 1 name length | * name | * payload |
@@ -41,66 +31,24 @@ const functionMessage = (arr, start, len, isDeflate, ctx, server) => {
41
31
  if (!name || !requestId) {
42
32
  return false;
43
33
  }
44
- const route = server.functions.route(name);
34
+ const route = (0, verifyRoute_1.verifyRoute)(server, ctx, 'fn', server.functions.route(name), name, requestId);
45
35
  // TODO: add strictness setting - if strict return false here
46
- if (!route) {
47
- (0, sendError_1.sendError)(server, ctx, error_1.BasedErrorCode.FunctionNotFound, {
48
- name,
49
- requestId,
50
- });
36
+ if (route === null) {
51
37
  return true;
52
38
  }
53
39
  if ((0, security_1.rateLimitRequest)(server, ctx, route.rateLimitTokens, server.rateLimit.ws)) {
54
40
  ctx.session.close();
55
41
  return false;
56
42
  }
57
- if (route.observable === true) {
58
- (0, sendError_1.sendError)(server, ctx, error_1.BasedErrorCode.FunctionIsObservable, {
59
- name,
60
- requestId,
61
- });
62
- return true;
63
- }
64
43
  if (len > route.maxPayloadSize) {
65
44
  (0, sendError_1.sendError)(server, ctx, error_1.BasedErrorCode.PayloadTooLarge, {
66
- name,
67
- requestId,
68
- });
69
- return true;
70
- }
71
- if (route.stream === true) {
72
- (0, sendError_1.sendError)(server, ctx, error_1.BasedErrorCode.FunctionIsStream, {
73
- name,
45
+ route,
74
46
  requestId,
75
47
  });
76
48
  return true;
77
49
  }
78
- const payload = (0, protocol_1.decodePayload)(new Uint8Array(arr.slice(start + 8 + nameLen, start + len)), isDeflate);
79
- if (route.public === true) {
80
- sendFunction(server, ctx, route, payload, requestId);
81
- return true;
82
- }
83
- // TODO: make this fn a bit nicer.... remove nestedness...
84
- server.auth
85
- .authorize(ctx, name, payload)
86
- .then((ok) => {
87
- if (!ctx.session) {
88
- return false;
89
- }
90
- if (!ok) {
91
- (0, sendError_1.sendError)(server, ctx, error_1.BasedErrorCode.AuthorizeRejectedError, {
92
- route,
93
- });
94
- return false;
95
- }
96
- sendFunction(server, ctx, route, payload, requestId);
97
- })
98
- .catch((err) => {
99
- (0, sendError_1.sendError)(server, ctx, error_1.BasedErrorCode.AuthorizeFunctionError, {
100
- route,
101
- err,
102
- });
103
- });
50
+ const payload = (0, protocol_1.parsePayload)((0, protocol_1.decodePayload)(new Uint8Array(arr.slice(start + 8 + nameLen, start + len)), isDeflate));
51
+ (0, authorize_1.authorize)(route, server, ctx, payload, sendFunction, requestId);
104
52
  return true;
105
53
  };
106
54
  exports.functionMessage = functionMessage;
@@ -1 +1 @@
1
- {"version":3,"file":"function.js","sourceRoot":"","sources":["../../../src/incoming/ws/function.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"function.js","sourceRoot":"","sources":["../../../src/incoming/ws/function.ts"],"names":[],"mappings":";;;AAAA,6CAOuB;AACvB,uCAA4C;AAC5C,+CAA2C;AAG3C,6CAAiD;AACjD,mDAA+C;AAC/C,+CAA2C;AAC3C,+CAAgE;AAGhE,MAAM,YAAY,GAGd,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,SAAS,EAAE,EAAE;IACnD,MAAM,IAAI,GAAG,MAAM,IAAA,qBAAS,EAAC,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,SAAS,CAAC,CAAA;IAC3D,IAAI;QACF,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,EAAE,GAAG,CAAC;SACtC,IAAI,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE;QAChB,GAAG,CAAC,OAAO,EAAE,IAAI,CACf,IAAA,iCAAsB,EAAC,SAAS,EAAE,IAAA,wBAAa,EAAC,CAAC,CAAC,CAAC,EACnD,IAAI,EACJ,KAAK,CACN,CAAA;IACH,CAAC,CAAC;SACD,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;QACb,IAAA,qBAAS,EAAC,MAAM,EAAE,GAAG,EAAE,sBAAc,CAAC,aAAa,EAAE;YACnD,KAAK;YACL,SAAS;YACT,GAAG;SACJ,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;AACN,CAAC,CAAA;AAEM,MAAM,eAAe,GAAyB,CACnD,GAAG,EACH,KAAK,EACL,GAAG,EACH,SAAS,EACT,GAAG,EACH,MAAM,EACN,EAAE;IACF,2DAA2D;IAC3D,MAAM,SAAS,GAAG,IAAA,oBAAS,EAAC,GAAG,EAAE,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,CAAA;IAC9C,MAAM,OAAO,GAAG,GAAG,CAAC,KAAK,GAAG,CAAC,CAAC,CAAA;IAC9B,MAAM,IAAI,GAAG,IAAA,qBAAU,EAAC,GAAG,EAAE,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,CAAC,GAAG,OAAO,CAAC,CAAA;IAE5D,IAAI,CAAC,IAAI,IAAI,CAAC,SAAS,EAAE;QACvB,OAAO,KAAK,CAAA;KACb;IAED,MAAM,KAAK,GAAG,IAAA,yBAAW,EACvB,MAAM,EACN,GAAG,EACH,IAAI,EACJ,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,EAC5B,IAAI,EACJ,SAAS,CACV,CAAA;IAED,6DAA6D;IAC7D,IAAI,KAAK,KAAK,IAAI,EAAE;QAClB,OAAO,IAAI,CAAA;KACZ;IAED,IACE,IAAA,2BAAgB,EAAC,MAAM,EAAE,GAAG,EAAE,KAAK,CAAC,eAAe,EAAE,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC,EACzE;QACA,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE,CAAA;QACnB,OAAO,KAAK,CAAA;KACb;IAED,IAAI,GAAG,GAAG,KAAK,CAAC,cAAc,EAAE;QAC9B,IAAA,qBAAS,EAAC,MAAM,EAAE,GAAG,EAAE,sBAAc,CAAC,eAAe,EAAE;YACrD,KAAK;YACL,SAAS;SACV,CAAC,CAAA;QACF,OAAO,IAAI,CAAA;KACZ;IAED,MAAM,OAAO,GAAG,IAAA,uBAAY,EAC1B,IAAA,wBAAa,EACX,IAAI,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,GAAG,OAAO,EAAE,KAAK,GAAG,GAAG,CAAC,CAAC,EAC3D,SAAS,CACV,CACF,CAAA;IAED,IAAA,qBAAS,EAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,YAAY,EAAE,SAAS,CAAC,CAAA;IAE/D,OAAO,IAAI,CAAA;AACb,CAAC,CAAA;AAxDY,QAAA,eAAe,mBAwD3B"}
@@ -1,3 +1,2 @@
1
- import { BasedServer } from '../../server';
2
- import { WebSocketSession, Context } from '../../context';
3
- export declare const getMessage: (arr: Uint8Array, start: number, len: number, isDeflate: boolean, ctx: Context<WebSocketSession>, server: BasedServer) => boolean;
1
+ import { BinaryMessageHandler } from './types';
2
+ export declare const getMessage: BinaryMessageHandler;
@@ -6,8 +6,12 @@ const observable_1 = require("../../observable");
6
6
  const error_1 = require("../../error");
7
7
  const sendError_1 = require("../../sendError");
8
8
  const security_1 = require("../../security");
9
+ const verifyRoute_1 = require("../../verifyRoute");
10
+ const authorize_1 = require("../../authorize");
11
+ const installFn_1 = require("../../installFn");
9
12
  const sendGetData = (server, id, obs, checksum, ctx) => {
10
13
  if (!ctx.session) {
14
+ (0, observable_1.destroyObs)(server, id);
11
15
  return;
12
16
  }
13
17
  if (checksum === 0) {
@@ -24,10 +28,10 @@ const sendGetData = (server, id, obs, checksum, ctx) => {
24
28
  }
25
29
  (0, observable_1.destroyObs)(server, id);
26
30
  };
27
- const getFromExisting = (server, id, ctx, checksum, name) => {
31
+ const getFromExisting = (server, id, ctx, checksum) => {
28
32
  const obs = (0, observable_1.getObs)(server, id);
29
33
  if (obs.error) {
30
- (0, observable_1.sendObsGetError)(server, ctx, id, name, obs.error);
34
+ (0, observable_1.sendObsGetError)(server, ctx, id, obs.error);
31
35
  return;
32
36
  }
33
37
  if (obs.cache) {
@@ -36,41 +40,46 @@ const getFromExisting = (server, id, ctx, checksum, name) => {
36
40
  }
37
41
  (0, observable_1.subscribeNext)(obs, (err) => {
38
42
  if (err) {
39
- (0, observable_1.sendObsGetError)(server, ctx, id, name, err);
43
+ (0, observable_1.sendObsGetError)(server, ctx, id, err);
40
44
  }
41
45
  else {
42
46
  sendGetData(server, id, obs, checksum, ctx);
43
47
  }
44
48
  });
45
49
  };
46
- const install = (server, name, ctx, route, id, checksum, payload) => {
47
- server.functions
48
- .install(name)
49
- .then((spec) => {
50
- if (!ctx.session) {
51
- return;
52
- }
53
- if (!(0, observable_1.verifyRoute)(server, name, spec, ctx)) {
50
+ const isAuthorized = (route, server, ctx, payload, id, checksum) => {
51
+ if ((0, observable_1.hasObs)(server, id)) {
52
+ getFromExisting(server, id, ctx, checksum);
53
+ return;
54
+ }
55
+ (0, installFn_1.installFn)(server, ctx, route, id).then((spec) => {
56
+ if (spec === null) {
54
57
  return;
55
58
  }
56
59
  if ((0, observable_1.hasObs)(server, id)) {
57
- getFromExisting(server, id, ctx, checksum, name);
60
+ getFromExisting(server, id, ctx, checksum);
58
61
  return;
59
62
  }
60
- const obs = (0, observable_1.createObs)(server, name, id, payload);
63
+ const obs = (0, observable_1.createObs)(server, route.name, id, payload, true);
61
64
  if (!ctx.session?.obs.has(id)) {
62
65
  (0, observable_1.subscribeNext)(obs, (err) => {
63
66
  if (err) {
64
- (0, observable_1.sendObsGetError)(server, ctx, id, name, err);
67
+ (0, observable_1.sendObsGetError)(server, ctx, id, err);
65
68
  }
66
69
  else {
67
70
  sendGetData(server, id, obs, checksum, ctx);
68
71
  }
69
72
  });
70
73
  }
71
- })
72
- .catch(() => {
73
- (0, sendError_1.sendError)(server, ctx, error_1.BasedErrorCode.FunctionNotFound, route);
74
+ (0, observable_1.start)(server, id);
75
+ });
76
+ };
77
+ const isNotAuthorized = (route, server, ctx, payload, id, checksum) => {
78
+ ctx.session.unauthorizedObs.add({
79
+ id,
80
+ checksum,
81
+ name: route.name,
82
+ payload,
74
83
  });
75
84
  };
76
85
  const getMessage = (arr, start, len, isDeflate, ctx, server) => {
@@ -82,9 +91,9 @@ const getMessage = (arr, start, len, isDeflate, ctx, server) => {
82
91
  if (!name || !id) {
83
92
  return false;
84
93
  }
85
- const route = (0, observable_1.verifyRoute)(server, name, server.functions.route(name), ctx);
94
+ const route = (0, verifyRoute_1.verifyRoute)(server, ctx, 'query', server.functions.route(name), name, id);
86
95
  // TODO: add strictness setting - if strict return false here
87
- if (!route) {
96
+ if (route === null) {
88
97
  return true;
89
98
  }
90
99
  if ((0, security_1.rateLimitRequest)(server, ctx, route.rateLimitTokens, server.rateLimit.ws)) {
@@ -92,44 +101,14 @@ const getMessage = (arr, start, len, isDeflate, ctx, server) => {
92
101
  return false;
93
102
  }
94
103
  if (route.maxPayloadSize !== -1 && len > route.maxPayloadSize) {
95
- (0, sendError_1.sendError)(server, ctx, error_1.BasedErrorCode.PayloadTooLarge, route);
96
- return true;
97
- }
98
- const payload = (0, protocol_1.decodePayload)(new Uint8Array(arr.slice(start + 21 + nameLen, start + len)), isDeflate);
99
- if (route.public === true) {
100
- if ((0, observable_1.hasObs)(server, id)) {
101
- getFromExisting(server, id, ctx, checksum, name);
102
- return;
103
- }
104
- install(server, name, ctx, route, id, checksum, payload);
105
- return true;
106
- }
107
- server.auth
108
- .authorize(ctx, name, payload)
109
- .then((ok) => {
110
- if (!ctx.session) {
111
- return false;
112
- }
113
- if (!ok) {
114
- (0, sendError_1.sendError)(server, ctx, error_1.BasedErrorCode.AuthorizeRejectedError, {
115
- route,
116
- observableId: id,
117
- });
118
- return false;
119
- }
120
- if ((0, observable_1.hasObs)(server, id)) {
121
- getFromExisting(server, id, ctx, checksum, name);
122
- return;
123
- }
124
- install(server, name, ctx, route, id, checksum, payload);
125
- })
126
- .catch((err) => {
127
- (0, sendError_1.sendError)(server, ctx, error_1.BasedErrorCode.AuthorizeFunctionError, {
104
+ (0, sendError_1.sendError)(server, ctx, error_1.BasedErrorCode.PayloadTooLarge, {
128
105
  route,
129
106
  observableId: id,
130
- err,
131
107
  });
132
- });
108
+ return true;
109
+ }
110
+ const payload = (0, protocol_1.parsePayload)((0, protocol_1.decodePayload)(new Uint8Array(arr.slice(start + 21 + nameLen, start + len)), isDeflate));
111
+ (0, authorize_1.authorize)(route, server, ctx, payload, isAuthorized, id, checksum, isNotAuthorized);
133
112
  return true;
134
113
  };
135
114
  exports.getMessage = getMessage;
@@ -1 +1 @@
1
- {"version":3,"file":"get.js","sourceRoot":"","sources":["../../../src/incoming/ws/get.ts"],"names":[],"mappings":";;;AAAA,6CAKuB;AAEvB,iDAUyB;AAGzB,uCAA4C;AAC5C,+CAA2C;AAC3C,6CAAiD;AAEjD,MAAM,WAAW,GAAG,CAClB,MAAmB,EACnB,EAAU,EACV,GAAqB,EACrB,QAAgB,EAChB,GAA8B,EAC9B,EAAE;IACF,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE;QAChB,OAAM;KACP;IACD,IAAI,QAAQ,KAAK,CAAC,EAAE;QAClB,IAAA,sBAAS,EAAC,GAAG,EAAE,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,CAAA;KAC/B;SAAM,IAAI,QAAQ,KAAK,GAAG,CAAC,QAAQ,EAAE;QACpC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,IAAA,4BAAiB,EAAC,EAAE,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,CAAA;KACrD;SAAM,IAAI,GAAG,CAAC,SAAS,IAAI,GAAG,CAAC,gBAAgB,KAAK,QAAQ,EAAE;QAC7D,IAAA,sBAAS,EAAC,GAAG,EAAE,GAAG,CAAC,SAAS,EAAE,GAAG,CAAC,CAAA;KACnC;SAAM;QACL,IAAA,sBAAS,EAAC,GAAG,EAAE,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,CAAA;KAC/B;IACD,IAAA,uBAAU,EAAC,MAAM,EAAE,EAAE,CAAC,CAAA;AACxB,CAAC,CAAA;AAED,MAAM,eAAe,GAAG,CACtB,MAAmB,EACnB,EAAU,EACV,GAA8B,EAC9B,QAAgB,EAChB,IAAY,EACZ,EAAE;IACF,MAAM,GAAG,GAAG,IAAA,mBAAM,EAAC,MAAM,EAAE,EAAE,CAAC,CAAA;IAC9B,IAAI,GAAG,CAAC,KAAK,EAAE;QACb,IAAA,4BAAe,EAAC,MAAM,EAAE,GAAG,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,CAAC,KAAK,CAAC,CAAA;QACjD,OAAM;KACP;IACD,IAAI,GAAG,CAAC,KAAK,EAAE;QACb,WAAW,CAAC,MAAM,EAAE,EAAE,EAAE,GAAG,EAAE,QAAQ,EAAE,GAAG,CAAC,CAAA;QAC3C,OAAM;KACP;IACD,IAAA,0BAAa,EAAC,GAAG,EAAE,CAAC,GAAG,EAAE,EAAE;QACzB,IAAI,GAAG,EAAE;YACP,IAAA,4BAAe,EAAC,MAAM,EAAE,GAAG,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,CAAC,CAAA;SAC5C;aAAM;YACL,WAAW,CAAC,MAAM,EAAE,EAAE,EAAE,GAAG,EAAE,QAAQ,EAAE,GAAG,CAAC,CAAA;SAC5C;IACH,CAAC,CAAC,CAAA;AACJ,CAAC,CAAA;AAED,MAAM,OAAO,GAAG,CACd,MAAmB,EACnB,IAAY,EACZ,GAA8B,EAC9B,KAAyB,EACzB,EAAU,EACV,QAAgB,EAChB,OAAY,EACZ,EAAE;IACF,MAAM,CAAC,SAAS;SACb,OAAO,CAAC,IAAI,CAAC;SACb,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE;QACb,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE;YAChB,OAAM;SACP;QACD,IAAI,CAAC,IAAA,wBAAW,EAAC,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,CAAC,EAAE;YACzC,OAAM;SACP;QACD,IAAI,IAAA,mBAAM,EAAC,MAAM,EAAE,EAAE,CAAC,EAAE;YACtB,eAAe,CAAC,MAAM,EAAE,EAAE,EAAE,GAAG,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAA;YAChD,OAAM;SACP;QACD,MAAM,GAAG,GAAG,IAAA,sBAAS,EAAC,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,OAAO,CAAC,CAAA;QAChD,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE;YAC7B,IAAA,0BAAa,EAAC,GAAG,EAAE,CAAC,GAAG,EAAE,EAAE;gBACzB,IAAI,GAAG,EAAE;oBACP,IAAA,4BAAe,EAAC,MAAM,EAAE,GAAG,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,CAAC,CAAA;iBAC5C;qBAAM;oBACL,WAAW,CAAC,MAAM,EAAE,EAAE,EAAE,GAAG,EAAE,QAAQ,EAAE,GAAG,CAAC,CAAA;iBAC5C;YACH,CAAC,CAAC,CAAA;SACH;IACH,CAAC,CAAC;SACD,KAAK,CAAC,GAAG,EAAE;QACV,IAAA,qBAAS,EAAC,MAAM,EAAE,GAAG,EAAE,sBAAc,CAAC,gBAAgB,EAAE,KAAK,CAAC,CAAA;IAChE,CAAC,CAAC,CAAA;AACN,CAAC,CAAA;AAEM,MAAM,UAAU,GAAG,CACxB,GAAe,EACf,KAAa,EACb,GAAW,EACX,SAAkB,EAClB,GAA8B,EAC9B,MAAmB,EACnB,EAAE;IACF,wEAAwE;IACxE,MAAM,OAAO,GAAG,GAAG,CAAC,KAAK,GAAG,EAAE,CAAC,CAAA;IAC/B,MAAM,EAAE,GAAG,IAAA,oBAAS,EAAC,GAAG,EAAE,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,CAAA;IACvC,MAAM,QAAQ,GAAG,IAAA,oBAAS,EAAC,GAAG,EAAE,KAAK,GAAG,EAAE,EAAE,CAAC,CAAC,CAAA;IAC9C,MAAM,IAAI,GAAG,IAAA,qBAAU,EAAC,GAAG,EAAE,KAAK,GAAG,EAAE,EAAE,KAAK,GAAG,EAAE,GAAG,OAAO,CAAC,CAAA;IAE9D,IAAI,CAAC,IAAI,IAAI,CAAC,EAAE,EAAE;QAChB,OAAO,KAAK,CAAA;KACb;IAED,MAAM,KAAK,GAAG,IAAA,wBAAW,EAAC,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,CAAA;IAE1E,6DAA6D;IAC7D,IAAI,CAAC,KAAK,EAAE;QACV,OAAO,IAAI,CAAA;KACZ;IAED,IACE,IAAA,2BAAgB,EAAC,MAAM,EAAE,GAAG,EAAE,KAAK,CAAC,eAAe,EAAE,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC,EACzE;QACA,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE,CAAA;QACnB,OAAO,KAAK,CAAA;KACb;IAED,IAAI,KAAK,CAAC,cAAc,KAAK,CAAC,CAAC,IAAI,GAAG,GAAG,KAAK,CAAC,cAAc,EAAE;QAC7D,IAAA,qBAAS,EAAC,MAAM,EAAE,GAAG,EAAE,sBAAc,CAAC,eAAe,EAAE,KAAK,CAAC,CAAA;QAC7D,OAAO,IAAI,CAAA;KACZ;IAED,MAAM,OAAO,GAAG,IAAA,wBAAa,EAC3B,IAAI,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,GAAG,EAAE,GAAG,OAAO,EAAE,KAAK,GAAG,GAAG,CAAC,CAAC,EAC5D,SAAS,CACV,CAAA;IAED,IAAI,KAAK,CAAC,MAAM,KAAK,IAAI,EAAE;QACzB,IAAI,IAAA,mBAAM,EAAC,MAAM,EAAE,EAAE,CAAC,EAAE;YACtB,eAAe,CAAC,MAAM,EAAE,EAAE,EAAE,GAAG,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAA;YAChD,OAAM;SACP;QACD,OAAO,CAAC,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAA;QACxD,OAAO,IAAI,CAAA;KACZ;IAED,MAAM,CAAC,IAAI;SACR,SAAS,CAAC,GAAG,EAAE,IAAI,EAAE,OAAO,CAAC;SAC7B,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE;QACX,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE;YAChB,OAAO,KAAK,CAAA;SACb;QACD,IAAI,CAAC,EAAE,EAAE;YACP,IAAA,qBAAS,EAAC,MAAM,EAAE,GAAG,EAAE,sBAAc,CAAC,sBAAsB,EAAE;gBAC5D,KAAK;gBACL,YAAY,EAAE,EAAE;aACjB,CAAC,CAAA;YACF,OAAO,KAAK,CAAA;SACb;QACD,IAAI,IAAA,mBAAM,EAAC,MAAM,EAAE,EAAE,CAAC,EAAE;YACtB,eAAe,CAAC,MAAM,EAAE,EAAE,EAAE,GAAG,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAA;YAChD,OAAM;SACP;QACD,OAAO,CAAC,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAA;IAC1D,CAAC,CAAC;SACD,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;QACb,IAAA,qBAAS,EAAC,MAAM,EAAE,GAAG,EAAE,sBAAc,CAAC,sBAAsB,EAAE;YAC5D,KAAK;YACL,YAAY,EAAE,EAAE;YAChB,GAAG;SACJ,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;IAEJ,OAAO,IAAI,CAAA;AACb,CAAC,CAAA;AA/EY,QAAA,UAAU,cA+EtB"}
1
+ {"version":3,"file":"get.js","sourceRoot":"","sources":["../../../src/incoming/ws/get.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,3 @@
1
1
  import { BasedServer } from '../../server';
2
- import { WebSocketSession, Context } from '../../context';
2
+ import { WebSocketSession, Context } from '@based/functions';
3
3
  export declare const message: (server: BasedServer, ctx: Context<WebSocketSession>, msg: ArrayBuffer, isBinary: boolean) => void;
@@ -19,7 +19,8 @@ const reader = (server, ctx, arr, start) => {
19
19
  return next;
20
20
  }
21
21
  // type 2 = unsubscribe
22
- if (type === 2 && (0, observable_1.unsubscribeMessage)(arr, start, ctx, server)) {
22
+ if (type === 2 &&
23
+ (0, observable_1.unsubscribeMessage)(arr, start, len, isDeflate, ctx, server)) {
23
24
  return next;
24
25
  }
25
26
  // type 3 = get
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/incoming/ws/index.ts"],"names":[],"mappings":";;;AACA,6CAAwD;AACxD,yCAA4C;AAC5C,6CAAmE;AACnE,iCAAoC;AACpC,+BAAkC;AAElC,uCAAyD;AAEzD,MAAM,MAAM,GAAG,CACb,MAAmB,EACnB,GAA8B,EAC9B,GAAe,EACf,KAAa,EACL,EAAE;IACV,MAAM,EAAE,GAAG,EAAE,SAAS,EAAE,IAAI,EAAE,GAAG,IAAA,uBAAY,EAAC,IAAA,oBAAS,EAAC,GAAG,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,CAAA;IACvE,MAAM,IAAI,GAAG,GAAG,GAAG,KAAK,CAAA;IAExB,oBAAoB;IACpB,IAAI,IAAI,KAAK,CAAC,IAAI,IAAA,0BAAe,EAAC,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,CAAC,EAAE;QAC1E,OAAO,IAAI,CAAA;KACZ;IAED,qBAAqB;IACrB,IAAI,IAAI,KAAK,CAAC,IAAI,IAAA,6BAAgB,EAAC,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,CAAC,EAAE;QAC3E,OAAO,IAAI,CAAA;KACZ;IAED,uBAAuB;IACvB,IAAI,IAAI,KAAK,CAAC,IAAI,IAAA,+BAAkB,EAAC,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,CAAC,EAAE;QAC7D,OAAO,IAAI,CAAA;KACZ;IAED,eAAe;IACf,IAAI,IAAI,KAAK,CAAC,IAAI,IAAA,gBAAU,EAAC,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,CAAC,EAAE;QACrE,OAAO,IAAI,CAAA;KACZ;IAED,gBAAgB;IAChB,IAAI,IAAI,KAAK,CAAC,IAAI,IAAA,kBAAW,EAAC,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,CAAC,EAAE;QACtE,OAAO,IAAI,CAAA;KACZ;IAED,OAAO,IAAI,CAAA;AACb,CAAC,CAAA;AAEM,MAAM,OAAO,GAAG,CACrB,MAAmB,EACnB,GAA8B,EAC9B,GAAgB,EAChB,QAAiB,EACjB,EAAE;IACF,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE;QAChB,OAAM;KACP;IACD,IAAI,CAAC,QAAQ,EAAE;QACb,IAAA,mBAAW,EAAC,MAAM,EAAE,GAAG,EAAE,sBAAc,CAAC,gBAAgB,EAAE;YACxD,MAAM,EAAE,GAAG;SACZ,CAAC,CAAA;QACF,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE,CAAA;QACnB,OAAM;KACP;IAED,iDAAiD;IACjD,MAAM,SAAS,GAAG,IAAI,UAAU,CAAC,GAAG,CAAC,CAAA;IACrC,MAAM,GAAG,GAAG,SAAS,CAAC,MAAM,CAAA;IAC5B,IAAI,IAAI,GAAG,CAAC,CAAA;IACZ,OAAO,IAAI,GAAG,GAAG,EAAE;QACjB,MAAM,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,EAAE,SAAS,EAAE,IAAI,CAAC,CAAA;QAC9C,IAAI,CAAC,KAAK,SAAS,EAAE;YACnB,8DAA8D;YAC9D,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE,CAAA;YACnB,OAAM;SACP;QACD,IAAI,GAAG,CAAC,CAAA;KACT;AACH,CAAC,CAAA;AA9BY,QAAA,OAAO,WA8BnB"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/incoming/ws/index.ts"],"names":[],"mappings":";;;AACA,6CAAwD;AACxD,yCAA4C;AAC5C,6CAAmE;AACnE,iCAAoC;AACpC,+BAAkC;AAElC,uCAAyD;AAEzD,MAAM,MAAM,GAAG,CACb,MAAmB,EACnB,GAA8B,EAC9B,GAAe,EACf,KAAa,EACL,EAAE;IACV,MAAM,EAAE,GAAG,EAAE,SAAS,EAAE,IAAI,EAAE,GAAG,IAAA,uBAAY,EAAC,IAAA,oBAAS,EAAC,GAAG,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,CAAA;IACvE,MAAM,IAAI,GAAG,GAAG,GAAG,KAAK,CAAA;IAExB,oBAAoB;IACpB,IAAI,IAAI,KAAK,CAAC,IAAI,IAAA,0BAAe,EAAC,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,CAAC,EAAE;QAC1E,OAAO,IAAI,CAAA;KACZ;IAED,qBAAqB;IACrB,IAAI,IAAI,KAAK,CAAC,IAAI,IAAA,6BAAgB,EAAC,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,CAAC,EAAE;QAC3E,OAAO,IAAI,CAAA;KACZ;IAED,uBAAuB;IACvB,IACE,IAAI,KAAK,CAAC;QACV,IAAA,+BAAkB,EAAC,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,CAAC,EAC3D;QACA,OAAO,IAAI,CAAA;KACZ;IAED,eAAe;IACf,IAAI,IAAI,KAAK,CAAC,IAAI,IAAA,gBAAU,EAAC,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,CAAC,EAAE;QACrE,OAAO,IAAI,CAAA;KACZ;IAED,gBAAgB;IAChB,IAAI,IAAI,KAAK,CAAC,IAAI,IAAA,kBAAW,EAAC,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,CAAC,EAAE;QACtE,OAAO,IAAI,CAAA;KACZ;IAED,OAAO,IAAI,CAAA;AACb,CAAC,CAAA;AAEM,MAAM,OAAO,GAAG,CACrB,MAAmB,EACnB,GAA8B,EAC9B,GAAgB,EAChB,QAAiB,EACjB,EAAE;IACF,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE;QAChB,OAAM;KACP;IACD,IAAI,CAAC,QAAQ,EAAE;QACb,IAAA,mBAAW,EAAC,MAAM,EAAE,GAAG,EAAE,sBAAc,CAAC,gBAAgB,EAAE;YACxD,MAAM,EAAE,GAAG;SACZ,CAAC,CAAA;QACF,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE,CAAA;QACnB,OAAM;KACP;IAED,iDAAiD;IACjD,MAAM,SAAS,GAAG,IAAI,UAAU,CAAC,GAAG,CAAC,CAAA;IACrC,MAAM,GAAG,GAAG,SAAS,CAAC,MAAM,CAAA;IAC5B,IAAI,IAAI,GAAG,CAAC,CAAA;IACZ,OAAO,IAAI,GAAG,GAAG,EAAE;QACjB,MAAM,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,EAAE,SAAS,EAAE,IAAI,CAAC,CAAA;QAC9C,IAAI,CAAC,KAAK,SAAS,EAAE;YACnB,8DAA8D;YAC9D,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE,CAAA;YACnB,OAAM;SACP;QACD,IAAI,GAAG,CAAC,CAAA;KACT;AACH,CAAC,CAAA;AA9BY,QAAA,OAAO,WA8BnB"}
@@ -1,6 +1,7 @@
1
- import { BasedServer } from '../../server';
2
- import { WebSocketSession, Context } from '../../context';
3
- import { BasedFunctionRoute } from '../../functions';
4
- export declare const enableSubscribe: (server: BasedServer, ctx: Context<WebSocketSession>, id: number, checksum: number, name: string, payload: any, route: BasedFunctionRoute) => void;
5
- export declare const subscribeMessage: (arr: Uint8Array, start: number, len: number, isDeflate: boolean, ctx: Context<WebSocketSession>, server: BasedServer) => boolean;
6
- export declare const unsubscribeMessage: (arr: Uint8Array, start: number, ctx: Context<WebSocketSession>, server: BasedServer) => boolean;
1
+ import { WebSocketSession } from '@based/functions';
2
+ import { BasedQueryFunctionRoute } from '../../functions';
3
+ import { IsAuthorizedHandler } from '../../authorize';
4
+ import { BinaryMessageHandler } from './types';
5
+ export declare const enableSubscribe: IsAuthorizedHandler<WebSocketSession, BasedQueryFunctionRoute>;
6
+ export declare const subscribeMessage: BinaryMessageHandler;
7
+ export declare const unsubscribeMessage: BinaryMessageHandler;
@@ -6,31 +6,35 @@ const observable_1 = require("../../observable");
6
6
  const error_1 = require("../../error");
7
7
  const sendError_1 = require("../../sendError");
8
8
  const security_1 = require("../../security");
9
- const enableSubscribe = (server, ctx, id, checksum, name, payload, route) => {
9
+ const verifyRoute_1 = require("../../verifyRoute");
10
+ const installFn_1 = require("../../installFn");
11
+ const authorize_1 = require("../../authorize");
12
+ const enableSubscribe = (route, server, ctx, payload, id, checksum) => {
10
13
  if ((0, observable_1.hasObs)(server, id)) {
11
14
  (0, observable_1.subscribeWs)(server, id, checksum, ctx);
12
15
  return;
13
16
  }
14
- server.functions
15
- .install(name)
16
- .then((spec) => {
17
- if (!(0, observable_1.verifyRoute)(server, name, spec, ctx)) {
18
- return;
19
- }
20
- if (!ctx.session?.obs.has(id)) {
17
+ // TODO: big perf optmization possible here (only return a promise if its not there)
18
+ (0, installFn_1.installFn)(server, ctx, route, id).then((spec) => {
19
+ if (spec === null || !ctx.session.obs.has(id)) {
21
20
  return;
22
21
  }
23
22
  if (!(0, observable_1.hasObs)(server, id)) {
24
- (0, observable_1.createObs)(server, name, id, payload);
23
+ (0, observable_1.createObs)(server, route.name, id, payload);
25
24
  }
26
25
  ctx.session.subscribe(String(id));
27
26
  (0, observable_1.subscribeWs)(server, id, checksum, ctx);
28
- })
29
- .catch(() => {
30
- (0, sendError_1.sendError)(server, ctx, error_1.BasedErrorCode.FunctionNotFound, route);
31
27
  });
32
28
  };
33
29
  exports.enableSubscribe = enableSubscribe;
30
+ const isNotAuthorized = (route, server, ctx, payload, id, checksum) => {
31
+ ctx.session.unauthorizedObs.add({
32
+ id,
33
+ checksum,
34
+ name: route.name,
35
+ payload,
36
+ });
37
+ };
34
38
  const subscribeMessage = (arr, start, len, isDeflate, ctx, server) => {
35
39
  // | 4 header | 8 id | 8 checksum | 1 name length | * name | * payload |
36
40
  const nameLen = arr[start + 20];
@@ -40,9 +44,9 @@ const subscribeMessage = (arr, start, len, isDeflate, ctx, server) => {
40
44
  if (!name || !id) {
41
45
  return false;
42
46
  }
43
- const route = (0, observable_1.verifyRoute)(server, name, server.functions.route(name), ctx);
47
+ const route = (0, verifyRoute_1.verifyRoute)(server, ctx, 'query', server.functions.route(name), name, id);
44
48
  // TODO: add strictness setting - if strict return false here
45
- if (!route) {
49
+ if (route === null) {
46
50
  return true;
47
51
  }
48
52
  if ((0, security_1.rateLimitRequest)(server, ctx, route.rateLimitTokens, server.rateLimit.ws)) {
@@ -50,51 +54,23 @@ const subscribeMessage = (arr, start, len, isDeflate, ctx, server) => {
50
54
  return false;
51
55
  }
52
56
  if (route.maxPayloadSize !== -1 && len > route.maxPayloadSize) {
53
- (0, sendError_1.sendError)(server, ctx, error_1.BasedErrorCode.PayloadTooLarge, route);
57
+ (0, sendError_1.sendError)(server, ctx, error_1.BasedErrorCode.PayloadTooLarge, {
58
+ route,
59
+ observableId: id,
60
+ });
54
61
  return true;
55
62
  }
56
63
  if (ctx.session?.obs.has(id)) {
57
64
  // allready subscribed to this id
58
65
  return true;
59
66
  }
60
- const payload = (0, protocol_1.decodePayload)(new Uint8Array(arr.slice(start + 21 + nameLen, start + len)), isDeflate);
67
+ const payload = (0, protocol_1.parsePayload)((0, protocol_1.decodePayload)(new Uint8Array(arr.slice(start + 21 + nameLen, start + len)), isDeflate));
61
68
  ctx.session.obs.add(id);
62
- if (route.public === true) {
63
- (0, exports.enableSubscribe)(server, ctx, id, checksum, name, payload, route);
64
- return true;
65
- }
66
- server.auth
67
- .authorize(ctx, name, payload)
68
- .then((ok) => {
69
- if (!ctx.session?.obs.has(id)) {
70
- return;
71
- }
72
- if (!ok) {
73
- ctx.session.unauthorizedObs.add({
74
- id,
75
- checksum,
76
- name,
77
- payload,
78
- });
79
- (0, sendError_1.sendError)(server, ctx, error_1.BasedErrorCode.AuthorizeRejectedError, {
80
- route,
81
- observableId: id,
82
- });
83
- return;
84
- }
85
- (0, exports.enableSubscribe)(server, ctx, id, checksum, name, payload, route);
86
- })
87
- .catch((err) => {
88
- (0, sendError_1.sendError)(server, ctx, error_1.BasedErrorCode.AuthorizeFunctionError, {
89
- route,
90
- observableId: id,
91
- err,
92
- });
93
- });
69
+ (0, authorize_1.authorize)(route, server, ctx, payload, exports.enableSubscribe, id, checksum, isNotAuthorized);
94
70
  return true;
95
71
  };
96
72
  exports.subscribeMessage = subscribeMessage;
97
- const unsubscribeMessage = (arr, start, ctx, server) => {
73
+ const unsubscribeMessage = (arr, start, len, isDeflate, ctx, server) => {
98
74
  // | 4 header | 8 id |
99
75
  if (!ctx.session) {
100
76
  return false;
@@ -1 +1 @@
1
- {"version":3,"file":"observable.js","sourceRoot":"","sources":["../../../src/incoming/ws/observable.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"observable.js","sourceRoot":"","sources":["../../../src/incoming/ws/observable.ts"],"names":[],"mappings":";;;AAAA,6CAKuB;AACvB,iDAAgF;AAChF,uCAA4C;AAG5C,+CAA2C;AAC3C,6CAAiD;AACjD,mDAA+C;AAC/C,+CAA2C;AAC3C,+CAIwB;AAGjB,MAAM,eAAe,GAGxB,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE;IAChD,IAAI,IAAA,mBAAM,EAAC,MAAM,EAAE,EAAE,CAAC,EAAE;QACtB,IAAA,wBAAW,EAAC,MAAM,EAAE,EAAE,EAAE,QAAQ,EAAE,GAAG,CAAC,CAAA;QACtC,OAAM;KACP;IACD,oFAAoF;IACpF,IAAA,qBAAS,EAAC,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE;QAC9C,IAAI,IAAI,KAAK,IAAI,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE;YAC7C,OAAM;SACP;QACD,IAAI,CAAC,IAAA,mBAAM,EAAC,MAAM,EAAE,EAAE,CAAC,EAAE;YACvB,IAAA,sBAAS,EAAC,MAAM,EAAE,KAAK,CAAC,IAAI,EAAE,EAAE,EAAE,OAAO,CAAC,CAAA;SAC3C;QACD,GAAG,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAA;QACjC,IAAA,wBAAW,EAAC,MAAM,EAAE,EAAE,EAAE,QAAQ,EAAE,GAAG,CAAC,CAAA;IACxC,CAAC,CAAC,CAAA;AACJ,CAAC,CAAA;AAnBY,QAAA,eAAe,mBAmB3B;AAED,MAAM,eAAe,GAGjB,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE;IAChD,GAAG,CAAC,OAAO,CAAC,eAAe,CAAC,GAAG,CAAC;QAC9B,EAAE;QACF,QAAQ;QACR,IAAI,EAAE,KAAK,CAAC,IAAI;QAChB,OAAO;KACR,CAAC,CAAA;AACJ,CAAC,CAAA;AAEM,MAAM,gBAAgB,GAAyB,CACpD,GAAG,EACH,KAAK,EACL,GAAG,EACH,SAAS,EACT,GAAG,EACH,MAAM,EACN,EAAE;IACF,wEAAwE;IAExE,MAAM,OAAO,GAAG,GAAG,CAAC,KAAK,GAAG,EAAE,CAAC,CAAA;IAE/B,MAAM,EAAE,GAAG,IAAA,oBAAS,EAAC,GAAG,EAAE,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,CAAA;IACvC,MAAM,QAAQ,GAAG,IAAA,oBAAS,EAAC,GAAG,EAAE,KAAK,GAAG,EAAE,EAAE,CAAC,CAAC,CAAA;IAC9C,MAAM,IAAI,GAAG,IAAA,qBAAU,EAAC,GAAG,EAAE,KAAK,GAAG,EAAE,EAAE,KAAK,GAAG,EAAE,GAAG,OAAO,CAAC,CAAA;IAE9D,IAAI,CAAC,IAAI,IAAI,CAAC,EAAE,EAAE;QAChB,OAAO,KAAK,CAAA;KACb;IAED,MAAM,KAAK,GAAG,IAAA,yBAAW,EACvB,MAAM,EACN,GAAG,EACH,OAAO,EACP,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,EAC5B,IAAI,EACJ,EAAE,CACH,CAAA;IAED,6DAA6D;IAC7D,IAAI,KAAK,KAAK,IAAI,EAAE;QAClB,OAAO,IAAI,CAAA;KACZ;IAED,IACE,IAAA,2BAAgB,EAAC,MAAM,EAAE,GAAG,EAAE,KAAK,CAAC,eAAe,EAAE,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC,EACzE;QACA,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE,CAAA;QACnB,OAAO,KAAK,CAAA;KACb;IAED,IAAI,KAAK,CAAC,cAAc,KAAK,CAAC,CAAC,IAAI,GAAG,GAAG,KAAK,CAAC,cAAc,EAAE;QAC7D,IAAA,qBAAS,EAAC,MAAM,EAAE,GAAG,EAAE,sBAAc,CAAC,eAAe,EAAE;YACrD,KAAK;YACL,YAAY,EAAE,EAAE;SACjB,CAAC,CAAA;QACF,OAAO,IAAI,CAAA;KACZ;IAED,IAAI,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE;QAC5B,iCAAiC;QACjC,OAAO,IAAI,CAAA;KACZ;IAED,MAAM,OAAO,GAAG,IAAA,uBAAY,EAC1B,IAAA,wBAAa,EACX,IAAI,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,GAAG,EAAE,GAAG,OAAO,EAAE,KAAK,GAAG,GAAG,CAAC,CAAC,EAC5D,SAAS,CACV,CACF,CAAA;IAED,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;IAEvB,IAAA,qBAAS,EACP,KAAK,EACL,MAAM,EACN,GAAG,EACH,OAAO,EACP,uBAAe,EACf,EAAE,EACF,QAAQ,EACR,eAAe,CAChB,CAAA;IAED,OAAO,IAAI,CAAA;AACb,CAAC,CAAA;AA3EY,QAAA,gBAAgB,oBA2E5B;AAEM,MAAM,kBAAkB,GAAyB,CACtD,GAAG,EACH,KAAK,EACL,GAAG,EACH,SAAS,EACT,GAAG,EACH,MAAM,EACN,EAAE;IACF,sBAAsB;IACtB,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE;QAChB,OAAO,KAAK,CAAA;KACb;IAED,MAAM,EAAE,GAAG,IAAA,oBAAS,EAAC,GAAG,EAAE,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,CAAA;IAEvC,IAAI,CAAC,EAAE,EAAE;QACP,OAAO,KAAK,CAAA;KACb;IAED,IAAI,IAAA,0BAAa,EAAC,MAAM,EAAE,EAAE,EAAE,GAAG,CAAC,EAAE;QAClC,GAAG,CAAC,OAAO,CAAC,WAAW,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAA;KACpC;IAED,OAAO,IAAI,CAAA;AACb,CAAC,CAAA;AAxBY,QAAA,kBAAkB,sBAwB9B"}
@@ -0,0 +1,3 @@
1
+ import { BasedServer } from '../../server';
2
+ import { WebSocketSession, Context } from '@based/functions';
3
+ export declare type BinaryMessageHandler = (arr: Uint8Array, start: number, len: number, isDeflate: boolean, ctx: Context<WebSocketSession>, server: BasedServer) => boolean;
File without changes
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/auth/types.ts"],"names":[],"mappings":""}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/incoming/ws/types.ts"],"names":[],"mappings":""}