@yuhere/js-jsonrpc2 2.1.10 → 2.1.11

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 (36) hide show
  1. package/dist/cli/cli.js +9 -1
  2. package/dist/cli/cli.js.map +1 -1
  3. package/dist/cli/demo-methods.d.ts.map +1 -1
  4. package/dist/cli/demo-methods.js +24 -25
  5. package/dist/cli/demo-methods.js.map +1 -1
  6. package/dist/core/Repository.d.ts +3 -7
  7. package/dist/core/Repository.d.ts.map +1 -1
  8. package/dist/core/Repository.js +159 -19
  9. package/dist/core/Repository.js.map +1 -1
  10. package/dist/core/descriptor.d.ts.map +1 -1
  11. package/dist/core/llm-tools.d.ts.map +1 -1
  12. package/dist/core/llm-tools.js +19 -14
  13. package/dist/core/llm-tools.js.map +1 -1
  14. package/dist/core/system-methods.d.ts.map +1 -1
  15. package/dist/core/system-methods.js +22 -6
  16. package/dist/core/system-methods.js.map +1 -1
  17. package/dist/metrics/memory.d.ts +59 -0
  18. package/dist/metrics/memory.d.ts.map +1 -0
  19. package/dist/metrics/memory.js +188 -0
  20. package/dist/metrics/memory.js.map +1 -0
  21. package/dist/metrics/prom.d.ts +1 -0
  22. package/dist/metrics/prom.d.ts.map +1 -0
  23. package/dist/metrics/prom.js +105 -0
  24. package/dist/metrics/prom.js.map +1 -0
  25. package/dist/schema/json/index.d.ts +1 -0
  26. package/dist/schema/json/index.d.ts.map +1 -1
  27. package/dist/schema/json/primitives.d.ts +81 -42
  28. package/dist/schema/json/primitives.d.ts.map +1 -1
  29. package/dist/schema/json/primitives.js +95 -67
  30. package/dist/schema/json/primitives.js.map +1 -1
  31. package/dist/schema/z/protocol.d.ts +1 -1
  32. package/dist/transport/express/middleware.d.ts +1 -1
  33. package/dist/transport/express/middleware.d.ts.map +1 -1
  34. package/dist/types.d.ts +26 -0
  35. package/dist/types.d.ts.map +1 -1
  36. package/package.json +1 -1
