@decaf-ts/for-http 0.1.0 → 0.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (41) hide show
  1. package/dist/for-http.cjs +10 -74
  2. package/dist/for-http.esm.cjs +11 -74
  3. package/lib/RestRepository.cjs +1 -1
  4. package/lib/RestRepository.d.ts +5 -2
  5. package/lib/RestService.cjs +1 -1
  6. package/lib/RestService.d.ts +4 -3
  7. package/lib/adapter.cjs +9 -11
  8. package/lib/adapter.d.ts +14 -12
  9. package/lib/axios/axios.cjs +52 -0
  10. package/lib/{axios.d.ts → axios/axios.d.ts} +7 -4
  11. package/lib/axios/constants.cjs +5 -0
  12. package/lib/axios/constants.d.ts +1 -0
  13. package/lib/axios/index.cjs +22 -0
  14. package/lib/axios/index.d.ts +3 -0
  15. package/lib/axios/types.cjs +3 -0
  16. package/lib/axios/types.d.ts +2 -0
  17. package/lib/esm/RestRepository.d.ts +5 -2
  18. package/lib/esm/RestRepository.js +1 -1
  19. package/lib/esm/RestService.d.ts +4 -3
  20. package/lib/esm/RestService.js +1 -1
  21. package/lib/esm/adapter.d.ts +14 -12
  22. package/lib/esm/adapter.js +10 -12
  23. package/lib/esm/{axios.d.ts → axios/axios.d.ts} +7 -4
  24. package/lib/esm/axios/axios.js +48 -0
  25. package/lib/esm/axios/constants.d.ts +1 -0
  26. package/lib/esm/axios/constants.js +2 -0
  27. package/lib/esm/axios/index.d.ts +3 -0
  28. package/lib/esm/axios/index.js +6 -0
  29. package/lib/esm/axios/types.d.ts +2 -0
  30. package/lib/esm/axios/types.js +2 -0
  31. package/lib/esm/index.d.ts +1 -19
  32. package/lib/esm/index.js +2 -20
  33. package/lib/esm/types.d.ts +4 -0
  34. package/lib/esm/types.js +1 -1
  35. package/lib/index.cjs +2 -20
  36. package/lib/index.d.ts +1 -19
  37. package/lib/types.cjs +1 -1
  38. package/lib/types.d.ts +4 -0
  39. package/package.json +11 -5
  40. package/lib/axios.cjs +0 -50
  41. package/lib/esm/axios.js +0 -46
package/lib/index.d.ts CHANGED
@@ -1,23 +1,5 @@
1
1
  export * from "./adapter";
2
- export * from "./axios";
3
2
  export * from "./RestRepository";
4
3
  export * from "./RestService";
5
4
  export * from "./types";
6
- /**
7
- * @summary Module summary
8
- * @description Module description
9
- * @module ts-workspace
10
- */
11
- /**
12
- * @summary Namespace summary
13
- * @description Namespace description
14
- * @namespace Namespace
15
- * @memberOf module:ts-workspace
16
- */
17
- /**
18
- * @summary stores the current package version
19
- * @description this is how you should document a constant
20
- * @const VERSION
21
- * @memberOf module:ts-workspace
22
- */
23
- export declare const VERSION = "0.1.0";
5
+ export declare const VERSION = "0.2.1";
package/lib/types.cjs CHANGED
@@ -1,3 +1,3 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB0eXBlIEh0dHBDb25maWcgPSB7XG4gIHByb3RvY29sOiBcImh0dHBcIiB8IFwiaHR0cHNcIjtcbiAgaG9zdDogc3RyaW5nO1xufTtcbiJdfQ==
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFJlcG9zaXRvcnlGbGFncyB9IGZyb20gXCJAZGVjYWYtdHMvZGItZGVjb3JhdG9yc1wiO1xuXG5leHBvcnQgdHlwZSBIdHRwQ29uZmlnID0ge1xuICBwcm90b2NvbDogXCJodHRwXCIgfCBcImh0dHBzXCI7XG4gIGhvc3Q6IHN0cmluZztcbn07XG5cbmV4cG9ydCBpbnRlcmZhY2UgSHR0cEZsYWdzIGV4dGVuZHMgUmVwb3NpdG9yeUZsYWdzIHtcbiAgaGVhZGVycz86IFJlY29yZDxzdHJpbmcsIHN0cmluZz47XG59XG4iXX0=
package/lib/types.d.ts CHANGED
@@ -1,4 +1,8 @@
1
+ import { RepositoryFlags } from "@decaf-ts/db-decorators";
1
2
  export type HttpConfig = {
2
3
  protocol: "http" | "https";
3
4
  host: string;
4
5
  };
