@based/server 3.4.3 → 3.4.5

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 (138) hide show
  1. package/.turbo/turbo-build.log +1 -1
  2. package/dist/auth/authorize.d.ts +2 -0
  3. package/dist/auth/authorize.js +8 -0
  4. package/dist/auth/authorize.js.map +1 -0
  5. package/dist/auth/dummyAuth.d.ts +2 -0
  6. package/dist/auth/dummyAuth.js +7 -0
  7. package/dist/auth/dummyAuth.js.map +1 -0
  8. package/dist/auth/index.d.ts +11 -0
  9. package/dist/auth/index.js +44 -0
  10. package/dist/auth/index.js.map +1 -0
  11. package/dist/clientContext.d.ts +0 -0
  12. package/dist/clientContext.js +83 -0
  13. package/dist/clientContext.js.map +1 -0
  14. package/dist/error.d.ts +66 -0
  15. package/dist/error.js +149 -0
  16. package/dist/error.js.map +1 -0
  17. package/dist/functions/index.d.ts +48 -0
  18. package/dist/functions/index.js +399 -0
  19. package/dist/functions/index.js.map +1 -0
  20. package/dist/functions/timeout.d.ts +3 -0
  21. package/dist/functions/timeout.js +23 -0
  22. package/dist/functions/timeout.js.map +1 -0
  23. package/dist/functions/workerPool.d.ts +0 -0
  24. package/dist/functions/workerPool.js +5 -0
  25. package/dist/functions/workerPool.js.map +1 -0
  26. package/dist/handlers/rest/file/formStream.js +5 -1
  27. package/dist/handlers/rest/file/formStream.js.map +1 -1
  28. package/dist/handlers/rest/file/storeFile.d.ts +2 -1
  29. package/dist/handlers/rest/file/storeFile.js +34 -24
  30. package/dist/handlers/rest/file/storeFile.js.map +1 -1
  31. package/dist/handlers/rest/file/stream.js +5 -1
  32. package/dist/handlers/rest/file/stream.js.map +1 -1
  33. package/dist/index.js +2 -2
  34. package/dist/index.js.map +1 -1
  35. package/dist/network/http/authorize.d.ts +3 -0
  36. package/dist/network/http/authorize.js +28 -0
  37. package/dist/network/http/authorize.js.map +1 -0
  38. package/dist/network/http/compress.d.ts +6 -0
  39. package/dist/network/http/compress.js +56 -0
  40. package/dist/network/http/compress.js.map +1 -0
  41. package/dist/network/http/end.d.ts +4 -0
  42. package/dist/network/http/end.js +19 -0
  43. package/dist/network/http/end.js.map +1 -0
  44. package/dist/network/http/function.d.ts +3 -0
  45. package/dist/network/http/function.js +47 -0
  46. package/dist/network/http/function.js.map +1 -0
  47. package/dist/network/http/get.d.ts +3 -0
  48. package/dist/network/http/get.js +129 -0
  49. package/dist/network/http/get.js.map +1 -0
  50. package/dist/network/http/index.d.ts +3 -0
  51. package/dist/network/http/index.js +122 -0
  52. package/dist/network/http/index.js.map +1 -0
  53. package/dist/network/http/readBody.d.ts +3 -0
  54. package/dist/network/http/readBody.js +112 -0
  55. package/dist/network/http/readBody.js.map +1 -0
  56. package/dist/network/http/send.d.ts +5 -0
  57. package/dist/network/http/send.js +60 -0
  58. package/dist/network/http/send.js.map +1 -0
  59. package/dist/network/http/streamFunction/DataStream.d.ts +7 -0
  60. package/dist/network/http/streamFunction/DataStream.js +19 -0
  61. package/dist/network/http/streamFunction/DataStream.js.map +1 -0
  62. package/dist/network/http/streamFunction/getExtension.d.ts +2 -0
  63. package/dist/network/http/streamFunction/getExtension.js +29 -0
  64. package/dist/network/http/streamFunction/getExtension.js.map +1 -0
  65. package/dist/network/http/streamFunction/index.d.ts +3 -0
  66. package/dist/network/http/streamFunction/index.js +81 -0
  67. package/dist/network/http/streamFunction/index.js.map +1 -0
  68. package/dist/network/http/streamFunction/multipartStream.d.ts +12 -0
  69. package/dist/network/http/streamFunction/multipartStream.js +208 -0
  70. package/dist/network/http/streamFunction/multipartStream.js.map +1 -0
  71. package/dist/network/http/streamFunction/stream.d.ts +5 -0
  72. package/dist/network/http/streamFunction/stream.js +103 -0
  73. package/dist/network/http/streamFunction/stream.js.map +1 -0
  74. package/dist/network/index.d.ts +4 -0
  75. package/dist/network/index.js +84 -0
  76. package/dist/network/index.js.map +1 -0
  77. package/dist/network/message/auth.d.ts +4 -0
  78. package/dist/network/message/auth.js +32 -0
  79. package/dist/network/message/auth.js.map +1 -0
  80. package/dist/network/message/function.d.ts +3 -0
  81. package/dist/network/message/function.js +67 -0
  82. package/dist/network/message/function.js.map +1 -0
  83. package/dist/network/message/get.d.ts +3 -0
  84. package/dist/network/message/get.js +109 -0
  85. package/dist/network/message/get.js.map +1 -0
  86. package/dist/network/message/index.d.ts +3 -0
  87. package/dist/network/message/index.js +62 -0
  88. package/dist/network/message/index.js.map +1 -0
  89. package/dist/network/message/observable.d.ts +5 -0
  90. package/dist/network/message/observable.js +103 -0
  91. package/dist/network/message/observable.js.map +1 -0
  92. package/dist/network/message/send.d.ts +4 -0
  93. package/dist/network/message/send.js +11 -0
  94. package/dist/network/message/send.js.map +1 -0
  95. package/dist/network/upgrade.d.ts +4 -0
  96. package/dist/network/upgrade.js +49 -0
  97. package/dist/network/upgrade.js.map +1 -0
  98. package/dist/network/worker/get.d.ts +0 -0
  99. package/dist/network/worker/get.js +122 -0
  100. package/dist/network/worker/get.js.map +1 -0
  101. package/dist/network/worker/observable.d.ts +0 -0
  102. package/dist/network/worker/observable.js +120 -0
  103. package/dist/network/worker/observable.js.map +1 -0
  104. package/dist/observable/index.d.ts +8 -0
  105. package/dist/observable/index.js +154 -0
  106. package/dist/observable/index.js.map +1 -0
  107. package/dist/protocol.d.ts +19 -0
  108. package/dist/protocol.js +212 -0
  109. package/dist/protocol.js.map +1 -0
  110. package/dist/security/index.d.ts +2 -0
  111. package/dist/security/index.js +57 -0
  112. package/dist/security/index.js.map +1 -0
  113. package/dist/server.d.ts +35 -0
  114. package/dist/server.js +99 -0
  115. package/dist/server.js.map +1 -0
  116. package/dist/types.d.ts +1 -0
  117. package/dist/worker/authorize.d.ts +5 -0
  118. package/dist/worker/authorize.js +15 -0
  119. package/dist/worker/authorize.js.map +1 -0
  120. package/dist/worker/fnMap.d.ts +2 -0
  121. package/dist/worker/fnMap.js +5 -0
  122. package/dist/worker/fnMap.js.map +1 -0
  123. package/dist/worker/functions.d.ts +3 -0
  124. package/dist/worker/functions.js +8 -0
  125. package/dist/worker/functions.js.map +1 -0
  126. package/dist/worker/http/function.d.ts +4 -0
  127. package/dist/worker/http/function.js +75 -0
  128. package/dist/worker/http/function.js.map +1 -0
  129. package/dist/worker/index.d.ts +1 -0
  130. package/dist/worker/index.js +101 -0
  131. package/dist/worker/index.js.map +1 -0
  132. package/dist/worker/observable.d.ts +15 -0
  133. package/dist/worker/observable.js +110 -0
  134. package/dist/worker/observable.js.map +1 -0
  135. package/dist/worker/ws/function.d.ts +3 -0
  136. package/dist/worker/ws/function.js +42 -0
  137. package/dist/worker/ws/function.js.map +1 -0
  138. package/package.json +1 -1
