@based/server 10.0.2 → 10.0.4
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/query/start/genChecksum.d.ts +1 -0
- package/dist/query/start/genChecksum.js +36 -0
- package/dist/query/start/genChecksum.js.map +1 -0
- package/dist/query/start/update.js +2 -7
- package/dist/query/start/update.js.map +1 -1
- package/dist/sendError.js +10 -4
- package/dist/sendError.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const genChecksum: (data: any) => number;
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { hashObjectIgnoreKeyOrder, hash } from '@saulx/hash';
|
|
2
|
+
const calculateHash32 = (uint8Array, seed = 0) => {
|
|
3
|
+
let hash = seed;
|
|
4
|
+
const prime1 = 31;
|
|
5
|
+
const prime2 = 17;
|
|
6
|
+
for (let i = 0; i < uint8Array.length; i++) {
|
|
7
|
+
hash = (hash * prime1) ^ uint8Array[i];
|
|
8
|
+
hash = (hash * prime2) & 0xffffffff;
|
|
9
|
+
}
|
|
10
|
+
hash ^= hash >>> 16;
|
|
11
|
+
hash = Math.imul(hash, 0x85ebca6b);
|
|
12
|
+
hash ^= hash >>> 13;
|
|
13
|
+
hash = Math.imul(hash, 0xc2b2ae35);
|
|
14
|
+
hash ^= hash >>> 16;
|
|
15
|
+
return hash >>> 0;
|
|
16
|
+
};
|
|
17
|
+
const simpleHashU8 = (uint8Array) => {
|
|
18
|
+
const seed1 = 0xabcdef01;
|
|
19
|
+
const seed2 = 0x10fedcba;
|
|
20
|
+
const hashPart1 = calculateHash32(uint8Array, seed1);
|
|
21
|
+
const hashPart2 = calculateHash32(uint8Array, seed2);
|
|
22
|
+
const highBitsContribution = Number(hashPart1) * 2097152;
|
|
23
|
+
const lowBitsContribution = hashPart2 >>> 11;
|
|
24
|
+
const result = highBitsContribution + lowBitsContribution;
|
|
25
|
+
return result;
|
|
26
|
+
};
|
|
27
|
+
export const genChecksum = (data) => {
|
|
28
|
+
if (data instanceof Uint8Array) {
|
|
29
|
+
return simpleHashU8(data);
|
|
30
|
+
}
|
|
31
|
+
if (typeof data === 'object' && data !== null) {
|
|
32
|
+
return hashObjectIgnoreKeyOrder(data);
|
|
33
|
+
}
|
|
34
|
+
return hash(data);
|
|
35
|
+
};
|
|
36
|
+
//# sourceMappingURL=genChecksum.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"genChecksum.js","sourceRoot":"","sources":["../../../src/query/start/genChecksum.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,wBAAwB,EAAE,IAAI,EAAE,MAAM,aAAa,CAAA;AAE5D,MAAM,eAAe,GAAG,CAAC,UAAsB,EAAE,IAAI,GAAG,CAAC,EAAE,EAAE;IAC3D,IAAI,IAAI,GAAG,IAAI,CAAA;IACf,MAAM,MAAM,GAAG,EAAE,CAAA;IACjB,MAAM,MAAM,GAAG,EAAE,CAAA;IACjB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAC3C,IAAI,GAAG,CAAC,IAAI,GAAG,MAAM,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,CAAA;QACtC,IAAI,GAAG,CAAC,IAAI,GAAG,MAAM,CAAC,GAAG,UAAU,CAAA;IACrC,CAAC;IACD,IAAI,IAAI,IAAI,KAAK,EAAE,CAAA;IACnB,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,UAAU,CAAC,CAAA;IAClC,IAAI,IAAI,IAAI,KAAK,EAAE,CAAA;IACnB,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,UAAU,CAAC,CAAA;IAClC,IAAI,IAAI,IAAI,KAAK,EAAE,CAAA;IACnB,OAAO,IAAI,KAAK,CAAC,CAAA;AACnB,CAAC,CAAA;AAED,MAAM,YAAY,GAAG,CAAC,UAAsB,EAAE,EAAE;IAC9C,MAAM,KAAK,GAAG,UAAU,CAAA;IACxB,MAAM,KAAK,GAAG,UAAU,CAAA;IACxB,MAAM,SAAS,GAAG,eAAe,CAAC,UAAU,EAAE,KAAK,CAAC,CAAA;IACpD,MAAM,SAAS,GAAG,eAAe,CAAC,UAAU,EAAE,KAAK,CAAC,CAAA;IACpD,MAAM,oBAAoB,GAAG,MAAM,CAAC,SAAS,CAAC,GAAG,OAAO,CAAA;IACxD,MAAM,mBAAmB,GAAG,SAAS,KAAK,EAAE,CAAA;IAC5C,MAAM,MAAM,GAAG,oBAAoB,GAAG,mBAAmB,CAAA;IACzD,OAAO,MAAM,CAAA;AACf,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,IAAS,EAAU,EAAE;IAC/C,IAAI,IAAI,YAAY,UAAU,EAAE,CAAC;QAC/B,OAAO,YAAY,CAAC,IAAI,CAAC,CAAA;IAC3B,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,7 +1,7 @@
|
|
|
1
1
|
import { updateId, valueToBuffer, encodeObservableResponse, encodeObservableDiffResponse, cacheV2toV1, diffV2toV1, } from '../../protocol.js';
|
|
2
2
|
import { deepCopy } from '@saulx/utils';
|
|
3
|
-
import { hashObjectIgnoreKeyOrder, hash } from '@saulx/hash';
|
|
4
3
|
import { createPatch } from '@saulx/diff';
|
|
4
|
+
import { genChecksum } from './genChecksum.js';
|
|
5
5
|
export const updateListener = (server, obs, data, checksum, reusedData, diff, previousChecksum, isDeflate) => {
|
|
6
6
|
if (!server.uwsApp) {
|
|
7
7
|
return;
|
|
@@ -11,12 +11,7 @@ export const updateListener = (server, obs, data, checksum, reusedData, diff, pr
|
|
|
11
11
|
checksum = 0;
|
|
12
12
|
}
|
|
13
13
|
else {
|
|
14
|
-
|
|
15
|
-
checksum = hashObjectIgnoreKeyOrder(data);
|
|
16
|
-
}
|
|
17
|
-
else {
|
|
18
|
-
checksum = hash(data);
|
|
19
|
-
}
|
|
14
|
+
checksum = genChecksum(data);
|
|
20
15
|
}
|
|
21
16
|
}
|
|
22
17
|
if (checksum !== obs.checksum) {
|
|
@@ -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,
|
|
1
|
+
{"version":3,"file":"update.js","sourceRoot":"","sources":["../../../src/query/start/update.ts"],"names":[],"mappings":"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"}
|
package/dist/sendError.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { end } from './sendHttpResponse.js';
|
|
2
2
|
import { isHttpContext, isWsSession, } from '@based/functions';
|
|
3
|
-
import { valueToBuffer, encodeErrorResponse } from './protocol.js';
|
|
3
|
+
import { valueToBuffer, encodeErrorResponse, valueToBufferV1, } from './protocol.js';
|
|
4
4
|
import { createError } from './error/index.js';
|
|
5
5
|
const sendHttpErrorData = (errorData, ctx) => {
|
|
6
6
|
const { code, message, statusCode, statusMessage } = errorData;
|
|
@@ -30,7 +30,9 @@ export function sendErrorData(ctx, errorData) {
|
|
|
30
30
|
sendHttpErrorData(errorData, ctx);
|
|
31
31
|
}
|
|
32
32
|
else if (isWsSession(ctx.session)) {
|
|
33
|
-
ctx.session.ws.send(encodeErrorResponse(
|
|
33
|
+
ctx.session.ws.send(encodeErrorResponse(ctx.session.v < 2
|
|
34
|
+
? valueToBufferV1(errorData, true)
|
|
35
|
+
: valueToBuffer(errorData, true)), true, false);
|
|
34
36
|
}
|
|
35
37
|
}
|
|
36
38
|
export function sendError(server, ctx, basedCode, payload) {
|
|
@@ -42,7 +44,9 @@ export function sendError(server, ctx, basedCode, payload) {
|
|
|
42
44
|
}
|
|
43
45
|
else if (isWsSession(ctx.session)) {
|
|
44
46
|
const errorData = createError(server, ctx, basedCode, payload);
|
|
45
|
-
ctx.session.ws.send(encodeErrorResponse(
|
|
47
|
+
ctx.session.ws.send(encodeErrorResponse(ctx.session.v < 2
|
|
48
|
+
? valueToBufferV1(errorData, true)
|
|
49
|
+
: valueToBuffer(errorData, true)), true, false);
|
|
46
50
|
}
|
|
47
51
|
}
|
|
48
52
|
export function sendSimpleError(server, ctx, basedCode, route, id, payload) {
|
|
@@ -73,7 +77,9 @@ export function sendSimpleError(server, ctx, basedCode, route, id, payload) {
|
|
|
73
77
|
}
|
|
74
78
|
else if (isWsSession(ctx.session)) {
|
|
75
79
|
const errorData = createError(server, ctx, basedCode, payload);
|
|
76
|
-
ctx.session.ws.send(encodeErrorResponse(
|
|
80
|
+
ctx.session.ws.send(encodeErrorResponse(ctx.session.v < 2
|
|
81
|
+
? valueToBufferV1(errorData, true)
|
|
82
|
+
: valueToBuffer(errorData, true)), true, false);
|
|
77
83
|
}
|
|
78
84
|
}
|
|
79
85
|
//# sourceMappingURL=sendError.js.map
|
package/dist/sendError.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sendError.js","sourceRoot":"","sources":["../src/sendError.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,uBAAuB,CAAA;AAE3C,OAAO,EAIL,aAAa,EACb,WAAW,GAEZ,MAAM,kBAAkB,CAAA;AACzB,OAAO,
|
|
1
|
+
{"version":3,"file":"sendError.js","sourceRoot":"","sources":["../src/sendError.ts"],"names":[],"mappings":"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"}
|