@yuhere/js-jsonrpc2 0.0.0-stage → 2.1.2

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 (174) hide show
  1. package/README.md +277 -2
  2. package/SKILL.md +237 -0
  3. package/dist/cli/cli.d.ts +3 -0
  4. package/dist/cli/cli.d.ts.map +1 -0
  5. package/dist/cli/cli.js +132 -0
  6. package/dist/cli/cli.js.map +1 -0
  7. package/dist/cli/demo-methods.d.ts +10 -0
  8. package/dist/cli/demo-methods.d.ts.map +1 -0
  9. package/dist/cli/demo-methods.js +477 -0
  10. package/dist/cli/demo-methods.js.map +1 -0
  11. package/dist/cli/express.d.ts +2 -0
  12. package/dist/cli/express.d.ts.map +1 -0
  13. package/dist/cli/express.js +42 -0
  14. package/dist/cli/express.js.map +1 -0
  15. package/dist/cli/stdio.d.ts +2 -0
  16. package/dist/cli/stdio.d.ts.map +1 -0
  17. package/dist/cli/stdio.js +5 -0
  18. package/dist/cli/stdio.js.map +1 -0
  19. package/dist/core/Repository.d.ts +24 -0
  20. package/dist/core/Repository.d.ts.map +1 -0
  21. package/dist/core/Repository.js +153 -0
  22. package/dist/core/Repository.js.map +1 -0
  23. package/dist/core/convert.d.ts +4 -0
  24. package/dist/core/convert.d.ts.map +1 -0
  25. package/dist/core/convert.js +29 -0
  26. package/dist/core/convert.js.map +1 -0
  27. package/dist/core/descriptor.d.ts +27 -0
  28. package/dist/core/descriptor.d.ts.map +1 -0
  29. package/dist/core/descriptor.js +83 -0
  30. package/dist/core/descriptor.js.map +1 -0
  31. package/dist/core/index.d.ts +4 -0
  32. package/dist/core/index.d.ts.map +1 -0
  33. package/dist/core/index.js +3 -0
  34. package/dist/core/index.js.map +1 -0
  35. package/dist/core/permission.d.ts +4 -0
  36. package/dist/core/permission.d.ts.map +1 -0
  37. package/dist/core/permission.js +18 -0
  38. package/dist/core/permission.js.map +1 -0
  39. package/dist/core/spec-check.d.ts +3 -0
  40. package/dist/core/spec-check.d.ts.map +1 -0
  41. package/dist/core/spec-check.js +11 -0
  42. package/dist/core/spec-check.js.map +1 -0
  43. package/dist/core/system-methods.d.ts +3 -0
  44. package/dist/core/system-methods.d.ts.map +1 -0
  45. package/dist/core/system-methods.js +76 -0
  46. package/dist/core/system-methods.js.map +1 -0
  47. package/dist/errors/RpcError.d.ts +9 -0
  48. package/dist/errors/RpcError.d.ts.map +1 -0
  49. package/dist/errors/RpcError.js +23 -0
  50. package/dist/errors/RpcError.js.map +1 -0
  51. package/dist/errors/codes.d.ts +7 -0
  52. package/dist/errors/codes.d.ts.map +1 -0
  53. package/dist/errors/codes.js +7 -0
  54. package/dist/errors/codes.js.map +1 -0
  55. package/dist/errors/index.d.ts +3 -0
  56. package/dist/errors/index.d.ts.map +1 -0
  57. package/dist/errors/index.js +3 -0
  58. package/dist/errors/index.js.map +1 -0
  59. package/dist/index.d.ts +18 -0
  60. package/dist/index.d.ts.map +1 -0
  61. package/dist/index.js +17 -0
  62. package/dist/index.js.map +1 -0
  63. package/dist/schema/index.d.ts +4 -0
  64. package/dist/schema/index.d.ts.map +1 -0
  65. package/dist/schema/index.js +4 -0
  66. package/dist/schema/index.js.map +1 -0
  67. package/dist/schema/json/index.d.ts +19 -0
  68. package/dist/schema/json/index.d.ts.map +1 -0
  69. package/dist/schema/json/index.js +6 -0
  70. package/dist/schema/json/index.js.map +1 -0
  71. package/dist/schema/json/marker.d.ts +23 -0
  72. package/dist/schema/json/marker.d.ts.map +1 -0
  73. package/dist/schema/json/marker.js +27 -0
  74. package/dist/schema/json/marker.js.map +1 -0
  75. package/dist/schema/json/primitives.d.ts +202 -0
  76. package/dist/schema/json/primitives.d.ts.map +1 -0
  77. package/dist/schema/json/primitives.js +598 -0
  78. package/dist/schema/json/primitives.js.map +1 -0
  79. package/dist/schema/primitives.d.ts +25 -0
  80. package/dist/schema/primitives.d.ts.map +1 -0
  81. package/dist/schema/primitives.js +153 -0
  82. package/dist/schema/primitives.js.map +1 -0
  83. package/dist/schema/rpc.d.ts +21 -0
  84. package/dist/schema/rpc.d.ts.map +1 -0
  85. package/dist/schema/rpc.js +17 -0
  86. package/dist/schema/rpc.js.map +1 -0
  87. package/dist/schema/z/protocol.d.ts +9 -0
  88. package/dist/schema/z/protocol.d.ts.map +1 -0
  89. package/dist/schema/z/protocol.js +9 -0
  90. package/dist/schema/z/protocol.js.map +1 -0
  91. package/dist/schema/z/register.d.ts +9 -0
  92. package/dist/schema/z/register.d.ts.map +1 -0
  93. package/dist/schema/z/register.js +21 -0
  94. package/dist/schema/z/register.js.map +1 -0
  95. package/dist/stream/index.d.ts +3 -0
  96. package/dist/stream/index.d.ts.map +1 -0
  97. package/dist/stream/index.js +2 -0
  98. package/dist/stream/index.js.map +1 -0
  99. package/dist/stream/stringify-stream.d.ts +15 -0
  100. package/dist/stream/stringify-stream.d.ts.map +1 -0
  101. package/dist/stream/stringify-stream.js +322 -0
  102. package/dist/stream/stringify-stream.js.map +1 -0
  103. package/dist/stream/stringify.d.ts +19 -0
  104. package/dist/stream/stringify.d.ts.map +1 -0
  105. package/dist/stream/stringify.js +217 -0
  106. package/dist/stream/stringify.js.map +1 -0
  107. package/dist/transport/express/body.d.ts +9 -0
  108. package/dist/transport/express/body.d.ts.map +1 -0
  109. package/dist/transport/express/body.js +28 -0
  110. package/dist/transport/express/body.js.map +1 -0
  111. package/dist/transport/express/index.d.ts +3 -0
  112. package/dist/transport/express/index.d.ts.map +1 -0
  113. package/dist/transport/express/index.js +2 -0
  114. package/dist/transport/express/index.js.map +1 -0
  115. package/dist/transport/express/middleware.d.ts +12 -0
  116. package/dist/transport/express/middleware.d.ts.map +1 -0
  117. package/dist/transport/express/middleware.js +73 -0
  118. package/dist/transport/express/middleware.js.map +1 -0
  119. package/dist/transport/express/respond.d.ts +4 -0
  120. package/dist/transport/express/respond.d.ts.map +1 -0
  121. package/dist/transport/express/respond.js +125 -0
  122. package/dist/transport/express/respond.js.map +1 -0
  123. package/dist/transport/stdio/index.d.ts +2 -0
  124. package/dist/transport/stdio/index.d.ts.map +1 -0
  125. package/dist/transport/stdio/index.js +2 -0
  126. package/dist/transport/stdio/index.js.map +1 -0
  127. package/dist/transport/stdio/middleware.d.ts +34 -0
  128. package/dist/transport/stdio/middleware.d.ts.map +1 -0
  129. package/dist/transport/stdio/middleware.js +274 -0
  130. package/dist/transport/stdio/middleware.js.map +1 -0
  131. package/dist/transport/ws/index.d.ts +3 -0
  132. package/dist/transport/ws/index.d.ts.map +1 -0
  133. package/dist/transport/ws/index.js +3 -0
  134. package/dist/transport/ws/index.js.map +1 -0
  135. package/dist/transport/ws/middleware.d.ts +25 -0
  136. package/dist/transport/ws/middleware.d.ts.map +1 -0
  137. package/dist/transport/ws/middleware.js +209 -0
  138. package/dist/transport/ws/middleware.js.map +1 -0
  139. package/dist/transport/ws/standalone.d.ts +22 -0
  140. package/dist/transport/ws/standalone.d.ts.map +1 -0
  141. package/dist/transport/ws/standalone.js +39 -0
  142. package/dist/transport/ws/standalone.js.map +1 -0
  143. package/dist/types.d.ts +75 -0
  144. package/dist/types.d.ts.map +1 -0
  145. package/dist/types.js +2 -0
  146. package/dist/types.js.map +1 -0
  147. package/htdoc/assets/index-CQr-lnlD.js +9286 -0
  148. package/htdoc/assets/index-CQr-lnlD.js.map +1 -0
  149. package/htdoc/assets/index-hcP2-9jw.css +729 -0
  150. package/htdoc/index.html +13 -0
  151. package/package.json +89 -3
  152. package/webui/index.html +12 -0
  153. package/webui/src/App.tsx +56 -0
  154. package/webui/src/api/httpTransport.ts +148 -0
  155. package/webui/src/api/paramForm.ts +79 -0
  156. package/webui/src/api/rpc.ts +57 -0
  157. package/webui/src/api/schema.ts +12 -0
  158. package/webui/src/api/types.ts +16 -0
  159. package/webui/src/api/wsTransport.ts +305 -0
  160. package/webui/src/components/MethodDetail.tsx +43 -0
  161. package/webui/src/components/MethodTree.tsx +118 -0
  162. package/webui/src/components/SchemaForm.tsx +696 -0
  163. package/webui/src/components/SchemaView.tsx +151 -0
  164. package/webui/src/components/TestPanel.tsx +279 -0
  165. package/webui/src/components/Toolbar.tsx +70 -0
  166. package/webui/src/hooks/useMethodDetail.ts +61 -0
  167. package/webui/src/hooks/useMethods.ts +27 -0
  168. package/webui/src/main.tsx +13 -0
  169. package/webui/src/styles/geek.css +729 -0
  170. package/webui/src/theme/ThemeProvider.tsx +79 -0
  171. package/webui/src/vite-env.d.ts +1 -0
  172. package/webui/tsconfig.json +34 -0
  173. package/webui/tsconfig.node.json +13 -0
  174. package/webui/vite.config.ts +15 -0