package/dist/index.js CHANGED
@@ -34,6 +34,7 @@ exports.BasedServerClient = BasedServerClient_1.default;
34
34
  const Params_1 = require("./Params");
35
35
  Object.defineProperty(exports, "Params", { enumerable: true, get: function () { return Params_1.Params; } });
36
36
  const getFromConfig_1 = require("./getFromConfig");
37
+ const pkg = require('../package.json');
37
38
  __exportStar(require("./types"), exports);
38
39
  class BasedServer extends events_1.EventEmitter {
39
40
  constructor({ key, cert, useLessMemory, port, db, config, state, }) {
@@ -173,7 +174,7 @@ class BasedServer extends events_1.EventEmitter {
173
174
  return new Promise((resolve, reject) => {
174
175
  this.uwsApp.listen(this.port, (listenSocket) => {
175
176
  if (listenSocket) {
176
- console.info('💫 Based-server listening on port:', this.port);
177
+ console.info(`💫 Based-server ${pkg.version} listening on port:`, this.port);
177
178
  // do this better wrap a nice thing arround it
178
179
  this.listenSocket = listenSocket;
179
180
  resolve(this);
@@ -202,7 +203,6 @@ class BasedServer extends events_1.EventEmitter {
202
203
  this.uwsApp = null;
203
204
  await this.db.destroy();
204
205
  this.db = null;
205
- // clean up subscriptions (tmp)
206
206
  await (0, utils_1.wait)(1000);
207
207
  }
208
208
  }
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import { BasedServer } from '../../server';
2
+ import { BasedFunctionRoute, HttpClient } from '../../types';
3
+ export declare const authorizeRequest: (server: BasedServer, client: HttpClient, payload: any, route: BasedFunctionRoute, authorized: (payload: any) => void) => void;
@@ -0,0 +1,28 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.authorizeRequest = void 0;
4
+ const send_1 = require("./send");
5
+ const error_1 = require("../../error");
6
+ const authorizeRequest = (server, client, payload, route, authorized) => {
7
+ server.auth
8
+ .authorize(client.context, route.name, payload)
9
+ .then((ok) => {
10
+ if (!client.res) {
11
+ return;
12
+ }
13
+ if (!ok) {
14
+ (0, send_1.sendHttpError)(server, client, error_1.BasedErrorCode.AuthorizeRejectedError, route);
15
+ }
16
+ else {
17
+ authorized(payload);
18
+ }
19
+ })
20
+ .catch((err) => {
21
+ (0, send_1.sendHttpError)(server, client, error_1.BasedErrorCode.AuthorizeFunctionError, {
22
+ route,
23
+ err,
24
+ });
25
+ });
26
+ };
27
+ exports.authorizeRequest = authorizeRequest;
28
+ //# sourceMappingURL=authorize.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"authorize.js","sourceRoot":"","sources":["../../../src/network/http/authorize.ts"],"names":[],"mappings":";;;AAEA,iCAAsC;AACtC,uCAA4C;AAErC,MAAM,gBAAgB,GAAG,CAC9B,MAAmB,EACnB,MAAkB,EAClB,OAAY,EACZ,KAAyB,EACzB,UAAkC,EAClC,EAAE;IACF,MAAM,CAAC,IAAI;SACR,SAAS,CAAC,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,IAAI,EAAE,OAAO,CAAC;SAC9C,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE;QACX,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE;YACf,OAAM;SACP;QACD,IAAI,CAAC,EAAE,EAAE;YACP,IAAA,oBAAa,EACX,MAAM,EACN,MAAM,EACN,sBAAc,CAAC,sBAAsB,EACrC,KAAK,CACN,CAAA;SACF;aAAM;YACL,UAAU,CAAC,OAAO,CAAC,CAAA;SACpB;IACH,CAAC,CAAC;SACD,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;QACb,IAAA,oBAAa,EAAC,MAAM,EAAE,MAAM,EAAE,sBAAc,CAAC,sBAAsB,EAAE;YACnE,KAAK;YACL,GAAG;SACJ,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;AACN,CAAC,CAAA;AA9BY,QAAA,gBAAgB,oBA8B5B"}
@@ -0,0 +1,6 @@
1
+ /// <reference types="node" />
2
+ import { HttpClient } from '../../types';
3
+ export declare const compress: (client: HttpClient, payload: string | Buffer) => Promise<{
4
+ payload: Buffer | string;
5
+ encoding?: string;
6
+ }>;
@@ -0,0 +1,56 @@
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.compress = void 0;
7
+ const node_zlib_1 = __importDefault(require("node:zlib"));
8
+ const node_util_1 = require("node:util");
9
+ const protocol_1 = require("../../protocol");
10
+ const deflate = (0, node_util_1.promisify)(node_zlib_1.default.deflate);
11
+ const gzip = (0, node_util_1.promisify)(node_zlib_1.default.gzip);
12
+ const br = (0, node_util_1.promisify)(node_zlib_1.default.brotliCompress);
13
+ /*
14
+ Content-Encoding: gzip
15
+ Content-Encoding: compress
16
+ Content-Encoding: deflate
17
+ Content-Encoding: br
18
+ */
19
+ const COMPRESS_STRING_LEN = Math.ceil(protocol_1.COMPRESS_FROM_BYTES / 1.5);
20
+ const compress = async (client, payload) => {
21
+ if (!client.res) {
22
+ return;
23
+ }
24
+ const encoding = client.context.headers.encoding;
25
+ if (payload instanceof Buffer && payload.byteLength <= protocol_1.COMPRESS_FROM_BYTES) {
26
+ return { payload };
27
+ }
28
+ if (payload.length < COMPRESS_STRING_LEN) {
29
+ return { payload };
30
+ }
31
+ if (encoding && typeof encoding === 'string') {
32
+ let responseEncoding;
33
+ let compressed;
34
+ if (!(payload instanceof Buffer)) {
35
+ payload = Buffer.from(payload);
36
+ }
37
+ if (encoding.includes('deflate')) {
38
+ responseEncoding = 'deflate';
39
+ compressed = await deflate(payload);
40
+ }
41
+ else if (encoding.includes('gzip')) {
42
+ responseEncoding = 'gzip';
43
+ compressed = await gzip(payload);
44
+ }
45
+ else if (encoding.includes('br')) {
46
+ responseEncoding = 'br';
47
+ compressed = await br(payload);
48
+ }
49
+ if (compressed) {
50
+ return { payload: compressed, encoding: responseEncoding };
51
+ }
52
+ }
53
+ return { payload };
54
+ };
55
+ exports.compress = compress;
56
+ //# sourceMappingURL=compress.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"compress.js","sourceRoot":"","sources":["../../../src/network/http/compress.ts"],"names":[],"mappings":";;;;;;AAAA,0DAA4B;AAC5B,yCAAqC;AAErC,6CAAoD;AAEpD,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,MAAkB,EAClB,OAAwB,EACkC,EAAE;IAC5D,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE;QACf,OAAM;KACP;IAED,MAAM,QAAQ,GAAG,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAA;IAEhD,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;AAvCY,QAAA,QAAQ,YAuCpB"}
@@ -0,0 +1,4 @@
1
+ /// <reference types="node" />
2
+ import { HttpClient } from '../../types';
3
+ declare const _default: (client: HttpClient, payload?: string | Buffer | Uint8Array) => void;
4
+ export default _default;
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.default = (client, payload) => {
4
+ if (client.res) {
5
+ client.res.writeHeader('Access-Control-Allow-Origin', '*');
6
+ // only allowed headers
7
+ client.res.writeHeader('Access-Control-Allow-Headers', '*');
8
+ if (payload === undefined) {
9
+ client.res.end();
10
+ }
11
+ else {
12
+ client.res.end(payload);
13
+ }
14
+ client.res = null;
15
+ client.req = null;
16
+ client.context = null;
17
+ }
18
+ };
19
+ //# sourceMappingURL=end.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"end.js","sourceRoot":"","sources":["../../../src/network/http/end.ts"],"names":[],"mappings":";;AAEA,kBAAe,CAAC,MAAkB,EAAE,OAAsC,EAAE,EAAE;IAC5E,IAAI,MAAM,CAAC,GAAG,EAAE;QACd,MAAM,CAAC,GAAG,CAAC,WAAW,CAAC,6BAA6B,EAAE,GAAG,CAAC,CAAA;QAC1D,uBAAuB;QACvB,MAAM,CAAC,GAAG,CAAC,WAAW,CAAC,8BAA8B,EAAE,GAAG,CAAC,CAAA;QAC3D,IAAI,OAAO,KAAK,SAAS,EAAE;YACzB,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,CAAA;SACjB;aAAM;YACL,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;SACxB;QACD,MAAM,CAAC,GAAG,GAAG,IAAI,CAAA;QACjB,MAAM,CAAC,GAAG,GAAG,IAAI,CAAA;QACjB,MAAM,CAAC,OAAO,GAAG,IAAI,CAAA;KACtB;AACH,CAAC,CAAA"}
@@ -0,0 +1,3 @@
1
+ import { BasedServer } from '../../server';
2
+ import { BasedFunctionRoute, HttpClient } from '../../types';
3
+ export declare const httpFunction: (method: string, route: BasedFunctionRoute, client: HttpClient, server: BasedServer, payload?: Uint8Array) => void;
@@ -0,0 +1,47 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.httpFunction = void 0;
4
+ const functions_1 = require("../../functions");
5
+ const send_1 = require("./send");
6
+ const error_1 = require("../../error");
7
+ const httpFunction = (method, route, client, server, payload) => {
8
+ if (!client.res) {
9
+ return;
10
+ }
11
+ const name = route.name;
12
+ server.functions
13
+ .install(name)
14
+ .then((spec) => {
15
+ if (!client.res) {
16
+ return;
17
+ }
18
+ if (spec && !(0, functions_1.isObservableFunctionSpec)(spec)) {
19
+ // TODO: way too much copy but this is tmp solution
20
+ server.functions
21
+ .runFunction(method === 'post' ? 3 : 4, spec, client.context, payload)
22
+ .then(async (result) => {
23
+ if (!client.res) {
24
+ return;
25
+ }
26
+ if (spec.customHttpResponse) {
27
+ if (await spec.customHttpResponse(result, payload, client)) {
28
+ return;
29
+ }
30
+ (0, send_1.sendHttpResponse)(client, result);
31
+ }
32
+ else {
33
+ (0, send_1.sendHttpResponse)(client, result);
34
+ }
35
+ })
36
+ .catch((err) => {
37
+ (0, send_1.sendHttpError)(server, client, error_1.BasedErrorCode.FunctionError, {
38
+ err,
39
+ route,
40
+ });
41
+ });
42
+ }
43
+ })
44
+ .catch(() => (0, send_1.sendHttpError)(server, client, error_1.BasedErrorCode.FunctionNotFound, route));
45
+ };
46
+ exports.httpFunction = httpFunction;
47
+ //# sourceMappingURL=function.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"function.js","sourceRoot":"","sources":["../../../src/network/http/function.ts"],"names":[],"mappings":";;;AAAA,+CAA0D;AAG1D,iCAAwD;AACxD,uCAA4C;AAErC,MAAM,YAAY,GAAG,CAC1B,MAAc,EACd,KAAyB,EACzB,MAAkB,EAClB,MAAmB,EACnB,OAAoB,EACd,EAAE;IACR,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE;QACf,OAAM;KACP;IACD,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAA;IACvB,MAAM,CAAC,SAAS;SACb,OAAO,CAAC,IAAI,CAAC;SACb,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE;QACb,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE;YACf,OAAM;SACP;QACD,IAAI,IAAI,IAAI,CAAC,IAAA,oCAAwB,EAAC,IAAI,CAAC,EAAE;YAC3C,mDAAmD;YACnD,MAAM,CAAC,SAAS;iBACb,WAAW,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC;iBACrE,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE;gBACrB,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE;oBACf,OAAM;iBACP;gBACD,IAAI,IAAI,CAAC,kBAAkB,EAAE;oBAC3B,IAAI,MAAM,IAAI,CAAC,kBAAkB,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,EAAE;wBAC1D,OAAM;qBACP;oBACD,IAAA,uBAAgB,EAAC,MAAM,EAAE,MAAM,CAAC,CAAA;iBACjC;qBAAM;oBACL,IAAA,uBAAgB,EAAC,MAAM,EAAE,MAAM,CAAC,CAAA;iBACjC;YACH,CAAC,CAAC;iBACD,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;gBACb,IAAA,oBAAa,EAAC,MAAM,EAAE,MAAM,EAAE,sBAAc,CAAC,aAAa,EAAE;oBAC1D,GAAG;oBACH,KAAK;iBACN,CAAC,CAAA;YACJ,CAAC,CAAC,CAAA;SACL;IACH,CAAC,CAAC;SACD,KAAK,CAAC,GAAG,EAAE,CACV,IAAA,oBAAa,EAAC,MAAM,EAAE,MAAM,EAAE,sBAAc,CAAC,gBAAgB,EAAE,KAAK,CAAC,CACtE,CAAA;AACL,CAAC,CAAA;AA7CY,QAAA,YAAY,gBA6CxB"}
@@ -0,0 +1,3 @@
1
+ import { BasedServer } from '../../server';
2
+ import { HttpClient, BasedFunctionRoute } from '../../types';
3
+ export declare const httpGet: (route: BasedFunctionRoute, payload: any, client: HttpClient, server: BasedServer, checksum: number) => void;
@@ -0,0 +1,129 @@
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.httpGet = void 0;
7
+ const functions_1 = require("../../functions");
8
+ const end_1 = __importDefault(require("./end"));
9
+ const compress_1 = require("./compress");
10
+ const send_1 = require("./send");
11
+ const hash_1 = require("@saulx/hash");
12
+ const observable_1 = require("../../observable");
13
+ const node_zlib_1 = __importDefault(require("node:zlib"));
14
+ const error_1 = require("../../error");
15
+ const sendGetResponse = (route, server, id, obs, checksum, client) => {
16
+ if (!client.res) {
17
+ return;
18
+ }
19
+ const encoding = client.context.headers.encoding;
20
+ try {
21
+ if (checksum === 0 || checksum !== obs.checksum) {
22
+ if (!obs.cache) {
23
+ (0, send_1.sendHttpError)(server, client, error_1.BasedErrorCode.NoOservableCacheAvailable, {
24
+ observableId: id,
25
+ name: obs.name,
26
+ });
27
+ }
28
+ else {
29
+ if (obs.isDeflate) {
30
+ if (typeof encoding === 'string' && encoding.includes('deflate')) {
31
+ client.res.cork(() => {
32
+ client.res.writeStatus('200 OK');
33
+ client.res.writeHeader('ETag', String(obs.checksum));
34
+ client.res.writeHeader('Content-Encoding', 'deflate');
35
+ (0, end_1.default)(client, obs.cache.slice(4 + 8 + 8));
36
+ });
37
+ }
38
+ else {
39
+ (0, compress_1.compress)(client, node_zlib_1.default.inflateRawSync(obs.cache.slice(4 + 8 + 8))).then(({ payload, encoding }) => {
40
+ client.res.cork(() => {
41
+ client.res.writeStatus('200 OK');
42
+ if (encoding) {
43
+ client.res.writeHeader('Content-Encoding', encoding);
44
+ }
45
+ client.res.writeHeader('ETag', String(obs.checksum));
46
+ (0, end_1.default)(client, payload);
47
+ });
48
+ });
49
+ }
50
+ }
51
+ else {
52
+ client.res.cork(() => {
53
+ client.res.writeStatus('200 OK');
54
+ client.res.writeHeader('ETag', String(obs.checksum));
55
+ (0, end_1.default)(client, obs.cache.slice(4 + 8 + 8));
56
+ });
57
+ }
58
+ }
59
+ }
60
+ else {
61
+ client.res.cork(() => {
62
+ client.res.writeStatus('304 Not Modified');
63
+ (0, end_1.default)(client);
64
+ });
65
+ }
66
+ }
67
+ catch (err) {
68
+ (0, send_1.sendHttpError)(server, client, error_1.BasedErrorCode.FunctionError, {
69
+ err,
70
+ observableId: id,
71
+ route,
72
+ });
73
+ }
74
+ if (obs.clients.size === 0) {
75
+ (0, observable_1.destroy)(server, id);
76
+ }
77
+ };
78
+ const httpGet = (route, payload, client, server, checksum) => {
79
+ if (!client.res) {
80
+ return;
81
+ }
82
+ const name = route.name;
83
+ server.functions
84
+ .install(name)
85
+ .then((spec) => {
86
+ if (!client.res) {
87
+ return;
88
+ }
89
+ if (spec && (0, functions_1.isObservableFunctionSpec)(spec)) {
90
+ const id = (0, hash_1.hashObjectIgnoreKeyOrder)([name, payload]);
91
+ if (server.activeObservablesById.has(id)) {
92
+ const obs = server.activeObservablesById.get(id);
93
+ if (obs.beingDestroyed) {
94
+ clearTimeout(obs.beingDestroyed);
95
+ obs.beingDestroyed = null;
96
+ }
97
+ if (obs.cache) {
98
+ sendGetResponse(route, server, id, obs, checksum, client);
99
+ }
100
+ else {
101
+ if (!obs.onNextData) {
102
+ obs.onNextData = new Set();
103
+ }
104
+ obs.onNextData.add(() => {
105
+ sendGetResponse(route, server, id, obs, checksum, client);
106
+ });
107
+ }
108
+ }
109
+ else {
110
+ const obs = (0, observable_1.create)(server, name, id, payload);
111
+ if (!obs.onNextData) {
112
+ obs.onNextData = new Set();
113
+ }
114
+ obs.onNextData.add(() => {
115
+ sendGetResponse(route, server, id, obs, checksum, client);
116
+ });
117
+ }
118
+ }
119
+ else if (spec && (0, functions_1.isObservableFunctionSpec)(spec)) {
120
+ (0, send_1.sendHttpError)(server, client, error_1.BasedErrorCode.FunctionIsNotObservable, route);
121
+ }
122
+ else {
123
+ (0, send_1.sendHttpError)(server, client, error_1.BasedErrorCode.FunctionNotFound, route);
124
+ }
125
+ })
126
+ .catch(() => (0, send_1.sendHttpError)(server, client, error_1.BasedErrorCode.FunctionNotFound, route));
127
+ };
128
+ exports.httpGet = httpGet;
129
+ //# sourceMappingURL=get.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get.js","sourceRoot":"","sources":["../../../src/network/http/get.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import uws from '@based/uws';
2
+ import { BasedServer } from '../../server';
3
+ export declare const httpHandler: (server: BasedServer, req: uws.HttpRequest, res: uws.HttpResponse) => void;
@@ -0,0 +1,122 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.httpHandler = void 0;
4
+ const function_1 = require("./function");
5
+ const streamFunction_1 = require("./streamFunction");
6
+ const get_1 = require("./get");
7
+ const utils_1 = require("@saulx/utils");
8
+ const readBody_1 = require("./readBody");
9
+ const send_1 = require("./send");
10
+ const authorize_1 = require("./authorize");
11
+ const error_1 = require("../../error");
12
+ const security_1 = require("../../security");
13
+ let clientId = 0;
14
+ // TODO: re-add authorize
15
+ const handleRequest = (server, method, client, route, ready) => {
16
+ // send shared array buffer
17
+ if (method === 'post') {
18
+ (0, readBody_1.readBody)(server, client, ready, route);
19
+ }
20
+ else {
21
+ ready();
22
+ }
23
+ };
24
+ const httpHandler = (server, req, res) => {
25
+ res.onAborted(() => {
26
+ client.context = null;
27
+ client.res = null;
28
+ client.req = null;
29
+ });
30
+ const ip = req.getHeader('x-forwarded-for') ||
31
+ Buffer.from(res.getRemoteAddressAsText()).toString();
32
+ if ((0, security_1.incomingCounter)(server, ip)) {
33
+ res.writeStatus('429 Too Many Requests');
34
+ res.end();
35
+ return;
36
+ }
37
+ const url = req.getUrl();
38
+ const path = url.split('/');
39
+ const route = server.functions.route(path[1], url);
40
+ if (route === false) {
41
+ (0, send_1.sendHttpError)(server, {
42
+ res,
43
+ req,
44
+ // @ts-ignore (ignore because we dont need a lot here)
45
+ context: { ip, id: ++clientId, headers: {} },
46
+ }, error_1.BasedErrorCode.FunctionNotFound, path[1] ? { name: path[1] } : { path: url });
47
+ return;
48
+ }
49
+ const method = req.getMethod();
50
+ //
51
+ // const valid = simdjson.isValid(jsonString); // true
52
+ // read only...
53
+ const client = {
54
+ res,
55
+ req,
56
+ context: {
57
+ method,
58
+ query: req.getQuery(),
59
+ ua: req.getHeader('user-agent'),
60
+ ip,
61
+ id: ++clientId,
62
+ headers: {
63
+ authorization: req.getHeader('authorization'),
64
+ 'content-type': req.getHeader('content-type'),
65
+ 'content-encoding': req.getHeader('content-encoding'),
66
+ encoding: req.getHeader('accept-encoding'),
67
+ },
68
+ },
69
+ };
70
+ const len = req.getHeader('content-length');
71
+ // @ts-ignore
72
+ if (len && !isNaN(len)) {
73
+ client.context.headers['content-length'] = Number(len);
74
+ }
75
+ if (method === 'post' &&
76
+ client.context.headers['content-length'] === undefined) {
77
+ // zero allowed, but not for streams
78
+ (0, send_1.sendHttpError)(server, client, error_1.BasedErrorCode.LengthRequired, route);
79
+ return;
80
+ }
81
+ if (route.headers) {
82
+ for (const header of route.headers) {
83
+ const v = req.getHeader(header);
84
+ if (v) {
85
+ client.context[header] = v;
86
+ }
87
+ }
88
+ }
89
+ if (route.observable === true) {
90
+ if (route.stream) {
91
+ (0, send_1.sendHttpError)(server, client, error_1.BasedErrorCode.CannotStreamToObservableFunction, route);
92
+ return;
93
+ }
94
+ const checksumRaw = req.getHeader('if-none-match');
95
+ // @ts-ignore use isNaN to cast string to number
96
+ const checksum = !isNaN(checksumRaw) ? Number(checksumRaw) : 0;
97
+ handleRequest(server, method, client, route, (payload) => {
98
+ (0, authorize_1.authorizeRequest)(server, client, payload, route, () => {
99
+ (0, get_1.httpGet)(route, payload, client, server, checksum);
100
+ });
101
+ });
102
+ }
103
+ else {
104
+ if (route.stream === true) {
105
+ if (method !== 'post') {
106
+ (0, send_1.sendHttpError)(server, client, error_1.BasedErrorCode.MethodNotAllowed, route);
107
+ return;
108
+ }
109
+ if (client.context.headers['content-length'] === 0) {
110
+ // zero is also not allowed for streams
111
+ (0, send_1.sendHttpError)(server, client, error_1.BasedErrorCode.LengthRequired, route);
112
+ return;
113
+ }
114
+ (0, streamFunction_1.httpStreamFunction)(server, client, (0, utils_1.parseQuery)(client.context.query), route);
115
+ }
116
+ else {
117
+ handleRequest(server, method, client, route, (payload) => (0, function_1.httpFunction)(method, route, client, server, payload));
118
+ }
119
+ }
120
+ };
121
+ exports.httpHandler = httpHandler;
122
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/network/http/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import { BasedFunctionRoute, HttpClient } from '../../types';
2
+ import { BasedServer } from '../../server';
3
+ export declare const readBody: (server: BasedServer, client: HttpClient, onData: (data: any | void) => void, route: BasedFunctionRoute) => void;
@@ -0,0 +1,112 @@
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.readBody = void 0;
7
+ const node_zlib_1 = __importDefault(require("node:zlib"));
8
+ const send_1 = require("./send");
9
+ const error_1 = require("../../error");
10
+ const MAX_CHUNK_SIZE = 1024 * 1024;
11
+ const UNCOMPRESS_OPTS = {
12
+ // can be endless scince we limit by incoming
13
+ chunkSize: 1024 * 1024 * 1000,
14
+ };
15
+ const readBody = (server, client, onData, route) => {
16
+ if (!client.res) {
17
+ return;
18
+ }
19
+ const contentLen = client.context.headers['content-length'];
20
+ if (contentLen > route.maxPayloadSize) {
21
+ (0, send_1.sendHttpError)(server, client, error_1.BasedErrorCode.PayloadTooLarge, route);
22
+ return;
23
+ }
24
+ const contentEncoding = client.context.headers['content-encoding'];
25
+ let size = 0;
26
+ if (contentEncoding) {
27
+ let uncompressStream;
28
+ if (contentEncoding === 'deflate') {
29
+ uncompressStream = node_zlib_1.default.createInflate(UNCOMPRESS_OPTS);
30
+ }
31
+ else if (contentEncoding === 'gzip') {
32
+ uncompressStream = node_zlib_1.default.createGunzip(UNCOMPRESS_OPTS);
33
+ }
34
+ else if (contentEncoding === 'br') {
35
+ uncompressStream = node_zlib_1.default.createBrotliDecompress(UNCOMPRESS_OPTS);
36
+ }
37
+ if (uncompressStream) {
38
+ client.res.onData((c, isLast) => {
39
+ size += c.byteLength;
40
+ if (size > route.maxPayloadSize) {
41
+ (0, send_1.sendHttpError)(server, client, error_1.BasedErrorCode.PayloadTooLarge, route);
42
+ // sendHttpError(client, 'Payload Too Large', 413)
43
+ uncompressStream.destroy();
44
+ return;
45
+ }
46
+ if (c.byteLength > MAX_CHUNK_SIZE) {
47
+ (0, send_1.sendHttpError)(server, client, error_1.BasedErrorCode.ChunkTooLarge, route);
48
+ uncompressStream.destroy();
49
+ return;
50
+ }
51
+ const buf = Buffer.alloc(c.byteLength, Buffer.from(c));
52
+ if (isLast) {
53
+ uncompressStream.end(buf);
54
+ }
55
+ else {
56
+ if (!uncompressStream.write(buf)) {
57
+ // handle backpressure
58
+ }
59
+ }
60
+ });
61
+ // TODO: NEED TO READ CONTENT LEN OF UNCOMPRESSED....
62
+ const data = new SharedArrayBuffer(contentLen);
63
+ const buf = new Uint8Array(data);
64
+ // let index = 0
65
+ uncompressStream.on('data', (c) => {
66
+ console.info('bytes written???', uncompressStream.bytesWritten, c);
67
+ // FIX LATER
68
+ // const len = c.byteLength
69
+ // for (let i = 0; i < len; i++) {
70
+ // console.log(c[i])
71
+ // worng ofc..
72
+ // maybe unpack in worker? - will not work like this...
73
+ // Atomics.store(buf, index, c[i])
74
+ // }
75
+ // index += len
76
+ });
77
+ uncompressStream.on('end', () => {
78
+ uncompressStream.destroy();
79
+ // parseData(server, client, contentType, data, false, route)
80
+ onData(buf);
81
+ });
82
+ }
83
+ else {
84
+ (0, send_1.sendHttpError)(server, client, error_1.BasedErrorCode.InvalidPayload, route);
85
+ }
86
+ }
87
+ else {
88
+ const data = new SharedArrayBuffer(contentLen);
89
+ const buf = new Uint8Array(data);
90
+ let index = 0;
91
+ client.res.onData((c, isLast) => {
92
+ const len = c.byteLength;
93
+ size += len;
94
+ if (size > route.maxPayloadSize) {
95
+ (0, send_1.sendHttpError)(server, client, error_1.BasedErrorCode.PayloadTooLarge, route);
96
+ return;
97
+ }
98
+ if (c.byteLength > MAX_CHUNK_SIZE) {
99
+ (0, send_1.sendHttpError)(server, client, error_1.BasedErrorCode.ChunkTooLarge, route);
100
+ return;
101
+ }
102
+ buf.set(new Uint8Array(c), index);
103
+ index += len;
104
+ if (isLast) {
105
+ console.info('shared buf time', buf);
106
+ onData(buf);
107
+ }
108
+ });
109
+ }
110
+ };
111
+ exports.readBody = readBody;
112
+ //# sourceMappingURL=readBody.js.map