effect 3.12.4 → 3.12.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (131) hide show
  1. package/dist/cjs/Arbitrary.js +72 -14
  2. package/dist/cjs/Arbitrary.js.map +1 -1
  3. package/dist/cjs/Array.js +11 -9
  4. package/dist/cjs/Array.js.map +1 -1
  5. package/dist/cjs/Cause.js +26 -2
  6. package/dist/cjs/Cause.js.map +1 -1
  7. package/dist/cjs/Cron.js +55 -23
  8. package/dist/cjs/Cron.js.map +1 -1
  9. package/dist/cjs/Duration.js.map +1 -1
  10. package/dist/cjs/Effect.js +32 -23
  11. package/dist/cjs/Effect.js.map +1 -1
  12. package/dist/cjs/FiberHandle.js +8 -8
  13. package/dist/cjs/FiberMap.js +8 -8
  14. package/dist/cjs/FiberSet.js +8 -8
  15. package/dist/cjs/Inspectable.js +0 -4
  16. package/dist/cjs/Inspectable.js.map +1 -1
  17. package/dist/cjs/LogLevel.js +30 -2
  18. package/dist/cjs/LogLevel.js.map +1 -1
  19. package/dist/cjs/ParseResult.js +38 -18
  20. package/dist/cjs/ParseResult.js.map +1 -1
  21. package/dist/cjs/Schema.js +192 -118
  22. package/dist/cjs/Schema.js.map +1 -1
  23. package/dist/cjs/internal/cause.js.map +1 -1
  24. package/dist/cjs/internal/core-effect.js +6 -5
  25. package/dist/cjs/internal/core-effect.js.map +1 -1
  26. package/dist/cjs/internal/core.js +6 -5
  27. package/dist/cjs/internal/core.js.map +1 -1
  28. package/dist/cjs/internal/dateTime.js +12 -3
  29. package/dist/cjs/internal/dateTime.js.map +1 -1
  30. package/dist/cjs/internal/effect/circular.js +15 -2
  31. package/dist/cjs/internal/effect/circular.js.map +1 -1
  32. package/dist/cjs/internal/fiberRuntime.js.map +1 -1
  33. package/dist/cjs/internal/groupBy.js +7 -7
  34. package/dist/cjs/internal/groupBy.js.map +1 -1
  35. package/dist/cjs/internal/rateLimiter.js +8 -7
  36. package/dist/cjs/internal/rateLimiter.js.map +1 -1
  37. package/dist/cjs/internal/runtime.js +7 -11
  38. package/dist/cjs/internal/runtime.js.map +1 -1
  39. package/dist/cjs/internal/stream.js +5 -5
  40. package/dist/cjs/internal/stream.js.map +1 -1
  41. package/dist/cjs/internal/version.js +1 -1
  42. package/dist/dts/Arbitrary.d.ts.map +1 -1
  43. package/dist/dts/Array.d.ts +62 -16
  44. package/dist/dts/Array.d.ts.map +1 -1
  45. package/dist/dts/Cause.d.ts +27 -3
  46. package/dist/dts/Cause.d.ts.map +1 -1
  47. package/dist/dts/Cron.d.ts +10 -3
  48. package/dist/dts/Cron.d.ts.map +1 -1
  49. package/dist/dts/Duration.d.ts +5 -5
  50. package/dist/dts/Duration.d.ts.map +1 -1
  51. package/dist/dts/Effect.d.ts +31 -22
  52. package/dist/dts/Effect.d.ts.map +1 -1
  53. package/dist/dts/FiberHandle.d.ts +8 -8
  54. package/dist/dts/FiberMap.d.ts +8 -8
  55. package/dist/dts/FiberSet.d.ts +8 -8
  56. package/dist/dts/Inspectable.d.ts.map +1 -1
  57. package/dist/dts/LogLevel.d.ts +90 -6
  58. package/dist/dts/LogLevel.d.ts.map +1 -1
  59. package/dist/dts/ParseResult.d.ts +11 -0
  60. package/dist/dts/ParseResult.d.ts.map +1 -1
  61. package/dist/dts/Schema.d.ts +53 -33
  62. package/dist/dts/Schema.d.ts.map +1 -1
  63. package/dist/dts/internal/core-effect.d.ts.map +1 -1
  64. package/dist/dts/internal/core.d.ts.map +1 -1
  65. package/dist/dts/internal/stream.d.ts.map +1 -1
  66. package/dist/esm/Arbitrary.js +72 -14
  67. package/dist/esm/Arbitrary.js.map +1 -1
  68. package/dist/esm/Array.js +11 -9
  69. package/dist/esm/Array.js.map +1 -1
  70. package/dist/esm/Cause.js +26 -2
  71. package/dist/esm/Cause.js.map +1 -1
  72. package/dist/esm/Cron.js +53 -22
  73. package/dist/esm/Cron.js.map +1 -1
  74. package/dist/esm/Duration.js.map +1 -1
  75. package/dist/esm/Effect.js +32 -23
  76. package/dist/esm/Effect.js.map +1 -1
  77. package/dist/esm/FiberHandle.js +8 -8
  78. package/dist/esm/FiberMap.js +8 -8
  79. package/dist/esm/FiberSet.js +8 -8
  80. package/dist/esm/Inspectable.js +0 -3
  81. package/dist/esm/Inspectable.js.map +1 -1
  82. package/dist/esm/LogLevel.js +30 -2
  83. package/dist/esm/LogLevel.js.map +1 -1
  84. package/dist/esm/ParseResult.js +38 -18
  85. package/dist/esm/ParseResult.js.map +1 -1
  86. package/dist/esm/Schema.js +186 -110
  87. package/dist/esm/Schema.js.map +1 -1
  88. package/dist/esm/internal/cause.js.map +1 -1
  89. package/dist/esm/internal/core-effect.js +6 -5
  90. package/dist/esm/internal/core-effect.js.map +1 -1
  91. package/dist/esm/internal/core.js +6 -5
  92. package/dist/esm/internal/core.js.map +1 -1
  93. package/dist/esm/internal/dateTime.js +11 -2
  94. package/dist/esm/internal/dateTime.js.map +1 -1
  95. package/dist/esm/internal/effect/circular.js +15 -2
  96. package/dist/esm/internal/effect/circular.js.map +1 -1
  97. package/dist/esm/internal/fiberRuntime.js.map +1 -1
  98. package/dist/esm/internal/groupBy.js +7 -7
  99. package/dist/esm/internal/groupBy.js.map +1 -1
  100. package/dist/esm/internal/rateLimiter.js +8 -7
  101. package/dist/esm/internal/rateLimiter.js.map +1 -1
  102. package/dist/esm/internal/runtime.js +7 -11
  103. package/dist/esm/internal/runtime.js.map +1 -1
  104. package/dist/esm/internal/stream.js +5 -5
  105. package/dist/esm/internal/stream.js.map +1 -1
  106. package/dist/esm/internal/version.js +1 -1
  107. package/package.json +1 -1
  108. package/src/Arbitrary.ts +84 -14
  109. package/src/Array.ts +65 -19
  110. package/src/Cause.ts +27 -3
  111. package/src/Cron.ts +30 -27
  112. package/src/Duration.ts +11 -3
  113. package/src/Effect.ts +35 -23
  114. package/src/FiberHandle.ts +8 -8
  115. package/src/FiberMap.ts +8 -8
  116. package/src/FiberSet.ts +8 -8
  117. package/src/Inspectable.ts +0 -1
  118. package/src/LogLevel.ts +90 -6
  119. package/src/ParseResult.ts +52 -28
  120. package/src/Schema.ts +233 -124
  121. package/src/internal/cause.ts +1 -1
  122. package/src/internal/core-effect.ts +16 -9
  123. package/src/internal/core.ts +9 -4
  124. package/src/internal/dateTime.ts +12 -2
  125. package/src/internal/effect/circular.ts +19 -17
  126. package/src/internal/fiberRuntime.ts +2 -1
  127. package/src/internal/groupBy.ts +35 -39
  128. package/src/internal/rateLimiter.ts +8 -7
  129. package/src/internal/runtime.ts +6 -14
  130. package/src/internal/stream.ts +13 -15
  131. package/src/internal/version.ts +1 -1
