@trpc/client 10.0.0-alpha.9 → 10.0.0-proxy-alpha.54
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 +58 -1
- package/dist/TRPCClientError.d.ts +16 -20
- package/dist/TRPCClientError.d.ts.map +1 -1
- package/dist/createTRPCClient.d.ts +5 -3
- package/dist/createTRPCClient.d.ts.map +1 -1
- package/dist/createTRPCClientProxy.d.ts +37 -0
- package/dist/createTRPCClientProxy.d.ts.map +1 -0
- package/dist/httpUtils-44781613.mjs +76 -0
- package/dist/httpUtils-801112a6.js +79 -0
- package/dist/index.d.ts +2 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +262 -280
- package/dist/index.mjs +255 -271
- package/dist/internals/TRPCClient.d.ts +39 -21
- package/dist/internals/TRPCClient.d.ts.map +1 -1
- package/dist/internals/dataLoader.d.ts +7 -6
- package/dist/internals/dataLoader.d.ts.map +1 -1
- package/dist/internals/fetchHelpers.d.ts +1 -1
- package/dist/internals/fetchHelpers.d.ts.map +1 -1
- package/dist/internals/retryDelay.d.ts.map +1 -1
- package/dist/links/dedupeLink.d.ts.map +1 -1
- package/dist/links/httpBatchLink.d.ts +2 -2
- package/dist/links/httpBatchLink.d.ts.map +1 -1
- package/dist/links/httpBatchLink.js +189 -172
- package/dist/links/httpBatchLink.mjs +189 -172
- package/dist/links/httpLink.d.ts +1 -1
- package/dist/links/httpLink.d.ts.map +1 -1
- package/dist/links/httpLink.js +31 -35
- package/dist/links/httpLink.mjs +31 -35
- package/dist/links/index.d.ts +9 -0
- package/dist/links/index.d.ts.map +1 -0
- package/dist/links/internals/createChain.d.ts.map +1 -1
- package/dist/links/internals/httpUtils.d.ts +31 -0
- package/dist/links/internals/httpUtils.d.ts.map +1 -0
- package/dist/links/internals/transformResult.d.ts +28 -0
- package/dist/links/internals/transformResult.d.ts.map +1 -0
- package/dist/links/loggerLink.d.ts +3 -3
- package/dist/links/loggerLink.d.ts.map +1 -1
- package/dist/links/loggerLink.js +90 -96
- package/dist/links/loggerLink.mjs +90 -91
- package/dist/links/retryLink.d.ts.map +1 -1
- package/dist/links/splitLink.d.ts +1 -1
- package/dist/links/splitLink.d.ts.map +1 -1
- package/dist/links/splitLink.js +3 -25
- package/dist/links/splitLink.mjs +2 -28
- package/dist/links/types.d.ts +13 -12
- package/dist/links/types.d.ts.map +1 -1
- package/dist/links/wsLink.d.ts +12 -5
- package/dist/links/wsLink.d.ts.map +1 -1
- package/dist/links/wsLink.js +250 -358
- package/dist/links/wsLink.mjs +250 -348
- package/dist/splitLink-695ae288.js +48 -0
- package/dist/splitLink-ad44a55d.mjs +45 -0
- package/dist/transformResult-106791d7.mjs +62 -0
- package/dist/transformResult-e15ccdf6.js +65 -0
- package/links/httpBatchLink/dist/trpc-client-links-httpBatchLink.cjs.dev.js +15 -13
- package/links/httpBatchLink/dist/trpc-client-links-httpBatchLink.cjs.prod.js +15 -13
- package/links/httpBatchLink/dist/trpc-client-links-httpBatchLink.esm.js +12 -10
- package/links/httpLink/dist/trpc-client-links-httpLink.cjs.dev.js +4 -4
- package/links/httpLink/dist/trpc-client-links-httpLink.cjs.prod.js +4 -4
- package/links/httpLink/dist/trpc-client-links-httpLink.esm.js +1 -1
- package/links/wsLink/dist/trpc-client-links-wsLink.cjs.dev.js +3 -1
- package/links/wsLink/dist/trpc-client-links-wsLink.cjs.prod.js +3 -1
- package/links/wsLink/dist/trpc-client-links-wsLink.esm.js +3 -1
- package/package.json +23 -34
- package/src/TRPCClientError.ts +38 -28
- package/src/createTRPCClient.ts +11 -3
- package/src/createTRPCClientProxy.ts +113 -0
- package/src/index.ts +2 -1
- package/src/internals/TRPCClient.ts +118 -77
- package/src/internals/dataLoader.ts +116 -53
- package/src/internals/fetchHelpers.ts +2 -2
- package/src/links/dedupeLink.test.ts +9 -15
- package/src/links/dedupeLink.ts +6 -7
- package/src/links/httpBatchLink.ts +73 -36
- package/src/links/httpLink.ts +18 -6
- package/src/links/index.ts +8 -0
- package/src/links/internals/createChain.test.ts +23 -38
- package/src/links/internals/createChain.ts +8 -3
- package/src/links/internals/httpUtils.ts +117 -0
- package/src/links/internals/transformResult.ts +40 -0
- package/src/links/loggerLink.ts +6 -7
- package/src/links/retryLink.ts +2 -3
- package/src/links/splitLink.test.ts +3 -3
- package/src/links/splitLink.ts +5 -5
- package/src/links/types.ts +15 -12
- package/src/links/wsLink.ts +57 -23
- package/dist/TRPCClientError-17b117e1.mjs +0 -81
- package/dist/TRPCClientError-ec6bd2ca.js +0 -94
- package/dist/createChain-389cc116.mjs +0 -25
- package/dist/createChain-864dbb30.js +0 -27
- package/dist/httpUtils-1f9e4e3c.js +0 -97
- package/dist/httpUtils-c09d7b79.mjs +0 -91
- package/dist/index.ts.js +0 -1
- package/dist/links/httpBatchLink.ts.js +0 -1
- package/dist/links/httpLink.ts.js +0 -1
- package/dist/links/httpUtils.d.ts +0 -22
- package/dist/links/httpUtils.d.ts.map +0 -1
- package/dist/links/internals/transformOperationResult.d.ts +0 -16
- package/dist/links/internals/transformOperationResult.d.ts.map +0 -1
- package/dist/links/loggerLink.ts.js +0 -1
- package/dist/links/splitLink.ts.js +0 -1
- package/dist/links/transformerLink.d.ts +0 -4
- package/dist/links/transformerLink.d.ts.map +0 -1
- package/dist/links/transformerLink.js +0 -75
- package/dist/links/transformerLink.mjs +0 -67
- package/dist/links/transformerLink.ts.js +0 -1
- package/dist/links/wsLink.ts.js +0 -1
- package/dist/observable-7e66cb56.mjs +0 -102
- package/dist/observable-85669100.js +0 -104
- package/dist/rx/index.d.ts +0 -3
- package/dist/rx/index.d.ts.map +0 -1
- package/dist/rx/index.js +0 -9
- package/dist/rx/index.mjs +0 -1
- package/dist/rx/index.ts.js +0 -1
- package/dist/rx/observable.d.ts +0 -4
- package/dist/rx/observable.d.ts.map +0 -1
- package/dist/rx/operators/index.d.ts +0 -4
- package/dist/rx/operators/index.d.ts.map +0 -1
- package/dist/rx/operators/index.js +0 -38
- package/dist/rx/operators/index.mjs +0 -32
- package/dist/rx/operators/index.ts.js +0 -1
- package/dist/rx/operators/map.d.ts +0 -3
- package/dist/rx/operators/map.d.ts.map +0 -1
- package/dist/rx/operators/share.d.ts +0 -6
- package/dist/rx/operators/share.d.ts.map +0 -1
- package/dist/rx/operators/tap.d.ts +0 -3
- package/dist/rx/operators/tap.d.ts.map +0 -1
- package/dist/rx/types.d.ts +0 -29
- package/dist/rx/types.d.ts.map +0 -1
- package/dist/rx/util/identity.d.ts +0 -2
- package/dist/rx/util/identity.d.ts.map +0 -1
- package/dist/rx/util/observableToPromise.d.ts +0 -10
- package/dist/rx/util/observableToPromise.d.ts.map +0 -1
- package/dist/rx/util/pipe.d.ts +0 -4
- package/dist/rx/util/pipe.d.ts.map +0 -1
- package/dist/share-4d79dc49.js +0 -110
- package/dist/share-671b63fa.mjs +0 -108
- package/dist/tap-538fa07f.mjs +0 -30
- package/dist/tap-799a2d33.js +0 -32
- package/links/transformerLink/dist/trpc-client-links-transformerLink.cjs.d.ts +0 -1
- package/links/transformerLink/dist/trpc-client-links-transformerLink.cjs.dev.js +0 -67
- package/links/transformerLink/dist/trpc-client-links-transformerLink.cjs.js +0 -7
- package/links/transformerLink/dist/trpc-client-links-transformerLink.cjs.prod.js +0 -67
- package/links/transformerLink/dist/trpc-client-links-transformerLink.esm.js +0 -63
- package/links/transformerLink/index.d.ts +0 -1
- package/links/transformerLink/index.js +0 -1
- package/rx/dist/trpc-client-rx.cjs.d.ts +0 -1
- package/rx/dist/trpc-client-rx.cjs.dev.js +0 -9
- package/rx/dist/trpc-client-rx.cjs.js +0 -7
- package/rx/dist/trpc-client-rx.cjs.prod.js +0 -9
- package/rx/dist/trpc-client-rx.esm.js +0 -1
- package/rx/index.d.ts +0 -1
- package/rx/index.js +0 -1
- package/rx/operators/dist/trpc-client-rx-operators.cjs.d.ts +0 -1
- package/rx/operators/dist/trpc-client-rx-operators.cjs.dev.js +0 -39
- package/rx/operators/dist/trpc-client-rx-operators.cjs.js +0 -7
- package/rx/operators/dist/trpc-client-rx-operators.cjs.prod.js +0 -39
- package/rx/operators/dist/trpc-client-rx-operators.esm.js +0 -33
- package/rx/operators/index.d.ts +0 -1
- package/rx/operators/index.js +0 -1
- package/src/links/httpUtils.ts +0 -94
- package/src/links/internals/transformOperationResult.ts +0 -25
- package/src/links/transformerLink.ts +0 -70
- package/src/rx/index.ts +0 -2
- package/src/rx/observable.test.ts +0 -83
- package/src/rx/observable.ts +0 -70
- package/src/rx/operators/index.ts +0 -3
- package/src/rx/operators/map.test.ts +0 -92
- package/src/rx/operators/map.ts +0 -25
- package/src/rx/operators/share.test.ts +0 -60
- package/src/rx/operators/share.ts +0 -67
- package/src/rx/operators/tap.ts +0 -26
- package/src/rx/types.ts +0 -69
- package/src/rx/util/identity.ts +0 -3
- package/src/rx/util/observableToPromise.ts +0 -49
- package/src/rx/util/pipe.ts +0 -22
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { AnyRouter } from '@trpc/server';
|
|
2
2
|
import { TRPCClientError } from '..';
|
|
3
|
-
import { Operation,
|
|
3
|
+
import { Operation, OperationResultEnvelope, TRPCLink } from './types';
|
|
4
4
|
declare type ConsoleEsque = {
|
|
5
5
|
log: (...args: any[]) => void;
|
|
6
6
|
error: (...args: any[]) => void;
|
|
@@ -9,7 +9,7 @@ declare type EnableFnOptions<TRouter extends AnyRouter> = (Operation & {
|
|
|
9
9
|
direction: 'up';
|
|
10
10
|
}) | {
|
|
11
11
|
direction: 'down';
|
|
12
|
-
result:
|
|
12
|
+
result: OperationResultEnvelope<unknown> | TRPCClientError<TRouter>;
|
|
13
13
|
};
|
|
14
14
|
declare type EnabledFn<TRouter extends AnyRouter> = (opts: EnableFnOptions<TRouter>) => boolean;
|
|
15
15
|
declare type LogFnOptions<TRouter extends AnyRouter> = Operation & ({
|
|
@@ -22,7 +22,7 @@ declare type LogFnOptions<TRouter extends AnyRouter> = Operation & ({
|
|
|
22
22
|
* Request result
|
|
23
23
|
*/
|
|
24
24
|
direction: 'down';
|
|
25
|
-
result:
|
|
25
|
+
result: OperationResultEnvelope<unknown> | TRPCClientError<TRouter>;
|
|
26
26
|
elapsedMs: number;
|
|
27
27
|
});
|
|
28
28
|
declare type LogFn<TRouter extends AnyRouter> = (opts: LogFnOptions<TRouter>) => void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"loggerLink.d.ts","sourceRoot":"","sources":["
|
|
1
|
+
{"version":3,"file":"loggerLink.d.ts","sourceRoot":"","sources":["../../../../packages/client/src/links/loggerLink.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAEzC,OAAO,EAAE,eAAe,EAAE,MAAM,IAAI,CAAC;AACrC,OAAO,EAAE,SAAS,EAAE,uBAAuB,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAEvE,aAAK,YAAY,GAAG;IAClB,GAAG,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI,CAAC;IAC9B,KAAK,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI,CAAC;CACjC,CAAC;AAEF,aAAK,eAAe,CAAC,OAAO,SAAS,SAAS,IAC1C,CAAC,SAAS,GAAG;IACX,SAAS,EAAE,IAAI,CAAC;CACjB,CAAC,GACF;IACE,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,uBAAuB,CAAC,OAAO,CAAC,GAAG,eAAe,CAAC,OAAO,CAAC,CAAC;CACrE,CAAC;AACN,aAAK,SAAS,CAAC,OAAO,SAAS,SAAS,IAAI,CAC1C,IAAI,EAAE,eAAe,CAAC,OAAO,CAAC,KAC3B,OAAO,CAAC;AAEb,aAAK,YAAY,CAAC,OAAO,SAAS,SAAS,IAAI,SAAS,GACtD,CACI;IACE;;OAEG;IACH,SAAS,EAAE,IAAI,CAAC;CACjB,GACD;IACE;;OAEG;IACH,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,uBAAuB,CAAC,OAAO,CAAC,GAAG,eAAe,CAAC,OAAO,CAAC,CAAC;IACpE,SAAS,EAAE,MAAM,CAAC;CACnB,CACJ,CAAC;AACJ,aAAK,KAAK,CAAC,OAAO,SAAS,SAAS,IAAI,CAAC,IAAI,EAAE,YAAY,CAAC,OAAO,CAAC,KAAK,IAAI,CAAC;AAO9E,aAAK,iBAAiB,CAAC,OAAO,SAAS,SAAS,IAAI;IAClD,MAAM,CAAC,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;IACxB,OAAO,CAAC,EAAE,SAAS,CAAC,OAAO,CAAC,CAAC;IAC7B;;OAEG;IACH,OAAO,CAAC,EAAE,YAAY,CAAC;CACxB,CAAC;AA+CF,wBAAgB,UAAU,CAAC,OAAO,SAAS,SAAS,GAAG,SAAS,EAC9D,IAAI,GAAE,iBAAiB,CAAC,OAAO,CAAM,GACpC,QAAQ,CAAC,OAAO,CAAC,CA2CnB"}
|
package/dist/links/loggerLink.js
CHANGED
|
@@ -2,107 +2,101 @@
|
|
|
2
2
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
|
-
var
|
|
6
|
-
var _slicedToArray = require('@babel/runtime/helpers/slicedToArray');
|
|
7
|
-
var observable = require('../observable-85669100.js');
|
|
8
|
-
var tap = require('../tap-799a2d33.js');
|
|
5
|
+
var observable = require('@trpc/server/observable');
|
|
9
6
|
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
7
|
+
const palette = {
|
|
8
|
+
query: [
|
|
9
|
+
'72e3ff',
|
|
10
|
+
'3fb0d8'
|
|
11
|
+
],
|
|
12
|
+
mutation: [
|
|
13
|
+
'c5a3fc',
|
|
14
|
+
'904dfc'
|
|
15
|
+
],
|
|
16
|
+
subscription: [
|
|
17
|
+
'ff49e1',
|
|
18
|
+
'd83fbe'
|
|
19
|
+
]
|
|
22
20
|
};
|
|
23
|
-
|
|
24
21
|
// maybe this should be moved to it's own package
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
c[fn].apply(null, [parts.join(' ')].concat(args));
|
|
59
|
-
};
|
|
60
|
-
};
|
|
61
|
-
|
|
62
|
-
function loggerLink() {
|
|
63
|
-
var opts = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
64
|
-
var _opts$enabled = opts.enabled,
|
|
65
|
-
enabled = _opts$enabled === void 0 ? function () {
|
|
66
|
-
return true;
|
|
67
|
-
} : _opts$enabled;
|
|
68
|
-
var _opts$logger = opts.logger,
|
|
69
|
-
logger = _opts$logger === void 0 ? defaultLogger(opts.console) : _opts$logger;
|
|
70
|
-
return function () {
|
|
71
|
-
return function (_ref) {
|
|
72
|
-
var op = _ref.op,
|
|
73
|
-
next = _ref.next;
|
|
74
|
-
return observable.observable(function (observer) {
|
|
75
|
-
// ->
|
|
76
|
-
enabled(_objectSpread(_objectSpread({}, op), {}, {
|
|
77
|
-
direction: 'up'
|
|
78
|
-
})) && logger(_objectSpread(_objectSpread({}, op), {}, {
|
|
79
|
-
direction: 'up'
|
|
80
|
-
}));
|
|
81
|
-
var requestStartTime = Date.now();
|
|
82
|
-
|
|
83
|
-
function logResult(result) {
|
|
84
|
-
var elapsedMs = Date.now() - requestStartTime;
|
|
85
|
-
enabled(_objectSpread(_objectSpread({}, op), {}, {
|
|
86
|
-
direction: 'down',
|
|
87
|
-
result: result
|
|
88
|
-
})) && logger(_objectSpread(_objectSpread({}, op), {}, {
|
|
89
|
-
direction: 'down',
|
|
90
|
-
elapsedMs: elapsedMs,
|
|
91
|
-
result: result
|
|
92
|
-
}));
|
|
22
|
+
const defaultLogger = (c = console)=>(props)=>{
|
|
23
|
+
const { direction , input , type , path , context , id } = props;
|
|
24
|
+
const [light, dark] = palette[type];
|
|
25
|
+
const css = `
|
|
26
|
+
background-color: #${direction === 'up' ? light : dark};
|
|
27
|
+
color: ${direction === 'up' ? 'black' : 'white'};
|
|
28
|
+
padding: 2px;
|
|
29
|
+
`;
|
|
30
|
+
const parts = [
|
|
31
|
+
'%c',
|
|
32
|
+
direction === 'up' ? '>>' : '<<',
|
|
33
|
+
type,
|
|
34
|
+
`#${id}`,
|
|
35
|
+
`%c${path}%c`,
|
|
36
|
+
'%O',
|
|
37
|
+
];
|
|
38
|
+
const args = [
|
|
39
|
+
css,
|
|
40
|
+
`${css}; font-weight: bold;`,
|
|
41
|
+
`${css}; font-weight: normal;`,
|
|
42
|
+
];
|
|
43
|
+
if (props.direction === 'up') {
|
|
44
|
+
args.push({
|
|
45
|
+
input,
|
|
46
|
+
context: context
|
|
47
|
+
});
|
|
48
|
+
} else {
|
|
49
|
+
args.push({
|
|
50
|
+
input,
|
|
51
|
+
result: props.result,
|
|
52
|
+
elapsedMs: props.elapsedMs,
|
|
53
|
+
context
|
|
54
|
+
});
|
|
93
55
|
}
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
56
|
+
const fn = props.direction === 'down' && props.result && (props.result instanceof Error || 'error' in props.result.result) ? 'error' : 'log';
|
|
57
|
+
c[fn].apply(null, [
|
|
58
|
+
parts.join(' ')
|
|
59
|
+
].concat(args));
|
|
60
|
+
};
|
|
61
|
+
function loggerLink(opts = {}) {
|
|
62
|
+
const { enabled =()=>true } = opts;
|
|
63
|
+
const { logger =defaultLogger(opts.console) } = opts;
|
|
64
|
+
return ()=>{
|
|
65
|
+
return ({ op , next })=>{
|
|
66
|
+
return observable.observable((observer)=>{
|
|
67
|
+
// ->
|
|
68
|
+
enabled({
|
|
69
|
+
...op,
|
|
70
|
+
direction: 'up'
|
|
71
|
+
}) && logger({
|
|
72
|
+
...op,
|
|
73
|
+
direction: 'up'
|
|
74
|
+
});
|
|
75
|
+
const requestStartTime = Date.now();
|
|
76
|
+
function logResult(result) {
|
|
77
|
+
const elapsedMs = Date.now() - requestStartTime;
|
|
78
|
+
enabled({
|
|
79
|
+
...op,
|
|
80
|
+
direction: 'down',
|
|
81
|
+
result
|
|
82
|
+
}) && logger({
|
|
83
|
+
...op,
|
|
84
|
+
direction: 'down',
|
|
85
|
+
elapsedMs,
|
|
86
|
+
result
|
|
87
|
+
});
|
|
88
|
+
}
|
|
89
|
+
return next(op).pipe(observable.tap({
|
|
90
|
+
next (result) {
|
|
91
|
+
logResult(result);
|
|
92
|
+
},
|
|
93
|
+
error (result) {
|
|
94
|
+
logResult(result);
|
|
95
|
+
}
|
|
96
|
+
})).subscribe(observer);
|
|
97
|
+
});
|
|
98
|
+
};
|
|
104
99
|
};
|
|
105
|
-
};
|
|
106
100
|
}
|
|
107
101
|
|
|
108
102
|
exports.loggerLink = loggerLink;
|
|
@@ -1,99 +1,98 @@
|
|
|
1
|
-
import
|
|
2
|
-
import _slicedToArray from '@babel/runtime/helpers/slicedToArray';
|
|
3
|
-
import { o as observable } from '../observable-7e66cb56.mjs';
|
|
4
|
-
import { t as tap } from '../tap-538fa07f.mjs';
|
|
1
|
+
import { observable, tap } from '@trpc/server/observable';
|
|
5
2
|
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
3
|
+
const palette = {
|
|
4
|
+
query: [
|
|
5
|
+
'72e3ff',
|
|
6
|
+
'3fb0d8'
|
|
7
|
+
],
|
|
8
|
+
mutation: [
|
|
9
|
+
'c5a3fc',
|
|
10
|
+
'904dfc'
|
|
11
|
+
],
|
|
12
|
+
subscription: [
|
|
13
|
+
'ff49e1',
|
|
14
|
+
'd83fbe'
|
|
15
|
+
]
|
|
13
16
|
};
|
|
14
|
-
|
|
15
17
|
// maybe this should be moved to it's own package
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
c[fn].apply(null, [parts.join(' ')].concat(args));
|
|
50
|
-
};
|
|
51
|
-
};
|
|
52
|
-
|
|
53
|
-
function loggerLink() {
|
|
54
|
-
var opts = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
55
|
-
var _opts$enabled = opts.enabled,
|
|
56
|
-
enabled = _opts$enabled === void 0 ? function () {
|
|
57
|
-
return true;
|
|
58
|
-
} : _opts$enabled;
|
|
59
|
-
var _opts$logger = opts.logger,
|
|
60
|
-
logger = _opts$logger === void 0 ? defaultLogger(opts.console) : _opts$logger;
|
|
61
|
-
return function () {
|
|
62
|
-
return function (_ref) {
|
|
63
|
-
var op = _ref.op,
|
|
64
|
-
next = _ref.next;
|
|
65
|
-
return observable(function (observer) {
|
|
66
|
-
// ->
|
|
67
|
-
enabled(_objectSpread(_objectSpread({}, op), {}, {
|
|
68
|
-
direction: 'up'
|
|
69
|
-
})) && logger(_objectSpread(_objectSpread({}, op), {}, {
|
|
70
|
-
direction: 'up'
|
|
71
|
-
}));
|
|
72
|
-
var requestStartTime = Date.now();
|
|
73
|
-
|
|
74
|
-
function logResult(result) {
|
|
75
|
-
var elapsedMs = Date.now() - requestStartTime;
|
|
76
|
-
enabled(_objectSpread(_objectSpread({}, op), {}, {
|
|
77
|
-
direction: 'down',
|
|
78
|
-
result: result
|
|
79
|
-
})) && logger(_objectSpread(_objectSpread({}, op), {}, {
|
|
80
|
-
direction: 'down',
|
|
81
|
-
elapsedMs: elapsedMs,
|
|
82
|
-
result: result
|
|
83
|
-
}));
|
|
18
|
+
const defaultLogger = (c = console)=>(props)=>{
|
|
19
|
+
const { direction , input , type , path , context , id } = props;
|
|
20
|
+
const [light, dark] = palette[type];
|
|
21
|
+
const css = `
|
|
22
|
+
background-color: #${direction === 'up' ? light : dark};
|
|
23
|
+
color: ${direction === 'up' ? 'black' : 'white'};
|
|
24
|
+
padding: 2px;
|
|
25
|
+
`;
|
|
26
|
+
const parts = [
|
|
27
|
+
'%c',
|
|
28
|
+
direction === 'up' ? '>>' : '<<',
|
|
29
|
+
type,
|
|
30
|
+
`#${id}`,
|
|
31
|
+
`%c${path}%c`,
|
|
32
|
+
'%O',
|
|
33
|
+
];
|
|
34
|
+
const args = [
|
|
35
|
+
css,
|
|
36
|
+
`${css}; font-weight: bold;`,
|
|
37
|
+
`${css}; font-weight: normal;`,
|
|
38
|
+
];
|
|
39
|
+
if (props.direction === 'up') {
|
|
40
|
+
args.push({
|
|
41
|
+
input,
|
|
42
|
+
context: context
|
|
43
|
+
});
|
|
44
|
+
} else {
|
|
45
|
+
args.push({
|
|
46
|
+
input,
|
|
47
|
+
result: props.result,
|
|
48
|
+
elapsedMs: props.elapsedMs,
|
|
49
|
+
context
|
|
50
|
+
});
|
|
84
51
|
}
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
52
|
+
const fn = props.direction === 'down' && props.result && (props.result instanceof Error || 'error' in props.result.result) ? 'error' : 'log';
|
|
53
|
+
c[fn].apply(null, [
|
|
54
|
+
parts.join(' ')
|
|
55
|
+
].concat(args));
|
|
56
|
+
};
|
|
57
|
+
function loggerLink(opts = {}) {
|
|
58
|
+
const { enabled =()=>true } = opts;
|
|
59
|
+
const { logger =defaultLogger(opts.console) } = opts;
|
|
60
|
+
return ()=>{
|
|
61
|
+
return ({ op , next })=>{
|
|
62
|
+
return observable((observer)=>{
|
|
63
|
+
// ->
|
|
64
|
+
enabled({
|
|
65
|
+
...op,
|
|
66
|
+
direction: 'up'
|
|
67
|
+
}) && logger({
|
|
68
|
+
...op,
|
|
69
|
+
direction: 'up'
|
|
70
|
+
});
|
|
71
|
+
const requestStartTime = Date.now();
|
|
72
|
+
function logResult(result) {
|
|
73
|
+
const elapsedMs = Date.now() - requestStartTime;
|
|
74
|
+
enabled({
|
|
75
|
+
...op,
|
|
76
|
+
direction: 'down',
|
|
77
|
+
result
|
|
78
|
+
}) && logger({
|
|
79
|
+
...op,
|
|
80
|
+
direction: 'down',
|
|
81
|
+
elapsedMs,
|
|
82
|
+
result
|
|
83
|
+
});
|
|
84
|
+
}
|
|
85
|
+
return next(op).pipe(tap({
|
|
86
|
+
next (result) {
|
|
87
|
+
logResult(result);
|
|
88
|
+
},
|
|
89
|
+
error (result) {
|
|
90
|
+
logResult(result);
|
|
91
|
+
}
|
|
92
|
+
})).subscribe(observer);
|
|
93
|
+
});
|
|
94
|
+
};
|
|
95
95
|
};
|
|
96
|
-
};
|
|
97
96
|
}
|
|
98
97
|
|
|
99
98
|
export { loggerLink };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"retryLink.d.ts","sourceRoot":"","sources":["
|
|
1
|
+
{"version":3,"file":"retryLink.d.ts","sourceRoot":"","sources":["../../../../packages/client/src/links/retryLink.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAEzC,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAEnC,wBAAgB,SAAS,CAAC,OAAO,SAAS,SAAS,GAAG,SAAS,EAAE,IAAI,EAAE;IACrE,QAAQ,EAAE,MAAM,CAAC;CAClB,GAAG,QAAQ,CAAC,OAAO,CAAC,CAiDpB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"splitLink.d.ts","sourceRoot":"","sources":["
|
|
1
|
+
{"version":3,"file":"splitLink.d.ts","sourceRoot":"","sources":["../../../../packages/client/src/links/splitLink.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAGzC,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAK9C,wBAAgB,SAAS,CAAC,OAAO,SAAS,SAAS,GAAG,SAAS,EAAE,IAAI,EAAE;IACrE,SAAS,EAAE,CAAC,EAAE,EAAE,SAAS,KAAK,OAAO,CAAC;IACtC;;OAEG;IACH,IAAI,EAAE,QAAQ,CAAC,OAAO,CAAC,GAAG,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;IAC9C;;OAEG;IACH,KAAK,EAAE,QAAQ,CAAC,OAAO,CAAC,GAAG,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;CAChD,GAAG,QAAQ,CAAC,OAAO,CAAC,CAWpB"}
|
package/dist/links/splitLink.js
CHANGED
|
@@ -2,31 +2,9 @@
|
|
|
2
2
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
|
-
|
|
6
|
-
var
|
|
5
|
+
require('@trpc/server/observable');
|
|
6
|
+
var links_splitLink = require('../splitLink-695ae288.js');
|
|
7
7
|
|
|
8
|
-
function asArray(value) {
|
|
9
|
-
return Array.isArray(value) ? value : [value];
|
|
10
|
-
}
|
|
11
8
|
|
|
12
|
-
function splitLink(opts) {
|
|
13
|
-
return function (rt) {
|
|
14
|
-
var yes = asArray(opts.true).map(function (link) {
|
|
15
|
-
return link(rt);
|
|
16
|
-
});
|
|
17
|
-
var no = asArray(opts.false).map(function (link) {
|
|
18
|
-
return link(rt);
|
|
19
|
-
});
|
|
20
|
-
return function (props) {
|
|
21
|
-
return observable.observable(function (observer) {
|
|
22
|
-
var links = opts.condition(props.op) ? yes : no;
|
|
23
|
-
return createChain.createChain({
|
|
24
|
-
op: props.op,
|
|
25
|
-
links: links
|
|
26
|
-
}).subscribe(observer);
|
|
27
|
-
});
|
|
28
|
-
};
|
|
29
|
-
};
|
|
30
|
-
}
|
|
31
9
|
|
|
32
|
-
exports.splitLink = splitLink;
|
|
10
|
+
exports.splitLink = links_splitLink.splitLink;
|
package/dist/links/splitLink.mjs
CHANGED
|
@@ -1,28 +1,2 @@
|
|
|
1
|
-
import
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
function asArray(value) {
|
|
5
|
-
return Array.isArray(value) ? value : [value];
|
|
6
|
-
}
|
|
7
|
-
|
|
8
|
-
function splitLink(opts) {
|
|
9
|
-
return function (rt) {
|
|
10
|
-
var yes = asArray(opts.true).map(function (link) {
|
|
11
|
-
return link(rt);
|
|
12
|
-
});
|
|
13
|
-
var no = asArray(opts.false).map(function (link) {
|
|
14
|
-
return link(rt);
|
|
15
|
-
});
|
|
16
|
-
return function (props) {
|
|
17
|
-
return observable(function (observer) {
|
|
18
|
-
var links = opts.condition(props.op) ? yes : no;
|
|
19
|
-
return createChain({
|
|
20
|
-
op: props.op,
|
|
21
|
-
links: links
|
|
22
|
-
}).subscribe(observer);
|
|
23
|
-
});
|
|
24
|
-
};
|
|
25
|
-
};
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
export { splitLink };
|
|
1
|
+
import '@trpc/server/observable';
|
|
2
|
+
export { s as splitLink } from '../splitLink-ad44a55d.mjs';
|
package/dist/links/types.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { AnyRouter,
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
1
|
+
import { AnyRouter, DataTransformer } from '@trpc/server';
|
|
2
|
+
import { Observable, Observer } from '@trpc/server/observable';
|
|
3
|
+
import { TRPCResultMessage, TRPCSuccessResponse } from '@trpc/server/rpc';
|
|
4
4
|
import { TRPCClientError } from '../TRPCClientError';
|
|
5
5
|
export declare type CancelFn = () => void;
|
|
6
6
|
export declare type PromiseAndCancel<TValue> = {
|
|
@@ -13,28 +13,29 @@ export declare type Operation<TInput = unknown> = {
|
|
|
13
13
|
type: 'query' | 'mutation' | 'subscription';
|
|
14
14
|
input: TInput;
|
|
15
15
|
path: string;
|
|
16
|
-
context
|
|
16
|
+
context: OperationContext;
|
|
17
17
|
};
|
|
18
|
-
export declare type HTTPHeaders =
|
|
18
|
+
export declare type HTTPHeaders = Record<string, string | string[]>;
|
|
19
19
|
/**
|
|
20
20
|
* The default `fetch` implementation has an overloaded signature. By convention this library
|
|
21
21
|
* only uses the overload taking a string and options object.
|
|
22
22
|
*/
|
|
23
23
|
export declare type TRPCFetch = (url: string, options?: RequestInit) => Promise<Response>;
|
|
24
|
-
export interface
|
|
25
|
-
headers: () => HTTPHeaders | Promise<HTTPHeaders>;
|
|
24
|
+
export interface TRPCClientRuntime {
|
|
26
25
|
fetch: TRPCFetch;
|
|
27
26
|
AbortController?: typeof AbortController;
|
|
27
|
+
headers: () => HTTPHeaders | Promise<HTTPHeaders>;
|
|
28
|
+
transformer: DataTransformer;
|
|
28
29
|
}
|
|
29
|
-
export interface
|
|
30
|
-
|
|
30
|
+
export interface OperationResultEnvelope<TOutput> {
|
|
31
|
+
result: TRPCSuccessResponse<TOutput>['result'] | TRPCResultMessage<TOutput>['result'];
|
|
31
32
|
context?: OperationContext;
|
|
32
33
|
}
|
|
33
|
-
export declare type OperationResultObservable<TRouter extends AnyRouter, TOutput> = Observable<
|
|
34
|
-
export declare type OperationResultObserver<TRouter extends AnyRouter, TOutput> = Observer<
|
|
34
|
+
export declare type OperationResultObservable<TRouter extends AnyRouter, TOutput> = Observable<OperationResultEnvelope<TOutput>, TRPCClientError<TRouter>>;
|
|
35
|
+
export declare type OperationResultObserver<TRouter extends AnyRouter, TOutput> = Observer<OperationResultEnvelope<TOutput>, TRPCClientError<TRouter>>;
|
|
35
36
|
export declare type OperationLink<TRouter extends AnyRouter, TInput = unknown, TOutput = unknown> = (opts: {
|
|
36
37
|
op: Operation<TInput>;
|
|
37
38
|
next: (op: Operation<TInput>) => OperationResultObservable<TRouter, TOutput>;
|
|
38
39
|
}) => OperationResultObservable<TRouter, TOutput>;
|
|
39
|
-
export declare type TRPCLink<TRouter extends AnyRouter> = (opts:
|
|
40
|
+
export declare type TRPCLink<TRouter extends AnyRouter> = (opts: TRPCClientRuntime) => OperationLink<TRouter>;
|
|
40
41
|
//# sourceMappingURL=types.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../packages/client/src/links/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC1D,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAC/D,OAAO,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAC1E,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAErD,oBAAY,QAAQ,GAAG,MAAM,IAAI,CAAC;AAElC,oBAAY,gBAAgB,CAAC,MAAM,IAAI;IACrC,OAAO,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;IACzB,MAAM,EAAE,QAAQ,CAAC;CAClB,CAAC;AAEF,oBAAY,gBAAgB,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AACvD,oBAAY,SAAS,CAAC,MAAM,GAAG,OAAO,IAAI;IACxC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,OAAO,GAAG,UAAU,GAAG,cAAc,CAAC;IAC5C,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,gBAAgB,CAAC;CAC3B,CAAC;AAEF,oBAAY,WAAW,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC,CAAC;AAE5D;;;GAGG;AACH,oBAAY,SAAS,GAAG,CACtB,GAAG,EAAE,MAAM,EACX,OAAO,CAAC,EAAE,WAAW,KAClB,OAAO,CAAC,QAAQ,CAAC,CAAC;AAEvB,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE,SAAS,CAAC;IACjB,eAAe,CAAC,EAAE,OAAO,eAAe,CAAC;IACzC,OAAO,EAAE,MAAM,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;IAClD,WAAW,EAAE,eAAe,CAAC;CAC9B;AAED,MAAM,WAAW,uBAAuB,CAAC,OAAO;IAC9C,MAAM,EACF,mBAAmB,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,GACtC,iBAAiB,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,CAAC;IACzC,OAAO,CAAC,EAAE,gBAAgB,CAAC;CAC5B;AAED,oBAAY,yBAAyB,CACnC,OAAO,SAAS,SAAS,EACzB,OAAO,IACL,UAAU,CAAC,uBAAuB,CAAC,OAAO,CAAC,EAAE,eAAe,CAAC,OAAO,CAAC,CAAC,CAAC;AAE3E,oBAAY,uBAAuB,CACjC,OAAO,SAAS,SAAS,EACzB,OAAO,IACL,QAAQ,CAAC,uBAAuB,CAAC,OAAO,CAAC,EAAE,eAAe,CAAC,OAAO,CAAC,CAAC,CAAC;AAEzE,oBAAY,aAAa,CACvB,OAAO,SAAS,SAAS,EACzB,MAAM,GAAG,OAAO,EAChB,OAAO,GAAG,OAAO,IACf,CAAC,IAAI,EAAE;IACT,EAAE,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC;IACtB,IAAI,EAAE,CAAC,EAAE,EAAE,SAAS,CAAC,MAAM,CAAC,KAAK,yBAAyB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;CAC9E,KAAK,yBAAyB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;AAElD,oBAAY,QAAQ,CAAC,OAAO,SAAS,SAAS,IAAI,CAChD,IAAI,EAAE,iBAAiB,KACpB,aAAa,CAAC,OAAO,CAAC,CAAC"}
|
package/dist/links/wsLink.d.ts
CHANGED
|
@@ -1,15 +1,21 @@
|
|
|
1
|
-
import { AnyRouter } from '@trpc/server';
|
|
1
|
+
import { AnyRouter, inferRouterError } from '@trpc/server';
|
|
2
|
+
import { Observer, UnsubscribeFn } from '@trpc/server/observable';
|
|
3
|
+
import { TRPCResponseMessage } from '@trpc/server/rpc';
|
|
4
|
+
import { TRPCClientError } from '../TRPCClientError';
|
|
2
5
|
import { retryDelay } from '../internals/retryDelay';
|
|
3
|
-
import {
|
|
4
|
-
|
|
6
|
+
import { Operation, TRPCLink } from './types';
|
|
7
|
+
declare type WSCallbackResult<TRouter extends AnyRouter, TOutput> = TRPCResponseMessage<TOutput, inferRouterError<TRouter>>;
|
|
8
|
+
declare type WSCallbackObserver<TRouter extends AnyRouter, TOutput> = Observer<WSCallbackResult<TRouter, TOutput>, TRPCClientError<TRouter>>;
|
|
5
9
|
export interface WebSocketClientOptions {
|
|
6
10
|
url: string;
|
|
7
|
-
WebSocket?: WebSocket;
|
|
11
|
+
WebSocket?: typeof WebSocket;
|
|
8
12
|
retryDelayMs?: typeof retryDelay;
|
|
13
|
+
onOpen?: () => void;
|
|
14
|
+
onClose?: () => void;
|
|
9
15
|
}
|
|
10
16
|
export declare function createWSClient(opts: WebSocketClientOptions): {
|
|
11
17
|
close: () => void;
|
|
12
|
-
request: (op: Operation, callbacks:
|
|
18
|
+
request: (op: Operation, callbacks: WSCallbackObserver<AnyRouter, unknown>) => UnsubscribeFn;
|
|
13
19
|
getConnection(): WebSocket;
|
|
14
20
|
};
|
|
15
21
|
export declare type TRPCWebSocketClient = ReturnType<typeof createWSClient>;
|
|
@@ -17,4 +23,5 @@ export interface WebSocketLinkOptions {
|
|
|
17
23
|
client: TRPCWebSocketClient;
|
|
18
24
|
}
|
|
19
25
|
export declare function wsLink<TRouter extends AnyRouter>(opts: WebSocketLinkOptions): TRPCLink<TRouter>;
|
|
26
|
+
export {};
|
|
20
27
|
//# sourceMappingURL=wsLink.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wsLink.d.ts","sourceRoot":"","sources":["
|
|
1
|
+
{"version":3,"file":"wsLink.d.ts","sourceRoot":"","sources":["../../../../packages/client/src/links/wsLink.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAiB,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAC1E,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAc,MAAM,yBAAyB,CAAC;AAC9E,OAAO,EAKL,mBAAmB,EACpB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAErD,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAE9C,aAAK,gBAAgB,CAAC,OAAO,SAAS,SAAS,EAAE,OAAO,IAAI,mBAAmB,CAC7E,OAAO,EACP,gBAAgB,CAAC,OAAO,CAAC,CAC1B,CAAC;AAEF,aAAK,kBAAkB,CAAC,OAAO,SAAS,SAAS,EAAE,OAAO,IAAI,QAAQ,CACpE,gBAAgB,CAAC,OAAO,EAAE,OAAO,CAAC,EAClC,eAAe,CAAC,OAAO,CAAC,CACzB,CAAC;AAEF,MAAM,WAAW,sBAAsB;IACrC,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,CAAC,EAAE,OAAO,SAAS,CAAC;IAC7B,YAAY,CAAC,EAAE,OAAO,UAAU,CAAC;IACjC,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;CACtB;AAED,wBAAgB,cAAc,CAAC,IAAI,EAAE,sBAAsB;;kBAuMpC,SAAS,wDAA0B,aAAa;;EAiDtE;AACD,oBAAY,mBAAmB,GAAG,UAAU,CAAC,OAAO,cAAc,CAAC,CAAC;AAEpE,MAAM,WAAW,oBAAoB;IACnC,MAAM,EAAE,mBAAmB,CAAC;CAC7B;AAiBD,wBAAgB,MAAM,CAAC,OAAO,SAAS,SAAS,EAC9C,IAAI,EAAE,oBAAoB,GACzB,QAAQ,CAAC,OAAO,CAAC,CA4DnB"}
|