@replit/river 0.9.3 → 0.10.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/dist/{router/builder.d.ts → builder-3c4485f0.d.ts} +82 -28
- package/dist/chunk-7WJ6YLE5.js +683 -0
- package/dist/chunk-AJQU4AZG.js +284 -0
- package/dist/chunk-ORAG7IAU.js +0 -0
- package/dist/chunk-PC65ZFWJ.js +29 -0
- package/dist/chunk-R6H2BIMC.js +49 -0
- package/dist/chunk-RGMHF6PF.js +65 -0
- package/dist/chunk-SLUSVGQH.js +30 -0
- package/dist/chunk-UU2Z7LDR.js +113 -0
- package/dist/chunk-WVT5QXMZ.js +20 -0
- package/dist/chunk-ZE4MX7DF.js +75 -0
- package/dist/codec/index.cjs +94 -0
- package/dist/codec/index.d.cts +15 -0
- package/dist/codec/index.d.ts +15 -4
- package/dist/codec/index.js +10 -2
- package/dist/connection-8e19874c.d.ts +11 -0
- package/dist/connection-f7688cc1.d.ts +11 -0
- package/dist/logging/index.cjs +56 -0
- package/dist/logging/index.d.cts +28 -0
- package/dist/logging/index.d.ts +6 -6
- package/dist/logging/index.js +9 -40
- package/dist/router/index.cjs +770 -0
- package/dist/router/index.d.cts +114 -0
- package/dist/router/index.d.ts +114 -10
- package/dist/router/index.js +24 -4
- package/dist/transport/impls/ws/client.cjs +505 -0
- package/dist/transport/impls/ws/client.d.cts +42 -0
- package/dist/transport/impls/ws/client.d.ts +9 -12
- package/dist/transport/impls/ws/client.js +10 -101
- package/dist/transport/impls/ws/server.cjs +457 -0
- package/dist/transport/impls/ws/server.d.cts +21 -0
- package/dist/transport/impls/ws/server.d.ts +14 -10
- package/dist/transport/impls/ws/server.js +11 -47
- package/dist/transport/index.cjs +362 -0
- package/dist/transport/{transport.d.ts → index.d.cts} +119 -7
- package/dist/transport/index.d.ts +273 -13
- package/dist/transport/index.js +20 -23
- package/dist/{codec/types.d.ts → types-3e5768ec.d.ts} +3 -2
- package/dist/util/testHelpers.cjs +731 -0
- package/dist/util/testHelpers.d.cts +79 -0
- package/dist/util/testHelpers.d.ts +34 -108
- package/dist/util/testHelpers.js +137 -320
- package/package.json +52 -23
- package/dist/__tests__/bandwidth.bench.d.ts +0 -2
- package/dist/__tests__/bandwidth.bench.d.ts.map +0 -1
- package/dist/__tests__/bandwidth.bench.js +0 -90
- package/dist/__tests__/e2e.test.d.ts +0 -2
- package/dist/__tests__/e2e.test.d.ts.map +0 -1
- package/dist/__tests__/e2e.test.js +0 -316
- package/dist/__tests__/fixtures/cleanup.d.ts +0 -12
- package/dist/__tests__/fixtures/cleanup.d.ts.map +0 -1
- package/dist/__tests__/fixtures/cleanup.js +0 -39
- package/dist/__tests__/fixtures/largePayload.json +0 -33
- package/dist/__tests__/fixtures/observable.d.ts +0 -26
- package/dist/__tests__/fixtures/observable.d.ts.map +0 -1
- package/dist/__tests__/fixtures/observable.js +0 -38
- package/dist/__tests__/fixtures/observable.test.d.ts +0 -2
- package/dist/__tests__/fixtures/observable.test.d.ts.map +0 -1
- package/dist/__tests__/fixtures/observable.test.js +0 -39
- package/dist/__tests__/fixtures/services.d.ts +0 -288
- package/dist/__tests__/fixtures/services.d.ts.map +0 -1
- package/dist/__tests__/fixtures/services.js +0 -224
- package/dist/__tests__/handler.test.d.ts +0 -2
- package/dist/__tests__/handler.test.d.ts.map +0 -1
- package/dist/__tests__/handler.test.js +0 -121
- package/dist/__tests__/invariants.test.d.ts +0 -2
- package/dist/__tests__/invariants.test.d.ts.map +0 -1
- package/dist/__tests__/invariants.test.js +0 -138
- package/dist/__tests__/serialize.test.d.ts +0 -2
- package/dist/__tests__/serialize.test.d.ts.map +0 -1
- package/dist/__tests__/serialize.test.js +0 -208
- package/dist/__tests__/typescript-stress.test.d.ts +0 -1583
- package/dist/__tests__/typescript-stress.test.d.ts.map +0 -1
- package/dist/__tests__/typescript-stress.test.js +0 -123
- package/dist/codec/binary.d.ts +0 -7
- package/dist/codec/binary.d.ts.map +0 -1
- package/dist/codec/binary.js +0 -20
- package/dist/codec/codec.test.d.ts +0 -5
- package/dist/codec/codec.test.d.ts.map +0 -1
- package/dist/codec/codec.test.js +0 -41
- package/dist/codec/index.d.ts.map +0 -1
- package/dist/codec/json.d.ts +0 -7
- package/dist/codec/json.d.ts.map +0 -1
- package/dist/codec/json.js +0 -51
- package/dist/codec/types.d.ts.map +0 -1
- package/dist/codec/types.js +0 -1
- package/dist/logging/index.d.ts.map +0 -1
- package/dist/router/builder.d.ts.map +0 -1
- package/dist/router/builder.js +0 -91
- package/dist/router/client.d.ts +0 -68
- package/dist/router/client.d.ts.map +0 -1
- package/dist/router/client.js +0 -159
- package/dist/router/context.d.ts +0 -30
- package/dist/router/context.d.ts.map +0 -1
- package/dist/router/context.js +0 -1
- package/dist/router/index.d.ts.map +0 -1
- package/dist/router/result.d.ts +0 -25
- package/dist/router/result.d.ts.map +0 -1
- package/dist/router/result.js +0 -18
- package/dist/router/server.d.ts +0 -39
- package/dist/router/server.d.ts.map +0 -1
- package/dist/router/server.js +0 -217
- package/dist/transport/events.d.ts +0 -19
- package/dist/transport/events.d.ts.map +0 -1
- package/dist/transport/events.js +0 -26
- package/dist/transport/impls/stdio/stdio.d.ts +0 -33
- package/dist/transport/impls/stdio/stdio.d.ts.map +0 -1
- package/dist/transport/impls/stdio/stdio.js +0 -75
- package/dist/transport/impls/stdio/stdio.test.d.ts +0 -2
- package/dist/transport/impls/stdio/stdio.test.d.ts.map +0 -1
- package/dist/transport/impls/stdio/stdio.test.js +0 -25
- package/dist/transport/impls/ws/client.d.ts.map +0 -1
- package/dist/transport/impls/ws/connection.d.ts +0 -11
- package/dist/transport/impls/ws/connection.d.ts.map +0 -1
- package/dist/transport/impls/ws/connection.js +0 -23
- package/dist/transport/impls/ws/server.d.ts.map +0 -1
- package/dist/transport/impls/ws/ws.test.d.ts +0 -2
- package/dist/transport/impls/ws/ws.test.d.ts.map +0 -1
- package/dist/transport/impls/ws/ws.test.js +0 -117
- package/dist/transport/index.d.ts.map +0 -1
- package/dist/transport/message.d.ts +0 -143
- package/dist/transport/message.d.ts.map +0 -1
- package/dist/transport/message.js +0 -113
- package/dist/transport/message.test.d.ts +0 -2
- package/dist/transport/message.test.d.ts.map +0 -1
- package/dist/transport/message.test.js +0 -52
- package/dist/transport/transport.d.ts.map +0 -1
- package/dist/transport/transport.js +0 -281
- package/dist/util/testHelpers.d.ts.map +0 -1
|
@@ -1,138 +0,0 @@
|
|
|
1
|
-
import { afterAll, assert, describe, expect, test } from 'vitest';
|
|
2
|
-
import http from 'http';
|
|
3
|
-
import { createWebSocketServer, createWsTransports, iterNext, onServerReady, } from '../util/testHelpers';
|
|
4
|
-
import { SubscribableServiceConstructor, TestServiceConstructor, } from './fixtures/services';
|
|
5
|
-
import { createClient, createServer } from '../router';
|
|
6
|
-
import { ensureServerIsClean, ensureTransportQueuesAreEventuallyEmpty, waitUntil, } from './fixtures/cleanup';
|
|
7
|
-
describe('procedures should leave no trace after finishing', async () => {
|
|
8
|
-
const httpServer = http.createServer();
|
|
9
|
-
const port = await onServerReady(httpServer);
|
|
10
|
-
const webSocketServer = await createWebSocketServer(httpServer);
|
|
11
|
-
const getTransports = () => createWsTransports(port, webSocketServer);
|
|
12
|
-
afterAll(() => {
|
|
13
|
-
webSocketServer.close();
|
|
14
|
-
httpServer.close();
|
|
15
|
-
});
|
|
16
|
-
test('closing a transport from the client cleans up connection on the server', async () => {
|
|
17
|
-
const [clientTransport, serverTransport] = getTransports();
|
|
18
|
-
const serviceDefs = { test: TestServiceConstructor() };
|
|
19
|
-
const server = await createServer(serverTransport, serviceDefs);
|
|
20
|
-
const client = createClient(clientTransport);
|
|
21
|
-
expect(clientTransport.connections.size).toEqual(0);
|
|
22
|
-
expect(serverTransport.connections.size).toEqual(0);
|
|
23
|
-
// start procedure
|
|
24
|
-
await client.test.add.rpc({ n: 3 });
|
|
25
|
-
// end procedure
|
|
26
|
-
expect(clientTransport.connections.size).toEqual(1);
|
|
27
|
-
expect(serverTransport.connections.size).toEqual(1);
|
|
28
|
-
// should be back to 0 connections after client closes
|
|
29
|
-
clientTransport.close();
|
|
30
|
-
expect(clientTransport.connections.size).toEqual(0);
|
|
31
|
-
await waitUntil(() => serverTransport.connections.size, 0, 'server should cleanup connection after client closes');
|
|
32
|
-
});
|
|
33
|
-
test('closing a transport from the server cleans up connection on the client', async () => {
|
|
34
|
-
const [clientTransport, serverTransport] = getTransports();
|
|
35
|
-
const serviceDefs = { test: TestServiceConstructor() };
|
|
36
|
-
const server = await createServer(serverTransport, serviceDefs);
|
|
37
|
-
const client = createClient(clientTransport);
|
|
38
|
-
expect(clientTransport.connections.size).toEqual(0);
|
|
39
|
-
expect(serverTransport.connections.size).toEqual(0);
|
|
40
|
-
// start procedure
|
|
41
|
-
await client.test.add.rpc({ n: 3 });
|
|
42
|
-
// end procedure
|
|
43
|
-
expect(clientTransport.connections.size).toEqual(1);
|
|
44
|
-
expect(serverTransport.connections.size).toEqual(1);
|
|
45
|
-
// should be back to 0 connections after client closes
|
|
46
|
-
serverTransport.close();
|
|
47
|
-
expect(serverTransport.connections.size).toEqual(0);
|
|
48
|
-
await waitUntil(() => clientTransport.connections.size, 0, 'client should cleanup connection after server closes');
|
|
49
|
-
});
|
|
50
|
-
test('rpc', async () => {
|
|
51
|
-
const [clientTransport, serverTransport] = getTransports();
|
|
52
|
-
const serviceDefs = { test: TestServiceConstructor() };
|
|
53
|
-
const server = await createServer(serverTransport, serviceDefs);
|
|
54
|
-
const client = createClient(clientTransport);
|
|
55
|
-
let serverListeners = serverTransport.eventDispatcher.numberOfListeners('message');
|
|
56
|
-
let clientListeners = clientTransport.eventDispatcher.numberOfListeners('message');
|
|
57
|
-
// start procedure
|
|
58
|
-
await client.test.add.rpc({ n: 3 });
|
|
59
|
-
// end procedure
|
|
60
|
-
// number of message handlers shouldn't increase after rpc
|
|
61
|
-
expect(serverTransport.eventDispatcher.numberOfListeners('message')).toEqual(serverListeners);
|
|
62
|
-
expect(clientTransport.eventDispatcher.numberOfListeners('message')).toEqual(clientListeners);
|
|
63
|
-
// check number of connections
|
|
64
|
-
expect(serverTransport.connections.size).toEqual(1);
|
|
65
|
-
expect(clientTransport.connections.size).toEqual(1);
|
|
66
|
-
await ensureTransportQueuesAreEventuallyEmpty(clientTransport);
|
|
67
|
-
await ensureTransportQueuesAreEventuallyEmpty(serverTransport);
|
|
68
|
-
// ensure we have no streams left on the server
|
|
69
|
-
await ensureServerIsClean(server);
|
|
70
|
-
});
|
|
71
|
-
test('stream', async () => {
|
|
72
|
-
const [clientTransport, serverTransport] = getTransports();
|
|
73
|
-
const serviceDefs = { test: TestServiceConstructor() };
|
|
74
|
-
const server = await createServer(serverTransport, serviceDefs);
|
|
75
|
-
const client = createClient(clientTransport);
|
|
76
|
-
let serverListeners = serverTransport.eventDispatcher.numberOfListeners('message');
|
|
77
|
-
let clientListeners = clientTransport.eventDispatcher.numberOfListeners('message');
|
|
78
|
-
// start procedure
|
|
79
|
-
const [input, output, close] = await client.test.echo.stream();
|
|
80
|
-
input.push({ msg: '1', ignore: false });
|
|
81
|
-
input.push({ msg: '2', ignore: false, end: true });
|
|
82
|
-
const result1 = await iterNext(output);
|
|
83
|
-
assert(result1.ok);
|
|
84
|
-
expect(result1.payload).toStrictEqual({ response: '1' });
|
|
85
|
-
// ensure we only have one stream despite pushing multiple messages.
|
|
86
|
-
await waitUntil(() => server.streams.size, 1);
|
|
87
|
-
input.end();
|
|
88
|
-
// ensure we no longer have any streams since the input was closed.
|
|
89
|
-
await waitUntil(() => server.streams.size, 0);
|
|
90
|
-
const result2 = await iterNext(output);
|
|
91
|
-
assert(result2.ok);
|
|
92
|
-
expect(result2.payload).toStrictEqual({ response: '2' });
|
|
93
|
-
const result3 = await output.next();
|
|
94
|
-
assert(result3.done);
|
|
95
|
-
close();
|
|
96
|
-
// end procedure
|
|
97
|
-
// number of message handlers shouldn't increase after stream ends
|
|
98
|
-
expect(serverTransport.eventDispatcher.numberOfListeners('message')).toEqual(serverListeners);
|
|
99
|
-
expect(clientTransport.eventDispatcher.numberOfListeners('message')).toEqual(clientListeners);
|
|
100
|
-
// check number of connections
|
|
101
|
-
expect(serverTransport.connections.size).toEqual(1);
|
|
102
|
-
expect(clientTransport.connections.size).toEqual(1);
|
|
103
|
-
await ensureTransportQueuesAreEventuallyEmpty(clientTransport);
|
|
104
|
-
await ensureTransportQueuesAreEventuallyEmpty(serverTransport);
|
|
105
|
-
// ensure we have no streams left on the server
|
|
106
|
-
await ensureServerIsClean(server);
|
|
107
|
-
});
|
|
108
|
-
test('subscription', async () => {
|
|
109
|
-
const [clientTransport, serverTransport] = getTransports();
|
|
110
|
-
const serviceDefs = { test: SubscribableServiceConstructor() };
|
|
111
|
-
const server = await createServer(serverTransport, serviceDefs);
|
|
112
|
-
const client = createClient(clientTransport);
|
|
113
|
-
let serverListeners = serverTransport.eventDispatcher.numberOfListeners('message');
|
|
114
|
-
let clientListeners = clientTransport.eventDispatcher.numberOfListeners('message');
|
|
115
|
-
// start procedure
|
|
116
|
-
const [subscription, close] = await client.test.value.subscribe({});
|
|
117
|
-
let result = await iterNext(subscription);
|
|
118
|
-
assert(result.ok);
|
|
119
|
-
expect(result.payload).toStrictEqual({ result: 0 });
|
|
120
|
-
const add1 = await client.test.add.rpc({ n: 1 });
|
|
121
|
-
assert(add1.ok);
|
|
122
|
-
result = await iterNext(subscription);
|
|
123
|
-
assert(result.ok);
|
|
124
|
-
expect(result.payload).toStrictEqual({ result: 1 });
|
|
125
|
-
close();
|
|
126
|
-
// end procedure
|
|
127
|
-
// number of message handlers shouldn't increase after stream ends
|
|
128
|
-
expect(serverTransport.eventDispatcher.numberOfListeners('message')).toEqual(serverListeners);
|
|
129
|
-
expect(clientTransport.eventDispatcher.numberOfListeners('message')).toEqual(clientListeners);
|
|
130
|
-
// check number of connections
|
|
131
|
-
expect(serverTransport.connections.size).toEqual(1);
|
|
132
|
-
expect(clientTransport.connections.size).toEqual(1);
|
|
133
|
-
await ensureTransportQueuesAreEventuallyEmpty(clientTransport);
|
|
134
|
-
await ensureTransportQueuesAreEventuallyEmpty(serverTransport);
|
|
135
|
-
// ensure we have no streams left on the server
|
|
136
|
-
await ensureServerIsClean(server);
|
|
137
|
-
});
|
|
138
|
-
});
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"serialize.test.d.ts","sourceRoot":"","sources":["../../__tests__/serialize.test.ts"],"names":[],"mappings":""}
|
|
@@ -1,208 +0,0 @@
|
|
|
1
|
-
import { expect, describe, test } from 'vitest';
|
|
2
|
-
import { serializeService } from '../router/builder';
|
|
3
|
-
import { BinaryFileServiceConstructor, FallibleServiceConstructor, TestServiceConstructor, } from './fixtures/services';
|
|
4
|
-
describe('serialize service to jsonschema', () => {
|
|
5
|
-
test('serialize basic service', () => {
|
|
6
|
-
const service = TestServiceConstructor();
|
|
7
|
-
expect(serializeService(service)).toStrictEqual({
|
|
8
|
-
name: 'test',
|
|
9
|
-
state: { count: 0 },
|
|
10
|
-
procedures: {
|
|
11
|
-
add: {
|
|
12
|
-
input: {
|
|
13
|
-
properties: {
|
|
14
|
-
n: { type: 'number' },
|
|
15
|
-
},
|
|
16
|
-
required: ['n'],
|
|
17
|
-
type: 'object',
|
|
18
|
-
},
|
|
19
|
-
output: {
|
|
20
|
-
properties: {
|
|
21
|
-
result: { type: 'number' },
|
|
22
|
-
},
|
|
23
|
-
required: ['result'],
|
|
24
|
-
type: 'object',
|
|
25
|
-
},
|
|
26
|
-
errors: { not: {} },
|
|
27
|
-
type: 'rpc',
|
|
28
|
-
},
|
|
29
|
-
echo: {
|
|
30
|
-
input: {
|
|
31
|
-
properties: {
|
|
32
|
-
msg: { type: 'string' },
|
|
33
|
-
ignore: { type: 'boolean' },
|
|
34
|
-
end: { type: 'boolean' },
|
|
35
|
-
},
|
|
36
|
-
required: ['msg', 'ignore'],
|
|
37
|
-
type: 'object',
|
|
38
|
-
},
|
|
39
|
-
output: {
|
|
40
|
-
properties: {
|
|
41
|
-
response: { type: 'string' },
|
|
42
|
-
},
|
|
43
|
-
required: ['response'],
|
|
44
|
-
type: 'object',
|
|
45
|
-
},
|
|
46
|
-
errors: { not: {} },
|
|
47
|
-
type: 'stream',
|
|
48
|
-
},
|
|
49
|
-
echoWithPrefix: {
|
|
50
|
-
errors: {
|
|
51
|
-
not: {},
|
|
52
|
-
},
|
|
53
|
-
init: {
|
|
54
|
-
properties: {
|
|
55
|
-
prefix: {
|
|
56
|
-
type: 'string',
|
|
57
|
-
},
|
|
58
|
-
},
|
|
59
|
-
required: ['prefix'],
|
|
60
|
-
type: 'object',
|
|
61
|
-
},
|
|
62
|
-
input: {
|
|
63
|
-
properties: {
|
|
64
|
-
end: {
|
|
65
|
-
type: 'boolean',
|
|
66
|
-
},
|
|
67
|
-
ignore: {
|
|
68
|
-
type: 'boolean',
|
|
69
|
-
},
|
|
70
|
-
msg: {
|
|
71
|
-
type: 'string',
|
|
72
|
-
},
|
|
73
|
-
},
|
|
74
|
-
required: ['msg', 'ignore'],
|
|
75
|
-
type: 'object',
|
|
76
|
-
},
|
|
77
|
-
output: {
|
|
78
|
-
properties: {
|
|
79
|
-
response: {
|
|
80
|
-
type: 'string',
|
|
81
|
-
},
|
|
82
|
-
},
|
|
83
|
-
required: ['response'],
|
|
84
|
-
type: 'object',
|
|
85
|
-
},
|
|
86
|
-
type: 'stream',
|
|
87
|
-
},
|
|
88
|
-
},
|
|
89
|
-
});
|
|
90
|
-
});
|
|
91
|
-
test('serialize service with binary', () => {
|
|
92
|
-
const service = BinaryFileServiceConstructor();
|
|
93
|
-
expect(serializeService(service)).toStrictEqual({
|
|
94
|
-
name: 'bin',
|
|
95
|
-
procedures: {
|
|
96
|
-
getFile: {
|
|
97
|
-
errors: {
|
|
98
|
-
not: {},
|
|
99
|
-
},
|
|
100
|
-
input: {
|
|
101
|
-
properties: {
|
|
102
|
-
file: {
|
|
103
|
-
type: 'string',
|
|
104
|
-
},
|
|
105
|
-
},
|
|
106
|
-
required: ['file'],
|
|
107
|
-
type: 'object',
|
|
108
|
-
},
|
|
109
|
-
output: {
|
|
110
|
-
properties: {
|
|
111
|
-
contents: {
|
|
112
|
-
type: 'Uint8Array',
|
|
113
|
-
},
|
|
114
|
-
},
|
|
115
|
-
required: ['contents'],
|
|
116
|
-
type: 'object',
|
|
117
|
-
},
|
|
118
|
-
type: 'rpc',
|
|
119
|
-
},
|
|
120
|
-
},
|
|
121
|
-
state: {},
|
|
122
|
-
});
|
|
123
|
-
});
|
|
124
|
-
test('serialize service with errors', () => {
|
|
125
|
-
const service = FallibleServiceConstructor();
|
|
126
|
-
expect(serializeService(service)).toStrictEqual({
|
|
127
|
-
name: 'fallible',
|
|
128
|
-
state: {},
|
|
129
|
-
procedures: {
|
|
130
|
-
divide: {
|
|
131
|
-
input: {
|
|
132
|
-
properties: {
|
|
133
|
-
a: { type: 'number' },
|
|
134
|
-
b: { type: 'number' },
|
|
135
|
-
},
|
|
136
|
-
required: ['a', 'b'],
|
|
137
|
-
type: 'object',
|
|
138
|
-
},
|
|
139
|
-
output: {
|
|
140
|
-
properties: {
|
|
141
|
-
result: { type: 'number' },
|
|
142
|
-
},
|
|
143
|
-
required: ['result'],
|
|
144
|
-
type: 'object',
|
|
145
|
-
},
|
|
146
|
-
errors: {
|
|
147
|
-
properties: {
|
|
148
|
-
code: { const: 'DIV_BY_ZERO', type: 'string' },
|
|
149
|
-
message: { type: 'string' },
|
|
150
|
-
extras: {
|
|
151
|
-
properties: {
|
|
152
|
-
test: {
|
|
153
|
-
type: 'string',
|
|
154
|
-
},
|
|
155
|
-
},
|
|
156
|
-
required: ['test'],
|
|
157
|
-
type: 'object',
|
|
158
|
-
},
|
|
159
|
-
},
|
|
160
|
-
required: ['code', 'message', 'extras'],
|
|
161
|
-
type: 'object',
|
|
162
|
-
},
|
|
163
|
-
type: 'rpc',
|
|
164
|
-
},
|
|
165
|
-
echo: {
|
|
166
|
-
errors: {
|
|
167
|
-
properties: {
|
|
168
|
-
code: {
|
|
169
|
-
const: 'STREAM_ERROR',
|
|
170
|
-
type: 'string',
|
|
171
|
-
},
|
|
172
|
-
message: {
|
|
173
|
-
type: 'string',
|
|
174
|
-
},
|
|
175
|
-
},
|
|
176
|
-
required: ['code', 'message'],
|
|
177
|
-
type: 'object',
|
|
178
|
-
},
|
|
179
|
-
input: {
|
|
180
|
-
properties: {
|
|
181
|
-
msg: {
|
|
182
|
-
type: 'string',
|
|
183
|
-
},
|
|
184
|
-
throwError: {
|
|
185
|
-
type: 'boolean',
|
|
186
|
-
},
|
|
187
|
-
throwResult: {
|
|
188
|
-
type: 'boolean',
|
|
189
|
-
},
|
|
190
|
-
},
|
|
191
|
-
required: ['msg', 'throwResult', 'throwError'],
|
|
192
|
-
type: 'object',
|
|
193
|
-
},
|
|
194
|
-
output: {
|
|
195
|
-
properties: {
|
|
196
|
-
response: {
|
|
197
|
-
type: 'string',
|
|
198
|
-
},
|
|
199
|
-
},
|
|
200
|
-
required: ['response'],
|
|
201
|
-
type: 'object',
|
|
202
|
-
},
|
|
203
|
-
type: 'stream',
|
|
204
|
-
},
|
|
205
|
-
},
|
|
206
|
-
});
|
|
207
|
-
});
|
|
208
|
-
});
|