@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.
Files changed (77) hide show
  1. package/build/examples/client.js +16 -0
  2. package/build/main.js +6 -0
  3. package/build/package.json +1 -1
  4. package/build/server.js +2 -1
  5. package/build/tools/data/validate.d.ts +180 -178
  6. package/build/tools/data/validate.js +6 -3
  7. package/build/tools/data/validate.spec.js +22 -22
  8. package/build/tools/dataSchema/infer.d.ts +10 -8
  9. package/build/tools/dataSchema/infer.js +6 -3
  10. package/build/tools/dataSchema/infer.spec.js +12 -10
  11. package/build/tools/dataSchema/validate.d.ts +173 -171
  12. package/build/tools/dataSchema/validate.js +6 -3
  13. package/build/tools/dataSchema/validate.spec.js +15 -15
  14. package/build/tools/dataset/infer.d.ts +804 -802
  15. package/build/tools/dataset/infer.js +6 -3
  16. package/build/tools/dataset/infer.spec.js +18 -18
  17. package/build/tools/dataset/validate.d.ts +180 -178
  18. package/build/tools/dataset/validate.js +6 -3
  19. package/build/tools/dataset/validate.spec.js +16 -16
  20. package/build/tools/dialect/infer.d.ts +98 -96
  21. package/build/tools/dialect/infer.js +6 -3
  22. package/build/tools/dialect/infer.spec.js +16 -14
  23. package/build/tools/table/query.d.ts +10 -8
  24. package/build/tools/table/query.js +6 -3
  25. package/build/tools/table/query.spec.js +31 -31
  26. package/build/tools/table/validate.d.ts +180 -178
  27. package/build/tools/table/validate.js +6 -3
  28. package/build/tools/table/validate.spec.js +11 -11
  29. package/build/tools/tableSchema/infer.d.ts +501 -499
  30. package/build/tools/tableSchema/infer.js +7 -3
  31. package/build/tools/tableSchema/infer.spec.js +35 -33
  32. package/build/tools/tableSchema/validate.d.ts +173 -171
  33. package/build/tools/tableSchema/validate.js +6 -3
  34. package/build/tools/tableSchema/validate.spec.js +13 -13
  35. package/package.json +2 -2
  36. package/build/actions/tableSchema/asHtml.d.ts +0 -4
  37. package/build/actions/tableSchema/asHtml.js +0 -82
  38. package/build/actions/tableSchema/asHtml.spec.js +0 -356
  39. package/build/actions/tableSchema/asMarkdown.d.ts +0 -4
  40. package/build/actions/tableSchema/asMarkdown.js +0 -65
  41. package/build/actions/tableSchema/asMarkdown.spec.js +0 -133
  42. package/build/document/Document.d.ts +0 -2
  43. package/build/document/Document.js +0 -2
  44. package/build/document/index.d.ts +0 -3
  45. package/build/document/index.js +0 -3
  46. package/build/document/types/Base.d.ts +0 -3
  47. package/build/document/types/Base.js +0 -2
  48. package/build/document/types/Json.d.ts +0 -5
  49. package/build/document/types/Json.js +0 -2
  50. package/build/document/validate.d.ts +0 -5
  51. package/build/document/validate.js +0 -23
  52. package/build/document/validate.spec.d.ts +0 -1
  53. package/build/document/validate.spec.js +0 -71
  54. package/build/plugin.d.ts +0 -6
  55. package/build/plugin.js +0 -15
  56. package/build/schema/convert/toHtml.d.ts +0 -4
  57. package/build/schema/convert/toHtml.js +0 -107
  58. package/build/schema/convert/toHtml.spec.d.ts +0 -1
  59. package/build/schema/convert/toHtml.spec.js +0 -432
  60. package/build/schema/convert/toMarkdown.d.ts +0 -4
  61. package/build/schema/convert/toMarkdown.js +0 -75
  62. package/build/schema/convert/toMarkdown.spec.d.ts +0 -1
  63. package/build/schema/convert/toMarkdown.spec.js +0 -137
  64. package/build/schema/index.d.ts +0 -2
  65. package/build/schema/index.js +0 -3
  66. package/build/tableSchema/convert/toHtml.d.ts +0 -4
  67. package/build/tableSchema/convert/toHtml.js +0 -80
  68. package/build/tableSchema/convert/toHtml.spec.d.ts +0 -1
  69. package/build/tableSchema/convert/toHtml.spec.js +0 -375
  70. package/build/tableSchema/convert/toMarkdown.d.ts +0 -4
  71. package/build/tableSchema/convert/toMarkdown.js +0 -57
  72. package/build/tableSchema/convert/toMarkdown.spec.d.ts +0 -1
  73. package/build/tableSchema/convert/toMarkdown.spec.js +0 -141
  74. package/build/tableSchema/index.d.ts +0 -2
  75. package/build/tableSchema/index.js +0 -3
  76. /package/build/{actions/tableSchema/asHtml.spec.d.ts → examples/client.d.ts} +0 -0
  77. /package/build/{actions/tableSchema/asMarkdown.spec.d.ts → main.d.ts} +0 -0
@@ -302,7 +302,7 @@ export declare const validateTableTool: 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 validateTableTool: 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 validateTableTool: 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 validateTableTool: 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 validateTableTool: 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 validateTableTool: 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;
@@ -823,177 +823,179 @@ export declare const validateTableTool: import("@mastra/core/tools").Tool<{
823
823
  maxErrors?: number | undefined;
824
824
  }) | undefined;
