@replit/river 0.3.0 → 0.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (74) hide show
  1. package/dist/__tests__/bandwidth.bench.d.ts +1 -0
  2. package/dist/__tests__/bandwidth.bench.d.ts.map +1 -0
  3. package/dist/__tests__/bandwidth.bench.js +12 -5
  4. package/dist/__tests__/e2e.test.d.ts +2 -0
  5. package/dist/__tests__/e2e.test.d.ts.map +1 -0
  6. package/dist/__tests__/e2e.test.js +153 -0
  7. package/dist/__tests__/fixtures.d.ts +155 -0
  8. package/dist/__tests__/fixtures.d.ts.map +1 -0
  9. package/dist/__tests__/fixtures.js +129 -0
  10. package/dist/__tests__/handler.test.d.ts +2 -0
  11. package/dist/__tests__/handler.test.d.ts.map +1 -0
  12. package/dist/__tests__/handler.test.js +71 -0
  13. package/dist/__tests__/serialize.test.d.ts +2 -0
  14. package/dist/__tests__/serialize.test.d.ts.map +1 -0
  15. package/dist/__tests__/serialize.test.js +135 -0
  16. package/dist/__tests__/typescript-stress.test.d.ts +736 -98
  17. package/dist/__tests__/typescript-stress.test.d.ts.map +1 -0
  18. package/dist/__tests__/typescript-stress.test.js +13 -1
  19. package/dist/codec/codec.test.d.ts +1 -0
  20. package/dist/codec/codec.test.d.ts.map +1 -0
  21. package/dist/codec/index.d.ts +1 -0
  22. package/dist/codec/index.d.ts.map +1 -0
  23. package/dist/codec/json.d.ts +5 -0
  24. package/dist/codec/json.d.ts.map +1 -0
  25. package/dist/codec/json.js +4 -0
  26. package/dist/codec/types.d.ts +15 -0
  27. package/dist/codec/types.d.ts.map +1 -0
  28. package/dist/logging/index.d.ts +13 -0
  29. package/dist/logging/index.d.ts.map +1 -0
  30. package/dist/logging/index.js +12 -0
  31. package/dist/router/builder.d.ts +91 -7
  32. package/dist/router/builder.d.ts.map +1 -0
  33. package/dist/router/builder.js +32 -0
  34. package/dist/router/client.d.ts +28 -3
  35. package/dist/router/client.d.ts.map +1 -0
  36. package/dist/router/client.js +37 -6
  37. package/dist/router/context.d.ts +2 -0
  38. package/dist/router/context.d.ts.map +1 -0
  39. package/dist/router/index.d.ts +1 -0
  40. package/dist/router/index.d.ts.map +1 -0
  41. package/dist/router/result.d.ts +25 -0
  42. package/dist/router/result.d.ts.map +1 -0
  43. package/dist/router/result.js +18 -0
  44. package/dist/router/server.d.ts +13 -0
  45. package/dist/router/server.d.ts.map +1 -0
  46. package/dist/router/server.js +85 -56
  47. package/dist/testUtils.d.ts +69 -2
  48. package/dist/testUtils.d.ts.map +1 -0
  49. package/dist/testUtils.js +91 -4
  50. package/dist/transport/impls/stdio.d.ts +25 -0
  51. package/dist/transport/impls/stdio.d.ts.map +1 -0
  52. package/dist/transport/impls/stdio.js +24 -0
  53. package/dist/transport/impls/stdio.test.d.ts +1 -0
  54. package/dist/transport/impls/stdio.test.d.ts.map +1 -0
  55. package/dist/transport/impls/stdio.test.js +2 -8
  56. package/dist/transport/impls/ws.d.ts +40 -1
  57. package/dist/transport/impls/ws.d.ts.map +1 -0
  58. package/dist/transport/impls/ws.js +39 -2
  59. package/dist/transport/impls/ws.test.d.ts +1 -0
  60. package/dist/transport/impls/ws.test.d.ts.map +1 -0
  61. package/dist/transport/impls/ws.test.js +8 -20
  62. package/dist/transport/index.d.ts +9 -2
  63. package/dist/transport/index.d.ts.map +1 -0
  64. package/dist/transport/index.js +7 -1
  65. package/dist/transport/message.d.ts +94 -36
  66. package/dist/transport/message.d.ts.map +1 -0
  67. package/dist/transport/message.js +66 -19
  68. package/dist/transport/message.test.d.ts +1 -0
  69. package/dist/transport/message.test.d.ts.map +1 -0
  70. package/dist/transport/message.test.js +39 -6
  71. package/dist/transport/types.d.ts +38 -2
  72. package/dist/transport/types.d.ts.map +1 -0
  73. package/dist/transport/types.js +44 -5
  74. package/package.json +1 -3
@@ -0,0 +1,135 @@
1
+ import { expect, describe, test } from 'vitest';
2
+ import { serializeService } from '../router/builder';
3
+ import { FallibleServiceConstructor, TestServiceConstructor } from './fixtures';
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
+ },
35
+ required: ['msg', 'ignore'],
36
+ type: 'object',
37
+ },
38
+ output: {
39
+ properties: {
40
+ response: { type: 'string' },
41
+ },
42
+ required: ['response'],
43
+ type: 'object',
44
+ },
45
+ errors: { not: {} },
46
+ type: 'stream',
47
+ },
48
+ },
49
+ });
50
+ });
51
+ test('serialize service with errors', () => {
52
+ const service = FallibleServiceConstructor();
53
+ expect(serializeService(service)).toStrictEqual({
54
+ name: 'fallible',
55
+ state: {},
56
+ procedures: {
57
+ divide: {
58
+ input: {
59
+ properties: {
60
+ a: { type: 'number' },
61
+ b: { type: 'number' },
62
+ },
63
+ required: ['a', 'b'],
64
+ type: 'object',
65
+ },
66
+ output: {
67
+ properties: {
68
+ result: { type: 'number' },
69
+ },
70
+ required: ['result'],
71
+ type: 'object',
72
+ },
73
+ errors: {
74
+ properties: {
75
+ code: { const: 'DIV_BY_ZERO', type: 'string' },
76
+ message: { type: 'string' },
77
+ extras: {
78
+ properties: {
79
+ test: {
80
+ type: 'string',
81
+ },
82
+ },
83
+ required: ['test'],
84
+ type: 'object',
85
+ },
86
+ },
87
+ required: ['code', 'message', 'extras'],
88
+ type: 'object',
89
+ },
90
+ type: 'rpc',
91
+ },
92
+ echo: {
93
+ errors: {
94
+ properties: {
95
+ code: {
96
+ const: 'STREAM_ERROR',
97
+ type: 'string',
98
+ },
99
+ message: {
100
+ type: 'string',
101
+ },
102
+ },
103
+ required: ['code', 'message'],
104
+ type: 'object',
105
+ },
106
+ input: {
107
+ properties: {
108
+ msg: {
109
+ type: 'string',
110
+ },
111
+ throwError: {
112
+ type: 'boolean',
113
+ },
114
+ throwResult: {
115
+ type: 'boolean',
116
+ },
117
+ },
118
+ required: ['msg', 'throwResult', 'throwError'],
119
+ type: 'object',
120
+ },
121
+ output: {
122
+ properties: {
123
+ response: {
124
+ type: 'string',
125
+ },
126
+ },
127
+ required: ['response'],
128
+ type: 'object',
129
+ },
130
+ type: 'stream',
131
+ },
132
+ },
133
+ });
134
+ });
135
+ });