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

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 (46) hide show
  1. package/CHANGELOG.md +369 -0
  2. package/LICENSE.md +35 -1
  3. package/README.md +44 -33
  4. package/bin/index.js +12 -9
  5. package/dist/cli/commander/index.d.ts +996 -3
  6. package/dist/cli/commander/index.js +1 -33
  7. package/dist/cli/index.d.ts +5 -6
  8. package/dist/cli/index.js +1 -17
  9. package/dist/index.d.ts +200 -182
  10. package/dist/index.js +1 -106
  11. package/dist/packem_shared/DEFAULT_OPTIONS-C7o6qjwP.js +1 -0
  12. package/dist/packem_shared/SpecBuilder-Vbq42UbW.js +1 -0
  13. package/dist/packem_shared/SwaggerCompilerPlugin-PUOALp2i.js +1 -0
  14. package/dist/packem_shared/constants-CdEv9ZcD.js +1 -0
  15. package/dist/packem_shared/customizer-BXFVpImq.js +1 -0
  16. package/dist/packem_shared/generateCommand-C_XPsbS6.js +5 -0
  17. package/dist/packem_shared/generateCommand-ClL9Mnc3.js +1 -0
  18. package/dist/packem_shared/initCommand-Ca1hGdYS.js +35 -0
  19. package/dist/packem_shared/initCommand-TixxsVQU.js +1 -0
  20. package/dist/packem_shared/jsDocumentCommentsToOpenApi-TjPhUj5G.js +1 -0
  21. package/dist/packem_shared/loadDefinition-7r9qpfuE.js +1 -0
  22. package/dist/packem_shared/parseFile-RDlR4tEF.js +1 -0
  23. package/dist/packem_shared/swaggerJsDocumentCommentsToOpenApi-Bm9R1BnW.js +10 -0
  24. package/dist/packem_shared/validate-9Rwe2A3r.js +1 -0
  25. package/dist/packem_shared/yamlLoc-DPq-xUM4.js +1 -0
  26. package/package.json +38 -45
  27. package/dist/chunk-2T6HMUIL.mjs +0 -1215
  28. package/dist/chunk-2T6HMUIL.mjs.map +0 -1
  29. package/dist/chunk-PTFTJY7I.js +0 -1233
  30. package/dist/chunk-PTFTJY7I.js.map +0 -1
  31. package/dist/chunk-RGP6RTJO.mjs +0 -142
  32. package/dist/chunk-RGP6RTJO.mjs.map +0 -1
  33. package/dist/chunk-RVCK3H3U.js +0 -149
  34. package/dist/chunk-RVCK3H3U.js.map +0 -1
  35. package/dist/cli/commander/index.d.mts +0 -7
  36. package/dist/cli/commander/index.js.map +0 -1
  37. package/dist/cli/commander/index.mjs +0 -30
  38. package/dist/cli/commander/index.mjs.map +0 -1
  39. package/dist/cli/index.d.mts +0 -10
  40. package/dist/cli/index.js.map +0 -1
  41. package/dist/cli/index.mjs +0 -4
  42. package/dist/cli/index.mjs.map +0 -1
  43. package/dist/index.d.mts +0 -248
  44. package/dist/index.js.map +0 -1
  45. package/dist/index.mjs +0 -85
  46. package/dist/index.mjs.map +0 -1
