{"_id":"apigeetoopenapi","_rev":"31-ec2c4964e2eb443725b06170544d634b","name":"apigeetoopenapi","dist-tags":{"latest":"5.8.1"},"versions":{"1.0.0":{"name":"apigeetoopenapi","version":"1.0.0","keywords":["apigee2openapi"],"author":{"name":"Hatim Alattas","email":"hatimalattas@outlook.com"},"license":"MIT","_id":"apigeetoopenapi@1.0.0","maintainers":[{"name":"hatimalattas","email":"hatimalattas@outlook.com"}],"homepage":"https://github.com/hatimalattas/Apigee2OpenAPI","dist":{"shasum":"fe73e1bc96fdf534905b7e7b58e520aadb52bc17","tarball":"https://registry.npmjs.org/apigeetoopenapi/-/apigeetoopenapi-1.0.0.tgz","fileCount":6,"integrity":"sha512-tqF1FAReyi9O/VHrCuMIk6nhKV9JakUGKuhkr0cGDLt/CbKG6aOra8VcYJGeZxD1GvfMA4kle3P2jPbia0osIA==","signatures":[{"sig":"MEYCIQDqaT2O3l72TqAhqiwjwH3Thap62KZmAUPaWxtQ8ldp/AIhAIYUpwaHbaHzb6TYdvr2tO4pu5QCB2xo2aIbt0kpJJ4p","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":40667},"main":"apigee2openapi.js","type":"module","gitHead":"0860b327026045e96ff271f8afc7cb9ad0164b21","scripts":{"test":"mocha"},"_npmUser":{"name":"hatimalattas","email":"hatimalattas@outlook.com"},"repository":{"url":"apigee2openapi","type":"git"},"_npmVersion":"10.2.4","description":"The Apigee2OpenAPI tool is designed to parse the Apigee Proxy Bundle and generate corresponding OpenAPI specifications.","directories":{},"_nodeVersion":"21.5.0","dependencies":{"q":"^1.5.1","bl":"^4.1.0","he":"^1.2.0","ms":"^2.0.0","qs":"^6.11.0","ajv":"^6.12.6","has":"^1.0.3","ora":"^5.4.1","psl":"^1.9.0","sax":"^1.2.4","tmp":"^0.0.27","asn1":"^0.2.6","aws4":"^1.12.0","depd":"^2.0.0","diff":"^5.0.0","flat":"^5.0.2","glob":"^5.0.15","jsbn":"^0.1.1","once":"^1.4.0","over":"^0.0.5","pako":"^0.2.9","pump":"^1.0.3","read":"^1.0.7","rxjs":"^7.8.0","tr46":"^0.0.3","uuid":"^3.4.0","y18n":"^5.0.8","yaml":"^1.10.2","async":"^1.5.2","bytes":"^3.1.2","chalk":"^4.1.2","cliui":"^7.0.4","clone":"^1.0.4","debug":"^2.6.9","growl":"^1.10.5","isexe":"^2.0.0","jszip":"^2.5.0","netrc":"^0.1.4","sshpk":"^1.17.0","tslib":"^2.5.0","which":"^2.0.2","xtend":"^4.0.2","yargs":"^16.2.0","binary":"^0.3.0","braces":"^3.0.2","buffer":"^5.7.1","chownr":"^1.1.4","colors":"^1.0.3","extend":"^3.0.2","jsprim":"^1.4.2","lodash":"^4.17.21","mkdirp":"^0.5.6","nanoid":"^3.3.1","rimraf":"^2.7.1","should":"^7.1.1","tar-fs":"^1.16.3","unpipe":"^1.0.0","uri-js":"^4.4.1","verror":"^1.10.0","wrappy":"^1.0.2","xml2js":"^0.4.23","buffers":"^0.1.1","chardet":"^0.7.0","destroy":"^1.2.0","figures":"^3.2.0","find-up":"^5.0.0","fstream":"^1.0.12","getpass":"^0.1.7","ieee754":"^1.2.1","is-glob":"^4.0.3","isarray":"^0.0.1","js-yaml":"^4.1.0","mime-db":"^1.52.0","onetime":"^5.1.2","p-limit":"^3.1.0","request":"^2.88.2","through":"^2.3.8","type-is":"^1.6.18","wcwidth":"^1.0.1","anymatch":"^3.1.3","argparse":"^2.0.1","asynckit":"^0.4.0","caseless":"^0.12.0","chainsaw":"^0.1.0","chokidar":"^3.5.3","dashdash":"^1.14.1","defaults":"^1.0.4","ecc-jsbn":"^0.1.2","ee-first":"^1.1.1","escalade":"^3.1.1","fs-extra":"^4.0.3","fsevents":"^2.3.2","has-flag":"^4.0.0","inflight":"^1.0.6","inherits":"^2.0.4","inquirer":"^8.2.5","isstream":"^0.1.2","jsonfile":"^4.0.0","mimic-fn":"^2.1.0","minimist":"^1.2.8","mustache":"^2.3.2","node-zip":"^1.1.1","p-locate":"^5.0.0","punycode":"^2.3.0","raw-body":"^2.5.2","readdirp":"^3.6.0","reftools":"^1.1.9","statuses":"^2.0.1","traverse":"^0.3.9","aws-sign2":"^0.7.0","base64-js":"^1.5.1","call-bind":"^1.0.2","camelcase":"^6.3.0","cli-table":"^0.3.11","cli-width":"^3.0.0","commander":"^2.20.3","form-data":"^2.3.3","is-number":"^7.0.0","minimatch":"^3.1.2","os-tmpdir":"^1.0.2","picomatch":"^2.3.1","run-async":"^2.4.1","to-buffer":"^1.1.1","tweetnacl":"^0.14.5","type-fest":"^0.21.3","wrap-ansi":"^7.0.0","ansi-regex":"^5.0.1","apigeetool":"^0.15.1","cli-cursor":"^3.1.0","color-name":"^1.1.4","concat-map":"^0.0.1","decamelize":"^4.0.0","extsprintf":"^1.3.0","fill-range":"^7.0.1","har-schema":"^2.0.0","iconv-lite":"^0.4.24","is-extglob":"^2.1.1","mime-types":"^2.1.35","node-fetch":"^2.6.9","oas-linter":"^3.2.2","oauth-sign":"^0.9.0","pullstream":"^0.4.1","strip-ansi":"^6.0.1","tar-stream":"^1.6.2","underscore":"^1.13.6","whatwg-url":"^5.0.0","workerpool":"^6.2.0","xmlbuilder":"^11.0.1","ansi-colors":"^4.1.1","ansi-styles":"^4.3.0","assert-plus":"^1.0.0","body-parser":"^1.20.2","buffer-fill":"^1.0.0","emoji-regex":"^8.0.0","es6-promise":"^3.3.1","fs.realpath":"^1.0.0","glob-parent":"^5.1.2","graceful-fs":"^4.2.10","has-symbols":"^1.0.3","http-errors":"^2.0.0","json-schema":"^0.4.0","locate-path":"^6.0.0","log-symbols":"^4.1.0","media-typer":"^0.3.0","mute-stream":"^0.0.8","on-finished":"^2.4.1","path-exists":"^4.0.0","randombytes":"^2.1.0","safe-buffer":"^5.2.1","should-type":"^0.2.0","should-util":"^1.0.1","signal-exit":"^3.0.7","yocto-queue":"^0.1.0","ansi-escapes":"^4.3.2","bcrypt-pbkdf":"^1.0.2","buffer-alloc":"^1.2.0","cli-spinners":"^2.7.0","content-type":"^1.0.5","core-util-is":"^1.0.3","fs-constants":"^1.0.0","http2-client":"^1.3.5","is-plain-obj":"^2.1.0","match-stream":"^0.0.2","node-unzip-2":"^0.2.8","oas-resolver":"^2.5.6","safer-buffer":"^2.1.2","setimmediate":"^1.0.5","should-equal":"^0.5.0","side-channel":"^1.0.4","slice-stream":"^1.0.0","string-width":"^4.2.3","toidentifier":"^1.0.1","tough-cookie":"^2.5.0","tunnel-agent":"^0.6.0","universalify":"^0.1.2","yargs-parser":"^20.2.4","call-me-maybe":"^1.0.2","color-convert":"^2.0.1","end-of-stream":"^1.4.4","forever-agent":"^0.6.1","function-bind":"^1.1.1","get-intrinsic":"^1.2.0","har-validator":"^5.1.5","is-typedarray":"^1.0.0","node-fetch-h2":"^2.3.0","oas-validator":"^5.0.8","should-format":"^0.3.1","balanced-match":"^1.0.2","browser-stdout":"^1.3.1","delayed-stream":"^1.0.0","http-signature":"^1.2.0","is-binary-path":"^2.1.0","is-interactive":"^1.0.0","node-readfiles":"^0.2.0","normalize-path":"^3.0.0","oas-kit-common":"^1.0.8","object-inspect":"^1.12.3","restore-cursor":"^3.1.0","setprototypeof":"^1.2.0","string_decoder":"^0.10.31","supports-color":"^7.2.0","to-regex-range":"^5.0.1","util-deprecate":"^1.0.2","yargs-unparser":"^2.0.0","brace-expansion":"^1.1.11","combined-stream":"^1.0.8","external-editor":"^3.1.0","fast-deep-equal":"^3.1.3","get-caller-file":"^2.0.5","performance-now":"^2.1.0","readable-stream":"^1.0.34","swagger2openapi":"^7.0.8","path-is-absolute":"^1.0.1","binary-extensions":"^2.2.0","oas-schema-walker":"^1.1.5","require-directory":"^2.1.1","webidl-conversions":"^3.0.1","buffer-alloc-unsafe":"^1.1.0","fast-safe-stringify":"^2.1.1","json-stringify-safe":"^5.0.1","strip-json-comments":"^3.1.1","escape-string-regexp":"^1.0.5","is-unicode-supported":"^0.1.0","json-schema-traverse":"^0.4.1","process-nextick-args":"^2.0.1","serialize-javascript":"^6.0.0","should-type-adaptors":"^1.1.0","is-fullwidth-code-point":"^3.0.0","fast-json-stable-stringify":"^2.1.0"},"_hasShrinkwrap":false,"devDependencies":{"mocha":"^9.2.2","eslint":"^8.56.0","eslint-plugin-import":"^2.29.1","eslint-config-airbnb-base":"^15.0.0"},"_npmOperationalInternal":{"tmp":"tmp/apigeetoopenapi_1.0.0_1705414896622_0.4469434715933176","host":"s3://npm-registry-packages"}},"2.0.0":{"name":"apigeetoopenapi","version":"2.0.0","keywords":["apigee2openapi","apigeetoopenapi","apigeex2openapi"],"author":{"name":"Hatim Alattas","email":"hatimalattas@outlook.com"},"license":"MIT","_id":"apigeetoopenapi@2.0.0","maintainers":[{"name":"hatimalattas","email":"hatimalattas@outlook.com"}],"homepage":"https://github.com/hatimalattas/ApigeeToOpenAPI","dist":{"shasum":"bc17f5db41b16b19a2ea91efa7431f9f0dd3ee5e","tarball":"https://registry.npmjs.org/apigeetoopenapi/-/apigeetoopenapi-2.0.0.tgz","fileCount":6,"integrity":"sha512-PT1DXWhUf4xOYM6OABK66RISU4ENRIM2PZn/WRKoYTGu1lMH9eTO7+yzdOE2A7HtsWWJM9Ca0xfFEI8+4rUnmg==","signatures":[{"sig":"MEUCIQDGNmilP8eNlC7NRlHXfcriCpE6lJxmPNLwSLezKF+TbwIgWp6NVhsyUfELeYd8z9TJiYchngFIkntaoo1U5phbnPA=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":37244},"main":"apigeetoopenapi.js","type":"module","gitHead":"f7cad4c6f41070473dc98f47f94a4c40bf6bde20","scripts":{"test":"mocha"},"_npmUser":{"name":"hatimalattas","email":"hatimalattas@outlook.com"},"repository":{"url":"apigeetoopenapi","type":"git"},"_npmVersion":"10.2.4","description":"The ApigeeToOpenAPI tool is designed to parse the Apigee Proxy Bundle and generate corresponding OpenAPI specifications.","directories":{},"_nodeVersion":"21.5.0","dependencies":{"q":"^1.5.1","bl":"^4.1.0","he":"^1.2.0","ms":"^2.0.0","qs":"^6.11.0","ajv":"^6.12.6","has":"^1.0.3","ora":"^5.4.1","psl":"^1.9.0","sax":"^1.2.4","tmp":"^0.0.27","asn1":"^0.2.6","aws4":"^1.12.0","depd":"^2.0.0","diff":"^5.0.0","flat":"^5.0.2","glob":"^5.0.15","jsbn":"^0.1.1","once":"^1.4.0","over":"^0.0.5","pako":"^0.2.9","pump":"^1.0.3","read":"^1.0.7","rxjs":"^7.8.0","tr46":"^0.0.3","uuid":"^3.4.0","y18n":"^5.0.8","yaml":"^1.10.2","async":"^1.5.2","bytes":"^3.1.2","chalk":"^4.1.2","cliui":"^7.0.4","clone":"^1.0.4","debug":"^2.6.9","growl":"^1.10.5","isexe":"^2.0.0","jszip":"^2.5.0","netrc":"^0.1.4","sshpk":"^1.17.0","tslib":"^2.5.0","which":"^2.0.2","xtend":"^4.0.2","yargs":"^16.2.0","binary":"^0.3.0","braces":"^3.0.2","buffer":"^5.7.1","chownr":"^1.1.4","colors":"^1.0.3","extend":"^3.0.2","jsprim":"^1.4.2","lodash":"^4.17.21","mkdirp":"^0.5.6","nanoid":"^3.3.1","rimraf":"^2.7.1","should":"^7.1.1","tar-fs":"^1.16.3","unpipe":"^1.0.0","uri-js":"^4.4.1","verror":"^1.10.0","wrappy":"^1.0.2","xml2js":"^0.4.23","buffers":"^0.1.1","chardet":"^0.7.0","destroy":"^1.2.0","figures":"^3.2.0","find-up":"^5.0.0","fstream":"^1.0.12","getpass":"^0.1.7","ieee754":"^1.2.1","is-glob":"^4.0.3","isarray":"^0.0.1","js-yaml":"^4.1.0","mime-db":"^1.52.0","onetime":"^5.1.2","p-limit":"^3.1.0","request":"^2.88.2","through":"^2.3.8","type-is":"^1.6.18","wcwidth":"^1.0.1","anymatch":"^3.1.3","argparse":"^2.0.1","asynckit":"^0.4.0","caseless":"^0.12.0","chainsaw":"^0.1.0","chokidar":"^3.5.3","dashdash":"^1.14.1","defaults":"^1.0.4","ecc-jsbn":"^0.1.2","ee-first":"^1.1.1","escalade":"^3.1.1","fs-extra":"^4.0.3","fsevents":"^2.3.2","has-flag":"^4.0.0","inflight":"^1.0.6","inherits":"^2.0.4","inquirer":"^8.2.5","isstream":"^0.1.2","jsonfile":"^4.0.0","mimic-fn":"^2.1.0","minimist":"^1.2.8","mustache":"^2.3.2","node-zip":"^1.1.1","p-locate":"^5.0.0","punycode":"^2.3.0","raw-body":"^2.5.2","readdirp":"^3.6.0","reftools":"^1.1.9","statuses":"^2.0.1","traverse":"^0.3.9","aws-sign2":"^0.7.0","base64-js":"^1.5.1","call-bind":"^1.0.2","camelcase":"^6.3.0","cli-table":"^0.3.11","cli-width":"^3.0.0","commander":"^2.20.3","form-data":"^2.3.3","is-number":"^7.0.0","minimatch":"^3.1.2","os-tmpdir":"^1.0.2","picomatch":"^2.3.1","run-async":"^2.4.1","to-buffer":"^1.1.1","tweetnacl":"^0.14.5","type-fest":"^0.21.3","wrap-ansi":"^7.0.0","ansi-regex":"^5.0.1","apigeetool":"^0.15.1","cli-cursor":"^3.1.0","color-name":"^1.1.4","concat-map":"^0.0.1","decamelize":"^4.0.0","extsprintf":"^1.3.0","fill-range":"^7.0.1","har-schema":"^2.0.0","iconv-lite":"^0.4.24","is-extglob":"^2.1.1","mime-types":"^2.1.35","node-fetch":"^2.6.9","oas-linter":"^3.2.2","oauth-sign":"^0.9.0","pullstream":"^0.4.1","strip-ansi":"^6.0.1","tar-stream":"^1.6.2","underscore":"^1.13.6","whatwg-url":"^5.0.0","workerpool":"^6.2.0","xmlbuilder":"^11.0.1","ansi-colors":"^4.1.1","ansi-styles":"^4.3.0","assert-plus":"^1.0.0","body-parser":"^1.20.2","buffer-fill":"^1.0.0","emoji-regex":"^8.0.0","es6-promise":"^3.3.1","fs.realpath":"^1.0.0","glob-parent":"^5.1.2","graceful-fs":"^4.2.10","has-symbols":"^1.0.3","http-errors":"^2.0.0","json-schema":"^0.4.0","locate-path":"^6.0.0","log-symbols":"^4.1.0","media-typer":"^0.3.0","mute-stream":"^0.0.8","on-finished":"^2.4.1","path-exists":"^4.0.0","randombytes":"^2.1.0","safe-buffer":"^5.2.1","should-type":"^0.2.0","should-util":"^1.0.1","signal-exit":"^3.0.7","yocto-queue":"^0.1.0","ansi-escapes":"^4.3.2","bcrypt-pbkdf":"^1.0.2","buffer-alloc":"^1.2.0","cli-spinners":"^2.7.0","content-type":"^1.0.5","core-util-is":"^1.0.3","fs-constants":"^1.0.0","http2-client":"^1.3.5","is-plain-obj":"^2.1.0","match-stream":"^0.0.2","node-unzip-2":"^0.2.8","oas-resolver":"^2.5.6","safer-buffer":"^2.1.2","setimmediate":"^1.0.5","should-equal":"^0.5.0","side-channel":"^1.0.4","slice-stream":"^1.0.0","string-width":"^4.2.3","toidentifier":"^1.0.1","tough-cookie":"^2.5.0","tunnel-agent":"^0.6.0","universalify":"^0.1.2","yargs-parser":"^20.2.4","call-me-maybe":"^1.0.2","color-convert":"^2.0.1","end-of-stream":"^1.4.4","forever-agent":"^0.6.1","function-bind":"^1.1.1","get-intrinsic":"^1.2.0","har-validator":"^5.1.5","is-typedarray":"^1.0.0","node-fetch-h2":"^2.3.0","oas-validator":"^5.0.8","should-format":"^0.3.1","balanced-match":"^1.0.2","browser-stdout":"^1.3.1","delayed-stream":"^1.0.0","http-signature":"^1.2.0","is-binary-path":"^2.1.0","is-interactive":"^1.0.0","node-readfiles":"^0.2.0","normalize-path":"^3.0.0","oas-kit-common":"^1.0.8","object-inspect":"^1.12.3","restore-cursor":"^3.1.0","setprototypeof":"^1.2.0","string_decoder":"^0.10.31","supports-color":"^7.2.0","to-regex-range":"^5.0.1","util-deprecate":"^1.0.2","yargs-unparser":"^2.0.0","brace-expansion":"^1.1.11","combined-stream":"^1.0.8","external-editor":"^3.1.0","fast-deep-equal":"^3.1.3","get-caller-file":"^2.0.5","performance-now":"^2.1.0","readable-stream":"^1.0.34","swagger2openapi":"^7.0.8","path-is-absolute":"^1.0.1","binary-extensions":"^2.2.0","oas-schema-walker":"^1.1.5","require-directory":"^2.1.1","webidl-conversions":"^3.0.1","buffer-alloc-unsafe":"^1.1.0","fast-safe-stringify":"^2.1.1","json-stringify-safe":"^5.0.1","strip-json-comments":"^3.1.1","escape-string-regexp":"^1.0.5","is-unicode-supported":"^0.1.0","json-schema-traverse":"^0.4.1","process-nextick-args":"^2.0.1","serialize-javascript":"^6.0.0","should-type-adaptors":"^1.1.0","is-fullwidth-code-point":"^3.0.0","fast-json-stable-stringify":"^2.1.0"},"_hasShrinkwrap":false,"devDependencies":{"mocha":"^9.2.2","eslint":"^8.56.0","eslint-plugin-import":"^2.29.1","eslint-config-airbnb-base":"^15.0.0"},"_npmOperationalInternal":{"tmp":"tmp/apigeetoopenapi_2.0.0_1705489302808_0.7280966322023417","host":"s3://npm-registry-packages"}},"3.0.0":{"name":"apigeetoopenapi","version":"3.0.0","keywords":["apigee2openapi","apigeetoopenapi","apigeex2openapi"],"author":{"name":"Hatim Alattas","email":"hatimalattas@outlook.com"},"license":"MIT","_id":"apigeetoopenapi@3.0.0","maintainers":[{"name":"hatimalattas","email":"hatimalattas@outlook.com"}],"homepage":"https://github.com/hatimalattas/ApigeeToOpenAPI","bin":{"apigeetoopenapi":"apigeetoopenapi.js"},"dist":{"shasum":"5c2fefaf612410ae2f4e0dfe12bcc8cec4b8d985","tarball":"https://registry.npmjs.org/apigeetoopenapi/-/apigeetoopenapi-3.0.0.tgz","fileCount":6,"integrity":"sha512-TlFASa3ZUEY4aQeVSGs/mk3QV6iRAs7tgxQMAYDTVxuXJZSdBZyE4zfTIc5CSaIV6/UST5phc0ktGoRQB9HMxw==","signatures":[{"sig":"MEQCIDYezfzVhDIMmqcPHxJauZZ6rAIebcqhSHmcJV6ZHCZ4AiAsSeY6/iySnZkUXBS2msvNHCEw0fBhpowBrS4h6UuXpA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":37319},"main":"apigeetoopenapi.js","type":"module","gitHead":"cf41dfda0bdd772aa229c777cd78aacfa1a05665","scripts":{"test":"mocha"},"_npmUser":{"name":"hatimalattas","email":"hatimalattas@outlook.com"},"repository":{"url":"apigeetoopenapi","type":"git"},"_npmVersion":"10.2.4","description":"The ApigeeToOpenAPI tool is designed to parse the Apigee Proxy Bundle and generate corresponding OpenAPI specifications.","directories":{},"_nodeVersion":"21.5.0","dependencies":{"q":"^1.5.1","bl":"^4.1.0","he":"^1.2.0","ms":"^2.0.0","qs":"^6.11.0","ajv":"^6.12.6","has":"^1.0.3","ora":"^5.4.1","psl":"^1.9.0","sax":"^1.2.4","tmp":"^0.0.27","asn1":"^0.2.6","aws4":"^1.12.0","depd":"^2.0.0","diff":"^5.0.0","flat":"^5.0.2","glob":"^5.0.15","jsbn":"^0.1.1","once":"^1.4.0","over":"^0.0.5","pako":"^0.2.9","pump":"^1.0.3","read":"^1.0.7","rxjs":"^7.8.0","tr46":"^0.0.3","uuid":"^3.4.0","y18n":"^5.0.8","yaml":"^1.10.2","async":"^1.5.2","bytes":"^3.1.2","chalk":"^4.1.2","cliui":"^7.0.4","clone":"^1.0.4","debug":"^2.6.9","growl":"^1.10.5","isexe":"^2.0.0","jszip":"^2.5.0","netrc":"^0.1.4","sshpk":"^1.17.0","tslib":"^2.5.0","which":"^2.0.2","xtend":"^4.0.2","yargs":"^16.2.0","binary":"^0.3.0","braces":"^3.0.2","buffer":"^5.7.1","chownr":"^1.1.4","colors":"^1.0.3","extend":"^3.0.2","jsprim":"^1.4.2","lodash":"^4.17.21","mkdirp":"^0.5.6","nanoid":"^3.3.1","rimraf":"^2.7.1","should":"^7.1.1","tar-fs":"^1.16.3","unpipe":"^1.0.0","uri-js":"^4.4.1","verror":"^1.10.0","wrappy":"^1.0.2","xml2js":"^0.4.23","buffers":"^0.1.1","chardet":"^0.7.0","destroy":"^1.2.0","figures":"^3.2.0","find-up":"^5.0.0","fstream":"^1.0.12","getpass":"^0.1.7","ieee754":"^1.2.1","is-glob":"^4.0.3","isarray":"^0.0.1","js-yaml":"^4.1.0","mime-db":"^1.52.0","onetime":"^5.1.2","p-limit":"^3.1.0","request":"^2.88.2","through":"^2.3.8","type-is":"^1.6.18","wcwidth":"^1.0.1","anymatch":"^3.1.3","argparse":"^2.0.1","asynckit":"^0.4.0","caseless":"^0.12.0","chainsaw":"^0.1.0","chokidar":"^3.5.3","dashdash":"^1.14.1","defaults":"^1.0.4","ecc-jsbn":"^0.1.2","ee-first":"^1.1.1","escalade":"^3.1.1","fs-extra":"^4.0.3","fsevents":"^2.3.2","has-flag":"^4.0.0","inflight":"^1.0.6","inherits":"^2.0.4","inquirer":"^8.2.5","isstream":"^0.1.2","jsonfile":"^4.0.0","mimic-fn":"^2.1.0","minimist":"^1.2.8","mustache":"^2.3.2","node-zip":"^1.1.1","p-locate":"^5.0.0","punycode":"^2.3.0","raw-body":"^2.5.2","readdirp":"^3.6.0","reftools":"^1.1.9","statuses":"^2.0.1","traverse":"^0.3.9","aws-sign2":"^0.7.0","base64-js":"^1.5.1","call-bind":"^1.0.2","camelcase":"^6.3.0","cli-table":"^0.3.11","cli-width":"^3.0.0","commander":"^2.20.3","form-data":"^2.3.3","is-number":"^7.0.0","minimatch":"^3.1.2","os-tmpdir":"^1.0.2","picomatch":"^2.3.1","run-async":"^2.4.1","to-buffer":"^1.1.1","tweetnacl":"^0.14.5","type-fest":"^0.21.3","wrap-ansi":"^7.0.0","ansi-regex":"^5.0.1","apigeetool":"^0.15.1","cli-cursor":"^3.1.0","color-name":"^1.1.4","concat-map":"^0.0.1","decamelize":"^4.0.0","extsprintf":"^1.3.0","fill-range":"^7.0.1","har-schema":"^2.0.0","iconv-lite":"^0.4.24","is-extglob":"^2.1.1","mime-types":"^2.1.35","node-fetch":"^2.6.9","oas-linter":"^3.2.2","oauth-sign":"^0.9.0","pullstream":"^0.4.1","strip-ansi":"^6.0.1","tar-stream":"^1.6.2","underscore":"^1.13.6","whatwg-url":"^5.0.0","workerpool":"^6.2.0","xmlbuilder":"^11.0.1","ansi-colors":"^4.1.1","ansi-styles":"^4.3.0","assert-plus":"^1.0.0","body-parser":"^1.20.2","buffer-fill":"^1.0.0","emoji-regex":"^8.0.0","es6-promise":"^3.3.1","fs.realpath":"^1.0.0","glob-parent":"^5.1.2","graceful-fs":"^4.2.10","has-symbols":"^1.0.3","http-errors":"^2.0.0","json-schema":"^0.4.0","locate-path":"^6.0.0","log-symbols":"^4.1.0","media-typer":"^0.3.0","mute-stream":"^0.0.8","on-finished":"^2.4.1","path-exists":"^4.0.0","randombytes":"^2.1.0","safe-buffer":"^5.2.1","should-type":"^0.2.0","should-util":"^1.0.1","signal-exit":"^3.0.7","yocto-queue":"^0.1.0","ansi-escapes":"^4.3.2","bcrypt-pbkdf":"^1.0.2","buffer-alloc":"^1.2.0","cli-spinners":"^2.7.0","content-type":"^1.0.5","core-util-is":"^1.0.3","fs-constants":"^1.0.0","http2-client":"^1.3.5","is-plain-obj":"^2.1.0","match-stream":"^0.0.2","node-unzip-2":"^0.2.8","oas-resolver":"^2.5.6","safer-buffer":"^2.1.2","setimmediate":"^1.0.5","should-equal":"^0.5.0","side-channel":"^1.0.4","slice-stream":"^1.0.0","string-width":"^4.2.3","toidentifier":"^1.0.1","tough-cookie":"^2.5.0","tunnel-agent":"^0.6.0","universalify":"^0.1.2","yargs-parser":"^20.2.4","call-me-maybe":"^1.0.2","color-convert":"^2.0.1","end-of-stream":"^1.4.4","forever-agent":"^0.6.1","function-bind":"^1.1.1","get-intrinsic":"^1.2.0","har-validator":"^5.1.5","is-typedarray":"^1.0.0","node-fetch-h2":"^2.3.0","oas-validator":"^5.0.8","should-format":"^0.3.1","balanced-match":"^1.0.2","browser-stdout":"^1.3.1","delayed-stream":"^1.0.0","http-signature":"^1.2.0","is-binary-path":"^2.1.0","is-interactive":"^1.0.0","node-readfiles":"^0.2.0","normalize-path":"^3.0.0","oas-kit-common":"^1.0.8","object-inspect":"^1.12.3","restore-cursor":"^3.1.0","setprototypeof":"^1.2.0","string_decoder":"^0.10.31","supports-color":"^7.2.0","to-regex-range":"^5.0.1","util-deprecate":"^1.0.2","yargs-unparser":"^2.0.0","brace-expansion":"^1.1.11","combined-stream":"^1.0.8","external-editor":"^3.1.0","fast-deep-equal":"^3.1.3","get-caller-file":"^2.0.5","performance-now":"^2.1.0","readable-stream":"^1.0.34","swagger2openapi":"^7.0.8","path-is-absolute":"^1.0.1","binary-extensions":"^2.2.0","oas-schema-walker":"^1.1.5","require-directory":"^2.1.1","webidl-conversions":"^3.0.1","buffer-alloc-unsafe":"^1.1.0","fast-safe-stringify":"^2.1.1","json-stringify-safe":"^5.0.1","strip-json-comments":"^3.1.1","escape-string-regexp":"^1.0.5","is-unicode-supported":"^0.1.0","json-schema-traverse":"^0.4.1","process-nextick-args":"^2.0.1","serialize-javascript":"^6.0.0","should-type-adaptors":"^1.1.0","is-fullwidth-code-point":"^3.0.0","fast-json-stable-stringify":"^2.1.0"},"_hasShrinkwrap":false,"devDependencies":{"mocha":"^9.2.2","eslint":"^8.56.0","eslint-plugin-import":"^2.29.1","eslint-config-airbnb-base":"^15.0.0"},"_npmOperationalInternal":{"tmp":"tmp/apigeetoopenapi_3.0.0_1705492177645_0.5485011072474653","host":"s3://npm-registry-packages"}},"3.0.1":{"name":"apigeetoopenapi","version":"3.0.1","keywords":["apigee2openapi","apigeetoopenapi","apigeex2openapi"],"author":{"name":"Hatim Alattas","email":"hatimalattas@outlook.com"},"license":"MIT","_id":"apigeetoopenapi@3.0.1","maintainers":[{"name":"hatimalattas","email":"hatimalattas@outlook.com"}],"homepage":"https://github.com/hatimalattas/ApigeeToOpenAPI","bin":{"apigeetoopenapi":"apigeetoopenapi.js"},"dist":{"shasum":"59a77760c4cd8d967a483ad43a12045ae2e61004","tarball":"https://registry.npmjs.org/apigeetoopenapi/-/apigeetoopenapi-3.0.1.tgz","fileCount":6,"integrity":"sha512-aSOMtfSYHem3YdSx6Z8fVEhClRvxlNX1PQmsCWw2I9OUMLz/TRfYE3XbcdZuGWJAe3vCmbdK8LDH86/2fSEQ0A==","signatures":[{"sig":"MEUCICwgqS8mNREL/Pn9fbh3hCtCmOwuv9s7M9t62fFtjGy9AiEAl883eTKBFtK1eelOEY57V12bzJf/ovow2v3BmTUOdzk=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":37351},"main":"apigeetoopenapi.js","type":"module","gitHead":"1449f2f5e3f8b87cd31b601fdbc2f9c8995eb950","scripts":{"test":"mocha"},"_npmUser":{"name":"hatimalattas","email":"hatimalattas@outlook.com"},"repository":{"url":"apigeetoopenapi","type":"git"},"_npmVersion":"10.2.4","description":"The ApigeeToOpenAPI tool is designed to parse the Apigee Proxy Bundle and generate corresponding OpenAPI specifications.","directories":{},"_nodeVersion":"21.5.0","dependencies":{"q":"^1.5.1","bl":"^4.1.0","he":"^1.2.0","ms":"^2.0.0","qs":"^6.11.0","ajv":"^6.12.6","has":"^1.0.3","ora":"^5.4.1","psl":"^1.9.0","sax":"^1.2.4","tmp":"^0.0.27","asn1":"^0.2.6","aws4":"^1.12.0","depd":"^2.0.0","diff":"^5.0.0","flat":"^5.0.2","glob":"^5.0.15","jsbn":"^0.1.1","once":"^1.4.0","over":"^0.0.5","pako":"^0.2.9","pump":"^1.0.3","read":"^1.0.7","rxjs":"^7.8.0","tr46":"^0.0.3","uuid":"^3.4.0","y18n":"^5.0.8","yaml":"^1.10.2","async":"^1.5.2","bytes":"^3.1.2","chalk":"^4.1.2","cliui":"^7.0.4","clone":"^1.0.4","debug":"^2.6.9","growl":"^1.10.5","isexe":"^2.0.0","jszip":"^2.5.0","netrc":"^0.1.4","sshpk":"^1.17.0","tslib":"^2.5.0","which":"^2.0.2","xtend":"^4.0.2","yargs":"^16.2.0","binary":"^0.3.0","braces":"^3.0.2","buffer":"^5.7.1","chownr":"^1.1.4","colors":"^1.0.3","extend":"^3.0.2","jsprim":"^1.4.2","lodash":"^4.17.21","mkdirp":"^0.5.6","nanoid":"^3.3.1","rimraf":"^2.7.1","should":"^7.1.1","tar-fs":"^1.16.3","unpipe":"^1.0.0","uri-js":"^4.4.1","verror":"^1.10.0","wrappy":"^1.0.2","xml2js":"^0.4.23","buffers":"^0.1.1","chardet":"^0.7.0","destroy":"^1.2.0","figures":"^3.2.0","find-up":"^5.0.0","fstream":"^1.0.12","getpass":"^0.1.7","ieee754":"^1.2.1","is-glob":"^4.0.3","isarray":"^0.0.1","js-yaml":"^4.1.0","mime-db":"^1.52.0","onetime":"^5.1.2","p-limit":"^3.1.0","request":"^2.88.2","through":"^2.3.8","type-is":"^1.6.18","wcwidth":"^1.0.1","anymatch":"^3.1.3","argparse":"^2.0.1","asynckit":"^0.4.0","caseless":"^0.12.0","chainsaw":"^0.1.0","chokidar":"^3.5.3","dashdash":"^1.14.1","defaults":"^1.0.4","ecc-jsbn":"^0.1.2","ee-first":"^1.1.1","escalade":"^3.1.1","fs-extra":"^4.0.3","has-flag":"^4.0.0","inflight":"^1.0.6","inherits":"^2.0.4","inquirer":"^8.2.5","isstream":"^0.1.2","jsonfile":"^4.0.0","mimic-fn":"^2.1.0","minimist":"^1.2.8","mustache":"^2.3.2","node-zip":"^1.1.1","p-locate":"^5.0.0","punycode":"^2.3.0","raw-body":"^2.5.2","readdirp":"^3.6.0","reftools":"^1.1.9","statuses":"^2.0.1","traverse":"^0.3.9","aws-sign2":"^0.7.0","base64-js":"^1.5.1","call-bind":"^1.0.2","camelcase":"^6.3.0","cli-table":"^0.3.11","cli-width":"^3.0.0","commander":"^2.20.3","form-data":"^2.3.3","is-number":"^7.0.0","minimatch":"^3.1.2","os-tmpdir":"^1.0.2","picomatch":"^2.3.1","run-async":"^2.4.1","to-buffer":"^1.1.1","tweetnacl":"^0.14.5","type-fest":"^0.21.3","wrap-ansi":"^7.0.0","ansi-regex":"^5.0.1","apigeetool":"^0.15.1","cli-cursor":"^3.1.0","color-name":"^1.1.4","concat-map":"^0.0.1","decamelize":"^4.0.0","extsprintf":"^1.3.0","fill-range":"^7.0.1","har-schema":"^2.0.0","iconv-lite":"^0.4.24","is-extglob":"^2.1.1","mime-types":"^2.1.35","node-fetch":"^2.6.9","oas-linter":"^3.2.2","oauth-sign":"^0.9.0","pullstream":"^0.4.1","strip-ansi":"^6.0.1","tar-stream":"^1.6.2","underscore":"^1.13.6","whatwg-url":"^5.0.0","workerpool":"^6.2.0","xmlbuilder":"^11.0.1","ansi-colors":"^4.1.1","ansi-styles":"^4.3.0","assert-plus":"^1.0.0","body-parser":"^1.20.2","buffer-fill":"^1.0.0","emoji-regex":"^8.0.0","es6-promise":"^3.3.1","fs.realpath":"^1.0.0","glob-parent":"^5.1.2","graceful-fs":"^4.2.10","has-symbols":"^1.0.3","http-errors":"^2.0.0","json-schema":"^0.4.0","locate-path":"^6.0.0","log-symbols":"^4.1.0","media-typer":"^0.3.0","mute-stream":"^0.0.8","on-finished":"^2.4.1","path-exists":"^4.0.0","randombytes":"^2.1.0","safe-buffer":"^5.2.1","should-type":"^0.2.0","should-util":"^1.0.1","signal-exit":"^3.0.7","yocto-queue":"^0.1.0","ansi-escapes":"^4.3.2","bcrypt-pbkdf":"^1.0.2","buffer-alloc":"^1.2.0","cli-spinners":"^2.7.0","content-type":"^1.0.5","core-util-is":"^1.0.3","fs-constants":"^1.0.0","http2-client":"^1.3.5","is-plain-obj":"^2.1.0","match-stream":"^0.0.2","node-unzip-2":"^0.2.8","oas-resolver":"^2.5.6","safer-buffer":"^2.1.2","setimmediate":"^1.0.5","should-equal":"^0.5.0","side-channel":"^1.0.4","slice-stream":"^1.0.0","string-width":"^4.2.3","toidentifier":"^1.0.1","tough-cookie":"^2.5.0","tunnel-agent":"^0.6.0","universalify":"^0.1.2","yargs-parser":"^20.2.4","call-me-maybe":"^1.0.2","color-convert":"^2.0.1","end-of-stream":"^1.4.4","forever-agent":"^0.6.1","function-bind":"^1.1.1","get-intrinsic":"^1.2.0","har-validator":"^5.1.5","is-typedarray":"^1.0.0","node-fetch-h2":"^2.3.0","oas-validator":"^5.0.8","should-format":"^0.3.1","balanced-match":"^1.0.2","browser-stdout":"^1.3.1","delayed-stream":"^1.0.0","http-signature":"^1.2.0","is-binary-path":"^2.1.0","is-interactive":"^1.0.0","node-readfiles":"^0.2.0","normalize-path":"^3.0.0","oas-kit-common":"^1.0.8","object-inspect":"^1.12.3","restore-cursor":"^3.1.0","setprototypeof":"^1.2.0","string_decoder":"^0.10.31","supports-color":"^7.2.0","to-regex-range":"^5.0.1","util-deprecate":"^1.0.2","yargs-unparser":"^2.0.0","brace-expansion":"^1.1.11","combined-stream":"^1.0.8","external-editor":"^3.1.0","fast-deep-equal":"^3.1.3","get-caller-file":"^2.0.5","performance-now":"^2.1.0","readable-stream":"^1.0.34","swagger2openapi":"^7.0.8","path-is-absolute":"^1.0.1","binary-extensions":"^2.2.0","oas-schema-walker":"^1.1.5","require-directory":"^2.1.1","webidl-conversions":"^3.0.1","buffer-alloc-unsafe":"^1.1.0","fast-safe-stringify":"^2.1.1","json-stringify-safe":"^5.0.1","strip-json-comments":"^3.1.1","escape-string-regexp":"^1.0.5","is-unicode-supported":"^0.1.0","json-schema-traverse":"^0.4.1","process-nextick-args":"^2.0.1","serialize-javascript":"^6.0.0","should-type-adaptors":"^1.1.0","is-fullwidth-code-point":"^3.0.0","fast-json-stable-stringify":"^2.1.0"},"_hasShrinkwrap":false,"devDependencies":{"mocha":"^9.2.2","eslint":"^8.56.0","eslint-plugin-import":"^2.29.1","eslint-config-airbnb-base":"^15.0.0"},"optionalDependencies":{"fsevents":"^2.3.3"},"_npmOperationalInternal":{"tmp":"tmp/apigeetoopenapi_3.0.1_1705494693716_0.26123288566747904","host":"s3://npm-registry-packages"}},"3.0.2":{"name":"apigeetoopenapi","version":"3.0.2","keywords":["apigee2openapi","apigeetoopenapi","apigeex2openapi"],"author":{"name":"Hatim Alattas","email":"hatimalattas@outlook.com"},"license":"MIT","_id":"apigeetoopenapi@3.0.2","maintainers":[{"name":"hatimalattas","email":"hatimalattas@outlook.com"}],"homepage":"https://github.com/hatimalattas/ApigeeToOpenAPI","bin":{"apigeetoopenapi":"apigeetoopenapi.js"},"dist":{"shasum":"9c711e066c4170d0d5befcad62e1a6f84e7de72d","tarball":"https://registry.npmjs.org/apigeetoopenapi/-/apigeetoopenapi-3.0.2.tgz","fileCount":6,"integrity":"sha512-TXup2fIsa/Vaw6GkMAboBJoYvAmpZ0SRkxnIpHkVyXBScMO4WtJwUjr03ZsB1X66V6vDqkXpfD+fHAWlc7I0hg==","signatures":[{"sig":"MEQCIAdbFHSQXFnlW9AQz1g7JY+thcKRpo7bN7owZLr8JvokAiBDbvOF6Fe2Sy8l87HoypjTRhVRqxLdxAJv145mhnddpA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":30532},"main":"apigeetoopenapi.js","type":"module","gitHead":"ab727660b3a8dcdd9097c7e6dda93252c6bb61da","scripts":{"test":"mocha"},"_npmUser":{"name":"hatimalattas","email":"hatimalattas@outlook.com"},"repository":{"url":"apigeetoopenapi","type":"git"},"_npmVersion":"10.2.4","description":"The ApigeeToOpenAPI tool is designed to parse the Apigee Proxy Bundle and generate corresponding OpenAPI specifications.","directories":{},"_nodeVersion":"21.5.0","dependencies":{"async":"^3.2.5","xml2js":"^0.6.2","commander":"^11.1.0","node-unzip-2":"^0.2.8"},"_hasShrinkwrap":false,"devDependencies":{"mocha":"^9.2.2","eslint":"^8.56.0","eslint-plugin-import":"^2.29.1"},"_npmOperationalInternal":{"tmp":"tmp/apigeetoopenapi_3.0.2_1705496563093_0.9859153479491229","host":"s3://npm-registry-packages"}},"3.1.0":{"name":"apigeetoopenapi","version":"3.1.0","keywords":["apigee2openapi","apigeetoopenapi","apigeex2openapi"],"author":{"name":"Hatim Alattas","email":"hatimalattas@outlook.com"},"license":"MIT","_id":"apigeetoopenapi@3.1.0","maintainers":[{"name":"hatimalattas","email":"hatimalattas@outlook.com"}],"homepage":"https://github.com/hatimalattas/ApigeeToOpenAPI","bin":{"apigeetoopenapi":"apigeetoopenapi.js"},"dist":{"shasum":"fe7720631a9eaf71e51d52e252b885e93da19da3","tarball":"https://registry.npmjs.org/apigeetoopenapi/-/apigeetoopenapi-3.1.0.tgz","fileCount":6,"integrity":"sha512-gI2kjqO/tVSC53aFLpGxUrG6jEToiU5ruC54wMWMm2XTqfGHSvQt1tp/KGV2sdGNQfM71xx63kVTnoJ/jomWaw==","signatures":[{"sig":"MEUCIQC+kJgLnqUVeOvy/df/lgJAl8ZxXhQjzR+a1fFgfIrmHwIgIl9UFm2c24a0qlewtAfKSh/H/Aa3z+phICEYIFDgKJA=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":30766},"main":"apigeetoopenapi.js","type":"module","gitHead":"1a389f3f4fb6d30984d105819c207acd7bb50a5f","scripts":{"test":"mocha"},"_npmUser":{"name":"hatimalattas","email":"hatimalattas@outlook.com"},"repository":{"url":"apigeetoopenapi","type":"git"},"_npmVersion":"10.2.4","description":"The ApigeeToOpenAPI tool is designed to parse the Apigee Proxy Bundle and generate corresponding OpenAPI specifications.","directories":{},"_nodeVersion":"21.5.0","dependencies":{"async":"^3.2.5","xml2js":"^0.6.2","commander":"^11.1.0","node-unzip-2":"^0.2.8"},"_hasShrinkwrap":false,"devDependencies":{"mocha":"^9.2.2","eslint":"^8.56.0","eslint-plugin-import":"^2.29.1"},"_npmOperationalInternal":{"tmp":"tmp/apigeetoopenapi_3.1.0_1705564816425_0.5267941223231443","host":"s3://npm-registry-packages"}},"3.1.1":{"name":"apigeetoopenapi","version":"3.1.1","keywords":["apigee2openapi","apigeetoopenapi","apigeex2openapi"],"author":{"name":"Hatim Alattas","email":"hatimalattas@outlook.com"},"license":"MIT","_id":"apigeetoopenapi@3.1.1","maintainers":[{"name":"hatimalattas","email":"hatimalattas@outlook.com"}],"homepage":"https://github.com/hatimalattas/ApigeeToOpenAPI","bin":{"apigeetoopenapi":"apigeetoopenapi.js"},"dist":{"shasum":"8dfd7021dbcb947cd0168e2e4be433e2af0849f3","tarball":"https://registry.npmjs.org/apigeetoopenapi/-/apigeetoopenapi-3.1.1.tgz","fileCount":6,"integrity":"sha512-mtptYPx3wDBUYdDInk6Gylfr1WL8XNrTOh4OlGKCCoze+v/jvNuzS6+wvn/V3+eMIr83r8H0A5Rs2qsktueE1A==","signatures":[{"sig":"MEUCIQCiX/5A+dvIt7Tjzhv7JUlYvcbOZ6X3ZcNAZhuFMId3GAIgAmXufKaHzXyCYqHQJboRTOQmvdlUuEcqH7Xj7DvAi7g=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":30766},"main":"apigeetoopenapi.js","type":"module","gitHead":"b008d8f02fd2db5d5038db125d581661610fded4","scripts":{"test":"mocha"},"_npmUser":{"name":"hatimalattas","email":"hatimalattas@outlook.com"},"repository":{"url":"apigeetoopenapi","type":"git"},"_npmVersion":"10.2.4","description":"The ApigeeToOpenAPI tool is designed to parse the Apigee Proxy Bundle and generate corresponding OpenAPI specifications.","directories":{},"_nodeVersion":"21.5.0","dependencies":{"async":"^3.2.5","xml2js":"^0.6.2","commander":"^11.1.0","node-unzip-2":"^0.2.8"},"_hasShrinkwrap":false,"devDependencies":{"mocha":"^9.2.2","eslint":"^8.56.0","eslint-plugin-import":"^2.29.1"},"_npmOperationalInternal":{"tmp":"tmp/apigeetoopenapi_3.1.1_1705565914590_0.14573309686390412","host":"s3://npm-registry-packages"}},"3.1.2":{"name":"apigeetoopenapi","version":"3.1.2","keywords":["apigee2openapi","apigeetoopenapi","apigeex2openapi"],"author":{"name":"Hatim Alattas","email":"hatimalattas@outlook.com"},"license":"MIT","_id":"apigeetoopenapi@3.1.2","maintainers":[{"name":"hatimalattas","email":"hatimalattas@outlook.com"}],"homepage":"https://github.com/hatimalattas/ApigeeToOpenAPI","bin":{"apigeetoopenapi":"apigeetoopenapi.js"},"dist":{"shasum":"344b53bc1979d8d0344c655896817c4b13858d92","tarball":"https://registry.npmjs.org/apigeetoopenapi/-/apigeetoopenapi-3.1.2.tgz","fileCount":6,"integrity":"sha512-NzmsKiBhhpFfOJmUYehybOJHrX7chTdZfeAVmcjQOIixQgoY1ZTfCelpxZKTCoKU2vuVZ+ElgZ0GH1AlZULPzw==","signatures":[{"sig":"MEUCIQCO/g4rZiqCF4fowDeImsFq6aoj7+c0PCwtK4dAIUmGEQIgDggFECxbAyWHDsXCu7iGhaBS+mlRKphL33yHS2CFEs8=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":30766},"main":"apigeetoopenapi.js","type":"module","gitHead":"306a2b5ebecefdac30c001e12b689f4555ce1933","scripts":{"test":"mocha"},"_npmUser":{"name":"hatimalattas","email":"hatimalattas@outlook.com"},"repository":{"url":"apigeetoopenapi","type":"git"},"_npmVersion":"10.2.4","description":"The ApigeeToOpenAPI tool is designed to parse the Apigee Proxy Bundle and generate corresponding OpenAPI specifications.","directories":{},"_nodeVersion":"21.5.0","dependencies":{"async":"^3.2.5","xml2js":"^0.6.2","commander":"^11.1.0","node-unzip-2":"^0.2.8"},"_hasShrinkwrap":false,"devDependencies":{"mocha":"^9.2.2","eslint":"^8.56.0","eslint-plugin-import":"^2.29.1"},"_npmOperationalInternal":{"tmp":"tmp/apigeetoopenapi_3.1.2_1705566029384_0.4270047176890821","host":"s3://npm-registry-packages"}},"3.2.0":{"name":"apigeetoopenapi","version":"3.2.0","keywords":["apigee2openapi","apigeetoopenapi","apigeex2openapi"],"author":{"name":"Hatim Alattas","email":"hatimalattas@outlook.com"},"license":"MIT","_id":"apigeetoopenapi@3.2.0","maintainers":[{"name":"hatimalattas","email":"hatimalattas@outlook.com"}],"homepage":"https://github.com/hatimalattas/ApigeeToOpenAPI","bin":{"apigeetoopenapi":"apigeetoopenapi.js"},"dist":{"shasum":"248f44057bfba11e9b0f7c953b884fa4c2448aea","tarball":"https://registry.npmjs.org/apigeetoopenapi/-/apigeetoopenapi-3.2.0.tgz","fileCount":6,"integrity":"sha512-rtoRRLeBXjUv/LRJtRPB/IEtpK7ztFuN3THc4mpNcR2ZdZNkT240jdP4cj3hU2Sxc1xRczCOeYpZXHxZLuRv+Q==","signatures":[{"sig":"MEUCIDAiCfdMmoZZ9A5S0BzbDKm36e5M8w3kKU+hGujvmwekAiEAwd7VS8ZPJB6JAj6hzSxNc1tJ/G1Qcvzpn51mu1KJwmQ=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":31114},"main":"apigeetoopenapi.js","type":"module","gitHead":"79b8c2a5ae70aacafbf0445f606fb4bd84480dfc","scripts":{"test":"mocha"},"_npmUser":{"name":"hatimalattas","email":"hatimalattas@outlook.com"},"repository":{"url":"apigeetoopenapi","type":"git"},"_npmVersion":"10.2.4","description":"The ApigeeToOpenAPI tool is designed to parse the Apigee Proxy Bundle and generate corresponding OpenAPI specifications.","directories":{},"_nodeVersion":"21.5.0","dependencies":{"async":"^3.2.5","xml2js":"^0.6.2","commander":"^11.1.0","node-unzip-2":"^0.2.8"},"_hasShrinkwrap":false,"devDependencies":{"mocha":"^9.2.2","eslint":"^8.56.0","eslint-plugin-import":"^2.29.1"},"_npmOperationalInternal":{"tmp":"tmp/apigeetoopenapi_3.2.0_1705577414815_0.014779544713224402","host":"s3://npm-registry-packages"}},"3.3.0":{"name":"apigeetoopenapi","version":"3.3.0","keywords":["apigee2openapi","apigeetoopenapi","apigeex2openapi"],"author":{"name":"Hatim Alattas","email":"hatimalattas@outlook.com"},"license":"MIT","_id":"apigeetoopenapi@3.3.0","maintainers":[{"name":"hatimalattas","email":"hatimalattas@outlook.com"}],"homepage":"https://github.com/hatimalattas/ApigeeToOpenAPI","bin":{"apigeetoopenapi":"apigeetoopenapi.js"},"dist":{"shasum":"6624065d6ce50f0bc08e9f978fd7e0dbf8ed4dda","tarball":"https://registry.npmjs.org/apigeetoopenapi/-/apigeetoopenapi-3.3.0.tgz","fileCount":6,"integrity":"sha512-MA+vRpyjS4w6SMSuPXfWf1JfEDr+4FN384DNlMkT2lTCTA/ldXxHIRG0LU4/sJy9L0+j3r6EUAa82hWyuL0XZA==","signatures":[{"sig":"MEYCIQCImfC57TiCvI8UT1e6Ovq6ECQtwBZSkERlWtVthb/tmwIhAI5PpIuXBssu3NleV/uSW9ey/KCksb2jwAt+etpk0DwL","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":31123},"main":"apigeetoopenapi.js","type":"module","gitHead":"5889a52b8da61a0f866eaa1c4a3a9af544797f30","scripts":{"test":"mocha"},"_npmUser":{"name":"hatimalattas","email":"hatimalattas@outlook.com"},"repository":{"url":"apigeetoopenapi","type":"git"},"_npmVersion":"10.2.4","description":"The ApigeeToOpenAPI tool is designed to parse the Apigee Proxy Bundle and generate corresponding OpenAPI specifications.","directories":{},"_nodeVersion":"21.5.0","dependencies":{"async":"^3.2.5","xml2js":"^0.6.2","commander":"^11.1.0","node-unzip-2":"^0.2.8"},"_hasShrinkwrap":false,"devDependencies":{"mocha":"^9.2.2","eslint":"^8.56.0","eslint-plugin-import":"^2.29.1"},"_npmOperationalInternal":{"tmp":"tmp/apigeetoopenapi_3.3.0_1705583895995_0.1973605250066719","host":"s3://npm-registry-packages"}},"3.3.1":{"name":"apigeetoopenapi","version":"3.3.1","keywords":["apigee2openapi","apigeetoopenapi","apigeex2openapi"],"author":{"name":"Hatim Alattas","email":"hatimalattas@outlook.com"},"license":"MIT","_id":"apigeetoopenapi@3.3.1","maintainers":[{"name":"hatimalattas","email":"hatimalattas@outlook.com"}],"homepage":"https://github.com/hatimalattas/ApigeeToOpenAPI","bin":{"apigeetoopenapi":"apigeetoopenapi.js"},"dist":{"shasum":"e9e4d8241f602b270a80b15e67f094d1bb829873","tarball":"https://registry.npmjs.org/apigeetoopenapi/-/apigeetoopenapi-3.3.1.tgz","fileCount":6,"integrity":"sha512-SUZdKFOxlD3hE+Ky/DtXKM27k2F6TE0kbQOYJPg3oV8fgTBqH12WJWgO7C0Djs/8o79HTuvOPSCqR0YiYnFrnw==","signatures":[{"sig":"MEQCIHkfo0xhKmuMA4rahjM7IXwGvs4f2uRf8HxNtbUUIbOHAiB635gKpwX4xHs8q856VCsnZErgvgx2NtN2h6a2HMLImA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":31114},"main":"apigeetoopenapi.js","type":"module","gitHead":"aad861ec1ed05751786c4380410c8b7e69d1c048","scripts":{"test":"mocha"},"_npmUser":{"name":"hatimalattas","email":"hatimalattas@outlook.com"},"repository":{"url":"apigeetoopenapi","type":"git"},"_npmVersion":"10.2.4","description":"The ApigeeToOpenAPI tool is designed to parse the Apigee Proxy Bundle and generate corresponding OpenAPI specifications.","directories":{},"_nodeVersion":"21.5.0","dependencies":{"async":"^3.2.5","xml2js":"^0.6.2","commander":"^11.1.0","node-unzip-2":"^0.2.8"},"_hasShrinkwrap":false,"devDependencies":{"mocha":"^9.2.2","eslint":"^8.56.0","eslint-plugin-import":"^2.29.1"},"_npmOperationalInternal":{"tmp":"tmp/apigeetoopenapi_3.3.1_1706773759959_0.9266776723955354","host":"s3://npm-registry-packages"}},"3.3.2":{"name":"apigeetoopenapi","version":"3.3.2","keywords":["apigee2openapi","apigeetoopenapi","apigeex2openapi"],"author":{"name":"Hatim Alattas","email":"hatimalattas@outlook.com"},"license":"MIT","_id":"apigeetoopenapi@3.3.2","maintainers":[{"name":"hatimalattas","email":"hatimalattas@outlook.com"}],"homepage":"https://github.com/hatimalattas/ApigeeToOpenAPI","bin":{"apigeetoopenapi":"apigeetoopenapi.js"},"dist":{"shasum":"ca5959b1c9df401099ae9a3641b54ee364870c2b","tarball":"https://registry.npmjs.org/apigeetoopenapi/-/apigeetoopenapi-3.3.2.tgz","fileCount":6,"integrity":"sha512-XhwydBCM1G1t/X4H/8zY+b4FIIWxQGanBNd57a5MyqBCrtqD1dBZzkMufCgARjMyvDO0kAi+FfgTRrufecBieA==","signatures":[{"sig":"MEMCIA1/FFUUdkXw2RoxbgEt8GpNUCymTly0hyo3ZFf3WN0lAh8x2we2hfJuQZp2QSAs6gmWP9eMwzs7izMQz0wa3Q0c","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":31254},"main":"apigeetoopenapi.js","type":"module","gitHead":"166ea96428e7b183ec5c932fe26a0285a18dcc15","scripts":{"test":"mocha"},"_npmUser":{"name":"hatimalattas","email":"hatimalattas@outlook.com"},"repository":{"url":"apigeetoopenapi","type":"git"},"_npmVersion":"10.2.4","description":"The ApigeeToOpenAPI tool is designed to parse the Apigee Proxy Bundle and generate corresponding OpenAPI specifications.","directories":{},"_nodeVersion":"21.5.0","dependencies":{"async":"^3.2.5","xml2js":"^0.6.2","commander":"^11.1.0","node-unzip-2":"^0.2.8"},"_hasShrinkwrap":false,"devDependencies":{"mocha":"^9.2.2","eslint":"^8.56.0","eslint-plugin-import":"^2.29.1"},"_npmOperationalInternal":{"tmp":"tmp/apigeetoopenapi_3.3.2_1706775802415_0.9695719890106149","host":"s3://npm-registry-packages"}},"3.3.3":{"name":"apigeetoopenapi","version":"3.3.3","keywords":["apigee2openapi","apigeetoopenapi","apigeex2openapi"],"author":{"name":"Hatim Alattas","email":"hatimalattas@outlook.com"},"license":"MIT","_id":"apigeetoopenapi@3.3.3","maintainers":[{"name":"hatimalattas","email":"hatimalattas@outlook.com"}],"homepage":"https://github.com/hatimalattas/ApigeeToOpenAPI","bin":{"apigeetoopenapi":"apigeetoopenapi.js"},"dist":{"shasum":"22d9c418e89ae07587b44dc5049ba7c1f7d8bb32","tarball":"https://registry.npmjs.org/apigeetoopenapi/-/apigeetoopenapi-3.3.3.tgz","fileCount":6,"integrity":"sha512-oVVEObsPwZBWdC2IVmXSBRnf+4xd1aRkeztVf8b+ib3iKDlE8tUh88Rz2aBFy33Axxp38avVEGhRjuiJgoRB6w==","signatures":[{"sig":"MEYCIQDYHgc0RW0Nm2UDas31HBwDyuWTGxtkeWk9F7cW+4PFAQIhAMKh5tYxLIybSzg+GqO3ZEy4K47dZHE2XwyeuTxVZ5/W","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":31344},"main":"apigeetoopenapi.js","type":"module","gitHead":"017fd801fd817cb6230f3bc21d69dfdef0e3b250","scripts":{"test":"mocha"},"_npmUser":{"name":"hatimalattas","email":"hatimalattas@outlook.com"},"repository":{"url":"apigeetoopenapi","type":"git"},"_npmVersion":"10.2.4","description":"The ApigeeToOpenAPI tool is designed to parse the Apigee Proxy Bundle and generate corresponding OpenAPI specifications.","directories":{},"_nodeVersion":"21.5.0","dependencies":{"async":"^3.2.5","xml2js":"^0.6.2","commander":"^11.1.0","node-unzip-2":"^0.2.8"},"_hasShrinkwrap":false,"devDependencies":{"mocha":"^9.2.2","eslint":"^8.56.0","eslint-plugin-import":"^2.29.1"},"_npmOperationalInternal":{"tmp":"tmp/apigeetoopenapi_3.3.3_1708856959539_0.6377265268956247","host":"s3://npm-registry-packages"}},"3.3.4":{"name":"apigeetoopenapi","version":"3.3.4","keywords":["apigee2openapi","apigeetoopenapi","apigeex2openapi"],"author":{"name":"Hatim Alattas","email":"hatimalattas@outlook.com"},"license":"MIT","_id":"apigeetoopenapi@3.3.4","maintainers":[{"name":"hatimalattas","email":"hatimalattas@outlook.com"}],"homepage":"https://github.com/hatimalattas/ApigeeToOpenAPI","bin":{"apigeetoopenapi":"apigeetoopenapi.js"},"dist":{"shasum":"3982f86f667f3fc5da159cf3a23bbc63354e02d8","tarball":"https://registry.npmjs.org/apigeetoopenapi/-/apigeetoopenapi-3.3.4.tgz","fileCount":6,"integrity":"sha512-1F6Q/dLJ6NXOuUpeGDd64oCEwXQ9VefWOF/gQYPNeP++7Wt494pIb3VQTLx+G2h9JXME7/l7MKVmPnll3ek+RQ==","signatures":[{"sig":"MEUCIC67ktWjOOlVqZCyksefnf2DG/HKIaP2iQxACEFLSCI3AiEAl8cxcRcJhTuxG14B7tY/FJQjwF3uqJIzjuPdlReGMa4=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":31417},"main":"apigeetoopenapi.js","type":"module","gitHead":"3d0255425c919b5d51f89b53aa0e3bb7dbc5c63a","scripts":{"test":"mocha"},"_npmUser":{"name":"hatimalattas","email":"hatimalattas@outlook.com"},"repository":{"url":"apigeetoopenapi","type":"git"},"_npmVersion":"10.2.4","description":"The ApigeeToOpenAPI tool is designed to parse the Apigee Proxy Bundle and generate corresponding OpenAPI specifications.","directories":{},"_nodeVersion":"21.5.0","dependencies":{"async":"^3.2.5","xml2js":"^0.6.2","commander":"^11.1.0","node-unzip-2":"^0.2.8"},"_hasShrinkwrap":false,"devDependencies":{"mocha":"^9.2.2","eslint":"^8.56.0","eslint-plugin-import":"^2.29.1"},"_npmOperationalInternal":{"tmp":"tmp/apigeetoopenapi_3.3.4_1714388890595_0.4439059460287085","host":"s3://npm-registry-packages"}},"3.3.5":{"name":"apigeetoopenapi","version":"3.3.5","keywords":["apigee2openapi","apigeetoopenapi","apigeex2openapi"],"author":{"name":"Hatim Alattas","email":"hatimalattas@outlook.com"},"license":"MIT","_id":"apigeetoopenapi@3.3.5","maintainers":[{"name":"hatimalattas","email":"hatimalattas@outlook.com"}],"homepage":"https://github.com/hatimalattas/ApigeeToOpenAPI","bin":{"apigeetoopenapi":"apigeetoopenapi.js"},"dist":{"shasum":"6b3b85792b50e694ec6a701a1269327dee04f4f3","tarball":"https://registry.npmjs.org/apigeetoopenapi/-/apigeetoopenapi-3.3.5.tgz","fileCount":6,"integrity":"sha512-Cf5L0sIpZtJ5Ey1OD26v9QdtVGFByLq1cNbxeX9qGEAQKIeUIEBRoicGIaC+51a3gsQSA0bwirb0Q58ySfOtVA==","signatures":[{"sig":"MEUCIQDqSOSMtroC7mX82lCoWZ4IQLjbn8gkWtsBUKYIMBiQ/wIgOd2/9rlwOWYtik3p2VGDYbJkkcUm+dRwe3XdmKA1Nw0=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":31420},"main":"apigeetoopenapi.js","type":"module","gitHead":"d8c8c43ef1920042ac2f7d6e8a3981a7c9e13014","scripts":{"test":"mocha"},"_npmUser":{"name":"hatimalattas","email":"hatimalattas@outlook.com"},"repository":{"url":"apigeetoopenapi","type":"git"},"_npmVersion":"10.2.4","description":"The ApigeeToOpenAPI tool is designed to parse the Apigee Proxy Bundle and generate corresponding OpenAPI specifications.","directories":{},"_nodeVersion":"21.5.0","dependencies":{"async":"^3.2.5","xml2js":"^0.6.2","commander":"^11.1.0","node-unzip-2":"^0.2.8"},"_hasShrinkwrap":false,"devDependencies":{"mocha":"^9.2.2","eslint":"^8.56.0","eslint-plugin-import":"^2.29.1"},"_npmOperationalInternal":{"tmp":"tmp/apigeetoopenapi_3.3.5_1714390264027_0.2869913684695644","host":"s3://npm-registry-packages"}},"3.3.6":{"name":"apigeetoopenapi","version":"3.3.6","keywords":["apigee2openapi","apigeetoopenapi","apigeex2openapi"],"author":{"name":"Hatim Alattas","email":"hatimalattas@outlook.com"},"license":"MIT","_id":"apigeetoopenapi@3.3.6","maintainers":[{"name":"hatimalattas","email":"hatimalattas@outlook.com"}],"homepage":"https://github.com/hatimalattas/ApigeeToOpenAPI","bin":{"apigeetoopenapi":"apigeetoopenapi.js"},"dist":{"shasum":"06ba727e2989c14db52dc4a4bbc6540f832419a1","tarball":"https://registry.npmjs.org/apigeetoopenapi/-/apigeetoopenapi-3.3.6.tgz","fileCount":6,"integrity":"sha512-hD5fPHe28nvFEQ9VcF8OOyTYNNuaTwhzyHb5pwnD1LrkOBh99p/rJRwMICKU/5P8uuULQlhzo4UNX3odUy6mgA==","signatures":[{"sig":"MEQCIAskpBPK4QDFI1y4BcBONgGj0ajKVd/uieFr2BH5Nx1lAiA6jKNRqY4czXxLMgi3neOb76FtNE0y7x6q/a3W4PqlRg==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":31532},"main":"apigeetoopenapi.js","type":"module","gitHead":"0aa83e67f1a600469e949e03d68f5e17aa3a5f92","scripts":{"test":"mocha"},"_npmUser":{"name":"hatimalattas","email":"hatimalattas@outlook.com"},"repository":{"url":"apigeetoopenapi","type":"git"},"_npmVersion":"10.2.4","description":"The ApigeeToOpenAPI tool is designed to parse the Apigee Proxy Bundle and generate corresponding OpenAPI specifications.","directories":{},"_nodeVersion":"21.5.0","dependencies":{"async":"^3.2.5","xml2js":"^0.6.2","commander":"^11.1.0","node-unzip-2":"^0.2.8"},"_hasShrinkwrap":false,"devDependencies":{"mocha":"^9.2.2","eslint":"^8.56.0","eslint-plugin-import":"^2.29.1"},"_npmOperationalInternal":{"tmp":"tmp/apigeetoopenapi_3.3.6_1714396677957_0.9871206567342445","host":"s3://npm-registry-packages"}},"3.3.7":{"name":"apigeetoopenapi","version":"3.3.7","keywords":["apigee2openapi","apigeetoopenapi","apigeex2openapi"],"author":{"name":"Hatim Alattas","email":"hatimalattas@outlook.com"},"license":"MIT","_id":"apigeetoopenapi@3.3.7","maintainers":[{"name":"hatimalattas","email":"hatimalattas@outlook.com"}],"homepage":"https://github.com/hatimalattas/ApigeeToOpenAPI","bin":{"apigeetoopenapi":"apigeetoopenapi.js"},"dist":{"shasum":"e298ee533facc546f731a557a6c3df1999a65797","tarball":"https://registry.npmjs.org/apigeetoopenapi/-/apigeetoopenapi-3.3.7.tgz","fileCount":6,"integrity":"sha512-gUqQraDBolUG7j437mHjvMt+r2Cq6rO2tyyKMcFxgr3eBpTLPaIziG5/j45yj3n/9XEfGvD/6wrom8uu5HEzpQ==","signatures":[{"sig":"MEUCIGgqRwq6yH6EOZpn2LecmHf2uzpBzpqxSw57uckNtnTvAiEA8FbUBgk7zAPh/t6zujfQcGRNxRJiaJ3x8JEU8Qt/kdI=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":31538},"main":"apigeetoopenapi.js","type":"module","gitHead":"e0da34bc6dea4026c3a1e8249f0bf6e8c056ffc5","scripts":{"test":"mocha"},"_npmUser":{"name":"hatimalattas","email":"hatimalattas@outlook.com"},"repository":{"url":"apigeetoopenapi","type":"git"},"_npmVersion":"10.2.4","description":"The ApigeeToOpenAPI tool is designed to parse the Apigee Proxy Bundle and generate corresponding OpenAPI specifications.","directories":{},"_nodeVersion":"21.5.0","dependencies":{"async":"^3.2.5","xml2js":"^0.6.2","commander":"^11.1.0","node-unzip-2":"^0.2.8"},"_hasShrinkwrap":false,"devDependencies":{"mocha":"^9.2.2","eslint":"^8.56.0","eslint-plugin-import":"^2.29.1"},"_npmOperationalInternal":{"tmp":"tmp/apigeetoopenapi_3.3.7_1714396976082_0.7511394557954347","host":"s3://npm-registry-packages"}},"4.0.0":{"name":"apigeetoopenapi","version":"4.0.0","keywords":["apigee2openapi","apigeetoopenapi","apigeex2openapi"],"author":{"name":"Hatim Alattas","email":"hatimalattas@outlook.com"},"license":"MIT","_id":"apigeetoopenapi@4.0.0","maintainers":[{"name":"hatimalattas","email":"hatimalattas@outlook.com"}],"homepage":"https://github.com/hatimalattas/ApigeeToOpenAPI","bin":{"apigeetoopenapi":"apigeetoopenapi.js"},"dist":{"shasum":"94aec007f112e36037c626556ed7472b94329765","tarball":"https://registry.npmjs.org/apigeetoopenapi/-/apigeetoopenapi-4.0.0.tgz","fileCount":6,"integrity":"sha512-tHkXZy9D2qh9Tc26dbshBoMCe8Fk1jb3r4pdjL7BeaaWrMYRTo21i0BBhmnCJoFFpiLLZN1DGOyg3SewXKZ1ow==","signatures":[{"sig":"MEQCIAvZ6ypZUEfnxsd6cYusufmgPTW2LoD77m9y2BGWtaZwAiA/NJUhECswifuZ/e0B39BPJtmGyPKPGCq7FZ0RHbh3Pg==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":33110},"main":"apigeetoopenapi.js","type":"module","gitHead":"de8dc8128e074681003a317e053e3a256ac6fb2d","scripts":{"test":"mocha"},"_npmUser":{"name":"hatimalattas","email":"hatimalattas@outlook.com"},"repository":{"url":"apigeetoopenapi","type":"git"},"_npmVersion":"10.2.4","description":"The ApigeeToOpenAPI tool is designed to parse the Apigee Proxy Bundle and generate corresponding OpenAPI specifications.","directories":{},"_nodeVersion":"21.5.0","dependencies":{"async":"^3.2.5","xml2js":"^0.6.2","commander":"^11.1.0","node-unzip-2":"^0.2.8"},"_hasShrinkwrap":false,"devDependencies":{"mocha":"^9.2.2","eslint":"^8.56.0","eslint-plugin-import":"^2.29.1"},"_npmOperationalInternal":{"tmp":"tmp/apigeetoopenapi_4.0.0_1717864777777_0.9862822365423585","host":"s3://npm-registry-packages"}},"4.0.1":{"name":"apigeetoopenapi","version":"4.0.1","keywords":["apigee2openapi","apigeetoopenapi","apigeex2openapi"],"author":{"name":"Hatim Alattas","email":"hatimalattas@outlook.com"},"license":"MIT","_id":"apigeetoopenapi@4.0.1","maintainers":[{"name":"hatimalattas","email":"hatimalattas@outlook.com"}],"homepage":"https://github.com/hatimalattas/ApigeeToOpenAPI","bin":{"apigeetoopenapi":"apigeetoopenapi.js"},"dist":{"shasum":"efbaca4ae2821f242b59cbd9a7ecb0a491eaf821","tarball":"https://registry.npmjs.org/apigeetoopenapi/-/apigeetoopenapi-4.0.1.tgz","fileCount":6,"integrity":"sha512-BZQ7ASvOVk5bSEFtRRpK7ts4BIMq+gQV1nOpwBafsI+ym69Z/+Gc06TqqrNdXGS2agJ0UT5kYErp/DNooRRgtA==","signatures":[{"sig":"MEUCIQDhrS3nttYXR7TrvxghnXqERi+qRsaD+nZUE3Bwf7djpAIgRUKPj6utW2uFpcLl/4yl/RM5QhVa+qgtfoRIK7w7R6Q=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":33123},"main":"apigeetoopenapi.js","type":"module","gitHead":"73a47bcee650c521d5875aab645f004ee6a85948","scripts":{"test":"mocha"},"_npmUser":{"name":"hatimalattas","email":"hatimalattas@outlook.com"},"repository":{"url":"apigeetoopenapi","type":"git"},"_npmVersion":"10.2.4","description":"The ApigeeToOpenAPI tool is designed to parse the Apigee Proxy Bundle and generate corresponding OpenAPI specifications.","directories":{},"_nodeVersion":"21.5.0","dependencies":{"async":"^3.2.5","xml2js":"^0.6.2","commander":"^11.1.0","node-unzip-2":"^0.2.8"},"_hasShrinkwrap":false,"devDependencies":{"mocha":"^9.2.2","eslint":"^8.56.0","eslint-plugin-import":"^2.29.1"},"_npmOperationalInternal":{"tmp":"tmp/apigeetoopenapi_4.0.1_1718017708305_0.7575080497585702","host":"s3://npm-registry-packages"}},"5.0.0":{"name":"apigeetoopenapi","version":"5.0.0","keywords":["apigee2openapi","apigeetoopenapi","apigeex2openapi"],"author":{"name":"Hatim Alattas","email":"hatimalattas@outlook.com"},"license":"MIT","_id":"apigeetoopenapi@5.0.0","maintainers":[{"name":"hatimalattas","email":"hatimalattas@outlook.com"}],"homepage":"https://github.com/hatimalattas/ApigeeToOpenAPI","bin":{"apigeetoopenapi":"apigeetoopenapi.js"},"dist":{"shasum":"6db5438aa61fb654406ae469e27be4a5ab502104","tarball":"https://registry.npmjs.org/apigeetoopenapi/-/apigeetoopenapi-5.0.0.tgz","fileCount":6,"integrity":"sha512-03O5CQ4XGg4Y49fPVeIwQDdA42Q+sJbg+O7J7YsMk4Ig/Sy6UEPxGxBPkJTj8PRi+Ujzi+fungstRq18bpl+tw==","signatures":[{"sig":"MEYCIQC9rHsir8cYjV5e/nwjeJZJGnU8DYRFp9Y/f7rl6VjEawIhALZ+OXtL7kah3eiLhHIRsc1D9lg3KhnfE3v0USC9b521","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":33120},"main":"apigeetoopenapi.js","type":"module","gitHead":"cda361535f719fa0535d80d77d9c4216415bf330","scripts":{"test":"mocha"},"_npmUser":{"name":"hatimalattas","email":"hatimalattas@outlook.com"},"repository":{"url":"apigeetoopenapi","type":"git"},"_npmVersion":"10.2.4","description":"The ApigeeToOpenAPI tool is designed to parse the Apigee Proxy Bundle and generate corresponding OpenAPI specifications.","directories":{},"_nodeVersion":"21.5.0","dependencies":{"async":"^3.2.5","xml2js":"^0.6.2","commander":"^11.1.0","node-unzip-2":"^0.2.8"},"_hasShrinkwrap":false,"devDependencies":{"mocha":"^9.2.2","eslint":"^8.56.0","eslint-plugin-import":"^2.29.1"},"_npmOperationalInternal":{"tmp":"tmp/apigeetoopenapi_5.0.0_1725441722965_0.24235868141249073","host":"s3://npm-registry-packages"}},"5.1.0":{"name":"apigeetoopenapi","version":"5.1.0","keywords":["apigee","openapi","swagger","api-documentation","proxy-bundle","apigee2openapi","apigeetoopenapi","apigeex2openapi","cli-tool","json-schema","api-spec"],"author":{"name":"Hatim Alattas","email":"hatimalattas@outlook.com"},"license":"MIT","_id":"apigeetoopenapi@5.1.0","maintainers":[{"name":"hatimalattas","email":"hatimalattas@outlook.com"}],"homepage":"https://github.com/hatimalattas/ApigeeToOpenAPI","bugs":{"url":"https://github.com/hatimalattas/ApigeeToOpenAPI/issues"},"bin":{"apigeetoopenapi":"apigeetoopenapi.js"},"dist":{"shasum":"dbfea49c39e52091f943806e3a027adfbedbfbc4","tarball":"https://registry.npmjs.org/apigeetoopenapi/-/apigeetoopenapi-5.1.0.tgz","fileCount":21,"integrity":"sha512-vASc2Txn0PzrHjoZ/zFvtpxRW3Y7R65RqApeXVbUq/ks4wdlDj5Ejk1GoYJK4wFHqUAwj2Ja+Q9slJjdZi0jMQ==","signatures":[{"sig":"MEQCIAd5dC5cNMvK49Y8Q4W6nQ3hnYq3U1mKboPeAzgagxt6AiAO0dlWKxct2jIbuL/9ZolO2jCefOeHjHiDC2BGi8k9LQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":70972},"main":"apigeetoopenapi.js","type":"module","gitHead":"fe2dda4a4ad78f3ec4fd46eba9c6c5d70be40266","scripts":{"test":"mocha"},"_npmUser":{"name":"hatimalattas","email":"hatimalattas@outlook.com"},"repository":{"url":"git+https://github.com/hatimalattas/ApigeeToOpenAPI.git","type":"git"},"_npmVersion":"10.2.4","description":"A powerful CLI tool that converts Apigee Proxy Bundles into OpenAPI 3.0.0 specifications with support for nested JSON, multiple auth types, and modular architecture.","directories":{},"_nodeVersion":"21.5.0","dependencies":{"async":"^3.2.5","xml2js":"^0.6.2","commander":"^11.1.0","node-unzip-2":"^0.2.8"},"_hasShrinkwrap":false,"devDependencies":{"mocha":"^9.2.2","eslint":"^8.56.0","eslint-plugin-import":"^2.29.1"},"_npmOperationalInternal":{"tmp":"tmp/apigeetoopenapi_5.1.0_1759753619976_0.5479292970545164","host":"s3://npm-registry-packages-npm-production"}},"5.1.1":{"name":"apigeetoopenapi","version":"5.1.1","keywords":["apigee","openapi","swagger","api-documentation","proxy-bundle","apigee2openapi","apigeetoopenapi","apigeex2openapi","cli-tool","json-schema","api-spec"],"author":{"name":"Hatim Alattas","email":"hatimalattas@outlook.com"},"license":"MIT","_id":"apigeetoopenapi@5.1.1","maintainers":[{"name":"hatimalattas","email":"hatimalattas@outlook.com"}],"homepage":"https://github.com/hatimalattas/ApigeeToOpenAPI","bugs":{"url":"https://github.com/hatimalattas/ApigeeToOpenAPI/issues"},"bin":{"apigeetoopenapi":"apigeetoopenapi.js"},"dist":{"shasum":"afa2358b71b0929527f2ee4fe9edf1e0520c6442","tarball":"https://registry.npmjs.org/apigeetoopenapi/-/apigeetoopenapi-5.1.1.tgz","fileCount":21,"integrity":"sha512-DUtlKXjv4064ygOGg/WBPDLCmRvbG+hGiMIrALL6IFatXMXLYrJSUjiMo3QyBMxCHNzWCgAwOOhWwE5SwwPtGw==","signatures":[{"sig":"MEQCIARZy7aag6aS7KrpPSyvRT8+uQTv61xfi+BHBaKzrekCAiAgLgB7/3PUYUXAuJEIIxPImuukTi5aP5c4uQFQWicetw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":68284},"main":"apigeetoopenapi.js","type":"module","gitHead":"d537c8563ef024f2ce0dfefccc0a8f456f38e228","scripts":{"test":"mocha"},"_npmUser":{"name":"hatimalattas","email":"hatimalattas@outlook.com"},"repository":{"url":"git+https://github.com/hatimalattas/ApigeeToOpenAPI.git","type":"git"},"_npmVersion":"10.2.4","description":"A powerful CLI tool that converts Apigee Proxy Bundles into OpenAPI 3.0.0 specifications with support for nested JSON, multiple auth types, and modular architecture.","directories":{},"_nodeVersion":"21.5.0","dependencies":{"async":"^3.2.5","xml2js":"^0.6.2","commander":"^11.1.0","node-unzip-2":"^0.2.8"},"_hasShrinkwrap":false,"devDependencies":{"mocha":"^9.2.2","eslint":"^8.56.0","eslint-plugin-import":"^2.29.1"},"_npmOperationalInternal":{"tmp":"tmp/apigeetoopenapi_5.1.1_1759756972099_0.7185474572668009","host":"s3://npm-registry-packages-npm-production"}},"5.2.0":{"name":"apigeetoopenapi","version":"5.2.0","keywords":["apigee","openapi","swagger","api-documentation","proxy-bundle","apigee2openapi","apigeetoopenapi","apigeex2openapi","cli-tool","json-schema","api-spec","array-parameters","nested-objects","extractvariables"],"author":{"name":"Hatim Alattas","email":"hatimalattas@outlook.com"},"license":"MIT","_id":"apigeetoopenapi@5.2.0","maintainers":[{"name":"hatimalattas","email":"hatimalattas@outlook.com"}],"homepage":"https://github.com/hatimalattas/ApigeeToOpenAPI","bugs":{"url":"https://github.com/hatimalattas/ApigeeToOpenAPI/issues"},"bin":{"apigeetoopenapi":"apigeetoopenapi.js"},"dist":{"shasum":"08fe2f8644332e2c222d8a8a5372db257f3a00c0","tarball":"https://registry.npmjs.org/apigeetoopenapi/-/apigeetoopenapi-5.2.0.tgz","fileCount":21,"integrity":"sha512-GifmKS2hosOO/18Cu8fuRQtrgHRIRyjY3LVfLM5oc2/XGFc1PAzuSEDmgs8HjGFJQXsN/6SCxbY18gxaGv0H7A==","signatures":[{"sig":"MEUCIQDA/m8q20usFZPWbvYbGEc6lHZCaVnbQmf82IM2JIB0kAIgLys4jx0MboO8mYZqna7QPQcwE6YgM4VSix/yySNE2hc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":75767},"main":"apigeetoopenapi.js","type":"module","gitHead":"c08e2ac8a5577ee2447a3296e4397ef2dadad7aa","scripts":{"test":"mocha"},"_npmUser":{"name":"hatimalattas","email":"hatimalattas@outlook.com"},"repository":{"url":"git+https://github.com/hatimalattas/ApigeeToOpenAPI.git","type":"git"},"_npmVersion":"10.2.4","description":"A powerful CLI tool that converts Apigee Proxy Bundles into OpenAPI 3.0.0 specifications with support for nested JSON, array parameters, multiple auth types, and modular architecture.","directories":{},"_nodeVersion":"21.5.0","dependencies":{"async":"^3.2.5","xml2js":"^0.6.2","commander":"^11.1.0","node-unzip-2":"^0.2.8"},"_hasShrinkwrap":false,"devDependencies":{"mocha":"^9.2.2","eslint":"^8.56.0","eslint-plugin-import":"^2.29.1"},"_npmOperationalInternal":{"tmp":"tmp/apigeetoopenapi_5.2.0_1760353764020_0.068187315368758","host":"s3://npm-registry-packages-npm-production"}},"5.3.0":{"name":"apigeetoopenapi","version":"5.3.0","keywords":["apigee","openapi","swagger","api-documentation","proxy-bundle","apigee2openapi","apigeetoopenapi","apigeex2openapi","cli-tool","json-schema","api-spec","array-parameters","nested-objects","extractvariables"],"author":{"name":"Hatim Alattas","email":"hatimalattas@outlook.com"},"license":"MIT","_id":"apigeetoopenapi@5.3.0","maintainers":[{"name":"hatimalattas","email":"hatimalattas@outlook.com"}],"homepage":"https://github.com/hatimalattas/ApigeeToOpenAPI","bugs":{"url":"https://github.com/hatimalattas/ApigeeToOpenAPI/issues"},"bin":{"apigeetoopenapi":"apigeetoopenapi.js"},"dist":{"shasum":"7d938e60bb0dd49772f0aeb1742971896c5d2451","tarball":"https://registry.npmjs.org/apigeetoopenapi/-/apigeetoopenapi-5.3.0.tgz","fileCount":21,"integrity":"sha512-rcC10PbTUYf1WSuO2+m6oqWnUhOOOXj/vagLiYT8maXSXnVqSbrARyPgbovHDKKCVvkM7yRMUKqrIW6sWzAZbQ==","signatures":[{"sig":"MEUCIQDpCHjNH0gczEohaJZupUfPILes5+HpMiiIQd6C0meXsAIgDRX7irlSaSdCfAMW2PewKE5+F64QSL4W9IxFUgkfnpg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":85094},"main":"apigeetoopenapi.js","type":"module","gitHead":"cc21e92a3e8637dfc53c58026671f90f8093e5a6","scripts":{"test":"mocha"},"_npmUser":{"name":"hatimalattas","email":"hatimalattas@outlook.com"},"repository":{"url":"git+https://github.com/hatimalattas/ApigeeToOpenAPI.git","type":"git"},"_npmVersion":"10.2.4","description":"A powerful CLI tool that converts Apigee Proxy Bundles into OpenAPI 3.0.0 specifications with support for nested JSON, array parameters, multiple auth types, and modular architecture.","directories":{},"_nodeVersion":"21.5.0","dependencies":{"async":"^3.2.5","xml2js":"^0.6.2","commander":"^11.1.0","node-unzip-2":"^0.2.8"},"_hasShrinkwrap":false,"devDependencies":{"mocha":"^9.2.2","eslint":"^8.56.0","eslint-plugin-import":"^2.29.1"},"_npmOperationalInternal":{"tmp":"tmp/apigeetoopenapi_5.3.0_1760437783651_0.37326889224374393","host":"s3://npm-registry-packages-npm-production"}},"5.4.0":{"name":"apigeetoopenapi","version":"5.4.0","keywords":["apigee","openapi","swagger","api-documentation","proxy-bundle","apigee2openapi","apigeetoopenapi","apigeex2openapi","cli-tool","json-schema","api-spec","array-parameters","nested-objects","extractvariables"],"author":{"name":"Hatim Alattas","email":"hatimalattas@outlook.com"},"license":"MIT","_id":"apigeetoopenapi@5.4.0","maintainers":[{"name":"hatimalattas","email":"hatimalattas@outlook.com"}],"homepage":"https://github.com/hatimalattas/ApigeeToOpenAPI","bugs":{"url":"https://github.com/hatimalattas/ApigeeToOpenAPI/issues"},"bin":{"apigeetoopenapi":"apigeetoopenapi.js"},"dist":{"shasum":"501b760de4c6050278274afc85273e97df68f9c4","tarball":"https://registry.npmjs.org/apigeetoopenapi/-/apigeetoopenapi-5.4.0.tgz","fileCount":21,"integrity":"sha512-09ng/SsOhr30BXkW22dtHBeFfEnF4Jq0zBz5/uGLWnBgcx5Sns0RO+tVfQtm7MZotN+Z6V0a70P6RE5HyimOOg==","signatures":[{"sig":"MEYCIQCmqban98TD9AEy8qrqGITNsyCtIt3pc0IHG+hD1LvYNwIhAIkF/AegJ9B9bMxYoQl46ubtJjonm/Mb+sTw9ZsoTMKF","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":88772},"main":"apigeetoopenapi.js","type":"module","gitHead":"4a2a770a77c6b5e1ab83d501e90850821f38048e","scripts":{"test":"mocha"},"_npmUser":{"name":"hatimalattas","email":"hatimalattas@outlook.com"},"repository":{"url":"git+https://github.com/hatimalattas/ApigeeToOpenAPI.git","type":"git"},"_npmVersion":"10.2.4","description":"A powerful CLI tool that converts Apigee Proxy Bundles into OpenAPI 3.0.0 specifications with support for nested JSON, array parameters, multiple auth types, and modular architecture.","directories":{},"_nodeVersion":"21.5.0","dependencies":{"async":"^3.2.5","xml2js":"^0.6.2","commander":"^11.1.0","node-unzip-2":"^0.2.8"},"_hasShrinkwrap":false,"devDependencies":{"mocha":"^9.2.2","eslint":"^8.56.0","eslint-plugin-import":"^2.29.1"},"_npmOperationalInternal":{"tmp":"tmp/apigeetoopenapi_5.4.0_1760449987731_0.8800239615567118","host":"s3://npm-registry-packages-npm-production"}},"5.5.0":{"name":"apigeetoopenapi","version":"5.5.0","keywords":["apigee","openapi","swagger","api-documentation","proxy-bundle","apigee2openapi","apigeetoopenapi","apigeex2openapi","cli-tool","json-schema","api-spec","array-parameters","nested-objects","extractvariables"],"author":{"name":"Hatim Alattas","email":"hatimalattas@outlook.com"},"license":"MIT","_id":"apigeetoopenapi@5.5.0","maintainers":[{"name":"hatimalattas","email":"hatimalattas@outlook.com"}],"homepage":"https://github.com/hatimalattas/ApigeeToOpenAPI","bugs":{"url":"https://github.com/hatimalattas/ApigeeToOpenAPI/issues"},"bin":{"apigeetoopenapi":"apigeetoopenapi.js"},"dist":{"shasum":"b738e01a52b3e3b9f2277270a469a6e579143c64","tarball":"https://registry.npmjs.org/apigeetoopenapi/-/apigeetoopenapi-5.5.0.tgz","fileCount":21,"integrity":"sha512-BBQttaqaJUIee0sTSzaCCxxQ/gs2FUiJB+9cDmdEWLlM+RDfA2SIqYdNvX1u2G51EfBxdV1DZ9trS+N7zcAd6Q==","signatures":[{"sig":"MEUCIQDM+lrqylqalA07ZF0pNYQZzixJwwYF3D2JFcfrPqcm4AIgXBauXcTtc8k5mvPoPYHeASxFQyrpvUIfEk0kSDAguNY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":89653},"main":"apigeetoopenapi.js","type":"module","gitHead":"0dce2644fe94206554f245ce0643b42a0f1d2220","scripts":{"test":"mocha"},"_npmUser":{"name":"hatimalattas","email":"hatimalattas@outlook.com"},"repository":{"url":"git+https://github.com/hatimalattas/ApigeeToOpenAPI.git","type":"git"},"_npmVersion":"10.9.3","description":"A powerful CLI tool that converts Apigee Proxy Bundles into OpenAPI 3.0.0 specifications with support for nested JSON, array parameters, multiple auth types, and modular architecture.","directories":{},"_nodeVersion":"22.20.0","dependencies":{"async":"^3.2.5","xml2js":"^0.6.2","commander":"^11.1.0","node-unzip-2":"^0.2.8"},"_hasShrinkwrap":false,"devDependencies":{"mocha":"^9.2.2","eslint":"^8.56.0","eslint-plugin-import":"^2.29.1"},"_npmOperationalInternal":{"tmp":"tmp/apigeetoopenapi_5.5.0_1775554774598_0.0837613155805168","host":"s3://npm-registry-packages-npm-production"}},"5.6.0":{"name":"apigeetoopenapi","version":"5.6.0","keywords":["apigee","openapi","swagger","api-documentation","proxy-bundle","apigee2openapi","apigeetoopenapi","apigeex2openapi","cli-tool","json-schema","api-spec","array-parameters","nested-objects","extractvariables"],"author":{"name":"Hatim Alattas","email":"hatimalattas@outlook.com"},"license":"MIT","_id":"apigeetoopenapi@5.6.0","maintainers":[{"name":"hatimalattas","email":"hatimalattas@outlook.com"}],"homepage":"https://github.com/hatimalattas/ApigeeToOpenAPI","bugs":{"url":"https://github.com/hatimalattas/ApigeeToOpenAPI/issues"},"bin":{"apigeetoopenapi":"apigeetoopenapi.js"},"dist":{"shasum":"b630fb8dcb089c0a709017e8623a914589d3e46d","tarball":"https://registry.npmjs.org/apigeetoopenapi/-/apigeetoopenapi-5.6.0.tgz","fileCount":22,"integrity":"sha512-34AUVoXX+iwB+daQk3tWRUn4Ng5sU8lWk0CfonmxVLLd/C3zFEFK8rQugD92N+h9iuN3feBKC9s/zVme0TqJlg==","signatures":[{"sig":"MEYCIQDWRlTVyxtRVLTcip5i36gDGhcnNaaFOl2uNY6Ukn3F0QIhAJqpB13fDEAmWORPrpi5uQHGdBALDjPe6EB6wpBLiDz7","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":167164},"main":"apigeetoopenapi.js","type":"module","gitHead":"c4f285e9f69a23bbf39ec76e46729d2b59aac64e","scripts":{"test":"mocha"},"_npmUser":{"name":"hatimalattas","email":"hatimalattas@outlook.com"},"repository":{"url":"git+https://github.com/hatimalattas/ApigeeToOpenAPI.git","type":"git"},"_npmVersion":"10.9.3","description":"A powerful CLI tool that converts Apigee Proxy Bundles into OpenAPI 3.0.0 specifications with support for nested JSON, array parameters, multiple auth types, and modular architecture.","directories":{},"_nodeVersion":"22.20.0","dependencies":{"async":"^3.2.5","xml2js":"^0.6.2","commander":"^11.1.0","node-unzip-2":"^0.2.8"},"_hasShrinkwrap":false,"devDependencies":{"mocha":"^9.2.2","eslint":"^8.56.0","eslint-plugin-import":"^2.29.1"},"_npmOperationalInternal":{"tmp":"tmp/apigeetoopenapi_5.6.0_1775558443235_0.9780215205222047","host":"s3://npm-registry-packages-npm-production"}},"5.7.0":{"name":"apigeetoopenapi","version":"5.7.0","keywords":["apigee","openapi","swagger","api-documentation","proxy-bundle","apigee2openapi","apigeetoopenapi","apigeex2openapi","cli-tool","json-schema","api-spec","array-parameters","nested-objects","extractvariables"],"author":{"name":"Hatim Alattas","email":"hatimalattas@outlook.com"},"license":"MIT","_id":"apigeetoopenapi@5.7.0","maintainers":[{"name":"hatimalattas","email":"hatimalattas@outlook.com"}],"homepage":"https://github.com/hatimalattas/ApigeeToOpenAPI","bugs":{"url":"https://github.com/hatimalattas/ApigeeToOpenAPI/issues"},"bin":{"apigeetoopenapi":"apigeetoopenapi.js"},"dist":{"shasum":"d07d71a39f2224d208b5dde6e46db5e3b8707e36","tarball":"https://registry.npmjs.org/apigeetoopenapi/-/apigeetoopenapi-5.7.0.tgz","fileCount":21,"integrity":"sha512-VQ2BIYk7ai4TTdqB1I+ooHT6mIICzyeSj0kkV+f3KIN2eDqGP4p1eTANrxkoSXRk54KOEWDpRTVcUVZNF4MDcA==","signatures":[{"sig":"MEQCIG4UPq76zT/cBDO+7PwNBRYCiHD4eafehmOqmYi6z84lAiAK3s5GG5boAYQ8J5qOMl4Gnwh2wBEOTy+spUkUzVkipw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":92984},"main":"apigeetoopenapi.js","type":"module","gitHead":"8849fda6a47742048e967738f285af21f180d6f1","scripts":{"test":"mocha"},"_npmUser":{"name":"hatimalattas","email":"hatimalattas@outlook.com"},"repository":{"url":"git+https://github.com/hatimalattas/ApigeeToOpenAPI.git","type":"git"},"_npmVersion":"10.9.3","description":"A powerful CLI tool that converts Apigee Proxy Bundles into OpenAPI 3.0.0 specifications with support for nested JSON, array parameters, multiple auth types, and modular architecture.","directories":{},"_nodeVersion":"22.20.0","dependencies":{"async":"^3.2.5","xml2js":"^0.6.2","commander":"^11.1.0","node-unzip-2":"^0.2.8"},"_hasShrinkwrap":false,"devDependencies":{"mocha":"^9.2.2","eslint":"^8.56.0","eslint-plugin-import":"^2.29.1"},"_npmOperationalInternal":{"tmp":"tmp/apigeetoopenapi_5.7.0_1777806603426_0.2596999620741425","host":"s3://npm-registry-packages-npm-production"}},"5.7.1":{"name":"apigeetoopenapi","version":"5.7.1","keywords":["apigee","openapi","swagger","api-documentation","proxy-bundle","apigee2openapi","apigeetoopenapi","apigeex2openapi","cli-tool","json-schema","api-spec","array-parameters","nested-objects","extractvariables"],"author":{"name":"Hatim Alattas","email":"hatimalattas@outlook.com"},"license":"MIT","_id":"apigeetoopenapi@5.7.1","maintainers":[{"name":"hatimalattas","email":"hatimalattas@outlook.com"}],"homepage":"https://github.com/hatimalattas/ApigeeToOpenAPI","bugs":{"url":"https://github.com/hatimalattas/ApigeeToOpenAPI/issues"},"bin":{"apigeetoopenapi":"apigeetoopenapi.js"},"dist":{"shasum":"52f73f06fca7e01da47f2b25c1b53c0e2ac4dc15","tarball":"https://registry.npmjs.org/apigeetoopenapi/-/apigeetoopenapi-5.7.1.tgz","fileCount":21,"integrity":"sha512-+tuWzR9Api+VeWmJTkMTaDdr3DyRo4uLPpyRhyQ2iI9xPcwQ7R6DYpdwmkFivc6edKCwVymj5UeiqUGnJyTEfg==","signatures":[{"sig":"MEYCIQCc9b4V8c7UbLRA4IJc5HnjF5BiDakzT/RZJJx93k7ZLQIhAJPRoBkGt17NAarHoLzTdKQfDU2LKhQqEJwHjOhCrD8L","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":94280},"main":"apigeetoopenapi.js","type":"module","gitHead":"d2156398ba53d13e1b5a073bf6acd6ed8a0dd0e4","scripts":{"test":"mocha"},"_npmUser":{"name":"hatimalattas","email":"hatimalattas@outlook.com"},"repository":{"url":"git+https://github.com/hatimalattas/ApigeeToOpenAPI.git","type":"git"},"_npmVersion":"10.9.3","description":"A powerful CLI tool that converts Apigee Proxy Bundles into OpenAPI 3.0.0 specifications with support for nested JSON, array parameters, multiple auth types, and modular architecture.","directories":{},"_nodeVersion":"22.20.0","dependencies":{"async":"^3.2.5","xml2js":"^0.6.2","commander":"^11.1.0","node-unzip-2":"^0.2.8"},"_hasShrinkwrap":false,"devDependencies":{"mocha":"^9.2.2","eslint":"^8.56.0","eslint-plugin-import":"^2.29.1"},"_npmOperationalInternal":{"tmp":"tmp/apigeetoopenapi_5.7.1_1777806738386_0.6862513000195489","host":"s3://npm-registry-packages-npm-production"}},"5.8.0":{"name":"apigeetoopenapi","version":"5.8.0","keywords":["apigee","openapi","swagger","api-documentation","proxy-bundle","apigee2openapi","apigeetoopenapi","apigeex2openapi","cli-tool","json-schema","api-spec","array-parameters","nested-objects","extractvariables"],"author":{"name":"Hatim Alattas","email":"hatimalattas@outlook.com"},"license":"MIT","_id":"apigeetoopenapi@5.8.0","maintainers":[{"name":"hatimalattas","email":"hatimalattas@outlook.com"}],"homepage":"https://github.com/hatimalattas/ApigeeToOpenAPI","bugs":{"url":"https://github.com/hatimalattas/ApigeeToOpenAPI/issues"},"bin":{"apigeetoopenapi":"apigeetoopenapi.js"},"dist":{"shasum":"31f9c581678113a114646b091c855b7d41ae348e","tarball":"https://registry.npmjs.org/apigeetoopenapi/-/apigeetoopenapi-5.8.0.tgz","fileCount":21,"integrity":"sha512-KNng35f5meWK2NFrjy2OxEuvrDNqT4pjqxKsBOj5vlm/rs7r8oRdQIUSF4tVGOypGWo1kGz9dLALJdQh19vamA==","signatures":[{"sig":"MEQCIHmqDbyJ4mltYpLHjtn/yEphKi/3ETMi9/q1hxrYt7uYAiBeheIQW6Otrwt8RawIOTqFPD0nABZCoaYrKfs2RkYPrA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":94000},"main":"apigeetoopenapi.js","type":"module","gitHead":"5bb6b8abd483b170d99daea5e1936dac8a42dd90","scripts":{"test":"mocha"},"_npmUser":{"name":"hatimalattas","email":"hatimalattas@outlook.com"},"repository":{"url":"git+https://github.com/hatimalattas/ApigeeToOpenAPI.git","type":"git"},"_npmVersion":"11.6.2","description":"A powerful CLI tool that converts Apigee Proxy Bundles into OpenAPI 3.0.0 specifications with support for nested JSON, array parameters, multiple auth types, and modular architecture.","directories":{},"_nodeVersion":"22.20.0","dependencies":{"async":"^3.2.5","xml2js":"^0.6.2","commander":"^11.1.0","node-unzip-2":"^0.2.8"},"_hasShrinkwrap":false,"devDependencies":{"mocha":"^9.2.2","eslint":"^8.56.0","eslint-plugin-import":"^2.29.1"},"_npmOperationalInternal":{"tmp":"tmp/apigeetoopenapi_5.8.0_1785326562422_0.2354247573731627","host":"s3://npm-registry-packages-npm-production"}},"5.8.1":{"name":"apigeetoopenapi","version":"5.8.1","description":"A powerful CLI tool that converts Apigee Proxy Bundles into OpenAPI 3.0.0 specifications with support for nested JSON, array parameters, multiple auth types, and modular architecture.","type":"module","main":"apigeetoopenapi.js","homepage":"https://github.com/hatimalattas/ApigeeToOpenAPI","bin":{"apigeetoopenapi":"apigeetoopenapi.js"},"dependencies":{"async":"^3.2.5","commander":"^11.1.0","node-unzip-2":"^0.2.8","xml2js":"^0.6.2"},"devDependencies":{"eslint":"^8.56.0","eslint-plugin-import":"^2.29.1","mocha":"^9.2.2"},"scripts":{"test":"mocha"},"repository":{"type":"git","url":"git+https://github.com/hatimalattas/ApigeeToOpenAPI.git"},"bugs":{"url":"https://github.com/hatimalattas/ApigeeToOpenAPI/issues"},"keywords":["apigee","openapi","swagger","api-documentation","proxy-bundle","apigee2openapi","apigeetoopenapi","apigeex2openapi","cli-tool","json-schema","api-spec","array-parameters","nested-objects","extractvariables"],"author":{"name":"Hatim Alattas","email":"hatimalattas@outlook.com"},"license":"MIT","gitHead":"4b302a619288aa0251ded2851c32730613c87241","_id":"apigeetoopenapi@5.8.1","_nodeVersion":"22.20.0","_npmVersion":"11.6.2","dist":{"integrity":"sha512-MtAKCd5NQPc8aZsFDTVW8p3TCEJFqfVwD7k4ZR2NV7wnaDa6sli6v/IrJ+r97e0vC7O1BPIv1VJwGDGrUaed0Q==","shasum":"b9fe3626d2965057af5608cc96a8b2a1e6141219","tarball":"https://registry.npmjs.org/apigeetoopenapi/-/apigeetoopenapi-5.8.1.tgz","fileCount":21,"unpackedSize":95072,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQCVvCQFlcgeQl210FNvEOWxEIAvvTa95OZxVrXMyjFkGwIgB7VG5uDcqYHguhfx9ditkhxagMt6uETwIqSWYTh/B1M="}]},"_npmUser":{"name":"hatimalattas","email":"hatimalattas@outlook.com"},"directories":{},"maintainers":[{"name":"hatimalattas","email":"hatimalattas@outlook.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/apigeetoopenapi_5.8.1_1785330404568_0.5903041463781076"},"_hasShrinkwrap":false}},"time":{"created":"2024-01-16T14:21:36.621Z","modified":"2026-07-29T13:06:44.926Z","1.0.0":"2024-01-16T14:21:36.780Z","2.0.0":"2024-01-17T11:01:43.005Z","3.0.0":"2024-01-17T11:49:37.799Z","3.0.1":"2024-01-17T12:31:33.870Z","3.0.2":"2024-01-17T13:02:43.249Z","3.1.0":"2024-01-18T08:00:16.561Z","3.1.1":"2024-01-18T08:18:34.779Z","3.1.2":"2024-01-18T08:20:29.550Z","3.2.0":"2024-01-18T11:30:14.989Z","3.3.0":"2024-01-18T13:18:16.179Z","3.3.1":"2024-02-01T07:49:20.145Z","3.3.2":"2024-02-01T08:23:22.592Z","3.3.3":"2024-02-25T10:29:19.666Z","3.3.4":"2024-04-29T11:08:10.737Z","3.3.5":"2024-04-29T11:31:04.214Z","3.3.6":"2024-04-29T13:17:58.100Z","3.3.7":"2024-04-29T13:22:56.234Z","4.0.0":"2024-06-08T16:39:38.009Z","4.0.1":"2024-06-10T11:08:28.470Z","5.0.0":"2024-09-04T09:22:03.157Z","5.1.0":"2025-10-06T12:27:00.175Z","5.1.1":"2025-10-06T13:22:52.304Z","5.2.0":"2025-10-13T11:09:24.188Z","5.3.0":"2025-10-14T10:29:43.842Z","5.4.0":"2025-10-14T13:53:07.934Z","5.5.0":"2026-04-07T09:39:34.731Z","5.6.0":"2026-04-07T10:40:43.385Z","5.7.0":"2026-05-03T11:10:03.571Z","5.7.1":"2026-05-03T11:12:18.561Z","5.8.0":"2026-07-29T12:02:42.585Z","5.8.1":"2026-07-29T13:06:44.729Z"},"bugs":{"url":"https://github.com/hatimalattas/ApigeeToOpenAPI/issues"},"author":{"name":"Hatim Alattas","email":"hatimalattas@outlook.com"},"license":"MIT","homepage":"https://github.com/hatimalattas/ApigeeToOpenAPI","keywords":["apigee","openapi","swagger","api-documentation","proxy-bundle","apigee2openapi","apigeetoopenapi","apigeex2openapi","cli-tool","json-schema","api-spec","array-parameters","nested-objects","extractvariables"],"repository":{"type":"git","url":"git+https://github.com/hatimalattas/ApigeeToOpenAPI.git"},"description":"A powerful CLI tool that converts Apigee Proxy Bundles into OpenAPI 3.0.0 specifications with support for nested JSON, array parameters, multiple auth types, and modular architecture.","maintainers":[{"name":"hatimalattas","email":"hatimalattas@outlook.com"}],"readme":"# ApigeeToOpenAPI\n\n[![npm version](https://badge.fury.io/js/apigeetoopenapi.svg)](https://badge.fury.io/js/apigeetoopenapi)\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)\n\nA powerful CLI tool that converts Apigee Proxy Bundles into comprehensive OpenAPI 3.0.0 specifications with intelligent policy parsing and schema generation.\n\n## 🚀 Quick Start\n\n```bash\n# Install globally\nnpm install -g apigeetoopenapi@latest\n\n# Convert an Apigee bundle\napigeetoopenapi -i ./api-bundle.zip -o ./openapi-output -n \"My API\" -b \"https://api.example.com\" -a apiKey\n\n# Use without installation\nnpx apigeetoopenapi -i ./bundle.zip -o ./output -n \"API Name\" -b \"https://api.example.com\" -a oauth2 -t \"https://auth.example.com/token\"\n```\n\n## 🆕 What's New in v5.1.0\n\n- **🏗️ Modular Architecture**: Complete rewrite with separation of concerns\n- **🔧 Enhanced Parameter Detection**: Improved logic for required vs optional fields\n- **📄 Better Documentation**: Comprehensive policy support documentation\n- **🔒 Multiple Auth Types**: Enhanced authentication scheme support\n- **⚡ Performance Improvements**: Optimized parsing and generation pipeline\n\n## 📦 Installation\n\n### Global Installation (Recommended)\n```bash\nnpm install -g apigeetoopenapi@latest\n```\n\n### Using npx (No Installation)\n```bash\nnpx apigeetoopenapi [options]\n```\n\n### Local Installation\n```bash\nnpm install apigeetoopenapi\n```\n\n### Verify Installation\n```bash\napigeetoopenapi --help\n```\n\n## 🛠️ Usage\n\n### Command Line Interface\n\n```bash\napigeetoopenapi [options]\n```\n\n#### Required Options\n- `-i, --input <path>` - Path to bundle.zip file or apiproxy directory\n- `-o, --output <path>` - Output directory for OpenAPI specification\n- `-n, --name <name>` - API proxy name\n- `-b, --baseUrl <url>` - Base URL(s) (comma-separated for multiple environments)\n- `-a, --auth <type>` - Authentication type: `basic`, `apiKey`, `bearer`, `oauth2`, `none`\n\n#### Optional Options\n- `-t, --tokenUrl <url>` - OAuth2 token URL (required when using `--auth oauth2`)\n- `-k, --apiKeyHeader <name>` - Header name for API key authentication (defaults to \"apikey\")\n- `-v, --verbose` - Enable verbose output for debugging\n\n### Examples\n\n#### Basic Usage\n```bash\napigeetoopenapi \\\n  --input ./payment-api.zip \\\n  --output ./docs \\\n  --name \"Payment API\" \\\n  --baseUrl \"https://api.payment.com\" \\\n  --auth apiKey\n```\n\n#### Multiple Environments\n```bash\napigeetoopenapi \\\n  --input ./user-api \\\n  --output ./openapi-specs \\\n  --name \"User Management\" \\\n  --baseUrl \"https://dev-api.example.com,https://api.example.com\" \\\n  --auth oauth2 \\\n  --tokenUrl \"https://auth.example.com/token\"\n```\n\n#### Directory Input\n```bash\napigeetoopenapi \\\n  --input ./apiproxy \\\n  --output ./output \\\n  --name \"Notification API\" \\\n  --baseUrl \"https://api.example.com/v1\" \\\n  --auth bearer\n```\n\n#### Custom API Key Header\n```bash\napigeetoopenapi \\\n  --input ./api-bundle.zip \\\n  --output ./docs \\\n  --name \"Payment API\" \\\n  --baseUrl \"https://api.payment.com\" \\\n  --auth apiKey \\\n  --apiKeyHeader \"X-API-Key\"\n```\n\n#### Verbose Mode for Debugging\n```bash\napigeetoopenapi \\\n  --input ./bundle.zip \\\n  --output ./output \\\n  --name \"API Name\" \\\n  --baseUrl \"https://api.example.com\" \\\n  --auth apiKey \\\n  --verbose\n```\n\n## 🔧 How It Works\n\nThe tool analyzes your Apigee Proxy Bundle and converts it into OpenAPI 3.0.0 specification by:\n\n1. **Parsing Proxy Endpoints** - Extracts flows, conditions, and routing information\n2. **Processing Policies** - Analyzes ExtractVariables, AssignMessage, and RaiseFault policies\n3. **Generating Schemas** - Creates OpenAPI paths, parameters, and response schemas\n4. **Adding Security** - Configures authentication schemes based on your choice\n\n## 📚 Apigee Policy Support\n\n### Parameter Extraction (ExtractVariables)\n\nThe tool extracts API parameters from `ExtractVariables` policies in request flows:\n\n#### Query Parameters\n```xml\n<ExtractVariables name=\"EV-ExtractQueryParams\">\n    <QueryParam name=\"user_id\" description=\"Unique identifier for the user\" placeholder=\"12345\">\n        <Pattern ignoreCase=\"true\">{user_id}</Pattern>\n    </QueryParam>\n    <QueryParam name=\"filter\" description=\"Filter criteria for results\" placeholder=\"active\">\n        <Pattern ignoreCase=\"true\">{filter}</Pattern>\n    </QueryParam>\n    <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables>\n</ExtractVariables>\n```\n\n#### Header Parameters\n```xml\n<ExtractVariables name=\"EV-ExtractHeaders\">\n    <Header name=\"Authorization\" description=\"Bearer token for authentication\" placeholder=\"Bearer abc123\">\n        <Pattern ignoreCase=\"false\">Bearer {token}</Pattern>\n    </Header>\n    <Header name=\"Content-Type\" description=\"Media type of the request\" placeholder=\"application/json\">\n        <Pattern ignoreCase=\"true\">{content_type}</Pattern>\n    </Header>\n    <IgnoreUnresolvedVariables>true</IgnoreUnresolvedVariables>\n</ExtractVariables>\n```\n\n#### Form Parameters\n```xml\n<ExtractVariables name=\"EV-ExtractFormData\">\n    <FormParam name=\"username\" description=\"User's login name\" placeholder=\"john_doe\">\n        <Pattern ignoreCase=\"true\">{username}</Pattern>\n    </FormParam>\n    <FormParam name=\"password\" description=\"User's password\" placeholder=\"********\">\n        <Pattern ignoreCase=\"true\">{password}</Pattern>\n    </FormParam>\n    <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables>\n</ExtractVariables>\n```\n\n#### JSON Request Body with Nested Objects\n```xml\n<ExtractVariables name=\"EV-ExtractPayload\">\n    <JSONPayload>\n        <Variable name=\"user.name\" type=\"string\" description=\"User's full name\" placeholder=\"John Doe\">\n            <JSONPath>$.user.name</JSONPath>\n        </Variable>\n        <Variable name=\"user.email\" type=\"string\" description=\"User's email address\" placeholder=\"john@example.com\">\n            <JSONPath>$.user.email</JSONPath>\n        </Variable>\n        <Variable name=\"user.age\" type=\"integer\" description=\"User's age\" placeholder=\"30\">\n            <JSONPath>$.user.age</JSONPath>\n        </Variable>\n        <Variable name=\"user.salary\" type=\"float\" description=\"User's salary\" placeholder=\"75000.50\">\n            <JSONPath>$.user.salary</JSONPath>\n        </Variable>\n        <Variable name=\"preferences.notifications\" type=\"boolean\" description=\"Enable notifications\" placeholder=\"true\">\n            <JSONPath>$.preferences.notifications</JSONPath>\n        </Variable>\n    </JSONPayload>\n    <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables>\n    <Source>request</Source>\n</ExtractVariables>\n```\n\n#### Array Parameters\nThe tool supports array parameters using `type=\"nodeset\"` with custom `itemType` attribute:\n\n```xml\n<ExtractVariables name=\"EV-ExtractArrays\">\n    <JSONPayload>\n        <!-- Integer array -->\n        <Variable name=\"userIds\" type=\"nodeset\" itemType=\"integer\"\n                  description=\"Array of user IDs\"\n                  placeholder=\"[1, 2, 3, 4, 5]\">\n            <JSONPath>$.userIds</JSONPath>\n        </Variable>\n\n        <!-- Object array -->\n        <Variable name=\"users\" type=\"nodeset\" itemType=\"object\"\n                  description=\"Array of user objects\"\n                  placeholder='[{\"id\": 1, \"name\": \"John\"}, {\"id\": 2, \"name\": \"Jane\"}]'>\n            <JSONPath>$.users</JSONPath>\n        </Variable>\n\n        <!-- String array -->\n        <Variable name=\"categories\" type=\"nodeset\" itemType=\"string\"\n                  description=\"Product categories\"\n                  placeholder='[\"electronics\", \"books\", \"clothing\"]'>\n            <JSONPath>$.categories</JSONPath>\n        </Variable>\n\n        <!-- Mixed type array -->\n        <Variable name=\"mixedData\" type=\"nodeset\" itemType=\"string,integer,boolean\"\n                  description=\"Mixed type array\"\n                  placeholder='[\"hello\", 42, true, \"world\", 99, false]'>\n            <JSONPath>$.mixedData</JSONPath>\n        </Variable>\n    </JSONPayload>\n    <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables>\n    <Source>request</Source>\n</ExtractVariables>\n```\n\n**Array ItemTypes Supported:**\n- `string` - Array of strings\n- `integer` - Array of integers\n- `number` - Array of numbers\n- `boolean` - Array of booleans\n- `object` - Array of objects (default if not specified)\n- `string,integer,boolean` - Mixed arrays (comma-separated types)\n\n**Generated OpenAPI Schema Examples:**\n\nFor `itemType=\"integer\"`:\n```json\n{\n  \"type\": \"array\",\n  \"items\": {\n    \"type\": \"integer\"\n  },\n  \"example\": [1, 2, 3, 4, 5]\n}\n```\n\nFor `itemType=\"string,integer,boolean\"`:\n```json\n{\n  \"type\": \"array\",\n  \"items\": {\n    \"anyOf\": [\n      {\"type\": \"string\"},\n      {\"type\": \"integer\"},\n      {\"type\": \"boolean\"}\n    ]\n  },\n  \"example\": [\"hello\", 42, true]\n}\n```\n\n#### Required vs Optional Parameters\n\nParameters are marked as required/optional based on `IgnoreUnresolvedVariables`:\n- `IgnoreUnresolvedVariables=\"false\"` → **Required parameters**\n- `IgnoreUnresolvedVariables=\"true\"` → **Optional parameters**\n\n#### Supported Data Types for JSON Variables\n\nThe `type` attribute is only supported for JSON payload variables. The tool supports these types that are automatically converted to OpenAPI schema types:\n\n| Input Type | OpenAPI Type | Description |\n|------------|--------------|-------------|\n| `string` | `string` | Text values (default if no type specified) |\n| `integer` | `integer` | Whole numbers |\n| `boolean` | `boolean` | True/false values |\n| `float` | `number` | Floating-point numbers |\n| `double` | `number` | Double-precision numbers |\n| `long` | `number` | Long integer numbers |\n| `nodeset` | `array` | Array of values (requires `itemType` attribute) |\n| `object` | `object` | Object values |\n\n**Default Behavior**: If no `type` attribute is specified, the parameter defaults to `string` type.\n\n**Array Types**: When using `type=\"nodeset\"`, you must specify the `itemType` attribute to define what type of items the array contains.\n\n**Note**:\n- Query parameters, headers, and form parameters are automatically typed as strings in the OpenAPI specification\n- Nested objects are automatically created using dot notation (e.g., `user.name` creates a `user` object with a `name` property)\n\n#### Description and Placeholder Support\n\nAll parameter types support `description` and `placeholder` attributes:\n- **`description`**: Provides documentation for the parameter in the OpenAPI specification\n- **`placeholder`**: Sets the example value for the parameter in the OpenAPI specification\n\nThese attributes enhance the generated OpenAPI documentation with meaningful descriptions and example values.\n\n### Response Schema Generation (AssignMessage)\n\nGenerate OpenAPI response schemas using `AssignMessage` policies in response flows:\n\n#### Requirements\n1. Policy name **must contain \"OAS\"**\n2. Policy **must be disabled** (`enabled=\"false\"`)\n3. Policy **must be in Response section** of a conditional flow\n\n#### Example Policy\n```xml\n<AssignMessage continueOnError=\"false\" enabled=\"false\" name=\"AM-UserResponseOAS\">\n    <DisplayName>User API Response Schema</DisplayName>\n    <Set>\n        <Payload contentType=\"application/json\">\n            {\n                \"user_id\": \"12345\",\n                \"username\": \"john_doe\",\n                \"email\": \"john@example.com\",\n                \"profile\": {\n                    \"first_name\": \"John\",\n                    \"last_name\": \"Doe\",\n                    \"age\": 30,\n                    \"active\": true\n                },\n                \"created_at\": \"2023-01-15T10:30:00Z\",\n                \"last_login\": \"2023-12-01T14:22:33Z\"\n            }\n        </Payload>\n    </Set>\n</AssignMessage>\n```\n\n#### Property Descriptions via `//` Comments\n\nAdd a trailing `// ...` comment after a property's value and the tool will use that text as the OpenAPI `description` for that property. The comment is stripped before JSON parsing, so the `example` payload stays valid JSON. `//` inside a string value (e.g. a URL) is left alone.\n\n```xml\n<AssignMessage continueOnError=\"false\" enabled=\"false\" name=\"AM-UserResponseOAS\">\n    <Set>\n        <Payload contentType=\"application/json\">\n            {\n                \"data\": {\n                    \"nelc_id\": \"NELC-00123\",        // NELC identifier\n                    \"is_approved\": true,             // approval flag\n                    \"licensing_status\": \"approved\",  // current license state\n                    \"link\": \"https://example.com/x\"  // url; the // inside the string is not a comment\n                },\n                \"items\": [1, 2, 3]                   // numeric ids (attaches to the array)\n            }\n        </Payload>\n    </Set>\n</AssignMessage>\n```\n\nComment placement rules:\n- Trailing comment after a property line → description on that property.\n- Trailing comment after `]` or `}` → description on the array/object property that just closed.\n- Comments on their own line, or block comments (`/* ... */`), are not extracted.\n\n#### ProxyEndpoint Placement\n```xml\n<Flow name=\"Get User\">\n    <Request>\n        <Step>\n            <Name>EV-ExtractUserId</Name>\n        </Step>\n    </Request>\n    <Response>\n        <Step>\n            <Name>AM-UserResponseOAS</Name>\n        </Step>\n    </Response>\n    <Condition>(proxy.pathsuffix MatchesPath \"/users/{user_id}\") and (request.verb = \"GET\")</Condition>\n</Flow>\n```\n\n### Error Response Handling (RaiseFault)\n\nGenerate error response documentation from `RaiseFault` policies:\n\n```xml\n<RaiseFault continueOnError=\"false\" enabled=\"true\" name=\"RF-UserNotFound\">\n    <DisplayName>User Not Found Error</DisplayName>\n    <FaultResponse>\n        <AssignVariable>\n            <Name>error_message</Name>\n            <Value>User not found</Value>\n        </AssignVariable>\n        <AssignVariable>\n            <Name>error_code</Name>\n            <Value>404</Value>\n        </AssignVariable>\n    </FaultResponse>\n</RaiseFault>\n```\n\nThe tool automatically generates error responses based on `error_code` and `error_message` variables.\n\n### JavaScript Error Handling\n\nGenerate error response documentation from JavaScript policies that set error context variables:\n\n#### JavaScript Policy Structure\n```xml\n<Javascript name=\"ValidateUserRequest\" timeLimit=\"200\">\n    <DisplayName>Validate User Request Data</DisplayName>\n    <ResourceURL>jsc://validate-user-request.js</ResourceURL>\n</Javascript>\n```\n\n#### JavaScript File Content (validate-user-request.js)\n```javascript\n// Parse request data\nvar requestData = JSON.parse(request.content);\n\n// Email validation\nif (!requestData.email) {\n    context.setVariable(\"error_message\", \"Email is required\");\n    context.setVariable(\"error_code\", 400);\n    throw new Error(\"Email validation failed\");\n}\n\n// Age validation\nif (requestData.age < 18) {\n    context.setVariable(\"error_message\", \"User must be at least 18 years old\");\n    context.setVariable(\"error_code\", 403);\n    throw new Error(\"Age validation failed\");\n}\n\n// Authorization check\nif (!hasPermission(requestData.userId)) {\n    context.setVariable(\"error_message\", \"Insufficient permissions for this operation\");\n    context.setVariable(\"error_code\", 403);\n    throw new Error(\"Authorization failed\");\n}\n\n// Invalid format check\nif (!isValidFormat(requestData.data)) {\n    context.setVariable(\"error_message\", \"Invalid data format provided\");\n    context.setVariable(\"error_code\", 422);\n    throw new Error(\"Format validation failed\");\n}\n```\n\n#### How It Works\nThe tool automatically:\n1. **Detects JavaScript policies** in request flows\n2. **Loads JavaScript files** from `resources/jsc/` directory\n3. **Parses error patterns** using regex to find `context.setVariable` calls\n4. **Matches error messages with codes** based on their proximity in the code\n5. **Generates OpenAPI error responses** for each detected error scenario\n\n#### Supported Patterns\nThe tool recognizes these JavaScript error patterns:\n\n```javascript\n// Standard pattern\ncontext.setVariable(\"error_message\", \"Your error message here\");\ncontext.setVariable(\"error_code\", 400);\n\n// Mixed quotes\ncontext.setVariable('error_message', 'Your error message here');\ncontext.setVariable('error_code', 400);\n\n// Extra spacing (automatically handled)\ncontext.setVariable( \"error_message\" , \"Your error message here\" );\ncontext.setVariable(  \"error_code\"  ,  400  );\n```\n\n#### Generated OpenAPI Error Responses\nFrom the JavaScript example above, the tool generates:\n\n```json\n{\n  \"400\": {\n    \"description\": \"Bad Request\",\n    \"content\": {\n      \"application/json\": {\n        \"schema\": {\n          \"oneOf\": [\n            {\n              \"type\": \"object\",\n              \"properties\": {\n                \"error_message\": {\n                  \"type\": \"string\",\n                  \"example\": \"Email is required\"\n                },\n                \"error_code\": {\n                  \"type\": \"string\",\n                  \"example\": \"400\"\n                }\n              }\n            }\n          ]\n        }\n      }\n    }\n  },\n  \"403\": {\n    \"description\": \"Forbidden\",\n    \"content\": {\n      \"application/json\": {\n        \"schema\": {\n          \"oneOf\": [\n            {\n              \"type\": \"object\",\n              \"properties\": {\n                \"error_message\": {\n                  \"type\": \"string\",\n                  \"example\": \"User must be at least 18 years old\"\n                }\n              }\n            },\n            {\n              \"type\": \"object\",\n              \"properties\": {\n                \"error_message\": {\n                  \"type\": \"string\",\n                  \"example\": \"Insufficient permissions for this operation\"\n                }\n              }\n            }\n          ]\n        }\n      }\n    }\n  }\n}\n```\n\n## 🔐 Authentication Support\n\nConfigure authentication schemes using the `-a` option:\n\n### API Key Authentication\n```bash\napigeetoopenapi ... --auth apiKey\n```\n\nGenerates (using default header name):\n```yaml\ncomponents:\n  securitySchemes:\n    ApiKeyAuth:\n      type: apiKey\n      in: header\n      name: apikey\n```\n\n#### Custom API Key Header Name\n```bash\napigeetoopenapi ... --auth apiKey --apiKeyHeader \"X-API-Key\"\n```\n\nGenerates:\n```yaml\ncomponents:\n  securitySchemes:\n    ApiKeyAuth:\n      type: apiKey\n      in: header\n      name: X-API-Key\n```\n\n### Basic Authentication\n```bash\napigeetoopenapi ... --auth basic\n```\n\n### Bearer Token\n```bash\napigeetoopenapi ... --auth bearer\n```\n\n### OAuth 2.0\n```bash\napigeetoopenapi ... --auth oauth2 --tokenUrl \"https://auth.example.com/token\"\n```\n\n#### Automatic OAuth Scope Detection\nWhen using OAuth 2.0 authentication, the tool automatically detects OAuth scopes from `OAuthV2` policies in the PreFlow:\n\n```xml\n<OAuthV2 name=\"OAuthV2-VerifyAccessToken\">\n    <DisplayName>Verify OAuth v2.0 Access Token</DisplayName>\n    <Operation>VerifyAccessToken</Operation>\n    <Scope>read write admin</Scope>\n</OAuthV2>\n```\n\nThe scopes are automatically extracted and included in the OpenAPI specification:\n```yaml\ncomponents:\n  securitySchemes:\n    oauth2ClientCredentials:\n      type: oauth2\n      flows:\n        clientCredentials:\n          tokenUrl: https://auth.example.com/token\n          scopes:\n            read: \"\"\n            write: \"\"\n            admin: \"\"\n```\n\n### No Authentication\n```bash\napigeetoopenapi ... --auth none\n```\n\n## 🏗️ Architecture\n\nThe tool uses a modular architecture:\n\n```\nsrc/\n├── converter.js           # Main orchestrator\n├── parsers/              # XML and policy parsers\n│   ├── apigeeParser.js   # Proxy endpoint parsing\n│   └── policyParser.js   # Individual policy parsing\n├── generators/           # OpenAPI component generators\n│   ├── openApiGenerator.js     # Core OpenAPI structure\n│   ├── parameterGenerator.js   # Parameters and request bodies\n│   ├── errorGenerator.js       # Error responses\n│   └── securityGenerator.js    # Authentication schemes\n├── utils/                # Utility functions\n└── constants/           # Configuration constants\n```\n\n## 📝 Programmatic Usage\n\n```javascript\nimport { Converter } from 'apigeetoopenapi';\n\nconst converter = new Converter();\nconst options = {\n    name: 'My API',\n    baseUrl: ['https://api.example.com'],\n    auth: 'apiKey'\n};\n\ntry {\n    const spec = await converter.convert(\n        './apiproxy',\n        options,\n        './apiproxy/proxies/default.xml'\n    );\n\n    await converter.saveToFile(spec, './openapi.json');\n    console.log('OpenAPI specification generated successfully!');\n} catch (error) {\n    console.error('Conversion failed:', error.message);\n}\n```\n\n## 🤝 Contributing\n\n1. Fork the repository\n2. Create a feature branch: `git checkout -b feature/new-feature`\n3. Commit changes: `git commit -am 'Add new feature'`\n4. Push to branch: `git push origin feature/new-feature`\n5. Submit a Pull Request\n\n## 📄 License\n\nThis project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.\n\n## 🐛 Issues\n\nReport bugs and feature requests at: https://github.com/hatimalattas/ApigeeToOpenAPI/issues\n\n## 📊 NPM Package\n\nView on NPM: https://www.npmjs.com/package/apigeetoopenapi","readmeFilename":"README.md"}