@based/server 4.0.0 → 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 (178) 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 +32 -0
  16. package/dist/createSimpleServer.js +131 -0
  17. package/dist/createSimpleServer.js.map +1 -0
  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 -32
  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/incoming/http/streamFunction/multiPart/readFormData.js +202 -0
  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 +3 -2
  119. package/dist/index.js +5 -3
  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/api/index.d.ts +0 -7
  170. package/dist/api/index.js +0 -173
  171. package/dist/api/index.js.map +0 -1
  172. package/dist/auth/dummyAuth.d.ts +0 -2
  173. package/dist/auth/dummyAuth.js +0 -8
  174. package/dist/auth/dummyAuth.js.map +0 -1
  175. package/dist/auth/types.d.ts +0 -10
  176. package/dist/context.d.ts +0 -54
  177. package/dist/context.js +0 -18
  178. package/dist/context.js.map +0 -1
@@ -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":"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"}
@@ -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":""}
package/dist/index.d.ts CHANGED
@@ -5,7 +5,8 @@ export default createServer;
5
5
  export { compress } from './compress';
6
6
  export { sendHttpResponse } from './sendHttpResponse';
7
7
  export { sendError } from './sendError';
8
- export * from './auth/types';
8
+ export { createSimpleServer } from './createSimpleServer';
9
9
  export * from './functions/types';
10
10
  export * from './error';
11
- export * from './api';
11
+ export * from './functionApi';
12
+ export * from './observable/types';
package/dist/index.js CHANGED
@@ -14,7 +14,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
14
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
- exports.sendError = exports.sendHttpResponse = exports.compress = exports.BasedServer = void 0;
17
+ exports.createSimpleServer = exports.sendError = exports.sendHttpResponse = exports.compress = exports.BasedServer = void 0;
18
18
  const server_1 = require("./server");
19
19
  Object.defineProperty(exports, "BasedServer", { enumerable: true, get: function () { return server_1.BasedServer; } });
20
20
  const createServer = async (props, sharedSocket) => {
@@ -29,8 +29,10 @@ var sendHttpResponse_1 = require("./sendHttpResponse");
29
29
  Object.defineProperty(exports, "sendHttpResponse", { enumerable: true, get: function () { return sendHttpResponse_1.sendHttpResponse; } });
30
30
  var sendError_1 = require("./sendError");
31
31
  Object.defineProperty(exports, "sendError", { enumerable: true, get: function () { return sendError_1.sendError; } });
32
- __exportStar(require("./auth/types"), exports);
32
+ var createSimpleServer_1 = require("./createSimpleServer");
33
+ Object.defineProperty(exports, "createSimpleServer", { enumerable: true, get: function () { return createSimpleServer_1.createSimpleServer; } });
33
34
  __exportStar(require("./functions/types"), exports);
34
35
  __exportStar(require("./error"), exports);
35
- __exportStar(require("./api"), exports);
36
+ __exportStar(require("./functionApi"), exports);
37
+ __exportStar(require("./observable/types"), exports);
36
38
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,qCAAqD;AAU5C,4FAVA,oBAAW,OAUA;AARpB,MAAM,YAAY,GAAG,KAAK,EACxB,KAAoB,EACpB,YAAsB,EACA,EAAE;IACxB,MAAM,WAAW,GAAG,IAAI,oBAAW,CAAC,KAAK,CAAC,CAAA;IAC1C,OAAO,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC,WAAW,CAAA;AAC/E,CAAC,CAAA;AAID,kBAAe,YAAY,CAAA;AAE3B,uBAAuB;AACvB,uCAAqC;AAA5B,oGAAA,QAAQ,OAAA;AACjB,uDAAqD;AAA5C,oHAAA,gBAAgB,OAAA;AACzB,yCAAuC;AAA9B,sGAAA,SAAS,OAAA;AAElB,+CAA4B;AAC5B,oDAAiC;AACjC,0CAAuB;AACvB,wCAAqB"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,qCAAqD;AAU5C,4FAVA,oBAAW,OAUA;AARpB,MAAM,YAAY,GAAG,KAAK,EACxB,KAAoB,EACpB,YAAsB,EACA,EAAE;IACxB,MAAM,WAAW,GAAG,IAAI,oBAAW,CAAC,KAAK,CAAC,CAAA;IAC1C,OAAO,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC,WAAW,CAAA;AAC/E,CAAC,CAAA;AAID,kBAAe,YAAY,CAAA;AAE3B,uBAAuB;AACvB,uCAAqC;AAA5B,oGAAA,QAAQ,OAAA;AACjB,uDAAqD;AAA5C,oHAAA,gBAAgB,OAAA;AACzB,yCAAuC;AAA9B,sGAAA,SAAS,OAAA;AAClB,2DAAyD;AAAhD,wHAAA,kBAAkB,OAAA;AAE3B,oDAAiC;AACjC,0CAAuB;AACvB,gDAA6B;AAC7B,qDAAkC"}
@@ -0,0 +1,4 @@
1
+ import { BasedRoute, BasedSpec } from './functions';
2
+ import { BasedServer } from './server';
3
+ import { Context } from '@based/functions';
4
+ export declare const installFn: <R extends BasedRoute>(server: BasedServer, ctx: Context, route: R, id?: number) => Promise<BasedSpec<R>>;
@@ -0,0 +1,94 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.installFn = void 0;
4
+ const functions_1 = require("./functions");
5
+ const functions_2 = require("@based/functions");
6
+ const sendError_1 = require("./sendError");
7
+ const error_1 = require("./error");
8
+ const functionNotFound = (server, ctx, route, isQuery, id) => {
9
+ if (!(0, functions_2.isClientContext)(ctx)) {
10
+ return;
11
+ }
12
+ if (isQuery) {
13
+ (0, sendError_1.sendError)(server, ctx, error_1.BasedErrorCode.FunctionNotFound, {
14
+ route,
15
+ requestId: id,
16
+ });
17
+ return;
18
+ }
19
+ (0, sendError_1.sendError)(server, ctx, error_1.BasedErrorCode.FunctionNotFound, {
20
+ route,
21
+ requestId: id,
22
+ });
23
+ };
24
+ const installFn = async (server, ctx, route, id) => {
25
+ const isQuery = (0, functions_1.isQueryFunctionRoute)(route);
26
+ const isStream = !isQuery && (0, functions_1.isStreamFunctionRoute)(route);
27
+ try {
28
+ const spec = await server.functions.install(route.name);
29
+ if (!ctx.session) {
30
+ return null;
31
+ }
32
+ if (spec === null) {
33
+ functionNotFound(server, ctx, route, isQuery, id);
34
+ return null;
35
+ }
36
+ if (isQuery && !(0, functions_1.isQueryFunctionSpec)(spec)) {
37
+ if (!(0, functions_2.isClientContext)(ctx)) {
38
+ return null;
39
+ }
40
+ (0, sendError_1.sendError)(server, ctx, error_1.BasedErrorCode.FunctionIsNotObservable, {
41
+ route,
42
+ observableId: id,
43
+ });
44
+ return null;
45
+ }
46
+ if (isStream && !(0, functions_1.isStreamFunctionSpec)(spec)) {
47
+ if (!(0, functions_2.isClientContext)(ctx)) {
48
+ return null;
49
+ }
50
+ if ((0, functions_1.isQueryFunctionSpec)(spec)) {
51
+ (0, sendError_1.sendError)(server, ctx, error_1.BasedErrorCode.CannotStreamToObservableFunction, {
52
+ route,
53
+ requestId: id,
54
+ });
55
+ return null;
56
+ }
57
+ (0, sendError_1.sendError)(server, ctx, error_1.BasedErrorCode.FunctionIsNotStream, {
58
+ route,
59
+ requestId: id,
60
+ });
61
+ return null;
62
+ }
63
+ if (!isStream && !isQuery) {
64
+ if ((0, functions_1.isQueryFunctionSpec)(spec)) {
65
+ if (!(0, functions_2.isClientContext)(ctx)) {
66
+ return null;
67
+ }
68
+ (0, sendError_1.sendError)(server, ctx, error_1.BasedErrorCode.FunctionIsObservable, {
69
+ route,
70
+ requestId: id,
71
+ });
72
+ return null;
73
+ }
74
+ if ((0, functions_1.isStreamFunctionSpec)(spec)) {
75
+ if (!(0, functions_2.isClientContext)(ctx)) {
76
+ return null;
77
+ }
78
+ (0, sendError_1.sendError)(server, ctx, error_1.BasedErrorCode.FunctionIsStream, {
79
+ route,
80
+ requestId: id,
81
+ });
82
+ return null;
83
+ }
84
+ }
85
+ // @ts-ignore fixed by chekcing the specs
86
+ return spec;
87
+ }
88
+ catch (err) {
89
+ functionNotFound(server, ctx, route, isQuery, id);
90
+ }
91
+ return null;
92
+ };
93
+ exports.installFn = installFn;
94
+ //# sourceMappingURL=installFn.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"installFn.js","sourceRoot":"","sources":["../src/installFn.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,3 @@
1
1
  import { BasedServer } from '../server';
