functype 0.51.0 → 0.53.0

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.
@@ -1803,142 +1803,6 @@ declare const Validation: (<T extends Type>(rule: ValidationRule) => Validator<T
1803
1803
  form: <T extends Record<string, Type>>(schema: { [K in keyof T]: Validator<T[K]> }, data: Record<string, unknown>) => FormValidation<T>;
1804
1804
  };
1805
1805
  //#endregion
1806
- //#region src/foldable/index.d.ts
1807
- /**
1808
- * Structural type for sum types that support pattern-match fold (Option, Either, Try, etc.).
1809
- * Uses duck typing so any type with the right fold signature works, without requiring a shared interface.
1810
- */
1811
- type PatternFoldable<A> = {
1812
- fold<B>(onEmpty: () => B, onValue: (value: A) => B): B;
1813
- };
1814
- /**
1815
- * Utility functions for working with sum-type Foldable data structures.
1816
- * These utilities use pattern-match fold semantics and are designed for
1817
- * sum types (Option, Either, Try) — not collections.
1818
- */
1819
- declare const FoldableUtils: {
1820
- /**
1821
- * Converts a sum type to an Option
1822
- *
1823
- * @param foldable - The sum type to convert
1824
- * @returns An Option containing the value, or None if empty
1825
- */
1826
- toOption: <A extends Type>(foldable: PatternFoldable<A>) => Option<A>;
1827
- /**
1828
- * Converts a sum type to a List
1829
- *
1830
- * @param foldable - The sum type to convert
1831
- * @returns A List containing the value(s), or empty List if empty
1832
- */
1833
- toList: <A extends Type>(foldable: PatternFoldable<A>) => List<A>;
1834
- /**
1835
- * Converts a sum type to an Either
1836
- *
1837
- * @param foldable - The sum type to convert
1838
- * @param left - The value to use for Left if empty
1839
- * @returns Either.Right with the value if non-empty, or Either.Left with left if empty
1840
- */
1841
- toEither: <A extends Type, E>(foldable: PatternFoldable<A>, left: E) => Either<E, A>;
1842
- /**
1843
- * Checks if the sum type is empty
1844
- *
1845
- * @param foldable - The sum type to check
1846
- * @returns true if empty, false otherwise
1847
- */
1848
- isEmpty: <A extends Type>(foldable: PatternFoldable<A>) => boolean;
1849
- /**
1850
- * Calculates the size of the sum type (0 or 1)
1851
- *
1852
- * @param foldable - The sum type to measure
1853
- * @returns The size (0 if empty, 1 if non-empty)
1854
- */
1855
- size: <A extends Type>(foldable: PatternFoldable<A>) => number;
1856
- };
1857
- //#endregion
1858
- //#region src/hkt/index.d.ts
1859
- /**
1860
- * Type function for representing higher-kinded types
1861
- */
1862
- type Kind<F, A> = F extends ((arg: infer T) => infer R) ? R : never;
1863
- /**
1864
- * Type constructors for common Functype data types
1865
- */
1866
- type OptionKind = <A>(a: A) => Option<A>;
1867
- type ListKind = <A>(a: A) => List<A>;
1868
- type EitherKind<E> = <A>(a: A) => Either<E, A>;
1869
- type TryKind = <A>(a: A) => Try<A>;
1870
- /**
1871
- * Generic container types for type-safe operations
1872
- * @internal
1873
- */
1874
- type Mappable<T> = {
1875
- map<U>(f: (value: T) => U): unknown;
1876
- };
1877
- /**
1878
- * @internal
1879
- */
1880
- type Flattenable = {
1881
- flatten(): unknown;
1882
- };
1883
- /**
1884
- * @internal
1885
- */
1886
- type FlatMappable<T> = {
1887
- flatMap<U>(f: (value: T) => unknown): unknown;
1888
- };
1889
- /**
1890
- * Universal type that includes all potential return types from the HKT functions
1891
- * Used to avoid 'any' usage which the linter prohibits
1892
- */
1893
- type UniversalContainer = Option<unknown> | List<unknown> | Either<unknown, unknown> | Try<unknown>;
1894
- /**
1895
- * HKT provides utilities for working with higher-kinded types
1896
- * This allows writing generic code that works across different
1897
- * container types like Option, List, Either, etc.
1898
- */
1899
- declare const HKT: {
1900
- (): {
1901
- _tag: string;
1902
- map: <F, A, B>(fa: unknown, f: (a: A) => B) => unknown;
1903
- flatten: <F, A>(ffa: unknown) => unknown;
1904
- flatMap: <F, A, B>(fa: unknown, f: (a: A) => unknown) => unknown;
1905
- ap: <F, A, B>(ff: unknown, fa: unknown) => unknown;
1906
- sequence: <F, G, A>(fga: unknown) => unknown;
1907
- traverse: <F, G, A, B>(fa: unknown, f: (a: A) => unknown) => unknown;
1908
- _type: string;
1909
- };
1910
- map<F = unknown, A = unknown, B = unknown>(fa: unknown, f: (a: A) => B): unknown;
1911
- flatten<F = unknown, A = unknown>(ffa: unknown): unknown;
1912
- flatMap<F = unknown, A = unknown, B = unknown>(fa: unknown, f: (a: A) => unknown): unknown;
1913
- ap<F = unknown, A = unknown, B = unknown>(ff: unknown, fa: unknown): unknown;
1914
- sequence<F = unknown, G = unknown, A = unknown>(fga: unknown): unknown;
1915
- traverse<F = unknown, G = unknown, A = unknown, B = unknown>(fa: unknown, f: (a: A) => unknown): unknown;
1916
- isOption: <T extends Type>(value: unknown) => value is Option<T> & Mappable<T> & FlatMappable<T>;
1917
- isList: <T extends Type>(value: unknown) => value is List<T> & Mappable<T> & Flattenable & FlatMappable<T>;
1918
- isEither: <E extends Type, A extends Type>(value: unknown) => value is Either<E, A> & Mappable<A> & FlatMappable<A>;
1919
- isTry: <T extends Type>(value: unknown) => value is Try<T> & Mappable<T> & FlatMappable<T>;
1920
- };
1921
- //#endregion
1922
- //#region src/identity/Identity.d.ts
1923
- type Identity<T> = {
1924
- id: T;
1925
- isSame?: (other: Identity<T>) => boolean;
1926
- };
1927
- declare const Identity: (<T>(value: T) => Identity<T>) & {
1928
- /**
1929
- * Creates an Identity. Alias for Identity constructor.
1930
- * @param value - The value to wrap
1931
- * @returns Identity instance
1932
- */
1933
- of: <T>(value: T) => Identity<T>;
1934
- /**
1935
- * Creates an Identity. Same as of.
1936
- * @param value - The value to wrap
1937
- * @returns Identity instance
1938
- */
1939
- pure: <T>(value: T) => Identity<T>;
1940
- };
1941
- //#endregion
1942
1806
  //#region src/io/Tag.d.ts
