From 41aa3ba77593b074ac6e4e1ce942d7554b00c567 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=9C=D0=B0=D0=BA=D1=81=D0=B8=D0=BC=20=D0=9A=D0=BE=D1=81?= =?UTF-8?q?=D1=82=D1=8E=D0=BA=D0=BE=D0=B2?= Date: Wed, 30 Aug 2023 20:25:10 +1000 Subject: [PATCH 01/10] Added security check for operations --- package.json | 2 +- src/client/interfaces/Operation.d.ts | 1 + src/openApi/v3/parser/getOperation.ts | 1 + src/templates/core/xhr/getHeaders.hbs | 4 +++- src/templates/exportService.hbs | 1 + 5 files changed, 7 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index 14e1efb78..cbc57cfa9 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "openapi-typescript-codegen", - "version": "0.25.0", + "version": "0.26.0", "description": "Library that generates Typescript clients based on the OpenAPI specification.", "author": "Ferdi Koomen", "homepage": "https://github.com/ferdikoomen/openapi-typescript-codegen", diff --git a/src/client/interfaces/Operation.d.ts b/src/client/interfaces/Operation.d.ts index 779144325..74bef4e1e 100644 --- a/src/client/interfaces/Operation.d.ts +++ b/src/client/interfaces/Operation.d.ts @@ -13,4 +13,5 @@ export interface Operation extends OperationParameters { errors: OperationError[]; results: OperationResponse[]; responseHeader: string | null; + secured: boolean; } diff --git a/src/openApi/v3/parser/getOperation.ts b/src/openApi/v3/parser/getOperation.ts index aee4bd0c2..3201dd617 100644 --- a/src/openApi/v3/parser/getOperation.ts +++ b/src/openApi/v3/parser/getOperation.ts @@ -45,6 +45,7 @@ export const getOperation = ( errors: [], results: [], responseHeader: null, + secured: !!op.security, }; // Parse the operation parameters (path, query, body, etc). diff --git a/src/templates/core/xhr/getHeaders.hbs b/src/templates/core/xhr/getHeaders.hbs index 3aca7aef3..d8b3bd21a 100644 --- a/src/templates/core/xhr/getHeaders.hbs +++ b/src/templates/core/xhr/getHeaders.hbs @@ -1,5 +1,7 @@ export const getHeaders = async (config: OpenAPIConfig, options: ApiRequestOptions): Promise => { - const token = await resolve(options, config.TOKEN); + if (options.secured) { + const token = await resolve(options, config.TOKEN); + } const username = await resolve(options, config.USERNAME); const password = await resolve(options, config.PASSWORD); const additionalHeaders = await resolve(options, config.HEADERS); diff --git a/src/templates/exportService.hbs b/src/templates/exportService.hbs index d6bccbbeb..13ec92ea9 100644 --- a/src/templates/exportService.hbs +++ b/src/templates/exportService.hbs @@ -145,6 +145,7 @@ export class {{{name}}}{{{@root.postfix}}} { {{/each}} }, {{/if}} + secured: {{{secured}}} }); } From 6e429b1742cdddc4266cc82d98645eeb69481e77 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=9C=D0=B0=D0=BA=D1=81=D0=B8=D0=BC=20=D0=9A=D0=BE=D1=81?= =?UTF-8?q?=D1=82=D1=8E=D0=BA=D0=BE=D0=B2?= Date: Wed, 30 Aug 2023 20:38:11 +1000 Subject: [PATCH 02/10] Added security check for operations --- package.json | 2 +- src/templates/core/ApiRequestOptions.hbs | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/package.json b/package.json index cbc57cfa9..003a2be20 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "openapi-typescript-codegen", - "version": "0.26.0", + "version": "0.26.1", "description": "Library that generates Typescript clients based on the OpenAPI specification.", "author": "Ferdi Koomen", "homepage": "https://github.com/ferdikoomen/openapi-typescript-codegen", diff --git a/src/templates/core/ApiRequestOptions.hbs b/src/templates/core/ApiRequestOptions.hbs index 355929a71..7d40d2763 100644 --- a/src/templates/core/ApiRequestOptions.hbs +++ b/src/templates/core/ApiRequestOptions.hbs @@ -12,4 +12,5 @@ export type ApiRequestOptions = { readonly mediaType?: string; readonly responseHeader?: string; readonly errors?: Record; + readonly secured: boolean; }; From 3213366ebb0dc0cea28a6502b0a7d9385571bc09 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=9C=D0=B0=D0=BA=D1=81=D0=B8=D0=BC=20=D0=9A=D0=BE=D1=81?= =?UTF-8?q?=D1=82=D1=8E=D0=BA=D0=BE=D0=B2?= Date: Wed, 30 Aug 2023 20:43:43 +1000 Subject: [PATCH 03/10] Added security check for operations --- package.json | 2 +- src/templates/core/axios/getHeaders.hbs | 4 +++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index 003a2be20..c46f5b60d 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "openapi-typescript-codegen", - "version": "0.26.1", + "version": "0.26.2", "description": "Library that generates Typescript clients based on the OpenAPI specification.", "author": "Ferdi Koomen", "homepage": "https://github.com/ferdikoomen/openapi-typescript-codegen", diff --git a/src/templates/core/axios/getHeaders.hbs b/src/templates/core/axios/getHeaders.hbs index 3643cd5b3..67bd3f5c0 100644 --- a/src/templates/core/axios/getHeaders.hbs +++ b/src/templates/core/axios/getHeaders.hbs @@ -1,5 +1,7 @@ export const getHeaders = async (config: OpenAPIConfig, options: ApiRequestOptions, formData?: FormData): Promise> => { - const token = await resolve(options, config.TOKEN); + if (options.secured) { + const token = await resolve(options, config.TOKEN); + } const username = await resolve(options, config.USERNAME); const password = await resolve(options, config.PASSWORD); const additionalHeaders = await resolve(options, config.HEADERS); From a9970e4f94b35e5a286def46b1ef5215b925938e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=9C=D0=B0=D0=BA=D1=81=D0=B8=D0=BC=20=D0=9A=D0=BE=D1=81?= =?UTF-8?q?=D1=82=D1=8E=D0=BA=D0=BE=D0=B2?= Date: Wed, 30 Aug 2023 20:50:10 +1000 Subject: [PATCH 04/10] Added security check for operations --- package.json | 2 +- src/templates/core/angular/getHeaders.hbs | 3 ++- src/templates/core/axios/getHeaders.hbs | 4 +--- src/templates/core/fetch/getHeaders.hbs | 2 +- src/templates/core/xhr/getHeaders.hbs | 4 +--- 5 files changed, 6 insertions(+), 9 deletions(-) diff --git a/package.json b/package.json index c46f5b60d..180078911 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "openapi-typescript-codegen", - "version": "0.26.2", + "version": "0.26.3", "description": "Library that generates Typescript clients based on the OpenAPI specification.", "author": "Ferdi Koomen", "homepage": "https://github.com/ferdikoomen/openapi-typescript-codegen", diff --git a/src/templates/core/angular/getHeaders.hbs b/src/templates/core/angular/getHeaders.hbs index 57495a578..b3de9e256 100644 --- a/src/templates/core/angular/getHeaders.hbs +++ b/src/templates/core/angular/getHeaders.hbs @@ -1,6 +1,7 @@ export const getHeaders = (config: OpenAPIConfig, options: ApiRequestOptions): Observable => { + const token = options.secured ? await resolve(options, config.TOKEN) : undefined; return forkJoin({ - token: resolve(options, config.TOKEN), + token, username: resolve(options, config.USERNAME), password: resolve(options, config.PASSWORD), additionalHeaders: resolve(options, config.HEADERS), diff --git a/src/templates/core/axios/getHeaders.hbs b/src/templates/core/axios/getHeaders.hbs index 67bd3f5c0..987cc273d 100644 --- a/src/templates/core/axios/getHeaders.hbs +++ b/src/templates/core/axios/getHeaders.hbs @@ -1,7 +1,5 @@ export const getHeaders = async (config: OpenAPIConfig, options: ApiRequestOptions, formData?: FormData): Promise> => { - if (options.secured) { - const token = await resolve(options, config.TOKEN); - } + const token = options.secured ? await resolve(options, config.TOKEN) : undefined; const username = await resolve(options, config.USERNAME); const password = await resolve(options, config.PASSWORD); const additionalHeaders = await resolve(options, config.HEADERS); diff --git a/src/templates/core/fetch/getHeaders.hbs b/src/templates/core/fetch/getHeaders.hbs index 3aca7aef3..cc9cefd7d 100644 --- a/src/templates/core/fetch/getHeaders.hbs +++ b/src/templates/core/fetch/getHeaders.hbs @@ -1,5 +1,5 @@ export const getHeaders = async (config: OpenAPIConfig, options: ApiRequestOptions): Promise => { - const token = await resolve(options, config.TOKEN); + const token = options.secured ? await resolve(options, config.TOKEN) : undefined; const username = await resolve(options, config.USERNAME); const password = await resolve(options, config.PASSWORD); const additionalHeaders = await resolve(options, config.HEADERS); diff --git a/src/templates/core/xhr/getHeaders.hbs b/src/templates/core/xhr/getHeaders.hbs index d8b3bd21a..cc9cefd7d 100644 --- a/src/templates/core/xhr/getHeaders.hbs +++ b/src/templates/core/xhr/getHeaders.hbs @@ -1,7 +1,5 @@ export const getHeaders = async (config: OpenAPIConfig, options: ApiRequestOptions): Promise => { - if (options.secured) { - const token = await resolve(options, config.TOKEN); - } + const token = options.secured ? await resolve(options, config.TOKEN) : undefined; const username = await resolve(options, config.USERNAME); const password = await resolve(options, config.PASSWORD); const additionalHeaders = await resolve(options, config.HEADERS); From b40b2135f932dc16401283fe402d01df94c21e25 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=9C=D0=B0=D0=BA=D1=81=D0=B8=D0=BC=20=D0=9A=D0=BE=D1=81?= =?UTF-8?q?=D1=82=D1=8E=D0=BA=D0=BE=D0=B2?= Date: Wed, 30 Aug 2023 22:30:30 +1000 Subject: [PATCH 05/10] Added security check for operations --- src/client/interfaces/Operation.d.ts | 5 ++++- src/openApi/v2/parser/getOperation.ts | 7 +++++++ src/openApi/v3/parser/getOperation.ts | 8 +++++++- src/templates/core/angular/getHeaders.hbs | 2 +- src/templates/core/axios/getHeaders.hbs | 2 +- src/templates/core/fetch/getHeaders.hbs | 2 +- src/templates/core/node/getHeaders.hbs | 2 +- src/templates/core/xhr/getHeaders.hbs | 2 +- 8 files changed, 23 insertions(+), 7 deletions(-) diff --git a/src/client/interfaces/Operation.d.ts b/src/client/interfaces/Operation.d.ts index 74bef4e1e..3b9a0a423 100644 --- a/src/client/interfaces/Operation.d.ts +++ b/src/client/interfaces/Operation.d.ts @@ -13,5 +13,8 @@ export interface Operation extends OperationParameters { errors: OperationError[]; results: OperationResponse[]; responseHeader: string | null; - secured: boolean; + security: { + secured: boolean; + optional: boolean; + }; } diff --git a/src/openApi/v2/parser/getOperation.ts b/src/openApi/v2/parser/getOperation.ts index 9aa157460..ae4b48ec1 100644 --- a/src/openApi/v2/parser/getOperation.ts +++ b/src/openApi/v2/parser/getOperation.ts @@ -42,6 +42,13 @@ export const getOperation = ( errors: [], results: [], responseHeader: null, + security: { + secured: !!op.security && op.security.length > 0, + optional: + !!op.security && op.security.length > 0 + ? false + : op.security!.some(item => Object.keys(item).length == 0), + }, }; // Parse the operation parameters (path, query, body, etc). diff --git a/src/openApi/v3/parser/getOperation.ts b/src/openApi/v3/parser/getOperation.ts index 3201dd617..43bfaf2e5 100644 --- a/src/openApi/v3/parser/getOperation.ts +++ b/src/openApi/v3/parser/getOperation.ts @@ -45,7 +45,13 @@ export const getOperation = ( errors: [], results: [], responseHeader: null, - secured: !!op.security, + security: { + secured: !!op.security && op.security.length > 0, + optional: + !!op.security && op.security.length > 0 + ? false + : op.security!.some(item => Object.keys(item).length == 0), + }, }; // Parse the operation parameters (path, query, body, etc). diff --git a/src/templates/core/angular/getHeaders.hbs b/src/templates/core/angular/getHeaders.hbs index b3de9e256..e4aed62e0 100644 --- a/src/templates/core/angular/getHeaders.hbs +++ b/src/templates/core/angular/getHeaders.hbs @@ -1,5 +1,5 @@ export const getHeaders = (config: OpenAPIConfig, options: ApiRequestOptions): Observable => { - const token = options.secured ? await resolve(options, config.TOKEN) : undefined; + const token = options.security.secured ? await resolve(options, config.TOKEN) : undefined; return forkJoin({ token, username: resolve(options, config.USERNAME), diff --git a/src/templates/core/axios/getHeaders.hbs b/src/templates/core/axios/getHeaders.hbs index 987cc273d..7fc46d9f1 100644 --- a/src/templates/core/axios/getHeaders.hbs +++ b/src/templates/core/axios/getHeaders.hbs @@ -1,5 +1,5 @@ export const getHeaders = async (config: OpenAPIConfig, options: ApiRequestOptions, formData?: FormData): Promise> => { - const token = options.secured ? await resolve(options, config.TOKEN) : undefined; + const token = options.security.secured ? await resolve(options, config.TOKEN) : undefined; const username = await resolve(options, config.USERNAME); const password = await resolve(options, config.PASSWORD); const additionalHeaders = await resolve(options, config.HEADERS); diff --git a/src/templates/core/fetch/getHeaders.hbs b/src/templates/core/fetch/getHeaders.hbs index cc9cefd7d..69ba3e1bf 100644 --- a/src/templates/core/fetch/getHeaders.hbs +++ b/src/templates/core/fetch/getHeaders.hbs @@ -1,5 +1,5 @@ export const getHeaders = async (config: OpenAPIConfig, options: ApiRequestOptions): Promise => { - const token = options.secured ? await resolve(options, config.TOKEN) : undefined; + const token = options.security.secured ? await resolve(options, config.TOKEN) : undefined; const username = await resolve(options, config.USERNAME); const password = await resolve(options, config.PASSWORD); const additionalHeaders = await resolve(options, config.HEADERS); diff --git a/src/templates/core/node/getHeaders.hbs b/src/templates/core/node/getHeaders.hbs index bfd25ce9d..4d8ad56d8 100644 --- a/src/templates/core/node/getHeaders.hbs +++ b/src/templates/core/node/getHeaders.hbs @@ -1,5 +1,5 @@ export const getHeaders = async (config: OpenAPIConfig, options: ApiRequestOptions): Promise => { - const token = await resolve(options, config.TOKEN); + const token = options.security.secured ? await resolve(options, config.TOKEN) : undefined; const username = await resolve(options, config.USERNAME); const password = await resolve(options, config.PASSWORD); const additionalHeaders = await resolve(options, config.HEADERS); diff --git a/src/templates/core/xhr/getHeaders.hbs b/src/templates/core/xhr/getHeaders.hbs index cc9cefd7d..69ba3e1bf 100644 --- a/src/templates/core/xhr/getHeaders.hbs +++ b/src/templates/core/xhr/getHeaders.hbs @@ -1,5 +1,5 @@ export const getHeaders = async (config: OpenAPIConfig, options: ApiRequestOptions): Promise => { - const token = options.secured ? await resolve(options, config.TOKEN) : undefined; + const token = options.security.secured ? await resolve(options, config.TOKEN) : undefined; const username = await resolve(options, config.USERNAME); const password = await resolve(options, config.PASSWORD); const additionalHeaders = await resolve(options, config.HEADERS); From 116c50b3d60f792e60ec1fe32f3bc174fac43309 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=9C=D0=B0=D0=BA=D1=81=D0=B8=D0=BC=20=D0=9A=D0=BE=D1=81?= =?UTF-8?q?=D1=82=D1=8E=D0=BA=D0=BE=D0=B2?= Date: Wed, 30 Aug 2023 22:31:09 +1000 Subject: [PATCH 06/10] Added security check for operations --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 180078911..38b086ef3 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "openapi-typescript-codegen", - "version": "0.26.3", + "version": "0.26.4", "description": "Library that generates Typescript clients based on the OpenAPI specification.", "author": "Ferdi Koomen", "homepage": "https://github.com/ferdikoomen/openapi-typescript-codegen", From d2489bf25503c12113aebe2a089525ce3ec5a6d1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=9C=D0=B0=D0=BA=D1=81=D0=B8=D0=BC=20=D0=9A=D0=BE=D1=81?= =?UTF-8?q?=D1=82=D1=8E=D0=BA=D0=BE=D0=B2?= Date: Thu, 31 Aug 2023 12:07:29 +1000 Subject: [PATCH 07/10] Added security check for operations --- package.json | 2 +- src/openApi/v3/parser/getOperation.ts | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index 38b086ef3..ba61116a4 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "openapi-typescript-codegen", - "version": "0.26.4", + "version": "0.26.5", "description": "Library that generates Typescript clients based on the OpenAPI specification.", "author": "Ferdi Koomen", "homepage": "https://github.com/ferdikoomen/openapi-typescript-codegen", diff --git a/src/openApi/v3/parser/getOperation.ts b/src/openApi/v3/parser/getOperation.ts index 43bfaf2e5..6f2a1494e 100644 --- a/src/openApi/v3/parser/getOperation.ts +++ b/src/openApi/v3/parser/getOperation.ts @@ -50,7 +50,7 @@ export const getOperation = ( optional: !!op.security && op.security.length > 0 ? false - : op.security!.some(item => Object.keys(item).length == 0), + : op.security?.some(item => Object.keys(item).length == 0) ?? false, }, }; From 9c50468cab4bc521befcadee7d1a4bdc397a4abc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=9C=D0=B0=D0=BA=D1=81=D0=B8=D0=BC=20=D0=9A=D0=BE=D1=81?= =?UTF-8?q?=D1=82=D1=8E=D0=BA=D0=BE=D0=B2?= Date: Thu, 31 Aug 2023 12:19:35 +1000 Subject: [PATCH 08/10] Added security check for operations --- package.json | 2 +- src/templates/core/ApiRequestOptions.hbs | 5 ++++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index ba61116a4..78abf2a39 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "openapi-typescript-codegen", - "version": "0.26.5", + "version": "0.26.6", "description": "Library that generates Typescript clients based on the OpenAPI specification.", "author": "Ferdi Koomen", "homepage": "https://github.com/ferdikoomen/openapi-typescript-codegen", diff --git a/src/templates/core/ApiRequestOptions.hbs b/src/templates/core/ApiRequestOptions.hbs index 7d40d2763..8f3c72572 100644 --- a/src/templates/core/ApiRequestOptions.hbs +++ b/src/templates/core/ApiRequestOptions.hbs @@ -12,5 +12,8 @@ export type ApiRequestOptions = { readonly mediaType?: string; readonly responseHeader?: string; readonly errors?: Record; - readonly secured: boolean; + readonly security: { + secured: boolean; + optional: boolean; + }; }; From 75391138563a8b0913cfb390b00e21a69f3c5cae Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=9C=D0=B0=D0=BA=D1=81=D0=B8=D0=BC=20=D0=9A=D0=BE=D1=81?= =?UTF-8?q?=D1=82=D1=8E=D0=BA=D0=BE=D0=B2?= Date: Thu, 31 Aug 2023 12:22:41 +1000 Subject: [PATCH 09/10] Added security check for operations --- package.json | 2 +- src/templates/exportService.hbs | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index 78abf2a39..eb14454fc 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "openapi-typescript-codegen", - "version": "0.26.6", + "version": "0.26.7", "description": "Library that generates Typescript clients based on the OpenAPI specification.", "author": "Ferdi Koomen", "homepage": "https://github.com/ferdikoomen/openapi-typescript-codegen", diff --git a/src/templates/exportService.hbs b/src/templates/exportService.hbs index 13ec92ea9..e92fc757b 100644 --- a/src/templates/exportService.hbs +++ b/src/templates/exportService.hbs @@ -145,7 +145,7 @@ export class {{{name}}}{{{@root.postfix}}} { {{/each}} }, {{/if}} - secured: {{{secured}}} + security: {{{security}}} }); } From 6252824b422fd533445146c4996052ec933a9577 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=9C=D0=B0=D0=BA=D1=81=D0=B8=D0=BC=20=D0=9A=D0=BE=D1=81?= =?UTF-8?q?=D1=82=D1=8E=D0=BA=D0=BE=D0=B2?= Date: Thu, 31 Aug 2023 12:25:12 +1000 Subject: [PATCH 10/10] Added security check for operations --- package.json | 2 +- src/templates/exportService.hbs | 5 ++++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index eb14454fc..33f08d505 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "openapi-typescript-codegen", - "version": "0.26.7", + "version": "0.26.8", "description": "Library that generates Typescript clients based on the OpenAPI specification.", "author": "Ferdi Koomen", "homepage": "https://github.com/ferdikoomen/openapi-typescript-codegen", diff --git a/src/templates/exportService.hbs b/src/templates/exportService.hbs index e92fc757b..ceeb907a3 100644 --- a/src/templates/exportService.hbs +++ b/src/templates/exportService.hbs @@ -145,7 +145,10 @@ export class {{{name}}}{{{@root.postfix}}} { {{/each}} }, {{/if}} - security: {{{security}}} + security:{ + secured: {{{security.secured}}}, + optional: {{{security.optional}}} + } }); }