effect 3.12.7 → 3.12.8

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 (117) hide show
  1. package/dist/cjs/BigDecimal.js +1 -1
  2. package/dist/cjs/BigDecimal.js.map +1 -1
  3. package/dist/cjs/Cause.js +630 -167
  4. package/dist/cjs/Cause.js.map +1 -1
  5. package/dist/cjs/Chunk.js +4 -8
  6. package/dist/cjs/Chunk.js.map +1 -1
  7. package/dist/cjs/ConfigProvider.js +1 -0
  8. package/dist/cjs/ConfigProvider.js.map +1 -1
  9. package/dist/cjs/Cron.js +26 -10
  10. package/dist/cjs/Cron.js.map +1 -1
  11. package/dist/cjs/Duration.js +7 -4
  12. package/dist/cjs/Duration.js.map +1 -1
  13. package/dist/cjs/Effect.js.map +1 -1
  14. package/dist/cjs/Either.js +5 -24
  15. package/dist/cjs/Either.js.map +1 -1
  16. package/dist/cjs/Layer.js.map +1 -1
  17. package/dist/cjs/Option.js +1042 -363
  18. package/dist/cjs/Option.js.map +1 -1
  19. package/dist/cjs/ParseResult.js +41 -18
  20. package/dist/cjs/ParseResult.js.map +1 -1
  21. package/dist/cjs/Schedule.js +8 -1
  22. package/dist/cjs/Schedule.js.map +1 -1
  23. package/dist/cjs/Schema.js +51 -10
  24. package/dist/cjs/Schema.js.map +1 -1
  25. package/dist/cjs/internal/cause.js +23 -108
  26. package/dist/cjs/internal/cause.js.map +1 -1
  27. package/dist/cjs/internal/core.js +4 -5
  28. package/dist/cjs/internal/core.js.map +1 -1
  29. package/dist/cjs/internal/layer.js.map +1 -1
  30. package/dist/cjs/internal/schedule.js.map +1 -1
  31. package/dist/cjs/internal/secret.js +6 -5
  32. package/dist/cjs/internal/secret.js.map +1 -1
  33. package/dist/cjs/internal/stream.js +21 -23
  34. package/dist/cjs/internal/stream.js.map +1 -1
  35. package/dist/cjs/internal/version.js +1 -1
  36. package/dist/dts/BigDecimal.d.ts.map +1 -1
  37. package/dist/dts/Cause.d.ts +1157 -304
  38. package/dist/dts/Cause.d.ts.map +1 -1
  39. package/dist/dts/Chunk.d.ts +3 -6
  40. package/dist/dts/Chunk.d.ts.map +1 -1
  41. package/dist/dts/ConfigProvider.d.ts.map +1 -1
  42. package/dist/dts/Cron.d.ts +25 -9
  43. package/dist/dts/Cron.d.ts.map +1 -1
  44. package/dist/dts/Duration.d.ts +1 -1
  45. package/dist/dts/Duration.d.ts.map +1 -1
  46. package/dist/dts/Effect.d.ts +3 -2
  47. package/dist/dts/Effect.d.ts.map +1 -1
  48. package/dist/dts/Either.d.ts.map +1 -1
  49. package/dist/dts/Layer.d.ts +1 -1
  50. package/dist/dts/Layer.d.ts.map +1 -1
  51. package/dist/dts/Option.d.ts +2288 -784
  52. package/dist/dts/Option.d.ts.map +1 -1
  53. package/dist/dts/ParseResult.d.ts +4 -4
  54. package/dist/dts/ParseResult.d.ts.map +1 -1
  55. package/dist/dts/Schedule.d.ts +7 -0
  56. package/dist/dts/Schedule.d.ts.map +1 -1
  57. package/dist/dts/Schema.d.ts +15 -4
  58. package/dist/dts/Schema.d.ts.map +1 -1
  59. package/dist/dts/internal/core.d.ts.map +1 -1
  60. package/dist/dts/internal/stream.d.ts +1 -1
  61. package/dist/dts/internal/stream.d.ts.map +1 -1
  62. package/dist/esm/BigDecimal.js +1 -1
  63. package/dist/esm/BigDecimal.js.map +1 -1
  64. package/dist/esm/Cause.js +630 -167
  65. package/dist/esm/Cause.js.map +1 -1
  66. package/dist/esm/Chunk.js +4 -8
  67. package/dist/esm/Chunk.js.map +1 -1
  68. package/dist/esm/ConfigProvider.js +1 -0
  69. package/dist/esm/ConfigProvider.js.map +1 -1
  70. package/dist/esm/Cron.js +27 -11
  71. package/dist/esm/Cron.js.map +1 -1
  72. package/dist/esm/Duration.js +7 -4
  73. package/dist/esm/Duration.js.map +1 -1
  74. package/dist/esm/Effect.js.map +1 -1
  75. package/dist/esm/Either.js +5 -24
  76. package/dist/esm/Either.js.map +1 -1
  77. package/dist/esm/Layer.js.map +1 -1
  78. package/dist/esm/Option.js +1041 -363
  79. package/dist/esm/Option.js.map +1 -1
  80. package/dist/esm/ParseResult.js +41 -18
  81. package/dist/esm/ParseResult.js.map +1 -1
  82. package/dist/esm/Schedule.js +7 -0
  83. package/dist/esm/Schedule.js.map +1 -1
  84. package/dist/esm/Schema.js +51 -10
  85. package/dist/esm/Schema.js.map +1 -1
  86. package/dist/esm/internal/cause.js +22 -108
  87. package/dist/esm/internal/cause.js.map +1 -1
  88. package/dist/esm/internal/core.js +4 -5
  89. package/dist/esm/internal/core.js.map +1 -1
  90. package/dist/esm/internal/layer.js.map +1 -1
  91. package/dist/esm/internal/schedule.js.map +1 -1
  92. package/dist/esm/internal/secret.js +5 -4
  93. package/dist/esm/internal/secret.js.map +1 -1
  94. package/dist/esm/internal/stream.js +21 -23
  95. package/dist/esm/internal/stream.js.map +1 -1
  96. package/dist/esm/internal/version.js +1 -1
  97. package/package.json +1 -1
  98. package/src/BigDecimal.ts +1 -1
  99. package/src/Cause.ts +1158 -304
  100. package/src/Chunk.ts +8 -11
  101. package/src/ConfigProvider.ts +1 -0
  102. package/src/Cron.ts +28 -11
  103. package/src/Duration.ts +10 -5
  104. package/src/Effect.ts +5 -2
  105. package/src/Either.ts +11 -28
  106. package/src/Layer.ts +1 -1
  107. package/src/Option.ts +2314 -820
  108. package/src/ParseResult.ts +53 -29
  109. package/src/Schedule.ts +8 -0
  110. package/src/Schema.ts +68 -12
  111. package/src/internal/cause.ts +38 -137
  112. package/src/internal/core.ts +4 -5
  113. package/src/internal/layer.ts +1 -1
  114. package/src/internal/schedule.ts +7 -6
  115. package/src/internal/secret.ts +6 -4
  116. package/src/internal/stream.ts +24 -37
  117. package/src/internal/version.ts +1 -1
