@visulima/jsdoc-open-api 3.0.0-alpha.2 → 3.0.0-alpha.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,4 +1,4 @@
1
- import { spec_builder_default, DEFAULT_EXCLUDE, collect, parse_file_default, comments_to_open_api_default, comments_to_open_api_default2, validate_default } from './chunk-46IWFMQ2.mjs';
1
+ import { spec_builder_default, DEFAULT_EXCLUDE, collect, parse_file_default, comments_to_open_api_default, comments_to_open_api_default2, validate_default } from './chunk-2T6HMUIL.mjs';
2
2
  import { lstat, realpath, mkdir, writeFile } from 'fs/promises';
3
3
  import { normalize, dirname } from 'path';
4
4
  import { pathToFileURL } from 'url';
@@ -138,5 +138,5 @@ var initCommand = (configName, packageJsonPath = process.cwd()) => {
138
138
  var init_command_default = initCommand;
139
139
 
140
140
  export { generate_command_default, init_command_default };
141
- //# sourceMappingURL=chunk-KI63G47G.mjs.map
142
- //# sourceMappingURL=chunk-KI63G47G.mjs.map
141
+ //# sourceMappingURL=chunk-RGP6RTJO.mjs.map
142
+ //# sourceMappingURL=chunk-RGP6RTJO.mjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/cli/command/generate-command.ts","../src/cli/command/init-command.ts"],"names":["comments_to_open_api_default"],"mappings":"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","file":"chunk-KI63G47G.mjs","sourcesContent":["import { lstat, mkdir, realpath, writeFile } from \"node:fs/promises\";\nimport { dirname, normalize } from \"node:path\";\nimport { pathToFileURL } from \"node:url\";\n\nimport type { WalkOptions } from \"@visulima/fs\";\nimport { collect } from \"@visulima/fs\";\n// eslint-disable-next-line import/no-extraneous-dependencies\nimport { MultiBar, Presets } from \"cli-progress\";\n\nimport { DEFAULT_EXCLUDE } from \"../../constants\";\nimport type { BaseDefinition } from \"../../exported\";\nimport jsDocumentCommentsToOpenApi from \"../../jsdoc/comments-to-open-api\";\nimport parseFile from \"../../parse-file\";\nimport SpecBuilder from \"../../spec-builder\";\nimport swaggerJsDocumentCommentsToOpenApi from \"../../swagger-jsdoc/comments-to-open-api\";\nimport validate from \"../../validate\";\n\nconst generateCommand = async (\n configName: string,\n paths: string[],\n options: {\n config?: string;\n output?: string;\n verbose?: boolean;\n veryVerbose?: boolean;\n },\n): Promise<void> => {\n let openapiConfig: {\n exclude: string[];\n extensions?: string[];\n followSymlinks?: boolean;\n include?: (RegExp | string)[];\n swaggerDefinition: BaseDefinition;\n } = {\n exclude: [],\n swaggerDefinition: {} as BaseDefinition,\n };\n\n try {\n let config = await import(pathToFileURL(normalize(options.config ?? configName)).href);\n\n if (config?.default) {\n config = config.default;\n }\n\n openapiConfig = config;\n } catch {\n throw new Error(`No config file found, on: ${options.config ?? \".openapirc.js\"}\\n`);\n }\n\n const multibar = new MultiBar(\n {\n clearOnComplete: false,\n format: \"{value}/{total} | {bar} | {filename}\",\n hideCursor: true,\n },\n Presets.shades_grey,\n );\n\n const spec = new SpecBuilder(openapiConfig.swaggerDefinition);\n const skip = new Set<RegExp | string>([...DEFAULT_EXCLUDE, ...openapiConfig.exclude]);\n\n // eslint-disable-next-line unicorn/prevent-abbreviations,no-loops/no-loops\n for await (const dir of paths) {\n // Check if the path is a directory\n // eslint-disable-next-line security/detect-non-literal-fs-filename,unicorn/no-await-expression-member\n (await lstat(dir)).isDirectory();\n\n // eslint-disable-next-line security/detect-non-literal-fs-filename\n const realDirectory = await realpath(dir);\n\n const files: string[] = await collect(realDirectory, {\n extensions: openapiConfig.extensions ?? [\".js\", \".cjs\", \".mjs\", \".ts\", \".tsx\", \".jsx\", \".yaml\", \".yml\"],\n followSymlinks: openapiConfig.followSymlinks ?? false,\n match: openapiConfig.include,\n skip: [...skip],\n } as WalkOptions);\n\n if (options.verbose ?? options.veryVerbose) {\n // eslint-disable-next-line no-console\n console.log(`\\nFound ${String(files.length)} files in ${realDirectory}`);\n }\n\n if (options.veryVerbose) {\n // eslint-disable-next-line no-console\n console.log(files);\n }\n\n const bar = multibar.create(files.length, 0);\n\n files.forEach((file) => {\n if (options.verbose) {\n // eslint-disable-next-line no-console\n console.log(`Parsing file ${file}`);\n }\n\n bar.increment(1, { filename: realDirectory });\n\n const parsedJsDocumentFile = parseFile(file, jsDocumentCommentsToOpenApi, options.verbose);\n\n spec.addData(parsedJsDocumentFile.map((item) => item.spec));\n\n const parsedSwaggerJsDocumentFile = parseFile(file, swaggerJsDocumentCommentsToOpenApi, options.verbose);\n\n spec.addData(parsedSwaggerJsDocumentFile.map((item) => item.spec));\n });\n }\n\n if (options.verbose) {\n // eslint-disable-next-line no-console\n console.log(\"Validating swagger spec\");\n }\n\n if (options.veryVerbose) {\n // eslint-disable-next-line no-console\n console.log(JSON.stringify(spec, null, 2));\n }\n\n await validate(JSON.parse(JSON.stringify(spec)) as Record<string, unknown>);\n\n const output = options.output ?? \"swagger.json\";\n\n multibar.stop();\n\n if (options.verbose) {\n // eslint-disable-next-line no-console\n console.log(`Written swagger spec to \"${output}\" file`);\n }\n\n // eslint-disable-next-line security/detect-non-literal-fs-filename\n await mkdir(dirname(output), { recursive: true });\n // eslint-disable-next-line security/detect-non-literal-fs-filename\n await writeFile(output, JSON.stringify(spec, null, 2));\n\n // eslint-disable-next-line no-console\n console.log(`\\nSwagger specification is ready, check the \"${output}\" file.`);\n};\n\nexport default generateCommand;\n","import { existsSync, realpathSync, writeFileSync } from \"node:fs\";\n\nimport readPkgUp from \"read-pkg-up\";\n\nconst initCommand = (configName: string, packageJsonPath = process.cwd()): void => {\n if (existsSync(configName)) {\n throw new Error(\"Config file already exists\");\n }\n\n const foundPackageJson = readPkgUp.sync({\n cwd: realpathSync(packageJsonPath),\n });\n\n let exportTemplate = \"module.exports =\";\n\n if (foundPackageJson) {\n // eslint-disable-next-line @typescript-eslint/naming-convention\n const { packageJson: package_, path: packagePath } = foundPackageJson;\n\n // eslint-disable-next-line no-console\n console.info(`Found package.json at \"${packagePath as string}\"`);\n\n if (package_.type === \"module\") {\n // eslint-disable-next-line no-console\n console.info(\"Found package.json with type: module, using ES6 as export for the config file\");\n\n exportTemplate = \"export default\";\n }\n } else {\n // eslint-disable-next-line no-console\n console.info(\"No package.json found\");\n }\n\n writeFileSync(\n configName,\n `${exportTemplate} {\n exclude: [\n 'coverage/**',\n '.github/**',\n 'packages/*/test{,s}/**',\n '**/*.d.ts',\n 'test{,s}/**',\n 'test{,-*}.{js,cjs,mjs,ts,tsx,jsx,yaml,yml}',\n '**/*{.,-}test.{js,cjs,mjs,ts,tsx,jsx,yaml,yml}',\n '**/__tests__/**',\n '**/{ava,babel,nyc}.config.{js,cjs,mjs}',\n '**/jest.config.{js,cjs,mjs,ts}',\n '**/{karma,rollup,webpack}.config.js',\n '**/.{eslint,mocha}rc.{js,cjs}',\n '**/.{travis,yarnrc}.yml',\n '**/{docker-compose,docker}.yml',\n '**/.yamllint.{yaml,yml}',\n '**/node_modules/**',\n '**/pnpm-lock.yaml',\n '**/pnpm-workspace.yaml',\n '**/{package,package-lock}.json',\n '**/yarn.lock',\n '**/package.json5',\n '**/.next/**',\n ],\n followSymlinks: false,\n swaggerDefinition: {\n openapi: '3.0.0',\n info: {\n title: 'API',\n version: '1.0.0',\n },\n },\n};\n`,\n );\n\n // eslint-disable-next-line no-console\n console.log(`Created \"${configName}\"`);\n};\n\nexport default initCommand;\n"]}
1
+ {"version":3,"sources":["../src/cli/command/generate-command.ts","../src/cli/command/init-command.ts"],"names":["comments_to_open_api_default"],"mappings":";;;;;;;;AAiBA,IAAM,eAAA,GAAkB,OACpB,UAAA,EACA,KAAA,EACA,OAAA,KAMgB;AAChB,EAAA,IAAI,aAAA,GAMA;AAAA,IACA,SAAS,EAAC;AAAA,IACV,mBAAmB;AAAC,GACxB;AAEA,EAAA,IAAI;AACA,IAAA,IAAI,MAAA,GAAS,MAAM,OAAO,aAAA,CAAc,UAAU,OAAA,CAAQ,MAAA,IAAU,UAAU,CAAC,CAAA,CAAE,IAAA,CAAA;AAEjF,IAAA,IAAI,QAAQ,OAAA,EAAS;AACjB,MAAA,MAAA,GAAS,MAAA,CAAO,OAAA;AAAA,IACpB;AAEA,IAAA,aAAA,GAAgB,MAAA;AAAA,EACpB,CAAA,CAAA,MAAQ;AACJ,IAAA,MAAM,IAAI,KAAA,CAAM,CAAA,0BAAA,EAA6B,OAAA,CAAQ,UAAU,eAAe;AAAA,CAAI,CAAA;AAAA,EACtF;AAEA,EAAA,MAAM,WAAW,IAAI,QAAA;AAAA,IACjB;AAAA,MACI,eAAA,EAAiB,KAAA;AAAA,MACjB,MAAA,EAAQ,sCAAA;AAAA,MACR,UAAA,EAAY;AAAA,KAChB;AAAA,IACA,OAAA,CAAQ;AAAA,GACZ;AAEA,EAAA,MAAM,IAAA,GAAO,IAAI,oBAAA,CAAY,aAAA,CAAc,iBAAiB,CAAA;AAC5D,EAAA,MAAM,IAAA,uBAAW,GAAA,CAAqB,CAAC,GAAG,eAAA,EAAiB,GAAG,aAAA,CAAc,OAAO,CAAC,CAAA;AAGpF,EAAA,WAAA,MAAiB,OAAO,KAAA,EAAO;AAG3B,IAAA,CAAC,MAAM,KAAA,CAAM,GAAG,CAAA,EAAG,WAAA,EAAY;AAG/B,IAAA,MAAM,aAAA,GAAgB,MAAM,QAAA,CAAS,GAAG,CAAA;AAExC,IAAA,MAAM,KAAA,GAAkB,MAAM,OAAA,CAAQ,aAAA,EAAe;AAAA,MACjD,UAAA,EAAY,aAAA,CAAc,UAAA,IAAc,CAAC,KAAA,EAAO,MAAA,EAAQ,MAAA,EAAQ,KAAA,EAAO,MAAA,EAAQ,MAAA,EAAQ,OAAA,EAAS,MAAM,CAAA;AAAA,MACtG,cAAA,EAAgB,cAAc,cAAA,IAAkB,KAAA;AAAA,MAChD,OAAO,aAAA,CAAc,OAAA;AAAA,MACrB,IAAA,EAAM,CAAC,GAAG,IAAI;AAAA,KACF,CAAA;AAEhB,IAAA,IAAI,OAAA,CAAQ,OAAA,IAAW,OAAA,CAAQ,WAAA,EAAa;AAExC,MAAA,OAAA,CAAQ,GAAA,CAAI;AAAA,MAAA,EAAW,OAAO,KAAA,CAAM,MAAM,CAAC,CAAA,UAAA,EAAa,aAAa,CAAA,CAAE,CAAA;AAAA,IAC3E;AAEA,IAAA,IAAI,QAAQ,WAAA,EAAa;AAErB,MAAA,OAAA,CAAQ,IAAI,KAAK,CAAA;AAAA,IACrB;AAEA,IAAA,MAAM,GAAA,GAAM,QAAA,CAAS,MAAA,CAAO,KAAA,CAAM,QAAQ,CAAC,CAAA;AAE3C,IAAA,KAAA,CAAM,OAAA,CAAQ,CAAC,IAAA,KAAS;AACpB,MAAA,IAAI,QAAQ,OAAA,EAAS;AAEjB,QAAA,OAAA,CAAQ,GAAA,CAAI,CAAA,aAAA,EAAgB,IAAI,CAAA,CAAE,CAAA;AAAA,MACtC;AAEA,MAAA,GAAA,CAAI,SAAA,CAAU,CAAA,EAAG,EAAE,QAAA,EAAU,eAAe,CAAA;AAE5C,MAAA,MAAM,oBAAA,GAAuB,kBAAA,CAAU,IAAA,EAAM,4BAAA,EAA6B,QAAQ,OAAO,CAAA;AAEzF,MAAA,IAAA,CAAK,QAAQ,oBAAA,CAAqB,GAAA,CAAI,CAAC,IAAA,KAAS,IAAA,CAAK,IAAI,CAAC,CAAA;AAE1D,MAAA,MAAM,2BAAA,GAA8B,kBAAA,CAAU,IAAA,EAAMA,6BAAAA,EAAoC,QAAQ,OAAO,CAAA;AAEvG,MAAA,IAAA,CAAK,QAAQ,2BAAA,CAA4B,GAAA,CAAI,CAAC,IAAA,KAAS,IAAA,CAAK,IAAI,CAAC,CAAA;AAAA,IACrE,CAAC,CAAA;AAAA,EACL;AAEA,EAAA,IAAI,QAAQ,OAAA,EAAS;AAEjB,IAAA,OAAA,CAAQ,IAAI,yBAAyB,CAAA;AAAA,EACzC;AAEA,EAAA,IAAI,QAAQ,WAAA,EAAa;AAErB,IAAA,OAAA,CAAQ,IAAI,IAAA,CAAK,SAAA,CAAU,IAAA,EAAM,IAAA,EAAM,CAAC,CAAC,CAAA;AAAA,EAC7C;AAEA,EAAA,MAAM,iBAAS,IAAA,CAAK,KAAA,CAAM,KAAK,SAAA,CAAU,IAAI,CAAC,CAA4B,CAAA;AAE1E,EAAA,MAAM,MAAA,GAAS,QAAQ,MAAA,IAAU,cAAA;AAEjC,EAAA,QAAA,CAAS,IAAA,EAAK;AAEd,EAAA,IAAI,QAAQ,OAAA,EAAS;AAEjB,IAAA,OAAA,CAAQ,GAAA,CAAI,CAAA,yBAAA,EAA4B,MAAM,CAAA,MAAA,CAAQ,CAAA;AAAA,EAC1D;AAGA,EAAA,MAAM,MAAM,OAAA,CAAQ,MAAM,GAAG,EAAE,SAAA,EAAW,MAAM,CAAA;AAEhD,EAAA,MAAM,UAAU,MAAA,EAAQ,IAAA,CAAK,UAAU,IAAA,EAAM,IAAA,EAAM,CAAC,CAAC,CAAA;AAGrD,EAAA,OAAA,CAAQ,GAAA,CAAI;AAAA,2CAAA,EAAgD,MAAM,CAAA,OAAA,CAAS,CAAA;AAC/E,CAAA;AAEA,IAAO,wBAAA,GAAQ;ACtIf,IAAM,cAAc,CAAC,UAAA,EAAoB,eAAA,GAAkB,OAAA,CAAQ,KAAI,KAAY;AAC/E,EAAA,IAAI,UAAA,CAAW,UAAU,CAAA,EAAG;AACxB,IAAA,MAAM,IAAI,MAAM,4BAA4B,CAAA;AAAA,EAChD;AAEA,EAAA,MAAM,gBAAA,GAAmB,UAAU,IAAA,CAAK;AAAA,IACpC,GAAA,EAAK,aAAa,eAAe;AAAA,GACpC,CAAA;AAED,EAAA,IAAI,cAAA,GAAiB,kBAAA;AAErB,EAAA,IAAI,gBAAA,EAAkB;AAElB,IAAA,MAAM,EAAE,WAAA,EAAa,QAAA,EAAU,IAAA,EAAM,aAAY,GAAI,gBAAA;AAGrD,IAAA,OAAA,CAAQ,IAAA,CAAK,CAAA,uBAAA,EAA0B,WAAqB,CAAA,CAAA,CAAG,CAAA;AAE/D,IAAA,IAAI,QAAA,CAAS,SAAS,QAAA,EAAU;AAE5B,MAAA,OAAA,CAAQ,KAAK,+EAA+E,CAAA;AAE5F,MAAA,cAAA,GAAiB,gBAAA;AAAA,IACrB;AAAA,EACJ,CAAA,MAAO;AAEH,IAAA,OAAA,CAAQ,KAAK,uBAAuB,CAAA;AAAA,EACxC;AAEA,EAAA,aAAA;AAAA,IACI,UAAA;AAAA,IACA,GAAG,cAAc,CAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GAmCrB;AAGA,EAAA,OAAA,CAAQ,GAAA,CAAI,CAAA,SAAA,EAAY,UAAU,CAAA,CAAA,CAAG,CAAA;AACzC,CAAA;AAEA,IAAO,oBAAA,GAAQ","file":"chunk-RGP6RTJO.mjs","sourcesContent":["import { lstat, mkdir, realpath, writeFile } from \"node:fs/promises\";\nimport { dirname, normalize } from \"node:path\";\nimport { pathToFileURL } from \"node:url\";\n\nimport type { WalkOptions } from \"@visulima/fs\";\nimport { collect } from \"@visulima/fs\";\n// eslint-disable-next-line import/no-extraneous-dependencies\nimport { MultiBar, Presets } from \"cli-progress\";\n\nimport { DEFAULT_EXCLUDE } from \"../../constants\";\nimport type { BaseDefinition } from \"../../exported\";\nimport jsDocumentCommentsToOpenApi from \"../../jsdoc/comments-to-open-api\";\nimport parseFile from \"../../parse-file\";\nimport SpecBuilder from \"../../spec-builder\";\nimport swaggerJsDocumentCommentsToOpenApi from \"../../swagger-jsdoc/comments-to-open-api\";\nimport validate from \"../../validate\";\n\nconst generateCommand = async (\n configName: string,\n paths: string[],\n options: {\n config?: string;\n output?: string;\n verbose?: boolean;\n veryVerbose?: boolean;\n },\n): Promise<void> => {\n let openapiConfig: {\n exclude: string[];\n extensions?: string[];\n followSymlinks?: boolean;\n include?: (RegExp | string)[];\n swaggerDefinition: BaseDefinition;\n } = {\n exclude: [],\n swaggerDefinition: {} as BaseDefinition,\n };\n\n try {\n let config = await import(pathToFileURL(normalize(options.config ?? configName)).href);\n\n if (config?.default) {\n config = config.default;\n }\n\n openapiConfig = config;\n } catch {\n throw new Error(`No config file found, on: ${options.config ?? \".openapirc.js\"}\\n`);\n }\n\n const multibar = new MultiBar(\n {\n clearOnComplete: false,\n format: \"{value}/{total} | {bar} | {filename}\",\n hideCursor: true,\n },\n Presets.shades_grey,\n );\n\n const spec = new SpecBuilder(openapiConfig.swaggerDefinition);\n const skip = new Set<RegExp | string>([...DEFAULT_EXCLUDE, ...openapiConfig.exclude]);\n\n // eslint-disable-next-line unicorn/prevent-abbreviations,no-loops/no-loops\n for await (const dir of paths) {\n // Check if the path is a directory\n // eslint-disable-next-line security/detect-non-literal-fs-filename,unicorn/no-await-expression-member\n (await lstat(dir)).isDirectory();\n\n // eslint-disable-next-line security/detect-non-literal-fs-filename\n const realDirectory = await realpath(dir);\n\n const files: string[] = await collect(realDirectory, {\n extensions: openapiConfig.extensions ?? [\".js\", \".cjs\", \".mjs\", \".ts\", \".tsx\", \".jsx\", \".yaml\", \".yml\"],\n followSymlinks: openapiConfig.followSymlinks ?? false,\n match: openapiConfig.include,\n skip: [...skip],\n } as WalkOptions);\n\n if (options.verbose ?? options.veryVerbose) {\n // eslint-disable-next-line no-console\n console.log(`\\nFound ${String(files.length)} files in ${realDirectory}`);\n }\n\n if (options.veryVerbose) {\n // eslint-disable-next-line no-console\n console.log(files);\n }\n\n const bar = multibar.create(files.length, 0);\n\n files.forEach((file) => {\n if (options.verbose) {\n // eslint-disable-next-line no-console\n console.log(`Parsing file ${file}`);\n }\n\n bar.increment(1, { filename: realDirectory });\n\n const parsedJsDocumentFile = parseFile(file, jsDocumentCommentsToOpenApi, options.verbose);\n\n spec.addData(parsedJsDocumentFile.map((item) => item.spec));\n\n const parsedSwaggerJsDocumentFile = parseFile(file, swaggerJsDocumentCommentsToOpenApi, options.verbose);\n\n spec.addData(parsedSwaggerJsDocumentFile.map((item) => item.spec));\n });\n }\n\n if (options.verbose) {\n // eslint-disable-next-line no-console\n console.log(\"Validating swagger spec\");\n }\n\n if (options.veryVerbose) {\n // eslint-disable-next-line no-console\n console.log(JSON.stringify(spec, null, 2));\n }\n\n await validate(JSON.parse(JSON.stringify(spec)) as Record<string, unknown>);\n\n const output = options.output ?? \"swagger.json\";\n\n multibar.stop();\n\n if (options.verbose) {\n // eslint-disable-next-line no-console\n console.log(`Written swagger spec to \"${output}\" file`);\n }\n\n // eslint-disable-next-line security/detect-non-literal-fs-filename\n await mkdir(dirname(output), { recursive: true });\n // eslint-disable-next-line security/detect-non-literal-fs-filename\n await writeFile(output, JSON.stringify(spec, null, 2));\n\n // eslint-disable-next-line no-console\n console.log(`\\nSwagger specification is ready, check the \"${output}\" file.`);\n};\n\nexport default generateCommand;\n","import { existsSync, realpathSync, writeFileSync } from \"node:fs\";\n\nimport readPkgUp from \"read-pkg-up\";\n\nconst initCommand = (configName: string, packageJsonPath = process.cwd()): void => {\n if (existsSync(configName)) {\n throw new Error(\"Config file already exists\");\n }\n\n const foundPackageJson = readPkgUp.sync({\n cwd: realpathSync(packageJsonPath),\n });\n\n let exportTemplate = \"module.exports =\";\n\n if (foundPackageJson) {\n // eslint-disable-next-line @typescript-eslint/naming-convention\n const { packageJson: package_, path: packagePath } = foundPackageJson;\n\n // eslint-disable-next-line no-console\n console.info(`Found package.json at \"${packagePath as string}\"`);\n\n if (package_.type === \"module\") {\n // eslint-disable-next-line no-console\n console.info(\"Found package.json with type: module, using ES6 as export for the config file\");\n\n exportTemplate = \"export default\";\n }\n } else {\n // eslint-disable-next-line no-console\n console.info(\"No package.json found\");\n }\n\n writeFileSync(\n configName,\n `${exportTemplate} {\n exclude: [\n 'coverage/**',\n '.github/**',\n 'packages/*/test{,s}/**',\n '**/*.d.ts',\n 'test{,s}/**',\n 'test{,-*}.{js,cjs,mjs,ts,tsx,jsx,yaml,yml}',\n '**/*{.,-}test.{js,cjs,mjs,ts,tsx,jsx,yaml,yml}',\n '**/__tests__/**',\n '**/{ava,babel,nyc}.config.{js,cjs,mjs}',\n '**/jest.config.{js,cjs,mjs,ts}',\n '**/{karma,rollup,webpack}.config.js',\n '**/.{eslint,mocha}rc.{js,cjs}',\n '**/.{travis,yarnrc}.yml',\n '**/{docker-compose,docker}.yml',\n '**/.yamllint.{yaml,yml}',\n '**/node_modules/**',\n '**/pnpm-lock.yaml',\n '**/pnpm-workspace.yaml',\n '**/{package,package-lock}.json',\n '**/yarn.lock',\n '**/package.json5',\n '**/.next/**',\n ],\n followSymlinks: false,\n swaggerDefinition: {\n openapi: '3.0.0',\n info: {\n title: 'API',\n version: '1.0.0',\n },\n },\n};\n`,\n );\n\n // eslint-disable-next-line no-console\n console.log(`Created \"${configName}\"`);\n};\n\nexport default initCommand;\n"]}
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var chunkWEX5DMNT_js = require('./chunk-WEX5DMNT.js');
3
+ var chunkPTFTJY7I_js = require('./chunk-PTFTJY7I.js');
4
4
  var promises = require('fs/promises');
5
5
  var path = require('path');
6
6
  var url = require('url');
@@ -35,12 +35,12 @@ var generateCommand = async (configName, paths, options) => {
35
35
  },
36
36
  cliProgress.Presets.shades_grey
37
37
  );
