@atproto/lex-schema 0.0.4 → 0.0.6

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 (299) hide show
  1. package/CHANGELOG.md +58 -0
  2. package/dist/core/$type.d.ts +7 -0
  3. package/dist/core/$type.d.ts.map +1 -1
  4. package/dist/core/$type.js.map +1 -1
  5. package/dist/core/property-key.d.ts.map +1 -0
  6. package/dist/core/property-key.js.map +1 -0
  7. package/dist/core/result.d.ts +7 -6
  8. package/dist/core/result.d.ts.map +1 -1
  9. package/dist/core/result.js +9 -8
  10. package/dist/core/result.js.map +1 -1
  11. package/dist/{validation → core}/schema.d.ts +21 -2
  12. package/dist/core/schema.d.ts.map +1 -0
  13. package/dist/{validation → core}/schema.js +25 -2
  14. package/dist/core/schema.js.map +1 -0
  15. package/dist/core/string-format.d.ts +37 -26
  16. package/dist/core/string-format.d.ts.map +1 -1
  17. package/dist/core/string-format.js +66 -59
  18. package/dist/core/string-format.js.map +1 -1
  19. package/dist/core/types.d.ts +3 -0
  20. package/dist/core/types.d.ts.map +1 -1
  21. package/dist/core/types.js.map +1 -1
  22. package/dist/core/validation-error.d.ts +19 -0
  23. package/dist/core/validation-error.d.ts.map +1 -0
  24. package/dist/{validation → core}/validation-error.js +13 -6
  25. package/dist/core/validation-error.js.map +1 -0
  26. package/dist/{validation → core}/validation-issue.d.ts +43 -0
  27. package/dist/core/validation-issue.d.ts.map +1 -0
  28. package/dist/{validation → core}/validation-issue.js +55 -2
  29. package/dist/core/validation-issue.js.map +1 -0
  30. package/dist/{validation → core}/validator.d.ts +5 -4
  31. package/dist/core/validator.d.ts.map +1 -0
  32. package/dist/{validation → core}/validator.js +16 -13
  33. package/dist/core/validator.js.map +1 -0
  34. package/dist/core.d.ts +5 -0
  35. package/dist/core.d.ts.map +1 -1
  36. package/dist/core.js +5 -0
  37. package/dist/core.js.map +1 -1
  38. package/dist/external.d.ts +21 -21
  39. package/dist/external.d.ts.map +1 -1
  40. package/dist/external.js +39 -55
  41. package/dist/external.js.map +1 -1
  42. package/dist/helpers.d.ts +41 -0
  43. package/dist/helpers.d.ts.map +1 -0
  44. package/dist/helpers.js +13 -0
  45. package/dist/helpers.js.map +1 -0
  46. package/dist/schema/_parameters.d.ts +1 -1
  47. package/dist/schema/_parameters.d.ts.map +1 -1
  48. package/dist/schema/_parameters.js.map +1 -1
  49. package/dist/schema/array.d.ts +1 -1
  50. package/dist/schema/array.d.ts.map +1 -1
  51. package/dist/schema/array.js +2 -2
  52. package/dist/schema/array.js.map +1 -1
  53. package/dist/schema/blob.d.ts +2 -1
  54. package/dist/schema/blob.d.ts.map +1 -1
  55. package/dist/schema/blob.js +34 -20
  56. package/dist/schema/blob.js.map +1 -1
  57. package/dist/schema/boolean.d.ts +1 -1
  58. package/dist/schema/boolean.d.ts.map +1 -1
  59. package/dist/schema/boolean.js +2 -2
  60. package/dist/schema/boolean.js.map +1 -1
  61. package/dist/schema/bytes.d.ts +1 -1
  62. package/dist/schema/bytes.d.ts.map +1 -1
  63. package/dist/schema/bytes.js +2 -2
  64. package/dist/schema/bytes.js.map +1 -1
  65. package/dist/schema/cid.d.ts +1 -1
  66. package/dist/schema/cid.d.ts.map +1 -1
  67. package/dist/schema/cid.js +2 -2
  68. package/dist/schema/cid.js.map +1 -1
  69. package/dist/schema/custom.d.ts +1 -1
  70. package/dist/schema/custom.d.ts.map +1 -1
  71. package/dist/schema/custom.js +3 -3
  72. package/dist/schema/custom.js.map +1 -1
  73. package/dist/schema/dict.d.ts +1 -1
  74. package/dist/schema/dict.d.ts.map +1 -1
  75. package/dist/schema/dict.js +2 -2
  76. package/dist/schema/dict.js.map +1 -1
  77. package/dist/schema/discriminated-union.d.ts +1 -1
  78. package/dist/schema/discriminated-union.d.ts.map +1 -1
  79. package/dist/schema/discriminated-union.js +2 -2
  80. package/dist/schema/discriminated-union.js.map +1 -1
  81. package/dist/schema/enum.d.ts +1 -1
  82. package/dist/schema/enum.d.ts.map +1 -1
  83. package/dist/schema/enum.js +2 -2
  84. package/dist/schema/enum.js.map +1 -1
  85. package/dist/schema/integer.d.ts +1 -1
  86. package/dist/schema/integer.d.ts.map +1 -1
  87. package/dist/schema/integer.js +4 -4
  88. package/dist/schema/integer.js.map +1 -1
  89. package/dist/schema/intersection.d.ts +1 -2
  90. package/dist/schema/intersection.d.ts.map +1 -1
  91. package/dist/schema/intersection.js +2 -2
  92. package/dist/schema/intersection.js.map +1 -1
  93. package/dist/schema/literal.d.ts +1 -1
  94. package/dist/schema/literal.d.ts.map +1 -1
  95. package/dist/schema/literal.js +2 -2
  96. package/dist/schema/literal.js.map +1 -1
  97. package/dist/schema/never.d.ts +1 -1
  98. package/dist/schema/never.d.ts.map +1 -1
  99. package/dist/schema/never.js +2 -2
  100. package/dist/schema/never.js.map +1 -1
  101. package/dist/schema/null.d.ts +1 -1
  102. package/dist/schema/null.d.ts.map +1 -1
  103. package/dist/schema/null.js +2 -2
  104. package/dist/schema/null.js.map +1 -1
  105. package/dist/schema/nullable.d.ts +1 -1
  106. package/dist/schema/nullable.d.ts.map +1 -1
  107. package/dist/schema/nullable.js +2 -2
  108. package/dist/schema/nullable.js.map +1 -1
  109. package/dist/schema/object.d.ts +1 -2
  110. package/dist/schema/object.d.ts.map +1 -1
  111. package/dist/schema/object.js +2 -2
  112. package/dist/schema/object.js.map +1 -1
  113. package/dist/schema/optional.d.ts +1 -1
  114. package/dist/schema/optional.d.ts.map +1 -1
  115. package/dist/schema/optional.js +2 -2
  116. package/dist/schema/optional.js.map +1 -1
  117. package/dist/schema/params.d.ts +1 -3
  118. package/dist/schema/params.d.ts.map +1 -1
  119. package/dist/schema/params.js +2 -2
  120. package/dist/schema/params.js.map +1 -1
  121. package/dist/schema/payload.d.ts +17 -15
  122. package/dist/schema/payload.d.ts.map +1 -1
  123. package/dist/schema/payload.js +28 -0
  124. package/dist/schema/payload.js.map +1 -1
  125. package/dist/schema/procedure.d.ts +3 -6
  126. package/dist/schema/procedure.d.ts.map +1 -1
  127. package/dist/schema/procedure.js +1 -0
  128. package/dist/schema/procedure.js.map +1 -1
  129. package/dist/schema/query.d.ts +3 -5
  130. package/dist/schema/query.d.ts.map +1 -1
  131. package/dist/schema/query.js +1 -0
  132. package/dist/schema/query.js.map +1 -1
  133. package/dist/schema/record.d.ts +14 -14
  134. package/dist/schema/record.d.ts.map +1 -1
  135. package/dist/schema/record.js +2 -2
  136. package/dist/schema/record.js.map +1 -1
  137. package/dist/schema/ref.d.ts +1 -1
  138. package/dist/schema/ref.d.ts.map +1 -1
  139. package/dist/schema/ref.js +2 -2
  140. package/dist/schema/ref.js.map +1 -1
  141. package/dist/schema/refine.d.ts +18 -1
  142. package/dist/schema/refine.d.ts.map +1 -1
  143. package/dist/schema/refine.js +2 -2
  144. package/dist/schema/refine.js.map +1 -1
  145. package/dist/schema/regexp.d.ts +1 -1
  146. package/dist/schema/regexp.d.ts.map +1 -1
  147. package/dist/schema/regexp.js +2 -2
  148. package/dist/schema/regexp.js.map +1 -1
  149. package/dist/schema/string.d.ts +1 -2
  150. package/dist/schema/string.d.ts.map +1 -1
  151. package/dist/schema/string.js +1 -2
  152. package/dist/schema/string.js.map +1 -1
  153. package/dist/schema/subscription.d.ts +4 -8
  154. package/dist/schema/subscription.d.ts.map +1 -1
  155. package/dist/schema/subscription.js.map +1 -1
  156. package/dist/schema/token.d.ts +1 -1
  157. package/dist/schema/token.d.ts.map +1 -1
  158. package/dist/schema/token.js +2 -2
  159. package/dist/schema/token.js.map +1 -1
  160. package/dist/schema/typed-object.d.ts +8 -8
  161. package/dist/schema/typed-object.d.ts.map +1 -1
  162. package/dist/schema/typed-object.js +2 -2
  163. package/dist/schema/typed-object.js.map +1 -1
  164. package/dist/schema/typed-ref.d.ts +1 -1
  165. package/dist/schema/typed-ref.d.ts.map +1 -1
  166. package/dist/schema/typed-ref.js +2 -2
  167. package/dist/schema/typed-ref.js.map +1 -1
  168. package/dist/schema/typed-union.d.ts +2 -3
  169. package/dist/schema/typed-union.d.ts.map +1 -1
  170. package/dist/schema/typed-union.js +2 -2
  171. package/dist/schema/typed-union.js.map +1 -1
  172. package/dist/schema/union.d.ts +1 -1
  173. package/dist/schema/union.d.ts.map +1 -1
  174. package/dist/schema/union.js +3 -6
  175. package/dist/schema/union.js.map +1 -1
  176. package/dist/schema/unknown-object.d.ts +1 -2
  177. package/dist/schema/unknown-object.d.ts.map +1 -1
  178. package/dist/schema/unknown-object.js +2 -2
  179. package/dist/schema/unknown-object.js.map +1 -1
  180. package/dist/schema/unknown.d.ts +1 -1
  181. package/dist/schema/unknown.d.ts.map +1 -1
  182. package/dist/schema/unknown.js +2 -2
  183. package/dist/schema/unknown.js.map +1 -1
  184. package/dist/util/assertion-util.d.ts +8 -0
  185. package/dist/util/assertion-util.d.ts.map +1 -0
  186. package/dist/util/assertion-util.js +31 -0
  187. package/dist/util/assertion-util.js.map +1 -0
  188. package/dist/util/memoize.d.ts +3 -0
  189. package/dist/util/memoize.d.ts.map +1 -0
  190. package/dist/util/memoize.js +52 -0
  191. package/dist/util/memoize.js.map +1 -0
  192. package/package.json +6 -6
  193. package/src/core/$type.ts +4 -0
  194. package/src/core/result.ts +9 -8
  195. package/src/{validation → core}/schema.ts +29 -4
  196. package/src/core/string-format.ts +88 -68
  197. package/src/core/types.ts +4 -0
  198. package/src/{validation → core}/validation-error.ts +14 -6
  199. package/src/{validation → core}/validation-issue.ts +64 -2
  200. package/src/{validation → core}/validator.ts +17 -13
  201. package/src/core.ts +5 -0
  202. package/src/external.ts +75 -55
  203. package/src/helpers.test.ts +487 -0
  204. package/src/helpers.ts +75 -0
  205. package/src/schema/_parameters.test.ts +1 -0
  206. package/src/schema/_parameters.ts +1 -1
  207. package/src/schema/array.test.ts +1 -0
  208. package/src/schema/array.ts +1 -1
  209. package/src/schema/blob.test.ts +3 -4
  210. package/src/schema/blob.ts +32 -24
  211. package/src/schema/boolean.test.ts +1 -0
  212. package/src/schema/boolean.ts +1 -1
  213. package/src/schema/bytes.test.ts +1 -0
  214. package/src/schema/bytes.ts +1 -1
  215. package/src/schema/cid.test.ts +1 -0
  216. package/src/schema/cid.ts +1 -1
  217. package/src/schema/custom.test.ts +8 -7
  218. package/src/schema/custom.ts +2 -2
  219. package/src/schema/dict.test.ts +1 -0
  220. package/src/schema/dict.ts +1 -1
  221. package/src/schema/discriminated-union.test.ts +1 -0
  222. package/src/schema/discriminated-union.ts +1 -1
  223. package/src/schema/enum.test.ts +1 -0
  224. package/src/schema/enum.ts +1 -1
  225. package/src/schema/integer.test.ts +1 -0
  226. package/src/schema/integer.ts +3 -3
  227. package/src/schema/intersection.test.ts +1 -0
  228. package/src/schema/intersection.ts +2 -2
  229. package/src/schema/literal.test.ts +1 -0
  230. package/src/schema/literal.ts +1 -1
  231. package/src/schema/never.test.ts +1 -0
  232. package/src/schema/never.ts +1 -1
  233. package/src/schema/null.test.ts +1 -0
  234. package/src/schema/null.ts +1 -1
  235. package/src/schema/nullable.test.ts +1 -0
  236. package/src/schema/nullable.ts +1 -1
  237. package/src/schema/object.test.ts +1 -0
  238. package/src/schema/object.ts +3 -3
  239. package/src/schema/optional.test.ts +1 -0
  240. package/src/schema/optional.ts +1 -1
  241. package/src/schema/params.test.ts +1 -0
  242. package/src/schema/params.ts +3 -10
  243. package/src/schema/payload.test.ts +1 -0
  244. package/src/schema/payload.ts +67 -34
  245. package/src/schema/permission-set.test.ts +37 -36
  246. package/src/schema/permission.test.ts +1 -0
  247. package/src/schema/procedure.test.ts +2 -62
  248. package/src/schema/procedure.ts +8 -20
  249. package/src/schema/query.test.ts +23 -69
  250. package/src/schema/query.ts +7 -14
  251. package/src/schema/record.test.ts +1 -0
  252. package/src/schema/record.ts +13 -6
  253. package/src/schema/ref.test.ts +2 -1
  254. package/src/schema/ref.ts +1 -1
  255. package/src/schema/refine.test.ts +1 -0
  256. package/src/schema/refine.ts +19 -2
  257. package/src/schema/regexp.test.ts +1 -0
  258. package/src/schema/regexp.ts +1 -1
  259. package/src/schema/string.test.ts +1 -0
  260. package/src/schema/string.ts +8 -2
  261. package/src/schema/subscription.test.ts +31 -93
  262. package/src/schema/subscription.ts +11 -25
  263. package/src/schema/token.test.ts +1 -0
  264. package/src/schema/token.ts +1 -1
  265. package/src/schema/typed-object.test.ts +1 -0
  266. package/src/schema/typed-object.ts +10 -5
  267. package/src/schema/typed-ref.test.ts +1 -0
  268. package/src/schema/typed-ref.ts +1 -1
  269. package/src/schema/typed-union.test.ts +1 -0
  270. package/src/schema/typed-union.ts +4 -4
  271. package/src/schema/union.test.ts +1 -0
  272. package/src/schema/union.ts +2 -5
  273. package/src/schema/unknown-object.test.ts +1 -0
  274. package/src/schema/unknown-object.ts +1 -2
  275. package/src/schema/unknown.test.ts +1 -0
  276. package/src/schema/unknown.ts +1 -1
  277. package/src/util/array-agg.test.ts +1 -0
  278. package/src/util/assertion-util.ts +40 -0
  279. package/src/util/memoize.ts +57 -0
  280. package/tsconfig.tests.json +2 -2
  281. package/dist/validation/property-key.d.ts.map +0 -1
  282. package/dist/validation/property-key.js.map +0 -1
  283. package/dist/validation/schema.d.ts.map +0 -1
  284. package/dist/validation/schema.js.map +0 -1
  285. package/dist/validation/validation-error.d.ts +0 -9
  286. package/dist/validation/validation-error.d.ts.map +0 -1
  287. package/dist/validation/validation-error.js.map +0 -1
  288. package/dist/validation/validation-issue.d.ts.map +0 -1
  289. package/dist/validation/validation-issue.js.map +0 -1
  290. package/dist/validation/validator.d.ts.map +0 -1
  291. package/dist/validation/validator.js.map +0 -1
  292. package/dist/validation.d.ts +0 -6
  293. package/dist/validation.d.ts.map +0 -1
  294. package/dist/validation.js +0 -9
  295. package/dist/validation.js.map +0 -1
  296. package/src/validation.ts +0 -5
  297. /package/dist/{validation → core}/property-key.d.ts +0 -0
  298. /package/dist/{validation → core}/property-key.js +0 -0
  299. /package/src/{validation → core}/property-key.ts +0 -0