825
825
  }, {
826
- valid: boolean;
827
- errors: ({
828
- type: "metadata";
829
- message: string;
830
- jsonPointer: string;
831
- resourceName?: string | undefined;
832
- } | {
833
- type: "resource/missing";
834
- referencingResourceName: string;
835
- resourceName?: string | undefined;
836
- } | {
837
- type: "resource/type";
838
- expectedResourceType: "data" | "table";
839
- resourceName?: string | undefined;
840
- referencingResourceName?: string | undefined;
841
- } | {
842
- type: "column/missing";
843
- columnName: string;
844
- resourceName?: string | undefined;
845
- } | {
846
- type: "column/type";
847
- columnName: string;
848
- expectedColumnType: "string" | "number" | "boolean" | "object" | "date" | "url" | "array" | "integer" | "categorical" | "list" | "date-time" | "time" | "base64" | "hex" | "email" | "duration" | "wkt" | "wkb" | "decimal" | "geojson" | "topojson" | "unknown";
849
- actualColumnType: "string" | "number" | "boolean" | "object" | "date" | "url" | "array" | "integer" | "categorical" | "list" | "date-time" | "time" | "base64" | "hex" | "email" | "duration" | "wkt" | "wkb" | "decimal" | "geojson" | "topojson" | "unknown";
850
- resourceName?: string | undefined;
851
- } | {
852
- type: "row/primaryKey";
853
- rowNumber: number;
854
- columnNames: string[];
855
- resourceName?: string | undefined;
856
- } | {
857
- type: "row/uniqueKey";
858
- rowNumber: number;
859
- columnNames: string[];
860
- resourceName?: string | undefined;
861
- } | {
862
- columnName: string;
863
- rowNumber: number;
864
- cell: string;
865
- type: "cell/type";
866
- columnType: "string" | "number" | "boolean" | "object" | "date" | "url" | "array" | "integer" | "categorical" | "list" | "date-time" | "time" | "base64" | "hex" | "email" | "duration" | "wkt" | "wkb" | "decimal" | "geojson" | "topojson" | "unknown";
867
- resourceName?: string | undefined;
868
- } | {
869
- columnName: string;
870
- rowNumber: number;
871
- cell: string;
872
- type: "cell/required";
873
- resourceName?: string | undefined;
874
- } | {
875
- columnName: string;
876
- rowNumber: number;
877
- cell: string;
878
- type: "cell/minimum";
879
- minimum: string;
880
- resourceName?: string | undefined;
881
- } | {
882
- columnName: string;
883
- rowNumber: number;
884
- cell: string;
885
- type: "cell/maximum";
886
- maximum: string;
887
- resourceName?: string | undefined;
888
- } | {
889
- columnName: string;
890
- rowNumber: number;
891
- cell: string;
892
- type: "cell/exclusiveMinimum";
893
- minimum: string;
894
- resourceName?: string | undefined;
895
- } | {
896
- columnName: string;
897
- rowNumber: number;
898
- cell: string;
899
- type: "cell/exclusiveMaximum";
900
- maximum: string;
901
- resourceName?: string | undefined;
902
- } | {
903
- columnName: string;
904
- rowNumber: number;
905
- cell: string;
906
- type: "cell/multipleOf";
907
- multipleOf: number;
908
- resourceName?: string | undefined;
909
- } | {
910
- columnName: string;
911
- rowNumber: number;
912
- cell: string;
913
- type: "cell/minLength";
914
- minLength: number;
915
- resourceName?: string | undefined;
916
- } | {
917
- columnName: string;
918
- rowNumber: number;
919
- cell: string;
920
- type: "cell/maxLength";
921
- maxLength: number;
922
- resourceName?: string | undefined;
923
- } | {
924
- columnName: string;
925
- rowNumber: number;
926
- cell: string;
927
- type: "cell/minItems";
928
- minItems: number;
929
- resourceName?: string | undefined;
930
- } | {
931
- columnName: string;
932
- rowNumber: number;
933
- cell: string;
934
- type: "cell/maxItems";
935
- maxItems: number;
936
- resourceName?: string | undefined;
937
- } | {
938
- columnName: string;
939
- rowNumber: number;
940
- cell: string;
941
- type: "cell/pattern";
942
- pattern: string;
943
- resourceName?: string | undefined;
944
- } | {
945
- columnName: string;
946
- rowNumber: number;
947
- cell: string;
948
- type: "cell/unique";
949
- resourceName?: string | undefined;
950
- } | {
951
- columnName: string;
952
- rowNumber: number;
953
- cell: string;
954
- type: "cell/const";
955
- const: string;
956
- resourceName?: string | undefined;
957
- } | {
958
- columnName: string;
959
- rowNumber: number;
960
- cell: string;
961
- type: "cell/enum";
962
- enum: string[];
963
- resourceName?: string | undefined;
964
- } | {
965
- columnName: string;
966
- rowNumber: number;
967
- cell: string;
968
- type: "cell/json";
969
- message: string;
970
- jsonPointer: string;
971
- resourceName?: string | undefined;
972
- } | {
973
- type: "foreignKey";
974
- foreignKey: {
975
- columns: string[];
976
- reference: {
826
+ report: {
827
+ valid: boolean;
828
+ errors: ({
829
+ type: "metadata";
830
+ message: string;
831
+ jsonPointer: string;
832
+ resourceName?: string | undefined;
833
+ } | {
834
+ type: "resource/missing";
835
+ referencingResourceName: string;
836
+ resourceName?: string | undefined;
837
+ } | {
838
+ type: "resource/type";
839
+ expectedResourceType: "data" | "table";
840
+ resourceName?: string | undefined;
841
+ referencingResourceName?: string | undefined;
842
+ } | {
843
+ type: "column/missing";
844
+ columnName: string;
845
+ resourceName?: string | undefined;
846
+ } | {
847
+ type: "column/type";
848
+ columnName: string;
849
+ expectedColumnType: "string" | "number" | "boolean" | "object" | "date" | "url" | "array" | "integer" | "categorical" | "list" | "date-time" | "time" | "base64" | "hex" | "email" | "duration" | "wkt" | "wkb" | "decimal" | "geojson" | "topojson" | "unknown";
850
+ actualColumnType: "string" | "number" | "boolean" | "object" | "date" | "url" | "array" | "integer" | "categorical" | "list" | "date-time" | "time" | "base64" | "hex" | "email" | "duration" | "wkt" | "wkb" | "decimal" | "geojson" | "topojson" | "unknown";
851
+ resourceName?: string | undefined;
852
+ } | {
853
+ type: "row/primaryKey";
854
+ rowNumber: number;
855
+ columnNames: string[];
856
+ resourceName?: string | undefined;
857
+ } | {
858
+ type: "row/uniqueKey";
859
+ rowNumber: number;
860
+ columnNames: string[];
861
+ resourceName?: string | undefined;
862
+ } | {
863
+ columnName: string;
864
+ rowNumber: number;
865
+ cell: string;
866
+ type: "cell/type";
867
+ columnType: "string" | "number" | "boolean" | "object" | "date" | "url" | "array" | "integer" | "categorical" | "list" | "date-time" | "time" | "base64" | "hex" | "email" | "duration" | "wkt" | "wkb" | "decimal" | "geojson" | "topojson" | "unknown";
868
+ resourceName?: string | undefined;
869
+ } | {
870
+ columnName: string;
871
+ rowNumber: number;
872
+ cell: string;
873
+ type: "cell/required";
874
+ resourceName?: string | undefined;
875
+ } | {
876
+ columnName: string;
877
+ rowNumber: number;
878
+ cell: string;
879
+ type: "cell/minimum";
880
+ minimum: string;
881
+ resourceName?: string | undefined;
882
+ } | {
883
+ columnName: string;
884
+ rowNumber: number;
885
+ cell: string;
886
+ type: "cell/maximum";
887
+ maximum: string;
888
+ resourceName?: string | undefined;
889
+ } | {
890
+ columnName: string;
891
+ rowNumber: number;
892
+ cell: string;
893
+ type: "cell/exclusiveMinimum";
894
+ minimum: string;
895
+ resourceName?: string | undefined;
896
+ } | {
897
+ columnName: string;
898
+ rowNumber: number;
899
+ cell: string;
900
+ type: "cell/exclusiveMaximum";
901
+ maximum: string;
902
+ resourceName?: string | undefined;
903
+ } | {
904
+ columnName: string;
905
+ rowNumber: number;
906
+ cell: string;
907
+ type: "cell/multipleOf";
908
+ multipleOf: number;
909
+ resourceName?: string | undefined;
910
+ } | {
911
+ columnName: string;
912
+ rowNumber: number;
913
+ cell: string;
914
+ type: "cell/minLength";
915
+ minLength: number;
916
+ resourceName?: string | undefined;
917
+ } | {
918
+ columnName: string;
919
+ rowNumber: number;
920
+ cell: string;
921
+ type: "cell/maxLength";
922
+ maxLength: number;
923
+ resourceName?: string | undefined;
924
+ } | {
925
+ columnName: string;
926
+ rowNumber: number;
927
+ cell: string;
928
+ type: "cell/minItems";
929
+ minItems: number;
930
+ resourceName?: string | undefined;
931
+ } | {
932
+ columnName: string;
933
+ rowNumber: number;
934
+ cell: string;
935
+ type: "cell/maxItems";
936
+ maxItems: number;
937
+ resourceName?: string | undefined;
938
+ } | {
939
+ columnName: string;
940
+ rowNumber: number;
941
+ cell: string;
942
+ type: "cell/pattern";
943
+ pattern: string;
944
+ resourceName?: string | undefined;
945
+ } | {
946
+ columnName: string;
947
+ rowNumber: number;
948
+ cell: string;
949
+ type: "cell/unique";
950
+ resourceName?: string | undefined;
951
+ } | {
952
+ columnName: string;
953
+ rowNumber: number;
954
+ cell: string;
955
+ type: "cell/const";
956
+ const: string;
957
+ resourceName?: string | undefined;
958
+ } | {
959
+ columnName: string;
960
+ rowNumber: number;
961
+ cell: string;
962
+ type: "cell/enum";
963
+ enum: string[];
964
+ resourceName?: string | undefined;
965
+ } | {
966
+ columnName: string;
967
+ rowNumber: number;
968
+ cell: string;
969
+ type: "cell/json";
970
+ message: string;
971
+ jsonPointer: string;
972
+ resourceName?: string | undefined;
973
+ } | {
974
+ type: "foreignKey";
975
+ foreignKey: {
977
976
  columns: string[];
978
- resource?: string | undefined;
977
+ reference: {
978
+ columns: string[];
979
+ resource?: string | undefined;
980
+ };
979
981
  };
980
- };
981
- cells: string[];
982
- resourceName?: string | undefined;
983
- } | {
984
- type: "data";
985
- message: string;
986
- jsonPointer: string;
987
- resourceName?: string | undefined;
988
- } | {
989
- type: "file/textual";
990
- resourceName?: string | undefined;
991
- actualEncoding?: string | undefined;
992
- } | {
993
- type: "file/integrity";
994
- hashType: string;
995
- expectedHash: string;
996
- actualHash: string;
997
- resourceName?: string | undefined;
998
- })[];
982
+ cells: string[];
983
+ resourceName?: string | undefined;
984
+ } | {
985
+ type: "data";
986
+ message: string;
987
+ jsonPointer: string;
988
+ resourceName?: string | undefined;
989
+ } | {
990
+ type: "file/textual";
991
+ resourceName?: string | undefined;
992
+ actualEncoding?: string | undefined;
993
+ } | {
994
+ type: "file/integrity";
995
+ hashType: string;
996
+ expectedHash: string;
997
+ actualHash: string;
998
+ resourceName?: string | undefined;
999
+ })[];
1000
+ };
999
1001
  }, unknown, unknown, import("@mastra/core/tools").ToolExecutionContext<unknown, unknown, unknown>, "validate-table", unknown>;
@@ -8,9 +8,12 @@ export const validateTableTool = createTool({
8
8
  resource: Resource.describe("The table resource to validate"),
9
9
  options: ValidateTableOptions.optional().describe("Validation options"),
10
10
  }),
11
- outputSchema: Report,
11
+ outputSchema: z.object({
12
+ report: Report,
13
+ }),
12
14
  execute: async (input) => {
13
- return await validateTable(input.resource, input.options);
15
+ const report = await validateTable(input.resource, input.options);
16
+ return { report };
14
17
  },
15
18
  });