38
- const spec = new chunkWEX5DMNT_js.spec_builder_default(openapiConfig.swaggerDefinition);
39
- const skip = /* @__PURE__ */ new Set([...chunkWEX5DMNT_js.DEFAULT_EXCLUDE, ...openapiConfig.exclude]);
38
+ const spec = new chunkPTFTJY7I_js.spec_builder_default(openapiConfig.swaggerDefinition);
39
+ const skip = /* @__PURE__ */ new Set([...chunkPTFTJY7I_js.DEFAULT_EXCLUDE, ...openapiConfig.exclude]);
40
40
  for await (const dir of paths) {
41
41
  (await promises.lstat(dir)).isDirectory();
42
42
  const realDirectory = await promises.realpath(dir);
43
- const files = await chunkWEX5DMNT_js.collect(realDirectory, {
43
+ const files = await chunkPTFTJY7I_js.collect(realDirectory, {
44
44
  extensions: openapiConfig.extensions ?? [".js", ".cjs", ".mjs", ".ts", ".tsx", ".jsx", ".yaml", ".yml"],
45
45
  followSymlinks: openapiConfig.followSymlinks ?? false,
46
46
  match: openapiConfig.include,
@@ -59,9 +59,9 @@ Found ${String(files.length)} files in ${realDirectory}`);
59
59
  console.log(`Parsing file ${file}`);
60
60
  }
61
61
  bar.increment(1, { filename: realDirectory });
62
- const parsedJsDocumentFile = chunkWEX5DMNT_js.parse_file_default(file, chunkWEX5DMNT_js.comments_to_open_api_default, options.verbose);
62
+ const parsedJsDocumentFile = chunkPTFTJY7I_js.parse_file_default(file, chunkPTFTJY7I_js.comments_to_open_api_default, options.verbose);
63
63
  spec.addData(parsedJsDocumentFile.map((item) => item.spec));
64
- const parsedSwaggerJsDocumentFile = chunkWEX5DMNT_js.parse_file_default(file, chunkWEX5DMNT_js.comments_to_open_api_default2, options.verbose);
64
+ const parsedSwaggerJsDocumentFile = chunkPTFTJY7I_js.parse_file_default(file, chunkPTFTJY7I_js.comments_to_open_api_default2, options.verbose);
65
65
  spec.addData(parsedSwaggerJsDocumentFile.map((item) => item.spec));
66
66
  });
67
67
  }
@@ -71,7 +71,7 @@ Found ${String(files.length)} files in ${realDirectory}`);
71
71
  if (options.veryVerbose) {
72
72
  console.log(JSON.stringify(spec, null, 2));
73
73
  }
74
- await chunkWEX5DMNT_js.validate_default(JSON.parse(JSON.stringify(spec)));
74
+ await chunkPTFTJY7I_js.validate_default(JSON.parse(JSON.stringify(spec)));
75
75
  const output = options.output ?? "swagger.json";
76
76
  multibar.stop();
77
77
  if (options.verbose) {
@@ -145,5 +145,5 @@ var init_command_default = initCommand;
145
145
 
146
146
  exports.generate_command_default = generate_command_default;
147
147
  exports.init_command_default = init_command_default;
148
- //# sourceMappingURL=chunk-QK4CXNUY.js.map
149
- //# sourceMappingURL=chunk-QK4CXNUY.js.map
148
+ //# sourceMappingURL=chunk-RVCK3H3U.js.map
149
+ //# sourceMappingURL=chunk-RVCK3H3U.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/cli/command/generate-command.ts","../src/cli/command/init-command.ts"],"names":["pathToFileURL","normalize","MultiBar","Presets","spec_builder_default","DEFAULT_EXCLUDE","lstat","realpath","collect","parse_file_default","comments_to_open_api_default","validate_default","mkdir","dirname","writeFile","existsSync","readPkgUp","realpathSync","writeFileSync"],"mappings":"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","file":"chunk-QK4CXNUY.js","sourcesContent":["import { lstat, mkdir, realpath, writeFile } from \"node:fs/promises\";\nimport { dirname, normalize } from \"node:path\";\nimport { pathToFileURL } from \"node:url\";\n\nimport type { WalkOptions } from \"@visulima/fs\";\nimport { collect } from \"@visulima/fs\";\n// eslint-disable-next-line import/no-extraneous-dependencies\nimport { MultiBar, Presets } from \"cli-progress\";\n\nimport { DEFAULT_EXCLUDE } from \"../../constants\";\nimport type { BaseDefinition } from \"../../exported\";\nimport jsDocumentCommentsToOpenApi from \"../../jsdoc/comments-to-open-api\";\nimport parseFile from \"../../parse-file\";\nimport SpecBuilder from \"../../spec-builder\";\nimport swaggerJsDocumentCommentsToOpenApi from \"../../swagger-jsdoc/comments-to-open-api\";\nimport validate from \"../../validate\";\n\nconst generateCommand = async (\n configName: string,\n paths: string[],\n options: {\n config?: string;\n output?: string;\n verbose?: boolean;\n veryVerbose?: boolean;\n },\n): Promise<void> => {\n let openapiConfig: {\n exclude: string[];\n extensions?: string[];\n followSymlinks?: boolean;\n include?: (RegExp | string)[];\n swaggerDefinition: BaseDefinition;\n } = {\n exclude: [],\n swaggerDefinition: {} as BaseDefinition,\n };\n\n try {\n let config = await import(pathToFileURL(normalize(options.config ?? configName)).href);\n\n if (config?.default) {\n config = config.default;\n }\n\n openapiConfig = config;\n } catch {\n throw new Error(`No config file found, on: ${options.config ?? \".openapirc.js\"}\\n`);\n }\n\n const multibar = new MultiBar(\n {\n clearOnComplete: false,\n format: \"{value}/{total} | {bar} | {filename}\",\n hideCursor: true,\n },\n Presets.shades_grey,\n );\n\n const spec = new SpecBuilder(openapiConfig.swaggerDefinition);\n const skip = new Set<RegExp | string>([...DEFAULT_EXCLUDE, ...openapiConfig.exclude]);\n\n // eslint-disable-next-line unicorn/prevent-abbreviations,no-loops/no-loops\n for await (const dir of paths) {\n // Check if the path is a directory\n // eslint-disable-next-line security/detect-non-literal-fs-filename,unicorn/no-await-expression-member\n (await lstat(dir)).isDirectory();\n\n // eslint-disable-next-line security/detect-non-literal-fs-filename\n const realDirectory = await realpath(dir);\n\n const files: string[] = await collect(realDirectory, {\n extensions: openapiConfig.extensions ?? [\".js\", \".cjs\", \".mjs\", \".ts\", \".tsx\", \".jsx\", \".yaml\", \".yml\"],\n followSymlinks: openapiConfig.followSymlinks ?? false,\n match: openapiConfig.include,\n skip: [...skip],\n } as WalkOptions);\n\n if (options.verbose ?? options.veryVerbose) {\n // eslint-disable-next-line no-console\n console.log(`\\nFound ${String(files.length)} files in ${realDirectory}`);\n }\n\n if (options.veryVerbose) {\n // eslint-disable-next-line no-console\n console.log(files);\n }\n\n const bar = multibar.create(files.length, 0);\n\n files.forEach((file) => {\n if (options.verbose) {\n // eslint-disable-next-line no-console\n console.log(`Parsing file ${file}`);\n }\n\n bar.increment(1, { filename: realDirectory });\n\n const parsedJsDocumentFile = parseFile(file, jsDocumentCommentsToOpenApi, options.verbose);\n\n spec.addData(parsedJsDocumentFile.map((item) => item.spec));\n\n const parsedSwaggerJsDocumentFile = parseFile(file, swaggerJsDocumentCommentsToOpenApi, options.verbose);\n\n spec.addData(parsedSwaggerJsDocumentFile.map((item) => item.spec));\n });\n }\n\n if (options.verbose) {\n // eslint-disable-next-line no-console\n console.log(\"Validating swagger spec\");\n }\n\n if (options.veryVerbose) {\n // eslint-disable-next-line no-console\n console.log(JSON.stringify(spec, null, 2));\n }\n\n await validate(JSON.parse(JSON.stringify(spec)) as Record<string, unknown>);\n\n const output = options.output ?? \"swagger.json\";\n\n multibar.stop();\n\n if (options.verbose) {\n // eslint-disable-next-line no-console\n console.log(`Written swagger spec to \"${output}\" file`);\n }\n\n // eslint-disable-next-line security/detect-non-literal-fs-filename\n await mkdir(dirname(output), { recursive: true });\n // eslint-disable-next-line security/detect-non-literal-fs-filename\n await writeFile(output, JSON.stringify(spec, null, 2));\n\n // eslint-disable-next-line no-console\n console.log(`\\nSwagger specification is ready, check the \"${output}\" file.`);\n};\n\nexport default generateCommand;\n","import { existsSync, realpathSync, writeFileSync } from \"node:fs\";\n\nimport readPkgUp from \"read-pkg-up\";\n\nconst initCommand = (configName: string, packageJsonPath = process.cwd()): void => {\n if (existsSync(configName)) {\n throw new Error(\"Config file already exists\");\n }\n\n const foundPackageJson = readPkgUp.sync({\n cwd: realpathSync(packageJsonPath),\n });\n\n let exportTemplate = \"module.exports =\";\n\n if (foundPackageJson) {\n // eslint-disable-next-line @typescript-eslint/naming-convention\n const { packageJson: package_, path: packagePath } = foundPackageJson;\n\n // eslint-disable-next-line no-console\n console.info(`Found package.json at \"${packagePath as string}\"`);\n\n if (package_.type === \"module\") {\n // eslint-disable-next-line no-console\n console.info(\"Found package.json with type: module, using ES6 as export for the config file\");\n\n exportTemplate = \"export default\";\n }\n } else {\n // eslint-disable-next-line no-console\n console.info(\"No package.json found\");\n }\n\n writeFileSync(\n configName,\n `${exportTemplate} {\n exclude: [\n 'coverage/**',\n '.github/**',\n 'packages/*/test{,s}/**',\n '**/*.d.ts',\n 'test{,s}/**',\n 'test{,-*}.{js,cjs,mjs,ts,tsx,jsx,yaml,yml}',\n '**/*{.,-}test.{js,cjs,mjs,ts,tsx,jsx,yaml,yml}',\n '**/__tests__/**',\n '**/{ava,babel,nyc}.config.{js,cjs,mjs}',\n '**/jest.config.{js,cjs,mjs,ts}',\n '**/{karma,rollup,webpack}.config.js',\n '**/.{eslint,mocha}rc.{js,cjs}',\n '**/.{travis,yarnrc}.yml',\n '**/{docker-compose,docker}.yml',\n '**/.yamllint.{yaml,yml}',\n '**/node_modules/**',\n '**/pnpm-lock.yaml',\n '**/pnpm-workspace.yaml',\n '**/{package,package-lock}.json',\n '**/yarn.lock',\n '**/package.json5',\n '**/.next/**',\n ],\n followSymlinks: false,\n swaggerDefinition: {\n openapi: '3.0.0',\n info: {\n title: 'API',\n version: '1.0.0',\n },\n },\n};\n`,\n );\n\n // eslint-disable-next-line no-console\n console.log(`Created \"${configName}\"`);\n};\n\nexport default initCommand;\n"]}
1
+ {"version":3,"sources":["../src/cli/command/generate-command.ts","../src/cli/command/init-command.ts"],"names":["pathToFileURL","normalize","MultiBar","Presets","spec_builder_default","DEFAULT_EXCLUDE","lstat","realpath","collect","parse_file_default","comments_to_open_api_default","validate_default","mkdir","dirname","writeFile","existsSync","readPkgUp","realpathSync","writeFileSync"],"mappings":"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","file":"chunk-RVCK3H3U.js","sourcesContent":["import { lstat, mkdir, realpath, writeFile } from \"node:fs/promises\";\nimport { dirname, normalize } from \"node:path\";\nimport { pathToFileURL } from \"node:url\";\n\nimport type { WalkOptions } from \"@visulima/fs\";\nimport { collect } from \"@visulima/fs\";\n// eslint-disable-next-line import/no-extraneous-dependencies\nimport { MultiBar, Presets } from \"cli-progress\";\n\nimport { DEFAULT_EXCLUDE } from \"../../constants\";\nimport type { BaseDefinition } from \"../../exported\";\nimport jsDocumentCommentsToOpenApi from \"../../jsdoc/comments-to-open-api\";\nimport parseFile from \"../../parse-file\";\nimport SpecBuilder from \"../../spec-builder\";\nimport swaggerJsDocumentCommentsToOpenApi from \"../../swagger-jsdoc/comments-to-open-api\";\nimport validate from \"../../validate\";\n\nconst generateCommand = async (\n configName: string,\n paths: string[],\n options: {\n config?: string;\n output?: string;\n verbose?: boolean;\n veryVerbose?: boolean;\n },\n): Promise<void> => {\n let openapiConfig: {\n exclude: string[];\n extensions?: string[];\n followSymlinks?: boolean;\n include?: (RegExp | string)[];\n swaggerDefinition: BaseDefinition;\n } = {\n exclude: [],\n swaggerDefinition: {} as BaseDefinition,\n };\n\n try {\n let config = await import(pathToFileURL(normalize(options.config ?? configName)).href);\n\n if (config?.default) {\n config = config.default;\n }\n\n openapiConfig = config;\n } catch {\n throw new Error(`No config file found, on: ${options.config ?? \".openapirc.js\"}\\n`);\n }\n\n const multibar = new MultiBar(\n {\n clearOnComplete: false,\n format: \"{value}/{total} | {bar} | {filename}\",\n hideCursor: true,\n },\n Presets.shades_grey,\n );\n\n const spec = new SpecBuilder(openapiConfig.swaggerDefinition);\n const skip = new Set<RegExp | string>([...DEFAULT_EXCLUDE, ...openapiConfig.exclude]);\n\n // eslint-disable-next-line unicorn/prevent-abbreviations,no-loops/no-loops\n for await (const dir of paths) {\n // Check if the path is a directory\n // eslint-disable-next-line security/detect-non-literal-fs-filename,unicorn/no-await-expression-member\n (await lstat(dir)).isDirectory();\n\n // eslint-disable-next-line security/detect-non-literal-fs-filename\n const realDirectory = await realpath(dir);\n\n const files: string[] = await collect(realDirectory, {\n extensions: openapiConfig.extensions ?? [\".js\", \".cjs\", \".mjs\", \".ts\", \".tsx\", \".jsx\", \".yaml\", \".yml\"],\n followSymlinks: openapiConfig.followSymlinks ?? false,\n match: openapiConfig.include,\n skip: [...skip],\n } as WalkOptions);\n\n if (options.verbose ?? options.veryVerbose) {\n // eslint-disable-next-line no-console\n console.log(`\\nFound ${String(files.length)} files in ${realDirectory}`);\n }\n\n if (options.veryVerbose) {\n // eslint-disable-next-line no-console\n console.log(files);\n }\n\n const bar = multibar.create(files.length, 0);\n\n files.forEach((file) => {\n if (options.verbose) {\n // eslint-disable-next-line no-console\n console.log(`Parsing file ${file}`);\n }\n\n bar.increment(1, { filename: realDirectory });\n\n const parsedJsDocumentFile = parseFile(file, jsDocumentCommentsToOpenApi, options.verbose);\n\n spec.addData(parsedJsDocumentFile.map((item) => item.spec));\n\n const parsedSwaggerJsDocumentFile = parseFile(file, swaggerJsDocumentCommentsToOpenApi, options.verbose);\n\n spec.addData(parsedSwaggerJsDocumentFile.map((item) => item.spec));\n });\n }\n\n if (options.verbose) {\n // eslint-disable-next-line no-console\n console.log(\"Validating swagger spec\");\n }\n\n if (options.veryVerbose) {\n // eslint-disable-next-line no-console\n console.log(JSON.stringify(spec, null, 2));\n }\n\n await validate(JSON.parse(JSON.stringify(spec)) as Record<string, unknown>);\n\n const output = options.output ?? \"swagger.json\";\n\n multibar.stop();\n\n if (options.verbose) {\n // eslint-disable-next-line no-console\n console.log(`Written swagger spec to \"${output}\" file`);\n }\n\n // eslint-disable-next-line security/detect-non-literal-fs-filename\n await mkdir(dirname(output), { recursive: true });\n // eslint-disable-next-line security/detect-non-literal-fs-filename\n await writeFile(output, JSON.stringify(spec, null, 2));\n\n // eslint-disable-next-line no-console\n console.log(`\\nSwagger specification is ready, check the \"${output}\" file.`);\n};\n\nexport default generateCommand;\n","import { existsSync, realpathSync, writeFileSync } from \"node:fs\";\n\nimport readPkgUp from \"read-pkg-up\";\n\nconst initCommand = (configName: string, packageJsonPath = process.cwd()): void => {\n if (existsSync(configName)) {\n throw new Error(\"Config file already exists\");\n }\n\n const foundPackageJson = readPkgUp.sync({\n cwd: realpathSync(packageJsonPath),\n });\n\n let exportTemplate = \"module.exports =\";\n\n if (foundPackageJson) {\n // eslint-disable-next-line @typescript-eslint/naming-convention\n const { packageJson: package_, path: packagePath } = foundPackageJson;\n\n // eslint-disable-next-line no-console\n console.info(`Found package.json at \"${packagePath as string}\"`);\n\n if (package_.type === \"module\") {\n // eslint-disable-next-line no-console\n console.info(\"Found package.json with type: module, using ES6 as export for the config file\");\n\n exportTemplate = \"export default\";\n }\n } else {\n // eslint-disable-next-line no-console\n console.info(\"No package.json found\");\n }\n\n writeFileSync(\n configName,\n `${exportTemplate} {\n exclude: [\n 'coverage/**',\n '.github/**',\n 'packages/*/test{,s}/**',\n '**/*.d.ts',\n 'test{,s}/**',\n 'test{,-*}.{js,cjs,mjs,ts,tsx,jsx,yaml,yml}',\n '**/*{.,-}test.{js,cjs,mjs,ts,tsx,jsx,yaml,yml}',\n '**/__tests__/**',\n '**/{ava,babel,nyc}.config.{js,cjs,mjs}',\n '**/jest.config.{js,cjs,mjs,ts}',\n '**/{karma,rollup,webpack}.config.js',\n '**/.{eslint,mocha}rc.{js,cjs}',\n '**/.{travis,yarnrc}.yml',\n '**/{docker-compose,docker}.yml',\n '**/.yamllint.{yaml,yml}',\n '**/node_modules/**',\n '**/pnpm-lock.yaml',\n '**/pnpm-workspace.yaml',\n '**/{package,package-lock}.json',\n '**/yarn.lock',\n '**/package.json5',\n '**/.next/**',\n ],\n followSymlinks: false,\n swaggerDefinition: {\n openapi: '3.0.0',\n info: {\n title: 'API',\n version: '1.0.0',\n },\n },\n};\n`,\n );\n\n // eslint-disable-next-line no-console\n console.log(`Created \"${configName}\"`);\n};\n\nexport default initCommand;\n"]}
@@ -1,13 +1,13 @@
1
1
  'use strict';
2
2
 
3
- var chunkQK4CXNUY_js = require('../../chunk-QK4CXNUY.js');
4
- require('../../chunk-WEX5DMNT.js');
3
+ var chunkRVCK3H3U_js = require('../../chunk-RVCK3H3U.js');
4
+ require('../../chunk-PTFTJY7I.js');
5
5
  var process = require('process');
6
6
 
7
7
  var generateCommand = (program, commandName = "generate", configName = ".openapirc.js") => {
8
8
  program.command(commandName).description("Generates OpenAPI (Swagger) documentation from JSDoc's").usage("[options] <path ...>").argument("[path ...]", "Paths to files or directories to parse").option("-c, --config [.openapirc.js]", "@visulima/jsdoc-open-api config file path.").option("-o, --output [swaggerSpec.json]", "Output swagger specification.").option("-v, --verbose", "Verbose output.").option("-d, --very-verbose", "Very verbose output.").action(async (paths, options) => {
9
9
  try {
10
- await chunkQK4CXNUY_js.generate_command_default(configName, paths, options);
10
+ await chunkRVCK3H3U_js.generate_command_default(configName, paths, options);
11
11
  } catch (error) {
12
12
  console.error(error);
13
13
  process.exit(1);
@@ -18,7 +18,7 @@ var generate_command_default2 = generateCommand;
18
18
  var initCommand = (program, commandName = "init", description = "Inits a pre-configured @visulima/jsdoc-open-api config file.", configName = ".openapirc.js") => {
19
19
  program.command(commandName).description(description).action(() => {
20
20
  try {
21
- chunkQK4CXNUY_js.init_command_default(configName);
21
+ chunkRVCK3H3U_js.init_command_default(configName);
22
22
  } catch (error) {
23
23
  console.error(error);
24
24
  process.exit(1);
@@ -1,5 +1,5 @@
1
- import { generate_command_default, init_command_default } from '../../chunk-KI63G47G.mjs';
2
- import '../../chunk-46IWFMQ2.mjs';
1
+ import { generate_command_default, init_command_default } from '../../chunk-RGP6RTJO.mjs';
2
+ import '../../chunk-2T6HMUIL.mjs';
3
3
  import { exit } from 'process';
4
4
 
5
5
  var generateCommand = (program, commandName = "generate", configName = ".openapirc.js") => {
package/dist/cli/index.js CHANGED
@@ -1,17 +1,17 @@
1
1
  'use strict';
2
2
 
3
- var chunkQK4CXNUY_js = require('../chunk-QK4CXNUY.js');
4
- require('../chunk-WEX5DMNT.js');
3
+ var chunkRVCK3H3U_js = require('../chunk-RVCK3H3U.js');
4
+ require('../chunk-PTFTJY7I.js');
5
5
 
6
6
 
7
7
 
8
8
  Object.defineProperty(exports, "generateCommand", {
9
9
  enumerable: true,
10
- get: function () { return chunkQK4CXNUY_js.generate_command_default; }
10
+ get: function () { return chunkRVCK3H3U_js.generate_command_default; }
11
11
  });
12
12
  Object.defineProperty(exports, "initCommand", {
13
13
  enumerable: true,
14
- get: function () { return chunkQK4CXNUY_js.init_command_default; }
14
+ get: function () { return chunkRVCK3H3U_js.init_command_default; }
15
15
  });
16
16
  //# sourceMappingURL=index.js.map
17
17
  //# sourceMappingURL=index.js.map
@@ -1,4 +1,4 @@
1
- export { generate_command_default as generateCommand, init_command_default as initCommand } from '../chunk-KI63G47G.mjs';
2
- import '../chunk-46IWFMQ2.mjs';
1
+ export { generate_command_default as generateCommand, init_command_default as initCommand } from '../chunk-RGP6RTJO.mjs';
2
+ import '../chunk-2T6HMUIL.mjs';
3
3
  //# sourceMappingURL=index.mjs.map
4
4
  //# sourceMappingURL=index.mjs.map
package/dist/index.js CHANGED
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var chunkWEX5DMNT_js = require('./chunk-WEX5DMNT.js');
3
+ var chunkPTFTJY7I_js = require('./chunk-PTFTJY7I.js');
4
4
  var fs = require('fs');
5
5
  var path = require('path');
6
6
  var process = require('process');
@@ -25,12 +25,12 @@ var SwaggerCompilerPlugin = class {
25
25
  this.ignore = options.ignore ?? [];
26
26
  }
27
27
  apply(compiler) {
28
- const skip = /* @__PURE__ */ new Set([...chunkWEX5DMNT_js.DEFAULT_EXCLUDE, ...this.ignore]);
28
+ const skip = /* @__PURE__ */ new Set([...chunkPTFTJY7I_js.DEFAULT_EXCLUDE, ...this.ignore]);
29
29
  compiler.hooks.make.tapAsync("SwaggerCompilerPlugin", async (_, callback) => {
30
30
  console.log("Build paused, switching to swagger build");
31
- const spec = new chunkWEX5DMNT_js.spec_builder_default(this.swaggerDefinition);
31
+ const spec = new chunkPTFTJY7I_js.spec_builder_default(this.swaggerDefinition);
32
32
  for await (const dir of this.sources) {
33
- const files = await chunkWEX5DMNT_js.collect(dir, {
33
+ const files = await chunkPTFTJY7I_js.collect(dir, {
34
34
  extensions: [".js", ".cjs", ".mjs", ".ts", ".tsx", ".jsx", ".yaml", ".yml"],
35
35
  includeDirs: false,
36
36
  skip: [...skip]
@@ -44,9 +44,9 @@ var SwaggerCompilerPlugin = class {
44
44
  console.log(`Parsing file ${file}`);
45
45
  }
46
46
  try {
47
- const parsedJsDocumentFile = chunkWEX5DMNT_js.parse_file_default(file, chunkWEX5DMNT_js.comments_to_open_api_default, this.verbose);
47
+ const parsedJsDocumentFile = chunkPTFTJY7I_js.parse_file_default(file, chunkPTFTJY7I_js.comments_to_open_api_default, this.verbose);
48
48
  spec.addData(parsedJsDocumentFile.map((item) => item.spec));
49
- const parsedSwaggerJsDocumentFile = chunkWEX5DMNT_js.parse_file_default(file, chunkWEX5DMNT_js.comments_to_open_api_default2, this.verbose);
49
+ const parsedSwaggerJsDocumentFile = chunkPTFTJY7I_js.parse_file_default(file, chunkPTFTJY7I_js.comments_to_open_api_default2, this.verbose);
50
50
  spec.addData(parsedSwaggerJsDocumentFile.map((item) => item.spec));
51
51
  } catch (error) {
52
52
  console.error(error);
@@ -59,7 +59,7 @@ var SwaggerCompilerPlugin = class {
59
59
  console.log("Validating swagger spec");
60
60
  console.log(JSON.stringify(spec, null, 2));
61
61
  }
62
- await chunkWEX5DMNT_js.validate_default(JSON.parse(JSON.stringify(spec)));
62
+ await chunkPTFTJY7I_js.validate_default(JSON.parse(JSON.stringify(spec)));
63
63
  } catch (error) {
64
64
  console.error(error.toJSON());
65
65
  process.exit(1);
@@ -83,23 +83,23 @@ var swagger_compiler_plugin_default = SwaggerCompilerPlugin;
83
83
 
84
84
  Object.defineProperty(exports, "SpecBuilder", {
85
85
  enumerable: true,
86
- get: function () { return chunkWEX5DMNT_js.spec_builder_default; }
86
+ get: function () { return chunkPTFTJY7I_js.spec_builder_default; }
87
87
  });
88
88
  Object.defineProperty(exports, "jsDocumentCommentsToOpenApi", {
89
89
  enumerable: true,
90
- get: function () { return chunkWEX5DMNT_js.comments_to_open_api_default; }
90
+ get: function () { return chunkPTFTJY7I_js.comments_to_open_api_default; }
91
91
  });
92
92
  Object.defineProperty(exports, "parseFile", {
93
93
  enumerable: true,
94
- get: function () { return chunkWEX5DMNT_js.parse_file_default; }
94
+ get: function () { return chunkPTFTJY7I_js.parse_file_default; }
95
95
  });
96
96
  Object.defineProperty(exports, "swaggerJsDocumentCommentsToOpenApi", {
97
97
  enumerable: true,
98
- get: function () { return chunkWEX5DMNT_js.comments_to_open_api_default2; }
98
+ get: function () { return chunkPTFTJY7I_js.comments_to_open_api_default2; }
99
99
  });
100
100
  Object.defineProperty(exports, "yamlLoc", {
101
101
  enumerable: true,
102
- get: function () { return chunkWEX5DMNT_js.yaml_loc_default; }
102
+ get: function () { return chunkPTFTJY7I_js.yaml_loc_default; }
103
103
  });
104
104
  exports.SwaggerCompilerPlugin = swagger_compiler_plugin_default;
105
105
  //# sourceMappingURL=index.js.map
package/dist/index.mjs CHANGED
@@ -1,5 +1,5 @@
1
- import { DEFAULT_EXCLUDE, spec_builder_default, collect, parse_file_default, comments_to_open_api_default, comments_to_open_api_default2, validate_default } from './chunk-46IWFMQ2.mjs';
2
- export { spec_builder_default as SpecBuilder, comments_to_open_api_default as jsDocumentCommentsToOpenApi, parse_file_default as parseFile, comments_to_open_api_default2 as swaggerJsDocumentCommentsToOpenApi, yaml_loc_default as yamlLoc } from './chunk-46IWFMQ2.mjs';
1
+ import { DEFAULT_EXCLUDE, spec_builder_default, collect, parse_file_default, comments_to_open_api_default, comments_to_open_api_default2, validate_default } from './chunk-2T6HMUIL.mjs';
2
+ export { spec_builder_default as SpecBuilder, comments_to_open_api_default as jsDocumentCommentsToOpenApi, parse_file_default as parseFile, comments_to_open_api_default2 as swaggerJsDocumentCommentsToOpenApi, yaml_loc_default as yamlLoc } from './chunk-2T6HMUIL.mjs';
3
3
  import { mkdir, writeFile } from 'fs';
4
4
  import { dirname } from 'path';
5
5
  import { exit } from 'process';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@visulima/jsdoc-open-api",
3
- "version": "3.0.0-alpha.2",
3
+ "version": "3.0.0-alpha.4",
4
4
  "description": "Generates swagger doc based on JSDoc.",
5
5
  "keywords": [
6
6
  "visulima",
@@ -88,16 +88,15 @@
88
88
  ],
89
89
  "dependencies": {
90
90
  "@apidevtools/swagger-parser": "^12.1.0",
91
- "comment-parser": "^1.4.1",
91
+ "comment-parser": "^1.4.3",
92
92
  "lodash.mergewith": "^4.6.2",
93
- "publint": "^0.3.15",
94
93
  "read-pkg-up": "^7.0.1",
95
94
  "yaml": "^2.8.2"
96
95
  },
97
96
  "optionalDependencies": {
98
97
  "cli-progress": "^3.12.0",
99
98
  "commander": "^14.0.2",
100
- "webpack": "^5.103.0"
99
+ "webpack": "^5.104.1"
101
100
  },
102
101
  "engines": {
103
102
  "node": ">=22.13 <=25.x"