effect-app 0.189.0 → 0.190.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 +24 -0
- package/package.json +8 -19
- package/vitest.config.ts.timestamp-1709838418683-4e8d39caec6be.mjs +33 -0
- package/_cjs/refinements.cjs +0 -96
- package/_cjs/refinements.cjs.map +0 -1
- package/dist/refinements.d.ts +0 -52
- package/dist/refinements.d.ts.map +0 -1
- package/dist/refinements.js +0 -81
- package/src/refinements.ts +0 -96
- package/vitest.config.ts.timestamp-1670862388823.mjs +0 -23
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,29 @@
|
|
|
1
1
|
# @effect-app/prelude
|
|
2
2
|
|
|
3
|
+
## 0.190.0
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- 790bfc2: cleanup
|
|
8
|
+
|
|
9
|
+
### Patch Changes
|
|
10
|
+
|
|
11
|
+
- Updated dependencies [790bfc2]
|
|
12
|
+
- @effect-app/fluent-extensions@0.152.0
|
|
13
|
+
- @effect-app/core@0.157.0
|
|
14
|
+
- @effect-app/schema@0.210.2
|
|
15
|
+
|
|
16
|
+
## 0.189.1
|
|
17
|
+
|
|
18
|
+
### Patch Changes
|
|
19
|
+
|
|
20
|
+
- 0334285: update packages
|
|
21
|
+
- Updated dependencies [0334285]
|
|
22
|
+
- Updated dependencies [b9f35eb]
|
|
23
|
+
- @effect-app/fluent-extensions@0.151.0
|
|
24
|
+
- @effect-app/schema@0.210.1
|
|
25
|
+
- @effect-app/core@0.156.1
|
|
26
|
+
|
|
3
27
|
## 0.189.0
|
|
4
28
|
|
|
5
29
|
### Minor Changes
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "effect-app",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.190.0",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"dependencies": {
|
|
@@ -13,26 +13,25 @@
|
|
|
13
13
|
"ts-pattern": "^5.0.8",
|
|
14
14
|
"uuid": "^9.0.1",
|
|
15
15
|
"validator": "^13.11.0",
|
|
16
|
-
"@effect-app/core": "0.
|
|
17
|
-
"@effect-app/
|
|
18
|
-
"@effect-app/
|
|
16
|
+
"@effect-app/core": "0.157.0",
|
|
17
|
+
"@effect-app/fluent-extensions": "0.152.0",
|
|
18
|
+
"@effect-app/schema": "0.210.2"
|
|
19
19
|
},
|
|
20
20
|
"devDependencies": {
|
|
21
21
|
"@babel/cli": "^7.23.9",
|
|
22
22
|
"@faker-js/faker": "^8.4.1",
|
|
23
|
-
"@types/node": "~20.11.
|
|
23
|
+
"@types/node": "~20.11.28",
|
|
24
24
|
"@types/uuid": "^9.0.8",
|
|
25
25
|
"@types/validator": "^13.11.9",
|
|
26
26
|
"fast-check": "~3.16.0",
|
|
27
27
|
"ts-node": "^10.9.2",
|
|
28
28
|
"typescript": "^5.4.2",
|
|
29
|
-
"vitest": "^1.
|
|
29
|
+
"vitest": "^1.4.0"
|
|
30
30
|
},
|
|
31
31
|
"peerDependencies": {
|
|
32
|
-
"@effect/platform": "^0.48.
|
|
32
|
+
"@effect/platform": "^0.48.8",
|
|
33
33
|
"effect": "^2.4.7",
|
|
34
|
-
"@effect/schema": "^0.64.
|
|
35
|
-
"@fp-ts/optic": "0.22.0"
|
|
34
|
+
"@effect/schema": "^0.64.5"
|
|
36
35
|
},
|
|
37
36
|
"typesVersions": {
|
|
38
37
|
"*": {
|
|
@@ -232,16 +231,6 @@
|
|
|
232
231
|
"default": "./_cjs/lib.cjs"
|
|
233
232
|
}
|
|
234
233
|
},
|
|
235
|
-
"./refinements": {
|
|
236
|
-
"import": {
|
|
237
|
-
"types": "./dist/refinements.d.ts",
|
|
238
|
-
"default": "./dist/refinements.js"
|
|
239
|
-
},
|
|
240
|
-
"require": {
|
|
241
|
-
"types": "./dist/refinements.d.ts",
|
|
242
|
-
"default": "./_cjs/refinements.cjs"
|
|
243
|
-
}
|
|
244
|
-
},
|
|
245
234
|
"./schema": {
|
|
246
235
|
"import": {
|
|
247
236
|
"types": "./dist/schema.d.ts",
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
// packages/prelude/vitest.config.ts
|
|
2
|
+
import { defineConfig } from "file:///Users/patrickroza/pj/effect-app/libs/node_modules/.pnpm/vite@5.1.5_@types+node@20.11.25/node_modules/vite/dist/node/index.js";
|
|
3
|
+
|
|
4
|
+
// vite.config.base.ts
|
|
5
|
+
import path from "path";
|
|
6
|
+
import fs from "fs";
|
|
7
|
+
var __vite_injected_original_dirname = "/Users/patrickroza/pj/effect-app/libs";
|
|
8
|
+
function makeConfig(dirName) {
|
|
9
|
+
const prefix = path.resolve(__vite_injected_original_dirname, "packages");
|
|
10
|
+
const packages = fs.readdirSync(prefix).map((f) => prefix + "/" + f).filter((f) => fs.lstatSync(f).isDirectory());
|
|
11
|
+
const cfg = {
|
|
12
|
+
// eslint-disable-next-line @typescript-eslint/no-var-requires
|
|
13
|
+
//plugins: [autoImport],
|
|
14
|
+
test: {
|
|
15
|
+
include: ["./test/**/*.test.{js,mjs,cjs,ts,mts,cts,jsx,tsx}"],
|
|
16
|
+
reporters: "verbose",
|
|
17
|
+
globals: true
|
|
18
|
+
},
|
|
19
|
+
resolve: packages.reduce((acc, cur) => {
|
|
20
|
+
acc[JSON.parse(fs.readFileSync(cur + "/package.json", "utf-8")).name] = path.resolve(cur, "src");
|
|
21
|
+
return acc;
|
|
22
|
+
}, {})
|
|
23
|
+
};
|
|
24
|
+
return cfg;
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
// packages/prelude/vitest.config.ts
|
|
28
|
+
var __vite_injected_original_dirname2 = "/Users/patrickroza/pj/effect-app/libs/packages/prelude";
|
|
29
|
+
var vitest_config_default = defineConfig(makeConfig(__vite_injected_original_dirname2));
|
|
30
|
+
export {
|
|
31
|
+
vitest_config_default as default
|
|
32
|
+
};
|
|
33
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsicGFja2FnZXMvcHJlbHVkZS92aXRlc3QuY29uZmlnLnRzIiwgInZpdGUuY29uZmlnLmJhc2UudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbImNvbnN0IF9fdml0ZV9pbmplY3RlZF9vcmlnaW5hbF9kaXJuYW1lID0gXCIvVXNlcnMvcGF0cmlja3JvemEvcGovZWZmZWN0LWFwcC9saWJzL3BhY2thZ2VzL3ByZWx1ZGVcIjtjb25zdCBfX3ZpdGVfaW5qZWN0ZWRfb3JpZ2luYWxfZmlsZW5hbWUgPSBcIi9Vc2Vycy9wYXRyaWNrcm96YS9wai9lZmZlY3QtYXBwL2xpYnMvcGFja2FnZXMvcHJlbHVkZS92aXRlc3QuY29uZmlnLnRzXCI7Y29uc3QgX192aXRlX2luamVjdGVkX29yaWdpbmFsX2ltcG9ydF9tZXRhX3VybCA9IFwiZmlsZTovLy9Vc2Vycy9wYXRyaWNrcm96YS9wai9lZmZlY3QtYXBwL2xpYnMvcGFja2FnZXMvcHJlbHVkZS92aXRlc3QuY29uZmlnLnRzXCI7Ly8vIDxyZWZlcmVuY2UgdHlwZXM9XCJ2aXRlc3RcIiAvPlxuaW1wb3J0IHsgZGVmaW5lQ29uZmlnIH0gZnJvbSBcInZpdGVcIlxuaW1wb3J0IG1ha2VDb25maWcgZnJvbSBcIi4uLy4uL3ZpdGUuY29uZmlnLmJhc2VcIlxuXG5leHBvcnQgZGVmYXVsdCBkZWZpbmVDb25maWcobWFrZUNvbmZpZyhfX2Rpcm5hbWUpKVxuIiwgImNvbnN0IF9fdml0ZV9pbmplY3RlZF9vcmlnaW5hbF9kaXJuYW1lID0gXCIvVXNlcnMvcGF0cmlja3JvemEvcGovZWZmZWN0LWFwcC9saWJzXCI7Y29uc3QgX192aXRlX2luamVjdGVkX29yaWdpbmFsX2ZpbGVuYW1lID0gXCIvVXNlcnMvcGF0cmlja3JvemEvcGovZWZmZWN0LWFwcC9saWJzL3ZpdGUuY29uZmlnLmJhc2UudHNcIjtjb25zdCBfX3ZpdGVfaW5qZWN0ZWRfb3JpZ2luYWxfaW1wb3J0X21ldGFfdXJsID0gXCJmaWxlOi8vL1VzZXJzL3BhdHJpY2tyb3phL3BqL2VmZmVjdC1hcHAvbGlicy92aXRlLmNvbmZpZy5iYXNlLnRzXCI7Ly8vIDxyZWZlcmVuY2UgdHlwZXM9XCJ2aXRlc3RcIiAvPlxuaW1wb3J0IHBhdGggZnJvbSBcInBhdGhcIlxuaW1wb3J0IGZzIGZyb20gXCJmc1wiXG5pbXBvcnQgQXV0b0ltcG9ydCBmcm9tIFwidW5wbHVnaW4tYXV0by1pbXBvcnQvdml0ZVwiXG5pbXBvcnQgeyBkZWZpbmVDb25maWcgfSBmcm9tIFwidml0ZXN0L2NvbmZpZ1wiXG5cbi8vIGNvbnN0IGF1dG9JbXBvcnQgPSBBdXRvSW1wb3J0KHtcbi8vICAgZHRzOiBcIi4vdGVzdC9hdXRvLWltcG9ydHMuZC50c1wiLFxuLy8gICAvLyBpbmNsdWRlOiBbXG4vLyAgIC8vICAgL1xcLnRlc3RcXC5bdGpdc3g/JC8gLy8gLnRzLCAudHN4LCAuanMsIC5qc3hcbi8vICAgLy8gXSxcbi8vICAgaW1wb3J0czogW1xuLy8gICAgIFwidml0ZXN0XCJcbi8vICAgXVxuLy8gfSlcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gbWFrZUNvbmZpZyhkaXJOYW1lPzogc3RyaW5nKSB7XG4gIGNvbnN0IHByZWZpeCA9IHBhdGgucmVzb2x2ZShfX2Rpcm5hbWUsIFwicGFja2FnZXNcIilcbiAgY29uc3QgcGFja2FnZXMgPSBmcy5yZWFkZGlyU3luYyhwcmVmaXgpLm1hcChmID0+IHByZWZpeCArIFwiL1wiICsgZikuZmlsdGVyKGYgPT4gZnMubHN0YXRTeW5jKGYpLmlzRGlyZWN0b3J5KCkgKVxuICBjb25zdCBjZmcgPSB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby12YXItcmVxdWlyZXNcbiAgICAvL3BsdWdpbnM6IFthdXRvSW1wb3J0XSxcbiAgICB0ZXN0OiB7XG4gICAgICBpbmNsdWRlOiAgW1wiLi90ZXN0LyoqLyoudGVzdC57anMsbWpzLGNqcyx0cyxtdHMsY3RzLGpzeCx0c3h9XCJdLFxuICAgICAgcmVwb3J0ZXJzOiBcInZlcmJvc2VcIixcbiAgICAgIGdsb2JhbHM6IHRydWVcbiAgICB9LFxuICAgIHJlc29sdmU6IHBhY2thZ2VzLnJlZHVjZSgoYWNjLCBjdXIpID0+IHtcbiAgICAgIGFjY1tKU09OLnBhcnNlKGZzLnJlYWRGaWxlU3luYyhjdXIgKyBcIi9wYWNrYWdlLmpzb25cIiwgXCJ1dGYtOFwiKSkubmFtZV0gPSBwYXRoLnJlc29sdmUoY3VyLCBcInNyY1wiKVxuICAgICAgcmV0dXJuIGFjY1xuICAgIH0sIHt9KVxuICB9XG4gIC8vY29uc29sZS5sb2coY2ZnKVxuICByZXR1cm4gY2ZnXG59XG4iXSwKICAibWFwcGluZ3MiOiAiO0FBQ0EsU0FBUyxvQkFBb0I7OztBQ0E3QixPQUFPLFVBQVU7QUFDakIsT0FBTyxRQUFRO0FBRmYsSUFBTSxtQ0FBbUM7QUFnQjFCLFNBQVIsV0FBNEIsU0FBa0I7QUFDbkQsUUFBTSxTQUFTLEtBQUssUUFBUSxrQ0FBVyxVQUFVO0FBQ2pELFFBQU0sV0FBVyxHQUFHLFlBQVksTUFBTSxFQUFFLElBQUksT0FBSyxTQUFTLE1BQU0sQ0FBQyxFQUFFLE9BQU8sT0FBSyxHQUFHLFVBQVUsQ0FBQyxFQUFFLFlBQVksQ0FBRTtBQUM3RyxRQUFNLE1BQU07QUFBQTtBQUFBO0FBQUEsSUFHVixNQUFNO0FBQUEsTUFDSixTQUFVLENBQUMsa0RBQWtEO0FBQUEsTUFDN0QsV0FBVztBQUFBLE1BQ1gsU0FBUztBQUFBLElBQ1g7QUFBQSxJQUNBLFNBQVMsU0FBUyxPQUFPLENBQUMsS0FBSyxRQUFRO0FBQ3JDLFVBQUksS0FBSyxNQUFNLEdBQUcsYUFBYSxNQUFNLGlCQUFpQixPQUFPLENBQUMsRUFBRSxJQUFJLElBQUksS0FBSyxRQUFRLEtBQUssS0FBSztBQUMvRixhQUFPO0FBQUEsSUFDVCxHQUFHLENBQUMsQ0FBQztBQUFBLEVBQ1A7QUFFQSxTQUFPO0FBQ1Q7OztBRGxDQSxJQUFNQSxvQ0FBbUM7QUFJekMsSUFBTyx3QkFBUSxhQUFhLFdBQVdDLGlDQUFTLENBQUM7IiwKICAibmFtZXMiOiBbIl9fdml0ZV9pbmplY3RlZF9vcmlnaW5hbF9kaXJuYW1lIiwgIl9fdml0ZV9pbmplY3RlZF9vcmlnaW5hbF9kaXJuYW1lIl0KfQo=
|
package/_cjs/refinements.cjs
DELETED
|
@@ -1,96 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.as = as;
|
|
7
|
-
exports.asCollectable = asCollectable;
|
|
8
|
-
exports.asOption = asOption;
|
|
9
|
-
exports.makeAwesome = makeAwesome;
|
|
10
|
-
exports.makeAwesomeCollect = makeAwesomeCollect;
|
|
11
|
-
var _core = require("@effect-app/core");
|
|
12
|
-
var Optic = _interopRequireWildcard(require("@effect-app/core/Optic"));
|
|
13
|
-
var _client = require("./client.cjs");
|
|
14
|
-
var _utils = require("./utils.cjs");
|
|
15
|
-
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
|
|
16
|
-
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
|
17
|
-
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
18
|
-
|
|
19
|
-
/**
|
|
20
|
-
* @tsplus getter function asCollectable
|
|
21
|
-
*/
|
|
22
|
-
function asCollectable(refinement) {
|
|
23
|
-
return _core.Option.liftPredicate(refinement);
|
|
24
|
-
}
|
|
25
|
-
/**
|
|
26
|
-
* @tsplus fluent function as
|
|
27
|
-
*/
|
|
28
|
-
function as(refinement, name) {
|
|
29
|
-
return (0, _core.flow)(asCollectable(refinement), _ => _core.Either.fromOption(_, () => new _client.InvalidStateError(`Cannot be ${name}`)));
|
|
30
|
-
}
|
|
31
|
-
/**
|
|
32
|
-
* @tsplus fluent function refinements
|
|
33
|
-
*/
|
|
34
|
-
function makeAwesome(refinement, name) {
|
|
35
|
-
const _as = as(refinement, name);
|
|
36
|
-
const validate = {
|
|
37
|
-
is: refinement,
|
|
38
|
-
collect: asCollectable(refinement),
|
|
39
|
-
as: _as,
|
|
40
|
-
lens: Optic.id()
|
|
41
|
-
};
|
|
42
|
-
function validatei(item) {
|
|
43
|
-
return {
|
|
44
|
-
get collect() {
|
|
45
|
-
return validate.collect(item);
|
|
46
|
-
},
|
|
47
|
-
get as() {
|
|
48
|
-
return validate.as(item);
|
|
49
|
-
}
|
|
50
|
-
};
|
|
51
|
-
}
|
|
52
|
-
return {
|
|
53
|
-
...validate,
|
|
54
|
-
$item: validatei
|
|
55
|
-
};
|
|
56
|
-
}
|
|
57
|
-
/**
|
|
58
|
-
* @tsplus fluent function as
|
|
59
|
-
*/
|
|
60
|
-
function asOption(collect, name) {
|
|
61
|
-
return (0, _core.flow)(collect, _core.Either.fromOption(() => new _client.InvalidStateError({
|
|
62
|
-
message: `Cannot be ${name}`
|
|
63
|
-
})));
|
|
64
|
-
}
|
|
65
|
-
/**
|
|
66
|
-
* @tsplus fluent function refinements
|
|
67
|
-
*/
|
|
68
|
-
function makeAwesomeCollect(collect, name) {
|
|
69
|
-
const _as = asOption(collect, name);
|
|
70
|
-
function is(item) {
|
|
71
|
-
return _core.Option.isSome(collect(item));
|
|
72
|
-
}
|
|
73
|
-
const validate = {
|
|
74
|
-
collect,
|
|
75
|
-
is,
|
|
76
|
-
as: _as,
|
|
77
|
-
lens: Optic.id(),
|
|
78
|
-
copy: (item, _copy) => (0, _utils.copy)(item, _copy),
|
|
79
|
-
clone: (item, cloned) => (0, _utils.clone)(item, cloned)
|
|
80
|
-
};
|
|
81
|
-
function validatei(item) {
|
|
82
|
-
return {
|
|
83
|
-
get collect() {
|
|
84
|
-
return validate.collect(item);
|
|
85
|
-
},
|
|
86
|
-
get as() {
|
|
87
|
-
return validate.as(item);
|
|
88
|
-
}
|
|
89
|
-
};
|
|
90
|
-
}
|
|
91
|
-
return {
|
|
92
|
-
...validate,
|
|
93
|
-
$item: validatei
|
|
94
|
-
};
|
|
95
|
-
}
|
|
96
|
-
//# sourceMappingURL=refinements.cjs.map
|
package/_cjs/refinements.cjs.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"refinements.cjs","names":["_core","require","Optic","_interopRequireWildcard","_client","_utils","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","asCollectable","refinement","Option","liftPredicate","as","name","flow","_","Either","fromOption","InvalidStateError","makeAwesome","_as","validate","is","collect","lens","id","validatei","item","$item","asOption","message","makeAwesomeCollect","isSome","copy","_copy","clone","cloned"],"sources":["../src/refinements.ts"],"sourcesContent":[null],"mappings":"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"}
|
package/dist/refinements.d.ts
DELETED
|
@@ -1,52 +0,0 @@
|
|
|
1
|
-
import { Either, type Equal, Option } from "@effect-app/core";
|
|
2
|
-
import type { Refinement } from "@effect-app/core/Function";
|
|
3
|
-
import * as Optic from "@effect-app/core/Optic";
|
|
4
|
-
import type { Clone } from "@fp-ts/optic";
|
|
5
|
-
import { InvalidStateError } from "./client.js";
|
|
6
|
-
/**
|
|
7
|
-
* @tsplus getter function asCollectable
|
|
8
|
-
*/
|
|
9
|
-
export declare function asCollectable<T, T2 extends T>(refinement: Refinement<T, T2>): (a: T) => Option.Option<T2>;
|
|
10
|
-
/**
|
|
11
|
-
* @tsplus fluent function as
|
|
12
|
-
*/
|
|
13
|
-
export declare function as<T, T2 extends T>(refinement: Refinement<T, T2>, name: string): (a: T) => Either.Either<T2, InvalidStateError>;
|
|
14
|
-
/**
|
|
15
|
-
* @tsplus fluent function refinements
|
|
16
|
-
*/
|
|
17
|
-
export declare function makeAwesome<T, T2 extends T>(refinement: Refinement<T, T2>, name: string): {
|
|
18
|
-
$item: (item: T) => {
|
|
19
|
-
readonly collect: Option.Option<T2>;
|
|
20
|
-
readonly as: Either.Either<T2, InvalidStateError>;
|
|
21
|
-
};
|
|
22
|
-
is: Refinement<T, T2>;
|
|
23
|
-
collect: (a: T) => Option.Option<T2>;
|
|
24
|
-
as: (a: T) => Either.Either<T2, InvalidStateError>;
|
|
25
|
-
lens: Optic.Iso<T2, T2>;
|
|
26
|
-
};
|
|
27
|
-
export interface Collect<A, B extends A> {
|
|
28
|
-
(a: A): Option<B>;
|
|
29
|
-
}
|
|
30
|
-
/**
|
|
31
|
-
* @tsplus fluent function as
|
|
32
|
-
*/
|
|
33
|
-
export declare function asOption<T, T2 extends T>(collect: Collect<T, T2>, name: string): (a: T) => Either.Either<T2, InvalidStateError>;
|
|
34
|
-
/**
|
|
35
|
-
* @tsplus fluent function refinements
|
|
36
|
-
*/
|
|
37
|
-
export declare function makeAwesomeCollect<T extends Object, T2 extends T>(collect: Collect<T, T2>, name: string): {
|
|
38
|
-
$item: (item: T) => {
|
|
39
|
-
readonly collect: Option<T2>;
|
|
40
|
-
readonly as: Either.Either<T2, InvalidStateError>;
|
|
41
|
-
};
|
|
42
|
-
collect: Collect<T, T2>;
|
|
43
|
-
is: (item: T) => item is T2;
|
|
44
|
-
as: (a: T) => Either.Either<T2, InvalidStateError>;
|
|
45
|
-
lens: Optic.Iso<T2, T2>;
|
|
46
|
-
copy: (item: T2, _copy: Partial<Omit<T2, keyof Clone | keyof Equal>>) => Omit<T2, typeof Optic.cloneTrait | keyof Equal.Equal>;
|
|
47
|
-
clone: (item: T, cloned: T) => T;
|
|
48
|
-
};
|
|
49
|
-
export type GetCollectedType<T> = T extends {
|
|
50
|
-
collect: Collect<any, infer U>;
|
|
51
|
-
} ? U : never;
|
|
52
|
-
//# sourceMappingURL=refinements.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"refinements.d.ts","sourceRoot":"","sources":["../src/refinements.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,KAAK,KAAK,EAAQ,MAAM,EAAE,MAAM,kBAAkB,CAAA;AACnE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAA;AAC3D,OAAO,KAAK,KAAK,MAAM,wBAAwB,CAAA;AAC/C,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,cAAc,CAAA;AACzC,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAA;AAG/C;;GAEG;AACH,wBAAgB,aAAa,CAAC,CAAC,EAAE,EAAE,SAAS,CAAC,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC,EAAE,EAAE,CAAC,+BAE3E;AAED;;GAEG;AACH,wBAAgB,EAAE,CAAC,CAAC,EAAE,EAAE,SAAS,CAAC,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,kDAK9E;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,CAAC,EAAE,EAAE,SAAS,CAAC,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM;kBAQ7D,CAAC;;;;;;;;EAc3B;AAGD,MAAM,WAAW,OAAO,CAAC,CAAC,EAAE,CAAC,SAAS,CAAC;IACrC,CAAC,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAA;CAClB;AAED;;GAEG;AACH,wBAAgB,QAAQ,CAAC,CAAC,EAAE,EAAE,SAAS,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,kDAE9E;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,CAAC,SAAS,MAAM,EAAE,EAAE,SAAS,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM;kBAa7E,CAAC;;;;;eAXR,CAAC;;;iBAQJ,EAAE,SAAS,QAAQ,KAAK,EAAE,EAAE,MAAM,KAAK,GAAG,MAAM,KAAK,CAAC,CAAC;kBACtD,CAAC,UAAU,CAAC;EAgB7B;AACD,MAAM,MAAM,gBAAgB,CAAC,CAAC,IAAI,CAAC,SAAS;IAAE,OAAO,EAAE,OAAO,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,CAAA;CAAE,GAAG,CAAC,GAAG,KAAK,CAAA"}
|
package/dist/refinements.js
DELETED
|
@@ -1,81 +0,0 @@
|
|
|
1
|
-
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
2
|
-
import { Either, flow, Option } from "@effect-app/core";
|
|
3
|
-
import * as Optic from "@effect-app/core/Optic";
|
|
4
|
-
import { InvalidStateError } from "./client.js";
|
|
5
|
-
import { clone, copy } from "./utils.js";
|
|
6
|
-
/**
|
|
7
|
-
* @tsplus getter function asCollectable
|
|
8
|
-
*/
|
|
9
|
-
export function asCollectable(refinement) {
|
|
10
|
-
return Option.liftPredicate(refinement);
|
|
11
|
-
}
|
|
12
|
-
/**
|
|
13
|
-
* @tsplus fluent function as
|
|
14
|
-
*/
|
|
15
|
-
export function as(refinement, name) {
|
|
16
|
-
return flow(asCollectable(refinement), (_) => Either.fromOption(_, () => new InvalidStateError(`Cannot be ${name}`)));
|
|
17
|
-
}
|
|
18
|
-
/**
|
|
19
|
-
* @tsplus fluent function refinements
|
|
20
|
-
*/
|
|
21
|
-
export function makeAwesome(refinement, name) {
|
|
22
|
-
const _as = as(refinement, name);
|
|
23
|
-
const validate = {
|
|
24
|
-
is: refinement,
|
|
25
|
-
collect: asCollectable(refinement),
|
|
26
|
-
as: _as,
|
|
27
|
-
lens: Optic.id()
|
|
28
|
-
};
|
|
29
|
-
function validatei(item) {
|
|
30
|
-
return {
|
|
31
|
-
get collect() {
|
|
32
|
-
return validate.collect(item);
|
|
33
|
-
},
|
|
34
|
-
get as() {
|
|
35
|
-
return validate.as(item);
|
|
36
|
-
}
|
|
37
|
-
};
|
|
38
|
-
}
|
|
39
|
-
return {
|
|
40
|
-
...validate,
|
|
41
|
-
$item: validatei
|
|
42
|
-
};
|
|
43
|
-
}
|
|
44
|
-
/**
|
|
45
|
-
* @tsplus fluent function as
|
|
46
|
-
*/
|
|
47
|
-
export function asOption(collect, name) {
|
|
48
|
-
return flow(collect, Either.fromOption(() => new InvalidStateError({ message: `Cannot be ${name}` })));
|
|
49
|
-
}
|
|
50
|
-
/**
|
|
51
|
-
* @tsplus fluent function refinements
|
|
52
|
-
*/
|
|
53
|
-
export function makeAwesomeCollect(collect, name) {
|
|
54
|
-
const _as = asOption(collect, name);
|
|
55
|
-
function is(item) {
|
|
56
|
-
return Option.isSome(collect(item));
|
|
57
|
-
}
|
|
58
|
-
const validate = {
|
|
59
|
-
collect,
|
|
60
|
-
is,
|
|
61
|
-
as: _as,
|
|
62
|
-
lens: Optic.id(),
|
|
63
|
-
copy: (item, _copy) => copy(item, _copy),
|
|
64
|
-
clone: (item, cloned) => clone(item, cloned)
|
|
65
|
-
};
|
|
66
|
-
function validatei(item) {
|
|
67
|
-
return {
|
|
68
|
-
get collect() {
|
|
69
|
-
return validate.collect(item);
|
|
70
|
-
},
|
|
71
|
-
get as() {
|
|
72
|
-
return validate.as(item);
|
|
73
|
-
}
|
|
74
|
-
};
|
|
75
|
-
}
|
|
76
|
-
return {
|
|
77
|
-
...validate,
|
|
78
|
-
$item: validatei
|
|
79
|
-
};
|
|
80
|
-
}
|
|
81
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVmaW5lbWVudHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvcmVmaW5lbWVudHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsdURBQXVEO0FBQ3ZELE9BQU8sRUFBRSxNQUFNLEVBQWMsSUFBSSxFQUFFLE1BQU0sRUFBRSxNQUFNLGtCQUFrQixDQUFBO0FBRW5FLE9BQU8sS0FBSyxLQUFLLE1BQU0sd0JBQXdCLENBQUE7QUFFL0MsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sYUFBYSxDQUFBO0FBQy9DLE9BQU8sRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLE1BQU0sWUFBWSxDQUFBO0FBRXhDOztHQUVHO0FBQ0gsTUFBTSxVQUFVLGFBQWEsQ0FBa0IsVUFBNkI7SUFDMUUsT0FBTyxNQUFNLENBQUMsYUFBYSxDQUFDLFVBQVUsQ0FBQyxDQUFBO0FBQ3pDLENBQUM7QUFFRDs7R0FFRztBQUNILE1BQU0sVUFBVSxFQUFFLENBQWtCLFVBQTZCLEVBQUUsSUFBWTtJQUM3RSxPQUFPLElBQUksQ0FDVCxhQUFhLENBQUMsVUFBVSxDQUFDLEVBQ3pCLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUMsRUFBRSxHQUFHLEVBQUUsQ0FBQyxJQUFJLGlCQUFpQixDQUFDLGFBQWEsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUM5RSxDQUFBO0FBQ0gsQ0FBQztBQUVEOztHQUVHO0FBQ0gsTUFBTSxVQUFVLFdBQVcsQ0FBa0IsVUFBNkIsRUFBRSxJQUFZO0lBQ3RGLE1BQU0sR0FBRyxHQUFHLEVBQUUsQ0FBQyxVQUFVLEVBQUUsSUFBSSxDQUFDLENBQUE7SUFDaEMsTUFBTSxRQUFRLEdBQUc7UUFDZixFQUFFLEVBQUUsVUFBVTtRQUNkLE9BQU8sRUFBRSxhQUFhLENBQUMsVUFBVSxDQUFDO1FBQ2xDLEVBQUUsRUFBRSxHQUFHO1FBQ1AsSUFBSSxFQUFFLEtBQUssQ0FBQyxFQUFFLEVBQU07S0FDckIsQ0FBQTtJQUNELFNBQVMsU0FBUyxDQUFDLElBQU87UUFDeEIsT0FBTztZQUNMLElBQUksT0FBTztnQkFDVCxPQUFPLFFBQVEsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUE7WUFDL0IsQ0FBQztZQUNELElBQUksRUFBRTtnQkFDSixPQUFPLFFBQVEsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUE7WUFDMUIsQ0FBQztTQUNGLENBQUE7SUFDSCxDQUFDO0lBQ0QsT0FBTztRQUNMLEdBQUcsUUFBUTtRQUNYLEtBQUssRUFBRSxTQUFTO0tBQ2pCLENBQUE7QUFDSCxDQUFDO0FBT0Q7O0dBRUc7QUFDSCxNQUFNLFVBQVUsUUFBUSxDQUFrQixPQUF1QixFQUFFLElBQVk7SUFDN0UsT0FBTyxJQUFJLENBQUMsT0FBTyxFQUFFLE1BQU0sQ0FBQyxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxpQkFBaUIsQ0FBQyxFQUFFLE9BQU8sRUFBRSxhQUFhLElBQUksRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUE7QUFDeEcsQ0FBQztBQUVEOztHQUVHO0FBQ0gsTUFBTSxVQUFVLGtCQUFrQixDQUFpQyxPQUF1QixFQUFFLElBQVk7SUFDdEcsTUFBTSxHQUFHLEdBQUcsUUFBUSxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsQ0FBQTtJQUNuQyxTQUFTLEVBQUUsQ0FBQyxJQUFPO1FBQ2pCLE9BQU8sTUFBTSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQTtJQUNyQyxDQUFDO0lBQ0QsTUFBTSxRQUFRLEdBQUc7UUFDZixPQUFPO1FBQ1AsRUFBRTtRQUNGLEVBQUUsRUFBRSxHQUFHO1FBQ1AsSUFBSSxFQUFFLEtBQUssQ0FBQyxFQUFFLEVBQU07UUFDcEIsSUFBSSxFQUFFLENBQUMsSUFBUSxFQUFFLEtBQW1ELEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDO1FBQzFGLEtBQUssRUFBRSxDQUFDLElBQU8sRUFBRSxNQUFTLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDO0tBQ25ELENBQUE7SUFDRCxTQUFTLFNBQVMsQ0FBQyxJQUFPO1FBQ3hCLE9BQU87WUFDTCxJQUFJLE9BQU87Z0JBQ1QsT0FBTyxRQUFRLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFBO1lBQy9CLENBQUM7WUFDRCxJQUFJLEVBQUU7Z0JBQ0osT0FBTyxRQUFRLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFBO1lBQzFCLENBQUM7U0FDRixDQUFBO0lBQ0gsQ0FBQztJQUNELE9BQU87UUFDTCxHQUFHLFFBQVE7UUFDWCxLQUFLLEVBQUUsU0FBUztLQUNqQixDQUFBO0FBQ0gsQ0FBQyJ9
|
package/src/refinements.ts
DELETED
|
@@ -1,96 +0,0 @@
|
|
|
1
|
-
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
2
|
-
import { Either, type Equal, flow, Option } from "@effect-app/core"
|
|
3
|
-
import type { Refinement } from "@effect-app/core/Function"
|
|
4
|
-
import * as Optic from "@effect-app/core/Optic"
|
|
5
|
-
import type { Clone } from "@fp-ts/optic"
|
|
6
|
-
import { InvalidStateError } from "./client.js"
|
|
7
|
-
import { clone, copy } from "./utils.js"
|
|
8
|
-
|
|
9
|
-
/**
|
|
10
|
-
* @tsplus getter function asCollectable
|
|
11
|
-
*/
|
|
12
|
-
export function asCollectable<T, T2 extends T>(refinement: Refinement<T, T2>) {
|
|
13
|
-
return Option.liftPredicate(refinement)
|
|
14
|
-
}
|
|
15
|
-
|
|
16
|
-
/**
|
|
17
|
-
* @tsplus fluent function as
|
|
18
|
-
*/
|
|
19
|
-
export function as<T, T2 extends T>(refinement: Refinement<T, T2>, name: string) {
|
|
20
|
-
return flow(
|
|
21
|
-
asCollectable(refinement),
|
|
22
|
-
(_) => Either.fromOption(_, () => new InvalidStateError(`Cannot be ${name}`))
|
|
23
|
-
)
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
/**
|
|
27
|
-
* @tsplus fluent function refinements
|
|
28
|
-
*/
|
|
29
|
-
export function makeAwesome<T, T2 extends T>(refinement: Refinement<T, T2>, name: string) {
|
|
30
|
-
const _as = as(refinement, name)
|
|
31
|
-
const validate = {
|
|
32
|
-
is: refinement,
|
|
33
|
-
collect: asCollectable(refinement),
|
|
34
|
-
as: _as,
|
|
35
|
-
lens: Optic.id<T2>()
|
|
36
|
-
}
|
|
37
|
-
function validatei(item: T) {
|
|
38
|
-
return {
|
|
39
|
-
get collect() {
|
|
40
|
-
return validate.collect(item)
|
|
41
|
-
},
|
|
42
|
-
get as() {
|
|
43
|
-
return validate.as(item)
|
|
44
|
-
}
|
|
45
|
-
}
|
|
46
|
-
}
|
|
47
|
-
return {
|
|
48
|
-
...validate,
|
|
49
|
-
$item: validatei
|
|
50
|
-
}
|
|
51
|
-
}
|
|
52
|
-
|
|
53
|
-
// The idea is that such refinements are dynamic
|
|
54
|
-
export interface Collect<A, B extends A> {
|
|
55
|
-
(a: A): Option<B>
|
|
56
|
-
}
|
|
57
|
-
|
|
58
|
-
/**
|
|
59
|
-
* @tsplus fluent function as
|
|
60
|
-
*/
|
|
61
|
-
export function asOption<T, T2 extends T>(collect: Collect<T, T2>, name: string) {
|
|
62
|
-
return flow(collect, Either.fromOption(() => new InvalidStateError({ message: `Cannot be ${name}` })))
|
|
63
|
-
}
|
|
64
|
-
|
|
65
|
-
/**
|
|
66
|
-
* @tsplus fluent function refinements
|
|
67
|
-
*/
|
|
68
|
-
export function makeAwesomeCollect<T extends Object, T2 extends T>(collect: Collect<T, T2>, name: string) {
|
|
69
|
-
const _as = asOption(collect, name)
|
|
70
|
-
function is(item: T): item is T2 {
|
|
71
|
-
return Option.isSome(collect(item))
|
|
72
|
-
}
|
|
73
|
-
const validate = {
|
|
74
|
-
collect,
|
|
75
|
-
is,
|
|
76
|
-
as: _as,
|
|
77
|
-
lens: Optic.id<T2>(),
|
|
78
|
-
copy: (item: T2, _copy: Partial<Omit<T2, keyof Clone | keyof Equal>>) => copy(item, _copy),
|
|
79
|
-
clone: (item: T, cloned: T) => clone(item, cloned)
|
|
80
|
-
}
|
|
81
|
-
function validatei(item: T) {
|
|
82
|
-
return {
|
|
83
|
-
get collect() {
|
|
84
|
-
return validate.collect(item)
|
|
85
|
-
},
|
|
86
|
-
get as() {
|
|
87
|
-
return validate.as(item)
|
|
88
|
-
}
|
|
89
|
-
}
|
|
90
|
-
}
|
|
91
|
-
return {
|
|
92
|
-
...validate,
|
|
93
|
-
$item: validatei
|
|
94
|
-
}
|
|
95
|
-
}
|
|
96
|
-
export type GetCollectedType<T> = T extends { collect: Collect<any, infer U> } ? U : never
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
// vitest.config.ts
|
|
2
|
-
import { defineConfig } from "file:///Users/patrickroza/Projects/Personal/effect-ts-app/libs/node_modules/.pnpm/vite@4.0.0_@types+node@18.11.12/node_modules/vite/dist/node/index.js";
|
|
3
|
-
|
|
4
|
-
// ../../vite.config.base.ts
|
|
5
|
-
import { tsPlugin } from "file:///Users/patrickroza/Projects/Personal/effect-ts-app/libs/packages/compiler/dist/vitePlugin.js";
|
|
6
|
-
function makeConfig() {
|
|
7
|
-
return {
|
|
8
|
-
plugins: [tsPlugin({})],
|
|
9
|
-
test: {
|
|
10
|
-
include: ["./_src/**/*.test.{js,mjs,cjs,ts,mts,cts,jsx,tsx}"],
|
|
11
|
-
exclude: ["./_test/**/*"],
|
|
12
|
-
reporters: "verbose",
|
|
13
|
-
globals: true
|
|
14
|
-
}
|
|
15
|
-
};
|
|
16
|
-
}
|
|
17
|
-
|
|
18
|
-
// vitest.config.ts
|
|
19
|
-
var vitest_config_default = defineConfig(makeConfig());
|
|
20
|
-
export {
|
|
21
|
-
vitest_config_default as default
|
|
22
|
-
};
|
|
23
|
-
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsidml0ZXN0LmNvbmZpZy50cyIsICIuLi8uLi92aXRlLmNvbmZpZy5iYXNlLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyJjb25zdCBfX3ZpdGVfaW5qZWN0ZWRfb3JpZ2luYWxfZGlybmFtZSA9IFwiL1VzZXJzL3BhdHJpY2tyb3phL1Byb2plY3RzL1BlcnNvbmFsL2VmZmVjdC10cy1hcHAvbGlicy9wYWNrYWdlcy9ib2lsZXJwbGF0ZS1wcmVsdWRlXCI7Y29uc3QgX192aXRlX2luamVjdGVkX29yaWdpbmFsX2ZpbGVuYW1lID0gXCIvVXNlcnMvcGF0cmlja3JvemEvUHJvamVjdHMvUGVyc29uYWwvZWZmZWN0LXRzLWFwcC9saWJzL3BhY2thZ2VzL2JvaWxlcnBsYXRlLXByZWx1ZGUvdml0ZXN0LmNvbmZpZy50c1wiO2NvbnN0IF9fdml0ZV9pbmplY3RlZF9vcmlnaW5hbF9pbXBvcnRfbWV0YV91cmwgPSBcImZpbGU6Ly8vVXNlcnMvcGF0cmlja3JvemEvUHJvamVjdHMvUGVyc29uYWwvZWZmZWN0LXRzLWFwcC9saWJzL3BhY2thZ2VzL2JvaWxlcnBsYXRlLXByZWx1ZGUvdml0ZXN0LmNvbmZpZy50c1wiOy8vLyA8cmVmZXJlbmNlIHR5cGVzPVwidml0ZXN0XCIgLz5cbmltcG9ydCB7IGRlZmluZUNvbmZpZyB9IGZyb20gXCJ2aXRlXCJcbmltcG9ydCBtYWtlQ29uZmlnIGZyb20gXCIuLi8uLi92aXRlLmNvbmZpZy5iYXNlXCJcblxuZXhwb3J0IGRlZmF1bHQgZGVmaW5lQ29uZmlnKG1ha2VDb25maWcoKSlcbiIsICJjb25zdCBfX3ZpdGVfaW5qZWN0ZWRfb3JpZ2luYWxfZGlybmFtZSA9IFwiL1VzZXJzL3BhdHJpY2tyb3phL1Byb2plY3RzL1BlcnNvbmFsL2VmZmVjdC10cy1hcHAvbGlic1wiO2NvbnN0IF9fdml0ZV9pbmplY3RlZF9vcmlnaW5hbF9maWxlbmFtZSA9IFwiL1VzZXJzL3BhdHJpY2tyb3phL1Byb2plY3RzL1BlcnNvbmFsL2VmZmVjdC10cy1hcHAvbGlicy92aXRlLmNvbmZpZy5iYXNlLnRzXCI7Y29uc3QgX192aXRlX2luamVjdGVkX29yaWdpbmFsX2ltcG9ydF9tZXRhX3VybCA9IFwiZmlsZTovLy9Vc2Vycy9wYXRyaWNrcm96YS9Qcm9qZWN0cy9QZXJzb25hbC9lZmZlY3QtdHMtYXBwL2xpYnMvdml0ZS5jb25maWcuYmFzZS50c1wiOy8vLyA8cmVmZXJlbmNlIHR5cGVzPVwidml0ZXN0XCIgLz5cbmltcG9ydCB7IHRzUGx1Z2luIH0gZnJvbSBcIkBlZmZlY3QtdHMtYXBwL2NvbXBpbGVyL3ZpdGVQbHVnaW5cIlxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gbWFrZUNvbmZpZygpIHtcbiAgcmV0dXJuIHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXZhci1yZXF1aXJlc1xuICAgIHBsdWdpbnM6IFt0c1BsdWdpbih7fSldLFxuICAgIHRlc3Q6IHtcbiAgICAgIGluY2x1ZGU6IFtcIi4vX3NyYy8qKi8qLnRlc3Que2pzLG1qcyxjanMsdHMsbXRzLGN0cyxqc3gsdHN4fVwiXSxcbiAgICAgIGV4Y2x1ZGU6IFtcIi4vX3Rlc3QvKiovKlwiXSxcbiAgICAgIHJlcG9ydGVyczogXCJ2ZXJib3NlXCIsXG4gICAgICBnbG9iYWxzOiB0cnVlXG4gICAgfSxcbiAgICAvLyByZXNvbHZlOiB7XG4gICAgLy8gICBhbGlhczoge1xuICAgIC8vICAgICBcIkBlZmZlY3QvaW8vdGVzdFwiOiBwYXRoLnJlc29sdmUoX19kaXJuYW1lLCBcIi90ZXN0XCIpLFxuICAgIC8vICAgICBcIkBlZmZlY3QvaW9cIjogcGF0aC5yZXNvbHZlKF9fZGlybmFtZSwgXCIvc3JjXCIpXG4gICAgLy8gICB9XG4gICAgLy8gfVxuICB9XG59XG4iXSwKICAibWFwcGluZ3MiOiAiO0FBQ0EsU0FBUyxvQkFBb0I7OztBQ0E3QixTQUFTLGdCQUFnQjtBQUNWLFNBQVIsYUFBOEI7QUFDbkMsU0FBTztBQUFBLElBRUwsU0FBUyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUM7QUFBQSxJQUN0QixNQUFNO0FBQUEsTUFDSixTQUFTLENBQUMsa0RBQWtEO0FBQUEsTUFDNUQsU0FBUyxDQUFDLGNBQWM7QUFBQSxNQUN4QixXQUFXO0FBQUEsTUFDWCxTQUFTO0FBQUEsSUFDWDtBQUFBLEVBT0Y7QUFDRjs7O0FEZkEsSUFBTyx3QkFBUSxhQUFhLFdBQVcsQ0FBQzsiLAogICJuYW1lcyI6IFtdCn0K
|