@visulima/jsdoc-open-api 2.0.95 → 3.0.0-alpha.10

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.
Files changed (111) hide show
  1. package/CHANGELOG.md +158 -0
  2. package/LICENSE.md +1 -1
  3. package/README.md +33 -28
  4. package/dist/cli/command/generate-command.d.cts +7 -0
  5. package/dist/cli/command/generate-command.d.mts +7 -0
  6. package/dist/cli/command/generate-command.d.ts +7 -0
  7. package/dist/cli/command/init-command.d.cts +2 -0
  8. package/dist/cli/command/init-command.d.mts +2 -0
  9. package/dist/cli/command/init-command.d.ts +2 -0
  10. package/dist/cli/commander/command/generate-command.d.cts +3 -0
  11. package/dist/cli/commander/command/generate-command.d.mts +3 -0
  12. package/dist/cli/commander/command/generate-command.d.ts +3 -0
  13. package/dist/cli/commander/command/init-command.d.cts +3 -0
  14. package/dist/cli/commander/command/init-command.d.mts +3 -0
  15. package/dist/cli/commander/command/init-command.d.ts +3 -0
  16. package/dist/cli/commander/index.cjs +11 -0
  17. package/dist/cli/commander/index.d.cts +2 -0
  18. package/dist/cli/commander/index.d.mts +2 -7
  19. package/dist/cli/commander/index.d.ts +2 -7
  20. package/dist/cli/commander/index.mjs +2 -30
  21. package/dist/cli/index.cjs +11 -0
  22. package/dist/cli/index.d.cts +2 -0
  23. package/dist/cli/index.d.mts +2 -10
  24. package/dist/cli/index.d.ts +2 -10
  25. package/dist/cli/index.mjs +2 -4
  26. package/dist/constants.d.cts +1 -0
  27. package/dist/constants.d.mts +1 -0
  28. package/dist/constants.d.ts +1 -0
  29. package/dist/exported.d.cts +198 -0
  30. package/dist/exported.d.mts +198 -0
  31. package/dist/exported.d.ts +198 -0
  32. package/dist/index.cjs +19 -0
  33. package/dist/index.d.cts +7 -0
  34. package/dist/index.d.mts +7 -248
  35. package/dist/index.d.ts +7 -248
  36. package/dist/index.mjs +6 -85
  37. package/dist/jsdoc/comments-to-open-api.d.cts +6 -0
  38. package/dist/jsdoc/comments-to-open-api.d.mts +6 -0
  39. package/dist/jsdoc/comments-to-open-api.d.ts +6 -0
  40. package/dist/packem_shared/SpecBuilder-B7YiF7zR.mjs +61 -0
  41. package/dist/packem_shared/SpecBuilder-CCESkmm5.cjs +63 -0
  42. package/dist/packem_shared/SwaggerCompilerPlugin-BkYJzU4f.cjs +88 -0
  43. package/dist/packem_shared/SwaggerCompilerPlugin-DZ7tIJ8x.mjs +86 -0
  44. package/dist/packem_shared/customizer-CoMXMU7a.mjs +8 -0
  45. package/dist/packem_shared/customizer-DDFwFqJl.cjs +10 -0
  46. package/dist/packem_shared/generateCommand-DRMkfIle.mjs +15 -0
  47. package/dist/packem_shared/generateCommand-MwnCNgEE.cjs +82 -0
  48. package/dist/packem_shared/generateCommand-RY4QFtm7.cjs +17 -0
  49. package/dist/packem_shared/generateCommand-a9_RAbug.mjs +80 -0
  50. package/dist/packem_shared/initCommand-B6Z9EXHP.mjs +15 -0
  51. package/dist/packem_shared/initCommand-Ch-72dKZ.cjs +65 -0
  52. package/dist/packem_shared/initCommand-D3yVEMwO.cjs +17 -0
  53. package/dist/packem_shared/initCommand-zE4VRDGW.mjs +63 -0
  54. package/dist/packem_shared/jsDocumentCommentsToOpenApi-C7yMeXJ5.cjs +337 -0
  55. package/dist/packem_shared/jsDocumentCommentsToOpenApi-DtrIZ2lK.mjs +331 -0
  56. package/dist/packem_shared/parseFile-BE-sKiRK.mjs +35 -0
  57. package/dist/packem_shared/parseFile-Dk7Bw7lt.cjs +42 -0
  58. package/dist/packem_shared/swaggerJsDocumentCommentsToOpenApi-B7g9rVr5.mjs +131 -0
  59. package/dist/packem_shared/swaggerJsDocumentCommentsToOpenApi-BuB7eE94.cjs +138 -0
  60. package/dist/packem_shared/validate-DZHaKH07.mjs +30 -0
  61. package/dist/packem_shared/validate-FKieC3ln.cjs +37 -0
  62. package/dist/packem_shared/yamlLoc-C7iHWvdq.mjs +14 -0
  63. package/dist/packem_shared/yamlLoc-CEvBiR4K.cjs +16 -0
  64. package/dist/parse-file.d.cts +9 -0
  65. package/dist/parse-file.d.mts +9 -0
  66. package/dist/parse-file.d.ts +9 -0
  67. package/dist/spec-builder.d.cts +14 -0
  68. package/dist/spec-builder.d.mts +14 -0
  69. package/dist/spec-builder.d.ts +14 -0
  70. package/dist/swagger-jsdoc/comments-to-open-api.d.cts +6 -0
  71. package/dist/swagger-jsdoc/comments-to-open-api.d.mts +6 -0
  72. package/dist/swagger-jsdoc/comments-to-open-api.d.ts +6 -0
  73. package/dist/swagger-jsdoc/organize-swagger-object.d.cts +7 -0
  74. package/dist/swagger-jsdoc/organize-swagger-object.d.mts +7 -0
  75. package/dist/swagger-jsdoc/organize-swagger-object.d.ts +7 -0
  76. package/dist/swagger-jsdoc/utils.d.cts +22 -0
  77. package/dist/swagger-jsdoc/utils.d.mts +22 -0
  78. package/dist/swagger-jsdoc/utils.d.ts +22 -0
  79. package/dist/util/customizer.d.cts +2 -0
  80. package/dist/util/customizer.d.mts +2 -0
  81. package/dist/util/customizer.d.ts +2 -0
  82. package/dist/util/object-merge.d.cts +2 -0
  83. package/dist/util/object-merge.d.mts +2 -0
  84. package/dist/util/object-merge.d.ts +2 -0
  85. package/dist/util/yaml-loc.d.cts +2 -0
  86. package/dist/util/yaml-loc.d.mts +2 -0
  87. package/dist/util/yaml-loc.d.ts +2 -0
  88. package/dist/validate.d.cts +2 -0
  89. package/dist/validate.d.mts +2 -0
  90. package/dist/validate.d.ts +2 -0
  91. package/dist/webpack/swagger-compiler-plugin.d.cts +15 -0
  92. package/dist/webpack/swagger-compiler-plugin.d.mts +15 -0
  93. package/dist/webpack/swagger-compiler-plugin.d.ts +15 -0
  94. package/package.json +35 -23
  95. package/dist/chunk-CZO3NX7C.js +0 -149
  96. package/dist/chunk-CZO3NX7C.js.map +0 -1
  97. package/dist/chunk-LOXRB2QY.js +0 -1223
  98. package/dist/chunk-LOXRB2QY.js.map +0 -1
  99. package/dist/chunk-WUINTXB7.mjs +0 -1205
  100. package/dist/chunk-WUINTXB7.mjs.map +0 -1
  101. package/dist/chunk-Z53EXE6B.mjs +0 -142
  102. package/dist/chunk-Z53EXE6B.mjs.map +0 -1
  103. package/dist/cli/commander/index.js +0 -33
  104. package/dist/cli/commander/index.js.map +0 -1
  105. package/dist/cli/commander/index.mjs.map +0 -1
  106. package/dist/cli/index.js +0 -17
  107. package/dist/cli/index.js.map +0 -1
  108. package/dist/cli/index.mjs.map +0 -1
  109. package/dist/index.js +0 -106
  110. package/dist/index.js.map +0 -1
  111. package/dist/index.mjs.map +0 -1
