effect-app 1.32.0 → 2.0.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.
- package/CHANGELOG.md +6 -0
- package/_cjs/Array.cjs +132 -0
- package/_cjs/Array.cjs.map +1 -0
- package/_cjs/Chunk.cjs +128 -0
- package/_cjs/Chunk.cjs.map +1 -0
- package/_cjs/Config/SecretURL.cjs +3 -3
- package/_cjs/Config/SecretURL.cjs.map +1 -1
- package/_cjs/Config/internal/configSecretURL.cjs +2 -2
- package/_cjs/Config/internal/configSecretURL.cjs.map +1 -1
- package/_cjs/Context.cjs +243 -0
- package/_cjs/Context.cjs.map +1 -0
- package/_cjs/Dictionary.cjs +522 -0
- package/_cjs/Dictionary.cjs.map +1 -0
- package/_cjs/Effect.cjs +202 -0
- package/_cjs/Effect.cjs.map +1 -0
- package/_cjs/Function.cjs +107 -0
- package/_cjs/Function.cjs.map +1 -0
- package/_cjs/NonEmptySet.cjs +26 -0
- package/_cjs/NonEmptySet.cjs.map +1 -0
- package/_cjs/NonEmptySetAspects.cjs +17 -0
- package/_cjs/NonEmptySetAspects.cjs.map +1 -0
- package/_cjs/NonEmptySetBase.cjs +82 -0
- package/_cjs/NonEmptySetBase.cjs.map +1 -0
- package/_cjs/Object.cjs +24 -0
- package/_cjs/Object.cjs.map +1 -0
- package/_cjs/Operations.cjs +1 -1
- package/_cjs/Option.cjs +88 -0
- package/_cjs/Option.cjs.map +1 -0
- package/_cjs/Prelude.cjs +51 -0
- package/_cjs/Prelude.cjs.map +1 -0
- package/_cjs/Prelude.code.cjs +51 -0
- package/_cjs/Prelude.code.cjs.map +1 -0
- package/_cjs/Pure.cjs +39 -36
- package/_cjs/Pure.cjs.map +1 -1
- package/_cjs/Schema/Class.cjs +61 -0
- package/_cjs/Schema/Class.cjs.map +1 -0
- package/_cjs/Schema/FastCheck.cjs +39 -0
- package/_cjs/Schema/FastCheck.cjs.map +1 -0
- package/_cjs/Schema/Methods.cjs +6 -0
- package/_cjs/Schema/Methods.cjs.map +1 -0
- package/_cjs/Schema/brand.cjs +17 -0
- package/_cjs/Schema/brand.cjs.map +1 -0
- package/_cjs/Schema/email.cjs +20 -0
- package/_cjs/Schema/email.cjs.map +1 -0
- package/_cjs/Schema/ext.cjs +174 -0
- package/_cjs/Schema/ext.cjs.map +1 -0
- package/_cjs/Schema/moreStrings.cjs +124 -0
- package/_cjs/Schema/moreStrings.cjs.map +1 -0
- package/_cjs/Schema/numbers.cjs +52 -0
- package/_cjs/Schema/numbers.cjs.map +1 -0
- package/_cjs/Schema/phoneNumber.cjs +22 -0
- package/_cjs/Schema/phoneNumber.cjs.map +1 -0
- package/_cjs/Schema/schema.cjs +15 -0
- package/_cjs/Schema/schema.cjs.map +1 -0
- package/_cjs/Schema/strings.cjs +32 -0
- package/_cjs/Schema/strings.cjs.map +1 -0
- package/_cjs/Schema.cjs +334 -0
- package/_cjs/Schema.cjs.map +1 -0
- package/_cjs/Set.cjs +567 -0
- package/_cjs/Set.cjs.map +1 -0
- package/_cjs/Struct.cjs +51 -0
- package/_cjs/Struct.cjs.map +1 -0
- package/_cjs/Tag.cjs +25 -0
- package/_cjs/Tag.cjs.map +1 -0
- package/_cjs/Unify.cjs +40 -0
- package/_cjs/Unify.cjs.map +1 -0
- package/_cjs/_ext/misc.cjs +16 -16
- package/_cjs/_ext/misc.cjs.map +1 -1
- package/_cjs/_ext/ord.ext.cjs +52 -0
- package/_cjs/_ext/ord.ext.cjs.map +1 -0
- package/_cjs/builtin.cjs +6 -0
- package/_cjs/builtin.cjs.map +1 -0
- package/_cjs/client/clientFor.cjs +5 -3
- package/_cjs/client/clientFor.cjs.map +1 -1
- package/_cjs/client/config.cjs +4 -4
- package/_cjs/client/config.cjs.map +1 -1
- package/_cjs/client/errors.cjs +9 -9
- package/_cjs/client/errors.cjs.map +1 -1
- package/_cjs/http/http-client.cjs +35 -0
- package/_cjs/http/http-client.cjs.map +1 -0
- package/_cjs/ids.cjs +5 -5
- package/_cjs/ids.cjs.map +1 -1
- package/_cjs/index.cjs +1 -1
- package/_cjs/lib.cjs +178 -9
- package/_cjs/lib.cjs.map +1 -1
- package/_cjs/logger.cjs +1 -1
- package/_cjs/transform.cjs +45 -0
- package/_cjs/transform.cjs.map +1 -0
- package/_cjs/utils/effectify.cjs +25 -0
- package/_cjs/utils/effectify.cjs.map +1 -0
- package/_cjs/utils/extend.cjs +17 -0
- package/_cjs/utils/extend.cjs.map +1 -0
- package/_cjs/utils/logger.cjs +23 -0
- package/_cjs/utils/logger.cjs.map +1 -0
- package/_cjs/utils.cjs +431 -4
- package/_cjs/utils.cjs.map +1 -1
- package/_cjs/validation/validators.cjs +32 -0
- package/_cjs/validation/validators.cjs.map +1 -0
- package/_cjs/validation.cjs +45 -0
- package/_cjs/validation.cjs.map +1 -0
- package/dist/Array.d.ts +64 -0
- package/dist/Array.d.ts.map +1 -0
- package/dist/Array.js +89 -0
- package/dist/Chunk.d.ts +68 -0
- package/dist/Chunk.d.ts.map +1 -0
- package/dist/Chunk.js +93 -0
- package/dist/Config/SecretURL.d.ts +3 -3
- package/dist/Config/SecretURL.d.ts.map +1 -1
- package/dist/Config/SecretURL.js +2 -2
- package/dist/Config/internal/configSecretURL.js +2 -2
- package/dist/Context.d.ts +55 -0
- package/dist/Context.d.ts.map +1 -0
- package/dist/Context.js +204 -0
- package/dist/Dictionary.d.ts +260 -0
- package/dist/Dictionary.d.ts.map +1 -0
- package/dist/Dictionary.js +448 -0
- package/dist/Effect.d.ts +115 -0
- package/dist/Effect.d.ts.map +1 -0
- package/dist/Effect.js +153 -0
- package/dist/Function.d.ts +72 -0
- package/dist/Function.d.ts.map +1 -0
- package/dist/Function.js +71 -0
- package/dist/Inputify.type.d.ts +1 -1
- package/dist/Inputify.type.d.ts.map +1 -1
- package/dist/NonEmptySet.d.ts +3 -0
- package/dist/NonEmptySet.d.ts.map +1 -0
- package/dist/NonEmptySet.js +3 -0
- package/dist/NonEmptySetAspects.d.ts +2 -0
- package/dist/NonEmptySetAspects.d.ts.map +1 -0
- package/dist/NonEmptySetAspects.js +2 -0
- package/dist/NonEmptySetBase.d.ts +39 -0
- package/dist/NonEmptySetBase.d.ts.map +1 -0
- package/dist/NonEmptySetBase.js +63 -0
- package/dist/Object.d.ts +7 -0
- package/dist/Object.d.ts.map +1 -0
- package/dist/Object.js +7 -0
- package/dist/Operations.d.ts +2 -2
- package/dist/Operations.js +1 -1
- package/dist/Option.d.ts +39 -0
- package/dist/Option.d.ts.map +1 -0
- package/dist/Option.js +55 -0
- package/dist/Prelude.code.d.ts +24 -0
- package/dist/Prelude.code.d.ts.map +1 -0
- package/dist/Prelude.code.js +23 -0
- package/dist/Prelude.d.ts +163 -0
- package/dist/Prelude.d.ts.map +1 -0
- package/dist/Prelude.js +23 -0
- package/dist/Pure.d.ts +13 -12
- package/dist/Pure.d.ts.map +1 -1
- package/dist/Pure.js +18 -17
- package/dist/Schema/Class.d.ts +45 -0
- package/dist/Schema/Class.d.ts.map +1 -0
- package/dist/Schema/Class.js +50 -0
- package/dist/Schema/FastCheck.d.ts +10 -0
- package/dist/Schema/FastCheck.d.ts.map +1 -0
- package/dist/Schema/FastCheck.js +12 -0
- package/dist/Schema/Methods.d.ts +6 -0
- package/dist/Schema/Methods.d.ts.map +1 -0
- package/dist/Schema/Methods.js +2 -0
- package/dist/Schema/brand.d.ts +35 -0
- package/dist/Schema/brand.d.ts.map +1 -0
- package/dist/Schema/brand.js +7 -0
- package/dist/Schema/email.d.ts +9 -0
- package/dist/Schema/email.d.ts.map +1 -0
- package/dist/Schema/email.js +12 -0
- package/dist/Schema/ext.d.ts +89 -0
- package/dist/Schema/ext.d.ts.map +1 -0
- package/dist/Schema/ext.js +111 -0
- package/dist/Schema/moreStrings.d.ts +109 -0
- package/dist/Schema/moreStrings.d.ts.map +1 -0
- package/dist/Schema/moreStrings.js +108 -0
- package/dist/Schema/numbers.d.ts +46 -0
- package/dist/Schema/numbers.d.ts.map +1 -0
- package/dist/Schema/numbers.js +28 -0
- package/dist/Schema/phoneNumber.d.ts +9 -0
- package/dist/Schema/phoneNumber.d.ts.map +1 -0
- package/dist/Schema/phoneNumber.js +14 -0
- package/dist/Schema/schema.d.ts +6 -0
- package/dist/Schema/schema.d.ts.map +1 -0
- package/dist/Schema/schema.js +5 -0
- package/dist/Schema/strings.d.ts +19 -0
- package/dist/Schema/strings.d.ts.map +1 -0
- package/dist/Schema/strings.js +32 -0
- package/dist/{schema.d.ts → Schema.d.ts} +25 -9
- package/dist/Schema.d.ts.map +1 -0
- package/dist/Schema.js +89 -0
- package/dist/Set.d.ts +221 -0
- package/dist/Set.d.ts.map +1 -0
- package/dist/Set.js +516 -0
- package/dist/Struct.d.ts +44 -0
- package/dist/Struct.d.ts.map +1 -0
- package/dist/Struct.js +29 -0
- package/dist/Tag.d.ts +9 -0
- package/dist/Tag.d.ts.map +1 -0
- package/dist/Tag.js +18 -0
- package/dist/Unify.d.ts +43 -0
- package/dist/Unify.d.ts.map +1 -0
- package/dist/Unify.js +31 -0
- package/dist/Widen.type.d.ts +1 -1
- package/dist/Widen.type.d.ts.map +1 -1
- package/dist/_ext/misc.d.ts +11 -11
- package/dist/_ext/misc.d.ts.map +1 -1
- package/dist/_ext/misc.js +8 -8
- package/dist/_ext/ord.ext.d.ts +23 -0
- package/dist/_ext/ord.ext.d.ts.map +1 -0
- package/dist/_ext/ord.ext.js +44 -0
- package/dist/builtin.d.ts +51 -0
- package/dist/builtin.d.ts.map +1 -0
- package/dist/builtin.js +2 -0
- package/dist/client/clientFor.d.ts +1 -1
- package/dist/client/clientFor.d.ts.map +1 -1
- package/dist/client/clientFor.js +2 -2
- package/dist/client/config.d.ts +1 -1
- package/dist/client/config.d.ts.map +1 -1
- package/dist/client/config.js +2 -2
- package/dist/client/errors.js +1 -1
- package/dist/http/http-client.d.ts +43 -0
- package/dist/http/http-client.d.ts.map +1 -0
- package/dist/http/http-client.js +30 -0
- package/dist/ids.d.ts +3 -3
- package/dist/ids.d.ts.map +1 -1
- package/dist/ids.js +2 -2
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -2
- package/dist/lib.d.ts +22 -4
- package/dist/lib.d.ts.map +1 -1
- package/dist/lib.js +20 -5
- package/dist/logger.d.ts.map +1 -1
- package/dist/logger.js +2 -2
- package/dist/transform.d.ts +12 -0
- package/dist/transform.d.ts.map +1 -0
- package/dist/transform.js +39 -0
- package/dist/utils/effectify.d.ts +210 -0
- package/dist/utils/effectify.d.ts.map +1 -0
- package/dist/utils/effectify.js +19 -0
- package/dist/utils/extend.d.ts +3 -0
- package/dist/utils/extend.d.ts.map +1 -0
- package/dist/utils/extend.js +9 -0
- package/dist/utils/logger.d.ts +12 -0
- package/dist/utils/logger.d.ts.map +1 -0
- package/dist/utils/logger.js +15 -0
- package/dist/utils.d.ts +192 -1
- package/dist/utils.d.ts.map +1 -1
- package/dist/utils.js +332 -2
- package/dist/validation/validators.d.ts +11 -0
- package/dist/validation/validators.d.ts.map +1 -0
- package/dist/validation/validators.js +26 -0
- package/dist/validation.d.ts +13 -0
- package/dist/validation.d.ts.map +1 -0
- package/dist/validation.js +14 -0
- package/package.json +360 -9
- package/src/Array.ts +127 -0
- package/src/Chunk.ts +112 -0
- package/src/Config/SecretURL.ts +3 -3
- package/src/Config/internal/configSecretURL.ts +1 -1
- package/src/Context.ts +293 -0
- package/src/Dictionary.ts +669 -0
- package/src/Effect.ts +265 -0
- package/src/Function.ts +175 -0
- package/src/Inputify.type.ts +1 -1
- package/src/NonEmptySet.ts +3 -0
- package/src/NonEmptySetAspects.ts +1 -0
- package/src/NonEmptySetBase.ts +109 -0
- package/src/Object.ts +19 -0
- package/src/Operations.ts +1 -1
- package/src/Option.ts +82 -0
- package/src/Prelude.code.ts +26 -0
- package/src/Prelude.ts +220 -0
- package/src/Pure.ts +37 -30
- package/src/Schema/Class.ts +225 -0
- package/src/Schema/FastCheck.ts +23 -0
- package/src/Schema/Methods.ts +8 -0
- package/src/Schema/brand.ts +50 -0
- package/src/Schema/email.ts +22 -0
- package/src/Schema/ext.ts +273 -0
- package/src/Schema/moreStrings.ts +260 -0
- package/src/Schema/numbers.ts +83 -0
- package/src/Schema/phoneNumber.ts +24 -0
- package/src/Schema/schema.ts +6 -0
- package/src/Schema/strings.ts +60 -0
- package/src/{schema.ts → Schema.ts} +52 -20
- package/src/Set.ts +674 -0
- package/src/Struct.ts +54 -0
- package/src/Tag.ts +20 -0
- package/src/Unify.ts +56 -0
- package/src/Widen.type.ts +1 -1
- package/src/_ext/misc.ts +22 -22
- package/src/_ext/ord.ext.ts +49 -0
- package/src/builtin.ts +64 -0
- package/src/client/clientFor.ts +1 -1
- package/src/client/config.ts +1 -1
- package/src/client/errors.ts +1 -1
- package/src/http/http-client.ts +73 -0
- package/src/ids.ts +3 -3
- package/src/index.ts +1 -1
- package/src/lib.ts +88 -4
- package/src/logger.ts +1 -1
- package/src/transform.ts +80 -0
- package/src/utils/effectify.ts +259 -0
- package/src/utils/extend.ts +9 -0
- package/src/utils/logger.ts +24 -0
- package/src/utils.ts +805 -1
- package/src/validation/validators.ts +32 -0
- package/src/validation.ts +18 -0
- package/tsconfig.src.json +1 -5
- package/_cjs/schema.cjs +0 -110
- package/_cjs/schema.cjs.map +0 -1
- package/dist/schema.d.ts.map +0 -1
- package/dist/schema.js +0 -73
package/dist/Array.js
ADDED
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
import { Chunk, Effect } from "effect";
|
|
2
|
+
import * as Array from "effect/Array";
|
|
3
|
+
import * as T from "effect/Effect";
|
|
4
|
+
import { dual, identity, tuple } from "./Function.js";
|
|
5
|
+
import * as Option from "./Option.js";
|
|
6
|
+
/**
|
|
7
|
+
* @tsplus getter ReadonlyArray toNonEmpty
|
|
8
|
+
* @tsplus getter Array toNonEmpty
|
|
9
|
+
* @tsplus getter effect/data/ReadonlyArray toNonEmpty
|
|
10
|
+
*/
|
|
11
|
+
export const toNonEmptyArray = (a) => a.length ? Option.some(a) : Option.none();
|
|
12
|
+
export const isArray = Array.isArray;
|
|
13
|
+
/**
|
|
14
|
+
* @tsplus static effect/data/ReadonlyArray/NonEmptyArray.Ops fromArray
|
|
15
|
+
*/
|
|
16
|
+
export function NEAFromArray(ar) {
|
|
17
|
+
return ar.length ? Option.some(ar) : Option.none();
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* @tsplus static effect/data/ReadonlyArray/NonEmptyArray.Ops fromArray
|
|
21
|
+
*/
|
|
22
|
+
export function NEROArrayFromArray(ar) {
|
|
23
|
+
return ar.length ? Option.some(ar) : Option.none();
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* @tsplus pipeable Array sortByO
|
|
27
|
+
* @tsplus pipeable ReadonlyArray sortByO
|
|
28
|
+
* @tsplus pipeable NonEmptyArray sortByO
|
|
29
|
+
* @tsplus pipeable NonEmptyArrayReadonlyArray sortByO
|
|
30
|
+
*/
|
|
31
|
+
export function sortByO(ords) {
|
|
32
|
+
return Option.match(ords, { onNone: () => identity, onSome: (_) => Array.sortBy(..._) });
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* @tsplus fluent ReadonlyArray groupByT
|
|
36
|
+
* @tsplus fluent Array groupByT
|
|
37
|
+
* @tsplus fluent NonEmptyArray groupByT
|
|
38
|
+
* @tsplus fluent NonEmptyArrayReadonlyArray groupByT
|
|
39
|
+
*/
|
|
40
|
+
export const groupByT = dual(2, (as, f) => {
|
|
41
|
+
const r = {};
|
|
42
|
+
for (const a of as) {
|
|
43
|
+
const k = f(a);
|
|
44
|
+
// eslint-disable-next-line no-prototype-builtins
|
|
45
|
+
if (r.hasOwnProperty(k)) {
|
|
46
|
+
r[k].push(a);
|
|
47
|
+
}
|
|
48
|
+
else {
|
|
49
|
+
r[k] = [a];
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
return Object.entries(r).map(([k, items]) => tuple(k, items));
|
|
53
|
+
});
|
|
54
|
+
export function randomElement(a) {
|
|
55
|
+
return a[Math.floor(Math.random() * a.length)];
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* @tsplus fluent ReadonlyArray filterWith
|
|
59
|
+
*/
|
|
60
|
+
export function filterWith(self, predicates) {
|
|
61
|
+
return self.filter((_) => predicates.every((f) => f(_)));
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* Split the `items` array into multiple, smaller chunks of the given `size`.
|
|
65
|
+
*/
|
|
66
|
+
export function* _chunk_(items_, size) {
|
|
67
|
+
const items = [...items_];
|
|
68
|
+
while (items.length) {
|
|
69
|
+
yield items.splice(0, size);
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* Split the `items` array into multiple, smaller chunks of the given `size`.
|
|
74
|
+
* @tsplus fluent Array chunk
|
|
75
|
+
* @tsplus fluent ReadonlyArray chunk
|
|
76
|
+
* @tsplus fluent effect/data/Chunk chunk
|
|
77
|
+
* @tsplus fluent Iterable chunk
|
|
78
|
+
*/
|
|
79
|
+
export function chunk_(items_, size) {
|
|
80
|
+
return Chunk.fromIterable(_chunk_(items_, size));
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* @tsplus fluent effect/data/ReadonlyArray/NonEmptyReadonlyArray forEachEffect
|
|
84
|
+
*/
|
|
85
|
+
export function forEachEffectNA(as, f) {
|
|
86
|
+
return Effect.map(T.forEach(as, f), (_) => Option.getOrNull(toNonEmptyArray(_)));
|
|
87
|
+
}
|
|
88
|
+
export * from "effect/Array";
|
|
89
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQXJyYXkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvQXJyYXkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxRQUFRLENBQUE7QUFFdEMsT0FBTyxLQUFLLEtBQUssTUFBTSxjQUFjLENBQUE7QUFDckMsT0FBTyxLQUFLLENBQUMsTUFBTSxlQUFlLENBQUE7QUFFbEMsT0FBTyxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFBO0FBQ3JELE9BQU8sS0FBSyxNQUFNLE1BQU0sYUFBYSxDQUFBO0FBRXJDOzs7O0dBSUc7QUFDSCxNQUFNLENBQUMsTUFBTSxlQUFlLEdBQUcsQ0FBSSxDQUFtQixFQUEyQyxFQUFFLENBQ2pHLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBNkIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLENBQUE7QUFFdkUsTUFBTSxDQUFDLE1BQU0sT0FBTyxHQUloQixLQUFLLENBQUMsT0FBTyxDQUFBO0FBRWpCOztHQUVHO0FBQ0gsTUFBTSxVQUFVLFlBQVksQ0FBSSxFQUFZO0lBQzFDLE9BQU8sRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFzQixDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsQ0FBQTtBQUN4RSxDQUFDO0FBRUQ7O0dBRUc7QUFDSCxNQUFNLFVBQVUsa0JBQWtCLENBQUksRUFBb0I7SUFDeEQsT0FBTyxFQUFFLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQThCLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxDQUFBO0FBQ2hGLENBQUM7QUFFRDs7Ozs7R0FLRztBQUNILE1BQU0s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
|
package/dist/Chunk.d.ts
ADDED
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
import { type Predicate, type Refinement } from "./Function.js";
|
|
2
|
+
import * as Option from "./Option.js";
|
|
3
|
+
import * as Chunk from "effect/Chunk";
|
|
4
|
+
import type { Equivalence } from "./index.js";
|
|
5
|
+
export * from "effect/Chunk";
|
|
6
|
+
/**
|
|
7
|
+
* @tsplus getter Array toChunk
|
|
8
|
+
* @tsplus getter ReadonlyArray toChunk
|
|
9
|
+
* @tsplus getter Iterable toChunk
|
|
10
|
+
* @tsplus getter Iterator toChunk
|
|
11
|
+
* @tsplus getter Generator toChunk
|
|
12
|
+
*/
|
|
13
|
+
export declare const fromIterable: <A>(self: Iterable<A>) => Chunk.Chunk<A>;
|
|
14
|
+
/**
|
|
15
|
+
* @tsplus fluent effect/data/Chunk groupByT
|
|
16
|
+
*/
|
|
17
|
+
export declare function groupByTChunk_<A, Key extends PropertyKey>(c: Chunk.Chunk<A>, f: (a: A) => Key): Chunk.Chunk<readonly [Key, readonly [A, ...A[]]]>;
|
|
18
|
+
/**
|
|
19
|
+
* Returns the first element that satisfies the predicate.
|
|
20
|
+
*
|
|
21
|
+
* @tsplus static effect/data/Chunk.Ops findFirstMap
|
|
22
|
+
* @tsplus pipeable effect/data/Chunk findFirstMap
|
|
23
|
+
*/
|
|
24
|
+
export declare function findFirstMap<A, B>(f: (a: A) => Option.Option<B>): (as: Chunk.Chunk<A>) => Option.None<never> | Option.Some<B>;
|
|
25
|
+
/**
|
|
26
|
+
* @tsplus getter effect/data/Chunk toArray
|
|
27
|
+
*/
|
|
28
|
+
export declare function toArray<T>(c: Chunk.Chunk<T>): T[];
|
|
29
|
+
/**
|
|
30
|
+
* Remove duplicates from an array, keeping the first occurrence of an element.
|
|
31
|
+
*
|
|
32
|
+
* @tsplus static effect/data/Chunk.Ops uniq
|
|
33
|
+
* @tsplus pipeable effect/data/Chunk uniq
|
|
34
|
+
*/
|
|
35
|
+
export declare function uniq<A>(E: Equivalence<A>): (self: Chunk.Chunk<A>) => Chunk.Chunk<A>;
|
|
36
|
+
/**
|
|
37
|
+
* Test if a value is a member of an array. Takes a `Equivalence<A>` as a single
|
|
38
|
+
* argument which returns the function to use to search for a value of type `A`
|
|
39
|
+
* in an array of type `Chunk<A>`.
|
|
40
|
+
*
|
|
41
|
+
* @tsplus static effect/data/Chunk.Ops elem2
|
|
42
|
+
* @tsplus pipeable effect/data/Chunk elem2
|
|
43
|
+
*/
|
|
44
|
+
export declare function elem<A>(E: Equivalence<A>, value: A): (self: Chunk.Chunk<A>) => boolean;
|
|
45
|
+
/**
|
|
46
|
+
* @tsplus pipeable effect/data/Chunk partition
|
|
47
|
+
*/
|
|
48
|
+
export declare const ChunkPartition: {
|
|
49
|
+
<A, B extends A>(refinement: (a: import("effect/Types").NoInfer<A>, i: number) => a is B): (self: Chunk.Chunk<A>) => [excluded: Chunk.Chunk<Exclude<A, B>>, satisfying: Chunk.Chunk<B>];
|
|
50
|
+
<A>(predicate: (a: import("effect/Types").NoInfer<A>, i: number) => boolean): (self: Chunk.Chunk<A>) => [excluded: Chunk.Chunk<A>, satisfying: Chunk.Chunk<A>];
|
|
51
|
+
<A, B extends A>(self: Chunk.Chunk<A>, refinement: (a: A, i: number) => a is B): [excluded: Chunk.Chunk<Exclude<A, B>>, satisfying: Chunk.Chunk<B>];
|
|
52
|
+
<A>(self: Chunk.Chunk<A>, predicate: (a: A, i: number) => boolean): [excluded: Chunk.Chunk<A>, satisfying: Chunk.Chunk<A>];
|
|
53
|
+
};
|
|
54
|
+
/**
|
|
55
|
+
* @tsplus fluent effect/data/Chunk findFirst
|
|
56
|
+
*/
|
|
57
|
+
export declare const findFirstSimple: {
|
|
58
|
+
<A, B extends A>(self: Chunk.Chunk<A>, refinement: Refinement<A, B>): Option.Option<B>;
|
|
59
|
+
<A>(self: Chunk.Chunk<A>, predicate: Predicate<A>): Option.Option<A>;
|
|
60
|
+
};
|
|
61
|
+
/**
|
|
62
|
+
* @tsplus fluent effect/data/Chunk findLast
|
|
63
|
+
*/
|
|
64
|
+
export declare const findLastSimple: {
|
|
65
|
+
<A, B extends A>(self: Chunk.Chunk<A>, refinement: Refinement<A, B>): Option.Option<B>;
|
|
66
|
+
<A>(self: Chunk.Chunk<A>, predicate: Predicate<A>): Option.Option<A>;
|
|
67
|
+
};
|
|
68
|
+
//# sourceMappingURL=Chunk.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Chunk.d.ts","sourceRoot":"","sources":["../src/Chunk.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,KAAK,SAAS,EAAE,KAAK,UAAU,EAAE,MAAM,eAAe,CAAA;AACrE,OAAO,KAAK,MAAM,MAAM,aAAa,CAAA;AAErC,OAAO,KAAK,KAAK,MAAM,cAAc,CAAA;AAErC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AAE7C,cAAc,cAAc,CAAA;AAE5B;;;;;;GAMG;AACH,eAAO,MAAM,YAAY,0CAAqB,CAAA;AAE9C;;GAEG;AACH,wBAAgB,cAAc,CAAC,CAAC,EAAE,GAAG,SAAS,WAAW,EAAE,CAAC,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,GAAG,qDAE7F;AAED;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,CAAC,EAAE,CAAC,EAC/B,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,QAEjB,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,yCAW3B;AAED;;GAEG;AACH,wBAAgB,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAEjD;AAED;;;;;GAKG;AACH,wBAAgB,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC,UACzB,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,KAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAU9C;AAED;;;;;;;GAOG;AACH,wBAAgB,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,UACnC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,KAAG,OAAO,CAQvC;AAED;;GAEG;AACH,eAAO,MAAM,cAAc;;;;;CAAkB,CAAA;AAE7C;;GAEG;AACH,eAAO,MAAM,eAAe,EAAE;IAC5B,CAAC,CAAC,EAAE,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAA;IACtF,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAA;CACnD,CAAA;AAEnB;;GAEG;AACH,eAAO,MAAM,cAAc,EAAE;IAC3B,CAAC,CAAC,EAAE,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAA;IACtF,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAA;CACpD,CAAA"}
|
package/dist/Chunk.js
ADDED
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
import { pipe } from "./Function.js";
|
|
2
|
+
import * as Option from "./Option.js";
|
|
3
|
+
import * as Chunk from "effect/Chunk";
|
|
4
|
+
import * as Array from "./Array.js";
|
|
5
|
+
export * from "effect/Chunk";
|
|
6
|
+
/**
|
|
7
|
+
* @tsplus getter Array toChunk
|
|
8
|
+
* @tsplus getter ReadonlyArray toChunk
|
|
9
|
+
* @tsplus getter Iterable toChunk
|
|
10
|
+
* @tsplus getter Iterator toChunk
|
|
11
|
+
* @tsplus getter Generator toChunk
|
|
12
|
+
*/
|
|
13
|
+
export const fromIterable = Chunk.fromIterable;
|
|
14
|
+
/**
|
|
15
|
+
* @tsplus fluent effect/data/Chunk groupByT
|
|
16
|
+
*/
|
|
17
|
+
export function groupByTChunk_(c, f) {
|
|
18
|
+
return pipe(Chunk.toReadonlyArray(c), Array.groupByT(f), Chunk.fromIterable);
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Returns the first element that satisfies the predicate.
|
|
22
|
+
*
|
|
23
|
+
* @tsplus static effect/data/Chunk.Ops findFirstMap
|
|
24
|
+
* @tsplus pipeable effect/data/Chunk findFirstMap
|
|
25
|
+
*/
|
|
26
|
+
export function findFirstMap(f) {
|
|
27
|
+
return (as) => {
|
|
28
|
+
const ass = Chunk.toReadonlyArray(as);
|
|
29
|
+
const len = ass.length;
|
|
30
|
+
for (let i = 0; i < len; i++) {
|
|
31
|
+
const v = f(ass[i]);
|
|
32
|
+
if (Option.isSome(v)) {
|
|
33
|
+
return v;
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
return Option.none();
|
|
37
|
+
};
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* @tsplus getter effect/data/Chunk toArray
|
|
41
|
+
*/
|
|
42
|
+
export function toArray(c) {
|
|
43
|
+
return Chunk.toReadonlyArray(c);
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Remove duplicates from an array, keeping the first occurrence of an element.
|
|
47
|
+
*
|
|
48
|
+
* @tsplus static effect/data/Chunk.Ops uniq
|
|
49
|
+
* @tsplus pipeable effect/data/Chunk uniq
|
|
50
|
+
*/
|
|
51
|
+
export function uniq(E) {
|
|
52
|
+
return (self) => {
|
|
53
|
+
let out = Chunk.fromIterable([]);
|
|
54
|
+
for (let i = 0; i < self.length; i++) {
|
|
55
|
+
const a = Chunk.unsafeGet(self, i);
|
|
56
|
+
if (!elem(E, a)(out)) {
|
|
57
|
+
out = Chunk.append(out, a);
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
return self.length === out.length ? self : out;
|
|
61
|
+
};
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* Test if a value is a member of an array. Takes a `Equivalence<A>` as a single
|
|
65
|
+
* argument which returns the function to use to search for a value of type `A`
|
|
66
|
+
* in an array of type `Chunk<A>`.
|
|
67
|
+
*
|
|
68
|
+
* @tsplus static effect/data/Chunk.Ops elem2
|
|
69
|
+
* @tsplus pipeable effect/data/Chunk elem2
|
|
70
|
+
*/
|
|
71
|
+
export function elem(E, value) {
|
|
72
|
+
return (self) => {
|
|
73
|
+
for (let i = 0; i < self.length; i++) {
|
|
74
|
+
if (E(Chunk.unsafeGet(self, i), value)) {
|
|
75
|
+
return true;
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
return false;
|
|
79
|
+
};
|
|
80
|
+
}
|
|
81
|
+
/**
|
|
82
|
+
* @tsplus pipeable effect/data/Chunk partition
|
|
83
|
+
*/
|
|
84
|
+
export const ChunkPartition = Chunk.partition;
|
|
85
|
+
/**
|
|
86
|
+
* @tsplus fluent effect/data/Chunk findFirst
|
|
87
|
+
*/
|
|
88
|
+
export const findFirstSimple = Chunk.findFirst;
|
|
89
|
+
/**
|
|
90
|
+
* @tsplus fluent effect/data/Chunk findLast
|
|
91
|
+
*/
|
|
92
|
+
export const findLastSimple = Chunk.findLast;
|
|
93
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ2h1bmsuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvQ2h1bmsudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLElBQUksRUFBbUMsTUFBTSxlQUFlLENBQUE7QUFDckUsT0FBTyxLQUFLLE1BQU0sTUFBTSxhQUFhLENBQUE7QUFFckMsT0FBTyxLQUFLLEtBQUssTUFBTSxjQUFjLENBQUE7QUFDckMsT0FBTyxLQUFLLEtBQUssTUFBTSxZQUFZLENBQUE7QUFHbkMsY0FBYyxjQUFjLENBQUE7QUFFNUI7Ozs7OztHQU1HO0FBQ0gsTUFBTSxDQUFDLE1BQU0sWUFBWSxHQUFHLEtBQUssQ0FBQyxZQUFZLENBQUE7QUFFOUM7O0dBRUc7QUFDSCxNQUFNLFVBQVUsY0FBYyxDQUE2QixDQUFpQixFQUFFLENBQWdCO0lBQzVGLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsRUFBRSxLQUFLLENBQUMsWUFBWSxDQUFDLENBQUE7QUFDOUUsQ0FBQztBQUVEOzs7OztHQUtHO0FBQ0gsTUFBTSxVQUFVLFlBQVksQ0FDMUIsQ0FBNkI7SUFFN0IsT0FBTyxDQUFDLEVBQWtCLEVBQUUsRUFBRTtRQUM1QixNQUFNLEdBQUcsR0FBRyxLQUFLLENBQUMsZUFBZSxDQUFDLEVBQUUsQ0FBQyxDQUFBO1FBQ3JDLE1BQU0sR0FBRyxHQUFHLEdBQUcsQ0FBQyxNQUFNLENBQUE7UUFDdEIsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDO1lBQzdCLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFFLENBQUMsQ0FBQTtZQUNwQixJQUFJLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztnQkFDckIsT0FBTyxDQUFDLENBQUE7WUFDVixDQUFDO1FBQ0gsQ0FBQztRQUNELE9BQU8sTUFBTSxDQUFDLElBQUksRUFBRSxDQUFBO0lBQ3RCLENBQUMsQ0FBQTtBQUNILENBQUM7QUFFRDs7R0FFRztBQUNILE1BQU0sVUFBVSxPQUFPLENBQUksQ0FBaUI7SUFDMUMsT0FBTyxLQUFLLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBUSxDQUFBO0FBQ3hDLENBQUM7QUFFRDs7Ozs7R0FLRztBQUNILE1BQU0sVUFBVSxJQUFJLENBQUksQ0FBaUI7SUFDdkMsT0FBTyxDQUFDLElBQW9CLEVBQWtCLEVBQUU7UUFDOUMsSUFBSSxHQUFHLEdBQUcsS0FBSyxDQUFDLFlBQVksQ0FBQyxFQUFTLENBQUMsQ0FBQTtRQUN2QyxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDO1lBQ3JDLE1BQU0sQ0FBQyxHQUFHLEtBQUssQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFBO1lBQ2xDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUM7Z0JBQ3JCLEdBQUcsR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQTtZQUM1QixDQUFDO1FBQ0gsQ0FBQztRQUNELE9BQU8sSUFBSSxDQUFDLE1BQU0sS0FBSyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQTtJQUNoRCxDQUFDLENBQUE7QUFDSCxDQUFDO0FBRUQ7Ozs7Ozs7R0FPRztBQUNILE1BQU0sVUFBVSxJQUFJLENBQUksQ0FBaUIsRUFBRSxLQUFRO0lBQ2pELE9BQU8sQ0FBQyxJQUFvQixFQUFXLEVBQUU7UUFDdkMsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQztZQUNyQyxJQUFJLENBQUMsQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsRUFBRSxLQUFLLENBQUMsRUFBRSxDQUFDO2dCQUN2QyxPQUFPLElBQUksQ0FBQTtZQUNiLENBQUM7UUFDSCxDQUFDO1FBQ0QsT0FBTyxLQUFLLENBQUE7SUFDZCxDQUFDLENBQUE7QUFDSCxDQUFDO0FBRUQ7O0dBRUc7QUFDSCxNQUFNLENBQUMsTUFBTSxjQUFjLEdBQUcsS0FBSyxDQUFDLFNBQVMsQ0FBQTtBQUU3Qzs7R0FFRztBQUNILE1BQU0sQ0FBQyxNQUFNLGVBQWUsR0FHeEIsS0FBSyxDQUFDLFNBQVMsQ0FBQTtBQUVuQjs7R0FFRztBQUNILE1BQU0sQ0FBQyxNQUFNLGNBQWMsR0FHdkIsS0FBSyxDQUFDLFFBQVEsQ0FBQSJ9
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @since 1.0.0
|
|
3
3
|
*/
|
|
4
|
-
import type { Equal, Redacted } from "
|
|
5
|
-
import { Config } from "
|
|
4
|
+
import type { Equal, Redacted } from "effect";
|
|
5
|
+
import { Config } from "effect";
|
|
6
6
|
import type * as Chunk from "effect/Chunk";
|
|
7
7
|
import type { SecretTypeId } from "effect/Secret";
|
|
8
8
|
/**
|
|
@@ -73,5 +73,5 @@ export declare const unsafeWipe: (self: SecretURL) => void;
|
|
|
73
73
|
/**
|
|
74
74
|
* @tsplus static effect/io/Config.Ops secretURL
|
|
75
75
|
*/
|
|
76
|
-
export declare const secretURL: (name?: string) => Config<SecretURL>;
|
|
76
|
+
export declare const secretURL: (name?: string) => Config.Config<SecretURL>;
|
|
77
77
|
//# sourceMappingURL=SecretURL.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SecretURL.d.ts","sourceRoot":"","sources":["../../src/Config/SecretURL.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"SecretURL.d.ts","sourceRoot":"","sources":["../../src/Config/SecretURL.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAA;AAC7C,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAC/B,OAAO,KAAK,KAAK,KAAK,MAAM,cAAc,CAAA;AAE1C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,eAAe,CAAA;AAejD;;;;GAIG;AACH,MAAM,WAAW,SAAU,SAAQ,QAAQ,CAAC,QAAQ,EAAE,SAAS,CAAC,KAAK,EAAE,KAAK,CAAC,KAAK;IAChF,gBAAgB;IAChB,QAAQ,CAAC,GAAG,EAAE,KAAK,CAAC,MAAM,CAAC,CAAA;CAC5B;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;CAAG;AAEhC,eAAO,MAAM,SAAS,EAAE,YAAiB,CAAA;AAEzC;;GAEG;AACH,MAAM,CAAC,OAAO,WAAW,SAAS,CAAC;IACjC;;;;OAIG;IACH,UAAiB,KAAK;QACpB,QAAQ,CAAC,CAAC,YAAY,CAAC,EAAE,YAAY,CAAA;KACtC;CACF;AAED;;;;;GAKG;AACH,eAAO,MAAM,WAAW,EAAE,CAAC,CAAC,EAAE,OAAO,KAAK,CAAC,IAAI,SAAgC,CAAA;AAE/E;;;;GAIG;AACH,eAAO,MAAM,IAAI,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,KAAK,SAAyB,CAAA;AAEtE;;;;GAIG;AACH,eAAO,MAAM,SAAS,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,SAA8B,CAAA;AAEtF;;;;GAIG;AACH,eAAO,MAAM,UAAU,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,SAA+B,CAAA;AAE1E;;;;GAIG;AACH,eAAO,MAAM,KAAK,EAAE,CAAC,IAAI,EAAE,SAAS,KAAK,MAAuB,CAAA;AAEhE;;;;GAIG;AACH,eAAO,MAAM,UAAU,EAAE,CAAC,IAAI,EAAE,SAAS,KAAK,IAA0B,CAAA;AAExE;;GAEG;AACH,eAAO,MAAM,SAAS,UAAW,MAAM,KAAG,MAAM,CAAC,MAAM,CAAC,SAAS,CAMhE,CAAA"}
|
package/dist/Config/SecretURL.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Config } from "
|
|
1
|
+
import { Config } from "effect";
|
|
2
2
|
import * as Either from "effect/Either";
|
|
3
3
|
import * as internal from "./internal/configSecretURL.js";
|
|
4
4
|
export const SecretURL = {};
|
|
@@ -46,4 +46,4 @@ export const secretURL = (name) => {
|
|
|
46
46
|
const config = Config.primitive("a secret property", (text) => Either.right(fromString(text)));
|
|
47
47
|
return name === undefined ? config : Config.nested(config, name);
|
|
48
48
|
};
|
|
49
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
49
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU2VjcmV0VVJMLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL0NvbmZpZy9TZWNyZXRVUkwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBSUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLFFBQVEsQ0FBQTtBQUUvQixPQUFPLEtBQUssTUFBTSxNQUFNLGVBQWUsQ0FBQTtBQUV2QyxPQUFPLEtBQUssUUFBUSxNQUFNLCtCQUErQixDQUFBO0FBNkJ6RCxNQUFNLENBQUMsTUFBTSxTQUFTLEdBQWlCLEVBQUUsQ0FBQTtBQWdCekM7Ozs7O0dBS0c7QUFDSCxNQUFNLENBQUMsTUFBTSxXQUFXLEdBQW1DLFFBQVEsQ0FBQyxXQUFXLENBQUE7QUFFL0U7Ozs7R0FJRztBQUNILE1BQU0sQ0FBQyxNQUFNLElBQUksR0FBd0MsUUFBUSxDQUFDLElBQUksQ0FBQTtBQUV0RTs7OztHQUlHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sU0FBUyxHQUE4QyxRQUFRLENBQUMsU0FBUyxDQUFBO0FBRXRGOzs7O0dBSUc7QUFDSCxNQUFNLENBQUMsTUFBTSxVQUFVLEdBQWdDLFFBQVEsQ0FBQyxVQUFVLENBQUE7QUFFMUU7Ozs7R0FJRztBQUNILE1BQU0sQ0FBQyxNQUFNLEtBQUssR0FBZ0MsUUFBUSxDQUFDLEtBQUssQ0FBQTtBQUVoRTs7OztHQUlHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sVUFBVSxHQUE4QixRQUFRLENBQUMsVUFBVSxDQUFBO0FBRXhFOztHQUVHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sU0FBUyxHQUFHLENBQUMsSUFBYSxFQUE0QixFQUFFO0lBQ25FLE1BQU0sTUFBTSxHQUFHLE1BQU0sQ0FBQyxTQUFTLENBQzdCLG1CQUFtQixFQUNuQixDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FDekMsQ0FBQTtJQUNELE9BQU8sSUFBSSxLQUFLLFNBQVMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsQ0FBQTtBQUNsRSxDQUFDLENBQUEifQ==
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Redacted } from "
|
|
1
|
+
import { Redacted } from "effect";
|
|
2
2
|
import * as Chunk from "effect/Chunk";
|
|
3
3
|
import { SecretTypeId } from "effect/Secret";
|
|
4
4
|
/** @internal */
|
|
@@ -58,4 +58,4 @@ export const unsafeWipe = (self) => {
|
|
|
58
58
|
self.raw[i] = 0;
|
|
59
59
|
}
|
|
60
60
|
};
|
|
61
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
61
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnU2VjcmV0VVJMLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL0NvbmZpZy9pbnRlcm5hbC9jb25maWdTZWNyZXRVUkwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLFFBQVEsQ0FBQTtBQUNqQyxPQUFPLEtBQUssS0FBSyxNQUFNLGNBQWMsQ0FBQTtBQUNyQyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFBO0FBRzVDLGdCQUFnQjtBQUNoQixNQUFNLENBQUMsTUFBTSxXQUFXLEdBQUcsQ0FBQyxDQUFVLEVBQTRCLEVBQUU7SUFDbEUsT0FBTyxPQUFPLENBQUMsS0FBSyxRQUFRLElBQUksQ0FBQyxJQUFJLElBQUksSUFBSSxZQUFZLElBQUksQ0FBQyxDQUFBO0FBQ2hFLENBQUMsQ0FBQTtBQUVELGdCQUFnQjtBQUNoQixNQUFNLENBQUMsTUFBTSxJQUFJLEdBQUcsQ0FBQyxLQUFvQixFQUF1QixFQUFFO0lBQ2hFLE1BQU0sTUFBTSxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQzFCLFFBQVEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUN0RSxFQUFFLENBQUMsWUFBWSxDQUFDLEVBQUUsWUFBWSxFQUFFLEdBQUcsRUFBRSxTQUFnQixFQUFXLENBQ2pFLENBQUE7SUFDRCxJQUFJLFFBQVEsR0FBRyxTQUFTLENBQUE7SUFDeEIsSUFBSSxDQUFDO1FBQ0gsTUFBTSxHQUFHLEdBQUcsSUFBSSxHQUFHLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFBO1FBQzVFLFFBQVEsR0FBRyxHQUFHLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUE7SUFDL0QsQ0FBQztJQUFDLE1BQU0sQ0FBQztRQUNQLE1BQU0sT0FBTyxHQUFHLFFBQVEsQ0FBQyxLQUFLLENBQUMsZUFBZSxDQUFDLENBQUE7UUFDL0MsSUFBSSxPQUFPLEtBQUssSUFBSSxFQUFFLENBQUM7WUFDckIsUUFBUSxHQUFHLE9BQU8sQ0FBQyxDQUFDLENBQUUsQ0FBQTtRQUN4QixDQUFDO0lBQ0gsQ0FBQztJQUNELE1BQU0sQ0FBQyxjQUFjLENBQUMsTUFBTSxFQUFFLFFBQVEsRUFBRTtRQUN0QyxVQUFVLEVBQUUsS0FBSztRQUNqQixLQUFLO1lBQ0gsT0FBTyxDQUFDO2dCQUNOLElBQUksRUFBRSxXQUFXO2dCQUNqQixRQUFRO2FBQ1QsQ0FBQyxDQUFBO1FBQ0osQ0FBQztLQUNGLENBQUMsQ0FBQTtJQUNGLE1BQU0sQ0FBQyxjQUFjLENBQUMsTUFBTSxFQUFFLFVBQVUsRUFBRTtRQUN4QyxVQUFVLEVBQUUsS0FBSztRQUNqQixLQUFLO1lBQ0gsT0FBTyxhQUFhLFFBQVEsZ0JBQWdCLENBQUE7UUFDOUMsQ0FBQztLQUNGLENBQUMsQ0FBQTtJQUNGLE1BQU0sQ0FBQyxjQUFjLENBQUMsTUFBTSxFQUFFLEtBQUssRUFBRTtRQUNuQyxVQUFVLEVBQUUsS0FBSztRQUNqQixLQUFLLEVBQUUsS0FBSztLQUNiLENBQUMsQ0FBQTtJQUNGLE9BQU8sTUFBTSxDQUFBO0FBQ2YsQ0FBQyxDQUFBO0FBRUQsZ0JBQWdCO0FBQ2hCLE1BQU0sQ0FBQyxNQUFNLFNBQVMsR0FBRyxDQUFDLEtBQTBCLEVBQXVCLEVBQUU7SUFDM0UsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLGVBQWUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBO0FBQzdFLENBQUMsQ0FBQTtBQUVELGdCQUFnQjtBQUNoQixNQUFNLENBQUMsTUFBTSxVQUFVLEdBQUcsQ0FBQyxJQUFZLEVBQXVCLEVBQUU7SUFDOUQsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBO0FBQy9ELENBQUMsQ0FBQTtBQUVELGdCQUFnQjtBQUNoQixNQUFNLENBQUMsTUFBTSxLQUFLLEdBQUcsQ0FBQyxJQUF5QixFQUFVLEVBQUU7SUFDekQsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQTtBQUNuRSxDQUFDLENBQUE7QUFFRCxnQkFBZ0I7QUFDaEIsTUFBTSxDQUFDLE1BQU0sVUFBVSxHQUFHLENBQUMsSUFBeUIsRUFBUSxFQUFFO0lBQzVELEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDO1FBQ3pDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFBO0lBQ2pCLENBQUM7QUFDSCxDQUFDLENBQUEifQ==
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* We're doing the long way around here with assignTag, TagBase & TagBaseTagged,
|
|
3
|
+
* because there's a typescript compiler issue where it will complain about Equal.symbol, and Hash.symbol not being accessible.
|
|
4
|
+
* https://github.com/microsoft/TypeScript/issues/52644
|
|
5
|
+
*/
|
|
6
|
+
import type { Scope } from "effect";
|
|
7
|
+
import { Effect, Layer } from "effect";
|
|
8
|
+
import * as Context from "effect/Context";
|
|
9
|
+
export * from "effect/Context";
|
|
10
|
+
export declare const ServiceTag: unique symbol;
|
|
11
|
+
export type ServiceTag = typeof ServiceTag;
|
|
12
|
+
export declare abstract class PhantomTypeParameter<Identifier extends keyof any, InstantiatedType> {
|
|
13
|
+
protected abstract readonly [ServiceTag]: {
|
|
14
|
+
readonly [NameP in Identifier]: (_: InstantiatedType) => InstantiatedType;
|
|
15
|
+
};
|
|
16
|
+
}
|
|
17
|
+
export type ServiceShape<T extends Context.TagClassShape<any, any>> = Omit<T, keyof Context.TagClassShape<any, any>>;
|
|
18
|
+
/**
|
|
19
|
+
* @tsplus type ServiceTagged
|
|
20
|
+
*/
|
|
21
|
+
export declare abstract class ServiceTagged<ServiceKey> extends PhantomTypeParameter<string, ServiceKey> {
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* @tsplus static ServiceTagged make
|
|
25
|
+
*/
|
|
26
|
+
export declare function makeService<T extends ServiceTagged<any>>(_: Omit<T, ServiceTag>): T;
|
|
27
|
+
export declare function assignTag<Id, Service = Id>(key?: string, creationError?: Error): <S extends object>(cls: S) => S & Context.Tag<Id, Service>;
|
|
28
|
+
export type ServiceAcessorShape<Self, Type> = (Type extends Record<PropertyKey, any> ? {
|
|
29
|
+
[k in keyof Type as Type[k] extends ((...args: [...infer Args]) => infer Ret) ? ((...args: Readonly<Args>) => Ret) extends Type[k] ? k : never : k]: Type[k] extends (...args: [...infer Args]) => Effect.Effect<infer A, infer E, infer R> ? (...args: Readonly<Args>) => Effect.Effect<A, E, Self | R> : Type[k] extends (...args: [...infer Args]) => infer A ? (...args: Readonly<Args>) => Effect.Effect<A, never, Self> : Type[k] extends Effect.Effect<infer A, infer E, infer R> ? Effect.Effect<A, E, Self | R> : Effect.Effect<Type[k], never, Self>;
|
|
30
|
+
} : {}) & {
|
|
31
|
+
use: <X>(body: (_: Type) => X) => X extends Effect.Effect<infer A, infer E, infer R> ? Effect.Effect<A, E, R | Self> : Effect.Effect<X, never, Self>;
|
|
32
|
+
};
|
|
33
|
+
export declare const proxify: <T extends object>(Tag: T) => <Self, Shape>() => T & ServiceAcessorShape<Self, Shape>;
|
|
34
|
+
export declare function TagId<const Key extends string>(key: Key): <Id, ServiceImpl>() => (abstract new (service: ServiceImpl) => Readonly<ServiceImpl> & Context.TagClassShape<Key, ServiceImpl>) & {
|
|
35
|
+
toLayer: <E, R>(eff: Effect.Effect<Omit<Id, keyof Context.TagClassShape<any, any>>, E, R>) => Layer.Layer<Id, E, R>;
|
|
36
|
+
toLayerScoped: <E, R_1>(eff: Effect.Effect<Omit<Id, keyof Context.TagClassShape<any, any>>, E, R_1>) => Layer.Layer<Id, E, Exclude<R_1, Scope.Scope>>;
|
|
37
|
+
of: (service: Omit<Id, keyof Context.TagClassShape<any, any>>) => Id;
|
|
38
|
+
} & Context.Tag<Id, Id> & (ServiceImpl extends Record<PropertyKey, any> ? { [k in keyof ServiceImpl as ServiceImpl[k] extends (...args: infer Args) => infer Ret ? ((...args: Readonly<Args>) => Ret) extends ServiceImpl[k] ? k : never : k]: ServiceImpl[k] extends (...args: infer Args) => Effect.Effect<infer A, infer E, infer R_2> ? (...args: Readonly<Args>) => Effect.Effect<A, E, R_2 | Id> : ServiceImpl[k] extends (...args: infer Args) => infer A ? (...args: Readonly<Args>) => Effect.Effect<A, never, Id> : ServiceImpl[k] extends Effect.Effect<infer A, infer E, infer R_2> ? Effect.Effect<A, E, R_2 | Id> : Effect.Effect<ServiceImpl[k], never, Id>; } : {}) & {
|
|
39
|
+
use: <X>(body: (_: ServiceImpl) => X) => X extends Effect.Effect<infer A_1, infer E_1, infer R_3> ? Effect.Effect<A_1, E_1, R_3 | Id> : Effect.Effect<X, never, Id>;
|
|
40
|
+
};
|
|
41
|
+
export declare const TagMakeId: <ServiceImpl, R, E, const Key extends string>(key: Key, make: Effect.Effect<ServiceImpl, E, R>) => <Id>() => (abstract new (service: ServiceImpl) => Readonly<ServiceImpl> & Context.TagClassShape<Key, ServiceImpl>) & {
|
|
42
|
+
toLayer: {
|
|
43
|
+
(): Layer.Layer<Id, E, R>;
|
|
44
|
+
<E_1, R_1>(eff: Effect.Effect<Omit<Id, keyof Context.TagClassShape<any, any>>, E_1, R_1>): Layer.Layer<Id, E_1, R_1>;
|
|
45
|
+
};
|
|
46
|
+
toLayerScoped: {
|
|
47
|
+
(): Layer.Layer<Id, E, Exclude<R, Scope.Scope>>;
|
|
48
|
+
<E_1, R_2>(eff: Effect.Effect<Context.TagClassShape<any, any>, E_1, R_2>): Layer.Layer<Id, E_1, Exclude<R_2, Scope.Scope>>;
|
|
49
|
+
};
|
|
50
|
+
of: (service: Context.TagClassShape<any, any>) => Id;
|
|
51
|
+
make: Effect.Effect<Id, E, R>;
|
|
52
|
+
} & Context.Tag<Id, Id> & (ServiceImpl extends Record<PropertyKey, any> ? { [k in keyof ServiceImpl as ServiceImpl[k] extends (...args: infer Args) => infer Ret ? ((...args: Readonly<Args>) => Ret) extends ServiceImpl[k] ? k : never : k]: ServiceImpl[k] extends (...args: infer Args) => Effect.Effect<infer A, infer E_1, infer R_3> ? (...args: Readonly<Args>) => Effect.Effect<A, E_1, R_3 | Id> : ServiceImpl[k] extends (...args: infer Args) => infer A ? (...args: Readonly<Args>) => Effect.Effect<A, never, Id> : ServiceImpl[k] extends Effect.Effect<infer A, infer E_1, infer R_3> ? Effect.Effect<A, E_1, R_3 | Id> : Effect.Effect<ServiceImpl[k], never, Id>; } : {}) & {
|
|
53
|
+
use: <X>(body: (_: ServiceImpl) => X) => X extends Effect.Effect<infer A_1, infer E_2, infer R_4> ? Effect.Effect<A_1, E_2, R_4 | Id> : Effect.Effect<X, never, Id>;
|
|
54
|
+
};
|
|
55
|
+
//# sourceMappingURL=Context.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Context.d.ts","sourceRoot":"","sources":["../src/Context.ts"],"names":[],"mappings":"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"}
|
package/dist/Context.js
ADDED
|
@@ -0,0 +1,204 @@
|
|
|
1
|
+
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
2
|
+
/**
|
|
3
|
+
* We're doing the long way around here with assignTag, TagBase & TagBaseTagged,
|
|
4
|
+
* because there's a typescript compiler issue where it will complain about Equal.symbol, and Hash.symbol not being accessible.
|
|
5
|
+
* https://github.com/microsoft/TypeScript/issues/52644
|
|
6
|
+
*/
|
|
7
|
+
import { Effect, Layer } from "effect";
|
|
8
|
+
import * as Context from "effect/Context";
|
|
9
|
+
export * from "effect/Context";
|
|
10
|
+
export const ServiceTag = Symbol();
|
|
11
|
+
export class PhantomTypeParameter {
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* @tsplus type ServiceTagged
|
|
15
|
+
*/
|
|
16
|
+
export class ServiceTagged extends PhantomTypeParameter {
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* @tsplus static ServiceTagged make
|
|
20
|
+
*/
|
|
21
|
+
export function makeService(_) {
|
|
22
|
+
return _;
|
|
23
|
+
}
|
|
24
|
+
let i = 0;
|
|
25
|
+
const randomId = () => "unknown-service-" + i++;
|
|
26
|
+
export function assignTag(key, creationError) {
|
|
27
|
+
return (cls) => {
|
|
28
|
+
const tag = Context.GenericTag(key ?? randomId());
|
|
29
|
+
let fields = tag;
|
|
30
|
+
if (Reflect.ownKeys(cls).includes("key")) {
|
|
31
|
+
const { key, ...rest } = tag;
|
|
32
|
+
fields = rest;
|
|
33
|
+
}
|
|
34
|
+
const t = Object.assign(cls, Object.getPrototypeOf(tag), fields);
|
|
35
|
+
if (!creationError) {
|
|
36
|
+
const limit = Error.stackTraceLimit;
|
|
37
|
+
Error.stackTraceLimit = 2;
|
|
38
|
+
creationError = new Error();
|
|
39
|
+
Error.stackTraceLimit = limit;
|
|
40
|
+
}
|
|
41
|
+
// the stack is used to get the location of the tag definition, if a service is not found in the registry
|
|
42
|
+
Object.defineProperty(t, "stack", {
|
|
43
|
+
get() {
|
|
44
|
+
return creationError.stack;
|
|
45
|
+
}
|
|
46
|
+
});
|
|
47
|
+
return t;
|
|
48
|
+
};
|
|
49
|
+
}
|
|
50
|
+
export const proxify = (Tag) => () => {
|
|
51
|
+
const cache = new Map();
|
|
52
|
+
const done = new Proxy(Tag, {
|
|
53
|
+
get(_target, prop, _receiver) {
|
|
54
|
+
if (prop === "use") {
|
|
55
|
+
// @ts-expect-error abc
|
|
56
|
+
return (body) => Effect.andThen(Tag, body);
|
|
57
|
+
}
|
|
58
|
+
if (prop in Tag) {
|
|
59
|
+
return Tag[prop];
|
|
60
|
+
}
|
|
61
|
+
if (cache.has(prop)) {
|
|
62
|
+
return cache.get(prop);
|
|
63
|
+
}
|
|
64
|
+
const fn = (...args) => Effect.andThen(Tag, (s) => s[prop](...args));
|
|
65
|
+
// @ts-expect-error abc
|
|
66
|
+
const cn = Effect.andThen(Tag, (s) => s[prop]);
|
|
67
|
+
Object.assign(fn, cn);
|
|
68
|
+
Object.setPrototypeOf(fn, Object.getPrototypeOf(cn));
|
|
69
|
+
cache.set(prop, fn);
|
|
70
|
+
return fn;
|
|
71
|
+
}
|
|
72
|
+
});
|
|
73
|
+
return done;
|
|
74
|
+
};
|
|
75
|
+
// export const TagMake = <ServiceImpl, R, E, const Key extends string>(
|
|
76
|
+
// key: Key,
|
|
77
|
+
// make: Effect.Effect<ServiceImpl, E, R>
|
|
78
|
+
// ) =>
|
|
79
|
+
// <Id>() => {
|
|
80
|
+
// const limit = Error.stackTraceLimit
|
|
81
|
+
// Error.stackTraceLimit = 2
|
|
82
|
+
// const creationError = new Error()
|
|
83
|
+
// Error.stackTraceLimit = limit
|
|
84
|
+
// const c: {
|
|
85
|
+
// new(): Context.TagClassShape<Key, ServiceImpl>
|
|
86
|
+
// toLayer: () => Layer<Id, E, R>
|
|
87
|
+
// toLayerScoped: () => Layer<Id, E, Exclude<R, Scope>>
|
|
88
|
+
// } = class {
|
|
89
|
+
// static toLayer = () => {
|
|
90
|
+
// return Layer.effect(this as any, make)
|
|
91
|
+
// }
|
|
92
|
+
// static toLayerScoped = () => {
|
|
93
|
+
// return Layer.scoped(this as any, make)
|
|
94
|
+
// }
|
|
95
|
+
// // eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
96
|
+
// } as any
|
|
97
|
+
// return proxify(assignTag<Id, ServiceImpl>(key, creationError)(c))<Id, ServiceImpl>()
|
|
98
|
+
// }
|
|
99
|
+
// export function Tag<Id, ServiceImpl, Service = Id>(key?: string) {
|
|
100
|
+
// const limit = Error.stackTraceLimit
|
|
101
|
+
// Error.stackTraceLimit = 2
|
|
102
|
+
// const creationError = new Error()
|
|
103
|
+
// Error.stackTraceLimit = limit
|
|
104
|
+
// const c: (abstract new(impl: ServiceImpl) => Readonly<ServiceImpl>) & {
|
|
105
|
+
// toLayer: <E, R>(eff: Effect.Effect<ServiceImpl, E, R>) => Layer<Id, E, R>
|
|
106
|
+
// toLayerScoped: <E, R>(eff: Effect.Effect<ServiceImpl, E, R>) => Layer<Id, E, Exclude<R, Scope>>
|
|
107
|
+
// } = class {
|
|
108
|
+
// constructor(service: ServiceImpl) {
|
|
109
|
+
// Object.assign(this, service)
|
|
110
|
+
// }
|
|
111
|
+
// static _key?: string
|
|
112
|
+
// static toLayer = <E, R>(eff: Effect.Effect<ServiceImpl, E, R>) => {
|
|
113
|
+
// return Layer.effect(this as any, eff)
|
|
114
|
+
// }
|
|
115
|
+
// static toLayerScoped = <E, R>(eff: Effect.Effect<ServiceImpl, E, R>) => {
|
|
116
|
+
// return Layer.scoped(this as any, eff)
|
|
117
|
+
// }
|
|
118
|
+
// static get key() {
|
|
119
|
+
// return this._key ?? (this._key = key ?? creationError.stack?.split("\n")[2] ?? this.name)
|
|
120
|
+
// }
|
|
121
|
+
// } as any
|
|
122
|
+
// return proxify(assignTag<Id, Service>(key, creationError)(c))<Id, ServiceImpl>()
|
|
123
|
+
// }
|
|
124
|
+
// export const TagMake = <ServiceImpl, R, E>(
|
|
125
|
+
// make: Effect.Effect<ServiceImpl, E, R>,
|
|
126
|
+
// key?: string
|
|
127
|
+
// ) =>
|
|
128
|
+
// <Id, Service = Id>() => {
|
|
129
|
+
// const limit = Error.stackTraceLimit
|
|
130
|
+
// Error.stackTraceLimit = 2
|
|
131
|
+
// const creationError = new Error()
|
|
132
|
+
// Error.stackTraceLimit = limit
|
|
133
|
+
// const c: (abstract new(impl: ServiceImpl) => Readonly<ServiceImpl>) & {
|
|
134
|
+
// toLayer: { (): Layer<Id, E, R>; <E, R>(eff: Effect.Effect<ServiceImpl, E, R>): Layer<Id, E, R> }
|
|
135
|
+
// toLayerScoped: {
|
|
136
|
+
// (): Layer<Id, E, Exclude<R, Scope>>
|
|
137
|
+
// <E, R>(eff: Effect.Effect<ServiceImpl, E, R>): Layer<Id, E, Exclude<R, Scope>>
|
|
138
|
+
// }
|
|
139
|
+
// make: Effect.Effect<Id, E, R>
|
|
140
|
+
// } = class {
|
|
141
|
+
// constructor(service: ServiceImpl) {
|
|
142
|
+
// Object.assign(this, service)
|
|
143
|
+
// }
|
|
144
|
+
// static _key: string
|
|
145
|
+
// static make = make
|
|
146
|
+
// // works around an issue where defining layer on the class messes up and causes the Tag to infer to `any, any` :/
|
|
147
|
+
// static toLayer = (arg?: any) => {
|
|
148
|
+
// return Layer.effect(this as any, arg ?? this.make)
|
|
149
|
+
// }
|
|
150
|
+
// static toLayerScoped = (arg?: any) => {
|
|
151
|
+
// return Layer.scoped(this as any, arg ?? this.make)
|
|
152
|
+
// }
|
|
153
|
+
// static get key() {
|
|
154
|
+
// return this._key ?? (this._key = key ?? creationError.stack?.split("\n")[2] ?? this.name)
|
|
155
|
+
// }
|
|
156
|
+
// // eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
157
|
+
// } as any
|
|
158
|
+
// return proxify(assignTag<Id, Service>(key, creationError)(c))<Id, ServiceImpl>()
|
|
159
|
+
// }
|
|
160
|
+
export function TagId(key) {
|
|
161
|
+
return () => {
|
|
162
|
+
const limit = Error.stackTraceLimit;
|
|
163
|
+
Error.stackTraceLimit = 2;
|
|
164
|
+
const creationError = new Error();
|
|
165
|
+
Error.stackTraceLimit = limit;
|
|
166
|
+
const c = class {
|
|
167
|
+
constructor(service) {
|
|
168
|
+
// TODO: instead, wrap the service, and direct calls?
|
|
169
|
+
Object.assign(this, service);
|
|
170
|
+
}
|
|
171
|
+
static of = (service) => service;
|
|
172
|
+
static toLayer = (eff) => {
|
|
173
|
+
return Layer.effect(this, eff);
|
|
174
|
+
};
|
|
175
|
+
static toLayerScoped = (eff) => {
|
|
176
|
+
return Layer.scoped(this, eff);
|
|
177
|
+
};
|
|
178
|
+
};
|
|
179
|
+
return proxify(assignTag(key, creationError)(c))();
|
|
180
|
+
};
|
|
181
|
+
}
|
|
182
|
+
export const TagMakeId = (key, make) => () => {
|
|
183
|
+
const limit = Error.stackTraceLimit;
|
|
184
|
+
Error.stackTraceLimit = 2;
|
|
185
|
+
const creationError = new Error();
|
|
186
|
+
Error.stackTraceLimit = limit;
|
|
187
|
+
const c = class {
|
|
188
|
+
constructor(service) {
|
|
189
|
+
// TODO: instead, wrap the service, and direct calls?
|
|
190
|
+
Object.assign(this, service);
|
|
191
|
+
}
|
|
192
|
+
static of = (service) => service;
|
|
193
|
+
static make = make;
|
|
194
|
+
// works around an issue where defining layer on the class messes up and causes the Tag to infer to `any, any` :/
|
|
195
|
+
static toLayer = (arg) => {
|
|
196
|
+
return Layer.effect(this, arg ?? this.make);
|
|
197
|
+
};
|
|
198
|
+
static toLayerScoped = (arg) => {
|
|
199
|
+
return Layer.scoped(this, arg ?? this.make);
|
|
200
|
+
};
|
|
201
|
+
};
|
|
202
|
+
return proxify(assignTag(key, creationError)(c))();
|
|
203
|
+
};
|
|
204
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ29udGV4dC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9Db250ZXh0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLHVEQUF1RDtBQUN2RDs7OztHQUlHO0FBR0gsT0FBTyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxRQUFRLENBQUE7QUFDdEMsT0FBTyxLQUFLLE9BQU8sTUFBTSxnQkFBZ0IsQ0FBQTtBQUV6QyxjQUFjLGdCQUFnQixDQUFBO0FBRTlCLE1BQU0sQ0FBQyxNQUFNLFVBQVUsR0FBRyxNQUFNLEVBQUUsQ0FBQTtBQUdsQyxNQUFNLE9BQWdCLG9CQUFvQjtDQUl6QztBQU9EOztHQUVHO0FBQ0gsTUFBTSxPQUFnQixhQUEwQixTQUFRLG9CQUF3QztDQUFHO0FBRW5HOztHQUVHO0FBQ0gsTUFBTSxVQUFVLFdBQVcsQ0FBK0IsQ0FBc0I7SUFDOUUsT0FBTyxDQUFNLENBQUE7QUFDZixDQUFDO0FBRUQsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFBO0FBQ1QsTUFBTSxRQUFRLEdBQUcsR0FBRyxFQUFFLENBQUMsa0JBQWtCLEdBQUcsQ0FBQyxFQUFFLENBQUE7QUFFL0MsTUFBTSxVQUFVLFNBQVMsQ0FBbUIsR0FBWSxFQUFFLGFBQXFCO0lBQzdFLE9BQU8sQ0FBbUIsR0FBTSxFQUFnQyxFQUFFO1FBQ2hFLE1BQU0sR0FBRyxHQUFHLE9BQU8sQ0FBQyxVQUFVLENBQWMsR0FBRyxJQUFJLFFBQVEsRUFBRSxDQUFDLENBQUE7UUFDOUQsSUFBSSxNQUFNLEdBQUcsR0FBRyxDQUFBO1FBQ2hCLElBQUksT0FBTyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUN6QyxNQUFNLEVBQUUsR0FBRyxFQUFFLEdBQUcsSUFBSSxFQUFFLEdBQUcsR0FBRyxDQUFBO1lBQzVCLE1BQU0sR0FBRyxJQUFXLENBQUE7UUFDdEIsQ0FBQztRQUNELE1BQU0sQ0FBQyxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsR0FBRyxFQUFFLE1BQU0sQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDLEVBQUUsTUFBTSxDQUFDLENBQUE7UUFDaEUsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1lBQ25CLE1BQU0sS0FBSyxHQUFHLEtBQUssQ0FBQyxlQUFlLENBQUE7WUFDbkMsS0FBSyxDQUFDLGVBQWUsR0FBRyxDQUFDLENBQUE7WUFDekIsYUFBYSxHQUFHLElBQUksS0FBSyxFQUFFLENBQUE7WUFDM0IsS0FBSyxDQUFDLGVBQWUsR0FBRyxLQUFLLENBQUE7UUFDL0IsQ0FBQztRQUNELHlHQUF5RztRQUN6RyxNQUFNLENBQUMsY0FBYyxDQUFDLENBQUMsRUFBRSxPQUFPLEVBQUU7WUFDaEMsR0FBRztnQkFDRCxPQUFPLGFBQWMsQ0FBQyxLQUFLLENBQUE7WUFDN0IsQ0FBQztTQUNGLENBQUMsQ0FBQTtRQUNGLE9BQU8sQ0FBQyxDQUFBO0lBQ1YsQ0FBQyxDQUFBO0FBQ0gsQ0FBQztBQXVCRCxNQUFNLENBQUMsTUFBTSxPQUFPLEdBQUcsQ0FBbUIsR0FBTSxFQUFFLEVBQUUsQ0FDcEQsR0FFcUMsRUFBRTtJQUVyQyxNQUFNLEtBQUssR0FBRyxJQUFJLEdBQUcsRUFBRSxDQUFBO0lBQ3ZCLE1BQU0sSUFBSSxHQUFHLElBQUksS0FBSyxDQUFDLEdBQUcsRUFBRTtRQUMxQixHQUFHLENBQUMsT0FBWSxFQUFFLElBQVMsRUFBRSxTQUFTO1lBQ3BDLElBQUksSUFBSSxLQUFLLEtBQUssRUFBRSxDQUFDO2dCQUNuQix1QkFBdUI7Z0JBQ3ZCLE9BQU8sQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxDQUFBO1lBQzVDLENBQUM7WUFDRCxJQUFJLElBQUksSUFBSSxHQUFHLEVBQUUsQ0FBQztnQkFDaEIsT0FBUSxHQUFXLENBQUMsSUFBSSxDQUFDLENBQUE7WUFDM0IsQ0FBQztZQUNELElBQUksS0FBSyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO2dCQUNwQixPQUFPLEtBQUssQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUE7WUFDeEIsQ0FBQztZQUNELE1BQU0sRUFBRSxHQUFHLENBQUMsR0FBRyxJQUFnQixFQUFFLEVBQUUsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLEdBQVUsRUFBRSxDQUFDLENBQU0sRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQTtZQUM1Rix1QkFBdUI7WUFDdkIsTUFBTSxFQUFFLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFBO1lBQzlDLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFBO1lBQ3JCLE1BQU0sQ0FBQyxjQUFjLENBQUMsRUFBRSxFQUFFLE1BQU0sQ0FBQyxjQUFjLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQTtZQUNwRCxLQUFLLENBQUMsR0FBRyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsQ0FBQTtZQUNuQixPQUFPLEVBQUUsQ0FBQTtRQUNYLENBQUM7S0FDRixDQUFDLENBQUE7SUFDRixPQUFPLElBQUksQ0FBQTtBQUNiLENBQUMsQ0FBQTtBQUVELHdFQUF3RTtBQUN4RSxjQUFjO0FBQ2QsMkNBQTJDO0FBQzNDLE9BQU87QUFDUCxjQUFjO0FBQ2Qsd0NBQXdDO0FBQ3hDLDhCQUE4QjtBQUM5QixzQ0FBc0M7QUFDdEMsa0NBQWtDO0FBQ2xDLGVBQWU7QUFDZixxREFBcUQ7QUFDckQscUNBQXFDO0FBQ3JDLDJEQUEyRDtBQUMzRCxnQkFBZ0I7QUFDaEIsK0JBQStCO0FBQy9CLCtDQUErQztBQUMvQyxRQUFRO0FBRVIscUNBQXFDO0FBQ3JDLCtDQUErQztBQUMvQyxRQUFRO0FBQ1IscUVBQXFFO0FBQ3JFLGFBQWE7QUFFYix5RkFBeUY7QUFDekYsSUFBSTtBQUVKLHFFQUFxRTtBQUNyRSx3Q0FBd0M7QUFDeEMsOEJBQThCO0FBQzlCLHNDQUFzQztBQUN0QyxrQ0FBa0M7QUFDbEMsNEVBQTRFO0FBQzVFLGdGQUFnRjtBQUNoRixzR0FBc0c7QUFDdEcsZ0JBQWdCO0FBQ2hCLDBDQUEwQztBQUMxQyxxQ0FBcUM7QUFDckMsUUFBUTtBQUNSLDJCQUEyQjtBQUMzQiwwRUFBMEU7QUFDMUUsOENBQThDO0FBQzlDLFFBQVE7QUFDUixnRkFBZ0Y7QUFDaEYsOENBQThDO0FBQzlDLFFBQVE7QUFDUix5QkFBeUI7QUFDekIsa0dBQWtHO0FBQ2xHLFFBQVE7QUFDUixhQUFhO0FBRWIscUZBQXFGO0FBQ3JGLElBQUk7QUFFSiw4Q0FBOEM7QUFDOUMsNENBQTRDO0FBQzVDLGlCQUFpQjtBQUNqQixPQUFPO0FBQ1AsNEJBQTRCO0FBQzVCLHdDQUF3QztBQUN4Qyw4QkFBOEI7QUFDOUIsc0NBQXNDO0FBQ3RDLGtDQUFrQztBQUNsQyw0RUFBNEU7QUFDNUUsdUdBQXVHO0FBQ3ZHLHVCQUF1QjtBQUN2Qiw0Q0FBNEM7QUFDNUMsdUZBQXVGO0FBQ3ZGLFFBQVE7QUFDUixvQ0FBb0M7QUFDcEMsZ0JBQWdCO0FBQ2hCLDBDQUEwQztBQUMxQyxxQ0FBcUM7QUFDckMsUUFBUTtBQUNSLDBCQUEwQjtBQUMxQix5QkFBeUI7QUFDekIsd0hBQXdIO0FBQ3hILHdDQUF3QztBQUN4QywyREFBMkQ7QUFDM0QsUUFBUTtBQUVSLDhDQUE4QztBQUM5QywyREFBMkQ7QUFDM0QsUUFBUTtBQUVSLHlCQUF5QjtBQUN6QixrR0FBa0c7QUFDbEcsUUFBUTtBQUNSLHFFQUFxRTtBQUNyRSxhQUFhO0FBRWIscUZBQXFGO0FBQ3JGLElBQUk7QUFFSixNQUFNLFVBQVUsS0FBSyxDQUEyQixHQUFRO0lBQ3RELE9BQU8sR0FBb0IsRUFBRTtRQUMzQixNQUFNLEtBQUssR0FBRyxLQUFLLENBQUMsZUFBZSxDQUFBO1FBQ25DLEtBQUssQ0FBQyxlQUFlLEdBQUcsQ0FBQyxDQUFBO1FBQ3pCLE1BQU0sYUFBYSxHQUFHLElBQUksS0FBSyxFQUFFLENBQUE7UUFDakMsS0FBSyxDQUFDLGVBQWUsR0FBRyxLQUFLLENBQUE7UUFDN0IsTUFBTSxDQUFDLEdBWUQ7WUFDRixZQUFZLE9BQVk7Z0JBQ3RCLHFEQUFxRDtnQkFDckQsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLENBQUE7WUFDOUIsQ0FBQztZQUNELE1BQU0sQ0FBQyxFQUFFLEdBQUcsQ0FBQyxPQUFvQixFQUFFLEVBQUUsQ0FBQyxPQUFPLENBQUE7WUFDN0MsTUFBTSxDQUFDLE9BQU8sR0FBRyxDQUFPLEdBQXFDLEVBQUUsRUFBRTtnQkFDL0QsT0FBTyxLQUFLLENBQUMsTUFBTSxDQUFDLElBQVcsRUFBRSxHQUFHLENBQUMsQ0FBQTtZQUN2QyxDQUFDLENBQUE7WUFDRCxNQUFNLENBQUMsYUFBYSxHQUFHLENBQU8sR0FBcUMsRUFBRSxFQUFFO2dCQUNyRSxPQUFPLEtBQUssQ0FBQyxNQUFNLENBQUMsSUFBVyxFQUFFLEdBQUcsQ0FBQyxDQUFBO1lBQ3ZDLENBQUMsQ0FBQTtTQUNLLENBQUE7UUFFVixPQUFPLE9BQU8sQ0FBQyxTQUFTLENBQVMsR0FBRyxFQUFFLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQW1CLENBQUE7SUFDN0UsQ0FBQyxDQUFBO0FBQ0gsQ0FBQztBQUVELE1BQU0sQ0FBQyxNQUFNLFNBQVMsR0FBRyxDQUN2QixHQUFRLEVBQ1IsSUFBc0MsRUFDdEMsRUFBRSxDQUNKLEdBQU8sRUFBRTtJQUNQLE1BQU0sS0FBSyxHQUFHLEtBQUssQ0FBQyxlQUFlLENBQUE7SUFDbkMsS0FBSyxDQUFDLGVBQWUsR0FBRyxDQUFDLENBQUE7SUFDekIsTUFBTSxhQUFhLEdBQUcsSUFBSSxLQUFLLEVBQUUsQ0FBQTtJQUNqQyxLQUFLLENBQUMsZUFBZSxHQUFHLEtBQUssQ0FBQTtJQUM3QixNQUFNLENBQUMsR0FlRDtRQUNGLFlBQVksT0FBWTtZQUN0QixxREFBcUQ7WUFDckQsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLENBQUE7UUFDOUIsQ0FBQztRQUVELE1BQU0sQ0FBQyxFQUFFLEdBQUcsQ0FBQyxPQUFvQixFQUFFLEVBQUUsQ0FBQyxPQUFPLENBQUE7UUFDN0MsTUFBTSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUE7UUFDbEIsaUhBQWlIO1FBQ2pILE1BQU0sQ0FBQyxPQUFPLEdBQUcsQ0FBQyxHQUFTLEVBQUUsRUFBRTtZQUM3QixPQUFPLEtBQUssQ0FBQyxNQUFNLENBQUMsSUFBVyxFQUFFLEdBQUcsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUE7UUFDcEQsQ0FBQyxDQUFBO1FBRUQsTUFBTSxDQUFDLGFBQWEsR0FBRyxDQUFDLEdBQVMsRUFBRSxFQUFFO1lBQ25DLE9BQU8sS0FBSyxDQUFDLE1BQU0sQ0FBQyxJQUFXLEVBQUUsR0FBRyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQTtRQUNwRCxDQUFDLENBQUE7S0FFSyxDQUFBO0lBRVYsT0FBTyxPQUFPLENBQUMsU0FBUyxDQUFTLEdBQUcsRUFBRSxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFtQixDQUFBO0FBQzdFLENBQUMsQ0FBQSJ9
|