16
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi90b29scy90YWJsZS92YWxpZGF0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsTUFBTSxFQUNOLFFBQVEsRUFDUixvQkFBb0IsRUFDcEIsYUFBYSxHQUNkLE1BQU0sbUJBQW1CLENBQUE7QUFDMUIsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLG9CQUFvQixDQUFBO0FBQy9DLE9BQU8sRUFBRSxDQUFDLEVBQUUsTUFBTSxLQUFLLENBQUE7QUFFdkIsTUFBTSxDQUFDLE1BQU0saUJBQWlCLEdBQUcsVUFBVSxDQUFDO0lBQzFDLEVBQUUsRUFBRSxnQkFBZ0I7SUFDcEIsV0FBVyxFQUNULCtGQUErRjtJQUNqRyxXQUFXLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQztRQUNwQixRQUFRLEVBQUUsUUFBUSxDQUFDLFFBQVEsQ0FBQyxnQ0FBZ0MsQ0FBQztRQUM3RCxPQUFPLEVBQUUsb0JBQW9CLENBQUMsUUFBUSxFQUFFLENBQUMsUUFBUSxDQUFDLG9CQUFvQixDQUFDO0tBQ3hFLENBQUM7SUFDRixZQUFZLEVBQUUsTUFBTTtJQUNwQixPQUFPLEVBQUUsS0FBSyxFQUFDLEtBQUssRUFBQyxFQUFFO1FBQ3JCLE9BQU8sTUFBTSxhQUFhLENBQUMsS0FBSyxDQUFDLFFBQVEsRUFBRSxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUE7SUFDM0QsQ0FBQztDQUNGLENBQUMsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIFJlcG9ydCxcbiAgUmVzb3VyY2UsXG4gIFZhbGlkYXRlVGFibGVPcHRpb25zLFxuICB2YWxpZGF0ZVRhYmxlLFxufSBmcm9tIFwiQGZhaXJzcGVjL2xpYnJhcnlcIlxuaW1wb3J0IHsgY3JlYXRlVG9vbCB9IGZyb20gXCJAbWFzdHJhL2NvcmUvdG9vbHNcIlxuaW1wb3J0IHsgeiB9IGZyb20gXCJ6b2RcIlxuXG5leHBvcnQgY29uc3QgdmFsaWRhdGVUYWJsZVRvb2wgPSBjcmVhdGVUb29sKHtcbiAgaWQ6IFwidmFsaWRhdGUtdGFibGVcIixcbiAgZGVzY3JpcHRpb246XG4gICAgXCJWYWxpZGF0ZSBhIHRhYmxlIHJlc291cmNlIGFnYWluc3QgaXRzIHNjaGVtYS4gUmV0dXJucyBhIHZhbGlkYXRpb24gcmVwb3J0IHdpdGggZXJyb3JzIGlmIGFueS5cIixcbiAgaW5wdXRTY2hlbWE6IHoub2JqZWN0KHtcbiAgICByZXNvdXJjZTogUmVzb3VyY2UuZGVzY3JpYmUoXCJUaGUgdGFibGUgcmVzb3VyY2UgdG8gdmFsaWRhdGVcIiksXG4gICAgb3B0aW9uczogVmFsaWRhdGVUYWJsZU9wdGlvbnMub3B0aW9uYWwoKS5kZXNjcmliZShcIlZhbGlkYXRpb24gb3B0aW9uc1wiKSxcbiAgfSksXG4gIG91dHB1dFNjaGVtYTogUmVwb3J0LFxuICBleGVjdXRlOiBhc3luYyBpbnB1dCA9PiB7XG4gICAgcmV0dXJuIGF3YWl0IHZhbGlkYXRlVGFibGUoaW5wdXQucmVzb3VyY2UsIGlucHV0Lm9wdGlvbnMpXG4gIH0sXG59KVxuIl19
19
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi90b29scy90YWJsZS92YWxpZGF0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsTUFBTSxFQUNOLFFBQVEsRUFDUixvQkFBb0IsRUFDcEIsYUFBYSxHQUNkLE1BQU0sbUJBQW1CLENBQUE7QUFDMUIsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLG9CQUFvQixDQUFBO0FBQy9DLE9BQU8sRUFBRSxDQUFDLEVBQUUsTUFBTSxLQUFLLENBQUE7QUFFdkIsTUFBTSxDQUFDLE1BQU0saUJBQWlCLEdBQUcsVUFBVSxDQUFDO0lBQzFDLEVBQUUsRUFBRSxnQkFBZ0I7SUFDcEIsV0FBVyxFQUNULCtGQUErRjtJQUNqRyxXQUFXLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQztRQUNwQixRQUFRLEVBQUUsUUFBUSxDQUFDLFFBQVEsQ0FBQyxnQ0FBZ0MsQ0FBQztRQUM3RCxPQUFPLEVBQUUsb0JBQW9CLENBQUMsUUFBUSxFQUFFLENBQUMsUUFBUSxDQUFDLG9CQUFvQixDQUFDO0tBQ3hFLENBQUM7SUFDRixZQUFZLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQztRQUNyQixNQUFNLEVBQUUsTUFBTTtLQUNmLENBQUM7SUFDRixPQUFPLEVBQUUsS0FBSyxFQUFDLEtBQUssRUFBQyxFQUFFO1FBQ3JCLE1BQU0sTUFBTSxHQUFHLE1BQU0sYUFBYSxDQUFDLEtBQUssQ0FBQyxRQUFRLEVBQUUsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFBO1FBQ2pFLE9BQU8sRUFBRSxNQUFNLEVBQUUsQ0FBQTtJQUNuQixDQUFDO0NBQ0YsQ0FBQyxDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgUmVwb3J0LFxuICBSZXNvdXJjZSxcbiAgVmFsaWRhdGVUYWJsZU9wdGlvbnMsXG4gIHZhbGlkYXRlVGFibGUsXG59IGZyb20gXCJAZmFpcnNwZWMvbGlicmFyeVwiXG5pbXBvcnQgeyBjcmVhdGVUb29sIH0gZnJvbSBcIkBtYXN0cmEvY29yZS90b29sc1wiXG5pbXBvcnQgeyB6IH0gZnJvbSBcInpvZFwiXG5cbmV4cG9ydCBjb25zdCB2YWxpZGF0ZVRhYmxlVG9vbCA9IGNyZWF0ZVRvb2woe1xuICBpZDogXCJ2YWxpZGF0ZS10YWJsZVwiLFxuICBkZXNjcmlwdGlvbjpcbiAgICBcIlZhbGlkYXRlIGEgdGFibGUgcmVzb3VyY2UgYWdhaW5zdCBpdHMgc2NoZW1hLiBSZXR1cm5zIGEgdmFsaWRhdGlvbiByZXBvcnQgd2l0aCBlcnJvcnMgaWYgYW55LlwiLFxuICBpbnB1dFNjaGVtYTogei5vYmplY3Qoe1xuICAgIHJlc291cmNlOiBSZXNvdXJjZS5kZXNjcmliZShcIlRoZSB0YWJsZSByZXNvdXJjZSB0byB2YWxpZGF0ZVwiKSxcbiAgICBvcHRpb25zOiBWYWxpZGF0ZVRhYmxlT3B0aW9ucy5vcHRpb25hbCgpLmRlc2NyaWJlKFwiVmFsaWRhdGlvbiBvcHRpb25zXCIpLFxuICB9KSxcbiAgb3V0cHV0U2NoZW1hOiB6Lm9iamVjdCh7XG4gICAgcmVwb3J0OiBSZXBvcnQsXG4gIH0pLFxuICBleGVjdXRlOiBhc3luYyBpbnB1dCA9PiB7XG4gICAgY29uc3QgcmVwb3J0ID0gYXdhaXQgdmFsaWRhdGVUYWJsZShpbnB1dC5yZXNvdXJjZSwgaW5wdXQub3B0aW9ucylcbiAgICByZXR1cm4geyByZXBvcnQgfVxuICB9LFxufSlcbiJdfQ==
@@ -26,8 +26,8 @@ describe("validateTableTool", () => {
26
26
  }, {});
