@asyncapi/react-component 2.2.4 → 2.3.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.
@@ -51,42 +51,20 @@ var Parser = (function () {
51
51
  }
52
52
  Parser.parse = function (content, parserOptions) {
53
53
  return __awaiter(this, void 0, void 0, function () {
54
- var parseResult, error_1, err_1;
55
- return __generator(this, function (_a) {
56
- switch (_a.label) {
54
+ var _a, document_1, diagnostics, err_1;
55
+ return __generator(this, function (_b) {
56
+ switch (_b.label) {
57
57
  case 0:
58
- _a.trys.push([0, 2, , 3]);
58
+ _b.trys.push([0, 2, , 3]);
59
59
  return [4, asyncapiParser.parse(content, parserOptions)];
60
60
  case 1:
61
- parseResult = _a.sent();
62
- error_1 = {
63
- title: 'There are errors in your Asyncapi document',
64
- validationErrors: [],
65
- };
66
- if (parseResult.document === undefined) {
67
- parseResult.diagnostics.forEach(function (diagnostic) {
68
- var _a;
69
- if (diagnostic.severity == 0) {
70
- var tempObj = {
71
- title: diagnostic.message,
72
- location: {
73
- jsonPointer: '/' + diagnostic.path.join('/'),
74
- startLine: diagnostic.range.start.line,
75
- startColumn: diagnostic.range.start.character,
76
- startOffset: 1,
77
- endLine: diagnostic.range.end.line,
78
- endColumn: diagnostic.range.end.character,
79
- endOffset: 0,
80
- },
81
- };
82
- (_a = error_1.validationErrors) === null || _a === void 0 ? void 0 : _a.push(tempObj);
83
- }
84
- });
85
- throw error_1;
61
+ _a = _b.sent(), document_1 = _a.document, diagnostics = _a.diagnostics;
62
+ if (document_1 === undefined) {
63
+ throw this.convertDiagnosticToErrorObject(diagnostics, [0]);
86
64
  }
87
- return [2, { asyncapi: parseResult.document }];
65
+ return [2, { asyncapi: document_1 }];
88
66
  case 2:
89
- err_1 = _a.sent();
67
+ err_1 = _b.sent();
90
68
  return [2, this.handleError(err_1)];
91
69
  case 3: return [2];
92
70
  }
@@ -95,24 +73,53 @@ var Parser = (function () {
95
73
  };
96
74
  Parser.parseFromUrl = function (arg, parserOptions) {
97
75
  return __awaiter(this, void 0, void 0, function () {
98
- var fromResult, document_1, err_2;
99
- return __generator(this, function (_a) {
100
- switch (_a.label) {
76
+ var fromResult, _a, document_2, diagnostics, err_2;
77
+ return __generator(this, function (_b) {
78
+ switch (_b.label) {
101
79
  case 0:
102
- _a.trys.push([0, 2, , 3]);
80
+ _b.trys.push([0, 2, , 3]);
103
81
  fromResult = (0, parser_1.fromURL)(asyncapiParser, arg.url, arg.requestOptions);
104
82
  return [4, fromResult.parse(parserOptions)];
105
83
  case 1:
106
- document_1 = (_a.sent()).document;
107
- return [2, { asyncapi: document_1 }];
84
+ _a = _b.sent(), document_2 = _a.document, diagnostics = _a.diagnostics;
85
+ if (document_2 == undefined) {
86
+ throw this.convertDiagnosticToErrorObject(diagnostics, [0]);
87
+ }
88
+ return [2, { asyncapi: document_2, error: undefined }];
108
89
  case 2:
109
- err_2 = _a.sent();
90
+ err_2 = _b.sent();
110
91
  return [2, this.handleError(err_2)];
111
92
  case 3: return [2];
112
93
  }
113
94
  });
114
95
  });
115
96
  };
97
+ Parser.convertDiagnosticToErrorObject = function (diagnostics, severities) {
98
+ var error = {
99
+ title: 'There are errors in your Asyncapi document',
100
+ type: 'VALIDATION_ERRORS_TYPE',
101
+ validationErrors: [],
102
+ };
103
+ diagnostics.forEach(function (diagnostic) {
104
+ var _a;
105
+ if (severities.includes(diagnostic.severity)) {
106
+ var tempObj = {
107
+ title: diagnostic.message,
108
+ location: {
109
+ jsonPointer: '/' + diagnostic.path.join('/'),
110
+ startLine: diagnostic.range.start.line,
111
+ startColumn: diagnostic.range.start.character,
112
+ startOffset: 1,
113
+ endLine: diagnostic.range.end.line,
114
+ endColumn: diagnostic.range.end.character,
115
+ endOffset: 0,
116
+ },
117
+ };
118
+ (_a = error.validationErrors) === null || _a === void 0 ? void 0 : _a.push(tempObj);
119
+ }
120
+ });
121
+ return error;
122
+ };
116
123
  Parser.handleError = function (err) {
117
124
  if (err.type === constants_1.VALIDATION_ERRORS_TYPE) {
118
125
  return {
@@ -1 +1 @@
1
- {"version":3,"file":"parser.js","sourceRoot":"","sources":["../../../src/helpers/parser.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,2CAAqE;AACrE,yEAAsE;AACtE,2EAAyE;AACzE,mEAAgE;AAShE,0CAAsD;AAEtD,IAAM,cAAc,GAAG,IAAI,eAAc,EAAE,CAAC;AAC5C,cAAc,CAAC,oBAAoB,CAAC,IAAA,2CAAmB,GAAE,CAAC,CAAC;AAC3D,cAAc,CAAC,oBAAoB,CAAC,IAAA,qCAAgB,GAAE,CAAC,CAAC;AACxD,cAAc,CAAC,oBAAoB,CAAC,IAAA,8CAAqB,GAAE,CAAC,CAAC;AAG7D;IAAA;IA4EA,CAAC;IA3Ec,YAAK,GAAlB,UAEE,OAAqB,EAErB,aAAmB;;;;;;;wBAIG,WAAM,cAAc,CAAC,KAAK,CAAC,OAAO,EAAE,aAAa,CAAC,EAAA;;wBAAhE,WAAW,GAAG,SAAkD;wBAEhE,UAGF;4BACF,KAAK,EAAE,4CAA4C;4BACnD,gBAAgB,EAAE,EAAE;yBACrB,CAAC;wBAEF,IAAI,WAAW,CAAC,QAAQ,KAAK,SAAS,EAAE;4BACtC,WAAW,CAAC,WAAW,CAAC,OAAO,CAAC,UAAC,UAAU;;gCAEzC,IAAI,UAAU,CAAC,QAAQ,IAAI,CAAC,EAAE;oCAC5B,IAAM,OAAO,GAAoB;wCAC/B,KAAK,EAAE,UAAU,CAAC,OAAO;wCACzB,QAAQ,EAAE;4CACR,WAAW,EAAE,GAAG,GAAG,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;4CAC5C,SAAS,EAAE,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI;4CACtC,WAAW,EAAE,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,SAAS;4CAE7C,WAAW,EAAE,CAAC;4CACd,OAAO,EAAE,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI;4CAClC,SAAS,EAAE,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,SAAS;4CACzC,SAAS,EAAE,CAAC;yCACb;qCACF,CAAC;oCACF,MAAA,OAAK,CAAC,gBAAgB,0CAAE,IAAI,CAAC,OAAO,CAAC,CAAC;iCACvC;4BACH,CAAC,CAAC,CAAC;4BACH,MAAM,OAAK,CAAC;yBACb;wBAED,WAAO,EAAE,QAAQ,EAAE,WAAW,CAAC,QAAQ,EAAE,EAAC;;;wBAE1C,WAAO,IAAI,CAAC,WAAW,CAAC,KAAkB,CAAC,EAAC;;;;;KAE/C;IAEY,mBAAY,GAAzB,UACE,GAA4B,EAE5B,aAAmB;;;;;;;wBAGX,UAAU,GAAG,IAAA,gBAAO,EACxB,cAAc,EACd,GAAG,CAAC,GAAG,EAEP,GAAG,CAAC,cAAqB,CAC1B,CAAC;wBAEmB,WAAM,UAAU,CAAC,KAAK,CAAC,aAAa,CAAC,EAAA;;wBAAlD,aAAa,CAAA,SAAqC,CAAA,SAA1C;wBAChB,WAAO,EAAE,QAAQ,EAAE,UAAQ,EAAE,EAAC;;;wBAE9B,WAAO,IAAI,CAAC,WAAW,CAAC,KAAkB,CAAC,EAAC;;;;;KAE/C;IAEc,kBAAW,GAAG,UAAC,GAAgB;QAC5C,IAAI,GAAG,CAAC,IAAI,KAAK,kCAAsB,EAAE;YACvC,OAAO;gBACL,KAAK,EAAE,GAAG;aACX,CAAC;SACH;QACD,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC;IACxB,CAAC,CAAC;IACJ,aAAC;CAAA,AA5ED,IA4EC;AA5EY,wBAAM","sourcesContent":["import { Parser as AsyncapiParser, fromURL } from '@asyncapi/parser';\nimport { OpenAPISchemaParser } from '@asyncapi/openapi-schema-parser';\nimport { ProtoBuffSchemaParser } from '@asyncapi/protobuf-schema-parser';\nimport { AvroSchemaParser } from '@asyncapi/avro-schema-parser';\n\nimport {\n ErrorObject,\n ParserReturn,\n FetchingSchemaInterface,\n ValidationError,\n} from '../types';\n\nimport { VALIDATION_ERRORS_TYPE } from '../constants';\n\nconst asyncapiParser = new AsyncapiParser();\nasyncapiParser.registerSchemaParser(OpenAPISchemaParser());\nasyncapiParser.registerSchemaParser(AvroSchemaParser());\nasyncapiParser.registerSchemaParser(ProtoBuffSchemaParser());\n\n// eslint-disable-next-line @typescript-eslint/no-extraneous-class\nexport class Parser {\n static async parse(\n // eslint-disable-next-line @typescript-eslint/no-redundant-type-constituents, @typescript-eslint/no-explicit-any\n content: string | any,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n parserOptions?: any,\n ): Promise<ParserReturn> {\n try {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-argument\n const parseResult = await asyncapiParser.parse(content, parserOptions);\n\n const error: {\n title: string | undefined;\n validationErrors: ValidationError[] | undefined;\n } = {\n title: 'There are errors in your Asyncapi document',\n validationErrors: [],\n };\n\n if (parseResult.document === undefined) {\n parseResult.diagnostics.forEach((diagnostic) => {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-enum-comparison\n if (diagnostic.severity == 0) {\n const tempObj: ValidationError = {\n title: diagnostic.message,\n location: {\n jsonPointer: '/' + diagnostic.path.join('/'),\n startLine: diagnostic.range.start.line,\n startColumn: diagnostic.range.start.character,\n // as of @asyncapi/parser 3.3.0 offset of 1 correctly shows the error line\n startOffset: 1,\n endLine: diagnostic.range.end.line,\n endColumn: diagnostic.range.end.character,\n endOffset: 0,\n },\n };\n error.validationErrors?.push(tempObj);\n }\n });\n throw error;\n }\n\n return { asyncapi: parseResult.document };\n } catch (err) {\n return this.handleError(err as ErrorObject);\n }\n }\n\n static async parseFromUrl(\n arg: FetchingSchemaInterface,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n parserOptions?: any,\n ): Promise<ParserReturn> {\n try {\n const fromResult = fromURL(\n asyncapiParser,\n arg.url,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n arg.requestOptions as any,\n );\n // eslint-disable-next-line @typescript-eslint/no-unsafe-argument\n const { document } = await fromResult.parse(parserOptions);\n return { asyncapi: document };\n } catch (err) {\n return this.handleError(err as ErrorObject);\n }\n }\n\n private static handleError = (err: ErrorObject): ParserReturn => {\n if (err.type === VALIDATION_ERRORS_TYPE) {\n return {\n error: err,\n };\n }\n return { error: err };\n };\n}\n"]}
1
+ {"version":3,"file":"parser.js","sourceRoot":"","sources":["../../../src/helpers/parser.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n Parser as AsyncapiParser,\n Diagnostic,\n DiagnosticSeverity,\n fromURL,\n} from '@asyncapi/parser';\nimport { OpenAPISchemaParser } from '@asyncapi/openapi-schema-parser';\nimport { ProtoBuffSchemaParser } from '@asyncapi/protobuf-schema-parser';\nimport { AvroSchemaParser } from '@asyncapi/avro-schema-parser';\n\nimport {\n ErrorObject,\n ParserReturn,\n FetchingSchemaInterface,\n ValidationError,\n} from '../types';\n\nimport { VALIDATION_ERRORS_TYPE } from '../constants';\n\nconst asyncapiParser = new AsyncapiParser();\nasyncapiParser.registerSchemaParser(OpenAPISchemaParser());\nasyncapiParser.registerSchemaParser(AvroSchemaParser());\nasyncapiParser.registerSchemaParser(ProtoBuffSchemaParser());\n\n// eslint-disable-next-line @typescript-eslint/no-extraneous-class\nexport class Parser {\n static async parse(\n // eslint-disable-next-line @typescript-eslint/no-redundant-type-constituents, @typescript-eslint/no-explicit-any\n content: string | any,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n parserOptions?: any,\n ): Promise<ParserReturn> {\n try {\n const { document, diagnostics } = await asyncapiParser.parse(\n // eslint-disable-next-line @typescript-eslint/no-unsafe-argument\n content,\n // eslint-disable-next-line @typescript-eslint/no-unsafe-argument\n parserOptions,\n );\n\n if (document === undefined) {\n throw this.convertDiagnosticToErrorObject(diagnostics, [0]);\n }\n\n return { asyncapi: document };\n } catch (err) {\n return this.handleError(err as ErrorObject);\n }\n }\n\n static async parseFromUrl(\n arg: FetchingSchemaInterface,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n parserOptions?: any,\n ): Promise<ParserReturn> {\n try {\n const fromResult = fromURL(\n asyncapiParser,\n arg.url,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n arg.requestOptions as any,\n );\n // eslint-disable-next-line @typescript-eslint/no-unsafe-argument\n const { document, diagnostics } = await fromResult.parse(parserOptions);\n\n if (document == undefined) {\n // this means there are errors in the document.\n // so we gather all the severity 0 diagnostics and throw them as errors\n throw this.convertDiagnosticToErrorObject(diagnostics, [0]);\n }\n\n return { asyncapi: document, error: undefined };\n } catch (err) {\n return this.handleError(err as ErrorObject);\n }\n }\n\n static readonly convertDiagnosticToErrorObject = (\n diagnostics: Diagnostic[],\n severities: DiagnosticSeverity[],\n ): ErrorObject => {\n const error: ErrorObject = {\n title: 'There are errors in your Asyncapi document',\n type: 'VALIDATION_ERRORS_TYPE',\n validationErrors: [],\n };\n diagnostics.forEach((diagnostic) => {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-enum-comparison\n if (severities.includes(diagnostic.severity)) {\n const tempObj: ValidationError = {\n title: diagnostic.message,\n location: {\n jsonPointer: '/' + diagnostic.path.join('/'),\n startLine: diagnostic.range.start.line,\n startColumn: diagnostic.range.start.character,\n // as of @asyncapi/parser 3.3.0 offset of 1 correctly shows the error line\n startOffset: 1,\n endLine: diagnostic.range.end.line,\n endColumn: diagnostic.range.end.character,\n endOffset: 0,\n },\n };\n error.validationErrors?.push(tempObj);\n }\n });\n return error;\n };\n\n private static handleError = (err: ErrorObject): ParserReturn => {\n if (err.type === VALIDATION_ERRORS_TYPE) {\n return {\n error: err,\n };\n }\n return { error: err };\n };\n}\n"]}
@@ -34,7 +34,7 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
34
34
  if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
35
35
  }
36
36
  };
37
- import { Parser as AsyncapiParser, fromURL } from '@asyncapi/parser';
37
+ import { Parser as AsyncapiParser, fromURL, } from '@asyncapi/parser';
38
38
  import { OpenAPISchemaParser } from '@asyncapi/openapi-schema-parser';
39
39
  import { ProtoBuffSchemaParser } from '@asyncapi/protobuf-schema-parser';
40
40
  import { AvroSchemaParser } from '@asyncapi/avro-schema-parser';
@@ -48,42 +48,20 @@ var Parser = (function () {
48
48
  }
49
49
  Parser.parse = function (content, parserOptions) {
50
50
  return __awaiter(this, void 0, void 0, function () {
51
- var parseResult, error_1, err_1;
52
- return __generator(this, function (_a) {
53
- switch (_a.label) {
51
+ var _a, document_1, diagnostics, err_1;
52
+ return __generator(this, function (_b) {
53
+ switch (_b.label) {
54
54
  case 0:
55
- _a.trys.push([0, 2, , 3]);
55
+ _b.trys.push([0, 2, , 3]);
56
56
  return [4, asyncapiParser.parse(content, parserOptions)];
57
57
  case 1:
58
- parseResult = _a.sent();
59
- error_1 = {
60
- title: 'There are errors in your Asyncapi document',
61
- validationErrors: [],
62
- };
63
- if (parseResult.document === undefined) {
64
- parseResult.diagnostics.forEach(function (diagnostic) {
65
- var _a;
66
- if (diagnostic.severity == 0) {
67
- var tempObj = {
68
- title: diagnostic.message,
69
- location: {
70
- jsonPointer: '/' + diagnostic.path.join('/'),
71
- startLine: diagnostic.range.start.line,
72
- startColumn: diagnostic.range.start.character,
73
- startOffset: 1,
74
- endLine: diagnostic.range.end.line,
75
- endColumn: diagnostic.range.end.character,
76
- endOffset: 0,
77
- },
78
- };
79
- (_a = error_1.validationErrors) === null || _a === void 0 ? void 0 : _a.push(tempObj);
80
- }
81
- });
82
- throw error_1;
58
+ _a = _b.sent(), document_1 = _a.document, diagnostics = _a.diagnostics;
59
+ if (document_1 === undefined) {
60
+ throw this.convertDiagnosticToErrorObject(diagnostics, [0]);
83
61
  }
84
- return [2, { asyncapi: parseResult.document }];
62
+ return [2, { asyncapi: document_1 }];
85
63
  case 2:
86
- err_1 = _a.sent();
64
+ err_1 = _b.sent();
87
65
  return [2, this.handleError(err_1)];
88
66
  case 3: return [2];
89
67
  }
@@ -92,24 +70,53 @@ var Parser = (function () {
92
70
  };
93
71
  Parser.parseFromUrl = function (arg, parserOptions) {
94
72
  return __awaiter(this, void 0, void 0, function () {
95
- var fromResult, document_1, err_2;
96
- return __generator(this, function (_a) {
97
- switch (_a.label) {
73
+ var fromResult, _a, document_2, diagnostics, err_2;
74
+ return __generator(this, function (_b) {
75
+ switch (_b.label) {
98
76
  case 0:
99
- _a.trys.push([0, 2, , 3]);
77
+ _b.trys.push([0, 2, , 3]);
100
78
  fromResult = fromURL(asyncapiParser, arg.url, arg.requestOptions);
101
79
  return [4, fromResult.parse(parserOptions)];
102
80
  case 1:
103
- document_1 = (_a.sent()).document;
104
- return [2, { asyncapi: document_1 }];
81
+ _a = _b.sent(), document_2 = _a.document, diagnostics = _a.diagnostics;
82
+ if (document_2 == undefined) {
83
+ throw this.convertDiagnosticToErrorObject(diagnostics, [0]);
84
+ }
85
+ return [2, { asyncapi: document_2, error: undefined }];
105
86
  case 2:
106
- err_2 = _a.sent();
87
+ err_2 = _b.sent();
107
88
  return [2, this.handleError(err_2)];
108
89
  case 3: return [2];
109
90
  }
110
91
  });
111
92
  });
112
93
  };
94
+ Parser.convertDiagnosticToErrorObject = function (diagnostics, severities) {
95
+ var error = {
96
+ title: 'There are errors in your Asyncapi document',
97
+ type: 'VALIDATION_ERRORS_TYPE',
98
+ validationErrors: [],
99
+ };
100
+ diagnostics.forEach(function (diagnostic) {
101
+ var _a;
102
+ if (severities.includes(diagnostic.severity)) {
103
+ var tempObj = {
104
+ title: diagnostic.message,
105
+ location: {
106
+ jsonPointer: '/' + diagnostic.path.join('/'),
107
+ startLine: diagnostic.range.start.line,
108
+ startColumn: diagnostic.range.start.character,
109
+ startOffset: 1,
110
+ endLine: diagnostic.range.end.line,
111
+ endColumn: diagnostic.range.end.character,
112
+ endOffset: 0,
113
+ },
114
+ };
115
+ (_a = error.validationErrors) === null || _a === void 0 ? void 0 : _a.push(tempObj);
116
+ }
117
+ });
118
+ return error;
119
+ };
113
120
  Parser.handleError = function (err) {
114
121
  if (err.type === VALIDATION_ERRORS_TYPE) {
115
122
  return {
@@ -1 +1 @@
1
- {"version":3,"file":"parser.js","sourceRoot":"","sources":["../../../src/helpers/parser.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,OAAO,EAAE,MAAM,IAAI,cAAc,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AACrE,OAAO,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAC;AACtE,OAAO,EAAE,qBAAqB,EAAE,MAAM,kCAAkC,CAAC;AACzE,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAShE,OAAO,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAC;AAEtD,IAAM,cAAc,GAAG,IAAI,cAAc,EAAE,CAAC;AAC5C,cAAc,CAAC,oBAAoB,CAAC,mBAAmB,EAAE,CAAC,CAAC;AAC3D,cAAc,CAAC,oBAAoB,CAAC,gBAAgB,EAAE,CAAC,CAAC;AACxD,cAAc,CAAC,oBAAoB,CAAC,qBAAqB,EAAE,CAAC,CAAC;AAG7D;IAAA;IA4EA,CAAC;IA3Ec,YAAK,GAAlB,UAEE,OAAqB,EAErB,aAAmB;;;;;;;wBAIG,WAAM,cAAc,CAAC,KAAK,CAAC,OAAO,EAAE,aAAa,CAAC,EAAA;;wBAAhE,WAAW,GAAG,SAAkD;wBAEhE,UAGF;4BACF,KAAK,EAAE,4CAA4C;4BACnD,gBAAgB,EAAE,EAAE;yBACrB,CAAC;wBAEF,IAAI,WAAW,CAAC,QAAQ,KAAK,SAAS,EAAE;4BACtC,WAAW,CAAC,WAAW,CAAC,OAAO,CAAC,UAAC,UAAU;;gCAEzC,IAAI,UAAU,CAAC,QAAQ,IAAI,CAAC,EAAE;oCAC5B,IAAM,OAAO,GAAoB;wCAC/B,KAAK,EAAE,UAAU,CAAC,OAAO;wCACzB,QAAQ,EAAE;4CACR,WAAW,EAAE,GAAG,GAAG,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;4CAC5C,SAAS,EAAE,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI;4CACtC,WAAW,EAAE,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,SAAS;4CAE7C,WAAW,EAAE,CAAC;4CACd,OAAO,EAAE,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI;4CAClC,SAAS,EAAE,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,SAAS;4CACzC,SAAS,EAAE,CAAC;yCACb;qCACF,CAAC;oCACF,MAAA,OAAK,CAAC,gBAAgB,0CAAE,IAAI,CAAC,OAAO,CAAC,CAAC;iCACvC;4BACH,CAAC,CAAC,CAAC;4BACH,MAAM,OAAK,CAAC;yBACb;wBAED,WAAO,EAAE,QAAQ,EAAE,WAAW,CAAC,QAAQ,EAAE,EAAC;;;wBAE1C,WAAO,IAAI,CAAC,WAAW,CAAC,KAAkB,CAAC,EAAC;;;;;KAE/C;IAEY,mBAAY,GAAzB,UACE,GAA4B,EAE5B,aAAmB;;;;;;;wBAGX,UAAU,GAAG,OAAO,CACxB,cAAc,EACd,GAAG,CAAC,GAAG,EAEP,GAAG,CAAC,cAAqB,CAC1B,CAAC;wBAEmB,WAAM,UAAU,CAAC,KAAK,CAAC,aAAa,CAAC,EAAA;;wBAAlD,aAAa,CAAA,SAAqC,CAAA,SAA1C;wBAChB,WAAO,EAAE,QAAQ,EAAE,UAAQ,EAAE,EAAC;;;wBAE9B,WAAO,IAAI,CAAC,WAAW,CAAC,KAAkB,CAAC,EAAC;;;;;KAE/C;IAEc,kBAAW,GAAG,UAAC,GAAgB;QAC5C,IAAI,GAAG,CAAC,IAAI,KAAK,sBAAsB,EAAE;YACvC,OAAO;gBACL,KAAK,EAAE,GAAG;aACX,CAAC;SACH;QACD,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC;IACxB,CAAC,CAAC;IACJ,aAAC;CAAA,AA5ED,IA4EC;SA5EY,MAAM","sourcesContent":["import { Parser as AsyncapiParser, fromURL } from '@asyncapi/parser';\nimport { OpenAPISchemaParser } from '@asyncapi/openapi-schema-parser';\nimport { ProtoBuffSchemaParser } from '@asyncapi/protobuf-schema-parser';\nimport { AvroSchemaParser } from '@asyncapi/avro-schema-parser';\n\nimport {\n ErrorObject,\n ParserReturn,\n FetchingSchemaInterface,\n ValidationError,\n} from '../types';\n\nimport { VALIDATION_ERRORS_TYPE } from '../constants';\n\nconst asyncapiParser = new AsyncapiParser();\nasyncapiParser.registerSchemaParser(OpenAPISchemaParser());\nasyncapiParser.registerSchemaParser(AvroSchemaParser());\nasyncapiParser.registerSchemaParser(ProtoBuffSchemaParser());\n\n// eslint-disable-next-line @typescript-eslint/no-extraneous-class\nexport class Parser {\n static async parse(\n // eslint-disable-next-line @typescript-eslint/no-redundant-type-constituents, @typescript-eslint/no-explicit-any\n content: string | any,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n parserOptions?: any,\n ): Promise<ParserReturn> {\n try {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-argument\n const parseResult = await asyncapiParser.parse(content, parserOptions);\n\n const error: {\n title: string | undefined;\n validationErrors: ValidationError[] | undefined;\n } = {\n title: 'There are errors in your Asyncapi document',\n validationErrors: [],\n };\n\n if (parseResult.document === undefined) {\n parseResult.diagnostics.forEach((diagnostic) => {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-enum-comparison\n if (diagnostic.severity == 0) {\n const tempObj: ValidationError = {\n title: diagnostic.message,\n location: {\n jsonPointer: '/' + diagnostic.path.join('/'),\n startLine: diagnostic.range.start.line,\n startColumn: diagnostic.range.start.character,\n // as of @asyncapi/parser 3.3.0 offset of 1 correctly shows the error line\n startOffset: 1,\n endLine: diagnostic.range.end.line,\n endColumn: diagnostic.range.end.character,\n endOffset: 0,\n },\n };\n error.validationErrors?.push(tempObj);\n }\n });\n throw error;\n }\n\n return { asyncapi: parseResult.document };\n } catch (err) {\n return this.handleError(err as ErrorObject);\n }\n }\n\n static async parseFromUrl(\n arg: FetchingSchemaInterface,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n parserOptions?: any,\n ): Promise<ParserReturn> {\n try {\n const fromResult = fromURL(\n asyncapiParser,\n arg.url,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n arg.requestOptions as any,\n );\n // eslint-disable-next-line @typescript-eslint/no-unsafe-argument\n const { document } = await fromResult.parse(parserOptions);\n return { asyncapi: document };\n } catch (err) {\n return this.handleError(err as ErrorObject);\n }\n }\n\n private static handleError = (err: ErrorObject): ParserReturn => {\n if (err.type === VALIDATION_ERRORS_TYPE) {\n return {\n error: err,\n };\n }\n return { error: err };\n };\n}\n"]}
1
+ {"version":3,"file":"parser.js","sourceRoot":"","sources":["../../../src/helpers/parser.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n Parser as AsyncapiParser,\n Diagnostic,\n DiagnosticSeverity,\n fromURL,\n} from '@asyncapi/parser';\nimport { OpenAPISchemaParser } from '@asyncapi/openapi-schema-parser';\nimport { ProtoBuffSchemaParser } from '@asyncapi/protobuf-schema-parser';\nimport { AvroSchemaParser } from '@asyncapi/avro-schema-parser';\n\nimport {\n ErrorObject,\n ParserReturn,\n FetchingSchemaInterface,\n ValidationError,\n} from '../types';\n\nimport { VALIDATION_ERRORS_TYPE } from '../constants';\n\nconst asyncapiParser = new AsyncapiParser();\nasyncapiParser.registerSchemaParser(OpenAPISchemaParser());\nasyncapiParser.registerSchemaParser(AvroSchemaParser());\nasyncapiParser.registerSchemaParser(ProtoBuffSchemaParser());\n\n// eslint-disable-next-line @typescript-eslint/no-extraneous-class\nexport class Parser {\n static async parse(\n // eslint-disable-next-line @typescript-eslint/no-redundant-type-constituents, @typescript-eslint/no-explicit-any\n content: string | any,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n parserOptions?: any,\n ): Promise<ParserReturn> {\n try {\n const { document, diagnostics } = await asyncapiParser.parse(\n // eslint-disable-next-line @typescript-eslint/no-unsafe-argument\n content,\n // eslint-disable-next-line @typescript-eslint/no-unsafe-argument\n parserOptions,\n );\n\n if (document === undefined) {\n throw this.convertDiagnosticToErrorObject(diagnostics, [0]);\n }\n\n return { asyncapi: document };\n } catch (err) {\n return this.handleError(err as ErrorObject);\n }\n }\n\n static async parseFromUrl(\n arg: FetchingSchemaInterface,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n parserOptions?: any,\n ): Promise<ParserReturn> {\n try {\n const fromResult = fromURL(\n asyncapiParser,\n arg.url,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n arg.requestOptions as any,\n );\n // eslint-disable-next-line @typescript-eslint/no-unsafe-argument\n const { document, diagnostics } = await fromResult.parse(parserOptions);\n\n if (document == undefined) {\n // this means there are errors in the document.\n // so we gather all the severity 0 diagnostics and throw them as errors\n throw this.convertDiagnosticToErrorObject(diagnostics, [0]);\n }\n\n return { asyncapi: document, error: undefined };\n } catch (err) {\n return this.handleError(err as ErrorObject);\n }\n }\n\n static readonly convertDiagnosticToErrorObject = (\n diagnostics: Diagnostic[],\n severities: DiagnosticSeverity[],\n ): ErrorObject => {\n const error: ErrorObject = {\n title: 'There are errors in your Asyncapi document',\n type: 'VALIDATION_ERRORS_TYPE',\n validationErrors: [],\n };\n diagnostics.forEach((diagnostic) => {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-enum-comparison\n if (severities.includes(diagnostic.severity)) {\n const tempObj: ValidationError = {\n title: diagnostic.message,\n location: {\n jsonPointer: '/' + diagnostic.path.join('/'),\n startLine: diagnostic.range.start.line,\n startColumn: diagnostic.range.start.character,\n // as of @asyncapi/parser 3.3.0 offset of 1 correctly shows the error line\n startOffset: 1,\n endLine: diagnostic.range.end.line,\n endColumn: diagnostic.range.end.character,\n endOffset: 0,\n },\n };\n error.validationErrors?.push(tempObj);\n }\n });\n return error;\n };\n\n private static handleError = (err: ErrorObject): ParserReturn => {\n if (err.type === VALIDATION_ERRORS_TYPE) {\n return {\n error: err,\n };\n }\n return { error: err };\n };\n}\n"]}
@@ -1,7 +1,9 @@
1
- import { ParserReturn, FetchingSchemaInterface } from '../types';
1
+ import { Diagnostic, DiagnosticSeverity } from '@asyncapi/parser';
2
+ import { ErrorObject, ParserReturn, FetchingSchemaInterface } from '../types';
2
3
  export declare class Parser {
3
4
  static parse(content: string | any, parserOptions?: any): Promise<ParserReturn>;
4
5
  static parseFromUrl(arg: FetchingSchemaInterface, parserOptions?: any): Promise<ParserReturn>;
6
+ static readonly convertDiagnosticToErrorObject: (diagnostics: Diagnostic[], severities: DiagnosticSeverity[]) => ErrorObject;
5
7
  private static handleError;
6
8
  }
7
9
  //# sourceMappingURL=parser.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"parser.d.ts","sourceRoot":"","sources":["../../../src/helpers/parser.ts"],"names":[],"mappings":"AAKA,OAAO,EAEL,YAAY,EACZ,uBAAuB,EAExB,MAAM,UAAU,CAAC;AAUlB,qBAAa,MAAM;WACJ,KAAK,CAEhB,OAAO,EAAE,MAAM,GAAG,GAAG,EAErB,aAAa,CAAC,EAAE,GAAG,GAClB,OAAO,CAAC,YAAY,CAAC;WA0CX,YAAY,CACvB,GAAG,EAAE,uBAAuB,EAE5B,aAAa,CAAC,EAAE,GAAG,GAClB,OAAO,CAAC,YAAY,CAAC;IAgBxB,OAAO,CAAC,MAAM,CAAC,WAAW,CAOxB;CACH"}
1
+ {"version":3,"file":"parser.d.ts","sourceRoot":"","sources":["../../../src/helpers/parser.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,UAAU,EACV,kBAAkB,EAEnB,MAAM,kBAAkB,CAAC;AAK1B,OAAO,EACL,WAAW,EACX,YAAY,EACZ,uBAAuB,EAExB,MAAM,UAAU,CAAC;AAUlB,qBAAa,MAAM;WACJ,KAAK,CAEhB,OAAO,EAAE,MAAM,GAAG,GAAG,EAErB,aAAa,CAAC,EAAE,GAAG,GAClB,OAAO,CAAC,YAAY,CAAC;WAmBX,YAAY,CACvB,GAAG,EAAE,uBAAuB,EAE5B,aAAa,CAAC,EAAE,GAAG,GAClB,OAAO,CAAC,YAAY,CAAC;IAuBxB,MAAM,CAAC,QAAQ,CAAC,8BAA8B,gBAC/B,UAAU,EAAE,cACb,kBAAkB,EAAE,KAC/B,WAAW,CA0BZ;IAEF,OAAO,CAAC,MAAM,CAAC,WAAW,CAOxB;CACH"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@asyncapi/react-component",
3
- "version": "2.2.4",
3
+ "version": "2.3.0",
4
4
  "private": false,
5
5
  "description": "A React component for AsyncAPI specification.",
6
6
  "repository": {