functype 0.8.61 → 0.8.62
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.
- package/dist/Map-BNxKlujn.mjs +46 -0
- package/dist/Map-BNxKlujn.mjs.map +1 -0
- package/dist/branded/Brand.d.ts +46 -0
- package/dist/branded/index.d.ts +1 -48
- package/dist/branded/index.mjs +23 -2
- package/dist/branded/index.mjs.map +1 -1
- package/dist/collections/index.d.ts +8 -0
- package/dist/companion/Companion.d.ts +23 -0
- package/dist/companion/index.d.ts +1 -0
- package/dist/core/base/Base.d.ts +10 -0
- package/dist/core/base/index.d.ts +1 -0
- package/dist/core/index.d.ts +4 -0
- package/dist/core/info/Info.d.ts +26 -0
- package/dist/core/info/index.d.ts +1 -0
- package/dist/core/task/Task.d.ts +57 -0
- package/dist/core/task/index.d.ts +1 -0
- package/dist/core/throwable/Throwable.d.ts +18 -0
- package/dist/core/throwable/index.d.ts +1 -0
- package/dist/either/Either.d.ts +57 -0
- package/dist/either/index.d.ts +1 -3
- package/dist/either/index.mjs +13 -2
- package/dist/either/index.mjs.map +1 -1
- package/dist/error/ParseError.d.ts +6 -0
- package/dist/error/index.d.ts +1 -0
- package/dist/fpromise/FPromise.d.ts +369 -0
- package/dist/fpromise/index.d.ts +2 -3
- package/dist/fpromise/index.mjs +6 -2
- package/dist/fpromise/index.mjs.map +1 -1
- package/dist/fpromise/retry.d.ts +106 -0
- package/dist/functor/index.d.ts +18 -0
- package/dist/hkt/index.d.ts +49 -0
- package/dist/identity/Identity.d.ts +5 -0
- package/dist/identity/index.d.ts +1 -0
- package/dist/index-CgMYHgdG.mjs +1286 -0
- package/dist/index-CgMYHgdG.mjs.map +1 -0
- package/dist/index.d.ts +28 -3
- package/dist/index.mjs +174 -2
- package/dist/index.mjs.map +1 -1
- package/dist/iterable/index.d.ts +25 -0
- package/dist/list/List.d.ts +45 -0
- package/dist/list/index.d.ts +1 -3
- package/dist/list/index.mjs +5 -2
- package/dist/list/index.mjs.map +1 -1
- package/dist/map/Map.d.ts +19 -0
- package/dist/map/index.d.ts +2 -3
- package/dist/map/index.mjs +7 -2
- package/dist/map/index.mjs.map +1 -1
- package/dist/map/shim.d.ts +2 -0
- package/dist/option/Option.d.ts +164 -0
- package/dist/option/index.d.ts +1 -870
- package/dist/option/index.mjs +7 -2
- package/dist/option/index.mjs.map +1 -1
- package/dist/serializable/Serializable.d.ts +15 -0
- package/dist/serializable/index.d.ts +1 -0
- package/dist/set/Set.d.ts +16 -0
- package/dist/set/index.d.ts +2 -3
- package/dist/set/index.mjs +5 -2
- package/dist/set/index.mjs.map +1 -1
- package/dist/set/shim.d.ts +2 -0
- package/dist/try/Try.d.ts +20 -0
- package/dist/try/index.d.ts +1 -3
- package/dist/try/index.mjs +44 -2
- package/dist/try/index.mjs.map +1 -1
- package/dist/tuple/Tuple.d.ts +11 -0
- package/dist/tuple/index.d.ts +1 -1
- package/dist/tuple/index.mjs +27 -2
- package/dist/tuple/index.mjs.map +1 -1
- package/dist/typeable/Typeable.d.ts +10 -0
- package/dist/typeable/index.d.ts +1 -0
- package/dist/util/index.d.ts +3 -0
- package/dist/util/isIterable.d.ts +1 -0
- package/dist/valuable/Valuable.d.ts +13 -0
- package/dist/valuable/index.d.ts +1 -0
- package/package.json +7 -6
- package/dist/Tuple-GXgoHfiN.d.ts +0 -54
- package/dist/chunk-A3EHNBZM.mjs +0 -2
- package/dist/chunk-A3EHNBZM.mjs.map +0 -1
- package/dist/chunk-OQWAJKZJ.mjs +0 -2
- package/dist/chunk-OQWAJKZJ.mjs.map +0 -1
- package/dist/chunk-TQJDL6YW.mjs +0 -2
- package/dist/chunk-TQJDL6YW.mjs.map +0 -1
package/dist/option/index.mjs
CHANGED
|
@@ -1,2 +1,7 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
import { N as e, O as s, S as m } from "../index-CgMYHgdG.mjs";
|
|
2
|
+
export {
|
|
3
|
+
e as None,
|
|
4
|
+
s as Option,
|
|
5
|
+
m as Some
|
|
6
|
+
};
|
|
7
|
+
//# sourceMappingURL=index.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":[],"
|
|
1
|
+
{"version":3,"file":"index.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
export type SerializableTypes = "json" | "yaml";
|
|
2
|
+
type SerializationMethods<T> = {
|
|
3
|
+
json: {
|
|
4
|
+
toJSON(): string;
|
|
5
|
+
fromJSON(json: string): T;
|
|
6
|
+
};
|
|
7
|
+
yaml: {
|
|
8
|
+
toYAML(): string;
|
|
9
|
+
fromYAML(yaml: string): T;
|
|
10
|
+
};
|
|
11
|
+
};
|
|
12
|
+
export type Serializable<STypes extends SerializableTypes[], T> = T & (STypes extends [] ? NonNullable<unknown> : STypes extends [infer First, ...infer Rest] ? First extends keyof SerializationMethods<T> ? SerializationMethods<T>[First] & Serializable<Rest extends SerializableTypes[] ? Rest : [], T> : never : never);
|
|
13
|
+
export type SupportedSerializationTypes<T> = T extends Serializable<infer Types, never> ? Types : never;
|
|
14
|
+
export declare function createSerializable<STypes extends SerializableTypes[], T>(obj: T, serializationMethods: Pick<SerializationMethods<T>, STypes[number]>): Serializable<STypes, T>;
|
|
15
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './Serializable';
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { Collection } from '../collections';
|
|
2
|
+
import { IterableType } from '../iterable';
|
|
3
|
+
import { List } from '../list/List';
|
|
4
|
+
import { Typeable } from '../typeable/Typeable';
|
|
5
|
+
export type Set<A> = {
|
|
6
|
+
add: (value: A) => Set<A>;
|
|
7
|
+
remove: (value: A) => Set<A>;
|
|
8
|
+
contains: (value: A) => boolean;
|
|
9
|
+
has: (value: A) => boolean;
|
|
10
|
+
map: <B>(f: (a: A) => B) => Set<B>;
|
|
11
|
+
flatMap: <B>(f: (a: A) => IterableType<B>) => Set<B>;
|
|
12
|
+
toList: () => List<A>;
|
|
13
|
+
toSet: () => Set<A>;
|
|
14
|
+
toString: () => string;
|
|
15
|
+
} & IterableType<A> & Collection<A> & Typeable<"Set">;
|
|
16
|
+
export declare const Set: <A>(iterable?: Iterable<A> | IterableType<A>) => Set<A>;
|
package/dist/set/index.d.ts
CHANGED
|
@@ -1,3 +1,2 @@
|
|
|
1
|
-
export
|
|
2
|
-
|
|
3
|
-
import '../branded/index.js';
|
|
1
|
+
export * from './Set';
|
|
2
|
+
export * from './shim';
|
package/dist/set/index.mjs
CHANGED
|
@@ -1,2 +1,5 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
import { f as o } from "../index-CgMYHgdG.mjs";
|
|
2
|
+
export {
|
|
3
|
+
o as Set
|
|
4
|
+
};
|
|
5
|
+
//# sourceMappingURL=index.mjs.map
|
package/dist/set/index.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":[],"
|
|
1
|
+
{"version":3,"file":"index.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { Either } from '../either/Either';
|
|
2
|
+
import { Typeable } from '../typeable/Typeable';
|
|
3
|
+
import { Valuable } from '../valuable/Valuable';
|
|
4
|
+
type TypeNames = "Success" | "Failure";
|
|
5
|
+
export type Try<T> = {
|
|
6
|
+
readonly _tag: TypeNames;
|
|
7
|
+
readonly error: Error | undefined;
|
|
8
|
+
isSuccess: () => boolean;
|
|
9
|
+
isFailure: () => boolean;
|
|
10
|
+
get: () => T;
|
|
11
|
+
getOrElse: (defaultValue: T) => T;
|
|
12
|
+
orElse: (alternative: Try<T>) => Try<T>;
|
|
13
|
+
orThrow: (error: Error) => T;
|
|
14
|
+
toEither: () => Either<Error, T>;
|
|
15
|
+
map: <U>(f: (value: T) => U) => Try<U>;
|
|
16
|
+
flatMap: <U>(f: (value: T) => Try<U>) => Try<U>;
|
|
17
|
+
toString: () => string;
|
|
18
|
+
} & Typeable<TypeNames> & Valuable<TypeNames, T | Error>;
|
|
19
|
+
export declare const Try: <T>(f: () => T) => Try<T>;
|
|
20
|
+
export {};
|
package/dist/try/index.d.ts
CHANGED
package/dist/try/index.mjs
CHANGED
|
@@ -1,2 +1,44 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
import { k as e, R as o, L as i } from "../index-CgMYHgdG.mjs";
|
|
2
|
+
const a = (t) => ({
|
|
3
|
+
_tag: "Success",
|
|
4
|
+
error: void 0,
|
|
5
|
+
isSuccess: () => !0,
|
|
6
|
+
isFailure: () => !1,
|
|
7
|
+
get: () => t,
|
|
8
|
+
getOrElse: (r) => t,
|
|
9
|
+
orElse: (r) => a(t),
|
|
10
|
+
orThrow: (r) => t,
|
|
11
|
+
toEither: () => o(t),
|
|
12
|
+
map: (r) => c(() => r(t)),
|
|
13
|
+
flatMap: (r) => r(t),
|
|
14
|
+
toString: () => `Success(${e(t)})`,
|
|
15
|
+
toValue: () => ({ _tag: "Success", value: t })
|
|
16
|
+
}), s = (t) => ({
|
|
17
|
+
_tag: "Failure",
|
|
18
|
+
error: t,
|
|
19
|
+
isSuccess: () => !1,
|
|
20
|
+
isFailure: () => !0,
|
|
21
|
+
get: () => {
|
|
22
|
+
throw t;
|
|
23
|
+
},
|
|
24
|
+
getOrElse: (r) => r,
|
|
25
|
+
orElse: (r) => r,
|
|
26
|
+
orThrow: (r) => {
|
|
27
|
+
throw r;
|
|
28
|
+
},
|
|
29
|
+
toEither: () => i(t),
|
|
30
|
+
map: (r) => s(t),
|
|
31
|
+
flatMap: (r) => s(t),
|
|
32
|
+
toString: () => `Failure(${e(t)}))`,
|
|
33
|
+
toValue: () => ({ _tag: "Failure", value: t })
|
|
34
|
+
}), c = (t) => {
|
|
35
|
+
try {
|
|
36
|
+
return a(t());
|
|
37
|
+
} catch (r) {
|
|
38
|
+
return s(r instanceof Error ? r : new Error(String(r)));
|
|
39
|
+
}
|
|
40
|
+
};
|
|
41
|
+
export {
|
|
42
|
+
c as Try
|
|
43
|
+
};
|
|
44
|
+
//# sourceMappingURL=index.mjs.map
|
package/dist/try/index.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":[],"
|
|
1
|
+
{"version":3,"file":"index.mjs","sources":["../../src/try/Try.ts"],"sourcesContent":["import stringify from \"safe-stable-stringify\"\n\nimport { Either, Left, Right } from \"@/either/Either\"\nimport { Typeable } from \"@/typeable/Typeable\"\nimport { Valuable } from \"@/valuable/Valuable\"\n\ntype TypeNames = \"Success\" | \"Failure\"\n\nexport type Try<T> = {\n readonly _tag: TypeNames\n readonly error: Error | undefined\n isSuccess: () => boolean\n isFailure: () => boolean\n get: () => T\n getOrElse: (defaultValue: T) => T\n orElse: (alternative: Try<T>) => Try<T>\n orThrow: (error: Error) => T\n toEither: () => Either<Error, T>\n map: <U>(f: (value: T) => U) => Try<U>\n flatMap: <U>(f: (value: T) => Try<U>) => Try<U>\n toString: () => string\n} & Typeable<TypeNames> &\n Valuable<TypeNames, T | Error>\n\nconst Success = <T>(value: T): Try<T> => ({\n _tag: \"Success\",\n error: undefined,\n isSuccess: () => true,\n isFailure: () => false,\n get: () => value,\n getOrElse: (_defaultValue: T) => value,\n orElse: (_alternative: Try<T>) => Success(value),\n orThrow: (_error: Error) => value,\n toEither: () => Right<Error, T>(value),\n map: <U>(f: (value: T) => U) => Try(() => f(value)),\n flatMap: <U>(f: (value: T) => Try<U>) => f(value),\n toString: () => `Success(${stringify(value)})`,\n toValue: () => ({ _tag: \"Success\", value }),\n})\n\nconst Failure = <T>(error: Error): Try<T> => ({\n _tag: \"Failure\",\n error,\n isSuccess: () => false,\n isFailure: () => true,\n get: () => {\n throw error\n },\n getOrElse: (defaultValue: T) => defaultValue,\n orElse: (alternative: Try<T>) => alternative,\n orThrow: (error: Error) => {\n throw error\n },\n toEither: () => Left<Error, T>(error),\n map: <U>(_f: (value: T) => U) => Failure<U>(error),\n flatMap: <U>(_f: (value: T) => Try<U>) => Failure<U>(error),\n toString: () => `Failure(${stringify(error)}))`,\n toValue: () => ({ _tag: \"Failure\", value: error }),\n})\n\nexport const Try = <T>(f: () => T): Try<T> => {\n try {\n return Success(f())\n } catch (error) {\n return Failure(error instanceof Error ? error : new Error(String(error)))\n }\n}\n"],"names":["Success","value","_defaultValue","_alternative","_error","Right","f","Try","stringify","Failure","error","defaultValue","alternative","Left","_f"],"mappings":";AAwBA,MAAMA,IAAU,CAAIC,OAAsB;AAAA,EACxC,MAAM;AAAA,EACN,OAAO;AAAA,EACP,WAAW,MAAM;AAAA,EACjB,WAAW,MAAM;AAAA,EACjB,KAAK,MAAMA;AAAA,EACX,WAAW,CAACC,MAAqBD;AAAA,EACjC,QAAQ,CAACE,MAAyBH,EAAQC,CAAK;AAAA,EAC/C,SAAS,CAACG,MAAkBH;AAAA,EAC5B,UAAU,MAAMI,EAAgBJ,CAAK;AAAA,EACrC,KAAK,CAAIK,MAAuBC,EAAI,MAAMD,EAAEL,CAAK,CAAC;AAAA,EAClD,SAAS,CAAIK,MAA4BA,EAAEL,CAAK;AAAA,EAChD,UAAU,MAAM,WAAWO,EAAUP,CAAK,CAAC;AAAA,EAC3C,SAAS,OAAO,EAAE,MAAM,WAAW,OAAAA,EAAM;AAC3C,IAEMQ,IAAU,CAAIC,OAA0B;AAAA,EAC5C,MAAM;AAAA,EACN,OAAAA;AAAA,EACA,WAAW,MAAM;AAAA,EACjB,WAAW,MAAM;AAAA,EACjB,KAAK,MAAM;AACH,UAAAA;AAAA,EACR;AAAA,EACA,WAAW,CAACC,MAAoBA;AAAA,EAChC,QAAQ,CAACC,MAAwBA;AAAA,EACjC,SAAS,CAACF,MAAiB;AACnBA,UAAAA;AAAAA,EACR;AAAA,EACA,UAAU,MAAMG,EAAeH,CAAK;AAAA,EACpC,KAAK,CAAII,MAAwBL,EAAWC,CAAK;AAAA,EACjD,SAAS,CAAII,MAA6BL,EAAWC,CAAK;AAAA,EAC1D,UAAU,MAAM,WAAWF,EAAUE,CAAK,CAAC;AAAA,EAC3C,SAAS,OAAO,EAAE,MAAM,WAAW,OAAOA,EAAM;AAClD,IAEaH,IAAM,CAAID,MAAuB;AACxC,MAAA;AACK,WAAAN,EAAQM,GAAG;AAAA,WACXI,GAAO;AACP,WAAAD,EAAQC,aAAiB,QAAQA,IAAQ,IAAI,MAAM,OAAOA,CAAK,CAAC,CAAC;AAAA,EAAA;AAE5E;"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { ArrayFunctor, ArrayType } from '../functor';
|
|
2
|
+
import { Typeable } from '../typeable/Typeable';
|
|
3
|
+
import { Valuable } from '../valuable/Valuable';
|
|
4
|
+
export type Tuple<T extends ArrayType> = {
|
|
5
|
+
get<K extends number>(index: K): T[K];
|
|
6
|
+
map<U extends ArrayType>(f: (value: T) => U): Tuple<U>;
|
|
7
|
+
flatMap<U extends ArrayType>(f: (value: T) => Tuple<U>): Tuple<U>;
|
|
8
|
+
toArray(): T;
|
|
9
|
+
[Symbol.iterator](): Iterator<T[number]>;
|
|
10
|
+
} & ArrayFunctor<T> & Typeable<"Tuple"> & Valuable<"Tuple", T>;
|
|
11
|
+
export declare const Tuple: <T extends ArrayType>(values: T) => Tuple<T>;
|
package/dist/tuple/index.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export
|
|
1
|
+
export * from './Tuple';
|
package/dist/tuple/index.mjs
CHANGED
|
@@ -1,2 +1,27 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
const n = (t) => ({
|
|
2
|
+
_tag: "Tuple",
|
|
3
|
+
map: (e) => {
|
|
4
|
+
const r = e(t);
|
|
5
|
+
return n(r);
|
|
6
|
+
},
|
|
7
|
+
flatMap: (e) => e(t),
|
|
8
|
+
get: (e) => t[e],
|
|
9
|
+
toArray: () => t,
|
|
10
|
+
[Symbol.iterator]() {
|
|
11
|
+
let e = 0;
|
|
12
|
+
return {
|
|
13
|
+
next: () => e < t.length ? {
|
|
14
|
+
value: t[e++],
|
|
15
|
+
done: !1
|
|
16
|
+
} : {
|
|
17
|
+
value: void 0,
|
|
18
|
+
done: !0
|
|
19
|
+
}
|
|
20
|
+
};
|
|
21
|
+
},
|
|
22
|
+
toValue: () => ({ _tag: "Tuple", value: t })
|
|
23
|
+
});
|
|
24
|
+
export {
|
|
25
|
+
n as Tuple
|
|
26
|
+
};
|
|
27
|
+
//# sourceMappingURL=index.mjs.map
|
package/dist/tuple/index.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":[],"
|
|
1
|
+
{"version":3,"file":"index.mjs","sources":["../../src/tuple/Tuple.ts"],"sourcesContent":["import type { ArrayFunctor, ArrayType } from \"@/functor\"\nimport { Typeable } from \"@/typeable/Typeable\"\nimport { Valuable } from \"@/valuable/Valuable\"\n\nexport type Tuple<T extends ArrayType> = {\n get<K extends number>(index: K): T[K]\n\n map<U extends ArrayType>(f: (value: T) => U): Tuple<U>\n\n flatMap<U extends ArrayType>(f: (value: T) => Tuple<U>): Tuple<U>\n\n toArray(): T\n\n [Symbol.iterator](): Iterator<T[number]>\n} & ArrayFunctor<T> &\n Typeable<\"Tuple\"> &\n Valuable<\"Tuple\", T>\n\nexport const Tuple = <T extends ArrayType>(values: T): Tuple<T> => {\n return {\n _tag: \"Tuple\",\n map: <U extends ArrayType>(f: (value: T) => U): Tuple<U> => {\n const mapValue = f(values)\n return Tuple(mapValue)\n },\n\n flatMap: <U extends ArrayType>(f: (value: T) => Tuple<U>): Tuple<U> => {\n return f(values)\n },\n\n get: <K extends number>(index: K): T[K] => {\n return values[index]\n },\n\n toArray: (): T => {\n return values\n },\n [Symbol.iterator](): Iterator<T[number]> {\n let index = 0\n return {\n next: (): IteratorResult<T[number]> => {\n if (index < values.length) {\n return {\n value: values[index++],\n done: false,\n }\n } else {\n return {\n value: undefined,\n done: true,\n }\n }\n },\n }\n },\n toValue: () => ({ _tag: \"Tuple\", value: values }),\n }\n}\n"],"names":["Tuple","values","f","mapValue","index"],"mappings":"AAkBa,MAAAA,IAAQ,CAAsBC,OAClC;AAAA,EACL,MAAM;AAAA,EACN,KAAK,CAAsBC,MAAiC;AACpD,UAAAC,IAAWD,EAAED,CAAM;AACzB,WAAOD,EAAMG,CAAQ;AAAA,EACvB;AAAA,EAEA,SAAS,CAAsBD,MACtBA,EAAED,CAAM;AAAA,EAGjB,KAAK,CAAmBG,MACfH,EAAOG,CAAK;AAAA,EAGrB,SAAS,MACAH;AAAA,EAET,CAAC,OAAO,QAAQ,IAAyB;AACvC,QAAIG,IAAQ;AACL,WAAA;AAAA,MACL,MAAM,MACAA,IAAQH,EAAO,SACV;AAAA,QACL,OAAOA,EAAOG,GAAO;AAAA,QACrB,MAAM;AAAA,MACR,IAEO;AAAA,QACL,OAAO;AAAA,QACP,MAAM;AAAA,MACR;AAAA,IAGN;AAAA,EACF;AAAA,EACA,SAAS,OAAO,EAAE,MAAM,SAAS,OAAOH,EAAO;AACjD;"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export type Typeable<Tag extends string, T = object> = T & {
|
|
2
|
+
readonly _tag: Tag;
|
|
3
|
+
};
|
|
4
|
+
export type TypeableParams<Tag extends string, T> = {
|
|
5
|
+
_tag: Tag;
|
|
6
|
+
impl: T;
|
|
7
|
+
};
|
|
8
|
+
export type ExtractTag<T> = T extends Typeable<infer Tag, unknown> ? Tag : never;
|
|
9
|
+
export declare function Typeable<Tag extends string, T>({ _tag, impl }: TypeableParams<Tag, T>): Typeable<Tag, T>;
|
|
10
|
+
export declare function isTypeable<T>(value: unknown, tag: string): value is T;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './Typeable';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const isIterable: <T>(value: unknown) => value is Iterable<T>;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
export type ValuableParams<Tag extends string, T, V> = {
|
|
2
|
+
_tag: Tag;
|
|
3
|
+
impl: T;
|
|
4
|
+
value: V;
|
|
5
|
+
};
|
|
6
|
+
export declare function Valuable<Tag extends string, V, T = object>(params: ValuableParams<Tag, T, V>): T & {
|
|
7
|
+
toValue: () => {
|
|
8
|
+
_tag: Tag;
|
|
9
|
+
value: V;
|
|
10
|
+
};
|
|
11
|
+
_tag: Tag;
|
|
12
|
+
};
|
|
13
|
+
export type Valuable<Tag extends string, V, T = object> = ReturnType<typeof Valuable<Tag, V, T>>;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './Valuable';
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "functype",
|
|
3
|
-
"version": "0.8.
|
|
3
|
+
"version": "0.8.62",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "A smallish functional library for TypeScript",
|
|
6
6
|
"author": "jordan.burke@gmail.com",
|
|
@@ -31,10 +31,11 @@
|
|
|
31
31
|
"prettier": "^3.5.3",
|
|
32
32
|
"rimraf": "^6.0.1",
|
|
33
33
|
"ts-node": "^10.9.2",
|
|
34
|
-
"tsup": "^8.4.0",
|
|
35
34
|
"typedoc": "^0.28.2",
|
|
36
35
|
"typescript": "5.8.3",
|
|
37
|
-
"vitest": "^3.1.1"
|
|
36
|
+
"vitest": "^3.1.1",
|
|
37
|
+
"vite": "^6.2.6",
|
|
38
|
+
"vite-plugin-dts": "^4.5.3"
|
|
38
39
|
},
|
|
39
40
|
"types": "./dist/index.d.ts",
|
|
40
41
|
"module": "./dist/index.mjs",
|
|
@@ -116,9 +117,9 @@
|
|
|
116
117
|
"scripts": {
|
|
117
118
|
"compile": "tsc --noEmit",
|
|
118
119
|
"build": "pnpm compile && pnpm lint && pnpm test",
|
|
119
|
-
"build:dev": "
|
|
120
|
-
"build:prod": "pnpm compile && pnpm test &&
|
|
121
|
-
"build:watch": "
|
|
120
|
+
"build:dev": "vite build --watch --mode development",
|
|
121
|
+
"build:prod": "pnpm compile && pnpm test && vite build --mode production",
|
|
122
|
+
"build:watch": "vite build --watch",
|
|
122
123
|
"build:publish": "pnpm build:prod && pnpm publish --access public",
|
|
123
124
|
"lint:fix": "eslint ./src --quiet --fix",
|
|
124
125
|
"lint:format": "prettier --loglevel warn --write \"./**/*.{ts,tsx,css,md,json}\" ",
|
package/dist/Tuple-GXgoHfiN.d.ts
DELETED
|
@@ -1,54 +0,0 @@
|
|
|
1
|
-
type SingleType = unknown;
|
|
2
|
-
type ArrayType = SingleType[];
|
|
3
|
-
type Type = SingleType | ArrayType;
|
|
4
|
-
type AbstractFunctor<A extends Type> = {
|
|
5
|
-
map(f: (value: A) => Type): AbstractFunctor<Type>;
|
|
6
|
-
flatMap(f: (value: A) => AbstractFunctor<Type>): AbstractFunctor<Type>;
|
|
7
|
-
};
|
|
8
|
-
type Functor<A extends Type> = AbstractFunctor<A> & {
|
|
9
|
-
map<B extends Type>(f: (value: A) => B): Functor<B>;
|
|
10
|
-
flatMap<B extends Type>(f: (value: A) => Functor<B>): Functor<B>;
|
|
11
|
-
};
|
|
12
|
-
type AsyncFunctor<A extends Type> = {
|
|
13
|
-
flatMapAsync(f: (value: A) => PromiseLike<AsyncFunctor<A>>): PromiseLike<AsyncFunctor<A>>;
|
|
14
|
-
};
|
|
15
|
-
type ArrayFunctor<A extends ArrayType> = AbstractFunctor<A> & {
|
|
16
|
-
map<U extends ArrayType>(f: (value: A) => U): ArrayFunctor<U>;
|
|
17
|
-
flatMap<U extends ArrayType>(f: (value: A) => ArrayFunctor<U>): ArrayFunctor<U>;
|
|
18
|
-
};
|
|
19
|
-
|
|
20
|
-
type TypeableParams<Tag extends string, T> = {
|
|
21
|
-
_tag: Tag;
|
|
22
|
-
impl: T;
|
|
23
|
-
};
|
|
24
|
-
type ExtractTag<T> = T extends Typeable<infer Tag, unknown> ? Tag : never;
|
|
25
|
-
type Typeable<Tag extends string, T = object> = T & {
|
|
26
|
-
readonly _tag: Tag;
|
|
27
|
-
};
|
|
28
|
-
declare function Typeable<Tag extends string, T>({ _tag, impl }: TypeableParams<Tag, T>): Typeable<Tag, T>;
|
|
29
|
-
declare function isTypeable<T>(value: unknown, tag: string): value is T;
|
|
30
|
-
|
|
31
|
-
type ValuableParams<Tag extends string, T, V> = {
|
|
32
|
-
_tag: Tag;
|
|
33
|
-
impl: T;
|
|
34
|
-
value: V;
|
|
35
|
-
};
|
|
36
|
-
declare function Valuable<Tag extends string, V, T = object>(params: ValuableParams<Tag, T, V>): T & {
|
|
37
|
-
toValue: () => {
|
|
38
|
-
_tag: Tag;
|
|
39
|
-
value: V;
|
|
40
|
-
};
|
|
41
|
-
_tag: Tag;
|
|
42
|
-
};
|
|
43
|
-
type Valuable<Tag extends string, V, T = object> = ReturnType<typeof Valuable<Tag, V, T>>;
|
|
44
|
-
|
|
45
|
-
type Tuple<T extends ArrayType> = {
|
|
46
|
-
get<K extends number>(index: K): T[K];
|
|
47
|
-
map<U extends ArrayType>(f: (value: T) => U): Tuple<U>;
|
|
48
|
-
flatMap<U extends ArrayType>(f: (value: T) => Tuple<U>): Tuple<U>;
|
|
49
|
-
toArray(): T;
|
|
50
|
-
[Symbol.iterator](): Iterator<T[number]>;
|
|
51
|
-
} & ArrayFunctor<T> & Typeable<"Tuple"> & Valuable<"Tuple", T>;
|
|
52
|
-
declare const Tuple: <T extends ArrayType>(values: T) => Tuple<T>;
|
|
53
|
-
|
|
54
|
-
export { type AsyncFunctor as A, type ExtractTag as E, type Functor as F, type SingleType as S, Typeable as T, Valuable as V, type Type as a, Tuple as b, type ArrayType as c, type AbstractFunctor as d, type ArrayFunctor as e, type TypeableParams as f, isTypeable as i };
|
package/dist/chunk-A3EHNBZM.mjs
DELETED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import {b as b$1,a,c as c$1}from'./chunk-OQWAJKZJ.mjs';import $ from'safe-stable-stringify';function z(e,t){return Object.assign(e,t)}function w(e,t){return {...a({_tag:e,impl:t}),toString(){return `${e}()`}}}var F="Throwable",R=class e extends Error{constructor(r,n){super(r,{cause:n?.cause});this._tag=F;this.name=F,Object.defineProperties(this,{_tag:{value:F,writable:false,configurable:false},data:{value:n?.data,writable:false,configurable:false},name:{value:F,writable:false,configurable:false}}),n?.cause&&Object.defineProperty(this,"cause",{value:n.cause,writable:false,configurable:false}),n?.stack?this.stack=n.stack:Error.captureStackTrace&&Error.captureStackTrace(this,this.constructor);}static apply(r,n){if(r instanceof Error)return new e(r.message,{data:n,cause:r.cause||void 0,stack:r.stack||void 0});let s=typeof r=="string"?r:"An unknown error occurred";return new e(s,{data:n})}};var K=Set;var S=e=>{let t=new K(e),r=m(t),n={...r,_tag:"Set",add:s=>S([...t,s]),remove:s=>{let a=new K(t);return a.delete(s),S(a)},contains:s=>t.has(s),has:s=>t.has(s),map:s=>S(r.map(s)),flatMap:s=>S(r.flatMap(s)),toList:()=>m(t),toSet:()=>n,toString:()=>`Set(${Array.from(t).toString()})`};return n},V=e=>S(e);var h=e=>{let t=Array.from(e||[]),r={_tag:"List",[Symbol.iterator]:()=>t[Symbol.iterator](),get size(){return t.length},get length(){return t.length},map:n=>h(t.map(n)),flatMap:n=>h(t.flatMap(s=>Array.from(n(s)))),flatMapAsync:async n=>{let s=await Promise.all(t.map(async a=>await n(a)));return h(s.flatMap(a=>Array.from(a)))},forEach:n=>t.forEach(n),count:n=>t.filter(n).length,exists:n=>t.some(n),filter:n=>h(t.filter(n)),filterNot:n=>h(t.filter(s=>!n(s))),filterType:n=>h(t.filter(s=>b$1(s,n))),find:(n,s)=>{let a=t.find(o=>n(o)&&(s?b$1(o,s):true));return f(a)},get head(){return t[0]},get headOption(){return t.length>0?f(t[0]):k()},get isEmpty(){return t.length===0},toArray:()=>[...t],reduce:n=>t.reduce(n),reduceRight:n=>t.reduceRight(n),foldLeft:n=>s=>t.reduce(s,n),foldRight:n=>s=>t.reduceRight((a,o)=>s(o,a),n),remove:n=>h(t.filter(s=>s!==n)),removeAt:n=>n<0||n>=t.length?r:h([...t.slice(0,n),...t.slice(n+1)]),add:n=>h([...t,n]),get:n=>f(t[n]),concat:n=>h([...t,...n.toArray()]),drop:n=>h(t.slice(n)),dropRight:n=>h(t.slice(0,-n)),dropWhile:n=>h(t.slice(t.findIndex(s=>!n(s)))),flatten:()=>h(t.flatMap(n=>Array.isArray(n)?n:[n])),toList:()=>r,toSet:()=>V(t),toString:()=>`List(${$(t)})`,toValue:()=>({_tag:"List",value:t})};return r},m=e=>h(e);var q=e=>({_tag:"Right",value:e,isLeft:()=>false,isRight:()=>true,getOrElse:t=>e,getOrThrow:()=>e,map:t=>T(t(e)),mapAsync:t=>t(e).then(r=>T(r)).catch(r=>Promise.resolve(p(r))),merge:t=>t.isLeft()?p(t.value):T([e,t.value]),flatMap:t=>t(e),flatMapAsync:t=>t(e).catch(r=>p(r)),toOption:()=>U(e),toList:()=>m([e]),toString:()=>`Right(${$(e)})`,[Symbol.iterator]:function*(){yield e;},yield:function*(){yield e;},traverse:t=>{let r=t(e);return r.isLeft()?p(r.value):T([r.value])},lazyMap:function*(t){yield T(t(e));},tap:t=>(t(e),T(e)),tapLeft:t=>T(e),mapLeft:t=>T(e),bimap:(t,r)=>T(r(e)),fold:(t,r)=>r(e),swap:()=>p(e),then:(t,r)=>Promise.resolve(e).then(t,r),toValue:()=>({_tag:"Right",value:e})}),W=e=>({_tag:"Left",value:e,isLeft:()=>true,isRight:()=>false,getOrElse:t=>t,getOrThrow:()=>{throw e},map:t=>p(e),mapAsync:t=>Promise.resolve(p(e)),merge:t=>p(e),flatMap:t=>p(e),flatMapAsync:t=>Promise.resolve(p(e)),toOption:()=>k(),toList:()=>m(),toString:()=>`Left(${$(e)})`,[Symbol.iterator]:function*(){},yield:function*(){},traverse:t=>p(e),lazyMap:function*(t){yield p(e);},tap:t=>p(e),tapLeft:t=>(t(e),p(e)),mapLeft:t=>p(t(e)),bimap:(t,r)=>p(t(e)),fold:(t,r)=>t(e),swap:()=>T(e),then:(t,r)=>Promise.reject(e).then(null,r),toValue:()=>({_tag:"Left",value:e})}),T=e=>q(e),p=e=>W(e),Be=e=>e.isRight(),Se=e=>e.isLeft(),Fe=(e,t)=>{try{return T(e())}catch(r){return p(t(r))}},re=e=>q(e);console.assert(re);var ne=e=>W(e);console.assert(ne);var Ve=async(e,t)=>{try{let r=await e();return T(r)}catch(r){return p(t(r))}},oe={sequence:e=>{let t=[];for(let r of e){if(r.isLeft())return p(r.value);t.push(r.value);}return T(t)},traverse:(e,t)=>oe.sequence(e.map(t)),fromNullable:(e,t)=>e==null?p(t):T(e),fromPredicate:(e,t,r)=>t(e)?T(e):p(r),ap:(e,t)=>e.flatMap(r=>t.map(r)),fromPromise:async(e,t)=>{try{let r=await e;return T(r)}catch(r){return p(t(r))}}};var c=e=>{let t=new Promise((r,n)=>{try{e(r,n);}catch(s){n(s);}});return {_tag:"FPromise",map:r=>c((n,s)=>{t.then(a=>{try{n(r(a));}catch(o){s(o);}}).catch(s);}),flatMap:r=>c((n,s)=>{t.then(a=>{try{let o=r(a);"_tag"in o&&o._tag==="FPromise"?o.then(n,s):Promise.resolve(o).then(n,s);}catch(o){s(o);}}).catch(s);}),flatMapAsync:async r=>{let n=await t,s=r(n);return s instanceof Promise?s:new Promise((a,o)=>{s.then(a,o);})},tap:r=>c((n,s)=>{t.then(a=>{try{r(a),n(a);}catch(o){s(o);}}).catch(s);}),mapError:r=>c((n,s)=>{t.then(n).catch(a=>{try{let o={originalError:a,stack:a instanceof Error?a.stack:void 0,timestamp:Date.now()};s(r(a,o));}catch(o){s(o);}});}),tapError:r=>c((n,s)=>{t.then(n).catch(a=>{try{r(a),s(a);}catch(o){s(o);}});}),recover:r=>c(n=>{t.then(n).catch(()=>n(r));}),recoverWith:r=>c(n=>{t.then(n).catch(s=>{try{n(r(s));}catch{n(null);}});}),recoverWithF:r=>c((n,s)=>{t.then(n).catch(a=>{try{r(a).then(n,s);}catch(o){s(o);}});}),filterError:(r,n)=>c((s,a)=>{t.then(s).catch(o=>{if(r(o))try{n(o).then(s,a);}catch(i){a(i);}else a(o);});}),logError:r=>c((n,s)=>{t.then(n).catch(a=>{try{let o={originalError:a,stack:a instanceof Error?a.stack:void 0,timestamp:Date.now()};r(a,o);}catch{}finally{s(a);}});}),then:(r,n)=>t.then(r,n),toPromise:()=>t,toEither:()=>t}},se={resolve:e=>c(t=>t(e)),reject:e=>c((t,r)=>r(e)),from:e=>c((t,r)=>{e.then(t).catch(r);}),fromEither:e=>e.isRight()?c(t=>t(e.value)):c((t,r)=>r(e.value)),all:e=>c((t,r)=>{Promise.all(e.map(n=>n instanceof Promise?n:Promise.resolve(n))).then(t).catch(r);}),allSettled:e=>c(t=>{let r=[],n=0;if(e.length===0){t([]);return}e.forEach((s,a)=>{Promise.resolve(s).then(o=>{r[a]=T(o),n++,n===e.length&&t(r);}).catch(o=>{r[a]=p(o),n++,n===e.length&&t(r);});});}),race:e=>c((t,r)=>{Promise.race(e).then(t,r);}),any:e=>c((t,r)=>{if(typeof Promise.any=="function")Promise.any(e).then(t,r);else {let n=0,s=[];if(e.length===0){r(new AggregateError([],"All promises were rejected"));return}e.forEach((a,o)=>{Promise.resolve(a).then(t).catch(i=>{s[o]=i,n++,n===e.length&&r(new AggregateError(s,"All promises were rejected"));});});}}),retryWithBackoff:(e,t)=>{let{maxRetries:r,baseDelay:n=100,shouldRetry:s=()=>true}=t;return c((a,o)=>{let i=0,l=()=>{e().toPromise().then(a).catch(E=>{if(i++,i<=r&&s(E,i)){let L=n*Math.pow(2,i-1);setTimeout(l,L);}else o(E);});};l();})}},G=z(c,se);var J=(e,t,r)=>{let n=r?.name||"TaskException",s=r?.description||"Unspecified TaskException",a=R.apply(e,t);return {...w("TaskException",p(a)),_task:{name:n,description:s}}},j=(e,t)=>{let r=t?.name||"TaskResult",n=t?.description||"Unspecified TaskResult";return {...w("TaskResult",T(e)),_task:{name:r,description:n}}},We=e=>{let t=e?.name||"Task",r=e?.description||"",n={Async:(s,a=i=>i,o=()=>{})=>G(async(i,l)=>{try{let E=await s();try{await o();}catch(L){l(R.apply(L));return}i(E);}catch(E){try{await o();}catch(L){l(R.apply(L));return}try{let L=await a(E);l(R.apply(L));}catch(L){l(R.apply(L));}}}),Sync:(s,a=i=>i,o=()=>{})=>{try{return j(s(),{name:t,description:r})}catch(i){return J(a(i),{name:t,description:r})}finally{o();}},success:s=>j(s,{name:t,description:r}),fail:s=>J(s,{name:t,description:r}),fromPromise:s=>(...a)=>n.Async(()=>s(...a),o=>o),toPromise:s=>new Promise((a,o)=>{s.isRight()?a(s.value):o(s.value);})};return {...w("Task",n),_type:"Task"}};var H=e=>({_tag:"Success",error:void 0,isSuccess:()=>true,isFailure:()=>false,get:()=>e,getOrElse:t=>e,orElse:t=>H(e),orThrow:t=>e,toEither:()=>T(e),map:t=>ae(()=>t(e)),flatMap:t=>t(e),toString:()=>`Success(${$(e)})`,toValue:()=>({_tag:"Success",value:e})}),I=e=>({_tag:"Failure",error:e,isSuccess:()=>false,isFailure:()=>true,get:()=>{throw e},getOrElse:t=>t,orElse:t=>t,orThrow:t=>{throw t},toEither:()=>p(e),map:t=>I(e),flatMap:t=>I(e),toString:()=>`Failure(${$(e)}))`,toValue:()=>({_tag:"Failure",value:e})}),ae=e=>{try{return H(e())}catch(t){return I(t instanceof Error?t:new Error(String(t)))}};var g=e=>e!==null&&typeof e=="object"&&(e._tag==="Some"||e._tag==="None"),A=e=>e!==null&&typeof e=="object"&&e._tag==="List",b=e=>e!==null&&typeof e=="object"&&(e._tag==="Left"||e._tag==="Right"),P=e=>e!==null&&typeof e=="object"&&(e._tag==="Success"||e._tag==="Failure"),d=()=>{let e=(o,i)=>{if(g(o)||A(o)||b(o)||P(o))return o.map(i);throw new Error(`Unsupported functor type: ${JSON.stringify(o)}`)},t=o=>{if(g(o))return o.get();if(A(o)){let i=o.toArray();if(i.length>0&&A(i[0])){let l=[];for(let E of i)A(E)&&l.push(...E.toArray());return m(l)}return o.flatten()}if(b(o))return o.isRight()?o.fold(()=>null,i=>i):o;if(P(o))return o.isSuccess()?o.get():o;throw new Error(`Unsupported functor type for flatten: ${JSON.stringify(o)}`)},r=(o,i)=>{if(g(o)||A(o)||b(o)||P(o))return o.flatMap(i);throw new Error(`Unsupported functor type for flatMap: ${JSON.stringify(o)}`)},n=(o,i)=>{if(g(o)&&g(i))return o.flatMap(l=>i.map(l));if(A(o)&&A(i))return o.flatMap(l=>i.map(l));if(b(o)&&b(i))return o.flatMap(l=>i.map(l));if(P(o)&&P(i))return o.flatMap(l=>i.map(l));throw new Error(`Unsupported functor type for ap: ${JSON.stringify(o)}`)},s=o=>{if(g(o)){let i=o;if(i.isEmpty)return m([f.none()]);let l=i.get();if(A(l))return l.map(E=>f(E));throw new Error("Unsupported inner container type for sequence")}if(A(o)){let l=o.toArray();if(l.length===0)return f.none();let E=l[0];if(g(E)){for(let B of l)if(B.isEmpty)return f.none();let L=l.map(B=>B.get());return f(m(L))}throw new Error("Unsupported inner container type for sequence")}throw new Error(`Unsupported outer container type for sequence: ${JSON.stringify(o)}`)};return {...w("HKT",{map:e,flatten:t,flatMap:r,ap:n,sequence:s,traverse:(o,i)=>s(e(o,i))}),_type:"HKT"}};d.map=(e,t)=>d().map(e,t);d.flatten=e=>d().flatten(e);d.flatMap=(e,t)=>d().flatMap(e,t);d.ap=(e,t)=>d().ap(e,t);d.sequence=e=>d().sequence(e);d.traverse=(e,t)=>d().traverse(e,t);d.isOption=g;d.isList=A;d.isEither=b;d.isTry=P;function et(e){return {id:e,isSame:r=>r.id===e}}var O=Map;var x=e=>{let t="Map",r={values:new O(e)},n=()=>Array.from(r.values.entries()).map(([u,y])=>c$1([u,y])),s=u=>x(new O(r.values).set(u.toArray()[0],u.toArray()[1]).entries()),a=u=>{let y=new O(r.values);return y.delete(u)?x(y.entries()):x(r.values.entries())},o=u=>{let y=u.toArray();return r.values.get(y[0])===y[1]},i=()=>r.values.size,l=u=>x(Array.from(r.values.entries()).map(([y,ee])=>[y,u(ee)])),E=u=>{let y=x(r.values.entries()).toList();return x(y.flatMap(u).toArray())},L=u=>m(n()).reduce(u),B=u=>m(n()).reduceRight(u),M=u=>y=>m(n()).foldLeft(u)(y),Q=u=>y=>m(n()).foldRight(u)(y),X=u=>f(r.values.get(u)),Y=(u,y)=>f(r.values.get(u)).getOrElse(y),Z=()=>r.values.size===0;return {_tag:t,add:s,remove:a,contains:o,get size(){return i()},map:l,flatMap:E,reduce:L,reduceRight:B,foldLeft:M,foldRight:Q,get:X,getOrElse:Y,get isEmpty(){return Z()},orElse:(u,y)=>f(r.values.get(u)).orElse(y),toList:()=>m(n()),toSet:()=>V(n()),toString:()=>`Map(${n().toString()})`,toValue:()=>({_tag:"Map",value:r.values})}},pt=e=>x(e);var U=e=>({_tag:"Some",value:e,isEmpty:false,get:()=>e,getOrElse:()=>e,getOrThrow:()=>e,orElse:()=>U(e),orNull:()=>e,map:t=>U(t(e)),filter(t){return t(e)?U(e):v},fold:(t,r)=>r(e),flatMap:t=>t(e),flatMapAsync:async t=>await t(e),reduce:t=>t(void 0,e),reduceRight:t=>t(void 0,e),foldLeft:t=>r=>r(t,e),foldRight:t=>r=>r(e,t),toList:()=>m([e]),contains:t=>t===e,size:1,toEither:t=>T(e),toString:()=>`Some(${$(e)})`,toValue:()=>({_tag:"Some",value:e})}),v={_tag:"None",value:void 0,isEmpty:true,get:()=>{throw new Error("Cannot call get() on None")},getOrElse:e=>e,getOrThrow(e){throw e},orElse:e=>e,orNull:()=>null,map:e=>v,filter(e){return v},flatMap:e=>v,flatMapAsync:async e=>v,reduce:()=>{},reduceRight:()=>{},fold:(e,t)=>e(),foldLeft:e=>()=>e,foldRight:e=>()=>e,toList:()=>m([]),contains:()=>false,size:0,toEither:e=>p(e),toString:()=>"None",toValue:()=>({_tag:"None",value:void 0})},k=()=>v,f=e=>e!=null?U(e):k();f.from=e=>f(e);f.none=()=>k();export{z as a,w as b,R as c,U as d,k as e,f,V as g,m as h,T as i,p as j,Be as k,Se as l,Fe as m,re as n,ne as o,Ve as p,oe as q,se as r,G as s,J as t,j as u,We as v,ae as w,d as x,et as y,pt as z};//# sourceMappingURL=chunk-A3EHNBZM.mjs.map
|
|
2
|
-
//# sourceMappingURL=chunk-A3EHNBZM.mjs.map
|