27
27
  expect.assert(result);
28
28
  expect.assert(!("error" in result));
29
- expect(result.valid).toBe(true);
30
- expect(result.errors).toHaveLength(0);
29
+ expect(result.report.valid).toBe(true);
30
+ expect(result.report.errors).toHaveLength(0);
31
31
  });
32
32
  it("detects invalid data in table", async () => {
33
33
  const invalidResource = {
@@ -47,9 +47,9 @@ describe("validateTableTool", () => {
47
47
  }, {});
48
48
  expect.assert(result);
49
49
  expect.assert(!("error" in result));
50
- expect(result.valid).toBe(false);
51
- expect(result.errors.length).toBeGreaterThan(0);
52
- expect(result.errors[0]?.type).toContain("cell");
50
+ expect(result.report.valid).toBe(false);
51
+ expect(result.report.errors.length).toBeGreaterThan(0);
52
+ expect(result.report.errors[0]?.type).toContain("cell");
53
53
  });
54
54
  it("respects maxErrors option", async () => {
55
55
  const invalidResource = {
@@ -72,8 +72,8 @@ describe("validateTableTool", () => {
72
72
  }, {});
73
73
  expect.assert(result);
74
74
  expect.assert(!("error" in result));
75
- expect(result.valid).toBe(false);
76
- expect(result.errors.length).toBeLessThanOrEqual(2);
75
+ expect(result.report.valid).toBe(false);
76
+ expect(result.report.errors.length).toBeLessThanOrEqual(2);
77
77
  });
78
78
  it("infers schema when not provided", async () => {
79
79
  const resourceWithoutSchema = {
@@ -87,8 +87,8 @@ describe("validateTableTool", () => {
87
87
  }, {});
88
88
  expect.assert(result);
89
89
  expect.assert(!("error" in result));
90
- expect(result.valid).toBe(true);
91
- expect(result.errors).toHaveLength(0);
90
+ expect(result.report.valid).toBe(true);
91
+ expect(result.report.errors).toHaveLength(0);
92
92
  });
93
93
  it("skips inference when noInfer is true", async () => {
94
94
  const resourceWithoutSchema = {
@@ -100,7 +100,7 @@ describe("validateTableTool", () => {
100
100
  }, {});
101
101
  expect.assert(result);
102
102
  expect.assert(!("error" in result));
103
- expect(result.valid).toBe(true);
103
+ expect(result.report.valid).toBe(true);
104
104
  });
105
105
  });
106
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdGUuc3BlYy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Rvb2xzL3RhYmxlL3ZhbGlkYXRlLnNwZWMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsRUFBRSxFQUFFLE1BQU0sUUFBUSxDQUFBO0FBQzdDLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQTtBQUVqRCxRQUFRLENBQUMsbUJBQW1CLEVBQUUsR0FBRyxFQUFFO0lBQ2pDLEVBQUUsQ0FBQywwQkFBMEIsRUFBRSxHQUFHLEVBQUU7UUFDbEMsTUFBTSxDQUFDLGlCQUFpQixDQUFDLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFBO1FBQ25ELE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxXQUFXLENBQUMsQ0FBQyxVQUFVLEVBQUUsQ0FBQTtRQUNsRCxNQUFNLENBQUMsaUJBQWlCLENBQUMsV0FBVyxDQUFDLENBQUMsVUFBVSxFQUFFLENBQUE7UUFDbEQsTUFBTSxDQUFDLGlCQUFpQixDQUFDLFlBQVksQ0FBQyxDQUFDLFVBQVUsRUFBRSxDQUFBO1FBQ25ELE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxPQUFPLENBQUMsQ0FBQyxVQUFVLENBQUMsVUFBVSxDQUFDLENBQUE7SUFDMUQsQ0FBQyxDQUFDLENBQUE7SUFFRixFQUFFLENBQUMsa0NBQWtDLEVBQUUsS0FBSyxJQUFJLEVBQUU7UUFDaEQsTUFBTSxhQUFhLEdBQWE7WUFDOUIsSUFBSSxFQUFFO2dCQUNKLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFO2dCQUMxQixFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRTthQUN6QjtZQUNELFdBQVcsRUFBRTtnQkFDWCxVQUFVLEVBQUU7b0JBQ1YsSUFBSSxFQUFFLEVBQUUsSUFBSSxFQUFFLFFBQWlCLEVB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O1lBQ0UsUUFBUSxFQUFFLHFCQUFxQjtZQUMvQixPQUFPLEVBQUUsRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFO1NBQzNCLEVBQ0QsRUFBRSxDQUNILENBQUE7UUFFRCxNQUFNLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFBO1FBQ3JCLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLE9BQU8sSUFBSSxNQUFNLENBQUMsQ0FBQyxDQUFBO1FBRW5DLE1BQU0sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFBO0lBQ2pDLENBQUMsQ0FBQyxDQUFBO0FBQ0osQ0FBQyxDQUFDLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IFJlc291cmNlIH0gZnJvbSBcIkBmYWlyc3BlYy9saWJyYXJ5XCJcbmltcG9ydCB7IGRlc2NyaWJlLCBleHBlY3QsIGl0IH0gZnJvbSBcInZpdGVzdFwiXG5pbXBvcnQgeyB2YWxpZGF0ZVRhYmxlVG9vbCB9IGZyb20gXCIuL3ZhbGlkYXRlLnRzXCJcblxuZGVzY3JpYmUoXCJ2YWxpZGF0ZVRhYmxlVG9vbFwiLCAoKSA9PiB7XG4gIGl0KFwidmFsaWRhdGVzIHRvb2wgc3RydWN0dXJlXCIsICgpID0+IHtcbiAgICBleHBlY3QodmFsaWRhdGVUYWJsZVRvb2wuaWQpLnRvQmUoXCJ2YWxpZGF0ZS10YWJsZVwiKVxuICAgIGV4cGVjdCh2YWxpZGF0ZVRhYmxlVG9vbC5kZXNjcmlwdGlvbikudG9CZVRydXRoeSgpXG4gICAgZXhwZWN0KHZhbGlkYXRlVGFibGVUb29sLmlucHV0U2NoZW1hKS50b0JlVHJ1dGh5KClcbiAgICBleHBlY3QodmFsaWRhdGVUYWJsZVRvb2wub3V0cHV0U2NoZW1hKS50b0JlVHJ1dGh5KClcbiAgICBleHBlY3QodmFsaWRhdGVUYWJsZVRvb2wuZXhlY3V0ZSkudG9CZVR5cGVPZihcImZ1bmN0aW9uXCIpXG4gIH0pXG5cbiAgaXQoXCJ2YWxpZGF0ZXMgYSB2YWxpZCB0YWJsZSByZXNvdXJjZVwiLCBhc3luYyAoKSA9PiB7XG4gICAgY29uc3QgdmFsaWRSZXNvdXJjZTogUmVzb3VyY2UgPSB7XG4gICAgICBkYXRhOiBbXG4gICAgICAgIHsgbmFtZTogXCJBbGljZVwiLCBhZ2U6IDMwIH0sXG4gICAgICAgIHsgbmFtZTogXCJCb2JcIiwgYWdlOiAyNSB9LFxuICAgICAgXSxcbiAgICAgIHRhYmxlU2NoZW1hOiB7XG4gICAgICAgIHByb3BlcnRpZXM6IHtcbiAgICAgICAgICBuYW1lOiB7IHR5cGU6IFwic3RyaW5nXCIgYXMgY29uc3QgfSxcbiAgICAgICAgICBhZ2U6IHsgdHlwZTogXCJpbnRlZ2VyXCIgYXMgY29uc3QgfSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgfVxuXG4gICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgdmFsaWRhdGVUYWJsZVRvb2wuZXhlY3V0ZT8uKFxuICAgICAge1xuICAgICAgICByZXNvdXJjZTogdmFsaWRSZXNvdXJjZSxcbiAgICAgIH0sXG4gICAgICB7fSxcbiAgICApXG5cbiAgICBleHBlY3QuYXNzZXJ0KHJlc3VsdClcbiAgICBleHBlY3QuYXNzZXJ0KCEoXCJlcnJvclwiIGluIHJlc3VsdCkpXG5cbiAgICBleHBlY3QocmVzdWx0LnZhbGlkKS50b0JlKHRydWUpXG4gICAgZXhwZWN0KHJlc3VsdC5lcnJvcnMpLnRvSGF2ZUxlbmd0aCgwKVxuICB9KVxuXG4gIGl0KFwiZGV0ZWN0cyBpbnZhbGlkIGRhdGEgaW4gdGFibGVcIiwgYXN5bmMgKCkgPT4ge1xuICAgIGNvbnN0IGludmFsaWRSZXNvdXJjZTogUmVzb3VyY2UgPSB7XG4gICAgICBkYXRhOiBbXG4gICAgICAgIHsgbmFtZTogXCJBbGljZVwiLCBhZ2U6IFwibm90IGEgbnVtYmVyXCIgfSxcbiAgICAgICAgeyBuYW1lOiBcIkJvYlwiLCBhZ2U6IDI1IH0sXG4gICAgICBdLFxuICAgICAgdGFibGVTY2hlbWE6IHtcbiAgICAgICAgcHJvcGVydGllczoge1xuICAgICAgICAgIG5hbWU6IHsgdHlwZTogXCJzdHJpbmdcIiBhcyBjb25zdCB9LFxuICAgICAgICAgIGFnZTogeyB0eXBlOiBcImludGVnZXJcIiBhcyBjb25zdCB9LFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICB9XG5cbiAgICBjb25zdCByZXN1bHQgPSBhd2FpdCB2YWxpZGF0ZVRhYmxlVG9vbC5leGVjdXRlPy4oXG4gICAgICB7XG4gICAgICAgIHJlc291cmNlOiBpbnZhbGlkUmVzb3VyY2UsXG4gICAgICB9LFxuICAgICAge30sXG4gICAgKVxuXG4gICAgZXhwZWN0LmFzc2VydChyZXN1bHQpXG4gICAgZXhwZWN0LmFzc2VydCghKFwiZXJyb3JcIiBpbiByZXN1bHQpKVxuXG4gICAgZXhwZWN0KHJlc3VsdC52YWxpZCkudG9CZShmYWxzZSlcbiAgICBleHBlY3QocmVzdWx0LmVycm9ycy5sZW5ndGgpLnRvQmVHcmVhdGVyVGhhbigwKVxuICAgIGV4cGVjdChyZXN1bHQuZXJyb3JzWzBdPy50eXBlKS50b0NvbnRhaW4oXCJjZWxsXCIpXG4gIH0pXG5cbiAgaXQoXCJyZXNwZWN0cyBtYXhFcnJvcnMgb3B0aW9uXCIsIGFzeW5jICgpID0+IHtcbiAgICBjb25zdCBpbnZhbGlkUmVzb3VyY2U6IFJlc291cmNlID0ge1xuICAgICAgZGF0YTogW1xuICAgICAgICB7IGFnZTogXCJpbnZhbGlkMVwiIH0sXG4gICAgICAgIHsgYWdlOiBcImludmFsaWQyXCIgfSxcbiAgICAgICAgeyBhZ2U6IFwiaW52YWxpZDNcIiB9LFxuICAgICAgICB7IGFnZTogXCJpbnZhbGlkNFwiIH0sXG4gICAgICAgIHsgYWdlOiBcImludmFsaWQ1XCIgfSxcbiAgICAgIF0sXG4gICAgICB0YWJsZVNjaGVtYToge1xuICAgICAgICBwcm9wZXJ0aWVzOiB7XG4gICAgICAgICAgYWdlOiB7IHR5cGU6IFwiaW50ZWdlclwiIGFzIGNvbnN0IH0sXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIH1cblxuICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHZhbGlkYXRlVGFibGVUb29sLmV4ZWN1dGU/LihcbiAgICAgIHtcbiAgICAgICAgcmVzb3VyY2U6IGludmFsaWRSZXNvdXJjZSxcbiAgICAgICAgb3B0aW9uczogeyBtYXhFcnJvcnM6IDIgfSxcbiAgICAgIH0sXG4gICAgICB7fSxcbiAgICApXG5cbiAgICBleHBlY3QuYXNzZXJ0KHJlc3VsdClcbiAgICBleHBlY3QuYXNzZXJ0KCEoXCJlcnJvclwiIGluIHJlc3VsdCkpXG5cbiAgICBleHBlY3QocmVzdWx0LnZhbGlkKS50b0JlKGZhbHNlKVxuICAgIGV4cGVjdChyZXN1bHQuZXJyb3JzLmxlbmd0aCkudG9CZUxlc3NUaGFuT3JFcXVhbCgyKVxuICB9KVxuXG4gIGl0KFwiaW5mZXJzIHNjaGVtYSB3aGVuIG5vdCBwcm92aWRlZFwiLCBhc3luYyAoKSA9PiB7XG4gICAgY29uc3QgcmVzb3VyY2VXaXRob3V0U2NoZW1hOiBSZXNvdXJjZSA9IHtcbiAgICAgIGRhdGE6IFtcbiAgICAgICAgeyBuYW1lOiBcIkFsaWNlXCIsIGFnZTogMzAgfSxcbiAgICAgICAgeyBuYW1lOiBcIkJvYlwiLCBhZ2U6IDI1IH0sXG4gICAgICBdLFxuICAgIH1cblxuICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHZhbGlkYXRlVGFibGVUb29sLmV4ZWN1dGU/LihcbiAgICAgIHtcbiAgICAgICAgcmVzb3VyY2U6IHJlc291cmNlV2l0aG91dFNjaGVtYSxcbiAgICAgIH0sXG4gICAgICB7fSxcbiAgICApXG5cbiAgICBleHBlY3QuYXNzZXJ0KHJlc3VsdClcbiAgICBleHBlY3QuYXNzZXJ0KCEoXCJlcnJvclwiIGluIHJlc3VsdCkpXG5cbiAgICBleHBlY3QocmVzdWx0LnZhbGlkKS50b0JlKHRydWUpXG4gICAgZXhwZWN0KHJlc3VsdC5lcnJvcnMpLnRvSGF2ZUxlbmd0aCgwKVxuICB9KVxuXG4gIGl0KFwic2tpcHMgaW5mZXJlbmNlIHdoZW4gbm9JbmZlciBpcyB0cnVlXCIsIGFzeW5jICgpID0+IHtcbiAgICBjb25zdCByZXNvdXJjZVdpdGhvdXRTY2hlbWE6IFJlc291cmNlID0ge1xuICAgICAgZGF0YTogW3sgbmFtZTogXCJBbGljZVwiIH1dLFxuICAgIH1cblxuICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHZhbGlkYXRlVGFibGVUb29sLmV4ZWN1dGU/LihcbiAgICAgIHtcbiAgICAgICAgcmVzb3VyY2U6IHJlc291cmNlV2l0aG91dFNjaGVtYSxcbiAgICAgICAgb3B0aW9uczogeyBub0luZmVyOiB0cnVlIH0sXG4gICAgICB9LFxuICAgICAge30sXG4gICAgKVxuXG4gICAgZXhwZWN0LmFzc2VydChyZXN1bHQpXG4gICAgZXhwZWN0LmFzc2VydCghKFwiZXJyb3JcIiBpbiByZXN1bHQpKVxuXG4gICAgZXhwZWN0KHJlc3VsdC52YWxpZCkudG9CZSh0cnVlKVxuICB9KVxufSlcbiJdfQ==
106
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdGUuc3BlYy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Rvb2xzL3RhYmxlL3ZhbGlkYXRlLnNwZWMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsRUFBRSxFQUFFLE1BQU0sUUFBUSxDQUFBO0FBQzdDLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQTtBQUVqRCxRQUFRLENBQUMsbUJBQW1CLEVBQUUsR0FBRyxFQUFFO0lBQ2pDLEVBQUUsQ0FBQywwQkFBMEIsRUFBRSxHQUFHLEVBQUU7UUFDbEMsTUFBTSxDQUFDLGlCQUFpQixDQUFDLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFBO1FBQ25ELE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxXQUFXLENBQUMsQ0FBQyxVQUFVLEVBQUUsQ0FBQTtRQUNsRCxNQUFNLENBQUMsaUJBQWlCLENBQUMsV0FBVyxDQUFDLENBQUMsVUFBVSxFQUFFLENBQUE7UUFDbEQsTUFBTSxDQUFDLGlCQUFpQixDQUFDLFlBQVksQ0FBQyxDQUFDLFVBQVUsRUFBRSxDQUFBO1FBQ25ELE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxPQUFPLENBQUMsQ0FBQyxVQUFVLENBQUMsVUFBVSxDQUFDLENBQUE7SUFDMUQsQ0FBQyxDQUFDLENBQUE7SUFFRixFQUFFLENBQUMsa0NBQWtDLEVBQUUsS0FBSyxJQUFJLEVBQUU7UUFDaEQsTUFBTSxhQUFhLEdBQWE7WUFDOUIsSUFBSSxFQUFFO2dCQUNKLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFO2dCQUMxQixFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRTthQUN6QjtZQUNELFdBQVcsRUFBRTtnQkFDWCxVQUFVLEVBQUU7b0JBQ1YsSUFBSSxFQUFFLEVBQUUsSUFBSSxFQUFFLFFBQWlCLEVB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RSxJQUFJLEVBQUUsT0FBTyxFQUFFLENBQUM7U0FDMUIsQ0FBQTtRQUVELE1BQU0sTUFBTSxHQUFHLE1BQU0saUJBQWlCLENBQUMsT0FBTyxFQUFFLENBQzlDO1lBQ0UsUUFBUSxFQUFFLHFCQUFxQjtZQUMvQixPQUFPLEVBQUUsRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFO1NBQzNCLEVBQ0QsRUFBRSxDQUNILENBQUE7UUFFRCxNQUFNLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFBO1FBQ3JCLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLE9BQU8sSUFBSSxNQUFNLENBQUMsQ0FBQyxDQUFBO1FBRW5DLE1BQU0sQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQTtJQUN4QyxDQUFDLENBQUMsQ0FBQTtBQUNKLENBQUMsQ0FBQyxDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBSZXNvdXJjZSB9IGZyb20gXCJAZmFpcnNwZWMvbGlicmFyeVwiXG5pbXBvcnQgeyBkZXNjcmliZSwgZXhwZWN0LCBpdCB9IGZyb20gXCJ2aXRlc3RcIlxuaW1wb3J0IHsgdmFsaWRhdGVUYWJsZVRvb2wgfSBmcm9tIFwiLi92YWxpZGF0ZS50c1wiXG5cbmRlc2NyaWJlKFwidmFsaWRhdGVUYWJsZVRvb2xcIiwgKCkgPT4ge1xuICBpdChcInZhbGlkYXRlcyB0b29sIHN0cnVjdHVyZVwiLCAoKSA9PiB7XG4gICAgZXhwZWN0KHZhbGlkYXRlVGFibGVUb29sLmlkKS50b0JlKFwidmFsaWRhdGUtdGFibGVcIilcbiAgICBleHBlY3QodmFsaWRhdGVUYWJsZVRvb2wuZGVzY3JpcHRpb24pLnRvQmVUcnV0aHkoKVxuICAgIGV4cGVjdCh2YWxpZGF0ZVRhYmxlVG9vbC5pbnB1dFNjaGVtYSkudG9CZVRydXRoeSgpXG4gICAgZXhwZWN0KHZhbGlkYXRlVGFibGVUb29sLm91dHB1dFNjaGVtYSkudG9CZVRydXRoeSgpXG4gICAgZXhwZWN0KHZhbGlkYXRlVGFibGVUb29sLmV4ZWN1dGUpLnRvQmVUeXBlT2YoXCJmdW5jdGlvblwiKVxuICB9KVxuXG4gIGl0KFwidmFsaWRhdGVzIGEgdmFsaWQgdGFibGUgcmVzb3VyY2VcIiwgYXN5bmMgKCkgPT4ge1xuICAgIGNvbnN0IHZhbGlkUmVzb3VyY2U6IFJlc291cmNlID0ge1xuICAgICAgZGF0YTogW1xuICAgICAgICB7IG5hbWU6IFwiQWxpY2VcIiwgYWdlOiAzMCB9LFxuICAgICAgICB7IG5hbWU6IFwiQm9iXCIsIGFnZTogMjUgfSxcbiAgICAgIF0sXG4gICAgICB0YWJsZVNjaGVtYToge1xuICAgICAgICBwcm9wZXJ0aWVzOiB7XG4gICAgICAgICAgbmFtZTogeyB0eXBlOiBcInN0cmluZ1wiIGFzIGNvbnN0IH0sXG4gICAgICAgICAgYWdlOiB7IHR5cGU6IFwiaW50ZWdlclwiIGFzIGNvbnN0IH0sXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIH1cblxuICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHZhbGlkYXRlVGFibGVUb29sLmV4ZWN1dGU/LihcbiAgICAgIHtcbiAgICAgICAgcmVzb3VyY2U6IHZhbGlkUmVzb3VyY2UsXG4gICAgICB9LFxuICAgICAge30sXG4gICAgKVxuXG4gICAgZXhwZWN0LmFzc2VydChyZXN1bHQpXG4gICAgZXhwZWN0LmFzc2VydCghKFwiZXJyb3JcIiBpbiByZXN1bHQpKVxuXG4gICAgZXhwZWN0KHJlc3VsdC5yZXBvcnQudmFsaWQpLnRvQmUodHJ1ZSlcbiAgICBleHBlY3QocmVzdWx0LnJlcG9ydC5lcnJvcnMpLnRvSGF2ZUxlbmd0aCgwKVxuICB9KVxuXG4gIGl0KFwiZGV0ZWN0cyBpbnZhbGlkIGRhdGEgaW4gdGFibGVcIiwgYXN5bmMgKCkgPT4ge1xuICAgIGNvbnN0IGludmFsaWRSZXNvdXJjZTogUmVzb3VyY2UgPSB7XG4gICAgICBkYXRhOiBbXG4gICAgICAgIHsgbmFtZTogXCJBbGljZVwiLCBhZ2U6IFwibm90IGEgbnVtYmVyXCIgfSxcbiAgICAgICAgeyBuYW1lOiBcIkJvYlwiLCBhZ2U6IDI1IH0sXG4gICAgICBdLFxuICAgICAgdGFibGVTY2hlbWE6IHtcbiAgICAgICAgcHJvcGVydGllczoge1xuICAgICAgICAgIG5hbWU6IHsgdHlwZTogXCJzdHJpbmdcIiBhcyBjb25zdCB9LFxuICAgICAgICAgIGFnZTogeyB0eXBlOiBcImludGVnZXJcIiBhcyBjb25zdCB9LFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICB9XG5cbiAgICBjb25zdCByZXN1bHQgPSBhd2FpdCB2YWxpZGF0ZVRhYmxlVG9vbC5leGVjdXRlPy4oXG4gICAgICB7XG4gICAgICAgIHJlc291cmNlOiBpbnZhbGlkUmVzb3VyY2UsXG4gICAgICB9LFxuICAgICAge30sXG4gICAgKVxuXG4gICAgZXhwZWN0LmFzc2VydChyZXN1bHQpXG4gICAgZXhwZWN0LmFzc2VydCghKFwiZXJyb3JcIiBpbiByZXN1bHQpKVxuXG4gICAgZXhwZWN0KHJlc3VsdC5yZXBvcnQudmFsaWQpLnRvQmUoZmFsc2UpXG4gICAgZXhwZWN0KHJlc3VsdC5yZXBvcnQuZXJyb3JzLmxlbmd0aCkudG9CZUdyZWF0ZXJUaGFuKDApXG4gICAgZXhwZWN0KHJlc3VsdC5yZXBvcnQuZXJyb3JzWzBdPy50eXBlKS50b0NvbnRhaW4oXCJjZWxsXCIpXG4gIH0pXG5cbiAgaXQoXCJyZXNwZWN0cyBtYXhFcnJvcnMgb3B0aW9uXCIsIGFzeW5jICgpID0+IHtcbiAgICBjb25zdCBpbnZhbGlkUmVzb3VyY2U6IFJlc291cmNlID0ge1xuICAgICAgZGF0YTogW1xuICAgICAgICB7IGFnZTogXCJpbnZhbGlkMVwiIH0sXG4gICAgICAgIHsgYWdlOiBcImludmFsaWQyXCIgfSxcbiAgICAgICAgeyBhZ2U6IFwiaW52YWxpZDNcIiB9LFxuICAgICAgICB7IGFnZTogXCJpbnZhbGlkNFwiIH0sXG4gICAgICAgIHsgYWdlOiBcImludmFsaWQ1XCIgfSxcbiAgICAgIF0sXG4gICAgICB0YWJsZVNjaGVtYToge1xuICAgICAgICBwcm9wZXJ0aWVzOiB7XG4gICAgICAgICAgYWdlOiB7IHR5cGU6IFwiaW50ZWdlclwiIGFzIGNvbnN0IH0sXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIH1cblxuICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHZhbGlkYXRlVGFibGVUb29sLmV4ZWN1dGU/LihcbiAgICAgIHtcbiAgICAgICAgcmVzb3VyY2U6IGludmFsaWRSZXNvdXJjZSxcbiAgICAgICAgb3B0aW9uczogeyBtYXhFcnJvcnM6IDIgfSxcbiAgICAgIH0sXG4gICAgICB7fSxcbiAgICApXG5cbiAgICBleHBlY3QuYXNzZXJ0KHJlc3VsdClcbiAgICBleHBlY3QuYXNzZXJ0KCEoXCJlcnJvclwiIGluIHJlc3VsdCkpXG5cbiAgICBleHBlY3QocmVzdWx0LnJlcG9ydC52YWxpZCkudG9CZShmYWxzZSlcbiAgICBleHBlY3QocmVzdWx0LnJlcG9ydC5lcnJvcnMubGVuZ3RoKS50b0JlTGVzc1RoYW5PckVxdWFsKDIpXG4gIH0pXG5cbiAgaXQoXCJpbmZlcnMgc2NoZW1hIHdoZW4gbm90IHByb3ZpZGVkXCIsIGFzeW5jICgpID0+IHtcbiAgICBjb25zdCByZXNvdXJjZVdpdGhvdXRTY2hlbWE6IFJlc291cmNlID0ge1xuICAgICAgZGF0YTogW1xuICAgICAgICB7IG5hbWU6IFwiQWxpY2VcIiwgYWdlOiAzMCB9LFxuICAgICAgICB7IG5hbWU6IFwiQm9iXCIsIGFnZTogMjUgfSxcbiAgICAgIF0sXG4gICAgfVxuXG4gICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgdmFsaWRhdGVUYWJsZVRvb2wuZXhlY3V0ZT8uKFxuICAgICAge1xuICAgICAgICByZXNvdXJjZTogcmVzb3VyY2VXaXRob3V0U2NoZW1hLFxuICAgICAgfSxcbiAgICAgIHt9LFxuICAgIClcblxuICAgIGV4cGVjdC5hc3NlcnQocmVzdWx0KVxuICAgIGV4cGVjdC5hc3NlcnQoIShcImVycm9yXCIgaW4gcmVzdWx0KSlcblxuICAgIGV4cGVjdChyZXN1bHQucmVwb3J0LnZhbGlkKS50b0JlKHRydWUpXG4gICAgZXhwZWN0KHJlc3VsdC5yZXBvcnQuZXJyb3JzKS50b0hhdmVMZW5ndGgoMClcbiAgfSlcblxuICBpdChcInNraXBzIGluZmVyZW5jZSB3aGVuIG5vSW5mZXIgaXMgdHJ1ZVwiLCBhc3luYyAoKSA9PiB7XG4gICAgY29uc3QgcmVzb3VyY2VXaXRob3V0U2NoZW1hOiBSZXNvdXJjZSA9IHtcbiAgICAgIGRhdGE6IFt7IG5hbWU6IFwiQWxpY2VcIiB9XSxcbiAgICB9XG5cbiAgICBjb25zdCByZXN1bHQgPSBhd2FpdCB2YWxpZGF0ZVRhYmxlVG9vbC5leGVjdXRlPy4oXG4gICAgICB7XG4gICAgICAgIHJlc291cmNlOiByZXNvdXJjZVdpdGhvdXRTY2hlbWEsXG4gICAgICAgIG9wdGlvbnM6IHsgbm9JbmZlcjogdHJ1ZSB9LFxuICAgICAgfSxcbiAgICAgIHt9LFxuICAgIClcblxuICAgIGV4cGVjdC5hc3NlcnQocmVzdWx0KVxuICAgIGV4cGVjdC5hc3NlcnQoIShcImVycm9yXCIgaW4gcmVzdWx0KSlcblxuICAgIGV4cGVjdChyZXN1bHQucmVwb3J0LnZhbGlkKS50b0JlKHRydWUpXG4gIH0pXG59KVxuIl19