fortepiano 0.1.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.
Files changed (94) hide show
  1. package/README.md +3 -0
  2. package/lib/Aggregate.d.ts +4 -0
  3. package/lib/Aggregate.js +2 -0
  4. package/lib/Binary.d.ts +5 -0
  5. package/lib/Binary.js +15 -0
  6. package/lib/Buffer.d.ts +5 -0
  7. package/lib/Buffer.js +45 -0
  8. package/lib/Cache.d.ts +18 -0
  9. package/lib/Cache.js +50 -0
  10. package/lib/Console.d.ts +20 -0
  11. package/lib/Console.js +25 -0
  12. package/lib/Crypto.d.ts +5 -0
  13. package/lib/Crypto.js +39 -0
  14. package/lib/Date.d.ts +4 -0
  15. package/lib/Date.js +30 -0
  16. package/lib/Eq.d.ts +4 -0
  17. package/lib/Eq.js +29 -0
  18. package/lib/Error.d.ts +6 -0
  19. package/lib/Error.js +56 -0
  20. package/lib/GeneratorL.d.ts +208 -0
  21. package/lib/GeneratorL.js +501 -0
  22. package/lib/Http.d.ts +60 -0
  23. package/lib/Http.js +131 -0
  24. package/lib/IOAsyncGenerator.d.ts +102 -0
  25. package/lib/IOAsyncGenerator.js +456 -0
  26. package/lib/Log.d.ts +4 -0
  27. package/lib/Log.js +5 -0
  28. package/lib/Magma.d.ts +2 -0
  29. package/lib/Magma.js +26 -0
  30. package/lib/Matrix.d.ts +9 -0
  31. package/lib/Matrix.js +36 -0
  32. package/lib/Mock.d.ts +76 -0
  33. package/lib/Mock.js +113 -0
  34. package/lib/Option.d.ts +2 -0
  35. package/lib/Option.js +26 -0
  36. package/lib/Random.d.ts +7 -0
  37. package/lib/Random.js +7 -0
  38. package/lib/Reader.d.ts +4 -0
  39. package/lib/Reader.js +31 -0
  40. package/lib/ReaderEither.d.ts +9 -0
  41. package/lib/ReaderEither.js +34 -0
  42. package/lib/ReaderTask.d.ts +8 -0
  43. package/lib/ReaderTask.js +35 -0
  44. package/lib/ReaderTaskEither.d.ts +17 -0
  45. package/lib/ReaderTaskEither.js +42 -0
  46. package/lib/ReadonlyArray.d.ts +75 -0
  47. package/lib/ReadonlyArray.js +70 -0
  48. package/lib/ReadonlyRecord.d.ts +4 -0
  49. package/lib/ReadonlyRecord.js +28 -0
  50. package/lib/ReadonlyTuple.d.ts +14 -0
  51. package/lib/ReadonlyTuple.js +34 -0
  52. package/lib/Storage.d.ts +15 -0
  53. package/lib/Storage.js +57 -0
  54. package/lib/Stream.d.ts +5 -0
  55. package/lib/Stream.js +31 -0
  56. package/lib/TaskEither.d.ts +2 -0
  57. package/lib/TaskEither.js +32 -0
  58. package/lib/Type.d.ts +11 -0
  59. package/lib/Type.js +53 -0
  60. package/lib/Validation.d.ts +4 -0
  61. package/lib/Validation.js +30 -0
  62. package/lib/cache/Memcached.d.ts +4 -0
  63. package/lib/cache/Memcached.js +50 -0
  64. package/lib/cache/Memory.d.ts +2 -0
  65. package/lib/cache/Memory.js +66 -0
  66. package/lib/cache/Redis.d.ts +4 -0
  67. package/lib/cache/Redis.js +58 -0
  68. package/lib/cache/Storage.d.ts +4 -0
  69. package/lib/cache/Storage.js +62 -0
  70. package/lib/function.d.ts +52 -0
  71. package/lib/function.js +101 -0
  72. package/lib/http/Axios.d.ts +3 -0
  73. package/lib/http/Axios.js +59 -0
  74. package/lib/http/Fetch.d.ts +2 -0
  75. package/lib/http/Fetch.js +71 -0
  76. package/lib/http/Got.d.ts +3 -0
  77. package/lib/http/Got.js +60 -0
  78. package/lib/http/Mock.d.ts +2 -0
  79. package/lib/http/Mock.js +52 -0
  80. package/lib/index.d.ts +48 -0
  81. package/lib/index.js +86 -0
  82. package/lib/log/Void.d.ts +3 -0
  83. package/lib/log/Void.js +6 -0
  84. package/lib/number.d.ts +3 -0
  85. package/lib/number.js +8 -0
  86. package/lib/storage/Flydrive.d.ts +4 -0
  87. package/lib/storage/Flydrive.js +67 -0
  88. package/lib/storage/Fs.d.ts +3 -0
  89. package/lib/storage/Fs.js +53 -0
  90. package/lib/string.d.ts +5 -0
  91. package/lib/string.js +33 -0
  92. package/lib/struct.d.ts +9 -0
  93. package/lib/struct.js +47 -0
  94. package/package.json +87 -0