2
2
  import { ActiveObservable } from './types';
3
- export declare const createObs: (server: BasedServer, name: string, id: number, payload: any) => ActiveObservable;
3
+ export declare const createObs: (server: BasedServer, name: string, id: number, payload: any, noStart?: boolean) => ActiveObservable;
@@ -3,7 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.createObs = void 0;
4
4
  const start_1 = require("./start");
5
5
  const get_1 = require("./get");
6
- const createObs = (server, name, id, payload) => {
6
+ const createObs = (server, name, id, payload, noStart) => {
7
7
  if ((0, get_1.hasObs)(server, id)) {
8
8
  const msg = `Allready has observable ${name} ${id}`;
9
9
  console.error(msg);
@@ -17,12 +17,16 @@ const createObs = (server, name, id, payload) => {
17
17
  id,
18
18
  name,
19
19
  isDestroyed: false,
20
+ startId: 0,
20
21
  };
21
22
  if (!server.activeObservables[name]) {
22
23
  server.activeObservables[name] = new Map();
23
24
  }
24
25
  server.activeObservables[name].set(id, obs);
25
26
  server.activeObservablesById.set(id, obs);
27
+ if (noStart) {
28
+ return obs;
29
+ }
26
30
  (0, start_1.start)(server, id);
27
31
  return obs;
28
32
  };
@@ -1 +1 @@
1
- {"version":3,"file":"create.js","sourceRoot":"","sources":["../../src/observable/create.ts"],"names":[],"mappings":";;;AAEA,mCAA+B;AAC/B,+BAA8B;AAEvB,MAAM,SAAS,GAAG,CACvB,MAAmB,EACnB,IAAY,EACZ,EAAU,EACV,OAAY,EACM,EAAE;IACpB,IAAI,IAAA,YAAM,EAAC,MAAM,EAAE,EAAE,CAAC,EAAE;QACtB,MAAM,GAAG,GAAG,2BAA2B,IAAI,IAAI,EAAE,EAAE,CAAA;QACnD,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;QAClB,MAAM,IAAI,KAAK,CAAC,GAAG,CAAC,CAAA;KACrB;IAED,MAAM,GAAG,GAAqB;QAC5B,OAAO;QACP,WAAW,EAAE,KAAK;QAClB,OAAO,EAAE,IAAI,GAAG,EAAE;QAClB,sBAAsB,EAAE,IAAI,GAAG,EAAE;QACjC,EAAE;QACF,IAAI;QACJ,WAAW,EAAE,KAAK;KACnB,CAAA;IAED,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,IAAI,CAAC,EAAE;QACnC,MAAM,CAAC,iBAAiB,CAAC,IAAI,CAAC,GAAG,IAAI,GAAG,EAAE,CAAA;KAC3C;IAED,MAAM,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,CAAA;IAC3C,MAAM,CAAC,qBAAqB,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,CAAA;IAEzC,IAAA,aAAK,EAAC,MAAM,EAAE,EAAE,CAAC,CAAA;IAEjB,OAAO,GAAG,CAAA;AACZ,CAAC,CAAA;AAhCY,QAAA,SAAS,aAgCrB"}
1
+ {"version":3,"file":"create.js","sourceRoot":"","sources":["../../src/observable/create.ts"],"names":[],"mappings":";;;AAEA,mCAA+B;AAC/B,+BAA8B;AAEvB,MAAM,SAAS,GAAG,CACvB,MAAmB,EACnB,IAAY,EACZ,EAAU,EACV,OAAY,EACZ,OAAiB,EACC,EAAE;IACpB,IAAI,IAAA,YAAM,EAAC,MAAM,EAAE,EAAE,CAAC,EAAE;QACtB,MAAM,GAAG,GAAG,2BAA2B,IAAI,IAAI,EAAE,EAAE,CAAA;QACnD,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;QAClB,MAAM,IAAI,KAAK,CAAC,GAAG,CAAC,CAAA;KACrB;IAED,MAAM,GAAG,GAAqB;QAC5B,OAAO;QACP,WAAW,EAAE,KAAK;QAClB,OAAO,EAAE,IAAI,GAAG,EAAE;QAClB,sBAAsB,EAAE,IAAI,GAAG,EAAE;QACjC,EAAE;QACF,IAAI;QACJ,WAAW,EAAE,KAAK;QAClB,OAAO,EAAE,CAAC;KACX,CAAA;IAED,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,IAAI,CAAC,EAAE;QACnC,MAAM,CAAC,iBAAiB,CAAC,IAAI,CAAC,GAAG,IAAI,GAAG,EAAE,CAAA;KAC3C;IAED,MAAM,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,CAAA;IAC3C,MAAM,CAAC,qBAAqB,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,CAAA;IAEzC,IAAI,OAAO,EAAE;QACX,OAAO,GAAG,CAAA;KACX;IAED,IAAA,aAAK,EAAC,MAAM,EAAE,EAAE,CAAC,CAAA;IACjB,OAAO,GAAG,CAAA;AACZ,CAAC,CAAA;AArCY,QAAA,SAAS,aAqCrB"}
@@ -21,7 +21,7 @@ const destroyObs = (server, id) => {
21
21
  return;
22
22
  }
23
23
  const spec = server.functions.specs[obs.name];
24
- if (!spec || !(0, functions_1.isObservableFunctionSpec)(spec)) {
24
+ if (!spec || !(0, functions_1.isQueryFunctionSpec)(spec)) {
25
25
  console.warn('Cannot find observable function spec!', obs.name);
26
26
  return;
27
27
  }
@@ -1 +1 @@
1
- {"version":3,"file":"destroy.js","sourceRoot":"","sources":["../../src/observable/destroy.ts"],"names":[],"mappings":";;;AAAA,4CAAuD;AAGhD,MAAM,UAAU,GAAG,CAAC,MAAmB,EAAE,EAAU,EAAE,EAAE;IAC5D,MAAM,GAAG,GAAG,MAAM,CAAC,qBAAqB,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;IAEhD,IAAI,CAAC,GAAG,EAAE;QACR,OAAO,CAAC,KAAK,CAAC,YAAY,EAAE,EAAE,EAAE,iBAAiB,CAAC,CAAA;QAClD,OAAM;KACP;IAED,IAAI,GAAG,CAAC,WAAW,EAAE;QACnB,OAAO,CAAC,KAAK,CAAC,wBAAwB,EAAE,GAAG,CAAC,IAAI,CAAC,CAAA;QACjD,OAAM;KACP;IAED,IACE,GAAG,CAAC,OAAO,CAAC,IAAI;QAChB,GAAG,CAAC,sBAAsB,CAAC,IAAI;QAC/B,GAAG,CAAC,UAAU,EAAE,IAAI,EACpB;QACA,IAAI,GAAG,CAAC,cAAc,EAAE;YACtB,OAAO,CAAC,IAAI,CACV,sEAAsE,GAAG,CAAC,IAAI,IAAI,GAAG,CAAC,EAAE,EAAE,EAC1F,GAAG,CAAC,OAAO,CACZ,CAAA;SACF;QACD,OAAM;KACP;IAED,MAAM,IAAI,GAAG,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;IAE7C,IAAI,CAAC,IAAI,IAAI,CAAC,IAAA,oCAAwB,EAAC,IAAI,CAAC,EAAE;QAC5C,OAAO,CAAC,IAAI,CAAC,uCAAuC,EAAE,GAAG,CAAC,IAAI,CAAC,CAAA;QAC/D,OAAM;KACP;IAED,IAAI,CAAC,GAAG,CAAC,cAAc,EAAE;QACvB,MAAM,eAAe,GACnB,IAAI,CAAC,eAAe,IAAI,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,eAAe,CAAA;QAEjE,GAAG,CAAC,cAAc,GAAG,UAAU,CAAC,GAAG,EAAE;YACnC,2EAA2E;YAC3E,GAAG,CAAC,cAAc,GAAG,IAAI,CAAA;YACzB,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;gBACvC,OAAO,CAAC,IAAI,CAAC,iDAAiD,CAAC,CAAA;gBAC/D,MAAM,CAAC,qBAAqB,CAAC,MAAM,CAAC,EAAE,CAAC,CAAA;gBACvC,OAAM;aACP;YACD,MAAM,CAAC,iBAAiB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAA;YAC7C,IAAI,MAAM,CAAC,iBAAiB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,IAAI,KAAK,CAAC,EAAE;gBACjD,OAAO,MAAM,CAAC,iBAAiB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;aAC1C;YACD,MAAM,CAAC,qBAAqB,CAAC,MAAM,CAAC,EAAE,CAAC,CAAA;YACvC,GAAG,CAAC,WAAW,GAAG,IAAI,CAAA;YACtB,IAAI,GAAG,CAAC,aAAa,EAAE;gBACrB,GAAG,CAAC,aAAa,EAAE,CAAA;aACpB;QACH,CAAC,EAAE,eAAe,CAAC,CAAA;KACpB;AACH,CAAC,CAAA;AAzDY,QAAA,UAAU,cAyDtB"}
1
+ {"version":3,"file":"destroy.js","sourceRoot":"","sources":["../../src/observable/destroy.ts"],"names":[],"mappings":";;;AAAA,4CAAkD;AAG3C,MAAM,UAAU,GAAG,CAAC,MAAmB,EAAE,EAAU,EAAE,EAAE;IAC5D,MAAM,GAAG,GAAG,MAAM,CAAC,qBAAqB,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;IAEhD,IAAI,CAAC,GAAG,EAAE;QACR,OAAO,CAAC,KAAK,CAAC,YAAY,EAAE,EAAE,EAAE,iBAAiB,CAAC,CAAA;QAClD,OAAM;KACP;IAED,IAAI,GAAG,CAAC,WAAW,EAAE;QACnB,OAAO,CAAC,KAAK,CAAC,wBAAwB,EAAE,GAAG,CAAC,IAAI,CAAC,CAAA;QACjD,OAAM;KACP;IAED,IACE,GAAG,CAAC,OAAO,CAAC,IAAI;QAChB,GAAG,CAAC,sBAAsB,CAAC,IAAI;QAC/B,GAAG,CAAC,UAAU,EAAE,IAAI,EACpB;QACA,IAAI,GAAG,CAAC,cAAc,EAAE;YACtB,OAAO,CAAC,IAAI,CACV,sEAAsE,GAAG,CAAC,IAAI,IAAI,GAAG,CAAC,EAAE,EAAE,EAC1F,GAAG,CAAC,OAAO,CACZ,CAAA;SACF;QACD,OAAM;KACP;IAED,MAAM,IAAI,GAAG,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;IAE7C,IAAI,CAAC,IAAI,IAAI,CAAC,IAAA,+BAAmB,EAAC,IAAI,CAAC,EAAE;QACvC,OAAO,CAAC,IAAI,CAAC,uCAAuC,EAAE,GAAG,CAAC,IAAI,CAAC,CAAA;QAC/D,OAAM;KACP;IAED,IAAI,CAAC,GAAG,CAAC,cAAc,EAAE;QACvB,MAAM,eAAe,GACnB,IAAI,CAAC,eAAe,IAAI,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,eAAe,CAAA;QAEjE,GAAG,CAAC,cAAc,GAAG,UAAU,CAAC,GAAG,EAAE;YACnC,2EAA2E;YAC3E,GAAG,CAAC,cAAc,GAAG,IAAI,CAAA;YACzB,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;gBACvC,OAAO,CAAC,IAAI,CAAC,iDAAiD,CAAC,CAAA;gBAC/D,MAAM,CAAC,qBAAqB,CAAC,MAAM,CAAC,EAAE,CAAC,CAAA;gBACvC,OAAM;aACP;YACD,MAAM,CAAC,iBAAiB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAA;YAC7C,IAAI,MAAM,CAAC,iBAAiB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,IAAI,KAAK,CAAC,EAAE;gBACjD,OAAO,MAAM,CAAC,iBAAiB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;aAC1C;YACD,MAAM,CAAC,qBAAqB,CAAC,MAAM,CAAC,EAAE,CAAC,CAAA;YACvC,GAAG,CAAC,WAAW,GAAG,IAAI,CAAA;YACtB,IAAI,GAAG,CAAC,aAAa,EAAE;gBACrB,GAAG,CAAC,aAAa,EAAE,CAAA;aACpB;QACH,CAAC,EAAE,eAAe,CAAC,CAAA;KACpB;AACH,CAAC,CAAA;AAzDY,QAAA,UAAU,cAyDtB"}
@@ -1,4 +1,4 @@
1
1
  import { BasedServer } from '../server';
2
- import { Context, WebSocketSession, HttpSession } from '../context';
2
+ import { Context, WebSocketSession, HttpSession } from '@based/functions';
3
3
  import { BasedErrorCode, BasedError } from '../error';
4
4
  export declare const sendObsGetError: (server: BasedServer, ctx: Context<WebSocketSession | HttpSession>, id: number, name: string, err: BasedError<BasedErrorCode.ObservableFunctionError>) => void;
@@ -4,7 +4,6 @@ export * from './destroy';
4
4
  export * from './create';
5
5
  export * from './extendCache';
6
6
  export * from './start';
7
- export * from './verify';
8
7
  export * from './send';
9
8
  export * from './get';
10
9
  export * from './types';
@@ -20,7 +20,6 @@ __exportStar(require("./destroy"), exports);
20
20
  __exportStar(require("./create"), exports);
21
21
  __exportStar(require("./extendCache"), exports);
22
22
  __exportStar(require("./start"), exports);
23
- __exportStar(require("./verify"), exports);
24
23
  __exportStar(require("./send"), exports);
25
24
  __exportStar(require("./get"), exports);
26
25
  __exportStar(require("./types"), exports);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/observable/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,8CAA2B;AAC3B,0CAAuB;AACvB,4CAAyB;AACzB,2CAAwB;AACxB,gDAA6B;AAC7B,0CAAuB;AACvB,2CAAwB;AACxB,yCAAsB;AACtB,wCAAqB;AACrB,0CAAuB;AACvB,oDAAiC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/observable/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,8CAA2B;AAC3B,0CAAuB;AACvB,4CAAyB;AACzB,2CAAwB;AACxB,gDAA6B;AAC7B,0CAAuB;AACvB,yCAAsB;AACtB,wCAAqB;AACrB,0CAAuB;AACvB,oDAAiC"}
@@ -1,6 +1,6 @@
1
- import { Context, WebSocketSession, HttpSession } from '../context';
1
+ import { Context, WebSocketSession, HttpSession } from '@based/functions';
2
2
  import { BasedServer } from '../server';
3
- import { BasedErrorCode, BasedError } from '../error';
3
+ import { BasedErrorCode, BasedErrorData } from '../error';
4
4
  import { ActiveObservable } from './types';
5
5
  export declare const sendObsWs: (ctx: Context<WebSocketSession>, buffer: Uint8Array, obs: ActiveObservable) => void;
6
- export declare const sendObsGetError: (server: BasedServer, ctx: Context<WebSocketSession | HttpSession>, id: number, name: string, err: BasedError<BasedErrorCode.ObservableFunctionError>) => void;
6
+ export declare const sendObsGetError: (server: BasedServer, ctx: Context<WebSocketSession | HttpSession>, id: number, err: BasedErrorData<BasedErrorCode.ObservableFunctionError>) => void;
@@ -18,14 +18,8 @@ const sendObsWs = (ctx, buffer, obs) => {
18
18
  }
19
19
  };
20
20
  exports.sendObsWs = sendObsWs;
21
- const sendObsGetError = (server, ctx, id, name, err) => {
22
- (0, sendError_1.sendError)(server, ctx, err.code, {
23
- observableId: id,
24
- route: {
25
- name,
26
- },
27
- err: err,
28
- });
21
+ const sendObsGetError = (server, ctx, id, err) => {
22
+ (0, sendError_1.sendErrorData)(ctx, err);
29
23
  (0, destroy_1.destroyObs)(server, id);
30
24
  };
31
25
  exports.sendObsGetError = sendObsGetError;
@@ -1 +1 @@
1
- {"version":3,"file":"send.js","sourceRoot":"","sources":["../../src/observable/send.ts"],"names":[],"mappings":";;;AACA,0CAAsC;AAEtC,uCAAsC;AAEtC,4CAAwC;AAGjC,MAAM,SAAS,GAAG,CACvB,GAA8B,EAC9B,MAAkB,EAClB,GAAqB,EACrB,EAAE;IACF,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE;QAChB,OAAM;KACP;IACD,IAAI,GAAG,CAAC,WAAW,EAAE;QACnB,MAAM,MAAM,GAAG,IAAA,mBAAQ,EAAC,MAAM,EAAE,GAAG,CAAC,EAAE,CAAC,CAAA;QACvC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,EAAE,KAAK,CAAC,CAAA;QACrC,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,CAAA;KACtB;SAAM;QACL,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,EAAE,KAAK,CAAC,CAAA;KACtC;AACH,CAAC,CAAA;AAfY,QAAA,SAAS,aAerB;AAEM,MAAM,eAAe,GAAG,CAC7B,MAAmB,EACnB,GAA4C,EAC5C,EAAU,EACV,IAAY,EACZ,GAAuD,EACvD,EAAE;IACF,IAAA,qBAAS,EAAC,MAAM,EAAE,GAAG,EAAE,GAAG,CAAC,IAAI,EAAE;QAC/B,YAAY,EAAE,EAAE;QAChB,KAAK,EAAE;YACL,IAAI;SACL;QACD,GAAG,EAAE,GAAG;KACT,CAAC,CAAA;IACF,IAAA,oBAAU,EAAC,MAAM,EAAE,EAAE,CAAC,CAAA;AACxB,CAAC,CAAA;AAfY,QAAA,eAAe,mBAe3B"}
1
+ {"version":3,"file":"send.js","sourceRoot":"","sources":["../../src/observable/send.ts"],"names":[],"mappings":";;;AACA,0CAAsC;AAEtC,uCAAsC;AAEtC,4CAA4C;AAGrC,MAAM,SAAS,GAAG,CACvB,GAA8B,EAC9B,MAAkB,EAClB,GAAqB,EACrB,EAAE;IACF,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE;QAChB,OAAM;KACP;IACD,IAAI,GAAG,CAAC,WAAW,EAAE;QACnB,MAAM,MAAM,GAAG,IAAA,mBAAQ,EAAC,MAAM,EAAE,GAAG,CAAC,EAAE,CAAC,CAAA;QACvC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,EAAE,KAAK,CAAC,CAAA;QACrC,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,CAAA;KACtB;SAAM;QACL,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,EAAE,KAAK,CAAC,CAAA;KACtC;AACH,CAAC,CAAA;AAfY,QAAA,SAAS,aAerB;AAEM,MAAM,eAAe,GAAG,CAC7B,MAAmB,EACnB,GAA4C,EAC5C,EAAU,EACV,GAA2D,EAC3D,EAAE;IACF,IAAA,yBAAa,EAAC,GAAG,EAAE,GAAG,CAAC,CAAA;IACvB,IAAA,oBAAU,EAAC,MAAM,EAAE,EAAE,CAAC,CAAA;AACxB,CAAC,CAAA;AARY,QAAA,eAAe,mBAQ3B"}
@@ -1,3 +1,4 @@
1
1
  import { ActiveObservable } from '../types';
2
2
  import { BasedServer } from '../../server';
3
- export declare const errorListener: (server: BasedServer, obs: ActiveObservable, err: any) => void;
3
+ import { BasedErrorCode, BasedErrorData } from '../../error';
4
+ export declare const errorListener: (server: BasedServer, obs: ActiveObservable, err: Error | BasedErrorData<BasedErrorCode.ObservableFunctionError>) => void;
@@ -4,32 +4,34 @@ exports.errorListener = void 0;
4
4
  const error_1 = require("../../error");
5
5
  const protocol_1 = require("../../protocol");
6
6
  const errorListener = (server, obs, err) => {
7
- obs.error = err;
8
7
  delete obs.cache;
9
8
  delete obs.diffCache;
10
9
  delete obs.checksum;
11
10
  delete obs.previousChecksum;
12
11
  obs.isDeflate = false;
13
12
  obs.reusedCache = false;
14
- const errorData = (0, error_1.createError)(server, { session: { id: obs.id, name: obs.name } }, err.code || error_1.BasedErrorCode.ObservableFunctionError, {
15
- err,
16
- observableId: obs.id,
17
- route: {
18
- name: obs.name,
19
- },
20
- });
13
+ obs.error =
14
+ err instanceof Error
15
+ ? (0, error_1.createError)(server, { session: { type: 'query', id: obs.id, name: obs.name } }, error_1.BasedErrorCode.ObservableFunctionError, {
16
+ err,
17
+ observableId: obs.id,
18
+ route: {
19
+ name: obs.name,
20
+ },
21
+ })
22
+ : err;
21
23
  if (obs.clients.size) {
22
- server.uwsApp.publish(String(obs.id), (0, protocol_1.encodeErrorResponse)((0, protocol_1.valueToBuffer)(errorData)), true, false);
24
+ server.uwsApp.publish(String(obs.id), (0, protocol_1.encodeErrorResponse)((0, protocol_1.valueToBuffer)(obs.error)), true, false);
23
25
  }
24
26
  if (obs.functionObserveClients.size) {
25
27
  obs.functionObserveClients.forEach((fnUpdate) => {
26
- fnUpdate(obs.cache, obs.checksum, obs.diffCache, obs.previousChecksum, obs.isDeflate, obs.rawData, errorData);
28
+ fnUpdate(obs.cache, obs.checksum, obs.diffCache, obs.previousChecksum, obs.isDeflate, obs.rawData, obs.error);
27
29
  });
28
30
  }
29
31
  if (obs.onNextData) {
30
32
  const onNextData = obs.onNextData;
31
33
  delete obs.onNextData;
32
- onNextData.forEach((fn) => fn(err));
34
+ onNextData.forEach((fn) => fn(obs.error));
33
35
  }
34
36
  };
35
37
  exports.errorListener = errorListener;
@@ -1 +1 @@
1
- {"version":3,"file":"error.js","sourceRoot":"","sources":["../../../src/observable/start/error.ts"],"names":[],"mappings":";;;AAEA,uCAAyD;AACzD,6CAAmE;AAE5D,MAAM,aAAa,GAAG,CAC3B,MAAmB,EACnB,GAAqB,EACrB,GAAG,EACH,EAAE;IACF,GAAG,CAAC,KAAK,GAAG,GAAG,CAAA;IACf,OAAO,GAAG,CAAC,KAAK,CAAA;IAChB,OAAO,GAAG,CAAC,SAAS,CAAA;IACpB,OAAO,GAAG,CAAC,QAAQ,CAAA;IACnB,OAAO,GAAG,CAAC,gBAAgB,CAAA;IAE3B,GAAG,CAAC,SAAS,GAAG,KAAK,CAAA;IACrB,GAAG,CAAC,WAAW,GAAG,KAAK,CAAA;IAEvB,MAAM,SAAS,GAAG,IAAA,mBAAW,EAC3B,MAAM,EACN,EAAE,OAAO,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,EAAE,EAC3C,GAAG,CAAC,IAAI,IAAI,sBAAc,CAAC,uBAAuB,EAClD;QACE,GAAG;QACH,YAAY,EAAE,GAAG,CAAC,EAAE;QACpB,KAAK,EAAE;YACL,IAAI,EAAE,GAAG,CAAC,IAAI;SACf;KACF,CACF,CAAA;IAED,IAAI,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE;QACpB,MAAM,CAAC,MAAM,CAAC,OAAO,CACnB,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,EACd,IAAA,8BAAmB,EAAC,IAAA,wBAAa,EAAC,SAAS,CAAC,CAAC,EAC7C,IAAI,EACJ,KAAK,CACN,CAAA;KACF;IAED,IAAI,GAAG,CAAC,sBAAsB,CAAC,IAAI,EAAE;QACnC,GAAG,CAAC,sBAAsB,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,EAAE;YAC9C,QAAQ,CACN,GAAG,CAAC,KAAK,EACT,GAAG,CAAC,QAAQ,EACZ,GAAG,CAAC,SAAS,EACb,GAAG,CAAC,gBAAgB,EACpB,GAAG,CAAC,SAAS,EACb,GAAG,CAAC,OAAO,EACX,SAAS,CACV,CAAA;QACH,CAAC,CAAC,CAAA;KACH;IAED,IAAI,GAAG,CAAC,UAAU,EAAE;QAClB,MAAM,UAAU,GAAG,GAAG,CAAC,UAAU,CAAA;QACjC,OAAO,GAAG,CAAC,UAAU,CAAA;QACrB,UAAU,CAAC,OAAO,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAA;KACpC;AACH,CAAC,CAAA;AAvDY,QAAA,aAAa,iBAuDzB"}
1
+ {"version":3,"file":"error.js","sourceRoot":"","sources":["../../../src/observable/start/error.ts"],"names":[],"mappings":";;;AAEA,uCAAyE;AACzE,6CAAmE;AAE5D,MAAM,aAAa,GAAG,CAC3B,MAAmB,EACnB,GAAqB,EACrB,GAAmE,EACnE,EAAE;IACF,OAAO,GAAG,CAAC,KAAK,CAAA;IAChB,OAAO,GAAG,CAAC,SAAS,CAAA;IACpB,OAAO,GAAG,CAAC,QAAQ,CAAA;IACnB,OAAO,GAAG,CAAC,gBAAgB,CAAA;IAE3B,GAAG,CAAC,SAAS,GAAG,KAAK,CAAA;IACrB,GAAG,CAAC,WAAW,GAAG,KAAK,CAAA;IAEvB,GAAG,CAAC,KAAK;QACP,GAAG,YAAY,KAAK;YAClB,CAAC,CAAC,IAAA,mBAAW,EACT,MAAM,EACN,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,EAAE,EAC1D,sBAAc,CAAC,uBAAuB,EACtC;gBACE,GAAG;gBACH,YAAY,EAAE,GAAG,CAAC,EAAE;gBACpB,KAAK,EAAE;oBACL,IAAI,EAAE,GAAG,CAAC,IAAI;iBACf;aACF,CACF;YACH,CAAC,CAAC,GAAG,CAAA;IAET,IAAI,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE;QACpB,MAAM,CAAC,MAAM,CAAC,OAAO,CACnB,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,EACd,IAAA,8BAAmB,EAAC,IAAA,wBAAa,EAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAC7C,IAAI,EACJ,KAAK,CACN,CAAA;KACF;IAED,IAAI,GAAG,CAAC,sBAAsB,CAAC,IAAI,EAAE;QACnC,GAAG,CAAC,sBAAsB,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,EAAE;YAC9C,QAAQ,CACN,GAAG,CAAC,KAAK,EACT,GAAG,CAAC,QAAQ,EACZ,GAAG,CAAC,SAAS,EACb,GAAG,CAAC,gBAAgB,EACpB,GAAG,CAAC,SAAS,EACb,GAAG,CAAC,OAAO,EACX,GAAG,CAAC,KAAK,CACV,CAAA;QACH,CAAC,CAAC,CAAA;KACH;IAED,IAAI,GAAG,CAAC,UAAU,EAAE;QAClB,MAAM,UAAU,GAAG,GAAG,CAAC,UAAU,CAAA;QACjC,OAAO,GAAG,CAAC,UAAU,CAAA;QACrB,UAAU,CAAC,OAAO,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAA;KAC1C;AACH,CAAC,CAAA;AAzDY,QAAA,aAAa,iBAyDzB"}
@@ -5,33 +5,40 @@ const functions_1 = require("../../functions");
5
5
  const update_1 = require("./update");
6
6
  const error_1 = require("./error");
7
7
  const start = (server, id) => {
8
- // TODO: install here - if fn is not available is ok - just wait until start gets called again
9
8
  const obs = server.activeObservablesById.get(id);
10
9
  if (obs.closeFunction) {
11
10
  obs.closeFunction();
12
11
  delete obs.closeFunction;
13
12
  }
14
13
  const spec = server.functions.specs[obs.name];
15
- if (!spec || !(0, functions_1.isObservableFunctionSpec)(spec)) {
14
+ if (!spec || !(0, functions_1.isQueryFunctionSpec)(spec)) {
16
15
  console.warn('Cannot find observable function spec!', obs.name);
17
16
  return;
18
17
  }
19
18
  const payload = obs.payload;
20
- const update = (data, checksum, diff, fromChecksum, isDeflate, rawData) => (0, update_1.updateListener)(server, obs, data, checksum, diff, fromChecksum, isDeflate, rawData);
19
+ const update = (data, checksum, diff, fromChecksum, isDeflate, rawData, err) => {
20
+ if (err) {
21
+ (0, error_1.errorListener)(server, obs, err);
22
+ return;
23
+ }
24
+ (0, update_1.updateListener)(server, obs, data, checksum, diff, fromChecksum, isDeflate, rawData);
25
+ };
21
26
  update.__internalObs__ = true;
27
+ const startId = ++obs.startId;
22
28
  try {
23
- // TODO: make these functions receive server and obs (as last args) - every fn that you dont need is WIN
24
- const r = spec.function(payload, update);
29
+ const r = spec.function(server.client, payload, update);
25
30
  if (r instanceof Promise) {
26
31
  r.then((close) => {
27
- if (obs.isDestroyed) {
32
+ if (obs.isDestroyed || startId !== obs.startId) {
28
33
  close();
29
34
  }
30
35
  else {
31
36
  obs.closeFunction = close;
32
37
  }
33
38
  }).catch((err) => {
34
- (0, error_1.errorListener)(server, obs, err);
39
+ if (!(obs.isDestroyed || startId !== obs.startId)) {
40
+ (0, error_1.errorListener)(server, obs, err);
41
+ }
35
42
  });
36
43
  }
37
44
  else {
@@ -39,7 +46,9 @@ const start = (server, id) => {
39
46
  }
40
47
  }
41
48
  catch (err) {
42
- (0, error_1.errorListener)(server, obs, err);
49
+ if (!(obs.isDestroyed || startId !== obs.startId)) {
50
+ (0, error_1.errorListener)(server, obs, err);
51
+ }
43
52
  }
44
53
  };
45
54
  exports.start = start;
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/observable/start/index.ts"],"names":[],"mappings":";;;AACA,+CAA0D;AAC1D,qCAAyC;AACzC,mCAAuC;AAGhC,MAAM,KAAK,GAAG,CAAC,MAAmB,EAAE,EAAU,EAAE,EAAE;IACvD,8FAA8F;IAE9F,MAAM,GAAG,GAAG,MAAM,CAAC,qBAAqB,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;IAEhD,IAAI,GAAG,CAAC,aAAa,EAAE;QACrB,GAAG,CAAC,aAAa,EAAE,CAAA;QACnB,OAAO,GAAG,CAAC,aAAa,CAAA;KACzB;IAED,MAAM,IAAI,GAAG,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;IAE7C,IAAI,CAAC,IAAI,IAAI,CAAC,IAAA,oCAAwB,EAAC,IAAI,CAAC,EAAE;QAC5C,OAAO,CAAC,IAAI,CAAC,uCAAuC,EAAE,GAAG,CAAC,IAAI,CAAC,CAAA;QAC/D,OAAM;KACP;IAED,MAAM,OAAO,GAAG,GAAG,CAAC,OAAO,CAAA;IAE3B,MAAM,MAAM,GAA6B,CACvC,IAAI,EACJ,QAAQ,EACR,IAAI,EACJ,YAAY,EACZ,SAAS,EACT,OAAO,EACP,EAAE,CACF,IAAA,uBAAc,EACZ,MAAM,EACN,GAAG,EACH,IAAI,EACJ,QAAQ,EACR,IAAI,EACJ,YAAY,EACZ,SAAS,EACT,OAAO,CACR,CAAA;IAEH,MAAM,CAAC,eAAe,GAAG,IAAI,CAAA;IAE7B,IAAI;QACF,wGAAwG;QACxG,MAAM,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC,CAAA;QAExC,IAAI,CAAC,YAAY,OAAO,EAAE;YACxB,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE;gBACf,IAAI,GAAG,CAAC,WAAW,EAAE;oBACnB,KAAK,EAAE,CAAA;iBACR;qBAAM;oBACL,GAAG,CAAC,aAAa,GAAG,KAAK,CAAA;iBAC1B;YACH,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;gBACf,IAAA,qBAAa,EAAC,MAAM,EAAE,GAAG,EAAE,GAAG,CAAC,CAAA;YACjC,CAAC,CAAC,CAAA;SACH;aAAM;YACL,GAAG,CAAC,aAAa,GAAG,CAAC,CAAA;SACtB;KACF;IAAC,OAAO,GAAG,EAAE;QACZ,IAAA,qBAAa,EAAC,MAAM,EAAE,GAAG,EAAE,GAAG,CAAC,CAAA;KAChC;AACH,CAAC,CAAA;AA5DY,QAAA,KAAK,SA4DjB"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/observable/start/index.ts"],"names":[],"mappings":";;;AACA,+CAAqD;AACrD,qCAAyC;AACzC,mCAAuC;AAGhC,MAAM,KAAK,GAAG,CAAC,MAAmB,EAAE,EAAU,EAAE,EAAE;IACvD,MAAM,GAAG,GAAG,MAAM,CAAC,qBAAqB,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;IAEhD,IAAI,GAAG,CAAC,aAAa,EAAE;QACrB,GAAG,CAAC,aAAa,EAAE,CAAA;QACnB,OAAO,GAAG,CAAC,aAAa,CAAA;KACzB;IAED,MAAM,IAAI,GAAG,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;IAE7C,IAAI,CAAC,IAAI,IAAI,CAAC,IAAA,+BAAmB,EAAC,IAAI,CAAC,EAAE;QACvC,OAAO,CAAC,IAAI,CAAC,uCAAuC,EAAE,GAAG,CAAC,IAAI,CAAC,CAAA;QAC/D,OAAM;KACP;IAED,MAAM,OAAO,GAAG,GAAG,CAAC,OAAO,CAAA;IAE3B,MAAM,MAAM,GAA6B,CACvC,IAAI,EACJ,QAAQ,EACR,IAAI,EACJ,YAAY,EACZ,SAAS,EACT,OAAO,EACP,GAAG,EACH,EAAE;QACF,IAAI,GAAG,EAAE;YACP,IAAA,qBAAa,EAAC,MAAM,EAAE,GAAG,EAAE,GAAG,CAAC,CAAA;YAC/B,OAAM;SACP;QACD,IAAA,uBAAc,EACZ,MAAM,EACN,GAAG,EACH,IAAI,EACJ,QAAQ,EACR,IAAI,EACJ,YAAY,EACZ,SAAS,EACT,OAAO,CACR,CAAA;IACH,CAAC,CAAA;IAED,MAAM,CAAC,eAAe,GAAG,IAAI,CAAA;IAC7B,MAAM,OAAO,GAAG,EAAE,GAAG,CAAC,OAAO,CAAA;IAE7B,IAAI;QACF,MAAM,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,CAAA;QACvD,IAAI,CAAC,YAAY,OAAO,EAAE;YACxB,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE;gBACf,IAAI,GAAG,CAAC,WAAW,IAAI,OAAO,KAAK,GAAG,CAAC,OAAO,EAAE;oBAC9C,KAAK,EAAE,CAAA;iBACR;qBAAM;oBACL,GAAG,CAAC,aAAa,GAAG,KAAK,CAAA;iBAC1B;YACH,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;gBACf,IAAI,CAAC,CAAC,GAAG,CAAC,WAAW,IAAI,OAAO,KAAK,GAAG,CAAC,OAAO,CAAC,EAAE;oBACjD,IAAA,qBAAa,EAAC,MAAM,EAAE,GAAG,EAAE,GAAG,CAAC,CAAA;iBAChC;YACH,CAAC,CAAC,CAAA;SACH;aAAM;YACL,GAAG,CAAC,aAAa,GAAG,CAAC,CAAA;SACtB;KACF;IAAC,OAAO,GAAG,EAAE;QACZ,IAAI,CAAC,CAAC,GAAG,CAAC,WAAW,IAAI,OAAO,KAAK,GAAG,CAAC,OAAO,CAAC,EAAE;YACjD,IAAA,qBAAa,EAAC,MAAM,EAAE,GAAG,EAAE,GAAG,CAAC,CAAA;SAChC;KACF;AACH,CAAC,CAAA;AAnEY,QAAA,KAAK,SAmEjB"}
@@ -1,7 +1,7 @@
1
1
  import { BasedServer } from '../server';
2
2
  import { ActiveObservable, ObservableUpdateFunction } from './types';
3
- import { BasedError, BasedErrorCode } from '../error';
4
- import { WebSocketSession, Context } from '../context';
3
+ import { BasedErrorCode, BasedErrorData } from '../error';
4
+ import { WebSocketSession, Context } from '@based/functions';
5
5
  export declare const subscribeWs: (server: BasedServer, id: number, checksum: number, ctx: Context<WebSocketSession>) => void;
6
6
  export declare const subscribeFunction: (server: BasedServer, id: number, update: ObservableUpdateFunction) => void;
7
- export declare const subscribeNext: (obs: ActiveObservable, onNext: (err?: BasedError<BasedErrorCode.ObservableFunctionError>) => void) => void;
7
+ export declare const subscribeNext: (obs: ActiveObservable, onNext: (err?: BasedErrorData<BasedErrorCode.ObservableFunctionError>) => void) => void;