6
+ export interface HttpFlags extends RepositoryFlags {
7
+ headers?: Record<string, string>;
8
+ }
package/package.json CHANGED
@@ -1,16 +1,22 @@
1
1
  {
2
2
  "name": "@decaf-ts/for-http",
3
- "version": "0.1.0",
3
+ "version": "0.2.1",
4
4
  "description": "http wrappers for decaf-ts",
5
5
  "type": "module",
6
6
  "exports": {
7
- "require": "./lib/index.cjs",
8
- "import": "./lib/esm/index.js"
7
+ ".": {
8
+ "require": "./lib/index.cjs",
9
+ "import": "./lib/esm/index.js"
10
+ },
11
+ "./axios": {
12
+ "require": "./lib/axios/index.cjs",
13
+ "import": "./lib/esm/axios/index.js"
14
+ }
9
15
  },
10
- "types": "dist/types/index.d.ts",
16
+ "types": "lib/index.d.ts",
11
17
  "scripts": {
12
18
  "do-install": "TOKEN=$(cat .token) npm install",
13
- "update-dependencies": "npm update @decaf-ts/*",
19
+ "update-dependencies": "PREFIX=\"decaf-ts\"; npm ls | grep \"$PREFIX\" | awk -F/ '{print $NF}' | sed 's/@.*//' | xargs -I package npm update @\"$PREFIX\"/package",
14
20
  "update-scripts": "npx update-scripts",
15
21
  "on-first-run": "npx update-scripts --boot",
16
22
  "set-git-auth": "git config url.\"https://api:$(cat .token)@github.com/\".insteadOf \"https://github.com/\" && git config url.\"https://ssh:$(cat .token)@github.com/\".insteadOf \"ssh://git@github.com/\" && git config url.\"https://git:$(cat .token)@github.com/\".insteadOf \"git@github.com:\"",
package/lib/axios.cjs DELETED
@@ -1,50 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.AxiosHttpAdapter = void 0;
4
- const adapter_1 = require("./adapter.cjs");
5
- class AxiosHttpAdapter extends adapter_1.HttpAdapter {
6
- constructor(native, config, flavour = "axios") {
7
- super(native, config, flavour);
8
- }
9
- async request(details) {
10
- return this.native.request(details);
11
- }
12
- async create(tableName, id, model) {
13
- try {
14
- const url = this.url(tableName);
15
- return this.native.post(url, model);
16
- }
17
- catch (e) {
18
- throw this.parseError(e);
19
- }
20
- }
21
- async read(tableName, id) {
22
- try {
23
- const url = this.url(tableName, { id: id });
24
- return this.native.get(url);
25
- }
26
- catch (e) {
27
- throw this.parseError(e);
28
- }
29
- }
30
- async update(tableName, id, model) {
31
- try {
32
- const url = this.url(tableName);
33
- return this.native.put(url, model);
34
- }
35
- catch (e) {
36
- throw this.parseError(e);
37
- }
38
- }
39
- async delete(tableName, id) {
40
- try {
41
- const url = this.url(tableName, { id: id });
42
- return this.native.delete(url);
43
- }
44
- catch (e) {
45
- throw this.parseError(e);
46
- }
47
- }
48
- }
49
- exports.AxiosHttpAdapter = AxiosHttpAdapter;
50
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXhpb3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvYXhpb3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsdUNBQXdDO0FBSXhDLE1BQWEsZ0JBQWlCLFNBQVEscUJBQXNDO0lBQzFFLFlBQVksTUFBYSxFQUFFLE1BQWtCLEVBQUUsVUFBa0IsT0FBTztRQUN0RSxLQUFLLENBQUMsTUFBYSxFQUFFLE1BQU0sRUFBRSxPQUFPLENBQUMsQ0FBQztJQUN4QyxDQUFDO0lBRVEsS0FBSyxDQUFDLE9BQU8sQ0FBSSxPQUEyQjtRQUNuRCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ3RDLENBQUM7SUFFRCxLQUFLLENBQUMsTUFBTSxDQUNWLFNBQWlCLEVBQ2pCLEVBQW1CLEVBQ25CLEtBQTBCO1FBRTFCLElBQUksQ0FBQztZQUNILE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLENBQUM7WUFDaEMsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDdEMsQ0FBQztRQUFDLE9BQU8sQ0FBTSxFQUFFLENBQUM7WUFDaEIsTUFBTSxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzNCLENBQUM7SUFDSCxDQUFDO0lBQ0QsS0FBSyxDQUFDLElBQUksQ0FDUixTQUFpQixFQUNqQixFQUE0QjtRQUU1QixJQUFJLENBQUM7WUFDSCxNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLFNBQVMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFxQixFQUFFLENBQUMsQ0FBQztZQUMvRCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQzlCLENBQUM7UUFBQyxPQUFPLENBQU0sRUFBRSxDQUFDO1lBQ2hCLE1BQU0sSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUMzQixDQUFDO0lBQ0gsQ0FBQztJQUVELEtBQUssQ0FBQyxNQUFNLENBQ1YsU0FBaUIsRUFDakIsRUFBbUIsRUFDbkIsS0FBMEI7UUFFMUIsSUFBSSxDQUFDO1lBQ0gsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUNoQyxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUNyQyxDQUFDO1FBQUMsT0FBTyxDQUFNLEVBQUUsQ0FBQztZQUNoQixNQUFNLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDM0IsQ0FBQztJQUNILENBQUM7SUFFRCxLQUFLLENBQUMsTUFBTSxDQUNWLFNBQWlCLEVBQ2pCLEVBQTRCO1FBRTVCLElBQUksQ0FBQztZQUNILE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsU0FBUyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQXFCLEVBQUUsQ0FBQyxDQUFDO1lBQy9ELE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDakMsQ0FBQztRQUFDLE9BQU8sQ0FBTSxFQUFFLENBQUM7WUFDaEIsTUFBTSxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzNCLENBQUM7SUFDSCxDQUFDO0NBQ0Y7QUF6REQsNENBeURDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSHR0cEFkYXB0ZXIgfSBmcm9tIFwiLi9hZGFwdGVyXCI7XG5pbXBvcnQgeyBBeGlvcywgQXhpb3NSZXF1ZXN0Q29uZmlnIH0gZnJvbSBcImF4aW9zXCI7XG5pbXBvcnQgeyBIdHRwQ29uZmlnIH0gZnJvbSBcIi4vdHlwZXNcIjtcblxuZXhwb3J0IGNsYXNzIEF4aW9zSHR0cEFkYXB0ZXIgZXh0ZW5kcyBIdHRwQWRhcHRlcjxBeGlvcywgQXhpb3NSZXF1ZXN0Q29uZmlnPiB7XG4gIGNvbnN0cnVjdG9yKG5hdGl2ZTogQXhpb3MsIGNvbmZpZzogSHR0cENvbmZpZywgZmxhdm91cjogc3RyaW5nID0gXCJheGlvc1wiKSB7XG4gICAgc3VwZXIobmF0aXZlIGFzIGFueSwgY29uZmlnLCBmbGF2b3VyKTtcbiAgfVxuXG4gIG92ZXJyaWRlIGFzeW5jIHJlcXVlc3Q8Vj4oZGV0YWlsczogQXhpb3NSZXF1ZXN0Q29uZmlnKTogUHJvbWlzZTxWPiB7XG4gICAgcmV0dXJuIHRoaXMubmF0aXZlLnJlcXVlc3QoZGV0YWlscyk7XG4gIH1cblxuICBhc3luYyBjcmVhdGUoXG4gICAgdGFibGVOYW1lOiBzdHJpbmcsXG4gICAgaWQ6IHN0cmluZyB8IG51bWJlcixcbiAgICBtb2RlbDogUmVjb3JkPHN0cmluZywgYW55PlxuICApOiBQcm9taXNlPFJlY29yZDxzdHJpbmcsIGFueT4+IHtcbiAgICB0cnkge1xuICAgICAgY29uc3QgdXJsID0gdGhpcy51cmwodGFibGVOYW1lKTtcbiAgICAgIHJldHVybiB0aGlzLm5hdGl2ZS5wb3N0KHVybCwgbW9kZWwpO1xuICAgIH0gY2F0Y2ggKGU6IGFueSkge1xuICAgICAgdGhyb3cgdGhpcy5wYXJzZUVycm9yKGUpO1xuICAgIH1cbiAgfVxuICBhc3luYyByZWFkKFxuICAgIHRhYmxlTmFtZTogc3RyaW5nLFxuICAgIGlkOiBzdHJpbmcgfCBudW1iZXIgfCBiaWdpbnRcbiAgKTogUHJvbWlzZTxSZWNvcmQ8c3RyaW5nLCBhbnk+PiB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHVybCA9IHRoaXMudXJsKHRhYmxlTmFtZSwgeyBpZDogaWQgYXMgc3RyaW5nIHwgbnVtYmVyIH0pO1xuICAgICAgcmV0dXJuIHRoaXMubmF0aXZlLmdldCh1cmwpO1xuICAgIH0gY2F0Y2ggKGU6IGFueSkge1xuICAgICAgdGhyb3cgdGhpcy5wYXJzZUVycm9yKGUpO1xuICAgIH1cbiAgfVxuXG4gIGFzeW5jIHVwZGF0ZShcbiAgICB0YWJsZU5hbWU6IHN0cmluZyxcbiAgICBpZDogc3RyaW5nIHwgbnVtYmVyLFxuICAgIG1vZGVsOiBSZWNvcmQ8c3RyaW5nLCBhbnk+XG4gICk6IFByb21pc2U8UmVjb3JkPHN0cmluZywgYW55Pj4ge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCB1cmwgPSB0aGlzLnVybCh0YWJsZU5hbWUpO1xuICAgICAgcmV0dXJuIHRoaXMubmF0aXZlLnB1dCh1cmwsIG1vZGVsKTtcbiAgICB9IGNhdGNoIChlOiBhbnkpIHtcbiAgICAgIHRocm93IHRoaXMucGFyc2VFcnJvcihlKTtcbiAgICB9XG4gIH1cblxuICBhc3luYyBkZWxldGUoXG4gICAgdGFibGVOYW1lOiBzdHJpbmcsXG4gICAgaWQ6IHN0cmluZyB8IG51bWJlciB8IGJpZ2ludFxuICApOiBQcm9taXNlPFJlY29yZDxzdHJpbmcsIGFueT4+IHtcbiAgICB0cnkge1xuICAgICAgY29uc3QgdXJsID0gdGhpcy51cmwodGFibGVOYW1lLCB7IGlkOiBpZCBhcyBzdHJpbmcgfCBudW1iZXIgfSk7XG4gICAgICByZXR1cm4gdGhpcy5uYXRpdmUuZGVsZXRlKHVybCk7XG4gICAgfSBjYXRjaCAoZTogYW55KSB7XG4gICAgICB0aHJvdyB0aGlzLnBhcnNlRXJyb3IoZSk7XG4gICAgfVxuICB9XG59XG4iXX0=
package/lib/esm/axios.js DELETED
@@ -1,46 +0,0 @@
1
- import { HttpAdapter } from "./adapter";
2
- export class AxiosHttpAdapter extends HttpAdapter {
3
- constructor(native, config, flavour = "axios") {
4
- super(native, config, flavour);
5
- }
6
- async request(details) {
7
- return this.native.request(details);
8
- }
9
- async create(tableName, id, model) {
10
- try {
11
- const url = this.url(tableName);
12
- return this.native.post(url, model);
13
- }
14
- catch (e) {
15
- throw this.parseError(e);
16
- }
17
- }
18
- async read(tableName, id) {
19
- try {
20
- const url = this.url(tableName, { id: id });
21
- return this.native.get(url);
22
- }
23
- catch (e) {
24
- throw this.parseError(e);
25
- }
26
- }
27
- async update(tableName, id, model) {
28
- try {
29
- const url = this.url(tableName);
30
- return this.native.put(url, model);
31
- }
32
- catch (e) {
33
- throw this.parseError(e);
34
- }
35
- }
36
- async delete(tableName, id) {
37
- try {
38
- const url = this.url(tableName, { id: id });
39
- return this.native.delete(url);
40
- }
41
- catch (e) {
42
- throw this.parseError(e);
43
- }
44
- }
45
- }
46
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXhpb3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvYXhpb3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUl4QyxNQUFNLE9BQU8sZ0JBQWlCLFNBQVEsV0FBc0M7SUFDMUUsWUFBWSxNQUFhLEVBQUUsTUFBa0IsRUFBRSxVQUFrQixPQUFPO1FBQ3RFLEtBQUssQ0FBQyxNQUFhLEVBQUUsTUFBTSxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQ3hDLENBQUM7SUFFUSxLQUFLLENBQUMsT0FBTyxDQUFJLE9BQTJCO1FBQ25ELE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDdEMsQ0FBQztJQUVELEtBQUssQ0FBQyxNQUFNLENBQ1YsU0FBaUIsRUFDakIsRUFBbUIsRUFDbkIsS0FBMEI7UUFFMUIsSUFBSSxDQUFDO1lBQ0gsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUNoQyxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUN0QyxDQUFDO1FBQUMsT0FBTyxDQUFNLEVBQUUsQ0FBQztZQUNoQixNQUFNLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDM0IsQ0FBQztJQUNILENBQUM7SUFDRCxLQUFLLENBQUMsSUFBSSxDQUNSLFNBQWlCLEVBQ2pCLEVBQTRCO1FBRTVCLElBQUksQ0FBQztZQUNILE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsU0FBUyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQXFCLEVBQUUsQ0FBQyxDQUFDO1lBQy9ELE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDOUIsQ0FBQztRQUFDLE9BQU8sQ0FBTSxFQUFFLENBQUM7WUFDaEIsTUFBTSxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzNCLENBQUM7SUFDSCxDQUFDO0lBRUQsS0FBSyxDQUFDLE1BQU0sQ0FDVixTQUFpQixFQUNqQixFQUFtQixFQUNuQixLQUEwQjtRQUUxQixJQUFJLENBQUM7WUFDSCxNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1lBQ2hDLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQ3JDLENBQUM7UUFBQyxPQUFPLENBQU0sRUFBRSxDQUFDO1lBQ2hCLE1BQU0sSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUMzQixDQUFDO0lBQ0gsQ0FBQztJQUVELEtBQUssQ0FBQyxNQUFNLENBQ1YsU0FBaUIsRUFDakIsRUFBNEI7UUFFNUIsSUFBSSxDQUFDO1lBQ0gsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxTQUFTLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBcUIsRUFBRSxDQUFDLENBQUM7WUFDL0QsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNqQyxDQUFDO1FBQUMsT0FBTyxDQUFNLEVBQUUsQ0FBQztZQUNoQixNQUFNLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDM0IsQ0FBQztJQUNILENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBBZGFwdGVyIH0gZnJvbSBcIi4vYWRhcHRlclwiO1xuaW1wb3J0IHsgQXhpb3MsIEF4aW9zUmVxdWVzdENvbmZpZyB9IGZyb20gXCJheGlvc1wiO1xuaW1wb3J0IHsgSHR0cENvbmZpZyB9IGZyb20gXCIuL3R5cGVzXCI7XG5cbmV4cG9ydCBjbGFzcyBBeGlvc0h0dHBBZGFwdGVyIGV4dGVuZHMgSHR0cEFkYXB0ZXI8QXhpb3MsIEF4aW9zUmVxdWVzdENvbmZpZz4ge1xuICBjb25zdHJ1Y3RvcihuYXRpdmU6IEF4aW9zLCBjb25maWc6IEh0dHBDb25maWcsIGZsYXZvdXI6IHN0cmluZyA9IFwiYXhpb3NcIikge1xuICAgIHN1cGVyKG5hdGl2ZSBhcyBhbnksIGNvbmZpZywgZmxhdm91cik7XG4gIH1cblxuICBvdmVycmlkZSBhc3luYyByZXF1ZXN0PFY+KGRldGFpbHM6IEF4aW9zUmVxdWVzdENvbmZpZyk6IFByb21pc2U8Vj4ge1xuICAgIHJldHVybiB0aGlzLm5hdGl2ZS5yZXF1ZXN0KGRldGFpbHMpO1xuICB9XG5cbiAgYXN5bmMgY3JlYXRlKFxuICAgIHRhYmxlTmFtZTogc3RyaW5nLFxuICAgIGlkOiBzdHJpbmcgfCBudW1iZXIsXG4gICAgbW9kZWw6IFJlY29yZDxzdHJpbmcsIGFueT5cbiAgKTogUHJvbWlzZTxSZWNvcmQ8c3RyaW5nLCBhbnk+PiB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHVybCA9IHRoaXMudXJsKHRhYmxlTmFtZSk7XG4gICAgICByZXR1cm4gdGhpcy5uYXRpdmUucG9zdCh1cmwsIG1vZGVsKTtcbiAgICB9IGNhdGNoIChlOiBhbnkpIHtcbiAgICAgIHRocm93IHRoaXMucGFyc2VFcnJvcihlKTtcbiAgICB9XG4gIH1cbiAgYXN5bmMgcmVhZChcbiAgICB0YWJsZU5hbWU6IHN0cmluZyxcbiAgICBpZDogc3RyaW5nIHwgbnVtYmVyIHwgYmlnaW50XG4gICk6IFByb21pc2U8UmVjb3JkPHN0cmluZywgYW55Pj4ge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCB1cmwgPSB0aGlzLnVybCh0YWJsZU5hbWUsIHsgaWQ6IGlkIGFzIHN0cmluZyB8IG51bWJlciB9KTtcbiAgICAgIHJldHVybiB0aGlzLm5hdGl2ZS5nZXQodXJsKTtcbiAgICB9IGNhdGNoIChlOiBhbnkpIHtcbiAgICAgIHRocm93IHRoaXMucGFyc2VFcnJvcihlKTtcbiAgICB9XG4gIH1cblxuICBhc3luYyB1cGRhdGUoXG4gICAgdGFibGVOYW1lOiBzdHJpbmcsXG4gICAgaWQ6IHN0cmluZyB8IG51bWJlcixcbiAgICBtb2RlbDogUmVjb3JkPHN0cmluZywgYW55PlxuICApOiBQcm9taXNlPFJlY29yZDxzdHJpbmcsIGFueT4+IHtcbiAgICB0cnkge1xuICAgICAgY29uc3QgdXJsID0gdGhpcy51cmwodGFibGVOYW1lKTtcbiAgICAgIHJldHVybiB0aGlzLm5hdGl2ZS5wdXQodXJsLCBtb2RlbCk7XG4gICAgfSBjYXRjaCAoZTogYW55KSB7XG4gICAgICB0aHJvdyB0aGlzLnBhcnNlRXJyb3IoZSk7XG4gICAgfVxuICB9XG5cbiAgYXN5bmMgZGVsZXRlKFxuICAgIHRhYmxlTmFtZTogc3RyaW5nLFxuICAgIGlkOiBzdHJpbmcgfCBudW1iZXIgfCBiaWdpbnRcbiAgKTogUHJvbWlzZTxSZWNvcmQ8c3RyaW5nLCBhbnk+PiB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHVybCA9IHRoaXMudXJsKHRhYmxlTmFtZSwgeyBpZDogaWQgYXMgc3RyaW5nIHwgbnVtYmVyIH0pO1xuICAgICAgcmV0dXJuIHRoaXMubmF0aXZlLmRlbGV0ZSh1cmwpO1xuICAgIH0gY2F0Y2ggKGU6IGFueSkge1xuICAgICAgdGhyb3cgdGhpcy5wYXJzZUVycm9yKGUpO1xuICAgIH1cbiAgfVxufVxuIl19