@@ -1,33 +1,32 @@
1
- import { $Type, $TypeOf, LexiconRecordKey, NsidString } from './core.js';
2
- import { ArraySchema, ArraySchemaOptions, BlobSchema, BlobSchemaOptions, BooleanSchema, BooleanSchemaOptions, BytesSchema, BytesSchemaOptions, CidSchema, CidSchemaOptions, CustomAssertion, CustomSchema, DictSchema, DiscriminatedUnionSchema, DiscriminatedUnionVariants, EnumSchema, EnumSchemaOptions, IntegerSchema, IntegerSchemaOptions, IntersectionSchema, LiteralSchema, LiteralSchemaOptions, NeverSchema, NullSchema, NullableSchema, ObjectSchema, ObjectSchemaShape, OptionalSchema, ParamsSchema, ParamsSchemaShape, Payload, PayloadBody, Permission, PermissionOptions, PermissionSet, PermissionSetOptions, Procedure, Query, RecordSchema, RefSchema, RefSchemaGetter, RegexpSchema, StringSchema, StringSchemaOptions, Subscription, TokenSchema, TypedObjectSchema, TypedRefGetter, TypedRefSchema, TypedUnionSchema, UnionSchema, UnionSchemaValidators, UnknownObjectOutput, UnknownObjectSchema, UnknownSchema, refine } from './schema.js';
3
- import { Infer, PropertyKey, Validator } from './validation.js';
1
+ import { $Type, $TypeOf, Infer, LexiconRecordKey, NsidString, PropertyKey, Schema, Validator } from './core.js';
2
+ import { ArraySchema, ArraySchemaOptions, BlobSchema, BlobSchemaOptions, BooleanSchema, BooleanSchemaOptions, BytesSchema, BytesSchemaOptions, CidSchema, CidSchemaOptions, CustomAssertion, CustomSchema, DictSchema, DiscriminatedUnionSchema, DiscriminatedUnionVariants, EnumSchema, EnumSchemaOptions, IntegerSchema, IntegerSchemaOptions, IntersectionSchema, LiteralSchema, LiteralSchemaOptions, NeverSchema, NullSchema, NullableSchema, ObjectSchema, ObjectSchemaShape, OptionalSchema, ParamsSchema, ParamsSchemaShape, Payload, PayloadSchema, Permission, PermissionOptions, PermissionSet, PermissionSetOptions, Procedure, Query, RecordSchema, RefSchema, RefSchemaGetter, RegexpSchema, StringSchema, StringSchemaOptions, Subscription, TokenSchema, TypedObjectSchema, TypedRefGetter, TypedRefSchema, TypedUnionSchema, UnionSchema, UnionSchemaValidators, UnknownObjectOutput, UnknownObjectSchema, UnknownSchema, refine } from './schema.js';
4
3
  export * from './core.js';
4
+ export * from './helpers.js';
5
5
  export * from './schema.js';
6
- export * from './validation.js';
7
- export declare function never(): NeverSchema;
8
- export declare function unknown(): UnknownSchema;
9
- export declare function _null(): NullSchema;
10
6
  export { _null as null };
7
+ export declare const never: () => NeverSchema;
8
+ export declare const unknown: () => UnknownSchema;
9
+ declare const _null: () => NullSchema;
11
10
  export declare function literal<const V extends null | string | number | boolean>(value: V, options?: LiteralSchemaOptions<V>): LiteralSchema<V>;
12
11
  export declare function _enum<const V extends null | string | number | boolean>(value: readonly V[], options?: EnumSchemaOptions<V>): EnumSchema<V>;
13
12
  export { _enum as enum };
14
- export declare function boolean(options?: BooleanSchemaOptions): BooleanSchema;
15
- export declare function integer(options?: IntegerSchemaOptions): IntegerSchema;
16
- export declare function cidLink(options?: CidSchemaOptions): CidSchema;
17
- export declare function bytes(options?: BytesSchemaOptions): BytesSchema;
18
- export declare function blob<O extends BlobSchemaOptions = NonNullable<unknown>>(options?: O): BlobSchema<O>;
19
- export declare function string<const O extends StringSchemaOptions = NonNullable<unknown>>(options?: StringSchemaOptions & O): StringSchema<O>;
13
+ export declare const boolean: (options?: BooleanSchemaOptions) => BooleanSchema;
14
+ export declare const integer: (options?: IntegerSchemaOptions) => IntegerSchema;
15
+ export declare const cidLink: (options?: CidSchemaOptions) => CidSchema;
16
+ export declare const bytes: (options?: BytesSchemaOptions) => BytesSchema;
17
+ export declare const blob: <O extends BlobSchemaOptions = {}>(options?: O) => BlobSchema<O>;
18
+ export declare const string: <const O extends StringSchemaOptions = {}>(options?: StringSchemaOptions & O) => StringSchema<O>;
20
19
  export declare function regexp<T extends string = string>(pattern: RegExp): RegexpSchema<T>;
21
20
  export declare function array<const S extends Validator>(items: S, options?: ArraySchemaOptions): ArraySchema<S>;
22
21
  export declare function array<T, const S extends Validator<T> = Validator<T>>(items: S, options?: ArraySchemaOptions): ArraySchema<S>;
23
22
  export declare function object<const P extends ObjectSchemaShape>(properties: P): ObjectSchema<P>;
24
23
  export declare function dict<const K extends Validator<string>, const V extends Validator>(key: K, value: V): DictSchema<K, V>;
25
24
  export type { UnknownObjectOutput as UnknownObject };
26
- export declare function unknownObject(): UnknownObjectSchema;
25
+ export declare const unknownObject: () => UnknownObjectSchema;
27
26
  export declare function ref<T>(get: RefSchemaGetter<T>): RefSchema<T>;
28
27
  export declare function custom<T>(assertion: CustomAssertion<T>, message: string, path?: PropertyKey | readonly PropertyKey[]): CustomSchema<T>;
29
- export declare function nullable<const S extends Validator>(schema: S): NullableSchema<Infer<S>>;
30
- export declare function optional<const S extends Validator>(schema: S): OptionalSchema<Infer<S>>;
28
+ export declare const nullable: <const S extends Validator>(schema: S) => NullableSchema<Infer<S>>;
29
+ export declare const optional: <const S extends Validator>(schema: S) => OptionalSchema<Infer<S>>;
31
30
  export declare function union<const V extends UnionSchemaValidators>(validators: V): UnionSchema<V>;
32
31
  export declare function intersection<const Left extends ObjectSchema, const Right extends DictSchema>(left: Left, right: Right): IntersectionSchema<Left, Right>;
33
32
  export { refine };
