@atproto/lex-schema 0.0.2 → 0.0.4
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 +75 -0
- package/dist/core/$type.d.ts +6 -3
- package/dist/core/$type.d.ts.map +1 -1
- package/dist/core/$type.js +1 -0
- package/dist/core/$type.js.map +1 -1
- package/dist/core/record-key.d.ts +3 -3
- package/dist/core/record-key.d.ts.map +1 -1
- package/dist/core/record-key.js +12 -6
- package/dist/core/record-key.js.map +1 -1
- package/dist/core/result.d.ts.map +1 -1
- package/dist/core/result.js +6 -0
- package/dist/core/result.js.map +1 -1
- package/dist/core/string-format.d.ts +30 -27
- package/dist/core/string-format.d.ts.map +1 -1
- package/dist/core/string-format.js +56 -42
- package/dist/core/string-format.js.map +1 -1
- package/dist/core/types.d.ts +9 -1
- package/dist/core/types.d.ts.map +1 -1
- package/dist/core/types.js.map +1 -1
- package/dist/external.d.ts +31 -28
- package/dist/external.d.ts.map +1 -1
- package/dist/external.js +33 -17
- package/dist/external.js.map +1 -1
- package/dist/schema/_parameters.d.ts +2 -2
- package/dist/schema/_parameters.d.ts.map +1 -1
- package/dist/schema/array.d.ts +5 -6
- package/dist/schema/array.d.ts.map +1 -1
- package/dist/schema/array.js +5 -6
- package/dist/schema/array.js.map +1 -1
- package/dist/schema/blob.d.ts +2 -3
- package/dist/schema/blob.d.ts.map +1 -1
- package/dist/schema/blob.js +1 -2
- package/dist/schema/blob.js.map +1 -1
- package/dist/schema/boolean.d.ts +4 -5
- package/dist/schema/boolean.d.ts.map +1 -1
- package/dist/schema/boolean.js +2 -3
- package/dist/schema/boolean.js.map +1 -1
- package/dist/schema/bytes.d.ts +3 -4
- package/dist/schema/bytes.d.ts.map +1 -1
- package/dist/schema/bytes.js +2 -3
- package/dist/schema/bytes.js.map +1 -1
- package/dist/schema/cid.d.ts +13 -6
- package/dist/schema/cid.d.ts.map +1 -1
- package/dist/schema/cid.js +2 -4
- package/dist/schema/cid.js.map +1 -1
- package/dist/schema/custom.d.ts +3 -4
- package/dist/schema/custom.d.ts.map +1 -1
- package/dist/schema/custom.js +4 -3
- package/dist/schema/custom.js.map +1 -1
- package/dist/schema/dict.d.ts +3 -3
- package/dist/schema/dict.d.ts.map +1 -1
- package/dist/schema/dict.js +1 -1
- package/dist/schema/dict.js.map +1 -1
- package/dist/schema/discriminated-union.d.ts +15 -24
- package/dist/schema/discriminated-union.d.ts.map +1 -1
- package/dist/schema/discriminated-union.js +40 -64
- package/dist/schema/discriminated-union.js.map +1 -1
- package/dist/schema/enum.d.ts +8 -4
- package/dist/schema/enum.d.ts.map +1 -1
- package/dist/schema/enum.js +5 -3
- package/dist/schema/enum.js.map +1 -1
- package/dist/schema/integer.d.ts +3 -4
- package/dist/schema/integer.d.ts.map +1 -1
- package/dist/schema/integer.js +3 -4
- package/dist/schema/integer.js.map +1 -1
- package/dist/schema/intersection.d.ts +22 -14
- package/dist/schema/intersection.d.ts.map +1 -1
- package/dist/schema/intersection.js +12 -22
- package/dist/schema/intersection.js.map +1 -1
- package/dist/schema/literal.d.ts +7 -3
- package/dist/schema/literal.d.ts.map +1 -1
- package/dist/schema/literal.js +5 -3
- package/dist/schema/literal.js.map +1 -1
- package/dist/schema/never.d.ts +2 -2
- package/dist/schema/never.d.ts.map +1 -1
- package/dist/schema/never.js +1 -1
- package/dist/schema/never.js.map +1 -1
- package/dist/schema/null.d.ts +2 -3
- package/dist/schema/null.d.ts.map +1 -1
- package/dist/schema/null.js +1 -2
- package/dist/schema/null.js.map +1 -1
- package/dist/schema/nullable.d.ts +7 -0
- package/dist/schema/nullable.d.ts.map +1 -0
- package/dist/schema/nullable.js +19 -0
- package/dist/schema/nullable.js.map +1 -0
- package/dist/schema/object.d.ts +10 -44
- package/dist/schema/object.d.ts.map +1 -1
- package/dist/schema/object.js +10 -46
- package/dist/schema/object.js.map +1 -1
- package/dist/schema/optional.d.ts +7 -0
- package/dist/schema/optional.d.ts.map +1 -0
- package/dist/schema/optional.js +25 -0
- package/dist/schema/optional.js.map +1 -0
- package/dist/schema/params.d.ts +14 -19
- package/dist/schema/params.d.ts.map +1 -1
- package/dist/schema/params.js +10 -24
- package/dist/schema/params.js.map +1 -1
- package/dist/schema/payload.d.ts +4 -4
- package/dist/schema/payload.d.ts.map +1 -1
- package/dist/schema/payload.js.map +1 -1
- package/dist/schema/permission-set.d.ts +6 -6
- package/dist/schema/permission-set.d.ts.map +1 -1
- package/dist/schema/permission-set.js +1 -2
- package/dist/schema/permission-set.js.map +1 -1
- package/dist/schema/permission.d.ts +0 -1
- package/dist/schema/permission.d.ts.map +1 -1
- package/dist/schema/permission.js +0 -1
- package/dist/schema/permission.js.map +1 -1
- package/dist/schema/procedure.d.ts +8 -9
- package/dist/schema/procedure.d.ts.map +1 -1
- package/dist/schema/procedure.js +0 -1
- package/dist/schema/procedure.js.map +1 -1
- package/dist/schema/query.d.ts +7 -8
- package/dist/schema/query.d.ts.map +1 -1
- package/dist/schema/query.js +0 -1
- package/dist/schema/query.js.map +1 -1
- package/dist/schema/record.d.ts +34 -28
- package/dist/schema/record.d.ts.map +1 -1
- package/dist/schema/record.js +1 -2
- package/dist/schema/record.js.map +1 -1
- package/dist/schema/ref.d.ts +2 -3
- package/dist/schema/ref.d.ts.map +1 -1
- package/dist/schema/ref.js +1 -2
- package/dist/schema/ref.js.map +1 -1
- package/dist/schema/refine.d.ts +18 -0
- package/dist/schema/refine.d.ts.map +1 -0
- package/dist/schema/refine.js +33 -0
- package/dist/schema/refine.js.map +1 -0
- package/dist/schema/regexp.d.ts +7 -0
- package/dist/schema/regexp.d.ts.map +1 -0
- package/dist/schema/regexp.js +22 -0
- package/dist/schema/regexp.js.map +1 -0
- package/dist/schema/string.d.ts +4 -8
- package/dist/schema/string.d.ts.map +1 -1
- package/dist/schema/string.js +6 -3
- package/dist/schema/string.js.map +1 -1
- package/dist/schema/subscription.d.ts +7 -6
- package/dist/schema/subscription.d.ts.map +1 -1
- package/dist/schema/subscription.js.map +1 -1
- package/dist/schema/token.d.ts +2 -3
- package/dist/schema/token.d.ts.map +1 -1
- package/dist/schema/token.js +1 -2
- package/dist/schema/token.js.map +1 -1
- package/dist/schema/typed-object.d.ts +29 -27
- package/dist/schema/typed-object.d.ts.map +1 -1
- package/dist/schema/typed-object.js +1 -2
- package/dist/schema/typed-object.js.map +1 -1
- package/dist/schema/typed-ref.d.ts +2 -2
- package/dist/schema/typed-ref.d.ts.map +1 -1
- package/dist/schema/typed-ref.js +1 -1
- package/dist/schema/typed-ref.js.map +1 -1
- package/dist/schema/typed-union.d.ts +3 -4
- package/dist/schema/typed-union.d.ts.map +1 -1
- package/dist/schema/typed-union.js +3 -10
- package/dist/schema/typed-union.js.map +1 -1
- package/dist/schema/union.d.ts +2 -2
- package/dist/schema/union.d.ts.map +1 -1
- package/dist/schema/union.js +1 -1
- package/dist/schema/union.js.map +1 -1
- package/dist/schema/unknown-object.d.ts +2 -3
- package/dist/schema/unknown-object.d.ts.map +1 -1
- package/dist/schema/unknown-object.js +1 -2
- package/dist/schema/unknown-object.js.map +1 -1
- package/dist/schema/unknown.d.ts +2 -2
- package/dist/schema/unknown.d.ts.map +1 -1
- package/dist/schema/unknown.js +1 -1
- package/dist/schema/unknown.js.map +1 -1
- package/dist/schema.d.ts +4 -0
- package/dist/schema.d.ts.map +1 -1
- package/dist/schema.js +6 -1
- package/dist/schema.js.map +1 -1
- package/dist/util/array-agg.d.ts.map +1 -1
- package/dist/util/array-agg.js +1 -0
- package/dist/util/array-agg.js.map +1 -1
- package/dist/util/lazy-property.d.ts +2 -0
- package/dist/util/lazy-property.d.ts.map +1 -0
- package/dist/util/lazy-property.js +14 -0
- package/dist/util/lazy-property.js.map +1 -0
- package/dist/validation/schema.d.ts +24 -0
- package/dist/validation/schema.d.ts.map +1 -0
- package/dist/validation/schema.js +57 -0
- package/dist/validation/schema.js.map +1 -0
- package/dist/validation/validation-error.d.ts +3 -3
- package/dist/validation/validation-error.d.ts.map +1 -1
- package/dist/validation/validation-error.js +32 -4
- package/dist/validation/validation-error.js.map +1 -1
- package/dist/validation/validation-issue.d.ts +32 -24
- package/dist/validation/validation-issue.d.ts.map +1 -1
- package/dist/validation/validation-issue.js +136 -92
- package/dist/validation/validation-issue.js.map +1 -1
- package/dist/validation/validator.d.ts +20 -50
- package/dist/validation/validator.d.ts.map +1 -1
- package/dist/validation/validator.js +40 -134
- package/dist/validation/validator.js.map +1 -1
- package/dist/validation.d.ts +1 -0
- package/dist/validation.d.ts.map +1 -1
- package/dist/validation.js +1 -0
- package/dist/validation.js.map +1 -1
- package/package.json +8 -4
- package/src/core/$type.ts +7 -4
- package/src/core/record-key.ts +12 -5
- package/src/core/result.ts +6 -0
- package/src/core/string-format.ts +97 -61
- package/src/core/types.ts +12 -6
- package/src/external.ts +92 -70
- package/src/schema/_parameters.test.ts +416 -0
- package/src/schema/array.test.ts +237 -0
- package/src/schema/array.ts +17 -11
- package/src/schema/blob.test.ts +506 -0
- package/src/schema/blob.ts +3 -5
- package/src/schema/boolean.test.ts +116 -0
- package/src/schema/boolean.ts +5 -7
- package/src/schema/bytes.test.ts +226 -0
- package/src/schema/bytes.ts +4 -6
- package/src/schema/cid.test.ts +155 -0
- package/src/schema/cid.ts +14 -8
- package/src/schema/custom.test.ts +413 -0
- package/src/schema/custom.ts +10 -8
- package/src/schema/dict.test.ts +198 -0
- package/src/schema/dict.ts +6 -8
- package/src/schema/discriminated-union.test.ts +675 -0
- package/src/schema/discriminated-union.ts +68 -95
- package/src/schema/enum.test.ts +396 -0
- package/src/schema/enum.ts +12 -5
- package/src/schema/integer.test.ts +312 -0
- package/src/schema/integer.ts +5 -7
- package/src/schema/intersection.test.ts +32 -0
- package/src/schema/intersection.ts +37 -40
- package/src/schema/literal.test.ts +531 -0
- package/src/schema/literal.ts +12 -5
- package/src/schema/never.test.ts +174 -0
- package/src/schema/never.ts +3 -10
- package/src/schema/null.test.ts +79 -0
- package/src/schema/null.ts +3 -5
- package/src/schema/nullable.test.ts +480 -0
- package/src/schema/nullable.ts +23 -0
- package/src/schema/object.test.ts +47 -115
- package/src/schema/object.ts +19 -123
- package/src/schema/optional.test.ts +485 -0
- package/src/schema/optional.ts +31 -0
- package/src/schema/params.test.ts +582 -0
- package/src/schema/params.ts +37 -55
- package/src/schema/payload.test.ts +345 -0
- package/src/schema/payload.ts +5 -5
- package/src/schema/permission-set.test.ts +679 -0
- package/src/schema/permission-set.ts +6 -8
- package/src/schema/permission.test.ts +536 -0
- package/src/schema/permission.ts +0 -2
- package/src/schema/procedure.test.ts +443 -0
- package/src/schema/procedure.ts +11 -13
- package/src/schema/query.test.ts +408 -0
- package/src/schema/query.ts +9 -11
- package/src/schema/record.test.ts +694 -0
- package/src/schema/record.ts +38 -36
- package/src/schema/ref.test.ts +365 -0
- package/src/schema/ref.ts +8 -5
- package/src/schema/refine.test.ts +578 -0
- package/src/schema/refine.ts +85 -0
- package/src/schema/regexp.test.ts +580 -0
- package/src/schema/regexp.ts +22 -0
- package/src/schema/string.test.ts +612 -0
- package/src/schema/string.ts +11 -17
- package/src/schema/subscription.test.ts +689 -0
- package/src/schema/subscription.ts +13 -8
- package/src/schema/token.test.ts +428 -0
- package/src/schema/token.ts +3 -5
- package/src/schema/typed-object.test.ts +612 -0
- package/src/schema/typed-object.ts +23 -20
- package/src/schema/typed-ref.test.ts +823 -0
- package/src/schema/typed-ref.ts +10 -5
- package/src/schema/typed-union.test.ts +378 -0
- package/src/schema/typed-union.ts +6 -15
- package/src/schema/union.test.ts +200 -0
- package/src/schema/union.ts +5 -4
- package/src/schema/unknown-object.test.ts +592 -0
- package/src/schema/unknown-object.ts +3 -5
- package/src/schema/unknown.test.ts +312 -0
- package/src/schema/unknown.ts +3 -3
- package/src/schema.ts +7 -1
- package/src/util/array-agg.ts +1 -0
- package/src/util/lazy-property.ts +14 -0
- package/src/validation/schema.ts +92 -0
- package/src/validation/validation-error.ts +60 -9
- package/src/validation/validation-issue.ts +141 -144
- package/src/validation/validator.ts +67 -206
- package/src/validation.ts +1 -0
- package/tsconfig.build.json +12 -0
- package/tsconfig.json +7 -0
- package/tsconfig.tests.json +9 -0
package/CHANGELOG.md
ADDED
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
# @atproto/lex-schema
|
|
2
|
+
|
|
3
|
+
## 0.0.4
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- Updated dependencies [[`693784c`](https://github.com/bluesky-social/atproto/commit/693784c3a0dee4b6a29aa1e018fce682dcae148f)]:
|
|
8
|
+
- @atproto/lex-data@0.0.3
|
|
9
|
+
|
|
10
|
+
## 0.0.3
|
|
11
|
+
|
|
12
|
+
### Patch Changes
|
|
13
|
+
|
|
14
|
+
- [#4390](https://github.com/bluesky-social/atproto/pull/4390) [`1d445af`](https://github.com/bluesky-social/atproto/commit/1d445af2a7fc27eca5a45869b29266e6a2a7f3ba) Thanks [@matthieusieben](https://github.com/matthieusieben)! - Add `default` option to `literal` and `enum` schemas
|
|
15
|
+
|
|
16
|
+
- [#4390](https://github.com/bluesky-social/atproto/pull/4390) [`1d445af`](https://github.com/bluesky-social/atproto/commit/1d445af2a7fc27eca5a45869b29266e6a2a7f3ba) Thanks [@matthieusieben](https://github.com/matthieusieben)! - Rework object validation logic to work without `options` argument
|
|
17
|
+
|
|
18
|
+
- [#4390](https://github.com/bluesky-social/atproto/pull/4390) [`1d445af`](https://github.com/bluesky-social/atproto/commit/1d445af2a7fc27eca5a45869b29266e6a2a7f3ba) Thanks [@matthieusieben](https://github.com/matthieusieben)! - `literal` schemas no longer use the value as "default". The "default" must now be explicitly provided.
|
|
19
|
+
|
|
20
|
+
- [#4390](https://github.com/bluesky-social/atproto/pull/4390) [`1d445af`](https://github.com/bluesky-social/atproto/commit/1d445af2a7fc27eca5a45869b29266e6a2a7f3ba) Thanks [@matthieusieben](https://github.com/matthieusieben)! - Use `l.nullable` for nullable object properties and `l.optional` for optional object properties in lex schemas.
|
|
21
|
+
|
|
22
|
+
- [#4390](https://github.com/bluesky-social/atproto/pull/4390) [`1d445af`](https://github.com/bluesky-social/atproto/commit/1d445af2a7fc27eca5a45869b29266e6a2a7f3ba) Thanks [@matthieusieben](https://github.com/matthieusieben)! - Add `l.refine` utility to add custom refinements to existing schemas.
|
|
23
|
+
|
|
24
|
+
- [#4401](https://github.com/bluesky-social/atproto/pull/4401) [`a487ab8`](https://github.com/bluesky-social/atproto/commit/a487ab8afe8f18d00662e666049be8d28de2b57e) Thanks [@matthieusieben](https://github.com/matthieusieben)! - Add test suite for all schema types
|
|
25
|
+
|
|
26
|
+
- [#4401](https://github.com/bluesky-social/atproto/pull/4401) [`a487ab8`](https://github.com/bluesky-social/atproto/commit/a487ab8afe8f18d00662e666049be8d28de2b57e) Thanks [@matthieusieben](https://github.com/matthieusieben)! - Allow `array` schema's generic to be both a Validator type or an item value type
|
|
27
|
+
|
|
28
|
+
- [#4390](https://github.com/bluesky-social/atproto/pull/4390) [`1d445af`](https://github.com/bluesky-social/atproto/commit/1d445af2a7fc27eca5a45869b29266e6a2a7f3ba) Thanks [@matthieusieben](https://github.com/matthieusieben)! - Validation issues are now child classed to the `Issue` abstract class instead of simple objects with interfaces. This allows for better extensibility and custom behavior on issues (such as custom error messages).
|
|
29
|
+
|
|
30
|
+
- [#4390](https://github.com/bluesky-social/atproto/pull/4390) [`1d445af`](https://github.com/bluesky-social/atproto/commit/1d445af2a7fc27eca5a45869b29266e6a2a7f3ba) Thanks [@matthieusieben](https://github.com/matthieusieben)! - Replace use of `CID` with `Cid`
|
|
31
|
+
|
|
32
|
+
- [#4401](https://github.com/bluesky-social/atproto/pull/4401) [`a487ab8`](https://github.com/bluesky-social/atproto/commit/a487ab8afe8f18d00662e666049be8d28de2b57e) Thanks [@matthieusieben](https://github.com/matthieusieben)! - Drop `lexiconType` property
|
|
33
|
+
|
|
34
|
+
- [#4401](https://github.com/bluesky-social/atproto/pull/4401) [`a487ab8`](https://github.com/bluesky-social/atproto/commit/a487ab8afe8f18d00662e666049be8d28de2b57e) Thanks [@matthieusieben](https://github.com/matthieusieben)! - Fix type of `typedObject` and `record` schemas
|
|
35
|
+
|
|
36
|
+
- [#4390](https://github.com/bluesky-social/atproto/pull/4390) [`1d445af`](https://github.com/bluesky-social/atproto/commit/1d445af2a7fc27eca5a45869b29266e6a2a7f3ba) Thanks [@matthieusieben](https://github.com/matthieusieben)! - Remove options (`required`, `nullable`) from `object` schemas. Those are replaced by `l.optional` and `l.nullable` wrappers.
|
|
37
|
+
|
|
38
|
+
- [#4390](https://github.com/bluesky-social/atproto/pull/4390) [`1d445af`](https://github.com/bluesky-social/atproto/commit/1d445af2a7fc27eca5a45869b29266e6a2a7f3ba) Thanks [@matthieusieben](https://github.com/matthieusieben)! - Discriminated unions now only accept discriminators to be declared a `literal` or `enum` schemas and will throw at initialization if discriminators values aren't strictly disjoined.
|
|
39
|
+
|
|
40
|
+
- [#4389](https://github.com/bluesky-social/atproto/pull/4389) [`bcae2b7`](https://github.com/bluesky-social/atproto/commit/bcae2b77b68da6dc2ec202651c8bf41fd5769f69) Thanks [@matthieusieben](https://github.com/matthieusieben)! - Use string formats from `@atproto/syntax`
|
|
41
|
+
|
|
42
|
+
- [#4389](https://github.com/bluesky-social/atproto/pull/4389) [`bcae2b7`](https://github.com/bluesky-social/atproto/commit/bcae2b77b68da6dc2ec202651c8bf41fd5769f69) Thanks [@matthieusieben](https://github.com/matthieusieben)! - Add `l.regexp` schema builder
|
|
43
|
+
|
|
44
|
+
- [#4390](https://github.com/bluesky-social/atproto/pull/4390) [`1d445af`](https://github.com/bluesky-social/atproto/commit/1d445af2a7fc27eca5a45869b29266e6a2a7f3ba) Thanks [@matthieusieben](https://github.com/matthieusieben)! - Require `l.discriminatedUnion` discriminator field to be a `literal` or `enum` schema
|
|
45
|
+
|
|
46
|
+
- [#4401](https://github.com/bluesky-social/atproto/pull/4401) [`a487ab8`](https://github.com/bluesky-social/atproto/commit/a487ab8afe8f18d00662e666049be8d28de2b57e) Thanks [@matthieusieben](https://github.com/matthieusieben)! - Simplify `ParamsSchema` interface
|
|
47
|
+
|
|
48
|
+
- [#4390](https://github.com/bluesky-social/atproto/pull/4390) [`1d445af`](https://github.com/bluesky-social/atproto/commit/1d445af2a7fc27eca5a45869b29266e6a2a7f3ba) Thanks [@matthieusieben](https://github.com/matthieusieben)! - Remove options (`required`) from `params` schemas. Those are replaced by `l.optional` wrappers.
|
|
49
|
+
|
|
50
|
+
- [#4387](https://github.com/bluesky-social/atproto/pull/4387) [`9f87ff3`](https://github.com/bluesky-social/atproto/commit/9f87ff3aa60090c8c38b6ce400cba6ceff5cd2e9) Thanks [@matthieusieben](https://github.com/matthieusieben)! - Simplify `dict` type definition
|
|
51
|
+
|
|
52
|
+
- [#4390](https://github.com/bluesky-social/atproto/pull/4390) [`1d445af`](https://github.com/bluesky-social/atproto/commit/1d445af2a7fc27eca5a45869b29266e6a2a7f3ba) Thanks [@matthieusieben](https://github.com/matthieusieben)! - Rename schema methods `validate`, `check` and `maybe` to `safeParse`, `matches` and `ifMatches` respectively.
|
|
53
|
+
|
|
54
|
+
- [#4397](https://github.com/bluesky-social/atproto/pull/4397) [`688f9d6`](https://github.com/bluesky-social/atproto/commit/688f9d67597ba96d6e9c4a4aec4d394d42f4cbf4) Thanks [@matthieusieben](https://github.com/matthieusieben)! - Add `CHANGELOG.md` to npm package
|
|
55
|
+
|
|
56
|
+
- [#4390](https://github.com/bluesky-social/atproto/pull/4390) [`1d445af`](https://github.com/bluesky-social/atproto/commit/1d445af2a7fc27eca5a45869b29266e6a2a7f3ba) Thanks [@matthieusieben](https://github.com/matthieusieben)! - Add `default` option to `const` and `enum` schemas
|
|
57
|
+
|
|
58
|
+
- Updated dependencies [[`1d445af`](https://github.com/bluesky-social/atproto/commit/1d445af2a7fc27eca5a45869b29266e6a2a7f3ba), [`1d445af`](https://github.com/bluesky-social/atproto/commit/1d445af2a7fc27eca5a45869b29266e6a2a7f3ba), [`bcae2b7`](https://github.com/bluesky-social/atproto/commit/bcae2b77b68da6dc2ec202651c8bf41fd5769f69), [`688f9d6`](https://github.com/bluesky-social/atproto/commit/688f9d67597ba96d6e9c4a4aec4d394d42f4cbf4)]:
|
|
59
|
+
- @atproto/lex-data@0.0.2
|
|
60
|
+
- @atproto/syntax@0.4.2
|
|
61
|
+
|
|
62
|
+
## 0.0.2
|
|
63
|
+
|
|
64
|
+
### Patch Changes
|
|
65
|
+
|
|
66
|
+
- [#4380](https://github.com/bluesky-social/atproto/pull/4380) [`23c271f`](https://github.com/bluesky-social/atproto/commit/23c271fcac27f090727e2f835697d4733784bdb4) Thanks [@matthieusieben](https://github.com/matthieusieben)! - Use `literal` value as default
|
|
67
|
+
|
|
68
|
+
## 0.0.1
|
|
69
|
+
|
|
70
|
+
### Patch Changes
|
|
71
|
+
|
|
72
|
+
- [#4371](https://github.com/bluesky-social/atproto/pull/4371) [`46550d6`](https://github.com/bluesky-social/atproto/commit/46550d6c1ffb298f57d54eb1904067b2df5a40af) Thanks [@matthieusieben](https://github.com/matthieusieben)! - Release
|
|
73
|
+
|
|
74
|
+
- Updated dependencies [[`46550d6`](https://github.com/bluesky-social/atproto/commit/46550d6c1ffb298f57d54eb1904067b2df5a40af)]:
|
|
75
|
+
- @atproto/lex-data@0.0.1
|
package/dist/core/$type.d.ts
CHANGED
|
@@ -1,4 +1,7 @@
|
|
|
1
|
-
import {
|
|
2
|
-
export type $Type<N extends
|
|
3
|
-
export
|
|
1
|
+
import { NsidString } from './string-format.js';
|
|
2
|
+
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
|
+
export type $TypeOf<O extends {
|
|
4
|
+
$type?: string;
|
|
5
|
+
}> = NonNullable<O['$type']>;
|
|
6
|
+
export declare function $type<N extends NsidString, H extends string>(nsid: N, hash: H): $Type<N, H>;
|
|
4
7
|
//# 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,
|
|
1
|
+
{"version":3,"file":"$type.d.ts","sourceRoot":"","sources":["../../src/core/$type.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAA;AAE/C,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"}
|
package/dist/core/$type.js
CHANGED
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":";;AAgBA,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'\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"]}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export type
|
|
2
|
-
export declare function
|
|
3
|
-
export declare function
|
|
1
|
+
export type LexiconRecordKey = 'any' | 'nsid' | 'tid' | `literal:${string}`;
|
|
2
|
+
export declare function isLexiconRecordKey<T>(key: T): key is T & LexiconRecordKey;
|
|
3
|
+
export declare function asLexiconRecordKey(key: unknown): LexiconRecordKey;
|
|
4
4
|
//# sourceMappingURL=record-key.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"record-key.d.ts","sourceRoot":"","sources":["../../src/core/record-key.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"record-key.d.ts","sourceRoot":"","sources":["../../src/core/record-key.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,gBAAgB,GAAG,KAAK,GAAG,MAAM,GAAG,KAAK,GAAG,WAAW,MAAM,EAAE,CAAA;AAG3E,wBAAgB,kBAAkB,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,gBAAgB,CAUzE;AAGD,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,OAAO,GAAG,gBAAgB,CAGjE"}
|
package/dist/core/record-key.js
CHANGED
|
@@ -1,15 +1,21 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
4
|
-
exports.
|
|
5
|
-
|
|
3
|
+
exports.isLexiconRecordKey = isLexiconRecordKey;
|
|
4
|
+
exports.asLexiconRecordKey = asLexiconRecordKey;
|
|
5
|
+
const syntax_1 = require("@atproto/syntax");
|
|
6
|
+
/*@__NO_SIDE_EFFECTS__*/
|
|
7
|
+
function isLexiconRecordKey(key) {
|
|
6
8
|
return (key === 'any' ||
|
|
7
9
|
key === 'nsid' ||
|
|
8
10
|
key === 'tid' ||
|
|
9
|
-
(typeof key === 'string' &&
|
|
11
|
+
(typeof key === 'string' &&
|
|
12
|
+
key.startsWith('literal:') &&
|
|
13
|
+
key.length > 8 &&
|
|
14
|
+
(0, syntax_1.isValidRecordKey)(key.slice(8))));
|
|
10
15
|
}
|
|
11
|
-
|
|
12
|
-
|
|
16
|
+
/*@__NO_SIDE_EFFECTS__*/
|
|
17
|
+
function asLexiconRecordKey(key) {
|
|
18
|
+
if (isLexiconRecordKey(key))
|
|
13
19
|
return key;
|
|
14
20
|
throw new Error(`Invalid record key: ${String(key)}`);
|
|
15
21
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"record-key.js","sourceRoot":"","sources":["../../src/core/record-key.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"record-key.js","sourceRoot":"","sources":["../../src/core/record-key.ts"],"names":[],"mappings":";;AAKA,gDAUC;AAGD,gDAGC;AArBD,4CAAkD;AAIlD,wBAAwB;AACxB,SAAgB,kBAAkB,CAAI,GAAM;IAC1C,OAAO,CACL,GAAG,KAAK,KAAK;QACb,GAAG,KAAK,MAAM;QACd,GAAG,KAAK,KAAK;QACb,CAAC,OAAO,GAAG,KAAK,QAAQ;YACtB,GAAG,CAAC,UAAU,CAAC,UAAU,CAAC;YAC1B,GAAG,CAAC,MAAM,GAAG,CAAC;YACd,IAAA,yBAAgB,EAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAClC,CAAA;AACH,CAAC;AAED,wBAAwB;AACxB,SAAgB,kBAAkB,CAAC,GAAY;IAC7C,IAAI,kBAAkB,CAAC,GAAG,CAAC;QAAE,OAAO,GAAG,CAAA;IACvC,MAAM,IAAI,KAAK,CAAC,uBAAuB,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;AACvD,CAAC","sourcesContent":["import { isValidRecordKey } from '@atproto/syntax'\n\nexport type LexiconRecordKey = 'any' | 'nsid' | 'tid' | `literal:${string}`\n\n/*@__NO_SIDE_EFFECTS__*/\nexport function isLexiconRecordKey<T>(key: T): key is T & LexiconRecordKey {\n return (\n key === 'any' ||\n key === 'nsid' ||\n key === 'tid' ||\n (typeof key === 'string' &&\n key.startsWith('literal:') &&\n key.length > 8 &&\n isValidRecordKey(key.slice(8)))\n )\n}\n\n/*@__NO_SIDE_EFFECTS__*/\nexport function asLexiconRecordKey(key: unknown): LexiconRecordKey {\n if (isLexiconRecordKey(key)) return key\n throw new Error(`Invalid record key: ${String(key)}`)\n}\n"]}
|
|
@@ -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,KAAK,EAAE,CAAC,CAAA;CAAE,CAAA;AAEnE,MAAM,MAAM,MAAM,CAAC,CAAC,GAAG,GAAG,EAAE,CAAC,GAAG,KAAK,IAAI,aAAa,CAAC,CAAC,CAAC,GAAG,aAAa,CAAC,CAAC,CAAC,CAAA;
|
|
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,KAAK,EAAE,CAAC,CAAA;CAAE,CAAA;AAEnE,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,KAAK,EAAE,CAAC,GAAG,aAAa,CAAC,CAAC,CAAC,CAErD;AAGD,wBAAgB,YAAY,CAAC,CAAC,EAAE,MAAM,EAAE,aAAa,CAAC,CAAC,CAAC,GAAG,CAAC,CAE3D;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;;;;;;;;;;;;;;;;;;;;;GAqBG;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
|
@@ -6,15 +6,19 @@ exports.failureError = failureError;
|
|
|
6
6
|
exports.successValue = successValue;
|
|
7
7
|
exports.catchall = catchall;
|
|
8
8
|
exports.createCatcher = createCatcher;
|
|
9
|
+
/*@__NO_SIDE_EFFECTS__*/
|
|
9
10
|
function success(value) {
|
|
10
11
|
return { success: true, value };
|
|
11
12
|
}
|
|
13
|
+
/*@__NO_SIDE_EFFECTS__*/
|
|
12
14
|
function failure(error) {
|
|
13
15
|
return { success: false, error };
|
|
14
16
|
}
|
|
17
|
+
/*@__NO_SIDE_EFFECTS__*/
|
|
15
18
|
function failureError(result) {
|
|
16
19
|
return result.error;
|
|
17
20
|
}
|
|
21
|
+
/*@__NO_SIDE_EFFECTS__*/
|
|
18
22
|
function successValue(result) {
|
|
19
23
|
return result.value;
|
|
20
24
|
}
|
|
@@ -37,6 +41,7 @@ function successValue(result) {
|
|
|
37
41
|
* }
|
|
38
42
|
* ```
|
|
39
43
|
*/
|
|
44
|
+
/*@__NO_SIDE_EFFECTS__*/
|
|
40
45
|
function catchall(err) {
|
|
41
46
|
if (err instanceof Error)
|
|
42
47
|
return failure(err);
|
|
@@ -64,6 +69,7 @@ function catchall(err) {
|
|
|
64
69
|
* console.error(result.error) // FooError | BarError
|
|
65
70
|
* }
|
|
66
71
|
*/
|
|
72
|
+
/*@__NO_SIDE_EFFECTS__*/
|
|
67
73
|
function createCatcher(Ctor) {
|
|
68
74
|
return (err) => {
|
|
69
75
|
if (err instanceof Ctor)
|
package/dist/core/result.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"result.js","sourceRoot":"","sources":["../../src/core/result.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"result.js","sourceRoot":"","sources":["../../src/core/result.ts"],"names":[],"mappings":";;AAMA,0BAEC;AAGD,0BAEC;AAGD,oCAEC;AAGD,oCAEC;AAsBD,4BAGC;AAyBD,sCAKC;AAzED,wBAAwB;AACxB,SAAgB,OAAO,CAAI,KAAQ;IACjC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,CAAA;AACjC,CAAC;AAED,wBAAwB;AACxB,SAAgB,OAAO,CAAI,KAAQ;IACjC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,CAAA;AAClC,CAAC;AAED,wBAAwB;AACxB,SAAgB,YAAY,CAAI,MAAwB;IACtD,OAAO,MAAM,CAAC,KAAK,CAAA;AACrB,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;;;;;;;;;;;;;;;;;;;;;GAqBG;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; error: 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>(error: E): ResultFailure<E> {\n return { success: false, error }\n}\n\n/*@__NO_SIDE_EFFECTS__*/\nexport function failureError<T>(result: ResultFailure<T>): T {\n return result.error\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<ResultSuccess<string>>\n *\n * const result = await someFunction().catch(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<ResultSuccess<string>>\n *\n * const result = await someFunction()\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,31 +1,34 @@
|
|
|
1
|
-
|
|
2
|
-
interface Date {
|
|
3
|
-
toISOString(): `${string}T${string}Z`;
|
|
4
|
-
}
|
|
5
|
-
}
|
|
6
|
-
export declare const STRING_FORMATS: readonly ["datetime", "uri", "at-uri", "did", "handle", "at-identifier", "nsid", "cid", "language", "tid", "record-key"];
|
|
7
|
-
export type StringFormat = (typeof STRING_FORMATS)[number];
|
|
8
|
-
export type Did<M extends string = string> = `did:${M}:${string}`;
|
|
9
|
-
export type Uri = `${string}:${string}`;
|
|
10
|
-
export type Nsid = `${string}.${string}.${string}`;
|
|
11
|
-
/** An ISO 8601 formatted datetime string (YYYY-MM-DDTHH:mm:ss.sssZ) */
|
|
12
|
-
export type Datetime = `${string}T${string}`;
|
|
13
|
-
export type Handle = `${string}.${string}`;
|
|
14
|
-
export type AtIdentifier = Did | Handle;
|
|
15
|
-
export type AtUri = `at://${AtIdentifier}/${Nsid}/${string}`;
|
|
16
|
-
export type InferStringFormat<F> = F extends 'datetime' ? Datetime : F extends 'uri' ? Uri : F extends 'at-uri' ? AtUri : F extends 'did' ? Did : F extends 'handle' ? Handle : F extends 'at-identifier' ? AtIdentifier : F extends 'nsid' ? Nsid : string;
|
|
1
|
+
import { AtIdentifierString, AtUriString, DatetimeString, DidString, HandleString, NsidString, RecordKeyString, TidString } from '@atproto/syntax';
|
|
17
2
|
type AssertFn<T> = <I extends string>(input: I) => asserts input is I & T;
|
|
18
|
-
|
|
19
|
-
export
|
|
20
|
-
export declare const
|
|
21
|
-
export declare const
|
|
22
|
-
export declare const
|
|
23
|
-
export declare const
|
|
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>;
|
|
24
12
|
export declare const assertCidString: AssertFn<string>;
|
|
25
|
-
export declare const assertHandle: AssertFn<
|
|
26
|
-
export
|
|
27
|
-
export
|
|
28
|
-
export
|
|
13
|
+
export declare const assertHandle: AssertFn<HandleString>;
|
|
14
|
+
export type CidString = string;
|
|
15
|
+
export type UriString = `${string}:${string}`;
|
|
16
|
+
export type LanguageString = string;
|
|
17
|
+
export declare function assertUri(input: string): asserts input is UriString;
|
|
18
|
+
export declare function assertLanguage(input: string): asserts input is LanguageString;
|
|
19
|
+
export declare const asDid: CastFn<DidString>;
|
|
20
|
+
export declare const asAtUri: CastFn<AtUriString>;
|
|
21
|
+
export declare const asNsid: CastFn<NsidString>;
|
|
22
|
+
export declare const asTid: CastFn<TidString>;
|
|
23
|
+
export declare const asRecordKey: CastFn<RecordKeyString>;
|
|
24
|
+
export declare const asDatetime: CastFn<DatetimeString>;
|
|
25
|
+
export declare const asCidString: CastFn<string>;
|
|
26
|
+
export declare const asHandle: CastFn<HandleString>;
|
|
27
|
+
export declare const asUri: CastFn<UriString>;
|
|
28
|
+
export declare const asLanguage: CastFn<LanguageString>;
|
|
29
|
+
export declare const asAtIdentifier: CastFn<AtIdentifierString>;
|
|
30
|
+
export declare const STRING_FORMATS: readonly ["datetime", "uri", "at-uri", "did", "handle", "at-identifier", "nsid", "cid", "language", "tid", "record-key"];
|
|
31
|
+
export type StringFormat = (typeof STRING_FORMATS)[number];
|
|
32
|
+
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;
|
|
29
33
|
export declare function assertStringFormat<F extends StringFormat>(input: string, format: F): asserts input is InferStringFormat<F>;
|
|
30
|
-
export {};
|
|
31
34
|
//# sourceMappingURL=string-format.d.ts.map
|
|
@@ -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":"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"}
|
|
@@ -1,75 +1,89 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
3
|
+
exports.STRING_FORMATS = exports.asAtIdentifier = exports.asLanguage = exports.asUri = exports.asHandle = exports.asCidString = exports.asDatetime = exports.asRecordKey = exports.asTid = exports.asNsid = exports.asAtUri = exports.asDid = exports.assertHandle = exports.assertCidString = exports.assertDatetime = exports.assertRecordKey = exports.assertTid = exports.assertNsid = exports.assertAtIdentifier = exports.assertAtUri = exports.assertDid = void 0;
|
|
4
|
+
exports.assertUri = assertUri;
|
|
5
|
+
exports.assertLanguage = assertLanguage;
|
|
4
6
|
exports.assertStringFormat = assertStringFormat;
|
|
5
7
|
const lex_data_1 = require("@atproto/lex-data");
|
|
6
8
|
const syntax_1 = require("@atproto/syntax");
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
'nsid',
|
|
15
|
-
'cid',
|
|
16
|
-
'language',
|
|
17
|
-
'tid',
|
|
18
|
-
'record-key',
|
|
19
|
-
]);
|
|
20
|
-
// Re-export utility typed as assertion functions so that TypeScript can
|
|
21
|
-
// infer the narrowed type after calling them.
|
|
9
|
+
/*@__NO_SIDE_EFFECTS__*/
|
|
10
|
+
function createCastFunction(assertFn) {
|
|
11
|
+
return (input) => {
|
|
12
|
+
assertFn(input);
|
|
13
|
+
return input;
|
|
14
|
+
};
|
|
15
|
+
}
|
|
22
16
|
exports.assertDid = syntax_1.ensureValidDid;
|
|
23
17
|
exports.assertAtUri = syntax_1.ensureValidAtUri;
|
|
18
|
+
exports.assertAtIdentifier = syntax_1.ensureValidAtIdentifier;
|
|
24
19
|
exports.assertNsid = syntax_1.ensureValidNsid;
|
|
25
20
|
exports.assertTid = syntax_1.ensureValidTid;
|
|
26
21
|
exports.assertRecordKey = syntax_1.ensureValidRecordKey;
|
|
27
22
|
exports.assertDatetime = syntax_1.ensureValidDatetime;
|
|
28
23
|
exports.assertCidString = lex_data_1.ensureValidCidString;
|
|
29
24
|
exports.assertHandle = syntax_1.ensureValidHandle;
|
|
30
|
-
|
|
31
|
-
|
|
25
|
+
/*@__NO_SIDE_EFFECTS__*/
|
|
26
|
+
function assertUri(input) {
|
|
32
27
|
if (!/^\w+:(?:\/\/)?[^\s/][^\s]*$/.test(input)) {
|
|
33
28
|
throw new Error('Invalid URI');
|
|
34
29
|
}
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
|
|
30
|
+
}
|
|
31
|
+
/*@__NO_SIDE_EFFECTS__*/
|
|
32
|
+
function assertLanguage(input) {
|
|
38
33
|
if (!(0, lex_data_1.isLanguage)(input)) {
|
|
39
34
|
throw new Error('Invalid BCP 47 string');
|
|
40
35
|
}
|
|
41
|
-
}
|
|
42
|
-
exports.
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
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);
|
|
49
|
+
exports.asCidString =
|
|
50
|
+
/*#__PURE__*/ createCastFunction(lex_data_1.ensureValidCidString);
|
|
51
|
+
exports.asHandle =
|
|
52
|
+
/*#__PURE__*/ createCastFunction(syntax_1.ensureValidHandle);
|
|
53
|
+
exports.asUri =
|
|
54
|
+
/*#__PURE__*/ createCastFunction(assertUri);
|
|
55
|
+
exports.asLanguage =
|
|
56
|
+
/*#__PURE__*/ createCastFunction(assertLanguage);
|
|
57
|
+
exports.asAtIdentifier =
|
|
58
|
+
/*#__PURE__*/ createCastFunction(exports.assertAtIdentifier);
|
|
59
|
+
// String formatting types and utilities
|
|
60
|
+
exports.STRING_FORMATS = Object.freeze([
|
|
61
|
+
'datetime',
|
|
62
|
+
'uri',
|
|
63
|
+
'at-uri',
|
|
64
|
+
'did',
|
|
65
|
+
'handle',
|
|
66
|
+
'at-identifier',
|
|
67
|
+
'nsid',
|
|
68
|
+
'cid',
|
|
69
|
+
'language',
|
|
70
|
+
'tid',
|
|
71
|
+
'record-key',
|
|
72
|
+
]);
|
|
60
73
|
const formatters = /*#__PURE__*/ new Map([
|
|
61
74
|
['datetime', exports.assertDatetime],
|
|
62
|
-
['uri',
|
|
75
|
+
['uri', assertUri],
|
|
63
76
|
['at-uri', exports.assertAtUri],
|
|
64
77
|
['did', exports.assertDid],
|
|
65
78
|
['handle', exports.assertHandle],
|
|
66
79
|
['at-identifier', exports.assertAtIdentifier],
|
|
67
80
|
['nsid', exports.assertNsid],
|
|
68
81
|
['cid', exports.assertCidString],
|
|
69
|
-
['language',
|
|
82
|
+
['language', assertLanguage],
|
|
70
83
|
['tid', exports.assertTid],
|
|
71
84
|
['record-key', exports.assertRecordKey],
|
|
72
85
|
]);
|
|
86
|
+
/*@__NO_SIDE_EFFECTS__*/
|
|
73
87
|
function assertStringFormat(input, format) {
|
|
74
88
|
const assertFn = formatters.get(format);
|
|
75
89
|
if (assertFn)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"string-format.js","sourceRoot":"","sources":["../../src/core/string-format.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"string-format.js","sourceRoot":"","sources":["../../src/core/string-format.ts"],"names":[],"mappings":"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","sourcesContent":["import { ensureValidCidString, isLanguage } from '@atproto/lex-data'\nimport {\n AtIdentifierString,\n AtUriString,\n DatetimeString,\n DidString,\n HandleString,\n NsidString,\n RecordKeyString,\n TidString,\n ensureValidAtIdentifier,\n ensureValidAtUri,\n ensureValidDatetime,\n ensureValidDid,\n ensureValidHandle,\n ensureValidNsid,\n ensureValidRecordKey,\n ensureValidTid,\n} from '@atproto/syntax'\n\ntype AssertFn<T> = <I extends string>(input: I) => asserts input is I & T\ntype CastFn<T> = <I extends string>(input: I) => I & T\n\n/*@__NO_SIDE_EFFECTS__*/\nfunction createCastFunction<T>(assertFn: AssertFn<T>): CastFn<T> {\n return <I extends string>(input: I) => {\n assertFn(input)\n return input as I & T\n }\n}\n\n// Re-export utility typed as assertion functions so that TypeScript can\n// infer the narrowed type after calling them.\n\nexport type {\n AtIdentifierString,\n AtUriString,\n DatetimeString,\n DidString,\n HandleString,\n NsidString,\n RecordKeyString,\n TidString,\n}\n\nexport const assertDid: AssertFn<DidString> = ensureValidDid\nexport const assertAtUri: AssertFn<AtUriString> = ensureValidAtUri\nexport const assertAtIdentifier: AssertFn<AtIdentifierString> =\n ensureValidAtIdentifier\nexport const assertNsid: AssertFn<NsidString> = ensureValidNsid\nexport const assertTid: AssertFn<TidString> = ensureValidTid\nexport const assertRecordKey: AssertFn<RecordKeyString> = ensureValidRecordKey\nexport const assertDatetime: AssertFn<DatetimeString> = ensureValidDatetime\nexport const assertCidString: AssertFn<string> = ensureValidCidString\nexport const assertHandle: AssertFn<HandleString> = ensureValidHandle\n\n// Export utilities for formats missing from @atproto/syntax\n\nexport type CidString = string\nexport type UriString = `${string}:${string}`\nexport type LanguageString = string\n\n/*@__NO_SIDE_EFFECTS__*/\nexport function assertUri(input: string): asserts input is UriString {\n if (!/^\\w+:(?:\\/\\/)?[^\\s/][^\\s]*$/.test(input)) {\n throw new Error('Invalid URI')\n }\n}\n\n/*@__NO_SIDE_EFFECTS__*/\nexport function assertLanguage(input: string): asserts input is LanguageString {\n if (!isLanguage(input)) {\n throw new Error('Invalid BCP 47 string')\n }\n}\n\nexport const asDid: CastFn<DidString> =\n /*#__PURE__*/ createCastFunction(ensureValidDid)\nexport const asAtUri: CastFn<AtUriString> =\n /*#__PURE__*/ createCastFunction(ensureValidAtUri)\nexport const asNsid: CastFn<NsidString> =\n /*#__PURE__*/ createCastFunction(ensureValidNsid)\nexport const asTid: CastFn<TidString> =\n /*#__PURE__*/ createCastFunction(ensureValidTid)\nexport const asRecordKey: CastFn<RecordKeyString> =\n /*#__PURE__*/ createCastFunction(ensureValidRecordKey)\nexport const asDatetime: CastFn<DatetimeString> =\n /*#__PURE__*/ createCastFunction(ensureValidDatetime)\nexport const asCidString: CastFn<string> =\n /*#__PURE__*/ createCastFunction(ensureValidCidString)\nexport const asHandle: CastFn<HandleString> =\n /*#__PURE__*/ createCastFunction(ensureValidHandle)\nexport const asUri: CastFn<UriString> =\n /*#__PURE__*/ createCastFunction(assertUri)\nexport const asLanguage: CastFn<LanguageString> =\n /*#__PURE__*/ createCastFunction(assertLanguage)\nexport const asAtIdentifier: CastFn<AtIdentifierString> =\n /*#__PURE__*/ createCastFunction(assertAtIdentifier)\n\n// String formatting types and utilities\n\nexport const STRING_FORMATS = Object.freeze([\n 'datetime',\n 'uri',\n 'at-uri',\n 'did',\n 'handle',\n 'at-identifier',\n 'nsid',\n 'cid',\n 'language',\n 'tid',\n 'record-key',\n] as const)\n\nexport type StringFormat = (typeof STRING_FORMATS)[number]\n\nexport type InferStringFormat<F> =\n //\n F extends 'datetime'\n ? DatetimeString\n : F extends 'uri'\n ? UriString\n : F extends 'at-uri'\n ? AtUriString\n : F extends 'did'\n ? DidString\n : F extends 'handle'\n ? HandleString\n : F extends 'at-identifier'\n ? AtIdentifierString\n : F extends 'nsid'\n ? NsidString\n : // LanguageString | CidString | TidString | RecordKeyString\n string\n\nconst formatters = /*#__PURE__*/ new Map<StringFormat, (str: string) => void>([\n ['datetime', assertDatetime],\n ['uri', assertUri],\n ['at-uri', assertAtUri],\n ['did', assertDid],\n ['handle', assertHandle],\n ['at-identifier', assertAtIdentifier],\n ['nsid', assertNsid],\n ['cid', assertCidString],\n ['language', assertLanguage],\n ['tid', assertTid],\n ['record-key', assertRecordKey],\n] as const)\n\n/*@__NO_SIDE_EFFECTS__*/\nexport function assertStringFormat<F extends StringFormat>(\n input: string,\n format: F,\n): asserts input is InferStringFormat<F> {\n const assertFn = formatters.get(format)\n if (assertFn) assertFn(input)\n // Fool-proof\n else throw new Error(`Unknown string format: ${format}`)\n}\n"]}
|
package/dist/core/types.d.ts
CHANGED
|
@@ -6,7 +6,6 @@ export type UnknownString = string & NonNullable<unknown>;
|
|
|
6
6
|
export type Simplify<T> = {
|
|
7
7
|
[K in keyof T]: T[K];
|
|
8
8
|
} & NonNullable<unknown>;
|
|
9
|
-
export type ArrayContaining<T, Items = unknown> = readonly [T, ...Items[]] | readonly [...Items[], T];
|
|
10
9
|
declare const __restricted: unique symbol;
|
|
11
10
|
/**
|
|
12
11
|
* A type that represents a value that cannot be used, with a custom
|
|
@@ -15,5 +14,14 @@ declare const __restricted: unique symbol;
|
|
|
15
14
|
export type Restricted<Message extends string> = typeof __restricted & {
|
|
16
15
|
[__restricted]: Message;
|
|
17
16
|
};
|
|
17
|
+
/**
|
|
18
|
+
* Converts all properties of `P` that are optional (i.e. may be `undefined`)
|
|
19
|
+
* into actual optional properties on the resulting type.
|
|
20
|
+
*/
|
|
21
|
+
export type WithOptionalProperties<P> = Simplify<{
|
|
22
|
+
-readonly [K in keyof P as undefined extends P[K] ? never : K]-?: P[K];
|
|
23
|
+
} & {
|
|
24
|
+
-readonly [K in keyof P as undefined extends P[K] ? K : never]?: P[K];
|
|
25
|
+
}>;
|
|
18
26
|
export {};
|
|
19
27
|
//# sourceMappingURL=types.d.ts.map
|
package/dist/core/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/core/types.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,MAAM,aAAa,GAAG,MAAM,GAAG,WAAW,CAAC,OAAO,CAAC,CAAA;AAEzD,MAAM,MAAM,QAAQ,CAAC,CAAC,IAAI;KAAG,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;CAAE,GAAG,WAAW,CAAC,OAAO,CAAC,CAAA;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/core/types.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,MAAM,aAAa,GAAG,MAAM,GAAG,WAAW,CAAC,OAAO,CAAC,CAAA;AAEzD,MAAM,MAAM,QAAQ,CAAC,CAAC,IAAI;KAAG,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;CAAE,GAAG,WAAW,CAAC,OAAO,CAAC,CAAA;AAEzE,OAAO,CAAC,MAAM,YAAY,EAAE,OAAO,MAAM,CAAA;AACzC;;;GAGG;AACH,MAAM,MAAM,UAAU,CAAC,OAAO,SAAS,MAAM,IAAI,OAAO,YAAY,GAAG;IACrE,CAAC,YAAY,CAAC,EAAE,OAAO,CAAA;CACxB,CAAA;AAED;;;GAGG;AACH,MAAM,MAAM,sBAAsB,CAAC,CAAC,IAAI,QAAQ,CAC9C;IACE,CAAC,UAAU,CAAC,IAAI,MAAM,CAAC,IAAI,SAAS,SAAS,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;CACvE,GAAG;IACF,CAAC,UAAU,CAAC,IAAI,MAAM,CAAC,IAAI,SAAS,SAAS,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;CACtE,CACF,CAAA"}
|
package/dist/core/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/core/types.ts"],"names":[],"mappings":"","sourcesContent":["/**\n * Same as {@link string} but prevents TypeScript allowing union types to\n * be widened to `string` in IDEs.\n */\nexport type UnknownString = string & NonNullable<unknown>\n\nexport type Simplify<T> = { [K in keyof T]: T[K] } & NonNullable<unknown>\n\
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/core/types.ts"],"names":[],"mappings":"","sourcesContent":["/**\n * Same as {@link string} but prevents TypeScript allowing union types to\n * be widened to `string` in IDEs.\n */\nexport type UnknownString = string & NonNullable<unknown>\n\nexport type Simplify<T> = { [K in keyof T]: T[K] } & NonNullable<unknown>\n\ndeclare const __restricted: unique symbol\n/**\n * A type that represents a value that cannot be used, with a custom\n * message explaining the restriction.\n */\nexport type Restricted<Message extends string> = typeof __restricted & {\n [__restricted]: Message\n}\n\n/**\n * Converts all properties of `P` that are optional (i.e. may be `undefined`)\n * into actual optional properties on the resulting type.\n */\nexport type WithOptionalProperties<P> = Simplify<\n {\n -readonly [K in keyof P as undefined extends P[K] ? never : K]-?: P[K]\n } & {\n -readonly [K in keyof P as undefined extends P[K] ? K : never]?: P[K]\n }\n>\n"]}
|