1943
1807
  /**
1944
1808
  * Tag module - service identifiers for dependency injection.
@@ -3308,6 +3172,238 @@ declare const TestContext: {
3308
3172
  withClock: () => TestContext<TestClock>;
3309
3173
  };
3310
3174
  //#endregion
3175
+ //#region src/fetch/HttpClient.d.ts
3176
+ interface HttpClientConfig {
3177
+ readonly baseUrl?: string;
3178
+ readonly defaultHeaders?: Record<string, string>;
3179
+ readonly fetch?: typeof globalThis.fetch;
3180
+ }
3181
+ declare const HttpClient: Tag<HttpClientConfig>;
3182
+ //#endregion
3183
+ //#region src/fetch/HttpError.d.ts
3184
+ type HttpMethod = "GET" | "POST" | "PUT" | "PATCH" | "DELETE" | "HEAD" | "OPTIONS";
3185
+ type NetworkError = {
3186
+ readonly _tag: "NetworkError";
3187
+ readonly url: string;
3188
+ readonly method: HttpMethod;
3189
+ readonly cause: unknown;
3190
+ };
3191
+ type HttpStatusError = {
3192
+ readonly _tag: "HttpStatusError";
3193
+ readonly url: string;
3194
+ readonly method: HttpMethod;
3195
+ readonly status: number;
3196
+ readonly statusText: string;
3197
+ readonly body: string;
3198
+ };
3199
+ type DecodeError = {
3200
+ readonly _tag: "DecodeError";
3201
+ readonly url: string;
3202
+ readonly method: HttpMethod;
3203
+ readonly body: string;
3204
+ readonly cause: unknown;
3205
+ };
3206
+ type HttpError = NetworkError | HttpStatusError | DecodeError;
3207
+ declare const HttpError: {
3208
+ readonly _tag: "HttpError";
3209
+ } & {
3210
+ networkError: (url: string, method: HttpMethod, cause: unknown) => NetworkError;
3211
+ httpStatusError: (url: string, method: HttpMethod, status: number, statusText: string, body: string) => HttpStatusError;
3212
+ decodeError: (url: string, method: HttpMethod, body: string, cause: unknown) => DecodeError;
3213
+ isNetworkError: (error: HttpError) => error is NetworkError;
3214
+ isHttpStatusError: (error: HttpError) => error is HttpStatusError;
3215
+ isDecodeError: (error: HttpError) => error is DecodeError;
3216
+ match: <T>(error: HttpError, patterns: {
3217
+ readonly NetworkError: (e: NetworkError) => T;
3218
+ readonly HttpStatusError: (e: HttpStatusError) => T;
3219
+ readonly DecodeError: (e: DecodeError) => T;
3220
+ }) => T;
3221
+ };
3222
+ //#endregion
3223
+ //#region src/fetch/HttpRequest.d.ts
3224
+ type ParseMode = "json" | "text" | "blob" | "arrayBuffer" | "raw";
3225
+ interface HttpRequestOptions {
3226
+ readonly url: string;
3227
+ readonly method: HttpMethod;
3228
+ readonly headers?: Record<string, string>;
3229
+ readonly body?: unknown;
3230
+ readonly signal?: AbortSignal;
3231
+ readonly parseAs?: ParseMode;
3232
+ }
3233
+ interface HttpMethodOptions {
3234
+ readonly headers?: Record<string, string>;
3235
+ readonly body?: unknown;
3236
+ readonly signal?: AbortSignal;
3237
+ readonly parseAs?: ParseMode;
3238
+ }
3239
+ interface HttpResponse<T> {
3240
+ readonly data: T;
3241
+ readonly status: number;
3242
+ readonly statusText: string;
3243
+ readonly headers: Headers;
3244
+ }
3245
+ //#endregion
3246
+ //#region src/fetch/Http.d.ts
3247
+ type HttpMethods = {
3248
+ readonly request: <T>(options: HttpRequestOptions) => IO<never, HttpError, HttpResponse<T>>;
3249
+ readonly get: <T>(url: string, options?: HttpMethodOptions) => IO<never, HttpError, HttpResponse<T>>;
3250
+ readonly post: <T>(url: string, options?: HttpMethodOptions) => IO<never, HttpError, HttpResponse<T>>;
3251
+ readonly put: <T>(url: string, options?: HttpMethodOptions) => IO<never, HttpError, HttpResponse<T>>;
3252
+ readonly patch: <T>(url: string, options?: HttpMethodOptions) => IO<never, HttpError, HttpResponse<T>>;
3253
+ readonly delete: <T>(url: string, options?: HttpMethodOptions) => IO<never, HttpError, HttpResponse<T>>;
3254
+ readonly head: (url: string, options?: HttpMethodOptions) => IO<never, HttpError, HttpResponse<void>>;
3255
+ readonly options: (url: string, options?: HttpMethodOptions) => IO<never, HttpError, HttpResponse<void>>;
3256
+ };
3257
+ declare const Http: {
3258
+ readonly _tag: "Http";
3259
+ } & {
3260
+ request: <T>(options: HttpRequestOptions) => IO<never, HttpError, HttpResponse<T>>;
3261
+ get: <T>(url: string, options?: HttpMethodOptions) => IO<never, HttpError, HttpResponse<T>>;
3262
+ post: <T>(url: string, options?: HttpMethodOptions) => IO<never, HttpError, HttpResponse<T>>;
3263
+ put: <T>(url: string, options?: HttpMethodOptions) => IO<never, HttpError, HttpResponse<T>>;
3264
+ patch: <T>(url: string, options?: HttpMethodOptions) => IO<never, HttpError, HttpResponse<T>>;
3265
+ delete: <T>(url: string, options?: HttpMethodOptions) => IO<never, HttpError, HttpResponse<T>>;
3266
+ head: (url: string, options?: HttpMethodOptions) => IO<never, HttpError, HttpResponse<void>>;
3267
+ options: (url: string, options?: HttpMethodOptions) => IO<never, HttpError, HttpResponse<void>>;
3268
+ client: (config: HttpClientConfig) => HttpMethods;
3269
+ };
3270
+ //#endregion
3271
+ //#region src/foldable/index.d.ts
3272
+ /**
3273
+ * Structural type for sum types that support pattern-match fold (Option, Either, Try, etc.).
3274
+ * Uses duck typing so any type with the right fold signature works, without requiring a shared interface.
3275
+ */
3276
+ type PatternFoldable<A> = {
3277
+ fold<B>(onEmpty: () => B, onValue: (value: A) => B): B;
3278
+ };
3279
+ /**
3280
+ * Utility functions for working with sum-type Foldable data structures.
3281
+ * These utilities use pattern-match fold semantics and are designed for
3282
+ * sum types (Option, Either, Try) — not collections.
3283
+ */
3284
+ declare const FoldableUtils: {
3285
+ /**
3286
+ * Converts a sum type to an Option
3287
+ *
3288
+ * @param foldable - The sum type to convert
3289
+ * @returns An Option containing the value, or None if empty
3290
+ */
3291
+ toOption: <A extends Type>(foldable: PatternFoldable<A>) => Option<A>;
3292
+ /**
3293
+ * Converts a sum type to a List
3294
+ *
3295
+ * @param foldable - The sum type to convert
3296
+ * @returns A List containing the value(s), or empty List if empty
3297
+ */
3298
+ toList: <A extends Type>(foldable: PatternFoldable<A>) => List<A>;
3299
+ /**
3300
+ * Converts a sum type to an Either
3301
+ *
3302
+ * @param foldable - The sum type to convert
3303
+ * @param left - The value to use for Left if empty
3304
+ * @returns Either.Right with the value if non-empty, or Either.Left with left if empty
3305
+ */
3306
+ toEither: <A extends Type, E>(foldable: PatternFoldable<A>, left: E) => Either<E, A>;
3307
+ /**
3308
+ * Checks if the sum type is empty
3309
+ *
3310
+ * @param foldable - The sum type to check
3311
+ * @returns true if empty, false otherwise
3312
+ */
3313
+ isEmpty: <A extends Type>(foldable: PatternFoldable<A>) => boolean;
3314
+ /**
3315
+ * Calculates the size of the sum type (0 or 1)
3316
+ *
3317
+ * @param foldable - The sum type to measure
3318
+ * @returns The size (0 if empty, 1 if non-empty)
3319
+ */
3320
+ size: <A extends Type>(foldable: PatternFoldable<A>) => number;
3321
+ };
3322
+ //#endregion
3323
+ //#region src/hkt/index.d.ts
3324
+ /**
3325
+ * Type function for representing higher-kinded types
3326
+ */
3327
+ type Kind<F, A> = F extends ((arg: infer T) => infer R) ? R : never;
3328
+ /**
3329
+ * Type constructors for common Functype data types
3330
+ */
3331
+ type OptionKind = <A>(a: A) => Option<A>;
3332
+ type ListKind = <A>(a: A) => List<A>;
3333
+ type EitherKind<E> = <A>(a: A) => Either<E, A>;
3334
+ type TryKind = <A>(a: A) => Try<A>;
3335
+ /**
3336
+ * Generic container types for type-safe operations
3337
+ * @internal
3338
+ */
3339
+ type Mappable<T> = {
3340
+ map<U>(f: (value: T) => U): unknown;
3341
+ };
3342
+ /**
3343
+ * @internal
3344
+ */
3345
+ type Flattenable = {
3346
+ flatten(): unknown;
3347
+ };
3348
+ /**
3349
+ * @internal
3350
+ */
3351
+ type FlatMappable<T> = {
3352
+ flatMap<U>(f: (value: T) => unknown): unknown;
3353
+ };
3354
+ /**
3355
+ * Universal type that includes all potential return types from the HKT functions
3356
+ * Used to avoid 'any' usage which the linter prohibits
3357
+ */
3358
+ type UniversalContainer = Option<unknown> | List<unknown> | Either<unknown, unknown> | Try<unknown>;
3359
+ /**
3360
+ * HKT provides utilities for working with higher-kinded types
3361
+ * This allows writing generic code that works across different
3362
+ * container types like Option, List, Either, etc.
3363
+ */
3364
+ declare const HKT: {
3365
+ (): {
3366
+ _tag: string;
3367
+ map: <F, A, B>(fa: unknown, f: (a: A) => B) => unknown;
3368
+ flatten: <F, A>(ffa: unknown) => unknown;
3369
+ flatMap: <F, A, B>(fa: unknown, f: (a: A) => unknown) => unknown;
3370
+ ap: <F, A, B>(ff: unknown, fa: unknown) => unknown;
3371
+ sequence: <F, G, A>(fga: unknown) => unknown;
3372
+ traverse: <F, G, A, B>(fa: unknown, f: (a: A) => unknown) => unknown;
3373
+ _type: string;
3374
+ };
3375
+ map<F = unknown, A = unknown, B = unknown>(fa: unknown, f: (a: A) => B): unknown;
3376
+ flatten<F = unknown, A = unknown>(ffa: unknown): unknown;
3377
+ flatMap<F = unknown, A = unknown, B = unknown>(fa: unknown, f: (a: A) => unknown): unknown;
3378
+ ap<F = unknown, A = unknown, B = unknown>(ff: unknown, fa: unknown): unknown;
3379
+ sequence<F = unknown, G = unknown, A = unknown>(fga: unknown): unknown;
3380
+ traverse<F = unknown, G = unknown, A = unknown, B = unknown>(fa: unknown, f: (a: A) => unknown): unknown;
3381
+ isOption: <T extends Type>(value: unknown) => value is Option<T> & Mappable<T> & FlatMappable<T>;
3382
+ isList: <T extends Type>(value: unknown) => value is List<T> & Mappable<T> & Flattenable & FlatMappable<T>;
3383
+ isEither: <E extends Type, A extends Type>(value: unknown) => value is Either<E, A> & Mappable<A> & FlatMappable<A>;
3384
+ isTry: <T extends Type>(value: unknown) => value is Try<T> & Mappable<T> & FlatMappable<T>;
3385
+ };
3386
+ //#endregion
3387
+ //#region src/identity/Identity.d.ts
3388
+ type Identity<T> = {
3389
+ id: T;
3390
+ isSame?: (other: Identity<T>) => boolean;
3391
+ };
3392
+ declare const Identity: (<T>(value: T) => Identity<T>) & {
3393
+ /**
3394
+ * Creates an Identity. Alias for Identity constructor.
3395
+ * @param value - The value to wrap
3396
+ * @returns Identity instance
3397
+ */
3398
+ of: <T>(value: T) => Identity<T>;
3399
+ /**
3400
+ * Creates an Identity. Same as of.
3401
+ * @param value - The value to wrap
3402
+ * @returns Identity instance
3403
+ */
3404
+ pure: <T>(value: T) => Identity<T>;
3405
+ };
3406
+ //#endregion
3311
3407
  //#region src/lazy/Lazy.d.ts
