@fairspec/agent 0.9.2 → 0.10.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/package.json +1 -1
- package/build/server.js +3 -3
- package/build/tools/data/validate.d.ts +5 -5
- package/build/tools/dataSchema/infer.d.ts +6 -6
- package/build/tools/dataSchema/infer.js +4 -4
- package/build/tools/dataSchema/infer.spec.js +10 -10
- package/build/tools/dataset/infer.d.ts +10 -10
- package/build/tools/dataset/infer.spec.js +7 -7
- package/build/tools/dataset/validate.d.ts +5 -5
- package/build/tools/{dialect → fileDialect}/infer.d.ts +8 -8
- package/build/tools/fileDialect/infer.js +19 -0
- package/build/tools/fileDialect/infer.spec.js +140 -0
- package/build/tools/table/query.d.ts +5 -5
- package/build/tools/table/query.spec.js +7 -7
- package/build/tools/table/validate.d.ts +5 -5
- package/build/tools/tableSchema/infer.d.ts +6 -6
- package/build/tools/tableSchema/infer.js +5 -5
- package/build/tools/tableSchema/infer.spec.js +34 -34
- package/package.json +2 -2
- package/build/tools/dialect/infer.js +0 -19
- package/build/tools/dialect/infer.spec.js +0 -140
- /package/build/tools/{dialect → fileDialect}/infer.spec.d.ts +0 -0
|
@@ -0,0 +1,140 @@
|
|
|
1
|
+
import { writeTempFile } from "@fairspec/library";
|
|
2
|
+
import { describe, expect, it } from "vitest";
|
|
3
|
+
import { inferFileDialectTool } from "./infer.js";
|
|
4
|
+
describe("inferFileDialectTool", () => {
|
|
5
|
+
it("validates tool structure", () => {
|
|
6
|
+
expect(inferFileDialectTool.id).toBe("infer-file-dialect");
|
|
7
|
+
expect(inferFileDialectTool.description).toBeTruthy();
|
|
8
|
+
expect(inferFileDialectTool.inputSchema).toBeTruthy();
|
|
9
|
+
expect(inferFileDialectTool.outputSchema).toBeTruthy();
|
|
10
|
+
expect(inferFileDialectTool.execute).toBeTypeOf("function");
|
|
11
|
+
});
|
|
12
|
+
it("infers CSV format", async () => {
|
|
13
|
+
const path = await writeTempFile("id,name,age\n1,alice,25\n2,bob,30");
|
|
14
|
+
const resource = { data: path, fileDialect: { format: "csv" } };
|
|
15
|
+
const result = await inferFileDialectTool.execute?.({
|
|
16
|
+
resource,
|
|
17
|
+
}, {});
|
|
18
|
+
expect.assert(result);
|
|
19
|
+
expect.assert(!("error" in result));
|
|
20
|
+
expect(result.fileDialect).toEqual({
|
|
21
|
+
format: "csv",
|
|
22
|
+
delimiter: ",",
|
|
23
|
+
headerRows: [1],
|
|
24
|
+
lineTerminator: "\n",
|
|
25
|
+
});
|
|
26
|
+
});
|
|
27
|
+
it("infers TSV format", async () => {
|
|
28
|
+
const path = await writeTempFile("id\tname\tage\n1\talice\t25\n2\tbob\t30");
|
|
29
|
+
const resource = { data: path, fileDialect: { format: "csv" } };
|
|
30
|
+
const result = await inferFileDialectTool.execute?.({
|
|
31
|
+
resource,
|
|
32
|
+
}, {});
|
|
33
|
+
expect.assert(result);
|
|
34
|
+
expect.assert(!("error" in result));
|
|
35
|
+
expect(result.fileDialect).toEqual({
|
|
36
|
+
format: "tsv",
|
|
37
|
+
headerRows: [1],
|
|
38
|
+
lineTerminator: "\n",
|
|
39
|
+
});
|
|
40
|
+
});
|
|
41
|
+
it("infers JSON format with array of objects", async () => {
|
|
42
|
+
const path = await writeTempFile(JSON.stringify([{ id: 1, name: "alice" }]));
|
|
43
|
+
const resource = { data: path, fileDialect: { format: "json" } };
|
|
44
|
+
const result = await inferFileDialectTool.execute?.({
|
|
45
|
+
resource,
|
|
46
|
+
}, {});
|
|
47
|
+
expect.assert(result);
|
|
48
|
+
expect.assert(!("error" in result));
|
|
49
|
+
expect(result.fileDialect).toEqual({
|
|
50
|
+
format: "json",
|
|
51
|
+
rowType: "object",
|
|
52
|
+
});
|
|
53
|
+
});
|
|
54
|
+
it("infers JSON format with array of arrays", async () => {
|
|
55
|
+
const path = await writeTempFile(JSON.stringify([
|
|
56
|
+
[1, "alice"],
|
|
57
|
+
[2, "bob"],
|
|
58
|
+
]));
|
|
59
|
+
const resource = { data: path, fileDialect: { format: "json" } };
|
|
60
|
+
const result = await inferFileDialectTool.execute?.({
|
|
61
|
+
resource,
|
|
62
|
+
}, {});
|
|
63
|
+
expect.assert(result);
|
|
64
|
+
expect.assert(!("error" in result));
|
|
65
|
+
expect(result.fileDialect?.format).toBe("json");
|
|
66
|
+
expect(result.fileDialect).toHaveProperty("rowType");
|
|
67
|
+
});
|
|
68
|
+
it("infers JSONL format", async () => {
|
|
69
|
+
const path = await writeTempFile('{"id":1,"name":"alice"}\n{"id":2,"name":"bob"}');
|
|
70
|
+
const resource = { data: path, fileDialect: { format: "jsonl" } };
|
|
71
|
+
const result = await inferFileDialectTool.execute?.({
|
|
72
|
+
resource,
|
|
73
|
+
}, {});
|
|
74
|
+
expect.assert(result);
|
|
75
|
+
expect.assert(!("error" in result));
|
|
76
|
+
expect(result.fileDialect?.format).toBe("jsonl");
|
|
77
|
+
});
|
|
78
|
+
it("infers CSV with different delimiter", async () => {
|
|
79
|
+
const path = await writeTempFile("id;name;age\n1;alice;25\n2;bob;30");
|
|
80
|
+
const resource = { data: path, fileDialect: { format: "csv" } };
|
|
81
|
+
const result = await inferFileDialectTool.execute?.({
|
|
82
|
+
resource,
|
|
83
|
+
}, {});
|
|
84
|
+
expect.assert(result);
|
|
85
|
+
expect.assert(!("error" in result));
|
|
86
|
+
expect(result.fileDialect).toMatchObject({
|
|
87
|
+
format: "csv",
|
|
88
|
+
delimiter: ";",
|
|
89
|
+
});
|
|
90
|
+
});
|
|
91
|
+
it("infers CSV without headers", async () => {
|
|
92
|
+
const path = await writeTempFile("1,alice,25\n2,bob,30");
|
|
93
|
+
const resource = { data: path, fileDialect: { format: "csv" } };
|
|
94
|
+
const result = await inferFileDialectTool.execute?.({
|
|
95
|
+
resource,
|
|
96
|
+
}, {});
|
|
97
|
+
expect.assert(result);
|
|
98
|
+
expect.assert(!("error" in result));
|
|
99
|
+
expect(result.fileDialect?.format).toBe("csv");
|
|
100
|
+
expect(result.fileDialect).toHaveProperty("delimiter");
|
|
101
|
+
});
|
|
102
|
+
it("returns undefined for inline data", async () => {
|
|
103
|
+
const resource = {
|
|
104
|
+
data: [{ id: 1 }],
|
|
105
|
+
};
|
|
106
|
+
const result = await inferFileDialectTool.execute?.({
|
|
107
|
+
resource,
|
|
108
|
+
}, {});
|
|
109
|
+
expect.assert(result);
|
|
110
|
+
expect.assert(!("error" in result));
|
|
111
|
+
expect(result.fileDialect).toBeUndefined();
|
|
112
|
+
});
|
|
113
|
+
it("respects sampleBytes option", async () => {
|
|
114
|
+
const largeData = Array.from({ length: 1000 }, (_, i) => `${i},row${i}`).join("\n");
|
|
115
|
+
const path = await writeTempFile(`id,name\n${largeData}`);
|
|
116
|
+
const resource = { data: path, fileDialect: { format: "csv" } };
|
|
117
|
+
const result = await inferFileDialectTool.execute?.({
|
|
118
|
+
resource,
|
|
119
|
+
options: { sampleBytes: 1000 },
|
|
120
|
+
}, {});
|
|
121
|
+
expect.assert(result);
|
|
122
|
+
expect.assert(!("error" in result));
|
|
123
|
+
expect(result.fileDialect?.format).toBe("csv");
|
|
124
|
+
});
|
|
125
|
+
it("infers dialect with provided format hint", async () => {
|
|
126
|
+
const path = await writeTempFile("id,name\n1,alice\n2,bob");
|
|
127
|
+
const resource = {
|
|
128
|
+
data: path,
|
|
129
|
+
fileDialect: { format: "csv" },
|
|
130
|
+
};
|
|
131
|
+
const result = await inferFileDialectTool.execute?.({
|
|
132
|
+
resource,
|
|
133
|
+
}, {});
|
|
134
|
+
expect.assert(result);
|
|
135
|
+
expect.assert(!("error" in result));
|
|
136
|
+
expect(result.fileDialect?.format).toBe("csv");
|
|
137
|
+
expect(result.fileDialect).toHaveProperty("delimiter");
|
|
138
|
+
});
|
|
139
|
+
});
|
|
140
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5mZXIuc3BlYy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Rvb2xzL2ZpbGVEaWFsZWN0L2luZmVyLnNwZWMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLG1CQUFtQixDQUFBO0FBQ2pELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLEVBQUUsRUFBRSxNQUFNLFFBQVEsQ0FBQTtBQUM3QyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxZQUFZLENBQUE7QUFFakQsUUFBUSxDQUFDLHNCQUFzQixFQUFFLEdBQUcsRUFBRTtJQUNwQyxFQUFFLENBQUMsMEJBQTBCLEVBQUUsR0FBRyxFQUFFO1FBQ2xDLE1BQU0sQ0FBQyxvQkFBb0IsQ0FBQyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsb0JBQW9CLENBQUMsQ0FBQTtRQUMxRCxNQUFNLENBQUMsb0JBQW9CLENBQUMsV0FBVyxDQUFDLENBQUMsVUFBVSxFQUFFLENBQUE7UUFDckQsTUFBTSxDQUFDLG9CQUFvQixDQUFDLFdBQVcsQ0FBQyxDQUFDLFVBQVUsRUFBRSxDQUFBO1FBQ3JELE1BQU0sQ0FBQyxvQkFBb0IsQ0FBQyxZQUFZLENBQUMsQ0FBQyxVQUFVLEVBQUUsQ0FBQTtRQUN0RCxNQUFNLENBQUMsb0JBQW9CLENBQUMsT0FBTyxDQUFDLENBQUMsVUFBVSxDQUFDLFVBQVUsQ0FBQyxDQUFBO0lBQzdELENBQUMsQ0FBQyxDQUFBO0lBRUYsRUFBRSxDQUFDLG1CQUFtQixFQUFFLEtBQUssSUFBSSxFQUFFO1FBQ2pDLE1BQU0sSUFBSSxHQUFHLE1BQU0sYUFBYSxDQUFDLG1DQUFtQyxDQUFDLENBQUE7UUFDckUsTUFBTSxRQUFRLEdBQWEsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsRUFBRSxDQUFBO1FBRXpFLE1BQU0sTUFBTSxHQUFHLE1BQU0sb0JB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RSxDQUNILENBQUE7UUFFRCxNQUFNLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFBO1FBQ3JCLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLE9BQU8sSUFBSSxNQUFNLENBQUMsQ0FBQyxDQUFBO1FBRW5DLE1BQU0sQ0FBQyxNQUFNLENBQUMsV0FBVyxFQUFFLE1BQU0sQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQTtJQUNoRCxDQUFDLENBQUMsQ0FBQTtJQUVGLEVBQUUsQ0FBQywwQ0FBMEMsRUFBRSxLQUFLLElBQUksRUFBRTtRQUN4RCxNQUFNLElBQUksR0FBRyxNQUFNLGFBQWEsQ0FBQyx5QkFBeUIsQ0FBQyxDQUFBO1FBQzNELE1BQU0sUUFBUSxHQUFhO1lBQ3pCLElBQUksRUFBRSxJQUFJO1lBQ1YsV0FBVyxFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRTtTQUMvQixDQUFBO1FBRUQsTUFBTSxNQUFNLEdBQUcsTUFBTSxvQkFBb0IsQ0FBQyxPQUFPLEVBQUUsQ0FDakQ7WUFDRSxRQUFRO1NBQ1QsRUFDRCxFQUFFLENBQ0gsQ0FBQTtRQUVELE1BQU0sQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUE7UUFDckIsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsT0FBTyxJQUFJLE1BQU0sQ0FBQyxDQUFDLENBQUE7UUFFbkMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxXQUFXLEVBQUUsTUFBTSxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFBO1FBQzlDLE1BQU0sQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUMsY0FBYyxDQUFDLFdBQVcsQ0FBQyxDQUFBO0lBQ3hELENBQUMsQ0FBQyxDQUFBO0FBQ0osQ0FBQyxDQUFDLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IENzdkZpbGVEaWFsZWN0LCBSZXNvdXJjZSB9IGZyb20gXCJAZmFpcnNwZWMvbGlicmFyeVwiXG5pbXBvcnQgeyB3cml0ZVRlbXBGaWxlIH0gZnJvbSBcIkBmYWlyc3BlYy9saWJyYXJ5XCJcbmltcG9ydCB7IGRlc2NyaWJlLCBleHBlY3QsIGl0IH0gZnJvbSBcInZpdGVzdFwiXG5pbXBvcnQgeyBpbmZlckZpbGVEaWFsZWN0VG9vbCB9IGZyb20gXCIuL2luZmVyLnRzXCJcblxuZGVzY3JpYmUoXCJpbmZlckZpbGVEaWFsZWN0VG9vbFwiLCAoKSA9PiB7XG4gIGl0KFwidmFsaWRhdGVzIHRvb2wgc3RydWN0dXJlXCIsICgpID0+IHtcbiAgICBleHBlY3QoaW5mZXJGaWxlRGlhbGVjdFRvb2wuaWQpLnRvQmUoXCJpbmZlci1maWxlLWRpYWxlY3RcIilcbiAgICBleHBlY3QoaW5mZXJGaWxlRGlhbGVjdFRvb2wuZGVzY3JpcHRpb24pLnRvQmVUcnV0aHkoKVxuICAgIGV4cGVjdChpbmZlckZpbGVEaWFsZWN0VG9vbC5pbnB1dFNjaGVtYSkudG9CZVRydXRoeSgpXG4gICAgZXhwZWN0KGluZmVyRmlsZURpYWxlY3RUb29sLm91dHB1dFNjaGVtYSkudG9CZVRydXRoeSgpXG4gICAgZXhwZWN0KGluZmVyRmlsZURpYWxlY3RUb29sLmV4ZWN1dGUpLnRvQmVUeXBlT2YoXCJmdW5jdGlvblwiKVxuICB9KVxuXG4gIGl0KFwiaW5mZXJzIENTViBmb3JtYXRcIiwgYXN5bmMgKCkgPT4ge1xuICAgIGNvbnN0IHBhdGggPSBhd2FpdCB3cml0ZVRlbXBGaWxlKFwiaWQsbmFtZSxhZ2VcXG4xLGFsaWNlLDI1XFxuMixib2IsMzBcIilcbiAgICBjb25zdCByZXNvdXJjZTogUmVzb3VyY2UgPSB7IGRhdGE6IHBhdGgsIGZpbGVEaWFsZWN0OiB7IGZvcm1hdDogXCJjc3ZcIiB9IH1cblxuICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IGluZmVyRmlsZURpYWxlY3RUb29sLmV4ZWN1dGU/LihcbiAgICAgIHtcbiAgICAgICAgcmVzb3VyY2UsXG4gICAgICB9LFxuICAgICAge30sXG4gICAgKVxuXG4gICAgZXhwZWN0LmFzc2VydChyZXN1bHQpXG4gICAgZXhwZWN0LmFzc2VydCghKFwiZXJyb3JcIiBpbiByZXN1bHQpKVxuXG4gICAgZXhwZWN0KHJlc3VsdC5maWxlRGlhbGVjdCkudG9FcXVhbDxDc3ZGaWxlRGlhbGVjdD4oe1xuICAgICAgZm9ybWF0OiBcImNzdlwiLFxuICAgICAgZGVsaW1pdGVyOiBcIixcIixcbiAgICAgIGhlYWRlclJvd3M6IFsxXSxcbiAgICAgIGxpbmVUZXJtaW5hdG9yOiBcIlxcblwiLFxuICAgIH0pXG4gIH0pXG5cbiAgaXQoXCJpbmZlcnMgVFNWIGZvcm1hdFwiLCBhc3luYyAoKSA9PiB7XG4gICAgY29uc3QgcGF0aCA9IGF3YWl0IHdyaXRlVGVtcEZpbGUoXCJpZFxcdG5hbWVcXHRhZ2VcXG4xXFx0YWxpY2VcXHQyNVxcbjJcXHRib2JcXHQzMFwiKVxuICAgIGNvbnN0IHJlc291cmNlOiBSZXNvdXJjZSA9IHsgZGF0YTogcGF0aCwgZmlsZURpYWxlY3Q6IHsgZm9ybWF0OiBcImNzdlwiIH0gfVxuXG4gICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgaW5mZXJGaWxlRGlhbGVjdFRvb2wuZXhlY3V0ZT8uKFxuICAgICAge1xuICAgICAgICByZXNvdXJjZSxcbiAgICAgIH0sXG4gICAgICB7fSxcbiAgICApXG5cbiAgICBleHBlY3QuYXNzZXJ0KHJlc3VsdClcbiAgICBleHBlY3QuYXNzZXJ0KCEoXCJlcnJvclwiIGluIHJlc3VsdCkpXG5cbiAgICBleHBlY3QocmVzdWx0LmZpbGVEaWFsZWN0KS50b0VxdWFsKHtcbiAgICAgIGZvcm1hdDogXCJ0c3ZcIixcbiAgICAgIGhlYWRlclJvd3M6IFsxXSxcbiAgICAgIGxpbmVUZXJtaW5hdG9yOiBcIlxcblwiLFxuICAgIH0pXG4gIH0pXG5cbiAgaXQoXCJpbmZlcnMgSlNPTiBmb3JtYXQgd2l0aCBhcnJheSBvZiBvYmplY3RzXCIsIGFzeW5jICgpID0+IHtcbiAgICBjb25zdCBwYXRoID0gYXdhaXQgd3JpdGVUZW1wRmlsZShKU09OLnN0cmluZ2lmeShbeyBpZDogMSwgbmFtZTogXCJhbGljZVwiIH1dKSlcbiAgICBjb25zdCByZXNvdXJjZTogUmVzb3VyY2UgPSB7IGRhdGE6IHBhdGgsIGZpbGVEaWFsZWN0OiB7IGZvcm1hdDogXCJqc29uXCIgfSB9XG5cbiAgICBjb25zdCByZXN1bHQgPSBhd2FpdCBpbmZlckZpbGVEaWFsZWN0VG9vbC5leGVjdXRlPy4oXG4gICAgICB7XG4gICAgICAgIHJlc291cmNlLFxuICAgICAgfSxcbiAgICAgIHt9LFxuICAgIClcblxuICAgIGV4cGVjdC5hc3NlcnQocmVzdWx0KVxuICAgIGV4cGVjdC5hc3NlcnQoIShcImVycm9yXCIgaW4gcmVzdWx0KSlcblxuICAgIGV4cGVjdChyZXN1bHQuZmlsZURpYWxlY3QpLnRvRXF1YWwoe1xuICAgICAgZm9ybWF0OiBcImpzb25cIixcbiAgICAgIHJvd1R5cGU6IFwib2JqZWN0XCIsXG4gICAgfSlcbiAgfSlcblxuICBpdChcImluZmVycyBKU09OIGZvcm1hdCB3aXRoIGFycmF5IG9mIGFycmF5c1wiLCBhc3luYyAoKSA9PiB7XG4gICAgY29uc3QgcGF0aCA9IGF3YWl0IHdyaXRlVGVtcEZpbGUoXG4gICAgICBKU09OLnN0cmluZ2lmeShbXG4gICAgICAgIFsxLCBcImFsaWNlXCJdLFxuICAgICAgICBbMiwgXCJib2JcIl0sXG4gICAgICBdKSxcbiAgICApXG4gICAgY29uc3QgcmVzb3VyY2U6IFJlc291cmNlID0geyBkYXRhOiBwYXRoLCBmaWxlRGlhbGVjdDogeyBmb3JtYXQ6IFwianNvblwiIH0gfVxuXG4gICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgaW5mZXJGaWxlRGlhbGVjdFRvb2wuZXhlY3V0ZT8uKFxuICAgICAge1xuICAgICAgICByZXNvdXJjZSxcbiAgICAgIH0sXG4gICAgICB7fSxcbiAgICApXG5cbiAgICBleHBlY3QuYXNzZXJ0KHJlc3VsdClcbiAgICBleHBlY3QuYXNzZXJ0KCEoXCJlcnJvclwiIGluIHJlc3VsdCkpXG5cbiAgICBleHBlY3QocmVzdWx0LmZpbGVEaWFsZWN0Py5mb3JtYXQpLnRvQmUoXCJqc29uXCIpXG4gICAgZXhwZWN0KHJlc3VsdC5maWxlRGlhbGVjdCkudG9IYXZlUHJvcGVydHkoXCJyb3dUeXBlXCIpXG4gIH0pXG5cbiAgaXQoXCJpbmZlcnMgSlNPTkwgZm9ybWF0XCIsIGFzeW5jICgpID0+IHtcbiAgICBjb25zdCBwYXRoID0gYXdhaXQgd3JpdGVUZW1wRmlsZShcbiAgICAgICd7XCJpZFwiOjEsXCJuYW1lXCI6XCJhbGljZVwifVxcbntcImlkXCI6MixcIm5hbWVcIjpcImJvYlwifScsXG4gICAgKVxuICAgIGNvbnN0IHJlc291cmNlOiBSZXNvdXJjZSA9IHsgZGF0YTogcGF0aCwgZmlsZURpYWxlY3Q6IHsgZm9ybWF0OiBcImpzb25sXCIgfSB9XG5cbiAgICBjb25zdCByZXN1bHQgPSBhd2FpdCBpbmZlckZpbGVEaWFsZWN0VG9vbC5leGVjdXRlPy4oXG4gICAgICB7XG4gICAgICAgIHJlc291cmNlLFxuICAgICAgfSxcbiAgICAgIHt9LFxuICAgIClcblxuICAgIGV4cGVjdC5hc3NlcnQocmVzdWx0KVxuICAgIGV4cGVjdC5hc3NlcnQoIShcImVycm9yXCIgaW4gcmVzdWx0KSlcblxuICAgIGV4cGVjdChyZXN1bHQuZmlsZURpYWxlY3Q/LmZvcm1hdCkudG9CZShcImpzb25sXCIpXG4gIH0pXG5cbiAgaXQoXCJpbmZlcnMgQ1NWIHdpdGggZGlmZmVyZW50IGRlbGltaXRlclwiLCBhc3luYyAoKSA9PiB7XG4gICAgY29uc3QgcGF0aCA9IGF3YWl0IHdyaXRlVGVtcEZpbGUoXCJpZDtuYW1lO2FnZVxcbjE7YWxpY2U7MjVcXG4yO2JvYjszMFwiKVxuICAgIGNvbnN0IHJlc291cmNlOiBSZXNvdXJjZSA9IHsgZGF0YTogcGF0aCwgZmlsZURpYWxlY3Q6IHsgZm9ybWF0OiBcImNzdlwiIH0gfVxuXG4gICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgaW5mZXJGaWxlRGlhbGVjdFRvb2wuZXhlY3V0ZT8uKFxuICAgICAge1xuICAgICAgICByZXNvdXJjZSxcbiAgICAgIH0sXG4gICAgICB7fSxcbiAgICApXG5cbiAgICBleHBlY3QuYXNzZXJ0KHJlc3VsdClcbiAgICBleHBlY3QuYXNzZXJ0KCEoXCJlcnJvclwiIGluIHJlc3VsdCkpXG5cbiAgICBleHBlY3QocmVzdWx0LmZpbGVEaWFsZWN0KS50b01hdGNoT2JqZWN0KHtcbiAgICAgIGZvcm1hdDogXCJjc3ZcIixcbiAgICAgIGRlbGltaXRlcjogXCI7XCIsXG4gICAgfSlcbiAgfSlcblxuICBpdChcImluZmVycyBDU1Ygd2l0aG91dCBoZWFkZXJzXCIsIGFzeW5jICgpID0+IHtcbiAgICBjb25zdCBwYXRoID0gYXdhaXQgd3JpdGVUZW1wRmlsZShcIjEsYWxpY2UsMjVcXG4yLGJvYiwzMFwiKVxuICAgIGNvbnN0IHJlc291cmNlOiBSZXNvdXJjZSA9IHsgZGF0YTogcGF0aCwgZmlsZURpYWxlY3Q6IHsgZm9ybWF0OiBcImNzdlwiIH0gfVxuXG4gICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgaW5mZXJGaWxlRGlhbGVjdFRvb2wuZXhlY3V0ZT8uKFxuICAgICAge1xuICAgICAgICByZXNvdXJjZSxcbiAgICAgIH0sXG4gICAgICB7fSxcbiAgICApXG5cbiAgICBleHBlY3QuYXNzZXJ0KHJlc3VsdClcbiAgICBleHBlY3QuYXNzZXJ0KCEoXCJlcnJvclwiIGluIHJlc3VsdCkpXG5cbiAgICBleHBlY3QocmVzdWx0LmZpbGVEaWFsZWN0Py5mb3JtYXQpLnRvQmUoXCJjc3ZcIilcbiAgICBleHBlY3QocmVzdWx0LmZpbGVEaWFsZWN0KS50b0hhdmVQcm9wZXJ0eShcImRlbGltaXRlclwiKVxuICB9KVxuXG4gIGl0KFwicmV0dXJucyB1bmRlZmluZWQgZm9yIGlubGluZSBkYXRhXCIsIGFzeW5jICgpID0+IHtcbiAgICBjb25zdCByZXNvdXJjZTogUmVzb3VyY2UgPSB7XG4gICAgICBkYXRhOiBbeyBpZDogMSB9XSxcbiAgICB9XG5cbiAgICBjb25zdCByZXN1bHQgPSBhd2FpdCBpbmZlckZpbGVEaWFsZWN0VG9vbC5leGVjdXRlPy4oXG4gICAgICB7XG4gICAgICAgIHJlc291cmNlLFxuICAgICAgfSxcbiAgICAgIHt9LFxuICAgIClcblxuICAgIGV4cGVjdC5hc3NlcnQocmVzdWx0KVxuICAgIGV4cGVjdC5hc3NlcnQoIShcImVycm9yXCIgaW4gcmVzdWx0KSlcblxuICAgIGV4cGVjdChyZXN1bHQuZmlsZURpYWxlY3QpLnRvQmVVbmRlZmluZWQoKVxuICB9KVxuXG4gIGl0KFwicmVzcGVjdHMgc2FtcGxlQnl0ZXMgb3B0aW9uXCIsIGFzeW5jICgpID0+IHtcbiAgICBjb25zdCBsYXJnZURhdGEgPSBBcnJheS5mcm9tKFxuICAgICAgeyBsZW5ndGg6IDEwMDAgfSxcbiAgICAgIChfLCBpKSA9PiBgJHtpfSxyb3cke2l9YCxcbiAgICApLmpvaW4oXCJcXG5cIilcbiAgICBjb25zdCBwYXRoID0gYXdhaXQgd3JpdGVUZW1wRmlsZShgaWQsbmFtZVxcbiR7bGFyZ2VEYXRhfWApXG4gICAgY29uc3QgcmVzb3VyY2U6IFJlc291cmNlID0geyBkYXRhOiBwYXRoLCBmaWxlRGlhbGVjdDogeyBmb3JtYXQ6IFwiY3N2XCIgfSB9XG5cbiAgICBjb25zdCByZXN1bHQgPSBhd2FpdCBpbmZlckZpbGVEaWFsZWN0VG9vbC5leGVjdXRlPy4oXG4gICAgICB7XG4gICAgICAgIHJlc291cmNlLFxuICAgICAgICBvcHRpb25zOiB7IHNhbXBsZUJ5dGVzOiAxMDAwIH0sXG4gICAgICB9LFxuICAgICAge30sXG4gICAgKVxuXG4gICAgZXhwZWN0LmFzc2VydChyZXN1bHQpXG4gICAgZXhwZWN0LmFzc2VydCghKFwiZXJyb3JcIiBpbiByZXN1bHQpKVxuXG4gICAgZXhwZWN0KHJlc3VsdC5maWxlRGlhbGVjdD8uZm9ybWF0KS50b0JlKFwiY3N2XCIpXG4gIH0pXG5cbiAgaXQoXCJpbmZlcnMgZGlhbGVjdCB3aXRoIHByb3ZpZGVkIGZvcm1hdCBoaW50XCIsIGFzeW5jICgpID0+IHtcbiAgICBjb25zdCBwYXRoID0gYXdhaXQgd3JpdGVUZW1wRmlsZShcImlkLG5hbWVcXG4xLGFsaWNlXFxuMixib2JcIilcbiAgICBjb25zdCByZXNvdXJjZTogUmVzb3VyY2UgPSB7XG4gICAgICBkYXRhOiBwYXRoLFxuICAgICAgZmlsZURpYWxlY3Q6IHsgZm9ybWF0OiBcImNzdlwiIH0sXG4gICAgfVxuXG4gICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgaW5mZXJGaWxlRGlhbGVjdFRvb2wuZXhlY3V0ZT8uKFxuICAgICAge1xuICAgICAgICByZXNvdXJjZSxcbiAgICAgIH0sXG4gICAgICB7fSxcbiAgICApXG5cbiAgICBleHBlY3QuYXNzZXJ0KHJlc3VsdClcbiAgICBleHBlY3QuYXNzZXJ0KCEoXCJlcnJvclwiIGluIHJlc3VsdCkpXG5cbiAgICBleHBlY3QocmVzdWx0LmZpbGVEaWFsZWN0Py5mb3JtYXQpLnRvQmUoXCJjc3ZcIilcbiAgICBleHBlY3QocmVzdWx0LmZpbGVEaWFsZWN0KS50b0hhdmVQcm9wZXJ0eShcImRlbGltaXRlclwiKVxuICB9KVxufSlcbiJdfQ==
|
|
@@ -197,7 +197,11 @@ export declare const queryTableTool: import("@mastra/core/tools").Tool<{
|
|
|
197
197
|
data?: unknown;
|
|
198
198
|
name?: string | undefined;
|
|
199
199
|
textual?: boolean | undefined;
|
|
200
|
-
|
|
200
|
+
integrity?: {
|
|
201
|
+
type: "md5" | "sha1" | "sha256" | "sha512";
|
|
202
|
+
hash: string;
|
|
203
|
+
} | undefined;
|
|
204
|
+
fileDialect?: string | {
|
|
201
205
|
format: "csv";
|
|
202
206
|
$schema?: string | undefined;
|
|
203
207
|
title?: string | undefined;
|
|
@@ -287,10 +291,6 @@ export declare const queryTableTool: import("@mastra/core/tools").Tool<{
|
|
|
287
291
|
title?: string | undefined;
|
|
288
292
|
description?: string | undefined;
|
|
289
293
|
} | undefined;
|
|
290
|
-
integrity?: {
|
|
291
|
-
type: "md5" | "sha1" | "sha256" | "sha512";
|
|
292
|
-
hash: string;
|
|
293
|
-
} | undefined;
|
|
294
294
|
dataSchema?: string | Record<string, unknown> | undefined;
|
|
295
295
|
tableSchema?: string | {
|
|
296
296
|
$schema?: string | undefined;
|
|
@@ -12,7 +12,7 @@ describe("queryTableTool", () => {
|
|
|
12
12
|
it("queries table with SELECT statement", async () => {
|
|
13
13
|
const csvContent = "id,name,age\n1,alice,25\n2,bob,30\n3,carol,28";
|
|
14
14
|
const csvPath = await writeTempFile(csvContent, { format: "csv" });
|
|
15
|
-
const resource = { data: csvPath,
|
|
15
|
+
const resource = { data: csvPath, fileDialect: { format: "csv" } };
|
|
16
16
|
const result = await queryTableTool.execute?.({
|
|
17
17
|
resource,
|
|
18
18
|
query: "SELECT * FROM self WHERE age > 25",
|
|
@@ -27,7 +27,7 @@ describe("queryTableTool", () => {
|
|
|
27
27
|
it("queries table with column selection", async () => {
|
|
28
28
|
const csvContent = "id,name,age,city\n1,alice,25,NYC\n2,bob,30,LA\n3,carol,28,SF";
|
|
29
29
|
const csvPath = await writeTempFile(csvContent, { format: "csv" });
|
|
30
|
-
const resource = { data: csvPath,
|
|
30
|
+
const resource = { data: csvPath, fileDialect: { format: "csv" } };
|
|
31
31
|
const result = await queryTableTool.execute?.({
|
|
32
32
|
resource,
|
|
33
33
|
query: "SELECT name, city FROM self",
|
|
@@ -44,7 +44,7 @@ describe("queryTableTool", () => {
|
|
|
44
44
|
it("queries table with ORDER BY clause", async () => {
|
|
45
45
|
const csvContent = "id,name,score\n1,alice,85\n2,bob,90\n3,carol,88";
|
|
46
46
|
const csvPath = await writeTempFile(csvContent, { format: "csv" });
|
|
47
|
-
const resource = { data: csvPath,
|
|
47
|
+
const resource = { data: csvPath, fileDialect: { format: "csv" } };
|
|
48
48
|
const result = await queryTableTool.execute?.({
|
|
49
49
|
resource,
|
|
50
50
|
query: "SELECT * FROM self ORDER BY score DESC",
|
|
@@ -60,7 +60,7 @@ describe("queryTableTool", () => {
|
|
|
60
60
|
it("queries table with aggregation", async () => {
|
|
61
61
|
const csvContent = "id,name,score\n1,alice,85\n2,bob,90\n3,carol,88";
|
|
62
62
|
const csvPath = await writeTempFile(csvContent, { format: "csv" });
|
|
63
|
-
const resource = { data: csvPath,
|
|
63
|
+
const resource = { data: csvPath, fileDialect: { format: "csv" } };
|
|
64
64
|
const result = await queryTableTool.execute?.({
|
|
65
65
|
resource,
|
|
66
66
|
query: "SELECT COUNT(*) as count, AVG(score) as avg_score FROM self",
|
|
@@ -75,7 +75,7 @@ describe("queryTableTool", () => {
|
|
|
75
75
|
it("queries table with WHERE and LIMIT", async () => {
|
|
76
76
|
const csvContent = "id,name,age\n1,alice,25\n2,bob,30\n3,carol,28\n4,dave,35\n5,eve,22";
|
|
77
77
|
const csvPath = await writeTempFile(csvContent, { format: "csv" });
|
|
78
|
-
const resource = { data: csvPath,
|
|
78
|
+
const resource = { data: csvPath, fileDialect: { format: "csv" } };
|
|
79
79
|
const result = await queryTableTool.execute?.({
|
|
80
80
|
resource,
|
|
81
81
|
query: "SELECT * FROM self WHERE age >= 25 ORDER BY age LIMIT 2",
|
|
@@ -124,7 +124,7 @@ describe("queryTableTool", () => {
|
|
|
124
124
|
it("returns all records when querying without filters", async () => {
|
|
125
125
|
const csvContent = "id,name\n1,alice\n2,bob\n3,carol";
|
|
126
126
|
const csvPath = await writeTempFile(csvContent, { format: "csv" });
|
|
127
|
-
const resource = { data: csvPath,
|
|
127
|
+
const resource = { data: csvPath, fileDialect: { format: "csv" } };
|
|
128
128
|
const result = await queryTableTool.execute?.({
|
|
129
129
|
resource,
|
|
130
130
|
query: "SELECT * FROM self",
|
|
@@ -135,4 +135,4 @@ describe("queryTableTool", () => {
|
|
|
135
135
|
expect(result.records.length).toBe(3);
|
|
136
136
|
});
|
|
137
137
|
});
|
|
138
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlcnkuc3BlYy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Rvb2xzL3RhYmxlL3F1ZXJ5LnNwZWMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLG1CQUFtQixDQUFBO0FBQ2pELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLEVBQUUsRUFBRSxNQUFNLFFBQVEsQ0FBQTtBQUM3QyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sWUFBWSxDQUFBO0FBRTNDLFFBQVEsQ0FBQyxnQkFBZ0IsRUFBRSxHQUFHLEVBQUU7SUFDOUIsRUFBRSxDQUFDLDBCQUEwQixFQUFFLEdBQUcsRUFBRTtRQUNsQyxNQUFNLENBQUMsY0FBYyxDQUFDLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQTtRQUM3QyxNQUFNLENBQUMsY0FBYyxDQUFDLFdBQVcsQ0FBQyxDQUFDLFVBQVUsRUFBRSxDQUFBO1FBQy9DLE1BQU0sQ0FBQyxjQUFjLENBQUMsV0FBVyxDQUFDLENBQUMsVUFBVSxFQUFFLENBQUE7UUFDL0MsTUFBTSxDQUFDLGNBQWMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxVQUFVLEVBQUUsQ0FBQTtRQUNoRCxNQUFNLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBQyxDQUFDLFVBQVUsQ0FBQyxVQUFVLENBQUMsQ0FBQTtJQUN2RCxDQUFDLENBQUMsQ0FBQTtJQUVGLEVBQUUsQ0FBQyxxQ0FBcUMsRUFBRSxLQUFLLElBQUksRUFBRTtRQUNuRCxNQUFNLFVBQVUsR0FBRywrQ0FBK0MsQ0FBQTtRQUNsRSxNQUFNLE9BQU8sR0FBRyxNQUFNLGFBQWEsQ0FBQyxVQUFVLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQTtRQUNsRSxNQUFNLFFBQVEsR0FBYSxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxFQUFFLENBQUE7UUFFeEUsTUFBTSxNQUFNLEdBQUcsTUFBTSxjQUFjLENBQUMsT0FBTyxFQUFFLENBQzNDO1lBQ0UsUUFBUTtZQUNSLEtBQUssRUFBRSxtQ0FBbUM7U0FDM0MsRUFDRCxFQUFFLENBQ0gsQ0FBQTtRQUVELE1BQU0sQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUE7UUFDckIsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsT0FBTyxJQUFJLE1BQU0sQ0FBQyxDQUFDLENBQUE7UUFFbkMsTUFBTSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFBO1FBQ2hELE1BQU0sQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQTtRQUNyQyxNQUFNLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLGNBQWMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQTtRQUN0RSxNQUFNLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLGNBQWMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQTtJQUMxRSxDQUFDLENBQUMsQ0FBQTtJQUVGLEVBQUUsQ0FBQyxxQ0FBcUMsRUFBRSxLQUFLLElBQUksRUFBRTtRQUNuRCxNQUFNLFVBQVUsR0FDZCw4REFBOEQsQ0FBQTtRQUNoRSxNQUFNLE9BQU8sR0FBRyxNQUFNLGFBQWEsQ0FBQyxVQUFVLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQTtRQUNsRSxNQUFNLFFBQVEsR0FBYSxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxFQUFFLENBQUE7UUFFeEUsTUFBTSxNQUFNLEdBQUcsTUFBTSxjQUFjLENBQUMsT0FBTyxFQUFFLENBQzNDO1lBQ0UsUUFBUTtZQUNSLEtBQUssRUFBRSw2QkFBNkI7U0FDckMsRUFDRCxFQUFFLENBQ0gsQ0FBQTtRQUVELE1BQU0sQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUE7UUFDckIsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsT0FBTyxJQUFJLE1BQU0sQ0FBQyxDQUFDLENBQUE7UUFFbkMsTUFBTSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFBO1FBQ2hELE1BQU0sQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQTtRQUNyQyxNQUFNLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsQ0FBQTtRQUNoRCxNQUFNLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsQ0FBQTtRQUNoRCxNQUFNLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLENBQUE7UUFDbEQsTUFBTSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxDQUFBO0lBQ3JELENBQUMsQ0FBQyxDQUFBO0lBRUYsRUFBRSxDQUFDLG9DQUFvQyxFQUFFLEtBQUssSUFBSSxFQUFFO1FBQ2xELE1BQU0sVUFBVSxHQUFHLGlEQUFpRCxDQUFBO1FBQ3BFLE1BQU0sT0FBTyxHQUFHLE1BQU0sYUFBYSxDQUFDLFVBQVUsRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFBO1FBQ2xFLE1BQU0sUUFBUSxHQUFhLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLEVBQUUsQ0FBQTtRQUV4RSxNQUFNLE1BQU0sR0FBRyxNQUFNLGNBQWMsQ0FBQyxPQUFPLEVBQUUsQ0FDM0M7WUFDRSxRQUFRO1lBQ1IsS0FBSyxFQUFFLHdDQUF3QztTQUNoRCxFQUNELEVBQUUsQ0FDSCxDQUFBO1FBRUQsTUFBTSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQTtRQUNyQixNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxPQUFPLElBQUksTUFBTSxDQUFDLENBQUMsQ0FBQTtRQUVuQyxNQUFNLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUE7UUFDaEQsTUFBTSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFBO1FBQ3JDLE1BQU0sQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQTtRQUNuRSxNQUFNLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUE7UUFDckUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFBO0lBQ3ZFLENBQUMsQ0FBQyxDQUFBO0lBRUYsRUFBRSxDQUFDLGdDQUFnQyxFQUFFLEtBQUssSUFBSSxFQUFFO1FBQzlDLE1BQU0sVUFBVSxHQUFHLGlEQUFpRCxDQUFBO1FBQ3BFLE1BQU0sT0FBTyxHQUFHLE1BQU0sYUFBYSxDQUFDLFVBQVUsRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFBO1FBQ2xFLE1BQU0sUUFBUSxHQUFhLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLEVBQUUsQ0FBQTtRQUV4RSxNQUFNLE1BQU0sR0FBRyxNQUFNLGNBQWMsQ0FBQyxPQUFPLEVBQUUsQ0FDM0M7WUFDRSxRQUFRO1lBQ1IsS0FBSyxFQUFFLDZEQUE2RDtTQUNyRSxFQUNELEVBQUUsQ0FDSCxDQUFBO1FBRUQsTUFBTSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQTtRQUNyQixNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxPQUFPLElBQUksTUFBTSxDQUFDLENBQUMsQ0FBQTtRQUVuQyxNQUFNLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUE7UUFDaEQsTUFBTSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFBO1FBQ3JDLE1BQU0sQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBQyxDQUFBO1FBQ2pELE1BQU0sQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsY0FBYyxDQUFDLFdBQVcsQ0FBQyxDQUFBO0lBQ3ZELENBQUMsQ0FBQyxDQUFBO0lBRUYsRUFBRSxDQUFDLG9DQUFvQyxFQUFFLEtBQUssSUFBSSxFQUFFO1FBQ2xELE1BQU0sVUFBVSxHQUNkLG9FQUFvRSxDQUFBO1FBQ3RFLE1BQU0sT0FBTyxHQUFHLE1BQU0sYUFBYSxDQUFDLFVBQVUsRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFBO1FBQ2xFLE1BQU0sUUFBUSxHQUFhLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLEVBQUUsQ0FBQTtRQUV4RSxNQUFNLE1BQU0sR0FBRyxNQUFNLGNBQWMsQ0FBQyxPQUFPLEVBQUUsQ0FDM0M7WUFDRSxRQUFRO1lBQ1IsS0FBSyxFQUFFLHlEQUF5RDtTQUNqRSxFQUNELEVBQUUsQ0FDSCxDQUFBO1FBRUQsTUFBTSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQTtRQUNyQixNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxPQUFPLElBQUksTUFBTSxDQUFDLENBQUMsQ0FBQTtRQUVuQyxNQUFNLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUE7UUFDaEQsTUFBTSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFBO0lBQ3ZDLENBQUMsQ0FBQyxDQUFBO0lBRUYsRUFBRSxDQUFDLHFCQUFxQixFQUFFLEtBQUssSUFBSSxFQUFFO1FBQ25DLE1BQU0sUUFBUSxHQUFhO1lBQ3pCLElBQUksRUFBRTtnQkFDSixFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFO2dCQUNuQyxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFO2dCQUNqQyxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFO2FBQ3BDO1NBQ0YsQ0FBQTtRQUVELE1BQU0sTUFBTSxHQUFHLE1BQU0sY0FBYyxDQUFDLE9BQU8sRUFBRSxDQUMzQztZQUNFLFFBQVE7WUFDUixLQUFLLEVBQUUsK0NBQStDO1NBQ3ZELEVBQ0QsRUFBRSxDQUNILENBQUE7UUFFRCxNQUFNLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFBO1FBQ3JCLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLE9BQU8sSUFBSSxNQUFNLENBQUMsQ0FBQyxDQUFBO1FBRW5DLE1BQU0sQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQTtRQUNoRCxNQUFNLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUE7UUFDckMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxjQUFjLENBQUMsRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFBO1FBQ2pFLE1BQU0sQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsY0FBYyxDQUFDLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQTtJQUNyRSxDQUFDLENBQUMsQ0FBQTtJQUVGLEVBQUUsQ0FBQyw4QkFBOEIsRUFBRSxLQUFLLElBQUksRUFBRTtRQUM1QyxNQUFNLFFBQVEsR0FBYTtZQUN6QixJQUFJLEVBQUU7Z0JBQ0osRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLEVBQUUsRUFBRTtnQkFDckMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLEVBQUUsRUFBRTthQUNwQztTQUNGLENBQUE7UUFFRCxNQUFNLE1BQU0sR0FBRyxNQUFNLGNBQWMsQ0FBQyxPQUFPLEVBQUUsQ0FDM0M7WUFDRSxRQUFRO1lBQ1IsS0FBSyxFQUFFLHVDQUF1QztTQUMvQyxFQUNELEVBQUUsQ0FDSCxDQUFBO1FBRUQsTUFBTSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQTtRQUNyQixNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxPQUFPLElBQUksTUFBTSxDQUFDLENBQUMsQ0FBQTtRQUVuQyxNQUFNLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUE7UUFDaEQsTUFBTSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFBO1FBQ3JDLE1BQU0sQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQTtJQUN6RSxDQUFDLENBQUMsQ0FBQTtJQUVGLEVBQUUsQ0FBQyxtREFBbUQsRUFBRSxLQUFLLElBQUksRUFBRTtRQUNqRSxNQUFNLFVBQVUsR0FBRyxrQ0FBa0MsQ0FBQTtRQUNyRCxNQUFNLE9BQU8sR0FBRyxNQUFNLGFBQWEsQ0FBQyxVQUFVLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQTtRQUNsRSxNQUFNLFFBQVEsR0FBYSxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxFQUFFLENBQUE7UUFFeEUsTUFBTSxNQUFNLEdBQUcsTUFBTSxjQUFjLENBQUMsT0FBTyxFQUFFLENBQzNDO1lBQ0UsUUFBUTtZQUNSLEtBQUssRUFBRSxvQkFBb0I7U0FDNUIsRUFDRCxFQUFFLENBQ0gsQ0FBQTtRQUVELE1BQU0sQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUE7UUFDckIsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsT0FBTyxJQUFJLE1BQU0sQ0FBQyxDQUFDLENBQUE7UUFFbkMsTUFBTSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFBO1FBQ2hELE1BQU0sQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQTtJQUN2QyxDQUFDLENBQUMsQ0FBQTtBQUNKLENBQUMsQ0FBQyxDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBSZXNvdXJjZSB9IGZyb20gXCJAZmFpcnNwZWMvbGlicmFyeVwiXG5pbXBvcnQgeyB3cml0ZVRlbXBGaWxlIH0gZnJvbSBcIkBmYWlyc3BlYy9saWJyYXJ5XCJcbmltcG9ydCB7IGRlc2NyaWJlLCBleHBlY3QsIGl0IH0gZnJvbSBcInZpdGVzdFwiXG5pbXBvcnQgeyBxdWVyeVRhYmxlVG9vbCB9IGZyb20gXCIuL3F1ZXJ5LnRzXCJcblxuZGVzY3JpYmUoXCJxdWVyeVRhYmxlVG9vbFwiLCAoKSA9PiB7XG4gIGl0KFwidmFsaWRhdGVzIHRvb2wgc3RydWN0dXJlXCIsICgpID0+IHtcbiAgICBleHBlY3QocXVlcnlUYWJsZVRvb2wuaWQpLnRvQmUoXCJxdWVyeS10YWJsZVwiKVxuICAgIGV4cGVjdChxdWVyeVRhYmxlVG9vbC5kZXNjcmlwdGlvbikudG9CZVRydXRoeSgpXG4gICAgZXhwZWN0KHF1ZXJ5VGFibGVUb29sLmlucHV0U2NoZW1hKS50b0JlVHJ1dGh5KClcbiAgICBleHBlY3QocXVlcnlUYWJsZVRvb2wub3V0cHV0U2NoZW1hKS50b0JlVHJ1dGh5KClcbiAgICBleHBlY3QocXVlcnlUYWJsZVRvb2wuZXhlY3V0ZSkudG9CZVR5cGVPZihcImZ1bmN0aW9uXCIpXG4gIH0pXG5cbiAgaXQoXCJxdWVyaWVzIHRhYmxlIHdpdGggU0VMRUNUIHN0YXRlbWVudFwiLCBhc3luYyAoKSA9PiB7XG4gICAgY29uc3QgY3N2Q29udGVudCA9IFwiaWQsbmFtZSxhZ2VcXG4xLGFsaWNlLDI1XFxuMixib2IsMzBcXG4zLGNhcm9sLDI4XCJcbiAgICBjb25zdCBjc3ZQYXRoID0gYXdhaXQgd3JpdGVUZW1wRmlsZShjc3ZDb250ZW50LCB7IGZvcm1hdDogXCJjc3ZcIiB9KVxuICAgIGNvbnN0IHJlc291cmNlOiBSZXNvdXJjZSA9IHsgZGF0YTogY3N2UGF0aCwgZGlhbGVjdDogeyBmb3JtYXQ6IFwiY3N2XCIgfSB9XG5cbiAgICBjb25zdCByZXN1bHQgPSBhd2FpdCBxdWVyeVRhYmxlVG9vbC5leGVjdXRlPy4oXG4gICAgICB7XG4gICAgICAgIHJlc291cmNlLFxuICAgICAgICBxdWVyeTogXCJTRUxFQ1QgKiBGUk9NIHNlbGYgV0hFUkUgYWdlID4gMjVcIixcbiAgICAgIH0sXG4gICAgICB7fSxcbiAgICApXG5cbiAgICBleHBlY3QuYXNzZXJ0KHJlc3VsdClcbiAgICBleHBlY3QuYXNzZXJ0KCEoXCJlcnJvclwiIGluIHJlc3VsdCkpXG5cbiAgICBleHBlY3QoQXJyYXkuaXNBcnJheShyZXN1bHQucmVjb3JkcykpLnRvQmUodHJ1ZSlcbiAgICBleHBlY3QocmVzdWx0LnJlY29yZHMubGVuZ3RoKS50b0JlKDIpXG4gICAgZXhwZWN0KHJlc3VsdC5yZWNvcmRzKS50b0NvbnRhaW5FcXVhbCh7IGlkOiAyLCBuYW1lOiBcImJvYlwiLCBhZ2U6IDMwIH0pXG4gICAgZXhwZWN0KHJlc3VsdC5yZWNvcmRzKS50b0NvbnRhaW5FcXVhbCh7IGlkOiAzLCBuYW1lOiBcImNhcm9sXCIsIGFnZTogMjggfSlcbiAgfSlcblxuICBpdChcInF1ZXJpZXMgdGFibGUgd2l0aCBjb2x1bW4gc2VsZWN0aW9uXCIsIGFzeW5jICgpID0+IHtcbiAgICBjb25zdCBjc3ZDb250ZW50ID1cbiAgICAgIFwiaWQsbmFtZSxhZ2UsY2l0eVxcbjEsYWxpY2UsMjUsTllDXFxuMixib2IsMzAsTEFcXG4zLGNhcm9sLDI4LFNGXCJcbiAgICBjb25zdCBjc3ZQYXRoID0gYXdhaXQgd3JpdGVUZW1wRmlsZShjc3ZDb250ZW50LCB7IGZvcm1hdDogXCJjc3ZcIiB9KVxuICAgIGNvbnN0IHJlc291cmNlOiBSZXNvdXJjZSA9IHsgZGF0YTogY3N2UGF0aCwgZGlhbGVjdDogeyBmb3JtYXQ6IFwiY3N2XCIgfSB9XG5cbiAgICBjb25zdCByZXN1bHQgPSBhd2FpdCBxdWVyeVRhYmxlVG9vbC5leGVjdXRlPy4oXG4gICAgICB7XG4gICAgICAgIHJlc291cmNlLFxuICAgICAgICBxdWVyeTogXCJTRUxFQ1QgbmFtZSwgY2l0eSBGUk9NIHNlbGZcIixcbiAgICAgIH0sXG4gICAgICB7fSxcbiAgICApXG5cbiAgICBleHBlY3QuYXNzZXJ0KHJlc3VsdClcbiAgICBleHBlY3QuYXNzZXJ0KCEoXCJlcnJvclwiIGluIHJlc3VsdCkpXG5cbiAgICBleHBlY3QoQXJyYXkuaXNBcnJheShyZXN1bHQucmVjb3JkcykpLnRvQmUodHJ1ZSlcbiAgICBleHBlY3QocmVzdWx0LnJlY29yZHMubGVuZ3RoKS50b0JlKDMpXG4gICAgZXhwZWN0KHJlc3VsdC5yZWNvcmRzWzBdKS50b0hhdmVQcm9wZXJ0eShcIm5hbWVcIilcbiAgICBleHBlY3QocmVzdWx0LnJlY29yZHNbMF0pLnRvSGF2ZVByb3BlcnR5KFwiY2l0eVwiKVxuICAgIGV4cGVjdChyZXN1bHQucmVjb3Jkc1swXSkubm90LnRvSGF2ZVByb3BlcnR5KFwiaWRcIilcbiAgICBleHBlY3QocmVzdWx0LnJlY29yZHNbMF0pLm5vdC50b0hhdmVQcm9wZXJ0eShcImFnZVwiKVxuICB9KVxuXG4gIGl0KFwicXVlcmllcyB0YWJsZSB3aXRoIE9SREVSIEJZIGNsYXVzZVwiLCBhc3luYyAoKSA9PiB7XG4gICAgY29uc3QgY3N2Q29udGVudCA9IFwiaWQsbmFtZSxzY29yZVxcbjEsYWxpY2UsODVcXG4yLGJvYiw5MFxcbjMsY2Fyb2wsODhcIlxuICAgIGNvbnN0IGNzdlBhdGggPSBhd2FpdCB3cml0ZVRlbXBGaWxlKGNzdkNvbnRlbnQsIHsgZm9ybWF0OiBcImNzdlwiIH0pXG4gICAgY29uc3QgcmVzb3VyY2U6IFJlc291cmNlID0geyBkYXRhOiBjc3ZQYXRoLCBkaWFsZWN0OiB7IGZvcm1hdDogXCJjc3ZcIiB9IH1cblxuICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHF1ZXJ5VGFibGVUb29sLmV4ZWN1dGU/LihcbiAgICAgIHtcbiAgICAgICAgcmVzb3VyY2UsXG4gICAgICAgIHF1ZXJ5OiBcIlNFTEVDVCAqIEZST00gc2VsZiBPUkRFUiBCWSBzY29yZSBERVNDXCIsXG4gICAgICB9LFxuICAgICAge30sXG4gICAgKVxuXG4gICAgZXhwZWN0LmFzc2VydChyZXN1bHQpXG4gICAgZXhwZWN0LmFzc2VydCghKFwiZXJyb3JcIiBpbiByZXN1bHQpKVxuXG4gICAgZXhwZWN0KEFycmF5LmlzQXJyYXkocmVzdWx0LnJlY29yZHMpKS50b0JlKHRydWUpXG4gICAgZXhwZWN0KHJlc3VsdC5yZWNvcmRzLmxlbmd0aCkudG9CZSgzKVxuICAgIGV4cGVjdChyZXN1bHQucmVjb3Jkc1swXSkudG9NYXRjaE9iamVjdCh7IG5hbWU6IFwiYm9iXCIsIHNjb3JlOiA5MCB9KVxuICAgIGV4cGVjdChyZXN1bHQucmVjb3Jkc1sxXSkudG9NYXRjaE9iamVjdCh7IG5hbWU6IFwiY2Fyb2xcIiwgc2NvcmU6IDg4IH0pXG4gICAgZXhwZWN0KHJlc3VsdC5yZWNvcmRzWzJdKS50b01hdGNoT2JqZWN0KHsgbmFtZTogXCJhbGljZVwiLCBzY29yZTogODUgfSlcbiAgfSlcblxuICBpdChcInF1ZXJpZXMgdGFibGUgd2l0aCBhZ2dyZWdhdGlvblwiLCBhc3luYyAoKSA9PiB7XG4gICAgY29uc3QgY3N2Q29udGVudCA9IFwiaWQsbmFtZSxzY29yZVxcbjEsYWxpY2UsODVcXG4yLGJvYiw5MFxcbjMsY2Fyb2wsODhcIlxuICAgIGNvbnN0IGNzdlBhdGggPSBhd2FpdCB3cml0ZVRlbXBGaWxlKGNzdkNvbnRlbnQsIHsgZm9ybWF0OiBcImNzdlwiIH0pXG4gICAgY29uc3QgcmVzb3VyY2U6IFJlc291cmNlID0geyBkYXRhOiBjc3ZQYXRoLCBkaWFsZWN0OiB7IGZvcm1hdDogXCJjc3ZcIiB9IH1cblxuICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHF1ZXJ5VGFibGVUb29sLmV4ZWN1dGU/LihcbiAgICAgIHtcbiAgICAgICAgcmVzb3VyY2UsXG4gICAgICAgIHF1ZXJ5OiBcIlNFTEVDVCBDT1VOVCgqKSBhcyBjb3VudCwgQVZHKHNjb3JlKSBhcyBhdmdfc2NvcmUgRlJPTSBzZWxmXCIsXG4gICAgICB9LFxuICAgICAge30sXG4gICAgKVxuXG4gICAgZXhwZWN0LmFzc2VydChyZXN1bHQpXG4gICAgZXhwZWN0LmFzc2VydCghKFwiZXJyb3JcIiBpbiByZXN1bHQpKVxuXG4gICAgZXhwZWN0KEFycmF5LmlzQXJyYXkocmVzdWx0LnJlY29yZHMpKS50b0JlKHRydWUpXG4gICAgZXhwZWN0KHJlc3VsdC5yZWNvcmRzLmxlbmd0aCkudG9CZSgxKVxuICAgIGV4cGVjdChyZXN1bHQucmVjb3Jkc1swXSkudG9IYXZlUHJvcGVydHkoXCJjb3VudFwiKVxuICAgIGV4cGVjdChyZXN1bHQucmVjb3Jkc1swXSkudG9IYXZlUHJvcGVydHkoXCJhdmdfc2NvcmVcIilcbiAgfSlcblxuICBpdChcInF1ZXJpZXMgdGFibGUgd2l0aCBXSEVSRSBhbmQgTElNSVRcIiwgYXN5bmMgKCkgPT4ge1xuICAgIGNvbnN0IGNzdkNvbnRlbnQgPVxuICAgICAgXCJpZCxuYW1lLGFnZVxcbjEsYWxpY2UsMjVcXG4yLGJvYiwzMFxcbjMsY2Fyb2wsMjhcXG40LGRhdmUsMzVcXG41LGV2ZSwyMlwiXG4gICAgY29uc3QgY3N2UGF0aCA9IGF3YWl0IHdyaXRlVGVtcEZpbGUoY3N2Q29udGVudCwgeyBmb3JtYXQ6IFwiY3N2XCIgfSlcbiAgICBjb25zdCByZXNvdXJjZTogUmVzb3VyY2UgPSB7IGRhdGE6IGNzdlBhdGgsIGRpYWxlY3Q6IHsgZm9ybWF0OiBcImNzdlwiIH0gfVxuXG4gICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgcXVlcnlUYWJsZVRvb2wuZXhlY3V0ZT8uKFxuICAgICAge1xuICAgICAgICByZXNvdXJjZSxcbiAgICAgICAgcXVlcnk6IFwiU0VMRUNUICogRlJPTSBzZWxmIFdIRVJFIGFnZSA+PSAyNSBPUkRFUiBCWSBhZ2UgTElNSVQgMlwiLFxuICAgICAgfSxcbiAgICAgIHt9LFxuICAgIClcblxuICAgIGV4cGVjdC5hc3NlcnQocmVzdWx0KVxuICAgIGV4cGVjdC5hc3NlcnQoIShcImVycm9yXCIgaW4gcmVzdWx0KSlcblxuICAgIGV4cGVjdChBcnJheS5pc0FycmF5KHJlc3VsdC5yZWNvcmRzKSkudG9CZSh0cnVlKVxuICAgIGV4cGVjdChyZXN1bHQucmVjb3Jkcy5sZW5ndGgpLnRvQmUoMilcbiAgfSlcblxuICBpdChcInF1ZXJpZXMgaW5saW5lIGRhdGFcIiwgYXN5bmMgKCkgPT4ge1xuICAgIGNvbnN0IHJlc291cmNlOiBSZXNvdXJjZSA9IHtcbiAgICAgIGRhdGE6IFtcbiAgICAgICAgeyBpZDogMSwgbmFtZTogXCJhbGljZVwiLCBzY29yZTogODUgfSxcbiAgICAgICAgeyBpZDogMiwgbmFtZTogXCJib2JcIiwgc2NvcmU6IDkwIH0sXG4gICAgICAgIHsgaWQ6IDMsIG5hbWU6IFwiY2Fyb2xcIiwgc2NvcmU6IDg4IH0sXG4gICAgICBdLFxuICAgIH1cblxuICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHF1ZXJ5VGFibGVUb29sLmV4ZWN1dGU/LihcbiAgICAgIHtcbiAgICAgICAgcmVzb3VyY2UsXG4gICAgICAgIHF1ZXJ5OiBcIlNFTEVDVCBuYW1lLCBzY29yZSBGUk9NIHNlbGYgV0hFUkUgc2NvcmUgPiA4NVwiLFxuICAgICAgfSxcbiAgICAgIHt9LFxuICAgIClcblxuICAgIGV4cGVjdC5hc3NlcnQocmVzdWx0KVxuICAgIGV4cGVjdC5hc3NlcnQoIShcImVycm9yXCIgaW4gcmVzdWx0KSlcblxuICAgIGV4cGVjdChBcnJheS5pc0FycmF5KHJlc3VsdC5yZWNvcmRzKSkudG9CZSh0cnVlKVxuICAgIGV4cGVjdChyZXN1bHQucmVjb3Jkcy5sZW5ndGgpLnRvQmUoMilcbiAgICBleHBlY3QocmVzdWx0LnJlY29yZHMpLnRvQ29udGFpbkVxdWFsKHsgbmFtZTogXCJib2JcIiwgc2NvcmU6IDkwIH0pXG4gICAgZXhwZWN0KHJlc3VsdC5yZWNvcmRzKS50b0NvbnRhaW5FcXVhbCh7IG5hbWU6IFwiY2Fyb2xcIiwgc2NvcmU6IDg4IH0pXG4gIH0pXG5cbiAgaXQoXCJxdWVyaWVzIHdpdGggSk9JTiBvcGVyYXRpb25zXCIsIGFzeW5jICgpID0+IHtcbiAgICBjb25zdCByZXNvdXJjZTogUmVzb3VyY2UgPSB7XG4gICAgICBkYXRhOiBbXG4gICAgICAgIHsgaWQ6IDEsIG5hbWU6IFwiYWxpY2VcIiwgZGVwdF9pZDogMTAgfSxcbiAgICAgICAgeyBpZDogMiwgbmFtZTogXCJib2JcIiwgZGVwdF9pZDogMjAgfSxcbiAgICAgIF0sXG4gICAgfVxuXG4gICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgcXVlcnlUYWJsZVRvb2wuZXhlY3V0ZT8uKFxuICAgICAge1xuICAgICAgICByZXNvdXJjZSxcbiAgICAgICAgcXVlcnk6IFwiU0VMRUNUICogRlJPTSBzZWxmIFdIRVJFIGRlcHRfaWQgPSAxMFwiLFxuICAgICAgfSxcbiAgICAgIHt9LFxuICAgIClcblxuICAgIGV4cGVjdC5hc3NlcnQocmVzdWx0KVxuICAgIGV4cGVjdC5hc3NlcnQoIShcImVycm9yXCIgaW4gcmVzdWx0KSlcblxuICAgIGV4cGVjdChBcnJheS5pc0FycmF5KHJlc3VsdC5yZWNvcmRzKSkudG9CZSh0cnVlKVxuICAgIGV4cGVjdChyZXN1bHQucmVjb3Jkcy5sZW5ndGgpLnRvQmUoMSlcbiAgICBleHBlY3QocmVzdWx0LnJlY29yZHNbMF0pLnRvTWF0Y2hPYmplY3QoeyBuYW1lOiBcImFsaWNlXCIsIGRlcHRfaWQ6IDEwIH0pXG4gIH0pXG5cbiAgaXQoXCJyZXR1cm5zIGFsbCByZWNvcmRzIHdoZW4gcXVlcnlpbmcgd2l0aG91dCBmaWx0ZXJzXCIsIGFzeW5jICgpID0+IHtcbiAgICBjb25zdCBjc3ZDb250ZW50ID0gXCJpZCxuYW1lXFxuMSxhbGljZVxcbjIsYm9iXFxuMyxjYXJvbFwiXG4gICAgY29uc3QgY3N2UGF0aCA9IGF3YWl0IHdyaXRlVGVtcEZpbGUoY3N2Q29udGVudCwgeyBmb3JtYXQ6IFwiY3N2XCIgfSlcbiAgICBjb25zdCByZXNvdXJjZTogUmVzb3VyY2UgPSB7IGRhdGE6IGNzdlBhdGgsIGRpYWxlY3Q6IHsgZm9ybWF0OiBcImNzdlwiIH0gfVxuXG4gICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgcXVlcnlUYWJsZVRvb2wuZXhlY3V0ZT8uKFxuICAgICAge1xuICAgICAgICByZXNvdXJjZSxcbiAgICAgICAgcXVlcnk6IFwiU0VMRUNUICogRlJPTSBzZWxmXCIsXG4gICAgICB9LFxuICAgICAge30sXG4gICAgKVxuXG4gICAgZXhwZWN0LmFzc2VydChyZXN1bHQpXG4gICAgZXhwZWN0LmFzc2VydCghKFwiZXJyb3JcIiBpbiByZXN1bHQpKVxuXG4gICAgZXhwZWN0KEFycmF5LmlzQXJyYXkocmVzdWx0LnJlY29yZHMpKS50b0JlKHRydWUpXG4gICAgZXhwZWN0KHJlc3VsdC5yZWNvcmRzLmxlbmd0aCkudG9CZSgzKVxuICB9KVxufSlcbiJdfQ==
|
|
138
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlcnkuc3BlYy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Rvb2xzL3RhYmxlL3F1ZXJ5LnNwZWMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLG1CQUFtQixDQUFBO0FBQ2pELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLEVBQUUsRUFBRSxNQUFNLFFBQVEsQ0FBQTtBQUM3QyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sWUFBWSxDQUFBO0FBRTNDLFFBQVEsQ0FBQyxnQkFBZ0IsRUFBRSxHQUFHLEVBQUU7SUFDOUIsRUFBRSxDQUFDLDBCQUEwQixFQUFFLEdBQUcsRUFBRTtRQUNsQyxNQUFNLENBQUMsY0FBYyxDQUFDLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQTtRQUM3QyxNQUFNLENBQUMsY0FBYyxDQUFDLFdBQVcsQ0FBQyxDQUFDLFVBQVUsRUFBRSxDQUFBO1FBQy9DLE1BQU0sQ0FBQyxjQUFjLENBQUMsV0FBVyxDQUFDLENBQUMsVUFBVSxFQUFFLENBQUE7UUFDL0MsTUFBTSxDQUFDLGNBQWMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxVQUFVLEVBQUUsQ0FBQTtRQUNoRCxNQUFNLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBQyxDQUFDLFVBQVUsQ0FBQyxVQUFVLENBQUMsQ0FBQTtJQUN2RCxDQUFDLENBQUMsQ0FBQTtJQUVGLEVBQUUsQ0FBQyxxQ0FBcUMsRUFBRSxLQUFLLElBQUksRUFBRTtRQUNuRCxNQUFNLFVBQVUsR0FBRywrQ0FBK0MsQ0FBQTtRQUNsRSxNQUFNLE9BQU8sR0FBRyxNQUFNLGFBQWEsQ0FBQyxVQUFVLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQTtRQUNsRSxNQUFNLFFBQVEsR0FBYSxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsV0FBVyxFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFB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TSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFBO1FBQ2hELE1BQU0sQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQTtJQUN2QyxDQUFDLENBQUMsQ0FBQTtBQUNKLENBQUMsQ0FBQyxDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBSZXNvdXJjZSB9IGZyb20gXCJAZmFpcnNwZWMvbGlicmFyeVwiXG5pbXBvcnQgeyB3cml0ZVRlbXBGaWxlIH0gZnJvbSBcIkBmYWlyc3BlYy9saWJyYXJ5XCJcbmltcG9ydCB7IGRlc2NyaWJlLCBleHBlY3QsIGl0IH0gZnJvbSBcInZpdGVzdFwiXG5pbXBvcnQgeyBxdWVyeVRhYmxlVG9vbCB9IGZyb20gXCIuL3F1ZXJ5LnRzXCJcblxuZGVzY3JpYmUoXCJxdWVyeVRhYmxlVG9vbFwiLCAoKSA9PiB7XG4gIGl0KFwidmFsaWRhdGVzIHRvb2wgc3RydWN0dXJlXCIsICgpID0+IHtcbiAgICBleHBlY3QocXVlcnlUYWJsZVRvb2wuaWQpLnRvQmUoXCJxdWVyeS10YWJsZVwiKVxuICAgIGV4cGVjdChxdWVyeVRhYmxlVG9vbC5kZXNjcmlwdGlvbikudG9CZVRydXRoeSgpXG4gICAgZXhwZWN0KHF1ZXJ5VGFibGVUb29sLmlucHV0U2NoZW1hKS50b0JlVHJ1dGh5KClcbiAgICBleHBlY3QocXVlcnlUYWJsZVRvb2wub3V0cHV0U2NoZW1hKS50b0JlVHJ1dGh5KClcbiAgICBleHBlY3QocXVlcnlUYWJsZVRvb2wuZXhlY3V0ZSkudG9CZVR5cGVPZihcImZ1bmN0aW9uXCIpXG4gIH0pXG5cbiAgaXQoXCJxdWVyaWVzIHRhYmxlIHdpdGggU0VMRUNUIHN0YXRlbWVudFwiLCBhc3luYyAoKSA9PiB7XG4gICAgY29uc3QgY3N2Q29udGVudCA9IFwiaWQsbmFtZSxhZ2VcXG4xLGFsaWNlLDI1XFxuMixib2IsMzBcXG4zLGNhcm9sLDI4XCJcbiAgICBjb25zdCBjc3ZQYXRoID0gYXdhaXQgd3JpdGVUZW1wRmlsZShjc3ZDb250ZW50LCB7IGZvcm1hdDogXCJjc3ZcIiB9KVxuICAgIGNvbnN0IHJlc291cmNlOiBSZXNvdXJjZSA9IHsgZGF0YTogY3N2UGF0aCwgZmlsZURpYWxlY3Q6IHsgZm9ybWF0OiBcImNzdlwiIH0gfVxuXG4gICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgcXVlcnlUYWJsZVRvb2wuZXhlY3V0ZT8uKFxuICAgICAge1xuICAgICAgICByZXNvdXJjZSxcbiAgICAgICAgcXVlcnk6IFwiU0VMRUNUICogRlJPTSBzZWxmIFdIRVJFIGFnZSA+IDI1XCIsXG4gICAgICB9LFxuICAgICAge30sXG4gICAgKVxuXG4gICAgZXhwZWN0LmFzc2VydChyZXN1bHQpXG4gICAgZXhwZWN0LmFzc2VydCghKFwiZXJyb3JcIiBpbiByZXN1bHQpKVxuXG4gICAgZXhwZWN0KEFycmF5LmlzQXJyYXkocmVzdWx0LnJlY29yZHMpKS50b0JlKHRydWUpXG4gICAgZXhwZWN0KHJlc3VsdC5yZWNvcmRzLmxlbmd0aCkudG9CZSgyKVxuICAgIGV4cGVjdChyZXN1bHQucmVjb3JkcykudG9Db250YWluRXF1YWwoeyBpZDogMiwgbmFtZTogXCJib2JcIiwgYWdlOiAzMCB9KVxuICAgIGV4cGVjdChyZXN1bHQucmVjb3JkcykudG9Db250YWluRXF1YWwoeyBpZDogMywgbmFtZTogXCJjYXJvbFwiLCBhZ2U6IDI4IH0pXG4gIH0pXG5cbiAgaXQoXCJxdWVyaWVzIHRhYmxlIHdpdGggY29sdW1uIHNlbGVjdGlvblwiLCBhc3luYyAoKSA9PiB7XG4gICAgY29uc3QgY3N2Q29udGVudCA9XG4gICAgICBcImlkLG5hbWUsYWdlLGNpdHlcXG4xLGFsaWNlLDI1LE5ZQ1xcbjIsYm9iLDMwLExBXFxuMyxjYXJvbCwyOCxTRlwiXG4gICAgY29uc3QgY3N2UGF0aCA9IGF3YWl0IHdyaXRlVGVtcEZpbGUoY3N2Q29udGVudCwgeyBmb3JtYXQ6IFwiY3N2XCIgfSlcbiAgICBjb25zdCByZXNvdXJjZTogUmVzb3VyY2UgPSB7IGRhdGE6IGNzdlBhdGgsIGZpbGVEaWFsZWN0OiB7IGZvcm1hdDogXCJjc3ZcIiB9IH1cblxuICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHF1ZXJ5VGFibGVUb29sLmV4ZWN1dGU/LihcbiAgICAgIHtcbiAgICAgICAgcmVzb3VyY2UsXG4gICAgICAgIHF1ZXJ5OiBcIlNFTEVDVCBuYW1lLCBjaXR5IEZST00gc2VsZlwiLFxuICAgICAgfSxcbiAgICAgIHt9LFxuICAgIClcblxuICAgIGV4cGVjdC5hc3NlcnQocmVzdWx0KVxuICAgIGV4cGVjdC5hc3NlcnQoIShcImVycm9yXCIgaW4gcmVzdWx0KSlcblxuICAgIGV4cGVjdChBcnJheS5pc0FycmF5KHJlc3VsdC5yZWNvcmRzKSkudG9CZSh0cnVlKVxuICAgIGV4cGVjdChyZXN1bHQucmVjb3Jkcy5sZW5ndGgpLnRvQmUoMylcbiAgICBleHBlY3QocmVzdWx0LnJlY29yZHNbMF0pLnRvSGF2ZVByb3BlcnR5KFwibmFtZVwiKVxuICAgIGV4cGVjdChyZXN1bHQucmVjb3Jkc1swXSkudG9IYXZlUHJvcGVydHkoXCJjaXR5XCIpXG4gICAgZXhwZWN0KHJlc3VsdC5yZWNvcmRzWzBdKS5ub3QudG9IYXZlUHJvcGVydHkoXCJpZFwiKVxuICAgIGV4cGVjdChyZXN1bHQucmVjb3Jkc1swXSkubm90LnRvSGF2ZVByb3BlcnR5KFwiYWdlXCIpXG4gIH0pXG5cbiAgaXQoXCJxdWVyaWVzIHRhYmxlIHdpdGggT1JERVIgQlkgY2xhdXNlXCIsIGFzeW5jICgpID0+IHtcbiAgICBjb25zdCBjc3ZDb250ZW50ID0gXCJpZCxuYW1lLHNjb3JlXFxuMSxhbGljZSw4NVxcbjIsYm9iLDkwXFxuMyxjYXJvbCw4OFwiXG4gICAgY29uc3QgY3N2UGF0aCA9IGF3YWl0IHdyaXRlVGVtcEZpbGUoY3N2Q29udGVudCwgeyBmb3JtYXQ6IFwiY3N2XCIgfSlcbiAgICBjb25zdCByZXNvdXJjZTogUmVzb3VyY2UgPSB7IGRhdGE6IGNzdlBhdGgsIGZpbGVEaWFsZWN0OiB7IGZvcm1hdDogXCJjc3ZcIiB9IH1cblxuICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHF1ZXJ5VGFibGVUb29sLmV4ZWN1dGU/LihcbiAgICAgIHtcbiAgICAgICAgcmVzb3VyY2UsXG4gICAgICAgIHF1ZXJ5OiBcIlNFTEVDVCAqIEZST00gc2VsZiBPUkRFUiBCWSBzY29yZSBERVNDXCIsXG4gICAgICB9LFxuICAgICAge30sXG4gICAgKVxuXG4gICAgZXhwZWN0LmFzc2VydChyZXN1bHQpXG4gICAgZXhwZWN0LmFzc2VydCghKFwiZXJyb3JcIiBpbiByZXN1bHQpKVxuXG4gICAgZXhwZWN0KEFycmF5LmlzQXJyYXkocmVzdWx0LnJlY29yZHMpKS50b0JlKHRydWUpXG4gICAgZXhwZWN0KHJlc3VsdC5yZWNvcmRzLmxlbmd0aCkudG9CZSgzKVxuICAgIGV4cGVjdChyZXN1bHQucmVjb3Jkc1swXSkudG9NYXRjaE9iamVjdCh7IG5hbWU6IFwiYm9iXCIsIHNjb3JlOiA5MCB9KVxuICAgIGV4cGVjdChyZXN1bHQucmVjb3Jkc1sxXSkudG9NYXRjaE9iamVjdCh7IG5hbWU6IFwiY2Fyb2xcIiwgc2NvcmU6IDg4IH0pXG4gICAgZXhwZWN0KHJlc3VsdC5yZWNvcmRzWzJdKS50b01hdGNoT2JqZWN0KHsgbmFtZTogXCJhbGljZVwiLCBzY29yZTogODUgfSlcbiAgfSlcblxuICBpdChcInF1ZXJpZXMgdGFibGUgd2l0aCBhZ2dyZWdhdGlvblwiLCBhc3luYyAoKSA9PiB7XG4gICAgY29uc3QgY3N2Q29udGVudCA9IFwiaWQsbmFtZSxzY29yZVxcbjEsYWxpY2UsODVcXG4yLGJvYiw5MFxcbjMsY2Fyb2wsODhcIlxuICAgIGNvbnN0IGNzdlBhdGggPSBhd2FpdCB3cml0ZVRlbXBGaWxlKGNzdkNvbnRlbnQsIHsgZm9ybWF0OiBcImNzdlwiIH0pXG4gICAgY29uc3QgcmVzb3VyY2U6IFJlc291cmNlID0geyBkYXRhOiBjc3ZQYXRoLCBmaWxlRGlhbGVjdDogeyBmb3JtYXQ6IFwiY3N2XCIgfSB9XG5cbiAgICBjb25zdCByZXN1bHQgPSBhd2FpdCBxdWVyeVRhYmxlVG9vbC5leGVjdXRlPy4oXG4gICAgICB7XG4gICAgICAgIHJlc291cmNlLFxuICAgICAgICBxdWVyeTogXCJTRUxFQ1QgQ09VTlQoKikgYXMgY291bnQsIEFWRyhzY29yZSkgYXMgYXZnX3Njb3JlIEZST00gc2VsZlwiLFxuICAgICAgfSxcbiAgICAgIHt9LFxuICAgIClcblxuICAgIGV4cGVjdC5hc3NlcnQocmVzdWx0KVxuICAgIGV4cGVjdC5hc3NlcnQoIShcImVycm9yXCIgaW4gcmVzdWx0KSlcblxuICAgIGV4cGVjdChBcnJheS5pc0FycmF5KHJlc3VsdC5yZWNvcmRzKSkudG9CZSh0cnVlKVxuICAgIGV4cGVjdChyZXN1bHQucmVjb3Jkcy5sZW5ndGgpLnRvQmUoMSlcbiAgICBleHBlY3QocmVzdWx0LnJlY29yZHNbMF0pLnRvSGF2ZVByb3BlcnR5KFwiY291bnRcIilcbiAgICBleHBlY3QocmVzdWx0LnJlY29yZHNbMF0pLnRvSGF2ZVByb3BlcnR5KFwiYXZnX3Njb3JlXCIpXG4gIH0pXG5cbiAgaXQoXCJxdWVyaWVzIHRhYmxlIHdpdGggV0hFUkUgYW5kIExJTUlUXCIsIGFzeW5jICgpID0+IHtcbiAgICBjb25zdCBjc3ZDb250ZW50ID1cbiAgICAgIFwiaWQsbmFtZSxhZ2VcXG4xLGFsaWNlLDI1XFxuMixib2IsMzBcXG4zLGNhcm9sLDI4XFxuNCxkYXZlLDM1XFxuNSxldmUsMjJcIlxuICAgIGNvbnN0IGNzdlBhdGggPSBhd2FpdCB3cml0ZVRlbXBGaWxlKGNzdkNvbnRlbnQsIHsgZm9ybWF0OiBcImNzdlwiIH0pXG4gICAgY29uc3QgcmVzb3VyY2U6IFJlc291cmNlID0geyBkYXRhOiBjc3ZQYXRoLCBmaWxlRGlhbGVjdDogeyBmb3JtYXQ6IFwiY3N2XCIgfSB9XG5cbiAgICBjb25zdCByZXN1bHQgPSBhd2FpdCBxdWVyeVRhYmxlVG9vbC5leGVjdXRlPy4oXG4gICAgICB7XG4gICAgICAgIHJlc291cmNlLFxuICAgICAgICBxdWVyeTogXCJTRUxFQ1QgKiBGUk9NIHNlbGYgV0hFUkUgYWdlID49IDI1IE9SREVSIEJZIGFnZSBMSU1JVCAyXCIsXG4gICAgICB9LFxuICAgICAge30sXG4gICAgKVxuXG4gICAgZXhwZWN0LmFzc2VydChyZXN1bHQpXG4gICAgZXhwZWN0LmFzc2VydCghKFwiZXJyb3JcIiBpbiByZXN1bHQpKVxuXG4gICAgZXhwZWN0KEFycmF5LmlzQXJyYXkocmVzdWx0LnJlY29yZHMpKS50b0JlKHRydWUpXG4gICAgZXhwZWN0KHJlc3VsdC5yZWNvcmRzLmxlbmd0aCkudG9CZSgyKVxuICB9KVxuXG4gIGl0KFwicXVlcmllcyBpbmxpbmUgZGF0YVwiLCBhc3luYyAoKSA9PiB7XG4gICAgY29uc3QgcmVzb3VyY2U6IFJlc291cmNlID0ge1xuICAgICAgZGF0YTogW1xuICAgICAgICB7IGlkOiAxLCBuYW1lOiBcImFsaWNlXCIsIHNjb3JlOiA4NSB9LFxuICAgICAgICB7IGlkOiAyLCBuYW1lOiBcImJvYlwiLCBzY29yZTogOTAgfSxcbiAgICAgICAgeyBpZDogMywgbmFtZTogXCJjYXJvbFwiLCBzY29yZTogODggfSxcbiAgICAgIF0sXG4gICAgfVxuXG4gICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgcXVlcnlUYWJsZVRvb2wuZXhlY3V0ZT8uKFxuICAgICAge1xuICAgICAgICByZXNvdXJjZSxcbiAgICAgICAgcXVlcnk6IFwiU0VMRUNUIG5hbWUsIHNjb3JlIEZST00gc2VsZiBXSEVSRSBzY29yZSA+IDg1XCIsXG4gICAgICB9LFxuICAgICAge30sXG4gICAgKVxuXG4gICAgZXhwZWN0LmFzc2VydChyZXN1bHQpXG4gICAgZXhwZWN0LmFzc2VydCghKFwiZXJyb3JcIiBpbiByZXN1bHQpKVxuXG4gICAgZXhwZWN0KEFycmF5LmlzQXJyYXkocmVzdWx0LnJlY29yZHMpKS50b0JlKHRydWUpXG4gICAgZXhwZWN0KHJlc3VsdC5yZWNvcmRzLmxlbmd0aCkudG9CZSgyKVxuICAgIGV4cGVjdChyZXN1bHQucmVjb3JkcykudG9Db250YWluRXF1YWwoeyBuYW1lOiBcImJvYlwiLCBzY29yZTogOTAgfSlcbiAgICBleHBlY3QocmVzdWx0LnJlY29yZHMpLnRvQ29udGFpbkVxdWFsKHsgbmFtZTogXCJjYXJvbFwiLCBzY29yZTogODggfSlcbiAgfSlcblxuICBpdChcInF1ZXJpZXMgd2l0aCBKT0lOIG9wZXJhdGlvbnNcIiwgYXN5bmMgKCkgPT4ge1xuICAgIGNvbnN0IHJlc291cmNlOiBSZXNvdXJjZSA9IHtcbiAgICAgIGRhdGE6IFtcbiAgICAgICAgeyBpZDogMSwgbmFtZTogXCJhbGljZVwiLCBkZXB0X2lkOiAxMCB9LFxuICAgICAgICB7IGlkOiAyLCBuYW1lOiBcImJvYlwiLCBkZXB0X2lkOiAyMCB9LFxuICAgICAgXSxcbiAgICB9XG5cbiAgICBjb25zdCByZXN1bHQgPSBhd2FpdCBxdWVyeVRhYmxlVG9vbC5leGVjdXRlPy4oXG4gICAgICB7XG4gICAgICAgIHJlc291cmNlLFxuICAgICAgICBxdWVyeTogXCJTRUxFQ1QgKiBGUk9NIHNlbGYgV0hFUkUgZGVwdF9pZCA9IDEwXCIsXG4gICAgICB9LFxuICAgICAge30sXG4gICAgKVxuXG4gICAgZXhwZWN0LmFzc2VydChyZXN1bHQpXG4gICAgZXhwZWN0LmFzc2VydCghKFwiZXJyb3JcIiBpbiByZXN1bHQpKVxuXG4gICAgZXhwZWN0KEFycmF5LmlzQXJyYXkocmVzdWx0LnJlY29yZHMpKS50b0JlKHRydWUpXG4gICAgZXhwZWN0KHJlc3VsdC5yZWNvcmRzLmxlbmd0aCkudG9CZSgxKVxuICAgIGV4cGVjdChyZXN1bHQucmVjb3Jkc1swXSkudG9NYXRjaE9iamVjdCh7IG5hbWU6IFwiYWxpY2VcIiwgZGVwdF9pZDogMTAgfSlcbiAgfSlcblxuICBpdChcInJldHVybnMgYWxsIHJlY29yZHMgd2hlbiBxdWVyeWluZyB3aXRob3V0IGZpbHRlcnNcIiwgYXN5bmMgKCkgPT4ge1xuICAgIGNvbnN0IGNzdkNvbnRlbnQgPSBcImlkLG5hbWVcXG4xLGFsaWNlXFxuMixib2JcXG4zLGNhcm9sXCJcbiAgICBjb25zdCBjc3ZQYXRoID0gYXdhaXQgd3JpdGVUZW1wRmlsZShjc3ZDb250ZW50LCB7IGZvcm1hdDogXCJjc3ZcIiB9KVxuICAgIGNvbnN0IHJlc291cmNlOiBSZXNvdXJjZSA9IHsgZGF0YTogY3N2UGF0aCwgZmlsZURpYWxlY3Q6IHsgZm9ybWF0OiBcImNzdlwiIH0gfVxuXG4gICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgcXVlcnlUYWJsZVRvb2wuZXhlY3V0ZT8uKFxuICAgICAge1xuICAgICAgICByZXNvdXJjZSxcbiAgICAgICAgcXVlcnk6IFwiU0VMRUNUICogRlJPTSBzZWxmXCIsXG4gICAgICB9LFxuICAgICAge30sXG4gICAgKVxuXG4gICAgZXhwZWN0LmFzc2VydChyZXN1bHQpXG4gICAgZXhwZWN0LmFzc2VydCghKFwiZXJyb3JcIiBpbiByZXN1bHQpKVxuXG4gICAgZXhwZWN0KEFycmF5LmlzQXJyYXkocmVzdWx0LnJlY29yZHMpKS50b0JlKHRydWUpXG4gICAgZXhwZWN0KHJlc3VsdC5yZWNvcmRzLmxlbmd0aCkudG9CZSgzKVxuICB9KVxufSlcbiJdfQ==
|
|
@@ -197,7 +197,11 @@ export declare const validateTableTool: import("@mastra/core/tools").Tool<{
|
|
|
197
197
|
data?: unknown;
|
|
198
198
|
name?: string | undefined;
|
|
199
199
|
textual?: boolean | undefined;
|
|
200
|
-
|
|
200
|
+
integrity?: {
|
|
201
|
+
type: "md5" | "sha1" | "sha256" | "sha512";
|
|
202
|
+
hash: string;
|
|
203
|
+
} | undefined;
|
|
204
|
+
fileDialect?: string | {
|
|
201
205
|
format: "csv";
|
|
202
206
|
$schema?: string | undefined;
|
|
203
207
|
title?: string | undefined;
|
|
@@ -287,10 +291,6 @@ export declare const validateTableTool: import("@mastra/core/tools").Tool<{
|
|
|
287
291
|
title?: string | undefined;
|
|
288
292
|
description?: string | undefined;
|
|
289
293
|
} | undefined;
|
|
290
|
-
integrity?: {
|
|
291
|
-
type: "md5" | "sha1" | "sha256" | "sha512";
|
|
292
|
-
hash: string;
|
|
293
|
-
} | undefined;
|
|
294
294
|
dataSchema?: string | Record<string, unknown> | undefined;
|
|
295
295
|
tableSchema?: string | {
|
|
296
296
|
$schema?: string | undefined;
|
|
@@ -197,7 +197,11 @@ export declare const inferTableSchemaTool: import("@mastra/core/tools").Tool<{
|
|
|
197
197
|
data?: unknown;
|
|
198
198
|
name?: string | undefined;
|
|
199
199
|
textual?: boolean | undefined;
|
|
200
|
-
|
|
200
|
+
integrity?: {
|
|
201
|
+
type: "md5" | "sha1" | "sha256" | "sha512";
|
|
202
|
+
hash: string;
|
|
203
|
+
} | undefined;
|
|
204
|
+
fileDialect?: string | {
|
|
201
205
|
format: "csv";
|
|
202
206
|
$schema?: string | undefined;
|
|
203
207
|
title?: string | undefined;
|
|
@@ -287,10 +291,6 @@ export declare const inferTableSchemaTool: import("@mastra/core/tools").Tool<{
|
|
|
287
291
|
title?: string | undefined;
|
|
288
292
|
description?: string | undefined;
|
|
289
293
|
} | undefined;
|
|
290
|
-
integrity?: {
|
|
291
|
-
type: "md5" | "sha1" | "sha256" | "sha512";
|
|
292
|
-
hash: string;
|
|
293
|
-
} | undefined;
|
|
294
294
|
dataSchema?: string | Record<string, unknown> | undefined;
|
|
295
295
|
tableSchema?: string | {
|
|
296
296
|
$schema?: string | undefined;
|
|
@@ -815,7 +815,7 @@ export declare const inferTableSchemaTool: import("@mastra/core/tools").Tool<{
|
|
|
815
815
|
keepStrings?: boolean | undefined;
|
|
816
816
|
} | undefined;
|
|
817
817
|
}, {
|
|
818
|
-
|
|
818
|
+
tableSchema?: {
|
|
819
819
|
$schema?: string | undefined;
|
|
820
820
|
title?: string | undefined;
|
|
821
821
|
description?: string | undefined;
|
|
@@ -9,12 +9,12 @@ export const inferTableSchemaTool = createTool({
|
|
|
9
9
|
options: InferTableSchemaOptions.optional().describe("Schema inference options"),
|
|
10
10
|
}),
|
|
11
11
|
outputSchema: z.object({
|
|
12
|
-
|
|
12
|
+
tableSchema: TableSchema.optional(),
|
|
13
13
|
}),
|
|
14
14
|
execute: async (input) => {
|
|
15
|
-
const
|
|
16
|
-
console.log(
|
|
17
|
-
return {
|
|
15
|
+
const tableSchema = await inferTableSchema(input.resource, input.options);
|
|
16
|
+
console.log(tableSchema);
|
|
17
|
+
return { tableSchema };
|
|
18
18
|
},
|
|
19
19
|
});
|
|
20
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
20
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5mZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi90b29scy90YWJsZVNjaGVtYS9pbmZlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLGdCQUFnQixFQUNoQixRQUFRLEVBQ1IsV0FBVyxHQUNaLE1BQU0sbUJBQW1CLENBQUE7QUFDMUIsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLG9CQUFvQixDQUFBO0FBQy9DLE9BQU8sRUFBRSxDQUFDLEVBQUUsTUFBTSxLQUFLLENBQUE7QUFFdkIsTUFBTSxDQUFDLE1BQU0sb0JBQW9CLEdBQUcsVUFBVSxDQUFDO0lBQzdDLEVBQUUsRUFBRSxvQkFBb0I7SUFDeEIsV0FBVyxFQUNULDZHQUE2RztJQUMvRyxXQUFXLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQztRQUNwQixRQUFRLEVBQUUsUUFBUSxDQUFDLFFBQVEsQ0FBQyx5Q0FBeUMsQ0FBQztRQUN0RSxPQUFPLEVBQUUsdUJBQXVCLENBQUMsUUFBUSxFQUFFLENBQUMsUUFBUSxDQUNsRCwwQkFBMEIsQ0FDM0I7S0FDRixDQUFDO0lBQ0YsWUFBWSxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUM7UUFDckIsV0FBVyxFQUFFLFdBQVcsQ0FBQyxRQUFRLEVBQUU7S0FDcEMsQ0FBQztJQUNGLE9BQU8sRUFBRSxLQUFLLEVBQUMsS0FBSyxFQUFDLEVBQUU7UUFDckIsTUFBTSxXQUFXLEdBQUcsTUFBTSxnQkFBZ0IsQ0FBQyxLQUFLLENBQUMsUUFBUSxFQUFFLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQTtRQUN6RSxPQUFPLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQyxDQUFBO1FBQ3hCLE9BQU8sRUFBRSxXQUFXLEVBQUUsQ0FBQTtJQUN4QixDQUFDO0NBQ0YsQ0FBQyxDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgSW5mZXJUYWJsZVNjaGVtYU9wdGlvbnMsXG4gIGluZmVyVGFibGVTY2hlbWEsXG4gIFJlc291cmNlLFxuICBUYWJsZVNjaGVtYSxcbn0gZnJvbSBcIkBmYWlyc3BlYy9saWJyYXJ5XCJcbmltcG9ydCB7IGNyZWF0ZVRvb2wgfSBmcm9tIFwiQG1hc3RyYS9jb3JlL3Rvb2xzXCJcbmltcG9ydCB7IHogfSBmcm9tIFwiem9kXCJcblxuZXhwb3J0IGNvbnN0IGluZmVyVGFibGVTY2hlbWFUb29sID0gY3JlYXRlVG9vbCh7XG4gIGlkOiBcImluZmVyLXRhYmxlLXNjaGVtYVwiLFxuICBkZXNjcmlwdGlvbjpcbiAgICBcIkluZmVyIGEgdGFibGUgc2NoZW1hIGZyb20gdGFibGUgcmVzb3VyY2UgZGF0YS4gQW5hbHl6ZXMgdGhlIGRhdGEgdG8gZGV0ZXJtaW5lIGNvbHVtbiB0eXBlcyBhbmQgY29uc3RyYWludHMuXCIsXG4gIGlucHV0U2NoZW1hOiB6Lm9iamVjdCh7XG4gICAgcmVzb3VyY2U6IFJlc291cmNlLmRlc2NyaWJlKFwiVGhlIHRhYmxlIHJlc291cmNlIHRvIGluZmVyIHNjaGVtYSBmcm9tXCIpLFxuICAgIG9wdGlvbnM6IEluZmVyVGFibGVTY2hlbWFPcHRpb25zLm9wdGlvbmFsKCkuZGVzY3JpYmUoXG4gICAgICBcIlNjaGVtYSBpbmZlcmVuY2Ugb3B0aW9uc1wiLFxuICAgICksXG4gIH0pLFxuICBvdXRwdXRTY2hlbWE6IHoub2JqZWN0KHtcbiAgICB0YWJsZVNjaGVtYTogVGFibGVTY2hlbWEub3B0aW9uYWwoKSxcbiAgfSksXG4gIGV4ZWN1dGU6IGFzeW5jIGlucHV0ID0+IHtcbiAgICBjb25zdCB0YWJsZVNjaGVtYSA9IGF3YWl0IGluZmVyVGFibGVTY2hlbWEoaW5wdXQucmVzb3VyY2UsIGlucHV0Lm9wdGlvbnMpXG4gICAgY29uc29sZS5sb2codGFibGVTY2hlbWEpXG4gICAgcmV0dXJuIHsgdGFibGVTY2hlbWEgfVxuICB9LFxufSlcbiJdfQ==
|