@@ -49,7 +48,7 @@ export declare function typedUnion<const R extends readonly TypedRefSchema[], co
49
48
  * schemas that work even if they contain circular references.
50
49
  */
51
50
  export declare function typedObject<const N extends NsidString, const H extends string, const S extends Validator<{
52
- [_ in string]?: unknown;
51
+ [k: string]: unknown;
53
52
  }>>(nsid: N, hash: H, schema: S): TypedObjectSchema<$Type<N, H>, S>;
54
53
  export declare function typedObject<V extends {
55
54
  $type?: $Type;
@@ -74,16 +73,17 @@ type AsNsid<T> = T extends `${string}#${string}` ? never : T;
74
73
  * schemas that work even if they contain circular references.
75
74
  */
76
75
  export declare function record<const K extends LexiconRecordKey, const T extends NsidString, const S extends Validator<{
77
- [_ in string]?: unknown;
76
+ [k: string]: unknown;
78
77
  }>>(key: K, type: AsNsid<T>, schema: S): RecordSchema<K, T, S>;
79
78
  export declare function record<const K extends LexiconRecordKey, const V extends {
80
79
  $type: NsidString;
81
80
  }>(key: K, type: AsNsid<V['$type']>, schema: Validator<Omit<V, '$type'>>): RecordSchema<K, V['$type'], Validator<Omit<V, '$type'>>>;
82
- export declare function params<const P extends ParamsSchemaShape = NonNullable<unknown>>(properties?: P): ParamsSchema<P>;
83
- export declare function payload<const E extends string | undefined = undefined, const S extends PayloadBody<E> = undefined>(encoding?: E, schema?: S): Payload<E, S>;
81
+ export declare const params: <const P extends ParamsSchemaShape = {}>(properties?: P) => ParamsSchema<P>;
82
+ export declare function payload<const E extends string | undefined = undefined, const S extends PayloadSchema<E> = undefined>(encoding?: E, schema?: S): Payload<E, S>;
83
+ export declare function jsonPayload<const P extends ObjectSchemaShape>(properties: P): Payload<'application/json', ObjectSchema<P>>;
84
84
  export declare function query<const N extends NsidString, const P extends ParamsSchema, const O extends Payload, const E extends undefined | readonly string[] = undefined>(nsid: N, parameters: P, output: O, errors?: E): Query<N, P, O, E>;
85
85
  export declare function procedure<const N extends NsidString, const P extends ParamsSchema, const I extends Payload, const O extends Payload, const E extends undefined | readonly string[] = undefined>(nsid: N, parameters: P, input: I, output: O, errors?: E): Procedure<N, P, I, O, E>;
86
- export declare function subscription<const N extends NsidString, const P extends ParamsSchema, const M extends undefined | RefSchema | TypedUnionSchema | ObjectSchema, const E extends undefined | readonly string[] = undefined>(nsid: N, parameters: P, message: M, errors?: E): Subscription<N, P, M, E>;
86
+ export declare function subscription<const N extends NsidString, const P extends ParamsSchema, const M extends Schema, const E extends undefined | readonly string[] = undefined>(nsid: N, parameters: P, message: M, errors?: E): Subscription<N, P, M, E>;
87
87
  export declare function permission<const R extends string, const O extends PermissionOptions>(resource: R, options?: PermissionOptions & O): Permission<R, O>;
88
88
  export declare function permissionSet<const N extends NsidString, const P extends readonly Permission[]>(nsid: N, permissions: P, options?: PermissionSetOptions): PermissionSet<N, P>;
89
89
  //# sourceMappingURL=external.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"external.d.ts","sourceRoot":"","sources":["../src/external.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"external.d.ts","sourceRoot":"","sources":["../src/external.ts"],"names":[],"mappings":"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"}
package/dist/external.js CHANGED
@@ -1,28 +1,15 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.refine = void 0;
4
- exports.never = never;
5
- exports.unknown = unknown;
6
- exports._null = _null;
7
- exports.null = _null;
3
+ exports.params = exports.refine = exports.optional = exports.nullable = exports.unknownObject = exports.string = exports.blob = exports.bytes = exports.cidLink = exports.integer = exports.boolean = exports.unknown = exports.never = exports.null = void 0;
8
4
  exports.literal = literal;
9
5
  exports._enum = _enum;
10
6
  exports.enum = _enum;
11
- exports.boolean = boolean;
12
- exports.integer = integer;
13
- exports.cidLink = cidLink;
14
- exports.bytes = bytes;
15
- exports.blob = blob;
16
- exports.string = string;
17
7
  exports.regexp = regexp;
18
8
  exports.array = array;
19
9
  exports.object = object;
20
10
  exports.dict = dict;
21
- exports.unknownObject = unknownObject;
22
11
  exports.ref = ref;
23
12
  exports.custom = custom;
24
- exports.nullable = nullable;
25
- exports.optional = optional;
26
13
  exports.union = union;
27
14
  exports.intersection = intersection;
28
15
  exports.discriminatedUnion = discriminatedUnion;
@@ -31,8 +18,8 @@ exports.typedRef = typedRef;
31
18
  exports.typedUnion = typedUnion;
32
19
  exports.typedObject = typedObject;
33
20
  exports.record = record;
34
- exports.params = params;
35
21
  exports.payload = payload;
22
+ exports.jsonPayload = jsonPayload;
36
23
  exports.query = query;
37
24
  exports.procedure = procedure;
38
25
  exports.subscription = subscription;
@@ -42,21 +29,20 @@ const tslib_1 = require("tslib");
42
29
  const core_js_1 = require("./core.js");
43
30
  const schema_js_1 = require("./schema.js");
44
31
  Object.defineProperty(exports, "refine", { enumerable: true, get: function () { return schema_js_1.refine; } });
32
+ const memoize_js_1 = require("./util/memoize.js");
45
33
  tslib_1.__exportStar(require("./core.js"), exports);
34
+ tslib_1.__exportStar(require("./helpers.js"), exports);
46
35
  tslib_1.__exportStar(require("./schema.js"), exports);
47
- tslib_1.__exportStar(require("./validation.js"), exports);
48
- /*@__NO_SIDE_EFFECTS__*/
49
- function never() {
36
+ exports.never = (0, memoize_js_1.memoizedOptions)(function () {
50
37
  return new schema_js_1.NeverSchema();
51
- }
52
- /*@__NO_SIDE_EFFECTS__*/
53
- function unknown() {
38
+ });
39
+ exports.unknown = (0, memoize_js_1.memoizedOptions)(function () {
54
40
  return new schema_js_1.UnknownSchema();
55
- }
56
- /*@__NO_SIDE_EFFECTS__*/
57
- function _null() {
41
+ });
42
+ const _null = /*#__PURE__*/ (0, memoize_js_1.memoizedOptions)(function () {
58
43
  return new schema_js_1.NullSchema();
59
- }
44
+ });
45
+ exports.null = _null;
60
46
  /*@__NO_SIDE_EFFECTS__*/
61
47
  function literal(value, options) {
62
48
  return new schema_js_1.LiteralSchema(value, options);
@@ -65,30 +51,28 @@ function literal(value, options) {
65
51
  function _enum(value, options) {
66
52
  return new schema_js_1.EnumSchema(value, options);
67
53
  }
68
- /*@__NO_SIDE_EFFECTS__*/
69
- function boolean(options) {
54
+ exports.boolean = (0, memoize_js_1.memoizedOptions)(function (options) {
70
55
  return new schema_js_1.BooleanSchema(options);
71
- }
72
- /*@__NO_SIDE_EFFECTS__*/
73
- function integer(options) {
56
+ }, (options) => {
57
+ const keys = Object.keys(options);
58
+ if (keys.length === 1 && keys[0] === 'default')
59
+ return options.default;
60
+ });
61
+ exports.integer = (0, memoize_js_1.memoizedOptions)(function (options) {
74
62
  return new schema_js_1.IntegerSchema(options);
75
- }
76
- /*@__NO_SIDE_EFFECTS__*/
77
- function cidLink(options) {
63
+ });
64
+ exports.cidLink = (0, memoize_js_1.memoizedOptions)(function (options) {
78
65
  return new schema_js_1.CidSchema(options);
79
- }
80
- /*@__NO_SIDE_EFFECTS__*/
81
- function bytes(options) {
66
+ });
67
+ exports.bytes = (0, memoize_js_1.memoizedOptions)(function (options) {
82
68
  return new schema_js_1.BytesSchema(options);
83
- }
84
- /*@__NO_SIDE_EFFECTS__*/
85
- function blob(options = {}) {
69
+ });
70
+ exports.blob = (0, memoize_js_1.memoizedOptions)(function (options = {}) {
86
71
  return new schema_js_1.BlobSchema(options);
87
- }
88
- /*@__NO_SIDE_EFFECTS__*/
89
- function string(options = {}) {
72
+ });
73
+ exports.string = (0, memoize_js_1.memoizedOptions)(function (options = {}) {
90
74
  return new schema_js_1.StringSchema(options);
91
- }
75
+ });
92
76
  /*@__NO_SIDE_EFFECTS__*/
93
77
  function regexp(pattern) {
94
78
  return new schema_js_1.RegexpSchema(pattern);
@@ -104,10 +88,9 @@ function object(properties) {
104
88
  function dict(key, value) {
105
89
  return new schema_js_1.DictSchema(key, value);
106
90
  }
107
- /*@__NO_SIDE_EFFECTS__*/
108
- function unknownObject() {
91
+ exports.unknownObject = (0, memoize_js_1.memoizedOptions)(function () {
109
92
  return new schema_js_1.UnknownObjectSchema();
110
- }
93
+ });
111
94
  /*@__NO_SIDE_EFFECTS__*/
112
95
  function ref(get) {
113
96
  return new schema_js_1.RefSchema(get);
@@ -116,14 +99,12 @@ function ref(get) {
116
99
  function custom(assertion, message, path) {
117
100
  return new schema_js_1.CustomSchema(assertion, message, path);
118
101
  }
119
- /*@__NO_SIDE_EFFECTS__*/
120
- function nullable(schema) {
102
+ exports.nullable = (0, memoize_js_1.memoizedTransformer)(function (schema) {
121
103
  return new schema_js_1.NullableSchema(schema);
122
- }
123
- /*@__NO_SIDE_EFFECTS__*/
124
- function optional(schema) {
104
+ });
105
+ exports.optional = (0, memoize_js_1.memoizedTransformer)(function (schema) {
125
106
  return new schema_js_1.OptionalSchema(schema);
126
- }
107
+ });
127
108
  /*@__NO_SIDE_EFFECTS__*/
128
109
  function union(validators) {
129
110
  return new schema_js_1.UnionSchema(validators);
@@ -156,15 +137,18 @@ function typedObject(nsid, hash, schema) {
156
137
  function record(key, type, schema) {
157
138
  return new schema_js_1.RecordSchema(key, type, schema);
158
139
  }
159
- /*@__NO_SIDE_EFFECTS__*/
160
- function params(properties = {}) {
140
+ exports.params = (0, memoize_js_1.memoizedOptions)(function (properties = {}) {
161
141
  return new schema_js_1.ParamsSchema(properties);
162
- }
142
+ });
163
143
  /*@__NO_SIDE_EFFECTS__*/
164
144
  function payload(encoding = undefined, schema = undefined) {
165
145
  return new schema_js_1.Payload(encoding, schema);
166
146
  }
167
147
  /*@__NO_SIDE_EFFECTS__*/
148
+ function jsonPayload(properties) {
149
+ return payload('application/json', object(properties));
150
+ }
151
+ /*@__NO_SIDE_EFFECTS__*/
168
152
  function query(nsid, parameters, output, errors = undefined) {
169
153
  return new schema_js_1.Query(nsid, parameters, output, errors);
170
154
  }
@@ -1 +1 @@
1
- {"version":3,"file":"external.js","sourceRoot":"","sources":["../src/external.ts"],"names":[],"mappings":"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","sourcesContent":["import { $Type, $TypeOf, $type, LexiconRecordKey, NsidString } from './core.js'\nimport {\n ArraySchema,\n ArraySchemaOptions,\n BlobSchema,\n BlobSchemaOptions,\n BooleanSchema,\n BooleanSchemaOptions,\n BytesSchema,\n BytesSchemaOptions,\n CidSchema,\n CidSchemaOptions,\n CustomAssertion,\n CustomSchema,\n DictSchema,\n DiscriminatedUnionSchema,\n DiscriminatedUnionVariants,\n EnumSchema,\n EnumSchemaOptions,\n IntegerSchema,\n IntegerSchemaOptions,\n IntersectionSchema,\n LiteralSchema,\n LiteralSchemaOptions,\n NeverSchema,\n NullSchema,\n NullableSchema,\n ObjectSchema,\n ObjectSchemaShape,\n OptionalSchema,\n ParamsSchema,\n ParamsSchemaShape,\n Payload,\n PayloadBody,\n Permission,\n PermissionOptions,\n PermissionSet,\n PermissionSetOptions,\n Procedure,\n Query,\n RecordSchema,\n RefSchema,\n RefSchemaGetter,\n RegexpSchema,\n StringSchema,\n StringSchemaOptions,\n Subscription,\n TokenSchema,\n TypedObjectSchema,\n TypedRefGetter,\n TypedRefSchema,\n TypedUnionSchema,\n UnionSchema,\n UnionSchemaValidators,\n UnknownObjectOutput,\n UnknownObjectSchema,\n UnknownSchema,\n refine,\n} from './schema.js'\nimport { Infer, PropertyKey, Validator } from './validation.js'\n\nexport * from './core.js'\nexport * from './schema.js'\nexport * from './validation.js'\n\n/*@__NO_SIDE_EFFECTS__*/\nexport function never() {\n return new NeverSchema()\n}\n\n/*@__NO_SIDE_EFFECTS__*/\nexport function unknown() {\n return new UnknownSchema()\n}\n\n/*@__NO_SIDE_EFFECTS__*/\nexport function _null() {\n return new NullSchema()\n}\n\nexport { _null as null }\n\n/*@__NO_SIDE_EFFECTS__*/\nexport function literal<const V extends null | string | number | boolean>(\n value: V,\n options?: LiteralSchemaOptions<V>,\n) {\n return new LiteralSchema<V>(value, options)\n}\n\n/*@__NO_SIDE_EFFECTS__*/\nexport function _enum<const V extends null | string | number | boolean>(\n value: readonly V[],\n options?: EnumSchemaOptions<V>,\n) {\n return new EnumSchema<V>(value, options)\n}\n\n// @NOTE \"enum\" is a reserved keyword in JS/TS\nexport { _enum as enum }\n\n/*@__NO_SIDE_EFFECTS__*/\nexport function boolean(options?: BooleanSchemaOptions) {\n return new BooleanSchema(options)\n}\n\n/*@__NO_SIDE_EFFECTS__*/\nexport function integer(options?: IntegerSchemaOptions) {\n return new IntegerSchema(options)\n}\n\n/*@__NO_SIDE_EFFECTS__*/\nexport function cidLink(options?: CidSchemaOptions) {\n return new CidSchema(options)\n}\n\n/*@__NO_SIDE_EFFECTS__*/\nexport function bytes(options?: BytesSchemaOptions) {\n return new BytesSchema(options)\n}\n\n/*@__NO_SIDE_EFFECTS__*/\nexport function blob<O extends BlobSchemaOptions = NonNullable<unknown>>(\n options: O = {} as O,\n) {\n return new BlobSchema(options)\n}\n\n/*@__NO_SIDE_EFFECTS__*/\nexport function string<\n const O extends StringSchemaOptions = NonNullable<unknown>,\n>(options: StringSchemaOptions & O = {} as O) {\n return new StringSchema<O>(options)\n}\n\n/*@__NO_SIDE_EFFECTS__*/\nexport function regexp<T extends string = string>(pattern: RegExp) {\n return new RegexpSchema<T>(pattern)\n}\n\n/*@__NO_SIDE_EFFECTS__*/\nexport function array<const S extends Validator>(\n items: S,\n options?: ArraySchemaOptions,\n): ArraySchema<S>\nexport function array<T, const S extends Validator<T> = Validator<T>>(\n items: S,\n options?: ArraySchemaOptions,\n): ArraySchema<S>\nexport function array<const S extends Validator>(\n items: S,\n options?: ArraySchemaOptions,\n) {\n return new ArraySchema<S>(items, options)\n}\n\n/*@__NO_SIDE_EFFECTS__*/\nexport function object<const P extends ObjectSchemaShape>(properties: P) {\n return new ObjectSchema<P>(properties)\n}\n\n/*@__NO_SIDE_EFFECTS__*/\nexport function dict<\n const K extends Validator<string>,\n const V extends Validator,\n>(key: K, value: V) {\n return new DictSchema<K, V>(key, value)\n}\n\n// Utility\nexport type { UnknownObjectOutput as UnknownObject }\n\n/*@__NO_SIDE_EFFECTS__*/\nexport function unknownObject() {\n return new UnknownObjectSchema()\n}\n\n/*@__NO_SIDE_EFFECTS__*/\nexport function ref<T>(get: RefSchemaGetter<T>) {\n return new RefSchema<T>(get)\n}\n\n/*@__NO_SIDE_EFFECTS__*/\nexport function custom<T>(\n assertion: CustomAssertion<T>,\n message: string,\n path?: PropertyKey | readonly PropertyKey[],\n) {\n return new CustomSchema<T>(assertion, message, path)\n}\n\n/*@__NO_SIDE_EFFECTS__*/\nexport function nullable<const S extends Validator>(schema: S) {\n return new NullableSchema<Infer<S>>(schema)\n}\n\n/*@__NO_SIDE_EFFECTS__*/\nexport function optional<const S extends Validator>(schema: S) {\n return new OptionalSchema<Infer<S>>(schema)\n}\n\n/*@__NO_SIDE_EFFECTS__*/\nexport function union<const V extends UnionSchemaValidators>(validators: V) {\n return new UnionSchema<V>(validators)\n}\n\n/*@__NO_SIDE_EFFECTS__*/\nexport function intersection<\n const Left extends ObjectSchema,\n const Right extends DictSchema,\n>(left: Left, right: Right) {\n return new IntersectionSchema<Left, Right>(left, right)\n}\n\nexport { refine }\n\n/*@__NO_SIDE_EFFECTS__*/\nexport function discriminatedUnion<\n const Discriminator extends string,\n const Options extends DiscriminatedUnionVariants<Discriminator>,\n>(discriminator: Discriminator, variants: Options) {\n return new DiscriminatedUnionSchema<Discriminator, Options>(\n discriminator,\n variants,\n )\n}\n\n/*@__NO_SIDE_EFFECTS__*/\nexport function token<const N extends NsidString, const H extends string>(\n nsid: N,\n hash: H,\n) {\n return new TokenSchema($type(nsid, hash))\n}\n\n/*@__NO_SIDE_EFFECTS__*/\nexport function typedRef<const V extends { $type?: string }>(\n get: TypedRefGetter<V>,\n) {\n return new TypedRefSchema<V>(get)\n}\n\n/*@__NO_SIDE_EFFECTS__*/\nexport function typedUnion<\n const R extends readonly TypedRefSchema[],\n const C extends boolean,\n>(refs: R, closed: C) {\n return new TypedUnionSchema<R, C>(refs, closed)\n}\n\n/**\n * This function offers two overloads:\n * - One that allows creating a {@link TypedObjectSchema}, and infer the output\n * type from the provided arguments, without requiring to specify any of the\n * generics. This is useful when you want to define a record without\n * explicitly defining its interface. This version does not support circular\n * references, as TypeScript cannot infer types in such cases.\n * - One allows creating a {@link TypedObjectSchema} with an explicitly defined\n * interface. This will typically be used by codegen (`lex build`) to generate\n * schemas that work even if they contain circular references.\n */\nexport function typedObject<\n const N extends NsidString,\n const H extends string,\n const S extends Validator<{ [_ in string]?: unknown }>,\n>(nsid: N, hash: H, schema: S): TypedObjectSchema<$Type<N, H>, S>\nexport function typedObject<V extends { $type?: $Type }>(\n nsid: V extends { $type?: infer T extends string }\n ? T extends `${infer N}#${string}`\n ? N\n : T // (T is a \"main\" type, so already an NSID)\n : never,\n hash: V extends { $type?: infer T extends string }\n ? T extends `${string}#${infer H}`\n ? H\n : 'main'\n : never,\n schema: Validator<Omit<V, '$type'>>,\n): TypedObjectSchema<$TypeOf<V>, Validator<Omit<V, '$type'>>>\n/*@__NO_SIDE_EFFECTS__*/\nexport function typedObject<\n const N extends NsidString,\n const H extends string,\n const S extends Validator<{ [_ in string]?: unknown }>,\n>(nsid: N, hash: H, schema: S) {\n return new TypedObjectSchema<$Type<N, H>, S>($type(nsid, hash), schema)\n}\n\n/**\n * Ensures that a `$type` used in a record is a valid NSID (i.e. no fragment).\n */\ntype AsNsid<T> = T extends `${string}#${string}` ? never : T\n\n/**\n * This function offers two overloads:\n * - One that allows creating a {@link RecordSchema}, and infer the output type\n * from the provided arguments, without requiring to specify any of the\n * generics. This is useful when you want to define a record without\n * explicitly defining its interface. This version does not support circular\n * references, as TypeScript cannot infer types in such cases.\n * - One allows creating a {@link RecordSchema} with an explicitly defined\n * interface. This will typically be used by codegen (`lex build`) to generate\n * schemas that work even if they contain circular references.\n */\nexport function record<\n const K extends LexiconRecordKey,\n const T extends NsidString,\n const S extends Validator<{ [_ in string]?: unknown }>,\n>(key: K, type: AsNsid<T>, schema: S): RecordSchema<K, T, S>\nexport function record<\n const K extends LexiconRecordKey,\n const V extends { $type: NsidString },\n>(\n key: K,\n type: AsNsid<V['$type']>,\n schema: Validator<Omit<V, '$type'>>,\n): RecordSchema<K, V['$type'], Validator<Omit<V, '$type'>>>\n/*@__NO_SIDE_EFFECTS__*/\nexport function record<\n const K extends LexiconRecordKey,\n const T extends NsidString,\n const S extends Validator<{ [_ in string]?: unknown }>,\n>(key: K, type: T, schema: S) {\n return new RecordSchema<K, T, S>(key, type, schema)\n}\n\n/*@__NO_SIDE_EFFECTS__*/\nexport function params<\n const P extends ParamsSchemaShape = NonNullable<unknown>,\n>(properties: P = {} as P) {\n return new ParamsSchema<P>(properties)\n}\n\n/*@__NO_SIDE_EFFECTS__*/\nexport function payload<\n const E extends string | undefined = undefined,\n const S extends PayloadBody<E> = undefined,\n>(encoding: E = undefined as E, schema: S = undefined as S) {\n return new Payload<E, S>(encoding, schema)\n}\n\n/*@__NO_SIDE_EFFECTS__*/\nexport function query<\n const N extends NsidString,\n const P extends ParamsSchema,\n const O extends Payload,\n const E extends undefined | readonly string[] = undefined,\n>(nsid: N, parameters: P, output: O, errors: E = undefined as E) {\n return new Query<N, P, O, E>(nsid, parameters, output, errors)\n}\n\n/*@__NO_SIDE_EFFECTS__*/\nexport function procedure<\n const N extends NsidString,\n const P extends ParamsSchema,\n const I extends Payload,\n const O extends Payload,\n const E extends undefined | readonly string[] = undefined,\n>(nsid: N, parameters: P, input: I, output: O, errors: E = undefined as E) {\n return new Procedure<N, P, I, O, E>(nsid, parameters, input, output, errors)\n}\n\n/*@__NO_SIDE_EFFECTS__*/\nexport function subscription<\n const N extends NsidString,\n const P extends ParamsSchema,\n const M extends undefined | RefSchema | TypedUnionSchema | ObjectSchema,\n const E extends undefined | readonly string[] = undefined,\n>(nsid: N, parameters: P, message: M, errors: E = undefined as E) {\n return new Subscription<N, P, M, E>(nsid, parameters, message, errors)\n}\n\n/*@__NO_SIDE_EFFECTS__*/\nexport function permission<\n const R extends string,\n const O extends PermissionOptions,\n>(resource: R, options: PermissionOptions & O = {} as O) {\n return new Permission<R, O>(resource, options)\n}\n\n/*@__NO_SIDE_EFFECTS__*/\nexport function permissionSet<\n const N extends NsidString,\n const P extends readonly Permission[],\n>(nsid: N, permissions: P, options?: PermissionSetOptions) {\n return new PermissionSet<N, P>(nsid, permissions, options)\n}\n"]}
1
+ {"version":3,"file":"external.js","sourceRoot":"","sources":["../src/external.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n $Type,\n $TypeOf,\n $type,\n Infer,\n LexiconRecordKey,\n NsidString,\n PropertyKey,\n Schema,\n Validator,\n} from './core.js'\nimport {\n ArraySchema,\n ArraySchemaOptions,\n BlobSchema,\n BlobSchemaOptions,\n BooleanSchema,\n BooleanSchemaOptions,\n BytesSchema,\n BytesSchemaOptions,\n CidSchema,\n CidSchemaOptions,\n CustomAssertion,\n CustomSchema,\n DictSchema,\n DiscriminatedUnionSchema,\n DiscriminatedUnionVariants,\n EnumSchema,\n EnumSchemaOptions,\n IntegerSchema,\n IntegerSchemaOptions,\n IntersectionSchema,\n LiteralSchema,\n LiteralSchemaOptions,\n NeverSchema,\n NullSchema,\n NullableSchema,\n ObjectSchema,\n ObjectSchemaShape,\n OptionalSchema,\n ParamsSchema,\n ParamsSchemaShape,\n Payload,\n PayloadSchema,\n Permission,\n PermissionOptions,\n PermissionSet,\n PermissionSetOptions,\n Procedure,\n Query,\n RecordSchema,\n RefSchema,\n RefSchemaGetter,\n RegexpSchema,\n StringSchema,\n StringSchemaOptions,\n Subscription,\n TokenSchema,\n TypedObjectSchema,\n TypedRefGetter,\n TypedRefSchema,\n TypedUnionSchema,\n UnionSchema,\n UnionSchemaValidators,\n UnknownObjectOutput,\n UnknownObjectSchema,\n UnknownSchema,\n refine,\n} from './schema.js'\nimport { memoizedOptions, memoizedTransformer } from './util/memoize.js'\n\nexport * from './core.js'\nexport * from './helpers.js'\nexport * from './schema.js'\n\nexport { _null as null }\n\nexport const never = /*#__PURE__*/ memoizedOptions(function () {\n return new NeverSchema()\n})\n\nexport const unknown = /*#__PURE__*/ memoizedOptions(function () {\n return new UnknownSchema()\n})\n\nconst _null = /*#__PURE__*/ memoizedOptions(function () {\n return new NullSchema()\n})\n\n/*@__NO_SIDE_EFFECTS__*/\nexport function literal<const V extends null | string | number | boolean>(\n value: V,\n options?: LiteralSchemaOptions<V>,\n) {\n return new LiteralSchema<V>(value, options)\n}\n\n/*@__NO_SIDE_EFFECTS__*/\nexport function _enum<const V extends null | string | number | boolean>(\n value: readonly V[],\n options?: EnumSchemaOptions<V>,\n) {\n return new EnumSchema<V>(value, options)\n}\n\n// @NOTE \"enum\" is a reserved keyword in JS/TS\nexport { _enum as enum }\n\nexport const boolean = /*#__PURE__*/ memoizedOptions(\n function (options?: BooleanSchemaOptions) {\n return new BooleanSchema(options)\n },\n (options) => {\n const keys = Object.keys(options)\n if (keys.length === 1 && keys[0] === 'default') return options.default!\n },\n)\n\nexport const integer = /*#__PURE__*/ memoizedOptions(function (\n options?: IntegerSchemaOptions,\n) {\n return new IntegerSchema(options)\n})\n\nexport const cidLink = /*#__PURE__*/ memoizedOptions(function (\n options?: CidSchemaOptions,\n) {\n return new CidSchema(options)\n})\n\nexport const bytes = /*#__PURE__*/ memoizedOptions(function (\n options?: BytesSchemaOptions,\n) {\n return new BytesSchema(options)\n})\n\nexport const blob = /*#__PURE__*/ memoizedOptions(function <\n O extends BlobSchemaOptions = NonNullable<unknown>,\n>(options: O = {} as O) {\n return new BlobSchema(options)\n})\n\nexport const string = /*#__PURE__*/ memoizedOptions(function <\n const O extends StringSchemaOptions = NonNullable<unknown>,\n>(options: StringSchemaOptions & O = {} as O) {\n return new StringSchema<O>(options)\n})\n\n/*@__NO_SIDE_EFFECTS__*/\nexport function regexp<T extends string = string>(pattern: RegExp) {\n return new RegexpSchema<T>(pattern)\n}\n\n/*@__NO_SIDE_EFFECTS__*/\nexport function array<const S extends Validator>(\n items: S,\n options?: ArraySchemaOptions,\n): ArraySchema<S>\nexport function array<T, const S extends Validator<T> = Validator<T>>(\n items: S,\n options?: ArraySchemaOptions,\n): ArraySchema<S>\nexport function array<const S extends Validator>(\n items: S,\n options?: ArraySchemaOptions,\n) {\n return new ArraySchema<S>(items, options)\n}\n\n/*@__NO_SIDE_EFFECTS__*/\nexport function object<const P extends ObjectSchemaShape>(properties: P) {\n return new ObjectSchema<P>(properties)\n}\n\n/*@__NO_SIDE_EFFECTS__*/\nexport function dict<\n const K extends Validator<string>,\n const V extends Validator,\n>(key: K, value: V) {\n return new DictSchema<K, V>(key, value)\n}\n\n// Utility\nexport type { UnknownObjectOutput as UnknownObject }\n\nexport const unknownObject = /*#__PURE__*/ memoizedOptions(function () {\n return new UnknownObjectSchema()\n})\n\n/*@__NO_SIDE_EFFECTS__*/\nexport function ref<T>(get: RefSchemaGetter<T>) {\n return new RefSchema<T>(get)\n}\n\n/*@__NO_SIDE_EFFECTS__*/\nexport function custom<T>(\n assertion: CustomAssertion<T>,\n message: string,\n path?: PropertyKey | readonly PropertyKey[],\n) {\n return new CustomSchema<T>(assertion, message, path)\n}\n\nexport const nullable = /*#__PURE__*/ memoizedTransformer(function <\n const S extends Validator,\n>(schema: S) {\n return new NullableSchema<Infer<S>>(schema)\n})\n\nexport const optional = /*#__PURE__*/ memoizedTransformer(function <\n const S extends Validator,\n>(schema: S) {\n return new OptionalSchema<Infer<S>>(schema)\n})\n\n/*@__NO_SIDE_EFFECTS__*/\nexport function union<const V extends UnionSchemaValidators>(validators: V) {\n return new UnionSchema<V>(validators)\n}\n\n/*@__NO_SIDE_EFFECTS__*/\nexport function intersection<\n const Left extends ObjectSchema,\n const Right extends DictSchema,\n>(left: Left, right: Right) {\n return new IntersectionSchema<Left, Right>(left, right)\n}\n\nexport { refine }\n\n/*@__NO_SIDE_EFFECTS__*/\nexport function discriminatedUnion<\n const Discriminator extends string,\n const Options extends DiscriminatedUnionVariants<Discriminator>,\n>(discriminator: Discriminator, variants: Options) {\n return new DiscriminatedUnionSchema<Discriminator, Options>(\n discriminator,\n variants,\n )\n}\n\n/*@__NO_SIDE_EFFECTS__*/\nexport function token<const N extends NsidString, const H extends string>(\n nsid: N,\n hash: H,\n) {\n return new TokenSchema($type(nsid, hash))\n}\n\n/*@__NO_SIDE_EFFECTS__*/\nexport function typedRef<const V extends { $type?: string }>(\n get: TypedRefGetter<V>,\n) {\n return new TypedRefSchema<V>(get)\n}\n\n/*@__NO_SIDE_EFFECTS__*/\nexport function typedUnion<\n const R extends readonly TypedRefSchema[],\n const C extends boolean,\n>(refs: R, closed: C) {\n return new TypedUnionSchema<R, C>(refs, closed)\n}\n\n/**\n * This function offers two overloads:\n * - One that allows creating a {@link TypedObjectSchema}, and infer the output\n * type from the provided arguments, without requiring to specify any of the\n * generics. This is useful when you want to define a record without\n * explicitly defining its interface. This version does not support circular\n * references, as TypeScript cannot infer types in such cases.\n * - One allows creating a {@link TypedObjectSchema} with an explicitly defined\n * interface. This will typically be used by codegen (`lex build`) to generate\n * schemas that work even if they contain circular references.\n */\nexport function typedObject<\n const N extends NsidString,\n const H extends string,\n const S extends Validator<{ [k: string]: unknown }>,\n>(nsid: N, hash: H, schema: S): TypedObjectSchema<$Type<N, H>, S>\nexport function typedObject<V extends { $type?: $Type }>(\n nsid: V extends { $type?: infer T extends string }\n ? T extends `${infer N}#${string}`\n ? N\n : T // (T is a \"main\" type, so already an NSID)\n : never,\n hash: V extends { $type?: infer T extends string }\n ? T extends `${string}#${infer H}`\n ? H\n : 'main'\n : never,\n schema: Validator<Omit<V, '$type'>>,\n): TypedObjectSchema<$TypeOf<V>, Validator<Omit<V, '$type'>>>\n/*@__NO_SIDE_EFFECTS__*/\nexport function typedObject<\n const N extends NsidString,\n const H extends string,\n const S extends Validator<{ [k: string]: unknown }>,\n>(nsid: N, hash: H, schema: S) {\n return new TypedObjectSchema<$Type<N, H>, S>($type(nsid, hash), schema)\n}\n\n/**\n * Ensures that a `$type` used in a record is a valid NSID (i.e. no fragment).\n */\ntype AsNsid<T> = T extends `${string}#${string}` ? never : T\n\n/**\n * This function offers two overloads:\n * - One that allows creating a {@link RecordSchema}, and infer the output type\n * from the provided arguments, without requiring to specify any of the\n * generics. This is useful when you want to define a record without\n * explicitly defining its interface. This version does not support circular\n * references, as TypeScript cannot infer types in such cases.\n * - One allows creating a {@link RecordSchema} with an explicitly defined\n * interface. This will typically be used by codegen (`lex build`) to generate\n * schemas that work even if they contain circular references.\n */\nexport function record<\n const K extends LexiconRecordKey,\n const T extends NsidString,\n const S extends Validator<{ [k: string]: unknown }>,\n>(key: K, type: AsNsid<T>, schema: S): RecordSchema<K, T, S>\nexport function record<\n const K extends LexiconRecordKey,\n const V extends { $type: NsidString },\n>(\n key: K,\n type: AsNsid<V['$type']>,\n schema: Validator<Omit<V, '$type'>>,\n): RecordSchema<K, V['$type'], Validator<Omit<V, '$type'>>>\n/*@__NO_SIDE_EFFECTS__*/\nexport function record<\n const K extends LexiconRecordKey,\n const T extends NsidString,\n const S extends Validator<{ [k: string]: unknown }>,\n>(key: K, type: T, schema: S) {\n return new RecordSchema<K, T, S>(key, type, schema)\n}\n\nexport const params = /*#__PURE__*/ memoizedOptions(function <\n const P extends ParamsSchemaShape = NonNullable<unknown>,\n>(properties: P = {} as P) {\n return new ParamsSchema<P>(properties)\n})\n\n/*@__NO_SIDE_EFFECTS__*/\nexport function payload<\n const E extends string | undefined = undefined,\n const S extends PayloadSchema<E> = undefined,\n>(encoding: E = undefined as E, schema: S = undefined as S) {\n return new Payload<E, S>(encoding, schema)\n}\n\n/*@__NO_SIDE_EFFECTS__*/\nexport function jsonPayload<const P extends ObjectSchemaShape>(\n properties: P,\n): Payload<'application/json', ObjectSchema<P>> {\n return payload('application/json', object(properties))\n}\n\n/*@__NO_SIDE_EFFECTS__*/\nexport function query<\n const N extends NsidString,\n const P extends ParamsSchema,\n const O extends Payload,\n const E extends undefined | readonly string[] = undefined,\n>(nsid: N, parameters: P, output: O, errors: E = undefined as E) {\n return new Query<N, P, O, E>(nsid, parameters, output, errors)\n}\n\n/*@__NO_SIDE_EFFECTS__*/\nexport function procedure<\n const N extends NsidString,\n const P extends ParamsSchema,\n const I extends Payload,\n const O extends Payload,\n const E extends undefined | readonly string[] = undefined,\n>(nsid: N, parameters: P, input: I, output: O, errors: E = undefined as E) {\n return new Procedure<N, P, I, O, E>(nsid, parameters, input, output, errors)\n}\n\n/*@__NO_SIDE_EFFECTS__*/\nexport function subscription<\n const N extends NsidString,\n const P extends ParamsSchema,\n const M extends Schema,\n const E extends undefined | readonly string[] = undefined,\n>(nsid: N, parameters: P, message: M, errors: E = undefined as E) {\n return new Subscription<N, P, M, E>(nsid, parameters, message, errors)\n}\n\n/*@__NO_SIDE_EFFECTS__*/\nexport function permission<\n const R extends string,\n const O extends PermissionOptions,\n>(resource: R, options: PermissionOptions & O = {} as O) {\n return new Permission<R, O>(resource, options)\n}\n\n/*@__NO_SIDE_EFFECTS__*/\nexport function permissionSet<\n const N extends NsidString,\n const P extends readonly Permission[],\n>(nsid: N, permissions: P, options?: PermissionSetOptions) {\n return new PermissionSet<N, P>(nsid, permissions, options)\n}\n"]}
@@ -0,0 +1,41 @@
1
+ import { LexErrorData } from '@atproto/lex-data';
2
+ import { Infer, Restricted, Schema } from './core.js';
3
+ import { InferPayload, InferPayloadBody, InferPayloadEncoding, Payload, Procedure, Query, Subscription } from './schema.js';
4
+ export type Main<T> = T | {
5
+ main: T;
6
+ };
7
+ export declare function getMain<T extends object>(ns: Main<T>): T;
8
+ /**
9
+ * Every XRPC implementation should translate `application/json` and `text/*`
10
+ * payloads into their native equivalent ({@link LexValue} or string). Binary
11
+ * data payloads, however, can be represented differently depending on the
12
+ * environment and use case (e.g. `Uint8Array`, `Blob`, `Buffer`,
13
+ * `ReadableStream`, etc.). This type is a placeholder to represent binary data
14
+ * when not explicitly provided.
15
+ */
16
+ type BinaryData = Restricted<'Binary data'>;
17
+ export type InferMethodParams<M extends Procedure | Query | Subscription> = Infer<M['parameters']>;
18
+ export type InferMethodInput<M extends Procedure | Query | Subscription, B = BinaryData> = M extends {
19
+ input: Payload;
20
+ } ? InferPayload<M['input'], B> : undefined;
21
+ export type InferMethodInputBody<M extends Procedure | Query | Subscription, B = BinaryData> = M extends {
22
+ input: Payload;
23
+ } ? InferPayloadBody<M['input'], B> : undefined;
24
+ export type InferMethodInputEncoding<M extends Procedure | Query | Subscription> = M extends {
25
+ input: Payload;
26
+ } ? InferPayloadEncoding<M['input']> : undefined;
27
+ export type InferMethodOutput<M extends Procedure | Query | Subscription, B = BinaryData> = M extends {
28
+ output: Payload;
29
+ } ? InferPayload<M['output'], B> : undefined;
30
+ export type InferMethodOutputBody<M extends Procedure | Query | Subscription, B = BinaryData> = M extends {
31
+ output: Payload;
32
+ } ? InferPayloadBody<M['output'], B> : undefined;
33
+ export type InferMethodOutputEncoding<M extends Procedure | Query | Subscription> = M extends {
34
+ output: Payload;
35
+ } ? InferPayloadEncoding<M['output']> : undefined;
36
+ export type InferMethodMessage<M extends Procedure | Query | Subscription> = M extends {
37
+ message: Schema;
38
+ } ? Infer<M['message']> : undefined;
39
+ export declare const lexErrorData: Schema<LexErrorData>;
40
+ export {};
41
+ //# sourceMappingURL=helpers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../src/helpers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAChD,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,WAAW,CAAA;AACrD,OAAO,EACL,YAAY,EACZ,gBAAgB,EAChB,oBAAoB,EAGpB,OAAO,EACP,SAAS,EACT,KAAK,EAEL,YAAY,EACb,MAAM,aAAa,CAAA;AAEpB,MAAM,MAAM,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG;IAAE,IAAI,EAAE,CAAC,CAAA;CAAE,CAAA;AAErC,wBAAgB,OAAO,CAAC,CAAC,SAAS,MAAM,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAExD;AAED;;;;;;;GAOG;AACH,KAAK,UAAU,GAAG,UAAU,CAAC,aAAa,CAAC,CAAA;AAE3C,MAAM,MAAM,iBAAiB,CAE3B,CAAC,SAAS,SAAS,GAAG,KAAK,GAAG,YAAY,IACxC,KAAK,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAA;AAE1B,MAAM,MAAM,gBAAgB,CAC1B,CAAC,SAAS,SAAS,GAAG,KAAK,GAAG,YAAY,EAC1C,CAAC,GAAG,UAAU,IACZ,CAAC,SAAS;IAAE,KAAK,EAAE,OAAO,CAAA;CAAE,GAAG,YAAY,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,GAAG,SAAS,CAAA;AAE1E,MAAM,MAAM,oBAAoB,CAC9B,CAAC,SAAS,SAAS,GAAG,KAAK,GAAG,YAAY,EAC1C,CAAC,GAAG,UAAU,IACZ,CAAC,SAAS;IAAE,KAAK,EAAE,OAAO,CAAA;CAAE,GAAG,gBAAgB,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,GAAG,SAAS,CAAA;AAE9E,MAAM,MAAM,wBAAwB,CAClC,CAAC,SAAS,SAAS,GAAG,KAAK,GAAG,YAAY,IACxC,CAAC,SAAS;IAAE,KAAK,EAAE,OAAO,CAAA;CAAE,GAAG,oBAAoB,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,SAAS,CAAA;AAE/E,MAAM,MAAM,iBAAiB,CAC3B,CAAC,SAAS,SAAS,GAAG,KAAK,GAAG,YAAY,EAC1C,CAAC,GAAG,UAAU,IACZ,CAAC,SAAS;IAAE,MAAM,EAAE,OAAO,CAAA;CAAE,GAAG,YAAY,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,GAAG,SAAS,CAAA;AAE5E,MAAM,MAAM,qBAAqB,CAC/B,CAAC,SAAS,SAAS,GAAG,KAAK,GAAG,YAAY,EAC1C,CAAC,GAAG,UAAU,IACZ,CAAC,SAAS;IAAE,MAAM,EAAE,OAAO,CAAA;CAAE,GAAG,gBAAgB,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,GAAG,SAAS,CAAA;AAEhF,MAAM,MAAM,yBAAyB,CACnC,CAAC,SAAS,SAAS,GAAG,KAAK,GAAG,YAAY,IACxC,CAAC,SAAS;IAAE,MAAM,EAAE,OAAO,CAAA;CAAE,GAC7B,oBAAoB,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,GACjC,SAAS,CAAA;AAEb,MAAM,MAAM,kBAAkB,CAE5B,CAAC,SAAS,SAAS,GAAG,KAAK,GAAG,YAAY,IACxC,CAAC,SAAS;IAAE,OAAO,EAAE,MAAM,CAAA;CAAE,GAAG,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,GAAG,SAAS,CAAA;AAEnE,eAAO,MAAM,YAAY,EAAE,MAAM,CAAC,YAAY,CAG5C,CAAA"}
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.lexErrorData = void 0;
4
+ exports.getMain = getMain;
5
+ const schema_js_1 = require("./schema.js");
6
+ function getMain(ns) {
7
+ return 'main' in ns ? ns.main : ns;
8
+ }
9
+ exports.lexErrorData = new schema_js_1.ObjectSchema({
10
+ error: new schema_js_1.StringSchema({ minLength: 1 }),
11
+ message: new schema_js_1.OptionalSchema(new schema_js_1.StringSchema({})),
12
+ });
13
+ //# sourceMappingURL=helpers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"helpers.js","sourceRoot":"","sources":["../src/helpers.ts"],"names":[],"mappings":";;;AAiBA,0BAEC;AAjBD,2CAWoB;AAIpB,SAAgB,OAAO,CAAmB,EAAW;IACnD,OAAO,MAAM,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAA;AACpC,CAAC;AAoDY,QAAA,YAAY,GAAyB,IAAI,wBAAY,CAAC;IACjE,KAAK,EAAE,IAAI,wBAAY,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC;IACzC,OAAO,EAAE,IAAI,0BAAc,CAAC,IAAI,wBAAY,CAAC,EAAE,CAAC,CAAC;CAClD,CAAC,CAAA","sourcesContent":["import { LexErrorData } from '@atproto/lex-data'\nimport { Infer, Restricted, Schema } from './core.js'\nimport {\n InferPayload,\n InferPayloadBody,\n InferPayloadEncoding,\n ObjectSchema,\n OptionalSchema,\n Payload,\n Procedure,\n Query,\n StringSchema,\n Subscription,\n} from './schema.js'\n\nexport type Main<T> = T | { main: T }\n\nexport function getMain<T extends object>(ns: Main<T>): T {\n return 'main' in ns ? ns.main : ns\n}\n\n/**\n * Every XRPC implementation should translate `application/json` and `text/*`\n * payloads into their native equivalent ({@link LexValue} or string). Binary\n * data payloads, however, can be represented differently depending on the\n * environment and use case (e.g. `Uint8Array`, `Blob`, `Buffer`,\n * `ReadableStream`, etc.). This type is a placeholder to represent binary data\n * when not explicitly provided.\n */\ntype BinaryData = Restricted<'Binary data'>\n\nexport type InferMethodParams<\n //\n M extends Procedure | Query | Subscription,\n> = Infer<M['parameters']>\n\nexport type InferMethodInput<\n M extends Procedure | Query | Subscription,\n B = BinaryData,\n> = M extends { input: Payload } ? InferPayload<M['input'], B> : undefined\n\nexport type InferMethodInputBody<\n M extends Procedure | Query | Subscription,\n B = BinaryData,\n> = M extends { input: Payload } ? InferPayloadBody<M['input'], B> : undefined\n\nexport type InferMethodInputEncoding<\n M extends Procedure | Query | Subscription,\n> = M extends { input: Payload } ? InferPayloadEncoding<M['input']> : undefined\n\nexport type InferMethodOutput<\n M extends Procedure | Query | Subscription,\n B = BinaryData,\n> = M extends { output: Payload } ? InferPayload<M['output'], B> : undefined\n\nexport type InferMethodOutputBody<\n M extends Procedure | Query | Subscription,\n B = BinaryData,\n> = M extends { output: Payload } ? InferPayloadBody<M['output'], B> : undefined\n\nexport type InferMethodOutputEncoding<\n M extends Procedure | Query | Subscription,\n> = M extends { output: Payload }\n ? InferPayloadEncoding<M['output']>\n : undefined\n\nexport type InferMethodMessage<\n //\n M extends Procedure | Query | Subscription,\n> = M extends { message: Schema } ? Infer<M['message']> : undefined\n\nexport const lexErrorData: Schema<LexErrorData> = new ObjectSchema({\n error: new StringSchema({ minLength: 1 }),\n message: new OptionalSchema(new StringSchema({})),\n})\n"]}
@@ -1,4 +1,4 @@
1
- import { Infer } from '../validation.js';
1
+ import { Infer } from '../core.js';
2
2
  import { ArraySchema } from './array.js';
3
3
  import { BooleanSchema } from './boolean.js';
4
4
  import { DictSchema } from './dict.js';
@@ -1 +1 @@
1
- {"version":3,"file":"_parameters.d.ts","sourceRoot":"","sources":["../../src/schema/_parameters.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAa,MAAM,kBAAkB,CAAA;AACnD,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AACxC,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAA;AAC5C,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAA;AACtC,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAA;AAC5C,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAC1C,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AAExC,MAAM,MAAM,WAAW,GAAG,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAA;AACzD,QAAA,MAAM,iBAAiB,+DAIrB,CAAA;AAEF,MAAM,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,WAAW,CAAC,CAAA;AAC7C,eAAO,MAAM,WAAW,0JAGtB,CAAA;AAEF,MAAM,MAAM,MAAM,GAAG;IAAE,CAAC,CAAC,EAAE,MAAM,GAAG,SAAS,GAAG,KAAK,CAAA;CAAE,CAAA;AACvD,eAAO,MAAM,YAAY,wLAGI,CAAA"}
1
+ {"version":3,"file":"_parameters.d.ts","sourceRoot":"","sources":["../../src/schema/_parameters.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAa,MAAM,YAAY,CAAA;AAC7C,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AACxC,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAA;AAC5C,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAA;AACtC,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAA;AAC5C,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAC1C,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AAExC,MAAM,MAAM,WAAW,GAAG,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAA;AACzD,QAAA,MAAM,iBAAiB,+DAIrB,CAAA;AAEF,MAAM,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,WAAW,CAAC,CAAA;AAC7C,eAAO,MAAM,WAAW,0JAGtB,CAAA;AAEF,MAAM,MAAM,MAAM,GAAG;IAAE,CAAC,CAAC,EAAE,MAAM,GAAG,SAAS,GAAG,KAAK,CAAA;CAAE,CAAA;AACvD,eAAO,MAAM,YAAY,wLAGI,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"_parameters.js","sourceRoot":"","sources":["../../src/schema/_parameters.ts"],"names":[],"mappings":";;;AACA,yCAAwC;AACxC,6CAA4C;AAC5C,uCAAsC;AACtC,6CAA4C;AAC5C,2CAA0C;AAC1C,yCAAwC;AAGxC,MAAM,iBAAiB,GAAG,IAAI,sBAAW,CAAC;IACxC,IAAI,0BAAa,CAAC,EAAE,CAAC;IACrB,IAAI,0BAAa,CAAC,EAAE,CAAC;IACrB,IAAI,wBAAY,CAAC,EAAE,CAAC;CACrB,CAAC,CAAA;AAGW,QAAA,WAAW,GAAG,IAAI,sBAAW,CAAC;IACzC,iBAAiB;IACjB,IAAI,sBAAW,CAAC,iBAAiB,EAAE,EAAE,CAAC;CACvC,CAAC,CAAA;AAGW,QAAA,YAAY,GAAG,IAAI,oBAAU,CACxC,IAAI,wBAAY,CAAC,EAAE,CAAC,EACpB,mBAAW,CACgB,CAAA","sourcesContent":["import { Infer, Validator } from '../validation.js'\nimport { ArraySchema } from './array.js'\nimport { BooleanSchema } from './boolean.js'\nimport { DictSchema } from './dict.js'\nimport { IntegerSchema } from './integer.js'\nimport { StringSchema } from './string.js'\nimport { UnionSchema } from './union.js'\n\nexport type ParamScalar = Infer<typeof paramScalarSchema>\nconst paramScalarSchema = new UnionSchema([\n new BooleanSchema({}),\n new IntegerSchema({}),\n new StringSchema({}),\n])\n\nexport type Param = Infer<typeof paramSchema>\nexport const paramSchema = new UnionSchema([\n paramScalarSchema,\n new ArraySchema(paramScalarSchema, {}),\n])\n\nexport type Params = { [_: string]: undefined | Param }\nexport const paramsSchema = new DictSchema(\n new StringSchema({}),\n paramSchema,\n) satisfies Validator<Params>\n"]}
1
+ {"version":3,"file":"_parameters.js","sourceRoot":"","sources":["../../src/schema/_parameters.ts"],"names":[],"mappings":";;;AACA,yCAAwC;AACxC,6CAA4C;AAC5C,uCAAsC;AACtC,6CAA4C;AAC5C,2CAA0C;AAC1C,yCAAwC;AAGxC,MAAM,iBAAiB,GAAG,IAAI,sBAAW,CAAC;IACxC,IAAI,0BAAa,CAAC,EAAE,CAAC;IACrB,IAAI,0BAAa,CAAC,EAAE,CAAC;IACrB,IAAI,wBAAY,CAAC,EAAE,CAAC;CACrB,CAAC,CAAA;AAGW,QAAA,WAAW,GAAG,IAAI,sBAAW,CAAC;IACzC,iBAAiB;IACjB,IAAI,sBAAW,CAAC,iBAAiB,EAAE,EAAE,CAAC;CACvC,CAAC,CAAA;AAGW,QAAA,YAAY,GAAG,IAAI,oBAAU,CACxC,IAAI,wBAAY,CAAC,EAAE,CAAC,EACpB,mBAAW,CACgB,CAAA","sourcesContent":["import { Infer, Validator } from '../core.js'\nimport { ArraySchema } from './array.js'\nimport { BooleanSchema } from './boolean.js'\nimport { DictSchema } from './dict.js'\nimport { IntegerSchema } from './integer.js'\nimport { StringSchema } from './string.js'\nimport { UnionSchema } from './union.js'\n\nexport type ParamScalar = Infer<typeof paramScalarSchema>\nconst paramScalarSchema = new UnionSchema([\n new BooleanSchema({}),\n new IntegerSchema({}),\n new StringSchema({}),\n])\n\nexport type Param = Infer<typeof paramSchema>\nexport const paramSchema = new UnionSchema([\n paramScalarSchema,\n new ArraySchema(paramScalarSchema, {}),\n])\n\nexport type Params = { [_: string]: undefined | Param }\nexport const paramsSchema = new DictSchema(\n new StringSchema({}),\n paramSchema,\n) satisfies Validator<Params>\n"]}
@@ -1,4 +1,4 @@
1
- import { Infer, Schema, ValidationResult, Validator, ValidatorContext } from '../validation.js';
1
+ import { Infer, Schema, ValidationResult, Validator, ValidatorContext } from '../core.js';
2
2
  export type ArraySchemaOptions = {
3
3
  minLength?: number;
4
4
  maxLength?: number;
@@ -1 +1 @@
1
- {"version":3,"file":"array.d.ts","sourceRoot":"","sources":["../../src/schema/array.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,EACL,MAAM,EACN,gBAAgB,EAChB,SAAS,EACT,gBAAgB,EACjB,MAAM,kBAAkB,CAAA;AAEzB,MAAM,MAAM,kBAAkB,GAAG;IAC/B,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB,CAAA;AAED,qBAAa,WAAW,CAAC,KAAK,CAAC,CAAC,SAAS,SAAS,CAAE,SAAQ,MAAM,CAChE,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAChB;IAEG,QAAQ,CAAC,WAAW,EAAE,CAAC;IACvB,QAAQ,CAAC,OAAO,EAAE,kBAAkB;gBAD3B,WAAW,EAAE,CAAC,EACd,OAAO,GAAE,kBAAuB;IAK3C,iBAAiB,CACf,KAAK,EAAE,OAAO,EACd,GAAG,EAAE,gBAAgB,GACpB,gBAAgB,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;CA8BrC"}
1
+ {"version":3,"file":"array.d.ts","sourceRoot":"","sources":["../../src/schema/array.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,EACL,MAAM,EACN,gBAAgB,EAChB,SAAS,EACT,gBAAgB,EACjB,MAAM,YAAY,CAAA;AAEnB,MAAM,MAAM,kBAAkB,GAAG;IAC/B,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB,CAAA;AAED,qBAAa,WAAW,CAAC,KAAK,CAAC,CAAC,SAAS,SAAS,CAAE,SAAQ,MAAM,CAChE,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAChB;IAEG,QAAQ,CAAC,WAAW,EAAE,CAAC;IACvB,QAAQ,CAAC,OAAO,EAAE,kBAAkB;gBAD3B,WAAW,EAAE,CAAC,EACd,OAAO,GAAE,kBAAuB;IAK3C,iBAAiB,CACf,KAAK,EAAE,OAAO,EACd,GAAG,EAAE,gBAAgB,GACpB,gBAAgB,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;CA8BrC"}
@@ -1,8 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.ArraySchema = void 0;
4
- const validation_js_1 = require("../validation.js");
5
- class ArraySchema extends validation_js_1.Schema {
4
+ const core_js_1 = require("../core.js");
5
+ class ArraySchema extends core_js_1.Schema {
6
6
  itemsSchema;
7
7
  options;
8
8
  constructor(itemsSchema, options = {}) {
@@ -1 +1 @@
1
- {"version":3,"file":"array.js","sourceRoot":"","sources":["../../src/schema/array.ts"],"names":[],"mappings":";;;AAAA,oDAMyB;AAOzB,MAAa,WAAuC,SAAQ,sBAE3D;IAEY;IACA;IAFX,YACW,WAAc,EACd,UAA8B,EAAE;QAEzC,KAAK,EAAE,CAAA;QAHE,gBAAW,GAAX,WAAW,CAAG;QACd,YAAO,GAAP,OAAO,CAAyB;IAG3C,CAAC;IAED,iBAAiB,CACf,KAAc,EACd,GAAqB;QAErB,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YAC1B,OAAO,GAAG,CAAC,gBAAgB,CAAC,KAAK,EAAE,OAAO,CAAC,CAAA;QAC7C,CAAC;QAED,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,GAAG,IAAI,CAAC,OAAO,CAAA;QAE7C,IAAI,SAAS,IAAI,IAAI,IAAI,KAAK,CAAC,MAAM,GAAG,SAAS,EAAE,CAAC;YAClD,OAAO,GAAG,CAAC,aAAa,CAAC,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,KAAK,CAAC,MAAM,CAAC,CAAA;QACnE,CAAC;QAED,IAAI,SAAS,IAAI,IAAI,IAAI,KAAK,CAAC,MAAM,GAAG,SAAS,EAAE,CAAC;YAClD,OAAO,GAAG,CAAC,WAAW,CAAC,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,KAAK,CAAC,MAAM,CAAC,CAAA;QACjE,CAAC;QAED,IAAI,IAAiC,CAAA;QAErC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACtC,MAAM,MAAM,GAAG,GAAG,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC,EAAE,IAAI,CAAC,WAAW,CAAC,CAAA;YAC5D,IAAI,CAAC,MAAM,CAAC,OAAO;gBAAE,OAAO,MAAM,CAAA;YAElC,IAAI,MAAM,CAAC,KAAK,KAAK,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC9B,6DAA6D;gBAC7D,IAAI,KAAK,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;gBAC1B,IAAI,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,KAAK,CAAA;YACxB,CAAC;QACH,CAAC;QAED,OAAO,GAAG,CAAC,OAAO,CAAC,IAAI,IAAI,KAAK,CAAsC,CAAA;IACxE,CAAC;CACF;AA3CD,kCA2CC","sourcesContent":["import {\n Infer,\n Schema,\n ValidationResult,\n Validator,\n ValidatorContext,\n} from '../validation.js'\n\nexport type ArraySchemaOptions = {\n minLength?: number\n maxLength?: number\n}\n\nexport class ArraySchema<const T extends Validator> extends Schema<\n Array<Infer<T>>\n> {\n constructor(\n readonly itemsSchema: T,\n readonly options: ArraySchemaOptions = {},\n ) {\n super()\n }\n\n validateInContext(\n input: unknown,\n ctx: ValidatorContext,\n ): ValidationResult<Array<Infer<T>>> {\n if (!Array.isArray(input)) {\n return ctx.issueInvalidType(input, 'array')\n }\n\n const { minLength, maxLength } = this.options\n\n if (minLength != null && input.length < minLength) {\n return ctx.issueTooSmall(input, 'array', minLength, input.length)\n }\n\n if (maxLength != null && input.length > maxLength) {\n return ctx.issueTooBig(input, 'array', maxLength, input.length)\n }\n\n let copy: undefined | Array<Infer<T>>\n\n for (let i = 0; i < input.length; i++) {\n const result = ctx.validateChild(input, i, this.itemsSchema)\n if (!result.success) return result\n\n if (result.value !== input[i]) {\n // Copy on write (but only if we did not already make a copy)\n copy ??= Array.from(input)\n copy[i] = result.value\n }\n }\n\n return ctx.success(copy ?? input) as ValidationResult<Array<Infer<T>>>\n }\n}\n"]}
1
+ {"version":3,"file":"array.js","sourceRoot":"","sources":["../../src/schema/array.ts"],"names":[],"mappings":";;;AAAA,wCAMmB;AAOnB,MAAa,WAAuC,SAAQ,gBAE3D;IAEY;IACA;IAFX,YACW,WAAc,EACd,UAA8B,EAAE;QAEzC,KAAK,EAAE,CAAA;QAHE,gBAAW,GAAX,WAAW,CAAG;QACd,YAAO,GAAP,OAAO,CAAyB;IAG3C,CAAC;IAED,iBAAiB,CACf,KAAc,EACd,GAAqB;QAErB,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YAC1B,OAAO,GAAG,CAAC,gBAAgB,CAAC,KAAK,EAAE,OAAO,CAAC,CAAA;QAC7C,CAAC;QAED,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,GAAG,IAAI,CAAC,OAAO,CAAA;QAE7C,IAAI,SAAS,IAAI,IAAI,IAAI,KAAK,CAAC,MAAM,GAAG,SAAS,EAAE,CAAC;YAClD,OAAO,GAAG,CAAC,aAAa,CAAC,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,KAAK,CAAC,MAAM,CAAC,CAAA;QACnE,CAAC;QAED,IAAI,SAAS,IAAI,IAAI,IAAI,KAAK,CAAC,MAAM,GAAG,SAAS,EAAE,CAAC;YAClD,OAAO,GAAG,CAAC,WAAW,CAAC,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,KAAK,CAAC,MAAM,CAAC,CAAA;QACjE,CAAC;QAED,IAAI,IAAiC,CAAA;QAErC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACtC,MAAM,MAAM,GAAG,GAAG,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC,EAAE,IAAI,CAAC,WAAW,CAAC,CAAA;YAC5D,IAAI,CAAC,MAAM,CAAC,OAAO;gBAAE,OAAO,MAAM,CAAA;YAElC,IAAI,MAAM,CAAC,KAAK,KAAK,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC9B,6DAA6D;gBAC7D,IAAI,KAAK,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;gBAC1B,IAAI,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,KAAK,CAAA;YACxB,CAAC;QACH,CAAC;QAED,OAAO,GAAG,CAAC,OAAO,CAAC,IAAI,IAAI,KAAK,CAAsC,CAAA;IACxE,CAAC;CACF;AA3CD,kCA2CC","sourcesContent":["import {\n Infer,\n Schema,\n ValidationResult,\n Validator,\n ValidatorContext,\n} from '../core.js'\n\nexport type ArraySchemaOptions = {\n minLength?: number\n maxLength?: number\n}\n\nexport class ArraySchema<const T extends Validator> extends Schema<\n Array<Infer<T>>\n> {\n constructor(\n readonly itemsSchema: T,\n readonly options: ArraySchemaOptions = {},\n ) {\n super()\n }\n\n validateInContext(\n input: unknown,\n ctx: ValidatorContext,\n ): ValidationResult<Array<Infer<T>>> {\n if (!Array.isArray(input)) {\n return ctx.issueInvalidType(input, 'array')\n }\n\n const { minLength, maxLength } = this.options\n\n if (minLength != null && input.length < minLength) {\n return ctx.issueTooSmall(input, 'array', minLength, input.length)\n }\n\n if (maxLength != null && input.length > maxLength) {\n return ctx.issueTooBig(input, 'array', maxLength, input.length)\n }\n\n let copy: undefined | Array<Infer<T>>\n\n for (let i = 0; i < input.length; i++) {\n const result = ctx.validateChild(input, i, this.itemsSchema)\n if (!result.success) return result\n\n if (result.value !== input[i]) {\n // Copy on write (but only if we did not already make a copy)\n copy ??= Array.from(input)\n copy[i] = result.value\n }\n }\n\n return ctx.success(copy ?? input) as ValidationResult<Array<Infer<T>>>\n }\n}\n"]}
@@ -1,5 +1,5 @@
1
1
  import { BlobRef, LegacyBlobRef } from '@atproto/lex-data';
2
- import { Schema, ValidationResult, ValidatorContext } from '../validation.js';
2
+ import { Schema, ValidationResult, ValidatorContext } from '../core.js';
3
3
  export type BlobSchemaOptions = {
4
4
  /**
5
5
  * Whether to allow legacy blob references format
@@ -27,5 +27,6 @@ export declare class BlobSchema<O extends BlobSchemaOptions> extends Schema<Blob
27
27
  readonly options: O;
28
28
  constructor(options: O);
29
29
  validateInContext(input: unknown, ctx: ValidatorContext): ValidationResult<BlobSchemaOutput<O>>;
30
+ matchesMime(mime: string): boolean;
30
31
  }
31
32
  //# sourceMappingURL=blob.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"blob.d.ts","sourceRoot":"","sources":["../../src/schema/blob.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,OAAO,EACP,aAAa,EAGd,MAAM,mBAAmB,CAAA;AAC1B,OAAO,EAAE,MAAM,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAA;AAE7E,MAAM,MAAM,iBAAiB,GAAG;IAC9B;;;OAGG;IACH,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB;;OAEG;IACH,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,EAAE,CAAA;IACjB;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB,CAAA;AAED,YAAY,EAAE,OAAO,EAAE,aAAa,EAAE,CAAA;AAEtC,MAAM,MAAM,gBAAgB,CAAC,OAAO,IAAI,OAAO,SAAS;IAAE,WAAW,EAAE,IAAI,CAAA;CAAE,GACzE,OAAO,GAAG,aAAa,GACvB,OAAO,CAAA;AAEX,qBAAa,UAAU,CAAC,CAAC,SAAS,iBAAiB,CAAE,SAAQ,MAAM,CACjE,gBAAgB,CAAC,CAAC,CAAC,CACpB;IACa,QAAQ,CAAC,OAAO,EAAE,CAAC;gBAAV,OAAO,EAAE,CAAC;IAI/B,iBAAiB,CACf,KAAK,EAAE,OAAO,EACd,GAAG,EAAE,gBAAgB,GACpB,gBAAgB,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC;CAoBzC"}
1
+ {"version":3,"file":"blob.d.ts","sourceRoot":"","sources":["../../src/schema/blob.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,OAAO,EACP,aAAa,EAGd,MAAM,mBAAmB,CAAA;AAC1B,OAAO,EAAE,MAAM,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAA;AAEvE,MAAM,MAAM,iBAAiB,GAAG;IAC9B;;;OAGG;IACH,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB;;OAEG;IACH,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,EAAE,CAAA;IACjB;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB,CAAA;AAED,YAAY,EAAE,OAAO,EAAE,aAAa,EAAE,CAAA;AAEtC,MAAM,MAAM,gBAAgB,CAAC,OAAO,IAAI,OAAO,SAAS;IAAE,WAAW,EAAE,IAAI,CAAA;CAAE,GACzE,OAAO,GAAG,aAAa,GACvB,OAAO,CAAA;AAEX,qBAAa,UAAU,CAAC,CAAC,SAAS,iBAAiB,CAAE,SAAQ,MAAM,CACjE,gBAAgB,CAAC,CAAC,CAAC,CACpB;IACa,QAAQ,CAAC,OAAO,EAAE,CAAC;gBAAV,OAAO,EAAE,CAAC;IAI/B,iBAAiB,CACf,KAAK,EAAE,OAAO,EACd,GAAG,EAAE,gBAAgB,GACpB,gBAAgB,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC;IA2BxC,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;CAKnC"}
@@ -2,37 +2,51 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.BlobSchema = void 0;
4
4
  const lex_data_1 = require("@atproto/lex-data");
5
- const validation_js_1 = require("../validation.js");
6
- class BlobSchema extends validation_js_1.Schema {
5
+ const core_js_1 = require("../core.js");
6
+ class BlobSchema extends core_js_1.Schema {
7
7
  options;
8
8
  constructor(options) {
9
9
  super();
10
10
  this.options = options;
11
11
  }
12
12
  validateInContext(input, ctx) {
13
- if (!isBlob(input, this.options)) {
13
+ const blob = input?.$type !== undefined
14
+ ? (0, lex_data_1.isBlobRef)(input, this.options)
15
+ ? input
16
+ : null
17
+ : this.options.allowLegacy === true && (0, lex_data_1.isLegacyBlobRef)(input)
18
+ ? input
19
+ : null;
20
+ if (!blob) {
14
21
  return ctx.issueInvalidType(input, 'blob');
15
22
  }
16
- // @NOTE Historically, we did not enforce constraints on blob references
17
- // https://github.com/bluesky-social/atproto/blob/4c15fb47cec26060bff2e710e95869a90c9d7fdd/packages/lexicon/src/validators/blob.ts#L5-L19
18
- // const { accept } = this.options
19
- // if (accept && !accept.includes(input.mimeType)) {
20
- // return ctx.issueInvalidValue(input, accept)
21
- // }
22
- // const { maxSize } = this.options
23
- // if (maxSize != null && input.size != -1 && input.size > maxSize) {
24
- // return ctx.issueTooBig(input, 'blob', maxSize, input.size)
25
- // }
26
- return ctx.success(input);
23
+ const { accept } = this.options;
24
+ if (accept && !matchesMime(blob.mimeType, accept)) {
25
+ return ctx.issueInvalidPropertyValue(blob, 'mimeType', accept);
26
+ }
27
+ const { maxSize } = this.options;
28
+ if (maxSize != null && 'size' in blob && blob.size > maxSize) {
29
+ return ctx.issueTooBig(blob, 'blob', maxSize, blob.size);
30
+ }
31
+ return ctx.success(blob);
32
+ }
33
+ matchesMime(mime) {
34
+ const { accept } = this.options;
35
+ if (!accept)
36
+ return true;
37
+ return matchesMime(mime, accept);
27
38
  }
28
39
  }
29
40
  exports.BlobSchema = BlobSchema;
30
- function isBlob(input, options) {
31
- if (input?.$type !== undefined) {
32
- return (0, lex_data_1.isBlobRef)(input, options);
33
- }
34
- if (options.allowLegacy === true) {
35
- return (0, lex_data_1.isLegacyBlobRef)(input);
41
+ function matchesMime(mime, accepted) {
42
+ if (accepted.includes('*/*'))
43
+ return true;
44
+ if (accepted.includes(mime))
45
+ return true;
46
+ for (const value of accepted) {
47
+ if (value.endsWith('/*') && mime.startsWith(value.slice(0, -1))) {
48
+ return true;
49
+ }
36
50
  }
37
51
  return false;
38
52
  }