package/lib/Mock.js ADDED
@@ -0,0 +1,113 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
5
+ }) : (function(o, m, k, k2) {
6
+ if (k2 === undefined) k2 = k;
7
+ o[k2] = m[k];
8
+ }));
9
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
10
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
11
+ }) : function(o, v) {
12
+ o["default"] = v;
13
+ });
14
+ var __importStar = (this && this.__importStar) || function (mod) {
15
+ if (mod && mod.__esModule) return mod;
16
+ var result = {};
17
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
18
+ __setModuleDefault(result, mod);
19
+ return result;
20
+ };
21
+ Object.defineProperty(exports, "__esModule", { value: true });
22
+ exports.null = exports.undefined = exports.void = exports.readonlyRecord = exports.readonlyNonEmptyArray = exports.readonlyArray = exports.union = exports.partial = exports.struct = exports.tuple = exports.nullable = exports.unknown = exports.literal = exports.string = exports.number = exports.integer = exports.float = exports.boolean = exports.MonadIO = exports.chainFirstIOK = exports.chainIOK = exports.fromIOK = exports.fromIO = exports.FromIO = exports.Monad = exports.bind = exports.chainFirst = exports.chain = exports.Chain = exports.Applicative = exports.apS = exports.apSecond = exports.apFirst = exports.ap = exports.Apply = exports.Do = exports.of = exports.Pointed = exports.bindTo = exports.flap = exports.map = exports.Functor = exports.URI = void 0;
23
+ const _Apply = __importStar(require("fp-ts/Apply"));
24
+ const C = __importStar(require("fp-ts/Chain"));
25
+ const FIO = __importStar(require("fp-ts/FromIO"));
26
+ const function_1 = require("fp-ts/function");
27
+ const F = __importStar(require("fp-ts/Functor"));
28
+ const IO = __importStar(require("fp-ts/IO"));
29
+ const N = __importStar(require("fp-ts/number"));
30
+ const Op = __importStar(require("fp-ts/Option"));
31
+ const Or = __importStar(require("fp-ts/Ord"));
32
+ const R = __importStar(require("fp-ts/Random"));
33
+ const RA = __importStar(require("fp-ts/ReadonlyArray"));
34
+ const RNEA = __importStar(require("fp-ts/ReadonlyNonEmptyArray"));
35
+ const RR = __importStar(require("fp-ts/ReadonlyRecord"));
36
+ const Se = __importStar(require("fp-ts/Semigroup"));
37
+ const t = __importStar(require("io-ts"));
38
+ const function_2 = require("./function");
39
+ const $GL = __importStar(require("./GeneratorL"));
40
+ const $St = __importStar(require("./struct"));
41
+ const $t = __importStar(require("./Type"));
42
+ exports.URI = 'Mock';
43
+ exports.Functor = {
44
+ URI: exports.URI,
45
+ map: (fa, f) => function_1.pipe(fa(), IO.map(f), exports.FromIO.fromIO),
46
+ };
47
+ exports.map = function_2.curry(function_1.flip(exports.Functor.map));
48
+ exports.flap = F.flap(exports.Functor);
49
+ exports.bindTo = F.bindTo(exports.Functor);
50
+ exports.Pointed = {
51
+ URI: exports.URI,
52
+ of: (a) => (...as) => function_1.pipe(as, RNEA.fromReadonlyArray, Op.traverse(IO.Applicative)(R.randomElem), IO.map(Op.match(() => a, (_a) => $t.struct.is(a) && $t.struct.is(_a)
53
+ ? function_1.pipe(_a, $St.filterDeep(function_1.not(t.undefined.is)), (_a) => $St.patch(_a)(a))
54
+ : _a))),
55
+ };
56
+ exports.of = exports.Pointed.of;
57
+ exports.Do = exports.Pointed.of({});
58
+ exports.Apply = Object.assign(Object.assign({}, exports.Functor), { ap: (fab, fa) => exports.Chain.chain(fab, function_2.curry(exports.Functor.map)(fa)) });
59
+ exports.ap = function_2.curry(function_1.flip(exports.Apply.ap));
60
+ exports.apFirst = _Apply.apFirst(exports.Apply);
61
+ exports.apSecond = _Apply.apSecond(exports.Apply);
62
+ exports.apS = _Apply.apS(exports.Apply);
63
+ exports.Applicative = Object.assign(Object.assign({}, exports.Pointed), exports.Apply);
64
+ exports.Chain = Object.assign(Object.assign({}, exports.Apply), { chain: (fa, f) => exports.Functor.map(exports.Functor.map(fa, f), (fb) => fb()()) });
65
+ exports.chain = function_2.curry(function_1.flip(exports.Chain.chain));
66
+ exports.chainFirst = C.chainFirst(exports.Chain);
67
+ exports.bind = C.bind(exports.Chain);
68
+ exports.Monad = Object.assign(Object.assign({}, exports.Applicative), exports.Chain);
69
+ exports.FromIO = {
70
+ URI: exports.URI,
71
+ fromIO: (fa) => (...as) => function_1.pipe(fa, IO.chain((a) => exports.Pointed.of(a)(...as))),
72
+ };
73
+ exports.fromIO = exports.FromIO.fromIO;
74
+ exports.fromIOK = FIO.fromIOK(exports.FromIO);
75
+ exports.chainIOK = FIO.chainIOK(exports.FromIO, exports.Chain);
76
+ exports.chainFirstIOK = FIO.chainFirstIOK(exports.FromIO, exports.Chain);
77
+ exports.MonadIO = Object.assign(Object.assign({}, exports.Monad), exports.FromIO);
78
+ const _void = () => function_1.constVoid;
79
+ exports.void = _void;
80
+ const _undefined = () => function_1.constUndefined;
81
+ exports.undefined = _undefined;
82
+ const _null = () => function_1.constNull;
83
+ exports.null = _null;
84
+ exports.boolean = exports.fromIO(R.randomBool);
85
+ const float = (min = Number.MIN_SAFE_INTEGER * 1e-6, max = Number.MAX_SAFE_INTEGER * 1e-6) => (...as) => function_1.pipe(exports.fromIO(R.randomRange(min, Math.max(min + Number.EPSILON, max)))(...as), IO.map(Or.clamp(N.Ord)(min, Math.max(min + Number.EPSILON, max - Number.EPSILON))));
86
+ exports.float = float;
87
+ const integer = (min = Number.MIN_SAFE_INTEGER * 1e-6, max = Number.MAX_SAFE_INTEGER * 1e-6) => (...as) => function_1.pipe(exports.float(min, max)(...as), IO.map(Math.floor));
88
+ exports.integer = integer;
89
+ const number = (min = Number.MIN_SAFE_INTEGER * 1e-6, max = Number.MAX_SAFE_INTEGER * 1e-6) => (...as) => function_1.pipe(union(exports.float(min, max), exports.integer(min, max))(...as), IO.map(Or.clamp(N.Ord)(min, Math.max(min + Number.EPSILON, max - Number.EPSILON))));
90
+ exports.number = number;
91
+ exports.string = exports.fromIO(() => Math.random().toString(36).split('.')[1]);
92
+ const literal = (a) => exports.of(a);
93
+ exports.literal = literal;
94
+ const unknown = (depth = 10) => function_2.recurse((_unknown, _depth) => (_depth < depth
95
+ ? union(_undefined, _null, exports.boolean, exports.number(), exports.string, exports.readonlyArray(_unknown), exports.readonlyRecord(exports.string, _unknown))
96
+ : union(_undefined, _null, exports.boolean, exports.number(), exports.string)));
97
+ exports.unknown = unknown;
98
+ const nullable = (M) => union(M, _undefined);
99
+ exports.nullable = nullable;
100
+ exports.tuple = _Apply.sequenceT(exports.Apply);
101
+ exports.struct = _Apply.sequenceS(exports.Apply);
102
+ const partial = (Ms) => function_1.pipe(Ms, RR.map(exports.nullable), exports.struct);
103
+ exports.partial = partial;
104
+ function union(...Ms) {
105
+ return function_1.pipe(Ms, R.randomElem, IO.chain(function_2.run), exports.fromIO);
106
+ }
107
+ exports.union = union;
108
+ const readonlyArray = (M, min = 0, max = 10) => function_1.pipe(R.randomInt(Math.max(0, min), Math.max(0, min, max)), IO.map((n) => function_1.pipe($GL.fromIO(M()), $GL.takeLeft(n), $GL.toReadonlyArray)), exports.fromIO);
109
+ exports.readonlyArray = readonlyArray;
110
+ const readonlyNonEmptyArray = (M, min = 1, max = 10) => exports.readonlyArray(M, Math.max(1, min), Math.max(1, min, max));
111
+ exports.readonlyNonEmptyArray = readonlyNonEmptyArray;
112
+ const readonlyRecord = (KM, TM, min = 0, max = 10) => function_1.pipe(exports.readonlyArray(exports.tuple(KM, TM), Math.max(0, min), Math.max(0, min, max))(), IO.map(RR.fromFoldable(Se.last(), RA.Foldable)), exports.fromIO);
113
+ exports.readonlyRecord = readonlyRecord;
@@ -0,0 +1,2 @@
1
+ import * as O from 'fp-ts/Option';
2
+ export declare const toBoolean: <A>(ma: O.Option<A>) => ma is O.Some<A>;
package/lib/Option.js ADDED
@@ -0,0 +1,26 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
5
+ }) : (function(o, m, k, k2) {
6
+ if (k2 === undefined) k2 = k;
7
+ o[k2] = m[k];
8
+ }));
9
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
10
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
11
+ }) : function(o, v) {
12
+ o["default"] = v;
13
+ });
14
+ var __importStar = (this && this.__importStar) || function (mod) {
15
+ if (mod && mod.__esModule) return mod;
16
+ var result = {};
17
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
18
+ __setModuleDefault(result, mod);
19
+ return result;
20
+ };
21
+ Object.defineProperty(exports, "__esModule", { value: true });
22
+ exports.toBoolean = void 0;
23
+ const function_1 = require("fp-ts/function");
24
+ const O = __importStar(require("fp-ts/Option"));
25
+ const toBoolean = (ma) => O.exists(function_1.constTrue)(ma);
26
+ exports.toBoolean = toBoolean;
@@ -0,0 +1,7 @@
1
+ import { Kind, Kind2, Kind3, Kind4, URIS, URIS2, URIS3, URIS4 } from 'fp-ts/HKT';
2
+ import * as IO from 'fp-ts/IO';
3
+ import * as MIO from 'fp-ts/MonadIO';
4
+ export declare function salt<M extends URIS4>(M: MIO.MonadIO4<M>): <S, R, E, A, B>(seed: IO.IO<A>, f: (salt: A) => Kind4<M, S, R, E, B>) => Kind4<M, S, R, E, B>;
5
+ export declare function salt<M extends URIS3>(M: MIO.MonadIO3<M>): <R, E, A, B>(seed: IO.IO<A>, f: (salt: A) => Kind3<M, R, E, B>) => Kind3<M, R, E, B>;
6
+ export declare function salt<M extends URIS2>(M: MIO.MonadIO2<M>): <E, A, B>(seed: IO.IO<A>, f: (salt: A) => Kind2<M, E, B>) => Kind2<M, E, B>;
7
+ export declare function salt<M extends URIS>(M: MIO.MonadIO1<M>): <A, B>(seed: IO.IO<A>, f: (salt: A) => Kind<M, B>) => Kind<M, B>;
package/lib/Random.js ADDED
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.salt = void 0;
4
+ function salt(M) {
5
+ return (seed, f) => M.chain(M.fromIO(seed), f);
6
+ }
7
+ exports.salt = salt;
@@ -0,0 +1,4 @@
1
+ import * as R from 'fp-ts/Reader';
2
+ export declare const pick: <R extends object>() => <K extends keyof R>(k: K) => R.Reader<Pick<R, K>, Pick<R, K>[K]>;
3
+ export declare const picks: <R extends object>() => <K extends keyof R, B>(k: K, f: (r: Pick<R, K>[K]) => R.Reader<Pick<R, K>, B>) => R.Reader<Pick<R, K>, B>;
4
+ export declare const picksW: <R1 extends object>() => <K extends keyof R1, R2, B>(k: K, f: (r: Pick<R1, K>[K]) => R.Reader<R2, B>) => R.Reader<Pick<R1, K> & R2, B>;
package/lib/Reader.js ADDED
@@ -0,0 +1,31 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
5
+ }) : (function(o, m, k, k2) {
6
+ if (k2 === undefined) k2 = k;
7
+ o[k2] = m[k];
8
+ }));
9
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
10
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
11
+ }) : function(o, v) {
12
+ o["default"] = v;
13
+ });
14
+ var __importStar = (this && this.__importStar) || function (mod) {
15
+ if (mod && mod.__esModule) return mod;
16
+ var result = {};
17
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
18
+ __setModuleDefault(result, mod);
19
+ return result;
20
+ };
21
+ Object.defineProperty(exports, "__esModule", { value: true });
22
+ exports.picksW = exports.picks = exports.pick = void 0;
23
+ const function_1 = require("fp-ts/function");
24
+ const R = __importStar(require("fp-ts/Reader"));
25
+ const $S = __importStar(require("./struct"));
26
+ const pick = () => (k) => R.asks($S.lookup(k));
27
+ exports.pick = pick;
28
+ const picks = () => (k, f) => exports.picksW()(k, f);
29
+ exports.picks = picks;
30
+ const picksW = () => (k, f) => function_1.pipe(exports.pick()(k), R.chainW(f));
31
+ exports.picksW = picksW;
@@ -0,0 +1,9 @@
1
+ import * as E from 'fp-ts/Either';
2
+ import { Lazy } from 'fp-ts/function';
3
+ import * as O from 'fp-ts/Option';
4
+ import * as RE from 'fp-ts/ReaderEither';
5
+ export declare const pick: <R extends object>() => <K extends keyof R>(k: K) => RE.ReaderEither<Pick<R, K>, never, Pick<R, K>[K]>;
6
+ export declare const picks: <R extends object>() => <K extends keyof R, E, B>(k: K, f: (r: Pick<R, K>[K]) => RE.ReaderEither<Pick<R, K>, E, B>) => RE.ReaderEither<Pick<R, K>, E, B>;
7
+ export declare const picksW: <R1 extends object>() => <K extends keyof R1, R2, E, B>(k: K, f: (r: Pick<R1, K>[K]) => RE.ReaderEither<R2, E, B>) => RE.ReaderEither<Pick<R1, K> & R2, E, B>;
8
+ export declare const picksOptionK: <R extends object>() => <E>(onNone: Lazy<E>) => <K extends keyof R, B>(k: K, f: (r: Pick<R, K>[K]) => O.Option<B>) => RE.ReaderEither<Pick<R, K>, E, B>;
9
+ export declare const picksEitherK: <R extends object>() => <K extends keyof R, _E, B>(k: K, f: (r: Pick<R, K>[K]) => E.Either<_E, B>) => RE.ReaderEither<Pick<R, K>, _E, B>;
@@ -0,0 +1,34 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
5
+ }) : (function(o, m, k, k2) {
6
+ if (k2 === undefined) k2 = k;
7
+ o[k2] = m[k];
8
+ }));
9
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
10
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
11
+ }) : function(o, v) {
12
+ o["default"] = v;
13
+ });
14
+ var __importStar = (this && this.__importStar) || function (mod) {
15
+ if (mod && mod.__esModule) return mod;
16
+ var result = {};
17
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
18
+ __setModuleDefault(result, mod);
19
+ return result;
20
+ };
21
+ Object.defineProperty(exports, "__esModule", { value: true });
22
+ exports.picksEitherK = exports.picksOptionK = exports.picksW = exports.picks = exports.pick = void 0;
23
+ const function_1 = require("fp-ts/function");
24
+ const RE = __importStar(require("fp-ts/ReaderEither"));
25
+ const pick = () => (k) => RE.asks((r) => r[k]);
26
+ exports.pick = pick;
27
+ const picks = () => (k, f) => exports.picksW()(k, f);
28
+ exports.picks = picks;
29
+ const picksW = () => (k, f) => function_1.pipe(exports.pick()(k), RE.chainW(f));
30
+ exports.picksW = picksW;
31
+ const picksOptionK = () => (onNone) => (k, f) => exports.picks()(k, RE.fromOptionK(onNone)(f));
32
+ exports.picksOptionK = picksOptionK;
33
+ const picksEitherK = () => (k, f) => exports.picks()(k, RE.fromEitherK(f));
34
+ exports.picksEitherK = picksEitherK;
@@ -0,0 +1,8 @@
1
+ import * as IO from 'fp-ts/IO';
2
+ import * as RT from 'fp-ts/ReaderTask';
3
+ import * as T from 'fp-ts/Task';
4
+ export declare const pick: <R extends object>() => <K extends keyof R>(k: K) => RT.ReaderTask<Pick<R, K>, Pick<R, K>[K]>;
5
+ export declare const picks: <R extends object>() => <K extends keyof R, B>(k: K, f: (r: Pick<R, K>[K]) => RT.ReaderTask<Pick<R, K>, B>) => RT.ReaderTask<Pick<R, K>, B>;
6
+ export declare const picksW: <R1 extends object>() => <K extends keyof R1, R2, B>(k: K, f: (r: Pick<R1, K>[K]) => RT.ReaderTask<R2, B>) => RT.ReaderTask<Pick<R1, K> & R2, B>;
7
+ export declare const picksIOK: <R extends object>() => <K extends keyof R, B>(k: K, f: (r: Pick<R, K>[K]) => IO.IO<B>) => RT.ReaderTask<Pick<R, K>, B>;
8
+ export declare const picksTaskK: <R extends object>() => <K extends keyof R, B>(k: K, f: (r: Pick<R, K>[K]) => T.Task<B>) => RT.ReaderTask<Pick<R, K>, B>;
@@ -0,0 +1,35 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
5
+ }) : (function(o, m, k, k2) {
6
+ if (k2 === undefined) k2 = k;
7
+ o[k2] = m[k];
8
+ }));
9
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
10
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
11
+ }) : function(o, v) {
12
+ o["default"] = v;
13
+ });
14
+ var __importStar = (this && this.__importStar) || function (mod) {
15
+ if (mod && mod.__esModule) return mod;
16
+ var result = {};
17
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
18
+ __setModuleDefault(result, mod);
19
+ return result;
20
+ };
21
+ Object.defineProperty(exports, "__esModule", { value: true });
22
+ exports.picksTaskK = exports.picksIOK = exports.picksW = exports.picks = exports.pick = void 0;
23
+ const function_1 = require("fp-ts/function");
24
+ const RT = __importStar(require("fp-ts/ReaderTask"));
25
+ const $S = __importStar(require("./struct"));
26
+ const pick = () => (k) => RT.asks($S.lookup(k));
27
+ exports.pick = pick;
28
+ const picks = () => (k, f) => exports.picksW()(k, f);
29
+ exports.picks = picks;
30
+ const picksW = () => (k, f) => function_1.pipe(exports.pick()(k), RT.chainW(f));
31
+ exports.picksW = picksW;
32
+ const picksIOK = () => (k, f) => exports.picks()(k, RT.fromIOK(f));
33
+ exports.picksIOK = picksIOK;
34
+ const picksTaskK = () => (k, f) => exports.picks()(k, RT.fromTaskK(f));
35
+ exports.picksTaskK = picksTaskK;
@@ -0,0 +1,17 @@
1
+ import * as E from 'fp-ts/Either';
2
+ import { Lazy } from 'fp-ts/function';
3
+ import * as IO from 'fp-ts/IO';
4
+ import * as IOE from 'fp-ts/IOEither';
5
+ import * as O from 'fp-ts/Option';
6
+ import * as RTE from 'fp-ts/ReaderTaskEither';
7
+ import * as T from 'fp-ts/Task';
8
+ import * as TE from 'fp-ts/TaskEither';
9
+ export declare const pick: <R extends object>() => <K extends keyof R>(k: K) => RTE.ReaderTaskEither<Pick<R, K>, never, Pick<R, K>[K]>;
10
+ export declare const picks: <R extends object>() => <K extends keyof R, E, B>(k: K, f: (r: Pick<R, K>[K]) => RTE.ReaderTaskEither<Pick<R, K>, E, B>) => RTE.ReaderTaskEither<Pick<R, K>, E, B>;
11
+ export declare const picksW: <R1 extends object>() => <K extends keyof R1, R2, E, B>(k: K, f: (r: Pick<R1, K>[K]) => RTE.ReaderTaskEither<R2, E, B>) => RTE.ReaderTaskEither<Pick<R1, K> & R2, E, B>;
12
+ export declare const picksOptionK: <R extends object>() => <E>(onNone: Lazy<E>) => <K extends keyof R, B>(k: K, f: (r: Pick<R, K>[K]) => O.Option<B>) => RTE.ReaderTaskEither<Pick<R, K>, E, B>;
13
+ export declare const picksEitherK: <R extends object>() => <K extends keyof R, _E, B>(k: K, f: (r: Pick<R, K>[K]) => E.Either<_E, B>) => RTE.ReaderTaskEither<Pick<R, K>, _E, B>;
14
+ export declare const picksIOK: <R extends object>() => <K extends keyof R, B>(k: K, f: (r: Pick<R, K>[K]) => IO.IO<B>) => RTE.ReaderTaskEither<Pick<R, K>, never, B>;
15
+ export declare const picksIOEitherK: <R extends object>() => <K extends keyof R, _E, B>(k: K, f: (r: Pick<R, K>[K]) => IOE.IOEither<_E, B>) => RTE.ReaderTaskEither<Pick<R, K>, _E, B>;
16
+ export declare const picksTaskK: <R extends object>() => <K extends keyof R, B>(k: K, f: (r: Pick<R, K>[K]) => T.Task<B>) => RTE.ReaderTaskEither<Pick<R, K>, never, B>;
17
+ export declare const picksTaskEitherK: <R extends object>() => <K extends keyof R, _E, B>(k: K, f: (r: Pick<R, K>[K]) => TE.TaskEither<_E, B>) => RTE.ReaderTaskEither<Pick<R, K>, _E, B>;
@@ -0,0 +1,42 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
5
+ }) : (function(o, m, k, k2) {
6
+ if (k2 === undefined) k2 = k;
7
+ o[k2] = m[k];
8
+ }));
9
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
10
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
11
+ }) : function(o, v) {
12
+ o["default"] = v;
13
+ });
14
+ var __importStar = (this && this.__importStar) || function (mod) {
15
+ if (mod && mod.__esModule) return mod;
16
+ var result = {};
17
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
18
+ __setModuleDefault(result, mod);
19
+ return result;
20
+ };
21
+ Object.defineProperty(exports, "__esModule", { value: true });
22
+ exports.picksTaskEitherK = exports.picksTaskK = exports.picksIOEitherK = exports.picksIOK = exports.picksEitherK = exports.picksOptionK = exports.picksW = exports.picks = exports.pick = void 0;
23
+ const function_1 = require("fp-ts/function");
24
+ const RTE = __importStar(require("fp-ts/ReaderTaskEither"));
25
+ const pick = () => (k) => RTE.asks((r) => r[k]);
26
+ exports.pick = pick;
27
+ const picks = () => (k, f) => exports.picksW()(k, f);
28
+ exports.picks = picks;
29
+ const picksW = () => (k, f) => function_1.pipe(exports.pick()(k), RTE.chainW(f));
30
+ exports.picksW = picksW;
31
+ const picksOptionK = () => (onNone) => (k, f) => exports.picks()(k, RTE.fromOptionK(onNone)(f));
32
+ exports.picksOptionK = picksOptionK;
33
+ const picksEitherK = () => (k, f) => exports.picks()(k, RTE.fromEitherK(f));
34
+ exports.picksEitherK = picksEitherK;
35
+ const picksIOK = () => (k, f) => function_1.pipe(exports.pick()(k), RTE.chainIOK(f));
36
+ exports.picksIOK = picksIOK;
37
+ const picksIOEitherK = () => (k, f) => exports.picks()(k, RTE.fromIOEitherK(f));
38
+ exports.picksIOEitherK = picksIOEitherK;
39
+ const picksTaskK = () => (k, f) => function_1.pipe(exports.pick()(k), RTE.chainTaskK(f));
40
+ exports.picksTaskK = picksTaskK;
41
+ const picksTaskEitherK = () => (k, f) => exports.picks()(k, RTE.fromTaskEitherK(f));
42
+ exports.picksTaskEitherK = picksTaskEitherK;
@@ -0,0 +1,75 @@
1
+ import * as E from 'fp-ts/Eq';
2
+ import * as RNEA from 'fp-ts/ReadonlyNonEmptyArray';
3
+ /**
4
+ * {@link https://en.wikipedia.org/wiki/Cartesian_product}
5
+ */
6
+ export declare const cartesian: <T extends (readonly any[])[]>(...t: T & {
7
+ readonly 0: readonly any[];
8
+ }) => readonly { [K in keyof T]: [T[K]] extends [readonly (infer A)[]] ? A : never; }[];
9
+ /**
10
+ * {@link https://en.wikipedia.org/wiki/Word_(group_theory)}
11
+ *
12
+ * @example
13
+ * import { readonlyArray } from 'fp-ts'
14
+ * import { pipe } from 'fp-ts/function'
15
+ *
16
+ * // https://en.wikipedia.org/wiki/Rock_paper_scissors#Additional_weapons
17
+ * const shapes = ['Rock', 'Paper', 'Scissors', 'Spock', 'Lizard'] as const
18
+ * const win = (a: number, b: number): boolean =>
19
+ * !!{ 1: true, 3: true }[(5 + a - b) % 5]
20
+ *
21
+ * expect(
22
+ * pipe(
23
+ * shapes,
24
+ * readonlyArray.mapWithIndex((i, a) => [i, a] as const),
25
+ * words(2),
26
+ * readonlyArray.filter(([[a], [b]]) => win(a, b)),
27
+ * readonlyArray.map(([[, a], [, b]]) => `${a} defeats ${b}`)
28
+ * )
29
+ * ).toStrictEqual([
30
+ * 'Rock defeats Scissors',
31
+ * 'Rock defeats Lizard',
32
+ * 'Paper defeats Rock',
33
+ * 'Paper defeats Spock',
34
+ * 'Scissors defeats Paper',
35
+ * 'Scissors defeats Lizard',
36
+ * 'Spock defeats Rock',
37
+ * 'Spock defeats Scissors',
38
+ * 'Lizard defeats Paper',
39
+ * 'Lizard defeats Spock',
40
+ * ])
41
+ */
42
+ export declare function words<A>(size: 3): (alphabeth: ReadonlyArray<A>) => ReadonlyArray<Readonly<[A, A, A]>>;
43
+ export declare function words<A>(size: 2): (alphabeth: ReadonlyArray<A>) => ReadonlyArray<Readonly<[A, A]>>;
44
+ export declare function words<A>(size: 1): (alphabeth: ReadonlyArray<A>) => ReadonlyArray<Readonly<[A]>>;
45
+ export declare function words<A>(size: number): (alphabeth: ReadonlyArray<A>) => Readonly<[Readonly<[]>]> | ReadonlyArray<Readonly<[A, ...ReadonlyArray<A>]>>;
46
+ export declare const allElems: <A>(E: E.Eq<A>) => (...elems: RNEA.ReadonlyNonEmptyArray<A>) => (as: readonly A[]) => as is RNEA.ReadonlyNonEmptyArray<A>;
47
+ export declare const anyElem: <A>(E: E.Eq<A>) => (...elems: RNEA.ReadonlyNonEmptyArray<A>) => (as: readonly A[]) => as is RNEA.ReadonlyNonEmptyArray<A>;
48
+ /**
49
+ * @example
50
+ * import { eq, string } from 'fp-ts'
51
+ * import { Eq } from 'fp-ts/Eq'
52
+ * import { pipe } from 'fp-ts/function'
53
+ *
54
+ * type User = { name: string; mother: string; father: string }
55
+ *
56
+ * const eqParents: Eq<User> = pipe(
57
+ * eq.tuple(string.Eq, string.Eq),
58
+ * eq.contramap(({ mother, father }) => [mother, father] as const)
59
+ * )
60
+ * const siblings = same(eqParents)
61
+ *
62
+ * expect(
63
+ * siblings([
64
+ * { name: 'Thomas', mother: 'Edith', father: 'Matthew' },
65
+ * { name: 'Thomas', mother: 'Edith', father: 'Richard' },
66
+ * ])
67
+ * ).toBe(false)
68
+ * expect(
69
+ * siblings([
70
+ * { name: 'Thomas', mother: 'Edith', father: 'Matthew' },
71
+ * { name: 'William', mother: 'Edith', father: 'Matthew' },
72
+ * ])
73
+ * ).toBe(true)
74
+ */
75
+ export declare const same: <A>(E: E.Eq<A>) => (as: readonly A[]) => boolean;
@@ -0,0 +1,70 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
5
+ }) : (function(o, m, k, k2) {
6
+ if (k2 === undefined) k2 = k;
7
+ o[k2] = m[k];
8
+ }));
9
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
10
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
11
+ }) : function(o, v) {
12
+ o["default"] = v;
13
+ });
14
+ var __importStar = (this && this.__importStar) || function (mod) {
15
+ if (mod && mod.__esModule) return mod;
16
+ var result = {};
17
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
18
+ __setModuleDefault(result, mod);
19
+ return result;
20
+ };
21
+ Object.defineProperty(exports, "__esModule", { value: true });
22
+ exports.same = exports.anyElem = exports.allElems = exports.words = exports.cartesian = void 0;
23
+ const Ap = __importStar(require("fp-ts/Apply"));
24
+ const function_1 = require("fp-ts/function");
25
+ const RA = __importStar(require("fp-ts/ReadonlyArray"));
26
+ const $E = __importStar(require("./Eq"));
27
+ const function_2 = require("./function");
28
+ /**
29
+ * {@link https://en.wikipedia.org/wiki/Cartesian_product}
30
+ */
31
+ exports.cartesian = Ap.sequenceT(RA.Apply);
32
+ function words(size) {
33
+ return (alphabet) => size < 1
34
+ ? [[]]
35
+ : function_1.pipe(alphabet, function_2.curry(RA.replicate)(size), ([head, ...tail]) => exports.cartesian(head, ...tail));
36
+ }
37
+ exports.words = words;
38
+ const allElems = (E) => (...elems) => (as) => function_1.pipe(elems, RA.intersection(E)(as), function_2.curry($E.getEqSize(RA).equals)(elems));
39
+ exports.allElems = allElems;
40
+ const anyElem = (E) => (...elems) => (as) => function_1.pipe(elems, RA.some((elem) => function_1.pipe(as, RA.elem(E)(elem))));
41
+ exports.anyElem = anyElem;
42
+ /**
43
+ * @example
44
+ * import { eq, string } from 'fp-ts'
45
+ * import { Eq } from 'fp-ts/Eq'
46
+ * import { pipe } from 'fp-ts/function'
47
+ *
48
+ * type User = { name: string; mother: string; father: string }
49
+ *
50
+ * const eqParents: Eq<User> = pipe(
51
+ * eq.tuple(string.Eq, string.Eq),
52
+ * eq.contramap(({ mother, father }) => [mother, father] as const)
53
+ * )
54
+ * const siblings = same(eqParents)
55
+ *
56
+ * expect(
57
+ * siblings([
58
+ * { name: 'Thomas', mother: 'Edith', father: 'Matthew' },
59
+ * { name: 'Thomas', mother: 'Edith', father: 'Richard' },
60
+ * ])
61
+ * ).toBe(false)
62
+ * expect(
63
+ * siblings([
64
+ * { name: 'Thomas', mother: 'Edith', father: 'Matthew' },
65
+ * { name: 'William', mother: 'Edith', father: 'Matthew' },
66
+ * ])
67
+ * ).toBe(true)
68
+ */
69
+ const same = (E) => (as) => function_1.pipe(as, RA.matchLeft(function_1.constTrue, (head, tail) => function_1.pipe(tail, RA.every(function_2.curry(E.equals)(head)))));
70
+ exports.same = same;
@@ -0,0 +1,4 @@
1
+ import * as E from 'fp-ts/Eq';
2
+ import * as RR from 'fp-ts/ReadonlyRecord';
3
+ export declare const values: <A>(as: Readonly<Record<string, A>>) => readonly A[];
4
+ export declare const same: <A>(E: E.Eq<A>) => (as: Readonly<Record<string, A>>) => boolean;
@@ -0,0 +1,28 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
5
+ }) : (function(o, m, k, k2) {
6
+ if (k2 === undefined) k2 = k;
7
+ o[k2] = m[k];
8
+ }));
9
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
10
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
11
+ }) : function(o, v) {
12
+ o["default"] = v;
13
+ });
14
+ var __importStar = (this && this.__importStar) || function (mod) {
15
+ if (mod && mod.__esModule) return mod;
16
+ var result = {};
17
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
18
+ __setModuleDefault(result, mod);
19
+ return result;
20
+ };
21
+ Object.defineProperty(exports, "__esModule", { value: true });
22
+ exports.same = exports.values = void 0;
23
+ const function_1 = require("fp-ts/function");
24
+ const $RA = __importStar(require("./ReadonlyArray"));
25
+ const values = (as) => Object.values(as);
26
+ exports.values = values;
27
+ const same = (E) => (as) => function_1.pipe(as, exports.values, $RA.same(E));
28
+ exports.same = same;
@@ -0,0 +1,14 @@
1
+ import * as A from 'fp-ts/Applicative';
2
+ import { Kind, Kind2, Kind3, Kind4, URIS, URIS2, URIS3, URIS4 } from 'fp-ts/HKT';
3
+ export declare const sequenceFst: import("fp-ts/lib/Traversable").Sequence2<"ReadonlyTuple">;
4
+ export declare function sequenceSnd<F extends URIS4>(F: A.Applicative4<F>): <TE, S, R, FE, A>(ta: Readonly<[TE, Kind4<F, S, R, FE, A>]>) => Kind4<F, S, R, FE, Readonly<[TE, A]>>;
5
+ export declare function sequenceSnd<F extends URIS3>(F: A.Applicative3<F>): <TE, R, FE, A>(ta: Readonly<[TE, Kind3<F, R, FE, A>]>) => Kind3<F, R, FE, Readonly<[TE, A]>>;
6
+ export declare function sequenceSnd<F extends URIS3, FE>(F: A.Applicative3C<F, FE>): <TE, R, A>(ta: Readonly<[TE, Kind3<F, R, FE, A>]>) => Kind3<F, R, FE, Readonly<[TE, A]>>;
7
+ export declare function sequenceSnd<F extends URIS2>(F: A.Applicative2<F>): <TE, FE, A>(ta: Readonly<[TE, Kind2<F, FE, A>]>) => Kind2<F, FE, Readonly<[TE, A]>>;
8
+ export declare function sequenceSnd<F extends URIS2, FE>(F: A.Applicative2C<F, FE>): <TE, A>(ta: Readonly<[TE, Kind2<F, FE, A>]>) => Kind2<F, FE, Readonly<[TE, A]>>;
9
+ export declare function sequenceSnd<F extends URIS>(F: A.Applicative1<F>): <TE, A>(ta: Readonly<[TE, Kind<F, A>]>) => Kind<F, Readonly<[TE, A]>>;
10
+ export declare const traverseFst: import("fp-ts/lib/Traversable").PipeableTraverse2<"ReadonlyTuple">;
11
+ export declare function traverseSnd<F extends URIS3>(F: A.Applicative3<F>): <A, FR, FE, B>(f: (a: A) => Kind3<F, FR, FE, B>) => <TE>(ta: Readonly<[TE, A]>) => Kind3<F, FR, FE, Readonly<[TE, B]>>;
12
+ export declare function traverseSnd<F extends URIS2>(F: A.Applicative2<F>): <A, FE, B>(f: (a: A) => Kind2<F, FE, B>) => <TE>(ta: Readonly<[TE, A]>) => Kind2<F, FE, Readonly<[TE, B]>>;
13
+ export declare function traverseSnd<F extends URIS2, FE>(F: A.Applicative2C<F, FE>): <A, B>(f: (a: A) => Kind2<F, FE, B>) => <TE>(ta: Readonly<[TE, A]>) => Kind2<F, FE, Readonly<[TE, B]>>;
14
+ export declare function traverseSnd<F extends URIS>(F: A.Applicative1<F>): <A, B>(f: (a: A) => Kind<F, B>) => <TE>(ta: Readonly<[TE, A]>) => Kind<F, Readonly<[TE, B]>>;
@@ -0,0 +1,34 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
5
+ }) : (function(o, m, k, k2) {
6
+ if (k2 === undefined) k2 = k;
7
+ o[k2] = m[k];
8
+ }));
9
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
10
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
11
+ }) : function(o, v) {
12
+ o["default"] = v;
13
+ });
14
+ var __importStar = (this && this.__importStar) || function (mod) {
15
+ if (mod && mod.__esModule) return mod;
16
+ var result = {};
17
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
18
+ __setModuleDefault(result, mod);
19
+ return result;
20
+ };
21
+ Object.defineProperty(exports, "__esModule", { value: true });
22
+ exports.traverseSnd = exports.traverseFst = exports.sequenceSnd = exports.sequenceFst = void 0;
23
+ const function_1 = require("fp-ts/function");
24
+ const RT = __importStar(require("fp-ts/ReadonlyTuple"));
25
+ exports.sequenceFst = RT.sequence;
26
+ function sequenceSnd(F) {
27
+ return (ta) => function_1.pipe(ta, RT.swap, RT.sequence(F), (fa) => F.map(fa, RT.swap));
28
+ }
29
+ exports.sequenceSnd = sequenceSnd;
30
+ exports.traverseFst = RT.traverse;
31
+ function traverseSnd(F) {
32
+ return (f) => (ta) => function_1.pipe(ta, RT.swap, RT.traverse(F)(f), (fa) => F.map(fa, RT.swap));
33
+ }
34
+ exports.traverseSnd = traverseSnd;
@@ -0,0 +1,15 @@
1
+ /// <reference types="node" />
2
+ import * as TE from 'fp-ts/TaskEither';
3
+ import * as $L from './Log';
4
+ export interface Storage {
5
+ readonly getStream: (path: string, options?: StorageOptions) => TE.TaskEither<Error, NodeJS.ReadableStream>;
6
+ readonly getUrl: (path: string, options?: StorageOptions) => TE.TaskEither<Error, string>;
7
+ readonly read: (path: string, options?: StorageOptions) => TE.TaskEither<Error, Buffer>;
8
+ readonly write: (path: string, options?: StorageOptions) => (data: Buffer | NodeJS.ReadableStream) => TE.TaskEither<Error, void>;
9
+ readonly delete: (path: string, options?: StorageOptions) => TE.TaskEither<Error, void>;
10
+ }
11
+ interface StorageOptions {
12
+ readonly fileSystem?: string;
13
+ }
14
+ export declare const log: (logStart: $L.Logger, logEnd?: $L.Logger) => (storage: Storage) => Storage;
15
+ export {};