@@ -3,15 +3,15 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.ListFromSelf = exports.List = exports.LessThanSchemaId = exports.LessThanOrEqualToSchemaId = exports.LessThanOrEqualToDurationSchemaId = exports.LessThanOrEqualToDateSchemaId = exports.LessThanOrEqualToBigIntSchemaId = exports.LessThanOrEqualToBigDecimalSchemaId = exports.LessThanDurationSchemaId = exports.LessThanDateSchemaId = exports.LessThanBigIntSchemaId = exports.LessThanBigDecimalSchemaId = exports.LengthSchemaId = exports.JsonNumberSchemaId = exports.JsonNumber = exports.ItemsCountSchemaId = exports.IntSchemaId = exports.Int = exports.InstanceOfSchemaId = exports.IncludesSchemaId = exports.HashSetFromSelf = exports.HashSet = exports.HashMapFromSelf = exports.HashMap = exports.GreaterThanSchemaId = exports.GreaterThanOrEqualToSchemaId = exports.GreaterThanOrEqualToDurationSchemaId = exports.GreaterThanOrEqualToDateSchemaId = exports.GreaterThanOrEqualToBigIntSchemaId = exports.GreaterThanOrEqualToBigDecimalSchemaId = exports.GreaterThanDurationSchemaId = exports.GreaterThanDateSchemaId = exports.GreaterThanBigIntSchemaId = exports.GreaterThanBigDecimalSchemaId = exports.FromPropertySignature = exports.FiniteSchemaId = exports.Finite = exports.FiberIdFromSelf = exports.FiberId = exports.ExitFromSelf = exports.Exit = exports.Enums = exports.EndsWithSchemaId = exports.EitherFromUnion = exports.EitherFromSelf = exports.Either = exports.DurationFromSelf = exports.DurationFromNanos = exports.DurationFromMillis = exports.Duration = exports.Defect = exports.DateTimeZonedFromSelf = exports.DateTimeZoned = exports.DateTimeUtcFromSelf = exports.DateTimeUtcFromNumber = exports.DateTimeUtcFromDate = exports.DateTimeUtc = exports.DateFromString = exports.DateFromSelfSchemaId = exports.DateFromSelf = exports.DateFromNumber = exports.Date = exports.DataFromSelf = exports.Data = exports.Config = exports.Class = exports.ChunkFromSelf = exports.Chunk = exports.Char = exports.CauseFromSelf = exports.Cause = exports.CapitalizedSchemaId = exports.Capitalized = exports.Capitalize = exports.BrandSchemaId = exports.BooleanFromUnknown = exports.BooleanFromString = exports.Boolean = exports.BigIntFromSelf = exports.BigIntFromNumber = exports.BigInt = exports.BigDecimalFromSelf = exports.BigDecimalFromNumber = exports.BigDecimal = exports.BetweenSchemaId = exports.BetweenDurationSchemaId = exports.BetweenDateSchemaId = exports.BetweenBigIntSchemaId = exports.BetweenBigDecimalSchemaId = exports.ArrayEnsure = exports.Array = exports.Any = void 0;
6
+ exports.ListFromSelf = exports.List = exports.LessThanSchemaId = exports.LessThanOrEqualToSchemaId = exports.LessThanOrEqualToDurationSchemaId = exports.LessThanOrEqualToDateSchemaId = exports.LessThanOrEqualToBigIntSchemaId = exports.LessThanOrEqualToBigDecimalSchemaId = exports.LessThanDurationSchemaId = exports.LessThanDateSchemaId = exports.LessThanBigIntSchemaId = exports.LessThanBigDecimalSchemaId = exports.LengthSchemaId = exports.JsonNumberSchemaId = exports.JsonNumber = exports.ItemsCountSchemaId = exports.IntSchemaId = exports.Int = exports.InstanceOfSchemaId = exports.IncludesSchemaId = exports.HashSetFromSelf = exports.HashSet = exports.HashMapFromSelf = exports.HashMap = exports.GreaterThanSchemaId = exports.GreaterThanOrEqualToSchemaId = exports.GreaterThanOrEqualToDurationSchemaId = exports.GreaterThanOrEqualToDateSchemaId = exports.GreaterThanOrEqualToBigIntSchemaId = exports.GreaterThanOrEqualToBigDecimalSchemaId = exports.GreaterThanDurationSchemaId = exports.GreaterThanDateSchemaId = exports.GreaterThanBigIntSchemaId = exports.GreaterThanBigDecimalSchemaId = exports.FromPropertySignature = exports.FiniteSchemaId = exports.Finite = exports.FiberIdFromSelf = exports.FiberId = exports.ExitFromSelf = exports.Exit = exports.Enums = exports.EndsWithSchemaId = exports.EitherFromUnion = exports.EitherFromSelf = exports.Either = exports.DurationFromSelf = exports.DurationFromNanos = exports.DurationFromMillis = exports.Duration = exports.Defect = exports.DateTimeZonedFromSelf = exports.DateTimeZoned = exports.DateTimeUtcFromSelf = exports.DateTimeUtcFromNumber = exports.DateTimeUtcFromDate = exports.DateTimeUtc = exports.DateFromString = exports.DateFromSelfSchemaId = exports.DateFromSelf = exports.DateFromNumber = exports.Date = exports.DataFromSelf = exports.Data = exports.Config = exports.Class = exports.ChunkFromSelf = exports.Chunk = exports.Char = exports.CauseFromSelf = exports.Cause = exports.CapitalizedSchemaId = exports.Capitalized = exports.Capitalize = exports.BrandSchemaId = exports.BooleanFromUnknown = exports.BooleanFromString = exports.Boolean = exports.BigIntFromSelf = exports.BigIntFromNumber = exports.BigInt = exports.BigDecimalFromSelf = exports.BigDecimalFromNumber = exports.BigDecimal = exports.BetweenSchemaId = exports.BetweenDurationSchemaId = exports.BetweenDateSchemaId = exports.BetweenBigIntSchemaId = exports.BetweenBigDecimalSchemaId = exports.ArrayFormatterIssue = exports.ArrayEnsure = exports.Array = exports.Any = void 0;
7
7
  exports.Literal = Literal;
