@atproto/lex-schema 0.0.4 → 0.0.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (109) hide show
  1. package/CHANGELOG.md +37 -0
  2. package/dist/core/$type.d.ts +7 -0
  3. package/dist/core/$type.d.ts.map +1 -1
  4. package/dist/core/$type.js.map +1 -1
  5. package/dist/core/result.d.ts +7 -6
  6. package/dist/core/result.d.ts.map +1 -1
  7. package/dist/core/result.js +9 -8
  8. package/dist/core/result.js.map +1 -1
  9. package/dist/core/string-format.d.ts +37 -26
  10. package/dist/core/string-format.d.ts.map +1 -1
  11. package/dist/core/string-format.js +66 -59
  12. package/dist/core/string-format.js.map +1 -1
  13. package/dist/core/types.d.ts +3 -0
  14. package/dist/core/types.d.ts.map +1 -1
  15. package/dist/core/types.js.map +1 -1
  16. package/dist/external.d.ts +7 -6
  17. package/dist/external.d.ts.map +1 -1
  18. package/dist/external.js +1 -0
  19. package/dist/external.js.map +1 -1
  20. package/dist/helpers.d.ts +36 -0
  21. package/dist/helpers.d.ts.map +1 -0
  22. package/dist/helpers.js +3 -0
  23. package/dist/helpers.js.map +1 -0
  24. package/dist/schema/blob.d.ts +1 -0
  25. package/dist/schema/blob.d.ts.map +1 -1
  26. package/dist/schema/blob.js +32 -18
  27. package/dist/schema/blob.js.map +1 -1
  28. package/dist/schema/custom.js +1 -1
  29. package/dist/schema/custom.js.map +1 -1
  30. package/dist/schema/integer.js +1 -1
  31. package/dist/schema/integer.js.map +1 -1
  32. package/dist/schema/params.d.ts +0 -1
  33. package/dist/schema/params.d.ts.map +1 -1
  34. package/dist/schema/params.js.map +1 -1
  35. package/dist/schema/payload.d.ts +17 -15
  36. package/dist/schema/payload.d.ts.map +1 -1
  37. package/dist/schema/payload.js +28 -0
  38. package/dist/schema/payload.js.map +1 -1
  39. package/dist/schema/procedure.d.ts +3 -6
  40. package/dist/schema/procedure.d.ts.map +1 -1
  41. package/dist/schema/procedure.js +1 -0
  42. package/dist/schema/procedure.js.map +1 -1
  43. package/dist/schema/query.d.ts +3 -5
  44. package/dist/schema/query.d.ts.map +1 -1
  45. package/dist/schema/query.js +1 -0
  46. package/dist/schema/query.js.map +1 -1
  47. package/dist/schema/record.d.ts +13 -12
  48. package/dist/schema/record.d.ts.map +1 -1
  49. package/dist/schema/record.js.map +1 -1
  50. package/dist/schema/refine.js +1 -1
  51. package/dist/schema/refine.js.map +1 -1
  52. package/dist/schema/subscription.d.ts +4 -7
  53. package/dist/schema/subscription.d.ts.map +1 -1
  54. package/dist/schema/subscription.js.map +1 -1
  55. package/dist/schema/typed-object.d.ts +7 -6
  56. package/dist/schema/typed-object.d.ts.map +1 -1
  57. package/dist/schema/typed-object.js.map +1 -1
  58. package/dist/schema/union.d.ts.map +1 -1
  59. package/dist/schema/union.js +1 -4
  60. package/dist/schema/union.js.map +1 -1
  61. package/dist/util/assertion-util.d.ts +8 -0
  62. package/dist/util/assertion-util.d.ts.map +1 -0
  63. package/dist/util/assertion-util.js +31 -0
  64. package/dist/util/assertion-util.js.map +1 -0
  65. package/dist/validation/schema.d.ts +21 -2
  66. package/dist/validation/schema.d.ts.map +1 -1
  67. package/dist/validation/schema.js +25 -2
  68. package/dist/validation/schema.js.map +1 -1
  69. package/dist/validation/validation-error.d.ts.map +1 -1
  70. package/dist/validation/validation-error.js +3 -3
  71. package/dist/validation/validation-error.js.map +1 -1
  72. package/dist/validation/validation-issue.js +10 -2
  73. package/dist/validation/validation-issue.js.map +1 -1
  74. package/dist/validation/validator.d.ts +4 -3
  75. package/dist/validation/validator.d.ts.map +1 -1
  76. package/dist/validation/validator.js +13 -10
  77. package/dist/validation/validator.js.map +1 -1
  78. package/package.json +2 -2
  79. package/src/core/$type.ts +4 -0
  80. package/src/core/result.ts +9 -8
  81. package/src/core/string-format.ts +88 -68
  82. package/src/core/types.ts +4 -0
  83. package/src/external.ts +9 -8
  84. package/src/helpers.test.ts +486 -0
  85. package/src/helpers.ts +61 -0
  86. package/src/schema/blob.test.ts +2 -4
  87. package/src/schema/blob.ts +31 -23
  88. package/src/schema/custom.test.ts +5 -5
  89. package/src/schema/custom.ts +1 -1
  90. package/src/schema/integer.ts +1 -1
  91. package/src/schema/params.ts +0 -7
  92. package/src/schema/payload.ts +67 -34
  93. package/src/schema/permission-set.test.ts +36 -36
  94. package/src/schema/procedure.test.ts +1 -62
  95. package/src/schema/procedure.ts +8 -20
  96. package/src/schema/query.test.ts +22 -69
  97. package/src/schema/query.ts +7 -14
  98. package/src/schema/record.ts +8 -4
  99. package/src/schema/refine.ts +1 -1
  100. package/src/schema/subscription.test.ts +30 -93
  101. package/src/schema/subscription.ts +11 -24
  102. package/src/schema/typed-object.ts +7 -3
  103. package/src/schema/union.ts +1 -4
  104. package/src/util/assertion-util.ts +40 -0
  105. package/src/validation/schema.ts +29 -4
  106. package/src/validation/validation-error.ts +4 -4
  107. package/src/validation/validation-issue.ts +12 -2
  108. package/src/validation/validator.ts +16 -12
  109. package/tsconfig.tests.json +1 -1
