@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
@@ -0,0 +1,3 @@
1
+ import { Authorize, VerifyAuthState } from '@based/functions';
2
+ export declare const defaultAuthorize: Authorize;
3
+ export declare const defaultVerifyAuthState: VerifyAuthState;
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.defaultVerifyAuthState = exports.defaultAuthorize = void 0;
4
+ const defaultAuthorize = async () => {
5
+ return true;
6
+ };
7
+ exports.defaultAuthorize = defaultAuthorize;
8
+ const defaultVerifyAuthState = () => {
9
+ return true;
10
+ };
11
+ exports.defaultVerifyAuthState = defaultVerifyAuthState;
12
+ //# sourceMappingURL=defaultConfig.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"defaultConfig.js","sourceRoot":"","sources":["../../src/auth/defaultConfig.ts"],"names":[],"mappings":";;;AAEO,MAAM,gBAAgB,GAAc,KAAK,IAAI,EAAE;IACpD,OAAO,IAAI,CAAA;AACb,CAAC,CAAA;AAFY,QAAA,gBAAgB,oBAE5B;AAEM,MAAM,sBAAsB,GAAoB,GAAG,EAAE;IAC1D,OAAO,IAAI,CAAA;AACb,CAAC,CAAA;AAFY,QAAA,sBAAsB,0BAElC"}
@@ -1,15 +1,21 @@
1
- import { AuthState } from '../incoming/ws/auth';
2
1
  import { BasedServer } from '../server';
3
- import { AuthConfig, Authorize, AuthorizeConnection } from './types';
4
- import { Context, WebSocketSession } from '../context';
2
+ import { Context, AuthState, WebSocketSession, Authorize, AuthorizeConnection, VerifyAuthState } from '@based/functions';
5
3
  import parseAuthState from './parseAuthState';
6
4
  export { parseAuthState };
7
- export * from './types';
5
+ export declare type AuthConfig = {
6
+ authorize?: Authorize;
7
+ authorizeConnection?: AuthorizeConnection;
8
+ verifyAuthState?: VerifyAuthState;
9
+ };
8
10
  export declare class BasedAuth {
9
11
  server: BasedServer;
10
- authorize: Authorize;
11
12
  authorizeConnection: AuthorizeConnection;
13
+ verifyAuthState: VerifyAuthState;
14
+ authorize: Authorize;
12
15
  constructor(server: BasedServer, config?: AuthConfig);
13
16
  updateConfig(config: AuthConfig): void;
14
- sendAuthUpdate(ctx: Context<WebSocketSession>, authState: AuthState): void;
17
+ renewAuthState(ctx: Context, authState?: AuthState): void;
18
+ encodeAuthState(authState: AuthState): string;
19
+ decodeAuthState(authState: any): AuthState;
20
+ sendAuthState(ctx: Context<WebSocketSession>, authState: AuthState): void;
15
21
  }
@@ -1,32 +1,18 @@
1
1
  "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
- for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
- };
16
2
  var __importDefault = (this && this.__importDefault) || function (mod) {
17
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
18
4
  };
19
5
  Object.defineProperty(exports, "__esModule", { value: true });
20
6
  exports.BasedAuth = exports.parseAuthState = void 0;
21
7
  const protocol_1 = require("../protocol");
22
- const dummyAuth_1 = __importDefault(require("./dummyAuth"));
8
+ const functions_1 = require("@based/functions");
9
+ const defaultConfig_1 = require("./defaultConfig");
23
10
  const parseAuthState_1 = __importDefault(require("./parseAuthState"));
24
11
  exports.parseAuthState = parseAuthState_1.default;
