From b9070c999baf65467c238c63d016d6fae96551bd Mon Sep 17 00:00:00 2001 From: kirill Date: Fri, 17 Dec 2021 19:16:34 +0200 Subject: [PATCH 1/4] [*] additionalContext, custom templates --- bin/index.js | 58 ++++++++++++++++++++ src/index.ts | 15 ++++- src/utils/registerHandlebarTemplates.spec.ts | 41 ++++++++++++++ src/utils/registerHandlebarTemplates.ts | 13 ++++- src/utils/writeClient.ts | 10 ++-- src/utils/writeClientModels.ts | 4 +- src/utils/writeClientSchemas.ts | 5 +- src/utils/writeClientServices.ts | 4 +- 8 files changed, 137 insertions(+), 13 deletions(-) diff --git a/bin/index.js b/bin/index.js index a65eb7efb..eac9b6812 100755 --- a/bin/index.js +++ b/bin/index.js @@ -5,6 +5,41 @@ const path = require('path'); const program = require('commander'); const pkg = require('../package.json'); +const fs = require('fs'); +const handlebars = require('handlebars'); + +function filePathToHandlebars(filePath){ + if (!filePath){ + return + } + const template = fs.readFileSync(filePath, 'utf8').toString().trim(); + let prtemplate = handlebars.precompile(template, { + strict: true, + noEscape: false, + preventIndent: true, + knownHelpersOnly: true, + knownHelpers: { + equals: true, + notEquals: true, + containsSpaces: true, + union: true, + intersection: true, + enumerator: true, + }, + }); + let result; + eval(`result = ${prtemplate};`); + // @ts-ignore + return result; +} + +function isFileExists(filePath){ + try { + return fs.existsSync(filePath) + } catch (error) { + return false + } +} const params = program .name('openapi') @@ -21,12 +56,29 @@ const params = program .option('--exportSchemas ', 'Write schemas to disk', false) .option('--postfix ', 'Service name postfix', 'Service') .option('--request ', 'Path to custom request file') + .option('--hbsOverrideModel ', 'Path to custom hbs file for model') + .option('--hbsOverrideService ', 'Path to custom hbs file for service') + .option('--hbsOverrideSchema ', 'Path to custom hbs file for schema') + .option('--additionalContext ', 'Additional context for models, service and schema template files') .parse(process.argv) .opts(); const OpenAPI = require(path.resolve(__dirname, '../dist/index.js')); if (OpenAPI) { + let additionalContext = {}; + if (params.additionalContext){ + additionalContext = params.additionalContext; + if (isFileExists(additionalContext)){ + additionalContext = fs.readFileSync(additionalContext); + } + try { + additionalContext = JSON.parse(additionalContext) + } catch (error) { + console.error("Failed to parse additionalContext argument", error) + additionalContext = {}; + } + } OpenAPI.generate({ input: params.input, output: params.output, @@ -39,6 +91,12 @@ if (OpenAPI) { exportSchemas: JSON.parse(params.exportSchemas) === true, postfix: params.postfix, request: params.request, + hbsFilesOverride: { + exportModels: filePathToHandlebars(params.hbsOverrideModel), + exportService: filePathToHandlebars(params.hbsOverrideService), + exportSchema: filePathToHandlebars(params.hbsOverrideSchema), + }, + additionalContext: additionalContext, }) .then(() => { process.exit(0); diff --git a/src/index.ts b/src/index.ts index 13b516f1d..7da69ad66 100644 --- a/src/index.ts +++ b/src/index.ts @@ -5,7 +5,7 @@ import { getOpenApiSpec } from './utils/getOpenApiSpec'; import { getOpenApiVersion, OpenApiVersion } from './utils/getOpenApiVersion'; import { isString } from './utils/isString'; import { postProcessClient } from './utils/postProcessClient'; -import { registerHandlebarTemplates } from './utils/registerHandlebarTemplates'; +import { HbsFilesOverride, registerHandlebarTemplates } from './utils/registerHandlebarTemplates'; import { writeClient } from './utils/writeClient'; export { HttpClient } from './HttpClient'; @@ -22,6 +22,8 @@ export type Options = { exportSchemas?: boolean; postfix?: string; request?: string; + hbsFilesOverride?: HbsFilesOverride, + additionalContext: Object, write?: boolean; }; @@ -40,6 +42,8 @@ export type Options = { * @param exportSchemas: Generate schemas * @param postfix: Service name postfix * @param request: Path to custom request file + * @param hbsFilesOverride: Object with paths to hbs files + * @param additionalContext: Additional context for models, service and schema template files * @param write Write the files to disk (true or false) */ export async function generate({ @@ -54,6 +58,8 @@ export async function generate({ exportSchemas = false, postfix = 'Service', request, + hbsFilesOverride, + additionalContext, write = true, }: Options): Promise { const openApi = isString(input) ? await getOpenApiSpec(input) : input; @@ -62,6 +68,7 @@ export async function generate({ httpClient, useUnionTypes, useOptions, + hbsFilesOverride, }); switch (openApiVersion) { @@ -81,7 +88,8 @@ export async function generate({ exportModels, exportSchemas, postfix, - request + request, + additionalContext ); break; } @@ -102,7 +110,8 @@ export async function generate({ exportModels, exportSchemas, postfix, - request + request, + additionalContext ); break; } diff --git a/src/utils/registerHandlebarTemplates.spec.ts b/src/utils/registerHandlebarTemplates.spec.ts index 5e1302384..19d1c2307 100644 --- a/src/utils/registerHandlebarTemplates.spec.ts +++ b/src/utils/registerHandlebarTemplates.spec.ts @@ -1,5 +1,27 @@ import { HttpClient } from '../HttpClient'; import { registerHandlebarTemplates } from './registerHandlebarTemplates'; +import * as handlebars from 'handlebars' + +function stringToHandlebars(template: string){ + let prtemplate = handlebars.precompile(template, { + strict: true, + noEscape: false, + preventIndent: true, + knownHelpersOnly: true, + knownHelpers: { + equals: true, + notEquals: true, + containsSpaces: true, + union: true, + intersection: true, + enumerator: true, + }, + }); + let result; + eval(`result = ${prtemplate};`); + // @ts-ignore + return result; +} describe('registerHandlebarTemplates', () => { it('should return correct templates', () => { @@ -18,4 +40,23 @@ describe('registerHandlebarTemplates', () => { expect(templates.core.apiResult).toBeDefined(); expect(templates.core.request).toBeDefined(); }); + it('should override hbs', () => { + const templates = registerHandlebarTemplates({ + httpClient: HttpClient.FETCH, + useOptions: false, + useUnionTypes: false, + hbsFilesOverride: { + exportModel: stringToHandlebars("{{>header}}\n OVERRIDE") + } + }); + expect(templates.index).toBeDefined(); + expect(templates.exports.model).toBeDefined(); + expect(templates.exports.schema).toBeDefined(); + expect(templates.exports.service).toBeDefined(); + expect(templates.core.settings).toBeDefined(); + expect(templates.core.apiError).toBeDefined(); + expect(templates.core.apiRequestOptions).toBeDefined(); + expect(templates.core.apiResult).toBeDefined(); + expect(templates.core.request).toBeDefined(); + }); }); diff --git a/src/utils/registerHandlebarTemplates.ts b/src/utils/registerHandlebarTemplates.ts index fe5a6b1a4..5c06161d6 100644 --- a/src/utils/registerHandlebarTemplates.ts +++ b/src/utils/registerHandlebarTemplates.ts @@ -92,6 +92,12 @@ export interface Templates { }; } +export interface HbsFilesOverride { + exportModel?: TemplateSpecification, + exportSchema?: TemplateSpecification, + exportService?: TemplateSpecification +} + /** * Read all the Handlebar templates that we need and return on wrapper object * so we can easily access the templates in out generator / write functions. @@ -100,6 +106,7 @@ export function registerHandlebarTemplates(root: { httpClient: HttpClient; useOptions: boolean; useUnionTypes: boolean; + hbsFilesOverride?: HbsFilesOverride; }): Templates { registerHandlebarHelpers(root); @@ -107,9 +114,9 @@ export function registerHandlebarTemplates(root: { const templates: Templates = { index: Handlebars.template(templateIndex), exports: { - model: Handlebars.template(templateExportModel), - schema: Handlebars.template(templateExportSchema), - service: Handlebars.template(templateExportService), + model: Handlebars.template(root.hbsFilesOverride?.exportModel || templateExportModel), + schema: Handlebars.template(root.hbsFilesOverride?.exportSchema || templateExportSchema), + service: Handlebars.template(root.hbsFilesOverride?.exportService || templateExportService), }, core: { settings: Handlebars.template(templateCoreSettings), diff --git a/src/utils/writeClient.ts b/src/utils/writeClient.ts index f1858bee3..727f3bca7 100644 --- a/src/utils/writeClient.ts +++ b/src/utils/writeClient.ts @@ -39,7 +39,8 @@ export async function writeClient( exportModels: boolean, exportSchemas: boolean, postfix: string, - request?: string + request?: string, + additionalContext?: Object ): Promise { const outputPath = resolve(process.cwd(), output); const outputPathCore = resolve(outputPath, 'core'); @@ -67,20 +68,21 @@ export async function writeClient( httpClient, useUnionTypes, useOptions, - postfix + postfix, + additionalContext ); } if (exportSchemas) { await rmdir(outputPathSchemas); await mkdir(outputPathSchemas); - await writeClientSchemas(client.models, templates, outputPathSchemas, httpClient, useUnionTypes); + await writeClientSchemas(client.models, templates, outputPathSchemas, httpClient, useUnionTypes, additionalContext); } if (exportModels) { await rmdir(outputPathModels); await mkdir(outputPathModels); - await writeClientModels(client.models, templates, outputPathModels, httpClient, useUnionTypes); + await writeClientModels(client.models, templates, outputPathModels, httpClient, useUnionTypes, additionalContext); } if (exportCore || exportServices || exportSchemas || exportModels) { diff --git a/src/utils/writeClientModels.ts b/src/utils/writeClientModels.ts index 2a2b087d4..e59307ea5 100644 --- a/src/utils/writeClientModels.ts +++ b/src/utils/writeClientModels.ts @@ -19,7 +19,8 @@ export async function writeClientModels( templates: Templates, outputPath: string, httpClient: HttpClient, - useUnionTypes: boolean + useUnionTypes: boolean, + additionalContext?: Object ): Promise { for (const model of models) { const file = resolve(outputPath, `${model.name}.ts`); @@ -27,6 +28,7 @@ export async function writeClientModels( ...model, httpClient, useUnionTypes, + additionalContext: additionalContext || {} }); await writeFile(file, format(templateResult)); } diff --git a/src/utils/writeClientSchemas.ts b/src/utils/writeClientSchemas.ts index f307b01a6..855724bdb 100644 --- a/src/utils/writeClientSchemas.ts +++ b/src/utils/writeClientSchemas.ts @@ -13,13 +13,15 @@ import { Templates } from './registerHandlebarTemplates'; * @param outputPath Directory to write the generated files to * @param httpClient The selected httpClient (fetch, xhr, node or axios) * @param useUnionTypes Use union types instead of enums + * @param additionalContext Additional context for models, service and schema template files */ export async function writeClientSchemas( models: Model[], templates: Templates, outputPath: string, httpClient: HttpClient, - useUnionTypes: boolean + useUnionTypes: boolean, + additionalContext?: Object ): Promise { for (const model of models) { const file = resolve(outputPath, `$${model.name}.ts`); @@ -27,6 +29,7 @@ export async function writeClientSchemas( ...model, httpClient, useUnionTypes, + additionalContext: additionalContext || {} }); await writeFile(file, format(templateResult)); } diff --git a/src/utils/writeClientServices.ts b/src/utils/writeClientServices.ts index 731ed5327..4470631c2 100644 --- a/src/utils/writeClientServices.ts +++ b/src/utils/writeClientServices.ts @@ -25,7 +25,8 @@ export async function writeClientServices( httpClient: HttpClient, useUnionTypes: boolean, useOptions: boolean, - postfix: string + postfix: string, + additionalContext?: Object ): Promise { for (const service of services) { const file = resolve(outputPath, `${service.name}${postfix}.ts`); @@ -37,6 +38,7 @@ export async function writeClientServices( useVersion, useOptions, postfix, + additionalContext: additionalContext || {} }); await writeFile(file, format(templateResult)); } From 0ab0fee303cc566e20bf13285c553977ac32b973 Mon Sep 17 00:00:00 2001 From: kirill Date: Fri, 17 Dec 2021 19:21:50 +0200 Subject: [PATCH 2/4] [+] dit --- dist/index.js | 5301 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 5301 insertions(+) create mode 100644 dist/index.js diff --git a/dist/index.js b/dist/index.js new file mode 100644 index 000000000..fb8d6a4c8 --- /dev/null +++ b/dist/index.js @@ -0,0 +1,5301 @@ +'use strict'; + +Object.defineProperty(exports, '__esModule', { value: true }); + +var os = require('os'); +var camelCase = require('camelcase'); +var RefParser = require('json-schema-ref-parser'); +var Handlebars = require('handlebars/runtime'); +var path = require('path'); +var fs = require('fs'); +var mkdirp = require('mkdirp'); +var rimraf = require('rimraf'); +var util = require('util'); + +function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; } + +function _interopNamespace(e) { + if (e && e.__esModule) return e; + var n = Object.create(null); + if (e) { + Object.keys(e).forEach(function (k) { + if (k !== 'default') { + var d = Object.getOwnPropertyDescriptor(e, k); + Object.defineProperty(n, k, d.get ? d : { + enumerable: true, + get: function () { return e[k]; } + }); + } + }); + } + n["default"] = e; + return Object.freeze(n); +} + +var camelCase__default = /*#__PURE__*/_interopDefaultLegacy(camelCase); +var RefParser__default = /*#__PURE__*/_interopDefaultLegacy(RefParser); +var Handlebars__namespace = /*#__PURE__*/_interopNamespace(Handlebars); +var mkdirp__default = /*#__PURE__*/_interopDefaultLegacy(mkdirp); +var rimraf__default = /*#__PURE__*/_interopDefaultLegacy(rimraf); + +exports.HttpClient = void 0; +(function (HttpClient) { + HttpClient["FETCH"] = "fetch"; + HttpClient["XHR"] = "xhr"; + HttpClient["NODE"] = "node"; + HttpClient["AXIOS"] = "axios"; +})(exports.HttpClient || (exports.HttpClient = {})); + +/** + * The spec generates a pattern like this '^\d{3}-\d{2}-\d{4}$' + * However, to use it in HTML or inside new RegExp() we need to + * escape the pattern to become: '^\\d{3}-\\d{2}-\\d{4}$' in order + * to make it a valid regexp string. + * @param pattern + */ +function getPattern(pattern) { + return pattern === null || pattern === void 0 ? void 0 : pattern.replace(/\\/g, '\\\\'); +} + +/** + * Extend the enum with the x-enum properties. This adds the capability + * to use names and descriptions inside the generated enums. + * @param enumerators + * @param definition + */ +function extendEnum$1(enumerators, definition) { + const names = definition['x-enum-varnames']; + const descriptions = definition['x-enum-descriptions']; + return enumerators.map((enumerator, index) => ({ + name: (names === null || names === void 0 ? void 0 : names[index]) || enumerator.name, + description: (descriptions === null || descriptions === void 0 ? void 0 : descriptions[index]) || enumerator.description, + value: enumerator.value, + type: enumerator.type, + })); +} + +/** + * Cleanup comment and prefix multiline comments with "*", + * so they look a bit nicer when used in the generated code. + * @param comment + */ +function getComment$1(comment) { + if (comment) { + return comment.replace(/(\*\/)/g, '*_/').replace(/\r?\n(.*)/g, (_, w) => `${os.EOL} * ${w.trim()}`); + } + return null; +} + +/** + * Check if a value is defined + * @param value + */ +function isDefined(value) { + return value !== undefined && value !== null && value !== ''; +} + +function getEnum$1(values) { + if (Array.isArray(values)) { + return values + .filter((value, index, arr) => { + return arr.indexOf(value) === index; + }) + .filter(isDefined) + .map(value => { + if (typeof value === 'number') { + return { + name: `'_${value}'`, + value: String(value), + type: 'number', + description: null, + }; + } + return { + name: String(value) + .replace(/\W+/g, '_') + .replace(/^(\d+)/g, '_$1') + .replace(/([a-z])([A-Z]+)/g, '$1_$2') + .toUpperCase(), + value: `'${value}'`, + type: 'string', + description: null, + }; + }); + } + return []; +} + +/** + * @deprecated + */ +function getEnumFromDescription$1(description) { + // Check if we can find this special format string: + // None=0,Something=1,AnotherThing=2 + if (/^(\w+=[0-9]+)/g.test(description)) { + const matches = description.match(/(\w+=[0-9]+,?)/g); + if (matches) { + // Grab the values from the description + const symbols = []; + matches.forEach(match => { + const name = match.split('=')[0]; + const value = parseInt(match.split('=')[1].replace(/[^0-9]/g, '')); + if (name && Number.isInteger(value)) { + symbols.push({ + name: name + .replace(/\W+/g, '_') + .replace(/^(\d+)/g, '_$1') + .replace(/([a-z])([A-Z]+)/g, '$1_$2') + .toUpperCase(), + value: String(value), + type: 'number', + description: null, + }); + } + }); + // Filter out any duplicate names + return symbols.filter((symbol, index, arr) => { + return arr.map(item => item.name).indexOf(symbol.name) === index; + }); + } + } + return []; +} + +function escapeName$1(value) { + if (value) { + const validName = /^[a-zA-Z_$][\w$]+$/g.test(value); + if (!validName) { + return `'${value}'`; + } + } + return value; +} + +const TYPE_MAPPINGS$1 = new Map([ + ['File', 'binary'], + ['file', 'binary'], + ['any', 'any'], + ['object', 'any'], + ['array', 'any[]'], + ['boolean', 'boolean'], + ['byte', 'number'], + ['int', 'number'], + ['integer', 'number'], + ['float', 'number'], + ['double', 'number'], + ['short', 'number'], + ['long', 'number'], + ['number', 'number'], + ['char', 'string'], + ['date', 'string'], + ['date-time', 'string'], + ['password', 'string'], + ['string', 'string'], + ['void', 'void'], + ['null', 'null'], +]); +/** + * Get mapped type for given type to any basic Typescript/Javascript type. + */ +function getMappedType$1(type, format) { + if (format === 'binary') { + return 'binary'; + } + return TYPE_MAPPINGS$1.get(type); +} + +/** + * Strip (OpenAPI) namespaces fom values. + * @param value + */ +function stripNamespace$1(value) { + return value + .trim() + .replace(/^#\/definitions\//, '') + .replace(/^#\/parameters\//, '') + .replace(/^#\/responses\//, '') + .replace(/^#\/securityDefinitions\//, ''); +} + +function encode$1(value) { + return value.replace(/^[^a-zA-Z_$]+/g, '').replace(/[^\w$]+/g, '_'); +} +/** + * Parse any string value into a type object. + * @param type String value like "integer" or "Link[Model]". + * @param format String value like "binary" or "date". + */ +function getType$1(type = 'any', format) { + const result = { + type: 'any', + base: 'any', + template: null, + imports: [], + isNullable: false, + }; + const mapped = getMappedType$1(type, format); + if (mapped) { + result.type = mapped; + result.base = mapped; + return result; + } + const typeWithoutNamespace = decodeURIComponent(stripNamespace$1(type)); + if (/\[.*\]$/g.test(typeWithoutNamespace)) { + const matches = typeWithoutNamespace.match(/(.*?)\[(.*)\]$/); + if (matches === null || matches === void 0 ? void 0 : matches.length) { + const match1 = getType$1(encode$1(matches[1])); + const match2 = getType$1(encode$1(matches[2])); + if (match1.type === 'any[]') { + result.type = `${match2.type}[]`; + result.base = match2.type; + match1.imports = []; + } + else if (match2.type) { + result.type = `${match1.type}<${match2.type}>`; + result.base = match1.type; + result.template = match2.type; + } + else { + result.type = match1.type; + result.base = match1.type; + result.template = match1.type; + } + result.imports.push(...match1.imports); + result.imports.push(...match2.imports); + return result; + } + } + if (typeWithoutNamespace) { + const type = encode$1(typeWithoutNamespace); + result.type = type; + result.base = type; + result.imports.push(type); + return result; + } + return result; +} + +function getModelProperties$1(openApi, definition, getModel) { + var _a; + const models = []; + for (const propertyName in definition.properties) { + if (definition.properties.hasOwnProperty(propertyName)) { + const property = definition.properties[propertyName]; + const propertyRequired = !!((_a = definition.required) === null || _a === void 0 ? void 0 : _a.includes(propertyName)); + if (property.$ref) { + const model = getType$1(property.$ref); + models.push({ + name: escapeName$1(propertyName), + export: 'reference', + type: model.type, + base: model.base, + template: model.template, + link: null, + description: getComment$1(property.description), + isDefinition: false, + isReadOnly: property.readOnly === true, + isRequired: propertyRequired, + isNullable: property['x-nullable'] === true, + format: property.format, + maximum: property.maximum, + exclusiveMaximum: property.exclusiveMaximum, + minimum: property.minimum, + exclusiveMinimum: property.exclusiveMinimum, + multipleOf: property.multipleOf, + maxLength: property.maxLength, + minLength: property.minLength, + maxItems: property.maxItems, + minItems: property.minItems, + uniqueItems: property.uniqueItems, + maxProperties: property.maxProperties, + minProperties: property.minProperties, + pattern: getPattern(property.pattern), + imports: model.imports, + enum: [], + enums: [], + properties: [], + }); + } + else { + const model = getModel(openApi, property); + models.push({ + name: escapeName$1(propertyName), + export: model.export, + type: model.type, + base: model.base, + template: model.template, + link: model.link, + description: getComment$1(property.description), + isDefinition: false, + isReadOnly: property.readOnly === true, + isRequired: propertyRequired, + isNullable: property['x-nullable'] === true, + format: property.format, + maximum: property.maximum, + exclusiveMaximum: property.exclusiveMaximum, + minimum: property.minimum, + exclusiveMinimum: property.exclusiveMinimum, + multipleOf: property.multipleOf, + maxLength: property.maxLength, + minLength: property.minLength, + maxItems: property.maxItems, + minItems: property.minItems, + uniqueItems: property.uniqueItems, + maxProperties: property.maxProperties, + minProperties: property.minProperties, + pattern: getPattern(property.pattern), + imports: model.imports, + enum: model.enum, + enums: model.enums, + properties: model.properties, + }); + } + } + } + return models; +} + +const ESCAPED_REF_SLASH$1 = /~1/g; +const ESCAPED_REF_TILDE$1 = /~0/g; +function getRef$1(openApi, item) { + if (item.$ref) { + // Fetch the paths to the definitions, this converts: + // "#/definitions/Form" to ["definitions", "Form"] + const paths = item.$ref + .replace(/^#/g, '') + .split('/') + .filter(item => item); + // Try to find the reference by walking down the path, + // if we cannot find it, then we throw an error. + let result = openApi; + paths.forEach(path => { + const decodedPath = decodeURIComponent(path.replace(ESCAPED_REF_SLASH$1, '/').replace(ESCAPED_REF_TILDE$1, '~')); + if (result.hasOwnProperty(decodedPath)) { + result = result[decodedPath]; + } + else { + throw new Error(`Could not find reference: "${item.$ref}"`); + } + }); + return result; + } + return item; +} + +function getRequiredPropertiesFromComposition$1(openApi, required, definitions, getModel) { + return definitions + .reduce((properties, definition) => { + if (definition.$ref) { + const schema = getRef$1(openApi, definition); + return [...properties, ...getModel(openApi, schema).properties]; + } + return [...properties, ...getModel(openApi, definition).properties]; + }, []) + .filter(property => { + return !property.isRequired && required.includes(property.name); + }) + .map(property => { + return Object.assign(Object.assign({}, property), { isRequired: true }); + }); +} + +function getModelComposition$1(openApi, definition, definitions, type, getModel) { + const composition = { + type, + imports: [], + enums: [], + properties: [], + }; + const properties = []; + definitions + .map(definition => getModel(openApi, definition)) + .filter(model => { + const hasProperties = model.properties.length; + const hasEnums = model.enums.length; + const isObject = model.type === 'any'; + const isEmpty = isObject && !hasProperties && !hasEnums; + return !isEmpty; + }) + .forEach(model => { + composition.imports.push(...model.imports); + composition.enums.push(...model.enums); + composition.properties.push(model); + }); + if (definition.required) { + const requiredProperties = getRequiredPropertiesFromComposition$1(openApi, definition.required, definitions, getModel); + requiredProperties.forEach(requiredProperty => { + composition.imports.push(...requiredProperty.imports); + composition.enums.push(...requiredProperty.enums); + }); + properties.push(...requiredProperties); + } + if (definition.properties) { + const modelProperties = getModelProperties$1(openApi, definition, getModel); + modelProperties.forEach(modelProperty => { + composition.imports.push(...modelProperty.imports); + composition.enums.push(...modelProperty.enums); + if (modelProperty.export === 'enum') { + composition.enums.push(modelProperty); + } + }); + properties.push(...modelProperties); + } + if (properties.length) { + composition.properties.push({ + name: 'properties', + export: 'interface', + type: 'any', + base: 'any', + template: null, + link: null, + description: '', + isDefinition: false, + isReadOnly: false, + isNullable: false, + isRequired: false, + imports: [], + enum: [], + enums: [], + properties, + }); + } + return composition; +} + +function getModel$1(openApi, definition, isDefinition = false, name = '') { + var _a; + const model = { + name, + export: 'interface', + type: 'any', + base: 'any', + template: null, + link: null, + description: getComment$1(definition.description), + isDefinition, + isReadOnly: definition.readOnly === true, + isNullable: definition['x-nullable'] === true, + isRequired: false, + format: definition.format, + maximum: definition.maximum, + exclusiveMaximum: definition.exclusiveMaximum, + minimum: definition.minimum, + exclusiveMinimum: definition.exclusiveMinimum, + multipleOf: definition.multipleOf, + maxLength: definition.maxLength, + minLength: definition.minLength, + maxItems: definition.maxItems, + minItems: definition.minItems, + uniqueItems: definition.uniqueItems, + maxProperties: definition.maxProperties, + minProperties: definition.minProperties, + pattern: getPattern(definition.pattern), + imports: [], + enum: [], + enums: [], + properties: [], + }; + if (definition.$ref) { + const definitionRef = getType$1(definition.$ref); + model.export = 'reference'; + model.type = definitionRef.type; + model.base = definitionRef.base; + model.template = definitionRef.template; + model.imports.push(...definitionRef.imports); + return model; + } + if (definition.enum && definition.type !== 'boolean') { + const enumerators = getEnum$1(definition.enum); + const extendedEnumerators = extendEnum$1(enumerators, definition); + if (extendedEnumerators.length) { + model.export = 'enum'; + model.type = 'string'; + model.base = 'string'; + model.enum.push(...extendedEnumerators); + return model; + } + } + if ((definition.type === 'int' || definition.type === 'integer') && definition.description) { + const enumerators = getEnumFromDescription$1(definition.description); + if (enumerators.length) { + model.export = 'enum'; + model.type = 'number'; + model.base = 'number'; + model.enum.push(...enumerators); + return model; + } + } + if (definition.type === 'array' && definition.items) { + if (definition.items.$ref) { + const arrayItems = getType$1(definition.items.$ref); + model.export = 'array'; + model.type = arrayItems.type; + model.base = arrayItems.base; + model.template = arrayItems.template; + model.imports.push(...arrayItems.imports); + return model; + } + else { + const arrayItems = getModel$1(openApi, definition.items); + model.export = 'array'; + model.type = arrayItems.type; + model.base = arrayItems.base; + model.template = arrayItems.template; + model.link = arrayItems; + model.imports.push(...arrayItems.imports); + return model; + } + } + if (definition.type === 'object' && typeof definition.additionalProperties === 'object') { + if (definition.additionalProperties.$ref) { + const additionalProperties = getType$1(definition.additionalProperties.$ref); + model.export = 'dictionary'; + model.type = additionalProperties.type; + model.base = additionalProperties.base; + model.template = additionalProperties.template; + model.imports.push(...additionalProperties.imports); + return model; + } + else { + const additionalProperties = getModel$1(openApi, definition.additionalProperties); + model.export = 'dictionary'; + model.type = additionalProperties.type; + model.base = additionalProperties.base; + model.template = additionalProperties.template; + model.link = additionalProperties; + model.imports.push(...additionalProperties.imports); + return model; + } + } + if ((_a = definition.allOf) === null || _a === void 0 ? void 0 : _a.length) { + const composition = getModelComposition$1(openApi, definition, definition.allOf, 'all-of', getModel$1); + model.export = composition.type; + model.imports.push(...composition.imports); + model.properties.push(...composition.properties); + model.enums.push(...composition.enums); + return model; + } + if (definition.type === 'object') { + model.export = 'interface'; + model.type = 'any'; + model.base = 'any'; + if (definition.properties) { + const modelProperties = getModelProperties$1(openApi, definition, getModel$1); + modelProperties.forEach(modelProperty => { + model.imports.push(...modelProperty.imports); + model.enums.push(...modelProperty.enums); + model.properties.push(modelProperty); + if (modelProperty.export === 'enum') { + model.enums.push(modelProperty); + } + }); + } + return model; + } + // If the schema has a type than it can be a basic or generic type. + if (definition.type) { + const definitionType = getType$1(definition.type, definition.format); + model.export = 'generic'; + model.type = definitionType.type; + model.base = definitionType.base; + model.template = definitionType.template; + model.imports.push(...definitionType.imports); + return model; + } + return model; +} + +function getModels$1(openApi) { + const models = []; + for (const definitionName in openApi.definitions) { + if (openApi.definitions.hasOwnProperty(definitionName)) { + const definition = openApi.definitions[definitionName]; + const definitionType = getType$1(definitionName); + const model = getModel$1(openApi, definition, true, definitionType.base); + models.push(model); + } + } + return models; +} + +/** + * Get the base server url. + * @param openApi + */ +function getServer$1(openApi) { + var _a; + const scheme = ((_a = openApi.schemes) === null || _a === void 0 ? void 0 : _a[0]) || 'http'; + const host = openApi.host; + const basePath = openApi.basePath || ''; + const url = host ? `${scheme}://${host}${basePath}` : basePath; + return url.replace(/\/$/g, ''); +} + +function unique(val, index, arr) { + return arr.indexOf(val) === index; +} + +function escapeDescription$1(value) { + return value.replace(/([^\\])`/g, '$1\\`').replace(/(\*\/)/g, '*_/'); +} + +function getOperationErrors$1(operationResponses) { + return operationResponses + .filter(operationResponse => { + return operationResponse.code >= 300 && operationResponse.description; + }) + .map(response => ({ + code: response.code, + description: escapeDescription$1(response.description), + })); +} + +/** + * Convert the input value to a correct operation (method) classname. + * This converts the input string to camelCase, so the method name follows + * the most popular Javascript and Typescript writing style. + */ +function getOperationName$1(value) { + const clean = value + .replace(/^[^a-zA-Z]+/g, '') + .replace(/[^\w\-]+/g, '-') + .trim(); + return camelCase__default["default"](clean); +} + +function getOperationParameterDefault(parameter, operationParameter) { + var _a; + if (parameter.default === undefined) { + return; + } + if (parameter.default === null) { + return 'null'; + } + const type = parameter.type || typeof parameter.default; + switch (type) { + case 'int': + case 'integer': + case 'number': + if (operationParameter.export === 'enum' && ((_a = operationParameter.enum) === null || _a === void 0 ? void 0 : _a[parameter.default])) { + return operationParameter.enum[parameter.default].value; + } + return parameter.default; + case 'boolean': + return JSON.stringify(parameter.default); + case 'string': + return `'${parameter.default}'`; + case 'object': + try { + return JSON.stringify(parameter.default, null, 4); + } + catch (e) { + // Ignore + } + } + return; +} + +const reservedWords$1 = /^(arguments|break|case|catch|class|const|continue|debugger|default|delete|do|else|enum|eval|export|extends|false|finally|for|function|if|implements|import|in|instanceof|interface|let|new|null|package|private|protected|public|return|static|super|switch|this|throw|true|try|typeof|var|void|while|with|yield)$/g; +/** + * Replaces any invalid characters from a parameter name. + * For example: 'filter.someProperty' becomes 'filterSomeProperty'. + */ +function getOperationParameterName$1(value) { + const clean = value + .replace(/^[^a-zA-Z]+/g, '') + .replace(/[^\w\-]+/g, '-') + .trim(); + return camelCase__default["default"](clean).replace(reservedWords$1, '_$1'); +} + +function getOperationParameter$1(openApi, parameter) { + var _a; + const operationParameter = { + in: parameter.in, + prop: parameter.name, + export: 'interface', + name: getOperationParameterName$1(parameter.name), + type: 'any', + base: 'any', + template: null, + link: null, + description: getComment$1(parameter.description), + isDefinition: false, + isReadOnly: false, + isRequired: parameter.required === true, + isNullable: parameter['x-nullable'] === true, + format: parameter.format, + maximum: parameter.maximum, + exclusiveMaximum: parameter.exclusiveMaximum, + minimum: parameter.minimum, + exclusiveMinimum: parameter.exclusiveMinimum, + multipleOf: parameter.multipleOf, + maxLength: parameter.maxLength, + minLength: parameter.minLength, + maxItems: parameter.maxItems, + minItems: parameter.minItems, + uniqueItems: parameter.uniqueItems, + pattern: getPattern(parameter.pattern), + imports: [], + enum: [], + enums: [], + properties: [], + mediaType: null, + }; + if (parameter.$ref) { + const definitionRef = getType$1(parameter.$ref); + operationParameter.export = 'reference'; + operationParameter.type = definitionRef.type; + operationParameter.base = definitionRef.base; + operationParameter.template = definitionRef.template; + operationParameter.imports.push(...definitionRef.imports); + operationParameter.default = getOperationParameterDefault(parameter, operationParameter); + return operationParameter; + } + if (parameter.enum) { + const enumerators = getEnum$1(parameter.enum); + const extendedEnumerators = extendEnum$1(enumerators, parameter); + if (extendedEnumerators.length) { + operationParameter.export = 'enum'; + operationParameter.type = 'string'; + operationParameter.base = 'string'; + operationParameter.enum.push(...extendedEnumerators); + operationParameter.default = getOperationParameterDefault(parameter, operationParameter); + return operationParameter; + } + } + if ((parameter.type === 'int' || parameter.type === 'integer') && parameter.description) { + const enumerators = getEnumFromDescription$1(parameter.description); + if (enumerators.length) { + operationParameter.export = 'enum'; + operationParameter.type = 'number'; + operationParameter.base = 'number'; + operationParameter.enum.push(...enumerators); + operationParameter.default = getOperationParameterDefault(parameter, operationParameter); + return operationParameter; + } + } + if (parameter.type === 'array' && parameter.items) { + const items = getType$1(parameter.items.type, parameter.items.format); + operationParameter.export = 'array'; + operationParameter.type = items.type; + operationParameter.base = items.base; + operationParameter.template = items.template; + operationParameter.imports.push(...items.imports); + operationParameter.default = getOperationParameterDefault(parameter, operationParameter); + return operationParameter; + } + if (parameter.type === 'object' && parameter.items) { + const items = getType$1(parameter.items.type, parameter.items.format); + operationParameter.export = 'dictionary'; + operationParameter.type = items.type; + operationParameter.base = items.base; + operationParameter.template = items.template; + operationParameter.imports.push(...items.imports); + operationParameter.default = getOperationParameterDefault(parameter, operationParameter); + return operationParameter; + } + let schema = parameter.schema; + if (schema) { + if ((_a = schema.$ref) === null || _a === void 0 ? void 0 : _a.startsWith('#/parameters/')) { + schema = getRef$1(openApi, schema); + } + if (schema.$ref) { + const model = getType$1(schema.$ref); + operationParameter.export = 'reference'; + operationParameter.type = model.type; + operationParameter.base = model.base; + operationParameter.template = model.template; + operationParameter.imports.push(...model.imports); + operationParameter.default = getOperationParameterDefault(parameter, operationParameter); + return operationParameter; + } + else { + const model = getModel$1(openApi, schema); + operationParameter.export = model.export; + operationParameter.type = model.type; + operationParameter.base = model.base; + operationParameter.template = model.template; + operationParameter.link = model.link; + operationParameter.imports.push(...model.imports); + operationParameter.enum.push(...model.enum); + operationParameter.enums.push(...model.enums); + operationParameter.properties.push(...model.properties); + operationParameter.default = getOperationParameterDefault(parameter, operationParameter); + return operationParameter; + } + } + // If the parameter has a type than it can be a basic or generic type. + if (parameter.type) { + const definitionType = getType$1(parameter.type, parameter.format); + operationParameter.export = 'generic'; + operationParameter.type = definitionType.type; + operationParameter.base = definitionType.base; + operationParameter.template = definitionType.template; + operationParameter.imports.push(...definitionType.imports); + operationParameter.default = getOperationParameterDefault(parameter, operationParameter); + return operationParameter; + } + return operationParameter; +} + +function getOperationParameters$1(openApi, parameters) { + const operationParameters = { + imports: [], + parameters: [], + parametersPath: [], + parametersQuery: [], + parametersForm: [], + parametersCookie: [], + parametersHeader: [], + parametersBody: null, + }; + // Iterate over the parameters + parameters.forEach(parameterOrReference => { + const parameterDef = getRef$1(openApi, parameterOrReference); + const parameter = getOperationParameter$1(openApi, parameterDef); + // We ignore the "api-version" param, since we do not want to add this + // as the first / default parameter for each of the service calls. + if (parameter.prop !== 'api-version') { + switch (parameter.in) { + case 'path': + operationParameters.parametersPath.push(parameter); + operationParameters.parameters.push(parameter); + operationParameters.imports.push(...parameter.imports); + break; + case 'query': + operationParameters.parametersQuery.push(parameter); + operationParameters.parameters.push(parameter); + operationParameters.imports.push(...parameter.imports); + break; + case 'header': + operationParameters.parametersHeader.push(parameter); + operationParameters.parameters.push(parameter); + operationParameters.imports.push(...parameter.imports); + break; + case 'formData': + operationParameters.parametersForm.push(parameter); + operationParameters.parameters.push(parameter); + operationParameters.imports.push(...parameter.imports); + break; + case 'body': + operationParameters.parametersBody = parameter; + operationParameters.parameters.push(parameter); + operationParameters.imports.push(...parameter.imports); + break; + } + } + }); + return operationParameters; +} + +/** + * Get the final service path, this replaces the "{api-version}" placeholder + * with a new template string placeholder so we can dynamically inject the + * OpenAPI version without the need to hardcode this in the URL. + * Plus we return the correct parameter names to replace in the URL. + * @param path + */ +function getOperationPath$1(path) { + return path + .replace(/\{(.*?)\}/g, (_, w) => { + return `\${${getOperationParameterName$1(w)}}`; + }) + .replace('${apiVersion}', '${OpenAPI.VERSION}'); +} + +function getOperationResponseHeader$1(operationResponses) { + const header = operationResponses.find(operationResponses => { + return operationResponses.in === 'header'; + }); + if (header) { + return header.name; + } + return null; +} + +function getOperationResponse$1(openApi, response, responseCode) { + var _a; + const operationResponse = { + in: 'response', + name: '', + code: responseCode, + description: getComment$1(response.description), + export: 'generic', + type: 'any', + base: 'any', + template: null, + link: null, + isDefinition: false, + isReadOnly: false, + isRequired: false, + isNullable: false, + imports: [], + enum: [], + enums: [], + properties: [], + }; + // If this response has a schema, then we need to check two things: + // if this is a reference then the parameter is just the 'name' of + // this reference type. Otherwise it might be a complex schema and + // then we need to parse the schema! + let schema = response.schema; + if (schema) { + if ((_a = schema.$ref) === null || _a === void 0 ? void 0 : _a.startsWith('#/responses/')) { + schema = getRef$1(openApi, schema); + } + if (schema.$ref) { + const model = getType$1(schema.$ref); + operationResponse.export = 'reference'; + operationResponse.type = model.type; + operationResponse.base = model.base; + operationResponse.template = model.template; + operationResponse.imports.push(...model.imports); + return operationResponse; + } + else { + const model = getModel$1(openApi, schema); + operationResponse.export = model.export; + operationResponse.type = model.type; + operationResponse.base = model.base; + operationResponse.template = model.template; + operationResponse.link = model.link; + operationResponse.isReadOnly = model.isReadOnly; + operationResponse.isRequired = model.isRequired; + operationResponse.isNullable = model.isNullable; + operationResponse.format = model.format; + operationResponse.maximum = model.maximum; + operationResponse.exclusiveMaximum = model.exclusiveMaximum; + operationResponse.minimum = model.minimum; + operationResponse.exclusiveMinimum = model.exclusiveMinimum; + operationResponse.multipleOf = model.multipleOf; + operationResponse.maxLength = model.maxLength; + operationResponse.minLength = model.minLength; + operationResponse.maxItems = model.maxItems; + operationResponse.minItems = model.minItems; + operationResponse.uniqueItems = model.uniqueItems; + operationResponse.maxProperties = model.maxProperties; + operationResponse.minProperties = model.minProperties; + operationResponse.pattern = getPattern(model.pattern); + operationResponse.imports.push(...model.imports); + operationResponse.enum.push(...model.enum); + operationResponse.enums.push(...model.enums); + operationResponse.properties.push(...model.properties); + return operationResponse; + } + } + // We support basic properties from response headers, since both + // fetch and XHR client just support string types. + if (response.headers) { + for (const name in response.headers) { + if (response.headers.hasOwnProperty(name)) { + operationResponse.in = 'header'; + operationResponse.name = name; + operationResponse.type = 'string'; + operationResponse.base = 'string'; + return operationResponse; + } + } + } + return operationResponse; +} + +function getOperationResponseCode$1(value) { + // You can specify a "default" response, this is treated as HTTP code 200 + if (value === 'default') { + return 200; + } + // Check if we can parse the code and return of successful. + if (/[0-9]+/g.test(value)) { + const code = parseInt(value); + if (Number.isInteger(code)) { + return Math.abs(code); + } + } + return null; +} + +function getOperationResponses$1(openApi, responses) { + const operationResponses = []; + // Iterate over each response code and get the + // status code and response message (if any). + for (const code in responses) { + if (responses.hasOwnProperty(code)) { + const responseOrReference = responses[code]; + const response = getRef$1(openApi, responseOrReference); + const responseCode = getOperationResponseCode$1(code); + if (responseCode) { + const operationResponse = getOperationResponse$1(openApi, response, responseCode); + operationResponses.push(operationResponse); + } + } + } + // Sort the responses to 2XX success codes come before 4XX and 5XX error codes. + return operationResponses.sort((a, b) => { + return a.code < b.code ? -1 : a.code > b.code ? 1 : 0; + }); +} + +function areEqual$1(a, b) { + const equal = a.type === b.type && a.base === b.base && a.template === b.template; + if (equal && a.link && b.link) { + return areEqual$1(a.link, b.link); + } + return equal; +} +function getOperationResults$1(operationResponses) { + const operationResults = []; + // Filter out success response codes, but skip "204 No Content" + operationResponses.forEach(operationResponse => { + const { code } = operationResponse; + if (code && code !== 204 && code >= 200 && code < 300) { + operationResults.push(operationResponse); + } + }); + if (!operationResults.length) { + operationResults.push({ + in: 'response', + name: '', + code: 200, + description: '', + export: 'generic', + type: 'void', + base: 'void', + template: null, + link: null, + isDefinition: false, + isReadOnly: false, + isRequired: false, + isNullable: false, + imports: [], + enum: [], + enums: [], + properties: [], + }); + } + return operationResults.filter((operationResult, index, arr) => { + return (arr.findIndex(item => { + return areEqual$1(item, operationResult); + }) === index); + }); +} + +/** + * Convert the input value to a correct service name. This converts + * the input string to PascalCase. + */ +function getServiceName$1(value) { + const clean = value + .replace(/^[^a-zA-Z]+/g, '') + .replace(/[^\w\-]+/g, '-') + .trim(); + return camelCase__default["default"](clean, { pascalCase: true }); +} + +function sortByRequired$1(a, b) { + const aNeedsValue = a.isRequired && a.default === undefined; + const bNeedsValue = b.isRequired && b.default === undefined; + if (aNeedsValue && !bNeedsValue) + return -1; + if (bNeedsValue && !aNeedsValue) + return 1; + return 0; +} + +function getOperation$1(openApi, url, method, tag, op, pathParams) { + const serviceName = getServiceName$1(tag); + const operationNameFallback = `${method}${serviceName}`; + const operationName = getOperationName$1(op.operationId || operationNameFallback); + const operationPath = getOperationPath$1(url); + // Create a new operation object for this method. + const operation = { + service: serviceName, + name: operationName, + summary: getComment$1(op.summary), + description: getComment$1(op.description), + deprecated: op.deprecated === true, + method: method.toUpperCase(), + path: operationPath, + parameters: [...pathParams.parameters], + parametersPath: [...pathParams.parametersPath], + parametersQuery: [...pathParams.parametersQuery], + parametersForm: [...pathParams.parametersForm], + parametersHeader: [...pathParams.parametersHeader], + parametersCookie: [...pathParams.parametersCookie], + parametersBody: pathParams.parametersBody, + imports: [], + errors: [], + results: [], + responseHeader: null, + }; + // Parse the operation parameters (path, query, body, etc). + if (op.parameters) { + const parameters = getOperationParameters$1(openApi, op.parameters); + operation.imports.push(...parameters.imports); + operation.parameters.push(...parameters.parameters); + operation.parametersPath.push(...parameters.parametersPath); + operation.parametersQuery.push(...parameters.parametersQuery); + operation.parametersForm.push(...parameters.parametersForm); + operation.parametersHeader.push(...parameters.parametersHeader); + operation.parametersCookie.push(...parameters.parametersCookie); + operation.parametersBody = parameters.parametersBody; + } + // Parse the operation responses. + if (op.responses) { + const operationResponses = getOperationResponses$1(openApi, op.responses); + const operationResults = getOperationResults$1(operationResponses); + operation.errors = getOperationErrors$1(operationResponses); + operation.responseHeader = getOperationResponseHeader$1(operationResults); + operationResults.forEach(operationResult => { + operation.results.push(operationResult); + operation.imports.push(...operationResult.imports); + }); + } + operation.parameters = operation.parameters.sort(sortByRequired$1); + return operation; +} + +/** + * Get the OpenAPI services + */ +function getServices$1(openApi) { + var _a; + const services = new Map(); + for (const url in openApi.paths) { + if (openApi.paths.hasOwnProperty(url)) { + // Grab path and parse any global path parameters + const path = openApi.paths[url]; + const pathParams = getOperationParameters$1(openApi, path.parameters || []); + // Parse all the methods for this path + for (const method in path) { + if (path.hasOwnProperty(method)) { + switch (method) { + case 'get': + case 'put': + case 'post': + case 'delete': + case 'options': + case 'head': + case 'patch': + // Each method contains an OpenAPI operation, we parse the operation + const op = path[method]; + const tags = ((_a = op.tags) === null || _a === void 0 ? void 0 : _a.filter(unique)) || ['Service']; + tags.forEach(tag => { + const operation = getOperation$1(openApi, url, method, tag, op, pathParams); + // If we have already declared a service, then we should fetch that and + // append the new method to it. Otherwise we should create a new service object. + const service = services.get(operation.service) || { + name: operation.service, + operations: [], + imports: [], + }; + // Push the operation in the service + service.operations.push(operation); + service.imports.push(...operation.imports); + services.set(operation.service, service); + }); + break; + } + } + } + } + } + return Array.from(services.values()); +} + +/** + * Convert the service version to 'normal' version. + * This basically removes any "v" prefix from the version string. + * @param version + */ +function getServiceVersion$1(version = '1.0') { + return String(version).replace(/^v/gi, ''); +} + +/** + * Parse the OpenAPI specification to a Client model that contains + * all the models, services and schema's we should output. + * @param openApi The OpenAPI spec that we have loaded from disk. + */ +function parse$1(openApi) { + const version = getServiceVersion$1(openApi.info.version); + const server = getServer$1(openApi); + const models = getModels$1(openApi); + const services = getServices$1(openApi); + return { version, server, models, services }; +} + +/** + * Extend the enum with the x-enum properties. This adds the capability + * to use names and descriptions inside the generated enums. + * @param enumerators + * @param definition + */ +function extendEnum(enumerators, definition) { + const names = definition['x-enum-varnames']; + const descriptions = definition['x-enum-descriptions']; + return enumerators.map((enumerator, index) => ({ + name: (names === null || names === void 0 ? void 0 : names[index]) || enumerator.name, + description: (descriptions === null || descriptions === void 0 ? void 0 : descriptions[index]) || enumerator.description, + value: enumerator.value, + type: enumerator.type, + })); +} + +/** + * Cleanup comment and prefix multiline comments with "*", + * so they look a bit nicer when used in the generated code. + * @param comment + */ +function getComment(comment) { + if (comment) { + return comment.replace(/(\*\/)/g, '*_/').replace(/\r?\n(.*)/g, (_, w) => `${os.EOL} * ${w.trim()}`); + } + return null; +} + +function getEnum(values) { + if (Array.isArray(values)) { + return values + .filter((value, index, arr) => { + return arr.indexOf(value) === index; + }) + .filter(isDefined) + .map(value => { + if (typeof value === 'number') { + return { + name: `'_${value}'`, + value: String(value), + type: 'number', + description: null, + }; + } + return { + name: String(value) + .replace(/\W+/g, '_') + .replace(/^(\d+)/g, '_$1') + .replace(/([a-z])([A-Z]+)/g, '$1_$2') + .toUpperCase(), + value: `'${value}'`, + type: 'string', + description: null, + }; + }); + } + return []; +} + +/** + * @deprecated + */ +function getEnumFromDescription(description) { + // Check if we can find this special format string: + // None=0,Something=1,AnotherThing=2 + if (/^(\w+=[0-9]+)/g.test(description)) { + const matches = description.match(/(\w+=[0-9]+,?)/g); + if (matches) { + // Grab the values from the description + const symbols = []; + matches.forEach(match => { + const name = match.split('=')[0]; + const value = parseInt(match.split('=')[1].replace(/[^0-9]/g, '')); + if (name && Number.isInteger(value)) { + symbols.push({ + name: name + .replace(/\W+/g, '_') + .replace(/^(\d+)/g, '_$1') + .replace(/([a-z])([A-Z]+)/g, '$1_$2') + .toUpperCase(), + value: String(value), + type: 'number', + description: null, + }); + } + }); + // Filter out any duplicate names + return symbols.filter((symbol, index, arr) => { + return arr.map(item => item.name).indexOf(symbol.name) === index; + }); + } + } + return []; +} + +function escapeName(value) { + if (value) { + const validName = /^[a-zA-Z_$][\w$]+$/g.test(value); + if (!validName) { + return `'${value}'`; + } + } + return value; +} + +const TYPE_MAPPINGS = new Map([ + ['File', 'binary'], + ['file', 'binary'], + ['any', 'any'], + ['object', 'any'], + ['array', 'any[]'], + ['boolean', 'boolean'], + ['byte', 'number'], + ['int', 'number'], + ['integer', 'number'], + ['float', 'number'], + ['double', 'number'], + ['short', 'number'], + ['long', 'number'], + ['number', 'number'], + ['char', 'string'], + ['date', 'string'], + ['date-time', 'string'], + ['password', 'string'], + ['string', 'string'], + ['void', 'void'], + ['null', 'null'], +]); +/** + * Get mapped type for given type to any basic Typescript/Javascript type. + */ +function getMappedType(type, format) { + if (format === 'binary') { + return 'binary'; + } + return TYPE_MAPPINGS.get(type); +} + +/** + * Strip (OpenAPI) namespaces fom values. + * @param value + */ +function stripNamespace(value) { + return value + .trim() + .replace(/^#\/components\/schemas\//, '') + .replace(/^#\/components\/responses\//, '') + .replace(/^#\/components\/parameters\//, '') + .replace(/^#\/components\/examples\//, '') + .replace(/^#\/components\/requestBodies\//, '') + .replace(/^#\/components\/headers\//, '') + .replace(/^#\/components\/securitySchemes\//, '') + .replace(/^#\/components\/links\//, '') + .replace(/^#\/components\/callbacks\//, ''); +} + +function encode(value) { + return value.replace(/^[^a-zA-Z_$]+/g, '').replace(/[^\w$]+/g, '_'); +} +/** + * Parse any string value into a type object. + * @param type String or String[] value like "integer", "Link[Model]" or ["string", "null"]. + * @param format String value like "binary" or "date". + */ +function getType(type = 'any', format) { + const result = { + type: 'any', + base: 'any', + template: null, + imports: [], + isNullable: false, + }; + // Special case for JSON Schema spec (december 2020, page 17), + // that allows type to be an array of primitive types... + if (Array.isArray(type)) { + const joinedType = type + .filter(value => value !== 'null') + .map(value => getMappedType(value, format)) + .filter(isDefined) + .join(' | '); + result.type = joinedType; + result.base = joinedType; + result.isNullable = type.includes('null'); + return result; + } + const mapped = getMappedType(type, format); + if (mapped) { + result.type = mapped; + result.base = mapped; + return result; + } + const typeWithoutNamespace = decodeURIComponent(stripNamespace(type)); + if (/\[.*\]$/g.test(typeWithoutNamespace)) { + const matches = typeWithoutNamespace.match(/(.*?)\[(.*)\]$/); + if (matches === null || matches === void 0 ? void 0 : matches.length) { + const match1 = getType(encode(matches[1])); + const match2 = getType(encode(matches[2])); + if (match1.type === 'any[]') { + result.type = `${match2.type}[]`; + result.base = `${match2.type}`; + match1.imports = []; + } + else if (match2.type) { + result.type = `${match1.type}<${match2.type}>`; + result.base = match1.type; + result.template = match2.type; + } + else { + result.type = match1.type; + result.base = match1.type; + result.template = match1.type; + } + result.imports.push(...match1.imports); + result.imports.push(...match2.imports); + return result; + } + } + if (typeWithoutNamespace) { + const type = encode(typeWithoutNamespace); + result.type = type; + result.base = type; + result.imports.push(type); + return result; + } + return result; +} + +function getModelProperties(openApi, definition, getModel) { + var _a; + const models = []; + for (const propertyName in definition.properties) { + if (definition.properties.hasOwnProperty(propertyName)) { + const property = definition.properties[propertyName]; + const propertyRequired = !!((_a = definition.required) === null || _a === void 0 ? void 0 : _a.includes(propertyName)); + if (property.$ref) { + const model = getType(property.$ref); + models.push({ + name: escapeName(propertyName), + export: 'reference', + type: model.type, + base: model.base, + template: model.template, + link: null, + description: getComment(property.description), + isDefinition: false, + isReadOnly: property.readOnly === true, + isRequired: propertyRequired, + isNullable: model.isNullable || property.nullable === true, + format: property.format, + maximum: property.maximum, + exclusiveMaximum: property.exclusiveMaximum, + minimum: property.minimum, + exclusiveMinimum: property.exclusiveMinimum, + multipleOf: property.multipleOf, + maxLength: property.maxLength, + minLength: property.minLength, + maxItems: property.maxItems, + minItems: property.minItems, + uniqueItems: property.uniqueItems, + maxProperties: property.maxProperties, + minProperties: property.minProperties, + pattern: getPattern(property.pattern), + imports: model.imports, + enum: [], + enums: [], + properties: [], + }); + } + else { + const model = getModel(openApi, property); + models.push({ + name: escapeName(propertyName), + export: model.export, + type: model.type, + base: model.base, + template: model.template, + link: model.link, + description: getComment(property.description), + isDefinition: false, + isReadOnly: property.readOnly === true, + isRequired: propertyRequired, + isNullable: model.isNullable || property.nullable === true, + format: property.format, + maximum: property.maximum, + exclusiveMaximum: property.exclusiveMaximum, + minimum: property.minimum, + exclusiveMinimum: property.exclusiveMinimum, + multipleOf: property.multipleOf, + maxLength: property.maxLength, + minLength: property.minLength, + maxItems: property.maxItems, + minItems: property.minItems, + uniqueItems: property.uniqueItems, + maxProperties: property.maxProperties, + minProperties: property.minProperties, + pattern: getPattern(property.pattern), + imports: model.imports, + enum: model.enum, + enums: model.enums, + properties: model.properties, + }); + } + } + } + return models; +} + +const ESCAPED_REF_SLASH = /~1/g; +const ESCAPED_REF_TILDE = /~0/g; +function getRef(openApi, item) { + if (item.$ref) { + // Fetch the paths to the definitions, this converts: + // "#/components/schemas/Form" to ["components", "schemas", "Form"] + const paths = item.$ref + .replace(/^#/g, '') + .split('/') + .filter(item => item); + // Try to find the reference by walking down the path, + // if we cannot find it, then we throw an error. + let result = openApi; + paths.forEach(path => { + const decodedPath = decodeURIComponent(path.replace(ESCAPED_REF_SLASH, '/').replace(ESCAPED_REF_TILDE, '~')); + if (result.hasOwnProperty(decodedPath)) { + result = result[decodedPath]; + } + else { + throw new Error(`Could not find reference: "${item.$ref}"`); + } + }); + return result; + } + return item; +} + +function getRequiredPropertiesFromComposition(openApi, required, definitions, getModel) { + return definitions + .reduce((properties, definition) => { + if (definition.$ref) { + const schema = getRef(openApi, definition); + return [...properties, ...getModel(openApi, schema).properties]; + } + return [...properties, ...getModel(openApi, definition).properties]; + }, []) + .filter(property => { + return !property.isRequired && required.includes(property.name); + }) + .map(property => { + return Object.assign(Object.assign({}, property), { isRequired: true }); + }); +} + +function getModelComposition(openApi, definition, definitions, type, getModel) { + const composition = { + type, + imports: [], + enums: [], + properties: [], + }; + const properties = []; + definitions + .map(definition => getModel(openApi, definition)) + .filter(model => { + const hasProperties = model.properties.length; + const hasEnums = model.enums.length; + const isObject = model.type === 'any'; + const isEmpty = isObject && !hasProperties && !hasEnums; + return !isEmpty; + }) + .forEach(model => { + composition.imports.push(...model.imports); + composition.enums.push(...model.enums); + composition.properties.push(model); + }); + if (definition.required) { + const requiredProperties = getRequiredPropertiesFromComposition(openApi, definition.required, definitions, getModel); + requiredProperties.forEach(requiredProperty => { + composition.imports.push(...requiredProperty.imports); + composition.enums.push(...requiredProperty.enums); + }); + properties.push(...requiredProperties); + } + if (definition.properties) { + const modelProperties = getModelProperties(openApi, definition, getModel); + modelProperties.forEach(modelProperty => { + composition.imports.push(...modelProperty.imports); + composition.enums.push(...modelProperty.enums); + if (modelProperty.export === 'enum') { + composition.enums.push(modelProperty); + } + }); + properties.push(...modelProperties); + } + if (properties.length) { + composition.properties.push({ + name: 'properties', + export: 'interface', + type: 'any', + base: 'any', + template: null, + link: null, + description: '', + isDefinition: false, + isReadOnly: false, + isNullable: false, + isRequired: false, + imports: [], + enum: [], + enums: [], + properties, + }); + } + return composition; +} + +function getModelDefault(definition, model) { + var _a; + if (definition.default === undefined) { + return; + } + if (definition.default === null) { + return 'null'; + } + const type = definition.type || typeof definition.default; + switch (type) { + case 'int': + case 'integer': + case 'number': + if ((model === null || model === void 0 ? void 0 : model.export) === 'enum' && ((_a = model.enum) === null || _a === void 0 ? void 0 : _a[definition.default])) { + return model.enum[definition.default].value; + } + return definition.default; + case 'boolean': + return JSON.stringify(definition.default); + case 'string': + return `'${definition.default}'`; + case 'object': + try { + return JSON.stringify(definition.default, null, 4); + } + catch (e) { + // Ignore + } + } + return; +} + +function getModel(openApi, definition, isDefinition = false, name = '') { + var _a, _b, _c; + const model = { + name, + export: 'interface', + type: 'any', + base: 'any', + template: null, + link: null, + description: getComment(definition.description), + isDefinition, + isReadOnly: definition.readOnly === true, + isNullable: definition.nullable === true, + isRequired: false, + format: definition.format, + maximum: definition.maximum, + exclusiveMaximum: definition.exclusiveMaximum, + minimum: definition.minimum, + exclusiveMinimum: definition.exclusiveMinimum, + multipleOf: definition.multipleOf, + maxLength: definition.maxLength, + minLength: definition.minLength, + maxItems: definition.maxItems, + minItems: definition.minItems, + uniqueItems: definition.uniqueItems, + maxProperties: definition.maxProperties, + minProperties: definition.minProperties, + pattern: getPattern(definition.pattern), + imports: [], + enum: [], + enums: [], + properties: [], + }; + if (definition.$ref) { + const definitionRef = getType(definition.$ref); + model.export = 'reference'; + model.type = definitionRef.type; + model.base = definitionRef.base; + model.template = definitionRef.template; + model.imports.push(...definitionRef.imports); + model.default = getModelDefault(definition, model); + return model; + } + if (definition.enum && definition.type !== 'boolean') { + const enumerators = getEnum(definition.enum); + const extendedEnumerators = extendEnum(enumerators, definition); + if (extendedEnumerators.length) { + model.export = 'enum'; + model.type = 'string'; + model.base = 'string'; + model.enum.push(...extendedEnumerators); + model.default = getModelDefault(definition, model); + return model; + } + } + if ((definition.type === 'int' || definition.type === 'integer') && definition.description) { + const enumerators = getEnumFromDescription(definition.description); + if (enumerators.length) { + model.export = 'enum'; + model.type = 'number'; + model.base = 'number'; + model.enum.push(...enumerators); + model.default = getModelDefault(definition, model); + return model; + } + } + if (definition.type === 'array' && definition.items) { + if (definition.items.$ref) { + const arrayItems = getType(definition.items.$ref); + model.export = 'array'; + model.type = arrayItems.type; + model.base = arrayItems.base; + model.template = arrayItems.template; + model.imports.push(...arrayItems.imports); + model.default = getModelDefault(definition, model); + return model; + } + else { + const arrayItems = getModel(openApi, definition.items); + model.export = 'array'; + model.type = arrayItems.type; + model.base = arrayItems.base; + model.template = arrayItems.template; + model.link = arrayItems; + model.imports.push(...arrayItems.imports); + model.default = getModelDefault(definition, model); + return model; + } + } + if (definition.type === 'object' && typeof definition.additionalProperties === 'object') { + if (definition.additionalProperties.$ref) { + const additionalProperties = getType(definition.additionalProperties.$ref); + model.export = 'dictionary'; + model.type = additionalProperties.type; + model.base = additionalProperties.base; + model.template = additionalProperties.template; + model.imports.push(...additionalProperties.imports); + model.default = getModelDefault(definition, model); + return model; + } + else { + const additionalProperties = getModel(openApi, definition.additionalProperties); + model.export = 'dictionary'; + model.type = additionalProperties.type; + model.base = additionalProperties.base; + model.template = additionalProperties.template; + model.link = additionalProperties; + model.imports.push(...additionalProperties.imports); + model.default = getModelDefault(definition, model); + return model; + } + } + if ((_a = definition.oneOf) === null || _a === void 0 ? void 0 : _a.length) { + const composition = getModelComposition(openApi, definition, definition.oneOf, 'one-of', getModel); + model.export = composition.type; + model.imports.push(...composition.imports); + model.properties.push(...composition.properties); + model.enums.push(...composition.enums); + return model; + } + if ((_b = definition.anyOf) === null || _b === void 0 ? void 0 : _b.length) { + const composition = getModelComposition(openApi, definition, definition.anyOf, 'any-of', getModel); + model.export = composition.type; + model.imports.push(...composition.imports); + model.properties.push(...composition.properties); + model.enums.push(...composition.enums); + return model; + } + if ((_c = definition.allOf) === null || _c === void 0 ? void 0 : _c.length) { + const composition = getModelComposition(openApi, definition, definition.allOf, 'all-of', getModel); + model.export = composition.type; + model.imports.push(...composition.imports); + model.properties.push(...composition.properties); + model.enums.push(...composition.enums); + return model; + } + if (definition.type === 'object') { + model.export = 'interface'; + model.type = 'any'; + model.base = 'any'; + model.default = getModelDefault(definition, model); + if (definition.properties) { + const modelProperties = getModelProperties(openApi, definition, getModel); + modelProperties.forEach(modelProperty => { + model.imports.push(...modelProperty.imports); + model.enums.push(...modelProperty.enums); + model.properties.push(modelProperty); + if (modelProperty.export === 'enum') { + model.enums.push(modelProperty); + } + }); + } + return model; + } + // If the schema has a type than it can be a basic or generic type. + if (definition.type) { + const definitionType = getType(definition.type, definition.format); + model.export = 'generic'; + model.type = definitionType.type; + model.base = definitionType.base; + model.template = definitionType.template; + model.isNullable = definitionType.isNullable || model.isNullable; + model.imports.push(...definitionType.imports); + model.default = getModelDefault(definition, model); + return model; + } + return model; +} + +function getModels(openApi) { + const models = []; + if (openApi.components) { + for (const definitionName in openApi.components.schemas) { + if (openApi.components.schemas.hasOwnProperty(definitionName)) { + const definition = openApi.components.schemas[definitionName]; + const definitionType = getType(definitionName); + const model = getModel(openApi, definition, true, definitionType.base); + models.push(model); + } + } + } + return models; +} + +function getServer(openApi) { + var _a; + const server = (_a = openApi.servers) === null || _a === void 0 ? void 0 : _a[0]; + const variables = (server === null || server === void 0 ? void 0 : server.variables) || {}; + let url = (server === null || server === void 0 ? void 0 : server.url) || ''; + for (const variable in variables) { + if (variables.hasOwnProperty(variable)) { + url = url.replace(`{${variable}}`, variables[variable].default); + } + } + return url.replace(/\/$/g, ''); +} + +function escapeDescription(value) { + return value.replace(/([^\\])`/g, '$1\\`').replace(/(\*\/)/g, '*_/'); +} + +function getOperationErrors(operationResponses) { + return operationResponses + .filter(operationResponse => { + return operationResponse.code >= 300 && operationResponse.description; + }) + .map(response => ({ + code: response.code, + description: escapeDescription(response.description), + })); +} + +/** + * Convert the input value to a correct operation (method) classname. + * This converts the input string to camelCase, so the method name follows + * the most popular Javascript and Typescript writing style. + */ +function getOperationName(value) { + const clean = value + .replace(/^[^a-zA-Z]+/g, '') + .replace(/[^\w\-]+/g, '-') + .trim(); + return camelCase__default["default"](clean); +} + +const reservedWords = /^(arguments|break|case|catch|class|const|continue|debugger|default|delete|do|else|enum|eval|export|extends|false|finally|for|function|if|implements|import|in|instanceof|interface|let|new|null|package|private|protected|public|return|static|super|switch|this|throw|true|try|typeof|var|void|while|with|yield)$/g; +/** + * Replaces any invalid characters from a parameter name. + * For example: 'filter.someProperty' becomes 'filterSomeProperty'. + */ +function getOperationParameterName(value) { + const clean = value + .replace(/^[^a-zA-Z]+/g, '') + .replace(/[^\w\-]+/g, '-') + .trim(); + return camelCase__default["default"](clean).replace(reservedWords, '_$1'); +} + +function getOperationParameter(openApi, parameter) { + var _a; + const operationParameter = { + in: parameter.in, + prop: parameter.name, + export: 'interface', + name: getOperationParameterName(parameter.name), + type: 'any', + base: 'any', + template: null, + link: null, + description: getComment(parameter.description), + isDefinition: false, + isReadOnly: false, + isRequired: parameter.required === true, + isNullable: parameter.nullable === true, + imports: [], + enum: [], + enums: [], + properties: [], + mediaType: null, + }; + if (parameter.$ref) { + const definitionRef = getType(parameter.$ref); + operationParameter.export = 'reference'; + operationParameter.type = definitionRef.type; + operationParameter.base = definitionRef.base; + operationParameter.template = definitionRef.template; + operationParameter.imports.push(...definitionRef.imports); + return operationParameter; + } + let schema = parameter.schema; + if (schema) { + if ((_a = schema.$ref) === null || _a === void 0 ? void 0 : _a.startsWith('#/components/parameters/')) { + schema = getRef(openApi, schema); + } + if (schema.$ref) { + const model = getType(schema.$ref); + operationParameter.export = 'reference'; + operationParameter.type = model.type; + operationParameter.base = model.base; + operationParameter.template = model.template; + operationParameter.imports.push(...model.imports); + operationParameter.default = getModelDefault(schema); + return operationParameter; + } + else { + const model = getModel(openApi, schema); + operationParameter.export = model.export; + operationParameter.type = model.type; + operationParameter.base = model.base; + operationParameter.template = model.template; + operationParameter.link = model.link; + operationParameter.isReadOnly = model.isReadOnly; + operationParameter.isRequired = operationParameter.isRequired || model.isRequired; + operationParameter.isNullable = operationParameter.isNullable || model.isNullable; + operationParameter.format = model.format; + operationParameter.maximum = model.maximum; + operationParameter.exclusiveMaximum = model.exclusiveMaximum; + operationParameter.minimum = model.minimum; + operationParameter.exclusiveMinimum = model.exclusiveMinimum; + operationParameter.multipleOf = model.multipleOf; + operationParameter.maxLength = model.maxLength; + operationParameter.minLength = model.minLength; + operationParameter.maxItems = model.maxItems; + operationParameter.minItems = model.minItems; + operationParameter.uniqueItems = model.uniqueItems; + operationParameter.maxProperties = model.maxProperties; + operationParameter.minProperties = model.minProperties; + operationParameter.pattern = getPattern(model.pattern); + operationParameter.default = model.default; + operationParameter.imports.push(...model.imports); + operationParameter.enum.push(...model.enum); + operationParameter.enums.push(...model.enums); + operationParameter.properties.push(...model.properties); + return operationParameter; + } + } + return operationParameter; +} + +function getOperationParameters(openApi, parameters) { + const operationParameters = { + imports: [], + parameters: [], + parametersPath: [], + parametersQuery: [], + parametersForm: [], + parametersCookie: [], + parametersHeader: [], + parametersBody: null, // Not used in V3 -> @see requestBody + }; + // Iterate over the parameters + parameters.forEach(parameterOrReference => { + const parameterDef = getRef(openApi, parameterOrReference); + const parameter = getOperationParameter(openApi, parameterDef); + // We ignore the "api-version" param, since we do not want to add this + // as the first / default parameter for each of the service calls. + if (parameter.prop !== 'api-version') { + switch (parameterDef.in) { + case 'path': + operationParameters.parametersPath.push(parameter); + operationParameters.parameters.push(parameter); + operationParameters.imports.push(...parameter.imports); + break; + case 'query': + operationParameters.parametersQuery.push(parameter); + operationParameters.parameters.push(parameter); + operationParameters.imports.push(...parameter.imports); + break; + case 'formData': + operationParameters.parametersForm.push(parameter); + operationParameters.parameters.push(parameter); + operationParameters.imports.push(...parameter.imports); + break; + case 'cookie': + operationParameters.parametersCookie.push(parameter); + operationParameters.parameters.push(parameter); + operationParameters.imports.push(...parameter.imports); + break; + case 'header': + operationParameters.parametersHeader.push(parameter); + operationParameters.parameters.push(parameter); + operationParameters.imports.push(...parameter.imports); + break; + } + } + }); + return operationParameters; +} + +/** + * Get the final service path, this replaces the "{api-version}" placeholder + * with a new template string placeholder so we can dynamically inject the + * OpenAPI version without the need to hardcode this in the URL. + * Plus we return the correct parameter names to replace in the URL. + * @param path + */ +function getOperationPath(path) { + return path + .replace(/\{(.*?)\}/g, (_, w) => { + return `\${${getOperationParameterName(w)}}`; + }) + .replace('${apiVersion}', '${OpenAPI.VERSION}'); +} + +const BASIC_MEDIA_TYPES = [ + 'application/json-patch+json', + 'application/json', + 'application/x-www-form-urlencoded', + 'text/json', + 'text/plain', + 'multipart/form-data', + 'multipart/mixed', + 'multipart/related', + 'multipart/batch', +]; +function getContent(openApi, content) { + const basicMediaTypeWithSchema = Object.keys(content) + .filter(mediaType => { + const cleanMediaType = mediaType.split(';')[0].trim(); + return BASIC_MEDIA_TYPES.includes(cleanMediaType); + }) + .find(mediaType => { var _a; return isDefined((_a = content[mediaType]) === null || _a === void 0 ? void 0 : _a.schema); }); + if (basicMediaTypeWithSchema) { + return { + mediaType: basicMediaTypeWithSchema, + schema: content[basicMediaTypeWithSchema].schema, + }; + } + const firstMediaTypeWithSchema = Object.keys(content).find(mediaType => { var _a; return isDefined((_a = content[mediaType]) === null || _a === void 0 ? void 0 : _a.schema); }); + if (firstMediaTypeWithSchema) { + return { + mediaType: firstMediaTypeWithSchema, + schema: content[firstMediaTypeWithSchema].schema, + }; + } + return null; +} + +function getOperationRequestBody(openApi, body) { + const requestBody = { + in: 'body', + export: 'interface', + prop: 'requestBody', + name: 'requestBody', + type: 'any', + base: 'any', + template: null, + link: null, + description: getComment(body.description), + default: undefined, + isDefinition: false, + isReadOnly: false, + isRequired: body.required === true, + isNullable: body.nullable === true, + imports: [], + enum: [], + enums: [], + properties: [], + mediaType: null, + }; + if (body.content) { + const content = getContent(openApi, body.content); + if (content) { + requestBody.mediaType = content.mediaType; + switch (requestBody.mediaType) { + case 'application/x-www-form-urlencoded': + case 'multipart/form-data': + requestBody.in = 'formData'; + requestBody.name = 'formData'; + requestBody.prop = 'formData'; + break; + } + if (content.schema.$ref) { + const model = getType(content.schema.$ref); + requestBody.export = 'reference'; + requestBody.type = model.type; + requestBody.base = model.base; + requestBody.template = model.template; + requestBody.imports.push(...model.imports); + return requestBody; + } + else { + const model = getModel(openApi, content.schema); + requestBody.export = model.export; + requestBody.type = model.type; + requestBody.base = model.base; + requestBody.template = model.template; + requestBody.link = model.link; + requestBody.isReadOnly = model.isReadOnly; + requestBody.isRequired = requestBody.isRequired || model.isRequired; + requestBody.isNullable = requestBody.isNullable || model.isNullable; + requestBody.format = model.format; + requestBody.maximum = model.maximum; + requestBody.exclusiveMaximum = model.exclusiveMaximum; + requestBody.minimum = model.minimum; + requestBody.exclusiveMinimum = model.exclusiveMinimum; + requestBody.multipleOf = model.multipleOf; + requestBody.maxLength = model.maxLength; + requestBody.minLength = model.minLength; + requestBody.maxItems = model.maxItems; + requestBody.minItems = model.minItems; + requestBody.uniqueItems = model.uniqueItems; + requestBody.maxProperties = model.maxProperties; + requestBody.minProperties = model.minProperties; + requestBody.pattern = getPattern(model.pattern); + requestBody.imports.push(...model.imports); + requestBody.enum.push(...model.enum); + requestBody.enums.push(...model.enums); + requestBody.properties.push(...model.properties); + return requestBody; + } + } + } + return requestBody; +} + +function getOperationResponseHeader(operationResponses) { + const header = operationResponses.find(operationResponses => { + return operationResponses.in === 'header'; + }); + if (header) { + return header.name; + } + return null; +} + +function getOperationResponse(openApi, response, responseCode) { + var _a; + const operationResponse = { + in: 'response', + name: '', + code: responseCode, + description: getComment(response.description), + export: 'generic', + type: 'any', + base: 'any', + template: null, + link: null, + isDefinition: false, + isReadOnly: false, + isRequired: false, + isNullable: false, + imports: [], + enum: [], + enums: [], + properties: [], + }; + if (response.content) { + const content = getContent(openApi, response.content); + if (content) { + if ((_a = content.schema.$ref) === null || _a === void 0 ? void 0 : _a.startsWith('#/components/responses/')) { + content.schema = getRef(openApi, content.schema); + } + if (content.schema.$ref) { + const model = getType(content.schema.$ref); + operationResponse.export = 'reference'; + operationResponse.type = model.type; + operationResponse.base = model.base; + operationResponse.template = model.template; + operationResponse.imports.push(...model.imports); + return operationResponse; + } + else { + const model = getModel(openApi, content.schema); + operationResponse.export = model.export; + operationResponse.type = model.type; + operationResponse.base = model.base; + operationResponse.template = model.template; + operationResponse.link = model.link; + operationResponse.isReadOnly = model.isReadOnly; + operationResponse.isRequired = model.isRequired; + operationResponse.isNullable = model.isNullable; + operationResponse.format = model.format; + operationResponse.maximum = model.maximum; + operationResponse.exclusiveMaximum = model.exclusiveMaximum; + operationResponse.minimum = model.minimum; + operationResponse.exclusiveMinimum = model.exclusiveMinimum; + operationResponse.multipleOf = model.multipleOf; + operationResponse.maxLength = model.maxLength; + operationResponse.minLength = model.minLength; + operationResponse.maxItems = model.maxItems; + operationResponse.minItems = model.minItems; + operationResponse.uniqueItems = model.uniqueItems; + operationResponse.maxProperties = model.maxProperties; + operationResponse.minProperties = model.minProperties; + operationResponse.pattern = getPattern(model.pattern); + operationResponse.imports.push(...model.imports); + operationResponse.enum.push(...model.enum); + operationResponse.enums.push(...model.enums); + operationResponse.properties.push(...model.properties); + return operationResponse; + } + } + } + // We support basic properties from response headers, since both + // fetch and XHR client just support string types. + if (response.headers) { + for (const name in response.headers) { + if (response.headers.hasOwnProperty(name)) { + operationResponse.in = 'header'; + operationResponse.name = name; + operationResponse.type = 'string'; + operationResponse.base = 'string'; + return operationResponse; + } + } + } + return operationResponse; +} + +function getOperationResponseCode(value) { + // You can specify a "default" response, this is treated as HTTP code 200 + if (value === 'default') { + return 200; + } + // Check if we can parse the code and return of successful. + if (/[0-9]+/g.test(value)) { + const code = parseInt(value); + if (Number.isInteger(code)) { + return Math.abs(code); + } + } + return null; +} + +function getOperationResponses(openApi, responses) { + const operationResponses = []; + // Iterate over each response code and get the + // status code and response message (if any). + for (const code in responses) { + if (responses.hasOwnProperty(code)) { + const responseOrReference = responses[code]; + const response = getRef(openApi, responseOrReference); + const responseCode = getOperationResponseCode(code); + if (responseCode) { + const operationResponse = getOperationResponse(openApi, response, responseCode); + operationResponses.push(operationResponse); + } + } + } + // Sort the responses to 2XX success codes come before 4XX and 5XX error codes. + return operationResponses.sort((a, b) => { + return a.code < b.code ? -1 : a.code > b.code ? 1 : 0; + }); +} + +function areEqual(a, b) { + const equal = a.type === b.type && a.base === b.base && a.template === b.template; + if (equal && a.link && b.link) { + return areEqual(a.link, b.link); + } + return equal; +} +function getOperationResults(operationResponses) { + const operationResults = []; + // Filter out success response codes, but skip "204 No Content" + operationResponses.forEach(operationResponse => { + const { code } = operationResponse; + if (code && code !== 204 && code >= 200 && code < 300) { + operationResults.push(operationResponse); + } + }); + if (!operationResults.length) { + operationResults.push({ + in: 'response', + name: '', + code: 200, + description: '', + export: 'generic', + type: 'void', + base: 'void', + template: null, + link: null, + isDefinition: false, + isReadOnly: false, + isRequired: false, + isNullable: false, + imports: [], + enum: [], + enums: [], + properties: [], + }); + } + return operationResults.filter((operationResult, index, arr) => { + return (arr.findIndex(item => { + return areEqual(item, operationResult); + }) === index); + }); +} + +/** + * Convert the input value to a correct service name. This converts + * the input string to PascalCase. + */ +function getServiceName(value) { + const clean = value + .replace(/^[^a-zA-Z]+/g, '') + .replace(/[^\w\-]+/g, '-') + .trim(); + return camelCase__default["default"](clean, { pascalCase: true }); +} + +function sortByRequired(a, b) { + const aNeedsValue = a.isRequired && a.default === undefined; + const bNeedsValue = b.isRequired && b.default === undefined; + if (aNeedsValue && !bNeedsValue) + return -1; + if (bNeedsValue && !aNeedsValue) + return 1; + return 0; +} + +function getOperation(openApi, url, method, tag, op, pathParams) { + const serviceName = getServiceName(tag); + const operationNameFallback = `${method}${serviceName}`; + const operationName = getOperationName(op.operationId || operationNameFallback); + const operationPath = getOperationPath(url); + // Create a new operation object for this method. + const operation = { + service: serviceName, + name: operationName, + summary: getComment(op.summary), + description: getComment(op.description), + deprecated: op.deprecated === true, + method: method.toUpperCase(), + path: operationPath, + parameters: [...pathParams.parameters], + parametersPath: [...pathParams.parametersPath], + parametersQuery: [...pathParams.parametersQuery], + parametersForm: [...pathParams.parametersForm], + parametersHeader: [...pathParams.parametersHeader], + parametersCookie: [...pathParams.parametersCookie], + parametersBody: pathParams.parametersBody, + imports: [], + errors: [], + results: [], + responseHeader: null, + }; + // Parse the operation parameters (path, query, body, etc). + if (op.parameters) { + const parameters = getOperationParameters(openApi, op.parameters); + operation.imports.push(...parameters.imports); + operation.parameters.push(...parameters.parameters); + operation.parametersPath.push(...parameters.parametersPath); + operation.parametersQuery.push(...parameters.parametersQuery); + operation.parametersForm.push(...parameters.parametersForm); + operation.parametersHeader.push(...parameters.parametersHeader); + operation.parametersCookie.push(...parameters.parametersCookie); + operation.parametersBody = parameters.parametersBody; + } + if (op.requestBody) { + const requestBodyDef = getRef(openApi, op.requestBody); + const requestBody = getOperationRequestBody(openApi, requestBodyDef); + operation.imports.push(...requestBody.imports); + operation.parameters.push(requestBody); + operation.parametersBody = requestBody; + } + // Parse the operation responses. + if (op.responses) { + const operationResponses = getOperationResponses(openApi, op.responses); + const operationResults = getOperationResults(operationResponses); + operation.errors = getOperationErrors(operationResponses); + operation.responseHeader = getOperationResponseHeader(operationResults); + operationResults.forEach(operationResult => { + operation.results.push(operationResult); + operation.imports.push(...operationResult.imports); + }); + } + operation.parameters = operation.parameters.sort(sortByRequired); + return operation; +} + +/** + * Get the OpenAPI services + */ +function getServices(openApi) { + var _a; + const services = new Map(); + for (const url in openApi.paths) { + if (openApi.paths.hasOwnProperty(url)) { + // Grab path and parse any global path parameters + const path = openApi.paths[url]; + const pathParams = getOperationParameters(openApi, path.parameters || []); + // Parse all the methods for this path + for (const method in path) { + if (path.hasOwnProperty(method)) { + switch (method) { + case 'get': + case 'put': + case 'post': + case 'delete': + case 'options': + case 'head': + case 'patch': + // Each method contains an OpenAPI operation, we parse the operation + const op = path[method]; + const tags = ((_a = op.tags) === null || _a === void 0 ? void 0 : _a.filter(unique)) || ['Service']; + tags.forEach(tag => { + const operation = getOperation(openApi, url, method, tag, op, pathParams); + // If we have already declared a service, then we should fetch that and + // append the new method to it. Otherwise we should create a new service object. + const service = services.get(operation.service) || { + name: operation.service, + operations: [], + imports: [], + }; + // Push the operation in the service + service.operations.push(operation); + service.imports.push(...operation.imports); + services.set(operation.service, service); + }); + break; + } + } + } + } + } + return Array.from(services.values()); +} + +/** + * Convert the service version to 'normal' version. + * This basically removes any "v" prefix from the version string. + * @param version + */ +function getServiceVersion(version = '1.0') { + return String(version).replace(/^v/gi, ''); +} + +/** + * Parse the OpenAPI specification to a Client model that contains + * all the models, services and schema's we should output. + * @param openApi The OpenAPI spec that we have loaded from disk. + */ +function parse(openApi) { + const version = getServiceVersion(openApi.info.version); + const server = getServer(openApi); + const models = getModels(openApi); + const services = getServices(openApi); + return { version, server, models, services }; +} + +/** + * Load and parse te open api spec. If the file extension is ".yml" or ".yaml" + * we will try to parse the file as a YAML spec, otherwise we will fallback + * on parsing the file as JSON. + * @param location: Path or url + */ +async function getOpenApiSpec(location) { + return await RefParser__default["default"].bundle(location, location, {}); +} + +var OpenApiVersion; +(function (OpenApiVersion) { + OpenApiVersion[OpenApiVersion["V2"] = 2] = "V2"; + OpenApiVersion[OpenApiVersion["V3"] = 3] = "V3"; +})(OpenApiVersion || (OpenApiVersion = {})); +/** + * Get the Open API specification version (V2 or V3). This generator only supports + * version 2 and 3 of the specification, so we will alert the user if we encounter + * an incompatible type. Or if the type is missing... + * @param openApi The loaded spec (can be any object) + */ +function getOpenApiVersion(openApi) { + const info = openApi.swagger || openApi.openapi; + if (typeof info === 'string') { + const c = info.charAt(0); + const v = Number.parseInt(c); + if (v === OpenApiVersion.V2 || v === OpenApiVersion.V3) { + return v; + } + } + throw new Error(`Unsupported Open API version: "${String(info)}"`); +} + +function isString(val) { + return typeof val === 'string'; +} + +/** + * Set unique enum values for the model + * @param model + */ +function postProcessModelEnum(model) { + return model.enum.filter((property, index, arr) => { + return arr.findIndex(item => item.name === property.name) === index; + }); +} + +/** + * Set unique enum values for the model + * @param model The model that is post-processed + */ +function postProcessModelEnums(model) { + return model.enums.filter((property, index, arr) => { + return arr.findIndex(item => item.name === property.name) === index; + }); +} + +function sort(a, b) { + const nameA = a.toLowerCase(); + const nameB = b.toLowerCase(); + return nameA.localeCompare(nameB, 'en'); +} + +/** + * Set unique imports, sorted by name + * @param model The model that is post-processed + */ +function postProcessModelImports(model) { + return model.imports + .filter(unique) + .sort(sort) + .filter(name => model.name !== name); +} + +/** + * Post process the model. + * This will cleanup any double imports or enum values. + * @param model + */ +function postProcessModel(model) { + return Object.assign(Object.assign({}, model), { imports: postProcessModelImports(model), enums: postProcessModelEnums(model), enum: postProcessModelEnum(model) }); +} + +/** + * Set unique imports, sorted by name + * @param service + */ +function postProcessServiceImports(service) { + return service.imports.filter(unique).sort(sort); +} + +/** + * Calls a defined callback function on each element of an array. + * Then, flattens the result into a new array. + */ +function flatMap(array, callback) { + const result = []; + array.map(callback).forEach(arr => { + result.push(...arr); + }); + return result; +} + +function postProcessServiceOperations(service) { + const names = new Map(); + return service.operations.map(operation => { + const clone = Object.assign({}, operation); + // Parse the service parameters and results, very similar to how we parse + // properties of models. These methods will extend the type if needed. + clone.imports.push(...flatMap(clone.parameters, parameter => parameter.imports)); + clone.imports.push(...flatMap(clone.results, result => result.imports)); + // Check if the operation name is unique, if not then prefix this with a number + const name = clone.name; + const index = names.get(name) || 0; + if (index > 0) { + clone.name = `${name}${index}`; + } + names.set(name, index + 1); + return clone; + }); +} + +function postProcessService(service) { + const clone = Object.assign({}, service); + clone.operations = postProcessServiceOperations(clone); + clone.operations.forEach(operation => { + clone.imports.push(...operation.imports); + }); + clone.imports = postProcessServiceImports(clone); + return clone; +} + +/** + * Post process client + * @param client Client object with all the models, services, etc. + */ +function postProcessClient(client) { + return Object.assign(Object.assign({}, client), { models: client.models.map(model => postProcessModel(model)), services: client.services.map(service => postProcessService(service)) }); +} + +var templateCoreApiError = {"compiler":[8,">= 4.3.0"],"main":function(container,depth0,helpers,partials,data) { + var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return ((stack1 = container.invokePartial(lookupProperty(partials,"header"),depth0,{"name":"header","data":data,"helpers":helpers,"partials":partials,"decorators":container.decorators})) != null ? stack1 : "") + + "\nimport type { ApiResult } from './ApiResult';\n\nexport class ApiError extends Error {\n public readonly url: string;\n public readonly status: number;\n public readonly statusText: string;\n public readonly body: any;\n\n constructor(response: ApiResult, message: string) {\n super(message);\n\n this.name = 'ApiError';\n this.url = response.url;\n this.status = response.status;\n this.statusText = response.statusText;\n this.body = response.body;\n }\n}"; +},"usePartial":true,"useData":true}; + +var templateCoreApiRequestOptions = {"compiler":[8,">= 4.3.0"],"main":function(container,depth0,helpers,partials,data) { + var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return ((stack1 = container.invokePartial(lookupProperty(partials,"header"),depth0,{"name":"header","data":data,"helpers":helpers,"partials":partials,"decorators":container.decorators})) != null ? stack1 : "") + + "\nexport type ApiRequestOptions = {\n readonly method: 'GET' | 'PUT' | 'POST' | 'DELETE' | 'OPTIONS' | 'HEAD' | 'PATCH';\n readonly path: string;\n readonly cookies?: Record;\n readonly headers?: Record;\n readonly query?: Record;\n readonly formData?: Record;\n readonly body?: any;\n readonly mediaType?: string;\n readonly responseHeader?: string;\n readonly errors?: Record;\n}"; +},"usePartial":true,"useData":true}; + +var templateCoreApiResult = {"compiler":[8,">= 4.3.0"],"main":function(container,depth0,helpers,partials,data) { + var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return ((stack1 = container.invokePartial(lookupProperty(partials,"header"),depth0,{"name":"header","data":data,"helpers":helpers,"partials":partials,"decorators":container.decorators})) != null ? stack1 : "") + + "\nexport type ApiResult = {\n readonly url: string;\n readonly ok: boolean;\n readonly status: number;\n readonly statusText: string;\n readonly body: any;\n}"; +},"usePartial":true,"useData":true}; + +var axiosGetHeaders = {"compiler":[8,">= 4.3.0"],"main":function(container,depth0,helpers,partials,data) { + return "async function getHeaders(options: ApiRequestOptions, formData?: FormData): Promise> {\n const token = await resolve(options, OpenAPI.TOKEN);\n const username = await resolve(options, OpenAPI.USERNAME);\n const password = await resolve(options, OpenAPI.PASSWORD);\n const additionalHeaders = await resolve(options, OpenAPI.HEADERS);\n const formHeaders = typeof formData?.getHeaders === 'function' && formData?.getHeaders() || {}\n\n const headers = Object.entries({\n Accept: 'application/json',\n ...additionalHeaders,\n ...options.headers,\n ...formHeaders,\n })\n .filter(([_, value]) => isDefined(value))\n .reduce((headers, [key, value]) => ({\n ...headers,\n [key]: String(value),\n }), {} as Record);\n\n if (isStringWithValue(token)) {\n headers['Authorization'] = `Bearer ${token}`;\n }\n\n if (isStringWithValue(username) && isStringWithValue(password)) {\n const credentials = base64(`${username}:${password}`);\n headers['Authorization'] = `Basic ${credentials}`;\n }\n\n return headers;\n}"; +},"useData":true}; + +var axiosGetRequestBody = {"compiler":[8,">= 4.3.0"],"main":function(container,depth0,helpers,partials,data) { + return "function getRequestBody(options: ApiRequestOptions): any {\n if (options.body) {\n return options.body;\n }\n return;\n}"; +},"useData":true}; + +var axiosGetResponseBody = {"compiler":[8,">= 4.3.0"],"main":function(container,depth0,helpers,partials,data) { + return "function getResponseBody(response: AxiosResponse): any {\n if (response.status !== 204) {\n return response.data;\n }\n return;\n}"; +},"useData":true}; + +var axiosGetResponseHeader = {"compiler":[8,">= 4.3.0"],"main":function(container,depth0,helpers,partials,data) { + return "function getResponseHeader(response: AxiosResponse, responseHeader?: string): string | undefined {\n if (responseHeader) {\n const content = response.headers[responseHeader];\n if (isString(content)) {\n return content;\n }\n }\n return;\n}"; +},"useData":true}; + +var axiosRequest = {"compiler":[8,">= 4.3.0"],"main":function(container,depth0,helpers,partials,data) { + var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return ((stack1 = container.invokePartial(lookupProperty(partials,"header"),depth0,{"name":"header","data":data,"helpers":helpers,"partials":partials,"decorators":container.decorators})) != null ? stack1 : "") + + "\nimport axios, { AxiosError, AxiosRequestConfig, AxiosResponse } from 'axios';\nimport Blob from 'cross-blob'\nimport FormData from 'form-data';\n\nimport { ApiError } from './ApiError';\nimport type { ApiRequestOptions } from './ApiRequestOptions';\nimport type { ApiResult } from './ApiResult';\nimport { CancelablePromise } from './CancelablePromise';\nimport type { OnCancel } from './CancelablePromise';\nimport { OpenAPI } from './OpenAPI';\n\n" + + ((stack1 = container.invokePartial(lookupProperty(partials,"functions/isDefined"),depth0,{"name":"functions/isDefined","data":data,"helpers":helpers,"partials":partials,"decorators":container.decorators})) != null ? stack1 : "") + + "\n\n" + + ((stack1 = container.invokePartial(lookupProperty(partials,"functions/isString"),depth0,{"name":"functions/isString","data":data,"helpers":helpers,"partials":partials,"decorators":container.decorators})) != null ? stack1 : "") + + "\n\n" + + ((stack1 = container.invokePartial(lookupProperty(partials,"functions/isStringWithValue"),depth0,{"name":"functions/isStringWithValue","data":data,"helpers":helpers,"partials":partials,"decorators":container.decorators})) != null ? stack1 : "") + + "\n\n" + + ((stack1 = container.invokePartial(lookupProperty(partials,"functions/isBlob"),depth0,{"name":"functions/isBlob","data":data,"helpers":helpers,"partials":partials,"decorators":container.decorators})) != null ? stack1 : "") + + "\n\n" + + ((stack1 = container.invokePartial(lookupProperty(partials,"functions/isSuccess"),depth0,{"name":"functions/isSuccess","data":data,"helpers":helpers,"partials":partials,"decorators":container.decorators})) != null ? stack1 : "") + + "\n\n" + + ((stack1 = container.invokePartial(lookupProperty(partials,"functions/base64"),depth0,{"name":"functions/base64","data":data,"helpers":helpers,"partials":partials,"decorators":container.decorators})) != null ? stack1 : "") + + "\n\n" + + ((stack1 = container.invokePartial(lookupProperty(partials,"functions/getQueryString"),depth0,{"name":"functions/getQueryString","data":data,"helpers":helpers,"partials":partials,"decorators":container.decorators})) != null ? stack1 : "") + + "\n\n" + + ((stack1 = container.invokePartial(lookupProperty(partials,"functions/getUrl"),depth0,{"name":"functions/getUrl","data":data,"helpers":helpers,"partials":partials,"decorators":container.decorators})) != null ? stack1 : "") + + "\n\n" + + ((stack1 = container.invokePartial(lookupProperty(partials,"functions/getFormData"),depth0,{"name":"functions/getFormData","data":data,"helpers":helpers,"partials":partials,"decorators":container.decorators})) != null ? stack1 : "") + + "\n\n" + + ((stack1 = container.invokePartial(lookupProperty(partials,"functions/resolve"),depth0,{"name":"functions/resolve","data":data,"helpers":helpers,"partials":partials,"decorators":container.decorators})) != null ? stack1 : "") + + "\n\n" + + ((stack1 = container.invokePartial(lookupProperty(partials,"axios/getHeaders"),depth0,{"name":"axios/getHeaders","data":data,"helpers":helpers,"partials":partials,"decorators":container.decorators})) != null ? stack1 : "") + + "\n\n" + + ((stack1 = container.invokePartial(lookupProperty(partials,"axios/getRequestBody"),depth0,{"name":"axios/getRequestBody","data":data,"helpers":helpers,"partials":partials,"decorators":container.decorators})) != null ? stack1 : "") + + "\n\n" + + ((stack1 = container.invokePartial(lookupProperty(partials,"axios/sendRequest"),depth0,{"name":"axios/sendRequest","data":data,"helpers":helpers,"partials":partials,"decorators":container.decorators})) != null ? stack1 : "") + + "\n\n" + + ((stack1 = container.invokePartial(lookupProperty(partials,"axios/getResponseHeader"),depth0,{"name":"axios/getResponseHeader","data":data,"helpers":helpers,"partials":partials,"decorators":container.decorators})) != null ? stack1 : "") + + "\n\n" + + ((stack1 = container.invokePartial(lookupProperty(partials,"axios/getResponseBody"),depth0,{"name":"axios/getResponseBody","data":data,"helpers":helpers,"partials":partials,"decorators":container.decorators})) != null ? stack1 : "") + + "\n\n" + + ((stack1 = container.invokePartial(lookupProperty(partials,"functions/catchErrors"),depth0,{"name":"functions/catchErrors","data":data,"helpers":helpers,"partials":partials,"decorators":container.decorators})) != null ? stack1 : "") + + "\n\n/**\n * Request using axios client\n * @param options The request options from the the service\n * @returns CancelablePromise\n * @throws ApiError\n */\nexport function request(options: ApiRequestOptions): CancelablePromise {\n return new CancelablePromise(async (resolve, reject, onCancel) => {\n try {\n const url = getUrl(options);\n const formData = getFormData(options);\n const body = getRequestBody(options);\n const headers = await getHeaders(options, formData);\n\n if (!onCancel.isCancelled) {\n const response = await sendRequest(options, url, formData, body, headers, onCancel);\n const responseBody = getResponseBody(response);\n const responseHeader = getResponseHeader(response, options.responseHeader);\n\n const result: ApiResult = {\n url,\n ok: isSuccess(response.status),\n status: response.status,\n statusText: response.statusText,\n body: responseHeader || responseBody,\n };\n\n catchErrors(options, result);\n\n resolve(result.body);\n }\n } catch (error) {\n reject(error);\n }\n });\n}"; +},"usePartial":true,"useData":true}; + +var axiosSendRequest = {"compiler":[8,">= 4.3.0"],"main":function(container,depth0,helpers,partials,data) { + return "async function sendRequest(\n options: ApiRequestOptions,\n url: string,\n formData: FormData | undefined,\n body: any,\n headers: Record,\n onCancel: OnCancel\n): Promise> {\n const source = axios.CancelToken.source();\n\n const config: AxiosRequestConfig = {\n url,\n headers,\n data: body || formData,\n method: options.method,\n withCredentials: OpenAPI.WITH_CREDENTIALS,\n cancelToken: source.token,\n };\n\n onCancel(() => source.cancel('The user aborted a request.'));\n\n try {\n return await axios.request(config);\n } catch (error) {\n const axiosError = error as AxiosError;\n if (axiosError.response) {\n return axiosError.response;\n }\n throw error;\n }\n}"; +},"useData":true}; + +var templateCancelablePromise = {"compiler":[8,">= 4.3.0"],"main":function(container,depth0,helpers,partials,data) { + var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return ((stack1 = container.invokePartial(lookupProperty(partials,"header"),depth0,{"name":"header","data":data,"helpers":helpers,"partials":partials,"decorators":container.decorators})) != null ? stack1 : "") + + "\nexport class CancelError extends Error {\n\n constructor(reason: string = 'Promise was canceled') {\n super(reason);\n this.name = 'CancelError';\n }\n\n public get isCancelled(): boolean {\n return true;\n }\n}\n\nexport interface OnCancel {\n readonly isPending: boolean;\n readonly isCancelled: boolean;\n\n (cancelHandler: () => void): void;\n}\n\nexport class CancelablePromise implements Promise {\n readonly [Symbol.toStringTag]: string;\n\n #isPending: boolean;\n #isCancelled: boolean;\n readonly #cancelHandlers: (() => void)[];\n readonly #promise: Promise;\n #resolve?: (value: T | PromiseLike) => void;\n #reject?: (reason?: any) => void;\n\n constructor(\n executor: (\n resolve: (value: T | PromiseLike) => void,\n reject: (reason?: any) => void,\n onCancel: OnCancel\n ) => void\n ) {\n this.#isPending = true;\n this.#isCancelled = false;\n this.#cancelHandlers = [];\n this.#promise = new Promise((resolve, reject) => {\n this.#resolve = resolve;\n this.#reject = reject;\n\n const onResolve = (value: T | PromiseLike): void => {\n if (!this.#isCancelled) {\n this.#isPending = false;\n this.#resolve?.(value);\n }\n };\n\n const onReject = (reason?: any): void => {\n this.#isPending = false;\n this.#reject?.(reason);\n };\n\n const onCancel = (cancelHandler: () => void): void => {\n if (this.#isPending) {\n this.#cancelHandlers.push(cancelHandler);\n }\n };\n\n Object.defineProperty(onCancel, 'isPending', {\n get: (): boolean => this.#isPending,\n });\n\n Object.defineProperty(onCancel, 'isCancelled', {\n get: (): boolean => this.#isCancelled,\n });\n\n return executor(onResolve, onReject, onCancel as OnCancel);\n });\n }\n\n public then(\n onFulfilled?: ((value: T) => TResult1 | PromiseLike) | null,\n onRejected?: ((reason: any) => TResult2 | PromiseLike) | null\n ): Promise {\n return this.#promise.then(onFulfilled, onRejected);\n }\n\n public catch(\n onRejected?: ((reason: any) => TResult | PromiseLike) | null\n ): Promise {\n return this.#promise.catch(onRejected);\n }\n\n public finally(onFinally?: (() => void) | null): Promise {\n return this.#promise.finally(onFinally);\n }\n\n public cancel(): void {\n if (!this.#isPending || this.#isCancelled) {\n return;\n }\n this.#isCancelled = true;\n if (this.#cancelHandlers.length) {\n try {\n for (const cancelHandler of this.#cancelHandlers) {\n cancelHandler();\n }\n } catch (error) {\n this.#reject?.(error);\n return;\n }\n }\n }\n\n public get isCancelled(): boolean {\n return this.#isCancelled;\n }\n}"; +},"usePartial":true,"useData":true}; + +var fetchGetHeaders = {"compiler":[8,">= 4.3.0"],"main":function(container,depth0,helpers,partials,data) { + return "async function getHeaders(options: ApiRequestOptions): Promise {\n const token = await resolve(options, OpenAPI.TOKEN);\n const username = await resolve(options, OpenAPI.USERNAME);\n const password = await resolve(options, OpenAPI.PASSWORD);\n const additionalHeaders = await resolve(options, OpenAPI.HEADERS);\n\n const defaultHeaders = Object.entries({\n Accept: 'application/json',\n ...additionalHeaders,\n ...options.headers,\n })\n .filter(([_, value]) => isDefined(value))\n .reduce((headers, [key, value]) => ({\n ...headers,\n [key]: String(value),\n }), {} as Record);\n\n const headers = new Headers(defaultHeaders);\n\n if (isStringWithValue(token)) {\n headers.append('Authorization', `Bearer ${token}`);\n }\n\n if (isStringWithValue(username) && isStringWithValue(password)) {\n const credentials = base64(`${username}:${password}`);\n headers.append('Authorization', `Basic ${credentials}`);\n }\n\n if (options.body) {\n if (options.mediaType) {\n headers.append('Content-Type', options.mediaType);\n } else if (isBlob(options.body)) {\n headers.append('Content-Type', options.body.type || 'application/octet-stream');\n } else if (isString(options.body)) {\n headers.append('Content-Type', 'text/plain');\n } else {\n headers.append('Content-Type', 'application/json');\n }\n }\n\n return headers;\n}"; +},"useData":true}; + +var fetchGetRequestBody = {"compiler":[8,">= 4.3.0"],"main":function(container,depth0,helpers,partials,data) { + return "function getRequestBody(options: ApiRequestOptions): BodyInit | undefined {\n if (options.body) {\n if (options.mediaType?.includes('/json')) {\n return JSON.stringify(options.body)\n } else if (isString(options.body) || isBlob(options.body)) {\n return options.body;\n } else {\n return JSON.stringify(options.body);\n }\n }\n return;\n}"; +},"useData":true}; + +var fetchGetResponseBody = {"compiler":[8,">= 4.3.0"],"main":function(container,depth0,helpers,partials,data) { + return "async function getResponseBody(response: Response): Promise {\n if (response.status !== 204) {\n try {\n const contentType = response.headers.get('Content-Type');\n if (contentType) {\n const isJSON = contentType.toLowerCase().startsWith('application/json');\n if (isJSON) {\n return await response.json();\n } else {\n return await response.text();\n }\n }\n } catch (error) {\n console.error(error);\n }\n }\n return;\n}"; +},"useData":true}; + +var fetchGetResponseHeader = {"compiler":[8,">= 4.3.0"],"main":function(container,depth0,helpers,partials,data) { + return "function getResponseHeader(response: Response, responseHeader?: string): string | undefined {\n if (responseHeader) {\n const content = response.headers.get(responseHeader);\n if (isString(content)) {\n return content;\n }\n }\n return;\n}"; +},"useData":true}; + +var fetchRequest = {"compiler":[8,">= 4.3.0"],"main":function(container,depth0,helpers,partials,data) { + var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return ((stack1 = container.invokePartial(lookupProperty(partials,"header"),depth0,{"name":"header","data":data,"helpers":helpers,"partials":partials,"decorators":container.decorators})) != null ? stack1 : "") + + "\nimport { ApiError } from './ApiError';\nimport type { ApiRequestOptions } from './ApiRequestOptions';\nimport type { ApiResult } from './ApiResult';\nimport { CancelablePromise } from './CancelablePromise';\nimport type { OnCancel } from './CancelablePromise';\nimport { OpenAPI } from './OpenAPI';\n\n" + + ((stack1 = container.invokePartial(lookupProperty(partials,"functions/isDefined"),depth0,{"name":"functions/isDefined","data":data,"helpers":helpers,"partials":partials,"decorators":container.decorators})) != null ? stack1 : "") + + "\n\n" + + ((stack1 = container.invokePartial(lookupProperty(partials,"functions/isString"),depth0,{"name":"functions/isString","data":data,"helpers":helpers,"partials":partials,"decorators":container.decorators})) != null ? stack1 : "") + + "\n\n" + + ((stack1 = container.invokePartial(lookupProperty(partials,"functions/isStringWithValue"),depth0,{"name":"functions/isStringWithValue","data":data,"helpers":helpers,"partials":partials,"decorators":container.decorators})) != null ? stack1 : "") + + "\n\n" + + ((stack1 = container.invokePartial(lookupProperty(partials,"functions/isBlob"),depth0,{"name":"functions/isBlob","data":data,"helpers":helpers,"partials":partials,"decorators":container.decorators})) != null ? stack1 : "") + + "\n\n" + + ((stack1 = container.invokePartial(lookupProperty(partials,"functions/base64"),depth0,{"name":"functions/base64","data":data,"helpers":helpers,"partials":partials,"decorators":container.decorators})) != null ? stack1 : "") + + "\n\n" + + ((stack1 = container.invokePartial(lookupProperty(partials,"functions/getQueryString"),depth0,{"name":"functions/getQueryString","data":data,"helpers":helpers,"partials":partials,"decorators":container.decorators})) != null ? stack1 : "") + + "\n\n" + + ((stack1 = container.invokePartial(lookupProperty(partials,"functions/getUrl"),depth0,{"name":"functions/getUrl","data":data,"helpers":helpers,"partials":partials,"decorators":container.decorators})) != null ? stack1 : "") + + "\n\n" + + ((stack1 = container.invokePartial(lookupProperty(partials,"functions/getFormData"),depth0,{"name":"functions/getFormData","data":data,"helpers":helpers,"partials":partials,"decorators":container.decorators})) != null ? stack1 : "") + + "\n\n" + + ((stack1 = container.invokePartial(lookupProperty(partials,"functions/resolve"),depth0,{"name":"functions/resolve","data":data,"helpers":helpers,"partials":partials,"decorators":container.decorators})) != null ? stack1 : "") + + "\n\n" + + ((stack1 = container.invokePartial(lookupProperty(partials,"fetch/getHeaders"),depth0,{"name":"fetch/getHeaders","data":data,"helpers":helpers,"partials":partials,"decorators":container.decorators})) != null ? stack1 : "") + + "\n\n" + + ((stack1 = container.invokePartial(lookupProperty(partials,"fetch/getRequestBody"),depth0,{"name":"fetch/getRequestBody","data":data,"helpers":helpers,"partials":partials,"decorators":container.decorators})) != null ? stack1 : "") + + "\n\n" + + ((stack1 = container.invokePartial(lookupProperty(partials,"fetch/sendRequest"),depth0,{"name":"fetch/sendRequest","data":data,"helpers":helpers,"partials":partials,"decorators":container.decorators})) != null ? stack1 : "") + + "\n\n" + + ((stack1 = container.invokePartial(lookupProperty(partials,"fetch/getResponseHeader"),depth0,{"name":"fetch/getResponseHeader","data":data,"helpers":helpers,"partials":partials,"decorators":container.decorators})) != null ? stack1 : "") + + "\n\n" + + ((stack1 = container.invokePartial(lookupProperty(partials,"fetch/getResponseBody"),depth0,{"name":"fetch/getResponseBody","data":data,"helpers":helpers,"partials":partials,"decorators":container.decorators})) != null ? stack1 : "") + + "\n\n" + + ((stack1 = container.invokePartial(lookupProperty(partials,"functions/catchErrors"),depth0,{"name":"functions/catchErrors","data":data,"helpers":helpers,"partials":partials,"decorators":container.decorators})) != null ? stack1 : "") + + "\n\n/**\n * Request using fetch client\n * @param options The request options from the the service\n * @returns CancelablePromise\n * @throws ApiError\n */\nexport function request(options: ApiRequestOptions): CancelablePromise {\n return new CancelablePromise(async (resolve, reject, onCancel) => {\n try {\n const url = getUrl(options);\n const formData = getFormData(options);\n const body = getRequestBody(options);\n const headers = await getHeaders(options);\n\n if (!onCancel.isCancelled) {\n const response = await sendRequest(options, url, formData, body, headers, onCancel);\n const responseBody = await getResponseBody(response);\n const responseHeader = getResponseHeader(response, options.responseHeader);\n\n const result: ApiResult = {\n url,\n ok: response.ok,\n status: response.status,\n statusText: response.statusText,\n body: responseHeader || responseBody,\n };\n\n catchErrors(options, result);\n\n resolve(result.body);\n }\n } catch (error) {\n reject(error);\n }\n });\n}"; +},"usePartial":true,"useData":true}; + +var fetchSendRequest = {"compiler":[8,">= 4.3.0"],"main":function(container,depth0,helpers,partials,data) { + return "async function sendRequest(\n options: ApiRequestOptions,\n url: string,\n formData: FormData | undefined,\n body: BodyInit | undefined,\n headers: Headers,\n onCancel: OnCancel\n): Promise {\n const controller = new AbortController();\n\n const request: RequestInit = {\n headers,\n body: body || formData,\n method: options.method,\n signal: controller.signal,\n };\n\n if (OpenAPI.WITH_CREDENTIALS) {\n request.credentials = OpenAPI.CREDENTIALS;\n }\n\n onCancel(() => controller.abort());\n\n return await fetch(url, request);\n}"; +},"useData":true}; + +var functionBase64 = {"compiler":[8,">= 4.3.0"],"main":function(container,depth0,helpers,partials,data) { + return "function base64(str: string): string {\n try {\n return btoa(str);\n } catch (err) {\n return Buffer.from(str).toString('base64');\n }\n}"; +},"useData":true}; + +var functionCatchErrors = {"compiler":[8,">= 4.3.0"],"main":function(container,depth0,helpers,partials,data) { + return "function catchErrors(options: ApiRequestOptions, result: ApiResult): void {\n const errors: Record = {\n 400: 'Bad Request',\n 401: 'Unauthorized',\n 403: 'Forbidden',\n 404: 'Not Found',\n 500: 'Internal Server Error',\n 502: 'Bad Gateway',\n 503: 'Service Unavailable',\n ...options.errors,\n }\n\n const error = errors[result.status];\n if (error) {\n throw new ApiError(result, error);\n }\n\n if (!result.ok) {\n throw new ApiError(result, 'Generic Error');\n }\n}"; +},"useData":true}; + +var functionGetFormData = {"compiler":[8,">= 4.3.0"],"main":function(container,depth0,helpers,partials,data) { + return "function getFormData(options: ApiRequestOptions): FormData | undefined {\n if (options.formData) {\n const formData = new FormData();\n\n const append = (key: string, value: any) => {\n if (isString(value) || isBlob(value)) {\n formData.append(key, value);\n } else {\n formData.append(key, JSON.stringify(value));\n }\n };\n\n Object.entries(options.formData)\n .filter(([_, value]) => isDefined(value))\n .forEach(([key, value]) => {\n if (Array.isArray(value)) {\n value.forEach(v => append(key, v));\n } else {\n append(key, value);\n }\n });\n\n return formData;\n }\n return;\n}"; +},"useData":true}; + +var functionGetQueryString = {"compiler":[8,">= 4.3.0"],"main":function(container,depth0,helpers,partials,data) { + return "function getQueryString(params: Record): string {\n const qs: string[] = [];\n\n const append = (key: string, value: any) => {\n qs.push(`${encodeURIComponent(key)}=${encodeURIComponent(String(value))}`);\n };\n\n Object.entries(params)\n .filter(([_, value]) => isDefined(value))\n .forEach(([key, value]) => {\n if (Array.isArray(value)) {\n value.forEach(v => append(key, v));\n } else {\n append(key, value);\n }\n });\n\n if (qs.length > 0) {\n return `?${qs.join('&')}`;\n }\n\n return '';\n}"; +},"useData":true}; + +var functionGetUrl = {"compiler":[8,">= 4.3.0"],"main":function(container,depth0,helpers,partials,data) { + return "function getUrl(options: ApiRequestOptions): string {\n const path = OpenAPI.ENCODE_PATH ? OpenAPI.ENCODE_PATH(options.path) : options.path;\n const url = `${OpenAPI.BASE}${path}`;\n if (options.query) {\n return `${url}${getQueryString(options.query)}`;\n }\n\n return url;\n}"; +},"useData":true}; + +var functionIsBlob = {"compiler":[8,">= 4.3.0"],"main":function(container,depth0,helpers,partials,data) { + return "function isBlob(value: any): value is Blob {\n return value instanceof Blob;\n}"; +},"useData":true}; + +var functionIsDefined = {"compiler":[8,">= 4.3.0"],"main":function(container,depth0,helpers,partials,data) { + return "function isDefined(value: T | null | undefined): value is Exclude {\n return value !== undefined && value !== null;\n}"; +},"useData":true}; + +var functionIsString = {"compiler":[8,">= 4.3.0"],"main":function(container,depth0,helpers,partials,data) { + return "function isString(value: any): value is string {\n return typeof value === 'string';\n}"; +},"useData":true}; + +var functionIsStringWithValue = {"compiler":[8,">= 4.3.0"],"main":function(container,depth0,helpers,partials,data) { + return "function isStringWithValue(value: any): value is string {\n return isString(value) && value !== '';\n}"; +},"useData":true}; + +var functionIsSuccess = {"compiler":[8,">= 4.3.0"],"main":function(container,depth0,helpers,partials,data) { + return "function isSuccess(status: number): boolean {\n return status >= 200 && status < 300;\n}"; +},"useData":true}; + +var functionResolve = {"compiler":[8,">= 4.3.0"],"main":function(container,depth0,helpers,partials,data) { + return "type Resolver = (options: ApiRequestOptions) => Promise;\n\nasync function resolve(options: ApiRequestOptions, resolver?: T | Resolver): Promise {\n if (typeof resolver === 'function') {\n return (resolver as Resolver)(options);\n }\n return resolver;\n}"; +},"useData":true}; + +var nodeGetHeaders = {"compiler":[8,">= 4.3.0"],"main":function(container,depth0,helpers,partials,data) { + return "async function getHeaders(options: ApiRequestOptions): Promise {\n const token = await resolve(options, OpenAPI.TOKEN);\n const username = await resolve(options, OpenAPI.USERNAME);\n const password = await resolve(options, OpenAPI.PASSWORD);\n const additionalHeaders = await resolve(options, OpenAPI.HEADERS);\n\n const defaultHeaders = Object.entries({\n Accept: 'application/json',\n ...additionalHeaders,\n ...options.headers,\n })\n .filter(([_, value]) => isDefined(value))\n .reduce((headers, [key, value]) => ({\n ...headers,\n [key]: String(value),\n }), {} as Record);\n\n const headers = new Headers(defaultHeaders);\n\n if (isStringWithValue(token)) {\n headers.append('Authorization', `Bearer ${token}`);\n }\n\n if (isStringWithValue(username) && isStringWithValue(password)) {\n const credentials = base64(`${username}:${password}`);\n headers.append('Authorization', `Basic ${credentials}`);\n }\n\n if (options.body) {\n if (options.mediaType) {\n headers.append('Content-Type', options.mediaType);\n } else if (isBlob(options.body)) {\n headers.append('Content-Type', 'application/octet-stream');\n } else if (isString(options.body)) {\n headers.append('Content-Type', 'text/plain');\n } else {\n headers.append('Content-Type', 'application/json');\n }\n }\n return headers;\n}"; +},"useData":true}; + +var nodeGetRequestBody = {"compiler":[8,">= 4.3.0"],"main":function(container,depth0,helpers,partials,data) { + return "function getRequestBody(options: ApiRequestOptions): BodyInit | undefined {\n if (options.body) {\n if (options.mediaType?.includes('/json')) {\n return JSON.stringify(options.body)\n } else if (isString(options.body) || isBlob(options.body)) {\n return options.body as any;\n } else {\n return JSON.stringify(options.body);\n }\n }\n return;\n}"; +},"useData":true}; + +var nodeGetResponseBody = {"compiler":[8,">= 4.3.0"],"main":function(container,depth0,helpers,partials,data) { + return "async function getResponseBody(response: Response): Promise {\n if (response.status !== 204) {\n try {\n const contentType = response.headers.get('Content-Type');\n if (contentType) {\n const isJSON = contentType.toLowerCase().startsWith('application/json');\n if (isJSON) {\n return await response.json();\n } else {\n return await response.text();\n }\n }\n } catch (error) {\n console.error(error);\n }\n }\n return;\n}"; +},"useData":true}; + +var nodeGetResponseHeader = {"compiler":[8,">= 4.3.0"],"main":function(container,depth0,helpers,partials,data) { + return "function getResponseHeader(response: Response, responseHeader?: string): string | undefined {\n if (responseHeader) {\n const content = response.headers.get(responseHeader);\n if (isString(content)) {\n return content;\n }\n }\n return;\n}"; +},"useData":true}; + +var nodeRequest = {"compiler":[8,">= 4.3.0"],"main":function(container,depth0,helpers,partials,data) { + var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return ((stack1 = container.invokePartial(lookupProperty(partials,"header"),depth0,{"name":"header","data":data,"helpers":helpers,"partials":partials,"decorators":container.decorators})) != null ? stack1 : "") + + "\nimport { AbortController } from 'abort-controller';\nimport Blob from 'cross-blob'\nimport FormData from 'form-data';\nimport fetch, { BodyInit, Headers, RequestInit, Response } from 'node-fetch';\n\nimport { ApiError } from './ApiError';\nimport type { ApiRequestOptions } from './ApiRequestOptions';\nimport type { ApiResult } from './ApiResult';\nimport { CancelablePromise } from './CancelablePromise';\nimport type { OnCancel } from './CancelablePromise';\nimport { OpenAPI } from './OpenAPI';\n\n" + + ((stack1 = container.invokePartial(lookupProperty(partials,"functions/isDefined"),depth0,{"name":"functions/isDefined","data":data,"helpers":helpers,"partials":partials,"decorators":container.decorators})) != null ? stack1 : "") + + "\n\n" + + ((stack1 = container.invokePartial(lookupProperty(partials,"functions/isString"),depth0,{"name":"functions/isString","data":data,"helpers":helpers,"partials":partials,"decorators":container.decorators})) != null ? stack1 : "") + + "\n\n" + + ((stack1 = container.invokePartial(lookupProperty(partials,"functions/isStringWithValue"),depth0,{"name":"functions/isStringWithValue","data":data,"helpers":helpers,"partials":partials,"decorators":container.decorators})) != null ? stack1 : "") + + "\n\n" + + ((stack1 = container.invokePartial(lookupProperty(partials,"functions/isBlob"),depth0,{"name":"functions/isBlob","data":data,"helpers":helpers,"partials":partials,"decorators":container.decorators})) != null ? stack1 : "") + + "\n\n" + + ((stack1 = container.invokePartial(lookupProperty(partials,"functions/base64"),depth0,{"name":"functions/base64","data":data,"helpers":helpers,"partials":partials,"decorators":container.decorators})) != null ? stack1 : "") + + "\n\n" + + ((stack1 = container.invokePartial(lookupProperty(partials,"functions/getQueryString"),depth0,{"name":"functions/getQueryString","data":data,"helpers":helpers,"partials":partials,"decorators":container.decorators})) != null ? stack1 : "") + + "\n\n" + + ((stack1 = container.invokePartial(lookupProperty(partials,"functions/getUrl"),depth0,{"name":"functions/getUrl","data":data,"helpers":helpers,"partials":partials,"decorators":container.decorators})) != null ? stack1 : "") + + "\n\n" + + ((stack1 = container.invokePartial(lookupProperty(partials,"functions/getFormData"),depth0,{"name":"functions/getFormData","data":data,"helpers":helpers,"partials":partials,"decorators":container.decorators})) != null ? stack1 : "") + + "\n\n" + + ((stack1 = container.invokePartial(lookupProperty(partials,"functions/resolve"),depth0,{"name":"functions/resolve","data":data,"helpers":helpers,"partials":partials,"decorators":container.decorators})) != null ? stack1 : "") + + "\n\n" + + ((stack1 = container.invokePartial(lookupProperty(partials,"node/getHeaders"),depth0,{"name":"node/getHeaders","data":data,"helpers":helpers,"partials":partials,"decorators":container.decorators})) != null ? stack1 : "") + + "\n\n" + + ((stack1 = container.invokePartial(lookupProperty(partials,"node/getRequestBody"),depth0,{"name":"node/getRequestBody","data":data,"helpers":helpers,"partials":partials,"decorators":container.decorators})) != null ? stack1 : "") + + "\n\n" + + ((stack1 = container.invokePartial(lookupProperty(partials,"node/sendRequest"),depth0,{"name":"node/sendRequest","data":data,"helpers":helpers,"partials":partials,"decorators":container.decorators})) != null ? stack1 : "") + + "\n\n" + + ((stack1 = container.invokePartial(lookupProperty(partials,"node/getResponseHeader"),depth0,{"name":"node/getResponseHeader","data":data,"helpers":helpers,"partials":partials,"decorators":container.decorators})) != null ? stack1 : "") + + "\n\n" + + ((stack1 = container.invokePartial(lookupProperty(partials,"node/getResponseBody"),depth0,{"name":"node/getResponseBody","data":data,"helpers":helpers,"partials":partials,"decorators":container.decorators})) != null ? stack1 : "") + + "\n\n" + + ((stack1 = container.invokePartial(lookupProperty(partials,"functions/catchErrors"),depth0,{"name":"functions/catchErrors","data":data,"helpers":helpers,"partials":partials,"decorators":container.decorators})) != null ? stack1 : "") + + "\n\n/**\n * Request using node-fetch client\n * @param options The request options from the the service\n * @returns CancelablePromise\n * @throws ApiError\n */\nexport function request(options: ApiRequestOptions): CancelablePromise {\n return new CancelablePromise(async (resolve, reject, onCancel) => {\n try {\n const url = getUrl(options);\n const formData = getFormData(options);\n const body = getRequestBody(options);\n const headers = await getHeaders(options);\n\n if (!onCancel.isCancelled) {\n const response = await sendRequest(options, url, formData, body, headers, onCancel);\n const responseBody = await getResponseBody(response);\n const responseHeader = getResponseHeader(response, options.responseHeader);\n\n const result: ApiResult = {\n url,\n ok: response.ok,\n status: response.status,\n statusText: response.statusText,\n body: responseHeader || responseBody,\n };\n\n catchErrors(options, result);\n\n resolve(result.body);\n }\n } catch (error) {\n reject(error);\n }\n });\n}"; +},"usePartial":true,"useData":true}; + +var nodeSendRequest = {"compiler":[8,">= 4.3.0"],"main":function(container,depth0,helpers,partials,data) { + return "async function sendRequest(\n options: ApiRequestOptions,\n url: string,\n formData: FormData | undefined,\n body: BodyInit | undefined,\n headers: Headers,\n onCancel: OnCancel\n): Promise {\n const controller = new AbortController();\n\n const request: RequestInit = {\n headers,\n method: options.method,\n body: body || formData,\n signal: controller.signal,\n };\n\n onCancel(() => controller.abort());\n\n return await fetch(url, request);\n}"; +},"useData":true}; + +var templateCoreSettings = {"compiler":[8,">= 4.3.0"],"main":function(container,depth0,helpers,partials,data) { + var stack1, alias1=container.strict, alias2=container.lambda, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return ((stack1 = container.invokePartial(lookupProperty(partials,"header"),depth0,{"name":"header","data":data,"helpers":helpers,"partials":partials,"decorators":container.decorators})) != null ? stack1 : "") + + "\nimport type { ApiRequestOptions } from './ApiRequestOptions';\n\ntype Resolver = (options: ApiRequestOptions) => Promise;\ntype Headers = Record;\n\ntype Config = {\n BASE: string;\n VERSION: string;\n WITH_CREDENTIALS: boolean;\n CREDENTIALS: 'include' | 'omit' | 'same-origin';\n TOKEN?: string | Resolver;\n USERNAME?: string | Resolver;\n PASSWORD?: string | Resolver;\n HEADERS?: Headers | Resolver;\n ENCODE_PATH?: (path: string) => string;\n}\n\nexport const OpenAPI: Config = {\n BASE: '" + + ((stack1 = alias2(alias1(depth0, "server", {"start":{"line":21,"column":14},"end":{"line":21,"column":20}} ), depth0)) != null ? stack1 : "") + + "',\n VERSION: '" + + ((stack1 = alias2(alias1(depth0, "version", {"start":{"line":22,"column":17},"end":{"line":22,"column":24}} ), depth0)) != null ? stack1 : "") + + "',\n WITH_CREDENTIALS: false,\n CREDENTIALS: 'include',\n TOKEN: undefined,\n USERNAME: undefined,\n PASSWORD: undefined,\n HEADERS: undefined,\n ENCODE_PATH: undefined,\n};"; +},"usePartial":true,"useData":true}; + +var templateCoreRequest = {"1":function(container,depth0,helpers,partials,data) { + var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return ((stack1 = container.invokePartial(lookupProperty(partials,"fetch/request"),depth0,{"name":"fetch/request","data":data,"helpers":helpers,"partials":partials,"decorators":container.decorators})) != null ? stack1 : ""); +},"3":function(container,depth0,helpers,partials,data) { + var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return ((stack1 = container.invokePartial(lookupProperty(partials,"xhr/request"),depth0,{"name":"xhr/request","data":data,"helpers":helpers,"partials":partials,"decorators":container.decorators})) != null ? stack1 : ""); +},"5":function(container,depth0,helpers,partials,data) { + var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return ((stack1 = container.invokePartial(lookupProperty(partials,"axios/request"),depth0,{"name":"axios/request","data":data,"helpers":helpers,"partials":partials,"decorators":container.decorators})) != null ? stack1 : ""); +},"7":function(container,depth0,helpers,partials,data) { + var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return ((stack1 = container.invokePartial(lookupProperty(partials,"node/request"),depth0,{"name":"node/request","data":data,"helpers":helpers,"partials":partials,"decorators":container.decorators})) != null ? stack1 : ""); +},"compiler":[8,">= 4.3.0"],"main":function(container,depth0,helpers,partials,data) { + var stack1, alias1=depth0 != null ? depth0 : (container.nullContext || {}), lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return ((stack1 = lookupProperty(helpers,"equals").call(alias1,lookupProperty(lookupProperty(data,"root"),"httpClient"),"fetch",{"name":"equals","hash":{},"fn":container.program(1, data, 0),"inverse":container.noop,"data":data,"loc":{"start":{"line":1,"column":0},"end":{"line":1,"column":67}}})) != null ? stack1 : "") + + ((stack1 = lookupProperty(helpers,"equals").call(alias1,lookupProperty(lookupProperty(data,"root"),"httpClient"),"xhr",{"name":"equals","hash":{},"fn":container.program(3, data, 0),"inverse":container.noop,"data":data,"loc":{"start":{"line":2,"column":0},"end":{"line":2,"column":63}}})) != null ? stack1 : "") + + ((stack1 = lookupProperty(helpers,"equals").call(alias1,lookupProperty(lookupProperty(data,"root"),"httpClient"),"axios",{"name":"equals","hash":{},"fn":container.program(5, data, 0),"inverse":container.noop,"data":data,"loc":{"start":{"line":3,"column":0},"end":{"line":3,"column":67}}})) != null ? stack1 : "") + + ((stack1 = lookupProperty(helpers,"equals").call(alias1,lookupProperty(lookupProperty(data,"root"),"httpClient"),"node",{"name":"equals","hash":{},"fn":container.program(7, data, 0),"inverse":container.noop,"data":data,"loc":{"start":{"line":4,"column":0},"end":{"line":4,"column":65}}})) != null ? stack1 : ""); +},"usePartial":true,"useData":true}; + +var xhrGetHeaders = {"compiler":[8,">= 4.3.0"],"main":function(container,depth0,helpers,partials,data) { + return "async function getHeaders(options: ApiRequestOptions): Promise {\n const token = await resolve(options, OpenAPI.TOKEN);\n const username = await resolve(options, OpenAPI.USERNAME);\n const password = await resolve(options, OpenAPI.PASSWORD);\n const additionalHeaders = await resolve(options, OpenAPI.HEADERS);\n\n const defaultHeaders = Object.entries({\n Accept: 'application/json',\n ...additionalHeaders,\n ...options.headers,\n })\n .filter(([_, value]) => isDefined(value))\n .reduce((headers, [key, value]) => ({\n ...headers,\n [key]: String(value),\n }), {} as Record);\n\n const headers = new Headers(defaultHeaders);\n\n if (isStringWithValue(token)) {\n headers.append('Authorization', `Bearer ${token}`);\n }\n\n if (isStringWithValue(username) && isStringWithValue(password)) {\n const credentials = base64(`${username}:${password}`);\n headers.append('Authorization', `Basic ${credentials}`);\n }\n\n if (options.body) {\n if (options.mediaType) {\n headers.append('Content-Type', options.mediaType);\n } else if (isBlob(options.body)) {\n headers.append('Content-Type', options.body.type || 'application/octet-stream');\n } else if (isString(options.body)) {\n headers.append('Content-Type', 'text/plain');\n } else {\n headers.append('Content-Type', 'application/json');\n }\n }\n return headers;\n}"; +},"useData":true}; + +var xhrGetRequestBody = {"compiler":[8,">= 4.3.0"],"main":function(container,depth0,helpers,partials,data) { + return "function getRequestBody(options: ApiRequestOptions): any {\n if (options.body) {\n if (options.mediaType?.includes('/json')) {\n return JSON.stringify(options.body)\n } else if (isString(options.body) || isBlob(options.body)) {\n return options.body;\n } else {\n return JSON.stringify(options.body);\n }\n }\n\n return;\n}"; +},"useData":true}; + +var xhrGetResponseBody = {"compiler":[8,">= 4.3.0"],"main":function(container,depth0,helpers,partials,data) { + return "function getResponseBody(xhr: XMLHttpRequest): any {\n if (xhr.status !== 204) {\n try {\n const contentType = xhr.getResponseHeader('Content-Type');\n if (contentType) {\n const isJSON = contentType.toLowerCase().startsWith('application/json');\n if (isJSON) {\n return JSON.parse(xhr.responseText);\n } else {\n return xhr.responseText;\n }\n }\n } catch (error) {\n console.error(error);\n }\n }\n return;\n}"; +},"useData":true}; + +var xhrGetResponseHeader = {"compiler":[8,">= 4.3.0"],"main":function(container,depth0,helpers,partials,data) { + return "function getResponseHeader(xhr: XMLHttpRequest, responseHeader?: string): string | undefined {\n if (responseHeader) {\n const content = xhr.getResponseHeader(responseHeader);\n if (isString(content)) {\n return content;\n }\n }\n return;\n}"; +},"useData":true}; + +var xhrRequest = {"compiler":[8,">= 4.3.0"],"main":function(container,depth0,helpers,partials,data) { + var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return ((stack1 = container.invokePartial(lookupProperty(partials,"header"),depth0,{"name":"header","data":data,"helpers":helpers,"partials":partials,"decorators":container.decorators})) != null ? stack1 : "") + + "\nimport { ApiError } from './ApiError';\nimport type { ApiRequestOptions } from './ApiRequestOptions';\nimport type { ApiResult } from './ApiResult';\nimport { CancelablePromise } from './CancelablePromise';\nimport type { OnCancel } from './CancelablePromise';\nimport { OpenAPI } from './OpenAPI';\n\n" + + ((stack1 = container.invokePartial(lookupProperty(partials,"functions/isDefined"),depth0,{"name":"functions/isDefined","data":data,"helpers":helpers,"partials":partials,"decorators":container.decorators})) != null ? stack1 : "") + + "\n\n" + + ((stack1 = container.invokePartial(lookupProperty(partials,"functions/isString"),depth0,{"name":"functions/isString","data":data,"helpers":helpers,"partials":partials,"decorators":container.decorators})) != null ? stack1 : "") + + "\n\n" + + ((stack1 = container.invokePartial(lookupProperty(partials,"functions/isStringWithValue"),depth0,{"name":"functions/isStringWithValue","data":data,"helpers":helpers,"partials":partials,"decorators":container.decorators})) != null ? stack1 : "") + + "\n\n" + + ((stack1 = container.invokePartial(lookupProperty(partials,"functions/isBlob"),depth0,{"name":"functions/isBlob","data":data,"helpers":helpers,"partials":partials,"decorators":container.decorators})) != null ? stack1 : "") + + "\n\n" + + ((stack1 = container.invokePartial(lookupProperty(partials,"functions/isSuccess"),depth0,{"name":"functions/isSuccess","data":data,"helpers":helpers,"partials":partials,"decorators":container.decorators})) != null ? stack1 : "") + + "\n\n" + + ((stack1 = container.invokePartial(lookupProperty(partials,"functions/base64"),depth0,{"name":"functions/base64","data":data,"helpers":helpers,"partials":partials,"decorators":container.decorators})) != null ? stack1 : "") + + "\n\n" + + ((stack1 = container.invokePartial(lookupProperty(partials,"functions/getQueryString"),depth0,{"name":"functions/getQueryString","data":data,"helpers":helpers,"partials":partials,"decorators":container.decorators})) != null ? stack1 : "") + + "\n\n" + + ((stack1 = container.invokePartial(lookupProperty(partials,"functions/getUrl"),depth0,{"name":"functions/getUrl","data":data,"helpers":helpers,"partials":partials,"decorators":container.decorators})) != null ? stack1 : "") + + "\n\n" + + ((stack1 = container.invokePartial(lookupProperty(partials,"functions/getFormData"),depth0,{"name":"functions/getFormData","data":data,"helpers":helpers,"partials":partials,"decorators":container.decorators})) != null ? stack1 : "") + + "\n\n" + + ((stack1 = container.invokePartial(lookupProperty(partials,"functions/resolve"),depth0,{"name":"functions/resolve","data":data,"helpers":helpers,"partials":partials,"decorators":container.decorators})) != null ? stack1 : "") + + "\n\n" + + ((stack1 = container.invokePartial(lookupProperty(partials,"fetch/getHeaders"),depth0,{"name":"fetch/getHeaders","data":data,"helpers":helpers,"partials":partials,"decorators":container.decorators})) != null ? stack1 : "") + + "\n\n" + + ((stack1 = container.invokePartial(lookupProperty(partials,"xhr/getRequestBody"),depth0,{"name":"xhr/getRequestBody","data":data,"helpers":helpers,"partials":partials,"decorators":container.decorators})) != null ? stack1 : "") + + "\n\n" + + ((stack1 = container.invokePartial(lookupProperty(partials,"xhr/sendRequest"),depth0,{"name":"xhr/sendRequest","data":data,"helpers":helpers,"partials":partials,"decorators":container.decorators})) != null ? stack1 : "") + + "\n\n" + + ((stack1 = container.invokePartial(lookupProperty(partials,"xhr/getResponseHeader"),depth0,{"name":"xhr/getResponseHeader","data":data,"helpers":helpers,"partials":partials,"decorators":container.decorators})) != null ? stack1 : "") + + "\n\n" + + ((stack1 = container.invokePartial(lookupProperty(partials,"xhr/getResponseBody"),depth0,{"name":"xhr/getResponseBody","data":data,"helpers":helpers,"partials":partials,"decorators":container.decorators})) != null ? stack1 : "") + + "\n\n" + + ((stack1 = container.invokePartial(lookupProperty(partials,"functions/catchErrors"),depth0,{"name":"functions/catchErrors","data":data,"helpers":helpers,"partials":partials,"decorators":container.decorators})) != null ? stack1 : "") + + "\n\n/**\n * Request using XHR client\n * @param options The request options from the the service\n * @returns CancelablePromise\n * @throws ApiError\n */\nexport function request(options: ApiRequestOptions): CancelablePromise {\n return new CancelablePromise(async (resolve, reject, onCancel) => {\n try {\n const url = getUrl(options);\n const formData = getFormData(options);\n const body = getRequestBody(options);\n const headers = await getHeaders(options);\n\n if (!onCancel.isCancelled) {\n const response = await sendRequest(options, url, formData, body, headers, onCancel);\n const responseBody = getResponseBody(response);\n const responseHeader = getResponseHeader(response, options.responseHeader);\n\n const result: ApiResult = {\n url,\n ok: isSuccess(response.status),\n status: response.status,\n statusText: response.statusText,\n body: responseHeader || responseBody,\n };\n\n catchErrors(options, result);\n\n resolve(result.body);\n }\n } catch (error) {\n reject(error);\n }\n });\n}"; +},"usePartial":true,"useData":true}; + +var xhrSendRequest = {"compiler":[8,">= 4.3.0"],"main":function(container,depth0,helpers,partials,data) { + return "async function sendRequest(\n options: ApiRequestOptions,\n url: string,\n formData: FormData | undefined,\n body: any,\n headers: Headers,\n onCancel: OnCancel\n): Promise {\n const xhr = new XMLHttpRequest();\n xhr.open(options.method, url, true);\n xhr.withCredentials = OpenAPI.WITH_CREDENTIALS;\n\n headers.forEach((value, key) => {\n xhr.setRequestHeader(key, value);\n });\n\n return new Promise((resolve, reject) => {\n xhr.onload = () => resolve(xhr);\n xhr.onabort = () => reject(new Error('The user aborted a request.'));\n xhr.onerror = () => reject(new Error('Network error.'));\n xhr.send(body || formData);\n\n onCancel(() => xhr.abort());\n });\n}"; +},"useData":true}; + +var templateExportModel = {"1":function(container,depth0,helpers,partials,data) { + var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return "\n" + + ((stack1 = lookupProperty(helpers,"each").call(depth0 != null ? depth0 : (container.nullContext || {}),lookupProperty(depth0,"imports"),{"name":"each","hash":{},"fn":container.program(2, data, 0),"inverse":container.noop,"data":data,"loc":{"start":{"line":5,"column":0},"end":{"line":7,"column":9}}})) != null ? stack1 : ""); +},"2":function(container,depth0,helpers,partials,data) { + var stack1, alias1=container.lambda; + + return "import type { " + + ((stack1 = alias1(depth0, depth0)) != null ? stack1 : "") + + " } from './" + + ((stack1 = alias1(depth0, depth0)) != null ? stack1 : "") + + "';\n"; +},"4":function(container,depth0,helpers,partials,data) { + var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return ((stack1 = container.invokePartial(lookupProperty(partials,"exportInterface"),depth0,{"name":"exportInterface","data":data,"helpers":helpers,"partials":partials,"decorators":container.decorators})) != null ? stack1 : ""); +},"6":function(container,depth0,helpers,partials,data) { + var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return ((stack1 = lookupProperty(helpers,"equals").call(depth0 != null ? depth0 : (container.nullContext || {}),lookupProperty(depth0,"export"),"one-of",{"name":"equals","hash":{},"fn":container.program(7, data, 0),"inverse":container.program(9, data, 0),"data":data,"loc":{"start":{"line":12,"column":0},"end":{"line":26,"column":0}}})) != null ? stack1 : ""); +},"7":function(container,depth0,helpers,partials,data) { + var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return ((stack1 = container.invokePartial(lookupProperty(partials,"exportComposition"),depth0,{"name":"exportComposition","data":data,"helpers":helpers,"partials":partials,"decorators":container.decorators})) != null ? stack1 : ""); +},"9":function(container,depth0,helpers,partials,data) { + var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return ((stack1 = lookupProperty(helpers,"equals").call(depth0 != null ? depth0 : (container.nullContext || {}),lookupProperty(depth0,"export"),"any-of",{"name":"equals","hash":{},"fn":container.program(7, data, 0),"inverse":container.program(10, data, 0),"data":data,"loc":{"start":{"line":14,"column":0},"end":{"line":26,"column":0}}})) != null ? stack1 : ""); +},"10":function(container,depth0,helpers,partials,data) { + var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return ((stack1 = lookupProperty(helpers,"equals").call(depth0 != null ? depth0 : (container.nullContext || {}),lookupProperty(depth0,"export"),"all-of",{"name":"equals","hash":{},"fn":container.program(7, data, 0),"inverse":container.program(11, data, 0),"data":data,"loc":{"start":{"line":16,"column":0},"end":{"line":26,"column":0}}})) != null ? stack1 : ""); +},"11":function(container,depth0,helpers,partials,data) { + var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return ((stack1 = lookupProperty(helpers,"equals").call(depth0 != null ? depth0 : (container.nullContext || {}),lookupProperty(depth0,"export"),"enum",{"name":"equals","hash":{},"fn":container.program(12, data, 0),"inverse":container.program(13, data, 0),"data":data,"loc":{"start":{"line":18,"column":0},"end":{"line":26,"column":0}}})) != null ? stack1 : ""); +},"12":function(container,depth0,helpers,partials,data) { + var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return ((stack1 = lookupProperty(helpers,"if").call(depth0 != null ? depth0 : (container.nullContext || {}),lookupProperty(lookupProperty(data,"root"),"useUnionTypes"),{"name":"if","hash":{},"fn":container.program(13, data, 0),"inverse":container.program(15, data, 0),"data":data,"loc":{"start":{"line":19,"column":0},"end":{"line":23,"column":7}}})) != null ? stack1 : ""); +},"13":function(container,depth0,helpers,partials,data) { + var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return ((stack1 = container.invokePartial(lookupProperty(partials,"exportType"),depth0,{"name":"exportType","data":data,"helpers":helpers,"partials":partials,"decorators":container.decorators})) != null ? stack1 : ""); +},"15":function(container,depth0,helpers,partials,data) { + var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return ((stack1 = container.invokePartial(lookupProperty(partials,"exportEnum"),depth0,{"name":"exportEnum","data":data,"helpers":helpers,"partials":partials,"decorators":container.decorators})) != null ? stack1 : ""); +},"compiler":[8,">= 4.3.0"],"main":function(container,depth0,helpers,partials,data) { + var stack1, alias1=depth0 != null ? depth0 : (container.nullContext || {}), lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return ((stack1 = container.invokePartial(lookupProperty(partials,"header"),depth0,{"name":"header","data":data,"helpers":helpers,"partials":partials,"decorators":container.decorators})) != null ? stack1 : "") + + "\n" + + ((stack1 = lookupProperty(helpers,"if").call(alias1,lookupProperty(depth0,"imports"),{"name":"if","hash":{},"fn":container.program(1, data, 0),"inverse":container.noop,"data":data,"loc":{"start":{"line":3,"column":0},"end":{"line":8,"column":7}}})) != null ? stack1 : "") + + "\n" + + ((stack1 = lookupProperty(helpers,"equals").call(alias1,lookupProperty(depth0,"export"),"interface",{"name":"equals","hash":{},"fn":container.program(4, data, 0),"inverse":container.program(6, data, 0),"data":data,"loc":{"start":{"line":10,"column":0},"end":{"line":26,"column":11}}})) != null ? stack1 : ""); +},"usePartial":true,"useData":true}; + +var templateExportSchema = {"compiler":[8,">= 4.3.0"],"main":function(container,depth0,helpers,partials,data) { + var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return ((stack1 = container.invokePartial(lookupProperty(partials,"header"),depth0,{"name":"header","data":data,"helpers":helpers,"partials":partials,"decorators":container.decorators})) != null ? stack1 : "") + + "\nexport const $" + + ((stack1 = container.lambda(container.strict(depth0, "name", {"start":{"line":3,"column":17},"end":{"line":3,"column":21}} ), depth0)) != null ? stack1 : "") + + " = " + + ((stack1 = container.invokePartial(lookupProperty(partials,"schema"),depth0,{"name":"schema","data":data,"helpers":helpers,"partials":partials,"decorators":container.decorators})) != null ? stack1 : "") + + " as const;"; +},"usePartial":true,"useData":true}; + +var templateExportService = {"1":function(container,depth0,helpers,partials,data) { + var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return ((stack1 = lookupProperty(helpers,"each").call(depth0 != null ? depth0 : (container.nullContext || {}),lookupProperty(depth0,"imports"),{"name":"each","hash":{},"fn":container.program(2, data, 0),"inverse":container.noop,"data":data,"loc":{"start":{"line":4,"column":0},"end":{"line":6,"column":9}}})) != null ? stack1 : ""); +},"2":function(container,depth0,helpers,partials,data) { + var stack1, alias1=container.lambda; + + return "import type { " + + ((stack1 = alias1(depth0, depth0)) != null ? stack1 : "") + + " } from '../models/" + + ((stack1 = alias1(depth0, depth0)) != null ? stack1 : "") + + "';\n"; +},"4":function(container,depth0,helpers,partials,data) { + return "import { OpenAPI } from '../core/OpenAPI';\n"; +},"6":function(container,depth0,helpers,partials,data) { + var stack1, alias1=depth0 != null ? depth0 : (container.nullContext || {}), alias2=container.strict, alias3=container.lambda, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return " /**\n" + + ((stack1 = lookupProperty(helpers,"if").call(alias1,lookupProperty(depth0,"deprecated"),{"name":"if","hash":{},"fn":container.program(7, data, 0),"inverse":container.noop,"data":data,"loc":{"start":{"line":18,"column":4},"end":{"line":20,"column":11}}})) != null ? stack1 : "") + + ((stack1 = lookupProperty(helpers,"if").call(alias1,lookupProperty(depth0,"summary"),{"name":"if","hash":{},"fn":container.program(9, data, 0),"inverse":container.noop,"data":data,"loc":{"start":{"line":21,"column":4},"end":{"line":23,"column":11}}})) != null ? stack1 : "") + + ((stack1 = lookupProperty(helpers,"if").call(alias1,lookupProperty(depth0,"description"),{"name":"if","hash":{},"fn":container.program(11, data, 0),"inverse":container.noop,"data":data,"loc":{"start":{"line":24,"column":4},"end":{"line":26,"column":11}}})) != null ? stack1 : "") + + ((stack1 = lookupProperty(helpers,"unless").call(alias1,lookupProperty(lookupProperty(data,"root"),"useOptions"),{"name":"unless","hash":{},"fn":container.program(13, data, 0),"inverse":container.noop,"data":data,"loc":{"start":{"line":27,"column":4},"end":{"line":33,"column":15}}})) != null ? stack1 : "") + + ((stack1 = lookupProperty(helpers,"each").call(alias1,lookupProperty(depth0,"results"),{"name":"each","hash":{},"fn":container.program(17, data, 0),"inverse":container.noop,"data":data,"loc":{"start":{"line":34,"column":4},"end":{"line":36,"column":13}}})) != null ? stack1 : "") + + " * @throws ApiError\n */\n public static " + + ((stack1 = alias3(alias2(depth0, "name", {"start":{"line":39,"column":21},"end":{"line":39,"column":25}} ), depth0)) != null ? stack1 : "") + + "(" + + ((stack1 = container.invokePartial(lookupProperty(partials,"parameters"),depth0,{"name":"parameters","data":data,"helpers":helpers,"partials":partials,"decorators":container.decorators})) != null ? stack1 : "") + + "): CancelablePromise<" + + ((stack1 = container.invokePartial(lookupProperty(partials,"result"),depth0,{"name":"result","data":data,"helpers":helpers,"partials":partials,"decorators":container.decorators})) != null ? stack1 : "") + + "> {\n return __request({\n method: '" + + ((stack1 = alias3(alias2(depth0, "method", {"start":{"line":41,"column":24},"end":{"line":41,"column":30}} ), depth0)) != null ? stack1 : "") + + "',\n path: `" + + ((stack1 = alias3(alias2(depth0, "path", {"start":{"line":42,"column":22},"end":{"line":42,"column":26}} ), depth0)) != null ? stack1 : "") + + "`,\n" + + ((stack1 = lookupProperty(helpers,"if").call(alias1,lookupProperty(depth0,"parametersCookie"),{"name":"if","hash":{},"fn":container.program(19, data, 0),"inverse":container.noop,"data":data,"loc":{"start":{"line":43,"column":12},"end":{"line":49,"column":19}}})) != null ? stack1 : "") + + ((stack1 = lookupProperty(helpers,"if").call(alias1,lookupProperty(depth0,"parametersHeader"),{"name":"if","hash":{},"fn":container.program(22, data, 0),"inverse":container.noop,"data":data,"loc":{"start":{"line":50,"column":12},"end":{"line":56,"column":19}}})) != null ? stack1 : "") + + ((stack1 = lookupProperty(helpers,"if").call(alias1,lookupProperty(depth0,"parametersQuery"),{"name":"if","hash":{},"fn":container.program(24, data, 0),"inverse":container.noop,"data":data,"loc":{"start":{"line":57,"column":12},"end":{"line":63,"column":19}}})) != null ? stack1 : "") + + ((stack1 = lookupProperty(helpers,"if").call(alias1,lookupProperty(depth0,"parametersForm"),{"name":"if","hash":{},"fn":container.program(26, data, 0),"inverse":container.noop,"data":data,"loc":{"start":{"line":64,"column":12},"end":{"line":70,"column":19}}})) != null ? stack1 : "") + + ((stack1 = lookupProperty(helpers,"if").call(alias1,lookupProperty(depth0,"parametersBody"),{"name":"if","hash":{},"fn":container.program(28, data, 0),"inverse":container.noop,"data":data,"loc":{"start":{"line":71,"column":12},"end":{"line":81,"column":19}}})) != null ? stack1 : "") + + ((stack1 = lookupProperty(helpers,"if").call(alias1,lookupProperty(depth0,"responseHeader"),{"name":"if","hash":{},"fn":container.program(35, data, 0),"inverse":container.noop,"data":data,"loc":{"start":{"line":82,"column":12},"end":{"line":84,"column":19}}})) != null ? stack1 : "") + + ((stack1 = lookupProperty(helpers,"if").call(alias1,lookupProperty(depth0,"errors"),{"name":"if","hash":{},"fn":container.program(37, data, 0),"inverse":container.noop,"data":data,"loc":{"start":{"line":85,"column":12},"end":{"line":91,"column":19}}})) != null ? stack1 : "") + + " });\n }\n\n"; +},"7":function(container,depth0,helpers,partials,data) { + return " * @deprecated\n"; +},"9":function(container,depth0,helpers,partials,data) { + var stack1; + + return " * " + + ((stack1 = container.lambda(container.strict(depth0, "summary", {"start":{"line":22,"column":10},"end":{"line":22,"column":17}} ), depth0)) != null ? stack1 : "") + + "\n"; +},"11":function(container,depth0,helpers,partials,data) { + var stack1; + + return " * " + + ((stack1 = container.lambda(container.strict(depth0, "description", {"start":{"line":25,"column":10},"end":{"line":25,"column":21}} ), depth0)) != null ? stack1 : "") + + "\n"; +},"13":function(container,depth0,helpers,partials,data) { + var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return ((stack1 = lookupProperty(helpers,"if").call(depth0 != null ? depth0 : (container.nullContext || {}),lookupProperty(depth0,"parameters"),{"name":"if","hash":{},"fn":container.program(14, data, 0),"inverse":container.noop,"data":data,"loc":{"start":{"line":28,"column":4},"end":{"line":32,"column":11}}})) != null ? stack1 : ""); +},"14":function(container,depth0,helpers,partials,data) { + var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return ((stack1 = lookupProperty(helpers,"each").call(depth0 != null ? depth0 : (container.nullContext || {}),lookupProperty(depth0,"parameters"),{"name":"each","hash":{},"fn":container.program(15, data, 0),"inverse":container.noop,"data":data,"loc":{"start":{"line":29,"column":4},"end":{"line":31,"column":13}}})) != null ? stack1 : ""); +},"15":function(container,depth0,helpers,partials,data) { + var stack1, alias1=container.strict, alias2=container.lambda; + + return " * @param " + + ((stack1 = alias2(alias1(depth0, "name", {"start":{"line":30,"column":17},"end":{"line":30,"column":21}} ), depth0)) != null ? stack1 : "") + + " " + + ((stack1 = alias2(alias1(depth0, "description", {"start":{"line":30,"column":28},"end":{"line":30,"column":39}} ), depth0)) != null ? stack1 : "") + + "\n"; +},"17":function(container,depth0,helpers,partials,data) { + var stack1, alias1=container.strict, alias2=container.lambda; + + return " * @returns " + + ((stack1 = alias2(alias1(depth0, "type", {"start":{"line":35,"column":19},"end":{"line":35,"column":23}} ), depth0)) != null ? stack1 : "") + + " " + + ((stack1 = alias2(alias1(depth0, "description", {"start":{"line":35,"column":30},"end":{"line":35,"column":41}} ), depth0)) != null ? stack1 : "") + + "\n"; +},"19":function(container,depth0,helpers,partials,data) { + var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return " cookies: {\n" + + ((stack1 = lookupProperty(helpers,"each").call(depth0 != null ? depth0 : (container.nullContext || {}),lookupProperty(depth0,"parametersCookie"),{"name":"each","hash":{},"fn":container.program(20, data, 0),"inverse":container.noop,"data":data,"loc":{"start":{"line":45,"column":16},"end":{"line":47,"column":25}}})) != null ? stack1 : "") + + " },\n"; +},"20":function(container,depth0,helpers,partials,data) { + var stack1, alias1=container.strict, alias2=container.lambda; + + return " '" + + ((stack1 = alias2(alias1(depth0, "prop", {"start":{"line":46,"column":20},"end":{"line":46,"column":24}} ), depth0)) != null ? stack1 : "") + + "': " + + ((stack1 = alias2(alias1(depth0, "name", {"start":{"line":46,"column":33},"end":{"line":46,"column":37}} ), depth0)) != null ? stack1 : "") + + ",\n"; +},"22":function(container,depth0,helpers,partials,data) { + var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return " headers: {\n" + + ((stack1 = lookupProperty(helpers,"each").call(depth0 != null ? depth0 : (container.nullContext || {}),lookupProperty(depth0,"parametersHeader"),{"name":"each","hash":{},"fn":container.program(20, data, 0),"inverse":container.noop,"data":data,"loc":{"start":{"line":52,"column":16},"end":{"line":54,"column":25}}})) != null ? stack1 : "") + + " },\n"; +},"24":function(container,depth0,helpers,partials,data) { + var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return " query: {\n" + + ((stack1 = lookupProperty(helpers,"each").call(depth0 != null ? depth0 : (container.nullContext || {}),lookupProperty(depth0,"parametersQuery"),{"name":"each","hash":{},"fn":container.program(20, data, 0),"inverse":container.noop,"data":data,"loc":{"start":{"line":59,"column":16},"end":{"line":61,"column":25}}})) != null ? stack1 : "") + + " },\n"; +},"26":function(container,depth0,helpers,partials,data) { + var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return " formData: {\n" + + ((stack1 = lookupProperty(helpers,"each").call(depth0 != null ? depth0 : (container.nullContext || {}),lookupProperty(depth0,"parametersForm"),{"name":"each","hash":{},"fn":container.program(20, data, 0),"inverse":container.noop,"data":data,"loc":{"start":{"line":66,"column":16},"end":{"line":68,"column":25}}})) != null ? stack1 : "") + + " },\n"; +},"28":function(container,depth0,helpers,partials,data) { + var stack1, alias1=depth0 != null ? depth0 : (container.nullContext || {}), lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return ((stack1 = lookupProperty(helpers,"equals").call(alias1,lookupProperty(lookupProperty(depth0,"parametersBody"),"in"),"formData",{"name":"equals","hash":{},"fn":container.program(29, data, 0),"inverse":container.noop,"data":data,"loc":{"start":{"line":72,"column":12},"end":{"line":74,"column":23}}})) != null ? stack1 : "") + + ((stack1 = lookupProperty(helpers,"equals").call(alias1,lookupProperty(lookupProperty(depth0,"parametersBody"),"in"),"body",{"name":"equals","hash":{},"fn":container.program(31, data, 0),"inverse":container.noop,"data":data,"loc":{"start":{"line":75,"column":12},"end":{"line":77,"column":23}}})) != null ? stack1 : "") + + ((stack1 = lookupProperty(helpers,"if").call(alias1,lookupProperty(lookupProperty(depth0,"parametersBody"),"mediaType"),{"name":"if","hash":{},"fn":container.program(33, data, 0),"inverse":container.noop,"data":data,"loc":{"start":{"line":78,"column":12},"end":{"line":80,"column":19}}})) != null ? stack1 : ""); +},"29":function(container,depth0,helpers,partials,data) { + var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return " formData: " + + ((stack1 = container.lambda(container.strict(lookupProperty(depth0,"parametersBody"), "name", {"start":{"line":73,"column":25},"end":{"line":73,"column":44}} ), depth0)) != null ? stack1 : "") + + ",\n"; +},"31":function(container,depth0,helpers,partials,data) { + var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return " body: " + + ((stack1 = container.lambda(container.strict(lookupProperty(depth0,"parametersBody"), "name", {"start":{"line":76,"column":21},"end":{"line":76,"column":40}} ), depth0)) != null ? stack1 : "") + + ",\n"; +},"33":function(container,depth0,helpers,partials,data) { + var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return " mediaType: '" + + ((stack1 = container.lambda(container.strict(lookupProperty(depth0,"parametersBody"), "mediaType", {"start":{"line":79,"column":27},"end":{"line":79,"column":51}} ), depth0)) != null ? stack1 : "") + + "',\n"; +},"35":function(container,depth0,helpers,partials,data) { + var stack1; + + return " responseHeader: '" + + ((stack1 = container.lambda(container.strict(depth0, "responseHeader", {"start":{"line":83,"column":32},"end":{"line":83,"column":46}} ), depth0)) != null ? stack1 : "") + + "',\n"; +},"37":function(container,depth0,helpers,partials,data) { + var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return " errors: {\n" + + ((stack1 = lookupProperty(helpers,"each").call(depth0 != null ? depth0 : (container.nullContext || {}),lookupProperty(depth0,"errors"),{"name":"each","hash":{},"fn":container.program(38, data, 0),"inverse":container.noop,"data":data,"loc":{"start":{"line":87,"column":16},"end":{"line":89,"column":25}}})) != null ? stack1 : "") + + " },\n"; +},"38":function(container,depth0,helpers,partials,data) { + var stack1, alias1=container.strict, alias2=container.lambda; + + return " " + + ((stack1 = alias2(alias1(depth0, "code", {"start":{"line":88,"column":19},"end":{"line":88,"column":23}} ), depth0)) != null ? stack1 : "") + + ": `" + + ((stack1 = alias2(alias1(depth0, "description", {"start":{"line":88,"column":32},"end":{"line":88,"column":43}} ), depth0)) != null ? stack1 : "") + + "`,\n"; +},"compiler":[8,">= 4.3.0"],"main":function(container,depth0,helpers,partials,data) { + var stack1, alias1=depth0 != null ? depth0 : (container.nullContext || {}), alias2=container.strict, alias3=container.lambda, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return ((stack1 = container.invokePartial(lookupProperty(partials,"header"),depth0,{"name":"header","data":data,"helpers":helpers,"partials":partials,"decorators":container.decorators})) != null ? stack1 : "") + + "\n" + + ((stack1 = lookupProperty(helpers,"if").call(alias1,lookupProperty(depth0,"imports"),{"name":"if","hash":{},"fn":container.program(1, data, 0),"inverse":container.noop,"data":data,"loc":{"start":{"line":3,"column":0},"end":{"line":7,"column":7}}})) != null ? stack1 : "") + + "import type { CancelablePromise } from '../core/CancelablePromise';\nimport { request as __request } from '../core/request';\n" + + ((stack1 = lookupProperty(helpers,"if").call(alias1,lookupProperty(lookupProperty(data,"root"),"useVersion"),{"name":"if","hash":{},"fn":container.program(4, data, 0),"inverse":container.noop,"data":data,"loc":{"start":{"line":10,"column":0},"end":{"line":12,"column":7}}})) != null ? stack1 : "") + + "\nexport class " + + ((stack1 = alias3(alias2(depth0, "name", {"start":{"line":14,"column":16},"end":{"line":14,"column":20}} ), depth0)) != null ? stack1 : "") + + ((stack1 = alias3(alias2(lookupProperty(data,"root"), "postfix", {"start":{"line":14,"column":26},"end":{"line":14,"column":39}} ), depth0)) != null ? stack1 : "") + + " {\n\n" + + ((stack1 = lookupProperty(helpers,"each").call(alias1,lookupProperty(depth0,"operations"),{"name":"each","hash":{},"fn":container.program(6, data, 0),"inverse":container.noop,"data":data,"loc":{"start":{"line":16,"column":4},"end":{"line":95,"column":13}}})) != null ? stack1 : "") + + "}"; +},"usePartial":true,"useData":true}; + +var templateIndex = {"1":function(container,depth0,helpers,partials,data) { + return "\nexport { ApiError } from './core/ApiError';\nexport { CancelablePromise } from './core/CancelablePromise';\nexport { OpenAPI } from './core/OpenAPI';\n"; +},"3":function(container,depth0,helpers,partials,data) { + var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return ((stack1 = lookupProperty(helpers,"if").call(depth0 != null ? depth0 : (container.nullContext || {}),lookupProperty(depth0,"models"),{"name":"if","hash":{},"fn":container.program(4, data, 0),"inverse":container.noop,"data":data,"loc":{"start":{"line":9,"column":0},"end":{"line":22,"column":7}}})) != null ? stack1 : ""); +},"4":function(container,depth0,helpers,partials,data) { + var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return "\n" + + ((stack1 = lookupProperty(helpers,"each").call(depth0 != null ? depth0 : (container.nullContext || {}),lookupProperty(depth0,"models"),{"name":"each","hash":{},"fn":container.program(5, data, 0),"inverse":container.noop,"data":data,"loc":{"start":{"line":11,"column":0},"end":{"line":21,"column":9}}})) != null ? stack1 : ""); +},"5":function(container,depth0,helpers,partials,data) { + var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return ((stack1 = lookupProperty(helpers,"if").call(depth0 != null ? depth0 : (container.nullContext || {}),lookupProperty(lookupProperty(data,"root"),"useUnionTypes"),{"name":"if","hash":{},"fn":container.program(6, data, 0),"inverse":container.program(8, data, 0),"data":data,"loc":{"start":{"line":12,"column":0},"end":{"line":20,"column":7}}})) != null ? stack1 : ""); +},"6":function(container,depth0,helpers,partials,data) { + var stack1, alias1=container.strict, alias2=container.lambda; + + return "export type { " + + ((stack1 = alias2(alias1(depth0, "name", {"start":{"line":13,"column":17},"end":{"line":13,"column":21}} ), depth0)) != null ? stack1 : "") + + " } from './models/" + + ((stack1 = alias2(alias1(depth0, "name", {"start":{"line":13,"column":45},"end":{"line":13,"column":49}} ), depth0)) != null ? stack1 : "") + + "';\n"; +},"8":function(container,depth0,helpers,partials,data) { + var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return ((stack1 = lookupProperty(helpers,"if").call(depth0 != null ? depth0 : (container.nullContext || {}),lookupProperty(depth0,"enum"),{"name":"if","hash":{},"fn":container.program(9, data, 0),"inverse":container.program(11, data, 0),"data":data,"loc":{"start":{"line":14,"column":0},"end":{"line":20,"column":0}}})) != null ? stack1 : ""); +},"9":function(container,depth0,helpers,partials,data) { + var stack1, alias1=container.strict, alias2=container.lambda; + + return "export { " + + ((stack1 = alias2(alias1(depth0, "name", {"start":{"line":15,"column":12},"end":{"line":15,"column":16}} ), depth0)) != null ? stack1 : "") + + " } from './models/" + + ((stack1 = alias2(alias1(depth0, "name", {"start":{"line":15,"column":40},"end":{"line":15,"column":44}} ), depth0)) != null ? stack1 : "") + + "';\n"; +},"11":function(container,depth0,helpers,partials,data) { + var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return ((stack1 = lookupProperty(helpers,"if").call(depth0 != null ? depth0 : (container.nullContext || {}),lookupProperty(depth0,"enums"),{"name":"if","hash":{},"fn":container.program(9, data, 0),"inverse":container.program(6, data, 0),"data":data,"loc":{"start":{"line":16,"column":0},"end":{"line":20,"column":0}}})) != null ? stack1 : ""); +},"13":function(container,depth0,helpers,partials,data) { + var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return ((stack1 = lookupProperty(helpers,"if").call(depth0 != null ? depth0 : (container.nullContext || {}),lookupProperty(depth0,"models"),{"name":"if","hash":{},"fn":container.program(14, data, 0),"inverse":container.noop,"data":data,"loc":{"start":{"line":25,"column":0},"end":{"line":30,"column":7}}})) != null ? stack1 : ""); +},"14":function(container,depth0,helpers,partials,data) { + var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return "\n" + + ((stack1 = lookupProperty(helpers,"each").call(depth0 != null ? depth0 : (container.nullContext || {}),lookupProperty(depth0,"models"),{"name":"each","hash":{},"fn":container.program(15, data, 0),"inverse":container.noop,"data":data,"loc":{"start":{"line":27,"column":0},"end":{"line":29,"column":9}}})) != null ? stack1 : ""); +},"15":function(container,depth0,helpers,partials,data) { + var stack1, alias1=container.strict, alias2=container.lambda; + + return "export { $" + + ((stack1 = alias2(alias1(depth0, "name", {"start":{"line":28,"column":13},"end":{"line":28,"column":17}} ), depth0)) != null ? stack1 : "") + + " } from './schemas/$" + + ((stack1 = alias2(alias1(depth0, "name", {"start":{"line":28,"column":43},"end":{"line":28,"column":47}} ), depth0)) != null ? stack1 : "") + + "';\n"; +},"17":function(container,depth0,helpers,partials,data) { + var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return ((stack1 = lookupProperty(helpers,"if").call(depth0 != null ? depth0 : (container.nullContext || {}),lookupProperty(depth0,"services"),{"name":"if","hash":{},"fn":container.program(18, data, 0),"inverse":container.noop,"data":data,"loc":{"start":{"line":33,"column":0},"end":{"line":38,"column":7}}})) != null ? stack1 : ""); +},"18":function(container,depth0,helpers,partials,data) { + var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return "\n" + + ((stack1 = lookupProperty(helpers,"each").call(depth0 != null ? depth0 : (container.nullContext || {}),lookupProperty(depth0,"services"),{"name":"each","hash":{},"fn":container.program(19, data, 0),"inverse":container.noop,"data":data,"loc":{"start":{"line":35,"column":0},"end":{"line":37,"column":9}}})) != null ? stack1 : ""); +},"19":function(container,depth0,helpers,partials,data) { + var stack1, alias1=container.strict, alias2=container.lambda, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return "export { " + + ((stack1 = alias2(alias1(depth0, "name", {"start":{"line":36,"column":12},"end":{"line":36,"column":16}} ), depth0)) != null ? stack1 : "") + + ((stack1 = alias2(alias1(lookupProperty(data,"root"), "postfix", {"start":{"line":36,"column":22},"end":{"line":36,"column":35}} ), depth0)) != null ? stack1 : "") + + " } from './services/" + + ((stack1 = alias2(alias1(depth0, "name", {"start":{"line":36,"column":61},"end":{"line":36,"column":65}} ), depth0)) != null ? stack1 : "") + + ((stack1 = alias2(alias1(lookupProperty(data,"root"), "postfix", {"start":{"line":36,"column":71},"end":{"line":36,"column":84}} ), depth0)) != null ? stack1 : "") + + "';\n"; +},"compiler":[8,">= 4.3.0"],"main":function(container,depth0,helpers,partials,data) { + var stack1, alias1=depth0 != null ? depth0 : (container.nullContext || {}), lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return ((stack1 = container.invokePartial(lookupProperty(partials,"header"),depth0,{"name":"header","data":data,"helpers":helpers,"partials":partials,"decorators":container.decorators})) != null ? stack1 : "") + + ((stack1 = lookupProperty(helpers,"if").call(alias1,lookupProperty(lookupProperty(data,"root"),"exportCore"),{"name":"if","hash":{},"fn":container.program(1, data, 0),"inverse":container.noop,"data":data,"loc":{"start":{"line":2,"column":0},"end":{"line":7,"column":7}}})) != null ? stack1 : "") + + ((stack1 = lookupProperty(helpers,"if").call(alias1,lookupProperty(lookupProperty(data,"root"),"exportModels"),{"name":"if","hash":{},"fn":container.program(3, data, 0),"inverse":container.noop,"data":data,"loc":{"start":{"line":8,"column":0},"end":{"line":23,"column":7}}})) != null ? stack1 : "") + + ((stack1 = lookupProperty(helpers,"if").call(alias1,lookupProperty(lookupProperty(data,"root"),"exportSchemas"),{"name":"if","hash":{},"fn":container.program(13, data, 0),"inverse":container.noop,"data":data,"loc":{"start":{"line":24,"column":0},"end":{"line":31,"column":7}}})) != null ? stack1 : "") + + ((stack1 = lookupProperty(helpers,"if").call(alias1,lookupProperty(lookupProperty(data,"root"),"exportServices"),{"name":"if","hash":{},"fn":container.program(17, data, 0),"inverse":container.noop,"data":data,"loc":{"start":{"line":32,"column":0},"end":{"line":39,"column":7}}})) != null ? stack1 : ""); +},"usePartial":true,"useData":true}; + +var partialBase = {"1":function(container,depth0,helpers,partials,data) { + var stack1, alias1=depth0 != null ? depth0 : (container.nullContext || {}), lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return ((stack1 = lookupProperty(helpers,"equals").call(alias1,lookupProperty(lookupProperty(data,"root"),"httpClient"),"fetch",{"name":"equals","hash":{},"fn":container.program(2, data, 0),"inverse":container.noop,"data":data,"loc":{"start":{"line":2,"column":0},"end":{"line":2,"column":53}}})) != null ? stack1 : "") + + ((stack1 = lookupProperty(helpers,"equals").call(alias1,lookupProperty(lookupProperty(data,"root"),"httpClient"),"xhr",{"name":"equals","hash":{},"fn":container.program(2, data, 0),"inverse":container.noop,"data":data,"loc":{"start":{"line":3,"column":0},"end":{"line":3,"column":51}}})) != null ? stack1 : "") + + ((stack1 = lookupProperty(helpers,"equals").call(alias1,lookupProperty(lookupProperty(data,"root"),"httpClient"),"axios",{"name":"equals","hash":{},"fn":container.program(2, data, 0),"inverse":container.noop,"data":data,"loc":{"start":{"line":4,"column":0},"end":{"line":4,"column":53}}})) != null ? stack1 : "") + + ((stack1 = lookupProperty(helpers,"equals").call(alias1,lookupProperty(lookupProperty(data,"root"),"httpClient"),"node",{"name":"equals","hash":{},"fn":container.program(2, data, 0),"inverse":container.noop,"data":data,"loc":{"start":{"line":5,"column":0},"end":{"line":5,"column":52}}})) != null ? stack1 : ""); +},"2":function(container,depth0,helpers,partials,data) { + return "Blob"; +},"4":function(container,depth0,helpers,partials,data) { + var stack1; + + return ((stack1 = container.lambda(container.strict(depth0, "base", {"start":{"line":7,"column":3},"end":{"line":7,"column":7}} ), depth0)) != null ? stack1 : ""); +},"compiler":[8,">= 4.3.0"],"main":function(container,depth0,helpers,partials,data) { + var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return ((stack1 = lookupProperty(helpers,"equals").call(depth0 != null ? depth0 : (container.nullContext || {}),lookupProperty(depth0,"base"),"binary",{"name":"equals","hash":{},"fn":container.program(1, data, 0),"inverse":container.program(4, data, 0),"data":data,"loc":{"start":{"line":1,"column":0},"end":{"line":8,"column":13}}})) != null ? stack1 : ""); +},"useData":true}; + +var partialExportComposition = {"1":function(container,depth0,helpers,partials,data) { + var stack1; + + return "/**\n * " + + ((stack1 = container.lambda(container.strict(depth0, "description", {"start":{"line":3,"column":6},"end":{"line":3,"column":17}} ), depth0)) != null ? stack1 : "") + + "\n */\n"; +},"3":function(container,depth0,helpers,partials,data) { + var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return ((stack1 = lookupProperty(helpers,"unless").call(depth0 != null ? depth0 : (container.nullContext || {}),lookupProperty(lookupProperty(data,"root"),"useUnionTypes"),{"name":"unless","hash":{},"fn":container.program(4, data, 0),"inverse":container.noop,"data":data,"loc":{"start":{"line":8,"column":0},"end":{"line":27,"column":11}}})) != null ? stack1 : ""); +},"4":function(container,depth0,helpers,partials,data) { + var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return "\nexport namespace " + + ((stack1 = container.lambda(container.strict(depth0, "name", {"start":{"line":10,"column":20},"end":{"line":10,"column":24}} ), depth0)) != null ? stack1 : "") + + " {\n\n" + + ((stack1 = lookupProperty(helpers,"each").call(depth0 != null ? depth0 : (container.nullContext || {}),lookupProperty(depth0,"enums"),{"name":"each","hash":{},"fn":container.program(5, data, 0),"inverse":container.noop,"data":data,"loc":{"start":{"line":12,"column":4},"end":{"line":24,"column":13}}})) != null ? stack1 : "") + + "\n}\n"; +},"5":function(container,depth0,helpers,partials,data) { + var stack1, alias1=depth0 != null ? depth0 : (container.nullContext || {}), lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return ((stack1 = lookupProperty(helpers,"if").call(alias1,lookupProperty(depth0,"description"),{"name":"if","hash":{},"fn":container.program(6, data, 0),"inverse":container.noop,"data":data,"loc":{"start":{"line":13,"column":4},"end":{"line":17,"column":11}}})) != null ? stack1 : "") + + " export enum " + + ((stack1 = container.lambda(container.strict(depth0, "name", {"start":{"line":18,"column":19},"end":{"line":18,"column":23}} ), depth0)) != null ? stack1 : "") + + " {\n" + + ((stack1 = lookupProperty(helpers,"each").call(alias1,lookupProperty(depth0,"enum"),{"name":"each","hash":{},"fn":container.program(8, data, 0),"inverse":container.noop,"data":data,"loc":{"start":{"line":19,"column":8},"end":{"line":21,"column":17}}})) != null ? stack1 : "") + + " }\n\n"; +},"6":function(container,depth0,helpers,partials,data) { + var stack1; + + return " /**\n * " + + ((stack1 = container.lambda(container.strict(depth0, "description", {"start":{"line":15,"column":10},"end":{"line":15,"column":21}} ), depth0)) != null ? stack1 : "") + + "\n */\n"; +},"8":function(container,depth0,helpers,partials,data) { + var stack1, alias1=container.strict, alias2=container.lambda; + + return " " + + ((stack1 = alias2(alias1(depth0, "name", {"start":{"line":20,"column":11},"end":{"line":20,"column":15}} ), depth0)) != null ? stack1 : "") + + " = " + + ((stack1 = alias2(alias1(depth0, "value", {"start":{"line":20,"column":24},"end":{"line":20,"column":29}} ), depth0)) != null ? stack1 : "") + + ",\n"; +},"compiler":[8,">= 4.3.0"],"main":function(container,depth0,helpers,partials,data) { + var stack1, alias1=depth0 != null ? depth0 : (container.nullContext || {}), lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return ((stack1 = lookupProperty(helpers,"if").call(alias1,lookupProperty(depth0,"description"),{"name":"if","hash":{},"fn":container.program(1, data, 0),"inverse":container.noop,"data":data,"loc":{"start":{"line":1,"column":0},"end":{"line":5,"column":7}}})) != null ? stack1 : "") + + "export type " + + ((stack1 = container.lambda(container.strict(depth0, "name", {"start":{"line":6,"column":15},"end":{"line":6,"column":19}} ), depth0)) != null ? stack1 : "") + + " = " + + ((stack1 = container.invokePartial(lookupProperty(partials,"type"),depth0,{"name":"type","hash":{"parent":lookupProperty(depth0,"name")},"data":data,"helpers":helpers,"partials":partials,"decorators":container.decorators})) != null ? stack1 : "") + + ";\n" + + ((stack1 = lookupProperty(helpers,"if").call(alias1,lookupProperty(depth0,"enums"),{"name":"if","hash":{},"fn":container.program(3, data, 0),"inverse":container.noop,"data":data,"loc":{"start":{"line":7,"column":0},"end":{"line":28,"column":7}}})) != null ? stack1 : ""); +},"usePartial":true,"useData":true}; + +var partialExportEnum = {"1":function(container,depth0,helpers,partials,data) { + var stack1; + + return "/**\n * " + + ((stack1 = container.lambda(container.strict(depth0, "description", {"start":{"line":3,"column":6},"end":{"line":3,"column":17}} ), depth0)) != null ? stack1 : "") + + "\n */\n"; +},"3":function(container,depth0,helpers,partials,data) { + var stack1, alias1=depth0 != null ? depth0 : (container.nullContext || {}), lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return ((stack1 = lookupProperty(helpers,"if").call(alias1,lookupProperty(depth0,"description"),{"name":"if","hash":{},"fn":container.program(4, data, 0),"inverse":container.noop,"data":data,"loc":{"start":{"line":8,"column":4},"end":{"line":12,"column":11}}})) != null ? stack1 : "") + + ((stack1 = lookupProperty(helpers,"containsSpaces").call(alias1,lookupProperty(depth0,"name"),{"name":"containsSpaces","hash":{},"fn":container.program(6, data, 0),"inverse":container.program(8, data, 0),"data":data,"loc":{"start":{"line":13,"column":4},"end":{"line":17,"column":23}}})) != null ? stack1 : ""); +},"4":function(container,depth0,helpers,partials,data) { + var stack1; + + return " /**\n * " + + ((stack1 = container.lambda(container.strict(depth0, "description", {"start":{"line":10,"column":10},"end":{"line":10,"column":21}} ), depth0)) != null ? stack1 : "") + + "\n */\n"; +},"6":function(container,depth0,helpers,partials,data) { + var stack1, alias1=container.strict, alias2=container.lambda; + + return " \"" + + ((stack1 = alias2(alias1(depth0, "name", {"start":{"line":14,"column":8},"end":{"line":14,"column":12}} ), depth0)) != null ? stack1 : "") + + "\" = " + + ((stack1 = alias2(alias1(depth0, "value", {"start":{"line":14,"column":22},"end":{"line":14,"column":27}} ), depth0)) != null ? stack1 : "") + + ",\n"; +},"8":function(container,depth0,helpers,partials,data) { + var stack1, alias1=container.strict, alias2=container.lambda; + + return " " + + ((stack1 = alias2(alias1(depth0, "name", {"start":{"line":16,"column":7},"end":{"line":16,"column":11}} ), depth0)) != null ? stack1 : "") + + " = " + + ((stack1 = alias2(alias1(depth0, "value", {"start":{"line":16,"column":20},"end":{"line":16,"column":25}} ), depth0)) != null ? stack1 : "") + + ",\n"; +},"compiler":[8,">= 4.3.0"],"main":function(container,depth0,helpers,partials,data) { + var stack1, alias1=depth0 != null ? depth0 : (container.nullContext || {}), lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return ((stack1 = lookupProperty(helpers,"if").call(alias1,lookupProperty(depth0,"description"),{"name":"if","hash":{},"fn":container.program(1, data, 0),"inverse":container.noop,"data":data,"loc":{"start":{"line":1,"column":0},"end":{"line":5,"column":7}}})) != null ? stack1 : "") + + "export enum " + + ((stack1 = container.lambda(container.strict(depth0, "name", {"start":{"line":6,"column":15},"end":{"line":6,"column":19}} ), depth0)) != null ? stack1 : "") + + " {\n" + + ((stack1 = lookupProperty(helpers,"each").call(alias1,lookupProperty(depth0,"enum"),{"name":"each","hash":{},"fn":container.program(3, data, 0),"inverse":container.noop,"data":data,"loc":{"start":{"line":7,"column":4},"end":{"line":18,"column":13}}})) != null ? stack1 : "") + + "}"; +},"useData":true}; + +var partialExportInterface = {"1":function(container,depth0,helpers,partials,data) { + var stack1; + + return "/**\n * " + + ((stack1 = container.lambda(container.strict(depth0, "description", {"start":{"line":3,"column":6},"end":{"line":3,"column":17}} ), depth0)) != null ? stack1 : "") + + "\n */\n"; +},"3":function(container,depth0,helpers,partials,data,blockParams,depths) { + var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return ((stack1 = lookupProperty(helpers,"if").call(depth0 != null ? depth0 : (container.nullContext || {}),lookupProperty(depth0,"description"),{"name":"if","hash":{},"fn":container.program(4, data, 0, blockParams, depths),"inverse":container.noop,"data":data,"loc":{"start":{"line":8,"column":4},"end":{"line":12,"column":11}}})) != null ? stack1 : "") + + " " + + ((stack1 = container.invokePartial(lookupProperty(partials,"isReadOnly"),depth0,{"name":"isReadOnly","data":data,"helpers":helpers,"partials":partials,"decorators":container.decorators})) != null ? stack1 : "") + + ((stack1 = container.lambda(container.strict(depth0, "name", {"start":{"line":13,"column":22},"end":{"line":13,"column":26}} ), depth0)) != null ? stack1 : "") + + ((stack1 = container.invokePartial(lookupProperty(partials,"isRequired"),depth0,{"name":"isRequired","data":data,"helpers":helpers,"partials":partials,"decorators":container.decorators})) != null ? stack1 : "") + + ": " + + ((stack1 = container.invokePartial(lookupProperty(partials,"type"),depth0,{"name":"type","hash":{"parent":lookupProperty(depths[1],"name")},"data":data,"helpers":helpers,"partials":partials,"decorators":container.decorators})) != null ? stack1 : "") + + ";\n"; +},"4":function(container,depth0,helpers,partials,data) { + var stack1; + + return " /**\n * " + + ((stack1 = container.lambda(container.strict(depth0, "description", {"start":{"line":10,"column":10},"end":{"line":10,"column":21}} ), depth0)) != null ? stack1 : "") + + "\n */\n"; +},"6":function(container,depth0,helpers,partials,data) { + var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return ((stack1 = lookupProperty(helpers,"unless").call(depth0 != null ? depth0 : (container.nullContext || {}),lookupProperty(lookupProperty(data,"root"),"useUnionTypes"),{"name":"unless","hash":{},"fn":container.program(7, data, 0),"inverse":container.noop,"data":data,"loc":{"start":{"line":17,"column":0},"end":{"line":36,"column":11}}})) != null ? stack1 : ""); +},"7":function(container,depth0,helpers,partials,data) { + var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return "\nexport namespace " + + ((stack1 = container.lambda(container.strict(depth0, "name", {"start":{"line":19,"column":20},"end":{"line":19,"column":24}} ), depth0)) != null ? stack1 : "") + + " {\n\n" + + ((stack1 = lookupProperty(helpers,"each").call(depth0 != null ? depth0 : (container.nullContext || {}),lookupProperty(depth0,"enums"),{"name":"each","hash":{},"fn":container.program(8, data, 0),"inverse":container.noop,"data":data,"loc":{"start":{"line":21,"column":4},"end":{"line":33,"column":13}}})) != null ? stack1 : "") + + "\n}\n"; +},"8":function(container,depth0,helpers,partials,data) { + var stack1, alias1=depth0 != null ? depth0 : (container.nullContext || {}), lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return ((stack1 = lookupProperty(helpers,"if").call(alias1,lookupProperty(depth0,"description"),{"name":"if","hash":{},"fn":container.program(4, data, 0),"inverse":container.noop,"data":data,"loc":{"start":{"line":22,"column":4},"end":{"line":26,"column":11}}})) != null ? stack1 : "") + + " export enum " + + ((stack1 = container.lambda(container.strict(depth0, "name", {"start":{"line":27,"column":19},"end":{"line":27,"column":23}} ), depth0)) != null ? stack1 : "") + + " {\n" + + ((stack1 = lookupProperty(helpers,"each").call(alias1,lookupProperty(depth0,"enum"),{"name":"each","hash":{},"fn":container.program(9, data, 0),"inverse":container.noop,"data":data,"loc":{"start":{"line":28,"column":8},"end":{"line":30,"column":17}}})) != null ? stack1 : "") + + " }\n\n"; +},"9":function(container,depth0,helpers,partials,data) { + var stack1, alias1=container.strict, alias2=container.lambda; + + return " " + + ((stack1 = alias2(alias1(depth0, "name", {"start":{"line":29,"column":11},"end":{"line":29,"column":15}} ), depth0)) != null ? stack1 : "") + + " = " + + ((stack1 = alias2(alias1(depth0, "value", {"start":{"line":29,"column":24},"end":{"line":29,"column":29}} ), depth0)) != null ? stack1 : "") + + ",\n"; +},"compiler":[8,">= 4.3.0"],"main":function(container,depth0,helpers,partials,data,blockParams,depths) { + var stack1, alias1=depth0 != null ? depth0 : (container.nullContext || {}), lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return ((stack1 = lookupProperty(helpers,"if").call(alias1,lookupProperty(depth0,"description"),{"name":"if","hash":{},"fn":container.program(1, data, 0, blockParams, depths),"inverse":container.noop,"data":data,"loc":{"start":{"line":1,"column":0},"end":{"line":5,"column":7}}})) != null ? stack1 : "") + + "export type " + + ((stack1 = container.lambda(container.strict(depth0, "name", {"start":{"line":6,"column":15},"end":{"line":6,"column":19}} ), depth0)) != null ? stack1 : "") + + " = {\n" + + ((stack1 = lookupProperty(helpers,"each").call(alias1,lookupProperty(depth0,"properties"),{"name":"each","hash":{},"fn":container.program(3, data, 0, blockParams, depths),"inverse":container.noop,"data":data,"loc":{"start":{"line":7,"column":4},"end":{"line":14,"column":13}}})) != null ? stack1 : "") + + "}\n" + + ((stack1 = lookupProperty(helpers,"if").call(alias1,lookupProperty(depth0,"enums"),{"name":"if","hash":{},"fn":container.program(6, data, 0, blockParams, depths),"inverse":container.noop,"data":data,"loc":{"start":{"line":16,"column":0},"end":{"line":37,"column":7}}})) != null ? stack1 : ""); +},"usePartial":true,"useData":true,"useDepths":true}; + +var partialExportType = {"1":function(container,depth0,helpers,partials,data) { + var stack1; + + return "/**\n * " + + ((stack1 = container.lambda(container.strict(depth0, "description", {"start":{"line":3,"column":6},"end":{"line":3,"column":17}} ), depth0)) != null ? stack1 : "") + + "\n */\n"; +},"compiler":[8,">= 4.3.0"],"main":function(container,depth0,helpers,partials,data) { + var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return ((stack1 = lookupProperty(helpers,"if").call(depth0 != null ? depth0 : (container.nullContext || {}),lookupProperty(depth0,"description"),{"name":"if","hash":{},"fn":container.program(1, data, 0),"inverse":container.noop,"data":data,"loc":{"start":{"line":1,"column":0},"end":{"line":5,"column":7}}})) != null ? stack1 : "") + + "export type " + + ((stack1 = container.lambda(container.strict(depth0, "name", {"start":{"line":6,"column":15},"end":{"line":6,"column":19}} ), depth0)) != null ? stack1 : "") + + " = " + + ((stack1 = container.invokePartial(lookupProperty(partials,"type"),depth0,{"name":"type","data":data,"helpers":helpers,"partials":partials,"decorators":container.decorators})) != null ? stack1 : "") + + ";"; +},"usePartial":true,"useData":true}; + +var partialHeader = {"compiler":[8,">= 4.3.0"],"main":function(container,depth0,helpers,partials,data) { + return "/* istanbul ignore file */\n/* tslint:disable */\n/* eslint-disable */"; +},"useData":true}; + +var partialIsNullable = {"1":function(container,depth0,helpers,partials,data) { + return " | null"; +},"compiler":[8,">= 4.3.0"],"main":function(container,depth0,helpers,partials,data) { + var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return ((stack1 = lookupProperty(helpers,"if").call(depth0 != null ? depth0 : (container.nullContext || {}),lookupProperty(depth0,"isNullable"),{"name":"if","hash":{},"fn":container.program(1, data, 0),"inverse":container.noop,"data":data,"loc":{"start":{"line":1,"column":0},"end":{"line":1,"column":32}}})) != null ? stack1 : ""); +},"useData":true}; + +var partialIsReadOnly = {"1":function(container,depth0,helpers,partials,data) { + return "readonly "; +},"compiler":[8,">= 4.3.0"],"main":function(container,depth0,helpers,partials,data) { + var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return ((stack1 = lookupProperty(helpers,"if").call(depth0 != null ? depth0 : (container.nullContext || {}),lookupProperty(depth0,"isReadOnly"),{"name":"if","hash":{},"fn":container.program(1, data, 0),"inverse":container.noop,"data":data,"loc":{"start":{"line":1,"column":0},"end":{"line":1,"column":34}}})) != null ? stack1 : ""); +},"useData":true}; + +var partialIsRequired = {"1":function(container,depth0,helpers,partials,data) { + var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return ((stack1 = lookupProperty(helpers,"unless").call(depth0 != null ? depth0 : (container.nullContext || {}),lookupProperty(depth0,"isRequired"),{"name":"unless","hash":{},"fn":container.program(2, data, 0),"inverse":container.program(4, data, 0),"data":data,"loc":{"start":{"line":2,"column":0},"end":{"line":2,"column":54}}})) != null ? stack1 : ""); +},"2":function(container,depth0,helpers,partials,data) { + return "?"; +},"4":function(container,depth0,helpers,partials,data) { + var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return ((stack1 = lookupProperty(helpers,"if").call(depth0 != null ? depth0 : (container.nullContext || {}),lookupProperty(depth0,"default"),{"name":"if","hash":{},"fn":container.program(2, data, 0),"inverse":container.noop,"data":data,"loc":{"start":{"line":2,"column":23},"end":{"line":2,"column":43}}})) != null ? stack1 : ""); +},"6":function(container,depth0,helpers,partials,data) { + var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return ((stack1 = lookupProperty(helpers,"unless").call(depth0 != null ? depth0 : (container.nullContext || {}),lookupProperty(depth0,"isRequired"),{"name":"unless","hash":{},"fn":container.program(7, data, 0),"inverse":container.noop,"data":data,"loc":{"start":{"line":4,"column":0},"end":{"line":4,"column":64}}})) != null ? stack1 : ""); +},"7":function(container,depth0,helpers,partials,data) { + var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return ((stack1 = lookupProperty(helpers,"unless").call(depth0 != null ? depth0 : (container.nullContext || {}),lookupProperty(depth0,"default"),{"name":"unless","hash":{},"fn":container.program(2, data, 0),"inverse":container.noop,"data":data,"loc":{"start":{"line":4,"column":22},"end":{"line":4,"column":53}}})) != null ? stack1 : ""); +},"compiler":[8,">= 4.3.0"],"main":function(container,depth0,helpers,partials,data) { + var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return ((stack1 = lookupProperty(helpers,"if").call(depth0 != null ? depth0 : (container.nullContext || {}),lookupProperty(lookupProperty(data,"root"),"useOptions"),{"name":"if","hash":{},"fn":container.program(1, data, 0),"inverse":container.program(6, data, 0),"data":data,"loc":{"start":{"line":1,"column":0},"end":{"line":5,"column":9}}})) != null ? stack1 : ""); +},"useData":true}; + +var partialParameters = {"1":function(container,depth0,helpers,partials,data) { + var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return ((stack1 = lookupProperty(helpers,"if").call(depth0 != null ? depth0 : (container.nullContext || {}),lookupProperty(lookupProperty(data,"root"),"useOptions"),{"name":"if","hash":{},"fn":container.program(2, data, 0),"inverse":container.program(9, data, 0),"data":data,"loc":{"start":{"line":2,"column":0},"end":{"line":20,"column":7}}})) != null ? stack1 : ""); +},"2":function(container,depth0,helpers,partials,data) { + var stack1, alias1=depth0 != null ? depth0 : (container.nullContext || {}), lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return "{\n" + + ((stack1 = lookupProperty(helpers,"each").call(alias1,lookupProperty(depth0,"parameters"),{"name":"each","hash":{},"fn":container.program(3, data, 0),"inverse":container.noop,"data":data,"loc":{"start":{"line":4,"column":0},"end":{"line":6,"column":9}}})) != null ? stack1 : "") + + "}: {\n" + + ((stack1 = lookupProperty(helpers,"each").call(alias1,lookupProperty(depth0,"parameters"),{"name":"each","hash":{},"fn":container.program(6, data, 0),"inverse":container.noop,"data":data,"loc":{"start":{"line":8,"column":0},"end":{"line":13,"column":9}}})) != null ? stack1 : "") + + "}"; +},"3":function(container,depth0,helpers,partials,data) { + var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return ((stack1 = container.lambda(container.strict(depth0, "name", {"start":{"line":5,"column":3},"end":{"line":5,"column":7}} ), depth0)) != null ? stack1 : "") + + ((stack1 = lookupProperty(helpers,"if").call(depth0 != null ? depth0 : (container.nullContext || {}),lookupProperty(depth0,"default"),{"name":"if","hash":{},"fn":container.program(4, data, 0),"inverse":container.noop,"data":data,"loc":{"start":{"line":5,"column":10},"end":{"line":5,"column":48}}})) != null ? stack1 : "") + + ",\n"; +},"4":function(container,depth0,helpers,partials,data) { + var stack1; + + return " = " + + ((stack1 = container.lambda(container.strict(depth0, "default", {"start":{"line":5,"column":31},"end":{"line":5,"column":38}} ), depth0)) != null ? stack1 : ""); +},"6":function(container,depth0,helpers,partials,data) { + var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return ((stack1 = lookupProperty(helpers,"if").call(depth0 != null ? depth0 : (container.nullContext || {}),lookupProperty(depth0,"description"),{"name":"if","hash":{},"fn":container.program(7, data, 0),"inverse":container.noop,"data":data,"loc":{"start":{"line":9,"column":0},"end":{"line":11,"column":7}}})) != null ? stack1 : "") + + ((stack1 = container.lambda(container.strict(depth0, "name", {"start":{"line":12,"column":3},"end":{"line":12,"column":7}} ), depth0)) != null ? stack1 : "") + + ((stack1 = container.invokePartial(lookupProperty(partials,"isRequired"),depth0,{"name":"isRequired","data":data,"helpers":helpers,"partials":partials,"decorators":container.decorators})) != null ? stack1 : "") + + ": " + + ((stack1 = container.invokePartial(lookupProperty(partials,"type"),depth0,{"name":"type","data":data,"helpers":helpers,"partials":partials,"decorators":container.decorators})) != null ? stack1 : "") + + ",\n"; +},"7":function(container,depth0,helpers,partials,data) { + var stack1; + + return "/** " + + ((stack1 = container.lambda(container.strict(depth0, "description", {"start":{"line":10,"column":7},"end":{"line":10,"column":18}} ), depth0)) != null ? stack1 : "") + + " **/\n"; +},"9":function(container,depth0,helpers,partials,data) { + var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return "\n" + + ((stack1 = lookupProperty(helpers,"each").call(depth0 != null ? depth0 : (container.nullContext || {}),lookupProperty(depth0,"parameters"),{"name":"each","hash":{},"fn":container.program(10, data, 0),"inverse":container.noop,"data":data,"loc":{"start":{"line":17,"column":0},"end":{"line":19,"column":9}}})) != null ? stack1 : ""); +},"10":function(container,depth0,helpers,partials,data) { + var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return ((stack1 = container.lambda(container.strict(depth0, "name", {"start":{"line":18,"column":3},"end":{"line":18,"column":7}} ), depth0)) != null ? stack1 : "") + + ((stack1 = container.invokePartial(lookupProperty(partials,"isRequired"),depth0,{"name":"isRequired","data":data,"helpers":helpers,"partials":partials,"decorators":container.decorators})) != null ? stack1 : "") + + ": " + + ((stack1 = container.invokePartial(lookupProperty(partials,"type"),depth0,{"name":"type","data":data,"helpers":helpers,"partials":partials,"decorators":container.decorators})) != null ? stack1 : "") + + ((stack1 = lookupProperty(helpers,"if").call(depth0 != null ? depth0 : (container.nullContext || {}),lookupProperty(depth0,"default"),{"name":"if","hash":{},"fn":container.program(4, data, 0),"inverse":container.noop,"data":data,"loc":{"start":{"line":18,"column":36},"end":{"line":18,"column":74}}})) != null ? stack1 : "") + + ",\n"; +},"compiler":[8,">= 4.3.0"],"main":function(container,depth0,helpers,partials,data) { + var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return ((stack1 = lookupProperty(helpers,"if").call(depth0 != null ? depth0 : (container.nullContext || {}),lookupProperty(depth0,"parameters"),{"name":"if","hash":{},"fn":container.program(1, data, 0),"inverse":container.noop,"data":data,"loc":{"start":{"line":1,"column":0},"end":{"line":21,"column":7}}})) != null ? stack1 : ""); +},"usePartial":true,"useData":true}; + +var partialResult = {"1":function(container,depth0,helpers,partials,data) { + var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return ((stack1 = lookupProperty(helpers,"each").call(depth0 != null ? depth0 : (container.nullContext || {}),lookupProperty(depth0,"results"),{"name":"each","hash":{},"fn":container.program(2, data, 0),"inverse":container.noop,"data":data,"loc":{"start":{"line":2,"column":0},"end":{"line":2,"column":66}}})) != null ? stack1 : ""); +},"2":function(container,depth0,helpers,partials,data) { + var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return ((stack1 = container.invokePartial(lookupProperty(partials,"type"),depth0,{"name":"type","data":data,"helpers":helpers,"partials":partials,"decorators":container.decorators})) != null ? stack1 : "") + + ((stack1 = lookupProperty(helpers,"unless").call(depth0 != null ? depth0 : (container.nullContext || {}),lookupProperty(data,"last"),{"name":"unless","hash":{},"fn":container.program(3, data, 0),"inverse":container.noop,"data":data,"loc":{"start":{"line":2,"column":26},"end":{"line":2,"column":57}}})) != null ? stack1 : ""); +},"3":function(container,depth0,helpers,partials,data) { + return " | "; +},"5":function(container,depth0,helpers,partials,data) { + return "void"; +},"compiler":[8,">= 4.3.0"],"main":function(container,depth0,helpers,partials,data) { + var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return ((stack1 = lookupProperty(helpers,"if").call(depth0 != null ? depth0 : (container.nullContext || {}),lookupProperty(depth0,"results"),{"name":"if","hash":{},"fn":container.program(1, data, 0),"inverse":container.program(5, data, 0),"data":data,"loc":{"start":{"line":1,"column":0},"end":{"line":5,"column":9}}})) != null ? stack1 : ""); +},"usePartial":true,"useData":true}; + +var partialSchema = {"1":function(container,depth0,helpers,partials,data) { + var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return ((stack1 = container.invokePartial(lookupProperty(partials,"schemaInterface"),depth0,{"name":"schemaInterface","data":data,"helpers":helpers,"partials":partials,"decorators":container.decorators})) != null ? stack1 : ""); +},"3":function(container,depth0,helpers,partials,data) { + var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return ((stack1 = lookupProperty(helpers,"equals").call(depth0 != null ? depth0 : (container.nullContext || {}),lookupProperty(depth0,"export"),"enum",{"name":"equals","hash":{},"fn":container.program(4, data, 0),"inverse":container.program(6, data, 0),"data":data,"loc":{"start":{"line":3,"column":0},"end":{"line":17,"column":0}}})) != null ? stack1 : ""); +},"4":function(container,depth0,helpers,partials,data) { + var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return ((stack1 = container.invokePartial(lookupProperty(partials,"schemaEnum"),depth0,{"name":"schemaEnum","data":data,"helpers":helpers,"partials":partials,"decorators":container.decorators})) != null ? stack1 : ""); +},"6":function(container,depth0,helpers,partials,data) { + var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return ((stack1 = lookupProperty(helpers,"equals").call(depth0 != null ? depth0 : (container.nullContext || {}),lookupProperty(depth0,"export"),"array",{"name":"equals","hash":{},"fn":container.program(7, data, 0),"inverse":container.program(9, data, 0),"data":data,"loc":{"start":{"line":5,"column":0},"end":{"line":17,"column":0}}})) != null ? stack1 : ""); +},"7":function(container,depth0,helpers,partials,data) { + var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return ((stack1 = container.invokePartial(lookupProperty(partials,"schemaArray"),depth0,{"name":"schemaArray","data":data,"helpers":helpers,"partials":partials,"decorators":container.decorators})) != null ? stack1 : ""); +},"9":function(container,depth0,helpers,partials,data) { + var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return ((stack1 = lookupProperty(helpers,"equals").call(depth0 != null ? depth0 : (container.nullContext || {}),lookupProperty(depth0,"export"),"dictionary",{"name":"equals","hash":{},"fn":container.program(10, data, 0),"inverse":container.program(12, data, 0),"data":data,"loc":{"start":{"line":7,"column":0},"end":{"line":17,"column":0}}})) != null ? stack1 : ""); +},"10":function(container,depth0,helpers,partials,data) { + var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return ((stack1 = container.invokePartial(lookupProperty(partials,"schemaDictionary"),depth0,{"name":"schemaDictionary","data":data,"helpers":helpers,"partials":partials,"decorators":container.decorators})) != null ? stack1 : ""); +},"12":function(container,depth0,helpers,partials,data) { + var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return ((stack1 = lookupProperty(helpers,"equals").call(depth0 != null ? depth0 : (container.nullContext || {}),lookupProperty(depth0,"export"),"any-of",{"name":"equals","hash":{},"fn":container.program(13, data, 0),"inverse":container.program(15, data, 0),"data":data,"loc":{"start":{"line":9,"column":0},"end":{"line":17,"column":0}}})) != null ? stack1 : ""); +},"13":function(container,depth0,helpers,partials,data) { + var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return ((stack1 = container.invokePartial(lookupProperty(partials,"schemaComposition"),depth0,{"name":"schemaComposition","data":data,"helpers":helpers,"partials":partials,"decorators":container.decorators})) != null ? stack1 : ""); +},"15":function(container,depth0,helpers,partials,data) { + var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return ((stack1 = lookupProperty(helpers,"equals").call(depth0 != null ? depth0 : (container.nullContext || {}),lookupProperty(depth0,"export"),"all-of",{"name":"equals","hash":{},"fn":container.program(13, data, 0),"inverse":container.program(16, data, 0),"data":data,"loc":{"start":{"line":11,"column":0},"end":{"line":17,"column":0}}})) != null ? stack1 : ""); +},"16":function(container,depth0,helpers,partials,data) { + var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return ((stack1 = lookupProperty(helpers,"equals").call(depth0 != null ? depth0 : (container.nullContext || {}),lookupProperty(depth0,"export"),"one-of",{"name":"equals","hash":{},"fn":container.program(13, data, 0),"inverse":container.program(17, data, 0),"data":data,"loc":{"start":{"line":13,"column":0},"end":{"line":17,"column":0}}})) != null ? stack1 : ""); +},"17":function(container,depth0,helpers,partials,data) { + var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return ((stack1 = container.invokePartial(lookupProperty(partials,"schemaGeneric"),depth0,{"name":"schemaGeneric","data":data,"helpers":helpers,"partials":partials,"decorators":container.decorators})) != null ? stack1 : ""); +},"compiler":[8,">= 4.3.0"],"main":function(container,depth0,helpers,partials,data) { + var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return ((stack1 = lookupProperty(helpers,"equals").call(depth0 != null ? depth0 : (container.nullContext || {}),lookupProperty(depth0,"export"),"interface",{"name":"equals","hash":{},"fn":container.program(1, data, 0),"inverse":container.program(3, data, 0),"data":data,"loc":{"start":{"line":1,"column":0},"end":{"line":17,"column":11}}})) != null ? stack1 : ""); +},"usePartial":true,"useData":true}; + +var partialSchemaArray = {"1":function(container,depth0,helpers,partials,data) { + var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return " contains: " + + ((stack1 = container.invokePartial(lookupProperty(partials,"schema"),lookupProperty(depth0,"link"),{"name":"schema","data":data,"helpers":helpers,"partials":partials,"decorators":container.decorators})) != null ? stack1 : "") + + ",\n"; +},"3":function(container,depth0,helpers,partials,data) { + var stack1; + + return " contains: {\n type: '" + + ((stack1 = container.lambda(container.strict(depth0, "base", {"start":{"line":7,"column":18},"end":{"line":7,"column":22}} ), depth0)) != null ? stack1 : "") + + "',\n },\n"; +},"5":function(container,depth0,helpers,partials,data) { + var stack1; + + return " isReadOnly: " + + ((stack1 = container.lambda(container.strict(depth0, "isReadOnly", {"start":{"line":11,"column":19},"end":{"line":11,"column":29}} ), depth0)) != null ? stack1 : "") + + ",\n"; +},"7":function(container,depth0,helpers,partials,data) { + var stack1; + + return " isRequired: " + + ((stack1 = container.lambda(container.strict(depth0, "isRequired", {"start":{"line":14,"column":19},"end":{"line":14,"column":29}} ), depth0)) != null ? stack1 : "") + + ",\n"; +},"9":function(container,depth0,helpers,partials,data) { + var stack1; + + return " isNullable: " + + ((stack1 = container.lambda(container.strict(depth0, "isNullable", {"start":{"line":17,"column":19},"end":{"line":17,"column":29}} ), depth0)) != null ? stack1 : "") + + ",\n"; +},"compiler":[8,">= 4.3.0"],"main":function(container,depth0,helpers,partials,data) { + var stack1, alias1=depth0 != null ? depth0 : (container.nullContext || {}), lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return "{\n type: 'array',\n" + + ((stack1 = lookupProperty(helpers,"if").call(alias1,lookupProperty(depth0,"link"),{"name":"if","hash":{},"fn":container.program(1, data, 0),"inverse":container.program(3, data, 0),"data":data,"loc":{"start":{"line":3,"column":0},"end":{"line":9,"column":7}}})) != null ? stack1 : "") + + ((stack1 = lookupProperty(helpers,"if").call(alias1,lookupProperty(depth0,"isReadOnly"),{"name":"if","hash":{},"fn":container.program(5, data, 0),"inverse":container.noop,"data":data,"loc":{"start":{"line":10,"column":0},"end":{"line":12,"column":7}}})) != null ? stack1 : "") + + ((stack1 = lookupProperty(helpers,"if").call(alias1,lookupProperty(depth0,"isRequired"),{"name":"if","hash":{},"fn":container.program(7, data, 0),"inverse":container.noop,"data":data,"loc":{"start":{"line":13,"column":0},"end":{"line":15,"column":7}}})) != null ? stack1 : "") + + ((stack1 = lookupProperty(helpers,"if").call(alias1,lookupProperty(depth0,"isNullable"),{"name":"if","hash":{},"fn":container.program(9, data, 0),"inverse":container.noop,"data":data,"loc":{"start":{"line":16,"column":0},"end":{"line":18,"column":7}}})) != null ? stack1 : "") + + "}"; +},"usePartial":true,"useData":true}; + +var partialSchemaComposition = {"1":function(container,depth0,helpers,partials,data) { + var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return ((stack1 = container.invokePartial(lookupProperty(partials,"schema"),depth0,{"name":"schema","data":data,"helpers":helpers,"partials":partials,"decorators":container.decorators})) != null ? stack1 : "") + + ((stack1 = lookupProperty(helpers,"unless").call(depth0 != null ? depth0 : (container.nullContext || {}),lookupProperty(data,"last"),{"name":"unless","hash":{},"fn":container.program(2, data, 0),"inverse":container.noop,"data":data,"loc":{"start":{"line":3,"column":46},"end":{"line":3,"column":76}}})) != null ? stack1 : ""); +},"2":function(container,depth0,helpers,partials,data) { + return ", "; +},"4":function(container,depth0,helpers,partials,data) { + var stack1; + + return " isReadOnly: " + + ((stack1 = container.lambda(container.strict(depth0, "isReadOnly", {"start":{"line":5,"column":19},"end":{"line":5,"column":29}} ), depth0)) != null ? stack1 : "") + + ",\n"; +},"6":function(container,depth0,helpers,partials,data) { + var stack1; + + return " isRequired: " + + ((stack1 = container.lambda(container.strict(depth0, "isRequired", {"start":{"line":8,"column":19},"end":{"line":8,"column":29}} ), depth0)) != null ? stack1 : "") + + ",\n"; +},"8":function(container,depth0,helpers,partials,data) { + var stack1; + + return " isNullable: " + + ((stack1 = container.lambda(container.strict(depth0, "isNullable", {"start":{"line":11,"column":19},"end":{"line":11,"column":29}} ), depth0)) != null ? stack1 : "") + + ",\n"; +},"compiler":[8,">= 4.3.0"],"main":function(container,depth0,helpers,partials,data) { + var stack1, alias1=depth0 != null ? depth0 : (container.nullContext || {}), lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return "{\n type: '" + + ((stack1 = container.lambda(container.strict(depth0, "export", {"start":{"line":2,"column":13},"end":{"line":2,"column":19}} ), depth0)) != null ? stack1 : "") + + "',\n contains: [" + + ((stack1 = lookupProperty(helpers,"each").call(alias1,lookupProperty(depth0,"properties"),{"name":"each","hash":{},"fn":container.program(1, data, 0),"inverse":container.noop,"data":data,"loc":{"start":{"line":3,"column":15},"end":{"line":3,"column":85}}})) != null ? stack1 : "") + + "],\n" + + ((stack1 = lookupProperty(helpers,"if").call(alias1,lookupProperty(depth0,"isReadOnly"),{"name":"if","hash":{},"fn":container.program(4, data, 0),"inverse":container.noop,"data":data,"loc":{"start":{"line":4,"column":0},"end":{"line":6,"column":7}}})) != null ? stack1 : "") + + ((stack1 = lookupProperty(helpers,"if").call(alias1,lookupProperty(depth0,"isRequired"),{"name":"if","hash":{},"fn":container.program(6, data, 0),"inverse":container.noop,"data":data,"loc":{"start":{"line":7,"column":0},"end":{"line":9,"column":7}}})) != null ? stack1 : "") + + ((stack1 = lookupProperty(helpers,"if").call(alias1,lookupProperty(depth0,"isNullable"),{"name":"if","hash":{},"fn":container.program(8, data, 0),"inverse":container.noop,"data":data,"loc":{"start":{"line":10,"column":0},"end":{"line":12,"column":7}}})) != null ? stack1 : "") + + "}"; +},"usePartial":true,"useData":true}; + +var partialSchemaDictionary = {"1":function(container,depth0,helpers,partials,data) { + var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return " contains: " + + ((stack1 = container.invokePartial(lookupProperty(partials,"schema"),lookupProperty(depth0,"link"),{"name":"schema","data":data,"helpers":helpers,"partials":partials,"decorators":container.decorators})) != null ? stack1 : "") + + ",\n"; +},"3":function(container,depth0,helpers,partials,data) { + var stack1; + + return " contains: {\n type: '" + + ((stack1 = container.lambda(container.strict(depth0, "base", {"start":{"line":7,"column":18},"end":{"line":7,"column":22}} ), depth0)) != null ? stack1 : "") + + "',\n },\n"; +},"5":function(container,depth0,helpers,partials,data) { + var stack1; + + return " isReadOnly: " + + ((stack1 = container.lambda(container.strict(depth0, "isReadOnly", {"start":{"line":11,"column":19},"end":{"line":11,"column":29}} ), depth0)) != null ? stack1 : "") + + ",\n"; +},"7":function(container,depth0,helpers,partials,data) { + var stack1; + + return " isRequired: " + + ((stack1 = container.lambda(container.strict(depth0, "isRequired", {"start":{"line":14,"column":19},"end":{"line":14,"column":29}} ), depth0)) != null ? stack1 : "") + + ",\n"; +},"9":function(container,depth0,helpers,partials,data) { + var stack1; + + return " isNullable: " + + ((stack1 = container.lambda(container.strict(depth0, "isNullable", {"start":{"line":17,"column":19},"end":{"line":17,"column":29}} ), depth0)) != null ? stack1 : "") + + ",\n"; +},"compiler":[8,">= 4.3.0"],"main":function(container,depth0,helpers,partials,data) { + var stack1, alias1=depth0 != null ? depth0 : (container.nullContext || {}), lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return "{\n type: 'dictionary',\n" + + ((stack1 = lookupProperty(helpers,"if").call(alias1,lookupProperty(depth0,"link"),{"name":"if","hash":{},"fn":container.program(1, data, 0),"inverse":container.program(3, data, 0),"data":data,"loc":{"start":{"line":3,"column":0},"end":{"line":9,"column":7}}})) != null ? stack1 : "") + + ((stack1 = lookupProperty(helpers,"if").call(alias1,lookupProperty(depth0,"isReadOnly"),{"name":"if","hash":{},"fn":container.program(5, data, 0),"inverse":container.noop,"data":data,"loc":{"start":{"line":10,"column":0},"end":{"line":12,"column":7}}})) != null ? stack1 : "") + + ((stack1 = lookupProperty(helpers,"if").call(alias1,lookupProperty(depth0,"isRequired"),{"name":"if","hash":{},"fn":container.program(7, data, 0),"inverse":container.noop,"data":data,"loc":{"start":{"line":13,"column":0},"end":{"line":15,"column":7}}})) != null ? stack1 : "") + + ((stack1 = lookupProperty(helpers,"if").call(alias1,lookupProperty(depth0,"isNullable"),{"name":"if","hash":{},"fn":container.program(9, data, 0),"inverse":container.noop,"data":data,"loc":{"start":{"line":16,"column":0},"end":{"line":18,"column":7}}})) != null ? stack1 : "") + + "}"; +},"usePartial":true,"useData":true}; + +var partialSchemaEnum = {"1":function(container,depth0,helpers,partials,data) { + var stack1; + + return " isReadOnly: " + + ((stack1 = container.lambda(container.strict(depth0, "isReadOnly", {"start":{"line":4,"column":19},"end":{"line":4,"column":29}} ), depth0)) != null ? stack1 : "") + + ",\n"; +},"3":function(container,depth0,helpers,partials,data) { + var stack1; + + return " isRequired: " + + ((stack1 = container.lambda(container.strict(depth0, "isRequired", {"start":{"line":7,"column":19},"end":{"line":7,"column":29}} ), depth0)) != null ? stack1 : "") + + ",\n"; +},"5":function(container,depth0,helpers,partials,data) { + var stack1; + + return " isNullable: " + + ((stack1 = container.lambda(container.strict(depth0, "isNullable", {"start":{"line":10,"column":19},"end":{"line":10,"column":29}} ), depth0)) != null ? stack1 : "") + + ",\n"; +},"compiler":[8,">= 4.3.0"],"main":function(container,depth0,helpers,partials,data) { + var stack1, alias1=depth0 != null ? depth0 : (container.nullContext || {}), lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return "{\n type: 'Enum',\n" + + ((stack1 = lookupProperty(helpers,"if").call(alias1,lookupProperty(depth0,"isReadOnly"),{"name":"if","hash":{},"fn":container.program(1, data, 0),"inverse":container.noop,"data":data,"loc":{"start":{"line":3,"column":0},"end":{"line":5,"column":7}}})) != null ? stack1 : "") + + ((stack1 = lookupProperty(helpers,"if").call(alias1,lookupProperty(depth0,"isRequired"),{"name":"if","hash":{},"fn":container.program(3, data, 0),"inverse":container.noop,"data":data,"loc":{"start":{"line":6,"column":0},"end":{"line":8,"column":7}}})) != null ? stack1 : "") + + ((stack1 = lookupProperty(helpers,"if").call(alias1,lookupProperty(depth0,"isNullable"),{"name":"if","hash":{},"fn":container.program(5, data, 0),"inverse":container.noop,"data":data,"loc":{"start":{"line":9,"column":0},"end":{"line":11,"column":7}}})) != null ? stack1 : "") + + "}"; +},"useData":true}; + +var partialSchemaGeneric = {"1":function(container,depth0,helpers,partials,data) { + var stack1; + + return " type: '" + + ((stack1 = container.lambda(container.strict(depth0, "base", {"start":{"line":3,"column":14},"end":{"line":3,"column":18}} ), depth0)) != null ? stack1 : "") + + "',\n"; +},"3":function(container,depth0,helpers,partials,data) { + var stack1; + + return " isReadOnly: " + + ((stack1 = container.lambda(container.strict(depth0, "isReadOnly", {"start":{"line":6,"column":19},"end":{"line":6,"column":29}} ), depth0)) != null ? stack1 : "") + + ",\n"; +},"5":function(container,depth0,helpers,partials,data) { + var stack1; + + return " isRequired: " + + ((stack1 = container.lambda(container.strict(depth0, "isRequired", {"start":{"line":9,"column":19},"end":{"line":9,"column":29}} ), depth0)) != null ? stack1 : "") + + ",\n"; +},"7":function(container,depth0,helpers,partials,data) { + var stack1; + + return " isNullable: " + + ((stack1 = container.lambda(container.strict(depth0, "isNullable", {"start":{"line":12,"column":19},"end":{"line":12,"column":29}} ), depth0)) != null ? stack1 : "") + + ",\n"; +},"9":function(container,depth0,helpers,partials,data) { + var stack1; + + return " format: '" + + ((stack1 = container.lambda(container.strict(depth0, "format", {"start":{"line":15,"column":16},"end":{"line":15,"column":22}} ), depth0)) != null ? stack1 : "") + + "',\n"; +},"11":function(container,depth0,helpers,partials,data) { + var stack1; + + return " maximum: " + + ((stack1 = container.lambda(container.strict(depth0, "maximum", {"start":{"line":18,"column":16},"end":{"line":18,"column":23}} ), depth0)) != null ? stack1 : "") + + ",\n"; +},"13":function(container,depth0,helpers,partials,data) { + var stack1; + + return " exclusiveMaximum: " + + ((stack1 = container.lambda(container.strict(depth0, "exclusiveMaximum", {"start":{"line":21,"column":25},"end":{"line":21,"column":41}} ), depth0)) != null ? stack1 : "") + + ",\n"; +},"15":function(container,depth0,helpers,partials,data) { + var stack1; + + return " minimum: " + + ((stack1 = container.lambda(container.strict(depth0, "minimum", {"start":{"line":24,"column":16},"end":{"line":24,"column":23}} ), depth0)) != null ? stack1 : "") + + ",\n"; +},"17":function(container,depth0,helpers,partials,data) { + var stack1; + + return " exclusiveMinimum: " + + ((stack1 = container.lambda(container.strict(depth0, "exclusiveMinimum", {"start":{"line":27,"column":25},"end":{"line":27,"column":41}} ), depth0)) != null ? stack1 : "") + + ",\n"; +},"19":function(container,depth0,helpers,partials,data) { + var stack1; + + return " multipleOf: " + + ((stack1 = container.lambda(container.strict(depth0, "multipleOf", {"start":{"line":30,"column":19},"end":{"line":30,"column":29}} ), depth0)) != null ? stack1 : "") + + ",\n"; +},"21":function(container,depth0,helpers,partials,data) { + var stack1; + + return " maxLength: " + + ((stack1 = container.lambda(container.strict(depth0, "maxLength", {"start":{"line":33,"column":18},"end":{"line":33,"column":27}} ), depth0)) != null ? stack1 : "") + + ",\n"; +},"23":function(container,depth0,helpers,partials,data) { + var stack1; + + return " minLength: " + + ((stack1 = container.lambda(container.strict(depth0, "minLength", {"start":{"line":36,"column":18},"end":{"line":36,"column":27}} ), depth0)) != null ? stack1 : "") + + ",\n"; +},"25":function(container,depth0,helpers,partials,data) { + var stack1; + + return " pattern: '" + + ((stack1 = container.lambda(container.strict(depth0, "pattern", {"start":{"line":39,"column":17},"end":{"line":39,"column":24}} ), depth0)) != null ? stack1 : "") + + "',\n"; +},"27":function(container,depth0,helpers,partials,data) { + var stack1; + + return " maxItems: " + + ((stack1 = container.lambda(container.strict(depth0, "maxItems", {"start":{"line":42,"column":17},"end":{"line":42,"column":25}} ), depth0)) != null ? stack1 : "") + + ",\n"; +},"29":function(container,depth0,helpers,partials,data) { + var stack1; + + return " minItems: " + + ((stack1 = container.lambda(container.strict(depth0, "minItems", {"start":{"line":45,"column":17},"end":{"line":45,"column":25}} ), depth0)) != null ? stack1 : "") + + ",\n"; +},"31":function(container,depth0,helpers,partials,data) { + var stack1; + + return " uniqueItems: " + + ((stack1 = container.lambda(container.strict(depth0, "uniqueItems", {"start":{"line":48,"column":20},"end":{"line":48,"column":31}} ), depth0)) != null ? stack1 : "") + + ",\n"; +},"33":function(container,depth0,helpers,partials,data) { + var stack1; + + return " maxProperties: " + + ((stack1 = container.lambda(container.strict(depth0, "maxProperties", {"start":{"line":51,"column":22},"end":{"line":51,"column":35}} ), depth0)) != null ? stack1 : "") + + ",\n"; +},"35":function(container,depth0,helpers,partials,data) { + var stack1; + + return " minProperties: " + + ((stack1 = container.lambda(container.strict(depth0, "minProperties", {"start":{"line":54,"column":22},"end":{"line":54,"column":35}} ), depth0)) != null ? stack1 : "") + + ",\n"; +},"compiler":[8,">= 4.3.0"],"main":function(container,depth0,helpers,partials,data) { + var stack1, alias1=depth0 != null ? depth0 : (container.nullContext || {}), lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return "{\n" + + ((stack1 = lookupProperty(helpers,"if").call(alias1,lookupProperty(depth0,"type"),{"name":"if","hash":{},"fn":container.program(1, data, 0),"inverse":container.noop,"data":data,"loc":{"start":{"line":2,"column":0},"end":{"line":4,"column":7}}})) != null ? stack1 : "") + + ((stack1 = lookupProperty(helpers,"if").call(alias1,lookupProperty(depth0,"isReadOnly"),{"name":"if","hash":{},"fn":container.program(3, data, 0),"inverse":container.noop,"data":data,"loc":{"start":{"line":5,"column":0},"end":{"line":7,"column":7}}})) != null ? stack1 : "") + + ((stack1 = lookupProperty(helpers,"if").call(alias1,lookupProperty(depth0,"isRequired"),{"name":"if","hash":{},"fn":container.program(5, data, 0),"inverse":container.noop,"data":data,"loc":{"start":{"line":8,"column":0},"end":{"line":10,"column":7}}})) != null ? stack1 : "") + + ((stack1 = lookupProperty(helpers,"if").call(alias1,lookupProperty(depth0,"isNullable"),{"name":"if","hash":{},"fn":container.program(7, data, 0),"inverse":container.noop,"data":data,"loc":{"start":{"line":11,"column":0},"end":{"line":13,"column":7}}})) != null ? stack1 : "") + + ((stack1 = lookupProperty(helpers,"if").call(alias1,lookupProperty(depth0,"format"),{"name":"if","hash":{},"fn":container.program(9, data, 0),"inverse":container.noop,"data":data,"loc":{"start":{"line":14,"column":0},"end":{"line":16,"column":7}}})) != null ? stack1 : "") + + ((stack1 = lookupProperty(helpers,"if").call(alias1,lookupProperty(depth0,"maximum"),{"name":"if","hash":{},"fn":container.program(11, data, 0),"inverse":container.noop,"data":data,"loc":{"start":{"line":17,"column":0},"end":{"line":19,"column":7}}})) != null ? stack1 : "") + + ((stack1 = lookupProperty(helpers,"if").call(alias1,lookupProperty(depth0,"exclusiveMaximum"),{"name":"if","hash":{},"fn":container.program(13, data, 0),"inverse":container.noop,"data":data,"loc":{"start":{"line":20,"column":0},"end":{"line":22,"column":7}}})) != null ? stack1 : "") + + ((stack1 = lookupProperty(helpers,"if").call(alias1,lookupProperty(depth0,"minimum"),{"name":"if","hash":{},"fn":container.program(15, data, 0),"inverse":container.noop,"data":data,"loc":{"start":{"line":23,"column":0},"end":{"line":25,"column":7}}})) != null ? stack1 : "") + + ((stack1 = lookupProperty(helpers,"if").call(alias1,lookupProperty(depth0,"exclusiveMinimum"),{"name":"if","hash":{},"fn":container.program(17, data, 0),"inverse":container.noop,"data":data,"loc":{"start":{"line":26,"column":0},"end":{"line":28,"column":7}}})) != null ? stack1 : "") + + ((stack1 = lookupProperty(helpers,"if").call(alias1,lookupProperty(depth0,"multipleOf"),{"name":"if","hash":{},"fn":container.program(19, data, 0),"inverse":container.noop,"data":data,"loc":{"start":{"line":29,"column":0},"end":{"line":31,"column":7}}})) != null ? stack1 : "") + + ((stack1 = lookupProperty(helpers,"if").call(alias1,lookupProperty(depth0,"maxLength"),{"name":"if","hash":{},"fn":container.program(21, data, 0),"inverse":container.noop,"data":data,"loc":{"start":{"line":32,"column":0},"end":{"line":34,"column":7}}})) != null ? stack1 : "") + + ((stack1 = lookupProperty(helpers,"if").call(alias1,lookupProperty(depth0,"minLength"),{"name":"if","hash":{},"fn":container.program(23, data, 0),"inverse":container.noop,"data":data,"loc":{"start":{"line":35,"column":0},"end":{"line":37,"column":7}}})) != null ? stack1 : "") + + ((stack1 = lookupProperty(helpers,"if").call(alias1,lookupProperty(depth0,"pattern"),{"name":"if","hash":{},"fn":container.program(25, data, 0),"inverse":container.noop,"data":data,"loc":{"start":{"line":38,"column":0},"end":{"line":40,"column":7}}})) != null ? stack1 : "") + + ((stack1 = lookupProperty(helpers,"if").call(alias1,lookupProperty(depth0,"maxItems"),{"name":"if","hash":{},"fn":container.program(27, data, 0),"inverse":container.noop,"data":data,"loc":{"start":{"line":41,"column":0},"end":{"line":43,"column":7}}})) != null ? stack1 : "") + + ((stack1 = lookupProperty(helpers,"if").call(alias1,lookupProperty(depth0,"minItems"),{"name":"if","hash":{},"fn":container.program(29, data, 0),"inverse":container.noop,"data":data,"loc":{"start":{"line":44,"column":0},"end":{"line":46,"column":7}}})) != null ? stack1 : "") + + ((stack1 = lookupProperty(helpers,"if").call(alias1,lookupProperty(depth0,"uniqueItems"),{"name":"if","hash":{},"fn":container.program(31, data, 0),"inverse":container.noop,"data":data,"loc":{"start":{"line":47,"column":0},"end":{"line":49,"column":7}}})) != null ? stack1 : "") + + ((stack1 = lookupProperty(helpers,"if").call(alias1,lookupProperty(depth0,"maxProperties"),{"name":"if","hash":{},"fn":container.program(33, data, 0),"inverse":container.noop,"data":data,"loc":{"start":{"line":50,"column":0},"end":{"line":52,"column":7}}})) != null ? stack1 : "") + + ((stack1 = lookupProperty(helpers,"if").call(alias1,lookupProperty(depth0,"minProperties"),{"name":"if","hash":{},"fn":container.program(35, data, 0),"inverse":container.noop,"data":data,"loc":{"start":{"line":53,"column":0},"end":{"line":55,"column":7}}})) != null ? stack1 : "") + + "}"; +},"useData":true}; + +var partialSchemaInterface = {"1":function(container,depth0,helpers,partials,data) { + var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return ((stack1 = lookupProperty(helpers,"each").call(depth0 != null ? depth0 : (container.nullContext || {}),lookupProperty(depth0,"properties"),{"name":"each","hash":{},"fn":container.program(2, data, 0),"inverse":container.noop,"data":data,"loc":{"start":{"line":4,"column":4},"end":{"line":6,"column":13}}})) != null ? stack1 : ""); +},"2":function(container,depth0,helpers,partials,data) { + var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return " " + + ((stack1 = container.lambda(container.strict(depth0, "name", {"start":{"line":5,"column":11},"end":{"line":5,"column":15}} ), depth0)) != null ? stack1 : "") + + ": " + + ((stack1 = container.invokePartial(lookupProperty(partials,"schema"),depth0,{"name":"schema","data":data,"helpers":helpers,"partials":partials,"decorators":container.decorators})) != null ? stack1 : "") + + ",\n"; +},"4":function(container,depth0,helpers,partials,data) { + var stack1; + + return " isReadOnly: " + + ((stack1 = container.lambda(container.strict(depth0, "isReadOnly", {"start":{"line":10,"column":19},"end":{"line":10,"column":29}} ), depth0)) != null ? stack1 : "") + + ",\n"; +},"6":function(container,depth0,helpers,partials,data) { + var stack1; + + return " isRequired: " + + ((stack1 = container.lambda(container.strict(depth0, "isRequired", {"start":{"line":13,"column":19},"end":{"line":13,"column":29}} ), depth0)) != null ? stack1 : "") + + ",\n"; +},"8":function(container,depth0,helpers,partials,data) { + var stack1; + + return " isNullable: " + + ((stack1 = container.lambda(container.strict(depth0, "isNullable", {"start":{"line":16,"column":19},"end":{"line":16,"column":29}} ), depth0)) != null ? stack1 : "") + + ",\n"; +},"compiler":[8,">= 4.3.0"],"main":function(container,depth0,helpers,partials,data) { + var stack1, alias1=depth0 != null ? depth0 : (container.nullContext || {}), lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return "{\n properties: {\n" + + ((stack1 = lookupProperty(helpers,"if").call(alias1,lookupProperty(depth0,"properties"),{"name":"if","hash":{},"fn":container.program(1, data, 0),"inverse":container.noop,"data":data,"loc":{"start":{"line":3,"column":0},"end":{"line":7,"column":7}}})) != null ? stack1 : "") + + " },\n" + + ((stack1 = lookupProperty(helpers,"if").call(alias1,lookupProperty(depth0,"isReadOnly"),{"name":"if","hash":{},"fn":container.program(4, data, 0),"inverse":container.noop,"data":data,"loc":{"start":{"line":9,"column":0},"end":{"line":11,"column":7}}})) != null ? stack1 : "") + + ((stack1 = lookupProperty(helpers,"if").call(alias1,lookupProperty(depth0,"isRequired"),{"name":"if","hash":{},"fn":container.program(6, data, 0),"inverse":container.noop,"data":data,"loc":{"start":{"line":12,"column":0},"end":{"line":14,"column":7}}})) != null ? stack1 : "") + + ((stack1 = lookupProperty(helpers,"if").call(alias1,lookupProperty(depth0,"isNullable"),{"name":"if","hash":{},"fn":container.program(8, data, 0),"inverse":container.noop,"data":data,"loc":{"start":{"line":15,"column":0},"end":{"line":17,"column":7}}})) != null ? stack1 : "") + + "}"; +},"usePartial":true,"useData":true}; + +var partialType = {"1":function(container,depth0,helpers,partials,data) { + var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return ((stack1 = container.invokePartial(lookupProperty(partials,"typeInterface"),depth0,{"name":"typeInterface","data":data,"helpers":helpers,"partials":partials,"decorators":container.decorators})) != null ? stack1 : ""); +},"3":function(container,depth0,helpers,partials,data) { + var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return ((stack1 = lookupProperty(helpers,"equals").call(depth0 != null ? depth0 : (container.nullContext || {}),lookupProperty(depth0,"export"),"reference",{"name":"equals","hash":{},"fn":container.program(4, data, 0),"inverse":container.program(6, data, 0),"data":data,"loc":{"start":{"line":3,"column":0},"end":{"line":19,"column":0}}})) != null ? stack1 : ""); +},"4":function(container,depth0,helpers,partials,data) { + var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return ((stack1 = container.invokePartial(lookupProperty(partials,"typeReference"),depth0,{"name":"typeReference","data":data,"helpers":helpers,"partials":partials,"decorators":container.decorators})) != null ? stack1 : ""); +},"6":function(container,depth0,helpers,partials,data) { + var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return ((stack1 = lookupProperty(helpers,"equals").call(depth0 != null ? depth0 : (container.nullContext || {}),lookupProperty(depth0,"export"),"enum",{"name":"equals","hash":{},"fn":container.program(7, data, 0),"inverse":container.program(9, data, 0),"data":data,"loc":{"start":{"line":5,"column":0},"end":{"line":19,"column":0}}})) != null ? stack1 : ""); +},"7":function(container,depth0,helpers,partials,data) { + var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return ((stack1 = container.invokePartial(lookupProperty(partials,"typeEnum"),depth0,{"name":"typeEnum","data":data,"helpers":helpers,"partials":partials,"decorators":container.decorators})) != null ? stack1 : ""); +},"9":function(container,depth0,helpers,partials,data) { + var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return ((stack1 = lookupProperty(helpers,"equals").call(depth0 != null ? depth0 : (container.nullContext || {}),lookupProperty(depth0,"export"),"array",{"name":"equals","hash":{},"fn":container.program(10, data, 0),"inverse":container.program(12, data, 0),"data":data,"loc":{"start":{"line":7,"column":0},"end":{"line":19,"column":0}}})) != null ? stack1 : ""); +},"10":function(container,depth0,helpers,partials,data) { + var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return ((stack1 = container.invokePartial(lookupProperty(partials,"typeArray"),depth0,{"name":"typeArray","data":data,"helpers":helpers,"partials":partials,"decorators":container.decorators})) != null ? stack1 : ""); +},"12":function(container,depth0,helpers,partials,data) { + var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return ((stack1 = lookupProperty(helpers,"equals").call(depth0 != null ? depth0 : (container.nullContext || {}),lookupProperty(depth0,"export"),"dictionary",{"name":"equals","hash":{},"fn":container.program(13, data, 0),"inverse":container.program(15, data, 0),"data":data,"loc":{"start":{"line":9,"column":0},"end":{"line":19,"column":0}}})) != null ? stack1 : ""); +},"13":function(container,depth0,helpers,partials,data) { + var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return ((stack1 = container.invokePartial(lookupProperty(partials,"typeDictionary"),depth0,{"name":"typeDictionary","data":data,"helpers":helpers,"partials":partials,"decorators":container.decorators})) != null ? stack1 : ""); +},"15":function(container,depth0,helpers,partials,data) { + var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return ((stack1 = lookupProperty(helpers,"equals").call(depth0 != null ? depth0 : (container.nullContext || {}),lookupProperty(depth0,"export"),"one-of",{"name":"equals","hash":{},"fn":container.program(16, data, 0),"inverse":container.program(18, data, 0),"data":data,"loc":{"start":{"line":11,"column":0},"end":{"line":19,"column":0}}})) != null ? stack1 : ""); +},"16":function(container,depth0,helpers,partials,data) { + var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return ((stack1 = container.invokePartial(lookupProperty(partials,"typeUnion"),depth0,{"name":"typeUnion","data":data,"helpers":helpers,"partials":partials,"decorators":container.decorators})) != null ? stack1 : ""); +},"18":function(container,depth0,helpers,partials,data) { + var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return ((stack1 = lookupProperty(helpers,"equals").call(depth0 != null ? depth0 : (container.nullContext || {}),lookupProperty(depth0,"export"),"any-of",{"name":"equals","hash":{},"fn":container.program(16, data, 0),"inverse":container.program(19, data, 0),"data":data,"loc":{"start":{"line":13,"column":0},"end":{"line":19,"column":0}}})) != null ? stack1 : ""); +},"19":function(container,depth0,helpers,partials,data) { + var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return ((stack1 = lookupProperty(helpers,"equals").call(depth0 != null ? depth0 : (container.nullContext || {}),lookupProperty(depth0,"export"),"all-of",{"name":"equals","hash":{},"fn":container.program(20, data, 0),"inverse":container.program(22, data, 0),"data":data,"loc":{"start":{"line":15,"column":0},"end":{"line":19,"column":0}}})) != null ? stack1 : ""); +},"20":function(container,depth0,helpers,partials,data) { + var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return ((stack1 = container.invokePartial(lookupProperty(partials,"typeIntersection"),depth0,{"name":"typeIntersection","data":data,"helpers":helpers,"partials":partials,"decorators":container.decorators})) != null ? stack1 : ""); +},"22":function(container,depth0,helpers,partials,data) { + var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return ((stack1 = container.invokePartial(lookupProperty(partials,"typeGeneric"),depth0,{"name":"typeGeneric","data":data,"helpers":helpers,"partials":partials,"decorators":container.decorators})) != null ? stack1 : ""); +},"compiler":[8,">= 4.3.0"],"main":function(container,depth0,helpers,partials,data) { + var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return ((stack1 = lookupProperty(helpers,"equals").call(depth0 != null ? depth0 : (container.nullContext || {}),lookupProperty(depth0,"export"),"interface",{"name":"equals","hash":{},"fn":container.program(1, data, 0),"inverse":container.program(3, data, 0),"data":data,"loc":{"start":{"line":1,"column":0},"end":{"line":19,"column":11}}})) != null ? stack1 : ""); +},"usePartial":true,"useData":true}; + +var partialTypeArray = {"1":function(container,depth0,helpers,partials,data) { + var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return "Array<" + + ((stack1 = container.invokePartial(lookupProperty(partials,"type"),lookupProperty(depth0,"link"),{"name":"type","data":data,"helpers":helpers,"partials":partials,"decorators":container.decorators})) != null ? stack1 : "") + + ">" + + ((stack1 = container.invokePartial(lookupProperty(partials,"isNullable"),depth0,{"name":"isNullable","data":data,"helpers":helpers,"partials":partials,"decorators":container.decorators})) != null ? stack1 : ""); +},"3":function(container,depth0,helpers,partials,data) { + var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return "Array<" + + ((stack1 = container.invokePartial(lookupProperty(partials,"base"),depth0,{"name":"base","data":data,"helpers":helpers,"partials":partials,"decorators":container.decorators})) != null ? stack1 : "") + + ">" + + ((stack1 = container.invokePartial(lookupProperty(partials,"isNullable"),depth0,{"name":"isNullable","data":data,"helpers":helpers,"partials":partials,"decorators":container.decorators})) != null ? stack1 : ""); +},"compiler":[8,">= 4.3.0"],"main":function(container,depth0,helpers,partials,data) { + var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return ((stack1 = lookupProperty(helpers,"if").call(depth0 != null ? depth0 : (container.nullContext || {}),lookupProperty(depth0,"link"),{"name":"if","hash":{},"fn":container.program(1, data, 0),"inverse":container.program(3, data, 0),"data":data,"loc":{"start":{"line":1,"column":0},"end":{"line":5,"column":9}}})) != null ? stack1 : ""); +},"usePartial":true,"useData":true}; + +var partialTypeDictionary = {"1":function(container,depth0,helpers,partials,data) { + var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return "Record" + + ((stack1 = container.invokePartial(lookupProperty(partials,"isNullable"),depth0,{"name":"isNullable","data":data,"helpers":helpers,"partials":partials,"decorators":container.decorators})) != null ? stack1 : ""); +},"3":function(container,depth0,helpers,partials,data) { + var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return "Record" + + ((stack1 = container.invokePartial(lookupProperty(partials,"isNullable"),depth0,{"name":"isNullable","data":data,"helpers":helpers,"partials":partials,"decorators":container.decorators})) != null ? stack1 : ""); +},"compiler":[8,">= 4.3.0"],"main":function(container,depth0,helpers,partials,data) { + var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return ((stack1 = lookupProperty(helpers,"if").call(depth0 != null ? depth0 : (container.nullContext || {}),lookupProperty(depth0,"link"),{"name":"if","hash":{},"fn":container.program(1, data, 0),"inverse":container.program(3, data, 0),"data":data,"loc":{"start":{"line":1,"column":0},"end":{"line":5,"column":9}}})) != null ? stack1 : ""); +},"usePartial":true,"useData":true}; + +var partialTypeEnum = {"1":function(container,depth0,helpers,partials,data) { + var stack1; + + return ((stack1 = container.lambda(depth0, depth0)) != null ? stack1 : ""); +},"compiler":[8,">= 4.3.0"],"main":function(container,depth0,helpers,partials,data) { + var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return ((stack1 = lookupProperty(helpers,"enumerator").call(depth0 != null ? depth0 : (container.nullContext || {}),lookupProperty(depth0,"enum"),lookupProperty(depth0,"parent"),lookupProperty(depth0,"name"),{"name":"enumerator","hash":{},"fn":container.program(1, data, 0),"inverse":container.noop,"data":data,"loc":{"start":{"line":1,"column":0},"end":{"line":1,"column":55}}})) != null ? stack1 : "") + + ((stack1 = container.invokePartial(lookupProperty(partials,"isNullable"),depth0,{"name":"isNullable","data":data,"helpers":helpers,"partials":partials,"decorators":container.decorators})) != null ? stack1 : ""); +},"usePartial":true,"useData":true}; + +var partialTypeGeneric = {"compiler":[8,">= 4.3.0"],"main":function(container,depth0,helpers,partials,data) { + var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return ((stack1 = container.invokePartial(lookupProperty(partials,"base"),depth0,{"name":"base","data":data,"helpers":helpers,"partials":partials,"decorators":container.decorators})) != null ? stack1 : "") + + ((stack1 = container.invokePartial(lookupProperty(partials,"isNullable"),depth0,{"name":"isNullable","data":data,"helpers":helpers,"partials":partials,"decorators":container.decorators})) != null ? stack1 : ""); +},"usePartial":true,"useData":true}; + +var partialTypeInterface = {"1":function(container,depth0,helpers,partials,data,blockParams,depths) { + var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return "{\n" + + ((stack1 = lookupProperty(helpers,"each").call(depth0 != null ? depth0 : (container.nullContext || {}),lookupProperty(depth0,"properties"),{"name":"each","hash":{},"fn":container.program(2, data, 0, blockParams, depths),"inverse":container.noop,"data":data,"loc":{"start":{"line":3,"column":0},"end":{"line":14,"column":9}}})) != null ? stack1 : "") + + "}" + + ((stack1 = container.invokePartial(lookupProperty(partials,"isNullable"),depth0,{"name":"isNullable","data":data,"helpers":helpers,"partials":partials,"decorators":container.decorators})) != null ? stack1 : ""); +},"2":function(container,depth0,helpers,partials,data,blockParams,depths) { + var stack1, alias1=depth0 != null ? depth0 : (container.nullContext || {}), lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return ((stack1 = lookupProperty(helpers,"if").call(alias1,lookupProperty(depth0,"description"),{"name":"if","hash":{},"fn":container.program(3, data, 0, blockParams, depths),"inverse":container.noop,"data":data,"loc":{"start":{"line":4,"column":0},"end":{"line":8,"column":7}}})) != null ? stack1 : "") + + ((stack1 = lookupProperty(helpers,"if").call(alias1,lookupProperty(depths[1],"parent"),{"name":"if","hash":{},"fn":container.program(5, data, 0, blockParams, depths),"inverse":container.program(7, data, 0, blockParams, depths),"data":data,"loc":{"start":{"line":9,"column":0},"end":{"line":13,"column":7}}})) != null ? stack1 : ""); +},"3":function(container,depth0,helpers,partials,data) { + var stack1; + + return "/**\n * " + + ((stack1 = container.lambda(container.strict(depth0, "description", {"start":{"line":6,"column":6},"end":{"line":6,"column":17}} ), depth0)) != null ? stack1 : "") + + "\n */\n"; +},"5":function(container,depth0,helpers,partials,data,blockParams,depths) { + var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return ((stack1 = container.invokePartial(lookupProperty(partials,"isReadOnly"),depth0,{"name":"isReadOnly","data":data,"helpers":helpers,"partials":partials,"decorators":container.decorators})) != null ? stack1 : "") + + ((stack1 = container.lambda(container.strict(depth0, "name", {"start":{"line":10,"column":18},"end":{"line":10,"column":22}} ), depth0)) != null ? stack1 : "") + + ((stack1 = container.invokePartial(lookupProperty(partials,"isRequired"),depth0,{"name":"isRequired","data":data,"helpers":helpers,"partials":partials,"decorators":container.decorators})) != null ? stack1 : "") + + ": " + + ((stack1 = container.invokePartial(lookupProperty(partials,"type"),depth0,{"name":"type","hash":{"parent":lookupProperty(depths[1],"parent")},"data":data,"helpers":helpers,"partials":partials,"decorators":container.decorators})) != null ? stack1 : "") + + ";\n"; +},"7":function(container,depth0,helpers,partials,data) { + var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return ((stack1 = container.invokePartial(lookupProperty(partials,"isReadOnly"),depth0,{"name":"isReadOnly","data":data,"helpers":helpers,"partials":partials,"decorators":container.decorators})) != null ? stack1 : "") + + ((stack1 = container.lambda(container.strict(depth0, "name", {"start":{"line":12,"column":18},"end":{"line":12,"column":22}} ), depth0)) != null ? stack1 : "") + + ((stack1 = container.invokePartial(lookupProperty(partials,"isRequired"),depth0,{"name":"isRequired","data":data,"helpers":helpers,"partials":partials,"decorators":container.decorators})) != null ? stack1 : "") + + ": " + + ((stack1 = container.invokePartial(lookupProperty(partials,"type"),depth0,{"name":"type","data":data,"helpers":helpers,"partials":partials,"decorators":container.decorators})) != null ? stack1 : "") + + ";\n"; +},"9":function(container,depth0,helpers,partials,data) { + return "any"; +},"compiler":[8,">= 4.3.0"],"main":function(container,depth0,helpers,partials,data,blockParams,depths) { + var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return ((stack1 = lookupProperty(helpers,"if").call(depth0 != null ? depth0 : (container.nullContext || {}),lookupProperty(depth0,"properties"),{"name":"if","hash":{},"fn":container.program(1, data, 0, blockParams, depths),"inverse":container.program(9, data, 0, blockParams, depths),"data":data,"loc":{"start":{"line":1,"column":0},"end":{"line":18,"column":9}}})) != null ? stack1 : ""); +},"usePartial":true,"useData":true,"useDepths":true}; + +var partialTypeIntersection = {"1":function(container,depth0,helpers,partials,data) { + var stack1; + + return ((stack1 = container.lambda(depth0, depth0)) != null ? stack1 : ""); +},"compiler":[8,">= 4.3.0"],"main":function(container,depth0,helpers,partials,data) { + var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return ((stack1 = lookupProperty(helpers,"intersection").call(depth0 != null ? depth0 : (container.nullContext || {}),lookupProperty(depth0,"properties"),lookupProperty(depth0,"parent"),{"name":"intersection","hash":{},"fn":container.program(1, data, 0),"inverse":container.noop,"data":data,"loc":{"start":{"line":1,"column":0},"end":{"line":1,"column":60}}})) != null ? stack1 : "") + + ((stack1 = container.invokePartial(lookupProperty(partials,"isNullable"),depth0,{"name":"isNullable","data":data,"helpers":helpers,"partials":partials,"decorators":container.decorators})) != null ? stack1 : ""); +},"usePartial":true,"useData":true}; + +var partialTypeReference = {"compiler":[8,">= 4.3.0"],"main":function(container,depth0,helpers,partials,data) { + var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return ((stack1 = container.invokePartial(lookupProperty(partials,"base"),depth0,{"name":"base","data":data,"helpers":helpers,"partials":partials,"decorators":container.decorators})) != null ? stack1 : "") + + ((stack1 = container.invokePartial(lookupProperty(partials,"isNullable"),depth0,{"name":"isNullable","data":data,"helpers":helpers,"partials":partials,"decorators":container.decorators})) != null ? stack1 : ""); +},"usePartial":true,"useData":true}; + +var partialTypeUnion = {"1":function(container,depth0,helpers,partials,data) { + var stack1; + + return ((stack1 = container.lambda(depth0, depth0)) != null ? stack1 : ""); +},"compiler":[8,">= 4.3.0"],"main":function(container,depth0,helpers,partials,data) { + var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return ((stack1 = lookupProperty(helpers,"union").call(depth0 != null ? depth0 : (container.nullContext || {}),lookupProperty(depth0,"properties"),lookupProperty(depth0,"parent"),{"name":"union","hash":{},"fn":container.program(1, data, 0),"inverse":container.noop,"data":data,"loc":{"start":{"line":1,"column":0},"end":{"line":1,"column":46}}})) != null ? stack1 : "") + + ((stack1 = container.invokePartial(lookupProperty(partials,"isNullable"),depth0,{"name":"isNullable","data":data,"helpers":helpers,"partials":partials,"decorators":container.decorators})) != null ? stack1 : ""); +},"usePartial":true,"useData":true}; + +function registerHandlebarHelpers(root) { + Handlebars__namespace.registerHelper('equals', function (a, b, options) { + return a === b ? options.fn(this) : options.inverse(this); + }); + Handlebars__namespace.registerHelper('notEquals', function (a, b, options) { + return a !== b ? options.fn(this) : options.inverse(this); + }); + Handlebars__namespace.registerHelper('containsSpaces', function (value, options) { + return /\s+/.test(value) ? options.fn(this) : options.inverse(this); + }); + Handlebars__namespace.registerHelper('union', function (properties, parent, options) { + const type = Handlebars__namespace.partials['type']; + const types = properties.map(property => type(Object.assign(Object.assign(Object.assign({}, root), property), { parent }))); + const uniqueTypes = types.filter(unique); + let uniqueTypesString = uniqueTypes.join(' | '); + if (uniqueTypes.length > 1) { + uniqueTypesString = `(${uniqueTypesString})`; + } + return options.fn(uniqueTypesString); + }); + Handlebars__namespace.registerHelper('intersection', function (properties, parent, options) { + const type = Handlebars__namespace.partials['type']; + const types = properties.map(property => type(Object.assign(Object.assign(Object.assign({}, root), property), { parent }))); + const uniqueTypes = types.filter(unique); + let uniqueTypesString = uniqueTypes.join(' & '); + if (uniqueTypes.length > 1) { + uniqueTypesString = `(${uniqueTypesString})`; + } + return options.fn(uniqueTypesString); + }); + Handlebars__namespace.registerHelper('enumerator', function (enumerators, parent, name, options) { + if (!root.useUnionTypes && parent && name) { + return `${parent}.${name}`; + } + return options.fn(enumerators + .map(enumerator => enumerator.value) + .filter(unique) + .join(' | ')); + }); +} + +/** + * Read all the Handlebar templates that we need and return on wrapper object + * so we can easily access the templates in out generator / write functions. + */ +function registerHandlebarTemplates(root) { + var _a, _b, _c; + registerHandlebarHelpers(root); + // Main templates (entry points for the files we write to disk) + const templates = { + index: Handlebars__namespace.template(templateIndex), + exports: { + model: Handlebars__namespace.template(((_a = root.hbsFilesOverride) === null || _a === void 0 ? void 0 : _a.exportModel) || templateExportModel), + schema: Handlebars__namespace.template(((_b = root.hbsFilesOverride) === null || _b === void 0 ? void 0 : _b.exportSchema) || templateExportSchema), + service: Handlebars__namespace.template(((_c = root.hbsFilesOverride) === null || _c === void 0 ? void 0 : _c.exportService) || templateExportService), + }, + core: { + settings: Handlebars__namespace.template(templateCoreSettings), + apiError: Handlebars__namespace.template(templateCoreApiError), + apiRequestOptions: Handlebars__namespace.template(templateCoreApiRequestOptions), + apiResult: Handlebars__namespace.template(templateCoreApiResult), + cancelablePromise: Handlebars__namespace.template(templateCancelablePromise), + request: Handlebars__namespace.template(templateCoreRequest), + }, + }; + // Partials for the generations of the models, services, etc. + Handlebars__namespace.registerPartial('exportEnum', Handlebars__namespace.template(partialExportEnum)); + Handlebars__namespace.registerPartial('exportInterface', Handlebars__namespace.template(partialExportInterface)); + Handlebars__namespace.registerPartial('exportComposition', Handlebars__namespace.template(partialExportComposition)); + Handlebars__namespace.registerPartial('exportType', Handlebars__namespace.template(partialExportType)); + Handlebars__namespace.registerPartial('header', Handlebars__namespace.template(partialHeader)); + Handlebars__namespace.registerPartial('isNullable', Handlebars__namespace.template(partialIsNullable)); + Handlebars__namespace.registerPartial('isReadOnly', Handlebars__namespace.template(partialIsReadOnly)); + Handlebars__namespace.registerPartial('isRequired', Handlebars__namespace.template(partialIsRequired)); + Handlebars__namespace.registerPartial('parameters', Handlebars__namespace.template(partialParameters)); + Handlebars__namespace.registerPartial('result', Handlebars__namespace.template(partialResult)); + Handlebars__namespace.registerPartial('schema', Handlebars__namespace.template(partialSchema)); + Handlebars__namespace.registerPartial('schemaArray', Handlebars__namespace.template(partialSchemaArray)); + Handlebars__namespace.registerPartial('schemaDictionary', Handlebars__namespace.template(partialSchemaDictionary)); + Handlebars__namespace.registerPartial('schemaEnum', Handlebars__namespace.template(partialSchemaEnum)); + Handlebars__namespace.registerPartial('schemaGeneric', Handlebars__namespace.template(partialSchemaGeneric)); + Handlebars__namespace.registerPartial('schemaInterface', Handlebars__namespace.template(partialSchemaInterface)); + Handlebars__namespace.registerPartial('schemaComposition', Handlebars__namespace.template(partialSchemaComposition)); + Handlebars__namespace.registerPartial('type', Handlebars__namespace.template(partialType)); + Handlebars__namespace.registerPartial('typeArray', Handlebars__namespace.template(partialTypeArray)); + Handlebars__namespace.registerPartial('typeDictionary', Handlebars__namespace.template(partialTypeDictionary)); + Handlebars__namespace.registerPartial('typeEnum', Handlebars__namespace.template(partialTypeEnum)); + Handlebars__namespace.registerPartial('typeGeneric', Handlebars__namespace.template(partialTypeGeneric)); + Handlebars__namespace.registerPartial('typeInterface', Handlebars__namespace.template(partialTypeInterface)); + Handlebars__namespace.registerPartial('typeReference', Handlebars__namespace.template(partialTypeReference)); + Handlebars__namespace.registerPartial('typeUnion', Handlebars__namespace.template(partialTypeUnion)); + Handlebars__namespace.registerPartial('typeIntersection', Handlebars__namespace.template(partialTypeIntersection)); + Handlebars__namespace.registerPartial('base', Handlebars__namespace.template(partialBase)); + // Generic functions used in 'request' file @see src/templates/core/request.hbs for more info + Handlebars__namespace.registerPartial('functions/catchErrors', Handlebars__namespace.template(functionCatchErrors)); + Handlebars__namespace.registerPartial('functions/getFormData', Handlebars__namespace.template(functionGetFormData)); + Handlebars__namespace.registerPartial('functions/getQueryString', Handlebars__namespace.template(functionGetQueryString)); + Handlebars__namespace.registerPartial('functions/getUrl', Handlebars__namespace.template(functionGetUrl)); + Handlebars__namespace.registerPartial('functions/isBlob', Handlebars__namespace.template(functionIsBlob)); + Handlebars__namespace.registerPartial('functions/isDefined', Handlebars__namespace.template(functionIsDefined)); + Handlebars__namespace.registerPartial('functions/isString', Handlebars__namespace.template(functionIsString)); + Handlebars__namespace.registerPartial('functions/isStringWithValue', Handlebars__namespace.template(functionIsStringWithValue)); + Handlebars__namespace.registerPartial('functions/isSuccess', Handlebars__namespace.template(functionIsSuccess)); + Handlebars__namespace.registerPartial('functions/base64', Handlebars__namespace.template(functionBase64)); + Handlebars__namespace.registerPartial('functions/resolve', Handlebars__namespace.template(functionResolve)); + // Specific files for the fetch client implementation + Handlebars__namespace.registerPartial('fetch/getHeaders', Handlebars__namespace.template(fetchGetHeaders)); + Handlebars__namespace.registerPartial('fetch/getRequestBody', Handlebars__namespace.template(fetchGetRequestBody)); + Handlebars__namespace.registerPartial('fetch/getResponseBody', Handlebars__namespace.template(fetchGetResponseBody)); + Handlebars__namespace.registerPartial('fetch/getResponseHeader', Handlebars__namespace.template(fetchGetResponseHeader)); + Handlebars__namespace.registerPartial('fetch/sendRequest', Handlebars__namespace.template(fetchSendRequest)); + Handlebars__namespace.registerPartial('fetch/request', Handlebars__namespace.template(fetchRequest)); + // Specific files for the xhr client implementation + Handlebars__namespace.registerPartial('xhr/getHeaders', Handlebars__namespace.template(xhrGetHeaders)); + Handlebars__namespace.registerPartial('xhr/getRequestBody', Handlebars__namespace.template(xhrGetRequestBody)); + Handlebars__namespace.registerPartial('xhr/getResponseBody', Handlebars__namespace.template(xhrGetResponseBody)); + Handlebars__namespace.registerPartial('xhr/getResponseHeader', Handlebars__namespace.template(xhrGetResponseHeader)); + Handlebars__namespace.registerPartial('xhr/sendRequest', Handlebars__namespace.template(xhrSendRequest)); + Handlebars__namespace.registerPartial('xhr/request', Handlebars__namespace.template(xhrRequest)); + // Specific files for the node client implementation + Handlebars__namespace.registerPartial('node/getHeaders', Handlebars__namespace.template(nodeGetHeaders)); + Handlebars__namespace.registerPartial('node/getRequestBody', Handlebars__namespace.template(nodeGetRequestBody)); + Handlebars__namespace.registerPartial('node/getResponseBody', Handlebars__namespace.template(nodeGetResponseBody)); + Handlebars__namespace.registerPartial('node/getResponseHeader', Handlebars__namespace.template(nodeGetResponseHeader)); + Handlebars__namespace.registerPartial('node/sendRequest', Handlebars__namespace.template(nodeSendRequest)); + Handlebars__namespace.registerPartial('node/request', Handlebars__namespace.template(nodeRequest)); + // Specific files for the axios client implementation + Handlebars__namespace.registerPartial('axios/getHeaders', Handlebars__namespace.template(axiosGetHeaders)); + Handlebars__namespace.registerPartial('axios/getRequestBody', Handlebars__namespace.template(axiosGetRequestBody)); + Handlebars__namespace.registerPartial('axios/getResponseBody', Handlebars__namespace.template(axiosGetResponseBody)); + Handlebars__namespace.registerPartial('axios/getResponseHeader', Handlebars__namespace.template(axiosGetResponseHeader)); + Handlebars__namespace.registerPartial('axios/sendRequest', Handlebars__namespace.template(axiosSendRequest)); + Handlebars__namespace.registerPartial('axios/request', Handlebars__namespace.template(axiosRequest)); + return templates; +} + +// Wrapped file system calls +util.promisify(fs.readFile); +const writeFile = util.promisify(fs.writeFile); +const copyFile = util.promisify(fs.copyFile); +const exists = util.promisify(fs.exists); +// Re-export from mkdirp to make mocking easier +const mkdir = mkdirp__default["default"]; +// Promisified version of rimraf +const rmdir = (path) => new Promise((resolve, reject) => { + rimraf__default["default"](path, (error) => { + if (error) { + reject(error); + } + else { + resolve(); + } + }); +}); + +function isSubDirectory(parent, child) { + return path.relative(child, parent).startsWith('..'); +} + +/** + * Generate OpenAPI core files, this includes the basic boilerplate code to handle requests. + * @param client Client object, containing, models, schemas and services + * @param templates The loaded handlebar templates + * @param outputPath Directory to write the generated files to + * @param httpClient The selected httpClient (fetch, xhr, node or axios) + * @param request: Path to custom request file + */ +async function writeClientCore(client, templates, outputPath, httpClient, request) { + const context = { + httpClient, + server: client.server, + version: client.version, + }; + await writeFile(path.resolve(outputPath, 'OpenAPI.ts'), templates.core.settings(context)); + await writeFile(path.resolve(outputPath, 'ApiError.ts'), templates.core.apiError({})); + await writeFile(path.resolve(outputPath, 'ApiRequestOptions.ts'), templates.core.apiRequestOptions({})); + await writeFile(path.resolve(outputPath, 'ApiResult.ts'), templates.core.apiResult({})); + await writeFile(path.resolve(outputPath, 'CancelablePromise.ts'), templates.core.cancelablePromise({})); + await writeFile(path.resolve(outputPath, 'request.ts'), templates.core.request(context)); + if (request) { + const requestFile = path.resolve(process.cwd(), request); + const requestFileExists = await exists(requestFile); + if (!requestFileExists) { + throw new Error(`Custom request file "${requestFile}" does not exists`); + } + await copyFile(requestFile, path.resolve(outputPath, 'request.ts')); + } +} + +function sortModelsByName(models) { + return models.sort((a, b) => { + const nameA = a.name.toLowerCase(); + const nameB = b.name.toLowerCase(); + return nameA.localeCompare(nameB, 'en'); + }); +} + +function sortServicesByName(services) { + return services.sort((a, b) => { + const nameA = a.name.toLowerCase(); + const nameB = b.name.toLowerCase(); + return nameA.localeCompare(nameB, 'en'); + }); +} + +/** + * Generate the OpenAPI client index file using the Handlebar template and write it to disk. + * The index file just contains all the exports you need to use the client as a standalone + * library. But yuo can also import individual models and services directly. + * @param client Client object, containing, models, schemas and services + * @param templates The loaded handlebar templates + * @param outputPath Directory to write the generated files to + * @param useUnionTypes Use union types instead of enums + * @param exportCore: Generate core + * @param exportServices: Generate services + * @param exportModels: Generate models + * @param exportSchemas: Generate schemas + * @param postfix: Service name postfix + */ +async function writeClientIndex(client, templates, outputPath, useUnionTypes, exportCore, exportServices, exportModels, exportSchemas, postfix) { + await writeFile(path.resolve(outputPath, 'index.ts'), templates.index({ + exportCore, + exportServices, + exportModels, + exportSchemas, + useUnionTypes, + postfix, + server: client.server, + version: client.version, + models: sortModelsByName(client.models), + services: sortServicesByName(client.services), + })); +} + +function format(s) { + let indent = 0; + let lines = s.split(os.EOL); + lines = lines.map(line => { + line = line.trim().replace(/^\*/g, ' *'); + let i = indent; + if (line.endsWith('(') || line.endsWith('{') || line.endsWith('[')) { + indent++; + } + if ((line.startsWith(')') || line.startsWith('}') || line.startsWith(']')) && i) { + indent--; + i--; + } + const result = `${' '.repeat(i)}${line}`; + if (result.trim() === '') { + return ''; + } + return result; + }); + return lines.join(os.EOL); +} + +/** + * Generate Models using the Handlebar template and write to disk. + * @param models Array of Models to write + * @param templates The loaded handlebar templates + * @param outputPath Directory to write the generated files to + * @param httpClient The selected httpClient (fetch, xhr, node or axios) + * @param useUnionTypes Use union types instead of enums + */ +async function writeClientModels(models, templates, outputPath, httpClient, useUnionTypes, additionalContext) { + for (const model of models) { + const file = path.resolve(outputPath, `${model.name}.ts`); + const templateResult = templates.exports.model(Object.assign(Object.assign({}, model), { httpClient, + useUnionTypes, additionalContext: additionalContext || {} })); + await writeFile(file, format(templateResult)); + } +} + +/** + * Generate Schemas using the Handlebar template and write to disk. + * @param models Array of Models to write + * @param templates The loaded handlebar templates + * @param outputPath Directory to write the generated files to + * @param httpClient The selected httpClient (fetch, xhr, node or axios) + * @param useUnionTypes Use union types instead of enums + * @param additionalContext Additional context for models, service and schema template files + */ +async function writeClientSchemas(models, templates, outputPath, httpClient, useUnionTypes, additionalContext) { + for (const model of models) { + const file = path.resolve(outputPath, `$${model.name}.ts`); + const templateResult = templates.exports.schema(Object.assign(Object.assign({}, model), { httpClient, + useUnionTypes, additionalContext: additionalContext || {} })); + await writeFile(file, format(templateResult)); + } +} + +const VERSION_TEMPLATE_STRING = 'OpenAPI.VERSION'; +/** + * Generate Services using the Handlebar template and write to disk. + * @param services Array of Services to write + * @param templates The loaded handlebar templates + * @param outputPath Directory to write the generated files to + * @param httpClient The selected httpClient (fetch, xhr, node or axios) + * @param useUnionTypes Use union types instead of enums + * @param useOptions Use options or arguments functions + * @param postfix: Service name postfix + */ +async function writeClientServices(services, templates, outputPath, httpClient, useUnionTypes, useOptions, postfix, additionalContext) { + for (const service of services) { + const file = path.resolve(outputPath, `${service.name}${postfix}.ts`); + const useVersion = service.operations.some(operation => operation.path.includes(VERSION_TEMPLATE_STRING)); + const templateResult = templates.exports.service(Object.assign(Object.assign({}, service), { httpClient, + useUnionTypes, + useVersion, + useOptions, + postfix, additionalContext: additionalContext || {} })); + await writeFile(file, format(templateResult)); + } +} + +/** + * Write our OpenAPI client, using the given templates at the given output + * @param client Client object with all the models, services, etc. + * @param templates Templates wrapper with all loaded Handlebars templates + * @param output The relative location of the output directory + * @param httpClient The selected httpClient (fetch, xhr, node or axios) + * @param useOptions Use options or arguments functions + * @param useUnionTypes Use union types instead of enums + * @param exportCore: Generate core client classes + * @param exportServices: Generate services + * @param exportModels: Generate models + * @param exportSchemas: Generate schemas + * @param exportSchemas: Generate schemas + * @param postfix: Service name postfix + * @param request: Path to custom request file + */ +async function writeClient(client, templates, output, httpClient, useOptions, useUnionTypes, exportCore, exportServices, exportModels, exportSchemas, postfix, request, additionalContext) { + const outputPath = path.resolve(process.cwd(), output); + const outputPathCore = path.resolve(outputPath, 'core'); + const outputPathModels = path.resolve(outputPath, 'models'); + const outputPathSchemas = path.resolve(outputPath, 'schemas'); + const outputPathServices = path.resolve(outputPath, 'services'); + if (!isSubDirectory(process.cwd(), output)) { + throw new Error(`Output folder is not a subdirectory of the current working directory`); + } + if (exportCore) { + await rmdir(outputPathCore); + await mkdir(outputPathCore); + await writeClientCore(client, templates, outputPathCore, httpClient, request); + } + if (exportServices) { + await rmdir(outputPathServices); + await mkdir(outputPathServices); + await writeClientServices(client.services, templates, outputPathServices, httpClient, useUnionTypes, useOptions, postfix, additionalContext); + } + if (exportSchemas) { + await rmdir(outputPathSchemas); + await mkdir(outputPathSchemas); + await writeClientSchemas(client.models, templates, outputPathSchemas, httpClient, useUnionTypes, additionalContext); + } + if (exportModels) { + await rmdir(outputPathModels); + await mkdir(outputPathModels); + await writeClientModels(client.models, templates, outputPathModels, httpClient, useUnionTypes, additionalContext); + } + if (exportCore || exportServices || exportSchemas || exportModels) { + await mkdir(outputPath); + await writeClientIndex(client, templates, outputPath, useUnionTypes, exportCore, exportServices, exportModels, exportSchemas, postfix); + } +} + +/** + * Generate the OpenAPI client. This method will read the OpenAPI specification and based on the + * given language it will generate the client, including the typed models, validation schemas, + * service layer, etc. + * @param input The relative location of the OpenAPI spec + * @param output The relative location of the output directory + * @param httpClient The selected httpClient (fetch, xhr, node or axios) + * @param useOptions Use options or arguments functions + * @param useUnionTypes Use union types instead of enums + * @param exportCore: Generate core client classes + * @param exportServices: Generate services + * @param exportModels: Generate models + * @param exportSchemas: Generate schemas + * @param postfix: Service name postfix + * @param request: Path to custom request file + * @param hbsFilesOverride: Object with paths to hbs files + * @param additionalContext: Additional context for models, service and schema template files + * @param write Write the files to disk (true or false) + */ +async function generate({ input, output, httpClient = exports.HttpClient.FETCH, useOptions = false, useUnionTypes = false, exportCore = true, exportServices = true, exportModels = true, exportSchemas = false, postfix = 'Service', request, hbsFilesOverride, additionalContext, write = true, }) { + const openApi = isString(input) ? await getOpenApiSpec(input) : input; + const openApiVersion = getOpenApiVersion(openApi); + const templates = registerHandlebarTemplates({ + httpClient, + useUnionTypes, + useOptions, + hbsFilesOverride, + }); + switch (openApiVersion) { + case OpenApiVersion.V2: { + const client = parse$1(openApi); + const clientFinal = postProcessClient(client); + if (!write) + break; + await writeClient(clientFinal, templates, output, httpClient, useOptions, useUnionTypes, exportCore, exportServices, exportModels, exportSchemas, postfix, request, additionalContext); + break; + } + case OpenApiVersion.V3: { + const client = parse(openApi); + const clientFinal = postProcessClient(client); + if (!write) + break; + await writeClient(clientFinal, templates, output, httpClient, useOptions, useUnionTypes, exportCore, exportServices, exportModels, exportSchemas, postfix, request, additionalContext); + break; + } + } +} + +exports.generate = generate; From 00dbd1a8f4f4dd29ca5196910aca859eb34d2681 Mon Sep 17 00:00:00 2001 From: kirill Date: Fri, 24 May 2024 15:34:45 +0300 Subject: [PATCH 3/4] [+] embedded models --- dist/index.js | 7558 ++++++++++++++++- package.json | 1 + src/client/interfaces/Model.d.ts | 5 +- src/client/interfaces/ModelComposition.d.ts | 2 +- .../interfaces/OperationParameters.d.ts | 2 +- src/client/interfaces/Service.d.ts | 2 +- src/client/interfaces/Type.d.ts | 2 +- src/openApi/v3/parser/getModels.ts | 46 +- src/openApi/v3/parser/getType.spec.ts | 44 +- src/openApi/v3/parser/getType.ts | 16 + src/templates/exportModel.hbs | 8 + src/templates/exportService.hbs | 8 + src/templates/index.hbs | 6 + src/utils/postProcessModelImports.ts | 2 +- src/utils/postProcessServiceImports.ts | 2 +- src/utils/sort.ts | 9 +- src/utils/unique.ts | 8 + src/utils/writeClientModels.ts | 26 +- src/utils/writeClientSchemas.ts | 13 +- test/index.spec.ts | 22 + test/spec/v3-embedded.json | 100 + 21 files changed, 7854 insertions(+), 28 deletions(-) create mode 100644 test/spec/v3-embedded.json diff --git a/dist/index.js b/dist/index.js index 40abf749b..d4eef43cc 100644 --- a/dist/index.js +++ b/dist/index.js @@ -1 +1,7557 @@ -"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("camelcase"),t=require("json-schema-ref-parser"),n=require("os"),r=require("path"),o=require("fs-extra");function a(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var l,s,i=a(e),u=a(t);exports.HttpClient=void 0,(l=exports.HttpClient||(exports.HttpClient={})).FETCH="fetch",l.XHR="xhr",l.NODE="node",l.AXIOS="axios",l.ANGULAR="angular",exports.Indent=void 0,(s=exports.Indent||(exports.Indent={})).SPACE_4="4",s.SPACE_2="2",s.TAB="tab";const p=e=>null==e?void 0:e.replace(/\\/g,"\\\\"),c=e=>"string"==typeof e,m=(e,t)=>{var n,r;const o=null===(n=t["x-enum-varnames"])||void 0===n?void 0:n.filter(c),a=null===(r=t["x-enum-descriptions"])||void 0===r?void 0:r.filter(c);return e.map(((e,t)=>({name:(null==o?void 0:o[t])||e.name,description:(null==a?void 0:a[t])||e.description,value:e.value,type:e.type})))},d=e=>Array.isArray(e)?e.filter(((e,t,n)=>n.indexOf(e)===t)).filter((e=>"number"==typeof e||"string"==typeof e)).map((e=>"number"==typeof e?{name:`'_${e}'`,value:String(e),type:"number",description:null}:{name:String(e).replace(/\W+/g,"_").replace(/^(\d+)/g,"_$1").replace(/([a-z])([A-Z]+)/g,"$1_$2").toUpperCase(),value:`'${e.replace(/'/g,"\\'")}'`,type:"string",description:null})):[],f=e=>{if(e||""===e){if(!/^[a-zA-Z_$][\w$]+$/g.test(e))return`'${e}'`}return e},h=new Map([["file","binary"],["any","any"],["object","any"],["array","any[]"],["boolean","boolean"],["byte","number"],["int","number"],["integer","number"],["float","number"],["double","number"],["short","number"],["long","number"],["number","number"],["char","string"],["date","string"],["date-time","string"],["password","string"],["string","string"],["void","void"],["null","null"]]),y=e=>e.replace(/^[^a-zA-Z_$]+/g,"").replace(/[^\w$]+/g,"_"),v=(e="any",t)=>{const n={type:"any",base:"any",template:null,imports:[],isNullable:!1},r=((e,t)=>"binary"===t?"binary":h.get(e))(e,t);if(r)return n.type=r,n.base=r,n;const o=decodeURIComponent(e.trim().replace(/^#\/definitions\//,"").replace(/^#\/parameters\//,"").replace(/^#\/responses\//,"").replace(/^#\/securityDefinitions\//,""));if(/\[.*\]$/g.test(o)){const e=o.match(/(.*?)\[(.*)\]$/);if(null==e?void 0:e.length){const t=v(y(e[1])),r=v(y(e[2]));return"any[]"===t.type?(n.type=`${r.type}[]`,n.base=r.type,t.imports=[]):r.type?(n.type=`${t.type}<${r.type}>`,n.base=t.type,n.template=r.type):(n.type=t.type,n.base=t.type,n.template=t.type),n.imports.push(...t.imports),n.imports.push(...r.imports),n}}if(o){const e=y(o);return n.type=e,n.base=e,n.imports.push(e),n}return n},g=(e,t,n)=>{var r;const o=[];for(const a in t.properties)if(t.properties.hasOwnProperty(a)){const l=t.properties[a],s=!!(null===(r=t.required)||void 0===r?void 0:r.includes(a));if(l.$ref){const e=v(l.$ref);o.push({name:f(a),export:"reference",type:e.type,base:e.base,template:e.template,link:null,description:l.description||null,isDefinition:!1,isReadOnly:!0===l.readOnly,isRequired:s,isNullable:!0===l["x-nullable"],format:l.format,maximum:l.maximum,exclusiveMaximum:l.exclusiveMaximum,minimum:l.minimum,exclusiveMinimum:l.exclusiveMinimum,multipleOf:l.multipleOf,maxLength:l.maxLength,minLength:l.minLength,maxItems:l.maxItems,minItems:l.minItems,uniqueItems:l.uniqueItems,maxProperties:l.maxProperties,minProperties:l.minProperties,pattern:p(l.pattern),imports:e.imports,enum:[],enums:[],properties:[]})}else{const t=n(e,l);o.push({name:f(a),export:t.export,type:t.type,base:t.base,template:t.template,link:t.link,description:l.description||null,isDefinition:!1,isReadOnly:!0===l.readOnly,isRequired:s,isNullable:!0===l["x-nullable"],format:l.format,maximum:l.maximum,exclusiveMaximum:l.exclusiveMaximum,minimum:l.minimum,exclusiveMinimum:l.exclusiveMinimum,multipleOf:l.multipleOf,maxLength:l.maxLength,minLength:l.minLength,maxItems:l.maxItems,minItems:l.minItems,uniqueItems:l.uniqueItems,maxProperties:l.maxProperties,minProperties:l.minProperties,pattern:p(l.pattern),imports:t.imports,enum:t.enum,enums:t.enums,properties:t.properties})}}return o},P=/~1/g,b=/~0/g,O=(e,t)=>{if(t.$ref){const n=t.$ref.replace(/^#/g,"").split("/").filter((e=>e));let r=e;return n.forEach((e=>{const n=decodeURIComponent(e.replace(P,"/").replace(b,"~"));if(!r.hasOwnProperty(n))throw new Error(`Could not find reference: "${t.$ref}"`);r=r[n]})),r}return t},x=(e,t,n,r,o)=>{const a={type:r,imports:[],enums:[],properties:[]},l=[];if(n.map((t=>o(e,t))).filter((e=>{const t=e.properties.length,n=e.enums.length;return!("any"===e.type&&!t&&!n)})).forEach((e=>{a.imports.push(...e.imports),a.enums.push(...e.enums),a.properties.push(e)})),t.required){const r=((e,t,n,r)=>n.reduce(((t,n)=>{if(n.$ref){const o=O(e,n);return[...t,...r(e,o).properties]}return[...t,...r(e,n).properties]}),[]).filter((e=>!e.isRequired&&t.includes(e.name))).map((e=>({...e,isRequired:!0}))))(e,t.required,n,o);r.forEach((e=>{a.imports.push(...e.imports),a.enums.push(...e.enums)})),l.push(...r)}if(t.properties){const n=g(e,t,o);n.forEach((e=>{a.imports.push(...e.imports),a.enums.push(...e.enums),"enum"===e.export&&a.enums.push(e)})),l.push(...n)}return l.length&&a.properties.push({name:"properties",export:"interface",type:"any",base:"any",template:null,link:null,description:"",isDefinition:!1,isReadOnly:!1,isNullable:!1,isRequired:!1,imports:[],enum:[],enums:[],properties:l}),a},k=(e,t,n=!1,r="")=>{var o;const a={name:r,export:"interface",type:"any",base:"any",template:null,link:null,description:t.description||null,isDefinition:n,isReadOnly:!0===t.readOnly,isNullable:!0===t["x-nullable"],isRequired:!1,format:t.format,maximum:t.maximum,exclusiveMaximum:t.exclusiveMaximum,minimum:t.minimum,exclusiveMinimum:t.exclusiveMinimum,multipleOf:t.multipleOf,maxLength:t.maxLength,minLength:t.minLength,maxItems:t.maxItems,minItems:t.minItems,uniqueItems:t.uniqueItems,maxProperties:t.maxProperties,minProperties:t.minProperties,pattern:p(t.pattern),imports:[],enum:[],enums:[],properties:[]};if(t.$ref){const e=v(t.$ref);return a.export="reference",a.type=e.type,a.base=e.base,a.template=e.template,a.imports.push(...e.imports),a}if(t.enum&&"boolean"!==t.type){const e=d(t.enum),n=m(e,t);if(n.length)return a.export="enum",a.type="string",a.base="string",a.enum.push(...n),a}if("array"===t.type&&t.items){if(t.items.$ref){const e=v(t.items.$ref);return a.export="array",a.type=e.type,a.base=e.base,a.template=e.template,a.imports.push(...e.imports),a}{const n=k(e,t.items);return a.export="array",a.type=n.type,a.base=n.base,a.template=n.template,a.link=n,a.imports.push(...n.imports),a}}if("object"===t.type&&"object"==typeof t.additionalProperties){if(t.additionalProperties.$ref){const e=v(t.additionalProperties.$ref);return a.export="dictionary",a.type=e.type,a.base=e.base,a.template=e.template,a.imports.push(...e.imports),a}{const n=k(e,t.additionalProperties);return a.export="dictionary",a.type=n.type,a.base=n.base,a.template=n.template,a.link=n,a.imports.push(...n.imports),a}}if(null===(o=t.allOf)||void 0===o?void 0:o.length){const n=x(e,t,t.allOf,"all-of",k);return a.export=n.type,a.imports.push(...n.imports),a.properties.push(...n.properties),a.enums.push(...n.enums),a}if("object"===t.type){if(a.export="interface",a.type="any",a.base="any",t.properties){g(e,t,k).forEach((e=>{a.imports.push(...e.imports),a.enums.push(...e.enums),a.properties.push(e),"enum"===e.export&&a.enums.push(e)}))}return a}if(t.type){const e=v(t.type,t.format);return a.export="generic",a.type=e.type,a.base=e.base,a.template=e.template,a.imports.push(...e.imports),a}return a},R=(e,t,n)=>n.indexOf(e)===t,C=(e,t)=>{var n;if(void 0===e.default)return;if(null===e.default)return"null";switch(e.type||typeof e.default){case"int":case"integer":case"number":return"enum"===t.export&&(null===(n=t.enum)||void 0===n?void 0:n[e.default])?t.enum[e.default].value:e.default;case"boolean":return JSON.stringify(e.default);case"string":return`'${e.default}'`;case"object":try{return JSON.stringify(e.default,null,4)}catch(e){}}},w=/^(arguments|break|case|catch|class|const|continue|debugger|default|delete|do|else|enum|eval|export|extends|false|finally|for|function|if|implements|import|in|instanceof|interface|let|new|null|package|private|protected|public|return|static|super|switch|this|throw|true|try|typeof|var|void|while|with|yield)$/g,q=e=>{const t=e.replace(/^[^a-zA-Z]+/g,"").replace(/[^\w\-]+/g,"-").trim();return i.default(t).replace(w,"_$1")},A=(e,t)=>{const n={imports:[],parameters:[],parametersPath:[],parametersQuery:[],parametersForm:[],parametersCookie:[],parametersHeader:[],parametersBody:null};return t.forEach((t=>{const r=O(e,t),o=((e,t)=>{var n;const r={in:t.in,prop:t.name,export:"interface",name:q(t.name),type:"any",base:"any",template:null,link:null,description:t.description||null,isDefinition:!1,isReadOnly:!1,isRequired:!0===t.required,isNullable:!0===t["x-nullable"],format:t.format,maximum:t.maximum,exclusiveMaximum:t.exclusiveMaximum,minimum:t.minimum,exclusiveMinimum:t.exclusiveMinimum,multipleOf:t.multipleOf,maxLength:t.maxLength,minLength:t.minLength,maxItems:t.maxItems,minItems:t.minItems,uniqueItems:t.uniqueItems,pattern:p(t.pattern),imports:[],enum:[],enums:[],properties:[],mediaType:null};if(t.$ref){const e=v(t.$ref);return r.export="reference",r.type=e.type,r.base=e.base,r.template=e.template,r.imports.push(...e.imports),r.default=C(t,r),r}if(t.enum){const e=d(t.enum),n=m(e,t);if(n.length)return r.export="enum",r.type="string",r.base="string",r.enum.push(...n),r.default=C(t,r),r}if("array"===t.type&&t.items){const e=v(t.items.type,t.items.format);return r.export="array",r.type=e.type,r.base=e.base,r.template=e.template,r.imports.push(...e.imports),r.default=C(t,r),r}if("object"===t.type&&t.items){const e=v(t.items.type,t.items.format);return r.export="dictionary",r.type=e.type,r.base=e.base,r.template=e.template,r.imports.push(...e.imports),r.default=C(t,r),r}let o=t.schema;if(o){if((null===(n=o.$ref)||void 0===n?void 0:n.startsWith("#/parameters/"))&&(o=O(e,o)),o.$ref){const e=v(o.$ref);return r.export="reference",r.type=e.type,r.base=e.base,r.template=e.template,r.imports.push(...e.imports),r.default=C(t,r),r}{const n=k(e,o);return r.export=n.export,r.type=n.type,r.base=n.base,r.template=n.template,r.link=n.link,r.imports.push(...n.imports),r.enum.push(...n.enum),r.enums.push(...n.enums),r.properties.push(...n.properties),r.default=C(t,r),r}}if(t.type){const e=v(t.type,t.format);return r.export="generic",r.type=e.type,r.base=e.base,r.template=e.template,r.imports.push(...e.imports),r.default=C(t,r),r}return r})(e,r);if("api-version"!==o.prop)switch(o.in){case"path":n.parametersPath.push(o),n.parameters.push(o),n.imports.push(...o.imports);break;case"query":n.parametersQuery.push(o),n.parameters.push(o),n.imports.push(...o.imports);break;case"header":n.parametersHeader.push(o),n.parameters.push(o),n.imports.push(...o.imports);break;case"formData":n.parametersForm.push(o),n.parameters.push(o),n.imports.push(...o.imports);break;case"body":n.parametersBody=o,n.parameters.push(o),n.imports.push(...o.imports)}})),n},j=(e,t,n)=>{var r;const o={in:"response",name:"",code:n,description:t.description||null,export:"generic",type:"any",base:"any",template:null,link:null,isDefinition:!1,isReadOnly:!1,isRequired:!1,isNullable:!1,imports:[],enum:[],enums:[],properties:[]};let a=t.schema;if(a){if((null===(r=a.$ref)||void 0===r?void 0:r.startsWith("#/responses/"))&&(a=O(e,a)),a.$ref){const e=v(a.$ref);return o.export="reference",o.type=e.type,o.base=e.base,o.template=e.template,o.imports.push(...e.imports),o}{const t=k(e,a);return o.export=t.export,o.type=t.type,o.base=t.base,o.template=t.template,o.link=t.link,o.isReadOnly=t.isReadOnly,o.isRequired=t.isRequired,o.isNullable=t.isNullable,o.format=t.format,o.maximum=t.maximum,o.exclusiveMaximum=t.exclusiveMaximum,o.minimum=t.minimum,o.exclusiveMinimum=t.exclusiveMinimum,o.multipleOf=t.multipleOf,o.maxLength=t.maxLength,o.minLength=t.minLength,o.maxItems=t.maxItems,o.minItems=t.minItems,o.uniqueItems=t.uniqueItems,o.maxProperties=t.maxProperties,o.minProperties=t.minProperties,o.pattern=p(t.pattern),o.imports.push(...t.imports),o.enum.push(...t.enum),o.enums.push(...t.enums),o.properties.push(...t.properties),o}}if(t.headers)for(const e in t.headers)if(t.headers.hasOwnProperty(e))return o.in="header",o.name=e,o.type="string",o.base="string",o;return o},H=e=>{if("default"===e)return 200;if(/[0-9]+/g.test(e)){const t=parseInt(e);if(Number.isInteger(t))return Math.abs(t)}return null},E=(e,t)=>{const n=e.type===t.type&&e.base===t.base&&e.template===t.template;return n&&e.link&&t.link?E(e.link,t.link):n},D=(e,t)=>{const n=e.isRequired&&void 0===e.default,r=t.isRequired&&void 0===t.default;return n&&!r?-1:r&&!n?1:0},T=(e,t,n,r,o,a)=>{const l=(e=>{const t=e.replace(/^[^a-zA-Z]+/g,"").replace(/[^\w\-]+/g,"-").trim();return i.default(t,{pascalCase:!0})})(r),s=((e,t,n)=>{if(n)return i.default(n.replace(/^[^a-zA-Z]+/g,"").replace(/[^\w\-]+/g,"-").trim());const r=e.replace(/[^/]*?{api-version}.*?\//g,"").replace(/{(.*?)}/g,"").replace(/\//g,"-");return i.default(`${t}-${r}`)})(t,n,o.operationId),u={service:l,name:s,summary:o.summary||null,description:o.description||null,deprecated:!0===o.deprecated,method:n.toUpperCase(),path:t,parameters:[...a.parameters],parametersPath:[...a.parametersPath],parametersQuery:[...a.parametersQuery],parametersForm:[...a.parametersForm],parametersHeader:[...a.parametersHeader],parametersCookie:[...a.parametersCookie],parametersBody:a.parametersBody,imports:[],errors:[],results:[],responseHeader:null};if(o.parameters){const t=A(e,o.parameters);u.imports.push(...t.imports),u.parameters.push(...t.parameters),u.parametersPath.push(...t.parametersPath),u.parametersQuery.push(...t.parametersQuery),u.parametersForm.push(...t.parametersForm),u.parametersHeader.push(...t.parametersHeader),u.parametersCookie.push(...t.parametersCookie),u.parametersBody=t.parametersBody}if(o.responses){const t=((e,t)=>{const n=[];for(const r in t)if(t.hasOwnProperty(r)){const o=t[r],a=O(e,o),l=H(r);if(l){const t=j(e,a,l);n.push(t)}}return n.sort(((e,t)=>e.codet.code?1:0))})(e,o.responses),n=(e=>{const t=[];return e.forEach((e=>{const{code:n}=e;n&&204!==n&&n>=200&&n<300&&t.push(e)})),t.length||t.push({in:"response",name:"",code:200,description:"",export:"generic",type:"void",base:"void",template:null,link:null,isDefinition:!1,isReadOnly:!1,isRequired:!1,isNullable:!1,imports:[],enum:[],enums:[],properties:[]}),t.filter(((e,t,n)=>n.findIndex((t=>E(t,e)))===t))})(t);u.errors=(e=>e.filter((e=>e.code>=300&&e.description)).map((e=>({code:e.code,description:e.description}))))(t),u.responseHeader=(e=>{const t=e.find((e=>"header"===e.in));return t?t.name:null})(n),n.forEach((e=>{u.results.push(e),u.imports.push(...e.imports)}))}return u.parameters=u.parameters.sort(D),u},I=e=>{const t=((e="1.0")=>String(e).replace(/^v/gi,""))(e.info.version),n=(e=>{var t;const n=(null===(t=e.schemes)||void 0===t?void 0:t[0])||"http",r=e.host,o=e.basePath||"";return(r?`${n}://${r}${o}`:o).replace(/\/$/g,"")})(e),r=(e=>{const t=[];for(const n in e.definitions)if(e.definitions.hasOwnProperty(n)){const r=e.definitions[n],o=v(n),a=k(e,r,!0,o.base);t.push(a)}return t})(e),o=(e=>{var t;const n=new Map;for(const r in e.paths)if(e.paths.hasOwnProperty(r)){const o=e.paths[r],a=A(e,o.parameters||[]);for(const l in o)if(o.hasOwnProperty(l))switch(l){case"get":case"put":case"post":case"delete":case"options":case"head":case"patch":const s=o[l];((null===(t=s.tags)||void 0===t?void 0:t.length)?s.tags.filter(R):["Default"]).forEach((t=>{const o=T(e,r,l,t,s,a),i=n.get(o.service)||{name:o.service,operations:[],imports:[]};i.operations.push(o),i.imports.push(...o.imports),n.set(o.service,i)}))}}return Array.from(n.values())})(e);return{version:t,server:n,models:r,services:o}},S=e=>e.trim().replace(/^#\/components\/schemas\//,"").replace(/^#\/components\/responses\//,"").replace(/^#\/components\/parameters\//,"").replace(/^#\/components\/examples\//,"").replace(/^#\/components\/requestBodies\//,"").replace(/^#\/components\/headers\//,"").replace(/^#\/components\/securitySchemes\//,"").replace(/^#\/components\/links\//,"").replace(/^#\/components\/callbacks\//,""),_=(e,t)=>{if(e.mapping){const n=(e=>{const t={};for(const n in e)t[e[n]]=n;return t})(e.mapping),r=Object.keys(n).find((e=>S(e)==t.name));if(r&&n[r])return n[r]}return t.name},N=e=>{if(e||""===e){if(!/^[a-zA-Z_$][\w$]+$/g.test(e))return`'${e}'`}return e},B=e=>null!=e&&""!==e,$=new Map([["file","binary"],["any","any"],["object","any"],["array","any[]"],["boolean","boolean"],["byte","number"],["int","number"],["integer","number"],["float","number"],["double","number"],["short","number"],["long","number"],["number","number"],["char","string"],["date","string"],["date-time","string"],["password","string"],["string","string"],["void","void"],["null","null"]]),M=(e,t)=>"binary"===t?"binary":$.get(e),L=e=>e.replace(/^[^a-zA-Z_$]+/g,"").replace(/[^\w$]+/g,"_"),F=(e="any",t)=>{const n={type:"any",base:"any",template:null,imports:[],isNullable:!1};if(Array.isArray(e)){const r=e.filter((e=>"null"!==e)).map((e=>M(e,t))).filter(B).join(" | ");return n.type=r,n.base=r,n.isNullable=e.includes("null"),n}const r=M(e,t);if(r)return n.type=r,n.base=r,n;const o=decodeURIComponent(S(e));if(/\[.*\]$/g.test(o)){const e=o.match(/(.*?)\[(.*)\]$/);if(null==e?void 0:e.length){const t=F(L(e[1])),r=F(L(e[2]));return"any[]"===t.type?(n.type=`${r.type}[]`,n.base=`${r.type}`,t.imports=[]):r.type?(n.type=`${t.type}<${r.type}>`,n.base=t.type,n.template=r.type):(n.type=t.type,n.base=t.type,n.template=t.type),n.imports.push(...t.imports),n.imports.push(...r.imports),n}}if(o){const e=L(o);return n.type=e,n.base=e,n.imports.push(e),n}return n},W=(e,t,n,r)=>{var o;const a=[],l=((e,t)=>{var n;if(e.components&&t)for(const r in e.components.schemas)if(e.components.schemas.hasOwnProperty(r)){const o=e.components.schemas[r];if(o.discriminator&&(null===(n=o.oneOf)||void 0===n?void 0:n.length)&&o.oneOf.some((e=>e.$ref&&S(e.$ref)==t.name)))return o.discriminator}})(e,r);for(const s in t.properties)if(t.properties.hasOwnProperty(s)){const i=t.properties[s],u=!!(null===(o=t.required)||void 0===o?void 0:o.includes(s)),c={name:N(s),description:i.description||null,deprecated:!0===i.deprecated,isDefinition:!1,isReadOnly:!0===i.readOnly,isRequired:u,format:i.format,maximum:i.maximum,exclusiveMaximum:i.exclusiveMaximum,minimum:i.minimum,exclusiveMinimum:i.exclusiveMinimum,multipleOf:i.multipleOf,maxLength:i.maxLength,minLength:i.minLength,maxItems:i.maxItems,minItems:i.minItems,uniqueItems:i.uniqueItems,maxProperties:i.maxProperties,minProperties:i.minProperties,pattern:p(i.pattern)};if(r&&(null==l?void 0:l.propertyName)==s)a.push({export:"reference",type:"string",base:`'${_(l,r)}'`,template:null,isNullable:!0===i.nullable,link:null,imports:[],enum:[],enums:[],properties:[],...c});else if(i.$ref){const e=F(i.$ref);a.push({export:"reference",type:e.type,base:e.base,template:e.template,link:null,isNullable:e.isNullable||!0===i.nullable,imports:e.imports,enum:[],enums:[],properties:[],...c})}else{const t=n(e,i);a.push({export:t.export,type:t.type,base:t.base,template:t.template,link:t.link,isNullable:t.isNullable||!0===i.nullable,imports:t.imports,enum:t.enum,enums:t.enums,properties:t.properties,...c})}}return a},V=/~1/g,U=/~0/g,Q=(e,t)=>{if(t.$ref){const n=t.$ref.replace(/^#/g,"").split("/").filter((e=>e));let r=e;return n.forEach((e=>{const n=decodeURIComponent(e.replace(V,"/").replace(U,"~"));if(!r.hasOwnProperty(n))throw new Error(`Could not find reference: "${t.$ref}"`);r=r[n]})),r}return t},z=(e,t,n,r,o)=>{const a={type:r,imports:[],enums:[],properties:[]},l=[];if(n.map((t=>o(e,t))).filter((e=>{const t=e.properties.length,n=e.enums.length,r="any"===e.type,o="dictionary"===e.export;return!(r&&!t&&!n)||o})).forEach((e=>{a.imports.push(...e.imports),a.enums.push(...e.enums),a.properties.push(e)})),t.required){const r=((e,t,n,r)=>n.reduce(((t,n)=>{if(n.$ref){const o=Q(e,n);return[...t,...r(e,o).properties]}return[...t,...r(e,n).properties]}),[]).filter((e=>!e.isRequired&&t.includes(e.name))).map((e=>({...e,isRequired:!0}))))(e,t.required,n,o);r.forEach((e=>{a.imports.push(...e.imports),a.enums.push(...e.enums)})),l.push(...r)}if(t.properties){const n=W(e,t,o);n.forEach((e=>{a.imports.push(...e.imports),a.enums.push(...e.enums),"enum"===e.export&&a.enums.push(e)})),l.push(...n)}return l.length&&a.properties.push({name:"properties",export:"interface",type:"any",base:"any",template:null,link:null,description:"",isDefinition:!1,isReadOnly:!1,isNullable:!1,isRequired:!1,imports:[],enum:[],enums:[],properties:l}),a},J=(e,t)=>{var n;if(void 0===e.default)return;if(null===e.default)return"null";switch(e.type||typeof e.default){case"int":case"integer":case"number":return"enum"===(null==t?void 0:t.export)&&(null===(n=t.enum)||void 0===n?void 0:n[e.default])?t.enum[e.default].value:e.default;case"boolean":return JSON.stringify(e.default);case"string":return`'${e.default}'`;case"object":try{return JSON.stringify(e.default,null,4)}catch(e){}}},G=(e,t,n=!1,r="")=>{var o,a,l;const s={name:r,export:"interface",type:"any",base:"any",template:null,link:null,description:t.description||null,deprecated:!0===t.deprecated,isDefinition:n,isReadOnly:!0===t.readOnly,isNullable:!0===t.nullable,isRequired:!1,format:t.format,maximum:t.maximum,exclusiveMaximum:t.exclusiveMaximum,minimum:t.minimum,exclusiveMinimum:t.exclusiveMinimum,multipleOf:t.multipleOf,maxLength:t.maxLength,minLength:t.minLength,maxItems:t.maxItems,minItems:t.minItems,uniqueItems:t.uniqueItems,maxProperties:t.maxProperties,minProperties:t.minProperties,pattern:p(t.pattern),imports:[],enum:[],enums:[],properties:[]};if(t.$ref){const e=F(t.$ref);return s.export="reference",s.type=e.type,s.base=e.base,s.template=e.template,s.imports.push(...e.imports),s.default=J(t,s),s}if(t.enum&&"boolean"!==t.type){const e=(i=t.enum,Array.isArray(i)?i.filter(((e,t,n)=>n.indexOf(e)===t)).filter((e=>"number"==typeof e||"string"==typeof e)).map((e=>"number"==typeof e?{name:`'_${e}'`,value:String(e),type:"number",description:null}:{name:String(e).replace(/\W+/g,"_").replace(/^(\d+)/g,"_$1").replace(/([a-z])([A-Z]+)/g,"$1_$2").toUpperCase(),value:`'${e.replace(/'/g,"\\'")}'`,type:"string",description:null})):[]),n=((e,t)=>{var n,r;const o=null===(n=t["x-enum-varnames"])||void 0===n?void 0:n.filter(c),a=null===(r=t["x-enum-descriptions"])||void 0===r?void 0:r.filter(c);return e.map(((e,t)=>({name:(null==o?void 0:o[t])||e.name,description:(null==a?void 0:a[t])||e.description,value:e.value,type:e.type})))})(e,t);if(n.length)return s.export="enum",s.type="string",s.base="string",s.enum.push(...n),s.default=J(t,s),s}var i;if("array"===t.type&&t.items){if(t.items.$ref){const e=F(t.items.$ref);return s.export="array",s.type=e.type,s.base=e.base,s.template=e.template,s.imports.push(...e.imports),s.default=J(t,s),s}{const n=G(e,t.items);return s.export="array",s.type=n.type,s.base=n.base,s.template=n.template,s.link=n,s.imports.push(...n.imports),s.default=J(t,s),s}}if("object"===t.type&&"object"==typeof t.additionalProperties){if(t.additionalProperties.$ref){const e=F(t.additionalProperties.$ref);return s.export="dictionary",s.type=e.type,s.base=e.base,s.template=e.template,s.imports.push(...e.imports),s.default=J(t,s),s}{const n=G(e,t.additionalProperties);return s.export="dictionary",s.type=n.type,s.base=n.base,s.template=n.template,s.link=n,s.imports.push(...n.imports),s.default=J(t,s),s}}if(null===(o=t.oneOf)||void 0===o?void 0:o.length){const n=z(e,t,t.oneOf,"one-of",G);return s.export=n.type,s.imports.push(...n.imports),s.properties.push(...n.properties),s.enums.push(...n.enums),s}if(null===(a=t.anyOf)||void 0===a?void 0:a.length){const n=z(e,t,t.anyOf,"any-of",G);return s.export=n.type,s.imports.push(...n.imports),s.properties.push(...n.properties),s.enums.push(...n.enums),s}if(null===(l=t.allOf)||void 0===l?void 0:l.length){const n=z(e,t,t.allOf,"all-of",G);return s.export=n.type,s.imports.push(...n.imports),s.properties.push(...n.properties),s.enums.push(...n.enums),s}if("object"===t.type){if(s.export="interface",s.type="any",s.base="any",s.default=J(t,s),t.properties){W(e,t,G,s).forEach((e=>{s.imports.push(...e.imports),s.enums.push(...e.enums),s.properties.push(e),"enum"===e.export&&s.enums.push(e)}))}return s}if(t.type){const e=F(t.type,t.format);return s.export="generic",s.type=e.type,s.base=e.base,s.template=e.template,s.isNullable=e.isNullable||s.isNullable,s.imports.push(...e.imports),s.default=J(t,s),s}return s},Z=/^(arguments|break|case|catch|class|const|continue|debugger|default|delete|do|else|enum|eval|export|extends|false|finally|for|function|if|implements|import|in|instanceof|interface|let|new|null|package|private|protected|public|return|static|super|switch|this|throw|true|try|typeof|var|void|while|with|yield)$/g,K=e=>{const t=e.replace(/^[^a-zA-Z]+/g,"").replace(/[^\w\-]+/g,"-").trim();return i.default(t).replace(Z,"_$1")},X=(e,t)=>{const n={imports:[],parameters:[],parametersPath:[],parametersQuery:[],parametersForm:[],parametersCookie:[],parametersHeader:[],parametersBody:null};return t.forEach((t=>{const r=Q(e,t),o=((e,t)=>{var n;const r={in:t.in,prop:t.name,export:"interface",name:K(t.name),type:"any",base:"any",template:null,link:null,description:t.description||null,deprecated:!0===t.deprecated,isDefinition:!1,isReadOnly:!1,isRequired:!0===t.required,isNullable:!0===t.nullable,imports:[],enum:[],enums:[],properties:[],mediaType:null};if(t.$ref){const e=F(t.$ref);return r.export="reference",r.type=e.type,r.base=e.base,r.template=e.template,r.imports.push(...e.imports),r}let o=t.schema;if(o){if((null===(n=o.$ref)||void 0===n?void 0:n.startsWith("#/components/parameters/"))&&(o=Q(e,o)),o.$ref){const e=F(o.$ref);return r.export="reference",r.type=e.type,r.base=e.base,r.template=e.template,r.imports.push(...e.imports),r.default=J(o),r}{const t=G(e,o);return r.export=t.export,r.type=t.type,r.base=t.base,r.template=t.template,r.link=t.link,r.isReadOnly=t.isReadOnly,r.isRequired=r.isRequired||t.isRequired,r.isNullable=r.isNullable||t.isNullable,r.format=t.format,r.maximum=t.maximum,r.exclusiveMaximum=t.exclusiveMaximum,r.minimum=t.minimum,r.exclusiveMinimum=t.exclusiveMinimum,r.multipleOf=t.multipleOf,r.maxLength=t.maxLength,r.minLength=t.minLength,r.maxItems=t.maxItems,r.minItems=t.minItems,r.uniqueItems=t.uniqueItems,r.maxProperties=t.maxProperties,r.minProperties=t.minProperties,r.pattern=p(t.pattern),r.default=t.default,r.imports.push(...t.imports),r.enum.push(...t.enum),r.enums.push(...t.enums),r.properties.push(...t.properties),r}}return r})(e,r);if("api-version"!==o.prop)switch(r.in){case"path":n.parametersPath.push(o),n.parameters.push(o),n.imports.push(...o.imports);break;case"query":n.parametersQuery.push(o),n.parameters.push(o),n.imports.push(...o.imports);break;case"formData":n.parametersForm.push(o),n.parameters.push(o),n.imports.push(...o.imports);break;case"cookie":n.parametersCookie.push(o),n.parameters.push(o),n.imports.push(...o.imports);break;case"header":n.parametersHeader.push(o),n.parameters.push(o),n.imports.push(...o.imports)}})),n},Y=["application/json-patch+json","application/json","application/x-www-form-urlencoded","text/json","text/plain","multipart/form-data","multipart/mixed","multipart/related","multipart/batch"],ee=(e,t)=>{const n=Object.keys(t).filter((e=>{const t=e.split(";")[0].trim();return Y.includes(t)})).find((e=>{var n;return B(null===(n=t[e])||void 0===n?void 0:n.schema)}));if(n)return{mediaType:n,schema:t[n].schema};const r=Object.keys(t).find((e=>{var n;return B(null===(n=t[e])||void 0===n?void 0:n.schema)}));return r?{mediaType:r,schema:t[r].schema}:null},te=(e,t,n)=>{var r;const o={in:"response",name:"",code:n,description:t.description||null,export:"generic",type:"any",base:"any",template:null,link:null,isDefinition:!1,isReadOnly:!1,isRequired:!1,isNullable:!1,imports:[],enum:[],enums:[],properties:[]};if(t.content){const n=ee(0,t.content);if(n){if((null===(r=n.schema.$ref)||void 0===r?void 0:r.startsWith("#/components/responses/"))&&(n.schema=Q(e,n.schema)),n.schema.$ref){const e=F(n.schema.$ref);return o.export="reference",o.type=e.type,o.base=e.base,o.template=e.template,o.imports.push(...e.imports),o}{const t=G(e,n.schema);return o.export=t.export,o.type=t.type,o.base=t.base,o.template=t.template,o.link=t.link,o.isReadOnly=t.isReadOnly,o.isRequired=t.isRequired,o.isNullable=t.isNullable,o.format=t.format,o.maximum=t.maximum,o.exclusiveMaximum=t.exclusiveMaximum,o.minimum=t.minimum,o.exclusiveMinimum=t.exclusiveMinimum,o.multipleOf=t.multipleOf,o.maxLength=t.maxLength,o.minLength=t.minLength,o.maxItems=t.maxItems,o.minItems=t.minItems,o.uniqueItems=t.uniqueItems,o.maxProperties=t.maxProperties,o.minProperties=t.minProperties,o.pattern=p(t.pattern),o.imports.push(...t.imports),o.enum.push(...t.enum),o.enums.push(...t.enums),o.properties.push(...t.properties),o}}}if(t.headers)for(const e in t.headers)if(t.headers.hasOwnProperty(e))return o.in="header",o.name=e,o.type="string",o.base="string",o;return o},ne=e=>{if("default"===e)return 200;if(/[0-9]+/g.test(e)){const t=parseInt(e);if(Number.isInteger(t))return Math.abs(t)}return null},re=(e,t)=>{const n=e.type===t.type&&e.base===t.base&&e.template===t.template;return n&&e.link&&t.link?re(e.link,t.link):n},oe=(e,t)=>{const n=e.isRequired&&void 0===e.default,r=t.isRequired&&void 0===t.default;return n&&!r?-1:r&&!n?1:0},ae=(e,t,n,r,o,a)=>{const l=(e=>{const t=e.replace(/^[^a-zA-Z]+/g,"").replace(/[^\w\-]+/g,"-").trim();return i.default(t,{pascalCase:!0})})(r),s=((e,t,n)=>{if(n)return i.default(n.replace(/^[^a-zA-Z]+/g,"").replace(/[^\w\-]+/g,"-").trim());const r=e.replace(/[^/]*?{api-version}.*?\//g,"").replace(/{(.*?)}/g,"").replace(/\//g,"-");return i.default(`${t}-${r}`)})(t,n,o.operationId),u={service:l,name:s,summary:o.summary||null,description:o.description||null,deprecated:!0===o.deprecated,method:n.toUpperCase(),path:t,parameters:[...a.parameters],parametersPath:[...a.parametersPath],parametersQuery:[...a.parametersQuery],parametersForm:[...a.parametersForm],parametersHeader:[...a.parametersHeader],parametersCookie:[...a.parametersCookie],parametersBody:a.parametersBody,imports:[],errors:[],results:[],responseHeader:null};if(o.parameters){const t=X(e,o.parameters);u.imports.push(...t.imports),u.parameters.push(...t.parameters),u.parametersPath.push(...t.parametersPath),u.parametersQuery.push(...t.parametersQuery),u.parametersForm.push(...t.parametersForm),u.parametersHeader.push(...t.parametersHeader),u.parametersCookie.push(...t.parametersCookie),u.parametersBody=t.parametersBody}if(o.requestBody){const t=((e,t)=>{const n={in:"body",export:"interface",prop:"requestBody",name:"requestBody",type:"any",base:"any",template:null,link:null,description:t.description||null,default:void 0,isDefinition:!1,isReadOnly:!1,isRequired:!0===t.required,isNullable:!0===t.nullable,imports:[],enum:[],enums:[],properties:[],mediaType:null};if(t.content){const r=ee(0,t.content);if(r){switch(n.mediaType=r.mediaType,n.mediaType){case"application/x-www-form-urlencoded":case"multipart/form-data":n.in="formData",n.name="formData",n.prop="formData"}if(r.schema.$ref){const e=F(r.schema.$ref);return n.export="reference",n.type=e.type,n.base=e.base,n.template=e.template,n.imports.push(...e.imports),n}{const t=G(e,r.schema);return n.export=t.export,n.type=t.type,n.base=t.base,n.template=t.template,n.link=t.link,n.isReadOnly=t.isReadOnly,n.isRequired=n.isRequired||t.isRequired,n.isNullable=n.isNullable||t.isNullable,n.format=t.format,n.maximum=t.maximum,n.exclusiveMaximum=t.exclusiveMaximum,n.minimum=t.minimum,n.exclusiveMinimum=t.exclusiveMinimum,n.multipleOf=t.multipleOf,n.maxLength=t.maxLength,n.minLength=t.minLength,n.maxItems=t.maxItems,n.minItems=t.minItems,n.uniqueItems=t.uniqueItems,n.maxProperties=t.maxProperties,n.minProperties=t.minProperties,n.pattern=p(t.pattern),n.imports.push(...t.imports),n.enum.push(...t.enum),n.enums.push(...t.enums),n.properties.push(...t.properties),n}}}return n})(e,Q(e,o.requestBody));u.imports.push(...t.imports),u.parameters.push(t),u.parametersBody=t}if(o.responses){const t=((e,t)=>{const n=[];for(const r in t)if(t.hasOwnProperty(r)){const o=t[r],a=Q(e,o),l=ne(r);if(l){const t=te(e,a,l);n.push(t)}}return n.sort(((e,t)=>e.codet.code?1:0))})(e,o.responses),n=(e=>{const t=[];return e.forEach((e=>{const{code:n}=e;n&&204!==n&&n>=200&&n<300&&t.push(e)})),t.length||t.push({in:"response",name:"",code:200,description:"",export:"generic",type:"void",base:"void",template:null,link:null,isDefinition:!1,isReadOnly:!1,isRequired:!1,isNullable:!1,imports:[],enum:[],enums:[],properties:[]}),t.filter(((e,t,n)=>n.findIndex((t=>re(t,e)))===t))})(t);u.errors=(e=>e.filter((e=>e.code>=300&&e.description)).map((e=>({code:e.code,description:e.description}))))(t),u.responseHeader=(e=>{const t=e.find((e=>"header"===e.in));return t?t.name:null})(n),n.forEach((e=>{u.results.push(e),u.imports.push(...e.imports)}))}return u.parameters=u.parameters.sort(oe),u},le=e=>{const t=((e="1.0")=>String(e).replace(/^v/gi,""))(e.info.version),n=(e=>{var t;const n=null===(t=e.servers)||void 0===t?void 0:t[0],r=(null==n?void 0:n.variables)||{};let o=(null==n?void 0:n.url)||"";for(const e in r)r.hasOwnProperty(e)&&(o=o.replace(`{${e}}`,r[e].default));return o.replace(/\/$/g,"")})(e),r=(e=>{const t=[];if(e.components)for(const n in e.components.schemas)if(e.components.schemas.hasOwnProperty(n)){const r=e.components.schemas[n],o=F(n),a=G(e,r,!0,o.base);t.push(a)}return t})(e),o=(e=>{var t;const n=new Map;for(const r in e.paths)if(e.paths.hasOwnProperty(r)){const o=e.paths[r],a=X(e,o.parameters||[]);for(const l in o)if(o.hasOwnProperty(l))switch(l){case"get":case"put":case"post":case"delete":case"options":case"head":case"patch":const s=o[l];((null===(t=s.tags)||void 0===t?void 0:t.length)?s.tags.filter(R):["Default"]).forEach((t=>{const o=ae(e,r,l,t,s,a),i=n.get(o.service)||{name:o.service,operations:[],imports:[]};i.operations.push(o),i.imports.push(...o.imports),n.set(o.service,i)}))}}return Array.from(n.values())})(e);return{version:t,server:n,models:r,services:o}};var se;!function(e){e[e.V2=2]="V2",e[e.V3=3]="V3"}(se||(se={}));const ie=e=>e.enum.filter(((e,t,n)=>n.findIndex((t=>t.name===e.name))===t)),ue=e=>e.enums.filter(((e,t,n)=>n.findIndex((t=>t.name===e.name))===t)),pe=(e,t)=>{const n=e.toLowerCase(),r=t.toLowerCase();return n.localeCompare(r,"en")},ce=e=>e.imports.filter(R).sort(pe).filter((t=>e.name!==t)),me=(e,t)=>{const n=[];return e.map(t).forEach((e=>{n.push(...e)})),n},de=e=>{const t={...e};return t.operations=(e=>{const t=new Map;return e.operations.map((e=>{const n={...e};n.imports.push(...me(n.parameters,(e=>e.imports))),n.imports.push(...me(n.results,(e=>e.imports)));const r=n.name,o=t.get(r)||0;return o>0&&(n.name=`${r}${o}`),t.set(r,o+1),n}))})(t),t.operations.forEach((e=>{t.imports.push(...e.imports)})),t.imports=(e=>e.imports.filter(R).sort(pe))(t),t},fe=e=>({...e,models:e.models.map((e=>(e=>({...e,imports:ce(e),enums:ue(e),enum:ie(e)}))(e))),services:e.services.map((e=>de(e)))});var he="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},ye={exports:{}},ve={},ge={__esModule:!0};ge.extend=ke,ge.indexOf=function(e,t){for(var n=0,r=e.length;n":">",'"':""","'":"'","`":"`","=":"="},be=/[&<>"'`=]/g,Oe=/[&<>"'`=]/;function xe(e){return Pe[e]}function ke(e){for(var t=1;t0?(r.ids&&(r.ids=[r.name]),e.helpers.each(t,r)):o(this);if(r.data&&r.ids){var l=n.createFrame(r.data);l.contextPath=n.appendContextPath(r.data.contextPath,r.name),r={data:l}}return a(t,r)}))},e.exports=t.default}(je,je.exports);var He={exports:{}};!function(e,t){t.__esModule=!0;var n,r=ge,o=(n=qe.exports)&&n.__esModule?n:{default:n};t.default=function(e){e.registerHelper("each",(function(e,t){if(!t)throw new o.default("Must pass iterator to #each");var n,a=t.fn,l=t.inverse,s=0,i="",u=void 0,p=void 0;function c(t,n,o){u&&(u.key=t,u.index=n,u.first=0===n,u.last=!!o,p&&(u.contextPath=p+t)),i+=a(e[t],{data:u,blockParams:r.blockParams([e[t],t],[p+t,null])})}if(t.data&&t.ids&&(p=r.appendContextPath(t.data.contextPath,t.ids[0])+"."),r.isFunction(e)&&(e=e.call(this)),t.data&&(u=r.createFrame(t.data)),e&&"object"==typeof e)if(r.isArray(e))for(var m=e.length;s=0?t:parseInt(e,10)}return e},log:function(e){if(e=r.lookupLevel(e),"undefined"!=typeof console&&r.lookupLevel(r.level)<=e){var t=r.methodMap[e];console[t]||(t="log");for(var n=arguments.length,o=Array(n>1?n-1:0),a=1;a= 2.0.0-beta.1",7:">= 4.0.0 <4.3.0",8:">= 4.3.0"};function ut(e,t,n){this.helpers=e||{},this.partials=t||{},this.decorators=n||{},at.registerDefaultHelpers(this),lt.registerDefaultDecorators(this)}ut.prototype={constructor:ut,logger:st.default,log:st.default.log,registerHelper:function(e,t){if("[object Object]"===rt.toString.call(e)){if(t)throw new ot.default("Arg not supported with multiple helpers");rt.extend(this.helpers,e)}else this.helpers[e]=t},unregisterHelper:function(e){delete this.helpers[e]},registerPartial:function(e,t){if("[object Object]"===rt.toString.call(e))rt.extend(this.partials,e);else{if(void 0===t)throw new ot.default('Attempting to register a partial called "'+e+'" as undefined');this.partials[e]=t}},unregisterPartial:function(e){delete this.partials[e]},registerDecorator:function(e,t){if("[object Object]"===rt.toString.call(e)){if(t)throw new ot.default("Arg not supported with multiple decorators");rt.extend(this.decorators,e)}else this.decorators[e]=t},unregisterDecorator:function(e){delete this.decorators[e]},resetLoggedPropertyAccesses:function(){it.resetLoggedProperties()}};var pt=st.default.log;ve.log=pt,ve.createFrame=rt.createFrame,ve.logger=st.default;var ct={exports:{}};!function(e,t){function n(e){this.string=e}t.__esModule=!0,n.prototype.toString=n.prototype.toHTML=function(){return""+this.string},t.default=n,e.exports=t.default}(ct,ct.exports);var mt={},dt={};dt.__esModule=!0,dt.wrapHelper=function(e,t){if("function"!=typeof e)return e;return function(){return arguments[arguments.length-1]=t(arguments[arguments.length-1]),e.apply(this,arguments)}},mt.__esModule=!0,mt.checkRevision=function(e){var t=e&&e[0]||1,n=yt.COMPILER_REVISION;if(t>=yt.LAST_COMPATIBLE_COMPILER_REVISION&&t<=yt.COMPILER_REVISION)return;if(t BaseHttpRequest;\n\nexport class "+(null!=(a=s(l(t,"clientName",{start:{line:54,column:16},end:{line:54,column:26}}),t))?a:"")+" {\n\n"+(null!=(a=u(n,"each").call(i,u(t,"services"),{name:"each",hash:{},fn:e.program(12,o,0),inverse:e.noop,data:o,loc:{start:{line:56,column:1},end:{line:58,column:10}}}))?a:"")+"\n\tpublic readonly request: BaseHttpRequest;\n\n\tconstructor(config?: Partial, HttpRequest: HttpRequestConstructor = "+(null!=(a=s(l(t,"httpRequest",{start:{line:62,column:87},end:{line:62,column:98}}),t))?a:"")+") {\n\t\tthis.request = new HttpRequest({\n\t\t\tBASE: config?.BASE ?? '"+(null!=(a=s(l(t,"server",{start:{line:64,column:29},end:{line:64,column:35}}),t))?a:"")+"',\n\t\t\tVERSION: config?.VERSION ?? '"+(null!=(a=s(l(t,"version",{start:{line:65,column:35},end:{line:65,column:42}}),t))?a:"")+"',\n\t\t\tWITH_CREDENTIALS: config?.WITH_CREDENTIALS ?? false,\n\t\t\tCREDENTIALS: config?.CREDENTIALS ?? 'include',\n\t\t\tTOKEN: config?.TOKEN,\n\t\t\tUSERNAME: config?.USERNAME,\n\t\t\tPASSWORD: config?.PASSWORD,\n\t\t\tHEADERS: config?.HEADERS,\n\t\t\tENCODE_PATH: config?.ENCODE_PATH,\n\t\t});\n\n"+(null!=(a=u(n,"each").call(i,u(t,"services"),{name:"each",hash:{},fn:e.program(14,o,0),inverse:e.noop,data:o,loc:{start:{line:75,column:2},end:{line:77,column:11}}}))?a:"")+"\t}\n}\n"},12:function(e,t,n,r,o){var a,l=e.strict,s=e.lambda,i=e.lookupProperty||function(e,t){if(Object.prototype.hasOwnProperty.call(e,t))return e[t]};return"\tpublic readonly "+(null!=(a=i(n,"camelCase").call(null!=t?t:e.nullContext||{},i(t,"name"),{name:"camelCase",hash:{},data:o,loc:{start:{line:57,column:17},end:{line:57,column:37}}}))?a:"")+": "+(null!=(a=s(l(t,"name",{start:{line:57,column:42},end:{line:57,column:46}}),t))?a:"")+(null!=(a=s(l(i(o,"root"),"postfix",{start:{line:57,column:52},end:{line:57,column:65}}),t))?a:"")+";\n"},14:function(e,t,n,r,o){var a,l=e.strict,s=e.lambda,i=e.lookupProperty||function(e,t){if(Object.prototype.hasOwnProperty.call(e,t))return e[t]};return"\t\tthis."+(null!=(a=i(n,"camelCase").call(null!=t?t:e.nullContext||{},i(t,"name"),{name:"camelCase",hash:{},data:o,loc:{start:{line:76,column:7},end:{line:76,column:27}}}))?a:"")+" = new "+(null!=(a=s(l(t,"name",{start:{line:76,column:37},end:{line:76,column:41}}),t))?a:"")+(null!=(a=s(l(i(o,"root"),"postfix",{start:{line:76,column:47},end:{line:76,column:60}}),t))?a:"")+"(this.request);\n"},compiler:[8,">= 4.3.0"],main:function(e,t,n,r,o){var a,l=null!=t?t:e.nullContext||{},s=e.lookupProperty||function(e,t){if(Object.prototype.hasOwnProperty.call(e,t))return e[t]};return(null!=(a=e.invokePartial(s(r,"header"),t,{name:"header",data:o,helpers:n,partials:r,decorators:e.decorators}))?a:"")+"\n"+(null!=(a=s(n,"equals").call(l,s(s(o,"root"),"httpClient"),"angular",{name:"equals",hash:{},fn:e.program(1,o,0),inverse:e.program(3,o,0),data:o,loc:{start:{line:3,column:0},end:{line:15,column:11}}}))?a:"")+"\n"+(null!=(a=s(n,"if").call(l,s(t,"services"),{name:"if",hash:{},fn:e.program(5,o,0),inverse:e.noop,data:o,loc:{start:{line:17,column:0},end:{line:21,column:7}}}))?a:"")+"\n"+(null!=(a=s(n,"equals").call(l,s(s(o,"root"),"httpClient"),"angular",{name:"equals",hash:{},fn:e.program(8,o,0),inverse:e.program(11,o,0),data:o,loc:{start:{line:23,column:0},end:{line:80,column:11}}}))?a:"")},usePartial:!0,useData:!0},qt={compiler:[8,">= 4.3.0"],main:function(e,t,n,r,o){return"const getHeaders = (config: OpenAPIConfig, options: ApiRequestOptions): Observable => {\n\treturn forkJoin({\n\t\ttoken: resolve(options, config.TOKEN),\n\t\tusername: resolve(options, config.USERNAME),\n\t\tpassword: resolve(options, config.PASSWORD),\n\t\tadditionalHeaders: resolve(options, config.HEADERS),\n\t}).pipe(\n\t\tmap(({ token, username, password, additionalHeaders }) => {\n\t\t\tconst headers = Object.entries({\n\t\t\t\tAccept: 'application/json',\n\t\t\t\t...additionalHeaders,\n\t\t\t\t...options.headers,\n\t\t\t})\n\t\t\t\t.filter(([_, value]) => isDefined(value))\n\t\t\t\t.reduce((headers, [key, value]) => ({\n\t\t\t\t\t...headers,\n\t\t\t\t\t[key]: String(value),\n\t\t\t\t}), {} as Record);\n\n\t\t\tif (isStringWithValue(token)) {\n\t\t\t\theaders['Authorization'] = `Bearer ${token}`;\n\t\t\t}\n\n\t\t\tif (isStringWithValue(username) && isStringWithValue(password)) {\n\t\t\t\tconst credentials = base64(`${username}:${password}`);\n\t\t\t\theaders['Authorization'] = `Basic ${credentials}`;\n\t\t\t}\n\n\t\t\tif (options.body) {\n\t\t\t\tif (options.mediaType) {\n\t\t\t\t\theaders['Content-Type'] = options.mediaType;\n\t\t\t\t} else if (isBlob(options.body)) {\n\t\t\t\t\theaders['Content-Type'] = options.body.type || 'application/octet-stream';\n\t\t\t\t} else if (isString(options.body)) {\n\t\t\t\t\theaders['Content-Type'] = 'text/plain';\n\t\t\t\t} else if (!isFormData(options.body)) {\n\t\t\t\t\theaders['Content-Type'] = 'application/json';\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn new HttpHeaders(headers);\n\t\t}),\n\t);\n};"},useData:!0},At={compiler:[8,">= 4.3.0"],main:function(e,t,n,r,o){return"const getRequestBody = (options: ApiRequestOptions): any => {\n\tif (options.body) {\n\t\tif (options.mediaType?.includes('/json')) {\n\t\t\treturn JSON.stringify(options.body)\n\t\t} else if (isString(options.body) || isBlob(options.body) || isFormData(options.body)) {\n\t\t\treturn options.body;\n\t\t} else {\n\t\t\treturn JSON.stringify(options.body);\n\t\t}\n\t}\n\treturn undefined;\n};"},useData:!0},jt={compiler:[8,">= 4.3.0"],main:function(e,t,n,r,o){return"const getResponseBody = (response: HttpResponse): T | undefined => {\n\tif (response.status !== 204 && response.body !== null) {\n\t\treturn response.body;\n\t}\n\treturn undefined;\n};"},useData:!0},Ht={compiler:[8,">= 4.3.0"],main:function(e,t,n,r,o){return"const getResponseHeader = (response: HttpResponse, responseHeader?: string): string | undefined => {\n\tif (responseHeader) {\n\t\tconst value = response.headers.get(responseHeader);\n\t\tif (isString(value)) {\n\t\t\treturn value;\n\t\t}\n\t}\n\treturn undefined;\n};"},useData:!0},Et={compiler:[8,">= 4.3.0"],main:function(e,t,n,r,o){var a,l=e.lookupProperty||function(e,t){if(Object.prototype.hasOwnProperty.call(e,t))return e[t]};return(null!=(a=e.invokePartial(l(r,"header"),t,{name:"header",data:o,helpers:n,partials:r,decorators:e.decorators}))?a:"")+"\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\nimport type { HttpResponse, HttpErrorResponse } from '@angular/common/http';\nimport { forkJoin, of, throwError } from 'rxjs';\nimport { catchError, map, switchMap } from 'rxjs/operators';\nimport type { Observable } from 'rxjs';\n\nimport { ApiError } from './ApiError';\nimport type { ApiRequestOptions } from './ApiRequestOptions';\nimport type { ApiResult } from './ApiResult';\nimport type { OpenAPIConfig } from './OpenAPI';\n\n"+(null!=(a=e.invokePartial(l(r,"functions/isDefined"),t,{name:"functions/isDefined",data:o,helpers:n,partials:r,decorators:e.decorators}))?a:"")+"\n\n"+(null!=(a=e.invokePartial(l(r,"functions/isString"),t,{name:"functions/isString",data:o,helpers:n,partials:r,decorators:e.decorators}))?a:"")+"\n\n"+(null!=(a=e.invokePartial(l(r,"functions/isStringWithValue"),t,{name:"functions/isStringWithValue",data:o,helpers:n,partials:r,decorators:e.decorators}))?a:"")+"\n\n"+(null!=(a=e.invokePartial(l(r,"functions/isBlob"),t,{name:"functions/isBlob",data:o,helpers:n,partials:r,decorators:e.decorators}))?a:"")+"\n\n"+(null!=(a=e.invokePartial(l(r,"functions/isFormData"),t,{name:"functions/isFormData",data:o,helpers:n,partials:r,decorators:e.decorators}))?a:"")+"\n\n"+(null!=(a=e.invokePartial(l(r,"functions/base64"),t,{name:"functions/base64",data:o,helpers:n,partials:r,decorators:e.decorators}))?a:"")+"\n\n"+(null!=(a=e.invokePartial(l(r,"functions/getQueryString"),t,{name:"functions/getQueryString",data:o,helpers:n,partials:r,decorators:e.decorators}))?a:"")+"\n\n"+(null!=(a=e.invokePartial(l(r,"functions/getUrl"),t,{name:"functions/getUrl",data:o,helpers:n,partials:r,decorators:e.decorators}))?a:"")+"\n\n"+(null!=(a=e.invokePartial(l(r,"functions/getFormData"),t,{name:"functions/getFormData",data:o,helpers:n,partials:r,decorators:e.decorators}))?a:"")+"\n\n"+(null!=(a=e.invokePartial(l(r,"functions/resolve"),t,{name:"functions/resolve",data:o,helpers:n,partials:r,decorators:e.decorators}))?a:"")+"\n\n"+(null!=(a=e.invokePartial(l(r,"angular/getHeaders"),t,{name:"angular/getHeaders",data:o,helpers:n,partials:r,decorators:e.decorators}))?a:"")+"\n\n"+(null!=(a=e.invokePartial(l(r,"angular/getRequestBody"),t,{name:"angular/getRequestBody",data:o,helpers:n,partials:r,decorators:e.decorators}))?a:"")+"\n\n"+(null!=(a=e.invokePartial(l(r,"angular/sendRequest"),t,{name:"angular/sendRequest",data:o,helpers:n,partials:r,decorators:e.decorators}))?a:"")+"\n\n"+(null!=(a=e.invokePartial(l(r,"angular/getResponseHeader"),t,{name:"angular/getResponseHeader",data:o,helpers:n,partials:r,decorators:e.decorators}))?a:"")+"\n\n"+(null!=(a=e.invokePartial(l(r,"angular/getResponseBody"),t,{name:"angular/getResponseBody",data:o,helpers:n,partials:r,decorators:e.decorators}))?a:"")+"\n\n"+(null!=(a=e.invokePartial(l(r,"functions/catchErrorCodes"),t,{name:"functions/catchErrorCodes",data:o,helpers:n,partials:r,decorators:e.decorators}))?a:"")+"\n\n/**\n * Request method\n * @param config The OpenAPI configuration object\n * @param http The Angular HTTP client\n * @param options The request options from the service\n * @returns Observable\n * @throws ApiError\n */\nexport const request = (config: OpenAPIConfig, http: HttpClient, options: ApiRequestOptions): Observable => {\n\tconst url = getUrl(config, options);\n\tconst formData = getFormData(options);\n\tconst body = getRequestBody(options);\n\n\treturn getHeaders(config, options).pipe(\n\t\tswitchMap(headers => {\n\t\t\treturn sendRequest(config, options, http, url, formData, body, headers);\n\t\t}),\n\t\tmap(response => {\n\t\t\tconst responseBody = getResponseBody(response);\n\t\t\tconst responseHeader = getResponseHeader(response, options.responseHeader);\n\t\t\treturn {\n\t\t\t\turl,\n\t\t\t\tok: response.ok,\n\t\t\t\tstatus: response.status,\n\t\t\t\tstatusText: response.statusText,\n\t\t\t\tbody: responseHeader ?? responseBody,\n\t\t\t} as ApiResult;\n\t\t}),\n\t\tcatchError((error: HttpErrorResponse) => {\n\t\t\tif (!error.status) {\n\t\t\t\treturn throwError(error);\n\t\t\t}\n\t\t\treturn of({\n\t\t\t\turl,\n\t\t\t\tok: error.ok,\n\t\t\t\tstatus: error.status,\n\t\t\t\tstatusText: error.statusText,\n\t\t\t\tbody: error.error ?? error.statusText,\n\t\t\t} as ApiResult);\n\t\t}),\n\t\tmap(result => {\n\t\t\tcatchErrorCodes(options, result);\n\t\t\treturn result.body as T;\n\t\t}),\n\t\tcatchError((error: ApiError) => {\n\t\t\treturn throwError(error);\n\t\t}),\n\t);\n};"},usePartial:!0,useData:!0},Dt={compiler:[8,">= 4.3.0"],main:function(e,t,n,r,o){return"export const sendRequest = (\n\tconfig: OpenAPIConfig,\n\toptions: ApiRequestOptions,\n\thttp: HttpClient,\n\turl: string,\n\tbody: any,\n\tformData: FormData | undefined,\n\theaders: HttpHeaders\n): Observable> => {\n\treturn http.request(options.method, url, {\n\t\theaders,\n\t\tbody: body ?? formData,\n\t\twithCredentials: config.WITH_CREDENTIALS,\n\t\tobserve: 'response',\n\t});\n};"},useData:!0},Tt={compiler:[8,">= 4.3.0"],main:function(e,t,n,r,o){var a,l=e.lookupProperty||function(e,t){if(Object.prototype.hasOwnProperty.call(e,t))return e[t]};return(null!=(a=e.invokePartial(l(r,"header"),t,{name:"header",data:o,helpers:n,partials:r,decorators:e.decorators}))?a:"")+"\nimport type { ApiRequestOptions } from './ApiRequestOptions';\nimport type { ApiResult } from './ApiResult';\n\nexport class ApiError extends Error {\n\tpublic readonly url: string;\n\tpublic readonly status: number;\n\tpublic readonly statusText: string;\n\tpublic readonly body: any;\n\tpublic readonly request: ApiRequestOptions;\n\n\tconstructor(request: ApiRequestOptions, response: ApiResult, message: string) {\n\t\tsuper(message);\n\n\t\tthis.name = 'ApiError';\n\t\tthis.url = response.url;\n\t\tthis.status = response.status;\n\t\tthis.statusText = response.statusText;\n\t\tthis.body = response.body;\n\t\tthis.request = request;\n\t}\n}"},usePartial:!0,useData:!0},It={compiler:[8,">= 4.3.0"],main:function(e,t,n,r,o){var a,l=e.lookupProperty||function(e,t){if(Object.prototype.hasOwnProperty.call(e,t))return e[t]};return(null!=(a=e.invokePartial(l(r,"header"),t,{name:"header",data:o,helpers:n,partials:r,decorators:e.decorators}))?a:"")+"\nexport type ApiRequestOptions = {\n\treadonly method: 'GET' | 'PUT' | 'POST' | 'DELETE' | 'OPTIONS' | 'HEAD' | 'PATCH';\n\treadonly url: string;\n\treadonly path?: Record;\n\treadonly cookies?: Record;\n\treadonly headers?: Record;\n\treadonly query?: Record;\n\treadonly formData?: Record;\n\treadonly body?: any;\n\treadonly mediaType?: string;\n\treadonly responseHeader?: string;\n\treadonly errors?: Record;\n};"},usePartial:!0,useData:!0},St={compiler:[8,">= 4.3.0"],main:function(e,t,n,r,o){var a,l=e.lookupProperty||function(e,t){if(Object.prototype.hasOwnProperty.call(e,t))return e[t]};return(null!=(a=e.invokePartial(l(r,"header"),t,{name:"header",data:o,helpers:n,partials:r,decorators:e.decorators}))?a:"")+"\nexport type ApiResult = {\n\treadonly url: string;\n\treadonly ok: boolean;\n\treadonly status: number;\n\treadonly statusText: string;\n\treadonly body: any;\n};"},usePartial:!0,useData:!0},_t={compiler:[8,">= 4.3.0"],main:function(e,t,n,r,o){return"const getHeaders = async (config: OpenAPIConfig, options: ApiRequestOptions, formData?: FormData): Promise> => {\n\tconst token = await resolve(options, config.TOKEN);\n\tconst username = await resolve(options, config.USERNAME);\n\tconst password = await resolve(options, config.PASSWORD);\n\tconst additionalHeaders = await resolve(options, config.HEADERS);\n\tconst formHeaders = typeof formData?.getHeaders === 'function' && formData?.getHeaders() || {}\n\n\tconst headers = Object.entries({\n\t\tAccept: 'application/json',\n\t\t...additionalHeaders,\n\t\t...options.headers,\n\t\t...formHeaders,\n\t})\n\t.filter(([_, value]) => isDefined(value))\n\t.reduce((headers, [key, value]) => ({\n\t\t...headers,\n\t\t[key]: String(value),\n\t}), {} as Record);\n\n\tif (isStringWithValue(token)) {\n\t\theaders['Authorization'] = `Bearer ${token}`;\n\t}\n\n\tif (isStringWithValue(username) && isStringWithValue(password)) {\n\t\tconst credentials = base64(`${username}:${password}`);\n\t\theaders['Authorization'] = `Basic ${credentials}`;\n\t}\n\n\tif (options.body) {\n\t\tif (options.mediaType) {\n\t\t\theaders['Content-Type'] = options.mediaType;\n\t\t} else if (isBlob(options.body)) {\n\t\t\theaders['Content-Type'] = options.body.type || 'application/octet-stream';\n\t\t} else if (isString(options.body)) {\n\t\t\theaders['Content-Type'] = 'text/plain';\n\t\t} else if (!isFormData(options.body)) {\n\t\t\theaders['Content-Type'] = 'application/json';\n\t\t}\n\t}\n\n\treturn headers;\n};"},useData:!0},Nt={compiler:[8,">= 4.3.0"],main:function(e,t,n,r,o){return"const getRequestBody = (options: ApiRequestOptions): any => {\n\tif (options.body) {\n\t\treturn options.body;\n\t}\n\treturn undefined;\n};"},useData:!0},Bt={compiler:[8,">= 4.3.0"],main:function(e,t,n,r,o){return"const getResponseBody = (response: AxiosResponse): any => {\n\tif (response.status !== 204) {\n\t\treturn response.data;\n\t}\n\treturn undefined;\n};"},useData:!0},$t={compiler:[8,">= 4.3.0"],main:function(e,t,n,r,o){return"const getResponseHeader = (response: AxiosResponse, responseHeader?: string): string | undefined => {\n\tif (responseHeader) {\n\t\tconst content = response.headers[responseHeader];\n\t\tif (isString(content)) {\n\t\t\treturn content;\n\t\t}\n\t}\n\treturn undefined;\n};"},useData:!0},Mt={compiler:[8,">= 4.3.0"],main:function(e,t,n,r,o){var a,l=e.lookupProperty||function(e,t){if(Object.prototype.hasOwnProperty.call(e,t))return e[t]};return(null!=(a=e.invokePartial(l(r,"header"),t,{name:"header",data:o,helpers:n,partials:r,decorators:e.decorators}))?a:"")+"\nimport axios from 'axios';\nimport type { AxiosError, AxiosRequestConfig, AxiosResponse } from 'axios';\nimport FormData from 'form-data';\n\nimport { ApiError } from './ApiError';\nimport type { ApiRequestOptions } from './ApiRequestOptions';\nimport type { ApiResult } from './ApiResult';\nimport { CancelablePromise } from './CancelablePromise';\nimport type { OnCancel } from './CancelablePromise';\nimport type { OpenAPIConfig } from './OpenAPI';\n\n"+(null!=(a=e.invokePartial(l(r,"functions/isDefined"),t,{name:"functions/isDefined",data:o,helpers:n,partials:r,decorators:e.decorators}))?a:"")+"\n\n"+(null!=(a=e.invokePartial(l(r,"functions/isString"),t,{name:"functions/isString",data:o,helpers:n,partials:r,decorators:e.decorators}))?a:"")+"\n\n"+(null!=(a=e.invokePartial(l(r,"functions/isStringWithValue"),t,{name:"functions/isStringWithValue",data:o,helpers:n,partials:r,decorators:e.decorators}))?a:"")+"\n\n"+(null!=(a=e.invokePartial(l(r,"functions/isBlob"),t,{name:"functions/isBlob",data:o,helpers:n,partials:r,decorators:e.decorators}))?a:"")+"\n\n"+(null!=(a=e.invokePartial(l(r,"functions/isFormData"),t,{name:"functions/isFormData",data:o,helpers:n,partials:r,decorators:e.decorators}))?a:"")+"\n\n"+(null!=(a=e.invokePartial(l(r,"functions/isSuccess"),t,{name:"functions/isSuccess",data:o,helpers:n,partials:r,decorators:e.decorators}))?a:"")+"\n\n"+(null!=(a=e.invokePartial(l(r,"functions/base64"),t,{name:"functions/base64",data:o,helpers:n,partials:r,decorators:e.decorators}))?a:"")+"\n\n"+(null!=(a=e.invokePartial(l(r,"functions/getQueryString"),t,{name:"functions/getQueryString",data:o,helpers:n,partials:r,decorators:e.decorators}))?a:"")+"\n\n"+(null!=(a=e.invokePartial(l(r,"functions/getUrl"),t,{name:"functions/getUrl",data:o,helpers:n,partials:r,decorators:e.decorators}))?a:"")+"\n\n"+(null!=(a=e.invokePartial(l(r,"functions/getFormData"),t,{name:"functions/getFormData",data:o,helpers:n,partials:r,decorators:e.decorators}))?a:"")+"\n\n"+(null!=(a=e.invokePartial(l(r,"functions/resolve"),t,{name:"functions/resolve",data:o,helpers:n,partials:r,decorators:e.decorators}))?a:"")+"\n\n"+(null!=(a=e.invokePartial(l(r,"axios/getHeaders"),t,{name:"axios/getHeaders",data:o,helpers:n,partials:r,decorators:e.decorators}))?a:"")+"\n\n"+(null!=(a=e.invokePartial(l(r,"axios/getRequestBody"),t,{name:"axios/getRequestBody",data:o,helpers:n,partials:r,decorators:e.decorators}))?a:"")+"\n\n"+(null!=(a=e.invokePartial(l(r,"axios/sendRequest"),t,{name:"axios/sendRequest",data:o,helpers:n,partials:r,decorators:e.decorators}))?a:"")+"\n\n"+(null!=(a=e.invokePartial(l(r,"axios/getResponseHeader"),t,{name:"axios/getResponseHeader",data:o,helpers:n,partials:r,decorators:e.decorators}))?a:"")+"\n\n"+(null!=(a=e.invokePartial(l(r,"axios/getResponseBody"),t,{name:"axios/getResponseBody",data:o,helpers:n,partials:r,decorators:e.decorators}))?a:"")+"\n\n"+(null!=(a=e.invokePartial(l(r,"functions/catchErrorCodes"),t,{name:"functions/catchErrorCodes",data:o,helpers:n,partials:r,decorators:e.decorators}))?a:"")+"\n\n/**\n * Request method\n * @param config The OpenAPI configuration object\n * @param options The request options from the service\n * @returns CancelablePromise\n * @throws ApiError\n */\nexport const request = (config: OpenAPIConfig, options: ApiRequestOptions): CancelablePromise => {\n\treturn new CancelablePromise(async (resolve, reject, onCancel) => {\n\t\ttry {\n\t\t\tconst url = getUrl(config, options);\n\t\t\tconst formData = getFormData(options);\n\t\t\tconst body = getRequestBody(options);\n\t\t\tconst headers = await getHeaders(config, options, formData);\n\n\t\t\tif (!onCancel.isCancelled) {\n\t\t\t\tconst response = await sendRequest(config, options, url, body, formData, headers, onCancel);\n\t\t\t\tconst responseBody = getResponseBody(response);\n\t\t\t\tconst responseHeader = getResponseHeader(response, options.responseHeader);\n\n\t\t\t\tconst result: ApiResult = {\n\t\t\t\t\turl,\n\t\t\t\t\tok: isSuccess(response.status),\n\t\t\t\t\tstatus: response.status,\n\t\t\t\t\tstatusText: response.statusText,\n\t\t\t\t\tbody: responseHeader ?? responseBody,\n\t\t\t\t};\n\n\t\t\t\tcatchErrorCodes(options, result);\n\n\t\t\t\tresolve(result.body);\n\t\t\t}\n\t\t} catch (error) {\n\t\t\treject(error);\n\t\t}\n\t});\n};"},usePartial:!0,useData:!0},Lt={compiler:[8,">= 4.3.0"],main:function(e,t,n,r,o){return"const sendRequest = async (\n\tconfig: OpenAPIConfig,\n\toptions: ApiRequestOptions,\n\turl: string,\n\tbody: any,\n\tformData: FormData | undefined,\n\theaders: Record,\n\tonCancel: OnCancel\n): Promise> => {\n\tconst source = axios.CancelToken.source();\n\n\tconst requestConfig: AxiosRequestConfig = {\n\t\turl,\n\t\theaders,\n\t\tdata: body ?? formData,\n\t\tmethod: options.method,\n\t\twithCredentials: config.WITH_CREDENTIALS,\n\t\tcancelToken: source.token,\n\t};\n\n\tonCancel(() => source.cancel('The user aborted a request.'));\n\n\ttry {\n\t\treturn await axios.request(requestConfig);\n\t} catch (error) {\n\t\tconst axiosError = error as AxiosError;\n\t\tif (axiosError.response) {\n\t\t\treturn axiosError.response;\n\t\t}\n\t\tthrow error;\n\t}\n};"},useData:!0},Ft={1:function(e,t,n,r,o){return"import type { HttpClient } from '@angular/common/http';\nimport type { Observable } from 'rxjs';\n\nimport type { ApiRequestOptions } from './ApiRequestOptions';\nimport type { OpenAPIConfig } from './OpenAPI';\n"},3:function(e,t,n,r,o){return"import type { ApiRequestOptions } from './ApiRequestOptions';\nimport type { CancelablePromise } from './CancelablePromise';\nimport type { OpenAPIConfig } from './OpenAPI';\n"},5:function(e,t,n,r,o){return"\tconstructor(\n\t\tpublic readonly config: OpenAPIConfig,\n\t\tpublic readonly http: HttpClient,\n\t) {}\n"},7:function(e,t,n,r,o){return"\tconstructor(public readonly config: OpenAPIConfig) {}\n"},9:function(e,t,n,r,o){return"\tpublic abstract request(options: ApiRequestOptions): Observable;\n"},11:function(e,t,n,r,o){return"\tpublic abstract request(options: ApiRequestOptions): CancelablePromise;\n"},compiler:[8,">= 4.3.0"],main:function(e,t,n,r,o){var a,l=null!=t?t:e.nullContext||{},s=e.lookupProperty||function(e,t){if(Object.prototype.hasOwnProperty.call(e,t))return e[t]};return(null!=(a=e.invokePartial(s(r,"header"),t,{name:"header",data:o,helpers:n,partials:r,decorators:e.decorators}))?a:"")+"\n"+(null!=(a=s(n,"equals").call(l,s(s(o,"root"),"httpClient"),"angular",{name:"equals",hash:{},fn:e.program(1,o,0),inverse:e.program(3,o,0),data:o,loc:{start:{line:3,column:0},end:{line:13,column:11}}}))?a:"")+"\nexport abstract class BaseHttpRequest {\n\n"+(null!=(a=s(n,"equals").call(l,s(s(o,"root"),"httpClient"),"angular",{name:"equals",hash:{},fn:e.program(5,o,0),inverse:e.program(7,o,0),data:o,loc:{start:{line:17,column:1},end:{line:24,column:12}}}))?a:"")+"\n"+(null!=(a=s(n,"equals").call(l,s(s(o,"root"),"httpClient"),"angular",{name:"equals",hash:{},fn:e.program(9,o,0),inverse:e.program(11,o,0),data:o,loc:{start:{line:26,column:1},end:{line:30,column:12}}}))?a:"")+"}"},usePartial:!0,useData:!0},Wt={compiler:[8,">= 4.3.0"],main:function(e,t,n,r,o){var a,l=e.lookupProperty||function(e,t){if(Object.prototype.hasOwnProperty.call(e,t))return e[t]};return(null!=(a=e.invokePartial(l(r,"header"),t,{name:"header",data:o,helpers:n,partials:r,decorators:e.decorators}))?a:"")+"\nexport class CancelError extends Error {\n\n\tconstructor(message: string) {\n\t\tsuper(message);\n\t\tthis.name = 'CancelError';\n\t}\n\n\tpublic get isCancelled(): boolean {\n\t\treturn true;\n\t}\n}\n\nexport interface OnCancel {\n\treadonly isResolved: boolean;\n\treadonly isRejected: boolean;\n\treadonly isCancelled: boolean;\n\n\t(cancelHandler: () => void): void;\n}\n\nexport class CancelablePromise implements Promise {\n\treadonly [Symbol.toStringTag]!: string;\n\n\tprivate _isResolved: boolean;\n\tprivate _isRejected: boolean;\n\tprivate _isCancelled: boolean;\n\tprivate readonly _cancelHandlers: (() => void)[];\n\tprivate readonly _promise: Promise;\n\tprivate _resolve?: (value: T | PromiseLike) => void;\n\tprivate _reject?: (reason?: any) => void;\n\n\tconstructor(\n\t\texecutor: (\n\t\t\tresolve: (value: T | PromiseLike) => void,\n\t\t\treject: (reason?: any) => void,\n\t\t\tonCancel: OnCancel\n\t\t) => void\n\t) {\n\t\tthis._isResolved = false;\n\t\tthis._isRejected = false;\n\t\tthis._isCancelled = false;\n\t\tthis._cancelHandlers = [];\n\t\tthis._promise = new Promise((resolve, reject) => {\n\t\t\tthis._resolve = resolve;\n\t\t\tthis._reject = reject;\n\n\t\t\tconst onResolve = (value: T | PromiseLike): void => {\n\t\t\t\tif (this._isResolved || this._isRejected || this._isCancelled) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tthis._isResolved = true;\n\t\t\t\tthis._resolve?.(value);\n\t\t\t};\n\n\t\t\tconst onReject = (reason?: any): void => {\n\t\t\t\tif (this._isResolved || this._isRejected || this._isCancelled) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tthis._isRejected = true;\n\t\t\t\tthis._reject?.(reason);\n\t\t\t};\n\n\t\t\tconst onCancel = (cancelHandler: () => void): void => {\n\t\t\t\tif (this._isResolved || this._isRejected || this._isCancelled) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tthis._cancelHandlers.push(cancelHandler);\n\t\t\t};\n\n\t\t\tObject.defineProperty(onCancel, 'isResolved', {\n\t\t\t\tget: (): boolean => this._isResolved,\n\t\t\t});\n\n\t\t\tObject.defineProperty(onCancel, 'isRejected', {\n\t\t\t\tget: (): boolean => this._isRejected,\n\t\t\t});\n\n\t\t\tObject.defineProperty(onCancel, 'isCancelled', {\n\t\t\t\tget: (): boolean => this._isCancelled,\n\t\t\t});\n\n\t\t\treturn executor(onResolve, onReject, onCancel as OnCancel);\n\t\t});\n\t}\n\n\tpublic then(\n\t\tonFulfilled?: ((value: T) => TResult1 | PromiseLike) | null,\n\t\tonRejected?: ((reason: any) => TResult2 | PromiseLike) | null\n\t): Promise {\n\t\treturn this._promise.then(onFulfilled, onRejected);\n\t}\n\n\tpublic catch(\n\t\tonRejected?: ((reason: any) => TResult | PromiseLike) | null\n\t): Promise {\n\t\treturn this._promise.catch(onRejected);\n\t}\n\n\tpublic finally(onFinally?: (() => void) | null): Promise {\n\t\treturn this._promise.finally(onFinally);\n\t}\n\n\tpublic cancel(): void {\n\t\tif (this._isResolved || this._isRejected || this._isCancelled) {\n\t\t\treturn;\n\t\t}\n\t\tthis._isCancelled = true;\n\t\tif (this._cancelHandlers.length) {\n\t\t\ttry {\n\t\t\t\tfor (const cancelHandler of this._cancelHandlers) {\n\t\t\t\t\tcancelHandler();\n\t\t\t\t}\n\t\t\t} catch (error) {\n\t\t\t\tconsole.warn('Cancellation threw an error', error);\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\t\tthis._cancelHandlers.length = 0;\n\t\tthis._reject?.(new CancelError('Request aborted'));\n\t}\n\n\tpublic get isCancelled(): boolean {\n\t\treturn this._isCancelled;\n\t}\n}"},usePartial:!0,useData:!0},Vt={compiler:[8,">= 4.3.0"],main:function(e,t,n,r,o){return"const getHeaders = async (config: OpenAPIConfig, options: ApiRequestOptions): Promise => {\n\tconst token = await resolve(options, config.TOKEN);\n\tconst username = await resolve(options, config.USERNAME);\n\tconst password = await resolve(options, config.PASSWORD);\n\tconst additionalHeaders = await resolve(options, config.HEADERS);\n\n\tconst headers = Object.entries({\n\t\tAccept: 'application/json',\n\t\t...additionalHeaders,\n\t\t...options.headers,\n\t})\n\t\t.filter(([_, value]) => isDefined(value))\n\t\t.reduce((headers, [key, value]) => ({\n\t\t\t...headers,\n\t\t\t[key]: String(value),\n\t\t}), {} as Record);\n\n\tif (isStringWithValue(token)) {\n\t\theaders['Authorization'] = `Bearer ${token}`;\n\t}\n\n\tif (isStringWithValue(username) && isStringWithValue(password)) {\n\t\tconst credentials = base64(`${username}:${password}`);\n\t\theaders['Authorization'] = `Basic ${credentials}`;\n\t}\n\n\tif (options.body) {\n\t\tif (options.mediaType) {\n\t\t\theaders['Content-Type'] = options.mediaType;\n\t\t} else if (isBlob(options.body)) {\n\t\t\theaders['Content-Type'] = options.body.type || 'application/octet-stream';\n\t\t} else if (isString(options.body)) {\n\t\t\theaders['Content-Type'] = 'text/plain';\n\t\t} else if (!isFormData(options.body)) {\n\t\t\theaders['Content-Type'] = 'application/json';\n\t\t}\n\t}\n\n\treturn new Headers(headers);\n};"},useData:!0},Ut={compiler:[8,">= 4.3.0"],main:function(e,t,n,r,o){return"const getRequestBody = (options: ApiRequestOptions): any => {\n\tif (options.body !== undefined) {\n\t\tif (options.mediaType?.includes('/json')) {\n\t\t\treturn JSON.stringify(options.body)\n\t\t} else if (isString(options.body) || isBlob(options.body) || isFormData(options.body)) {\n\t\t\treturn options.body;\n\t\t} else {\n\t\t\treturn JSON.stringify(options.body);\n\t\t}\n\t}\n\treturn undefined;\n};"},useData:!0},Qt={compiler:[8,">= 4.3.0"],main:function(e,t,n,r,o){return"const getResponseBody = async (response: Response): Promise => {\n\tif (response.status !== 204) {\n\t\ttry {\n\t\t\tconst contentType = response.headers.get('Content-Type');\n\t\t\tif (contentType) {\n\t\t\t\tconst isJSON = contentType.toLowerCase().startsWith('application/json');\n\t\t\t\tif (isJSON) {\n\t\t\t\t\treturn await response.json();\n\t\t\t\t} else {\n\t\t\t\t\treturn await response.text();\n\t\t\t\t}\n\t\t\t}\n\t\t} catch (error) {\n\t\t\tconsole.error(error);\n\t\t}\n\t}\n\treturn undefined;\n};"},useData:!0},zt={compiler:[8,">= 4.3.0"],main:function(e,t,n,r,o){return"const getResponseHeader = (response: Response, responseHeader?: string): string | undefined => {\n\tif (responseHeader) {\n\t\tconst content = response.headers.get(responseHeader);\n\t\tif (isString(content)) {\n\t\t\treturn content;\n\t\t}\n\t}\n\treturn undefined;\n};"},useData:!0},Jt={compiler:[8,">= 4.3.0"],main:function(e,t,n,r,o){var a,l=e.lookupProperty||function(e,t){if(Object.prototype.hasOwnProperty.call(e,t))return e[t]};return(null!=(a=e.invokePartial(l(r,"header"),t,{name:"header",data:o,helpers:n,partials:r,decorators:e.decorators}))?a:"")+"\nimport { ApiError } from './ApiError';\nimport type { ApiRequestOptions } from './ApiRequestOptions';\nimport type { ApiResult } from './ApiResult';\nimport { CancelablePromise } from './CancelablePromise';\nimport type { OnCancel } from './CancelablePromise';\nimport type { OpenAPIConfig } from './OpenAPI';\n\n"+(null!=(a=e.invokePartial(l(r,"functions/isDefined"),t,{name:"functions/isDefined",data:o,helpers:n,partials:r,decorators:e.decorators}))?a:"")+"\n\n"+(null!=(a=e.invokePartial(l(r,"functions/isString"),t,{name:"functions/isString",data:o,helpers:n,partials:r,decorators:e.decorators}))?a:"")+"\n\n"+(null!=(a=e.invokePartial(l(r,"functions/isStringWithValue"),t,{name:"functions/isStringWithValue",data:o,helpers:n,partials:r,decorators:e.decorators}))?a:"")+"\n\n"+(null!=(a=e.invokePartial(l(r,"functions/isBlob"),t,{name:"functions/isBlob",data:o,helpers:n,partials:r,decorators:e.decorators}))?a:"")+"\n\n"+(null!=(a=e.invokePartial(l(r,"functions/isFormData"),t,{name:"functions/isFormData",data:o,helpers:n,partials:r,decorators:e.decorators}))?a:"")+"\n\n"+(null!=(a=e.invokePartial(l(r,"functions/base64"),t,{name:"functions/base64",data:o,helpers:n,partials:r,decorators:e.decorators}))?a:"")+"\n\n"+(null!=(a=e.invokePartial(l(r,"functions/getQueryString"),t,{name:"functions/getQueryString",data:o,helpers:n,partials:r,decorators:e.decorators}))?a:"")+"\n\n"+(null!=(a=e.invokePartial(l(r,"functions/getUrl"),t,{name:"functions/getUrl",data:o,helpers:n,partials:r,decorators:e.decorators}))?a:"")+"\n\n"+(null!=(a=e.invokePartial(l(r,"functions/getFormData"),t,{name:"functions/getFormData",data:o,helpers:n,partials:r,decorators:e.decorators}))?a:"")+"\n\n"+(null!=(a=e.invokePartial(l(r,"functions/resolve"),t,{name:"functions/resolve",data:o,helpers:n,partials:r,decorators:e.decorators}))?a:"")+"\n\n"+(null!=(a=e.invokePartial(l(r,"fetch/getHeaders"),t,{name:"fetch/getHeaders",data:o,helpers:n,partials:r,decorators:e.decorators}))?a:"")+"\n\n"+(null!=(a=e.invokePartial(l(r,"fetch/getRequestBody"),t,{name:"fetch/getRequestBody",data:o,helpers:n,partials:r,decorators:e.decorators}))?a:"")+"\n\n"+(null!=(a=e.invokePartial(l(r,"fetch/sendRequest"),t,{name:"fetch/sendRequest",data:o,helpers:n,partials:r,decorators:e.decorators}))?a:"")+"\n\n"+(null!=(a=e.invokePartial(l(r,"fetch/getResponseHeader"),t,{name:"fetch/getResponseHeader",data:o,helpers:n,partials:r,decorators:e.decorators}))?a:"")+"\n\n"+(null!=(a=e.invokePartial(l(r,"fetch/getResponseBody"),t,{name:"fetch/getResponseBody",data:o,helpers:n,partials:r,decorators:e.decorators}))?a:"")+"\n\n"+(null!=(a=e.invokePartial(l(r,"functions/catchErrorCodes"),t,{name:"functions/catchErrorCodes",data:o,helpers:n,partials:r,decorators:e.decorators}))?a:"")+"\n\n/**\n * Request method\n * @param config The OpenAPI configuration object\n * @param options The request options from the service\n * @returns CancelablePromise\n * @throws ApiError\n */\nexport const request = (config: OpenAPIConfig, options: ApiRequestOptions): CancelablePromise => {\n\treturn new CancelablePromise(async (resolve, reject, onCancel) => {\n\t\ttry {\n\t\t\tconst url = getUrl(config, options);\n\t\t\tconst formData = getFormData(options);\n\t\t\tconst body = getRequestBody(options);\n\t\t\tconst headers = await getHeaders(config, options);\n\n\t\t\tif (!onCancel.isCancelled) {\n\t\t\t\tconst response = await sendRequest(config, options, url, body, formData, headers, onCancel);\n\t\t\t\tconst responseBody = await getResponseBody(response);\n\t\t\t\tconst responseHeader = getResponseHeader(response, options.responseHeader);\n\n\t\t\t\tconst result: ApiResult = {\n\t\t\t\t\turl,\n\t\t\t\t\tok: response.ok,\n\t\t\t\t\tstatus: response.status,\n\t\t\t\t\tstatusText: response.statusText,\n\t\t\t\t\tbody: responseHeader ?? responseBody,\n\t\t\t\t};\n\n\t\t\t\tcatchErrorCodes(options, result);\n\n\t\t\t\tresolve(result.body);\n\t\t\t}\n\t\t} catch (error) {\n\t\t\treject(error);\n\t\t}\n\t});\n};"},usePartial:!0,useData:!0},Gt={compiler:[8,">= 4.3.0"],main:function(e,t,n,r,o){return"export const sendRequest = async (\n\tconfig: OpenAPIConfig,\n\toptions: ApiRequestOptions,\n\turl: string,\n\tbody: any,\n\tformData: FormData | undefined,\n\theaders: Headers,\n\tonCancel: OnCancel\n): Promise => {\n\tconst controller = new AbortController();\n\n\tconst request: RequestInit = {\n\t\theaders,\n\t\tbody: body ?? formData,\n\t\tmethod: options.method,\n\t\tsignal: controller.signal,\n\t};\n\n\tif (config.WITH_CREDENTIALS) {\n\t\trequest.credentials = config.CREDENTIALS;\n\t}\n\n\tonCancel(() => controller.abort());\n\n\treturn await fetch(url, request);\n};"},useData:!0},Zt={compiler:[8,">= 4.3.0"],main:function(e,t,n,r,o){return"const base64 = (str: string): string => {\n\ttry {\n\t\treturn btoa(str);\n\t} catch (err) {\n\t\t// @ts-ignore\n\t\treturn Buffer.from(str).toString('base64');\n\t}\n};"},useData:!0},Kt={compiler:[8,">= 4.3.0"],main:function(e,t,n,r,o){return"const catchErrorCodes = (options: ApiRequestOptions, result: ApiResult): void => {\n\tconst errors: Record = {\n\t\t400: 'Bad Request',\n\t\t401: 'Unauthorized',\n\t\t403: 'Forbidden',\n\t\t404: 'Not Found',\n\t\t500: 'Internal Server Error',\n\t\t502: 'Bad Gateway',\n\t\t503: 'Service Unavailable',\n\t\t...options.errors,\n\t}\n\n\tconst error = errors[result.status];\n\tif (error) {\n\t\tthrow new ApiError(options, result, error);\n\t}\n\n\tif (!result.ok) {\n\t\tthrow new ApiError(options, result, 'Generic Error');\n\t}\n};"},useData:!0},Xt={compiler:[8,">= 4.3.0"],main:function(e,t,n,r,o){return"const getFormData = (options: ApiRequestOptions): FormData | undefined => {\n\tif (options.formData) {\n\t\tconst formData = new FormData();\n\n\t\tconst process = (key: string, value: any) => {\n\t\t\tif (isString(value) || isBlob(value)) {\n\t\t\t\tformData.append(key, value);\n\t\t\t} else {\n\t\t\t\tformData.append(key, JSON.stringify(value));\n\t\t\t}\n\t\t};\n\n\t\tObject.entries(options.formData)\n\t\t\t.filter(([_, value]) => isDefined(value))\n\t\t\t.forEach(([key, value]) => {\n\t\t\t\tif (Array.isArray(value)) {\n\t\t\t\t\tvalue.forEach(v => process(key, v));\n\t\t\t\t} else {\n\t\t\t\t\tprocess(key, value);\n\t\t\t\t}\n\t\t\t});\n\n\t\treturn formData;\n\t}\n\treturn undefined;\n};"},useData:!0},Yt={compiler:[8,">= 4.3.0"],main:function(e,t,n,r,o){return"const getQueryString = (params: Record): string => {\n\tconst qs: string[] = [];\n\n\tconst append = (key: string, value: any) => {\n\t\tqs.push(`${encodeURIComponent(key)}=${encodeURIComponent(String(value))}`);\n\t};\n\n\tconst process = (key: string, value: any) => {\n\t\tif (isDefined(value)) {\n\t\t\tif (Array.isArray(value)) {\n\t\t\t\tvalue.forEach(v => {\n\t\t\t\t\tprocess(key, v);\n\t\t\t\t});\n\t\t\t} else if (typeof value === 'object') {\n\t\t\t\tObject.entries(value).forEach(([k, v]) => {\n\t\t\t\t\tprocess(`${key}[${k}]`, v);\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\tappend(key, value);\n\t\t\t}\n\t\t}\n\t};\n\n\tObject.entries(params).forEach(([key, value]) => {\n\t\tprocess(key, value);\n\t});\n\n\tif (qs.length > 0) {\n\t\treturn `?${qs.join('&')}`;\n\t}\n\n\treturn '';\n};"},useData:!0},en={compiler:[8,">= 4.3.0"],main:function(e,t,n,r,o){return"const getUrl = (config: OpenAPIConfig, options: ApiRequestOptions): string => {\n\tconst encoder = config.ENCODE_PATH || encodeURI;\n\n\tconst path = options.url\n\t\t.replace('{api-version}', config.VERSION)\n\t\t.replace(/{(.*?)}/g, (substring: string, group: string) => {\n\t\t\tif (options.path?.hasOwnProperty(group)) {\n\t\t\t\treturn encoder(String(options.path[group]));\n\t\t\t}\n\t\t\treturn substring;\n\t\t});\n\n\tconst url = `${config.BASE}${path}`;\n\tif (options.query) {\n\t\treturn `${url}${getQueryString(options.query)}`;\n\t}\n\treturn url;\n};"},useData:!0},tn={compiler:[8,">= 4.3.0"],main:function(e,t,n,r,o){return"const isBlob = (value: any): value is Blob => {\n\treturn (\n\t\ttypeof value === 'object' &&\n\t\ttypeof value.type === 'string' &&\n\t\ttypeof value.stream === 'function' &&\n\t\ttypeof value.arrayBuffer === 'function' &&\n\t\ttypeof value.constructor === 'function' &&\n\t\ttypeof value.constructor.name === 'string' &&\n\t\t/^(Blob|File)$/.test(value.constructor.name) &&\n\t\t/^(Blob|File)$/.test(value[Symbol.toStringTag])\n\t);\n};"},useData:!0},nn={compiler:[8,">= 4.3.0"],main:function(e,t,n,r,o){return"const isDefined = (value: T | null | undefined): value is Exclude => {\n\treturn value !== undefined && value !== null;\n};"},useData:!0},rn={compiler:[8,">= 4.3.0"],main:function(e,t,n,r,o){return"const isFormData = (value: any): value is FormData => {\n\treturn value instanceof FormData;\n};"},useData:!0},on={compiler:[8,">= 4.3.0"],main:function(e,t,n,r,o){return"const isString = (value: any): value is string => {\n\treturn typeof value === 'string';\n};"},useData:!0},an={compiler:[8,">= 4.3.0"],main:function(e,t,n,r,o){return"const isStringWithValue = (value: any): value is string => {\n\treturn isString(value) && value !== '';\n};"},useData:!0},ln={compiler:[8,">= 4.3.0"],main:function(e,t,n,r,o){return"const isSuccess = (status: number): boolean => {\n\treturn status >= 200 && status < 300;\n};"},useData:!0},sn={compiler:[8,">= 4.3.0"],main:function(e,t,n,r,o){return"type Resolver = (options: ApiRequestOptions) => Promise;\n\nconst resolve = async (options: ApiRequestOptions, resolver?: T | Resolver): Promise => {\n\tif (typeof resolver === 'function') {\n\t\treturn (resolver as Resolver)(options);\n\t}\n\treturn resolver;\n};"},useData:!0},un={1:function(e,t,n,r,o){return"import { Inject, Injectable } from '@angular/core';\nimport { HttpClient } from '@angular/common/http';\nimport type { Observable } from 'rxjs';\n\nimport type { ApiRequestOptions } from './ApiRequestOptions';\nimport { BaseHttpRequest } from './BaseHttpRequest';\nimport type { OpenAPIConfig } from './OpenAPI';\nimport { OpenAPI } from './OpenAPI';\nimport { request as __request } from './request';\n"},3:function(e,t,n,r,o){return"import type { ApiRequestOptions } from './ApiRequestOptions';\nimport { BaseHttpRequest } from './BaseHttpRequest';\nimport type { CancelablePromise } from './CancelablePromise';\nimport type { OpenAPIConfig } from './OpenAPI';\nimport { request as __request } from './request';\n"},5:function(e,t,n,r,o){return"@Injectable()\n"},7:function(e,t,n,r,o){return"\tconstructor(\n\t\t@Inject(OpenAPI)\n\t\tconfig: OpenAPIConfig,\n\t\thttp: HttpClient,\n\t) {\n\t\tsuper(config, http);\n\t}\n"},9:function(e,t,n,r,o){return"\tconstructor(config: OpenAPIConfig) {\n\t\tsuper(config);\n\t}\n"},11:function(e,t,n,r,o){return"\t/**\n\t * Request method\n\t * @param options The request options from the service\n\t * @returns Observable\n\t * @throws ApiError\n\t */\n\tpublic override request(options: ApiRequestOptions): Observable {\n\t\treturn __request(this.config, this.http, options);\n\t}\n"},13:function(e,t,n,r,o){return"\t/**\n\t * Request method\n\t * @param options The request options from the service\n\t * @returns CancelablePromise\n\t * @throws ApiError\n\t */\n\tpublic override request(options: ApiRequestOptions): CancelablePromise {\n\t\treturn __request(this.config, options);\n\t}\n"},compiler:[8,">= 4.3.0"],main:function(e,t,n,r,o){var a,l=null!=t?t:e.nullContext||{},s=e.lookupProperty||function(e,t){if(Object.prototype.hasOwnProperty.call(e,t))return e[t]};return(null!=(a=e.invokePartial(s(r,"header"),t,{name:"header",data:o,helpers:n,partials:r,decorators:e.decorators}))?a:"")+"\n"+(null!=(a=s(n,"equals").call(l,s(s(o,"root"),"httpClient"),"angular",{name:"equals",hash:{},fn:e.program(1,o,0),inverse:e.program(3,o,0),data:o,loc:{start:{line:3,column:0},end:{line:19,column:11}}}))?a:"")+"\n"+(null!=(a=s(n,"equals").call(l,s(s(o,"root"),"httpClient"),"angular",{name:"equals",hash:{},fn:e.program(5,o,0),inverse:e.noop,data:o,loc:{start:{line:21,column:0},end:{line:23,column:11}}}))?a:"")+"export class "+(null!=(a=e.lambda(e.strict(t,"httpRequest",{start:{line:24,column:15},end:{line:24,column:26}}),t))?a:"")+" extends BaseHttpRequest {\n\n"+(null!=(a=s(n,"equals").call(l,s(s(o,"root"),"httpClient"),"angular",{name:"equals",hash:{},fn:e.program(7,o,0),inverse:e.program(9,o,0),data:o,loc:{start:{line:26,column:1},end:{line:38,column:12}}}))?a:"")+"\n"+(null!=(a=s(n,"equals").call(l,s(s(o,"root"),"httpClient"),"angular",{name:"equals",hash:{},fn:e.program(11,o,0),inverse:e.program(13,o,0),data:o,loc:{start:{line:40,column:1},end:{line:60,column:12}}}))?a:"")+"}"},usePartial:!0,useData:!0},pn={compiler:[8,">= 4.3.0"],main:function(e,t,n,r,o){return"const getHeaders = async (config: OpenAPIConfig, options: ApiRequestOptions): Promise => {\n\tconst token = await resolve(options, config.TOKEN);\n\tconst username = await resolve(options, config.USERNAME);\n\tconst password = await resolve(options, config.PASSWORD);\n\tconst additionalHeaders = await resolve(options, config.HEADERS);\n\n\tconst headers = Object.entries({\n\t\tAccept: 'application/json',\n\t\t...additionalHeaders,\n\t\t...options.headers,\n\t})\n\t\t.filter(([_, value]) => isDefined(value))\n\t\t.reduce((headers, [key, value]) => ({\n\t\t\t...headers,\n\t\t\t[key]: String(value),\n\t\t}), {} as Record);\n\n\tif (isStringWithValue(token)) {\n\t\theaders['Authorization'] = `Bearer ${token}`;\n\t}\n\n\tif (isStringWithValue(username) && isStringWithValue(password)) {\n\t\tconst credentials = base64(`${username}:${password}`);\n\t\theaders['Authorization'] = `Basic ${credentials}`;\n\t}\n\n\tif (options.body) {\n\t\tif (options.mediaType) {\n\t\t\theaders['Content-Type'] = options.mediaType;\n\t\t} else if (isBlob(options.body)) {\n\t\t\theaders['Content-Type'] = 'application/octet-stream';\n\t\t} else if (isString(options.body)) {\n\t\t\theaders['Content-Type'] = 'text/plain';\n\t\t} else if (!isFormData(options.body)) {\n\t\t\theaders['Content-Type'] = 'application/json';\n\t\t}\n\t}\n\n\treturn new Headers(headers);\n};"},useData:!0},cn={compiler:[8,">= 4.3.0"],main:function(e,t,n,r,o){return"const getRequestBody = (options: ApiRequestOptions): any => {\n\tif (options.body !== undefined) {\n\t\tif (options.mediaType?.includes('/json')) {\n\t\t\treturn JSON.stringify(options.body)\n\t\t} else if (isString(options.body) || isBlob(options.body) || isFormData(options.body)) {\n\t\t\treturn options.body as any;\n\t\t} else {\n\t\t\treturn JSON.stringify(options.body);\n\t\t}\n\t}\n\treturn undefined;\n};"},useData:!0},mn={compiler:[8,">= 4.3.0"],main:function(e,t,n,r,o){return"const getResponseBody = async (response: Response): Promise => {\n\tif (response.status !== 204) {\n\t\ttry {\n\t\t\tconst contentType = response.headers.get('Content-Type');\n\t\t\tif (contentType) {\n\t\t\t\tconst isJSON = contentType.toLowerCase().startsWith('application/json');\n\t\t\t\tif (isJSON) {\n\t\t\t\t\treturn await response.json();\n\t\t\t\t} else {\n\t\t\t\t\treturn await response.text();\n\t\t\t\t}\n\t\t\t}\n\t\t} catch (error) {\n\t\t\tconsole.error(error);\n\t\t}\n\t}\n\treturn undefined;\n};"},useData:!0},dn={compiler:[8,">= 4.3.0"],main:function(e,t,n,r,o){return"const getResponseHeader = (response: Response, responseHeader?: string): string | undefined => {\n\tif (responseHeader) {\n\t\tconst content = response.headers.get(responseHeader);\n\t\tif (isString(content)) {\n\t\t\treturn content;\n\t\t}\n\t}\n\treturn undefined;\n};"},useData:!0},fn={compiler:[8,">= 4.3.0"],main:function(e,t,n,r,o){var a,l=e.lookupProperty||function(e,t){if(Object.prototype.hasOwnProperty.call(e,t))return e[t]};return(null!=(a=e.invokePartial(l(r,"header"),t,{name:"header",data:o,helpers:n,partials:r,decorators:e.decorators}))?a:"")+"\nimport FormData from 'form-data';\nimport fetch, { Headers } from 'node-fetch';\nimport type { RequestInit, Response } from 'node-fetch';\nimport type { AbortSignal } from 'node-fetch/externals';\n\nimport { ApiError } from './ApiError';\nimport type { ApiRequestOptions } from './ApiRequestOptions';\nimport type { ApiResult } from './ApiResult';\nimport { CancelablePromise } from './CancelablePromise';\nimport type { OnCancel } from './CancelablePromise';\nimport type { OpenAPIConfig } from './OpenAPI';\n\n"+(null!=(a=e.invokePartial(l(r,"functions/isDefined"),t,{name:"functions/isDefined",data:o,helpers:n,partials:r,decorators:e.decorators}))?a:"")+"\n\n"+(null!=(a=e.invokePartial(l(r,"functions/isString"),t,{name:"functions/isString",data:o,helpers:n,partials:r,decorators:e.decorators}))?a:"")+"\n\n"+(null!=(a=e.invokePartial(l(r,"functions/isStringWithValue"),t,{name:"functions/isStringWithValue",data:o,helpers:n,partials:r,decorators:e.decorators}))?a:"")+"\n\n"+(null!=(a=e.invokePartial(l(r,"functions/isBlob"),t,{name:"functions/isBlob",data:o,helpers:n,partials:r,decorators:e.decorators}))?a:"")+"\n\n"+(null!=(a=e.invokePartial(l(r,"functions/isFormData"),t,{name:"functions/isFormData",data:o,helpers:n,partials:r,decorators:e.decorators}))?a:"")+"\n\n"+(null!=(a=e.invokePartial(l(r,"functions/base64"),t,{name:"functions/base64",data:o,helpers:n,partials:r,decorators:e.decorators}))?a:"")+"\n\n"+(null!=(a=e.invokePartial(l(r,"functions/getQueryString"),t,{name:"functions/getQueryString",data:o,helpers:n,partials:r,decorators:e.decorators}))?a:"")+"\n\n"+(null!=(a=e.invokePartial(l(r,"functions/getUrl"),t,{name:"functions/getUrl",data:o,helpers:n,partials:r,decorators:e.decorators}))?a:"")+"\n\n"+(null!=(a=e.invokePartial(l(r,"functions/getFormData"),t,{name:"functions/getFormData",data:o,helpers:n,partials:r,decorators:e.decorators}))?a:"")+"\n\n"+(null!=(a=e.invokePartial(l(r,"functions/resolve"),t,{name:"functions/resolve",data:o,helpers:n,partials:r,decorators:e.decorators}))?a:"")+"\n\n"+(null!=(a=e.invokePartial(l(r,"node/getHeaders"),t,{name:"node/getHeaders",data:o,helpers:n,partials:r,decorators:e.decorators}))?a:"")+"\n\n"+(null!=(a=e.invokePartial(l(r,"node/getRequestBody"),t,{name:"node/getRequestBody",data:o,helpers:n,partials:r,decorators:e.decorators}))?a:"")+"\n\n"+(null!=(a=e.invokePartial(l(r,"node/sendRequest"),t,{name:"node/sendRequest",data:o,helpers:n,partials:r,decorators:e.decorators}))?a:"")+"\n\n"+(null!=(a=e.invokePartial(l(r,"node/getResponseHeader"),t,{name:"node/getResponseHeader",data:o,helpers:n,partials:r,decorators:e.decorators}))?a:"")+"\n\n"+(null!=(a=e.invokePartial(l(r,"node/getResponseBody"),t,{name:"node/getResponseBody",data:o,helpers:n,partials:r,decorators:e.decorators}))?a:"")+"\n\n"+(null!=(a=e.invokePartial(l(r,"functions/catchErrorCodes"),t,{name:"functions/catchErrorCodes",data:o,helpers:n,partials:r,decorators:e.decorators}))?a:"")+"\n\n/**\n * Request method\n * @param config The OpenAPI configuration object\n * @param options The request options from the service\n * @returns CancelablePromise\n * @throws ApiError\n */\nexport const request = (config: OpenAPIConfig, options: ApiRequestOptions): CancelablePromise => {\n\treturn new CancelablePromise(async (resolve, reject, onCancel) => {\n\t\ttry {\n\t\t\tconst url = getUrl(config, options);\n\t\t\tconst formData = getFormData(options);\n\t\t\tconst body = getRequestBody(options);\n\t\t\tconst headers = await getHeaders(config, options);\n\n\t\t\tif (!onCancel.isCancelled) {\n\t\t\t\tconst response = await sendRequest(options, url, body, formData, headers, onCancel);\n\t\t\t\tconst responseBody = await getResponseBody(response);\n\t\t\t\tconst responseHeader = getResponseHeader(response, options.responseHeader);\n\n\t\t\t\tconst result: ApiResult = {\n\t\t\t\t\turl,\n\t\t\t\t\tok: response.ok,\n\t\t\t\t\tstatus: response.status,\n\t\t\t\t\tstatusText: response.statusText,\n\t\t\t\t\tbody: responseHeader ?? responseBody,\n\t\t\t\t};\n\n\t\t\t\tcatchErrorCodes(options, result);\n\n\t\t\t\tresolve(result.body);\n\t\t\t}\n\t\t} catch (error) {\n\t\t\treject(error);\n\t\t}\n\t});\n};"},usePartial:!0,useData:!0},hn={compiler:[8,">= 4.3.0"],main:function(e,t,n,r,o){return"export const sendRequest = async (\n\toptions: ApiRequestOptions,\n\turl: string,\n\tbody: any,\n\tformData: FormData | undefined,\n\theaders: Headers,\n\tonCancel: OnCancel\n): Promise => {\n\tconst controller = new AbortController();\n\n\tconst request: RequestInit = {\n\t\theaders,\n\t\tmethod: options.method,\n\t\tbody: body ?? formData,\n\t\tsignal: controller.signal as AbortSignal,\n\t};\n\n\tonCancel(() => controller.abort());\n\n\treturn await fetch(url, request);\n};"},useData:!0},yn={compiler:[8,">= 4.3.0"],main:function(e,t,n,r,o){var a,l=e.strict,s=e.lambda,i=e.lookupProperty||function(e,t){if(Object.prototype.hasOwnProperty.call(e,t))return e[t]};return(null!=(a=e.invokePartial(i(r,"header"),t,{name:"header",data:o,helpers:n,partials:r,decorators:e.decorators}))?a:"")+"\nimport type { ApiRequestOptions } from './ApiRequestOptions';\n\ntype Resolver = (options: ApiRequestOptions) => Promise;\ntype Headers = Record;\n\nexport type OpenAPIConfig = {\n\tBASE: string;\n\tVERSION: string;\n\tWITH_CREDENTIALS: boolean;\n\tCREDENTIALS: 'include' | 'omit' | 'same-origin';\n\tTOKEN?: string | Resolver;\n\tUSERNAME?: string | Resolver;\n\tPASSWORD?: string | Resolver;\n\tHEADERS?: Headers | Resolver;\n\tENCODE_PATH?: (path: string) => string;\n};\n\nexport const OpenAPI: OpenAPIConfig = {\n\tBASE: '"+(null!=(a=s(l(t,"server",{start:{line:21,column:11},end:{line:21,column:17}}),t))?a:"")+"',\n\tVERSION: '"+(null!=(a=s(l(t,"version",{start:{line:22,column:14},end:{line:22,column:21}}),t))?a:"")+"',\n\tWITH_CREDENTIALS: false,\n\tCREDENTIALS: 'include',\n\tTOKEN: undefined,\n\tUSERNAME: undefined,\n\tPASSWORD: undefined,\n\tHEADERS: undefined,\n\tENCODE_PATH: undefined,\n};"},usePartial:!0,useData:!0},vn={1:function(e,t,n,r,o){var a,l=e.lookupProperty||function(e,t){if(Object.prototype.hasOwnProperty.call(e,t))return e[t]};return null!=(a=e.invokePartial(l(r,"fetch/request"),t,{name:"fetch/request",data:o,helpers:n,partials:r,decorators:e.decorators}))?a:""},3:function(e,t,n,r,o){var a,l=e.lookupProperty||function(e,t){if(Object.prototype.hasOwnProperty.call(e,t))return e[t]};return null!=(a=e.invokePartial(l(r,"xhr/request"),t,{name:"xhr/request",data:o,helpers:n,partials:r,decorators:e.decorators}))?a:""},5:function(e,t,n,r,o){var a,l=e.lookupProperty||function(e,t){if(Object.prototype.hasOwnProperty.call(e,t))return e[t]};return null!=(a=e.invokePartial(l(r,"axios/request"),t,{name:"axios/request",data:o,helpers:n,partials:r,decorators:e.decorators}))?a:""},7:function(e,t,n,r,o){var a,l=e.lookupProperty||function(e,t){if(Object.prototype.hasOwnProperty.call(e,t))return e[t]};return null!=(a=e.invokePartial(l(r,"angular/request"),t,{name:"angular/request",data:o,helpers:n,partials:r,decorators:e.decorators}))?a:""},9:function(e,t,n,r,o){var a,l=e.lookupProperty||function(e,t){if(Object.prototype.hasOwnProperty.call(e,t))return e[t]};return null!=(a=e.invokePartial(l(r,"node/request"),t,{name:"node/request",data:o,helpers:n,partials:r,decorators:e.decorators}))?a:""},compiler:[8,">= 4.3.0"],main:function(e,t,n,r,o){var a,l=null!=t?t:e.nullContext||{},s=e.lookupProperty||function(e,t){if(Object.prototype.hasOwnProperty.call(e,t))return e[t]};return(null!=(a=s(n,"equals").call(l,s(s(o,"root"),"httpClient"),"fetch",{name:"equals",hash:{},fn:e.program(1,o,0),inverse:e.noop,data:o,loc:{start:{line:1,column:0},end:{line:1,column:67}}}))?a:"")+(null!=(a=s(n,"equals").call(l,s(s(o,"root"),"httpClient"),"xhr",{name:"equals",hash:{},fn:e.program(3,o,0),inverse:e.noop,data:o,loc:{start:{line:2,column:0},end:{line:2,column:63}}}))?a:"")+(null!=(a=s(n,"equals").call(l,s(s(o,"root"),"httpClient"),"axios",{name:"equals",hash:{},fn:e.program(5,o,0),inverse:e.noop,data:o,loc:{start:{line:3,column:0},end:{line:3,column:67}}}))?a:"")+(null!=(a=s(n,"equals").call(l,s(s(o,"root"),"httpClient"),"angular",{name:"equals",hash:{},fn:e.program(7,o,0),inverse:e.noop,data:o,loc:{start:{line:4,column:0},end:{line:4,column:71}}}))?a:"")+(null!=(a=s(n,"equals").call(l,s(s(o,"root"),"httpClient"),"node",{name:"equals",hash:{},fn:e.program(9,o,0),inverse:e.noop,data:o,loc:{start:{line:5,column:0},end:{line:5,column:65}}}))?a:"")},usePartial:!0,useData:!0},gn={compiler:[8,">= 4.3.0"],main:function(e,t,n,r,o){return"const getHeaders = async (config: OpenAPIConfig, options: ApiRequestOptions): Promise => {\n\tconst token = await resolve(options, config.TOKEN);\n\tconst username = await resolve(options, config.USERNAME);\n\tconst password = await resolve(options, config.PASSWORD);\n\tconst additionalHeaders = await resolve(options, config.HEADERS);\n\n\tconst headers = Object.entries({\n\t\tAccept: 'application/json',\n\t\t...additionalHeaders,\n\t\t...options.headers,\n\t})\n\t\t.filter(([_, value]) => isDefined(value))\n\t\t.reduce((headers, [key, value]) => ({\n\t\t\t...headers,\n\t\t\t[key]: String(value),\n\t\t}), {} as Record);\n\n\tif (isStringWithValue(token)) {\n\t\theaders['Authorization'] = `Bearer ${token}`;\n\t}\n\n\tif (isStringWithValue(username) && isStringWithValue(password)) {\n\t\tconst credentials = base64(`${username}:${password}`);\n\t\theaders['Authorization'] = `Basic ${credentials}`;\n\t}\n\n\tif (options.body) {\n\t\tif (options.mediaType) {\n\t\t\theaders['Content-Type'] = options.mediaType;\n\t\t} else if (isBlob(options.body)) {\n\t\t\theaders['Content-Type'] = options.body.type || 'application/octet-stream';\n\t\t} else if (isString(options.body)) {\n\t\t\theaders['Content-Type'] = 'text/plain';\n\t\t} else if (!isFormData(options.body)) {\n\t\t\theaders['Content-Type'] = 'application/json';\n\t\t}\n\t}\n\n\treturn new Headers(headers);\n};"},useData:!0},Pn={compiler:[8,">= 4.3.0"],main:function(e,t,n,r,o){return"const getRequestBody = (options: ApiRequestOptions): any => {\n\tif (options.body !== undefined) {\n\t\tif (options.mediaType?.includes('/json')) {\n\t\t\treturn JSON.stringify(options.body)\n\t\t} else if (isString(options.body) || isBlob(options.body) || isFormData(options.body)) {\n\t\t\treturn options.body;\n\t\t} else {\n\t\t\treturn JSON.stringify(options.body);\n\t\t}\n\t}\n\treturn undefined;\n};"},useData:!0},bn={compiler:[8,">= 4.3.0"],main:function(e,t,n,r,o){return"const getResponseBody = (xhr: XMLHttpRequest): any => {\n\tif (xhr.status !== 204) {\n\t\ttry {\n\t\t\tconst contentType = xhr.getResponseHeader('Content-Type');\n\t\t\tif (contentType) {\n\t\t\t\tconst isJSON = contentType.toLowerCase().startsWith('application/json');\n\t\t\t\tif (isJSON) {\n\t\t\t\t\treturn JSON.parse(xhr.responseText);\n\t\t\t\t} else {\n\t\t\t\t\treturn xhr.responseText;\n\t\t\t\t}\n\t\t\t}\n\t\t} catch (error) {\n\t\t\tconsole.error(error);\n\t\t}\n\t}\n\treturn undefined;\n};"},useData:!0},On={compiler:[8,">= 4.3.0"],main:function(e,t,n,r,o){return"const getResponseHeader = (xhr: XMLHttpRequest, responseHeader?: string): string | undefined => {\n\tif (responseHeader) {\n\t\tconst content = xhr.getResponseHeader(responseHeader);\n\t\tif (isString(content)) {\n\t\t\treturn content;\n\t\t}\n\t}\n\treturn undefined;\n};"},useData:!0},xn={compiler:[8,">= 4.3.0"],main:function(e,t,n,r,o){var a,l=e.lookupProperty||function(e,t){if(Object.prototype.hasOwnProperty.call(e,t))return e[t]};return(null!=(a=e.invokePartial(l(r,"header"),t,{name:"header",data:o,helpers:n,partials:r,decorators:e.decorators}))?a:"")+"\nimport { ApiError } from './ApiError';\nimport type { ApiRequestOptions } from './ApiRequestOptions';\nimport type { ApiResult } from './ApiResult';\nimport { CancelablePromise } from './CancelablePromise';\nimport type { OnCancel } from './CancelablePromise';\nimport type { OpenAPIConfig } from './OpenAPI';\n\n"+(null!=(a=e.invokePartial(l(r,"functions/isDefined"),t,{name:"functions/isDefined",data:o,helpers:n,partials:r,decorators:e.decorators}))?a:"")+"\n\n"+(null!=(a=e.invokePartial(l(r,"functions/isString"),t,{name:"functions/isString",data:o,helpers:n,partials:r,decorators:e.decorators}))?a:"")+"\n\n"+(null!=(a=e.invokePartial(l(r,"functions/isStringWithValue"),t,{name:"functions/isStringWithValue",data:o,helpers:n,partials:r,decorators:e.decorators}))?a:"")+"\n\n"+(null!=(a=e.invokePartial(l(r,"functions/isBlob"),t,{name:"functions/isBlob",data:o,helpers:n,partials:r,decorators:e.decorators}))?a:"")+"\n\n"+(null!=(a=e.invokePartial(l(r,"functions/isFormData"),t,{name:"functions/isFormData",data:o,helpers:n,partials:r,decorators:e.decorators}))?a:"")+"\n\n"+(null!=(a=e.invokePartial(l(r,"functions/isSuccess"),t,{name:"functions/isSuccess",data:o,helpers:n,partials:r,decorators:e.decorators}))?a:"")+"\n\n"+(null!=(a=e.invokePartial(l(r,"functions/base64"),t,{name:"functions/base64",data:o,helpers:n,partials:r,decorators:e.decorators}))?a:"")+"\n\n"+(null!=(a=e.invokePartial(l(r,"functions/getQueryString"),t,{name:"functions/getQueryString",data:o,helpers:n,partials:r,decorators:e.decorators}))?a:"")+"\n\n"+(null!=(a=e.invokePartial(l(r,"functions/getUrl"),t,{name:"functions/getUrl",data:o,helpers:n,partials:r,decorators:e.decorators}))?a:"")+"\n\n"+(null!=(a=e.invokePartial(l(r,"functions/getFormData"),t,{name:"functions/getFormData",data:o,helpers:n,partials:r,decorators:e.decorators}))?a:"")+"\n\n"+(null!=(a=e.invokePartial(l(r,"functions/resolve"),t,{name:"functions/resolve",data:o,helpers:n,partials:r,decorators:e.decorators}))?a:"")+"\n\n"+(null!=(a=e.invokePartial(l(r,"fetch/getHeaders"),t,{name:"fetch/getHeaders",data:o,helpers:n,partials:r,decorators:e.decorators}))?a:"")+"\n\n"+(null!=(a=e.invokePartial(l(r,"xhr/getRequestBody"),t,{name:"xhr/getRequestBody",data:o,helpers:n,partials:r,decorators:e.decorators}))?a:"")+"\n\n"+(null!=(a=e.invokePartial(l(r,"xhr/sendRequest"),t,{name:"xhr/sendRequest",data:o,helpers:n,partials:r,decorators:e.decorators}))?a:"")+"\n\n"+(null!=(a=e.invokePartial(l(r,"xhr/getResponseHeader"),t,{name:"xhr/getResponseHeader",data:o,helpers:n,partials:r,decorators:e.decorators}))?a:"")+"\n\n"+(null!=(a=e.invokePartial(l(r,"xhr/getResponseBody"),t,{name:"xhr/getResponseBody",data:o,helpers:n,partials:r,decorators:e.decorators}))?a:"")+"\n\n"+(null!=(a=e.invokePartial(l(r,"functions/catchErrorCodes"),t,{name:"functions/catchErrorCodes",data:o,helpers:n,partials:r,decorators:e.decorators}))?a:"")+"\n\n/**\n * Request method\n * @param config The OpenAPI configuration object\n * @param options The request options from the service\n * @returns CancelablePromise\n * @throws ApiError\n */\nexport const request = (config: OpenAPIConfig, options: ApiRequestOptions): CancelablePromise => {\n\treturn new CancelablePromise(async (resolve, reject, onCancel) => {\n\t\ttry {\n\t\t\tconst url = getUrl(config, options);\n\t\t\tconst formData = getFormData(options);\n\t\t\tconst body = getRequestBody(options);\n\t\t\tconst headers = await getHeaders(config, options);\n\n\t\t\tif (!onCancel.isCancelled) {\n\t\t\t\tconst response = await sendRequest(config, options, url, body, formData, headers, onCancel);\n\t\t\t\tconst responseBody = getResponseBody(response);\n\t\t\t\tconst responseHeader = getResponseHeader(response, options.responseHeader);\n\n\t\t\t\tconst result: ApiResult = {\n\t\t\t\t\turl,\n\t\t\t\t\tok: isSuccess(response.status),\n\t\t\t\t\tstatus: response.status,\n\t\t\t\t\tstatusText: response.statusText,\n\t\t\t\t\tbody: responseHeader ?? responseBody,\n\t\t\t\t};\n\n\t\t\t\tcatchErrorCodes(options, result);\n\n\t\t\t\tresolve(result.body);\n\t\t\t}\n\t\t} catch (error) {\n\t\t\treject(error);\n\t\t}\n\t});\n};"},usePartial:!0,useData:!0},kn={compiler:[8,">= 4.3.0"],main:function(e,t,n,r,o){return"export const sendRequest = async (\n\tconfig: OpenAPIConfig,\n\toptions: ApiRequestOptions,\n\turl: string,\n\tbody: any,\n\tformData: FormData | undefined,\n\theaders: Headers,\n\tonCancel: OnCancel\n): Promise => {\n\tconst xhr = new XMLHttpRequest();\n\txhr.open(options.method, url, true);\n\txhr.withCredentials = config.WITH_CREDENTIALS;\n\n\theaders.forEach((value, key) => {\n\t\txhr.setRequestHeader(key, value);\n\t});\n\n\treturn new Promise((resolve, reject) => {\n\t\txhr.onload = () => resolve(xhr);\n\t\txhr.onabort = () => reject(new Error('Request aborted'));\n\t\txhr.onerror = () => reject(new Error('Network error'));\n\t\txhr.send(body ?? formData);\n\n\t\tonCancel(() => xhr.abort());\n\t});\n};"},useData:!0},Rn={1:function(e,t,n,r,o){var a,l=e.lookupProperty||function(e,t){if(Object.prototype.hasOwnProperty.call(e,t))return e[t]};return"\n"+(null!=(a=l(n,"each").call(null!=t?t:e.nullContext||{},l(t,"imports"),{name:"each",hash:{},fn:e.program(2,o,0),inverse:e.noop,data:o,loc:{start:{line:5,column:0},end:{line:7,column:9}}}))?a:"")},2:function(e,t,n,r,o){var a,l=e.lambda;return"import type { "+(null!=(a=l(t,t))?a:"")+" } from './"+(null!=(a=l(t,t))?a:"")+"';\n"},4:function(e,t,n,r,o){var a,l=e.lookupProperty||function(e,t){if(Object.prototype.hasOwnProperty.call(e,t))return e[t]};return null!=(a=e.invokePartial(l(r,"exportInterface"),t,{name:"exportInterface",data:o,helpers:n,partials:r,decorators:e.decorators}))?a:""},6:function(e,t,n,r,o){var a,l=e.lookupProperty||function(e,t){if(Object.prototype.hasOwnProperty.call(e,t))return e[t]};return null!=(a=l(n,"equals").call(null!=t?t:e.nullContext||{},l(t,"export"),"one-of",{name:"equals",hash:{},fn:e.program(7,o,0),inverse:e.program(9,o,0),data:o,loc:{start:{line:12,column:0},end:{line:26,column:0}}}))?a:""},7:function(e,t,n,r,o){var a,l=e.lookupProperty||function(e,t){if(Object.prototype.hasOwnProperty.call(e,t))return e[t]};return null!=(a=e.invokePartial(l(r,"exportComposition"),t,{name:"exportComposition",data:o,helpers:n,partials:r,decorators:e.decorators}))?a:""},9:function(e,t,n,r,o){var a,l=e.lookupProperty||function(e,t){if(Object.prototype.hasOwnProperty.call(e,t))return e[t]};return null!=(a=l(n,"equals").call(null!=t?t:e.nullContext||{},l(t,"export"),"any-of",{name:"equals",hash:{},fn:e.program(7,o,0),inverse:e.program(10,o,0),data:o,loc:{start:{line:14,column:0},end:{line:26,column:0}}}))?a:""},10:function(e,t,n,r,o){var a,l=e.lookupProperty||function(e,t){if(Object.prototype.hasOwnProperty.call(e,t))return e[t]};return null!=(a=l(n,"equals").call(null!=t?t:e.nullContext||{},l(t,"export"),"all-of",{name:"equals",hash:{},fn:e.program(7,o,0),inverse:e.program(11,o,0),data:o,loc:{start:{line:16,column:0},end:{line:26,column:0}}}))?a:""},11:function(e,t,n,r,o){var a,l=e.lookupProperty||function(e,t){if(Object.prototype.hasOwnProperty.call(e,t))return e[t]};return null!=(a=l(n,"equals").call(null!=t?t:e.nullContext||{},l(t,"export"),"enum",{name:"equals",hash:{},fn:e.program(12,o,0),inverse:e.program(13,o,0),data:o,loc:{start:{line:18,column:0},end:{line:26,column:0}}}))?a:""},12:function(e,t,n,r,o){var a,l=e.lookupProperty||function(e,t){if(Object.prototype.hasOwnProperty.call(e,t))return e[t]};return null!=(a=l(n,"if").call(null!=t?t:e.nullContext||{},l(l(o,"root"),"useUnionTypes"),{name:"if",hash:{},fn:e.program(13,o,0),inverse:e.program(15,o,0),data:o,loc:{start:{line:19,column:0},end:{line:23,column:7}}}))?a:""},13:function(e,t,n,r,o){var a,l=e.lookupProperty||function(e,t){if(Object.prototype.hasOwnProperty.call(e,t))return e[t]};return null!=(a=e.invokePartial(l(r,"exportType"),t,{name:"exportType",data:o,helpers:n,partials:r,decorators:e.decorators}))?a:""},15:function(e,t,n,r,o){var a,l=e.lookupProperty||function(e,t){if(Object.prototype.hasOwnProperty.call(e,t))return e[t]};return null!=(a=e.invokePartial(l(r,"exportEnum"),t,{name:"exportEnum",data:o,helpers:n,partials:r,decorators:e.decorators}))?a:""},compiler:[8,">= 4.3.0"],main:function(e,t,n,r,o){var a,l=null!=t?t:e.nullContext||{},s=e.lookupProperty||function(e,t){if(Object.prototype.hasOwnProperty.call(e,t))return e[t]};return(null!=(a=e.invokePartial(s(r,"header"),t,{name:"header",data:o,helpers:n,partials:r,decorators:e.decorators}))?a:"")+"\n"+(null!=(a=s(n,"if").call(l,s(t,"imports"),{name:"if",hash:{},fn:e.program(1,o,0),inverse:e.noop,data:o,loc:{start:{line:3,column:0},end:{line:8,column:7}}}))?a:"")+"\n"+(null!=(a=s(n,"equals").call(l,s(t,"export"),"interface",{name:"equals",hash:{},fn:e.program(4,o,0),inverse:e.program(6,o,0),data:o,loc:{start:{line:10,column:0},end:{line:26,column:11}}}))?a:"")},usePartial:!0,useData:!0},Cn={compiler:[8,">= 4.3.0"],main:function(e,t,n,r,o){var a,l=e.lookupProperty||function(e,t){if(Object.prototype.hasOwnProperty.call(e,t))return e[t]};return(null!=(a=e.invokePartial(l(r,"header"),t,{name:"header",data:o,helpers:n,partials:r,decorators:e.decorators}))?a:"")+"\nexport const $"+(null!=(a=e.lambda(e.strict(t,"name",{start:{line:3,column:17},end:{line:3,column:21}}),t))?a:"")+" = "+(null!=(a=e.invokePartial(l(r,"schema"),t,{name:"schema",data:o,helpers:n,partials:r,decorators:e.decorators}))?a:"")+" as const;"},usePartial:!0,useData:!0},wn={1:function(e,t,n,r,o){var a,l=e.lookupProperty||function(e,t){if(Object.prototype.hasOwnProperty.call(e,t))return e[t]};return(null!=(a=l(n,"if").call(null!=t?t:e.nullContext||{},l(l(o,"root"),"exportClient"),{name:"if",hash:{},fn:e.program(2,o,0),inverse:e.program(4,o,0),data:o,loc:{start:{line:4,column:0},end:{line:11,column:7}}}))?a:"")+"\n"},2:function(e,t,n,r,o){return"import { Injectable } from '@angular/core';\nimport type { Observable } from 'rxjs';\n"},4:function(e,t,n,r,o){return"import { Injectable } from '@angular/core';\nimport { HttpClient } from '@angular/common/http';\nimport type { Observable } from 'rxjs';\n"},6:function(e,t,n,r,o){var a,l=e.lookupProperty||function(e,t){if(Object.prototype.hasOwnProperty.call(e,t))return e[t]};return(null!=(a=l(n,"each").call(null!=t?t:e.nullContext||{},l(t,"imports"),{name:"each",hash:{},fn:e.program(7,o,0),inverse:e.noop,data:o,loc:{start:{line:15,column:0},end:{line:17,column:9}}}))?a:"")+"\n"},7:function(e,t,n,r,o){var a,l=e.lambda;return"import type { "+(null!=(a=l(t,t))?a:"")+" } from '../models/"+(null!=(a=l(t,t))?a:"")+"';\n"},9:function(e,t,n,r,o){return"import type { CancelablePromise } from '../core/CancelablePromise';\n"},11:function(e,t,n,r,o){var a,l=e.lookupProperty||function(e,t){if(Object.prototype.hasOwnProperty.call(e,t))return e[t]};return null!=(a=l(n,"equals").call(null!=t?t:e.nullContext||{},l(l(o,"root"),"httpClient"),"angular",{name:"equals",hash:{},fn:e.program(12,o,0),inverse:e.program(14,o,0),data:o,loc:{start:{line:24,column:0},end:{line:28,column:11}}}))?a:""},12:function(e,t,n,r,o){return"import { BaseHttpRequest } from '../core/BaseHttpRequest';\n"},14:function(e,t,n,r,o){return"import type { BaseHttpRequest } from '../core/BaseHttpRequest';\n"},16:function(e,t,n,r,o){return"import { OpenAPI } from '../core/OpenAPI';\nimport { request as __request } from '../core/request';\n"},18:function(e,t,n,r,o){return"@Injectable()\n"},20:function(e,t,n,r,o){return"\n\tconstructor(public readonly httpRequest: BaseHttpRequest) {}\n"},22:function(e,t,n,r,o){var a,l=e.lookupProperty||function(e,t){if(Object.prototype.hasOwnProperty.call(e,t))return e[t]};return null!=(a=l(n,"equals").call(null!=t?t:e.nullContext||{},l(l(o,"root"),"httpClient"),"angular",{name:"equals",hash:{},fn:e.program(23,o,0),inverse:e.noop,data:o,loc:{start:{line:42,column:1},end:{line:45,column:12}}}))?a:""},23:function(e,t,n,r,o){return"\n\tconstructor(public readonly http: HttpClient) {}\n"},25:function(e,t,n,r,o){var a,l=null!=t?t:e.nullContext||{},s=e.strict,i=e.lambda,u=e.lookupProperty||function(e,t){if(Object.prototype.hasOwnProperty.call(e,t))return e[t]};return"\t/**\n"+(null!=(a=u(n,"if").call(l,u(t,"deprecated"),{name:"if",hash:{},fn:e.program(26,o,0),inverse:e.noop,data:o,loc:{start:{line:50,column:1},end:{line:52,column:8}}}))?a:"")+(null!=(a=u(n,"if").call(l,u(t,"summary"),{name:"if",hash:{},fn:e.program(28,o,0),inverse:e.noop,data:o,loc:{start:{line:53,column:1},end:{line:55,column:8}}}))?a:"")+(null!=(a=u(n,"if").call(l,u(t,"description"),{name:"if",hash:{},fn:e.program(30,o,0),inverse:e.noop,data:o,loc:{start:{line:56,column:1},end:{line:58,column:8}}}))?a:"")+(null!=(a=u(n,"unless").call(l,u(u(o,"root"),"useOptions"),{name:"unless",hash:{},fn:e.program(32,o,0),inverse:e.noop,data:o,loc:{start:{line:59,column:1},end:{line:65,column:12}}}))?a:"")+(null!=(a=u(n,"each").call(l,u(t,"results"),{name:"each",hash:{},fn:e.program(37,o,0),inverse:e.noop,data:o,loc:{start:{line:66,column:1},end:{line:68,column:10}}}))?a:"")+"\t * @throws ApiError\n\t */\n"+(null!=(a=u(n,"if").call(l,u(u(o,"root"),"exportClient"),{name:"if",hash:{},fn:e.program(39,o,0),inverse:e.program(44,o,0),data:o,loc:{start:{line:71,column:1},end:{line:87,column:8}}}))?a:"")+"\t\t\tmethod: '"+(null!=(a=i(s(t,"method",{start:{line:88,column:15},end:{line:88,column:21}}),t))?a:"")+"',\n\t\t\turl: '"+(null!=(a=i(s(t,"path",{start:{line:89,column:12},end:{line:89,column:16}}),t))?a:"")+"',\n"+(null!=(a=u(n,"if").call(l,u(t,"parametersPath"),{name:"if",hash:{},fn:e.program(49,o,0),inverse:e.noop,data:o,loc:{start:{line:90,column:3},end:{line:96,column:10}}}))?a:"")+(null!=(a=u(n,"if").call(l,u(t,"parametersCookie"),{name:"if",hash:{},fn:e.program(52,o,0),inverse:e.noop,data:o,loc:{start:{line:97,column:3},end:{line:103,column:10}}}))?a:"")+(null!=(a=u(n,"if").call(l,u(t,"parametersHeader"),{name:"if",hash:{},fn:e.program(54,o,0),inverse:e.noop,data:o,loc:{start:{line:104,column:3},end:{line:110,column:10}}}))?a:"")+(null!=(a=u(n,"if").call(l,u(t,"parametersQuery"),{name:"if",hash:{},fn:e.program(56,o,0),inverse:e.noop,data:o,loc:{start:{line:111,column:3},end:{line:117,column:10}}}))?a:"")+(null!=(a=u(n,"if").call(l,u(t,"parametersForm"),{name:"if",hash:{},fn:e.program(58,o,0),inverse:e.noop,data:o,loc:{start:{line:118,column:3},end:{line:124,column:10}}}))?a:"")+(null!=(a=u(n,"if").call(l,u(t,"parametersBody"),{name:"if",hash:{},fn:e.program(60,o,0),inverse:e.noop,data:o,loc:{start:{line:125,column:3},end:{line:135,column:10}}}))?a:"")+(null!=(a=u(n,"if").call(l,u(t,"responseHeader"),{name:"if",hash:{},fn:e.program(67,o,0),inverse:e.noop,data:o,loc:{start:{line:136,column:3},end:{line:138,column:10}}}))?a:"")+(null!=(a=u(n,"if").call(l,u(t,"errors"),{name:"if",hash:{},fn:e.program(69,o,0),inverse:e.noop,data:o,loc:{start:{line:139,column:3},end:{line:145,column:10}}}))?a:"")+"\t\t});\n\t}\n\n"},26:function(e,t,n,r,o){return"\t * @deprecated\n"},28:function(e,t,n,r,o){var a,l=e.lookupProperty||function(e,t){if(Object.prototype.hasOwnProperty.call(e,t))return e[t]};return"\t * "+(null!=(a=l(n,"escapeComment").call(null!=t?t:e.nullContext||{},l(t,"summary"),{name:"escapeComment",hash:{},data:o,loc:{start:{line:54,column:4},end:{line:54,column:31}}}))?a:"")+"\n"},30:function(e,t,n,r,o){var a,l=e.lookupProperty||function(e,t){if(Object.prototype.hasOwnProperty.call(e,t))return e[t]};return"\t * "+(null!=(a=l(n,"escapeComment").call(null!=t?t:e.nullContext||{},l(t,"description"),{name:"escapeComment",hash:{},data:o,loc:{start:{line:57,column:4},end:{line:57,column:35}}}))?a:"")+"\n"},32:function(e,t,n,r,o){var a,l=e.lookupProperty||function(e,t){if(Object.prototype.hasOwnProperty.call(e,t))return e[t]};return null!=(a=l(n,"if").call(null!=t?t:e.nullContext||{},l(t,"parameters"),{name:"if",hash:{},fn:e.program(33,o,0),inverse:e.noop,data:o,loc:{start:{line:60,column:1},end:{line:64,column:8}}}))?a:""},33:function(e,t,n,r,o){var a,l=e.lookupProperty||function(e,t){if(Object.prototype.hasOwnProperty.call(e,t))return e[t]};return null!=(a=l(n,"each").call(null!=t?t:e.nullContext||{},l(t,"parameters"),{name:"each",hash:{},fn:e.program(34,o,0),inverse:e.noop,data:o,loc:{start:{line:61,column:1},end:{line:63,column:10}}}))?a:""},34:function(e,t,n,r,o){var a,l=e.lookupProperty||function(e,t){if(Object.prototype.hasOwnProperty.call(e,t))return e[t]};return"\t * @param "+(null!=(a=e.lambda(e.strict(t,"name",{start:{line:62,column:14},end:{line:62,column:18}}),t))?a:"")+" "+(null!=(a=l(n,"if").call(null!=t?t:e.nullContext||{},l(t,"description"),{name:"if",hash:{},fn:e.program(35,o,0),inverse:e.noop,data:o,loc:{start:{line:62,column:22},end:{line:62,column:79}}}))?a:"")+"\n"},35:function(e,t,n,r,o){var a,l=e.lookupProperty||function(e,t){if(Object.prototype.hasOwnProperty.call(e,t))return e[t]};return null!=(a=l(n,"escapeComment").call(null!=t?t:e.nullContext||{},l(t,"description"),{name:"escapeComment",hash:{},data:o,loc:{start:{line:62,column:41},end:{line:62,column:72}}}))?a:""},37:function(e,t,n,r,o){var a,l=e.lookupProperty||function(e,t){if(Object.prototype.hasOwnProperty.call(e,t))return e[t]};return"\t * @returns "+(null!=(a=e.lambda(e.strict(t,"type",{start:{line:67,column:16},end:{line:67,column:20}}),t))?a:"")+" "+(null!=(a=l(n,"if").call(null!=t?t:e.nullContext||{},l(t,"description"),{name:"if",hash:{},fn:e.program(35,o,0),inverse:e.noop,data:o,loc:{start:{line:67,column:24},end:{line:67,column:81}}}))?a:"")+"\n"},39:function(e,t,n,r,o){var a,l=e.lookupProperty||function(e,t){if(Object.prototype.hasOwnProperty.call(e,t))return e[t]};return null!=(a=l(n,"equals").call(null!=t?t:e.nullContext||{},l(l(o,"root"),"httpClient"),"angular",{name:"equals",hash:{},fn:e.program(40,o,0),inverse:e.program(42,o,0),data:o,loc:{start:{line:72,column:1},end:{line:78,column:12}}}))?a:""},40:function(e,t,n,r,o){var a,l=e.lookupProperty||function(e,t){if(Object.prototype.hasOwnProperty.call(e,t))return e[t]};return"\tpublic "+(null!=(a=e.lambda(e.strict(t,"name",{start:{line:73,column:11},end:{line:73,column:15}}),t))?a:"")+"("+(null!=(a=e.invokePartial(l(r,"parameters"),t,{name:"parameters",data:o,helpers:n,partials:r,decorators:e.decorators}))?a:"")+"): Observable<"+(null!=(a=e.invokePartial(l(r,"result"),t,{name:"result",data:o,helpers:n,partials:r,decorators:e.decorators}))?a:"")+"> {\n\t\treturn this.httpRequest.request({\n"},42:function(e,t,n,r,o){var a,l=e.lookupProperty||function(e,t){if(Object.prototype.hasOwnProperty.call(e,t))return e[t]};return"\tpublic "+(null!=(a=e.lambda(e.strict(t,"name",{start:{line:76,column:11},end:{line:76,column:15}}),t))?a:"")+"("+(null!=(a=e.invokePartial(l(r,"parameters"),t,{name:"parameters",data:o,helpers:n,partials:r,decorators:e.decorators}))?a:"")+"): CancelablePromise<"+(null!=(a=e.invokePartial(l(r,"result"),t,{name:"result",data:o,helpers:n,partials:r,decorators:e.decorators}))?a:"")+"> {\n\t\treturn this.httpRequest.request({\n"},44:function(e,t,n,r,o){var a,l=e.lookupProperty||function(e,t){if(Object.prototype.hasOwnProperty.call(e,t))return e[t]};return null!=(a=l(n,"equals").call(null!=t?t:e.nullContext||{},l(l(o,"root"),"httpClient"),"angular",{name:"equals",hash:{},fn:e.program(45,o,0),inverse:e.program(47,o,0),data:o,loc:{start:{line:80,column:1},end:{line:86,column:12}}}))?a:""},45:function(e,t,n,r,o){var a,l=e.lookupProperty||function(e,t){if(Object.prototype.hasOwnProperty.call(e,t))return e[t]};return"\tpublic "+(null!=(a=e.lambda(e.strict(t,"name",{start:{line:81,column:11},end:{line:81,column:15}}),t))?a:"")+"("+(null!=(a=e.invokePartial(l(r,"parameters"),t,{name:"parameters",data:o,helpers:n,partials:r,decorators:e.decorators}))?a:"")+"): Observable<"+(null!=(a=e.invokePartial(l(r,"result"),t,{name:"result",data:o,helpers:n,partials:r,decorators:e.decorators}))?a:"")+"> {\n\t\treturn __request(OpenAPI, this.http, {\n"},47:function(e,t,n,r,o){var a,l=e.lookupProperty||function(e,t){if(Object.prototype.hasOwnProperty.call(e,t))return e[t]};return"\tpublic static "+(null!=(a=e.lambda(e.strict(t,"name",{start:{line:84,column:18},end:{line:84,column:22}}),t))?a:"")+"("+(null!=(a=e.invokePartial(l(r,"parameters"),t,{name:"parameters",data:o,helpers:n,partials:r,decorators:e.decorators}))?a:"")+"): CancelablePromise<"+(null!=(a=e.invokePartial(l(r,"result"),t,{name:"result",data:o,helpers:n,partials:r,decorators:e.decorators}))?a:"")+"> {\n\t\treturn __request(OpenAPI, {\n"},49:function(e,t,n,r,o){var a,l=e.lookupProperty||function(e,t){if(Object.prototype.hasOwnProperty.call(e,t))return e[t]};return"\t\t\tpath: {\n"+(null!=(a=l(n,"each").call(null!=t?t:e.nullContext||{},l(t,"parametersPath"),{name:"each",hash:{},fn:e.program(50,o,0),inverse:e.noop,data:o,loc:{start:{line:92,column:4},end:{line:94,column:13}}}))?a:"")+"\t\t\t},\n"},50:function(e,t,n,r,o){var a,l=e.strict,s=e.lambda;return"\t\t\t\t'"+(null!=(a=s(l(t,"prop",{start:{line:93,column:8},end:{line:93,column:12}}),t))?a:"")+"': "+(null!=(a=s(l(t,"name",{start:{line:93,column:21},end:{line:93,column:25}}),t))?a:"")+",\n"},52:function(e,t,n,r,o){var a,l=e.lookupProperty||function(e,t){if(Object.prototype.hasOwnProperty.call(e,t))return e[t]};return"\t\t\tcookies: {\n"+(null!=(a=l(n,"each").call(null!=t?t:e.nullContext||{},l(t,"parametersCookie"),{name:"each",hash:{},fn:e.program(50,o,0),inverse:e.noop,data:o,loc:{start:{line:99,column:4},end:{line:101,column:13}}}))?a:"")+"\t\t\t},\n"},54:function(e,t,n,r,o){var a,l=e.lookupProperty||function(e,t){if(Object.prototype.hasOwnProperty.call(e,t))return e[t]};return"\t\t\theaders: {\n"+(null!=(a=l(n,"each").call(null!=t?t:e.nullContext||{},l(t,"parametersHeader"),{name:"each",hash:{},fn:e.program(50,o,0),inverse:e.noop,data:o,loc:{start:{line:106,column:4},end:{line:108,column:13}}}))?a:"")+"\t\t\t},\n"},56:function(e,t,n,r,o){var a,l=e.lookupProperty||function(e,t){if(Object.prototype.hasOwnProperty.call(e,t))return e[t]};return"\t\t\tquery: {\n"+(null!=(a=l(n,"each").call(null!=t?t:e.nullContext||{},l(t,"parametersQuery"),{name:"each",hash:{},fn:e.program(50,o,0),inverse:e.noop,data:o,loc:{start:{line:113,column:4},end:{line:115,column:13}}}))?a:"")+"\t\t\t},\n"},58:function(e,t,n,r,o){var a,l=e.lookupProperty||function(e,t){if(Object.prototype.hasOwnProperty.call(e,t))return e[t]};return"\t\t\tformData: {\n"+(null!=(a=l(n,"each").call(null!=t?t:e.nullContext||{},l(t,"parametersForm"),{name:"each",hash:{},fn:e.program(50,o,0),inverse:e.noop,data:o,loc:{start:{line:120,column:4},end:{line:122,column:13}}}))?a:"")+"\t\t\t},\n"},60:function(e,t,n,r,o){var a,l=null!=t?t:e.nullContext||{},s=e.lookupProperty||function(e,t){if(Object.prototype.hasOwnProperty.call(e,t))return e[t]};return(null!=(a=s(n,"equals").call(l,s(s(t,"parametersBody"),"in"),"formData",{name:"equals",hash:{},fn:e.program(61,o,0),inverse:e.noop,data:o,loc:{start:{line:126,column:3},end:{line:128,column:14}}}))?a:"")+(null!=(a=s(n,"equals").call(l,s(s(t,"parametersBody"),"in"),"body",{name:"equals",hash:{},fn:e.program(63,o,0),inverse:e.noop,data:o,loc:{start:{line:129,column:3},end:{line:131,column:14}}}))?a:"")+(null!=(a=s(n,"if").call(l,s(s(t,"parametersBody"),"mediaType"),{name:"if",hash:{},fn:e.program(65,o,0),inverse:e.noop,data:o,loc:{start:{line:132,column:3},end:{line:134,column:10}}}))?a:"")},61:function(e,t,n,r,o){var a,l=e.lookupProperty||function(e,t){if(Object.prototype.hasOwnProperty.call(e,t))return e[t]};return"\t\t\tformData: "+(null!=(a=e.lambda(e.strict(l(t,"parametersBody"),"name",{start:{line:127,column:16},end:{line:127,column:35}}),t))?a:"")+",\n"},63:function(e,t,n,r,o){var a,l=e.lookupProperty||function(e,t){if(Object.prototype.hasOwnProperty.call(e,t))return e[t]};return"\t\t\tbody: "+(null!=(a=e.lambda(e.strict(l(t,"parametersBody"),"name",{start:{line:130,column:12},end:{line:130,column:31}}),t))?a:"")+",\n"},65:function(e,t,n,r,o){var a,l=e.lookupProperty||function(e,t){if(Object.prototype.hasOwnProperty.call(e,t))return e[t]};return"\t\t\tmediaType: '"+(null!=(a=e.lambda(e.strict(l(t,"parametersBody"),"mediaType",{start:{line:133,column:18},end:{line:133,column:42}}),t))?a:"")+"',\n"},67:function(e,t,n,r,o){var a;return"\t\t\tresponseHeader: '"+(null!=(a=e.lambda(e.strict(t,"responseHeader",{start:{line:137,column:23},end:{line:137,column:37}}),t))?a:"")+"',\n"},69:function(e,t,n,r,o){var a,l=e.lookupProperty||function(e,t){if(Object.prototype.hasOwnProperty.call(e,t))return e[t]};return"\t\t\terrors: {\n"+(null!=(a=l(n,"each").call(null!=t?t:e.nullContext||{},l(t,"errors"),{name:"each",hash:{},fn:e.program(70,o,0),inverse:e.noop,data:o,loc:{start:{line:141,column:4},end:{line:143,column:13}}}))?a:"")+"\t\t\t},\n"},70:function(e,t,n,r,o){var a,l=e.lookupProperty||function(e,t){if(Object.prototype.hasOwnProperty.call(e,t))return e[t]};return"\t\t\t\t"+(null!=(a=e.lambda(e.strict(t,"code",{start:{line:142,column:7},end:{line:142,column:11}}),t))?a:"")+": `"+(null!=(a=l(n,"escapeDescription").call(null!=t?t:e.nullContext||{},l(t,"description"),{name:"escapeDescription",hash:{},data:o,loc:{start:{line:142,column:17},end:{line:142,column:52}}}))?a:"")+"`,\n"},compiler:[8,">= 4.3.0"],main:function(e,t,n,r,o){var a,l=null!=t?t:e.nullContext||{},s=e.strict,i=e.lambda,u=e.lookupProperty||function(e,t){if(Object.prototype.hasOwnProperty.call(e,t))return e[t]};return(null!=(a=e.invokePartial(u(r,"header"),t,{name:"header",data:o,helpers:n,partials:r,decorators:e.decorators}))?a:"")+"\n"+(null!=(a=u(n,"equals").call(l,u(u(o,"root"),"httpClient"),"angular",{name:"equals",hash:{},fn:e.program(1,o,0),inverse:e.noop,data:o,loc:{start:{line:3,column:0},end:{line:13,column:11}}}))?a:"")+(null!=(a=u(n,"if").call(l,u(t,"imports"),{name:"if",hash:{},fn:e.program(6,o,0),inverse:e.noop,data:o,loc:{start:{line:14,column:0},end:{line:19,column:7}}}))?a:"")+(null!=(a=u(n,"notEquals").call(l,u(u(o,"root"),"httpClient"),"angular",{name:"notEquals",hash:{},fn:e.program(9,o,0),inverse:e.noop,data:o,loc:{start:{line:20,column:0},end:{line:22,column:14}}}))?a:"")+(null!=(a=u(n,"if").call(l,u(u(o,"root"),"exportClient"),{name:"if",hash:{},fn:e.program(11,o,0),inverse:e.program(16,o,0),data:o,loc:{start:{line:23,column:0},end:{line:32,column:7}}}))?a:"")+"\n"+(null!=(a=u(n,"equals").call(l,u(u(o,"root"),"httpClient"),"angular",{name:"equals",hash:{},fn:e.program(18,o,0),inverse:e.noop,data:o,loc:{start:{line:34,column:0},end:{line:36,column:11}}}))?a:"")+"export class "+(null!=(a=i(s(t,"name",{start:{line:37,column:16},end:{line:37,column:20}}),t))?a:"")+(null!=(a=i(s(u(o,"root"),"postfix",{start:{line:37,column:26},end:{line:37,column:39}}),t))?a:"")+" {\n"+(null!=(a=u(n,"if").call(l,u(u(o,"root"),"exportClient"),{name:"if",hash:{},fn:e.program(20,o,0),inverse:e.program(22,o,0),data:o,loc:{start:{line:38,column:1},end:{line:46,column:8}}}))?a:"")+"\n"+(null!=(a=u(n,"each").call(l,u(t,"operations"),{name:"each",hash:{},fn:e.program(25,o,0),inverse:e.noop,data:o,loc:{start:{line:48,column:1},end:{line:149,column:10}}}))?a:"")+"}"},usePartial:!0,useData:!0},qn={1:function(e,t,n,r,o){var a,l=e.strict,s=e.lambda;return"export { "+(null!=(a=s(l(t,"clientName",{start:{line:4,column:12},end:{line:4,column:22}}),t))?a:"")+" } from './"+(null!=(a=s(l(t,"clientName",{start:{line:4,column:39},end:{line:4,column:49}}),t))?a:"")+"';\n\n"},3:function(e,t,n,r,o){var a,l=e.lookupProperty||function(e,t){if(Object.prototype.hasOwnProperty.call(e,t))return e[t]};return"export { ApiError } from './core/ApiError';\n"+(null!=(a=l(n,"if").call(null!=t?t:e.nullContext||{},l(l(o,"root"),"exportClient"),{name:"if",hash:{},fn:e.program(4,o,0),inverse:e.noop,data:o,loc:{start:{line:9,column:0},end:{line:11,column:7}}}))?a:"")+"export { CancelablePromise, CancelError } from './core/CancelablePromise';\nexport { OpenAPI } from './core/OpenAPI';\nexport type { OpenAPIConfig } from './core/OpenAPI';\n"},4:function(e,t,n,r,o){return"export { BaseHttpRequest } from './core/BaseHttpRequest';\n"},6:function(e,t,n,r,o){var a,l=e.lookupProperty||function(e,t){if(Object.prototype.hasOwnProperty.call(e,t))return e[t]};return null!=(a=l(n,"if").call(null!=t?t:e.nullContext||{},l(t,"models"),{name:"if",hash:{},fn:e.program(7,o,0),inverse:e.noop,data:o,loc:{start:{line:17,column:0},end:{line:30,column:7}}}))?a:""},7:function(e,t,n,r,o){var a,l=e.lookupProperty||function(e,t){if(Object.prototype.hasOwnProperty.call(e,t))return e[t]};return"\n"+(null!=(a=l(n,"each").call(null!=t?t:e.nullContext||{},l(t,"models"),{name:"each",hash:{},fn:e.program(8,o,0),inverse:e.noop,data:o,loc:{start:{line:19,column:0},end:{line:29,column:9}}}))?a:"")},8:function(e,t,n,r,o){var a,l=e.lookupProperty||function(e,t){if(Object.prototype.hasOwnProperty.call(e,t))return e[t]};return null!=(a=l(n,"if").call(null!=t?t:e.nullContext||{},l(l(o,"root"),"useUnionTypes"),{name:"if",hash:{},fn:e.program(9,o,0),inverse:e.program(11,o,0),data:o,loc:{start:{line:20,column:0},end:{line:28,column:7}}}))?a:""},9:function(e,t,n,r,o){var a,l=e.strict,s=e.lambda;return"export type { "+(null!=(a=s(l(t,"name",{start:{line:21,column:17},end:{line:21,column:21}}),t))?a:"")+" } from './models/"+(null!=(a=s(l(t,"name",{start:{line:21,column:45},end:{line:21,column:49}}),t))?a:"")+"';\n"},11:function(e,t,n,r,o){var a,l=e.lookupProperty||function(e,t){if(Object.prototype.hasOwnProperty.call(e,t))return e[t]};return null!=(a=l(n,"if").call(null!=t?t:e.nullContext||{},l(t,"enum"),{name:"if",hash:{},fn:e.program(12,o,0),inverse:e.program(14,o,0),data:o,loc:{start:{line:22,column:0},end:{line:28,column:0}}}))?a:""},12:function(e,t,n,r,o){var a,l=e.strict,s=e.lambda;return"export { "+(null!=(a=s(l(t,"name",{start:{line:23,column:12},end:{line:23,column:16}}),t))?a:"")+" } from './models/"+(null!=(a=s(l(t,"name",{start:{line:23,column:40},end:{line:23,column:44}}),t))?a:"")+"';\n"},14:function(e,t,n,r,o){var a,l=e.lookupProperty||function(e,t){if(Object.prototype.hasOwnProperty.call(e,t))return e[t]};return null!=(a=l(n,"if").call(null!=t?t:e.nullContext||{},l(t,"enums"),{name:"if",hash:{},fn:e.program(12,o,0),inverse:e.program(9,o,0),data:o,loc:{start:{line:24,column:0},end:{line:28,column:0}}}))?a:""},16:function(e,t,n,r,o){var a,l=e.lookupProperty||function(e,t){if(Object.prototype.hasOwnProperty.call(e,t))return e[t]};return null!=(a=l(n,"if").call(null!=t?t:e.nullContext||{},l(t,"models"),{name:"if",hash:{},fn:e.program(17,o,0),inverse:e.noop,data:o,loc:{start:{line:33,column:0},end:{line:38,column:7}}}))?a:""},17:function(e,t,n,r,o){var a,l=e.lookupProperty||function(e,t){if(Object.prototype.hasOwnProperty.call(e,t))return e[t]};return"\n"+(null!=(a=l(n,"each").call(null!=t?t:e.nullContext||{},l(t,"models"),{name:"each",hash:{},fn:e.program(18,o,0),inverse:e.noop,data:o,loc:{start:{line:35,column:0},end:{line:37,column:9}}}))?a:"")},18:function(e,t,n,r,o){var a,l=e.strict,s=e.lambda;return"export { $"+(null!=(a=s(l(t,"name",{start:{line:36,column:13},end:{line:36,column:17}}),t))?a:"")+" } from './schemas/$"+(null!=(a=s(l(t,"name",{start:{line:36,column:43},end:{line:36,column:47}}),t))?a:"")+"';\n"},20:function(e,t,n,r,o){var a,l=e.lookupProperty||function(e,t){if(Object.prototype.hasOwnProperty.call(e,t))return e[t]};return null!=(a=l(n,"if").call(null!=t?t:e.nullContext||{},l(t,"services"),{name:"if",hash:{},fn:e.program(21,o,0),inverse:e.noop,data:o,loc:{start:{line:41,column:0},end:{line:46,column:7}}}))?a:""},21:function(e,t,n,r,o){var a,l=e.lookupProperty||function(e,t){if(Object.prototype.hasOwnProperty.call(e,t))return e[t]};return"\n"+(null!=(a=l(n,"each").call(null!=t?t:e.nullContext||{},l(t,"services"),{name:"each",hash:{},fn:e.program(22,o,0),inverse:e.noop,data:o,loc:{start:{line:43,column:0},end:{line:45,column:9}}}))?a:"")},22:function(e,t,n,r,o){var a,l=e.strict,s=e.lambda,i=e.lookupProperty||function(e,t){if(Object.prototype.hasOwnProperty.call(e,t))return e[t]};return"export { "+(null!=(a=s(l(t,"name",{start:{line:44,column:12},end:{line:44,column:16}}),t))?a:"")+(null!=(a=s(l(i(o,"root"),"postfix",{start:{line:44,column:22},end:{line:44,column:35}}),t))?a:"")+" } from './services/"+(null!=(a=s(l(t,"name",{start:{line:44,column:61},end:{line:44,column:65}}),t))?a:"")+(null!=(a=s(l(i(o,"root"),"postfix",{start:{line:44,column:71},end:{line:44,column:84}}),t))?a:"")+"';\n"},compiler:[8,">= 4.3.0"],main:function(e,t,n,r,o){var a,l=null!=t?t:e.nullContext||{},s=e.lookupProperty||function(e,t){if(Object.prototype.hasOwnProperty.call(e,t))return e[t]};return(null!=(a=e.invokePartial(s(r,"header"),t,{name:"header",data:o,helpers:n,partials:r,decorators:e.decorators}))?a:"")+"\n"+(null!=(a=s(n,"if").call(l,s(s(o,"root"),"exportClient"),{name:"if",hash:{},fn:e.program(1,o,0),inverse:e.noop,data:o,loc:{start:{line:3,column:0},end:{line:6,column:7}}}))?a:"")+(null!=(a=s(n,"if").call(l,s(s(o,"root"),"exportCore"),{name:"if",hash:{},fn:e.program(3,o,0),inverse:e.noop,data:o,loc:{start:{line:7,column:0},end:{line:15,column:7}}}))?a:"")+(null!=(a=s(n,"if").call(l,s(s(o,"root"),"exportModels"),{name:"if",hash:{},fn:e.program(6,o,0),inverse:e.noop,data:o,loc:{start:{line:16,column:0},end:{line:31,column:7}}}))?a:"")+(null!=(a=s(n,"if").call(l,s(s(o,"root"),"exportSchemas"),{name:"if",hash:{},fn:e.program(16,o,0),inverse:e.noop,data:o,loc:{start:{line:32,column:0},end:{line:39,column:7}}}))?a:"")+(null!=(a=s(n,"if").call(l,s(s(o,"root"),"exportServices"),{name:"if",hash:{},fn:e.program(20,o,0),inverse:e.noop,data:o,loc:{start:{line:40,column:0},end:{line:47,column:7}}}))?a:"")},usePartial:!0,useData:!0},An={1:function(e,t,n,r,o){var a,l=null!=t?t:e.nullContext||{},s=e.lookupProperty||function(e,t){if(Object.prototype.hasOwnProperty.call(e,t))return e[t]};return(null!=(a=s(n,"equals").call(l,s(s(o,"root"),"httpClient"),"fetch",{name:"equals",hash:{},fn:e.program(2,o,0),inverse:e.noop,data:o,loc:{start:{line:2,column:0},end:{line:2,column:53}}}))?a:"")+(null!=(a=s(n,"equals").call(l,s(s(o,"root"),"httpClient"),"xhr",{name:"equals",hash:{},fn:e.program(2,o,0),inverse:e.noop,data:o,loc:{start:{line:3,column:0},end:{line:3,column:51}}}))?a:"")+(null!=(a=s(n,"equals").call(l,s(s(o,"root"),"httpClient"),"axios",{name:"equals",hash:{},fn:e.program(2,o,0),inverse:e.noop,data:o,loc:{start:{line:4,column:0},end:{line:4,column:53}}}))?a:"")+(null!=(a=s(n,"equals").call(l,s(s(o,"root"),"httpClient"),"angular",{name:"equals",hash:{},fn:e.program(2,o,0),inverse:e.noop,data:o,loc:{start:{line:5,column:0},end:{line:5,column:55}}}))?a:"")+(null!=(a=s(n,"equals").call(l,s(s(o,"root"),"httpClient"),"node",{name:"equals",hash:{},fn:e.program(2,o,0),inverse:e.noop,data:o,loc:{start:{line:6,column:0},end:{line:6,column:52}}}))?a:"")},2:function(e,t,n,r,o){return"Blob"},4:function(e,t,n,r,o){var a;return null!=(a=e.lambda(e.strict(t,"base",{start:{line:8,column:3},end:{line:8,column:7}}),t))?a:""},compiler:[8,">= 4.3.0"],main:function(e,t,n,r,o){var a,l=e.lookupProperty||function(e,t){if(Object.prototype.hasOwnProperty.call(e,t))return e[t]};return null!=(a=l(n,"equals").call(null!=t?t:e.nullContext||{},l(t,"base"),"binary",{name:"equals",hash:{},fn:e.program(1,o,0),inverse:e.program(4,o,0),data:o,loc:{start:{line:1,column:0},end:{line:9,column:13}}}))?a:""},useData:!0},jn={1:function(e,t,n,r,o){var a,l=null!=t?t:e.nullContext||{},s=e.lookupProperty||function(e,t){if(Object.prototype.hasOwnProperty.call(e,t))return e[t]};return"/**\n"+(null!=(a=s(n,"if").call(l,s(t,"description"),{name:"if",hash:{},fn:e.program(2,o,0),inverse:e.noop,data:o,loc:{start:{line:3,column:0},end:{line:5,column:7}}}))?a:"")+(null!=(a=s(n,"if").call(l,s(t,"deprecated"),{name:"if",hash:{},fn:e.program(4,o,0),inverse:e.noop,data:o,loc:{start:{line:6,column:0},end:{line:8,column:7}}}))?a:"")+" */\n"},2:function(e,t,n,r,o){var a,l=e.lookupProperty||function(e,t){if(Object.prototype.hasOwnProperty.call(e,t))return e[t]};return" * "+(null!=(a=l(n,"escapeComment").call(null!=t?t:e.nullContext||{},l(t,"description"),{name:"escapeComment",hash:{},data:o,loc:{start:{line:4,column:3},end:{line:4,column:34}}}))?a:"")+"\n"},4:function(e,t,n,r,o){return" * @deprecated\n"},6:function(e,t,n,r,o){var a,l=e.lookupProperty||function(e,t){if(Object.prototype.hasOwnProperty.call(e,t))return e[t]};return null!=(a=l(n,"unless").call(null!=t?t:e.nullContext||{},l(l(o,"root"),"useUnionTypes"),{name:"unless",hash:{},fn:e.program(7,o,0),inverse:e.noop,data:o,loc:{start:{line:13,column:0},end:{line:37,column:11}}}))?a:""},7:function(e,t,n,r,o){var a,l=e.lookupProperty||function(e,t){if(Object.prototype.hasOwnProperty.call(e,t))return e[t]};return"\nexport namespace "+(null!=(a=e.lambda(e.strict(t,"name",{start:{line:15,column:20},end:{line:15,column:24}}),t))?a:"")+" {\n\n"+(null!=(a=l(n,"each").call(null!=t?t:e.nullContext||{},l(t,"enums"),{name:"each",hash:{},fn:e.program(8,o,0),inverse:e.noop,data:o,loc:{start:{line:17,column:1},end:{line:34,column:10}}}))?a:"")+"\n}\n"},8:function(e,t,n,r,o){var a,l=null!=t?t:e.nullContext||{},s=e.lookupProperty||function(e,t){if(Object.prototype.hasOwnProperty.call(e,t))return e[t]};return(null!=(a=s(n,"ifdef").call(l,s(t,"description"),s(t,"deprecated"),{name:"ifdef",hash:{},fn:e.program(9,o,0),inverse:e.noop,data:o,loc:{start:{line:18,column:1},end:{line:27,column:11}}}))?a:"")+"\texport enum "+(null!=(a=e.lambda(e.strict(t,"name",{start:{line:28,column:16},end:{line:28,column:20}}),t))?a:"")+" {\n"+(null!=(a=s(n,"each").call(l,s(t,"enum"),{name:"each",hash:{},fn:e.program(14,o,0),inverse:e.noop,data:o,loc:{start:{line:29,column:2},end:{line:31,column:11}}}))?a:"")+"\t}\n\n"},9:function(e,t,n,r,o){var a,l=null!=t?t:e.nullContext||{},s=e.lookupProperty||function(e,t){if(Object.prototype.hasOwnProperty.call(e,t))return e[t]};return"\t/**\n"+(null!=(a=s(n,"if").call(l,s(t,"description"),{name:"if",hash:{},fn:e.program(10,o,0),inverse:e.noop,data:o,loc:{start:{line:20,column:1},end:{line:22,column:8}}}))?a:"")+(null!=(a=s(n,"if").call(l,s(t,"deprecated"),{name:"if",hash:{},fn:e.program(12,o,0),inverse:e.noop,data:o,loc:{start:{line:23,column:1},end:{line:25,column:8}}}))?a:"")+"\t */\n"},10:function(e,t,n,r,o){var a,l=e.lookupProperty||function(e,t){if(Object.prototype.hasOwnProperty.call(e,t))return e[t]};return"\t * "+(null!=(a=l(n,"escapeComment").call(null!=t?t:e.nullContext||{},l(t,"description"),{name:"escapeComment",hash:{},data:o,loc:{start:{line:21,column:4},end:{line:21,column:35}}}))?a:"")+"\n"},12:function(e,t,n,r,o){return"\t * @deprecated\n"},14:function(e,t,n,r,o){var a,l=e.strict,s=e.lambda;return"\t\t"+(null!=(a=s(l(t,"name",{start:{line:30,column:5},end:{line:30,column:9}}),t))?a:"")+" = "+(null!=(a=s(l(t,"value",{start:{line:30,column:18},end:{line:30,column:23}}),t))?a:"")+",\n"},compiler:[8,">= 4.3.0"],main:function(e,t,n,r,o){var a,l=null!=t?t:e.nullContext||{},s=e.lookupProperty||function(e,t){if(Object.prototype.hasOwnProperty.call(e,t))return e[t]};return(null!=(a=s(n,"ifdef").call(l,s(t,"description"),s(t,"deprecated"),{name:"ifdef",hash:{},fn:e.program(1,o,0),inverse:e.noop,data:o,loc:{start:{line:1,column:0},end:{line:10,column:10}}}))?a:"")+"export type "+(null!=(a=e.lambda(e.strict(t,"name",{start:{line:11,column:15},end:{line:11,column:19}}),t))?a:"")+" = "+(null!=(a=e.invokePartial(s(r,"type"),t,{name:"type",hash:{parent:s(t,"name")},data:o,helpers:n,partials:r,decorators:e.decorators}))?a:"")+";\n"+(null!=(a=s(n,"if").call(l,s(t,"enums"),{name:"if",hash:{},fn:e.program(6,o,0),inverse:e.noop,data:o,loc:{start:{line:12,column:0},end:{line:38,column:7}}}))?a:"")},usePartial:!0,useData:!0},Hn={1:function(e,t,n,r,o){var a,l=null!=t?t:e.nullContext||{},s=e.lookupProperty||function(e,t){if(Object.prototype.hasOwnProperty.call(e,t))return e[t]};return"/**\n"+(null!=(a=s(n,"if").call(l,s(t,"description"),{name:"if",hash:{},fn:e.program(2,o,0),inverse:e.noop,data:o,loc:{start:{line:3,column:0},end:{line:5,column:7}}}))?a:"")+(null!=(a=s(n,"if").call(l,s(t,"deprecated"),{name:"if",hash:{},fn:e.program(4,o,0),inverse:e.noop,data:o,loc:{start:{line:6,column:0},end:{line:8,column:7}}}))?a:"")+" */\n"},2:function(e,t,n,r,o){var a,l=e.lookupProperty||function(e,t){if(Object.prototype.hasOwnProperty.call(e,t))return e[t]};return" * "+(null!=(a=l(n,"escapeComment").call(null!=t?t:e.nullContext||{},l(t,"description"),{name:"escapeComment",hash:{},data:o,loc:{start:{line:4,column:3},end:{line:4,column:34}}}))?a:"")+"\n"},4:function(e,t,n,r,o){return" * @deprecated\n"},6:function(e,t,n,r,o){var a,l=null!=t?t:e.nullContext||{},s=e.lookupProperty||function(e,t){if(Object.prototype.hasOwnProperty.call(e,t))return e[t]};return(null!=(a=s(n,"if").call(l,s(t,"description"),{name:"if",hash:{},fn:e.program(7,o,0),inverse:e.noop,data:o,loc:{start:{line:13,column:1},end:{line:17,column:8}}}))?a:"")+(null!=(a=s(n,"containsSpaces").call(l,s(t,"name"),{name:"containsSpaces",hash:{},fn:e.program(9,o,0),inverse:e.program(11,o,0),data:o,loc:{start:{line:18,column:1},end:{line:22,column:20}}}))?a:"")},7:function(e,t,n,r,o){var a,l=e.lookupProperty||function(e,t){if(Object.prototype.hasOwnProperty.call(e,t))return e[t]};return"\t/**\n\t * "+(null!=(a=l(n,"escapeComment").call(null!=t?t:e.nullContext||{},l(t,"description"),{name:"escapeComment",hash:{},data:o,loc:{start:{line:15,column:4},end:{line:15,column:35}}}))?a:"")+"\n\t */\n"},9:function(e,t,n,r,o){var a,l=e.strict,s=e.lambda;return"\t'"+(null!=(a=s(l(t,"name",{start:{line:19,column:5},end:{line:19,column:9}}),t))?a:"")+"' = "+(null!=(a=s(l(t,"value",{start:{line:19,column:19},end:{line:19,column:24}}),t))?a:"")+",\n"},11:function(e,t,n,r,o){var a,l=e.strict,s=e.lambda;return"\t"+(null!=(a=s(l(t,"name",{start:{line:21,column:4},end:{line:21,column:8}}),t))?a:"")+" = "+(null!=(a=s(l(t,"value",{start:{line:21,column:17},end:{line:21,column:22}}),t))?a:"")+",\n"},compiler:[8,">= 4.3.0"],main:function(e,t,n,r,o){var a,l=null!=t?t:e.nullContext||{},s=e.lookupProperty||function(e,t){if(Object.prototype.hasOwnProperty.call(e,t))return e[t]};return(null!=(a=s(n,"ifdef").call(l,s(t,"description"),s(t,"deprecated"),{name:"ifdef",hash:{},fn:e.program(1,o,0),inverse:e.noop,data:o,loc:{start:{line:1,column:0},end:{line:10,column:10}}}))?a:"")+"export enum "+(null!=(a=e.lambda(e.strict(t,"name",{start:{line:11,column:15},end:{line:11,column:19}}),t))?a:"")+" {\n"+(null!=(a=s(n,"each").call(l,s(t,"enum"),{name:"each",hash:{},fn:e.program(6,o,0),inverse:e.noop,data:o,loc:{start:{line:12,column:1},end:{line:23,column:10}}}))?a:"")+"}"},useData:!0},En={1:function(e,t,n,r,o){var a,l=null!=t?t:e.nullContext||{},s=e.lookupProperty||function(e,t){if(Object.prototype.hasOwnProperty.call(e,t))return e[t]};return"/**\n"+(null!=(a=s(n,"if").call(l,s(t,"description"),{name:"if",hash:{},fn:e.program(2,o,0),inverse:e.noop,data:o,loc:{start:{line:3,column:0},end:{line:5,column:7}}}))?a:"")+(null!=(a=s(n,"if").call(l,s(t,"deprecated"),{name:"if",hash:{},fn:e.program(4,o,0),inverse:e.noop,data:o,loc:{start:{line:6,column:0},end:{line:8,column:7}}}))?a:"")+" */\n"},2:function(e,t,n,r,o){var a,l=e.lookupProperty||function(e,t){if(Object.prototype.hasOwnProperty.call(e,t))return e[t]};return" * "+(null!=(a=l(n,"escapeComment").call(null!=t?t:e.nullContext||{},l(t,"description"),{name:"escapeComment",hash:{},data:o,loc:{start:{line:4,column:3},end:{line:4,column:34}}}))?a:"")+"\n"},4:function(e,t,n,r,o){return" * @deprecated\n"},6:function(e,t,n,r,o,a,l){var s,i=e.lookupProperty||function(e,t){if(Object.prototype.hasOwnProperty.call(e,t))return e[t]};return(null!=(s=i(n,"ifdef").call(null!=t?t:e.nullContext||{},i(t,"description"),i(t,"deprecated"),{name:"ifdef",hash:{},fn:e.program(7,o,0,a,l),inverse:e.noop,data:o,loc:{start:{line:13,column:1},end:{line:22,column:11}}}))?s:"")+"\t"+(null!=(s=e.invokePartial(i(r,"isReadOnly"),t,{name:"isReadOnly",data:o,helpers:n,partials:r,decorators:e.decorators}))?s:"")+(null!=(s=e.lambda(e.strict(t,"name",{start:{line:23,column:19},end:{line:23,column:23}}),t))?s:"")+(null!=(s=e.invokePartial(i(r,"isRequired"),t,{name:"isRequired",data:o,helpers:n,partials:r,decorators:e.decorators}))?s:"")+": "+(null!=(s=e.invokePartial(i(r,"type"),t,{name:"type",hash:{parent:i(l[1],"name")},data:o,helpers:n,partials:r,decorators:e.decorators}))?s:"")+";\n"},7:function(e,t,n,r,o){var a,l=null!=t?t:e.nullContext||{},s=e.lookupProperty||function(e,t){if(Object.prototype.hasOwnProperty.call(e,t))return e[t]};return"\t/**\n"+(null!=(a=s(n,"if").call(l,s(t,"description"),{name:"if",hash:{},fn:e.program(8,o,0),inverse:e.noop,data:o,loc:{start:{line:15,column:1},end:{line:17,column:8}}}))?a:"")+(null!=(a=s(n,"if").call(l,s(t,"deprecated"),{name:"if",hash:{},fn:e.program(10,o,0),inverse:e.noop,data:o,loc:{start:{line:18,column:1},end:{line:20,column:8}}}))?a:"")+"\t */\n"},8:function(e,t,n,r,o){var a,l=e.lookupProperty||function(e,t){if(Object.prototype.hasOwnProperty.call(e,t))return e[t]};return"\t * "+(null!=(a=l(n,"escapeComment").call(null!=t?t:e.nullContext||{},l(t,"description"),{name:"escapeComment",hash:{},data:o,loc:{start:{line:16,column:4},end:{line:16,column:35}}}))?a:"")+"\n"},10:function(e,t,n,r,o){return"\t * @deprecated\n"},12:function(e,t,n,r,o){var a,l=e.lookupProperty||function(e,t){if(Object.prototype.hasOwnProperty.call(e,t))return e[t]};return null!=(a=l(n,"unless").call(null!=t?t:e.nullContext||{},l(l(o,"root"),"useUnionTypes"),{name:"unless",hash:{},fn:e.program(13,o,0),inverse:e.noop,data:o,loc:{start:{line:27,column:0},end:{line:46,column:11}}}))?a:""},13:function(e,t,n,r,o){var a,l=e.lookupProperty||function(e,t){if(Object.prototype.hasOwnProperty.call(e,t))return e[t]};return"\nexport namespace "+(null!=(a=e.lambda(e.strict(t,"name",{start:{line:29,column:20},end:{line:29,column:24}}),t))?a:"")+" {\n\n"+(null!=(a=l(n,"each").call(null!=t?t:e.nullContext||{},l(t,"enums"),{name:"each",hash:{},fn:e.program(14,o,0),inverse:e.noop,data:o,loc:{start:{line:31,column:1},end:{line:43,column:10}}}))?a:"")+"\n}\n"},14:function(e,t,n,r,o){var a,l=null!=t?t:e.nullContext||{},s=e.lookupProperty||function(e,t){if(Object.prototype.hasOwnProperty.call(e,t))return e[t]};return(null!=(a=s(n,"if").call(l,s(t,"description"),{name:"if",hash:{},fn:e.program(15,o,0),inverse:e.noop,data:o,loc:{start:{line:32,column:1},end:{line:36,column:8}}}))?a:"")+"\texport enum "+(null!=(a=e.lambda(e.strict(t,"name",{start:{line:37,column:16},end:{line:37,column:20}}),t))?a:"")+" {\n"+(null!=(a=s(n,"each").call(l,s(t,"enum"),{name:"each",hash:{},fn:e.program(17,o,0),inverse:e.noop,data:o,loc:{start:{line:38,column:2},end:{line:40,column:11}}}))?a:"")+"\t}\n\n"},15:function(e,t,n,r,o){var a,l=e.lookupProperty||function(e,t){if(Object.prototype.hasOwnProperty.call(e,t))return e[t]};return"\t/**\n\t * "+(null!=(a=l(n,"escapeComment").call(null!=t?t:e.nullContext||{},l(t,"description"),{name:"escapeComment",hash:{},data:o,loc:{start:{line:34,column:4},end:{line:34,column:35}}}))?a:"")+"\n\t */\n"},17:function(e,t,n,r,o){var a,l=e.strict,s=e.lambda;return"\t\t"+(null!=(a=s(l(t,"name",{start:{line:39,column:5},end:{line:39,column:9}}),t))?a:"")+" = "+(null!=(a=s(l(t,"value",{start:{line:39,column:18},end:{line:39,column:23}}),t))?a:"")+",\n"},compiler:[8,">= 4.3.0"],main:function(e,t,n,r,o,a,l){var s,i=null!=t?t:e.nullContext||{},u=e.lookupProperty||function(e,t){if(Object.prototype.hasOwnProperty.call(e,t))return e[t]};return(null!=(s=u(n,"ifdef").call(i,u(t,"description"),u(t,"deprecated"),{name:"ifdef",hash:{},fn:e.program(1,o,0,a,l),inverse:e.noop,data:o,loc:{start:{line:1,column:0},end:{line:10,column:10}}}))?s:"")+"export type "+(null!=(s=e.lambda(e.strict(t,"name",{start:{line:11,column:15},end:{line:11,column:19}}),t))?s:"")+" = {\n"+(null!=(s=u(n,"each").call(i,u(t,"properties"),{name:"each",hash:{},fn:e.program(6,o,0,a,l),inverse:e.noop,data:o,loc:{start:{line:12,column:1},end:{line:24,column:10}}}))?s:"")+"};\n"+(null!=(s=u(n,"if").call(i,u(t,"enums"),{name:"if",hash:{},fn:e.program(12,o,0,a,l),inverse:e.noop,data:o,loc:{start:{line:26,column:0},end:{line:47,column:7}}}))?s:"")},usePartial:!0,useData:!0,useDepths:!0},Dn={1:function(e,t,n,r,o){var a,l=null!=t?t:e.nullContext||{},s=e.lookupProperty||function(e,t){if(Object.prototype.hasOwnProperty.call(e,t))return e[t]};return"/**\n"+(null!=(a=s(n,"if").call(l,s(t,"description"),{name:"if",hash:{},fn:e.program(2,o,0),inverse:e.noop,data:o,loc:{start:{line:3,column:0},end:{line:5,column:7}}}))?a:"")+(null!=(a=s(n,"if").call(l,s(t,"deprecated"),{name:"if",hash:{},fn:e.program(4,o,0),inverse:e.noop,data:o,loc:{start:{line:6,column:0},end:{line:8,column:7}}}))?a:"")+" */\n"},2:function(e,t,n,r,o){var a,l=e.lookupProperty||function(e,t){if(Object.prototype.hasOwnProperty.call(e,t))return e[t]};return" * "+(null!=(a=l(n,"escapeComment").call(null!=t?t:e.nullContext||{},l(t,"description"),{name:"escapeComment",hash:{},data:o,loc:{start:{line:4,column:3},end:{line:4,column:34}}}))?a:"")+"\n"},4:function(e,t,n,r,o){return" * @deprecated\n"},compiler:[8,">= 4.3.0"],main:function(e,t,n,r,o){var a,l=e.lookupProperty||function(e,t){if(Object.prototype.hasOwnProperty.call(e,t))return e[t]};return(null!=(a=l(n,"ifdef").call(null!=t?t:e.nullContext||{},l(t,"description"),l(t,"deprecated"),{name:"ifdef",hash:{},fn:e.program(1,o,0),inverse:e.noop,data:o,loc:{start:{line:1,column:0},end:{line:10,column:10}}}))?a:"")+"export type "+(null!=(a=e.lambda(e.strict(t,"name",{start:{line:11,column:15},end:{line:11,column:19}}),t))?a:"")+" = "+(null!=(a=e.invokePartial(l(r,"type"),t,{name:"type",data:o,helpers:n,partials:r,decorators:e.decorators}))?a:"")+";"},usePartial:!0,useData:!0},Tn={compiler:[8,">= 4.3.0"],main:function(e,t,n,r,o){return"/* istanbul ignore file */\n/* tslint:disable */\n/* eslint-disable */"},useData:!0},In={1:function(e,t,n,r,o){return" | null"},compiler:[8,">= 4.3.0"],main:function(e,t,n,r,o){var a,l=e.lookupProperty||function(e,t){if(Object.prototype.hasOwnProperty.call(e,t))return e[t]};return null!=(a=l(n,"if").call(null!=t?t:e.nullContext||{},l(t,"isNullable"),{name:"if",hash:{},fn:e.program(1,o,0),inverse:e.noop,data:o,loc:{start:{line:1,column:0},end:{line:1,column:32}}}))?a:""},useData:!0},Sn={1:function(e,t,n,r,o){return"readonly "},compiler:[8,">= 4.3.0"],main:function(e,t,n,r,o){var a,l=e.lookupProperty||function(e,t){if(Object.prototype.hasOwnProperty.call(e,t))return e[t]};return null!=(a=l(n,"if").call(null!=t?t:e.nullContext||{},l(t,"isReadOnly"),{name:"if",hash:{},fn:e.program(1,o,0),inverse:e.noop,data:o,loc:{start:{line:1,column:0},end:{line:1,column:34}}}))?a:""},useData:!0},_n={1:function(e,t,n,r,o){var a,l=e.lookupProperty||function(e,t){if(Object.prototype.hasOwnProperty.call(e,t))return e[t]};return null!=(a=l(n,"unless").call(null!=t?t:e.nullContext||{},l(t,"isRequired"),{name:"unless",hash:{},fn:e.program(2,o,0),inverse:e.program(4,o,0),data:o,loc:{start:{line:2,column:0},end:{line:2,column:54}}}))?a:""},2:function(e,t,n,r,o){return"?"},4:function(e,t,n,r,o){var a,l=e.lookupProperty||function(e,t){if(Object.prototype.hasOwnProperty.call(e,t))return e[t]};return null!=(a=l(n,"if").call(null!=t?t:e.nullContext||{},l(t,"default"),{name:"if",hash:{},fn:e.program(2,o,0),inverse:e.noop,data:o,loc:{start:{line:2,column:23},end:{line:2,column:43}}}))?a:""},6:function(e,t,n,r,o){var a,l=e.lookupProperty||function(e,t){if(Object.prototype.hasOwnProperty.call(e,t))return e[t]};return null!=(a=l(n,"unless").call(null!=t?t:e.nullContext||{},l(t,"isRequired"),{name:"unless",hash:{},fn:e.program(7,o,0),inverse:e.noop,data:o,loc:{start:{line:4,column:0},end:{line:4,column:64}}}))?a:""},7:function(e,t,n,r,o){var a,l=e.lookupProperty||function(e,t){if(Object.prototype.hasOwnProperty.call(e,t))return e[t]};return null!=(a=l(n,"unless").call(null!=t?t:e.nullContext||{},l(t,"default"),{name:"unless",hash:{},fn:e.program(2,o,0),inverse:e.noop,data:o,loc:{start:{line:4,column:22},end:{line:4,column:53}}}))?a:""},compiler:[8,">= 4.3.0"],main:function(e,t,n,r,o){var a,l=e.lookupProperty||function(e,t){if(Object.prototype.hasOwnProperty.call(e,t))return e[t]};return null!=(a=l(n,"if").call(null!=t?t:e.nullContext||{},l(l(o,"root"),"useOptions"),{name:"if",hash:{},fn:e.program(1,o,0),inverse:e.program(6,o,0),data:o,loc:{start:{line:1,column:0},end:{line:5,column:9}}}))?a:""},useData:!0},Nn={1:function(e,t,n,r,o){var a,l=e.lookupProperty||function(e,t){if(Object.prototype.hasOwnProperty.call(e,t))return e[t]};return null!=(a=l(n,"if").call(null!=t?t:e.nullContext||{},l(l(o,"root"),"useOptions"),{name:"if",hash:{},fn:e.program(2,o,0),inverse:e.program(12,o,0),data:o,loc:{start:{line:2,column:0},end:{line:27,column:7}}}))?a:""},2:function(e,t,n,r,o){var a,l=null!=t?t:e.nullContext||{},s=e.lookupProperty||function(e,t){if(Object.prototype.hasOwnProperty.call(e,t))return e[t]};return"{\n"+(null!=(a=s(n,"each").call(l,s(t,"parameters"),{name:"each",hash:{},fn:e.program(3,o,0),inverse:e.noop,data:o,loc:{start:{line:4,column:0},end:{line:6,column:9}}}))?a:"")+"}: {\n"+(null!=(a=s(n,"each").call(l,s(t,"parameters"),{name:"each",hash:{},fn:e.program(6,o,0),inverse:e.noop,data:o,loc:{start:{line:8,column:0},end:{line:20,column:9}}}))?a:"")+"}"},3:function(e,t,n,r,o){var a,l=e.lookupProperty||function(e,t){if(Object.prototype.hasOwnProperty.call(e,t))return e[t]};return(null!=(a=e.lambda(e.strict(t,"name",{start:{line:5,column:3},end:{line:5,column:7}}),t))?a:"")+(null!=(a=l(n,"if").call(null!=t?t:e.nullContext||{},l(t,"default"),{name:"if",hash:{},fn:e.program(4,o,0),inverse:e.noop,data:o,loc:{start:{line:5,column:10},end:{line:5,column:48}}}))?a:"")+",\n"},4:function(e,t,n,r,o){var a;return" = "+(null!=(a=e.lambda(e.strict(t,"default",{start:{line:5,column:31},end:{line:5,column:38}}),t))?a:"")},6:function(e,t,n,r,o){var a,l=e.lookupProperty||function(e,t){if(Object.prototype.hasOwnProperty.call(e,t))return e[t]};return(null!=(a=l(n,"ifdef").call(null!=t?t:e.nullContext||{},l(t,"description"),l(t,"deprecated"),{name:"ifdef",hash:{},fn:e.program(7,o,0),inverse:e.noop,data:o,loc:{start:{line:9,column:0},end:{line:18,column:10}}}))?a:"")+(null!=(a=e.lambda(e.strict(t,"name",{start:{line:19,column:3},end:{line:19,column:7}}),t))?a:"")+(null!=(a=e.invokePartial(l(r,"isRequired"),t,{name:"isRequired",data:o,helpers:n,partials:r,decorators:e.decorators}))?a:"")+": "+(null!=(a=e.invokePartial(l(r,"type"),t,{name:"type",data:o,helpers:n,partials:r,decorators:e.decorators}))?a:"")+",\n"},7:function(e,t,n,r,o){var a,l=null!=t?t:e.nullContext||{},s=e.lookupProperty||function(e,t){if(Object.prototype.hasOwnProperty.call(e,t))return e[t]};return"/**\n"+(null!=(a=s(n,"if").call(l,s(t,"description"),{name:"if",hash:{},fn:e.program(8,o,0),inverse:e.noop,data:o,loc:{start:{line:11,column:0},end:{line:13,column:7}}}))?a:"")+(null!=(a=s(n,"if").call(l,s(t,"deprecated"),{name:"if",hash:{},fn:e.program(10,o,0),inverse:e.noop,data:o,loc:{start:{line:14,column:0},end:{line:16,column:7}}}))?a:"")+" */\n"},8:function(e,t,n,r,o){var a,l=e.lookupProperty||function(e,t){if(Object.prototype.hasOwnProperty.call(e,t))return e[t]};return" * "+(null!=(a=l(n,"escapeComment").call(null!=t?t:e.nullContext||{},l(t,"description"),{name:"escapeComment",hash:{},data:o,loc:{start:{line:12,column:3},end:{line:12,column:34}}}))?a:"")+"\n"},10:function(e,t,n,r,o){return" * @deprecated\n"},12:function(e,t,n,r,o){var a,l=e.lookupProperty||function(e,t){if(Object.prototype.hasOwnProperty.call(e,t))return e[t]};return"\n"+(null!=(a=l(n,"each").call(null!=t?t:e.nullContext||{},l(t,"parameters"),{name:"each",hash:{},fn:e.program(13,o,0),inverse:e.noop,data:o,loc:{start:{line:24,column:0},end:{line:26,column:9}}}))?a:"")},13:function(e,t,n,r,o){var a,l=e.lookupProperty||function(e,t){if(Object.prototype.hasOwnProperty.call(e,t))return e[t]};return(null!=(a=e.lambda(e.strict(t,"name",{start:{line:25,column:3},end:{line:25,column:7}}),t))?a:"")+(null!=(a=e.invokePartial(l(r,"isRequired"),t,{name:"isRequired",data:o,helpers:n,partials:r,decorators:e.decorators}))?a:"")+": "+(null!=(a=e.invokePartial(l(r,"type"),t,{name:"type",data:o,helpers:n,partials:r,decorators:e.decorators}))?a:"")+(null!=(a=l(n,"if").call(null!=t?t:e.nullContext||{},l(t,"default"),{name:"if",hash:{},fn:e.program(4,o,0),inverse:e.noop,data:o,loc:{start:{line:25,column:36},end:{line:25,column:74}}}))?a:"")+",\n"},compiler:[8,">= 4.3.0"],main:function(e,t,n,r,o){var a,l=e.lookupProperty||function(e,t){if(Object.prototype.hasOwnProperty.call(e,t))return e[t]};return null!=(a=l(n,"if").call(null!=t?t:e.nullContext||{},l(t,"parameters"),{name:"if",hash:{},fn:e.program(1,o,0),inverse:e.noop,data:o,loc:{start:{line:1,column:0},end:{line:28,column:7}}}))?a:""},usePartial:!0,useData:!0},Bn={1:function(e,t,n,r,o){var a,l=e.lookupProperty||function(e,t){if(Object.prototype.hasOwnProperty.call(e,t))return e[t]};return null!=(a=l(n,"each").call(null!=t?t:e.nullContext||{},l(t,"results"),{name:"each",hash:{},fn:e.program(2,o,0),inverse:e.noop,data:o,loc:{start:{line:2,column:0},end:{line:2,column:66}}}))?a:""},2:function(e,t,n,r,o){var a,l=e.lookupProperty||function(e,t){if(Object.prototype.hasOwnProperty.call(e,t))return e[t]};return(null!=(a=e.invokePartial(l(r,"type"),t,{name:"type",data:o,helpers:n,partials:r,decorators:e.decorators}))?a:"")+(null!=(a=l(n,"unless").call(null!=t?t:e.nullContext||{},l(o,"last"),{name:"unless",hash:{},fn:e.program(3,o,0),inverse:e.noop,data:o,loc:{start:{line:2,column:26},end:{line:2,column:57}}}))?a:"")},3:function(e,t,n,r,o){return" | "},5:function(e,t,n,r,o){return"void"},compiler:[8,">= 4.3.0"],main:function(e,t,n,r,o){var a,l=e.lookupProperty||function(e,t){if(Object.prototype.hasOwnProperty.call(e,t))return e[t]};return null!=(a=l(n,"if").call(null!=t?t:e.nullContext||{},l(t,"results"),{name:"if",hash:{},fn:e.program(1,o,0),inverse:e.program(5,o,0),data:o,loc:{start:{line:1,column:0},end:{line:5,column:9}}}))?a:""},usePartial:!0,useData:!0},$n={1:function(e,t,n,r,o){var a,l=e.lookupProperty||function(e,t){if(Object.prototype.hasOwnProperty.call(e,t))return e[t]};return null!=(a=e.invokePartial(l(r,"schemaInterface"),t,{name:"schemaInterface",data:o,helpers:n,partials:r,decorators:e.decorators}))?a:""},3:function(e,t,n,r,o){var a,l=e.lookupProperty||function(e,t){if(Object.prototype.hasOwnProperty.call(e,t))return e[t]};return null!=(a=l(n,"equals").call(null!=t?t:e.nullContext||{},l(t,"export"),"enum",{name:"equals",hash:{},fn:e.program(4,o,0),inverse:e.program(6,o,0),data:o,loc:{start:{line:3,column:0},end:{line:17,column:0}}}))?a:""},4:function(e,t,n,r,o){var a,l=e.lookupProperty||function(e,t){if(Object.prototype.hasOwnProperty.call(e,t))return e[t]};return null!=(a=e.invokePartial(l(r,"schemaEnum"),t,{name:"schemaEnum",data:o,helpers:n,partials:r,decorators:e.decorators}))?a:""},6:function(e,t,n,r,o){var a,l=e.lookupProperty||function(e,t){if(Object.prototype.hasOwnProperty.call(e,t))return e[t]};return null!=(a=l(n,"equals").call(null!=t?t:e.nullContext||{},l(t,"export"),"array",{name:"equals",hash:{},fn:e.program(7,o,0),inverse:e.program(9,o,0),data:o,loc:{start:{line:5,column:0},end:{line:17,column:0}}}))?a:""},7:function(e,t,n,r,o){var a,l=e.lookupProperty||function(e,t){if(Object.prototype.hasOwnProperty.call(e,t))return e[t]};return null!=(a=e.invokePartial(l(r,"schemaArray"),t,{name:"schemaArray",data:o,helpers:n,partials:r,decorators:e.decorators}))?a:""},9:function(e,t,n,r,o){var a,l=e.lookupProperty||function(e,t){if(Object.prototype.hasOwnProperty.call(e,t))return e[t]};return null!=(a=l(n,"equals").call(null!=t?t:e.nullContext||{},l(t,"export"),"dictionary",{name:"equals",hash:{},fn:e.program(10,o,0),inverse:e.program(12,o,0),data:o,loc:{start:{line:7,column:0},end:{line:17,column:0}}}))?a:""},10:function(e,t,n,r,o){var a,l=e.lookupProperty||function(e,t){if(Object.prototype.hasOwnProperty.call(e,t))return e[t]};return null!=(a=e.invokePartial(l(r,"schemaDictionary"),t,{name:"schemaDictionary",data:o,helpers:n,partials:r,decorators:e.decorators}))?a:""},12:function(e,t,n,r,o){var a,l=e.lookupProperty||function(e,t){if(Object.prototype.hasOwnProperty.call(e,t))return e[t]};return null!=(a=l(n,"equals").call(null!=t?t:e.nullContext||{},l(t,"export"),"any-of",{name:"equals",hash:{},fn:e.program(13,o,0),inverse:e.program(15,o,0),data:o,loc:{start:{line:9,column:0},end:{line:17,column:0}}}))?a:""},13:function(e,t,n,r,o){var a,l=e.lookupProperty||function(e,t){if(Object.prototype.hasOwnProperty.call(e,t))return e[t]};return null!=(a=e.invokePartial(l(r,"schemaComposition"),t,{name:"schemaComposition",data:o,helpers:n,partials:r,decorators:e.decorators}))?a:""},15:function(e,t,n,r,o){var a,l=e.lookupProperty||function(e,t){if(Object.prototype.hasOwnProperty.call(e,t))return e[t]};return null!=(a=l(n,"equals").call(null!=t?t:e.nullContext||{},l(t,"export"),"all-of",{name:"equals",hash:{},fn:e.program(13,o,0),inverse:e.program(16,o,0),data:o,loc:{start:{line:11,column:0},end:{line:17,column:0}}}))?a:""},16:function(e,t,n,r,o){var a,l=e.lookupProperty||function(e,t){if(Object.prototype.hasOwnProperty.call(e,t))return e[t]};return null!=(a=l(n,"equals").call(null!=t?t:e.nullContext||{},l(t,"export"),"one-of",{name:"equals",hash:{},fn:e.program(13,o,0),inverse:e.program(17,o,0),data:o,loc:{start:{line:13,column:0},end:{line:17,column:0}}}))?a:""},17:function(e,t,n,r,o){var a,l=e.lookupProperty||function(e,t){if(Object.prototype.hasOwnProperty.call(e,t))return e[t]};return null!=(a=e.invokePartial(l(r,"schemaGeneric"),t,{name:"schemaGeneric",data:o,helpers:n,partials:r,decorators:e.decorators}))?a:""},compiler:[8,">= 4.3.0"],main:function(e,t,n,r,o){var a,l=e.lookupProperty||function(e,t){if(Object.prototype.hasOwnProperty.call(e,t))return e[t]};return null!=(a=l(n,"equals").call(null!=t?t:e.nullContext||{},l(t,"export"),"interface",{name:"equals",hash:{},fn:e.program(1,o,0),inverse:e.program(3,o,0),data:o,loc:{start:{line:1,column:0},end:{line:17,column:11}}}))?a:""},usePartial:!0,useData:!0},Mn={1:function(e,t,n,r,o){var a,l=e.lookupProperty||function(e,t){if(Object.prototype.hasOwnProperty.call(e,t))return e[t]};return"\tcontains: "+(null!=(a=e.invokePartial(l(r,"schema"),l(t,"link"),{name:"schema",data:o,helpers:n,partials:r,decorators:e.decorators}))?a:"")+",\n"},3:function(e,t,n,r,o){var a;return"\tcontains: {\n\t\ttype: '"+(null!=(a=e.lambda(e.strict(t,"base",{start:{line:7,column:12},end:{line:7,column:16}}),t))?a:"")+"',\n\t},\n"},5:function(e,t,n,r,o){var a;return"\tisReadOnly: "+(null!=(a=e.lambda(e.strict(t,"isReadOnly",{start:{line:11,column:16},end:{line:11,column:26}}),t))?a:"")+",\n"},7:function(e,t,n,r,o){var a;return"\tisRequired: "+(null!=(a=e.lambda(e.strict(t,"isRequired",{start:{line:14,column:16},end:{line:14,column:26}}),t))?a:"")+",\n"},9:function(e,t,n,r,o){var a;return"\tisNullable: "+(null!=(a=e.lambda(e.strict(t,"isNullable",{start:{line:17,column:16},end:{line:17,column:26}}),t))?a:"")+",\n"},compiler:[8,">= 4.3.0"],main:function(e,t,n,r,o){var a,l=null!=t?t:e.nullContext||{},s=e.lookupProperty||function(e,t){if(Object.prototype.hasOwnProperty.call(e,t))return e[t]};return"{\n\ttype: 'array',\n"+(null!=(a=s(n,"if").call(l,s(t,"link"),{name:"if",hash:{},fn:e.program(1,o,0),inverse:e.program(3,o,0),data:o,loc:{start:{line:3,column:0},end:{line:9,column:7}}}))?a:"")+(null!=(a=s(n,"if").call(l,s(t,"isReadOnly"),{name:"if",hash:{},fn:e.program(5,o,0),inverse:e.noop,data:o,loc:{start:{line:10,column:0},end:{line:12,column:7}}}))?a:"")+(null!=(a=s(n,"if").call(l,s(t,"isRequired"),{name:"if",hash:{},fn:e.program(7,o,0),inverse:e.noop,data:o,loc:{start:{line:13,column:0},end:{line:15,column:7}}}))?a:"")+(null!=(a=s(n,"if").call(l,s(t,"isNullable"),{name:"if",hash:{},fn:e.program(9,o,0),inverse:e.noop,data:o,loc:{start:{line:16,column:0},end:{line:18,column:7}}}))?a:"")+"}"},usePartial:!0,useData:!0},Ln={1:function(e,t,n,r,o){var a,l=e.lookupProperty||function(e,t){if(Object.prototype.hasOwnProperty.call(e,t))return e[t]};return"\tdescription: `"+(null!=(a=l(n,"escapeDescription").call(null!=t?t:e.nullContext||{},l(t,"description"),{name:"escapeDescription",hash:{},data:o,loc:{start:{line:4,column:15},end:{line:4,column:50}}}))?a:"")+"`,\n"},3:function(e,t,n,r,o){var a,l=e.lookupProperty||function(e,t){if(Object.prototype.hasOwnProperty.call(e,t))return e[t]};return(null!=(a=e.invokePartial(l(r,"schema"),t,{name:"schema",data:o,helpers:n,partials:r,decorators:e.decorators}))?a:"")+(null!=(a=l(n,"unless").call(null!=t?t:e.nullContext||{},l(o,"last"),{name:"unless",hash:{},fn:e.program(4,o,0),inverse:e.noop,data:o,loc:{start:{line:6,column:43},end:{line:6,column:73}}}))?a:"")},4:function(e,t,n,r,o){return", "},6:function(e,t,n,r,o){var a;return"\tisReadOnly: "+(null!=(a=e.lambda(e.strict(t,"isReadOnly",{start:{line:8,column:16},end:{line:8,column:26}}),t))?a:"")+",\n"},8:function(e,t,n,r,o){var a;return"\tisRequired: "+(null!=(a=e.lambda(e.strict(t,"isRequired",{start:{line:11,column:16},end:{line:11,column:26}}),t))?a:"")+",\n"},10:function(e,t,n,r,o){var a;return"\tisNullable: "+(null!=(a=e.lambda(e.strict(t,"isNullable",{start:{line:14,column:16},end:{line:14,column:26}}),t))?a:"")+",\n"},compiler:[8,">= 4.3.0"],main:function(e,t,n,r,o){var a,l=null!=t?t:e.nullContext||{},s=e.lookupProperty||function(e,t){if(Object.prototype.hasOwnProperty.call(e,t))return e[t]};return"{\n\ttype: '"+(null!=(a=e.lambda(e.strict(t,"export",{start:{line:2,column:10},end:{line:2,column:16}}),t))?a:"")+"',\n"+(null!=(a=s(n,"if").call(l,s(t,"description"),{name:"if",hash:{},fn:e.program(1,o,0),inverse:e.noop,data:o,loc:{start:{line:3,column:0},end:{line:5,column:7}}}))?a:"")+"\tcontains: ["+(null!=(a=s(n,"each").call(l,s(t,"properties"),{name:"each",hash:{},fn:e.program(3,o,0),inverse:e.noop,data:o,loc:{start:{line:6,column:12},end:{line:6,column:82}}}))?a:"")+"],\n"+(null!=(a=s(n,"if").call(l,s(t,"isReadOnly"),{name:"if",hash:{},fn:e.program(6,o,0),inverse:e.noop,data:o,loc:{start:{line:7,column:0},end:{line:9,column:7}}}))?a:"")+(null!=(a=s(n,"if").call(l,s(t,"isRequired"),{name:"if",hash:{},fn:e.program(8,o,0),inverse:e.noop,data:o,loc:{start:{line:10,column:0},end:{line:12,column:7}}}))?a:"")+(null!=(a=s(n,"if").call(l,s(t,"isNullable"),{name:"if",hash:{},fn:e.program(10,o,0),inverse:e.noop,data:o,loc:{start:{line:13,column:0},end:{line:15,column:7}}}))?a:"")+"}"},usePartial:!0,useData:!0},Fn={1:function(e,t,n,r,o){var a,l=e.lookupProperty||function(e,t){if(Object.prototype.hasOwnProperty.call(e,t))return e[t]};return"\tcontains: "+(null!=(a=e.invokePartial(l(r,"schema"),l(t,"link"),{name:"schema",data:o,helpers:n,partials:r,decorators:e.decorators}))?a:"")+",\n"},3:function(e,t,n,r,o){var a;return"\tcontains: {\n\t\ttype: '"+(null!=(a=e.lambda(e.strict(t,"base",{start:{line:7,column:12},end:{line:7,column:16}}),t))?a:"")+"',\n\t},\n"},5:function(e,t,n,r,o){var a;return"\tisReadOnly: "+(null!=(a=e.lambda(e.strict(t,"isReadOnly",{start:{line:11,column:16},end:{line:11,column:26}}),t))?a:"")+",\n"},7:function(e,t,n,r,o){var a;return"\tisRequired: "+(null!=(a=e.lambda(e.strict(t,"isRequired",{start:{line:14,column:16},end:{line:14,column:26}}),t))?a:"")+",\n"},9:function(e,t,n,r,o){var a;return"\tisNullable: "+(null!=(a=e.lambda(e.strict(t,"isNullable",{start:{line:17,column:16},end:{line:17,column:26}}),t))?a:"")+",\n"},compiler:[8,">= 4.3.0"],main:function(e,t,n,r,o){var a,l=null!=t?t:e.nullContext||{},s=e.lookupProperty||function(e,t){if(Object.prototype.hasOwnProperty.call(e,t))return e[t]};return"{\n\ttype: 'dictionary',\n"+(null!=(a=s(n,"if").call(l,s(t,"link"),{name:"if",hash:{},fn:e.program(1,o,0),inverse:e.program(3,o,0),data:o,loc:{start:{line:3,column:0},end:{line:9,column:7}}}))?a:"")+(null!=(a=s(n,"if").call(l,s(t,"isReadOnly"),{name:"if",hash:{},fn:e.program(5,o,0),inverse:e.noop,data:o,loc:{start:{line:10,column:0},end:{line:12,column:7}}}))?a:"")+(null!=(a=s(n,"if").call(l,s(t,"isRequired"),{name:"if",hash:{},fn:e.program(7,o,0),inverse:e.noop,data:o,loc:{start:{line:13,column:0},end:{line:15,column:7}}}))?a:"")+(null!=(a=s(n,"if").call(l,s(t,"isNullable"),{name:"if",hash:{},fn:e.program(9,o,0),inverse:e.noop,data:o,loc:{start:{line:16,column:0},end:{line:18,column:7}}}))?a:"")+"}"},usePartial:!0,useData:!0},Wn={1:function(e,t,n,r,o){var a;return"\tisReadOnly: "+(null!=(a=e.lambda(e.strict(t,"isReadOnly",{start:{line:4,column:16},end:{line:4,column:26}}),t))?a:"")+",\n"},3:function(e,t,n,r,o){var a;return"\tisRequired: "+(null!=(a=e.lambda(e.strict(t,"isRequired",{start:{line:7,column:16},end:{line:7,column:26}}),t))?a:"")+",\n"},5:function(e,t,n,r,o){var a;return"\tisNullable: "+(null!=(a=e.lambda(e.strict(t,"isNullable",{start:{line:10,column:16},end:{line:10,column:26}}),t))?a:"")+",\n"},compiler:[8,">= 4.3.0"],main:function(e,t,n,r,o){var a,l=null!=t?t:e.nullContext||{},s=e.lookupProperty||function(e,t){if(Object.prototype.hasOwnProperty.call(e,t))return e[t]};return"{\n\ttype: 'Enum',\n"+(null!=(a=s(n,"if").call(l,s(t,"isReadOnly"),{name:"if",hash:{},fn:e.program(1,o,0),inverse:e.noop,data:o,loc:{start:{line:3,column:0},end:{line:5,column:7}}}))?a:"")+(null!=(a=s(n,"if").call(l,s(t,"isRequired"),{name:"if",hash:{},fn:e.program(3,o,0),inverse:e.noop,data:o,loc:{start:{line:6,column:0},end:{line:8,column:7}}}))?a:"")+(null!=(a=s(n,"if").call(l,s(t,"isNullable"),{name:"if",hash:{},fn:e.program(5,o,0),inverse:e.noop,data:o,loc:{start:{line:9,column:0},end:{line:11,column:7}}}))?a:"")+"}"},useData:!0},Vn={1:function(e,t,n,r,o){var a;return"\ttype: '"+(null!=(a=e.lambda(e.strict(t,"type",{start:{line:3,column:11},end:{line:3,column:15}}),t))?a:"")+"',\n"},3:function(e,t,n,r,o){var a,l=e.lookupProperty||function(e,t){if(Object.prototype.hasOwnProperty.call(e,t))return e[t]};return"\tdescription: `"+(null!=(a=l(n,"escapeDescription").call(null!=t?t:e.nullContext||{},l(t,"description"),{name:"escapeDescription",hash:{},data:o,loc:{start:{line:6,column:15},end:{line:6,column:50}}}))?a:"")+"`,\n"},5:function(e,t,n,r,o){var a;return"\tisReadOnly: "+(null!=(a=e.lambda(e.strict(t,"isReadOnly",{start:{line:9,column:16},end:{line:9,column:26}}),t))?a:"")+",\n"},7:function(e,t,n,r,o){var a;return"\tisRequired: "+(null!=(a=e.lambda(e.strict(t,"isRequired",{start:{line:12,column:16},end:{line:12,column:26}}),t))?a:"")+",\n"},9:function(e,t,n,r,o){var a;return"\tisNullable: "+(null!=(a=e.lambda(e.strict(t,"isNullable",{start:{line:15,column:16},end:{line:15,column:26}}),t))?a:"")+",\n"},11:function(e,t,n,r,o){var a;return"\tformat: '"+(null!=(a=e.lambda(e.strict(t,"format",{start:{line:18,column:13},end:{line:18,column:19}}),t))?a:"")+"',\n"},13:function(e,t,n,r,o){var a;return"\tmaximum: "+(null!=(a=e.lambda(e.strict(t,"maximum",{start:{line:21,column:13},end:{line:21,column:20}}),t))?a:"")+",\n"},15:function(e,t,n,r,o){var a;return"\texclusiveMaximum: "+(null!=(a=e.lambda(e.strict(t,"exclusiveMaximum",{start:{line:24,column:22},end:{line:24,column:38}}),t))?a:"")+",\n"},17:function(e,t,n,r,o){var a;return"\tminimum: "+(null!=(a=e.lambda(e.strict(t,"minimum",{start:{line:27,column:13},end:{line:27,column:20}}),t))?a:"")+",\n"},19:function(e,t,n,r,o){var a;return"\texclusiveMinimum: "+(null!=(a=e.lambda(e.strict(t,"exclusiveMinimum",{start:{line:30,column:22},end:{line:30,column:38}}),t))?a:"")+",\n"},21:function(e,t,n,r,o){var a;return"\tmultipleOf: "+(null!=(a=e.lambda(e.strict(t,"multipleOf",{start:{line:33,column:16},end:{line:33,column:26}}),t))?a:"")+",\n"},23:function(e,t,n,r,o){var a;return"\tmaxLength: "+(null!=(a=e.lambda(e.strict(t,"maxLength",{start:{line:36,column:15},end:{line:36,column:24}}),t))?a:"")+",\n"},25:function(e,t,n,r,o){var a;return"\tminLength: "+(null!=(a=e.lambda(e.strict(t,"minLength",{start:{line:39,column:15},end:{line:39,column:24}}),t))?a:"")+",\n"},27:function(e,t,n,r,o){var a;return"\tpattern: '"+(null!=(a=e.lambda(e.strict(t,"pattern",{start:{line:42,column:14},end:{line:42,column:21}}),t))?a:"")+"',\n"},29:function(e,t,n,r,o){var a;return"\tmaxItems: "+(null!=(a=e.lambda(e.strict(t,"maxItems",{start:{line:45,column:14},end:{line:45,column:22}}),t))?a:"")+",\n"},31:function(e,t,n,r,o){var a;return"\tminItems: "+(null!=(a=e.lambda(e.strict(t,"minItems",{start:{line:48,column:14},end:{line:48,column:22}}),t))?a:"")+",\n"},33:function(e,t,n,r,o){var a;return"\tuniqueItems: "+(null!=(a=e.lambda(e.strict(t,"uniqueItems",{start:{line:51,column:17},end:{line:51,column:28}}),t))?a:"")+",\n"},35:function(e,t,n,r,o){var a;return"\tmaxProperties: "+(null!=(a=e.lambda(e.strict(t,"maxProperties",{start:{line:54,column:19},end:{line:54,column:32}}),t))?a:"")+",\n"},37:function(e,t,n,r,o){var a;return"\tminProperties: "+(null!=(a=e.lambda(e.strict(t,"minProperties",{start:{line:57,column:19},end:{line:57,column:32}}),t))?a:"")+",\n"},compiler:[8,">= 4.3.0"],main:function(e,t,n,r,o){var a,l=null!=t?t:e.nullContext||{},s=e.lookupProperty||function(e,t){if(Object.prototype.hasOwnProperty.call(e,t))return e[t]};return"{\n"+(null!=(a=s(n,"if").call(l,s(t,"type"),{name:"if",hash:{},fn:e.program(1,o,0),inverse:e.noop,data:o,loc:{start:{line:2,column:0},end:{line:4,column:7}}}))?a:"")+(null!=(a=s(n,"if").call(l,s(t,"description"),{name:"if",hash:{},fn:e.program(3,o,0),inverse:e.noop,data:o,loc:{start:{line:5,column:0},end:{line:7,column:7}}}))?a:"")+(null!=(a=s(n,"if").call(l,s(t,"isReadOnly"),{name:"if",hash:{},fn:e.program(5,o,0),inverse:e.noop,data:o,loc:{start:{line:8,column:0},end:{line:10,column:7}}}))?a:"")+(null!=(a=s(n,"if").call(l,s(t,"isRequired"),{name:"if",hash:{},fn:e.program(7,o,0),inverse:e.noop,data:o,loc:{start:{line:11,column:0},end:{line:13,column:7}}}))?a:"")+(null!=(a=s(n,"if").call(l,s(t,"isNullable"),{name:"if",hash:{},fn:e.program(9,o,0),inverse:e.noop,data:o,loc:{start:{line:14,column:0},end:{line:16,column:7}}}))?a:"")+(null!=(a=s(n,"if").call(l,s(t,"format"),{name:"if",hash:{},fn:e.program(11,o,0),inverse:e.noop,data:o,loc:{start:{line:17,column:0},end:{line:19,column:7}}}))?a:"")+(null!=(a=s(n,"if").call(l,s(t,"maximum"),{name:"if",hash:{},fn:e.program(13,o,0),inverse:e.noop,data:o,loc:{start:{line:20,column:0},end:{line:22,column:7}}}))?a:"")+(null!=(a=s(n,"if").call(l,s(t,"exclusiveMaximum"),{name:"if",hash:{},fn:e.program(15,o,0),inverse:e.noop,data:o,loc:{start:{line:23,column:0},end:{line:25,column:7}}}))?a:"")+(null!=(a=s(n,"if").call(l,s(t,"minimum"),{name:"if",hash:{},fn:e.program(17,o,0),inverse:e.noop,data:o,loc:{start:{line:26,column:0},end:{line:28,column:7}}}))?a:"")+(null!=(a=s(n,"if").call(l,s(t,"exclusiveMinimum"),{name:"if",hash:{},fn:e.program(19,o,0),inverse:e.noop,data:o,loc:{start:{line:29,column:0},end:{line:31,column:7}}}))?a:"")+(null!=(a=s(n,"if").call(l,s(t,"multipleOf"),{name:"if",hash:{},fn:e.program(21,o,0),inverse:e.noop,data:o,loc:{start:{line:32,column:0},end:{line:34,column:7}}}))?a:"")+(null!=(a=s(n,"if").call(l,s(t,"maxLength"),{name:"if",hash:{},fn:e.program(23,o,0),inverse:e.noop,data:o,loc:{start:{line:35,column:0},end:{line:37,column:7}}}))?a:"")+(null!=(a=s(n,"if").call(l,s(t,"minLength"),{name:"if",hash:{},fn:e.program(25,o,0),inverse:e.noop,data:o,loc:{start:{line:38,column:0},end:{line:40,column:7}}}))?a:"")+(null!=(a=s(n,"if").call(l,s(t,"pattern"),{name:"if",hash:{},fn:e.program(27,o,0),inverse:e.noop,data:o,loc:{start:{line:41,column:0},end:{line:43,column:7}}}))?a:"")+(null!=(a=s(n,"if").call(l,s(t,"maxItems"),{name:"if",hash:{},fn:e.program(29,o,0),inverse:e.noop,data:o,loc:{start:{line:44,column:0},end:{line:46,column:7}}}))?a:"")+(null!=(a=s(n,"if").call(l,s(t,"minItems"),{name:"if",hash:{},fn:e.program(31,o,0),inverse:e.noop,data:o,loc:{start:{line:47,column:0},end:{line:49,column:7}}}))?a:"")+(null!=(a=s(n,"if").call(l,s(t,"uniqueItems"),{name:"if",hash:{},fn:e.program(33,o,0),inverse:e.noop,data:o,loc:{start:{line:50,column:0},end:{line:52,column:7}}}))?a:"")+(null!=(a=s(n,"if").call(l,s(t,"maxProperties"),{name:"if",hash:{},fn:e.program(35,o,0),inverse:e.noop,data:o,loc:{start:{line:53,column:0},end:{line:55,column:7}}}))?a:"")+(null!=(a=s(n,"if").call(l,s(t,"minProperties"),{name:"if",hash:{},fn:e.program(37,o,0),inverse:e.noop,data:o,loc:{start:{line:56,column:0},end:{line:58,column:7}}}))?a:"")+"}"},useData:!0},Un={1:function(e,t,n,r,o){var a,l=e.lookupProperty||function(e,t){if(Object.prototype.hasOwnProperty.call(e,t))return e[t]};return"\tdescription: `"+(null!=(a=l(n,"escapeDescription").call(null!=t?t:e.nullContext||{},l(t,"description"),{name:"escapeDescription",hash:{},data:o,loc:{start:{line:3,column:15},end:{line:3,column:50}}}))?a:"")+"`,\n"},3:function(e,t,n,r,o){var a,l=e.lookupProperty||function(e,t){if(Object.prototype.hasOwnProperty.call(e,t))return e[t]};return null!=(a=l(n,"each").call(null!=t?t:e.nullContext||{},l(t,"properties"),{name:"each",hash:{},fn:e.program(4,o,0),inverse:e.noop,data:o,loc:{start:{line:7,column:1},end:{line:9,column:10}}}))?a:""},4:function(e,t,n,r,o){var a,l=e.lookupProperty||function(e,t){if(Object.prototype.hasOwnProperty.call(e,t))return e[t]};return"\t\t"+(null!=(a=e.lambda(e.strict(t,"name",{start:{line:8,column:5},end:{line:8,column:9}}),t))?a:"")+": "+(null!=(a=e.invokePartial(l(r,"schema"),t,{name:"schema",data:o,helpers:n,partials:r,decorators:e.decorators}))?a:"")+",\n"},6:function(e,t,n,r,o){var a;return"\tisReadOnly: "+(null!=(a=e.lambda(e.strict(t,"isReadOnly",{start:{line:13,column:16},end:{line:13,column:26}}),t))?a:"")+",\n"},8:function(e,t,n,r,o){var a;return"\tisRequired: "+(null!=(a=e.lambda(e.strict(t,"isRequired",{start:{line:16,column:16},end:{line:16,column:26}}),t))?a:"")+",\n"},10:function(e,t,n,r,o){var a;return"\tisNullable: "+(null!=(a=e.lambda(e.strict(t,"isNullable",{start:{line:19,column:16},end:{line:19,column:26}}),t))?a:"")+",\n"},compiler:[8,">= 4.3.0"],main:function(e,t,n,r,o){var a,l=null!=t?t:e.nullContext||{},s=e.lookupProperty||function(e,t){if(Object.prototype.hasOwnProperty.call(e,t))return e[t]};return"{\n"+(null!=(a=s(n,"if").call(l,s(t,"description"),{name:"if",hash:{},fn:e.program(1,o,0),inverse:e.noop,data:o,loc:{start:{line:2,column:0},end:{line:4,column:7}}}))?a:"")+"\tproperties: {\n"+(null!=(a=s(n,"if").call(l,s(t,"properties"),{name:"if",hash:{},fn:e.program(3,o,0),inverse:e.noop,data:o,loc:{start:{line:6,column:0},end:{line:10,column:7}}}))?a:"")+"\t},\n"+(null!=(a=s(n,"if").call(l,s(t,"isReadOnly"),{name:"if",hash:{},fn:e.program(6,o,0),inverse:e.noop,data:o,loc:{start:{line:12,column:0},end:{line:14,column:7}}}))?a:"")+(null!=(a=s(n,"if").call(l,s(t,"isRequired"),{name:"if",hash:{},fn:e.program(8,o,0),inverse:e.noop,data:o,loc:{start:{line:15,column:0},end:{line:17,column:7}}}))?a:"")+(null!=(a=s(n,"if").call(l,s(t,"isNullable"),{name:"if",hash:{},fn:e.program(10,o,0),inverse:e.noop,data:o,loc:{start:{line:18,column:0},end:{line:20,column:7}}}))?a:"")+"}"},usePartial:!0,useData:!0},Qn={1:function(e,t,n,r,o){var a,l=e.lookupProperty||function(e,t){if(Object.prototype.hasOwnProperty.call(e,t))return e[t]};return null!=(a=e.invokePartial(l(r,"typeInterface"),t,{name:"typeInterface",data:o,helpers:n,partials:r,decorators:e.decorators}))?a:""},3:function(e,t,n,r,o){var a,l=e.lookupProperty||function(e,t){if(Object.prototype.hasOwnProperty.call(e,t))return e[t]};return null!=(a=l(n,"equals").call(null!=t?t:e.nullContext||{},l(t,"export"),"reference",{name:"equals",hash:{},fn:e.program(4,o,0),inverse:e.program(6,o,0),data:o,loc:{start:{line:3,column:0},end:{line:19,column:0}}}))?a:""},4:function(e,t,n,r,o){var a,l=e.lookupProperty||function(e,t){if(Object.prototype.hasOwnProperty.call(e,t))return e[t]};return null!=(a=e.invokePartial(l(r,"typeReference"),t,{name:"typeReference",data:o,helpers:n,partials:r,decorators:e.decorators}))?a:""},6:function(e,t,n,r,o){var a,l=e.lookupProperty||function(e,t){if(Object.prototype.hasOwnProperty.call(e,t))return e[t]};return null!=(a=l(n,"equals").call(null!=t?t:e.nullContext||{},l(t,"export"),"enum",{name:"equals",hash:{},fn:e.program(7,o,0),inverse:e.program(9,o,0),data:o,loc:{start:{line:5,column:0},end:{line:19,column:0}}}))?a:""},7:function(e,t,n,r,o){var a,l=e.lookupProperty||function(e,t){if(Object.prototype.hasOwnProperty.call(e,t))return e[t]};return null!=(a=e.invokePartial(l(r,"typeEnum"),t,{name:"typeEnum",data:o,helpers:n,partials:r,decorators:e.decorators}))?a:""},9:function(e,t,n,r,o){var a,l=e.lookupProperty||function(e,t){if(Object.prototype.hasOwnProperty.call(e,t))return e[t]};return null!=(a=l(n,"equals").call(null!=t?t:e.nullContext||{},l(t,"export"),"array",{name:"equals",hash:{},fn:e.program(10,o,0),inverse:e.program(12,o,0),data:o,loc:{start:{line:7,column:0},end:{line:19,column:0}}}))?a:""},10:function(e,t,n,r,o){var a,l=e.lookupProperty||function(e,t){if(Object.prototype.hasOwnProperty.call(e,t))return e[t]};return null!=(a=e.invokePartial(l(r,"typeArray"),t,{name:"typeArray",data:o,helpers:n,partials:r,decorators:e.decorators}))?a:""},12:function(e,t,n,r,o){var a,l=e.lookupProperty||function(e,t){if(Object.prototype.hasOwnProperty.call(e,t))return e[t]};return null!=(a=l(n,"equals").call(null!=t?t:e.nullContext||{},l(t,"export"),"dictionary",{name:"equals",hash:{},fn:e.program(13,o,0),inverse:e.program(15,o,0),data:o,loc:{start:{line:9,column:0},end:{line:19,column:0}}}))?a:""},13:function(e,t,n,r,o){var a,l=e.lookupProperty||function(e,t){if(Object.prototype.hasOwnProperty.call(e,t))return e[t]};return null!=(a=e.invokePartial(l(r,"typeDictionary"),t,{name:"typeDictionary",data:o,helpers:n,partials:r,decorators:e.decorators}))?a:""},15:function(e,t,n,r,o){var a,l=e.lookupProperty||function(e,t){if(Object.prototype.hasOwnProperty.call(e,t))return e[t]};return null!=(a=l(n,"equals").call(null!=t?t:e.nullContext||{},l(t,"export"),"one-of",{name:"equals",hash:{},fn:e.program(16,o,0),inverse:e.program(18,o,0),data:o,loc:{start:{line:11,column:0},end:{line:19,column:0}}}))?a:""},16:function(e,t,n,r,o){var a,l=e.lookupProperty||function(e,t){if(Object.prototype.hasOwnProperty.call(e,t))return e[t]};return null!=(a=e.invokePartial(l(r,"typeUnion"),t,{name:"typeUnion",data:o,helpers:n,partials:r,decorators:e.decorators}))?a:""},18:function(e,t,n,r,o){var a,l=e.lookupProperty||function(e,t){if(Object.prototype.hasOwnProperty.call(e,t))return e[t]};return null!=(a=l(n,"equals").call(null!=t?t:e.nullContext||{},l(t,"export"),"any-of",{name:"equals",hash:{},fn:e.program(16,o,0),inverse:e.program(19,o,0),data:o,loc:{start:{line:13,column:0},end:{line:19,column:0}}}))?a:""},19:function(e,t,n,r,o){var a,l=e.lookupProperty||function(e,t){if(Object.prototype.hasOwnProperty.call(e,t))return e[t]};return null!=(a=l(n,"equals").call(null!=t?t:e.nullContext||{},l(t,"export"),"all-of",{name:"equals",hash:{},fn:e.program(20,o,0),inverse:e.program(22,o,0),data:o,loc:{start:{line:15,column:0},end:{line:19,column:0}}}))?a:""},20:function(e,t,n,r,o){var a,l=e.lookupProperty||function(e,t){if(Object.prototype.hasOwnProperty.call(e,t))return e[t]};return null!=(a=e.invokePartial(l(r,"typeIntersection"),t,{name:"typeIntersection",data:o,helpers:n,partials:r,decorators:e.decorators}))?a:""},22:function(e,t,n,r,o){var a,l=e.lookupProperty||function(e,t){if(Object.prototype.hasOwnProperty.call(e,t))return e[t]};return null!=(a=e.invokePartial(l(r,"typeGeneric"),t,{name:"typeGeneric",data:o,helpers:n,partials:r,decorators:e.decorators}))?a:""},compiler:[8,">= 4.3.0"],main:function(e,t,n,r,o){var a,l=e.lookupProperty||function(e,t){if(Object.prototype.hasOwnProperty.call(e,t))return e[t]};return null!=(a=l(n,"equals").call(null!=t?t:e.nullContext||{},l(t,"export"),"interface",{name:"equals",hash:{},fn:e.program(1,o,0),inverse:e.program(3,o,0),data:o,loc:{start:{line:1,column:0},end:{line:19,column:11}}}))?a:""},usePartial:!0,useData:!0},zn={1:function(e,t,n,r,o){var a,l=e.lookupProperty||function(e,t){if(Object.prototype.hasOwnProperty.call(e,t))return e[t]};return"Array<"+(null!=(a=e.invokePartial(l(r,"type"),l(t,"link"),{name:"type",data:o,helpers:n,partials:r,decorators:e.decorators}))?a:"")+">"+(null!=(a=e.invokePartial(l(r,"isNullable"),t,{name:"isNullable",data:o,helpers:n,partials:r,decorators:e.decorators}))?a:"")},3:function(e,t,n,r,o){var a,l=e.lookupProperty||function(e,t){if(Object.prototype.hasOwnProperty.call(e,t))return e[t]};return"Array<"+(null!=(a=e.invokePartial(l(r,"base"),t,{name:"base",data:o,helpers:n,partials:r,decorators:e.decorators}))?a:"")+">"+(null!=(a=e.invokePartial(l(r,"isNullable"),t,{name:"isNullable",data:o,helpers:n,partials:r,decorators:e.decorators}))?a:"")},compiler:[8,">= 4.3.0"],main:function(e,t,n,r,o){var a,l=e.lookupProperty||function(e,t){if(Object.prototype.hasOwnProperty.call(e,t))return e[t]};return null!=(a=l(n,"if").call(null!=t?t:e.nullContext||{},l(t,"link"),{name:"if",hash:{},fn:e.program(1,o,0),inverse:e.program(3,o,0),data:o,loc:{start:{line:1,column:0},end:{line:5,column:9}}}))?a:""},usePartial:!0,useData:!0},Jn={1:function(e,t,n,r,o){var a,l=e.lookupProperty||function(e,t){if(Object.prototype.hasOwnProperty.call(e,t))return e[t]};return"Record"+(null!=(a=e.invokePartial(l(r,"isNullable"),t,{name:"isNullable",data:o,helpers:n,partials:r,decorators:e.decorators}))?a:"")},3:function(e,t,n,r,o){var a,l=e.lookupProperty||function(e,t){if(Object.prototype.hasOwnProperty.call(e,t))return e[t]};return"Record"+(null!=(a=e.invokePartial(l(r,"isNullable"),t,{name:"isNullable",data:o,helpers:n,partials:r,decorators:e.decorators}))?a:"")},compiler:[8,">= 4.3.0"],main:function(e,t,n,r,o){var a,l=e.lookupProperty||function(e,t){if(Object.prototype.hasOwnProperty.call(e,t))return e[t]};return null!=(a=l(n,"if").call(null!=t?t:e.nullContext||{},l(t,"link"),{name:"if",hash:{},fn:e.program(1,o,0),inverse:e.program(3,o,0),data:o,loc:{start:{line:1,column:0},end:{line:5,column:9}}}))?a:""},usePartial:!0,useData:!0},Gn={1:function(e,t,n,r,o){var a;return null!=(a=e.lambda(t,t))?a:""},compiler:[8,">= 4.3.0"],main:function(e,t,n,r,o){var a,l=e.lookupProperty||function(e,t){if(Object.prototype.hasOwnProperty.call(e,t))return e[t]};return(null!=(a=l(n,"enumerator").call(null!=t?t:e.nullContext||{},l(t,"enum"),l(t,"parent"),l(t,"name"),{name:"enumerator",hash:{},fn:e.program(1,o,0),inverse:e.noop,data:o,loc:{start:{line:1,column:0},end:{line:1,column:55}}}))?a:"")+(null!=(a=e.invokePartial(l(r,"isNullable"),t,{name:"isNullable",data:o,helpers:n,partials:r,decorators:e.decorators}))?a:"")},usePartial:!0,useData:!0},Zn={compiler:[8,">= 4.3.0"],main:function(e,t,n,r,o){var a,l=e.lookupProperty||function(e,t){if(Object.prototype.hasOwnProperty.call(e,t))return e[t]};return(null!=(a=e.invokePartial(l(r,"base"),t,{name:"base",data:o,helpers:n,partials:r,decorators:e.decorators}))?a:"")+(null!=(a=e.invokePartial(l(r,"isNullable"),t,{name:"isNullable",data:o,helpers:n,partials:r,decorators:e.decorators}))?a:"")},usePartial:!0,useData:!0},Kn={1:function(e,t,n,r,o,a,l){var s,i=e.lookupProperty||function(e,t){if(Object.prototype.hasOwnProperty.call(e,t))return e[t]};return"{\n"+(null!=(s=i(n,"each").call(null!=t?t:e.nullContext||{},i(t,"properties"),{name:"each",hash:{},fn:e.program(2,o,0,a,l),inverse:e.noop,data:o,loc:{start:{line:3,column:0},end:{line:19,column:9}}}))?s:"")+"}"+(null!=(s=e.invokePartial(i(r,"isNullable"),t,{name:"isNullable",data:o,helpers:n,partials:r,decorators:e.decorators}))?s:"")},2:function(e,t,n,r,o,a,l){var s,i=null!=t?t:e.nullContext||{},u=e.lookupProperty||function(e,t){if(Object.prototype.hasOwnProperty.call(e,t))return e[t]};return(null!=(s=u(n,"ifdef").call(i,u(t,"description"),u(t,"deprecated"),{name:"ifdef",hash:{},fn:e.program(3,o,0,a,l),inverse:e.noop,data:o,loc:{start:{line:4,column:0},end:{line:13,column:10}}}))?s:"")+(null!=(s=u(n,"if").call(i,u(l[1],"parent"),{name:"if",hash:{},fn:e.program(8,o,0,a,l),inverse:e.program(10,o,0,a,l),data:o,loc:{start:{line:14,column:0},end:{line:18,column:7}}}))?s:"")},3:function(e,t,n,r,o){var a,l=null!=t?t:e.nullContext||{},s=e.lookupProperty||function(e,t){if(Object.prototype.hasOwnProperty.call(e,t))return e[t]};return"/**\n"+(null!=(a=s(n,"if").call(l,s(t,"description"),{name:"if",hash:{},fn:e.program(4,o,0),inverse:e.noop,data:o,loc:{start:{line:6,column:0},end:{line:8,column:7}}}))?a:"")+(null!=(a=s(n,"if").call(l,s(t,"deprecated"),{name:"if",hash:{},fn:e.program(6,o,0),inverse:e.noop,data:o,loc:{start:{line:9,column:0},end:{line:11,column:7}}}))?a:"")+" */\n"},4:function(e,t,n,r,o){var a,l=e.lookupProperty||function(e,t){if(Object.prototype.hasOwnProperty.call(e,t))return e[t]};return" * "+(null!=(a=l(n,"escapeComment").call(null!=t?t:e.nullContext||{},l(t,"description"),{name:"escapeComment",hash:{},data:o,loc:{start:{line:7,column:3},end:{line:7,column:34}}}))?a:"")+"\n"},6:function(e,t,n,r,o){return" * @deprecated\n"},8:function(e,t,n,r,o,a,l){var s,i=e.lookupProperty||function(e,t){if(Object.prototype.hasOwnProperty.call(e,t))return e[t]};return(null!=(s=e.invokePartial(i(r,"isReadOnly"),t,{name:"isReadOnly",data:o,helpers:n,partials:r,decorators:e.decorators}))?s:"")+(null!=(s=e.lambda(e.strict(t,"name",{start:{line:15,column:18},end:{line:15,column:22}}),t))?s:"")+(null!=(s=e.invokePartial(i(r,"isRequired"),t,{name:"isRequired",data:o,helpers:n,partials:r,decorators:e.decorators}))?s:"")+": "+(null!=(s=e.invokePartial(i(r,"type"),t,{name:"type",hash:{parent:i(l[1],"parent")},data:o,helpers:n,partials:r,decorators:e.decorators}))?s:"")+";\n"},10:function(e,t,n,r,o){var a,l=e.lookupProperty||function(e,t){if(Object.prototype.hasOwnProperty.call(e,t))return e[t]};return(null!=(a=e.invokePartial(l(r,"isReadOnly"),t,{name:"isReadOnly",data:o,helpers:n,partials:r,decorators:e.decorators}))?a:"")+(null!=(a=e.lambda(e.strict(t,"name",{start:{line:17,column:18},end:{line:17,column:22}}),t))?a:"")+(null!=(a=e.invokePartial(l(r,"isRequired"),t,{name:"isRequired",data:o,helpers:n,partials:r,decorators:e.decorators}))?a:"")+": "+(null!=(a=e.invokePartial(l(r,"type"),t,{name:"type",data:o,helpers:n,partials:r,decorators:e.decorators}))?a:"")+";\n"},12:function(e,t,n,r,o){return"any"},compiler:[8,">= 4.3.0"],main:function(e,t,n,r,o,a,l){var s,i=e.lookupProperty||function(e,t){if(Object.prototype.hasOwnProperty.call(e,t))return e[t]};return null!=(s=i(n,"if").call(null!=t?t:e.nullContext||{},i(t,"properties"),{name:"if",hash:{},fn:e.program(1,o,0,a,l),inverse:e.program(12,o,0,a,l),data:o,loc:{start:{line:1,column:0},end:{line:23,column:9}}}))?s:""},usePartial:!0,useData:!0,useDepths:!0},Xn={1:function(e,t,n,r,o){var a;return null!=(a=e.lambda(t,t))?a:""},compiler:[8,">= 4.3.0"],main:function(e,t,n,r,o){var a,l=e.lookupProperty||function(e,t){if(Object.prototype.hasOwnProperty.call(e,t))return e[t]};return(null!=(a=l(n,"intersection").call(null!=t?t:e.nullContext||{},l(t,"properties"),l(t,"parent"),{name:"intersection",hash:{},fn:e.program(1,o,0),inverse:e.noop,data:o,loc:{start:{line:1,column:0},end:{line:1,column:60}}}))?a:"")+(null!=(a=e.invokePartial(l(r,"isNullable"),t,{name:"isNullable",data:o,helpers:n,partials:r,decorators:e.decorators}))?a:"")},usePartial:!0,useData:!0},Yn={compiler:[8,">= 4.3.0"],main:function(e,t,n,r,o){var a,l=e.lookupProperty||function(e,t){if(Object.prototype.hasOwnProperty.call(e,t))return e[t]};return(null!=(a=e.invokePartial(l(r,"base"),t,{name:"base",data:o,helpers:n,partials:r,decorators:e.decorators}))?a:"")+(null!=(a=e.invokePartial(l(r,"isNullable"),t,{name:"isNullable",data:o,helpers:n,partials:r,decorators:e.decorators}))?a:"")},usePartial:!0,useData:!0},er={1:function(e,t,n,r,o){var a;return null!=(a=e.lambda(t,t))?a:""},compiler:[8,">= 4.3.0"],main:function(e,t,n,r,o){var a,l=e.lookupProperty||function(e,t){if(Object.prototype.hasOwnProperty.call(e,t))return e[t]};return(null!=(a=l(n,"union").call(null!=t?t:e.nullContext||{},l(t,"properties"),l(t,"parent"),{name:"union",hash:{},fn:e.program(1,o,0),inverse:e.noop,data:o,loc:{start:{line:1,column:0},end:{line:1,column:46}}}))?a:"")+(null!=(a=e.invokePartial(l(r,"isNullable"),t,{name:"isNullable",data:o,helpers:n,partials:r,decorators:e.decorators}))?a:"")},usePartial:!0,useData:!0};const tr=e=>{Ct.registerHelper("ifdef",(function(...e){const t=e.pop();return e.every((e=>!e))?t.inverse(this):t.fn(this)})),Ct.registerHelper("equals",(function(e,t,n){return e===t?n.fn(this):n.inverse(this)})),Ct.registerHelper("notEquals",(function(e,t,n){return e!==t?n.fn(this):n.inverse(this)})),Ct.registerHelper("containsSpaces",(function(e,t){return/\s+/.test(e)?t.fn(this):t.inverse(this)})),Ct.registerHelper("union",(function(t,n,r){const o=Ct.partials.type,a=t.map((t=>o({...e,...t,parent:n}))).filter(R);let l=a.join(" | ");return a.length>1&&(l=`(${l})`),r.fn(l)})),Ct.registerHelper("intersection",(function(t,n,r){const o=Ct.partials.type,a=t.map((t=>o({...e,...t,parent:n}))).filter(R);let l=a.join(" & ");return a.length>1&&(l=`(${l})`),r.fn(l)})),Ct.registerHelper("enumerator",(function(t,n,r,o){return!e.useUnionTypes&&n&&r?`${n}.${r}`:o.fn(t.map((e=>e.value)).filter(R).join(" | "))})),Ct.registerHelper("escapeComment",(function(e){return e.replace(/\*\//g,"*").replace(/\/\*/g,"*").replace(/\r?\n(.*)/g,((e,t)=>`${n.EOL} * ${t.trim()}`))})),Ct.registerHelper("escapeDescription",(function(e){return e.replace(/\\/g,"\\\\").replace(/`/g,"\\`").replace(/\${/g,"\\${")})),Ct.registerHelper("camelCase",(function(e){return i.default(e)}))},nr=o.writeFile,rr=o.copyFile,or=o.pathExists,ar=o.mkdirp,lr=o.remove,sr=e=>{let t=0,r=e.split(n.EOL);return r=r.map((e=>{e=e.trim().replace(/^\*/g," *");let n=t;(e.endsWith("(")||e.endsWith("{")||e.endsWith("["))&&t++,(e.startsWith(")")||e.startsWith("}")||e.startsWith("]"))&&n&&(t--,n--);const r=`${"\t".repeat(n)}${e}`;return""===r.trim()?"":r})),r.join(n.EOL)},ir=(e,t)=>{let r=e.split(n.EOL);r=r.map((e=>{switch(t){case exports.Indent.SPACE_4:return e.replace(/\t/g," ");case exports.Indent.SPACE_2:return e.replace(/\t/g," ");case exports.Indent.TAB:return e}}));return`${r.join(n.EOL)}${n.EOL}`},ur=e=>{switch(e){case exports.HttpClient.FETCH:return"FetchHttpRequest";case exports.HttpClient.XHR:return"XHRHttpRequest";case exports.HttpClient.NODE:return"NodeHttpRequest";case exports.HttpClient.AXIOS:return"AxiosHttpRequest";case exports.HttpClient.ANGULAR:return"AngularHttpRequest"}},pr=e=>e.sort(((e,t)=>{const n=e.name.toLowerCase(),r=t.name.toLowerCase();return n.localeCompare(r,"en")})),cr=e=>e.sort(((e,t)=>{const n=e.name.toLowerCase(),r=t.name.toLowerCase();return n.localeCompare(r,"en")})),mr=async(e,t,n,o,a,l,s,i,u,p,c,m,d,f,h)=>{const y=r.resolve(process.cwd(),n),v=r.resolve(y,"core"),g=r.resolve(y,"models"),P=r.resolve(y,"schemas"),b=r.resolve(y,"services");if(O=process.cwd(),x=n,!r.relative(x,O).startsWith(".."))throw new Error("Output folder is not a subdirectory of the current working directory");var O,x;s&&(await lr(v),await ar(v),await(async(e,t,n,o,a,l,s)=>{const i=ur(o),u={httpClient:o,clientName:l,httpRequest:i,server:e.server,version:e.version};if(await nr(r.resolve(n,"OpenAPI.ts"),ir(t.core.settings(u),a)),await nr(r.resolve(n,"ApiError.ts"),ir(t.core.apiError(u),a)),await nr(r.resolve(n,"ApiRequestOptions.ts"),ir(t.core.apiRequestOptions(u),a)),await nr(r.resolve(n,"ApiResult.ts"),ir(t.core.apiResult(u),a)),await nr(r.resolve(n,"CancelablePromise.ts"),ir(t.core.cancelablePromise(u),a)),await nr(r.resolve(n,"request.ts"),ir(t.core.request(u),a)),B(l)&&(await nr(r.resolve(n,"BaseHttpRequest.ts"),ir(t.core.baseHttpRequest(u),a)),await nr(r.resolve(n,`${i}.ts`),ir(t.core.httpRequest(u),a))),s){const e=r.resolve(process.cwd(),s);if(!await or(e))throw new Error(`Custom request file "${e}" does not exists`);await rr(e,r.resolve(n,"request.ts"))}})(e,t,v,o,c,d,f)),i&&(await lr(b),await ar(b),await(async(e,t,n,o,a,l,s,i,u,p)=>{for(const c of e){const e=r.resolve(n,`${c.name}${i}.ts`),m=t.exports.service({...c,httpClient:o,useUnionTypes:a,useOptions:l,postfix:i,exportClient:B(u),additionalContext:p||{}});await nr(e,ir(sr(m),s))}})(e.services,t,b,o,l,a,c,m,d,h)),p&&(await lr(P),await ar(P),await(async(e,t,n,o,a,l,s)=>{for(const i of e){const e=r.resolve(n,`$${i.name}.ts`),u=t.exports.schema({...i,httpClient:o,useUnionTypes:a,additionalContext:s||{}});await nr(e,ir(sr(u),l))}})(e.models,t,P,o,l,c,h)),u&&(await lr(g),await ar(g),await(async(e,t,n,o,a,l,s)=>{for(const i of e){const e=r.resolve(n,`${i.name}.ts`),u=t.exports.model({...i,httpClient:o,useUnionTypes:a,additionalContext:s||{}});await nr(e,ir(sr(u),l))}})(e.models,t,g,o,l,c,h)),B(d)&&(await ar(y),await(async(e,t,n,o,a,l,s)=>{const i=t.client({clientName:a,httpClient:o,postfix:s,server:e.server,version:e.version,models:pr(e.models),services:cr(e.services),httpRequest:ur(o)});await nr(r.resolve(n,`${a}.ts`),ir(sr(i),l))})(e,t,y,o,d,c,m)),(s||i||p||u)&&(await ar(y),await(async(e,t,n,o,a,l,s,i,u,p)=>{const c=t.index({exportCore:a,exportServices:l,exportModels:s,exportSchemas:i,useUnionTypes:o,postfix:u,clientName:p,server:e.server,version:e.version,models:pr(e.models),services:cr(e.services),exportClient:B(p)});await nr(r.resolve(n,"index.ts"),c)})(e,t,y,l,s,i,u,p,m,d))},dr=async({input:e,output:t,httpClient:n=exports.HttpClient.FETCH,clientName:r,useOptions:o=!1,useUnionTypes:a=!1,exportCore:l=!0,exportServices:s=!0,exportModels:i=!0,exportSchemas:p=!1,indent:m=exports.Indent.SPACE_4,postfix:d="Service",request:f,hbsFilesOverride:h,additionalContext:y,write:v=!0})=>{const g=c(e)?await(async e=>await u.default.bundle(e,e,{}))(e):e,P=(e=>{const t=e.swagger||e.openapi;if("string"==typeof t){const e=t.charAt(0),n=Number.parseInt(e);if(n===se.V2||n===se.V3)return n}throw new Error(`Unsupported Open API version: "${String(t)}"`)})(g),b=(e=>{tr(e);const t={};for(const n in e.hbsFilesOverride||{}){let r=e.hbsFilesOverride[n];"function"==typeof r&&(r=r()),t[n]=r}const n={index:Ct.template(qn),client:Ct.template(wt),exports:{model:Ct.template(t.exportModel||Rn),schema:Ct.template(t.exportSchema||Cn),service:Ct.template(t.exportService||wn)},core:{settings:Ct.template(yn),apiError:Ct.template(Tt),apiRequestOptions:Ct.template(It),apiResult:Ct.template(St),cancelablePromise:Ct.template(Wt),request:Ct.template(vn),baseHttpRequest:Ct.template(Ft),httpRequest:Ct.template(un)}};return Ct.registerPartial("exportEnum",Ct.template(Hn)),Ct.registerPartial("exportInterface",Ct.template(En)),Ct.registerPartial("exportComposition",Ct.template(jn)),Ct.registerPartial("exportType",Ct.template(Dn)),Ct.registerPartial("header",Ct.template(Tn)),Ct.registerPartial("isNullable",Ct.template(In)),Ct.registerPartial("isReadOnly",Ct.template(Sn)),Ct.registerPartial("isRequired",Ct.template(_n)),Ct.registerPartial("parameters",Ct.template(Nn)),Ct.registerPartial("result",Ct.template(Bn)),Ct.registerPartial("schema",Ct.template($n)),Ct.registerPartial("schemaArray",Ct.template(Mn)),Ct.registerPartial("schemaDictionary",Ct.template(Fn)),Ct.registerPartial("schemaEnum",Ct.template(Wn)),Ct.registerPartial("schemaGeneric",Ct.template(Vn)),Ct.registerPartial("schemaInterface",Ct.template(Un)),Ct.registerPartial("schemaComposition",Ct.template(Ln)),Ct.registerPartial("type",Ct.template(Qn)),Ct.registerPartial("typeArray",Ct.template(zn)),Ct.registerPartial("typeDictionary",Ct.template(Jn)),Ct.registerPartial("typeEnum",Ct.template(Gn)),Ct.registerPartial("typeGeneric",Ct.template(Zn)),Ct.registerPartial("typeInterface",Ct.template(Kn)),Ct.registerPartial("typeReference",Ct.template(Yn)),Ct.registerPartial("typeUnion",Ct.template(er)),Ct.registerPartial("typeIntersection",Ct.template(Xn)),Ct.registerPartial("base",Ct.template(An)),Ct.registerPartial("functions/catchErrorCodes",Ct.template(Kt)),Ct.registerPartial("functions/getFormData",Ct.template(Xt)),Ct.registerPartial("functions/getQueryString",Ct.template(Yt)),Ct.registerPartial("functions/getUrl",Ct.template(en)),Ct.registerPartial("functions/isBlob",Ct.template(tn)),Ct.registerPartial("functions/isDefined",Ct.template(nn)),Ct.registerPartial("functions/isFormData",Ct.template(rn)),Ct.registerPartial("functions/isString",Ct.template(on)),Ct.registerPartial("functions/isStringWithValue",Ct.template(an)),Ct.registerPartial("functions/isSuccess",Ct.template(ln)),Ct.registerPartial("functions/base64",Ct.template(Zt)),Ct.registerPartial("functions/resolve",Ct.template(sn)),Ct.registerPartial("fetch/getHeaders",Ct.template(Vt)),Ct.registerPartial("fetch/getRequestBody",Ct.template(Ut)),Ct.registerPartial("fetch/getResponseBody",Ct.template(Qt)),Ct.registerPartial("fetch/getResponseHeader",Ct.template(zt)),Ct.registerPartial("fetch/sendRequest",Ct.template(Gt)),Ct.registerPartial("fetch/request",Ct.template(Jt)),Ct.registerPartial("xhr/getHeaders",Ct.template(gn)),Ct.registerPartial("xhr/getRequestBody",Ct.template(Pn)),Ct.registerPartial("xhr/getResponseBody",Ct.template(bn)),Ct.registerPartial("xhr/getResponseHeader",Ct.template(On)),Ct.registerPartial("xhr/sendRequest",Ct.template(kn)),Ct.registerPartial("xhr/request",Ct.template(xn)),Ct.registerPartial("node/getHeaders",Ct.template(pn)),Ct.registerPartial("node/getRequestBody",Ct.template(cn)),Ct.registerPartial("node/getResponseBody",Ct.template(mn)),Ct.registerPartial("node/getResponseHeader",Ct.template(dn)),Ct.registerPartial("node/sendRequest",Ct.template(hn)),Ct.registerPartial("node/request",Ct.template(fn)),Ct.registerPartial("axios/getHeaders",Ct.template(_t)),Ct.registerPartial("axios/getRequestBody",Ct.template(Nt)),Ct.registerPartial("axios/getResponseBody",Ct.template(Bt)),Ct.registerPartial("axios/getResponseHeader",Ct.template($t)),Ct.registerPartial("axios/sendRequest",Ct.template(Lt)),Ct.registerPartial("axios/request",Ct.template(Mt)),Ct.registerPartial("angular/getHeaders",Ct.template(qt)),Ct.registerPartial("angular/getRequestBody",Ct.template(At)),Ct.registerPartial("angular/getResponseBody",Ct.template(jt)),Ct.registerPartial("angular/getResponseHeader",Ct.template(Ht)),Ct.registerPartial("angular/sendRequest",Ct.template(Dt)),Ct.registerPartial("angular/request",Ct.template(Et)),n})({httpClient:n,useUnionTypes:a,useOptions:o,hbsFilesOverride:h});switch(P){case se.V2:{const e=I(g),u=fe(e);if(!v)break;await mr(u,b,t,n,o,a,l,s,i,p,m,d,r,f,y);break}case se.V3:{const e=le(g),u=fe(e);if(!v)break;await mr(u,b,t,n,o,a,l,s,i,p,m,d,r,f,y);break}}};var fr={HttpClient:exports.HttpClient,generate:dr};exports.default=fr,exports.generate=dr; +'use strict'; + +Object.defineProperty(exports, '__esModule', { value: true }); + +var camelCase = require('camelcase'); +var RefParser = require('json-schema-ref-parser'); +var os = require('os'); +var path = require('path'); +var fsExtra = require('fs-extra'); +var fs = require('fs'); + +function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; } + +var camelCase__default = /*#__PURE__*/_interopDefaultLegacy(camelCase); +var RefParser__default = /*#__PURE__*/_interopDefaultLegacy(RefParser); +var path__default = /*#__PURE__*/_interopDefaultLegacy(path); +var fs__default = /*#__PURE__*/_interopDefaultLegacy(fs); + +exports.HttpClient = void 0; +(function (HttpClient) { + HttpClient["FETCH"] = "fetch"; + HttpClient["XHR"] = "xhr"; + HttpClient["NODE"] = "node"; + HttpClient["AXIOS"] = "axios"; + HttpClient["ANGULAR"] = "angular"; +})(exports.HttpClient || (exports.HttpClient = {})); + +exports.Indent = void 0; +(function (Indent) { + Indent["SPACE_4"] = "4"; + Indent["SPACE_2"] = "2"; + Indent["TAB"] = "tab"; +})(exports.Indent || (exports.Indent = {})); + +/** + * The spec generates a pattern like this '^\d{3}-\d{2}-\d{4}$' + * However, to use it in HTML or inside new RegExp() we need to + * escape the pattern to become: '^\\d{3}-\\d{2}-\\d{4}$' in order + * to make it a valid regexp string. + * @param pattern + */ +const getPattern = (pattern) => { + return pattern === null || pattern === void 0 ? void 0 : pattern.replace(/\\/g, '\\\\'); +}; + +const isString = (val) => { + return typeof val === 'string'; +}; + +/** + * Extend the enum with the x-enum properties. This adds the capability + * to use names and descriptions inside the generated enums. + * @param enumerators + * @param definition + */ +const extendEnum$1 = (enumerators, definition) => { + var _a, _b; + const names = (_a = definition['x-enum-varnames']) === null || _a === void 0 ? void 0 : _a.filter(isString); + const descriptions = (_b = definition['x-enum-descriptions']) === null || _b === void 0 ? void 0 : _b.filter(isString); + return enumerators.map((enumerator, index) => ({ + name: (names === null || names === void 0 ? void 0 : names[index]) || enumerator.name, + description: (descriptions === null || descriptions === void 0 ? void 0 : descriptions[index]) || enumerator.description, + value: enumerator.value, + type: enumerator.type, + })); +}; + +const getEnum$1 = (values) => { + if (Array.isArray(values)) { + return values + .filter((value, index, arr) => { + return arr.indexOf(value) === index; + }) + .filter((value) => { + return typeof value === 'number' || typeof value === 'string'; + }) + .map(value => { + if (typeof value === 'number') { + return { + name: `'_${value}'`, + value: String(value), + type: 'number', + description: null, + }; + } + return { + name: String(value) + .replace(/\W+/g, '_') + .replace(/^(\d+)/g, '_$1') + .replace(/([a-z])([A-Z]+)/g, '$1_$2') + .toUpperCase(), + value: `'${value.replace(/'/g, "\\'")}'`, + type: 'string', + description: null, + }; + }); + } + return []; +}; + +const escapeName$1 = (value) => { + if (value || value === '') { + const validName = /^[a-zA-Z_$][\w$]+$/g.test(value); + if (!validName) { + return `'${value}'`; + } + } + return value; +}; + +const TYPE_MAPPINGS$1 = new Map([ + ['file', 'binary'], + ['any', 'any'], + ['object', 'any'], + ['array', 'any[]'], + ['boolean', 'boolean'], + ['byte', 'number'], + ['int', 'number'], + ['integer', 'number'], + ['float', 'number'], + ['double', 'number'], + ['short', 'number'], + ['long', 'number'], + ['number', 'number'], + ['char', 'string'], + ['date', 'string'], + ['date-time', 'string'], + ['password', 'string'], + ['string', 'string'], + ['void', 'void'], + ['null', 'null'], +]); +/** + * Get mapped type for given type to any basic Typescript/Javascript type. + */ +const getMappedType$1 = (type, format) => { + if (format === 'binary') { + return 'binary'; + } + return TYPE_MAPPINGS$1.get(type); +}; + +/** + * Strip (OpenAPI) namespaces fom values. + * @param value + */ +const stripNamespace$1 = (value) => { + return value + .trim() + .replace(/^#\/definitions\//, '') + .replace(/^#\/parameters\//, '') + .replace(/^#\/responses\//, '') + .replace(/^#\/securityDefinitions\//, ''); +}; + +const encode$1 = (value) => { + return value.replace(/^[^a-zA-Z_$]+/g, '').replace(/[^\w$]+/g, '_'); +}; +/** + * Parse any string value into a type object. + * @param type String value like "integer" or "Link[Model]". + * @param format String value like "binary" or "date". + */ +const getType$1 = (type = 'any', format) => { + const result = { + type: 'any', + base: 'any', + template: null, + imports: [], + isNullable: false, + }; + const mapped = getMappedType$1(type, format); + if (mapped) { + result.type = mapped; + result.base = mapped; + return result; + } + const typeWithoutNamespace = decodeURIComponent(stripNamespace$1(type)); + if (/\[.*\]$/g.test(typeWithoutNamespace)) { + const matches = typeWithoutNamespace.match(/(.*?)\[(.*)\]$/); + if (matches === null || matches === void 0 ? void 0 : matches.length) { + const match1 = getType$1(encode$1(matches[1])); + const match2 = getType$1(encode$1(matches[2])); + if (match1.type === 'any[]') { + result.type = `${match2.type}[]`; + result.base = match2.type; + match1.imports = []; + } + else if (match2.type) { + result.type = `${match1.type}<${match2.type}>`; + result.base = match1.type; + result.template = match2.type; + } + else { + result.type = match1.type; + result.base = match1.type; + result.template = match1.type; + } + result.imports.push(...match1.imports); + result.imports.push(...match2.imports); + return result; + } + } + if (typeWithoutNamespace) { + const type = encode$1(typeWithoutNamespace); + result.type = type; + result.base = type; + result.imports.push(type); + return result; + } + return result; +}; + +const getModelProperties$1 = (openApi, definition, getModel) => { + var _a; + const models = []; + for (const propertyName in definition.properties) { + if (definition.properties.hasOwnProperty(propertyName)) { + const property = definition.properties[propertyName]; + const propertyRequired = !!((_a = definition.required) === null || _a === void 0 ? void 0 : _a.includes(propertyName)); + if (property.$ref) { + const model = getType$1(property.$ref); + models.push({ + name: escapeName$1(propertyName), + export: 'reference', + type: model.type, + base: model.base, + template: model.template, + link: null, + description: property.description || null, + isDefinition: false, + isReadOnly: property.readOnly === true, + isRequired: propertyRequired, + isNullable: property['x-nullable'] === true, + format: property.format, + maximum: property.maximum, + exclusiveMaximum: property.exclusiveMaximum, + minimum: property.minimum, + exclusiveMinimum: property.exclusiveMinimum, + multipleOf: property.multipleOf, + maxLength: property.maxLength, + minLength: property.minLength, + maxItems: property.maxItems, + minItems: property.minItems, + uniqueItems: property.uniqueItems, + maxProperties: property.maxProperties, + minProperties: property.minProperties, + pattern: getPattern(property.pattern), + imports: model.imports, + enum: [], + enums: [], + properties: [], + }); + } + else { + const model = getModel(openApi, property); + models.push({ + name: escapeName$1(propertyName), + export: model.export, + type: model.type, + base: model.base, + template: model.template, + link: model.link, + description: property.description || null, + isDefinition: false, + isReadOnly: property.readOnly === true, + isRequired: propertyRequired, + isNullable: property['x-nullable'] === true, + format: property.format, + maximum: property.maximum, + exclusiveMaximum: property.exclusiveMaximum, + minimum: property.minimum, + exclusiveMinimum: property.exclusiveMinimum, + multipleOf: property.multipleOf, + maxLength: property.maxLength, + minLength: property.minLength, + maxItems: property.maxItems, + minItems: property.minItems, + uniqueItems: property.uniqueItems, + maxProperties: property.maxProperties, + minProperties: property.minProperties, + pattern: getPattern(property.pattern), + imports: model.imports, + enum: model.enum, + enums: model.enums, + properties: model.properties, + }); + } + } + } + return models; +}; + +const ESCAPED_REF_SLASH$1 = /~1/g; +const ESCAPED_REF_TILDE$1 = /~0/g; +const getRef$1 = (openApi, item) => { + if (item.$ref) { + // Fetch the paths to the definitions, this converts: + // "#/definitions/Form" to ["definitions", "Form"] + const paths = item.$ref + .replace(/^#/g, '') + .split('/') + .filter(item => item); + // Try to find the reference by walking down the path, + // if we cannot find it, then we throw an error. + let result = openApi; + paths.forEach(path => { + const decodedPath = decodeURIComponent(path.replace(ESCAPED_REF_SLASH$1, '/').replace(ESCAPED_REF_TILDE$1, '~')); + if (result.hasOwnProperty(decodedPath)) { + result = result[decodedPath]; + } + else { + throw new Error(`Could not find reference: "${item.$ref}"`); + } + }); + return result; + } + return item; +}; + +const getRequiredPropertiesFromComposition$1 = (openApi, required, definitions, getModel) => { + return definitions + .reduce((properties, definition) => { + if (definition.$ref) { + const schema = getRef$1(openApi, definition); + return [...properties, ...getModel(openApi, schema).properties]; + } + return [...properties, ...getModel(openApi, definition).properties]; + }, []) + .filter(property => { + return !property.isRequired && required.includes(property.name); + }) + .map(property => { + return { + ...property, + isRequired: true, + }; + }); +}; + +const getModelComposition$1 = (openApi, definition, definitions, type, getModel) => { + const composition = { + type, + imports: [], + enums: [], + properties: [], + }; + const properties = []; + definitions + .map(definition => getModel(openApi, definition)) + .filter(model => { + const hasProperties = model.properties.length; + const hasEnums = model.enums.length; + const isObject = model.type === 'any'; + const isEmpty = isObject && !hasProperties && !hasEnums; + return !isEmpty; + }) + .forEach(model => { + composition.imports.push(...model.imports); + composition.enums.push(...model.enums); + composition.properties.push(model); + }); + if (definition.required) { + const requiredProperties = getRequiredPropertiesFromComposition$1(openApi, definition.required, definitions, getModel); + requiredProperties.forEach(requiredProperty => { + composition.imports.push(...requiredProperty.imports); + composition.enums.push(...requiredProperty.enums); + }); + properties.push(...requiredProperties); + } + if (definition.properties) { + const modelProperties = getModelProperties$1(openApi, definition, getModel); + modelProperties.forEach(modelProperty => { + composition.imports.push(...modelProperty.imports); + composition.enums.push(...modelProperty.enums); + if (modelProperty.export === 'enum') { + composition.enums.push(modelProperty); + } + }); + properties.push(...modelProperties); + } + if (properties.length) { + composition.properties.push({ + name: 'properties', + export: 'interface', + type: 'any', + base: 'any', + template: null, + link: null, + description: '', + isDefinition: false, + isReadOnly: false, + isNullable: false, + isRequired: false, + imports: [], + enum: [], + enums: [], + properties, + }); + } + return composition; +}; + +const getModel$1 = (openApi, definition, isDefinition = false, name = '') => { + var _a; + const model = { + name, + export: 'interface', + type: 'any', + base: 'any', + template: null, + link: null, + description: definition.description || null, + isDefinition, + isReadOnly: definition.readOnly === true, + isNullable: definition['x-nullable'] === true, + isRequired: false, + format: definition.format, + maximum: definition.maximum, + exclusiveMaximum: definition.exclusiveMaximum, + minimum: definition.minimum, + exclusiveMinimum: definition.exclusiveMinimum, + multipleOf: definition.multipleOf, + maxLength: definition.maxLength, + minLength: definition.minLength, + maxItems: definition.maxItems, + minItems: definition.minItems, + uniqueItems: definition.uniqueItems, + maxProperties: definition.maxProperties, + minProperties: definition.minProperties, + pattern: getPattern(definition.pattern), + imports: [], + enum: [], + enums: [], + properties: [], + }; + if (definition.$ref) { + const definitionRef = getType$1(definition.$ref); + model.export = 'reference'; + model.type = definitionRef.type; + model.base = definitionRef.base; + model.template = definitionRef.template; + model.imports.push(...definitionRef.imports); + return model; + } + if (definition.enum && definition.type !== 'boolean') { + const enumerators = getEnum$1(definition.enum); + const extendedEnumerators = extendEnum$1(enumerators, definition); + if (extendedEnumerators.length) { + model.export = 'enum'; + model.type = 'string'; + model.base = 'string'; + model.enum.push(...extendedEnumerators); + return model; + } + } + if (definition.type === 'array' && definition.items) { + if (definition.items.$ref) { + const arrayItems = getType$1(definition.items.$ref); + model.export = 'array'; + model.type = arrayItems.type; + model.base = arrayItems.base; + model.template = arrayItems.template; + model.imports.push(...arrayItems.imports); + return model; + } + else { + const arrayItems = getModel$1(openApi, definition.items); + model.export = 'array'; + model.type = arrayItems.type; + model.base = arrayItems.base; + model.template = arrayItems.template; + model.link = arrayItems; + model.imports.push(...arrayItems.imports); + return model; + } + } + if (definition.type === 'object' && typeof definition.additionalProperties === 'object') { + if (definition.additionalProperties.$ref) { + const additionalProperties = getType$1(definition.additionalProperties.$ref); + model.export = 'dictionary'; + model.type = additionalProperties.type; + model.base = additionalProperties.base; + model.template = additionalProperties.template; + model.imports.push(...additionalProperties.imports); + return model; + } + else { + const additionalProperties = getModel$1(openApi, definition.additionalProperties); + model.export = 'dictionary'; + model.type = additionalProperties.type; + model.base = additionalProperties.base; + model.template = additionalProperties.template; + model.link = additionalProperties; + model.imports.push(...additionalProperties.imports); + return model; + } + } + if ((_a = definition.allOf) === null || _a === void 0 ? void 0 : _a.length) { + const composition = getModelComposition$1(openApi, definition, definition.allOf, 'all-of', getModel$1); + model.export = composition.type; + model.imports.push(...composition.imports); + model.properties.push(...composition.properties); + model.enums.push(...composition.enums); + return model; + } + if (definition.type === 'object') { + model.export = 'interface'; + model.type = 'any'; + model.base = 'any'; + if (definition.properties) { + const modelProperties = getModelProperties$1(openApi, definition, getModel$1); + modelProperties.forEach(modelProperty => { + model.imports.push(...modelProperty.imports); + model.enums.push(...modelProperty.enums); + model.properties.push(modelProperty); + if (modelProperty.export === 'enum') { + model.enums.push(modelProperty); + } + }); + } + return model; + } + // If the schema has a type than it can be a basic or generic type. + if (definition.type) { + const definitionType = getType$1(definition.type, definition.format); + model.export = 'generic'; + model.type = definitionType.type; + model.base = definitionType.base; + model.template = definitionType.template; + model.imports.push(...definitionType.imports); + return model; + } + return model; +}; + +const getModels$1 = (openApi) => { + const models = []; + for (const definitionName in openApi.definitions) { + if (openApi.definitions.hasOwnProperty(definitionName)) { + const definition = openApi.definitions[definitionName]; + const definitionType = getType$1(definitionName); + const model = getModel$1(openApi, definition, true, definitionType.base); + models.push(model); + } + } + return models; +}; + +/** + * Get the base server url. + * @param openApi + */ +const getServer$1 = (openApi) => { + var _a; + const scheme = ((_a = openApi.schemes) === null || _a === void 0 ? void 0 : _a[0]) || 'http'; + const host = openApi.host; + const basePath = openApi.basePath || ''; + const url = host ? `${scheme}://${host}${basePath}` : basePath; + return url.replace(/\/$/g, ''); +}; + +const unique = (val, index, arr) => { + if (typeof val === 'object') { + for (let i = 0; i < arr.length; i++) { + if (JSON.stringify(val) === JSON.stringify(arr[i])) { + return i === index; + } + } + return true; + } + return arr.indexOf(val) === index; +}; + +/** + * + * @param operationResponses + */ +const getOperationErrors$1 = (operationResponses) => { + return operationResponses + .filter(operationResponse => { + return operationResponse.code >= 300 && operationResponse.description; + }) + .map(response => ({ + code: response.code, + description: response.description, + })); +}; + +/** + * Convert the input value to a correct operation (method) classname. + * This will use the operation ID - if available - and otherwise fallback + * on a generated name from the URL + */ +const getOperationName$1 = (url, method, operationId) => { + if (operationId) { + return camelCase__default["default"](operationId + .replace(/^[^a-zA-Z]+/g, '') + .replace(/[^\w\-]+/g, '-') + .trim()); + } + const urlWithoutPlaceholders = url + .replace(/[^/]*?{api-version}.*?\//g, '') + .replace(/{(.*?)}/g, '') + .replace(/\//g, '-'); + return camelCase__default["default"](`${method}-${urlWithoutPlaceholders}`); +}; + +const getOperationParameterDefault = (parameter, operationParameter) => { + var _a; + if (parameter.default === undefined) { + return undefined; + } + if (parameter.default === null) { + return 'null'; + } + const type = parameter.type || typeof parameter.default; + switch (type) { + case 'int': + case 'integer': + case 'number': + if (operationParameter.export === 'enum' && ((_a = operationParameter.enum) === null || _a === void 0 ? void 0 : _a[parameter.default])) { + return operationParameter.enum[parameter.default].value; + } + return parameter.default; + case 'boolean': + return JSON.stringify(parameter.default); + case 'string': + return `'${parameter.default}'`; + case 'object': + try { + return JSON.stringify(parameter.default, null, 4); + } + catch (e) { + // Ignore + } + } + return undefined; +}; + +const reservedWords$1 = /^(arguments|break|case|catch|class|const|continue|debugger|default|delete|do|else|enum|eval|export|extends|false|finally|for|function|if|implements|import|in|instanceof|interface|let|new|null|package|private|protected|public|return|static|super|switch|this|throw|true|try|typeof|var|void|while|with|yield)$/g; +/** + * Replaces any invalid characters from a parameter name. + * For example: 'filter.someProperty' becomes 'filterSomeProperty'. + */ +const getOperationParameterName$1 = (value) => { + const clean = value + .replace(/^[^a-zA-Z]+/g, '') + .replace(/[^\w\-]+/g, '-') + .trim(); + return camelCase__default["default"](clean).replace(reservedWords$1, '_$1'); +}; + +const getOperationParameter$1 = (openApi, parameter) => { + var _a; + const operationParameter = { + in: parameter.in, + prop: parameter.name, + export: 'interface', + name: getOperationParameterName$1(parameter.name), + type: 'any', + base: 'any', + template: null, + link: null, + description: parameter.description || null, + isDefinition: false, + isReadOnly: false, + isRequired: parameter.required === true, + isNullable: parameter['x-nullable'] === true, + format: parameter.format, + maximum: parameter.maximum, + exclusiveMaximum: parameter.exclusiveMaximum, + minimum: parameter.minimum, + exclusiveMinimum: parameter.exclusiveMinimum, + multipleOf: parameter.multipleOf, + maxLength: parameter.maxLength, + minLength: parameter.minLength, + maxItems: parameter.maxItems, + minItems: parameter.minItems, + uniqueItems: parameter.uniqueItems, + pattern: getPattern(parameter.pattern), + imports: [], + enum: [], + enums: [], + properties: [], + mediaType: null, + }; + if (parameter.$ref) { + const definitionRef = getType$1(parameter.$ref); + operationParameter.export = 'reference'; + operationParameter.type = definitionRef.type; + operationParameter.base = definitionRef.base; + operationParameter.template = definitionRef.template; + operationParameter.imports.push(...definitionRef.imports); + operationParameter.default = getOperationParameterDefault(parameter, operationParameter); + return operationParameter; + } + if (parameter.enum) { + const enumerators = getEnum$1(parameter.enum); + const extendedEnumerators = extendEnum$1(enumerators, parameter); + if (extendedEnumerators.length) { + operationParameter.export = 'enum'; + operationParameter.type = 'string'; + operationParameter.base = 'string'; + operationParameter.enum.push(...extendedEnumerators); + operationParameter.default = getOperationParameterDefault(parameter, operationParameter); + return operationParameter; + } + } + if (parameter.type === 'array' && parameter.items) { + const items = getType$1(parameter.items.type, parameter.items.format); + operationParameter.export = 'array'; + operationParameter.type = items.type; + operationParameter.base = items.base; + operationParameter.template = items.template; + operationParameter.imports.push(...items.imports); + operationParameter.default = getOperationParameterDefault(parameter, operationParameter); + return operationParameter; + } + if (parameter.type === 'object' && parameter.items) { + const items = getType$1(parameter.items.type, parameter.items.format); + operationParameter.export = 'dictionary'; + operationParameter.type = items.type; + operationParameter.base = items.base; + operationParameter.template = items.template; + operationParameter.imports.push(...items.imports); + operationParameter.default = getOperationParameterDefault(parameter, operationParameter); + return operationParameter; + } + let schema = parameter.schema; + if (schema) { + if ((_a = schema.$ref) === null || _a === void 0 ? void 0 : _a.startsWith('#/parameters/')) { + schema = getRef$1(openApi, schema); + } + if (schema.$ref) { + const model = getType$1(schema.$ref); + operationParameter.export = 'reference'; + operationParameter.type = model.type; + operationParameter.base = model.base; + operationParameter.template = model.template; + operationParameter.imports.push(...model.imports); + operationParameter.default = getOperationParameterDefault(parameter, operationParameter); + return operationParameter; + } + else { + const model = getModel$1(openApi, schema); + operationParameter.export = model.export; + operationParameter.type = model.type; + operationParameter.base = model.base; + operationParameter.template = model.template; + operationParameter.link = model.link; + operationParameter.imports.push(...model.imports); + operationParameter.enum.push(...model.enum); + operationParameter.enums.push(...model.enums); + operationParameter.properties.push(...model.properties); + operationParameter.default = getOperationParameterDefault(parameter, operationParameter); + return operationParameter; + } + } + // If the parameter has a type than it can be a basic or generic type. + if (parameter.type) { + const definitionType = getType$1(parameter.type, parameter.format); + operationParameter.export = 'generic'; + operationParameter.type = definitionType.type; + operationParameter.base = definitionType.base; + operationParameter.template = definitionType.template; + operationParameter.imports.push(...definitionType.imports); + operationParameter.default = getOperationParameterDefault(parameter, operationParameter); + return operationParameter; + } + return operationParameter; +}; + +const getOperationParameters$1 = (openApi, parameters) => { + const operationParameters = { + imports: [], + parameters: [], + parametersPath: [], + parametersQuery: [], + parametersForm: [], + parametersCookie: [], + parametersHeader: [], + parametersBody: null, + }; + // Iterate over the parameters + parameters.forEach(parameterOrReference => { + const parameterDef = getRef$1(openApi, parameterOrReference); + const parameter = getOperationParameter$1(openApi, parameterDef); + // We ignore the "api-version" param, since we do not want to add this + // as the first / default parameter for each of the service calls. + if (parameter.prop !== 'api-version') { + switch (parameter.in) { + case 'path': + operationParameters.parametersPath.push(parameter); + operationParameters.parameters.push(parameter); + operationParameters.imports.push(...parameter.imports); + break; + case 'query': + operationParameters.parametersQuery.push(parameter); + operationParameters.parameters.push(parameter); + operationParameters.imports.push(...parameter.imports); + break; + case 'header': + operationParameters.parametersHeader.push(parameter); + operationParameters.parameters.push(parameter); + operationParameters.imports.push(...parameter.imports); + break; + case 'formData': + operationParameters.parametersForm.push(parameter); + operationParameters.parameters.push(parameter); + operationParameters.imports.push(...parameter.imports); + break; + case 'body': + operationParameters.parametersBody = parameter; + operationParameters.parameters.push(parameter); + operationParameters.imports.push(...parameter.imports); + break; + } + } + }); + return operationParameters; +}; + +const getOperationResponseHeader$1 = (operationResponses) => { + const header = operationResponses.find(operationResponses => { + return operationResponses.in === 'header'; + }); + if (header) { + return header.name; + } + return null; +}; + +const getOperationResponse$1 = (openApi, response, responseCode) => { + var _a; + const operationResponse = { + in: 'response', + name: '', + code: responseCode, + description: response.description || null, + export: 'generic', + type: 'any', + base: 'any', + template: null, + link: null, + isDefinition: false, + isReadOnly: false, + isRequired: false, + isNullable: false, + imports: [], + enum: [], + enums: [], + properties: [], + }; + // If this response has a schema, then we need to check two things: + // if this is a reference then the parameter is just the 'name' of + // this reference type. Otherwise, it might be a complex schema, + // and then we need to parse the schema! + let schema = response.schema; + if (schema) { + if ((_a = schema.$ref) === null || _a === void 0 ? void 0 : _a.startsWith('#/responses/')) { + schema = getRef$1(openApi, schema); + } + if (schema.$ref) { + const model = getType$1(schema.$ref); + operationResponse.export = 'reference'; + operationResponse.type = model.type; + operationResponse.base = model.base; + operationResponse.template = model.template; + operationResponse.imports.push(...model.imports); + return operationResponse; + } + else { + const model = getModel$1(openApi, schema); + operationResponse.export = model.export; + operationResponse.type = model.type; + operationResponse.base = model.base; + operationResponse.template = model.template; + operationResponse.link = model.link; + operationResponse.isReadOnly = model.isReadOnly; + operationResponse.isRequired = model.isRequired; + operationResponse.isNullable = model.isNullable; + operationResponse.format = model.format; + operationResponse.maximum = model.maximum; + operationResponse.exclusiveMaximum = model.exclusiveMaximum; + operationResponse.minimum = model.minimum; + operationResponse.exclusiveMinimum = model.exclusiveMinimum; + operationResponse.multipleOf = model.multipleOf; + operationResponse.maxLength = model.maxLength; + operationResponse.minLength = model.minLength; + operationResponse.maxItems = model.maxItems; + operationResponse.minItems = model.minItems; + operationResponse.uniqueItems = model.uniqueItems; + operationResponse.maxProperties = model.maxProperties; + operationResponse.minProperties = model.minProperties; + operationResponse.pattern = getPattern(model.pattern); + operationResponse.imports.push(...model.imports); + operationResponse.enum.push(...model.enum); + operationResponse.enums.push(...model.enums); + operationResponse.properties.push(...model.properties); + return operationResponse; + } + } + // We support basic properties from response headers, since both + // fetch and XHR client just support string types. + if (response.headers) { + for (const name in response.headers) { + if (response.headers.hasOwnProperty(name)) { + operationResponse.in = 'header'; + operationResponse.name = name; + operationResponse.type = 'string'; + operationResponse.base = 'string'; + return operationResponse; + } + } + } + return operationResponse; +}; + +const getOperationResponseCode$1 = (value) => { + // You can specify a "default" response, this is treated as HTTP code 200 + if (value === 'default') { + return 200; + } + // Check if we can parse the code and return of successful. + if (/[0-9]+/g.test(value)) { + const code = parseInt(value); + if (Number.isInteger(code)) { + return Math.abs(code); + } + } + return null; +}; + +const getOperationResponses$1 = (openApi, responses) => { + const operationResponses = []; + // Iterate over each response code and get the + // status code and response message (if any). + for (const code in responses) { + if (responses.hasOwnProperty(code)) { + const responseOrReference = responses[code]; + const response = getRef$1(openApi, responseOrReference); + const responseCode = getOperationResponseCode$1(code); + if (responseCode) { + const operationResponse = getOperationResponse$1(openApi, response, responseCode); + operationResponses.push(operationResponse); + } + } + } + // Sort the responses to 2XX success codes come before 4XX and 5XX error codes. + return operationResponses.sort((a, b) => { + return a.code < b.code ? -1 : a.code > b.code ? 1 : 0; + }); +}; + +const areEqual$1 = (a, b) => { + const equal = a.type === b.type && a.base === b.base && a.template === b.template; + if (equal && a.link && b.link) { + return areEqual$1(a.link, b.link); + } + return equal; +}; +const getOperationResults$1 = (operationResponses) => { + const operationResults = []; + // Filter out success response codes, but skip "204 No Content" + operationResponses.forEach(operationResponse => { + const { code } = operationResponse; + if (code && code !== 204 && code >= 200 && code < 300) { + operationResults.push(operationResponse); + } + }); + if (!operationResults.length) { + operationResults.push({ + in: 'response', + name: '', + code: 200, + description: '', + export: 'generic', + type: 'void', + base: 'void', + template: null, + link: null, + isDefinition: false, + isReadOnly: false, + isRequired: false, + isNullable: false, + imports: [], + enum: [], + enums: [], + properties: [], + }); + } + return operationResults.filter((operationResult, index, arr) => { + return (arr.findIndex(item => { + return areEqual$1(item, operationResult); + }) === index); + }); +}; + +/** + * Convert the input value to a correct service name. This converts + * the input string to PascalCase. + */ +const getServiceName$1 = (value) => { + const clean = value + .replace(/^[^a-zA-Z]+/g, '') + .replace(/[^\w\-]+/g, '-') + .trim(); + return camelCase__default["default"](clean, { pascalCase: true }); +}; + +const sortByRequired$1 = (a, b) => { + const aNeedsValue = a.isRequired && a.default === undefined; + const bNeedsValue = b.isRequired && b.default === undefined; + if (aNeedsValue && !bNeedsValue) + return -1; + if (bNeedsValue && !aNeedsValue) + return 1; + return 0; +}; + +const getOperation$1 = (openApi, url, method, tag, op, pathParams) => { + const serviceName = getServiceName$1(tag); + const operationName = getOperationName$1(url, method, op.operationId); + // Create a new operation object for this method. + const operation = { + service: serviceName, + name: operationName, + summary: op.summary || null, + description: op.description || null, + deprecated: op.deprecated === true, + method: method.toUpperCase(), + path: url, + parameters: [...pathParams.parameters], + parametersPath: [...pathParams.parametersPath], + parametersQuery: [...pathParams.parametersQuery], + parametersForm: [...pathParams.parametersForm], + parametersHeader: [...pathParams.parametersHeader], + parametersCookie: [...pathParams.parametersCookie], + parametersBody: pathParams.parametersBody, + imports: [], + errors: [], + results: [], + responseHeader: null, + }; + // Parse the operation parameters (path, query, body, etc). + if (op.parameters) { + const parameters = getOperationParameters$1(openApi, op.parameters); + operation.imports.push(...parameters.imports); + operation.parameters.push(...parameters.parameters); + operation.parametersPath.push(...parameters.parametersPath); + operation.parametersQuery.push(...parameters.parametersQuery); + operation.parametersForm.push(...parameters.parametersForm); + operation.parametersHeader.push(...parameters.parametersHeader); + operation.parametersCookie.push(...parameters.parametersCookie); + operation.parametersBody = parameters.parametersBody; + } + // Parse the operation responses. + if (op.responses) { + const operationResponses = getOperationResponses$1(openApi, op.responses); + const operationResults = getOperationResults$1(operationResponses); + operation.errors = getOperationErrors$1(operationResponses); + operation.responseHeader = getOperationResponseHeader$1(operationResults); + operationResults.forEach(operationResult => { + operation.results.push(operationResult); + operation.imports.push(...operationResult.imports); + }); + } + operation.parameters = operation.parameters.sort(sortByRequired$1); + return operation; +}; + +/** + * Get the OpenAPI services + */ +const getServices$1 = (openApi) => { + var _a; + const services = new Map(); + for (const url in openApi.paths) { + if (openApi.paths.hasOwnProperty(url)) { + // Grab path and parse any global path parameters + const path = openApi.paths[url]; + const pathParams = getOperationParameters$1(openApi, path.parameters || []); + // Parse all the methods for this path + for (const method in path) { + if (path.hasOwnProperty(method)) { + switch (method) { + case 'get': + case 'put': + case 'post': + case 'delete': + case 'options': + case 'head': + case 'patch': + // Each method contains an OpenAPI operation, we parse the operation + const op = path[method]; + const tags = ((_a = op.tags) === null || _a === void 0 ? void 0 : _a.length) ? op.tags.filter(unique) : ['Default']; + tags.forEach(tag => { + const operation = getOperation$1(openApi, url, method, tag, op, pathParams); + // If we have already declared a service, then we should fetch that and + // append the new method to it. Otherwise we should create a new service object. + const service = services.get(operation.service) || { + name: operation.service, + operations: [], + imports: [], + }; + // Push the operation in the service + service.operations.push(operation); + service.imports.push(...operation.imports); + services.set(operation.service, service); + }); + break; + } + } + } + } + } + return Array.from(services.values()); +}; + +/** + * Convert the service version to 'normal' version. + * This basically removes any "v" prefix from the version string. + * @param version + */ +const getServiceVersion$1 = (version = '1.0') => { + return String(version).replace(/^v/gi, ''); +}; + +/** + * Parse the OpenAPI specification to a Client model that contains + * all the models, services and schema's we should output. + * @param openApi The OpenAPI spec that we have loaded from disk. + */ +const parse$1 = (openApi) => { + const version = getServiceVersion$1(openApi.info.version); + const server = getServer$1(openApi); + const models = getModels$1(openApi); + const services = getServices$1(openApi); + return { version, server, models, services }; +}; + +/** + * Extend the enum with the x-enum properties. This adds the capability + * to use names and descriptions inside the generated enums. + * @param enumerators + * @param definition + */ +const extendEnum = (enumerators, definition) => { + var _a, _b; + const names = (_a = definition['x-enum-varnames']) === null || _a === void 0 ? void 0 : _a.filter(isString); + const descriptions = (_b = definition['x-enum-descriptions']) === null || _b === void 0 ? void 0 : _b.filter(isString); + return enumerators.map((enumerator, index) => ({ + name: (names === null || names === void 0 ? void 0 : names[index]) || enumerator.name, + description: (descriptions === null || descriptions === void 0 ? void 0 : descriptions[index]) || enumerator.description, + value: enumerator.value, + type: enumerator.type, + })); +}; + +const getEnum = (values) => { + if (Array.isArray(values)) { + return values + .filter((value, index, arr) => { + return arr.indexOf(value) === index; + }) + .filter((value) => { + return typeof value === 'number' || typeof value === 'string'; + }) + .map(value => { + if (typeof value === 'number') { + return { + name: `'_${value}'`, + value: String(value), + type: 'number', + description: null, + }; + } + return { + name: String(value) + .replace(/\W+/g, '_') + .replace(/^(\d+)/g, '_$1') + .replace(/([a-z])([A-Z]+)/g, '$1_$2') + .toUpperCase(), + value: `'${value.replace(/'/g, "\\'")}'`, + type: 'string', + description: null, + }; + }); + } + return []; +}; + +/** + * Strip (OpenAPI) namespaces fom values. + * @param value + */ +const stripNamespace = (value) => { + return value + .trim() + .replace(/^#\/components\/schemas\//, '') + .replace(/^#\/components\/responses\//, '') + .replace(/^#\/components\/parameters\//, '') + .replace(/^#\/components\/examples\//, '') + .replace(/^#\/components\/requestBodies\//, '') + .replace(/^#\/components\/headers\//, '') + .replace(/^#\/components\/securitySchemes\//, '') + .replace(/^#\/components\/links\//, '') + .replace(/^#\/components\/callbacks\//, ''); +}; + +const inverseDictionary = (map) => { + const m2 = {}; + for (const key in map) { + m2[map[key]] = key; + } + return m2; +}; +const findOneOfParentDiscriminator = (openApi, parent) => { + var _a; + if (openApi.components && parent) { + for (const definitionName in openApi.components.schemas) { + if (openApi.components.schemas.hasOwnProperty(definitionName)) { + const schema = openApi.components.schemas[definitionName]; + if (schema.discriminator && + ((_a = schema.oneOf) === null || _a === void 0 ? void 0 : _a.length) && + schema.oneOf.some(definition => definition.$ref && stripNamespace(definition.$ref) == parent.name)) { + return schema.discriminator; + } + } + } + } + return undefined; +}; +const mapPropertyValue = (discriminator, parent) => { + if (discriminator.mapping) { + const mapping = inverseDictionary(discriminator.mapping); + const key = Object.keys(mapping).find(item => stripNamespace(item) == parent.name); + if (key && mapping[key]) { + return mapping[key]; + } + } + return parent.name; +}; + +const escapeName = (value) => { + if (value || value === '') { + const validName = /^[a-zA-Z_$][\w$]+$/g.test(value); + if (!validName) { + return `'${value}'`; + } + } + return value; +}; + +/** + * Check if a value is defined + * @param value + */ +const isDefined = (value) => { + return value !== undefined && value !== null && value !== ''; +}; + +const TYPE_MAPPINGS = new Map([ + ['file', 'binary'], + ['any', 'any'], + ['object', 'any'], + ['array', 'any[]'], + ['boolean', 'boolean'], + ['byte', 'number'], + ['int', 'number'], + ['integer', 'number'], + ['float', 'number'], + ['double', 'number'], + ['short', 'number'], + ['long', 'number'], + ['number', 'number'], + ['char', 'string'], + ['date', 'string'], + ['date-time', 'string'], + ['password', 'string'], + ['string', 'string'], + ['void', 'void'], + ['null', 'null'], +]); +/** + * Get mapped type for given type to any basic Typescript/Javascript type. + */ +const getMappedType = (type, format) => { + if (format === 'binary') { + return 'binary'; + } + return TYPE_MAPPINGS.get(type); +}; + +const encode = (value) => { + return value.replace(/^[^a-zA-Z_$]+/g, '').replace(/[^\w$]+/g, '_'); +}; +/** + * Parse any string value into a type object. + * @param type String or String[] value like "integer", "Link[Model]" or ["string", "null"]. + * @param format String value like "binary" or "date". + */ +const getType = (type = 'any', format) => { + const result = { + type: 'any', + base: 'any', + template: null, + imports: [], + isNullable: false, + }; + // Special case for JSON Schema spec (december 2020, page 17), + // that allows type to be an array of primitive types... + if (Array.isArray(type)) { + const joinedType = type + .filter(value => value !== 'null') + .map(value => getMappedType(value, format)) + .filter(isDefined) + .join(' | '); + result.type = joinedType; + result.base = joinedType; + result.isNullable = type.includes('null'); + return result; + } + const mapped = getMappedType(type, format); + if (mapped) { + result.type = mapped; + result.base = mapped; + return result; + } + const typeWithoutNamespace = decodeURIComponent(stripNamespace(type)); + if (/\[.*\]$/g.test(typeWithoutNamespace)) { + const matches = typeWithoutNamespace.match(/(.*?)\[(.*)\]$/); + if (matches === null || matches === void 0 ? void 0 : matches.length) { + const match1 = getType(encode(matches[1])); + const match2 = getType(encode(matches[2])); + if (match1.type === 'any[]') { + result.type = `${match2.type}[]`; + result.base = `${match2.type}`; + match1.imports = []; + } + else if (match2.type) { + result.type = `${match1.type}<${match2.type}>`; + result.base = match1.type; + result.template = match2.type; + } + else { + result.type = match1.type; + result.base = match1.type; + result.template = match1.type; + } + result.imports.push(...match1.imports); + result.imports.push(...match2.imports); + return result; + } + } + if (typeWithoutNamespace) { + let path = typeWithoutNamespace.split('/'); + const type = encode(path[path.length - 1]); + const isNodeModule = path[0] === 'node_modules'; + if (isNodeModule) { + path.splice(0, 1); + path.splice(path.length - 1, 1); + } + result.type = type; + result.base = type; + result.imports.push({ + typeName: type, + path: path.join('/'), + nodeModule: isNodeModule + }); + /* + const type = encode(typeWithoutNamespace); + result.type = type; + result.base = type; + result.imports.push(type); + */ + return result; + } + return result; +}; + +const getModelProperties = (openApi, definition, getModel, parent) => { + var _a; + const models = []; + const discriminator = findOneOfParentDiscriminator(openApi, parent); + for (const propertyName in definition.properties) { + if (definition.properties.hasOwnProperty(propertyName)) { + const property = definition.properties[propertyName]; + const propertyRequired = !!((_a = definition.required) === null || _a === void 0 ? void 0 : _a.includes(propertyName)); + const propertyValues = { + name: escapeName(propertyName), + description: property.description || null, + deprecated: property.deprecated === true, + isDefinition: false, + isReadOnly: property.readOnly === true, + isRequired: propertyRequired, + format: property.format, + maximum: property.maximum, + exclusiveMaximum: property.exclusiveMaximum, + minimum: property.minimum, + exclusiveMinimum: property.exclusiveMinimum, + multipleOf: property.multipleOf, + maxLength: property.maxLength, + minLength: property.minLength, + maxItems: property.maxItems, + minItems: property.minItems, + uniqueItems: property.uniqueItems, + maxProperties: property.maxProperties, + minProperties: property.minProperties, + pattern: getPattern(property.pattern), + }; + if (parent && (discriminator === null || discriminator === void 0 ? void 0 : discriminator.propertyName) == propertyName) { + models.push({ + export: 'reference', + type: 'string', + base: `'${mapPropertyValue(discriminator, parent)}'`, + template: null, + isNullable: property.nullable === true, + link: null, + imports: [], + enum: [], + enums: [], + properties: [], + ...propertyValues, + }); + } + else if (property.$ref) { + const model = getType(property.$ref); + models.push({ + export: 'reference', + type: model.type, + base: model.base, + template: model.template, + link: null, + isNullable: model.isNullable || property.nullable === true, + imports: model.imports, + enum: [], + enums: [], + properties: [], + ...propertyValues, + }); + } + else { + const model = getModel(openApi, property); + models.push({ + export: model.export, + type: model.type, + base: model.base, + template: model.template, + link: model.link, + isNullable: model.isNullable || property.nullable === true, + imports: model.imports, + enum: model.enum, + enums: model.enums, + properties: model.properties, + ...propertyValues, + }); + } + } + } + return models; +}; + +const ESCAPED_REF_SLASH = /~1/g; +const ESCAPED_REF_TILDE = /~0/g; +const getRef = (openApi, item) => { + if (item.$ref) { + // Fetch the paths to the definitions, this converts: + // "#/components/schemas/Form" to ["components", "schemas", "Form"] + const paths = item.$ref + .replace(/^#/g, '') + .split('/') + .filter(item => item); + // Try to find the reference by walking down the path, + // if we cannot find it, then we throw an error. + let result = openApi; + paths.forEach(path => { + const decodedPath = decodeURIComponent(path.replace(ESCAPED_REF_SLASH, '/').replace(ESCAPED_REF_TILDE, '~')); + if (result.hasOwnProperty(decodedPath)) { + result = result[decodedPath]; + } + else { + throw new Error(`Could not find reference: "${item.$ref}"`); + } + }); + return result; + } + return item; +}; + +const getRequiredPropertiesFromComposition = (openApi, required, definitions, getModel) => { + return definitions + .reduce((properties, definition) => { + if (definition.$ref) { + const schema = getRef(openApi, definition); + return [...properties, ...getModel(openApi, schema).properties]; + } + return [...properties, ...getModel(openApi, definition).properties]; + }, []) + .filter(property => { + return !property.isRequired && required.includes(property.name); + }) + .map(property => { + return { + ...property, + isRequired: true, + }; + }); +}; + +const getModelComposition = (openApi, definition, definitions, type, getModel) => { + const composition = { + type, + imports: [], + enums: [], + properties: [], + }; + const properties = []; + definitions + .map(definition => getModel(openApi, definition)) + .filter(model => { + const hasProperties = model.properties.length; + const hasEnums = model.enums.length; + const isObject = model.type === 'any'; + const isDictionary = model.export === 'dictionary'; + const isEmpty = isObject && !hasProperties && !hasEnums; + return !isEmpty || isDictionary; + }) + .forEach(model => { + composition.imports.push(...model.imports); + composition.enums.push(...model.enums); + composition.properties.push(model); + }); + if (definition.required) { + const requiredProperties = getRequiredPropertiesFromComposition(openApi, definition.required, definitions, getModel); + requiredProperties.forEach(requiredProperty => { + composition.imports.push(...requiredProperty.imports); + composition.enums.push(...requiredProperty.enums); + }); + properties.push(...requiredProperties); + } + if (definition.properties) { + const modelProperties = getModelProperties(openApi, definition, getModel); + modelProperties.forEach(modelProperty => { + composition.imports.push(...modelProperty.imports); + composition.enums.push(...modelProperty.enums); + if (modelProperty.export === 'enum') { + composition.enums.push(modelProperty); + } + }); + properties.push(...modelProperties); + } + if (properties.length) { + composition.properties.push({ + name: 'properties', + export: 'interface', + type: 'any', + base: 'any', + template: null, + link: null, + description: '', + isDefinition: false, + isReadOnly: false, + isNullable: false, + isRequired: false, + imports: [], + enum: [], + enums: [], + properties, + }); + } + return composition; +}; + +const getModelDefault = (definition, model) => { + var _a; + if (definition.default === undefined) { + return undefined; + } + if (definition.default === null) { + return 'null'; + } + const type = definition.type || typeof definition.default; + switch (type) { + case 'int': + case 'integer': + case 'number': + if ((model === null || model === void 0 ? void 0 : model.export) === 'enum' && ((_a = model.enum) === null || _a === void 0 ? void 0 : _a[definition.default])) { + return model.enum[definition.default].value; + } + return definition.default; + case 'boolean': + return JSON.stringify(definition.default); + case 'string': + return `'${definition.default}'`; + case 'object': + try { + return JSON.stringify(definition.default, null, 4); + } + catch (e) { + // Ignore + } + } + return undefined; +}; + +const getModel = (openApi, definition, isDefinition = false, name = '') => { + var _a, _b, _c; + const model = { + name, + export: 'interface', + type: 'any', + base: 'any', + template: null, + link: null, + description: definition.description || null, + deprecated: definition.deprecated === true, + isDefinition, + isReadOnly: definition.readOnly === true, + isNullable: definition.nullable === true, + isRequired: false, + format: definition.format, + maximum: definition.maximum, + exclusiveMaximum: definition.exclusiveMaximum, + minimum: definition.minimum, + exclusiveMinimum: definition.exclusiveMinimum, + multipleOf: definition.multipleOf, + maxLength: definition.maxLength, + minLength: definition.minLength, + maxItems: definition.maxItems, + minItems: definition.minItems, + uniqueItems: definition.uniqueItems, + maxProperties: definition.maxProperties, + minProperties: definition.minProperties, + pattern: getPattern(definition.pattern), + imports: [], + enum: [], + enums: [], + properties: [], + }; + if (definition.$ref) { + const definitionRef = getType(definition.$ref); + model.export = 'reference'; + model.type = definitionRef.type; + model.base = definitionRef.base; + model.template = definitionRef.template; + model.imports.push(...definitionRef.imports); + model.default = getModelDefault(definition, model); + return model; + } + if (definition.enum && definition.type !== 'boolean') { + const enumerators = getEnum(definition.enum); + const extendedEnumerators = extendEnum(enumerators, definition); + if (extendedEnumerators.length) { + model.export = 'enum'; + model.type = 'string'; + model.base = 'string'; + model.enum.push(...extendedEnumerators); + model.default = getModelDefault(definition, model); + return model; + } + } + if (definition.type === 'array' && definition.items) { + if (definition.items.$ref) { + const arrayItems = getType(definition.items.$ref); + model.export = 'array'; + model.type = arrayItems.type; + model.base = arrayItems.base; + model.template = arrayItems.template; + model.imports.push(...arrayItems.imports); + model.default = getModelDefault(definition, model); + return model; + } + else { + const arrayItems = getModel(openApi, definition.items); + model.export = 'array'; + model.type = arrayItems.type; + model.base = arrayItems.base; + model.template = arrayItems.template; + model.link = arrayItems; + model.imports.push(...arrayItems.imports); + model.default = getModelDefault(definition, model); + return model; + } + } + if (definition.type === 'object' && typeof definition.additionalProperties === 'object') { + if (definition.additionalProperties.$ref) { + const additionalProperties = getType(definition.additionalProperties.$ref); + model.export = 'dictionary'; + model.type = additionalProperties.type; + model.base = additionalProperties.base; + model.template = additionalProperties.template; + model.imports.push(...additionalProperties.imports); + model.default = getModelDefault(definition, model); + return model; + } + else { + const additionalProperties = getModel(openApi, definition.additionalProperties); + model.export = 'dictionary'; + model.type = additionalProperties.type; + model.base = additionalProperties.base; + model.template = additionalProperties.template; + model.link = additionalProperties; + model.imports.push(...additionalProperties.imports); + model.default = getModelDefault(definition, model); + return model; + } + } + if ((_a = definition.oneOf) === null || _a === void 0 ? void 0 : _a.length) { + const composition = getModelComposition(openApi, definition, definition.oneOf, 'one-of', getModel); + model.export = composition.type; + model.imports.push(...composition.imports); + model.properties.push(...composition.properties); + model.enums.push(...composition.enums); + return model; + } + if ((_b = definition.anyOf) === null || _b === void 0 ? void 0 : _b.length) { + const composition = getModelComposition(openApi, definition, definition.anyOf, 'any-of', getModel); + model.export = composition.type; + model.imports.push(...composition.imports); + model.properties.push(...composition.properties); + model.enums.push(...composition.enums); + return model; + } + if ((_c = definition.allOf) === null || _c === void 0 ? void 0 : _c.length) { + const composition = getModelComposition(openApi, definition, definition.allOf, 'all-of', getModel); + model.export = composition.type; + model.imports.push(...composition.imports); + model.properties.push(...composition.properties); + model.enums.push(...composition.enums); + return model; + } + if (definition.type === 'object') { + model.export = 'interface'; + model.type = 'any'; + model.base = 'any'; + model.default = getModelDefault(definition, model); + if (definition.properties) { + const modelProperties = getModelProperties(openApi, definition, getModel, model); + modelProperties.forEach(modelProperty => { + model.imports.push(...modelProperty.imports); + model.enums.push(...modelProperty.enums); + model.properties.push(modelProperty); + if (modelProperty.export === 'enum') { + model.enums.push(modelProperty); + } + }); + } + return model; + } + // If the schema has a type than it can be a basic or generic type. + if (definition.type) { + const definitionType = getType(definition.type, definition.format); + model.export = 'generic'; + model.type = definitionType.type; + model.base = definitionType.base; + model.template = definitionType.template; + model.isNullable = definitionType.isNullable || model.isNullable; + model.imports.push(...definitionType.imports); + model.default = getModelDefault(definition, model); + return model; + } + return model; +}; + +function isObject(value) { + return value !== null && typeof value === 'object'; +} +const getModels = (openApi) => { + if (!openApi.components) + return []; + const models = []; + function collectModel(definition, definitionName) { + var _a; + if (definition.type) { + const definitionType = getType(definitionName); + const model = getModel(openApi, definition, true, definitionType.base); + if (isObject(definitionType.imports[0])) { + model.filePath = (_a = definitionType.imports[0]) === null || _a === void 0 ? void 0 : _a.path; + } + model.isEmbedded = definitionName.includes('embedded') || + definition.type === 'node_module'; + model.isNodeModule = definition.type === 'node_module'; + models.push(model); + return; + } + for (const key in definition) { + if (!isObject(definition[key])) { + continue; + } + collectModel(definition[key], definitionName + '/' + key); + } + } + for (const definitionName in openApi.components.schemas) { + if (!openApi.components.schemas.hasOwnProperty(definitionName)) + continue; + collectModel(openApi.components.schemas[definitionName], definitionName); + /* + const definition = openApi.components.schemas[definitionName]; + const definitionType = getType(definitionName); + const model = getModel(openApi, definition, true, definitionType.base); + models.push(model); + */ + } + return models; +}; + +const getServer = (openApi) => { + var _a; + const server = (_a = openApi.servers) === null || _a === void 0 ? void 0 : _a[0]; + const variables = (server === null || server === void 0 ? void 0 : server.variables) || {}; + let url = (server === null || server === void 0 ? void 0 : server.url) || ''; + for (const variable in variables) { + if (variables.hasOwnProperty(variable)) { + url = url.replace(`{${variable}}`, variables[variable].default); + } + } + return url.replace(/\/$/g, ''); +}; + +const getOperationErrors = (operationResponses) => { + return operationResponses + .filter(operationResponse => { + return operationResponse.code >= 300 && operationResponse.description; + }) + .map(response => ({ + code: response.code, + description: response.description, + })); +}; + +/** + * Convert the input value to a correct operation (method) classname. + * This will use the operation ID - if available - and otherwise fallback + * on a generated name from the URL + */ +const getOperationName = (url, method, operationId) => { + if (operationId) { + return camelCase__default["default"](operationId + .replace(/^[^a-zA-Z]+/g, '') + .replace(/[^\w\-]+/g, '-') + .trim()); + } + const urlWithoutPlaceholders = url + .replace(/[^/]*?{api-version}.*?\//g, '') + .replace(/{(.*?)}/g, '') + .replace(/\//g, '-'); + return camelCase__default["default"](`${method}-${urlWithoutPlaceholders}`); +}; + +const reservedWords = /^(arguments|break|case|catch|class|const|continue|debugger|default|delete|do|else|enum|eval|export|extends|false|finally|for|function|if|implements|import|in|instanceof|interface|let|new|null|package|private|protected|public|return|static|super|switch|this|throw|true|try|typeof|var|void|while|with|yield)$/g; +/** + * Replaces any invalid characters from a parameter name. + * For example: 'filter.someProperty' becomes 'filterSomeProperty'. + */ +const getOperationParameterName = (value) => { + const clean = value + .replace(/^[^a-zA-Z]+/g, '') + .replace(/[^\w\-]+/g, '-') + .trim(); + return camelCase__default["default"](clean).replace(reservedWords, '_$1'); +}; + +const getOperationParameter = (openApi, parameter) => { + var _a; + const operationParameter = { + in: parameter.in, + prop: parameter.name, + export: 'interface', + name: getOperationParameterName(parameter.name), + type: 'any', + base: 'any', + template: null, + link: null, + description: parameter.description || null, + deprecated: parameter.deprecated === true, + isDefinition: false, + isReadOnly: false, + isRequired: parameter.required === true, + isNullable: parameter.nullable === true, + imports: [], + enum: [], + enums: [], + properties: [], + mediaType: null, + }; + if (parameter.$ref) { + const definitionRef = getType(parameter.$ref); + operationParameter.export = 'reference'; + operationParameter.type = definitionRef.type; + operationParameter.base = definitionRef.base; + operationParameter.template = definitionRef.template; + operationParameter.imports.push(...definitionRef.imports); + return operationParameter; + } + let schema = parameter.schema; + if (schema) { + if ((_a = schema.$ref) === null || _a === void 0 ? void 0 : _a.startsWith('#/components/parameters/')) { + schema = getRef(openApi, schema); + } + if (schema.$ref) { + const model = getType(schema.$ref); + operationParameter.export = 'reference'; + operationParameter.type = model.type; + operationParameter.base = model.base; + operationParameter.template = model.template; + operationParameter.imports.push(...model.imports); + operationParameter.default = getModelDefault(schema); + return operationParameter; + } + else { + const model = getModel(openApi, schema); + operationParameter.export = model.export; + operationParameter.type = model.type; + operationParameter.base = model.base; + operationParameter.template = model.template; + operationParameter.link = model.link; + operationParameter.isReadOnly = model.isReadOnly; + operationParameter.isRequired = operationParameter.isRequired || model.isRequired; + operationParameter.isNullable = operationParameter.isNullable || model.isNullable; + operationParameter.format = model.format; + operationParameter.maximum = model.maximum; + operationParameter.exclusiveMaximum = model.exclusiveMaximum; + operationParameter.minimum = model.minimum; + operationParameter.exclusiveMinimum = model.exclusiveMinimum; + operationParameter.multipleOf = model.multipleOf; + operationParameter.maxLength = model.maxLength; + operationParameter.minLength = model.minLength; + operationParameter.maxItems = model.maxItems; + operationParameter.minItems = model.minItems; + operationParameter.uniqueItems = model.uniqueItems; + operationParameter.maxProperties = model.maxProperties; + operationParameter.minProperties = model.minProperties; + operationParameter.pattern = getPattern(model.pattern); + operationParameter.default = model.default; + operationParameter.imports.push(...model.imports); + operationParameter.enum.push(...model.enum); + operationParameter.enums.push(...model.enums); + operationParameter.properties.push(...model.properties); + return operationParameter; + } + } + return operationParameter; +}; + +const getOperationParameters = (openApi, parameters) => { + const operationParameters = { + imports: [], + parameters: [], + parametersPath: [], + parametersQuery: [], + parametersForm: [], + parametersCookie: [], + parametersHeader: [], + parametersBody: null, // Not used in V3 -> @see requestBody + }; + // Iterate over the parameters + parameters.forEach(parameterOrReference => { + const parameterDef = getRef(openApi, parameterOrReference); + const parameter = getOperationParameter(openApi, parameterDef); + // We ignore the "api-version" param, since we do not want to add this + // as the first / default parameter for each of the service calls. + if (parameter.prop !== 'api-version') { + switch (parameterDef.in) { + case 'path': + operationParameters.parametersPath.push(parameter); + operationParameters.parameters.push(parameter); + operationParameters.imports.push(...parameter.imports); + break; + case 'query': + operationParameters.parametersQuery.push(parameter); + operationParameters.parameters.push(parameter); + operationParameters.imports.push(...parameter.imports); + break; + case 'formData': + operationParameters.parametersForm.push(parameter); + operationParameters.parameters.push(parameter); + operationParameters.imports.push(...parameter.imports); + break; + case 'cookie': + operationParameters.parametersCookie.push(parameter); + operationParameters.parameters.push(parameter); + operationParameters.imports.push(...parameter.imports); + break; + case 'header': + operationParameters.parametersHeader.push(parameter); + operationParameters.parameters.push(parameter); + operationParameters.imports.push(...parameter.imports); + break; + } + } + }); + return operationParameters; +}; + +const BASIC_MEDIA_TYPES = [ + 'application/json-patch+json', + 'application/json', + 'application/x-www-form-urlencoded', + 'text/json', + 'text/plain', + 'multipart/form-data', + 'multipart/mixed', + 'multipart/related', + 'multipart/batch', +]; +const getContent = (openApi, content) => { + const basicMediaTypeWithSchema = Object.keys(content) + .filter(mediaType => { + const cleanMediaType = mediaType.split(';')[0].trim(); + return BASIC_MEDIA_TYPES.includes(cleanMediaType); + }) + .find(mediaType => { var _a; return isDefined((_a = content[mediaType]) === null || _a === void 0 ? void 0 : _a.schema); }); + if (basicMediaTypeWithSchema) { + return { + mediaType: basicMediaTypeWithSchema, + schema: content[basicMediaTypeWithSchema].schema, + }; + } + const firstMediaTypeWithSchema = Object.keys(content).find(mediaType => { var _a; return isDefined((_a = content[mediaType]) === null || _a === void 0 ? void 0 : _a.schema); }); + if (firstMediaTypeWithSchema) { + return { + mediaType: firstMediaTypeWithSchema, + schema: content[firstMediaTypeWithSchema].schema, + }; + } + return null; +}; + +const getOperationRequestBody = (openApi, body) => { + const requestBody = { + in: 'body', + export: 'interface', + prop: 'requestBody', + name: 'requestBody', + type: 'any', + base: 'any', + template: null, + link: null, + description: body.description || null, + default: undefined, + isDefinition: false, + isReadOnly: false, + isRequired: body.required === true, + isNullable: body.nullable === true, + imports: [], + enum: [], + enums: [], + properties: [], + mediaType: null, + }; + if (body.content) { + const content = getContent(openApi, body.content); + if (content) { + requestBody.mediaType = content.mediaType; + switch (requestBody.mediaType) { + case 'application/x-www-form-urlencoded': + case 'multipart/form-data': + requestBody.in = 'formData'; + requestBody.name = 'formData'; + requestBody.prop = 'formData'; + break; + } + if (content.schema.$ref) { + const model = getType(content.schema.$ref); + requestBody.export = 'reference'; + requestBody.type = model.type; + requestBody.base = model.base; + requestBody.template = model.template; + requestBody.imports.push(...model.imports); + return requestBody; + } + else { + const model = getModel(openApi, content.schema); + requestBody.export = model.export; + requestBody.type = model.type; + requestBody.base = model.base; + requestBody.template = model.template; + requestBody.link = model.link; + requestBody.isReadOnly = model.isReadOnly; + requestBody.isRequired = requestBody.isRequired || model.isRequired; + requestBody.isNullable = requestBody.isNullable || model.isNullable; + requestBody.format = model.format; + requestBody.maximum = model.maximum; + requestBody.exclusiveMaximum = model.exclusiveMaximum; + requestBody.minimum = model.minimum; + requestBody.exclusiveMinimum = model.exclusiveMinimum; + requestBody.multipleOf = model.multipleOf; + requestBody.maxLength = model.maxLength; + requestBody.minLength = model.minLength; + requestBody.maxItems = model.maxItems; + requestBody.minItems = model.minItems; + requestBody.uniqueItems = model.uniqueItems; + requestBody.maxProperties = model.maxProperties; + requestBody.minProperties = model.minProperties; + requestBody.pattern = getPattern(model.pattern); + requestBody.imports.push(...model.imports); + requestBody.enum.push(...model.enum); + requestBody.enums.push(...model.enums); + requestBody.properties.push(...model.properties); + return requestBody; + } + } + } + return requestBody; +}; + +const getOperationResponseHeader = (operationResponses) => { + const header = operationResponses.find(operationResponses => { + return operationResponses.in === 'header'; + }); + if (header) { + return header.name; + } + return null; +}; + +const getOperationResponse = (openApi, response, responseCode) => { + var _a; + const operationResponse = { + in: 'response', + name: '', + code: responseCode, + description: response.description || null, + export: 'generic', + type: 'any', + base: 'any', + template: null, + link: null, + isDefinition: false, + isReadOnly: false, + isRequired: false, + isNullable: false, + imports: [], + enum: [], + enums: [], + properties: [], + }; + if (response.content) { + const content = getContent(openApi, response.content); + if (content) { + if ((_a = content.schema.$ref) === null || _a === void 0 ? void 0 : _a.startsWith('#/components/responses/')) { + content.schema = getRef(openApi, content.schema); + } + if (content.schema.$ref) { + const model = getType(content.schema.$ref); + operationResponse.export = 'reference'; + operationResponse.type = model.type; + operationResponse.base = model.base; + operationResponse.template = model.template; + operationResponse.imports.push(...model.imports); + return operationResponse; + } + else { + const model = getModel(openApi, content.schema); + operationResponse.export = model.export; + operationResponse.type = model.type; + operationResponse.base = model.base; + operationResponse.template = model.template; + operationResponse.link = model.link; + operationResponse.isReadOnly = model.isReadOnly; + operationResponse.isRequired = model.isRequired; + operationResponse.isNullable = model.isNullable; + operationResponse.format = model.format; + operationResponse.maximum = model.maximum; + operationResponse.exclusiveMaximum = model.exclusiveMaximum; + operationResponse.minimum = model.minimum; + operationResponse.exclusiveMinimum = model.exclusiveMinimum; + operationResponse.multipleOf = model.multipleOf; + operationResponse.maxLength = model.maxLength; + operationResponse.minLength = model.minLength; + operationResponse.maxItems = model.maxItems; + operationResponse.minItems = model.minItems; + operationResponse.uniqueItems = model.uniqueItems; + operationResponse.maxProperties = model.maxProperties; + operationResponse.minProperties = model.minProperties; + operationResponse.pattern = getPattern(model.pattern); + operationResponse.imports.push(...model.imports); + operationResponse.enum.push(...model.enum); + operationResponse.enums.push(...model.enums); + operationResponse.properties.push(...model.properties); + return operationResponse; + } + } + } + // We support basic properties from response headers, since both + // fetch and XHR client just support string types. + if (response.headers) { + for (const name in response.headers) { + if (response.headers.hasOwnProperty(name)) { + operationResponse.in = 'header'; + operationResponse.name = name; + operationResponse.type = 'string'; + operationResponse.base = 'string'; + return operationResponse; + } + } + } + return operationResponse; +}; + +const getOperationResponseCode = (value) => { + // You can specify a "default" response, this is treated as HTTP code 200 + if (value === 'default') { + return 200; + } + // Check if we can parse the code and return of successful. + if (/[0-9]+/g.test(value)) { + const code = parseInt(value); + if (Number.isInteger(code)) { + return Math.abs(code); + } + } + return null; +}; + +const getOperationResponses = (openApi, responses) => { + const operationResponses = []; + // Iterate over each response code and get the + // status code and response message (if any). + for (const code in responses) { + if (responses.hasOwnProperty(code)) { + const responseOrReference = responses[code]; + const response = getRef(openApi, responseOrReference); + const responseCode = getOperationResponseCode(code); + if (responseCode) { + const operationResponse = getOperationResponse(openApi, response, responseCode); + operationResponses.push(operationResponse); + } + } + } + // Sort the responses to 2XX success codes come before 4XX and 5XX error codes. + return operationResponses.sort((a, b) => { + return a.code < b.code ? -1 : a.code > b.code ? 1 : 0; + }); +}; + +const areEqual = (a, b) => { + const equal = a.type === b.type && a.base === b.base && a.template === b.template; + if (equal && a.link && b.link) { + return areEqual(a.link, b.link); + } + return equal; +}; +const getOperationResults = (operationResponses) => { + const operationResults = []; + // Filter out success response codes, but skip "204 No Content" + operationResponses.forEach(operationResponse => { + const { code } = operationResponse; + if (code && code !== 204 && code >= 200 && code < 300) { + operationResults.push(operationResponse); + } + }); + if (!operationResults.length) { + operationResults.push({ + in: 'response', + name: '', + code: 200, + description: '', + export: 'generic', + type: 'void', + base: 'void', + template: null, + link: null, + isDefinition: false, + isReadOnly: false, + isRequired: false, + isNullable: false, + imports: [], + enum: [], + enums: [], + properties: [], + }); + } + return operationResults.filter((operationResult, index, arr) => { + return (arr.findIndex(item => { + return areEqual(item, operationResult); + }) === index); + }); +}; + +/** + * Convert the input value to a correct service name. This converts + * the input string to PascalCase. + */ +const getServiceName = (value) => { + const clean = value + .replace(/^[^a-zA-Z]+/g, '') + .replace(/[^\w\-]+/g, '-') + .trim(); + return camelCase__default["default"](clean, { pascalCase: true }); +}; + +const sortByRequired = (a, b) => { + const aNeedsValue = a.isRequired && a.default === undefined; + const bNeedsValue = b.isRequired && b.default === undefined; + if (aNeedsValue && !bNeedsValue) + return -1; + if (bNeedsValue && !aNeedsValue) + return 1; + return 0; +}; + +const getOperation = (openApi, url, method, tag, op, pathParams) => { + const serviceName = getServiceName(tag); + const operationName = getOperationName(url, method, op.operationId); + // Create a new operation object for this method. + const operation = { + service: serviceName, + name: operationName, + summary: op.summary || null, + description: op.description || null, + deprecated: op.deprecated === true, + method: method.toUpperCase(), + path: url, + parameters: [...pathParams.parameters], + parametersPath: [...pathParams.parametersPath], + parametersQuery: [...pathParams.parametersQuery], + parametersForm: [...pathParams.parametersForm], + parametersHeader: [...pathParams.parametersHeader], + parametersCookie: [...pathParams.parametersCookie], + parametersBody: pathParams.parametersBody, + imports: [], + errors: [], + results: [], + responseHeader: null, + }; + // Parse the operation parameters (path, query, body, etc). + if (op.parameters) { + const parameters = getOperationParameters(openApi, op.parameters); + operation.imports.push(...parameters.imports); + operation.parameters.push(...parameters.parameters); + operation.parametersPath.push(...parameters.parametersPath); + operation.parametersQuery.push(...parameters.parametersQuery); + operation.parametersForm.push(...parameters.parametersForm); + operation.parametersHeader.push(...parameters.parametersHeader); + operation.parametersCookie.push(...parameters.parametersCookie); + operation.parametersBody = parameters.parametersBody; + } + if (op.requestBody) { + const requestBodyDef = getRef(openApi, op.requestBody); + const requestBody = getOperationRequestBody(openApi, requestBodyDef); + operation.imports.push(...requestBody.imports); + operation.parameters.push(requestBody); + operation.parametersBody = requestBody; + } + // Parse the operation responses. + if (op.responses) { + const operationResponses = getOperationResponses(openApi, op.responses); + const operationResults = getOperationResults(operationResponses); + operation.errors = getOperationErrors(operationResponses); + operation.responseHeader = getOperationResponseHeader(operationResults); + operationResults.forEach(operationResult => { + operation.results.push(operationResult); + operation.imports.push(...operationResult.imports); + }); + } + operation.parameters = operation.parameters.sort(sortByRequired); + return operation; +}; + +/** + * Get the OpenAPI services + */ +const getServices = (openApi) => { + var _a; + const services = new Map(); + for (const url in openApi.paths) { + if (openApi.paths.hasOwnProperty(url)) { + // Grab path and parse any global path parameters + const path = openApi.paths[url]; + const pathParams = getOperationParameters(openApi, path.parameters || []); + // Parse all the methods for this path + for (const method in path) { + if (path.hasOwnProperty(method)) { + switch (method) { + case 'get': + case 'put': + case 'post': + case 'delete': + case 'options': + case 'head': + case 'patch': + // Each method contains an OpenAPI operation, we parse the operation + const op = path[method]; + const tags = ((_a = op.tags) === null || _a === void 0 ? void 0 : _a.length) ? op.tags.filter(unique) : ['Default']; + tags.forEach(tag => { + const operation = getOperation(openApi, url, method, tag, op, pathParams); + // If we have already declared a service, then we should fetch that and + // append the new method to it. Otherwise we should create a new service object. + const service = services.get(operation.service) || { + name: operation.service, + operations: [], + imports: [], + }; + // Push the operation in the service + service.operations.push(operation); + service.imports.push(...operation.imports); + services.set(operation.service, service); + }); + break; + } + } + } + } + } + return Array.from(services.values()); +}; + +/** + * Convert the service version to 'normal' version. + * This basically removes any "v" prefix from the version string. + * @param version + */ +const getServiceVersion = (version = '1.0') => { + return String(version).replace(/^v/gi, ''); +}; + +/** + * Parse the OpenAPI specification to a Client model that contains + * all the models, services and schema's we should output. + * @param openApi The OpenAPI spec that we have loaded from disk. + */ +const parse = (openApi) => { + const version = getServiceVersion(openApi.info.version); + const server = getServer(openApi); + const models = getModels(openApi); + const services = getServices(openApi); + return { version, server, models, services }; +}; + +/** + * Load and parse te open api spec. If the file extension is ".yml" or ".yaml" + * we will try to parse the file as a YAML spec, otherwise we will fall back + * on parsing the file as JSON. + * @param location: Path or url + */ +const getOpenApiSpec = async (location) => { + return await RefParser__default["default"].bundle(location, location, {}); +}; + +var OpenApiVersion; +(function (OpenApiVersion) { + OpenApiVersion[OpenApiVersion["V2"] = 2] = "V2"; + OpenApiVersion[OpenApiVersion["V3"] = 3] = "V3"; +})(OpenApiVersion || (OpenApiVersion = {})); +/** + * Get the Open API specification version (V2 or V3). This generator only supports + * version 2 and 3 of the specification, so we will alert the user if we encounter + * an incompatible type. Or if the type is missing... + * @param openApi The loaded spec (can be any object) + */ +const getOpenApiVersion = (openApi) => { + const info = openApi.swagger || openApi.openapi; + if (typeof info === 'string') { + const c = info.charAt(0); + const v = Number.parseInt(c); + if (v === OpenApiVersion.V2 || v === OpenApiVersion.V3) { + return v; + } + } + throw new Error(`Unsupported Open API version: "${String(info)}"`); +}; + +/** + * Set unique enum values for the model + * @param model + */ +const postProcessModelEnum = (model) => { + return model.enum.filter((property, index, arr) => { + return arr.findIndex(item => item.name === property.name) === index; + }); +}; + +/** + * Set unique enum values for the model + * @param model The model that is post-processed + */ +const postProcessModelEnums = (model) => { + return model.enums.filter((property, index, arr) => { + return arr.findIndex(item => item.name === property.name) === index; + }); +}; + +const sort = (a, b) => { + if (a.typeName) { + return -1; + } + const nameA = (a.typeName || a).toLowerCase(); + const nameB = (b.typeName || b).toLowerCase(); + return nameA.localeCompare(nameB, 'en'); +}; + +/** + * Set unique imports, sorted by name + * @param model The model that is post-processed + */ +const postProcessModelImports = (model) => { + return model.imports + .filter(unique) + .sort(sort) + .filter(name => model.name !== name); +}; + +/** + * Post processes the model. + * This will clean up any double imports or enum values. + * @param model + */ +const postProcessModel = (model) => { + return { + ...model, + imports: postProcessModelImports(model), + enums: postProcessModelEnums(model), + enum: postProcessModelEnum(model), + }; +}; + +/** + * Set unique imports, sorted by name + * @param service + */ +const postProcessServiceImports = (service) => { + return service.imports.filter(unique).sort(sort); +}; + +/** + * Calls a defined callback on each element of an array. + * Then, flattens the result into a new array. + */ +const flatMap = (array, callback) => { + const result = []; + array.map(callback).forEach(arr => { + result.push(...arr); + }); + return result; +}; + +const postProcessServiceOperations = (service) => { + const names = new Map(); + return service.operations.map(operation => { + const clone = { ...operation }; + // Parse the service parameters and results, very similar to how we parse + // properties of models. These methods will extend the type if needed. + clone.imports.push(...flatMap(clone.parameters, parameter => parameter.imports)); + clone.imports.push(...flatMap(clone.results, result => result.imports)); + // Check if the operation name is unique, if not then prefix this with a number + const name = clone.name; + const index = names.get(name) || 0; + if (index > 0) { + clone.name = `${name}${index}`; + } + names.set(name, index + 1); + return clone; + }); +}; + +const postProcessService = (service) => { + const clone = { ...service }; + clone.operations = postProcessServiceOperations(clone); + clone.operations.forEach(operation => { + clone.imports.push(...operation.imports); + }); + clone.imports = postProcessServiceImports(clone); + return clone; +}; + +/** + * Post process client + * @param client Client object with all the models, services, etc. + */ +const postProcessClient = (client) => { + return { + ...client, + models: client.models.map(model => postProcessModel(model)), + services: client.services.map(service => postProcessService(service)), + }; +}; + +var commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {}; + +var handlebars_runtime = {exports: {}}; + +var base = {}; + +var utils = {}; + +utils.__esModule = true; +utils.extend = extend; +utils.indexOf = indexOf; +utils.escapeExpression = escapeExpression; +utils.isEmpty = isEmpty; +utils.createFrame = createFrame; +utils.blockParams = blockParams; +utils.appendContextPath = appendContextPath; +var escape = { + '&': '&', + '<': '<', + '>': '>', + '"': '"', + "'": ''', + '`': '`', + '=': '=' +}; + +var badChars = /[&<>"'`=]/g, + possible = /[&<>"'`=]/; + +function escapeChar(chr) { + return escape[chr]; +} + +function extend(obj /* , ...source */) { + for (var i = 1; i < arguments.length; i++) { + for (var key in arguments[i]) { + if (Object.prototype.hasOwnProperty.call(arguments[i], key)) { + obj[key] = arguments[i][key]; + } + } + } + + return obj; +} + +var toString = Object.prototype.toString; + +utils.toString = toString; +// Sourced from lodash +// https://github.com/bestiejs/lodash/blob/master/LICENSE.txt +/* eslint-disable func-style */ +var isFunction = function isFunction(value) { + return typeof value === 'function'; +}; +// fallback for older versions of Chrome and Safari +/* istanbul ignore next */ +if (isFunction(/x/)) { + utils.isFunction = isFunction = function (value) { + return typeof value === 'function' && toString.call(value) === '[object Function]'; + }; +} +utils.isFunction = isFunction; + +/* eslint-enable func-style */ + +/* istanbul ignore next */ +var isArray = Array.isArray || function (value) { + return value && typeof value === 'object' ? toString.call(value) === '[object Array]' : false; +}; + +utils.isArray = isArray; +// Older IE versions do not directly support indexOf so we must implement our own, sadly. + +function indexOf(array, value) { + for (var i = 0, len = array.length; i < len; i++) { + if (array[i] === value) { + return i; + } + } + return -1; +} + +function escapeExpression(string) { + if (typeof string !== 'string') { + // don't escape SafeStrings, since they're already safe + if (string && string.toHTML) { + return string.toHTML(); + } else if (string == null) { + return ''; + } else if (!string) { + return string + ''; + } + + // Force a string conversion as this will be done by the append regardless and + // the regex test will do this transparently behind the scenes, causing issues if + // an object's to string has escaped characters in it. + string = '' + string; + } + + if (!possible.test(string)) { + return string; + } + return string.replace(badChars, escapeChar); +} + +function isEmpty(value) { + if (!value && value !== 0) { + return true; + } else if (isArray(value) && value.length === 0) { + return true; + } else { + return false; + } +} + +function createFrame(object) { + var frame = extend({}, object); + frame._parent = object; + return frame; +} + +function blockParams(params, ids) { + params.path = ids; + return params; +} + +function appendContextPath(contextPath, id) { + return (contextPath ? contextPath + '.' : '') + id; +} + +var exception = {exports: {}}; + +(function (module, exports) { + + exports.__esModule = true; + var errorProps = ['description', 'fileName', 'lineNumber', 'endLineNumber', 'message', 'name', 'number', 'stack']; + + function Exception(message, node) { + var loc = node && node.loc, + line = undefined, + endLineNumber = undefined, + column = undefined, + endColumn = undefined; + + if (loc) { + line = loc.start.line; + endLineNumber = loc.end.line; + column = loc.start.column; + endColumn = loc.end.column; + + message += ' - ' + line + ':' + column; + } + + var tmp = Error.prototype.constructor.call(this, message); + + // Unfortunately errors are not enumerable in Chrome (at least), so `for prop in tmp` doesn't work. + for (var idx = 0; idx < errorProps.length; idx++) { + this[errorProps[idx]] = tmp[errorProps[idx]]; + } + + /* istanbul ignore else */ + if (Error.captureStackTrace) { + Error.captureStackTrace(this, Exception); + } + + try { + if (loc) { + this.lineNumber = line; + this.endLineNumber = endLineNumber; + + // Work around issue under safari where we can't directly set the column value + /* istanbul ignore next */ + if (Object.defineProperty) { + Object.defineProperty(this, 'column', { + value: column, + enumerable: true + }); + Object.defineProperty(this, 'endColumn', { + value: endColumn, + enumerable: true + }); + } else { + this.column = column; + this.endColumn = endColumn; + } + } + } catch (nop) { + /* Ignore if the browser is very particular */ + } + } + + Exception.prototype = new Error(); + + exports['default'] = Exception; + module.exports = exports['default']; + +} (exception, exception.exports)); + +var helpers = {}; + +var blockHelperMissing = {exports: {}}; + +(function (module, exports) { + + exports.__esModule = true; + + var _utils = utils; + + exports['default'] = function (instance) { + instance.registerHelper('blockHelperMissing', function (context, options) { + var inverse = options.inverse, + fn = options.fn; + + if (context === true) { + return fn(this); + } else if (context === false || context == null) { + return inverse(this); + } else if (_utils.isArray(context)) { + if (context.length > 0) { + if (options.ids) { + options.ids = [options.name]; + } + + return instance.helpers.each(context, options); + } else { + return inverse(this); + } + } else { + if (options.data && options.ids) { + var data = _utils.createFrame(options.data); + data.contextPath = _utils.appendContextPath(options.data.contextPath, options.name); + options = { data: data }; + } + + return fn(context, options); + } + }); + }; + + module.exports = exports['default']; + +} (blockHelperMissing, blockHelperMissing.exports)); + +var each = {exports: {}}; + +(function (module, exports) { + + exports.__esModule = true; + // istanbul ignore next + + function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } + + var _utils = utils; + + var _exception = exception.exports; + + var _exception2 = _interopRequireDefault(_exception); + + exports['default'] = function (instance) { + instance.registerHelper('each', function (context, options) { + if (!options) { + throw new _exception2['default']('Must pass iterator to #each'); + } + + var fn = options.fn, + inverse = options.inverse, + i = 0, + ret = '', + data = undefined, + contextPath = undefined; + + if (options.data && options.ids) { + contextPath = _utils.appendContextPath(options.data.contextPath, options.ids[0]) + '.'; + } + + if (_utils.isFunction(context)) { + context = context.call(this); + } + + if (options.data) { + data = _utils.createFrame(options.data); + } + + function execIteration(field, index, last) { + if (data) { + data.key = field; + data.index = index; + data.first = index === 0; + data.last = !!last; + + if (contextPath) { + data.contextPath = contextPath + field; + } + } + + ret = ret + fn(context[field], { + data: data, + blockParams: _utils.blockParams([context[field], field], [contextPath + field, null]) + }); + } + + if (context && typeof context === 'object') { + if (_utils.isArray(context)) { + for (var j = context.length; i < j; i++) { + if (i in context) { + execIteration(i, i, i === context.length - 1); + } + } + } else if (commonjsGlobal.Symbol && context[commonjsGlobal.Symbol.iterator]) { + var newContext = []; + var iterator = context[commonjsGlobal.Symbol.iterator](); + for (var it = iterator.next(); !it.done; it = iterator.next()) { + newContext.push(it.value); + } + context = newContext; + for (var j = context.length; i < j; i++) { + execIteration(i, i, i === context.length - 1); + } + } else { + (function () { + var priorKey = undefined; + + Object.keys(context).forEach(function (key) { + // We're running the iterations one step out of sync so we can detect + // the last iteration without have to scan the object twice and create + // an itermediate keys array. + if (priorKey !== undefined) { + execIteration(priorKey, i - 1); + } + priorKey = key; + i++; + }); + if (priorKey !== undefined) { + execIteration(priorKey, i - 1, true); + } + })(); + } + } + + if (i === 0) { + ret = inverse(this); + } + + return ret; + }); + }; + + module.exports = exports['default']; + +} (each, each.exports)); + +var helperMissing = {exports: {}}; + +(function (module, exports) { + + exports.__esModule = true; + // istanbul ignore next + + function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } + + var _exception = exception.exports; + + var _exception2 = _interopRequireDefault(_exception); + + exports['default'] = function (instance) { + instance.registerHelper('helperMissing', function () /* [args, ]options */{ + if (arguments.length === 1) { + // A missing field in a {{foo}} construct. + return undefined; + } else { + // Someone is actually trying to call something, blow up. + throw new _exception2['default']('Missing helper: "' + arguments[arguments.length - 1].name + '"'); + } + }); + }; + + module.exports = exports['default']; + +} (helperMissing, helperMissing.exports)); + +var _if = {exports: {}}; + +(function (module, exports) { + + exports.__esModule = true; + // istanbul ignore next + + function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } + + var _utils = utils; + + var _exception = exception.exports; + + var _exception2 = _interopRequireDefault(_exception); + + exports['default'] = function (instance) { + instance.registerHelper('if', function (conditional, options) { + if (arguments.length != 2) { + throw new _exception2['default']('#if requires exactly one argument'); + } + if (_utils.isFunction(conditional)) { + conditional = conditional.call(this); + } + + // Default behavior is to render the positive path if the value is truthy and not empty. + // The `includeZero` option may be set to treat the condtional as purely not empty based on the + // behavior of isEmpty. Effectively this determines if 0 is handled by the positive path or negative. + if (!options.hash.includeZero && !conditional || _utils.isEmpty(conditional)) { + return options.inverse(this); + } else { + return options.fn(this); + } + }); + + instance.registerHelper('unless', function (conditional, options) { + if (arguments.length != 2) { + throw new _exception2['default']('#unless requires exactly one argument'); + } + return instance.helpers['if'].call(this, conditional, { + fn: options.inverse, + inverse: options.fn, + hash: options.hash + }); + }); + }; + + module.exports = exports['default']; + +} (_if, _if.exports)); + +var log$1 = {exports: {}}; + +(function (module, exports) { + + exports.__esModule = true; + + exports['default'] = function (instance) { + instance.registerHelper('log', function () /* message, options */{ + var args = [undefined], + options = arguments[arguments.length - 1]; + for (var i = 0; i < arguments.length - 1; i++) { + args.push(arguments[i]); + } + + var level = 1; + if (options.hash.level != null) { + level = options.hash.level; + } else if (options.data && options.data.level != null) { + level = options.data.level; + } + args[0] = level; + + instance.log.apply(instance, args); + }); + }; + + module.exports = exports['default']; + +} (log$1, log$1.exports)); + +var lookup = {exports: {}}; + +(function (module, exports) { + + exports.__esModule = true; + + exports['default'] = function (instance) { + instance.registerHelper('lookup', function (obj, field, options) { + if (!obj) { + // Note for 5.0: Change to "obj == null" in 5.0 + return obj; + } + return options.lookupProperty(obj, field); + }); + }; + + module.exports = exports['default']; + +} (lookup, lookup.exports)); + +var _with = {exports: {}}; + +(function (module, exports) { + + exports.__esModule = true; + // istanbul ignore next + + function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } + + var _utils = utils; + + var _exception = exception.exports; + + var _exception2 = _interopRequireDefault(_exception); + + exports['default'] = function (instance) { + instance.registerHelper('with', function (context, options) { + if (arguments.length != 2) { + throw new _exception2['default']('#with requires exactly one argument'); + } + if (_utils.isFunction(context)) { + context = context.call(this); + } + + var fn = options.fn; + + if (!_utils.isEmpty(context)) { + var data = options.data; + if (options.data && options.ids) { + data = _utils.createFrame(options.data); + data.contextPath = _utils.appendContextPath(options.data.contextPath, options.ids[0]); + } + + return fn(context, { + data: data, + blockParams: _utils.blockParams([context], [data && data.contextPath]) + }); + } else { + return options.inverse(this); + } + }); + }; + + module.exports = exports['default']; + +} (_with, _with.exports)); + +helpers.__esModule = true; +helpers.registerDefaultHelpers = registerDefaultHelpers; +helpers.moveHelperToHooks = moveHelperToHooks; +// istanbul ignore next + +function _interopRequireDefault$3(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } + +var _helpersBlockHelperMissing = blockHelperMissing.exports; + +var _helpersBlockHelperMissing2 = _interopRequireDefault$3(_helpersBlockHelperMissing); + +var _helpersEach = each.exports; + +var _helpersEach2 = _interopRequireDefault$3(_helpersEach); + +var _helpersHelperMissing = helperMissing.exports; + +var _helpersHelperMissing2 = _interopRequireDefault$3(_helpersHelperMissing); + +var _helpersIf = _if.exports; + +var _helpersIf2 = _interopRequireDefault$3(_helpersIf); + +var _helpersLog = log$1.exports; + +var _helpersLog2 = _interopRequireDefault$3(_helpersLog); + +var _helpersLookup = lookup.exports; + +var _helpersLookup2 = _interopRequireDefault$3(_helpersLookup); + +var _helpersWith = _with.exports; + +var _helpersWith2 = _interopRequireDefault$3(_helpersWith); + +function registerDefaultHelpers(instance) { + _helpersBlockHelperMissing2['default'](instance); + _helpersEach2['default'](instance); + _helpersHelperMissing2['default'](instance); + _helpersIf2['default'](instance); + _helpersLog2['default'](instance); + _helpersLookup2['default'](instance); + _helpersWith2['default'](instance); +} + +function moveHelperToHooks(instance, helperName, keepHelper) { + if (instance.helpers[helperName]) { + instance.hooks[helperName] = instance.helpers[helperName]; + if (!keepHelper) { + delete instance.helpers[helperName]; + } + } +} + +var decorators = {}; + +var inline = {exports: {}}; + +(function (module, exports) { + + exports.__esModule = true; + + var _utils = utils; + + exports['default'] = function (instance) { + instance.registerDecorator('inline', function (fn, props, container, options) { + var ret = fn; + if (!props.partials) { + props.partials = {}; + ret = function (context, options) { + // Create a new partials stack frame prior to exec. + var original = container.partials; + container.partials = _utils.extend({}, original, props.partials); + var ret = fn(context, options); + container.partials = original; + return ret; + }; + } + + props.partials[options.args[0]] = options.fn; + + return ret; + }); + }; + + module.exports = exports['default']; + +} (inline, inline.exports)); + +decorators.__esModule = true; +decorators.registerDefaultDecorators = registerDefaultDecorators; +// istanbul ignore next + +function _interopRequireDefault$2(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } + +var _decoratorsInline = inline.exports; + +var _decoratorsInline2 = _interopRequireDefault$2(_decoratorsInline); + +function registerDefaultDecorators(instance) { + _decoratorsInline2['default'](instance); +} + +var logger$1 = {exports: {}}; + +(function (module, exports) { + + exports.__esModule = true; + + var _utils = utils; + + var logger = { + methodMap: ['debug', 'info', 'warn', 'error'], + level: 'info', + + // Maps a given level value to the `methodMap` indexes above. + lookupLevel: function lookupLevel(level) { + if (typeof level === 'string') { + var levelMap = _utils.indexOf(logger.methodMap, level.toLowerCase()); + if (levelMap >= 0) { + level = levelMap; + } else { + level = parseInt(level, 10); + } + } + + return level; + }, + + // Can be overridden in the host environment + log: function log(level) { + level = logger.lookupLevel(level); + + if (typeof console !== 'undefined' && logger.lookupLevel(logger.level) <= level) { + var method = logger.methodMap[level]; + // eslint-disable-next-line no-console + if (!console[method]) { + method = 'log'; + } + + for (var _len = arguments.length, message = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) { + message[_key - 1] = arguments[_key]; + } + + console[method].apply(console, message); // eslint-disable-line no-console + } + } + }; + + exports['default'] = logger; + module.exports = exports['default']; + +} (logger$1, logger$1.exports)); + +var protoAccess = {}; + +var createNewLookupObject$1 = {}; + +createNewLookupObject$1.__esModule = true; +createNewLookupObject$1.createNewLookupObject = createNewLookupObject; + +var _utils$2 = utils; + +/** + * Create a new object with "null"-prototype to avoid truthy results on prototype properties. + * The resulting object can be used with "object[property]" to check if a property exists + * @param {...object} sources a varargs parameter of source objects that will be merged + * @returns {object} + */ + +function createNewLookupObject() { + for (var _len = arguments.length, sources = Array(_len), _key = 0; _key < _len; _key++) { + sources[_key] = arguments[_key]; + } + + return _utils$2.extend.apply(undefined, [Object.create(null)].concat(sources)); +} + +protoAccess.__esModule = true; +protoAccess.createProtoAccessControl = createProtoAccessControl; +protoAccess.resultIsAllowed = resultIsAllowed; +protoAccess.resetLoggedProperties = resetLoggedProperties; +// istanbul ignore next + +function _interopRequireWildcard$1(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj['default'] = obj; return newObj; } } + +var _createNewLookupObject = createNewLookupObject$1; + +var _logger$1 = logger$1.exports; + +var logger = _interopRequireWildcard$1(_logger$1); + +var loggedProperties = Object.create(null); + +function createProtoAccessControl(runtimeOptions) { + var defaultMethodWhiteList = Object.create(null); + defaultMethodWhiteList['constructor'] = false; + defaultMethodWhiteList['__defineGetter__'] = false; + defaultMethodWhiteList['__defineSetter__'] = false; + defaultMethodWhiteList['__lookupGetter__'] = false; + + var defaultPropertyWhiteList = Object.create(null); + // eslint-disable-next-line no-proto + defaultPropertyWhiteList['__proto__'] = false; + + return { + properties: { + whitelist: _createNewLookupObject.createNewLookupObject(defaultPropertyWhiteList, runtimeOptions.allowedProtoProperties), + defaultValue: runtimeOptions.allowProtoPropertiesByDefault + }, + methods: { + whitelist: _createNewLookupObject.createNewLookupObject(defaultMethodWhiteList, runtimeOptions.allowedProtoMethods), + defaultValue: runtimeOptions.allowProtoMethodsByDefault + } + }; +} + +function resultIsAllowed(result, protoAccessControl, propertyName) { + if (typeof result === 'function') { + return checkWhiteList(protoAccessControl.methods, propertyName); + } else { + return checkWhiteList(protoAccessControl.properties, propertyName); + } +} + +function checkWhiteList(protoAccessControlForType, propertyName) { + if (protoAccessControlForType.whitelist[propertyName] !== undefined) { + return protoAccessControlForType.whitelist[propertyName] === true; + } + if (protoAccessControlForType.defaultValue !== undefined) { + return protoAccessControlForType.defaultValue; + } + logUnexpecedPropertyAccessOnce(propertyName); + return false; +} + +function logUnexpecedPropertyAccessOnce(propertyName) { + if (loggedProperties[propertyName] !== true) { + loggedProperties[propertyName] = true; + logger.log('error', 'Handlebars: Access has been denied to resolve the property "' + propertyName + '" because it is not an "own property" of its parent.\n' + 'You can add a runtime option to disable the check or this warning:\n' + 'See https://handlebarsjs.com/api-reference/runtime-options.html#options-to-control-prototype-access for details'); + } +} + +function resetLoggedProperties() { + Object.keys(loggedProperties).forEach(function (propertyName) { + delete loggedProperties[propertyName]; + }); +} + +base.__esModule = true; +base.HandlebarsEnvironment = HandlebarsEnvironment; +// istanbul ignore next + +function _interopRequireDefault$1(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } + +var _utils$1 = utils; + +var _exception$1 = exception.exports; + +var _exception2$1 = _interopRequireDefault$1(_exception$1); + +var _helpers$1 = helpers; + +var _decorators = decorators; + +var _logger = logger$1.exports; + +var _logger2 = _interopRequireDefault$1(_logger); + +var _internalProtoAccess$1 = protoAccess; + +var VERSION = '4.7.7'; +base.VERSION = VERSION; +var COMPILER_REVISION = 8; +base.COMPILER_REVISION = COMPILER_REVISION; +var LAST_COMPATIBLE_COMPILER_REVISION = 7; + +base.LAST_COMPATIBLE_COMPILER_REVISION = LAST_COMPATIBLE_COMPILER_REVISION; +var REVISION_CHANGES = { + 1: '<= 1.0.rc.2', // 1.0.rc.2 is actually rev2 but doesn't report it + 2: '== 1.0.0-rc.3', + 3: '== 1.0.0-rc.4', + 4: '== 1.x.x', + 5: '== 2.0.0-alpha.x', + 6: '>= 2.0.0-beta.1', + 7: '>= 4.0.0 <4.3.0', + 8: '>= 4.3.0' +}; + +base.REVISION_CHANGES = REVISION_CHANGES; +var objectType = '[object Object]'; + +function HandlebarsEnvironment(helpers, partials, decorators) { + this.helpers = helpers || {}; + this.partials = partials || {}; + this.decorators = decorators || {}; + + _helpers$1.registerDefaultHelpers(this); + _decorators.registerDefaultDecorators(this); +} + +HandlebarsEnvironment.prototype = { + constructor: HandlebarsEnvironment, + + logger: _logger2['default'], + log: _logger2['default'].log, + + registerHelper: function registerHelper(name, fn) { + if (_utils$1.toString.call(name) === objectType) { + if (fn) { + throw new _exception2$1['default']('Arg not supported with multiple helpers'); + } + _utils$1.extend(this.helpers, name); + } else { + this.helpers[name] = fn; + } + }, + unregisterHelper: function unregisterHelper(name) { + delete this.helpers[name]; + }, + + registerPartial: function registerPartial(name, partial) { + if (_utils$1.toString.call(name) === objectType) { + _utils$1.extend(this.partials, name); + } else { + if (typeof partial === 'undefined') { + throw new _exception2$1['default']('Attempting to register a partial called "' + name + '" as undefined'); + } + this.partials[name] = partial; + } + }, + unregisterPartial: function unregisterPartial(name) { + delete this.partials[name]; + }, + + registerDecorator: function registerDecorator(name, fn) { + if (_utils$1.toString.call(name) === objectType) { + if (fn) { + throw new _exception2$1['default']('Arg not supported with multiple decorators'); + } + _utils$1.extend(this.decorators, name); + } else { + this.decorators[name] = fn; + } + }, + unregisterDecorator: function unregisterDecorator(name) { + delete this.decorators[name]; + }, + /** + * Reset the memory of illegal property accesses that have already been logged. + * @deprecated should only be used in handlebars test-cases + */ + resetLoggedPropertyAccesses: function resetLoggedPropertyAccesses() { + _internalProtoAccess$1.resetLoggedProperties(); + } +}; + +var log = _logger2['default'].log; + +base.log = log; +base.createFrame = _utils$1.createFrame; +base.logger = _logger2['default']; + +var safeString = {exports: {}}; + +(function (module, exports) { + + exports.__esModule = true; + function SafeString(string) { + this.string = string; + } + + SafeString.prototype.toString = SafeString.prototype.toHTML = function () { + return '' + this.string; + }; + + exports['default'] = SafeString; + module.exports = exports['default']; + +} (safeString, safeString.exports)); + +var runtime$1 = {}; + +var wrapHelper$1 = {}; + +wrapHelper$1.__esModule = true; +wrapHelper$1.wrapHelper = wrapHelper; + +function wrapHelper(helper, transformOptionsFn) { + if (typeof helper !== 'function') { + // This should not happen, but apparently it does in https://github.com/wycats/handlebars.js/issues/1639 + // We try to make the wrapper least-invasive by not wrapping it, if the helper is not a function. + return helper; + } + var wrapper = function wrapper() /* dynamic arguments */{ + var options = arguments[arguments.length - 1]; + arguments[arguments.length - 1] = transformOptionsFn(options); + return helper.apply(this, arguments); + }; + return wrapper; +} + +runtime$1.__esModule = true; +runtime$1.checkRevision = checkRevision; +runtime$1.template = template; +runtime$1.wrapProgram = wrapProgram; +runtime$1.resolvePartial = resolvePartial; +runtime$1.invokePartial = invokePartial; +runtime$1.noop = noop; +// istanbul ignore next + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } + +// istanbul ignore next + +function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj['default'] = obj; return newObj; } } + +var _utils = utils; + +var Utils = _interopRequireWildcard(_utils); + +var _exception = exception.exports; + +var _exception2 = _interopRequireDefault(_exception); + +var _base = base; + +var _helpers = helpers; + +var _internalWrapHelper = wrapHelper$1; + +var _internalProtoAccess = protoAccess; + +function checkRevision(compilerInfo) { + var compilerRevision = compilerInfo && compilerInfo[0] || 1, + currentRevision = _base.COMPILER_REVISION; + + if (compilerRevision >= _base.LAST_COMPATIBLE_COMPILER_REVISION && compilerRevision <= _base.COMPILER_REVISION) { + return; + } + + if (compilerRevision < _base.LAST_COMPATIBLE_COMPILER_REVISION) { + var runtimeVersions = _base.REVISION_CHANGES[currentRevision], + compilerVersions = _base.REVISION_CHANGES[compilerRevision]; + throw new _exception2['default']('Template was precompiled with an older version of Handlebars than the current runtime. ' + 'Please update your precompiler to a newer version (' + runtimeVersions + ') or downgrade your runtime to an older version (' + compilerVersions + ').'); + } else { + // Use the embedded version info since the runtime doesn't know about this revision yet + throw new _exception2['default']('Template was precompiled with a newer version of Handlebars than the current runtime. ' + 'Please update your runtime to a newer version (' + compilerInfo[1] + ').'); + } +} + +function template(templateSpec, env) { + /* istanbul ignore next */ + if (!env) { + throw new _exception2['default']('No environment passed to template'); + } + if (!templateSpec || !templateSpec.main) { + throw new _exception2['default']('Unknown template object: ' + typeof templateSpec); + } + + templateSpec.main.decorator = templateSpec.main_d; + + // Note: Using env.VM references rather than local var references throughout this section to allow + // for external users to override these as pseudo-supported APIs. + env.VM.checkRevision(templateSpec.compiler); + + // backwards compatibility for precompiled templates with compiler-version 7 (<4.3.0) + var templateWasPrecompiledWithCompilerV7 = templateSpec.compiler && templateSpec.compiler[0] === 7; + + function invokePartialWrapper(partial, context, options) { + if (options.hash) { + context = Utils.extend({}, context, options.hash); + if (options.ids) { + options.ids[0] = true; + } + } + partial = env.VM.resolvePartial.call(this, partial, context, options); + + var extendedOptions = Utils.extend({}, options, { + hooks: this.hooks, + protoAccessControl: this.protoAccessControl + }); + + var result = env.VM.invokePartial.call(this, partial, context, extendedOptions); + + if (result == null && env.compile) { + options.partials[options.name] = env.compile(partial, templateSpec.compilerOptions, env); + result = options.partials[options.name](context, extendedOptions); + } + if (result != null) { + if (options.indent) { + var lines = result.split('\n'); + for (var i = 0, l = lines.length; i < l; i++) { + if (!lines[i] && i + 1 === l) { + break; + } + + lines[i] = options.indent + lines[i]; + } + result = lines.join('\n'); + } + return result; + } else { + throw new _exception2['default']('The partial ' + options.name + ' could not be compiled when running in runtime-only mode'); + } + } + + // Just add water + var container = { + strict: function strict(obj, name, loc) { + if (!obj || !(name in obj)) { + throw new _exception2['default']('"' + name + '" not defined in ' + obj, { + loc: loc + }); + } + return container.lookupProperty(obj, name); + }, + lookupProperty: function lookupProperty(parent, propertyName) { + var result = parent[propertyName]; + if (result == null) { + return result; + } + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return result; + } + + if (_internalProtoAccess.resultIsAllowed(result, container.protoAccessControl, propertyName)) { + return result; + } + return undefined; + }, + lookup: function lookup(depths, name) { + var len = depths.length; + for (var i = 0; i < len; i++) { + var result = depths[i] && container.lookupProperty(depths[i], name); + if (result != null) { + return depths[i][name]; + } + } + }, + lambda: function lambda(current, context) { + return typeof current === 'function' ? current.call(context) : current; + }, + + escapeExpression: Utils.escapeExpression, + invokePartial: invokePartialWrapper, + + fn: function fn(i) { + var ret = templateSpec[i]; + ret.decorator = templateSpec[i + '_d']; + return ret; + }, + + programs: [], + program: function program(i, data, declaredBlockParams, blockParams, depths) { + var programWrapper = this.programs[i], + fn = this.fn(i); + if (data || depths || blockParams || declaredBlockParams) { + programWrapper = wrapProgram(this, i, fn, data, declaredBlockParams, blockParams, depths); + } else if (!programWrapper) { + programWrapper = this.programs[i] = wrapProgram(this, i, fn); + } + return programWrapper; + }, + + data: function data(value, depth) { + while (value && depth--) { + value = value._parent; + } + return value; + }, + mergeIfNeeded: function mergeIfNeeded(param, common) { + var obj = param || common; + + if (param && common && param !== common) { + obj = Utils.extend({}, common, param); + } + + return obj; + }, + // An empty object to use as replacement for null-contexts + nullContext: Object.seal({}), + + noop: env.VM.noop, + compilerInfo: templateSpec.compiler + }; + + function ret(context) { + var options = arguments.length <= 1 || arguments[1] === undefined ? {} : arguments[1]; + + var data = options.data; + + ret._setup(options); + if (!options.partial && templateSpec.useData) { + data = initData(context, data); + } + var depths = undefined, + blockParams = templateSpec.useBlockParams ? [] : undefined; + if (templateSpec.useDepths) { + if (options.depths) { + depths = context != options.depths[0] ? [context].concat(options.depths) : options.depths; + } else { + depths = [context]; + } + } + + function main(context /*, options*/) { + return '' + templateSpec.main(container, context, container.helpers, container.partials, data, blockParams, depths); + } + + main = executeDecorators(templateSpec.main, main, container, options.depths || [], data, blockParams); + return main(context, options); + } + + ret.isTop = true; + + ret._setup = function (options) { + if (!options.partial) { + var mergedHelpers = Utils.extend({}, env.helpers, options.helpers); + wrapHelpersToPassLookupProperty(mergedHelpers, container); + container.helpers = mergedHelpers; + + if (templateSpec.usePartial) { + // Use mergeIfNeeded here to prevent compiling global partials multiple times + container.partials = container.mergeIfNeeded(options.partials, env.partials); + } + if (templateSpec.usePartial || templateSpec.useDecorators) { + container.decorators = Utils.extend({}, env.decorators, options.decorators); + } + + container.hooks = {}; + container.protoAccessControl = _internalProtoAccess.createProtoAccessControl(options); + + var keepHelperInHelpers = options.allowCallsToHelperMissing || templateWasPrecompiledWithCompilerV7; + _helpers.moveHelperToHooks(container, 'helperMissing', keepHelperInHelpers); + _helpers.moveHelperToHooks(container, 'blockHelperMissing', keepHelperInHelpers); + } else { + container.protoAccessControl = options.protoAccessControl; // internal option + container.helpers = options.helpers; + container.partials = options.partials; + container.decorators = options.decorators; + container.hooks = options.hooks; + } + }; + + ret._child = function (i, data, blockParams, depths) { + if (templateSpec.useBlockParams && !blockParams) { + throw new _exception2['default']('must pass block params'); + } + if (templateSpec.useDepths && !depths) { + throw new _exception2['default']('must pass parent depths'); + } + + return wrapProgram(container, i, templateSpec[i], data, 0, blockParams, depths); + }; + return ret; +} + +function wrapProgram(container, i, fn, data, declaredBlockParams, blockParams, depths) { + function prog(context) { + var options = arguments.length <= 1 || arguments[1] === undefined ? {} : arguments[1]; + + var currentDepths = depths; + if (depths && context != depths[0] && !(context === container.nullContext && depths[0] === null)) { + currentDepths = [context].concat(depths); + } + + return fn(container, context, container.helpers, container.partials, options.data || data, blockParams && [options.blockParams].concat(blockParams), currentDepths); + } + + prog = executeDecorators(fn, prog, container, depths, data, blockParams); + + prog.program = i; + prog.depth = depths ? depths.length : 0; + prog.blockParams = declaredBlockParams || 0; + return prog; +} + +/** + * This is currently part of the official API, therefore implementation details should not be changed. + */ + +function resolvePartial(partial, context, options) { + if (!partial) { + if (options.name === '@partial-block') { + partial = options.data['partial-block']; + } else { + partial = options.partials[options.name]; + } + } else if (!partial.call && !options.name) { + // This is a dynamic partial that returned a string + options.name = partial; + partial = options.partials[partial]; + } + return partial; +} + +function invokePartial(partial, context, options) { + // Use the current closure context to save the partial-block if this partial + var currentPartialBlock = options.data && options.data['partial-block']; + options.partial = true; + if (options.ids) { + options.data.contextPath = options.ids[0] || options.data.contextPath; + } + + var partialBlock = undefined; + if (options.fn && options.fn !== noop) { + (function () { + options.data = _base.createFrame(options.data); + // Wrapper function to get access to currentPartialBlock from the closure + var fn = options.fn; + partialBlock = options.data['partial-block'] = function partialBlockWrapper(context) { + var options = arguments.length <= 1 || arguments[1] === undefined ? {} : arguments[1]; + + // Restore the partial-block from the closure for the execution of the block + // i.e. the part inside the block of the partial call. + options.data = _base.createFrame(options.data); + options.data['partial-block'] = currentPartialBlock; + return fn(context, options); + }; + if (fn.partials) { + options.partials = Utils.extend({}, options.partials, fn.partials); + } + })(); + } + + if (partial === undefined && partialBlock) { + partial = partialBlock; + } + + if (partial === undefined) { + throw new _exception2['default']('The partial ' + options.name + ' could not be found'); + } else if (partial instanceof Function) { + return partial(context, options); + } +} + +function noop() { + return ''; +} + +function initData(context, data) { + if (!data || !('root' in data)) { + data = data ? _base.createFrame(data) : {}; + data.root = context; + } + return data; +} + +function executeDecorators(fn, prog, container, depths, data, blockParams) { + if (fn.decorator) { + var props = {}; + prog = fn.decorator(prog, props, container, depths && depths[0], data, blockParams, depths); + Utils.extend(prog, props); + } + return prog; +} + +function wrapHelpersToPassLookupProperty(mergedHelpers, container) { + Object.keys(mergedHelpers).forEach(function (helperName) { + var helper = mergedHelpers[helperName]; + mergedHelpers[helperName] = passLookupPropertyOption(helper, container); + }); +} + +function passLookupPropertyOption(helper, container) { + var lookupProperty = container.lookupProperty; + return _internalWrapHelper.wrapHelper(helper, function (options) { + return Utils.extend({ lookupProperty: lookupProperty }, options); + }); +} + +var noConflict = {exports: {}}; + +(function (module, exports) { + + exports.__esModule = true; + + exports['default'] = function (Handlebars) { + /* istanbul ignore next */ + var root = typeof commonjsGlobal !== 'undefined' ? commonjsGlobal : window, + $Handlebars = root.Handlebars; + /* istanbul ignore next */ + Handlebars.noConflict = function () { + if (root.Handlebars === Handlebars) { + root.Handlebars = $Handlebars; + } + return Handlebars; + }; + }; + + module.exports = exports['default']; + +} (noConflict, noConflict.exports)); + +(function (module, exports) { + + exports.__esModule = true; + // istanbul ignore next + + function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } + + // istanbul ignore next + + function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj['default'] = obj; return newObj; } } + + var _handlebarsBase = base; + + var base$1 = _interopRequireWildcard(_handlebarsBase); + + // Each of these augment the Handlebars object. No need to setup here. + // (This is done to easily share code between commonjs and browse envs) + + var _handlebarsSafeString = safeString.exports; + + var _handlebarsSafeString2 = _interopRequireDefault(_handlebarsSafeString); + + var _handlebarsException = exception.exports; + + var _handlebarsException2 = _interopRequireDefault(_handlebarsException); + + var _handlebarsUtils = utils; + + var Utils = _interopRequireWildcard(_handlebarsUtils); + + var _handlebarsRuntime = runtime$1; + + var runtime = _interopRequireWildcard(_handlebarsRuntime); + + var _handlebarsNoConflict = noConflict.exports; + + var _handlebarsNoConflict2 = _interopRequireDefault(_handlebarsNoConflict); + + // For compatibility and usage outside of module systems, make the Handlebars object a namespace + function create() { + var hb = new base$1.HandlebarsEnvironment(); + + Utils.extend(hb, base$1); + hb.SafeString = _handlebarsSafeString2['default']; + hb.Exception = _handlebarsException2['default']; + hb.Utils = Utils; + hb.escapeExpression = Utils.escapeExpression; + + hb.VM = runtime; + hb.template = function (spec) { + return runtime.template(spec, hb); + }; + + return hb; + } + + var inst = create(); + inst.create = create; + + _handlebarsNoConflict2['default'](inst); + + inst['default'] = inst; + + exports['default'] = inst; + module.exports = exports['default']; + +} (handlebars_runtime, handlebars_runtime.exports)); + +// Create a simple path alias to allow browserify to resolve +// the runtime on a supported path. +var runtime = handlebars_runtime.exports['default']; + +var templateClient = {"1":function(container,depth0,helpers,partials,data) { + return "import { NgModule} from '@angular/core';\nimport { HttpClientModule } from '@angular/common/http';\n\nimport { AngularHttpRequest } from './core/AngularHttpRequest';\nimport { BaseHttpRequest } from './core/BaseHttpRequest';\nimport type { OpenAPIConfig } from './core/OpenAPI';\nimport { OpenAPI } from './core/OpenAPI';\n"; +},"3":function(container,depth0,helpers,partials,data) { + var stack1, alias1=container.strict, alias2=container.lambda; + + return "import type { BaseHttpRequest } from './core/BaseHttpRequest';\nimport type { OpenAPIConfig } from './core/OpenAPI';\nimport { " + + ((stack1 = alias2(alias1(depth0, "httpRequest", {"start":{"line":14,"column":12},"end":{"line":14,"column":23}} ), depth0)) != null ? stack1 : "") + + " } from './core/" + + ((stack1 = alias2(alias1(depth0, "httpRequest", {"start":{"line":14,"column":45},"end":{"line":14,"column":56}} ), depth0)) != null ? stack1 : "") + + "';\n"; +},"5":function(container,depth0,helpers,partials,data) { + var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return ((stack1 = lookupProperty(helpers,"each").call(depth0 != null ? depth0 : (container.nullContext || {}),lookupProperty(depth0,"services"),{"name":"each","hash":{},"fn":container.program(6, data, 0),"inverse":container.noop,"data":data,"loc":{"start":{"line":18,"column":0},"end":{"line":20,"column":9}}})) != null ? stack1 : ""); +},"6":function(container,depth0,helpers,partials,data) { + var stack1, alias1=container.strict, alias2=container.lambda, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return "import { " + + ((stack1 = alias2(alias1(depth0, "name", {"start":{"line":19,"column":12},"end":{"line":19,"column":16}} ), depth0)) != null ? stack1 : "") + + ((stack1 = alias2(alias1(lookupProperty(data,"root"), "postfix", {"start":{"line":19,"column":22},"end":{"line":19,"column":35}} ), depth0)) != null ? stack1 : "") + + " } from './services/" + + ((stack1 = alias2(alias1(depth0, "name", {"start":{"line":19,"column":61},"end":{"line":19,"column":65}} ), depth0)) != null ? stack1 : "") + + ((stack1 = alias2(alias1(lookupProperty(data,"root"), "postfix", {"start":{"line":19,"column":71},"end":{"line":19,"column":84}} ), depth0)) != null ? stack1 : "") + + "';\n"; +},"8":function(container,depth0,helpers,partials,data) { + var stack1, alias1=container.strict, alias2=container.lambda, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return "@NgModule({\n imports: [HttpClientModule],\n providers: [\n {\n provide: OpenAPI,\n useValue: {\n BASE: OpenAPI?.BASE ?? '" + + ((stack1 = alias2(alias1(depth0, "server", {"start":{"line":30,"column":31},"end":{"line":30,"column":37}} ), depth0)) != null ? stack1 : "") + + "',\n VERSION: OpenAPI?.VERSION ?? '" + + ((stack1 = alias2(alias1(depth0, "version", {"start":{"line":31,"column":37},"end":{"line":31,"column":44}} ), depth0)) != null ? stack1 : "") + + "',\n WITH_CREDENTIALS: OpenAPI?.WITH_CREDENTIALS ?? false,\n CREDENTIALS: OpenAPI?.CREDENTIALS ?? 'include',\n TOKEN: OpenAPI?.TOKEN,\n USERNAME: OpenAPI?.USERNAME,\n PASSWORD: OpenAPI?.PASSWORD,\n HEADERS: OpenAPI?.HEADERS,\n ENCODE_PATH: OpenAPI?.ENCODE_PATH,\n } as OpenAPIConfig,\n },\n {\n provide: BaseHttpRequest,\n useClass: AngularHttpRequest,\n },\n" + + ((stack1 = lookupProperty(helpers,"each").call(depth0 != null ? depth0 : (container.nullContext || {}),lookupProperty(depth0,"services"),{"name":"each","hash":{},"fn":container.program(9, data, 0),"inverse":container.noop,"data":data,"loc":{"start":{"line":45,"column":2},"end":{"line":47,"column":11}}})) != null ? stack1 : "") + + " ]\n})\nexport class " + + ((stack1 = alias2(alias1(depth0, "clientName", {"start":{"line":50,"column":16},"end":{"line":50,"column":26}} ), depth0)) != null ? stack1 : "") + + " {}\n"; +},"9":function(container,depth0,helpers,partials,data) { + var stack1, alias1=container.strict, alias2=container.lambda, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return " " + + ((stack1 = alias2(alias1(depth0, "name", {"start":{"line":46,"column":5},"end":{"line":46,"column":9}} ), depth0)) != null ? stack1 : "") + + ((stack1 = alias2(alias1(lookupProperty(data,"root"), "postfix", {"start":{"line":46,"column":15},"end":{"line":46,"column":28}} ), depth0)) != null ? stack1 : "") + + ",\n"; +},"11":function(container,depth0,helpers,partials,data) { + var stack1, alias1=container.strict, alias2=container.lambda, alias3=depth0 != null ? depth0 : (container.nullContext || {}), lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return "type HttpRequestConstructor = new (config: OpenAPIConfig) => BaseHttpRequest;\n\nexport class " + + ((stack1 = alias2(alias1(depth0, "clientName", {"start":{"line":54,"column":16},"end":{"line":54,"column":26}} ), depth0)) != null ? stack1 : "") + + " {\n\n" + + ((stack1 = lookupProperty(helpers,"each").call(alias3,lookupProperty(depth0,"services"),{"name":"each","hash":{},"fn":container.program(12, data, 0),"inverse":container.noop,"data":data,"loc":{"start":{"line":56,"column":1},"end":{"line":58,"column":10}}})) != null ? stack1 : "") + + "\n public readonly request: BaseHttpRequest;\n\n constructor(config?: Partial, HttpRequest: HttpRequestConstructor = " + + ((stack1 = alias2(alias1(depth0, "httpRequest", {"start":{"line":62,"column":87},"end":{"line":62,"column":98}} ), depth0)) != null ? stack1 : "") + + ") {\n this.request = new HttpRequest({\n BASE: config?.BASE ?? '" + + ((stack1 = alias2(alias1(depth0, "server", {"start":{"line":64,"column":29},"end":{"line":64,"column":35}} ), depth0)) != null ? stack1 : "") + + "',\n VERSION: config?.VERSION ?? '" + + ((stack1 = alias2(alias1(depth0, "version", {"start":{"line":65,"column":35},"end":{"line":65,"column":42}} ), depth0)) != null ? stack1 : "") + + "',\n WITH_CREDENTIALS: config?.WITH_CREDENTIALS ?? false,\n CREDENTIALS: config?.CREDENTIALS ?? 'include',\n TOKEN: config?.TOKEN,\n USERNAME: config?.USERNAME,\n PASSWORD: config?.PASSWORD,\n HEADERS: config?.HEADERS,\n ENCODE_PATH: config?.ENCODE_PATH,\n });\n\n" + + ((stack1 = lookupProperty(helpers,"each").call(alias3,lookupProperty(depth0,"services"),{"name":"each","hash":{},"fn":container.program(14, data, 0),"inverse":container.noop,"data":data,"loc":{"start":{"line":75,"column":2},"end":{"line":77,"column":11}}})) != null ? stack1 : "") + + " }\n}\n"; +},"12":function(container,depth0,helpers,partials,data) { + var stack1, alias1=container.strict, alias2=container.lambda, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return " public readonly " + + ((stack1 = lookupProperty(helpers,"camelCase").call(depth0 != null ? depth0 : (container.nullContext || {}),lookupProperty(depth0,"name"),{"name":"camelCase","hash":{},"data":data,"loc":{"start":{"line":57,"column":17},"end":{"line":57,"column":37}}})) != null ? stack1 : "") + + ": " + + ((stack1 = alias2(alias1(depth0, "name", {"start":{"line":57,"column":42},"end":{"line":57,"column":46}} ), depth0)) != null ? stack1 : "") + + ((stack1 = alias2(alias1(lookupProperty(data,"root"), "postfix", {"start":{"line":57,"column":52},"end":{"line":57,"column":65}} ), depth0)) != null ? stack1 : "") + + ";\n"; +},"14":function(container,depth0,helpers,partials,data) { + var stack1, alias1=container.strict, alias2=container.lambda, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return " this." + + ((stack1 = lookupProperty(helpers,"camelCase").call(depth0 != null ? depth0 : (container.nullContext || {}),lookupProperty(depth0,"name"),{"name":"camelCase","hash":{},"data":data,"loc":{"start":{"line":76,"column":7},"end":{"line":76,"column":27}}})) != null ? stack1 : "") + + " = new " + + ((stack1 = alias2(alias1(depth0, "name", {"start":{"line":76,"column":37},"end":{"line":76,"column":41}} ), depth0)) != null ? stack1 : "") + + ((stack1 = alias2(alias1(lookupProperty(data,"root"), "postfix", {"start":{"line":76,"column":47},"end":{"line":76,"column":60}} ), depth0)) != null ? stack1 : "") + + "(this.request);\n"; +},"compiler":[8,">= 4.3.0"],"main":function(container,depth0,helpers,partials,data) { + var stack1, alias1=depth0 != null ? depth0 : (container.nullContext || {}), lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return ((stack1 = container.invokePartial(lookupProperty(partials,"header"),depth0,{"name":"header","data":data,"helpers":helpers,"partials":partials,"decorators":container.decorators})) != null ? stack1 : "") + + "\n" + + ((stack1 = lookupProperty(helpers,"equals").call(alias1,lookupProperty(lookupProperty(data,"root"),"httpClient"),"angular",{"name":"equals","hash":{},"fn":container.program(1, data, 0),"inverse":container.program(3, data, 0),"data":data,"loc":{"start":{"line":3,"column":0},"end":{"line":15,"column":11}}})) != null ? stack1 : "") + + "\n" + + ((stack1 = lookupProperty(helpers,"if").call(alias1,lookupProperty(depth0,"services"),{"name":"if","hash":{},"fn":container.program(5, data, 0),"inverse":container.noop,"data":data,"loc":{"start":{"line":17,"column":0},"end":{"line":21,"column":7}}})) != null ? stack1 : "") + + "\n" + + ((stack1 = lookupProperty(helpers,"equals").call(alias1,lookupProperty(lookupProperty(data,"root"),"httpClient"),"angular",{"name":"equals","hash":{},"fn":container.program(8, data, 0),"inverse":container.program(11, data, 0),"data":data,"loc":{"start":{"line":23,"column":0},"end":{"line":80,"column":11}}})) != null ? stack1 : ""); +},"usePartial":true,"useData":true}; + +var angularGetHeaders = {"compiler":[8,">= 4.3.0"],"main":function(container,depth0,helpers,partials,data) { + return "const getHeaders = (config: OpenAPIConfig, options: ApiRequestOptions): Observable => {\n return forkJoin({\n token: resolve(options, config.TOKEN),\n username: resolve(options, config.USERNAME),\n password: resolve(options, config.PASSWORD),\n additionalHeaders: resolve(options, config.HEADERS),\n }).pipe(\n map(({ token, username, password, additionalHeaders }) => {\n const headers = Object.entries({\n Accept: 'application/json',\n ...additionalHeaders,\n ...options.headers,\n })\n .filter(([_, value]) => isDefined(value))\n .reduce((headers, [key, value]) => ({\n ...headers,\n [key]: String(value),\n }), {} as Record);\n\n if (isStringWithValue(token)) {\n headers['Authorization'] = `Bearer ${token}`;\n }\n\n if (isStringWithValue(username) && isStringWithValue(password)) {\n const credentials = base64(`${username}:${password}`);\n headers['Authorization'] = `Basic ${credentials}`;\n }\n\n if (options.body) {\n if (options.mediaType) {\n headers['Content-Type'] = options.mediaType;\n } else if (isBlob(options.body)) {\n headers['Content-Type'] = options.body.type || 'application/octet-stream';\n } else if (isString(options.body)) {\n headers['Content-Type'] = 'text/plain';\n } else if (!isFormData(options.body)) {\n headers['Content-Type'] = 'application/json';\n }\n }\n\n return new HttpHeaders(headers);\n }),\n );\n};"; +},"useData":true}; + +var angularGetRequestBody = {"compiler":[8,">= 4.3.0"],"main":function(container,depth0,helpers,partials,data) { + return "const getRequestBody = (options: ApiRequestOptions): any => {\n if (options.body) {\n if (options.mediaType?.includes('/json')) {\n return JSON.stringify(options.body)\n } else if (isString(options.body) || isBlob(options.body) || isFormData(options.body)) {\n return options.body;\n } else {\n return JSON.stringify(options.body);\n }\n }\n return undefined;\n};"; +},"useData":true}; + +var angularGetResponseBody = {"compiler":[8,">= 4.3.0"],"main":function(container,depth0,helpers,partials,data) { + return "const getResponseBody = (response: HttpResponse): T | undefined => {\n if (response.status !== 204 && response.body !== null) {\n return response.body;\n }\n return undefined;\n};"; +},"useData":true}; + +var angularGetResponseHeader = {"compiler":[8,">= 4.3.0"],"main":function(container,depth0,helpers,partials,data) { + return "const getResponseHeader = (response: HttpResponse, responseHeader?: string): string | undefined => {\n if (responseHeader) {\n const value = response.headers.get(responseHeader);\n if (isString(value)) {\n return value;\n }\n }\n return undefined;\n};"; +},"useData":true}; + +var angularRequest = {"compiler":[8,">= 4.3.0"],"main":function(container,depth0,helpers,partials,data) { + var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return ((stack1 = container.invokePartial(lookupProperty(partials,"header"),depth0,{"name":"header","data":data,"helpers":helpers,"partials":partials,"decorators":container.decorators})) != null ? stack1 : "") + + "\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\nimport type { HttpResponse, HttpErrorResponse } from '@angular/common/http';\nimport { forkJoin, of, throwError } from 'rxjs';\nimport { catchError, map, switchMap } from 'rxjs/operators';\nimport type { Observable } from 'rxjs';\n\nimport { ApiError } from './ApiError';\nimport type { ApiRequestOptions } from './ApiRequestOptions';\nimport type { ApiResult } from './ApiResult';\nimport type { OpenAPIConfig } from './OpenAPI';\n\n" + + ((stack1 = container.invokePartial(lookupProperty(partials,"functions/isDefined"),depth0,{"name":"functions/isDefined","data":data,"helpers":helpers,"partials":partials,"decorators":container.decorators})) != null ? stack1 : "") + + "\n\n" + + ((stack1 = container.invokePartial(lookupProperty(partials,"functions/isString"),depth0,{"name":"functions/isString","data":data,"helpers":helpers,"partials":partials,"decorators":container.decorators})) != null ? stack1 : "") + + "\n\n" + + ((stack1 = container.invokePartial(lookupProperty(partials,"functions/isStringWithValue"),depth0,{"name":"functions/isStringWithValue","data":data,"helpers":helpers,"partials":partials,"decorators":container.decorators})) != null ? stack1 : "") + + "\n\n" + + ((stack1 = container.invokePartial(lookupProperty(partials,"functions/isBlob"),depth0,{"name":"functions/isBlob","data":data,"helpers":helpers,"partials":partials,"decorators":container.decorators})) != null ? stack1 : "") + + "\n\n" + + ((stack1 = container.invokePartial(lookupProperty(partials,"functions/isFormData"),depth0,{"name":"functions/isFormData","data":data,"helpers":helpers,"partials":partials,"decorators":container.decorators})) != null ? stack1 : "") + + "\n\n" + + ((stack1 = container.invokePartial(lookupProperty(partials,"functions/base64"),depth0,{"name":"functions/base64","data":data,"helpers":helpers,"partials":partials,"decorators":container.decorators})) != null ? stack1 : "") + + "\n\n" + + ((stack1 = container.invokePartial(lookupProperty(partials,"functions/getQueryString"),depth0,{"name":"functions/getQueryString","data":data,"helpers":helpers,"partials":partials,"decorators":container.decorators})) != null ? stack1 : "") + + "\n\n" + + ((stack1 = container.invokePartial(lookupProperty(partials,"functions/getUrl"),depth0,{"name":"functions/getUrl","data":data,"helpers":helpers,"partials":partials,"decorators":container.decorators})) != null ? stack1 : "") + + "\n\n" + + ((stack1 = container.invokePartial(lookupProperty(partials,"functions/getFormData"),depth0,{"name":"functions/getFormData","data":data,"helpers":helpers,"partials":partials,"decorators":container.decorators})) != null ? stack1 : "") + + "\n\n" + + ((stack1 = container.invokePartial(lookupProperty(partials,"functions/resolve"),depth0,{"name":"functions/resolve","data":data,"helpers":helpers,"partials":partials,"decorators":container.decorators})) != null ? stack1 : "") + + "\n\n" + + ((stack1 = container.invokePartial(lookupProperty(partials,"angular/getHeaders"),depth0,{"name":"angular/getHeaders","data":data,"helpers":helpers,"partials":partials,"decorators":container.decorators})) != null ? stack1 : "") + + "\n\n" + + ((stack1 = container.invokePartial(lookupProperty(partials,"angular/getRequestBody"),depth0,{"name":"angular/getRequestBody","data":data,"helpers":helpers,"partials":partials,"decorators":container.decorators})) != null ? stack1 : "") + + "\n\n" + + ((stack1 = container.invokePartial(lookupProperty(partials,"angular/sendRequest"),depth0,{"name":"angular/sendRequest","data":data,"helpers":helpers,"partials":partials,"decorators":container.decorators})) != null ? stack1 : "") + + "\n\n" + + ((stack1 = container.invokePartial(lookupProperty(partials,"angular/getResponseHeader"),depth0,{"name":"angular/getResponseHeader","data":data,"helpers":helpers,"partials":partials,"decorators":container.decorators})) != null ? stack1 : "") + + "\n\n" + + ((stack1 = container.invokePartial(lookupProperty(partials,"angular/getResponseBody"),depth0,{"name":"angular/getResponseBody","data":data,"helpers":helpers,"partials":partials,"decorators":container.decorators})) != null ? stack1 : "") + + "\n\n" + + ((stack1 = container.invokePartial(lookupProperty(partials,"functions/catchErrorCodes"),depth0,{"name":"functions/catchErrorCodes","data":data,"helpers":helpers,"partials":partials,"decorators":container.decorators})) != null ? stack1 : "") + + "\n\n/**\n * Request method\n * @param config The OpenAPI configuration object\n * @param http The Angular HTTP client\n * @param options The request options from the service\n * @returns Observable\n * @throws ApiError\n */\nexport const request = (config: OpenAPIConfig, http: HttpClient, options: ApiRequestOptions): Observable => {\n const url = getUrl(config, options);\n const formData = getFormData(options);\n const body = getRequestBody(options);\n\n return getHeaders(config, options).pipe(\n switchMap(headers => {\n return sendRequest(config, options, http, url, formData, body, headers);\n }),\n map(response => {\n const responseBody = getResponseBody(response);\n const responseHeader = getResponseHeader(response, options.responseHeader);\n return {\n url,\n ok: response.ok,\n status: response.status,\n statusText: response.statusText,\n body: responseHeader ?? responseBody,\n } as ApiResult;\n }),\n catchError((error: HttpErrorResponse) => {\n if (!error.status) {\n return throwError(error);\n }\n return of({\n url,\n ok: error.ok,\n status: error.status,\n statusText: error.statusText,\n body: error.error ?? error.statusText,\n } as ApiResult);\n }),\n map(result => {\n catchErrorCodes(options, result);\n return result.body as T;\n }),\n catchError((error: ApiError) => {\n return throwError(error);\n }),\n );\n};"; +},"usePartial":true,"useData":true}; + +var angularSendRequest = {"compiler":[8,">= 4.3.0"],"main":function(container,depth0,helpers,partials,data) { + return "export const sendRequest = (\n config: OpenAPIConfig,\n options: ApiRequestOptions,\n http: HttpClient,\n url: string,\n body: any,\n formData: FormData | undefined,\n headers: HttpHeaders\n): Observable> => {\n return http.request(options.method, url, {\n headers,\n body: body ?? formData,\n withCredentials: config.WITH_CREDENTIALS,\n observe: 'response',\n });\n};"; +},"useData":true}; + +var templateCoreApiError = {"compiler":[8,">= 4.3.0"],"main":function(container,depth0,helpers,partials,data) { + var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return ((stack1 = container.invokePartial(lookupProperty(partials,"header"),depth0,{"name":"header","data":data,"helpers":helpers,"partials":partials,"decorators":container.decorators})) != null ? stack1 : "") + + "\nimport type { ApiRequestOptions } from './ApiRequestOptions';\nimport type { ApiResult } from './ApiResult';\n\nexport class ApiError extends Error {\n public readonly url: string;\n public readonly status: number;\n public readonly statusText: string;\n public readonly body: any;\n public readonly request: ApiRequestOptions;\n\n constructor(request: ApiRequestOptions, response: ApiResult, message: string) {\n super(message);\n\n this.name = 'ApiError';\n this.url = response.url;\n this.status = response.status;\n this.statusText = response.statusText;\n this.body = response.body;\n this.request = request;\n }\n}"; +},"usePartial":true,"useData":true}; + +var templateCoreApiRequestOptions = {"compiler":[8,">= 4.3.0"],"main":function(container,depth0,helpers,partials,data) { + var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return ((stack1 = container.invokePartial(lookupProperty(partials,"header"),depth0,{"name":"header","data":data,"helpers":helpers,"partials":partials,"decorators":container.decorators})) != null ? stack1 : "") + + "\nexport type ApiRequestOptions = {\n readonly method: 'GET' | 'PUT' | 'POST' | 'DELETE' | 'OPTIONS' | 'HEAD' | 'PATCH';\n readonly url: string;\n readonly path?: Record;\n readonly cookies?: Record;\n readonly headers?: Record;\n readonly query?: Record;\n readonly formData?: Record;\n readonly body?: any;\n readonly mediaType?: string;\n readonly responseHeader?: string;\n readonly errors?: Record;\n};"; +},"usePartial":true,"useData":true}; + +var templateCoreApiResult = {"compiler":[8,">= 4.3.0"],"main":function(container,depth0,helpers,partials,data) { + var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return ((stack1 = container.invokePartial(lookupProperty(partials,"header"),depth0,{"name":"header","data":data,"helpers":helpers,"partials":partials,"decorators":container.decorators})) != null ? stack1 : "") + + "\nexport type ApiResult = {\n readonly url: string;\n readonly ok: boolean;\n readonly status: number;\n readonly statusText: string;\n readonly body: any;\n};"; +},"usePartial":true,"useData":true}; + +var axiosGetHeaders = {"compiler":[8,">= 4.3.0"],"main":function(container,depth0,helpers,partials,data) { + return "const getHeaders = async (config: OpenAPIConfig, options: ApiRequestOptions, formData?: FormData): Promise> => {\n const token = await resolve(options, config.TOKEN);\n const username = await resolve(options, config.USERNAME);\n const password = await resolve(options, config.PASSWORD);\n const additionalHeaders = await resolve(options, config.HEADERS);\n const formHeaders = typeof formData?.getHeaders === 'function' && formData?.getHeaders() || {}\n\n const headers = Object.entries({\n Accept: 'application/json',\n ...additionalHeaders,\n ...options.headers,\n ...formHeaders,\n })\n .filter(([_, value]) => isDefined(value))\n .reduce((headers, [key, value]) => ({\n ...headers,\n [key]: String(value),\n }), {} as Record);\n\n if (isStringWithValue(token)) {\n headers['Authorization'] = `Bearer ${token}`;\n }\n\n if (isStringWithValue(username) && isStringWithValue(password)) {\n const credentials = base64(`${username}:${password}`);\n headers['Authorization'] = `Basic ${credentials}`;\n }\n\n if (options.body) {\n if (options.mediaType) {\n headers['Content-Type'] = options.mediaType;\n } else if (isBlob(options.body)) {\n headers['Content-Type'] = options.body.type || 'application/octet-stream';\n } else if (isString(options.body)) {\n headers['Content-Type'] = 'text/plain';\n } else if (!isFormData(options.body)) {\n headers['Content-Type'] = 'application/json';\n }\n }\n\n return headers;\n};"; +},"useData":true}; + +var axiosGetRequestBody = {"compiler":[8,">= 4.3.0"],"main":function(container,depth0,helpers,partials,data) { + return "const getRequestBody = (options: ApiRequestOptions): any => {\n if (options.body) {\n return options.body;\n }\n return undefined;\n};"; +},"useData":true}; + +var axiosGetResponseBody = {"compiler":[8,">= 4.3.0"],"main":function(container,depth0,helpers,partials,data) { + return "const getResponseBody = (response: AxiosResponse): any => {\n if (response.status !== 204) {\n return response.data;\n }\n return undefined;\n};"; +},"useData":true}; + +var axiosGetResponseHeader = {"compiler":[8,">= 4.3.0"],"main":function(container,depth0,helpers,partials,data) { + return "const getResponseHeader = (response: AxiosResponse, responseHeader?: string): string | undefined => {\n if (responseHeader) {\n const content = response.headers[responseHeader];\n if (isString(content)) {\n return content;\n }\n }\n return undefined;\n};"; +},"useData":true}; + +var axiosRequest = {"compiler":[8,">= 4.3.0"],"main":function(container,depth0,helpers,partials,data) { + var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return ((stack1 = container.invokePartial(lookupProperty(partials,"header"),depth0,{"name":"header","data":data,"helpers":helpers,"partials":partials,"decorators":container.decorators})) != null ? stack1 : "") + + "\nimport axios from 'axios';\nimport type { AxiosError, AxiosRequestConfig, AxiosResponse } from 'axios';\nimport FormData from 'form-data';\n\nimport { ApiError } from './ApiError';\nimport type { ApiRequestOptions } from './ApiRequestOptions';\nimport type { ApiResult } from './ApiResult';\nimport { CancelablePromise } from './CancelablePromise';\nimport type { OnCancel } from './CancelablePromise';\nimport type { OpenAPIConfig } from './OpenAPI';\n\n" + + ((stack1 = container.invokePartial(lookupProperty(partials,"functions/isDefined"),depth0,{"name":"functions/isDefined","data":data,"helpers":helpers,"partials":partials,"decorators":container.decorators})) != null ? stack1 : "") + + "\n\n" + + ((stack1 = container.invokePartial(lookupProperty(partials,"functions/isString"),depth0,{"name":"functions/isString","data":data,"helpers":helpers,"partials":partials,"decorators":container.decorators})) != null ? stack1 : "") + + "\n\n" + + ((stack1 = container.invokePartial(lookupProperty(partials,"functions/isStringWithValue"),depth0,{"name":"functions/isStringWithValue","data":data,"helpers":helpers,"partials":partials,"decorators":container.decorators})) != null ? stack1 : "") + + "\n\n" + + ((stack1 = container.invokePartial(lookupProperty(partials,"functions/isBlob"),depth0,{"name":"functions/isBlob","data":data,"helpers":helpers,"partials":partials,"decorators":container.decorators})) != null ? stack1 : "") + + "\n\n" + + ((stack1 = container.invokePartial(lookupProperty(partials,"functions/isFormData"),depth0,{"name":"functions/isFormData","data":data,"helpers":helpers,"partials":partials,"decorators":container.decorators})) != null ? stack1 : "") + + "\n\n" + + ((stack1 = container.invokePartial(lookupProperty(partials,"functions/isSuccess"),depth0,{"name":"functions/isSuccess","data":data,"helpers":helpers,"partials":partials,"decorators":container.decorators})) != null ? stack1 : "") + + "\n\n" + + ((stack1 = container.invokePartial(lookupProperty(partials,"functions/base64"),depth0,{"name":"functions/base64","data":data,"helpers":helpers,"partials":partials,"decorators":container.decorators})) != null ? stack1 : "") + + "\n\n" + + ((stack1 = container.invokePartial(lookupProperty(partials,"functions/getQueryString"),depth0,{"name":"functions/getQueryString","data":data,"helpers":helpers,"partials":partials,"decorators":container.decorators})) != null ? stack1 : "") + + "\n\n" + + ((stack1 = container.invokePartial(lookupProperty(partials,"functions/getUrl"),depth0,{"name":"functions/getUrl","data":data,"helpers":helpers,"partials":partials,"decorators":container.decorators})) != null ? stack1 : "") + + "\n\n" + + ((stack1 = container.invokePartial(lookupProperty(partials,"functions/getFormData"),depth0,{"name":"functions/getFormData","data":data,"helpers":helpers,"partials":partials,"decorators":container.decorators})) != null ? stack1 : "") + + "\n\n" + + ((stack1 = container.invokePartial(lookupProperty(partials,"functions/resolve"),depth0,{"name":"functions/resolve","data":data,"helpers":helpers,"partials":partials,"decorators":container.decorators})) != null ? stack1 : "") + + "\n\n" + + ((stack1 = container.invokePartial(lookupProperty(partials,"axios/getHeaders"),depth0,{"name":"axios/getHeaders","data":data,"helpers":helpers,"partials":partials,"decorators":container.decorators})) != null ? stack1 : "") + + "\n\n" + + ((stack1 = container.invokePartial(lookupProperty(partials,"axios/getRequestBody"),depth0,{"name":"axios/getRequestBody","data":data,"helpers":helpers,"partials":partials,"decorators":container.decorators})) != null ? stack1 : "") + + "\n\n" + + ((stack1 = container.invokePartial(lookupProperty(partials,"axios/sendRequest"),depth0,{"name":"axios/sendRequest","data":data,"helpers":helpers,"partials":partials,"decorators":container.decorators})) != null ? stack1 : "") + + "\n\n" + + ((stack1 = container.invokePartial(lookupProperty(partials,"axios/getResponseHeader"),depth0,{"name":"axios/getResponseHeader","data":data,"helpers":helpers,"partials":partials,"decorators":container.decorators})) != null ? stack1 : "") + + "\n\n" + + ((stack1 = container.invokePartial(lookupProperty(partials,"axios/getResponseBody"),depth0,{"name":"axios/getResponseBody","data":data,"helpers":helpers,"partials":partials,"decorators":container.decorators})) != null ? stack1 : "") + + "\n\n" + + ((stack1 = container.invokePartial(lookupProperty(partials,"functions/catchErrorCodes"),depth0,{"name":"functions/catchErrorCodes","data":data,"helpers":helpers,"partials":partials,"decorators":container.decorators})) != null ? stack1 : "") + + "\n\n/**\n * Request method\n * @param config The OpenAPI configuration object\n * @param options The request options from the service\n * @returns CancelablePromise\n * @throws ApiError\n */\nexport const request = (config: OpenAPIConfig, options: ApiRequestOptions): CancelablePromise => {\n return new CancelablePromise(async (resolve, reject, onCancel) => {\n try {\n const url = getUrl(config, options);\n const formData = getFormData(options);\n const body = getRequestBody(options);\n const headers = await getHeaders(config, options, formData);\n\n if (!onCancel.isCancelled) {\n const response = await sendRequest(config, options, url, body, formData, headers, onCancel);\n const responseBody = getResponseBody(response);\n const responseHeader = getResponseHeader(response, options.responseHeader);\n\n const result: ApiResult = {\n url,\n ok: isSuccess(response.status),\n status: response.status,\n statusText: response.statusText,\n body: responseHeader ?? responseBody,\n };\n\n catchErrorCodes(options, result);\n\n resolve(result.body);\n }\n } catch (error) {\n reject(error);\n }\n });\n};"; +},"usePartial":true,"useData":true}; + +var axiosSendRequest = {"compiler":[8,">= 4.3.0"],"main":function(container,depth0,helpers,partials,data) { + return "const sendRequest = async (\n config: OpenAPIConfig,\n options: ApiRequestOptions,\n url: string,\n body: any,\n formData: FormData | undefined,\n headers: Record,\n onCancel: OnCancel\n): Promise> => {\n const source = axios.CancelToken.source();\n\n const requestConfig: AxiosRequestConfig = {\n url,\n headers,\n data: body ?? formData,\n method: options.method,\n withCredentials: config.WITH_CREDENTIALS,\n cancelToken: source.token,\n };\n\n onCancel(() => source.cancel('The user aborted a request.'));\n\n try {\n return await axios.request(requestConfig);\n } catch (error) {\n const axiosError = error as AxiosError;\n if (axiosError.response) {\n return axiosError.response;\n }\n throw error;\n }\n};"; +},"useData":true}; + +var templateCoreBaseHttpRequest = {"1":function(container,depth0,helpers,partials,data) { + return "import type { HttpClient } from '@angular/common/http';\nimport type { Observable } from 'rxjs';\n\nimport type { ApiRequestOptions } from './ApiRequestOptions';\nimport type { OpenAPIConfig } from './OpenAPI';\n"; +},"3":function(container,depth0,helpers,partials,data) { + return "import type { ApiRequestOptions } from './ApiRequestOptions';\nimport type { CancelablePromise } from './CancelablePromise';\nimport type { OpenAPIConfig } from './OpenAPI';\n"; +},"5":function(container,depth0,helpers,partials,data) { + return " constructor(\n public readonly config: OpenAPIConfig,\n public readonly http: HttpClient,\n ) {}\n"; +},"7":function(container,depth0,helpers,partials,data) { + return " constructor(public readonly config: OpenAPIConfig) {}\n"; +},"9":function(container,depth0,helpers,partials,data) { + return " public abstract request(options: ApiRequestOptions): Observable;\n"; +},"11":function(container,depth0,helpers,partials,data) { + return " public abstract request(options: ApiRequestOptions): CancelablePromise;\n"; +},"compiler":[8,">= 4.3.0"],"main":function(container,depth0,helpers,partials,data) { + var stack1, alias1=depth0 != null ? depth0 : (container.nullContext || {}), lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return ((stack1 = container.invokePartial(lookupProperty(partials,"header"),depth0,{"name":"header","data":data,"helpers":helpers,"partials":partials,"decorators":container.decorators})) != null ? stack1 : "") + + "\n" + + ((stack1 = lookupProperty(helpers,"equals").call(alias1,lookupProperty(lookupProperty(data,"root"),"httpClient"),"angular",{"name":"equals","hash":{},"fn":container.program(1, data, 0),"inverse":container.program(3, data, 0),"data":data,"loc":{"start":{"line":3,"column":0},"end":{"line":13,"column":11}}})) != null ? stack1 : "") + + "\nexport abstract class BaseHttpRequest {\n\n" + + ((stack1 = lookupProperty(helpers,"equals").call(alias1,lookupProperty(lookupProperty(data,"root"),"httpClient"),"angular",{"name":"equals","hash":{},"fn":container.program(5, data, 0),"inverse":container.program(7, data, 0),"data":data,"loc":{"start":{"line":17,"column":1},"end":{"line":24,"column":12}}})) != null ? stack1 : "") + + "\n" + + ((stack1 = lookupProperty(helpers,"equals").call(alias1,lookupProperty(lookupProperty(data,"root"),"httpClient"),"angular",{"name":"equals","hash":{},"fn":container.program(9, data, 0),"inverse":container.program(11, data, 0),"data":data,"loc":{"start":{"line":26,"column":1},"end":{"line":30,"column":12}}})) != null ? stack1 : "") + + "}"; +},"usePartial":true,"useData":true}; + +var templateCancelablePromise = {"compiler":[8,">= 4.3.0"],"main":function(container,depth0,helpers,partials,data) { + var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return ((stack1 = container.invokePartial(lookupProperty(partials,"header"),depth0,{"name":"header","data":data,"helpers":helpers,"partials":partials,"decorators":container.decorators})) != null ? stack1 : "") + + "\nexport class CancelError extends Error {\n\n constructor(message: string) {\n super(message);\n this.name = 'CancelError';\n }\n\n public get isCancelled(): boolean {\n return true;\n }\n}\n\nexport interface OnCancel {\n readonly isResolved: boolean;\n readonly isRejected: boolean;\n readonly isCancelled: boolean;\n\n (cancelHandler: () => void): void;\n}\n\nexport class CancelablePromise implements Promise {\n readonly [Symbol.toStringTag]!: string;\n\n private _isResolved: boolean;\n private _isRejected: boolean;\n private _isCancelled: boolean;\n private readonly _cancelHandlers: (() => void)[];\n private readonly _promise: Promise;\n private _resolve?: (value: T | PromiseLike) => void;\n private _reject?: (reason?: any) => void;\n\n constructor(\n executor: (\n resolve: (value: T | PromiseLike) => void,\n reject: (reason?: any) => void,\n onCancel: OnCancel\n ) => void\n ) {\n this._isResolved = false;\n this._isRejected = false;\n this._isCancelled = false;\n this._cancelHandlers = [];\n this._promise = new Promise((resolve, reject) => {\n this._resolve = resolve;\n this._reject = reject;\n\n const onResolve = (value: T | PromiseLike): void => {\n if (this._isResolved || this._isRejected || this._isCancelled) {\n return;\n }\n this._isResolved = true;\n this._resolve?.(value);\n };\n\n const onReject = (reason?: any): void => {\n if (this._isResolved || this._isRejected || this._isCancelled) {\n return;\n }\n this._isRejected = true;\n this._reject?.(reason);\n };\n\n const onCancel = (cancelHandler: () => void): void => {\n if (this._isResolved || this._isRejected || this._isCancelled) {\n return;\n }\n this._cancelHandlers.push(cancelHandler);\n };\n\n Object.defineProperty(onCancel, 'isResolved', {\n get: (): boolean => this._isResolved,\n });\n\n Object.defineProperty(onCancel, 'isRejected', {\n get: (): boolean => this._isRejected,\n });\n\n Object.defineProperty(onCancel, 'isCancelled', {\n get: (): boolean => this._isCancelled,\n });\n\n return executor(onResolve, onReject, onCancel as OnCancel);\n });\n }\n\n public then(\n onFulfilled?: ((value: T) => TResult1 | PromiseLike) | null,\n onRejected?: ((reason: any) => TResult2 | PromiseLike) | null\n ): Promise {\n return this._promise.then(onFulfilled, onRejected);\n }\n\n public catch(\n onRejected?: ((reason: any) => TResult | PromiseLike) | null\n ): Promise {\n return this._promise.catch(onRejected);\n }\n\n public finally(onFinally?: (() => void) | null): Promise {\n return this._promise.finally(onFinally);\n }\n\n public cancel(): void {\n if (this._isResolved || this._isRejected || this._isCancelled) {\n return;\n }\n this._isCancelled = true;\n if (this._cancelHandlers.length) {\n try {\n for (const cancelHandler of this._cancelHandlers) {\n cancelHandler();\n }\n } catch (error) {\n console.warn('Cancellation threw an error', error);\n return;\n }\n }\n this._cancelHandlers.length = 0;\n this._reject?.(new CancelError('Request aborted'));\n }\n\n public get isCancelled(): boolean {\n return this._isCancelled;\n }\n}"; +},"usePartial":true,"useData":true}; + +var fetchGetHeaders = {"compiler":[8,">= 4.3.0"],"main":function(container,depth0,helpers,partials,data) { + return "const getHeaders = async (config: OpenAPIConfig, options: ApiRequestOptions): Promise => {\n const token = await resolve(options, config.TOKEN);\n const username = await resolve(options, config.USERNAME);\n const password = await resolve(options, config.PASSWORD);\n const additionalHeaders = await resolve(options, config.HEADERS);\n\n const headers = Object.entries({\n Accept: 'application/json',\n ...additionalHeaders,\n ...options.headers,\n })\n .filter(([_, value]) => isDefined(value))\n .reduce((headers, [key, value]) => ({\n ...headers,\n [key]: String(value),\n }), {} as Record);\n\n if (isStringWithValue(token)) {\n headers['Authorization'] = `Bearer ${token}`;\n }\n\n if (isStringWithValue(username) && isStringWithValue(password)) {\n const credentials = base64(`${username}:${password}`);\n headers['Authorization'] = `Basic ${credentials}`;\n }\n\n if (options.body) {\n if (options.mediaType) {\n headers['Content-Type'] = options.mediaType;\n } else if (isBlob(options.body)) {\n headers['Content-Type'] = options.body.type || 'application/octet-stream';\n } else if (isString(options.body)) {\n headers['Content-Type'] = 'text/plain';\n } else if (!isFormData(options.body)) {\n headers['Content-Type'] = 'application/json';\n }\n }\n\n return new Headers(headers);\n};"; +},"useData":true}; + +var fetchGetRequestBody = {"compiler":[8,">= 4.3.0"],"main":function(container,depth0,helpers,partials,data) { + return "const getRequestBody = (options: ApiRequestOptions): any => {\n if (options.body !== undefined) {\n if (options.mediaType?.includes('/json')) {\n return JSON.stringify(options.body)\n } else if (isString(options.body) || isBlob(options.body) || isFormData(options.body)) {\n return options.body;\n } else {\n return JSON.stringify(options.body);\n }\n }\n return undefined;\n};"; +},"useData":true}; + +var fetchGetResponseBody = {"compiler":[8,">= 4.3.0"],"main":function(container,depth0,helpers,partials,data) { + return "const getResponseBody = async (response: Response): Promise => {\n if (response.status !== 204) {\n try {\n const contentType = response.headers.get('Content-Type');\n if (contentType) {\n const isJSON = contentType.toLowerCase().startsWith('application/json');\n if (isJSON) {\n return await response.json();\n } else {\n return await response.text();\n }\n }\n } catch (error) {\n console.error(error);\n }\n }\n return undefined;\n};"; +},"useData":true}; + +var fetchGetResponseHeader = {"compiler":[8,">= 4.3.0"],"main":function(container,depth0,helpers,partials,data) { + return "const getResponseHeader = (response: Response, responseHeader?: string): string | undefined => {\n if (responseHeader) {\n const content = response.headers.get(responseHeader);\n if (isString(content)) {\n return content;\n }\n }\n return undefined;\n};"; +},"useData":true}; + +var fetchRequest = {"compiler":[8,">= 4.3.0"],"main":function(container,depth0,helpers,partials,data) { + var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return ((stack1 = container.invokePartial(lookupProperty(partials,"header"),depth0,{"name":"header","data":data,"helpers":helpers,"partials":partials,"decorators":container.decorators})) != null ? stack1 : "") + + "\nimport { ApiError } from './ApiError';\nimport type { ApiRequestOptions } from './ApiRequestOptions';\nimport type { ApiResult } from './ApiResult';\nimport { CancelablePromise } from './CancelablePromise';\nimport type { OnCancel } from './CancelablePromise';\nimport type { OpenAPIConfig } from './OpenAPI';\n\n" + + ((stack1 = container.invokePartial(lookupProperty(partials,"functions/isDefined"),depth0,{"name":"functions/isDefined","data":data,"helpers":helpers,"partials":partials,"decorators":container.decorators})) != null ? stack1 : "") + + "\n\n" + + ((stack1 = container.invokePartial(lookupProperty(partials,"functions/isString"),depth0,{"name":"functions/isString","data":data,"helpers":helpers,"partials":partials,"decorators":container.decorators})) != null ? stack1 : "") + + "\n\n" + + ((stack1 = container.invokePartial(lookupProperty(partials,"functions/isStringWithValue"),depth0,{"name":"functions/isStringWithValue","data":data,"helpers":helpers,"partials":partials,"decorators":container.decorators})) != null ? stack1 : "") + + "\n\n" + + ((stack1 = container.invokePartial(lookupProperty(partials,"functions/isBlob"),depth0,{"name":"functions/isBlob","data":data,"helpers":helpers,"partials":partials,"decorators":container.decorators})) != null ? stack1 : "") + + "\n\n" + + ((stack1 = container.invokePartial(lookupProperty(partials,"functions/isFormData"),depth0,{"name":"functions/isFormData","data":data,"helpers":helpers,"partials":partials,"decorators":container.decorators})) != null ? stack1 : "") + + "\n\n" + + ((stack1 = container.invokePartial(lookupProperty(partials,"functions/base64"),depth0,{"name":"functions/base64","data":data,"helpers":helpers,"partials":partials,"decorators":container.decorators})) != null ? stack1 : "") + + "\n\n" + + ((stack1 = container.invokePartial(lookupProperty(partials,"functions/getQueryString"),depth0,{"name":"functions/getQueryString","data":data,"helpers":helpers,"partials":partials,"decorators":container.decorators})) != null ? stack1 : "") + + "\n\n" + + ((stack1 = container.invokePartial(lookupProperty(partials,"functions/getUrl"),depth0,{"name":"functions/getUrl","data":data,"helpers":helpers,"partials":partials,"decorators":container.decorators})) != null ? stack1 : "") + + "\n\n" + + ((stack1 = container.invokePartial(lookupProperty(partials,"functions/getFormData"),depth0,{"name":"functions/getFormData","data":data,"helpers":helpers,"partials":partials,"decorators":container.decorators})) != null ? stack1 : "") + + "\n\n" + + ((stack1 = container.invokePartial(lookupProperty(partials,"functions/resolve"),depth0,{"name":"functions/resolve","data":data,"helpers":helpers,"partials":partials,"decorators":container.decorators})) != null ? stack1 : "") + + "\n\n" + + ((stack1 = container.invokePartial(lookupProperty(partials,"fetch/getHeaders"),depth0,{"name":"fetch/getHeaders","data":data,"helpers":helpers,"partials":partials,"decorators":container.decorators})) != null ? stack1 : "") + + "\n\n" + + ((stack1 = container.invokePartial(lookupProperty(partials,"fetch/getRequestBody"),depth0,{"name":"fetch/getRequestBody","data":data,"helpers":helpers,"partials":partials,"decorators":container.decorators})) != null ? stack1 : "") + + "\n\n" + + ((stack1 = container.invokePartial(lookupProperty(partials,"fetch/sendRequest"),depth0,{"name":"fetch/sendRequest","data":data,"helpers":helpers,"partials":partials,"decorators":container.decorators})) != null ? stack1 : "") + + "\n\n" + + ((stack1 = container.invokePartial(lookupProperty(partials,"fetch/getResponseHeader"),depth0,{"name":"fetch/getResponseHeader","data":data,"helpers":helpers,"partials":partials,"decorators":container.decorators})) != null ? stack1 : "") + + "\n\n" + + ((stack1 = container.invokePartial(lookupProperty(partials,"fetch/getResponseBody"),depth0,{"name":"fetch/getResponseBody","data":data,"helpers":helpers,"partials":partials,"decorators":container.decorators})) != null ? stack1 : "") + + "\n\n" + + ((stack1 = container.invokePartial(lookupProperty(partials,"functions/catchErrorCodes"),depth0,{"name":"functions/catchErrorCodes","data":data,"helpers":helpers,"partials":partials,"decorators":container.decorators})) != null ? stack1 : "") + + "\n\n/**\n * Request method\n * @param config The OpenAPI configuration object\n * @param options The request options from the service\n * @returns CancelablePromise\n * @throws ApiError\n */\nexport const request = (config: OpenAPIConfig, options: ApiRequestOptions): CancelablePromise => {\n return new CancelablePromise(async (resolve, reject, onCancel) => {\n try {\n const url = getUrl(config, options);\n const formData = getFormData(options);\n const body = getRequestBody(options);\n const headers = await getHeaders(config, options);\n\n if (!onCancel.isCancelled) {\n const response = await sendRequest(config, options, url, body, formData, headers, onCancel);\n const responseBody = await getResponseBody(response);\n const responseHeader = getResponseHeader(response, options.responseHeader);\n\n const result: ApiResult = {\n url,\n ok: response.ok,\n status: response.status,\n statusText: response.statusText,\n body: responseHeader ?? responseBody,\n };\n\n catchErrorCodes(options, result);\n\n resolve(result.body);\n }\n } catch (error) {\n reject(error);\n }\n });\n};"; +},"usePartial":true,"useData":true}; + +var fetchSendRequest = {"compiler":[8,">= 4.3.0"],"main":function(container,depth0,helpers,partials,data) { + return "export const sendRequest = async (\n config: OpenAPIConfig,\n options: ApiRequestOptions,\n url: string,\n body: any,\n formData: FormData | undefined,\n headers: Headers,\n onCancel: OnCancel\n): Promise => {\n const controller = new AbortController();\n\n const request: RequestInit = {\n headers,\n body: body ?? formData,\n method: options.method,\n signal: controller.signal,\n };\n\n if (config.WITH_CREDENTIALS) {\n request.credentials = config.CREDENTIALS;\n }\n\n onCancel(() => controller.abort());\n\n return await fetch(url, request);\n};"; +},"useData":true}; + +var functionBase64 = {"compiler":[8,">= 4.3.0"],"main":function(container,depth0,helpers,partials,data) { + return "const base64 = (str: string): string => {\n try {\n return btoa(str);\n } catch (err) {\n // @ts-ignore\n return Buffer.from(str).toString('base64');\n }\n};"; +},"useData":true}; + +var functionCatchErrorCodes = {"compiler":[8,">= 4.3.0"],"main":function(container,depth0,helpers,partials,data) { + return "const catchErrorCodes = (options: ApiRequestOptions, result: ApiResult): void => {\n const errors: Record = {\n 400: 'Bad Request',\n 401: 'Unauthorized',\n 403: 'Forbidden',\n 404: 'Not Found',\n 500: 'Internal Server Error',\n 502: 'Bad Gateway',\n 503: 'Service Unavailable',\n ...options.errors,\n }\n\n const error = errors[result.status];\n if (error) {\n throw new ApiError(options, result, error);\n }\n\n if (!result.ok) {\n throw new ApiError(options, result, 'Generic Error');\n }\n};"; +},"useData":true}; + +var functionGetFormData = {"compiler":[8,">= 4.3.0"],"main":function(container,depth0,helpers,partials,data) { + return "const getFormData = (options: ApiRequestOptions): FormData | undefined => {\n if (options.formData) {\n const formData = new FormData();\n\n const process = (key: string, value: any) => {\n if (isString(value) || isBlob(value)) {\n formData.append(key, value);\n } else {\n formData.append(key, JSON.stringify(value));\n }\n };\n\n Object.entries(options.formData)\n .filter(([_, value]) => isDefined(value))\n .forEach(([key, value]) => {\n if (Array.isArray(value)) {\n value.forEach(v => process(key, v));\n } else {\n process(key, value);\n }\n });\n\n return formData;\n }\n return undefined;\n};"; +},"useData":true}; + +var functionGetQueryString = {"compiler":[8,">= 4.3.0"],"main":function(container,depth0,helpers,partials,data) { + return "const getQueryString = (params: Record): string => {\n const qs: string[] = [];\n\n const append = (key: string, value: any) => {\n qs.push(`${encodeURIComponent(key)}=${encodeURIComponent(String(value))}`);\n };\n\n const process = (key: string, value: any) => {\n if (isDefined(value)) {\n if (Array.isArray(value)) {\n value.forEach(v => {\n process(key, v);\n });\n } else if (typeof value === 'object') {\n Object.entries(value).forEach(([k, v]) => {\n process(`${key}[${k}]`, v);\n });\n } else {\n append(key, value);\n }\n }\n };\n\n Object.entries(params).forEach(([key, value]) => {\n process(key, value);\n });\n\n if (qs.length > 0) {\n return `?${qs.join('&')}`;\n }\n\n return '';\n};"; +},"useData":true}; + +var functionGetUrl = {"compiler":[8,">= 4.3.0"],"main":function(container,depth0,helpers,partials,data) { + return "const getUrl = (config: OpenAPIConfig, options: ApiRequestOptions): string => {\n const encoder = config.ENCODE_PATH || encodeURI;\n\n const path = options.url\n .replace('{api-version}', config.VERSION)\n .replace(/{(.*?)}/g, (substring: string, group: string) => {\n if (options.path?.hasOwnProperty(group)) {\n return encoder(String(options.path[group]));\n }\n return substring;\n });\n\n const url = `${config.BASE}${path}`;\n if (options.query) {\n return `${url}${getQueryString(options.query)}`;\n }\n return url;\n};"; +},"useData":true}; + +var functionIsBlob = {"compiler":[8,">= 4.3.0"],"main":function(container,depth0,helpers,partials,data) { + return "const isBlob = (value: any): value is Blob => {\n return (\n typeof value === 'object' &&\n typeof value.type === 'string' &&\n typeof value.stream === 'function' &&\n typeof value.arrayBuffer === 'function' &&\n typeof value.constructor === 'function' &&\n typeof value.constructor.name === 'string' &&\n /^(Blob|File)$/.test(value.constructor.name) &&\n /^(Blob|File)$/.test(value[Symbol.toStringTag])\n );\n};"; +},"useData":true}; + +var functionIsDefined = {"compiler":[8,">= 4.3.0"],"main":function(container,depth0,helpers,partials,data) { + return "const isDefined = (value: T | null | undefined): value is Exclude => {\n return value !== undefined && value !== null;\n};"; +},"useData":true}; + +var functionIsFormData = {"compiler":[8,">= 4.3.0"],"main":function(container,depth0,helpers,partials,data) { + return "const isFormData = (value: any): value is FormData => {\n return value instanceof FormData;\n};"; +},"useData":true}; + +var functionIsString = {"compiler":[8,">= 4.3.0"],"main":function(container,depth0,helpers,partials,data) { + return "const isString = (value: any): value is string => {\n return typeof value === 'string';\n};"; +},"useData":true}; + +var functionIsStringWithValue = {"compiler":[8,">= 4.3.0"],"main":function(container,depth0,helpers,partials,data) { + return "const isStringWithValue = (value: any): value is string => {\n return isString(value) && value !== '';\n};"; +},"useData":true}; + +var functionIsSuccess = {"compiler":[8,">= 4.3.0"],"main":function(container,depth0,helpers,partials,data) { + return "const isSuccess = (status: number): boolean => {\n return status >= 200 && status < 300;\n};"; +},"useData":true}; + +var functionResolve = {"compiler":[8,">= 4.3.0"],"main":function(container,depth0,helpers,partials,data) { + return "type Resolver = (options: ApiRequestOptions) => Promise;\n\nconst resolve = async (options: ApiRequestOptions, resolver?: T | Resolver): Promise => {\n if (typeof resolver === 'function') {\n return (resolver as Resolver)(options);\n }\n return resolver;\n};"; +},"useData":true}; + +var templateCoreHttpRequest = {"1":function(container,depth0,helpers,partials,data) { + return "import { Inject, Injectable } from '@angular/core';\nimport { HttpClient } from '@angular/common/http';\nimport type { Observable } from 'rxjs';\n\nimport type { ApiRequestOptions } from './ApiRequestOptions';\nimport { BaseHttpRequest } from './BaseHttpRequest';\nimport type { OpenAPIConfig } from './OpenAPI';\nimport { OpenAPI } from './OpenAPI';\nimport { request as __request } from './request';\n"; +},"3":function(container,depth0,helpers,partials,data) { + return "import type { ApiRequestOptions } from './ApiRequestOptions';\nimport { BaseHttpRequest } from './BaseHttpRequest';\nimport type { CancelablePromise } from './CancelablePromise';\nimport type { OpenAPIConfig } from './OpenAPI';\nimport { request as __request } from './request';\n"; +},"5":function(container,depth0,helpers,partials,data) { + return "@Injectable()\n"; +},"7":function(container,depth0,helpers,partials,data) { + return " constructor(\n @Inject(OpenAPI)\n config: OpenAPIConfig,\n http: HttpClient,\n ) {\n super(config, http);\n }\n"; +},"9":function(container,depth0,helpers,partials,data) { + return " constructor(config: OpenAPIConfig) {\n super(config);\n }\n"; +},"11":function(container,depth0,helpers,partials,data) { + return " /**\n * Request method\n * @param options The request options from the service\n * @returns Observable\n * @throws ApiError\n */\n public override request(options: ApiRequestOptions): Observable {\n return __request(this.config, this.http, options);\n }\n"; +},"13":function(container,depth0,helpers,partials,data) { + return " /**\n * Request method\n * @param options The request options from the service\n * @returns CancelablePromise\n * @throws ApiError\n */\n public override request(options: ApiRequestOptions): CancelablePromise {\n return __request(this.config, options);\n }\n"; +},"compiler":[8,">= 4.3.0"],"main":function(container,depth0,helpers,partials,data) { + var stack1, alias1=depth0 != null ? depth0 : (container.nullContext || {}), lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return ((stack1 = container.invokePartial(lookupProperty(partials,"header"),depth0,{"name":"header","data":data,"helpers":helpers,"partials":partials,"decorators":container.decorators})) != null ? stack1 : "") + + "\n" + + ((stack1 = lookupProperty(helpers,"equals").call(alias1,lookupProperty(lookupProperty(data,"root"),"httpClient"),"angular",{"name":"equals","hash":{},"fn":container.program(1, data, 0),"inverse":container.program(3, data, 0),"data":data,"loc":{"start":{"line":3,"column":0},"end":{"line":19,"column":11}}})) != null ? stack1 : "") + + "\n" + + ((stack1 = lookupProperty(helpers,"equals").call(alias1,lookupProperty(lookupProperty(data,"root"),"httpClient"),"angular",{"name":"equals","hash":{},"fn":container.program(5, data, 0),"inverse":container.noop,"data":data,"loc":{"start":{"line":21,"column":0},"end":{"line":23,"column":11}}})) != null ? stack1 : "") + + "export class " + + ((stack1 = container.lambda(container.strict(depth0, "httpRequest", {"start":{"line":24,"column":15},"end":{"line":24,"column":26}} ), depth0)) != null ? stack1 : "") + + " extends BaseHttpRequest {\n\n" + + ((stack1 = lookupProperty(helpers,"equals").call(alias1,lookupProperty(lookupProperty(data,"root"),"httpClient"),"angular",{"name":"equals","hash":{},"fn":container.program(7, data, 0),"inverse":container.program(9, data, 0),"data":data,"loc":{"start":{"line":26,"column":1},"end":{"line":38,"column":12}}})) != null ? stack1 : "") + + "\n" + + ((stack1 = lookupProperty(helpers,"equals").call(alias1,lookupProperty(lookupProperty(data,"root"),"httpClient"),"angular",{"name":"equals","hash":{},"fn":container.program(11, data, 0),"inverse":container.program(13, data, 0),"data":data,"loc":{"start":{"line":40,"column":1},"end":{"line":60,"column":12}}})) != null ? stack1 : "") + + "}"; +},"usePartial":true,"useData":true}; + +var nodeGetHeaders = {"compiler":[8,">= 4.3.0"],"main":function(container,depth0,helpers,partials,data) { + return "const getHeaders = async (config: OpenAPIConfig, options: ApiRequestOptions): Promise => {\n const token = await resolve(options, config.TOKEN);\n const username = await resolve(options, config.USERNAME);\n const password = await resolve(options, config.PASSWORD);\n const additionalHeaders = await resolve(options, config.HEADERS);\n\n const headers = Object.entries({\n Accept: 'application/json',\n ...additionalHeaders,\n ...options.headers,\n })\n .filter(([_, value]) => isDefined(value))\n .reduce((headers, [key, value]) => ({\n ...headers,\n [key]: String(value),\n }), {} as Record);\n\n if (isStringWithValue(token)) {\n headers['Authorization'] = `Bearer ${token}`;\n }\n\n if (isStringWithValue(username) && isStringWithValue(password)) {\n const credentials = base64(`${username}:${password}`);\n headers['Authorization'] = `Basic ${credentials}`;\n }\n\n if (options.body) {\n if (options.mediaType) {\n headers['Content-Type'] = options.mediaType;\n } else if (isBlob(options.body)) {\n headers['Content-Type'] = 'application/octet-stream';\n } else if (isString(options.body)) {\n headers['Content-Type'] = 'text/plain';\n } else if (!isFormData(options.body)) {\n headers['Content-Type'] = 'application/json';\n }\n }\n\n return new Headers(headers);\n};"; +},"useData":true}; + +var nodeGetRequestBody = {"compiler":[8,">= 4.3.0"],"main":function(container,depth0,helpers,partials,data) { + return "const getRequestBody = (options: ApiRequestOptions): any => {\n if (options.body !== undefined) {\n if (options.mediaType?.includes('/json')) {\n return JSON.stringify(options.body)\n } else if (isString(options.body) || isBlob(options.body) || isFormData(options.body)) {\n return options.body as any;\n } else {\n return JSON.stringify(options.body);\n }\n }\n return undefined;\n};"; +},"useData":true}; + +var nodeGetResponseBody = {"compiler":[8,">= 4.3.0"],"main":function(container,depth0,helpers,partials,data) { + return "const getResponseBody = async (response: Response): Promise => {\n if (response.status !== 204) {\n try {\n const contentType = response.headers.get('Content-Type');\n if (contentType) {\n const isJSON = contentType.toLowerCase().startsWith('application/json');\n if (isJSON) {\n return await response.json();\n } else {\n return await response.text();\n }\n }\n } catch (error) {\n console.error(error);\n }\n }\n return undefined;\n};"; +},"useData":true}; + +var nodeGetResponseHeader = {"compiler":[8,">= 4.3.0"],"main":function(container,depth0,helpers,partials,data) { + return "const getResponseHeader = (response: Response, responseHeader?: string): string | undefined => {\n if (responseHeader) {\n const content = response.headers.get(responseHeader);\n if (isString(content)) {\n return content;\n }\n }\n return undefined;\n};"; +},"useData":true}; + +var nodeRequest = {"compiler":[8,">= 4.3.0"],"main":function(container,depth0,helpers,partials,data) { + var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return ((stack1 = container.invokePartial(lookupProperty(partials,"header"),depth0,{"name":"header","data":data,"helpers":helpers,"partials":partials,"decorators":container.decorators})) != null ? stack1 : "") + + "\nimport FormData from 'form-data';\nimport fetch, { Headers } from 'node-fetch';\nimport type { RequestInit, Response } from 'node-fetch';\nimport type { AbortSignal } from 'node-fetch/externals';\n\nimport { ApiError } from './ApiError';\nimport type { ApiRequestOptions } from './ApiRequestOptions';\nimport type { ApiResult } from './ApiResult';\nimport { CancelablePromise } from './CancelablePromise';\nimport type { OnCancel } from './CancelablePromise';\nimport type { OpenAPIConfig } from './OpenAPI';\n\n" + + ((stack1 = container.invokePartial(lookupProperty(partials,"functions/isDefined"),depth0,{"name":"functions/isDefined","data":data,"helpers":helpers,"partials":partials,"decorators":container.decorators})) != null ? stack1 : "") + + "\n\n" + + ((stack1 = container.invokePartial(lookupProperty(partials,"functions/isString"),depth0,{"name":"functions/isString","data":data,"helpers":helpers,"partials":partials,"decorators":container.decorators})) != null ? stack1 : "") + + "\n\n" + + ((stack1 = container.invokePartial(lookupProperty(partials,"functions/isStringWithValue"),depth0,{"name":"functions/isStringWithValue","data":data,"helpers":helpers,"partials":partials,"decorators":container.decorators})) != null ? stack1 : "") + + "\n\n" + + ((stack1 = container.invokePartial(lookupProperty(partials,"functions/isBlob"),depth0,{"name":"functions/isBlob","data":data,"helpers":helpers,"partials":partials,"decorators":container.decorators})) != null ? stack1 : "") + + "\n\n" + + ((stack1 = container.invokePartial(lookupProperty(partials,"functions/isFormData"),depth0,{"name":"functions/isFormData","data":data,"helpers":helpers,"partials":partials,"decorators":container.decorators})) != null ? stack1 : "") + + "\n\n" + + ((stack1 = container.invokePartial(lookupProperty(partials,"functions/base64"),depth0,{"name":"functions/base64","data":data,"helpers":helpers,"partials":partials,"decorators":container.decorators})) != null ? stack1 : "") + + "\n\n" + + ((stack1 = container.invokePartial(lookupProperty(partials,"functions/getQueryString"),depth0,{"name":"functions/getQueryString","data":data,"helpers":helpers,"partials":partials,"decorators":container.decorators})) != null ? stack1 : "") + + "\n\n" + + ((stack1 = container.invokePartial(lookupProperty(partials,"functions/getUrl"),depth0,{"name":"functions/getUrl","data":data,"helpers":helpers,"partials":partials,"decorators":container.decorators})) != null ? stack1 : "") + + "\n\n" + + ((stack1 = container.invokePartial(lookupProperty(partials,"functions/getFormData"),depth0,{"name":"functions/getFormData","data":data,"helpers":helpers,"partials":partials,"decorators":container.decorators})) != null ? stack1 : "") + + "\n\n" + + ((stack1 = container.invokePartial(lookupProperty(partials,"functions/resolve"),depth0,{"name":"functions/resolve","data":data,"helpers":helpers,"partials":partials,"decorators":container.decorators})) != null ? stack1 : "") + + "\n\n" + + ((stack1 = container.invokePartial(lookupProperty(partials,"node/getHeaders"),depth0,{"name":"node/getHeaders","data":data,"helpers":helpers,"partials":partials,"decorators":container.decorators})) != null ? stack1 : "") + + "\n\n" + + ((stack1 = container.invokePartial(lookupProperty(partials,"node/getRequestBody"),depth0,{"name":"node/getRequestBody","data":data,"helpers":helpers,"partials":partials,"decorators":container.decorators})) != null ? stack1 : "") + + "\n\n" + + ((stack1 = container.invokePartial(lookupProperty(partials,"node/sendRequest"),depth0,{"name":"node/sendRequest","data":data,"helpers":helpers,"partials":partials,"decorators":container.decorators})) != null ? stack1 : "") + + "\n\n" + + ((stack1 = container.invokePartial(lookupProperty(partials,"node/getResponseHeader"),depth0,{"name":"node/getResponseHeader","data":data,"helpers":helpers,"partials":partials,"decorators":container.decorators})) != null ? stack1 : "") + + "\n\n" + + ((stack1 = container.invokePartial(lookupProperty(partials,"node/getResponseBody"),depth0,{"name":"node/getResponseBody","data":data,"helpers":helpers,"partials":partials,"decorators":container.decorators})) != null ? stack1 : "") + + "\n\n" + + ((stack1 = container.invokePartial(lookupProperty(partials,"functions/catchErrorCodes"),depth0,{"name":"functions/catchErrorCodes","data":data,"helpers":helpers,"partials":partials,"decorators":container.decorators})) != null ? stack1 : "") + + "\n\n/**\n * Request method\n * @param config The OpenAPI configuration object\n * @param options The request options from the service\n * @returns CancelablePromise\n * @throws ApiError\n */\nexport const request = (config: OpenAPIConfig, options: ApiRequestOptions): CancelablePromise => {\n return new CancelablePromise(async (resolve, reject, onCancel) => {\n try {\n const url = getUrl(config, options);\n const formData = getFormData(options);\n const body = getRequestBody(options);\n const headers = await getHeaders(config, options);\n\n if (!onCancel.isCancelled) {\n const response = await sendRequest(options, url, body, formData, headers, onCancel);\n const responseBody = await getResponseBody(response);\n const responseHeader = getResponseHeader(response, options.responseHeader);\n\n const result: ApiResult = {\n url,\n ok: response.ok,\n status: response.status,\n statusText: response.statusText,\n body: responseHeader ?? responseBody,\n };\n\n catchErrorCodes(options, result);\n\n resolve(result.body);\n }\n } catch (error) {\n reject(error);\n }\n });\n};"; +},"usePartial":true,"useData":true}; + +var nodeSendRequest = {"compiler":[8,">= 4.3.0"],"main":function(container,depth0,helpers,partials,data) { + return "export const sendRequest = async (\n options: ApiRequestOptions,\n url: string,\n body: any,\n formData: FormData | undefined,\n headers: Headers,\n onCancel: OnCancel\n): Promise => {\n const controller = new AbortController();\n\n const request: RequestInit = {\n headers,\n method: options.method,\n body: body ?? formData,\n signal: controller.signal as AbortSignal,\n };\n\n onCancel(() => controller.abort());\n\n return await fetch(url, request);\n};"; +},"useData":true}; + +var templateCoreSettings = {"compiler":[8,">= 4.3.0"],"main":function(container,depth0,helpers,partials,data) { + var stack1, alias1=container.strict, alias2=container.lambda, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return ((stack1 = container.invokePartial(lookupProperty(partials,"header"),depth0,{"name":"header","data":data,"helpers":helpers,"partials":partials,"decorators":container.decorators})) != null ? stack1 : "") + + "\nimport type { ApiRequestOptions } from './ApiRequestOptions';\n\ntype Resolver = (options: ApiRequestOptions) => Promise;\ntype Headers = Record;\n\nexport type OpenAPIConfig = {\n BASE: string;\n VERSION: string;\n WITH_CREDENTIALS: boolean;\n CREDENTIALS: 'include' | 'omit' | 'same-origin';\n TOKEN?: string | Resolver;\n USERNAME?: string | Resolver;\n PASSWORD?: string | Resolver;\n HEADERS?: Headers | Resolver;\n ENCODE_PATH?: (path: string) => string;\n};\n\nexport const OpenAPI: OpenAPIConfig = {\n BASE: '" + + ((stack1 = alias2(alias1(depth0, "server", {"start":{"line":21,"column":11},"end":{"line":21,"column":17}} ), depth0)) != null ? stack1 : "") + + "',\n VERSION: '" + + ((stack1 = alias2(alias1(depth0, "version", {"start":{"line":22,"column":14},"end":{"line":22,"column":21}} ), depth0)) != null ? stack1 : "") + + "',\n WITH_CREDENTIALS: false,\n CREDENTIALS: 'include',\n TOKEN: undefined,\n USERNAME: undefined,\n PASSWORD: undefined,\n HEADERS: undefined,\n ENCODE_PATH: undefined,\n};"; +},"usePartial":true,"useData":true}; + +var templateCoreRequest = {"1":function(container,depth0,helpers,partials,data) { + var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return ((stack1 = container.invokePartial(lookupProperty(partials,"fetch/request"),depth0,{"name":"fetch/request","data":data,"helpers":helpers,"partials":partials,"decorators":container.decorators})) != null ? stack1 : ""); +},"3":function(container,depth0,helpers,partials,data) { + var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return ((stack1 = container.invokePartial(lookupProperty(partials,"xhr/request"),depth0,{"name":"xhr/request","data":data,"helpers":helpers,"partials":partials,"decorators":container.decorators})) != null ? stack1 : ""); +},"5":function(container,depth0,helpers,partials,data) { + var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return ((stack1 = container.invokePartial(lookupProperty(partials,"axios/request"),depth0,{"name":"axios/request","data":data,"helpers":helpers,"partials":partials,"decorators":container.decorators})) != null ? stack1 : ""); +},"7":function(container,depth0,helpers,partials,data) { + var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return ((stack1 = container.invokePartial(lookupProperty(partials,"angular/request"),depth0,{"name":"angular/request","data":data,"helpers":helpers,"partials":partials,"decorators":container.decorators})) != null ? stack1 : ""); +},"9":function(container,depth0,helpers,partials,data) { + var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return ((stack1 = container.invokePartial(lookupProperty(partials,"node/request"),depth0,{"name":"node/request","data":data,"helpers":helpers,"partials":partials,"decorators":container.decorators})) != null ? stack1 : ""); +},"compiler":[8,">= 4.3.0"],"main":function(container,depth0,helpers,partials,data) { + var stack1, alias1=depth0 != null ? depth0 : (container.nullContext || {}), lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return ((stack1 = lookupProperty(helpers,"equals").call(alias1,lookupProperty(lookupProperty(data,"root"),"httpClient"),"fetch",{"name":"equals","hash":{},"fn":container.program(1, data, 0),"inverse":container.noop,"data":data,"loc":{"start":{"line":1,"column":0},"end":{"line":1,"column":67}}})) != null ? stack1 : "") + + ((stack1 = lookupProperty(helpers,"equals").call(alias1,lookupProperty(lookupProperty(data,"root"),"httpClient"),"xhr",{"name":"equals","hash":{},"fn":container.program(3, data, 0),"inverse":container.noop,"data":data,"loc":{"start":{"line":2,"column":0},"end":{"line":2,"column":63}}})) != null ? stack1 : "") + + ((stack1 = lookupProperty(helpers,"equals").call(alias1,lookupProperty(lookupProperty(data,"root"),"httpClient"),"axios",{"name":"equals","hash":{},"fn":container.program(5, data, 0),"inverse":container.noop,"data":data,"loc":{"start":{"line":3,"column":0},"end":{"line":3,"column":67}}})) != null ? stack1 : "") + + ((stack1 = lookupProperty(helpers,"equals").call(alias1,lookupProperty(lookupProperty(data,"root"),"httpClient"),"angular",{"name":"equals","hash":{},"fn":container.program(7, data, 0),"inverse":container.noop,"data":data,"loc":{"start":{"line":4,"column":0},"end":{"line":4,"column":71}}})) != null ? stack1 : "") + + ((stack1 = lookupProperty(helpers,"equals").call(alias1,lookupProperty(lookupProperty(data,"root"),"httpClient"),"node",{"name":"equals","hash":{},"fn":container.program(9, data, 0),"inverse":container.noop,"data":data,"loc":{"start":{"line":5,"column":0},"end":{"line":5,"column":65}}})) != null ? stack1 : ""); +},"usePartial":true,"useData":true}; + +var xhrGetHeaders = {"compiler":[8,">= 4.3.0"],"main":function(container,depth0,helpers,partials,data) { + return "const getHeaders = async (config: OpenAPIConfig, options: ApiRequestOptions): Promise => {\n const token = await resolve(options, config.TOKEN);\n const username = await resolve(options, config.USERNAME);\n const password = await resolve(options, config.PASSWORD);\n const additionalHeaders = await resolve(options, config.HEADERS);\n\n const headers = Object.entries({\n Accept: 'application/json',\n ...additionalHeaders,\n ...options.headers,\n })\n .filter(([_, value]) => isDefined(value))\n .reduce((headers, [key, value]) => ({\n ...headers,\n [key]: String(value),\n }), {} as Record);\n\n if (isStringWithValue(token)) {\n headers['Authorization'] = `Bearer ${token}`;\n }\n\n if (isStringWithValue(username) && isStringWithValue(password)) {\n const credentials = base64(`${username}:${password}`);\n headers['Authorization'] = `Basic ${credentials}`;\n }\n\n if (options.body) {\n if (options.mediaType) {\n headers['Content-Type'] = options.mediaType;\n } else if (isBlob(options.body)) {\n headers['Content-Type'] = options.body.type || 'application/octet-stream';\n } else if (isString(options.body)) {\n headers['Content-Type'] = 'text/plain';\n } else if (!isFormData(options.body)) {\n headers['Content-Type'] = 'application/json';\n }\n }\n\n return new Headers(headers);\n};"; +},"useData":true}; + +var xhrGetRequestBody = {"compiler":[8,">= 4.3.0"],"main":function(container,depth0,helpers,partials,data) { + return "const getRequestBody = (options: ApiRequestOptions): any => {\n if (options.body !== undefined) {\n if (options.mediaType?.includes('/json')) {\n return JSON.stringify(options.body)\n } else if (isString(options.body) || isBlob(options.body) || isFormData(options.body)) {\n return options.body;\n } else {\n return JSON.stringify(options.body);\n }\n }\n return undefined;\n};"; +},"useData":true}; + +var xhrGetResponseBody = {"compiler":[8,">= 4.3.0"],"main":function(container,depth0,helpers,partials,data) { + return "const getResponseBody = (xhr: XMLHttpRequest): any => {\n if (xhr.status !== 204) {\n try {\n const contentType = xhr.getResponseHeader('Content-Type');\n if (contentType) {\n const isJSON = contentType.toLowerCase().startsWith('application/json');\n if (isJSON) {\n return JSON.parse(xhr.responseText);\n } else {\n return xhr.responseText;\n }\n }\n } catch (error) {\n console.error(error);\n }\n }\n return undefined;\n};"; +},"useData":true}; + +var xhrGetResponseHeader = {"compiler":[8,">= 4.3.0"],"main":function(container,depth0,helpers,partials,data) { + return "const getResponseHeader = (xhr: XMLHttpRequest, responseHeader?: string): string | undefined => {\n if (responseHeader) {\n const content = xhr.getResponseHeader(responseHeader);\n if (isString(content)) {\n return content;\n }\n }\n return undefined;\n};"; +},"useData":true}; + +var xhrRequest = {"compiler":[8,">= 4.3.0"],"main":function(container,depth0,helpers,partials,data) { + var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return ((stack1 = container.invokePartial(lookupProperty(partials,"header"),depth0,{"name":"header","data":data,"helpers":helpers,"partials":partials,"decorators":container.decorators})) != null ? stack1 : "") + + "\nimport { ApiError } from './ApiError';\nimport type { ApiRequestOptions } from './ApiRequestOptions';\nimport type { ApiResult } from './ApiResult';\nimport { CancelablePromise } from './CancelablePromise';\nimport type { OnCancel } from './CancelablePromise';\nimport type { OpenAPIConfig } from './OpenAPI';\n\n" + + ((stack1 = container.invokePartial(lookupProperty(partials,"functions/isDefined"),depth0,{"name":"functions/isDefined","data":data,"helpers":helpers,"partials":partials,"decorators":container.decorators})) != null ? stack1 : "") + + "\n\n" + + ((stack1 = container.invokePartial(lookupProperty(partials,"functions/isString"),depth0,{"name":"functions/isString","data":data,"helpers":helpers,"partials":partials,"decorators":container.decorators})) != null ? stack1 : "") + + "\n\n" + + ((stack1 = container.invokePartial(lookupProperty(partials,"functions/isStringWithValue"),depth0,{"name":"functions/isStringWithValue","data":data,"helpers":helpers,"partials":partials,"decorators":container.decorators})) != null ? stack1 : "") + + "\n\n" + + ((stack1 = container.invokePartial(lookupProperty(partials,"functions/isBlob"),depth0,{"name":"functions/isBlob","data":data,"helpers":helpers,"partials":partials,"decorators":container.decorators})) != null ? stack1 : "") + + "\n\n" + + ((stack1 = container.invokePartial(lookupProperty(partials,"functions/isFormData"),depth0,{"name":"functions/isFormData","data":data,"helpers":helpers,"partials":partials,"decorators":container.decorators})) != null ? stack1 : "") + + "\n\n" + + ((stack1 = container.invokePartial(lookupProperty(partials,"functions/isSuccess"),depth0,{"name":"functions/isSuccess","data":data,"helpers":helpers,"partials":partials,"decorators":container.decorators})) != null ? stack1 : "") + + "\n\n" + + ((stack1 = container.invokePartial(lookupProperty(partials,"functions/base64"),depth0,{"name":"functions/base64","data":data,"helpers":helpers,"partials":partials,"decorators":container.decorators})) != null ? stack1 : "") + + "\n\n" + + ((stack1 = container.invokePartial(lookupProperty(partials,"functions/getQueryString"),depth0,{"name":"functions/getQueryString","data":data,"helpers":helpers,"partials":partials,"decorators":container.decorators})) != null ? stack1 : "") + + "\n\n" + + ((stack1 = container.invokePartial(lookupProperty(partials,"functions/getUrl"),depth0,{"name":"functions/getUrl","data":data,"helpers":helpers,"partials":partials,"decorators":container.decorators})) != null ? stack1 : "") + + "\n\n" + + ((stack1 = container.invokePartial(lookupProperty(partials,"functions/getFormData"),depth0,{"name":"functions/getFormData","data":data,"helpers":helpers,"partials":partials,"decorators":container.decorators})) != null ? stack1 : "") + + "\n\n" + + ((stack1 = container.invokePartial(lookupProperty(partials,"functions/resolve"),depth0,{"name":"functions/resolve","data":data,"helpers":helpers,"partials":partials,"decorators":container.decorators})) != null ? stack1 : "") + + "\n\n" + + ((stack1 = container.invokePartial(lookupProperty(partials,"fetch/getHeaders"),depth0,{"name":"fetch/getHeaders","data":data,"helpers":helpers,"partials":partials,"decorators":container.decorators})) != null ? stack1 : "") + + "\n\n" + + ((stack1 = container.invokePartial(lookupProperty(partials,"xhr/getRequestBody"),depth0,{"name":"xhr/getRequestBody","data":data,"helpers":helpers,"partials":partials,"decorators":container.decorators})) != null ? stack1 : "") + + "\n\n" + + ((stack1 = container.invokePartial(lookupProperty(partials,"xhr/sendRequest"),depth0,{"name":"xhr/sendRequest","data":data,"helpers":helpers,"partials":partials,"decorators":container.decorators})) != null ? stack1 : "") + + "\n\n" + + ((stack1 = container.invokePartial(lookupProperty(partials,"xhr/getResponseHeader"),depth0,{"name":"xhr/getResponseHeader","data":data,"helpers":helpers,"partials":partials,"decorators":container.decorators})) != null ? stack1 : "") + + "\n\n" + + ((stack1 = container.invokePartial(lookupProperty(partials,"xhr/getResponseBody"),depth0,{"name":"xhr/getResponseBody","data":data,"helpers":helpers,"partials":partials,"decorators":container.decorators})) != null ? stack1 : "") + + "\n\n" + + ((stack1 = container.invokePartial(lookupProperty(partials,"functions/catchErrorCodes"),depth0,{"name":"functions/catchErrorCodes","data":data,"helpers":helpers,"partials":partials,"decorators":container.decorators})) != null ? stack1 : "") + + "\n\n/**\n * Request method\n * @param config The OpenAPI configuration object\n * @param options The request options from the service\n * @returns CancelablePromise\n * @throws ApiError\n */\nexport const request = (config: OpenAPIConfig, options: ApiRequestOptions): CancelablePromise => {\n return new CancelablePromise(async (resolve, reject, onCancel) => {\n try {\n const url = getUrl(config, options);\n const formData = getFormData(options);\n const body = getRequestBody(options);\n const headers = await getHeaders(config, options);\n\n if (!onCancel.isCancelled) {\n const response = await sendRequest(config, options, url, body, formData, headers, onCancel);\n const responseBody = getResponseBody(response);\n const responseHeader = getResponseHeader(response, options.responseHeader);\n\n const result: ApiResult = {\n url,\n ok: isSuccess(response.status),\n status: response.status,\n statusText: response.statusText,\n body: responseHeader ?? responseBody,\n };\n\n catchErrorCodes(options, result);\n\n resolve(result.body);\n }\n } catch (error) {\n reject(error);\n }\n });\n};"; +},"usePartial":true,"useData":true}; + +var xhrSendRequest = {"compiler":[8,">= 4.3.0"],"main":function(container,depth0,helpers,partials,data) { + return "export const sendRequest = async (\n config: OpenAPIConfig,\n options: ApiRequestOptions,\n url: string,\n body: any,\n formData: FormData | undefined,\n headers: Headers,\n onCancel: OnCancel\n): Promise => {\n const xhr = new XMLHttpRequest();\n xhr.open(options.method, url, true);\n xhr.withCredentials = config.WITH_CREDENTIALS;\n\n headers.forEach((value, key) => {\n xhr.setRequestHeader(key, value);\n });\n\n return new Promise((resolve, reject) => {\n xhr.onload = () => resolve(xhr);\n xhr.onabort = () => reject(new Error('Request aborted'));\n xhr.onerror = () => reject(new Error('Network error'));\n xhr.send(body ?? formData);\n\n onCancel(() => xhr.abort());\n });\n};"; +},"useData":true}; + +var templateExportModel = {"1":function(container,depth0,helpers,partials,data) { + var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return "\n" + + ((stack1 = lookupProperty(helpers,"each").call(depth0 != null ? depth0 : (container.nullContext || {}),lookupProperty(depth0,"imports"),{"name":"each","hash":{},"fn":container.program(2, data, 0),"inverse":container.noop,"data":data,"loc":{"start":{"line":5,"column":0},"end":{"line":15,"column":9}}})) != null ? stack1 : ""); +},"2":function(container,depth0,helpers,partials,data) { + var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return ((stack1 = lookupProperty(helpers,"if").call(depth0 != null ? depth0 : (container.nullContext || {}),lookupProperty(depth0,"typeName"),{"name":"if","hash":{},"fn":container.program(3, data, 0),"inverse":container.program(8, data, 0),"data":data,"loc":{"start":{"line":6,"column":0},"end":{"line":14,"column":7}}})) != null ? stack1 : ""); +},"3":function(container,depth0,helpers,partials,data) { + var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return ((stack1 = lookupProperty(helpers,"if").call(depth0 != null ? depth0 : (container.nullContext || {}),lookupProperty(depth0,"nodeModule"),{"name":"if","hash":{},"fn":container.program(4, data, 0),"inverse":container.program(6, data, 0),"data":data,"loc":{"start":{"line":7,"column":0},"end":{"line":11,"column":7}}})) != null ? stack1 : ""); +},"4":function(container,depth0,helpers,partials,data) { + var stack1, alias1=container.strict, alias2=container.lambda; + + return "import { " + + ((stack1 = alias2(alias1(depth0, "typeName", {"start":{"line":8,"column":12},"end":{"line":8,"column":25}} ), depth0)) != null ? stack1 : "") + + " } from '" + + ((stack1 = alias2(alias1(depth0, "path", {"start":{"line":8,"column":40},"end":{"line":8,"column":49}} ), depth0)) != null ? stack1 : "") + + "';\n"; +},"6":function(container,depth0,helpers,partials,data) { + var stack1, alias1=container.strict, alias2=container.lambda; + + return "import type { " + + ((stack1 = alias2(alias1(depth0, "typeName", {"start":{"line":10,"column":17},"end":{"line":10,"column":30}} ), depth0)) != null ? stack1 : "") + + " } from './" + + ((stack1 = alias2(alias1(depth0, "path", {"start":{"line":10,"column":47},"end":{"line":10,"column":56}} ), depth0)) != null ? stack1 : "") + + "';\n"; +},"8":function(container,depth0,helpers,partials,data) { + var stack1, alias1=container.lambda; + + return "import type { " + + ((stack1 = alias1(depth0, depth0)) != null ? stack1 : "") + + " } from './" + + ((stack1 = alias1(depth0, depth0)) != null ? stack1 : "") + + "';\n"; +},"10":function(container,depth0,helpers,partials,data) { + var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return ((stack1 = container.invokePartial(lookupProperty(partials,"exportInterface"),depth0,{"name":"exportInterface","data":data,"helpers":helpers,"partials":partials,"decorators":container.decorators})) != null ? stack1 : ""); +},"12":function(container,depth0,helpers,partials,data) { + var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return ((stack1 = lookupProperty(helpers,"equals").call(depth0 != null ? depth0 : (container.nullContext || {}),lookupProperty(depth0,"export"),"one-of",{"name":"equals","hash":{},"fn":container.program(13, data, 0),"inverse":container.program(15, data, 0),"data":data,"loc":{"start":{"line":20,"column":0},"end":{"line":34,"column":0}}})) != null ? stack1 : ""); +},"13":function(container,depth0,helpers,partials,data) { + var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return ((stack1 = container.invokePartial(lookupProperty(partials,"exportComposition"),depth0,{"name":"exportComposition","data":data,"helpers":helpers,"partials":partials,"decorators":container.decorators})) != null ? stack1 : ""); +},"15":function(container,depth0,helpers,partials,data) { + var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return ((stack1 = lookupProperty(helpers,"equals").call(depth0 != null ? depth0 : (container.nullContext || {}),lookupProperty(depth0,"export"),"any-of",{"name":"equals","hash":{},"fn":container.program(13, data, 0),"inverse":container.program(16, data, 0),"data":data,"loc":{"start":{"line":22,"column":0},"end":{"line":34,"column":0}}})) != null ? stack1 : ""); +},"16":function(container,depth0,helpers,partials,data) { + var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return ((stack1 = lookupProperty(helpers,"equals").call(depth0 != null ? depth0 : (container.nullContext || {}),lookupProperty(depth0,"export"),"all-of",{"name":"equals","hash":{},"fn":container.program(13, data, 0),"inverse":container.program(17, data, 0),"data":data,"loc":{"start":{"line":24,"column":0},"end":{"line":34,"column":0}}})) != null ? stack1 : ""); +},"17":function(container,depth0,helpers,partials,data) { + var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return ((stack1 = lookupProperty(helpers,"equals").call(depth0 != null ? depth0 : (container.nullContext || {}),lookupProperty(depth0,"export"),"enum",{"name":"equals","hash":{},"fn":container.program(18, data, 0),"inverse":container.program(19, data, 0),"data":data,"loc":{"start":{"line":26,"column":0},"end":{"line":34,"column":0}}})) != null ? stack1 : ""); +},"18":function(container,depth0,helpers,partials,data) { + var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return ((stack1 = lookupProperty(helpers,"if").call(depth0 != null ? depth0 : (container.nullContext || {}),lookupProperty(lookupProperty(data,"root"),"useUnionTypes"),{"name":"if","hash":{},"fn":container.program(19, data, 0),"inverse":container.program(21, data, 0),"data":data,"loc":{"start":{"line":27,"column":0},"end":{"line":31,"column":7}}})) != null ? stack1 : ""); +},"19":function(container,depth0,helpers,partials,data) { + var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return ((stack1 = container.invokePartial(lookupProperty(partials,"exportType"),depth0,{"name":"exportType","data":data,"helpers":helpers,"partials":partials,"decorators":container.decorators})) != null ? stack1 : ""); +},"21":function(container,depth0,helpers,partials,data) { + var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return ((stack1 = container.invokePartial(lookupProperty(partials,"exportEnum"),depth0,{"name":"exportEnum","data":data,"helpers":helpers,"partials":partials,"decorators":container.decorators})) != null ? stack1 : ""); +},"compiler":[8,">= 4.3.0"],"main":function(container,depth0,helpers,partials,data) { + var stack1, alias1=depth0 != null ? depth0 : (container.nullContext || {}), lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return ((stack1 = container.invokePartial(lookupProperty(partials,"header"),depth0,{"name":"header","data":data,"helpers":helpers,"partials":partials,"decorators":container.decorators})) != null ? stack1 : "") + + "\n" + + ((stack1 = lookupProperty(helpers,"if").call(alias1,lookupProperty(depth0,"imports"),{"name":"if","hash":{},"fn":container.program(1, data, 0),"inverse":container.noop,"data":data,"loc":{"start":{"line":3,"column":0},"end":{"line":16,"column":7}}})) != null ? stack1 : "") + + "\n" + + ((stack1 = lookupProperty(helpers,"equals").call(alias1,lookupProperty(depth0,"export"),"interface",{"name":"equals","hash":{},"fn":container.program(10, data, 0),"inverse":container.program(12, data, 0),"data":data,"loc":{"start":{"line":18,"column":0},"end":{"line":34,"column":11}}})) != null ? stack1 : ""); +},"usePartial":true,"useData":true}; + +var templateExportSchema = {"compiler":[8,">= 4.3.0"],"main":function(container,depth0,helpers,partials,data) { + var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return ((stack1 = container.invokePartial(lookupProperty(partials,"header"),depth0,{"name":"header","data":data,"helpers":helpers,"partials":partials,"decorators":container.decorators})) != null ? stack1 : "") + + "\nexport const $" + + ((stack1 = container.lambda(container.strict(depth0, "name", {"start":{"line":3,"column":17},"end":{"line":3,"column":21}} ), depth0)) != null ? stack1 : "") + + " = " + + ((stack1 = container.invokePartial(lookupProperty(partials,"schema"),depth0,{"name":"schema","data":data,"helpers":helpers,"partials":partials,"decorators":container.decorators})) != null ? stack1 : "") + + " as const;"; +},"usePartial":true,"useData":true}; + +var templateExportService = {"1":function(container,depth0,helpers,partials,data) { + var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return ((stack1 = lookupProperty(helpers,"if").call(depth0 != null ? depth0 : (container.nullContext || {}),lookupProperty(lookupProperty(data,"root"),"exportClient"),{"name":"if","hash":{},"fn":container.program(2, data, 0),"inverse":container.program(4, data, 0),"data":data,"loc":{"start":{"line":4,"column":0},"end":{"line":11,"column":7}}})) != null ? stack1 : "") + + "\n"; +},"2":function(container,depth0,helpers,partials,data) { + return "import { Injectable } from '@angular/core';\nimport type { Observable } from 'rxjs';\n"; +},"4":function(container,depth0,helpers,partials,data) { + return "import { Injectable } from '@angular/core';\nimport { HttpClient } from '@angular/common/http';\nimport type { Observable } from 'rxjs';\n"; +},"6":function(container,depth0,helpers,partials,data) { + var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return ((stack1 = lookupProperty(helpers,"each").call(depth0 != null ? depth0 : (container.nullContext || {}),lookupProperty(depth0,"imports"),{"name":"each","hash":{},"fn":container.program(7, data, 0),"inverse":container.noop,"data":data,"loc":{"start":{"line":15,"column":0},"end":{"line":25,"column":9}}})) != null ? stack1 : "") + + "\n"; +},"7":function(container,depth0,helpers,partials,data) { + var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return ((stack1 = lookupProperty(helpers,"if").call(depth0 != null ? depth0 : (container.nullContext || {}),lookupProperty(depth0,"typeName"),{"name":"if","hash":{},"fn":container.program(8, data, 0),"inverse":container.program(13, data, 0),"data":data,"loc":{"start":{"line":16,"column":0},"end":{"line":24,"column":7}}})) != null ? stack1 : ""); +},"8":function(container,depth0,helpers,partials,data) { + var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return ((stack1 = lookupProperty(helpers,"if").call(depth0 != null ? depth0 : (container.nullContext || {}),lookupProperty(depth0,"nodeModule"),{"name":"if","hash":{},"fn":container.program(9, data, 0),"inverse":container.program(11, data, 0),"data":data,"loc":{"start":{"line":17,"column":0},"end":{"line":21,"column":7}}})) != null ? stack1 : ""); +},"9":function(container,depth0,helpers,partials,data) { + var stack1, alias1=container.strict, alias2=container.lambda; + + return "import { " + + ((stack1 = alias2(alias1(depth0, "typeName", {"start":{"line":18,"column":12},"end":{"line":18,"column":25}} ), depth0)) != null ? stack1 : "") + + " } from '" + + ((stack1 = alias2(alias1(depth0, "path", {"start":{"line":18,"column":40},"end":{"line":18,"column":49}} ), depth0)) != null ? stack1 : "") + + "';\n"; +},"11":function(container,depth0,helpers,partials,data) { + var stack1, alias1=container.strict, alias2=container.lambda; + + return "import type { " + + ((stack1 = alias2(alias1(depth0, "typeName", {"start":{"line":20,"column":17},"end":{"line":20,"column":30}} ), depth0)) != null ? stack1 : "") + + " } from '../models/" + + ((stack1 = alias2(alias1(depth0, "path", {"start":{"line":20,"column":55},"end":{"line":20,"column":64}} ), depth0)) != null ? stack1 : "") + + "';\n"; +},"13":function(container,depth0,helpers,partials,data) { + var stack1, alias1=container.lambda; + + return "import type { " + + ((stack1 = alias1(depth0, depth0)) != null ? stack1 : "") + + " } from '../models/" + + ((stack1 = alias1(depth0, depth0)) != null ? stack1 : "") + + "';\n"; +},"15":function(container,depth0,helpers,partials,data) { + return "import type { CancelablePromise } from '../core/CancelablePromise';\n"; +},"17":function(container,depth0,helpers,partials,data) { + var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return ((stack1 = lookupProperty(helpers,"equals").call(depth0 != null ? depth0 : (container.nullContext || {}),lookupProperty(lookupProperty(data,"root"),"httpClient"),"angular",{"name":"equals","hash":{},"fn":container.program(18, data, 0),"inverse":container.program(20, data, 0),"data":data,"loc":{"start":{"line":32,"column":0},"end":{"line":36,"column":11}}})) != null ? stack1 : ""); +},"18":function(container,depth0,helpers,partials,data) { + return "import { BaseHttpRequest } from '../core/BaseHttpRequest';\n"; +},"20":function(container,depth0,helpers,partials,data) { + return "import type { BaseHttpRequest } from '../core/BaseHttpRequest';\n"; +},"22":function(container,depth0,helpers,partials,data) { + return "import { OpenAPI } from '../core/OpenAPI';\nimport { request as __request } from '../core/request';\n"; +},"24":function(container,depth0,helpers,partials,data) { + return "@Injectable()\n"; +},"26":function(container,depth0,helpers,partials,data) { + return "\n constructor(public readonly httpRequest: BaseHttpRequest) {}\n"; +},"28":function(container,depth0,helpers,partials,data) { + var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return ((stack1 = lookupProperty(helpers,"equals").call(depth0 != null ? depth0 : (container.nullContext || {}),lookupProperty(lookupProperty(data,"root"),"httpClient"),"angular",{"name":"equals","hash":{},"fn":container.program(29, data, 0),"inverse":container.noop,"data":data,"loc":{"start":{"line":50,"column":1},"end":{"line":53,"column":12}}})) != null ? stack1 : ""); +},"29":function(container,depth0,helpers,partials,data) { + return "\n constructor(public readonly http: HttpClient) {}\n"; +},"31":function(container,depth0,helpers,partials,data) { + var stack1, alias1=depth0 != null ? depth0 : (container.nullContext || {}), alias2=container.strict, alias3=container.lambda, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return " /**\n" + + ((stack1 = lookupProperty(helpers,"if").call(alias1,lookupProperty(depth0,"deprecated"),{"name":"if","hash":{},"fn":container.program(32, data, 0),"inverse":container.noop,"data":data,"loc":{"start":{"line":58,"column":1},"end":{"line":60,"column":8}}})) != null ? stack1 : "") + + ((stack1 = lookupProperty(helpers,"if").call(alias1,lookupProperty(depth0,"summary"),{"name":"if","hash":{},"fn":container.program(34, data, 0),"inverse":container.noop,"data":data,"loc":{"start":{"line":61,"column":1},"end":{"line":63,"column":8}}})) != null ? stack1 : "") + + ((stack1 = lookupProperty(helpers,"if").call(alias1,lookupProperty(depth0,"description"),{"name":"if","hash":{},"fn":container.program(36, data, 0),"inverse":container.noop,"data":data,"loc":{"start":{"line":64,"column":1},"end":{"line":66,"column":8}}})) != null ? stack1 : "") + + ((stack1 = lookupProperty(helpers,"unless").call(alias1,lookupProperty(lookupProperty(data,"root"),"useOptions"),{"name":"unless","hash":{},"fn":container.program(38, data, 0),"inverse":container.noop,"data":data,"loc":{"start":{"line":67,"column":1},"end":{"line":73,"column":12}}})) != null ? stack1 : "") + + ((stack1 = lookupProperty(helpers,"each").call(alias1,lookupProperty(depth0,"results"),{"name":"each","hash":{},"fn":container.program(43, data, 0),"inverse":container.noop,"data":data,"loc":{"start":{"line":74,"column":1},"end":{"line":76,"column":10}}})) != null ? stack1 : "") + + " * @throws ApiError\n */\n" + + ((stack1 = lookupProperty(helpers,"if").call(alias1,lookupProperty(lookupProperty(data,"root"),"exportClient"),{"name":"if","hash":{},"fn":container.program(45, data, 0),"inverse":container.program(50, data, 0),"data":data,"loc":{"start":{"line":79,"column":1},"end":{"line":95,"column":8}}})) != null ? stack1 : "") + + " method: '" + + ((stack1 = alias3(alias2(depth0, "method", {"start":{"line":96,"column":15},"end":{"line":96,"column":21}} ), depth0)) != null ? stack1 : "") + + "',\n url: '" + + ((stack1 = alias3(alias2(depth0, "path", {"start":{"line":97,"column":12},"end":{"line":97,"column":16}} ), depth0)) != null ? stack1 : "") + + "',\n" + + ((stack1 = lookupProperty(helpers,"if").call(alias1,lookupProperty(depth0,"parametersPath"),{"name":"if","hash":{},"fn":container.program(55, data, 0),"inverse":container.noop,"data":data,"loc":{"start":{"line":98,"column":3},"end":{"line":104,"column":10}}})) != null ? stack1 : "") + + ((stack1 = lookupProperty(helpers,"if").call(alias1,lookupProperty(depth0,"parametersCookie"),{"name":"if","hash":{},"fn":container.program(58, data, 0),"inverse":container.noop,"data":data,"loc":{"start":{"line":105,"column":3},"end":{"line":111,"column":10}}})) != null ? stack1 : "") + + ((stack1 = lookupProperty(helpers,"if").call(alias1,lookupProperty(depth0,"parametersHeader"),{"name":"if","hash":{},"fn":container.program(60, data, 0),"inverse":container.noop,"data":data,"loc":{"start":{"line":112,"column":3},"end":{"line":118,"column":10}}})) != null ? stack1 : "") + + ((stack1 = lookupProperty(helpers,"if").call(alias1,lookupProperty(depth0,"parametersQuery"),{"name":"if","hash":{},"fn":container.program(62, data, 0),"inverse":container.noop,"data":data,"loc":{"start":{"line":119,"column":3},"end":{"line":125,"column":10}}})) != null ? stack1 : "") + + ((stack1 = lookupProperty(helpers,"if").call(alias1,lookupProperty(depth0,"parametersForm"),{"name":"if","hash":{},"fn":container.program(64, data, 0),"inverse":container.noop,"data":data,"loc":{"start":{"line":126,"column":3},"end":{"line":132,"column":10}}})) != null ? stack1 : "") + + ((stack1 = lookupProperty(helpers,"if").call(alias1,lookupProperty(depth0,"parametersBody"),{"name":"if","hash":{},"fn":container.program(66, data, 0),"inverse":container.noop,"data":data,"loc":{"start":{"line":133,"column":3},"end":{"line":143,"column":10}}})) != null ? stack1 : "") + + ((stack1 = lookupProperty(helpers,"if").call(alias1,lookupProperty(depth0,"responseHeader"),{"name":"if","hash":{},"fn":container.program(73, data, 0),"inverse":container.noop,"data":data,"loc":{"start":{"line":144,"column":3},"end":{"line":146,"column":10}}})) != null ? stack1 : "") + + ((stack1 = lookupProperty(helpers,"if").call(alias1,lookupProperty(depth0,"errors"),{"name":"if","hash":{},"fn":container.program(75, data, 0),"inverse":container.noop,"data":data,"loc":{"start":{"line":147,"column":3},"end":{"line":153,"column":10}}})) != null ? stack1 : "") + + " });\n }\n\n"; +},"32":function(container,depth0,helpers,partials,data) { + return " * @deprecated\n"; +},"34":function(container,depth0,helpers,partials,data) { + var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return " * " + + ((stack1 = lookupProperty(helpers,"escapeComment").call(depth0 != null ? depth0 : (container.nullContext || {}),lookupProperty(depth0,"summary"),{"name":"escapeComment","hash":{},"data":data,"loc":{"start":{"line":62,"column":4},"end":{"line":62,"column":31}}})) != null ? stack1 : "") + + "\n"; +},"36":function(container,depth0,helpers,partials,data) { + var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return " * " + + ((stack1 = lookupProperty(helpers,"escapeComment").call(depth0 != null ? depth0 : (container.nullContext || {}),lookupProperty(depth0,"description"),{"name":"escapeComment","hash":{},"data":data,"loc":{"start":{"line":65,"column":4},"end":{"line":65,"column":35}}})) != null ? stack1 : "") + + "\n"; +},"38":function(container,depth0,helpers,partials,data) { + var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return ((stack1 = lookupProperty(helpers,"if").call(depth0 != null ? depth0 : (container.nullContext || {}),lookupProperty(depth0,"parameters"),{"name":"if","hash":{},"fn":container.program(39, data, 0),"inverse":container.noop,"data":data,"loc":{"start":{"line":68,"column":1},"end":{"line":72,"column":8}}})) != null ? stack1 : ""); +},"39":function(container,depth0,helpers,partials,data) { + var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return ((stack1 = lookupProperty(helpers,"each").call(depth0 != null ? depth0 : (container.nullContext || {}),lookupProperty(depth0,"parameters"),{"name":"each","hash":{},"fn":container.program(40, data, 0),"inverse":container.noop,"data":data,"loc":{"start":{"line":69,"column":1},"end":{"line":71,"column":10}}})) != null ? stack1 : ""); +},"40":function(container,depth0,helpers,partials,data) { + var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return " * @param " + + ((stack1 = container.lambda(container.strict(depth0, "name", {"start":{"line":70,"column":14},"end":{"line":70,"column":18}} ), depth0)) != null ? stack1 : "") + + " " + + ((stack1 = lookupProperty(helpers,"if").call(depth0 != null ? depth0 : (container.nullContext || {}),lookupProperty(depth0,"description"),{"name":"if","hash":{},"fn":container.program(41, data, 0),"inverse":container.noop,"data":data,"loc":{"start":{"line":70,"column":22},"end":{"line":70,"column":79}}})) != null ? stack1 : "") + + "\n"; +},"41":function(container,depth0,helpers,partials,data) { + var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return ((stack1 = lookupProperty(helpers,"escapeComment").call(depth0 != null ? depth0 : (container.nullContext || {}),lookupProperty(depth0,"description"),{"name":"escapeComment","hash":{},"data":data,"loc":{"start":{"line":70,"column":41},"end":{"line":70,"column":72}}})) != null ? stack1 : ""); +},"43":function(container,depth0,helpers,partials,data) { + var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return " * @returns " + + ((stack1 = container.lambda(container.strict(depth0, "type", {"start":{"line":75,"column":16},"end":{"line":75,"column":20}} ), depth0)) != null ? stack1 : "") + + " " + + ((stack1 = lookupProperty(helpers,"if").call(depth0 != null ? depth0 : (container.nullContext || {}),lookupProperty(depth0,"description"),{"name":"if","hash":{},"fn":container.program(41, data, 0),"inverse":container.noop,"data":data,"loc":{"start":{"line":75,"column":24},"end":{"line":75,"column":81}}})) != null ? stack1 : "") + + "\n"; +},"45":function(container,depth0,helpers,partials,data) { + var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return ((stack1 = lookupProperty(helpers,"equals").call(depth0 != null ? depth0 : (container.nullContext || {}),lookupProperty(lookupProperty(data,"root"),"httpClient"),"angular",{"name":"equals","hash":{},"fn":container.program(46, data, 0),"inverse":container.program(48, data, 0),"data":data,"loc":{"start":{"line":80,"column":1},"end":{"line":86,"column":12}}})) != null ? stack1 : ""); +},"46":function(container,depth0,helpers,partials,data) { + var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return " public " + + ((stack1 = container.lambda(container.strict(depth0, "name", {"start":{"line":81,"column":11},"end":{"line":81,"column":15}} ), depth0)) != null ? stack1 : "") + + "(" + + ((stack1 = container.invokePartial(lookupProperty(partials,"parameters"),depth0,{"name":"parameters","data":data,"helpers":helpers,"partials":partials,"decorators":container.decorators})) != null ? stack1 : "") + + "): Observable<" + + ((stack1 = container.invokePartial(lookupProperty(partials,"result"),depth0,{"name":"result","data":data,"helpers":helpers,"partials":partials,"decorators":container.decorators})) != null ? stack1 : "") + + "> {\n return this.httpRequest.request({\n"; +},"48":function(container,depth0,helpers,partials,data) { + var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return " public " + + ((stack1 = container.lambda(container.strict(depth0, "name", {"start":{"line":84,"column":11},"end":{"line":84,"column":15}} ), depth0)) != null ? stack1 : "") + + "(" + + ((stack1 = container.invokePartial(lookupProperty(partials,"parameters"),depth0,{"name":"parameters","data":data,"helpers":helpers,"partials":partials,"decorators":container.decorators})) != null ? stack1 : "") + + "): CancelablePromise<" + + ((stack1 = container.invokePartial(lookupProperty(partials,"result"),depth0,{"name":"result","data":data,"helpers":helpers,"partials":partials,"decorators":container.decorators})) != null ? stack1 : "") + + "> {\n return this.httpRequest.request({\n"; +},"50":function(container,depth0,helpers,partials,data) { + var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return ((stack1 = lookupProperty(helpers,"equals").call(depth0 != null ? depth0 : (container.nullContext || {}),lookupProperty(lookupProperty(data,"root"),"httpClient"),"angular",{"name":"equals","hash":{},"fn":container.program(51, data, 0),"inverse":container.program(53, data, 0),"data":data,"loc":{"start":{"line":88,"column":1},"end":{"line":94,"column":12}}})) != null ? stack1 : ""); +},"51":function(container,depth0,helpers,partials,data) { + var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return " public " + + ((stack1 = container.lambda(container.strict(depth0, "name", {"start":{"line":89,"column":11},"end":{"line":89,"column":15}} ), depth0)) != null ? stack1 : "") + + "(" + + ((stack1 = container.invokePartial(lookupProperty(partials,"parameters"),depth0,{"name":"parameters","data":data,"helpers":helpers,"partials":partials,"decorators":container.decorators})) != null ? stack1 : "") + + "): Observable<" + + ((stack1 = container.invokePartial(lookupProperty(partials,"result"),depth0,{"name":"result","data":data,"helpers":helpers,"partials":partials,"decorators":container.decorators})) != null ? stack1 : "") + + "> {\n return __request(OpenAPI, this.http, {\n"; +},"53":function(container,depth0,helpers,partials,data) { + var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return " public static " + + ((stack1 = container.lambda(container.strict(depth0, "name", {"start":{"line":92,"column":18},"end":{"line":92,"column":22}} ), depth0)) != null ? stack1 : "") + + "(" + + ((stack1 = container.invokePartial(lookupProperty(partials,"parameters"),depth0,{"name":"parameters","data":data,"helpers":helpers,"partials":partials,"decorators":container.decorators})) != null ? stack1 : "") + + "): CancelablePromise<" + + ((stack1 = container.invokePartial(lookupProperty(partials,"result"),depth0,{"name":"result","data":data,"helpers":helpers,"partials":partials,"decorators":container.decorators})) != null ? stack1 : "") + + "> {\n return __request(OpenAPI, {\n"; +},"55":function(container,depth0,helpers,partials,data) { + var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return " path: {\n" + + ((stack1 = lookupProperty(helpers,"each").call(depth0 != null ? depth0 : (container.nullContext || {}),lookupProperty(depth0,"parametersPath"),{"name":"each","hash":{},"fn":container.program(56, data, 0),"inverse":container.noop,"data":data,"loc":{"start":{"line":100,"column":4},"end":{"line":102,"column":13}}})) != null ? stack1 : "") + + " },\n"; +},"56":function(container,depth0,helpers,partials,data) { + var stack1, alias1=container.strict, alias2=container.lambda; + + return " '" + + ((stack1 = alias2(alias1(depth0, "prop", {"start":{"line":101,"column":8},"end":{"line":101,"column":12}} ), depth0)) != null ? stack1 : "") + + "': " + + ((stack1 = alias2(alias1(depth0, "name", {"start":{"line":101,"column":21},"end":{"line":101,"column":25}} ), depth0)) != null ? stack1 : "") + + ",\n"; +},"58":function(container,depth0,helpers,partials,data) { + var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return " cookies: {\n" + + ((stack1 = lookupProperty(helpers,"each").call(depth0 != null ? depth0 : (container.nullContext || {}),lookupProperty(depth0,"parametersCookie"),{"name":"each","hash":{},"fn":container.program(56, data, 0),"inverse":container.noop,"data":data,"loc":{"start":{"line":107,"column":4},"end":{"line":109,"column":13}}})) != null ? stack1 : "") + + " },\n"; +},"60":function(container,depth0,helpers,partials,data) { + var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return " headers: {\n" + + ((stack1 = lookupProperty(helpers,"each").call(depth0 != null ? depth0 : (container.nullContext || {}),lookupProperty(depth0,"parametersHeader"),{"name":"each","hash":{},"fn":container.program(56, data, 0),"inverse":container.noop,"data":data,"loc":{"start":{"line":114,"column":4},"end":{"line":116,"column":13}}})) != null ? stack1 : "") + + " },\n"; +},"62":function(container,depth0,helpers,partials,data) { + var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return " query: {\n" + + ((stack1 = lookupProperty(helpers,"each").call(depth0 != null ? depth0 : (container.nullContext || {}),lookupProperty(depth0,"parametersQuery"),{"name":"each","hash":{},"fn":container.program(56, data, 0),"inverse":container.noop,"data":data,"loc":{"start":{"line":121,"column":4},"end":{"line":123,"column":13}}})) != null ? stack1 : "") + + " },\n"; +},"64":function(container,depth0,helpers,partials,data) { + var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return " formData: {\n" + + ((stack1 = lookupProperty(helpers,"each").call(depth0 != null ? depth0 : (container.nullContext || {}),lookupProperty(depth0,"parametersForm"),{"name":"each","hash":{},"fn":container.program(56, data, 0),"inverse":container.noop,"data":data,"loc":{"start":{"line":128,"column":4},"end":{"line":130,"column":13}}})) != null ? stack1 : "") + + " },\n"; +},"66":function(container,depth0,helpers,partials,data) { + var stack1, alias1=depth0 != null ? depth0 : (container.nullContext || {}), lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return ((stack1 = lookupProperty(helpers,"equals").call(alias1,lookupProperty(lookupProperty(depth0,"parametersBody"),"in"),"formData",{"name":"equals","hash":{},"fn":container.program(67, data, 0),"inverse":container.noop,"data":data,"loc":{"start":{"line":134,"column":3},"end":{"line":136,"column":14}}})) != null ? stack1 : "") + + ((stack1 = lookupProperty(helpers,"equals").call(alias1,lookupProperty(lookupProperty(depth0,"parametersBody"),"in"),"body",{"name":"equals","hash":{},"fn":container.program(69, data, 0),"inverse":container.noop,"data":data,"loc":{"start":{"line":137,"column":3},"end":{"line":139,"column":14}}})) != null ? stack1 : "") + + ((stack1 = lookupProperty(helpers,"if").call(alias1,lookupProperty(lookupProperty(depth0,"parametersBody"),"mediaType"),{"name":"if","hash":{},"fn":container.program(71, data, 0),"inverse":container.noop,"data":data,"loc":{"start":{"line":140,"column":3},"end":{"line":142,"column":10}}})) != null ? stack1 : ""); +},"67":function(container,depth0,helpers,partials,data) { + var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return " formData: " + + ((stack1 = container.lambda(container.strict(lookupProperty(depth0,"parametersBody"), "name", {"start":{"line":135,"column":16},"end":{"line":135,"column":35}} ), depth0)) != null ? stack1 : "") + + ",\n"; +},"69":function(container,depth0,helpers,partials,data) { + var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return " body: " + + ((stack1 = container.lambda(container.strict(lookupProperty(depth0,"parametersBody"), "name", {"start":{"line":138,"column":12},"end":{"line":138,"column":31}} ), depth0)) != null ? stack1 : "") + + ",\n"; +},"71":function(container,depth0,helpers,partials,data) { + var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return " mediaType: '" + + ((stack1 = container.lambda(container.strict(lookupProperty(depth0,"parametersBody"), "mediaType", {"start":{"line":141,"column":18},"end":{"line":141,"column":42}} ), depth0)) != null ? stack1 : "") + + "',\n"; +},"73":function(container,depth0,helpers,partials,data) { + var stack1; + + return " responseHeader: '" + + ((stack1 = container.lambda(container.strict(depth0, "responseHeader", {"start":{"line":145,"column":23},"end":{"line":145,"column":37}} ), depth0)) != null ? stack1 : "") + + "',\n"; +},"75":function(container,depth0,helpers,partials,data) { + var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return " errors: {\n" + + ((stack1 = lookupProperty(helpers,"each").call(depth0 != null ? depth0 : (container.nullContext || {}),lookupProperty(depth0,"errors"),{"name":"each","hash":{},"fn":container.program(76, data, 0),"inverse":container.noop,"data":data,"loc":{"start":{"line":149,"column":4},"end":{"line":151,"column":13}}})) != null ? stack1 : "") + + " },\n"; +},"76":function(container,depth0,helpers,partials,data) { + var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return " " + + ((stack1 = container.lambda(container.strict(depth0, "code", {"start":{"line":150,"column":7},"end":{"line":150,"column":11}} ), depth0)) != null ? stack1 : "") + + ": `" + + ((stack1 = lookupProperty(helpers,"escapeDescription").call(depth0 != null ? depth0 : (container.nullContext || {}),lookupProperty(depth0,"description"),{"name":"escapeDescription","hash":{},"data":data,"loc":{"start":{"line":150,"column":17},"end":{"line":150,"column":52}}})) != null ? stack1 : "") + + "`,\n"; +},"compiler":[8,">= 4.3.0"],"main":function(container,depth0,helpers,partials,data) { + var stack1, alias1=depth0 != null ? depth0 : (container.nullContext || {}), alias2=container.strict, alias3=container.lambda, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return ((stack1 = container.invokePartial(lookupProperty(partials,"header"),depth0,{"name":"header","data":data,"helpers":helpers,"partials":partials,"decorators":container.decorators})) != null ? stack1 : "") + + "\n" + + ((stack1 = lookupProperty(helpers,"equals").call(alias1,lookupProperty(lookupProperty(data,"root"),"httpClient"),"angular",{"name":"equals","hash":{},"fn":container.program(1, data, 0),"inverse":container.noop,"data":data,"loc":{"start":{"line":3,"column":0},"end":{"line":13,"column":11}}})) != null ? stack1 : "") + + ((stack1 = lookupProperty(helpers,"if").call(alias1,lookupProperty(depth0,"imports"),{"name":"if","hash":{},"fn":container.program(6, data, 0),"inverse":container.noop,"data":data,"loc":{"start":{"line":14,"column":0},"end":{"line":27,"column":7}}})) != null ? stack1 : "") + + ((stack1 = lookupProperty(helpers,"notEquals").call(alias1,lookupProperty(lookupProperty(data,"root"),"httpClient"),"angular",{"name":"notEquals","hash":{},"fn":container.program(15, data, 0),"inverse":container.noop,"data":data,"loc":{"start":{"line":28,"column":0},"end":{"line":30,"column":14}}})) != null ? stack1 : "") + + ((stack1 = lookupProperty(helpers,"if").call(alias1,lookupProperty(lookupProperty(data,"root"),"exportClient"),{"name":"if","hash":{},"fn":container.program(17, data, 0),"inverse":container.program(22, data, 0),"data":data,"loc":{"start":{"line":31,"column":0},"end":{"line":40,"column":7}}})) != null ? stack1 : "") + + "\n" + + ((stack1 = lookupProperty(helpers,"equals").call(alias1,lookupProperty(lookupProperty(data,"root"),"httpClient"),"angular",{"name":"equals","hash":{},"fn":container.program(24, data, 0),"inverse":container.noop,"data":data,"loc":{"start":{"line":42,"column":0},"end":{"line":44,"column":11}}})) != null ? stack1 : "") + + "export class " + + ((stack1 = alias3(alias2(depth0, "name", {"start":{"line":45,"column":16},"end":{"line":45,"column":20}} ), depth0)) != null ? stack1 : "") + + ((stack1 = alias3(alias2(lookupProperty(data,"root"), "postfix", {"start":{"line":45,"column":26},"end":{"line":45,"column":39}} ), depth0)) != null ? stack1 : "") + + " {\n" + + ((stack1 = lookupProperty(helpers,"if").call(alias1,lookupProperty(lookupProperty(data,"root"),"exportClient"),{"name":"if","hash":{},"fn":container.program(26, data, 0),"inverse":container.program(28, data, 0),"data":data,"loc":{"start":{"line":46,"column":1},"end":{"line":54,"column":8}}})) != null ? stack1 : "") + + "\n" + + ((stack1 = lookupProperty(helpers,"each").call(alias1,lookupProperty(depth0,"operations"),{"name":"each","hash":{},"fn":container.program(31, data, 0),"inverse":container.noop,"data":data,"loc":{"start":{"line":56,"column":1},"end":{"line":157,"column":10}}})) != null ? stack1 : "") + + "}"; +},"usePartial":true,"useData":true}; + +var templateIndex = {"1":function(container,depth0,helpers,partials,data) { + var stack1, alias1=container.strict, alias2=container.lambda; + + return "export { " + + ((stack1 = alias2(alias1(depth0, "clientName", {"start":{"line":4,"column":12},"end":{"line":4,"column":22}} ), depth0)) != null ? stack1 : "") + + " } from './" + + ((stack1 = alias2(alias1(depth0, "clientName", {"start":{"line":4,"column":39},"end":{"line":4,"column":49}} ), depth0)) != null ? stack1 : "") + + "';\n\n"; +},"3":function(container,depth0,helpers,partials,data) { + var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return "export { ApiError } from './core/ApiError';\n" + + ((stack1 = lookupProperty(helpers,"if").call(depth0 != null ? depth0 : (container.nullContext || {}),lookupProperty(lookupProperty(data,"root"),"exportClient"),{"name":"if","hash":{},"fn":container.program(4, data, 0),"inverse":container.noop,"data":data,"loc":{"start":{"line":9,"column":0},"end":{"line":11,"column":7}}})) != null ? stack1 : "") + + "export { CancelablePromise, CancelError } from './core/CancelablePromise';\nexport { OpenAPI } from './core/OpenAPI';\nexport type { OpenAPIConfig } from './core/OpenAPI';\n"; +},"4":function(container,depth0,helpers,partials,data) { + return "export { BaseHttpRequest } from './core/BaseHttpRequest';\n"; +},"6":function(container,depth0,helpers,partials,data) { + var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return ((stack1 = lookupProperty(helpers,"if").call(depth0 != null ? depth0 : (container.nullContext || {}),lookupProperty(depth0,"models"),{"name":"if","hash":{},"fn":container.program(7, data, 0),"inverse":container.noop,"data":data,"loc":{"start":{"line":17,"column":0},"end":{"line":33,"column":7}}})) != null ? stack1 : ""); +},"7":function(container,depth0,helpers,partials,data) { + var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return "\n" + + ((stack1 = lookupProperty(helpers,"each").call(depth0 != null ? depth0 : (container.nullContext || {}),lookupProperty(depth0,"models"),{"name":"each","hash":{},"fn":container.program(8, data, 0),"inverse":container.noop,"data":data,"loc":{"start":{"line":19,"column":0},"end":{"line":32,"column":9}}})) != null ? stack1 : ""); +},"8":function(container,depth0,helpers,partials,data) { + var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return ((stack1 = lookupProperty(helpers,"if").call(depth0 != null ? depth0 : (container.nullContext || {}),lookupProperty(depth0,"isEmbedded"),{"name":"if","hash":{},"fn":container.program(9, data, 0),"inverse":container.program(11, data, 0),"data":data,"loc":{"start":{"line":20,"column":0},"end":{"line":31,"column":7}}})) != null ? stack1 : ""); +},"9":function(container,depth0,helpers,partials,data) { + return ""; +},"11":function(container,depth0,helpers,partials,data) { + var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return ((stack1 = lookupProperty(helpers,"if").call(depth0 != null ? depth0 : (container.nullContext || {}),lookupProperty(lookupProperty(data,"root"),"useUnionTypes"),{"name":"if","hash":{},"fn":container.program(12, data, 0),"inverse":container.program(14, data, 0),"data":data,"loc":{"start":{"line":22,"column":0},"end":{"line":30,"column":7}}})) != null ? stack1 : ""); +},"12":function(container,depth0,helpers,partials,data) { + var stack1, alias1=container.strict, alias2=container.lambda; + + return "export type { " + + ((stack1 = alias2(alias1(depth0, "name", {"start":{"line":23,"column":17},"end":{"line":23,"column":21}} ), depth0)) != null ? stack1 : "") + + " } from './models/" + + ((stack1 = alias2(alias1(depth0, "name", {"start":{"line":23,"column":45},"end":{"line":23,"column":49}} ), depth0)) != null ? stack1 : "") + + "';\n"; +},"14":function(container,depth0,helpers,partials,data) { + var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return ((stack1 = lookupProperty(helpers,"if").call(depth0 != null ? depth0 : (container.nullContext || {}),lookupProperty(depth0,"enum"),{"name":"if","hash":{},"fn":container.program(15, data, 0),"inverse":container.program(17, data, 0),"data":data,"loc":{"start":{"line":24,"column":0},"end":{"line":30,"column":0}}})) != null ? stack1 : ""); +},"15":function(container,depth0,helpers,partials,data) { + var stack1, alias1=container.strict, alias2=container.lambda; + + return "export { " + + ((stack1 = alias2(alias1(depth0, "name", {"start":{"line":25,"column":12},"end":{"line":25,"column":16}} ), depth0)) != null ? stack1 : "") + + " } from './models/" + + ((stack1 = alias2(alias1(depth0, "name", {"start":{"line":25,"column":40},"end":{"line":25,"column":44}} ), depth0)) != null ? stack1 : "") + + "';\n"; +},"17":function(container,depth0,helpers,partials,data) { + var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return ((stack1 = lookupProperty(helpers,"if").call(depth0 != null ? depth0 : (container.nullContext || {}),lookupProperty(depth0,"enums"),{"name":"if","hash":{},"fn":container.program(15, data, 0),"inverse":container.program(12, data, 0),"data":data,"loc":{"start":{"line":26,"column":0},"end":{"line":30,"column":0}}})) != null ? stack1 : ""); +},"19":function(container,depth0,helpers,partials,data) { + var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return ((stack1 = lookupProperty(helpers,"if").call(depth0 != null ? depth0 : (container.nullContext || {}),lookupProperty(depth0,"models"),{"name":"if","hash":{},"fn":container.program(20, data, 0),"inverse":container.noop,"data":data,"loc":{"start":{"line":36,"column":0},"end":{"line":44,"column":7}}})) != null ? stack1 : ""); +},"20":function(container,depth0,helpers,partials,data) { + var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return "\n" + + ((stack1 = lookupProperty(helpers,"each").call(depth0 != null ? depth0 : (container.nullContext || {}),lookupProperty(depth0,"models"),{"name":"each","hash":{},"fn":container.program(21, data, 0),"inverse":container.noop,"data":data,"loc":{"start":{"line":38,"column":0},"end":{"line":43,"column":9}}})) != null ? stack1 : ""); +},"21":function(container,depth0,helpers,partials,data) { + var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return ((stack1 = lookupProperty(helpers,"if").call(depth0 != null ? depth0 : (container.nullContext || {}),lookupProperty(depth0,"isEmbedded"),{"name":"if","hash":{},"fn":container.program(9, data, 0),"inverse":container.program(22, data, 0),"data":data,"loc":{"start":{"line":39,"column":0},"end":{"line":42,"column":7}}})) != null ? stack1 : ""); +},"22":function(container,depth0,helpers,partials,data) { + var stack1, alias1=container.strict, alias2=container.lambda; + + return "export { $" + + ((stack1 = alias2(alias1(depth0, "name", {"start":{"line":41,"column":13},"end":{"line":41,"column":17}} ), depth0)) != null ? stack1 : "") + + " } from './schemas/$" + + ((stack1 = alias2(alias1(depth0, "name", {"start":{"line":41,"column":43},"end":{"line":41,"column":47}} ), depth0)) != null ? stack1 : "") + + "';\n"; +},"24":function(container,depth0,helpers,partials,data) { + var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return ((stack1 = lookupProperty(helpers,"if").call(depth0 != null ? depth0 : (container.nullContext || {}),lookupProperty(depth0,"services"),{"name":"if","hash":{},"fn":container.program(25, data, 0),"inverse":container.noop,"data":data,"loc":{"start":{"line":47,"column":0},"end":{"line":52,"column":7}}})) != null ? stack1 : ""); +},"25":function(container,depth0,helpers,partials,data) { + var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return "\n" + + ((stack1 = lookupProperty(helpers,"each").call(depth0 != null ? depth0 : (container.nullContext || {}),lookupProperty(depth0,"services"),{"name":"each","hash":{},"fn":container.program(26, data, 0),"inverse":container.noop,"data":data,"loc":{"start":{"line":49,"column":0},"end":{"line":51,"column":9}}})) != null ? stack1 : ""); +},"26":function(container,depth0,helpers,partials,data) { + var stack1, alias1=container.strict, alias2=container.lambda, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return "export { " + + ((stack1 = alias2(alias1(depth0, "name", {"start":{"line":50,"column":12},"end":{"line":50,"column":16}} ), depth0)) != null ? stack1 : "") + + ((stack1 = alias2(alias1(lookupProperty(data,"root"), "postfix", {"start":{"line":50,"column":22},"end":{"line":50,"column":35}} ), depth0)) != null ? stack1 : "") + + " } from './services/" + + ((stack1 = alias2(alias1(depth0, "name", {"start":{"line":50,"column":61},"end":{"line":50,"column":65}} ), depth0)) != null ? stack1 : "") + + ((stack1 = alias2(alias1(lookupProperty(data,"root"), "postfix", {"start":{"line":50,"column":71},"end":{"line":50,"column":84}} ), depth0)) != null ? stack1 : "") + + "';\n"; +},"compiler":[8,">= 4.3.0"],"main":function(container,depth0,helpers,partials,data) { + var stack1, alias1=depth0 != null ? depth0 : (container.nullContext || {}), lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return ((stack1 = container.invokePartial(lookupProperty(partials,"header"),depth0,{"name":"header","data":data,"helpers":helpers,"partials":partials,"decorators":container.decorators})) != null ? stack1 : "") + + "\n" + + ((stack1 = lookupProperty(helpers,"if").call(alias1,lookupProperty(lookupProperty(data,"root"),"exportClient"),{"name":"if","hash":{},"fn":container.program(1, data, 0),"inverse":container.noop,"data":data,"loc":{"start":{"line":3,"column":0},"end":{"line":6,"column":7}}})) != null ? stack1 : "") + + ((stack1 = lookupProperty(helpers,"if").call(alias1,lookupProperty(lookupProperty(data,"root"),"exportCore"),{"name":"if","hash":{},"fn":container.program(3, data, 0),"inverse":container.noop,"data":data,"loc":{"start":{"line":7,"column":0},"end":{"line":15,"column":7}}})) != null ? stack1 : "") + + ((stack1 = lookupProperty(helpers,"if").call(alias1,lookupProperty(lookupProperty(data,"root"),"exportModels"),{"name":"if","hash":{},"fn":container.program(6, data, 0),"inverse":container.noop,"data":data,"loc":{"start":{"line":16,"column":0},"end":{"line":34,"column":7}}})) != null ? stack1 : "") + + ((stack1 = lookupProperty(helpers,"if").call(alias1,lookupProperty(lookupProperty(data,"root"),"exportSchemas"),{"name":"if","hash":{},"fn":container.program(19, data, 0),"inverse":container.noop,"data":data,"loc":{"start":{"line":35,"column":0},"end":{"line":45,"column":7}}})) != null ? stack1 : "") + + ((stack1 = lookupProperty(helpers,"if").call(alias1,lookupProperty(lookupProperty(data,"root"),"exportServices"),{"name":"if","hash":{},"fn":container.program(24, data, 0),"inverse":container.noop,"data":data,"loc":{"start":{"line":46,"column":0},"end":{"line":53,"column":7}}})) != null ? stack1 : ""); +},"usePartial":true,"useData":true}; + +var partialBase = {"1":function(container,depth0,helpers,partials,data) { + var stack1, alias1=depth0 != null ? depth0 : (container.nullContext || {}), lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return ((stack1 = lookupProperty(helpers,"equals").call(alias1,lookupProperty(lookupProperty(data,"root"),"httpClient"),"fetch",{"name":"equals","hash":{},"fn":container.program(2, data, 0),"inverse":container.noop,"data":data,"loc":{"start":{"line":2,"column":0},"end":{"line":2,"column":53}}})) != null ? stack1 : "") + + ((stack1 = lookupProperty(helpers,"equals").call(alias1,lookupProperty(lookupProperty(data,"root"),"httpClient"),"xhr",{"name":"equals","hash":{},"fn":container.program(2, data, 0),"inverse":container.noop,"data":data,"loc":{"start":{"line":3,"column":0},"end":{"line":3,"column":51}}})) != null ? stack1 : "") + + ((stack1 = lookupProperty(helpers,"equals").call(alias1,lookupProperty(lookupProperty(data,"root"),"httpClient"),"axios",{"name":"equals","hash":{},"fn":container.program(2, data, 0),"inverse":container.noop,"data":data,"loc":{"start":{"line":4,"column":0},"end":{"line":4,"column":53}}})) != null ? stack1 : "") + + ((stack1 = lookupProperty(helpers,"equals").call(alias1,lookupProperty(lookupProperty(data,"root"),"httpClient"),"angular",{"name":"equals","hash":{},"fn":container.program(2, data, 0),"inverse":container.noop,"data":data,"loc":{"start":{"line":5,"column":0},"end":{"line":5,"column":55}}})) != null ? stack1 : "") + + ((stack1 = lookupProperty(helpers,"equals").call(alias1,lookupProperty(lookupProperty(data,"root"),"httpClient"),"node",{"name":"equals","hash":{},"fn":container.program(2, data, 0),"inverse":container.noop,"data":data,"loc":{"start":{"line":6,"column":0},"end":{"line":6,"column":52}}})) != null ? stack1 : ""); +},"2":function(container,depth0,helpers,partials,data) { + return "Blob"; +},"4":function(container,depth0,helpers,partials,data) { + var stack1; + + return ((stack1 = container.lambda(container.strict(depth0, "base", {"start":{"line":8,"column":3},"end":{"line":8,"column":7}} ), depth0)) != null ? stack1 : ""); +},"compiler":[8,">= 4.3.0"],"main":function(container,depth0,helpers,partials,data) { + var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return ((stack1 = lookupProperty(helpers,"equals").call(depth0 != null ? depth0 : (container.nullContext || {}),lookupProperty(depth0,"base"),"binary",{"name":"equals","hash":{},"fn":container.program(1, data, 0),"inverse":container.program(4, data, 0),"data":data,"loc":{"start":{"line":1,"column":0},"end":{"line":9,"column":13}}})) != null ? stack1 : ""); +},"useData":true}; + +var partialExportComposition = {"1":function(container,depth0,helpers,partials,data) { + var stack1, alias1=depth0 != null ? depth0 : (container.nullContext || {}), lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return "/**\n" + + ((stack1 = lookupProperty(helpers,"if").call(alias1,lookupProperty(depth0,"description"),{"name":"if","hash":{},"fn":container.program(2, data, 0),"inverse":container.noop,"data":data,"loc":{"start":{"line":3,"column":0},"end":{"line":5,"column":7}}})) != null ? stack1 : "") + + ((stack1 = lookupProperty(helpers,"if").call(alias1,lookupProperty(depth0,"deprecated"),{"name":"if","hash":{},"fn":container.program(4, data, 0),"inverse":container.noop,"data":data,"loc":{"start":{"line":6,"column":0},"end":{"line":8,"column":7}}})) != null ? stack1 : "") + + " */\n"; +},"2":function(container,depth0,helpers,partials,data) { + var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return " * " + + ((stack1 = lookupProperty(helpers,"escapeComment").call(depth0 != null ? depth0 : (container.nullContext || {}),lookupProperty(depth0,"description"),{"name":"escapeComment","hash":{},"data":data,"loc":{"start":{"line":4,"column":3},"end":{"line":4,"column":34}}})) != null ? stack1 : "") + + "\n"; +},"4":function(container,depth0,helpers,partials,data) { + return " * @deprecated\n"; +},"6":function(container,depth0,helpers,partials,data) { + var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return ((stack1 = lookupProperty(helpers,"unless").call(depth0 != null ? depth0 : (container.nullContext || {}),lookupProperty(lookupProperty(data,"root"),"useUnionTypes"),{"name":"unless","hash":{},"fn":container.program(7, data, 0),"inverse":container.noop,"data":data,"loc":{"start":{"line":13,"column":0},"end":{"line":37,"column":11}}})) != null ? stack1 : ""); +},"7":function(container,depth0,helpers,partials,data) { + var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return "\nexport namespace " + + ((stack1 = container.lambda(container.strict(depth0, "name", {"start":{"line":15,"column":20},"end":{"line":15,"column":24}} ), depth0)) != null ? stack1 : "") + + " {\n\n" + + ((stack1 = lookupProperty(helpers,"each").call(depth0 != null ? depth0 : (container.nullContext || {}),lookupProperty(depth0,"enums"),{"name":"each","hash":{},"fn":container.program(8, data, 0),"inverse":container.noop,"data":data,"loc":{"start":{"line":17,"column":1},"end":{"line":34,"column":10}}})) != null ? stack1 : "") + + "\n}\n"; +},"8":function(container,depth0,helpers,partials,data) { + var stack1, alias1=depth0 != null ? depth0 : (container.nullContext || {}), lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return ((stack1 = lookupProperty(helpers,"ifdef").call(alias1,lookupProperty(depth0,"description"),lookupProperty(depth0,"deprecated"),{"name":"ifdef","hash":{},"fn":container.program(9, data, 0),"inverse":container.noop,"data":data,"loc":{"start":{"line":18,"column":1},"end":{"line":27,"column":11}}})) != null ? stack1 : "") + + " export enum " + + ((stack1 = container.lambda(container.strict(depth0, "name", {"start":{"line":28,"column":16},"end":{"line":28,"column":20}} ), depth0)) != null ? stack1 : "") + + " {\n" + + ((stack1 = lookupProperty(helpers,"each").call(alias1,lookupProperty(depth0,"enum"),{"name":"each","hash":{},"fn":container.program(14, data, 0),"inverse":container.noop,"data":data,"loc":{"start":{"line":29,"column":2},"end":{"line":31,"column":11}}})) != null ? stack1 : "") + + " }\n\n"; +},"9":function(container,depth0,helpers,partials,data) { + var stack1, alias1=depth0 != null ? depth0 : (container.nullContext || {}), lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return " /**\n" + + ((stack1 = lookupProperty(helpers,"if").call(alias1,lookupProperty(depth0,"description"),{"name":"if","hash":{},"fn":container.program(10, data, 0),"inverse":container.noop,"data":data,"loc":{"start":{"line":20,"column":1},"end":{"line":22,"column":8}}})) != null ? stack1 : "") + + ((stack1 = lookupProperty(helpers,"if").call(alias1,lookupProperty(depth0,"deprecated"),{"name":"if","hash":{},"fn":container.program(12, data, 0),"inverse":container.noop,"data":data,"loc":{"start":{"line":23,"column":1},"end":{"line":25,"column":8}}})) != null ? stack1 : "") + + " */\n"; +},"10":function(container,depth0,helpers,partials,data) { + var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return " * " + + ((stack1 = lookupProperty(helpers,"escapeComment").call(depth0 != null ? depth0 : (container.nullContext || {}),lookupProperty(depth0,"description"),{"name":"escapeComment","hash":{},"data":data,"loc":{"start":{"line":21,"column":4},"end":{"line":21,"column":35}}})) != null ? stack1 : "") + + "\n"; +},"12":function(container,depth0,helpers,partials,data) { + return " * @deprecated\n"; +},"14":function(container,depth0,helpers,partials,data) { + var stack1, alias1=container.strict, alias2=container.lambda; + + return " " + + ((stack1 = alias2(alias1(depth0, "name", {"start":{"line":30,"column":5},"end":{"line":30,"column":9}} ), depth0)) != null ? stack1 : "") + + " = " + + ((stack1 = alias2(alias1(depth0, "value", {"start":{"line":30,"column":18},"end":{"line":30,"column":23}} ), depth0)) != null ? stack1 : "") + + ",\n"; +},"compiler":[8,">= 4.3.0"],"main":function(container,depth0,helpers,partials,data) { + var stack1, alias1=depth0 != null ? depth0 : (container.nullContext || {}), lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return ((stack1 = lookupProperty(helpers,"ifdef").call(alias1,lookupProperty(depth0,"description"),lookupProperty(depth0,"deprecated"),{"name":"ifdef","hash":{},"fn":container.program(1, data, 0),"inverse":container.noop,"data":data,"loc":{"start":{"line":1,"column":0},"end":{"line":10,"column":10}}})) != null ? stack1 : "") + + "export type " + + ((stack1 = container.lambda(container.strict(depth0, "name", {"start":{"line":11,"column":15},"end":{"line":11,"column":19}} ), depth0)) != null ? stack1 : "") + + " = " + + ((stack1 = container.invokePartial(lookupProperty(partials,"type"),depth0,{"name":"type","hash":{"parent":lookupProperty(depth0,"name")},"data":data,"helpers":helpers,"partials":partials,"decorators":container.decorators})) != null ? stack1 : "") + + ";\n" + + ((stack1 = lookupProperty(helpers,"if").call(alias1,lookupProperty(depth0,"enums"),{"name":"if","hash":{},"fn":container.program(6, data, 0),"inverse":container.noop,"data":data,"loc":{"start":{"line":12,"column":0},"end":{"line":38,"column":7}}})) != null ? stack1 : ""); +},"usePartial":true,"useData":true}; + +var partialExportEnum = {"1":function(container,depth0,helpers,partials,data) { + var stack1, alias1=depth0 != null ? depth0 : (container.nullContext || {}), lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return "/**\n" + + ((stack1 = lookupProperty(helpers,"if").call(alias1,lookupProperty(depth0,"description"),{"name":"if","hash":{},"fn":container.program(2, data, 0),"inverse":container.noop,"data":data,"loc":{"start":{"line":3,"column":0},"end":{"line":5,"column":7}}})) != null ? stack1 : "") + + ((stack1 = lookupProperty(helpers,"if").call(alias1,lookupProperty(depth0,"deprecated"),{"name":"if","hash":{},"fn":container.program(4, data, 0),"inverse":container.noop,"data":data,"loc":{"start":{"line":6,"column":0},"end":{"line":8,"column":7}}})) != null ? stack1 : "") + + " */\n"; +},"2":function(container,depth0,helpers,partials,data) { + var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return " * " + + ((stack1 = lookupProperty(helpers,"escapeComment").call(depth0 != null ? depth0 : (container.nullContext || {}),lookupProperty(depth0,"description"),{"name":"escapeComment","hash":{},"data":data,"loc":{"start":{"line":4,"column":3},"end":{"line":4,"column":34}}})) != null ? stack1 : "") + + "\n"; +},"4":function(container,depth0,helpers,partials,data) { + return " * @deprecated\n"; +},"6":function(container,depth0,helpers,partials,data) { + var stack1, alias1=depth0 != null ? depth0 : (container.nullContext || {}), lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return ((stack1 = lookupProperty(helpers,"if").call(alias1,lookupProperty(depth0,"description"),{"name":"if","hash":{},"fn":container.program(7, data, 0),"inverse":container.noop,"data":data,"loc":{"start":{"line":13,"column":1},"end":{"line":17,"column":8}}})) != null ? stack1 : "") + + ((stack1 = lookupProperty(helpers,"containsSpaces").call(alias1,lookupProperty(depth0,"name"),{"name":"containsSpaces","hash":{},"fn":container.program(9, data, 0),"inverse":container.program(11, data, 0),"data":data,"loc":{"start":{"line":18,"column":1},"end":{"line":22,"column":20}}})) != null ? stack1 : ""); +},"7":function(container,depth0,helpers,partials,data) { + var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return " /**\n * " + + ((stack1 = lookupProperty(helpers,"escapeComment").call(depth0 != null ? depth0 : (container.nullContext || {}),lookupProperty(depth0,"description"),{"name":"escapeComment","hash":{},"data":data,"loc":{"start":{"line":15,"column":4},"end":{"line":15,"column":35}}})) != null ? stack1 : "") + + "\n */\n"; +},"9":function(container,depth0,helpers,partials,data) { + var stack1, alias1=container.strict, alias2=container.lambda; + + return " '" + + ((stack1 = alias2(alias1(depth0, "name", {"start":{"line":19,"column":5},"end":{"line":19,"column":9}} ), depth0)) != null ? stack1 : "") + + "' = " + + ((stack1 = alias2(alias1(depth0, "value", {"start":{"line":19,"column":19},"end":{"line":19,"column":24}} ), depth0)) != null ? stack1 : "") + + ",\n"; +},"11":function(container,depth0,helpers,partials,data) { + var stack1, alias1=container.strict, alias2=container.lambda; + + return " " + + ((stack1 = alias2(alias1(depth0, "name", {"start":{"line":21,"column":4},"end":{"line":21,"column":8}} ), depth0)) != null ? stack1 : "") + + " = " + + ((stack1 = alias2(alias1(depth0, "value", {"start":{"line":21,"column":17},"end":{"line":21,"column":22}} ), depth0)) != null ? stack1 : "") + + ",\n"; +},"compiler":[8,">= 4.3.0"],"main":function(container,depth0,helpers,partials,data) { + var stack1, alias1=depth0 != null ? depth0 : (container.nullContext || {}), lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return ((stack1 = lookupProperty(helpers,"ifdef").call(alias1,lookupProperty(depth0,"description"),lookupProperty(depth0,"deprecated"),{"name":"ifdef","hash":{},"fn":container.program(1, data, 0),"inverse":container.noop,"data":data,"loc":{"start":{"line":1,"column":0},"end":{"line":10,"column":10}}})) != null ? stack1 : "") + + "export enum " + + ((stack1 = container.lambda(container.strict(depth0, "name", {"start":{"line":11,"column":15},"end":{"line":11,"column":19}} ), depth0)) != null ? stack1 : "") + + " {\n" + + ((stack1 = lookupProperty(helpers,"each").call(alias1,lookupProperty(depth0,"enum"),{"name":"each","hash":{},"fn":container.program(6, data, 0),"inverse":container.noop,"data":data,"loc":{"start":{"line":12,"column":1},"end":{"line":23,"column":10}}})) != null ? stack1 : "") + + "}"; +},"useData":true}; + +var partialExportInterface = {"1":function(container,depth0,helpers,partials,data) { + var stack1, alias1=depth0 != null ? depth0 : (container.nullContext || {}), lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return "/**\n" + + ((stack1 = lookupProperty(helpers,"if").call(alias1,lookupProperty(depth0,"description"),{"name":"if","hash":{},"fn":container.program(2, data, 0),"inverse":container.noop,"data":data,"loc":{"start":{"line":3,"column":0},"end":{"line":5,"column":7}}})) != null ? stack1 : "") + + ((stack1 = lookupProperty(helpers,"if").call(alias1,lookupProperty(depth0,"deprecated"),{"name":"if","hash":{},"fn":container.program(4, data, 0),"inverse":container.noop,"data":data,"loc":{"start":{"line":6,"column":0},"end":{"line":8,"column":7}}})) != null ? stack1 : "") + + " */\n"; +},"2":function(container,depth0,helpers,partials,data) { + var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return " * " + + ((stack1 = lookupProperty(helpers,"escapeComment").call(depth0 != null ? depth0 : (container.nullContext || {}),lookupProperty(depth0,"description"),{"name":"escapeComment","hash":{},"data":data,"loc":{"start":{"line":4,"column":3},"end":{"line":4,"column":34}}})) != null ? stack1 : "") + + "\n"; +},"4":function(container,depth0,helpers,partials,data) { + return " * @deprecated\n"; +},"6":function(container,depth0,helpers,partials,data,blockParams,depths) { + var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return ((stack1 = lookupProperty(helpers,"ifdef").call(depth0 != null ? depth0 : (container.nullContext || {}),lookupProperty(depth0,"description"),lookupProperty(depth0,"deprecated"),{"name":"ifdef","hash":{},"fn":container.program(7, data, 0, blockParams, depths),"inverse":container.noop,"data":data,"loc":{"start":{"line":13,"column":1},"end":{"line":22,"column":11}}})) != null ? stack1 : "") + + " " + + ((stack1 = container.invokePartial(lookupProperty(partials,"isReadOnly"),depth0,{"name":"isReadOnly","data":data,"helpers":helpers,"partials":partials,"decorators":container.decorators})) != null ? stack1 : "") + + ((stack1 = container.lambda(container.strict(depth0, "name", {"start":{"line":23,"column":19},"end":{"line":23,"column":23}} ), depth0)) != null ? stack1 : "") + + ((stack1 = container.invokePartial(lookupProperty(partials,"isRequired"),depth0,{"name":"isRequired","data":data,"helpers":helpers,"partials":partials,"decorators":container.decorators})) != null ? stack1 : "") + + ": " + + ((stack1 = container.invokePartial(lookupProperty(partials,"type"),depth0,{"name":"type","hash":{"parent":lookupProperty(depths[1],"name")},"data":data,"helpers":helpers,"partials":partials,"decorators":container.decorators})) != null ? stack1 : "") + + ";\n"; +},"7":function(container,depth0,helpers,partials,data) { + var stack1, alias1=depth0 != null ? depth0 : (container.nullContext || {}), lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return " /**\n" + + ((stack1 = lookupProperty(helpers,"if").call(alias1,lookupProperty(depth0,"description"),{"name":"if","hash":{},"fn":container.program(8, data, 0),"inverse":container.noop,"data":data,"loc":{"start":{"line":15,"column":1},"end":{"line":17,"column":8}}})) != null ? stack1 : "") + + ((stack1 = lookupProperty(helpers,"if").call(alias1,lookupProperty(depth0,"deprecated"),{"name":"if","hash":{},"fn":container.program(10, data, 0),"inverse":container.noop,"data":data,"loc":{"start":{"line":18,"column":1},"end":{"line":20,"column":8}}})) != null ? stack1 : "") + + " */\n"; +},"8":function(container,depth0,helpers,partials,data) { + var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return " * " + + ((stack1 = lookupProperty(helpers,"escapeComment").call(depth0 != null ? depth0 : (container.nullContext || {}),lookupProperty(depth0,"description"),{"name":"escapeComment","hash":{},"data":data,"loc":{"start":{"line":16,"column":4},"end":{"line":16,"column":35}}})) != null ? stack1 : "") + + "\n"; +},"10":function(container,depth0,helpers,partials,data) { + return " * @deprecated\n"; +},"12":function(container,depth0,helpers,partials,data) { + var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return ((stack1 = lookupProperty(helpers,"unless").call(depth0 != null ? depth0 : (container.nullContext || {}),lookupProperty(lookupProperty(data,"root"),"useUnionTypes"),{"name":"unless","hash":{},"fn":container.program(13, data, 0),"inverse":container.noop,"data":data,"loc":{"start":{"line":27,"column":0},"end":{"line":46,"column":11}}})) != null ? stack1 : ""); +},"13":function(container,depth0,helpers,partials,data) { + var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return "\nexport namespace " + + ((stack1 = container.lambda(container.strict(depth0, "name", {"start":{"line":29,"column":20},"end":{"line":29,"column":24}} ), depth0)) != null ? stack1 : "") + + " {\n\n" + + ((stack1 = lookupProperty(helpers,"each").call(depth0 != null ? depth0 : (container.nullContext || {}),lookupProperty(depth0,"enums"),{"name":"each","hash":{},"fn":container.program(14, data, 0),"inverse":container.noop,"data":data,"loc":{"start":{"line":31,"column":1},"end":{"line":43,"column":10}}})) != null ? stack1 : "") + + "\n}\n"; +},"14":function(container,depth0,helpers,partials,data) { + var stack1, alias1=depth0 != null ? depth0 : (container.nullContext || {}), lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return ((stack1 = lookupProperty(helpers,"if").call(alias1,lookupProperty(depth0,"description"),{"name":"if","hash":{},"fn":container.program(15, data, 0),"inverse":container.noop,"data":data,"loc":{"start":{"line":32,"column":1},"end":{"line":36,"column":8}}})) != null ? stack1 : "") + + " export enum " + + ((stack1 = container.lambda(container.strict(depth0, "name", {"start":{"line":37,"column":16},"end":{"line":37,"column":20}} ), depth0)) != null ? stack1 : "") + + " {\n" + + ((stack1 = lookupProperty(helpers,"each").call(alias1,lookupProperty(depth0,"enum"),{"name":"each","hash":{},"fn":container.program(17, data, 0),"inverse":container.noop,"data":data,"loc":{"start":{"line":38,"column":2},"end":{"line":40,"column":11}}})) != null ? stack1 : "") + + " }\n\n"; +},"15":function(container,depth0,helpers,partials,data) { + var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return " /**\n * " + + ((stack1 = lookupProperty(helpers,"escapeComment").call(depth0 != null ? depth0 : (container.nullContext || {}),lookupProperty(depth0,"description"),{"name":"escapeComment","hash":{},"data":data,"loc":{"start":{"line":34,"column":4},"end":{"line":34,"column":35}}})) != null ? stack1 : "") + + "\n */\n"; +},"17":function(container,depth0,helpers,partials,data) { + var stack1, alias1=container.strict, alias2=container.lambda; + + return " " + + ((stack1 = alias2(alias1(depth0, "name", {"start":{"line":39,"column":5},"end":{"line":39,"column":9}} ), depth0)) != null ? stack1 : "") + + " = " + + ((stack1 = alias2(alias1(depth0, "value", {"start":{"line":39,"column":18},"end":{"line":39,"column":23}} ), depth0)) != null ? stack1 : "") + + ",\n"; +},"compiler":[8,">= 4.3.0"],"main":function(container,depth0,helpers,partials,data,blockParams,depths) { + var stack1, alias1=depth0 != null ? depth0 : (container.nullContext || {}), lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return ((stack1 = lookupProperty(helpers,"ifdef").call(alias1,lookupProperty(depth0,"description"),lookupProperty(depth0,"deprecated"),{"name":"ifdef","hash":{},"fn":container.program(1, data, 0, blockParams, depths),"inverse":container.noop,"data":data,"loc":{"start":{"line":1,"column":0},"end":{"line":10,"column":10}}})) != null ? stack1 : "") + + "export type " + + ((stack1 = container.lambda(container.strict(depth0, "name", {"start":{"line":11,"column":15},"end":{"line":11,"column":19}} ), depth0)) != null ? stack1 : "") + + " = {\n" + + ((stack1 = lookupProperty(helpers,"each").call(alias1,lookupProperty(depth0,"properties"),{"name":"each","hash":{},"fn":container.program(6, data, 0, blockParams, depths),"inverse":container.noop,"data":data,"loc":{"start":{"line":12,"column":1},"end":{"line":24,"column":10}}})) != null ? stack1 : "") + + "};\n" + + ((stack1 = lookupProperty(helpers,"if").call(alias1,lookupProperty(depth0,"enums"),{"name":"if","hash":{},"fn":container.program(12, data, 0, blockParams, depths),"inverse":container.noop,"data":data,"loc":{"start":{"line":26,"column":0},"end":{"line":47,"column":7}}})) != null ? stack1 : ""); +},"usePartial":true,"useData":true,"useDepths":true}; + +var partialExportType = {"1":function(container,depth0,helpers,partials,data) { + var stack1, alias1=depth0 != null ? depth0 : (container.nullContext || {}), lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return "/**\n" + + ((stack1 = lookupProperty(helpers,"if").call(alias1,lookupProperty(depth0,"description"),{"name":"if","hash":{},"fn":container.program(2, data, 0),"inverse":container.noop,"data":data,"loc":{"start":{"line":3,"column":0},"end":{"line":5,"column":7}}})) != null ? stack1 : "") + + ((stack1 = lookupProperty(helpers,"if").call(alias1,lookupProperty(depth0,"deprecated"),{"name":"if","hash":{},"fn":container.program(4, data, 0),"inverse":container.noop,"data":data,"loc":{"start":{"line":6,"column":0},"end":{"line":8,"column":7}}})) != null ? stack1 : "") + + " */\n"; +},"2":function(container,depth0,helpers,partials,data) { + var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return " * " + + ((stack1 = lookupProperty(helpers,"escapeComment").call(depth0 != null ? depth0 : (container.nullContext || {}),lookupProperty(depth0,"description"),{"name":"escapeComment","hash":{},"data":data,"loc":{"start":{"line":4,"column":3},"end":{"line":4,"column":34}}})) != null ? stack1 : "") + + "\n"; +},"4":function(container,depth0,helpers,partials,data) { + return " * @deprecated\n"; +},"compiler":[8,">= 4.3.0"],"main":function(container,depth0,helpers,partials,data) { + var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return ((stack1 = lookupProperty(helpers,"ifdef").call(depth0 != null ? depth0 : (container.nullContext || {}),lookupProperty(depth0,"description"),lookupProperty(depth0,"deprecated"),{"name":"ifdef","hash":{},"fn":container.program(1, data, 0),"inverse":container.noop,"data":data,"loc":{"start":{"line":1,"column":0},"end":{"line":10,"column":10}}})) != null ? stack1 : "") + + "export type " + + ((stack1 = container.lambda(container.strict(depth0, "name", {"start":{"line":11,"column":15},"end":{"line":11,"column":19}} ), depth0)) != null ? stack1 : "") + + " = " + + ((stack1 = container.invokePartial(lookupProperty(partials,"type"),depth0,{"name":"type","data":data,"helpers":helpers,"partials":partials,"decorators":container.decorators})) != null ? stack1 : "") + + ";"; +},"usePartial":true,"useData":true}; + +var partialHeader = {"compiler":[8,">= 4.3.0"],"main":function(container,depth0,helpers,partials,data) { + return "/* istanbul ignore file */\n/* tslint:disable */\n/* eslint-disable */"; +},"useData":true}; + +var partialIsNullable = {"1":function(container,depth0,helpers,partials,data) { + return " | null"; +},"compiler":[8,">= 4.3.0"],"main":function(container,depth0,helpers,partials,data) { + var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return ((stack1 = lookupProperty(helpers,"if").call(depth0 != null ? depth0 : (container.nullContext || {}),lookupProperty(depth0,"isNullable"),{"name":"if","hash":{},"fn":container.program(1, data, 0),"inverse":container.noop,"data":data,"loc":{"start":{"line":1,"column":0},"end":{"line":1,"column":32}}})) != null ? stack1 : ""); +},"useData":true}; + +var partialIsReadOnly = {"1":function(container,depth0,helpers,partials,data) { + return "readonly "; +},"compiler":[8,">= 4.3.0"],"main":function(container,depth0,helpers,partials,data) { + var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return ((stack1 = lookupProperty(helpers,"if").call(depth0 != null ? depth0 : (container.nullContext || {}),lookupProperty(depth0,"isReadOnly"),{"name":"if","hash":{},"fn":container.program(1, data, 0),"inverse":container.noop,"data":data,"loc":{"start":{"line":1,"column":0},"end":{"line":1,"column":34}}})) != null ? stack1 : ""); +},"useData":true}; + +var partialIsRequired = {"1":function(container,depth0,helpers,partials,data) { + var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return ((stack1 = lookupProperty(helpers,"unless").call(depth0 != null ? depth0 : (container.nullContext || {}),lookupProperty(depth0,"isRequired"),{"name":"unless","hash":{},"fn":container.program(2, data, 0),"inverse":container.program(4, data, 0),"data":data,"loc":{"start":{"line":2,"column":0},"end":{"line":2,"column":54}}})) != null ? stack1 : ""); +},"2":function(container,depth0,helpers,partials,data) { + return "?"; +},"4":function(container,depth0,helpers,partials,data) { + var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return ((stack1 = lookupProperty(helpers,"if").call(depth0 != null ? depth0 : (container.nullContext || {}),lookupProperty(depth0,"default"),{"name":"if","hash":{},"fn":container.program(2, data, 0),"inverse":container.noop,"data":data,"loc":{"start":{"line":2,"column":23},"end":{"line":2,"column":43}}})) != null ? stack1 : ""); +},"6":function(container,depth0,helpers,partials,data) { + var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return ((stack1 = lookupProperty(helpers,"unless").call(depth0 != null ? depth0 : (container.nullContext || {}),lookupProperty(depth0,"isRequired"),{"name":"unless","hash":{},"fn":container.program(7, data, 0),"inverse":container.noop,"data":data,"loc":{"start":{"line":4,"column":0},"end":{"line":4,"column":64}}})) != null ? stack1 : ""); +},"7":function(container,depth0,helpers,partials,data) { + var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return ((stack1 = lookupProperty(helpers,"unless").call(depth0 != null ? depth0 : (container.nullContext || {}),lookupProperty(depth0,"default"),{"name":"unless","hash":{},"fn":container.program(2, data, 0),"inverse":container.noop,"data":data,"loc":{"start":{"line":4,"column":22},"end":{"line":4,"column":53}}})) != null ? stack1 : ""); +},"compiler":[8,">= 4.3.0"],"main":function(container,depth0,helpers,partials,data) { + var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return ((stack1 = lookupProperty(helpers,"if").call(depth0 != null ? depth0 : (container.nullContext || {}),lookupProperty(lookupProperty(data,"root"),"useOptions"),{"name":"if","hash":{},"fn":container.program(1, data, 0),"inverse":container.program(6, data, 0),"data":data,"loc":{"start":{"line":1,"column":0},"end":{"line":5,"column":9}}})) != null ? stack1 : ""); +},"useData":true}; + +var partialParameters = {"1":function(container,depth0,helpers,partials,data) { + var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return ((stack1 = lookupProperty(helpers,"if").call(depth0 != null ? depth0 : (container.nullContext || {}),lookupProperty(lookupProperty(data,"root"),"useOptions"),{"name":"if","hash":{},"fn":container.program(2, data, 0),"inverse":container.program(12, data, 0),"data":data,"loc":{"start":{"line":2,"column":0},"end":{"line":27,"column":7}}})) != null ? stack1 : ""); +},"2":function(container,depth0,helpers,partials,data) { + var stack1, alias1=depth0 != null ? depth0 : (container.nullContext || {}), lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return "{\n" + + ((stack1 = lookupProperty(helpers,"each").call(alias1,lookupProperty(depth0,"parameters"),{"name":"each","hash":{},"fn":container.program(3, data, 0),"inverse":container.noop,"data":data,"loc":{"start":{"line":4,"column":0},"end":{"line":6,"column":9}}})) != null ? stack1 : "") + + "}: {\n" + + ((stack1 = lookupProperty(helpers,"each").call(alias1,lookupProperty(depth0,"parameters"),{"name":"each","hash":{},"fn":container.program(6, data, 0),"inverse":container.noop,"data":data,"loc":{"start":{"line":8,"column":0},"end":{"line":20,"column":9}}})) != null ? stack1 : "") + + "}"; +},"3":function(container,depth0,helpers,partials,data) { + var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return ((stack1 = container.lambda(container.strict(depth0, "name", {"start":{"line":5,"column":3},"end":{"line":5,"column":7}} ), depth0)) != null ? stack1 : "") + + ((stack1 = lookupProperty(helpers,"if").call(depth0 != null ? depth0 : (container.nullContext || {}),lookupProperty(depth0,"default"),{"name":"if","hash":{},"fn":container.program(4, data, 0),"inverse":container.noop,"data":data,"loc":{"start":{"line":5,"column":10},"end":{"line":5,"column":48}}})) != null ? stack1 : "") + + ",\n"; +},"4":function(container,depth0,helpers,partials,data) { + var stack1; + + return " = " + + ((stack1 = container.lambda(container.strict(depth0, "default", {"start":{"line":5,"column":31},"end":{"line":5,"column":38}} ), depth0)) != null ? stack1 : ""); +},"6":function(container,depth0,helpers,partials,data) { + var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return ((stack1 = lookupProperty(helpers,"ifdef").call(depth0 != null ? depth0 : (container.nullContext || {}),lookupProperty(depth0,"description"),lookupProperty(depth0,"deprecated"),{"name":"ifdef","hash":{},"fn":container.program(7, data, 0),"inverse":container.noop,"data":data,"loc":{"start":{"line":9,"column":0},"end":{"line":18,"column":10}}})) != null ? stack1 : "") + + ((stack1 = container.lambda(container.strict(depth0, "name", {"start":{"line":19,"column":3},"end":{"line":19,"column":7}} ), depth0)) != null ? stack1 : "") + + ((stack1 = container.invokePartial(lookupProperty(partials,"isRequired"),depth0,{"name":"isRequired","data":data,"helpers":helpers,"partials":partials,"decorators":container.decorators})) != null ? stack1 : "") + + ": " + + ((stack1 = container.invokePartial(lookupProperty(partials,"type"),depth0,{"name":"type","data":data,"helpers":helpers,"partials":partials,"decorators":container.decorators})) != null ? stack1 : "") + + ",\n"; +},"7":function(container,depth0,helpers,partials,data) { + var stack1, alias1=depth0 != null ? depth0 : (container.nullContext || {}), lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return "/**\n" + + ((stack1 = lookupProperty(helpers,"if").call(alias1,lookupProperty(depth0,"description"),{"name":"if","hash":{},"fn":container.program(8, data, 0),"inverse":container.noop,"data":data,"loc":{"start":{"line":11,"column":0},"end":{"line":13,"column":7}}})) != null ? stack1 : "") + + ((stack1 = lookupProperty(helpers,"if").call(alias1,lookupProperty(depth0,"deprecated"),{"name":"if","hash":{},"fn":container.program(10, data, 0),"inverse":container.noop,"data":data,"loc":{"start":{"line":14,"column":0},"end":{"line":16,"column":7}}})) != null ? stack1 : "") + + " */\n"; +},"8":function(container,depth0,helpers,partials,data) { + var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return " * " + + ((stack1 = lookupProperty(helpers,"escapeComment").call(depth0 != null ? depth0 : (container.nullContext || {}),lookupProperty(depth0,"description"),{"name":"escapeComment","hash":{},"data":data,"loc":{"start":{"line":12,"column":3},"end":{"line":12,"column":34}}})) != null ? stack1 : "") + + "\n"; +},"10":function(container,depth0,helpers,partials,data) { + return " * @deprecated\n"; +},"12":function(container,depth0,helpers,partials,data) { + var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return "\n" + + ((stack1 = lookupProperty(helpers,"each").call(depth0 != null ? depth0 : (container.nullContext || {}),lookupProperty(depth0,"parameters"),{"name":"each","hash":{},"fn":container.program(13, data, 0),"inverse":container.noop,"data":data,"loc":{"start":{"line":24,"column":0},"end":{"line":26,"column":9}}})) != null ? stack1 : ""); +},"13":function(container,depth0,helpers,partials,data) { + var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return ((stack1 = container.lambda(container.strict(depth0, "name", {"start":{"line":25,"column":3},"end":{"line":25,"column":7}} ), depth0)) != null ? stack1 : "") + + ((stack1 = container.invokePartial(lookupProperty(partials,"isRequired"),depth0,{"name":"isRequired","data":data,"helpers":helpers,"partials":partials,"decorators":container.decorators})) != null ? stack1 : "") + + ": " + + ((stack1 = container.invokePartial(lookupProperty(partials,"type"),depth0,{"name":"type","data":data,"helpers":helpers,"partials":partials,"decorators":container.decorators})) != null ? stack1 : "") + + ((stack1 = lookupProperty(helpers,"if").call(depth0 != null ? depth0 : (container.nullContext || {}),lookupProperty(depth0,"default"),{"name":"if","hash":{},"fn":container.program(4, data, 0),"inverse":container.noop,"data":data,"loc":{"start":{"line":25,"column":36},"end":{"line":25,"column":74}}})) != null ? stack1 : "") + + ",\n"; +},"compiler":[8,">= 4.3.0"],"main":function(container,depth0,helpers,partials,data) { + var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return ((stack1 = lookupProperty(helpers,"if").call(depth0 != null ? depth0 : (container.nullContext || {}),lookupProperty(depth0,"parameters"),{"name":"if","hash":{},"fn":container.program(1, data, 0),"inverse":container.noop,"data":data,"loc":{"start":{"line":1,"column":0},"end":{"line":28,"column":7}}})) != null ? stack1 : ""); +},"usePartial":true,"useData":true}; + +var partialResult = {"1":function(container,depth0,helpers,partials,data) { + var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return ((stack1 = lookupProperty(helpers,"each").call(depth0 != null ? depth0 : (container.nullContext || {}),lookupProperty(depth0,"results"),{"name":"each","hash":{},"fn":container.program(2, data, 0),"inverse":container.noop,"data":data,"loc":{"start":{"line":2,"column":0},"end":{"line":2,"column":66}}})) != null ? stack1 : ""); +},"2":function(container,depth0,helpers,partials,data) { + var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return ((stack1 = container.invokePartial(lookupProperty(partials,"type"),depth0,{"name":"type","data":data,"helpers":helpers,"partials":partials,"decorators":container.decorators})) != null ? stack1 : "") + + ((stack1 = lookupProperty(helpers,"unless").call(depth0 != null ? depth0 : (container.nullContext || {}),lookupProperty(data,"last"),{"name":"unless","hash":{},"fn":container.program(3, data, 0),"inverse":container.noop,"data":data,"loc":{"start":{"line":2,"column":26},"end":{"line":2,"column":57}}})) != null ? stack1 : ""); +},"3":function(container,depth0,helpers,partials,data) { + return " | "; +},"5":function(container,depth0,helpers,partials,data) { + return "void"; +},"compiler":[8,">= 4.3.0"],"main":function(container,depth0,helpers,partials,data) { + var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return ((stack1 = lookupProperty(helpers,"if").call(depth0 != null ? depth0 : (container.nullContext || {}),lookupProperty(depth0,"results"),{"name":"if","hash":{},"fn":container.program(1, data, 0),"inverse":container.program(5, data, 0),"data":data,"loc":{"start":{"line":1,"column":0},"end":{"line":5,"column":9}}})) != null ? stack1 : ""); +},"usePartial":true,"useData":true}; + +var partialSchema = {"1":function(container,depth0,helpers,partials,data) { + var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return ((stack1 = container.invokePartial(lookupProperty(partials,"schemaInterface"),depth0,{"name":"schemaInterface","data":data,"helpers":helpers,"partials":partials,"decorators":container.decorators})) != null ? stack1 : ""); +},"3":function(container,depth0,helpers,partials,data) { + var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return ((stack1 = lookupProperty(helpers,"equals").call(depth0 != null ? depth0 : (container.nullContext || {}),lookupProperty(depth0,"export"),"enum",{"name":"equals","hash":{},"fn":container.program(4, data, 0),"inverse":container.program(6, data, 0),"data":data,"loc":{"start":{"line":3,"column":0},"end":{"line":17,"column":0}}})) != null ? stack1 : ""); +},"4":function(container,depth0,helpers,partials,data) { + var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return ((stack1 = container.invokePartial(lookupProperty(partials,"schemaEnum"),depth0,{"name":"schemaEnum","data":data,"helpers":helpers,"partials":partials,"decorators":container.decorators})) != null ? stack1 : ""); +},"6":function(container,depth0,helpers,partials,data) { + var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return ((stack1 = lookupProperty(helpers,"equals").call(depth0 != null ? depth0 : (container.nullContext || {}),lookupProperty(depth0,"export"),"array",{"name":"equals","hash":{},"fn":container.program(7, data, 0),"inverse":container.program(9, data, 0),"data":data,"loc":{"start":{"line":5,"column":0},"end":{"line":17,"column":0}}})) != null ? stack1 : ""); +},"7":function(container,depth0,helpers,partials,data) { + var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return ((stack1 = container.invokePartial(lookupProperty(partials,"schemaArray"),depth0,{"name":"schemaArray","data":data,"helpers":helpers,"partials":partials,"decorators":container.decorators})) != null ? stack1 : ""); +},"9":function(container,depth0,helpers,partials,data) { + var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return ((stack1 = lookupProperty(helpers,"equals").call(depth0 != null ? depth0 : (container.nullContext || {}),lookupProperty(depth0,"export"),"dictionary",{"name":"equals","hash":{},"fn":container.program(10, data, 0),"inverse":container.program(12, data, 0),"data":data,"loc":{"start":{"line":7,"column":0},"end":{"line":17,"column":0}}})) != null ? stack1 : ""); +},"10":function(container,depth0,helpers,partials,data) { + var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return ((stack1 = container.invokePartial(lookupProperty(partials,"schemaDictionary"),depth0,{"name":"schemaDictionary","data":data,"helpers":helpers,"partials":partials,"decorators":container.decorators})) != null ? stack1 : ""); +},"12":function(container,depth0,helpers,partials,data) { + var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return ((stack1 = lookupProperty(helpers,"equals").call(depth0 != null ? depth0 : (container.nullContext || {}),lookupProperty(depth0,"export"),"any-of",{"name":"equals","hash":{},"fn":container.program(13, data, 0),"inverse":container.program(15, data, 0),"data":data,"loc":{"start":{"line":9,"column":0},"end":{"line":17,"column":0}}})) != null ? stack1 : ""); +},"13":function(container,depth0,helpers,partials,data) { + var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return ((stack1 = container.invokePartial(lookupProperty(partials,"schemaComposition"),depth0,{"name":"schemaComposition","data":data,"helpers":helpers,"partials":partials,"decorators":container.decorators})) != null ? stack1 : ""); +},"15":function(container,depth0,helpers,partials,data) { + var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return ((stack1 = lookupProperty(helpers,"equals").call(depth0 != null ? depth0 : (container.nullContext || {}),lookupProperty(depth0,"export"),"all-of",{"name":"equals","hash":{},"fn":container.program(13, data, 0),"inverse":container.program(16, data, 0),"data":data,"loc":{"start":{"line":11,"column":0},"end":{"line":17,"column":0}}})) != null ? stack1 : ""); +},"16":function(container,depth0,helpers,partials,data) { + var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return ((stack1 = lookupProperty(helpers,"equals").call(depth0 != null ? depth0 : (container.nullContext || {}),lookupProperty(depth0,"export"),"one-of",{"name":"equals","hash":{},"fn":container.program(13, data, 0),"inverse":container.program(17, data, 0),"data":data,"loc":{"start":{"line":13,"column":0},"end":{"line":17,"column":0}}})) != null ? stack1 : ""); +},"17":function(container,depth0,helpers,partials,data) { + var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return ((stack1 = container.invokePartial(lookupProperty(partials,"schemaGeneric"),depth0,{"name":"schemaGeneric","data":data,"helpers":helpers,"partials":partials,"decorators":container.decorators})) != null ? stack1 : ""); +},"compiler":[8,">= 4.3.0"],"main":function(container,depth0,helpers,partials,data) { + var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return ((stack1 = lookupProperty(helpers,"equals").call(depth0 != null ? depth0 : (container.nullContext || {}),lookupProperty(depth0,"export"),"interface",{"name":"equals","hash":{},"fn":container.program(1, data, 0),"inverse":container.program(3, data, 0),"data":data,"loc":{"start":{"line":1,"column":0},"end":{"line":17,"column":11}}})) != null ? stack1 : ""); +},"usePartial":true,"useData":true}; + +var partialSchemaArray = {"1":function(container,depth0,helpers,partials,data) { + var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return " contains: " + + ((stack1 = container.invokePartial(lookupProperty(partials,"schema"),lookupProperty(depth0,"link"),{"name":"schema","data":data,"helpers":helpers,"partials":partials,"decorators":container.decorators})) != null ? stack1 : "") + + ",\n"; +},"3":function(container,depth0,helpers,partials,data) { + var stack1; + + return " contains: {\n type: '" + + ((stack1 = container.lambda(container.strict(depth0, "base", {"start":{"line":7,"column":12},"end":{"line":7,"column":16}} ), depth0)) != null ? stack1 : "") + + "',\n },\n"; +},"5":function(container,depth0,helpers,partials,data) { + var stack1; + + return " isReadOnly: " + + ((stack1 = container.lambda(container.strict(depth0, "isReadOnly", {"start":{"line":11,"column":16},"end":{"line":11,"column":26}} ), depth0)) != null ? stack1 : "") + + ",\n"; +},"7":function(container,depth0,helpers,partials,data) { + var stack1; + + return " isRequired: " + + ((stack1 = container.lambda(container.strict(depth0, "isRequired", {"start":{"line":14,"column":16},"end":{"line":14,"column":26}} ), depth0)) != null ? stack1 : "") + + ",\n"; +},"9":function(container,depth0,helpers,partials,data) { + var stack1; + + return " isNullable: " + + ((stack1 = container.lambda(container.strict(depth0, "isNullable", {"start":{"line":17,"column":16},"end":{"line":17,"column":26}} ), depth0)) != null ? stack1 : "") + + ",\n"; +},"compiler":[8,">= 4.3.0"],"main":function(container,depth0,helpers,partials,data) { + var stack1, alias1=depth0 != null ? depth0 : (container.nullContext || {}), lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return "{\n type: 'array',\n" + + ((stack1 = lookupProperty(helpers,"if").call(alias1,lookupProperty(depth0,"link"),{"name":"if","hash":{},"fn":container.program(1, data, 0),"inverse":container.program(3, data, 0),"data":data,"loc":{"start":{"line":3,"column":0},"end":{"line":9,"column":7}}})) != null ? stack1 : "") + + ((stack1 = lookupProperty(helpers,"if").call(alias1,lookupProperty(depth0,"isReadOnly"),{"name":"if","hash":{},"fn":container.program(5, data, 0),"inverse":container.noop,"data":data,"loc":{"start":{"line":10,"column":0},"end":{"line":12,"column":7}}})) != null ? stack1 : "") + + ((stack1 = lookupProperty(helpers,"if").call(alias1,lookupProperty(depth0,"isRequired"),{"name":"if","hash":{},"fn":container.program(7, data, 0),"inverse":container.noop,"data":data,"loc":{"start":{"line":13,"column":0},"end":{"line":15,"column":7}}})) != null ? stack1 : "") + + ((stack1 = lookupProperty(helpers,"if").call(alias1,lookupProperty(depth0,"isNullable"),{"name":"if","hash":{},"fn":container.program(9, data, 0),"inverse":container.noop,"data":data,"loc":{"start":{"line":16,"column":0},"end":{"line":18,"column":7}}})) != null ? stack1 : "") + + "}"; +},"usePartial":true,"useData":true}; + +var partialSchemaComposition = {"1":function(container,depth0,helpers,partials,data) { + var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return " description: `" + + ((stack1 = lookupProperty(helpers,"escapeDescription").call(depth0 != null ? depth0 : (container.nullContext || {}),lookupProperty(depth0,"description"),{"name":"escapeDescription","hash":{},"data":data,"loc":{"start":{"line":4,"column":15},"end":{"line":4,"column":50}}})) != null ? stack1 : "") + + "`,\n"; +},"3":function(container,depth0,helpers,partials,data) { + var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return ((stack1 = container.invokePartial(lookupProperty(partials,"schema"),depth0,{"name":"schema","data":data,"helpers":helpers,"partials":partials,"decorators":container.decorators})) != null ? stack1 : "") + + ((stack1 = lookupProperty(helpers,"unless").call(depth0 != null ? depth0 : (container.nullContext || {}),lookupProperty(data,"last"),{"name":"unless","hash":{},"fn":container.program(4, data, 0),"inverse":container.noop,"data":data,"loc":{"start":{"line":6,"column":43},"end":{"line":6,"column":73}}})) != null ? stack1 : ""); +},"4":function(container,depth0,helpers,partials,data) { + return ", "; +},"6":function(container,depth0,helpers,partials,data) { + var stack1; + + return " isReadOnly: " + + ((stack1 = container.lambda(container.strict(depth0, "isReadOnly", {"start":{"line":8,"column":16},"end":{"line":8,"column":26}} ), depth0)) != null ? stack1 : "") + + ",\n"; +},"8":function(container,depth0,helpers,partials,data) { + var stack1; + + return " isRequired: " + + ((stack1 = container.lambda(container.strict(depth0, "isRequired", {"start":{"line":11,"column":16},"end":{"line":11,"column":26}} ), depth0)) != null ? stack1 : "") + + ",\n"; +},"10":function(container,depth0,helpers,partials,data) { + var stack1; + + return " isNullable: " + + ((stack1 = container.lambda(container.strict(depth0, "isNullable", {"start":{"line":14,"column":16},"end":{"line":14,"column":26}} ), depth0)) != null ? stack1 : "") + + ",\n"; +},"compiler":[8,">= 4.3.0"],"main":function(container,depth0,helpers,partials,data) { + var stack1, alias1=depth0 != null ? depth0 : (container.nullContext || {}), lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return "{\n type: '" + + ((stack1 = container.lambda(container.strict(depth0, "export", {"start":{"line":2,"column":10},"end":{"line":2,"column":16}} ), depth0)) != null ? stack1 : "") + + "',\n" + + ((stack1 = lookupProperty(helpers,"if").call(alias1,lookupProperty(depth0,"description"),{"name":"if","hash":{},"fn":container.program(1, data, 0),"inverse":container.noop,"data":data,"loc":{"start":{"line":3,"column":0},"end":{"line":5,"column":7}}})) != null ? stack1 : "") + + " contains: [" + + ((stack1 = lookupProperty(helpers,"each").call(alias1,lookupProperty(depth0,"properties"),{"name":"each","hash":{},"fn":container.program(3, data, 0),"inverse":container.noop,"data":data,"loc":{"start":{"line":6,"column":12},"end":{"line":6,"column":82}}})) != null ? stack1 : "") + + "],\n" + + ((stack1 = lookupProperty(helpers,"if").call(alias1,lookupProperty(depth0,"isReadOnly"),{"name":"if","hash":{},"fn":container.program(6, data, 0),"inverse":container.noop,"data":data,"loc":{"start":{"line":7,"column":0},"end":{"line":9,"column":7}}})) != null ? stack1 : "") + + ((stack1 = lookupProperty(helpers,"if").call(alias1,lookupProperty(depth0,"isRequired"),{"name":"if","hash":{},"fn":container.program(8, data, 0),"inverse":container.noop,"data":data,"loc":{"start":{"line":10,"column":0},"end":{"line":12,"column":7}}})) != null ? stack1 : "") + + ((stack1 = lookupProperty(helpers,"if").call(alias1,lookupProperty(depth0,"isNullable"),{"name":"if","hash":{},"fn":container.program(10, data, 0),"inverse":container.noop,"data":data,"loc":{"start":{"line":13,"column":0},"end":{"line":15,"column":7}}})) != null ? stack1 : "") + + "}"; +},"usePartial":true,"useData":true}; + +var partialSchemaDictionary = {"1":function(container,depth0,helpers,partials,data) { + var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return " contains: " + + ((stack1 = container.invokePartial(lookupProperty(partials,"schema"),lookupProperty(depth0,"link"),{"name":"schema","data":data,"helpers":helpers,"partials":partials,"decorators":container.decorators})) != null ? stack1 : "") + + ",\n"; +},"3":function(container,depth0,helpers,partials,data) { + var stack1; + + return " contains: {\n type: '" + + ((stack1 = container.lambda(container.strict(depth0, "base", {"start":{"line":7,"column":12},"end":{"line":7,"column":16}} ), depth0)) != null ? stack1 : "") + + "',\n },\n"; +},"5":function(container,depth0,helpers,partials,data) { + var stack1; + + return " isReadOnly: " + + ((stack1 = container.lambda(container.strict(depth0, "isReadOnly", {"start":{"line":11,"column":16},"end":{"line":11,"column":26}} ), depth0)) != null ? stack1 : "") + + ",\n"; +},"7":function(container,depth0,helpers,partials,data) { + var stack1; + + return " isRequired: " + + ((stack1 = container.lambda(container.strict(depth0, "isRequired", {"start":{"line":14,"column":16},"end":{"line":14,"column":26}} ), depth0)) != null ? stack1 : "") + + ",\n"; +},"9":function(container,depth0,helpers,partials,data) { + var stack1; + + return " isNullable: " + + ((stack1 = container.lambda(container.strict(depth0, "isNullable", {"start":{"line":17,"column":16},"end":{"line":17,"column":26}} ), depth0)) != null ? stack1 : "") + + ",\n"; +},"compiler":[8,">= 4.3.0"],"main":function(container,depth0,helpers,partials,data) { + var stack1, alias1=depth0 != null ? depth0 : (container.nullContext || {}), lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return "{\n type: 'dictionary',\n" + + ((stack1 = lookupProperty(helpers,"if").call(alias1,lookupProperty(depth0,"link"),{"name":"if","hash":{},"fn":container.program(1, data, 0),"inverse":container.program(3, data, 0),"data":data,"loc":{"start":{"line":3,"column":0},"end":{"line":9,"column":7}}})) != null ? stack1 : "") + + ((stack1 = lookupProperty(helpers,"if").call(alias1,lookupProperty(depth0,"isReadOnly"),{"name":"if","hash":{},"fn":container.program(5, data, 0),"inverse":container.noop,"data":data,"loc":{"start":{"line":10,"column":0},"end":{"line":12,"column":7}}})) != null ? stack1 : "") + + ((stack1 = lookupProperty(helpers,"if").call(alias1,lookupProperty(depth0,"isRequired"),{"name":"if","hash":{},"fn":container.program(7, data, 0),"inverse":container.noop,"data":data,"loc":{"start":{"line":13,"column":0},"end":{"line":15,"column":7}}})) != null ? stack1 : "") + + ((stack1 = lookupProperty(helpers,"if").call(alias1,lookupProperty(depth0,"isNullable"),{"name":"if","hash":{},"fn":container.program(9, data, 0),"inverse":container.noop,"data":data,"loc":{"start":{"line":16,"column":0},"end":{"line":18,"column":7}}})) != null ? stack1 : "") + + "}"; +},"usePartial":true,"useData":true}; + +var partialSchemaEnum = {"1":function(container,depth0,helpers,partials,data) { + var stack1; + + return " isReadOnly: " + + ((stack1 = container.lambda(container.strict(depth0, "isReadOnly", {"start":{"line":4,"column":16},"end":{"line":4,"column":26}} ), depth0)) != null ? stack1 : "") + + ",\n"; +},"3":function(container,depth0,helpers,partials,data) { + var stack1; + + return " isRequired: " + + ((stack1 = container.lambda(container.strict(depth0, "isRequired", {"start":{"line":7,"column":16},"end":{"line":7,"column":26}} ), depth0)) != null ? stack1 : "") + + ",\n"; +},"5":function(container,depth0,helpers,partials,data) { + var stack1; + + return " isNullable: " + + ((stack1 = container.lambda(container.strict(depth0, "isNullable", {"start":{"line":10,"column":16},"end":{"line":10,"column":26}} ), depth0)) != null ? stack1 : "") + + ",\n"; +},"compiler":[8,">= 4.3.0"],"main":function(container,depth0,helpers,partials,data) { + var stack1, alias1=depth0 != null ? depth0 : (container.nullContext || {}), lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return "{\n type: 'Enum',\n" + + ((stack1 = lookupProperty(helpers,"if").call(alias1,lookupProperty(depth0,"isReadOnly"),{"name":"if","hash":{},"fn":container.program(1, data, 0),"inverse":container.noop,"data":data,"loc":{"start":{"line":3,"column":0},"end":{"line":5,"column":7}}})) != null ? stack1 : "") + + ((stack1 = lookupProperty(helpers,"if").call(alias1,lookupProperty(depth0,"isRequired"),{"name":"if","hash":{},"fn":container.program(3, data, 0),"inverse":container.noop,"data":data,"loc":{"start":{"line":6,"column":0},"end":{"line":8,"column":7}}})) != null ? stack1 : "") + + ((stack1 = lookupProperty(helpers,"if").call(alias1,lookupProperty(depth0,"isNullable"),{"name":"if","hash":{},"fn":container.program(5, data, 0),"inverse":container.noop,"data":data,"loc":{"start":{"line":9,"column":0},"end":{"line":11,"column":7}}})) != null ? stack1 : "") + + "}"; +},"useData":true}; + +var partialSchemaGeneric = {"1":function(container,depth0,helpers,partials,data) { + var stack1; + + return " type: '" + + ((stack1 = container.lambda(container.strict(depth0, "type", {"start":{"line":3,"column":11},"end":{"line":3,"column":15}} ), depth0)) != null ? stack1 : "") + + "',\n"; +},"3":function(container,depth0,helpers,partials,data) { + var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return " description: `" + + ((stack1 = lookupProperty(helpers,"escapeDescription").call(depth0 != null ? depth0 : (container.nullContext || {}),lookupProperty(depth0,"description"),{"name":"escapeDescription","hash":{},"data":data,"loc":{"start":{"line":6,"column":15},"end":{"line":6,"column":50}}})) != null ? stack1 : "") + + "`,\n"; +},"5":function(container,depth0,helpers,partials,data) { + var stack1; + + return " isReadOnly: " + + ((stack1 = container.lambda(container.strict(depth0, "isReadOnly", {"start":{"line":9,"column":16},"end":{"line":9,"column":26}} ), depth0)) != null ? stack1 : "") + + ",\n"; +},"7":function(container,depth0,helpers,partials,data) { + var stack1; + + return " isRequired: " + + ((stack1 = container.lambda(container.strict(depth0, "isRequired", {"start":{"line":12,"column":16},"end":{"line":12,"column":26}} ), depth0)) != null ? stack1 : "") + + ",\n"; +},"9":function(container,depth0,helpers,partials,data) { + var stack1; + + return " isNullable: " + + ((stack1 = container.lambda(container.strict(depth0, "isNullable", {"start":{"line":15,"column":16},"end":{"line":15,"column":26}} ), depth0)) != null ? stack1 : "") + + ",\n"; +},"11":function(container,depth0,helpers,partials,data) { + var stack1; + + return " format: '" + + ((stack1 = container.lambda(container.strict(depth0, "format", {"start":{"line":18,"column":13},"end":{"line":18,"column":19}} ), depth0)) != null ? stack1 : "") + + "',\n"; +},"13":function(container,depth0,helpers,partials,data) { + var stack1; + + return " maximum: " + + ((stack1 = container.lambda(container.strict(depth0, "maximum", {"start":{"line":21,"column":13},"end":{"line":21,"column":20}} ), depth0)) != null ? stack1 : "") + + ",\n"; +},"15":function(container,depth0,helpers,partials,data) { + var stack1; + + return " exclusiveMaximum: " + + ((stack1 = container.lambda(container.strict(depth0, "exclusiveMaximum", {"start":{"line":24,"column":22},"end":{"line":24,"column":38}} ), depth0)) != null ? stack1 : "") + + ",\n"; +},"17":function(container,depth0,helpers,partials,data) { + var stack1; + + return " minimum: " + + ((stack1 = container.lambda(container.strict(depth0, "minimum", {"start":{"line":27,"column":13},"end":{"line":27,"column":20}} ), depth0)) != null ? stack1 : "") + + ",\n"; +},"19":function(container,depth0,helpers,partials,data) { + var stack1; + + return " exclusiveMinimum: " + + ((stack1 = container.lambda(container.strict(depth0, "exclusiveMinimum", {"start":{"line":30,"column":22},"end":{"line":30,"column":38}} ), depth0)) != null ? stack1 : "") + + ",\n"; +},"21":function(container,depth0,helpers,partials,data) { + var stack1; + + return " multipleOf: " + + ((stack1 = container.lambda(container.strict(depth0, "multipleOf", {"start":{"line":33,"column":16},"end":{"line":33,"column":26}} ), depth0)) != null ? stack1 : "") + + ",\n"; +},"23":function(container,depth0,helpers,partials,data) { + var stack1; + + return " maxLength: " + + ((stack1 = container.lambda(container.strict(depth0, "maxLength", {"start":{"line":36,"column":15},"end":{"line":36,"column":24}} ), depth0)) != null ? stack1 : "") + + ",\n"; +},"25":function(container,depth0,helpers,partials,data) { + var stack1; + + return " minLength: " + + ((stack1 = container.lambda(container.strict(depth0, "minLength", {"start":{"line":39,"column":15},"end":{"line":39,"column":24}} ), depth0)) != null ? stack1 : "") + + ",\n"; +},"27":function(container,depth0,helpers,partials,data) { + var stack1; + + return " pattern: '" + + ((stack1 = container.lambda(container.strict(depth0, "pattern", {"start":{"line":42,"column":14},"end":{"line":42,"column":21}} ), depth0)) != null ? stack1 : "") + + "',\n"; +},"29":function(container,depth0,helpers,partials,data) { + var stack1; + + return " maxItems: " + + ((stack1 = container.lambda(container.strict(depth0, "maxItems", {"start":{"line":45,"column":14},"end":{"line":45,"column":22}} ), depth0)) != null ? stack1 : "") + + ",\n"; +},"31":function(container,depth0,helpers,partials,data) { + var stack1; + + return " minItems: " + + ((stack1 = container.lambda(container.strict(depth0, "minItems", {"start":{"line":48,"column":14},"end":{"line":48,"column":22}} ), depth0)) != null ? stack1 : "") + + ",\n"; +},"33":function(container,depth0,helpers,partials,data) { + var stack1; + + return " uniqueItems: " + + ((stack1 = container.lambda(container.strict(depth0, "uniqueItems", {"start":{"line":51,"column":17},"end":{"line":51,"column":28}} ), depth0)) != null ? stack1 : "") + + ",\n"; +},"35":function(container,depth0,helpers,partials,data) { + var stack1; + + return " maxProperties: " + + ((stack1 = container.lambda(container.strict(depth0, "maxProperties", {"start":{"line":54,"column":19},"end":{"line":54,"column":32}} ), depth0)) != null ? stack1 : "") + + ",\n"; +},"37":function(container,depth0,helpers,partials,data) { + var stack1; + + return " minProperties: " + + ((stack1 = container.lambda(container.strict(depth0, "minProperties", {"start":{"line":57,"column":19},"end":{"line":57,"column":32}} ), depth0)) != null ? stack1 : "") + + ",\n"; +},"compiler":[8,">= 4.3.0"],"main":function(container,depth0,helpers,partials,data) { + var stack1, alias1=depth0 != null ? depth0 : (container.nullContext || {}), lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return "{\n" + + ((stack1 = lookupProperty(helpers,"if").call(alias1,lookupProperty(depth0,"type"),{"name":"if","hash":{},"fn":container.program(1, data, 0),"inverse":container.noop,"data":data,"loc":{"start":{"line":2,"column":0},"end":{"line":4,"column":7}}})) != null ? stack1 : "") + + ((stack1 = lookupProperty(helpers,"if").call(alias1,lookupProperty(depth0,"description"),{"name":"if","hash":{},"fn":container.program(3, data, 0),"inverse":container.noop,"data":data,"loc":{"start":{"line":5,"column":0},"end":{"line":7,"column":7}}})) != null ? stack1 : "") + + ((stack1 = lookupProperty(helpers,"if").call(alias1,lookupProperty(depth0,"isReadOnly"),{"name":"if","hash":{},"fn":container.program(5, data, 0),"inverse":container.noop,"data":data,"loc":{"start":{"line":8,"column":0},"end":{"line":10,"column":7}}})) != null ? stack1 : "") + + ((stack1 = lookupProperty(helpers,"if").call(alias1,lookupProperty(depth0,"isRequired"),{"name":"if","hash":{},"fn":container.program(7, data, 0),"inverse":container.noop,"data":data,"loc":{"start":{"line":11,"column":0},"end":{"line":13,"column":7}}})) != null ? stack1 : "") + + ((stack1 = lookupProperty(helpers,"if").call(alias1,lookupProperty(depth0,"isNullable"),{"name":"if","hash":{},"fn":container.program(9, data, 0),"inverse":container.noop,"data":data,"loc":{"start":{"line":14,"column":0},"end":{"line":16,"column":7}}})) != null ? stack1 : "") + + ((stack1 = lookupProperty(helpers,"if").call(alias1,lookupProperty(depth0,"format"),{"name":"if","hash":{},"fn":container.program(11, data, 0),"inverse":container.noop,"data":data,"loc":{"start":{"line":17,"column":0},"end":{"line":19,"column":7}}})) != null ? stack1 : "") + + ((stack1 = lookupProperty(helpers,"if").call(alias1,lookupProperty(depth0,"maximum"),{"name":"if","hash":{},"fn":container.program(13, data, 0),"inverse":container.noop,"data":data,"loc":{"start":{"line":20,"column":0},"end":{"line":22,"column":7}}})) != null ? stack1 : "") + + ((stack1 = lookupProperty(helpers,"if").call(alias1,lookupProperty(depth0,"exclusiveMaximum"),{"name":"if","hash":{},"fn":container.program(15, data, 0),"inverse":container.noop,"data":data,"loc":{"start":{"line":23,"column":0},"end":{"line":25,"column":7}}})) != null ? stack1 : "") + + ((stack1 = lookupProperty(helpers,"if").call(alias1,lookupProperty(depth0,"minimum"),{"name":"if","hash":{},"fn":container.program(17, data, 0),"inverse":container.noop,"data":data,"loc":{"start":{"line":26,"column":0},"end":{"line":28,"column":7}}})) != null ? stack1 : "") + + ((stack1 = lookupProperty(helpers,"if").call(alias1,lookupProperty(depth0,"exclusiveMinimum"),{"name":"if","hash":{},"fn":container.program(19, data, 0),"inverse":container.noop,"data":data,"loc":{"start":{"line":29,"column":0},"end":{"line":31,"column":7}}})) != null ? stack1 : "") + + ((stack1 = lookupProperty(helpers,"if").call(alias1,lookupProperty(depth0,"multipleOf"),{"name":"if","hash":{},"fn":container.program(21, data, 0),"inverse":container.noop,"data":data,"loc":{"start":{"line":32,"column":0},"end":{"line":34,"column":7}}})) != null ? stack1 : "") + + ((stack1 = lookupProperty(helpers,"if").call(alias1,lookupProperty(depth0,"maxLength"),{"name":"if","hash":{},"fn":container.program(23, data, 0),"inverse":container.noop,"data":data,"loc":{"start":{"line":35,"column":0},"end":{"line":37,"column":7}}})) != null ? stack1 : "") + + ((stack1 = lookupProperty(helpers,"if").call(alias1,lookupProperty(depth0,"minLength"),{"name":"if","hash":{},"fn":container.program(25, data, 0),"inverse":container.noop,"data":data,"loc":{"start":{"line":38,"column":0},"end":{"line":40,"column":7}}})) != null ? stack1 : "") + + ((stack1 = lookupProperty(helpers,"if").call(alias1,lookupProperty(depth0,"pattern"),{"name":"if","hash":{},"fn":container.program(27, data, 0),"inverse":container.noop,"data":data,"loc":{"start":{"line":41,"column":0},"end":{"line":43,"column":7}}})) != null ? stack1 : "") + + ((stack1 = lookupProperty(helpers,"if").call(alias1,lookupProperty(depth0,"maxItems"),{"name":"if","hash":{},"fn":container.program(29, data, 0),"inverse":container.noop,"data":data,"loc":{"start":{"line":44,"column":0},"end":{"line":46,"column":7}}})) != null ? stack1 : "") + + ((stack1 = lookupProperty(helpers,"if").call(alias1,lookupProperty(depth0,"minItems"),{"name":"if","hash":{},"fn":container.program(31, data, 0),"inverse":container.noop,"data":data,"loc":{"start":{"line":47,"column":0},"end":{"line":49,"column":7}}})) != null ? stack1 : "") + + ((stack1 = lookupProperty(helpers,"if").call(alias1,lookupProperty(depth0,"uniqueItems"),{"name":"if","hash":{},"fn":container.program(33, data, 0),"inverse":container.noop,"data":data,"loc":{"start":{"line":50,"column":0},"end":{"line":52,"column":7}}})) != null ? stack1 : "") + + ((stack1 = lookupProperty(helpers,"if").call(alias1,lookupProperty(depth0,"maxProperties"),{"name":"if","hash":{},"fn":container.program(35, data, 0),"inverse":container.noop,"data":data,"loc":{"start":{"line":53,"column":0},"end":{"line":55,"column":7}}})) != null ? stack1 : "") + + ((stack1 = lookupProperty(helpers,"if").call(alias1,lookupProperty(depth0,"minProperties"),{"name":"if","hash":{},"fn":container.program(37, data, 0),"inverse":container.noop,"data":data,"loc":{"start":{"line":56,"column":0},"end":{"line":58,"column":7}}})) != null ? stack1 : "") + + "}"; +},"useData":true}; + +var partialSchemaInterface = {"1":function(container,depth0,helpers,partials,data) { + var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return " description: `" + + ((stack1 = lookupProperty(helpers,"escapeDescription").call(depth0 != null ? depth0 : (container.nullContext || {}),lookupProperty(depth0,"description"),{"name":"escapeDescription","hash":{},"data":data,"loc":{"start":{"line":3,"column":15},"end":{"line":3,"column":50}}})) != null ? stack1 : "") + + "`,\n"; +},"3":function(container,depth0,helpers,partials,data) { + var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return ((stack1 = lookupProperty(helpers,"each").call(depth0 != null ? depth0 : (container.nullContext || {}),lookupProperty(depth0,"properties"),{"name":"each","hash":{},"fn":container.program(4, data, 0),"inverse":container.noop,"data":data,"loc":{"start":{"line":7,"column":1},"end":{"line":9,"column":10}}})) != null ? stack1 : ""); +},"4":function(container,depth0,helpers,partials,data) { + var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return " " + + ((stack1 = container.lambda(container.strict(depth0, "name", {"start":{"line":8,"column":5},"end":{"line":8,"column":9}} ), depth0)) != null ? stack1 : "") + + ": " + + ((stack1 = container.invokePartial(lookupProperty(partials,"schema"),depth0,{"name":"schema","data":data,"helpers":helpers,"partials":partials,"decorators":container.decorators})) != null ? stack1 : "") + + ",\n"; +},"6":function(container,depth0,helpers,partials,data) { + var stack1; + + return " isReadOnly: " + + ((stack1 = container.lambda(container.strict(depth0, "isReadOnly", {"start":{"line":13,"column":16},"end":{"line":13,"column":26}} ), depth0)) != null ? stack1 : "") + + ",\n"; +},"8":function(container,depth0,helpers,partials,data) { + var stack1; + + return " isRequired: " + + ((stack1 = container.lambda(container.strict(depth0, "isRequired", {"start":{"line":16,"column":16},"end":{"line":16,"column":26}} ), depth0)) != null ? stack1 : "") + + ",\n"; +},"10":function(container,depth0,helpers,partials,data) { + var stack1; + + return " isNullable: " + + ((stack1 = container.lambda(container.strict(depth0, "isNullable", {"start":{"line":19,"column":16},"end":{"line":19,"column":26}} ), depth0)) != null ? stack1 : "") + + ",\n"; +},"compiler":[8,">= 4.3.0"],"main":function(container,depth0,helpers,partials,data) { + var stack1, alias1=depth0 != null ? depth0 : (container.nullContext || {}), lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return "{\n" + + ((stack1 = lookupProperty(helpers,"if").call(alias1,lookupProperty(depth0,"description"),{"name":"if","hash":{},"fn":container.program(1, data, 0),"inverse":container.noop,"data":data,"loc":{"start":{"line":2,"column":0},"end":{"line":4,"column":7}}})) != null ? stack1 : "") + + " properties: {\n" + + ((stack1 = lookupProperty(helpers,"if").call(alias1,lookupProperty(depth0,"properties"),{"name":"if","hash":{},"fn":container.program(3, data, 0),"inverse":container.noop,"data":data,"loc":{"start":{"line":6,"column":0},"end":{"line":10,"column":7}}})) != null ? stack1 : "") + + " },\n" + + ((stack1 = lookupProperty(helpers,"if").call(alias1,lookupProperty(depth0,"isReadOnly"),{"name":"if","hash":{},"fn":container.program(6, data, 0),"inverse":container.noop,"data":data,"loc":{"start":{"line":12,"column":0},"end":{"line":14,"column":7}}})) != null ? stack1 : "") + + ((stack1 = lookupProperty(helpers,"if").call(alias1,lookupProperty(depth0,"isRequired"),{"name":"if","hash":{},"fn":container.program(8, data, 0),"inverse":container.noop,"data":data,"loc":{"start":{"line":15,"column":0},"end":{"line":17,"column":7}}})) != null ? stack1 : "") + + ((stack1 = lookupProperty(helpers,"if").call(alias1,lookupProperty(depth0,"isNullable"),{"name":"if","hash":{},"fn":container.program(10, data, 0),"inverse":container.noop,"data":data,"loc":{"start":{"line":18,"column":0},"end":{"line":20,"column":7}}})) != null ? stack1 : "") + + "}"; +},"usePartial":true,"useData":true}; + +var partialType = {"1":function(container,depth0,helpers,partials,data) { + var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return ((stack1 = container.invokePartial(lookupProperty(partials,"typeInterface"),depth0,{"name":"typeInterface","data":data,"helpers":helpers,"partials":partials,"decorators":container.decorators})) != null ? stack1 : ""); +},"3":function(container,depth0,helpers,partials,data) { + var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return ((stack1 = lookupProperty(helpers,"equals").call(depth0 != null ? depth0 : (container.nullContext || {}),lookupProperty(depth0,"export"),"reference",{"name":"equals","hash":{},"fn":container.program(4, data, 0),"inverse":container.program(6, data, 0),"data":data,"loc":{"start":{"line":3,"column":0},"end":{"line":19,"column":0}}})) != null ? stack1 : ""); +},"4":function(container,depth0,helpers,partials,data) { + var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return ((stack1 = container.invokePartial(lookupProperty(partials,"typeReference"),depth0,{"name":"typeReference","data":data,"helpers":helpers,"partials":partials,"decorators":container.decorators})) != null ? stack1 : ""); +},"6":function(container,depth0,helpers,partials,data) { + var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return ((stack1 = lookupProperty(helpers,"equals").call(depth0 != null ? depth0 : (container.nullContext || {}),lookupProperty(depth0,"export"),"enum",{"name":"equals","hash":{},"fn":container.program(7, data, 0),"inverse":container.program(9, data, 0),"data":data,"loc":{"start":{"line":5,"column":0},"end":{"line":19,"column":0}}})) != null ? stack1 : ""); +},"7":function(container,depth0,helpers,partials,data) { + var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return ((stack1 = container.invokePartial(lookupProperty(partials,"typeEnum"),depth0,{"name":"typeEnum","data":data,"helpers":helpers,"partials":partials,"decorators":container.decorators})) != null ? stack1 : ""); +},"9":function(container,depth0,helpers,partials,data) { + var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return ((stack1 = lookupProperty(helpers,"equals").call(depth0 != null ? depth0 : (container.nullContext || {}),lookupProperty(depth0,"export"),"array",{"name":"equals","hash":{},"fn":container.program(10, data, 0),"inverse":container.program(12, data, 0),"data":data,"loc":{"start":{"line":7,"column":0},"end":{"line":19,"column":0}}})) != null ? stack1 : ""); +},"10":function(container,depth0,helpers,partials,data) { + var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return ((stack1 = container.invokePartial(lookupProperty(partials,"typeArray"),depth0,{"name":"typeArray","data":data,"helpers":helpers,"partials":partials,"decorators":container.decorators})) != null ? stack1 : ""); +},"12":function(container,depth0,helpers,partials,data) { + var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return ((stack1 = lookupProperty(helpers,"equals").call(depth0 != null ? depth0 : (container.nullContext || {}),lookupProperty(depth0,"export"),"dictionary",{"name":"equals","hash":{},"fn":container.program(13, data, 0),"inverse":container.program(15, data, 0),"data":data,"loc":{"start":{"line":9,"column":0},"end":{"line":19,"column":0}}})) != null ? stack1 : ""); +},"13":function(container,depth0,helpers,partials,data) { + var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return ((stack1 = container.invokePartial(lookupProperty(partials,"typeDictionary"),depth0,{"name":"typeDictionary","data":data,"helpers":helpers,"partials":partials,"decorators":container.decorators})) != null ? stack1 : ""); +},"15":function(container,depth0,helpers,partials,data) { + var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return ((stack1 = lookupProperty(helpers,"equals").call(depth0 != null ? depth0 : (container.nullContext || {}),lookupProperty(depth0,"export"),"one-of",{"name":"equals","hash":{},"fn":container.program(16, data, 0),"inverse":container.program(18, data, 0),"data":data,"loc":{"start":{"line":11,"column":0},"end":{"line":19,"column":0}}})) != null ? stack1 : ""); +},"16":function(container,depth0,helpers,partials,data) { + var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return ((stack1 = container.invokePartial(lookupProperty(partials,"typeUnion"),depth0,{"name":"typeUnion","data":data,"helpers":helpers,"partials":partials,"decorators":container.decorators})) != null ? stack1 : ""); +},"18":function(container,depth0,helpers,partials,data) { + var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return ((stack1 = lookupProperty(helpers,"equals").call(depth0 != null ? depth0 : (container.nullContext || {}),lookupProperty(depth0,"export"),"any-of",{"name":"equals","hash":{},"fn":container.program(16, data, 0),"inverse":container.program(19, data, 0),"data":data,"loc":{"start":{"line":13,"column":0},"end":{"line":19,"column":0}}})) != null ? stack1 : ""); +},"19":function(container,depth0,helpers,partials,data) { + var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return ((stack1 = lookupProperty(helpers,"equals").call(depth0 != null ? depth0 : (container.nullContext || {}),lookupProperty(depth0,"export"),"all-of",{"name":"equals","hash":{},"fn":container.program(20, data, 0),"inverse":container.program(22, data, 0),"data":data,"loc":{"start":{"line":15,"column":0},"end":{"line":19,"column":0}}})) != null ? stack1 : ""); +},"20":function(container,depth0,helpers,partials,data) { + var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return ((stack1 = container.invokePartial(lookupProperty(partials,"typeIntersection"),depth0,{"name":"typeIntersection","data":data,"helpers":helpers,"partials":partials,"decorators":container.decorators})) != null ? stack1 : ""); +},"22":function(container,depth0,helpers,partials,data) { + var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return ((stack1 = container.invokePartial(lookupProperty(partials,"typeGeneric"),depth0,{"name":"typeGeneric","data":data,"helpers":helpers,"partials":partials,"decorators":container.decorators})) != null ? stack1 : ""); +},"compiler":[8,">= 4.3.0"],"main":function(container,depth0,helpers,partials,data) { + var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return ((stack1 = lookupProperty(helpers,"equals").call(depth0 != null ? depth0 : (container.nullContext || {}),lookupProperty(depth0,"export"),"interface",{"name":"equals","hash":{},"fn":container.program(1, data, 0),"inverse":container.program(3, data, 0),"data":data,"loc":{"start":{"line":1,"column":0},"end":{"line":19,"column":11}}})) != null ? stack1 : ""); +},"usePartial":true,"useData":true}; + +var partialTypeArray = {"1":function(container,depth0,helpers,partials,data) { + var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return "Array<" + + ((stack1 = container.invokePartial(lookupProperty(partials,"type"),lookupProperty(depth0,"link"),{"name":"type","data":data,"helpers":helpers,"partials":partials,"decorators":container.decorators})) != null ? stack1 : "") + + ">" + + ((stack1 = container.invokePartial(lookupProperty(partials,"isNullable"),depth0,{"name":"isNullable","data":data,"helpers":helpers,"partials":partials,"decorators":container.decorators})) != null ? stack1 : ""); +},"3":function(container,depth0,helpers,partials,data) { + var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return "Array<" + + ((stack1 = container.invokePartial(lookupProperty(partials,"base"),depth0,{"name":"base","data":data,"helpers":helpers,"partials":partials,"decorators":container.decorators})) != null ? stack1 : "") + + ">" + + ((stack1 = container.invokePartial(lookupProperty(partials,"isNullable"),depth0,{"name":"isNullable","data":data,"helpers":helpers,"partials":partials,"decorators":container.decorators})) != null ? stack1 : ""); +},"compiler":[8,">= 4.3.0"],"main":function(container,depth0,helpers,partials,data) { + var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return ((stack1 = lookupProperty(helpers,"if").call(depth0 != null ? depth0 : (container.nullContext || {}),lookupProperty(depth0,"link"),{"name":"if","hash":{},"fn":container.program(1, data, 0),"inverse":container.program(3, data, 0),"data":data,"loc":{"start":{"line":1,"column":0},"end":{"line":5,"column":9}}})) != null ? stack1 : ""); +},"usePartial":true,"useData":true}; + +var partialTypeDictionary = {"1":function(container,depth0,helpers,partials,data) { + var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return "Record" + + ((stack1 = container.invokePartial(lookupProperty(partials,"isNullable"),depth0,{"name":"isNullable","data":data,"helpers":helpers,"partials":partials,"decorators":container.decorators})) != null ? stack1 : ""); +},"3":function(container,depth0,helpers,partials,data) { + var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return "Record" + + ((stack1 = container.invokePartial(lookupProperty(partials,"isNullable"),depth0,{"name":"isNullable","data":data,"helpers":helpers,"partials":partials,"decorators":container.decorators})) != null ? stack1 : ""); +},"compiler":[8,">= 4.3.0"],"main":function(container,depth0,helpers,partials,data) { + var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return ((stack1 = lookupProperty(helpers,"if").call(depth0 != null ? depth0 : (container.nullContext || {}),lookupProperty(depth0,"link"),{"name":"if","hash":{},"fn":container.program(1, data, 0),"inverse":container.program(3, data, 0),"data":data,"loc":{"start":{"line":1,"column":0},"end":{"line":5,"column":9}}})) != null ? stack1 : ""); +},"usePartial":true,"useData":true}; + +var partialTypeEnum = {"1":function(container,depth0,helpers,partials,data) { + var stack1; + + return ((stack1 = container.lambda(depth0, depth0)) != null ? stack1 : ""); +},"compiler":[8,">= 4.3.0"],"main":function(container,depth0,helpers,partials,data) { + var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return ((stack1 = lookupProperty(helpers,"enumerator").call(depth0 != null ? depth0 : (container.nullContext || {}),lookupProperty(depth0,"enum"),lookupProperty(depth0,"parent"),lookupProperty(depth0,"name"),{"name":"enumerator","hash":{},"fn":container.program(1, data, 0),"inverse":container.noop,"data":data,"loc":{"start":{"line":1,"column":0},"end":{"line":1,"column":55}}})) != null ? stack1 : "") + + ((stack1 = container.invokePartial(lookupProperty(partials,"isNullable"),depth0,{"name":"isNullable","data":data,"helpers":helpers,"partials":partials,"decorators":container.decorators})) != null ? stack1 : ""); +},"usePartial":true,"useData":true}; + +var partialTypeGeneric = {"compiler":[8,">= 4.3.0"],"main":function(container,depth0,helpers,partials,data) { + var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return ((stack1 = container.invokePartial(lookupProperty(partials,"base"),depth0,{"name":"base","data":data,"helpers":helpers,"partials":partials,"decorators":container.decorators})) != null ? stack1 : "") + + ((stack1 = container.invokePartial(lookupProperty(partials,"isNullable"),depth0,{"name":"isNullable","data":data,"helpers":helpers,"partials":partials,"decorators":container.decorators})) != null ? stack1 : ""); +},"usePartial":true,"useData":true}; + +var partialTypeInterface = {"1":function(container,depth0,helpers,partials,data,blockParams,depths) { + var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return "{\n" + + ((stack1 = lookupProperty(helpers,"each").call(depth0 != null ? depth0 : (container.nullContext || {}),lookupProperty(depth0,"properties"),{"name":"each","hash":{},"fn":container.program(2, data, 0, blockParams, depths),"inverse":container.noop,"data":data,"loc":{"start":{"line":3,"column":0},"end":{"line":19,"column":9}}})) != null ? stack1 : "") + + "}" + + ((stack1 = container.invokePartial(lookupProperty(partials,"isNullable"),depth0,{"name":"isNullable","data":data,"helpers":helpers,"partials":partials,"decorators":container.decorators})) != null ? stack1 : ""); +},"2":function(container,depth0,helpers,partials,data,blockParams,depths) { + var stack1, alias1=depth0 != null ? depth0 : (container.nullContext || {}), lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return ((stack1 = lookupProperty(helpers,"ifdef").call(alias1,lookupProperty(depth0,"description"),lookupProperty(depth0,"deprecated"),{"name":"ifdef","hash":{},"fn":container.program(3, data, 0, blockParams, depths),"inverse":container.noop,"data":data,"loc":{"start":{"line":4,"column":0},"end":{"line":13,"column":10}}})) != null ? stack1 : "") + + ((stack1 = lookupProperty(helpers,"if").call(alias1,lookupProperty(depths[1],"parent"),{"name":"if","hash":{},"fn":container.program(8, data, 0, blockParams, depths),"inverse":container.program(10, data, 0, blockParams, depths),"data":data,"loc":{"start":{"line":14,"column":0},"end":{"line":18,"column":7}}})) != null ? stack1 : ""); +},"3":function(container,depth0,helpers,partials,data) { + var stack1, alias1=depth0 != null ? depth0 : (container.nullContext || {}), lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return "/**\n" + + ((stack1 = lookupProperty(helpers,"if").call(alias1,lookupProperty(depth0,"description"),{"name":"if","hash":{},"fn":container.program(4, data, 0),"inverse":container.noop,"data":data,"loc":{"start":{"line":6,"column":0},"end":{"line":8,"column":7}}})) != null ? stack1 : "") + + ((stack1 = lookupProperty(helpers,"if").call(alias1,lookupProperty(depth0,"deprecated"),{"name":"if","hash":{},"fn":container.program(6, data, 0),"inverse":container.noop,"data":data,"loc":{"start":{"line":9,"column":0},"end":{"line":11,"column":7}}})) != null ? stack1 : "") + + " */\n"; +},"4":function(container,depth0,helpers,partials,data) { + var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return " * " + + ((stack1 = lookupProperty(helpers,"escapeComment").call(depth0 != null ? depth0 : (container.nullContext || {}),lookupProperty(depth0,"description"),{"name":"escapeComment","hash":{},"data":data,"loc":{"start":{"line":7,"column":3},"end":{"line":7,"column":34}}})) != null ? stack1 : "") + + "\n"; +},"6":function(container,depth0,helpers,partials,data) { + return " * @deprecated\n"; +},"8":function(container,depth0,helpers,partials,data,blockParams,depths) { + var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return ((stack1 = container.invokePartial(lookupProperty(partials,"isReadOnly"),depth0,{"name":"isReadOnly","data":data,"helpers":helpers,"partials":partials,"decorators":container.decorators})) != null ? stack1 : "") + + ((stack1 = container.lambda(container.strict(depth0, "name", {"start":{"line":15,"column":18},"end":{"line":15,"column":22}} ), depth0)) != null ? stack1 : "") + + ((stack1 = container.invokePartial(lookupProperty(partials,"isRequired"),depth0,{"name":"isRequired","data":data,"helpers":helpers,"partials":partials,"decorators":container.decorators})) != null ? stack1 : "") + + ": " + + ((stack1 = container.invokePartial(lookupProperty(partials,"type"),depth0,{"name":"type","hash":{"parent":lookupProperty(depths[1],"parent")},"data":data,"helpers":helpers,"partials":partials,"decorators":container.decorators})) != null ? stack1 : "") + + ";\n"; +},"10":function(container,depth0,helpers,partials,data) { + var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return ((stack1 = container.invokePartial(lookupProperty(partials,"isReadOnly"),depth0,{"name":"isReadOnly","data":data,"helpers":helpers,"partials":partials,"decorators":container.decorators})) != null ? stack1 : "") + + ((stack1 = container.lambda(container.strict(depth0, "name", {"start":{"line":17,"column":18},"end":{"line":17,"column":22}} ), depth0)) != null ? stack1 : "") + + ((stack1 = container.invokePartial(lookupProperty(partials,"isRequired"),depth0,{"name":"isRequired","data":data,"helpers":helpers,"partials":partials,"decorators":container.decorators})) != null ? stack1 : "") + + ": " + + ((stack1 = container.invokePartial(lookupProperty(partials,"type"),depth0,{"name":"type","data":data,"helpers":helpers,"partials":partials,"decorators":container.decorators})) != null ? stack1 : "") + + ";\n"; +},"12":function(container,depth0,helpers,partials,data) { + return "any"; +},"compiler":[8,">= 4.3.0"],"main":function(container,depth0,helpers,partials,data,blockParams,depths) { + var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return ((stack1 = lookupProperty(helpers,"if").call(depth0 != null ? depth0 : (container.nullContext || {}),lookupProperty(depth0,"properties"),{"name":"if","hash":{},"fn":container.program(1, data, 0, blockParams, depths),"inverse":container.program(12, data, 0, blockParams, depths),"data":data,"loc":{"start":{"line":1,"column":0},"end":{"line":23,"column":9}}})) != null ? stack1 : ""); +},"usePartial":true,"useData":true,"useDepths":true}; + +var partialTypeIntersection = {"1":function(container,depth0,helpers,partials,data) { + var stack1; + + return ((stack1 = container.lambda(depth0, depth0)) != null ? stack1 : ""); +},"compiler":[8,">= 4.3.0"],"main":function(container,depth0,helpers,partials,data) { + var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return ((stack1 = lookupProperty(helpers,"intersection").call(depth0 != null ? depth0 : (container.nullContext || {}),lookupProperty(depth0,"properties"),lookupProperty(depth0,"parent"),{"name":"intersection","hash":{},"fn":container.program(1, data, 0),"inverse":container.noop,"data":data,"loc":{"start":{"line":1,"column":0},"end":{"line":1,"column":60}}})) != null ? stack1 : "") + + ((stack1 = container.invokePartial(lookupProperty(partials,"isNullable"),depth0,{"name":"isNullable","data":data,"helpers":helpers,"partials":partials,"decorators":container.decorators})) != null ? stack1 : ""); +},"usePartial":true,"useData":true}; + +var partialTypeReference = {"compiler":[8,">= 4.3.0"],"main":function(container,depth0,helpers,partials,data) { + var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return ((stack1 = container.invokePartial(lookupProperty(partials,"base"),depth0,{"name":"base","data":data,"helpers":helpers,"partials":partials,"decorators":container.decorators})) != null ? stack1 : "") + + ((stack1 = container.invokePartial(lookupProperty(partials,"isNullable"),depth0,{"name":"isNullable","data":data,"helpers":helpers,"partials":partials,"decorators":container.decorators})) != null ? stack1 : ""); +},"usePartial":true,"useData":true}; + +var partialTypeUnion = {"1":function(container,depth0,helpers,partials,data) { + var stack1; + + return ((stack1 = container.lambda(depth0, depth0)) != null ? stack1 : ""); +},"compiler":[8,">= 4.3.0"],"main":function(container,depth0,helpers,partials,data) { + var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return ((stack1 = lookupProperty(helpers,"union").call(depth0 != null ? depth0 : (container.nullContext || {}),lookupProperty(depth0,"properties"),lookupProperty(depth0,"parent"),{"name":"union","hash":{},"fn":container.program(1, data, 0),"inverse":container.noop,"data":data,"loc":{"start":{"line":1,"column":0},"end":{"line":1,"column":46}}})) != null ? stack1 : "") + + ((stack1 = container.invokePartial(lookupProperty(partials,"isNullable"),depth0,{"name":"isNullable","data":data,"helpers":helpers,"partials":partials,"decorators":container.decorators})) != null ? stack1 : ""); +},"usePartial":true,"useData":true}; + +const registerHandlebarHelpers = (root) => { + runtime.registerHelper('ifdef', function (...args) { + const options = args.pop(); + if (!args.every(value => !value)) { + return options.fn(this); + } + return options.inverse(this); + }); + runtime.registerHelper('equals', function (a, b, options) { + return a === b ? options.fn(this) : options.inverse(this); + }); + runtime.registerHelper('notEquals', function (a, b, options) { + return a !== b ? options.fn(this) : options.inverse(this); + }); + runtime.registerHelper('containsSpaces', function (value, options) { + return /\s+/.test(value) ? options.fn(this) : options.inverse(this); + }); + runtime.registerHelper('union', function (properties, parent, options) { + const type = runtime.partials['type']; + const types = properties.map(property => type({ ...root, ...property, parent })); + const uniqueTypes = types.filter(unique); + let uniqueTypesString = uniqueTypes.join(' | '); + if (uniqueTypes.length > 1) { + uniqueTypesString = `(${uniqueTypesString})`; + } + return options.fn(uniqueTypesString); + }); + runtime.registerHelper('intersection', function (properties, parent, options) { + const type = runtime.partials['type']; + const types = properties.map(property => type({ ...root, ...property, parent })); + const uniqueTypes = types.filter(unique); + let uniqueTypesString = uniqueTypes.join(' & '); + if (uniqueTypes.length > 1) { + uniqueTypesString = `(${uniqueTypesString})`; + } + return options.fn(uniqueTypesString); + }); + runtime.registerHelper('enumerator', function (enumerators, parent, name, options) { + if (!root.useUnionTypes && parent && name) { + return `${parent}.${name}`; + } + return options.fn(enumerators + .map(enumerator => enumerator.value) + .filter(unique) + .join(' | ')); + }); + runtime.registerHelper('escapeComment', function (value) { + return value + .replace(/\*\//g, '*') + .replace(/\/\*/g, '*') + .replace(/\r?\n(.*)/g, (_, w) => `${os.EOL} * ${w.trim()}`); + }); + runtime.registerHelper('escapeDescription', function (value) { + return value.replace(/\\/g, '\\\\').replace(/`/g, '\\`').replace(/\${/g, '\\${'); + }); + runtime.registerHelper('camelCase', function (value) { + return camelCase__default["default"](value); + }); +}; + +/** + * Read all the Handlebar templates that we need and return on wrapper object + * so we can easily access the templates in out generator / write functions. + */ +const registerHandlebarTemplates = (root) => { + registerHandlebarHelpers(root); + // Main templates (entry points for the files we write to disk) + const hbsFilesOverride = {}; + for (const key in root.hbsFilesOverride || {}) { + // @ts-expect-error + let data = root.hbsFilesOverride[key]; + if (typeof data === 'function') { + data = data(); + } + hbsFilesOverride[key] = data; + } + const templates = { + index: runtime.template(templateIndex), + client: runtime.template(templateClient), + exports: { + model: runtime.template(hbsFilesOverride.exportModel || templateExportModel), + schema: runtime.template(hbsFilesOverride.exportSchema || templateExportSchema), + service: runtime.template(hbsFilesOverride.exportService || templateExportService), + }, + core: { + settings: runtime.template(templateCoreSettings), + apiError: runtime.template(templateCoreApiError), + apiRequestOptions: runtime.template(templateCoreApiRequestOptions), + apiResult: runtime.template(templateCoreApiResult), + cancelablePromise: runtime.template(templateCancelablePromise), + request: runtime.template(templateCoreRequest), + baseHttpRequest: runtime.template(templateCoreBaseHttpRequest), + httpRequest: runtime.template(templateCoreHttpRequest), + }, + }; + // Partials for the generations of the models, services, etc. + runtime.registerPartial('exportEnum', runtime.template(partialExportEnum)); + runtime.registerPartial('exportInterface', runtime.template(partialExportInterface)); + runtime.registerPartial('exportComposition', runtime.template(partialExportComposition)); + runtime.registerPartial('exportType', runtime.template(partialExportType)); + runtime.registerPartial('header', runtime.template(partialHeader)); + runtime.registerPartial('isNullable', runtime.template(partialIsNullable)); + runtime.registerPartial('isReadOnly', runtime.template(partialIsReadOnly)); + runtime.registerPartial('isRequired', runtime.template(partialIsRequired)); + runtime.registerPartial('parameters', runtime.template(partialParameters)); + runtime.registerPartial('result', runtime.template(partialResult)); + runtime.registerPartial('schema', runtime.template(partialSchema)); + runtime.registerPartial('schemaArray', runtime.template(partialSchemaArray)); + runtime.registerPartial('schemaDictionary', runtime.template(partialSchemaDictionary)); + runtime.registerPartial('schemaEnum', runtime.template(partialSchemaEnum)); + runtime.registerPartial('schemaGeneric', runtime.template(partialSchemaGeneric)); + runtime.registerPartial('schemaInterface', runtime.template(partialSchemaInterface)); + runtime.registerPartial('schemaComposition', runtime.template(partialSchemaComposition)); + runtime.registerPartial('type', runtime.template(partialType)); + runtime.registerPartial('typeArray', runtime.template(partialTypeArray)); + runtime.registerPartial('typeDictionary', runtime.template(partialTypeDictionary)); + runtime.registerPartial('typeEnum', runtime.template(partialTypeEnum)); + runtime.registerPartial('typeGeneric', runtime.template(partialTypeGeneric)); + runtime.registerPartial('typeInterface', runtime.template(partialTypeInterface)); + runtime.registerPartial('typeReference', runtime.template(partialTypeReference)); + runtime.registerPartial('typeUnion', runtime.template(partialTypeUnion)); + runtime.registerPartial('typeIntersection', runtime.template(partialTypeIntersection)); + runtime.registerPartial('base', runtime.template(partialBase)); + // Generic functions used in 'request' file @see src/templates/core/request.hbs for more info + runtime.registerPartial('functions/catchErrorCodes', runtime.template(functionCatchErrorCodes)); + runtime.registerPartial('functions/getFormData', runtime.template(functionGetFormData)); + runtime.registerPartial('functions/getQueryString', runtime.template(functionGetQueryString)); + runtime.registerPartial('functions/getUrl', runtime.template(functionGetUrl)); + runtime.registerPartial('functions/isBlob', runtime.template(functionIsBlob)); + runtime.registerPartial('functions/isDefined', runtime.template(functionIsDefined)); + runtime.registerPartial('functions/isFormData', runtime.template(functionIsFormData)); + runtime.registerPartial('functions/isString', runtime.template(functionIsString)); + runtime.registerPartial('functions/isStringWithValue', runtime.template(functionIsStringWithValue)); + runtime.registerPartial('functions/isSuccess', runtime.template(functionIsSuccess)); + runtime.registerPartial('functions/base64', runtime.template(functionBase64)); + runtime.registerPartial('functions/resolve', runtime.template(functionResolve)); + // Specific files for the fetch client implementation + runtime.registerPartial('fetch/getHeaders', runtime.template(fetchGetHeaders)); + runtime.registerPartial('fetch/getRequestBody', runtime.template(fetchGetRequestBody)); + runtime.registerPartial('fetch/getResponseBody', runtime.template(fetchGetResponseBody)); + runtime.registerPartial('fetch/getResponseHeader', runtime.template(fetchGetResponseHeader)); + runtime.registerPartial('fetch/sendRequest', runtime.template(fetchSendRequest)); + runtime.registerPartial('fetch/request', runtime.template(fetchRequest)); + // Specific files for the xhr client implementation + runtime.registerPartial('xhr/getHeaders', runtime.template(xhrGetHeaders)); + runtime.registerPartial('xhr/getRequestBody', runtime.template(xhrGetRequestBody)); + runtime.registerPartial('xhr/getResponseBody', runtime.template(xhrGetResponseBody)); + runtime.registerPartial('xhr/getResponseHeader', runtime.template(xhrGetResponseHeader)); + runtime.registerPartial('xhr/sendRequest', runtime.template(xhrSendRequest)); + runtime.registerPartial('xhr/request', runtime.template(xhrRequest)); + // Specific files for the node client implementation + runtime.registerPartial('node/getHeaders', runtime.template(nodeGetHeaders)); + runtime.registerPartial('node/getRequestBody', runtime.template(nodeGetRequestBody)); + runtime.registerPartial('node/getResponseBody', runtime.template(nodeGetResponseBody)); + runtime.registerPartial('node/getResponseHeader', runtime.template(nodeGetResponseHeader)); + runtime.registerPartial('node/sendRequest', runtime.template(nodeSendRequest)); + runtime.registerPartial('node/request', runtime.template(nodeRequest)); + // Specific files for the axios client implementation + runtime.registerPartial('axios/getHeaders', runtime.template(axiosGetHeaders)); + runtime.registerPartial('axios/getRequestBody', runtime.template(axiosGetRequestBody)); + runtime.registerPartial('axios/getResponseBody', runtime.template(axiosGetResponseBody)); + runtime.registerPartial('axios/getResponseHeader', runtime.template(axiosGetResponseHeader)); + runtime.registerPartial('axios/sendRequest', runtime.template(axiosSendRequest)); + runtime.registerPartial('axios/request', runtime.template(axiosRequest)); + // Specific files for the angular client implementation + runtime.registerPartial('angular/getHeaders', runtime.template(angularGetHeaders)); + runtime.registerPartial('angular/getRequestBody', runtime.template(angularGetRequestBody)); + runtime.registerPartial('angular/getResponseBody', runtime.template(angularGetResponseBody)); + runtime.registerPartial('angular/getResponseHeader', runtime.template(angularGetResponseHeader)); + runtime.registerPartial('angular/sendRequest', runtime.template(angularSendRequest)); + runtime.registerPartial('angular/request', runtime.template(angularRequest)); + return templates; +}; + +const writeFile = fsExtra.writeFile; +const copyFile = fsExtra.copyFile; +const exists = fsExtra.pathExists; +const mkdir = fsExtra.mkdirp; +const rmdir = fsExtra.remove; + +const isSubDirectory = (parent, child) => { + return path.relative(child, parent).startsWith('..'); +}; + +const formatCode = (s) => { + let indent = 0; + let lines = s.split(os.EOL); + lines = lines.map(line => { + line = line.trim().replace(/^\*/g, ' *'); + let i = indent; + if (line.endsWith('(') || line.endsWith('{') || line.endsWith('[')) { + indent++; + } + if ((line.startsWith(')') || line.startsWith('}') || line.startsWith(']')) && i) { + indent--; + i--; + } + const result = `${'\t'.repeat(i)}${line}`; + if (result.trim() === '') { + return ''; + } + return result; + }); + return lines.join(os.EOL); +}; + +const formatIndentation = (s, indent) => { + let lines = s.split(os.EOL); + lines = lines.map(line => { + switch (indent) { + case exports.Indent.SPACE_4: + return line.replace(/\t/g, ' '); + case exports.Indent.SPACE_2: + return line.replace(/\t/g, ' '); + case exports.Indent.TAB: + return line; // Default output is tab formatted + } + }); + // Make sure we have a blank line at the end + const content = lines.join(os.EOL); + return `${content}${os.EOL}`; +}; + +/** + * Generate the HttpRequest filename based on the selected client + * @param httpClient The selected httpClient (fetch, xhr, node or axios) + */ +const getHttpRequestName = (httpClient) => { + switch (httpClient) { + case exports.HttpClient.FETCH: + return 'FetchHttpRequest'; + case exports.HttpClient.XHR: + return 'XHRHttpRequest'; + case exports.HttpClient.NODE: + return 'NodeHttpRequest'; + case exports.HttpClient.AXIOS: + return 'AxiosHttpRequest'; + case exports.HttpClient.ANGULAR: + return 'AngularHttpRequest'; + } +}; + +const sortModelsByName = (models) => { + return models.sort((a, b) => { + const nameA = a.name.toLowerCase(); + const nameB = b.name.toLowerCase(); + return nameA.localeCompare(nameB, 'en'); + }); +}; + +const sortServicesByName = (services) => { + return services.sort((a, b) => { + const nameA = a.name.toLowerCase(); + const nameB = b.name.toLowerCase(); + return nameA.localeCompare(nameB, 'en'); + }); +}; + +/** + * Generate the OpenAPI client index file using the Handlebar template and write it to disk. + * The index file just contains all the exports you need to use the client as a standalone + * library. But yuo can also import individual models and services directly. + * @param client Client object, containing, models, schemas and services + * @param templates The loaded handlebar templates + * @param outputPath Directory to write the generated files to + * @param httpClient The selected httpClient (fetch, xhr, node or axios) + * @param clientName Custom client class name + * @param indent Indentation options (4, 2 or tab) + * @param postfix Service name postfix + */ +const writeClientClass = async (client, templates, outputPath, httpClient, clientName, indent, postfix) => { + const templateResult = templates.client({ + clientName, + httpClient, + postfix, + server: client.server, + version: client.version, + models: sortModelsByName(client.models), + services: sortServicesByName(client.services), + httpRequest: getHttpRequestName(httpClient), + }); + await writeFile(path.resolve(outputPath, `${clientName}.ts`), formatIndentation(formatCode(templateResult), indent)); +}; + +/** + * Generate OpenAPI core files, this includes the basic boilerplate code to handle requests. + * @param client Client object, containing, models, schemas and services + * @param templates The loaded handlebar templates + * @param outputPath Directory to write the generated files to + * @param httpClient The selected httpClient (fetch, xhr, node or axios) + * @param indent Indentation options (4, 2 or tab) + * @param clientName Custom client class name + * @param request Path to custom request file + */ +const writeClientCore = async (client, templates, outputPath, httpClient, indent, clientName, request) => { + const httpRequest = getHttpRequestName(httpClient); + const context = { + httpClient, + clientName, + httpRequest, + server: client.server, + version: client.version, + }; + await writeFile(path.resolve(outputPath, 'OpenAPI.ts'), formatIndentation(templates.core.settings(context), indent)); + await writeFile(path.resolve(outputPath, 'ApiError.ts'), formatIndentation(templates.core.apiError(context), indent)); + await writeFile(path.resolve(outputPath, 'ApiRequestOptions.ts'), formatIndentation(templates.core.apiRequestOptions(context), indent)); + await writeFile(path.resolve(outputPath, 'ApiResult.ts'), formatIndentation(templates.core.apiResult(context), indent)); + await writeFile(path.resolve(outputPath, 'CancelablePromise.ts'), formatIndentation(templates.core.cancelablePromise(context), indent)); + await writeFile(path.resolve(outputPath, 'request.ts'), formatIndentation(templates.core.request(context), indent)); + if (isDefined(clientName)) { + await writeFile(path.resolve(outputPath, 'BaseHttpRequest.ts'), formatIndentation(templates.core.baseHttpRequest(context), indent)); + await writeFile(path.resolve(outputPath, `${httpRequest}.ts`), formatIndentation(templates.core.httpRequest(context), indent)); + } + if (request) { + const requestFile = path.resolve(process.cwd(), request); + const requestFileExists = await exists(requestFile); + if (!requestFileExists) { + throw new Error(`Custom request file "${requestFile}" does not exists`); + } + await copyFile(requestFile, path.resolve(outputPath, 'request.ts')); + } +}; + +/** + * Generate the OpenAPI client index file using the Handlebar template and write it to disk. + * The index file just contains all the exports you need to use the client as a standalone + * library. But yuo can also import individual models and services directly. + * @param client Client object, containing, models, schemas and services + * @param templates The loaded handlebar templates + * @param outputPath Directory to write the generated files to + * @param useUnionTypes Use union types instead of enums + * @param exportCore Generate core + * @param exportServices Generate services + * @param exportModels Generate models + * @param exportSchemas Generate schemas + * @param postfix Service name postfix + * @param clientName Custom client class name + */ +const writeClientIndex = async (client, templates, outputPath, useUnionTypes, exportCore, exportServices, exportModels, exportSchemas, postfix, clientName) => { + const templateResult = templates.index({ + exportCore, + exportServices, + exportModels, + exportSchemas, + useUnionTypes, + postfix, + clientName, + server: client.server, + version: client.version, + models: sortModelsByName(client.models), + services: sortServicesByName(client.services), + exportClient: isDefined(clientName), + }); + await writeFile(path.resolve(outputPath, 'index.ts'), templateResult); +}; + +/** + * Generate Models using the Handlebar template and write to disk. + * @param models Array of Models to write + * @param templates The loaded handlebar templates + * @param outputPath Directory to write the generated files to + * @param httpClient The selected httpClient (fetch, xhr, node or axios) + * @param useUnionTypes Use union types instead of enums + * @param indent Indentation options (4, 2 or tab) + */ +const writeClientModels = async (models, templates, outputPath, httpClient, useUnionTypes, indent, additionalContext) => { + for (const model of models) { + if (model.isNodeModule) { + continue; + } + const filePath = model.filePath || model.name; + fs__default["default"].mkdirSync(path__default["default"].dirname(path__default["default"].join(outputPath, filePath)), { recursive: true }); + if (model.isEmbedded) { + // нам нужно вычислять относительный импорт + model.imports = model.imports.map((imp) => { + if (typeof imp === 'string') { + return imp; + } + if (!imp.nodeModule) { + imp.path = path__default["default"].relative(path__default["default"].dirname(filePath), imp.path); + } + return imp; + }); + } + const file = path__default["default"].resolve(outputPath, `${filePath}.ts`); + const templateResult = templates.exports.model({ + ...model, + httpClient, + useUnionTypes, + additionalContext: additionalContext || {}, + }); + await writeFile(file, formatIndentation(formatCode(templateResult), indent)); + } +}; + +/** + * Generate Schemas using the Handlebar template and write to disk. + * @param models Array of Models to write + * @param templates The loaded handlebar templates + * @param outputPath Directory to write the generated files to + * @param httpClient The selected httpClient (fetch, xhr, node or axios) + * @param useUnionTypes Use union types instead of enums + * @param indent Indentation options (4, 2 or tab) + * @param additionalContext Additional context for models, service and schema template files + */ +const writeClientSchemas = async (models, templates, outputPath, httpClient, useUnionTypes, indent, additionalContext) => { + for (const model of models) { + if (model.isNodeModule) { + continue; + } + const filePath = model.filePath || model.name; + const dirName = path__default["default"].dirname(path__default["default"].join(outputPath, filePath)); + const fileName = path__default["default"].basename(filePath); + fs__default["default"].mkdirSync(dirName, { recursive: true }); + const file = path__default["default"].resolve(outputPath, dirName, `$${fileName}.ts`); + const templateResult = templates.exports.schema({ + ...model, + httpClient, + useUnionTypes, + additionalContext: additionalContext || {}, + }); + await writeFile(file, formatIndentation(formatCode(templateResult), indent)); + } +}; + +/** + * Generate Services using the Handlebar template and write to disk. + * @param services Array of Services to write + * @param templates The loaded handlebar templates + * @param outputPath Directory to write the generated files to + * @param httpClient The selected httpClient (fetch, xhr, node or axios) + * @param useUnionTypes Use union types instead of enums + * @param useOptions Use options or arguments functions + * @param indent Indentation options (4, 2 or tab) + * @param postfix Service name postfix + * @param clientName Custom client class name + */ +const writeClientServices = async (services, templates, outputPath, httpClient, useUnionTypes, useOptions, indent, postfix, clientName, additionalContext) => { + for (const service of services) { + const file = path.resolve(outputPath, `${service.name}${postfix}.ts`); + const templateResult = templates.exports.service({ + ...service, + httpClient, + useUnionTypes, + useOptions, + postfix, + exportClient: isDefined(clientName), + additionalContext: additionalContext || {}, + }); + await writeFile(file, formatIndentation(formatCode(templateResult), indent)); + } +}; + +/** + * Write our OpenAPI client, using the given templates at the given output + * @param client Client object with all the models, services, etc. + * @param templates Templates wrapper with all loaded Handlebars templates + * @param output The relative location of the output directory + * @param httpClient The selected httpClient (fetch, xhr, node or axios) + * @param useOptions Use options or arguments functions + * @param useUnionTypes Use union types instead of enums + * @param exportCore Generate core client classes + * @param exportServices Generate services + * @param exportModels Generate models + * @param exportSchemas Generate schemas + * @param exportSchemas Generate schemas + * @param indent Indentation options (4, 2 or tab) + * @param postfix Service name postfix + * @param clientName Custom client class name + * @param request Path to custom request file + */ +const writeClient = async (client, templates, output, httpClient, useOptions, useUnionTypes, exportCore, exportServices, exportModels, exportSchemas, indent, postfix, clientName, request, additionalContext) => { + const outputPath = path.resolve(process.cwd(), output); + const outputPathCore = path.resolve(outputPath, 'core'); + const outputPathModels = path.resolve(outputPath, 'models'); + const outputPathSchemas = path.resolve(outputPath, 'schemas'); + const outputPathServices = path.resolve(outputPath, 'services'); + if (!isSubDirectory(process.cwd(), output)) { + throw new Error(`Output folder is not a subdirectory of the current working directory`); + } + if (exportCore) { + await rmdir(outputPathCore); + await mkdir(outputPathCore); + await writeClientCore(client, templates, outputPathCore, httpClient, indent, clientName, request); + } + if (exportServices) { + await rmdir(outputPathServices); + await mkdir(outputPathServices); + await writeClientServices(client.services, templates, outputPathServices, httpClient, useUnionTypes, useOptions, indent, postfix, clientName, additionalContext); + } + if (exportSchemas) { + await rmdir(outputPathSchemas); + await mkdir(outputPathSchemas); + await writeClientSchemas(client.models, templates, outputPathSchemas, httpClient, useUnionTypes, indent, additionalContext); + } + if (exportModels) { + await rmdir(outputPathModels); + await mkdir(outputPathModels); + await writeClientModels(client.models, templates, outputPathModels, httpClient, useUnionTypes, indent, additionalContext); + } + if (isDefined(clientName)) { + await mkdir(outputPath); + await writeClientClass(client, templates, outputPath, httpClient, clientName, indent, postfix); + } + if (exportCore || exportServices || exportSchemas || exportModels) { + await mkdir(outputPath); + await writeClientIndex(client, templates, outputPath, useUnionTypes, exportCore, exportServices, exportModels, exportSchemas, postfix, clientName); + } +}; + +/** + * Generate the OpenAPI client. This method will read the OpenAPI specification and based on the + * given language it will generate the client, including the typed models, validation schemas, + * service layer, etc. + * @param input The relative location of the OpenAPI spec + * @param output The relative location of the output directory + * @param httpClient The selected httpClient (fetch, xhr, node or axios) + * @param clientName Custom client class name + * @param useOptions Use options or arguments functions + * @param useUnionTypes Use union types instead of enums + * @param exportCore Generate core client classes + * @param exportServices Generate services + * @param exportModels Generate models + * @param exportSchemas Generate schemas + * @param indent Indentation options (4, 2 or tab) + * @param postfix Service name postfix + * @param request Path to custom request file + * @param hbsFilesOverride: Object with paths to hbs files + * @param additionalContext: Additional context for models, service and schema template files + * @param write Write the files to disk (true or false) + */ +const generate = async ({ input, output, httpClient = exports.HttpClient.FETCH, clientName, useOptions = false, useUnionTypes = false, exportCore = true, exportServices = true, exportModels = true, exportSchemas = false, indent = exports.Indent.SPACE_4, postfix = 'Service', request, hbsFilesOverride, additionalContext, write = true, }) => { + const openApi = isString(input) ? await getOpenApiSpec(input) : input; + const openApiVersion = getOpenApiVersion(openApi); + const templates = registerHandlebarTemplates({ + httpClient, + useUnionTypes, + useOptions, + hbsFilesOverride, + }); + switch (openApiVersion) { + case OpenApiVersion.V2: { + const client = parse$1(openApi); + const clientFinal = postProcessClient(client); + if (!write) + break; + await writeClient(clientFinal, templates, output, httpClient, useOptions, useUnionTypes, exportCore, exportServices, exportModels, exportSchemas, indent, postfix, clientName, request, additionalContext); + break; + } + case OpenApiVersion.V3: { + const client = parse(openApi); + const clientFinal = postProcessClient(client); + if (!write) + break; + await writeClient(clientFinal, templates, output, httpClient, useOptions, useUnionTypes, exportCore, exportServices, exportModels, exportSchemas, indent, postfix, clientName, request, additionalContext); + break; + } + } +}; +var index = { + HttpClient: exports.HttpClient, + generate, +}; + +exports["default"] = index; +exports.generate = generate; diff --git a/package.json b/package.json index 7e37f972e..ff737c991 100644 --- a/package.json +++ b/package.json @@ -49,6 +49,7 @@ "validate": "tsc --project tsconfig.json --noEmit", "run": "node ./test/index.js", "test": "jest --selectProjects UNIT", + "test:index": "jest test/index.spec.ts", "test:update": "jest --selectProjects UNIT --updateSnapshot", "test:watch": "jest --selectProjects UNIT --watch", "test:coverage": "jest --selectProjects UNIT --coverage", diff --git a/src/client/interfaces/Model.d.ts b/src/client/interfaces/Model.d.ts index 5f0318942..1b8313db5 100644 --- a/src/client/interfaces/Model.d.ts +++ b/src/client/interfaces/Model.d.ts @@ -3,6 +3,9 @@ import type { Schema } from './Schema'; export interface Model extends Schema { name: string; + isEmbedded?: boolean, + isNodeModule?: boolean, + filePath?: string, export: 'reference' | 'generic' | 'enum' | 'array' | 'dictionary' | 'interface' | 'one-of' | 'any-of' | 'all-of'; type: string; base: string; @@ -11,7 +14,7 @@ export interface Model extends Schema { description: string | null; deprecated?: boolean; default?: string; - imports: string[]; + imports: Array<{typeName: string, path: string, nodeModule?: boolean}|string>; enum: Enum[]; enums: Model[]; properties: Model[]; diff --git a/src/client/interfaces/ModelComposition.d.ts b/src/client/interfaces/ModelComposition.d.ts index f17fc5e64..94f2161ed 100644 --- a/src/client/interfaces/ModelComposition.d.ts +++ b/src/client/interfaces/ModelComposition.d.ts @@ -2,7 +2,7 @@ import type { Model } from './Model'; export interface ModelComposition { type: 'one-of' | 'any-of' | 'all-of'; - imports: string[]; + imports: Array<{typeName: string, path: string}|string>; enums: Model[]; properties: Model[]; } diff --git a/src/client/interfaces/OperationParameters.d.ts b/src/client/interfaces/OperationParameters.d.ts index 43419438c..21e51c840 100644 --- a/src/client/interfaces/OperationParameters.d.ts +++ b/src/client/interfaces/OperationParameters.d.ts @@ -1,7 +1,7 @@ import type { OperationParameter } from './OperationParameter'; export interface OperationParameters { - imports: string[]; + imports: Array<{typeName: string, path: string}|string>; parameters: OperationParameter[]; parametersPath: OperationParameter[]; parametersQuery: OperationParameter[]; diff --git a/src/client/interfaces/Service.d.ts b/src/client/interfaces/Service.d.ts index 9ab21ebee..e27a8e446 100644 --- a/src/client/interfaces/Service.d.ts +++ b/src/client/interfaces/Service.d.ts @@ -3,5 +3,5 @@ import type { Operation } from './Operation'; export interface Service { name: string; operations: Operation[]; - imports: string[]; + imports: Array<{typeName: string, path: string}|string>; } diff --git a/src/client/interfaces/Type.d.ts b/src/client/interfaces/Type.d.ts index 114c68b63..d0466f862 100644 --- a/src/client/interfaces/Type.d.ts +++ b/src/client/interfaces/Type.d.ts @@ -2,6 +2,6 @@ export interface Type { type: string; base: string; template: string | null; - imports: string[]; + imports: Array<{typeName: string, path: string, nodeModule?: boolean}|string>; isNullable: boolean; } diff --git a/src/openApi/v3/parser/getModels.ts b/src/openApi/v3/parser/getModels.ts index 3ca6393e3..b9a0bc2fc 100644 --- a/src/openApi/v3/parser/getModels.ts +++ b/src/openApi/v3/parser/getModels.ts @@ -3,17 +3,49 @@ import type { OpenApi } from '../interfaces/OpenApi'; import { getModel } from './getModel'; import { getType } from './getType'; + +function isObject(value: any): value is Record{ + return value !== null && typeof value === 'object' +} + + + export const getModels = (openApi: OpenApi): Model[] => { + if (!openApi.components) return []; + const models: Model[] = []; - if (openApi.components) { - for (const definitionName in openApi.components.schemas) { - if (openApi.components.schemas.hasOwnProperty(definitionName)) { - const definition = openApi.components.schemas[definitionName]; - const definitionType = getType(definitionName); - const model = getModel(openApi, definition, true, definitionType.base); - models.push(model); + function collectModel(definition: any, definitionName: string){ + if (definition.type){ + const definitionType = getType(definitionName); + const model = getModel(openApi, definition, true, definitionType.base); + if (isObject(definitionType.imports[0])){ + model.filePath = definitionType.imports[0]?.path; } + model.isEmbedded = definitionName.includes('embedded') || + definition.type === 'node_module'; + model.isNodeModule = definition.type === 'node_module'; + models.push(model); + return + } + for(const key in definition){ + if (!isObject(definition[key])){ + continue + } + collectModel(definition[key], definitionName + '/' + key) } } + + + for (const definitionName in openApi.components.schemas) { + if (!openApi.components.schemas.hasOwnProperty(definitionName)) continue; + collectModel(openApi.components.schemas[definitionName], definitionName); + /* + const definition = openApi.components.schemas[definitionName]; + const definitionType = getType(definitionName); + const model = getModel(openApi, definition, true, definitionType.base); + models.push(model); + */ + } + return models; }; diff --git a/src/openApi/v3/parser/getType.spec.ts b/src/openApi/v3/parser/getType.spec.ts index 06e23f374..9973ace97 100644 --- a/src/openApi/v3/parser/getType.spec.ts +++ b/src/openApi/v3/parser/getType.spec.ts @@ -33,7 +33,11 @@ describe('getType', () => { expect(type.type).toEqual('Link'); expect(type.base).toEqual('Link'); expect(type.template).toEqual('string'); - expect(type.imports).toEqual(['Link']); + expect(type.imports).toEqual([{ + nodeModule: false, + path: 'Link', + typeName: 'Link' + }]); expect(type.isNullable).toEqual(false); }); @@ -42,7 +46,15 @@ describe('getType', () => { expect(type.type).toEqual('Link'); expect(type.base).toEqual('Link'); expect(type.template).toEqual('Model'); - expect(type.imports).toEqual(['Link', 'Model']); + expect(type.imports).toEqual([{ + nodeModule: false, + path: 'Link', + typeName: 'Link' + },{ + nodeModule: false, + path: 'Model', + typeName: 'Model' + }]); expect(type.isNullable).toEqual(false); }); @@ -51,7 +63,15 @@ describe('getType', () => { expect(type.type).toEqual('Link'); expect(type.base).toEqual('Link'); expect(type.template).toEqual('Link'); - expect(type.imports).toEqual(['Link', 'Link']); + expect(type.imports).toEqual([{ + nodeModule: false, + path: 'Link', + typeName: 'Link' + },{ + nodeModule: false, + path: 'Link', + typeName: 'Link' + }]); expect(type.isNullable).toEqual(false); }); @@ -60,7 +80,11 @@ describe('getType', () => { expect(type.type).toEqual('model_000'); expect(type.base).toEqual('model_000'); expect(type.template).toEqual(null); - expect(type.imports).toEqual(['model_000']); + expect(type.imports).toEqual([{ + nodeModule: false, + path: 'model.000', + typeName: 'model_000' + }]); expect(type.isNullable).toEqual(false); }); @@ -69,7 +93,11 @@ describe('getType', () => { expect(type.type).toEqual('some_special_schema'); expect(type.base).toEqual('some_special_schema'); expect(type.template).toEqual(null); - expect(type.imports).toEqual(['some_special_schema']); + expect(type.imports).toEqual([{ + nodeModule: false, + path: 'some_special-schema', + typeName: 'some_special_schema' + }]); expect(type.isNullable).toEqual(false); }); @@ -78,7 +106,11 @@ describe('getType', () => { expect(type.type).toEqual('$some_special_schema'); expect(type.base).toEqual('$some_special_schema'); expect(type.template).toEqual(null); - expect(type.imports).toEqual(['$some_special_schema']); + expect(type.imports).toEqual([{ + nodeModule: false, + path: '$some+special+schema', + typeName: '$some_special_schema' + }]); expect(type.isNullable).toEqual(false); }); diff --git a/src/openApi/v3/parser/getType.ts b/src/openApi/v3/parser/getType.ts index e8ef4733d..176574560 100644 --- a/src/openApi/v3/parser/getType.ts +++ b/src/openApi/v3/parser/getType.ts @@ -71,10 +71,26 @@ export const getType = (type: string | string[] = 'any', format?: string): Type } if (typeWithoutNamespace) { + let path = typeWithoutNamespace.split('/'); + const type = encode(path[path.length-1]); + const isNodeModule = path[0] === 'node_modules'; + if (isNodeModule){ + path.splice(0,1); + path.splice(path.length-1, 1); + } + result.type = type; + result.base = type; + result.imports.push({ + typeName: type, + path: path.join('/'), + nodeModule: isNodeModule + }); + /* const type = encode(typeWithoutNamespace); result.type = type; result.base = type; result.imports.push(type); + */ return result; } diff --git a/src/templates/exportModel.hbs b/src/templates/exportModel.hbs index 7ddb2c3e8..a5da1ae25 100644 --- a/src/templates/exportModel.hbs +++ b/src/templates/exportModel.hbs @@ -3,7 +3,15 @@ {{#if imports}} {{#each imports}} +{{#if this.typeName}} +{{#if this.nodeModule}} +import { {{{this.typeName}}} } from '{{{this.path}}}'; +{{else}} +import type { {{{this.typeName}}} } from './{{{this.path}}}'; +{{/if}} +{{else}} import type { {{{this}}} } from './{{{this}}}'; +{{/if}} {{/each}} {{/if}} diff --git a/src/templates/exportService.hbs b/src/templates/exportService.hbs index 2fdd9af58..71b38e4fe 100644 --- a/src/templates/exportService.hbs +++ b/src/templates/exportService.hbs @@ -13,7 +13,15 @@ import type { Observable } from 'rxjs'; {{/equals}} {{#if imports}} {{#each imports}} +{{#if this.typeName}} +{{#if this.nodeModule}} +import { {{{this.typeName}}} } from '{{{this.path}}}'; +{{else}} +import type { {{{this.typeName}}} } from '../models/{{{this.path}}}'; +{{/if}} +{{else}} import type { {{{this}}} } from '../models/{{{this}}}'; +{{/if}} {{/each}} {{/if}} diff --git a/src/templates/index.hbs b/src/templates/index.hbs index 72544d7db..dc8749cbf 100644 --- a/src/templates/index.hbs +++ b/src/templates/index.hbs @@ -17,6 +17,8 @@ export type { OpenAPIConfig } from './core/OpenAPI'; {{#if models}} {{#each models}} +{{#if isEmbedded}} +{{else}} {{#if @root.useUnionTypes}} export type { {{{name}}} } from './models/{{{name}}}'; {{else if enum}} @@ -26,6 +28,7 @@ export { {{{name}}} } from './models/{{{name}}}'; {{else}} export type { {{{name}}} } from './models/{{{name}}}'; {{/if}} +{{/if}} {{/each}} {{/if}} {{/if}} @@ -33,7 +36,10 @@ export type { {{{name}}} } from './models/{{{name}}}'; {{#if models}} {{#each models}} +{{#if isEmbedded}} +{{else}} export { ${{{name}}} } from './schemas/${{{name}}}'; +{{/if}} {{/each}} {{/if}} {{/if}} diff --git a/src/utils/postProcessModelImports.ts b/src/utils/postProcessModelImports.ts index 00c0d4539..db049048b 100644 --- a/src/utils/postProcessModelImports.ts +++ b/src/utils/postProcessModelImports.ts @@ -6,7 +6,7 @@ import { unique } from './unique'; * Set unique imports, sorted by name * @param model The model that is post-processed */ -export const postProcessModelImports = (model: Model): string[] => { +export const postProcessModelImports = (model: Model): Array<{typeName: string, path: string}|string> => { return model.imports .filter(unique) .sort(sort) diff --git a/src/utils/postProcessServiceImports.ts b/src/utils/postProcessServiceImports.ts index b47cfe793..82a8e57bc 100644 --- a/src/utils/postProcessServiceImports.ts +++ b/src/utils/postProcessServiceImports.ts @@ -6,6 +6,6 @@ import { unique } from './unique'; * Set unique imports, sorted by name * @param service */ -export const postProcessServiceImports = (service: Service): string[] => { +export const postProcessServiceImports = (service: Service): Array<{typeName: string, path: string}|string> => { return service.imports.filter(unique).sort(sort); }; diff --git a/src/utils/sort.ts b/src/utils/sort.ts index 1d76998f4..bd6a059b2 100644 --- a/src/utils/sort.ts +++ b/src/utils/sort.ts @@ -1,5 +1,8 @@ -export const sort = (a: string, b: string): number => { - const nameA = a.toLowerCase(); - const nameB = b.toLowerCase(); +export const sort = (a: string|any, b: string|any): number => { + if (a.typeName){ + return -1; + } + const nameA = (a.typeName || a).toLowerCase(); + const nameB = (b.typeName || b).toLowerCase(); return nameA.localeCompare(nameB, 'en'); }; diff --git a/src/utils/unique.ts b/src/utils/unique.ts index 65c0f7c7a..97a05347f 100644 --- a/src/utils/unique.ts +++ b/src/utils/unique.ts @@ -1,3 +1,11 @@ export const unique = (val: T, index: number, arr: T[]): boolean => { + if (typeof val === 'object'){ + for (let i = 0; i < arr.length; i++) { + if (JSON.stringify(val) === JSON.stringify(arr[i])){ + return i === index + } + } + return true + } return arr.indexOf(val) === index; }; diff --git a/src/utils/writeClientModels.ts b/src/utils/writeClientModels.ts index eff359d06..0131f1e7e 100644 --- a/src/utils/writeClientModels.ts +++ b/src/utils/writeClientModels.ts @@ -1,4 +1,5 @@ -import { resolve } from 'path'; +import path from 'path'; +import fs from 'fs'; import type { Model } from '../client/interfaces/Model'; import type { HttpClient } from '../HttpClient'; @@ -27,7 +28,28 @@ export const writeClientModels = async ( additionalContext?: Record ): Promise => { for (const model of models) { - const file = resolve(outputPath, `${model.name}.ts`); + if (model.isNodeModule){ + continue; + } + const filePath = model.filePath || model.name; + fs.mkdirSync( + path.dirname(path.join(outputPath, filePath)), + { recursive: true } + ); + if (model.isEmbedded){ + // нам нужно вычислять относительный импорт + model.imports = model.imports.map((imp)=>{ + if (typeof imp === 'string'){ + return imp + } + if (!imp.nodeModule){ + imp.path = path.relative(path.dirname(filePath), imp.path) + } + return imp + }) + } + + const file = path.resolve(outputPath, `${filePath}.ts`); const templateResult = templates.exports.model({ ...model, httpClient, diff --git a/src/utils/writeClientSchemas.ts b/src/utils/writeClientSchemas.ts index 4068be460..e0e467e95 100644 --- a/src/utils/writeClientSchemas.ts +++ b/src/utils/writeClientSchemas.ts @@ -1,4 +1,5 @@ -import { resolve } from 'path'; +import path from 'path'; +import fs from 'fs'; import type { Model } from '../client/interfaces/Model'; import type { HttpClient } from '../HttpClient'; @@ -28,7 +29,15 @@ export const writeClientSchemas = async ( additionalContext?: Record ): Promise => { for (const model of models) { - const file = resolve(outputPath, `$${model.name}.ts`); + if (model.isNodeModule){ + continue + } + const filePath = model.filePath || model.name; + const dirName = path.dirname(path.join(outputPath, filePath)); + const fileName = path.basename(filePath) + fs.mkdirSync(dirName, { recursive: true }); + + const file = path.resolve(outputPath, dirName, `$${fileName}.ts`); const templateResult = templates.exports.schema({ ...model, httpClient, diff --git a/test/index.spec.ts b/test/index.spec.ts index 78a0197d5..dc1bf2945 100644 --- a/test/index.spec.ts +++ b/test/index.spec.ts @@ -44,3 +44,25 @@ describe('v3', () => { }); }); }); + + +describe('v3-embedded', () => { + it('should generate', async () => { + await generate({ + input: './test/spec/v3-embedded.json', + output: './test/generated/v3-embedded/', + httpClient: HttpClient.FETCH, + useOptions: false, + useUnionTypes: false, + exportCore: true, + exportSchemas: true, + exportModels: true, + exportServices: true, + }); + return + sync('./test/generated/v3-embedded/**/*.ts').forEach(file => { + const content = readFileSync(file, 'utf8').toString(); + expect(content).toMatchSnapshot(file); + }); + }); +}); diff --git a/test/spec/v3-embedded.json b/test/spec/v3-embedded.json new file mode 100644 index 000000000..fa4074e3f --- /dev/null +++ b/test/spec/v3-embedded.json @@ -0,0 +1,100 @@ +{ + "openapi": "3.0.0", + "info": { + "title": "swagger", + "version": "v1.0" + }, + "servers": [ + { + "url": "http://localhost:3000/base" + } + ], + "components": { + "schemas": { + "embedded": { + "article": { + "Title": { + "type": "object", + "properties": { + "en": { + "type": "string" + }, + "ru": { + "type": "string" + } + } + }, + "Body": { + "$ref": "#/components/schemas/node_modules/vue3-bootstrap5/Bootstrap5/interfaces/TranslatableString" + }, + "Body2": { + "type": "object", + "properties": { + "cs": { + "$ref": "#/components/schemas/embedded/article/Title" + }, + "ru": { + "$ref": "#/components/schemas/embedded/article/Title" + } + } + } + }, + "EmbModel":{ + "type": "object", + "properties": { + "someProp": { + "type": "#/components/schemas/embedded/article/Title", + "nullable": true + }, + "otherProp": { + "type": "#/components/schemas/node_modules/vue3-bootstrap5/Bootstrap5/interfaces/TranslatableString" + } + } + } + }, + "node_modules":{ + "vue3-bootstrap5": { + "Bootstrap5": { + "interfaces":{ + "TranslatableString": { + "type": "node_module" + }, + "GeoPoint": { + "type": "node_module" + } + } + } + } + }, + "CmsArticle": { + "type": "object", + "properties": { + "title": { + "$ref": "#/components/schemas/embedded/article/Title" + }, + "body": { + "$ref": "#/components/schemas/embedded/article/Body" + } + } + }, + "ArrayWithProperties": { + "description": "This is a simple array with properties", + "type": "array", + "items": { + "type": "object", + "properties": { + "foo": { + "type": "string" + }, + "bar": { + "type": "string" + }, + "article": { + "$ref": "#/components/schemas/CmsArticle" + } + } + } + } + } + } +} \ No newline at end of file From c4ba64dfae130061f5eaed8112fd4e28f0313e10 Mon Sep 17 00:00:00 2001 From: kirill Date: Fri, 24 May 2024 16:08:43 +0300 Subject: [PATCH 4/4] [*] bugs --- dist/index.js | 10 ++- src/openApi/v3/parser/getModels.ts | 6 +- src/utils/sort.ts | 5 +- test/__snapshots__/index.spec.ts.snap | 91 +++------------------------ test/index.spec.ts | 1 + 5 files changed, 28 insertions(+), 85 deletions(-) diff --git a/dist/index.js b/dist/index.js index d4eef43cc..308c6879f 100644 --- a/dist/index.js +++ b/dist/index.js @@ -1767,13 +1767,16 @@ const getModel = (openApi, definition, isDefinition = false, name = '') => { function isObject(value) { return value !== null && typeof value === 'object'; } +function isModelDefinition(definition) { + return definition.type || definition.enum || definition.$ref; +} const getModels = (openApi) => { if (!openApi.components) return []; const models = []; function collectModel(definition, definitionName) { var _a; - if (definition.type) { + if (isModelDefinition(definition)) { const definitionType = getType(definitionName); const model = getModel(openApi, definition, true, definitionType.base); if (isObject(definitionType.imports[0])) { @@ -2484,9 +2487,12 @@ const postProcessModelEnums = (model) => { }; const sort = (a, b) => { - if (a.typeName) { + if (a.typeName && !b.typeName) { return -1; } + if (b.typeName && !a.typeName) { + return 1; + } const nameA = (a.typeName || a).toLowerCase(); const nameB = (b.typeName || b).toLowerCase(); return nameA.localeCompare(nameB, 'en'); diff --git a/src/openApi/v3/parser/getModels.ts b/src/openApi/v3/parser/getModels.ts index b9a0bc2fc..49b5137c1 100644 --- a/src/openApi/v3/parser/getModels.ts +++ b/src/openApi/v3/parser/getModels.ts @@ -8,6 +8,10 @@ function isObject(value: any): value is Record{ return value !== null && typeof value === 'object' } +function isModelDefinition(definition: any){ + return definition.type || definition.enum || definition.$ref +} + export const getModels = (openApi: OpenApi): Model[] => { @@ -15,7 +19,7 @@ export const getModels = (openApi: OpenApi): Model[] => { const models: Model[] = []; function collectModel(definition: any, definitionName: string){ - if (definition.type){ + if (isModelDefinition(definition)){ const definitionType = getType(definitionName); const model = getModel(openApi, definition, true, definitionType.base); if (isObject(definitionType.imports[0])){ diff --git a/src/utils/sort.ts b/src/utils/sort.ts index bd6a059b2..64d82e679 100644 --- a/src/utils/sort.ts +++ b/src/utils/sort.ts @@ -1,7 +1,10 @@ export const sort = (a: string|any, b: string|any): number => { - if (a.typeName){ + if (a.typeName && !b.typeName){ return -1; } + if (b.typeName && !a.typeName){ + return 1; + } const nameA = (a.typeName || a).toLowerCase(); const nameB = (b.typeName || b).toLowerCase(); return nameA.localeCompare(nameB, 'en'); diff --git a/test/__snapshots__/index.spec.ts.snap b/test/__snapshots__/index.spec.ts.snap index e3de9f50f..aa76c5f8f 100644 --- a/test/__snapshots__/index.spec.ts.snap +++ b/test/__snapshots__/index.spec.ts.snap @@ -2347,7 +2347,7 @@ export class DefaultService { public static serviceWithEmptyTag(): CancelablePromise { return __request(OpenAPI, { method: 'GET', - url: '/api/v{api-version}/no-tag', + url: '/api/v\{api-version}/no-tag', }); } @@ -2918,29 +2918,6 @@ export class ResponseService { " `; -exports[`v2 should generate: ./test/generated/v2/services/ServiceService.ts 1`] = ` -"/* istanbul ignore file */ -/* tslint:disable */ -/* eslint-disable */ -import type { CancelablePromise } from '../core/CancelablePromise'; -import { request as __request } from '../core/request'; -import { OpenAPI } from '../core/OpenAPI'; - -export class ServiceService { - - /** - * @throws ApiError - */ - public static serviceWithEmptyTag(): CancelablePromise { - return __request({ - method: 'GET', - path: \`/api/v\${OpenAPI.VERSION}/no-tag\`, - }); - } - -}" -`; - exports[`v2 should generate: ./test/generated/v2/services/SimpleService.ts 1`] = ` "/* istanbul ignore file */ /* tslint:disable */ @@ -4468,6 +4445,8 @@ exports[`v3 should generate: ./test/generated/v3/models/ModelWithCircularReferen /* tslint:disable */ /* eslint-disable */ +import type { ModelWithCircularReference } from './ModelWithCircularReference'; + /** * This is a model with one property containing a circular reference */ @@ -4872,21 +4851,6 @@ export type SimpleStringWithPattern = string | null; " `; -exports[`v3 should generate: ./test/generated/v3/models/binary.ts 1`] = ` -"/* istanbul ignore file */ -/* tslint:disable */ -/* eslint-disable */ - -export type binary = { - readonly id?: string; - readonly updated_at?: string; - readonly created_at?: string; - mime: string; - readonly file?: string; -} -" -`; - exports[`v3 should generate: ./test/generated/v3/schemas/$ArrayWithArray.ts 1`] = ` "/* istanbul ignore file */ /* tslint:disable */ @@ -6153,42 +6117,6 @@ export const $SimpleStringWithPattern = { " `; -exports[`v3 should generate: ./test/generated/v3/schemas/$binary.ts 1`] = ` -"/* istanbul ignore file */ -/* tslint:disable */ -/* eslint-disable */ -export const $binary = { - properties: { - id: { - type: 'string', - isReadOnly: true, - minLength: 1, - }, - updated_at: { - type: 'string', - isReadOnly: true, - format: 'date-time', - }, - created_at: { - type: 'string', - isReadOnly: true, - format: 'date-time', - }, - mime: { - type: 'string', - isRequired: true, - maxLength: 24, - minLength: 1, - }, - file: { - type: 'string', - isReadOnly: true, - format: 'uri', - }, - }, -} as const;" -`; - exports[`v3 should generate: ./test/generated/v3/services/CollectionFormatService.ts 1`] = ` "/* istanbul ignore file */ /* tslint:disable */ @@ -7111,27 +7039,28 @@ export class ResponseService { " `; -exports[`v3 should generate: ./test/generated/v3/services/ServiceService.ts 1`] = ` +exports[`v3 should generate: ./test/generated/v3/services/DefaultService.ts 1`] = ` "/* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ import type { CancelablePromise } from '../core/CancelablePromise'; -import { request as __request } from '../core/request'; import { OpenAPI } from '../core/OpenAPI'; +import { request as __request } from '../core/request'; -export class ServiceService { +export class DefaultService { /** * @throws ApiError */ public static serviceWithEmptyTag(): CancelablePromise { - return __request({ + return __request(OpenAPI, { method: 'GET', - path: \`/api/v\${OpenAPI.VERSION}/no-tag\`, + url: '/api/v{api-version}/no-tag', }); } -}" +} +" `; exports[`v3 should generate: ./test/generated/v3/services/SimpleService.ts 1`] = ` diff --git a/test/index.spec.ts b/test/index.spec.ts index dc1bf2945..2689a4fd1 100644 --- a/test/index.spec.ts +++ b/test/index.spec.ts @@ -47,6 +47,7 @@ describe('v3', () => { describe('v3-embedded', () => { + return; it('should generate', async () => { await generate({ input: './test/spec/v3-embedded.json',