@@ -1,6 +1,7 @@
1
1
  /**
2
2
  * @since 3.10.0
3
3
  */
4
+ import * as internalCause_ from "effect/internal/cause";
4
5
  import * as array_ from "./Array.js";
5
6
  import * as bigDecimal_ from "./BigDecimal.js";
6
7
  import * as bigInt_ from "./BigInt.js";
@@ -3001,6 +3002,18 @@ export class DurationFromMillis extends /*#__PURE__*/transform(NonNegative.annot
3001
3002
  }).annotations({
3002
3003
  identifier: "DurationFromMillis"
3003
3004
  }) {}
3005
+ const DurationValueMillis = /*#__PURE__*/TaggedStruct("Millis", {
3006
+ millis: NonNegativeInt
3007
+ });
3008
+ const DurationValueNanos = /*#__PURE__*/TaggedStruct("Nanos", {
3009
+ nanos: BigInt$
3010
+ });
3011
+ const DurationValueInfinity = /*#__PURE__*/TaggedStruct("Infinity", {});
3012
+ const durationValueInfinity = /*#__PURE__*/DurationValueInfinity.make({});
3013
+ const DurationValue = /*#__PURE__*/Union(DurationValueMillis, DurationValueNanos, DurationValueInfinity).annotations({
3014
+ identifier: "DurationValue",
3015
+ description: "an JSON-compatible tagged union to be decoded into a Duration"
3016
+ });
3004
3017
  const FiniteHRTime = /*#__PURE__*/Tuple(element(NonNegativeInt).annotations({
3005
3018
  title: "seconds"
3006
3019
  }), element(NonNegativeInt).annotations({
@@ -3015,18 +3028,44 @@ const HRTime = /*#__PURE__*/Union(FiniteHRTime, InfiniteHRTime).annotations({
3015
3028
  identifier: "HRTime",
3016
3029
  description: "a tuple of seconds and nanos to be decoded into a Duration"
3017
3030
  });
3031
+ const isDurationValue = u => typeof u === "object";
3032
+ // TODO(4.0): remove HRTime union member
3018
3033
  /**
3019
- * A schema that transforms a `[number, number]` tuple into a `Duration`.
3020
- *
3021
- * Infinite durations are encoded as `[-1, 0]`.
3034
+ * A schema that converts a JSON-compatible tagged union into a `Duration`.
3022
3035
  *
3023
3036
  * @category Duration transformations
3024
3037
  * @since 3.10.0
3025
3038
  */
3026
- export class Duration extends /*#__PURE__*/transform(HRTime, DurationFromSelf, {
3039
+ export class Duration extends /*#__PURE__*/transform(Union(DurationValue, HRTime), DurationFromSelf, {
3027
3040
  strict: true,
3028
- decode: ([seconds, nanos]) => seconds === -1 ? duration_.infinity : duration_.nanos(BigInt(seconds) * BigInt(1e9) + BigInt(nanos)),
3029
- encode: duration => duration.value._tag === "Infinity" ? [-1, 0] : duration_.toHrTime(duration)
3041
+ decode: input => {
3042
+ if (isDurationValue(input)) {
3043
+ switch (input._tag) {
3044
+ case "Millis":
3045
+ return duration_.millis(input.millis);
3046
+ case "Nanos":
3047
+ return duration_.nanos(input.nanos);
3048
+ case "Infinity":
3049
+ return duration_.infinity;
3050
+ }
3051
+ }
3052
+ const [seconds, nanos] = input;
3053
+ return seconds === -1 ? duration_.infinity : duration_.nanos(BigInt(seconds) * BigInt(1e9) + BigInt(nanos));
3054
+ },
3055
+ encode: duration => {
3056
+ switch (duration.value._tag) {
3057
+ case "Millis":
3058
+ return DurationValueMillis.make({
3059
+ millis: duration.value.millis
3060
+ });
3061
+ case "Nanos":
3062
+ return DurationValueNanos.make({
3063
+ nanos: duration.value.nanos
3064
+ });
3065
+ case "Infinity":
3066
+ return durationValueInfinity;
3067
+ }
3068
+ }
3030
3069
  }).annotations({
3031
3070
  identifier: "Duration"
3032
3071
  }) {}
@@ -3325,8 +3364,8 @@ export const ItemsCountSchemaId = schemaId_.ItemsCountSchemaId;
3325
3364
  */
3326
3365
  export const itemsCount = (n, annotations) => self => {
3327
3366
  const itemsCount = Math.floor(n);
3328
- if (itemsCount < 1) {
3329
- throw new Error(errors_.getInvalidArgumentErrorMessage(`Expected an integer greater than or equal to 1, actual ${n}`));
3367
+ if (itemsCount < 0) {
3368
+ throw new Error(errors_.getInvalidArgumentErrorMessage(`Expected an integer greater than or equal to 0, actual ${n}`));
3330
3369
  }
3331
3370
  return self.pipe(filter(a => a.length === itemsCount, {
3332
3371
  schemaId: ItemsCountSchemaId,
@@ -4662,7 +4701,9 @@ const extendFields = (a, b) => {
4662
4701
  }
4663
4702
  return out;
4664
4703
  };
4665
- const getDisableValidationMakeOption = options => Predicate.isBoolean(options) ? options : options?.disableValidation ?? false;
4704
+ function getDisableValidationMakeOption(options) {
4705
+ return Predicate.isBoolean(options) ? options : options?.disableValidation ?? false;
4706
+ }
4666
4707
  const astCache = /*#__PURE__*/globalValue("effect/Schema/astCache", () => new WeakMap());
4667
4708
  const getClassAnnotations = annotations => {
4668
4709
  if (annotations === undefined) {
@@ -5132,7 +5173,7 @@ export const Defect = /*#__PURE__*/transform(Unknown, Unknown, {
5132
5173
  // no stack because of security reasons
5133
5174
  };
5134
5175
  }
5135
- return String(defect);
5176
+ return internalCause_.prettyErrorMessage(defect);
5136
5177
  }
5137
5178
  }).annotations({
5138
5179
  identifier: "Defect"