effect-app 0.185.6 → 0.185.8
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 +14 -0
- package/dist/Operations.d.ts +6 -0
- package/dist/Operations.d.ts.map +1 -1
- package/dist/Request.d.ts +2 -2
- package/dist/client/errors.d.ts +3 -3
- package/dist/client/fetch.d.ts +4 -4
- package/package.json +3 -3
- package/vitest.config.ts.timestamp-1670862388823.mjs +23 -0
- package/vitest.config.ts.timestamp-1709838418683-4e8d39caec6be.mjs +0 -33
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,19 @@
|
|
|
1
1
|
# @effect-app/prelude
|
|
2
2
|
|
|
3
|
+
## 0.185.8
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- Updated dependencies [2b53680]
|
|
8
|
+
- @effect-app/schema@0.206.7
|
|
9
|
+
|
|
10
|
+
## 0.185.7
|
|
11
|
+
|
|
12
|
+
### Patch Changes
|
|
13
|
+
|
|
14
|
+
- Updated dependencies [2794b0a]
|
|
15
|
+
- @effect-app/schema@0.206.6
|
|
16
|
+
|
|
3
17
|
## 0.185.6
|
|
4
18
|
|
|
5
19
|
### Patch Changes
|
package/dist/Operations.d.ts
CHANGED
|
@@ -24,6 +24,8 @@ declare const OperationProgress_base: S.EnhancedClass<OperationProgress, {
|
|
|
24
24
|
export declare class OperationProgress extends OperationProgress_base {
|
|
25
25
|
}
|
|
26
26
|
declare const Success_base: S.EnhancedClass<Success, {
|
|
27
|
+
readonly _tag: import("@effect/schema/Schema").literal<["Success"]>;
|
|
28
|
+
} & {
|
|
27
29
|
message: S.PropertySignature<":", (string & S.NonEmptyString2kBrand) | null, never, ":", string | null, true, never>;
|
|
28
30
|
}, {
|
|
29
31
|
readonly _tag: "Success";
|
|
@@ -34,6 +36,8 @@ declare const Success_base: S.EnhancedClass<Success, {
|
|
|
34
36
|
export declare class Success extends Success_base {
|
|
35
37
|
}
|
|
36
38
|
declare const Failure_base: S.EnhancedClass<Failure, {
|
|
39
|
+
readonly _tag: import("@effect/schema/Schema").literal<["Failure"]>;
|
|
40
|
+
} & {
|
|
37
41
|
message: S.PropertySignature<":", (string & S.NonEmptyString2kBrand) | null, never, ":", string | null, true, never>;
|
|
38
42
|
}, {
|
|
39
43
|
readonly _tag: "Failure";
|
|
@@ -90,6 +94,7 @@ export declare namespace OperationProgress {
|
|
|
90
94
|
}
|
|
91
95
|
export declare namespace Success {
|
|
92
96
|
const From_base_1: S.FromClass<S.Struct.Encoded<{
|
|
97
|
+
readonly _tag: import("@effect/schema/Schema").literal<["Success"]>;
|
|
93
98
|
message: S.PropertySignature<":", (string & S.NonEmptyString2kBrand) | null, never, ":", string | null, true, never>;
|
|
94
99
|
}, never>>;
|
|
95
100
|
export class From extends From_base_1 {
|
|
@@ -98,6 +103,7 @@ export declare namespace Success {
|
|
|
98
103
|
}
|
|
99
104
|
export declare namespace Failure {
|
|
100
105
|
const From_base_2: S.FromClass<S.Struct.Encoded<{
|
|
106
|
+
readonly _tag: import("@effect/schema/Schema").literal<["Failure"]>;
|
|
101
107
|
message: S.PropertySignature<":", (string & S.NonEmptyString2kBrand) | null, never, ":", string | null, true, never>;
|
|
102
108
|
}, never>>;
|
|
103
109
|
export class From extends From_base_2 {
|
package/dist/Operations.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Operations.d.ts","sourceRoot":"","sources":["../src/Operations.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,aAAa,CAAA;AAEhC,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,QAAQ,CAAA;AACpC,eAAO,MAAM,WAAW;;;;;;CAAa,CAAA;;;;;;;;;;;;;;;AAErC,qBAAa,iBAAkB,SAAQ,sBAMrC;CAAG
|
|
1
|
+
{"version":3,"file":"Operations.d.ts","sourceRoot":"","sources":["../src/Operations.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,aAAa,CAAA;AAEhC,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,QAAQ,CAAA;AACpC,eAAO,MAAM,WAAW;;;;;;CAAa,CAAA;;;;;;;;;;;;;;;AAErC,qBAAa,iBAAkB,SAAQ,sBAMrC;CAAG;;;;;;;;;;;AAEL,qBAAa,OAAQ,SAAQ,YAE3B;CAAG;;;;;;;;;;;AAEL,qBAAa,OAAQ,SAAQ,YAE3B;CAAG;AAEL,eAAO,MAAM,eAAe;;;CAAiD,CAAA;AAC7E,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,eAAe,CAAC,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;AAEnE,qBAAa,SAAU,SAAQ,cAM7B;CAAG;AAKL,yBAAiB,iBAAiB,CAAC;;;;;;;;;IACjC,MAAM,OAAO,IAAK,SAAQ,SAAuC;KAAG;;CACrE;AACD,yBAAiB,OAAO,CAAC;;;;;IACvB,MAAM,OAAO,IAAK,SAAQ,WAA6B;KAAG;;CAC3D;AACD,yBAAiB,OAAO,CAAC;;;;;IACvB,MAAM,OAAO,IAAK,SAAQ,WAA6B;KAAG;;CAC3D;AACD,yBAAiB,SAAS,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;IACzB,MAAM,OAAO,IAAK,SAAQ,WAA+B;KAAG;;CAC7D"}
|
package/dist/Request.d.ts
CHANGED
|
@@ -13,7 +13,7 @@ export declare const responseWithJsonBody: (response: ClientResponse) => Effect.
|
|
|
13
13
|
/**
|
|
14
14
|
* @tsplus fluent effect/platform/Http/Client schemaJsonBody
|
|
15
15
|
*/
|
|
16
|
-
export declare const schemaJsonBody: <R, To, From, A, B>(client: HttpClient.Client<A, B, ClientResponse>, schema: Schema<To, From, R>) => HttpClient.Client<R | A, HttpClientError.ResponseError | S.ParseResult.ParseError
|
|
16
|
+
export declare const schemaJsonBody: <R, To, From, A, B>(client: HttpClient.Client<A, B, ClientResponse>, schema: Schema<To, From, R>) => HttpClient.Client<R | A, HttpClientError.ResponseError | B | S.ParseResult.ParseError, To>;
|
|
17
17
|
/**
|
|
18
18
|
* @tsplus fluent effect/platform/Http/Client schemaJsonBodyUnsafe
|
|
19
19
|
*/
|
|
@@ -25,7 +25,7 @@ export declare const responseWithSchemaBody: <R, From extends {
|
|
|
25
25
|
readonly status?: number;
|
|
26
26
|
readonly headers?: Headers;
|
|
27
27
|
readonly body?: unknown;
|
|
28
|
-
}, To, A, B>(client: HttpClient.Client<A, B, ClientResponse>, schema: Schema<To, From, R>) => HttpClient.Client<R | A, HttpClientError.ResponseError | S.ParseResult.ParseError
|
|
28
|
+
}, To, A, B>(client: HttpClient.Client<A, B, ClientResponse>, schema: Schema<To, From, R>) => HttpClient.Client<R | A, HttpClientError.ResponseError | B | S.ParseResult.ParseError, {
|
|
29
29
|
body: To;
|
|
30
30
|
headers: Headers;
|
|
31
31
|
status: number;
|
package/dist/client/errors.d.ts
CHANGED
|
@@ -6,15 +6,15 @@ declare const NotFoundError_base: import("@effect/schema/Schema").Class<NotFound
|
|
|
6
6
|
id: S.$unknown;
|
|
7
7
|
}, {
|
|
8
8
|
readonly _tag: "NotFoundError";
|
|
9
|
-
readonly type: string;
|
|
10
9
|
readonly id: unknown;
|
|
10
|
+
readonly type: string;
|
|
11
11
|
}, {
|
|
12
12
|
readonly _tag: "NotFoundError";
|
|
13
|
-
readonly type: string;
|
|
14
13
|
readonly id: unknown;
|
|
15
|
-
}, never, {
|
|
16
14
|
readonly type: string;
|
|
15
|
+
}, never, {
|
|
17
16
|
readonly id: unknown;
|
|
17
|
+
readonly type: string;
|
|
18
18
|
}, {}, import("effect/Cause").YieldableError>;
|
|
19
19
|
/** @tsplus type NotFoundError */
|
|
20
20
|
export declare class NotFoundError<ItemType = string> extends NotFoundError_base {
|
package/dist/client/fetch.d.ts
CHANGED
|
@@ -16,12 +16,12 @@ export declare function fetchApi(method: Method, path: string, body?: unknown):
|
|
|
16
16
|
status: number;
|
|
17
17
|
body: unknown;
|
|
18
18
|
headers: import("@effect/platform/Http/Headers").Headers;
|
|
19
|
-
} | FetchResponse<unknown>,
|
|
19
|
+
} | FetchResponse<unknown>, NotFoundError<ItemType> | InvalidStateError | ValidationError | NotLoggedInError | import("./errors.js").LoginError | UnauthorizedError | OptimisticConcurrencyException | HttpRequestError | HttpResponseError<unknown> | import("@effect/platform/Http/Body").BodyError, HttpClient.Client.Default | ApiConfig>;
|
|
20
20
|
export declare function fetchApi2S<RequestR, RequestFrom, RequestTo, ResponseR, ResponseFrom, ResponseTo>(request: Schema<RequestTo, RequestFrom, RequestR>, response: Schema<ResponseTo, ResponseFrom, ResponseR>): (method: Method, path: Path) => (req: RequestTo) => Effect.Effect<{
|
|
21
21
|
body: ResponseTo;
|
|
22
22
|
headers: Headers;
|
|
23
23
|
status: number;
|
|
24
|
-
},
|
|
24
|
+
}, S.ParseResult.ParseError | NotFoundError<ItemType> | InvalidStateError | ValidationError | NotLoggedInError | import("./errors.js").LoginError | UnauthorizedError | OptimisticConcurrencyException | HttpRequestError | ResError | HttpResponseError<unknown> | import("@effect/platform/Http/Body").BodyError, HttpClient.Client.Default | ApiConfig | RequestR | ResponseR>;
|
|
25
25
|
export declare function fetchApi3S<RequestA, RequestE, ResponseE = unknown, ResponseA = void>({ Request, Response }: {
|
|
26
26
|
Request: REST.RequestSchemed<RequestA, RequestE>;
|
|
27
27
|
Response: REST.ReqRes<ResponseA, ResponseE, any>;
|
|
@@ -29,11 +29,11 @@ export declare function fetchApi3S<RequestA, RequestE, ResponseE = unknown, Resp
|
|
|
29
29
|
body: ResponseA;
|
|
30
30
|
headers: Headers;
|
|
31
31
|
status: number;
|
|
32
|
-
},
|
|
32
|
+
}, S.ParseResult.ParseError | NotFoundError<ItemType> | InvalidStateError | ValidationError | NotLoggedInError | import("./errors.js").LoginError | UnauthorizedError | OptimisticConcurrencyException | HttpRequestError | ResError | HttpResponseError<unknown> | import("@effect/platform/Http/Body").BodyError, any>;
|
|
33
33
|
export declare function fetchApi3SE<RequestA, RequestE, ResponseE = unknown, ResponseA = void>({ Request, Response }: {
|
|
34
34
|
Request: REST.RequestSchemed<RequestA, RequestE>;
|
|
35
35
|
Response: REST.ReqRes<ResponseA, ResponseE, any>;
|
|
36
|
-
}): (req: RequestA) => Effect.Effect<FetchResponse<ResponseE>,
|
|
36
|
+
}): (req: RequestA) => Effect.Effect<FetchResponse<ResponseE>, S.ParseResult.ParseError | NotFoundError<ItemType> | InvalidStateError | ValidationError | NotLoggedInError | import("./errors.js").LoginError | UnauthorizedError | OptimisticConcurrencyException | HttpRequestError | ResError | HttpResponseError<unknown> | import("@effect/platform/Http/Body").BodyError, any>;
|
|
37
37
|
export declare function makePathWithQuery(path: Path, pars: Record<string, string | number | boolean | readonly string[] | readonly number[] | readonly boolean[] | null>): string;
|
|
38
38
|
export declare function makePathWithBody(path: Path, pars: Record<string, string | number | boolean | readonly string[] | readonly number[] | readonly boolean[] | null>): string;
|
|
39
39
|
export declare function mapResponse<T, A>(map: (t: T) => A): (r: FetchResponse<T>) => FetchResponse<A>;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "effect-app",
|
|
3
|
-
"version": "0.185.
|
|
3
|
+
"version": "0.185.8",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"dependencies": {
|
|
@@ -14,8 +14,8 @@
|
|
|
14
14
|
"uuid": "^9.0.1",
|
|
15
15
|
"validator": "^13.11.0",
|
|
16
16
|
"@effect-app/core": "0.152.1",
|
|
17
|
-
"@effect-app/
|
|
18
|
-
"@effect-app/
|
|
17
|
+
"@effect-app/fluent-extensions": "0.146.0",
|
|
18
|
+
"@effect-app/schema": "0.206.7"
|
|
19
19
|
},
|
|
20
20
|
"devDependencies": {
|
|
21
21
|
"@babel/cli": "^7.23.9",
|
|
@@ -0,0 +1,23 @@
|
|
|
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
|
|
@@ -1,33 +0,0 @@
|
|
|
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=
|