@asyncapi/react-component 1.0.0-next.47 → 1.0.0-next.49
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/browser/index.js +32 -27
- package/browser/index.js.LICENSE.txt +88 -0
- package/browser/standalone/index.js +32 -51
- package/browser/standalone/index.js.LICENSE.txt +112 -0
- package/browser/standalone/without-parser.js +14 -41
- package/browser/standalone/without-parser.js.LICENSE.txt +110 -0
- package/browser/without-parser.js +14 -12
- package/browser/without-parser.js.LICENSE.txt +86 -0
- package/lib/cjs/components/Schema.js +40 -57
- package/lib/cjs/components/Schema.js.map +1 -1
- package/lib/cjs/components/Tag.js.map +1 -1
- package/lib/cjs/components/Tags.js.map +1 -1
- package/lib/cjs/containers/AsyncApi/AsyncApi.js.map +1 -1
- package/lib/cjs/containers/AsyncApi/Layout.js.map +1 -1
- package/lib/cjs/containers/AsyncApi/Standalone.js.map +1 -1
- package/lib/cjs/containers/Info/Info.js +6 -6
- package/lib/cjs/containers/Info/Info.js.map +1 -1
- package/lib/cjs/containers/Messages/Message.js +3 -3
- package/lib/cjs/containers/Messages/Message.js.map +1 -1
- package/lib/cjs/containers/Messages/MessageExample.js.map +1 -1
- package/lib/cjs/containers/Messages/Messages.js +1 -1
- package/lib/cjs/containers/Messages/Messages.js.map +1 -1
- package/lib/cjs/containers/Operations/Operation.js +9 -7
- package/lib/cjs/containers/Operations/Operation.js.map +1 -1
- package/lib/cjs/containers/Operations/Operations.js +10 -10
- package/lib/cjs/containers/Operations/Operations.js.map +1 -1
- package/lib/cjs/containers/Schemas/Schema.js.map +1 -1
- package/lib/cjs/containers/Schemas/Schemas.js +1 -1
- package/lib/cjs/containers/Schemas/Schemas.js.map +1 -1
- package/lib/cjs/containers/Servers/Security.js +44 -32
- package/lib/cjs/containers/Servers/Security.js.map +1 -1
- package/lib/cjs/containers/Servers/Server.js +2 -2
- package/lib/cjs/containers/Servers/Server.js.map +1 -1
- package/lib/cjs/containers/Sidebar/Sidebar.js +42 -31
- package/lib/cjs/containers/Sidebar/Sidebar.js.map +1 -1
- package/lib/cjs/contexts/useSpec.js.map +1 -1
- package/lib/cjs/helpers/message.js +16 -14
- package/lib/cjs/helpers/message.js.map +1 -1
- package/lib/cjs/helpers/parser.js +14 -15
- package/lib/cjs/helpers/parser.js.map +1 -1
- package/lib/cjs/helpers/schema.js +18 -24
- package/lib/cjs/helpers/schema.js.map +1 -1
- package/lib/cjs/helpers/server.js.map +1 -1
- package/lib/cjs/helpers/specification.js +21 -26
- package/lib/cjs/helpers/specification.js.map +1 -1
- package/lib/cjs/types.js.map +1 -1
- package/lib/esm/components/Schema.js +40 -57
- package/lib/esm/components/Schema.js.map +1 -1
- package/lib/esm/components/Tag.js.map +1 -1
- package/lib/esm/components/Tags.js.map +1 -1
- package/lib/esm/containers/AsyncApi/AsyncApi.js.map +1 -1
- package/lib/esm/containers/AsyncApi/Layout.js.map +1 -1
- package/lib/esm/containers/AsyncApi/Standalone.js.map +1 -1
- package/lib/esm/containers/Info/Info.js +6 -6
- package/lib/esm/containers/Info/Info.js.map +1 -1
- package/lib/esm/containers/Messages/Message.js +3 -3
- package/lib/esm/containers/Messages/Message.js.map +1 -1
- package/lib/esm/containers/Messages/MessageExample.js.map +1 -1
- package/lib/esm/containers/Messages/Messages.js +1 -1
- package/lib/esm/containers/Messages/Messages.js.map +1 -1
- package/lib/esm/containers/Operations/Operation.js +9 -7
- package/lib/esm/containers/Operations/Operation.js.map +1 -1
- package/lib/esm/containers/Operations/Operations.js +10 -10
- package/lib/esm/containers/Operations/Operations.js.map +1 -1
- package/lib/esm/containers/Schemas/Schema.js.map +1 -1
- package/lib/esm/containers/Schemas/Schemas.js +1 -1
- package/lib/esm/containers/Schemas/Schemas.js.map +1 -1
- package/lib/esm/containers/Servers/Security.js +44 -32
- package/lib/esm/containers/Servers/Security.js.map +1 -1
- package/lib/esm/containers/Servers/Server.js +2 -2
- package/lib/esm/containers/Servers/Server.js.map +1 -1
- package/lib/esm/containers/Sidebar/Sidebar.js +42 -31
- package/lib/esm/containers/Sidebar/Sidebar.js.map +1 -1
- package/lib/esm/contexts/useSpec.js.map +1 -1
- package/lib/esm/helpers/message.js +16 -14
- package/lib/esm/helpers/message.js.map +1 -1
- package/lib/esm/helpers/parser.js +15 -13
- package/lib/esm/helpers/parser.js.map +1 -1
- package/lib/esm/helpers/schema.js +14 -17
- package/lib/esm/helpers/schema.js.map +1 -1
- package/lib/esm/helpers/server.js.map +1 -1
- package/lib/esm/helpers/specification.js +21 -23
- package/lib/esm/helpers/specification.js.map +1 -1
- package/lib/esm/types.js.map +1 -1
- package/lib/types/components/Schema.d.ts +2 -2
- package/lib/types/components/Schema.d.ts.map +1 -1
- package/lib/types/components/Tag.d.ts +2 -2
- package/lib/types/components/Tag.d.ts.map +1 -1
- package/lib/types/components/Tags.d.ts +2 -2
- package/lib/types/components/Tags.d.ts.map +1 -1
- package/lib/types/containers/AsyncApi/AsyncApi.d.ts +2 -2
- package/lib/types/containers/AsyncApi/AsyncApi.d.ts.map +1 -1
- package/lib/types/containers/AsyncApi/Layout.d.ts +2 -2
- package/lib/types/containers/AsyncApi/Layout.d.ts.map +1 -1
- package/lib/types/containers/AsyncApi/Standalone.d.ts +2 -2
- package/lib/types/containers/AsyncApi/Standalone.d.ts.map +1 -1
- package/lib/types/containers/Info/Info.d.ts.map +1 -1
- package/lib/types/containers/Messages/Message.d.ts +2 -2
- package/lib/types/containers/Messages/Message.d.ts.map +1 -1
- package/lib/types/containers/Messages/MessageExample.d.ts +3 -3
- package/lib/types/containers/Messages/MessageExample.d.ts.map +1 -1
- package/lib/types/containers/Messages/Messages.d.ts.map +1 -1
- package/lib/types/containers/Operations/Operation.d.ts +3 -3
- package/lib/types/containers/Operations/Operation.d.ts.map +1 -1
- package/lib/types/containers/Operations/Operations.d.ts.map +1 -1
- package/lib/types/containers/Schemas/Schema.d.ts +2 -2
- package/lib/types/containers/Schemas/Schema.d.ts.map +1 -1
- package/lib/types/containers/Schemas/Schemas.d.ts.map +1 -1
- package/lib/types/containers/Servers/Security.d.ts +2 -2
- package/lib/types/containers/Servers/Security.d.ts.map +1 -1
- package/lib/types/containers/Servers/Server.d.ts +2 -2
- package/lib/types/containers/Servers/Server.d.ts.map +1 -1
- package/lib/types/containers/Sidebar/Sidebar.d.ts.map +1 -1
- package/lib/types/contexts/useSpec.d.ts +3 -3
- package/lib/types/contexts/useSpec.d.ts.map +1 -1
- package/lib/types/helpers/message.d.ts +3 -3
- package/lib/types/helpers/message.d.ts.map +1 -1
- package/lib/types/helpers/parser.d.ts.map +1 -1
- package/lib/types/helpers/schema.d.ts +8 -9
- package/lib/types/helpers/schema.d.ts.map +1 -1
- package/lib/types/helpers/server.d.ts +2 -2
- package/lib/types/helpers/server.d.ts.map +1 -1
- package/lib/types/helpers/specification.d.ts +5 -5
- package/lib/types/helpers/specification.d.ts.map +1 -1
- package/lib/types/types.d.ts +4 -4
- package/lib/types/types.d.ts.map +1 -1
- package/package.json +12 -10
|
@@ -26,17 +26,18 @@ var MessageHelpers = (function () {
|
|
|
26
26
|
return schema;
|
|
27
27
|
};
|
|
28
28
|
MessageHelpers.getPayloadExamples = function (msg) {
|
|
29
|
-
var
|
|
30
|
-
|
|
29
|
+
var _a;
|
|
30
|
+
var examples = msg.examples().all();
|
|
31
|
+
if (examples.some(function (e) { return e.hasPayload(); })) {
|
|
31
32
|
var messageExamples = examples
|
|
32
33
|
.flatMap(function (e) {
|
|
33
|
-
if (!e.payload) {
|
|
34
|
+
if (!e.payload()) {
|
|
34
35
|
return;
|
|
35
36
|
}
|
|
36
37
|
return {
|
|
37
|
-
name: e.name,
|
|
38
|
-
summary: e.summary,
|
|
39
|
-
example: e.payload,
|
|
38
|
+
name: e.name(),
|
|
39
|
+
summary: e.summary(),
|
|
40
|
+
example: e.payload(),
|
|
40
41
|
};
|
|
41
42
|
})
|
|
42
43
|
.filter(Boolean);
|
|
@@ -46,22 +47,23 @@ var MessageHelpers = (function () {
|
|
|
46
47
|
}
|
|
47
48
|
var payload = msg.payload();
|
|
48
49
|
if (payload && payload.examples()) {
|
|
49
|
-
return payload.examples().map(function (example) { return ({ example: example }); });
|
|
50
|
+
return (_a = payload.examples()) === null || _a === void 0 ? void 0 : _a.map(function (example) { return ({ example: example }); });
|
|
50
51
|
}
|
|
51
52
|
return;
|
|
52
53
|
};
|
|
53
54
|
MessageHelpers.getHeadersExamples = function (msg) {
|
|
54
|
-
var
|
|
55
|
-
|
|
55
|
+
var _a;
|
|
56
|
+
var examples = msg.examples().all();
|
|
57
|
+
if (examples.some(function (e) { return e.hasHeaders(); })) {
|
|
56
58
|
var messageExamples = examples
|
|
57
59
|
.flatMap(function (e) {
|
|
58
|
-
if (!e.
|
|
60
|
+
if (!e.hasHeaders()) {
|
|
59
61
|
return;
|
|
60
62
|
}
|
|
61
63
|
return {
|
|
62
|
-
name: e.name,
|
|
63
|
-
summary: e.summary,
|
|
64
|
-
example: e.headers,
|
|
64
|
+
name: e.name(),
|
|
65
|
+
summary: e.summary(),
|
|
66
|
+
example: e.headers(),
|
|
65
67
|
};
|
|
66
68
|
})
|
|
67
69
|
.filter(Boolean);
|
|
@@ -71,7 +73,7 @@ var MessageHelpers = (function () {
|
|
|
71
73
|
}
|
|
72
74
|
var headers = msg.headers();
|
|
73
75
|
if (headers && headers.examples()) {
|
|
74
|
-
return headers.examples().map(function (example) { return ({ example: example }); });
|
|
76
|
+
return (_a = headers.examples()) === null || _a === void 0 ? void 0 : _a.map(function (example) { return ({ example: example }); });
|
|
75
77
|
}
|
|
76
78
|
return;
|
|
77
79
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"message.js","sourceRoot":"","sources":["../../../src/helpers/message.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAIzC;IAAA;
|
|
1
|
+
{"version":3,"file":"message.js","sourceRoot":"","sources":["../../../src/helpers/message.ts"],"names":[],"mappings":"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","sourcesContent":["import { MessageInterface } from '@asyncapi/parser';\n// @ts-ignore\nimport { sample } from 'openapi-sampler';\n\nimport { MessageExample } from '../types';\n\nexport class MessageHelpers {\n static generateExample(schema: any, options: any = {}) {\n try {\n return this.sanitizeExample(sample(schema, options)) || '';\n } catch (e) {\n return '';\n }\n }\n\n static sanitizeExample(schema: any): any {\n if (typeof schema === 'object' && schema && !Array.isArray(schema)) {\n return Object.entries(schema).reduce((obj, [propertyName, property]) => {\n if (\n !propertyName.startsWith('x-parser-') &&\n !propertyName.startsWith('x-schema-private-')\n ) {\n obj[propertyName] = this.sanitizeExample(property);\n }\n return obj;\n }, {});\n }\n return schema;\n }\n\n static getPayloadExamples(\n msg: MessageInterface,\n ): MessageExample[] | undefined {\n const examples = msg.examples().all();\n\n if (examples.some(e => e.hasPayload())) {\n const messageExamples = examples\n .flatMap(e => {\n if (!e.payload()) {\n return;\n }\n return {\n name: e.name(),\n summary: e.summary(),\n example: e.payload(),\n };\n })\n .filter(Boolean) as MessageExample[];\n\n if (messageExamples.length > 0) {\n return messageExamples;\n }\n }\n\n const payload = msg.payload();\n if (payload && payload.examples()) {\n return payload.examples()?.map(example => ({ example }));\n }\n\n return;\n }\n\n static getHeadersExamples(\n msg: MessageInterface,\n ): MessageExample[] | undefined {\n const examples = msg.examples().all();\n if (examples.some(e => e.hasHeaders())) {\n const messageExamples = examples\n .flatMap(e => {\n if (!e.hasHeaders()) {\n return;\n }\n return {\n name: e.name(),\n summary: e.summary(),\n example: e.headers(),\n };\n })\n .filter(Boolean) as MessageExample[];\n\n if (messageExamples.length > 0) {\n return messageExamples;\n }\n }\n\n const headers = msg.headers();\n if (headers && headers.examples()) {\n return headers.examples()?.map(example => ({ example }));\n }\n\n return;\n }\n}\n"]}
|
|
@@ -34,26 +34,27 @@ 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 {
|
|
38
|
-
import
|
|
39
|
-
import
|
|
37
|
+
import { Parser as AsyncapiParser, fromURL } from '@asyncapi/parser';
|
|
38
|
+
import { OpenAPISchemaParser } from '@asyncapi/openapi-schema-parser';
|
|
39
|
+
import { AvroSchemaParser } from '@asyncapi/avro-schema-parser';
|
|
40
40
|
import { VALIDATION_ERRORS_TYPE } from '../constants';
|
|
41
|
-
|
|
42
|
-
registerSchemaParser(
|
|
41
|
+
var asyncapiParser = new AsyncapiParser();
|
|
42
|
+
asyncapiParser.registerSchemaParser(OpenAPISchemaParser());
|
|
43
|
+
asyncapiParser.registerSchemaParser(AvroSchemaParser());
|
|
43
44
|
var Parser = (function () {
|
|
44
45
|
function Parser() {
|
|
45
46
|
}
|
|
46
47
|
Parser.parse = function (content, parserOptions) {
|
|
47
48
|
return __awaiter(this, void 0, void 0, function () {
|
|
48
|
-
var
|
|
49
|
+
var document_1, err_1;
|
|
49
50
|
return __generator(this, function (_a) {
|
|
50
51
|
switch (_a.label) {
|
|
51
52
|
case 0:
|
|
52
53
|
_a.trys.push([0, 2, , 3]);
|
|
53
|
-
return [4, parse(content, parserOptions)];
|
|
54
|
+
return [4, asyncapiParser.parse(content, parserOptions)];
|
|
54
55
|
case 1:
|
|
55
|
-
|
|
56
|
-
return [2, { asyncapi:
|
|
56
|
+
document_1 = (_a.sent()).document;
|
|
57
|
+
return [2, { asyncapi: document_1 }];
|
|
57
58
|
case 2:
|
|
58
59
|
err_1 = _a.sent();
|
|
59
60
|
return [2, this.handleError(err_1)];
|
|
@@ -64,15 +65,16 @@ var Parser = (function () {
|
|
|
64
65
|
};
|
|
65
66
|
Parser.parseFromUrl = function (arg, parserOptions) {
|
|
66
67
|
return __awaiter(this, void 0, void 0, function () {
|
|
67
|
-
var
|
|
68
|
+
var fromResult, document_2, err_2;
|
|
68
69
|
return __generator(this, function (_a) {
|
|
69
70
|
switch (_a.label) {
|
|
70
71
|
case 0:
|
|
71
72
|
_a.trys.push([0, 2, , 3]);
|
|
72
|
-
|
|
73
|
+
fromResult = fromURL(asyncapiParser, arg.url, arg.requestOptions);
|
|
74
|
+
return [4, fromResult.parse(parserOptions)];
|
|
73
75
|
case 1:
|
|
74
|
-
|
|
75
|
-
return [2, { asyncapi:
|
|
76
|
+
document_2 = (_a.sent()).document;
|
|
77
|
+
return [2, { asyncapi: document_2 }];
|
|
76
78
|
case 2:
|
|
77
79
|
err_2 = _a.sent();
|
|
78
80
|
return [2, this.handleError(err_2)];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parser.js","sourceRoot":"","sources":["../../../src/helpers/parser.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,OAAO,EAAE,
|
|
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,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAMhE,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;AAIxD;IAAA;IAkCA,CAAC;IAjCc,YAAK,GAAlB,UACE,OAAqB,EACrB,aAAmB;;;;;;;wBAGI,WAAM,cAAc,CAAC,KAAK,CAAC,OAAO,EAAE,aAAa,CAAC,EAAA;;wBAA/D,aAAa,CAAA,SAAkD,CAAA,SAAvD;wBAChB,WAAO,EAAE,QAAQ,EAAE,UAAQ,EAAE,EAAC;;;wBAE9B,WAAO,IAAI,CAAC,WAAW,CAAC,KAAkB,CAAC,EAAC;;;;;KAE/C;IAEY,mBAAY,GAAzB,UACE,GAA4B,EAC5B,aAAmB;;;;;;;wBAGX,UAAU,GAAG,OAAO,CAAC,cAAc,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,cAAc,CAAC,CAAC;wBACnD,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,AAlCD,IAkCC;SAlCY,MAAM","sourcesContent":["import { Parser as AsyncapiParser, fromURL } from '@asyncapi/parser';\nimport { OpenAPISchemaParser } from '@asyncapi/openapi-schema-parser';\nimport { AvroSchemaParser } from '@asyncapi/avro-schema-parser';\n// @ts-ignore\nimport protoSchemaParser from '@asyncapi/protobuf-schema-parser';\n\nimport { ErrorObject, ParserReturn, FetchingSchemaInterface } from '../types';\n\nimport { VALIDATION_ERRORS_TYPE } from '../constants';\n\nconst asyncapiParser = new AsyncapiParser();\nasyncapiParser.registerSchemaParser(OpenAPISchemaParser());\nasyncapiParser.registerSchemaParser(AvroSchemaParser());\n// Waiting for schema parser to be upgraded\n// asyncapiParser.registerSchemaParser(protoSchemaParser);\n\nexport class Parser {\n static async parse(\n content: string | any,\n parserOptions?: any,\n ): Promise<ParserReturn> {\n try {\n const { document } = await asyncapiParser.parse(content, parserOptions);\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 parserOptions?: any,\n ): Promise<ParserReturn> {\n try {\n const fromResult = fromURL(asyncapiParser, arg.url, arg.requestOptions);\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,4 +1,4 @@
|
|
|
1
|
-
import SchemaClass from '@asyncapi/parser
|
|
1
|
+
import { SchemaV2 as SchemaClass, } from '@asyncapi/parser';
|
|
2
2
|
export var SchemaCustomTypes;
|
|
3
3
|
(function (SchemaCustomTypes) {
|
|
4
4
|
SchemaCustomTypes["ANY"] = "any";
|
|
@@ -127,7 +127,7 @@ var SchemaHelpers = (function () {
|
|
|
127
127
|
if (schema.oneOf() ||
|
|
128
128
|
schema.anyOf() ||
|
|
129
129
|
schema.allOf() ||
|
|
130
|
-
Object.keys(schema.properties()).length ||
|
|
130
|
+
Object.keys(schema.properties() || {}).length > 0 ||
|
|
131
131
|
schema.items() ||
|
|
132
132
|
schema.not() ||
|
|
133
133
|
schema.if() ||
|
|
@@ -156,7 +156,6 @@ var SchemaHelpers = (function () {
|
|
|
156
156
|
}, {}),
|
|
157
157
|
required: Object.keys(urlVariables)
|
|
158
158
|
},
|
|
159
|
-
_a[this.extRenderType] = false,
|
|
160
159
|
_a[this.extRenderAdditionalInfo] = false,
|
|
161
160
|
_a);
|
|
162
161
|
return new SchemaClass(json);
|
|
@@ -180,7 +179,6 @@ var SchemaHelpers = (function () {
|
|
|
180
179
|
}, {}),
|
|
181
180
|
required: Object.keys(parameters)
|
|
182
181
|
},
|
|
183
|
-
_a[this.extRenderType] = false,
|
|
184
182
|
_a[this.extRenderAdditionalInfo] = false,
|
|
185
183
|
_a);
|
|
186
184
|
return new SchemaClass(json);
|
|
@@ -193,14 +191,17 @@ var SchemaHelpers = (function () {
|
|
|
193
191
|
if (!value || typeof value.extensions !== 'function') {
|
|
194
192
|
return;
|
|
195
193
|
}
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
194
|
+
var extensions = value.extensions();
|
|
195
|
+
var filteredExtensions = {};
|
|
196
|
+
for (var _i = 0, _a = Object.values(extensions.all()); _i < _a.length; _i++) {
|
|
197
|
+
var ext = _a[_i];
|
|
198
|
+
var extType = ext;
|
|
199
|
+
if (!extType.id().startsWith('x-parser-') &&
|
|
200
|
+
!extType.id().startsWith('x-schema-private-')) {
|
|
201
|
+
filteredExtensions[extType.id()] = extType.value();
|
|
201
202
|
}
|
|
202
|
-
|
|
203
|
-
|
|
203
|
+
}
|
|
204
|
+
return filteredExtensions;
|
|
204
205
|
};
|
|
205
206
|
SchemaHelpers.getDependentRequired = function (propertyName, schema) {
|
|
206
207
|
var dependentRequired = [];
|
|
@@ -240,7 +241,6 @@ var SchemaHelpers = (function () {
|
|
|
240
241
|
return obj;
|
|
241
242
|
}, {})
|
|
242
243
|
},
|
|
243
|
-
_a[this.extRenderType] = false,
|
|
244
244
|
_a[this.extRenderAdditionalInfo] = false,
|
|
245
245
|
_a);
|
|
246
246
|
return new SchemaClass(json);
|
|
@@ -265,8 +265,8 @@ var SchemaHelpers = (function () {
|
|
|
265
265
|
var _this = this;
|
|
266
266
|
var types = items.map(function (item) { return _this.toSchemaType(item); }).join(', ');
|
|
267
267
|
var additionalItems = schema.additionalItems();
|
|
268
|
-
if (additionalItems
|
|
269
|
-
var additionalType = additionalItems ===
|
|
268
|
+
if (additionalItems !== undefined && additionalItems !== false) {
|
|
269
|
+
var additionalType = additionalItems === true
|
|
270
270
|
? SchemaCustomTypes.ANY
|
|
271
271
|
: this.toSchemaType(additionalItems);
|
|
272
272
|
return "tuple<".concat(types ||
|
|
@@ -403,7 +403,6 @@ var SchemaHelpers = (function () {
|
|
|
403
403
|
type: 'array',
|
|
404
404
|
items: value.map(function (v) { return _this.jsonFieldToSchema(v); })
|
|
405
405
|
},
|
|
406
|
-
_c[this.extRenderType] = false,
|
|
407
406
|
_c[this.extRenderAdditionalInfo] = false,
|
|
408
407
|
_c;
|
|
409
408
|
}
|
|
@@ -415,7 +414,6 @@ var SchemaHelpers = (function () {
|
|
|
415
414
|
return obj;
|
|
416
415
|
}, {})
|
|
417
416
|
},
|
|
418
|
-
_d[this.extRenderType] = false,
|
|
419
417
|
_d[this.extRenderAdditionalInfo] = false,
|
|
420
418
|
_d;
|
|
421
419
|
};
|
|
@@ -429,7 +427,6 @@ var SchemaHelpers = (function () {
|
|
|
429
427
|
}
|
|
430
428
|
return false;
|
|
431
429
|
};
|
|
432
|
-
SchemaHelpers.extRenderType = 'x-schema-private-render-type';
|
|
433
430
|
SchemaHelpers.extRenderAdditionalInfo = 'x-schema-private-render-additional-info';
|
|
434
431
|
SchemaHelpers.extRawValue = 'x-schema-private-raw-value';
|
|
435
432
|
SchemaHelpers.extParameterLocation = 'x-schema-private-parameter-location';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../../../src/helpers/schema.ts"],"names":[],"mappings":"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","sourcesContent":["import { ChannelParameter, ServerVariable, Schema } from '@asyncapi/parser';\n// @ts-ignore\nimport SchemaClass from '@asyncapi/parser/lib/models/schema';\n\nexport enum SchemaCustomTypes {\n // for `true` and `{}` schemas\n ANY = 'any',\n // for schemas without `type` keyword\n RESTRICTED_ANY = 'restricted any',\n // for `false` and `{ not: {}, ... }` schemas\n NEVER = 'never',\n // for types that we cannot infer\n UNKNOWN = 'unknown',\n}\n\nconst jsonSchemaTypes = [\n 'string',\n 'number',\n 'integer',\n 'boolean',\n 'array',\n 'object',\n 'null',\n];\nconst jsonSchemaKeywordTypes: Record<string, string> = {\n // string\n maxLength: 'string',\n minLength: 'string',\n pattern: 'string',\n contentMediaType: 'string',\n contentEncoding: 'string',\n // number\n multipleOf: 'number',\n maximum: 'number',\n exclusiveMaximum: 'number',\n minimum: 'number',\n exclusiveMinimum: 'number',\n // array\n items: 'array',\n maxItems: 'array',\n minItems: 'array',\n uniqueItems: 'array',\n contains: 'array',\n additionalItems: 'array',\n // object\n maxProperties: 'object',\n minProperties: 'object',\n required: 'object',\n properties: 'object',\n patternProperties: 'object',\n propertyNames: 'object',\n dependencies: 'object',\n additionalProperties: 'object',\n};\nconst jsonSchemaKeywords = Object.keys(jsonSchemaKeywordTypes);\n\nexport class SchemaHelpers {\n static extRenderType = 'x-schema-private-render-type';\n static extRenderAdditionalInfo = 'x-schema-private-render-additional-info';\n static extRawValue = 'x-schema-private-raw-value';\n static extParameterLocation = 'x-schema-private-parameter-location';\n\n static toSchemaType(schema: Schema): string {\n if (!schema || typeof schema.json !== 'function') {\n return SchemaCustomTypes.UNKNOWN;\n }\n if (schema.isBooleanSchema()) {\n if (schema.json() === true) {\n return SchemaCustomTypes.ANY;\n } else {\n return SchemaCustomTypes.NEVER;\n }\n }\n // handle case with `{}` schemas\n if (Object.keys(schema.json()).length === 0) {\n return SchemaCustomTypes.ANY;\n }\n // handle case with `{ not: {}, ... }` schemas\n const not = schema.not();\n if (not && this.inferType(not) === SchemaCustomTypes.ANY) {\n return SchemaCustomTypes.NEVER;\n }\n\n let type = this.inferType(schema);\n if (Array.isArray(type)) {\n return type.map(t => this.toType(t, schema)).join(' | ');\n }\n type = this.toType(type, schema);\n const combinedType = this.toCombinedType(schema);\n\n if (type && combinedType) {\n return `${type} ${combinedType}`;\n }\n if (combinedType) {\n return combinedType;\n }\n return type;\n }\n\n static prettifyValue(value: any, strict = true): string {\n const typeOf = typeof value;\n if (typeOf === 'string') {\n return strict ? `\"${value}\"` : value;\n }\n if (typeOf === 'number' || typeOf === 'bigint' || typeOf === 'boolean') {\n return `${value}`;\n }\n if (Array.isArray(value)) {\n return `[${value.toString()}]`;\n }\n return JSON.stringify(value);\n }\n\n static humanizeConstraints(schema: Schema): string[] {\n const constraints: string[] = [];\n\n // related to number/integer\n const numberRange = this.humanizeNumberRangeConstraint(\n schema.minimum(),\n schema.exclusiveMinimum(),\n schema.maximum(),\n schema.exclusiveMaximum(),\n );\n if (numberRange !== undefined) {\n constraints.push(numberRange);\n }\n const multipleOfConstraint = this.humanizeMultipleOfConstraint(\n schema.multipleOf(),\n );\n if (multipleOfConstraint !== undefined) {\n constraints.push(multipleOfConstraint);\n }\n\n // related to string\n const stringRange = this.humanizeRangeConstraint(\n 'characters',\n schema.minLength(),\n schema.maxLength(),\n );\n if (stringRange !== undefined) {\n constraints.push(stringRange);\n }\n\n // related to array\n const hasUniqueItems = schema.uniqueItems();\n const arrayRange = this.humanizeRangeConstraint(\n hasUniqueItems ? 'unique items' : 'items',\n schema.minItems(),\n schema.maxItems(),\n );\n if (arrayRange !== undefined) {\n constraints.push(arrayRange);\n }\n\n // related to object\n const objectRange = this.humanizeRangeConstraint(\n 'properties',\n schema.minProperties(),\n schema.maxProperties(),\n );\n if (objectRange !== undefined) {\n constraints.push(objectRange);\n }\n\n return constraints;\n }\n\n static isExpandable(schema: Schema): boolean {\n let type = this.inferType(schema);\n type = Array.isArray(type) ? type : [type];\n if (type.includes('object') || type.includes('array')) {\n return true;\n }\n\n if (\n schema.oneOf() ||\n schema.anyOf() ||\n schema.allOf() ||\n Object.keys(schema.properties()).length ||\n schema.items() ||\n schema.not() ||\n schema.if() ||\n schema.then() ||\n schema.else()\n ) {\n return true;\n }\n\n const customExtensions = this.getCustomExtensions(schema);\n if (customExtensions && Object.keys(customExtensions).length) {\n return true;\n }\n\n return false;\n }\n\n static serverVariablesToSchema(\n urlVariables?: Record<string, ServerVariable>,\n ): Schema | undefined {\n if (!urlVariables || !Object.keys(urlVariables).length) {\n return undefined;\n }\n\n const json = {\n type: 'object',\n properties: Object.entries(urlVariables).reduce(\n (obj, [variableName, variable]) => {\n obj[variableName] = Object.assign({}, variable.json() || {});\n obj[variableName].type = 'string';\n return obj;\n },\n {},\n ),\n required: Object.keys(urlVariables),\n [this.extRenderType]: false,\n [this.extRenderAdditionalInfo]: false,\n };\n return new SchemaClass(json);\n }\n\n static parametersToSchema(\n parameters?: Record<string, ChannelParameter>,\n ): Schema | undefined {\n if (!parameters || !Object.keys(parameters).length) {\n return undefined;\n }\n\n const json = {\n type: 'object',\n properties: Object.entries(parameters).reduce(\n (obj, [paramaterName, parameter]) => {\n const parameterSchema = parameter.schema();\n obj[paramaterName] = Object.assign(\n {},\n parameterSchema ? parameterSchema.json() : {},\n );\n obj[paramaterName].description =\n parameter.description() || obj[paramaterName].description;\n obj[paramaterName][this.extParameterLocation] = parameter.location();\n return obj;\n },\n {},\n ),\n required: Object.keys(parameters),\n [this.extRenderType]: false,\n [this.extRenderAdditionalInfo]: false,\n };\n return new SchemaClass(json);\n }\n\n static jsonToSchema(value: any): any {\n const json = this.jsonFieldToSchema(value);\n return new SchemaClass(json);\n }\n\n /**\n * Retrieves from given value all custom extensions (value with key started by `x-`).\n * However, it skips those private extensions that begin with `x-parser-` and `x-schema-private-`.\n *\n * @param value\n */\n static getCustomExtensions(value: any) {\n if (!value || typeof value.extensions !== 'function') {\n return;\n }\n return Object.entries(value.extensions() || {}).reduce(\n (obj, [extName, ext]) => {\n if (\n !extName.startsWith('x-parser-') &&\n !extName.startsWith('x-schema-private-')\n ) {\n obj[extName] = ext;\n }\n return obj;\n },\n {},\n );\n }\n\n /**\n * Retrieves from given schema all dependent required requires by given propertyName from `dependencies` object.\n *\n * @param propertyName\n * @param schema\n */\n static getDependentRequired(\n propertyName: string,\n schema: Schema,\n ): string[] | undefined {\n const dependentRequired: string[] = [];\n const dependencies = schema.dependencies();\n if (!dependencies) {\n return;\n }\n\n for (const [prop, array] of Object.entries(dependencies)) {\n if (Array.isArray(array) && array.includes(propertyName)) {\n dependentRequired.push(prop);\n }\n }\n return dependentRequired.length ? dependentRequired : undefined;\n }\n\n /**\n * Retrieves from given schema all dependent schemas from `dependencies` object.\n *\n * @param schema\n */\n static getDependentSchemas(schema: Schema): Schema | undefined {\n const dependencies = schema.dependencies();\n if (!dependencies) {\n return;\n }\n\n const records: Record<string, Schema> = {};\n for (const [prop, propSchema] of Object.entries(dependencies)) {\n if (typeof propSchema === 'object' && !Array.isArray(propSchema)) {\n records[prop] = propSchema;\n }\n }\n if (!Object.keys(records).length) {\n return undefined;\n }\n\n const json = {\n type: 'object',\n properties: Object.entries(records).reduce(\n (obj, [propertyName, propertySchema]) => {\n obj[propertyName] = Object.assign({}, propertySchema.json());\n return obj;\n },\n {},\n ),\n [this.extRenderType]: false,\n [this.extRenderAdditionalInfo]: false,\n };\n return new SchemaClass(json);\n }\n\n private static toType(type: string, schema: Schema): string {\n if (schema.isCircular()) {\n return type;\n }\n if (type === 'array') {\n const items = schema.items();\n if (Array.isArray(items)) {\n return this.toItemsType(items, schema);\n }\n if (!items) {\n return `array<${SchemaCustomTypes.ANY}>`;\n }\n return `array<${this.toSchemaType(items) || SchemaCustomTypes.UNKNOWN}>`;\n }\n return type;\n }\n\n private static toItemsType(items: Schema[], schema: Schema): string {\n const types = items.map(item => this.toSchemaType(item)).join(', ');\n const additionalItems = schema.additionalItems() as any;\n if (additionalItems === undefined || additionalItems.json()) {\n const additionalType =\n additionalItems === undefined || additionalItems.json() === true\n ? SchemaCustomTypes.ANY\n : this.toSchemaType(additionalItems);\n return `tuple<${types ||\n SchemaCustomTypes.UNKNOWN}, ...optional<${additionalType}>>`;\n }\n return `tuple<${types || SchemaCustomTypes.UNKNOWN}>`;\n }\n\n private static toCombinedType(schema: Schema): string | undefined {\n const oneOf = schema.oneOf();\n if (oneOf) {\n return 'oneOf';\n }\n if (schema.anyOf()) {\n return 'anyOf';\n }\n if (schema.allOf()) {\n return 'allOf';\n }\n return;\n }\n\n private static inferType(schema: Schema): string[] | string {\n let types = schema.type();\n\n if (types !== undefined) {\n if (Array.isArray(types)) {\n // if types have `integer` and `number` types, `integer` is unnecessary\n if (types.includes('integer') && types.includes('number')) {\n types = types.filter(t => t !== 'integer');\n }\n return types.length === 1 ? types[0] : types;\n }\n return types;\n }\n\n const constValue = schema.const();\n if (constValue !== undefined) {\n return typeof constValue;\n }\n const enumValue = schema.enum();\n if (Array.isArray(enumValue) && enumValue.length) {\n const inferredType = Array.from(new Set(enumValue.map(e => typeof e)));\n return inferredType.length === 1 ? inferredType[0] : inferredType;\n }\n\n const schemaKeys = Object.keys(schema.json() || {}) || [];\n const hasInferredTypes = jsonSchemaKeywords.some(key =>\n schemaKeys.includes(key),\n );\n if (hasInferredTypes === true) {\n return SchemaCustomTypes.RESTRICTED_ANY;\n }\n if (this.toCombinedType(schema)) {\n return '';\n }\n return SchemaCustomTypes.ANY;\n }\n\n private static humanizeNumberRangeConstraint(\n min: number | undefined,\n exclusiveMin: number | undefined,\n max: number | undefined,\n exclusiveMax: number | undefined,\n ): string | undefined {\n const hasExclusiveMin = exclusiveMin !== undefined;\n const hasMin = min !== undefined || hasExclusiveMin;\n const hasExclusiveMax = exclusiveMax !== undefined;\n const hasMax = max !== undefined || hasExclusiveMax;\n\n let numberRange;\n if (hasMin && hasMax) {\n numberRange = hasExclusiveMin ? '( ' : '[ ';\n numberRange += hasExclusiveMin ? exclusiveMin : min;\n numberRange += ' .. ';\n numberRange += hasExclusiveMax ? exclusiveMax : max;\n numberRange += hasExclusiveMax ? ' )' : ' ]';\n } else if (hasMin) {\n numberRange = hasExclusiveMin ? '> ' : '>= ';\n numberRange += hasExclusiveMin ? exclusiveMin : min;\n } else if (hasMax) {\n numberRange = hasExclusiveMax ? '< ' : '<= ';\n numberRange += hasExclusiveMax ? exclusiveMax : max;\n }\n return numberRange;\n }\n\n private static humanizeMultipleOfConstraint(\n multipleOf: number | undefined,\n ): string | undefined {\n if (multipleOf === undefined) {\n return;\n }\n const strigifiedMultipleOf = multipleOf.toString(10);\n if (!/^0\\.0*1$/.test(strigifiedMultipleOf)) {\n return `multiple of ${strigifiedMultipleOf}`;\n }\n return `decimal places <= ${strigifiedMultipleOf.split('.')[1].length}`;\n }\n\n private static humanizeRangeConstraint(\n description: string,\n min: number | undefined,\n max: number | undefined,\n ): string | undefined {\n let stringRange;\n if (min !== undefined && max !== undefined) {\n if (min === max) {\n stringRange = `${min} ${description}`;\n } else {\n stringRange = `[ ${min} .. ${max} ] ${description}`;\n }\n } else if (max !== undefined) {\n stringRange = `<= ${max} ${description}`;\n } else if (min !== undefined) {\n if (min === 1) {\n stringRange = 'non-empty';\n } else {\n stringRange = `>= ${min} ${description}`;\n }\n }\n return stringRange;\n }\n\n private static jsonFieldToSchema(value: any): any {\n if (value === undefined || value === null) {\n return {\n type: 'string',\n const: '',\n [this.extRawValue]: true,\n };\n }\n if (typeof value !== 'object') {\n const str =\n typeof value.toString === 'function' ? value.toString() : value;\n return {\n type: 'string',\n const: str,\n [this.extRawValue]: true,\n };\n }\n if (this.isJSONSchema(value)) {\n return value;\n }\n if (Array.isArray(value)) {\n return {\n type: 'array',\n items: value.map(v => this.jsonFieldToSchema(v)),\n [this.extRenderType]: false,\n [this.extRenderAdditionalInfo]: false,\n };\n }\n return {\n type: 'object',\n properties: Object.entries(value).reduce((obj, [k, v]) => {\n obj[k] = this.jsonFieldToSchema(v);\n return obj;\n }, {}),\n [this.extRenderType]: false,\n [this.extRenderAdditionalInfo]: false,\n };\n }\n\n private static isJSONSchema(value: any): boolean {\n if (\n value &&\n typeof value === 'object' &&\n (jsonSchemaTypes.includes(value.type) ||\n (Array.isArray(value.type) &&\n value.type.some((t: string) => !jsonSchemaTypes.includes(t))))\n ) {\n return true;\n }\n return false;\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../../../src/helpers/schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,QAAQ,IAAI,WAAW,GAGxB,MAAM,kBAAkB,CAAC;AAE1B,MAAM,CAAN,IAAY,iBASX;AATD,WAAY,iBAAiB;IAE3B,gCAAW,CAAA;IAEX,sDAAiC,CAAA;IAEjC,oCAAe,CAAA;IAEf,wCAAmB,CAAA;AACrB,CAAC,EATW,iBAAiB,KAAjB,iBAAiB,QAS5B;AAED,IAAM,eAAe,GAAG;IACtB,QAAQ;IACR,QAAQ;IACR,SAAS;IACT,SAAS;IACT,OAAO;IACP,QAAQ;IACR,MAAM;CACP,CAAC;AACF,IAAM,sBAAsB,GAA2B;IAErD,SAAS,EAAE,QAAQ;IACnB,SAAS,EAAE,QAAQ;IACnB,OAAO,EAAE,QAAQ;IACjB,gBAAgB,EAAE,QAAQ;IAC1B,eAAe,EAAE,QAAQ;IAEzB,UAAU,EAAE,QAAQ;IACpB,OAAO,EAAE,QAAQ;IACjB,gBAAgB,EAAE,QAAQ;IAC1B,OAAO,EAAE,QAAQ;IACjB,gBAAgB,EAAE,QAAQ;IAE1B,KAAK,EAAE,OAAO;IACd,QAAQ,EAAE,OAAO;IACjB,QAAQ,EAAE,OAAO;IACjB,WAAW,EAAE,OAAO;IACpB,QAAQ,EAAE,OAAO;IACjB,eAAe,EAAE,OAAO;IAExB,aAAa,EAAE,QAAQ;IACvB,aAAa,EAAE,QAAQ;IACvB,QAAQ,EAAE,QAAQ;IAClB,UAAU,EAAE,QAAQ;IACpB,iBAAiB,EAAE,QAAQ;IAC3B,aAAa,EAAE,QAAQ;IACvB,YAAY,EAAE,QAAQ;IACtB,oBAAoB,EAAE,QAAQ;CAC/B,CAAC;AACF,IAAM,kBAAkB,GAAG,MAAM,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;AAE/D;IAAA;IAgeA,CAAC;IA3dQ,0BAAY,GAAnB,UAAoB,MAAuB;QAA3C,iBAmCC;QAlCC,IAAI,CAAC,MAAM,IAAI,OAAO,MAAM,CAAC,IAAI,KAAK,UAAU,EAAE;YAChD,OAAO,iBAAiB,CAAC,OAAO,CAAC;SAClC;QACD,IAAI,MAAM,CAAC,eAAe,EAAE,EAAE;YAC5B,IAAI,MAAM,CAAC,IAAI,EAAE,KAAK,IAAI,EAAE;gBAC1B,OAAO,iBAAiB,CAAC,GAAG,CAAC;aAC9B;iBAAM;gBACL,OAAO,iBAAiB,CAAC,KAAK,CAAC;aAChC;SACF;QAED,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE;YAC3C,OAAO,iBAAiB,CAAC,GAAG,CAAC;SAC9B;QAED,IAAM,GAAG,GAAG,MAAM,CAAC,GAAG,EAAE,CAAC;QACzB,IAAI,GAAG,IAAI,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,iBAAiB,CAAC,GAAG,EAAE;YACxD,OAAO,iBAAiB,CAAC,KAAK,CAAC;SAChC;QAED,IAAI,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QAClC,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;YACvB,OAAO,IAAI,CAAC,GAAG,CAAC,UAAA,CAAC,IAAI,OAAA,KAAI,CAAC,MAAM,CAAC,CAAC,EAAE,MAAM,CAAC,EAAtB,CAAsB,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;SAC1D;QACD,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QACjC,IAAM,YAAY,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;QAEjD,IAAI,IAAI,IAAI,YAAY,EAAE;YACxB,OAAO,UAAG,IAAI,cAAI,YAAY,CAAE,CAAC;SAClC;QACD,IAAI,YAAY,EAAE;YAChB,OAAO,YAAY,CAAC;SACrB;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAEM,2BAAa,GAApB,UAAqB,KAAU,EAAE,MAAa;QAAb,uBAAA,EAAA,aAAa;QAC5C,IAAM,MAAM,GAAG,OAAO,KAAK,CAAC;QAC5B,IAAI,MAAM,KAAK,QAAQ,EAAE;YACvB,OAAO,MAAM,CAAC,CAAC,CAAC,YAAI,KAAK,OAAG,CAAC,CAAC,CAAC,KAAK,CAAC;SACtC;QACD,IAAI,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,SAAS,EAAE;YACtE,OAAO,UAAG,KAAK,CAAE,CAAC;SACnB;QACD,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;YACxB,OAAO,WAAI,KAAK,CAAC,QAAQ,EAAE,MAAG,CAAC;SAChC;QACD,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;IAC/B,CAAC;IAEM,iCAAmB,GAA1B,UAA2B,MAAuB;QAChD,IAAM,WAAW,GAAa,EAAE,CAAC;QAGjC,IAAM,WAAW,GAAG,IAAI,CAAC,6BAA6B,CACpD,MAAM,CAAC,OAAO,EAAE,EAChB,MAAM,CAAC,gBAAgB,EAAE,EACzB,MAAM,CAAC,OAAO,EAAE,EAChB,MAAM,CAAC,gBAAgB,EAAE,CAC1B,CAAC;QACF,IAAI,WAAW,KAAK,SAAS,EAAE;YAC7B,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;SAC/B;QACD,IAAM,oBAAoB,GAAG,IAAI,CAAC,4BAA4B,CAC5D,MAAM,CAAC,UAAU,EAAE,CACpB,CAAC;QACF,IAAI,oBAAoB,KAAK,SAAS,EAAE;YACtC,WAAW,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;SACxC;QAGD,IAAM,WAAW,GAAG,IAAI,CAAC,uBAAuB,CAC9C,YAAY,EACZ,MAAM,CAAC,SAAS,EAAE,EAClB,MAAM,CAAC,SAAS,EAAE,CACnB,CAAC;QACF,IAAI,WAAW,KAAK,SAAS,EAAE;YAC7B,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;SAC/B;QAGD,IAAM,cAAc,GAAG,MAAM,CAAC,WAAW,EAAE,CAAC;QAC5C,IAAM,UAAU,GAAG,IAAI,CAAC,uBAAuB,CAC7C,cAAc,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,OAAO,EACzC,MAAM,CAAC,QAAQ,EAAE,EACjB,MAAM,CAAC,QAAQ,EAAE,CAClB,CAAC;QACF,IAAI,UAAU,KAAK,SAAS,EAAE;YAC5B,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;SAC9B;QAGD,IAAM,WAAW,GAAG,IAAI,CAAC,uBAAuB,CAC9C,YAAY,EACZ,MAAM,CAAC,aAAa,EAAE,EACtB,MAAM,CAAC,aAAa,EAAE,CACvB,CAAC;QACF,IAAI,WAAW,KAAK,SAAS,EAAE;YAC7B,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;SAC/B;QAED,OAAO,WAAW,CAAC;IACrB,CAAC;IAEM,0BAAY,GAAnB,UAAoB,MAAuB;QACzC,IAAI,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QAClC,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QAC3C,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE;YACrD,OAAO,IAAI,CAAC;SACb;QAED,IACE,MAAM,CAAC,KAAK,EAAE;YACd,MAAM,CAAC,KAAK,EAAE;YACd,MAAM,CAAC,KAAK,EAAE;YACd,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC,MAAM,GAAG,CAAC;YACjD,MAAM,CAAC,KAAK,EAAE;YACd,MAAM,CAAC,GAAG,EAAE;YACZ,MAAM,CAAC,EAAE,EAAE;YACX,MAAM,CAAC,IAAI,EAAE;YACb,MAAM,CAAC,IAAI,EAAE,EACb;YACA,OAAO,IAAI,CAAC;SACb;QAED,IAAM,gBAAgB,GAAG,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC;QAC1D,IAAI,gBAAgB,IAAI,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,MAAM,EAAE;YAC5D,OAAO,IAAI,CAAC;SACb;QAED,OAAO,KAAK,CAAC;IACf,CAAC;IAEM,qCAAuB,GAA9B,UACE,YAAuC;;QAEvC,IAAI,CAAC,YAAY,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,MAAM,EAAE;YACtD,OAAO,SAAS,CAAC;SAClB;QAED,IAAM,IAAI;gBACR,IAAI,EAAE,QAAQ;gBACd,UAAU,EAAE,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,MAAM,CAC7C,UAAC,GAAG,EAAE,EAAwB;wBAAvB,YAAY,QAAA,EAAE,QAAQ,QAAA;oBAC3B,GAAG,CAAC,YAAY,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,QAAQ,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;oBAC7D,GAAG,CAAC,YAAY,CAAC,CAAC,IAAI,GAAG,QAAQ,CAAC;oBAClC,OAAO,GAAG,CAAC;gBACb,CAAC,EACD,EAAE,CACH;gBACD,QAAQ,EAAE,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC;;YACnC,GAAC,IAAI,CAAC,uBAAuB,IAAG,KAAK;eACtC,CAAC;QACF,OAAO,IAAI,WAAW,CAAC,IAAW,CAAC,CAAC;IACtC,CAAC;IAEM,gCAAkB,GAAzB,UACE,UAAuC;;QADzC,iBA2BC;QAxBC,IAAI,CAAC,UAAU,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,MAAM,EAAE;YAClD,OAAO,SAAS,CAAC;SAClB;QAED,IAAM,IAAI;gBACR,IAAI,EAAE,QAAQ;gBACd,UAAU,EAAE,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,MAAM,CAC3C,UAAC,GAAG,EAAE,EAA0B;wBAAzB,aAAa,QAAA,EAAE,SAAS,QAAA;oBAC7B,IAAM,eAAe,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC;oBAC3C,GAAG,CAAC,aAAa,CAAC,GAAG,MAAM,CAAC,MAAM,CAChC,EAAE,EACF,eAAe,CAAC,CAAC,CAAC,eAAe,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAC9C,CAAC;oBACF,GAAG,CAAC,aAAa,CAAC,CAAC,WAAW;wBAC5B,SAAS,CAAC,WAAW,EAAE,IAAI,GAAG,CAAC,aAAa,CAAC,CAAC,WAAW,CAAC;oBAC5D,GAAG,CAAC,aAAa,CAAC,CAAC,KAAI,CAAC,oBAAoB,CAAC,GAAG,SAAS,CAAC,QAAQ,EAAE,CAAC;oBACrE,OAAO,GAAG,CAAC;gBACb,CAAC,EACD,EAAE,CACH;gBACD,QAAQ,EAAE,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC;;YACjC,GAAC,IAAI,CAAC,uBAAuB,IAAG,KAAK;eACtC,CAAC;QACF,OAAO,IAAI,WAAW,CAAC,IAAW,CAAC,CAAC;IACtC,CAAC;IAEM,0BAAY,GAAnB,UAAoB,KAAU;QAC5B,IAAM,IAAI,GAAG,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;QAC3C,OAAO,IAAI,WAAW,CAAC,IAAI,CAAC,CAAC;IAC/B,CAAC;IAQM,iCAAmB,GAA1B,UAA2B,KAAU;QACnC,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,CAAC,UAAU,KAAK,UAAU,EAAE;YACpD,OAAO;SACR;QACD,IAAM,UAAU,GAAG,KAAK,CAAC,UAAU,EAAyB,CAAC;QAC7D,IAAM,kBAAkB,GAAG,EAAE,CAAC;QAC9B,KAAkB,UAA+B,EAA/B,KAAA,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC,EAA/B,cAA+B,EAA/B,IAA+B,EAAE;YAA9C,IAAM,GAAG,SAAA;YACZ,IAAM,OAAO,GAAG,GAAyB,CAAC;YAC1C,IACE,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,WAAW,CAAC;gBACrC,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,mBAAmB,CAAC,EAC7C;gBACA,kBAAkB,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC;aACpD;SACF;QACD,OAAO,kBAAkB,CAAC;IAC5B,CAAC;IAQM,kCAAoB,GAA3B,UACE,YAAoB,EACpB,MAAuB;QAEvB,IAAM,iBAAiB,GAAa,EAAE,CAAC;QACvC,IAAM,YAAY,GAAG,MAAM,CAAC,YAAY,EAAE,CAAC;QAC3C,IAAI,CAAC,YAAY,EAAE;YACjB,OAAO;SACR;QAED,KAA4B,UAA4B,EAA5B,KAAA,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,EAA5B,cAA4B,EAA5B,IAA4B,EAAE;YAA/C,IAAA,WAAa,EAAZ,IAAI,QAAA,EAAE,KAAK,QAAA;YACrB,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE;gBACxD,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;aAC9B;SACF;QACD,OAAO,iBAAiB,CAAC,MAAM,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,SAAS,CAAC;IAClE,CAAC;IAOM,iCAAmB,GAA1B,UACE,MAAuB;;QAEvB,IAAM,YAAY,GAAG,MAAM,CAAC,YAAY,EAAE,CAAC;QAC3C,IAAI,CAAC,YAAY,EAAE;YACjB,OAAO;SACR;QAED,IAAM,OAAO,GAAoC,EAAE,CAAC;QACpD,KAAiC,UAA4B,EAA5B,KAAA,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,EAA5B,cAA4B,EAA5B,IAA4B,EAAE;YAApD,IAAA,WAAkB,EAAjB,IAAI,QAAA,EAAE,UAAU,QAAA;YAC1B,IAAI,OAAO,UAAU,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE;gBAChE,OAAO,CAAC,IAAI,CAAC,GAAG,UAAU,CAAC;aAC5B;SACF;QACD,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE;YAChC,OAAO,SAAS,CAAC;SAClB;QAED,IAAM,IAAI;gBACR,IAAI,EAAE,QAAQ;gBACd,UAAU,EAAE,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,CACxC,UAAC,GAAG,EAAE,EAA8B;wBAA7B,YAAY,QAAA,EAAE,cAAc,QAAA;oBACjC,GAAG,CAAC,YAAY,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,cAAc,CAAC,IAAI,EAAE,CAAC,CAAC;oBAC7D,OAAO,GAAG,CAAC;gBACb,CAAC,EACD,EAAE,CACH;;YACD,GAAC,IAAI,CAAC,uBAAuB,IAAG,KAAK;eACtC,CAAC;QACF,OAAO,IAAI,WAAW,CAAC,IAAW,CAAC,CAAC;IACtC,CAAC;IAEc,oBAAM,GAArB,UAAsB,IAAY,EAAE,MAAuB;QACzD,IAAI,MAAM,CAAC,UAAU,EAAE,EAAE;YACvB,OAAO,IAAI,CAAC;SACb;QACD,IAAI,IAAI,KAAK,OAAO,EAAE;YACpB,IAAM,KAAK,GAAG,MAAM,CAAC,KAAK,EAAE,CAAC;YAC7B,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;gBACxB,OAAO,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;aACxC;YACD,IAAI,CAAC,KAAK,EAAE;gBACV,OAAO,gBAAS,iBAAiB,CAAC,GAAG,MAAG,CAAC;aAC1C;YACD,OAAO,gBAAS,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,IAAI,iBAAiB,CAAC,OAAO,MAAG,CAAC;SAC1E;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAEc,yBAAW,GAA1B,UACE,KAAwB,EACxB,MAAuB;QAFzB,iBAeC;QAXC,IAAM,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,UAAA,IAAI,IAAI,OAAA,KAAI,CAAC,YAAY,CAAC,IAAI,CAAC,EAAvB,CAAuB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACpE,IAAM,eAAe,GAAG,MAAM,CAAC,eAAe,EAAE,CAAC;QACjD,IAAI,eAAe,KAAK,SAAS,IAAI,eAAe,KAAK,KAAK,EAAE;YAC9D,IAAM,cAAc,GAClB,eAAe,KAAK,IAAI;gBACtB,CAAC,CAAC,iBAAiB,CAAC,GAAG;gBACvB,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,eAAe,CAAC,CAAC;YACzC,OAAO,gBAAS,KAAK;gBACnB,iBAAiB,CAAC,OAAO,2BAAiB,cAAc,OAAI,CAAC;SAChE;QACD,OAAO,gBAAS,KAAK,IAAI,iBAAiB,CAAC,OAAO,MAAG,CAAC;IACxD,CAAC;IAEc,4BAAc,GAA7B,UAA8B,MAAuB;QACnD,IAAM,KAAK,GAAG,MAAM,CAAC,KAAK,EAAE,CAAC;QAC7B,IAAI,KAAK,EAAE;YACT,OAAO,OAAO,CAAC;SAChB;QACD,IAAI,MAAM,CAAC,KAAK,EAAE,EAAE;YAClB,OAAO,OAAO,CAAC;SAChB;QACD,IAAI,MAAM,CAAC,KAAK,EAAE,EAAE;YAClB,OAAO,OAAO,CAAC;SAChB;QACD,OAAO;IACT,CAAC;IAEc,uBAAS,GAAxB,UAAyB,MAAuB;QAC9C,IAAI,KAAK,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC;QAE1B,IAAI,KAAK,KAAK,SAAS,EAAE;YACvB,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;gBAExB,IAAI,KAAK,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE;oBACzD,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,UAAA,CAAC,IAAI,OAAA,CAAC,KAAK,SAAS,EAAf,CAAe,CAAC,CAAC;iBAC5C;gBACD,OAAO,KAAK,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;aAC9C;YACD,OAAO,KAAK,CAAC;SACd;QAED,IAAM,UAAU,GAAG,MAAM,CAAC,KAAK,EAAE,CAAC;QAClC,IAAI,UAAU,KAAK,SAAS,EAAE;YAC5B,OAAO,OAAO,UAAU,CAAC;SAC1B;QACD,IAAM,SAAS,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC;QAChC,IAAI,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,SAAS,CAAC,MAAM,EAAE;YAChD,IAAM,YAAY,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,UAAA,CAAC,IAAI,OAAA,OAAO,CAAC,EAAR,CAAQ,CAAC,CAAC,CAAC,CAAC;YACvE,OAAO,YAAY,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC;SACnE;QAED,IAAM,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC;QAC1D,IAAM,gBAAgB,GAAG,kBAAkB,CAAC,IAAI,CAAC,UAAA,GAAG;YAClD,OAAA,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC;QAAxB,CAAwB,CACzB,CAAC;QACF,IAAI,gBAAgB,KAAK,IAAI,EAAE;YAC7B,OAAO,iBAAiB,CAAC,cAAc,CAAC;SACzC;QACD,IAAI,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,EAAE;YAC/B,OAAO,EAAE,CAAC;SACX;QACD,OAAO,iBAAiB,CAAC,GAAG,CAAC;IAC/B,CAAC;IAEc,2CAA6B,GAA5C,UACE,GAAuB,EACvB,YAAgC,EAChC,GAAuB,EACvB,YAAgC;QAEhC,IAAM,eAAe,GAAG,YAAY,KAAK,SAAS,CAAC;QACnD,IAAM,MAAM,GAAG,GAAG,KAAK,SAAS,IAAI,eAAe,CAAC;QACpD,IAAM,eAAe,GAAG,YAAY,KAAK,SAAS,CAAC;QACnD,IAAM,MAAM,GAAG,GAAG,KAAK,SAAS,IAAI,eAAe,CAAC;QAEpD,IAAI,WAAW,CAAC;QAChB,IAAI,MAAM,IAAI,MAAM,EAAE;YACpB,WAAW,GAAG,eAAe,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;YAC5C,WAAW,IAAI,eAAe,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,GAAG,CAAC;YACpD,WAAW,IAAI,MAAM,CAAC;YACtB,WAAW,IAAI,eAAe,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,GAAG,CAAC;YACpD,WAAW,IAAI,eAAe,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;SAC9C;aAAM,IAAI,MAAM,EAAE;YACjB,WAAW,GAAG,eAAe,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC;YAC7C,WAAW,IAAI,eAAe,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,GAAG,CAAC;SACrD;aAAM,IAAI,MAAM,EAAE;YACjB,WAAW,GAAG,eAAe,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC;YAC7C,WAAW,IAAI,eAAe,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,GAAG,CAAC;SACrD;QACD,OAAO,WAAW,CAAC;IACrB,CAAC;IAEc,0CAA4B,GAA3C,UACE,UAA8B;QAE9B,IAAI,UAAU,KAAK,SAAS,EAAE;YAC5B,OAAO;SACR;QACD,IAAM,oBAAoB,GAAG,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;QACrD,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,oBAAoB,CAAC,EAAE;YAC1C,OAAO,sBAAe,oBAAoB,CAAE,CAAC;SAC9C;QACD,OAAO,4BAAqB,oBAAoB,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAE,CAAC;IAC1E,CAAC;IAEc,qCAAuB,GAAtC,UACE,WAAmB,EACnB,GAAuB,EACvB,GAAuB;QAEvB,IAAI,WAAW,CAAC;QAChB,IAAI,GAAG,KAAK,SAAS,IAAI,GAAG,KAAK,SAAS,EAAE;YAC1C,IAAI,GAAG,KAAK,GAAG,EAAE;gBACf,WAAW,GAAG,UAAG,GAAG,cAAI,WAAW,CAAE,CAAC;aACvC;iBAAM;gBACL,WAAW,GAAG,YAAK,GAAG,iBAAO,GAAG,gBAAM,WAAW,CAAE,CAAC;aACrD;SACF;aAAM,IAAI,GAAG,KAAK,SAAS,EAAE;YAC5B,WAAW,GAAG,aAAM,GAAG,cAAI,WAAW,CAAE,CAAC;SAC1C;aAAM,IAAI,GAAG,KAAK,SAAS,EAAE;YAC5B,IAAI,GAAG,KAAK,CAAC,EAAE;gBACb,WAAW,GAAG,WAAW,CAAC;aAC3B;iBAAM;gBACL,WAAW,GAAG,aAAM,GAAG,cAAI,WAAW,CAAE,CAAC;aAC1C;SACF;QACD,OAAO,WAAW,CAAC;IACrB,CAAC;IAEc,+BAAiB,GAAhC,UAAiC,KAAU;;QAA3C,iBAmCC;QAlCC,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI,EAAE;YACzC;oBACE,IAAI,EAAE,QAAQ;oBACd,KAAK,EAAE,EAAE;;gBACT,GAAC,IAAI,CAAC,WAAW,IAAG,IAAI;mBACxB;SACH;QACD,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;YAC7B,IAAM,GAAG,GACP,OAAO,KAAK,CAAC,QAAQ,KAAK,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC;YAClE;oBACE,IAAI,EAAE,QAAQ;oBACd,KAAK,EAAE,GAAG;;gBACV,GAAC,IAAI,CAAC,WAAW,IAAG,IAAI;mBACxB;SACH;QACD,IAAI,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,EAAE;YAC5B,OAAO,KAAK,CAAC;SACd;QACD,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;YACxB;oBACE,IAAI,EAAE,OAAO;oBACb,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,UAAA,CAAC,IAAI,OAAA,KAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,EAAzB,CAAyB,CAAC;;gBAChD,GAAC,IAAI,CAAC,uBAAuB,IAAG,KAAK;mBACrC;SACH;QACD;gBACE,IAAI,EAAE,QAAQ;gBACd,UAAU,EAAE,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,UAAC,GAAG,EAAE,EAAM;wBAAL,CAAC,QAAA,EAAE,CAAC,QAAA;oBAClD,GAAG,CAAC,CAAC,CAAC,GAAG,KAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC;oBACnC,OAAO,GAAG,CAAC;gBACb,CAAC,EAAE,EAAE,CAAC;;YACN,GAAC,IAAI,CAAC,uBAAuB,IAAG,KAAK;eACrC;IACJ,CAAC;IAEc,0BAAY,GAA3B,UAA4B,KAAU;QACpC,IACE,KAAK;YACL,OAAO,KAAK,KAAK,QAAQ;YACzB,CAAC,eAAe,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC;gBACnC,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC;oBACxB,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,UAAC,CAAS,IAAK,OAAA,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC,CAAC,EAA5B,CAA4B,CAAC,CAAC,CAAC,EAClE;YACA,OAAO,IAAI,CAAC;SACb;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IA9dM,qCAAuB,GAAG,yCAAyC,CAAC;IACpE,yBAAW,GAAG,4BAA4B,CAAC;IAC3C,kCAAoB,GAAG,qCAAqC,CAAC;IA6dtE,oBAAC;CAAA,AAheD,IAgeC;SAheY,aAAa","sourcesContent":["import {\n SchemaInterface,\n ChannelParametersInterface,\n ServerVariablesInterface,\n SchemaV2 as SchemaClass,\n ExtensionInterface,\n ExtensionsInterface,\n} from '@asyncapi/parser';\n\nexport enum SchemaCustomTypes {\n // for `true` and `{}` schemas\n ANY = 'any',\n // for schemas without `type` keyword\n RESTRICTED_ANY = 'restricted any',\n // for `false` and `{ not: {}, ... }` schemas\n NEVER = 'never',\n // for types that we cannot infer\n UNKNOWN = 'unknown',\n}\n\nconst jsonSchemaTypes = [\n 'string',\n 'number',\n 'integer',\n 'boolean',\n 'array',\n 'object',\n 'null',\n];\nconst jsonSchemaKeywordTypes: Record<string, string> = {\n // string\n maxLength: 'string',\n minLength: 'string',\n pattern: 'string',\n contentMediaType: 'string',\n contentEncoding: 'string',\n // number\n multipleOf: 'number',\n maximum: 'number',\n exclusiveMaximum: 'number',\n minimum: 'number',\n exclusiveMinimum: 'number',\n // array\n items: 'array',\n maxItems: 'array',\n minItems: 'array',\n uniqueItems: 'array',\n contains: 'array',\n additionalItems: 'array',\n // object\n maxProperties: 'object',\n minProperties: 'object',\n required: 'object',\n properties: 'object',\n patternProperties: 'object',\n propertyNames: 'object',\n dependencies: 'object',\n additionalProperties: 'object',\n};\nconst jsonSchemaKeywords = Object.keys(jsonSchemaKeywordTypes);\n\nexport class SchemaHelpers {\n static extRenderAdditionalInfo = 'x-schema-private-render-additional-info';\n static extRawValue = 'x-schema-private-raw-value';\n static extParameterLocation = 'x-schema-private-parameter-location';\n\n static toSchemaType(schema: SchemaInterface): string {\n if (!schema || typeof schema.json !== 'function') {\n return SchemaCustomTypes.UNKNOWN;\n }\n if (schema.isBooleanSchema()) {\n if (schema.json() === true) {\n return SchemaCustomTypes.ANY;\n } else {\n return SchemaCustomTypes.NEVER;\n }\n }\n // handle case with `{}` schemas\n if (Object.keys(schema.json()).length === 0) {\n return SchemaCustomTypes.ANY;\n }\n // handle case with `{ not: {}, ... }` schemas\n const not = schema.not();\n if (not && this.inferType(not) === SchemaCustomTypes.ANY) {\n return SchemaCustomTypes.NEVER;\n }\n\n let type = this.inferType(schema);\n if (Array.isArray(type)) {\n return type.map(t => this.toType(t, schema)).join(' | ');\n }\n type = this.toType(type, schema);\n const combinedType = this.toCombinedType(schema);\n\n if (type && combinedType) {\n return `${type} ${combinedType}`;\n }\n if (combinedType) {\n return combinedType;\n }\n return type;\n }\n\n static prettifyValue(value: any, strict = true): string {\n const typeOf = typeof value;\n if (typeOf === 'string') {\n return strict ? `\"${value}\"` : value;\n }\n if (typeOf === 'number' || typeOf === 'bigint' || typeOf === 'boolean') {\n return `${value}`;\n }\n if (Array.isArray(value)) {\n return `[${value.toString()}]`;\n }\n return JSON.stringify(value);\n }\n\n static humanizeConstraints(schema: SchemaInterface): string[] {\n const constraints: string[] = [];\n\n // related to number/integer\n const numberRange = this.humanizeNumberRangeConstraint(\n schema.minimum(),\n schema.exclusiveMinimum(),\n schema.maximum(),\n schema.exclusiveMaximum(),\n );\n if (numberRange !== undefined) {\n constraints.push(numberRange);\n }\n const multipleOfConstraint = this.humanizeMultipleOfConstraint(\n schema.multipleOf(),\n );\n if (multipleOfConstraint !== undefined) {\n constraints.push(multipleOfConstraint);\n }\n\n // related to string\n const stringRange = this.humanizeRangeConstraint(\n 'characters',\n schema.minLength(),\n schema.maxLength(),\n );\n if (stringRange !== undefined) {\n constraints.push(stringRange);\n }\n\n // related to array\n const hasUniqueItems = schema.uniqueItems();\n const arrayRange = this.humanizeRangeConstraint(\n hasUniqueItems ? 'unique items' : 'items',\n schema.minItems(),\n schema.maxItems(),\n );\n if (arrayRange !== undefined) {\n constraints.push(arrayRange);\n }\n\n // related to object\n const objectRange = this.humanizeRangeConstraint(\n 'properties',\n schema.minProperties(),\n schema.maxProperties(),\n );\n if (objectRange !== undefined) {\n constraints.push(objectRange);\n }\n\n return constraints;\n }\n\n static isExpandable(schema: SchemaInterface): boolean {\n let type = this.inferType(schema);\n type = Array.isArray(type) ? type : [type];\n if (type.includes('object') || type.includes('array')) {\n return true;\n }\n\n if (\n schema.oneOf() ||\n schema.anyOf() ||\n schema.allOf() ||\n Object.keys(schema.properties() || {}).length > 0 ||\n schema.items() ||\n schema.not() ||\n schema.if() ||\n schema.then() ||\n schema.else()\n ) {\n return true;\n }\n\n const customExtensions = this.getCustomExtensions(schema);\n if (customExtensions && Object.keys(customExtensions).length) {\n return true;\n }\n\n return false;\n }\n\n static serverVariablesToSchema(\n urlVariables?: ServerVariablesInterface,\n ): SchemaInterface | undefined {\n if (!urlVariables || !Object.keys(urlVariables).length) {\n return undefined;\n }\n\n const json = {\n type: 'object',\n properties: Object.entries(urlVariables).reduce(\n (obj, [variableName, variable]) => {\n obj[variableName] = Object.assign({}, variable.json() || {});\n obj[variableName].type = 'string';\n return obj;\n },\n {},\n ),\n required: Object.keys(urlVariables),\n [this.extRenderAdditionalInfo]: false,\n };\n return new SchemaClass(json as any);\n }\n\n static parametersToSchema(\n parameters?: ChannelParametersInterface,\n ): SchemaInterface | undefined {\n if (!parameters || !Object.keys(parameters).length) {\n return undefined;\n }\n\n const json = {\n type: 'object',\n properties: Object.entries(parameters).reduce(\n (obj, [paramaterName, parameter]) => {\n const parameterSchema = parameter.schema();\n obj[paramaterName] = Object.assign(\n {},\n parameterSchema ? parameterSchema.json() : {},\n );\n obj[paramaterName].description =\n parameter.description() || obj[paramaterName].description;\n obj[paramaterName][this.extParameterLocation] = parameter.location();\n return obj;\n },\n {},\n ),\n required: Object.keys(parameters),\n [this.extRenderAdditionalInfo]: false,\n };\n return new SchemaClass(json as any);\n }\n\n static jsonToSchema(value: any): any {\n const json = this.jsonFieldToSchema(value);\n return new SchemaClass(json);\n }\n\n /**\n * Retrieves from given value all custom extensions (value with key started by `x-`).\n * However, it skips those private extensions that begin with `x-parser-` and `x-schema-private-`.\n *\n * @param value\n */\n static getCustomExtensions(value: any) {\n if (!value || typeof value.extensions !== 'function') {\n return;\n }\n const extensions = value.extensions() as ExtensionsInterface;\n const filteredExtensions = {};\n for (const ext of Object.values(extensions.all())) {\n const extType = ext as ExtensionInterface;\n if (\n !extType.id().startsWith('x-parser-') &&\n !extType.id().startsWith('x-schema-private-')\n ) {\n filteredExtensions[extType.id()] = extType.value();\n }\n }\n return filteredExtensions;\n }\n\n /**\n * Retrieves from given schema all dependent required requires by given propertyName from `dependencies` object.\n *\n * @param propertyName\n * @param schema\n */\n static getDependentRequired(\n propertyName: string,\n schema: SchemaInterface,\n ): string[] | undefined {\n const dependentRequired: string[] = [];\n const dependencies = schema.dependencies();\n if (!dependencies) {\n return;\n }\n\n for (const [prop, array] of Object.entries(dependencies)) {\n if (Array.isArray(array) && array.includes(propertyName)) {\n dependentRequired.push(prop);\n }\n }\n return dependentRequired.length ? dependentRequired : undefined;\n }\n\n /**\n * Retrieves from given schema all dependent schemas from `dependencies` object.\n *\n * @param schema\n */\n static getDependentSchemas(\n schema: SchemaInterface,\n ): SchemaInterface | undefined {\n const dependencies = schema.dependencies();\n if (!dependencies) {\n return;\n }\n\n const records: Record<string, SchemaInterface> = {};\n for (const [prop, propSchema] of Object.entries(dependencies)) {\n if (typeof propSchema === 'object' && !Array.isArray(propSchema)) {\n records[prop] = propSchema;\n }\n }\n if (!Object.keys(records).length) {\n return undefined;\n }\n\n const json = {\n type: 'object',\n properties: Object.entries(records).reduce(\n (obj, [propertyName, propertySchema]) => {\n obj[propertyName] = Object.assign({}, propertySchema.json());\n return obj;\n },\n {},\n ),\n [this.extRenderAdditionalInfo]: false,\n };\n return new SchemaClass(json as any);\n }\n\n private static toType(type: string, schema: SchemaInterface): string {\n if (schema.isCircular()) {\n return type;\n }\n if (type === 'array') {\n const items = schema.items();\n if (Array.isArray(items)) {\n return this.toItemsType(items, schema);\n }\n if (!items) {\n return `array<${SchemaCustomTypes.ANY}>`;\n }\n return `array<${this.toSchemaType(items) || SchemaCustomTypes.UNKNOWN}>`;\n }\n return type;\n }\n\n private static toItemsType(\n items: SchemaInterface[],\n schema: SchemaInterface,\n ): string {\n const types = items.map(item => this.toSchemaType(item)).join(', ');\n const additionalItems = schema.additionalItems();\n if (additionalItems !== undefined && additionalItems !== false) {\n const additionalType =\n additionalItems === true\n ? SchemaCustomTypes.ANY\n : this.toSchemaType(additionalItems);\n return `tuple<${types ||\n SchemaCustomTypes.UNKNOWN}, ...optional<${additionalType}>>`;\n }\n return `tuple<${types || SchemaCustomTypes.UNKNOWN}>`;\n }\n\n private static toCombinedType(schema: SchemaInterface): string | undefined {\n const oneOf = schema.oneOf();\n if (oneOf) {\n return 'oneOf';\n }\n if (schema.anyOf()) {\n return 'anyOf';\n }\n if (schema.allOf()) {\n return 'allOf';\n }\n return;\n }\n\n private static inferType(schema: SchemaInterface): string[] | string {\n let types = schema.type();\n\n if (types !== undefined) {\n if (Array.isArray(types)) {\n // if types have `integer` and `number` types, `integer` is unnecessary\n if (types.includes('integer') && types.includes('number')) {\n types = types.filter(t => t !== 'integer');\n }\n return types.length === 1 ? types[0] : types;\n }\n return types;\n }\n\n const constValue = schema.const();\n if (constValue !== undefined) {\n return typeof constValue;\n }\n const enumValue = schema.enum();\n if (Array.isArray(enumValue) && enumValue.length) {\n const inferredType = Array.from(new Set(enumValue.map(e => typeof e)));\n return inferredType.length === 1 ? inferredType[0] : inferredType;\n }\n\n const schemaKeys = Object.keys(schema.json() || {}) || [];\n const hasInferredTypes = jsonSchemaKeywords.some(key =>\n schemaKeys.includes(key),\n );\n if (hasInferredTypes === true) {\n return SchemaCustomTypes.RESTRICTED_ANY;\n }\n if (this.toCombinedType(schema)) {\n return '';\n }\n return SchemaCustomTypes.ANY;\n }\n\n private static humanizeNumberRangeConstraint(\n min: number | undefined,\n exclusiveMin: number | undefined,\n max: number | undefined,\n exclusiveMax: number | undefined,\n ): string | undefined {\n const hasExclusiveMin = exclusiveMin !== undefined;\n const hasMin = min !== undefined || hasExclusiveMin;\n const hasExclusiveMax = exclusiveMax !== undefined;\n const hasMax = max !== undefined || hasExclusiveMax;\n\n let numberRange;\n if (hasMin && hasMax) {\n numberRange = hasExclusiveMin ? '( ' : '[ ';\n numberRange += hasExclusiveMin ? exclusiveMin : min;\n numberRange += ' .. ';\n numberRange += hasExclusiveMax ? exclusiveMax : max;\n numberRange += hasExclusiveMax ? ' )' : ' ]';\n } else if (hasMin) {\n numberRange = hasExclusiveMin ? '> ' : '>= ';\n numberRange += hasExclusiveMin ? exclusiveMin : min;\n } else if (hasMax) {\n numberRange = hasExclusiveMax ? '< ' : '<= ';\n numberRange += hasExclusiveMax ? exclusiveMax : max;\n }\n return numberRange;\n }\n\n private static humanizeMultipleOfConstraint(\n multipleOf: number | undefined,\n ): string | undefined {\n if (multipleOf === undefined) {\n return;\n }\n const strigifiedMultipleOf = multipleOf.toString(10);\n if (!/^0\\.0*1$/.test(strigifiedMultipleOf)) {\n return `multiple of ${strigifiedMultipleOf}`;\n }\n return `decimal places <= ${strigifiedMultipleOf.split('.')[1].length}`;\n }\n\n private static humanizeRangeConstraint(\n description: string,\n min: number | undefined,\n max: number | undefined,\n ): string | undefined {\n let stringRange;\n if (min !== undefined && max !== undefined) {\n if (min === max) {\n stringRange = `${min} ${description}`;\n } else {\n stringRange = `[ ${min} .. ${max} ] ${description}`;\n }\n } else if (max !== undefined) {\n stringRange = `<= ${max} ${description}`;\n } else if (min !== undefined) {\n if (min === 1) {\n stringRange = 'non-empty';\n } else {\n stringRange = `>= ${min} ${description}`;\n }\n }\n return stringRange;\n }\n\n private static jsonFieldToSchema(value: any): any {\n if (value === undefined || value === null) {\n return {\n type: 'string',\n const: '',\n [this.extRawValue]: true,\n };\n }\n if (typeof value !== 'object') {\n const str =\n typeof value.toString === 'function' ? value.toString() : value;\n return {\n type: 'string',\n const: str,\n [this.extRawValue]: true,\n };\n }\n if (this.isJSONSchema(value)) {\n return value;\n }\n if (Array.isArray(value)) {\n return {\n type: 'array',\n items: value.map(v => this.jsonFieldToSchema(v)),\n [this.extRenderAdditionalInfo]: false,\n };\n }\n return {\n type: 'object',\n properties: Object.entries(value).reduce((obj, [k, v]) => {\n obj[k] = this.jsonFieldToSchema(v);\n return obj;\n }, {}),\n [this.extRenderAdditionalInfo]: false,\n };\n }\n\n private static isJSONSchema(value: any): boolean {\n if (\n value &&\n typeof value === 'object' &&\n (jsonSchemaTypes.includes(value.type) ||\n (Array.isArray(value.type) &&\n value.type.some((t: string) => !jsonSchemaTypes.includes(t))))\n ) {\n return true;\n }\n return false;\n }\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.js","sourceRoot":"","sources":["../../../src/helpers/server.ts"],"names":[],"mappings":"AAEA;IAAA;IA2FA,CAAC;IA1FQ,0BAAY,GAAnB,UAAoB,KAAa;QAC/B,QAAQ,KAAK,EAAE;YACb,KAAK,QAAQ;gBACX,OAAO,SAAS,CAAC;YACnB,KAAK,QAAQ;gBACX,OAAO,QAAQ,CAAC;YAClB,KAAK,eAAe;gBAClB,OAAO,SAAS,CAAC;YACnB,KAAK,MAAM;gBACT,OAAO,MAAM,CAAC;YAChB,KAAK,cAAc;gBACjB,OAAO,eAAe,CAAC;YACzB,KAAK,MAAM;gBACT,OAAO,OAAO,CAAC;YACjB,KAAK,qBAAqB;gBACxB,OAAO,sBAAsB,CAAC;YAChC,KAAK,sBAAsB;gBACzB,OAAO,uBAAuB,CAAC;YACjC,KAAK,YAAY;gBACf,OAAO,cAAc,CAAC;YACxB,KAAK,aAAa;gBAChB,OAAO,aAAa,CAAC;YACvB,KAAK,aAAa;gBAChB,OAAO,aAAa,CAAC;YACvB,KAAK,QAAQ;gBACX,OAAO,QAAQ,CAAC;YAClB;gBACE,OAAO,SAAS,CAAC;SACpB;IACH,CAAC;IAEM,sBAAQ,GAAf,UAAgB,KAAa;QAC3B,QAAQ,KAAK,EAAE;YACb,KAAK,UAAU;gBACb,OAAO,UAAU,CAAC;YACpB,KAAK,UAAU;gBACb,OAAO,UAAU,CAAC;YACpB,KAAK,mBAAmB;gBACtB,OAAO,oBAAoB,CAAC;YAC9B,KAAK,mBAAmB;gBACtB,OAAO,oBAAoB,CAAC;YAC9B;gBACE,OAAO,UAAU,CAAC;SACrB;IACH,CAAC;IAEM,8BAAgB,GAAvB,UACE,QAAgB,EAChB,
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../../../src/helpers/server.ts"],"names":[],"mappings":"AAEA;IAAA;IA2FA,CAAC;IA1FQ,0BAAY,GAAnB,UAAoB,KAAa;QAC/B,QAAQ,KAAK,EAAE;YACb,KAAK,QAAQ;gBACX,OAAO,SAAS,CAAC;YACnB,KAAK,QAAQ;gBACX,OAAO,QAAQ,CAAC;YAClB,KAAK,eAAe;gBAClB,OAAO,SAAS,CAAC;YACnB,KAAK,MAAM;gBACT,OAAO,MAAM,CAAC;YAChB,KAAK,cAAc;gBACjB,OAAO,eAAe,CAAC;YACzB,KAAK,MAAM;gBACT,OAAO,OAAO,CAAC;YACjB,KAAK,qBAAqB;gBACxB,OAAO,sBAAsB,CAAC;YAChC,KAAK,sBAAsB;gBACzB,OAAO,uBAAuB,CAAC;YACjC,KAAK,YAAY;gBACf,OAAO,cAAc,CAAC;YACxB,KAAK,aAAa;gBAChB,OAAO,aAAa,CAAC;YACvB,KAAK,aAAa;gBAChB,OAAO,aAAa,CAAC;YACvB,KAAK,QAAQ;gBACX,OAAO,QAAQ,CAAC;YAClB;gBACE,OAAO,SAAS,CAAC;SACpB;IACH,CAAC;IAEM,sBAAQ,GAAf,UAAgB,KAAa;QAC3B,QAAQ,KAAK,EAAE;YACb,KAAK,UAAU;gBACb,OAAO,UAAU,CAAC;YACpB,KAAK,UAAU;gBACb,OAAO,UAAU,CAAC;YACpB,KAAK,mBAAmB;gBACtB,OAAO,oBAAoB,CAAC;YAC9B,KAAK,mBAAmB;gBACtB,OAAO,oBAAoB,CAAC;YAC9B;gBACE,OAAO,UAAU,CAAC;SACrB;IACH,CAAC;IAEM,8BAAgB,GAAvB,UACE,QAAgB,EAChB,cAA8C;QAE9C,IAAI,gBAAgB,CAAC;QACrB,IAAI,aAAa,CAAC;QAClB,IAAI,QAAQ,KAAK,OAAO,EAAE;YACxB,IAAI,cAAc,EAAE;gBAClB,gBAAgB,GAAG,gBAAgB,CAAC;aACrC;iBAAM;gBACL,gBAAgB,GAAG,WAAW,CAAC;aAChC;SACF;aAAM;YACL,IAAI,cAAc,EAAE;gBAClB,gBAAgB,GAAG,UAAU,CAAC;aAC/B;iBAAM;gBACL,gBAAgB,GAAG,KAAK,CAAC;aAC1B;SACF;QACD,IAAI,cAAc,EAAE;YAClB,QAAQ,cAAc,CAAC,IAAI,EAAE,EAAE;gBAC7B,KAAK,OAAO;oBACV,aAAa,GAAG,OAAO,CAAC;oBACxB,MAAM;gBACR,KAAK,aAAa;oBAChB,aAAa,GAAG,eAAe,CAAC;oBAChC,MAAM;gBACR,KAAK,aAAa;oBAChB,aAAa,GAAG,eAAe,CAAC;oBAChC,MAAM;gBACR,KAAK,QAAQ;oBACX,aAAa,GAAG,aAAa,CAAC;oBAC9B,MAAM;gBACR,KAAK,QAAQ;oBACX,aAAa,GAAG,QAAQ,CAAC;oBACzB,MAAM;gBACR,KAAK,MAAM;oBACT,gBAAgB,GAAG,KAAK,CAAC;oBACzB,MAAM;aACT;SACF;QAED,OAAO,EAAE,gBAAgB,kBAAA,EAAE,aAAa,eAAA,EAAE,CAAC;IAC7C,CAAC;IACH,oBAAC;AAAD,CAAC,AA3FD,IA2FC","sourcesContent":["import { SecuritySchemeInterface } from '@asyncapi/parser';\n\nexport class ServerHelpers {\n static securityType(value: string) {\n switch (value) {\n case 'apiKey':\n return 'API key';\n case 'oauth2':\n return 'OAuth2';\n case 'openIdConnect':\n return 'Open ID';\n case 'http':\n return 'HTTP';\n case 'userPassword':\n return 'User/Password';\n case 'X509':\n return 'X509:';\n case 'symmetricEncryption':\n return 'Symmetric Encription';\n case 'asymmetricEncryption':\n return 'Asymmetric Encription';\n case 'httpApiKey':\n return 'HTTP API key';\n case 'scramSha256':\n return 'ScramSha256';\n case 'scramSha512':\n return 'ScramSha512';\n case 'gssapi':\n return 'GSSAPI';\n default:\n return 'API key';\n }\n }\n\n static flowName(value: string) {\n switch (value) {\n case 'implicit':\n return 'Implicit';\n case 'password':\n return 'Password';\n case 'clientCredentials':\n return 'Client credentials';\n case 'authorizationCode':\n return 'Authorization Code';\n default:\n return 'Implicit';\n }\n }\n\n static getKafkaSecurity(\n protocol: string,\n securitySchema: SecuritySchemeInterface | null,\n ) {\n let securityProtocol;\n let saslMechanism;\n if (protocol === 'kafka') {\n if (securitySchema) {\n securityProtocol = 'SASL_PLAINTEXT';\n } else {\n securityProtocol = 'PLAINTEXT';\n }\n } else {\n if (securitySchema) {\n securityProtocol = 'SASL_SSL';\n } else {\n securityProtocol = 'SSL';\n }\n }\n if (securitySchema) {\n switch (securitySchema.type()) {\n case 'plain':\n saslMechanism = 'PLAIN';\n break;\n case 'scramSha256':\n saslMechanism = 'SCRAM-SHA-256';\n break;\n case 'scramSha512':\n saslMechanism = 'SCRAM-SHA-512';\n break;\n case 'oauth2':\n saslMechanism = 'OAUTHBEARER';\n break;\n case 'gssapi':\n saslMechanism = 'GSSAPI';\n break;\n case 'X509':\n securityProtocol = 'SSL';\n break;\n }\n }\n\n return { securityProtocol, saslMechanism };\n }\n}\n"]}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import
|
|
1
|
+
import { isAsyncAPIDocument, isOldAsyncAPIDocument, toAsyncAPIDocument, unstringify, } from '@asyncapi/parser';
|
|
2
|
+
import { isStringifiedDocument } from '@asyncapi/parser/cjs/document';
|
|
2
3
|
var SpecificationHelpers = (function () {
|
|
3
4
|
function SpecificationHelpers() {
|
|
4
5
|
}
|
|
@@ -6,13 +7,12 @@ var SpecificationHelpers = (function () {
|
|
|
6
7
|
if (!schema) {
|
|
7
8
|
return undefined;
|
|
8
9
|
}
|
|
9
|
-
if (schema
|
|
10
|
+
if (isAsyncAPIDocument(schema)) {
|
|
10
11
|
return schema;
|
|
11
12
|
}
|
|
12
|
-
if (
|
|
13
|
-
schema.
|
|
14
|
-
|
|
15
|
-
return schema;
|
|
13
|
+
if (isOldAsyncAPIDocument(schema)) {
|
|
14
|
+
var parsedJSON = schema.json();
|
|
15
|
+
return toAsyncAPIDocument(parsedJSON);
|
|
16
16
|
}
|
|
17
17
|
if (typeof schema === 'string') {
|
|
18
18
|
try {
|
|
@@ -22,13 +22,10 @@ var SpecificationHelpers = (function () {
|
|
|
22
22
|
return undefined;
|
|
23
23
|
}
|
|
24
24
|
}
|
|
25
|
-
if (
|
|
26
|
-
|
|
27
|
-
return AsyncAPIDocumentModel.parse(schema);
|
|
28
|
-
}
|
|
29
|
-
return new AsyncAPIDocumentModel(schema);
|
|
25
|
+
if (isStringifiedDocument(schema)) {
|
|
26
|
+
return unstringify(schema);
|
|
30
27
|
}
|
|
31
|
-
return
|
|
28
|
+
return toAsyncAPIDocument(schema);
|
|
32
29
|
};
|
|
33
30
|
SpecificationHelpers.containTags = function (schema, tags) {
|
|
34
31
|
var tagsToCheck = typeof schema.tags === 'function' ? schema.tags() : undefined;
|
|
@@ -42,15 +39,13 @@ var SpecificationHelpers = (function () {
|
|
|
42
39
|
};
|
|
43
40
|
SpecificationHelpers.operationsTags = function (spec) {
|
|
44
41
|
var tags = new Map();
|
|
45
|
-
Object.entries(spec.
|
|
46
|
-
var _ = _a[0],
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
if (subscribe && subscribe.hasTags()) {
|
|
53
|
-
subscribe.tags().forEach(function (tag) { return tags.set(tag.name(), tag); });
|
|
42
|
+
Object.entries(spec.operations().all()).forEach(function (_a) {
|
|
43
|
+
var _ = _a[0], operation = _a[1];
|
|
44
|
+
if ((operation === null || operation === void 0 ? void 0 : operation.tags().length) > 0) {
|
|
45
|
+
operation
|
|
46
|
+
.tags()
|
|
47
|
+
.all()
|
|
48
|
+
.forEach(function (tag) { return tags.set(tag.name(), tag); });
|
|
54
49
|
}
|
|
55
50
|
});
|
|
56
51
|
return Array.from(tags.values());
|
|
@@ -59,8 +54,11 @@ var SpecificationHelpers = (function () {
|
|
|
59
54
|
var tags = {};
|
|
60
55
|
Object.entries(spec.servers()).forEach(function (_a) {
|
|
61
56
|
var _ = _a[0], server = _a[1];
|
|
62
|
-
if (server.
|
|
63
|
-
server
|
|
57
|
+
if (server.tags().length > 0) {
|
|
58
|
+
server
|
|
59
|
+
.tags()
|
|
60
|
+
.all()
|
|
61
|
+
.forEach(function (tag) {
|
|
64
62
|
if (tags[tag.name()]) {
|
|
65
63
|
tags[tag.name()] = [tags[tag.name()], _];
|
|
66
64
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"specification.js","sourceRoot":"","sources":["../../../src/helpers/specification.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"specification.js","sourceRoot":"","sources":["../../../src/helpers/specification.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n AsyncAPIDocumentInterface,\n TagInterface,\n isAsyncAPIDocument,\n isOldAsyncAPIDocument,\n toAsyncAPIDocument,\n unstringify,\n} from '@asyncapi/parser';\nimport { isStringifiedDocument } from '@asyncapi/parser/cjs/document';\n\nexport class SpecificationHelpers {\n /**\n * Returns parsed AsyncAPI specification.\n */\n static retrieveParsedSpec(\n schema: any,\n ): AsyncAPIDocumentInterface | undefined {\n if (!schema) {\n return undefined;\n }\n\n if (isAsyncAPIDocument(schema)) {\n return schema;\n }\n\n if (isOldAsyncAPIDocument(schema)) {\n // Is from old parser\n const parsedJSON = schema.json();\n return toAsyncAPIDocument(parsedJSON);\n }\n\n // check if input is a string and try parse it\n if (typeof schema === 'string') {\n try {\n schema = JSON.parse(schema);\n } catch (e) {\n return undefined;\n }\n }\n\n // at the end check if schema is a parsed JS object (as output from AsyncAPI Parser)\n if (isStringifiedDocument(schema)) {\n return unstringify(schema);\n }\n\n return toAsyncAPIDocument(schema);\n }\n\n /**\n * Check if given schema have one of the specified tags.\n */\n static containTags(\n schema: any,\n tags: TagInterface | TagInterface[],\n ): boolean {\n const tagsToCheck =\n typeof schema.tags === 'function' ? schema.tags() : undefined;\n if (tagsToCheck === undefined || !Array.isArray(tagsToCheck)) {\n return false;\n }\n tags = Array.isArray(tags) ? tags : [tags];\n return tagsToCheck.some((tag: TagInterface) =>\n (tags as TagInterface[]).some(t => t.name() === tag.name()),\n );\n }\n\n /**\n * Return all tags from operations\n */\n static operationsTags(spec: AsyncAPIDocumentInterface) {\n const tags = new Map<string, TagInterface>();\n Object.entries(spec.operations().all()).forEach(([_, operation]) => {\n if (operation?.tags().length > 0) {\n operation\n .tags()\n .all()\n .forEach(tag => tags.set(tag.name(), tag));\n }\n });\n return Array.from(tags.values());\n }\n\n /**\n * Return all tags from servers\n */\n static serversTags(spec: AsyncAPIDocumentInterface) {\n const tags = {} as { string: string[] };\n Object.entries(spec.servers()).forEach(([_, server]) => {\n if (server.tags().length > 0) {\n server\n .tags()\n .all()\n .forEach(tag => {\n if (tags[tag.name()]) {\n tags[tag.name()] = [tags[tag.name()], _];\n } else {\n tags[tag.name()] = _;\n }\n });\n }\n });\n return tags;\n }\n}\n"]}
|
package/lib/esm/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"AAeA,MAAM,UAAU,yBAAyB,CACvC,MAAmB;IAEnB,OAAQ,MAAkC,CAAC,GAAG,KAAK,SAAS,CAAC;AAC/D,CAAC;AAYD,MAAM,CAAN,IAAY,WAGX;AAHD,WAAY,WAAW;IACrB,kCAAmB,CAAA;IACnB,sCAAuB,CAAA;AACzB,CAAC,EAHW,WAAW,KAAX,WAAW,QAGtB","sourcesContent":["import {
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"AAeA,MAAM,UAAU,yBAAyB,CACvC,MAAmB;IAEnB,OAAQ,MAAkC,CAAC,GAAG,KAAK,SAAS,CAAC;AAC/D,CAAC;AAYD,MAAM,CAAN,IAAY,WAGX;AAHD,WAAY,WAAW;IACrB,kCAAmB,CAAA;IACnB,sCAAuB,CAAA;AACzB,CAAC,EAHW,WAAW,KAAX,WAAW,QAGtB","sourcesContent":["import { AsyncAPIDocumentInterface } from '@asyncapi/parser';\n\nexport type PropsSchema =\n | string\n | FetchingSchemaInterface\n | AsyncAPIDocumentInterface\n | object;\n\nexport type NullableAsyncApi = AsyncAPIDocumentInterface | null;\n\nexport interface AsyncApiState {\n validatedSchema: NullableAsyncApi;\n error?: ErrorObject;\n}\n\nexport function isFetchingSchemaInterface(\n schema: PropsSchema,\n): schema is FetchingSchemaInterface {\n return (schema as FetchingSchemaInterface).url !== undefined;\n}\n\nexport interface FetchingSchemaInterface {\n url: string;\n requestOptions?: RequestInit;\n}\n\nexport interface ParserReturn {\n asyncapi?: AsyncAPIDocumentInterface;\n error?: ErrorObject;\n}\n\nexport enum PayloadType {\n PUBLISH = 'publish',\n SUBSCRIBE = 'subscribe',\n}\n\nexport interface MessageExample {\n name?: string;\n summary?: string;\n example: any;\n}\n\nexport interface ValidationError {\n title: string;\n location: {\n jsonPointer: string;\n startLine: number;\n startColumn: number;\n startOffset: number;\n endLine: number;\n endColumn: number;\n endOffset: number;\n };\n}\n\nexport interface ErrorObject {\n type: string;\n title: string;\n detail?: string;\n parsedJSON?: any;\n validationErrors?: ValidationError[];\n location?: {\n startLine: number;\n startColumn: number;\n startOffset: number;\n };\n refs?: Array<{\n title: string;\n jsonPointer: string;\n startLine: number;\n startColumn: number;\n startOffset: number;\n endLine: number;\n endColumn: number;\n endOffset: number;\n }>;\n}\n"]}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import {
|
|
2
|
+
import { SchemaInterface } from '@asyncapi/parser';
|
|
3
3
|
interface Props {
|
|
4
4
|
schemaName?: React.ReactNode;
|
|
5
|
-
schema?:
|
|
5
|
+
schema?: SchemaInterface;
|
|
6
6
|
required?: boolean;
|
|
7
7
|
isPatternProperty?: boolean;
|
|
8
8
|
isProperty?: boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Schema.d.ts","sourceRoot":"","sources":["../../../src/components/Schema.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA0C,MAAM,OAAO,CAAC;AAC/D,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"Schema.d.ts","sourceRoot":"","sources":["../../../src/components/Schema.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA0C,MAAM,OAAO,CAAC;AAC/D,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAKnD,UAAU,KAAK;IACb,UAAU,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC7B,MAAM,CAAC,EAAE,eAAe,CAAC;IACzB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,iBAAiB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC7B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAOD,eAAO,MAAM,MAAM,EAAE,KAAK,CAAC,iBAAiB,CAAC,KAAK,CAsUjD,CAAC"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import {
|
|
2
|
+
import { TagInterface } from '@asyncapi/parser';
|
|
3
3
|
interface Props {
|
|
4
|
-
tag:
|
|
4
|
+
tag: TagInterface;
|
|
5
5
|
}
|
|
6
6
|
export declare const Tag: React.FunctionComponent<Props>;
|
|
7
7
|
export {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Tag.d.ts","sourceRoot":"","sources":["../../../src/components/Tag.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"Tag.d.ts","sourceRoot":"","sources":["../../../src/components/Tag.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAIhD,UAAU,KAAK;IACb,GAAG,EAAE,YAAY,CAAC;CACnB;AAED,eAAO,MAAM,GAAG,EAAE,KAAK,CAAC,iBAAiB,CAAC,KAAK,CAsB9C,CAAC"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import {
|
|
2
|
+
import { TagInterface } from '@asyncapi/parser';
|
|
3
3
|
interface Props {
|
|
4
|
-
tags?:
|
|
4
|
+
tags?: TagInterface[];
|
|
5
5
|
}
|
|
6
6
|
export declare const Tags: React.FunctionComponent<Props>;
|
|
7
7
|
export {};
|