package/CHANGELOG.md CHANGED
@@ -1,3 +1,372 @@
1
+ ## @visulima/jsdoc-open-api [3.0.0-alpha.40](https://github.com/visulima/visulima/compare/@visulima/jsdoc-open-api@3.0.0-alpha.39...@visulima/jsdoc-open-api@3.0.0-alpha.40) (2026-07-03)
2
+
3
+ ## @visulima/jsdoc-open-api [3.0.0-alpha.39](https://github.com/visulima/visulima/compare/@visulima/jsdoc-open-api@3.0.0-alpha.38...@visulima/jsdoc-open-api@3.0.0-alpha.39) (2026-07-01)
4
+
5
+ ## @visulima/jsdoc-open-api [3.0.0-alpha.38](https://github.com/visulima/visulima/compare/@visulima/jsdoc-open-api@3.0.0-alpha.37...@visulima/jsdoc-open-api@3.0.0-alpha.38) (2026-06-30)
6
+
7
+ ### ⚠ BREAKING CHANGES
8
+
9
+ * the listed packages no longer publish a CommonJS build —
10
+ consumers must use ESM (import) or dynamic import(). @visulima/connect,
11
+ @visulima/crud, @visulima/prisma-dmmf-transformer and @visulima/api-platform
12
+ are removed and deprecated.
13
+
14
+ Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
15
+
16
+ ### Bug Fixes
17
+
18
+ * resolve eslint errors in fmt, jsdoc-open-api, vis ([43bf450](https://github.com/visulima/visulima/commit/43bf45081e46b042a08b555c3fcb60391b82d06f))
19
+ * **security:** resolve CodeQL alerts on alpha→main ([541e206](https://github.com/visulima/visulima/commit/541e206517b2f78532d19638c18be95ff97e48ae)), closes [#713](https://github.com/visulima/visulima/issues/713)
20
+
21
+ ### Styles
22
+
23
+ * cs fixes ([2a960bb](https://github.com/visulima/visulima/commit/2a960bb1772c9dc70080e2d75d3a0d827034e294))
24
+
25
+ ### Miscellaneous Chores
26
+
27
+ * add fallow code-intelligence across all packages ([a3b4821](https://github.com/visulima/visulima/commit/a3b48215002e86fed20f2973038b5d4a0aa1ce04))
28
+
29
+ ### Code Refactoring
30
+
31
+ * ship esm-only; remove deprecated api packages ([6e58351](https://github.com/visulima/visulima/commit/6e58351e73ac7d8f8ec88be4d77871e4de5d5405))
32
+
33
+ ### Build System
34
+
35
+ * emit .js instead of .mjs for esm output ([c8a6026](https://github.com/visulima/visulima/commit/c8a602665a59f0441a61a5a510cdfed9353101e6))
36
+
37
+ ### Continuous Integration
38
+
39
+ * **fallow:** make fallow:health advisory (--report-only) ([d57148e](https://github.com/visulima/visulima/commit/d57148ea0e3556b4c24d8d336b9fa14987f5dc7d))
40
+
41
+
42
+ ### Dependencies
43
+
44
+ * **@visulima/fs:** upgraded to 5.0.0-alpha.33
45
+
46
+ ## @visulima/jsdoc-open-api [3.0.0-alpha.37](https://github.com/visulima/visulima/compare/@visulima/jsdoc-open-api@3.0.0-alpha.36...@visulima/jsdoc-open-api@3.0.0-alpha.37) (2026-06-23)
47
+
48
+ ## @visulima/jsdoc-open-api [3.0.0-alpha.36](https://github.com/visulima/visulima/compare/@visulima/jsdoc-open-api@3.0.0-alpha.35...@visulima/jsdoc-open-api@3.0.0-alpha.36) (2026-06-23)
49
+
50
+ ## @visulima/jsdoc-open-api [3.0.0-alpha.35](https://github.com/visulima/visulima/compare/@visulima/jsdoc-open-api@3.0.0-alpha.34...@visulima/jsdoc-open-api@3.0.0-alpha.35) (2026-06-20)
51
+
52
+ ## @visulima/jsdoc-open-api [3.0.0-alpha.34](https://github.com/visulima/visulima/compare/@visulima/jsdoc-open-api@3.0.0-alpha.33...@visulima/jsdoc-open-api@3.0.0-alpha.34) (2026-06-20)
53
+
54
+ ## @visulima/jsdoc-open-api [3.0.0-alpha.33](https://github.com/visulima/visulima/compare/@visulima/jsdoc-open-api@3.0.0-alpha.32...@visulima/jsdoc-open-api@3.0.0-alpha.33) (2026-06-19)
55
+
56
+ ## @visulima/jsdoc-open-api [3.0.0-alpha.32](https://github.com/visulima/visulima/compare/@visulima/jsdoc-open-api@3.0.0-alpha.31...@visulima/jsdoc-open-api@3.0.0-alpha.32) (2026-06-19)
57
+
58
+ ## @visulima/jsdoc-open-api [3.0.0-alpha.31](https://github.com/visulima/visulima/compare/@visulima/jsdoc-open-api@3.0.0-alpha.30...@visulima/jsdoc-open-api@3.0.0-alpha.31) (2026-06-19)
59
+
60
+ ## @visulima/jsdoc-open-api [3.0.0-alpha.30](https://github.com/visulima/visulima/compare/@visulima/jsdoc-open-api@3.0.0-alpha.29...@visulima/jsdoc-open-api@3.0.0-alpha.30) (2026-06-13)
61
+
62
+ ### Features
63
+
64
+ * **jsdoc-open-api:** harden merge, fix error paths, add yaml/stdout/watch output ([abd6a1a](https://github.com/visulima/visulima/commit/abd6a1ae6be8060515f8a61a1469b8ae652bf58a))
65
+
66
+ ### Bug Fixes
67
+
68
+ * **jsdoc-open-api:** use String.raw for mime-type backslash literal ([e55977d](https://github.com/visulima/visulima/commit/e55977d804ec2cb26b077f51bd2ce9cc6677d5ac))
69
+
70
+ ### Tests
71
+
72
+ * **jsdoc-open-api:** assert each file is parsed once ([b285496](https://github.com/visulima/visulima/commit/b28549623e984cc65a8c645a149406c546461e93))
73
+
74
+ ### Build System
75
+
76
+ * regenerate bundled-license manifests and types ordering ([af26588](https://github.com/visulima/visulima/commit/af26588d75aaa937fd4862800560bd4070a4878c))
77
+
78
+
79
+ ### Dependencies
80
+
81
+ * **@visulima/fs:** upgraded to 5.0.0-alpha.32
82
+
83
+ ## @visulima/jsdoc-open-api [3.0.0-alpha.29](https://github.com/visulima/visulima/compare/@visulima/jsdoc-open-api@3.0.0-alpha.28...@visulima/jsdoc-open-api@3.0.0-alpha.29) (2026-06-04)
84
+
85
+
86
+ ### Dependencies
87
+
88
+ * **@visulima/fs:** upgraded to 5.0.0-alpha.31
89
+
90
+ ## @visulima/jsdoc-open-api [3.0.0-alpha.28](https://github.com/visulima/visulima/compare/@visulima/jsdoc-open-api@3.0.0-alpha.27...@visulima/jsdoc-open-api@3.0.0-alpha.28) (2026-06-04)
91
+
92
+ ### Bug Fixes
93
+
94
+ * **jsdoc-open-api:** 3 bug fixes ([1336b87](https://github.com/visulima/visulima/commit/1336b870964f2645505efbf2720218ddb5aaa18d))
95
+
96
+
97
+ ### Dependencies
98
+
99
+ * **@visulima/fs:** upgraded to 5.0.0-alpha.30
100
+
101
+ ## @visulima/jsdoc-open-api [3.0.0-alpha.27](https://github.com/visulima/visulima/compare/@visulima/jsdoc-open-api@3.0.0-alpha.26...@visulima/jsdoc-open-api@3.0.0-alpha.27) (2026-06-02)
102
+
103
+ ### Miscellaneous Chores
104
+
105
+ * apply eslint + prettier autofixes across packages ([c1bb784](https://github.com/visulima/visulima/commit/c1bb7848a0d93d0dfe2960c77e3cda22239c79a0))
106
+
107
+ ### Tests
108
+
109
+ * improve coverage across packages ([91bd6d3](https://github.com/visulima/visulima/commit/91bd6d3b61736e3c8bd1fc59b0b5955f76a5d323))
110
+ * **jsdoc-open-api:** cover cli commands, webpack plugin errors, loaders, and swagger merge paths ([22cff56](https://github.com/visulima/visulima/commit/22cff56740cc473cad3ad45ab3749cfff8ff36d8))
111
+
112
+
113
+ ### Dependencies
114
+
115
+ * **@visulima/fs:** upgraded to 5.0.0-alpha.29
116
+
117
+ ## @visulima/jsdoc-open-api [3.0.0-alpha.26](https://github.com/visulima/visulima/compare/@visulima/jsdoc-open-api@3.0.0-alpha.25...@visulima/jsdoc-open-api@3.0.0-alpha.26) (2026-05-27)
118
+
119
+ ### Bug Fixes
120
+
121
+ * **storage-client:** percent-encode user fields in defaultFingerprint ([7c78a0f](https://github.com/visulima/visulima/commit/7c78a0f9512e2a673b941d80839e9f1e86b7b5d0))
122
+
123
+ ### Miscellaneous Chores
124
+
125
+ * sorted package.json ([b47c545](https://github.com/visulima/visulima/commit/b47c545591600fdab17d5cd3a3fbc68b61e199da))
126
+
127
+
128
+ ### Dependencies
129
+
130
+ * **@visulima/fs:** upgraded to 5.0.0-alpha.28
131
+
132
+ ## @visulima/jsdoc-open-api [3.0.0-alpha.25](https://github.com/visulima/visulima/compare/@visulima/jsdoc-open-api@3.0.0-alpha.24...@visulima/jsdoc-open-api@3.0.0-alpha.25) (2026-05-26)
133
+
134
+ ### Miscellaneous Chores
135
+
136
+ * **ci-stability:** green CI across vis, native, lint, tests, attw ([#651](https://github.com/visulima/visulima/issues/651)) ([d4eb684](https://github.com/visulima/visulima/commit/d4eb684b5f75c818c9251048c605a0ed54a268e3))
137
+ * **repo:** apply eslint --fix and prettier --fix across packages ([#650](https://github.com/visulima/visulima/issues/650)) ([2e26a84](https://github.com/visulima/visulima/commit/2e26a84774f218f21345e9a8ecd68236b6542743)), closes [#620](https://github.com/visulima/visulima/issues/620)
138
+ * **repo:** sort package.json keys across all packages ([e1fd9ab](https://github.com/visulima/visulima/commit/e1fd9ab467ef96a98c777da1572ff6a50fcf7e71))
139
+
140
+ ### Tests
141
+
142
+ * **repo:** add dist runtime + types integration tests ([32ee300](https://github.com/visulima/visulima/commit/32ee300b7184117a0ddf9f9d390f75f8932d5ed9))
143
+ * **repo:** cover bin entry points in dist integration suite ([7479ef1](https://github.com/visulima/visulima/commit/7479ef113cf5ccef25692619082afb1b6a0eecab))
144
+
145
+
146
+ ### Dependencies
147
+
148
+ * **@visulima/fs:** upgraded to 5.0.0-alpha.26
149
+
150
+ ## @visulima/jsdoc-open-api [3.0.0-alpha.24](https://github.com/visulima/visulima/compare/@visulima/jsdoc-open-api@3.0.0-alpha.23...@visulima/jsdoc-open-api@3.0.0-alpha.24) (2026-05-20)
151
+
152
+
153
+ ### Dependencies
154
+
155
+ * **@visulima/fs:** upgraded to 5.0.0-alpha.25
156
+
157
+ ## @visulima/jsdoc-open-api [3.0.0-alpha.23](https://github.com/visulima/visulima/compare/@visulima/jsdoc-open-api@3.0.0-alpha.22...@visulima/jsdoc-open-api@3.0.0-alpha.23) (2026-05-19)
158
+
159
+
160
+ ### Dependencies
161
+
162
+ * **@visulima/fs:** upgraded to 5.0.0-alpha.24
163
+
164
+ ## @visulima/jsdoc-open-api [3.0.0-alpha.22](https://github.com/visulima/visulima/compare/@visulima/jsdoc-open-api@3.0.0-alpha.21...@visulima/jsdoc-open-api@3.0.0-alpha.22) (2026-05-16)
165
+
166
+
167
+ ### Dependencies
168
+
169
+ * **@visulima/fs:** upgraded to 5.0.0-alpha.23
170
+
171
+ ## @visulima/jsdoc-open-api [3.0.0-alpha.21](https://github.com/visulima/visulima/compare/@visulima/jsdoc-open-api@3.0.0-alpha.20...@visulima/jsdoc-open-api@3.0.0-alpha.21) (2026-05-14)
172
+
173
+ ### Miscellaneous Chores
174
+
175
+ * **jsdoc-open-api:** apply formatter sweep ([6852218](https://github.com/visulima/visulima/commit/6852218fe4d8099771d12499cba090d73034b3c3))
176
+
177
+
178
+ ### Dependencies
179
+
180
+ * **@visulima/fs:** upgraded to 5.0.0-alpha.22
181
+
182
+ ## @visulima/jsdoc-open-api [3.0.0-alpha.20](https://github.com/visulima/visulima/compare/@visulima/jsdoc-open-api@3.0.0-alpha.19...@visulima/jsdoc-open-api@3.0.0-alpha.20) (2026-05-11)
183
+
184
+
185
+ ### Dependencies
186
+
187
+ * **@visulima/fs:** upgraded to 5.0.0-alpha.21
188
+
189
+ ## @visulima/jsdoc-open-api [3.0.0-alpha.19](https://github.com/visulima/visulima/compare/@visulima/jsdoc-open-api@3.0.0-alpha.18...@visulima/jsdoc-open-api@3.0.0-alpha.19) (2026-05-11)
190
+
191
+
192
+ ### Dependencies
193
+
194
+ * **@visulima/fs:** upgraded to 5.0.0-alpha.20
195
+
196
+ ## @visulima/jsdoc-open-api [3.0.0-alpha.18](https://github.com/visulima/visulima/compare/@visulima/jsdoc-open-api@3.0.0-alpha.17...@visulima/jsdoc-open-api@3.0.0-alpha.18) (2026-05-10)
197
+
198
+
199
+ ### Dependencies
200
+
201
+ * **@visulima/fs:** upgraded to 5.0.0-alpha.19
202
+
203
+ ## @visulima/jsdoc-open-api [3.0.0-alpha.17](https://github.com/visulima/visulima/compare/@visulima/jsdoc-open-api@3.0.0-alpha.16...@visulima/jsdoc-open-api@3.0.0-alpha.17) (2026-05-10)
204
+
205
+
206
+ ### Dependencies
207
+
208
+ * **@visulima/fs:** upgraded to 5.0.0-alpha.18
209
+
210
+ ## @visulima/jsdoc-open-api [3.0.0-alpha.16](https://github.com/visulima/visulima/compare/@visulima/jsdoc-open-api@3.0.0-alpha.15...@visulima/jsdoc-open-api@3.0.0-alpha.16) (2026-05-07)
211
+
212
+
213
+ ### Dependencies
214
+
215
+ * **@visulima/fs:** upgraded to 5.0.0-alpha.17
216
+
217
+ ## @visulima/jsdoc-open-api [3.0.0-alpha.15](https://github.com/visulima/visulima/compare/@visulima/jsdoc-open-api@3.0.0-alpha.14...@visulima/jsdoc-open-api@3.0.0-alpha.15) (2026-05-07)
218
+
219
+
220
+ ### Dependencies
221
+
222
+ * **@visulima/fs:** upgraded to 5.0.0-alpha.16
223
+
224
+ ## @visulima/jsdoc-open-api [3.0.0-alpha.14](https://github.com/visulima/visulima/compare/@visulima/jsdoc-open-api@3.0.0-alpha.13...@visulima/jsdoc-open-api@3.0.0-alpha.14) (2026-05-06)
225
+
226
+
227
+ ### Dependencies
228
+
229
+ * **@visulima/fs:** upgraded to 5.0.0-alpha.15
230
+
231
+ ## @visulima/jsdoc-open-api [3.0.0-alpha.13](https://github.com/visulima/visulima/compare/@visulima/jsdoc-open-api@3.0.0-alpha.12...@visulima/jsdoc-open-api@3.0.0-alpha.13) (2026-05-06)
232
+
233
+ ### Miscellaneous Chores
234
+
235
+ * **jsdoc-open-api:** apply prettier and eslint quote-style auto-fix ([2e9b8d0](https://github.com/visulima/visulima/commit/2e9b8d0cdccaa94f22627e5e5f11153c71b689bd))
236
+ * **jsdoc-open-api:** housekeeping cleanup ([de52abe](https://github.com/visulima/visulima/commit/de52abea6d81abc06a8afc14c70ea2a5aabcd30e))
237
+
238
+
239
+ ### Dependencies
240
+
241
+ * **@visulima/fs:** upgraded to 5.0.0-alpha.14
242
+
243
+ ## @visulima/jsdoc-open-api [3.0.0-alpha.12](https://github.com/visulima/visulima/compare/@visulima/jsdoc-open-api@3.0.0-alpha.11...@visulima/jsdoc-open-api@3.0.0-alpha.12) (2026-05-04)
244
+
245
+ ### Miscellaneous Chores
246
+
247
+ * **jsdoc-open-api:** upgrade packem to 2.0.0-alpha.76 ([a3b3549](https://github.com/visulima/visulima/commit/a3b3549a68e22970a39904d2d654b65c6047d7cf))
248
+ * re-sort workspace package.json files via vis sort-package-json ([f625696](https://github.com/visulima/visulima/commit/f625696cfac974325774b3243e1a83c3d23acbd7))
249
+
250
+
251
+ ### Dependencies
252
+
253
+ * **@visulima/fs:** upgraded to 5.0.0-alpha.13
254
+
255
+ ## @visulima/jsdoc-open-api [3.0.0-alpha.11](https://github.com/visulima/visulima/compare/@visulima/jsdoc-open-api@3.0.0-alpha.10...@visulima/jsdoc-open-api@3.0.0-alpha.11) (2026-04-22)
256
+
257
+ ### Bug Fixes
258
+
259
+ * Remove JSR configuration generation script and generated jsr.json files ([#616](https://github.com/visulima/visulima/issues/616)) ([533744b](https://github.com/visulima/visulima/commit/533744b103b74896941db5b727173e617a27a63b))
260
+
261
+
262
+ ### Dependencies
263
+
264
+ * **@visulima/fs:** upgraded to 5.0.0-alpha.12
265
+
266
+ ## @visulima/jsdoc-open-api [3.0.0-alpha.10](https://github.com/visulima/visulima/compare/@visulima/jsdoc-open-api@3.0.0-alpha.9...@visulima/jsdoc-open-api@3.0.0-alpha.10) (2026-04-21)
267
+
268
+ ### Miscellaneous Chores
269
+
270
+ * jsr.json update and lock file ([73fce38](https://github.com/visulima/visulima/commit/73fce38c7cb4603f3fffb88609b1b18e2feb4937))
271
+
272
+
273
+ ### Dependencies
274
+
275
+ * **@visulima/fs:** upgraded to 5.0.0-alpha.11
276
+
277
+ ## @visulima/jsdoc-open-api [3.0.0-alpha.9](https://github.com/visulima/visulima/compare/@visulima/jsdoc-open-api@3.0.0-alpha.8...@visulima/jsdoc-open-api@3.0.0-alpha.9) (2026-04-21)
278
+
279
+ ### Miscellaneous Chores
280
+
281
+ * update the jsr.json ([864ab7e](https://github.com/visulima/visulima/commit/864ab7e71c4b5ae82f64792d1ae8debfea2c539b))
282
+
283
+
284
+ ### Dependencies
285
+
286
+ * **@visulima/fs:** upgraded to 5.0.0-alpha.10
287
+
288
+ ## @visulima/jsdoc-open-api [3.0.0-alpha.8](https://github.com/visulima/visulima/compare/@visulima/jsdoc-open-api@3.0.0-alpha.7...@visulima/jsdoc-open-api@3.0.0-alpha.8) (2026-04-21)
289
+
290
+ ### Bug Fixes
291
+
292
+ * **api:** resolve eslint and type-safety issues across api packages ([3601491](https://github.com/visulima/visulima/commit/3601491261de56b5cfad87c97daafd458e4ee3b6))
293
+ * **jsdoc-open-api:** drop redundant String() conversion in init-command ([1b2384e](https://github.com/visulima/visulima/commit/1b2384e917687beaf464e18e24595c7d4214c94e))
294
+ * **jsdoc-open-api:** relax type overrides for parser code, preserve JSON roundtrip for undefined stripping ([be896e2](https://github.com/visulima/visulima/commit/be896e2e724396bcb74fbbd3161d29213a9984d6))
295
+
296
+ ### Miscellaneous Chores
297
+
298
+ * bump engines.node to ^22.14.0 || >=24.10.0 ([c3d0931](https://github.com/visulima/visulima/commit/c3d0931d1504e4f21ebf50ea680cfa7ce4ba15ce))
299
+ * fixed jsr.json ([5d85e51](https://github.com/visulima/visulima/commit/5d85e5179de38e284ec433b14d77c71a1619c8d6))
300
+ * **jsdoc-open-api:** apply formatter updates ([57231bd](https://github.com/visulima/visulima/commit/57231bd235fa16768802306aa6e906a4558c579c))
301
+ * **jsdoc-open-api:** apply pending lint and source updates ([0669fd3](https://github.com/visulima/visulima/commit/0669fd3d46ad0787ef6709cc8cad67b7ff7495f7))
302
+ * **jsdoc-open-api:** enforce curly braces and apply lint fixes ([606641f](https://github.com/visulima/visulima/commit/606641f7a29eaa5707ae27c57ed02a91adf950b5))
303
+
304
+
305
+ ### Dependencies
306
+
307
+ * **@visulima/fs:** upgraded to 5.0.0-alpha.9
308
+
309
+ ## @visulima/jsdoc-open-api [3.0.0-alpha.7](https://github.com/visulima/visulima/compare/@visulima/jsdoc-open-api@3.0.0-alpha.6...@visulima/jsdoc-open-api@3.0.0-alpha.7) (2026-04-08)
310
+
311
+ ### Miscellaneous Chores
312
+
313
+ * **jsdoc-open-api:** add tsconfig.eslint.json for type-aware linting ([dd9a888](https://github.com/visulima/visulima/commit/dd9a88810a864e5ef8ee9a1cdf3cf742a4549cb3))
314
+ * **jsdoc-open-api:** apply prettier formatting ([25dae1b](https://github.com/visulima/visulima/commit/25dae1bd4d911921c1926c0212751cf4179087aa))
315
+ * **jsdoc-open-api:** migrate .prettierrc.cjs to prettier.config.js ([cbe2931](https://github.com/visulima/visulima/commit/cbe2931b52a65fcb2e86960acdc31c8ebc3c9c74))
316
+
317
+
318
+ ### Dependencies
319
+
320
+ * **@visulima/fs:** upgraded to 5.0.0-alpha.7
321
+
322
+ ## @visulima/jsdoc-open-api [3.0.0-alpha.6](https://github.com/visulima/visulima/compare/@visulima/jsdoc-open-api@3.0.0-alpha.5...@visulima/jsdoc-open-api@3.0.0-alpha.6) (2026-03-26)
323
+
324
+ ### Features
325
+
326
+ * **web:** auto-generate packages page from workspace metadata ([623e520](https://github.com/visulima/visulima/commit/623e5207693a7fe720f5f2f179593a3654c880e3))
327
+
328
+ ### Miscellaneous Chores
329
+
330
+ * update homepage URLs to visulima.com/packages/ format ([be42968](https://github.com/visulima/visulima/commit/be42968129df85fb074224435e33135ff44cab91))
331
+
332
+
333
+ ### Dependencies
334
+
335
+ * **@visulima/fs:** upgraded to 5.0.0-alpha.6
336
+
337
+ ## @visulima/jsdoc-open-api [3.0.0-alpha.5](https://github.com/visulima/visulima/compare/@visulima/jsdoc-open-api@3.0.0-alpha.4...@visulima/jsdoc-open-api@3.0.0-alpha.5) (2026-03-26)
338
+
339
+ ### Bug Fixes
340
+
341
+ * **jsdoc-open-api:** use workspace:* for internal [@visulima](https://github.com/visulima) deps ([4f97e12](https://github.com/visulima/visulima/commit/4f97e125a8f84a5e8b9691b72e2f9c56c5d3a69b))
342
+ * **web:** improve build setup with incremental stats caching and prod install ([fe33e75](https://github.com/visulima/visulima/commit/fe33e75827586779b4b3a0c6d57b39f889ee6207))
343
+
344
+ ### Documentation
345
+
346
+ * **cerebro,prisma-dmmf-transformer,jsdoc-open-api:** add comprehensive Fumadocs documentation ([891b308](https://github.com/visulima/visulima/commit/891b308a34bca2765a4a97ea450648d20d90e0cf))
347
+
348
+ ### Miscellaneous Chores
349
+
350
+ * **api:** remove empty peerDependencies and optionalDependencies ([85142fa](https://github.com/visulima/visulima/commit/85142fa76729c238a59ac48265b5e33e31183abb))
351
+ * **api:** update dependencies ([f3b6f7c](https://github.com/visulima/visulima/commit/f3b6f7c956e8ae2c0da67773b3790f159c07de29))
352
+ * **jsdoc-open-api:** migrate deps to pnpm catalogs ([9a673ca](https://github.com/visulima/visulima/commit/9a673ca0d8235d0ff28a6fe9b150cf2ee37e78a4))
353
+ * **jsdoc-open-api:** update dependencies ([5a1248f](https://github.com/visulima/visulima/commit/5a1248f8fa408fc81bb07a5bf9ce8430b89c1f57))
354
+ * **jsdoc-open-api:** update dependencies ([f5d2a31](https://github.com/visulima/visulima/commit/f5d2a31a8fd163c321915a779c661b758b3e6f73))
355
+ * **jsdoc-open-api:** update tests, docs, and source formatting ([9526ec8](https://github.com/visulima/visulima/commit/9526ec8ebb3e0e506d50b2f6035faf0cbcaca205))
356
+ * sorting package.json ([430ed68](https://github.com/visulima/visulima/commit/430ed683d3e38e4c5c5530f787ca832f083b17e4))
357
+ * update lock file maintenance ([d83e716](https://github.com/visulima/visulima/commit/d83e71697b75d24704185b66bb521a934d2db02d))
358
+ * visulima website ([#591](https://github.com/visulima/visulima/issues/591)) ([59ab2e2](https://github.com/visulima/visulima/commit/59ab2e2befb03e51cd2088956f83d9b87de6d033))
359
+ * year update ([47f4105](https://github.com/visulima/visulima/commit/47f410596ce7190cfea36a073db32e0cec50bbcd))
360
+
361
+ ### Code Refactoring
362
+
363
+ * **jsdoc-open-api:** replace read-pkg-up with @visulima/fs and migrate to packem ([be668e4](https://github.com/visulima/visulima/commit/be668e4dc21a3394bcdb22aecf416f9c27e08e0d))
364
+
365
+
366
+ ### Dependencies
367
+
368
+ * **@visulima/fs:** upgraded to 5.0.0-alpha.5
369
+
1
370
  ## @visulima/jsdoc-open-api [3.0.0-alpha.4](https://github.com/visulima/visulima/compare/@visulima/jsdoc-open-api@3.0.0-alpha.3...@visulima/jsdoc-open-api@3.0.0-alpha.4) (2026-01-17)
2
371
 
3
372
  ### Bug Fixes
package/LICENSE.md CHANGED
@@ -1,6 +1,6 @@
1
1
  MIT License
2
2
 
3
- Copyright (c) 2025 visulima
3
+ Copyright (c) 2026 visulima
4
4
 
5
5
  Permission is hereby granted, free of charge, to any person obtaining a copy
6
6
  of this software and associated documentation files (the "Software"), to deal
@@ -24,4 +24,38 @@ SOFTWARE.
24
24
  <!-- /DEPENDENCIES -->
25
25
 
26
26
  <!-- TYPE_DEPENDENCIES -->
27
+
28
+ # Licenses of bundled types
29
+ The published @visulima/jsdoc-open-api artifact additionally contains code with the following licenses:
30
+ MIT
31
+
32
+ # Bundled types:
33
+ ## commander
34
+ License: MIT
35
+ By: TJ Holowaychuk
36
+ Repository: git+https://github.com/tj/commander.js.git
37
+
38
+ > (The MIT License)
39
+ >
40
+ > Copyright (c) 2011 TJ Holowaychuk <tj@vision-media.ca>
41
+ >
42
+ > Permission is hereby granted, free of charge, to any person obtaining
43
+ > a copy of this software and associated documentation files (the
44
+ > 'Software'), to deal in the Software without restriction, including
45
+ > without limitation the rights to use, copy, modify, merge, publish,
46
+ > distribute, sublicense, and/or sell copies of the Software, and to
47
+ > permit persons to whom the Software is furnished to do so, subject to
48
+ > the following conditions:
49
+ >
50
+ > The above copyright notice and this permission notice shall be
51
+ > included in all copies or substantial portions of the Software.
52
+ >
53
+ > THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,
54
+ > EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
55
+ > MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
56
+ > IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
57
+ > CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
58
+ > TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
59
+ > SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
60
+
27
61
  <!-- /TYPE_DEPENDENCIES -->
package/README.md CHANGED
@@ -134,11 +134,23 @@ jsdoc-open-api generate src/routes/**/*.js src/controllers/
134
134
  # Specify output file
135
135
  jsdoc-open-api generate -o ./public/swagger.json src/
136
136
 
137
+ # Emit YAML instead of JSON (format is inferred from the extension)
138
+ jsdoc-open-api generate -o ./openapi.yaml src/
139
+
140
+ # Write the spec to stdout (useful for piping into other tools)
141
+ jsdoc-open-api generate -o - src/
142
+
143
+ # Seed info/servers/components from a standalone base-definition file
144
+ jsdoc-open-api generate -d ./definition.yaml src/
145
+
146
+ # Re-generate automatically whenever a watched path changes
147
+ jsdoc-open-api generate --watch src/
148
+
137
149
  # Use verbose output
138
150
  jsdoc-open-api generate -v src/
139
151
 
140
152
  # Use very verbose output for debugging
141
- jsdoc-open-api generate -d src/
153
+ jsdoc-open-api generate --very-verbose src/
142
154
  ```
143
155
 
144
156
  ### `generate` Command Options:
@@ -149,54 +161,53 @@ jsdoc-open-api generate [options] [path ...]
149
161
 
150
162
  - `[path ...]` : Paths to files or directories to parse (optional, uses configuration if not provided).
151
163
  - `-c, --config [.openapirc.js]` : Specify the configuration file path. Defaults to `.openapirc.js`.
152
- - `-o, --output [swaggerSpec.json]` : Specify the output file for the OpenAPI specification. Defaults to `swaggerSpec.json`.
164
+ - `-d, --definition [definition.yaml]` : Base OpenAPI definition file (YAML or JSON) used to seed `info`/`servers`/`components`. The config's `swaggerDefinition` takes precedence over the file.
165
+ - `-o, --output [swaggerSpec.json]` : Specify the output file for the OpenAPI specification. Defaults to `swagger.json`. Use a `.yaml`/`.yml` extension to emit YAML, or `-` to write to stdout.
166
+ - `-w, --watch` : Re-generate the specification whenever one of the watched paths changes (press Ctrl+C to exit).
153
167
  - `-v, --verbose` : Enable verbose output during generation.
154
- - `-d, --very-verbose` : Enable _very_ verbose output for detailed debugging.
168
+ - `--very-verbose` : Enable _very_ verbose output for detailed debugging.
155
169
 
156
170
  ---
157
171
 
158
172
  ## Programmatic Usage
159
173
 
160
- You can integrate the generation process directly into your Node.js scripts.
174
+ You can assemble a specification directly in your Node.js scripts. The package
175
+ exposes the building blocks rather than a single all-in-one function:
176
+
177
+ - `SpecBuilder` — merges per-file results into a single OpenAPI document.
178
+ - `parseFile` / `parseFileMulti` — read a file and run one (or several) comment translators over it. `parseFileMulti` reads + parses the comments only once when you need both dialects.
179
+ - `jsDocumentCommentsToOpenApi` / `swaggerJsDocumentCommentsToOpenApi` — the two JSDoc dialect translators.
180
+ - `validate` — validate the assembled document with `@apidevtools/swagger-parser` (the same check the CLI runs).
181
+ - `loadDefinition` — load a standalone base-definition file (YAML or JSON).
161
182
 
162
183
  ```javascript
163
184
  import path from "node:path";
164
185
  import { fileURLToPath } from "node:url";
165
- import jsdocOpenApi from "@visulima/jsdoc-open-api"; // Adjust import based on your module system (require vs import)
166
186
 
167
- const __filename = fileURLToPath(import.meta.url);
168
- const __dirname = path.dirname(__filename);
187
+ import { SpecBuilder, parseFileMulti, jsDocumentCommentsToOpenApi, swaggerJsDocumentCommentsToOpenApi, validate } from "@visulima/jsdoc-open-api";
169
188
 
170
- const options = {
171
- definition: {
172
- openapi: "3.0.0",
173
- info: {
174
- title: "My Programmatic API",
175
- version: "1.0.0",
176
- description: "API documentation generated programmatically",
177
- },
178
- // Add other base OpenAPI definition properties here
189
+ const __dirname = path.dirname(fileURLToPath(import.meta.url));
190
+
191
+ const spec = new SpecBuilder({
192
+ openapi: "3.0.0",
193
+ info: {
194
+ title: "My Programmatic API",
195
+ version: "1.0.0",
196
+ description: "API documentation generated programmatically",
179
197
  },
180
- // Glob patterns pointing to your source files with JSDoc comments
181
- sources: [path.join(__dirname, "src/routes/**/*.js")],
182
- // Optional: Specify output path (defaults to 'swaggerSpec.json' in current dir)
183
- // output: path.join(__dirname, 'public/api-docs.json'),
184
- // Optional: Enable verbose logging
185
- // verbose: true,
186
- };
198
+ });
199
+
200
+ const translators = [jsDocumentCommentsToOpenApi, swaggerJsDocumentCommentsToOpenApi];
187
201
 
188
- async function generateDocs() {
189
- try {
190
- const specification = await jsdocOpenApi(options);
191
- console.log("OpenAPI specification generated successfully:");
192
- // The specification object is returned, and also written to the output file if specified.
193
- // console.log(JSON.stringify(specification, null, 2));
194
- } catch (error) {
195
- console.error("Error generating OpenAPI specification:", error);
196
- }
202
+ // Feed each source file through both dialects (single read + single comment parse).
203
+ for (const file of [path.join(__dirname, "src/routes/users.js")]) {
204
+ spec.addData(parseFileMulti(file, translators).map((entry) => entry.spec));
197
205
  }
198
206
 
199
- generateDocs();
207
+ // Re-use the exact validation the CLI performs.
208
+ await validate(structuredClone(spec));
209
+
210
+ console.log(JSON.stringify(spec, null, 2));
200
211
  ```
201
212
 
202
213
  ---
package/bin/index.js CHANGED
@@ -1,24 +1,27 @@
1
1
  #!/usr/bin/env node
2
2
 
3
- const { exit } = require("node:process");
4
- // eslint-disable-next-line import/no-extraneous-dependencies
5
- const { Command } = require("commander");
3
+ import { readFileSync } from "node:fs";
4
+ import { argv, exit } from "node:process";
5
+ import { fileURLToPath } from "node:url";
6
6
 
7
- const { generateCommand, initCommand } = require("../dist/cli/commander");
7
+ // eslint-disable-next-line import/no-extraneous-dependencies -- commander is an optional CLI dependency; the bin only runs when a consumer has installed it
8
+ import { Command } from "commander";
8
9
 
9
- // eslint-disable-next-line no-underscore-dangle
10
- const package_ = require("../package.json");
10
+ // eslint-disable-next-line antfu/no-import-dist -- bin entry point loads the built ESM dist after build
11
+ import { generateCommand, initCommand } from "../dist/cli/commander/index.js";
12
+
13
+ const { version } = JSON.parse(readFileSync(fileURLToPath(new URL("../package.json", import.meta.url)), "utf8"));
11
14
 
12
15
  const program = new Command();
13
16
 
14
- program.name("@visulima/jsdoc-open-api").description("CLI to generate OpenAPI (Swagger) documentation from JSDoc's").version(package_.version);
17
+ program.name("@visulima/jsdoc-open-api").description("CLI to generate OpenAPI (Swagger) documentation from JSDoc's").version(version);
15
18
 
16
19
  initCommand(program);
17
20
  generateCommand(program);
18
21
 
19
- program.parse(process.argv);
22
+ program.parse(argv);
20
23
 
21
- if (process.argv.slice(2).length === 0) {
24
+ if (argv.slice(2).length === 0) {
22
25
  program.help();
23
26
  exit(1);
24
27
  }