camusdb 0.1.0 → 0.1.1
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/README.md +14 -3
- package/dist/error-codes.d.ts +9 -0
- package/dist/error-codes.d.ts.map +1 -1
- package/dist/error-codes.js +9 -0
- package/dist/error-codes.js.map +1 -1
- package/dist/runtime.js +1 -1
- package/dist/runtime.js.map +1 -1
- package/dist/transport/grpc/endpoint-health.d.ts +25 -0
- package/dist/transport/grpc/endpoint-health.d.ts.map +1 -0
- package/dist/transport/grpc/endpoint-health.js +94 -0
- package/dist/transport/grpc/endpoint-health.js.map +1 -0
- package/dist/transport/grpc/grpc-transport.d.ts +28 -1
- package/dist/transport/grpc/grpc-transport.d.ts.map +1 -1
- package/dist/transport/grpc/grpc-transport.js +55 -6
- package/dist/transport/grpc/grpc-transport.js.map +1 -1
- package/package.json +5 -5
package/README.md
CHANGED
|
@@ -12,8 +12,8 @@ The gRPC transport needs two more packages. Install them only if you use it:
|
|
|
12
12
|
npm install @grpc/grpc-js @grpc/proto-loader
|
|
13
13
|
```
|
|
14
14
|
|
|
15
|
-
**Requirements**: Node.js 20.
|
|
16
|
-
declarations.
|
|
15
|
+
**Requirements**: Node.js 20.19 or later, or 22.12 or later. The package ships as ECMAScript
|
|
16
|
+
modules with TypeScript declarations.
|
|
17
17
|
|
|
18
18
|
---
|
|
19
19
|
|
|
@@ -638,6 +638,16 @@ When a request fails because an endpoint is unreachable, that endpoint is set as
|
|
|
638
638
|
and skipped meanwhile. A node that is still down is set aside again by the next request that draws
|
|
639
639
|
it, at a cost of one failed request per period.
|
|
640
640
|
|
|
641
|
+
Both transports do this. On REST it is a request that never reached the node. On gRPC it is a
|
|
642
|
+
connection that was refused, a name that did not resolve, or a connection that failed under a call.
|
|
643
|
+
|
|
644
|
+
The code tells you whether the request left the client:
|
|
645
|
+
|
|
646
|
+
- `CADB0001` — the request was never sent. Run the same work again on another endpoint.
|
|
647
|
+
- `CADB0000` — the connection failed under a call that was already sent. The endpoint is set aside
|
|
648
|
+
all the same, because the node stopped answering. The outcome of that one call is unknown, so do
|
|
649
|
+
not replay a commit from `BEGIN`.
|
|
650
|
+
|
|
641
651
|
When every endpoint is set aside, the one closest to leaving is used anyway. The deployment is
|
|
642
652
|
evidently down, and letting the request fail against the real node reports why, where a synthetic
|
|
643
653
|
"no endpoints" would replace the server's diagnosis with the driver's bookkeeping.
|
|
@@ -834,7 +844,8 @@ try {
|
|
|
834
844
|
```
|
|
835
845
|
|
|
836
846
|
Switch on `code`. The message is human text and is not a stable contract. `CADB0000` is the generic
|
|
837
|
-
code the driver uses when the far end supplied none.
|
|
847
|
+
code the driver uses when the far end supplied none. `CADB0001` is the driver's own code for a
|
|
848
|
+
request that never reached a server — see [Endpoint pools](#endpoint-pools).
|
|
838
849
|
|
|
839
850
|
The codes the driver itself reacts to are named in `CamusErrorCode`; every other code reaches you
|
|
840
851
|
unchanged.
|
package/dist/error-codes.d.ts
CHANGED
|
@@ -11,6 +11,15 @@
|
|
|
11
11
|
export declare const CamusErrorCode: {
|
|
12
12
|
/** The driver's own generic code, used when the far end supplied none. */
|
|
13
13
|
readonly Generic: "CADB0000";
|
|
14
|
+
/**
|
|
15
|
+
* The request never reached a server: the transport could not connect to the endpoint. Because
|
|
16
|
+
* nothing was sent, the work is safe to run again on another endpoint. The driver sets this
|
|
17
|
+
* endpoint aside as it raises the code. Raised locally, so it never arrives from a server.
|
|
18
|
+
*
|
|
19
|
+
* It is distinct from `Generic`, which also covers a call that was sent and then lost, and whose
|
|
20
|
+
* outcome is therefore unknown.
|
|
21
|
+
*/
|
|
22
|
+
readonly EndpointUnreachable: "CADB0001";
|
|
14
23
|
/** A parameter cannot be mapped to a wire value. Raised locally, before any request. */
|
|
15
24
|
readonly InvalidParameter: "CADB0400";
|
|
16
25
|
/** A byte payload read as a vector has a length that is not a multiple of four. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"error-codes.d.ts","sourceRoot":"","sources":["../src/error-codes.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH;;;GAGG;AACH,eAAO,MAAM,cAAc;IACzB,0EAA0E;;IAG1E,wFAAwF;;IAGxF,mFAAmF;;IAGnF,+FAA+F;;IAG/F;;;OAGG;;IAGH;;;OAGG;;IAGH,8FAA8F;;IAG9F,iGAAiG;;IAGjG,0FAA0F;;IAG1F,4FAA4F;;IAG5F,wDAAwD;;IAGxD,gGAAgG;;CAExF,CAAC;AAEX,MAAM,MAAM,cAAc,GAAG,CAAC,OAAO,cAAc,CAAC,CAAC,MAAM,OAAO,cAAc,CAAC,CAAC"}
|
|
1
|
+
{"version":3,"file":"error-codes.d.ts","sourceRoot":"","sources":["../src/error-codes.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH;;;GAGG;AACH,eAAO,MAAM,cAAc;IACzB,0EAA0E;;IAG1E;;;;;;;OAOG;;IAGH,wFAAwF;;IAGxF,mFAAmF;;IAGnF,+FAA+F;;IAG/F;;;OAGG;;IAGH;;;OAGG;;IAGH,8FAA8F;;IAG9F,iGAAiG;;IAGjG,0FAA0F;;IAG1F,4FAA4F;;IAG5F,wDAAwD;;IAGxD,gGAAgG;;CAExF,CAAC;AAEX,MAAM,MAAM,cAAc,GAAG,CAAC,OAAO,cAAc,CAAC,CAAC,MAAM,OAAO,cAAc,CAAC,CAAC"}
|
package/dist/error-codes.js
CHANGED
|
@@ -11,6 +11,15 @@
|
|
|
11
11
|
export const CamusErrorCode = {
|
|
12
12
|
/** The driver's own generic code, used when the far end supplied none. */
|
|
13
13
|
Generic: 'CADB0000',
|
|
14
|
+
/**
|
|
15
|
+
* The request never reached a server: the transport could not connect to the endpoint. Because
|
|
16
|
+
* nothing was sent, the work is safe to run again on another endpoint. The driver sets this
|
|
17
|
+
* endpoint aside as it raises the code. Raised locally, so it never arrives from a server.
|
|
18
|
+
*
|
|
19
|
+
* It is distinct from `Generic`, which also covers a call that was sent and then lost, and whose
|
|
20
|
+
* outcome is therefore unknown.
|
|
21
|
+
*/
|
|
22
|
+
EndpointUnreachable: 'CADB0001',
|
|
14
23
|
/** A parameter cannot be mapped to a wire value. Raised locally, before any request. */
|
|
15
24
|
InvalidParameter: 'CADB0400',
|
|
16
25
|
/** A byte payload read as a vector has a length that is not a multiple of four. */
|
package/dist/error-codes.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"error-codes.js","sourceRoot":"","sources":["../src/error-codes.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH;;;GAGG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG;IAC5B,0EAA0E;IAC1E,OAAO,EAAE,UAAU;IAEnB,wFAAwF;IACxF,gBAAgB,EAAE,UAAU;IAE5B,mFAAmF;IACnF,aAAa,EAAE,UAAU;IAEzB,+FAA+F;IAC/F,qBAAqB,EAAE,UAAU;IAEjC;;;OAGG;IACH,kBAAkB,EAAE,UAAU;IAE9B;;;OAGG;IACH,oBAAoB,EAAE,UAAU;IAEhC,8FAA8F;IAC9F,qBAAqB,EAAE,UAAU;IAEjC,iGAAiG;IACjG,mBAAmB,EAAE,UAAU;IAE/B,0FAA0F;IAC1F,iBAAiB,EAAE,UAAU;IAE7B,4FAA4F;IAC5F,wBAAwB,EAAE,UAAU;IAEpC,wDAAwD;IACxD,8BAA8B,EAAE,UAAU;IAE1C,gGAAgG;IAChG,gCAAgC,EAAE,UAAU;CACpC,CAAC"}
|
|
1
|
+
{"version":3,"file":"error-codes.js","sourceRoot":"","sources":["../src/error-codes.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH;;;GAGG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG;IAC5B,0EAA0E;IAC1E,OAAO,EAAE,UAAU;IAEnB;;;;;;;OAOG;IACH,mBAAmB,EAAE,UAAU;IAE/B,wFAAwF;IACxF,gBAAgB,EAAE,UAAU;IAE5B,mFAAmF;IACnF,aAAa,EAAE,UAAU;IAEzB,+FAA+F;IAC/F,qBAAqB,EAAE,UAAU;IAEjC;;;OAGG;IACH,kBAAkB,EAAE,UAAU;IAE9B;;;OAGG;IACH,oBAAoB,EAAE,UAAU;IAEhC,8FAA8F;IAC9F,qBAAqB,EAAE,UAAU;IAEjC,iGAAiG;IACjG,mBAAmB,EAAE,UAAU;IAE/B,0FAA0F;IAC1F,iBAAiB,EAAE,UAAU;IAE7B,4FAA4F;IAC5F,wBAAwB,EAAE,UAAU;IAEpC,wDAAwD;IACxD,8BAA8B,EAAE,UAAU;IAE1C,gGAAgG;IAChG,gCAAgC,EAAE,UAAU;CACpC,CAAC"}
|
package/dist/runtime.js
CHANGED
|
@@ -49,7 +49,7 @@ export class ClientRuntime {
|
|
|
49
49
|
}));
|
|
50
50
|
this.transport = CamusTransportPool.forKey(transportKey(config, deployment), () => {
|
|
51
51
|
const inner = config.protocol === CamusProtocol.Grpc
|
|
52
|
-
? new GrpcTransport(this.auth, config.batch)
|
|
52
|
+
? new GrpcTransport(this.pool, this.auth, config.batch)
|
|
53
53
|
: new RestTransport(this.pool, this.auth);
|
|
54
54
|
// Wrapped unconditionally. With no credentials configured the wrapper is inert, and wrapping
|
|
55
55
|
// every transport means a client that authenticates later is covered too.
|
package/dist/runtime.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runtime.js","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAC9D,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAE9D,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,aAAa,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AACpG,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,EAAE,4BAA4B,EAAE,MAAM,sBAAsB,CAAC;AACpE,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,EAAE,uBAAuB,EAAE,MAAM,yCAAyC,CAAC;AAClF,OAAO,EAAE,aAAa,EAAE,MAAM,oCAAoC,CAAC;AACnE,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAE9D,OAAO,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AAEnE;;;;;;GAMG;AACH,MAAM,OAAO,aAAa;IACf,MAAM,CAAiB;IAEhC,iFAAiF;IACxE,IAAI,CAAoB;IAEjC,gGAAgG;IACvF,IAAI,CAAqB;IAElC,6EAA6E;IACpE,SAAS,CAAiB;IAEnC,8EAA8E;IACrE,kBAAkB,CAA+B;IAE1D,kFAAkF;IACzE,MAAM,CAAmC;IAElD,sEAAsE;IACtE,QAAQ,CAAS;IAEjB,YAAY,MAAsB;QAChC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;QAEhC,IAAI,CAAC,IAAI,GAAG,iBAAiB,CAAC,YAAY,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;QAEhE,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC;QAEzC,IAAI,CAAC,IAAI,GAAG,kBAAkB,CAAC,MAAM,CACnC,kBAAkB,CAAC,UAAU,CAAC,MAAM,CAAC,WAAW,EAAE,UAAU,CAAC,EAC7D,GAAG,EAAE,CACH,IAAI,kBAAkB,CAAC;YACrB,WAAW,EAAE,MAAM,CAAC,WAAW;YAC/B,kBAAkB,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,EAAE;YAC5C,eAAe,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;YACvC,qBAAqB,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,cAAc;YAClD,UAAU,EAAE,MAAM,CAAC,eAAe;SACnC,CAAC,CACL,CAAC;QAEF,IAAI,CAAC,SAAS,GAAG,kBAAkB,CAAC,MAAM,CAAC,YAAY,CAAC,MAAM,EAAE,UAAU,CAAC,EAAE,GAAG,EAAE;YAChF,MAAM,KAAK,GACT,MAAM,CAAC,QAAQ,KAAK,aAAa,CAAC,IAAI;gBACpC,CAAC,CAAC,IAAI,aAAa,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"runtime.js","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* This file is part of CamusDB
|
|
3
|
+
*
|
|
4
|
+
* For the full copyright and license information, please view the LICENSE.txt
|
|
5
|
+
* file that was distributed with this source code.
|
|
6
|
+
*/
|
|
7
|
+
import type { GrpcStatusError } from './proto.js';
|
|
8
|
+
/**
|
|
9
|
+
* Whether the endpoint could not be connected to at all.
|
|
10
|
+
*
|
|
11
|
+
* This is the narrow question. It is true only for the shapes the runtime produces before any byte
|
|
12
|
+
* goes out, so a caller told "never sent" can retry the work elsewhere in safety. A server that
|
|
13
|
+
* answered with `UNAVAILABLE` — one node reporting that a peer did not answer — is not this, and
|
|
14
|
+
* neither is a call that was sent and then lost.
|
|
15
|
+
*/
|
|
16
|
+
export declare function isEndpointUnreachable(error: GrpcStatusError): boolean;
|
|
17
|
+
/**
|
|
18
|
+
* Whether the endpoint is down, for the pool's purposes.
|
|
19
|
+
*
|
|
20
|
+
* This is the wide question, and it is what quarantine reads. It adds the connections that died
|
|
21
|
+
* under a call in flight to the connections that never opened. Both mean the node stopped
|
|
22
|
+
* answering, and every request routed there before the pool learns it fails the same way.
|
|
23
|
+
*/
|
|
24
|
+
export declare function indicatesEndpointDown(error: GrpcStatusError): boolean;
|
|
25
|
+
//# sourceMappingURL=endpoint-health.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"endpoint-health.d.ts","sourceRoot":"","sources":["../../../src/transport/grpc/endpoint-health.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAgDlD;;;;;;;GAOG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,eAAe,GAAG,OAAO,CAYrE;AAED;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,eAAe,GAAG,OAAO,CAOrE"}
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* This file is part of CamusDB
|
|
3
|
+
*
|
|
4
|
+
* For the full copyright and license information, please view the LICENSE.txt
|
|
5
|
+
* file that was distributed with this source code.
|
|
6
|
+
*/
|
|
7
|
+
/**
|
|
8
|
+
* Whether a gRPC failure says the endpoint is down, and whether the request that hit it ever left
|
|
9
|
+
* the client.
|
|
10
|
+
*
|
|
11
|
+
* The REST transport always set a node aside after a failure to reach it. The gRPC transport did
|
|
12
|
+
* not: it translated the failure and drew the same node again, and learned routing kept preferring
|
|
13
|
+
* it. A leader kill therefore produced a storm of refused connections, not a failover.
|
|
14
|
+
*
|
|
15
|
+
* The two questions are separate, and this module answers each one on its own. A connection that
|
|
16
|
+
* died under a call in flight is good evidence that the node is gone, but it leaves that call's
|
|
17
|
+
* outcome unknown. The caller must never be told "never sent" about a commit that may have landed.
|
|
18
|
+
*/
|
|
19
|
+
/** grpc-js reports `UNAVAILABLE` as status code 14. */
|
|
20
|
+
const GRPC_STATUS_UNAVAILABLE = 14;
|
|
21
|
+
/**
|
|
22
|
+
* Detail fragments grpc-js writes when the connection died under a call that was already sent.
|
|
23
|
+
*
|
|
24
|
+
* Their outcome is unknown, so they keep the generic code. The node is gone all the same, and the
|
|
25
|
+
* pool must learn it: after a leader kill the batcher's open streams die first, and its reconnect
|
|
26
|
+
* is what finally produces the refused connection. To wait for the refused connection alone leaves
|
|
27
|
+
* seconds in which every statement still goes to the dead node.
|
|
28
|
+
*/
|
|
29
|
+
const IN_FLIGHT_LOSS_MARKERS = ['connection dropped', 'write error:', 'write failed with error'];
|
|
30
|
+
/**
|
|
31
|
+
* Detail fragments grpc-js writes before any byte goes out: the picker had no ready connection,
|
|
32
|
+
* the name did not resolve, or the socket was refused. `No connection established` carries the
|
|
33
|
+
* underlying Node error as `Last error:`, and the socket codes are listed as well, because a
|
|
34
|
+
* different load balancer or resolver can report one without that wrapper.
|
|
35
|
+
*/
|
|
36
|
+
const CONNECT_FAILURE_MARKERS = [
|
|
37
|
+
'no connection established',
|
|
38
|
+
'name resolution failed',
|
|
39
|
+
'subchannel not ready',
|
|
40
|
+
'failed to connect before the deadline',
|
|
41
|
+
'econnrefused',
|
|
42
|
+
'ehostunreach',
|
|
43
|
+
'enetunreach',
|
|
44
|
+
'enotfound',
|
|
45
|
+
'eai_again',
|
|
46
|
+
'eaddrnotavail',
|
|
47
|
+
'etimedout',
|
|
48
|
+
];
|
|
49
|
+
/**
|
|
50
|
+
* Whether the endpoint could not be connected to at all.
|
|
51
|
+
*
|
|
52
|
+
* This is the narrow question. It is true only for the shapes the runtime produces before any byte
|
|
53
|
+
* goes out, so a caller told "never sent" can retry the work elsewhere in safety. A server that
|
|
54
|
+
* answered with `UNAVAILABLE` — one node reporting that a peer did not answer — is not this, and
|
|
55
|
+
* neither is a call that was sent and then lost.
|
|
56
|
+
*/
|
|
57
|
+
export function isEndpointUnreachable(error) {
|
|
58
|
+
if (error.code !== GRPC_STATUS_UNAVAILABLE)
|
|
59
|
+
return false;
|
|
60
|
+
const detail = statusDetail(error);
|
|
61
|
+
// A call that was sent and then lost its connection is NOT this. Its outcome is unknown, and a
|
|
62
|
+
// caller told "never sent" would retry a commit that may already be durable. The .NET driver's
|
|
63
|
+
// run lk5 (2026-09-15) did exactly that when a reset socket was accepted here on the strength of
|
|
64
|
+
// its socket error code: 37 rows carried commits the client had written off.
|
|
65
|
+
if (IN_FLIGHT_LOSS_MARKERS.some((marker) => detail.includes(marker)))
|
|
66
|
+
return false;
|
|
67
|
+
return CONNECT_FAILURE_MARKERS.some((marker) => detail.includes(marker));
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* Whether the endpoint is down, for the pool's purposes.
|
|
71
|
+
*
|
|
72
|
+
* This is the wide question, and it is what quarantine reads. It adds the connections that died
|
|
73
|
+
* under a call in flight to the connections that never opened. Both mean the node stopped
|
|
74
|
+
* answering, and every request routed there before the pool learns it fails the same way.
|
|
75
|
+
*/
|
|
76
|
+
export function indicatesEndpointDown(error) {
|
|
77
|
+
if (isEndpointUnreachable(error))
|
|
78
|
+
return true;
|
|
79
|
+
if (error.code !== GRPC_STATUS_UNAVAILABLE)
|
|
80
|
+
return false;
|
|
81
|
+
const detail = statusDetail(error);
|
|
82
|
+
return IN_FLIGHT_LOSS_MARKERS.some((marker) => detail.includes(marker));
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* The failure text to classify, folded to lower case.
|
|
86
|
+
*
|
|
87
|
+
* `details` holds the status detail on its own. `message` prefixes it with the status code and
|
|
88
|
+
* name, and is the fallback for a rejection that carries no detail.
|
|
89
|
+
*/
|
|
90
|
+
function statusDetail(error) {
|
|
91
|
+
const detail = error.details ?? '';
|
|
92
|
+
return (detail.length > 0 ? detail : error.message).toLowerCase();
|
|
93
|
+
}
|
|
94
|
+
//# sourceMappingURL=endpoint-health.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"endpoint-health.js","sourceRoot":"","sources":["../../../src/transport/grpc/endpoint-health.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH;;;;;;;;;;;GAWG;AAEH,uDAAuD;AACvD,MAAM,uBAAuB,GAAG,EAAE,CAAC;AAEnC;;;;;;;GAOG;AACH,MAAM,sBAAsB,GAAG,CAAC,oBAAoB,EAAE,cAAc,EAAE,yBAAyB,CAAC,CAAC;AAEjG;;;;;GAKG;AACH,MAAM,uBAAuB,GAAG;IAC9B,2BAA2B;IAC3B,wBAAwB;IACxB,sBAAsB;IACtB,uCAAuC;IACvC,cAAc;IACd,cAAc;IACd,aAAa;IACb,WAAW;IACX,WAAW;IACX,eAAe;IACf,WAAW;CACZ,CAAC;AAEF;;;;;;;GAOG;AACH,MAAM,UAAU,qBAAqB,CAAC,KAAsB;IAC1D,IAAI,KAAK,CAAC,IAAI,KAAK,uBAAuB;QAAE,OAAO,KAAK,CAAC;IAEzD,MAAM,MAAM,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC;IAEnC,+FAA+F;IAC/F,+FAA+F;IAC/F,iGAAiG;IACjG,6EAA6E;IAC7E,IAAI,sBAAsB,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QAAE,OAAO,KAAK,CAAC;IAEnF,OAAO,uBAAuB,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;AAC3E,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,qBAAqB,CAAC,KAAsB;IAC1D,IAAI,qBAAqB,CAAC,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAC9C,IAAI,KAAK,CAAC,IAAI,KAAK,uBAAuB;QAAE,OAAO,KAAK,CAAC;IAEzD,MAAM,MAAM,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC;IAEnC,OAAO,sBAAsB,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;AAC1E,CAAC;AAED;;;;;GAKG;AACH,SAAS,YAAY,CAAC,KAAsB;IAC1C,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,IAAI,EAAE,CAAC;IAEnC,OAAO,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,WAAW,EAAE,CAAC;AACpE,CAAC"}
|
|
@@ -7,9 +7,12 @@
|
|
|
7
7
|
import type { CamusLoginClient, CamusLoginResult } from '../../auth/login-client.js';
|
|
8
8
|
import type { CamusTokenProvider } from '../../auth/token-provider.js';
|
|
9
9
|
import type { GrpcBatchOptions } from '../../config.js';
|
|
10
|
+
import { CamusError } from '../../errors.js';
|
|
11
|
+
import type { CamusEndpointPool } from '../../endpoint-pool.js';
|
|
10
12
|
import type { CamusTransactionOptions } from '../../options.js';
|
|
11
13
|
import type { CamusRowSource } from '../../row-source.js';
|
|
12
14
|
import type { CamusBranchRow, CamusTransport, NonQueryTransportResult, PreparedStatementInfo, QueryTransportResult, StartTransactionResult, TransportInsertRequest, TransportSqlRequest } from '../transport.js';
|
|
15
|
+
import type { GrpcStatusError } from './proto.js';
|
|
13
16
|
/**
|
|
14
17
|
* The gRPC transport.
|
|
15
18
|
*
|
|
@@ -27,11 +30,16 @@ export declare class GrpcTransport implements CamusTransport, CamusLoginClient {
|
|
|
27
30
|
readonly protocol: "grpc";
|
|
28
31
|
private readonly auth;
|
|
29
32
|
private readonly batchOptions;
|
|
33
|
+
/**
|
|
34
|
+
* The deployment's endpoint rotation, so a failure to reach a node sets it aside for every
|
|
35
|
+
* caller that shares this transport. The REST transport always did this; gRPC did not.
|
|
36
|
+
*/
|
|
37
|
+
private readonly pool;
|
|
30
38
|
private readonly channels;
|
|
31
39
|
private runtime;
|
|
32
40
|
private causalToken;
|
|
33
41
|
private closed;
|
|
34
|
-
constructor(auth: CamusTokenProvider, batchOptions: GrpcBatchOptions);
|
|
42
|
+
constructor(pool: CamusEndpointPool | undefined, auth: CamusTokenProvider, batchOptions: GrpcBatchOptions);
|
|
35
43
|
startTransaction(endpoint: string, database: string, options: CamusTransactionOptions, timeoutSeconds: number, signal?: AbortSignal): Promise<StartTransactionResult>;
|
|
36
44
|
finalizeTransaction(commit: boolean, endpoint: string, database: string, txnIdPT: bigint, txnIdCounter: number, streamSlot: number | undefined, timeoutSeconds: number, signal?: AbortSignal): Promise<void>;
|
|
37
45
|
executeQuery(request: TransportSqlRequest): Promise<QueryTransportResult>;
|
|
@@ -82,6 +90,11 @@ export declare class GrpcTransport implements CamusTransport, CamusLoginClient {
|
|
|
82
90
|
*/
|
|
83
91
|
private createBatchStream;
|
|
84
92
|
private unary;
|
|
93
|
+
/**
|
|
94
|
+
* Translates a gRPC failure on `endpoint`, and sets the endpoint aside first when the failure
|
|
95
|
+
* says the node stopped answering.
|
|
96
|
+
*/
|
|
97
|
+
private translate;
|
|
85
98
|
/**
|
|
86
99
|
* The call metadata, carrying the bearer token when this client has one.
|
|
87
100
|
*
|
|
@@ -112,4 +125,18 @@ export declare class GrpcTransport implements CamusTransport, CamusLoginClient {
|
|
|
112
125
|
private withDeadline;
|
|
113
126
|
close(): Promise<void>;
|
|
114
127
|
}
|
|
128
|
+
/**
|
|
129
|
+
* Turns a gRPC failure on one endpoint into a `CamusError`, and reports what it says about the
|
|
130
|
+
* endpoint to the pool.
|
|
131
|
+
*
|
|
132
|
+
* Two decisions come out of one failure, and they do not have the same answer:
|
|
133
|
+
*
|
|
134
|
+
* 1. The pool learns from every shape that says the node stopped answering, a connection that died
|
|
135
|
+
* under a call in flight included.
|
|
136
|
+
* 2. Only the shape that says the request never left the client changes the code the caller sees.
|
|
137
|
+
* A call whose outcome is unknown keeps the generic code, so a commit is never written off.
|
|
138
|
+
*
|
|
139
|
+
* Exported for the tests, which pin both decisions against a real pool.
|
|
140
|
+
*/
|
|
141
|
+
export declare function translateGrpcFailure(pool: CamusEndpointPool | undefined, endpoint: string, error: GrpcStatusError): CamusError;
|
|
115
142
|
//# sourceMappingURL=grpc-transport.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"grpc-transport.d.ts","sourceRoot":"","sources":["../../../src/transport/grpc/grpc-transport.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AACrF,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAEvE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"grpc-transport.d.ts","sourceRoot":"","sources":["../../../src/transport/grpc/grpc-transport.ts"],"names":[],"mappings":"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"}
|
|
@@ -15,6 +15,7 @@ import { createBranchDatabaseSql, createDatabaseSql, dropDatabaseSql, mapBranchR
|
|
|
15
15
|
import { hasTransaction } from '../transport.js';
|
|
16
16
|
import { EMPTY_CAUSAL_TOKEN, GrpcBatcher, PreparedStatementStaleError } from './batcher.js';
|
|
17
17
|
import { buildResultSet, encodeValue, fromWire, toWire } from './codec.js';
|
|
18
|
+
import { indicatesEndpointDown, isEndpointUnreachable } from './endpoint-health.js';
|
|
18
19
|
import { GrpcIsolationLevel, GrpcLockingMode, GrpcTransactionMode } from './messages.js';
|
|
19
20
|
import { loadGrpc, serviceConstructor } from './proto.js';
|
|
20
21
|
/** How long a channel stays open, and how long an idle one is kept. */
|
|
@@ -38,11 +39,17 @@ export class GrpcTransport {
|
|
|
38
39
|
protocol = CamusProtocol.Grpc;
|
|
39
40
|
auth;
|
|
40
41
|
batchOptions;
|
|
42
|
+
/**
|
|
43
|
+
* The deployment's endpoint rotation, so a failure to reach a node sets it aside for every
|
|
44
|
+
* caller that shares this transport. The REST transport always did this; gRPC did not.
|
|
45
|
+
*/
|
|
46
|
+
pool;
|
|
41
47
|
channels = new Map();
|
|
42
48
|
runtime;
|
|
43
49
|
causalToken = EMPTY_CAUSAL_TOKEN;
|
|
44
50
|
closed = false;
|
|
45
|
-
constructor(auth, batchOptions) {
|
|
51
|
+
constructor(pool, auth, batchOptions) {
|
|
52
|
+
this.pool = pool;
|
|
46
53
|
this.auth = auth;
|
|
47
54
|
this.batchOptions = batchOptions;
|
|
48
55
|
}
|
|
@@ -289,7 +296,7 @@ export class GrpcTransport {
|
|
|
289
296
|
*/
|
|
290
297
|
async batcherFor(endpoint) {
|
|
291
298
|
const entry = await this.entryFor(endpoint);
|
|
292
|
-
entry.batcher ??= new GrpcBatcher(this.batchOptions, (id) => this.createBatchStream(id, entry.sql));
|
|
299
|
+
entry.batcher ??= new GrpcBatcher(this.batchOptions, (id) => this.createBatchStream(id, entry.sql, endpoint));
|
|
293
300
|
return entry.batcher;
|
|
294
301
|
}
|
|
295
302
|
/**
|
|
@@ -298,7 +305,10 @@ export class GrpcTransport {
|
|
|
298
305
|
* The batcher rebuilds a faulted stream on its own, so the token is read here, at open time,
|
|
299
306
|
* rather than captured once. A stream re-opened after a token refresh carries the new token.
|
|
300
307
|
*/
|
|
301
|
-
createBatchStream(id, client) {
|
|
308
|
+
createBatchStream(id, client, endpoint) {
|
|
309
|
+
// Captured, because `listen` below is a method on the returned object and `this` is not the
|
|
310
|
+
// transport inside it.
|
|
311
|
+
const pool = this.pool;
|
|
302
312
|
const method = client.batchExecute;
|
|
303
313
|
const call = method.call(client, this.buildMetadata(this.auth.currentToken));
|
|
304
314
|
let closed = false;
|
|
@@ -315,8 +325,8 @@ export class GrpcTransport {
|
|
|
315
325
|
onClose(error);
|
|
316
326
|
};
|
|
317
327
|
call.on('data', onMessage);
|
|
318
|
-
call.on('error', (error) => finish(
|
|
319
|
-
call.on('end', () => finish(new CamusError(CamusErrorCode.Generic,
|
|
328
|
+
call.on('error', (error) => finish(translateGrpcFailure(pool, endpoint, error)));
|
|
329
|
+
call.on('end', () => finish(new CamusError(CamusErrorCode.Generic, `Endpoint ${endpoint}: the gRPC batch stream closed.`)));
|
|
320
330
|
},
|
|
321
331
|
close() {
|
|
322
332
|
closed = true;
|
|
@@ -343,7 +353,7 @@ export class GrpcTransport {
|
|
|
343
353
|
const call = client[method].call(client, request, metadata, options, (error, reply) => {
|
|
344
354
|
signal?.removeEventListener('abort', onAbort);
|
|
345
355
|
if (error !== null && error !== undefined) {
|
|
346
|
-
reject(
|
|
356
|
+
reject(this.translate(endpoint, error));
|
|
347
357
|
return;
|
|
348
358
|
}
|
|
349
359
|
resolve(reply);
|
|
@@ -361,6 +371,13 @@ export class GrpcTransport {
|
|
|
361
371
|
}
|
|
362
372
|
});
|
|
363
373
|
}
|
|
374
|
+
/**
|
|
375
|
+
* Translates a gRPC failure on `endpoint`, and sets the endpoint aside first when the failure
|
|
376
|
+
* says the node stopped answering.
|
|
377
|
+
*/
|
|
378
|
+
translate(endpoint, error) {
|
|
379
|
+
return translateGrpcFailure(this.pool, endpoint, error);
|
|
380
|
+
}
|
|
364
381
|
/**
|
|
365
382
|
* The call metadata, carrying the bearer token when this client has one.
|
|
366
383
|
*
|
|
@@ -527,6 +544,38 @@ function channelTarget(runtime, endpoint) {
|
|
|
527
544
|
credentials: secure ? runtime.credentials.createSsl() : runtime.credentials.createInsecure(),
|
|
528
545
|
};
|
|
529
546
|
}
|
|
547
|
+
/**
|
|
548
|
+
* Turns a gRPC failure on one endpoint into a `CamusError`, and reports what it says about the
|
|
549
|
+
* endpoint to the pool.
|
|
550
|
+
*
|
|
551
|
+
* Two decisions come out of one failure, and they do not have the same answer:
|
|
552
|
+
*
|
|
553
|
+
* 1. The pool learns from every shape that says the node stopped answering, a connection that died
|
|
554
|
+
* under a call in flight included.
|
|
555
|
+
* 2. Only the shape that says the request never left the client changes the code the caller sees.
|
|
556
|
+
* A call whose outcome is unknown keeps the generic code, so a commit is never written off.
|
|
557
|
+
*
|
|
558
|
+
* Exported for the tests, which pin both decisions against a real pool.
|
|
559
|
+
*/
|
|
560
|
+
export function translateGrpcFailure(pool, endpoint, error) {
|
|
561
|
+
// A domain code from the server is the server's own answer. The node is up, and the code stands.
|
|
562
|
+
const domainCode = readMetadata(error, 'camus-error-code');
|
|
563
|
+
if (domainCode !== undefined && domainCode.length > 0)
|
|
564
|
+
return translateStatus(error);
|
|
565
|
+
if (pool !== undefined && endpoint.length > 0 && indicatesEndpointDown(error)) {
|
|
566
|
+
pool.markUnreachable(endpoint);
|
|
567
|
+
}
|
|
568
|
+
if (isEndpointUnreachable(error)) {
|
|
569
|
+
const reason = sanitizeErrorText(error.details ?? error.message);
|
|
570
|
+
return new CamusError(CamusErrorCode.EndpointUnreachable, `Endpoint ${endpoint} could not be reached: ${reason}`, { cause: error });
|
|
571
|
+
}
|
|
572
|
+
const translated = translateStatus(error);
|
|
573
|
+
// Name the endpoint on the generic transport code too. Neither the code nor the message carried
|
|
574
|
+
// it before, so a burst of unknown-outcome failures did not say where it went.
|
|
575
|
+
if (translated.code !== CamusErrorCode.Generic)
|
|
576
|
+
return translated;
|
|
577
|
+
return new CamusError(translated.code, `Endpoint ${endpoint}: ${translated.message}`, { cause: error });
|
|
578
|
+
}
|
|
530
579
|
/**
|
|
531
580
|
* Turns a gRPC status into a `CamusError`.
|
|
532
581
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"grpc-transport.js","sourceRoot":"","sources":["../../../src/transport/grpc/grpc-transport.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"grpc-transport.js","sourceRoot":"","sources":["../../../src/transport/grpc/grpc-transport.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAMH,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAGtD,OAAO,EAAE,mBAAmB,EAAE,YAAY,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAC3F,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAG1D,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EACL,uBAAuB,EACvB,iBAAiB,EACjB,eAAe,EACf,aAAa,EACb,gBAAgB,EAChB,eAAe,GAChB,MAAM,yBAAyB,CAAC;AAWjC,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAEjD,OAAO,EAAE,kBAAkB,EAAE,WAAW,EAAE,2BAA2B,EAAE,MAAM,cAAc,CAAC;AAC5F,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AAC3E,OAAO,EAAE,qBAAqB,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAapF,OAAO,EAAE,kBAAkB,EAAE,eAAe,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AAQzF,OAAO,EAAE,QAAQ,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAE1D,uEAAuE;AACvE,MAAM,iBAAiB,GAAG,MAAM,CAAC;AACjC,MAAM,oBAAoB,GAAG,MAAM,CAAC;AACpC,MAAM,iBAAiB,GAAG,EAAE,GAAG,IAAI,GAAG,IAAI,CAAC;AAS3C;;;;;;;;;;;;GAYG;AACH,MAAM,OAAO,aAAa;IACf,QAAQ,GAAG,aAAa,CAAC,IAAI,CAAC;IAEtB,IAAI,CAAqB;IAEzB,YAAY,CAAmB;IAEhD;;;OAGG;IACc,IAAI,CAAgC;IAEpC,QAAQ,GAAG,IAAI,GAAG,EAAwB,CAAC;IAEpD,OAAO,CAA0B;IAEjC,WAAW,GAAqB,kBAAkB,CAAC;IAEnD,MAAM,GAAG,KAAK,CAAC;IAEvB,YAAY,IAAmC,EAAE,IAAwB,EAAE,YAA8B;QACvG,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;IACnC,CAAC;IAED,6EAA6E;IAE7E,KAAK,CAAC,gBAAgB,CACpB,QAAgB,EAChB,QAAgB,EAChB,OAAgC,EAChC,cAAsB,EACtB,MAAoB;QAEpB,MAAM,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QAEjC,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;QAChD,MAAM,IAAI,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;QAEnC,0FAA0F;QAC1F,MAAM,OAAO,GAAmB,EAAE,QAAQ,EAAE,GAAG,iBAAiB,CAAC,OAAO,CAAC,EAAE,CAAC;QAE5E,OAAO,IAAI,CAAC,YAAY,CAAC,cAAc,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,EAAE;YACpE,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,YAAY,CAAC,OAAO,EAAE,IAAI,EAAE,UAAU,CAAC,CAAC;YAErE,IAAI,CAAC,YAAY,CAAC;gBAChB,CAAC,EAAE,MAAM,CAAC,YAAY;gBACtB,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,YAAY,CAAC;gBAChC,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,YAAY,CAAC;aACjC,CAAC,CAAC;YAEH,OAAO;gBACL,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC;gBACjC,YAAY,EAAE,MAAM,CAAC,YAAY;gBACjC,UAAU,EAAE,IAAI;aACjB,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,mBAAmB,CACvB,MAAe,EACf,QAAgB,EAChB,QAAgB,EAChB,OAAe,EACf,YAAoB,EACpB,UAA8B,EAC9B,cAAsB,EACtB,MAAoB;QAEpB,MAAM,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QAEjC,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;QAChD,MAAM,IAAI,GAAG,UAAU,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;QAEjD,MAAM,OAAO,GAAmB,EAAE,QAAQ,EAAE,SAAS,EAAE,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,YAAY,CAAC,EAAE,CAAC;QAEjG,MAAM,IAAI,CAAC,YAAY,CAAC,cAAc,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,EAAE;YACnE,IAAI,MAAM,EAAE,CAAC;gBACX,IAAI,CAAC,YAAY,CAAC,MAAM,OAAO,CAAC,aAAa,CAAC,OAAO,EAAE,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC;gBAC1E,OAAO;YACT,CAAC;YAED,MAAM,OAAO,CAAC,eAAe,CAAC,OAAO,EAAE,IAAI,EAAE,UAAU,CAAC,CAAC;QAC3D,CAAC,CAAC,CAAC;IACL,CAAC;IAED,6EAA6E;IAE7E,KAAK,CAAC,YAAY,CAAC,OAA4B;QAC7C,MAAM,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QAEzC,OAAO,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,cAAc,EAAE,OAAO,CAAC,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,EAAE;YACpF,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;YAExD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,WAAW,EAAE,EAAE,CACjG,OAAO,CAAC,YAAY,CAAC,IAAI,EAAE,IAAI,EAAE,UAAU,EAAE,WAAW,CAAC,CAC1D,CAAC;YAEF,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YAEhC,OAAO;gBACL,SAAS,EAAE,cAAc,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC;gBACrD,aAAa,EAAE,MAAM,CAAC,aAAa;gBACnC,OAAO,EAAE,MAAM,CAAC,OAAO;aACxB,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,kBAAkB,CAAC,OAA4B;QACnD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;QAChD,OAAO,IAAI,iBAAiB,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IACjD,CAAC;IAED,KAAK,CAAC,eAAe,CAAC,OAA4B;QAChD,MAAM,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QAEzC,OAAO,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,cAAc,EAAE,OAAO,CAAC,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,EAAE;YACpF,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;YAExD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,WAAW,EAAE,EAAE,CACjG,OAAO,CAAC,eAAe,CAAC,IAAI,EAAE,IAAI,EAAE,UAAU,EAAE,WAAW,CAAC,CAC7D,CAAC;YAEF,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YAEhC,OAAO,EAAE,YAAY,EAAE,MAAM,CAAC,YAAY,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,CAAC;QACxE,CAAC,CAAC,CAAC;IACL,CAAC;IAED,6EAA6E;IAE7E,KAAK,CAAC,OAAO,CACX,QAAgB,EAChB,QAAgB,EAChB,GAAW,EACX,cAAsB,EACtB,MAAoB;QAEpB,MAAM,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QAEjC,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;QAEhD,OAAO,IAAI,CAAC,YAAY,CAAC,cAAc,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,EAAE;YACpE,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC,cAAc,CAAC,OAAO,CAAC,WAAW,EAAE,EAAE,QAAQ,EAAE,GAAG,EAAE,UAAU,CAAC,CAAC;YAC7F,OAAO,EAAE,cAAc,EAAE,KAAK,CAAC,cAAc,EAAE,CAAC;QAClD,CAAC,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,QAAgB,EAAE,QAAgB,EAAE,GAAW,EAAE,MAAoB;QACvF,4FAA4F;QAC5F,sDAAsD;QACtD,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;QACrD,IAAI,OAAO,KAAK,SAAS;YAAE,OAAO;QAElC,KAAK,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,IAAI,MAAM,OAAO,CAAC,YAAY,CAAC,QAAQ,EAAE,GAAG,CAAC,EAAE,CAAC;YAC7E,MAAM,OAAO,CAAC,aAAa,CAAC,SAAS,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;QACxD,CAAC;IACH,CAAC;IAED;;;;;;OAMG;IACK,KAAK,CAAC,cAAc,CAC1B,OAAoB,EACpB,OAA4B,EAC5B,MAA+B,EAC/B,IAAqG;QAErG,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;YACtB,OAAO,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC;QAC5E,CAAC;QAED,MAAM,IAAI,GAAG,OAAO,CAAC,UAAU,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;QAEzD,KAAK,IAAI,OAAO,GAAG,CAAC,GAAI,OAAO,EAAE,EAAE,CAAC;YAClC,IAAI,KAAwB,CAAC;YAC7B,IAAI,IAAoB,CAAC;YAEzB,IAAI,CAAC;gBACH,KAAK,GAAG,MAAM,OAAO,CAAC,cAAc,CAAC,IAAI,EAAE,OAAO,CAAC,QAAQ,EAAE,OAAO,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;gBAClF,IAAI,GAAG,IAAI,CAAC,uBAAuB,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;YACtD,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,KAAK,CAAC;oBAAE,MAAM,KAAK,CAAC;gBAEvC,OAAO,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC;YAC9D,CAAC;YAED,IAAI,CAAC;gBACH,OAAO,MAAM,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC,WAAW,CAAC,CAAC;YACnD,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,IAAI,OAAO,GAAG,CAAC,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC;oBAAE,MAAM,KAAK,CAAC;gBAE5D,OAAO,CAAC,kBAAkB,CAAC,IAAI,EAAE,OAAO,CAAC,QAAQ,EAAE,OAAO,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;YACzE,CAAC;QACH,CAAC;IACH,CAAC;IAED,6EAA6E;IAE7E,KAAK,CAAC,UAAU,CAAC,OAA4B;QAC3C,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,KAAK,CAC5B,OAAO,CAAC,QAAQ,EAChB,KAAK,EACL,YAAY,EACZ,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,EAC7B,OAAO,CAAC,cAAc,EACtB,OAAO,CAAC,MAAM,CACf,CAAC;QAEF,IAAI,CAAC,YAAY,CAAC;YAChB,CAAC,EAAE,KAAK,CAAC,YAAY;YACrB,CAAC,EAAE,QAAQ,CAAC,KAAK,CAAC,YAAY,CAAC;YAC/B,CAAC,EAAE,QAAQ,CAAC,KAAK,CAAC,YAAY,CAAC;SAChC,CAAC,CAAC;QAEH,uFAAuF;QACvF,OAAO,IAAI,CAAC;IACd,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,OAA+B;QAC1C,MAAM,IAAI,GAAyB;YACjC,QAAQ,EAAE,OAAO,CAAC,QAAQ;YAC1B,KAAK,EAAE,OAAO,CAAC,KAAK;YACpB,MAAM,EAAE,gBAAgB,CAAC,OAAO,CAAC,MAAM,CAAC;SACzC,CAAC;QAEF,IAAI,cAAc,CAAC,OAAO,CAAC,EAAE,CAAC;YAC5B,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC;QAC3E,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;YACvC,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;YAC/C,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;QACjD,CAAC;QAED,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,KAAK,CAC5B,OAAO,CAAC,QAAQ,EAChB,MAAM,EACN,WAAW,EACX,IAAI,EACJ,OAAO,CAAC,cAAc,EACtB,OAAO,CAAC,MAAM,CACf,CAAC;QAEF,IAAI,CAAC,YAAY,CAAC;YAChB,CAAC,EAAE,KAAK,CAAC,YAAY;YACrB,CAAC,EAAE,QAAQ,CAAC,KAAK,CAAC,YAAY,CAAC;YAC/B,CAAC,EAAE,QAAQ,CAAC,KAAK,CAAC,YAAY,CAAC;SAChC,CAAC,CAAC;QAEH,OAAO,KAAK,CAAC,YAAY,CAAC;IAC5B,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,QAAgB,EAAE,cAAsB,EAAE,MAAoB;QACvE,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,KAAK,CAAgB,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,cAAc,EAAE,MAAM,CAAC,CAAC;QACnG,OAAO,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,CAAC;IAC/C,CAAC;IAED,6EAA6E;IAE7E,cAAc,CACZ,QAAgB,EAChB,QAAgB,EAChB,WAAoB,EACpB,cAAsB,EACtB,MAAoB;QAEpB,OAAO,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,iBAAiB,CAAC,QAAQ,EAAE,WAAW,CAAC,EAAE,cAAc,EAAE,MAAM,CAAC,CAAC;IACnG,CAAC;IAED,oBAAoB,CAClB,QAAgB,EAChB,UAAkB,EAClB,kBAA0B,EAC1B,WAAoB,EACpB,cAAsB,EACtB,MAAoB;QAEpB,OAAO,IAAI,CAAC,QAAQ,CAClB,QAAQ,EACR,uBAAuB,CAAC,UAAU,EAAE,kBAAkB,EAAE,WAAW,CAAC,EACpE,cAAc,EACd,MAAM,CACP,CAAC;IACJ,CAAC;IAED,YAAY,CACV,QAAgB,EAChB,QAAgB,EAChB,cAAsB,EACtB,MAAoB;QAEpB,OAAO,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,eAAe,CAAC,QAAQ,CAAC,EAAE,cAAc,EAAE,MAAM,CAAC,CAAC;IACpF,CAAC;IAED,KAAK,CAAC,YAAY,CAChB,QAAgB,EAChB,QAAgB,EAChB,cAAsB,EACtB,MAAoB;QAEpB,OAAO,aAAa,CAClB,MAAM,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,QAAQ,EAAE,eAAe,CAAC,QAAQ,CAAC,EAAE,cAAc,EAAE,MAAM,CAAC,CAC7F,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,aAAa,CACjB,QAAgB,EAChB,QAAgB,EAChB,cAAsB,EACtB,MAAoB;QAEpB,OAAO,aAAa,CAClB,MAAM,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,QAAQ,EAAE,gBAAgB,CAAC,QAAQ,CAAC,EAAE,cAAc,EAAE,MAAM,CAAC,CAC9F,CAAC;IACJ,CAAC;IAEO,QAAQ,CACd,QAAgB,EAChB,GAAW,EACX,cAAsB,EACtB,MAA+B;QAE/B,OAAO,IAAI,CAAC,UAAU,CAAC;YACrB,QAAQ;YACR,QAAQ,EAAE,EAAE;YACZ,GAAG;YACH,cAAc;YACd,QAAQ,EAAE,KAAK;YACf,oBAAoB,EAAE,CAAC;YACvB,MAAM;SACP,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;IAC3B,CAAC;IAEO,KAAK,CAAC,UAAU,CACtB,QAAgB,EAChB,QAAgB,EAChB,GAAW,EACX,cAAsB,EACtB,MAA+B;QAE/B,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC;YACrC,QAAQ;YACR,QAAQ;YACR,GAAG;YACH,cAAc;YACd,QAAQ,EAAE,KAAK;YACf,oBAAoB,EAAE,CAAC;YACvB,MAAM;SACP,CAAC,CAAC;QAEH,OAAO,MAAM,CAAC,SAAS,CAAC;IAC1B,CAAC;IAED,6EAA6E;IAE7E,KAAK,CAAC,KAAK,CACT,QAAgB,EAChB,IAAY,EACZ,QAAgB,EAChB,cAAsB,EACtB,MAAoB;QAEpB,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,KAAK,CAC5B,QAAQ,EACR,MAAM,EACN,OAAO,EACP,EAAE,IAAI,EAAE,QAAQ,EAAE,EAClB,cAAc,EACd,MAAM;QACN,oFAAoF;QACpF,IAAI,CACL,CAAC;QAEF,OAAO,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,WAAW,EAAE,YAAY,CAAC,KAAK,CAAC,EAAE,CAAC;IAClE,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,QAAgB,EAAE,KAAa,EAAE,cAAsB,EAAE,MAAoB;QACxF,MAAM,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,EAAE,cAAc,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;IAClF,CAAC;IAED,6EAA6E;IAErE,KAAK,CAAC,QAAQ,CAAC,QAAgB;QACrC,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAC7C,IAAI,QAAQ,KAAK,SAAS;YAAE,OAAO,QAAQ,CAAC;QAE5C,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,GAAG,MAAM,QAAQ,EAAE,CAAC;QAEjD,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QAEvB,wDAAwD;QACxD,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAC1C,IAAI,KAAK,KAAK,SAAS;YAAE,OAAO,KAAK,CAAC;QAEtC,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,GAAG,aAAa,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;QAElE,MAAM,OAAO,GAAG;YACd,wBAAwB,EAAE,iBAAiB;YAC3C,2BAA2B,EAAE,oBAAoB;YACjD,qCAAqC,EAAE,CAAC;YACxC,iCAAiC,EAAE,iBAAiB;YACpD,8BAA8B,EAAE,iBAAiB;SAClD,CAAC;QAEF,MAAM,KAAK,GAAiB;YAC1B,GAAG,EAAE,IAAI,CAAC,kBAAkB,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC,CAAC,OAAO,EAAE,WAAW,EAAE,OAAO,CAAC;YACpF,IAAI,EAAE,IAAI,CAAC,kBAAkB,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC,CAAC,OAAO,EAAE,WAAW,EAAE,OAAO,CAAC;YACtF,IAAI,EAAE,IAAI,CAAC,kBAAkB,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC,CAAC,OAAO,EAAE,WAAW,EAAE,OAAO,CAAC;YACtF,OAAO,EAAE,SAAS;SACnB,CAAC;QAEF,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;QACnC,OAAO,KAAK,CAAC;IACf,CAAC;IAED;;;;;;OAMG;IACK,KAAK,CAAC,UAAU,CAAC,QAAgB;QACvC,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QAE5C,KAAK,CAAC,OAAO,KAAK,IAAI,WAAW,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC,EAAE,EAAE,EAAE,CAC1D,IAAI,CAAC,iBAAiB,CAAC,EAAE,EAAE,KAAK,CAAC,GAAG,EAAE,QAAQ,CAAC,CAChD,CAAC;QAEF,OAAO,KAAK,CAAC,OAAO,CAAC;IACvB,CAAC;IAED;;;;;OAKG;IACK,iBAAiB,CAAC,EAAU,EAAE,MAAyB,EAAE,QAAgB;QAC/E,4FAA4F;QAC5F,uBAAuB;QACvB,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QAEvB,MAAM,MAAM,GAAG,MAAM,CAAC,YAEgD,CAAC;QAEvE,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC;QAE7E,IAAI,MAAM,GAAG,KAAK,CAAC;QAEnB,OAAO;YACL,EAAE;YAEF,IAAI,CAAC,OAAO;gBACV,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YACtB,CAAC;YAED,MAAM,CAAC,EAAE,SAAS,EAAE,OAAO,EAAE;gBAC3B,MAAM,MAAM,GAAG,CAAC,KAAY,EAAQ,EAAE;oBACpC,IAAI,MAAM;wBAAE,OAAO;oBACnB,MAAM,GAAG,IAAI,CAAC;oBACd,OAAO,CAAC,KAAK,CAAC,CAAC;gBACjB,CAAC,CAAC;gBAEF,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;gBAC3B,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,KAAsB,EAAE,EAAE,CAAC,MAAM,CAAC,oBAAoB,CAAC,IAAI,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;gBAClG,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,CAClB,MAAM,CACJ,IAAI,UAAU,CAAC,cAAc,CAAC,OAAO,EAAE,YAAY,QAAQ,iCAAiC,CAAC,CAC9F,CACF,CAAC;YACJ,CAAC;YAED,KAAK;gBACH,MAAM,GAAG,IAAI,CAAC;gBAEd,IAAI,CAAC;oBACH,IAAI,CAAC,GAAG,EAAE,CAAC;gBACb,CAAC;gBAAC,MAAM,CAAC;oBACP,gCAAgC;gBAClC,CAAC;YACH,CAAC;SACF,CAAC;IACJ,CAAC;IAEO,KAAK,CAAC,KAAK,CACjB,QAAgB,EAChB,OAAgC,EAChC,MAAc,EACd,OAAgB,EAChB,cAAsB,EACtB,MAA+B,EAC/B,KAAqB;QAErB,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QAC5C,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC;QAE9B,yFAAyF;QACzF,MAAM,MAAM,GAAG,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QAC1F,MAAM,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;QAE5C,MAAM,OAAO,GAA4B,EAAE,CAAC;QAE5C,IAAI,cAAc,GAAG,CAAC,EAAE,CAAC;YACvB,OAAO,CAAC,QAAQ,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,cAAc,GAAG,IAAI,CAAC,CAAC;QAClE,CAAC;QAED,OAAO,IAAI,OAAO,CAAI,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACxC,MAAM,IAAI,GACR,MAAM,CAAC,MAAM,CAMd,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;gBAC1D,MAAM,EAAE,mBAAmB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;gBAE9C,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;oBAC1C,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC,CAAC;oBACxC,OAAO;gBACT,CAAC;gBAED,OAAO,CAAC,KAAK,CAAC,CAAC;YACjB,CAAC,CAAC,CAAC;YAEH,SAAS,OAAO;gBACd,IAAI,CAAC,MAAM,EAAE,CAAC;YAChB,CAAC;YAED,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;gBACzB,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;oBACnB,IAAI,CAAC,MAAM,EAAE,CAAC;oBACd,MAAM,CAAC,MAAM,CAAC,MAAe,CAAC,CAAC;oBAC/B,OAAO;gBACT,CAAC;gBAED,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;YAC5D,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;;OAGG;IACK,SAAS,CAAC,QAAgB,EAAE,KAAsB;QACxD,OAAO,oBAAoB,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC;IAC1D,CAAC;IAED;;;;;;OAMG;IACK,aAAa,CAAC,KAAyB;QAC7C,IAAI,IAAI,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;YAC/B,MAAM,IAAI,UAAU,CAAC,cAAc,CAAC,OAAO,EAAE,qCAAqC,CAAC,CAAC;QACtF,CAAC;QAED,MAAM,QAAQ,GAAG,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;QAE7C,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC;YAAE,QAAQ,CAAC,GAAG,CAAC,eAAe,EAAE,UAAU,KAAK,EAAE,CAAC,CAAC;QAE9F,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,6EAA6E;IAErE,eAAe,CAAC,OAA4B;QAClD,OAAO,IAAI,CAAC,qBAAqB,CAC/B;YACE,QAAQ,EAAE,OAAO,CAAC,QAAQ;YAC1B,GAAG,EAAE,OAAO,CAAC,GAAG;YAChB,UAAU,EAAE,gBAAgB,CAAC,OAAO,CAAC,UAAU,CAAC;SACjD,EACD,OAAO,CACR,CAAC;IACJ,CAAC;IAEO,uBAAuB,CAAC,OAA4B,EAAE,KAAwB;QACpF,OAAO,IAAI,CAAC,qBAAqB,CAC/B;YACE,WAAW,EAAE,KAAK,CAAC,WAAW;YAC9B,oBAAoB,EAAE,cAAc,CAAC,KAAK,CAAC,cAAc,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC;SAChG,EACD,OAAO,CACR,CAAC;IACJ,CAAC;IAEO,qBAAqB,CAAC,IAAoB,EAAE,OAA4B;QAC9E,IAAI,cAAc,CAAC,OAAO,CAAC,EAAE,CAAC;YAC5B,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC;QAC3E,CAAC;aAAM,CAAC;YACN,IAAI,OAAO,CAAC,iBAAiB,KAAK,SAAS,EAAE,CAAC;gBAC5C,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,iBAAiB,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC,CAAC;YACpE,CAAC;YAED,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;YACvC,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;YAC/C,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;QACjD,CAAC;QAED,yFAAyF;QACzF,+EAA+E;QAC/E,IAAI,CAAC,oBAAoB,GAAG,OAAO,CAAC,oBAAoB,CAAC;QAEzD,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;;OAKG;IACK,WAAW,CAAC,OAAe,EAAE,YAAoB;QACvD,OAAO;YACL,OAAO,EAAE,MAAM,CAAC,OAAO,CAAC;YACxB,YAAY;YACZ,YAAY,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;YAChC,YAAY,EAAE,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;YACxC,YAAY,EAAE,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;SACzC,CAAC;IACJ,CAAC;IAED;;;OAGG;IACK,YAAY,CAAC,KAAuB;QAC1C,IAAI,KAAK,CAAC,CAAC,KAAK,EAAE,IAAI,KAAK,CAAC,CAAC,KAAK,EAAE;YAAE,OAAO;QAE7C,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC;QAEjC,IAAI,KAAK,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,KAAK,OAAO,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,IAAI,OAAO,CAAC,CAAC,CAAC;YAAE,OAAO;QAEnF,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;IAC3B,CAAC;IAED;;;OAGG;IACK,KAAK,CAAC,YAAY,CACxB,cAAsB,EACtB,MAA+B,EAC/B,SAA0D;QAE1D,IAAI,cAAc,IAAI,CAAC;YAAE,OAAO,SAAS,CAAC,MAAM,CAAC,CAAC;QAElD,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAC;QAEzC,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE;YAC5B,UAAU,CAAC,KAAK,CACd,IAAI,UAAU,CAAC,cAAc,CAAC,OAAO,EAAE,+BAA+B,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,CAClG,CAAC;QACJ,CAAC,EAAE,cAAc,GAAG,IAAI,CAAC,CAAC;QAE1B,KAAK,CAAC,KAAK,EAAE,EAAE,CAAC;QAEhB,MAAM,OAAO,GAAG,GAAS,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,MAAO,CAAC,MAAM,CAAC,CAAC;QAE7D,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;YACzB,IAAI,MAAM,CAAC,OAAO;gBAAE,OAAO,EAAE,CAAC;;gBACzB,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;QACjE,CAAC;QAED,IAAI,CAAC;YACH,OAAO,MAAM,SAAS,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;QAC5C,CAAC;gBAAS,CAAC;YACT,YAAY,CAAC,KAAK,CAAC,CAAC;YACpB,MAAM,EAAE,mBAAmB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QAChD,CAAC;IACH,CAAC;IAED,KAAK,CAAC,KAAK;QACT,IAAI,IAAI,CAAC,MAAM;YAAE,OAAO;QAExB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QAEnB,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,EAAE,CAAC;YAC3C,IAAI,KAAK,CAAC,OAAO,KAAK,SAAS;gBAAE,MAAM,KAAK,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;YAE/D,KAAK,CAAC,GAAG,CAAC,KAAK,EAAE,EAAE,CAAC;YACpB,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,CAAC;YACrB,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,CAAC;QACvB,CAAC;QAED,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;IACxB,CAAC;CACF;AAED,SAAS,mBAAmB,CAAC,KAAc;IACzC,OAAO,CACL,KAAK,YAAY,2BAA2B;QAC5C,CAAC,UAAU,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,cAAc,CAAC,wBAAwB,CAAC,CACjF,CAAC;AACJ,CAAC;AAED,SAAS,gBAAgB,CACvB,UAAwD;IAExD,MAAM,OAAO,GAA8B,EAAE,CAAC;IAE9C,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;QAC7B,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,UAAU;YAAE,OAAO,CAAC,IAAI,CAAC,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC;IAC7E,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,SAAS,iBAAiB,CACxB,OAAgC;IAEhC,OAAO;QACL,cAAc,EACZ,OAAO,CAAC,cAAc,KAAK,mBAAmB,CAAC,aAAa;YAC1D,CAAC,CAAC,kBAAkB,CAAC,aAAa;YAClC,CAAC,CAAC,OAAO,CAAC,cAAc,KAAK,mBAAmB,CAAC,YAAY;gBAC3D,CAAC,CAAC,kBAAkB,CAAC,YAAY;gBACjC,CAAC,CAAC,kBAAkB,CAAC,WAAW;QAEtC,eAAe,EACb,OAAO,CAAC,IAAI,KAAK,oBAAoB,CAAC,SAAS;YAC7C,CAAC,CAAC,mBAAmB,CAAC,SAAS;YAC/B,CAAC,CAAC,OAAO,CAAC,IAAI,KAAK,oBAAoB,CAAC,QAAQ;gBAC9C,CAAC,CAAC,mBAAmB,CAAC,QAAQ;gBAC9B,CAAC,CAAC,mBAAmB,CAAC,WAAW;QAEvC,OAAO,EACL,OAAO,CAAC,OAAO,KAAK,YAAY,CAAC,WAAW;YAC1C,CAAC,CAAC,eAAe,CAAC,WAAW;YAC7B,CAAC,CAAC,OAAO,CAAC,OAAO,KAAK,YAAY,CAAC,UAAU;gBAC3C,CAAC,CAAC,eAAe,CAAC,UAAU;gBAC5B,CAAC,CAAC,eAAe,CAAC,WAAW;KACpC,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,SAAS,aAAa,CAAC,OAAoB,EAAE,QAAgB;IAC3D,IAAI,GAAQ,CAAC;IAEb,IAAI,CAAC;QACH,GAAG,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,CAAC;IAC1B,CAAC;IAAC,MAAM,CAAC;QACP,yEAAyE;QACzE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,OAAO,CAAC,WAAW,CAAC,cAAc,EAAE,EAAE,CAAC;IAClF,CAAC;IAED,MAAM,MAAM,GAAG,GAAG,CAAC,QAAQ,KAAK,QAAQ,IAAI,GAAG,CAAC,QAAQ,KAAK,QAAQ,CAAC;IACtE,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;IAEpE,OAAO;QACL,OAAO,EAAE,GAAG,GAAG,CAAC,QAAQ,IAAI,IAAI,EAAE;QAClC,WAAW,EAAE,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,cAAc,EAAE;KAC7F,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,oBAAoB,CAClC,IAAmC,EACnC,QAAgB,EAChB,KAAsB;IAEtB,iGAAiG;IACjG,MAAM,UAAU,GAAG,YAAY,CAAC,KAAK,EAAE,kBAAkB,CAAC,CAAC;IAE3D,IAAI,UAAU,KAAK,SAAS,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO,eAAe,CAAC,KAAK,CAAC,CAAC;IAErF,IAAI,IAAI,KAAK,SAAS,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,IAAI,qBAAqB,CAAC,KAAK,CAAC,EAAE,CAAC;QAC9E,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC;IACjC,CAAC;IAED,IAAI,qBAAqB,CAAC,KAAK,CAAC,EAAE,CAAC;QACjC,MAAM,MAAM,GAAG,iBAAiB,CAAC,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC;QAEjE,OAAO,IAAI,UAAU,CACnB,cAAc,CAAC,mBAAmB,EAClC,YAAY,QAAQ,0BAA0B,MAAM,EAAE,EACtD,EAAE,KAAK,EAAE,KAAK,EAAE,CACjB,CAAC;IACJ,CAAC;IAED,MAAM,UAAU,GAAG,eAAe,CAAC,KAAK,CAAC,CAAC;IAE1C,gGAAgG;IAChG,+EAA+E;IAC/E,IAAI,UAAU,CAAC,IAAI,KAAK,cAAc,CAAC,OAAO;QAAE,OAAO,UAAU,CAAC;IAElE,OAAO,IAAI,UAAU,CAAC,UAAU,CAAC,IAAI,EAAE,YAAY,QAAQ,KAAK,UAAU,CAAC,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;AAC1G,CAAC;AAED;;;;;;;GAOG;AACH,SAAS,eAAe,CAAC,KAAsB;IAC7C,MAAM,IAAI,GAAG,YAAY,CAAC,KAAK,EAAE,kBAAkB,CAAC,CAAC;IACrD,MAAM,OAAO,GAAG,YAAY,CAAC,KAAK,EAAE,qBAAqB,CAAC,CAAC;IAE3D,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC1C,OAAO,IAAI,UAAU,CAAC,IAAI,EAAE,iBAAiB,CAAC,OAAO,IAAI,EAAE,CAAC,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;IAClF,CAAC;IAED,2FAA2F;IAC3F,wBAAwB;IACxB,MAAM,MAAM,GAAG,iBAAiB,CAAC,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC;IAEjE,QAAQ,KAAK,CAAC,IAAI,EAAE,CAAC;QACnB,KAAK,2BAA2B;YAC9B,OAAO,IAAI,UAAU,CAAC,cAAc,CAAC,oBAAoB,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;QACvF,KAAK,6BAA6B;YAChC,OAAO,IAAI,UAAU,CAAC,cAAc,CAAC,qBAAqB,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;QACxF;YACE,OAAO,IAAI,UAAU,CAAC,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;IAC5E,CAAC;AACH,CAAC;AAED,MAAM,2BAA2B,GAAG,EAAE,CAAC;AACvC,MAAM,6BAA6B,GAAG,CAAC,CAAC;AAExC,SAAS,YAAY,CAAC,KAAsB,EAAE,GAAW;IACvD,MAAM,MAAM,GAAG,KAAK,CAAC,QAAQ,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC;IACxC,MAAM,KAAK,GAAG,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC;IAE1B,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IAE1C,OAAO,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;AACpE,CAAC;AAED,SAAS,YAAY,CAAC,KAAqB;IACzC,MAAM,OAAO,GAAG,QAAQ,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC;IACjD,IAAI,OAAO,GAAG,EAAE;QAAE,OAAO,MAAM,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC;IAEhD,MAAM,SAAS,GAAG,QAAQ,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;IAElD,IAAI,SAAS,GAAG,EAAE,EAAE,CAAC;QACnB,MAAM,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACjD,IAAI,SAAS,GAAG,CAAC;YAAE,OAAO,SAAS,CAAC;IACtC,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "camusdb",
|
|
3
|
-
"version": "0.1.
|
|
4
|
-
"description": "CamusDB connector for Node.js
|
|
3
|
+
"version": "0.1.1",
|
|
4
|
+
"description": "CamusDB connector for Node.js — REST and gRPC transports, transactions, prepared statements, learned routing, and online backups.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"author": "CamusDB",
|
|
7
7
|
"homepage": "https://github.com/camusdb/camusdb-ts",
|
|
@@ -38,7 +38,7 @@
|
|
|
38
38
|
"LICENSE"
|
|
39
39
|
],
|
|
40
40
|
"engines": {
|
|
41
|
-
"node": "
|
|
41
|
+
"node": "^20.19.0 || >=22.12.0"
|
|
42
42
|
},
|
|
43
43
|
"sideEffects": false,
|
|
44
44
|
"scripts": {
|
|
@@ -73,12 +73,12 @@
|
|
|
73
73
|
"@grpc/grpc-js": "^1.12.2",
|
|
74
74
|
"@grpc/proto-loader": "^0.7.13",
|
|
75
75
|
"@types/node": "^22.9.0",
|
|
76
|
-
"@vitest/coverage-v8": "^
|
|
76
|
+
"@vitest/coverage-v8": "^4.1.11",
|
|
77
77
|
"eslint": "^9.15.0",
|
|
78
78
|
"prettier": "^3.3.3",
|
|
79
79
|
"typescript": "^5.6.3",
|
|
80
80
|
"typescript-eslint": "^8.15.0",
|
|
81
|
-
"vitest": "^
|
|
81
|
+
"vitest": "^4.1.11"
|
|
82
82
|
},
|
|
83
83
|
"publishConfig": {
|
|
84
84
|
"access": "public"
|