3312
3408
  /**
3313
3409
  * Lazy type module
@@ -3574,12 +3670,22 @@ interface Traversable<A extends Type> extends AsyncMonad<A> {
3574
3670
  reduceRight(f: (b: A, a: A) => A): A;
3575
3671
  }
3576
3672
  //#endregion
3577
- //#region src/map/Map.d.ts
3673
+ //#region src/traversable/KVTraversable.d.ts
3578
3674
  /**
3579
- * A traversable interface for map that excludes map and flatMap operations
3675
+ * A traversable interface for key-value containers that excludes map, flatMap,
3676
+ * flatMapAsync, and ap operations.
3677
+ *
3678
+ * Key-value containers (Map, Obj) cannot satisfy Functor's unconstrained
3679
+ * `map<B extends Type>` because their type parameter is constrained
3680
+ * (e.g., to Record or Tuple pairs). These containers redefine map/flatMap
3681
+ * with their own tighter constraints.
3682
+ *
3683
+ * @typeParam A - The element type of the traversable
3580
3684
  */
3581
- type SafeTraversable<K, V> = Omit<Traversable<Tuple<[K, V]>>, "map" | "flatMap" | "flatMapAsync" | "ap">;
3582
- interface Map$1<K, V> extends SafeTraversable<K, V>, Collection<Tuple<[K, V]>>, Typeable<"Map">, Serializable<[K, V][]>, Pipe<[K, V][]>, Foldable<Tuple<[K, V]>>, Iterable<[K, V]> {
3685
+ type KVTraversable<A> = Omit<Traversable<A>, "map" | "flatMap" | "flatMapAsync" | "ap">;
3686
+ //#endregion
3687
+ //#region src/map/Map.d.ts
3688
+ interface Map$1<K, V> extends KVTraversable<Tuple<[K, V]>>, Collection<Tuple<[K, V]>>, Typeable<"Map">, Serializable<[K, V][]>, Pipe<[K, V][]>, Foldable<Tuple<[K, V]>>, Iterable<[K, V]> {
3583
3689
  readonly [Symbol.toStringTag]: string;
3584
3690
  readonly _tag: "Map";
3585
3691
  add(item: Tuple<[K, V]>): Map$1<K, V>;
@@ -3696,6 +3802,191 @@ declare const MatchableUtils: {
3696
3802
  when: <A, R>(predicate: (value: A) => boolean, handler: (value: A) => R) => (value: A) => R | undefined;
3697
3803
  };
3698
3804
  //#endregion
3805
+ //#region src/obj/Obj.d.ts
3806
+ /**
3807
+ * Obj type module
3808
+ * @module Obj
3809
+ * @category Core
3810
+ */
3811
+ /**
3812
+ * The Obj type wraps a plain JavaScript object and provides fluent,
3813
+ * immutable operations for building and transforming objects.
3814
+ *
3815
+ * @typeParam T - The record type of the contained object
3816
+ *
3817
+ * @example
3818
+ * ```typescript
3819
+ * // Build HTTP headers immutably with conditional auth
3820
+ * const headers = Obj({ "User-Agent": userAgent })
3821
+ * .assign(options.headers)
3822
+ * .when(requiresAuth, { Authorization: `Bearer ${token}` })
3823
+ * .value()
3824
+ *
3825
+ * // Fluent object construction
3826
+ * Obj.of({ name: "John" })
3827
+ * .set("age", 31)
3828
+ * .merge({ city: "NYC" })
3829
+ * .value()
3830
+ * ```
3831
+ */
3832
+ interface Obj<T extends Record<string, Type>> extends Omit<Functype<T, "Obj">, "map" | "flatMap" | "flatMapAsync" | "ap">, Promisable<T>, Doable<T>, Reshapeable<T> {
3833
+ /** The contained object value */
3834
+ readonly data: T;
3835
+ /**
3836
+ * Maps the contained object to a new object using the provided function
3837
+ * @param f - The mapping function (must return a Record)
3838
+ * @returns A new Obj containing the mapped value
3839
+ */
3840
+ map<U extends Record<string, Type>>(f: (value: T) => U): Obj<U>;
3841
+ /**
3842
+ * FlatMaps the contained object using a function that returns an Obj
3843
+ * @param f - The flatMap function
3844
+ * @returns The Obj returned by f
3845
+ */
3846
+ flatMap<U extends Record<string, Type>>(f: (value: T) => Obj<U>): Obj<U>;
3847
+ /**
3848
+ * Async flatMap for the contained object
3849
+ * @param f - The async flatMap function
3850
+ * @returns A Promise of the Obj returned by f
3851
+ */
3852
+ flatMapAsync<U extends Record<string, Type>>(f: (value: T) => PromiseLike<Obj<U>>): PromiseLike<Obj<U>>;
3853
+ /**
3854
+ * Applies a wrapped function to the contained object
3855
+ * @param ff - An Obj containing a function from T to U
3856
+ * @returns A new Obj containing the result
3857
+ */
3858
+ ap<U extends Record<string, Type>>(ff: Obj<Record<string, Type>>): Obj<U>;
3859
+ /**
3860
+ * Get a value by key, returning Option
3861
+ * @param key - The key to look up
3862
+ * @returns Option containing the value if present
3863
+ */
3864
+ get<K extends keyof T>(key: K): Option<T[K]>;
3865
+ /**
3866
+ * Set a single key to a new value, returning a new Obj
3867
+ * @param key - The key to set (must exist in T)
3868
+ * @param value - The value to set
3869
+ * @returns A new Obj with the updated key
3870
+ */
3871
+ set<K extends keyof T>(key: K, value: T[K]): Obj<T>;
3872
+ /**
3873
+ * Merge a partial of the same shape (no new keys)
3874
+ * @param partial - Partial object to merge
3875
+ * @returns A new Obj with merged values
3876
+ */
3877
+ assign(partial: Partial<T>): Obj<T>;
3878
+ /**
3879
+ * Merge with a potentially wider type (can add new keys)
3880
+ * @param other - Object to merge in
3881
+ * @returns A new Obj with the merged type
3882
+ */
3883
+ merge<U extends Record<string, Type>>(other: U): Obj<T & U>;
3884
+ /**
3885
+ * Conditionally merge a partial based on a boolean or predicate
3886
+ * @param condition - Boolean or predicate function
3887
+ * @param partial - Partial to merge if condition is true
3888
+ * @returns A new Obj, with or without the merge applied
3889
+ */
3890
+ when(condition: boolean | (() => boolean), partial: Partial<T>): Obj<T>;
3891
+ /**
3892
+ * Return a new Obj without the specified keys
3893
+ * @param keys - Keys to remove
3894
+ * @returns A new Obj without the specified keys
3895
+ */
3896
+ omit<K extends keyof T>(...keys: K[]): Obj<Omit<T, K>>;
3897
+ /**
3898
+ * Return a new Obj with only the specified keys
3899
+ * @param keys - Keys to keep
3900
+ * @returns A new Obj with only the specified keys
3901
+ */
3902
+ pick<K extends keyof T>(...keys: K[]): Obj<Pick<T, K>>;
3903
+ /**
3904
+ * Return a List of keys
3905
+ * @returns List of string keys
3906
+ */
3907
+ keys(): List<string>;
3908
+ /**
3909
+ * Return a List of values
3910
+ * @returns List of values
3911
+ */
3912
+ values(): List<T[keyof T]>;
3913
+ /**
3914
+ * Return a List of [key, value] Tuples
3915
+ * @returns List of key-value Tuples
3916
+ */
3917
+ entries(): List<ReturnType<typeof Tuple<[string, T[keyof T]]>>>;
3918
+ /**
3919
+ * Unwrap to the plain object
3920
+ * @returns The contained plain object
3921
+ */
3922
+ value(): T;
3923
+ /**
3924
+ * Check if a key exists
3925
+ * @param key - The key to check
3926
+ * @returns true if the key exists
3927
+ */
3928
+ has<K extends keyof T>(key: K): boolean;
3929
+ /**
3930
+ * Pattern match fold — applies onEmpty if empty, onValue if non-empty
3931
+ * @param onEmpty - Handler for empty Obj
3932
+ * @param onValue - Handler for non-empty Obj
3933
+ * @returns The result of the matching handler
3934
+ */
3935
+ fold<U extends Type>(onEmpty: () => U, onValue: (value: T) => U): U;
3936
+ /**
3937
+ * Returns a string representation of this Obj
3938
+ * @returns A string representation
3939
+ */
3940
+ toString(): string;
3941
+ }
3942
+ /**
3943
+ * Obj - Immutable object wrapper with fluent operations.
3944
+ *
3945
+ * Wraps plain JavaScript objects and provides chainable, immutable
3946
+ * operations for building and transforming them. Implements the full
3947
+ * Functype interface (Functor, Foldable, Serializable, Matchable, etc.).
3948
+ *
3949
+ * @example
3950
+ * ```typescript
3951
+ * // Build headers with conditional auth
3952
+ * const headers = Obj({ "User-Agent": "MyApp/1.0" })
3953
+ * .assign(options.headers)
3954
+ * .when(requiresAuth, { Authorization: `Bearer ${token}` })
3955
+ * .value()
3956
+ *
3957
+ * // Object manipulation
3958
+ * const user = Obj({ name: "John", age: 30, role: "admin" })
3959
+ * user.pick("name", "role").value() // { name: "John", role: "admin" }
3960
+ * user.omit("role").value() // { name: "John", age: 30 }
3961
+ * user.get("name") // Some("John")
3962
+ * ```
3963
+ */
3964
+ declare const Obj: (<T extends Record<string, Type>>(data: T) => Obj<T>) & {
3965
+ /**
3966
+ * Creates an Obj from a plain object. Alias for Obj().
3967
+ * @param data - The plain object to wrap
3968
+ * @returns A new Obj instance
3969
+ */
3970
+ of: <T extends Record<string, Type>>(data: T) => Obj<T>;
3971
+ /**
3972
+ * Creates an empty Obj.
3973
+ * @returns An empty Obj instance
3974
+ */
3975
+ empty: <T extends Record<string, Type>>() => Obj<T>;
3976
+ /**
3977
+ * Deserializes an Obj from a JSON string.
3978
+ * @param json - The JSON string to parse
3979
+ * @returns A new Obj instance
3980
+ */
3981
+ fromJSON: <T extends Record<string, Type>>(json: string) => Obj<T>;
3982
+ /**
3983
+ * Deserializes an Obj from a base64-encoded binary string.
3984
+ * @param binary - The base64 string to decode
3985
+ * @returns A new Obj instance
3986
+ */
3987
+ fromBinary: <T extends Record<string, Type>>(binary: string) => Obj<T>;
3988
+ };
3989
+ //#endregion
3699
3990
  //#region src/ref/Ref.d.ts
3700
3991
  /**
3701
3992
  * A mutable reference container that holds a value of type A.
@@ -4745,4 +5036,4 @@ interface FailureErrorType extends Error {
4745
5036
  }
4746
5037
  declare const FailureError: (cause: Error, message?: string) => FailureErrorType;
4747
5038
  //#endregion
4748
- export { TestClockTag as $, TaskFailure as $t, OptionConstructor as A, ValidatedBrand as An, ValidationRule as At, fromBinary as B, ContainerOps as Bn, TaskErrorInfo as Bt, Functype as C, NonEmptyString as Cn, OptionKind as Ct, List as D, PositiveNumber as Dn, FieldValidation as Dt, Collection as E, PositiveInteger as En, FoldableUtils as Et, Set as F, Applicative as Fn, TypedError as Ft, MatchableUtils as G, Doable as Gn, Async as Gt, fromYAML as H, Extractable as Hn, formatError as Ht, SerializationResult as I, AsyncMonad as In, TypedErrorContext as It, Map$1 as J, Err as Jt, ESMap as K, ParseError as Kn, CancellationToken as Kt, createCustomSerializer as L, Functor as Ln, ErrorChainElement as Lt, Stack as M, Try as Mn, ErrorCode as Mt, Valuable as N, TypeNames as Nn, ErrorMessage as Nt, None as O, UUID as On, FormValidation as Ot, ValuableParams as P, Promisable as Pn, ErrorStatus as Pt, TestClock as Q, Task$1 as Qt, createSerializationCompanion as R, Monad as Rn, ErrorFormatterOptions as Rt, tryCatchAsync as S, IntegerNumber as Sn, ListKind as St, FunctypeCollection as T, PatternString as Tn, UniversalContainer as Tt, Ref as U, isExtractable as Un, formatStackTrace as Ut, fromJSON as V, LazyList as Vn, createErrorSerializer as Vt, Matchable as W, DoResult as Wn, safeStringify as Wt, Traversable as X, Sync as Xt, SafeTraversable as Y, Ok as Yt, Lazy as Z, TaggedThrowable as Zt, TypeCheckLeft as _, Companion as _n, TagService as _t, EmptyListError as a, createCancellationTokenSource as an, TimeoutError as at, isRight as b, EmailAddress as bn, HKT as bt, LeftError as c, Throwable as cn, LayerError as ct, isDoCapable as d, Match as dn, Exit as dt, TaskMetadata as en, TestContext as et, unwrap as f, UntypedMatch as fn, ExitTag as ft, TestEither as g, isCompanion as gn, Tag as gt, Right as h, InstanceType as hn, HasService as ht, DoGenerator as i, TaskSuccess as in, Task as it, Some as j, ValidatedBrandCompanion as jn, Validator as jt, Option as k, UrlString as kn, Validation as kt, LeftErrorType as l, ThrowableType as ln, LayerInput as lt, Left as m, CompanionMethods as mn, ContextServices as mt, Do as n, TaskParams as nn, InterruptedError as nt, FailureError as o, isTaggedThrowable as on, UIO as ot, Either as p, Cond as pn, Context as pt, ESMapType as q, CancellationTokenSource as qt, DoAsync as r, TaskResult as rn, RIO as rt, FailureErrorType as s, NAME as sn, Layer as st, $ as t, TaskOutcome as tn, IO as tt, NoneError as u, Base as un, LayerOutput as ut, TypeCheckRight as v, BoundedNumber as vn, Identity as vt, FunctypeBase as w, NonNegativeNumber as wn, TryKind as wt, tryCatch as x, ISO8601Date as xn, Kind as xt, isLeft as y, BoundedString as yn, EitherKind as yt, createSerializer as z, CollectionOps as zn, ErrorWithTaskInfo as zt };
5039
+ export { Identity as $, ContainerOps as $n, TaskErrorInfo as $t, OptionConstructor as A, Companion as An, LayerError as At, fromBinary as B, PositiveNumber as Bn, FieldValidation as Bt, Functype as C, Base as Cn, IO as Ct, List as D, CompanionMethods as Dn, TimeoutError as Dt, Collection as E, Cond as En, Task as Et, Set as F, IntegerNumber as Fn, Context as Ft, Matchable as G, Try as Gn, ErrorCode as Gt, fromYAML as H, UrlString as Hn, Validation as Ht, SerializationResult as I, NonEmptyString as In, ContextServices as It, ESMapType as J, Applicative as Jn, TypedError as Jt, MatchableUtils as K, TypeNames as Kn, ErrorMessage as Kt, createCustomSerializer as L, NonNegativeNumber as Ln, HasService as Lt, Stack as M, BoundedString as Mn, LayerOutput as Mt, Valuable as N, EmailAddress as Nn, Exit as Nt, None as O, InstanceType as On, UIO as Ot, ValuableParams as P, ISO8601Date as Pn, ExitTag as Pt, Lazy as Q, CollectionOps as Qn, ErrorWithTaskInfo as Qt, createSerializationCompanion as R, PatternString as Rn, Tag as Rt, tryCatchAsync as S, ThrowableType as Sn, TestContext as St, FunctypeCollection as T, UntypedMatch as Tn, RIO as Tt, Ref as U, ValidatedBrand as Un, ValidationRule as Ut, fromJSON as V, UUID as Vn, FormValidation as Vt, Obj as W, ValidatedBrandCompanion as Wn, Validator as Wt, KVTraversable as X, Functor as Xn, ErrorChainElement as Xt, Map$1 as Y, AsyncMonad as Yn, TypedErrorContext as Yt, Traversable as Z, Monad as Zn, ErrorFormatterOptions as Zt, TypeCheckLeft as _, TaskSuccess as _n, NetworkError as _t, EmptyListError as a, CancellationToken as an, ParseError as ar, TryKind as at, isRight as b, NAME as bn, TestClock as bt, LeftError as c, Ok as cn, Http as ct, isDoCapable as d, Task$1 as dn, HttpResponse as dt, createErrorSerializer as en, LazyList as er, EitherKind as et, unwrap as f, TaskFailure as fn, ParseMode as ft, TestEither as g, TaskResult as gn, HttpStatusError as gt, Right as h, TaskParams as hn, HttpMethod as ht, DoGenerator as i, Async as in, Doable as ir, OptionKind as it, Some as j, BoundedNumber as jn, LayerInput as jt, Option as k, isCompanion as kn, Layer as kt, LeftErrorType as l, Sync as ln, HttpMethodOptions as lt, Left as m, TaskOutcome as mn, HttpError as mt, Do as n, formatStackTrace as nn, isExtractable as nr, Kind as nt, FailureError as o, CancellationTokenSource as on, UniversalContainer as ot, Either as p, TaskMetadata as pn, DecodeError as pt, ESMap as q, Promisable as qn, ErrorStatus as qt, DoAsync as r, safeStringify as rn, DoResult as rr, ListKind as rt, FailureErrorType as s, Err as sn, FoldableUtils as st, $ as t, formatError as tn, Extractable as tr, HKT as tt, NoneError as u, TaggedThrowable as un, HttpRequestOptions as ut, TypeCheckRight as v, createCancellationTokenSource as vn, HttpClient as vt, FunctypeBase as w, Match as wn, InterruptedError as wt, tryCatch as x, Throwable as xn, TestClockTag as xt, isLeft as y, isTaggedThrowable as yn, HttpClientConfig as yt, createSerializer as z, PositiveInteger as zn, TagService as zt };
package/dist/index.d.ts CHANGED
@@ -1,4 +1,4 @@
1
1
  import { a as ExtractBrand, c as hasBrand, i as BrandedString, l as unwrapBrand, n as BrandedBoolean, o as Unwrap, r as BrandedNumber, s as createBrander, t as Brand } from "./Brand-BJIRbUKB.js";
2
- import { $ as TestClockTag, $t as TaskFailure, A as OptionConstructor, An as ValidatedBrand, At as ValidationRule, B as fromBinary, Bn as ContainerOps, Bt as TaskErrorInfo, C as Functype, Cn as NonEmptyString, Ct as OptionKind, D as List, Dn as PositiveNumber, Dt as FieldValidation, E as Collection, En as PositiveInteger, Et as FoldableUtils, F as Set, Fn as Applicative, Ft as TypedError, G as MatchableUtils, Gn as Doable, Gt as Async, H as fromYAML, Hn as Extractable, Ht as formatError, I as SerializationResult, In as AsyncMonad, It as TypedErrorContext, J as Map, Jt as Err, K as ESMap, Kn as ParseError, Kt as CancellationToken, L as createCustomSerializer, Ln as Functor, Lt as ErrorChainElement, M as Stack, Mn as Try, Mt as ErrorCode, N as Valuable, Nn as TypeNames, Nt as ErrorMessage, O as None, On as UUID, Ot as FormValidation, P as ValuableParams, Pn as Promisable, Pt as ErrorStatus, Q as TestClock, Qt as Task$1, R as createSerializationCompanion, Rn as Monad, Rt as ErrorFormatterOptions, S as tryCatchAsync, Sn as IntegerNumber, St as ListKind, T as FunctypeCollection, Tn as PatternString, Tt as UniversalContainer, U as Ref, Un as isExtractable, Ut as formatStackTrace, V as fromJSON, Vn as LazyList, Vt as createErrorSerializer, W as Matchable, Wn as DoResult, Wt as safeStringify, X as Traversable, Xt as Sync, Y as SafeTraversable, Yt as Ok, Z as Lazy, Zt as TaggedThrowable, _ as TypeCheckLeft, _n as Companion, _t as TagService, a as EmptyListError, an as createCancellationTokenSource, at as TimeoutError, b as isRight, bn as EmailAddress, bt as HKT, c as LeftError, cn as Throwable, ct as LayerError, d as isDoCapable, dn as Match, dt as Exit, en as TaskMetadata, et as TestContext, f as unwrap, fn as UntypedMatch, ft as ExitTag, g as TestEither, gn as isCompanion, gt as Tag, h as Right, hn as InstanceType, ht as HasService, i as DoGenerator, in as TaskSuccess, it as Task, j as Some, jn as ValidatedBrandCompanion, jt as Validator, k as Option, kn as UrlString, kt as Validation, l as LeftErrorType, ln as ThrowableType, lt as LayerInput, m as Left, mn as CompanionMethods, mt as ContextServices, n as Do, nn as TaskParams, nt as InterruptedError, o as FailureError, on as isTaggedThrowable, ot as UIO, p as Either, pn as Cond, pt as Context, q as ESMapType, qt as CancellationTokenSource, r as DoAsync, rn as TaskResult, rt as RIO, s as FailureErrorType, sn as NAME, st as Layer, t as $, tn as TaskOutcome, tt as IO, u as NoneError, un as Base, ut as LayerOutput, v as TypeCheckRight, vn as BoundedNumber, vt as Identity, w as FunctypeBase, wn as NonNegativeNumber, wt as TryKind, x as tryCatch, xn as ISO8601Date, xt as Kind, y as isLeft, yn as BoundedString, yt as EitherKind, z as createSerializer, zn as CollectionOps, zt as ErrorWithTaskInfo } from "./index-B5zYifBQ.js";
2
+ import { $ as Identity, $n as ContainerOps, $t as TaskErrorInfo, A as OptionConstructor, An as Companion, At as LayerError, B as fromBinary, Bn as PositiveNumber, Bt as FieldValidation, C as Functype, Cn as Base, Ct as IO, D as List, Dn as CompanionMethods, Dt as TimeoutError, E as Collection, En as Cond, Et as Task, F as Set, Fn as IntegerNumber, Ft as Context, G as Matchable, Gn as Try, Gt as ErrorCode, H as fromYAML, Hn as UrlString, Ht as Validation, I as SerializationResult, In as NonEmptyString, It as ContextServices, J as ESMapType, Jn as Applicative, Jt as TypedError, K as MatchableUtils, Kn as TypeNames, Kt as ErrorMessage, L as createCustomSerializer, Ln as NonNegativeNumber, Lt as HasService, M as Stack, Mn as BoundedString, Mt as LayerOutput, N as Valuable, Nn as EmailAddress, Nt as Exit, O as None, On as InstanceType, Ot as UIO, P as ValuableParams, Pn as ISO8601Date, Pt as ExitTag, Q as Lazy, Qn as CollectionOps, Qt as ErrorWithTaskInfo, R as createSerializationCompanion, Rn as PatternString, Rt as Tag, S as tryCatchAsync, Sn as ThrowableType, St as TestContext, T as FunctypeCollection, Tn as UntypedMatch, Tt as RIO, U as Ref, Un as ValidatedBrand, Ut as ValidationRule, V as fromJSON, Vn as UUID, Vt as FormValidation, W as Obj, Wn as ValidatedBrandCompanion, Wt as Validator, X as KVTraversable, Xn as Functor, Xt as ErrorChainElement, Y as Map, Yn as AsyncMonad, Yt as TypedErrorContext, Z as Traversable, Zn as Monad, Zt as ErrorFormatterOptions, _ as TypeCheckLeft, _n as TaskSuccess, _t as NetworkError, a as EmptyListError, an as CancellationToken, ar as ParseError, at as TryKind, b as isRight, bn as NAME, bt as TestClock, c as LeftError, cn as Ok, ct as Http, d as isDoCapable, dn as Task$1, dt as HttpResponse, en as createErrorSerializer, er as LazyList, et as EitherKind, f as unwrap, fn as TaskFailure, ft as ParseMode, g as TestEither, gn as TaskResult, gt as HttpStatusError, h as Right, hn as TaskParams, ht as HttpMethod, i as DoGenerator, in as Async, ir as Doable, it as OptionKind, j as Some, jn as BoundedNumber, jt as LayerInput, k as Option, kn as isCompanion, kt as Layer, l as LeftErrorType, ln as Sync, lt as HttpMethodOptions, m as Left, mn as TaskOutcome, mt as HttpError, n as Do, nn as formatStackTrace, nr as isExtractable, nt as Kind, o as FailureError, on as CancellationTokenSource, ot as UniversalContainer, p as Either, pn as TaskMetadata, pt as DecodeError, q as ESMap, qn as Promisable, qt as ErrorStatus, r as DoAsync, rn as safeStringify, rr as DoResult, rt as ListKind, s as FailureErrorType, sn as Err, st as FoldableUtils, t as $, tn as formatError, tr as Extractable, tt as HKT, u as NoneError, un as TaggedThrowable, ut as HttpRequestOptions, v as TypeCheckRight, vn as createCancellationTokenSource, vt as HttpClient, w as FunctypeBase, wn as Match, wt as InterruptedError, x as tryCatch, xn as Throwable, xt as TestClockTag, y as isLeft, yn as isTaggedThrowable, yt as HttpClientConfig, z as createSerializer, zn as PositiveInteger, zt as TagService } from "./index-Di7IFeuy.js";
3
3
  import { a as isTypeable, c as Pipe, i as TypeableParams, l as Foldable, n as ExtractTag, o as Serializable, r as Typeable, s as SerializationMethods, t as Tuple, u as Type } from "./Tuple-DwyoW0ZP.js";
4
- export { $, Applicative, Async, AsyncMonad, Base, BoundedNumber, BoundedString, Brand, BrandedBoolean, BrandedBoolean as BrandedBooleanType, BrandedNumber, BrandedNumber as BrandedNumberType, BrandedString, BrandedString as BrandedStringType, CancellationToken, CancellationTokenSource, Collection, CollectionOps, Companion, CompanionMethods, Cond, ContainerOps, Context, Context as ContextType, ContextServices, Do, DoAsync, DoGenerator, DoResult, Doable, ESMap, ESMapType, Either, EitherKind, EmailAddress, EmptyListError, Err, ErrorChainElement, ErrorCode, ErrorFormatterOptions, ErrorMessage, ErrorStatus, ErrorWithTaskInfo, Exit, Exit as ExitType, ExitTag, ExtractBrand, ExtractTag, Extractable, FailureError, FailureErrorType, FieldValidation, Foldable, FoldableUtils, FormValidation, Functor, Functype, FunctypeBase, FunctypeCollection, HKT, HasService, IO, IO as IOType, Task as IOTask, ISO8601Date, Identity, InstanceType, IntegerNumber, InterruptedError, Kind, Layer, Layer as LayerType, LayerError, LayerInput, LayerOutput, Lazy, Lazy as LazyType, LazyList, Left, LeftError, LeftErrorType, List, ListKind, Map, Match, Matchable, MatchableUtils, Monad, NAME, NonEmptyString, NonNegativeNumber, None, NoneError, Ok, Option, OptionConstructor, OptionKind, ParseError, PatternString, Pipe, PositiveInteger, PositiveNumber, Promisable, RIO, Ref, Ref as RefType, Right, SafeTraversable, Serializable, SerializationMethods, SerializationResult, Set, Some, Stack, Sync, Tag, Tag as TagType, TagService, TaggedThrowable, Task$1 as Task, TaskErrorInfo, TaskFailure, TaskMetadata, TaskOutcome, TaskParams, TaskResult, TaskSuccess, TestClock, TestClock as TestClockType, TestClockTag, TestContext, TestContext as TestContextType, TestEither, Throwable, ThrowableType, TimeoutError, Traversable, Try, TryKind, Tuple, Type, TypeCheckLeft, TypeCheckRight, TypeNames, Typeable, TypeableParams, TypedError, TypedErrorContext, UIO, UUID, UniversalContainer, UntypedMatch, Unwrap, UrlString, ValidatedBrand, ValidatedBrand as ValidatedBrandType, ValidatedBrandCompanion, Validation, ValidationRule, Validator, Valuable, ValuableParams, createBrander, createCancellationTokenSource, createCustomSerializer, createErrorSerializer, createSerializationCompanion, createSerializer, formatError, formatStackTrace, fromBinary, fromJSON, fromYAML, hasBrand, isCompanion, isDoCapable, isExtractable, isLeft, isRight, isTaggedThrowable, isTypeable, safeStringify, tryCatch, tryCatchAsync, unwrap, unwrapBrand };
4
+ export { $, Applicative, Async, AsyncMonad, Base, BoundedNumber, BoundedString, Brand, BrandedBoolean, BrandedBoolean as BrandedBooleanType, BrandedNumber, BrandedNumber as BrandedNumberType, BrandedString, BrandedString as BrandedStringType, CancellationToken, CancellationTokenSource, Collection, CollectionOps, Companion, CompanionMethods, Cond, ContainerOps, Context, Context as ContextType, ContextServices, DecodeError, Do, DoAsync, DoGenerator, DoResult, Doable, ESMap, ESMapType, Either, EitherKind, EmailAddress, EmptyListError, Err, ErrorChainElement, ErrorCode, ErrorFormatterOptions, ErrorMessage, ErrorStatus, ErrorWithTaskInfo, Exit, Exit as ExitType, ExitTag, ExtractBrand, ExtractTag, Extractable, FailureError, FailureErrorType, FieldValidation, Foldable, FoldableUtils, FormValidation, Functor, Functype, FunctypeBase, FunctypeCollection, HKT, HasService, Http, HttpClient, HttpClientConfig, HttpError, HttpError as HttpErrors, HttpMethod, HttpMethodOptions, HttpRequestOptions, HttpResponse, HttpStatusError, IO, IO as IOType, Task as IOTask, ISO8601Date, Identity, InstanceType, IntegerNumber, InterruptedError, KVTraversable, Kind, Layer, Layer as LayerType, LayerError, LayerInput, LayerOutput, Lazy, Lazy as LazyType, LazyList, Left, LeftError, LeftErrorType, List, ListKind, Map, Match, Matchable, MatchableUtils, Monad, NAME, NetworkError, NonEmptyString, NonNegativeNumber, None, NoneError, Obj, Ok, Option, OptionConstructor, OptionKind, ParseError, ParseMode, PatternString, Pipe, PositiveInteger, PositiveNumber, Promisable, RIO, Ref, Ref as RefType, Right, Serializable, SerializationMethods, SerializationResult, Set, Some, Stack, Sync, Tag, Tag as TagType, TagService, TaggedThrowable, Task$1 as Task, TaskErrorInfo, TaskFailure, TaskMetadata, TaskOutcome, TaskParams, TaskResult, TaskSuccess, TestClock, TestClock as TestClockType, TestClockTag, TestContext, TestContext as TestContextType, TestEither, Throwable, ThrowableType, TimeoutError, Traversable, Try, TryKind, Tuple, Type, TypeCheckLeft, TypeCheckRight, TypeNames, Typeable, TypeableParams, TypedError, TypedErrorContext, UIO, UUID, UniversalContainer, UntypedMatch, Unwrap, UrlString, ValidatedBrand, ValidatedBrand as ValidatedBrandType, ValidatedBrandCompanion, Validation, ValidationRule, Validator, Valuable, ValuableParams, createBrander, createCancellationTokenSource, createCustomSerializer, createErrorSerializer, createSerializationCompanion, createSerializer, formatError, formatStackTrace, fromBinary, fromJSON, fromYAML, hasBrand, isCompanion, isDoCapable, isExtractable, isLeft, isRight, isTaggedThrowable, isTypeable, safeStringify, tryCatch, tryCatchAsync, unwrap, unwrapBrand };