@based/server 3.4.5 → 3.4.6

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 (140) hide show
  1. package/dist/handlers/bulkUpdate/index.d.ts +1 -1
  2. package/dist/handlers/configure/index.d.ts +1 -1
  3. package/dist/handlers/copy/index.d.ts +1 -1
  4. package/dist/handlers/delete/index.d.ts +1 -1
  5. package/dist/handlers/digest/index.d.ts +1 -1
  6. package/dist/handlers/get/index.d.ts +1 -1
  7. package/dist/handlers/getConfig/index.d.ts +1 -1
  8. package/dist/handlers/removeField/index.d.ts +1 -1
  9. package/dist/handlers/removeType/index.d.ts +1 -1
  10. package/dist/handlers/rest/file/stream.js +1 -2
  11. package/dist/handlers/rest/file/stream.js.map +1 -1
  12. package/dist/handlers/set/index.d.ts +1 -1
  13. package/package.json +1 -1
  14. package/.turbo/turbo-build.log +0 -4
  15. package/dist/auth/authorize.d.ts +0 -2
  16. package/dist/auth/authorize.js +0 -8
  17. package/dist/auth/authorize.js.map +0 -1
  18. package/dist/auth/dummyAuth.d.ts +0 -2
  19. package/dist/auth/dummyAuth.js +0 -7
  20. package/dist/auth/dummyAuth.js.map +0 -1
  21. package/dist/auth/index.d.ts +0 -11
  22. package/dist/auth/index.js +0 -44
  23. package/dist/auth/index.js.map +0 -1
  24. package/dist/clientContext.d.ts +0 -0
  25. package/dist/clientContext.js +0 -83
  26. package/dist/clientContext.js.map +0 -1
  27. package/dist/error.d.ts +0 -66
  28. package/dist/error.js +0 -149
  29. package/dist/error.js.map +0 -1
  30. package/dist/functions/index.d.ts +0 -48
  31. package/dist/functions/index.js +0 -399
  32. package/dist/functions/index.js.map +0 -1
  33. package/dist/functions/timeout.d.ts +0 -3
  34. package/dist/functions/timeout.js +0 -23
  35. package/dist/functions/timeout.js.map +0 -1
  36. package/dist/functions/workerPool.d.ts +0 -0
  37. package/dist/functions/workerPool.js +0 -5
  38. package/dist/functions/workerPool.js.map +0 -1
  39. package/dist/network/http/authorize.d.ts +0 -3
  40. package/dist/network/http/authorize.js +0 -28
  41. package/dist/network/http/authorize.js.map +0 -1
  42. package/dist/network/http/compress.d.ts +0 -6
  43. package/dist/network/http/compress.js +0 -56
  44. package/dist/network/http/compress.js.map +0 -1
  45. package/dist/network/http/end.d.ts +0 -4
  46. package/dist/network/http/end.js +0 -19
  47. package/dist/network/http/end.js.map +0 -1
  48. package/dist/network/http/function.d.ts +0 -3
  49. package/dist/network/http/function.js +0 -47
  50. package/dist/network/http/function.js.map +0 -1
  51. package/dist/network/http/get.d.ts +0 -3
  52. package/dist/network/http/get.js +0 -129
  53. package/dist/network/http/get.js.map +0 -1
  54. package/dist/network/http/index.d.ts +0 -3
  55. package/dist/network/http/index.js +0 -122
  56. package/dist/network/http/index.js.map +0 -1
  57. package/dist/network/http/readBody.d.ts +0 -3
  58. package/dist/network/http/readBody.js +0 -112
  59. package/dist/network/http/readBody.js.map +0 -1
  60. package/dist/network/http/send.d.ts +0 -5
  61. package/dist/network/http/send.js +0 -60
  62. package/dist/network/http/send.js.map +0 -1
  63. package/dist/network/http/streamFunction/DataStream.d.ts +0 -7
  64. package/dist/network/http/streamFunction/DataStream.js +0 -19
  65. package/dist/network/http/streamFunction/DataStream.js.map +0 -1
  66. package/dist/network/http/streamFunction/getExtension.d.ts +0 -2
  67. package/dist/network/http/streamFunction/getExtension.js +0 -29
  68. package/dist/network/http/streamFunction/getExtension.js.map +0 -1
  69. package/dist/network/http/streamFunction/index.d.ts +0 -3
  70. package/dist/network/http/streamFunction/index.js +0 -81
  71. package/dist/network/http/streamFunction/index.js.map +0 -1
  72. package/dist/network/http/streamFunction/multipartStream.d.ts +0 -12
  73. package/dist/network/http/streamFunction/multipartStream.js +0 -208
  74. package/dist/network/http/streamFunction/multipartStream.js.map +0 -1
  75. package/dist/network/http/streamFunction/stream.d.ts +0 -5
  76. package/dist/network/http/streamFunction/stream.js +0 -103
  77. package/dist/network/http/streamFunction/stream.js.map +0 -1
  78. package/dist/network/index.d.ts +0 -4
  79. package/dist/network/index.js +0 -84
  80. package/dist/network/index.js.map +0 -1
  81. package/dist/network/message/auth.d.ts +0 -4
  82. package/dist/network/message/auth.js +0 -32
  83. package/dist/network/message/auth.js.map +0 -1
  84. package/dist/network/message/function.d.ts +0 -3
  85. package/dist/network/message/function.js +0 -67
  86. package/dist/network/message/function.js.map +0 -1
  87. package/dist/network/message/get.d.ts +0 -3
  88. package/dist/network/message/get.js +0 -109
  89. package/dist/network/message/get.js.map +0 -1
  90. package/dist/network/message/index.d.ts +0 -3
  91. package/dist/network/message/index.js +0 -62
  92. package/dist/network/message/index.js.map +0 -1
  93. package/dist/network/message/observable.d.ts +0 -5
  94. package/dist/network/message/observable.js +0 -103
  95. package/dist/network/message/observable.js.map +0 -1
  96. package/dist/network/message/send.d.ts +0 -4
  97. package/dist/network/message/send.js +0 -11
  98. package/dist/network/message/send.js.map +0 -1
  99. package/dist/network/upgrade.d.ts +0 -4
  100. package/dist/network/upgrade.js +0 -49
  101. package/dist/network/upgrade.js.map +0 -1
  102. package/dist/network/worker/get.d.ts +0 -0
  103. package/dist/network/worker/get.js +0 -122
  104. package/dist/network/worker/get.js.map +0 -1
  105. package/dist/network/worker/observable.d.ts +0 -0
  106. package/dist/network/worker/observable.js +0 -120
  107. package/dist/network/worker/observable.js.map +0 -1
  108. package/dist/observable/index.d.ts +0 -8
  109. package/dist/observable/index.js +0 -154
  110. package/dist/observable/index.js.map +0 -1
  111. package/dist/protocol.d.ts +0 -19
  112. package/dist/protocol.js +0 -212
  113. package/dist/protocol.js.map +0 -1
  114. package/dist/security/index.d.ts +0 -2
  115. package/dist/security/index.js +0 -57
  116. package/dist/security/index.js.map +0 -1
  117. package/dist/server.d.ts +0 -35
  118. package/dist/server.js +0 -99
  119. package/dist/server.js.map +0 -1
  120. package/dist/worker/authorize.d.ts +0 -5
  121. package/dist/worker/authorize.js +0 -15
  122. package/dist/worker/authorize.js.map +0 -1
  123. package/dist/worker/fnMap.d.ts +0 -2
  124. package/dist/worker/fnMap.js +0 -5
  125. package/dist/worker/fnMap.js.map +0 -1
  126. package/dist/worker/functions.d.ts +0 -3
  127. package/dist/worker/functions.js +0 -8
  128. package/dist/worker/functions.js.map +0 -1
  129. package/dist/worker/http/function.d.ts +0 -4
  130. package/dist/worker/http/function.js +0 -75
  131. package/dist/worker/http/function.js.map +0 -1
  132. package/dist/worker/index.d.ts +0 -1
  133. package/dist/worker/index.js +0 -101
  134. package/dist/worker/index.js.map +0 -1
  135. package/dist/worker/observable.d.ts +0 -15
  136. package/dist/worker/observable.js +0 -110
  137. package/dist/worker/observable.js.map +0 -1
  138. package/dist/worker/ws/function.d.ts +0 -3
  139. package/dist/worker/ws/function.js +0 -42
  140. package/dist/worker/ws/function.js.map +0 -1