@@ -0,0 +1,15 @@
1
+ import type { Compiler } from "webpack";
2
+ import type { BaseDefinition } from "../exported.d.cts";
3
+ declare class SwaggerCompilerPlugin {
4
+ private readonly assetsPath;
5
+ private readonly ignore;
6
+ private readonly sources;
7
+ private readonly swaggerDefinition;
8
+ private readonly verbose;
9
+ constructor(assetsPath: string, sources: string[], swaggerDefinition: BaseDefinition, options: {
10
+ ignore?: (RegExp | string)[];
11
+ verbose?: boolean;
12
+ });
13
+ apply(compiler: Compiler): void;
14
+ }
15
+ export = SwaggerCompilerPlugin;
@@ -0,0 +1,15 @@
1
+ import type { Compiler } from "webpack";
2
+ import type { BaseDefinition } from "../exported.d.mts";
3
+ declare class SwaggerCompilerPlugin {
4
+ private readonly assetsPath;
5
+ private readonly ignore;
6
+ private readonly sources;
7
+ private readonly swaggerDefinition;
8
+ private readonly verbose;
9
+ constructor(assetsPath: string, sources: string[], swaggerDefinition: BaseDefinition, options: {
10
+ ignore?: (RegExp | string)[];
11
+ verbose?: boolean;
12
+ });
13
+ apply(compiler: Compiler): void;
14
+ }
15
+ export default SwaggerCompilerPlugin;
@@ -0,0 +1,15 @@
1
+ import type { Compiler } from "webpack";
2
+ import type { BaseDefinition } from "../exported.d.ts";
3
+ declare class SwaggerCompilerPlugin {
4
+ private readonly assetsPath;
5
+ private readonly ignore;
6
+ private readonly sources;
7
+ private readonly swaggerDefinition;
8
+ private readonly verbose;
9
+ constructor(assetsPath: string, sources: string[], swaggerDefinition: BaseDefinition, options: {
10
+ ignore?: (RegExp | string)[];
11
+ verbose?: boolean;
12
+ });
13
+ apply(compiler: Compiler): void;
14
+ }
15
+ export = SwaggerCompilerPlugin;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@visulima/jsdoc-open-api",
3
- "version": "2.0.95",
3
+ "version": "3.0.0-alpha.10",
4
4
  "description": "Generates swagger doc based on JSDoc.",