@@ -12,6 +12,13 @@ export type SchemaKind = string;
12
12
  export interface SchemaDescription {
13
13
  kind: SchemaKind;
14
14
  description?: string;
15
+ /**
16
+ * 该值是否允许为 null。
17
+ *
18
+ * 唯一真相来源:由 `NullableSchema` 及其子类通过 `.nullable(bool)` 设置,
19
+ * `UnknownSchema` / `NullSchema` 不使用该字段(它们本身就接受 null)。
20
+ * `kind` 永远表示值的真实形状,不会被 nullability 污染。
21
+ */
15
22
  nullable?: boolean;
16
23
  constraints?: Record<string, unknown>;
17
24
  children?: Record<string, unknown>;
@@ -21,10 +28,11 @@ export declare class SchemaValidationError extends Error {
21
28
  constructor(message: string, path?: string[]);
22
29
  }
23
30
  /**
24
- * 所有 Schema 的共同基类。
31
+ * 所有 Schema 的抽象基类。
25
32
  *
26
- * 不包含 nullable(),因此 UnknownSchema 可以天然接受 null,
27
- * 同时不会暴露无意义的 nullable() 方法。
33
+ * 只负责 description 与描述输出;nullability 由 `NullableSchema` 提供。
34
+ * `UnknownSchema` / `NullSchema` 直接继承本类——它们天然接受 null,
35
+ * 不需要 `.nullable()`。
28
36
  */
29
37
  export declare abstract class Schema<T> {
30
38
  abstract readonly kind: SchemaKind;
@@ -33,7 +41,6 @@ export declare abstract class Schema<T> {
33
41
  describe(description: string): this;
34
42
  /**
35
43
  * 创建保留原型和现有字段的新实例,供不可变链式方法使用。
36
- * Schema 子类的状态字段会一并复制,因此扩展类仍保留自身原型和状态。
37
44
  */
38
45
  protected cloneWith(updates: Record<string, unknown>): this;
39
46
  getDescription(): string | undefined;
@@ -51,62 +58,67 @@ export declare abstract class Schema<T> {
51
58
  protected fail(message: string, path: string[]): never;
52
59
  }
53
60
  /**
54
- * 普通 JSON Schema 的基类。
55
- * 通过 nullable() 显式接受 null。
56
- */
57
- export declare abstract class NullableCapableSchema<T> extends Schema<T> {
58
- nullable(): NullableSchema<T>;
59
- }
60
- /**
61
- * nullable 包装器。
61
+ * 支持 nullability 的 Schema 基类。
62
+ *
63
+ * 除 `UnknownSchema` / `NullSchema` 外的所有具体 Schema 都继承本类。
64
+ *
65
+ * - `nullable()` / `nullable(true)` → 允许 null
66
+ * - `nullable(false)` → 不允许 null(撤销之前的标记)
62
67
  *
63
- * 注意:NullableSchema 不提供 nullable(),
64
- * 避免无意义的重复 nullable 调用。
68
+ * `_parse` 在调用子类 `_parseValue` 前统一做 null 短路;
69
+ * `toJSON()` 在基类输出上附加 `nullable: true`。
65
70
  */
66
- export declare class NullableSchema<T> extends Schema<T | null> {
67
- private readonly inner;
68
- readonly kind: "nullable";
69
- constructor(inner: Schema<T>);
71
+ export declare abstract class NullableSchema<T> extends Schema<T | null> {
72
+ private _nullable;
73
+ nullable(value?: boolean): this;
74
+ isNullable(): boolean;
70
75
  protected _parse(input: unknown, path: string[]): T | null;
71
- protected _describe(): SchemaDescription;
76
+ protected abstract _parseValue(input: unknown, path: string[]): T;
77
+ toJSON(): SchemaDescription;
72
78
  }
73
- export declare class StringSchema<K extends string = "string"> extends NullableCapableSchema<string> {
79
+ export declare class StringSchema<K extends string = "string"> extends NullableSchema<string> {
74
80
  readonly kind: K;
75
81
  constructor();
76
82
  private minimum?;
77
83
  private maximum?;
78
84
  min(value: number): this;
79
85
  max(value: number): this;
80
- protected _parse(input: unknown, path: string[]): string;
86
+ protected _parseValue(input: unknown, path: string[]): string;
81
87
  protected _describe(): SchemaDescription;
82
88
  protected validateBound(value: number): void;
83
89
  }
84
- export declare class NumberSchema extends NullableCapableSchema<number> {
90
+ export declare class NumberSchema extends NullableSchema<number> {
85
91
  readonly kind: "number";
86
92
  constructor();
87
93
  private minimum?;
88
94
  private maximum?;
89
95
  min(value: number): this;
90
96
  max(value: number): this;
91
- protected _parse(input: unknown, path: string[]): number;
97
+ protected _parseValue(input: unknown, path: string[]): number;
92
98
  protected _describe(): SchemaDescription;
93
99
  protected validateBound(value: number): void;
94
100
  }
95
- export declare class BooleanSchema extends NullableCapableSchema<boolean> {
101
+ export declare class BooleanSchema extends NullableSchema<boolean> {
96
102
  readonly kind: "boolean";
97
103
  constructor();
98
- protected _parse(input: unknown, path: string[]): boolean;
104
+ protected _parseValue(input: unknown, path: string[]): boolean;
99
105
  protected _describe(): SchemaDescription;
100
106
  }
101
- export type LiteralValue = string | number | boolean | null;
102
- export declare class LiteralSchema<const T extends LiteralValue> extends NullableCapableSchema<T> {
107
+ /**
108
+ * 字面量只支持 string / number / boolean。
109
+ *
110
+ * null 由 `s.null()` 表达;需要「该字面量或 null」时,对字面量调用
111
+ * `.nullable()`。`literal(null)` 会抛 TypeError。
112
+ */
113
+ export type LiteralValue = string | number | boolean;
114
+ export declare class LiteralSchema<const T extends LiteralValue> extends NullableSchema<T> {
103
115
  private readonly expected;
104
116
  readonly kind: "literal";
105
117
  constructor(expected: T);
106
- protected _parse(input: unknown, path: string[]): T;
118
+ protected _parseValue(input: unknown, path: string[]): T;
107
119
  protected _describe(): SchemaDescription;
108
120
  }
109
- export declare class ArraySchema<T> extends NullableCapableSchema<T[]> {
121
+ export declare class ArraySchema<T> extends NullableSchema<T[]> {
110
122
  private readonly itemSchema;
111
123
  readonly kind: "array";
112
124
  private minimum?;
@@ -114,7 +126,7 @@ export declare class ArraySchema<T> extends NullableCapableSchema<T[]> {
114
126
  constructor(itemSchema: Schema<T>);
115
127
  min(value: number): this;
116
128
  max(value: number): this;
117
- protected _parse(input: unknown, path: string[]): T[];
129
+ protected _parseValue(input: unknown, path: string[]): T[];
118
130
  protected _describe(): SchemaDescription;
119
131
  protected validateBound(value: number): void;
120
132
  }
@@ -126,7 +138,7 @@ type ShapeOutput<S extends ObjectShape> = {
126
138
  type OptionalShapeOutput<S extends ObjectShape> = {
127
139
  [K in keyof S]?: SchemaValue<S[K]>;
128
140
  };
129
- export declare class ObjectSchema<S extends ObjectShape, Strict extends boolean = false> extends NullableCapableSchema<Strict extends true ? ShapeOutput<S> : OptionalShapeOutput<S>> {
141
+ export declare class ObjectSchema<S extends ObjectShape, Strict extends boolean = false> extends NullableSchema<Strict extends true ? ShapeOutput<S> : OptionalShapeOutput<S>> {
130
142
  private readonly shape;
131
143
  readonly kind: "object";
132
144
  private isStrict;
@@ -135,10 +147,10 @@ export declare class ObjectSchema<S extends ObjectShape, Strict extends boolean
135
147
  * strict() 要求所有声明属性存在,并拒绝未声明属性。
136
148
  */
137
149
  strict(): ObjectSchema<S, true>;
138
- protected _parse(input: unknown, path: string[]): Strict extends true ? ShapeOutput<S> : OptionalShapeOutput<S>;
150
+ protected _parseValue(input: unknown, path: string[]): Strict extends true ? ShapeOutput<S> : OptionalShapeOutput<S>;
139
151
  protected _describe(): SchemaDescription;
140
152
  }
141
- export declare class RecordSchema<T> extends NullableCapableSchema<Record<string, T>> {
153
+ export declare class RecordSchema<T> extends NullableSchema<Record<string, T>> {
142
154
  private readonly valueSchema;
143
155
  readonly kind: "record";
144
156
  private minimum?;
@@ -146,37 +158,51 @@ export declare class RecordSchema<T> extends NullableCapableSchema<Record<string
146
158
  constructor(valueSchema: Schema<T>);
147
159
  min(value: number): this;
148
160
  max(value: number): this;
149
- protected _parse(input: unknown, path: string[]): Record<string, T>;
161
+ protected _parseValue(input: unknown, path: string[]): Record<string, T>;
150
162
  protected _describe(): SchemaDescription;
151
163
  protected validateBound(value: number): void;
152
164
  }
153
- export declare class UnionSchema<const S extends readonly [Schema<unknown>, ...Schema<unknown>[]]> extends NullableCapableSchema<SchemaValue<S[number]>> {
154
- private readonly schemas;
165
+ /**
166
+ * 联合。
167
+ *
168
+ * 传入的 member schemas 会被 clone 并 `nullable(false)`——因为「某个
169
+ * 分支允许 null」这件事在 union 层面没有意义:null 是否允许应通过
170
+ * `union(...).nullable()` 统一表达。
171
+ */
172
+ export declare class UnionSchema<const S extends readonly [Schema<unknown>, ...Schema<unknown>[]]> extends NullableSchema<SchemaValue<S[number]>> {
155
173
  readonly kind: "union";
174
+ private readonly options;
156
175
  constructor(schemas: S);
157
- protected _parse(input: unknown, path: string[]): SchemaValue<S[number]>;
176
+ protected _parseValue(input: unknown, path: string[]): SchemaValue<S[number]>;
158
177
  protected _describe(): SchemaDescription;
159
178
  }
160
- export declare class TupleSchema<const S extends readonly [Schema<unknown>, ...Schema<unknown>[]]> extends NullableCapableSchema<SchemaValue<S[number]>[]> {
179
+ export declare class TupleSchema<const S extends readonly [Schema<unknown>, ...Schema<unknown>[]]> extends NullableSchema<SchemaValue<S[number]>[]> {
161
180
  private readonly schemas;
162
181
  readonly kind: "tuple";
163
182
  constructor(schemas: S);
164
- protected _parse(input: unknown, path: string[]): SchemaValue<S[number]>[];
183
+ protected _parseValue(input: unknown, path: string[]): SchemaValue<S[number]>[];
165
184
  protected _describe(): SchemaDescription;
166
185
  }
167
- export declare class EnumSchema<const T extends readonly [string, ...string[]]> extends NullableCapableSchema<T[number]> {
186
+ /**
187
+ * 字符串枚举。
188
+ *
189
+ * 继承 `NullableSchema`,因此可以 `s.enum([...]).nullable()`;
190
+ * 它不包含嵌套 schema,所以不需要像 union 那样处理成员 nullability。
191
+ */
192
+ export declare class EnumSchema<const T extends readonly [string, ...string[]]> extends NullableSchema<T[number]> {
168
193
  private readonly values;
169
194
  readonly kind: "enum";
170
195
  private readonly allowedValues;
171
196
  constructor(values: T);
172
- protected _parse(input: unknown, path: string[]): T[number];
197
+ protected _parseValue(input: unknown, path: string[]): T[number];
173
198
  protected _describe(): SchemaDescription;
174
199
  }
175
200
  /**
176
201
  * 校验任意 JSON 值。
177
202
  *
178
203
  * 不允许 undefined、非有限数字、循环引用等非 JSON 数据。
179
- * UnknownSchema 不提供 nullable(),因为 null 本身就是合法值。
204
+ * null 本身就在接受范围内,因此不继承 `NullableSchema`,也不提供
205
+ * `.nullable()`——那是冗余的。
180
206
  */
181
207
  export declare class UnknownSchema extends Schema<JSONValue> {
182
208
  readonly kind: "unknown";
@@ -184,6 +210,18 @@ export declare class UnknownSchema extends Schema<JSONValue> {
184
210
  protected _parse(input: unknown, path: string[]): JSONValue;
185
211
  protected _describe(): SchemaDescription;
186
212
  }
213
+ /**
214
+ * 精确的 null 值。
215
+ *
216
+ * 与 `UnknownSchema` 一样天然表达 null,不需要 `.nullable()`。
217
+ * 想表达「某类型或 null」用 `.nullable()`;想表达「就是 null」用 `s.null()`。
218
+ */
219
+ export declare class NullSchema extends Schema<null> {
220
+ readonly kind: "null";
221
+ constructor();
222
+ protected _parse(input: unknown, path: string[]): null;
223
+ protected _describe(): SchemaDescription;
224
+ }
187
225
  export type Infer<T extends Schema<unknown>> = T extends Schema<infer U> ? U : never;
188
226
  export declare const primitives: {
189
227
  string: () => StringSchema<"string">;
@@ -197,6 +235,7 @@ export declare const primitives: {
197
235
  tuple: <const S extends readonly [Schema<unknown>, ...Schema<unknown>[]]>(schemas: S) => TupleSchema<S>;
198
236
  enum: <const T extends readonly [string, ...string[]]>(values: T) => EnumSchema<T>;
199
237
  unknown: () => UnknownSchema;
238
+ null: () => NullSchema;
200
239
  };
201
240
  export {};
202
241
  //# sourceMappingURL=primitives.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"primitives.d.ts","sourceRoot":"","sources":["../../../src/schema/json/primitives.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"primitives.d.ts","sourceRoot":"","sources":["../../../src/schema/json/primitives.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,MAAM,MAAM,aAAa,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,CAAC;AAE7D,MAAM,MAAM,SAAS,GACjB,aAAa,GACb,SAAS,EAAE,GACX;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,CAAA;CAAE,CAAC;AAEjC,MAAM,MAAM,UAAU,GAAG,MAAM,CAAC;AAEhC,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,UAAU,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;;;;OAMG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACtC,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC;AAED,qBAAa,qBAAsB,SAAQ,KAAK;aAG5B,IAAI,EAAE,MAAM,EAAE;IAFhC,YACE,OAAO,EAAE,MAAM,EACC,IAAI,GAAE,MAAM,EAAO,EAIpC;CACF;AAED;;;;;;GAMG;AACH,8BAAsB,MAAM,CAAC,CAAC;IAC5B,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;IAEnC,OAAO,CAAC,WAAW,CAAC,CAAqB;IAEzC,YAAY,WAAW,CAAC,EAAE,MAAM,EAE/B;IAED,QAAQ,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAElC;IAED;;OAEG;IACH,SAAS,CAAC,SAAS,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAO1D;IAED,cAAc,IAAI,MAAM,GAAG,SAAS,CAEnC;IAED,KAAK,CAAC,KAAK,EAAE,OAAO,GAAG,CAAC,CAEvB;IAED,SAAS,CACP,KAAK,EAAE,OAAO,GAEZ;QAAE,OAAO,EAAE,IAAI,CAAC;QAAC,IAAI,EAAE,CAAC,CAAA;KAAE,GAC1B;QAAE,OAAO,EAAE,KAAK,CAAC;QAAC,KAAK,EAAE,qBAAqB,CAAA;KAAE,CAUnD;IAED,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC;IAE7D,SAAS,CAAC,QAAQ,CAAC,SAAS,IAAI,iBAAiB,CAAC;IAElD,MAAM,IAAI,iBAAiB,CAS1B;IAED,SAAS,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,KAAK,CAErD;CACF;AAED;;;;;;;;;;GAUG;AACH,8BAAsB,cAAc,CAAC,CAAC,CAAE,SAAQ,MAAM,CAAC,CAAC,GAAG,IAAI,CAAC;IAC9D,OAAO,CAAC,SAAS,CAAkB;IAEnC,QAAQ,CAAC,KAAK,GAAE,OAAc,GAAG,IAAI,CAEpC;IAED,UAAU,IAAI,OAAO,CAEpB;IAED,SAAS,CAAC,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI,CAKzD;IAED,SAAS,CAAC,QAAQ,CAAC,WAAW,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC;IAEzD,MAAM,IAAI,iBAAiB,CAMnC;CACF;AAED,qBAAa,YAAY,CAAC,CAAC,SAAS,MAAM,GAAG,QAAQ,CAAE,SAAQ,cAAc,CAAC,MAAM,CAAC;IACnF,QAAQ,CAAC,IAAI,EAAe,CAAC,CAAC;IAE9B,cAEC;IAED,OAAO,CAAC,OAAO,CAAC,CAAS;IACzB,OAAO,CAAC,OAAO,CAAC,CAAS;IAEzB,GAAG,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAGvB;IAED,GAAG,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAGvB;IAED,SAAS,CAAC,WAAW,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,MAAM,CAc5D;IAED,SAAS,CAAC,SAAS,IAAI,iBAAiB,CAQvC;IAED,SAAS,CAAC,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAI3C;CACF;AAED,qBAAa,YAAa,SAAQ,cAAc,CAAC,MAAM,CAAC;IACtD,QAAQ,CAAC,IAAI,EAAG,QAAQ,CAAU;IAElC,cAEC;IAED,OAAO,CAAC,OAAO,CAAC,CAAS;IACzB,OAAO,CAAC,OAAO,CAAC,CAAS;IAEzB,GAAG,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAGvB;IAED,GAAG,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAGvB;IAED,SAAS,CAAC,WAAW,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,MAAM,CAc5D;IAED,SAAS,CAAC,SAAS,IAAI,iBAAiB,CAQvC;IAED,SAAS,CAAC,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAI3C;CACF;AAED,qBAAa,aAAc,SAAQ,cAAc,CAAC,OAAO,CAAC;IACxD,QAAQ,CAAC,IAAI,EAAG,SAAS,CAAU;IAEnC,cAEC;IAED,SAAS,CAAC,WAAW,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAM7D;IAED,SAAS,CAAC,SAAS,IAAI,iBAAiB,CAEvC;CACF;AAED;;;;;GAKG;AACH,MAAM,MAAM,YAAY,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;AAErD,qBAAa,aAAa,CACxB,KAAK,CAAC,CAAC,SAAS,YAAY,CAC5B,SAAQ,cAAc,CAAC,CAAC,CAAC;IAGb,OAAO,CAAC,QAAQ,CAAC,QAAQ;IAFrC,QAAQ,CAAC,IAAI,EAAG,SAAS,CAAU;IAEnC,YAA6B,QAAQ,EAAE,CAAC,EAavC;IAED,SAAS,CAAC,WAAW,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,CAAC,CAQvD;IAED,SAAS,CAAC,SAAS,IAAI,iBAAiB,CAKvC;CACF;AAED,qBAAa,WAAW,CAAC,CAAC,CAAE,SAAQ,cAAc,CAAC,CAAC,EAAE,CAAC;IAMzC,OAAO,CAAC,QAAQ,CAAC,UAAU;IALvC,QAAQ,CAAC,IAAI,EAAG,OAAO,CAAU;IAEjC,OAAO,CAAC,OAAO,CAAC,CAAS;IACzB,OAAO,CAAC,OAAO,CAAC,CAAS;IAEzB,YAA6B,UAAU,EAAE,MAAM,CAAC,CAAC,CAAC,EAEjD;IAED,GAAG,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAGvB;IAED,GAAG,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAGvB;IAED,SAAS,CAAC,WAAW,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,CA2BzD;IAED,SAAS,CAAC,SAAS,IAAI,iBAAiB,CASvC;IAED,SAAS,CAAC,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAI3C;CACF;AAED,MAAM,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;AAE1D,KAAK,WAAW,CAAC,CAAC,IAAI,CAAC,SAAS,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;AAE5D,KAAK,WAAW,CAAC,CAAC,SAAS,WAAW,IAAI;KACvC,CAAC,IAAI,MAAM,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CAClC,CAAC;AAEF,KAAK,mBAAmB,CAAC,CAAC,SAAS,WAAW,IAAI;KAC/C,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CACnC,CAAC;AAEF,qBAAa,YAAY,CACvB,CAAC,SAAS,WAAW,EACrB,MAAM,SAAS,OAAO,GAAG,KAAK,CAC9B,SAAQ,cAAc,CACtB,MAAM,SAAS,IAAI,GAAG,WAAW,CAAC,CAAC,CAAC,GAAG,mBAAmB,CAAC,CAAC,CAAC,CAC9D;IAMG,OAAO,CAAC,QAAQ,CAAC,KAAK;IALxB,QAAQ,CAAC,IAAI,EAAG,QAAQ,CAAU;IAElC,OAAO,CAAC,QAAQ,CAAU;IAE1B,YACmB,KAAK,EAAE,CAAC,EACzB,MAAM,GAAE,MAAwB,EAChC,WAAW,CAAC,EAAE,MAAM,EAIrB;IAED;;OAEG;IACH,MAAM,IAAI,YAAY,CAAC,CAAC,EAAE,IAAI,CAAC,CAE9B;IAED,SAAS,CAAC,WAAW,CACnB,KAAK,EAAE,OAAO,EACd,IAAI,EAAE,MAAM,EAAE,GACb,MAAM,SAAS,IAAI,GAAG,WAAW,CAAC,CAAC,CAAC,GAAG,mBAAmB,CAAC,CAAC,CAAC,CAwD/D;IAED,SAAS,CAAC,SAAS,IAAI,iBAAiB,CAavC;CACF;AAED,qBAAa,YAAY,CAAC,CAAC,CAAE,SAAQ,cAAc,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;IAMxD,OAAO,CAAC,QAAQ,CAAC,WAAW;IALxC,QAAQ,CAAC,IAAI,EAAG,QAAQ,CAAU;IAElC,OAAO,CAAC,OAAO,CAAC,CAAS;IACzB,OAAO,CAAC,OAAO,CAAC,CAAS;IAEzB,YAA6B,WAAW,EAAE,MAAM,CAAC,CAAC,CAAC,EAElD;IAED,GAAG,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAGvB;IAED,GAAG,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAGvB;IAED,SAAS,CAAC,WAAW,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAqCvE;IAED,SAAS,CAAC,SAAS,IAAI,iBAAiB,CASvC;IAED,SAAS,CAAC,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAI3C;CACF;AAED;;;;;;GAMG;AACH,qBAAa,WAAW,CACtB,KAAK,CAAC,CAAC,SAAS,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,GAAG,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,CAChE,SAAQ,cAAc,CAAC,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;IAC9C,QAAQ,CAAC,IAAI,EAAG,OAAO,CAAU;IAEjC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAoB;IAE5C,YAAY,OAAO,EAAE,CAAC,EAarB;IAED,SAAS,CAAC,WAAW,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAmB5E;IAED,SAAS,CAAC,SAAS,IAAI,iBAAiB,CAOvC;CACF;AAED,qBAAa,WAAW,CACtB,KAAK,CAAC,CAAC,SAAS,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,GAAG,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,CAChE,SAAQ,cAAc,CAAC,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC;IAGpC,OAAO,CAAC,QAAQ,CAAC,OAAO;IAFpC,QAAQ,CAAC,IAAI,EAAG,OAAO,CAAU;IAEjC,YAA6B,OAAO,EAAE,CAAC,EAKtC;IAED,SAAS,CAAC,WAAW,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAyB9E;IAED,SAAS,CAAC,SAAS,IAAI,iBAAiB,CAOvC;CACF;AAED;;;;;GAKG;AACH,qBAAa,UAAU,CACrB,KAAK,CAAC,CAAC,SAAS,SAAS,CAAC,MAAM,EAAE,GAAG,MAAM,EAAE,CAAC,CAC9C,SAAQ,cAAc,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;IAKrB,OAAO,CAAC,QAAQ,CAAC,MAAM;IAJnC,QAAQ,CAAC,IAAI,EAAG,MAAM,CAAU;IAEhC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAc;IAE5C,YAA6B,MAAM,EAAE,CAAC,EAGrC;IAED,SAAS,CAAC,WAAW,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC,MAAM,CAAC,CAS/D;IAED,SAAS,CAAC,SAAS,IAAI,iBAAiB,CAKvC;CACF;AAED;;;;;;GAMG;AACH,qBAAa,aAAc,SAAQ,MAAM,CAAC,SAAS,CAAC;IAClD,QAAQ,CAAC,IAAI,EAAG,SAAS,CAAU;IAEnC,cAEC;IAED,SAAS,CAAC,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,SAAS,CAG1D;IAED,SAAS,CAAC,SAAS,IAAI,iBAAiB,CAEvC;CACF;AAED;;;;;GAKG;AACH,qBAAa,UAAW,SAAQ,MAAM,CAAC,IAAI,CAAC;IAC1C,QAAQ,CAAC,IAAI,EAAG,MAAM,CAAU;IAEhC,cAEC;IAED,SAAS,CAAC,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,IAAI,CAKrD;IAED,SAAS,CAAC,SAAS,IAAI,iBAAiB,CAEvC;CACF;AAwED,MAAM,MAAM,KAAK,CAAC,CAAC,SAAS,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;AAErF,eAAO,MAAM,UAAU;IACrB,MAAM;IACN,MAAM;IACN,OAAO;IACP,OAAO,GAAG,KAAK,CAAC,CAAC,SAAS,YAAY,SAAS,CAAC;IAEhD,KAAK,GAAG,CAAC,QAAQ,MAAM,CAAC,CAAC,CAAC;IAC1B,MAAM,GAAG,CAAC,SAAS,WAAW,SAAS,CAAC;IACxC,MAAM,GAAG,CAAC,SAAS,MAAM,CAAC,CAAC,CAAC;IAC5B,KAAK,GAAG,KAAK,CAAC,CAAC,SAAS,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,GAAG,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,WAC7D,CAAC;IAEZ,KAAK,GAAG,KAAK,CAAC,CAAC,SAAS,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,GAAG,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,WAC7D,CAAC;IAEZ,IAAI,GAAG,KAAK,CAAC,CAAC,SAAS,SAAS,CAAC,MAAM,EAAE,GAAG,MAAM,EAAE,CAAC,UAAU,CAAC;IAEhE,OAAO;IACP,IAAI;CACL,CAAC"}
@@ -7,10 +7,11 @@ export class SchemaValidationError extends Error {
7
7
  }
8
8
  }
9
9
  /**
10
- * 所有 Schema 的共同基类。
10
+ * 所有 Schema 的抽象基类。
11
11
  *
12
- * 不包含 nullable(),因此 UnknownSchema 可以天然接受 null,
13
- * 同时不会暴露无意义的 nullable() 方法。
12
+ * 只负责 description 与描述输出;nullability 由 `NullableSchema` 提供。
13
+ * `UnknownSchema` / `NullSchema` 直接继承本类——它们天然接受 null,
14
+ * 不需要 `.nullable()`。
14
15
  */
15
16
  export class Schema {
16
17
  description;
@@ -22,7 +23,6 @@ export class Schema {
22
23
  }
23
24
  /**
24
25
  * 创建保留原型和现有字段的新实例,供不可变链式方法使用。
25
- * Schema 子类的状态字段会一并复制,因此扩展类仍保留自身原型和状态。
26
26
  */
27
27
  cloneWith(updates) {
28
28
  const clone = Object.assign(Object.create(Object.getPrototypeOf(this)), this);
@@ -58,53 +58,39 @@ export class Schema {
58
58
  }
59
59
  }
60
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 包装器。
61
+ * 支持 nullability 的 Schema 基类。
71
62
  *
72
- * 注意:NullableSchema 不提供 nullable(),
73
- * 避免无意义的重复 nullable 调用。
63
+ * 除 `UnknownSchema` / `NullSchema` 外的所有具体 Schema 都继承本类。
64
+ *
65
+ * - `nullable()` / `nullable(true)` → 允许 null
66
+ * - `nullable(false)` → 不允许 null(撤销之前的标记)
67
+ *
68
+ * `_parse` 在调用子类 `_parseValue` 前统一做 null 短路;
69
+ * `toJSON()` 在基类输出上附加 `nullable: true`。
74
70
  */
75
71
  export class NullableSchema extends Schema {
76
- inner;
77
- kind = "nullable";
78
- constructor(inner) {
79
- super();
80
- this.inner = inner;
72
+ _nullable = false;
73
+ nullable(value = true) {
74
+ return this.cloneWith({ _nullable: value });
75
+ }
76
+ isNullable() {
77
+ return this._nullable;
81
78
  }
82
79
  _parse(input, path) {
83
- if (input === null) {
80
+ if (this._nullable && input === null) {
84
81
  return null;
85
82
  }
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
- }
83
+ return this._parseValue(input, path);
98
84
  }
99
- _describe() {
100
- return {
101
- kind: "nullable",
102
- nullable: true,
103
- children: { inner: this.inner.toJSON() },
104
- };
85
+ toJSON() {
86
+ const result = super.toJSON();
87
+ if (this._nullable) {
88
+ result.nullable = true;
89
+ }
90
+ return result;
105
91
  }
106
92
  }
107
- export class StringSchema extends NullableCapableSchema {
93
+ export class StringSchema extends NullableSchema {
108
94
  kind = "string";
109
95
  constructor() {
110
96
  super();
@@ -119,7 +105,7 @@ export class StringSchema extends NullableCapableSchema {
119
105
  this.validateBound(value);
120
106
  return this.cloneWith({ maximum: value });
121
107
  }
122
- _parse(input, path) {
108
+ _parseValue(input, path) {
123
109
  if (typeof input !== "string") {
124
110
  return this.fail("Expected a string", path);
125
111
  }
@@ -146,7 +132,7 @@ export class StringSchema extends NullableCapableSchema {
146
132
  }
147
133
  }
148
134
  }
149
- export class NumberSchema extends NullableCapableSchema {
135
+ export class NumberSchema extends NullableSchema {
150
136
  kind = "number";
151
137
  constructor() {
152
138
  super();
@@ -161,7 +147,7 @@ export class NumberSchema extends NullableCapableSchema {
161
147
  this.validateBound(value);
162
148
  return this.cloneWith({ maximum: value });
163
149
  }
164
- _parse(input, path) {
150
+ _parseValue(input, path) {
165
151
  if (typeof input !== "number" || !globalThis.Number.isFinite(input)) {
166
152
  return this.fail("Expected a finite number", path);
167
153
  }
@@ -188,12 +174,12 @@ export class NumberSchema extends NullableCapableSchema {
188
174
  }
189
175
  }
190
176
  }
191
- export class BooleanSchema extends NullableCapableSchema {
177
+ export class BooleanSchema extends NullableSchema {
192
178
  kind = "boolean";
193
179
  constructor() {
194
180
  super();
195
181
  }
196
- _parse(input, path) {
182
+ _parseValue(input, path) {
197
183
  if (typeof input !== "boolean") {
198
184
  return this.fail("Expected a boolean", path);
199
185
  }
@@ -203,7 +189,7 @@ export class BooleanSchema extends NullableCapableSchema {
203
189
  return { kind: this.kind };
204
190
  }
205
191
  }
206
- export class LiteralSchema extends NullableCapableSchema {
192
+ export class LiteralSchema extends NullableSchema {
207
193
  expected;
208
194
  kind = "literal";
209
195
  constructor(expected) {
@@ -212,11 +198,12 @@ export class LiteralSchema extends NullableCapableSchema {
212
198
  if (typeof expected === "number" && !Number.isFinite(expected)) {
213
199
  throw new TypeError("LiteralSchema expected number must be finite");
214
200
  }
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");
201
+ if (expected === null || !["string", "number", "boolean"].includes(typeof expected)) {
202
+ throw new TypeError("LiteralSchema expected value must be a string, number, or boolean. " +
203
+ "Use s.null() for null, or .nullable() to allow null alongside a literal.");
217
204
  }
218
205
  }
219
- _parse(input, path) {
206
+ _parseValue(input, path) {
220
207
  if (input !== this.expected) {
221
208
  return this.fail(`Expected literal ${JSON.stringify(this.expected)}`, path);
222
209
  }
@@ -229,7 +216,7 @@ export class LiteralSchema extends NullableCapableSchema {
229
216
  };
230
217
  }
231
218
  }
232
- export class ArraySchema extends NullableCapableSchema {
219
+ export class ArraySchema extends NullableSchema {
233
220
  itemSchema;
234
221
  kind = "array";
235
222
  minimum;
@@ -246,7 +233,7 @@ export class ArraySchema extends NullableCapableSchema {
246
233
  this.validateBound(value);
247
234
  return this.cloneWith({ maximum: value });
248
235
  }
249
- _parse(input, path) {
236
+ _parseValue(input, path) {
250
237
  if (!globalThis.Array.isArray(input)) {
251
238
  return this.fail("Expected an array", path);
252
239
  }
@@ -287,7 +274,7 @@ export class ArraySchema extends NullableCapableSchema {
287
274
  }
288
275
  }
289
276
  }
290
- export class ObjectSchema extends NullableCapableSchema {
277
+ export class ObjectSchema extends NullableSchema {
291
278
  shape;
292
279
  kind = "object";
293
280
  isStrict;
@@ -302,7 +289,7 @@ export class ObjectSchema extends NullableCapableSchema {
302
289
  strict() {
303
290
  return new ObjectSchema(this.shape, true, this.getDescription());
304
291
  }
305
- _parse(input, path) {
292
+ _parseValue(input, path) {
306
293
  if (input === null ||
307
294
  typeof input !== "object" ||
308
295
  globalThis.Array.isArray(input)) {
@@ -361,7 +348,7 @@ export class ObjectSchema extends NullableCapableSchema {
361
348
  };
362
349
  }
363
350
  }
364
- export class RecordSchema extends NullableCapableSchema {
351
+ export class RecordSchema extends NullableSchema {
365
352
  valueSchema;
366
353
  kind = "record";
367
354
  minimum;
@@ -378,7 +365,7 @@ export class RecordSchema extends NullableCapableSchema {
378
365
  this.validateBound(value);
379
366
  return this.cloneWith({ maximum: value });
380
367
  }
381
- _parse(input, path) {
368
+ _parseValue(input, path) {
382
369
  if (input === null ||
383
370
  typeof input !== "object" ||
384
371
  globalThis.Array.isArray(input)) {
@@ -424,19 +411,31 @@ export class RecordSchema extends NullableCapableSchema {
424
411
  }
425
412
  }
426
413
  }
427
- export class UnionSchema extends NullableCapableSchema {
428
- schemas;
414
+ /**
415
+ * 联合。
416
+ *
417
+ * 传入的 member schemas 会被 clone 并 `nullable(false)`——因为「某个
418
+ * 分支允许 null」这件事在 union 层面没有意义:null 是否允许应通过
419
+ * `union(...).nullable()` 统一表达。
420
+ */
421
+ export class UnionSchema extends NullableSchema {
429
422
  kind = "union";
423
+ options;
430
424
  constructor(schemas) {
431
425
  super();
432
- this.schemas = schemas;
433
426
  if (schemas.length === 0) {
434
427
  throw new TypeError("UnionSchema requires at least one schema");
435
428
  }
429
+ this.options = schemas.map((schema) => {
430
+ if (schema instanceof NullableSchema) {
431
+ return schema.nullable(false);
432
+ }
433
+ return schema;
434
+ });
436
435
  }
437
- _parse(input, path) {
436
+ _parseValue(input, path) {
438
437
  const errors = [];
439
- for (const schema of this.schemas) {
438
+ for (const schema of this.options) {
440
439
  try {
441
440
  return schema.parse(input);
442
441
  }
@@ -454,12 +453,12 @@ export class UnionSchema extends NullableCapableSchema {
454
453
  return {
455
454
  kind: this.kind,
456
455
  children: {
457
- options: this.schemas.map((schema) => schema.toJSON()),
456
+ options: this.options.map((schema) => schema.toJSON()),
458
457
  },
459
458
  };
460
459
  }
461
460
  }
462
- export class TupleSchema extends NullableCapableSchema {
461
+ export class TupleSchema extends NullableSchema {
463
462
  schemas;
464
463
  kind = "tuple";
465
464
  constructor(schemas) {
@@ -469,7 +468,7 @@ export class TupleSchema extends NullableCapableSchema {
469
468
  throw new TypeError("TupleSchema requires at least one schema");
470
469
  }
471
470
  }
472
- _parse(input, path) {
471
+ _parseValue(input, path) {
473
472
  if (!Array.isArray(input)) {
474
473
  return this.fail("Expected an array", path);
475
474
  }
@@ -500,7 +499,13 @@ export class TupleSchema extends NullableCapableSchema {
500
499
  };
501
500
  }
502
501
  }
503
- export class EnumSchema extends NullableCapableSchema {
502
+ /**
503
+ * 字符串枚举。
504
+ *
505
+ * 继承 `NullableSchema`,因此可以 `s.enum([...]).nullable()`;
506
+ * 它不包含嵌套 schema,所以不需要像 union 那样处理成员 nullability。
507
+ */
508
+ export class EnumSchema extends NullableSchema {
504
509
  values;
505
510
  kind = "enum";
506
511
  allowedValues;
@@ -509,7 +514,7 @@ export class EnumSchema extends NullableCapableSchema {
509
514
  this.values = values;
510
515
  this.allowedValues = new Set(values);
511
516
  }
512
- _parse(input, path) {
517
+ _parseValue(input, path) {
513
518
  if (typeof input !== "string" || !this.allowedValues.has(input)) {
514
519
  return this.fail(`Expected one of: ${this.values.join(", ")}`, path);
515
520
  }
@@ -526,7 +531,8 @@ export class EnumSchema extends NullableCapableSchema {
526
531
  * 校验任意 JSON 值。
527
532
  *
528
533
  * 不允许 undefined、非有限数字、循环引用等非 JSON 数据。
529
- * UnknownSchema 不提供 nullable(),因为 null 本身就是合法值。
534
+ * null 本身就在接受范围内,因此不继承 `NullableSchema`,也不提供
535
+ * `.nullable()`——那是冗余的。
530
536
  */
531
537
  export class UnknownSchema extends Schema {
532
538
  kind = "unknown";
@@ -541,6 +547,27 @@ export class UnknownSchema extends Schema {
541
547
  return { kind: this.kind };
542
548
  }
543
549
  }
550
+ /**
551
+ * 精确的 null 值。
552
+ *
553
+ * 与 `UnknownSchema` 一样天然表达 null,不需要 `.nullable()`。
554
+ * 想表达「某类型或 null」用 `.nullable()`;想表达「就是 null」用 `s.null()`。
555
+ */
556
+ export class NullSchema extends Schema {
557
+ kind = "null";
558
+ constructor() {
559
+ super();
560
+ }
561
+ _parse(input, path) {
562
+ if (input !== null) {
563
+ return this.fail("Expected null", path);
564
+ }
565
+ return null;
566
+ }
567
+ _describe() {
568
+ return { kind: this.kind };
569
+ }
570
+ }
544
571
  function assertJSONValue(value, path, ancestors = new Set()) {
545
572
  if (value === null ||
546
573
  typeof value === "string" ||
@@ -594,5 +621,6 @@ export const primitives = {
594
621
  tuple: (schemas) => new TupleSchema(schemas),
595
622
  enum: (values) => new EnumSchema(values),
596
623
  unknown: () => new UnknownSchema(),
624
+ null: () => new NullSchema(),
597
625
  };
598
626
  //# sourceMappingURL=primitives.js.map