8
- exports.MaxItemsSchemaId = exports.MapFromSelf = exports.MapFromRecord = exports.Map = exports.LowercasedSchemaId = exports.Lowercased = exports.Lowercase = void 0;
9
- exports.StringFromUriComponent = exports.StringFromHex = exports.StringFromBase64Url = exports.StringFromBase64 = exports.String = exports.StartsWithSchemaId = exports.SortedSetFromSelf = exports.SortedSet = exports.SetFromSelf = exports.Set = exports.RefineSchemaId = exports.RedactedFromSelf = exports.Redacted = exports.Record = exports.ReadonlySetFromSelf = exports.ReadonlySet = exports.ReadonlyMapFromSelf = exports.ReadonlyMapFromRecord = exports.ReadonlyMap = exports.PropertySignatureTypeId = exports.PropertySignatureTransformation = exports.PropertySignatureDeclaration = exports.PositiveBigIntFromSelf = exports.PositiveBigInt = exports.PositiveBigDecimalSchemaId = exports.PositiveBigDecimalFromSelf = exports.Positive = exports.PatternSchemaId = exports.OptionFromUndefinedOr = exports.OptionFromSelf = exports.OptionFromNullishOr = exports.OptionFromNullOr = exports.OptionFromNonEmptyTrimmedString = exports.Option = exports.Object = exports.NumberFromString = exports.Number = exports.NullishOr = exports.NullOr = exports.Null = exports.Not = exports.NonPositiveBigIntFromSelf = exports.NonPositiveBigInt = exports.NonPositiveBigDecimalSchemaId = exports.NonPositiveBigDecimalFromSelf = exports.NonPositive = exports.NonNegativeInt = exports.NonNegativeBigIntFromSelf = exports.NonNegativeBigInt = exports.NonNegativeBigDecimalSchemaId = exports.NonNegativeBigDecimalFromSelf = exports.NonNegative = exports.NonNaNSchemaId = exports.NonNaN = exports.NonEmptyTrimmedString = exports.NonEmptyString = exports.NonEmptyChunkFromSelf = exports.NonEmptyChunk = exports.NonEmptyArrayEnsure = exports.NonEmptyArray = exports.Never = exports.NegativeBigIntFromSelf = exports.NegativeBigInt = exports.NegativeBigDecimalSchemaId = exports.NegativeBigDecimalFromSelf = exports.Negative = exports.MultipleOfSchemaId = exports.MinLengthSchemaId = exports.MinItemsSchemaId = exports.MaxLengthSchemaId = void 0;
8
+ exports.MapFromSelf = exports.MapFromRecord = exports.Map = exports.LowercasedSchemaId = exports.Lowercased = exports.Lowercase = void 0;
9
+ exports.StringFromUriComponent = exports.StringFromHex = exports.StringFromBase64Url = exports.StringFromBase64 = exports.String = exports.StartsWithSchemaId = exports.SortedSetFromSelf = exports.SortedSet = exports.SetFromSelf = exports.Set = exports.RefineSchemaId = exports.RedactedFromSelf = exports.Redacted = exports.Record = exports.ReadonlySetFromSelf = exports.ReadonlySet = exports.ReadonlyMapFromSelf = exports.ReadonlyMapFromRecord = exports.ReadonlyMap = exports.PropertySignatureTypeId = exports.PropertySignatureTransformation = exports.PropertySignatureDeclaration = exports.PropertyKey = exports.PositiveBigIntFromSelf = exports.PositiveBigInt = exports.PositiveBigDecimalSchemaId = exports.PositiveBigDecimalFromSelf = exports.Positive = exports.PatternSchemaId = exports.OptionFromUndefinedOr = exports.OptionFromSelf = exports.OptionFromNullishOr = exports.OptionFromNullOr = exports.OptionFromNonEmptyTrimmedString = exports.Option = exports.Object = exports.NumberFromString = exports.Number = exports.NullishOr = exports.NullOr = exports.Null = exports.Not = exports.NonPositiveBigIntFromSelf = exports.NonPositiveBigInt = exports.NonPositiveBigDecimalSchemaId = exports.NonPositiveBigDecimalFromSelf = exports.NonPositive = exports.NonNegativeInt = exports.NonNegativeBigIntFromSelf = exports.NonNegativeBigInt = exports.NonNegativeBigDecimalSchemaId = exports.NonNegativeBigDecimalFromSelf = exports.NonNegative = exports.NonNaNSchemaId = exports.NonNaN = exports.NonEmptyTrimmedString = exports.NonEmptyString = exports.NonEmptyChunkFromSelf = exports.NonEmptyChunk = exports.NonEmptyArrayEnsure = exports.NonEmptyArray = exports.Never = exports.NegativeBigIntFromSelf = exports.NegativeBigInt = exports.NegativeBigDecimalSchemaId = exports.NegativeBigDecimalFromSelf = exports.Negative = exports.MultipleOfSchemaId = exports.MinLengthSchemaId = exports.MinItemsSchemaId = exports.MaxLengthSchemaId = exports.MaxItemsSchemaId = void 0;
10
10
  exports.Struct = Struct;
11
11
  exports.TrimmedSchemaId = exports.Trimmed = exports.Trim = exports.ToPropertySignature = exports.TimeZoneOffsetFromSelf = exports.TimeZoneOffset = exports.TimeZoneNamedFromSelf = exports.TimeZoneNamed = exports.TimeZoneFromSelf = exports.TimeZone = exports.TemplateLiteralParser = exports.TemplateLiteral = exports.TaggedStruct = exports.TaggedRequest = exports.TaggedError = exports.TaggedClass = exports.SymbolFromSelf = exports.Symbol = void 0;
12
12
  exports.Tuple = Tuple;
13
- exports.Uint8ArrayFromBase64 = exports.Uint8Array = exports.Uint8 = exports.UUIDSchemaId = exports.UUID = exports.URLFromSelf = exports.URL = exports.ULIDSchemaId = exports.ULID = exports.TypeId = void 0;
14
- exports.UndefinedOr = exports.Undefined = exports.UncapitalizedSchemaId = exports.Uncapitalized = exports.Uncapitalize = exports.Uint8ArrayFromSelf = exports.Uint8ArrayFromHex = exports.Uint8ArrayFromBase64Url = void 0;
13
+ exports.Uint8 = exports.UUIDSchemaId = exports.UUID = exports.URLFromSelf = exports.URL = exports.ULIDSchemaId = exports.ULID = exports.TypeId = void 0;
14
+ exports.UndefinedOr = exports.Undefined = exports.UncapitalizedSchemaId = exports.Uncapitalized = exports.Uncapitalize = exports.Uint8ArrayFromSelf = exports.Uint8ArrayFromHex = exports.Uint8ArrayFromBase64Url = exports.Uint8ArrayFromBase64 = exports.Uint8Array = void 0;
15
15
  exports.Union = Union;
16
16
  exports.asWithResult = exports.asSerializableWithResult = exports.asSerializable = exports.asSchema = exports.annotations = exports.Void = exports.ValidDateSchemaId = exports.ValidDateFromSelf = exports.UppercasedSchemaId = exports.Uppercased = exports.Uppercase = exports.Unknown = exports.UniqueSymbolFromSelf = void 0;
