@fairspec/agent 0.9.0 → 0.9.2
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/build/examples/client.js +16 -0
- package/build/main.js +6 -0
- package/build/package.json +1 -1
- package/build/server.js +2 -1
- package/build/tools/data/validate.d.ts +180 -178
- package/build/tools/data/validate.js +6 -3
- package/build/tools/data/validate.spec.js +22 -22
- package/build/tools/dataSchema/infer.d.ts +10 -8
- package/build/tools/dataSchema/infer.js +6 -3
- package/build/tools/dataSchema/infer.spec.js +12 -10
- package/build/tools/dataSchema/validate.d.ts +173 -171
- package/build/tools/dataSchema/validate.js +6 -3
- package/build/tools/dataSchema/validate.spec.js +15 -15
- package/build/tools/dataset/infer.d.ts +804 -802
- package/build/tools/dataset/infer.js +6 -3
- package/build/tools/dataset/infer.spec.js +18 -18
- package/build/tools/dataset/validate.d.ts +180 -178
- package/build/tools/dataset/validate.js +6 -3
- package/build/tools/dataset/validate.spec.js +16 -16
- package/build/tools/dialect/infer.d.ts +98 -96
- package/build/tools/dialect/infer.js +6 -3
- package/build/tools/dialect/infer.spec.js +16 -14
- package/build/tools/table/query.d.ts +10 -8
- package/build/tools/table/query.js +6 -3
- package/build/tools/table/query.spec.js +31 -31
- package/build/tools/table/validate.d.ts +180 -178
- package/build/tools/table/validate.js +6 -3
- package/build/tools/table/validate.spec.js +11 -11
- package/build/tools/tableSchema/infer.d.ts +501 -499
- package/build/tools/tableSchema/infer.js +7 -3
- package/build/tools/tableSchema/infer.spec.js +35 -33
- package/build/tools/tableSchema/validate.d.ts +173 -171
- package/build/tools/tableSchema/validate.js +6 -3
- package/build/tools/tableSchema/validate.spec.js +13 -13
- package/package.json +2 -2
- package/build/actions/tableSchema/asHtml.d.ts +0 -4
- package/build/actions/tableSchema/asHtml.js +0 -82
- package/build/actions/tableSchema/asHtml.spec.js +0 -356
- package/build/actions/tableSchema/asMarkdown.d.ts +0 -4
- package/build/actions/tableSchema/asMarkdown.js +0 -65
- package/build/actions/tableSchema/asMarkdown.spec.js +0 -133
- package/build/document/Document.d.ts +0 -2
- package/build/document/Document.js +0 -2
- package/build/document/index.d.ts +0 -3
- package/build/document/index.js +0 -3
- package/build/document/types/Base.d.ts +0 -3
- package/build/document/types/Base.js +0 -2
- package/build/document/types/Json.d.ts +0 -5
- package/build/document/types/Json.js +0 -2
- package/build/document/validate.d.ts +0 -5
- package/build/document/validate.js +0 -23
- package/build/document/validate.spec.d.ts +0 -1
- package/build/document/validate.spec.js +0 -71
- package/build/plugin.d.ts +0 -6
- package/build/plugin.js +0 -15
- package/build/schema/convert/toHtml.d.ts +0 -4
- package/build/schema/convert/toHtml.js +0 -107
- package/build/schema/convert/toHtml.spec.d.ts +0 -1
- package/build/schema/convert/toHtml.spec.js +0 -432
- package/build/schema/convert/toMarkdown.d.ts +0 -4
- package/build/schema/convert/toMarkdown.js +0 -75
- package/build/schema/convert/toMarkdown.spec.d.ts +0 -1
- package/build/schema/convert/toMarkdown.spec.js +0 -137
- package/build/schema/index.d.ts +0 -2
- package/build/schema/index.js +0 -3
- package/build/tableSchema/convert/toHtml.d.ts +0 -4
- package/build/tableSchema/convert/toHtml.js +0 -80
- package/build/tableSchema/convert/toHtml.spec.d.ts +0 -1
- package/build/tableSchema/convert/toHtml.spec.js +0 -375
- package/build/tableSchema/convert/toMarkdown.d.ts +0 -4
- package/build/tableSchema/convert/toMarkdown.js +0 -57
- package/build/tableSchema/convert/toMarkdown.spec.d.ts +0 -1
- package/build/tableSchema/convert/toMarkdown.spec.js +0 -141
- package/build/tableSchema/index.d.ts +0 -2
- package/build/tableSchema/index.js +0 -3
- /package/build/{actions/tableSchema/asHtml.spec.d.ts → examples/client.d.ts} +0 -0
- /package/build/{actions/tableSchema/asMarkdown.spec.d.ts → main.d.ts} +0 -0
|
@@ -25,8 +25,8 @@ describe("validateDataTool", () => {
|
|
|
25
25
|
}, {});
|
|
26
26
|
expect.assert(result);
|
|
27
27
|
expect.assert(!("error" in result));
|
|
28
|
-
expect(result.valid).toBe(true);
|
|
29
|
-
expect(result.errors).toHaveLength(0);
|
|
28
|
+
expect(result.report.valid).toBe(true);
|
|
29
|
+
expect(result.report.errors).toHaveLength(0);
|
|
30
30
|
});
|
|
31
31
|
it("detects invalid data", async () => {
|
|
32
32
|
const resource = {
|
|
@@ -44,14 +44,14 @@ describe("validateDataTool", () => {
|
|
|
44
44
|
}, {});
|
|
45
45
|
expect.assert(result);
|
|
46
46
|
expect.assert(!("error" in result));
|
|
47
|
-
expect(result.valid).toBe(false);
|
|
48
|
-
expect(result.errors.length).toBeGreaterThan(0);
|
|
49
|
-
expect(result.errors).toContainEqual({
|
|
47
|
+
expect(result.report.valid).toBe(false);
|
|
48
|
+
expect(result.report.errors.length).toBeGreaterThan(0);
|
|
49
|
+
expect(result.report.errors).toContainEqual({
|
|
50
50
|
type: "data",
|
|
51
51
|
jsonPointer: "/name",
|
|
52
52
|
message: "must be string",
|
|
53
53
|
});
|
|
54
|
-
expect(result.errors).toContainEqual({
|
|
54
|
+
expect(result.report.errors).toContainEqual({
|
|
55
55
|
type: "data",
|
|
56
56
|
jsonPointer: "/count",
|
|
57
57
|
message: "must be integer",
|
|
@@ -79,8 +79,8 @@ describe("validateDataTool", () => {
|
|
|
79
79
|
}, {});
|
|
80
80
|
expect.assert(result);
|
|
81
81
|
expect.assert(!("error" in result));
|
|
82
|
-
expect(result.valid).toBe(true);
|
|
83
|
-
expect(result.errors).toHaveLength(0);
|
|
82
|
+
expect(result.report.valid).toBe(true);
|
|
83
|
+
expect(result.report.errors).toHaveLength(0);
|
|
84
84
|
});
|
|
85
85
|
it("detects invalid data from file path", async () => {
|
|
86
86
|
const jsonData = { name: "alice", age: "not a number" };
|
|
@@ -103,8 +103,8 @@ describe("validateDataTool", () => {
|
|
|
103
103
|
}, {});
|
|
104
104
|
expect.assert(result);
|
|
105
105
|
expect.assert(!("error" in result));
|
|
106
|
-
expect(result.valid).toBe(false);
|
|
107
|
-
expect(result.errors.length).toBeGreaterThan(0);
|
|
106
|
+
expect(result.report.valid).toBe(false);
|
|
107
|
+
expect(result.report.errors.length).toBeGreaterThan(0);
|
|
108
108
|
});
|
|
109
109
|
it("validates data with nested objects", async () => {
|
|
110
110
|
const resource = {
|
|
@@ -131,8 +131,8 @@ describe("validateDataTool", () => {
|
|
|
131
131
|
}, {});
|
|
132
132
|
expect.assert(result);
|
|
133
133
|
expect.assert(!("error" in result));
|
|
134
|
-
expect(result.valid).toBe(true);
|
|
135
|
-
expect(result.errors).toHaveLength(0);
|
|
134
|
+
expect(result.report.valid).toBe(true);
|
|
135
|
+
expect(result.report.errors).toHaveLength(0);
|
|
136
136
|
});
|
|
137
137
|
it("validates data with array types", async () => {
|
|
138
138
|
const resource = {
|
|
@@ -159,8 +159,8 @@ describe("validateDataTool", () => {
|
|
|
159
159
|
}, {});
|
|
160
160
|
expect.assert(result);
|
|
161
161
|
expect.assert(!("error" in result));
|
|
162
|
-
expect(result.valid).toBe(true);
|
|
163
|
-
expect(result.errors).toHaveLength(0);
|
|
162
|
+
expect(result.report.valid).toBe(true);
|
|
163
|
+
expect(result.report.errors).toHaveLength(0);
|
|
164
164
|
});
|
|
165
165
|
it("returns error when no data but schema expected", async () => {
|
|
166
166
|
const resource = {
|
|
@@ -172,9 +172,9 @@ describe("validateDataTool", () => {
|
|
|
172
172
|
}, {});
|
|
173
173
|
expect.assert(result);
|
|
174
174
|
expect.assert(!("error" in result));
|
|
175
|
-
expect(result.valid).toBe(false);
|
|
176
|
-
expect(result.errors).toHaveLength(1);
|
|
177
|
-
expect(result.errors).toContainEqual({
|
|
175
|
+
expect(result.report.valid).toBe(false);
|
|
176
|
+
expect(result.report.errors).toHaveLength(1);
|
|
177
|
+
expect(result.report.errors).toContainEqual({
|
|
178
178
|
type: "resource/type",
|
|
179
179
|
expectedResourceType: "data",
|
|
180
180
|
});
|
|
@@ -196,8 +196,8 @@ describe("validateDataTool", () => {
|
|
|
196
196
|
}, {});
|
|
197
197
|
expect.assert(result);
|
|
198
198
|
expect.assert(!("error" in result));
|
|
199
|
-
expect(result.valid).toBe(false);
|
|
200
|
-
expect(result.errors.length).toBeGreaterThan(0);
|
|
199
|
+
expect(result.report.valid).toBe(false);
|
|
200
|
+
expect(result.report.errors.length).toBeGreaterThan(0);
|
|
201
201
|
});
|
|
202
202
|
it("validates array data against schema", async () => {
|
|
203
203
|
const resource = {
|
|
@@ -221,8 +221,8 @@ describe("validateDataTool", () => {
|
|
|
221
221
|
}, {});
|
|
222
222
|
expect.assert(result);
|
|
223
223
|
expect.assert(!("error" in result));
|
|
224
|
-
expect(result.valid).toBe(true);
|
|
225
|
-
expect(result.errors).toHaveLength(0);
|
|
224
|
+
expect(result.report.valid).toBe(true);
|
|
225
|
+
expect(result.report.errors).toHaveLength(0);
|
|
226
226
|
});
|
|
227
227
|
});
|
|
228
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdGUuc3BlYy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Rvb2xzL2RhdGEvdmFsaWRhdGUuc3BlYy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sbUJBQW1CLENBQUE7QUFDakQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsRUFBRSxFQUFFLE1BQU0sUUFBUSxDQUFBO0FBQzdDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGVBQWUsQ0FBQTtBQUVoRCxRQUFRLENBQUMsa0JBQWtCLEVBQUUsR0FBRyxFQUFFO0lBQ2hDLEVBQUUsQ0FBQywwQkFBMEIsRUFBRSxHQUFHLEVBQUU7UUFDbEMsTUFBTSxDQUFDLGdCQUFnQixDQUFDLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQTtRQUNqRCxNQUFNLENBQUMsZ0JBQWdCLENBQUMsV0FBVyxDQUFDLENBQUMsVUFBVSxFQUFFLENBQUE7UUFDakQsTUFBTSxDQUFDLGdCQUFnQixDQUFDLFdBQVcsQ0FBQyxDQUFDLFVBQVUsRUFBRSxDQUFBO1FBQ2pELE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxZQUFZLENBQUMsQ0FBQyxVQUFVLEVBQUUsQ0FBQTtRQUNsRCxNQUFNLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxDQUFDLENBQUMsVUFBVSxDQUFDLFVBQVUsQ0FBQyxDQUFBO0lBQ3pELENBQUMsQ0FBQyxDQUFBO0lBRUYsRUFBRSxDQUFDLCtCQUErQixFQUFFLEtBQUssSUFBSSxFQUFFO1FBQzdDLE1BQU0sUUFBUSxHQUFhO1lBQ3pCLElBQUksRUFBRSxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFBRTtZQUNoQyxVQUFVLEVBQUU7Z0JBQ1YsSUFBSSxFQUFFLFFBQVE7Z0JBQ2QsVUFBVSxFQUFFO29CQUNWLElBQUksRUFBRSxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUU7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LENBQUMsQ0FBQTtRQUNyQixNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxPQUFPLElBQUksTUFBTSxDQUFDLENBQUMsQ0FBQTtRQUVuQyxNQUFNLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQTtRQUMvQixNQUFNLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQTtJQUN2QyxDQUFDLENBQUMsQ0FBQTtBQUNKLENBQUMsQ0FBQyxDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBSZXNvdXJjZSB9IGZyb20gXCJAZmFpcnNwZWMvbGlicmFyeVwiXG5pbXBvcnQgeyB3cml0ZVRlbXBGaWxlIH0gZnJvbSBcIkBmYWlyc3BlYy9saWJyYXJ5XCJcbmltcG9ydCB7IGRlc2NyaWJlLCBleHBlY3QsIGl0IH0gZnJvbSBcInZpdGVzdFwiXG5pbXBvcnQgeyB2YWxpZGF0ZURhdGFUb29sIH0gZnJvbSBcIi4vdmFsaWRhdGUudHNcIlxuXG5kZXNjcmliZShcInZhbGlkYXRlRGF0YVRvb2xcIiwgKCkgPT4ge1xuICBpdChcInZhbGlkYXRlcyB0b29sIHN0cnVjdHVyZVwiLCAoKSA9PiB7XG4gICAgZXhwZWN0KHZhbGlkYXRlRGF0YVRvb2wuaWQpLnRvQmUoXCJ2YWxpZGF0ZS1kYXRhXCIpXG4gICAgZXhwZWN0KHZhbGlkYXRlRGF0YVRvb2wuZGVzY3JpcHRpb24pLnRvQmVUcnV0aHkoKVxuICAgIGV4cGVjdCh2YWxpZGF0ZURhdGFUb29sLmlucHV0U2NoZW1hKS50b0JlVHJ1dGh5KClcbiAgICBleHBlY3QodmFsaWRhdGVEYXRhVG9vbC5vdXRwdXRTY2hlbWEpLnRvQmVUcnV0aHkoKVxuICAgIGV4cGVjdCh2YWxpZGF0ZURhdGFUb29sLmV4ZWN1dGUpLnRvQmVUeXBlT2YoXCJmdW5jdGlvblwiKVxuICB9KVxuXG4gIGl0KFwidmFsaWRhdGVzIGRhdGEgYWdhaW5zdCBzY2hlbWFcIiwgYXN5bmMgKCkgPT4ge1xuICAgIGNvbnN0IHJlc291cmNlOiBSZXNvdXJjZSA9IHtcbiAgICAgIGRhdGE6IHsgbmFtZTogXCJ0ZXN0XCIsIGNvdW50OiA1IH0sXG4gICAgICBkYXRhU2NoZW1hOiB7XG4gICAgICAgIHR5cGU6IFwib2JqZWN0XCIsXG4gICAgICAgIHByb3BlcnRpZXM6IHtcbiAgICAgICAgICBuYW1lOiB7IHR5cGU6IFwic3RyaW5nXCIgfSxcbiAgICAgICAgICBjb3VudDogeyB0eXBlOiBcImludGVnZXJcIiB9LFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICB9XG5cbiAgICBjb25zdCByZXN1bHQgPSBhd2FpdCB2YWxpZGF0ZURhdGFUb29sLmV4ZWN1dGU/LihcbiAgICAgIHtcbiAgICAgICAgcmVzb3VyY2UsXG4gICAgICB9LFxuICAgICAge30sXG4gICAgKVxuXG4gICAgZXhwZWN0LmFzc2VydChyZXN1bHQpXG4gICAgZXhwZWN0LmFzc2VydCghKFwiZXJyb3JcIiBpbiByZXN1bHQpKVxuXG4gICAgZXhwZWN0KHJlc3VsdC52YWxpZCkudG9CZSh0cnVlKVxuICAgIGV4cGVjdChyZXN1bHQuZXJyb3JzKS50b0hhdmVMZW5ndGgoMClcbiAgfSlcblxuICBpdChcImRldGVjdHMgaW52YWxpZCBkYXRhXCIsIGFzeW5jICgpID0+IHtcbiAgICBjb25zdCByZXNvdXJjZTogUmVzb3VyY2UgPSB7XG4gICAgICBkYXRhOiB7IG5hbWU6IDEyMywgY291bnQ6IFwiaW52YWxpZFwiIH0sXG4gICAgICBkYXRhU2NoZW1hOiB7XG4gICAgICAgIHR5cGU6IFwib2JqZWN0XCIsXG4gICAgICAgIHByb3BlcnRpZXM6IHtcbiAgICAgICAgICBuYW1lOiB7IHR5cGU6IFwic3RyaW5nXCIgfSxcbiAgICAgICAgICBjb3VudDogeyB0eXBlOiBcImludGVnZXJcIiB9LFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICB9XG5cbiAgICBjb25zdCByZXN1bHQgPSBhd2FpdCB2YWxpZGF0ZURhdGFUb29sLmV4ZWN1dGU/LihcbiAgICAgIHtcbiAgICAgICAgcmVzb3VyY2UsXG4gICAgICB9LFxuICAgICAge30sXG4gICAgKVxuXG4gICAgZXhwZWN0LmFzc2VydChyZXN1bHQpXG4gICAgZXhwZWN0LmFzc2VydCghKFwiZXJyb3JcIiBpbiByZXN1bHQpKVxuXG4gICAgZXhwZWN0KHJlc3VsdC52YWxpZCkudG9CZShmYWxzZSlcbiAgICBleHBlY3QocmVzdWx0LmVycm9ycy5sZW5ndGgpLnRvQmVHcmVhdGVyVGhhbigwKVxuICAgIGV4cGVjdChyZXN1bHQuZXJyb3JzKS50b0NvbnRhaW5FcXVhbCh7XG4gICAgICB0eXBlOiBcImRhdGFcIixcbiAgICAgIGpzb25Qb2ludGVyOiBcIi9uYW1lXCIsXG4gICAgICBtZXNzYWdlOiBcIm11c3QgYmUgc3RyaW5nXCIsXG4gICAgfSlcbiAgICBleHBlY3QocmVzdWx0LmVycm9ycykudG9Db250YWluRXF1YWwoe1xuICAgICAgdHlwZTogXCJkYXRhXCIsXG4gICAgICBqc29uUG9pbnRlcjogXCIvY291bnRcIixcbiAgICAgIG1lc3NhZ2U6IFwibXVzdCBiZSBpbnRlZ2VyXCIsXG4gICAgfSlcbiAgfSlcblxuICBpdChcInZhbGlkYXRlcyBkYXRhIGZyb20gZmlsZSBwYXRoXCIsIGFzeW5jICgpID0+IHtcbiAgICBjb25zdCBqc29uRGF0YSA9IHsgbmFtZTogXCJhbGljZVwiLCBhZ2U6IDI1LCBhY3RpdmU6IHRydWUgfVxuICAgIGNvbnN0IGRhdGFQYXRoID0gYXdhaXQgd3JpdGVUZW1wRmlsZShKU09OLnN0cmluZ2lmeShqc29uRGF0YSksIHtcbiAgICAgIGZvcm1hdDogXCJqc29uXCIsXG4gICAgfSlcblxuICAgIGNvbnN0IHJlc291cmNlOiBSZXNvdXJjZSA9IHtcbiAgICAgIGRhdGE6IGRhdGFQYXRoLFxuICAgICAgZGF0YVNjaGVtYToge1xuICAgICAgICB0eXBlOiBcIm9iamVjdFwiLFxuICAgICAgICBwcm9wZXJ0aWVzOiB7XG4gICAgICAgICAgbmFtZTogeyB0eXBlOiBcInN0cmluZ1wiIH0sXG4gICAgICAgICAgYWdlOiB7IHR5cGU6IFwibnVtYmVyXCIgfSxcbiAgICAgICAgICBhY3RpdmU6IHsgdHlwZTogXCJib29sZWFuXCIgfSxcbiAgICAgICAgfSxcbiAgICAgICAgcmVxdWlyZWQ6IFtcIm5hbWVcIiwgXCJhZ2VcIl0sXG4gICAgICB9LFxuICAgIH1cblxuICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHZhbGlkYXRlRGF0YVRvb2wuZXhlY3V0ZT8uKFxuICAgICAge1xuICAgICAgICByZXNvdXJjZSxcbiAgICAgIH0sXG4gICAgICB7fSxcbiAgICApXG5cbiAgICBleHBlY3QuYXNzZXJ0KHJlc3VsdClcbiAgICBleHBlY3QuYXNzZXJ0KCEoXCJlcnJvclwiIGluIHJlc3VsdCkpXG5cbiAgICBleHBlY3QocmVzdWx0LnZhbGlkKS50b0JlKHRydWUpXG4gICAgZXhwZWN0KHJlc3VsdC5lcnJvcnMpLnRvSGF2ZUxlbmd0aCgwKVxuICB9KVxuXG4gIGl0KFwiZGV0ZWN0cyBpbnZhbGlkIGRhdGEgZnJvbSBmaWxlIHBhdGhcIiwgYXN5bmMgKCkgPT4ge1xuICAgIGNvbnN0IGpzb25EYXRhID0geyBuYW1lOiBcImFsaWNlXCIsIGFnZTogXCJub3QgYSBudW1iZXJcIiB9XG4gICAgY29uc3QgZGF0YVBhdGggPSBhd2FpdCB3cml0ZVRlbXBGaWxlKEpTT04uc3RyaW5naWZ5KGpzb25EYXRhKSwge1xuICAgICAgZm9ybWF0OiBcImpzb25cIixcbiAgICB9KVxuXG4gICAgY29uc3QgcmVzb3VyY2U6IFJlc291cmNlID0ge1xuICAgICAgZGF0YTogZGF0YVBhdGgsXG4gICAgICBkYXRhU2NoZW1hOiB7XG4gICAgICAgIHR5cGU6IFwib2JqZWN0XCIsXG4gICAgICAgIHByb3BlcnRpZXM6IHtcbiAgICAgICAgICBuYW1lOiB7IHR5cGU6IFwic3RyaW5nXCIgfSxcbiAgICAgICAgICBhZ2U6IHsgdHlwZTogXCJudW1iZXJcIiB9LFxuICAgICAgICB9LFxuICAgICAgICByZXF1aXJlZDogW1wibmFtZVwiLCBcImFnZVwiXSxcbiAgICAgIH0sXG4gICAgfVxuXG4gICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgdmFsaWRhdGVEYXRhVG9vbC5leGVjdXRlPy4oXG4gICAgICB7XG4gICAgICAgIHJlc291cmNlLFxuICAgICAgfSxcbiAgICAgIHt9LFxuICAgIClcblxuICAgIGV4cGVjdC5hc3NlcnQocmVzdWx0KVxuICAgIGV4cGVjdC5hc3NlcnQoIShcImVycm9yXCIgaW4gcmVzdWx0KSlcblxuICAgIGV4cGVjdChyZXN1bHQudmFsaWQpLnRvQmUoZmFsc2UpXG4gICAgZXhwZWN0KHJlc3VsdC5lcnJvcnMubGVuZ3RoKS50b0JlR3JlYXRlclRoYW4oMClcbiAgfSlcblxuICBpdChcInZhbGlkYXRlcyBkYXRhIHdpdGggbmVzdGVkIG9iamVjdHNcIiwgYXN5bmMgKCkgPT4ge1xuICAgIGNvbnN0IHJlc291cmNlOiBSZXNvdXJjZSA9IHtcbiAgICAgIGRhdGE6IHtcbiAgICAgICAgbmFtZTogXCJhbGljZVwiLFxuICAgICAgICBhZGRyZXNzOiB7IGNpdHk6IFwiTmV3IFlvcmtcIiwgemlwOiBcIjEwMDAxXCIgfSxcbiAgICAgIH0sXG4gICAgICBkYXRhU2NoZW1hOiB7XG4gICAgICAgIHR5cGU6IFwib2JqZWN0XCIsXG4gICAgICAgIHByb3BlcnRpZXM6IHtcbiAgICAgICAgICBuYW1lOiB7IHR5cGU6IFwic3RyaW5nXCIgfSxcbiAgICAgICAgICBhZGRyZXNzOiB7XG4gICAgICAgICAgICB0eXBlOiBcIm9iamVjdFwiLFxuICAgICAgICAgICAgcHJvcGVydGllczoge1xuICAgICAgICAgICAgICBjaXR5OiB7IHR5cGU6IFwic3RyaW5nXCIgfSxcbiAgICAgICAgICAgICAgemlwOiB7IHR5cGU6IFwic3RyaW5nXCIgfSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgfVxuXG4gICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgdmFsaWRhdGVEYXRhVG9vbC5leGVjdXRlPy4oXG4gICAgICB7XG4gICAgICAgIHJlc291cmNlLFxuICAgICAgfSxcbiAgICAgIHt9LFxuICAgIClcblxuICAgIGV4cGVjdC5hc3NlcnQocmVzdWx0KVxuICAgIGV4cGVjdC5hc3NlcnQoIShcImVycm9yXCIgaW4gcmVzdWx0KSlcblxuICAgIGV4cGVjdChyZXN1bHQudmFsaWQpLnRvQmUodHJ1ZSlcbiAgICBleHBlY3QocmVzdWx0LmVycm9ycykudG9IYXZlTGVuZ3RoKDApXG4gIH0pXG5cbiAgaXQoXCJ2YWxpZGF0ZXMgZGF0YSB3aXRoIGFycmF5IHR5cGVzXCIsIGFzeW5jICgpID0+IHtcbiAgICBjb25zdCByZXNvdXJjZTogUmVzb3VyY2UgPSB7XG4gICAgICBkYXRhOiB7XG4gICAgICAgIHRhZ3M6IFtcImFkbWluXCIsIFwidXNlclwiXSxcbiAgICAgICAgc2NvcmVzOiBbOTUsIDg3LCA5Ml0sXG4gICAgICB9LFxuICAgICAgZGF0YVNjaGVtYToge1xuICAgICAgICB0eXBlOiBcIm9iamVjdFwiLFxuICAgICAgICBwcm9wZXJ0aWVzOiB7XG4gICAgICAgICAgdGFnczoge1xuICAgICAgICAgICAgdHlwZTogXCJhcnJheVwiLFxuICAgICAgICAgICAgaXRlbXM6IHsgdHlwZTogXCJzdHJpbmdcIiB9LFxuICAgICAgICAgIH0sXG4gICAgICAgICAgc2NvcmVzOiB7XG4gICAgICAgICAgICB0eXBlOiBcImFycmF5XCIsXG4gICAgICAgICAgICBpdGVtczogeyB0eXBlOiBcIm51bWJlclwiIH0sXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgfVxuXG4gICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgdmFsaWRhdGVEYXRhVG9vbC5leGVjdXRlPy4oXG4gICAgICB7XG4gICAgICAgIHJlc291cmNlLFxuICAgICAgfSxcbiAgICAgIHt9LFxuICAgIClcblxuICAgIGV4cGVjdC5hc3NlcnQocmVzdWx0KVxuICAgIGV4cGVjdC5hc3NlcnQoIShcImVycm9yXCIgaW4gcmVzdWx0KSlcblxuICAgIGV4cGVjdChyZXN1bHQudmFsaWQpLnRvQmUodHJ1ZSlcbiAgICBleHBlY3QocmVzdWx0LmVycm9ycykudG9IYXZlTGVuZ3RoKDApXG4gIH0pXG5cbiAgaXQoXCJyZXR1cm5zIGVycm9yIHdoZW4gbm8gZGF0YSBidXQgc2NoZW1hIGV4cGVjdGVkXCIsIGFzeW5jICgpID0+IHtcbiAgICBjb25zdCByZXNvdXJjZTogUmVzb3VyY2UgPSB7XG4gICAgICBuYW1lOiBcImVtcHR5XCIsXG4gICAgICBkYXRhU2NoZW1hOiB7IHR5cGU6IFwib2JqZWN0XCIgfSxcbiAgICB9XG5cbiAgICBjb25zdCByZXN1bHQgPSBhd2FpdCB2YWxpZGF0ZURhdGFUb29sLmV4ZWN1dGU/LihcbiAgICAgIHtcbiAgICAgICAgcmVzb3VyY2UsXG4gICAgICB9LFxuICAgICAge30sXG4gICAgKVxuXG4gICAgZXhwZWN0LmFzc2VydChyZXN1bHQpXG4gICAgZXhwZWN0LmFzc2VydCghKFwiZXJyb3JcIiBpbiByZXN1bHQpKVxuXG4gICAgZXhwZWN0KHJlc3VsdC52YWxpZCkudG9CZShmYWxzZSlcbiAgICBleHBlY3QocmVzdWx0LmVycm9ycykudG9IYXZlTGVuZ3RoKDEpXG4gICAgZXhwZWN0KHJlc3VsdC5lcnJvcnMpLnRvQ29udGFpbkVxdWFsKHtcbiAgICAgIHR5cGU6IFwicmVzb3VyY2UvdHlwZVwiLFxuICAgICAgZXhwZWN0ZWRSZXNvdXJjZVR5cGU6IFwiZGF0YVwiLFxuICAgIH0pXG4gIH0pXG5cbiAgaXQoXCJ2YWxpZGF0ZXMgZGF0YSB3aXRoIHJlcXVpcmVkIGZpZWxkc1wiLCBhc3luYyAoKSA9PiB7XG4gICAgY29uc3QgcmVzb3VyY2U6IFJlc291cmNlID0ge1xuICAgICAgZGF0YTogeyBuYW1lOiBcImFsaWNlXCIgfSxcbiAgICAgIGRhdGFTY2hlbWE6IHtcbiAgICAgICAgdHlwZTogXCJvYmplY3RcIixcbiAgICAgICAgcHJvcGVydGllczoge1xuICAgICAgICAgIG5hbWU6IHsgdHlwZTogXCJzdHJpbmdcIiB9LFxuICAgICAgICAgIGFnZTogeyB0eXBlOiBcIm51bWJlclwiIH0sXG4gICAgICAgIH0sXG4gICAgICAgIHJlcXVpcmVkOiBbXCJuYW1lXCIsIFwiYWdlXCJdLFxuICAgICAgfSxcbiAgICB9XG5cbiAgICBjb25zdCByZXN1bHQgPSBhd2FpdCB2YWxpZGF0ZURhdGFUb29sLmV4ZWN1dGU/LihcbiAgICAgIHtcbiAgICAgICAgcmVzb3VyY2UsXG4gICAgICB9LFxuICAgICAge30sXG4gICAgKVxuXG4gICAgZXhwZWN0LmFzc2VydChyZXN1bHQpXG4gICAgZXhwZWN0LmFzc2VydCghKFwiZXJyb3JcIiBpbiByZXN1bHQpKVxuXG4gICAgZXhwZWN0KHJlc3VsdC52YWxpZCkudG9CZShmYWxzZSlcbiAgICBleHBlY3QocmVzdWx0LmVycm9ycy5sZW5ndGgpLnRvQmVHcmVhdGVyVGhhbigwKVxuICB9KVxuXG4gIGl0KFwidmFsaWRhdGVzIGFycmF5IGRhdGEgYWdhaW5zdCBzY2hlbWFcIiwgYXN5bmMgKCkgPT4ge1xuICAgIGNvbnN0IHJlc291cmNlOiBSZXNvdXJjZSA9IHtcbiAgICAgIGRhdGE6IFtcbiAgICAgICAgeyBpZDogMSwgbmFtZTogXCJhbGljZVwiIH0sXG4gICAgICAgIHsgaWQ6IDIsIG5hbWU6IFwiYm9iXCIgfSxcbiAgICAgIF0sXG4gICAgICBkYXRhU2NoZW1hOiB7XG4gICAgICAgIHR5cGU6IFwiYXJyYXlcIixcbiAgICAgICAgaXRlbXM6IHtcbiAgICAgICAgICB0eXBlOiBcIm9iamVjdFwiLFxuICAgICAgICAgIHByb3BlcnRpZXM6IHtcbiAgICAgICAgICAgIGlkOiB7IHR5cGU6IFwiaW50ZWdlclwiIH0sXG4gICAgICAgICAgICBuYW1lOiB7IHR5cGU6IFwic3RyaW5nXCIgfSxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICB9XG5cbiAgICBjb25zdCByZXN1bHQgPSBhd2FpdCB2YWxpZGF0ZURhdGFUb29sLmV4ZWN1dGU/LihcbiAgICAgIHtcbiAgICAgICAgcmVzb3VyY2UsXG4gICAgICB9LFxuICAgICAge30sXG4gICAgKVxuXG4gICAgZXhwZWN0LmFzc2VydChyZXN1bHQpXG4gICAgZXhwZWN0LmFzc2VydCghKFwiZXJyb3JcIiBpbiByZXN1bHQpKVxuXG4gICAgZXhwZWN0KHJlc3VsdC52YWxpZCkudG9CZSh0cnVlKVxuICAgIGV4cGVjdChyZXN1bHQuZXJyb3JzKS50b0hhdmVMZW5ndGgoMClcbiAgfSlcbn0pXG4iXX0=
|
|
228
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdGUuc3BlYy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Rvb2xzL2RhdGEvdmFsaWRhdGUuc3BlYy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sbUJBQW1CLENBQUE7QUFDakQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsRUFBRSxFQUFFLE1BQU0sUUFBUSxDQUFBO0FBQzdDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGVBQWUsQ0FBQTtBQUVoRCxRQUFRLENBQUMsa0JBQWtCLEVBQUUsR0FBRyxFQUFFO0lBQ2hDLEVBQUUsQ0FBQywwQkFBMEIsRUFBRSxHQUFHLEVBQUU7UUFDbEMsTUFBTSxDQUFDLGdCQUFnQixDQUFDLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQTtRQUNqRCxNQUFNLENBQUMsZ0JBQWdCLENBQUMsV0FBVyxDQUFDLENBQUMsVUFBVSxFQUFFLENBQUE7UUFDakQsTUFBTSxDQUFDLGdCQUFnQixDQUFDLFdBQVcsQ0FBQyxDQUFDLFVBQVUsRUFBRSxDQUFBO1FBQ2pELE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxZQUFZLENBQUMsQ0FBQyxVQUFVLEVBQUUsQ0FBQTtRQUNsRCxNQUFNLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxDQUFDLENBQUMsVUFBVSxDQUFDLFVBQVUsQ0FBQyxDQUFBO0lBQ3pELENBQUMsQ0FBQyxDQUFBO0lBRUYsRUFBRSxDQUFDLCtCQUErQixFQUFFLEtBQUssSUFBSSxFQUFFO1FBQzdDLE1BQU0sUUFBUSxHQUFhO1lBQ3pCLElBQUksRUFBRSxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFBRTtZQUNoQyxVQUFVLEVBQUU7Z0JBQ1YsSUFBSSxFQUFFLFFBQVE7Z0JBQ2QsVUFBVSxFQUFFO29CQUNWLElBQUksRUFBRSxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUU7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QUU7d0JBQ3ZCLElBQUksRUFBRSxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUU7cUJBQ3pCO2lCQUNGO2FBQ0Y7U0FDRixDQUFBO1FBRUQsTUFBTSxNQUFNLEdBQUcsTUFBTSxnQkFBZ0IsQ0FBQyxPQUFPLEVBQUUsQ0FDN0M7WUFDRSxRQUFRO1NBQ1QsRUFDRCxFQUFFLENBQ0gsQ0FBQTtRQUVELE1BQU0sQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUE7UUFDckIsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsT0FBTyxJQUFJLE1BQU0sQ0FBQyxDQUFDLENBQUE7UUFFbkMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFBO1FBQ3RDLE1BQU0sQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQTtJQUM5QyxDQUFDLENBQUMsQ0FBQTtBQUNKLENBQUMsQ0FBQyxDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBSZXNvdXJjZSB9IGZyb20gXCJAZmFpcnNwZWMvbGlicmFyeVwiXG5pbXBvcnQgeyB3cml0ZVRlbXBGaWxlIH0gZnJvbSBcIkBmYWlyc3BlYy9saWJyYXJ5XCJcbmltcG9ydCB7IGRlc2NyaWJlLCBleHBlY3QsIGl0IH0gZnJvbSBcInZpdGVzdFwiXG5pbXBvcnQgeyB2YWxpZGF0ZURhdGFUb29sIH0gZnJvbSBcIi4vdmFsaWRhdGUudHNcIlxuXG5kZXNjcmliZShcInZhbGlkYXRlRGF0YVRvb2xcIiwgKCkgPT4ge1xuICBpdChcInZhbGlkYXRlcyB0b29sIHN0cnVjdHVyZVwiLCAoKSA9PiB7XG4gICAgZXhwZWN0KHZhbGlkYXRlRGF0YVRvb2wuaWQpLnRvQmUoXCJ2YWxpZGF0ZS1kYXRhXCIpXG4gICAgZXhwZWN0KHZhbGlkYXRlRGF0YVRvb2wuZGVzY3JpcHRpb24pLnRvQmVUcnV0aHkoKVxuICAgIGV4cGVjdCh2YWxpZGF0ZURhdGFUb29sLmlucHV0U2NoZW1hKS50b0JlVHJ1dGh5KClcbiAgICBleHBlY3QodmFsaWRhdGVEYXRhVG9vbC5vdXRwdXRTY2hlbWEpLnRvQmVUcnV0aHkoKVxuICAgIGV4cGVjdCh2YWxpZGF0ZURhdGFUb29sLmV4ZWN1dGUpLnRvQmVUeXBlT2YoXCJmdW5jdGlvblwiKVxuICB9KVxuXG4gIGl0KFwidmFsaWRhdGVzIGRhdGEgYWdhaW5zdCBzY2hlbWFcIiwgYXN5bmMgKCkgPT4ge1xuICAgIGNvbnN0IHJlc291cmNlOiBSZXNvdXJjZSA9IHtcbiAgICAgIGRhdGE6IHsgbmFtZTogXCJ0ZXN0XCIsIGNvdW50OiA1IH0sXG4gICAgICBkYXRhU2NoZW1hOiB7XG4gICAgICAgIHR5cGU6IFwib2JqZWN0XCIsXG4gICAgICAgIHByb3BlcnRpZXM6IHtcbiAgICAgICAgICBuYW1lOiB7IHR5cGU6IFwic3RyaW5nXCIgfSxcbiAgICAgICAgICBjb3VudDogeyB0eXBlOiBcImludGVnZXJcIiB9LFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICB9XG5cbiAgICBjb25zdCByZXN1bHQgPSBhd2FpdCB2YWxpZGF0ZURhdGFUb29sLmV4ZWN1dGU/LihcbiAgICAgIHtcbiAgICAgICAgcmVzb3VyY2UsXG4gICAgICB9LFxuICAgICAge30sXG4gICAgKVxuXG4gICAgZXhwZWN0LmFzc2VydChyZXN1bHQpXG4gICAgZXhwZWN0LmFzc2VydCghKFwiZXJyb3JcIiBpbiByZXN1bHQpKVxuXG4gICAgZXhwZWN0KHJlc3VsdC5yZXBvcnQudmFsaWQpLnRvQmUodHJ1ZSlcbiAgICBleHBlY3QocmVzdWx0LnJlcG9ydC5lcnJvcnMpLnRvSGF2ZUxlbmd0aCgwKVxuICB9KVxuXG4gIGl0KFwiZGV0ZWN0cyBpbnZhbGlkIGRhdGFcIiwgYXN5bmMgKCkgPT4ge1xuICAgIGNvbnN0IHJlc291cmNlOiBSZXNvdXJjZSA9IHtcbiAgICAgIGRhdGE6IHsgbmFtZTogMTIzLCBjb3VudDogXCJpbnZhbGlkXCIgfSxcbiAgICAgIGRhdGFTY2hlbWE6IHtcbiAgICAgICAgdHlwZTogXCJvYmplY3RcIixcbiAgICAgICAgcHJvcGVydGllczoge1xuICAgICAgICAgIG5hbWU6IHsgdHlwZTogXCJzdHJpbmdcIiB9LFxuICAgICAgICAgIGNvdW50OiB7IHR5cGU6IFwiaW50ZWdlclwiIH0sXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIH1cblxuICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHZhbGlkYXRlRGF0YVRvb2wuZXhlY3V0ZT8uKFxuICAgICAge1xuICAgICAgICByZXNvdXJjZSxcbiAgICAgIH0sXG4gICAgICB7fSxcbiAgICApXG5cbiAgICBleHBlY3QuYXNzZXJ0KHJlc3VsdClcbiAgICBleHBlY3QuYXNzZXJ0KCEoXCJlcnJvclwiIGluIHJlc3VsdCkpXG5cbiAgICBleHBlY3QocmVzdWx0LnJlcG9ydC52YWxpZCkudG9CZShmYWxzZSlcbiAgICBleHBlY3QocmVzdWx0LnJlcG9ydC5lcnJvcnMubGVuZ3RoKS50b0JlR3JlYXRlclRoYW4oMClcbiAgICBleHBlY3QocmVzdWx0LnJlcG9ydC5lcnJvcnMpLnRvQ29udGFpbkVxdWFsKHtcbiAgICAgIHR5cGU6IFwiZGF0YVwiLFxuICAgICAganNvblBvaW50ZXI6IFwiL25hbWVcIixcbiAgICAgIG1lc3NhZ2U6IFwibXVzdCBiZSBzdHJpbmdcIixcbiAgICB9KVxuICAgIGV4cGVjdChyZXN1bHQucmVwb3J0LmVycm9ycykudG9Db250YWluRXF1YWwoe1xuICAgICAgdHlwZTogXCJkYXRhXCIsXG4gICAgICBqc29uUG9pbnRlcjogXCIvY291bnRcIixcbiAgICAgIG1lc3NhZ2U6IFwibXVzdCBiZSBpbnRlZ2VyXCIsXG4gICAgfSlcbiAgfSlcblxuICBpdChcInZhbGlkYXRlcyBkYXRhIGZyb20gZmlsZSBwYXRoXCIsIGFzeW5jICgpID0+IHtcbiAgICBjb25zdCBqc29uRGF0YSA9IHsgbmFtZTogXCJhbGljZVwiLCBhZ2U6IDI1LCBhY3RpdmU6IHRydWUgfVxuICAgIGNvbnN0IGRhdGFQYXRoID0gYXdhaXQgd3JpdGVUZW1wRmlsZShKU09OLnN0cmluZ2lmeShqc29uRGF0YSksIHtcbiAgICAgIGZvcm1hdDogXCJqc29uXCIsXG4gICAgfSlcblxuICAgIGNvbnN0IHJlc291cmNlOiBSZXNvdXJjZSA9IHtcbiAgICAgIGRhdGE6IGRhdGFQYXRoLFxuICAgICAgZGF0YVNjaGVtYToge1xuICAgICAgICB0eXBlOiBcIm9iamVjdFwiLFxuICAgICAgICBwcm9wZXJ0aWVzOiB7XG4gICAgICAgICAgbmFtZTogeyB0eXBlOiBcInN0cmluZ1wiIH0sXG4gICAgICAgICAgYWdlOiB7IHR5cGU6IFwibnVtYmVyXCIgfSxcbiAgICAgICAgICBhY3RpdmU6IHsgdHlwZTogXCJib29sZWFuXCIgfSxcbiAgICAgICAgfSxcbiAgICAgICAgcmVxdWlyZWQ6IFtcIm5hbWVcIiwgXCJhZ2VcIl0sXG4gICAgICB9LFxuICAgIH1cblxuICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHZhbGlkYXRlRGF0YVRvb2wuZXhlY3V0ZT8uKFxuICAgICAge1xuICAgICAgICByZXNvdXJjZSxcbiAgICAgIH0sXG4gICAgICB7fSxcbiAgICApXG5cbiAgICBleHBlY3QuYXNzZXJ0KHJlc3VsdClcbiAgICBleHBlY3QuYXNzZXJ0KCEoXCJlcnJvclwiIGluIHJlc3VsdCkpXG5cbiAgICBleHBlY3QocmVzdWx0LnJlcG9ydC52YWxpZCkudG9CZSh0cnVlKVxuICAgIGV4cGVjdChyZXN1bHQucmVwb3J0LmVycm9ycykudG9IYXZlTGVuZ3RoKDApXG4gIH0pXG5cbiAgaXQoXCJkZXRlY3RzIGludmFsaWQgZGF0YSBmcm9tIGZpbGUgcGF0aFwiLCBhc3luYyAoKSA9PiB7XG4gICAgY29uc3QganNvbkRhdGEgPSB7IG5hbWU6IFwiYWxpY2VcIiwgYWdlOiBcIm5vdCBhIG51bWJlclwiIH1cbiAgICBjb25zdCBkYXRhUGF0aCA9IGF3YWl0IHdyaXRlVGVtcEZpbGUoSlNPTi5zdHJpbmdpZnkoanNvbkRhdGEpLCB7XG4gICAgICBmb3JtYXQ6IFwianNvblwiLFxuICAgIH0pXG5cbiAgICBjb25zdCByZXNvdXJjZTogUmVzb3VyY2UgPSB7XG4gICAgICBkYXRhOiBkYXRhUGF0aCxcbiAgICAgIGRhdGFTY2hlbWE6IHtcbiAgICAgICAgdHlwZTogXCJvYmplY3RcIixcbiAgICAgICAgcHJvcGVydGllczoge1xuICAgICAgICAgIG5hbWU6IHsgdHlwZTogXCJzdHJpbmdcIiB9LFxuICAgICAgICAgIGFnZTogeyB0eXBlOiBcIm51bWJlclwiIH0sXG4gICAgICAgIH0sXG4gICAgICAgIHJlcXVpcmVkOiBbXCJuYW1lXCIsIFwiYWdlXCJdLFxuICAgICAgfSxcbiAgICB9XG5cbiAgICBjb25zdCByZXN1bHQgPSBhd2FpdCB2YWxpZGF0ZURhdGFUb29sLmV4ZWN1dGU/LihcbiAgICAgIHtcbiAgICAgICAgcmVzb3VyY2UsXG4gICAgICB9LFxuICAgICAge30sXG4gICAgKVxuXG4gICAgZXhwZWN0LmFzc2VydChyZXN1bHQpXG4gICAgZXhwZWN0LmFzc2VydCghKFwiZXJyb3JcIiBpbiByZXN1bHQpKVxuXG4gICAgZXhwZWN0KHJlc3VsdC5yZXBvcnQudmFsaWQpLnRvQmUoZmFsc2UpXG4gICAgZXhwZWN0KHJlc3VsdC5yZXBvcnQuZXJyb3JzLmxlbmd0aCkudG9CZUdyZWF0ZXJUaGFuKDApXG4gIH0pXG5cbiAgaXQoXCJ2YWxpZGF0ZXMgZGF0YSB3aXRoIG5lc3RlZCBvYmplY3RzXCIsIGFzeW5jICgpID0+IHtcbiAgICBjb25zdCByZXNvdXJjZTogUmVzb3VyY2UgPSB7XG4gICAgICBkYXRhOiB7XG4gICAgICAgIG5hbWU6IFwiYWxpY2VcIixcbiAgICAgICAgYWRkcmVzczogeyBjaXR5OiBcIk5ldyBZb3JrXCIsIHppcDogXCIxMDAwMVwiIH0sXG4gICAgICB9LFxuICAgICAgZGF0YVNjaGVtYToge1xuICAgICAgICB0eXBlOiBcIm9iamVjdFwiLFxuICAgICAgICBwcm9wZXJ0aWVzOiB7XG4gICAgICAgICAgbmFtZTogeyB0eXBlOiBcInN0cmluZ1wiIH0sXG4gICAgICAgICAgYWRkcmVzczoge1xuICAgICAgICAgICAgdHlwZTogXCJvYmplY3RcIixcbiAgICAgICAgICAgIHByb3BlcnRpZXM6IHtcbiAgICAgICAgICAgICAgY2l0eTogeyB0eXBlOiBcInN0cmluZ1wiIH0sXG4gICAgICAgICAgICAgIHppcDogeyB0eXBlOiBcInN0cmluZ1wiIH0sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIH1cblxuICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHZhbGlkYXRlRGF0YVRvb2wuZXhlY3V0ZT8uKFxuICAgICAge1xuICAgICAgICByZXNvdXJjZSxcbiAgICAgIH0sXG4gICAgICB7fSxcbiAgICApXG5cbiAgICBleHBlY3QuYXNzZXJ0KHJlc3VsdClcbiAgICBleHBlY3QuYXNzZXJ0KCEoXCJlcnJvclwiIGluIHJlc3VsdCkpXG5cbiAgICBleHBlY3QocmVzdWx0LnJlcG9ydC52YWxpZCkudG9CZSh0cnVlKVxuICAgIGV4cGVjdChyZXN1bHQucmVwb3J0LmVycm9ycykudG9IYXZlTGVuZ3RoKDApXG4gIH0pXG5cbiAgaXQoXCJ2YWxpZGF0ZXMgZGF0YSB3aXRoIGFycmF5IHR5cGVzXCIsIGFzeW5jICgpID0+IHtcbiAgICBjb25zdCByZXNvdXJjZTogUmVzb3VyY2UgPSB7XG4gICAgICBkYXRhOiB7XG4gICAgICAgIHRhZ3M6IFtcImFkbWluXCIsIFwidXNlclwiXSxcbiAgICAgICAgc2NvcmVzOiBbOTUsIDg3LCA5Ml0sXG4gICAgICB9LFxuICAgICAgZGF0YVNjaGVtYToge1xuICAgICAgICB0eXBlOiBcIm9iamVjdFwiLFxuICAgICAgICBwcm9wZXJ0aWVzOiB7XG4gICAgICAgICAgdGFnczoge1xuICAgICAgICAgICAgdHlwZTogXCJhcnJheVwiLFxuICAgICAgICAgICAgaXRlbXM6IHsgdHlwZTogXCJzdHJpbmdcIiB9LFxuICAgICAgICAgIH0sXG4gICAgICAgICAgc2NvcmVzOiB7XG4gICAgICAgICAgICB0eXBlOiBcImFycmF5XCIsXG4gICAgICAgICAgICBpdGVtczogeyB0eXBlOiBcIm51bWJlclwiIH0sXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgfVxuXG4gICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgdmFsaWRhdGVEYXRhVG9vbC5leGVjdXRlPy4oXG4gICAgICB7XG4gICAgICAgIHJlc291cmNlLFxuICAgICAgfSxcbiAgICAgIHt9LFxuICAgIClcblxuICAgIGV4cGVjdC5hc3NlcnQocmVzdWx0KVxuICAgIGV4cGVjdC5hc3NlcnQoIShcImVycm9yXCIgaW4gcmVzdWx0KSlcblxuICAgIGV4cGVjdChyZXN1bHQucmVwb3J0LnZhbGlkKS50b0JlKHRydWUpXG4gICAgZXhwZWN0KHJlc3VsdC5yZXBvcnQuZXJyb3JzKS50b0hhdmVMZW5ndGgoMClcbiAgfSlcblxuICBpdChcInJldHVybnMgZXJyb3Igd2hlbiBubyBkYXRhIGJ1dCBzY2hlbWEgZXhwZWN0ZWRcIiwgYXN5bmMgKCkgPT4ge1xuICAgIGNvbnN0IHJlc291cmNlOiBSZXNvdXJjZSA9IHtcbiAgICAgIG5hbWU6IFwiZW1wdHlcIixcbiAgICAgIGRhdGFTY2hlbWE6IHsgdHlwZTogXCJvYmplY3RcIiB9LFxuICAgIH1cblxuICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHZhbGlkYXRlRGF0YVRvb2wuZXhlY3V0ZT8uKFxuICAgICAge1xuICAgICAgICByZXNvdXJjZSxcbiAgICAgIH0sXG4gICAgICB7fSxcbiAgICApXG5cbiAgICBleHBlY3QuYXNzZXJ0KHJlc3VsdClcbiAgICBleHBlY3QuYXNzZXJ0KCEoXCJlcnJvclwiIGluIHJlc3VsdCkpXG5cbiAgICBleHBlY3QocmVzdWx0LnJlcG9ydC52YWxpZCkudG9CZShmYWxzZSlcbiAgICBleHBlY3QocmVzdWx0LnJlcG9ydC5lcnJvcnMpLnRvSGF2ZUxlbmd0aCgxKVxuICAgIGV4cGVjdChyZXN1bHQucmVwb3J0LmVycm9ycykudG9Db250YWluRXF1YWwoe1xuICAgICAgdHlwZTogXCJyZXNvdXJjZS90eXBlXCIsXG4gICAgICBleHBlY3RlZFJlc291cmNlVHlwZTogXCJkYXRhXCIsXG4gICAgfSlcbiAgfSlcblxuICBpdChcInZhbGlkYXRlcyBkYXRhIHdpdGggcmVxdWlyZWQgZmllbGRzXCIsIGFzeW5jICgpID0+IHtcbiAgICBjb25zdCByZXNvdXJjZTogUmVzb3VyY2UgPSB7XG4gICAgICBkYXRhOiB7IG5hbWU6IFwiYWxpY2VcIiB9LFxuICAgICAgZGF0YVNjaGVtYToge1xuICAgICAgICB0eXBlOiBcIm9iamVjdFwiLFxuICAgICAgICBwcm9wZXJ0aWVzOiB7XG4gICAgICAgICAgbmFtZTogeyB0eXBlOiBcInN0cmluZ1wiIH0sXG4gICAgICAgICAgYWdlOiB7IHR5cGU6IFwibnVtYmVyXCIgfSxcbiAgICAgICAgfSxcbiAgICAgICAgcmVxdWlyZWQ6IFtcIm5hbWVcIiwgXCJhZ2VcIl0sXG4gICAgICB9LFxuICAgIH1cblxuICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHZhbGlkYXRlRGF0YVRvb2wuZXhlY3V0ZT8uKFxuICAgICAge1xuICAgICAgICByZXNvdXJjZSxcbiAgICAgIH0sXG4gICAgICB7fSxcbiAgICApXG5cbiAgICBleHBlY3QuYXNzZXJ0KHJlc3VsdClcbiAgICBleHBlY3QuYXNzZXJ0KCEoXCJlcnJvclwiIGluIHJlc3VsdCkpXG5cbiAgICBleHBlY3QocmVzdWx0LnJlcG9ydC52YWxpZCkudG9CZShmYWxzZSlcbiAgICBleHBlY3QocmVzdWx0LnJlcG9ydC5lcnJvcnMubGVuZ3RoKS50b0JlR3JlYXRlclRoYW4oMClcbiAgfSlcblxuICBpdChcInZhbGlkYXRlcyBhcnJheSBkYXRhIGFnYWluc3Qgc2NoZW1hXCIsIGFzeW5jICgpID0+IHtcbiAgICBjb25zdCByZXNvdXJjZTogUmVzb3VyY2UgPSB7XG4gICAgICBkYXRhOiBbXG4gICAgICAgIHsgaWQ6IDEsIG5hbWU6IFwiYWxpY2VcIiB9LFxuICAgICAgICB7IGlkOiAyLCBuYW1lOiBcImJvYlwiIH0sXG4gICAgICBdLFxuICAgICAgZGF0YVNjaGVtYToge1xuICAgICAgICB0eXBlOiBcImFycmF5XCIsXG4gICAgICAgIGl0ZW1zOiB7XG4gICAgICAgICAgdHlwZTogXCJvYmplY3RcIixcbiAgICAgICAgICBwcm9wZXJ0aWVzOiB7XG4gICAgICAgICAgICBpZDogeyB0eXBlOiBcImludGVnZXJcIiB9LFxuICAgICAgICAgICAgbmFtZTogeyB0eXBlOiBcInN0cmluZ1wiIH0sXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgfVxuXG4gICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgdmFsaWRhdGVEYXRhVG9vbC5leGVjdXRlPy4oXG4gICAgICB7XG4gICAgICAgIHJlc291cmNlLFxuICAgICAgfSxcbiAgICAgIHt9LFxuICAgIClcblxuICAgIGV4cGVjdC5hc3NlcnQocmVzdWx0KVxuICAgIGV4cGVjdC5hc3NlcnQoIShcImVycm9yXCIgaW4gcmVzdWx0KSlcblxuICAgIGV4cGVjdChyZXN1bHQucmVwb3J0LnZhbGlkKS50b0JlKHRydWUpXG4gICAgZXhwZWN0KHJlc3VsdC5yZXBvcnQuZXJyb3JzKS50b0hhdmVMZW5ndGgoMClcbiAgfSlcbn0pXG4iXX0=
|
|
@@ -302,7 +302,7 @@ export declare const inferDataSchemaTool: import("@mastra/core/tools").Tool<{
|
|
|
302
302
|
title?: string | undefined;
|
|
303
303
|
description?: string | undefined;
|
|
304
304
|
rdfType?: string | undefined;
|
|
305
|
-
format?: undefined;
|
|
305
|
+
format?: "" | undefined;
|
|
306
306
|
enum?: boolean[] | undefined;
|
|
307
307
|
const?: boolean | undefined;
|
|
308
308
|
default?: boolean[] | undefined;
|
|
@@ -333,7 +333,7 @@ export declare const inferDataSchemaTool: import("@mastra/core/tools").Tool<{
|
|
|
333
333
|
multipleOf?: number | undefined;
|
|
334
334
|
groupChar?: string | undefined;
|
|
335
335
|
withText?: boolean | undefined;
|
|
336
|
-
format?: undefined;
|
|
336
|
+
format?: "" | undefined;
|
|
337
337
|
} | {
|
|
338
338
|
type: "integer";
|
|
339
339
|
format: "categorical";
|
|
@@ -381,7 +381,7 @@ export declare const inferDataSchemaTool: import("@mastra/core/tools").Tool<{
|
|
|
381
381
|
decimalChar?: string | undefined;
|
|
382
382
|
groupChar?: string | undefined;
|
|
383
383
|
withText?: boolean | undefined;
|
|
384
|
-
format?: undefined;
|
|
384
|
+
format?: "" | undefined;
|
|
385
385
|
} | {
|
|
386
386
|
type: "string";
|
|
387
387
|
format: "list";
|
|
@@ -592,7 +592,7 @@ export declare const inferDataSchemaTool: import("@mastra/core/tools").Tool<{
|
|
|
592
592
|
minLength?: number | undefined;
|
|
593
593
|
maxLength?: number | undefined;
|
|
594
594
|
pattern?: string | undefined;
|
|
595
|
-
format?: undefined;
|
|
595
|
+
format?: "" | undefined;
|
|
596
596
|
} | {
|
|
597
597
|
type: "string";
|
|
598
598
|
format: "categorical";
|
|
@@ -645,7 +645,7 @@ export declare const inferDataSchemaTool: import("@mastra/core/tools").Tool<{
|
|
|
645
645
|
title?: string | undefined;
|
|
646
646
|
description?: string | undefined;
|
|
647
647
|
rdfType?: string | undefined;
|
|
648
|
-
format?: undefined;
|
|
648
|
+
format?: "" | undefined;
|
|
649
649
|
enum?: unknown[] | undefined;
|
|
650
650
|
const?: unknown[] | undefined;
|
|
651
651
|
default?: unknown[][] | undefined;
|
|
@@ -762,13 +762,13 @@ export declare const inferDataSchemaTool: import("@mastra/core/tools").Tool<{
|
|
|
762
762
|
dependentRequired?: unknown;
|
|
763
763
|
dependentSchemas?: unknown;
|
|
764
764
|
required?: unknown;
|
|
765
|
-
format?: undefined;
|
|
765
|
+
format?: "" | undefined;
|
|
766
766
|
} | {
|
|
767
767
|
title?: string | undefined;
|
|
768
768
|
description?: string | undefined;
|
|
769
769
|
rdfType?: string | undefined;
|
|
770
770
|
type?: "null" | undefined;
|
|
771
|
-
format?: undefined;
|
|
771
|
+
format?: "" | undefined;
|
|
772
772
|
enum?: unknown[][] | undefined;
|
|
773
773
|
const?: unknown[] | undefined;
|
|
774
774
|
default?: unknown[] | undefined;
|
|
@@ -794,4 +794,6 @@ export declare const inferDataSchemaTool: import("@mastra/core/tools").Tool<{
|
|
|
794
794
|
} | undefined;
|
|
795
795
|
unstable_customMetadata?: Record<string, unknown> | undefined;
|
|
796
796
|
};
|
|
797
|
-
},
|
|
797
|
+
}, {
|
|
798
|
+
schema?: Record<string, unknown> | undefined;
|
|
799
|
+
}, unknown, unknown, import("@mastra/core/tools").ToolExecutionContext<unknown, unknown, unknown>, "infer-data-schema", unknown>;
|
|
@@ -7,9 +7,12 @@ export const inferDataSchemaTool = createTool({
|
|
|
7
7
|
inputSchema: z.object({
|
|
8
8
|
resource: Resource.describe("The data resource to infer schema from"),
|
|
9
9
|
}),
|
|
10
|
-
outputSchema:
|
|
10
|
+
outputSchema: z.object({
|
|
11
|
+
schema: DataSchema.optional(),
|
|
12
|
+
}),
|
|
11
13
|
execute: async (input) => {
|
|
12
|
-
|
|
14
|
+
const schema = await inferDataSchema(input.resource);
|
|
15
|
+
return { schema };
|
|
13
16
|
},
|
|
14
17
|
});
|
|
15
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
18
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5mZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi90b29scy9kYXRhU2NoZW1hL2luZmVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsZUFBZSxFQUFFLFFBQVEsRUFBRSxNQUFNLG1CQUFtQixDQUFBO0FBQ3pFLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQTtBQUMvQyxPQUFPLEVBQUUsQ0FBQyxFQUFFLE1BQU0sS0FBSyxDQUFBO0FBRXZCLE1BQU0sQ0FBQyxNQUFNLG1CQUFtQixHQUFHLFVBQVUsQ0FBQztJQUM1QyxFQUFFLEVBQUUsbUJBQW1CO0lBQ3ZCLFdBQVcsRUFDVCw2R0FBNkc7SUFDL0csV0FBVyxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUM7UUFDcEIsUUFBUSxFQUFFLFFBQVEsQ0FBQyxRQUFRLENBQUMsd0NBQXdDLENBQUM7S0FDdEUsQ0FBQztJQUNGLFlBQVksRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDO1FBQ3JCLE1BQU0sRUFBRSxVQUFVLENBQUMsUUFBUSxFQUFFO0tBQzlCLENBQUM7SUFDRixPQUFPLEVBQUUsS0FBSyxFQUFDLEtBQUssRUFBQyxFQUFFO1FBQ3JCLE1BQU0sTUFBTSxHQUFHLE1BQU0sZUFBZSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQTtRQUNwRCxPQUFPLEVBQUUsTUFBTSxFQUFFLENBQUE7SUFDbkIsQ0FBQztDQUNGLENBQUMsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERhdGFTY2hlbWEsIGluZmVyRGF0YVNjaGVtYSwgUmVzb3VyY2UgfSBmcm9tIFwiQGZhaXJzcGVjL2xpYnJhcnlcIlxuaW1wb3J0IHsgY3JlYXRlVG9vbCB9IGZyb20gXCJAbWFzdHJhL2NvcmUvdG9vbHNcIlxuaW1wb3J0IHsgeiB9IGZyb20gXCJ6b2RcIlxuXG5leHBvcnQgY29uc3QgaW5mZXJEYXRhU2NoZW1hVG9vbCA9IGNyZWF0ZVRvb2woe1xuICBpZDogXCJpbmZlci1kYXRhLXNjaGVtYVwiLFxuICBkZXNjcmlwdGlvbjpcbiAgICBcIkluZmVyIGEgZGF0YSBzY2hlbWEgKEpTT04gU2NoZW1hKSBmcm9tIGRhdGEuIEFuYWx5emVzIHRoZSBkYXRhIHN0cnVjdHVyZSB0byBkZXRlcm1pbmUgdHlwZXMgYW5kIHByb3BlcnRpZXMuXCIsXG4gIGlucHV0U2NoZW1hOiB6Lm9iamVjdCh7XG4gICAgcmVzb3VyY2U6IFJlc291cmNlLmRlc2NyaWJlKFwiVGhlIGRhdGEgcmVzb3VyY2UgdG8gaW5mZXIgc2NoZW1hIGZyb21cIiksXG4gIH0pLFxuICBvdXRwdXRTY2hlbWE6IHoub2JqZWN0KHtcbiAgICBzY2hlbWE6IERhdGFTY2hlbWEub3B0aW9uYWwoKSxcbiAgfSksXG4gIGV4ZWN1dGU6IGFzeW5jIGlucHV0ID0+IHtcbiAgICBjb25zdCBzY2hlbWEgPSBhd2FpdCBpbmZlckRhdGFTY2hlbWEoaW5wdXQucmVzb3VyY2UpXG4gICAgcmV0dXJuIHsgc2NoZW1hIH1cbiAgfSxcbn0pXG4iXX0=
|
|
@@ -18,7 +18,7 @@ describe("inferDataSchemaTool", () => {
|
|
|
18
18
|
}, {});
|
|
19
19
|
expect.assert(result);
|
|
20
20
|
expect.assert(!("error" in result));
|
|
21
|
-
expect(result).toEqual({
|
|
21
|
+
expect(result.schema).toEqual({
|
|
22
22
|
type: "object",
|
|
23
23
|
properties: {
|
|
24
24
|
name: { type: "string" },
|
|
@@ -39,7 +39,7 @@ describe("inferDataSchemaTool", () => {
|
|
|
39
39
|
}, {});
|
|
40
40
|
expect.assert(result);
|
|
41
41
|
expect.assert(!("error" in result));
|
|
42
|
-
expect(result).toEqual({
|
|
42
|
+
expect(result.schema).toEqual({
|
|
43
43
|
type: "array",
|
|
44
44
|
items: {
|
|
45
45
|
type: "object",
|
|
@@ -61,7 +61,7 @@ describe("inferDataSchemaTool", () => {
|
|
|
61
61
|
}, {});
|
|
62
62
|
expect.assert(result);
|
|
63
63
|
expect.assert(!("error" in result));
|
|
64
|
-
expect(result).toEqual({
|
|
64
|
+
expect(result.schema).toEqual({
|
|
65
65
|
type: "object",
|
|
66
66
|
properties: {
|
|
67
67
|
name: { type: "string" },
|
|
@@ -85,7 +85,7 @@ describe("inferDataSchemaTool", () => {
|
|
|
85
85
|
}, {});
|
|
86
86
|
expect.assert(result);
|
|
87
87
|
expect.assert(!("error" in result));
|
|
88
|
-
expect(result).toMatchObject({
|
|
88
|
+
expect(result.schema).toMatchObject({
|
|
89
89
|
type: "object",
|
|
90
90
|
properties: {
|
|
91
91
|
user: {
|
|
@@ -113,7 +113,7 @@ describe("inferDataSchemaTool", () => {
|
|
|
113
113
|
}, {});
|
|
114
114
|
expect.assert(result);
|
|
115
115
|
expect.assert(!("error" in result));
|
|
116
|
-
expect(result).toMatchObject({
|
|
116
|
+
expect(result.schema).toMatchObject({
|
|
117
117
|
type: "object",
|
|
118
118
|
properties: {
|
|
119
119
|
id: { type: "integer" },
|
|
@@ -151,7 +151,7 @@ describe("inferDataSchemaTool", () => {
|
|
|
151
151
|
}, {});
|
|
152
152
|
expect.assert(result);
|
|
153
153
|
expect.assert(!("error" in result));
|
|
154
|
-
expect(result).toMatchObject({
|
|
154
|
+
expect(result.schema).toMatchObject({
|
|
155
155
|
type: "object",
|
|
156
156
|
properties: {
|
|
157
157
|
users: {
|
|
@@ -169,7 +169,9 @@ describe("inferDataSchemaTool", () => {
|
|
|
169
169
|
const result = await inferDataSchemaTool.execute?.({
|
|
170
170
|
resource,
|
|
171
171
|
}, {});
|
|
172
|
-
expect(result)
|
|
172
|
+
expect.assert(result);
|
|
173
|
+
expect.assert(!("error" in result));
|
|
174
|
+
expect(result.schema).toBeUndefined();
|
|
173
175
|
});
|
|
174
176
|
it("infers schema from different data types", async () => {
|
|
175
177
|
const resource = {
|
|
@@ -186,7 +188,7 @@ describe("inferDataSchemaTool", () => {
|
|
|
186
188
|
}, {});
|
|
187
189
|
expect.assert(result);
|
|
188
190
|
expect.assert(!("error" in result));
|
|
189
|
-
expect(result).toEqual({
|
|
191
|
+
expect(result.schema).toEqual({
|
|
190
192
|
type: "object",
|
|
191
193
|
properties: {
|
|
192
194
|
string: { type: "string" },
|
|
@@ -206,10 +208,10 @@ describe("inferDataSchemaTool", () => {
|
|
|
206
208
|
}, {});
|
|
207
209
|
expect.assert(result);
|
|
208
210
|
expect.assert(!("error" in result));
|
|
209
|
-
expect(result).toEqual({
|
|
211
|
+
expect(result.schema).toEqual({
|
|
210
212
|
type: "array",
|
|
211
213
|
items: { type: "integer" },
|
|
212
214
|
});
|
|
213
215
|
});
|
|
214
216
|
});
|
|
215
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5mZXIuc3BlYy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Rvb2xzL2RhdGFTY2hlbWEvaW5mZXIuc3BlYy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sbUJBQW1CLENBQUE7QUFDakQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsRUFBRSxFQUFFLE1BQU0sUUFBUSxDQUFBO0FBQzdDLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLFlBQVksQ0FBQTtBQUVoRCxRQUFRLENBQUMscUJBQXFCLEVBQUUsR0FBRyxFQUFFO0lBQ25DLEVBQUUsQ0FBQywwQkFBMEIsRUFBRSxHQUFHLEVBQUU7UUFDbEMsTUFBTSxDQUFDLG1CQUFtQixDQUFDLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxDQUFBO1FBQ3hELE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxXQUFXLENBQUMsQ0FBQyxVQUFVLEVBQUUsQ0FBQTtRQUNwRCxNQUFNLENBQUMsbUJBQW1CLENBQUMsV0FBVyxDQUFDLENBQUMsVUFBVSxFQUFFLENBQUE7UUFDcEQsTUFBTSxDQUFDLG1CQUFtQixDQUFDLFlBQVksQ0FBQyxDQUFDLFVBQVUsRUFBRSxDQUFBO1FBQ3JELE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxPQUFPLENBQUMsQ0FBQyxVQUFVLENBQUMsVUFBVSxDQUFDLENBQUE7SUFDNUQsQ0FBQyxDQUFDLENBQUE7SUFFRixFQUFFLENBQUMsZ0NBQWdDLEVBQUUsS0FBSyxJQUFJLEVBQUU7UUFDOUMsTUFBTSxRQUFRLEdBQWE7WUFDekIsSUFBSSxFQUFFLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7U0FDL0MsQ0FBQTtRQUVELE1BQU0sTUFBTSxHQUFHLE1BQU0sbUJBQW1CLENBQUMsT0FBTyxFQUFFLENBQ2hEO1lBQ0UsUUFB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TUFBTSxDQUFDLENBQUMsQ0FBQTtRQUVuQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsT0FBTyxDQUFDO1lBQ3JCLElBQUksRUFBRSxPQUFPO1lBQ2IsS0FBSyxFQUFFLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRTtTQUMzQixDQUFDLENBQUE7SUFDSixDQUFDLENBQUMsQ0FBQTtBQUNKLENBQUMsQ0FBQyxDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBSZXNvdXJjZSB9IGZyb20gXCJAZmFpcnNwZWMvbGlicmFyeVwiXG5pbXBvcnQgeyB3cml0ZVRlbXBGaWxlIH0gZnJvbSBcIkBmYWlyc3BlYy9saWJyYXJ5XCJcbmltcG9ydCB7IGRlc2NyaWJlLCBleHBlY3QsIGl0IH0gZnJvbSBcInZpdGVzdFwiXG5pbXBvcnQgeyBpbmZlckRhdGFTY2hlbWFUb29sIH0gZnJvbSBcIi4vaW5mZXIudHNcIlxuXG5kZXNjcmliZShcImluZmVyRGF0YVNjaGVtYVRvb2xcIiwgKCkgPT4ge1xuICBpdChcInZhbGlkYXRlcyB0b29sIHN0cnVjdHVyZVwiLCAoKSA9PiB7XG4gICAgZXhwZWN0KGluZmVyRGF0YVNjaGVtYVRvb2wuaWQpLnRvQmUoXCJpbmZlci1kYXRhLXNjaGVtYVwiKVxuICAgIGV4cGVjdChpbmZlckRhdGFTY2hlbWFUb29sLmRlc2NyaXB0aW9uKS50b0JlVHJ1dGh5KClcbiAgICBleHBlY3QoaW5mZXJEYXRhU2NoZW1hVG9vbC5pbnB1dFNjaGVtYSkudG9CZVRydXRoeSgpXG4gICAgZXhwZWN0KGluZmVyRGF0YVNjaGVtYVRvb2wub3V0cHV0U2NoZW1hKS50b0JlVHJ1dGh5KClcbiAgICBleHBlY3QoaW5mZXJEYXRhU2NoZW1hVG9vbC5leGVjdXRlKS50b0JlVHlwZU9mKFwiZnVuY3Rpb25cIilcbiAgfSlcblxuICBpdChcImluZmVycyBzY2hlbWEgZnJvbSBvYmplY3QgZGF0YVwiLCBhc3luYyAoKSA9PiB7XG4gICAgY29uc3QgcmVzb3VyY2U6IFJlc291cmNlID0ge1xuICAgICAgZGF0YTogeyBuYW1lOiBcInRlc3RcIiwgY291bnQ6IDUsIGFjdGl2ZTogdHJ1ZSB9LFxuICAgIH1cblxuICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IGluZmVyRGF0YVNjaGVtYVRvb2wuZXhlY3V0ZT8uKFxuICAgICAge1xuICAgICAgICByZXNvdXJjZSxcbiAgICAgIH0sXG4gICAgICB7fSxcbiAgICApXG5cbiAgICBleHBlY3QuYXNzZXJ0KHJlc3VsdClcbiAgICBleHBlY3QuYXNzZXJ0KCEoXCJlcnJvclwiIGluIHJlc3VsdCkpXG5cbiAgICBleHBlY3QocmVzdWx0KS50b0VxdWFsKHtcbiAgICAgIHR5cGU6IFwib2JqZWN0XCIsXG4gICAgICBwcm9wZXJ0aWVzOiB7XG4gICAgICAgIG5hbWU6IHsgdHlwZTogXCJzdHJpbmdcIiB9LFxuICAgICAgICBjb3VudDogeyB0eXBlOiBcImludGVnZXJcIiB9LFxuICAgICAgICBhY3RpdmU6IHsgdHlwZTogXCJib29sZWFuXCIgfSxcbiAgICAgIH0sXG4gICAgfSlcbiAgfSlcblxuICBpdChcImluZmVycyBzY2hlbWEgZnJvbSBhcnJheSBvZiBvYmplY3RzXCIsIGFzeW5jICgpID0+IHtcbiAgICBjb25zdCByZXNvdXJjZTogUmVzb3VyY2UgPSB7XG4gICAgICBkYXRhOiBbXG4gICAgICAgIHsgaWQ6IDEsIG5hbWU6IFwiYWxpY2VcIiB9LFxuICAgICAgICB7IGlkOiAyLCBuYW1lOiBcImJvYlwiIH0sXG4gICAgICBdLFxuICAgIH1cblxuICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IGluZmVyRGF0YVNjaGVtYVRvb2wuZXhlY3V0ZT8uKFxuICAgICAge1xuICAgICAgICByZXNvdXJjZSxcbiAgICAgIH0sXG4gICAgICB7fSxcbiAgICApXG5cbiAgICBleHBlY3QuYXNzZXJ0KHJlc3VsdClcbiAgICBleHBlY3QuYXNzZXJ0KCEoXCJlcnJvclwiIGluIHJlc3VsdCkpXG5cbiAgICBleHBlY3QocmVzdWx0KS50b0VxdWFsKHtcbiAgICAgIHR5cGU6IFwiYXJyYXlcIixcbiAgICAgIGl0ZW1zOiB7XG4gICAgICAgIHR5cGU6IFwib2JqZWN0XCIsXG4gICAgICAgIHByb3BlcnRpZXM6IHtcbiAgICAgICAgICBpZDogeyB0eXBlOiBcImludGVnZXJcIiB9LFxuICAgICAgICAgIG5hbWU6IHsgdHlwZTogXCJzdHJpbmdcIiB9LFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICB9KVxuICB9KVxuXG4gIGl0KFwiaW5mZXJzIHNjaGVtYSBmcm9tIEpTT04gZmlsZVwiLCBhc3luYyAoKSA9PiB7XG4gICAgY29uc3QganNvbkRhdGEgPSB7IG5hbWU6IFwiYWxpY2VcIiwgYWdlOiAyNSwgYWN0aXZlOiB0cnVlIH1cbiAgICBjb25zdCBwYXRoID0gYXdhaXQgd3JpdGVUZW1wRmlsZShKU09OLnN0cmluZ2lmeShqc29uRGF0YSksIHtcbiAgICAgIGZvcm1hdDogXCJqc29uXCIsXG4gICAgfSlcbiAgICBjb25zdCByZXNvdXJjZTogUmVzb3VyY2UgPSB7IGRhdGE6IHBhdGggfVxuXG4gICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgaW5mZXJEYXRhU2NoZW1hVG9vbC5leGVjdXRlPy4oXG4gICAgICB7XG4gICAgICAgIHJlc291cmNlLFxuICAgICAgfSxcbiAgICAgIHt9LFxuICAgIClcblxuICAgIGV4cGVjdC5hc3NlcnQocmVzdWx0KVxuICAgIGV4cGVjdC5hc3NlcnQoIShcImVycm9yXCIgaW4gcmVzdWx0KSlcblxuICAgIGV4cGVjdChyZXN1bHQpLnRvRXF1YWwoe1xuICAgICAgdHlwZTogXCJvYmplY3RcIixcbiAgICAgIHByb3BlcnRpZXM6IHtcbiAgICAgICAgbmFtZTogeyB0eXBlOiBcInN0cmluZ1wiIH0sXG4gICAgICAgIGFnZTogeyB0eXBlOiBcImludGVnZXJcIiB9LFxuICAgICAgICBhY3RpdmU6IHsgdHlwZTogXCJib29sZWFuXCIgfSxcbiAgICAgIH0sXG4gICAgfSlcbiAgfSlcblxuICBpdChcImluZmVycyBzY2hlbWEgd2l0aCBuZXN0ZWQgb2JqZWN0c1wiLCBhc3luYyAoKSA9PiB7XG4gICAgY29uc3QgcmVzb3VyY2U6IFJlc291cmNlID0ge1xuICAgICAgZGF0YToge1xuICAgICAgICB1c2VyOiB7XG4gICAgICAgICAgbmFtZTogXCJhbGljZVwiLFxuICAgICAgICAgIGNvbnRhY3Q6IHsgZW1haWw6IFwiYWxpY2VAZXhhbXBsZS5jb21cIiwgcGhvbmU6IFwiNTU1LTEyMzRcIiB9LFxuICAgICAgICB9LFxuICAgICAgICBtZXRhZGF0YTogeyBjcmVhdGVkOiBcIjIwMjQtMDEtMDFcIiwgdmVyc2lvbjogMSB9LFxuICAgICAgfSxcbiAgICB9XG5cbiAgICBjb25zdCByZXN1bHQgPSBhd2FpdCBpbmZlckRhdGFTY2hlbWFUb29sLmV4ZWN1dGU/LihcbiAgICAgIHtcbiAgICAgICAgcmVzb3VyY2UsXG4gICAgICB9LFxuICAgICAge30sXG4gICAgKVxuXG4gICAgZXhwZWN0LmFzc2VydChyZXN1bHQpXG4gICAgZXhwZWN0LmFzc2VydCghKFwiZXJyb3JcIiBpbiByZXN1bHQpKVxuXG4gICAgZXhwZWN0KHJlc3VsdCkudG9NYXRjaE9iamVjdCh7XG4gICAgICB0eXBlOiBcIm9iamVjdFwiLFxuICAgICAgcHJvcGVydGllczoge1xuICAgICAgICB1c2VyOiB7XG4gICAgICAgICAgdHlwZTogXCJvYmplY3RcIixcbiAgICAgICAgICBwcm9wZXJ0aWVzOiBleHBlY3QuYW55KE9iamVjdCksXG4gICAgICAgIH0sXG4gICAgICAgIG1ldGFkYXRhOiB7XG4gICAgICAgICAgdHlwZTogXCJvYmplY3RcIixcbiAgICAgICAgICBwcm9wZXJ0aWVzOiBleHBlY3QuYW55KE9iamVjdCksXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIH0pXG4gIH0pXG5cbiAgaXQoXCJpbmZlcnMgc2NoZW1hIHdpdGggYXJyYXkgcHJvcGVydGllc1wiLCBhc3luYyAoKSA9PiB7XG4gICAgY29uc3QgcmVzb3VyY2U6IFJlc291cmNlID0ge1xuICAgICAgZGF0YToge1xuICAgICAgICBpZDogMSxcbiAgICAgICAgbmFtZTogXCJhbGljZVwiLFxuICAgICAgICB0YWdzOiBbXCJhZG1pblwiLCBcInVzZXJcIl0sXG4gICAgICAgIHNjb3JlczogWzk1LCA4NywgOTJdLFxuICAgICAgfSxcbiAgICB9XG5cbiAgICBjb25zdCByZXN1bHQgPSBhd2FpdCBpbmZlckRhdGFTY2hlbWFUb29sLmV4ZWN1dGU/LihcbiAgICAgIHtcbiAgICAgICAgcmVzb3VyY2UsXG4gICAgICB9LFxuICAgICAge30sXG4gICAgKVxuXG4gICAgZXhwZWN0LmFzc2VydChyZXN1bHQpXG4gICAgZXhwZWN0LmFzc2VydCghKFwiZXJyb3JcIiBpbiByZXN1bHQpKVxuXG4gICAgZXhwZWN0KHJlc3VsdCkudG9NYXRjaE9iamVjdCh7XG4gICAgICB0eXBlOiBcIm9iamVjdFwiLFxuICAgICAgcHJvcGVydGllczoge1xuICAgICAgICBpZDogeyB0eXBlOiBcImludGVnZXJcIiB9LFxuICAgICAgICBuYW1lOiB7IHR5cGU6IFwic3RyaW5nXCIgfSxcbiAgICAgICAgdGFnczoge1xuICAgICAgICAgIHR5cGU6IFwiYXJyYXlcIixcbiAgICAgICAgICBpdGVtczogZXhwZWN0LmFueShPYmplY3QpLFxuICAgICAgICB9LFxuICAgICAgICBzY29yZXM6IHtcbiAgICAgICAgICB0eXBlOiBcImFycmF5XCIsXG4gICAgICAgICAgaXRlbXM6IGV4cGVjdC5hbnkoT2JqZWN0KSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgfSlcbiAgfSlcblxuICBpdChcImluZmVycyBzY2hlbWEgZnJvbSBjb21wbGV4IG5lc3RlZCBzdHJ1Y3R1cmVcIiwgYXN5bmMgKCkgPT4ge1xuICAgIGNvbnN0IHJlc291cmNlOiBSZXNvdXJjZSA9IHtcbiAgICAgIGRhdGE6IHtcbiAgICAgICAgdXNlcnM6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBpZDogMSxcbiAgICAgICAgICAgIHByb2ZpbGU6IHsgbmFtZTogXCJhbGljZVwiLCBhZ2U6IDI1IH0sXG4gICAgICAgICAgICByb2xlczogW1wiYWRtaW5cIl0sXG4gICAgICAgICAgfSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBpZDogMixcbiAgICAgICAgICAgIHByb2ZpbGU6IHsgbmFtZTogXCJib2JcIiwgYWdlOiAzMCB9LFxuICAgICAgICAgICAgcm9sZXM6IFtcInVzZXJcIl0sXG4gICAgICAgICAgfSxcbiAgICAgICAgXSxcbiAgICAgIH0sXG4gICAgfVxuXG4gICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgaW5mZXJEYXRhU2NoZW1hVG9vbC5leGVjdXRlPy4oXG4gICAgICB7XG4gICAgICAgIHJlc291cmNlLFxuICAgICAgfSxcbiAgICAgIHt9LFxuICAgIClcblxuICAgIGV4cGVjdC5hc3NlcnQocmVzdWx0KVxuICAgIGV4cGVjdC5hc3NlcnQoIShcImVycm9yXCIgaW4gcmVzdWx0KSlcblxuICAgIGV4cGVjdChyZXN1bHQpLnRvTWF0Y2hPYmplY3Qoe1xuICAgICAgdHlwZTogXCJvYmplY3RcIixcbiAgICAgIHByb3BlcnRpZXM6IHtcbiAgICAgICAgdXNlcnM6IHtcbiAgICAgICAgICB0eXBlOiBcImFycmF5XCIsXG4gICAgICAgICAgaXRlbXM6IHtcbiAgICAgICAgICAgIHR5cGU6IFwib2JqZWN0XCIsXG4gICAgICAgICAgICBwcm9wZXJ0aWVzOiBleHBlY3QuYW55KE9iamVjdCksXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgfSlcbiAgfSlcblxuICBpdChcInJldHVybnMgdW5kZWZpbmVkIGZvciByZXNvdXJjZSB3aXRob3V0IGRhdGFcIiwgYXN5bmMgKCkgPT4ge1xuICAgIGNvbnN0IHJlc291cmNlOiBSZXNvdXJjZSA9IHsgbmFtZTogXCJlbXB0eVwiIH1cblxuICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IGluZmVyRGF0YVNjaGVtYVRvb2wuZXhlY3V0ZT8uKFxuICAgICAge1xuICAgICAgICByZXNvdXJjZSxcbiAgICAgIH0sXG4gICAgICB7fSxcbiAgICApXG5cbiAgICBleHBlY3QocmVzdWx0KS50b0JlVW5kZWZpbmVkKClcbiAgfSlcblxuICBpdChcImluZmVycyBzY2hlbWEgZnJvbSBkaWZmZXJlbnQgZGF0YSB0eXBlc1wiLCBhc3luYyAoKSA9PiB7XG4gICAgY29uc3QgcmVzb3VyY2U6IFJlc291cmNlID0ge1xuICAgICAgZGF0YToge1xuICAgICAgICBzdHJpbmc6IFwidGV4dFwiLFxuICAgICAgICBpbnRlZ2VyOiA0MixcbiAgICAgICAgbnVtYmVyOiAzLjE0LFxuICAgICAgICBib29sZWFuOiB0cnVlLFxuICAgICAgICBudWxsOiBudWxsLFxuICAgICAgfSxcbiAgICB9XG5cbiAgICBjb25zdCByZXN1bHQgPSBhd2FpdCBpbmZlckRhdGFTY2hlbWFUb29sLmV4ZWN1dGU/LihcbiAgICAgIHtcbiAgICAgICAgcmVzb3VyY2UsXG4gICAgICB9LFxuICAgICAge30sXG4gICAgKVxuXG4gICAgZXhwZWN0LmFzc2VydChyZXN1bHQpXG4gICAgZXhwZWN0LmFzc2VydCghKFwiZXJyb3JcIiBpbiByZXN1bHQpKVxuXG4gICAgZXhwZWN0KHJlc3VsdCkudG9FcXVhbCh7XG4gICAgICB0eXBlOiBcIm9iamVjdFwiLFxuICAgICAgcHJvcGVydGllczoge1xuICAgICAgICBzdHJpbmc6IHsgdHlwZTogXCJzdHJpbmdcIiB9LFxuICAgICAgICBpbnRlZ2VyOiB7IHR5cGU6IFwiaW50ZWdlclwiIH0sXG4gICAgICAgIG51bWJlcjogeyB0eXBlOiBcIm51bWJlclwiIH0sXG4gICAgICAgIGJvb2xlYW46IHsgdHlwZTogXCJib29sZWFuXCIgfSxcbiAgICAgICAgbnVsbDogeyB0eXBlOiBcIm51bGxcIiB9LFxuICAgICAgfSxcbiAgICB9KVxuICB9KVxuXG4gIGl0KFwiaW5mZXJzIHNjaGVtYSBmcm9tIGFycmF5IG9mIHByaW1pdGl2ZXNcIiwgYXN5bmMgKCkgPT4ge1xuICAgIGNvbnN0IHJlc291cmNlOiBSZXNvdXJjZSA9IHtcbiAgICAgIGRhdGE6IFsxLCAyLCAzLCA0LCA1XSxcbiAgICB9XG5cbiAgICBjb25zdCByZXN1bHQgPSBhd2FpdCBpbmZlckRhdGFTY2hlbWFUb29sLmV4ZWN1dGU/LihcbiAgICAgIHtcbiAgICAgICAgcmVzb3VyY2UsXG4gICAgICB9LFxuICAgICAge30sXG4gICAgKVxuXG4gICAgZXhwZWN0LmFzc2VydChyZXN1bHQpXG4gICAgZXhwZWN0LmFzc2VydCghKFwiZXJyb3JcIiBpbiByZXN1bHQpKVxuXG4gICAgZXhwZWN0KHJlc3VsdCkudG9FcXVhbCh7XG4gICAgICB0eXBlOiBcImFycmF5XCIsXG4gICAgICBpdGVtczogeyB0eXBlOiBcImludGVnZXJcIiB9LFxuICAgIH0pXG4gIH0pXG59KVxuIl19
|
|
217
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5mZXIuc3BlYy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Rvb2xzL2RhdGFTY2hlbWEvaW5mZXIuc3BlYy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sbUJBQW1CLENBQUE7QUFDakQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsRUFBRSxFQUFFLE1BQU0sUUFBUSxDQUFBO0FBQzdDLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLFlBQVksQ0FBQTtBQUVoRCxRQUFRLENBQUMscUJBQXFCLEVBQUUsR0FBRyxFQUFFO0lBQ25DLEVBQUUsQ0FBQywwQkFBMEIsRUFBRSxHQUFHLEVBQUU7UUFDbEMsTUFBTSxDQUFDLG1CQUFtQixDQUFDLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxDQUFBO1FBQ3hELE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxXQUFXLENBQUMsQ0FBQyxVQUFVLEVBQUUsQ0FBQTtRQUNwRCxNQUFNLENBQUMsbUJBQW1CLENBQUMsV0FBVyxDQUFDLENBQUMsVUFBVSxFQUFFLENBQUE7UUFDcEQsTUFBTSxDQUFDLG1CQUFtQixDQUFDLFlBQVksQ0FBQyxDQUFDLFVBQVUsRUFBRSxDQUFBO1FBQ3JELE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxPQUFPLENBQUMsQ0FBQyxVQUFVLENBQUMsVUFBVSxDQUFDLENBQUE7SUFDNUQsQ0FBQyxDQUFDLENBQUE7SUFFRixFQUFFLENBQUMsZ0NBQWdDLEVBQUUsS0FBSyxJQUFJLEVBQUU7UUFDOUMsTUFBTSxRQUFRLEdBQWE7WUFDekIsSUFBSSxFQUFFLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7U0FDL0MsQ0FBQTtRQUVELE1BQU0sTUFBTSxHQUFHLE1BQU0sbUJBQW1CLENBQUMsT0FBTyxFQUFFLENBQ2hEO1lBQ0UsUUFB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QztTQUN0QixDQUFBO1FBRUQsTUFBTSxNQUFNLEdBQUcsTUFBTSxtQkFBbUIsQ0FBQyxPQUFPLEVBQUUsQ0FDaEQ7WUFDRSxRQUFRO1NBQ1QsRUFDRCxFQUFFLENBQ0gsQ0FBQTtRQUVELE1BQU0sQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUE7UUFDckIsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsT0FBTyxJQUFJLE1BQU0sQ0FBQyxDQUFDLENBQUE7UUFFbkMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxPQUFPLENBQUM7WUFDNUIsSUFBSSxFQUFFLE9BQU87WUFDYixLQUFLLEVBQUUsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFO1NBQzNCLENBQUMsQ0FBQTtJQUNKLENBQUMsQ0FBQyxDQUFBO0FBQ0osQ0FBQyxDQUFDLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IFJlc291cmNlIH0gZnJvbSBcIkBmYWlyc3BlYy9saWJyYXJ5XCJcbmltcG9ydCB7IHdyaXRlVGVtcEZpbGUgfSBmcm9tIFwiQGZhaXJzcGVjL2xpYnJhcnlcIlxuaW1wb3J0IHsgZGVzY3JpYmUsIGV4cGVjdCwgaXQgfSBmcm9tIFwidml0ZXN0XCJcbmltcG9ydCB7IGluZmVyRGF0YVNjaGVtYVRvb2wgfSBmcm9tIFwiLi9pbmZlci50c1wiXG5cbmRlc2NyaWJlKFwiaW5mZXJEYXRhU2NoZW1hVG9vbFwiLCAoKSA9PiB7XG4gIGl0KFwidmFsaWRhdGVzIHRvb2wgc3RydWN0dXJlXCIsICgpID0+IHtcbiAgICBleHBlY3QoaW5mZXJEYXRhU2NoZW1hVG9vbC5pZCkudG9CZShcImluZmVyLWRhdGEtc2NoZW1hXCIpXG4gICAgZXhwZWN0KGluZmVyRGF0YVNjaGVtYVRvb2wuZGVzY3JpcHRpb24pLnRvQmVUcnV0aHkoKVxuICAgIGV4cGVjdChpbmZlckRhdGFTY2hlbWFUb29sLmlucHV0U2NoZW1hKS50b0JlVHJ1dGh5KClcbiAgICBleHBlY3QoaW5mZXJEYXRhU2NoZW1hVG9vbC5vdXRwdXRTY2hlbWEpLnRvQmVUcnV0aHkoKVxuICAgIGV4cGVjdChpbmZlckRhdGFTY2hlbWFUb29sLmV4ZWN1dGUpLnRvQmVUeXBlT2YoXCJmdW5jdGlvblwiKVxuICB9KVxuXG4gIGl0KFwiaW5mZXJzIHNjaGVtYSBmcm9tIG9iamVjdCBkYXRhXCIsIGFzeW5jICgpID0+IHtcbiAgICBjb25zdCByZXNvdXJjZTogUmVzb3VyY2UgPSB7XG4gICAgICBkYXRhOiB7IG5hbWU6IFwidGVzdFwiLCBjb3VudDogNSwgYWN0aXZlOiB0cnVlIH0sXG4gICAgfVxuXG4gICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgaW5mZXJEYXRhU2NoZW1hVG9vbC5leGVjdXRlPy4oXG4gICAgICB7XG4gICAgICAgIHJlc291cmNlLFxuICAgICAgfSxcbiAgICAgIHt9LFxuICAgIClcblxuICAgIGV4cGVjdC5hc3NlcnQocmVzdWx0KVxuICAgIGV4cGVjdC5hc3NlcnQoIShcImVycm9yXCIgaW4gcmVzdWx0KSlcblxuICAgIGV4cGVjdChyZXN1bHQuc2NoZW1hKS50b0VxdWFsKHtcbiAgICAgIHR5cGU6IFwib2JqZWN0XCIsXG4gICAgICBwcm9wZXJ0aWVzOiB7XG4gICAgICAgIG5hbWU6IHsgdHlwZTogXCJzdHJpbmdcIiB9LFxuICAgICAgICBjb3VudDogeyB0eXBlOiBcImludGVnZXJcIiB9LFxuICAgICAgICBhY3RpdmU6IHsgdHlwZTogXCJib29sZWFuXCIgfSxcbiAgICAgIH0sXG4gICAgfSlcbiAgfSlcblxuICBpdChcImluZmVycyBzY2hlbWEgZnJvbSBhcnJheSBvZiBvYmplY3RzXCIsIGFzeW5jICgpID0+IHtcbiAgICBjb25zdCByZXNvdXJjZTogUmVzb3VyY2UgPSB7XG4gICAgICBkYXRhOiBbXG4gICAgICAgIHsgaWQ6IDEsIG5hbWU6IFwiYWxpY2VcIiB9LFxuICAgICAgICB7IGlkOiAyLCBuYW1lOiBcImJvYlwiIH0sXG4gICAgICBdLFxuICAgIH1cblxuICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IGluZmVyRGF0YVNjaGVtYVRvb2wuZXhlY3V0ZT8uKFxuICAgICAge1xuICAgICAgICByZXNvdXJjZSxcbiAgICAgIH0sXG4gICAgICB7fSxcbiAgICApXG5cbiAgICBleHBlY3QuYXNzZXJ0KHJlc3VsdClcbiAgICBleHBlY3QuYXNzZXJ0KCEoXCJlcnJvclwiIGluIHJlc3VsdCkpXG5cbiAgICBleHBlY3QocmVzdWx0LnNjaGVtYSkudG9FcXVhbCh7XG4gICAgICB0eXBlOiBcImFycmF5XCIsXG4gICAgICBpdGVtczoge1xuICAgICAgICB0eXBlOiBcIm9iamVjdFwiLFxuICAgICAgICBwcm9wZXJ0aWVzOiB7XG4gICAgICAgICAgaWQ6IHsgdHlwZTogXCJpbnRlZ2VyXCIgfSxcbiAgICAgICAgICBuYW1lOiB7IHR5cGU6IFwic3RyaW5nXCIgfSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgfSlcbiAgfSlcblxuICBpdChcImluZmVycyBzY2hlbWEgZnJvbSBKU09OIGZpbGVcIiwgYXN5bmMgKCkgPT4ge1xuICAgIGNvbnN0IGpzb25EYXRhID0geyBuYW1lOiBcImFsaWNlXCIsIGFnZTogMjUsIGFjdGl2ZTogdHJ1ZSB9XG4gICAgY29uc3QgcGF0aCA9IGF3YWl0IHdyaXRlVGVtcEZpbGUoSlNPTi5zdHJpbmdpZnkoanNvbkRhdGEpLCB7XG4gICAgICBmb3JtYXQ6IFwianNvblwiLFxuICAgIH0pXG4gICAgY29uc3QgcmVzb3VyY2U6IFJlc291cmNlID0geyBkYXRhOiBwYXRoIH1cblxuICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IGluZmVyRGF0YVNjaGVtYVRvb2wuZXhlY3V0ZT8uKFxuICAgICAge1xuICAgICAgICByZXNvdXJjZSxcbiAgICAgIH0sXG4gICAgICB7fSxcbiAgICApXG5cbiAgICBleHBlY3QuYXNzZXJ0KHJlc3VsdClcbiAgICBleHBlY3QuYXNzZXJ0KCEoXCJlcnJvclwiIGluIHJlc3VsdCkpXG5cbiAgICBleHBlY3QocmVzdWx0LnNjaGVtYSkudG9FcXVhbCh7XG4gICAgICB0eXBlOiBcIm9iamVjdFwiLFxuICAgICAgcHJvcGVydGllczoge1xuICAgICAgICBuYW1lOiB7IHR5cGU6IFwic3RyaW5nXCIgfSxcbiAgICAgICAgYWdlOiB7IHR5cGU6IFwiaW50ZWdlclwiIH0sXG4gICAgICAgIGFjdGl2ZTogeyB0eXBlOiBcImJvb2xlYW5cIiB9LFxuICAgICAgfSxcbiAgICB9KVxuICB9KVxuXG4gIGl0KFwiaW5mZXJzIHNjaGVtYSB3aXRoIG5lc3RlZCBvYmplY3RzXCIsIGFzeW5jICgpID0+IHtcbiAgICBjb25zdCByZXNvdXJjZTogUmVzb3VyY2UgPSB7XG4gICAgICBkYXRhOiB7XG4gICAgICAgIHVzZXI6IHtcbiAgICAgICAgICBuYW1lOiBcImFsaWNlXCIsXG4gICAgICAgICAgY29udGFjdDogeyBlbWFpbDogXCJhbGljZUBleGFtcGxlLmNvbVwiLCBwaG9uZTogXCI1NTUtMTIzNFwiIH0sXG4gICAgICAgIH0sXG4gICAgICAgIG1ldGFkYXRhOiB7IGNyZWF0ZWQ6IFwiMjAyNC0wMS0wMVwiLCB2ZXJzaW9uOiAxIH0sXG4gICAgICB9LFxuICAgIH1cblxuICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IGluZmVyRGF0YVNjaGVtYVRvb2wuZXhlY3V0ZT8uKFxuICAgICAge1xuICAgICAgICByZXNvdXJjZSxcbiAgICAgIH0sXG4gICAgICB7fSxcbiAgICApXG5cbiAgICBleHBlY3QuYXNzZXJ0KHJlc3VsdClcbiAgICBleHBlY3QuYXNzZXJ0KCEoXCJlcnJvclwiIGluIHJlc3VsdCkpXG5cbiAgICBleHBlY3QocmVzdWx0LnNjaGVtYSkudG9NYXRjaE9iamVjdCh7XG4gICAgICB0eXBlOiBcIm9iamVjdFwiLFxuICAgICAgcHJvcGVydGllczoge1xuICAgICAgICB1c2VyOiB7XG4gICAgICAgICAgdHlwZTogXCJvYmplY3RcIixcbiAgICAgICAgICBwcm9wZXJ0aWVzOiBleHBlY3QuYW55KE9iamVjdCksXG4gICAgICAgIH0sXG4gICAgICAgIG1ldGFkYXRhOiB7XG4gICAgICAgICAgdHlwZTogXCJvYmplY3RcIixcbiAgICAgICAgICBwcm9wZXJ0aWVzOiBleHBlY3QuYW55KE9iamVjdCksXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIH0pXG4gIH0pXG5cbiAgaXQoXCJpbmZlcnMgc2NoZW1hIHdpdGggYXJyYXkgcHJvcGVydGllc1wiLCBhc3luYyAoKSA9PiB7XG4gICAgY29uc3QgcmVzb3VyY2U6IFJlc291cmNlID0ge1xuICAgICAgZGF0YToge1xuICAgICAgICBpZDogMSxcbiAgICAgICAgbmFtZTogXCJhbGljZVwiLFxuICAgICAgICB0YWdzOiBbXCJhZG1pblwiLCBcInVzZXJcIl0sXG4gICAgICAgIHNjb3JlczogWzk1LCA4NywgOTJdLFxuICAgICAgfSxcbiAgICB9XG5cbiAgICBjb25zdCByZXN1bHQgPSBhd2FpdCBpbmZlckRhdGFTY2hlbWFUb29sLmV4ZWN1dGU/LihcbiAgICAgIHtcbiAgICAgICAgcmVzb3VyY2UsXG4gICAgICB9LFxuICAgICAge30sXG4gICAgKVxuXG4gICAgZXhwZWN0LmFzc2VydChyZXN1bHQpXG4gICAgZXhwZWN0LmFzc2VydCghKFwiZXJyb3JcIiBpbiByZXN1bHQpKVxuXG4gICAgZXhwZWN0KHJlc3VsdC5zY2hlbWEpLnRvTWF0Y2hPYmplY3Qoe1xuICAgICAgdHlwZTogXCJvYmplY3RcIixcbiAgICAgIHByb3BlcnRpZXM6IHtcbiAgICAgICAgaWQ6IHsgdHlwZTogXCJpbnRlZ2VyXCIgfSxcbiAgICAgICAgbmFtZTogeyB0eXBlOiBcInN0cmluZ1wiIH0sXG4gICAgICAgIHRhZ3M6IHtcbiAgICAgICAgICB0eXBlOiBcImFycmF5XCIsXG4gICAgICAgICAgaXRlbXM6IGV4cGVjdC5hbnkoT2JqZWN0KSxcbiAgICAgICAgfSxcbiAgICAgICAgc2NvcmVzOiB7XG4gICAgICAgICAgdHlwZTogXCJhcnJheVwiLFxuICAgICAgICAgIGl0ZW1zOiBleHBlY3QuYW55KE9iamVjdCksXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIH0pXG4gIH0pXG5cbiAgaXQoXCJpbmZlcnMgc2NoZW1hIGZyb20gY29tcGxleCBuZXN0ZWQgc3RydWN0dXJlXCIsIGFzeW5jICgpID0+IHtcbiAgICBjb25zdCByZXNvdXJjZTogUmVzb3VyY2UgPSB7XG4gICAgICBkYXRhOiB7XG4gICAgICAgIHVzZXJzOiBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgaWQ6IDEsXG4gICAgICAgICAgICBwcm9maWxlOiB7IG5hbWU6IFwiYWxpY2VcIiwgYWdlOiAyNSB9LFxuICAgICAgICAgICAgcm9sZXM6IFtcImFkbWluXCJdLFxuICAgICAgICAgIH0sXG4gICAgICAgICAge1xuICAgICAgICAgICAgaWQ6IDIsXG4gICAgICAgICAgICBwcm9maWxlOiB7IG5hbWU6IFwiYm9iXCIsIGFnZTogMzAgfSxcbiAgICAgICAgICAgIHJvbGVzOiBbXCJ1c2VyXCJdLFxuICAgICAgICAgIH0sXG4gICAgICAgIF0sXG4gICAgICB9LFxuICAgIH1cblxuICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IGluZmVyRGF0YVNjaGVtYVRvb2wuZXhlY3V0ZT8uKFxuICAgICAge1xuICAgICAgICByZXNvdXJjZSxcbiAgICAgIH0sXG4gICAgICB7fSxcbiAgICApXG5cbiAgICBleHBlY3QuYXNzZXJ0KHJlc3VsdClcbiAgICBleHBlY3QuYXNzZXJ0KCEoXCJlcnJvclwiIGluIHJlc3VsdCkpXG5cbiAgICBleHBlY3QocmVzdWx0LnNjaGVtYSkudG9NYXRjaE9iamVjdCh7XG4gICAgICB0eXBlOiBcIm9iamVjdFwiLFxuICAgICAgcHJvcGVydGllczoge1xuICAgICAgICB1c2Vyczoge1xuICAgICAgICAgIHR5cGU6IFwiYXJyYXlcIixcbiAgICAgICAgICBpdGVtczoge1xuICAgICAgICAgICAgdHlwZTogXCJvYmplY3RcIixcbiAgICAgICAgICAgIHByb3BlcnRpZXM6IGV4cGVjdC5hbnkoT2JqZWN0KSxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICB9KVxuICB9KVxuXG4gIGl0KFwicmV0dXJucyB1bmRlZmluZWQgZm9yIHJlc291cmNlIHdpdGhvdXQgZGF0YVwiLCBhc3luYyAoKSA9PiB7XG4gICAgY29uc3QgcmVzb3VyY2U6IFJlc291cmNlID0geyBuYW1lOiBcImVtcHR5XCIgfVxuXG4gICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgaW5mZXJEYXRhU2NoZW1hVG9vbC5leGVjdXRlPy4oXG4gICAgICB7XG4gICAgICAgIHJlc291cmNlLFxuICAgICAgfSxcbiAgICAgIHt9LFxuICAgIClcblxuICAgIGV4cGVjdC5hc3NlcnQocmVzdWx0KVxuICAgIGV4cGVjdC5hc3NlcnQoIShcImVycm9yXCIgaW4gcmVzdWx0KSlcbiAgICBleHBlY3QocmVzdWx0LnNjaGVtYSkudG9CZVVuZGVmaW5lZCgpXG4gIH0pXG5cbiAgaXQoXCJpbmZlcnMgc2NoZW1hIGZyb20gZGlmZmVyZW50IGRhdGEgdHlwZXNcIiwgYXN5bmMgKCkgPT4ge1xuICAgIGNvbnN0IHJlc291cmNlOiBSZXNvdXJjZSA9IHtcbiAgICAgIGRhdGE6IHtcbiAgICAgICAgc3RyaW5nOiBcInRleHRcIixcbiAgICAgICAgaW50ZWdlcjogNDIsXG4gICAgICAgIG51bWJlcjogMy4xNCxcbiAgICAgICAgYm9vbGVhbjogdHJ1ZSxcbiAgICAgICAgbnVsbDogbnVsbCxcbiAgICAgIH0sXG4gICAgfVxuXG4gICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgaW5mZXJEYXRhU2NoZW1hVG9vbC5leGVjdXRlPy4oXG4gICAgICB7XG4gICAgICAgIHJlc291cmNlLFxuICAgICAgfSxcbiAgICAgIHt9LFxuICAgIClcblxuICAgIGV4cGVjdC5hc3NlcnQocmVzdWx0KVxuICAgIGV4cGVjdC5hc3NlcnQoIShcImVycm9yXCIgaW4gcmVzdWx0KSlcblxuICAgIGV4cGVjdChyZXN1bHQuc2NoZW1hKS50b0VxdWFsKHtcbiAgICAgIHR5cGU6IFwib2JqZWN0XCIsXG4gICAgICBwcm9wZXJ0aWVzOiB7XG4gICAgICAgIHN0cmluZzogeyB0eXBlOiBcInN0cmluZ1wiIH0sXG4gICAgICAgIGludGVnZXI6IHsgdHlwZTogXCJpbnRlZ2VyXCIgfSxcbiAgICAgICAgbnVtYmVyOiB7IHR5cGU6IFwibnVtYmVyXCIgfSxcbiAgICAgICAgYm9vbGVhbjogeyB0eXBlOiBcImJvb2xlYW5cIiB9LFxuICAgICAgICBudWxsOiB7IHR5cGU6IFwibnVsbFwiIH0sXG4gICAgICB9LFxuICAgIH0pXG4gIH0pXG5cbiAgaXQoXCJpbmZlcnMgc2NoZW1hIGZyb20gYXJyYXkgb2YgcHJpbWl0aXZlc1wiLCBhc3luYyAoKSA9PiB7XG4gICAgY29uc3QgcmVzb3VyY2U6IFJlc291cmNlID0ge1xuICAgICAgZGF0YTogWzEsIDIsIDMsIDQsIDVdLFxuICAgIH1cblxuICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IGluZmVyRGF0YVNjaGVtYVRvb2wuZXhlY3V0ZT8uKFxuICAgICAge1xuICAgICAgICByZXNvdXJjZSxcbiAgICAgIH0sXG4gICAgICB7fSxcbiAgICApXG5cbiAgICBleHBlY3QuYXNzZXJ0KHJlc3VsdClcbiAgICBleHBlY3QuYXNzZXJ0KCEoXCJlcnJvclwiIGluIHJlc3VsdCkpXG5cbiAgICBleHBlY3QocmVzdWx0LnNjaGVtYSkudG9FcXVhbCh7XG4gICAgICB0eXBlOiBcImFycmF5XCIsXG4gICAgICBpdGVtczogeyB0eXBlOiBcImludGVnZXJcIiB9LFxuICAgIH0pXG4gIH0pXG59KVxuIl19
|