{"version":3,"sources":["jsdelivr-header.js","/npm/convert-swagger-v1-to-v2@1.3.15/convert-swagger-v1-to-v2.js"],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;ACkCA,QAAQ,IAAI,yBAEZ,IAAI,GAAK,QAAQ,MACb,GAAK,QAAQ,iBACb,KAAO,QAAQ,QAEf,cAAgB,QAAQ,MAGxB,kBAAoB,eACxB,GAAG,QAAQ,KAAK,OAAS,EACxB,QAAQ,IAAI,8BACZ,QAAQ,IAAI,uFACZ,QAAQ,WACJ,CACJ,IAAI,KAAO,QAAQ,KAAK,MAAM,QACX,IAAT,MAAwB,KAAK,OAAS,EAC/C,kBAAoB,QAAQ,KAAK,GAEjC,QAAQ,IAAI,uCAEd,CAEA,IAAI,QAAU,cAAgB,IAAM,kBAChC,GAAG,WAAW,WACjB,QAAQ,IAAI,WAAY,kBAAmB,0BAC3C,QAAQ,IAAI,8DACZ,QAAQ,IAAI,kFACZ,QAAQ,IAAI,qBACZ,QAAQ,QAET,QAAQ,IAAI,gBAAkB,SAG9B,IAAI,IAAM,QACL,GAAG,WAAW,MACf,GAAG,UAAU,KAGjB,IAAI,yBAA2B,wBAC3B,kBAAoB,iBACpB,yBAA2B,wBA4E/B,SAAS,KAAK,EAAO,EAAQ,GACzB,QAAQ,IAAI,GACf,QAAQ,IAAI,GACC,OAAV,GACF,QAAQ,IAAI,gBAAkB,EAEhC,CA3EA,GAAG,SAAS,QAAS,QAAQ,SAAS,EAAK,GACvC,GAAI,EACA,OAAO,QAAQ,IAAI,GAG1B,QAAQ,IAAI,gHAKW,OAHvB,EAAO,EAAK,QAAQ,OAAO,KAED,OAAO,KAE1B,EAAO,EAAK,UAAU,GAC5B,QAAQ,IAAI,mCAIS,MADF,EAAK,OAAO,KAEzB,EAAO,EAAK,MAAM,GAAI,GAC5B,QAAQ,IAAI,kCAIb,IAAI,EAA+B,cAAgB,QAAU,yBAC7D,GAAG,cAAc,EAA6B,EAAK,QACnD,QAAQ,IAAI,YAAc,yBAA2B,+BACrD,QAAQ,IAAI,gHAGR,GAAG,WAAW,cAAgB,QAAU,2BAE3C,QAAQ,IAAI,kBAAoB,yBAA2B,SAAW,kBAAoB,uDAC1F,GAAG,SAAS,0BAA4B,yBAA2B,0CAA4C,kBAAmB,MAClI,QAAQ,IAAI,YAAc,kBAAoB,+BAC9C,QAAQ,IAAI,gHAEZ,QAAQ,IAAI,gBAAkB,kBAAoB,SAAW,yBAA2B,SAEpF,GAAG,WAAW,OAAO,mBACxB,GAAG,SAAS,cAAgB,QAAU,kBAAmB,QAAQ,SAAS,EAAK,GAE9E,EAAO,EAAK,WAAW,OAAQ,IAC/B,QAAQ,IAAI,4BAEZ,IAAI,EAAU,GAAG,kBAAkB,cAAgB,QAAU,0BAC7D,EAAQ,KAAK,QAAQ,SAAS,GAC7B,EAAQ,MAAM,GACd,EAAQ,MACR,QAAQ,IAAI,YAAc,yBAA2B,+BACrD,QAAQ,IAAI,gHACZ,QAAQ,IAAI,qBACb,GACD,KAEA,QAAQ,IAAI,eAAiB,kBAAoB,cACjD,QAAQ,IAAI,wBAGb,QAAQ,IAAI,eAAiB,yBAA2B,cACxD,QAAQ,IAAI,qBAEd,IAiBA,OAAO,UAAU,WAAa,SAAS,EAAQ,GAE3C,OADa,KACC,MAAM,GAAQ,KAAK,EACrC","file":"/npm/convert-swagger-v1-to-v2@1.3.15/convert-swagger-v1-to-v2.js","sourceRoot":"","sourcesContent":["/**\n * Minified by jsDelivr using Terser v5.39.0.\n * Original file: /npm/convert-swagger-v1-to-v2@1.3.15/convert-swagger-v1-to-v2.js\n *\n * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files\n */\n","#!/usr/bin/env node\r\n////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////\r\n// Copyright (C) <2016> <TTHO>\r\n// \r\n// Permission to use, copy, modify, and/or distribute this software for any\r\n// purpose with or without fee is hereby granted, provided that the above\r\n// copyright notice and this permission notice appear in all copies.\r\n// \r\n// THE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES\r\n// WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF\r\n// MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR\r\n// ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES\r\n// WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION\r\n// OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN\r\n// CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.\r\n////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////\r\n////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////\r\n// Name : convert-swagger-v1-to-v2.js\r\n// Version : 1.3.x\r\n// NodeJS\r\n// Author : TTHO\r\n////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////\r\n//\r\n// Installation : \r\n// - NodeJS\r\n// - api-spec-converter (package npm)\r\n// - convert-swagger-v1-to-v2 (package npm)\r\n//\t\r\n// Help : \r\n// - For npm installation, use \"npm install -g <package-name>\"\r\n//\r\n// Usage :\r\n// - convert-swagger-v1-to-v2 [OPTIONAL:FILE-NAME]\r\n//\r\n////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////\r\n\r\n////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////\r\n// INITIALISATION\r\n////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////\r\n\r\nconsole.log(\"- Process started ...\")\r\n\r\nvar fs = require('fs');\r\nvar cp = require('child_process');\r\nvar util = require('util');\r\n\r\nvar fileDirectory = process.cwd();\r\n\r\n// Nom du fichier en entrée\r\nvar fileNameSwaggerV1 = \"swagger.json\";\r\nif(process.argv.length > 3){\r\n\tconsole.log(\"- /!\\ To much arguments /!\\ \");\t\r\n\tconsole.log(\"- Please, use the following command : convert-swagger-v1-to-v2 [OPTIONAL:FILE-NAME]\");\r\n\tprocess.exit();\r\n}else{\r\n\tvar args = process.argv.slice(2);\r\n\tif(typeof args !== 'undefined' && args.length > 0){\r\n\t\tfileNameSwaggerV1 = process.argv[2];\r\n\t}else{\r\n\t\tconsole.log(\"- Default [FILE-NAME] : swagger.json\");\r\n\t}\r\n}\r\n \r\nvar fileUrl = fileDirectory + \"/\" + fileNameSwaggerV1;\r\nif(!fs.existsSync(fileUrl)){\r\n\tconsole.log(\"- File <\"+ fileNameSwaggerV1 +\"> not found. You can :\");\r\n\tconsole.log(\" > Option 1 : Copy/paste a swagger.json in this directory.\");\r\n\tconsole.log(\" > Option 2 : Use the following command : convert-swagger-v1-to-v2 [FILE-NAME]\");\r\n\tconsole.log(\"- Process aborted\");\r\n\tprocess.exit();\r\n}\r\nconsole.log(\"- File URL : \" + fileUrl);\r\n\r\n// Création du dossier tmp, ne fais rien si deja existant\r\nvar dir = './tmp';\r\nif (!fs.existsSync(dir)) {\r\n    fs.mkdirSync(dir);\r\n}\r\n\r\nvar fileNameSwaggerV1Cleaned = \"swaggerCleanedV1.json\";\r\nvar fileNameSwaggerV2 = \"swaggerV2.json\";\r\nvar fileNameSwaggerV2Cleaned = \"swaggerCleanedV2.json\";\r\n\r\n////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////\r\n// MAIN PROCESS\r\n////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////\r\n\r\n// Lecture du fichier swagger.json\r\nfs.readFile(fileUrl, 'utf8', function(err, data) {\r\n    if (err) {\r\n        return console.log(err);\r\n    }\r\n\t\r\n\tconsole.log(\"------------------------------------------------------------------------------------------------------------\");\r\n\t// Suppression des espaces et saut de ligne à la fin de la data\r\n\tdata = data.replace(/\\s+$/,'');\r\n    // Suppression du premier char si c'est un \"[\"\r\n    var firstString = data.charAt(0);\r\n    if (firstString === \"[\") {\r\n        data = data.substring(1);\r\n\t\tconsole.log(\"-- First character '[' removed\");\r\n    }\r\n    // Suppression du dernier char si c'est un \"]\"\r\n    var lastString = data.slice(-1);\r\n    if (lastString === \"]\") {\r\n        data = data.slice(0, -1);\r\n\t\tconsole.log(\"-- Last character ']' removed\");\r\n    }\r\n\t\t\r\n\t// Ecriture dans un fichier swaggerCleanedV1.json\t\r\n\tvar fileNameSwaggerV1CleanedPath = fileDirectory + \"/tmp/\" + fileNameSwaggerV1Cleaned;\r\n\tfs.writeFileSync(fileNameSwaggerV1CleanedPath,data,'utf8');\r\n\tconsole.log(\"-- File <\" + fileNameSwaggerV1Cleaned + \"> created in folder : <tmp>\");\r\n\tconsole.log(\"------------------------------------------------------------------------------------------------------------\");\r\n\t\r\n\t// Si le fichier swaggerCleanedV1.json créé précédemment existe\r\n\tif (fs.existsSync(fileDirectory + \"/tmp/\" + fileNameSwaggerV1Cleaned)){\r\n\t\t// Conversion du fichier swaggerCleanedV1.json de la version 1.X vers 2.X\r\n\t\tconsole.log(\"-- Converting <\" + fileNameSwaggerV1Cleaned + \"> to <\" + fileNameSwaggerV2 + \"> with synchronous command <api-spec-converter> ...\");\r\n\t\tcp.execSync(\"api-spec-converter tmp/\" + fileNameSwaggerV1Cleaned + \" --from=swagger_1 --to=swagger_2 > tmp/\" + fileNameSwaggerV2, puts);\r\n\t\tconsole.log(\"-- File <\" + fileNameSwaggerV2 + \"> created in folder : <tmp>\");\r\n\t\tconsole.log(\"------------------------------------------------------------------------------------------------------------\");\r\n\t\t\r\n\t\tconsole.log(\"-- Cleaning <\" + fileNameSwaggerV2 + \"> to <\" + fileNameSwaggerV2Cleaned + \"> ...\");\r\n\t\t// Si le fichier swaggerV2.json créé précédemment existe\r\n\t\tif (fs.existsSync('tmp/'+fileNameSwaggerV2)){\r\n\t\t\tfs.readFile(fileDirectory + \"/tmp/\" + fileNameSwaggerV2, 'utf8', function(err, data) {\r\n\t\t\t\t// Suppression du/des champ(s) \"tags\"\t\r\n\t\t\t\tdata = data.replaceAll(\"tags\", \"\");\r\n\t\t\t\tconsole.log(\"-- Fields 'tags' removed\");\r\n\t\t\t\t//\tEcriture dans un fichier swaggerCleanedV2.json\t\r\n\t\t\t\tvar stream2 = fs.createWriteStream(fileDirectory + \"/tmp/\" + fileNameSwaggerV2Cleaned);\r\n\t\t\t\tstream2.once('open', function(fd) {\r\n\t\t\t\t\tstream2.write(data);\r\n\t\t\t\t\tstream2.end();\r\n\t\t\t\t\tconsole.log(\"-- File <\" + fileNameSwaggerV2Cleaned + \"> created in folder : <tmp>\");\t\r\n\t\t\t\t\tconsole.log(\"------------------------------------------------------------------------------------------------------------\");\r\n\t\t\t\t\tconsole.log(\"- Process finished\");\r\n\t\t\t\t});\r\n\t\t\t});\r\n\t\t}else{\r\n\t\t\tconsole.log(\"-- File tmp/\" + fileNameSwaggerV2 + \" not found\" );\r\n\t\t\tconsole.log(\"- Process aborted\");\r\n\t\t}\t\r\n\t}else{\r\n\t\tconsole.log(\"-- File tmp/\" + fileNameSwaggerV1Cleaned + \" not found\" );\r\n\t\tconsole.log(\"- Process aborted\");\r\n\t}\r\n});\r\n\t\r\n\r\n\r\n\r\n////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////\r\n// FUNCTIONS\r\n////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////\r\n\r\nfunction puts(error, stdout, stderr) {\r\n    console.log(stdout);\r\n\tconsole.log(stderr);\r\n\tif(error !== null){\r\n\t\tconsole.log(\"Exec error : \" + error);\r\n\t}\r\n}\r\n\r\nString.prototype.replaceAll = function(search, replacement) {\r\n    var target = this;\r\n    return target.split(search).join(replacement);\r\n};"]}