@sdkgen/node-runtime 0.0.0-dev.20230106165109 → 0.0.0-dev.20230109134521

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/spec/error.spec.js +3 -4
  2. package/dist/spec/rest/rest.spec.js +24 -24
  3. package/dist/spec/runtime/errors.spec.js +15 -14
  4. package/dist/spec/runtime/middleware.spec.js +15 -14
  5. package/dist/spec/simple/legacyNodeClient.js +6 -32
  6. package/dist/spec/simple/simple.spec.js +27 -28
  7. package/dist/spec/types.js +27 -28
  8. package/dist/spec/types.spec.js +54 -55
  9. package/dist/src/api-config.js +4 -8
  10. package/dist/src/context.js +2 -2
  11. package/dist/src/encode-decode.js +12 -50
  12. package/dist/src/error.js +4 -9
  13. package/dist/src/execute.js +12 -14
  14. package/dist/src/http-client.js +25 -27
  15. package/dist/src/http-server.js +160 -170
  16. package/dist/src/index.js +8 -18
  17. package/dist/src/new-interface.js +200 -0
  18. package/dist/src/swagger.js +126 -115
  19. package/dist/src/test-wrapper.js +25 -23
  20. package/dist/src/utils.js +2 -5
  21. package/package.json +27 -22
  22. package/dist/spec/error.spec.d.ts +0 -1
  23. package/dist/spec/rest/rest.spec.d.ts +0 -1
  24. package/dist/spec/runtime/errors.spec.d.ts +0 -1
  25. package/dist/spec/runtime/middleware.spec.d.ts +0 -1
  26. package/dist/spec/simple/legacyNodeClient.d.ts +0 -17
  27. package/dist/spec/simple/simple.spec.d.ts +0 -1
  28. package/dist/spec/types.d.ts +0 -1
  29. package/dist/spec/types.spec.d.ts +0 -1
  30. package/dist/src/api-config.d.ts +0 -15
  31. package/dist/src/context.d.ts +0 -38
  32. package/dist/src/encode-decode.d.ts +0 -32
  33. package/dist/src/error.d.ts +0 -18
  34. package/dist/src/execute.d.ts +0 -3
  35. package/dist/src/http-client.d.ts +0 -17
  36. package/dist/src/http-server.d.ts +0 -37
  37. package/dist/src/index.d.ts +0 -7
  38. package/dist/src/swagger.d.ts +0 -2
  39. package/dist/src/test-wrapper.d.ts +0 -3
  40. package/dist/src/utils.d.ts +0 -6
  41. package/dist/tsconfig.tsbuildinfo +0 -1
@@ -1,116 +1,114 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
1
  /* eslint-disable @typescript-eslint/no-unsafe-member-access */
4
2
  /* eslint-disable @typescript-eslint/no-unsafe-call */
