@deslop/stash 0.1.1076 → 0.1.1079

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.
@@ -7,7 +7,7 @@ import * as NFS from "node:fs";
7
7
  import * as Path from "node:path";
8
8
  import * as NodeUrl from "node:url";
9
9
  import * as readline from "node:readline";
10
- //#region ../../node_modules/.pnpm/effect@4.0.4/node_modules/effect/dist/Pipeable.js
10
+ //#region ../../node_modules/.pnpm/effect@4.0.5/node_modules/effect/dist/Pipeable.js
11
11
  /**
12
12
  * The `Pipeable` module defines the shared interface and implementation helpers
13
13
  * for values that support Effect-style method chaining with `.pipe(...)`.
@@ -113,7 +113,7 @@ const Class$3 = /*#__PURE__*/ function() {
113
113
  return PipeableBase;
114
114
  }();
115
115
  //#endregion
116
- //#region ../../node_modules/.pnpm/effect@4.0.4/node_modules/effect/dist/Function.js
116
+ //#region ../../node_modules/.pnpm/effect@4.0.5/node_modules/effect/dist/Function.js
117
117
  /**
118
118
  * Creates a function that can be called in data-first style or data-last
119
119
  * (`pipe`-friendly) style.
@@ -484,7 +484,7 @@ function memoizeIdempotent(f) {
484
484
  };
485
485
  }
486
486
  //#endregion
487
- //#region ../../node_modules/.pnpm/effect@4.0.4/node_modules/effect/dist/internal/equal.js
487
+ //#region ../../node_modules/.pnpm/effect@4.0.5/node_modules/effect/dist/internal/equal.js
488
488
  /** @internal */