5
5
  "keywords": [
6
6
  "visulima",
@@ -14,14 +14,14 @@
14
14
  "cli",
15
15
  "command"
16
16
  ],
17
- "homepage": "https://www.visulima.com/docs/package/jsdoc-open-api",
17
+ "homepage": "https://visulima.com/packages/jsdoc-open-api/",
18
18
  "bugs": {
19
19
  "url": "https://github.com/visulima/visulima/issues"
20
20
  },
21
21
  "repository": {
22
22
  "type": "git",
23
23
  "url": "https://github.com/visulima/visulima.git",
24
- "directory": "packages/jsdoc-open-api"
24
+ "directory": "packages/api/jsdoc-open-api"
25
25
  },
26
26
  "funding": [
27
27
  {
@@ -41,40 +41,53 @@
41
41
  "sideEffects": false,
42
42
  "exports": {
43
43
  ".": {
44
- "require": {
45
- "types": "./dist/index.d.ts",
46
- "default": "./dist/index.js"
47
- },
48
44
  "import": {
49
45
  "types": "./dist/index.d.mts",
50
46
  "default": "./dist/index.mjs"
47
+ },
48
+ "require": {
49
+ "types": "./dist/index.d.cts",
50
+ "default": "./dist/index.cjs"
51
51
  }
52
52
  },
53
53
  "./cli": {
54
- "require": {
55
- "types": "./dist/cli/index.d.ts",
56
- "default": "./dist/cli/index.js"
57
- },
58
54
  "import": {
59
55
  "types": "./dist/cli/index.d.mts",
60
56
  "default": "./dist/cli/index.mjs"
57
+ },
58
+ "require": {
59
+ "types": "./dist/cli/index.d.cts",
60
+ "default": "./dist/cli/index.cjs"
61
61
  }
62
62
  },
63
63
  "./cli/commander": {
64
- "require": {
65
- "types": "./dist/cli/commander/index.d.ts",
66
- "default": "./dist/cli/commander/index.js"
67
- },
68
64
  "import": {
69
65
  "types": "./dist/cli/commander/index.d.mts",
70
66
  "default": "./dist/cli/commander/index.mjs"
67
+ },
68
+ "require": {
69
+ "types": "./dist/cli/commander/index.d.cts",
70
+ "default": "./dist/cli/commander/index.cjs"
71
71
  }
72
72
  },
73
73
  "./package.json": "./package.json"
74
74
  },
75
- "main": "dist/index.js",
75
+ "main": "dist/index.cjs",
76
76
  "module": "dist/index.mjs",
77
77
  "types": "dist/index.d.ts",
78
+ "typesVersions": {
79
+ ">=5.0": {
80
+ ".": [
81
+ "./dist/index.d.ts"
82
+ ],
83
+ "cli": [
84
+ "./dist/cli/index.d.ts"
85
+ ],
86
+ "cli/commander": [
87
+ "./dist/cli/commander/index.d.ts"
88
+ ]
89
+ }
90
+ },
78
91
  "bin": {
79
92
  "jsdoc-open-api": "./bin/index.js"
80
93
  },
@@ -88,19 +101,18 @@
88
101
  ],
89
102
  "dependencies": {
90
103
  "@apidevtools/swagger-parser": "^12.1.0",
91
- "comment-parser": "^1.4.1",
104
+ "@visulima/fs": "5.0.0-alpha.11",
105
+ "comment-parser": "1.4.6",
92
106
  "lodash.mergewith": "^4.6.2",
93
- "publint": "^0.3.15",
94
- "read-pkg-up": "^7.0.1",
95
- "yaml": "^2.8.1"
107
+ "yaml": "2.8.3"
96
108
  },
97
109
  "optionalDependencies": {
98
110
  "cli-progress": "^3.12.0",
99
- "commander": "^14.0.2",
100
- "webpack": "^5.102.1"
111
+ "commander": "^14.0.3",
112
+ "webpack": "^5.106.2"
101
113
  },
102
114
  "engines": {
103
- "node": ">=18.0.0 <=25.x"
115
+ "node": "^22.14.0 || >=24.10.0"
104
116
  },
105
117
  "os": [
106
118
  "darwin",
@@ -1,149 +0,0 @@
1
- 'use strict';
2
-
3
- var chunkLOXRB2QY_js = require('./chunk-LOXRB2QY.js');
4
- var promises = require('fs/promises');
5
- var path = require('path');
6
- var url = require('url');
7
- var cliProgress = require('cli-progress');
8
- var fs = require('fs');
9
- var readPkgUp = require('read-pkg-up');
10
-
11
- function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
12
-
13
- var readPkgUp__default = /*#__PURE__*/_interopDefault(readPkgUp);
14
-
15
- var generateCommand = async (configName, paths, options) => {
16
- let openapiConfig = {
17
- exclude: [],
18
- swaggerDefinition: {}
19
- };
20
- try {
21
- let config = await import(url.pathToFileURL(path.normalize(options.config ?? configName)).href);
22
- if (config?.default) {
23
- config = config.default;
24
- }
25
- openapiConfig = config;
26
- } catch {
27
- throw new Error(`No config file found, on: ${options.config ?? ".openapirc.js"}
28
- `);
29
- }
30
- const multibar = new cliProgress.MultiBar(
31
- {
32
- clearOnComplete: false,
33
- format: "{value}/{total} | {bar} | {filename}",
34
- hideCursor: true
35
- },
36
- cliProgress.Presets.shades_grey
37
- );
38
- const spec = new chunkLOXRB2QY_js.spec_builder_default(openapiConfig.swaggerDefinition);
39
- const skip = /* @__PURE__ */ new Set([...chunkLOXRB2QY_js.DEFAULT_EXCLUDE, ...openapiConfig.exclude]);
40
- for await (const dir of paths) {
41
- (await promises.lstat(dir)).isDirectory();
42
- const realDirectory = await promises.realpath(dir);
43
- const files = await chunkLOXRB2QY_js.collect(realDirectory, {
44
- extensions: openapiConfig.extensions ?? [".js", ".cjs", ".mjs", ".ts", ".tsx", ".jsx", ".yaml", ".yml"],
45
- followSymlinks: openapiConfig.followSymlinks ?? false,
46
- match: openapiConfig.include,
47
- skip: [...skip]
48
- });
49
- if (options.verbose ?? options.veryVerbose) {
50
- console.log(`
51
- Found ${String(files.length)} files in ${realDirectory}`);
52
- }
53
- if (options.veryVerbose) {
54
- console.log(files);
55
- }
56
- const bar = multibar.create(files.length, 0);
57
- files.forEach((file) => {
58
- if (options.verbose) {
59
- console.log(`Parsing file ${file}`);
60
- }
61
- bar.increment(1, { filename: realDirectory });
62
- const parsedJsDocumentFile = chunkLOXRB2QY_js.parse_file_default(file, chunkLOXRB2QY_js.comments_to_open_api_default, options.verbose);
63
- spec.addData(parsedJsDocumentFile.map((item) => item.spec));
64
- const parsedSwaggerJsDocumentFile = chunkLOXRB2QY_js.parse_file_default(file, chunkLOXRB2QY_js.comments_to_open_api_default2, options.verbose);
65
- spec.addData(parsedSwaggerJsDocumentFile.map((item) => item.spec));
66
- });
67
- }
68
- if (options.verbose) {
69
- console.log("Validating swagger spec");
70
- }
71
- if (options.veryVerbose) {
72
- console.log(JSON.stringify(spec, null, 2));
73
- }
74
- await chunkLOXRB2QY_js.validate_default(JSON.parse(JSON.stringify(spec)));
75
- const output = options.output ?? "swagger.json";
76
- multibar.stop();
77
- if (options.verbose) {
78
- console.log(`Written swagger spec to "${output}" file`);
79
- }
80
- await promises.mkdir(path.dirname(output), { recursive: true });
81
- await promises.writeFile(output, JSON.stringify(spec, null, 2));
82
- console.log(`
83
- Swagger specification is ready, check the "${output}" file.`);
84
- };
85
- var generate_command_default = generateCommand;
86
- var initCommand = (configName, packageJsonPath = process.cwd()) => {
87
- if (fs.existsSync(configName)) {
88
- throw new Error("Config file already exists");
89
- }
90
- const foundPackageJson = readPkgUp__default.default.sync({
91
- cwd: fs.realpathSync(packageJsonPath)
92
- });
93
- let exportTemplate = "module.exports =";
94
- if (foundPackageJson) {
95
- const { packageJson: package_, path: packagePath } = foundPackageJson;
96
- console.info(`Found package.json at "${packagePath}"`);
97
- if (package_.type === "module") {
98
- console.info("Found package.json with type: module, using ES6 as export for the config file");
99
- exportTemplate = "export default";
100
- }
101
- } else {
102
- console.info("No package.json found");
103
- }
104
- fs.writeFileSync(
105
- configName,
106
- `${exportTemplate} {
107
- exclude: [
108
- 'coverage/**',
109
- '.github/**',
110
- 'packages/*/test{,s}/**',
111
- '**/*.d.ts',
112
- 'test{,s}/**',
113
- 'test{,-*}.{js,cjs,mjs,ts,tsx,jsx,yaml,yml}',
114
- '**/*{.,-}test.{js,cjs,mjs,ts,tsx,jsx,yaml,yml}',
115
- '**/__tests__/**',
116
- '**/{ava,babel,nyc}.config.{js,cjs,mjs}',
117
- '**/jest.config.{js,cjs,mjs,ts}',
118
- '**/{karma,rollup,webpack}.config.js',
119
- '**/.{eslint,mocha}rc.{js,cjs}',
120
- '**/.{travis,yarnrc}.yml',
121
- '**/{docker-compose,docker}.yml',
122
- '**/.yamllint.{yaml,yml}',
123
- '**/node_modules/**',
124
- '**/pnpm-lock.yaml',
125
- '**/pnpm-workspace.yaml',
126
- '**/{package,package-lock}.json',
127
- '**/yarn.lock',
128
- '**/package.json5',
129
- '**/.next/**',
130
- ],
131
- followSymlinks: false,
132
- swaggerDefinition: {
133
- openapi: '3.0.0',
134
- info: {
135
- title: 'API',
136
- version: '1.0.0',
137
- },
138
- },
139
- };
140
- `
141
- );
142
- console.log(`Created "${configName}"`);
143
- };
144
- var init_command_default = initCommand;
145
-
146
- exports.generate_command_default = generate_command_default;
147
- exports.init_command_default = init_command_default;
148
- //# sourceMappingURL=chunk-CZO3NX7C.js.map
149
- //# sourceMappingURL=chunk-CZO3NX7C.js.map
@@ -1 +0,0 @@
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-CZO3NX7C.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"]}