package/CHANGELOG.md CHANGED
@@ -1,5 +1,42 @@
1
1
  # @atproto/lex-schema
2
2
 
3
+ ## 0.0.5
4
+
5
+ ### Patch Changes
6
+
7
+ - [#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.
8
+
9
+ - [#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
10
+
11
+ - [#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`
12
+
13
+ - [#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.
14
+
15
+ - [#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`
16
+
17
+ - [#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.)
18
+
19
+ - [#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
20
+
21
+ - [#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`
22
+
23
+ - [#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.
24
+
25
+ - [#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
26
+
27
+ - [#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
28
+
29
+ - [#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`
30
+
31
+ - [#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.
32
+
33
+ - [#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.)
34
+
35
+ - [#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`
36
+
37
+ - 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)]:
38
+ - @atproto/lex-data@0.0.4
39
+
3
40
  ## 0.0.4
4
41
 
5
42
  ### Patch Changes
@@ -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
@@ -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;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"}
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"}
@@ -1 +1 @@
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
+ {"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"]}
@@ -4,12 +4,12 @@ export type ResultSuccess<V = any> = {
4
4
  };
5
5
  export type ResultFailure<E = Error> = {
6
6
  success: false;
7
- error: E;
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>(error: E): ResultFailure<E>;
12
- export declare function failureError<T>(result: ResultFailure<T>): T;
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<ResultSuccess<string>>
22
+ * declare function someFunction(): Promise<string>
23
23
  *
24
- * const result = await someFunction().catch(catchall)
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<ResultSuccess<string>>
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,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"}
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"}
@@ -2,7 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.success = success;
4
4
  exports.failure = failure;
5
- exports.failureError = failureError;
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(error) {
15
- return { success: false, error };
14
+ function failure(reason) {
15
+ return { success: false, reason };
16
16
  }
17
17
  /*@__NO_SIDE_EFFECTS__*/
18
- function failureError(result) {
19
- return result.error;
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<ResultSuccess<string>>
33
+ * declare function someFunction(): Promise<string>
34
34
  *
35
- * const result = await someFunction().catch(catchall)
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<ResultSuccess<string>>
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
  *
@@ -1 +1 @@
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
+ {"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,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
- type AssertFn<T> = <I extends string>(input: I) => asserts input is I & T;
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 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>;
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":"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"}
1
+ {"version":3,"file":"string-format.d.ts","sourceRoot":"","sources":["../../src/core/string-format.ts"],"names":[],"mappings":"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"}
@@ -1,61 +1,68 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
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;
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 createCastFunction(assertFn) {
11
- return (input) => {
12
- assertFn(input);
13
- return input;
14
- };
11
+ function isUriString(input) {
12
+ return /^\w+:(?:\/\/)?[^\s/][^\s]*$/.test(input);
15
13
  }
16
- exports.assertDid = syntax_1.ensureValidDid;
17
- exports.assertAtUri = syntax_1.ensureValidAtUri;
18
- exports.assertAtIdentifier = syntax_1.ensureValidAtIdentifier;
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.assertHandle = syntax_1.ensureValidHandle;
25
- /*@__NO_SIDE_EFFECTS__*/
26
- function assertUri(input) {
27
- if (!/^\w+:(?:\/\/)?[^\s/][^\s]*$/.test(input)) {
28
- throw new Error('Invalid URI');
29
- }
30
- }
31
- /*@__NO_SIDE_EFFECTS__*/
32
- function assertLanguage(input) {
33
- if (!(0, lex_data_1.isLanguage)(input)) {
34
- throw new Error('Invalid BCP 47 string');
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.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);
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
- ['datetime', exports.assertDatetime],
75
- ['uri', assertUri],
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
- ['language', assertLanguage],
83
- ['tid', exports.assertTid],
84
- ['record-key', exports.assertRecordKey],
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) {
@@ -1 +1 @@
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"]}
1
+ {"version":3,"file":"string-format.js","sourceRoot":"","sources":["../../src/core/string-format.ts"],"names":[],"mappings":"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","sourcesContent":["import { ensureValidCidString, isLanguageString } 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'\nimport {\n AssertFn,\n CastFn,\n CheckFn,\n createAssertFunction,\n createCastFunction,\n createCheckFunction,\n} from '../util/assertion-util.js'\n\n// Format utilities missing from @atproto/syntax\nexport type CidString = string\nexport type LanguageString = string\nexport type UriString = `${string}:${string}`\n\n/*@__NO_SIDE_EFFECTS__*/\nexport function isUriString<T extends string>(\n input: T,\n): input is T & UriString {\n return /^\\w+:(?:\\/\\/)?[^\\s/][^\\s]*$/.test(input)\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} from '@atproto/syntax'\n\n// Export utilities for formats missing from @atproto/syntax\n\nexport const assertAtIdentifierString: AssertFn<AtIdentifierString> =\n ensureValidAtIdentifier\nexport const assertAtUriString: AssertFn<AtUriString> = ensureValidAtUri\nexport const assertCidString: AssertFn<CidString> = ensureValidCidString\nexport const assertDatetimeString: AssertFn<DatetimeString> =\n ensureValidDatetime\nexport const assertDidString: AssertFn<DidString> = ensureValidDid\nexport const assertHandleString: AssertFn<HandleString> = ensureValidHandle\nexport const assertLanguageString: AssertFn<LanguageString> =\n createAssertFunction<LanguageString>(\n isLanguageString,\n 'Invalid BCP 47 string',\n )\nexport const assertNsidString: AssertFn<NsidString> = ensureValidNsid\nexport const assertRecordKeyString: AssertFn<RecordKeyString> =\n ensureValidRecordKey\nexport const assertTidString: AssertFn<TidString> = ensureValidTid\nexport const assertUriString: AssertFn<UriString> =\n createAssertFunction<UriString>(isUriString, 'Invalid URI')\n\nexport const asAtIdentifierString: CastFn<AtIdentifierString> =\n /*#__PURE__*/ createCastFunction(assertAtIdentifierString)\nexport const asAtUriString: CastFn<AtUriString> =\n /*#__PURE__*/ createCastFunction(ensureValidAtUri)\nexport const asCidString: CastFn<CidString> =\n /*#__PURE__*/ createCastFunction(ensureValidCidString)\nexport const asDatetimeString: CastFn<DatetimeString> =\n /*#__PURE__*/ createCastFunction(ensureValidDatetime)\nexport const asDidString: CastFn<DidString> =\n /*#__PURE__*/ createCastFunction(ensureValidDid)\nexport const asHandleString: CastFn<HandleString> =\n /*#__PURE__*/ createCastFunction(ensureValidHandle)\nexport const asLanguageString: CastFn<LanguageString> =\n /*#__PURE__*/ createCastFunction(assertLanguageString)\nexport const asNsidString: CastFn<NsidString> =\n /*#__PURE__*/ createCastFunction(ensureValidNsid)\nexport const asRecordKeyString: CastFn<RecordKeyString> =\n /*#__PURE__*/ createCastFunction(ensureValidRecordKey)\nexport const asTidString: CastFn<TidString> =\n /*#__PURE__*/ createCastFunction(ensureValidTid)\nexport const asUriString: CastFn<UriString> =\n /*#__PURE__*/ createCastFunction(assertUriString)\n\nexport { isLanguageString }\nexport const isAtIdentifierString: CheckFn<AtIdentifierString> =\n /*#__PURE__*/ createCheckFunction(assertAtIdentifierString)\nexport const isAtUriString: CheckFn<AtUriString> =\n /*#__PURE__*/ createCheckFunction(assertAtIdentifierString)\nexport const isCidString: CheckFn<CidString> =\n /*#__PURE__*/ createCheckFunction(assertCidString)\nexport const isDatetimeString: CheckFn<DatetimeString> =\n /*#__PURE__*/ createCheckFunction(assertDatetimeString)\nexport const isDidString: CheckFn<DidString> =\n /*#__PURE__*/ createCheckFunction(assertDidString)\nexport const isHandleString: CheckFn<HandleString> =\n /*#__PURE__*/ createCheckFunction(assertHandleString)\nexport const isNsidString: CheckFn<NsidString> =\n /*#__PURE__*/ createCheckFunction(assertNsidString)\nexport const isRecordKeyString: CheckFn<RecordKeyString> =\n /*#__PURE__*/ createCheckFunction(assertRecordKeyString)\nexport const isTidString: CheckFn<TidString> =\n /*#__PURE__*/ createCheckFunction(assertTidString)\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 ['at-identifier', assertAtIdentifierString],\n ['at-uri', assertAtUriString],\n ['cid', assertCidString],\n ['datetime', assertDatetimeString],\n ['did', assertDidString],\n ['handle', assertHandleString],\n ['language', assertLanguageString],\n ['nsid', assertNsidString],\n ['record-key', assertRecordKeyString],\n ['tid', assertTidString],\n ['uri', assertUriString],\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"]}
@@ -23,5 +23,8 @@ export type WithOptionalProperties<P> = Simplify<{
23
23
  } & {
24
24
  -readonly [K in keyof P as undefined extends P[K] ? K : never]?: P[K];
25
25
  }>;
26
+ export type OmitKey<T, K extends keyof T> = {
27
+ [K2 in keyof T as K2 extends K ? never : K2]: T[K2];
28
+ };
26
29
  export {};
27
30
  //# sourceMappingURL=types.d.ts.map
@@ -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;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"}
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;AAED,MAAM,MAAM,OAAO,CAAC,CAAC,EAAE,CAAC,SAAS,MAAM,CAAC,IAAI;KACzC,EAAE,IAAI,MAAM,CAAC,IAAI,EAAE,SAAS,CAAC,GAAG,KAAK,GAAG,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC;CACpD,CAAA"}
@@ -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\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"]}
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\nexport type OmitKey<T, K extends keyof T> = {\n [K2 in keyof T as K2 extends K ? never : K2]: T[K2]\n}\n"]}
@@ -1,7 +1,8 @@
1
1
  import { $Type, $TypeOf, LexiconRecordKey, NsidString } from './core.js';
2
- import { ArraySchema, ArraySchemaOptions, BlobSchema, BlobSchemaOptions, BooleanSchema, BooleanSchemaOptions, BytesSchema, BytesSchemaOptions, CidSchema, CidSchemaOptions, CustomAssertion, CustomSchema, DictSchema, DiscriminatedUnionSchema, DiscriminatedUnionVariants, EnumSchema, EnumSchemaOptions, IntegerSchema, IntegerSchemaOptions, IntersectionSchema, LiteralSchema, LiteralSchemaOptions, NeverSchema, NullSchema, NullableSchema, ObjectSchema, ObjectSchemaShape, OptionalSchema, ParamsSchema, ParamsSchemaShape, Payload, PayloadBody, Permission, PermissionOptions, PermissionSet, PermissionSetOptions, Procedure, Query, RecordSchema, RefSchema, RefSchemaGetter, RegexpSchema, StringSchema, StringSchemaOptions, Subscription, TokenSchema, TypedObjectSchema, TypedRefGetter, TypedRefSchema, TypedUnionSchema, UnionSchema, UnionSchemaValidators, UnknownObjectOutput, UnknownObjectSchema, UnknownSchema, refine } from './schema.js';
3
- import { Infer, PropertyKey, Validator } from './validation.js';
2
+ import { ArraySchema, ArraySchemaOptions, BlobSchema, BlobSchemaOptions, BooleanSchema, BooleanSchemaOptions, BytesSchema, BytesSchemaOptions, CidSchema, CidSchemaOptions, CustomAssertion, CustomSchema, DictSchema, DiscriminatedUnionSchema, DiscriminatedUnionVariants, EnumSchema, EnumSchemaOptions, IntegerSchema, IntegerSchemaOptions, IntersectionSchema, LiteralSchema, LiteralSchemaOptions, NeverSchema, NullSchema, NullableSchema, ObjectSchema, ObjectSchemaShape, OptionalSchema, ParamsSchema, ParamsSchemaShape, Payload, PayloadSchema, Permission, PermissionOptions, PermissionSet, PermissionSetOptions, Procedure, Query, RecordSchema, RefSchema, RefSchemaGetter, RegexpSchema, StringSchema, StringSchemaOptions, Subscription, TokenSchema, TypedObjectSchema, TypedRefGetter, TypedRefSchema, TypedUnionSchema, UnionSchema, UnionSchemaValidators, UnknownObjectOutput, UnknownObjectSchema, UnknownSchema, refine } from './schema.js';
3
+ import { Infer, PropertyKey, Schema, Validator } from './validation.js';
4
4
  export * from './core.js';
5
+ export * from './helpers.js';
5
6
  export * from './schema.js';
6
7
  export * from './validation.js';
7
8
  export declare function never(): NeverSchema;
@@ -49,7 +50,7 @@ export declare function typedUnion<const R extends readonly TypedRefSchema[], co
49
50
  * schemas that work even if they contain circular references.
50
51
  */
51
52
  export declare function typedObject<const N extends NsidString, const H extends string, const S extends Validator<{
52
- [_ in string]?: unknown;
53
+ [k: string]: unknown;
53
54
  }>>(nsid: N, hash: H, schema: S): TypedObjectSchema<$Type<N, H>, S>;
54
55
  export declare function typedObject<V extends {
55
56
  $type?: $Type;
@@ -74,16 +75,16 @@ type AsNsid<T> = T extends `${string}#${string}` ? never : T;
74
75
  * schemas that work even if they contain circular references.
75
76
  */
76
77
  export declare function record<const K extends LexiconRecordKey, const T extends NsidString, const S extends Validator<{
77
- [_ in string]?: unknown;
78
+ [k: string]: unknown;
78
79
  }>>(key: K, type: AsNsid<T>, schema: S): RecordSchema<K, T, S>;
79
80
  export declare function record<const K extends LexiconRecordKey, const V extends {
80
81
  $type: NsidString;
81
82
  }>(key: K, type: AsNsid<V['$type']>, schema: Validator<Omit<V, '$type'>>): RecordSchema<K, V['$type'], Validator<Omit<V, '$type'>>>;
82
83
  export declare function params<const P extends ParamsSchemaShape = NonNullable<unknown>>(properties?: P): ParamsSchema<P>;
83
- export declare function payload<const E extends string | undefined = undefined, const S extends PayloadBody<E> = undefined>(encoding?: E, schema?: S): Payload<E, S>;
84
+ export declare function payload<const E extends string | undefined = undefined, const S extends PayloadSchema<E> = undefined>(encoding?: E, schema?: S): Payload<E, S>;
84
85
  export declare function query<const N extends NsidString, const P extends ParamsSchema, const O extends Payload, const E extends undefined | readonly string[] = undefined>(nsid: N, parameters: P, output: O, errors?: E): Query<N, P, O, E>;
85
86
  export declare function procedure<const N extends NsidString, const P extends ParamsSchema, const I extends Payload, const O extends Payload, const E extends undefined | readonly string[] = undefined>(nsid: N, parameters: P, input: I, output: O, errors?: E): Procedure<N, P, I, O, E>;
86
- export declare function subscription<const N extends NsidString, const P extends ParamsSchema, const M extends undefined | RefSchema | TypedUnionSchema | ObjectSchema, const E extends undefined | readonly string[] = undefined>(nsid: N, parameters: P, message: M, errors?: E): Subscription<N, P, M, E>;
87
+ export declare function subscription<const N extends NsidString, const P extends ParamsSchema, const M extends Schema, const E extends undefined | readonly string[] = undefined>(nsid: N, parameters: P, message: M, errors?: E): Subscription<N, P, M, E>;
87
88
  export declare function permission<const R extends string, const O extends PermissionOptions>(resource: R, options?: PermissionOptions & O): Permission<R, O>;
88
89
  export declare function permissionSet<const N extends NsidString, const P extends readonly Permission[]>(nsid: N, permissions: P, options?: PermissionSetOptions): PermissionSet<N, P>;
89
90
  //# sourceMappingURL=external.d.ts.map