@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.
- package/CHANGELOG.md +58 -0
- package/dist/core/$type.d.ts +7 -0
- package/dist/core/$type.d.ts.map +1 -1
- package/dist/core/$type.js.map +1 -1
- package/dist/core/property-key.d.ts.map +1 -0
- package/dist/core/property-key.js.map +1 -0
- package/dist/core/result.d.ts +7 -6
- package/dist/core/result.d.ts.map +1 -1
- package/dist/core/result.js +9 -8
- package/dist/core/result.js.map +1 -1
- package/dist/{validation → core}/schema.d.ts +21 -2
- package/dist/core/schema.d.ts.map +1 -0
- package/dist/{validation → core}/schema.js +25 -2
- package/dist/core/schema.js.map +1 -0
- package/dist/core/string-format.d.ts +37 -26
- package/dist/core/string-format.d.ts.map +1 -1
- package/dist/core/string-format.js +66 -59
- package/dist/core/string-format.js.map +1 -1
- package/dist/core/types.d.ts +3 -0
- package/dist/core/types.d.ts.map +1 -1
- package/dist/core/types.js.map +1 -1
- package/dist/core/validation-error.d.ts +19 -0
- package/dist/core/validation-error.d.ts.map +1 -0
- package/dist/{validation → core}/validation-error.js +13 -6
- package/dist/core/validation-error.js.map +1 -0
- package/dist/{validation → core}/validation-issue.d.ts +43 -0
- package/dist/core/validation-issue.d.ts.map +1 -0
- package/dist/{validation → core}/validation-issue.js +55 -2
- package/dist/core/validation-issue.js.map +1 -0
- package/dist/{validation → core}/validator.d.ts +5 -4
- package/dist/core/validator.d.ts.map +1 -0
- package/dist/{validation → core}/validator.js +16 -13
- package/dist/core/validator.js.map +1 -0
- package/dist/core.d.ts +5 -0
- package/dist/core.d.ts.map +1 -1
- package/dist/core.js +5 -0
- package/dist/core.js.map +1 -1
- package/dist/external.d.ts +21 -21
- package/dist/external.d.ts.map +1 -1
- package/dist/external.js +39 -55
- package/dist/external.js.map +1 -1
- package/dist/helpers.d.ts +41 -0
- package/dist/helpers.d.ts.map +1 -0
- package/dist/helpers.js +13 -0
- package/dist/helpers.js.map +1 -0
- package/dist/schema/_parameters.d.ts +1 -1
- package/dist/schema/_parameters.d.ts.map +1 -1
- package/dist/schema/_parameters.js.map +1 -1
- package/dist/schema/array.d.ts +1 -1
- package/dist/schema/array.d.ts.map +1 -1
- package/dist/schema/array.js +2 -2
- package/dist/schema/array.js.map +1 -1
- package/dist/schema/blob.d.ts +2 -1
- package/dist/schema/blob.d.ts.map +1 -1
- package/dist/schema/blob.js +34 -20
- package/dist/schema/blob.js.map +1 -1
- package/dist/schema/boolean.d.ts +1 -1
- package/dist/schema/boolean.d.ts.map +1 -1
- package/dist/schema/boolean.js +2 -2
- package/dist/schema/boolean.js.map +1 -1
- package/dist/schema/bytes.d.ts +1 -1
- package/dist/schema/bytes.d.ts.map +1 -1
- package/dist/schema/bytes.js +2 -2
- package/dist/schema/bytes.js.map +1 -1
- package/dist/schema/cid.d.ts +1 -1
- package/dist/schema/cid.d.ts.map +1 -1
- package/dist/schema/cid.js +2 -2
- package/dist/schema/cid.js.map +1 -1
- package/dist/schema/custom.d.ts +1 -1
- package/dist/schema/custom.d.ts.map +1 -1
- package/dist/schema/custom.js +3 -3
- package/dist/schema/custom.js.map +1 -1
- package/dist/schema/dict.d.ts +1 -1
- package/dist/schema/dict.d.ts.map +1 -1
- package/dist/schema/dict.js +2 -2
- package/dist/schema/dict.js.map +1 -1
- package/dist/schema/discriminated-union.d.ts +1 -1
- package/dist/schema/discriminated-union.d.ts.map +1 -1
- package/dist/schema/discriminated-union.js +2 -2
- package/dist/schema/discriminated-union.js.map +1 -1
- package/dist/schema/enum.d.ts +1 -1
- package/dist/schema/enum.d.ts.map +1 -1
- package/dist/schema/enum.js +2 -2
- package/dist/schema/enum.js.map +1 -1
- package/dist/schema/integer.d.ts +1 -1
- package/dist/schema/integer.d.ts.map +1 -1
- package/dist/schema/integer.js +4 -4
- package/dist/schema/integer.js.map +1 -1
- package/dist/schema/intersection.d.ts +1 -2
- package/dist/schema/intersection.d.ts.map +1 -1
- package/dist/schema/intersection.js +2 -2
- package/dist/schema/intersection.js.map +1 -1
- package/dist/schema/literal.d.ts +1 -1
- package/dist/schema/literal.d.ts.map +1 -1
- package/dist/schema/literal.js +2 -2
- package/dist/schema/literal.js.map +1 -1
- package/dist/schema/never.d.ts +1 -1
- package/dist/schema/never.d.ts.map +1 -1
- package/dist/schema/never.js +2 -2
- package/dist/schema/never.js.map +1 -1
- package/dist/schema/null.d.ts +1 -1
- package/dist/schema/null.d.ts.map +1 -1
- package/dist/schema/null.js +2 -2
- package/dist/schema/null.js.map +1 -1
- package/dist/schema/nullable.d.ts +1 -1
- package/dist/schema/nullable.d.ts.map +1 -1
- package/dist/schema/nullable.js +2 -2
- package/dist/schema/nullable.js.map +1 -1
- package/dist/schema/object.d.ts +1 -2
- package/dist/schema/object.d.ts.map +1 -1
- package/dist/schema/object.js +2 -2
- package/dist/schema/object.js.map +1 -1
- package/dist/schema/optional.d.ts +1 -1
- package/dist/schema/optional.d.ts.map +1 -1
- package/dist/schema/optional.js +2 -2
- package/dist/schema/optional.js.map +1 -1
- package/dist/schema/params.d.ts +1 -3
- package/dist/schema/params.d.ts.map +1 -1
- package/dist/schema/params.js +2 -2
- package/dist/schema/params.js.map +1 -1
- package/dist/schema/payload.d.ts +17 -15
- package/dist/schema/payload.d.ts.map +1 -1
- package/dist/schema/payload.js +28 -0
- package/dist/schema/payload.js.map +1 -1
- package/dist/schema/procedure.d.ts +3 -6
- package/dist/schema/procedure.d.ts.map +1 -1
- package/dist/schema/procedure.js +1 -0
- package/dist/schema/procedure.js.map +1 -1
- package/dist/schema/query.d.ts +3 -5
- package/dist/schema/query.d.ts.map +1 -1
- package/dist/schema/query.js +1 -0
- package/dist/schema/query.js.map +1 -1
- package/dist/schema/record.d.ts +14 -14
- package/dist/schema/record.d.ts.map +1 -1
- package/dist/schema/record.js +2 -2
- package/dist/schema/record.js.map +1 -1
- package/dist/schema/ref.d.ts +1 -1
- package/dist/schema/ref.d.ts.map +1 -1
- package/dist/schema/ref.js +2 -2
- package/dist/schema/ref.js.map +1 -1
- package/dist/schema/refine.d.ts +18 -1
- package/dist/schema/refine.d.ts.map +1 -1
- package/dist/schema/refine.js +2 -2
- package/dist/schema/refine.js.map +1 -1
- package/dist/schema/regexp.d.ts +1 -1
- package/dist/schema/regexp.d.ts.map +1 -1
- package/dist/schema/regexp.js +2 -2
- package/dist/schema/regexp.js.map +1 -1
- package/dist/schema/string.d.ts +1 -2
- package/dist/schema/string.d.ts.map +1 -1
- package/dist/schema/string.js +1 -2
- package/dist/schema/string.js.map +1 -1
- package/dist/schema/subscription.d.ts +4 -8
- package/dist/schema/subscription.d.ts.map +1 -1
- package/dist/schema/subscription.js.map +1 -1
- package/dist/schema/token.d.ts +1 -1
- package/dist/schema/token.d.ts.map +1 -1
- package/dist/schema/token.js +2 -2
- package/dist/schema/token.js.map +1 -1
- package/dist/schema/typed-object.d.ts +8 -8
- package/dist/schema/typed-object.d.ts.map +1 -1
- package/dist/schema/typed-object.js +2 -2
- package/dist/schema/typed-object.js.map +1 -1
- package/dist/schema/typed-ref.d.ts +1 -1
- package/dist/schema/typed-ref.d.ts.map +1 -1
- package/dist/schema/typed-ref.js +2 -2
- package/dist/schema/typed-ref.js.map +1 -1
- package/dist/schema/typed-union.d.ts +2 -3
- package/dist/schema/typed-union.d.ts.map +1 -1
- package/dist/schema/typed-union.js +2 -2
- package/dist/schema/typed-union.js.map +1 -1
- package/dist/schema/union.d.ts +1 -1
- package/dist/schema/union.d.ts.map +1 -1
- package/dist/schema/union.js +3 -6
- package/dist/schema/union.js.map +1 -1
- package/dist/schema/unknown-object.d.ts +1 -2
- package/dist/schema/unknown-object.d.ts.map +1 -1
- package/dist/schema/unknown-object.js +2 -2
- package/dist/schema/unknown-object.js.map +1 -1
- package/dist/schema/unknown.d.ts +1 -1
- package/dist/schema/unknown.d.ts.map +1 -1
- package/dist/schema/unknown.js +2 -2
- package/dist/schema/unknown.js.map +1 -1
- package/dist/util/assertion-util.d.ts +8 -0
- package/dist/util/assertion-util.d.ts.map +1 -0
- package/dist/util/assertion-util.js +31 -0
- package/dist/util/assertion-util.js.map +1 -0
- package/dist/util/memoize.d.ts +3 -0
- package/dist/util/memoize.d.ts.map +1 -0
- package/dist/util/memoize.js +52 -0
- package/dist/util/memoize.js.map +1 -0
- package/package.json +6 -6
- package/src/core/$type.ts +4 -0
- package/src/core/result.ts +9 -8
- package/src/{validation → core}/schema.ts +29 -4
- package/src/core/string-format.ts +88 -68
- package/src/core/types.ts +4 -0
- package/src/{validation → core}/validation-error.ts +14 -6
- package/src/{validation → core}/validation-issue.ts +64 -2
- package/src/{validation → core}/validator.ts +17 -13
- package/src/core.ts +5 -0
- package/src/external.ts +75 -55
- package/src/helpers.test.ts +487 -0
- package/src/helpers.ts +75 -0
- package/src/schema/_parameters.test.ts +1 -0
- package/src/schema/_parameters.ts +1 -1
- package/src/schema/array.test.ts +1 -0
- package/src/schema/array.ts +1 -1
- package/src/schema/blob.test.ts +3 -4
- package/src/schema/blob.ts +32 -24
- package/src/schema/boolean.test.ts +1 -0
- package/src/schema/boolean.ts +1 -1
- package/src/schema/bytes.test.ts +1 -0
- package/src/schema/bytes.ts +1 -1
- package/src/schema/cid.test.ts +1 -0
- package/src/schema/cid.ts +1 -1
- package/src/schema/custom.test.ts +8 -7
- package/src/schema/custom.ts +2 -2
- package/src/schema/dict.test.ts +1 -0
- package/src/schema/dict.ts +1 -1
- package/src/schema/discriminated-union.test.ts +1 -0
- package/src/schema/discriminated-union.ts +1 -1
- package/src/schema/enum.test.ts +1 -0
- package/src/schema/enum.ts +1 -1
- package/src/schema/integer.test.ts +1 -0
- package/src/schema/integer.ts +3 -3
- package/src/schema/intersection.test.ts +1 -0
- package/src/schema/intersection.ts +2 -2
- package/src/schema/literal.test.ts +1 -0
- package/src/schema/literal.ts +1 -1
- package/src/schema/never.test.ts +1 -0
- package/src/schema/never.ts +1 -1
- package/src/schema/null.test.ts +1 -0
- package/src/schema/null.ts +1 -1
- package/src/schema/nullable.test.ts +1 -0
- package/src/schema/nullable.ts +1 -1
- package/src/schema/object.test.ts +1 -0
- package/src/schema/object.ts +3 -3
- package/src/schema/optional.test.ts +1 -0
- package/src/schema/optional.ts +1 -1
- package/src/schema/params.test.ts +1 -0
- package/src/schema/params.ts +3 -10
- package/src/schema/payload.test.ts +1 -0
- package/src/schema/payload.ts +67 -34
- package/src/schema/permission-set.test.ts +37 -36
- package/src/schema/permission.test.ts +1 -0
- package/src/schema/procedure.test.ts +2 -62
- package/src/schema/procedure.ts +8 -20
- package/src/schema/query.test.ts +23 -69
- package/src/schema/query.ts +7 -14
- package/src/schema/record.test.ts +1 -0
- package/src/schema/record.ts +13 -6
- package/src/schema/ref.test.ts +2 -1
- package/src/schema/ref.ts +1 -1
- package/src/schema/refine.test.ts +1 -0
- package/src/schema/refine.ts +19 -2
- package/src/schema/regexp.test.ts +1 -0
- package/src/schema/regexp.ts +1 -1
- package/src/schema/string.test.ts +1 -0
- package/src/schema/string.ts +8 -2
- package/src/schema/subscription.test.ts +31 -93
- package/src/schema/subscription.ts +11 -25
- package/src/schema/token.test.ts +1 -0
- package/src/schema/token.ts +1 -1
- package/src/schema/typed-object.test.ts +1 -0
- package/src/schema/typed-object.ts +10 -5
- package/src/schema/typed-ref.test.ts +1 -0
- package/src/schema/typed-ref.ts +1 -1
- package/src/schema/typed-union.test.ts +1 -0
- package/src/schema/typed-union.ts +4 -4
- package/src/schema/union.test.ts +1 -0
- package/src/schema/union.ts +2 -5
- package/src/schema/unknown-object.test.ts +1 -0
- package/src/schema/unknown-object.ts +1 -2
- package/src/schema/unknown.test.ts +1 -0
- package/src/schema/unknown.ts +1 -1
- package/src/util/array-agg.test.ts +1 -0
- package/src/util/assertion-util.ts +40 -0
- package/src/util/memoize.ts +57 -0
- package/tsconfig.tests.json +2 -2
- package/dist/validation/property-key.d.ts.map +0 -1
- package/dist/validation/property-key.js.map +0 -1
- package/dist/validation/schema.d.ts.map +0 -1
- package/dist/validation/schema.js.map +0 -1
- package/dist/validation/validation-error.d.ts +0 -9
- package/dist/validation/validation-error.d.ts.map +0 -1
- package/dist/validation/validation-error.js.map +0 -1
- package/dist/validation/validation-issue.d.ts.map +0 -1
- package/dist/validation/validation-issue.js.map +0 -1
- package/dist/validation/validator.d.ts.map +0 -1
- package/dist/validation/validator.js.map +0 -1
- package/dist/validation.d.ts +0 -6
- package/dist/validation.d.ts.map +0 -1
- package/dist/validation.js +0 -9
- package/dist/validation.js.map +0 -1
- package/src/validation.ts +0 -5
- /package/dist/{validation → core}/property-key.d.ts +0 -0
- /package/dist/{validation → core}/property-key.js +0 -0
- /package/src/{validation → core}/property-key.ts +0 -0
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,63 @@
|
|
|
1
1
|
# @atproto/lex-schema
|
|
2
2
|
|
|
3
|
+
## 0.0.6
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- [#4443](https://github.com/bluesky-social/atproto/pull/4443) [`9af7a2d`](https://github.com/bluesky-social/atproto/commit/9af7a2d12240e91248610ce4fe7d93387733c59c) Thanks [@matthieusieben](https://github.com/matthieusieben)! - Remove `LexMap` exported type
|
|
8
|
+
|
|
9
|
+
- [#4443](https://github.com/bluesky-social/atproto/pull/4443) [`9af7a2d`](https://github.com/bluesky-social/atproto/commit/9af7a2d12240e91248610ce4fe7d93387733c59c) Thanks [@matthieusieben](https://github.com/matthieusieben)! - Add `jsonPayload` schema builder utilities
|
|
10
|
+
|
|
11
|
+
- [#4443](https://github.com/bluesky-social/atproto/pull/4443) [`9af7a2d`](https://github.com/bluesky-social/atproto/commit/9af7a2d12240e91248610ce4fe7d93387733c59c) Thanks [@matthieusieben](https://github.com/matthieusieben)! - Expose `lexErrorData` validation schema
|
|
12
|
+
|
|
13
|
+
- [#4443](https://github.com/bluesky-social/atproto/pull/4443) [`9af7a2d`](https://github.com/bluesky-social/atproto/commit/9af7a2d12240e91248610ce4fe7d93387733c59c) Thanks [@matthieusieben](https://github.com/matthieusieben)! - Expose `Main<T>` and `getMain()` helpers to work with namespaced schemas
|
|
14
|
+
|
|
15
|
+
- [#4443](https://github.com/bluesky-social/atproto/pull/4443) [`9af7a2d`](https://github.com/bluesky-social/atproto/commit/9af7a2d12240e91248610ce4fe7d93387733c59c) Thanks [@matthieusieben](https://github.com/matthieusieben)! - Simplify definition of `TypedObject`
|
|
16
|
+
|
|
17
|
+
- [#4443](https://github.com/bluesky-social/atproto/pull/4443) [`9af7a2d`](https://github.com/bluesky-social/atproto/commit/9af7a2d12240e91248610ce4fe7d93387733c59c) Thanks [@matthieusieben](https://github.com/matthieusieben)! - `ValidationError` now extend `LexError` (from `@atproto/data`)
|
|
18
|
+
|
|
19
|
+
- [#4443](https://github.com/bluesky-social/atproto/pull/4443) [`9af7a2d`](https://github.com/bluesky-social/atproto/commit/9af7a2d12240e91248610ce4fe7d93387733c59c) Thanks [@matthieusieben](https://github.com/matthieusieben)! - Memoize most popular schemas
|
|
20
|
+
|
|
21
|
+
- Updated dependencies [[`9af7a2d`](https://github.com/bluesky-social/atproto/commit/9af7a2d12240e91248610ce4fe7d93387733c59c), [`9af7a2d`](https://github.com/bluesky-social/atproto/commit/9af7a2d12240e91248610ce4fe7d93387733c59c)]:
|
|
22
|
+
- @atproto/lex-data@0.0.5
|
|
23
|
+
|
|
24
|
+
## 0.0.5
|
|
25
|
+
|
|
26
|
+
### Patch Changes
|
|
27
|
+
|
|
28
|
+
- [#4457](https://github.com/bluesky-social/atproto/pull/4457) [`e6b6107`](https://github.com/bluesky-social/atproto/commit/e6b6107e028fee964972274b71f5da1329a7bece) Thanks [@matthieusieben](https://github.com/matthieusieben)! - Add `cast()` method to Schema classes. This acts as a type cast that does not alter the value or throws if the value does not match the schema.
|
|
29
|
+
|
|
30
|
+
- [#4457](https://github.com/bluesky-social/atproto/pull/4457) [`e6b6107`](https://github.com/bluesky-social/atproto/commit/e6b6107e028fee964972274b71f5da1329a7bece) Thanks [@matthieusieben](https://github.com/matthieusieben)! - Forbid use of unsafe integers
|
|
31
|
+
|
|
32
|
+
- [#4457](https://github.com/bluesky-social/atproto/pull/4457) [`e6b6107`](https://github.com/bluesky-social/atproto/commit/e6b6107e028fee964972274b71f5da1329a7bece) Thanks [@matthieusieben](https://github.com/matthieusieben)! - Replace `InferParamsSchema` with `InferMethodParams`
|
|
33
|
+
|
|
34
|
+
- [#4457](https://github.com/bluesky-social/atproto/pull/4457) [`e6b6107`](https://github.com/bluesky-social/atproto/commit/e6b6107e028fee964972274b71f5da1329a7bece) Thanks [@matthieusieben](https://github.com/matthieusieben)! - Add `matchesEncoding` method on the `PayloadSchema` class.
|
|
35
|
+
|
|
36
|
+
- [#4457](https://github.com/bluesky-social/atproto/pull/4457) [`e6b6107`](https://github.com/bluesky-social/atproto/commit/e6b6107e028fee964972274b71f5da1329a7bece) Thanks [@matthieusieben](https://github.com/matthieusieben)! - Replace `InferProcedureParameters` with `InferMethodParams`
|
|
37
|
+
|
|
38
|
+
- [#4457](https://github.com/bluesky-social/atproto/pull/4457) [`e6b6107`](https://github.com/bluesky-social/atproto/commit/e6b6107e028fee964972274b71f5da1329a7bece) Thanks [@matthieusieben](https://github.com/matthieusieben)! - Export format checking utilities for string (`isDidString`, `isCidString`, etc.)
|
|
39
|
+
|
|
40
|
+
- [#4457](https://github.com/bluesky-social/atproto/pull/4457) [`e6b6107`](https://github.com/bluesky-social/atproto/commit/e6b6107e028fee964972274b71f5da1329a7bece) Thanks [@matthieusieben](https://github.com/matthieusieben)! - Expose `$Typed` and `Un$Typed` utilities
|
|
41
|
+
|
|
42
|
+
- [#4457](https://github.com/bluesky-social/atproto/pull/4457) [`e6b6107`](https://github.com/bluesky-social/atproto/commit/e6b6107e028fee964972274b71f5da1329a7bece) Thanks [@matthieusieben](https://github.com/matthieusieben)! - Rename `ResultFailure`'s error field to `reason`
|
|
43
|
+
|
|
44
|
+
- [#4457](https://github.com/bluesky-social/atproto/pull/4457) [`e6b6107`](https://github.com/bluesky-social/atproto/commit/e6b6107e028fee964972274b71f5da1329a7bece) Thanks [@matthieusieben](https://github.com/matthieusieben)! - Type the `encoding` field of `Payload` more accurately. Methods with an encoding of `*/*` are now correctly represented as `${string}/${string}` instead of the `*/*` literal type.
|
|
45
|
+
|
|
46
|
+
- [#4457](https://github.com/bluesky-social/atproto/pull/4457) [`e6b6107`](https://github.com/bluesky-social/atproto/commit/e6b6107e028fee964972274b71f5da1329a7bece) Thanks [@matthieusieben](https://github.com/matthieusieben)! - Add `matchesMime` utility method on `BlobSchema` class
|
|
47
|
+
|
|
48
|
+
- [#4457](https://github.com/bluesky-social/atproto/pull/4457) [`e6b6107`](https://github.com/bluesky-social/atproto/commit/e6b6107e028fee964972274b71f5da1329a7bece) Thanks [@matthieusieben](https://github.com/matthieusieben)! - Enforce size and accept options when validating blobs
|
|
49
|
+
|
|
50
|
+
- [#4457](https://github.com/bluesky-social/atproto/pull/4457) [`e6b6107`](https://github.com/bluesky-social/atproto/commit/e6b6107e028fee964972274b71f5da1329a7bece) Thanks [@matthieusieben](https://github.com/matthieusieben)! - Replace `InferProcedureInputBody` with `InferMethodInputBody`
|
|
51
|
+
|
|
52
|
+
- [#4457](https://github.com/bluesky-social/atproto/pull/4457) [`e6b6107`](https://github.com/bluesky-social/atproto/commit/e6b6107e028fee964972274b71f5da1329a7bece) Thanks [@matthieusieben](https://github.com/matthieusieben)! - Add `check()` method to all Schema classes. That method is an alias for the `assert()` method that allows to avoid `ts(2775)` errors.
|
|
53
|
+
|
|
54
|
+
- [#4457](https://github.com/bluesky-social/atproto/pull/4457) [`e6b6107`](https://github.com/bluesky-social/atproto/commit/e6b6107e028fee964972274b71f5da1329a7bece) Thanks [@matthieusieben](https://github.com/matthieusieben)! - Rename format assertion and checking utilities to all contain the `String` prefix (like in `asAtUriString`, `assertAtUriString`, etc.)
|
|
55
|
+
|
|
56
|
+
- [#4457](https://github.com/bluesky-social/atproto/pull/4457) [`e6b6107`](https://github.com/bluesky-social/atproto/commit/e6b6107e028fee964972274b71f5da1329a7bece) Thanks [@matthieusieben](https://github.com/matthieusieben)! - Replace `InferProcedureOutputBody` with `InferMethodOutputBody`
|
|
57
|
+
|
|
58
|
+
- Updated dependencies [[`e6b6107`](https://github.com/bluesky-social/atproto/commit/e6b6107e028fee964972274b71f5da1329a7bece), [`e6b6107`](https://github.com/bluesky-social/atproto/commit/e6b6107e028fee964972274b71f5da1329a7bece), [`e6b6107`](https://github.com/bluesky-social/atproto/commit/e6b6107e028fee964972274b71f5da1329a7bece), [`e6b6107`](https://github.com/bluesky-social/atproto/commit/e6b6107e028fee964972274b71f5da1329a7bece), [`e6b6107`](https://github.com/bluesky-social/atproto/commit/e6b6107e028fee964972274b71f5da1329a7bece)]:
|
|
59
|
+
- @atproto/lex-data@0.0.4
|
|
60
|
+
|
|
3
61
|
## 0.0.4
|
|
4
62
|
|
|
5
63
|
### Patch Changes
|
package/dist/core/$type.d.ts
CHANGED
|
@@ -1,7 +1,14 @@
|
|
|
1
1
|
import { NsidString } from './string-format.js';
|
|
2
|
+
import { OmitKey } from './types.js';
|
|
2
3
|
export type $Type<N extends NsidString = NsidString, H extends string = string> = N extends NsidString ? string extends H ? N | `${N}#${string}` : H extends 'main' ? N : `${N}#${H}` : never;
|
|
3
4
|
export type $TypeOf<O extends {
|
|
4
5
|
$type?: string;
|
|
5
6
|
}> = NonNullable<O['$type']>;
|
|
6
7
|
export declare function $type<N extends NsidString, H extends string>(nsid: N, hash: H): $Type<N, H>;
|
|
8
|
+
export type $Typed<V, T extends string = string> = V & {
|
|
9
|
+
$type: T;
|
|
10
|
+
};
|
|
11
|
+
export type Un$Typed<V extends {
|
|
12
|
+
$type?: string;
|
|
13
|
+
}> = OmitKey<V, '$type'>;
|
|
7
14
|
//# sourceMappingURL=$type.d.ts.map
|
package/dist/core/$type.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"$type.d.ts","sourceRoot":"","sources":["../../src/core/$type.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAA;
|
|
1
|
+
{"version":3,"file":"$type.d.ts","sourceRoot":"","sources":["../../src/core/$type.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAA;AAC/C,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAA;AAEpC,MAAM,MAAM,KAAK,CACf,CAAC,SAAS,UAAU,GAAG,UAAU,EACjC,CAAC,SAAS,MAAM,GAAG,MAAM,IACvB,CAAC,SAAS,UAAU,GACpB,MAAM,SAAS,CAAC,GACd,CAAC,GAAG,GAAG,CAAC,IAAI,MAAM,EAAE,GACpB,CAAC,SAAS,MAAM,GACd,CAAC,GACD,GAAG,CAAC,IAAI,CAAC,EAAE,GACf,KAAK,CAAA;AAET,MAAM,MAAM,OAAO,CAAC,CAAC,SAAS;IAAE,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,IAAI,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAA;AAG3E,wBAAgB,KAAK,CAAC,CAAC,SAAS,UAAU,EAAE,CAAC,SAAS,MAAM,EAC1D,IAAI,EAAE,CAAC,EACP,IAAI,EAAE,CAAC,GACN,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAEb;AAED,MAAM,MAAM,MAAM,CAAC,CAAC,EAAE,CAAC,SAAS,MAAM,GAAG,MAAM,IAAI,CAAC,GAAG;IAAE,KAAK,EAAE,CAAC,CAAA;CAAE,CAAA;AACnE,MAAM,MAAM,QAAQ,CAAC,CAAC,SAAS;IAAE,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,IAAI,OAAO,CAAC,CAAC,EAAE,OAAO,CAAC,CAAA"}
|
package/dist/core/$type.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"$type.js","sourceRoot":"","sources":["../../src/core/$type.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"$type.js","sourceRoot":"","sources":["../../src/core/$type.ts"],"names":[],"mappings":";;AAiBA,sBAKC;AAND,wBAAwB;AACxB,SAAgB,KAAK,CACnB,IAAO,EACP,IAAO;IAEP,OAAO,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,IAAI,IAAI,EAAE,CAAgB,CAAA;AACpE,CAAC","sourcesContent":["import { NsidString } from './string-format.js'\nimport { OmitKey } from './types.js'\n\nexport type $Type<\n N extends NsidString = NsidString,\n H extends string = string,\n> = N extends NsidString\n ? string extends H\n ? N | `${N}#${string}`\n : H extends 'main'\n ? N\n : `${N}#${H}`\n : never\n\nexport type $TypeOf<O extends { $type?: string }> = NonNullable<O['$type']>\n\n/*@__NO_SIDE_EFFECTS__*/\nexport function $type<N extends NsidString, H extends string>(\n nsid: N,\n hash: H,\n): $Type<N, H> {\n return (hash === 'main' ? nsid : `${nsid}#${hash}`) as $Type<N, H>\n}\n\nexport type $Typed<V, T extends string = string> = V & { $type: T }\nexport type Un$Typed<V extends { $type?: string }> = OmitKey<V, '$type'>\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"property-key.d.ts","sourceRoot":"","sources":["../../src/core/property-key.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,WAAW,GAAG,MAAM,GAAG,MAAM,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"property-key.js","sourceRoot":"","sources":["../../src/core/property-key.ts"],"names":[],"mappings":"","sourcesContent":["export type PropertyKey = string | number\n"]}
|
package/dist/core/result.d.ts
CHANGED
|
@@ -4,12 +4,12 @@ export type ResultSuccess<V = any> = {
|
|
|
4
4
|
};
|
|
5
5
|
export type ResultFailure<E = Error> = {
|
|
6
6
|
success: false;
|
|
7
|
-
|
|
7
|
+
reason: E;
|
|
8
8
|
};
|
|
9
9
|
export type Result<V = any, E = Error> = ResultSuccess<V> | ResultFailure<E>;
|
|
10
10
|
export declare function success<V>(value: V): ResultSuccess<V>;
|
|
11
|
-
export declare function failure<E>(
|
|
12
|
-
export declare function
|
|
11
|
+
export declare function failure<E>(reason: E): ResultFailure<E>;
|
|
12
|
+
export declare function failureReason<T>(result: ResultFailure<T>): T;
|
|
13
13
|
export declare function successValue<T>(result: ResultSuccess<T>): T;
|
|
14
14
|
/**
|
|
15
15
|
* Catches any error and wraps it in a {@link ResultFailure<Error>}.
|
|
@@ -19,9 +19,9 @@ export declare function successValue<T>(result: ResultSuccess<T>): T;
|
|
|
19
19
|
* @example
|
|
20
20
|
*
|
|
21
21
|
* ```ts
|
|
22
|
-
* declare function someFunction(): Promise<
|
|
22
|
+
* declare function someFunction(): Promise<string>
|
|
23
23
|
*
|
|
24
|
-
* const result = await someFunction().
|
|
24
|
+
* const result = await someFunction().then(success, catchall)
|
|
25
25
|
* if (result.success) {
|
|
26
26
|
* console.log(result.value) // string
|
|
27
27
|
* } else {
|
|
@@ -41,9 +41,10 @@ export declare function catchall(err: unknown): ResultFailure<Error>;
|
|
|
41
41
|
* class FooError extends Error {}
|
|
42
42
|
* class BarError extends Error {}
|
|
43
43
|
*
|
|
44
|
-
* declare function someFunction(): Promise<
|
|
44
|
+
* declare function someFunction(): Promise<string>
|
|
45
45
|
*
|
|
46
46
|
* const result = await someFunction()
|
|
47
|
+
* .then(success)
|
|
47
48
|
* .catch(createCatcher(FooError))
|
|
48
49
|
* .catch(createCatcher(BarError))
|
|
49
50
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"result.d.ts","sourceRoot":"","sources":["../../src/core/result.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,aAAa,CAAC,CAAC,GAAG,GAAG,IAAI;IAAE,OAAO,EAAE,IAAI,CAAC;IAAC,KAAK,EAAE,CAAC,CAAA;CAAE,CAAA;AAChE,MAAM,MAAM,aAAa,CAAC,CAAC,GAAG,KAAK,IAAI;IAAE,OAAO,EAAE,KAAK,CAAC;IAAC,
|
|
1
|
+
{"version":3,"file":"result.d.ts","sourceRoot":"","sources":["../../src/core/result.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,aAAa,CAAC,CAAC,GAAG,GAAG,IAAI;IAAE,OAAO,EAAE,IAAI,CAAC;IAAC,KAAK,EAAE,CAAC,CAAA;CAAE,CAAA;AAChE,MAAM,MAAM,aAAa,CAAC,CAAC,GAAG,KAAK,IAAI;IAAE,OAAO,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,CAAC,CAAA;CAAE,CAAA;AAEpE,MAAM,MAAM,MAAM,CAAC,CAAC,GAAG,GAAG,EAAE,CAAC,GAAG,KAAK,IAAI,aAAa,CAAC,CAAC,CAAC,GAAG,aAAa,CAAC,CAAC,CAAC,CAAA;AAG5E,wBAAgB,OAAO,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,aAAa,CAAC,CAAC,CAAC,CAErD;AAGD,wBAAgB,OAAO,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,GAAG,aAAa,CAAC,CAAC,CAAC,CAEtD;AAGD,wBAAgB,aAAa,CAAC,CAAC,EAAE,MAAM,EAAE,aAAa,CAAC,CAAC,CAAC,GAAG,CAAC,CAE5D;AAGD,wBAAgB,YAAY,CAAC,CAAC,EAAE,MAAM,EAAE,aAAa,CAAC,CAAC,CAAC,GAAG,CAAC,CAE3D;AAED;;;;;;;;;;;;;;;;;;GAkBG;AAEH,wBAAgB,QAAQ,CAAC,GAAG,EAAE,OAAO,GAAG,aAAa,CAAC,KAAK,CAAC,CAG3D;AAED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH,wBAAgB,aAAa,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC,IACtD,KAAK,OAAO,KAAG,aAAa,CAAC,CAAC,CAAC,CAIxC"}
|
package/dist/core/result.js
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.success = success;
|
|
4
4
|
exports.failure = failure;
|
|
5
|
-
exports.
|
|
5
|
+
exports.failureReason = failureReason;
|
|
6
6
|
exports.successValue = successValue;
|
|
7
7
|
exports.catchall = catchall;
|
|
8
8
|
exports.createCatcher = createCatcher;
|
|
@@ -11,12 +11,12 @@ function success(value) {
|
|
|
11
11
|
return { success: true, value };
|
|
12
12
|
}
|
|
13
13
|
/*@__NO_SIDE_EFFECTS__*/
|
|
14
|
-
function failure(
|
|
15
|
-
return { success: false,
|
|
14
|
+
function failure(reason) {
|
|
15
|
+
return { success: false, reason };
|
|
16
16
|
}
|
|
17
17
|
/*@__NO_SIDE_EFFECTS__*/
|
|
18
|
-
function
|
|
19
|
-
return result.
|
|
18
|
+
function failureReason(result) {
|
|
19
|
+
return result.reason;
|
|
20
20
|
}
|
|
21
21
|
/*@__NO_SIDE_EFFECTS__*/
|
|
22
22
|
function successValue(result) {
|
|
@@ -30,9 +30,9 @@ function successValue(result) {
|
|
|
30
30
|
* @example
|
|
31
31
|
*
|
|
32
32
|
* ```ts
|
|
33
|
-
* declare function someFunction(): Promise<
|
|
33
|
+
* declare function someFunction(): Promise<string>
|
|
34
34
|
*
|
|
35
|
-
* const result = await someFunction().
|
|
35
|
+
* const result = await someFunction().then(success, catchall)
|
|
36
36
|
* if (result.success) {
|
|
37
37
|
* console.log(result.value) // string
|
|
38
38
|
* } else {
|
|
@@ -57,9 +57,10 @@ function catchall(err) {
|
|
|
57
57
|
* class FooError extends Error {}
|
|
58
58
|
* class BarError extends Error {}
|
|
59
59
|
*
|
|
60
|
-
* declare function someFunction(): Promise<
|
|
60
|
+
* declare function someFunction(): Promise<string>
|
|
61
61
|
*
|
|
62
62
|
* const result = await someFunction()
|
|
63
|
+
* .then(success)
|
|
63
64
|
* .catch(createCatcher(FooError))
|
|
64
65
|
* .catch(createCatcher(BarError))
|
|
65
66
|
*
|
package/dist/core/result.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"result.js","sourceRoot":"","sources":["../../src/core/result.ts"],"names":[],"mappings":";;AAMA,0BAEC;AAGD,0BAEC;AAGD,
|
|
1
|
+
{"version":3,"file":"result.js","sourceRoot":"","sources":["../../src/core/result.ts"],"names":[],"mappings":";;AAMA,0BAEC;AAGD,0BAEC;AAGD,sCAEC;AAGD,oCAEC;AAsBD,4BAGC;AA0BD,sCAKC;AA1ED,wBAAwB;AACxB,SAAgB,OAAO,CAAI,KAAQ;IACjC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,CAAA;AACjC,CAAC;AAED,wBAAwB;AACxB,SAAgB,OAAO,CAAI,MAAS;IAClC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,CAAA;AACnC,CAAC;AAED,wBAAwB;AACxB,SAAgB,aAAa,CAAI,MAAwB;IACvD,OAAO,MAAM,CAAC,MAAM,CAAA;AACtB,CAAC;AAED,wBAAwB;AACxB,SAAgB,YAAY,CAAI,MAAwB;IACtD,OAAO,MAAM,CAAC,KAAK,CAAA;AACrB,CAAC;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAwB;AACxB,SAAgB,QAAQ,CAAC,GAAY;IACnC,IAAI,GAAG,YAAY,KAAK;QAAE,OAAO,OAAO,CAAC,GAAG,CAAC,CAAA;IAC7C,OAAO,OAAO,CAAC,IAAI,KAAK,CAAC,eAAe,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC,CAAA;AAC5D,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAwB;AACxB,SAAgB,aAAa,CAAI,IAA+B;IAC9D,OAAO,CAAC,GAAY,EAAoB,EAAE;QACxC,IAAI,GAAG,YAAY,IAAI;YAAE,OAAO,OAAO,CAAC,GAAG,CAAC,CAAA;QAC5C,MAAM,GAAG,CAAA;IACX,CAAC,CAAA;AACH,CAAC","sourcesContent":["export type ResultSuccess<V = any> = { success: true; value: V }\nexport type ResultFailure<E = Error> = { success: false; reason: E }\n\nexport type Result<V = any, E = Error> = ResultSuccess<V> | ResultFailure<E>\n\n/*@__NO_SIDE_EFFECTS__*/\nexport function success<V>(value: V): ResultSuccess<V> {\n return { success: true, value }\n}\n\n/*@__NO_SIDE_EFFECTS__*/\nexport function failure<E>(reason: E): ResultFailure<E> {\n return { success: false, reason }\n}\n\n/*@__NO_SIDE_EFFECTS__*/\nexport function failureReason<T>(result: ResultFailure<T>): T {\n return result.reason\n}\n\n/*@__NO_SIDE_EFFECTS__*/\nexport function successValue<T>(result: ResultSuccess<T>): T {\n return result.value\n}\n\n/**\n * Catches any error and wraps it in a {@link ResultFailure<Error>}.\n *\n * @param err - The error to catch.\n * @returns A {@link ResultFailure<Error>} containing the caught error.\n * @example\n *\n * ```ts\n * declare function someFunction(): Promise<string>\n *\n * const result = await someFunction().then(success, catchall)\n * if (result.success) {\n * console.log(result.value) // string\n * } else {\n * console.error(result.error instanceof Error) // true\n * console.error(result.error.message) // string\n * }\n * ```\n */\n/*@__NO_SIDE_EFFECTS__*/\nexport function catchall(err: unknown): ResultFailure<Error> {\n if (err instanceof Error) return failure(err)\n return failure(new Error('Unknown error', { cause: err }))\n}\n\n/**\n * Creates a catcher function for the given constructor that wraps caught errors\n * in a {@link ResultFailure}.\n *\n * @example\n *\n * ```ts\n * class FooError extends Error {}\n * class BarError extends Error {}\n *\n * declare function someFunction(): Promise<string>\n *\n * const result = await someFunction()\n * .then(success)\n * .catch(createCatcher(FooError))\n * .catch(createCatcher(BarError))\n *\n * if (result.success) {\n * console.log(result.value) // string\n * } else {\n * console.error(result.error) // FooError | BarError\n * }\n */\n/*@__NO_SIDE_EFFECTS__*/\nexport function createCatcher<T>(Ctor: new (...args: any[]) => T) {\n return (err: unknown): ResultFailure<T> => {\n if (err instanceof Ctor) return failure(err)\n throw err\n }\n}\n"]}
|
|
@@ -1,10 +1,29 @@
|
|
|
1
1
|
import { ValidationOptions, ValidationResult, Validator, ValidatorContext } from './validator.js';
|
|
2
|
-
export declare abstract class Schema<Output> implements Validator<Output> {
|
|
3
|
-
readonly ['
|
|
2
|
+
export declare abstract class Schema<Output = any> implements Validator<Output> {
|
|
3
|
+
readonly ['__lex']: {
|
|
4
4
|
output: Output;
|
|
5
5
|
};
|
|
6
6
|
abstract validateInContext(input: unknown, ctx: ValidatorContext): ValidationResult<Output>;
|
|
7
|
+
/**
|
|
8
|
+
* @note use {@link check}() instead of {@link assert}() if you encounter a
|
|
9
|
+
* `ts(2775)` error and you are not able to fully type the validator. This
|
|
10
|
+
* will typically arise in generic contexts, where the narrowed type is not
|
|
11
|
+
* needed.
|
|
12
|
+
*/
|
|
7
13
|
assert(input: unknown): asserts input is Output;
|
|
14
|
+
/**
|
|
15
|
+
* Alias for {@link assert}(). Most useful in generic contexts where the
|
|
16
|
+
* validator is not exactly typed, allowing to avoid "_Assertions require
|
|
17
|
+
* every name in the call target to be declared with an explicit type
|
|
18
|
+
* annotation. ts(2775)_" errors.
|
|
19
|
+
*/
|
|
20
|
+
check(input: unknown): void;
|
|
21
|
+
/**
|
|
22
|
+
* Casts the input (by validating it) to the output type if it matches the
|
|
23
|
+
* schema, otherwise throws. This is the same as calling {@link parse}() with
|
|
24
|
+
* `allowTransform: false`.
|
|
25
|
+
*/
|
|
26
|
+
cast<I>(input: I): I & Output;
|
|
8
27
|
matches(input: unknown): input is Output;
|
|
9
28
|
ifMatches<I>(input: I): (I & Output) | undefined;
|
|
10
29
|
parse<I>(input: I, options: ValidationOptions & {
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/core/schema.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,iBAAiB,EACjB,gBAAgB,EAChB,SAAS,EACT,gBAAgB,EACjB,MAAM,gBAAgB,CAAA;AAEvB,8BAAsB,MAAM,CAAC,MAAM,GAAG,GAAG,CAAE,YAAW,SAAS,CAAC,MAAM,CAAC;IACrE,SAAiB,CAAC,OAAO,CAAC,EAAE;QAAE,MAAM,EAAE,MAAM,CAAA;KAAE,CAAA;IAE9C,QAAQ,CAAC,iBAAiB,CACxB,KAAK,EAAE,OAAO,EACd,GAAG,EAAE,gBAAgB,GACpB,gBAAgB,CAAC,MAAM,CAAC;IAE3B;;;;;OAKG;IACH,MAAM,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,KAAK,IAAI,MAAM;IAK/C;;;;;OAKG;IACH,KAAK,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI;IAI3B;;;;OAIG;IACH,IAAI,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,CAAC,GAAG,MAAM;IAI7B,OAAO,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,MAAM;IAKxC,SAAS,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,MAAM,CAAC,GAAG,SAAS;IAIhD,KAAK,CAAC,CAAC,EACL,KAAK,EAAE,CAAC,EACR,OAAO,EAAE,iBAAiB,GAAG;QAAE,cAAc,EAAE,KAAK,CAAA;KAAE,GACrD,CAAC,GAAG,MAAM;IACb,KAAK,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,iBAAiB,GAAG,MAAM;IAO1D,SAAS,CAAC,CAAC,EACT,KAAK,EAAE,CAAC,EACR,OAAO,EAAE,iBAAiB,GAAG;QAAE,cAAc,EAAE,KAAK,CAAA;KAAE,GACrD,gBAAgB,CAAC,CAAC,GAAG,MAAM,CAAC;IAC/B,SAAS,CACP,KAAK,EAAE,OAAO,EACd,OAAO,CAAC,EAAE,iBAAiB,GAC1B,gBAAgB,CAAC,MAAM,CAAC;IAsB3B,OAAO,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,KAAK,IAAI,MAAM;IAIhD,QAAQ,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,MAAM;IAIzC,UAAU,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,MAAM,CAAC,GAAG,SAAS;IAIjD,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,iBAAiB,GAAG,MAAM;IAI3D,UAAU,CACR,KAAK,EAAE,OAAO,EACd,OAAO,CAAC,EAAE,iBAAiB,GAC1B,gBAAgB,CAAC,MAAM,CAAC;CAG5B"}
|
|
@@ -3,10 +3,33 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.Schema = void 0;
|
|
4
4
|
const validator_js_1 = require("./validator.js");
|
|
5
5
|
class Schema {
|
|
6
|
+
/**
|
|
7
|
+
* @note use {@link check}() instead of {@link assert}() if you encounter a
|
|
8
|
+
* `ts(2775)` error and you are not able to fully type the validator. This
|
|
9
|
+
* will typically arise in generic contexts, where the narrowed type is not
|
|
10
|
+
* needed.
|
|
11
|
+
*/
|
|
6
12
|
assert(input) {
|
|
7
13
|
const result = this.safeParse(input, { allowTransform: false });
|
|
8
14
|
if (!result.success)
|
|
9
|
-
throw result.
|
|
15
|
+
throw result.reason;
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Alias for {@link assert}(). Most useful in generic contexts where the
|
|
19
|
+
* validator is not exactly typed, allowing to avoid "_Assertions require
|
|
20
|
+
* every name in the call target to be declared with an explicit type
|
|
21
|
+
* annotation. ts(2775)_" errors.
|
|
22
|
+
*/
|
|
23
|
+
check(input) {
|
|
24
|
+
this.assert(input);
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Casts the input (by validating it) to the output type if it matches the
|
|
28
|
+
* schema, otherwise throws. This is the same as calling {@link parse}() with
|
|
29
|
+
* `allowTransform: false`.
|
|
30
|
+
*/
|
|
31
|
+
cast(input) {
|
|
32
|
+
return this.parse(input, { allowTransform: false });
|
|
10
33
|
}
|
|
11
34
|
matches(input) {
|
|
12
35
|
const result = this.safeParse(input, { allowTransform: false });
|
|
@@ -18,7 +41,7 @@ class Schema {
|
|
|
18
41
|
parse(input, options) {
|
|
19
42
|
const result = this.safeParse(input, options);
|
|
20
43
|
if (!result.success)
|
|
21
|
-
throw result.
|
|
44
|
+
throw result.reason;
|
|
22
45
|
return result.value;
|
|
23
46
|
}
|
|
24
47
|
safeParse(input, options) {
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/core/schema.ts"],"names":[],"mappings":";;;AAAA,iDAKuB;AAEvB,MAAsB,MAAM;IAQ1B;;;;;OAKG;IACH,MAAM,CAAC,KAAc;QACnB,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,EAAE,cAAc,EAAE,KAAK,EAAE,CAAC,CAAA;QAC/D,IAAI,CAAC,MAAM,CAAC,OAAO;YAAE,MAAM,MAAM,CAAC,MAAM,CAAA;IAC1C,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,KAAc;QAClB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;IACpB,CAAC;IAED;;;;OAIG;IACH,IAAI,CAAI,KAAQ;QACd,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,EAAE,cAAc,EAAE,KAAK,EAAE,CAAC,CAAA;IACrD,CAAC;IAED,OAAO,CAAC,KAAc;QACpB,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,EAAE,cAAc,EAAE,KAAK,EAAE,CAAC,CAAA;QAC/D,OAAO,MAAM,CAAC,OAAO,CAAA;IACvB,CAAC;IAED,SAAS,CAAI,KAAQ;QACnB,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAA;IAChD,CAAC;IAOD,KAAK,CAAC,KAAc,EAAE,OAA2B;QAC/C,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,OAAO,CAAC,CAAA;QAC7C,IAAI,CAAC,MAAM,CAAC,OAAO;YAAE,MAAM,MAAM,CAAC,MAAM,CAAA;QACxC,OAAO,MAAM,CAAC,KAAK,CAAA;IACrB,CAAC;IAUD,SAAS,CACP,KAAc,EACd,OAA2B;QAE3B,OAAO,+BAAgB,CAAC,QAAQ,CAAC,KAAK,EAAE,IAAI,EAAE,OAAO,CAAC,CAAA;IACxD,CAAC;IAED,yEAAyE;IACzE,4EAA4E;IAC5E,6EAA6E;IAC7E,iEAAiE;IACjE,uEAAuE;IACvE,wEAAwE;IACxE,8EAA8E;IAC9E,2EAA2E;IAC3E,6EAA6E;IAC7E,+DAA+D;IAC/D,EAAE;IACF,wFAAwF;IACxF,qGAAqG;IAErG,OAAO,CAAC,KAAc;QACpB,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;IAC3B,CAAC;IAED,QAAQ,CAAC,KAAc;QACrB,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;IAC5B,CAAC;IAED,UAAU,CAAI,KAAQ;QACpB,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAA;IAC9B,CAAC;IAED,MAAM,CAAC,KAAc,EAAE,OAA2B;QAChD,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,OAAO,CAAC,CAAA;IACnC,CAAC;IAED,UAAU,CACR,KAAc,EACd,OAA2B;QAE3B,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,OAAO,CAAC,CAAA;IACvC,CAAC;CACF;AA7GD,wBA6GC","sourcesContent":["import {\n ValidationOptions,\n ValidationResult,\n Validator,\n ValidatorContext,\n} from './validator.js'\n\nexport abstract class Schema<Output = any> implements Validator<Output> {\n declare readonly ['__lex']: { output: Output }\n\n abstract validateInContext(\n input: unknown,\n ctx: ValidatorContext,\n ): ValidationResult<Output>\n\n /**\n * @note use {@link check}() instead of {@link assert}() if you encounter a\n * `ts(2775)` error and you are not able to fully type the validator. This\n * will typically arise in generic contexts, where the narrowed type is not\n * needed.\n */\n assert(input: unknown): asserts input is Output {\n const result = this.safeParse(input, { allowTransform: false })\n if (!result.success) throw result.reason\n }\n\n /**\n * Alias for {@link assert}(). Most useful in generic contexts where the\n * validator is not exactly typed, allowing to avoid \"_Assertions require\n * every name in the call target to be declared with an explicit type\n * annotation. ts(2775)_\" errors.\n */\n check(input: unknown): void {\n this.assert(input)\n }\n\n /**\n * Casts the input (by validating it) to the output type if it matches the\n * schema, otherwise throws. This is the same as calling {@link parse}() with\n * `allowTransform: false`.\n */\n cast<I>(input: I): I & Output {\n return this.parse(input, { allowTransform: false })\n }\n\n matches(input: unknown): input is Output {\n const result = this.safeParse(input, { allowTransform: false })\n return result.success\n }\n\n ifMatches<I>(input: I): (I & Output) | undefined {\n return this.matches(input) ? input : undefined\n }\n\n parse<I>(\n input: I,\n options: ValidationOptions & { allowTransform: false },\n ): I & Output\n parse(input: unknown, options?: ValidationOptions): Output\n parse(input: unknown, options?: ValidationOptions): Output {\n const result = this.safeParse(input, options)\n if (!result.success) throw result.reason\n return result.value\n }\n\n safeParse<I>(\n input: I,\n options: ValidationOptions & { allowTransform: false },\n ): ValidationResult<I & Output>\n safeParse(\n input: unknown,\n options?: ValidationOptions,\n ): ValidationResult<Output>\n safeParse(\n input: unknown,\n options?: ValidationOptions,\n ): ValidationResult<Output> {\n return ValidatorContext.validate(input, this, options)\n }\n\n // @NOTE The built lexicons namespaces will export utility functions that\n // allow accessing the schema's methods without the need to specify \".main.\"\n // as part of the namespace. This way, a utility for a particular record type\n // can be called like \"app.bsky.feed.post.<utility>()\" instead of\n // \"app.bsky.feed.post.main.<utility>()\". Because those utilities could\n // conflict with other schemas (e.g. if there is a lexicon definition at\n // \"#<utility>\"), those exported utilities will be prefixed with \"$\". In order\n // to be able to consistently call the utilities, when using the \"main\" and\n // non \"main\" definitions, we also expose the same methods with a \"$\" prefix.\n // Thanks to this, both of the following call will be possible:\n //\n // - \"app.bsky.feed.post.$parse(...)\" // calls a utility function created by \"lex build\"\n // - \"app.bsky.feed.defs.postView.$parse(...)\" // uses the alias defined below on the schema instance\n\n $assert(input: unknown): asserts input is Output {\n return this.assert(input)\n }\n\n $matches(input: unknown): input is Output {\n return this.matches(input)\n }\n\n $ifMatches<I>(input: I): (I & Output) | undefined {\n return this.ifMatches(input)\n }\n\n $parse(input: unknown, options?: ValidationOptions): Output {\n return this.parse(input, options)\n }\n\n $safeParse(\n input: unknown,\n options?: ValidationOptions,\n ): ValidationResult<Output> {\n return this.safeParse(input, options)\n }\n}\n"]}
|
|
@@ -1,32 +1,43 @@
|
|
|
1
|
+
import { isLanguageString } from '@atproto/lex-data';
|
|
1
2
|
import { AtIdentifierString, AtUriString, DatetimeString, DidString, HandleString, NsidString, RecordKeyString, TidString } from '@atproto/syntax';
|
|
2
|
-
|
|
3
|
-
type CastFn<T> = <I extends string>(input: I) => I & T;
|
|
4
|
-
export type { AtIdentifierString, AtUriString, DatetimeString, DidString, HandleString, NsidString, RecordKeyString, TidString, };
|
|
5
|
-
export declare const assertDid: AssertFn<DidString>;
|
|
6
|
-
export declare const assertAtUri: AssertFn<AtUriString>;
|
|
7
|
-
export declare const assertAtIdentifier: AssertFn<AtIdentifierString>;
|
|
8
|
-
export declare const assertNsid: AssertFn<NsidString>;
|
|
9
|
-
export declare const assertTid: AssertFn<TidString>;
|
|
10
|
-
export declare const assertRecordKey: AssertFn<RecordKeyString>;
|
|
11
|
-
export declare const assertDatetime: AssertFn<DatetimeString>;
|
|
12
|
-
export declare const assertCidString: AssertFn<string>;
|
|
13
|
-
export declare const assertHandle: AssertFn<HandleString>;
|
|
3
|
+
import { AssertFn, CastFn, CheckFn } from '../util/assertion-util.js';
|
|
14
4
|
export type CidString = string;
|
|
15
|
-
export type UriString = `${string}:${string}`;
|
|
16
5
|
export type LanguageString = string;
|
|
17
|
-
export
|
|
18
|
-
export declare function
|
|
19
|
-
export
|
|
20
|
-
export declare const
|
|
21
|
-
export declare const
|
|
22
|
-
export declare const
|
|
23
|
-
export declare const
|
|
24
|
-
export declare const
|
|
25
|
-
export declare const
|
|
26
|
-
export declare const
|
|
27
|
-
export declare const
|
|
28
|
-
export declare const
|
|
29
|
-
export declare const
|
|
6
|
+
export type UriString = `${string}:${string}`;
|
|
7
|
+
export declare function isUriString<T extends string>(input: T): input is T & UriString;
|
|
8
|
+
export type { AtIdentifierString, AtUriString, DatetimeString, DidString, HandleString, NsidString, RecordKeyString, TidString, } from '@atproto/syntax';
|
|
9
|
+
export declare const assertAtIdentifierString: AssertFn<AtIdentifierString>;
|
|
10
|
+
export declare const assertAtUriString: AssertFn<AtUriString>;
|
|
11
|
+
export declare const assertCidString: AssertFn<CidString>;
|
|
12
|
+
export declare const assertDatetimeString: AssertFn<DatetimeString>;
|
|
13
|
+
export declare const assertDidString: AssertFn<DidString>;
|
|
14
|
+
export declare const assertHandleString: AssertFn<HandleString>;
|
|
15
|
+
export declare const assertLanguageString: AssertFn<LanguageString>;
|
|
16
|
+
export declare const assertNsidString: AssertFn<NsidString>;
|
|
17
|
+
export declare const assertRecordKeyString: AssertFn<RecordKeyString>;
|
|
18
|
+
export declare const assertTidString: AssertFn<TidString>;
|
|
19
|
+
export declare const assertUriString: AssertFn<UriString>;
|
|
20
|
+
export declare const asAtIdentifierString: CastFn<AtIdentifierString>;
|
|
21
|
+
export declare const asAtUriString: CastFn<AtUriString>;
|
|
22
|
+
export declare const asCidString: CastFn<CidString>;
|
|
23
|
+
export declare const asDatetimeString: CastFn<DatetimeString>;
|
|
24
|
+
export declare const asDidString: CastFn<DidString>;
|
|
25
|
+
export declare const asHandleString: CastFn<HandleString>;
|
|
26
|
+
export declare const asLanguageString: CastFn<LanguageString>;
|
|
27
|
+
export declare const asNsidString: CastFn<NsidString>;
|
|
28
|
+
export declare const asRecordKeyString: CastFn<RecordKeyString>;
|
|
29
|
+
export declare const asTidString: CastFn<TidString>;
|
|
30
|
+
export declare const asUriString: CastFn<UriString>;
|
|
31
|
+
export { isLanguageString };
|
|
32
|
+
export declare const isAtIdentifierString: CheckFn<AtIdentifierString>;
|
|
33
|
+
export declare const isAtUriString: CheckFn<AtUriString>;
|
|
34
|
+
export declare const isCidString: CheckFn<CidString>;
|
|
35
|
+
export declare const isDatetimeString: CheckFn<DatetimeString>;
|
|
36
|
+
export declare const isDidString: CheckFn<DidString>;
|
|
37
|
+
export declare const isHandleString: CheckFn<HandleString>;
|
|
38
|
+
export declare const isNsidString: CheckFn<NsidString>;
|
|
39
|
+
export declare const isRecordKeyString: CheckFn<RecordKeyString>;
|
|
40
|
+
export declare const isTidString: CheckFn<TidString>;
|
|
30
41
|
export declare const STRING_FORMATS: readonly ["datetime", "uri", "at-uri", "did", "handle", "at-identifier", "nsid", "cid", "language", "tid", "record-key"];
|
|
31
42
|
export type StringFormat = (typeof STRING_FORMATS)[number];
|
|
32
43
|
export type InferStringFormat<F> = F extends 'datetime' ? DatetimeString : F extends 'uri' ? UriString : F extends 'at-uri' ? AtUriString : F extends 'did' ? DidString : F extends 'handle' ? HandleString : F extends 'at-identifier' ? AtIdentifierString : F extends 'nsid' ? NsidString : string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"string-format.d.ts","sourceRoot":"","sources":["../../src/core/string-format.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"string-format.d.ts","sourceRoot":"","sources":["../../src/core/string-format.ts"],"names":[],"mappings":"AAAA,OAAO,EAAwB,gBAAgB,EAAE,MAAM,mBAAmB,CAAA;AAC1E,OAAO,EACL,kBAAkB,EAClB,WAAW,EACX,cAAc,EACd,SAAS,EACT,YAAY,EACZ,UAAU,EACV,eAAe,EACf,SAAS,EASV,MAAM,iBAAiB,CAAA;AACxB,OAAO,EACL,QAAQ,EACR,MAAM,EACN,OAAO,EAIR,MAAM,2BAA2B,CAAA;AAGlC,MAAM,MAAM,SAAS,GAAG,MAAM,CAAA;AAC9B,MAAM,MAAM,cAAc,GAAG,MAAM,CAAA;AACnC,MAAM,MAAM,SAAS,GAAG,GAAG,MAAM,IAAI,MAAM,EAAE,CAAA;AAG7C,wBAAgB,WAAW,CAAC,CAAC,SAAS,MAAM,EAC1C,KAAK,EAAE,CAAC,GACP,KAAK,IAAI,CAAC,GAAG,SAAS,CAExB;AAKD,YAAY,EACV,kBAAkB,EAClB,WAAW,EACX,cAAc,EACd,SAAS,EACT,YAAY,EACZ,UAAU,EACV,eAAe,EACf,SAAS,GACV,MAAM,iBAAiB,CAAA;AAIxB,eAAO,MAAM,wBAAwB,EAAE,QAAQ,CAAC,kBAAkB,CACzC,CAAA;AACzB,eAAO,MAAM,iBAAiB,EAAE,QAAQ,CAAC,WAAW,CAAoB,CAAA;AACxE,eAAO,MAAM,eAAe,EAAE,QAAQ,CAAC,SAAS,CAAwB,CAAA;AACxE,eAAO,MAAM,oBAAoB,EAAE,QAAQ,CAAC,cAAc,CACrC,CAAA;AACrB,eAAO,MAAM,eAAe,EAAE,QAAQ,CAAC,SAAS,CAAkB,CAAA;AAClE,eAAO,MAAM,kBAAkB,EAAE,QAAQ,CAAC,YAAY,CAAqB,CAAA;AAC3E,eAAO,MAAM,oBAAoB,EAAE,QAAQ,CAAC,cAAc,CAIvD,CAAA;AACH,eAAO,MAAM,gBAAgB,EAAE,QAAQ,CAAC,UAAU,CAAmB,CAAA;AACrE,eAAO,MAAM,qBAAqB,EAAE,QAAQ,CAAC,eAAe,CACtC,CAAA;AACtB,eAAO,MAAM,eAAe,EAAE,QAAQ,CAAC,SAAS,CAAkB,CAAA;AAClE,eAAO,MAAM,eAAe,EAAE,QAAQ,CAAC,SAAS,CACa,CAAA;AAE7D,eAAO,MAAM,oBAAoB,EAAE,MAAM,CAAC,kBAAkB,CACA,CAAA;AAC5D,eAAO,MAAM,aAAa,EAAE,MAAM,CAAC,WAAW,CACM,CAAA;AACpD,eAAO,MAAM,WAAW,EAAE,MAAM,CAAC,SAAS,CACc,CAAA;AACxD,eAAO,MAAM,gBAAgB,EAAE,MAAM,CAAC,cAAc,CACG,CAAA;AACvD,eAAO,MAAM,WAAW,EAAE,MAAM,CAAC,SAAS,CACQ,CAAA;AAClD,eAAO,MAAM,cAAc,EAAE,MAAM,CAAC,YAAY,CACK,CAAA;AACrD,eAAO,MAAM,gBAAgB,EAAE,MAAM,CAAC,cAAc,CACI,CAAA;AACxD,eAAO,MAAM,YAAY,EAAE,MAAM,CAAC,UAAU,CACO,CAAA;AACnD,eAAO,MAAM,iBAAiB,EAAE,MAAM,CAAC,eAAe,CACE,CAAA;AACxD,eAAO,MAAM,WAAW,EAAE,MAAM,CAAC,SAAS,CACQ,CAAA;AAClD,eAAO,MAAM,WAAW,EAAE,MAAM,CAAC,SAAS,CACS,CAAA;AAEnD,OAAO,EAAE,gBAAgB,EAAE,CAAA;AAC3B,eAAO,MAAM,oBAAoB,EAAE,OAAO,CAAC,kBAAkB,CACA,CAAA;AAC7D,eAAO,MAAM,aAAa,EAAE,OAAO,CAAC,WAAW,CACc,CAAA;AAC7D,eAAO,MAAM,WAAW,EAAE,OAAO,CAAC,SAAS,CACS,CAAA;AACpD,eAAO,MAAM,gBAAgB,EAAE,OAAO,CAAC,cAAc,CACI,CAAA;AACzD,eAAO,MAAM,WAAW,EAAE,OAAO,CAAC,SAAS,CACS,CAAA;AACpD,eAAO,MAAM,cAAc,EAAE,OAAO,CAAC,YAAY,CACM,CAAA;AACvD,eAAO,MAAM,YAAY,EAAE,OAAO,CAAC,UAAU,CACQ,CAAA;AACrD,eAAO,MAAM,iBAAiB,EAAE,OAAO,CAAC,eAAe,CACG,CAAA;AAC1D,eAAO,MAAM,WAAW,EAAE,OAAO,CAAC,SAAS,CACS,CAAA;AAIpD,eAAO,MAAM,cAAc,0HAYhB,CAAA;AAEX,MAAM,MAAM,YAAY,GAAG,CAAC,OAAO,cAAc,CAAC,CAAC,MAAM,CAAC,CAAA;AAE1D,MAAM,MAAM,iBAAiB,CAAC,CAAC,IAE7B,CAAC,SAAS,UAAU,GAChB,cAAc,GACd,CAAC,SAAS,KAAK,GACb,SAAS,GACT,CAAC,SAAS,QAAQ,GAChB,WAAW,GACX,CAAC,SAAS,KAAK,GACb,SAAS,GACT,CAAC,SAAS,QAAQ,GAChB,YAAY,GACZ,CAAC,SAAS,eAAe,GACvB,kBAAkB,GAClB,CAAC,SAAS,MAAM,GACd,UAAU,GAEV,MAAM,CAAA;AAiBxB,wBAAgB,kBAAkB,CAAC,CAAC,SAAS,YAAY,EACvD,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,CAAC,GACR,OAAO,CAAC,KAAK,IAAI,iBAAiB,CAAC,CAAC,CAAC,CAKvC"}
|
|
@@ -1,61 +1,68 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.STRING_FORMATS = exports.
|
|
4
|
-
exports.
|
|
5
|
-
exports.assertLanguage = assertLanguage;
|
|
3
|
+
exports.STRING_FORMATS = exports.isTidString = exports.isRecordKeyString = exports.isNsidString = exports.isHandleString = exports.isDidString = exports.isDatetimeString = exports.isCidString = exports.isAtUriString = exports.isAtIdentifierString = exports.isLanguageString = exports.asUriString = exports.asTidString = exports.asRecordKeyString = exports.asNsidString = exports.asLanguageString = exports.asHandleString = exports.asDidString = exports.asDatetimeString = exports.asCidString = exports.asAtUriString = exports.asAtIdentifierString = exports.assertUriString = exports.assertTidString = exports.assertRecordKeyString = exports.assertNsidString = exports.assertLanguageString = exports.assertHandleString = exports.assertDidString = exports.assertDatetimeString = exports.assertCidString = exports.assertAtUriString = exports.assertAtIdentifierString = void 0;
|
|
4
|
+
exports.isUriString = isUriString;
|
|
6
5
|
exports.assertStringFormat = assertStringFormat;
|
|
7
6
|
const lex_data_1 = require("@atproto/lex-data");
|
|
7
|
+
Object.defineProperty(exports, "isLanguageString", { enumerable: true, get: function () { return lex_data_1.isLanguageString; } });
|
|
8
8
|
const syntax_1 = require("@atproto/syntax");
|
|
9
|
+
const assertion_util_js_1 = require("../util/assertion-util.js");
|
|
9
10
|
/*@__NO_SIDE_EFFECTS__*/
|
|
10
|
-
function
|
|
11
|
-
return (input)
|
|
12
|
-
assertFn(input);
|
|
13
|
-
return input;
|
|
14
|
-
};
|
|
11
|
+
function isUriString(input) {
|
|
12
|
+
return /^\w+:(?:\/\/)?[^\s/][^\s]*$/.test(input);
|
|
15
13
|
}
|
|
16
|
-
|
|
17
|
-
exports.
|
|
18
|
-
exports.
|
|
19
|
-
exports.assertNsid = syntax_1.ensureValidNsid;
|
|
20
|
-
exports.assertTid = syntax_1.ensureValidTid;
|
|
21
|
-
exports.assertRecordKey = syntax_1.ensureValidRecordKey;
|
|
22
|
-
exports.assertDatetime = syntax_1.ensureValidDatetime;
|
|
14
|
+
// Export utilities for formats missing from @atproto/syntax
|
|
15
|
+
exports.assertAtIdentifierString = syntax_1.ensureValidAtIdentifier;
|
|
16
|
+
exports.assertAtUriString = syntax_1.ensureValidAtUri;
|
|
23
17
|
exports.assertCidString = lex_data_1.ensureValidCidString;
|
|
24
|
-
exports.
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
}
|
|
37
|
-
exports.asDid =
|
|
38
|
-
/*#__PURE__*/ createCastFunction(syntax_1.ensureValidDid);
|
|
39
|
-
exports.asAtUri =
|
|
40
|
-
/*#__PURE__*/ createCastFunction(syntax_1.ensureValidAtUri);
|
|
41
|
-
exports.asNsid =
|
|
42
|
-
/*#__PURE__*/ createCastFunction(syntax_1.ensureValidNsid);
|
|
43
|
-
exports.asTid =
|
|
44
|
-
/*#__PURE__*/ createCastFunction(syntax_1.ensureValidTid);
|
|
45
|
-
exports.asRecordKey =
|
|
46
|
-
/*#__PURE__*/ createCastFunction(syntax_1.ensureValidRecordKey);
|
|
47
|
-
exports.asDatetime =
|
|
48
|
-
/*#__PURE__*/ createCastFunction(syntax_1.ensureValidDatetime);
|
|
18
|
+
exports.assertDatetimeString = syntax_1.ensureValidDatetime;
|
|
19
|
+
exports.assertDidString = syntax_1.ensureValidDid;
|
|
20
|
+
exports.assertHandleString = syntax_1.ensureValidHandle;
|
|
21
|
+
exports.assertLanguageString = (0, assertion_util_js_1.createAssertFunction)(lex_data_1.isLanguageString, 'Invalid BCP 47 string');
|
|
22
|
+
exports.assertNsidString = syntax_1.ensureValidNsid;
|
|
23
|
+
exports.assertRecordKeyString = syntax_1.ensureValidRecordKey;
|
|
24
|
+
exports.assertTidString = syntax_1.ensureValidTid;
|
|
25
|
+
exports.assertUriString = (0, assertion_util_js_1.createAssertFunction)(isUriString, 'Invalid URI');
|
|
26
|
+
exports.asAtIdentifierString =
|
|
27
|
+
/*#__PURE__*/ (0, assertion_util_js_1.createCastFunction)(exports.assertAtIdentifierString);
|
|
28
|
+
exports.asAtUriString =
|
|
29
|
+
/*#__PURE__*/ (0, assertion_util_js_1.createCastFunction)(syntax_1.ensureValidAtUri);
|
|
49
30
|
exports.asCidString =
|
|
50
|
-
/*#__PURE__*/ createCastFunction(lex_data_1.ensureValidCidString);
|
|
51
|
-
exports.
|
|
52
|
-
/*#__PURE__*/ createCastFunction(syntax_1.
|
|
53
|
-
exports.
|
|
54
|
-
/*#__PURE__*/ createCastFunction(
|
|
55
|
-
exports.
|
|
56
|
-
/*#__PURE__*/ createCastFunction(
|
|
57
|
-
exports.
|
|
58
|
-
/*#__PURE__*/ createCastFunction(exports.
|
|
31
|
+
/*#__PURE__*/ (0, assertion_util_js_1.createCastFunction)(lex_data_1.ensureValidCidString);
|
|
32
|
+
exports.asDatetimeString =
|
|
33
|
+
/*#__PURE__*/ (0, assertion_util_js_1.createCastFunction)(syntax_1.ensureValidDatetime);
|
|
34
|
+
exports.asDidString =
|
|
35
|
+
/*#__PURE__*/ (0, assertion_util_js_1.createCastFunction)(syntax_1.ensureValidDid);
|
|
36
|
+
exports.asHandleString =
|
|
37
|
+
/*#__PURE__*/ (0, assertion_util_js_1.createCastFunction)(syntax_1.ensureValidHandle);
|
|
38
|
+
exports.asLanguageString =
|
|
39
|
+
/*#__PURE__*/ (0, assertion_util_js_1.createCastFunction)(exports.assertLanguageString);
|
|
40
|
+
exports.asNsidString =
|
|
41
|
+
/*#__PURE__*/ (0, assertion_util_js_1.createCastFunction)(syntax_1.ensureValidNsid);
|
|
42
|
+
exports.asRecordKeyString =
|
|
43
|
+
/*#__PURE__*/ (0, assertion_util_js_1.createCastFunction)(syntax_1.ensureValidRecordKey);
|
|
44
|
+
exports.asTidString =
|
|
45
|
+
/*#__PURE__*/ (0, assertion_util_js_1.createCastFunction)(syntax_1.ensureValidTid);
|
|
46
|
+
exports.asUriString =
|
|
47
|
+
/*#__PURE__*/ (0, assertion_util_js_1.createCastFunction)(exports.assertUriString);
|
|
48
|
+
exports.isAtIdentifierString =
|
|
49
|
+
/*#__PURE__*/ (0, assertion_util_js_1.createCheckFunction)(exports.assertAtIdentifierString);
|
|
50
|
+
exports.isAtUriString =
|
|
51
|
+
/*#__PURE__*/ (0, assertion_util_js_1.createCheckFunction)(exports.assertAtIdentifierString);
|
|
52
|
+
exports.isCidString =
|
|
53
|
+
/*#__PURE__*/ (0, assertion_util_js_1.createCheckFunction)(exports.assertCidString);
|
|
54
|
+
exports.isDatetimeString =
|
|
55
|
+
/*#__PURE__*/ (0, assertion_util_js_1.createCheckFunction)(exports.assertDatetimeString);
|
|
56
|
+
exports.isDidString =
|
|
57
|
+
/*#__PURE__*/ (0, assertion_util_js_1.createCheckFunction)(exports.assertDidString);
|
|
58
|
+
exports.isHandleString =
|
|
59
|
+
/*#__PURE__*/ (0, assertion_util_js_1.createCheckFunction)(exports.assertHandleString);
|
|
60
|
+
exports.isNsidString =
|
|
61
|
+
/*#__PURE__*/ (0, assertion_util_js_1.createCheckFunction)(exports.assertNsidString);
|
|
62
|
+
exports.isRecordKeyString =
|
|
63
|
+
/*#__PURE__*/ (0, assertion_util_js_1.createCheckFunction)(exports.assertRecordKeyString);
|
|
64
|
+
exports.isTidString =
|
|
65
|
+
/*#__PURE__*/ (0, assertion_util_js_1.createCheckFunction)(exports.assertTidString);
|
|
59
66
|
// String formatting types and utilities
|
|
60
67
|
exports.STRING_FORMATS = Object.freeze([
|
|
61
68
|
'datetime',
|
|
@@ -71,17 +78,17 @@ exports.STRING_FORMATS = Object.freeze([
|
|
|
71
78
|
'record-key',
|
|
72
79
|
]);
|
|
73
80
|
const formatters = /*#__PURE__*/ new Map([
|
|
74
|
-
['
|
|
75
|
-
['uri',
|
|
76
|
-
['at-uri', exports.assertAtUri],
|
|
77
|
-
['did', exports.assertDid],
|
|
78
|
-
['handle', exports.assertHandle],
|
|
79
|
-
['at-identifier', exports.assertAtIdentifier],
|
|
80
|
-
['nsid', exports.assertNsid],
|
|
81
|
+
['at-identifier', exports.assertAtIdentifierString],
|
|
82
|
+
['at-uri', exports.assertAtUriString],
|
|
81
83
|
['cid', exports.assertCidString],
|
|
82
|
-
['
|
|
83
|
-
['
|
|
84
|
-
['
|
|
84
|
+
['datetime', exports.assertDatetimeString],
|
|
85
|
+
['did', exports.assertDidString],
|
|
86
|
+
['handle', exports.assertHandleString],
|
|
87
|
+
['language', exports.assertLanguageString],
|
|
88
|
+
['nsid', exports.assertNsidString],
|
|
89
|
+
['record-key', exports.assertRecordKeyString],
|
|
90
|
+
['tid', exports.assertTidString],
|
|
91
|
+
['uri', exports.assertUriString],
|
|
85
92
|
]);
|
|
86
93
|
/*@__NO_SIDE_EFFECTS__*/
|
|
87
94
|
function assertStringFormat(input, format) {
|