diff --git a/packages/openapi-to-graphql/lib/index.d.ts b/packages/openapi-to-graphql/lib/index.d.ts index 3aafba7f..ae586d46 100644 --- a/packages/openapi-to-graphql/lib/index.d.ts +++ b/packages/openapi-to-graphql/lib/index.d.ts @@ -38,5 +38,5 @@ declare type Result = { * Creates a GraphQL interface from the given OpenAPI Specification (2 or 3). */ export declare function createGraphQLSchema(spec: Oas3 | Oas2 | (Oas3 | Oas2)[], options?: Options): Promise>; -export { sanitize, CaseStyle } from './oas_3_tools'; +export { CaseStyle, sanitize } from './oas_3_tools'; export { GraphQLOperationType } from './types/graphql'; diff --git a/packages/openapi-to-graphql/lib/index.js b/packages/openapi-to-graphql/lib/index.js index 48a9cd0b..7272cb4d 100644 --- a/packages/openapi-to-graphql/lib/index.js +++ b/packages/openapi-to-graphql/lib/index.js @@ -4,7 +4,7 @@ // This file is licensed under the MIT License. // License text available at https://opensource.org/licenses/MIT Object.defineProperty(exports, "__esModule", { value: true }); -exports.GraphQLOperationType = exports.CaseStyle = exports.sanitize = exports.createGraphQLSchema = void 0; +exports.GraphQLOperationType = exports.sanitize = exports.CaseStyle = exports.createGraphQLSchema = void 0; const graphql_1 = require("./types/graphql"); const graphql_2 = require("graphql"); // Imports: @@ -162,9 +162,14 @@ provideErrorExtensions, equivalentToMessages }) { const saneOperationId = Oas3Tools.sanitize(operationId, Oas3Tools.CaseStyle.camelCase); // Check if the operation should be added as a Query or Mutation if (operation.operationType === graphql_1.GraphQLOperationType.Query) { - let fieldName = !singularNames - ? Oas3Tools.uncapitalize(operation.responseDefinition.graphQLTypeName) - : Oas3Tools.sanitize(Oas3Tools.inferResourceNameFromPath(operation.path), Oas3Tools.CaseStyle.camelCase); + const extensionFieldName = operation.operation[Oas3Tools.OAS_GRAPHQL_EXTENSIONS.FieldName]; + if (extensionFieldName in queryFields) { + throw new Error(`Cannot create query with name "${extensionFieldName}".\nYou provided "${extensionFieldName}" in ${Oas3Tools.OAS_GRAPHQL_EXTENSIONS.FieldName}, but it conflicts with another query called "${extensionFieldName}"`); + } + let fieldName = extensionFieldName || + (!singularNames + ? Oas3Tools.uncapitalize(operation.responseDefinition.graphQLTypeName) + : Oas3Tools.sanitize(Oas3Tools.inferResourceNameFromPath(operation.path), Oas3Tools.CaseStyle.camelCase)); if (operation.inViewer) { for (let securityRequirement of operation.securityRequirements) { if (typeof authQueryFields[securityRequirement] !== 'object') { @@ -224,7 +229,14 @@ provideErrorExtensions, equivalentToMessages }) { } else { let saneFieldName; - if (!singularNames) { + const extensionFieldName = operation.operation[Oas3Tools.OAS_GRAPHQL_EXTENSIONS.FieldName]; + if (extensionFieldName) { + if (extensionFieldName in data.saneMap) { + throw new Error(`Cannot create mutation with name "${extensionFieldName}".\nYou provided "${extensionFieldName}" in ${Oas3Tools.OAS_GRAPHQL_EXTENSIONS.FieldName}, but it conflicts with another mutation called "${extensionFieldName}"`); + } + saneFieldName = extensionFieldName; + } + else if (!singularNames) { /** * Use operationId to avoid problems differentiating operations with the * same path but differnet methods @@ -280,7 +292,12 @@ provideErrorExtensions, equivalentToMessages }) { translationLog(`Process operation '${operationId}'...`); let field = getFieldForOperation(operation, options.baseUrl, data, requestOptions, connectOptions); const saneOperationId = Oas3Tools.sanitize(operationId, Oas3Tools.CaseStyle.camelCase); - let saneFieldName = Oas3Tools.storeSaneName(saneOperationId, operationId, data.saneMap); + const extensionFieldName = operation.operation[Oas3Tools.OAS_GRAPHQL_EXTENSIONS.FieldName]; + if (extensionFieldName && extensionFieldName in data.saneMap) { + throw new Error(`Cannot create subscription with name "${extensionFieldName}".\nYou provided "${extensionFieldName}" in ${Oas3Tools.OAS_GRAPHQL_EXTENSIONS.FieldName}, but it conflicts with another subscription called "${extensionFieldName}"`); + } + const saneFieldName = extensionFieldName || + Oas3Tools.storeSaneName(saneOperationId, operationId, data.saneMap); if (operation.inViewer) { for (let securityRequirement of operation.securityRequirements) { if (typeof authSubscriptionFields[securityRequirement] !== 'object') { @@ -541,8 +558,8 @@ function preliminaryChecks(options, data) { checkCustomResolversStructure(options.customSubscriptionResolvers, data); } var oas_3_tools_1 = require("./oas_3_tools"); -Object.defineProperty(exports, "sanitize", { enumerable: true, get: function () { return oas_3_tools_1.sanitize; } }); Object.defineProperty(exports, "CaseStyle", { enumerable: true, get: function () { return oas_3_tools_1.CaseStyle; } }); +Object.defineProperty(exports, "sanitize", { enumerable: true, get: function () { return oas_3_tools_1.sanitize; } }); var graphql_3 = require("./types/graphql"); Object.defineProperty(exports, "GraphQLOperationType", { enumerable: true, get: function () { return graphql_3.GraphQLOperationType; } }); //# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/packages/openapi-to-graphql/lib/index.js.map b/packages/openapi-to-graphql/lib/index.js.map index 13adde1a..db6be5da 100644 --- a/packages/openapi-to-graphql/lib/index.js.map +++ b/packages/openapi-to-graphql/lib/index.js.map @@ -1 +1 @@ -{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA,iDAAiD;AACjD,kCAAkC;AAClC,+CAA+C;AAC/C,gEAAgE;;;AAuChE,6CAIwB;AAGxB,qCAKgB;AAEhB,WAAW;AACX,qDAA0D;AAC1D,yDAI2B;AAC3B,gDAA+C;AAC/C,iDAA8C;AAC9C,2CAA0C;AAC1C,iDAAoD;AACpD,iCAAyB;AAEzB,mCAAoE;AAEpE,MAAM,cAAc,GAAG,eAAK,CAAC,aAAa,CAAC,CAAA;AAQ3C,MAAM,eAAe,GAAmC;IACtD,MAAM,EAAE;QACN,QAAQ,EAAE,EAAE;QACZ,MAAM,EAAE,CAAC;QACT,WAAW,EAAE,CAAC;QACd,cAAc,EAAE,CAAC;QACjB,kBAAkB,EAAE,CAAC;QACrB,iBAAiB,EAAE,CAAC;QACpB,mBAAmB,EAAE,CAAC;QACtB,uBAAuB,EAAE,CAAC;KAC3B;IAED,0BAA0B;IAC1B,MAAM,EAAE,KAAK;IAEb,iBAAiB;IACjB,qBAAqB,EAAE,KAAK;IAC5B,kBAAkB,EAAE,KAAK;IACzB,gBAAgB,EAAE,KAAK;IACvB,SAAS,EAAE,EAAE;IACb,0BAA0B,EAAE,EAAE;IAC9B,qBAAqB,EAAE,KAAK;IAC5B,WAAW,EAAE,KAAK;IAClB,gBAAgB,EAAE,KAAK;IACvB,aAAa,EAAE,KAAK;IACpB,gCAAgC,EAAE,KAAK;IAEvC,mBAAmB;IACnB,OAAO,EAAE,EAAE;IACX,EAAE,EAAE,EAAE;IACN,cAAc,EAAE,EAAE;IAClB,eAAe,EAAE,EAAE;IACnB,2BAA2B,EAAE,EAAE;IAE/B,yBAAyB;IACzB,MAAM,EAAE,IAAI;IACZ,qBAAqB,EAAE,KAAK;IAE5B,qBAAqB;IACrB,mBAAmB,EAAE,EAAE;IACvB,sBAAsB,EAAE,EAAE;IAE1B,kBAAkB;IAClB,sBAAsB,EAAE,IAAI;IAC5B,oBAAoB,EAAE,IAAI;CAC3B,CAAA;AAED;;GAEG;AACH,SAAgB,mBAAmB,CACjC,IAAmC,EACnC,OAA2C;IAE3C,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACrC,0BAA0B;QAC1B,MAAM,eAAe,mCAChB,eAAe,GACf,OAAO,CACX,CAAA;QAED,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;YACvB,mCAAmC;YACnC,OAAO,CAAC,GAAG,CACT,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;gBACf,OAAO,SAAS,CAAC,YAAY,CAC3B,GAAG,EACH,eAAe,CAAC,mBAAmB,EACnC,eAAe,CAAC,sBAAsB,CACvC,CAAA;YACH,CAAC,CAAC,CACH;iBACE,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE;gBACb,OAAO,CAAC,yBAAyB,CAAC,IAAI,EAAE,eAAe,CAAC,CAAC,CAAA;YAC3D,CAAC,CAAC;iBACD,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;gBACf,MAAM,CAAC,KAAK,CAAC,CAAA;YACf,CAAC,CAAC,CAAA;SACL;aAAM;YACL;;;;eAIG;YACH,SAAS,CAAC,YAAY,CACpB,IAAI,EACJ,eAAe,CAAC,mBAAmB,EACnC,eAAe,CAAC,sBAAsB,CACvC;iBACE,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE;gBACZ,OAAO,CAAC,yBAAyB,CAAC,CAAC,GAAG,CAAC,EAAE,eAAe,CAAC,CAAC,CAAA;YAC5D,CAAC,CAAC;iBACD,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;gBACf,MAAM,CAAC,KAAK,CAAC,CAAA;YACf,CAAC,CAAC,CAAA;SACL;IACH,CAAC,CAAC,CAAA;AACJ,CAAC;AA/CD,kDA+CC;AAED;;GAEG;AACH,SAAS,yBAAyB,CAChC,IAAY,EACZ,EACE,MAAM,EACN,MAAM;AAEN,iBAAiB;AACjB,qBAAqB,EACrB,kBAAkB,EAClB,gBAAgB,EAChB,SAAS,EACT,0BAA0B,EAC1B,qBAAqB,EACrB,WAAW,EACX,gBAAgB,EAChB,aAAa,EACb,gCAAgC;AAEhC,mBAAmB;AACnB,OAAO,EACP,EAAE,EACF,cAAc,EACd,cAAc,EACd,OAAO,EACP,eAAe,EACf,2BAA2B;AAE3B,yBAAyB;AACzB,MAAM,EACN,aAAa,EACb,qBAAqB;AAErB,qBAAqB;AACrB,mBAAmB,EACnB,sBAAsB;AAEtB,kBAAkB;AAClB,sBAAsB,EACtB,oBAAoB,EACsB;IAE5C,MAAM,OAAO,GAAG;QACd,MAAM;QACN,MAAM;QAEN,iBAAiB;QACjB,qBAAqB;QACrB,kBAAkB;QAClB,gBAAgB;QAChB,SAAS;QACT,0BAA0B;QAC1B,qBAAqB;QACrB,WAAW;QACX,gBAAgB;QAChB,aAAa;QACb,gCAAgC;QAEhC,mBAAmB;QACnB,OAAO;QACP,EAAE;QACF,cAAc;QACd,cAAc;QACd,OAAO;QACP,eAAe;QACf,2BAA2B;QAE3B,yBAAyB;QACzB,MAAM;QACN,aAAa;QACb,qBAAqB;QAErB,qBAAqB;QACrB,mBAAmB;QACnB,sBAAsB;QAEtB,kBAAkB;QAClB,sBAAsB;QACtB,oBAAoB;KACrB,CAAA;IACD,cAAc,CAAC,YAAY,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC,CAAA;IAErD;;;OAGG;IACH,MAAM,IAAI,GAAgD,4BAAa,CACrE,IAAI,EACJ,OAAO,CACR,CAAA;IAED,iBAAiB,CAAC,OAAO,EAAE,IAAI,CAAC,CAAA;IAEhC,2CAA2C;IAC3C,IAAI,WAAW,GAA0D,EAAE,CAAA;IAC3E,IAAI,cAAc,GAA0D,EAAE,CAAA;IAC9E,IAAI,kBAAkB,GAElB,EAAE,CAAA;IAEN,yDAAyD;IACzD,IAAI,eAAe,GAIf,EAAE,CAAA;IACN,IAAI,kBAAkB,GAIlB,EAAE,CAAA;IACN,IAAI,sBAAsB,GAItB,EAAE,CAAA;IAEN,gCAAgC;IAChC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,WAAW,EAAE,SAAS,CAAC,EAAE,EAAE;QACnE,cAAc,CAAC,sBAAsB,SAAS,CAAC,eAAe,MAAM,CAAC,CAAA;QAErE,MAAM,KAAK,GAAG,oBAAoB,CAChC,SAAS,EACT,OAAO,CAAC,OAAO,EACf,IAAI,EACJ,cAAc,EACd,cAAc,CACf,CAAA;QAED,MAAM,eAAe,GAAG,SAAS,CAAC,QAAQ,CACxC,WAAW,EACX,SAAS,CAAC,SAAS,CAAC,SAAS,CAC9B,CAAA;QAED,gEAAgE;QAChE,IAAI,SAAS,CAAC,aAAa,KAAK,8BAAoB,CAAC,KAAK,EAAE;YAC1D,IAAI,SAAS,GAAG,CAAC,aAAa;gBAC5B,CAAC,CAAC,SAAS,CAAC,YAAY,CAAC,SAAS,CAAC,kBAAkB,CAAC,eAAe,CAAC;gBACtE,CAAC,CAAC,SAAS,CAAC,QAAQ,CAChB,SAAS,CAAC,yBAAyB,CAAC,SAAS,CAAC,IAAI,CAAC,EACnD,SAAS,CAAC,SAAS,CAAC,SAAS,CAC9B,CAAA;YAEL,IAAI,SAAS,CAAC,QAAQ,EAAE;gBACtB,KAAK,IAAI,mBAAmB,IAAI,SAAS,CAAC,oBAAoB,EAAE;oBAC9D,IAAI,OAAO,eAAe,CAAC,mBAAmB,CAAC,KAAK,QAAQ,EAAE;wBAC5D,eAAe,CAAC,mBAAmB,CAAC,GAAG,EAAE,CAAA;qBAC1C;oBACD,sDAAsD;oBACtD,IACE,SAAS,IAAI,eAAe,CAAC,mBAAmB,CAAC;wBACjD;;;2BAGG;wBACH,qBAAqB,EACrB;wBACA,SAAS,GAAG,SAAS,CAAC,aAAa,CACjC,eAAe,EACf,WAAW,EACX,IAAI,CAAC,OAAO,CACb,CAAA;qBACF;oBAED,IAAI,SAAS,IAAI,eAAe,CAAC,mBAAmB,CAAC,EAAE;wBACrD,qBAAa,CAAC;4BACZ,cAAc,EAAE,uBAAe,CAAC,oBAAoB;4BACpD,OAAO,EACL,yCAAyC;gCACzC,IAAI,SAAS,6BAA6B;gCAC1C,IAAI,mBAAmB,iCAAiC;gCACxD,wDAAwD;gCACxD,sBAAsB,SAAS,CAAC,eAAe,oBAAoB;4BACrE,IAAI;4BACJ,GAAG,EAAE,cAAc;yBACpB,CAAC,CAAA;qBACH;yBAAM;wBACL,eAAe,CAAC,mBAAmB,CAAC,CAAC,SAAS,CAAC,GAAG,KAAK,CAAA;qBACxD;iBACF;aACF;iBAAM;gBACL,sDAAsD;gBACtD,IACE,SAAS,IAAI,WAAW;oBACxB;;;uBAGG;oBACH,qBAAqB,EACrB;oBACA,SAAS,GAAG,SAAS,CAAC,aAAa,CACjC,eAAe,EACf,WAAW,EACX,IAAI,CAAC,OAAO,CACb,CAAA;iBACF;gBAED,IAAI,SAAS,IAAI,WAAW,EAAE;oBAC5B,qBAAa,CAAC;wBACZ,cAAc,EAAE,uBAAe,CAAC,oBAAoB;wBACpD,OAAO,EACL,yCAAyC;4BACzC,IAAI,SAAS,iCAAiC;4BAC9C,uDAAuD;4BACvD,cAAc,SAAS,CAAC,eAAe,oBAAoB;wBAC7D,IAAI;wBACJ,GAAG,EAAE,cAAc;qBACpB,CAAC,CAAA;iBACH;qBAAM;oBACL,WAAW,CAAC,SAAS,CAAC,GAAG,KAAK,CAAA;iBAC/B;aACF;SACF;aAAM;YACL,IAAI,aAAa,CAAA;YAEjB,IAAI,CAAC,aAAa,EAAE;gBAClB;;;mBAGG;gBACH,aAAa,GAAG,SAAS,CAAC,aAAa,CACrC,eAAe,EACf,WAAW,EACX,IAAI,CAAC,OAAO,CACb,CAAA;aACF;iBAAM;gBACL,MAAM,SAAS,GAAG,GAChB,SAAS,CAAC,MACZ,GAAG,SAAS,CAAC,yBAAyB,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAA;gBAExD,aAAa,GAAG,SAAS,CAAC,aAAa,CACrC,SAAS,CAAC,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAC,SAAS,CAAC,SAAS,CAAC,EAC5D,SAAS,EACT,IAAI,CAAC,OAAO,CACb,CAAA;aACF;YAED,IAAI,SAAS,CAAC,QAAQ,EAAE;gBACtB,KAAK,IAAI,mBAAmB,IAAI,SAAS,CAAC,oBAAoB,EAAE;oBAC9D,IAAI,OAAO,kBAAkB,CAAC,mBAAmB,CAAC,KAAK,QAAQ,EAAE;wBAC/D,kBAAkB,CAAC,mBAAmB,CAAC,GAAG,EAAE,CAAA;qBAC7C;oBAED,IAAI,aAAa,IAAI,kBAAkB,CAAC,mBAAmB,CAAC,EAAE;wBAC5D,qBAAa,CAAC;4BACZ,cAAc,EAAE,uBAAe,CAAC,oBAAoB;4BACpD,OAAO,EACL,yCAAyC;gCACzC,IAAI,aAAa,6BAA6B;gCAC9C,IAAI,mBAAmB,iCAAiC;gCACxD,wDAAwD;gCACxD,sBAAsB,SAAS,CAAC,eAAe,oBAAoB;4BACrE,IAAI;4BACJ,GAAG,EAAE,cAAc;yBACpB,CAAC,CAAA;qBACH;yBAAM;wBACL,kBAAkB,CAAC,mBAAmB,CAAC,CAAC,aAAa,CAAC,GAAG,KAAK,CAAA;qBAC/D;iBACF;aACF;iBAAM;gBACL,IAAI,aAAa,IAAI,cAAc,EAAE;oBACnC,qBAAa,CAAC;wBACZ,cAAc,EAAE,uBAAe,CAAC,oBAAoB;wBACpD,OAAO,EACL,yCAAyC;4BACzC,IAAI,aAAa,iCAAiC;4BAClD,0DAA0D;4BAC1D,cAAc,SAAS,CAAC,eAAe,oBAAoB;wBAC7D,IAAI;wBACJ,GAAG,EAAE,cAAc;qBACpB,CAAC,CAAA;iBACH;qBAAM;oBACL,cAAc,CAAC,aAAa,CAAC,GAAG,KAAK,CAAA;iBACtC;aACF;SACF;IACH,CAAC,CAAC,CAAA;IAEF,0BAA0B;IAC1B,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,OAAO,CAC7C,CAAC,CAAC,WAAW,EAAE,SAAS,CAAC,EAAE,EAAE;QAC3B,cAAc,CAAC,sBAAsB,WAAW,MAAM,CAAC,CAAA;QAEvD,IAAI,KAAK,GAAG,oBAAoB,CAC9B,SAAS,EACT,OAAO,CAAC,OAAO,EACf,IAAI,EACJ,cAAc,EACd,cAAc,CACf,CAAA;QAED,MAAM,eAAe,GAAG,SAAS,CAAC,QAAQ,CACxC,WAAW,EACX,SAAS,CAAC,SAAS,CAAC,SAAS,CAC9B,CAAA;QAED,IAAI,aAAa,GAAG,SAAS,CAAC,aAAa,CACzC,eAAe,EACf,WAAW,EACX,IAAI,CAAC,OAAO,CACb,CAAA;QACD,IAAI,SAAS,CAAC,QAAQ,EAAE;YACtB,KAAK,IAAI,mBAAmB,IAAI,SAAS,CAAC,oBAAoB,EAAE;gBAC9D,IAAI,OAAO,sBAAsB,CAAC,mBAAmB,CAAC,KAAK,QAAQ,EAAE;oBACnE,sBAAsB,CAAC,mBAAmB,CAAC,GAAG,EAAE,CAAA;iBACjD;gBAED,IAAI,aAAa,IAAI,sBAAsB,CAAC,mBAAmB,CAAC,EAAE;oBAChE,qBAAa,CAAC;wBACZ,cAAc,EAAE,uBAAe,CAAC,oBAAoB;wBACpD,OAAO,EACL,yCAAyC;4BACzC,IAAI,aAAa,6BAA6B;4BAC9C,IAAI,mBAAmB,iCAAiC;4BACxD,wDAAwD;4BACxD,sBAAsB,SAAS,CAAC,eAAe,oBAAoB;wBACrE,IAAI;wBACJ,GAAG,EAAE,cAAc;qBACpB,CAAC,CAAA;iBACH;qBAAM;oBACL,sBAAsB,CAAC,mBAAmB,CAAC,CAAC,aAAa,CAAC,GAAG,KAAK,CAAA;iBACnE;aACF;SACF;aAAM;YACL,IAAI,aAAa,IAAI,kBAAkB,EAAE;gBACvC,qBAAa,CAAC;oBACZ,cAAc,EAAE,uBAAe,CAAC,oBAAoB;oBACpD,OAAO,EACL,yCAAyC;wBACzC,IAAI,aAAa,iCAAiC;wBAClD,0DAA0D;wBAC1D,cAAc,SAAS,CAAC,eAAe,oBAAoB;oBAC7D,IAAI;oBACJ,GAAG,EAAE,cAAc;iBACpB,CAAC,CAAA;aACH;iBAAM;gBACL,kBAAkB,CAAC,aAAa,CAAC,GAAG,KAAK,CAAA;aAC1C;SACF;IACH,CAAC,CACF,CAAA;IAED,iBAAiB;IACjB,WAAW,GAAG,kBAAU,CAAC,WAAW,CAAC,CAAA;IACrC,cAAc,GAAG,kBAAU,CAAC,cAAc,CAAC,CAAA;IAC3C,kBAAkB,GAAG,kBAAU,CAAC,kBAAkB,CAAC,CAAA;IACnD,eAAe,GAAG,kBAAU,CAAC,eAAe,CAAC,CAAA;IAC7C,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;QAC3C,eAAe,CAAC,GAAG,CAAC,GAAG,kBAAU,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,CAAA;IACzD,CAAC,CAAC,CAAA;IACF,kBAAkB,GAAG,kBAAU,CAAC,kBAAkB,CAAC,CAAA;IACnD,MAAM,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;QAC9C,kBAAkB,CAAC,GAAG,CAAC,GAAG,kBAAU,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC,CAAA;IAC/D,CAAC,CAAC,CAAA;IACF,sBAAsB,GAAG,kBAAU,CAAC,sBAAsB,CAAC,CAAA;IAC3D,MAAM,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;QAClD,sBAAsB,CAAC,GAAG,CAAC,GAAG,kBAAU,CAAC,sBAAsB,CAAC,GAAG,CAAC,CAAC,CAAA;IACvE,CAAC,CAAC,CAAA;IAEF,yDAAyD;IACzD,OAAO,CAAC,MAAM,CAAC,iBAAiB;QAC9B,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,MAAM;YAC/B,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;gBAC/C,OAAO,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAA;YACvD,CAAC,EAAE,CAAC,CAAC,CAAA;IAEP,OAAO,CAAC,MAAM,CAAC,mBAAmB;QAChC,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,MAAM;YAClC,MAAM,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;gBAClD,OAAO,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAA;YAC1D,CAAC,EAAE,CAAC,CAAC,CAAA;IAEP,OAAO,CAAC,MAAM,CAAC,uBAAuB;QACpC,MAAM,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,MAAM;YACtC,MAAM,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;gBACtD,OAAO,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,sBAAsB,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAA;YAC9D,CAAC,EAAE,CAAC,CAAC,CAAA;IAEP;;;OAGG;IACH,IAAI,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE;QAC3C,MAAM,CAAC,MAAM,CACX,WAAW,EACX,kCAAmB,CAAC,eAAe,EAAE,8BAAoB,CAAC,KAAK,EAAE,IAAI,CAAC,CACvE,CAAA;KACF;IAED,IAAI,MAAM,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE;QAC9C,MAAM,CAAC,MAAM,CACX,cAAc,EACd,kCAAmB,CACjB,kBAAkB,EAClB,8BAAoB,CAAC,QAAQ,EAC7B,IAAI,CACL,CACF,CAAA;KACF;IAED,IAAI,MAAM,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE;QAClD,MAAM,CAAC,MAAM,CACX,kBAAkB,EAClB,kCAAmB,CACjB,sBAAsB,EACtB,8BAAoB,CAAC,YAAY,EACjC,IAAI,CACL,CACF,CAAA;KACF;IAED,sBAAsB;IACtB,MAAM,YAAY,GAAwB;QACxC,KAAK,EACH,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,MAAM,GAAG,CAAC;YACjC,CAAC,CAAC,IAAI,2BAAiB,CAAC;gBACpB,IAAI,EAAE,OAAO;gBACb,MAAM,EAAE,WAAW;aACpB,CAAC;YACJ,CAAC,CAAC,YAAY,CAAC,kBAAkB,CAAC,OAAO,CAAC;QAC9C,QAAQ,EACN,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,MAAM,GAAG,CAAC;YACpC,CAAC,CAAC,IAAI,2BAAiB,CAAC;gBACpB,IAAI,EAAE,UAAU;gBAChB,MAAM,EAAE,cAAc;aACvB,CAAC;YACJ,CAAC,CAAC,IAAI;QACV,YAAY,EACV,MAAM,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,MAAM,GAAG,CAAC;YACxC,CAAC,CAAC,IAAI,2BAAiB,CAAC;gBACpB,IAAI,EAAE,cAAc;gBACpB,MAAM,EAAE,kBAAkB;aAC3B,CAAC;YACJ,CAAC,CAAC,IAAI;KACX,CAAA;IAED;;;;;OAKG;IACH,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,EAAE,SAAS,CAAC,EAAE,EAAE;QAC5D,IAAI,OAAO,SAAS,CAAC,kBAAkB,CAAC,WAAW,KAAK,WAAW,EAAE;YACnE,SAAS,CAAC,kBAAkB,CAAC,WAAW,GAAG,YAAY,CAAC,kBAAkB,CACxE,SAAS,CAAC,kBAAkB,CAAC,eAAe,CAC7C,CAAA;SACF;IACH,CAAC,CAAC,CAAA;IAEF,MAAM,MAAM,GAAG,IAAI,uBAAa,CAAC,YAAY,CAAC,CAAA;IAE9C,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,IAAI,EAAE,CAAA;AACjD,CAAC;AAED;;GAEG;AACH,SAAS,oBAAoB,CAC3B,SAAoB,EACpB,OAAe,EACf,IAAiD,EACjD,cAAiE,EACjE,cAA8B;IAE9B,oCAAoC;IACpC,MAAM,IAAI,GAAG,+BAAc,CAAC;QAC1B,GAAG,EAAE,SAAS,CAAC,kBAAkB;QACjC,IAAI;QACJ,SAAS;KACV,CAAsB,CAAA;IAEvB,MAAM,iBAAiB,GAAG,SAAS,CAAC,iBAAiB;QACnD,CAAC,CAAC,SAAS,CAAC,iBAAiB,CAAC,0BAA0B;QACxD,CAAC,CAAC,IAAI,CAAA;IAER,MAAM,IAAI,GAAS,wBAAO,CAAC;QACzB;;;;;WAKG;QACH,iBAAiB,EAAE,SAAS,CAAC,iBAAiB;QAC9C,UAAU,EAAE,SAAS,CAAC,UAAU;QAChC,SAAS;QACT,IAAI;KACL,CAAC,CAAA;IAEF,8DAA8D;IAC9D,IAAI,SAAS,CAAC,aAAa,KAAK,8BAAoB,CAAC,YAAY,EAAE;QACjE,MAAM,kBAAkB,GAAG,SAAS,CAAC,kBAAkB;YACrD,CAAC,CAAC,SAAS,CAAC,kBAAkB,CAAC,eAAe;YAC9C,CAAC,CAAC,IAAI,CAAA;QAER,MAAM,OAAO,GAAG,qCAAkB,CAAC;YACjC,SAAS;YACT,YAAY,EAAE,kBAAkB;YAChC,IAAI;SACL,CAAC,CAAA;QAEF,MAAM,SAAS,GAAG,+BAAY,CAAC;YAC7B,SAAS;YACT,WAAW,EAAE,iBAAiB;YAC9B,IAAI;YACJ,OAAO;YACP,cAAc;SACf,CAAC,CAAA;QAEF,OAAO;YACL,IAAI;YACJ,OAAO;YACP,SAAS;YACT,IAAI;YACJ,WAAW,EAAE,SAAS,CAAC,WAAW;SACnC,CAAA;QAED,6CAA6C;KAC9C;SAAM;QACL,MAAM,OAAO,GAAG,8BAAW,CAAC;YAC1B,SAAS;YACT,WAAW,EAAE,iBAAiB;YAC9B,IAAI;YACJ,OAAO;YACP,cAAc;SACf,CAAC,CAAA;QAEF,OAAO;YACL,IAAI;YACJ,OAAO;YACP,IAAI;YACJ,WAAW,EAAE,SAAS,CAAC,WAAW;SACnC,CAAA;KACF;AACH,CAAC;AAED;;;;GAIG;AACH,SAAS,6BAA6B,CACpC,eAAoB,EACpB,IAAiD;IAEjD,IAAI,OAAO,eAAe,KAAK,QAAQ,EAAE;QACvC,8EAA8E;QAC9E,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC;aACzB,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE;YAChB,gCAAgC;YAChC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE;gBAC7B,OAAO,KAAK,KAAK,GAAG,CAAC,IAAI,CAAC,KAAK,CAAA;YACjC,CAAC,CAAC,CAAA;QACJ,CAAC,CAAC;aACD,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;YACjB,qBAAa,CAAC;gBACZ,cAAc,EAAE,uBAAe,CAAC,2BAA2B;gBAC3D,OAAO,EACL,mCAAmC,KAAK,gBAAgB;oBACxD,kBAAkB;gBACpB,IAAI;gBACJ,GAAG,EAAE,cAAc;aACpB,CAAC,CAAA;QACJ,CAAC,CAAC,CAAA;QAEJ,4EAA4E;QAC5E,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;YAC7C,2CAA2C;YAC3C,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC,CAAC,SAAS,EAAE,EAAE;gBACrE,OAAO,KAAK,KAAK,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAA;YAC3C,CAAC,CAAC,CAAA;YAEF,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;gBACnD,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE;oBAC3D,IACE,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE;wBAC7B,OAAO,IAAI,KAAK,SAAS,CAAC,IAAI,IAAI,MAAM,KAAK,SAAS,CAAC,MAAM,CAAA;oBAC/D,CAAC,CAAC,EACF;wBACA,qBAAa,CAAC;4BACZ,cAAc,EACZ,uBAAe,CAAC,mCAAmC;4BACrD,OAAO,EACL,iDAAiD;gCACjD,SAAS,IAAI,iBAAiB,MAAM,0BAA0B;gCAC9D,kBAAkB,KAAK,GAAG;4BAC5B,IAAI;4BACJ,GAAG,EAAE,cAAc;yBACpB,CAAC,CAAA;qBACH;gBACH,CAAC,CAAC,CAAA;YACJ,CAAC,CAAC,CAAA;QACJ,CAAC,CAAC,CAAA;KACH;AACH,CAAC;AAED;;GAEG;AACH,SAAS,iBAAiB,CACxB,OAAkD,EAClD,IAAiD;IAEjD,mCAAmC;IACnC,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;QACnC,OAAO,GAAG,CAAC,IAAI,CAAC,KAAK,CAAA;IACvB,CAAC,CAAC,CAAA;IAEF,+BAA+B;IAC/B,IAAI,GAAG,CACL,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;QAC7B,OAAO,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,KAAK,CAAA;IACxC,CAAC,CAAC,CACH,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;QAClB,qBAAa,CAAC;YACZ,cAAc,EAAE,uBAAe,CAAC,uBAAuB;YACvD,OAAO,EAAE,sCAAsC,KAAK,GAAG;YACvD,IAAI;YACJ,GAAG,EAAE,cAAc;SACpB,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;IAEF,wBAAwB;IACxB,6BAA6B,CAAC,OAAO,CAAC,eAAe,EAAE,IAAI,CAAC,CAAA;IAE5D,oCAAoC;IACpC,6BAA6B,CAAC,OAAO,CAAC,2BAA2B,EAAE,IAAI,CAAC,CAAA;AAC1E,CAAC;AAED,6CAAmD;AAA1C,uGAAA,QAAQ,OAAA;AAAE,wGAAA,SAAS,OAAA;AAC5B,2CAAsD;AAA7C,+GAAA,oBAAoB,OAAA"} \ No newline at end of file +{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/packages/openapi-to-graphql/lib/oas_3_tools.d.ts b/packages/openapi-to-graphql/lib/oas_3_tools.d.ts index b01847f5..09d90216 100644 --- a/packages/openapi-to-graphql/lib/oas_3_tools.d.ts +++ b/packages/openapi-to-graphql/lib/oas_3_tools.d.ts @@ -7,6 +7,7 @@ import { Oas3, ServerObject, ParameterObject, SchemaObject, OperationObject, Res import { PreprocessingData, ProcessedSecurityScheme } from './types/preprocessing_data'; import { InternalOptions } from './types/options'; export declare type SchemaNames = { + fromExtension?: string; fromRef?: string; fromSchema?: string; fromPath?: string; @@ -38,6 +39,11 @@ export declare enum HTTP_METHODS { 'head' = "head" } export declare const SUCCESS_STATUS_RX: RegExp; +export declare enum OAS_GRAPHQL_EXTENSIONS { + TypeName = "x-graphql-type-name", + FieldName = "x-graphql-field-name", + EnumMapping = "x-graphql-enum-mapping" +} /** * Given an HTTP method, convert it to the HTTP_METHODS enum */ @@ -70,7 +76,7 @@ export declare function countOperationsWithPayload(oas: Oas3): number; /** * Resolves the given reference in the given object. */ -export declare function resolveRef(ref: string, oas: Oas3): any; +export declare function resolveRef(ref: string, oas: Oas3): T; /** * Returns the base URL to use for the given operation. */ diff --git a/packages/openapi-to-graphql/lib/oas_3_tools.js b/packages/openapi-to-graphql/lib/oas_3_tools.js index 38ef6528..618a89ff 100644 --- a/packages/openapi-to-graphql/lib/oas_3_tools.js +++ b/packages/openapi-to-graphql/lib/oas_3_tools.js @@ -4,7 +4,7 @@ // This file is licensed under the MIT License. // License text available at https://opensource.org/licenses/MIT Object.defineProperty(exports, "__esModule", { value: true }); -exports.generateOperationId = exports.uncapitalize = exports.capitalize = exports.formatOperationString = exports.isHttpMethod = exports.trim = exports.storeSaneName = exports.sanitize = exports.CaseStyle = exports.getSecurityRequirements = exports.getSecuritySchemes = exports.getServers = exports.getParameters = exports.getLinks = exports.getResponseStatusCode = exports.getResponseSchemaAndNames = exports.getResponseObject = exports.getRequestSchemaAndNames = exports.getRequestBodyObject = exports.inferResourceNameFromPath = exports.getSchemaTargetGraphQLType = exports.desanitizeObjectKeys = exports.sanitizeObjectKeys = exports.getBaseUrl = exports.resolveRef = exports.countOperationsWithPayload = exports.countOperationsSubscription = exports.countOperationsMutation = exports.countOperationsQuery = exports.countOperations = exports.getValidOAS3 = exports.methodToHttpMethod = exports.SUCCESS_STATUS_RX = exports.HTTP_METHODS = void 0; +exports.generateOperationId = exports.uncapitalize = exports.capitalize = exports.formatOperationString = exports.isHttpMethod = exports.trim = exports.storeSaneName = exports.sanitize = exports.CaseStyle = exports.getSecurityRequirements = exports.getSecuritySchemes = exports.getServers = exports.getParameters = exports.getLinks = exports.getResponseStatusCode = exports.getResponseSchemaAndNames = exports.getResponseObject = exports.getRequestSchemaAndNames = exports.getRequestBodyObject = exports.inferResourceNameFromPath = exports.getSchemaTargetGraphQLType = exports.desanitizeObjectKeys = exports.sanitizeObjectKeys = exports.getBaseUrl = exports.resolveRef = exports.countOperationsWithPayload = exports.countOperationsSubscription = exports.countOperationsMutation = exports.countOperationsQuery = exports.countOperations = exports.getValidOAS3 = exports.methodToHttpMethod = exports.OAS_GRAPHQL_EXTENSIONS = exports.SUCCESS_STATUS_RX = exports.HTTP_METHODS = void 0; // Imports: const Swagger2OpenAPI = require("swagger2openapi"); const OASValidator = require("oas-validator"); @@ -27,6 +27,12 @@ var HTTP_METHODS; HTTP_METHODS["head"] = "head"; })(HTTP_METHODS = exports.HTTP_METHODS || (exports.HTTP_METHODS = {})); exports.SUCCESS_STATUS_RX = /2[0-9]{2}|2XX/; +var OAS_GRAPHQL_EXTENSIONS; +(function (OAS_GRAPHQL_EXTENSIONS) { + OAS_GRAPHQL_EXTENSIONS["TypeName"] = "x-graphql-type-name"; + OAS_GRAPHQL_EXTENSIONS["FieldName"] = "x-graphql-field-name"; + OAS_GRAPHQL_EXTENSIONS["EnumMapping"] = "x-graphql-enum-mapping"; +})(OAS_GRAPHQL_EXTENSIONS = exports.OAS_GRAPHQL_EXTENSIONS || (exports.OAS_GRAPHQL_EXTENSIONS = {})); /** * Given an HTTP method, convert it to the HTTP_METHODS enum */ @@ -446,14 +452,14 @@ exports.getRequestBodyObject = getRequestBodyObject; * request schema is required for the operation. */ function getRequestSchemaAndNames(path, method, operation, oas) { - var _a, _b, _c; + var _a, _b; const { payloadContentType, requestBodyObject } = getRequestBodyObject(operation, oas); let payloadSchema; let payloadSchemaNames; let fromRef; const payloadSchemaOrRef = (_b = (_a = requestBodyObject === null || requestBodyObject === void 0 ? void 0 : requestBodyObject.content) === null || _a === void 0 ? void 0 : _a[payloadContentType]) === null || _b === void 0 ? void 0 : _b.schema; // Resolve payload schema reference if applicable - if (typeof ((_c = payloadSchemaOrRef) === null || _c === void 0 ? void 0 : _c.$ref) === 'string') { + if (payloadSchemaOrRef && '$ref' in payloadSchemaOrRef) { fromRef = payloadSchemaOrRef.$ref.split('/').pop(); payloadSchema = resolveRef(payloadSchemaOrRef.$ref, oas); } @@ -464,6 +470,7 @@ function getRequestSchemaAndNames(path, method, operation, oas) { const payloadRequired = typeof (requestBodyObject === null || requestBodyObject === void 0 ? void 0 : requestBodyObject.required) === 'boolean' ? requestBodyObject === null || requestBodyObject === void 0 ? void 0 : requestBodyObject.required : false; payloadSchemaNames = { + fromExtension: payloadSchema === null || payloadSchema === void 0 ? void 0 : payloadSchema[OAS_GRAPHQL_EXTENSIONS.TypeName], fromRef, fromSchema: payloadSchema === null || payloadSchema === void 0 ? void 0 : payloadSchema.title, fromPath: inferResourceNameFromPath(path) @@ -541,7 +548,7 @@ exports.getResponseObject = getResponseObject; * (if available). */ function getResponseSchemaAndNames(path, method, operation, oas, data, options) { - var _a, _b, _c; + var _a, _b; const statusCode = getResponseStatusCode(path, method, operation, oas, data); if (!statusCode) { return {}; @@ -565,7 +572,7 @@ function getResponseSchemaAndNames(path, method, operation, oas, data, options) let fromRef; const responseSchemaOrRef = (_b = (_a = responseObject === null || responseObject === void 0 ? void 0 : responseObject.content) === null || _a === void 0 ? void 0 : _a[responseContentType]) === null || _b === void 0 ? void 0 : _b.schema; // Resolve response schema reference if applicable - if (typeof ((_c = responseSchemaOrRef) === null || _c === void 0 ? void 0 : _c.$ref) === 'string') { + if (responseSchemaOrRef && '$ref' in responseSchemaOrRef) { fromRef = responseSchemaOrRef.$ref.split('/').pop(); responseSchema = resolveRef(responseSchemaOrRef.$ref, oas); } @@ -573,6 +580,7 @@ function getResponseSchemaAndNames(path, method, operation, oas, data, options) responseSchema = responseSchemaOrRef; } responseSchemaNames = { + fromExtension: responseSchema === null || responseSchema === void 0 ? void 0 : responseSchema[OAS_GRAPHQL_EXTENSIONS.TypeName], fromRef, fromSchema: responseSchema === null || responseSchema === void 0 ? void 0 : responseSchema.title, fromPath: inferResourceNameFromPath(path) diff --git a/packages/openapi-to-graphql/lib/oas_3_tools.js.map b/packages/openapi-to-graphql/lib/oas_3_tools.js.map index 149ad9f7..36b8c145 100644 --- a/packages/openapi-to-graphql/lib/oas_3_tools.js.map +++ b/packages/openapi-to-graphql/lib/oas_3_tools.js.map @@ -1 +1 @@ -{"version":3,"file":"oas_3_tools.js","sourceRoot":"","sources":["../src/oas_3_tools.ts"],"names":[],"mappings":";AAAA,iDAAiD;AACjD,kCAAkC;AAClC,+CAA+C;AAC/C,gEAAgE;;;AAkChE,WAAW;AACX,mDAAkD;AAClD,8CAA6C;AAC7C,iCAAyB;AACzB,mCAAwD;AACxD,oCAAmC;AACnC,uCAAsC;AA8BtC,MAAM,OAAO,GAAG,eAAK,CAAC,MAAM,CAAC,CAAA;AAC7B,MAAM,gBAAgB,GAAG,eAAK,CAAC,eAAe,CAAC,CAAA;AAE/C,MAAM,cAAc,GAAG,eAAK,CAAC,aAAa,CAAC,CAAA;AAE3C,gBAAgB;AAChB,IAAY,YAQX;AARD,WAAY,YAAY;IACtB,2BAAa,CAAA;IACb,2BAAa,CAAA;IACb,6BAAe,CAAA;IACf,+BAAiB,CAAA;IACjB,iCAAmB,CAAA;IACnB,mCAAqB,CAAA;IACrB,6BAAe,CAAA;AACjB,CAAC,EARW,YAAY,GAAZ,oBAAY,KAAZ,oBAAY,QAQvB;AAEY,QAAA,iBAAiB,GAAG,eAAe,CAAA;AAEhD;;GAEG;AACH,SAAgB,kBAAkB,CAAC,MAAc;IAC/C,QAAQ,MAAM,CAAC,WAAW,EAAE,EAAE;QAC5B,KAAK,KAAK;YACR,OAAO,YAAY,CAAC,GAAG,CAAA;QAEzB,KAAK,KAAK;YACR,OAAO,YAAY,CAAC,GAAG,CAAA;QAEzB,KAAK,MAAM;YACT,OAAO,YAAY,CAAC,IAAI,CAAA;QAE1B,KAAK,OAAO;YACV,OAAO,YAAY,CAAC,KAAK,CAAA;QAE3B,KAAK,QAAQ;YACX,OAAO,YAAY,CAAC,MAAM,CAAA;QAE5B,KAAK,SAAS;YACZ,OAAO,YAAY,CAAC,OAAO,CAAA;QAE7B,KAAK,MAAM;YACT,OAAO,YAAY,CAAC,IAAI,CAAA;QAE1B;YACE,MAAM,IAAI,KAAK,CAAC,wBAAwB,MAAM,GAAG,CAAC,CAAA;KACrD;AACH,CAAC;AA1BD,gDA0BC;AAED;;;GAGG;AACH,SAAgB,YAAY,CAC1B,IAAiB,EACjB,mBAA2B,EAC3B,sBAA8B;IAE9B,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACrC,kBAAkB;QAClB,IACE,OAAQ,IAAa,CAAC,OAAO,KAAK,QAAQ;YACzC,IAAa,CAAC,OAAO,KAAK,KAAK,EAChC;YACA,gBAAgB,CACd,mEAAmE,CACpE,CAAA;YAED,eAAe,CAAC,UAAU,CAAC,IAAI,EAAE,sBAAsB,CAAC;iBACrD,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;iBAC3C,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE,CACf,MAAM,CACJ,8BACG,IAAa,CAAC,IAAI,CAAC,KACtB,+BAA+B,KAAK,CAAC,OAAO,EAAE,CAC/C,CACF,CAAA;YAEH,iBAAiB;SAClB;aAAM,IACL,OAAQ,IAAa,CAAC,OAAO,KAAK,QAAQ;YAC1C,IAAI,CAAC,IAAI,CAAE,IAAa,CAAC,OAAO,CAAC,EACjC;YACA,gBAAgB,CAAC,uDAAuD,CAAC,CAAA;YAEzE,YAAY,CAAC,QAAQ,CAAC,IAAI,EAAE,mBAAmB,CAAC;iBAC7C,IAAI,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,IAAY,CAAC,CAAC;iBACjC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE,CACf,MAAM,CACJ,6CACG,IAAa,CAAC,IAAI,CAAC,KACtB,MAAM,KAAK,CAAC,OAAO,EAAE,CACtB,CACF,CAAA;SACJ;aAAM;YACL,MAAM,CAAC,gCAAgC,CAAC,CAAA;SACzC;IACH,CAAC,CAAC,CAAA;AACJ,CAAC;AA7CD,oCA6CC;AAED;;GAEG;AACH,SAAgB,eAAe,CAAC,GAAS;IACvC,IAAI,MAAM,GAAG,CAAC,CAAA;IACd,KAAK,IAAI,IAAI,IAAI,GAAG,CAAC,KAAK,EAAE;QAC1B,KAAK,IAAI,MAAM,IAAI,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE;YAClC,IAAI,YAAY,CAAC,MAAM,CAAC,EAAE;gBACxB,MAAM,EAAE,CAAA;gBACR,IAAI,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,SAAS,EAAE;oBACrC,KAAK,IAAI,MAAM,IAAI,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,SAAS,EAAE;wBACpD,KAAK,IAAI,MAAM,IAAI,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE;4BAC5D,MAAM,EAAE,CAAA;yBACT;qBACF;iBACF;aACF;SACF;KACF;IAED,OAAO,MAAM,CAAA;AACf,CAAC;AAlBD,0CAkBC;AAED;;GAEG;AACH,SAAgB,oBAAoB,CAAC,GAAS;IAC5C,IAAI,MAAM,GAAG,CAAC,CAAA;IACd,KAAK,IAAI,IAAI,IAAI,GAAG,CAAC,KAAK,EAAE;QAC1B,KAAK,IAAI,MAAM,IAAI,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE;YAClC,IAAI,YAAY,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC,WAAW,EAAE,KAAK,YAAY,CAAC,GAAG,EAAE;gBACrE,MAAM,EAAE,CAAA;aACT;SACF;KACF;IACD,OAAO,MAAM,CAAA;AACf,CAAC;AAVD,oDAUC;AAED;;GAEG;AACH,SAAgB,uBAAuB,CAAC,GAAS;IAC/C,IAAI,MAAM,GAAG,CAAC,CAAA;IACd,KAAK,IAAI,IAAI,IAAI,GAAG,CAAC,KAAK,EAAE;QAC1B,KAAK,IAAI,MAAM,IAAI,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE;YAClC,IAAI,YAAY,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC,WAAW,EAAE,KAAK,YAAY,CAAC,GAAG,EAAE;gBACrE,MAAM,EAAE,CAAA;aACT;SACF;KACF;IACD,OAAO,MAAM,CAAA;AACf,CAAC;AAVD,0DAUC;AAED;;GAEG;AACH,SAAgB,2BAA2B,CAAC,GAAS;IACnD,IAAI,MAAM,GAAG,CAAC,CAAA;IACd,KAAK,IAAI,IAAI,IAAI,GAAG,CAAC,KAAK,EAAE;QAC1B,KAAK,IAAI,MAAM,IAAI,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE;YAClC,IACE,YAAY,CAAC,MAAM,CAAC;gBACpB,MAAM,CAAC,WAAW,EAAE,KAAK,YAAY,CAAC,GAAG;gBACzC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,SAAS,EACjC;gBACA,KAAK,IAAI,MAAM,IAAI,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,SAAS,EAAE;oBACpD,KAAK,IAAI,MAAM,IAAI,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE;wBAC5D,MAAM,EAAE,CAAA;qBACT;iBACF;aACF;SACF;KACF;IACD,OAAO,MAAM,CAAA;AACf,CAAC;AAlBD,kEAkBC;AAED;;GAEG;AACH,SAAgB,0BAA0B,CAAC,GAAS;IAClD,IAAI,MAAM,GAAG,CAAC,CAAA;IACd,KAAK,IAAI,IAAI,IAAI,GAAG,CAAC,KAAK,EAAE;QAC1B,KAAK,IAAI,MAAM,IAAI,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE;YAClC,IACE,YAAY,CAAC,MAAM,CAAC;gBACpB,OAAO,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,WAAW,KAAK,QAAQ,EACvD;gBACA,MAAM,EAAE,CAAA;aACT;SACF;KACF;IACD,OAAO,MAAM,CAAA;AACf,CAAC;AAbD,gEAaC;AAED;;GAEG;AACH,SAAgB,UAAU,CAAC,GAAW,EAAE,GAAS;IAC/C,OAAO,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,CAAA;AAC1C,CAAC;AAFD,gCAEC;AAED;;GAEG;AACH,SAAgB,UAAU,CAAC,SAAoB;IAC7C,qBAAqB;IACrB,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,SAAS,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE;QACvE,MAAM,IAAI,KAAK,CACb,qCAAqC,SAAS,CAAC,eAAe,GAAG,CAClE,CAAA;KACF;IAED,0BAA0B;IAC1B,IAAI,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,SAAS,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE;QACpE,MAAM,GAAG,GAAG,QAAQ,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAA;QAE1C,IAAI,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,SAAS,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE;YACpE,OAAO,CAAC,4CAA4C,GAAG,GAAG,CAAC,CAAA;SAC5D;QAED,OAAO,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAA;KAC9B;IAED,MAAM,GAAG,GAAG,SAAS,CAAC,GAAG,CAAA;IAEzB,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,GAAG,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE;QACxD,MAAM,GAAG,GAAG,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAA;QAEpC,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,GAAG,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE;YACxD,OAAO,CAAC,4CAA4C,GAAG,GAAG,CAAC,CAAA;SAC5D;QAED,OAAO,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAA;KAC9B;IAED,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAA;AACjD,CAAC;AAhCD,gCAgCC;AAED;;GAEG;AACH,SAAS,QAAQ,CAAC,MAAoB;IACpC,IAAI,GAAG,GAAG,MAAM,CAAC,GAAG,CAAA;IAEpB,gDAAgD;IAChD,IACE,OAAO,MAAM,CAAC,SAAS,KAAK,QAAQ;QACpC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,MAAM,GAAG,CAAC,EACxC;QACA,KAAK,IAAI,WAAW,IAAI,MAAM,CAAC,SAAS,EAAE;YACxC,gDAAgD;YAChD,GAAG,GAAG,GAAG,CAAC,OAAO,CACf,IAAI,WAAW,GAAG,EAClB,MAAM,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,OAAO,CAAC,QAAQ,EAAE,CACjD,CAAA;SACF;KACF;IAED,OAAO,GAAG,CAAA;AACZ,CAAC;AAED;;;GAGG;AACH,SAAgB,kBAAkB,CAChC,GAAQ,EAAE,gDAAgD;AAC1D,YAAuB,SAAS,CAAC,SAAS;IAE1C,MAAM,SAAS,GAAG,CAAC,GAAQ,EAAO,EAAE;QAClC,2BAA2B;QAC3B,IAAI,GAAG,KAAK,IAAI,IAAI,OAAO,GAAG,KAAK,WAAW,EAAE;YAC9C,OAAO,IAAI,CAAA;YAEX,cAAc;SACf;aAAM,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;YAC7B,OAAO,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,CAAA;YAEzB,eAAe;SAChB;aAAM,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE;YAClC,MAAM,GAAG,GAAW,EAAE,CAAA;YAEtB,KAAK,MAAM,GAAG,IAAI,GAAG,EAAE;gBACrB,MAAM,OAAO,GAAG,QAAQ,CAAC,GAAG,EAAE,SAAS,CAAC,CAAA;gBAExC,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE;oBAClD,GAAG,CAAC,OAAO,CAAC,GAAG,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAA;iBACnC;aACF;YAED,OAAO,GAAG,CAAA;YAEV,eAAe;SAChB;aAAM;YACL,OAAO,GAAG,CAAA;SACX;IACH,CAAC,CAAA;IAED,OAAO,SAAS,CAAC,GAAG,CAAC,CAAA;AACvB,CAAC;AAlCD,gDAkCC;AAED;;;GAGG;AACH,SAAgB,oBAAoB,CAClC,GAAwB,EACxB,UAAkB,EAAE;IAEpB,MAAM,WAAW,GAAG,CAAC,GAAG,EAAE,EAAE;QAC1B,IAAI,GAAG,KAAK,IAAI,EAAE;YAChB,OAAO,IAAI,CAAA;SACZ;aAAM,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;YAC7B,OAAO,GAAG,CAAC,GAAG,CAAC,WAAW,CAAC,CAAA;SAC5B;aAAM,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE;YAClC,MAAM,GAAG,GAAG,EAAE,CAAA;YACd,KAAK,IAAI,GAAG,IAAI,GAAG,EAAE;gBACnB,IAAI,GAAG,IAAI,OAAO,EAAE;oBAClB,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAAA;oBAC3B,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE;wBAClD,GAAG,CAAC,MAAM,CAAC,GAAG,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAA;qBACpC;iBACF;qBAAM;oBACL,GAAG,CAAC,GAAG,CAAC,GAAG,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAA;iBACjC;aACF;YACD,OAAO,GAAG,CAAA;SACX;aAAM;YACL,OAAO,GAAG,CAAA;SACX;IACH,CAAC,CAAA;IACD,OAAO,WAAW,CAAC,GAAG,CAAC,CAAA;AACzB,CAAC;AA3BD,oDA2BC;AAED;;;;GAIG;AACH,SAAgB,0BAA0B,CACxC,MAAoB,EACpB,IAAiD;IAEjD,eAAe;IACf,IAAI,MAAM,CAAC,IAAI,KAAK,QAAQ,IAAI,OAAO,MAAM,CAAC,UAAU,KAAK,QAAQ,EAAE;QACrE,oEAAoE;QACpE,uBAAuB;QACvB,IAAI,OAAO,MAAM,CAAC,oBAAoB,KAAK,QAAQ,EAAE;YACnD,OAAO,MAAM,CAAA;SACd;aAAM;YACL,OAAO,QAAQ,CAAA;SAChB;KACF;IAED,cAAc;IACd,IAAI,MAAM,CAAC,IAAI,KAAK,OAAO,IAAI,OAAO,IAAI,MAAM,EAAE;QAChD,OAAO,MAAM,CAAA;KACd;IAED,aAAa;IACb,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE;QAC9B,OAAO,MAAM,CAAA;KACd;IAED,0BAA0B;IAC1B,IAAI,OAAO,MAAM,CAAC,IAAI,KAAK,QAAQ,EAAE;QACnC,iDAAiD;QACjD,IAAI,OAAO,MAAM,CAAC,MAAM,KAAK,QAAQ,EAAE;YACrC;;;eAGG;YACH,IAAI,MAAM,CAAC,IAAI,KAAK,SAAS,IAAI,MAAM,CAAC,MAAM,KAAK,OAAO,EAAE;gBAC1D,OAAO,QAAQ,CAAA;gBAEf,WAAW;aACZ;iBAAM,IACL,MAAM,CAAC,IAAI,KAAK,QAAQ;gBACxB,CAAC,MAAM,CAAC,MAAM,KAAK,MAAM;oBACvB,mBAAmB;oBACnB,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC;wBACpC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EACpD;gBACA,OAAO,IAAI,CAAA;aACZ;SACF;QAED,OAAO,MAAM,CAAC,IAAI,CAAA;KACnB;IAED,OAAO,IAAI,CAAA;AACb,CAAC;AApDD,gEAoDC;AAED;;;;GAIG;AACH,SAAS,eAAe,CACtB,KAAe;IAKf,IAAI,KAAK,CAAC,MAAM,IAAI,CAAC,EAAE;QACrB,OAAO;YACL,QAAQ,EAAE,GAAG;YACb,YAAY,EAAE,KAAK;SACpB,CAAA;KACF;IAED,IAAI,kBAAkB,GAAa,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;IAEtD,KAAK,IAAI,IAAI,IAAI,KAAK,EAAE;QACtB,IAAI,kBAAkB,CAAC,MAAM,KAAK,CAAC,EAAE;YACnC,MAAK;SACN;QACD,MAAM,cAAc,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;QACtC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,cAAc,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YAC9C,IAAI,CAAC,GAAG,kBAAkB,CAAC,MAAM,EAAE;gBACjC,IAAI,cAAc,CAAC,CAAC,CAAC,KAAK,kBAAkB,CAAC,CAAC,CAAC,EAAE;oBAC/C,kBAAkB,GAAG,kBAAkB,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;iBACpD;aACF;iBAAM;gBACL,MAAK;aACN;SACF;KACF;IAED,MAAM,YAAY,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CACtC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAC3D,CAAA;IAED,IAAI,QAAQ,GACV,kBAAkB,CAAC,MAAM,KAAK,CAAC;QAC/B,CAAC,kBAAkB,CAAC,MAAM,KAAK,CAAC,IAAI,kBAAkB,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC;QAC/D,CAAC,CAAC,GAAG;QACL,CAAC,CAAC,kBAAkB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;IAElC,OAAO;QACL,QAAQ;QACR,YAAY;KACb,CAAA;AACH,CAAC;AAED,SAAS,SAAS,CAAC,IAAI;IACrB,OAAO,yBAAyB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;AAC7C,CAAC;AAED,SAAS,eAAe,CAAC,IAAI,EAAE,QAAQ;IACrC,OAAO,KAAK,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,KAAK,QAAQ,CAAA;AACvD,CAAC;AAED;;;;GAIG;AACH,SAAgB,yBAAyB,CAAC,IAAY;IACpD,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;IAC7B,IAAI,gBAAgB,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE;QACpD,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;YACpB,IACE,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC;gBACZ,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,eAAe,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAChE;gBACA,OAAO,IAAI,GAAG,UAAU,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAA;aACnD;iBAAM;gBACL,OAAO,IAAI,GAAG,UAAU,CAAC,IAAI,CAAC,CAAA;aAC/B;SACF;aAAM;YACL,OAAO,IAAI,CAAA;SACZ;IACH,CAAC,EAAE,EAAE,CAAC,CAAA;IAEN,OAAO,gBAAgB,CAAA;AACzB,CAAC;AAlBD,8DAkBC;AAED;;GAEG;AACH,SAAgB,oBAAoB,CAClC,SAA0B,EAC1B,GAAS;;IAET,IAAI,kBAA0B,CAAA;IAC9B,IAAI,iBAAoC,CAAA;IAExC,MAAM,sBAAsB,GAAG,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,WAAW,CAAA;IACrD,0EAA0E;IAC1E,IAAI,cAAQ,sBAA0C,0CAAE,IAAI,CAAA,KAAK,QAAQ,EAAE;QACzE,iBAAiB,GAAG,UAAU,CAC3B,sBAA0C,CAAC,IAAI,EAChD,GAAG,CACiB,CAAA;KACvB;SAAM;QACL,iBAAiB,GAAG,sBAA2C,CAAA;KAChE;IAED,MAAM,OAAO,GAAqB,iBAAiB,aAAjB,iBAAiB,uBAAjB,iBAAiB,CAAE,OAAO,CAAA;IAC5D,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,KAAK,IAAI,EAAE;QACnD,+BAA+B;QAC/B,IAAI,kBAAkB,IAAI,OAAO,EAAE;YACjC,kBAAkB,GAAG,kBAAkB,CAAA;SACxC;aAAM,IAAI,mCAAmC,IAAI,OAAO,EAAE;YACzD,kBAAkB,GAAG,mCAAmC,CAAA;SACzD;aAAM;YACL,mCAAmC;YACnC,MAAM,iBAAiB,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAA;YACjD,kBAAkB,GAAG,iBAAiB,CAAA;SACvC;KACF;IAED,OAAO;QACL,kBAAkB;QAClB,iBAAiB;KAClB,CAAA;AACH,CAAC;AApCD,oDAoCC;AAED;;;;GAIG;AACH,SAAgB,wBAAwB,CACtC,IAAY,EACZ,MAAoB,EACpB,SAA0B,EAC1B,GAAS;;IAET,MAAM,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,GAAG,oBAAoB,CACpE,SAAS,EACT,GAAG,CACJ,CAAA;IAED,IAAI,aAA2B,CAAA;IAC/B,IAAI,kBAA+B,CAAA;IACnC,IAAI,OAAe,CAAA;IAEnB,MAAM,kBAAkB,eACtB,iBAAiB,aAAjB,iBAAiB,uBAAjB,iBAAiB,CAAE,OAAO,0CAAG,kBAAkB,2CAAG,MAAM,CAAA;IAC1D,iDAAiD;IACjD,IAAI,cAAQ,kBAAsC,0CAAE,IAAI,CAAA,KAAK,QAAQ,EAAE;QACrE,OAAO,GAAG,kBAAkB,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAA;QAClD,aAAa,GAAG,UAAU,CAAC,kBAAkB,CAAC,IAAI,EAAE,GAAG,CAAiB,CAAA;KACzE;SAAM;QACL,aAAa,GAAG,kBAAkC,CAAA;KACnD;IAED,yCAAyC;IACzC,MAAM,eAAe,GACnB,QAAO,iBAAiB,aAAjB,iBAAiB,uBAAjB,iBAAiB,CAAE,QAAQ,CAAA,KAAK,SAAS;QAC9C,CAAC,CAAC,iBAAiB,aAAjB,iBAAiB,uBAAjB,iBAAiB,CAAE,QAAQ,CAC7B,CAAC,CAAC,KAAK,CAAA;IAEX,kBAAkB,GAAG;QACnB,OAAO;QACP,UAAU,EAAE,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,KAAK;QAChC,QAAQ,EAAE,yBAAyB,CAAC,IAAI,CAAC;KAC1C,CAAA;IAED;;;;;;OAMG;IACH,IACE,OAAO,kBAAkB,KAAK,QAAQ;QACtC,kBAAkB,KAAK,kBAAkB;QACzC,kBAAkB,KAAK,mCAAmC,EAC1D;QACA,MAAM,mBAAmB,GAAG,YAAY,CACtC,kBAAkB,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE;YAClD,OAAO,IAAI,GAAG,UAAU,CAAC,IAAI,CAAC,CAAA;QAChC,CAAC,CAAC,CACH,CAAA;QAED,kBAAkB,GAAG;YACnB,QAAQ,EAAE,mBAAmB;SAC9B,CAAA;QAED,IAAI,WAAW,GAAG,8CAA8C,kBAAkB,GAAG,CAAA;QAErF,IAAI,QAAO,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,WAAW,CAAA,KAAK,QAAQ,EAAE;YAClD,WAAW,IAAI,wCAAwC,aAAa,CAAC,WAAW,GAAG,CAAA;SACpF;QAED,aAAa,GAAG;YACd,WAAW;YACX,IAAI,EAAE,QAAQ;SACf,CAAA;KACF;IAED,OAAO;QACL,kBAAkB;QAClB,aAAa;QACb,kBAAkB;QAClB,eAAe;KAChB,CAAA;AACH,CAAC;AA7ED,4DA6EC;AAED;;;GAGG;AACH,SAAgB,iBAAiB,CAC/B,SAA0B,EAC1B,UAAkB,EAClB,GAAS;;IAET,IAAI,mBAAmB,CAAA;IACvB,IAAI,cAAc,CAAA;IAElB,MAAM,mBAAmB,SAAG,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,SAAS,0CAAG,UAAU,CAAC,CAAA;IAC9D,uEAAuE;IACvE,IAAI,cAAQ,mBAAuC,0CAAE,IAAI,CAAA,KAAK,QAAQ,EAAE;QACtE,cAAc,GAAG,UAAU,CACxB,mBAAuC,CAAC,IAAI,EAC7C,GAAG,CACc,CAAA;KACpB;SAAM;QACL,cAAc,GAAG,mBAAqC,CAAA;KACvD;IAED,MAAM,OAAO,GAAqB,cAAc,aAAd,cAAc,uBAAd,cAAc,CAAE,OAAO,CAAA;IACzD,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,KAAK,IAAI,EAAE;QACnD,+BAA+B;QAC/B,IAAI,kBAAkB,IAAI,OAAO,EAAE;YACjC,mBAAmB,GAAG,kBAAkB,CAAA;SACzC;aAAM;YACL,mCAAmC;YACnC,MAAM,iBAAiB,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAA;YACjD,mBAAmB,GAAG,iBAAiB,CAAA;SACxC;KACF;IAED,OAAO;QACL,mBAAmB;QACnB,cAAc;KACf,CAAA;AACH,CAAC;AAnCD,8CAmCC;AAED;;;;GAIG;AACH,SAAgB,yBAAyB,CACvC,IAAY,EACZ,MAAoB,EACpB,SAA0B,EAC1B,GAAS,EACT,IAAiD,EACjD,OAAkD;;IAElD,MAAM,UAAU,GAAG,qBAAqB,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,GAAG,EAAE,IAAI,CAAC,CAAA;IAC5E,IAAI,CAAC,UAAU,EAAE;QACf,OAAO,EAAE,CAAA;KACV;IAED,IAAI,EAAE,mBAAmB,EAAE,cAAc,EAAE,GAAG,iBAAiB,CAC7D,SAAS,EACT,UAAU,EACV,GAAG,CACJ,CAAA;IAED,mCAAmC;IACnC,IAAI,mBAAmB,KAAK,SAAS,IAAI,OAAO,CAAC,kBAAkB,EAAE;QACnE,OAAO;YACL,mBAAmB,EAAE;gBACnB,QAAQ,EAAE,yBAAyB,CAAC,IAAI,CAAC;aAC1C;YACD,mBAAmB,EAAE,kBAAkB;YACvC,cAAc,EAAE;gBACd,WAAW,EACT,2DAA2D;gBAC7D,IAAI,EAAE,QAAQ;aACf;SACF,CAAA;KACF;IAED,IAAI,cAA4B,CAAA;IAChC,IAAI,mBAAgC,CAAA;IACpC,IAAI,OAAe,CAAA;IAEnB,MAAM,mBAAmB,eACvB,cAAc,aAAd,cAAc,uBAAd,cAAc,CAAE,OAAO,0CAAG,mBAAmB,2CAAG,MAAM,CAAA;IACxD,kDAAkD;IAClD,IAAI,cAAQ,mBAAuC,0CAAE,IAAI,CAAA,KAAK,QAAQ,EAAE;QACtE,OAAO,GAAG,mBAAmB,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAA;QACnD,cAAc,GAAG,UAAU,CAAC,mBAAmB,CAAC,IAAI,EAAE,GAAG,CAAiB,CAAA;KAC3E;SAAM;QACL,cAAc,GAAG,mBAAmC,CAAA;KACrD;IAED,mBAAmB,GAAG;QACpB,OAAO;QACP,UAAU,EAAE,cAAc,aAAd,cAAc,uBAAd,cAAc,CAAE,KAAK;QACjC,QAAQ,EAAE,yBAAyB,CAAC,IAAI,CAAC;KAC1C,CAAA;IAED;;;OAGG;IACH,IACE,OAAO,mBAAmB,KAAK,QAAQ;QACvC,mBAAmB,KAAK,kBAAkB,EAC1C;QACA,IAAI,WAAW,GACb,4DAA4D,CAAA;QAE9D,IAAI,QAAO,cAAc,aAAd,cAAc,uBAAd,cAAc,CAAE,WAAW,CAAA,KAAK,QAAQ,EAAE;YACnD,WAAW,IAAI,wCAAwC,cAAc,CAAC,WAAW,GAAG,CAAA;SACrF;QAED,cAAc,GAAG;YACf,WAAW;YACX,IAAI,EAAE,QAAQ;SACf,CAAA;KACF;IAED,OAAO;QACL,mBAAmB;QACnB,cAAc;QACd,mBAAmB;QACnB,UAAU;KACX,CAAA;AACH,CAAC;AAjFD,8DAiFC;AAED;;GAEG;AACH,SAAgB,qBAAqB,CACnC,IAAY,EACZ,MAAc,EACd,SAA0B,EAC1B,GAAS,EACT,IAAiD;IAEjD,IAAI,OAAO,SAAS,CAAC,SAAS,KAAK,QAAQ,IAAI,SAAS,CAAC,SAAS,KAAK,IAAI,EAAE;QAC3E,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAA;QAC9C,MAAM,YAAY,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE;YACzC,OAAO,yBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QACrC,CAAC,CAAC,CAAA;QAEF,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE;YAC7B,OAAO,YAAY,CAAC,CAAC,CAAC,CAAA;SACvB;aAAM,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE;YAClC,+BAA+B;YAC/B,qBAAa,CAAC;gBACZ,cAAc,EAAE,uBAAe,CAAC,kBAAkB;gBAClD,OAAO,EACL,cAAc,qBAAqB,CACjC,MAAM,EACN,IAAI,EACJ,GAAG,CAAC,IAAI,CAAC,KAAK,CACf,IAAI;oBACL,wDAAwD;oBACxD,qDAAqD;gBACvD,kBAAkB,EAChB,yCAAyC;oBACzC,GAAG,YAAY,CAAC,CAAC,CAAC,mBAAmB;gBACvC,IAAI;gBACJ,GAAG,EAAE,cAAc;aACpB,CAAC,CAAA;YAEF,OAAO,YAAY,CAAC,CAAC,CAAC,CAAA;SACvB;KACF;AACH,CAAC;AArCD,sDAqCC;AAED;;GAEG;AACH,SAAgB,QAAQ,CACtB,IAAY,EACZ,MAAoB,EACpB,SAA0B,EAC1B,GAAS,EACT,IAAiD;IAEjD,MAAM,KAAK,GAAG,EAAE,CAAA;IAChB,MAAM,UAAU,GAAG,qBAAqB,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,GAAG,EAAE,IAAI,CAAC,CAAA;IAC5E,IAAI,CAAC,UAAU,EAAE;QACf,OAAO,KAAK,CAAA;KACb;IAED,IAAI,OAAO,SAAS,CAAC,SAAS,KAAK,QAAQ,EAAE;QAC3C,MAAM,SAAS,GAAoB,SAAS,CAAC,SAAS,CAAA;QACtD,IAAI,OAAO,SAAS,CAAC,UAAU,CAAC,KAAK,QAAQ,EAAE;YAC7C,IAAI,QAAQ,GAAqC,SAAS,CAAC,UAAU,CAAC,CAAA;YAEtE,IAAI,OAAQ,QAA4B,CAAC,IAAI,KAAK,QAAQ,EAAE;gBAC1D,QAAQ,GAAG,UAAU,CAClB,QAA4B,CAAC,IAAI,EAClC,GAAG,CACc,CAAA;aACpB;YAED,oDAAoD;YACpD,QAAQ,GAAG,QAA0B,CAAA;YAErC,IAAI,OAAO,QAAQ,CAAC,KAAK,KAAK,QAAQ,EAAE;gBACtC,MAAM,OAAO,GAAgB,QAAQ,CAAC,KAAK,CAAA;gBAC3C,KAAK,IAAI,OAAO,IAAI,OAAO,EAAE;oBAC3B,IAAI,IAAI,GAAiC,OAAO,CAAC,OAAO,CAAC,CAAA;oBAEzD,iCAAiC;oBACjC,IAAI,OAAQ,IAAwB,CAAC,IAAI,KAAK,QAAQ,EAAE;wBACtD,IAAI,GAAG,UAAU,CAAE,IAAwB,CAAC,IAAI,EAAE,GAAG,CAAC,CAAA;qBACvD;yBAAM;wBACL,IAAI,GAAG,IAAkB,CAAA;qBAC1B;oBACD,KAAK,CAAC,OAAO,CAAC,GAAG,IAAI,CAAA;iBACtB;aACF;SACF;KACF;IACD,OAAO,KAAK,CAAA;AACd,CAAC;AA7CD,4BA6CC;AAED;;GAEG;AACH,SAAgB,aAAa,CAC3B,IAAY,EACZ,MAAoB,EACpB,SAA0B,EAC1B,QAAwB,EACxB,GAAS;IAET,IAAI,UAAU,GAAG,EAAE,CAAA;IAEnB,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,EAAE;QACzB,cAAc,CACZ,4CAA4C,MAAM,IAAI,IAAI,IAAI;YAC5D,4BAA4B,CAC/B,CAAA;QACD,OAAO,UAAU,CAAA;KAClB;IAED,kDAAkD;IAClD,MAAM,UAAU,GAAG,QAAQ,CAAC,UAAU,CAAA;IACtC,IAAI,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE;QAC7B,MAAM,kBAAkB,GAAsB,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;YACjE,IAAI,OAAQ,CAAqB,CAAC,IAAI,KAAK,QAAQ,EAAE;gBACnD,2CAA2C;gBAC3C,OAAO,UAAU,CAAE,CAAqB,CAAC,IAAI,EAAE,GAAG,CAAoB,CAAA;aACvE;iBAAM;gBACL,2CAA2C;gBAC3C,OAAO,CAAoB,CAAA;aAC5B;QACH,CAAC,CAAC,CAAA;QACF,UAAU,GAAG,UAAU,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAA;KACnD;IAED,mDAAmD;IACnD,MAAM,kBAAkB,GAAG,SAAS,CAAC,UAAU,CAAA;IAC/C,IAAI,KAAK,CAAC,OAAO,CAAC,kBAAkB,CAAC,EAAE;QACrC,MAAM,mBAAmB,GAAsB,kBAAkB,CAAC,GAAG,CACnE,CAAC,CAAC,EAAE,EAAE;YACJ,IAAI,OAAQ,CAAqB,CAAC,IAAI,KAAK,QAAQ,EAAE;gBACnD,2CAA2C;gBAC3C,OAAO,UAAU,CAAE,CAAqB,CAAC,IAAI,EAAE,GAAG,CAAoB,CAAA;aACvE;iBAAM;gBACL,2CAA2C;gBAC3C,OAAO,CAAoB,CAAA;aAC5B;QACH,CAAC,CACF,CAAA;QACD,UAAU,GAAG,UAAU,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAA;KACpD;IAED,OAAO,UAAU,CAAA;AACnB,CAAC;AAlDD,sCAkDC;AAED;;;;;GAKG;AACH,SAAgB,UAAU,CACxB,SAA0B,EAC1B,QAAwB,EACxB,GAAS;IAET,IAAI,OAAO,GAAG,EAAE,CAAA;IAChB,6BAA6B;IAC7B,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,GAAG,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE;QACxD,OAAO,GAAG,GAAG,CAAC,OAAO,CAAA;KACtB;IAED,8CAA8C;IAC9C,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,QAAQ,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE;QAClE,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAA;KAC3B;IAED,oDAAoD;IACpD,IAAI,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,SAAS,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE;QACpE,OAAO,GAAG,SAAS,CAAC,OAAO,CAAA;KAC5B;IAED,uCAAuC;IACvC,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE;QACxB,IAAI,MAAM,GAAiB;YACzB,GAAG,EAAE,GAAG,CAAC,6BAA6B;SACvC,CAAA;QACD,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;KACrB;IAED,OAAO,OAAO,CAAA;AAChB,CAAC;AA9BD,gCA8BC;AAED;;;GAGG;AACH,SAAgB,kBAAkB,CAChC,GAAS;IAET,gCAAgC;IAChC,MAAM,eAAe,GAAkD,EAAE,CAAA;IACzE,IACE,OAAO,GAAG,CAAC,UAAU,KAAK,QAAQ;QAClC,OAAO,GAAG,CAAC,UAAU,CAAC,eAAe,KAAK,QAAQ,EAClD;QACA,KAAK,IAAI,SAAS,IAAI,GAAG,CAAC,UAAU,CAAC,eAAe,EAAE;YACpD,MAAM,cAAc,GAAG,GAAG,CAAC,UAAU,CAAC,eAAe,CAAC,SAAS,CAAC,CAAA;YAEhE,8CAA8C;YAC9C,IAAI,OAAQ,cAAkC,CAAC,IAAI,KAAK,QAAQ,EAAE;gBAChE,qDAAqD;gBACrD,eAAe,CAAC,SAAS,CAAC,GAAG,UAAU,CACpC,cAAkC,CAAC,IAAI,EACxC,GAAG,CACoB,CAAA;aAC1B;iBAAM;gBACL,0CAA0C;gBAC1C,eAAe,CAAC,SAAS,CAAC,GAAG,cAAsC,CAAA;aACpE;SACF;KACF;IACD,OAAO,eAAe,CAAA;AACxB,CAAC;AA1BD,gDA0BC;AAED;;;GAGG;AACH,SAAgB,uBAAuB,CACrC,SAA0B,EAC1B,eAA2D,EAC3D,GAAS;IAET,MAAM,OAAO,GAAa,EAAE,CAAA;IAE5B,sCAAsC;IACtC,MAAM,cAAc,GAAgC,GAAG,CAAC,QAAQ,CAAA;IAChE,IAAI,cAAc,IAAI,OAAO,cAAc,KAAK,WAAW,EAAE;QAC3D,KAAK,IAAI,MAAM,IAAI,cAAc,EAAE;YACjC,KAAK,IAAI,SAAS,IAAI,MAAM,EAAE;gBAC5B,IACE,eAAe,CAAC,SAAS,CAAC;oBAC1B,OAAO,eAAe,CAAC,SAAS,CAAC,KAAK,QAAQ;oBAC9C,eAAe,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,IAAI,KAAK,QAAQ,EAChD;oBACA,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;iBACxB;aACF;SACF;KACF;IAED,0CAA0C;IAC1C,MAAM,aAAa,GAAgC,SAAS,CAAC,QAAQ,CAAA;IACrE,IAAI,aAAa,IAAI,OAAO,aAAa,KAAK,WAAW,EAAE;QACzD,KAAK,IAAI,MAAM,IAAI,aAAa,EAAE;YAChC,KAAK,IAAI,SAAS,IAAI,MAAM,EAAE;gBAC5B,IACE,eAAe,CAAC,SAAS,CAAC;oBAC1B,OAAO,eAAe,CAAC,SAAS,CAAC,KAAK,QAAQ;oBAC9C,eAAe,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,IAAI,KAAK,QAAQ,EAChD;oBACA,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE;wBAChC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;qBACxB;iBACF;aACF;SACF;KACF;IACD,OAAO,OAAO,CAAA;AAChB,CAAC;AAzCD,0DAyCC;AAED,IAAY,SAKX;AALD,WAAY,SAAS;IACnB,6CAAM,CAAA;IACN,qDAAU,CAAA;IACV,mDAAS,CAAA;IACT,iDAAQ,CAAA,CAAC,uBAAuB;AAClC,CAAC,EALW,SAAS,GAAT,iBAAS,KAAT,iBAAS,QAKpB;AAED;;GAEG;AACH,SAAgB,QAAQ,CAAC,GAAW,EAAE,SAAoB;IACxD;;;OAGG;IACH,IAAI,SAAS,KAAK,SAAS,CAAC,MAAM,EAAE;QAClC,IAAI,SAAS,GAAG,GAAG,CAAC,OAAO,CAAC,iBAAiB,EAAE,EAAE,CAAC,CAAA;QAElD,kEAAkE;QAClE,IAAI,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,SAAS,KAAK,EAAE,EAAE;YAChD,SAAS,GAAG,GAAG,GAAG,SAAS,CAAA;SAC5B;QAED,OAAO,SAAS,CAAA;KACjB;IAED;;OAEG;IACH,MAAM,KAAK,GACT,SAAS,KAAK,SAAS,CAAC,QAAQ;QAC9B,CAAC,CAAC,gBAAgB,CAAC,2BAA2B;QAC9C,CAAC,CAAC,eAAe,CAAA;IACrB,IAAI,SAAS,GAAG,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE;QACrD,IAAI,SAAS,KAAK,SAAS,CAAC,QAAQ,EAAE;YACpC,OAAO,IAAI,GAAG,GAAG,GAAG,IAAI,CAAA;SACzB;aAAM;YACL,OAAO,IAAI,GAAG,UAAU,CAAC,IAAI,CAAC,CAAA;SAC/B;IACH,CAAC,CAAC,CAAA;IAEF,QAAQ,SAAS,EAAE;QACjB,KAAK,SAAS,CAAC,UAAU;YACvB,wDAAwD;YACxD,SAAS,GAAG,UAAU,CAAC,SAAS,CAAC,CAAA;YACjC,MAAK;QAEP,KAAK,SAAS,CAAC,SAAS;YACtB,uDAAuD;YACvD,SAAS,GAAG,YAAY,CAAC,SAAS,CAAC,CAAA;YACnC,MAAK;QAEP,KAAK,SAAS,CAAC,QAAQ;YACrB,SAAS,GAAG,SAAS,CAAC,WAAW,EAAE,CAAA;YACnC,MAAK;KACR;IAED,kEAAkE;IAClE,IAAI,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,SAAS,KAAK,EAAE,EAAE;QAChD,SAAS,GAAG,GAAG,GAAG,SAAS,CAAA;KAC5B;IAED,OAAO,SAAS,CAAA;AAClB,CAAC;AArDD,4BAqDC;AAED;;;GAGG;AACH,SAAgB,aAAa,CAC3B,OAAe,EACf,GAAW,EACX,OAAkC;IAElC,IAAI,OAAO,IAAI,OAAO,IAAI,GAAG,KAAK,OAAO,CAAC,OAAO,CAAC,EAAE;QAClD,6BAA6B;QAC7B,cAAc,CACZ,aAAa,GAAG,UAAU,OAAO,CAAC,OAAO,CAAC,kBAAkB;YAC1D,OAAO,OAAO,0CAA0C,GAAG,IAAI,CAClE,CAAA;KACF;IACD,OAAO,CAAC,OAAO,CAAC,GAAG,GAAG,CAAA;IAEtB,OAAO,OAAO,CAAA;AAChB,CAAC;AAfD,sCAeC;AAED;;GAEG;AACH,SAAgB,IAAI,CAAC,GAAW,EAAE,MAAc;IAC9C,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE;QAC3B,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAA;KAC1B;IAED,IAAI,GAAG,IAAI,GAAG,CAAC,MAAM,GAAG,MAAM,EAAE;QAC9B,GAAG,GAAG,GAAG,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,MAAM,CAAC,KAAK,CAAA;KACvC;IAED,OAAO,GAAG,CAAA;AACZ,CAAC;AAVD,oBAUC;AAED;;;GAGG;AACH,SAAgB,YAAY,CAAC,MAAc;IACzC,OAAO,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,CAAA;AACjE,CAAC;AAFD,oCAEC;AAED;;;;;GAKG;AACH,SAAgB,qBAAqB,CACnC,MAAc,EACd,IAAY,EACZ,KAAc;IAEd,IAAI,KAAK,EAAE;QACT,OAAO,GAAG,KAAK,IAAI,MAAM,CAAC,WAAW,EAAE,IAAI,IAAI,EAAE,CAAA;KAClD;SAAM;QACL,OAAO,GAAG,MAAM,CAAC,WAAW,EAAE,IAAI,IAAI,EAAE,CAAA;KACzC;AACH,CAAC;AAVD,sDAUC;AAED;;GAEG;AACH,SAAgB,UAAU,CAAC,GAAW;IACpC,OAAO,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;AACnD,CAAC;AAFD,gCAEC;AAED;;GAEG;AACH,SAAgB,YAAY,CAAC,GAAW;IACtC,OAAO,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;AACnD,CAAC;AAFD,oCAEC;AAED;;GAEG;AACH,SAAgB,mBAAmB,CACjC,MAAoB,EACpB,IAAY;IAEZ,OAAO,QAAQ,CAAC,GAAG,MAAM,IAAI,IAAI,EAAE,EAAE,SAAS,CAAC,SAAS,CAAC,CAAA;AAC3D,CAAC;AALD,kDAKC"} \ No newline at end of file +{"version":3,"file":"oas_3_tools.js","sourceRoot":"","sources":["../src/oas_3_tools.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/packages/openapi-to-graphql/lib/preprocessor.d.ts b/packages/openapi-to-graphql/lib/preprocessor.d.ts index 120df3de..4c28740f 100644 --- a/packages/openapi-to-graphql/lib/preprocessor.d.ts +++ b/packages/openapi-to-graphql/lib/preprocessor.d.ts @@ -1,4 +1,4 @@ -import { Oas3, LinkObject, SchemaObject } from './types/oas3'; +import { Oas3, LinkObject, ReferenceObject, SchemaObject } from './types/oas3'; import { InternalOptions } from './types/options'; import { DataDefinition } from './types/operation'; import { PreprocessingData } from './types/preprocessing_data'; @@ -12,6 +12,6 @@ export declare function preprocessOas(oass: Oas3[], op * Method to either create a new or reuse an existing, centrally stored data * definition. */ -export declare function createDataDef(names: Oas3Tools.SchemaNames, schema: SchemaObject, isInputObjectType: boolean, data: PreprocessingData, oas: Oas3, links?: { +export declare function createDataDef(names: Oas3Tools.SchemaNames, schema: SchemaObject | ReferenceObject, isInputObjectType: boolean, data: PreprocessingData, oas: Oas3, links?: { [key: string]: LinkObject; }): DataDefinition; diff --git a/packages/openapi-to-graphql/lib/preprocessor.js b/packages/openapi-to-graphql/lib/preprocessor.js index b39904d8..2ab7d577 100644 --- a/packages/openapi-to-graphql/lib/preprocessor.js +++ b/packages/openapi-to-graphql/lib/preprocessor.js @@ -462,19 +462,23 @@ function createDataDef(names, schema, isInputObjectType, data, oas, links) { }; } else { - if ('$ref' in schema) { - schema = Oas3Tools.resolveRef(schema.$ref, oas); - } + let resolvedSchema = '$ref' in schema ? Oas3Tools.resolveRef(schema.$ref, oas) : schema; const saneLinks = {}; if (typeof links === 'object') { Object.keys(links).forEach((linkKey) => { - saneLinks[Oas3Tools.sanitize(linkKey, !data.options.simpleNames + const link = links[linkKey]; + const fromExtension = link[Oas3Tools.OAS_GRAPHQL_EXTENSIONS.FieldName]; + if (fromExtension in saneLinks) { + throw new Error(`Cannot create link with name "${fromExtension}".\nYou provided "${fromExtension}" in ${Oas3Tools.OAS_GRAPHQL_EXTENSIONS.FieldName}, but it conflicts with another link called "${fromExtension}"`); + } + const linkSaneName = Oas3Tools.sanitize(fromExtension || linkKey, !data.options.simpleNames ? Oas3Tools.CaseStyle.camelCase - : Oas3Tools.CaseStyle.simple)] = links[linkKey]; + : Oas3Tools.CaseStyle.simple); + saneLinks[linkSaneName] = link; }); } // Determine the index of possible existing data definition - const index = getSchemaIndex(preferredName, schema, data.defs); + const index = getSchemaIndex(preferredName, resolvedSchema, data.defs); if (index !== -1) { // Found existing data definition and fetch it const existingDataDef = data.defs[index]; @@ -516,18 +520,26 @@ function createDataDef(names, schema, isInputObjectType, data, oas, links) { else { // Else, define a new name, store the def, and return it const name = getSchemaName(names, data.usedTypeNames); - // Store and sanitize the name - const saneName = !data.options.simpleNames - ? Oas3Tools.sanitize(name, Oas3Tools.CaseStyle.PascalCase) - : Oas3Tools.capitalize(Oas3Tools.sanitize(name, Oas3Tools.CaseStyle.simple)); - const saneInputName = Oas3Tools.capitalize(saneName + 'Input'); + let saneInputName; + let saneName; + if (name === names.fromExtension) { + saneName = name; + saneInputName = name; + } + else { + // Store and sanitize the name + saneName = !data.options.simpleNames + ? Oas3Tools.sanitize(name, Oas3Tools.CaseStyle.PascalCase) + : Oas3Tools.capitalize(Oas3Tools.sanitize(name, Oas3Tools.CaseStyle.simple)); + saneInputName = Oas3Tools.capitalize(saneName + 'Input'); + } Oas3Tools.storeSaneName(saneName, name, data.saneMap); /** * TODO: is there a better way of copying the schema object? * * Perhaps, just copy it at the root level (operation schema) */ - const collapsedSchema = resolveAllOf(schema, {}, data, oas); + const collapsedSchema = resolveAllOf(resolvedSchema, {}, data, oas); const targetGraphQLType = Oas3Tools.getSchemaTargetGraphQLType(collapsedSchema, data); const def = { preferredName, @@ -539,7 +551,7 @@ function createDataDef(names, schema, isInputObjectType, data, oas, links) { * schema and name pair. The look up should resolve references but * currently, it does not. */ - schema, + schema: resolvedSchema, required: [], targetGraphQLType, subDefinitions: undefined, @@ -602,12 +614,16 @@ function createDataDef(names, schema, isInputObjectType, data, oas, links) { // Or if it is an object type, create references to all of the field types let itemsSchema = collapsedSchema.items; let itemsName = `${name}ListItem`; + const fromExtension = collapsedSchema[Oas3Tools.OAS_GRAPHQL_EXTENSIONS.TypeName]; if ('$ref' in itemsSchema) { - itemsName = collapsedSchema.items.$ref.split('/').pop(); + itemsName = itemsSchema.$ref.split('/').pop(); } const subDefinition = createDataDef( // Is this the correct classification for this name? It does not matter in the long run. - { fromRef: itemsName }, itemsSchema, isInputObjectType, data, oas); + { + fromExtension, + fromRef: itemsName + }, itemsSchema, isInputObjectType, data, oas); // Add list item reference def.subDefinitions = subDefinition; } @@ -703,8 +719,17 @@ function getSchemaName(names, usedNames) { throw new Error(`Cannot create data definition without name(s), excluding the preferred name.`); } let schemaName; + if (typeof names.fromExtension === 'string') { + const saneName = Oas3Tools.sanitize(names.fromExtension, Oas3Tools.CaseStyle.PascalCase); + if (usedNames.includes(saneName)) { + throw new Error(`Cannot create Type with name "${saneName}".\nYou provided "${names.fromExtension}" in ${Oas3Tools.OAS_GRAPHQL_EXTENSIONS.TypeName}, but it conflicts with another Type called "${saneName}"`); + } + if (!usedNames.includes(saneName)) { + schemaName = names.fromExtension; + } + } // CASE: name from reference - if (typeof names.fromRef === 'string') { + if (!schemaName && typeof names.fromRef === 'string') { const saneName = Oas3Tools.sanitize(names.fromRef, Oas3Tools.CaseStyle.PascalCase); if (!usedNames.includes(saneName)) { schemaName = names.fromRef; @@ -726,13 +751,15 @@ function getSchemaName(names, usedNames) { } // CASE: all names are already used - create approximate name if (!schemaName) { - schemaName = Oas3Tools.sanitize(typeof names.fromRef === 'string' - ? names.fromRef - : typeof names.fromSchema === 'string' - ? names.fromSchema - : typeof names.fromPath === 'string' - ? names.fromPath - : 'PlaceholderName', Oas3Tools.CaseStyle.PascalCase); + schemaName = Oas3Tools.sanitize(typeof names.fromExtension === 'string' + ? names.fromExtension + : typeof names.fromRef === 'string' + ? names.fromRef + : typeof names.fromSchema === 'string' + ? names.fromSchema + : typeof names.fromPath === 'string' + ? names.fromPath + : 'PlaceholderName', Oas3Tools.CaseStyle.PascalCase); } if (usedNames.includes(schemaName)) { let appendix = 2; @@ -765,12 +792,14 @@ function addObjectPropertiesToDataDef(def, schema, required, isInputObjectType, for (let propertyKey in schema.properties) { let propSchemaName = propertyKey; let propSchema = schema.properties[propertyKey]; + const fromExtension = propSchema[Oas3Tools.OAS_GRAPHQL_EXTENSIONS.TypeName]; if ('$ref' in propSchema) { propSchemaName = propSchema.$ref.split('/').pop(); propSchema = Oas3Tools.resolveRef(propSchema.$ref, oas); } if (!(propertyKey in def.subDefinitions)) { const subDefinition = createDataDef({ + fromExtension, fromRef: propSchemaName, fromSchema: propSchema.title // TODO: Currently not utilized because of fromRef but arguably, propertyKey is a better field name and title is a better type name }, propSchema, isInputObjectType, data, oas); @@ -1008,7 +1037,9 @@ function createDataDefFromAnyOf(saneName, saneInputName, collapsedSchema, isInpu if (!incompatibleProperties.has(propertyName)) { // Dereferenced by processing anyOfData const propertySchema = properties[propertyName]; + const fromExtension = propertySchema[Oas3Tools.OAS_GRAPHQL_EXTENSIONS.TypeName]; const subDefinition = createDataDef({ + fromExtension, fromRef: propertyName, fromSchema: propertySchema.title // TODO: Currently not utilized because of fromRef but arguably, propertyKey is a better field name and title is a better type name }, propertySchema, isInputObjectType, data, oas); @@ -1101,7 +1132,9 @@ function createDataDefFromOneOf(saneName, saneInputName, collapsedSchema, isInpu // Member types of GraphQL unions must be object types if (Oas3Tools.getSchemaTargetGraphQLType(memberSchema, data) === 'object') { + const fromExtension = memberSchema[Oas3Tools.OAS_GRAPHQL_EXTENSIONS.TypeName]; const subDefinition = createDataDef({ + fromExtension, fromRef, fromSchema: memberSchema.title, fromPath: `${saneName}Member` diff --git a/packages/openapi-to-graphql/lib/preprocessor.js.map b/packages/openapi-to-graphql/lib/preprocessor.js.map index ab18cb17..61a4d8a5 100644 --- a/packages/openapi-to-graphql/lib/preprocessor.js.map +++ b/packages/openapi-to-graphql/lib/preprocessor.js.map @@ -1 +1 @@ -{"version":3,"file":"preprocessor.js","sourceRoot":"","sources":["../src/preprocessor.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"preprocessor.js","sourceRoot":"","sources":["../src/preprocessor.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/packages/openapi-to-graphql/lib/resolver_builder.js b/packages/openapi-to-graphql/lib/resolver_builder.js index b8e30a36..816c196f 100644 --- a/packages/openapi-to-graphql/lib/resolver_builder.js +++ b/packages/openapi-to-graphql/lib/resolver_builder.js @@ -240,12 +240,10 @@ function getResolver({ operation, argsFromLink = {}, payloadName, data, baseUrl, param.schema && typeof param.schema === 'object') { let schema = param.schema; - if (schema && schema.$ref && typeof schema.$ref === 'string') { + if ('$ref' in schema) { schema = Oas3Tools.resolveRef(schema.$ref, operation.oas); } - if (schema && - schema.default && - typeof schema.default !== 'undefined') { + if (schema && schema.default && typeof schema.default !== 'undefined') { args[saneParamName] = schema.default; } } diff --git a/packages/openapi-to-graphql/lib/resolver_builder.js.map b/packages/openapi-to-graphql/lib/resolver_builder.js.map index 91c514a8..96169d26 100644 --- a/packages/openapi-to-graphql/lib/resolver_builder.js.map +++ b/packages/openapi-to-graphql/lib/resolver_builder.js.map @@ -1 +1 @@ -{"version":3,"file":"resolver_builder.js","sourceRoot":"","sources":["../src/resolver_builder.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"resolver_builder.js","sourceRoot":"","sources":["../src/resolver_builder.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/packages/openapi-to-graphql/lib/schema_builder.js b/packages/openapi-to-graphql/lib/schema_builder.js index 2f204297..31bd32f6 100644 --- a/packages/openapi-to-graphql/lib/schema_builder.js +++ b/packages/openapi-to-graphql/lib/schema_builder.js @@ -345,7 +345,7 @@ function createOrReuseList({ def, operation, iteration, isInputObjectType, data return listObjectType; } else { - throw new Error(`Cannot create list item object type '${itemsName}' in list + throw new Error(`Cannot create list item object type '${itemsName}' in list '${name}' with schema '${JSON.stringify(itemsSchema)}'`); } } @@ -365,12 +365,18 @@ function createOrReuseEnum({ def, data }) { else { translationLog(`Create GraphQLEnumType '${def.graphQLTypeName}'`); const values = {}; - def.schema.enum.forEach((e) => { - values[Oas3Tools.sanitize(e.toString(), !data.options.simpleEnumValues - ? Oas3Tools.CaseStyle.ALL_CAPS - : Oas3Tools.CaseStyle.simple)] = { - value: e - }; + const mapping = def.schema[Oas3Tools.OAS_GRAPHQL_EXTENSIONS.EnumMapping] || {}; + def.schema.enum.forEach((enumValue) => { + const enumValueString = enumValue.toString(); + const fromExtension = mapping[enumValueString]; + const saneEnumValue = fromExtension || + Oas3Tools.sanitize(enumValueString, !data.options.simpleEnumValues + ? Oas3Tools.CaseStyle.ALL_CAPS + : Oas3Tools.CaseStyle.simple); + if (fromExtension in values) { + throw new Error(`Cannot create enum value "${fromExtension}".\nYou provided "${fromExtension}" in ${Oas3Tools.OAS_GRAPHQL_EXTENSIONS.EnumMapping}, but it conflicts with another enum value "${fromExtension}"`); + } + values[saneEnumValue] = { value: enumValue }; }); // Store newly created Enum Object Type def.graphQLType = new graphql_1.GraphQLEnumType({ @@ -429,9 +435,14 @@ function createFields({ def, links, operation, data, iteration, isInputObjectTyp const requiredProperty = typeof def.required === 'object' && def.required.includes(fieldTypeKey); // Finally, add the object type to the fields (using sanitized field name) if (objectType) { - const saneFieldTypeKey = Oas3Tools.sanitize(fieldTypeKey, !data.options.simpleNames - ? Oas3Tools.CaseStyle.camelCase - : Oas3Tools.CaseStyle.simple); + const fromExtension = fieldSchema === null || fieldSchema === void 0 ? void 0 : fieldSchema[Oas3Tools.OAS_GRAPHQL_EXTENSIONS.FieldName]; + if (fromExtension && fromExtension in fields) { + throw new Error(`Cannot create field with name "${fromExtension}".\nYou provided "${fromExtension}" in ${Oas3Tools.OAS_GRAPHQL_EXTENSIONS.FieldName}, but it conflicts with another field called "${fromExtension}"`); + } + const saneFieldTypeKey = fromExtension || + Oas3Tools.sanitize(fieldTypeKey, !data.options.simpleNames + ? Oas3Tools.CaseStyle.camelCase + : Oas3Tools.CaseStyle.simple); const sanePropName = Oas3Tools.storeSaneName(saneFieldTypeKey, fieldTypeKey, data.saneMap); fields[sanePropName] = { type: requiredProperty @@ -877,7 +888,10 @@ function getArgs({ requestPayloadDef, parameters, operation, data }) { if ('$ref' in schema) { schema = Oas3Tools.resolveRef(schema.$ref, operation.oas); } - const paramDef = preprocessor_1.createDataDef({ fromSchema: parameter.name }, schema, true, data, operation.oas); + const paramDef = preprocessor_1.createDataDef({ + fromSchema: parameter.name, + fromExtension: schema[Oas3Tools.OAS_GRAPHQL_EXTENSIONS.TypeName] + }, schema, true, data, operation.oas); const type = getGraphQLType({ def: paramDef, operation, @@ -898,8 +912,8 @@ function getArgs({ requestPayloadDef, parameters, operation, data }) { let hasDefault = false; if (typeof parameter.schema === 'object') { let schema = parameter.schema; - if (typeof schema.$ref === 'string') { - schema = Oas3Tools.resolveRef(parameter.schema.$ref, operation.oas); + if ('$ref' in schema) { + schema = Oas3Tools.resolveRef(schema.$ref, operation.oas); } if (typeof schema.default !== 'undefined') { hasDefault = true; diff --git a/packages/openapi-to-graphql/lib/schema_builder.js.map b/packages/openapi-to-graphql/lib/schema_builder.js.map index 11abe113..38c86b2d 100644 --- a/packages/openapi-to-graphql/lib/schema_builder.js.map +++ b/packages/openapi-to-graphql/lib/schema_builder.js.map @@ -1 +1 @@ -{"version":3,"file":"schema_builder.js","sourceRoot":"","sources":["../src/schema_builder.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"schema_builder.js","sourceRoot":"","sources":["../src/schema_builder.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/packages/openapi-to-graphql/lib/types/oas3.d.ts b/packages/openapi-to-graphql/lib/types/oas3.d.ts index 026db5a3..921b9013 100644 --- a/packages/openapi-to-graphql/lib/types/oas3.d.ts +++ b/packages/openapi-to-graphql/lib/types/oas3.d.ts @@ -6,7 +6,6 @@ declare type ExternalDocumentationObject = { url: string; }; export declare type SchemaObject = { - $ref?: string; title?: string; type?: 'string' | 'number' | 'object' | 'array' | 'boolean' | 'integer'; format?: string; diff --git a/packages/openapi-to-graphql/src/index.ts b/packages/openapi-to-graphql/src/index.ts index 514f5b9b..8f50ad94 100644 --- a/packages/openapi-to-graphql/src/index.ts +++ b/packages/openapi-to-graphql/src/index.ts @@ -314,12 +314,23 @@ function translateOpenAPIToGraphQL( // Check if the operation should be added as a Query or Mutation if (operation.operationType === GraphQLOperationType.Query) { - let fieldName = !singularNames - ? Oas3Tools.uncapitalize(operation.responseDefinition.graphQLTypeName) - : Oas3Tools.sanitize( - Oas3Tools.inferResourceNameFromPath(operation.path), - Oas3Tools.CaseStyle.camelCase - ) + const extensionFieldName = + operation.operation[Oas3Tools.OAS_GRAPHQL_EXTENSIONS.FieldName] + + if (extensionFieldName in queryFields) { + throw new Error( + `Cannot create query with name "${extensionFieldName}".\nYou provided "${extensionFieldName}" in ${Oas3Tools.OAS_GRAPHQL_EXTENSIONS.FieldName}, but it conflicts with another query called "${extensionFieldName}"` + ) + } + + let fieldName = + extensionFieldName || + (!singularNames + ? Oas3Tools.uncapitalize(operation.responseDefinition.graphQLTypeName) + : Oas3Tools.sanitize( + Oas3Tools.inferResourceNameFromPath(operation.path), + Oas3Tools.CaseStyle.camelCase + )) if (operation.inViewer) { for (let securityRequirement of operation.securityRequirements) { @@ -391,9 +402,18 @@ function translateOpenAPIToGraphQL( } } } else { - let saneFieldName - - if (!singularNames) { + let saneFieldName: string + const extensionFieldName = + operation.operation[Oas3Tools.OAS_GRAPHQL_EXTENSIONS.FieldName] + + if (extensionFieldName) { + if (extensionFieldName in data.saneMap) { + throw new Error( + `Cannot create mutation with name "${extensionFieldName}".\nYou provided "${extensionFieldName}" in ${Oas3Tools.OAS_GRAPHQL_EXTENSIONS.FieldName}, but it conflicts with another mutation called "${extensionFieldName}"` + ) + } + saneFieldName = extensionFieldName + } else if (!singularNames) { /** * Use operationId to avoid problems differentiating operations with the * same path but differnet methods @@ -474,11 +494,19 @@ function translateOpenAPIToGraphQL( Oas3Tools.CaseStyle.camelCase ) - let saneFieldName = Oas3Tools.storeSaneName( - saneOperationId, - operationId, - data.saneMap - ) + const extensionFieldName = + operation.operation[Oas3Tools.OAS_GRAPHQL_EXTENSIONS.FieldName] + + if (extensionFieldName && extensionFieldName in data.saneMap) { + throw new Error( + `Cannot create subscription with name "${extensionFieldName}".\nYou provided "${extensionFieldName}" in ${Oas3Tools.OAS_GRAPHQL_EXTENSIONS.FieldName}, but it conflicts with another subscription called "${extensionFieldName}"` + ) + } + + const saneFieldName = + extensionFieldName || + Oas3Tools.storeSaneName(saneOperationId, operationId, data.saneMap) + if (operation.inViewer) { for (let securityRequirement of operation.securityRequirements) { if (typeof authSubscriptionFields[securityRequirement] !== 'object') { @@ -807,5 +835,5 @@ function preliminaryChecks( checkCustomResolversStructure(options.customSubscriptionResolvers, data) } -export { sanitize, CaseStyle } from './oas_3_tools' +export { CaseStyle, sanitize } from './oas_3_tools' export { GraphQLOperationType } from './types/graphql' diff --git a/packages/openapi-to-graphql/src/oas_3_tools.ts b/packages/openapi-to-graphql/src/oas_3_tools.ts index 280074b3..5c3ce10f 100644 --- a/packages/openapi-to-graphql/src/oas_3_tools.ts +++ b/packages/openapi-to-graphql/src/oas_3_tools.ts @@ -23,8 +23,6 @@ import { ReferenceObject, LinksObject, LinkObject, - CallbacksObject, - CallbackObject, MediaTypesObject, SecuritySchemeObject, SecurityRequirementObject @@ -46,6 +44,7 @@ import * as pluralize from 'pluralize' // Type definitions & exports: export type SchemaNames = { // Sorted in the following priority order + fromExtension?: string fromRef?: string fromSchema?: string fromPath?: string @@ -89,6 +88,12 @@ export enum HTTP_METHODS { export const SUCCESS_STATUS_RX = /2[0-9]{2}|2XX/ +export enum OAS_GRAPHQL_EXTENSIONS { + TypeName = 'x-graphql-type-name', + FieldName = 'x-graphql-field-name', + EnumMapping = 'x-graphql-enum-mapping' +} + /** * Given an HTTP method, convert it to the HTTP_METHODS enum */ @@ -268,8 +273,8 @@ export function countOperationsWithPayload(oas: Oas3): number { /** * Resolves the given reference in the given object. */ -export function resolveRef(ref: string, oas: Oas3): any { - return jsonptr.JsonPointer.get(oas, ref) +export function resolveRef(ref: string, oas: Oas3): T { + return jsonptr.JsonPointer.get(oas, ref) as T } /** @@ -613,7 +618,7 @@ export function getRequestSchemaAndNames( const payloadSchemaOrRef = requestBodyObject?.content?.[payloadContentType]?.schema // Resolve payload schema reference if applicable - if (typeof (payloadSchemaOrRef as ReferenceObject)?.$ref === 'string') { + if (payloadSchemaOrRef && '$ref' in payloadSchemaOrRef) { fromRef = payloadSchemaOrRef.$ref.split('/').pop() payloadSchema = resolveRef(payloadSchemaOrRef.$ref, oas) as SchemaObject } else { @@ -627,6 +632,7 @@ export function getRequestSchemaAndNames( : false payloadSchemaNames = { + fromExtension: payloadSchema?.[OAS_GRAPHQL_EXTENSIONS.TypeName], fromRef, fromSchema: payloadSchema?.title, fromPath: inferResourceNameFromPath(path) @@ -761,7 +767,7 @@ export function getResponseSchemaAndNames( const responseSchemaOrRef = responseObject?.content?.[responseContentType]?.schema // Resolve response schema reference if applicable - if (typeof (responseSchemaOrRef as ReferenceObject)?.$ref === 'string') { + if (responseSchemaOrRef && '$ref' in responseSchemaOrRef) { fromRef = responseSchemaOrRef.$ref.split('/').pop() responseSchema = resolveRef(responseSchemaOrRef.$ref, oas) as SchemaObject } else { @@ -769,6 +775,7 @@ export function getResponseSchemaAndNames( } responseSchemaNames = { + fromExtension: responseSchema?.[OAS_GRAPHQL_EXTENSIONS.TypeName], fromRef, fromSchema: responseSchema?.title, fromPath: inferResourceNameFromPath(path) diff --git a/packages/openapi-to-graphql/src/preprocessor.ts b/packages/openapi-to-graphql/src/preprocessor.ts index f4e470aa..d4454a4e 100644 --- a/packages/openapi-to-graphql/src/preprocessor.ts +++ b/packages/openapi-to-graphql/src/preprocessor.ts @@ -645,7 +645,7 @@ function getProcessedSecuritySchemes( */ export function createDataDef( names: Oas3Tools.SchemaNames, - schema: SchemaObject, + schema: SchemaObject | ReferenceObject, isInputObjectType: boolean, data: PreprocessingData, oas: Oas3, @@ -678,26 +678,32 @@ export function createDataDef( targetGraphQLType: 'json' } } else { - if ('$ref' in schema) { - schema = Oas3Tools.resolveRef(schema.$ref, oas) - } + let resolvedSchema = + '$ref' in schema ? Oas3Tools.resolveRef(schema.$ref, oas) : schema const saneLinks = {} if (typeof links === 'object') { Object.keys(links).forEach((linkKey) => { - saneLinks[ - Oas3Tools.sanitize( - linkKey, - !data.options.simpleNames - ? Oas3Tools.CaseStyle.camelCase - : Oas3Tools.CaseStyle.simple + const link = links[linkKey] + const fromExtension = link[Oas3Tools.OAS_GRAPHQL_EXTENSIONS.FieldName] + if (fromExtension in saneLinks) { + throw new Error( + `Cannot create link with name "${fromExtension}".\nYou provided "${fromExtension}" in ${Oas3Tools.OAS_GRAPHQL_EXTENSIONS.FieldName}, but it conflicts with another link called "${fromExtension}"` ) - ] = links[linkKey] + } + const linkSaneName = Oas3Tools.sanitize( + fromExtension || linkKey, + !data.options.simpleNames + ? Oas3Tools.CaseStyle.camelCase + : Oas3Tools.CaseStyle.simple + ) + + saneLinks[linkSaneName] = link }) } // Determine the index of possible existing data definition - const index = getSchemaIndex(preferredName, schema, data.defs) + const index = getSchemaIndex(preferredName, resolvedSchema, data.defs) if (index !== -1) { // Found existing data definition and fetch it @@ -750,13 +756,21 @@ export function createDataDef( // Else, define a new name, store the def, and return it const name = getSchemaName(names, data.usedTypeNames) - // Store and sanitize the name - const saneName = !data.options.simpleNames - ? Oas3Tools.sanitize(name, Oas3Tools.CaseStyle.PascalCase) - : Oas3Tools.capitalize( - Oas3Tools.sanitize(name, Oas3Tools.CaseStyle.simple) - ) - const saneInputName = Oas3Tools.capitalize(saneName + 'Input') + let saneInputName: string + let saneName: string + + if (name === names.fromExtension) { + saneName = name + saneInputName = name + } else { + // Store and sanitize the name + saneName = !data.options.simpleNames + ? Oas3Tools.sanitize(name, Oas3Tools.CaseStyle.PascalCase) + : Oas3Tools.capitalize( + Oas3Tools.sanitize(name, Oas3Tools.CaseStyle.simple) + ) + saneInputName = Oas3Tools.capitalize(saneName + 'Input') + } Oas3Tools.storeSaneName(saneName, name, data.saneMap) @@ -765,7 +779,7 @@ export function createDataDef( * * Perhaps, just copy it at the root level (operation schema) */ - const collapsedSchema = resolveAllOf(schema, {}, data, oas) + const collapsedSchema = resolveAllOf(resolvedSchema, {}, data, oas) const targetGraphQLType = Oas3Tools.getSchemaTargetGraphQLType( collapsedSchema as SchemaObject, @@ -783,7 +797,7 @@ export function createDataDef( * schema and name pair. The look up should resolve references but * currently, it does not. */ - schema, + schema: resolvedSchema, required: [], targetGraphQLType, subDefinitions: undefined, @@ -873,14 +887,19 @@ export function createDataDef( // Or if it is an object type, create references to all of the field types let itemsSchema = collapsedSchema.items let itemsName = `${name}ListItem` + const fromExtension = + collapsedSchema[Oas3Tools.OAS_GRAPHQL_EXTENSIONS.TypeName] if ('$ref' in itemsSchema) { - itemsName = collapsedSchema.items.$ref.split('/').pop() + itemsName = itemsSchema.$ref.split('/').pop() } const subDefinition = createDataDef( // Is this the correct classification for this name? It does not matter in the long run. - { fromRef: itemsName }, + { + fromExtension, + fromRef: itemsName + }, itemsSchema as SchemaObject, isInputObjectType, data, @@ -1008,10 +1027,27 @@ function getSchemaName( ) } - let schemaName + let schemaName: string + + if (typeof names.fromExtension === 'string') { + const saneName = Oas3Tools.sanitize( + names.fromExtension, + Oas3Tools.CaseStyle.PascalCase + ) + + if (usedNames.includes(saneName)) { + throw new Error( + `Cannot create Type with name "${saneName}".\nYou provided "${names.fromExtension}" in ${Oas3Tools.OAS_GRAPHQL_EXTENSIONS.TypeName}, but it conflicts with another Type called "${saneName}"` + ) + } + + if (!usedNames.includes(saneName)) { + schemaName = names.fromExtension + } + } // CASE: name from reference - if (typeof names.fromRef === 'string') { + if (!schemaName && typeof names.fromRef === 'string') { const saneName = Oas3Tools.sanitize( names.fromRef, Oas3Tools.CaseStyle.PascalCase @@ -1046,7 +1082,9 @@ function getSchemaName( // CASE: all names are already used - create approximate name if (!schemaName) { schemaName = Oas3Tools.sanitize( - typeof names.fromRef === 'string' + typeof names.fromExtension === 'string' + ? names.fromExtension + : typeof names.fromRef === 'string' ? names.fromRef : typeof names.fromSchema === 'string' ? names.fromSchema @@ -1099,6 +1137,7 @@ function addObjectPropertiesToDataDef( for (let propertyKey in schema.properties) { let propSchemaName = propertyKey let propSchema = schema.properties[propertyKey] + const fromExtension = propSchema[Oas3Tools.OAS_GRAPHQL_EXTENSIONS.TypeName] if ('$ref' in propSchema) { propSchemaName = propSchema.$ref.split('/').pop() @@ -1108,6 +1147,7 @@ function addObjectPropertiesToDataDef( if (!(propertyKey in def.subDefinitions)) { const subDefinition = createDataDef( { + fromExtension, fromRef: propSchemaName, fromSchema: propSchema.title // TODO: Currently not utilized because of fromRef but arguably, propertyKey is a better field name and title is a better type name }, @@ -1457,9 +1497,12 @@ function createDataDefFromAnyOf( if (!incompatibleProperties.has(propertyName)) { // Dereferenced by processing anyOfData const propertySchema = properties[propertyName] as SchemaObject + const fromExtension = + propertySchema[Oas3Tools.OAS_GRAPHQL_EXTENSIONS.TypeName] const subDefinition = createDataDef( { + fromExtension, fromRef: propertyName, fromSchema: propertySchema.title // TODO: Currently not utilized because of fromRef but arguably, propertyKey is a better field name and title is a better type name }, @@ -1577,12 +1620,13 @@ function createDataDefFromOneOf( collapsedSchema.oneOf.forEach((memberSchema) => { // Dereference member schema let fromRef: string + if ('$ref' in memberSchema) { fromRef = memberSchema.$ref.split('/').pop() - memberSchema = Oas3Tools.resolveRef( + memberSchema = Oas3Tools.resolveRef( memberSchema.$ref, oas - ) as SchemaObject + ) } // Member types of GraphQL unions must be object types @@ -1590,8 +1634,11 @@ function createDataDefFromOneOf( Oas3Tools.getSchemaTargetGraphQLType(memberSchema, data) === 'object' ) { + const fromExtension = + memberSchema[Oas3Tools.OAS_GRAPHQL_EXTENSIONS.TypeName] const subDefinition = createDataDef( { + fromExtension, fromRef, fromSchema: memberSchema.title, fromPath: `${saneName}Member` diff --git a/packages/openapi-to-graphql/src/resolver_builder.ts b/packages/openapi-to-graphql/src/resolver_builder.ts index 1ad9c98a..db9451a0 100644 --- a/packages/openapi-to-graphql/src/resolver_builder.ts +++ b/packages/openapi-to-graphql/src/resolver_builder.ts @@ -414,15 +414,14 @@ export function getResolver({ typeof param.schema === 'object' ) { let schema = param.schema - if (schema && schema.$ref && typeof schema.$ref === 'string') { - schema = Oas3Tools.resolveRef(schema.$ref, operation.oas) + if ('$ref' in schema) { + schema = Oas3Tools.resolveRef( + schema.$ref, + operation.oas + ) } - if ( - schema && - (schema as SchemaObject).default && - typeof (schema as SchemaObject).default !== 'undefined' - ) { - args[saneParamName] = (schema as SchemaObject).default + if (schema && schema.default && typeof schema.default !== 'undefined') { + args[saneParamName] = schema.default } } }) diff --git a/packages/openapi-to-graphql/src/schema_builder.ts b/packages/openapi-to-graphql/src/schema_builder.ts index 15c7e77c..31510a1c 100644 --- a/packages/openapi-to-graphql/src/schema_builder.ts +++ b/packages/openapi-to-graphql/src/schema_builder.ts @@ -512,7 +512,7 @@ function createOrReuseList({ } return listObjectType } else { - throw new Error(`Cannot create list item object type '${itemsName}' in list + throw new Error(`Cannot create list item object type '${itemsName}' in list '${name}' with schema '${JSON.stringify(itemsSchema)}'`) } } @@ -536,17 +536,25 @@ function createOrReuseEnum({ translationLog(`Create GraphQLEnumType '${def.graphQLTypeName}'`) const values = {} - def.schema.enum.forEach((e) => { - values[ + const mapping = + def.schema[Oas3Tools.OAS_GRAPHQL_EXTENSIONS.EnumMapping] || {} + def.schema.enum.forEach((enumValue) => { + const enumValueString = enumValue.toString() + const fromExtension = mapping[enumValueString] + const saneEnumValue = + fromExtension || Oas3Tools.sanitize( - e.toString(), + enumValueString, !data.options.simpleEnumValues ? Oas3Tools.CaseStyle.ALL_CAPS : Oas3Tools.CaseStyle.simple ) - ] = { - value: e + if (fromExtension in values) { + throw new Error( + `Cannot create enum value "${fromExtension}".\nYou provided "${fromExtension}" in ${Oas3Tools.OAS_GRAPHQL_EXTENSIONS.EnumMapping}, but it conflicts with another enum value "${fromExtension}"` + ) } + values[saneEnumValue] = { value: enumValue } }) // Store newly created Enum Object Type @@ -630,12 +638,23 @@ function createFields({ // Finally, add the object type to the fields (using sanitized field name) if (objectType) { - const saneFieldTypeKey = Oas3Tools.sanitize( - fieldTypeKey, - !data.options.simpleNames - ? Oas3Tools.CaseStyle.camelCase - : Oas3Tools.CaseStyle.simple - ) + const fromExtension = + fieldSchema?.[Oas3Tools.OAS_GRAPHQL_EXTENSIONS.FieldName] + + if (fromExtension && fromExtension in fields) { + throw new Error( + `Cannot create field with name "${fromExtension}".\nYou provided "${fromExtension}" in ${Oas3Tools.OAS_GRAPHQL_EXTENSIONS.FieldName}, but it conflicts with another field called "${fromExtension}"` + ) + } + + const saneFieldTypeKey = + fromExtension || + Oas3Tools.sanitize( + fieldTypeKey, + !data.options.simpleNames + ? Oas3Tools.CaseStyle.camelCase + : Oas3Tools.CaseStyle.simple + ) const sanePropName = Oas3Tools.storeSaneName( saneFieldTypeKey, @@ -1186,7 +1205,10 @@ export function getArgs({ } const paramDef = createDataDef( - { fromSchema: parameter.name }, + { + fromSchema: parameter.name, + fromExtension: schema[Oas3Tools.OAS_GRAPHQL_EXTENSIONS.TypeName] + }, schema as SchemaObject, true, data, @@ -1218,10 +1240,10 @@ export function getArgs({ let hasDefault = false if (typeof parameter.schema === 'object') { let schema = parameter.schema - if (typeof schema.$ref === 'string') { - schema = Oas3Tools.resolveRef(parameter.schema.$ref, operation.oas) + if ('$ref' in schema) { + schema = Oas3Tools.resolveRef(schema.$ref, operation.oas) } - if (typeof (schema as SchemaObject).default !== 'undefined') { + if (typeof schema.default !== 'undefined') { hasDefault = true } } diff --git a/packages/openapi-to-graphql/src/types/oas3.ts b/packages/openapi-to-graphql/src/types/oas3.ts index d254b049..e3c81439 100644 --- a/packages/openapi-to-graphql/src/types/oas3.ts +++ b/packages/openapi-to-graphql/src/types/oas3.ts @@ -3,8 +3,6 @@ // This file is licensed under the MIT License. // License text available at https://opensource.org/licenses/MIT -import { Operation } from './operation' - /** * Type definitions for the OpenAPI Specification 3. */ @@ -15,7 +13,6 @@ type ExternalDocumentationObject = { } export type SchemaObject = { - $ref?: string title?: string type?: 'string' | 'number' | 'object' | 'array' | 'boolean' | 'integer' format?: string diff --git a/packages/openapi-to-graphql/test/extensions.test.ts b/packages/openapi-to-graphql/test/extensions.test.ts new file mode 100644 index 00000000..48164c39 --- /dev/null +++ b/packages/openapi-to-graphql/test/extensions.test.ts @@ -0,0 +1,174 @@ +'use strict' + +import { beforeAll, describe, test, expect } from '@jest/globals' +import { + GraphQLEnumType, + GraphQLInputObjectType, + GraphQLObjectType, + GraphQLSchema +} from 'graphql' + +import * as openAPIToGraphQL from '../lib/index' +import { Oas3 } from '../lib/types/oas3' + +/** + * Set up the schema first + */ + +describe('GraphQL Extensions', () => { + describe('Schema output', () => { + let oas: Oas3 + let createdSchema: GraphQLSchema + + beforeAll(async () => { + oas = require('./fixtures/extensions.json') + const { schema } = await openAPIToGraphQL.createGraphQLSchema(oas, { + fillEmptyResponses: true, + createSubscriptionsFromCallbacks: true + }) + createdSchema = schema + }) + + test('should rename Query with x-graphql-field-name', () => { + const queries = Object.keys(createdSchema.getQueryType().getFields()) + expect(queries).not.toContain('petFindByStatus') + expect(queries).toContain('getPetsByStatus') + }) + + test('should rename Mutation with x-graphql-field-name', () => { + const mutations = Object.keys(createdSchema.getMutationType().getFields()) + expect(mutations).not.toContain('updatePetWithForm') + expect(mutations).toContain('updatePetForm') + }) + + test('should rename Subscription with x-graphql-field-name', () => { + const subscriptions = Object.keys( + createdSchema.getSubscriptionType().getFields() + ) + expect(subscriptions).not.toContain('petEventListener') + expect(subscriptions).toContain('petEvent') + }) + + test('should rename Type with x-graphql-type-name', () => { + const renamedType = createdSchema.getType('Response') + expect(renamedType).toBeInstanceOf(GraphQLObjectType) + expect(createdSchema.getType('ApiResponse')).toBeUndefined() + }) + + test('should rename Type fields with x-graphql-field-name', () => { + const response = createdSchema.getType('Response') as GraphQLObjectType + const fields = Object.keys(response.toConfig().fields) + expect(fields).not.toContain('code') + expect(fields).toContain('statusCode') + }) + + test('should rename Enum values with x-graphql-enum-mapping', () => { + const petStatus = createdSchema.getType('PetStatus') as GraphQLEnumType + const values = petStatus.getValues() + const initialValue = values.find(({ value }) => value === 'available') + const pendingValue = values.find(({ value }) => value === 'pending') + const soldValue = values.find(({ value }) => value === 'sold') + expect(values.length).toEqual(3) + expect(initialValue.name).toEqual('INITIAL') + expect(pendingValue.name).toEqual('IN_PROGRESS') + expect(soldValue.name).toEqual('SOLD') + }) + + test('should rename Links with x-graphql-field-name', () => { + const order = createdSchema.getType('Order') as GraphQLObjectType + const fields = Object.keys(order.getFields()) + expect(fields).not.toContain('pet') + expect(fields).toContain('orderPet') + expect(order.getFields().orderPet.type.toString()).toEqual('Pet') + }) + + test('should rename Parameters with x-graphql-type-name', () => { + const renamedType = createdSchema.getType('Meta') + expect(renamedType).toBeInstanceOf(GraphQLInputObjectType) + expect(createdSchema.getType('AdditionalMetadata')).toBeUndefined() + expect(createdSchema.getType('AdditionalMetadataInput')).toBeUndefined() + }) + }) + + describe('Error handling', () => { + test('should throw when x-graphql-type-name causes naming conflicts', async () => { + const oas = require('./fixtures/extensions_error1.json') + await expect( + openAPIToGraphQL.createGraphQLSchema(oas) + ).rejects.toThrowError( + new Error( + 'Cannot create Type with name "User".\nYou provided "User" in x-graphql-type-name, but it conflicts with another Type called "User"' + ) + ) + }) + + test('should throw when x-graphql-field-name causes naming conflicts on objects', async () => { + const oas = require('./fixtures/extensions_error2.json') + await expect( + openAPIToGraphQL.createGraphQLSchema(oas) + ).rejects.toThrowError( + new Error( + 'Cannot create field with name "name".\nYou provided "name" in x-graphql-field-name, but it conflicts with another field called "name"' + ) + ) + }) + + test('should throw when x-graphql-field-name causes naming conflicts on queries', async () => { + const oas = require('./fixtures/extensions_error3.json') + await expect( + openAPIToGraphQL.createGraphQLSchema(oas) + ).rejects.toThrowError( + new Error( + 'Cannot create query with name "user".\nYou provided "user" in x-graphql-field-name, but it conflicts with another query called "user"' + ) + ) + }) + + test('should throw when x-graphql-field-name causes naming conflicts on mutations', async () => { + const oas = require('./fixtures/extensions_error4.json') + await expect( + openAPIToGraphQL.createGraphQLSchema(oas) + ).rejects.toThrowError( + new Error( + 'Cannot create mutation with name "createUser".\nYou provided "createUser" in x-graphql-field-name, but it conflicts with another mutation called "createUser"' + ) + ) + }) + + test('should throw when x-graphql-field-name causes naming conflicts on subscriptions', async () => { + const oas = require('./fixtures/extensions_error5.json') + await expect( + openAPIToGraphQL.createGraphQLSchema(oas, { + createSubscriptionsFromCallbacks: true, + fillEmptyResponses: true + }) + ).rejects.toThrowError( + new Error( + 'Cannot create subscription with name "userEventListener".\nYou provided "userEventListener" in x-graphql-field-name, but it conflicts with another subscription called "userEventListener"' + ) + ) + }) + + test('should throw when x-graphql-field-name causes naming conflicts on links', async () => { + const oas = require('./fixtures/extensions_error6.json') + await expect( + openAPIToGraphQL.createGraphQLSchema(oas) + ).rejects.toThrowError( + new Error( + 'Cannot create link with name "group".\nYou provided "group" in x-graphql-field-name, but it conflicts with another link called "group"' + ) + ) + }) + + test('should throw when x-graphql-enum-mapping causes naming conflicts', async () => { + const oas = require('./fixtures/extensions_error7.json') + await expect( + openAPIToGraphQL.createGraphQLSchema(oas) + ).rejects.toThrowError( + new Error( + 'Cannot create enum value "CONFLICT".\nYou provided "CONFLICT" in x-graphql-enum-mapping, but it conflicts with another enum value "CONFLICT"' + ) + ) + }) + }) +}) diff --git a/packages/openapi-to-graphql/test/fixtures/extensions.json b/packages/openapi-to-graphql/test/fixtures/extensions.json new file mode 100644 index 00000000..06b05034 --- /dev/null +++ b/packages/openapi-to-graphql/test/fixtures/extensions.json @@ -0,0 +1,859 @@ +{ + "openapi": "3.0.2", + "info": { + "title": "Swagger Petstore - OpenAPI 3.0", + "description": "This is a sample Pet Store Server based on the OpenAPI 3.0 specification. You can find out more about\nSwagger at [http://swagger.io](http://swagger.io). In the third iteration of the pet store, we've switched to the design first approach!\nYou can now help us improve the API whether it's by making changes to the definition itself or to the code.\nThat way, with time, we can improve the API in general, and expose some of the new features in OAS3.\n\nSome useful links:\n- [The Pet Store repository](https://github.com/swagger-api/swagger-petstore)\n- [The source API definition for the Pet Store](https://github.com/swagger-api/swagger-petstore/blob/master/src/main/resources/openapi.yaml)", + "termsOfService": "http://swagger.io/terms/", + "contact": { "email": "apiteam@swagger.io" }, + "license": { + "name": "Apache 2.0", + "url": "http://www.apache.org/licenses/LICENSE-2.0.html" + }, + "version": "1.0.5" + }, + "externalDocs": { + "description": "Find out more about Swagger", + "url": "http://swagger.io" + }, + "servers": [{ "url": "/api/v3" }], + "tags": [ + { + "name": "pet", + "description": "Everything about your Pets", + "externalDocs": { + "description": "Find out more", + "url": "http://swagger.io" + } + }, + { "name": "store", "description": "Operations about user" }, + { + "name": "user", + "description": "Access to Petstore orders", + "externalDocs": { + "description": "Find out more about our store", + "url": "http://swagger.io" + } + } + ], + "paths": { + "/pet": { + "put": { + "tags": ["pet"], + "summary": "Update an existing pet", + "description": "Update an existing pet by Id", + "operationId": "updatePet", + "requestBody": { + "description": "Update an existent pet in the store", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/Pet" } + }, + "application/xml": { + "schema": { "$ref": "#/components/schemas/Pet" } + }, + "application/x-www-form-urlencoded": { + "schema": { "$ref": "#/components/schemas/Pet" } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "Successful operation", + "content": { + "application/xml": { + "schema": { "$ref": "#/components/schemas/Pet" } + }, + "application/json": { + "schema": { "$ref": "#/components/schemas/Pet" } + } + } + } + }, + "security": [{ "petstore_auth": ["write:pets", "read:pets"] }] + }, + "post": { + "tags": ["pet"], + "summary": "Add a new pet to the store", + "description": "Add a new pet to the store", + "operationId": "addPet", + "x-graphql-field-name": "createPet", + "requestBody": { + "description": "Create a new pet in the store", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/Pet" } + }, + "application/xml": { + "schema": { "$ref": "#/components/schemas/Pet" } + }, + "application/x-www-form-urlencoded": { + "schema": { "$ref": "#/components/schemas/Pet" } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "Successful operation", + "content": { + "application/xml": { + "schema": { "$ref": "#/components/schemas/Pet" } + }, + "application/json": { + "schema": { "$ref": "#/components/schemas/Pet" } + } + } + } + }, + "callbacks": { + "petCreated": { + "$ref": "#/components/callbacks/PetEvent" + } + }, + "security": [{ "petstore_auth": ["write:pets", "read:pets"] }] + } + }, + "/pet/findByStatus": { + "get": { + "tags": ["pet"], + "summary": "Finds Pets by status", + "description": "Multiple status values can be provided with comma separated strings", + "operationId": "findPetsByStatus", + "x-graphql-field-name": "getPetsByStatus", + "parameters": [ + { + "name": "status", + "in": "query", + "description": "Status values that need to be considered for filter", + "required": false, + "explode": true, + "schema": { + "type": "string", + "default": "available", + "enum": ["available", "pending", "sold"] + } + } + ], + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/xml": { + "schema": { + "type": "array", + "items": { "$ref": "#/components/schemas/Pet" } + } + }, + "application/json": { + "schema": { + "type": "array", + "items": { "$ref": "#/components/schemas/Pet" } + } + } + } + }, + "400": { "description": "Invalid status value" } + }, + "security": [{ "petstore_auth": ["write:pets", "read:pets"] }] + } + }, + "/pet/findByTags": { + "get": { + "tags": ["pet"], + "summary": "Finds Pets by tags", + "description": "Multiple tags can be provided with comma separated strings. Use tag1, tag2, tag3 for testing.", + "operationId": "findPetsByTags", + "parameters": [ + { + "name": "tags", + "in": "query", + "description": "Tags to filter by", + "required": false, + "explode": true, + "schema": { "type": "array", "items": { "type": "string" } } + } + ], + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/xml": { + "schema": { + "type": "array", + "items": { "$ref": "#/components/schemas/Pet" } + } + }, + "application/json": { + "schema": { + "type": "array", + "items": { "$ref": "#/components/schemas/Pet" } + } + } + } + }, + "400": { "description": "Invalid tag value" } + }, + "security": [{ "petstore_auth": ["write:pets", "read:pets"] }] + } + }, + "/pet/{petId}": { + "get": { + "tags": ["pet"], + "summary": "Find pet by ID", + "description": "Returns a single pet", + "operationId": "getPetById", + "parameters": [ + { + "name": "petId", + "in": "path", + "description": "ID of pet to return", + "required": true, + "schema": { "type": "integer", "format": "int64" } + } + ], + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/xml": { + "schema": { "$ref": "#/components/schemas/Pet" } + }, + "application/json": { + "schema": { "$ref": "#/components/schemas/Pet" } + } + } + } + }, + "security": [ + { "api_key": [] }, + { "petstore_auth": ["write:pets", "read:pets"] } + ] + }, + "post": { + "tags": ["pet"], + "summary": "Updates a pet in the store with form data", + "description": "", + "operationId": "updatePetWithForm", + "x-graphql-field-name": "updatePetForm", + "parameters": [ + { + "name": "petId", + "in": "path", + "description": "ID of pet that needs to be updated", + "required": true, + "schema": { "type": "integer", "format": "int64" } + }, + { + "name": "name", + "in": "query", + "description": "Name of pet that needs to be updated", + "schema": { "type": "string" } + }, + { + "name": "status", + "in": "query", + "description": "Status of pet that needs to be updated", + "schema": { "type": "string" } + } + ], + "responses": { "204": { "description": "Invalid input" } }, + "security": [{ "petstore_auth": ["write:pets", "read:pets"] }] + }, + "delete": { + "tags": ["pet"], + "summary": "Deletes a pet", + "description": "", + "operationId": "deletePet", + "parameters": [ + { + "name": "api_key", + "in": "header", + "description": "", + "required": false, + "schema": { "type": "string" } + }, + { + "name": "petId", + "in": "path", + "description": "Pet id to delete", + "required": true, + "schema": { "type": "integer", "format": "int64" } + } + ], + "responses": { "204": { "description": "Invalid pet value" } }, + "security": [{ "petstore_auth": ["write:pets", "read:pets"] }] + } + }, + "/pet/{petId}/uploadImage": { + "post": { + "tags": ["pet"], + "summary": "uploads an image", + "description": "", + "operationId": "uploadFile", + "parameters": [ + { + "name": "petId", + "in": "path", + "description": "ID of pet to update", + "required": true, + "schema": { "type": "integer", "format": "int64" } + }, + { + "name": "additionalMetadata", + "in": "query", + "description": "Additional Metadata", + "required": false, + "schema": { "type": "string" } + } + ], + "requestBody": { + "content": { + "application/octet-stream": { + "schema": { "type": "string", "format": "binary" } + } + } + }, + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/ApiResponse" } + } + } + } + }, + "security": [{ "petstore_auth": ["write:pets", "read:pets"] }] + } + }, + "/store/inventory": { + "get": { + "tags": ["store"], + "summary": "Returns pet inventories by status", + "description": "Returns a map of status codes to quantities", + "operationId": "getInventory", + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "type": "object", + "additionalProperties": { + "type": "integer", + "format": "int32" + } + } + } + } + } + }, + "security": [{ "api_key": [] }] + } + }, + "/store/order": { + "post": { + "tags": ["store"], + "summary": "Place an order for a pet", + "description": "Place a new order in the store", + "operationId": "placeOrder", + "requestBody": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/Order" } + }, + "application/xml": { + "schema": { "$ref": "#/components/schemas/Order" } + }, + "application/x-www-form-urlencoded": { + "schema": { "$ref": "#/components/schemas/Order" } + } + } + }, + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/Order" } + } + } + }, + "204": { "description": "Invalid input" } + } + } + }, + "/store/order/{orderId}": { + "get": { + "tags": ["store"], + "summary": "Find purchase order by ID", + "description": "For valid response try integer IDs with value <= 5 or > 10. Other values will generated exceptions", + "operationId": "getOrderById", + "parameters": [ + { + "name": "orderId", + "in": "path", + "description": "ID of order that needs to be fetched", + "required": true, + "schema": { "type": "integer", "format": "int64" } + } + ], + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/xml": { + "schema": { "$ref": "#/components/schemas/Order" } + }, + "application/json": { + "schema": { "$ref": "#/components/schemas/Order" } + } + }, + "links": { + "pet": { + "$ref": "#/components/links/Pet" + } + } + }, + "400": { "description": "Invalid ID supplied" }, + "404": { "description": "Order not found" } + } + }, + "delete": { + "tags": ["store"], + "summary": "Delete purchase order by ID", + "description": "For valid response try integer IDs with value < 1000. Anything above 1000 or nonintegers will generate API errors", + "operationId": "deleteOrder", + "parameters": [ + { + "name": "orderId", + "in": "path", + "description": "ID of the order that needs to be deleted", + "required": true, + "schema": { "type": "integer", "format": "int64" } + } + ], + "responses": { + "204": { "description": "Invalid ID supplied" } + } + } + }, + "/user": { + "post": { + "tags": ["user"], + "summary": "Create user", + "description": "This can only be done by the logged in user.", + "operationId": "createUser", + "requestBody": { + "description": "Created user object", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/User" } + }, + "application/xml": { + "schema": { "$ref": "#/components/schemas/User" } + }, + "application/x-www-form-urlencoded": { + "schema": { "$ref": "#/components/schemas/User" } + } + } + }, + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/User" } + }, + "application/xml": { + "schema": { "$ref": "#/components/schemas/User" } + } + } + } + } + } + }, + "/user/createWithList": { + "post": { + "tags": ["user"], + "summary": "Creates list of users with given input array", + "description": "Creates list of users with given input array", + "operationId": "createUsersWithListInput", + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { "$ref": "#/components/schemas/User" } + } + } + } + }, + "responses": { + "200": { + "description": "Successful operation", + "content": { + "application/xml": { + "schema": { "$ref": "#/components/schemas/User" } + }, + "application/json": { + "schema": { "$ref": "#/components/schemas/User" } + } + } + }, + "default": { "description": "successful operation" } + } + } + }, + "/user/login": { + "get": { + "tags": ["user"], + "summary": "Logs user into the system", + "description": "", + "operationId": "loginUser", + "parameters": [ + { + "name": "username", + "in": "query", + "description": "The user name for login", + "required": false, + "schema": { "type": "string" } + }, + { + "name": "password", + "in": "query", + "description": "The password for login in clear text", + "required": false, + "schema": { "type": "string" } + }, + { + "name": "additionalMetadata", + "in": "query", + "description": "Additional metadata", + "required": false, + "schema": { + "type": "object", + "x-graphql-type-name": "Meta", + "properties": { + "test": { + "type": "string" + } + } + } + } + ], + "responses": { + "200": { + "description": "successful operation", + "headers": { + "X-Rate-Limit": { + "description": "calls per hour allowed by the user", + "schema": { "type": "integer", "format": "int32" } + }, + "X-Expires-After": { + "description": "date in UTC when toekn expires", + "schema": { "type": "string", "format": "date-time" } + } + }, + "content": { + "application/xml": { "schema": { "type": "string" } }, + "application/json": { "schema": { "type": "string" } } + } + }, + "400": { "description": "Invalid username/password supplied" } + } + } + }, + "/user/logout": { + "get": { + "tags": ["user"], + "summary": "Logs out current logged in user session", + "description": "", + "operationId": "logoutUser", + "parameters": [], + "responses": { "204": { "description": "successful operation" } } + } + }, + "/user/{username}": { + "get": { + "tags": ["user"], + "summary": "Get user by user name", + "description": "", + "operationId": "getUserByName", + "parameters": [ + { + "name": "username", + "in": "path", + "description": "The name that needs to be fetched. Use user1 for testing. ", + "required": true, + "schema": { "type": "string" } + } + ], + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/xml": { + "schema": { "$ref": "#/components/schemas/User" } + }, + "application/json": { + "schema": { "$ref": "#/components/schemas/User" } + } + } + }, + "400": { "description": "Invalid username supplied" }, + "404": { "description": "User not found" } + } + }, + "put": { + "tags": ["user"], + "summary": "Update user", + "description": "This can only be done by the logged in user.", + "operationId": "updateUser", + "parameters": [ + { + "name": "username", + "in": "path", + "description": "name that need to be deleted", + "required": true, + "schema": { "type": "string" } + } + ], + "requestBody": { + "description": "Update an existent user in the store", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/User" } + }, + "application/xml": { + "schema": { "$ref": "#/components/schemas/User" } + }, + "application/x-www-form-urlencoded": { + "schema": { "$ref": "#/components/schemas/User" } + } + } + }, + "responses": { "204": { "description": "successful operation" } } + }, + "delete": { + "tags": ["user"], + "summary": "Delete user", + "description": "This can only be done by the logged in user.", + "operationId": "deleteUser", + "parameters": [ + { + "name": "username", + "in": "path", + "description": "The name that needs to be deleted", + "required": true, + "schema": { "type": "string" } + } + ], + "responses": { + "204": { "description": "Invalid username supplied" } + } + } + } + }, + "components": { + "schemas": { + "Order": { + "type": "object", + "properties": { + "id": { "type": "integer", "format": "int64", "example": 10 }, + "petId": { "type": "integer", "format": "int64", "example": 198772 }, + "quantity": { "type": "integer", "format": "int32", "example": 7 }, + "shipDate": { "type": "string", "format": "date-time" }, + "status": { + "type": "string", + "x-graphql-type-name": "OrderStatus", + "description": "Order Status", + "example": "approved", + "enum": ["placed", "approved", "delivered"] + }, + "complete": { "type": "boolean" } + }, + "xml": { "name": "order" } + }, + "Customer": { + "type": "object", + "properties": { + "id": { "type": "integer", "format": "int64", "example": 100000 }, + "username": { "type": "string", "example": "fehguy" }, + "address": { + "type": "array", + "xml": { "name": "addresses", "wrapped": true }, + "items": { "$ref": "#/components/schemas/Address" } + } + }, + "xml": { "name": "customer" } + }, + "Address": { + "type": "object", + "properties": { + "street": { "type": "string", "example": "437 Lytton" }, + "city": { "type": "string", "example": "Palo Alto" }, + "state": { "type": "string", "example": "CA" }, + "zip": { "type": "string", "example": "94301" } + }, + "xml": { "name": "address" } + }, + "Category": { + "type": "object", + "properties": { + "id": { "type": "integer", "format": "int64", "example": 1 }, + "name": { "type": "string", "example": "Dogs" } + }, + "xml": { "name": "category" } + }, + "User": { + "type": "object", + "properties": { + "id": { "type": "integer", "format": "int64", "example": 10 }, + "username": { "type": "string", "example": "theUser" }, + "firstName": { "type": "string", "example": "John" }, + "lastName": { "type": "string", "example": "James" }, + "email": { "type": "string", "example": "john@email.com" }, + "password": { "type": "string", "example": "12345" }, + "phone": { "type": "string", "example": "12345" }, + "userStatus": { + "type": "integer", + "description": "User Status", + "format": "int32", + "example": 1 + } + }, + "xml": { "name": "user" } + }, + "Tag": { + "type": "object", + "properties": { + "id": { "type": "integer", "format": "int64" }, + "name": { "type": "string" } + }, + "xml": { "name": "tag" } + }, + "Pet": { + "required": ["name", "photoUrls"], + "type": "object", + "properties": { + "id": { "type": "integer", "format": "int64", "example": 10 }, + "name": { "type": "string", "example": "doggie" }, + "category": { "$ref": "#/components/schemas/Category" }, + "photoUrls": { + "type": "array", + "xml": { "wrapped": true }, + "items": { "type": "string", "xml": { "name": "photoUrl" } } + }, + "tags": { + "type": "array", + "xml": { "wrapped": true }, + "items": { "$ref": "#/components/schemas/Tag" } + }, + "status": { + "type": "string", + "x-graphql-type-name": "PetStatus", + "description": "pet status in the store", + "enum": ["available", "pending", "sold"], + "x-graphql-enum-mapping": { + "available": "INITIAL", + "pending": "IN_PROGRESS", + "sold": "SOLD" + } + } + }, + "xml": { "name": "pet" } + }, + "ApiResponse": { + "type": "object", + "x-graphql-type-name": "Response", + "properties": { + "code": { + "type": "integer", + "x-graphql-field-name": "statusCode", + "format": "int32" + }, + "type": { "type": "string" }, + "message": { "type": "string" } + }, + "xml": { "name": "##default" } + } + }, + "requestBodies": { + "Pet": { + "description": "Pet object that needs to be added to the store", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/Pet" } + }, + "application/xml": { + "schema": { "$ref": "#/components/schemas/Pet" } + } + } + }, + "UserArray": { + "description": "List of user object", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { "$ref": "#/components/schemas/User" } + } + } + } + } + }, + "securitySchemes": { + "petstore_auth": { + "type": "oauth2", + "flows": { + "implicit": { + "authorizationUrl": "https://petstore3.swagger.io/oauth/authorize", + "scopes": { + "write:pets": "modify pets in your account", + "read:pets": "read your pets" + } + } + } + }, + "api_key": { "type": "apiKey", "name": "api_key", "in": "header" } + }, + "callbacks": { + "PetEvent": { + "/pets/{$request.body#/id}/events/+": { + "post": { + "operationId": "petEventListener", + "x-graphql-field-name": "petEvent", + "description": "Listen all pet events owned by userName", + "requestBody": { + "$ref": "#/components/requestBodies/Pet" + }, + "responses": { + "200": { + "description": "Pet event response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ApiResponse" + } + } + } + } + } + } + } + } + }, + "links": { + "Pet": { + "x-graphql-field-name": "orderPet", + "operationId": "getPetById", + "parameters": { + "petId": "$response.body.petId" + }, + "description": "Link from Order to Pet" + } + } + } +} diff --git a/packages/openapi-to-graphql/test/fixtures/extensions_error1.json b/packages/openapi-to-graphql/test/fixtures/extensions_error1.json new file mode 100644 index 00000000..e27c3023 --- /dev/null +++ b/packages/openapi-to-graphql/test/fixtures/extensions_error1.json @@ -0,0 +1,103 @@ +{ + "openapi": "3.0.0", + "info": { + "title": "Example API 2", + "description": "An API to test converting Open API Specs 3.0 to GraphQL", + "version": "1.0.0", + "termsOfService": "http://example.com/terms/", + "contact": { + "name": "Elias Meire", + "url": "http://www.example.com/support" + }, + "license": { + "name": "Apache 2.0", + "url": "http://www.apache.org/licenses/LICENSE-2.0.html" + } + }, + "externalDocs": { + "url": "http://example.com/docs", + "description": "Some more natural language description." + }, + "tags": [ + { + "name": "test", + "description": "Indicates this API is for testing" + } + ], + "servers": [ + { + "url": "http://localhost:{port}/{basePath}", + "description": "The location of the local test server.", + "variables": { + "port": { + "default": "3002" + }, + "basePath": { + "default": "api" + } + } + } + ], + "paths": { + "/user": { + "get": { + "description": "Return a user.", + "responses": { + "202": { + "description": "A user.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/user" + } + } + } + } + } + } + }, + "/user2": { + "get": { + "description": "Return a user2.", + "responses": { + "202": { + "description": "A user2.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/user2" + } + } + } + } + } + } + } + }, + "components": { + "schemas": { + "user": { + "type": "object", + "description": "A user represents a natural person", + "properties": { + "name": { + "type": "string", + "description": "The legal name of a user" + } + } + }, + "user2": { + "type": "object", + "description": "A user2 represents a natural person", + "x-graphql-type-name": "User", + "properties": { + "name": { + "type": "string", + "description": "The legal name of a user" + } + } + } + } + }, + "security": [] +} diff --git a/packages/openapi-to-graphql/test/fixtures/extensions_error2.json b/packages/openapi-to-graphql/test/fixtures/extensions_error2.json new file mode 100644 index 00000000..a833acc4 --- /dev/null +++ b/packages/openapi-to-graphql/test/fixtures/extensions_error2.json @@ -0,0 +1,80 @@ +{ + "openapi": "3.0.0", + "info": { + "title": "Example API 2", + "description": "An API to test converting Open API Specs 3.0 to GraphQL", + "version": "1.0.0", + "termsOfService": "http://example.com/terms/", + "contact": { + "name": "Elias Meire", + "url": "http://www.example.com/support" + }, + "license": { + "name": "Apache 2.0", + "url": "http://www.apache.org/licenses/LICENSE-2.0.html" + } + }, + "externalDocs": { + "url": "http://example.com/docs", + "description": "Some more natural language description." + }, + "tags": [ + { + "name": "test", + "description": "Indicates this API is for testing" + } + ], + "servers": [ + { + "url": "http://localhost:{port}/{basePath}", + "description": "The location of the local test server.", + "variables": { + "port": { + "default": "3002" + }, + "basePath": { + "default": "api" + } + } + } + ], + "paths": { + "/user": { + "get": { + "description": "Return a user.", + "responses": { + "202": { + "description": "A user.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/user" + } + } + } + } + } + } + } + }, + "components": { + "schemas": { + "user": { + "type": "object", + "description": "A user represents a natural person", + "properties": { + "name": { + "type": "string", + "description": "The legal name of a user" + }, + "name2": { + "type": "string", + "x-graphql-field-name": "name", + "description": "The legal name of a user" + } + } + } + } + }, + "security": [] +} diff --git a/packages/openapi-to-graphql/test/fixtures/extensions_error3.json b/packages/openapi-to-graphql/test/fixtures/extensions_error3.json new file mode 100644 index 00000000..c2b98f4f --- /dev/null +++ b/packages/openapi-to-graphql/test/fixtures/extensions_error3.json @@ -0,0 +1,97 @@ +{ + "openapi": "3.0.0", + "info": { + "title": "Example API 2", + "description": "An API to test converting Open API Specs 3.0 to GraphQL", + "version": "1.0.0", + "termsOfService": "http://example.com/terms/", + "contact": { + "name": "Elias Meire", + "url": "http://www.example.com/support" + }, + "license": { + "name": "Apache 2.0", + "url": "http://www.apache.org/licenses/LICENSE-2.0.html" + } + }, + "externalDocs": { + "url": "http://example.com/docs", + "description": "Some more natural language description." + }, + "tags": [ + { + "name": "test", + "description": "Indicates this API is for testing" + } + ], + "servers": [ + { + "url": "http://localhost:{port}/{basePath}", + "description": "The location of the local test server.", + "variables": { + "port": { + "default": "3002" + }, + "basePath": { + "default": "api" + } + } + } + ], + "paths": { + "/user": { + "get": { + "description": "Return a user.", + "responses": { + "202": { + "description": "A user.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/user" + } + } + } + } + } + } + }, + "/user2": { + "get": { + "description": "Return a user.", + "x-graphql-field-name": "user", + "responses": { + "202": { + "description": "A user.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/user" + } + } + } + } + } + } + } + }, + "components": { + "schemas": { + "user": { + "type": "object", + "description": "A user represents a natural person", + "properties": { + "name": { + "type": "string", + "description": "The legal name of a user" + }, + "name2": { + "type": "string", + "description": "The legal name of a user" + } + } + } + } + }, + "security": [] +} diff --git a/packages/openapi-to-graphql/test/fixtures/extensions_error4.json b/packages/openapi-to-graphql/test/fixtures/extensions_error4.json new file mode 100644 index 00000000..7689c3c5 --- /dev/null +++ b/packages/openapi-to-graphql/test/fixtures/extensions_error4.json @@ -0,0 +1,109 @@ +{ + "openapi": "3.0.0", + "info": { + "title": "Example API 2", + "description": "An API to test converting Open API Specs 3.0 to GraphQL", + "version": "1.0.0", + "termsOfService": "http://example.com/terms/", + "contact": { + "name": "Elias Meire", + "url": "http://www.example.com/support" + }, + "license": { + "name": "Apache 2.0", + "url": "http://www.apache.org/licenses/LICENSE-2.0.html" + } + }, + "externalDocs": { + "url": "http://example.com/docs", + "description": "Some more natural language description." + }, + "tags": [ + { + "name": "test", + "description": "Indicates this API is for testing" + } + ], + "servers": [ + { + "url": "http://localhost:{port}/{basePath}", + "description": "The location of the local test server.", + "variables": { + "port": { + "default": "3002" + }, + "basePath": { + "default": "api" + } + } + } + ], + "paths": { + "/user": { + "post": { + "tags": ["user"], + "summary": "Creates a user", + "description": "Creates a user", + "operationId": "createUser", + "requestBody": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/user" } + } + } + }, + "responses": { + "200": { + "description": "Successful operation", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/user" } + } + } + } + } + } + }, + "/user2": { + "post": { + "tags": ["user"], + "summary": "Creates a user", + "description": "Creates a user", + "operationId": "createUser2", + "x-graphql-field-name": "createUser", + "requestBody": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/user" } + } + } + }, + "responses": { + "200": { + "description": "Successful operation", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/user" } + } + } + } + } + } + } + }, + "components": { + "schemas": { + "user": { + "type": "object", + "description": "A user represents a natural person", + "properties": { + "name": { + "type": "string", + "description": "The legal name of a user" + } + } + } + } + }, + "security": [] +} diff --git a/packages/openapi-to-graphql/test/fixtures/extensions_error5.json b/packages/openapi-to-graphql/test/fixtures/extensions_error5.json new file mode 100644 index 00000000..b9b81319 --- /dev/null +++ b/packages/openapi-to-graphql/test/fixtures/extensions_error5.json @@ -0,0 +1,120 @@ +{ + "openapi": "3.0.0", + "info": { + "title": "Example API 2", + "description": "An API to test converting Open API Specs 3.0 to GraphQL", + "version": "1.0.0", + "termsOfService": "http://example.com/terms/", + "contact": { + "name": "Elias Meire", + "url": "http://www.example.com/support" + }, + "license": { + "name": "Apache 2.0", + "url": "http://www.apache.org/licenses/LICENSE-2.0.html" + } + }, + "externalDocs": { + "url": "http://example.com/docs", + "description": "Some more natural language description." + }, + "tags": [ + { + "name": "test", + "description": "Indicates this API is for testing" + } + ], + "servers": [ + { + "url": "http://localhost:{port}/{basePath}", + "description": "The location of the local test server.", + "variables": { + "port": { + "default": "3002" + }, + "basePath": { + "default": "api" + } + } + } + ], + "paths": { + "/user": { + "post": { + "tags": ["user"], + "summary": "Creates a user", + "description": "Creates a user", + "operationId": "createUser", + "requestBody": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/user" } + } + } + }, + "responses": { + "200": { + "description": "Successful operation", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/user" } + } + } + } + }, + "callbacks": { + "userCreated": { + "$ref": "#/components/callbacks/UserEvent" + }, + "userCreated2": { + "$ref": "#/components/callbacks/UserEvent2" + } + } + } + } + }, + "components": { + "schemas": { + "user": { + "type": "object", + "description": "A user represents a natural person", + "properties": { + "name": { + "type": "string", + "description": "The legal name of a user" + } + } + } + }, + "callbacks": { + "UserEvent": { + "/users/{$request.body#/id}/events/+": { + "post": { + "operationId": "userEventListener", + "description": "Listen all user events owned by userName", + "responses": { + "204": { + "description": "user event response" + } + } + } + } + }, + "UserEvent2": { + "/users/{$request.body#/id}/events/+": { + "post": { + "operationId": "userEventListener2", + "x-graphql-field-name": "userEventListener", + "description": "Listen all user events owned by userName", + "responses": { + "204": { + "description": "user event response" + } + } + } + } + } + } + }, + "security": [] +} diff --git a/packages/openapi-to-graphql/test/fixtures/extensions_error6.json b/packages/openapi-to-graphql/test/fixtures/extensions_error6.json new file mode 100644 index 00000000..a66c9bac --- /dev/null +++ b/packages/openapi-to-graphql/test/fixtures/extensions_error6.json @@ -0,0 +1,144 @@ +{ + "openapi": "3.0.0", + "info": { + "title": "Example API 2", + "description": "An API to test converting Open API Specs 3.0 to GraphQL", + "version": "1.0.0", + "termsOfService": "http://example.com/terms/", + "contact": { + "name": "Elias Meire", + "url": "http://www.example.com/support" + }, + "license": { + "name": "Apache 2.0", + "url": "http://www.apache.org/licenses/LICENSE-2.0.html" + } + }, + "externalDocs": { + "url": "http://example.com/docs", + "description": "Some more natural language description." + }, + "tags": [ + { + "name": "test", + "description": "Indicates this API is for testing" + } + ], + "servers": [ + { + "url": "http://localhost:{port}/{basePath}", + "description": "The location of the local test server.", + "variables": { + "port": { + "default": "3002" + }, + "basePath": { + "default": "api" + } + } + } + ], + "paths": { + "/user": { + "get": { + "description": "Return a user.", + "responses": { + "202": { + "description": "A user.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/user" + } + } + }, + "links": { + "group": { + "$ref": "#/components/links/Group" + }, + "group2": { + "$ref": "#/components/links/Group2" + } + } + } + } + } + }, + "/group/{groupId}": { + "get": { + "description": "Return a group.", + "operationId": "getGroupById", + "parameters": [ + { + "name": "groupId", + "in": "path", + "schema": { + "type": "string" + }, + "required": true + } + ], + "responses": { + "202": { + "description": "A group.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/group" + } + } + } + } + } + } + } + }, + "components": { + "schemas": { + "user": { + "type": "object", + "description": "A user represents a natural person", + "properties": { + "name": { + "type": "string", + "description": "The legal name of a user" + }, + "groupId": { + "type": "string" + } + } + }, + "group": { + "type": "object", + "description": "A group represents a group of people", + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": "string", + "description": "The name of a group" + } + } + } + }, + "links": { + "Group": { + "operationId": "getGroupById", + "parameters": { + "groupId": "$response.body.groupId" + }, + "description": "Link from User to Group" + }, + "Group2": { + "operationId": "getGroupById", + "x-graphql-field-name": "group", + "parameters": { + "groupId": "$response.body.groupId" + }, + "description": "Link from User to Group2" + } + } + }, + "security": [] +} diff --git a/packages/openapi-to-graphql/test/fixtures/extensions_error7.json b/packages/openapi-to-graphql/test/fixtures/extensions_error7.json new file mode 100644 index 00000000..158513ac --- /dev/null +++ b/packages/openapi-to-graphql/test/fixtures/extensions_error7.json @@ -0,0 +1,83 @@ +{ + "openapi": "3.0.0", + "info": { + "title": "Example API 2", + "description": "An API to test converting Open API Specs 3.0 to GraphQL", + "version": "1.0.0", + "termsOfService": "http://example.com/terms/", + "contact": { + "name": "Elias Meire", + "url": "http://www.example.com/support" + }, + "license": { + "name": "Apache 2.0", + "url": "http://www.apache.org/licenses/LICENSE-2.0.html" + } + }, + "externalDocs": { + "url": "http://example.com/docs", + "description": "Some more natural language description." + }, + "tags": [ + { + "name": "test", + "description": "Indicates this API is for testing" + } + ], + "servers": [ + { + "url": "http://localhost:{port}/{basePath}", + "description": "The location of the local test server.", + "variables": { + "port": { + "default": "3002" + }, + "basePath": { + "default": "api" + } + } + } + ], + "paths": { + "/user": { + "get": { + "description": "Return a user.", + "responses": { + "202": { + "description": "A user.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/user" + } + } + } + } + } + } + } + }, + "components": { + "schemas": { + "user": { + "type": "object", + "description": "A user represents a natural person", + "properties": { + "name": { + "type": "string", + "description": "The legal name of a user" + }, + "status": { + "type": "string", + "enum": ["pending", "active"], + "x-graphql-enum-mapping": { + "pending": "CONFLICT", + "active": "CONFLICT" + } + } + } + } + } + }, + "security": [] +}