@@ -1,8 +0,0 @@
1
- import { BasedServer } from '../server';
2
- import { ActiveObservable, WebsocketClient } from '../types';
3
- export declare const destroy: (server: BasedServer, id: number) => void;
4
- export declare const subscribe: (server: BasedServer, id: number, checksum: number, client: WebsocketClient) => void;
5
- export declare const unsubscribe: (server: BasedServer, id: number, client: WebsocketClient) => void;
6
- export declare const unsubscribeIgnoreClient: (server: BasedServer, id: number, client: WebsocketClient) => void;
7
- export declare const initFunction: (server: BasedServer, id: number) => Promise<void>;
8
- export declare const create: (server: BasedServer, name: string, id: number, payload: any) => ActiveObservable;
@@ -1,154 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.create = exports.initFunction = exports.unsubscribeIgnoreClient = exports.unsubscribe = exports.subscribe = exports.destroy = void 0;
4
- const destroy = (server, id) => {
5
- const obs = server.activeObservablesById.get(id);
6
- if (!obs) {
7
- console.error('Observable', id, 'does not exists');
8
- return;
9
- }
10
- if (obs.isDestroyed) {
11
- return;
12
- }
13
- const spec = server.functions.observables[obs.name];
14
- if (!spec) {
15
- console.warn('Cannot find observable function spec!', obs.name);
16
- return;
17
- }
18
- const memCacheTimeout = spec.memCacheTimeout ?? server.functions.config.memCacheTimeout;
19
- if (!obs.beingDestroyed) {
20
- obs.beingDestroyed = setTimeout(() => {
21
- if (!server.activeObservables[obs.name]) {
22
- console.info('Trying to destroy a removed observable function');
23
- return;
24
- }
25
- obs.beingDestroyed = null;
26
- server.activeObservables[obs.name].delete(id);
27
- if (server.activeObservables[obs.name].size === 0) {
28
- delete server.activeObservables[obs.name];
29
- }
30
- server.activeObservablesById.delete(id);
31
- obs.isDestroyed = true;
32
- obs.closeFunction();
33
- }, memCacheTimeout);
34
- }
35
- };
36
- exports.destroy = destroy;
37
- const subscribe = (server, id, checksum, client) => {
38
- if (!client.ws) {
39
- return;
40
- }
41
- const obs = server.activeObservablesById.get(id);
42
- client.ws.obs.add(id);
43
- if (obs.beingDestroyed) {
44
- clearTimeout(obs.beingDestroyed);
45
- obs.beingDestroyed = null;
46
- }
47
- obs.clients.add(client.ws.id);
48
- if (obs.cache && obs.checksum !== checksum) {
49
- if (obs.diffCache && obs.previousChecksum === checksum) {
50
- client.ws.send(obs.diffCache, true, false);
51
- }
52
- else {
53
- client.ws.send(obs.cache, true, false);
54
- }
55
- }
56
- };
57
- exports.subscribe = subscribe;
58
- const unsubscribe = (server, id, client) => {
59
- if (!client.ws) {
60
- return;
61
- }
62
- if (!client.ws.obs.has(id)) {
63
- return;
64
- }
65
- const obs = server.activeObservablesById.get(id);
66
- client.ws.obs.delete(id);
67
- if (!obs) {
68
- return;
69
- }
70
- obs.clients.delete(client.ws.id);
71
- if (obs.clients.size === 0) {
72
- (0, exports.destroy)(server, id);
73
- }
74
- };
75
- exports.unsubscribe = unsubscribe;
76
- const unsubscribeIgnoreClient = (server, id, client) => {
77
- if (!client.ws) {
78
- return;
79
- }
80
- const obs = server.activeObservablesById.get(id);
81
- if (!obs) {
82
- return;
83
- }
84
- obs.clients.delete(client.ws.id);
85
- if (obs.clients.size === 0) {
86
- (0, exports.destroy)(server, id);
87
- }
88
- };
89
- exports.unsubscribeIgnoreClient = unsubscribeIgnoreClient;
90
- const initFunction = async (server, id) => {
91
- const obs = server.activeObservablesById.get(id);
92
- if (obs.closeFunction) {
93
- obs.closeFunction();
94
- delete obs.closeFunction;
95
- }
96
- const spec = server.functions.observables[obs.name];
97
- if (!spec) {
98
- console.warn('Cannot find observable function spec!', obs.name);
99
- return;
100
- }
101
- const payload = obs.payload;
102
- const close = server.functions.runObservableFunction(spec, id,
103
- // add isDeflate for http
104
- (err) => {
105
- if (err) {
106
- console.error('ERROR TIMES /w obserbable', err);
107
- }
108
- }, (encodedDiffData, encodedData, checksum, isDeflate) => {
109
- obs.previousChecksum = obs.checksum;
110
- obs.checksum = checksum;
111
- obs.cache = encodedData;
112
- obs.isDeflate = isDeflate;
113
- if (encodedDiffData) {
114
- obs.diffCache = encodedDiffData;
115
- server.uwsApp.publish(String(id), encodedDiffData, true, false);
116
- }
117
- else {
118
- server.uwsApp.publish(String(id), encodedData, true, false);
119
- }
120
- if (obs.onNextData) {
121
- const setObs = obs.onNextData;
122
- delete obs.onNextData;
123
- setObs.forEach((fn) => fn());
124
- }
125
- }, payload);
126
- if (obs.isDestroyed) {
127
- close();
128
- }
129
- else {
130
- obs.closeFunction = close;
131
- }
132
- };
133
- exports.initFunction = initFunction;
134
- const create = (server, name, id, payload) => {
135
- if (server.activeObservablesById.has(id)) {
136
- return server.activeObservablesById.get(id);
137
- }
138
- const obs = {
139
- payload,
140
- clients: new Set(),
141
- id,
142
- name,
143
- isDestroyed: false,
144
- };
145
- if (!server.activeObservables[name]) {
146
- server.activeObservables[name] = new Map();
147
- }
148
- server.activeObservables[name].set(id, obs);
149
- server.activeObservablesById.set(id, obs);
150
- (0, exports.initFunction)(server, id);
151
- return obs;
152
- };
153
- exports.create = create;
154
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/observable/index.ts"],"names":[],"mappings":"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"}
@@ -1,19 +0,0 @@
1
- /// <reference types="node" />
2
- export declare const COMPRESS_FROM_BYTES = 150;
3
- export declare const decodeHeader: (nr: number) => {
4
- type: number;
5
- isDeflate: boolean;
6
- len: number;
7
- };
8
- export declare const storeUint8: (buff: Uint8Array, n: number, start: number, len: number) => void;
9
- export declare const readUint8: (buff: Uint8Array, start: number, len: number) => number;
10
- export declare const encodeHeader: (type: number, isDeflate: boolean, len: number) => number;
11
- export declare const valueToBuffer: (payload: any) => Buffer;
12
- export declare const decodePayload: (payload: Uint8Array, isDeflate: boolean) => any;
13
- export declare const decodeName: (arr: Uint8Array, start: number, end: number) => string;
14
- export declare const encodeFunctionResponse: (id: number, buffer: Buffer) => Uint8Array;
15
- export declare const encodeGetResponse: (id: number) => Uint8Array;
16
- export declare const encodeObservableResponse: (id: number, checksum: number, buffer: Buffer) => [Uint8Array, boolean];
17
- export declare const encodeObservableDiffResponse: (id: number, checksum: number, previousChecksum: number, buffer: Buffer) => Uint8Array;
18
- export declare const encodeAuthResponse: (buffer: Buffer) => Uint8Array;
19
- export declare const encodeErrorResponse: (buffer: Buffer) => Uint8Array;
package/dist/protocol.js DELETED
@@ -1,212 +0,0 @@
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.encodeErrorResponse = exports.encodeAuthResponse = exports.encodeObservableDiffResponse = exports.encodeObservableResponse = exports.encodeGetResponse = exports.encodeFunctionResponse = exports.decodeName = exports.decodePayload = exports.valueToBuffer = exports.encodeHeader = exports.readUint8 = exports.storeUint8 = exports.decodeHeader = exports.COMPRESS_FROM_BYTES = void 0;
7
- const node_zlib_1 = __importDefault(require("node:zlib"));
8
- const textDecoder = new TextDecoder();
9
- exports.COMPRESS_FROM_BYTES = 150;
10
- const decodeHeader = (nr) => {
11
- // 4 bytes
12
- // type (3 bits)
13
- // 0 = function
14
- // 1 = subscribe
15
- // 2 = unsubscribe
16
- // 3 = get from observable
17
- // 4 = auth
18
- // 5 = error
19
- // isDeflate (1 bit)
20
- // len (28 bits)
21
- const len = nr >> 4;
22
- const meta = nr & 15;
23
- const type = meta >> 1;
24
- const isDeflate = meta & 1;
25
- return {
26
- type,
27
- isDeflate: isDeflate === 1,
28
- len,
29
- };
30
- };
31
- exports.decodeHeader = decodeHeader;
32
- const storeUint8 = (buff, n, start, len) => {
33
- for (let index = start; index < start + len; index++) {
34
- const byte = n & 0xff;
35
- buff[index] = byte;
36
- n = (n - byte) / 256;
37
- }
38
- };
39
- exports.storeUint8 = storeUint8;
40
- const readUint8 = (buff, start, len) => {
41
- let n = 0;
42
- const s = len - 1 + start;
43
- for (let i = s; i >= start; i--) {
44
- n = n * 256 + buff[i];
45
- }
46
- return n;
47
- };
48
- exports.readUint8 = readUint8;
49
- const encodeHeader = (type, isDeflate, len) => {
50
- // 4 bytes
51
- // type (3 bits)
52
- // 0 = functionData
53
- // 1 = subscriptionData
54
- // 2 = subscriptionDiffData
55
- // isDeflate (1 bit)
56
- // len (28 bits)
57
- // @ts-ignore
58
- const encodedMeta = (type << 1) + (isDeflate | 0);
59
- const nr = (len << 4) + encodedMeta;
60
- return nr;
61
- };
62
- exports.encodeHeader = encodeHeader;
63
- const valueToBuffer = (payload) => {
64
- // can use a more elloborate typed response e.g. number etc in there
65
- if (payload === undefined) {
66
- return Buffer.from([]);
67
- }
68
- // only stringify if not string...
69
- return Buffer.from(JSON.stringify(payload));
70
- };
71
- exports.valueToBuffer = valueToBuffer;
72
- const decodePayload = (payload, isDeflate) => {
73
- if (!isDeflate) {
74
- return textDecoder.decode(payload);
75
- }
76
- const buffer = node_zlib_1.default.inflateRawSync(payload);
77
- return textDecoder.decode(buffer);
78
- };
79
- exports.decodePayload = decodePayload;
80
- const decodeName = (arr, start, end) => {
81
- const name = new Uint8Array(arr.slice(start, end));
82
- return textDecoder.decode(name);
83
- };
84
- exports.decodeName = decodeName;
85
- const encodeFunctionResponse = (id, buffer) => {
86
- // Type 0
87
- // | 4 header | 3 id | * payload |
88
- let isDeflate = false;
89
- // implement later
90
- const chunks = 1;
91
- if (buffer.length > exports.COMPRESS_FROM_BYTES) {
92
- isDeflate = true;
93
- buffer = node_zlib_1.default.deflateRawSync(buffer, {});
94
- }
95
- if (chunks === 1) {
96
- const headerSize = 4;
97
- const idSize = 3;
98
- const msgSize = idSize + buffer.length;
99
- const header = (0, exports.encodeHeader)(0, isDeflate, msgSize);
100
- // not very nessecary but ok
101
- const buf = new SharedArrayBuffer(headerSize + msgSize);
102
- const array = new Uint8Array(buf);
103
- (0, exports.storeUint8)(array, header, 0, 4);
104
- (0, exports.storeUint8)(array, id, 4, 3);
105
- if (buffer.length) {
106
- array.set(buffer, 7);
107
- }
108
- return array;
109
- }
110
- else {
111
- console.warn('chunk not implemented yet');
112
- return new Uint8Array(0);
113
- }
114
- };
115
- exports.encodeFunctionResponse = encodeFunctionResponse;
116
- const encodeGetResponse = (id) => {
117
- // Type 4
118
- // | 4 header | 8 id |
119
- const header = (0, exports.encodeHeader)(3, false, 8);
120
- const array = new Uint8Array(12);
121
- (0, exports.storeUint8)(array, header, 0, 4);
122
- (0, exports.storeUint8)(array, id, 4, 8);
123
- return array;
124
- };
125
- exports.encodeGetResponse = encodeGetResponse;
126
- const encodeObservableResponse = (id, checksum, buffer) => {
127
- // Type 1 (full data)
128
- // | 4 header | 8 id | 8 checksum | * payload |
129
- let isDeflate = false;
130
- // implement later
131
- const chunks = 1;
132
- if (buffer.length > exports.COMPRESS_FROM_BYTES) {
133
- isDeflate = true;
134
- buffer = node_zlib_1.default.deflateRawSync(buffer, {});
135
- }
136
- if (chunks === 1) {
137
- const msgSize = 16 + buffer.length;
138
- const header = (0, exports.encodeHeader)(1, isDeflate, msgSize);
139
- const sBuff = new SharedArrayBuffer(4 + msgSize);
140
- const array = new Uint8Array(sBuff);
141
- (0, exports.storeUint8)(array, header, 0, 4);
142
- (0, exports.storeUint8)(array, id, 4, 8);
143
- (0, exports.storeUint8)(array, checksum, 12, 8);
144
- if (buffer.length) {
145
- array.set(buffer, 20);
146
- }
147
- return [array, isDeflate];
148
- }
149
- else {
150
- console.warn('chunk not implemented yet');
151
- return [new Uint8Array(0), false];
152
- }
153
- };
154
- exports.encodeObservableResponse = encodeObservableResponse;
155
- const encodeObservableDiffResponse = (id, checksum, previousChecksum, buffer) => {
156
- // Type 2 (diff data)
157
- // | 4 header | 8 id | 8 checksum | 8 previousChecksum | * diff |
158
- let isDeflate = false;
159
- // implement later
160
- const chunks = 1;
161
- if (buffer.length > exports.COMPRESS_FROM_BYTES) {
162
- isDeflate = true;
163
- buffer = node_zlib_1.default.deflateRawSync(buffer, {});
164
- }
165
- if (chunks === 1) {
166
- const msgSize = 24 + buffer.length;
167
- const header = (0, exports.encodeHeader)(2, isDeflate, msgSize);
168
- const sBuff = new SharedArrayBuffer(4 + msgSize);
169
- const array = new Uint8Array(sBuff);
170
- (0, exports.storeUint8)(array, header, 0, 4);
171
- (0, exports.storeUint8)(array, id, 4, 8);
172
- (0, exports.storeUint8)(array, checksum, 12, 8);
173
- (0, exports.storeUint8)(array, previousChecksum, 20, 8);
174
- if (buffer.length) {
175
- array.set(buffer, 28);
176
- }
177
- return array;
178
- }
179
- else {
180
- console.warn('chunk not implemented yet');
181
- return new Uint8Array(0);
182
- }
183
- };
184
- exports.encodeObservableDiffResponse = encodeObservableDiffResponse;
185
- const encodeSimpleResponse = (type, buffer) => {
186
- // | 4 header | * payload |
187
- let isDeflate = false;
188
- if (buffer.length > exports.COMPRESS_FROM_BYTES) {
189
- isDeflate = true;
190
- buffer = node_zlib_1.default.deflateRawSync(buffer, {});
191
- }
192
- const headerSize = 4;
193
- const msgSize = buffer.length;
194
- const header = (0, exports.encodeHeader)(type, isDeflate, msgSize);
195
- const array = new Uint8Array(headerSize + msgSize);
196
- (0, exports.storeUint8)(array, header, 0, 4);
197
- if (buffer.length) {
198
- array.set(buffer, 4);
199
- }
200
- return array;
201
- };
202
- const encodeAuthResponse = (buffer) => {
203
- // Type 4
204
- return encodeSimpleResponse(4, buffer);
205
- };
206
- exports.encodeAuthResponse = encodeAuthResponse;
207
- const encodeErrorResponse = (buffer) => {
208
- // Type 5
209
- return encodeSimpleResponse(5, buffer);
210
- };
211
- exports.encodeErrorResponse = encodeErrorResponse;
212
- //# sourceMappingURL=protocol.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"protocol.js","sourceRoot":"","sources":["../src/protocol.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- import type { BasedServer } from '../server';
2
- export declare const incomingCounter: (server: BasedServer, ip: string) => boolean;
@@ -1,57 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.incomingCounter = void 0;
4
- // import { BasedErrorCode } from '../error'
5
- // import { HttpClient, isHttpClient, WebsocketClient } from '../types'
6
- // token
7
- const drainRequestCounter = (server) => {
8
- server.requestsCounterInProgress = true;
9
- server.requestsCounterTimeout = setTimeout(() => {
10
- server.requestsCounterInProgress = false;
11
- // every 30 second remove - 30 reqs
12
- server.requestsCounter.forEach((value, ip) => {
13
- if (!value.errors?.size) {
14
- if (value.requests <= 0) {
15
- server.requestsCounter.delete(ip);
16
- return;
17
- // check if client is still active ?
18
- }
19
- }
20
- else {
21
- console.info('error handle different');
22
- }
23
- console.info('DRAIN RATELIMIT TOKENS');
24
- value.requests -= 60;
25
- });
26
- if (server.requestsCounter.size) {
27
- drainRequestCounter(server);
28
- }
29
- }, 30e3);
30
- };
31
- // not counter also rate limit adder
32
- const incomingCounter = (server, ip) => {
33
- let ipReqCounter = server.requestsCounter.get(ip);
34
- if (!ipReqCounter) {
35
- ipReqCounter = {
36
- requests: 1,
37
- };
38
- server.requestsCounter.set(ip, ipReqCounter);
39
- }
40
- else {
41
- ipReqCounter.requests++;
42
- }
43
- // rate limit per route....
44
- if (ipReqCounter.requests > 1000) {
45
- // console.info('RATE LIMIT', ip)
46
- // good indicator of malicious activity
47
- // server.emit('ratelimit', client)
48
- return true;
49
- }
50
- if (!server.requestsCounterInProgress) {
51
- drainRequestCounter(server);
52
- }
53
- return false;
54
- };
55
- exports.incomingCounter = incomingCounter;
56
- // incoming error counter is also a thing
57
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/security/index.ts"],"names":[],"mappings":";;;AAEA,4CAA4C;AAC5C,uEAAuE;AAEvE,QAAQ;AAER,MAAM,mBAAmB,GAAG,CAAC,MAAmB,EAAE,EAAE;IAClD,MAAM,CAAC,yBAAyB,GAAG,IAAI,CAAA;IACvC,MAAM,CAAC,sBAAsB,GAAG,UAAU,CAAC,GAAG,EAAE;QAC9C,MAAM,CAAC,yBAAyB,GAAG,KAAK,CAAA;QAExC,oCAAoC;QAEpC,MAAM,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE,EAAE,EAAE;YAC3C,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,IAAI,EAAE;gBACvB,IAAI,KAAK,CAAC,QAAQ,IAAI,CAAC,EAAE;oBACvB,MAAM,CAAC,eAAe,CAAC,MAAM,CAAC,EAAE,CAAC,CAAA;oBACjC,OAAM;oBACN,oCAAoC;iBACrC;aACF;iBAAM;gBACL,OAAO,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAA;aACvC;YACD,OAAO,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAA;YACtC,KAAK,CAAC,QAAQ,IAAI,EAAE,CAAA;QACtB,CAAC,CAAC,CAAA;QAEF,IAAI,MAAM,CAAC,eAAe,CAAC,IAAI,EAAE;YAC/B,mBAAmB,CAAC,MAAM,CAAC,CAAA;SAC5B;IACH,CAAC,EAAE,IAAI,CAAC,CAAA;AACV,CAAC,CAAA;AAED,oCAAoC;AAC7B,MAAM,eAAe,GAAG,CAAC,MAAmB,EAAE,EAAU,EAAW,EAAE;IAC1E,IAAI,YAAY,GAAG,MAAM,CAAC,eAAe,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;IACjD,IAAI,CAAC,YAAY,EAAE;QACjB,YAAY,GAAG;YACb,QAAQ,EAAE,CAAC;SACZ,CAAA;QACD,MAAM,CAAC,eAAe,CAAC,GAAG,CAAC,EAAE,EAAE,YAAY,CAAC,CAAA;KAC7C;SAAM;QACL,YAAY,CAAC,QAAQ,EAAE,CAAA;KACxB;IAED,2BAA2B;IAC3B,IAAI,YAAY,CAAC,QAAQ,GAAG,IAAI,EAAE;QAChC,kCAAkC;QAClC,uCAAuC;QACvC,mCAAmC;QACnC,OAAO,IAAI,CAAA;KACZ;IAED,IAAI,CAAC,MAAM,CAAC,yBAAyB,EAAE;QACrC,mBAAmB,CAAC,MAAM,CAAC,CAAA;KAC5B;IAED,OAAO,KAAK,CAAA;AACd,CAAC,CAAA;AAxBY,QAAA,eAAe,mBAwB3B;AAED,yCAAyC"}
package/dist/server.d.ts DELETED
@@ -1,35 +0,0 @@
1
- /// <reference types="node" />
2
- import uws from '@based/uws';
3
- import type { ServerOptions, ActiveObservable, Listener, EventMap, Event, HttpClient, WebsocketClient } from './types';
4
- import { BasedFunctions } from './functions';
5
- import { BasedAuth } from './auth';
6
- import { BasedErrorCode } from './error';
7
- export declare class BasedServer {
8
- functions: BasedFunctions;
9
- auth: BasedAuth;
10
- port: number;
11
- uwsApp: uws.TemplatedApp;
12
- listenSocket: any;
13
- whiteList: Set<string>;
14
- requestsCounter: Map<string, {
15
- requests: number;
16
- errors?: Map<BasedErrorCode, number>;
17
- }>;
18
- requestsCounterInProgress: boolean;
19
- requestsCounterTimeout: NodeJS.Timeout;
20
- activeObservables: {
21
- [name: string]: Map<number, ActiveObservable>;
22
- };
23
- activeObservablesById: Map<number, ActiveObservable>;
24
- listeners: {
25
- [E in Event]?: Listener<EventMap[E]>[];
26
- };
27
- constructor(opts: ServerOptions);
28
- emit(type: Event, client: HttpClient | WebsocketClient, val: EventMap[Event]): void;
29
- on(type: Event, fn: Listener<EventMap[Event]>): void;
30
- removeAllListeners(): void;
31
- once(type: Event, fn: Listener<EventMap[Event]>): void;
32
- off(type: Event, fn: Listener<EventMap[Event]>): void;
33
- start(port?: number): Promise<BasedServer>;
34
- destroy(): Promise<void>;
35
- }
package/dist/server.js DELETED
@@ -1,99 +0,0 @@
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.BasedServer = void 0;
7
- const uws_1 = __importDefault(require("@based/uws"));
8
- const network_1 = __importDefault(require("./network"));
9
- const functions_1 = require("./functions");
10
- const auth_1 = require("./auth");
11
- // extend emitter
12
- class BasedServer {
13
- constructor(opts) {
14
- // opposite of blocked can never get blocked
15
- this.whiteList = new Set();
16
- // per ip so consitent unfortanetly
17
- // check how large it is and make a loop to downgrade it
18
- this.requestsCounter = new Map();
19
- this.requestsCounterInProgress = false;
20
- this.activeObservables = {};
21
- this.activeObservablesById = new Map();
22
- this.listeners = {};
23
- this.functions = new functions_1.BasedFunctions(this, opts.functions);
24
- this.auth = new auth_1.BasedAuth(this, opts.auth);
25
- (0, network_1.default)(this, opts);
26
- }
27
- emit(type, client, val) {
28
- if (this.listeners[type]) {
29
- this.listeners[type].forEach((fn) => fn(client, val));
30
- }
31
- }
32
- on(type, fn) {
33
- if (!this.listeners[type]) {
34
- this.listeners[type] = [];
35
- }
36
- this.listeners[type].push(fn);
37
- }
38
- removeAllListeners() {
39
- this.listeners = {};
40
- }
41
- once(type, fn) {
42
- this.on(type, (v) => {
43
- fn(v);
44
- this.off(type, fn);
45
- });
46
- }
47
- off(type, fn) {
48
- const listeners = this.listeners[type];
49
- if (listeners) {
50
- if (!fn) {
51
- delete this.listeners[type];
52
- }
53
- else {
54
- for (let i = 0, len = listeners.length; i < len; i++) {
55
- if (listeners[i] === fn) {
56
- listeners.splice(i, 1);
57
- break;
58
- }
59
- }
60
- if (listeners.length === 0) {
61
- delete this.listeners[type];
62
- }
63
- }
64
- }
65
- }
66
- start(port) {
67
- if (!port) {
68
- port = this.port;
69
- }
70
- else {
71
- this.port = port;
72
- }
73
- return new Promise((resolve, reject) => {
74
- this.uwsApp.listen(this.port, (listenSocket) => {
75
- if (listenSocket) {
76
- console.info('💫 Based-server v2 listening on port:', this.port);
77
- // do this better wrap a nice thing arround it
78
- this.listenSocket = listenSocket;
79
- resolve(this);
80
- }
81
- else {
82
- console.info('🤮 Based-server v2 error on port:', this.port);
83
- reject(new Error('Cannot start based-server on port: ' + this.port));
84
- }
85
- });
86
- });
87
- }
88
- async destroy() {
89
- console.info('🔥 Based-server v2 Destroy based-server');
90
- if (this.listenSocket) {
91
- uws_1.default.us_listen_socket_close(this.listenSocket);
92
- this.listenSocket = null;
93
- }
94
- this.listenSocket = null;
95
- this.uwsApp = null;
96
- }
97
- }
98
- exports.BasedServer = BasedServer;
99
- //# sourceMappingURL=server.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
@@ -1,5 +0,0 @@
1
- import { Authorize } from '../types';
2
- export declare const state: {
3
- authorize?: Authorize;
4
- };
5
- export declare const authorize: Authorize;
@@ -1,15 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.authorize = exports.state = void 0;
4
- const worker_threads_1 = require("worker_threads");
5
- exports.state = {};
6
- const authorize = async (client, name, payload) => {
7
- if (!exports.state.authorize) {
8
- console.warn('No authorize installed in worker...', worker_threads_1.threadId);
9
- return true;
10
- }
11
- // needs callstack...
12
- return exports.state.authorize(client, name, payload);
13
- };
14
- exports.authorize = authorize;
15
- //# sourceMappingURL=authorize.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"authorize.js","sourceRoot":"","sources":["../../src/worker/authorize.ts"],"names":[],"mappings":";;;AAAA,mDAAyC;AAG5B,QAAA,KAAK,GAEd,EAAE,CAAA;AAEC,MAAM,SAAS,GAAc,KAAK,EACvC,MAAqB,EACrB,IAAY,EACZ,OAAa,EACb,EAAE;IACF,IAAI,CAAC,aAAK,CAAC,SAAS,EAAE;QACpB,OAAO,CAAC,IAAI,CAAC,qCAAqC,EAAE,yBAAQ,CAAC,CAAA;QAC7D,OAAO,IAAI,CAAA;KACZ;IACD,qBAAqB;IACrB,OAAO,aAAK,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC,CAAA;AAC/C,CAAC,CAAA;AAXY,QAAA,SAAS,aAWrB"}
@@ -1,2 +0,0 @@
1
- declare const fnMap: Map<string, string>;
2
- export default fnMap;
@@ -1,5 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const fnMap = new Map();
4
- exports.default = fnMap;
5
- //# sourceMappingURL=fnMap.js.map