@@ -0,0 +1,598 @@
1
+ export class SchemaValidationError extends Error {
2
+ path;
3
+ constructor(message, path = []) {
4
+ super(path.length > 0 ? `${path.join(".")}: ${message}` : message);
5
+ this.path = path;
6
+ this.name = "SchemaValidationError";
7
+ }
8
+ }
9
+ /**
10
+ * 所有 Schema 的共同基类。
11
+ *
12
+ * 不包含 nullable(),因此 UnknownSchema 可以天然接受 null,
13
+ * 同时不会暴露无意义的 nullable() 方法。
14
+ */
15
+ export class Schema {
16
+ description;
17
+ constructor(description) {
18
+ this.description = description;
19
+ }
20
+ describe(description) {
21
+ return this.cloneWith({ description });
22
+ }
23
+ /**
24
+ * 创建保留原型和现有字段的新实例,供不可变链式方法使用。
25
+ * Schema 子类的状态字段会一并复制,因此扩展类仍保留自身原型和状态。
26
+ */
27
+ cloneWith(updates) {
28
+ const clone = Object.assign(Object.create(Object.getPrototypeOf(this)), this);
29
+ return Object.assign(clone, updates);
30
+ }
31
+ getDescription() {
32
+ return this.description;
33
+ }
34
+ parse(input) {
35
+ return this._parse(input, []);
36
+ }
37
+ safeParse(input) {
38
+ try {
39
+ return { success: true, data: this.parse(input) };
40
+ }
41
+ catch (error) {
42
+ if (error instanceof SchemaValidationError) {
43
+ return { success: false, error };
44
+ }
45
+ throw error;
46
+ }
47
+ }
48
+ toJSON() {
49
+ const result = this._describe();
50
+ const description = this.getDescription();
51
+ if (description !== undefined) {
52
+ result.description = description;
53
+ }
54
+ return result;
55
+ }
56
+ fail(message, path) {
57
+ throw new SchemaValidationError(message, path);
58
+ }
59
+ }
60
+ /**
61
+ * 普通 JSON Schema 的基类。
62
+ * 通过 nullable() 显式接受 null。
63
+ */
64
+ export class NullableCapableSchema extends Schema {
65
+ nullable() {
66
+ return new NullableSchema(this);
67
+ }
68
+ }
69
+ /**
70
+ * nullable 包装器。
71
+ *
72
+ * 注意:NullableSchema 不提供 nullable(),
73
+ * 避免无意义的重复 nullable 调用。
74
+ */
75
+ export class NullableSchema extends Schema {
76
+ inner;
77
+ kind = "nullable";
78
+ constructor(inner) {
79
+ super();
80
+ this.inner = inner;
81
+ }
82
+ _parse(input, path) {
83
+ if (input === null) {
84
+ return null;
85
+ }
86
+ try {
87
+ return this.inner.parse(input);
88
+ }
89
+ catch (error) {
90
+ if (error instanceof SchemaValidationError) {
91
+ throw new SchemaValidationError(error.message, [
92
+ ...path,
93
+ ...error.path,
94
+ ]);
95
+ }
96
+ throw error;
97
+ }
98
+ }
99
+ _describe() {
100
+ return {
101
+ kind: "nullable",
102
+ nullable: true,
103
+ children: { inner: this.inner.toJSON() },
104
+ };
105
+ }
106
+ }
107
+ export class StringSchema extends NullableCapableSchema {
108
+ kind = "string";
109
+ constructor() {
110
+ super();
111
+ }
112
+ minimum;
113
+ maximum;
114
+ min(value) {
115
+ this.validateBound(value);
116
+ return this.cloneWith({ minimum: value });
117
+ }
118
+ max(value) {
119
+ this.validateBound(value);
120
+ return this.cloneWith({ maximum: value });
121
+ }
122
+ _parse(input, path) {
123
+ if (typeof input !== "string") {
124
+ return this.fail("Expected a string", path);
125
+ }
126
+ if (this.minimum !== undefined && input.length < this.minimum) {
127
+ return this.fail(`Expected at least ${this.minimum} characters`, path);
128
+ }
129
+ if (this.maximum !== undefined && input.length > this.maximum) {
130
+ return this.fail(`Expected at most ${this.maximum} characters`, path);
131
+ }
132
+ return input;
133
+ }
134
+ _describe() {
135
+ return {
136
+ kind: this.kind,
137
+ constraints: {
138
+ ...(this.minimum !== undefined ? { min: this.minimum } : {}),
139
+ ...(this.maximum !== undefined ? { max: this.maximum } : {}),
140
+ },
141
+ };
142
+ }
143
+ validateBound(value) {
144
+ if (!globalThis.Number.isInteger(value) || value < 0) {
145
+ throw new TypeError("String min/max must be non-negative integers");
146
+ }
147
+ }
148
+ }
149
+ export class NumberSchema extends NullableCapableSchema {
150
+ kind = "number";
151
+ constructor() {
152
+ super();
153
+ }
154
+ minimum;
155
+ maximum;
156
+ min(value) {
157
+ this.validateBound(value);
158
+ return this.cloneWith({ minimum: value });
159
+ }
160
+ max(value) {
161
+ this.validateBound(value);
162
+ return this.cloneWith({ maximum: value });
163
+ }
164
+ _parse(input, path) {
165
+ if (typeof input !== "number" || !globalThis.Number.isFinite(input)) {
166
+ return this.fail("Expected a finite number", path);
167
+ }
168
+ if (this.minimum !== undefined && input < this.minimum) {
169
+ return this.fail(`Expected a number >= ${this.minimum}`, path);
170
+ }
171
+ if (this.maximum !== undefined && input > this.maximum) {
172
+ return this.fail(`Expected a number <= ${this.maximum}`, path);
173
+ }
174
+ return input;
175
+ }
176
+ _describe() {
177
+ return {
178
+ kind: this.kind,
179
+ constraints: {
180
+ ...(this.minimum !== undefined ? { min: this.minimum } : {}),
181
+ ...(this.maximum !== undefined ? { max: this.maximum } : {}),
182
+ },
183
+ };
184
+ }
185
+ validateBound(value) {
186
+ if (!globalThis.Number.isFinite(value)) {
187
+ throw new TypeError("Number min/max must be finite numbers");
188
+ }
189
+ }
190
+ }
191
+ export class BooleanSchema extends NullableCapableSchema {
192
+ kind = "boolean";
193
+ constructor() {
194
+ super();
195
+ }
196
+ _parse(input, path) {
197
+ if (typeof input !== "boolean") {
198
+ return this.fail("Expected a boolean", path);
199
+ }
200
+ return input;
201
+ }
202
+ _describe() {
203
+ return { kind: this.kind };
204
+ }
205
+ }
206
+ export class LiteralSchema extends NullableCapableSchema {
207
+ expected;
208
+ kind = "literal";
209
+ constructor(expected) {
210
+ super();
211
+ this.expected = expected;
212
+ if (typeof expected === "number" && !Number.isFinite(expected)) {
213
+ throw new TypeError("LiteralSchema expected number must be finite");
214
+ }
215
+ if (expected !== null && !["string", "number", "boolean"].includes(typeof expected)) {
216
+ throw new TypeError("LiteralSchema expected value must be a string, number, boolean, or null");
217
+ }
218
+ }
219
+ _parse(input, path) {
220
+ if (input !== this.expected) {
221
+ return this.fail(`Expected literal ${JSON.stringify(this.expected)}`, path);
222
+ }
223
+ return this.expected;
224
+ }
225
+ _describe() {
226
+ return {
227
+ kind: this.kind,
228
+ constraints: { value: this.expected },
229
+ };
230
+ }
231
+ }
232
+ export class ArraySchema extends NullableCapableSchema {
233
+ itemSchema;
234
+ kind = "array";
235
+ minimum;
236
+ maximum;
237
+ constructor(itemSchema) {
238
+ super();
239
+ this.itemSchema = itemSchema;
240
+ }
241
+ min(value) {
242
+ this.validateBound(value);
243
+ return this.cloneWith({ minimum: value });
244
+ }
245
+ max(value) {
246
+ this.validateBound(value);
247
+ return this.cloneWith({ maximum: value });
248
+ }
249
+ _parse(input, path) {
250
+ if (!globalThis.Array.isArray(input)) {
251
+ return this.fail("Expected an array", path);
252
+ }
253
+ if (this.minimum !== undefined && input.length < this.minimum) {
254
+ return this.fail(`Expected at least ${this.minimum} items`, path);
255
+ }
256
+ if (this.maximum !== undefined && input.length > this.maximum) {
257
+ return this.fail(`Expected at most ${this.maximum} items`, path);
258
+ }
259
+ return input.map((item, index) => {
260
+ try {
261
+ return this.itemSchema.parse(item);
262
+ }
263
+ catch (error) {
264
+ if (error instanceof SchemaValidationError) {
265
+ throw new SchemaValidationError(error.message, [
266
+ String(index),
267
+ ...error.path,
268
+ ]);
269
+ }
270
+ throw error;
271
+ }
272
+ });
273
+ }
274
+ _describe() {
275
+ return {
276
+ kind: this.kind,
277
+ constraints: {
278
+ ...(this.minimum !== undefined ? { min: this.minimum } : {}),
279
+ ...(this.maximum !== undefined ? { max: this.maximum } : {}),
280
+ },
281
+ children: { items: this.itemSchema.toJSON() },
282
+ };
283
+ }
284
+ validateBound(value) {
285
+ if (!globalThis.Number.isInteger(value) || value < 0) {
286
+ throw new TypeError("Array min/max must be non-negative integers");
287
+ }
288
+ }
289
+ }
290
+ export class ObjectSchema extends NullableCapableSchema {
291
+ shape;
292
+ kind = "object";
293
+ isStrict;
294
+ constructor(shape, strict = false, description) {
295
+ super(description);
296
+ this.shape = shape;
297
+ this.isStrict = strict;
298
+ }
299
+ /**
300
+ * strict() 要求所有声明属性存在,并拒绝未声明属性。
301
+ */
302
+ strict() {
303
+ return new ObjectSchema(this.shape, true, this.getDescription());
304
+ }
305
+ _parse(input, path) {
306
+ if (input === null ||
307
+ typeof input !== "object" ||
308
+ globalThis.Array.isArray(input)) {
309
+ return this.fail("Expected an object", path);
310
+ }
311
+ const source = input;
312
+ const output = {};
313
+ if (this.isStrict) {
314
+ for (const key of Object.keys(source)) {
315
+ if (!(key in this.shape)) {
316
+ this.fail(`Unknown property "${key}"`, [...path, key]);
317
+ }
318
+ }
319
+ }
320
+ for (const [key, schema] of Object.entries(this.shape)) {
321
+ if (!Object.prototype.hasOwnProperty.call(source, key)) {
322
+ if (this.isStrict) {
323
+ this.fail(`Missing required property "${key}"`, [...path, key]);
324
+ }
325
+ continue;
326
+ }
327
+ try {
328
+ output[key] = schema.parse(source[key]);
329
+ }
330
+ catch (error) {
331
+ if (error instanceof SchemaValidationError) {
332
+ throw new SchemaValidationError(error.message, [
333
+ key,
334
+ ...error.path,
335
+ ]);
336
+ }
337
+ throw error;
338
+ }
339
+ }
340
+ // 非 strict 模式允许额外属性,并保留这些属性。
341
+ if (!this.isStrict) {
342
+ for (const [key, value] of Object.entries(source)) {
343
+ if (!(key in this.shape)) {
344
+ assertJSONValue(value, [...path, key]);
345
+ output[key] = value;
346
+ }
347
+ }
348
+ }
349
+ return output;
350
+ }
351
+ _describe() {
352
+ return {
353
+ kind: this.kind,
354
+ constraints: { strict: this.isStrict },
355
+ children: {
356
+ properties: Object.fromEntries(Object.entries(this.shape).map(([key, schema]) => [
357
+ key,
358
+ schema.toJSON(),
359
+ ])),
360
+ },
361
+ };
362
+ }
363
+ }
364
+ export class RecordSchema extends NullableCapableSchema {
365
+ valueSchema;
366
+ kind = "record";
367
+ minimum;
368
+ maximum;
369
+ constructor(valueSchema) {
370
+ super();
371
+ this.valueSchema = valueSchema;
372
+ }
373
+ min(value) {
374
+ this.validateBound(value);
375
+ return this.cloneWith({ minimum: value });
376
+ }
377
+ max(value) {
378
+ this.validateBound(value);
379
+ return this.cloneWith({ maximum: value });
380
+ }
381
+ _parse(input, path) {
382
+ if (input === null ||
383
+ typeof input !== "object" ||
384
+ globalThis.Array.isArray(input)) {
385
+ return this.fail("Expected a record object", path);
386
+ }
387
+ const entries = Object.entries(input);
388
+ if (this.minimum !== undefined && entries.length < this.minimum) {
389
+ return this.fail(`Expected at least ${this.minimum} keys`, path);
390
+ }
391
+ if (this.maximum !== undefined && entries.length > this.maximum) {
392
+ return this.fail(`Expected at most ${this.maximum} keys`, path);
393
+ }
394
+ const output = {};
395
+ for (const [key, value] of entries) {
396
+ try {
397
+ output[key] = this.valueSchema.parse(value);
398
+ }
399
+ catch (error) {
400
+ if (error instanceof SchemaValidationError) {
401
+ throw new SchemaValidationError(error.message, [
402
+ key,
403
+ ...error.path,
404
+ ]);
405
+ }
406
+ throw error;
407
+ }
408
+ }
409
+ return output;
410
+ }
411
+ _describe() {
412
+ return {
413
+ kind: this.kind,
414
+ constraints: {
415
+ ...(this.minimum !== undefined ? { min: this.minimum } : {}),
416
+ ...(this.maximum !== undefined ? { max: this.maximum } : {}),
417
+ },
418
+ children: { values: this.valueSchema.toJSON() },
419
+ };
420
+ }
421
+ validateBound(value) {
422
+ if (!globalThis.Number.isInteger(value) || value < 0) {
423
+ throw new TypeError("Record min/max must be non-negative integers");
424
+ }
425
+ }
426
+ }
427
+ export class UnionSchema extends NullableCapableSchema {
428
+ schemas;
429
+ kind = "union";
430
+ constructor(schemas) {
431
+ super();
432
+ this.schemas = schemas;
433
+ if (schemas.length === 0) {
434
+ throw new TypeError("UnionSchema requires at least one schema");
435
+ }
436
+ }
437
+ _parse(input, path) {
438
+ const errors = [];
439
+ for (const schema of this.schemas) {
440
+ try {
441
+ return schema.parse(input);
442
+ }
443
+ catch (error) {
444
+ if (error instanceof SchemaValidationError) {
445
+ errors.push(error.message);
446
+ continue;
447
+ }
448
+ throw error;
449
+ }
450
+ }
451
+ return this.fail(`Value did not match any union member: ${errors.join("; ")}`, path);
452
+ }
453
+ _describe() {
454
+ return {
455
+ kind: this.kind,
456
+ children: {
457
+ options: this.schemas.map((schema) => schema.toJSON()),
458
+ },
459
+ };
460
+ }
461
+ }
462
+ export class TupleSchema extends NullableCapableSchema {
463
+ schemas;
464
+ kind = "tuple";
465
+ constructor(schemas) {
466
+ super();
467
+ this.schemas = schemas;
468
+ if (schemas.length === 0) {
469
+ throw new TypeError("TupleSchema requires at least one schema");
470
+ }
471
+ }
472
+ _parse(input, path) {
473
+ if (!Array.isArray(input)) {
474
+ return this.fail("Expected an array", path);
475
+ }
476
+ if (input.length !== this.schemas.length) {
477
+ return this.fail(`Expected an array of length ${this.schemas.length}, received ${input.length}`, path);
478
+ }
479
+ const result = [];
480
+ for (let i = 0; i < this.schemas.length; i++) {
481
+ const schema = this.schemas[i];
482
+ try {
483
+ result.push(schema.parse(input[i]));
484
+ }
485
+ catch (error) {
486
+ if (error instanceof SchemaValidationError) {
487
+ return this.fail(error.message, [...path, "" + i]);
488
+ }
489
+ throw error;
490
+ }
491
+ }
492
+ return result;
493
+ }
494
+ _describe() {
495
+ return {
496
+ kind: this.kind,
497
+ children: {
498
+ items: this.schemas.map((schema) => schema.toJSON()),
499
+ },
500
+ };
501
+ }
502
+ }
503
+ export class EnumSchema extends NullableCapableSchema {
504
+ values;
505
+ kind = "enum";
506
+ allowedValues;
507
+ constructor(values) {
508
+ super();
509
+ this.values = values;
510
+ this.allowedValues = new Set(values);
511
+ }
512
+ _parse(input, path) {
513
+ if (typeof input !== "string" || !this.allowedValues.has(input)) {
514
+ return this.fail(`Expected one of: ${this.values.join(", ")}`, path);
515
+ }
516
+ return input;
517
+ }
518
+ _describe() {
519
+ return {
520
+ kind: this.kind,
521
+ constraints: { values: [...this.values] },
522
+ };
523
+ }
524
+ }
525
+ /**
526
+ * 校验任意 JSON 值。
527
+ *
528
+ * 不允许 undefined、非有限数字、循环引用等非 JSON 数据。
529
+ * UnknownSchema 不提供 nullable(),因为 null 本身就是合法值。
530
+ */
531
+ export class UnknownSchema extends Schema {
532
+ kind = "unknown";
533
+ constructor() {
534
+ super();
535
+ }
536
+ _parse(input, path) {
537
+ assertJSONValue(input, path);
538
+ return input;
539
+ }
540
+ _describe() {
541
+ return { kind: this.kind };
542
+ }
543
+ }
544
+ function assertJSONValue(value, path, ancestors = new Set()) {
545
+ if (value === null ||
546
+ typeof value === "string" ||
547
+ typeof value === "boolean") {
548
+ return;
549
+ }
550
+ if (typeof value === "number") {
551
+ if (globalThis.Number.isFinite(value)) {
552
+ return;
553
+ }
554
+ throw new SchemaValidationError("Expected a finite JSON number", path);
555
+ }
556
+ if (typeof value !== "object") {
557
+ throw new SchemaValidationError("Expected a JSON value", path);
558
+ }
559
+ if (ancestors.has(value)) {
560
+ throw new SchemaValidationError("Circular references are not valid JSON", path);
561
+ }
562
+ ancestors.add(value);
563
+ try {
564
+ if (globalThis.Array.isArray(value)) {
565
+ for (let index = 0; index < value.length; index++) {
566
+ if (!(index in value)) {
567
+ throw new SchemaValidationError("Sparse arrays are not valid JSON", [...path, String(index)]);
568
+ }
569
+ assertJSONValue(value[index], [...path, String(index)], ancestors);
570
+ }
571
+ return;
572
+ }
573
+ const prototype = Object.getPrototypeOf(value);
574
+ if (prototype !== Object.prototype && prototype !== null) {
575
+ throw new SchemaValidationError("Expected a plain JSON object", path);
576
+ }
577
+ for (const [key, item] of Object.entries(value)) {
578
+ assertJSONValue(item, [...path, key], ancestors);
579
+ }
580
+ }
581
+ finally {
582
+ ancestors.delete(value);
583
+ }
584
+ }
585
+ export const primitives = {
586
+ string: () => new StringSchema(),
587
+ number: () => new NumberSchema(),
588
+ boolean: () => new BooleanSchema(),
589
+ literal: (value) => new LiteralSchema(value),
590
+ array: (item) => new ArraySchema(item),
591
+ object: (shape) => new ObjectSchema(shape),
592
+ record: (value) => new RecordSchema(value),
593
+ union: (schemas) => new UnionSchema(schemas),
594
+ tuple: (schemas) => new TupleSchema(schemas),
595
+ enum: (values) => new EnumSchema(values),
596
+ unknown: () => new UnknownSchema(),
597
+ };
598
+ //# sourceMappingURL=primitives.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"primitives.js","sourceRoot":"","sources":["../../../src/schema/json/primitives.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,25 @@
1
+ import type { ParamSchema } from '../types';
2
+ export interface ParamMeta {
3
+ kind?: 'void' | 'any' | 'array' | 'boolean' | 'function' | 'number' | 'object' | 'string' | 'symbol' | 'arrayOf' | 'objectOf' | 'shape' | 'oneOf' | 'oneOfType' | 'instanceOf' | 'injectable';
4
+ naming?: string;
5
+ required?: 'none' | 'isRequired' | 'isRequiredNotNull';
6
+ injectable?: string;
7
+ of?: unknown;
8
+ }
9
+ export declare function getMeta(schema: ParamSchema): ParamMeta;
10
+ export declare function setJSONString(schema: ParamSchema, description: string): ParamSchema;
11
+ export declare function toJSONString(schema: ParamSchema): string;
12
+ export declare function voidSchema(): ParamSchema;
13
+ export declare function anySchema(): ParamSchema;
14
+ export declare function injectableSchema(name: string): ParamSchema;
15
+ export declare function named(schema: ParamSchema, naming: string): ParamSchema;
16
+ export declare function required(schema: ParamSchema): ParamSchema;
17
+ export declare function requiredNotNull(schema: ParamSchema): ParamSchema;
18
+ export declare function primitiveSchema(kind: 'void' | 'string' | 'number' | 'boolean' | 'function' | 'object' | 'symbol' | 'array'): ParamSchema;
19
+ export declare function arrayOf(schema: ParamSchema): ParamSchema;
20
+ export declare function objectOf(schema: ParamSchema): ParamSchema;
21
+ export declare function oneOf<T extends readonly [string, ...string[]]>(values: T): ParamSchema;
22
+ export declare function oneOfType(schemas: ParamSchema[]): ParamSchema;
23
+ export declare function shape<T extends Record<string, ParamSchema>>(shapeMap: T): ParamSchema;
24
+ export declare function instanceOf<T extends abstract new (...args: any[]) => any>(cls: T): ParamSchema;
25
+ //# sourceMappingURL=primitives.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"primitives.d.ts","sourceRoot":"","sources":["../../src/schema/primitives.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAE5C,MAAM,WAAW,SAAS;IACxB,IAAI,CAAC,EACH,MAAM,GACN,KAAK,GACL,OAAO,GACP,SAAS,GACT,UAAU,GACV,QAAQ,GACR,QAAQ,GACR,QAAQ,GACR,QAAQ,GACR,SAAS,GACT,UAAU,GACV,OAAO,GACP,OAAO,GACP,WAAW,GACX,YAAY,GACZ,YAAY,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,GAAG,YAAY,GAAG,mBAAmB,CAAC;IACvD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,EAAE,CAAC,EAAE,OAAO,CAAC;CACd;AAOD,wBAAgB,OAAO,CAAC,MAAM,EAAE,WAAW,GAAG,SAAS,CAEtD;AA8BD,wBAAgB,aAAa,CAAC,MAAM,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,GAAG,WAAW,CAInF;AAED,wBAAgB,YAAY,CAAC,MAAM,EAAE,WAAW,GAAG,MAAM,CAMxD;AAED,wBAAgB,UAAU,IAAI,WAAW,CAIxC;AAED,wBAAgB,SAAS,IAAI,WAAW,CAIvC;AAED,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,WAAW,CAI1D;AAED,wBAAgB,KAAK,CAAC,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,GAAG,WAAW,CAKtE;AAED,wBAAgB,QAAQ,CAAC,MAAM,EAAE,WAAW,GAAG,WAAW,CAKzD;AAED,wBAAgB,eAAe,CAAC,MAAM,EAAE,WAAW,GAAG,WAAW,CAKhE;AAED,wBAAgB,eAAe,CAC7B,IAAI,EAAE,MAAM,GAAG,QAAQ,GAAG,QAAQ,GAAG,SAAS,GAAG,UAAU,GAAG,QAAQ,GAAG,QAAQ,GAAG,OAAO,GAC1F,WAAW,CA8Bb;AAED,wBAAgB,OAAO,CAAC,MAAM,EAAE,WAAW,GAAG,WAAW,CAKxD;AAED,wBAAgB,QAAQ,CAAC,MAAM,EAAE,WAAW,GAAG,WAAW,CAKzD;AAED,wBAAgB,KAAK,CAAC,CAAC,SAAS,SAAS,CAAC,MAAM,EAAE,GAAG,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,GAAG,WAAW,CAKtF;AAED,wBAAgB,SAAS,CAAC,OAAO,EAAE,WAAW,EAAE,GAAG,WAAW,CAa7D;AAED,wBAAgB,KAAK,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,EAAE,QAAQ,EAAE,CAAC,GAAG,WAAW,CAOrF;AAED,wBAAgB,UAAU,CAAC,CAAC,SAAS,QAAQ,MAAM,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,EAAE,GAAG,EAAE,CAAC,GAAG,WAAW,CAO9F"}