17
17
  Object.defineProperty(exports, "asserts", {
@@ -85,8 +85,8 @@ Object.defineProperty(exports, "is", {
85
85
  return ParseResult.is;
86
86
  }
87
87
  });
88
- exports.lessThan = exports.length = exports.keyof = exports.itemsCount = exports.isSchema = exports.isPropertySignature = void 0;
89
- exports.transformLiteral = exports.transform = exports.tag = exports.symbolWithResult = exports.symbolSerializable = exports.suspend = exports.successSchema = exports.startsWith = exports.split = exports.serializeSuccess = exports.serializeFailure = exports.serializeExit = exports.serialize = exports.serializableSchema = exports.requiredToOptional = exports.required = exports.rename = exports.propertySignature = exports.positiveBigInt = exports.positiveBigDecimal = exports.positive = exports.pluck = exports.pickLiteral = exports.pick = exports.pattern = exports.partialWith = exports.partial = exports.parseNumber = exports.parseJson = exports.optionalWith = exports.optionalToRequired = exports.optionalToOptional = exports.optionalElement = exports.optional = exports.omit = exports.nonPositiveBigInt = exports.nonPositiveBigDecimal = exports.nonPositive = exports.nonNegativeBigInt = exports.nonNegativeBigDecimal = exports.nonNegative = exports.nonNaN = exports.nonEmptyString = exports.negativeBigInt = exports.negativeBigDecimal = exports.negative = exports.mutable = exports.multipleOf = exports.minLength = exports.minItems = exports.maxLength = exports.maxItems = exports.makePropertySignature = exports.make = exports.lowercased = exports.lessThanOrEqualToDuration = exports.lessThanOrEqualToDate = exports.lessThanOrEqualToBigInt = exports.lessThanOrEqualToBigDecimal = exports.lessThanOrEqualTo = exports.lessThanDuration = exports.lessThanDate = exports.lessThanBigInt = exports.lessThanBigDecimal = void 0;
88
+ exports.keyof = exports.itemsCount = exports.isSchema = exports.isPropertySignature = void 0;
89
+ exports.transformLiteral = exports.transform = exports.tag = exports.symbolWithResult = exports.symbolSerializable = exports.suspend = exports.successSchema = exports.startsWith = exports.split = exports.serializeSuccess = exports.serializeFailure = exports.serializeExit = exports.serialize = exports.serializableSchema = exports.requiredToOptional = exports.required = exports.rename = exports.propertySignature = exports.positiveBigInt = exports.positiveBigDecimal = exports.positive = exports.pluck = exports.pickLiteral = exports.pick = exports.pattern = exports.partialWith = exports.partial = exports.parseNumber = exports.parseJson = exports.optionalWith = exports.optionalToRequired = exports.optionalToOptional = exports.optionalElement = exports.optional = exports.omit = exports.nonPositiveBigInt = exports.nonPositiveBigDecimal = exports.nonPositive = exports.nonNegativeBigInt = exports.nonNegativeBigDecimal = exports.nonNegative = exports.nonNaN = exports.nonEmptyString = exports.negativeBigInt = exports.negativeBigDecimal = exports.negative = exports.mutable = exports.multipleOf = exports.minLength = exports.minItems = exports.maxLength = exports.maxItems = exports.makePropertySignature = exports.make = exports.lowercased = exports.lessThanOrEqualToDuration = exports.lessThanOrEqualToDate = exports.lessThanOrEqualToBigInt = exports.lessThanOrEqualToBigDecimal = exports.lessThanOrEqualTo = exports.lessThanDuration = exports.lessThanDate = exports.lessThanBigInt = exports.lessThanBigDecimal = exports.lessThan = exports.length = void 0;
90
90
  exports.transformLiterals = transformLiterals;
91
91
  exports.validateEither = exports.validate = exports.validDate = exports.uppercased = exports.uncapitalized = exports.typeSchema = exports.trimmed = exports.transformOrFail = void 0;
92
92
  Object.defineProperty(exports, "validateOption", {
@@ -2283,22 +2283,21 @@ const split = separator => transform(String$.annotations({
2283
2283
  encode: array_.join(separator)
2284
2284
  });
2285
2285
  exports.split = split;
2286
- const JsonString = /*#__PURE__*/String$.annotations({
2287
- [AST.IdentifierAnnotationId]: "JsonString",
2288
- [AST.TitleAnnotationId]: "JsonString",
2289
- [AST.DescriptionAnnotationId]: "a string that will be parsed as JSON"
2290
- });
2291
- const getParseJsonTransformation = options => transformOrFail(JsonString, Unknown, {
2286
+ const getErrorMessage = e => e instanceof Error ? e.message : String(e);
2287
+ const getParseJsonTransformation = options => transformOrFail(String$.annotations({
2288
+ [AST.DescriptionAnnotationId]: "a string to be decoded into JSON"
2289
+ }), Unknown, {
2292
2290
  strict: true,
2293
2291
  decode: (s, _, ast) => ParseResult.try({
2294
2292
  try: () => JSON.parse(s, options?.reviver),
2295
- catch: e => new ParseResult.Type(ast, s, e.message)
2293
+ catch: e => new ParseResult.Type(ast, s, getErrorMessage(e))
2296
2294
  }),
2297
2295
  encode: (u, _, ast) => ParseResult.try({
2298
2296
  try: () => JSON.stringify(u, options?.replacer, options?.space),
2299
- catch: e => new ParseResult.Type(ast, u, e.message)
2297
+ catch: e => new ParseResult.Type(ast, u, getErrorMessage(e))
2300
2298
  })
2301
2299
  }).annotations({
2300
+ title: "parseJson",
2302
2301
  schemaId: AST.ParseJsonSchemaId
2303
2302
  });
2304
2303
  /**
@@ -2391,12 +2390,12 @@ class URLFromSelf extends /*#__PURE__*/instanceOf(URL, {
2391
2390
  /** @ignore */
2392
2391
  exports.URLFromSelf = URLFromSelf;
2393
2392
  class URL$ extends /*#__PURE__*/transformOrFail(String$.annotations({
2394
- description: "a string that will be parsed into a URL"
2393
+ description: "a string to be decoded into a URL"
2395
2394
  }), URLFromSelf, {
2396
2395
  strict: true,
2397
- decode: (str, _, ast) => ParseResult.try({
2398
- try: () => new URL(str),
2399
- catch: () => new ParseResult.Type(ast, str)
2396
+ decode: (s, _, ast) => ParseResult.try({
2397
+ try: () => new URL(s),
2398
+ catch: e => new ParseResult.Type(ast, s, `Unable to decode ${JSON.stringify(s)} into a URL. ${getErrorMessage(e)}`)
2400
2399
  }),
2401
2400
  encode: url => ParseResult.succeed(url.toString())
2402
2401
  }).annotations({
@@ -2653,7 +2652,7 @@ const clamp = (minimum, maximum) => self => transform(self, self.pipe(typeSchema
2653
2652
  exports.clamp = clamp;
2654
2653
  const parseNumber = self => transformOrFail(self, Number$, {
2655
2654
  strict: false,
2656
- decode: (s, _, ast) => ParseResult.fromOption(number_.parse(s), () => new ParseResult.Type(ast, s)),
2655
+ decode: (s, _, ast) => ParseResult.fromOption(number_.parse(s), () => new ParseResult.Type(ast, s, `Unable to decode ${JSON.stringify(s)} into a number`)),
2657
2656
  encode: n => ParseResult.succeed(String(n))
2658
2657
  });
2659
2658
  /**
@@ -2668,7 +2667,7 @@ const parseNumber = self => transformOrFail(self, Number$, {
2668
2667
  */
2669
2668
  exports.parseNumber = parseNumber;
2670
2669
  class NumberFromString extends /*#__PURE__*/parseNumber(String$.annotations({
2671
- description: "a string that will be parsed into a number"
2670
+ description: "a string to be decoded into a number"
2672
2671
  })).annotations({
2673
2672
  identifier: "NumberFromString"
2674
2673
  }) {}
@@ -2770,18 +2769,37 @@ class Not extends /*#__PURE__*/transform( /*#__PURE__*/Boolean$.annotations({
2770
2769
  decode: boolean_.not,
2771
2770
  encode: boolean_.not
2772
2771
  }) {}
2773
- /** @ignore */
2774
2772
  exports.Not = Not;
2775
- class Symbol$ extends /*#__PURE__*/transform(String$.annotations({
2776
- description: "a string that will be converted to a symbol"
2773
+ const encodeSymbol = (sym, _, ast) => {
2774
+ const key = Symbol.keyFor(sym);
2775
+ return key === undefined ? ParseResult.fail(new ParseResult.Type(ast, sym, `Unable to encode a unique symbol ${String(sym)} into a string`)) : ParseResult.succeed(key);
2776
+ };
2777
+ const decodeSymbol = s => ParseResult.succeed(Symbol.for(s));
2778
+ /** @ignore */
2779
+ class Symbol$ extends /*#__PURE__*/transformOrFail(String$.annotations({
2780
+ description: "a string to be decoded into a globally shared symbol"
2777
2781
  }), SymbolFromSelf, {
2778
2782
  strict: false,
2779
- decode: s => Symbol.for(s),
2780
- encode: sym => sym.description
2783
+ decode: decodeSymbol,
2784
+ encode: encodeSymbol
2781
2785
  }).annotations({
2782
- identifier: "symbol"
2786
+ identifier: "Symbol"
2783
2787
  }) {}
2784
2788
  exports.Symbol = Symbol$;
2789
+ const SymbolStruct = /*#__PURE__*/TaggedStruct("symbol", {
2790
+ key: String$
2791
+ }).annotations({
2792
+ description: "an object to be decoded into a globally shared symbol"
2793
+ });
2794
+ const SymbolFromStruct = /*#__PURE__*/transformOrFail(SymbolStruct, SymbolFromSelf, {
2795
+ strict: true,
2796
+ decode: ({
2797
+ key
2798
+ }) => decodeSymbol(key),
2799
+ encode: (sym, _, ast) => ParseResult.map(encodeSymbol(sym, _, ast), key => SymbolStruct.make({
2800
+ key
2801
+ }))
2802
+ });
2785
2803
  /**
2786
2804
  * @category schema id
2787
2805
  * @since 3.10.0
@@ -2931,13 +2949,13 @@ const clampBigInt = (minimum, maximum) => self => transform(self, self.pipe(type
2931
2949
  /** @ignore */
2932
2950
  exports.clampBigInt = clampBigInt;
2933
2951
  class BigInt$ extends /*#__PURE__*/transformOrFail(String$.annotations({
2934
- description: "a string that will be parsed into a bigint"
2952
+ description: "a string to be decoded into a bigint"
2935
2953
  }), BigIntFromSelf, {
2936
2954
  strict: true,
2937
- decode: (s, _, ast) => ParseResult.fromOption(bigInt_.fromString(s), () => new ParseResult.Type(ast, s)),
2955
+ decode: (s, _, ast) => ParseResult.fromOption(bigInt_.fromString(s), () => new ParseResult.Type(ast, s, `Unable to decode ${JSON.stringify(s)} into a bigint`)),
2938
2956
  encode: n => ParseResult.succeed(String(n))
2939
2957
  }).annotations({
2940
- identifier: "bigint"
2958
+ identifier: "BigInt"
2941
2959
  }) {}
2942
2960
  exports.BigInt = BigInt$;
2943
2961
  /**
@@ -3005,13 +3023,13 @@ const NonNegativeBigInt = exports.NonNegativeBigInt = /*#__PURE__*/BigInt$.pipe(
3005
3023
  * @since 3.10.0
3006
3024
  */
3007
3025
  class BigIntFromNumber extends /*#__PURE__*/transformOrFail(Number$.annotations({
3008
- description: "a number that will be parsed into a bigint"
3009
- }), BigIntFromSelf, {
3026
+ description: "a number to be decoded into a bigint"
3027
+ }), BigIntFromSelf.pipe(betweenBigInt(BigInt(Number.MIN_SAFE_INTEGER), BigInt(Number.MAX_SAFE_INTEGER))), {
3010
3028
  strict: true,
3011
- decode: (n, _, ast) => ParseResult.fromOption(bigInt_.fromNumber(n), () => new ParseResult.Type(ast, n)),
3012
- encode: (b, _, ast) => ParseResult.fromOption(bigInt_.toNumber(b), () => new ParseResult.Type(ast, b))
3029
+ decode: (n, _, ast) => ParseResult.fromOption(bigInt_.fromNumber(n), () => new ParseResult.Type(ast, n, `Unable to decode ${n} into a bigint`)),
3030
+ encode: (b, _, ast) => ParseResult.fromOption(bigInt_.toNumber(b), () => new ParseResult.Type(ast, b, `Unable to encode ${b}n into a number`))
3013
3031
  }).annotations({
3014
- identifier: "BigintFromNumber"
3032
+ identifier: "BigIntFromNumber"
3015
3033
  }) {}
3016
3034
  exports.BigIntFromNumber = BigIntFromNumber;
3017
3035
  const redactedArbitrary = value => fc => value(fc).map(redacted_.make);
@@ -3055,73 +3073,86 @@ exports.Redacted = Redacted;
3055
3073
  class DurationFromSelf extends /*#__PURE__*/declare(duration_.isDuration, {
3056
3074
  identifier: "DurationFromSelf",
3057
3075
  pretty: () => String,
3058
- arbitrary: () => fc => fc.oneof(fc.constant(duration_.infinity), fc.bigUint().map(_ => duration_.nanos(_)), fc.bigUint().map(_ => duration_.micros(_)), fc.maxSafeNat().map(_ => duration_.millis(_)), fc.maxSafeNat().map(_ => duration_.seconds(_)), fc.maxSafeNat().map(_ => duration_.minutes(_)), fc.maxSafeNat().map(_ => duration_.hours(_)), fc.maxSafeNat().map(_ => duration_.days(_)), fc.maxSafeNat().map(_ => duration_.weeks(_))),
3076
+ arbitrary: () => fc => fc.oneof(fc.constant(duration_.infinity), fc.bigInt({
3077
+ min: 0n
3078
+ }).map(_ => duration_.nanos(_)), fc.maxSafeNat().map(_ => duration_.millis(_))),
3059
3079
  equivalence: () => duration_.Equivalence
3060
3080
  }) {}
3061
3081
  /**
3062
- * A schema that transforms a `bigint` tuple into a `Duration`.
3063
- * Treats the value as the number of nanoseconds.
3082
+ * A schema that transforms a non negative `bigint` into a `Duration`. Treats
3083
+ * the value as the number of nanoseconds.
3064
3084
  *
3065
3085
  * @category Duration transformations
3066
3086
  * @since 3.10.0
3067
3087
  */
3068
3088
  exports.DurationFromSelf = DurationFromSelf;
3069
- class DurationFromNanos extends /*#__PURE__*/transformOrFail(BigIntFromSelf.annotations({
3070
- description: "a bigint that will be parsed into a Duration"
3071
- }), DurationFromSelf, {
3089
+ class DurationFromNanos extends /*#__PURE__*/transformOrFail(NonNegativeBigIntFromSelf.annotations({
3090
+ description: "a bigint to be decoded into a Duration"
3091
+ }), DurationFromSelf.pipe(filter(duration => duration_.isFinite(duration), {
3092
+ description: "a finite duration"
3093
+ })), {
3072
3094
  strict: true,
3073
3095
  decode: nanos => ParseResult.succeed(duration_.nanos(nanos)),
3074
3096
  encode: (duration, _, ast) => option_.match(duration_.toNanos(duration), {
3075
- onNone: () => ParseResult.fail(new ParseResult.Type(ast, duration)),
3076
- onSome: val => ParseResult.succeed(val)
3097
+ onNone: () => ParseResult.fail(new ParseResult.Type(ast, duration, `Unable to encode ${duration} into a bigint`)),
3098
+ onSome: nanos => ParseResult.succeed(nanos)
3077
3099
  })
3078
3100
  }).annotations({
3079
3101
  identifier: "DurationFromNanos"
3080
3102
  }) {}
3081
3103
  /**
3082
- * A schema that transforms a `number` tuple into a `Duration`.
3083
- * Treats the value as the number of milliseconds.
3104
+ * A non-negative integer. +Infinity is excluded.
3105
+ *
3106
+ * @category number constructors
3107
+ * @since 3.11.10
3108
+ */
3109
+ exports.DurationFromNanos = DurationFromNanos;
3110
+ const NonNegativeInt = exports.NonNegativeInt = /*#__PURE__*/NonNegative.pipe(int()).annotations({
3111
+ identifier: "NonNegativeInt"
3112
+ });
3113
+ /**
3114
+ * A schema that transforms a (possibly Infinite) non negative number into a
3115
+ * `Duration`. Treats the value as the number of milliseconds.
3084
3116
  *
3085
3117
  * @category Duration transformations
3086
3118
  * @since 3.10.0
3087
3119
  */
3088
- exports.DurationFromNanos = DurationFromNanos;
3089
- class DurationFromMillis extends /*#__PURE__*/transform(Number$.annotations({
3090
- description: "a number that will be parsed into a Duration"
3120
+ class DurationFromMillis extends /*#__PURE__*/transform(NonNegative.annotations({
3121
+ description: "a non-negative number to be decoded into a Duration"
3091
3122
  }), DurationFromSelf, {
3092
3123
  strict: true,
3093
3124
  decode: ms => duration_.millis(ms),
3094
- encode: n => duration_.toMillis(n)
3125
+ encode: duration => duration_.toMillis(duration)
3095
3126
  }).annotations({
3096
3127
  identifier: "DurationFromMillis"
3097
3128
  }) {}
3098
- /**
3099
- * @category number constructors
3100
- * @since 3.11.10
3101
- */
3102
3129
  exports.DurationFromMillis = DurationFromMillis;
3103
- const NonNegativeInt = exports.NonNegativeInt = /*#__PURE__*/NonNegative.pipe(int()).annotations({
3104
- identifier: "NonNegativeInt"
3105
- });
3106
- const HRTime = /*#__PURE__*/Tuple(element(NonNegativeInt).annotations({
3130
+ const FiniteHRTime = /*#__PURE__*/Tuple(element(NonNegativeInt).annotations({
3107
3131
  title: "seconds"
3108
3132
  }), element(NonNegativeInt).annotations({
3109
3133
  title: "nanos"
3110
3134
  })).annotations({
3111
- identifier: "HRTime"
3135
+ identifier: "FiniteHRTime"
3136
+ });
3137
+ const InfiniteHRTime = /*#__PURE__*/Tuple(Literal(-1), Literal(0)).annotations({
3138
+ identifier: "InfiniteHRTime"
3139
+ });
3140
+ const HRTime = /*#__PURE__*/Union(FiniteHRTime, InfiniteHRTime).annotations({
3141
+ identifier: "HRTime",
3142
+ description: "a tuple of seconds and nanos to be decoded into a Duration"
3112
3143
  });
3113
3144
  /**
3114
3145
  * A schema that transforms a `[number, number]` tuple into a `Duration`.
3115
3146
  *
3147
+ * Infinite durations are encoded as `[-1, 0]`.
3148
+ *
3116
3149
  * @category Duration transformations
3117
3150
  * @since 3.10.0
3118
3151
  */
3119
- class Duration extends /*#__PURE__*/transform(HRTime.annotations({
3120
- description: "a tuple of seconds and nanos that will be parsed into a Duration"
3121
- }), DurationFromSelf, {
3152
+ class Duration extends /*#__PURE__*/transform(HRTime, DurationFromSelf, {
3122
3153
  strict: true,
3123
- decode: ([seconds, nanos]) => duration_.nanos(BigInt(seconds) * BigInt(1e9) + BigInt(nanos)),
3124
- encode: duration => duration_.toHrTime(duration)
3154
+ decode: ([seconds, nanos]) => seconds === -1 ? duration_.infinity : duration_.nanos(BigInt(seconds) * BigInt(1e9) + BigInt(nanos)),
3155
+ encode: duration => duration.value._tag === "Infinity" ? [-1, 0] : duration_.toHrTime(duration)
3125
3156
  }).annotations({
3126
3157
  identifier: "Duration"
3127
3158
  }) {}
@@ -3259,7 +3290,7 @@ const Uint8 = exports.Uint8 = /*#__PURE__*/Number$.pipe( /*#__PURE__*/between(0,
3259
3290
  description: "a 8-bit unsigned integer"
3260
3291
  }));
3261
3292
  const Uint8Array$ = exports.Uint8Array = /*#__PURE__*/transform(Array$(Uint8).annotations({
3262
- description: "an array of 8-bit unsigned integers that will be parsed into a Uint8Array"
3293
+ description: "an array of 8-bit unsigned integers to be decoded into a Uint8Array"
3263
3294
  }), Uint8ArrayFromSelf, {
3264
3295
  strict: true,
3265
3296
  decode: numbers => Uint8Array.from(numbers),
@@ -3268,7 +3299,7 @@ const Uint8Array$ = exports.Uint8Array = /*#__PURE__*/transform(Array$(Uint8).an
3268
3299
  identifier: "Uint8Array"
3269
3300
  });
3270
3301
  const makeUint8ArrayTransformation = (id, decode, encode) => transformOrFail(String$.annotations({
3271
- description: "a string that will be parsed into a Uint8Array"
3302
+ description: "a string to be decoded into a Uint8Array"
3272
3303
  }), Uint8ArrayFromSelf, {
3273
3304
  strict: true,
3274
3305
  decode: (s, _, ast) => either_.mapLeft(decode(s), decodeException => new ParseResult.Type(ast, s, decodeException.message)),
@@ -3393,16 +3424,22 @@ const MaxItemsSchemaId = exports.MaxItemsSchemaId = schemaId_.MaxItemsSchemaId;
3393
3424
  * @category ReadonlyArray filters
3394
3425
  * @since 3.10.0
3395
3426
  */
3396
- const maxItems = (n, annotations) => self => self.pipe(filter(a => a.length <= n, {
3397
- schemaId: MaxItemsSchemaId,
3398
- title: `maxItems(${n})`,
3399
- description: `an array of at most ${n} item(s)`,
3400
- jsonSchema: {
3401
- maxItems: n
3402
- },
3403
- [AST.StableFilterAnnotationId]: true,
3404
- ...annotations
3405
- }));
3427
+ const maxItems = (n, annotations) => self => {
3428
+ const maxItems = Math.floor(n);
3429
+ if (maxItems < 1) {
3430
+ throw new Error(errors_.getInvalidArgumentErrorMessage(`Expected an integer greater than or equal to 1, actual ${n}`));
3431
+ }
3432
+ return self.pipe(filter(a => a.length <= maxItems, {
3433
+ schemaId: MaxItemsSchemaId,
3434
+ title: `maxItems(${maxItems})`,
3435
+ description: `an array of at most ${maxItems} item(s)`,
3436
+ jsonSchema: {
3437
+ maxItems
3438
+ },
3439
+ [AST.StableFilterAnnotationId]: true,
3440
+ ...annotations
3441
+ }));
3442
+ };
3406
3443
  /**
3407
3444
  * @category schema id
3408
3445
  * @since 3.10.0
@@ -3413,17 +3450,23 @@ const ItemsCountSchemaId = exports.ItemsCountSchemaId = schemaId_.ItemsCountSche
3413
3450
  * @category ReadonlyArray filters
3414
3451
  * @since 3.10.0
3415
3452
  */
3416
- const itemsCount = (n, annotations) => self => self.pipe(filter(a => a.length === n, {
3417
- schemaId: ItemsCountSchemaId,
3418
- title: `itemsCount(${n})`,
3419
- description: `an array of exactly ${n} item(s)`,
3420
- jsonSchema: {
3421
- minItems: n,
3422
- maxItems: n
3423
- },
3424
- [AST.StableFilterAnnotationId]: true,
3425
- ...annotations
3426
- }));
3453
+ const itemsCount = (n, annotations) => self => {
3454
+ const itemsCount = Math.floor(n);
3455
+ if (itemsCount < 1) {
3456
+ throw new Error(errors_.getInvalidArgumentErrorMessage(`Expected an integer greater than or equal to 1, actual ${n}`));
3457
+ }
3458
+ return self.pipe(filter(a => a.length === itemsCount, {
3459
+ schemaId: ItemsCountSchemaId,
3460
+ title: `itemsCount(${itemsCount})`,
3461
+ description: `an array of exactly ${itemsCount} item(s)`,
3462
+ jsonSchema: {
3463
+ minItems: itemsCount,
3464
+ maxItems: itemsCount
3465
+ },
3466
+ [AST.StableFilterAnnotationId]: true,
3467
+ ...annotations
3468
+ }));
3469
+ };
3427
3470
  /**
3428
3471
  * @category ReadonlyArray transformations
3429
3472
  * @since 3.10.0
@@ -3468,7 +3511,7 @@ const headNonEmpty = self => transform(self, getNumberIndexedAccess(typeSchema(s
3468
3511
  exports.headNonEmpty = headNonEmpty;
3469
3512
  const headOrElse = exports.headOrElse = /*#__PURE__*/(0, _Function.dual)(args => isSchema(args[0]), (self, fallback) => transformOrFail(self, getNumberIndexedAccess(typeSchema(self)), {
3470
3513
  strict: true,
3471
- decode: (as, _, ast) => as.length > 0 ? ParseResult.succeed(as[0]) : fallback ? ParseResult.succeed(fallback()) : ParseResult.fail(new ParseResult.Type(ast, as)),
3514
+ decode: (as, _, ast) => as.length > 0 ? ParseResult.succeed(as[0]) : fallback ? ParseResult.succeed(fallback()) : ParseResult.fail(new ParseResult.Type(ast, as, "Unable to retrieve the first element of an empty array")),
3472
3515
  encode: a => ParseResult.succeed(array_.of(a))
3473
3516
  }));
3474
3517
  /**
@@ -3642,7 +3685,7 @@ class ValidDateFromSelf extends /*#__PURE__*/DateFromSelf.pipe( /*#__PURE__*/val
3642
3685
  */
3643
3686
  exports.ValidDateFromSelf = ValidDateFromSelf;
3644
3687
  class DateFromString extends /*#__PURE__*/transform(String$.annotations({
3645
- description: "a string that will be parsed into a Date"
3688
+ description: "a string to be decoded into a Date"
3646
3689
  }), DateFromSelf, {
3647
3690
  strict: true,
3648
3691
  decode: s => new Date(s),
@@ -3667,7 +3710,7 @@ exports.Date = Date$;
3667
3710
  * @since 3.10.0
3668
3711
  */
3669
3712
  class DateFromNumber extends /*#__PURE__*/transform(Number$.annotations({
3670
- description: "a number that will be parsed into a Date"
3713
+ description: "a number to be decoded into a Date"
3671
3714
  }), DateFromSelf, {
3672
3715
  strict: true,
3673
3716
  decode: n => new Date(n),
@@ -3686,13 +3729,15 @@ class DateTimeUtcFromSelf extends /*#__PURE__*/declare(u => dateTime.isDateTime(
3686
3729
  identifier: "DateTimeUtcFromSelf",
3687
3730
  description: "a DateTime.Utc instance",
3688
3731
  pretty: () => dateTime => dateTime.toString(),
3689
- arbitrary: () => fc => fc.date().map(date => dateTime.unsafeFromDate(date)),
3732
+ arbitrary: () => fc => fc.date({
3733
+ noInvalidDate: true
3734
+ }).map(date => dateTime.unsafeFromDate(date)),
3690
3735
  equivalence: () => dateTime.Equivalence
3691
3736
  }) {}
3692
3737
  exports.DateTimeUtcFromSelf = DateTimeUtcFromSelf;
3693
- const decodeDateTime = (input, _, ast) => ParseResult.try({
3738
+ const decodeDateTimeUtc = (input, _, ast) => ParseResult.try({
3694
3739
  try: () => dateTime.unsafeMake(input),
3695
- catch: () => new ParseResult.Type(ast, input)
3740
+ catch: () => new ParseResult.Type(ast, input, `Unable to decode ${util_.formatUnknown(input)} into a DateTime.Utc`)
3696
3741
  });
3697
3742
  /**
3698
3743
  * Defines a schema that attempts to convert a `number` to a `DateTime.Utc` instance using the `DateTime.unsafeMake` constructor.
@@ -3701,10 +3746,10 @@ const decodeDateTime = (input, _, ast) => ParseResult.try({
3701
3746
  * @since 3.10.0
3702
3747
  */
3703
3748
  class DateTimeUtcFromNumber extends /*#__PURE__*/transformOrFail(Number$.annotations({
3704
- description: "a number that will be parsed into a DateTime.Utc"
3749
+ description: "a number to be decoded into a DateTime.Utc"
3705
3750
  }), DateTimeUtcFromSelf, {
3706
3751
  strict: true,
3707
- decode: decodeDateTime,
3752
+ decode: decodeDateTimeUtc,
3708
3753
  encode: dt => ParseResult.succeed(dateTime.toEpochMillis(dt))
3709
3754
  }).annotations({
3710
3755
  identifier: "DateTimeUtcFromNumber"
@@ -3717,10 +3762,10 @@ class DateTimeUtcFromNumber extends /*#__PURE__*/transformOrFail(Number$.annotat
3717
3762
  */
3718
3763
  exports.DateTimeUtcFromNumber = DateTimeUtcFromNumber;
3719
3764
  class DateTimeUtcFromDate extends /*#__PURE__*/transformOrFail(DateFromSelf.annotations({
3720
- description: "a Date that will be parsed into a DateTime.Utc"
3765
+ description: "a Date to be decoded into a DateTime.Utc"
3721
3766
  }), DateTimeUtcFromSelf, {
3722
3767
  strict: true,
3723
- decode: decodeDateTime,
3768
+ decode: decodeDateTimeUtc,
3724
3769
  encode: dt => ParseResult.succeed(dateTime.toDateUtc(dt))
3725
3770
  }).annotations({
3726
3771
  identifier: "DateTimeUtcFromDate"
@@ -3733,10 +3778,10 @@ class DateTimeUtcFromDate extends /*#__PURE__*/transformOrFail(DateFromSelf.anno
3733
3778
  */
3734
3779
  exports.DateTimeUtcFromDate = DateTimeUtcFromDate;
3735
3780
  class DateTimeUtc extends /*#__PURE__*/transformOrFail(String$.annotations({
3736
- description: "a string that will be parsed into a DateTime.Utc"
3781
+ description: "a string to be decoded into a DateTime.Utc"
3737
3782
  }), DateTimeUtcFromSelf, {
3738
3783
  strict: true,
3739
- decode: decodeDateTime,
3784
+ decode: decodeDateTimeUtc,
3740
3785
  encode: dt => ParseResult.succeed(dateTime.formatIso(dt))
3741
3786
  }).annotations({
3742
3787
  identifier: "DateTimeUtc"
@@ -3744,7 +3789,7 @@ class DateTimeUtc extends /*#__PURE__*/transformOrFail(String$.annotations({
3744
3789
  exports.DateTimeUtc = DateTimeUtc;
3745
3790
  const timeZoneOffsetArbitrary = () => fc => fc.integer({
3746
3791
  min: -12 * 60 * 60 * 1000,
3747
- max: 12 * 60 * 60 * 1000
3792
+ max: 14 * 60 * 60 * 1000
3748
3793
  }).map(dateTime.zoneMakeOffset);
3749
3794
  /**
3750
3795
  * Describes a schema that represents a `TimeZone.Offset` instance.
@@ -3766,7 +3811,7 @@ class TimeZoneOffsetFromSelf extends /*#__PURE__*/declare(dateTime.isTimeZoneOff
3766
3811
  */
3767
3812
  exports.TimeZoneOffsetFromSelf = TimeZoneOffsetFromSelf;
3768
3813
  class TimeZoneOffset extends /*#__PURE__*/transform(Number$.annotations({
3769
- description: "a number that will be parsed into a TimeZone.Offset"
3814
+ description: "a number to be decoded into a TimeZone.Offset"
3770
3815
  }), TimeZoneOffsetFromSelf, {
3771
3816
  strict: true,
3772
3817
  decode: dateTime.zoneMakeOffset,
@@ -3796,12 +3841,12 @@ class TimeZoneNamedFromSelf extends /*#__PURE__*/declare(dateTime.isTimeZoneName
3796
3841
  */
3797
3842
  exports.TimeZoneNamedFromSelf = TimeZoneNamedFromSelf;
3798
3843
  class TimeZoneNamed extends /*#__PURE__*/transformOrFail(String$.annotations({
3799
- description: "a string that will be parsed into a TimeZone.Named"
3844
+ description: "a string to be decoded into a TimeZone.Named"
3800
3845
  }), TimeZoneNamedFromSelf, {
3801
3846
  strict: true,
3802
3847
  decode: (s, _, ast) => ParseResult.try({
3803
3848
  try: () => dateTime.zoneUnsafeMakeNamed(s),
3804
- catch: () => new ParseResult.Type(ast, s)
3849
+ catch: () => new ParseResult.Type(ast, s, `Unable to decode ${JSON.stringify(s)} into a TimeZone.Named`)
3805
3850
  }),
3806
3851
  encode: tz => ParseResult.succeed(tz.id)
3807
3852
  }).annotations({
@@ -3812,19 +3857,20 @@ class TimeZoneNamed extends /*#__PURE__*/transformOrFail(String$.annotations({
3812
3857
  * @since 3.10.0
3813
3858
  */
3814
3859
  exports.TimeZoneNamed = TimeZoneNamed;
3815
- const TimeZoneFromSelf = exports.TimeZoneFromSelf = /*#__PURE__*/Union(TimeZoneOffsetFromSelf, TimeZoneNamedFromSelf);
3860
+ class TimeZoneFromSelf extends /*#__PURE__*/Union(TimeZoneOffsetFromSelf, TimeZoneNamedFromSelf) {}
3816
3861
  /**
3817
3862
  * Defines a schema that attempts to convert a `string` to a `TimeZone` using the `DateTime.zoneFromString` constructor.
3818
3863
  *
3819
3864
  * @category TimeZone transformations
3820
3865
  * @since 3.10.0
3821
3866
  */
3867
+ exports.TimeZoneFromSelf = TimeZoneFromSelf;
3822
3868
  class TimeZone extends /*#__PURE__*/transformOrFail(String$.annotations({
3823
- description: "a string that will be parsed into a TimeZone"
3869
+ description: "a string to be decoded into a TimeZone"
3824
3870
  }), TimeZoneFromSelf, {
3825
3871
  strict: true,
3826
3872
  decode: (s, _, ast) => option_.match(dateTime.zoneFromString(s), {
3827
- onNone: () => ParseResult.fail(new ParseResult.Type(ast, s)),
3873
+ onNone: () => ParseResult.fail(new ParseResult.Type(ast, s, `Unable to decode ${JSON.stringify(s)} into a TimeZone`)),
3828
3874
  onSome: ParseResult.succeed
3829
3875
  }),
3830
3876
  encode: tz => ParseResult.succeed(dateTime.zoneToString(tz))
@@ -3843,9 +3889,13 @@ class DateTimeZonedFromSelf extends /*#__PURE__*/declare(u => dateTime.isDateTim
3843
3889
  identifier: "DateTimeZonedFromSelf",
3844
3890
  description: "a DateTime.Zoned instance",
3845
3891
  pretty: () => dateTime => dateTime.toString(),
3846
- arbitrary: () => fc => fc.date().chain(date => timeZoneArbitrary(fc).map(timeZone => dateTime.unsafeMakeZoned(date, {
3892
+ arbitrary: () => fc => fc.tuple(fc.integer({
3893
+ // time zone db supports +/- 1000 years or so
3894
+ min: -31536000000000,
3895
+ max: 31536000000000
3896
+ }), timeZoneArbitrary(fc)).map(([millis, timeZone]) => dateTime.unsafeMakeZoned(millis, {
3847
3897
  timeZone
3848
- }))),
3898
+ })),
3849
3899
  equivalence: () => dateTime.Equivalence
3850
3900
  }) {}
3851
3901
  /**
@@ -3856,11 +3906,11 @@ class DateTimeZonedFromSelf extends /*#__PURE__*/declare(u => dateTime.isDateTim
3856
3906
  */
3857
3907
  exports.DateTimeZonedFromSelf = DateTimeZonedFromSelf;
3858
3908
  class DateTimeZoned extends /*#__PURE__*/transformOrFail(String$.annotations({
3859
- description: "a string that will be parsed into a DateTime.Zoned"
3909
+ description: "a string to be decoded into a DateTime.Zoned"
3860
3910
  }), DateTimeZonedFromSelf, {
3861
3911
  strict: true,
3862
3912
  decode: (s, _, ast) => option_.match(dateTime.makeZonedFromString(s), {
3863
- onNone: () => ParseResult.fail(new ParseResult.Type(ast, s)),
3913
+ onNone: () => ParseResult.fail(new ParseResult.Type(ast, s, `Unable to decode ${JSON.stringify(s)} into a DateTime.Zoned`)),
3864
3914
  onSome: ParseResult.succeed
3865
3915
  }),
3866
3916
  encode: dt => ParseResult.succeed(dateTime.formatIsoZoned(dt))
@@ -4207,7 +4257,7 @@ const ReadonlyMapFromRecord = ({
4207
4257
  key: encodedBoundSchema(key),
4208
4258
  value
4209
4259
  }).annotations({
4210
- description: "a record that will be parsed into a ReadonlyMap"
4260
+ description: "a record to be decoded into a ReadonlyMap"
4211
4261
  }), ReadonlyMapFromSelf({
4212
4262
  key,
4213
4263
  value: typeSchema(value)
@@ -4228,7 +4278,7 @@ const MapFromRecord = ({
4228
4278
  key: encodedBoundSchema(key),
4229
4279
  value
4230
4280
  }).annotations({
4231
- description: "a record that will be parsed into a Map"
4281
+ description: "a record to be decoded into a Map"
4232
4282
  }), MapFromSelf({
4233
4283
  key,
4234
4284
  value: typeSchema(value)
@@ -4312,11 +4362,11 @@ class BigDecimalFromSelf extends /*#__PURE__*/declare(bigDecimal_.isBigDecimal,
4312
4362
  */
4313
4363
  exports.BigDecimalFromSelf = BigDecimalFromSelf;
4314
4364
  class BigDecimal extends /*#__PURE__*/transformOrFail(String$.annotations({
4315
- description: "a string that will be parsed into a BigDecimal"
4365
+ description: "a string to be decoded into a BigDecimal"
4316
4366
  }), BigDecimalFromSelf, {
4317
4367
  strict: true,
4318
- decode: (num, _, ast) => bigDecimal_.fromString(num).pipe(option_.match({
4319
- onNone: () => ParseResult.fail(new ParseResult.Type(ast, num)),
4368
+ decode: (s, _, ast) => bigDecimal_.fromString(s).pipe(option_.match({
4369
+ onNone: () => ParseResult.fail(new ParseResult.Type(ast, s, `Unable to decode ${JSON.stringify(s)} into a BigDecimal`)),
4320
4370
  onSome: val => ParseResult.succeed(bigDecimal_.normalize(val))
4321
4371
  })),
4322
4372
  encode: val => ParseResult.succeed(bigDecimal_.format(bigDecimal_.normalize(val)))
@@ -4331,12 +4381,12 @@ class BigDecimal extends /*#__PURE__*/transformOrFail(String$.annotations({
4331
4381
  * @since 3.10.0
4332
4382
  */
4333
4383
  exports.BigDecimal = BigDecimal;
4334
- class BigDecimalFromNumber extends /*#__PURE__*/transformOrFail(Number$.annotations({
4335
- description: "a number that will be parsed into a BigDecimal"
4384
+ class BigDecimalFromNumber extends /*#__PURE__*/transform(Number$.annotations({
4385
+ description: "a number to be decoded into a BigDecimal"
4336
4386
  }), BigDecimalFromSelf, {
4337
4387
  strict: true,
4338
- decode: num => ParseResult.succeed(bigDecimal_.unsafeFromNumber(num)),
4339
- encode: val => ParseResult.succeed(bigDecimal_.unsafeToNumber(val))
4388
+ decode: bigDecimal_.unsafeFromNumber,
4389
+ encode: bigDecimal_.unsafeToNumber
4340
4390
  }).annotations({
4341
4391
  identifier: "BigDecimalFromNumber"
4342
4392
  }) {}
@@ -5893,4 +5943,28 @@ const go = (ast, path) => {
5893
5943
  }
5894
5944
  }
5895
5945
  };
5946
+ /** @ignore */
5947
+ class PropertyKey$ extends /*#__PURE__*/Union(String$, Number$, SymbolFromStruct).annotations({
5948
+ identifier: "PropertyKey"
5949
+ }) {}
5950
+ exports.PropertyKey = PropertyKey$;
5951
+ /**
5952
+ * @category ArrayFormatter
5953
+ * @since 3.12.5
5954
+ */
5955
+ class ArrayFormatterIssue extends /*#__PURE__*/Struct({
5956
+ _tag: propertySignature(Literal("Pointer", "Unexpected", "Missing", "Composite", "Refinement", "Transformation", "Type", "Forbidden")).annotations({
5957
+ description: "The tag identifying the type of parse issue"
5958
+ }),
5959
+ path: propertySignature(Array$(PropertyKey$)).annotations({
5960
+ description: "The path to the property where the issue occurred"
5961
+ }),
5962
+ message: propertySignature(String$).annotations({
5963
+ description: "A descriptive message explaining the issue"
5964
+ })
5965
+ }).annotations({
5966
+ identifier: "ArrayFormatterIssue",
5967
+ description: "Represents an issue returned by the ArrayFormatter formatter"
5968
+ }) {}
5969
+ exports.ArrayFormatterIssue = ArrayFormatterIssue;
5896
5970
  //# sourceMappingURL=Schema.js.map