5
- const src_1 = require("../src");
3
+ import { decode, encode } from "../src/index.js";
6
4
  describe("Encode/Decode", () => {
7
5
  test("Process CPF", () => {
8
- expect((0, src_1.encode)({}, "", "cpf", "067.183.145-36")).toBe("06718314536");
9
- expect((0, src_1.decode)({}, "", "cpf", "06718314536")).toBe("067.183.145-36");
6
+ expect(encode({}, "", "cpf", "067.183.145-36")).toBe("06718314536");
7
+ expect(decode({}, "", "cpf", "06718314536")).toBe("067.183.145-36");
10
8
  expect(() => {
11
- (0, src_1.encode)({}, "", "cpf", "067.183.145-35");
9
+ encode({}, "", "cpf", "067.183.145-35");
12
10
  }).toThrow();
13
11
  expect(() => {
14
- (0, src_1.decode)({}, "", "cpf", "06718314535");
12
+ decode({}, "", "cpf", "06718314535");
15
13
  }).toThrow();
16
14
  });
17
15
  test("Process CNPJ", () => {
18
- expect((0, src_1.encode)({}, "", "cnpj", "18.571.767/0001-36")).toBe("18571767000136");
19
- expect((0, src_1.decode)({}, "", "cnpj", "18571767000136")).toBe("18.571.767/0001-36");
16
+ expect(encode({}, "", "cnpj", "18.571.767/0001-36")).toBe("18571767000136");
17
+ expect(decode({}, "", "cnpj", "18571767000136")).toBe("18.571.767/0001-36");
20
18
  expect(() => {
21
- (0, src_1.encode)({}, "", "cnpj", "18.571.767/0001-35");
19
+ encode({}, "", "cnpj", "18.571.767/0001-35");
22
20
  }).toThrow();
23
21
  expect(() => {
24
- (0, src_1.decode)({}, "", "cnpj", "18571767000135");
22
+ decode({}, "", "cnpj", "18571767000135");
25
23
  }).toThrow();
26
24
  });
27
25
  test("Process URL", () => {
28
- expect((0, src_1.encode)({}, "", "url", "https://cubos.io/")).toBe("https://cubos.io/");
29
- expect((0, src_1.decode)({}, "", "url", "https://cubos.io/")).toBe("https://cubos.io/");
30
- expect((0, src_1.encode)({}, "", "url", " https:cubos.io/ ")).toBe("https://cubos.io/");
31
- expect((0, src_1.encode)({}, "", "url", " https:cubos.io ")).toBe("https://cubos.io/");
26
+ expect(encode({}, "", "url", "https://cubos.io/")).toBe("https://cubos.io/");
27
+ expect(decode({}, "", "url", "https://cubos.io/")).toBe("https://cubos.io/");
28
+ expect(encode({}, "", "url", " https:cubos.io/ ")).toBe("https://cubos.io/");
29
+ expect(encode({}, "", "url", " https:cubos.io ")).toBe("https://cubos.io/");
32
30
  expect(() => {
33
- (0, src_1.encode)({}, "", "url", "dfbdfb");
31
+ encode({}, "", "url", "dfbdfb");
34
32
  }).toThrow();
35
33
  expect(() => {
36
- (0, src_1.decode)({}, "", "url", "hhh.com");
34
+ decode({}, "", "url", "hhh.com");
37
35
  }).toThrow();
38
36
  });
39
37
  test("Process Base64", () => {
40
- expect((0, src_1.encode)({}, "", "base64", "c3VyZS4=")).toBe("c3VyZS4=");
41
- expect((0, src_1.encode)({}, "", "base64", "")).toBe("");
38
+ expect(encode({}, "", "base64", "c3VyZS4=")).toBe("c3VyZS4=");
39
+ expect(encode({}, "", "base64", "")).toBe("");
42
40
  expect(() => {
43
- (0, src_1.encode)({}, "", "base64", "c3VyZS4");
41
+ encode({}, "", "base64", "c3VyZS4");
44
42
  }).toThrow();
45
43
  expect(() => {
46
- (0, src_1.encode)({}, "", "base64", " c3VyZS4=");
44
+ encode({}, "", "base64", " c3VyZS4=");
47
45
  }).toThrow();
48
- expect((0, src_1.decode)({}, "", "base64", "c3VyZS4=")).toBe("c3VyZS4=");
49
- expect((0, src_1.decode)({}, "", "base64", "")).toBe("");
46
+ expect(decode({}, "", "base64", "c3VyZS4=")).toBe("c3VyZS4=");
47
+ expect(decode({}, "", "base64", "")).toBe("");
50
48
  expect(() => {
51
- (0, src_1.decode)({}, "", "base64", "c3VyZS4");
49
+ decode({}, "", "base64", "c3VyZS4");
52
50
  }).toThrow();
53
51
  expect(() => {
54
- (0, src_1.decode)({}, "", "base64", " c3VyZS4=");
52
+ decode({}, "", "base64", " c3VyZS4=");
55
53
  }).toThrow();
56
54
  });
57
55
  test("Process Date", () => {
58
- expect((0, src_1.encode)({}, "", "date", new Date("2020-11-10T00:00:00Z"))).toBe("2020-11-10");
59
- expect((0, src_1.encode)({}, "", "date", new Date("2020-11-10T15:34:50Z"))).toBe("2020-11-10");
60
- expect((0, src_1.encode)({}, "", "date", "2020-11-10")).toBe("2020-11-10");
56
+ expect(encode({}, "", "date", new Date("2020-11-10T00:00:00Z"))).toBe("2020-11-10");
57
+ expect(encode({}, "", "date", new Date("2020-11-10T15:34:50Z"))).toBe("2020-11-10");
58
+ expect(encode({}, "", "date", "2020-11-10")).toBe("2020-11-10");
61
59
  expect(() => {
62
- (0, src_1.encode)({}, "", "date", "2020-11-10T15:34:50Z");
60
+ encode({}, "", "date", "2020-11-10T15:34:50Z");
63
61
  }).toThrow();
64
62
  expect(() => {
65
- (0, src_1.encode)({}, "", "date", "hello world");
63
+ encode({}, "", "date", "hello world");
66
64
  }).toThrow();
67
65
  expect(() => {
68
- (0, src_1.decode)({}, "", "date", "2020-02-30");
66
+ decode({}, "", "date", "2020-02-30");
69
67
  }).toThrow();
70
68
  expect(() => {
71
- (0, src_1.encode)({}, "", "date", new Date(""));
69
+ encode({}, "", "date", new Date(""));
72
70
  }).toThrow();
73
71
  });
74
72
  test("Process Datetime", () => {
75
- expect((0, src_1.encode)({}, "", "datetime", new Date("2020-11-10T15:34:50Z"))).toBe("2020-11-10T15:34:50.000");
76
- expect((0, src_1.encode)({}, "", "datetime", "2020-11-10T15:34:50Z")).toBe("2020-11-10T15:34:50.000");
77
- expect((0, src_1.encode)({}, "", "datetime", "2020-11-10T15:34:50.999")).toBe("2020-11-10T15:34:50.999");
78
- expect((0, src_1.encode)({}, "", "datetime", "2020-11-10T15:34:50+01:00")).toBe("2020-11-10T14:34:50.000");
79
- expect((0, src_1.encode)({}, "", "datetime", "2020-11-10T15:34:50.999+01:00")).toBe("2020-11-10T14:34:50.999");
73
+ expect(encode({}, "", "datetime", new Date("2020-11-10T15:34:50Z"))).toBe("2020-11-10T15:34:50.000");
74
+ expect(encode({}, "", "datetime", "2020-11-10T15:34:50Z")).toBe("2020-11-10T15:34:50.000");
75
+ expect(encode({}, "", "datetime", "2020-11-10T15:34:50.999")).toBe("2020-11-10T15:34:50.999");
76
+ expect(encode({}, "", "datetime", "2020-11-10T15:34:50+01:00")).toBe("2020-11-10T14:34:50.000");
77
+ expect(encode({}, "", "datetime", "2020-11-10T15:34:50.999+01:00")).toBe("2020-11-10T14:34:50.999");
80
78
  expect(() => {
81
- (0, src_1.encode)({}, "", "datetime", "2020-11-10");
79
+ encode({}, "", "datetime", "2020-11-10");
82
80
  }).toThrow();
83
81
  expect(() => {
84
- (0, src_1.encode)({}, "", "datetime", "hello world");
82
+ encode({}, "", "datetime", "hello world");
85
83
  }).toThrow();
86
84
  expect(() => {
87
- (0, src_1.encode)({}, "", "datetime", "2020-11-10T15:34:50.999$01:00");
85
+ encode({}, "", "datetime", "2020-11-10T15:34:50.999$01:00");
88
86
  }).toThrow();
89
87
  expect(() => {
90
- (0, src_1.decode)({}, "", "datetime", "2020-11-10T15:34:50.999$01:00");
88
+ decode({}, "", "datetime", "2020-11-10T15:34:50.999$01:00");
91
89
  }).toThrow();
92
- expect((0, src_1.decode)({}, "", "datetime", "2020-11-10T15:34:50Z").getTime()).toBe(new Date("2020-11-10T15:34:50Z").getTime());
93
- expect((0, src_1.decode)({}, "", "datetime", "2020-11-10T15:34:50.000").getTime()).toBe(new Date("2020-11-10T15:34:50Z").getTime());
90
+ expect(decode({}, "", "datetime", "2020-11-10T15:34:50Z").getTime()).toBe(new Date("2020-11-10T15:34:50Z").getTime());
91
+ expect(decode({}, "", "datetime", "2020-11-10T15:34:50.000").getTime()).toBe(new Date("2020-11-10T15:34:50Z").getTime());
94
92
  expect(() => {
95
- (0, src_1.encode)({}, "", "datetime", new Date(""));
93
+ encode({}, "", "datetime", new Date(""));
96
94
  }).toThrow();
97
95
  });
98
96
  test("Process BigInt", () => {
99
- expect((0, src_1.encode)({}, "", "bigint", BigInt(10))).toBe("10");
97
+ expect(encode({}, "", "bigint", BigInt(10))).toBe("10");
100
98
  expect(() => {
101
- (0, src_1.encode)({}, "", "bigint", 10);
99
+ encode({}, "", "bigint", 10);
102
100
  }).toThrow();
103
101
  expect(() => {
104
- (0, src_1.encode)({}, "", "bigint", "10");
102
+ encode({}, "", "bigint", "10");
105
103
  }).toThrow();
106
- expect((0, src_1.decode)({}, "", "bigint", 10)).toBe(BigInt(10));
107
- expect((0, src_1.decode)({}, "", "bigint", "10")).toBe(BigInt(10));
104
+ expect(decode({}, "", "bigint", 10)).toBe(BigInt(10));
105
+ expect(decode({}, "", "bigint", "10")).toBe(BigInt(10));
108
106
  expect(() => {
109
- (0, src_1.decode)({}, "", "bigint", "hello world");
107
+ decode({}, "", "bigint", "hello world");
110
108
  }).toThrow();
111
109
  });
112
110
  test("Process Enum", () => {
113
- for (const func of [src_1.encode, src_1.decode]) {
111
+ for (const func of [encode, decode]) {
114
112
  expect(func({}, "", ["a", "b"], "a")).toBe("a");
115
113
  expect(func({}, "", ["a", "b"], "b")).toBe("b");
116
114
  expect(() => {
@@ -120,9 +118,10 @@ describe("Encode/Decode", () => {
120
118
  func({ X: { v: "int" } }, "", ["a", ["b", "X"]], "b");
121
119
  }).toThrow();
122
120
  }
123
- expect((0, src_1.encode)({ X: { v: "int" } }, "", ["a", ["b", "X"]], { tag: "a" })).toBe("a");
124
- expect((0, src_1.encode)({ X: { v: "int" } }, "", ["a", ["b", "X"]], { tag: "b", v: 4 })).toEqual(["b", { v: 4 }]);
125
- expect((0, src_1.decode)({ X: { v: "int" } }, "", ["a", ["b", "X"]], "a")).toEqual({ tag: "a" });
126
- expect((0, src_1.decode)({ X: { v: "int" } }, "", ["a", ["b", "X"]], ["b", { v: 4 }])).toEqual({ tag: "b", v: 4 });
121
+ expect(encode({ X: { v: "int" } }, "", ["a", ["b", "X"]], { tag: "a" })).toBe("a");
122
+ expect(encode({ X: { v: "int" } }, "", ["a", ["b", "X"]], { tag: "b", v: 4 })).toEqual(["b", { v: 4 }]);
123
+ expect(decode({ X: { v: "int" } }, "", ["a", ["b", "X"]], "a")).toEqual({ tag: "a" });
124
+ expect(decode({ X: { v: "int" } }, "", ["a", ["b", "X"]], ["b", { v: 4 }])).toEqual({ tag: "b", v: 4 });
127
125
  });
128
126
  });
127
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuc3BlYy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NwZWMvdHlwZXMuc3BlYy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSwrREFBK0Q7QUFDL0Qsc0RBQXNEO0FBQ3RELE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFakQsUUFBUSxDQUFDLGVBQWUsRUFBRSxHQUFHLEVBQUU7SUFDN0IsSUFBSSxDQUFDLGFBQWEsRUFBRSxHQUFHLEVBQUU7UUFDdkIsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEtBQUssRUFBRSxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQ3BFLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxLQUFLLEVBQUUsYUFBYSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQUNwRSxNQUFNLENBQUMsR0FBRyxFQUFFO1lBQ1YsTUFBTSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsS0FBSyxFQUFFLGdCQUFnQixDQUFDLENBQUM7UUFDMUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDYixNQUFNLENBQUMsR0FBRyxFQUFFO1lBQ1YsTUFBTSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsS0FBSyxFQUFFLGFBQWEsQ0FBQyxDQUFDO1FBQ3ZDLENBQUMsQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQ2YsQ0FBQyxDQUFDLENBQUM7SUFFSCxJQUFJLENBQUMsY0FBYyxFQUFFLEdBQUcsRUFBRTtRQUN4QixNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsTUFBTSxFQUFFLG9CQUFvQixDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQUM1RSxNQUFNLENBQUMsTUFBTSxDQUFD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Q0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFFeEcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEdBQUcsRUFBRSxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUM7UUFDdEYsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEdBQUcsRUFBRSxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDMUcsQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnNhZmUtbWVtYmVyLWFjY2VzcyAqL1xuLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVuc2FmZS1jYWxsICovXG5pbXBvcnQgeyBkZWNvZGUsIGVuY29kZSB9IGZyb20gXCIuLi9zcmMvaW5kZXguanNcIjtcblxuZGVzY3JpYmUoXCJFbmNvZGUvRGVjb2RlXCIsICgpID0+IHtcbiAgdGVzdChcIlByb2Nlc3MgQ1BGXCIsICgpID0+IHtcbiAgICBleHBlY3QoZW5jb2RlKHt9LCBcIlwiLCBcImNwZlwiLCBcIjA2Ny4xODMuMTQ1LTM2XCIpKS50b0JlKFwiMDY3MTgzMTQ1MzZcIik7XG4gICAgZXhwZWN0KGRlY29kZSh7fSwgXCJcIiwgXCJjcGZcIiwgXCIwNjcxODMxNDUzNlwiKSkudG9CZShcIjA2Ny4xODMuMTQ1LTM2XCIpO1xuICAgIGV4cGVjdCgoKSA9PiB7XG4gICAgICBlbmNvZGUoe30sIFwiXCIsIFwiY3BmXCIsIFwiMDY3LjE4My4xNDUtMzVcIik7XG4gICAgfSkudG9UaHJvdygpO1xuICAgIGV4cGVjdCgoKSA9PiB7XG4gICAgICBkZWNvZGUoe30sIFwiXCIsIFwiY3BmXCIsIFwiMDY3MTgzMTQ1MzVcIik7XG4gICAgfSkudG9UaHJvdygpO1xuICB9KTtcblxuICB0ZXN0KFwiUHJvY2VzcyBDTlBKXCIsICgpID0+IHtcbiAgICBleHBlY3QoZW5jb2RlKHt9LCBcIlwiLCBcImNucGpcIiwgXCIxOC41NzEuNzY3LzAwMDEtMzZcIikpLnRvQmUoXCIxODU3MTc2NzAwMDEzNlwiKTtcbiAgICBleHBlY3QoZGVjb2RlKHt9LCBcIlwiLCBcImNucGpcIiwgXCIxODU3MTc2NzAwMDEzNlwiKSkudG9CZShcIjE4LjU3MS43NjcvMDAwMS0zNlwiKTtcbiAgICBleHBlY3QoKCkgPT4ge1xuICAgICAgZW5jb2RlKHt9LCBcIlwiLCBcImNucGpcIiwgXCIxOC41NzEuNzY3LzAwMDEtMzVcIik7XG4gICAgfSkudG9UaHJvdygpO1xuICAgIGV4cGVjdCgoKSA9PiB7XG4gICAgICBkZWNvZGUoe30sIFwiXCIsIFwiY25walwiLCBcIjE4NTcxNzY3MDAwMTM1XCIpO1xuICAgIH0pLnRvVGhyb3coKTtcbiAgfSk7XG5cbiAgdGVzdChcIlByb2Nlc3MgVVJMXCIsICgpID0+IHtcbiAgICBleHBlY3QoZW5jb2RlKHt9LCBcIlwiLCBcInVybFwiLCBcImh0dHBzOi8vY3Vib3MuaW8vXCIpKS50b0JlKFwiaHR0cHM6Ly9jdWJvcy5pby9cIik7XG4gICAgZXhwZWN0KGRlY29kZSh7fSwgXCJcIiwgXCJ1cmxcIiwgXCJodHRwczovL2N1Ym9zLmlvL1wiKSkudG9CZShcImh0dHBzOi8vY3Vib3MuaW8vXCIpO1xuICAgIGV4cGVjdChlbmNvZGUoe30sIFwiXCIsIFwidXJsXCIsIFwiIGh0dHBzOmN1Ym9zLmlvLyAgXCIpKS50b0JlKFwiaHR0cHM6Ly9jdWJvcy5pby9cIik7XG4gICAgZXhwZWN0KGVuY29kZSh7fSwgXCJcIiwgXCJ1cmxcIiwgXCIgaHR0cHM6Y3Vib3MuaW8gIFwiKSkudG9CZShcImh0dHBzOi8vY3Vib3MuaW8vXCIpO1xuICAgIGV4cGVjdCgoKSA9PiB7XG4gICAgICBlbmNvZGUoe30sIFwiXCIsIFwidXJsXCIsIFwiZGZiZGZiXCIpO1xuICAgIH0pLnRvVGhyb3coKTtcbiAgICBleHBlY3QoKCkgPT4ge1xuICAgICAgZGVjb2RlKHt9LCBcIlwiLCBcInVybFwiLCBcImhoaC5jb21cIik7XG4gICAgfSkudG9UaHJvdygpO1xuICB9KTtcblxuICB0ZXN0KFwiUHJvY2VzcyBCYXNlNjRcIiwgKCkgPT4ge1xuICAgIGV4cGVjdChlbmNvZGUoe30sIFwiXCIsIFwiYmFzZTY0XCIsIFwiYzNWeVpTND1cIikpLnRvQmUoXCJjM1Z5WlM0PVwiKTtcbiAgICBleHBlY3QoZW5jb2RlKHt9LCBcIlwiLCBcImJhc2U2NFwiLCBcIlwiKSkudG9CZShcIlwiKTtcbiAgICBleHBlY3QoKCkgPT4ge1xuICAgICAgZW5jb2RlKHt9LCBcIlwiLCBcImJhc2U2NFwiLCBcImMzVnlaUzRcIik7XG4gICAgfSkudG9UaHJvdygpO1xuICAgIGV4cGVjdCgoKSA9PiB7XG4gICAgICBlbmNvZGUoe30sIFwiXCIsIFwiYmFzZTY0XCIsIFwiIGMzVnlaUzQ9XCIpO1xuICAgIH0pLnRvVGhyb3coKTtcbiAgICBleHBlY3QoZGVjb2RlKHt9LCBcIlwiLCBcImJhc2U2NFwiLCBcImMzVnlaUzQ9XCIpKS50b0JlKFwiYzNWeVpTND1cIik7XG4gICAgZXhwZWN0KGRlY29kZSh7fSwgXCJcIiwgXCJiYXNlNjRcIiwgXCJcIikpLnRvQmUoXCJcIik7XG4gICAgZXhwZWN0KCgpID0+IHtcbiAgICAgIGRlY29kZSh7fSwgXCJcIiwgXCJiYXNlNjRcIiwgXCJjM1Z5WlM0XCIpO1xuICAgIH0pLnRvVGhyb3coKTtcbiAgICBleHBlY3QoKCkgPT4ge1xuICAgICAgZGVjb2RlKHt9LCBcIlwiLCBcImJhc2U2NFwiLCBcIiBjM1Z5WlM0PVwiKTtcbiAgICB9KS50b1Rocm93KCk7XG4gIH0pO1xuXG4gIHRlc3QoXCJQcm9jZXNzIERhdGVcIiwgKCkgPT4ge1xuICAgIGV4cGVjdChlbmNvZGUoe30sIFwiXCIsIFwiZGF0ZVwiLCBuZXcgRGF0ZShcIjIwMjAtMTEtMTBUMDA6MDA6MDBaXCIpKSkudG9CZShcIjIwMjAtMTEtMTBcIik7XG4gICAgZXhwZWN0KGVuY29kZSh7fSwgXCJcIiwgXCJkYXRlXCIsIG5ldyBEYXRlKFwiMjAyMC0xMS0xMFQxNTozNDo1MFpcIikpKS50b0JlKFwiMjAyMC0xMS0xMFwiKTtcbiAgICBleHBlY3QoZW5jb2RlKHt9LCBcIlwiLCBcImRhdGVcIiwgXCIyMDIwLTExLTEwXCIpKS50b0JlKFwiMjAyMC0xMS0xMFwiKTtcbiAgICBleHBlY3QoKCkgPT4ge1xuICAgICAgZW5jb2RlKHt9LCBcIlwiLCBcImRhdGVcIiwgXCIyMDIwLTExLTEwVDE1OjM0OjUwWlwiKTtcbiAgICB9KS50b1Rocm93KCk7XG4gICAgZXhwZWN0KCgpID0+IHtcbiAgICAgIGVuY29kZSh7fSwgXCJcIiwgXCJkYXRlXCIsIFwiaGVsbG8gd29ybGRcIik7XG4gICAgfSkudG9UaHJvdygpO1xuICAgIGV4cGVjdCgoKSA9PiB7XG4gICAgICBkZWNvZGUoe30sIFwiXCIsIFwiZGF0ZVwiLCBcIjIwMjAtMDItMzBcIik7XG4gICAgfSkudG9UaHJvdygpO1xuICAgIGV4cGVjdCgoKSA9PiB7XG4gICAgICBlbmNvZGUoe30sIFwiXCIsIFwiZGF0ZVwiLCBuZXcgRGF0ZShcIlwiKSk7XG4gICAgfSkudG9UaHJvdygpO1xuICB9KTtcblxuICB0ZXN0KFwiUHJvY2VzcyBEYXRldGltZVwiLCAoKSA9PiB7XG4gICAgZXhwZWN0KGVuY29kZSh7fSwgXCJcIiwgXCJkYXRldGltZVwiLCBuZXcgRGF0ZShcIjIwMjAtMTEtMTBUMTU6MzQ6NTBaXCIpKSkudG9CZShcIjIwMjAtMTEtMTBUMTU6MzQ6NTAuMDAwXCIpO1xuICAgIGV4cGVjdChlbmNvZGUoe30sIFwiXCIsIFwiZGF0ZXRpbWVcIiwgXCIyMDIwLTExLTEwVDE1OjM0OjUwWlwiKSkudG9CZShcIjIwMjAtMTEtMTBUMTU6MzQ6NTAuMDAwXCIpO1xuICAgIGV4cGVjdChlbmNvZGUoe30sIFwiXCIsIFwiZGF0ZXRpbWVcIiwgXCIyMDIwLTExLTEwVDE1OjM0OjUwLjk5OVwiKSkudG9CZShcIjIwMjAtMTEtMTBUMTU6MzQ6NTAuOTk5XCIpO1xuICAgIGV4cGVjdChlbmNvZGUoe30sIFwiXCIsIFwiZGF0ZXRpbWVcIiwgXCIyMDIwLTExLTEwVDE1OjM0OjUwKzAxOjAwXCIpKS50b0JlKFwiMjAyMC0xMS0xMFQxNDozNDo1MC4wMDBcIik7XG4gICAgZXhwZWN0KGVuY29kZSh7fSwgXCJcIiwgXCJkYXRldGltZVwiLCBcIjIwMjAtMTEtMTBUMTU6MzQ6NTAuOTk5KzAxOjAwXCIpKS50b0JlKFwiMjAyMC0xMS0xMFQxNDozNDo1MC45OTlcIik7XG4gICAgZXhwZWN0KCgpID0+IHtcbiAgICAgIGVuY29kZSh7fSwgXCJcIiwgXCJkYXRldGltZVwiLCBcIjIwMjAtMTEtMTBcIik7XG4gICAgfSkudG9UaHJvdygpO1xuICAgIGV4cGVjdCgoKSA9PiB7XG4gICAgICBlbmNvZGUoe30sIFwiXCIsIFwiZGF0ZXRpbWVcIiwgXCJoZWxsbyB3b3JsZFwiKTtcbiAgICB9KS50b1Rocm93KCk7XG4gICAgZXhwZWN0KCgpID0+IHtcbiAgICAgIGVuY29kZSh7fSwgXCJcIiwgXCJkYXRldGltZVwiLCBcIjIwMjAtMTEtMTBUMTU6MzQ6NTAuOTk5JDAxOjAwXCIpO1xuICAgIH0pLnRvVGhyb3coKTtcbiAgICBleHBlY3QoKCkgPT4ge1xuICAgICAgZGVjb2RlKHt9LCBcIlwiLCBcImRhdGV0aW1lXCIsIFwiMjAyMC0xMS0xMFQxNTozNDo1MC45OTkkMDE6MDBcIik7XG4gICAgfSkudG9UaHJvdygpO1xuICAgIGV4cGVjdChkZWNvZGUoe30sIFwiXCIsIFwiZGF0ZXRpbWVcIiwgXCIyMDIwLTExLTEwVDE1OjM0OjUwWlwiKS5nZXRUaW1lKCkpLnRvQmUobmV3IERhdGUoXCIyMDIwLTExLTEwVDE1OjM0OjUwWlwiKS5nZXRUaW1lKCkpO1xuICAgIGV4cGVjdChkZWNvZGUoe30sIFwiXCIsIFwiZGF0ZXRpbWVcIiwgXCIyMDIwLTExLTEwVDE1OjM0OjUwLjAwMFwiKS5nZXRUaW1lKCkpLnRvQmUobmV3IERhdGUoXCIyMDIwLTExLTEwVDE1OjM0OjUwWlwiKS5nZXRUaW1lKCkpO1xuICAgIGV4cGVjdCgoKSA9PiB7XG4gICAgICBlbmNvZGUoe30sIFwiXCIsIFwiZGF0ZXRpbWVcIiwgbmV3IERhdGUoXCJcIikpO1xuICAgIH0pLnRvVGhyb3coKTtcbiAgfSk7XG5cbiAgdGVzdChcIlByb2Nlc3MgQmlnSW50XCIsICgpID0+IHtcbiAgICBleHBlY3QoZW5jb2RlKHt9LCBcIlwiLCBcImJpZ2ludFwiLCBCaWdJbnQoMTApKSkudG9CZShcIjEwXCIpO1xuICAgIGV4cGVjdCgoKSA9PiB7XG4gICAgICBlbmNvZGUoe30sIFwiXCIsIFwiYmlnaW50XCIsIDEwKTtcbiAgICB9KS50b1Rocm93KCk7XG4gICAgZXhwZWN0KCgpID0+IHtcbiAgICAgIGVuY29kZSh7fSwgXCJcIiwgXCJiaWdpbnRcIiwgXCIxMFwiKTtcbiAgICB9KS50b1Rocm93KCk7XG4gICAgZXhwZWN0KGRlY29kZSh7fSwgXCJcIiwgXCJiaWdpbnRcIiwgMTApKS50b0JlKEJpZ0ludCgxMCkpO1xuICAgIGV4cGVjdChkZWNvZGUoe30sIFwiXCIsIFwiYmlnaW50XCIsIFwiMTBcIikpLnRvQmUoQmlnSW50KDEwKSk7XG4gICAgZXhwZWN0KCgpID0+IHtcbiAgICAgIGRlY29kZSh7fSwgXCJcIiwgXCJiaWdpbnRcIiwgXCJoZWxsbyB3b3JsZFwiKTtcbiAgICB9KS50b1Rocm93KCk7XG4gIH0pO1xuXG4gIHRlc3QoXCJQcm9jZXNzIEVudW1cIiwgKCkgPT4ge1xuICAgIGZvciAoY29uc3QgZnVuYyBvZiBbZW5jb2RlLCBkZWNvZGVdKSB7XG4gICAgICBleHBlY3QoZnVuYyh7fSwgXCJcIiwgW1wiYVwiLCBcImJcIl0sIFwiYVwiKSkudG9CZShcImFcIik7XG4gICAgICBleHBlY3QoZnVuYyh7fSwgXCJcIiwgW1wiYVwiLCBcImJcIl0sIFwiYlwiKSkudG9CZShcImJcIik7XG4gICAgICBleHBlY3QoKCkgPT4ge1xuICAgICAgICBmdW5jKHt9LCBcIlwiLCBbXCJhXCIsIFwiYlwiXSwgXCJjXCIpO1xuICAgICAgfSkudG9UaHJvdygpO1xuXG4gICAgICBleHBlY3QoKCkgPT4ge1xuICAgICAgICBmdW5jKHsgWDogeyB2OiBcImludFwiIH0gfSwgXCJcIiwgW1wiYVwiLCBbXCJiXCIsIFwiWFwiXV0sIFwiYlwiKTtcbiAgICAgIH0pLnRvVGhyb3coKTtcbiAgICB9XG5cbiAgICBleHBlY3QoZW5jb2RlKHsgWDogeyB2OiBcImludFwiIH0gfSwgXCJcIiwgW1wiYVwiLCBbXCJiXCIsIFwiWFwiXV0sIHsgdGFnOiBcImFcIiB9KSkudG9CZShcImFcIik7XG4gICAgZXhwZWN0KGVuY29kZSh7IFg6IHsgdjogXCJpbnRcIiB9IH0sIFwiXCIsIFtcImFcIiwgW1wiYlwiLCBcIlhcIl1dLCB7IHRhZzogXCJiXCIsIHY6IDQgfSkpLnRvRXF1YWwoW1wiYlwiLCB7IHY6IDQgfV0pO1xuXG4gICAgZXhwZWN0KGRlY29kZSh7IFg6IHsgdjogXCJpbnRcIiB9IH0sIFwiXCIsIFtcImFcIiwgW1wiYlwiLCBcIlhcIl1dLCBcImFcIikpLnRvRXF1YWwoeyB0YWc6IFwiYVwiIH0pO1xuICAgIGV4cGVjdChkZWNvZGUoeyBYOiB7IHY6IFwiaW50XCIgfSB9LCBcIlwiLCBbXCJhXCIsIFtcImJcIiwgXCJYXCJdXSwgW1wiYlwiLCB7IHY6IDQgfV0pKS50b0VxdWFsKHsgdGFnOiBcImJcIiwgdjogNCB9KTtcbiAgfSk7XG59KTtcbiJdfQ==
@@ -1,18 +1,14 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.BaseApiConfig = void 0;
4
- const parser_1 = require("@sdkgen/parser");
5
- class BaseApiConfig {
1
+ import { jsonToAst } from "@sdkgen/parser";
2
+ export class BaseApiConfig {
6
3
  constructor() {
7
4
  this.fn = {};
8
5
  this.middlewares = [];
9
6
  }
10
7
  get ast() {
11
- var _a;
12
- return ((_a = this._ast) !== null && _a !== void 0 ? _a : (this._ast = (0, parser_1.jsonToAst)(this.astJson)));
8
+ return (this._ast ??= jsonToAst(this.astJson));
13
9
  }
14
10
  use(middleware) {
15
11
  this.middlewares.push(middleware);
16
12
  }
17
13
  }
18
- exports.BaseApiConfig = BaseApiConfig;
14
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpLWNvbmZpZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9hcGktY29uZmlnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQU8zQyxNQUFNLE9BQU8sYUFBYTtJQUExQjtRQVNFLE9BQUUsR0FHRSxFQUFFLENBQUM7UUFFRSxnQkFBVyxHQUFxQyxFQUFFLENBQUM7SUFLOUQsQ0FBQztJQWhCQyxJQUFJLEdBQUc7UUFDTCxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksS0FBSyxTQUFTLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7SUFDakQsQ0FBQztJQVdELEdBQUcsQ0FBQyxVQUFxQztRQUN2QyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUNwQyxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IEFzdEpzb24sIEFzdFJvb3QgfSBmcm9tIFwiQHNka2dlbi9wYXJzZXJcIjtcbmltcG9ydCB7IGpzb25Ub0FzdCB9IGZyb20gXCJAc2RrZ2VuL3BhcnNlclwiO1xuXG5pbXBvcnQgdHlwZSB7IENvbnRleHQsIENvbnRleHRSZXBseSB9IGZyb20gXCIuL2NvbnRleHQuanNcIjtcbmltcG9ydCB0eXBlIHsgRGVlcFJlYWRvbmx5IH0gZnJvbSBcIi4vdXRpbHMuanNcIjtcblxuZXhwb3J0IHR5cGUgTWlkZGxld2FyZTxFeHRyYUNvbnRleHRUPiA9IChjdHg6IENvbnRleHQgJiBFeHRyYUNvbnRleHRULCBuZXh0OiAoKSA9PiBQcm9taXNlPENvbnRleHRSZXBseT4pID0+IFByb21pc2U8Q29udGV4dFJlcGx5PjtcblxuZXhwb3J0IGNsYXNzIEJhc2VBcGlDb25maWc8RXh0cmFDb250ZXh0VCA9IHVua25vd24+IHtcbiAgcHJpdmF0ZSBfYXN0OiBBc3RSb290IHwgdW5kZWZpbmVkO1xuXG4gIGdldCBhc3QoKSB7XG4gICAgcmV0dXJuICh0aGlzLl9hc3QgPz89IGpzb25Ub0FzdCh0aGlzLmFzdEpzb24pKTtcbiAgfVxuXG4gIGFzdEpzb24hOiBEZWVwUmVhZG9ubHk8QXN0SnNvbj47XG5cbiAgZm46IHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICAgIFtuYW1lOiBzdHJpbmddOiAoKGN0eDogQ29udGV4dCAmIEV4dHJhQ29udGV4dFQsIGFyZ3M6IGFueSkgPT4gUHJvbWlzZTxhbnk+KSB8IHVuZGVmaW5lZDtcbiAgfSA9IHt9O1xuXG4gIHJlYWRvbmx5IG1pZGRsZXdhcmVzOiBBcnJheTxNaWRkbGV3YXJlPEV4dHJhQ29udGV4dFQ+PiA9IFtdO1xuXG4gIHVzZShtaWRkbGV3YXJlOiBNaWRkbGV3YXJlPEV4dHJhQ29udGV4dFQ+KTogdm9pZCB7XG4gICAgdGhpcy5taWRkbGV3YXJlcy5wdXNoKG1pZGRsZXdhcmUpO1xuICB9XG59XG4iXX0=
@@ -1,2 +1,2 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGV4dC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb250ZXh0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IEluY29taW5nSHR0cEhlYWRlcnMsIE91dGdvaW5nSHR0cEhlYWRlciB9IGZyb20gXCJodHRwXCI7XG5pbXBvcnQgdHlwZSB7IFJlYWRhYmxlIH0gZnJvbSBcInN0cmVhbVwiO1xuXG5leHBvcnQgaW50ZXJmYWNlIENvbnRleHRSZXF1ZXN0IHtcbiAgYXJnczogUmVjb3JkPHN0cmluZywgdW5rbm93bj47XG4gIGRldmljZUluZm86IHtcbiAgICBpZDogc3RyaW5nO1xuICAgIGxhbmd1YWdlOiBzdHJpbmcgfCBudWxsO1xuICAgIHBsYXRmb3JtOiB1bmtub3duO1xuICAgIHRpbWV6b25lOiBzdHJpbmcgfCBudWxsO1xuICAgIHR5cGU6IHN0cmluZztcbiAgICB2ZXJzaW9uOiBzdHJpbmcgfCBudWxsO1xuICAgIGZpbmdlcnByaW50OiBzdHJpbmcgfCBudWxsO1xuICB9O1xuICBleHRyYTogUmVjb3JkPHN0cmluZywgdW5rbm93bj47XG4gIGhlYWRlcnM6IEluY29taW5nSHR0cEhlYWRlcnM7XG4gIGlkOiBzdHJpbmc7XG4gIGlwOiBzdHJpbmc7XG4gIG5hbWU6IHN0cmluZztcbiAgdmVyc2lvbjogbnVtYmVyO1xuICBmaWxlczogQXJyYXk8e1xuICAgIG5hbWU6IHN0cmluZztcbiAgICBjb250ZW50czogUmVhZGFibGU7XG4gIH0+O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIENvbnRleHRSZXBseSB7XG4gIGVycm9yPzogdW5rbm93bjtcbiAgcmVzdWx0PzogdW5rbm93bjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDb250ZXh0UmVzcG9uc2Uge1xuICBzdGF0dXNDb2RlPzogbnVtYmVyO1xuICBoZWFkZXJzOiBNYXA8c3RyaW5nLCBPdXRnb2luZ0h0dHBIZWFkZXI+O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIENvbnRleHQge1xuICByZXF1ZXN0OiBDb250ZXh0UmVxdWVzdDtcbiAgcmVzcG9uc2U6IENvbnRleHRSZXNwb25zZTtcbn1cbiJdfQ==
@@ -1,43 +1,6 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || function (mod) {
19
- if (mod && mod.__esModule) return mod;
20
- var result = {};
21
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
- __setModuleDefault(result, mod);
23
- return result;
24
- };
25
- var __rest = (this && this.__rest) || function (s, e) {
26
- var t = {};
27
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
28
- t[p] = s[p];
29
- if (s != null && typeof Object.getOwnPropertySymbols === "function")
30
- for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
31
- if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
32
- t[p[i]] = s[p[i]];
33
- }
34
- return t;
35
- };
36
- Object.defineProperty(exports, "__esModule", { value: true });
37
- exports.decode = exports.encode = void 0;
38
- const CNPJ = __importStar(require("@fnando/cnpj"));
39
- const CPF = __importStar(require("@fnando/cpf"));
40
- const decimal_js_1 = require("decimal.js");
1
+ import * as CNPJ from "@fnando/cnpj";
2
+ import * as CPF from "@fnando/cpf";
3
+ import { Decimal } from "decimal.js";
41
4
  const simpleStringTypes = ["string", "email", "html", "xml"];
42
5
  const simpleTypes = ["json", "bool", "url", "int", "uint", "float", "money", "hex", "uuid", "base64", "void", ...simpleStringTypes];
43
6
  class ParseError extends Error {
@@ -133,7 +96,7 @@ function simpleEncodeDecode(path, type, value) {
133
96
  }
134
97
  throw new Error(`Unknown type '${type}' at '${path}'`);
135
98
  }
136
- function encode(typeTable, path, type, value) {
99
+ export function encode(typeTable, path, type, value) {
137
100
  if (typeof type === "string" && !type.endsWith("?") && type !== "void" && (value === null || value === undefined)) {
138
101
  throw new Error(`Invalid type at '${path}', cannot be null`);
139
102
  }
@@ -146,7 +109,7 @@ function encode(typeTable, path, type, value) {
146
109
  }
147
110
  }
148
111
  else if (typeof value === "object" && value && "tag" in value) {
149
- const _a = value, { tag: tagValue } = _a, restValue = __rest(_a, ["tag"]);
112
+ const { tag: tagValue, ...restValue } = value;
150
113
  for (const entry of type) {
151
114
  if (typeof entry === "string") {
152
115
  if (entry === tagValue) {
@@ -232,10 +195,10 @@ function encode(typeTable, path, type, value) {
232
195
  return (typeof value === "string" ? new Date(value) : value).toISOString().replace("Z", "");
233
196
  }
234
197
  else if (type === "decimal") {
235
- if (typeof value !== "number" && (typeof value !== "string" || !/^-?[0-9]+(?:\.[0-9]+)?$/u.test(value)) && !(value instanceof decimal_js_1.Decimal)) {
198
+ if (typeof value !== "number" && (typeof value !== "string" || !/^-?[0-9]+(?:\.[0-9]+)?$/u.test(value)) && !(value instanceof Decimal)) {
236
199
  throw new ParseError(path, type, value);
237
200
  }
238
- return new decimal_js_1.Decimal(value).toString();
201
+ return new Decimal(value).toString();
239
202
  }
240
203
  else {
241
204
  // eslint-disable-next-line @typescript-eslint/no-unnecessary-type-assertion
@@ -246,8 +209,7 @@ function encode(typeTable, path, type, value) {
246
209
  throw new Error(`Unknown type '${type}' at '${path}'`);
247
210
  }
248
211
  }
249
- exports.encode = encode;
250
- function decode(typeTable, path, type, value) {
212
+ export function decode(typeTable, path, type, value) {
251
213
  if (typeof type === "string" && !type.endsWith("?") && type !== "void" && (value === null || value === undefined)) {
252
214
  throw new Error(`Invalid type at '${path}', cannot be null`);
253
215
  }
@@ -270,11 +232,11 @@ function decode(typeTable, path, type, value) {
270
232
  const [tag, valueType] = entry;
271
233
  if (tag === value) {
272
234
  const decodedValues = decode(typeTable, `${path}.${tag}`, valueType, {});
273
- return Object.assign(Object.assign({}, decodedValues), { tag });
235
+ return { ...decodedValues, tag };
274
236
  }
275
237
  else if (Array.isArray(value) && value.length === 2 && tag === value[0]) {
276
238
  const decodedValues = decode(typeTable, `${path}.${tag}`, valueType, value[1]);
277
- return Object.assign(Object.assign({}, decodedValues), { tag });
239
+ return { ...decodedValues, tag };
278
240
  }
279
241
  }
280
242
  }
@@ -357,7 +319,7 @@ function decode(typeTable, path, type, value) {
357
319
  if (typeof value !== "number" && (typeof value !== "string" || !/^-?[0-9]+(?:\.[0-9]+)?$/u.test(value))) {
358
320
  throw new ParseError(path, type, value);
359
321
  }
360
- return new decimal_js_1.Decimal(value);
322
+ return new Decimal(value);
361
323
  }
362
324
  else {
363
325
  // eslint-disable-next-line @typescript-eslint/no-unnecessary-type-assertion
@@ -369,4 +331,4 @@ function decode(typeTable, path, type, value) {
369
331
  throw new Error(`Unknown type '${type}' at '${path}'`);
370
332
  }
371
333
  }
372
- exports.decode = decode;
334
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW5jb2RlLWRlY29kZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9lbmNvZGUtZGVjb2RlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxJQUFJLE1BQU0sY0FBYyxDQUFDO0FBQ3JDLE9BQU8sS0FBSyxHQUFHLE1BQU0sYUFBYSxDQUFDO0FBRW5DLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFNckMsTUFBTSxpQkFBaUIsR0FBRyxDQUFDLFFBQVEsRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLEtBQUssQ0FBQyxDQUFDO0FBQzdELE1BQU0sV0FBVyxHQUFHLENBQUMsTUFBTSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxHQUFHLGlCQUFpQixDQUFDLENBQUM7QUFrR3BJLE1BQU0sVUFBVyxTQUFRLEtBQUs7SUFDNUIsWUFBWSxJQUFZLEVBQUUsSUFBbUMsRUFBRSxLQUFjO1FBQzNFLElBQUksR0FBVyxDQUFDO1FBRWhCLElBQUk7WUFDRixHQUFHLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQztTQUM3QjtRQUFDLE9BQU8sR0FBRyxFQUFFO1lBQ1osR0FBRyxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztTQUNyQjtRQUVELEtBQUssQ0FBQyxvQkFBb0IsSUFBSSxlQUFlLElBQUksU0FBUyxHQUFHLEVBQUUsQ0FBQyxDQUFDO0lBQ25FLENBQUM7Q0FDRjtBQUVELFNBQVMsa0JBQWtCLENBQUMsSUFBWSxFQUFFLElBQVksRUFBRSxLQUFjO0lBQ3BFLElBQUksSUFBSSxLQUFLLE1BQU0sRUFBRTtRQUNuQixJQUFJLEtBQUssS0FBSyxJQUFJLElBQUksS0FBSyxLQUFLLFNBQVMsRUFBRTtZQUN6QyxPQUFPLElB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QVMsRUFBRTtRQUM3QixJQUFJLE9BQU8sS0FBSyxLQUFLLFFBQVEsSUFBSSxDQUFDLE9BQU8sS0FBSyxLQUFLLFFBQVEsSUFBSSxDQUFDLDBCQUEwQixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFO1lBQ3ZHLE1BQU0sSUFBSSxVQUFVLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxLQUFLLENBQUMsQ0FBQztTQUN6QztRQUVELE9BQU8sSUFBSSxPQUFPLENBQUMsS0FBSyxDQUE2QixDQUFDO0tBQ3ZEO1NBQU07UUFDTCw0RUFBNEU7UUFDNUUsTUFBTSxRQUFRLEdBQUksU0FBNkMsQ0FBQyxJQUFjLENBQUMsQ0FBQztRQUVoRixJQUFJLFFBQVEsRUFBRTtZQUNaLCtEQUErRDtZQUMvRCxPQUFPLE1BQU0sQ0FBQyxTQUFTLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxLQUFLLENBQXdDLENBQUM7U0FDeEY7UUFFRCxNQUFNLElBQUksS0FBSyxDQUFDLGlCQUFpQixJQUFJLFNBQVMsSUFBSSxHQUFHLENBQUMsQ0FBQztLQUN4RDtBQUNILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBDTlBKIGZyb20gXCJAZm5hbmRvL2NucGpcIjtcbmltcG9ydCAqIGFzIENQRiBmcm9tIFwiQGZuYW5kby9jcGZcIjtcbmltcG9ydCB0eXBlIHsgQXN0SnNvbiwgVHlwZURlc2NyaXB0aW9uIH0gZnJvbSBcIkBzZGtnZW4vcGFyc2VyXCI7XG5pbXBvcnQgeyBEZWNpbWFsIH0gZnJvbSBcImRlY2ltYWwuanNcIjtcblxuaW1wb3J0IHR5cGUgeyBEZWVwUmVhZG9ubHkgfSBmcm9tIFwiLi91dGlscy5qc1wiO1xuXG50eXBlIFR5cGVUYWJsZSA9IEFzdEpzb25bXCJ0eXBlVGFibGVcIl07XG5cbmNvbnN0IHNpbXBsZVN0cmluZ1R5cGVzID0gW1wic3RyaW5nXCIsIFwiZW1haWxcIiwgXCJodG1sXCIsIFwieG1sXCJdO1xuY29uc3Qgc2ltcGxlVHlwZXMgPSBbXCJqc29uXCIsIFwiYm9vbFwiLCBcInVybFwiLCBcImludFwiLCBcInVpbnRcIiwgXCJmbG9hdFwiLCBcIm1vbmV5XCIsIFwiaGV4XCIsIFwidXVpZFwiLCBcImJhc2U2NFwiLCBcInZvaWRcIiwgLi4uc2ltcGxlU3RyaW5nVHlwZXNdO1xuXG50eXBlIEV4cGFuZFJlY3Vyc2l2ZWx5PFQ+ID0gVCBleHRlbmRzIG9iamVjdCA/IChUIGV4dGVuZHMgaW5mZXIgTyA/IHsgW0sgaW4ga2V5b2YgT106IEV4cGFuZFJlY3Vyc2l2ZWx5PE9bS10+IH0gOiBuZXZlcikgOiBUO1xuXG50eXBlIEpzb25UeXBlID0gbnVtYmVyIHwgc3RyaW5nIHwgYm9vbGVhbiB8IG51bGwgfCBKc29uVHlwZVtdIHwgeyBbS2V5IGluIHN0cmluZ106IEpzb25UeXBlIH07XG5cbnR5cGUgQW55RGVjb2RlZFR5cGUgPSBudW1iZXIgfCBzdHJpbmcgfCBib29sZWFuIHwgbnVsbCB8IGJpZ2ludCB8IERlY2ltYWwgfCBCdWZmZXIgfCBEYXRlIHwgQW55RGVjb2RlZFR5cGVbXSB8IHsgW0tleSBpbiBzdHJpbmddOiBBbnlEZWNvZGVkVHlwZSB9O1xuXG50eXBlIERlY29kZWRUeXBlPFR5cGUsIFRhYmxlIGV4dGVuZHMgb2JqZWN0PiA9IFR5cGVEZXNjcmlwdGlvbiBleHRlbmRzIFR5cGVcbiAgPyBBbnlEZWNvZGVkVHlwZVxuICA6IFR5cGUgZXh0ZW5kcyBcInN0cmluZ1wiIHwgXCJlbWFpbFwiIHwgXCJodG1sXCIgfCBcInhtbFwiIHwgXCJ1cmxcIiB8IFwiaGV4XCIgfCBcInV1aWRcIiB8IFwiYmFzZTY0XCIgfCBcImNwZlwiIHwgXCJjbnBqXCJcbiAgPyBzdHJpbmdcbiAgOiBUeXBlIGV4dGVuZHMgXCJqc29uXCJcbiAgPyBKc29uVHlwZVxuICA6IFR5cGUgZXh0ZW5kcyBcImJvb2xcIlxuICA/IGJvb2xlYW5cbiAgOiBUeXBlIGV4dGVuZHMgXCJ2b2lkXCJcbiAgPyBudWxsXG4gIDogVHlwZSBleHRlbmRzIFwiaW50XCIgfCBcInVpbnRcIiB8IFwiZmxvYXRcIiB8IFwibW9uZXlcIlxuICA/IG51bWJlclxuICA6IFR5cGUgZXh0ZW5kcyBcImJpZ2ludFwiXG4gID8gYmlnaW50XG4gIDogVHlwZSBleHRlbmRzIFwiYnl0ZXNcIlxuICA/IEJ1ZmZlclxuICA6IFR5cGUgZXh0ZW5kcyBcImRlY2ltYWxcIlxuICA/IERlY2ltYWxcbiAgOiBUeXBlIGV4dGVuZHMgXCJkYXRlXCIgfCBcImRhdGV0aW1lXCJcbiAgPyBEYXRlXG4gIDogVHlwZSBleHRlbmRzIGAke2luZmVyIFh9P2BcbiAgPyBEZWNvZGVkVHlwZTxYLCBUYWJsZT4gfCBudWxsXG4gIDogVHlwZSBleHRlbmRzIGAke2luZmVyIFh9W11gXG4gID8gQXJyYXk8RGVjb2RlZFR5cGU8WCwgVGFibGU+PlxuICA6IFR5cGUgZXh0ZW5kcyBBcnJheTxzdHJpbmcgfCBbc3RyaW5nLCBzdHJpbmddPlxuICA/IERlY29kZWRFbnVtVHlwZTxUeXBlLCBUYWJsZT5cbiAgOiBUeXBlIGV4dGVuZHMgUmVhZG9ubHlBcnJheTxzdHJpbmcgfCByZWFkb25seSBbc3RyaW5nLCBzdHJpbmddPlxuICA/IERlY29kZWRFbnVtVHlwZTxUeXBlLCBUYWJsZT5cbiAgOiBUeXBlIGV4dGVuZHMgb2JqZWN0XG4gID8geyAtcmVhZG9ubHkgW0tleSBpbiBrZXlvZiBUeXBlXTogRGVjb2RlZFR5cGU8VHlwZVtLZXldLCBUYWJsZT4gfVxuICA6IG9iamVjdCBleHRlbmRzIFRhYmxlXG4gID8gbmV2ZXJcbiAgOiBUeXBlIGV4dGVuZHMga2V5b2YgVGFibGVcbiAgPyBEZWNvZGVkVHlwZTxUYWJsZVtUeXBlXSwgVGFibGU+XG4gIDogbmV2ZXI7XG5cbnR5cGUgRGVjb2RlZEVudW1UeXBlPFxuICBUeXBlIGV4dGVuZHMgQXJyYXk8c3RyaW5nIHwgW3N0cmluZywgc3RyaW5nXT4gfCBSZWFkb25seUFycmF5PHN0cmluZyB8IHJlYWRvbmx5IFtzdHJpbmcsIHN0cmluZ10+LFxuICBUYWJsZSBleHRlbmRzIG9iamVjdCxcbj4gPSBUeXBlW251bWJlcl0gZXh0ZW5kcyBzdHJpbmcgPyBUeXBlW251bWJlcl0gOiBEZWNvZGVUYWdnZWRFbnVtVmFsdWVUeXBlPFR5cGVbbnVtYmVyXSwgVGFibGU+O1xuXG50eXBlIERlY29kZVRhZ2dlZEVudW1WYWx1ZVR5cGU8XG4gIFZhbHVlVHlwZSBleHRlbmRzIHN0cmluZyB8IFtzdHJpbmcsIHN0cmluZ10gfCByZWFkb25seSBbc3RyaW5nLCBzdHJpbmddLFxuICBUYWJsZSBleHRlbmRzIG9iamVjdCxcbj4gPSBWYWx1ZVR5cGUgZXh0ZW5kcyBzdHJpbmdcbiAgPyB7IHRhZzogVmFsdWVUeXBlIH1cbiAgOiBWYWx1ZVR5cGUgZXh0ZW5kcyBbaW5mZXIgVGFnLCBpbmZlciBTdHJ1Y3RdXG4gID8gRXhwYW5kUmVjdXJzaXZlbHk8eyB0YWc6IFRhZyB9ICYgRGVjb2RlZFR5cGU8U3RydWN0LCBUYWJsZT4+XG4gIDogVmFsdWVUeXBlIGV4dGVuZHMgcmVhZG9ubHkgW2luZmVyIFRhZywgaW5mZXIgU3RydWN0XVxuICA/IEV4cGFuZFJlY3Vyc2l2ZWx5PHsgdGFnOiBUYWcgfSAmIERlY29kZWRUeXBlPFN0cnVjdCwgVGFibGU+PlxuICA6IG5ldmVyO1xuXG50eXBlIEVuY29kZWRUeXBlPFR5cGUsIFRhYmxlIGV4dGVuZHMgb2JqZWN0PiA9IFR5cGVEZXNjcmlwdGlvbiBleHRlbmRzIFR5cGVcbiAgPyBKc29uVHlwZVxuICA6IFR5cGUgZXh0ZW5kcyBcInN0cmluZ1wiIHwgXCJlbWFpbFwiIHwgXCJodG1sXCIgfCBcInhtbFwiIHwgXCJ1cmxcIiB8IFwiaGV4XCIgfCBcInV1aWRcIiB8IFwiYmFzZTY0XCIgfCBcImNwZlwiIHwgXCJjbnBqXCJcbiAgPyBzdHJpbmdcbiAgOiBUeXBlIGV4dGVuZHMgXCJqc29uXCJcbiAgPyBKc29uVHlwZVxuICA6IFR5cGUgZXh0ZW5kcyBcImJvb2xcIlxuICA/IGJvb2xlYW5cbiAgOiBUeXBlIGV4dGVuZHMgXCJ2b2lkXCJcbiAgPyBudWxsXG4gIDogVHlwZSBleHRlbmRzIFwiaW50XCIgfCBcInVpbnRcIiB8IFwiZmxvYXRcIiB8IFwibW9uZXlcIlxuICA/IG51bWJlclxuICA6IFR5cGUgZXh0ZW5kcyBcImJpZ2ludFwiIHwgXCJieXRlc1wiIHwgXCJkYXRlXCIgfCBcImRhdGV0aW1lXCIgfCBcImRlY2ltYWxcIlxuICA/IHN0cmluZ1xuICA6IFR5cGUgZXh0ZW5kcyBgJHtpbmZlciBYfT9gXG4gID8gRW5jb2RlZFR5cGU8WCwgVGFibGU+IHwgbnVsbFxuICA6IFR5cGUgZXh0ZW5kcyBgJHtpbmZlciBYfVtdYFxuICA/IEFycmF5PEVuY29kZWRUeXBlPFgsIFRhYmxlPj5cbiAgOiBUeXBlIGV4dGVuZHMgQXJyYXk8c3RyaW5nIHwgW3N0cmluZywgc3RyaW5nXT5cbiAgPyBFbnVtRW5jb2RlZFZhbHVlVHlwZTxUeXBlW251bWJlcl0sIFRhYmxlPlxuICA6IFR5cGUgZXh0ZW5kcyBSZWFkb25seUFycmF5PHN0cmluZyB8IHJlYWRvbmx5IFtzdHJpbmcsIHN0cmluZ10+XG4gID8gRW51bUVuY29kZWRWYWx1ZVR5cGU8VHlwZVtudW1iZXJdLCBUYWJsZT5cbiAgOiBUeXBlIGV4dGVuZHMgb2JqZWN0XG4gID8geyAtcmVhZG9ubHkgW0tleSBpbiBrZXlvZiBUeXBlXTogRW5jb2RlZFR5cGU8VHlwZVtLZXldLCBUYWJsZT4gfVxuICA6IG9iamVjdCBleHRlbmRzIFRhYmxlXG4gID8gbmV2ZXJcbiAgOiBUeXBlIGV4dGVuZHMga2V5b2YgVGFibGVcbiAgPyBFbmNvZGVkVHlwZTxUYWJsZVtUeXBlXSwgVGFibGU+XG4gIDogbmV2ZXI7XG5cbnR5cGUgRW51bUVuY29kZWRWYWx1ZVR5cGU8VmFsdWVUeXBlIGV4dGVuZHMgc3RyaW5nIHwgW3N0cmluZywgc3RyaW5nXSB8IHJlYWRvbmx5IFtzdHJpbmcsIHN0cmluZ10sIFRhYmxlIGV4dGVuZHMgb2JqZWN0PiA9IFZhbHVlVHlwZSBleHRlbmRzIHN0cmluZ1xuICA/IFZhbHVlVHlwZVxuICA6IFZhbHVlVHlwZSBleHRlbmRzIFtpbmZlciBUYWcsIGluZmVyIFN0cnVjdF1cbiAgPyBbVGFnLCBFbmNvZGVkVHlwZTxTdHJ1Y3QsIFRhYmxlPl1cbiAgOiBWYWx1ZVR5cGUgZXh0ZW5kcyByZWFkb25seSBbaW5mZXIgVGFnLCBpbmZlciBTdHJ1Y3RdXG4gID8gW1RhZywgRW5jb2RlZFR5cGU8U3RydWN0LCBUYWJsZT5dXG4gIDogbmV2ZXI7XG5cbmNsYXNzIFBhcnNlRXJyb3IgZXh0ZW5kcyBFcnJvciB7XG4gIGNvbnN0cnVjdG9yKHBhdGg6IHN0cmluZywgdHlwZTogRGVlcFJlYWRvbmx5PFR5cGVEZXNjcmlwdGlvbj4sIHZhbHVlOiB1bmtub3duKSB7XG4gICAgbGV0IHN0cjogc3RyaW5nO1xuXG4gICAgdHJ5IHtcbiAgICAgIHN0ciA9IEpTT04uc3RyaW5naWZ5KHZhbHVlKTtcbiAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgIHN0ciA9IFN0cmluZyh2YWx1ZSk7XG4gICAgfVxuXG4gICAgc3VwZXIoYEludmFsaWQgdHlwZSBhdCAnJHtwYXRofScsIGV4cGVjdGVkICR7dHlwZX0sIGdvdCAke3N0cn1gKTtcbiAgfVxufVxuXG5mdW5jdGlvbiBzaW1wbGVFbmNvZGVEZWNvZGUocGF0aDogc3RyaW5nLCB0eXBlOiBzdHJpbmcsIHZhbHVlOiB1bmtub3duKSB7XG4gIGlmICh0eXBlID09PSBcImpzb25cIikge1xuICAgIGlmICh2YWx1ZSA9PT0gbnVsbCB8fCB2YWx1ZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICByZXR1cm4gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeSh2YWx1ZSkpIGFzIHVua25vd247XG4gIH0gZWxzZSBpZiAodHlwZSA9PT0gXCJib29sXCIpIHtcbiAgICBpZiAodHlwZW9mIHZhbHVlICE9PSBcImJvb2xlYW5cIikge1xuICAgICAgdGhyb3cgbmV3IFBhcnNlRXJyb3IocGF0aCwgdHlwZSwgdmFsdWUpO1xuICAgIH1cblxuICAgIHJldHVybiB2YWx1ZTtcbiAgfSBlbHNlIGlmIChzaW1wbGVTdHJpbmdUeXBlcy5pbmNsdWRlcyh0eXBlKSkge1xuICAgIGlmICh0eXBlb2YgdmFsdWUgIT09IFwic3RyaW5nXCIpIHtcbiAgICAgIHRocm93IG5ldyBQYXJzZUVycm9yKHBhdGgsIHR5cGUsIHZhbHVlKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdmFsdWU7XG4gIH0gZWxzZSBpZiAodHlwZSA9PT0gXCJoZXhcIikge1xuICAgIGlmICh0eXBlb2YgdmFsdWUgIT09IFwic3RyaW5nXCIgfHwgIS9eKD86W0EtRmEtZjAtOV17Mn0pKiQvdS50ZXN0KHZhbHVlKSkge1xuICAgICAgdGhyb3cgbmV3IFBhcnNlRXJyb3IocGF0aCwgdHlwZSwgdmFsdWUpO1xuICAgIH1cblxuICAgIHJldHVybiB2YWx1ZS50b0xvd2VyQ2FzZSgpO1xuICB9IGVsc2UgaWYgKHR5cGUgPT09IFwidXVpZFwiKSB7XG4gICAgaWYgKHR5cGVvZiB2YWx1ZSAhPT0gXCJzdHJpbmdcIiB8fCAhL15bQS1GYS1mMC05XXs4fS1bQS1GYS1mMC05XXs0fS1bQS1GYS1mMC05XXs0fS1bQS1GYS1mMC05XXs0fS1bQS1GYS1mMC05XXsxMn0kL3UudGVzdCh2YWx1ZSkpIHtcbiAgICAgIHRocm93IG5ldyBQYXJzZUVycm9yKHBhdGgsIHR5cGUsIHZhbHVlKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdmFsdWUudG9Mb3dlckNhc2UoKTtcbiAgfSBlbHNlIGlmICh0eXBlID09PSBcImJhc2U2NFwiKSB7XG4gICAgaWYgKHR5cGVvZiB2YWx1ZSAhPT0gXCJzdHJpbmdcIiB8fCBCdWZmZXIuZnJvbSh2YWx1ZSwgXCJiYXNlNjRcIikudG9TdHJpbmcoXCJiYXNlNjRcIikgIT09IHZhbHVlKSB7XG4gICAgICB0aHJvdyBuZXcgUGFyc2VFcnJvcihwYXRoLCB0eXBlLCB2YWx1ZSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHZhbHVlO1xuICB9IGVsc2UgaWYgKHR5cGUgPT09IFwiaW50XCIpIHtcbiAgICBpZiAodHlwZW9mIHZhbHVlICE9PSBcIm51bWJlclwiIHx8ICh2YWx1ZSB8IDApICE9PSB2YWx1ZSkge1xuICAgICAgdGhyb3cgbmV3IFBhcnNlRXJyb3IocGF0aCwgdHlwZSwgdmFsdWUpO1xuICAgIH1cblxuICAgIHJldHVybiB2YWx1ZTtcbiAgfSBlbHNlIGlmICh0eXBlID09PSBcInVpbnRcIikge1xuICAgIGlmICh0eXBlb2YgdmFsdWUgIT09IFwibnVtYmVyXCIgfHwgKHZhbHVlIHwgMCkgIT09IHZhbHVlIHx8IHZhbHVlIDwgMCkge1xuICAgICAgdGhyb3cgbmV3IFBhcnNlRXJyb3IocGF0aCwgdHlwZSwgdmFsdWUpO1xuICAgIH1cblxuICAgIHJldHVybiB2YWx1ZTtcbiAgfSBlbHNlIGlmICh0eXBlID09PSBcImZsb2F0XCIpIHtcbiAgICBpZiAodHlwZW9mIHZhbHVlICE9PSBcIm51bWJlclwiKSB7XG4gICAgICB0aHJvdyBuZXcgUGFyc2VFcnJvcihwYXRoLCB0eXBlLCB2YWx1ZSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHZhbHVlO1xuICB9IGVsc2UgaWYgKHR5cGUgPT09IFwibW9uZXlcIikge1xuICAgIGlmICh0eXBlb2YgdmFsdWUgIT09IFwibnVtYmVyXCIgfHwgIU51bWJlci5pc0ludGVnZXIodmFsdWUpKSB7XG4gICAgICB0aHJvdyBuZXcgUGFyc2VFcnJvcihwYXRoLCB0eXBlLCB2YWx1ZSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHZhbHVlO1xuICB9IGVsc2UgaWYgKHR5cGUgPT09IFwidXJsXCIpIHtcbiAgICBsZXQgdXJsOiBVUkwgfCB1bmRlZmluZWQ7XG5cbiAgICBpZiAodHlwZW9mIHZhbHVlID09PSBcInN0cmluZ1wiKSB7XG4gICAgICB0cnkge1xuICAgICAgICB1cmwgPSBuZXcgVVJMKHZhbHVlKTtcbiAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgLy8gaWdub3JlXG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKCF1cmwpIHtcbiAgICAgIHRocm93IG5ldyBQYXJzZUVycm9yKHBhdGgsIHR5cGUsIHZhbHVlKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdXJsLnRvU3RyaW5nKCk7XG4gIH0gZWxzZSBpZiAodHlwZSA9PT0gXCJ2b2lkXCIpIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIHRocm93IG5ldyBFcnJvcihgVW5rbm93biB0eXBlICcke3R5cGV9JyBhdCAnJHtwYXRofSdgKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGVuY29kZTxUYWJsZSBleHRlbmRzIERlZXBSZWFkb25seTxUeXBlVGFibGU+LCBUeXBlIGV4dGVuZHMgRGVlcFJlYWRvbmx5PFR5cGVEZXNjcmlwdGlvbj4+KFxuICB0eXBlVGFibGU6IFRhYmxlLFxuICBwYXRoOiBzdHJpbmcsXG4gIHR5cGU6IFR5cGUsXG4gIHZhbHVlOiB1bmtub3duLFxuKTogRW5jb2RlZFR5cGU8VHlwZSwgVGFibGU+IHtcbiAgaWYgKHR5cGVvZiB0eXBlID09PSBcInN0cmluZ1wiICYmICF0eXBlLmVuZHNXaXRoKFwiP1wiKSAmJiB0eXBlICE9PSBcInZvaWRcIiAmJiAodmFsdWUgPT09IG51bGwgfHwgdmFsdWUgPT09IHVuZGVmaW5lZCkpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgdHlwZSBhdCAnJHtwYXRofScsIGNhbm5vdCBiZSBudWxsYCk7XG4gIH0gZWxzZSBpZiAoQXJyYXkuaXNBcnJheSh0eXBlKSkge1xuICAgIGlmICh0eXBlLmV2ZXJ5KHRhZyA9PiB0eXBlb2YgdGFnID09PSBcInN0cmluZ1wiKSkge1xuICAgICAgZm9yIChjb25zdCB0YWcgb2YgdHlwZSkge1xuICAgICAgICBpZiAodGFnID09PSB2YWx1ZSkge1xuICAgICAgICAgIHJldHVybiB0YWcgYXMgRW5jb2RlZFR5cGU8VHlwZSwgVGFibGU+O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSBlbHNlIGlmICh0eXBlb2YgdmFsdWUgPT09IFwib2JqZWN0XCIgJiYgdmFsdWUgJiYgXCJ0YWdcIiBpbiB2YWx1ZSkge1xuICAgICAgY29uc3QgeyB0YWc6IHRhZ1ZhbHVlLCAuLi5yZXN0VmFsdWUgfSA9IHZhbHVlIGFzIG9iamVjdCAmIHsgdGFnOiB1bmtub3duIH07XG5cbiAgICAgIGZvciAoY29uc3QgZW50cnkgb2YgdHlwZSkge1xuICAgICAgICBpZiAodHlwZW9mIGVudHJ5ID09PSBcInN0cmluZ1wiKSB7XG4gICAgICAgICAgaWYgKGVudHJ5ID09PSB0YWdWYWx1ZSkge1xuICAgICAgICAgICAgcmV0dXJuIGVudHJ5IGFzIEVuY29kZWRUeXBlPFR5cGUsIFRhYmxlPjtcbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgY29uc3QgW3RhZywgdmFsdWVUeXBlXSA9IGVudHJ5IGFzIFtzdHJpbmcsIHN0cmluZ107XG5cbiAgICAgICAgICBpZiAodGFnID09PSB0YWdWYWx1ZSkge1xuICAgICAgICAgICAgY29uc3QgZW5jb2RlZFZhbHVlcyA9IGVuY29kZSh0eXBlVGFibGUsIGAke3BhdGh9LiR7dGFnfWAsIHZhbHVlVHlwZSwgcmVzdFZhbHVlKSBhcyBvYmplY3Q7XG5cbiAgICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBtYXgtZGVwdGhcbiAgICAgICAgICAgIGlmIChPYmplY3QudmFsdWVzKGVuY29kZWRWYWx1ZXMpLmV2ZXJ5KHYgPT4gdiA9PT0gbnVsbCkpIHtcbiAgICAgICAgICAgICAgcmV0dXJuIHRhZyBhcyBFbmNvZGVkVHlwZTxUeXBlLCBUYWJsZT47XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiBbdGFnLCBlbmNvZGVkVmFsdWVzXSBhcyBFbmNvZGVkVHlwZTxUeXBlLCBUYWJsZT47XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgdGhyb3cgbmV3IFBhcnNlRXJyb3IocGF0aCwgdHlwZSwgdmFsdWUpO1xuICB9IGVsc2UgaWYgKHR5cGVvZiB0eXBlID09PSBcIm9iamVjdFwiKSB7XG4gICAgaWYgKHR5cGVvZiB2YWx1ZSAhPT0gXCJvYmplY3RcIikge1xuICAgICAgdGhyb3cgbmV3IFBhcnNlRXJyb3IocGF0aCwgdHlwZSwgdmFsdWUpO1xuICAgIH1cblxuICAgIGNvbnN0IG9iajogUmVjb3JkPHN0cmluZywgdW5rbm93bj4gPSB7fTtcblxuICAgIGZvciAoY29uc3Qga2V5IG9mIE9iamVjdC5rZXlzKHR5cGUpKSB7XG4gICAgICBvYmpba2V5XSA9IGVuY29kZSh0eXBlVGFibGUsIGAke3BhdGh9LiR7a2V5fWAsICh0eXBlIGFzIFJlY29yZDxzdHJpbmcsIFR5cGVEZXNjcmlwdGlvbj4pW2tleV0sICh2YWx1ZSBhcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPilba2V5XSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIG9iaiBhcyBFbmNvZGVkVHlwZTxUeXBlLCBUYWJsZT47XG4gIH0gZWxzZSBpZiAodHlwZW9mIHR5cGUgPT09IFwic3RyaW5nXCIgJiYgdHlwZS5lbmRzV2l0aChcIj9cIikpIHtcbiAgICBpZiAodmFsdWUgPT09IG51bGwgfHwgdmFsdWUgPT09IHVuZGVmaW5lZCkge1xuICAgICAgcmV0dXJuIG51bGwgYXMgRW5jb2RlZFR5cGU8VHlwZSwgVGFibGU+O1xuICAgIH1cblxuICAgIHJldHVybiBlbmNvZGUodHlwZVRhYmxlLCBwYXRoLCB0eXBlLnNsaWNlKDAsIHR5cGUubGVuZ3RoIC0gMSksIHZhbHVlKSBhcyBFbmNvZGVkVHlwZTxUeXBlLCBUYWJsZT47XG4gIH0gZWxzZSBpZiAodHlwZW9mIHR5cGUgPT09IFwic3RyaW5nXCIgJiYgdHlwZS5lbmRzV2l0aChcIltdXCIpKSB7XG4gICAgaWYgKCFBcnJheS5pc0FycmF5KHZhbHVlKSkge1xuICAgICAgdGhyb3cgbmV3IFBhcnNlRXJyb3IocGF0aCwgdHlwZSwgdmFsdWUpO1xuICAgIH1cblxuICAgIHJldHVybiB2YWx1ZS5tYXAoKGVudHJ5LCBpbmRleCkgPT4gZW5jb2RlKHR5cGVUYWJsZSwgYCR7cGF0aH1bJHtpbmRleH1dYCwgdHlwZS5zbGljZSgwLCB0eXBlLmxlbmd0aCAtIDIpLCBlbnRyeSkpIGFzIEVuY29kZWRUeXBlPFR5cGUsIFRhYmxlPjtcbiAgfSBlbHNlIGlmICh0eXBlb2YgdHlwZSA9PT0gXCJzdHJpbmdcIiAmJiBzaW1wbGVUeXBlcy5pbmNsdWRlcyh0eXBlKSkge1xuICAgIHJldHVybiBzaW1wbGVFbmNvZGVEZWNvZGUocGF0aCwgdHlwZSwgdmFsdWUpIGFzIEVuY29kZWRUeXBlPFR5cGUsIFRhYmxlPjtcbiAgfSBlbHNlIGlmICh0eXBlID09PSBcImJ5dGVzXCIpIHtcbiAgICBpZiAoISh2YWx1ZSBpbnN0YW5jZW9mIEJ1ZmZlcikpIHtcbiAgICAgIHRocm93IG5ldyBQYXJzZUVycm9yKHBhdGgsIHR5cGUsIHZhbHVlKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdmFsdWUudG9TdHJpbmcoXCJiYXNlNjRcIikgYXMgRW5jb2RlZFR5cGU8VHlwZSwgVGFibGU+O1xuICB9IGVsc2UgaWYgKHR5cGUgPT09IFwiYmlnaW50XCIpIHtcbiAgICBpZiAoISh0eXBlb2YgdmFsdWUgPT09IFwiYmlnaW50XCIpKSB7XG4gICAgICB0aHJvdyBuZXcgUGFyc2VFcnJvcihwYXRoLCB0eXBlLCB2YWx1ZSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHZhbHVlLnRvU3RyaW5nKCkgYXMgRW5jb2RlZFR5cGU8VHlwZSwgVGFibGU+O1xuICB9IGVsc2UgaWYgKHR5cGUgPT09IFwiY3BmXCIpIHtcbiAgICBpZiAodHlwZW9mIHZhbHVlICE9PSBcInN0cmluZ1wiIHx8ICFDUEYuaXNWYWxpZCh2YWx1ZSkpIHtcbiAgICAgIHRocm93IG5ldyBQYXJzZUVycm9yKHBhdGgsIHR5cGUsIHZhbHVlKTtcbiAgICB9XG5cbiAgICByZXR1cm4gQ1BGLnN0cmlwKHZhbHVlKSBhcyBFbmNvZGVkVHlwZTxUeXBlLCBUYWJsZT47XG4gIH0gZWxzZSBpZiAodHlwZSA9PT0gXCJjbnBqXCIpIHtcbiAgICBpZiAodHlwZW9mIHZhbHVlICE9PSBcInN0cmluZ1wiIHx8ICFDTlBKLmlzVmFsaWQodmFsdWUpKSB7XG4gICAgICB0aHJvdyBuZXcgUGFyc2VFcnJvcihwYXRoLCB0eXBlLCB2YWx1ZSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIENOUEouc3RyaXAodmFsdWUpIGFzIEVuY29kZWRUeXBlPFR5cGUsIFRhYmxlPjtcbiAgfSBlbHNlIGlmICh0eXBlID09PSBcImRhdGVcIikge1xuICAgIGlmICghKHZhbHVlIGluc3RhbmNlb2YgRGF0ZSAmJiAhaXNOYU4odmFsdWUuZ2V0VGltZSgpKSkgJiYgISh0eXBlb2YgdmFsdWUgPT09IFwic3RyaW5nXCIgJiYgL15bMC05XXs0fS1bMDFdWzAtOV0tWzAxMjNdWzAtOV0kL3UudGVzdCh2YWx1ZSkpKSB7XG4gICAgICB0aHJvdyBuZXcgUGFyc2VFcnJvcihwYXRoLCB0eXBlLCB2YWx1ZSk7XG4gICAgfVxuXG4gICAgcmV0dXJuICh0eXBlb2YgdmFsdWUgPT09IFwic3RyaW5nXCIgPyBuZXcgRGF0ZSh2YWx1ZSkudG9JU09TdHJpbmcoKS5zcGxpdChcIlRcIilbMF0gOiB2YWx1ZS50b0lTT1N0cmluZygpLnNwbGl0KFwiVFwiKVswXSkgYXMgRW5jb2RlZFR5cGU8VHlwZSwgVGFibGU+O1xuICB9IGVsc2UgaWYgKHR5cGUgPT09IFwiZGF0ZXRpbWVcIikge1xuICAgIGlmIChcbiAgICAgICEodmFsdWUgaW5zdGFuY2VvZiBEYXRlICYmICFpc05hTih2YWx1ZS5nZXRUaW1lKCkpKSAmJlxuICAgICAgIShcbiAgICAgICAgdHlwZW9mIHZhbHVlID09PSBcInN0cmluZ1wiICYmXG4gICAgICAgIC9eWzAtOV17NH0tWzAxXVswLTldLVswMTIzXVswLTldVFswMTJdWzAtOV06WzAxMjM0NTZdWzAtOV06WzAxMjM0NTZdWzAtOV0oPzpcXC5bMC05XXsxLDZ9KT8oPzpafFsrLV1bMDEyXVswLTldOlswMTIzNDU2XVswLTldKT8kL3UudGVzdCh2YWx1ZSlcbiAgICAgIClcbiAgICApIHtcbiAgICAgIHRocm93IG5ldyBQYXJzZUVycm9yKHBhdGgsIHR5cGUsIHZhbHVlKTtcbiAgICB9XG5cbiAgICByZXR1cm4gKHR5cGVvZiB2YWx1ZSA9PT0gXCJzdHJpbmdcIiA/IG5ldyBEYXRlKHZhbHVlKSA6IHZhbHVlKS50b0lTT1N0cmluZygpLnJlcGxhY2UoXCJaXCIsIFwiXCIpIGFzIEVuY29kZWRUeXBlPFR5cGUsIFRhYmxlPjtcbiAgfSBlbHNlIGlmICh0eXBlID09PSBcImRlY2ltYWxcIikge1xuICAgIGlmICh0eXBlb2YgdmFsdWUgIT09IFwibnVtYmVyXCIgJiYgKHR5cGVvZiB2YWx1ZSAhPT0gXCJzdHJpbmdcIiB8fCAhL14tP1swLTldKyg/OlxcLlswLTldKyk/JC91LnRlc3QodmFsdWUpKSAmJiAhKHZhbHVlIGluc3RhbmNlb2YgRGVjaW1hbCkpIHtcbiAgICAgIHRocm93IG5ldyBQYXJzZUVycm9yKHBhdGgsIHR5cGUsIHZhbHVlKTtcbiAgICB9XG5cbiAgICByZXR1cm4gbmV3IERlY2ltYWwodmFsdWUpLnRvU3RyaW5nKCkgYXMgRW5jb2RlZFR5cGU8VHlwZSwgVGFibGU+O1xuICB9IGVsc2Uge1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW5uZWNlc3NhcnktdHlwZS1hc3NlcnRpb25cbiAgICBjb25zdCByZXNvbHZlZCA9ICh0eXBlVGFibGUgYXMgUmVjb3JkPHN0cmluZywgVHlwZURlc2NyaXB0aW9uPilbdHlwZSBhcyBzdHJpbmddO1xuXG4gICAgaWYgKHJlc29sdmVkKSB7XG4gICAgICByZXR1cm4gZW5jb2RlKHR5cGVUYWJsZSwgcGF0aCwgcmVzb2x2ZWQsIHZhbHVlKSBhcyBFbmNvZGVkVHlwZTxUeXBlLCBUYWJsZT47XG4gICAgfVxuXG4gICAgdGhyb3cgbmV3IEVycm9yKGBVbmtub3duIHR5cGUgJyR7dHlwZX0nIGF0ICcke3BhdGh9J2ApO1xuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBkZWNvZGU8VGFibGUgZXh0ZW5kcyBEZWVwUmVhZG9ubHk8VHlwZVRhYmxlPiwgVHlwZSBleHRlbmRzIERlZXBSZWFkb25seTxUeXBlRGVzY3JpcHRpb24+PihcbiAgdHlwZVRhYmxlOiBUYWJsZSxcbiAgcGF0aDogc3RyaW5nLFxuICB0eXBlOiBUeXBlLFxuICB2YWx1ZTogdW5rbm93bixcbik6IERlY29kZWRUeXBlPFR5cGUsIFRhYmxlPiB7XG4gIGlmICh0eXBlb2YgdHlwZSA9PT0gXCJzdHJpbmdcIiAmJiAhdHlwZS5lbmRzV2l0aChcIj9cIikgJiYgdHlwZSAhPT0gXCJ2b2lkXCIgJiYgKHZhbHVlID09PSBudWxsIHx8IHZhbHVlID09PSB1bmRlZmluZWQpKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIHR5cGUgYXQgJyR7cGF0aH0nLCBjYW5ub3QgYmUgbnVsbGApO1xuICB9IGVsc2UgaWYgKEFycmF5LmlzQXJyYXkodHlwZSkpIHtcbiAgICBpZiAodHlwZS5ldmVyeSh0YWcgPT4gdHlwZW9mIHRhZyA9PT0gXCJzdHJpbmdcIikpIHtcbiAgICAgIGZvciAoY29uc3QgdGFnIG9mIHR5cGUpIHtcbiAgICAgICAgaWYgKHRhZyA9PT0gdmFsdWUpIHtcbiAgICAgICAgICByZXR1cm4gdGFnIGFzIERlY29kZWRUeXBlPFR5cGUsIFRhYmxlPjtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBmb3IgKGNvbnN0IGVudHJ5IG9mIHR5cGUpIHtcbiAgICAgICAgaWYgKHR5cGVvZiBlbnRyeSA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgICAgIGlmIChlbnRyeSA9PT0gdmFsdWUpIHtcbiAgICAgICAgICAgIHJldHVybiB7IHRhZzogZW50cnkgfSBhcyBEZWNvZGVkVHlwZTxUeXBlLCBUYWJsZT47XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGNvbnN0IFt0YWcsIHZhbHVlVHlwZV0gPSBlbnRyeSBhcyBbc3RyaW5nLCBzdHJpbmddO1xuXG4gICAgICAgICAgaWYgKHRhZyA9PT0gdmFsdWUpIHtcbiAgICAgICAgICAgIGNvbnN0IGRlY29kZWRWYWx1ZXMgPSBkZWNvZGUodHlwZVRhYmxlLCBgJHtwYXRofS4ke3RhZ31gLCB2YWx1ZVR5cGUsIHt9KSBhcyBvYmplY3Q7XG5cbiAgICAgICAgICAgIHJldHVybiB7IC4uLmRlY29kZWRWYWx1ZXMsIHRhZyB9IGFzIERlY29kZWRUeXBlPFR5cGUsIFRhYmxlPjtcbiAgICAgICAgICB9IGVsc2UgaWYgKEFycmF5LmlzQXJyYXkodmFsdWUpICYmIHZhbHVlLmxlbmd0aCA9PT0gMiAmJiB0YWcgPT09IHZhbHVlWzBdKSB7XG4gICAgICAgICAgICBjb25zdCBkZWNvZGVkVmFsdWVzID0gZGVjb2RlKHR5cGVUYWJsZSwgYCR7cGF0aH0uJHt0YWd9YCwgdmFsdWVUeXBlLCB2YWx1ZVsxXSkgYXMgb2JqZWN0O1xuXG4gICAgICAgICAgICByZXR1cm4geyAuLi5kZWNvZGVkVmFsdWVzLCB0YWcgfSBhcyBEZWNvZGVkVHlwZTxUeXBlLCBUYWJsZT47XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgdGhyb3cgbmV3IFBhcnNlRXJyb3IocGF0aCwgdHlwZSwgdmFsdWUpO1xuICB9IGVsc2UgaWYgKHR5cGVvZiB0eXBlID09PSBcIm9iamVjdFwiKSB7XG4gICAgaWYgKHR5cGVvZiB2YWx1ZSAhPT0gXCJvYmplY3RcIikge1xuICAgICAgdGhyb3cgbmV3IFBhcnNlRXJyb3IocGF0aCwgdHlwZSwgdmFsdWUpO1xuICAgIH1cblxuICAgIGNvbnN0IG9iajogUmVjb3JkPHN0cmluZywgdW5rbm93bj4gPSB7fTtcblxuICAgIGZvciAoY29uc3Qga2V5IG9mIE9iamVjdC5rZXlzKHR5cGUpKSB7XG4gICAgICBvYmpba2V5XSA9IGRlY29kZSh0eXBlVGFibGUsIGAke3BhdGh9LiR7a2V5fWAsICh0eXBlIGFzIFJlY29yZDxzdHJpbmcsIFR5cGVEZXNjcmlwdGlvbj4pW2tleV0sICh2YWx1ZSBhcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPilba2V5XSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIG9iaiBhcyBEZWNvZGVkVHlwZTxUeXBlLCBUYWJsZT47XG4gIH0gZWxzZSBpZiAodHlwZW9mIHR5cGUgPT09IFwic3RyaW5nXCIgJiYgdHlwZS5lbmRzV2l0aChcIj9cIikpIHtcbiAgICBpZiAodmFsdWUgPT09IG51bGwgfHwgdmFsdWUgPT09IHVuZGVmaW5lZCkge1xuICAgICAgcmV0dXJuIG51bGwgYXMgRGVjb2RlZFR5cGU8VHlwZSwgVGFibGU+O1xuICAgIH1cblxuICAgIHJldHVybiBkZWNvZGUodHlwZVRhYmxlLCBwYXRoLCB0eXBlLnNsaWNlKDAsIHR5cGUubGVuZ3RoIC0gMSksIHZhbHVlKSBhcyB1bmtub3duIGFzIERlY29kZWRUeXBlPFR5cGUsIFRhYmxlPjtcbiAgfSBlbHNlIGlmICh0eXBlb2YgdHlwZSA9PT0gXCJzdHJpbmdcIiAmJiB0eXBlLmVuZHNXaXRoKFwiW11cIikpIHtcbiAgICBpZiAoIUFycmF5LmlzQXJyYXkodmFsdWUpKSB7XG4gICAgICB0aHJvdyBuZXcgUGFyc2VFcnJvcihwYXRoLCB0eXBlLCB2YWx1ZSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHZhbHVlLm1hcCgoZW50cnksIGluZGV4KSA9PiBkZWNvZGUodHlwZVRhYmxlLCBgJHtwYXRofVske2luZGV4fV1gLCB0eXBlLnNsaWNlKDAsIHR5cGUubGVuZ3RoIC0gMiksIGVudHJ5KSkgYXMgRGVjb2RlZFR5cGU8VHlwZSwgVGFibGU+O1xuICB9IGVsc2UgaWYgKHR5cGVvZiB0eXBlID09PSBcInN0cmluZ1wiICYmIHNpbXBsZVR5cGVzLmluY2x1ZGVzKHR5cGUpKSB7XG4gICAgcmV0dXJuIHNpbXBsZUVuY29kZURlY29kZShwYXRoLCB0eXBlLCB2YWx1ZSkgYXMgRGVjb2RlZFR5cGU8VHlwZSwgVGFibGU+O1xuICB9IGVsc2UgaWYgKHR5cGUgPT09IFwiYnl0ZXNcIikge1xuICAgIGlmICh0eXBlb2YgdmFsdWUgIT09IFwic3RyaW5nXCIpIHtcbiAgICAgIHRocm93IG5ldyBQYXJzZUVycm9yKHBhdGgsIGAke3R5cGV9IChiYXNlIDY0KWAsIHZhbHVlKTtcbiAgICB9XG5cbiAgICBjb25zdCBidWZmZXIgPSBCdWZmZXIuZnJvbSh2YWx1ZSwgXCJiYXNlNjRcIik7XG5cbiAgICBpZiAoYnVmZmVyLnRvU3RyaW5nKFwiYmFzZTY0XCIpICE9PSB2YWx1ZSkge1xuICAgICAgdGhyb3cgbmV3IFBhcnNlRXJyb3IocGF0aCwgYCR7dHlwZX0gKGJhc2UgNjQpYCwgdmFsdWUpO1xuICAgIH1cblxuICAgIHJldHVybiBidWZmZXIgYXMgRGVjb2RlZFR5cGU8VHlwZSwgVGFibGU+O1xuICB9IGVsc2UgaWYgKHR5cGUgPT09IFwiYmlnaW50XCIpIHtcbiAgICBpZiAodHlwZW9mIHZhbHVlICE9PSBcIm51bWJlclwiICYmICh0eXBlb2YgdmFsdWUgIT09IFwic3RyaW5nXCIgfHwgIS9eLT9bMC05XSskL3UudGVzdCh2YWx1ZSkpKSB7XG4gICAgICB0aHJvdyBuZXcgUGFyc2VFcnJvcihwYXRoLCB0eXBlLCB2YWx1ZSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIEJpZ0ludCh2YWx1ZSkgYXMgRGVjb2RlZFR5cGU8VHlwZSwgVGFibGU+O1xuICB9IGVsc2UgaWYgKHR5cGUgPT09IFwiY3BmXCIpIHtcbiAgICBpZiAodHlwZW9mIHZhbHVlICE9PSBcInN0cmluZ1wiIHx8ICFDUEYuaXNWYWxpZCh2YWx1ZSkpIHtcbiAgICAgIHRocm93IG5ldyBQYXJzZUVycm9yKHBhdGgsIHR5cGUsIHZhbHVlKTtcbiAgICB9XG5cbiAgICByZXR1cm4gQ1BGLmZvcm1hdCh2YWx1ZSkgYXMgRGVjb2RlZFR5cGU8VHlwZSwgVGFibGU+O1xuICB9IGVsc2UgaWYgKHR5cGUgPT09IFwiY25walwiKSB7XG4gICAgaWYgKHR5cGVvZiB2YWx1ZSAhPT0gXCJzdHJpbmdcIiB8fCAhQ05QSi5pc1ZhbGlkKHZhbHVlKSkge1xuICAgICAgdGhyb3cgbmV3IFBhcnNlRXJyb3IocGF0aCwgdHlwZSwgdmFsdWUpO1xuICAgIH1cblxuICAgIHJldHVybiBDTlBKLmZvcm1hdCh2YWx1ZSkgYXMgRGVjb2RlZFR5cGU8VHlwZSwgVGFibGU+O1xuICB9IGVsc2UgaWYgKHR5cGUgPT09IFwiZGF0ZVwiKSB7XG4gICAgaWYgKHR5cGVvZiB2YWx1ZSAhPT0gXCJzdHJpbmdcIiB8fCAhL15bMC05XXs0fS1bMDFdWzAtOV0tWzAxMjNdWzAtOV0kL3UudGVzdCh2YWx1ZSkpIHtcbiAgICAgIHRocm93IG5ldyBQYXJzZUVycm9yKHBhdGgsIHR5cGUsIHZhbHVlKTtcbiAgICB9XG5cbiAgICBjb25zdCBkYXkgPSBwYXJzZUludCh2YWx1ZS5zcGxpdChcIi1cIilbMl0sIDEwKTtcbiAgICBjb25zdCBtb250aCA9IHBhcnNlSW50KHZhbHVlLnNwbGl0KFwiLVwiKVsxXSwgMTApIC0gMTtcbiAgICBjb25zdCB5ZWFyID0gcGFyc2VJbnQodmFsdWUuc3BsaXQoXCItXCIpWzBdLCAxMCk7XG4gICAgY29uc3QgZGF0ZSA9IG5ldyBEYXRlKHllYXIsIG1vbnRoLCBkYXkpO1xuXG4gICAgaWYgKGRhdGUuZ2V0RnVsbFllYXIoKSAhPT0geWVhciB8fCBkYXRlLmdldE1vbnRoKCkgIT09IG1vbnRoIHx8IGRhdGUuZ2V0RGF0ZSgpICE9PSBkYXkpIHtcbiAgICAgIHRocm93IG5ldyBQYXJzZUVycm9yKHBhdGgsIHR5cGUsIHZhbHVlKTtcbiAgICB9XG5cbiAgICByZXR1cm4gZGF0ZSBhcyBEZWNvZGVkVHlwZTxUeXBlLCBUYWJsZT47XG4gIH0gZWxzZSBpZiAodHlwZSA9PT0gXCJkYXRldGltZVwiKSB7XG4gICAgaWYgKHR5cGVvZiB2YWx1ZSAhPT0gXCJzdHJpbmdcIiB8fCAhL15bMC05XXs0fS1bMDFdWzAtOV0tWzAxMjNdWzAtOV1UWzAxMl1bMC05XTpbMDEyMzQ1Nl1bMC05XTpbMDEyMzQ1Nl1bMC05XSg/OlxcLlswLTldezEsNn0pP1o/JC91LnRlc3QodmFsdWUpKSB7XG4gICAgICB0aHJvdyBuZXcgUGFyc2VFcnJvcihwYXRoLCB0eXBlLCB2YWx1ZSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIG5ldyBEYXRlKGAke3ZhbHVlLmVuZHNXaXRoKFwiWlwiKSA/IHZhbHVlIDogdmFsdWUuY29uY2F0KFwiWlwiKX1gKSBhcyBEZWNvZGVkVHlwZTxUeXBlLCBUYWJsZT47XG4gIH0gZWxzZSBpZiAodHlwZSA9PT0gXCJkZWNpbWFsXCIpIHtcbiAgICBpZiAodHlwZW9mIHZhbHVlICE9PSBcIm51bWJlclwiICYmICh0eXBlb2YgdmFsdWUgIT09IFwic3RyaW5nXCIgfHwgIS9eLT9bMC05XSsoPzpcXC5bMC05XSspPyQvdS50ZXN0KHZhbHVlKSkpIHtcbiAgICAgIHRocm93IG5ldyBQYXJzZUVycm9yKHBhdGgsIHR5cGUsIHZhbHVlKTtcbiAgICB9XG5cbiAgICByZXR1cm4gbmV3IERlY2ltYWwodmFsdWUpIGFzIERlY29kZWRUeXBlPFR5cGUsIFRhYmxlPjtcbiAgfSBlbHNlIHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVubmVjZXNzYXJ5LXR5cGUtYXNzZXJ0aW9uXG4gICAgY29uc3QgcmVzb2x2ZWQgPSAodHlwZVRhYmxlIGFzIFJlY29yZDxzdHJpbmcsIFR5cGVEZXNjcmlwdGlvbj4pW3R5cGUgYXMgc3RyaW5nXTtcblxuICAgIGlmIChyZXNvbHZlZCkge1xuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnNhZmUtcmV0dXJuXG4gICAgICByZXR1cm4gZGVjb2RlKHR5cGVUYWJsZSwgcGF0aCwgcmVzb2x2ZWQsIHZhbHVlKSBhcyB1bmtub3duIGFzIERlY29kZWRUeXBlPFR5cGUsIFRhYmxlPjtcbiAgICB9XG5cbiAgICB0aHJvdyBuZXcgRXJyb3IoYFVua25vd24gdHlwZSAnJHt0eXBlfScgYXQgJyR7cGF0aH0nYCk7XG4gIH1cbn1cbiJdfQ==
package/dist/src/error.js CHANGED
@@ -1,7 +1,4 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Fatal = exports.SdkgenErrorWithData = exports.SdkgenError = void 0;
4
- class SdkgenError extends Error {
1
+ export class SdkgenError extends Error {
5
2
  get type() {
6
3
  return this.constructor.name;
7
4
  }
@@ -12,8 +9,7 @@ class SdkgenError extends Error {
12
9
  };
13
10
  }
14
11
  }
15
- exports.SdkgenError = SdkgenError;
16
- class SdkgenErrorWithData extends SdkgenError {
12
+ export class SdkgenErrorWithData extends SdkgenError {
17
13
  constructor(message, data) {
18
14
  super(message);
19
15
  this.data = data;
@@ -26,7 +22,6 @@ class SdkgenErrorWithData extends SdkgenError {
26
22
  };
27
23
  }
28
24
  }
29
- exports.SdkgenErrorWithData = SdkgenErrorWithData;
30
- class Fatal extends SdkgenError {
25
+ export class Fatal extends SdkgenError {
31
26
  }
32
- exports.Fatal = Fatal;
27
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXJyb3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZXJyb3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxPQUFnQixXQUFZLFNBQVEsS0FBSztJQUM3QyxJQUFJLElBQUk7UUFDTixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDO0lBQy9CLENBQUM7SUFFTSxNQUFNO1FBQ1gsT0FBTztZQUNMLE9BQU8sRUFBRSxJQUFJLENBQUMsT0FBTztZQUNyQixJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUk7U0FDaEIsQ0FBQztJQUNKLENBQUM7Q0FDRjtBQUNELE1BQU0sT0FBZ0IsbUJBQThCLFNBQVEsV0FBVztJQUNyRSxZQUFZLE9BQWUsRUFBUyxJQUFjO1FBQ2hELEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztRQURtQixTQUFJLEdBQUosSUFBSSxDQUFVO0lBRWxELENBQUM7SUFFTSxNQUFNO1FBQ1gsT0FBTztZQUNMLElBQUksRUFBRSxJQUFJLENBQUMsSUFBSTtZQUNmLE9BQU8sRUFBRSxJQUFJLENBQUMsT0FBTztZQUNyQixJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUk7U0FDaEIsQ0FBQztJQUNKLENBQUM7Q0FDRjtBQUVELE1BQU0sT0FBTyxLQUFNLFNBQVEsV0FBVztDQUFHIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGFic3RyYWN0IGNsYXNzIFNka2dlbkVycm9yIGV4dGVuZHMgRXJyb3Ige1xuICBnZXQgdHlwZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmNvbnN0cnVjdG9yLm5hbWU7XG4gIH1cblxuICBwdWJsaWMgdG9KU09OKCk6IHsgbWVzc2FnZTogc3RyaW5nOyB0eXBlOiBzdHJpbmcgfSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIG1lc3NhZ2U6IHRoaXMubWVzc2FnZSxcbiAgICAgIHR5cGU6IHRoaXMudHlwZSxcbiAgICB9O1xuICB9XG59XG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgU2RrZ2VuRXJyb3JXaXRoRGF0YTxEYXRhVHlwZT4gZXh0ZW5kcyBTZGtnZW5FcnJvciB7XG4gIGNvbnN0cnVjdG9yKG1lc3NhZ2U6IHN0cmluZywgcHVibGljIGRhdGE6IERhdGFUeXBlKSB7XG4gICAgc3VwZXIobWVzc2FnZSk7XG4gIH1cblxuICBwdWJsaWMgdG9KU09OKCk6IHsgZGF0YTogRGF0YVR5cGU7IG1lc3NhZ2U6IHN0cmluZzsgdHlwZTogc3RyaW5nIH0ge1xuICAgIHJldHVybiB7XG4gICAgICBkYXRhOiB0aGlzLmRhdGEsXG4gICAgICBtZXNzYWdlOiB0aGlzLm1lc3NhZ2UsXG4gICAgICB0eXBlOiB0aGlzLnR5cGUsXG4gICAgfTtcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgRmF0YWwgZXh0ZW5kcyBTZGtnZW5FcnJvciB7fVxuIl19
@@ -1,22 +1,19 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.executeRequest = void 0;
4
- const parser_1 = require("@sdkgen/parser");
5
- const encode_decode_1 = require("./encode-decode");
6
- const error_1 = require("./error");
7
- const utils_1 = require("./utils");
8
- async function executeRequest(ctx, apiConfig) {
1
+ import { ThrowsAnnotation } from "@sdkgen/parser";
2
+ import { decode, encode } from "./encode-decode.js";
3
+ import { Fatal } from "./error.js";
4
+ import { has } from "./utils.js";
5
+ export async function executeRequest(ctx, apiConfig) {
9
6
  // eslint-disable-next-line func-style
10
7
  let next = async () => {
11
8
  try {
12
9
  const functionDescription = apiConfig.astJson.functionTable[ctx.request.name];
13
10
  const functionImplementation = apiConfig.fn[ctx.request.name];
14
11
  if (!functionDescription || !functionImplementation) {
15
- throw new error_1.Fatal(`Function does not exist: ${ctx.request.name}`);
12
+ throw new Fatal(`Function does not exist: ${ctx.request.name}`);
16
13
  }
17
- const args = (0, encode_decode_1.decode)(apiConfig.astJson.typeTable, `${ctx.request.name}.args`, functionDescription.args, ctx.request.args);
14
+ const args = decode(apiConfig.astJson.typeTable, `${ctx.request.name}.args`, functionDescription.args, ctx.request.args);
18
15
  const ret = (await functionImplementation(ctx, args));
19
- const encodedRet = (0, encode_decode_1.encode)(apiConfig.astJson.typeTable, `${ctx.request.name}.ret`, functionDescription.ret, ret);
16
+ const encodedRet = encode(apiConfig.astJson.typeTable, `${ctx.request.name}.ret`, functionDescription.ret, ret);
20
17
  return { result: encodedRet };
21
18
  }
22
19
  catch (error) {
@@ -40,10 +37,11 @@ async function executeRequest(ctx, apiConfig) {
40
37
  if (reply.error) {
41
38
  const functionAst = apiConfig.ast.operations.find(op => op.name === ctx.request.name);
42
39
  if (functionAst) {
43
- const allowedErrors = functionAst.annotations.filter(ann => ann instanceof parser_1.ThrowsAnnotation).map(ann => ann.error);
40
+ const allowedErrors = functionAst.annotations.filter(ann => ann instanceof ThrowsAnnotation).map(ann => ann.error);
44
41
  if (typeof reply.error !== "object" ||
42
+ // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
45
43
  reply.error === null ||
46
- !(0, utils_1.has)(reply.error, "type") ||
44
+ !has(reply.error, "type") ||
47
45
  typeof reply.error.type !== "string" ||
48
46
  (allowedErrors.length > 0 && !allowedErrors.includes(reply.error.type)) ||
49
47
  !apiConfig.astJson.errors.map(error => (typeof error === "string" ? error : error[0])).includes(reply.error.type)) {
@@ -53,4 +51,4 @@ async function executeRequest(ctx, apiConfig) {
53
51
  }
54
52
  return reply;
55
53
  }
56
- exports.executeRequest = executeRequest;
54
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhlY3V0ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9leGVjdXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBSWxELE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDcEQsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLFlBQVksQ0FBQztBQUNuQyxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBRWpDLE1BQU0sQ0FBQyxLQUFLLFVBQVUsY0FBYyxDQUFnQixHQUE0QixFQUFFLFNBQXVDO0lBQ3ZILHNDQUFzQztJQUN0QyxJQUFJLElBQUksR0FBRyxLQUFLLElBQUksRUFBRTtRQUNwQixJQUFJO1lBQ0YsTUFBTSxtQkFBbUIsR0FBRyxTQUFTLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQzlFLE1BQU0sc0JBQXNCLEdBQUcsU0FBUyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO1lBRTlELElBQUksQ0FBQyxtQkFBbUIsSUFBSSxDQUFDLHNCQUFzQixFQUFFO2dCQUNuRCxNQUFNLElBQUksS0FBSyxDQUFDLDRCQUE0QixHQUFHLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUM7YUFDakU7WUFFRCxNQUFNLElBQUksR0FBRyxNQUFNLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxTQUFTLEVBQUUsR0FBRyxHQUFHLENBQUMsT0FBTyxDQUFDLElBQUksT0FBTyxFQUFFLG1CQUFtQixDQUFDLElBQUksRUFBRSxHQUFHLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO1lBRXpILE1BQU0sR0FBRyxHQUFHLENBQUMsTUFBTSxzQkFBc0IsQ0FBQyxHQUFHLEVBQUUsSUFBSSxDQUFDLENBQVksQ0FBQztZQUNqRSxNQUFNLFVBQVUsR0FBRyxNQUFNLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxTQUFTLEVBQUUsR0FBRyxHQUFHLENBQUMsT0FBTyxDQUFDLElBQUksTUFBTSxFQUFFLG1CQUFtQixDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQztZQUVoSCxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBa0IsQ0FBQztTQUMvQztRQUFDLE9BQU8sS0FBSyxFQUFFO1lBQ2QsT0FBTyxFQUFFLEtBQUssRUFBa0IsQ0FBQztTQUNsQztJQUNILENBQUMsQ0FBQztJQUVGLEtBQUssSUFBSSxDQUFDLEdBQUcsU0FBUyxDQUFDLFdBQVcsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUU7UUFDMUQsTUFBTSxVQUFVLEdBQUcsU0FBUyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUM1QyxNQUFNLFlBQVksR0FBRyxJQUFJLENBQUM7UUFFMUIsSUFBSSxHQUFHLEtBQUssSUFBSSxFQUFFO1lBQ2hCLElBQUk7Z0JBQ0YsT0FBTyxNQUFNLFVBQVUsQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFDLENBQUM7YUFDNUM7WUFBQyxPQUFPLEtBQUssRUFBRTtnQkFDZCxPQUFPLEVBQUUsS0FBSyxFQUFrQixDQUFDO2FBQ2xDO1FBQ0gsQ0FBQyxDQUFDO0tBQ0g7SUFFRCxNQUFNLEtBQUssR0FBRyxNQUFNLElBQUksRUFBRSxDQUFDO0lBRTNCLG9HQUFvRztJQUNwRyxJQUFJLEtBQUssQ0FBQyxLQUFLLEVBQUU7UUFDZixNQUFNLFdBQVcsR0FBRyxTQUFTLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsSUFBSSxLQUFLLEdBQUcsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7UUFFdEYsSUFBSSxXQUFXLEVBQUU7WUFDZixNQUFNLGFBQWEsR0FBRyxXQUFXLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsWUFBWSxnQkFBZ0IsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFFLEdBQXdCLENBQUMsS0FBSyxDQUFDLENBQUM7WUFFekksSUFDRSxPQUFPLEtBQUssQ0FBQyxLQUFLLEtBQUssUUFBUTtnQkFDL0IsdUVBQXVFO2dCQUN2RSxLQUFLLENBQUMsS0FBSyxLQUFLLElBQUk7Z0JBQ3BCLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxLQUFLLEVBQUUsTUFBTSxDQUFDO2dCQUN6QixPQUFPLEtBQUssQ0FBQyxLQUFLLENBQUMsSUFBSSxLQUFLLFFBQVE7Z0JBQ3BDLENBQUMsYUFBYSxDQUFDLE1BQU0sR0FBRyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQ3ZFLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQyxPQUFPLEtBQUssS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsRUFDakg7Z0JBQ0EsTUFBTSxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsS0FBSyxFQUFFLE1BQU0sRUFBRSxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsQ0FBQyxDQUFDO2FBQ2hFO1NBQ0Y7S0FDRjtJQUVELE9BQU8sS0FBSyxDQUFDO0FBQ2YsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFRocm93c0Fubm90YXRpb24gfSBmcm9tIFwiQHNka2dlbi9wYXJzZXJcIjtcblxuaW1wb3J0IHR5cGUgeyBCYXNlQXBpQ29uZmlnIH0gZnJvbSBcIi4vYXBpLWNvbmZpZy5qc1wiO1xuaW1wb3J0IHR5cGUgeyBDb250ZXh0LCBDb250ZXh0UmVwbHkgfSBmcm9tIFwiLi9jb250ZXh0LmpzXCI7XG5pbXBvcnQgeyBkZWNvZGUsIGVuY29kZSB9IGZyb20gXCIuL2VuY29kZS1kZWNvZGUuanNcIjtcbmltcG9ydCB7IEZhdGFsIH0gZnJvbSBcIi4vZXJyb3IuanNcIjtcbmltcG9ydCB7IGhhcyB9IGZyb20gXCIuL3V0aWxzLmpzXCI7XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBleGVjdXRlUmVxdWVzdDxFeHRyYUNvbnRleHRUPihjdHg6IENvbnRleHQgJiBFeHRyYUNvbnRleHRULCBhcGlDb25maWc6IEJhc2VBcGlDb25maWc8RXh0cmFDb250ZXh0VD4pIHtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGZ1bmMtc3R5bGVcbiAgbGV0IG5leHQgPSBhc3luYyAoKSA9PiB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IGZ1bmN0aW9uRGVzY3JpcHRpb24gPSBhcGlDb25maWcuYXN0SnNvbi5mdW5jdGlvblRhYmxlW2N0eC5yZXF1ZXN0Lm5hbWVdO1xuICAgICAgY29uc3QgZnVuY3Rpb25JbXBsZW1lbnRhdGlvbiA9IGFwaUNvbmZpZy5mbltjdHgucmVxdWVzdC5uYW1lXTtcblxuICAgICAgaWYgKCFmdW5jdGlvbkRlc2NyaXB0aW9uIHx8ICFmdW5jdGlvbkltcGxlbWVudGF0aW9uKSB7XG4gICAgICAgIHRocm93IG5ldyBGYXRhbChgRnVuY3Rpb24gZG9lcyBub3QgZXhpc3Q6ICR7Y3R4LnJlcXVlc3QubmFtZX1gKTtcbiAgICAgIH1cblxuICAgICAgY29uc3QgYXJncyA9IGRlY29kZShhcGlDb25maWcuYXN0SnNvbi50eXBlVGFibGUsIGAke2N0eC5yZXF1ZXN0Lm5hbWV9LmFyZ3NgLCBmdW5jdGlvbkRlc2NyaXB0aW9uLmFyZ3MsIGN0eC5yZXF1ZXN0LmFyZ3MpO1xuXG4gICAgICBjb25zdCByZXQgPSAoYXdhaXQgZnVuY3Rpb25JbXBsZW1lbnRhdGlvbihjdHgsIGFyZ3MpKSBhcyB1bmtub3duO1xuICAgICAgY29uc3QgZW5jb2RlZFJldCA9IGVuY29kZShhcGlDb25maWcuYXN0SnNvbi50eXBlVGFibGUsIGAke2N0eC5yZXF1ZXN0Lm5hbWV9LnJldGAsIGZ1bmN0aW9uRGVzY3JpcHRpb24ucmV0LCByZXQpO1xuXG4gICAgICByZXR1cm4geyByZXN1bHQ6IGVuY29kZWRSZXQgfSBhcyBDb250ZXh0UmVwbHk7XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIHJldHVybiB7IGVycm9yIH0gYXMgQ29udGV4dFJlcGx5O1xuICAgIH1cbiAgfTtcblxuICBmb3IgKGxldCBpID0gYXBpQ29uZmlnLm1pZGRsZXdhcmVzLmxlbmd0aCAtIDE7IGkgPj0gMDsgLS1pKSB7XG4gICAgY29uc3QgbWlkZGxld2FyZSA9IGFwaUNvbmZpZy5taWRkbGV3YXJlc1tpXTtcbiAgICBjb25zdCBwcmV2aW91c05leHQgPSBuZXh0O1xuXG4gICAgbmV4dCA9IGFzeW5jICgpID0+IHtcbiAgICAgIHRyeSB7XG4gICAgICAgIHJldHVybiBhd2FpdCBtaWRkbGV3YXJlKGN0eCwgcHJldmlvdXNOZXh0KTtcbiAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgIHJldHVybiB7IGVycm9yIH0gYXMgQ29udGV4dFJlcGx5O1xuICAgICAgfVxuICAgIH07XG4gIH1cblxuICBjb25zdCByZXBseSA9IGF3YWl0IG5leHQoKTtcblxuICAvLyBJZiBlcnJvcnMsIGNoZWNrIGlmIHRoZSBlcnJvciB0eXBlIGlzIG9uZSBvZiB0aGUgQHRocm93cyBhbm5vdGF0aW9uLiBJZiBpdCBpc24ndCwgY2hhbmdlIHRvIEZhdGFsXG4gIGlmIChyZXBseS5lcnJvcikge1xuICAgIGNvbnN0IGZ1bmN0aW9uQXN0ID0gYXBpQ29uZmlnLmFzdC5vcGVyYXRpb25zLmZpbmQob3AgPT4gb3AubmFtZSA9PT0gY3R4LnJlcXVlc3QubmFtZSk7XG5cbiAgICBpZiAoZnVuY3Rpb25Bc3QpIHtcbiAgICAgIGNvbnN0IGFsbG93ZWRFcnJvcnMgPSBmdW5jdGlvbkFzdC5hbm5vdGF0aW9ucy5maWx0ZXIoYW5uID0+IGFubiBpbnN0YW5jZW9mIFRocm93c0Fubm90YXRpb24pLm1hcChhbm4gPT4gKGFubiBhcyBUaHJvd3NBbm5vdGF0aW9uKS5lcnJvcik7XG5cbiAgICAgIGlmIChcbiAgICAgICAgdHlwZW9mIHJlcGx5LmVycm9yICE9PSBcIm9iamVjdFwiIHx8XG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW5uZWNlc3NhcnktY29uZGl0aW9uXG4gICAgICAgIHJlcGx5LmVycm9yID09PSBudWxsIHx8XG4gICAgICAgICFoYXMocmVwbHkuZXJyb3IsIFwidHlwZVwiKSB8fFxuICAgICAgICB0eXBlb2YgcmVwbHkuZXJyb3IudHlwZSAhPT0gXCJzdHJpbmdcIiB8fFxuICAgICAgICAoYWxsb3dlZEVycm9ycy5sZW5ndGggPiAwICYmICFhbGxvd2VkRXJyb3JzLmluY2x1ZGVzKHJlcGx5LmVycm9yLnR5cGUpKSB8fFxuICAgICAgICAhYXBpQ29uZmlnLmFzdEpzb24uZXJyb3JzLm1hcChlcnJvciA9PiAodHlwZW9mIGVycm9yID09PSBcInN0cmluZ1wiID8gZXJyb3IgOiBlcnJvclswXSkpLmluY2x1ZGVzKHJlcGx5LmVycm9yLnR5cGUpXG4gICAgICApIHtcbiAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHJlcGx5LmVycm9yLCBcInR5cGVcIiwgeyB2YWx1ZTogXCJGYXRhbFwiIH0pO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiByZXBseTtcbn1cbiJdfQ==