25
- __exportStar(require("./types"), exports);
26
12
  class BasedAuth {
27
- constructor(server, config = {
28
- authorize: dummyAuth_1.default,
29
- }) {
13
+ constructor(server, config = {}) {
14
+ this.verifyAuthState = defaultConfig_1.defaultVerifyAuthState;
15
+ this.authorize = defaultConfig_1.defaultAuthorize;
30
16
  this.server = server;
31
17
  this.updateConfig(config);
32
18
  }
@@ -40,8 +26,34 @@ class BasedAuth {
40
26
  if (config.authorize) {
41
27
  this.authorize = config.authorize;
42
28
  }
29
+ if (config.verifyAuthState) {
30
+ this.verifyAuthState = config.verifyAuthState;
31
+ }
32
+ }
33
+ renewAuthState(ctx, authState) {
34
+ if (!ctx.session) {
35
+ return;
36
+ }
37
+ if (!('authState' in ctx.session)) {
38
+ return;
39
+ }
40
+ const verified = authState ||
41
+ this.server.auth.verifyAuthState(this.server.client, ctx, ctx.session.authState);
42
+ if (verified === true) {
43
+ return;
44
+ }
45
+ ctx.session.authState = verified;
46
+ if ((0, functions_1.isWsContext)(ctx)) {
47
+ this.sendAuthState(ctx, verified);
48
+ }
49
+ }
50
+ encodeAuthState(authState) {
51
+ return Buffer.from(JSON.stringify(authState), 'utf8').toString('base64');
52
+ }
53
+ decodeAuthState(authState) {
54
+ return (0, parseAuthState_1.default)(authState);
43
55
  }
44
- sendAuthUpdate(ctx, authState) {
56
+ sendAuthState(ctx, authState) {
45
57
  ctx.session?.send((0, protocol_1.encodeAuthResponse)((0, protocol_1.valueToBuffer)(authState)), true, false);
46
58
  }
47
59
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/auth/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;AACA,0CAA+D;AAI/D,4DAAmC;AACnC,sEAA6C;AAEpC,yBAFF,wBAAc,CAEE;AAEvB,0CAAuB;AAEvB,MAAa,SAAS;IAKpB,YACE,MAAmB,EACnB,SAAqB;QACnB,SAAS,EAAE,mBAAS;KACrB;QAED,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;QACpB,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAA;IAC3B,CAAC;IAED,YAAY,CAAC,MAAkB;QAC7B,IAAI,CAAC,MAAM,EAAE;YACX,OAAM;SACP;QAED,IAAI,MAAM,CAAC,mBAAmB,EAAE;YAC9B,IAAI,CAAC,mBAAmB,GAAG,MAAM,CAAC,mBAAmB,CAAA;SACtD;QAED,IAAI,MAAM,CAAC,SAAS,EAAE;YACpB,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,SAAS,CAAA;SAClC;IACH,CAAC;IAED,cAAc,CAAC,GAA8B,EAAE,SAAoB;QACjE,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC,IAAA,6BAAkB,EAAC,IAAA,wBAAa,EAAC,SAAS,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,CAAA;IAC9E,CAAC;CACF;AAhCD,8BAgCC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/auth/index.ts"],"names":[],"mappings":";;;;;;AAAA,0CAA+D;AAE/D,gDASyB;AACzB,mDAA0E;AAC1E,sEAA6C;AAEpC,yBAFF,wBAAc,CAEE;AAQvB,MAAa,SAAS;IAOpB,YAAY,MAAmB,EAAE,SAAqB,EAAE;QAHxD,oBAAe,GAAoB,sCAAsB,CAAA;QACzD,cAAS,GAAc,gCAAgB,CAAA;QAGrC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;QACpB,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAA;IAC3B,CAAC;IAED,YAAY,CAAC,MAAkB;QAC7B,IAAI,CAAC,MAAM,EAAE;YACX,OAAM;SACP;QACD,IAAI,MAAM,CAAC,mBAAmB,EAAE;YAC9B,IAAI,CAAC,mBAAmB,GAAG,MAAM,CAAC,mBAAmB,CAAA;SACtD;QACD,IAAI,MAAM,CAAC,SAAS,EAAE;YACpB,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,SAAS,CAAA;SAClC;QACD,IAAI,MAAM,CAAC,eAAe,EAAE;YAC1B,IAAI,CAAC,eAAe,GAAG,MAAM,CAAC,eAAe,CAAA;SAC9C;IACH,CAAC;IAED,cAAc,CAAC,GAAY,EAAE,SAAqB;QAChD,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE;YAChB,OAAM;SACP;QAED,IAAI,CAAC,CAAC,WAAW,IAAI,GAAG,CAAC,OAAO,CAAC,EAAE;YACjC,OAAM;SACP;QAED,MAAM,QAAQ,GACZ,SAAS;YACT,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,eAAe,CAC9B,IAAI,CAAC,MAAM,CAAC,MAAM,EACgC,GAAG,EACrD,GAAG,CAAC,OAAO,CAAC,SAAS,CACtB,CAAA;QACH,IAAI,QAAQ,KAAK,IAAI,EAAE;YACrB,OAAM;SACP;QACD,GAAG,CAAC,OAAO,CAAC,SAAS,GAAG,QAAQ,CAAA;QAChC,IAAI,IAAA,uBAAW,EAAC,GAAG,CAAC,EAAE;YACpB,IAAI,CAAC,aAAa,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAA;SAClC;IACH,CAAC;IAED,eAAe,CAAC,SAAoB;QAClC,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAA;IAC1E,CAAC;IAED,eAAe,CAAC,SAAc;QAC5B,OAAO,IAAA,wBAAc,EAAC,SAAS,CAAC,CAAA;IAClC,CAAC;IAED,aAAa,CAAC,GAA8B,EAAE,SAAoB;QAChE,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC,IAAA,6BAAkB,EAAC,IAAA,wBAAa,EAAC,SAAS,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,CAAA;IAC9E,CAAC;CACF;AA/DD,8BA+DC"}
@@ -1,2 +1,3 @@
1
- declare const _default: (authState: any) => any;
1
+ import { AuthState } from '@based/functions';
2
+ declare const _default: (authState: any) => AuthState;
2
3
  export default _default;
@@ -1,16 +1,38 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ const utils_1 = require("@saulx/utils");
4
+ const { decode } = (0, utils_1.createEncoder)([
5
+ '(',
6
+ ')',
7
+ '<',
8
+ '>',
9
+ '@',
10
+ ',',
11
+ ';',
12
+ ':',
13
+ '\\',
14
+ '"',
15
+ '/',
16
+ '[',
17
+ ']',
18
+ '?',
19
+ '=',
20
+ '{',
21
+ '}',
22
+ ' ',
23
+ ], ['0']);
3
24
  exports.default = (authState) => {
4
- if (!authState) {
5
- return;
25
+ if (authState === undefined) {
26
+ return {};
6
27
  }
7
28
  if (typeof authState !== 'string') {
8
- return authState;
29
+ return { error: 'Invalid token' };
9
30
  }
10
31
  try {
11
- return JSON.parse(authState);
32
+ return JSON.parse(Buffer.from(decode(decodeURI(authState)), 'base64').toString('utf8'));
33
+ }
34
+ catch (err) {
35
+ return { error: 'Invalid token' };
12
36
  }
13
- catch (err) { }
14
- return authState;
15
37
  };
16
38
  //# sourceMappingURL=parseAuthState.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"parseAuthState.js","sourceRoot":"","sources":["../../src/auth/parseAuthState.ts"],"names":[],"mappings":";;AAAA,kBAAe,CAAC,SAAc,EAAO,EAAE;IACrC,IAAI,CAAC,SAAS,EAAE;QACd,OAAM;KACP;IACD,IAAI,OAAO,SAAS,KAAK,QAAQ,EAAE;QACjC,OAAO,SAAS,CAAA;KACjB;IACD,IAAI;QACF,OAAO,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAA;KAC7B;IAAC,OAAO,GAAG,EAAE,GAAE;IAChB,OAAO,SAAS,CAAA;AAClB,CAAC,CAAA"}
1
+ {"version":3,"file":"parseAuthState.js","sourceRoot":"","sources":["../../src/auth/parseAuthState.ts"],"names":[],"mappings":";;AACA,wCAA4C;AAE5C,MAAM,EAAE,MAAM,EAAE,GAAG,IAAA,qBAAa,EAC9B;IACE,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,IAAI;IACJ,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;CACJ,EACD,CAAC,GAAG,CAAC,CACN,CAAA;AAED,kBAAe,CAAC,SAAc,EAAa,EAAE;IAC3C,IAAI,SAAS,KAAK,SAAS,EAAE;QAC3B,OAAO,EAAE,CAAA;KACV;IACD,IAAI,OAAO,SAAS,KAAK,QAAQ,EAAE;QACjC,OAAO,EAAE,KAAK,EAAE,eAAe,EAAE,CAAA;KAClC;IACD,IAAI;QACF,OAAO,IAAI,CAAC,KAAK,CACf,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CACrE,CAAA;KACF;IAAC,OAAO,GAAG,EAAE;QACZ,OAAO,EAAE,KAAK,EAAE,eAAe,EAAE,CAAA;KAClC;AACH,CAAC,CAAA"}
@@ -0,0 +1,9 @@
1
+ import { BasedServer } from './server';
2
+ import { BasedRoute } from './functions';
3
+ import { HttpSession, Context, WebSocketSession } from '@based/functions';
4
+ declare type ClientSession = HttpSession | WebSocketSession;
5
+ export declare type IsAuthorizedHandler<S extends ClientSession = ClientSession, R extends BasedRoute = BasedRoute, P = any> = (route: R, server: BasedServer, ctx: Context<S>, payload: P, id?: number, checksum?: number) => void;
6
+ export declare type AuthErrorHandler<S extends ClientSession = ClientSession, R extends BasedRoute = BasedRoute, P = any> = (route: R, server: BasedServer, ctx: Context<S>, payload: P, id?: number, checksum?: number, err?: Error) => true | void;
7
+ export declare const defaultAuthError: AuthErrorHandler;
8
+ export declare const authorize: <S extends ClientSession = ClientSession, R extends BasedRoute = BasedRoute, P = any>(route: R, server: BasedServer, ctx: Context<S>, payload: P, isAuthorized: IsAuthorizedHandler<S, R, P>, id?: number, checksum?: number, authError?: AuthErrorHandler<S, R, P>) => void;
9
+ export {};
@@ -0,0 +1,59 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.authorize = exports.defaultAuthError = void 0;
4
+ const functions_1 = require("./functions");
5
+ const sendError_1 = require("./sendError");
6
+ const error_1 = require("./error");
7
+ const defaultAuthError = (route, server, ctx, payload, id, checksum, err) => {
8
+ const code = err
9
+ ? error_1.BasedErrorCode.AuthorizeFunctionError
10
+ : error_1.BasedErrorCode.AuthorizeRejectedError;
11
+ if (id && (0, functions_1.isQueryFunctionRoute)(route)) {
12
+ (0, sendError_1.sendError)(server, ctx, code, {
13
+ route,
14
+ err,
15
+ observableId: id,
16
+ });
17
+ return;
18
+ }
19
+ if (id) {
20
+ (0, sendError_1.sendError)(server, ctx, code, {
21
+ route,
22
+ err,
23
+ requestId: id,
24
+ });
25
+ return;
26
+ }
27
+ (0, sendError_1.sendError)(server, ctx, code, {
28
+ route,
29
+ err,
30
+ });
31
+ };
32
+ exports.defaultAuthError = defaultAuthError;
33
+ const authorize = (route, server, ctx, payload, isAuthorized, id, checksum, authError = exports.defaultAuthError) => {
34
+ if (!ctx.session) {
35
+ return;
36
+ }
37
+ if (route.public === true) {
38
+ isAuthorized(route, server, ctx, payload, id, checksum);
39
+ return;
40
+ }
41
+ server.auth
42
+ .authorize(server.client, ctx, route.name, payload)
43
+ .then((ok) => {
44
+ if (!ctx.session || !ok) {
45
+ if (!authError(route, server, ctx, payload, id, checksum)) {
46
+ (0, exports.defaultAuthError)(route, server, ctx, payload, id, checksum);
47
+ }
48
+ return;
49
+ }
50
+ isAuthorized(route, server, ctx, payload, id, checksum);
51
+ })
52
+ .catch((err) => {
53
+ if (!authError(route, server, ctx, payload, id, checksum, err)) {
54
+ (0, exports.defaultAuthError)(route, server, ctx, payload, id, checksum, err);
55
+ }
56
+ });
57
+ };
58
+ exports.authorize = authorize;
59
+ //# sourceMappingURL=authorize.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"authorize.js","sourceRoot":"","sources":["../src/authorize.ts"],"names":[],"mappings":";;;AACA,2CAA8D;AAC9D,2CAAuC;AACvC,mCAAwC;AAgCjC,MAAM,gBAAgB,GAAqB,CAChD,KAAK,EACL,MAAM,EACN,GAAG,EACH,OAAO,EACP,EAAE,EACF,QAAQ,EACR,GAAG,EACH,EAAE;IACF,MAAM,IAAI,GAAG,GAAG;QACd,CAAC,CAAC,sBAAc,CAAC,sBAAsB;QACvC,CAAC,CAAC,sBAAc,CAAC,sBAAsB,CAAA;IAEzC,IAAI,EAAE,IAAI,IAAA,gCAAoB,EAAC,KAAK,CAAC,EAAE;QACrC,IAAA,qBAAS,EAAC,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE;YAC3B,KAAK;YACL,GAAG;YACH,YAAY,EAAE,EAAE;SACjB,CAAC,CAAA;QACF,OAAM;KACP;IAED,IAAI,EAAE,EAAE;QACN,IAAA,qBAAS,EAAC,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE;YAC3B,KAAK;YACL,GAAG;YACH,SAAS,EAAE,EAAE;SACd,CAAC,CAAA;QACF,OAAM;KACP;IAED,IAAA,qBAAS,EAAC,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE;QAC3B,KAAK;QACL,GAAG;KACJ,CAAC,CAAA;AACJ,CAAC,CAAA;AAnCY,QAAA,gBAAgB,oBAmC5B;AAEM,MAAM,SAAS,GAAG,CAKvB,KAAQ,EACR,MAAmB,EACnB,GAAe,EACf,OAAU,EACV,YAA0C,EAC1C,EAAW,EACX,QAAiB,EACjB,YAAuC,wBAAgB,EACvD,EAAE;IACF,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE;QAChB,OAAM;KACP;IAED,IAAI,KAAK,CAAC,MAAM,KAAK,IAAI,EAAE;QACzB,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,EAAE,EAAE,QAAQ,CAAC,CAAA;QACvD,OAAM;KACP;IAED,MAAM,CAAC,IAAI;SACR,SAAS,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,EAAE,KAAK,CAAC,IAAI,EAAE,OAAO,CAAC;SAClD,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE;QACX,IAAI,CAAC,GAAG,CAAC,OAAO,IAAI,CAAC,EAAE,EAAE;YACvB,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,EAAE,EAAE,QAAQ,CAAC,EAAE;gBACzD,IAAA,wBAAgB,EAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,EAAE,EAAE,QAAQ,CAAC,CAAA;aAC5D;YACD,OAAM;SACP;QACD,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,EAAE,EAAE,QAAQ,CAAC,CAAA;IACzD,CAAC,CAAC;SACD,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;QACb,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,EAAE,EAAE,QAAQ,EAAE,GAAG,CAAC,EAAE;YAC9D,IAAA,wBAAgB,EAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,EAAE,EAAE,QAAQ,EAAE,GAAG,CAAC,CAAA;SACjE;IACH,CAAC,CAAC,CAAA;AACN,CAAC,CAAA;AAvCY,QAAA,SAAS,aAuCrB"}
package/dist/compress.js CHANGED
@@ -21,6 +21,9 @@ const compress = async (payload, encoding) => {
21
21
  if (payload instanceof Buffer && payload.byteLength <= protocol_1.COMPRESS_FROM_BYTES) {
22
22
  return { payload };
23
23
  }
24
+ if (payload === undefined) {
25
+ return;
26
+ }
24
27
  if (payload.length < COMPRESS_STRING_LEN) {
25
28
  return { payload };
26
29
  }
@@ -1 +1 @@
1
- {"version":3,"file":"compress.js","sourceRoot":"","sources":["../src/compress.ts"],"names":[],"mappings":";;;;;;AAAA,0DAA4B;AAC5B,yCAAqC;AACrC,yCAAgD;AAEhD,MAAM,OAAO,GAAG,IAAA,qBAAS,EAAC,mBAAI,CAAC,OAAO,CAAC,CAAA;AACvC,MAAM,IAAI,GAAG,IAAA,qBAAS,EAAC,mBAAI,CAAC,IAAI,CAAC,CAAA;AACjC,MAAM,EAAE,GAAG,IAAA,qBAAS,EAAC,mBAAI,CAAC,cAAc,CAAC,CAAA;AAEzC;;;;;EAKE;AAEF,MAAM,mBAAmB,GAAG,IAAI,CAAC,IAAI,CAAC,8BAAmB,GAAG,GAAG,CAAC,CAAA;AAEzD,MAAM,QAAQ,GAAG,KAAK,EAC3B,OAAwB,EACxB,QAAiB,EACyC,EAAE;IAC5D,IAAI,OAAO,YAAY,MAAM,IAAI,OAAO,CAAC,UAAU,IAAI,8BAAmB,EAAE;QAC1E,OAAO,EAAE,OAAO,EAAE,CAAA;KACnB;IAED,IAAI,OAAO,CAAC,MAAM,GAAG,mBAAmB,EAAE;QACxC,OAAO,EAAE,OAAO,EAAE,CAAA;KACnB;IAED,IAAI,QAAQ,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE;QAC5C,IAAI,gBAAwB,CAAA;QAC5B,IAAI,UAAkB,CAAA;QACtB,IAAI,CAAC,CAAC,OAAO,YAAY,MAAM,CAAC,EAAE;YAChC,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;SAC/B;QACD,IAAI,QAAQ,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE;YAChC,gBAAgB,GAAG,SAAS,CAAA;YAC5B,UAAU,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,CAAA;SACpC;aAAM,IAAI,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE;YACpC,gBAAgB,GAAG,MAAM,CAAA;YACzB,UAAU,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,CAAA;SACjC;aAAM,IAAI,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE;YAClC,gBAAgB,GAAG,IAAI,CAAA;YACvB,UAAU,GAAG,MAAM,EAAE,CAAC,OAAO,CAAC,CAAA;SAC/B;QACD,IAAI,UAAU,EAAE;YACd,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,gBAAgB,EAAE,CAAA;SAC3D;KACF;IACD,OAAO,EAAE,OAAO,EAAE,CAAA;AACpB,CAAC,CAAA;AAjCY,QAAA,QAAQ,YAiCpB"}
1
+ {"version":3,"file":"compress.js","sourceRoot":"","sources":["../src/compress.ts"],"names":[],"mappings":";;;;;;AAAA,0DAA4B;AAC5B,yCAAqC;AACrC,yCAAgD;AAEhD,MAAM,OAAO,GAAG,IAAA,qBAAS,EAAC,mBAAI,CAAC,OAAO,CAAC,CAAA;AACvC,MAAM,IAAI,GAAG,IAAA,qBAAS,EAAC,mBAAI,CAAC,IAAI,CAAC,CAAA;AACjC,MAAM,EAAE,GAAG,IAAA,qBAAS,EAAC,mBAAI,CAAC,cAAc,CAAC,CAAA;AAEzC;;;;;EAKE;AAEF,MAAM,mBAAmB,GAAG,IAAI,CAAC,IAAI,CAAC,8BAAmB,GAAG,GAAG,CAAC,CAAA;AAEzD,MAAM,QAAQ,GAAG,KAAK,EAC3B,OAAwB,EACxB,QAAiB,EACyC,EAAE;IAC5D,IAAI,OAAO,YAAY,MAAM,IAAI,OAAO,CAAC,UAAU,IAAI,8BAAmB,EAAE;QAC1E,OAAO,EAAE,OAAO,EAAE,CAAA;KACnB;IAED,IAAI,OAAO,KAAK,SAAS,EAAE;QACzB,OAAM;KACP;IAED,IAAI,OAAO,CAAC,MAAM,GAAG,mBAAmB,EAAE;QACxC,OAAO,EAAE,OAAO,EAAE,CAAA;KACnB;IAED,IAAI,QAAQ,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE;QAC5C,IAAI,gBAAwB,CAAA;QAC5B,IAAI,UAAkB,CAAA;QACtB,IAAI,CAAC,CAAC,OAAO,YAAY,MAAM,CAAC,EAAE;YAChC,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;SAC/B;QACD,IAAI,QAAQ,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE;YAChC,gBAAgB,GAAG,SAAS,CAAA;YAC5B,UAAU,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,CAAA;SACpC;aAAM,IAAI,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE;YACpC,gBAAgB,GAAG,MAAM,CAAA;YACzB,UAAU,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,CAAA;SACjC;aAAM,IAAI,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE;YAClC,gBAAgB,GAAG,IAAI,CAAA;YACvB,UAAU,GAAG,MAAM,EAAE,CAAC,OAAO,CAAC,CAAA;SAC/B;QACD,IAAI,UAAU,EAAE;YACd,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,gBAAgB,EAAE,CAAA;SAC3D;KACF;IACD,OAAO,EAAE,OAAO,EAAE,CAAA;AACpB,CAAC,CAAA;AArCY,QAAA,QAAQ,YAqCpB"}
@@ -0,0 +1,32 @@
1
+ import { AuthConfig } from './auth';
2
+ import { BasedFunctionSpec, BasedQueryFunctionSpec, BasedStreamFunctionSpec, BasedSpec } from './functions';
3
+ import { BasedQueryFunction, BasedFunction, Context, Session } from '@based/functions';
4
+ import { BasedServer } from './server';
5
+ export declare type SimpleServerOptions = {
6
+ port?: number;
7
+ key?: string;
8
+ disableRest?: boolean;
9
+ cert?: string;
10
+ auth?: AuthConfig;
11
+ ws?: {
12
+ open: (client: Context<Session>) => void;
13
+ close: (client: Context<Session>) => void;
14
+ };
15
+ install?: (opts: {
16
+ server: BasedServer;
17
+ name: string;
18
+ function?: BasedSpec;
19
+ }) => Promise<null | BasedSpec>;
20
+ uninstall?: (opts: {
21
+ server: BasedServer;
22
+ name: string;
23
+ function: BasedSpec;
24
+ }) => Promise<boolean>;
25
+ functions?: {
26
+ [key: string]: BasedFunction | Partial<BasedFunctionSpec | BasedStreamFunctionSpec>;
27
+ };
28
+ queryFunctions?: {
29
+ [key: string]: BasedQueryFunction | Partial<BasedQueryFunctionSpec>;
30
+ };
31
+ };
32
+ export declare function createSimpleServer(props: SimpleServerOptions, sharedSocket?: boolean): Promise<BasedServer>;
@@ -0,0 +1,131 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.createSimpleServer = void 0;
7
+ const functions_1 = require("./functions");
8
+ const picocolors_1 = __importDefault(require("picocolors"));
9
+ const server_1 = require("./server");
10
+ const utils_1 = require("@saulx/utils");
11
+ async function createSimpleServer(props, sharedSocket) {
12
+ const { functions, queryFunctions } = props;
13
+ const functionStore = {};
14
+ for (const name in functions) {
15
+ if (functions[name]) {
16
+ const fn = functions[name];
17
+ if ((0, functions_1.isSpec)(fn)) {
18
+ functionStore[name] = {
19
+ function: fn.function,
20
+ name,
21
+ checksum: 1,
22
+ maxPayloadSize: (0, functions_1.isStreamFunctionSpec)(fn) ? 200e6 : 5e4,
23
+ rateLimitTokens: 10,
24
+ ...fn,
25
+ };
26
+ }
27
+ else if (typeof fn === 'function') {
28
+ functionStore[name] = {
29
+ function: fn,
30
+ name,
31
+ checksum: 1,
32
+ maxPayloadSize: 5e4,
33
+ rateLimitTokens: 1,
34
+ };
35
+ }
36
+ else {
37
+ console.error(name, fn, 'Is not a function!');
38
+ }
39
+ }
40
+ }
41
+ for (const name in queryFunctions) {
42
+ if (queryFunctions[name]) {
43
+ const fn = queryFunctions[name];
44
+ if ((0, functions_1.isSpec)(fn)) {
45
+ functionStore[name] = {
46
+ checksum: 1,
47
+ query: true,
48
+ function: fn.function,
49
+ name,
50
+ maxPayloadSize: 5000,
51
+ rateLimitTokens: 1,
52
+ ...fn,
53
+ };
54
+ }
55
+ else if (typeof fn === 'function') {
56
+ functionStore[name] = {
57
+ checksum: 1,
58
+ query: true,
59
+ function: fn,
60
+ name,
61
+ maxPayloadSize: 5000,
62
+ rateLimitTokens: 1,
63
+ };
64
+ }
65
+ else {
66
+ console.error(name, fn, 'Is not a query function!');
67
+ }
68
+ }
69
+ }
70
+ const properProps = {
71
+ port: props.port,
72
+ auth: props.auth,
73
+ cert: props.cert,
74
+ ws: props.ws,
75
+ disableRest: props.disableRest,
76
+ key: props.key,
77
+ functions: {
78
+ memCacheTimeout: 3e3,
79
+ idleTimeout: 1e3,
80
+ uninstall: props.uninstall ||
81
+ (async () => {
82
+ return true;
83
+ }),
84
+ install: props.install ||
85
+ (async ({ name }) => {
86
+ if (functionStore[name]) {
87
+ return functionStore[name];
88
+ }
89
+ else {
90
+ return null;
91
+ }
92
+ }),
93
+ route: ({ path, name }) => {
94
+ if (path) {
95
+ for (const name in functionStore) {
96
+ if (functionStore[name].path === path) {
97
+ return functionStore[name];
98
+ }
99
+ }
100
+ if (!name && functionStore[path]) {
101
+ return functionStore[path];
102
+ }
103
+ }
104
+ if (functionStore[name]) {
105
+ return functionStore[name];
106
+ }
107
+ return null;
108
+ },
109
+ },
110
+ };
111
+ console.info(' ', picocolors_1.default.white('Based-server'), `starting with functions`);
112
+ let longestName = 0;
113
+ for (const name in functionStore) {
114
+ if (name.length > longestName) {
115
+ longestName = name.length;
116
+ }
117
+ }
118
+ for (const name in functionStore) {
119
+ const obs = (0, functions_1.isQueryFunctionSpec)(functionStore[name])
120
+ ? '[query]'
121
+ : (0, functions_1.isStreamFunctionSpec)(functionStore[name])
122
+ ? '[stream]'
123
+ : '';
124
+ const pub = functionStore[name].public ? 'public' : 'private';
125
+ console.info(' ', picocolors_1.default.white(name), (0, utils_1.padLeft)('', longestName + 2 - name.length, ' '), picocolors_1.default.gray(pub), (0, utils_1.padLeft)('', 8 - pub.length, ' '), picocolors_1.default.green(obs), (0, utils_1.padLeft)('', 14 - obs.length, ' '), functionStore[name].path || '');
126
+ }
127
+ const basedServer = new server_1.BasedServer(properProps);
128
+ return props.port ? basedServer.start(props.port, sharedSocket) : basedServer;
129
+ }
130
+ exports.createSimpleServer = createSimpleServer;
131
+ //# sourceMappingURL=createSimpleServer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"createSimpleServer.js","sourceRoot":"","sources":["../src/createSimpleServer.ts"],"names":[],"mappings":"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"}
@@ -6,6 +6,11 @@ const addName = (payload) => {
6
6
  return payload.name ? `[${payload.name}] ` : '';
7
7
  };
8
8
  exports.errorTypeHandlers = {
9
+ [types_1.BasedErrorCode.MissingAuthStateProtocolHeader]: {
10
+ statusCode: 500,
11
+ statusMessage: 'Internal Server Error',
12
+ message: () => '',
13
+ },
9
14
  [types_1.BasedErrorCode.RateLimit]: {
10
15
  statusCode: 429,
11
16
  statusMessage: 'Rate limit',
@@ -15,7 +20,7 @@ exports.errorTypeHandlers = {
15
20
  statusCode: 500,
16
21
  statusMessage: 'Internal Server Error',
17
22
  message: (payload) => {
18
- if (!payload.err.message) {
23
+ if (typeof payload.err === 'string' || !payload.err.message) {
19
24
  return `[${payload.route.name}] ${JSON.stringify(payload.err)}`;
20
25
  }
21
26
  return (addName(payload.route) +
@@ -35,44 +40,58 @@ exports.errorTypeHandlers = {
35
40
  statusCode: 500,
36
41
  statusMessage: 'Internal Server Error',
37
42
  message: (payload) => {
38
- if (payload.err && !payload.err.message && !payload.err.name) {
43
+ if (payload.err &&
44
+ (typeof payload.err === 'string' ||
45
+ (!payload.err.message && !payload.err.name))) {
39
46
  return `[${payload.route.name}] ${JSON.stringify(payload.err)}`;
40
47
  }
41
- return `[${payload.route.name}] ${payload.err.name && payload.err.name !== 'Error'
48
+ return `[${payload.route.name}] ${typeof payload.err !== 'string' &&
49
+ payload.err.name &&
50
+ payload.err.name !== 'Error'
42
51
  ? `[${payload.err.name}] `
43
- : ''}${payload.err.message || ''}`;
52
+ : ''}${typeof payload.err === 'string'
53
+ ? payload.err
54
+ : payload.err.message || ''}`;
44
55
  },
45
56
  },
46
57
  [types_1.BasedErrorCode.FunctionNotFound]: {
47
58
  statusCode: 404,
48
59
  statusMessage: 'Not Found',
49
60
  message: (payload) => {
50
- return (addName(payload) +
51
- `Function not found${payload.path ? ` path '${payload.path}'` : ''}`);
61
+ return (addName(payload.route) +
62
+ `Function not found${payload.route.path ? ` path '${payload.route.path}'` : ''}`);
52
63
  },
53
64
  },
54
65
  [types_1.BasedErrorCode.FunctionIsStream]: {
55
66
  statusCode: 400,
56
67
  statusMessage: 'Incorrect Protocol',
57
68
  message: (payload) => {
58
- return addName(payload) + 'Cannot use stream functions over websockets';
69
+ return (addName(payload.route) + 'Cannot use stream functions over websockets');
70
+ },
71
+ },
72
+ [types_1.BasedErrorCode.FunctionIsNotStream]: {
73
+ statusCode: 400,
74
+ statusMessage: 'Function is Not Stream',
75
+ message: (payload) => {
76
+ return addName(payload.route) + 'Cannot stream to a normal function';
59
77
  },
60
78
  },
61
79
  [types_1.BasedErrorCode.FunctionIsNotObservable]: {
62
80
  statusCode: 400,
63
81
  statusMessage: 'Function Is Not Observable',
64
- message: (payload) => addName(payload) + 'Cannot observe non observable functions',
82
+ message: (payload) => addName(payload.route) + 'Cannot observe non observable functions',
65
83
  },
66
84
  [types_1.BasedErrorCode.FunctionIsObservable]: {
67
85
  statusCode: 400,
68
86
  statusMessage: 'Function Is Observable',
69
- message: (payload) => addName(payload) + 'Cannot call observable functions as a standard one',
87
+ message: (payload) => addName(payload.route) +
88
+ 'Cannot call observable functions as a standard one',
70
89
  },
71
90
  [types_1.BasedErrorCode.CannotStreamToObservableFunction]: {
72
91
  statusCode: 404,
73
92
  statusMessage: 'Not Found',
74
93
  message: (payload) => {
75
- return addName(payload) + 'Cannot stream to observable function';
94
+ return addName(payload.route) + 'Cannot stream to observable function';
76
95
  },
77
96
  },
78
97
  [types_1.BasedErrorCode.AuthorizeFunctionError]: {
@@ -88,7 +107,7 @@ exports.errorTypeHandlers = {
88
107
  [types_1.BasedErrorCode.InvalidPayload]: {
89
108
  statusCode: 400,
90
109
  statusMessage: 'Bad Request',
91
- message: (payload) => addName(payload) + 'Invalid payload',
110
+ message: (payload) => addName(payload.route) + 'Invalid payload',
92
111
  },
93
112
  [types_1.BasedErrorCode.NoBinaryProtocol]: {
94
113
  statusCode: 400,
@@ -98,7 +117,7 @@ exports.errorTypeHandlers = {
98
117
  [types_1.BasedErrorCode.PayloadTooLarge]: {
99
118
  statusCode: 413,
100
119
  statusMessage: 'Payload Too Large',
101
- message: (payload) => addName(payload) + ' PayloadTooLarge',
120
+ message: (payload) => addName(payload.route) + ' PayloadTooLarge',
102
121
  },
103
122
  [types_1.BasedErrorCode.ChunkTooLarge]: {
104
123
  statusCode: 413,
@@ -1 +1 @@
1
- {"version":3,"file":"errorTypeHandlers.js","sourceRoot":"","sources":["../../src/error/errorTypeHandlers.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"errorTypeHandlers.js","sourceRoot":"","sources":["../../src/error/errorTypeHandlers.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,15 @@
1
1
  import { BasedServer } from '../server';
2
- import { Context } from '../context';
2
+ import { Context } from '@based/functions';
3
3
  import { BasedErrorCode, ErrorPayload, BasedErrorData } from './types';
4
4
  export * from './types';
5
+ export declare function createErrorData<T extends BasedErrorCode>(code: T, payload: ErrorPayload[T]): {
6
+ code: T;
7
+ statusCode: number;
8
+ statusMessage: string;
9
+ message: string;
10
+ route: {
11
+ name: string;
12
+ path: string;
13
+ };
14
+ };
5
15
  export declare function createError<T extends BasedErrorCode>(server: BasedServer, context: Context, code: T, payload: ErrorPayload[T]): BasedErrorData<T>;