489
489
  const getAllObjectKeys = (obj) => {
490
490
  const keys = new Set(Reflect.ownKeys(obj));
@@ -505,7 +505,7 @@ const byReferenceInstances = /*#__PURE__*/ new WeakSet();
505
505
  /** @internal */
506
506
  const viewBytes = (view) => new Uint8Array(view.buffer, view.byteOffset, view.byteLength);
507
507
  //#endregion
508
- //#region ../../node_modules/.pnpm/effect@4.0.4/node_modules/effect/dist/internal/hash.js
508
+ //#region ../../node_modules/.pnpm/effect@4.0.5/node_modules/effect/dist/internal/hash.js
509
509
  /**
510
510
  * Back-edge count used to avoid caching entry-point-dependent hashes.
511
511
  *
@@ -517,7 +517,7 @@ const addBackEdge = () => {
517
517
  backEdges++;
518
518
  };
519
519
  //#endregion
520
- //#region ../../node_modules/.pnpm/effect@4.0.4/node_modules/effect/dist/Predicate.js
520
+ //#region ../../node_modules/.pnpm/effect@4.0.5/node_modules/effect/dist/Predicate.js
521
521
  /**
522
522
  * Defines runtime checks for values.
523
523
  *
@@ -531,6 +531,36 @@ const addBackEdge = () => {
531
531
  * @since 2.0.0
532
532
  */
533
533
  /**
534
+ * Checks whether a readonly array has exactly `n` elements.
535
+ *
536
+ * **When to use**
537
+ *
538
+ * Use when you need a `Predicate` guard for exact tuple length that narrows
539
+ * `ReadonlyArray<T>` to `TupleOf<N, T>`.
540
+ *
541
+ * **Details**
542
+ *
543
+ * This only checks length, not element types, and returns a refinement on the
544
+ * array type.
545
+ *
546
+ * **Example** (Checking exact length)
547
+ *
548
+ * ```ts import.meta.vitest
549
+ * import { Predicate } from "effect"
550
+ *
551
+ * const isPair = Predicate.isTupleOf(2)
552
+ *
553
+ * isPair([1, 2]) // => true
554
+ * ```
555
+ *
556
+ * @see {@link isTupleOfAtLeast}
557
+ * @see {@link Tuple}
558
+ * @stability stable
559
+ * @category guards
560
+ * @since 3.3.0
561
+ */
562
+ const isTupleOf = /*#__PURE__*/ dual(2, (self, n) => self.length === n);
563
+ /**
534
564
  * Checks whether a value is a `string`.
535
565
  *
536
566
  * **When to use**
@@ -1171,7 +1201,7 @@ function isIterable(input) {
1171
1201
  return hasProperty(input, Symbol.iterator) || isString$2(input);
1172
1202
  }
1173
1203
  //#endregion
1174
- //#region ../../node_modules/.pnpm/effect@4.0.4/node_modules/effect/dist/Hash.js
1204
+ //#region ../../node_modules/.pnpm/effect@4.0.5/node_modules/effect/dist/Hash.js
1175
1205
  /**
1176
1206
  * Computes Effect hash values and defines the interface for objects that want
1177
1207
  * to provide their own hash implementation. Hashes are small numeric
@@ -1567,7 +1597,7 @@ const randomHashCache = /*#__PURE__*/ new WeakMap();
1567
1597
  const hashCache = /*#__PURE__*/ new WeakMap();
1568
1598
  const visitedObjects = /*#__PURE__*/ new WeakSet();
1569
1599
  //#endregion
1570
- //#region ../../node_modules/.pnpm/effect@4.0.4/node_modules/effect/dist/Equal.js
1600
+ //#region ../../node_modules/.pnpm/effect@4.0.5/node_modules/effect/dist/Equal.js
1571
1601
  /**
1572
1602
  * Defines the unique string identifier for the `Equal` interface.
1573
1603
  *
@@ -1786,7 +1816,7 @@ const isEqual = (u) => hasProperty(u, symbol$1);
1786
1816
  */
1787
1817
  const asEquivalence = () => equals$1;
1788
1818
  //#endregion
1789
- //#region ../../node_modules/.pnpm/effect@4.0.4/node_modules/effect/dist/Redactable.js
1819
+ //#region ../../node_modules/.pnpm/effect@4.0.5/node_modules/effect/dist/Redactable.js
1790
1820
  /**
1791
1821
  * Defines the symbol used to identify objects that implement the {@link Redactable}
1792
1822
  * protocol.
@@ -1865,7 +1895,7 @@ const isRedactable = (u) => hasProperty(u, symbolRedactable);
1865
1895
  * @category destructors
1866
1896
  * @since 3.10.0
1867
1897
  */
1868
- function redact$1(u) {
1898
+ function redact$2(u) {
1869
1899
  if (isRedactable(u)) return getRedacted(u);
1870
1900
  return u;
1871
1901
  }
@@ -1909,7 +1939,7 @@ const emptyContext$1 = {
1909
1939
  }
1910
1940
  };
1911
1941
  //#endregion
1912
- //#region ../../node_modules/.pnpm/effect@4.0.4/node_modules/effect/dist/Formatter.js
1942
+ //#region ../../node_modules/.pnpm/effect@4.0.5/node_modules/effect/dist/Formatter.js
1913
1943
  /**
1914
1944
  * Formats JavaScript values into readable strings.
1915
1945
  *
@@ -2148,7 +2178,7 @@ function formatJson(input, options) {
2148
2178
  const ancestors = [];
2149
2179
  return JSON.stringify(input, function(key, value) {
2150
2180
  const original = Object.getOwnPropertyDescriptor(this, key)?.value;
2151
- const redacted = hasProperty(original, symbolRedactable) ? redact$1(original) : redact$1(value);
2181
+ const redacted = hasProperty(original, symbolRedactable) ? redact$2(original) : redact$2(value);
2152
2182
  if (typeof redacted === "bigint") return format$2(redacted);
2153
2183
  if (typeof redacted !== "object" || redacted === null) return redacted;
2154
2184
  const current = redacted instanceof Error && !hasProperty(redacted, "toJSON") ? {
@@ -2163,7 +2193,7 @@ function formatJson(input, options) {
2163
2193
  if (!hasGetter(current) || isJsonPrimitiveWrapper(current)) return current;
2164
2194
  const serialized = new Proxy(current, { get(target, key) {
2165
2195
  const value = Reflect.get(target, key, target);
2166
- return Object.getOwnPropertyDescriptor(target, key)?.get !== void 0 ? redact$1(value) : value;
2196
+ return Object.getOwnPropertyDescriptor(target, key)?.get !== void 0 ? redact$2(value) : value;
2167
2197
  } });
2168
2198
  ancestors.push(serialized);
2169
2199
  return serialized;
@@ -2185,7 +2215,7 @@ function isJsonPrimitiveWrapper(object) {
2185
2215
  return false;
2186
2216
  }
2187
2217
  //#endregion
2188
- //#region ../../node_modules/.pnpm/effect@4.0.4/node_modules/effect/dist/Inspectable.js
2218
+ //#region ../../node_modules/.pnpm/effect@4.0.5/node_modules/effect/dist/Inspectable.js
2189
2219
  /**
2190
2220
  * Controls how values appear in logs and debugging output.
2191
2221
  *
@@ -2257,7 +2287,7 @@ const NodeInspectSymbol = /*#__PURE__*/ Symbol.for("nodejs.util.inspect.custom")
2257
2287
  */
2258
2288
  const toJson = (input) => {
2259
2289
  try {
2260
- input = redact$1(input);
2290
+ input = redact$2(input);
2261
2291
  if (hasProperty(input, "toJSON") && isFunction(input["toJSON"]) && input["toJSON"].length === 0) return input.toJSON();
2262
2292
  else if (Array.isArray(input)) return input.map(toJson);
2263
2293
  return input;
@@ -2411,7 +2441,7 @@ var Class$2 = class {
2411
2441
  }
2412
2442
  };
2413
2443
  //#endregion
2414
- //#region ../../node_modules/.pnpm/effect@4.0.4/node_modules/effect/dist/internal/stackTraceLimit.js
2444
+ //#region ../../node_modules/.pnpm/effect@4.0.5/node_modules/effect/dist/internal/stackTraceLimit.js
2415
2445
  /**
2416
2446
  * Check if `Error.stackTraceLimit` is writable.
2417
2447
  * Returns `false` if the property is frozen, non-writable, or `Error` is non-extensible.
@@ -2443,7 +2473,7 @@ const setStackTraceLimit = (value) => {
2443
2473
  if (canWriteStackTraceLimit) Error.stackTraceLimit = value;
2444
2474
  };
2445
2475
  //#endregion
2446
- //#region ../../node_modules/.pnpm/effect@4.0.4/node_modules/effect/dist/Utils.js
2476
+ //#region ../../node_modules/.pnpm/effect@4.0.5/node_modules/effect/dist/Utils.js
2447
2477
  /**
2448
2478
  * Yields its wrapped value exactly once, then completes with the value sent
2449
2479
  * back in.
@@ -2526,7 +2556,7 @@ const pickInternalCall = () => {
2526
2556
  /** @internal */
2527
2557
  const internalCall = /*#__PURE__*/ pickInternalCall();
2528
2558
  //#endregion
2529
- //#region ../../node_modules/.pnpm/effect@4.0.4/node_modules/effect/dist/internal/record.js
2559
+ //#region ../../node_modules/.pnpm/effect@4.0.5/node_modules/effect/dist/internal/record.js
2530
2560
  /** @internal */
2531
2561
  function assignProperty$1(self, key, value) {
2532
2562
  if (key === "__proto__") Object.defineProperty(self, key, {
@@ -2542,7 +2572,7 @@ function assignProperties(self, source) {
2542
2572
  for (const key of Reflect.ownKeys(source)) if (Object.prototype.propertyIsEnumerable.call(source, key)) assignProperty$1(self, key, source[key]);
2543
2573
  }
2544
2574
  //#endregion
2545
- //#region ../../node_modules/.pnpm/effect@4.0.4/node_modules/effect/dist/internal/core.js
2575
+ //#region ../../node_modules/.pnpm/effect@4.0.5/node_modules/effect/dist/internal/core.js
2546
2576
  /** @internal */
2547
2577
  const EffectTypeId = `~effect/Effect`;
2548
2578
  /** @internal */
@@ -2722,6 +2752,18 @@ const causeCombine = /*#__PURE__*/ dual(2, (self, that) => {
2722
2752
  const newCause = new CauseImpl(dedupeReasons(self.reasons, that.reasons));
2723
2753
  return equals$1(self, newCause) ? self : newCause;
2724
2754
  });
2755
+ /**
2756
+ * Appends the interrupts from `interrupts` that `self` does not contain yet.
2757
+ * Unlike `causeCombine`, it never calls hash or equality methods, which can be
2758
+ * user-defined, random, or throwing.
2759
+ *
2760
+ * @internal
2761
+ */
2762
+ const causeAddInterrupts = (self, interrupts) => {
2763
+ const reasons = self.reasons.slice();
2764
+ for (const reason of interrupts.reasons) if (isInterruptReason(reason) && !reasons.some((r) => isInterruptReason(r) && r.fiberId === reason.fiberId && r.annotations === reason.annotations)) reasons.push(reason);
2765
+ return reasons.length === self.reasons.length ? self : new CauseImpl(reasons);
2766
+ };
2725
2767
  /** @internal */
2726
2768
  const causeEmpty = /*#__PURE__*/ new CauseImpl([]);
2727
2769
  /** @internal */
@@ -2851,7 +2893,7 @@ const exitFailCause = /*#__PURE__*/ makeExit({
2851
2893
  cont = fiber.getCont(contE);
2852
2894
  }
2853
2895
  if (skippedHandler) cause = causeFromReasons(cause.reasons.filter((reason) => reason._tag !== "Fail"));
2854
- cause = causeCombine(cause, interruptedCause);
2896
+ cause = causeAddInterrupts(cause, interruptedCause);
2855
2897
  annotated = true;
2856
2898
  }
2857
2899
  return cont ? cont[contE](cause, fiber, annotated ? void 0 : this) : fiber.yieldWith(annotated ? exitFailCause(cause) : this);
@@ -2961,7 +3003,7 @@ const done$2 = (value) => {
2961
3003
  return exitFail(Done$1(value));
2962
3004
  };
2963
3005
  //#endregion
2964
- //#region ../../node_modules/.pnpm/effect@4.0.4/node_modules/effect/dist/Effectable.js
3006
+ //#region ../../node_modules/.pnpm/effect@4.0.5/node_modules/effect/dist/Effectable.js
2965
3007
  /**
2966
3008
  * Create a low-level `Effect` prototype.
2967
3009
  *
@@ -2987,7 +3029,7 @@ const Prototype = (options) => makePrimitiveProto({
2987
3029
  [evaluate]: options.evaluate
2988
3030
  });
2989
3031
  //#endregion
2990
- //#region ../../node_modules/.pnpm/effect@4.0.4/node_modules/effect/dist/Equivalence.js
3032
+ //#region ../../node_modules/.pnpm/effect@4.0.5/node_modules/effect/dist/Equivalence.js
2991
3033
  /**
2992
3034
  * Creates a custom equivalence relation with an optimized reference equality check.
2993
3035
  *
@@ -3037,7 +3079,7 @@ const Prototype = (options) => makePrimitiveProto({
3037
3079
  * @category constructors
3038
3080
  * @since 2.0.0
3039
3081
  */
3040
- const make$39 = (isEquivalent) => (self, that) => self === that || isEquivalent(self, that);
3082
+ const make$41 = (isEquivalent) => (self, that) => self === that || isEquivalent(self, that);
3041
3083
  const isStrictEquivalent = (x, y) => x === y;
3042
3084
  /**
3043
3085
  * Creates an equivalence relation that uses strict equality (`===`) to compare values.
@@ -3147,7 +3189,7 @@ const strictEqual = () => isStrictEquivalent;
3147
3189
  * @since 4.0.0
3148
3190
  */
3149
3191
  function Tuple$1(elements) {
3150
- return make$39((self, that) => {
3192
+ return make$41((self, that) => {
3151
3193
  if (self.length !== that.length) return false;
3152
3194
  for (let i = 0; i < self.length; i++) if (!elements[i](self[i], that[i])) return false;
3153
3195
  return true;
@@ -3157,14 +3199,14 @@ function Tuple$1(elements) {
3157
3199
  * @since 4.0.0
3158
3200
  */
3159
3201
  function Array_(item) {
3160
- return make$39((self, that) => {
3202
+ return make$41((self, that) => {
3161
3203
  if (self.length !== that.length) return false;
3162
3204
  for (let i = 0; i < self.length; i++) if (!item(self[i], that[i])) return false;
3163
3205
  return true;
3164
3206
  });
3165
3207
  }
3166
3208
  //#endregion
3167
- //#region ../../node_modules/.pnpm/effect@4.0.4/node_modules/effect/dist/internal/option.js
3209
+ //#region ../../node_modules/.pnpm/effect@4.0.5/node_modules/effect/dist/internal/option.js
3168
3210
  /**
3169
3211
  * @since 2.0.0
3170
3212
  */
@@ -3235,7 +3277,7 @@ SomeImpl.prototype = SomeProto;
3235
3277
  /** @internal */
3236
3278
  const some$2 = (value) => new SomeImpl(value);
3237
3279
  //#endregion
3238
- //#region ../../node_modules/.pnpm/effect@4.0.4/node_modules/effect/dist/internal/result.js
3280
+ //#region ../../node_modules/.pnpm/effect@4.0.5/node_modules/effect/dist/internal/result.js
3239
3281
  const TypeId$38 = "~effect/Result";
3240
3282
  const CommonProto = {
3241
3283
  [TypeId$38]: {
@@ -3311,7 +3353,7 @@ const succeed$9 = (success) => new SuccessImpl(success);
3311
3353
  /** @internal */
3312
3354
  const fromOption$3 = /*#__PURE__*/ dual(2, (self, onNone) => isNone$1(self) ? fail$8(onNone()) : succeed$9(self.value));
3313
3355
  //#endregion
3314
- //#region ../../node_modules/.pnpm/effect@4.0.4/node_modules/effect/dist/Order.js
3356
+ //#region ../../node_modules/.pnpm/effect@4.0.5/node_modules/effect/dist/Order.js
3315
3357
  /**
3316
3358
  * Defines comparison functions for ordered values.
3317
3359
  *
@@ -3361,7 +3403,7 @@ const fromOption$3 = /*#__PURE__*/ dual(2, (self, onNone) => isNone$1(self) ? fa
3361
3403
  * @category constructors
3362
3404
  * @since 2.0.0
3363
3405
  */
3364
- function make$38(compare) {
3406
+ function make$40(compare) {
3365
3407
  return (self, that) => self === that ? 0 : compare(self, that);
3366
3408
  }
3367
3409
  /**
@@ -3392,7 +3434,7 @@ function make$38(compare) {
3392
3434
  * @category instances
3393
3435
  * @since 4.0.0
3394
3436
  */
3395
- const String$6 = /*#__PURE__*/ make$38((self, that) => self < that ? -1 : 1);
3437
+ const String$6 = /*#__PURE__*/ make$40((self, that) => self < that ? -1 : 1);
3396
3438
  /**
3397
3439
  * Order instance for numbers that compares them numerically.
3398
3440
  *
@@ -3425,7 +3467,7 @@ const String$6 = /*#__PURE__*/ make$38((self, that) => self < that ? -1 : 1);
3425
3467
  * @category instances
3426
3468
  * @since 4.0.0
3427
3469
  */
3428
- const Number$5 = /*#__PURE__*/ make$38((self, that) => {
3470
+ const Number$5 = /*#__PURE__*/ make$40((self, that) => {
3429
3471
  if (globalThis.Number.isNaN(self) && globalThis.Number.isNaN(that)) return 0;
3430
3472
  if (globalThis.Number.isNaN(self)) return -1;
3431
3473
  if (globalThis.Number.isNaN(that)) return 1;
@@ -3462,7 +3504,7 @@ const Number$5 = /*#__PURE__*/ make$38((self, that) => {
3462
3504
  * @since 4.0.0
3463
3505
  */
3464
3506
  function flip$1(O) {
3465
- return make$38((self, that) => O(that, self));
3507
+ return make$40((self, that) => O(that, self));
3466
3508
  }
3467
3509
  /**
3468
3510
  * Combines two `Order` instances to create a new `Order` that first compares using the first `Order`,
@@ -3507,7 +3549,7 @@ function flip$1(O) {
3507
3549
  * @category combining
3508
3550
  * @since 2.0.0
3509
3551
  */
3510
- const combine$1 = /*#__PURE__*/ dual(2, (self, that) => make$38((a1, a2) => {
3552
+ const combine$1 = /*#__PURE__*/ dual(2, (self, that) => make$40((a1, a2) => {
3511
3553
  const out = self(a1, a2);
3512
3554
  if (out !== 0) return out;
3513
3555
  return that(a1, a2);
@@ -3545,7 +3587,7 @@ const combine$1 = /*#__PURE__*/ dual(2, (self, that) => make$38((a1, a2) => {
3545
3587
  * @category mapping
3546
3588
  * @since 2.0.0
3547
3589
  */
3548
- const mapInput = /*#__PURE__*/ dual(2, (self, f) => make$38((b1, b2) => self(f(b1), f(b2))));
3590
+ const mapInput = /*#__PURE__*/ dual(2, (self, f) => make$40((b1, b2) => self(f(b1), f(b2))));
3549
3591
  /**
3550
3592
  * Checks whether one value is strictly less than another according to the given order.
3551
3593
  *
@@ -3736,7 +3778,7 @@ const min$2 = (O) => dual(2, (self, that) => self === that || O(self, that) < 1
3736
3778
  */
3737
3779
  const max$1 = (O) => dual(2, (self, that) => self === that || O(self, that) > -1 ? self : that);
3738
3780
  //#endregion
3739
- //#region ../../node_modules/.pnpm/effect@4.0.4/node_modules/effect/dist/Option.js
3781
+ //#region ../../node_modules/.pnpm/effect@4.0.5/node_modules/effect/dist/Option.js
3740
3782
  /**
3741
3783
  * Creates an `Option` representing the absence of a value.
3742
3784
  *
@@ -3945,7 +3987,7 @@ const match$6 = /*#__PURE__*/ dual(2, (self, { onNone, onSome }) => isNone(self)
3945
3987
  * @category getters
3946
3988
  * @since 2.0.0
3947
3989
  */
3948
- const getOrElse$1 = /*#__PURE__*/ dual(2, (self, onNone) => isNone(self) ? onNone() : self.value);
3990
+ const getOrElse = /*#__PURE__*/ dual(2, (self, onNone) => isNone(self) ? onNone() : self.value);
3949
3991
  /**
3950
3992
  * Returns the fallback `Option` if `self` is `None`; otherwise returns `self`.
3951
3993
  *
@@ -4130,7 +4172,7 @@ const fromNullOr = (a) => a === null ? none() : some$1(a);
4130
4172
  * @category getters
4131
4173
  * @since 2.0.0
4132
4174
  */
4133
- const getOrNull = /*#__PURE__*/ getOrElse$1(constNull);
4175
+ const getOrNull = /*#__PURE__*/ getOrElse(constNull);
4134
4176
  /**
4135
4177
  * Extracts the value from a `Some`, or returns `undefined` for `None`.
4136
4178
  *
@@ -4160,7 +4202,7 @@ const getOrNull = /*#__PURE__*/ getOrElse$1(constNull);
4160
4202
  * @category getters
4161
4203
  * @since 2.0.0
4162
4204
  */
4163
- const getOrUndefined$1 = /*#__PURE__*/ getOrElse$1(constUndefined);
4205
+ const getOrUndefined$1 = /*#__PURE__*/ getOrElse(constUndefined);
4164
4206
  /**
4165
4207
  * Lifts a function that may throw into one that returns an `Option`.
4166
4208
  *
@@ -4598,7 +4640,7 @@ const contains$1 = /*#__PURE__*/ containsWith$1(/*#__PURE__*/ asEquivalence());
4598
4640
  */
4599
4641
  const exists = /*#__PURE__*/ dual(2, (self, refinement) => isNone(self) ? false : refinement(self.value));
4600
4642
  //#endregion
4601
- //#region ../../node_modules/.pnpm/effect@4.0.4/node_modules/effect/dist/Context.js
4643
+ //#region ../../node_modules/.pnpm/effect@4.0.5/node_modules/effect/dist/Context.js
4602
4644
  /**
4603
4645
  * Runtime type identifier attached to `Context` service keys and used by
4604
4646
  * `isKey` to recognize them.
@@ -4693,7 +4735,7 @@ const ServiceProto = {
4693
4735
  return self;
4694
4736
  },
4695
4737
  context(self) {
4696
- return make$37(this, self);
4738
+ return make$39(this, self);
4697
4739
  },
4698
4740
  use(f) {
4699
4741
  return withFiber$1((fiber) => f(get$6(fiber.context, this)));
@@ -4734,12 +4776,12 @@ const withFlat = (self, f) => {
4734
4776
  f(map);
4735
4777
  return makeUnsafe$6(map);
4736
4778
  };
4737
- const notFound = /*#__PURE__*/ Symbol();
4779
+ const notFound$1 = /*#__PURE__*/ Symbol();
4738
4780
  const lookup = (self, key) => {
4739
4781
  const impl = self;
4740
4782
  for (let overlay = impl.overlay; overlay; overlay = overlay.parent) if (overlay.key === key) return overlay.value;
4741
4783
  const value = impl.base.get(key);
4742
- if (value === void 0 && !impl.base.has(key)) return notFound;
4784
+ if (value === void 0 && !impl.base.has(key)) return notFound$1;
4743
4785
  if (impl.overlay && ++impl.baseHits >= impl.base.size && impl.baseHits >= FlattenAfterBaseHits) {
4744
4786
  impl.base = flatten$4(impl);
4745
4787
  impl.overlay = void 0;
@@ -4898,7 +4940,7 @@ const emptyContext = /*#__PURE__*/ makeUnsafe$6(/*#__PURE__*/ new Map());
4898
4940
  * @category constructors
4899
4941
  * @since 2.0.0
4900
4942
  */
4901
- const make$37 = (key, service) => makeUnsafe$6(/* @__PURE__ */ new Map([[key.key, service]]));
4943
+ const make$39 = (key, service) => makeUnsafe$6(/* @__PURE__ */ new Map([[key.key, service]]));
4902
4944
  /**
4903
4945
  * Adds a service to a given `Context`.
4904
4946
  *
@@ -4983,7 +5025,7 @@ const getOrUndefined = /*#__PURE__*/ dual(2, (self, key) => getOrUndefinedUnsafe
4983
5025
  /** @internal */
4984
5026
  const getOrUndefinedUnsafe = (self, key) => {
4985
5027
  const value = lookup(self, key);
4986
- return value === notFound ? void 0 : value;
5028
+ return value === notFound$1 ? void 0 : value;
4987
5029
  };
4988
5030
  /**
4989
5031
  * Gets the service for a key, throwing if an absent non-reference key cannot be
@@ -5023,7 +5065,7 @@ const getOrUndefinedUnsafe = (self, key) => {
5023
5065
  */
5024
5066
  const getUnsafe$1 = /*#__PURE__*/ dual(2, (self, service) => {
5025
5067
  const value = lookup(self, service.key);
5026
- if (value === notFound) {
5068
+ if (value === notFound$1) {
5027
5069
  if (isReference(service)) return getDefaultValue(service);
5028
5070
  throw serviceNotFoundError(service);
5029
5071
  }
@@ -5111,7 +5153,7 @@ const serviceNotFoundError = (service) => {
5111
5153
  */
5112
5154
  const getOption = /*#__PURE__*/ dual(2, (self, service) => {
5113
5155
  const value = lookup(self, service.key);
5114
- if (value !== notFound) return some$1(value);
5156
+ if (value !== notFound$1) return some$1(value);
5115
5157
  return isReference(service) ? some$1(getDefaultValue(service)) : none();
5116
5158
  });
5117
5159
  /**
@@ -5250,7 +5292,7 @@ const mergeAll$3 = (...ctxs) => {
5250
5292
  */
5251
5293
  const Reference = Service;
5252
5294
  //#endregion
5253
- //#region ../../node_modules/.pnpm/effect@4.0.4/node_modules/effect/dist/Duration.js
5295
+ //#region ../../node_modules/.pnpm/effect@4.0.5/node_modules/effect/dist/Duration.js
5254
5296
  const TypeId$36 = "~effect/Duration";
5255
5297
  const bigint0$3 = /*#__PURE__*/ BigInt(0);
5256
5298
  const bigint1$2 = /*#__PURE__*/ BigInt(1);
@@ -5261,8 +5303,8 @@ const bigint60 = /*#__PURE__*/ BigInt(60);
5261
5303
  const bigint1e3 = /*#__PURE__*/ BigInt(1e3);
5262
5304
  const bigint1e6 = /*#__PURE__*/ BigInt(1e6);
5263
5305
  const roundTiesAwayFromZero = (input) => BigInt(Math.sign(input) * Math.round(Math.abs(input)));
5264
- const roundMillisToNanos = (millis) => roundTiesAwayFromZero(millis * 1e6);
5265
- const fromNanosNumber = (nanos) => make$36(Number.isFinite(nanos) ? roundTiesAwayFromZero(nanos) : nanos);
5306
+ const roundMillisToNanos = (millis) => Number.isInteger(millis) ? BigInt(millis) * bigint1e6 : roundTiesAwayFromZero(millis * 1e6);
5307
+ const fromNanosNumber = (nanos) => make$38(Number.isFinite(nanos) ? roundTiesAwayFromZero(nanos) : nanos);
5266
5308
  const parseNanos = (input, scale) => {
5267
5309
  const decimalIndex = input.indexOf(".");
5268
5310
  if (decimalIndex === -1) return BigInt(input) * scale;
@@ -5352,7 +5394,7 @@ const fromInputUnsafe$1 = (input) => {
5352
5394
  if (obj.minutes) millis += obj.minutes * 6e4;
5353
5395
  if (obj.seconds) millis += obj.seconds * 1e3;
5354
5396
  if (obj.milliseconds) millis += obj.milliseconds;
5355
- if (!obj.microseconds && !obj.nanoseconds) return make$36(millis);
5397
+ if (!obj.microseconds && !obj.nanoseconds) return make$38(millis);
5356
5398
  return fromNanosNumber(millis * 1e6 + (obj.microseconds ?? 0) * 1e3 + (obj.nanoseconds ?? 0));
5357
5399
  }
5358
5400
  }
@@ -5371,10 +5413,7 @@ const DurationProto = {
5371
5413
  [TypeId$36]: TypeId$36,
5372
5414
  [symbol$2]() {
5373
5415
  switch (this.value._tag) {
5374
- case "Millis": {
5375
- const nanos = this.value.millis * 1e6;
5376
- return Number.isFinite(nanos) ? hash(roundTiesAwayFromZero(nanos)) : number$1(this.value.millis);
5377
- }
5416
+ case "Millis": return hash(roundMillisToNanos(this.value.millis));
5378
5417
  case "Nanos": return hash(this.value.nanos);
5379
5418
  default: return structure(this.value);
5380
5419
  }
@@ -5419,7 +5458,7 @@ const DurationProto = {
5419
5458
  return pipeArguments(this, arguments);
5420
5459
  }
5421
5460
  };
5422
- const make$36 = (input) => {
5461
+ const make$38 = (input) => {
5423
5462
  const duration = Object.create(DurationProto);
5424
5463
  if (typeof input === "number") {
5425
5464
  if (isNaN(input) || input === 0 || Object.is(input, -0)) duration.value = zeroDurationValue;
@@ -5542,8 +5581,8 @@ const abs = (self) => {
5542
5581
  switch (self.value._tag) {
5543
5582
  case "Infinity":
5544
5583
  case "NegativeInfinity": return infinity;
5545
- case "Millis": return self.value.millis < 0 ? make$36(-self.value.millis) : self;
5546
- case "Nanos": return self.value.nanos < bigint0$3 ? make$36(-self.value.nanos) : self;
5584
+ case "Millis": return self.value.millis < 0 ? make$38(-self.value.millis) : self;
5585
+ case "Nanos": return self.value.nanos < bigint0$3 ? make$38(-self.value.nanos) : self;
5547
5586
  }
5548
5587
  };
5549
5588
  /**
@@ -5561,7 +5600,7 @@ const abs = (self) => {
5561
5600
  * @category constructors
5562
5601
  * @since 2.0.0
5563
5602
  */
5564
- const zero$2 = /*#__PURE__*/ make$36(0);
5603
+ const zero$2 = /*#__PURE__*/ make$38(0);
5565
5604
  /**
5566
5605
  * A Duration representing infinite time.
5567
5606
  *
@@ -5577,7 +5616,7 @@ const zero$2 = /*#__PURE__*/ make$36(0);
5577
5616
  * @category constructors
5578
5617
  * @since 2.0.0
5579
5618
  */
5580
- const infinity = /*#__PURE__*/ make$36(Infinity);
5619
+ const infinity = /*#__PURE__*/ make$38(Infinity);
5581
5620
  /**
5582
5621
  * A Duration representing negative infinite time.
5583
5622
  *
@@ -5593,7 +5632,7 @@ const infinity = /*#__PURE__*/ make$36(Infinity);
5593
5632
  * @category constructors
5594
5633
  * @since 4.0.0
5595
5634
  */
5596
- const negativeInfinity = /*#__PURE__*/ make$36(-Infinity);
5635
+ const negativeInfinity = /*#__PURE__*/ make$38(-Infinity);
5597
5636
  /**
5598
5637
  * Creates a Duration from nanoseconds.
5599
5638
  *
@@ -5609,7 +5648,7 @@ const negativeInfinity = /*#__PURE__*/ make$36(-Infinity);
5609
5648
  * @category constructors
5610
5649
  * @since 2.0.0
5611
5650
  */
5612
- const nanos = (nanos) => make$36(nanos);
5651
+ const nanos = (nanos) => make$38(nanos);
5613
5652
  /**
5614
5653
  * Creates a Duration from milliseconds.
5615
5654
  *
@@ -5625,7 +5664,7 @@ const nanos = (nanos) => make$36(nanos);
5625
5664
  * @category constructors
5626
5665
  * @since 2.0.0
5627
5666
  */
5628
- const millis = (millis) => make$36(millis);
5667
+ const millis = (millis) => make$38(millis);
5629
5668
  /**
5630
5669
  * Creates a Duration from seconds.
5631
5670
  *
@@ -5641,7 +5680,7 @@ const millis = (millis) => make$36(millis);
5641
5680
  * @category constructors
5642
5681
  * @since 2.0.0
5643
5682
  */
5644
- const seconds = (seconds) => make$36(seconds * 1e3);
5683
+ const seconds = (seconds) => make$38(seconds * 1e3);
5645
5684
  /**
5646
5685
  * Creates a Duration from minutes.
5647
5686
  *
@@ -5657,7 +5696,7 @@ const seconds = (seconds) => make$36(seconds * 1e3);
5657
5696
  * @category constructors
5658
5697
  * @since 2.0.0
5659
5698
  */
5660
- const minutes = (minutes) => make$36(minutes * 6e4);
5699
+ const minutes = (minutes) => make$38(minutes * 6e4);
5661
5700
  /**
5662
5701
  * Creates a Duration from hours.
5663
5702
  *
@@ -5673,7 +5712,7 @@ const minutes = (minutes) => make$36(minutes * 6e4);
5673
5712
  * @category constructors
5674
5713
  * @since 2.0.0
5675
5714
  */
5676
- const hours = (hours) => make$36(hours * 36e5);
5715
+ const hours = (hours) => make$38(hours * 36e5);
5677
5716
  /**
5678
5717
  * Creates a Duration from days.
5679
5718
  *
@@ -5689,7 +5728,7 @@ const hours = (hours) => make$36(hours * 36e5);
5689
5728
  * @category constructors
5690
5729
  * @since 2.0.0
5691
5730
  */
5692
- const days = (days) => make$36(days * 864e5);
5731
+ const days = (days) => make$38(days * 864e5);
5693
5732
  /**
5694
5733
  * Creates a Duration from weeks.
5695
5734
  *
@@ -5705,7 +5744,7 @@ const days = (days) => make$36(days * 864e5);
5705
5744
  * @category constructors
5706
5745
  * @since 2.0.0
5707
5746
  */
5708
- const weeks = (weeks) => make$36(weeks * 6048e5);
5747
+ const weeks = (weeks) => make$38(weeks * 6048e5);
5709
5748
  /**
5710
5749
  * Converts a Duration to milliseconds.
5711
5750
  *
@@ -5872,7 +5911,7 @@ const matchPair = /*#__PURE__*/ dual(3, (self, that, options) => {
5872
5911
  * @category instances
5873
5912
  * @since 2.0.0
5874
5913
  */
5875
- const Order$2 = /*#__PURE__*/ make$38((self, that) => matchPair(self, that, {
5914
+ const Order$2 = /*#__PURE__*/ make$40((self, that) => matchPair(self, that, {
5876
5915
  onMillis: (self, that) => self < that ? -1 : self > that ? 1 : 0,
5877
5916
  onNanos: (self, that) => self < that ? -1 : self > that ? 1 : 0,
5878
5917
  onInfinity: (self, that) => {
@@ -6034,14 +6073,14 @@ const format$1 = (self) => {
6034
6073
  return pieces.join(" ");
6035
6074
  };
6036
6075
  //#endregion
6037
- //#region ../../node_modules/.pnpm/effect@4.0.4/node_modules/effect/dist/internal/array.js
6076
+ //#region ../../node_modules/.pnpm/effect@4.0.5/node_modules/effect/dist/internal/array.js
6038
6077
  /**
6039
6078
  * @since 2.0.0
6040
6079
  */
6041
6080
  /** @internal */
6042
6081
  const isArrayNonEmpty$1 = (self) => self.length > 0;
6043
6082
  //#endregion
6044
- //#region ../../node_modules/.pnpm/effect@4.0.4/node_modules/effect/dist/internal/count.js
6083
+ //#region ../../node_modules/.pnpm/effect@4.0.5/node_modules/effect/dist/internal/count.js
6045
6084
  /**
6046
6085
  * Normalizes a collection count to a non-negative integer. `NaN` and
6047
6086
  * non-positive values become `0`; positive infinity is preserved.
@@ -6056,7 +6095,7 @@ const normalize$1 = (n) => n > 0 ? Math.floor(n) : 0;
6056
6095
  */
6057
6096
  const normalizeNonEmpty = (n) => Math.max(1, normalize$1(n));
6058
6097
  //#endregion
6059
- //#region ../../node_modules/.pnpm/effect@4.0.4/node_modules/effect/dist/Result.js
6098
+ //#region ../../node_modules/.pnpm/effect@4.0.5/node_modules/effect/dist/Result.js
6060
6099
  /**
6061
6100
  * Creates a `Result` holding a `Success` value.
6062
6101
  *
@@ -6347,40 +6386,6 @@ const map$8 = /*#__PURE__*/ dual(2, (self, f) => isSuccess$1(self) ? succeed$8(f
6347
6386
  */
6348
6387
  const match$4 = /*#__PURE__*/ dual(2, (self, { onFailure, onSuccess }) => isFailure$1(self) ? onFailure(self.failure) : onSuccess(self.success));
6349
6388
  /**
6350
- * Extracts the success value, or computes a fallback from the error.
6351
- *
6352
- * **When to use**
6353
- *
6354
- * Use when you need the success value from a `Result`, with a fallback computed
6355
- * from the failure value.
6356
- *
6357
- * **Details**
6358
- *
6359
- * - `Success<A>` returns the inner value
6360
- * - `Failure<E>` applies `onFailure` to the error and returns the result
6361
- * - The return type is `A | A2` (union of both branches)
6362
- *
6363
- * **Example** (Providing a fallback)
6364
- *
6365
- * ```ts import.meta.vitest
6366
- * import { Result } from "effect"
6367
- *
6368
- * Result.getOrElse(Result.succeed(1), () => 0) // => 1
6369
- *
6370
- * Result.getOrElse(Result.fail("err"), () => 0) // => 0
6371
- * ```
6372
- *
6373
- * @see {@link getOrNull} / {@link getOrUndefined} for simpler fallbacks
6374
- * @see {@link getOrThrow} to throw on failure
6375
- * @see {@link match} to map both branches
6376
- * @see {@link orElse} to recover with another Result instead of unwrapping
6377
- *
6378
- * @stability stable
6379
- * @category getters
6380
- * @since 2.0.0
6381
- */
6382
- const getOrElse = /*#__PURE__*/ dual(2, (self, onFailure) => isFailure$1(self) ? onFailure(self.failure) : self.success);
6383
- /**
6384
6389
  * Extracts the success value or throws the raw failure value `E`.
6385
6390
  *
6386
6391
  * **When to use**
@@ -6505,7 +6510,7 @@ const all$3 = (input) => {
6505
6510
  return succeed$8(out);
6506
6511
  };
6507
6512
  //#endregion
6508
- //#region ../../node_modules/.pnpm/effect@4.0.4/node_modules/effect/dist/Tuple.js
6513
+ //#region ../../node_modules/.pnpm/effect@4.0.5/node_modules/effect/dist/Tuple.js
6509
6514
  /**
6510
6515
  * Creates a tuple from the provided arguments.
6511
6516
  *
@@ -6533,7 +6538,7 @@ const all$3 = (input) => {
6533
6538
  * @category constructors
6534
6539
  * @since 2.0.0
6535
6540
  */
6536
- const make$35 = (...elements) => elements;
6541
+ const make$37 = (...elements) => elements;
6537
6542
  /**
6538
6543
  * Creates an `Equivalence` for tuples by comparing corresponding elements
6539
6544
  * using the provided per-position `Equivalence`s. Two tuples are equivalent
@@ -6568,7 +6573,7 @@ const make$35 = (...elements) => elements;
6568
6573
  */
6569
6574
  const makeEquivalence$4 = Tuple$1;
6570
6575
  //#endregion
6571
- //#region ../../node_modules/.pnpm/effect@4.0.4/node_modules/effect/dist/Iterable.js
6576
+ //#region ../../node_modules/.pnpm/effect@4.0.5/node_modules/effect/dist/Iterable.js
6572
6577
  /**
6573
6578
  * Gets the first element of an `Iterable` without returning an `Option`.
6574
6579
  *
@@ -6692,7 +6697,7 @@ const constEmptyIterator = { next() {
6692
6697
  */
6693
6698
  const empty$9 = () => constEmpty;
6694
6699
  //#endregion
6695
- //#region ../../node_modules/.pnpm/effect@4.0.4/node_modules/effect/dist/Record.js
6700
+ //#region ../../node_modules/.pnpm/effect@4.0.5/node_modules/effect/dist/Record.js
6696
6701
  /**
6697
6702
  * Determines if a mutable record is empty.
6698
6703
  *
@@ -6902,7 +6907,7 @@ const makeEquivalence$3 = (equivalence) => {
6902
6907
  return (self, that) => is(self, that) && is(that, self);
6903
6908
  };
6904
6909
  //#endregion
6905
- //#region ../../node_modules/.pnpm/effect@4.0.4/node_modules/effect/dist/Array.js
6910
+ //#region ../../node_modules/.pnpm/effect@4.0.5/node_modules/effect/dist/Array.js
6906
6911
  /**
6907
6912
  * Works with JavaScript arrays, readonly arrays, and non-empty arrays.
6908
6913
  *
@@ -7005,8 +7010,10 @@ const ensure = (self) => Array$1.isArray(self) ? self : [self];
7005
7010
  *
7006
7011
  * **Details**
7007
7012
  *
7008
- * `onNonEmpty` receives a `NonEmptyReadonlyArray`. Supports both data-first and
7009
- * data-last usage.
7013
+ * `onNonEmpty` receives a `NonEmptyArray` for mutable arrays and a
7014
+ * `NonEmptyReadonlyArray` otherwise. Data-last calls default to the readonly
7015
+ * callback, so the returned function still accepts `ReadonlyArray`. Supports
7016
+ * both data-first and data-last usage.
7010
7017
  *
7011
7018
  * **Example** (Branching on emptiness)
7012
7019
  *
@@ -8165,7 +8172,7 @@ const dedupeAdjacentWith = /*#__PURE__*/ dual(2, (self, isEquivalent) => {
8165
8172
  */
8166
8173
  const join$1 = /*#__PURE__*/ dual(2, (self, sep) => fromIterable$6(self).join(sep));
8167
8174
  //#endregion
8168
- //#region ../../node_modules/.pnpm/effect@4.0.4/node_modules/effect/dist/Scheduler.js
8175
+ //#region ../../node_modules/.pnpm/effect@4.0.5/node_modules/effect/dist/Scheduler.js
8169
8176
  /**
8170
8177
  * Controls how runnable Effect fiber tasks are dispatched.
8171
8178
  *
@@ -8402,7 +8409,7 @@ const PreventSchedulerYield = /*#__PURE__*/ Reference("effect/Scheduler/PreventS
8402
8409
  defaultValue: () => false
8403
8410
  });
8404
8411
  //#endregion
8405
- //#region ../../node_modules/.pnpm/effect@4.0.4/node_modules/effect/dist/Data.js
8412
+ //#region ../../node_modules/.pnpm/effect@4.0.5/node_modules/effect/dist/Data.js
8406
8413
  /**
8407
8414
  * Provides a base class for immutable data types.
8408
8415
  *
@@ -8652,7 +8659,7 @@ const Error$2 = Error$3;
8652
8659
  */
8653
8660
  const TaggedError$1 = TaggedError$2;
8654
8661
  //#endregion
8655
- //#region ../../node_modules/.pnpm/effect@4.0.4/node_modules/effect/dist/encoding/EncodingError.js
8662
+ //#region ../../node_modules/.pnpm/effect@4.0.5/node_modules/effect/dist/encoding/EncodingError.js
8656
8663
  /**
8657
8664
  * Shared error type for encoding and decoding operations.
8658
8665
  *
@@ -8712,6 +8719,33 @@ var EncodingError = class extends (/*#__PURE__*/ TaggedError$1("EncodingError"))
8712
8719
  */
8713
8720
  [EncodingErrorTypeId] = EncodingErrorTypeId;
8714
8721
  };
8722
+ //#endregion
8723
+ //#region ../../node_modules/.pnpm/effect@4.0.5/node_modules/effect/dist/encoding/Hex.js
8724
+ /**
8725
+ * Encodes the given value into a hex `string`.
8726
+ *
8727
+ * **When to use**
8728
+ *
8729
+ * Use to encode text or bytes as lowercase hexadecimal text.
8730
+ *
8731
+ * **Example** (Encoding hex strings and bytes)
8732
+ *
8733
+ * ```ts import.meta.vitest
8734
+ * import { Hex } from "effect/encoding"
8735
+ *
8736
+ * // Encode a string to hex
8737
+ * Hex.encode("hello") // => "68656c6c6f"
8738
+ *
8739
+ * // Encode binary data to hex
8740
+ * const bytes = new Uint8Array([72, 101, 108, 108, 111])
8741
+ * Hex.encode(bytes) // => "48656c6c6f"
8742
+ * ```
8743
+ *
8744
+ * @stability stable
8745
+ * @category encoding
8746
+ * @since 4.0.0
8747
+ */
8748
+ const encode$1 = (input) => typeof input === "string" ? hexEncodeUint8Array(encoder$4.encode(input)) : hexEncodeUint8Array(input);
8715
8749
  /**
8716
8750
  * Generates a random lowercase hexadecimal string, optimized for lengths that
8717
8751
  * are multiples of 8.
@@ -8760,8 +8794,15 @@ const random32 = () => {
8760
8794
  const d = randomWord();
8761
8795
  return String.fromCharCode(hexCharCodes[a >>> 28], hexCharCodes[a >>> 24 & 15], hexCharCodes[a >>> 20 & 15], hexCharCodes[a >>> 16 & 15], hexCharCodes[a >>> 12 & 15], hexCharCodes[a >>> 8 & 15], hexCharCodes[a >>> 4 & 15], hexCharCodes[a & 15], hexCharCodes[b >>> 28], hexCharCodes[b >>> 24 & 15], hexCharCodes[b >>> 20 & 15], hexCharCodes[b >>> 16 & 15], hexCharCodes[b >>> 12 & 15], hexCharCodes[b >>> 8 & 15], hexCharCodes[b >>> 4 & 15], hexCharCodes[b & 15], hexCharCodes[c >>> 28], hexCharCodes[c >>> 24 & 15], hexCharCodes[c >>> 20 & 15], hexCharCodes[c >>> 16 & 15], hexCharCodes[c >>> 12 & 15], hexCharCodes[c >>> 8 & 15], hexCharCodes[c >>> 4 & 15], hexCharCodes[c & 15], hexCharCodes[d >>> 28], hexCharCodes[d >>> 24 & 15], hexCharCodes[d >>> 20 & 15], hexCharCodes[d >>> 16 & 15], hexCharCodes[d >>> 12 & 15], hexCharCodes[d >>> 8 & 15], hexCharCodes[d >>> 4 & 15], hexCharCodes[d & 15]);
8762
8796
  };
8797
+ const encoder$4 = /*#__PURE__*/ new TextEncoder();
8798
+ const byteToHex = /*#__PURE__*/ Array.from({ length: 256 }, (_, i) => i.toString(16).padStart(2, "0"));
8799
+ const hexEncodeUint8Array = (bytes) => {
8800
+ let result = "";
8801
+ for (let i = 0; i < bytes.length; i++) result += byteToHex[bytes[i]];
8802
+ return result;
8803
+ };
8763
8804
  //#endregion
8764
- //#region ../../node_modules/.pnpm/effect@4.0.4/node_modules/effect/dist/Tracer.js
8805
+ //#region ../../node_modules/.pnpm/effect@4.0.5/node_modules/effect/dist/Tracer.js
8765
8806
  /**
8766
8807
  * Defines the low-level tracing model used by Effect.
8767
8808
  *
@@ -8840,7 +8881,7 @@ var ParentSpan = class extends (/*#__PURE__*/ Service()(ParentSpanKey, { fiberCa
8840
8881
  * @category constructors
8841
8882
  * @since 2.0.0
8842
8883
  */
8843
- const make$34 = (options) => options;
8884
+ const make$36 = (options) => options;
8844
8885
  /**
8845
8886
  * Creates an `ExternalSpan` from trace and span identifiers, defaulting
8846
8887
  * `sampled` to `true` and annotations to an empty context when they are not
@@ -9020,7 +9061,7 @@ const Tracer = /*#__PURE__*/ Reference(TracerKey, {
9020
9061
  * @category references
9021
9062
  * @since 4.0.0
9022
9063
  */
9023
- const nativeTracer = /*#__PURE__*/ make$34({ span: (options) => new NativeSpan(options) });
9064
+ const nativeTracer = /*#__PURE__*/ make$36({ span: (options) => new NativeSpan(options) });
9024
9065
  /**
9025
9066
  * Default in-memory `Span` implementation used by the native tracer. It
9026
9067
  * generates span and trace identifiers, stores attributes, events, and links,
@@ -9102,11 +9143,11 @@ var NativeSpan = class {
9102
9143
  }
9103
9144
  };
9104
9145
  //#endregion
9105
- //#region ../../node_modules/.pnpm/effect@4.0.4/node_modules/effect/dist/internal/metric.js
9146
+ //#region ../../node_modules/.pnpm/effect@4.0.5/node_modules/effect/dist/internal/metric.js
9106
9147
  /** @internal */
9107
9148
  const FiberRuntimeMetricsKey = "effect/Metric/FiberRuntimeMetrics";
9108
9149
  //#endregion
9109
- //#region ../../node_modules/.pnpm/effect@4.0.4/node_modules/effect/dist/internal/references.js
9150
+ //#region ../../node_modules/.pnpm/effect@4.0.5/node_modules/effect/dist/internal/references.js
9110
9151
  /** @internal */
9111
9152
  const CurrentErrorReporters = /*#__PURE__*/ Reference("effect/ErrorReporter/CurrentErrorReporters", { defaultValue: () => /* @__PURE__ */ new Set() });
9112
9153
  /** @internal */
@@ -9140,7 +9181,7 @@ const MinimumLogLevel$1 = /*#__PURE__*/ Reference("effect/References/MinimumLogL
9140
9181
  /** @internal */
9141
9182
  const CurrentLogSpans$1 = /*#__PURE__*/ Reference("effect/References/CurrentLogSpans", { defaultValue: () => [] });
9142
9183
  //#endregion
9143
- //#region ../../node_modules/.pnpm/effect@4.0.4/node_modules/effect/dist/internal/tracer.js
9184
+ //#region ../../node_modules/.pnpm/effect@4.0.5/node_modules/effect/dist/internal/tracer.js
9144
9185
  /** @internal */
9145
9186
  const addSpanStackTrace = (options) => {
9146
9187
  if (options?.captureStackTrace === false) return options;
@@ -9174,7 +9215,7 @@ const makeStackCleaner = (line) => (stack) => {
9174
9215
  };
9175
9216
  const spanCleaner = /*#__PURE__*/ makeStackCleaner(3);
9176
9217
  //#endregion
9177
- //#region ../../node_modules/.pnpm/effect@4.0.4/node_modules/effect/dist/internal/effect.js
9218
+ //#region ../../node_modules/.pnpm/effect@4.0.5/node_modules/effect/dist/internal/effect.js
9178
9219
  /** @internal */
9179
9220
  var Interrupt = class extends ReasonBase {
9180
9221
  constructor(fiberId, annotations = constEmptyAnnotations) {
@@ -9194,7 +9235,7 @@ var Interrupt = class extends ReasonBase {
9194
9235
  return isInterruptReason(that) && this.fiberId === that.fiberId && this.annotations === that.annotations;
9195
9236
  }
9196
9237
  [symbol$2]() {
9197
- return combine$2(string$1(`${this._tag}:${this.fiberId}`))(random$1(this.annotations));
9238
+ return string$1(`${this._tag}:${this.fiberId}`);
9198
9239
  }
9199
9240
  };
9200
9241
  /** @internal */
@@ -9442,9 +9483,9 @@ var FiberImpl = class {
9442
9483
  interruptUnsafe(fiberId, annotations) {
9443
9484
  if (this._exit) return;
9444
9485
  let cause = causeInterrupt(fiberId);
9445
- if (this.cache.stackFrame) cause = causeAnnotate(cause, make$37(StackTraceKey, this.cache.stackFrame));
9486
+ if (this.cache.stackFrame) cause = causeAnnotate(cause, make$39(StackTraceKey, this.cache.stackFrame));
9446
9487
  if (annotations) cause = causeAnnotate(cause, annotations);
9447
- this._interruptedCause = this._interruptedCause ? causeCombine(this._interruptedCause, cause) : cause;
9488
+ this._interruptedCause = this._interruptedCause ? causeAddInterrupts(this._interruptedCause, cause) : cause;
9448
9489
  if (this.interruptible) {
9449
9490
  if (this._running) this._deferredInterrupt = true;
9450
9491
  else this.evaluate(failCause$6(this._interruptedCause));
@@ -11418,7 +11459,7 @@ const reportCauseUnsafe = (fiber, cause, defectsOnly) => {
11418
11459
  reporters.forEach((reporter) => reporter.report(opts));
11419
11460
  };
11420
11461
  //#endregion
11421
- //#region ../../node_modules/.pnpm/effect@4.0.4/node_modules/effect/dist/Exit.js
11462
+ //#region ../../node_modules/.pnpm/effect@4.0.5/node_modules/effect/dist/Exit.js
11422
11463
  /**
11423
11464
  * Checks whether an unknown value is an Exit.
11424
11465
  *
@@ -11685,7 +11726,7 @@ const isFailure = exitIsFailure;
11685
11726
  */
11686
11727
  const asVoidAll = exitAsVoidAll;
11687
11728
  //#endregion
11688
- //#region ../../node_modules/.pnpm/effect@4.0.4/node_modules/effect/dist/Deferred.js
11729
+ //#region ../../node_modules/.pnpm/effect@4.0.5/node_modules/effect/dist/Deferred.js
11689
11730
  const TypeId$35 = "~effect/Deferred";
11690
11731
  /**
11691
11732
  * Checks whether a value is a `Deferred`.
@@ -11973,7 +12014,7 @@ const doneUnsafe = (self, effect) => {
11973
12014
  */
11974
12015
  const into = /*#__PURE__*/ dual(2, (self, deferred) => uninterruptibleMask$1((restore) => flatMap$4(exit$1(restore(self)), (exit) => done$1(deferred, exit))));
11975
12016
  //#endregion
11976
- //#region ../../node_modules/.pnpm/effect@4.0.4/node_modules/effect/dist/References.js
12017
+ //#region ../../node_modules/.pnpm/effect@4.0.5/node_modules/effect/dist/References.js
11977
12018
  /**
11978
12019
  * Context reference for managing log annotations that are automatically added to all log entries.
11979
12020
  * These annotations provide contextual metadata that appears in every log message.
@@ -12179,7 +12220,7 @@ const MinimumLogLevel = MinimumLogLevel$1;
12179
12220
  */
12180
12221
  const TracerTimingEnabled = TracerTimingEnabled$1;
12181
12222
  //#endregion
12182
- //#region ../../node_modules/.pnpm/effect@4.0.4/node_modules/effect/dist/Scope.js
12223
+ //#region ../../node_modules/.pnpm/effect@4.0.5/node_modules/effect/dist/Scope.js
12183
12224
  /**
12184
12225
  * Controls how long resources stay open.
12185
12226
  *
@@ -12244,7 +12285,7 @@ const Scope = scopeTag;
12244
12285
  * @category constructors
12245
12286
  * @since 2.0.0
12246
12287
  */
12247
- const make$33 = scopeMake;
12288
+ const make$35 = scopeMake;
12248
12289
  /**
12249
12290
  * Creates a new `Scope` synchronously without wrapping it in an `Effect`.
12250
12291
  * This is useful when you need a scope immediately but should be used with caution
@@ -12487,7 +12528,7 @@ const close = scopeClose;
12487
12528
  */
12488
12529
  const closeUnsafe = scopeCloseUnsafe;
12489
12530
  //#endregion
12490
- //#region ../../node_modules/.pnpm/effect@4.0.4/node_modules/effect/dist/Layer.js
12531
+ //#region ../../node_modules/.pnpm/effect@4.0.5/node_modules/effect/dist/Layer.js
12491
12532
  const TypeId$34 = "~effect/Layer";
12492
12533
  const MemoMapTypeId = "~effect/Layer/MemoMap";
12493
12534
  const makeMemoMapEntry = (memoMap, layer) => {
@@ -12889,8 +12930,8 @@ const buildWithScope = /*#__PURE__*/ dual(2, (self, scope) => withFiber$1((fiber
12889
12930
  * @since 2.0.0
12890
12931
  */
12891
12932
  const succeed$5 = function() {
12892
- if (arguments.length === 1) return (resource) => succeedContext(make$37(arguments[0], resource));
12893
- return succeedContext(make$37(arguments[0], arguments[1]));
12933
+ if (arguments.length === 1) return (resource) => succeedContext(make$39(arguments[0], resource));
12934
+ return succeedContext(make$39(arguments[0], arguments[1]));
12894
12935
  };
12895
12936
  /**
12896
12937
  * Constructs a layer that provides all services in an already available
@@ -13002,8 +13043,8 @@ const empty$7 = /*#__PURE__*/ succeedContext(/*#__PURE__*/ empty$10());
13002
13043
  * @since 2.0.0
13003
13044
  */
13004
13045
  const sync$1 = function() {
13005
- if (arguments.length === 1) return (evaluate) => syncContext(() => make$37(arguments[0], evaluate()));
13006
- return syncContext(() => make$37(arguments[0], arguments[1]()));
13046
+ if (arguments.length === 1) return (evaluate) => syncContext(() => make$39(arguments[0], evaluate()));
13047
+ return syncContext(() => make$39(arguments[0], arguments[1]()));
13007
13048
  };
13008
13049
  /**
13009
13050
  * Constructs a layer lazily that provides all services in a `Context`.
@@ -13087,7 +13128,7 @@ const effect = function() {
13087
13128
  if (arguments.length === 1) return (effect) => effectImpl(arguments[0], effect);
13088
13129
  return effectImpl(arguments[0], arguments[1]);
13089
13130
  };
13090
- const effectImpl = (service, effect) => effectContext(map$5(effect, (value) => make$37(service, value)));
13131
+ const effectImpl = (service, effect) => effectContext(map$5(effect, (value) => make$39(service, value)));
13091
13132
  /**
13092
13133
  * Constructs a layer from an effect that produces all services in a `Context`.
13093
13134
  *
@@ -13195,7 +13236,7 @@ const unwrapKey = /*#__PURE__*/ Service("effect/Layer/unwrap");
13195
13236
  * @category converting
13196
13237
  * @since 4.0.0
13197
13238
  */
13198
- const unwrap$4 = (self) => flatMap$3(effect(unwrapKey)(self), get$6(unwrapKey));
13239
+ const unwrap$5 = (self) => flatMap$3(effect(unwrapKey)(self), get$6(unwrapKey));
13199
13240
  const mergeAllEffect = (layers, memoMap, scope) => {
13200
13241
  const parentScope = forkUnsafe(scope, "parallel");
13201
13242
  return forEach$2(layers, (layer) => layer.build(memoMap, forkUnsafe(parentScope, "sequential")), { concurrency: layers.length }).pipe(map$5((context) => mergeAll$3(...context)));
@@ -13592,7 +13633,7 @@ const flatMap$3 = /*#__PURE__*/ dual(2, (self, f) => fromBuild((memoMap, scope)
13592
13633
  */
13593
13634
  const launch = (self) => scoped$1(andThen$1(build(self), never$2));
13594
13635
  //#endregion
13595
- //#region ../../node_modules/.pnpm/effect@4.0.4/node_modules/effect/dist/Cause.js
13636
+ //#region ../../node_modules/.pnpm/effect@4.0.5/node_modules/effect/dist/Cause.js
13596
13637
  /**
13597
13638
  * Records the full reason an `Effect` failed.
13598
13639
  *
@@ -14354,7 +14395,7 @@ const reasonAnnotations = reasonAnnotations$1;
14354
14395
  */
14355
14396
  var StackTrace = class extends (/*#__PURE__*/ Service()("effect/Cause/StackTrace")) {};
14356
14397
  //#endregion
14357
- //#region ../../node_modules/.pnpm/effect@4.0.4/node_modules/effect/dist/Clock.js
14398
+ //#region ../../node_modules/.pnpm/effect@4.0.5/node_modules/effect/dist/Clock.js
14358
14399
  /**
14359
14400
  * Context reference for the active time service in the environment.
14360
14401
  *
@@ -14436,7 +14477,7 @@ const Clock = ClockRef;
14436
14477
  */
14437
14478
  const currentTimeMillis = currentTimeMillis$1;
14438
14479
  //#endregion
14439
- //#region ../../node_modules/.pnpm/effect@4.0.4/node_modules/effect/dist/internal/dateTime.js
14480
+ //#region ../../node_modules/.pnpm/effect@4.0.5/node_modules/effect/dist/internal/dateTime.js
14440
14481
  /** @internal */
14441
14482
  const TypeId$33 = "~effect/DateTime";
14442
14483
  /** @internal */
@@ -14615,7 +14656,7 @@ const makeZonedUnsafe$1 = (input, options) => {
14615
14656
  return makeZonedFromAdjusted(self.epochMilliseconds, zone, options?.disambiguation ?? "compatible");
14616
14657
  };
14617
14658
  /** @internal */
14618
- const make$32 = /*#__PURE__*/ liftThrowable(makeUnsafe$3);
14659
+ const make$34 = /*#__PURE__*/ liftThrowable(makeUnsafe$3);
14619
14660
  /** @internal */
14620
14661
  const now$1 = /*#__PURE__*/ map$5(currentTimeMillis, makeUtc);
14621
14662
  /** @internal */
@@ -14773,7 +14814,7 @@ const formatIsoOffset = (self) => {
14773
14814
  /** @internal */
14774
14815
  const formatIsoZoned = (self) => self.zone._tag === "Offset" ? formatIsoOffset(self) : `${formatIsoOffset(self)}[${self.zone.id}]`;
14775
14816
  //#endregion
14776
- //#region ../../node_modules/.pnpm/effect@4.0.4/node_modules/effect/dist/Number.js
14817
+ //#region ../../node_modules/.pnpm/effect@4.0.5/node_modules/effect/dist/Number.js
14777
14818
  /**
14778
14819
  * Exposes the global number constructor.
14779
14820
  *
@@ -15210,7 +15251,7 @@ const replaceAll = (searchValue, replaceValue) => (self) => self.replaceAll(sear
15210
15251
  */
15211
15252
  const camelToSnake = (self) => self.replace(/([A-Z])/g, "_$1").toLowerCase();
15212
15253
  //#endregion
15213
- //#region ../../node_modules/.pnpm/effect@4.0.4/node_modules/effect/dist/internal/random.js
15254
+ //#region ../../node_modules/.pnpm/effect@4.0.5/node_modules/effect/dist/internal/random.js
15214
15255
  /** @internal */
15215
15256
  const Random = /*#__PURE__*/ Reference("effect/Random", { defaultValue: () => ({
15216
15257
  nextIntUnsafe() {
@@ -15232,7 +15273,7 @@ const nextBetween = (min, max, draw) => {
15232
15273
  return view.getFloat64(0);
15233
15274
  };
15234
15275
  //#endregion
15235
- //#region ../../node_modules/.pnpm/effect@4.0.4/node_modules/effect/dist/Pull.js
15276
+ //#region ../../node_modules/.pnpm/effect@4.0.5/node_modules/effect/dist/Pull.js
15236
15277
  /**
15237
15278
  * Models one low-level pull step for stream-like consumers.
15238
15279
  *
@@ -15410,7 +15451,7 @@ const matchEffect$1 = /*#__PURE__*/ dual(2, (self, options) => matchCauseEffect$
15410
15451
  }
15411
15452
  }));
15412
15453
  //#endregion
15413
- //#region ../../node_modules/.pnpm/effect@4.0.4/node_modules/effect/dist/Schedule.js
15454
+ //#region ../../node_modules/.pnpm/effect@4.0.5/node_modules/effect/dist/Schedule.js
15414
15455
  const TypeId$32 = "~effect/Schedule";
15415
15456
  /**
15416
15457
  * Context reference containing metadata for the currently running schedule step.
@@ -15792,12 +15833,12 @@ const while_ = /*#__PURE__*/ dual(2, (self, predicate) => fromStep(map$5(toStep(
15792
15833
  */
15793
15834
  const forever$1 = /*#__PURE__*/ spaced(zero$2);
15794
15835
  //#endregion
15795
- //#region ../../node_modules/.pnpm/effect@4.0.4/node_modules/effect/dist/internal/layer.js
15836
+ //#region ../../node_modules/.pnpm/effect@4.0.5/node_modules/effect/dist/internal/layer.js
15796
15837
  const provideLayer = (self, layer, options) => scopedWith$1((scope) => flatMap$4(options?.local ? buildWithMemoMap(layer, makeMemoMapUnsafe(), scope) : buildWithScope(layer, scope), (context) => provideContext$3(self, context)));
15797
15838
  /** @internal */
15798
15839
  const provide$1 = /*#__PURE__*/ dual((args) => isEffect$1(args[0]), (self, source, options) => isContext(source) ? provideContext$3(self, source) : provideLayer(self, Array.isArray(source) ? mergeAll$2(...source) : source, options));
15799
15840
  //#endregion
15800
- //#region ../../node_modules/.pnpm/effect@4.0.4/node_modules/effect/dist/internal/schedule.js
15841
+ //#region ../../node_modules/.pnpm/effect@4.0.5/node_modules/effect/dist/internal/schedule.js
15801
15842
  const findErrorOnly = (cause) => cause.reasons.every(isFailReason$1) ? findError$1(cause) : fail$7(cause);
15802
15843
  /** @internal */
15803
15844
  const repeatOrElse = /*#__PURE__*/ dual(3, (self, schedule, orElse) => flatMap$4(toStepWithMetadata(schedule), (step) => {
@@ -15845,7 +15886,7 @@ const buildFromOptions = (options) => {
15845
15886
  return schedule;
15846
15887
  };
15847
15888
  //#endregion
15848
- //#region ../../node_modules/.pnpm/effect@4.0.4/node_modules/effect/dist/Effect.js
15889
+ //#region ../../node_modules/.pnpm/effect@4.0.5/node_modules/effect/dist/Effect.js
15849
15890
  /**
15850
15891
  * Checks whether a value is an `Effect`.
15851
15892
  *
@@ -20803,7 +20844,7 @@ const catchEager = catchEager$1;
20803
20844
  */
20804
20845
  const fnUntracedEager = fnUntracedEager$1;
20805
20846
  //#endregion
20806
- //#region ../../node_modules/.pnpm/effect@4.0.4/node_modules/effect/dist/net/NetAddress.js
20847
+ //#region ../../node_modules/.pnpm/effect@4.0.5/node_modules/effect/dist/net/NetAddress.js
20807
20848
  const TypeId$31 = "~effect/net/NetAddress";
20808
20849
  const ipv4Value = (self) => self.value;
20809
20850
  const ipv6Words = (self) => self;
@@ -20841,6 +20882,40 @@ const isIpv4Address = (u) => isAddress(u) && u._tag === "Ipv4Address";
20841
20882
  */
20842
20883
  const isIpv6Address = (u) => isAddress(u) && u._tag === "Ipv6Address";
20843
20884
  /**
20885
+ * Returns `true` when a value is an IPv4 or IPv6 address.
20886
+ *
20887
+ * @stability unstable
20888
+ * @category guards
20889
+ * @since 4.0.0
20890
+ */
20891
+ const isIpAddress = (u) => isIpv4Address(u) || isIpv6Address(u);
20892
+ /**
20893
+ * Returns the family of an IP address or internet address.
20894
+ *
20895
+ * **Example** (Reading address families)
20896
+ *
20897
+ * ```ts import.meta.vitest
20898
+ * import { NetAddress } from "effect/net"
20899
+ *
20900
+ * NetAddress.familyOf(NetAddress.ipv4Loopback) // => "IPv4"
20901
+ * NetAddress.familyOf(NetAddress.inetAddressFromStringUnsafe("[::1]:80")) // => "IPv6"
20902
+ * ```
20903
+ *
20904
+ * @stability experimental
20905
+ * @category getters
20906
+ * @since 4.0.0
20907
+ */
20908
+ const familyOf = (self) => isIpv4Address(self) || isInetAddressV4(self) ? "IPv4" : "IPv6";
20909
+ /**
20910
+ * Returns `true` when an IP address or internet address belongs to a family,
20911
+ * narrowing it to that family.
20912
+ *
20913
+ * @stability experimental
20914
+ * @category predicates
20915
+ * @since 4.0.0
20916
+ */
20917
+ const isFamily = /*#__PURE__*/ dual(2, (self, family) => familyOf(self) === family);
20918
+ /**
20844
20919
  * Returns `true` when a value is a MAC address.
20845
20920
  *
20846
20921
  * @stability unstable
@@ -20938,12 +21013,29 @@ const makeIpv6 = (w0, w1, w2, w3) => {
20938
21013
  return Object.freeze(self);
20939
21014
  };
20940
21015
  const packOctets = (a, b, c, d) => (a << 24 | b << 16 | c << 8 | d) >>> 0;
21016
+ const packBytes = (bytes, offset) => packOctets(bytes[offset], bytes[offset + 1], bytes[offset + 2], bytes[offset + 3]);
20941
21017
  const wordToOctets = (word) => [
20942
21018
  word >>> 24,
20943
21019
  word >>> 16 & 255,
20944
21020
  word >>> 8 & 255,
20945
21021
  word & 255
20946
21022
  ];
21023
+ /**
21024
+ * Creates an IPv4 address from trusted network-order bytes without validation.
21025
+ *
21026
+ * @stability unstable
21027
+ * @category unsafe
21028
+ * @since 4.0.0
21029
+ */
21030
+ const ipv4FromBytesUnsafe = (bytes) => makeIpv4(packBytes(bytes, 0));
21031
+ /**
21032
+ * Creates an IPv6 address from trusted network-order bytes without validation.
21033
+ *
21034
+ * @stability unstable
21035
+ * @category unsafe
21036
+ * @since 4.0.0
21037
+ */
21038
+ const ipv6FromBytesUnsafe = (bytes) => makeIpv6(packBytes(bytes, 0), packBytes(bytes, 4), packBytes(bytes, 8), packBytes(bytes, 12));
20947
21039
  const addressError = (input, message) => fail$7(new NetAddressError({
20948
21040
  input,
20949
21041
  message
@@ -21055,6 +21147,49 @@ const ipFromString = (input) => {
21055
21147
  return input.includes(":") ? ipv6FromString(input) : ipv4FromString(input);
21056
21148
  };
21057
21149
  /**
21150
+ * Parses a trusted bare numeric IPv4 or IPv6 address, throwing on failure.
21151
+ *
21152
+ * @stability unstable
21153
+ * @category unsafe
21154
+ * @since 4.0.0
21155
+ */
21156
+ const ipFromStringUnsafe = (input) => getOrThrow(ipFromString(input));
21157
+ /**
21158
+ * Converts an `IpAddressInput` to an IP address, returning IP addresses
21159
+ * unchanged.
21160
+ *
21161
+ * **Details**
21162
+ *
21163
+ * Strings are parsed like `ipFromString`. Four octets or bytes make an IPv4
21164
+ * address, and eight segments or sixteen bytes make an IPv6 address.
21165
+ *
21166
+ * **Example** (Converting IP address inputs)
21167
+ *
21168
+ * ```ts import.meta.vitest
21169
+ * import { Result } from "effect"
21170
+ * import { NetAddress } from "effect/net"
21171
+ *
21172
+ * const address = Result.getOrThrow(NetAddress.ipFromInput("192.0.2.1"))
21173
+ * NetAddress.formatIp(address) // => "192.0.2.1"
21174
+ * Result.getOrThrow(NetAddress.ipFromInput(address)) === address // => true
21175
+ * NetAddress.formatIp(Result.getOrThrow(NetAddress.ipFromInput([192, 0, 2, 1]))) // => "192.0.2.1"
21176
+ * Result.isFailure(NetAddress.ipFromInput("example.com")) // => true
21177
+ * ```
21178
+ *
21179
+ * @stability unstable
21180
+ * @category constructors
21181
+ * @since 4.0.0
21182
+ */
21183
+ const ipFromInput = (input) => {
21184
+ if (isIpAddress(input)) return succeed$8(input);
21185
+ if (typeof input === "string") return ipFromString(input);
21186
+ if (input instanceof Uint8Array && input.length === 4) return succeed$8(ipv4FromBytesUnsafe(input));
21187
+ if (input instanceof Uint8Array && input.length === 16) return succeed$8(ipv6FromBytesUnsafe(input));
21188
+ if (Array.isArray(input) && isTupleOf(input, 4)) return ipv4FromOctets(input);
21189
+ if (Array.isArray(input) && isTupleOf(input, 8)) return ipv6FromSegments(input);
21190
+ return addressError(input, "expected an IP address, string, 4 octets, 8 segments, or 4 or 16 bytes");
21191
+ };
21192
+ /**
21058
21193
  * Returns the four numeric octets of an IPv4 address in a fresh tuple.
21059
21194
  *
21060
21195
  * @stability unstable
@@ -21083,6 +21218,22 @@ const ipv6ToSegments = (self) => {
21083
21218
  ];
21084
21219
  };
21085
21220
  /**
21221
+ * Returns the sixteen numeric octets of an IPv6 address in a fresh array.
21222
+ *
21223
+ * @stability unstable
21224
+ * @category getters
21225
+ * @since 4.0.0
21226
+ */
21227
+ const ipv6ToOctets = (self) => {
21228
+ const { w0, w1, w2, w3 } = ipv6Words(self);
21229
+ return [
21230
+ ...wordToOctets(w0),
21231
+ ...wordToOctets(w1),
21232
+ ...wordToOctets(w2),
21233
+ ...wordToOctets(w3)
21234
+ ];
21235
+ };
21236
+ /**
21086
21237
  * Returns `true` when the MAC address is the all-ones broadcast address.
21087
21238
  *
21088
21239
  * @stability unstable
@@ -21331,6 +21482,14 @@ const inetAddressV6 = (address, port, options) => {
21331
21482
  */
21332
21483
  const inetAddress = (address, port) => isIpv4Address(address) ? inetAddressV4(address, port) : inetAddressV6(address, port);
21333
21484
  /**
21485
+ * Creates an internet address from a trusted IP address and port, throwing on failure.
21486
+ *
21487
+ * @stability unstable
21488
+ * @category unsafe
21489
+ * @since 4.0.0
21490
+ */
21491
+ const inetAddressUnsafe = (address, port) => getOrThrow(inetAddress(address, port));
21492
+ /**
21334
21493
  * Creates a checked internet address from a numeric IP string and port.
21335
21494
  *
21336
21495
  * **Gotchas**
@@ -21346,6 +21505,63 @@ const inetAddressFromIpString = (address, port) => {
21346
21505
  return flatMap$6(ipFromString(address), (address) => inetAddress(address, port));
21347
21506
  };
21348
21507
  /**
21508
+ * Parses `IPv4:port` or `[IPv6]:port` without DNS resolution.
21509
+ *
21510
+ * @stability unstable
21511
+ * @category decoding
21512
+ * @since 4.0.0
21513
+ */
21514
+ const inetAddressFromString = (input) => {
21515
+ let host;
21516
+ let portText;
21517
+ let scopeId = 0;
21518
+ const bracketed = input.startsWith("[");
21519
+ if (bracketed) {
21520
+ const end = input.indexOf("]");
21521
+ if (end < 0 || input[end + 1] !== ":" || input.indexOf("]", end + 1) !== -1) return addressError(input, "expected [IPv6]:port");
21522
+ host = input.slice(1, end);
21523
+ portText = input.slice(end + 2);
21524
+ const scopeSeparator = host.indexOf("%");
21525
+ if (scopeSeparator !== -1) {
21526
+ const scopeText = host.slice(scopeSeparator + 1);
21527
+ if (host.indexOf("%", scopeSeparator + 1) !== -1 || !/^\d+$/.test(scopeText)) return addressError(input, "scope identifier must be decimal");
21528
+ scopeId = Number(scopeText);
21529
+ if (!Number.isInteger(scopeId) || scopeId > 4294967295) return addressError(input, "scope identifier must be an unsigned 32-bit integer");
21530
+ host = host.slice(0, scopeSeparator);
21531
+ }
21532
+ } else {
21533
+ const separator = input.lastIndexOf(":");
21534
+ if (separator < 0) return addressError(input, "expected host:port or [IPv6]:port");
21535
+ if (input.indexOf(":") !== separator) return addressError(input, "IPv6 addresses must be bracketed");
21536
+ host = input.slice(0, separator);
21537
+ portText = input.slice(separator + 1);
21538
+ }
21539
+ if (!/^(0|[1-9]\d*)$/.test(portText)) return addressError(input, "port must be an unpadded decimal integer");
21540
+ return flatMap$6(ipFromString(host), (address) => {
21541
+ if (bracketed !== isIpv6Address(address)) return addressError(input, "only IPv6 addresses use brackets");
21542
+ return isIpv6Address(address) ? inetAddressV6(address, Number(portText), { scopeId }) : inetAddressV4(address, Number(portText));
21543
+ });
21544
+ };
21545
+ /**
21546
+ * Converts an `InetAddressInput` to an internet address, parsing strings like
21547
+ * `inetAddressFromString`, converting parts like `inetAddressV4` and
21548
+ * `inetAddressV6`, and returning internet addresses unchanged.
21549
+ *
21550
+ * @stability unstable
21551
+ * @category constructors
21552
+ * @since 4.0.0
21553
+ */
21554
+ const inetAddressFromInput = (input) => {
21555
+ if (isInetAddress(input)) return succeed$8(input);
21556
+ if (typeof input === "string") return inetAddressFromString(input);
21557
+ if (!hasProperty(input, "address") || !hasProperty(input, "port")) return addressError(input, "expected an address and port");
21558
+ const { port, scopeId } = input;
21559
+ return flatMap$6(ipFromInput(input.address), (address) => {
21560
+ if (isIpv6Address(address)) return inetAddressV6(address, port, { scopeId });
21561
+ return (scopeId ?? 0) === 0 ? inetAddressV4(address, port) : addressError(input, "scopeId requires an IPv6 address");
21562
+ });
21563
+ };
21564
+ /**
21349
21565
  * Formats the numeric host of an internet address without brackets or a port,
21350
21566
  * preserving a nonzero IPv6 scope ID as a `%` suffix.
21351
21567
  *
@@ -21483,10 +21699,504 @@ const unixPathAddress = (path) => {
21483
21699
  * @since 4.0.0
21484
21700
  */
21485
21701
  const formatUnixPath = (self) => `unix://${self.path}`;
21486
- ({ ...BaseProto });
21702
+ const hostError = (input, message) => fail$7(new NetAddressError({
21703
+ input,
21704
+ message
21705
+ }));
21706
+ const asciiNameCharacter = /^[a-z0-9_.-]$/i;
21707
+ const labelPattern = /^[a-z0-9_](?:[a-z0-9_-]{0,61}[a-z0-9_])?$/;
21708
+ const numericLabel = /^(?:\d+|0x[0-9a-f]*)$/;
21709
+ const validateDomainName = (name) => {
21710
+ if (name === ".") return void 0;
21711
+ const relative = name.endsWith(".") ? name.slice(0, -1) : name;
21712
+ if (relative.length === 0) return "domain name must not be empty";
21713
+ if (relative.length > 253) return "domain name must be at most 253 characters";
21714
+ const labels = relative.split(".");
21715
+ for (const label of labels) {
21716
+ if (label.length === 0) return "domain name labels must not be empty";
21717
+ if (label.length > 63) return "domain name labels must be at most 63 characters";
21718
+ if (!labelPattern.test(label)) return "domain name labels must contain only letters, digits, hyphens, or underscores and must not start or end with a hyphen";
21719
+ }
21720
+ if (numericLabel.test(labels[labels.length - 1])) return "the last domain name label must not be numeric";
21721
+ };
21722
+ const toAsciiDomainName = (input) => {
21723
+ let ascii = true;
21724
+ for (const character of input) if (character.charCodeAt(0) < 128) {
21725
+ if (!asciiNameCharacter.test(character)) return void 0;
21726
+ } else ascii = false;
21727
+ if (ascii) return input.toLowerCase();
21728
+ try {
21729
+ return new URL(`http://${input}`).hostname;
21730
+ } catch {
21731
+ return;
21732
+ }
21733
+ };
21734
+ /**
21735
+ * Returns `true` when a value is a valid, normalized domain name.
21736
+ *
21737
+ * @stability experimental
21738
+ * @category guards
21739
+ * @since 4.0.0
21740
+ */
21741
+ const isDomainName = (u) => typeof u === "string" && /^[a-z0-9_.-]+$/.test(u) && validateDomainName(u) === void 0;
21742
+ /**
21743
+ * Parses and normalizes a domain name.
21744
+ *
21745
+ * **Details**
21746
+ *
21747
+ * ASCII names are lowercased. Names containing non-ASCII characters are
21748
+ * converted to their ASCII (`xn--`) form using the WHATWG URL host parser, then
21749
+ * validated with the same rules as ASCII names. A trailing dot is preserved.
21750
+ *
21751
+ * **Example** (Normalizing domain names)
21752
+ *
21753
+ * ```ts import.meta.vitest
21754
+ * import { Result } from "effect"
21755
+ * import { Host } from "effect/net"
21756
+ *
21757
+ * Result.getOrThrow(Host.domainNameFromString("Example.COM")) // => "example.com"
21758
+ * Result.getOrThrow(Host.domainNameFromString("bücher.example")) // => "xn--bcher-kva.example"
21759
+ * Result.isFailure(Host.domainNameFromString("1.2.3.4")) // => true
21760
+ * ```
21761
+ *
21762
+ * @stability experimental
21763
+ * @category decoding
21764
+ * @since 4.0.0
21765
+ */
21766
+ const domainNameFromString = (input) => {
21767
+ const name = toAsciiDomainName(input);
21768
+ if (name === void 0) return hostError(input, "invalid domain name");
21769
+ const error = validateDomainName(name);
21770
+ return error === void 0 ? succeed$8(name) : hostError(input, error);
21771
+ };
21772
+ /**
21773
+ * Parses a trusted domain name, throwing on failure.
21774
+ *
21775
+ * @stability experimental
21776
+ * @category unsafe
21777
+ * @since 4.0.0
21778
+ */
21779
+ const domainNameFromStringUnsafe = (input) => getOrThrow(domainNameFromString(input));
21780
+ /**
21781
+ * Converts a `DomainNameInput` to a domain name, parsing and normalizing it like
21782
+ * `domainNameFromString`.
21783
+ *
21784
+ * **Details**
21785
+ *
21786
+ * Domain names are strings, so every input is parsed.
21787
+ *
21788
+ * @stability experimental
21789
+ * @category constructors
21790
+ * @since 4.0.0
21791
+ */
21792
+ const domainNameFromInput = (input) => domainNameFromString(input);
21487
21793
  ({ ...BaseProto });
21488
21794
  //#endregion
21489
- //#region ../../node_modules/.pnpm/effect@4.0.4/node_modules/effect/dist/BigInt.js
21795
+ //#region ../../node_modules/.pnpm/effect@4.0.5/node_modules/effect/dist/net/Dns.js
21796
+ /**
21797
+ * Host name resolution, DNS queries, and DNS record values.
21798
+ *
21799
+ * `lookup` resolves a host name to the addresses used to connect to it,
21800
+ * `resolve` queries DNS records of one type, and `reverse` looks up the names
21801
+ * of an address. Runtime packages provide the `Dns` service from the host
21802
+ * platform's resolver, whose `lookup` uses the operating system resolver
21803
+ * (`getaddrinfo`) and therefore also reads the hosts file and other system
21804
+ * sources, not only DNS. `AddressResolver` builds on `lookup` to resolve
21805
+ * `host:port` endpoints.
21806
+ *
21807
+ * @stability experimental
21808
+ * @since 4.0.0
21809
+ */
21810
+ const RecordTypeId = "~effect/net/Dns/DnsRecord";
21811
+ const isUint8 = (u) => Number.isInteger(u) && u >= 0 && u <= 255;
21812
+ const isUint16 = (u) => Number.isInteger(u) && u >= 0 && u <= 65535;
21813
+ const isUint32 = (u) => Number.isInteger(u) && u >= 0 && u <= 4294967295;
21814
+ const isString = (u) => typeof u === "string";
21815
+ const isTimer = (u) => isDuration(u) && isFinite$1(u) && isUint32(toSeconds(u));
21816
+ const recordFields = {
21817
+ A: { address: isIpv4Address },
21818
+ AAAA: { address: isIpv6Address },
21819
+ CAA: {
21820
+ critical: (u) => typeof u === "boolean",
21821
+ tag: (u) => isString(u) && /^[a-z0-9]+$/i.test(u),
21822
+ value: isString
21823
+ },
21824
+ CNAME: { target: isDomainName },
21825
+ MX: {
21826
+ exchange: isDomainName,
21827
+ priority: isUint16
21828
+ },
21829
+ NAPTR: {
21830
+ order: isUint16,
21831
+ preference: isUint16,
21832
+ flags: isString,
21833
+ service: isString,
21834
+ regexp: isString,
21835
+ replacement: isDomainName
21836
+ },
21837
+ NS: { host: isDomainName },
21838
+ PTR: { host: (u) => isString(u) && u.length > 0 },
21839
+ SOA: {
21840
+ primary: isDomainName,
21841
+ admin: (u) => isString(u) && u.length > 0,
21842
+ serial: isUint32,
21843
+ refresh: isTimer,
21844
+ retry: isTimer,
21845
+ expire: isTimer,
21846
+ minimum: isTimer
21847
+ },
21848
+ SRV: {
21849
+ target: isDomainName,
21850
+ port: isUint16,
21851
+ priority: isUint16,
21852
+ weight: isUint16
21853
+ },
21854
+ TLSA: {
21855
+ certUsage: isUint8,
21856
+ selector: isUint8,
21857
+ matchingType: isUint8,
21858
+ data: (u) => u instanceof Uint8Array && u.length > 0
21859
+ },
21860
+ TXT: { chunks: (u) => Array.isArray(u) && u.length > 0 && u.every(isString) }
21861
+ };
21862
+ /**
21863
+ * Every supported record type.
21864
+ *
21865
+ * @stability experimental
21866
+ * @category constants
21867
+ * @since 4.0.0
21868
+ */
21869
+ const recordTypes = /*#__PURE__*/ Object.keys(recordFields);
21870
+ /**
21871
+ * Returns `true` when a value is a supported record type.
21872
+ *
21873
+ * @stability experimental
21874
+ * @category guards
21875
+ * @since 4.0.0
21876
+ */
21877
+ const isRecordType = (u) => recordTypes.includes(u);
21878
+ /**
21879
+ * Returns `true` when a value is a DNS record.
21880
+ *
21881
+ * @stability experimental
21882
+ * @category guards
21883
+ * @since 4.0.0
21884
+ */
21885
+ const isDnsRecord = (u) => hasProperty(u, RecordTypeId);
21886
+ const RecordPrototype = {
21887
+ ...BaseProto,
21888
+ [RecordTypeId]: RecordTypeId,
21889
+ [symbol$1](that) {
21890
+ return isDnsRecord(that) && that._tag === this._tag && Object.keys(this).every((key) => equals$1(this[key], that[key]));
21891
+ },
21892
+ [symbol$2]() {
21893
+ return structureKeys(this, Object.keys(this));
21894
+ },
21895
+ toString() {
21896
+ return formatRecord(this);
21897
+ },
21898
+ toJSON() {
21899
+ return { ...this };
21900
+ }
21901
+ };
21902
+ /**
21903
+ * Creates a checked DNS record of a record type from its fields.
21904
+ *
21905
+ * **Details**
21906
+ *
21907
+ * Every field is checked at runtime: addresses must belong to the record's
21908
+ * address family, names must be normalized domain names, priorities, weights,
21909
+ * and ports must be 16-bit unsigned integers, the SOA serial and timers must be
21910
+ * 32-bit unsigned integers (the timers in whole seconds), the TLSA fields must
21911
+ * be 8-bit unsigned integers with non-empty `data`, which is copied, TXT
21912
+ * records need at least one chunk, and CAA property tags must be alphanumeric.
21913
+ * Fields that do not belong to the record type are ignored.
21914
+ *
21915
+ * **Example** (Creating a service record)
21916
+ *
21917
+ * ```ts import.meta.vitest
21918
+ * import { Result } from "effect"
21919
+ * import { Dns, Host } from "effect/net"
21920
+ *
21921
+ * const record = Result.getOrThrow(Dns.makeRecord("SRV", {
21922
+ * target: Host.domainNameFromStringUnsafe("db.internal"),
21923
+ * port: 5432,
21924
+ * priority: 10,
21925
+ * weight: 5
21926
+ * }))
21927
+ * Dns.formatRecord(record) // => "SRV 10 5 5432 db.internal"
21928
+ * ```
21929
+ *
21930
+ * @stability experimental
21931
+ * @category constructors
21932
+ * @since 4.0.0
21933
+ */
21934
+ const makeRecord$1 = (type, fields) => {
21935
+ if (!isRecordType(type)) return fail$7(new NetAddressError({
21936
+ input: type,
21937
+ message: "unknown DNS record type"
21938
+ }));
21939
+ const input = typeof fields === "object" && fields !== null ? fields : {};
21940
+ const self = Object.create(RecordPrototype);
21941
+ self._tag = type;
21942
+ for (const [key, check] of Object.entries(recordFields[type])) {
21943
+ const value = input[key];
21944
+ if (!check(value)) return fail$7(new NetAddressError({
21945
+ input: fields,
21946
+ message: `invalid ${type} record ${key}`
21947
+ }));
21948
+ self[key] = Array.isArray(value) ? Object.freeze([...value]) : value instanceof Uint8Array ? new Uint8Array(value) : value;
21949
+ }
21950
+ return succeed$8(Object.freeze(self));
21951
+ };
21952
+ /**
21953
+ * Creates a trusted DNS record of a record type from its fields, throwing on
21954
+ * failure.
21955
+ *
21956
+ * @stability experimental
21957
+ * @category unsafe
21958
+ * @since 4.0.0
21959
+ */
21960
+ const makeRecordUnsafe = (type, fields) => getOrThrow(makeRecord$1(type, fields));
21961
+ const encoder$3 = /*#__PURE__*/ new TextEncoder();
21962
+ const decimalEscape = (byte) => `\\${byte.toString().padStart(3, "0")}`;
21963
+ const quote = (value) => {
21964
+ let out = "\"";
21965
+ for (const byte of encoder$3.encode(value)) out += byte === 34 || byte === 92 ? `\\${String.fromCharCode(byte)}` : byte < 32 || byte > 126 ? decimalEscape(byte) : String.fromCharCode(byte);
21966
+ return out + "\"";
21967
+ };
21968
+ const nameSpecials = [
21969
+ 34,
21970
+ 36,
21971
+ 40,
21972
+ 41,
21973
+ 59,
21974
+ 64
21975
+ ];
21976
+ const formatName = (text) => {
21977
+ const bytes = encoder$3.encode(text);
21978
+ let out = "";
21979
+ for (let i = 0; i < bytes.length; i++) {
21980
+ const byte = bytes[i];
21981
+ if (byte === 92) {
21982
+ const next = bytes[i + 1];
21983
+ if (next === 46 || next === 92) {
21984
+ out += `\\${String.fromCharCode(next)}`;
21985
+ i++;
21986
+ } else out += "\\\\";
21987
+ } else if (byte <= 32 || byte > 126) out += decimalEscape(byte);
21988
+ else out += nameSpecials.includes(byte) ? `\\${String.fromCharCode(byte)}` : String.fromCharCode(byte);
21989
+ }
21990
+ return out;
21991
+ };
21992
+ /**
21993
+ * Formats a record in DNS presentation format, prefixed by its type.
21994
+ *
21995
+ * @stability experimental
21996
+ * @category encoding
21997
+ * @since 4.0.0
21998
+ */
21999
+ const formatRecord = (self) => {
22000
+ switch (self._tag) {
22001
+ case "A":
22002
+ case "AAAA": return `${self._tag} ${formatIp(self.address)}`;
22003
+ case "CAA": return `CAA ${self.critical ? 128 : 0} ${self.tag} ${quote(self.value)}`;
22004
+ case "CNAME": return `CNAME ${self.target}`;
22005
+ case "MX": return `MX ${self.priority} ${self.exchange}`;
22006
+ case "NAPTR": return `NAPTR ${self.order} ${self.preference} ${quote(self.flags)} ${quote(self.service)} ${quote(self.regexp)} ${self.replacement}`;
22007
+ case "NS": return `NS ${self.host}`;
22008
+ case "PTR": return `PTR ${formatName(self.host)}`;
22009
+ case "SOA": return `SOA ${self.primary} ${formatName(self.admin)} ${self.serial} ${toSeconds(self.refresh)} ${toSeconds(self.retry)} ${toSeconds(self.expire)} ${toSeconds(self.minimum)}`;
22010
+ case "SRV": return `SRV ${self.priority} ${self.weight} ${self.port} ${self.target}`;
22011
+ case "TLSA": return `TLSA ${self.certUsage} ${self.selector} ${self.matchingType} ${encode$1(self.data).toUpperCase()}`;
22012
+ case "TXT": return `TXT ${self.chunks.map(quote).join(" ")}`;
22013
+ }
22014
+ };
22015
+ /**
22016
+ * Returns the reverse-lookup domain name for an IP address, in `in-addr.arpa`
22017
+ * for IPv4 or `ip6.arpa` for IPv6.
22018
+ *
22019
+ * **Example** (Building reverse-lookup names)
22020
+ *
22021
+ * ```ts import.meta.vitest
22022
+ * import { Dns, NetAddress } from "effect/net"
22023
+ *
22024
+ * Dns.reverseName(NetAddress.ipFromStringUnsafe("192.0.2.1")) // => "1.2.0.192.in-addr.arpa"
22025
+ * ```
22026
+ *
22027
+ * @stability experimental
22028
+ * @category converting
22029
+ * @since 4.0.0
22030
+ */
22031
+ const reverseName = (address) => {
22032
+ if (isIpv4Address(address)) return `${[...ipv4ToOctets(address)].reverse().join(".")}.in-addr.arpa`;
22033
+ const nibbles = [];
22034
+ for (const octet of ipv6ToOctets(address)) nibbles.push((octet >> 4).toString(16), (octet & 15).toString(16));
22035
+ return `${nibbles.reverse().join(".")}.ip6.arpa`;
22036
+ };
22037
+ /**
22038
+ * Parses the address of a name server: an IP address, which uses port 53, or
22039
+ * an IP address and port.
22040
+ *
22041
+ * **Details**
22042
+ *
22043
+ * IPv6 addresses with a port are written in brackets, and IPv6 addresses
22044
+ * without one are not.
22045
+ *
22046
+ * **Example** (Parsing name server addresses)
22047
+ *
22048
+ * ```ts import.meta.vitest
22049
+ * import { Result } from "effect"
22050
+ * import { Dns, NetAddress } from "effect/net"
22051
+ *
22052
+ * const format = (input: string) => Result.map(Dns.nameServerFromString(input), NetAddress.formatInet)
22053
+ *
22054
+ * format("192.0.2.53") // => Result.succeed("192.0.2.53:53")
22055
+ * format("2001:db8::53") // => Result.succeed("[2001:db8::53]:53")
22056
+ * format("[2001:db8::53]:5353") // => Result.succeed("[2001:db8::53]:5353")
22057
+ * Result.isFailure(format("ns.example")) // => true
22058
+ * ```
22059
+ *
22060
+ * @stability experimental
22061
+ * @category decoding
22062
+ * @since 4.0.0
22063
+ */
22064
+ const nameServerFromString = (input) => inetAddressFromString(input.startsWith("[") || /^[^:]*:\d+$/.test(input) ? input : input.includes(":") ? `[${input}]:53` : `${input}:53`);
22065
+ /**
22066
+ * Converts a name server to the internet address to query. Strings are parsed
22067
+ * like `nameServerFromString`, internet addresses and address parts with a
22068
+ * port are converted like `NetAddress.inetAddressFromInput`, and other IP
22069
+ * address inputs are converted like `NetAddress.ipFromInput` and use port 53.
22070
+ *
22071
+ * @stability experimental
22072
+ * @category constructors
22073
+ * @since 4.0.0
22074
+ */
22075
+ const nameServerFromInput = (input) => typeof input === "string" ? nameServerFromString(input) : "port" in input ? inetAddressFromInput(input) : map$8(ipFromInput(input), (address) => inetAddressUnsafe(address, 53));
22076
+ /**
22077
+ * A failed lookup, query, or reverse lookup.
22078
+ *
22079
+ * @stability experimental
22080
+ * @category errors
22081
+ * @since 4.0.0
22082
+ */
22083
+ var DnsError = class extends (/*#__PURE__*/ TaggedError$1("DnsError")) {
22084
+ /**
22085
+ * Formats the reason, operation, and name of the failed resolution.
22086
+ *
22087
+ * @since 4.0.0
22088
+ */
22089
+ get message() {
22090
+ return `${this.reason}: Dns.${this.method} (${this.hostname}${this.recordType === void 0 ? "" : ` ${this.recordType}`})`;
22091
+ }
22092
+ /**
22093
+ * Whether the failure is transient and the operation may succeed if retried.
22094
+ *
22095
+ * @since 4.0.0
22096
+ */
22097
+ get isTemporary() {
22098
+ return this.reason === "Timeout" || this.reason === "Temporary" || this.reason === "ServerFailure";
22099
+ }
22100
+ };
22101
+ /**
22102
+ * Service that resolves names to addresses, queries DNS records, and looks up
22103
+ * the names of addresses.
22104
+ *
22105
+ * **Details**
22106
+ *
22107
+ * Every operation either returns at least one result or fails with a
22108
+ * {@link DnsError}.
22109
+ *
22110
+ * @stability experimental
22111
+ * @category services
22112
+ * @since 4.0.0
22113
+ */
22114
+ var Dns = class extends (/*#__PURE__*/ Service()("effect/net/Dns")) {};
22115
+ const notFound = (method, hostname, recordType) => fail$3(new DnsError({
22116
+ reason: "NotFound",
22117
+ method,
22118
+ hostname,
22119
+ recordType
22120
+ }));
22121
+ const badName = (method, hostname, cause, recordType) => fail$3(new DnsError({
22122
+ reason: "BadName",
22123
+ method,
22124
+ hostname,
22125
+ recordType,
22126
+ cause
22127
+ }));
22128
+ const asciiName = /^[\w.-]+$/;
22129
+ /**
22130
+ * Creates a `Dns` service from platform resolver operations.
22131
+ *
22132
+ * **Details**
22133
+ *
22134
+ * Lookup and query names are parsed and normalized, and reverse lookup
22135
+ * addresses are parsed, before platform callbacks receive them. Invalid names
22136
+ * and addresses fail with `BadName`.
22137
+ *
22138
+ * The constructor filters lookups by the requested address family, keeps only
22139
+ * records of the requested type, removes duplicates, and turns empty results
22140
+ * into `NotFound` failures. `reverse` receives the names of an address and
22141
+ * keeps those that are valid host names, failing with `InvalidResponse` when
22142
+ * there are names but none is valid. Without a `reverse` operation, the names
22143
+ * are those of the PTR records at the address's `reverseName`, and failures of
22144
+ * that query are reported as failures of `reverse`.
22145
+ *
22146
+ * Only `lookup` is required. Platforms that can resolve addresses but cannot
22147
+ * query records, such as browsers, omit `resolve`; record queries, and reverse
22148
+ * lookups without a `reverse` operation, then fail with `Unsupported`.
22149
+ *
22150
+ * @stability experimental
22151
+ * @category constructors
22152
+ * @since 4.0.0
22153
+ */
22154
+ const make$33 = (impl) => {
22155
+ const inFamily = (family) => (address) => family === void 0 || isFamily(address, family);
22156
+ const resolveRecords = impl.resolve ?? ((name, type) => fail$3(new DnsError({
22157
+ reason: "Unsupported",
22158
+ method: "resolve",
22159
+ hostname: name,
22160
+ recordType: type
22161
+ })));
22162
+ const reverseNames = impl.reverse ?? ((address) => resolveRecords(reverseName(address), "PTR").pipe(map$3(flatMap$5((record) => record._tag === "PTR" ? [record.host] : [])), mapError$2((error) => new DnsError({
22163
+ reason: error.reason,
22164
+ method: "reverse",
22165
+ hostname: formatIp(address),
22166
+ cause: error.cause
22167
+ }))));
22168
+ const lookup = (input, options) => match$4(domainNameFromInput(input), {
22169
+ onFailure: (cause) => badName("lookup", input, cause),
22170
+ onSuccess: (host) => impl.lookup(host, options?.family).pipe(flatMap$2((addresses) => match$3(dedupe(addresses.filter(inFamily(options?.family))), {
22171
+ onEmpty: () => notFound("lookup", host),
22172
+ onNonEmpty: succeed$4
22173
+ })))
22174
+ });
22175
+ return Dns.of({
22176
+ lookup,
22177
+ resolve: (input, type) => match$4(domainNameFromInput(input), {
22178
+ onFailure: (cause) => badName("resolve", input, cause, type),
22179
+ onSuccess: (name) => resolveRecords(name, type).pipe(flatMap$2((records) => match$3(dedupe(records.filter((record) => record._tag === type)), {
22180
+ onEmpty: () => notFound("resolve", name, type),
22181
+ onNonEmpty: succeed$4
22182
+ })))
22183
+ }),
22184
+ reverse: (input) => match$4(ipFromInput(input), {
22185
+ onFailure: (cause) => badName("reverse", String(input), cause),
22186
+ onSuccess: (address) => reverseNames(address).pipe(flatMap$2((names) => {
22187
+ const hostname = formatIp(address);
22188
+ const hosts = dedupe(filterMap(names.filter((name) => asciiName.test(name)), domainNameFromString));
22189
+ return isReadonlyArrayNonEmpty(hosts) ? succeed$4(hosts) : names.length > 0 ? fail$3(new DnsError({
22190
+ reason: "InvalidResponse",
22191
+ method: "reverse",
22192
+ hostname
22193
+ })) : notFound("reverse", hostname);
22194
+ }))
22195
+ })
22196
+ });
22197
+ };
22198
+ //#endregion
22199
+ //#region ../../node_modules/.pnpm/effect@4.0.5/node_modules/effect/dist/BigInt.js
21490
22200
  /**
21491
22201
  * Exposes the global bigint constructor for JavaScript bigint coercion.
21492
22202
  *
@@ -21551,7 +22261,7 @@ const toNumber = (b) => {
21551
22261
  return some$1(Number(b));
21552
22262
  };
21553
22263
  //#endregion
21554
- //#region ../../node_modules/.pnpm/effect@4.0.4/node_modules/effect/dist/ByteSize.js
22264
+ //#region ../../node_modules/.pnpm/effect@4.0.5/node_modules/effect/dist/ByteSize.js
21555
22265
  const bigint0$1 = /*#__PURE__*/ BigInt(0);
21556
22266
  const bigint1$1 = /*#__PURE__*/ BigInt(1);
21557
22267
  const decimalBase = /*#__PURE__*/ BigInt(1e3);
@@ -21735,7 +22445,7 @@ const binaryUnits = [
21735
22445
  const allUnits = [...decimalUnits, .../*#__PURE__*/ binaryUnits.slice(1)];
21736
22446
  const unitsByName = /*#__PURE__*/ new Map(/*#__PURE__*/ allUnits.flatMap((unit) => unit.names.map((name) => [name, unit])));
21737
22447
  const unitsBySymbol = /*#__PURE__*/ new Map(/*#__PURE__*/ allUnits.map((unit) => [unit.symbol, unit]));
21738
- const make$31 = (value) => value;
22448
+ const make$32 = (value) => value;
21739
22449
  /**
21740
22450
  * The byte size containing zero bytes.
21741
22451
  *
@@ -21743,22 +22453,22 @@ const make$31 = (value) => value;
21743
22453
  * @category constants
21744
22454
  * @since 4.0.0
21745
22455
  */
21746
- const zero$1 = /*#__PURE__*/ make$31(bigint0$1);
22456
+ const zero$1 = /*#__PURE__*/ make$32(bigint0$1);
21747
22457
  const invalid$2 = (message) => {
21748
22458
  throw new Error(`Invalid ByteSize: ${message}`);
21749
22459
  };
21750
22460
  const fromNumber = (input) => {
21751
22461
  if (!Number.isSafeInteger(input) || input < 0) return invalid$2(`expected a non-negative safe integer, received ${input}`);
21752
- return make$31(BigInt(input));
22462
+ return make$32(BigInt(input));
21753
22463
  };
21754
22464
  const fromQuantity = (quantity, unit) => {
21755
22465
  if (typeof quantity === "bigint") {
21756
22466
  if (quantity < bigint0$1) return invalid$2(`expected a non-negative quantity, received ${quantity}`);
21757
- return make$31(quantity * unit.factor);
22467
+ return make$32(quantity * unit.factor);
21758
22468
  }
21759
22469
  const value = quantity * Number(unit.factor);
21760
22470
  if (!Number.isSafeInteger(value) || value < 0) return invalid$2(`expected an exact non-negative safe-integer byte result, received ${quantity} ${unit.symbol}`);
21761
- return make$31(BigInt(value));
22471
+ return make$32(BigInt(value));
21762
22472
  };
21763
22473
  /**
21764
22474
  * Parses a byte-size string and throws for invalid syntax, unsupported units,
@@ -21784,7 +22494,7 @@ const fromStringUnsafe = (input) => {
21784
22494
  const scale = BigInt(10) ** BigInt(fraction.length);
21785
22495
  const numerator = BigInt(match[1] + fraction) * unit.factor;
21786
22496
  if (numerator % scale !== bigint0$1) return invalid$2(`${JSON.stringify(input)} does not represent an integral number of bytes`);
21787
- return make$31(numerator / scale);
22497
+ return make$32(numerator / scale);
21788
22498
  };
21789
22499
  /**
21790
22500
  * Decodes a trusted input into a byte size and throws for invalid input.
@@ -21797,7 +22507,7 @@ const fromInputUnsafe = (input) => {
21797
22507
  switch (typeof input) {
21798
22508
  case "bigint":
21799
22509
  if (input < bigint0$1) return invalid$2(`expected a non-negative bigint, received ${input}`);
21800
- return make$31(input);
22510
+ return make$32(input);
21801
22511
  case "number": return fromNumber(input);
21802
22512
  case "string": return fromStringUnsafe(input);
21803
22513
  }
@@ -21837,7 +22547,7 @@ const mebibytes = /*#__PURE__*/ unitConstructor("MiB");
21837
22547
  */
21838
22548
  const gibibytes = /*#__PURE__*/ unitConstructor("GiB");
21839
22549
  //#endregion
21840
- //#region ../../node_modules/.pnpm/effect@4.0.4/node_modules/effect/dist/PlatformError.js
22550
+ //#region ../../node_modules/.pnpm/effect@4.0.5/node_modules/effect/dist/PlatformError.js
21841
22551
  /**
21842
22552
  * Normalized errors for platform APIs.
21843
22553
  *
@@ -21995,7 +22705,7 @@ const systemError = (options) => new PlatformError(new SystemError(options));
21995
22705
  */
21996
22706
  const badArgument = (options) => new PlatformError(new BadArgument(options));
21997
22707
  //#endregion
21998
- //#region ../../node_modules/.pnpm/effect@4.0.4/node_modules/effect/dist/Chunk.js
22708
+ //#region ../../node_modules/.pnpm/effect@4.0.5/node_modules/effect/dist/Chunk.js
21999
22709
  const TypeId$28 = "~effect/Chunk";
22000
22710
  function copy$2(src, srcPos, dest, destPos, len) {
22001
22711
  for (let i = srcPos; i < Math.min(src.length, srcPos + len); i++) dest[destPos + i - srcPos] = src[i];
@@ -22024,7 +22734,7 @@ const emptyArray = [];
22024
22734
  * @category instances
22025
22735
  * @since 4.0.0
22026
22736
  */
22027
- const makeEquivalence$1 = (isEquivalent) => make$39((self, that) => {
22737
+ const makeEquivalence$1 = (isEquivalent) => make$41((self, that) => {
22028
22738
  if (self.length !== that.length) return false;
22029
22739
  const as = toReadonlyArray(self);
22030
22740
  const bs = toReadonlyArray(that);
@@ -22181,7 +22891,7 @@ const toReadonlyArray_ = (self) => {
22181
22891
  */
22182
22892
  const toReadonlyArray = toReadonlyArray_;
22183
22893
  //#endregion
22184
- //#region ../../node_modules/.pnpm/effect@4.0.4/node_modules/effect/dist/Fiber.js
22894
+ //#region ../../node_modules/.pnpm/effect@4.0.5/node_modules/effect/dist/Fiber.js
22185
22895
  const await_ = fiberAwait;
22186
22896
  /**
22187
22897
  * Joins a fiber, blocking until it completes. If the fiber succeeds,
@@ -22445,7 +23155,7 @@ const getCurrent = getCurrentFiber;
22445
23155
  */
22446
23156
  const runIn = fiberRunIn;
22447
23157
  //#endregion
22448
- //#region ../../node_modules/.pnpm/effect@4.0.4/node_modules/effect/dist/Latch.js
23158
+ //#region ../../node_modules/.pnpm/effect@4.0.5/node_modules/effect/dist/Latch.js
22449
23159
  /**
22450
23160
  * Creates a `Latch` synchronously, outside of `Effect`.
22451
23161
  *
@@ -22516,9 +23226,9 @@ const makeUnsafe$2 = makeLatchUnsafe;
22516
23226
  * @category constructors
22517
23227
  * @since 4.0.0
22518
23228
  */
22519
- const make$30 = makeLatch;
23229
+ const make$31 = makeLatch;
22520
23230
  //#endregion
22521
- //#region ../../node_modules/.pnpm/effect@4.0.4/node_modules/effect/dist/MutableRef.js
23231
+ //#region ../../node_modules/.pnpm/effect@4.0.5/node_modules/effect/dist/MutableRef.js
22522
23232
  const TypeId$27 = "~effect/MutableRef";
22523
23233
  const MutableRefProto = {
22524
23234
  [TypeId$27]: TypeId$27,
@@ -22563,7 +23273,7 @@ const MutableRefProto = {
22563
23273
  * @category constructors
22564
23274
  * @since 2.0.0
22565
23275
  */
22566
- const make$29 = (value) => {
23276
+ const make$30 = (value) => {
22567
23277
  const ref = Object.create(MutableRefProto);
22568
23278
  ref.current = value;
22569
23279
  return ref;
@@ -22624,7 +23334,7 @@ const set$2 = /*#__PURE__*/ dual(2, (self, value) => {
22624
23334
  return self;
22625
23335
  });
22626
23336
  //#endregion
22627
- //#region ../../node_modules/.pnpm/effect@4.0.4/node_modules/effect/dist/MutableList.js
23337
+ //#region ../../node_modules/.pnpm/effect@4.0.5/node_modules/effect/dist/MutableList.js
22628
23338
  /**
22629
23339
  * Mutable lists for collecting ordered values and draining them from the front.
22630
23340
  * A `MutableList<A>` can append values to the end, prepend values to the
@@ -22680,7 +23390,7 @@ const Empty = /*#__PURE__*/ Symbol.for("effect/MutableList/Empty");
22680
23390
  * @category constructors
22681
23391
  * @since 2.0.0
22682
23392
  */
22683
- const make$28 = () => ({
23393
+ const make$29 = () => ({
22684
23394
  head: void 0,
22685
23395
  tail: void 0,
22686
23396
  length: 0
@@ -23049,7 +23759,7 @@ const filter$1 = (self, f) => {
23049
23759
  */
23050
23760
  const remove$2 = (self, value) => filter$1(self, (v) => v !== value);
23051
23761
  //#endregion
23052
- //#region ../../node_modules/.pnpm/effect@4.0.4/node_modules/effect/dist/PubSub.js
23762
+ //#region ../../node_modules/.pnpm/effect@4.0.5/node_modules/effect/dist/PubSub.js
23053
23763
  /**
23054
23764
  * Broadcasts values from publishers to many subscribers.
23055
23765
  *
@@ -23094,7 +23804,7 @@ const SubscriptionTypeId = "~effect/PubSub/Subscription";
23094
23804
  * @category constructors
23095
23805
  * @since 4.0.0
23096
23806
  */
23097
- const make$27 = (options) => sync(() => makePubSubUnsafe(options.atomicPubSub(), /* @__PURE__ */ new Map(), makeUnsafe$4(), makeUnsafe$2(false), make$29(false), options.strategy(), make$29(none())));
23807
+ const make$28 = (options) => sync(() => makePubSubUnsafe(options.atomicPubSub(), /* @__PURE__ */ new Map(), makeUnsafe$4(), makeUnsafe$2(false), make$30(false), options.strategy(), make$30(none())));
23098
23808
  /**
23099
23809
  * Creates an unbounded `PubSub`.
23100
23810
  *
@@ -23125,7 +23835,7 @@ const make$27 = (options) => sync(() => makePubSubUnsafe(options.atomicPubSub(),
23125
23835
  * @category constructors
23126
23836
  * @since 2.0.0
23127
23837
  */
23128
- const unbounded = (options) => make$27({
23838
+ const unbounded = (options) => make$28({
23129
23839
  atomicPubSub: () => makeAtomicUnbounded(options),
23130
23840
  strategy: () => new DroppingStrategy()
23131
23841
  });
@@ -23339,7 +24049,7 @@ const removeSubscribers = (subscribers, subscription, pollers) => {
23339
24049
  set.delete(pollers);
23340
24050
  if (set.size === 0) subscribers.delete(subscription);
23341
24051
  };
23342
- const makeSubscriptionUnsafe = (pubsub, subscribers, strategy, ended) => new SubscriptionImpl(pubsub, subscribers, pubsub.subscribe(), make$28(), makeUnsafe$2(false), make$29(false), strategy, pubsub.replayWindow(), ended);
24052
+ const makeSubscriptionUnsafe = (pubsub, subscribers, strategy, ended) => new SubscriptionImpl(pubsub, subscribers, pubsub.subscribe(), make$29(), makeUnsafe$2(false), make$30(false), strategy, pubsub.replayWindow(), ended);
23343
24053
  var UnboundedPubSub = class {
23344
24054
  publisherHead = {
23345
24055
  value: AbsentValue,
@@ -23727,7 +24437,7 @@ const emptyReplayWindow = {
23727
24437
  close: () => void 0
23728
24438
  };
23729
24439
  //#endregion
23730
- //#region ../../node_modules/.pnpm/effect@4.0.4/node_modules/effect/dist/Queue.js
24440
+ //#region ../../node_modules/.pnpm/effect@4.0.5/node_modules/effect/dist/Queue.js
23731
24441
  /**
23732
24442
  * Passes values asynchronously between fibers.
23733
24443
  *
@@ -23802,12 +24512,12 @@ const QueueProto = {
23802
24512
  * @category constructors
23803
24513
  * @since 4.0.0
23804
24514
  */
23805
- const make$26 = (options) => withFiber$1((fiber) => {
24515
+ const make$27 = (options) => withFiber$1((fiber) => {
23806
24516
  const self = Object.create(QueueProto);
23807
24517
  self.dispatcher = fiber.currentDispatcher;
23808
24518
  self.capacity = options?.capacity ?? Number.POSITIVE_INFINITY;
23809
24519
  self.strategy = options?.strategy ?? "suspend";
23810
- self.messages = make$28();
24520
+ self.messages = make$29();
23811
24521
  self.scheduleRunning = false;
23812
24522
  self.state = {
23813
24523
  _tag: "Open",
@@ -23848,7 +24558,7 @@ const make$26 = (options) => withFiber$1((fiber) => {
23848
24558
  * @category constructors
23849
24559
  * @since 2.0.0
23850
24560
  */
23851
- const bounded = (capacity) => make$26({ capacity });
24561
+ const bounded = (capacity) => make$27({ capacity });
23852
24562
  /**
23853
24563
  * Adds a message to the queue. Returns `false` if the queue is done.
23854
24564
  *
@@ -24715,7 +25425,7 @@ const finalize = (self, exit) => {
24715
25425
  openState.awaiters.clear();
24716
25426
  };
24717
25427
  //#endregion
24718
- //#region ../../node_modules/.pnpm/effect@4.0.4/node_modules/effect/dist/Semaphore.js
25428
+ //#region ../../node_modules/.pnpm/effect@4.0.5/node_modules/effect/dist/Semaphore.js
24719
25429
  /**
24720
25430
  * Creates a `Semaphore` synchronously with the specified total
24721
25431
  * number of permits.
@@ -24879,9 +25589,9 @@ var SemaphoreImpl = class {
24879
25589
  * @category constructors
24880
25590
  * @since 4.0.0
24881
25591
  */
24882
- const make$25 = (permits) => sync$2(() => new SemaphoreImpl(permits));
25592
+ const make$26 = (permits) => sync$2(() => new SemaphoreImpl(permits));
24883
25593
  //#endregion
24884
- //#region ../../node_modules/.pnpm/effect@4.0.4/node_modules/effect/dist/Channel.js
25594
+ //#region ../../node_modules/.pnpm/effect@4.0.5/node_modules/effect/dist/Channel.js
24885
25595
  /**
24886
25596
  * Provides low-level building blocks for streaming data through Effect.
24887
25597
  *
@@ -25063,7 +25773,7 @@ const toTransform = (channel) => channel.transform;
25063
25773
  * @since 4.0.0
25064
25774
  */
25065
25775
  const DefaultChunkSize = 4096;
25066
- const asyncQueue = (scope, f, options) => make$26({
25776
+ const asyncQueue = (scope, f, options) => make$27({
25067
25777
  capacity: options?.bufferSize,
25068
25778
  strategy: options?.strategy
25069
25779
  }).pipe(tap$1((queue) => addFinalizer$1(scope, shutdown(queue))), tap$1((queue) => provide$3(f(queue), scope).pipe(catchCause$1((cause) => failCause$2(queue, cause)), forkIn(scope))));
@@ -25185,15 +25895,15 @@ const fromIteratorArray = (iterator, chunkSize = DefaultChunkSize) => {
25185
25895
  const size = normalizeNonEmpty(chunkSize);
25186
25896
  return fromPull$1(sync(() => {
25187
25897
  const iter = iterator();
25188
- let done$17 = none();
25898
+ let done$18 = none();
25189
25899
  return suspend$2(() => {
25190
- if (done$17._tag === "Some") return done(done$17.value);
25900
+ if (done$18._tag === "Some") return done(done$18.value);
25191
25901
  const buffer = [];
25192
25902
  while (buffer.length < size) {
25193
25903
  const state = iter.next();
25194
25904
  if (state.done) {
25195
25905
  if (buffer.length === 0) return done(state.value);
25196
- done$17 = some$1(state.value);
25906
+ done$18 = some$1(state.value);
25197
25907
  break;
25198
25908
  }
25199
25909
  buffer.push(state.value);
@@ -25627,7 +26337,7 @@ const fromSubscriptionArray = (subscription) => fromPull$1(succeed$4(onInterrupt
25627
26337
  * @category constructors
25628
26338
  * @since 4.0.0
25629
26339
  */
25630
- const fromPubSubArray = (pubsub) => unwrap$3(map$3(subscribe(pubsub), fromSubscriptionArray));
26340
+ const fromPubSubArray = (pubsub) => unwrap$4(map$3(subscribe(pubsub), fromSubscriptionArray));
25631
26341
  /**
25632
26342
  * Creates a channel from a lazily supplied Web `ReadableStream`.
25633
26343
  *
@@ -25661,7 +26371,7 @@ const fromReadableStream$1 = (options) => fromTransform$1((_, scope) => readable
25661
26371
  }));
25662
26372
  const readableStreamToPullUnsafe = (options) => {
25663
26373
  const reader = options.readable.getReader();
25664
- const exit = options.exit ?? make$29(void 0);
26374
+ const exit = options.exit ?? make$30(void 0);
25665
26375
  const pull = suspend$2(() => {
25666
26376
  if (exit.current) return exit.current;
25667
26377
  return matchCauseEffect(tryPromise({
@@ -25742,7 +26452,7 @@ const mapDone = /*#__PURE__*/ dual(2, (self, f) => mapDoneEffect(self, (o) => su
25742
26452
  * @category sequencing
25743
26453
  * @since 4.0.0
25744
26454
  */
25745
- const mapDoneEffect = /*#__PURE__*/ dual(2, (self, f) => transformPull$1(self, (pull) => succeed$4(catchDone(pull, (done$15) => flatMap$2(f(done$15), done)))));
26455
+ const mapDoneEffect = /*#__PURE__*/ dual(2, (self, f) => transformPull$1(self, (pull) => succeed$4(catchDone(pull, (done$16) => flatMap$2(f(done$16), done)))));
25746
26456
  const concurrencyIsSequential = (concurrency) => concurrency === void 0 || concurrency !== "unbounded" && concurrency <= 1;
25747
26457
  /**
25748
26458
  * Maps each output element with an effectful function, preserving the source
@@ -26305,7 +27015,7 @@ const orDie$1 = (self) => catch_$1(self, die$1);
26305
27015
  const mergeAll$1 = /*#__PURE__*/ dual(2, (channels, { bufferSize = 16, concurrency, switch: switch_ = false }) => fromTransformBracket(fnUntraced(function* (upstream, scope, forkedScope) {
26306
27016
  const concurrencyN = concurrency === "unbounded" ? Number.MAX_SAFE_INTEGER : Math.max(1, concurrency);
26307
27017
  const semaphore = switch_ ? void 0 : makeUnsafe$1(concurrencyN);
26308
- const doneLatch = yield* make$30(true);
27018
+ const doneLatch = yield* make$31(true);
26309
27019
  const fibers = /* @__PURE__ */ new Set();
26310
27020
  const queue = yield* bounded(bufferSize);
26311
27021
  yield* addFinalizer$1(forkedScope, shutdown(queue));
@@ -26426,7 +27136,7 @@ const merge$2 = /*#__PURE__*/ dual((args) => isChannel(args[0]) && isChannel(arg
26426
27136
  const splitLines$1 = () => fromTransform$1((upstream, _scope) => sync(() => {
26427
27137
  let stringBuilder = "";
26428
27138
  let midCRLF = false;
26429
- let done$14 = none();
27139
+ let done$15 = none();
26430
27140
  function splitLinesArray(chunk) {
26431
27141
  const chunkBuilder = [];
26432
27142
  function pushLine(segment) {
@@ -26471,12 +27181,12 @@ const splitLines$1 = () => fromTransform$1((upstream, _scope) => sync(() => {
26471
27181
  return isReadonlyArrayNonEmpty(chunkBuilder) ? chunkBuilder : null;
26472
27182
  }
26473
27183
  const pullOrFlush = suspend$2(() => {
26474
- if (done$14._tag === "Some") return done(done$14.value);
27184
+ if (done$15._tag === "Some") return done(done$15.value);
26475
27185
  return matchEffect$1(upstream, {
26476
27186
  onSuccess: loop,
26477
27187
  onFailure: failCause$3,
26478
27188
  onDone: (leftover) => {
26479
- done$14 = some$1(leftover);
27189
+ done$15 = some$1(leftover);
26480
27190
  if (stringBuilder.length > 0) {
26481
27191
  const last = stringBuilder;
26482
27192
  stringBuilder = "";
@@ -26584,7 +27294,7 @@ const pipeToOrFail = /*#__PURE__*/ dual(2, (self, that) => fromTransform$1((upst
26584
27294
  * @category constructors
26585
27295
  * @since 2.0.0
26586
27296
  */
26587
- const unwrap$3 = (channel) => fromTransform$1((upstream, scope) => {
27297
+ const unwrap$4 = (channel) => fromTransform$1((upstream, scope) => {
26588
27298
  let pull;
26589
27299
  return succeed$4(suspend$2(() => {
26590
27300
  if (pull) return pull;
@@ -26870,7 +27580,7 @@ const runFold = /*#__PURE__*/ dual(3, (self, initial, f) => suspend$2(() => {
26870
27580
  */
26871
27581
  const toPullScoped = (self, scope) => toTransform(self)(done(), scope);
26872
27582
  //#endregion
26873
- //#region ../../node_modules/.pnpm/effect@4.0.4/node_modules/effect/dist/internal/stream.js
27583
+ //#region ../../node_modules/.pnpm/effect@4.0.5/node_modules/effect/dist/internal/stream.js
26874
27584
  const TypeId$23 = "~effect/Stream";
26875
27585
  const streamVariance = {
26876
27586
  _R: identity,
@@ -26889,7 +27599,7 @@ Stream$1.prototype = {
26889
27599
  /** @internal */
26890
27600
  const fromChannel$2 = (channel) => new Stream$1(channel);
26891
27601
  //#endregion
26892
- //#region ../../node_modules/.pnpm/effect@4.0.4/node_modules/effect/dist/Sink.js
27602
+ //#region ../../node_modules/.pnpm/effect@4.0.5/node_modules/effect/dist/Sink.js
26893
27603
  const TypeId$22 = "~effect/Sink";
26894
27604
  const endVoid = /*#__PURE__*/ succeed$4([void 0]);
26895
27605
  const sinkVariance = {
@@ -27156,9 +27866,9 @@ const forEachArray = (f) => fromTransform((upstream) => upstream.pipe(flatMap$2(
27156
27866
  * @category constructors
27157
27867
  * @since 2.0.0
27158
27868
  */
27159
- const unwrap$2 = (effect) => fromChannel$1(unwrap$3(map$3(effect, toChannel$1)));
27869
+ const unwrap$3 = (effect) => fromChannel$1(unwrap$4(map$3(effect, toChannel$1)));
27160
27870
  //#endregion
27161
- //#region ../../node_modules/.pnpm/effect@4.0.4/node_modules/effect/dist/internal/rcRef.js
27871
+ //#region ../../node_modules/.pnpm/effect@4.0.5/node_modules/effect/dist/internal/rcRef.js
27162
27872
  const TypeId$21 = "~effect/RcRef";
27163
27873
  const stateEmpty = { _tag: "Empty" };
27164
27874
  const stateClosed = { _tag: "Closed" };
@@ -27184,7 +27894,7 @@ var RcRefImpl = class {
27184
27894
  }
27185
27895
  };
27186
27896
  /** @internal */
27187
- const make$24 = (options) => withFiber((fiber) => {
27897
+ const make$25 = (options) => withFiber((fiber) => {
27188
27898
  const context = fiber.context;
27189
27899
  const scope = get$6(context, Scope);
27190
27900
  const ref = new RcRefImpl(options.acquire, context, scope, options.idleTimeToLive !== void 0 ? fromInputUnsafe$1(options.idleTimeToLive) : void 0);
@@ -27273,7 +27983,7 @@ const release = (self, state) => {
27273
27983
  return void_$1;
27274
27984
  };
27275
27985
  //#endregion
27276
- //#region ../../node_modules/.pnpm/effect@4.0.4/node_modules/effect/dist/RcRef.js
27986
+ //#region ../../node_modules/.pnpm/effect@4.0.5/node_modules/effect/dist/RcRef.js
27277
27987
  /**
27278
27988
  * Creates an `RcRef` from an acquire effect.
27279
27989
  *
@@ -27321,7 +28031,7 @@ const release = (self, state) => {
27321
28031
  * @category constructors
27322
28032
  * @since 3.5.0
27323
28033
  */
27324
- const make$23 = make$24;
28034
+ const make$24 = make$25;
27325
28035
  /**
27326
28036
  * Gets the value from an `RcRef`, acquiring it first if needed.
27327
28037
  *
@@ -27369,7 +28079,7 @@ const make$23 = make$24;
27369
28079
  */
27370
28080
  const get$2 = get$3;
27371
28081
  //#endregion
27372
- //#region ../../node_modules/.pnpm/effect@4.0.4/node_modules/effect/dist/Stream.js
28082
+ //#region ../../node_modules/.pnpm/effect@4.0.5/node_modules/effect/dist/Stream.js
27373
28083
  /**
27374
28084
  * Describes effectful sources that emit values over time.
27375
28085
  *
@@ -27845,7 +28555,7 @@ const fromReadableStream = (options) => fromChannel(fromReadableStream$1(options
27845
28555
  * @category constructors
27846
28556
  * @since 2.0.0
27847
28557
  */
27848
- const unwrap$1 = (effect) => fromChannel(unwrap$3(map$3(effect, toChannel)));
28558
+ const unwrap$2 = (effect) => fromChannel(unwrap$4(map$3(effect, toChannel)));
27849
28559
  /**
27850
28560
  * Transforms the elements of this stream using the supplied function.
27851
28561
  *
@@ -28699,7 +29409,7 @@ const aggregateWithin = /*#__PURE__*/ dual(3, (self, sink, schedule) => fromChan
28699
29409
  const pull = yield* toPullScoped(self.channel, _);
28700
29410
  const pullLatch = makeUnsafe$2(false);
28701
29411
  const scheduleStep = Symbol();
28702
- const buffer = yield* make$26({ capacity: 0 });
29412
+ const buffer = yield* make$27({ capacity: 0 });
28703
29413
  yield* pull.pipe(pullLatch.whenOpen, flatMap$2((arr) => {
28704
29414
  pullLatch.closeUnsafe();
28705
29415
  return offer(buffer, arr);
@@ -29291,7 +30001,7 @@ const toReadableStreamWith = /*#__PURE__*/ dual((args) => isStream(args[0]), (se
29291
30001
  */
29292
30002
  const toReadableStreamEffect = /*#__PURE__*/ dual((args) => isStream(args[0]), (self, options) => map$3(context(), (context) => toReadableStreamWith(self, context, options)));
29293
30003
  //#endregion
29294
- //#region ../../node_modules/.pnpm/effect@4.0.4/node_modules/effect/dist/FileSystem.js
30004
+ //#region ../../node_modules/.pnpm/effect@4.0.5/node_modules/effect/dist/FileSystem.js
29295
30005
  /**
29296
30006
  * Defines the portable file system service for Effect programs.
29297
30007
  *
@@ -29371,7 +30081,7 @@ const FileSystem = /*#__PURE__*/ Service("effect/FileSystem");
29371
30081
  * @category constructors
29372
30082
  * @since 4.0.0
29373
30083
  */
29374
- const make$22 = (impl) => FileSystem.of({
30084
+ const make$23 = (impl) => FileSystem.of({
29375
30085
  ...impl,
29376
30086
  [TypeId$19]: TypeId$19,
29377
30087
  exists: (path) => pipe(impl.access(path), as(true), catchTag("PlatformError", (e) => e.reason._tag === "NotFound" ? succeed$4(false) : fail$3(e))),
@@ -29402,11 +30112,11 @@ const make$22 = (impl) => FileSystem.of({
29402
30112
  return succeed$4(of(buf));
29403
30113
  }
29404
30114
  }))));
29405
- }, unwrap$1),
30115
+ }, unwrap$2),
29406
30116
  sink: (path, options) => pipe(impl.open(path, {
29407
30117
  ...options,
29408
30118
  flag: options?.flag ?? "w"
29409
- }), map$3((file) => forEach((_) => file.writeAll(_))), unwrap$2),
30119
+ }), map$3((file) => forEach((_) => file.writeAll(_))), unwrap$3),
29410
30120
  writeFileString: (path, data, options) => flatMap$2(try_({
29411
30121
  try: () => new TextEncoder().encode(data),
29412
30122
  catch: (cause) => badArgument({
@@ -29477,7 +30187,7 @@ const FileTypeId = "~effect/FileSystem/File";
29477
30187
  */
29478
30188
  var WatchBackend = class extends (/*#__PURE__*/ Service()("effect/FileSystem/WatchBackend")) {};
29479
30189
  //#endregion
29480
- //#region ../../node_modules/.pnpm/effect@4.0.4/node_modules/effect/dist/Path.js
30190
+ //#region ../../node_modules/.pnpm/effect@4.0.5/node_modules/effect/dist/Path.js
29481
30191
  /**
29482
30192
  * Provides path operations through the Effect environment.
29483
30193
  *
@@ -29519,8 +30229,7 @@ const TypeId$18 = "~effect/Path";
29519
30229
  * import { Effect, Layer, Path } from "effect"
29520
30230
  *
29521
30231
  * // Create a custom path implementation
29522
- * const customPath: Path.Path = {
29523
- * [Path.TypeId]: Path.TypeId,
30232
+ * const customPath = Path.make({
29524
30233
  * sep: "/",
29525
30234
  * basename: (path: string, suffix?: string) => {
29526
30235
  * const base = path.split("/").pop() || ""
@@ -29554,7 +30263,7 @@ const TypeId$18 = "~effect/Path";
29554
30263
  * resolve: (...pathSegments: ReadonlyArray<string>) => pathSegments.join("/"),
29555
30264
  * toFileUrl: (path: string) => Effect.succeed(new URL(`file://${path}`)),
29556
30265
  * toNamespacedPath: (path: string) => path
29557
- * }
30266
+ * })
29558
30267
  *
29559
30268
  * // Provide the path service
29560
30269
  * const customPathLayer = Layer.succeed(Path.Path)(customPath)
@@ -29573,8 +30282,40 @@ const TypeId$18 = "~effect/Path";
29573
30282
  * @since 4.0.0
29574
30283
  */
29575
30284
  const Path$1 = /*#__PURE__*/ Service("effect/Path");
30285
+ /**
30286
+ * Creates a `Path` service from platform path operations.
30287
+ *
30288
+ * **When to use**
30289
+ *
30290
+ * Use to build a `Path` implementation, such as a platform layer or a test
30291
+ * double, without implementing the operations that can be derived from the
30292
+ * others.
30293
+ *
30294
+ * **Details**
30295
+ *
30296
+ * Adds the `Path` type marker and derives `resolveWithin` from the provided
30297
+ * `parse`, `resolve`, `relative`, `isAbsolute`, and `sep`, so containment
30298
+ * follows the same platform rules as those operations.
30299
+ *
30300
+ * @see {@link layer} for the built-in POSIX `Path` service layer
30301
+ *
30302
+ * @stability unstable
30303
+ * @category constructors
30304
+ * @since 4.0.0
30305
+ */
30306
+ const make$22 = (impl) => Path$1.of({
30307
+ ...impl,
30308
+ [TypeId$18]: TypeId$18,
30309
+ resolveWithin(root, input) {
30310
+ if (impl.parse(input).root !== "") return none();
30311
+ const base = impl.resolve(root);
30312
+ const candidate = impl.resolve(base, input);
30313
+ const relative = impl.relative(base, candidate);
30314
+ return relative === ".." || relative.startsWith(`..${impl.sep}`) || impl.isAbsolute(relative) ? none() : some$1(candidate);
30315
+ }
30316
+ });
29576
30317
  //#endregion
29577
- //#region ../../node_modules/.pnpm/effect@4.0.4/node_modules/effect/dist/internal/schema/annotations.js
30318
+ //#region ../../node_modules/.pnpm/effect@4.0.5/node_modules/effect/dist/internal/schema/annotations.js
29578
30319
  /** @internal */
29579
30320
  function resolve$1(ast) {
29580
30321
  return ast.checks ? ast.checks[ast.checks.length - 1].annotations : ast.annotations;
@@ -29633,7 +30374,7 @@ const annotationExcludedKeys = /*#__PURE__*/ new Set([
29633
30374
  "toCodecArbitrary"
29634
30375
  ]);
29635
30376
  //#endregion
29636
- //#region ../../node_modules/.pnpm/effect@4.0.4/node_modules/effect/dist/internal/schema/parser.js
30377
+ //#region ../../node_modules/.pnpm/effect@4.0.5/node_modules/effect/dist/internal/schema/parser.js
29637
30378
  /** @internal */
29638
30379
  const missing = /*#__PURE__*/ Symbol();
29639
30380
  /** @internal */
@@ -29647,7 +30388,7 @@ const toOption = (value) => value === missing ? none() : some$1(value);
29647
30388
  /** @internal */
29648
30389
  const fromOptionExit = (option) => option._tag === "None" ? missingExit : succeed$1(option.value);
29649
30390
  //#endregion
29650
- //#region ../../node_modules/.pnpm/effect@4.0.4/node_modules/effect/dist/SchemaIssue.js
30391
+ //#region ../../node_modules/.pnpm/effect@4.0.5/node_modules/effect/dist/SchemaIssue.js
29651
30392
  /**
29652
30393
  * Describes problems found while decoding, encoding, or checking data with
29653
30394
  * schemas.
@@ -30166,7 +30907,7 @@ function findMessage(issue) {
30166
30907
  if (typeof message === "string") return message;
30167
30908
  }
30168
30909
  //#endregion
30169
- //#region ../../node_modules/.pnpm/effect@4.0.4/node_modules/effect/dist/internal/schema/cause.js
30910
+ //#region ../../node_modules/.pnpm/effect@4.0.5/node_modules/effect/dist/internal/schema/cause.js
30170
30911
  /** @internal */
30171
30912
  function getSchemaIssue(cause) {
30172
30913
  let issue;
@@ -30183,7 +30924,7 @@ function getSchemaIssueOrThrow(cause, message) {
30183
30924
  return issue;
30184
30925
  }
30185
30926
  //#endregion
30186
- //#region ../../node_modules/.pnpm/effect@4.0.4/node_modules/effect/dist/DateTime.js
30927
+ //#region ../../node_modules/.pnpm/effect@4.0.5/node_modules/effect/dist/DateTime.js
30187
30928
  /**
30188
30929
  * Checks whether a value is a `DateTime`.
30189
30930
  *
@@ -30325,7 +31066,7 @@ const makeZonedUnsafe = makeZonedUnsafe$1;
30325
31066
  * @category constructors
30326
31067
  * @since 3.6.0
30327
31068
  */
30328
- const make$21 = make$32;
31069
+ const make$21 = make$34;
30329
31070
  /**
30330
31071
  * Gets the current time using the `Clock` service and converts it to a `DateTime`.
30331
31072
  *
@@ -30421,7 +31162,7 @@ const toEpochMillis = toEpochMillis$1;
30421
31162
  */
30422
31163
  const formatIso = formatIso$1;
30423
31164
  //#endregion
30424
- //#region ../../node_modules/.pnpm/effect@4.0.4/node_modules/effect/dist/encoding/Base64.js
31165
+ //#region ../../node_modules/.pnpm/effect@4.0.5/node_modules/effect/dist/encoding/Base64.js
30425
31166
  /**
30426
31167
  * Base64 encoding and decoding helpers.
30427
31168
  *
@@ -30556,7 +31297,7 @@ const getCode = (charCode) => {
30556
31297
  return codes[charCode];
30557
31298
  };
30558
31299
  //#endregion
30559
- //#region ../../node_modules/.pnpm/effect@4.0.4/node_modules/effect/dist/SchemaGetter.js
31300
+ //#region ../../node_modules/.pnpm/effect@4.0.5/node_modules/effect/dist/SchemaGetter.js
30560
31301
  const makeGetter = (fields) => Object.assign(Object.create(Prototype$1), fields);
30561
31302
  /**
30562
31303
  * Creates a getter that always fails with the given issue.
@@ -31069,7 +31810,7 @@ function decodeBase64() {
31069
31810
  return transformEffect$1((input, options) => mapErrorEager(fromResult(decode(input)), () => new InvalidValue({ expected: "a valid Base64 string" }, input, options)));
31070
31811
  }
31071
31812
  //#endregion
31072
- //#region ../../node_modules/.pnpm/effect@4.0.4/node_modules/effect/dist/BigDecimal.js
31813
+ //#region ../../node_modules/.pnpm/effect@4.0.5/node_modules/effect/dist/BigDecimal.js
31073
31814
  /**
31074
31815
  * Decimal numbers and arithmetic for cases where JavaScript `number` rounding
31075
31816
  * is not precise enough. A `BigDecimal` stores digits as a `bigint` plus a
@@ -31354,7 +32095,7 @@ const toExponential = (n) => {
31354
32095
  */
31355
32096
  const isZero = (n) => n.value === bigint0;
31356
32097
  //#endregion
31357
- //#region ../../node_modules/.pnpm/effect@4.0.4/node_modules/effect/dist/SchemaTransformation.js
32098
+ //#region ../../node_modules/.pnpm/effect@4.0.5/node_modules/effect/dist/SchemaTransformation.js
31358
32099
  /**
31359
32100
  * Constructs schema middleware from its decode and encode functions.
31360
32101
  *
@@ -31829,7 +32570,7 @@ function fromJsonString$1(options) {
31829
32570
  return new Transformation(parseJson(options ?? {}), stringifyJson(options));
31830
32571
  }
31831
32572
  //#endregion
31832
- //#region ../../node_modules/.pnpm/effect@4.0.4/node_modules/effect/dist/SchemaAST.js
32573
+ //#region ../../node_modules/.pnpm/effect@4.0.5/node_modules/effect/dist/SchemaAST.js
31833
32574
  /**
31834
32575
  * Represents Effect schemas as runtime trees.
31835
32576
  *
@@ -33990,7 +34731,7 @@ const unknownToStringTree = /*#__PURE__*/ new Link(/* @__PURE__ */ new Declarati
33990
34731
  toCodecStringTree: () => void 0
33991
34732
  }), /*#__PURE__*/ passthrough());
33992
34733
  //#endregion
33993
- //#region ../../node_modules/.pnpm/effect@4.0.4/node_modules/effect/dist/Brand.js
34734
+ //#region ../../node_modules/.pnpm/effect@4.0.5/node_modules/effect/dist/Brand.js
33994
34735
  /**
33995
34736
  * Returns a `Constructor` that **does not apply any runtime checks** and just
33996
34737
  * returns the provided value.
@@ -34015,7 +34756,7 @@ function nominal() {
34015
34756
  });
34016
34757
  }
34017
34758
  //#endregion
34018
- //#region ../../node_modules/.pnpm/effect@4.0.4/node_modules/effect/dist/process/ChildProcessSpawner.js
34759
+ //#region ../../node_modules/.pnpm/effect@4.0.5/node_modules/effect/dist/process/ChildProcessSpawner.js
34019
34760
  /**
34020
34761
  * Service boundary for starting and controlling child processes.
34021
34762
  *
@@ -34073,7 +34814,7 @@ const makeHandle = (params) => Object.setPrototypeOf({ ...params }, HandleProto)
34073
34814
  * @since 4.0.0
34074
34815
  */
34075
34816
  const make$19 = (spawn) => {
34076
- const streamString = (command, options) => spawn(command).pipe(map$3((handle) => decodeText$1(options?.includeStderr === true ? handle.all : handle.stdout)), unwrap$1);
34817
+ const streamString = (command, options) => spawn(command).pipe(map$3((handle) => decodeText$1(options?.includeStderr === true ? handle.all : handle.stdout)), unwrap$2);
34077
34818
  const streamLines = (command, options) => splitLines(streamString(command, options));
34078
34819
  return ChildProcessSpawner.of({
34079
34820
  spawn,
@@ -34093,7 +34834,7 @@ const make$19 = (spawn) => {
34093
34834
  */
34094
34835
  var ChildProcessSpawner = class extends (/*#__PURE__*/ Service()("effect/process/ChildProcessSpawner")) {};
34095
34836
  //#endregion
34096
- //#region ../../node_modules/.pnpm/effect@4.0.4/node_modules/effect/dist/process/ChildProcess.js
34837
+ //#region ../../node_modules/.pnpm/effect@4.0.5/node_modules/effect/dist/process/ChildProcess.js
34097
34838
  /**
34098
34839
  * Describes child processes before they are started.
34099
34840
  *
@@ -34309,7 +35050,7 @@ const concatTokens = (prevTokens, nextTokens, isSeparated) => isSeparated || pre
34309
35050
  ...nextTokens.slice(1)
34310
35051
  ];
34311
35052
  //#endregion
34312
- //#region ../../node_modules/.pnpm/@effect+platform-node-shared@4.0.4_effect@4.0.4/node_modules/@effect/platform-node-shared/dist/internal/nodeChildProcessSpawner.js
35053
+ //#region ../../node_modules/.pnpm/@effect+platform-node-shared@4.0.5_effect@4.0.5/node_modules/@effect/platform-node-shared/dist/internal/nodeChildProcessSpawner.js
34313
35054
  const buildSpawnOptions = (options, base, platform) => {
34314
35055
  const detached = options.detached ?? platform !== "win32";
34315
35056
  return {
@@ -34320,7 +35061,7 @@ const buildSpawnOptions = (options, base, platform) => {
34320
35061
  };
34321
35062
  };
34322
35063
  //#endregion
34323
- //#region ../../node_modules/.pnpm/@effect+platform-node-shared@4.0.4_effect@4.0.4/node_modules/@effect/platform-node-shared/dist/internal/utils.js
35064
+ //#region ../../node_modules/.pnpm/@effect+platform-node-shared@4.0.5_effect@4.0.5/node_modules/@effect/platform-node-shared/dist/internal/utils.js
34324
35065
  /** @internal */
34325
35066
  const handleErrnoException = (module, method) => (err, [path]) => {
34326
35067
  let reason = "Unknown";
@@ -34355,7 +35096,7 @@ const handleErrnoException = (module, method) => (err, [path]) => {
34355
35096
  });
34356
35097
  };
34357
35098
  //#endregion
34358
- //#region ../../node_modules/.pnpm/@effect+platform-node-shared@4.0.4_effect@4.0.4/node_modules/@effect/platform-node-shared/dist/NodeSink.js
35099
+ //#region ../../node_modules/.pnpm/@effect+platform-node-shared@4.0.5_effect@4.0.5/node_modules/@effect/platform-node-shared/dist/NodeSink.js
34359
35100
  /**
34360
35101
  * Creates a `Sink` that writes chunks to a Node writable stream, respecting
34361
35102
  * backpressure, mapping writable errors with `onError`, and ending the stream
@@ -34438,7 +35179,7 @@ const pullIntoWritable = (options) => options.pull.pipe(flatMap$2((chunk) => {
34438
35179
  });
34439
35180
  })));
34440
35181
  //#endregion
34441
- //#region ../../node_modules/.pnpm/@effect+platform-node-shared@4.0.4_effect@4.0.4/node_modules/@effect/platform-node-shared/dist/NodeStream.js
35182
+ //#region ../../node_modules/.pnpm/@effect+platform-node-shared@4.0.5_effect@4.0.5/node_modules/@effect/platform-node-shared/dist/NodeStream.js
34442
35183
  /**
34443
35184
  * Adapters between Node streams and Effect streams, channels, and readables.
34444
35185
  *
@@ -34488,7 +35229,7 @@ const fromReadableChannel = (options) => fromTransform$1((_, scope) => readableT
34488
35229
  */
34489
35230
  const fromDuplex = (options) => fromTransform$1((upstream, scope) => {
34490
35231
  const duplex = options.evaluate();
34491
- const exit = make$29(void 0);
35232
+ const exit = make$30(void 0);
34492
35233
  const latch = makeUnsafe$2(false);
34493
35234
  return pullIntoWritable({
34494
35235
  pull: upstream,
@@ -34569,7 +35310,7 @@ const toUint8Array = (readable, options) => map$3(toArrayBuffer(readable, option
34569
35310
  const readableToPullUnsafe = (options) => {
34570
35311
  const readable = options.readable;
34571
35312
  const closeOnDone = options.closeOnDone ?? true;
34572
- const exit = options.exit ?? make$29(void 0);
35313
+ const exit = options.exit ?? make$30(void 0);
34573
35314
  const latch = options.latch ?? makeUnsafe$2(false);
34574
35315
  function onReadable() {
34575
35316
  latch.openUnsafe();
@@ -34611,7 +35352,7 @@ const readableToPullUnsafe = (options) => {
34611
35352
  const defaultOnError = (error) => new UnknownError(error);
34612
35353
  const toMaxBytes = (maxBytes) => maxBytes === void 0 || maxBytes === Infinity ? void 0 : Number(fromInputUnsafe(maxBytes));
34613
35354
  //#endregion
34614
- //#region ../../node_modules/.pnpm/@effect+platform-node-shared@4.0.4_effect@4.0.4/node_modules/@effect/platform-node-shared/dist/NodeChildProcessSpawner.js
35355
+ //#region ../../node_modules/.pnpm/@effect+platform-node-shared@4.0.5_effect@4.0.5/node_modules/@effect/platform-node-shared/dist/NodeChildProcessSpawner.js
34615
35356
  const toError = (error) => error instanceof globalThis.Error ? error : new globalThis.Error(String(error));
34616
35357
  const toPlatformError = (method, error, command) => {
34617
35358
  const { commands } = flattenCommand(command);
@@ -34984,7 +35725,7 @@ const layer$12 = /*#__PURE__*/ effect(ChildProcessSpawner, /* @__PURE__ */ gen(f
34984
35725
  const command = pipeline[i];
34985
35726
  const options = pipeOptions[i] ?? {};
34986
35727
  const stdinConfig = resolveStdinOption(command.options);
34987
- const sourceStream = unwrap$1(succeed$4(getSourceStream(handles[handles.length - 1], options.from)));
35728
+ const sourceStream = unwrap$2(succeed$4(getSourceStream(handles[handles.length - 1], options.from)));
34988
35729
  const toOption = options.to ?? "stdin";
34989
35730
  if (toOption === "stdin") handles.push(yield* spawnCommand(make$18(command.command, command.args, {
34990
35731
  ...command.options,
@@ -35073,7 +35814,7 @@ const flattenCommand = (command) => {
35073
35814
  };
35074
35815
  };
35075
35816
  //#endregion
35076
- //#region ../../node_modules/.pnpm/effect@4.0.4/node_modules/effect/dist/http/Cookies.js
35817
+ //#region ../../node_modules/.pnpm/effect@4.0.5/node_modules/effect/dist/http/Cookies.js
35077
35818
  /**
35078
35819
  * Models HTTP cookies and cookie collections for requests and responses.
35079
35820
  *
@@ -35413,7 +36154,7 @@ const tryDecodeURIComponent = (str) => {
35413
36154
  }
35414
36155
  };
35415
36156
  //#endregion
35416
- //#region ../../node_modules/.pnpm/effect@4.0.4/node_modules/effect/dist/internal/redacted.js
36157
+ //#region ../../node_modules/.pnpm/effect@4.0.5/node_modules/effect/dist/internal/redacted.js
35417
36158
  /** @internal */
35418
36159
  const redactedRegistry = /*#__PURE__*/ new WeakMap();
35419
36160
  /** @internal */
@@ -35422,7 +36163,7 @@ const value$1 = (self) => {
35422
36163
  else throw new Error("Unable to get redacted value" + (self.label ? ` with label: "${self.label}"` : ""));
35423
36164
  };
35424
36165
  //#endregion
35425
- //#region ../../node_modules/.pnpm/effect@4.0.4/node_modules/effect/dist/Redacted.js
36166
+ //#region ../../node_modules/.pnpm/effect@4.0.5/node_modules/effect/dist/Redacted.js
35426
36167
  /**
35427
36168
  * Wraps sensitive values so normal output does not reveal them.
35428
36169
  *
@@ -35568,9 +36309,9 @@ const value = value$1;
35568
36309
  * @category instances
35569
36310
  * @since 4.0.0
35570
36311
  */
35571
- const makeEquivalence = (isEquivalent) => make$39((x, y) => isEquivalent(value(x), value(y)));
36312
+ const makeEquivalence = (isEquivalent) => make$41((x, y) => isEquivalent(value(x), value(y)));
35572
36313
  //#endregion
35573
- //#region ../../node_modules/.pnpm/effect@4.0.4/node_modules/effect/dist/http/Headers.js
36314
+ //#region ../../node_modules/.pnpm/effect@4.0.5/node_modules/effect/dist/http/Headers.js
35574
36315
  /**
35575
36316
  * Models HTTP headers for the unstable HTTP client and server modules.
35576
36317
  *
@@ -35593,10 +36334,10 @@ const TypeId$10 = /*#__PURE__*/ Symbol.for("~effect/http/Headers");
35593
36334
  const Proto$4 = /*#__PURE__*/ Object.defineProperties(/*#__PURE__*/ Object.create(null), {
35594
36335
  [TypeId$10]: { value: TypeId$10 },
35595
36336
  [symbolRedactable]: { value(context) {
35596
- return redact(this, get$6(context, CurrentRedactedNames));
36337
+ return redact$1(this, get$6(context, CurrentRedactedNames$1));
35597
36338
  } },
35598
36339
  toJSON: { value() {
35599
- return redact$1(this);
36340
+ return redact$2(this);
35600
36341
  } },
35601
36342
  [symbol$1]: { value(that) {
35602
36343
  return Equivalence$1(this, that);
@@ -35734,7 +36475,7 @@ const remove$1 = /*#__PURE__*/ dual(2, (self, key) => {
35734
36475
  * @category combinators
35735
36476
  * @since 4.0.0
35736
36477
  */
35737
- const redact = /*#__PURE__*/ dual(2, (self, key) => {
36478
+ const redact$1 = /*#__PURE__*/ dual(2, (self, key) => {
35738
36479
  const out = { ...self };
35739
36480
  const modify = (key) => {
35740
36481
  if (typeof key === "string") {
@@ -35759,11 +36500,12 @@ const redact = /*#__PURE__*/ dual(2, (self, key) => {
35759
36500
  * @category combinators
35760
36501
  * @since 4.0.0
35761
36502
  */
35762
- const isRedactedName = (name, patterns) => {
36503
+ const isRedactedName$1 = (name, patterns) => {
36504
+ const lowerName = name.toLowerCase();
35763
36505
  for (let i = 0; i < patterns.length; i++) {
35764
36506
  const pattern = patterns[i];
35765
36507
  if (typeof pattern === "string") {
35766
- if (pattern.toLowerCase() === name.toLowerCase()) return true;
36508
+ if (pattern.toLowerCase() === lowerName) return true;
35767
36509
  } else if (name.search(pattern) !== -1) return true;
35768
36510
  }
35769
36511
  return false;
@@ -35773,26 +36515,22 @@ const isRedactedName = (name, patterns) => {
35773
36515
  *
35774
36516
  * **Details**
35775
36517
  *
35776
- * Defaults include `authorization`, `cookie`, `set-cookie`, `x-api-key` and
35777
- * `AWSAccessKeyId`, `Signature`, `sig` and `X-Goog-Signature`. Names match
35778
- * case-insensitively, and providing a new list replaces the defaults.
36518
+ * Defaults include `authorization`, `cookie`, `set-cookie` and `x-api-key`.
36519
+ * A custom list replaces the defaults. Matching uses `isRedactedName`.
36520
+ * Use `UrlParams.CurrentRedactedNames` for query parameters.
35779
36521
  *
35780
36522
  * @stability unstable
35781
36523
  * @category services
35782
36524
  * @since 4.0.0
35783
36525
  */
35784
- const CurrentRedactedNames = /*#__PURE__*/ Reference("effect/Headers/CurrentRedactedNames", { defaultValue: () => [
36526
+ const CurrentRedactedNames$1 = /*#__PURE__*/ Reference("effect/Headers/CurrentRedactedNames", { defaultValue: () => [
35785
36527
  "authorization",
35786
36528
  "cookie",
35787
36529
  "set-cookie",
35788
- "x-api-key",
35789
- "AWSAccessKeyId",
35790
- "Signature",
35791
- "sig",
35792
- "X-Goog-Signature"
36530
+ "x-api-key"
35793
36531
  ] });
35794
36532
  //#endregion
35795
- //#region ../../node_modules/.pnpm/effect@4.0.4/node_modules/effect/dist/internal/hashMap.js
36533
+ //#region ../../node_modules/.pnpm/effect@4.0.5/node_modules/effect/dist/internal/hashMap.js
35796
36534
  /**
35797
36535
  * @since 2.0.0
35798
36536
  */
@@ -36355,7 +37093,7 @@ const keys = (self) => new HashMapIterator(self._root, identity);
36355
37093
  /** @internal */
36356
37094
  const size$1 = (self) => self.size;
36357
37095
  //#endregion
36358
- //#region ../../node_modules/.pnpm/effect@4.0.4/node_modules/effect/dist/HashMap.js
37096
+ //#region ../../node_modules/.pnpm/effect@4.0.5/node_modules/effect/dist/HashMap.js
36359
37097
  /**
36360
37098
  * Stores key/value entries in an immutable hash map.
36361
37099
  *
@@ -36430,7 +37168,7 @@ const fromIterable$2 = fromIterable$3;
36430
37168
  */
36431
37169
  const get = get$1;
36432
37170
  //#endregion
36433
- //#region ../../node_modules/.pnpm/effect@4.0.4/node_modules/effect/dist/internal/hashSet.js
37171
+ //#region ../../node_modules/.pnpm/effect@4.0.5/node_modules/effect/dist/internal/hashSet.js
36434
37172
  /**
36435
37173
  * @since 2.0.0
36436
37174
  */
@@ -36489,7 +37227,7 @@ const every = (self, predicate) => {
36489
37227
  return true;
36490
37228
  };
36491
37229
  //#endregion
36492
- //#region ../../node_modules/.pnpm/effect@4.0.4/node_modules/effect/dist/HashSet.js
37230
+ //#region ../../node_modules/.pnpm/effect@4.0.5/node_modules/effect/dist/HashSet.js
36493
37231
  /**
36494
37232
  * Stores unique values in an immutable hash set.
36495
37233
  *
@@ -36580,7 +37318,11 @@ const isHashSet = isHashSet$1;
36580
37318
  */
36581
37319
  const has = /*#__PURE__*/ dual(2, has$1);
36582
37320
  //#endregion
36583
- //#region ../../node_modules/.pnpm/effect@4.0.4/node_modules/effect/dist/http/UrlParams.js
37321
+ //#region ../../node_modules/.pnpm/effect@4.0.5/node_modules/effect/dist/http/internal/urlParams.js
37322
+ /** @internal */
37323
+ const unwrap$1 = (value$7) => typeof value$7 === "string" ? value$7 : value(value$7);
37324
+ //#endregion
37325
+ //#region ../../node_modules/.pnpm/effect@4.0.5/node_modules/effect/dist/http/UrlParams.js
36584
37326
  /**
36585
37327
  * Models URL query parameters as ordered string pairs.
36586
37328
  *
@@ -36607,12 +37349,15 @@ const Proto$3 = {
36607
37349
  [Symbol.iterator]() {
36608
37350
  return this.params[Symbol.iterator]();
36609
37351
  },
36610
- toJSON() {
37352
+ [symbolRedactable](context) {
36611
37353
  return {
36612
37354
  _id: "UrlParams",
36613
- params: Object.fromEntries(this.params)
37355
+ params: Object.fromEntries(redact(this, get$6(context, CurrentRedactedNames)))
36614
37356
  };
36615
37357
  },
37358
+ toJSON() {
37359
+ return redact$2(this);
37360
+ },
36616
37361
  [symbol$1](that) {
36617
37362
  return Equivalence(this, that);
36618
37363
  },
@@ -36621,7 +37366,7 @@ const Proto$3 = {
36621
37366
  }
36622
37367
  };
36623
37368
  /**
36624
- * Creates `UrlParams` from ordered string key-value pairs.
37369
+ * Creates `UrlParams` from ordered key-value pairs.
36625
37370
  *
36626
37371
  * **Details**
36627
37372
  *
@@ -36643,6 +37388,7 @@ const make$14 = (params) => {
36643
37388
  *
36644
37389
  * Primitive values are converted to strings, arrays produce repeated parameters,
36645
37390
  * nested records use bracket notation, and `undefined` values are omitted.
37391
+ * `Redacted` values are kept as-is.
36646
37392
  *
36647
37393
  * @stability unstable
36648
37394
  * @category constructors
@@ -36662,13 +37408,14 @@ const fromInputNested = (input) => {
36662
37408
  const entries = typeof input[Symbol.iterator] === "function" ? fromIterable$6(input) : Object.entries(input);
36663
37409
  const out = [];
36664
37410
  for (const [key, value] of entries) if (Array.isArray(value)) {
36665
- for (let i = 0; i < value.length; i++) if (value[i] !== void 0) out.push([key, String(value[i])]);
36666
- } else if (value !== null && typeof value === "object") {
37411
+ for (let i = 0; i < value.length; i++) if (value[i] !== void 0) out.push([key, coerce(value[i])]);
37412
+ } else if (value !== null && typeof value === "object" && !isRedacted(value)) {
36667
37413
  const nested = fromInputNested(value);
36668
37414
  for (const [k, v] of nested) out.push([[key, ...typeof k === "string" ? [k] : k], v]);
36669
- } else if (value !== void 0) out.push([key, String(value)]);
37415
+ } else if (value !== void 0) out.push([key, coerce(value)]);
36670
37416
  return out;
36671
37417
  };
37418
+ const coerce = (value) => isRedacted(value) ? value : String(value);
36672
37419
  /**
36673
37420
  * Provides an order-sensitive `Equivalence` instance for `UrlParams`.
36674
37421
  *
@@ -36681,8 +37428,8 @@ const fromInputNested = (input) => {
36681
37428
  * @category instances
36682
37429
  * @since 4.0.0
36683
37430
  */
36684
- const Equivalence = /*#__PURE__*/ make$39((a, b) => arrayEquivalence(a.params, b.params));
36685
- const arrayEquivalence = /*#__PURE__*/ makeEquivalence$2(/*#__PURE__*/ makeEquivalence$4([/*#__PURE__*/ strictEqual(), /*#__PURE__*/ strictEqual()]));
37431
+ const Equivalence = /*#__PURE__*/ make$41((a, b) => arrayEquivalence(a.params, b.params));
37432
+ const arrayEquivalence = /*#__PURE__*/ makeEquivalence$2(/*#__PURE__*/ makeEquivalence$4([/*#__PURE__*/ strictEqual(), /*#__PURE__*/ asEquivalence()]));
36686
37433
  /**
36687
37434
  * An empty `UrlParams` value.
36688
37435
  *
@@ -36713,8 +37460,122 @@ const setAll = /*#__PURE__*/ dual(2, (self, input) => {
36713
37460
  }
36714
37461
  return make$14(params);
36715
37462
  });
37463
+ /**
37464
+ * Returns the parameter pairs with selected values wrapped in `Redacted`.
37465
+ *
37466
+ * **Details**
37467
+ *
37468
+ * Keeps `Redacted` values and wraps values whose names match `isRedactedName`,
37469
+ * preserving order and repeated names.
37470
+ *
37471
+ * @stability unstable
37472
+ * @category combinators
37473
+ * @since 4.0.0
37474
+ */
37475
+ const redact = /*#__PURE__*/ dual(2, (self, key) => {
37476
+ const patterns = Array.isArray(key) ? key : [key];
37477
+ return self.params.map(([name, value]) => [name, typeof value === "string" && isRedactedName(name, patterns) ? make$16(value) : value]);
37478
+ });
37479
+ /**
37480
+ * Checks whether a parameter name matches one of the redaction patterns.
37481
+ *
37482
+ * **Details**
37483
+ *
37484
+ * String patterns match case-insensitively; regular expressions test the name.
37485
+ *
37486
+ * @stability unstable
37487
+ * @category combinators
37488
+ * @since 4.0.0
37489
+ */
37490
+ const isRedactedName = isRedactedName$1;
37491
+ /**
37492
+ * Redacts URL userinfo and the values of matching query parameters.
37493
+ *
37494
+ * **Details**
37495
+ *
37496
+ * Replaces userinfo with `REDACTED:REDACTED` and query values with `REDACTED`
37497
+ * when their decoded names match `isRedactedName`. Preserves all other text.
37498
+ * When names are omitted, uses the current fiber's `CurrentRedactedNames`,
37499
+ * falling back to the defaults outside a fiber.
37500
+ *
37501
+ * **Example** (Redacting a signed URL)
37502
+ *
37503
+ * ```ts import.meta.vitest
37504
+ * import { UrlParams } from "effect/http"
37505
+ *
37506
+ * const url = UrlParams.redactUrl("https://bucket.test/file?Signature=abc&size=1")
37507
+ * url // => "https://bucket.test/file?Signature=REDACTED&size=1"
37508
+ * ```
37509
+ *
37510
+ * @stability unstable
37511
+ * @category combinators
37512
+ * @since 4.0.0
37513
+ */
37514
+ const redactUrl = (url, redactedNames = currentRedactedNames()) => {
37515
+ if (url.includes("@")) url = redactUserinfo(url);
37516
+ const queryStart = url.indexOf("?");
37517
+ if (queryStart === -1 || redactedNames.length === 0) return url;
37518
+ const hashStart = url.indexOf("#");
37519
+ if (hashStart !== -1 && hashStart < queryStart) return url;
37520
+ const queryEnd = hashStart === -1 ? url.length : hashStart;
37521
+ return url.slice(0, queryStart + 1) + redactQuery(url.slice(queryStart + 1, queryEnd), redactedNames) + url.slice(queryEnd);
37522
+ };
37523
+ const authorityStart = /^(?:(https?|ftp|wss?):[/\\]*|[a-z][a-z\d+.-]*:\/\/|[/\\]{2,})/i;
37524
+ const specialAuthorityEnd = /[/\\?#]/;
37525
+ const authorityEnd = /[/?#]/;
37526
+ const redactUserinfo = (url) => {
37527
+ let normalized = "";
37528
+ const offsets = [];
37529
+ for (let i = 0; i < url.length; i++) {
37530
+ const code = url.charCodeAt(i);
37531
+ if (code === 9 || code === 10 || code === 13 || normalized === "" && code <= 32) continue;
37532
+ normalized += url[i];
37533
+ offsets.push(i);
37534
+ }
37535
+ const authority = authorityStart.exec(normalized);
37536
+ if (authority === null) return url;
37537
+ const start = authority[0].length;
37538
+ const special = authority[1] !== void 0 || !authority[0].includes(":");
37539
+ const rest = normalized.slice(start);
37540
+ const end = rest.search(special ? specialAuthorityEnd : authorityEnd);
37541
+ const userinfoEnd = (end === -1 ? rest : rest.slice(0, end)).lastIndexOf("@");
37542
+ return userinfoEnd === -1 ? url : url.slice(0, offsets[start]) + "REDACTED:REDACTED" + url.slice(offsets[start + userinfoEnd]);
37543
+ };
37544
+ const redactQuery = (query, redactedNames) => query.split("&").map((part) => {
37545
+ const index = part.indexOf("=");
37546
+ return index !== -1 && isRedactedName(decodeQueryKey(part.slice(0, index)), redactedNames) ? part.slice(0, index + 1) + "REDACTED" : part;
37547
+ }).join("&");
37548
+ const decodeQueryKey = (key) => {
37549
+ if (!key.includes("%") && !key.includes("+")) return key;
37550
+ try {
37551
+ return decodeURIComponent(key.replace(/\+/g, " "));
37552
+ } catch {
37553
+ return key;
37554
+ }
37555
+ };
37556
+ const currentRedactedNames = () => get$6(globalThis["~effect/Fiber/currentFiber"]?.context ?? empty$10(), CurrentRedactedNames);
37557
+ /**
37558
+ * Query parameter names or patterns to redact in inspection, spans and errors.
37559
+ *
37560
+ * **Details**
37561
+ *
37562
+ * Defaults include `AWSAccessKeyId`, `Signature`, `sig` and `X-Goog-Signature`.
37563
+ * A custom list replaces the defaults. Matching uses `isRedactedName`.
37564
+ * Redaction leaves request URLs and parameter values unchanged. `Redacted`
37565
+ * values are redacted regardless of this list.
37566
+ *
37567
+ * @stability unstable
37568
+ * @category services
37569
+ * @since 4.0.0
37570
+ */
37571
+ const CurrentRedactedNames = /*#__PURE__*/ Reference("effect/http/UrlParams/CurrentRedactedNames", { defaultValue: () => [
37572
+ "AWSAccessKeyId",
37573
+ "Signature",
37574
+ "sig",
37575
+ "X-Goog-Signature"
37576
+ ] });
36716
37577
  //#endregion
36717
- //#region ../../node_modules/.pnpm/effect@4.0.4/node_modules/effect/dist/internal/schema/interpreter.js
37578
+ //#region ../../node_modules/.pnpm/effect@4.0.5/node_modules/effect/dist/internal/schema/interpreter.js
36718
37579
  const flatMapTransformation = (result, current, f) => result === sameExit ? f(current) : flatMapEager(result, f);
36719
37580
  function compileTransformation(transformation) {
36720
37581
  if (transformation._tag === "Middleware") return (result, current, options) => {
@@ -36849,7 +37710,7 @@ function compile(ast, compile, compileField, base, specialize) {
36849
37710
  };
36850
37711
  }
36851
37712
  //#endregion
36852
- //#region ../../node_modules/.pnpm/effect@4.0.4/node_modules/effect/dist/internal/schema/compilerRegistry.js
37713
+ //#region ../../node_modules/.pnpm/effect@4.0.5/node_modules/effect/dist/internal/schema/compilerRegistry.js
36853
37714
  /** @internal */
36854
37715
  const invalid$1 = /*#__PURE__*/ Symbol();
36855
37716
  const cache = /*#__PURE__*/ new WeakMap();
@@ -36880,7 +37741,7 @@ function resolve(ast) {
36880
37741
  return entry;
36881
37742
  }
36882
37743
  //#endregion
36883
- //#region ../../node_modules/.pnpm/effect@4.0.4/node_modules/effect/dist/SchemaParser.js
37744
+ //#region ../../node_modules/.pnpm/effect@4.0.5/node_modules/effect/dist/SchemaParser.js
36884
37745
  /**
36885
37746
  * Runs schemas against real values.
36886
37747
  *
@@ -37155,7 +38016,7 @@ function makeConstructorSync(ast) {
37155
38016
  const normalCompiler = (ast) => resolve(ast).parser;
37156
38017
  const constructorCompiler = (ast) => resolve(ast).makeEffect;
37157
38018
  //#endregion
37158
- //#region ../../node_modules/.pnpm/effect@4.0.4/node_modules/effect/dist/internal/schema/make.js
38019
+ //#region ../../node_modules/.pnpm/effect@4.0.5/node_modules/effect/dist/internal/schema/make.js
37159
38020
  /** @internal */
37160
38021
  const TypeId$8 = "~effect/Schema/Schema";
37161
38022
  const RebuildOptions = /*#__PURE__*/ Symbol();
@@ -37212,7 +38073,7 @@ function make$12(ast, options) {
37212
38073
  return self;
37213
38074
  }
37214
38075
  //#endregion
37215
- //#region ../../node_modules/.pnpm/effect@4.0.4/node_modules/effect/dist/JsonPointer.js
38076
+ //#region ../../node_modules/.pnpm/effect@4.0.5/node_modules/effect/dist/JsonPointer.js
37216
38077
  /**
37217
38078
  * Helpers for escaping JSON Pointer path segments and converting JSON Pointer
37218
38079
  * URI fragments. JSON Pointer uses `/` to separate path tokens inside a JSON
@@ -37351,7 +38212,7 @@ function parseUriFragment(fragment) {
37351
38212
  return pointer === void 0 ? void 0 : pointer.length === 0 ? [] : pointer.slice(1).split("/").map(unescapeToken);
37352
38213
  }
37353
38214
  //#endregion
37354
- //#region ../../node_modules/.pnpm/effect@4.0.4/node_modules/effect/dist/JsonSchema.js
38215
+ //#region ../../node_modules/.pnpm/effect@4.0.5/node_modules/effect/dist/JsonSchema.js
37355
38216
  /**
37356
38217
  * Helpers for normalizing and converting JSON Schema and OpenAPI schema
37357
38218
  * documents. Supported inputs include JSON Schema Draft-07, Draft 2020-12,
@@ -37445,7 +38306,7 @@ const PRE_2020_TO_2020_COLLISIONS = [
37445
38306
  [...PRE_2020_TO_2020_COLLISIONS];
37446
38307
  [...PRE_2020_TO_2020_COLLISIONS];
37447
38308
  //#endregion
37448
- //#region ../../node_modules/.pnpm/effect@4.0.4/node_modules/effect/dist/internal/schema/toCodec.js
38309
+ //#region ../../node_modules/.pnpm/effect@4.0.5/node_modules/effect/dist/internal/schema/toCodec.js
37449
38310
  /** @internal */
37450
38311
  function toCodecJson$1(schema) {
37451
38312
  return make$12(toCodecJsonAST(schema.ast), { schema });
@@ -37595,14 +38456,14 @@ globalThis.RegExp;
37595
38456
  */
37596
38457
  const escape = (string) => string.replace(/[/\\^$*+?.()|[\]{}]/g, "\\$&");
37597
38458
  //#endregion
37598
- //#region ../../node_modules/.pnpm/effect@4.0.4/node_modules/effect/dist/internal/errors.js
38459
+ //#region ../../node_modules/.pnpm/effect@4.0.5/node_modules/effect/dist/internal/errors.js
37599
38460
  /** @internal */
37600
38461
  function errorWithPath(message, path) {
37601
38462
  if (path.length > 0) message += `\n at ${formatPath(path)}`;
37602
38463
  return new Error(message);
37603
38464
  }
37604
38465
  //#endregion
37605
- //#region ../../node_modules/.pnpm/effect@4.0.4/node_modules/effect/dist/internal/schema/toJsonSchemaDocument.js
38466
+ //#region ../../node_modules/.pnpm/effect@4.0.5/node_modules/effect/dist/internal/schema/toJsonSchemaDocument.js
37606
38467
  function formatDefinitionReference(key) {
37607
38468
  return `#/$defs/${formatUriFragmentToken(key)}`;
37608
38469
  }
@@ -38172,7 +39033,7 @@ function toJsonSchemaDocument$1(document, options) {
38172
39033
  };
38173
39034
  }
38174
39035
  //#endregion
38175
- //#region ../../node_modules/.pnpm/effect@4.0.4/node_modules/effect/dist/internal/schema/toRepresentation.js
39036
+ //#region ../../node_modules/.pnpm/effect@4.0.5/node_modules/effect/dist/internal/schema/toRepresentation.js
38176
39037
  const defaultReferencePolicy = ({ identifier }) => identifier;
38177
39038
  function annotationsField(annotations) {
38178
39039
  return annotations === void 0 ? void 0 : { annotations };
@@ -38438,7 +39299,7 @@ function toRepresentations(asts, options) {
38438
39299
  }
38439
39300
  }
38440
39301
  //#endregion
38441
- //#region ../../node_modules/.pnpm/effect@4.0.4/node_modules/effect/dist/Struct.js
39302
+ //#region ../../node_modules/.pnpm/effect@4.0.5/node_modules/effect/dist/Struct.js
38442
39303
  /**
38443
39304
  * Creates a new struct with the specified keys removed.
38444
39305
  *
@@ -38530,13 +39391,13 @@ function buildStruct(source, f) {
38530
39391
  return out;
38531
39392
  }
38532
39393
  //#endregion
38533
- //#region ../../node_modules/.pnpm/effect@4.0.4/node_modules/effect/dist/internal/schemaError.js
39394
+ //#region ../../node_modules/.pnpm/effect@4.0.5/node_modules/effect/dist/internal/schemaError.js
38534
39395
  const SchemaErrorTypeId = "~effect/Schema/SchemaError";
38535
39396
  function isSchemaError$1(u) {
38536
39397
  return hasProperty(u, "~effect/Schema/SchemaError") && u["~effect/Schema/SchemaError"] === "~effect/Schema/SchemaError";
38537
39398
  }
38538
39399
  //#endregion
38539
- //#region ../../node_modules/.pnpm/effect@4.0.4/node_modules/effect/dist/Schema.js
39400
+ //#region ../../node_modules/.pnpm/effect@4.0.5/node_modules/effect/dist/Schema.js
38540
39401
  const TypeId$7 = TypeId$8;
38541
39402
  /**
38542
39403
  * Creates a schema for a **parametric** type (a generic container such as
@@ -39666,6 +40527,7 @@ function withConstructorDefault(defaultValue) {
39666
40527
  return (schema) => make$11(withConstructorDefault$1(schema.ast, defaultValue), { schema });
39667
40528
  }
39668
40529
  function toIssueEffect(self) {
40530
+ if (effectIsExit(self) && self._tag === "Success") return self;
39669
40531
  return catchCause$1(self, (cause) => failCauseSync(() => map$4(cause, (error) => error.issue)));
39670
40532
  }
39671
40533
  /**
@@ -40920,7 +41782,7 @@ function Option(value) {
40920
41782
  * @category schemas
40921
41783
  * @since 3.10.0
40922
41784
  */
40923
- function Redacted$1(value$4, options) {
41785
+ function Redacted$1(value$5, options) {
40924
41786
  const label = typeof options?.label === "string" ? options.label : void 0;
40925
41787
  const disallowJsonEncode = options?.disallowJsonEncode === true;
40926
41788
  const normalizedOptions = label !== void 0 ? disallowJsonEncode ? {
@@ -40928,10 +41790,10 @@ function Redacted$1(value$4, options) {
40928
41790
  disallowJsonEncode: true
40929
41791
  } : { label } : disallowJsonEncode ? { disallowJsonEncode: true } : void 0;
40930
41792
  const decodeLabel = label !== void 0 ? decodeUnknownEffect$1(Literal(label)) : void 0;
40931
- const schema = declareConstructor()([value$4], ([value$5]) => (input, ast, poptions) => {
41793
+ const schema = declareConstructor()([value$5], ([value$4]) => (input, ast, poptions) => {
40932
41794
  if (isRedacted(input)) {
40933
41795
  const label = decodeLabel !== void 0 ? mapErrorEager(decodeLabel(input.label, poptions), (issue) => new Pointer(["label"], issue)) : void_$1;
40934
- return flatMapEager(label, () => mapBothEager(decodeUnknownEffect$1(value$5)(value(input), poptions), {
41796
+ return flatMapEager(label, () => mapBothEager(decodeUnknownEffect$1(value$4)(value(input), poptions), {
40935
41797
  onSuccess: (value) => make$16(value, { label: input.label }),
40936
41798
  onFailure: () => {
40937
41799
  return new Composite(ast, [new Pointer(["value"], new InvalidValue(void 0, input, poptions))], input, poptions);
@@ -40950,13 +41812,13 @@ function Redacted$1(value$4, options) {
40950
41812
  importDeclarations: [`import * as Redacted from "effect/Redacted"`]
40951
41813
  }),
40952
41814
  expected: "Redacted",
40953
- toCodecJson: ([value$3]) => link$1()(value$3, {
41815
+ toCodecJson: ([value$6]) => link$1()(value$6, {
40954
41816
  decode: transform$1((e) => make$16(e, { label })),
40955
41817
  encode: disallowJsonEncode ? forbidden((oe) => "Cannot serialize Redacted" + (isSome(oe) && typeof oe.value.label === "string" ? ` with label: "${oe.value.label}"` : "")) : transform$1(value)
40956
41818
  }),
40957
41819
  toEquivalence: ([value]) => makeEquivalence(value)
40958
41820
  });
40959
- return make$11(schema.ast, { value: value$4 });
41821
+ return make$11(schema.ast, { value: value$5 });
40960
41822
  }
40961
41823
  const immerable = /*#__PURE__*/ globalThis.Symbol.for("immer-draftable");
40962
41824
  const payloadToken = {};
@@ -41363,7 +42225,7 @@ const MutableJson = /*#__PURE__*/ make$11(/*#__PURE__*/ annotate(MutableJson$1,
41363
42225
  Type: "Schema.MutableJson"
41364
42226
  }) }));
41365
42227
  //#endregion
41366
- //#region ../../node_modules/.pnpm/effect@4.0.4/node_modules/effect/dist/http/HttpClientError.js
42228
+ //#region ../../node_modules/.pnpm/effect@4.0.5/node_modules/effect/dist/http/HttpClientError.js
41367
42229
  /**
41368
42230
  * Typed failure model for Effect HTTP client operations.
41369
42231
  *
@@ -41423,6 +42285,7 @@ var HttpClientError = class extends (/*#__PURE__*/ TaggedError$1("HttpClientErro
41423
42285
  };
41424
42286
  const formatReason = (tag) => tag.endsWith("Error") ? tag.slice(0, -5) : tag;
41425
42287
  const formatMessage = (reason, description, info) => description ? `${reason}: ${description} (${info})` : `${reason} error (${info})`;
42288
+ const formatMethodAndUrl = (request) => `${request.method} ${redactUrl(request.url)}`;
41426
42289
  /**
41427
42290
  * Error describing transport-level failures that occur while sending an HTTP request.
41428
42291
  *
@@ -41438,7 +42301,7 @@ var TransportError = class extends (/*#__PURE__*/ TaggedError$1("TransportError"
41438
42301
  * @since 4.0.0
41439
42302
  */
41440
42303
  get methodAndUrl() {
41441
- return `${this.request.method} ${this.request.url}`;
42304
+ return formatMethodAndUrl(this.request);
41442
42305
  }
41443
42306
  /**
41444
42307
  * Builds the transport error message from the optional description and request details.
@@ -41465,7 +42328,7 @@ var EncodeError = class extends (/*#__PURE__*/ TaggedError$1("EncodeError")) {
41465
42328
  * @since 4.0.0
41466
42329
  */
41467
42330
  get methodAndUrl() {
41468
- return `${this.request.method} ${this.request.url}`;
42331
+ return formatMethodAndUrl(this.request);
41469
42332
  }
41470
42333
  /**
41471
42334
  * Builds the request encoding error message from the optional description and request details.
@@ -41492,7 +42355,7 @@ var InvalidUrlError = class extends (/*#__PURE__*/ TaggedError$1("InvalidUrlErro
41492
42355
  * @since 4.0.0
41493
42356
  */
41494
42357
  get methodAndUrl() {
41495
- return `${this.request.method} ${this.request.url}`;
42358
+ return formatMethodAndUrl(this.request);
41496
42359
  }
41497
42360
  /**
41498
42361
  * Builds the invalid URL error message from the optional description and request details.
@@ -41519,7 +42382,7 @@ var StatusCodeError = class extends (/*#__PURE__*/ TaggedError$1("StatusCodeErro
41519
42382
  * @since 4.0.0
41520
42383
  */
41521
42384
  get methodAndUrl() {
41522
- return `${this.request.method} ${this.request.url}`;
42385
+ return formatMethodAndUrl(this.request);
41523
42386
  }
41524
42387
  /**
41525
42388
  * Builds the status code error message from the response status, optional description, and request details.
@@ -41547,7 +42410,7 @@ var DecodeError = class extends (/*#__PURE__*/ TaggedError$1("DecodeError")) {
41547
42410
  * @since 4.0.0
41548
42411
  */
41549
42412
  get methodAndUrl() {
41550
- return `${this.request.method} ${this.request.url}`;
42413
+ return formatMethodAndUrl(this.request);
41551
42414
  }
41552
42415
  /**
41553
42416
  * Builds the response decoding error message from the response status, optional description, and request details.
@@ -41575,7 +42438,7 @@ var EmptyBodyError = class extends (/*#__PURE__*/ TaggedError$1("EmptyBodyError"
41575
42438
  * @since 4.0.0
41576
42439
  */
41577
42440
  get methodAndUrl() {
41578
- return `${this.request.method} ${this.request.url}`;
42441
+ return formatMethodAndUrl(this.request);
41579
42442
  }
41580
42443
  /**
41581
42444
  * Builds the empty body error message from the response status, optional description, and request details.
@@ -41623,7 +42486,7 @@ var HttpClientErrorSchema = class HttpClientErrorSchema extends (/*#__PURE__*/ E
41623
42486
  }
41624
42487
  };
41625
42488
  //#endregion
41626
- //#region ../../node_modules/.pnpm/effect@4.0.4/node_modules/effect/dist/socket/Socket.js
42489
+ //#region ../../node_modules/.pnpm/effect@4.0.5/node_modules/effect/dist/socket/Socket.js
41627
42490
  /**
41628
42491
  * Runtime type identifier attached to `Socket` services.
41629
42492
  *
@@ -42119,7 +42982,7 @@ const defaultHighWaterMark = 65536;
42119
42982
  */
42120
42983
  const layerWebSocket = /*#__PURE__*/ flow(makeWebSocket, /*#__PURE__*/ effect(Socket));
42121
42984
  //#endregion
42122
- //#region ../../node_modules/.pnpm/effect@4.0.4/node_modules/effect/dist/workers/Transferable.js
42985
+ //#region ../../node_modules/.pnpm/effect@4.0.5/node_modules/effect/dist/workers/Transferable.js
42123
42986
  /**
42124
42987
  * Marks encoded worker message fields that should move through `postMessage` as
42125
42988
  * transfer-list entries.
@@ -42171,7 +43034,7 @@ const makeCollectorUnsafe = () => {
42171
43034
  });
42172
43035
  };
42173
43036
  //#endregion
42174
- //#region ../../node_modules/.pnpm/effect@4.0.4/node_modules/effect/dist/rpc/internal/tracing.js
43037
+ //#region ../../node_modules/.pnpm/effect@4.0.5/node_modules/effect/dist/rpc/internal/tracing.js
42175
43038
  /**
42176
43039
  * Names the span after the RPC method, or `${spanPrefix}.${tag}` when a prefix
42177
43040
  * is configured.
@@ -42190,7 +43053,7 @@ const spanAttributes = (tag, attributes) => ({
42190
43053
  ...attributes
42191
43054
  });
42192
43055
  //#endregion
42193
- //#region ../../node_modules/.pnpm/effect@4.0.4/node_modules/effect/dist/PrimaryKey.js
43056
+ //#region ../../node_modules/.pnpm/effect@4.0.5/node_modules/effect/dist/PrimaryKey.js
42194
43057
  /**
42195
43058
  * Defines the unique identifier used to identify objects that implement the `PrimaryKey` interface.
42196
43059
  *
@@ -42209,7 +43072,7 @@ const spanAttributes = (tag, attributes) => ({
42209
43072
  */
42210
43073
  const symbol = "~effect/PrimaryKey";
42211
43074
  //#endregion
42212
- //#region ../../node_modules/.pnpm/effect@4.0.4/node_modules/effect/dist/rpc/RpcSchema.js
43075
+ //#region ../../node_modules/.pnpm/effect@4.0.5/node_modules/effect/dist/rpc/RpcSchema.js
42213
43076
  /**
42214
43077
  * RPC schema markers and interruption annotations.
42215
43078
  *
@@ -42274,7 +43137,7 @@ var ClientAbort = class extends (/*#__PURE__*/ Service()("effect/rpc/RpcSchema/C
42274
43137
  }));
42275
43138
  };
42276
43139
  //#endregion
42277
- //#region ../../node_modules/.pnpm/effect@4.0.4/node_modules/effect/dist/rpc/Rpc.js
43140
+ //#region ../../node_modules/.pnpm/effect@4.0.5/node_modules/effect/dist/rpc/Rpc.js
42278
43141
  const TypeId$4 = "~effect/rpc/Rpc";
42279
43142
  /**
42280
43143
  * Represents server-side metadata for the client associated with an RPC request.
@@ -42465,7 +43328,7 @@ const WrapperTypeId = "~effect/rpc/Rpc/Wrapper";
42465
43328
  */
42466
43329
  const isWrapper = (u) => WrapperTypeId in u;
42467
43330
  //#endregion
42468
- //#region ../../node_modules/.pnpm/effect@4.0.4/node_modules/effect/dist/rpc/RpcMessage.js
43331
+ //#region ../../node_modules/.pnpm/effect@4.0.5/node_modules/effect/dist/rpc/RpcMessage.js
42469
43332
  /**
42470
43333
  * Converts a bigint or string request id into the branded `RequestId` type.
42471
43334
  *
@@ -42564,7 +43427,7 @@ const EncodedSchema = /*#__PURE__*/ Union([
42564
43427
  */
42565
43428
  const constPong = { _tag: "Pong" };
42566
43429
  //#endregion
42567
- //#region ../../node_modules/.pnpm/effect@4.0.4/node_modules/effect/dist/encoding/SchemaBinary.js
43430
+ //#region ../../node_modules/.pnpm/effect@4.0.5/node_modules/effect/dist/encoding/SchemaBinary.js
42568
43431
  const codecCache = /*#__PURE__*/ new WeakMap();
42569
43432
  const fingerprintCodecCache = /*#__PURE__*/ new WeakMap();
42570
43433
  const directCodecCache = /*#__PURE__*/ new WeakMap();
@@ -46308,7 +47171,7 @@ function withCycleGuard(target) {
46308
47171
  }))(target);
46309
47172
  }
46310
47173
  //#endregion
46311
- //#region ../../node_modules/.pnpm/effect@4.0.4/node_modules/effect/dist/rpc/RpcSerialization.js
47174
+ //#region ../../node_modules/.pnpm/effect@4.0.5/node_modules/effect/dist/rpc/RpcSerialization.js
46312
47175
  /**
46313
47176
  * Serializes RPC protocol messages for transports.
46314
47177
  *
@@ -46413,7 +47276,7 @@ const layerJson = /*#__PURE__*/ succeed$5(RpcSerialization)(json);
46413
47276
  */
46414
47277
  const layerSchemaBinary = (options) => sync$1(RpcSerialization)(() => makeSchemaBinary(options));
46415
47278
  //#endregion
46416
- //#region ../../node_modules/.pnpm/effect@4.0.4/node_modules/effect/dist/rpc/Utils.js
47279
+ //#region ../../node_modules/.pnpm/effect@4.0.5/node_modules/effect/dist/rpc/Utils.js
46417
47280
  /**
46418
47281
  * Buffers writes until `run` replays them with their original contexts and
46419
47282
  * installs the writer. Restores the previous writer when `run` ends.
@@ -46492,7 +47355,7 @@ const withRunClient = (f) => suspend$2(() => {
46492
47355
  }));
46493
47356
  });
46494
47357
  //#endregion
46495
- //#region ../../node_modules/.pnpm/effect@4.0.4/node_modules/effect/dist/Stdio.js
47358
+ //#region ../../node_modules/.pnpm/effect@4.0.5/node_modules/effect/dist/Stdio.js
46496
47359
  /**
46497
47360
  * Service contract for command-line arguments and standard input, output, and
46498
47361
  * error output. It lets programs depend on standard I/O through the Effect
@@ -46565,7 +47428,7 @@ const make$8 = (options) => ({
46565
47428
  ...options
46566
47429
  });
46567
47430
  //#endregion
46568
- //#region ../../node_modules/.pnpm/effect@4.0.4/node_modules/effect/dist/rpc/RpcGroup.js
47431
+ //#region ../../node_modules/.pnpm/effect@4.0.5/node_modules/effect/dist/rpc/RpcGroup.js
46569
47432
  const RpcGroupProto = {
46570
47433
  add(...rpcs) {
46571
47434
  const requests = new Map(this.requests);
@@ -46667,7 +47530,7 @@ const RpcGroupProto = {
46667
47530
  });
46668
47531
  },
46669
47532
  annotateRpcs(service, value) {
46670
- return this.annotateRpcsMerge(make$37(service, value));
47533
+ return this.annotateRpcsMerge(make$39(service, value));
46671
47534
  },
46672
47535
  annotateMerge(context) {
46673
47536
  return makeProto({
@@ -46700,7 +47563,7 @@ const make$7 = (...rpcs) => makeProto({
46700
47563
  annotations: empty$10()
46701
47564
  });
46702
47565
  //#endregion
46703
- //#region ../../node_modules/.pnpm/effect@4.0.4/node_modules/effect/dist/ConfigProvider.js
47566
+ //#region ../../node_modules/.pnpm/effect@4.0.5/node_modules/effect/dist/ConfigProvider.js
46704
47567
  /**
46705
47568
  * Data sources used by `Config` to load raw configuration values. A
46706
47569
  * `ConfigProvider` reads paths from places such as environment variables,
@@ -47054,7 +47917,7 @@ function trieNodeAt(root, path) {
47054
47917
  return node;
47055
47918
  }
47056
47919
  //#endregion
47057
- //#region ../../node_modules/.pnpm/effect@4.0.4/node_modules/effect/dist/Config.js
47920
+ //#region ../../node_modules/.pnpm/effect@4.0.5/node_modules/effect/dist/Config.js
47058
47921
  /**
47059
47922
  * Descriptions of configuration values that can be read from a
47060
47923
  * `ConfigProvider`. A `Config<T>` explains which keys to read, how to decode
@@ -47691,7 +48554,7 @@ function URL$1(name) {
47691
48554
  return schema(URL$2, name);
47692
48555
  }
47693
48556
  //#endregion
47694
- //#region ../../node_modules/.pnpm/effect@4.0.4/node_modules/effect/dist/internal/ulid.js
48557
+ //#region ../../node_modules/.pnpm/effect@4.0.5/node_modules/effect/dist/internal/ulid.js
47695
48558
  const maxTimestamp = 2 ** 48 - 1;
47696
48559
  const base32Chars = "0123456789ABCDEFGHJKMNPQRSTVWXYZ";
47697
48560
  /** @internal */
@@ -47714,7 +48577,7 @@ const ulidString = (timestampMillis, bytes) => {
47714
48577
  return out;
47715
48578
  };
47716
48579
  //#endregion
47717
- //#region ../../node_modules/.pnpm/effect@4.0.4/node_modules/effect/dist/internal/uuid.js
48580
+ //#region ../../node_modules/.pnpm/effect@4.0.5/node_modules/effect/dist/internal/uuid.js
47718
48581
  const hex = (byte) => byte.toString(16).padStart(2, "0");
47719
48582
  /** @internal */
47720
48583
  const stringify = (bytes) => {
@@ -47748,7 +48611,7 @@ function v7Bytes(timestampMillis, bytes = randomBytes()) {
47748
48611
  return bytes;
47749
48612
  }
47750
48613
  //#endregion
47751
- //#region ../../node_modules/.pnpm/effect@4.0.4/node_modules/effect/dist/Crypto.js
48614
+ //#region ../../node_modules/.pnpm/effect@4.0.5/node_modules/effect/dist/Crypto.js
47752
48615
  /**
47753
48616
  * Defines a platform-independent service for cryptographic operations.
47754
48617
  *
@@ -47878,7 +48741,7 @@ const validateSize = (method, size) => Number.isSafeInteger(size) && size >= 0 ?
47878
48741
  description: "size must be a non-negative safe integer"
47879
48742
  }));
47880
48743
  //#endregion
47881
- //#region ../../node_modules/.pnpm/@effect+platform-node-shared@4.0.4_effect@4.0.4/node_modules/@effect/platform-node-shared/dist/NodeCrypto.js
48744
+ //#region ../../node_modules/.pnpm/@effect+platform-node-shared@4.0.5_effect@4.0.5/node_modules/@effect/platform-node-shared/dist/NodeCrypto.js
47882
48745
  /**
47883
48746
  * Node-compatible implementation of Effect's `Crypto` service.
47884
48747
  *
@@ -47909,7 +48772,7 @@ const digest = (algorithm, data) => try_({
47909
48772
  })
47910
48773
  });
47911
48774
  //#endregion
47912
- //#region ../../node_modules/.pnpm/@effect+platform-node@4.0.4_effect@4.0.4_redis@6.3.0_@opentelemetry+api@1.9.1_/node_modules/@effect/platform-node/dist/NodeCrypto.js
48775
+ //#region ../../node_modules/.pnpm/@effect+platform-node@4.0.5_effect@4.0.5_redis@6.3.0_@opentelemetry+api@1.9.1_/node_modules/@effect/platform-node/dist/NodeCrypto.js
47913
48776
  /**
47914
48777
  * The `NodeCrypto` module provides the Node.js `Crypto` service layer for
47915
48778
  * Effect programs. Provide {@link layer} at the edge of a Node application,
@@ -47936,7 +48799,7 @@ const layer$10 = /* @__PURE__ */ succeed$5(Crypto, /* @__PURE__ */ make$4({
47936
48799
  digest
47937
48800
  }));
47938
48801
  //#endregion
47939
- //#region ../../node_modules/.pnpm/@effect+platform-node-shared@4.0.4_effect@4.0.4/node_modules/@effect/platform-node-shared/dist/NodeFileSystem.js
48802
+ //#region ../../node_modules/.pnpm/@effect+platform-node-shared@4.0.5_effect@4.0.5/node_modules/@effect/platform-node-shared/dist/NodeFileSystem.js
47940
48803
  /**
47941
48804
  * Shared Node-compatible implementation of Effect's `FileSystem` service.
47942
48805
  *
@@ -47960,6 +48823,8 @@ const bigintToNumber = (value, field) => {
47960
48823
  return number;
47961
48824
  };
47962
48825
  const bigintToNumberOption = (value) => flatMap$7(fromNullishOr(value), toNumber);
48826
+ const toUint64 = (value) => BigInt.asUintN(64, value);
48827
+ const toUint64Option = (value) => map$9(fromNullishOr(value), toUint64);
47963
48828
  const positionToNumber = (position, method) => try_({
47964
48829
  try: () => bigintToNumber(position, "position"),
47965
48830
  catch: handleBadArgument(method)
@@ -48234,16 +49099,16 @@ const makeFileInfo = (stat) => try_({
48234
49099
  mtime: fromNullishOr(stat.mtime),
48235
49100
  atime: fromNullishOr(stat.atime),
48236
49101
  birthtime: fromNullishOr(stat.birthtime),
48237
- dev: bigintToNumber(stat.dev, "dev"),
48238
- rdev: bigintToNumberOption(stat.rdev),
48239
- ino: bigintToNumberOption(stat.ino),
49102
+ dev: toUint64(stat.dev),
49103
+ rdev: toUint64Option(stat.rdev),
49104
+ ino: toUint64Option(stat.ino),
48240
49105
  mode: bigintToNumber(stat.mode, "mode"),
48241
- nlink: bigintToNumberOption(stat.nlink),
49106
+ nlink: toUint64Option(stat.nlink),
48242
49107
  uid: bigintToNumberOption(stat.uid),
48243
49108
  gid: bigintToNumberOption(stat.gid),
48244
49109
  size: bytes(stat.size),
48245
49110
  blksize: stat.blksize !== void 0 ? some$1(bytes(stat.blksize)) : none(),
48246
- blocks: bigintToNumberOption(stat.blocks)
49111
+ blocks: fromNullishOr(stat.blocks)
48247
49112
  }),
48248
49113
  catch: handleBadArgument("stat")
48249
49114
  });
@@ -48301,8 +49166,8 @@ const watchNode = (path, info, options) => callback((queue) => acquireRelease(sy
48301
49166
  endUnsafe(queue);
48302
49167
  });
48303
49168
  return watcher;
48304
- }), (watcher) => sync(() => watcher.close())));
48305
- const watch = (backend, path, options) => stat(path).pipe(map$3((stat) => backend.pipe(flatMap$7((_) => _.register(path, stat, options)), getOrElse$1(() => watchNode(path, stat, options)))), unwrap$1);
49169
+ }), (watcher) => sync(() => watcher.close())).pipe(tap$1(() => sync(() => options?.onReady?.()))));
49170
+ const watch = (backend, path, options) => all$1([stat(path), serviceOption(WatchBackend)]).pipe(map$3(([stat, callerBackend]) => orElse(callerBackend, () => backend).pipe(flatMap$7((_) => _.register(path, stat, options)), getOrElse(() => watchNode(path, stat, options)))), unwrap$2);
48306
49171
  const writeFile = (path, data, options) => callback$1((resume, signal) => {
48307
49172
  try {
48308
49173
  NFS.writeFile(path, data, {
@@ -48317,7 +49182,7 @@ const writeFile = (path, data, options) => callback$1((resume, signal) => {
48317
49182
  resume(fail$3(handleBadArgument("writeFile")(err)));
48318
49183
  }
48319
49184
  });
48320
- const makeFileSystem = /*#__PURE__*/ map$3(/*#__PURE__*/ serviceOption(WatchBackend), (backend) => make$22({
49185
+ const makeFileSystem = /*#__PURE__*/ map$3(/*#__PURE__*/ serviceOption(WatchBackend), (backend) => make$23({
48321
49186
  access,
48322
49187
  chmod,
48323
49188
  chown,
@@ -48347,7 +49212,7 @@ const makeFileSystem = /*#__PURE__*/ map$3(/*#__PURE__*/ serviceOption(WatchBack
48347
49212
  writeFile
48348
49213
  }));
48349
49214
  //#endregion
48350
- //#region ../../node_modules/.pnpm/@effect+platform-node@4.0.4_effect@4.0.4_redis@6.3.0_@opentelemetry+api@1.9.1_/node_modules/@effect/platform-node/dist/NodeFileSystem.js
49215
+ //#region ../../node_modules/.pnpm/@effect+platform-node@4.0.5_effect@4.0.5_redis@6.3.0_@opentelemetry+api@1.9.1_/node_modules/@effect/platform-node/dist/NodeFileSystem.js
48351
49216
  /**
48352
49217
  * Node.js `FileSystem` layer for programs that perform real filesystem I/O.
48353
49218
  *
@@ -48368,7 +49233,7 @@ const makeFileSystem = /*#__PURE__*/ map$3(/*#__PURE__*/ serviceOption(WatchBack
48368
49233
  */
48369
49234
  const layer$8 = /* @__PURE__ */ effect(FileSystem)(makeFileSystem);
48370
49235
  //#endregion
48371
- //#region ../../node_modules/.pnpm/@effect+platform-node-shared@4.0.4_effect@4.0.4/node_modules/@effect/platform-node-shared/dist/NodePath.js
49236
+ //#region ../../node_modules/.pnpm/@effect+platform-node-shared@4.0.5_effect@4.0.5/node_modules/@effect/platform-node-shared/dist/NodePath.js
48372
49237
  /**
48373
49238
  * Node-backed provider for Effect's `Path` service.
48374
49239
  *
@@ -48407,7 +49272,7 @@ const fileUrlOps = (windows) => ({
48407
49272
  .../*#__PURE__*/ fileUrlOps(true)
48408
49273
  });
48409
49274
  //#endregion
48410
- //#region ../../node_modules/.pnpm/@effect+platform-node@4.0.4_effect@4.0.4_redis@6.3.0_@opentelemetry+api@1.9.1_/node_modules/@effect/platform-node/dist/NodePath.js
49275
+ //#region ../../node_modules/.pnpm/@effect+platform-node@4.0.5_effect@4.0.5_redis@6.3.0_@opentelemetry+api@1.9.1_/node_modules/@effect/platform-node/dist/NodePath.js
48411
49276
  /**
48412
49277
  * Node.js layers for Effect's `Path` service.
48413
49278
  *
@@ -48427,13 +49292,12 @@ const fileUrlOps = (windows) => ({
48427
49292
  * @category layers
48428
49293
  * @since 4.0.0
48429
49294
  */
48430
- const layer$6 = /* @__PURE__ */ succeed$5(Path$1)({
48431
- [TypeId$18]: TypeId$18,
49295
+ const layer$6 = /* @__PURE__ */ succeed$5(Path$1)(/*#__PURE__*/ make$22({
48432
49296
  ...Path,
48433
49297
  .../*#__PURE__*/ fileUrlOps(void 0)
48434
- });
49298
+ }));
48435
49299
  //#endregion
48436
- //#region ../../node_modules/.pnpm/@effect+platform-node@4.0.4_effect@4.0.4_redis@6.3.0_@opentelemetry+api@1.9.1_/node_modules/@effect/platform-node/dist/NodeStdio.js
49300
+ //#region ../../node_modules/.pnpm/@effect+platform-node@4.0.5_effect@4.0.5_redis@6.3.0_@opentelemetry+api@1.9.1_/node_modules/@effect/platform-node/dist/NodeStdio.js
48437
49301
  /**
48438
49302
  * Node.js `Stdio` layer for the current process.
48439
49303
  *
@@ -48490,7 +49354,7 @@ const layer$4 = /* @__PURE__ */ succeed$5(Stdio, /*#__PURE__*/ make$8({
48490
49354
  })
48491
49355
  }));
48492
49356
  //#endregion
48493
- //#region ../../node_modules/.pnpm/effect@4.0.4/node_modules/effect/dist/Terminal.js
49357
+ //#region ../../node_modules/.pnpm/effect@4.0.5/node_modules/effect/dist/Terminal.js
48494
49358
  const TypeId = "~effect/Terminal";
48495
49359
  const QuitErrorTypeId = "~effect/Terminal/QuitError";
48496
49360
  /**
@@ -48583,7 +49447,7 @@ const make$2 = (impl) => Terminal.of({
48583
49447
  const layer$3 = /*#__PURE__*/ effect(Terminal, /*#__PURE__*/ (/* @__PURE__ */ fnUntraced(function* (shouldQuit = defaultShouldQuit) {
48584
49448
  const stdin = process.stdin;
48585
49449
  const stdout = process.stdout;
48586
- const lines = yield* make$26();
49450
+ const lines = yield* make$27();
48587
49451
  let inputEnded = stdin.readableEnded;
48588
49452
  let readlineActive = false;
48589
49453
  const onStdinEnd = () => {
@@ -48592,7 +49456,7 @@ const layer$3 = /*#__PURE__*/ effect(Terminal, /*#__PURE__*/ (/* @__PURE__ */ fn
48592
49456
  };
48593
49457
  stdin.once("end", onStdinEnd);
48594
49458
  yield* addFinalizer(() => sync(() => stdin.off("end", onStdinEnd)));
48595
- const rlRef = yield* make$23({
49459
+ const rlRef = yield* make$24({
48596
49460
  acquire: acquireRelease(sync(() => {
48597
49461
  const rl = readline.createInterface({
48598
49462
  input: stdin,
@@ -48626,7 +49490,7 @@ const layer$3 = /*#__PURE__*/ effect(Terminal, /*#__PURE__*/ (/* @__PURE__ */ fn
48626
49490
  const columns = sync(() => stdout.columns ?? 0);
48627
49491
  const rows = sync(() => stdout.rows ?? 0);
48628
49492
  const readInput = gen(function* () {
48629
- const queue = yield* make$26();
49493
+ const queue = yield* make$27();
48630
49494
  const handleKeypress = (s, k) => {
48631
49495
  const userInput = {
48632
49496
  input: fromUndefinedOr(s),
@@ -48683,7 +49547,7 @@ function defaultShouldQuit(input) {
48683
49547
  return key.name === "escape" || key.ctrl && (key.name === "c" || key.name === "d");
48684
49548
  }
48685
49549
  //#endregion
48686
- //#region ../../node_modules/.pnpm/@effect+platform-node@4.0.4_effect@4.0.4_redis@6.3.0_@opentelemetry+api@1.9.1_/node_modules/@effect/platform-node/dist/NodeServices.js
49550
+ //#region ../../node_modules/.pnpm/@effect+platform-node@4.0.5_effect@4.0.5_redis@6.3.0_@opentelemetry+api@1.9.1_/node_modules/@effect/platform-node/dist/NodeServices.js
48687
49551
  /**
48688
49552
  * Provides the default Node implementations for child process spawning,
48689
49553
  * filesystem, path, stdio, and terminal services.
@@ -48694,7 +49558,7 @@ function defaultShouldQuit(input) {
48694
49558
  */
48695
49559
  const layer$1 = /*#__PURE__*/ provideMerge(layer$12, /*#__PURE__*/ mergeAll$2(layer$8, layer$10, layer$6, layer$4, layer$3));
48696
49560
  //#endregion
48697
- //#region ../../node_modules/.pnpm/effect@4.0.4/node_modules/effect/dist/Runtime.js
49561
+ //#region ../../node_modules/.pnpm/effect@4.0.5/node_modules/effect/dist/Runtime.js
48698
49562
  /**
48699
49563
  * Helpers for turning an `Effect` program into a host application's main entry
48700
49564
  * point. This module is the low-level layer used by platform adapters to run a
@@ -48985,7 +49849,7 @@ const getErrorReported = (u) => {
48985
49849
  return true;
48986
49850
  };
48987
49851
  //#endregion
48988
- //#region ../../node_modules/.pnpm/@effect+platform-node@4.0.4_effect@4.0.4_redis@6.3.0_@opentelemetry+api@1.9.1_/node_modules/@effect/platform-node/dist/NodeRuntime.js
49852
+ //#region ../../node_modules/.pnpm/@effect+platform-node@4.0.5_effect@4.0.5_redis@6.3.0_@opentelemetry+api@1.9.1_/node_modules/@effect/platform-node/dist/NodeRuntime.js
48989
49853
  /**
48990
49854
  * Node.js process runner for Effect programs.
48991
49855
  *
@@ -49039,7 +49903,7 @@ const runMain = /* @__PURE__ */ makeRunMain(({ fiber, teardown }) => {
49039
49903
  process.on("SIGTERM", onSigint);
49040
49904
  });
49041
49905
  //#endregion
49042
- //#region ../../node_modules/.pnpm/effect@4.0.4/node_modules/effect/dist/Logger.js
49906
+ //#region ../../node_modules/.pnpm/effect@4.0.5/node_modules/effect/dist/Logger.js
49043
49907
  /**
49044
49908
  * Context reference containing the active loggers for the current fiber.
49045
49909
  *
@@ -49273,4 +50137,4 @@ var RpcContracts = class extends make$7(make$9("notes.watch", {
49273
50137
  payload: Struct({ id: NoteId })
49274
50138
  })) {};
49275
50139
  //#endregion
49276
- export { CloseEvent as $, exit as $a, makeUnsafe$5 as $c, identity as $d, shutdown as $i, lastNonEmpty as $l, value as $n, runForkWith as $o, flattenIterable as $r, trimEnd as $s, decodeEffect as $t, fromNullishOr as $u, withDefault as A, all$1 as Aa, mergeAll$2 as Ac, NodeInspectSymbol as Ad, suspend as Ai, dedupeAdjacentWith as Al, withDecodingDefaultKey as An, match as Ao, toEncoded$1 as Ar, zipWith as As, Json as At, format$1 as Au, constEof as B, catchCauseIf as Ba, closeUnsafe as Bc, isNotNullish as Bd, mapError$1 as Bi, flatMap$5 as Bl, fromIterable$2 as Bn, orDie$2 as Bo, FileSystem as Br, isEmpty$1 as Bs, Redacted$1 as Bt, getOrUndefined as Bu, Redacted as C, ipv4ToOctets as Ca, buildWithMemoMap as Cc, contE as Cd, runCollect as Ci, Error$2 as Cl, toCodecJson as Cn, logFatal as Co, mapOrSame as Cr, void_$1 as Cs, Defect as Ct, isFailure$1 as Cu, option as D, isUnicast as Da, empty$7 as Dc, setStackTraceLimit as Dd, runLast as Di, appendAll$1 as Dl, toType as Dn, map$3 as Do, resolveDescription as Dr, withLogSpan as Ds, FalseLiterals as Dt, match$4 as Du, map as E, isPrivate as Ea, effectDiscard as Ec, getStackTraceLimit as Ed, runHead as Ei, taggedEnum as El, toJsonSchemaDocument as En, makeSpanScoped as Eo, replaceChecks as Er, withFiberSucceed as Es, Exit as Et, map$8 as Eu, json as F, asSome as Fa, unwrap$4 as Fc, equals$1 as Fd, unwrap$1 as Fi, filter$2 as Fl, empty as Fn, onError as Fo, formatIso as Fr, isDoneCause as Fs, NonEmptyArray as Ft, Reference as Fu, isWrapper as G, catchTag as Ga, CurrentLogAnnotations as Gc, compose as Gd, bounded as Gi, groupBy as Gl, fromRecordUnsafe as Gn, provideService$2 as Go, decodeText$1 as Gr, repeat$2 as Gs, Tuple as Gt, merge$4 as Gu, constPong as H, catchFilter$2 as Ha, make$33 as Hc, isObject as Hd, pipeTo as Hi, get$4 as Hl, CurrentRedactedNames as Hn, promise as Ho, catchTags as Hr, length as Hs, Struct as Ht, getUnsafe$1 as Hu, layerJson as I, asVoid as Ia, Scope as Ic, hash as Id, last as Ii, filterMap as Il, fromInput as In, onExit$1 as Io, now as Ir, Random as Is, Null as It, Service as Iu, isStreamSchema as J, context as Ja, TracerTimingEnabled as Jc, constUndefined as Jd, failCause$2 as Ji, isArrayNonEmpty as Jl, remove$1 as Jn, repeat as Jo, ensuring as Jr, slice as Js, Uint8Array$1 as Jt, exists as Ju, ClientAbort as K, catchTags$1 as Ka, CurrentLogSpans as Kc, constFalse$1 as Kd, collect as Ki, head as Kl, isRedactedName as Kn, provideServiceEffect as Ko, die as Kr, replace as Ks, URL$2 as Kt, all$4 as Ku, layerSchemaBinary as L, cached as La, addFinalizer$1 as Lc, hasProperty as Ld, fromPull$1 as Li, findFirst as Ll, setAll as Ln, onExitPrimitive as Lo, toEpochMillis as Lr, camelToSnake as Ls, NullOr as Lt, add as Lu, withRun as M, annotateCurrentSpan as Ma, provideMerge as Mc, toStringUnknown as Md, tap as Mi, empty$8 as Ml, omit as Mn, matchCauseEffectEager as Mo, transform as Mr, min as Ms, Literals as Mt, parts as Mu, withRunClient as N, annotateLogs as Na, succeed$5 as Nc, format$2 as Nd, toReadableStreamEffect as Ni, ensure as Nl, getReferenceKey as Nn, matchEffect as No, transformOptional as Nr, spaced as Ns, MutableJson as Nt, seconds as Nu, succeed as O, unixPathAddress as Oa, launch as Oc, BaseProto as Od, scan as Oi, contains as Ol, withConstructorDefault as On, mapEager as Oo, resolveIdentifier as Or, withParentSpan as Os, Finite as Ot, succeed$8 as Ou, RpcSerialization as P, as as Pa, succeedContext as Pc, redact$1 as Pd, toReadableStreamWith as Pi, every$1 as Pl, encodeUnknownEffect$1 as Pn, never$1 as Po, encode as Pr, catchDone as Ps, Never as Pt, toMillis as Pu, makeCollectorUnsafe as Q, ensuring$2 as Qa, isDeferred as Qc, flow as Qd, offerUnsafe as Qi, last$1 as Ql, make$16 as Qn, runFork as Qo, flatMap as Qr, trim as Qs, Unknown as Qt, flatten$5 as Qu, RequestId as R, callback$1 as Ra, addFinalizerExit as Rc, isIterable as Rd, fromTransform$1 as Ri, findFirstIndex as Rl, fromIterable as Rn, onInterrupt as Ro, defaultFormatter as Rr, endsWith as Rs, Number$1 as Rt, empty$10 as Ru, Port as S, ipv4FromString as Sa, CurrentMemoMap as Sc, contA as Sd, run$1 as Si, nativeTracer as Sl, tag as Sn, logError as So, isOptional as Sr, useSpan as Ss, DateTimeUtcFromString as St, getOrElse as Su, URL$1 as T, isLoopback as Ta, effectContext as Tc, assignProperty$1 as Td, runForEachArray as Ti, TaggedError$1 as Tl, toEncoded as Tn, logWarning as To, optionalKey$1 as Tr, withFiber as Ts, Error$1 as Tt, isSuccess$1 as Tu, ServerClient as U, catchIf as Ua, makeUnsafe$4 as Uc, isTagged as Ud, make$25 as Ui, getSomes as Ul, empty$2 as Un, provide as Uo, catch_ as Ur, match$1 as Us, TaggedError as Ut, make$37 as Uu, constPing as V, catchDefect as Va, forkUnsafe as Vc, isNotUndefined as Vd, mkUint8Array$1 as Vi, fromIterable$6 as Vl, get as Vn, orElseSucceed as Vo, catchReason as Vr, isNonEmpty as Vs, String$2 as Vt, getOrUndefinedUnsafe as Vu, exitSchema as W, catchReason$2 as Wa, provide$3 as Wc, isUndefined as Wd, makeUnsafe$1 as Wi, getUnsafe as Wl, fromInput$1 as Wn, provideContext$2 as Wo, concat as Wr, padStart as Ws, TrueLiterals as Wt, makeUnsafe$6 as Wu, spanName as X, delay as Xa, doneUnsafe as Xc, constant as Xd, offer as Xi, isReadonlyArrayNonEmpty as Xl, setAll$1 as Xn, retry as Xo, failCause as Xr, startsWith as Xs, UndefinedOr as Xt, flatMap$7 as Xu, spanAttributes as Y, contextWith as Ya, _await as Yc, constVoid as Yd, make$26 as Yi, isReadonlyArrayEmpty as Yl, set$1 as Yn, result as Yo, fail$1 as Yr, split as Ys, Uint8ArrayFromBase64 as Yt, filter$3 as Yu, Collector as Z, die$2 as Za, into as Zc, dual as Zd, offerAll as Zi, join$1 as Zl, isRedacted as Zn, retryOrElse as Zo, filter as Zr, toLowerCase as Zs, Union as Zt, flatMapNullishOr as Zu, QuitError as _, mebibytes as _a, interruptors as _c, combine$1 as _d, mkUint8Array as _i, DisablePropagation as _l, make$11 as _n, interrupt$1 as _o, PropertySignature as _r, try_ as _s, ArraySchema as _t, headUnsafe as _u, ImageType as a, makeUnsafe$2 as aa, StackTrace as ac, isSome as ad, fromQueue as ai, isFailure as al, encodeSync as an, fn as ao, fromReadable as ar, succeed$4 as as, fromWebSocket as at, reverse as au, layer$8 as b, inetAddressFromIpString as ba, prettyErrors as bc, Prototype as bd, pipeThroughChannel as bi, externalSpan as bl, optional as bn, log as bo, decodeTo$1 as br, updateContext as bs, Class as bt, failVoid as bu, NotesError as c, interrupt as ca, die$3 as cc, map$9 as cd, limitBytes as ci, ConsoleRef as cl, fromJsonString as cn, forever as co, toUint8Array as cr, sync as cs, DecodeError as ct, take$3 as cu, layer as d, interruptAs as da, filterInterruptors as dc, orElse as dd, mapArray as di, fiberEnterUninterruptibleUnsafe as dl, isInt as dn, forkScoped as do, ChildProcessSpawner as dr, tapError as ds, HttpClientError as dt, get$5 as du, shutdownUnsafe as ea, max as ec, fromUndefinedOr as ed, pipe as ef, fromArray as ei, die$4 as el, decodeSync as en, fail$3 as eo, empty$3 as er, runSync$1 as es, Socket as et, map$6 as eu, make as f, runIn as fa, findError as fc, orElseSome as fd, mapArrayEffect as fi, forkUnsafe$1 as fl, isMaxLength as fn, fromOption as fo, Arrays as fr, timeout as fs, HttpClientErrorSchema as ft, has$3 as fu, layer$1 as g, gibibytes as ga, hasInterruptsOnly as gc, String$6 as gd, mkString as gi, sync$2 as gl, isSchemaError as gn, ignoreCause as go, Objects as gr, tryPromise as gs, Any as gt, empty$9 as gu, errorReported as h, fromInputUnsafe as ha, hasInterrupts as hc, Number$5 as hd, mergeAll as hi, reportCauseUnsafe as hl, isSchema as hn, ignore as ho, Literal$1 as hr, transposeOption as hs, TransportError as ht, toEntries as hu, FileType as i, unbounded as ia, Done as ic, isNone as id, fromPubSub as ii, isExit as il, encodeEffect as in, flatMapEager as io, toSetCookieHeaders as ir, serviceOption as is, SocketReadError as it, reduce as iu, Stdio as j, andThen as ja, provide$2 as jc, toJson as jd, takeUntil as ji, drop as jl, isSchemaError$1 as jn, matchCauseEffect as jo, passthrough as jr, exponential as js, Literal as jt, millis as ju, unwrap as k, acquireRelease as ka, merge$3 as kc, Class$2 as kd, succeed$2 as ki, dedupe as kl, withDecodingDefault as kn, mapError$2 as ko, string as kr, withSpan as ks, Int as kt, try_$2 as ku, Organization as l, interruptAll as la, done as lc, match$6 as ld, map$1 as li, effectIsExit as ll, is as ln, forkChild as lo, fromWritable as lr, tap$1 as ls, EmptyBodyError as lt, takeRight as lu, errorExitCode as m, fromInput$2 as ma, hasDies as mc, toArray as md, mapError as mi, onExitUnsafe as ml, isPattern as mn, gen as mo, FilterGroup as mr, timeoutOrElse as ms, StatusCodeError as mt, map$7 as mu, Capture as n, takeAll as na, round as nc, getOrNull as nd, fromEffect as ni, failCause$5 as nl, decodeUnknownEffect as nn, filterOrFail as no, isEmpty as nr, scoped as ns, SocketErrorReason as nt, of as nu, Note as o, await_ as oa, annotate$1 as oc, liftPredicate as od, fromReadableStream as oi, isSuccess as ol, encodeTo as on, fnUntraced as oo, pipeThroughDuplex as or, succeedNone as os, layerWebSocket as ot, some as ou, runMain as p, badArgument as pa, fromReasons as pc, some$1 as pd, mapEffect as pi, makeSpanUnsafe as pl, isMinLength as pn, fromResult as po, Filter as pr, timeoutOption as ps, InvalidUrlError as pt, keys$1 as pu, getStreamSchemas as q, catch_$2 as qa, MinimumLogLevel as qc, constTrue as qd, end as qi, headNonEmpty as ql, merge as qn, raceFirst as qo, empty$4 as qr, replaceAll as qs, URLFromString as qt, contains$1 as qu, Extraction as r, publishUnsafe as ra, Clock as rc, getOrUndefined$1 as rd, fromIterable$5 as ri, interrupt$2 as rl, decodeUnknownOption as rn, flatMap$2 as ro, parseHeader as rr, service as rs, SocketOpenError as rt, prepend$1 as ru, NoteId as s, getCurrent as sa, combine as sc, liftThrowable as sd, groupedWithin as si, succeed$6 as sl, encodeUnknownEffect as sn, forEach$1 as so, toArrayBuffer as sr, suspend$2 as ss, layerWebSocketConstructorGlobal as st, sort as su, RpcContracts as t, take$1 as ta, parse as tc, getOrElse$1 as td, pipeArguments as tf, fromChannel as ti, fail$5 as tl, decodeTo as tn, failCause$3 as to, fromSetCookie as tr, scope as ts, SocketError as tt, match$3 as tu, LogToStderr as u, interruptAllAs as ua, fail$4 as uc, none as ud, mapAccum as ui, fiberEnterInterruptibleUnsafe as ul, isGreaterThanOrEqualTo as un, forkIn as uo, make$18 as ur, tapCause as us, EncodeError as ut, assignProperty as uu, Terminal as v, zero$1 as va, isNoSuchElementError as vc, flip$1 as vd, onEnd as vi, ParentSpan as vl, makeFilter as vn, interruptible as vo, Suspend as vr, uninterruptible as vs, Boolean$1 as vt, make$35 as vu, String$1 as w, isLinkLocal as wa, effect as wc, withFiber$1 as wd, runForEach as wi, TaggedClass as wl, toCodecStringTree as wn, logInfo as wo, null_ as wr, whileLoop as ws, Duration as wt, isResult as wu, Crypto as x, ipFromString as xa, squash as xc, PipeInspectableProto as xd, provideService as xi, make$34 as xl, optionalKey as xn, logDebug as xo, isNever as xr, updateService as xs, DateTimeUtc as xt, fromOption$2 as xu, isQuitError as y, formatUrlUnsafe as ya, makeDieReason as yc, mapInput as yd, orDie as yi, Tracer as yl, mutable as yn, isEffect as yo, Union$1 as yr, uninterruptibleMask as ys, BooleanLiterals as yt, fail$7 as yu, ResponseDefectEncoded as z, catchCause$1 as za, close as zc, isNotNull as zd, map$2 as zi, findLast as zl, has as zn, option$1 as zo, Path$1 as zr, includes as zs, Record as zt, get$6 as zu };
50140
+ export { CloseEvent as $, catchCauseIf as $a, close as $c, isNotUndefined as $d, offer as $i, findLast as $l, setAll$1 as $n, orDie$2 as $o, failCause as $r, includes as $s, decodeEffect as $t, getOrUndefinedUnsafe as $u, withDefault as A, formatIp as Aa, hasInterruptsOnly as Ac, flip$1 as Ad, runLast as Ai, sync$2 as Al, withDecodingDefaultKey as An, interrupt$1 as Ao, resolveDescription as Ar, try_ as As, Json as At, empty$9 as Au, constEof as B, isUnicast as Ba, effectDiscard as Bc, BaseProto as Bd, fromPull$1 as Bi, taggedEnum as Bl, unwrap$1 as Bn, map$3 as Bo, toEpochMillis as Br, withFiberSucceed as Bs, Redacted$1 as Bt, succeed$8 as Bu, Redacted as C, DnsError as Ca, done as Cc, orElse as Cd, pipeThroughChannel as Ci, effectIsExit as Cl, toCodecJson as Cn, forkIn as Co, decodeTo$1 as Cr, tapCause as Cs, Defect as Ct, takeRight as Cu, option as D, domainNameFromStringUnsafe as Da, fromReasons as Dc, Number$5 as Dd, runForEach as Di, makeSpanUnsafe as Dl, toType as Dn, gen as Do, null_ as Dr, timeoutOrElse as Ds, FalseLiterals as Dt, keys$1 as Du, map as E, nameServerFromInput as Ea, findError as Ec, toArray as Ed, runCollect as Ei, forkUnsafe$1 as El, toJsonSchemaDocument as En, fromResult as Eo, mapOrSame as Er, timeoutOption as Es, Exit as Et, has$3 as Eu, json as F, ipv4ToOctets as Fa, squash as Fc, contE as Fd, tap as Fi, make$36 as Fl, CurrentRedactedNames as Fn, logError as Fo, transform as Fr, useSpan as Fs, NonEmptyArray as Ft, fromOption$2 as Fu, isWrapper as G, annotateCurrentSpan as Ga, provide$2 as Gc, format$2 as Gd, pipeTo as Gi, drop as Gl, CurrentRedactedNames$1 as Gn, matchCauseEffectEager as Go, catchTags as Gr, exponential as Gs, Tuple as Gt, seconds as Gu, constPong as H, acquireRelease as Ha, launch as Hc, NodeInspectSymbol as Hd, map$2 as Hi, contains as Hl, has as Hn, mapError$2 as Ho, Path$1 as Hr, withParentSpan as Hs, Struct as Ht, format$1 as Hu, layerJson as I, isInetAddressV6 as Ia, CurrentMemoMap as Ic, withFiber$1 as Id, toReadableStreamEffect as Ii, nativeTracer as Il, empty as In, logFatal as Io, transformOptional as Ir, void_$1 as Is, Null as It, isFailure$1 as Iu, isStreamSchema as J, asSome as Ja, succeedContext as Jc, hash as Jd, bounded as Ji, every$1 as Jl, fromRecordUnsafe as Jn, onError as Jo, decodeText$1 as Jr, catchDone as Js, Uint8Array$1 as Jt, Service as Ju, ClientAbort as K, annotateLogs as Ka, provideMerge as Kc, redact$2 as Kd, make$26 as Ki, empty$8 as Kl, empty$2 as Kn, matchEffect as Ko, catch_ as Kr, min as Ks, URL$2 as Kt, toMillis as Ku, layerSchemaBinary as L, isLinkLocal as La, buildWithMemoMap as Lc, assignProperty$1 as Ld, toReadableStreamWith as Li, Error$2 as Ll, fromInput as Ln, logInfo as Lo, encode as Lr, when as Ls, NullOr as Lt, isResult as Lu, withRun as M, inetAddressFromIpString as Ma, isNoSuchElementError as Mc, Prototype as Md, succeed$2 as Mi, ParentSpan as Ml, omit as Mn, isEffect as Mo, string as Mr, uninterruptibleMask as Ms, Literals as Mt, make$37 as Mu, withRunClient as N, ipFromString as Na, makeDieReason as Nc, PipeInspectableProto as Nd, suspend as Ni, Tracer as Nl, getReferenceKey as Nn, log as No, toEncoded$1 as Nr, updateContext as Ns, MutableJson as Nt, fail$7 as Nu, succeed as O, NetAddressError as Oa, hasDies as Oc, String$6 as Od, runForEachArray as Oi, onExitUnsafe as Ol, withConstructorDefault as On, ignore as Oo, optionalKey$1 as Or, transposeOption as Os, Finite as Ot, map$7 as Ou, RpcSerialization as P, ipFromStringUnsafe as Pa, prettyErrors as Pc, contA as Pd, takeUntil as Pi, externalSpan as Pl, encodeUnknownEffect$1 as Pn, logDebug as Po, passthrough as Pr, updateService as Ps, Never as Pt, failVoid as Pu, makeCollectorUnsafe as Q, catchCause$1 as Qa, addFinalizerExit as Qc, isNotNullish as Qd, make$27 as Qi, findFirstIndex as Ql, set$1 as Qn, option$1 as Qo, fail$1 as Qr, endsWith as Qs, Unknown as Qt, getOrUndefined as Qu, RequestId as R, isLoopback as Ra, effect as Rc, getStackTraceLimit as Rd, unwrap$2 as Ri, TaggedClass as Rl, redactUrl as Rn, logWarning as Ro, formatIso as Rr, whileLoop as Rs, Number$1 as Rt, isSuccess$1 as Ru, Port as S, Dns as Sa, die$3 as Sc, none as Sd, orDie as Si, ConsoleRef as Sl, tag as Sn, forkChild as So, Union$1 as Sr, tap$1 as Ss, DateTimeUtcFromString as St, take$3 as Su, URL$1 as T, makeRecordUnsafe as Ta, filterInterruptors as Tc, some$1 as Td, run$1 as Ti, fiberEnterUninterruptibleUnsafe as Tl, toEncoded as Tn, fromOption as To, isOptional as Tr, timeout as Ts, Error$1 as Tt, get$5 as Tu, ServerClient as U, all$1 as Ua, merge$3 as Uc, toJson as Ud, mapError$1 as Ui, dedupe as Ul, fromIterable$2 as Un, match as Uo, FileSystem as Ur, withSpan as Us, TaggedError as Ut, millis as Uu, constPing as V, unixPathAddress as Va, empty$7 as Vc, Class$2 as Vd, fromTransform$1 as Vi, appendAll$1 as Vl, fromIterable as Vn, mapEager as Vo, defaultFormatter as Vr, withLogSpan as Vs, String$2 as Vt, try_$2 as Vu, exitSchema as W, andThen as Wa, mergeAll$2 as Wc, toStringUnknown as Wd, mkUint8Array$1 as Wi, dedupeAdjacentWith as Wl, get as Wn, matchCauseEffect as Wo, catchReason as Wr, zipWith as Ws, TrueLiterals as Wt, parts as Wu, spanName as X, cached as Xa, Scope as Xc, isIterable as Xd, end as Xi, filterMap as Xl, merge as Xn, onExitPrimitive as Xo, empty$4 as Xr, Random as Xs, UndefinedOr as Xt, empty$10 as Xu, spanAttributes as Y, asVoid as Ya, unwrap$5 as Yc, hasProperty as Yd, collect as Yi, filter$2 as Yl, isRedactedName$1 as Yn, onExit$1 as Yo, die as Yr, isDoneCause as Ys, Uint8ArrayFromBase64 as Yt, add as Yu, Collector as Z, callback$1 as Za, addFinalizer$1 as Zc, isNotNull as Zd, failCause$2 as Zi, findFirst as Zl, remove$1 as Zn, onInterrupt as Zo, ensuring as Zr, camelToSnake as Zs, Union as Zt, get$6 as Zu, QuitError as _, fromInput$2 as _a, Clock as _c, isSome as _d, mapError as _i, interrupt$2 as _l, make$11 as _n, flatMapEager as _o, FilterGroup as _r, serviceOption as _s, ArraySchema as _t, prepend$1 as _u, ImageType as a, takeAll as aa, repeat$2 as ac, contains$1 as ad, constTrue as af, fromEffect as ai, CurrentLogAnnotations as al, encodeSync as an, catchTags$1 as ao, isEmpty as ar, provideServiceEffect as as, fromWebSocket as at, groupBy as au, layer$8 as b, mebibytes as ba, annotate$1 as bc, map$9 as bd, mkUint8Array as bi, isSuccess as bl, optional as bn, forEach$1 as bo, PropertySignature as br, suspend$2 as bs, Class as bt, some as bu, NotesError as c, makeUnsafe$2 as ca, slice as cc, flatMap$7 as cd, constant as cf, fromQueue as ci, TracerTimingEnabled as cl, fromJsonString as cn, contextWith as co, fromReadable as cr, result as cs, DecodeError as ct, isArrayNonEmpty as cu, layer as d, interrupt as da, toLowerCase as dc, fromNullishOr as dd, identity as df, limitBytes as di, into as dl, isInt as dn, ensuring$2 as do, toUint8Array as dr, runFork as ds, HttpClientError as dt, join$1 as du, offerAll as ea, isEmpty$1 as ec, getUnsafe$1 as ed, isObject as ef, filter as ei, closeUnsafe as el, decodeSync as en, catchDefect as eo, isRedacted as er, orElseSucceed as es, Socket as et, flatMap$5 as eu, make as f, interruptAll as fa, trim as fc, fromUndefinedOr as fd, pipe as ff, map$1 as fi, isDeferred as fl, isMaxLength as fn, exit as fo, fromWritable as fr, runForkWith as fs, HttpClientErrorSchema as ft, last$1 as fu, layer$1 as g, badArgument as ga, round as gc, isNone as gd, mapEffect as gi, failCause$5 as gl, isSchemaError as gn, flatMap$2 as go, Filter as gr, service as gs, Any as gt, of as gu, errorReported as h, runIn as ha, parse as hc, getOrUndefined$1 as hd, mapArrayEffect as hi, fail$5 as hl, isSchema as hn, filterOrFail as ho, Arrays as hr, scoped as hs, TransportError as ht, match$3 as hu, FileType as i, take$1 as ia, padStart as ic, all$4 as id, constFalse$1 as if, fromChannel as ii, provide$3 as il, encodeEffect as in, catchTag as io, fromSetCookie as ir, provideService$2 as is, SocketReadError as it, getUnsafe as iu, Stdio as j, formatUrlUnsafe as ja, interruptors as jc, mapInput as jd, scan as ji, DisablePropagation as jl, isSchemaError$1 as jn, interruptible as jo, resolveIdentifier as jr, uninterruptible as js, Literal as jt, headUnsafe as ju, unwrap as k, formatInet as ka, hasInterrupts as kc, combine$1 as kd, runHead as ki, reportCauseUnsafe as kl, withDecodingDefault as kn, ignoreCause as ko, replaceChecks as kr, tryPromise as ks, Int as kt, toEntries as ku, Organization as l, await_ as la, split as lc, flatMapNullishOr as ld, dual as lf, fromReadableStream as li, _await as ll, is as ln, delay as lo, pipeThroughDuplex as lr, retry as ls, EmptyBodyError as lt, isReadonlyArrayEmpty as lu, errorExitCode as m, interruptAs as ma, max as mc, getOrNull as md, mapArray as mi, die$4 as ml, isPattern as mn, failCause$3 as mo, ChildProcessSpawner as mr, scope as ms, StatusCodeError as mt, map$6 as mu, Capture as n, shutdown as na, length as nc, makeUnsafe$6 as nd, isUndefined as nf, flattenIterable as ni, make$35 as nl, decodeUnknownEffect as nn, catchIf as no, value as nr, provide as ns, SocketErrorReason as nt, get$4 as nu, Note as o, publishUnsafe as oa, replace as oc, exists as od, constUndefined as of, fromIterable$5 as oi, CurrentLogSpans as ol, encodeTo as on, catch_$2 as oo, parseHeader as or, raceFirst as os, layerWebSocket as ot, head as ou, runMain as p, interruptAllAs as pa, trimEnd as pc, getOrElse as pd, pipeArguments as pf, mapAccum as pi, makeUnsafe$5 as pl, isMinLength as pn, fail$3 as po, make$18 as pr, runSync$1 as ps, InvalidUrlError as pt, lastNonEmpty as pu, getStreamSchemas as q, as as qa, succeed$5 as qc, equals$1 as qd, makeUnsafe$1 as qi, ensure as ql, fromInput$1 as qn, never$1 as qo, concat as qr, spaced as qs, URLFromString as qt, Reference as qu, Extraction as r, shutdownUnsafe as ra, match$1 as rc, merge$4 as rd, compose as rf, fromArray as ri, makeUnsafe$4 as rl, decodeUnknownOption as rn, catchReason$2 as ro, empty$3 as rr, provideContext$2 as rs, SocketOpenError as rt, getSomes as ru, NoteId as s, unbounded as sa, replaceAll as sc, filter$3 as sd, constVoid as sf, fromPubSub as si, MinimumLogLevel as sl, encodeUnknownEffect as sn, context as so, toSetCookieHeaders as sr, repeat as ss, layerWebSocketConstructorGlobal as st, headNonEmpty as su, RpcContracts as t, offerUnsafe as ta, isNonEmpty as tc, make$39 as td, isTagged as tf, flatMap as ti, forkUnsafe as tl, decodeTo as tn, catchFilter$2 as to, make$16 as tr, promise as ts, SocketError as tt, fromIterable$6 as tu, LogToStderr as u, getCurrent as ua, startsWith as uc, flatten$5 as ud, flow as uf, groupedWithin as ui, doneUnsafe as ul, isGreaterThanOrEqualTo as un, die$2 as uo, toArrayBuffer as ur, retryOrElse as us, EncodeError as ut, isReadonlyArrayNonEmpty as uu, Terminal as v, fromInputUnsafe as va, Done as vc, liftPredicate as vd, mergeAll as vi, isExit as vl, makeFilter as vn, fn as vo, Literal$1 as vr, succeed$4 as vs, Boolean$1 as vt, reduce as vu, String$1 as w, make$33 as wa, fail$4 as wc, orElseSome as wd, provideService as wi, fiberEnterInterruptibleUnsafe as wl, toCodecStringTree as wn, forkScoped as wo, isNever as wr, tapError as ws, Duration as wt, assignProperty as wu, Crypto as x, zero$1 as xa, combine as xc, match$6 as xd, onEnd as xi, succeed$6 as xl, optionalKey as xn, forever as xo, Suspend as xr, sync as xs, DateTimeUtc as xt, sort as xu, isQuitError as y, gibibytes as ya, StackTrace as yc, liftThrowable as yd, mkString as yi, isFailure as yl, mutable as yn, fnUntraced as yo, Objects as yr, succeedNone as ys, BooleanLiterals as yt, reverse as yu, ResponseDefectEncoded as z, isPrivate as za, effectContext as zc, setStackTraceLimit as zd, last as zi, TaggedError$1 as zl, setAll as zn, makeSpanScoped as zo, now as zr, withFiber as zs, Record as zt, match$4 as zu };