@based/server 10.1.0 → 10.2.0
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.
- package/dist/authorize.d.ts +6 -8
- package/dist/authorize.js +56 -41
- package/dist/authorize.js.map +1 -1
- package/dist/functionApi/callFunction.js +1 -1
- package/dist/functionApi/callFunction.js.map +1 -1
- package/dist/functionApi/channelSubscribe.js +2 -2
- package/dist/functionApi/channelSubscribe.js.map +1 -1
- package/dist/functionApi/client/channel.js +2 -2
- package/dist/functionApi/client/channel.js.map +1 -1
- package/dist/functionApi/client/index.d.ts +3 -2
- package/dist/functionApi/client/index.js +5 -5
- package/dist/functionApi/client/index.js.map +1 -1
- package/dist/functionApi/client/query.d.ts +9 -4
- package/dist/functionApi/client/query.js +23 -5
- package/dist/functionApi/client/query.js.map +1 -1
- package/dist/functionApi/get.d.ts +2 -3
- package/dist/functionApi/get.js +20 -20
- package/dist/functionApi/get.js.map +1 -1
- package/dist/functionApi/observe.d.ts +2 -3
- package/dist/functionApi/observe.js +10 -10
- package/dist/functionApi/observe.js.map +1 -1
- package/dist/functionApi/publish.js +1 -1
- package/dist/functionApi/publish.js.map +1 -1
- package/dist/functionApi/stream.js +1 -1
- package/dist/functionApi/stream.js.map +1 -1
- package/dist/incoming/http/basicFunction.d.ts +3 -3
- package/dist/incoming/http/basicFunction.js +1 -1
- package/dist/incoming/http/basicFunction.js.map +1 -1
- package/dist/incoming/http/fakeWs/handleBinary.js +22 -30
- package/dist/incoming/http/fakeWs/handleBinary.js.map +1 -1
- package/dist/incoming/http/fakeWs/index.js +1 -1
- package/dist/incoming/http/fakeWs/index.js.map +1 -1
- package/dist/incoming/http/httpFunction.d.ts +3 -3
- package/dist/incoming/http/httpFunction.js +1 -1
- package/dist/incoming/http/httpFunction.js.map +1 -1
- package/dist/incoming/http/index.js +8 -3
- package/dist/incoming/http/index.js.map +1 -1
- package/dist/incoming/http/publish.d.ts +3 -3
- package/dist/incoming/http/publish.js +5 -5
- package/dist/incoming/http/publish.js.map +1 -1
- package/dist/incoming/http/query.js +41 -8
- package/dist/incoming/http/query.js.map +1 -1
- package/dist/incoming/http/streamFunction/multiPart/index.js +2 -2
- package/dist/incoming/http/streamFunction/multiPart/index.js.map +1 -1
- package/dist/incoming/http/streamFunction/stream/index.js +28 -25
- package/dist/incoming/http/streamFunction/stream/index.js.map +1 -1
- package/dist/incoming/upgrade.js +0 -1
- package/dist/incoming/upgrade.js.map +1 -1
- package/dist/incoming/ws/auth.js +56 -26
- package/dist/incoming/ws/auth.js.map +1 -1
- package/dist/incoming/ws/channelPublish.js +10 -10
- package/dist/incoming/ws/channelPublish.js.map +1 -1
- package/dist/incoming/ws/channelSubscribe.d.ts +2 -2
- package/dist/incoming/ws/channelSubscribe.js +23 -16
- package/dist/incoming/ws/channelSubscribe.js.map +1 -1
- package/dist/incoming/ws/function.js +27 -19
- package/dist/incoming/ws/function.js.map +1 -1
- package/dist/incoming/ws/get.js +49 -27
- package/dist/incoming/ws/get.js.map +1 -1
- package/dist/incoming/ws/index.js +17 -23
- package/dist/incoming/ws/index.js.map +1 -1
- package/dist/incoming/ws/query.d.ts +4 -2
- package/dist/incoming/ws/query.js +60 -26
- package/dist/incoming/ws/query.js.map +1 -1
- package/dist/incoming/ws/stream.js +22 -14
- package/dist/incoming/ws/stream.js.map +1 -1
- package/dist/installFn.d.ts +3 -3
- package/dist/installFn.js +14 -13
- package/dist/installFn.js.map +1 -1
- package/dist/protocol.d.ts +4 -2
- package/dist/protocol.js +28 -41
- package/dist/protocol.js.map +1 -1
- package/dist/query/attachCtx.d.ts +8 -0
- package/dist/query/attachCtx.js +113 -0
- package/dist/query/attachCtx.js.map +1 -0
- package/dist/query/cleanup.js +4 -4
- package/dist/query/cleanup.js.map +1 -1
- package/dist/query/create.d.ts +4 -3
- package/dist/query/create.js +12 -9
- package/dist/query/create.js.map +1 -1
- package/dist/query/destroy.d.ts +1 -1
- package/dist/query/destroy.js +7 -7
- package/dist/query/destroy.js.map +1 -1
- package/dist/query/index.d.ts +0 -1
- package/dist/query/index.js +0 -1
- package/dist/query/index.js.map +1 -1
- package/dist/query/send.js +4 -2
- package/dist/query/send.js.map +1 -1
- package/dist/query/start/error.js +13 -7
- package/dist/query/start/error.js.map +1 -1
- package/dist/query/start/genChecksum.js +11 -0
- package/dist/query/start/genChecksum.js.map +1 -1
- package/dist/query/start/index.js +5 -3
- package/dist/query/start/index.js.map +1 -1
- package/dist/query/start/relay.js +1 -1
- package/dist/query/start/relay.js.map +1 -1
- package/dist/query/start/update.js +12 -11
- package/dist/query/start/update.js.map +1 -1
- package/dist/query/subscribe.js +12 -6
- package/dist/query/subscribe.js.map +1 -1
- package/dist/query/types.d.ts +11 -1
- package/dist/query/unsub.js +35 -3
- package/dist/query/unsub.js.map +1 -1
- package/dist/server.d.ts +2 -2
- package/dist/server.js +2 -2
- package/dist/server.js.map +1 -1
- package/dist/types.d.ts +18 -0
- package/dist/types.js +2 -0
- package/dist/types.js.map +1 -0
- package/package.json +5 -5
- package/dist/incoming/http/fakeWs/function.d.ts +0 -2
- package/dist/incoming/http/fakeWs/function.js +0 -50
- package/dist/incoming/http/fakeWs/function.js.map +0 -1
- package/dist/incoming/http/fakeWs/query.d.ts +0 -2
- package/dist/incoming/http/fakeWs/query.js +0 -78
- package/dist/incoming/http/fakeWs/query.js.map +0 -1
- package/dist/query/genObservableId.d.ts +0 -1
- package/dist/query/genObservableId.js +0 -8
- package/dist/query/genObservableId.js.map +0 -1
|
@@ -8,26 +8,32 @@ export const errorListener = (server, obs, err) => {
|
|
|
8
8
|
delete obs.previousChecksum;
|
|
9
9
|
obs.isDeflate = false;
|
|
10
10
|
obs.reusedCache = false;
|
|
11
|
+
const id = obs.attachedCtx ? obs.attachedCtx.fromId : obs.id;
|
|
11
12
|
obs.error =
|
|
12
13
|
err instanceof Error
|
|
13
14
|
? createError(server, {
|
|
14
|
-
session: {
|
|
15
|
+
session: {
|
|
16
|
+
type: 'query',
|
|
17
|
+
id,
|
|
18
|
+
name: obs.route.name,
|
|
19
|
+
headers: {},
|
|
20
|
+
},
|
|
15
21
|
}, BasedErrorCode.FunctionError, {
|
|
16
22
|
err,
|
|
17
|
-
observableId:
|
|
23
|
+
observableId: id,
|
|
18
24
|
route: {
|
|
19
|
-
name: obs.name,
|
|
25
|
+
name: obs.route.name,
|
|
20
26
|
type: 'query',
|
|
21
27
|
},
|
|
22
28
|
})
|
|
23
|
-
: err.observableId !==
|
|
24
|
-
? { ...err, observableId:
|
|
29
|
+
: err.observableId !== id
|
|
30
|
+
? { ...err, observableId: id }
|
|
25
31
|
: err;
|
|
26
32
|
if (obs.clients.size) {
|
|
27
|
-
server.uwsApp.publish(String(
|
|
33
|
+
server.uwsApp.publish(String(id), encodeErrorResponse(valueToBuffer(obs.error, true)), true, false);
|
|
28
34
|
}
|
|
29
35
|
if (obs.oldClients?.size) {
|
|
30
|
-
server.uwsApp.publish(String(
|
|
36
|
+
server.uwsApp.publish(String(id) + '-v1', encodeErrorResponse(valueToBufferV1(obs.error, true)), true, false);
|
|
31
37
|
}
|
|
32
38
|
// TODO: Change this make it one error handler
|
|
33
39
|
if (obs.functionObserveClients.size) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"error.js","sourceRoot":"","sources":["../../../src/query/start/error.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAA;AAClD,OAAO,EACL,mBAAmB,EACnB,aAAa,EACb,eAAe,GAChB,MAAM,mBAAmB,CAAA;AAC1B,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAA;AAE9C,MAAM,CAAC,MAAM,aAAa,GAAG,CAC3B,MAAmB,EACnB,GAAqB,EACrB,GAA4B,EAC5B,EAAE;IACF,OAAO,GAAG,CAAC,KAAK,CAAA;IAChB,OAAO,GAAG,CAAC,SAAS,CAAA;IACpB,OAAO,GAAG,CAAC,QAAQ,CAAA;IACnB,OAAO,GAAG,CAAC,gBAAgB,CAAA;IAE3B,GAAG,CAAC,SAAS,GAAG,KAAK,CAAA;IACrB,GAAG,CAAC,WAAW,GAAG,KAAK,CAAA;IAEvB,GAAG,CAAC,KAAK;QACP,GAAG,YAAY,KAAK;YAClB,CAAC,CAAC,WAAW,CACT,MAAM,EACN;gBACE,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"error.js","sourceRoot":"","sources":["../../../src/query/start/error.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAA;AAClD,OAAO,EACL,mBAAmB,EACnB,aAAa,EACb,eAAe,GAChB,MAAM,mBAAmB,CAAA;AAC1B,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAA;AAE9C,MAAM,CAAC,MAAM,aAAa,GAAG,CAC3B,MAAmB,EACnB,GAAqB,EACrB,GAA4B,EAC5B,EAAE;IACF,OAAO,GAAG,CAAC,KAAK,CAAA;IAChB,OAAO,GAAG,CAAC,SAAS,CAAA;IACpB,OAAO,GAAG,CAAC,QAAQ,CAAA;IACnB,OAAO,GAAG,CAAC,gBAAgB,CAAA;IAE3B,GAAG,CAAC,SAAS,GAAG,KAAK,CAAA;IACrB,GAAG,CAAC,WAAW,GAAG,KAAK,CAAA;IAEvB,MAAM,EAAE,GAAG,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAA;IAE5D,GAAG,CAAC,KAAK;QACP,GAAG,YAAY,KAAK;YAClB,CAAC,CAAC,WAAW,CACT,MAAM,EACN;gBACE,OAAO,EAAE;oBACP,IAAI,EAAE,OAAO;oBACb,EAAE;oBACF,IAAI,EAAE,GAAG,CAAC,KAAK,CAAC,IAAI;oBACpB,OAAO,EAAE,EAAE;iBACZ;aACF,EACD,cAAc,CAAC,aAAa,EAC5B;gBACE,GAAG;gBACH,YAAY,EAAE,EAAE;gBAChB,KAAK,EAAE;oBACL,IAAI,EAAE,GAAG,CAAC,KAAK,CAAC,IAAI;oBACpB,IAAI,EAAE,OAAO;iBACd;aACF,CACF;YACH,CAAC,CAAC,GAAG,CAAC,YAAY,KAAK,EAAE;gBACvB,CAAC,CAAC,EAAE,GAAG,GAAG,EAAE,YAAY,EAAE,EAAE,EAAE;gBAC9B,CAAC,CAAC,GAAG,CAAA;IAEX,IAAI,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;QACrB,MAAM,CAAC,MAAM,CAAC,OAAO,CACnB,MAAM,CAAC,EAAE,CAAC,EACV,mBAAmB,CAAC,aAAa,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,EACnD,IAAI,EACJ,KAAK,CACN,CAAA;IACH,CAAC;IAED,IAAI,GAAG,CAAC,UAAU,EAAE,IAAI,EAAE,CAAC;QACzB,MAAM,CAAC,MAAM,CAAC,OAAO,CACnB,MAAM,CAAC,EAAE,CAAC,GAAG,KAAK,EAClB,mBAAmB,CAAC,eAAe,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,EACrD,IAAI,EACJ,KAAK,CACN,CAAA;IACH,CAAC;IAED,8CAA8C;IAC9C,IAAI,GAAG,CAAC,sBAAsB,CAAC,IAAI,EAAE,CAAC;QACpC,GAAG,CAAC,sBAAsB,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,EAAE;YAC9C,QAAQ,CACN,GAAG,CAAC,OAAO,EACX,GAAG,CAAC,QAAQ,EACZ,GAAG,CAAC,KAAK,EACT,GAAG,CAAC,KAAK,EACT,GAAG,CAAC,SAAS,EACb,GAAG,CAAC,gBAAgB,EACpB,GAAG,CAAC,SAAS,CACd,CAAA;QACH,CAAC,CAAC,CAAA;IACJ,CAAC;IAED,IAAI,GAAG,CAAC,UAAU,EAAE,CAAC;QACnB,MAAM,UAAU,GAAG,GAAG,CAAC,UAAU,CAAA;QACjC,OAAO,GAAG,CAAC,UAAU,CAAA;QACrB,UAAU,CAAC,OAAO,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAA;IAC3C,CAAC;AACH,CAAC,CAAA"}
|
|
@@ -1,6 +1,17 @@
|
|
|
1
|
+
import { BasedQueryResponse } from '@based/db';
|
|
1
2
|
import { hashObjectIgnoreKeyOrder, hash } from '@based/hash';
|
|
2
3
|
import { hashUint8Array } from '@based/hash';
|
|
4
|
+
const MAX_SAFE_INT = 9007199254740990;
|
|
3
5
|
export const genChecksum = (data) => {
|
|
6
|
+
if (data instanceof BasedQueryResponse) {
|
|
7
|
+
return data.version;
|
|
8
|
+
}
|
|
9
|
+
if (typeof data === 'number') {
|
|
10
|
+
if (data === 0) {
|
|
11
|
+
data = MAX_SAFE_INT;
|
|
12
|
+
}
|
|
13
|
+
return data;
|
|
14
|
+
}
|
|
4
15
|
if (data instanceof Uint8Array) {
|
|
5
16
|
return hashUint8Array(data);
|
|
6
17
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"genChecksum.js","sourceRoot":"","sources":["../../../src/query/start/genChecksum.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAE,IAAI,EAAE,MAAM,aAAa,CAAA;AAC5D,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAE5C,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,IAAS,EAAU,EAAE;IAC/C,IAAI,IAAI,YAAY,UAAU,EAAE,CAAC;QAC/B,OAAO,cAAc,CAAC,IAAI,CAAC,CAAA;IAC7B,CAAC;IAED,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;QAC9C,OAAO,wBAAwB,CAAC,IAAI,CAAC,CAAA;IACvC,CAAC;IAED,OAAO,IAAI,CAAC,IAAI,CAAC,CAAA;AACnB,CAAC,CAAA"}
|
|
1
|
+
{"version":3,"file":"genChecksum.js","sourceRoot":"","sources":["../../../src/query/start/genChecksum.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAA;AAC9C,OAAO,EAAE,wBAAwB,EAAE,IAAI,EAAE,MAAM,aAAa,CAAA;AAC5D,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAE5C,MAAM,YAAY,GAAG,gBAAgB,CAAA;AAErC,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,IAAS,EAAU,EAAE;IAC/C,IAAI,IAAI,YAAY,kBAAkB,EAAE,CAAC;QACvC,OAAO,IAAI,CAAC,OAAO,CAAA;IACrB,CAAC;IAED,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC7B,IAAI,IAAI,KAAK,CAAC,EAAE,CAAC;YACf,IAAI,GAAG,YAAY,CAAA;QACrB,CAAC;QACD,OAAO,IAAI,CAAA;IACb,CAAC;IAED,IAAI,IAAI,YAAY,UAAU,EAAE,CAAC;QAC/B,OAAO,cAAc,CAAC,IAAI,CAAC,CAAA;IAC7B,CAAC;IAED,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;QAC9C,OAAO,wBAAwB,CAAC,IAAI,CAAC,CAAA;IACvC,CAAC;IAED,OAAO,IAAI,CAAC,IAAI,CAAC,CAAA;AACnB,CAAC,CAAA"}
|
|
@@ -3,14 +3,16 @@ import { errorListener } from './error.js';
|
|
|
3
3
|
import { relay } from './relay.js';
|
|
4
4
|
import { isBasedFunctionConfig } from '@based/functions';
|
|
5
5
|
export const start = (server, id) => {
|
|
6
|
+
// really hate this look up here
|
|
6
7
|
const obs = server.activeObservablesById.get(id);
|
|
7
8
|
if (obs.closeFunction) {
|
|
8
9
|
obs.closeFunction();
|
|
9
10
|
delete obs.closeFunction;
|
|
10
11
|
}
|
|
11
|
-
|
|
12
|
+
// just call start as a function handler - props with optional ctx potentialy
|
|
13
|
+
const spec = server.functions.specs[obs.route.name];
|
|
12
14
|
if (!spec || !isBasedFunctionConfig('query', spec)) {
|
|
13
|
-
console.warn('Cannot find observable function spec!', obs.name);
|
|
15
|
+
console.warn('Cannot find observable function spec!', obs.route.name);
|
|
14
16
|
return;
|
|
15
17
|
}
|
|
16
18
|
const payload = obs.payload;
|
|
@@ -60,7 +62,7 @@ export const start = (server, id) => {
|
|
|
60
62
|
try {
|
|
61
63
|
const r = spec.fn(server.client, payload, update, (err) => {
|
|
62
64
|
errorListener(server, obs, err);
|
|
63
|
-
});
|
|
65
|
+
}, obs.attachedCtx?.ctx);
|
|
64
66
|
if (r instanceof Promise) {
|
|
65
67
|
r.then((close) => {
|
|
66
68
|
if (obs.isDestroyed || startId !== obs.startId) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/query/start/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAA;AAE1C,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AAClC,OAAO,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAA;AAExD,MAAM,CAAC,MAAM,KAAK,GAAG,CAAC,MAAmB,EAAE,EAAU,EAAE,EAAE;IACvD,MAAM,GAAG,GAAG,MAAM,CAAC,qBAAqB,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;IAEhD,IAAI,GAAG,CAAC,aAAa,EAAE,CAAC;QACtB,GAAG,CAAC,aAAa,EAAE,CAAA;QACnB,OAAO,GAAG,CAAC,aAAa,CAAA;IAC1B,CAAC;IAED,MAAM,IAAI,GAAG,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/query/start/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,7 +2,7 @@ import { errorListener } from './error.js';
|
|
|
2
2
|
// this has to be super optmized!
|
|
3
3
|
export const relay = (server, relay, obs, client, update) => {
|
|
4
4
|
obs.closeFunction = client
|
|
5
|
-
.query(relay.target ?? obs.name, obs.payload)
|
|
5
|
+
.query(relay.target ?? obs.route.name, obs.payload)
|
|
6
6
|
.subscribe(update, (err) => {
|
|
7
7
|
errorListener(server, obs, err);
|
|
8
8
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"relay.js","sourceRoot":"","sources":["../../../src/query/start/relay.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAA;AAE1C,iCAAiC;AACjC,MAAM,CAAC,MAAM,KAAK,GAAG,CACnB,MAAmB,EACnB,KAA0C,EAC1C,GAAqB,EACrB,MAAW,EACX,MAAgC,EAChC,EAAE;IACF,GAAG,CAAC,aAAa,GAAG,MAAM;SACvB,KAAK,CAAC,KAAK,CAAC,MAAM,IAAI,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"relay.js","sourceRoot":"","sources":["../../../src/query/start/relay.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAA;AAE1C,iCAAiC;AACjC,MAAM,CAAC,MAAM,KAAK,GAAG,CACnB,MAAmB,EACnB,KAA0C,EAC1C,GAAqB,EACrB,MAAW,EACX,MAAgC,EAChC,EAAE;IACF,GAAG,CAAC,aAAa,GAAG,MAAM;SACvB,KAAK,CAAC,KAAK,CAAC,MAAM,IAAI,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,GAAG,CAAC,OAAO,CAAC;SAClD,SAAS,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,EAAE;QACzB,aAAa,CAAC,MAAM,EAAE,GAAG,EAAE,GAAG,CAAC,CAAA;IACjC,CAAC,CAAC,CAAA;AACN,CAAC,CAAA"}
|
|
@@ -7,11 +7,13 @@ export const updateListener = (server, obs, data, checksum, reusedData, diff, pr
|
|
|
7
7
|
if (!server.uwsApp) {
|
|
8
8
|
return;
|
|
9
9
|
}
|
|
10
|
+
const id = obs.attachedCtx ? obs.attachedCtx.fromId : obs.id;
|
|
10
11
|
if (checksum === undefined) {
|
|
11
12
|
if (data === undefined) {
|
|
12
13
|
checksum = 0;
|
|
13
14
|
}
|
|
14
15
|
else {
|
|
16
|
+
// For db response use from the buffer!
|
|
15
17
|
checksum = genChecksum(data);
|
|
16
18
|
}
|
|
17
19
|
}
|
|
@@ -73,10 +75,10 @@ export const updateListener = (server, obs, data, checksum, reusedData, diff, pr
|
|
|
73
75
|
}
|
|
74
76
|
// TODO: Keep track globally of total mem usage
|
|
75
77
|
;
|
|
76
|
-
[encodedData, isDeflate] = encodeObservableResponse(
|
|
78
|
+
[encodedData, isDeflate] = encodeObservableResponse(id, checksum, buff);
|
|
77
79
|
if (diff) {
|
|
78
80
|
const diffBuff = valueToBuffer(diff, true);
|
|
79
|
-
const encodedDiffData = encodeObservableDiffResponse(
|
|
81
|
+
const encodedDiffData = encodeObservableDiffResponse(id, checksum, obs.previousChecksum, diffBuff);
|
|
80
82
|
obs.diffCache = encodedDiffData;
|
|
81
83
|
}
|
|
82
84
|
}
|
|
@@ -88,30 +90,29 @@ export const updateListener = (server, obs, data, checksum, reusedData, diff, pr
|
|
|
88
90
|
if (obs.clients.size) {
|
|
89
91
|
if (obs.diffCache) {
|
|
90
92
|
if (obs.reusedCache) {
|
|
91
|
-
prevDiffId = updateId(obs.diffCache,
|
|
93
|
+
prevDiffId = updateId(obs.diffCache, id);
|
|
92
94
|
}
|
|
93
|
-
|
|
94
|
-
server.uwsApp.publish(String(obs.id), obs.diffCache, true, false);
|
|
95
|
+
server.uwsApp.publish(String(id), obs.diffCache, true, false);
|
|
95
96
|
}
|
|
96
97
|
else {
|
|
97
98
|
if (obs.reusedCache) {
|
|
98
|
-
prevId = updateId(encodedData,
|
|
99
|
+
prevId = updateId(encodedData, id);
|
|
99
100
|
}
|
|
100
|
-
server.uwsApp.publish(String(
|
|
101
|
+
server.uwsApp.publish(String(id), encodedData, true, false);
|
|
101
102
|
}
|
|
102
103
|
}
|
|
103
104
|
if (obs.oldClients?.size) {
|
|
104
105
|
if (obs.diffCache) {
|
|
105
106
|
if (obs.reusedCache) {
|
|
106
|
-
prevDiffId = updateId(obs.diffCache,
|
|
107
|
+
prevDiffId = updateId(obs.diffCache, id);
|
|
107
108
|
}
|
|
108
|
-
server.uwsApp.publish(String(
|
|
109
|
+
server.uwsApp.publish(String(id) + '-v1', diffV2toV1(obs.diffCache), true, false);
|
|
109
110
|
}
|
|
110
111
|
else {
|
|
111
112
|
if (obs.reusedCache) {
|
|
112
|
-
prevId = updateId(encodedData,
|
|
113
|
+
prevId = updateId(encodedData, id);
|
|
113
114
|
}
|
|
114
|
-
server.uwsApp.publish(String(
|
|
115
|
+
server.uwsApp.publish(String(id) + '-v1', cacheV2toV1(encodedData), true, false);
|
|
115
116
|
}
|
|
116
117
|
}
|
|
117
118
|
if (obs.functionObserveClients.size) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"update.js","sourceRoot":"","sources":["../../../src/query/start/update.ts"],"names":[],"mappings":"AACA,OAAO,EACL,QAAQ,EACR,aAAa,EACb,wBAAwB,EACxB,4BAA4B,EAC5B,WAAW,EACX,UAAU,GACX,MAAM,mBAAmB,CAAA;AAC1B,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAA;AACvC,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAA;AAEzC,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAC9C,OAAO,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAA;AAE9C,MAAM,CAAC,MAAM,cAAc,GAAG,CAC5B,MAAmB,EACnB,GAAqB,EACrB,IAAS,EACT,QAAiB,EACjB,UAAuB,EACvB,IAAU,EACV,gBAAyB,EACzB,SAAmB,EACnB,EAAE;IACF,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;QACnB,OAAM;IACR,CAAC;IAED,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;QAC3B,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;YACvB,QAAQ,GAAG,CAAC,CAAA;QACd,CAAC;aAAM,CAAC;YACN,QAAQ,GAAG,WAAW,CAAC,IAAI,CAAC,CAAA;QAC9B,CAAC;IACH,CAAC;IAED,IAAI,QAAQ,KAAK,GAAG,CAAC,QAAQ,EAAE,CAAC;QAC9B,IAAI,WAAuB,CAAA;QAC3B,IAAI,UAAU,EAAE,CAAC;YACf,iDAAiD;YACjD,GAAG,CAAC,WAAW,GAAG,IAAI,CAAA;YACtB,WAAW,GAAG,UAAU,CAAA;YACxB,IAAI,IAAI,EAAE,CAAC;gBACT,GAAG,CAAC,SAAS,GAAG,IAAI,CAAA;gBACpB,GAAG,CAAC,gBAAgB,GAAG,gBAAgB,CAAA;YACzC,CAAC;YACD,IAAI,IAAI,EAAE,CAAC;gBACT,GAAG,CAAC,OAAO,GAAG,IAAI,CAAA;YACpB,CAAC;YACD,IAAI,CAAC,SAAS,EAAE,CAAC;gBACf,SAAS,GAAG,KAAK,CAAA;YACnB,CAAC;QACH,CAAC;aAAM,CAAC;YACN,GAAG,CAAC,WAAW,GAAG,KAAK,CAAA;YACvB,MAAM,IAAI,GAAG,aAAa,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;YAEtC,MAAM,CAAC,GAAG,OAAO,IAAI,CAAA;YACrB,IACE,CAAC,KAAK,QAAQ;gBACd,CAAC,KAAK,QAAQ;gBACd,CAAC,KAAK,SAAS;gBACf,IAAI,YAAY,UAAU;gBAC1B,IAAI,YAAY,kBAAkB,EAClC,CAAC;gBACD,GAAG,CAAC,OAAO,GAAG,IAAI,CAAA;gBAClB,GAAG,CAAC,gBAAgB,GAAG,GAAG,CAAC,QAAQ,CAAA;YACrC,CAAC;iBAAM,IAAI,IAAI,EAAE,CAAC;gBAChB,IAAI,CAAC,KAAK,QAAQ,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;oBACpC,GAAG,CAAC,OAAO,GAAG,IAAI,CAAA;oBAClB,IAAI,CAAC,GAAG,CAAC,QAAQ,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;wBACnC,IAAI,GAAG,IAAI,CAAA;oBACb,CAAC;yBAAM,CAAC;wBACN,GAAG,CAAC,gBAAgB,GAAG,GAAG,CAAC,QAAQ,CAAA;oBACrC,CAAC;gBACH,CAAC;qBAAM,CAAC;oBACN,OAAO,GAAG,CAAC,OAAO,CAAA;oBAClB,IAAI,GAAG,IAAI,CAAA;gBACb,CAAC;YACH,CAAC;iBAAM,IAAI,gBAAgB,KAAK,SAAS,EAAE,CAAC;gBAC1C,IAAI,CAAC,KAAK,QAAQ,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;oBACpC,IAAI,GAAG,CAAC,OAAO,EAAE,CAAC;wBAChB,IAAI,GAAG,WAAW,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC,CAAA;wBACrC,GAAG,CAAC,gBAAgB,GAAG,GAAG,CAAC,QAAQ,CAAA;oBACrC,CAAC;oBACD,GAAG,CAAC,OAAO,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAA;gBAC9B,CAAC;qBAAM,IAAI,GAAG,CAAC,OAAO,EAAE,CAAC;oBACvB,OAAO,GAAG,CAAC,OAAO,CAAA;gBACpB,CAAC;YACH,CAAC;YAED,+CAA+C;YAC/C,CAAC;YAAA,CAAC,WAAW,EAAE,SAAS,CAAC,GAAG,wBAAwB,
|
|
1
|
+
{"version":3,"file":"update.js","sourceRoot":"","sources":["../../../src/query/start/update.ts"],"names":[],"mappings":"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"}
|
package/dist/query/subscribe.js
CHANGED
|
@@ -2,14 +2,22 @@ import { extendCache } from './extendCache.js';
|
|
|
2
2
|
import { sendObsWs } from './send.js';
|
|
3
3
|
import { getObsAndStopRemove } from './get.js';
|
|
4
4
|
import { sendErrorData } from '../sendError.js';
|
|
5
|
+
// make this a FunctionHandler
|
|
5
6
|
export const subscribeWs = (server, id, checksum, ctx) => {
|
|
6
7
|
const session = ctx.session;
|
|
7
8
|
if (!session) {
|
|
8
9
|
return;
|
|
9
10
|
}
|
|
10
11
|
const obs = getObsAndStopRemove(server, id);
|
|
12
|
+
session.obs.add(id);
|
|
13
|
+
if (obs.attachedCtx) {
|
|
14
|
+
if (!session.attachedCtxObs) {
|
|
15
|
+
session.attachedCtxObs = new Set();
|
|
16
|
+
}
|
|
17
|
+
session.attachedCtxObs.add(id);
|
|
18
|
+
id = obs.attachedCtx.fromId;
|
|
19
|
+
}
|
|
11
20
|
if (ctx.session.v < 2) {
|
|
12
|
-
session.obs.add(id);
|
|
13
21
|
if (!obs.oldClients) {
|
|
14
22
|
obs.oldClients = new Set();
|
|
15
23
|
}
|
|
@@ -17,17 +25,15 @@ export const subscribeWs = (server, id, checksum, ctx) => {
|
|
|
17
25
|
ctx.session.ws.subscribe(String(id) + '-v1');
|
|
18
26
|
}
|
|
19
27
|
else {
|
|
20
|
-
session.obs.add(id);
|
|
21
28
|
obs.clients.add(session.id);
|
|
22
29
|
ctx.session.ws.subscribe(String(id));
|
|
23
30
|
}
|
|
24
|
-
if (obs.error) {
|
|
25
|
-
sendErrorData(ctx, obs.error);
|
|
26
|
-
return;
|
|
27
|
-
}
|
|
28
31
|
if (server.queryEvents) {
|
|
29
32
|
server.queryEvents.subscribe(obs, ctx);
|
|
30
33
|
}
|
|
34
|
+
if (obs.error) {
|
|
35
|
+
sendErrorData(ctx, obs.error);
|
|
36
|
+
}
|
|
31
37
|
if (obs.cache && obs.checksum !== checksum) {
|
|
32
38
|
if (obs.diffCache && obs.previousChecksum === checksum) {
|
|
33
39
|
sendObsWs(ctx, obs.diffCache, obs, true);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"subscribe.js","sourceRoot":"","sources":["../../src/query/subscribe.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAE9C,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAA;AACrC,OAAO,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAA;AAC9C,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAG/C,MAAM,CAAC,MAAM,WAAW,GAAG,CACzB,MAAmB,EACnB,EAAU,EACV,QAAgB,EAChB,GAA8B,EAC9B,EAAE;IACF,MAAM,OAAO,GAAG,GAAG,CAAC,OAAO,CAAA;IAE3B,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAM;IACR,CAAC;IAED,MAAM,GAAG,GAAG,mBAAmB,CAAC,MAAM,EAAE,EAAE,CAAC,CAAA;
|
|
1
|
+
{"version":3,"file":"subscribe.js","sourceRoot":"","sources":["../../src/query/subscribe.ts"],"names":[],"mappings":"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"}
|
package/dist/query/types.d.ts
CHANGED
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
import { BasedErrorCode, BasedErrorData } from '@based/errors';
|
|
2
|
+
import { BasedRoute } from '@based/functions';
|
|
2
3
|
export type ObservableError = BasedErrorData<BasedErrorCode.FunctionError> | BasedErrorData<BasedErrorCode.FunctionIsWrongType> | BasedErrorData<BasedErrorCode.FunctionNotFound>;
|
|
3
4
|
export type ObservableUpdateFunction = (data: any, checksum?: number, err?: null | ObservableError, cache?: Uint8Array, diff?: any, fromChecksum?: number, isDeflate?: boolean) => void;
|
|
4
5
|
export type ObserveErrorListener = (err: ObservableError) => void;
|
|
5
6
|
export type ActiveObservable = {
|
|
6
7
|
startId: number;
|
|
7
|
-
|
|
8
|
+
route: BasedRoute<'query'>;
|
|
8
9
|
id: number;
|
|
9
10
|
reusedCache: boolean;
|
|
10
11
|
functionObserveClients: Set<ObservableUpdateFunction>;
|
|
@@ -23,4 +24,13 @@ export type ActiveObservable = {
|
|
|
23
24
|
closeAfterIdleTime?: number;
|
|
24
25
|
timeTillDestroy: number | null;
|
|
25
26
|
isDestroyed: boolean;
|
|
27
|
+
attachedCtx?: AttachedCtx;
|
|
28
|
+
};
|
|
29
|
+
export type AttachedCtx = {
|
|
30
|
+
ctx: {
|
|
31
|
+
[key: string]: any;
|
|
32
|
+
};
|
|
33
|
+
id: number;
|
|
34
|
+
authState: boolean;
|
|
35
|
+
fromId: number;
|
|
26
36
|
};
|
package/dist/query/unsub.js
CHANGED
|
@@ -12,20 +12,50 @@ export const unsubscribeFunction = (server, id, update) => {
|
|
|
12
12
|
return true;
|
|
13
13
|
}
|
|
14
14
|
};
|
|
15
|
+
// true means obs does not exist
|
|
15
16
|
export const unsubscribeWs = (server, id, ctx) => {
|
|
16
17
|
const session = ctx.session;
|
|
17
|
-
if (!session
|
|
18
|
+
if (!session) {
|
|
18
19
|
return;
|
|
19
20
|
}
|
|
21
|
+
if (!session.obs.has(id)) {
|
|
22
|
+
if (session.attachedCtxObs) {
|
|
23
|
+
let match = false;
|
|
24
|
+
for (const attachedId of session.attachedCtxObs) {
|
|
25
|
+
const attachedObs = server.activeObservablesById.get(attachedId);
|
|
26
|
+
if (attachedObs.attachedCtx.fromId === id) {
|
|
27
|
+
session.attachedCtxObs.delete(attachedId);
|
|
28
|
+
if (session.attachedCtxObs.size === 0) {
|
|
29
|
+
delete session.attachedCtxObs;
|
|
30
|
+
}
|
|
31
|
+
id = attachedId;
|
|
32
|
+
match = true;
|
|
33
|
+
break;
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
if (!match) {
|
|
37
|
+
return;
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
else {
|
|
41
|
+
return;
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
else if (session.attachedCtxObs?.has(id)) {
|
|
45
|
+
session.attachedCtxObs.delete(id);
|
|
46
|
+
if (session.attachedCtxObs.size === 0) {
|
|
47
|
+
delete session.attachedCtxObs;
|
|
48
|
+
}
|
|
49
|
+
}
|
|
20
50
|
const isV1 = ctx.session.v < 2;
|
|
51
|
+
const obs = server.activeObservablesById.get(id);
|
|
52
|
+
session.obs.delete(id);
|
|
21
53
|
if (isV1) {
|
|
22
54
|
ctx.session.ws.unsubscribe(String(id) + '-v1');
|
|
23
55
|
}
|
|
24
56
|
else {
|
|
25
57
|
ctx.session.ws.unsubscribe(String(id));
|
|
26
58
|
}
|
|
27
|
-
const obs = server.activeObservablesById.get(id);
|
|
28
|
-
session.obs.delete(id);
|
|
29
59
|
if (!obs) {
|
|
30
60
|
return;
|
|
31
61
|
}
|
|
@@ -48,6 +78,7 @@ export const unsubscribeWs = (server, id, ctx) => {
|
|
|
48
78
|
}
|
|
49
79
|
}
|
|
50
80
|
};
|
|
81
|
+
// true is it does not exist
|
|
51
82
|
export const unsubscribeWsIgnoreClient = (server, id, ctx) => {
|
|
52
83
|
const session = ctx.session;
|
|
53
84
|
if (!session) {
|
|
@@ -55,6 +86,7 @@ export const unsubscribeWsIgnoreClient = (server, id, ctx) => {
|
|
|
55
86
|
}
|
|
56
87
|
const obs = server.activeObservablesById.get(id);
|
|
57
88
|
if (!obs) {
|
|
89
|
+
// is not an obs might be a channel
|
|
58
90
|
return true;
|
|
59
91
|
}
|
|
60
92
|
if (session.v < 2) {
|
package/dist/query/unsub.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"unsub.js","sourceRoot":"","sources":["../../src/query/unsub.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AAGzC,MAAM,CAAC,MAAM,mBAAmB,GAAG,CACjC,MAAmB,EACnB,EAAU,EACV,MAAgC,EACnB,EAAE;IACf,MAAM,GAAG,GAAG,MAAM,CAAC,qBAAqB,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;IAChD,IAAI,CAAC,GAAG,EAAE,CAAC;QACT,OAAM;IACR,CAAC;IACD,IAAI,GAAG,CAAC,sBAAsB,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;QAC9C,IAAI,MAAM,CAAC,WAAW,EAAE,CAAC;YACvB,MAAM,CAAC,WAAW,CAAC,WAAW,CAAC,GAAG,CAAC,CAAA;QACrC,CAAC;QACD,UAAU,CAAC,MAAM,EAAE,EAAE,CAAC,CAAA;QACtB,OAAO,IAAI,CAAA;IACb,CAAC;AACH,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,aAAa,GAAG,CAC3B,MAAmB,EACnB,EAAU,EACV,GAA8B,EACjB,EAAE;IACf,MAAM,OAAO,GAAG,GAAG,CAAC,OAAO,CAAA;
|
|
1
|
+
{"version":3,"file":"unsub.js","sourceRoot":"","sources":["../../src/query/unsub.ts"],"names":[],"mappings":"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"}
|
package/dist/server.d.ts
CHANGED
|
@@ -35,7 +35,7 @@ export type ServerOptions = {
|
|
|
35
35
|
};
|
|
36
36
|
port?: number;
|
|
37
37
|
key?: string;
|
|
38
|
-
geo?: (ctx: Context) =>
|
|
38
|
+
geo?: (ctx: Context) => Geo;
|
|
39
39
|
disableRest?: boolean;
|
|
40
40
|
disableWs?: boolean;
|
|
41
41
|
silent?: boolean;
|
|
@@ -109,7 +109,7 @@ export declare class BasedServer {
|
|
|
109
109
|
sendInitialForceReload: boolean;
|
|
110
110
|
forceReloadTimer: ReturnType<typeof setTimeout>;
|
|
111
111
|
forceReload(type?: number, validTime?: number): void;
|
|
112
|
-
geo: (ctx: Context) =>
|
|
112
|
+
geo: (ctx: Context) => Geo;
|
|
113
113
|
getIp: GetIp;
|
|
114
114
|
blockedIps: Set<string>;
|
|
115
115
|
allowedIps: Set<string>;
|
package/dist/server.js
CHANGED
|
@@ -82,13 +82,13 @@ export class BasedServer {
|
|
|
82
82
|
}, validTime);
|
|
83
83
|
}
|
|
84
84
|
}
|
|
85
|
-
geo =
|
|
85
|
+
geo = (ctx) => {
|
|
86
86
|
if (!ctx.session) {
|
|
87
87
|
throw new Error('Session expired while parsing geo location');
|
|
88
88
|
}
|
|
89
89
|
if (isClientContext(ctx)) {
|
|
90
90
|
return {
|
|
91
|
-
country: '
|
|
91
|
+
country: 'unknown',
|
|
92
92
|
ip: ctx.session.ip,
|
|
93
93
|
accuracy: 0,
|
|
94
94
|
long: 0,
|
package/dist/server.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA,OAAO,EAML,eAAe,
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
|
package/dist/types.d.ts
ADDED
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { BasedServer } from './server.js';
|
|
2
|
+
import { HttpSession, Context, Session, WebSocketSession, BasedRoute, BasedFunctionConfig } from '@based/functions';
|
|
3
|
+
import { AttachedCtx } from './query/types.js';
|
|
4
|
+
export type ClientSession = HttpSession | WebSocketSession;
|
|
5
|
+
export type FunctionHandler<S extends Session = Session, R extends BasedRoute = BasedRoute, P = any> = (props: FunctionProps<S, R, P> & {
|
|
6
|
+
spec: BasedFunctionConfig<R['type']>;
|
|
7
|
+
}) => any;
|
|
8
|
+
export type FunctionErrorHandler<S extends Session = Session, R extends BasedRoute = BasedRoute, P = any> = (props: FunctionProps<S, R, P>, err?: Error) => true | void;
|
|
9
|
+
export type FunctionProps<S extends Session = Session, R extends BasedRoute = BasedRoute, P = any> = {
|
|
10
|
+
route: R;
|
|
11
|
+
server: BasedServer;
|
|
12
|
+
ctx: Context<S>;
|
|
13
|
+
payload?: P;
|
|
14
|
+
error?: FunctionErrorHandler<S, R, P>;
|
|
15
|
+
id?: number;
|
|
16
|
+
checksum?: number;
|
|
17
|
+
attachedCtx?: AttachedCtx;
|
|
18
|
+
};
|
package/dist/types.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":""}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@based/server",
|
|
3
|
-
"version": "10.
|
|
3
|
+
"version": "10.2.0",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"main": "./dist/index.js",
|
|
6
6
|
"type": "module",
|
|
@@ -15,12 +15,12 @@
|
|
|
15
15
|
"clean": "rm -rf ./dist ./node_modules"
|
|
16
16
|
},
|
|
17
17
|
"dependencies": {
|
|
18
|
-
"@based/db": "^0.1.
|
|
18
|
+
"@based/db": "^0.1.1",
|
|
19
19
|
"@based/errors": "^1.3.0",
|
|
20
|
-
"@based/functions": "^3.
|
|
20
|
+
"@based/functions": "^3.3.0",
|
|
21
21
|
"@based/hash": "1.0.0",
|
|
22
|
-
"@based/protocol": "^0.0.
|
|
23
|
-
"@based/utils": "^1.
|
|
22
|
+
"@based/protocol": "^0.0.4",
|
|
23
|
+
"@based/utils": "^1.1.0",
|
|
24
24
|
"@based/uws": "^6.0.0",
|
|
25
25
|
"@saulx/diff": "^2.0.3",
|
|
26
26
|
"mime-types": "^2.1.31",
|
|
@@ -1,50 +0,0 @@
|
|
|
1
|
-
import { decodeName, decodePayload, encodeFunctionResponse, valueToBuffer, encodeErrorResponse, } from '../../../protocol.js';
|
|
2
|
-
import { verifyRoute } from '../../../verifyRoute.js';
|
|
3
|
-
import { installFn } from '../../../installFn.js';
|
|
4
|
-
import { createError } from '../../../error/index.js';
|
|
5
|
-
import { BasedErrorCode } from '@based/errors';
|
|
6
|
-
import { readUint24 } from '@based/utils';
|
|
7
|
-
export const handleFunction = (arr, startByte, len, isDeflate, ctx, server) => {
|
|
8
|
-
// | 4 header | 3 id | 1 name length | * name | * payload |
|
|
9
|
-
const requestId = readUint24(arr, startByte + 4);
|
|
10
|
-
const nameLen = arr[startByte + 7];
|
|
11
|
-
const name = decodeName(arr, startByte + 8, startByte + 8 + nameLen);
|
|
12
|
-
if (!name || !requestId) {
|
|
13
|
-
return;
|
|
14
|
-
}
|
|
15
|
-
const route = verifyRoute(server, ctx, 'function', server.functions.route(name), name, requestId);
|
|
16
|
-
if (route === null) {
|
|
17
|
-
return;
|
|
18
|
-
}
|
|
19
|
-
const isOldClient = ctx.session.authState.v < 2;
|
|
20
|
-
const payload = len === nameLen + 8
|
|
21
|
-
? undefined
|
|
22
|
-
: decodePayload(new Uint8Array(arr.slice(startByte + 8 + nameLen, startByte + len)), isDeflate, isOldClient);
|
|
23
|
-
return installFn(server, ctx, route).then(async (spec) => {
|
|
24
|
-
const isAuth = route.public ||
|
|
25
|
-
(await server.auth
|
|
26
|
-
.authorize(server.client, ctx, route.name, payload)
|
|
27
|
-
.catch(() => false));
|
|
28
|
-
if (!isAuth) {
|
|
29
|
-
const errorData = createError(server, ctx, BasedErrorCode.AuthorizeRejectedError, {
|
|
30
|
-
route,
|
|
31
|
-
requestId,
|
|
32
|
-
});
|
|
33
|
-
return encodeErrorResponse(valueToBuffer(errorData, true));
|
|
34
|
-
}
|
|
35
|
-
return spec
|
|
36
|
-
.fn(server.client, payload, ctx)
|
|
37
|
-
.then((v) => {
|
|
38
|
-
return encodeFunctionResponse(requestId, valueToBuffer(v, true));
|
|
39
|
-
})
|
|
40
|
-
.catch((err) => {
|
|
41
|
-
const errorData = createError(server, ctx, BasedErrorCode.FunctionError, {
|
|
42
|
-
route,
|
|
43
|
-
requestId,
|
|
44
|
-
err,
|
|
45
|
-
});
|
|
46
|
-
return encodeErrorResponse(valueToBuffer(errorData, true));
|
|
47
|
-
});
|
|
48
|
-
});
|
|
49
|
-
};
|
|
50
|
-
//# sourceMappingURL=function.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"function.js","sourceRoot":"","sources":["../../../../src/incoming/http/fakeWs/function.ts"],"names":[],"mappings":"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"}
|