@strapi/openapi 0.0.0 → 5.20.0

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 (279) hide show
  1. package/README.md +1 -0
  2. package/dist/assemblers/document/factory.d.ts +8 -0
  3. package/dist/assemblers/document/factory.d.ts.map +1 -0
  4. package/dist/assemblers/document/factory.js +38 -0
  5. package/dist/assemblers/document/factory.js.map +1 -0
  6. package/dist/assemblers/document/factory.mjs +36 -0
  7. package/dist/assemblers/document/factory.mjs.map +1 -0
  8. package/dist/assemblers/document/index.d.ts +5 -0
  9. package/dist/assemblers/document/index.d.ts.map +1 -0
  10. package/dist/assemblers/document/info.d.ts +8 -0
  11. package/dist/assemblers/document/info.d.ts.map +1 -0
  12. package/dist/assemblers/document/info.js +32 -0
  13. package/dist/assemblers/document/info.js.map +1 -0
  14. package/dist/assemblers/document/info.mjs +30 -0
  15. package/dist/assemblers/document/info.mjs.map +1 -0
  16. package/dist/assemblers/document/metadata.d.ts +6 -0
  17. package/dist/assemblers/document/metadata.d.ts.map +1 -0
  18. package/dist/assemblers/document/metadata.js +23 -0
  19. package/dist/assemblers/document/metadata.js.map +1 -0
  20. package/dist/assemblers/document/metadata.mjs +21 -0
  21. package/dist/assemblers/document/metadata.mjs.map +1 -0
  22. package/dist/assemblers/document/path/factory.d.ts +6 -0
  23. package/dist/assemblers/document/path/factory.d.ts.map +1 -0
  24. package/dist/assemblers/document/path/factory.js +27 -0
  25. package/dist/assemblers/document/path/factory.js.map +1 -0
  26. package/dist/assemblers/document/path/factory.mjs +25 -0
  27. package/dist/assemblers/document/path/factory.mjs.map +1 -0
  28. package/dist/assemblers/document/path/index.d.ts +4 -0
  29. package/dist/assemblers/document/path/index.d.ts.map +1 -0
  30. package/dist/assemblers/document/path/path-item/factory.d.ts +6 -0
  31. package/dist/assemblers/document/path/path-item/factory.d.ts.map +1 -0
  32. package/dist/assemblers/document/path/path-item/factory.js +26 -0
  33. package/dist/assemblers/document/path/path-item/factory.js.map +1 -0
  34. package/dist/assemblers/document/path/path-item/factory.mjs +24 -0
  35. package/dist/assemblers/document/path/path-item/factory.mjs.map +1 -0
  36. package/dist/assemblers/document/path/path-item/index.d.ts +4 -0
  37. package/dist/assemblers/document/path/path-item/index.d.ts.map +1 -0
  38. package/dist/assemblers/document/path/path-item/operation/body.d.ts +7 -0
  39. package/dist/assemblers/document/path/path-item/operation/body.d.ts.map +1 -0
  40. package/dist/assemblers/document/path/path-item/operation/body.js +27 -0
  41. package/dist/assemblers/document/path/path-item/operation/body.js.map +1 -0
  42. package/dist/assemblers/document/path/path-item/operation/body.mjs +25 -0
  43. package/dist/assemblers/document/path/path-item/operation/body.mjs.map +1 -0
  44. package/dist/assemblers/document/path/path-item/operation/factory.d.ts +10 -0
  45. package/dist/assemblers/document/path/path-item/operation/factory.d.ts.map +1 -0
  46. package/dist/assemblers/document/path/path-item/operation/factory.js +37 -0
  47. package/dist/assemblers/document/path/path-item/operation/factory.js.map +1 -0
  48. package/dist/assemblers/document/path/path-item/operation/factory.mjs +35 -0
  49. package/dist/assemblers/document/path/path-item/operation/factory.mjs.map +1 -0
  50. package/dist/assemblers/document/path/path-item/operation/index.d.ts +8 -0
  51. package/dist/assemblers/document/path/path-item/operation/index.d.ts.map +1 -0
  52. package/dist/assemblers/document/path/path-item/operation/operation-id.d.ts +10 -0
  53. package/dist/assemblers/document/path/path-item/operation/operation-id.d.ts.map +1 -0
  54. package/dist/assemblers/document/path/path-item/operation/operation-id.js +47 -0
  55. package/dist/assemblers/document/path/path-item/operation/operation-id.js.map +1 -0
  56. package/dist/assemblers/document/path/path-item/operation/operation-id.mjs +45 -0
  57. package/dist/assemblers/document/path/path-item/operation/operation-id.mjs.map +1 -0
  58. package/dist/assemblers/document/path/path-item/operation/operation.d.ts +13 -0
  59. package/dist/assemblers/document/path/path-item/operation/operation.d.ts.map +1 -0
  60. package/dist/assemblers/document/path/path-item/operation/operation.js +51 -0
  61. package/dist/assemblers/document/path/path-item/operation/operation.js.map +1 -0
  62. package/dist/assemblers/document/path/path-item/operation/operation.mjs +49 -0
  63. package/dist/assemblers/document/path/path-item/operation/operation.mjs.map +1 -0
  64. package/dist/assemblers/document/path/path-item/operation/parameters.d.ts +9 -0
  65. package/dist/assemblers/document/path/path-item/operation/parameters.d.ts.map +1 -0
  66. package/dist/assemblers/document/path/path-item/operation/parameters.js +67 -0
  67. package/dist/assemblers/document/path/path-item/operation/parameters.js.map +1 -0
  68. package/dist/assemblers/document/path/path-item/operation/parameters.mjs +65 -0
  69. package/dist/assemblers/document/path/path-item/operation/parameters.mjs.map +1 -0
  70. package/dist/assemblers/document/path/path-item/operation/responses.d.ts +8 -0
  71. package/dist/assemblers/document/path/path-item/operation/responses.d.ts.map +1 -0
  72. package/dist/assemblers/document/path/path-item/operation/responses.js +51 -0
  73. package/dist/assemblers/document/path/path-item/operation/responses.js.map +1 -0
  74. package/dist/assemblers/document/path/path-item/operation/responses.mjs +49 -0
  75. package/dist/assemblers/document/path/path-item/operation/responses.mjs.map +1 -0
  76. package/dist/assemblers/document/path/path-item/operation/tags.d.ts +7 -0
  77. package/dist/assemblers/document/path/path-item/operation/tags.d.ts.map +1 -0
  78. package/dist/assemblers/document/path/path-item/operation/tags.js +25 -0
  79. package/dist/assemblers/document/path/path-item/operation/tags.js.map +1 -0
  80. package/dist/assemblers/document/path/path-item/operation/tags.mjs +23 -0
  81. package/dist/assemblers/document/path/path-item/operation/tags.mjs.map +1 -0
  82. package/dist/assemblers/document/path/path-item/path-item.d.ts +13 -0
  83. package/dist/assemblers/document/path/path-item/path-item.d.ts.map +1 -0
  84. package/dist/assemblers/document/path/path-item/path-item.js +53 -0
  85. package/dist/assemblers/document/path/path-item/path-item.js.map +1 -0
  86. package/dist/assemblers/document/path/path-item/path-item.mjs +51 -0
  87. package/dist/assemblers/document/path/path-item/path-item.mjs.map +1 -0
  88. package/dist/assemblers/document/path/path.d.ts +10 -0
  89. package/dist/assemblers/document/path/path.d.ts.map +1 -0
  90. package/dist/assemblers/document/path/path.js +28 -0
  91. package/dist/assemblers/document/path/path.js.map +1 -0
  92. package/dist/assemblers/document/path/path.mjs +26 -0
  93. package/dist/assemblers/document/path/path.mjs.map +1 -0
  94. package/dist/assemblers/index.d.ts +3 -0
  95. package/dist/assemblers/index.d.ts.map +1 -0
  96. package/dist/assemblers/types.d.ts +18 -0
  97. package/dist/assemblers/types.d.ts.map +1 -0
  98. package/dist/constants.d.ts +3 -0
  99. package/dist/constants.d.ts.map +1 -0
  100. package/dist/constants.js +8 -0
  101. package/dist/constants.js.map +1 -0
  102. package/dist/constants.mjs +5 -0
  103. package/dist/constants.mjs.map +1 -0
  104. package/dist/context/factories/abstract.d.ts +11 -0
  105. package/dist/context/factories/abstract.d.ts.map +1 -0
  106. package/dist/context/factories/abstract.js +38 -0
  107. package/dist/context/factories/abstract.js.map +1 -0
  108. package/dist/context/factories/abstract.mjs +36 -0
  109. package/dist/context/factories/abstract.mjs.map +1 -0
  110. package/dist/context/factories/document.d.ts +11 -0
  111. package/dist/context/factories/document.d.ts.map +1 -0
  112. package/dist/context/factories/document.js +20 -0
  113. package/dist/context/factories/document.js.map +1 -0
  114. package/dist/context/factories/document.mjs +18 -0
  115. package/dist/context/factories/document.mjs.map +1 -0
  116. package/dist/context/factories/index.d.ts +6 -0
  117. package/dist/context/factories/index.d.ts.map +1 -0
  118. package/dist/context/factories/operation.d.ts +11 -0
  119. package/dist/context/factories/operation.d.ts.map +1 -0
  120. package/dist/context/factories/operation.js +20 -0
  121. package/dist/context/factories/operation.js.map +1 -0
  122. package/dist/context/factories/operation.mjs +18 -0
  123. package/dist/context/factories/operation.mjs.map +1 -0
  124. package/dist/context/factories/path-item.d.ts +10 -0
  125. package/dist/context/factories/path-item.d.ts.map +1 -0
  126. package/dist/context/factories/path-item.js +20 -0
  127. package/dist/context/factories/path-item.js.map +1 -0
  128. package/dist/context/factories/path-item.mjs +18 -0
  129. package/dist/context/factories/path-item.mjs.map +1 -0
  130. package/dist/context/factories/path.d.ts +10 -0
  131. package/dist/context/factories/path.d.ts.map +1 -0
  132. package/dist/context/factories/path.js +20 -0
  133. package/dist/context/factories/path.js.map +1 -0
  134. package/dist/context/factories/path.mjs +18 -0
  135. package/dist/context/factories/path.mjs.map +1 -0
  136. package/dist/context/index.d.ts +3 -0
  137. package/dist/context/index.d.ts.map +1 -0
  138. package/dist/context/types.d.ts +28 -0
  139. package/dist/context/types.d.ts.map +1 -0
  140. package/dist/exports.d.ts +35 -0
  141. package/dist/exports.d.ts.map +1 -0
  142. package/dist/exports.js +76 -0
  143. package/dist/exports.js.map +1 -0
  144. package/dist/exports.mjs +74 -0
  145. package/dist/exports.mjs.map +1 -0
  146. package/dist/generator/generator.d.ts +29 -0
  147. package/dist/generator/generator.d.ts.map +1 -0
  148. package/dist/generator/generator.js +85 -0
  149. package/dist/generator/generator.js.map +1 -0
  150. package/dist/generator/generator.mjs +83 -0
  151. package/dist/generator/generator.mjs.map +1 -0
  152. package/dist/generator/index.d.ts +3 -0
  153. package/dist/generator/index.d.ts.map +1 -0
  154. package/dist/generator/types.d.ts +12 -0
  155. package/dist/generator/types.d.ts.map +1 -0
  156. package/dist/index.d.ts +1 -0
  157. package/dist/index.d.ts.map +1 -1
  158. package/dist/index.js +5 -0
  159. package/dist/index.js.map +1 -1
  160. package/dist/index.mjs +1 -1
  161. package/dist/post-processor/component-writer.d.ts +6 -0
  162. package/dist/post-processor/component-writer.d.ts.map +1 -0
  163. package/dist/post-processor/component-writer.js +38 -0
  164. package/dist/post-processor/component-writer.js.map +1 -0
  165. package/dist/post-processor/component-writer.mjs +17 -0
  166. package/dist/post-processor/component-writer.mjs.map +1 -0
  167. package/dist/post-processor/factory.d.ts +5 -0
  168. package/dist/post-processor/factory.d.ts.map +1 -0
  169. package/dist/post-processor/factory.js +14 -0
  170. package/dist/post-processor/factory.js.map +1 -0
  171. package/dist/post-processor/factory.mjs +12 -0
  172. package/dist/post-processor/factory.mjs.map +1 -0
  173. package/dist/post-processor/index.d.ts +4 -0
  174. package/dist/post-processor/index.d.ts.map +1 -0
  175. package/dist/post-processor/types.d.ts +5 -0
  176. package/dist/post-processor/types.d.ts.map +1 -0
  177. package/dist/pre-processor/factory.d.ts +5 -0
  178. package/dist/pre-processor/factory.d.ts.map +1 -0
  179. package/dist/pre-processor/factory.js +10 -0
  180. package/dist/pre-processor/factory.js.map +1 -0
  181. package/dist/pre-processor/factory.mjs +8 -0
  182. package/dist/pre-processor/factory.mjs.map +1 -0
  183. package/dist/pre-processor/index.d.ts +3 -0
  184. package/dist/pre-processor/index.d.ts.map +1 -0
  185. package/dist/pre-processor/types.d.ts +5 -0
  186. package/dist/pre-processor/types.d.ts.map +1 -0
  187. package/dist/registries/factory.d.ts +4 -0
  188. package/dist/registries/factory.d.ts.map +1 -0
  189. package/dist/registries/factory.js +10 -0
  190. package/dist/registries/factory.js.map +1 -0
  191. package/dist/registries/factory.mjs +8 -0
  192. package/dist/registries/factory.mjs.map +1 -0
  193. package/dist/registries/index.d.ts +3 -0
  194. package/dist/registries/index.d.ts.map +1 -0
  195. package/dist/registries/types.d.ts +3 -0
  196. package/dist/registries/types.d.ts.map +1 -0
  197. package/dist/routes/collector.d.ts +29 -0
  198. package/dist/routes/collector.d.ts.map +1 -0
  199. package/dist/routes/collector.js +40 -0
  200. package/dist/routes/collector.js.map +1 -0
  201. package/dist/routes/collector.mjs +38 -0
  202. package/dist/routes/collector.mjs.map +1 -0
  203. package/dist/routes/index.d.ts +7 -0
  204. package/dist/routes/index.d.ts.map +1 -0
  205. package/dist/routes/matcher.d.ts +25 -0
  206. package/dist/routes/matcher.d.ts.map +1 -0
  207. package/dist/routes/matcher.js +24 -0
  208. package/dist/routes/matcher.js.map +1 -0
  209. package/dist/routes/matcher.mjs +22 -0
  210. package/dist/routes/matcher.mjs.map +1 -0
  211. package/dist/routes/providers/abstract.d.ts +35 -0
  212. package/dist/routes/providers/abstract.d.ts.map +1 -0
  213. package/dist/routes/providers/abstract.js +29 -0
  214. package/dist/routes/providers/abstract.js.map +1 -0
  215. package/dist/routes/providers/abstract.mjs +27 -0
  216. package/dist/routes/providers/abstract.mjs.map +1 -0
  217. package/dist/routes/providers/admin.d.ts +6 -0
  218. package/dist/routes/providers/admin.d.ts.map +1 -0
  219. package/dist/routes/providers/admin.js +19 -0
  220. package/dist/routes/providers/admin.js.map +1 -0
  221. package/dist/routes/providers/admin.mjs +17 -0
  222. package/dist/routes/providers/admin.mjs.map +1 -0
  223. package/dist/routes/providers/api.d.ts +22 -0
  224. package/dist/routes/providers/api.d.ts.map +1 -0
  225. package/dist/routes/providers/api.js +35 -0
  226. package/dist/routes/providers/api.js.map +1 -0
  227. package/dist/routes/providers/api.mjs +33 -0
  228. package/dist/routes/providers/api.mjs.map +1 -0
  229. package/dist/routes/providers/index.d.ts +6 -0
  230. package/dist/routes/providers/index.d.ts.map +1 -0
  231. package/dist/routes/providers/plugin.d.ts +23 -0
  232. package/dist/routes/providers/plugin.d.ts.map +1 -0
  233. package/dist/routes/providers/plugin.js +37 -0
  234. package/dist/routes/providers/plugin.js.map +1 -0
  235. package/dist/routes/providers/plugin.mjs +35 -0
  236. package/dist/routes/providers/plugin.mjs.map +1 -0
  237. package/dist/routes/providers/types.d.ts +13 -0
  238. package/dist/routes/providers/types.d.ts.map +1 -0
  239. package/dist/routes/rules/index.d.ts +2 -0
  240. package/dist/routes/rules/index.d.ts.map +1 -0
  241. package/dist/routes/rules/is-of-type.d.ts +3 -0
  242. package/dist/routes/rules/is-of-type.d.ts.map +1 -0
  243. package/dist/routes/rules/is-of-type.js +8 -0
  244. package/dist/routes/rules/is-of-type.js.map +1 -0
  245. package/dist/routes/rules/is-of-type.mjs +6 -0
  246. package/dist/routes/rules/is-of-type.mjs.map +1 -0
  247. package/dist/routes/types.d.ts +6 -0
  248. package/dist/routes/types.d.ts.map +1 -0
  249. package/dist/types.d.ts +14 -0
  250. package/dist/types.d.ts.map +1 -0
  251. package/dist/utils/debug.d.ts +3 -0
  252. package/dist/utils/debug.d.ts.map +1 -0
  253. package/dist/utils/debug.js +11 -0
  254. package/dist/utils/debug.js.map +1 -0
  255. package/dist/utils/debug.mjs +9 -0
  256. package/dist/utils/debug.mjs.map +1 -0
  257. package/dist/utils/index.d.ts +4 -0
  258. package/dist/utils/index.d.ts.map +1 -0
  259. package/dist/utils/timer/factory.d.ts +5 -0
  260. package/dist/utils/timer/factory.d.ts.map +1 -0
  261. package/dist/utils/timer/factory.js +12 -0
  262. package/dist/utils/timer/factory.js.map +1 -0
  263. package/dist/utils/timer/factory.mjs +10 -0
  264. package/dist/utils/timer/factory.mjs.map +1 -0
  265. package/dist/utils/timer/index.d.ts +3 -0
  266. package/dist/utils/timer/index.d.ts.map +1 -0
  267. package/dist/utils/timer/timer.d.ts +14 -0
  268. package/dist/utils/timer/timer.d.ts.map +1 -0
  269. package/dist/utils/timer/timer.js +38 -0
  270. package/dist/utils/timer/timer.js.map +1 -0
  271. package/dist/utils/timer/timer.mjs +36 -0
  272. package/dist/utils/timer/timer.mjs.map +1 -0
  273. package/dist/utils/zod.d.ts +39 -0
  274. package/dist/utils/zod.d.ts.map +1 -0
  275. package/dist/utils/zod.js +86 -0
  276. package/dist/utils/zod.js.map +1 -0
  277. package/dist/utils/zod.mjs +64 -0
  278. package/dist/utils/zod.mjs.map +1 -0
  279. package/package.json +25 -12
@@ -0,0 +1,83 @@
1
+ import { createDebugger } from '../utils/debug.mjs';
2
+ import 'node:crypto';
3
+ import 'zod/v4';
4
+
5
+ const debug = createDebugger('generator');
6
+ class OpenAPIGenerator {
7
+ generate(_options) {
8
+ debug('generating a new OpenAPI document with the following options: %O', _options);
9
+ const context = this._initContext(this._strapi);
10
+ this// Init timers
11
+ ._bootstrap(context)// Run registered pre-processors
12
+ ._preProcess(context)// Run registered section assemblers
13
+ ._assemble(context)// Run registered post-processors
14
+ ._postProcess(context)// Clean up and set necessary properties
15
+ ._finalize(context);
16
+ const { data, stats } = context.output;
17
+ return {
18
+ document: data,
19
+ durationMs: stats.time.elapsedTime
20
+ };
21
+ }
22
+ _initContext(strapi) {
23
+ debug('collecting registered routes...');
24
+ const routes = this._routeCollector.collect();
25
+ debug('creating the initial document generation context...');
26
+ return this._contextFactory.create({
27
+ strapi,
28
+ routes
29
+ });
30
+ }
31
+ _bootstrap(context) {
32
+ const { timer } = context;
33
+ timer.reset();
34
+ const startedAt = timer.start();
35
+ debug('started generation: %o', new Date(startedAt).toISOString());
36
+ return this;
37
+ }
38
+ _finalize(context) {
39
+ const { timer, output } = context;
40
+ output.stats.time = timer.stop();
41
+ const { endTime, elapsedTime } = output.stats.time;
42
+ debug('completed generation: %O (elapsed: %Oms)', new Date(endTime).toISOString(), elapsedTime);
43
+ return this;
44
+ }
45
+ _preProcess(context) {
46
+ for (const preProcessor of this._preProcessors){
47
+ debug('running pre-processor: %s...', preProcessor.constructor.name);
48
+ preProcessor.preProcess(context);
49
+ }
50
+ return this;
51
+ }
52
+ _assemble(context) {
53
+ for (const assembler of this._assemblers){
54
+ debug('running assembler: %s...', assembler.constructor.name);
55
+ assembler.assemble(context);
56
+ }
57
+ return this;
58
+ }
59
+ _postProcess(context) {
60
+ for (const postProcessor of this._postProcessors){
61
+ debug('running post-processor: %s...', postProcessor.constructor.name);
62
+ postProcessor.postProcess(context);
63
+ }
64
+ return this;
65
+ }
66
+ constructor(// Config
67
+ config, // Dependencies
68
+ strapi, routeCollector, // Factories
69
+ contextFactory){
70
+ // Config
71
+ this._assemblers = config.assemblers ?? [];
72
+ this._preProcessors = config.preProcessors ?? [];
73
+ this._postProcessors = config.postProcessors ?? [];
74
+ // Dependencies
75
+ this._strapi = strapi;
76
+ this._routeCollector = routeCollector;
77
+ // Factories
78
+ this._contextFactory = contextFactory;
79
+ }
80
+ }
81
+
82
+ export { OpenAPIGenerator };
83
+ //# sourceMappingURL=generator.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generator.mjs","sources":["../../src/generator/generator.ts"],"sourcesContent":["import type { Core } from '@strapi/types';\nimport type { OpenAPIV3_1 } from 'openapi-types';\n\nimport type { Assembler } from '../assemblers';\nimport type { DocumentContextFactory } from '../context';\nimport type { PostProcessor } from '../post-processor';\nimport type { PreProcessor } from '../pre-processor';\nimport type { RouteCollector } from '../routes';\nimport type { DocumentContext } from '../types';\n\nimport type { GeneratorOptions, GeneratorOutput } from './types';\n\nimport { createDebugger } from '../utils';\n\nconst debug = createDebugger('generator');\n\nexport interface OpenAPIGeneratorConfig {\n preProcessors?: PreProcessor[];\n assemblers?: Assembler.Document[];\n postProcessors?: PostProcessor[];\n}\n\nexport class OpenAPIGenerator {\n // Config\n private readonly _assemblers: Assembler.Document[];\n\n private readonly _preProcessors: PreProcessor[];\n\n private readonly _postProcessors: PostProcessor[];\n\n // Dependencies\n private readonly _strapi: Core.Strapi;\n\n private readonly _routeCollector: RouteCollector;\n\n // Factories\n private readonly _contextFactory: DocumentContextFactory;\n\n constructor(\n // Config\n config: OpenAPIGeneratorConfig,\n\n // Dependencies\n strapi: Core.Strapi,\n routeCollector: RouteCollector,\n\n // Factories\n contextFactory: DocumentContextFactory\n ) {\n // Config\n this._assemblers = config.assemblers ?? [];\n this._preProcessors = config.preProcessors ?? [];\n this._postProcessors = config.postProcessors ?? [];\n\n // Dependencies\n this._strapi = strapi;\n this._routeCollector = routeCollector;\n\n // Factories\n this._contextFactory = contextFactory;\n }\n\n generate(_options?: GeneratorOptions): GeneratorOutput {\n debug('generating a new OpenAPI document with the following options: %O', _options);\n\n const context = this._initContext(this._strapi);\n\n this\n // Init timers\n ._bootstrap(context)\n // Run registered pre-processors\n ._preProcess(context)\n // Run registered section assemblers\n ._assemble(context)\n // Run registered post-processors\n ._postProcess(context)\n // Clean up and set necessary properties\n ._finalize(context);\n\n const { data, stats } = context.output;\n\n return { document: data as OpenAPIV3_1.Document, durationMs: stats.time.elapsedTime };\n }\n\n private _initContext(strapi: Core.Strapi): DocumentContext {\n debug('collecting registered routes...');\n const routes = this._routeCollector.collect();\n\n debug('creating the initial document generation context...');\n return this._contextFactory.create({ strapi, routes });\n }\n\n private _bootstrap(context: DocumentContext) {\n const { timer } = context;\n\n timer.reset();\n\n const startedAt = timer.start();\n\n debug('started generation: %o', new Date(startedAt).toISOString());\n\n return this;\n }\n\n private _finalize(context: DocumentContext) {\n const { timer, output } = context;\n\n output.stats.time = timer.stop();\n\n const { endTime, elapsedTime } = output.stats.time;\n\n debug('completed generation: %O (elapsed: %Oms)', new Date(endTime).toISOString(), elapsedTime);\n\n return this;\n }\n\n private _preProcess(context: DocumentContext) {\n for (const preProcessor of this._preProcessors) {\n debug('running pre-processor: %s...', preProcessor.constructor.name);\n\n preProcessor.preProcess(context);\n }\n\n return this;\n }\n\n private _assemble(context: DocumentContext) {\n for (const assembler of this._assemblers) {\n debug('running assembler: %s...', assembler.constructor.name);\n\n assembler.assemble(context);\n }\n\n return this;\n }\n\n private _postProcess(context: DocumentContext) {\n for (const postProcessor of this._postProcessors) {\n debug('running post-processor: %s...', postProcessor.constructor.name);\n\n postProcessor.postProcess(context);\n }\n\n return this;\n }\n}\n"],"names":["debug","createDebugger","OpenAPIGenerator","generate","_options","context","_initContext","_strapi","_bootstrap","_preProcess","_assemble","_postProcess","_finalize","data","stats","output","document","durationMs","time","elapsedTime","strapi","routes","_routeCollector","collect","_contextFactory","create","timer","reset","startedAt","start","Date","toISOString","stop","endTime","preProcessor","_preProcessors","constructor","name","preProcess","assembler","_assemblers","assemble","postProcessor","_postProcessors","postProcess","config","routeCollector","contextFactory","assemblers","preProcessors","postProcessors"],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ export { OpenAPIGenerator } from './generator';
2
+ export type * from './types';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/generator/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAE/C,mBAAmB,SAAS,CAAC"}
@@ -0,0 +1,12 @@
1
+ import type { OpenAPIV3_1 } from 'openapi-types';
2
+ export interface GeneratorOutputOptions {
3
+ validate?: boolean;
4
+ }
5
+ export interface GeneratorOptions {
6
+ output: GeneratorOutputOptions;
7
+ }
8
+ export interface GeneratorOutput {
9
+ document: OpenAPIV3_1.Document;
10
+ durationMs: number;
11
+ }
12
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/generator/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAEjD,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,sBAAsB,CAAC;CAChC;AAED,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,WAAW,CAAC,QAAQ,CAAC;IAC/B,UAAU,EAAE,MAAM,CAAC;CACpB"}
package/dist/index.d.ts CHANGED
@@ -1 +1,2 @@
1
+ export * from './exports';
1
2
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":""}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC"}
package/dist/index.js CHANGED
@@ -1,3 +1,8 @@
1
1
  'use strict';
2
2
 
3
+ var exports$1 = require('./exports.js');
4
+
5
+
6
+
7
+ exports.generate = exports$1.generate;
3
8
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;"}
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;"}
package/dist/index.mjs CHANGED
@@ -1,2 +1,2 @@
1
-
1
+ export { generate } from './exports.mjs';
2
2
  //# sourceMappingURL=index.mjs.map
@@ -0,0 +1,6 @@
1
+ import type { DocumentContext } from '../types';
2
+ import type { PostProcessor } from './types';
3
+ export declare class ComponentsWriter implements PostProcessor {
4
+ postProcess(context: DocumentContext): void;
5
+ }
6
+ //# sourceMappingURL=component-writer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"component-writer.d.ts","sourceRoot":"","sources":["../../src/post-processor/component-writer.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAEhD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAE7C,qBAAa,gBAAiB,YAAW,aAAa;IACpD,WAAW,CAAC,OAAO,EAAE,eAAe,GAAG,IAAI;CAS5C"}
@@ -0,0 +1,38 @@
1
+ 'use strict';
2
+
3
+ var z = require('zod/v4');
4
+ var zod = require('../utils/zod.js');
5
+
6
+ function _interopNamespaceDefault(e) {
7
+ var n = Object.create(null);
8
+ if (e) {
9
+ Object.keys(e).forEach(function (k) {
10
+ if (k !== 'default') {
11
+ var d = Object.getOwnPropertyDescriptor(e, k);
12
+ Object.defineProperty(n, k, d.get ? d : {
13
+ enumerable: true,
14
+ get: function () { return e[k]; }
15
+ });
16
+ }
17
+ });
18
+ }
19
+ n.default = e;
20
+ return Object.freeze(n);
21
+ }
22
+
23
+ var z__namespace = /*#__PURE__*/_interopNamespaceDefault(z);
24
+
25
+ class ComponentsWriter {
26
+ postProcess(context) {
27
+ const { output } = context;
28
+ const { schemas } = z__namespace.toJSONSchema(z__namespace.globalRegistry, {
29
+ uri: zod.toComponentsPath
30
+ });
31
+ output.data.components = {
32
+ schemas
33
+ };
34
+ }
35
+ }
36
+
37
+ exports.ComponentsWriter = ComponentsWriter;
38
+ //# sourceMappingURL=component-writer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"component-writer.js","sources":["../../src/post-processor/component-writer.ts"],"sourcesContent":["import { OpenAPIV3_1 } from 'openapi-types';\nimport * as z from 'zod/v4';\nimport type { DocumentContext } from '../types';\nimport { toComponentsPath } from '../utils/zod';\nimport type { PostProcessor } from './types';\n\nexport class ComponentsWriter implements PostProcessor {\n postProcess(context: DocumentContext): void {\n const { output } = context;\n\n const { schemas } = z.toJSONSchema(z.globalRegistry, {\n uri: toComponentsPath,\n }) as OpenAPIV3_1.ComponentsObject;\n\n output.data.components = { schemas };\n }\n}\n"],"names":["ComponentsWriter","postProcess","context","output","schemas","z","toJSONSchema","globalRegistry","uri","toComponentsPath","data","components"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAMO,MAAMA,gBAAAA,CAAAA;AACXC,IAAAA,WAAAA,CAAYC,OAAwB,EAAQ;QAC1C,MAAM,EAAEC,MAAM,EAAE,GAAGD,OAAAA;QAEnB,MAAM,EAAEE,OAAO,EAAE,GAAGC,aAAEC,YAAY,CAACD,YAAEE,CAAAA,cAAc,EAAE;YACnDC,GAAKC,EAAAA;AACP,SAAA,CAAA;QAEAN,MAAOO,CAAAA,IAAI,CAACC,UAAU,GAAG;AAAEP,YAAAA;AAAQ,SAAA;AACrC;AACF;;;;"}
@@ -0,0 +1,17 @@
1
+ import * as z from 'zod/v4';
2
+ import { toComponentsPath } from '../utils/zod.mjs';
3
+
4
+ class ComponentsWriter {
5
+ postProcess(context) {
6
+ const { output } = context;
7
+ const { schemas } = z.toJSONSchema(z.globalRegistry, {
8
+ uri: toComponentsPath
9
+ });
10
+ output.data.components = {
11
+ schemas
12
+ };
13
+ }
14
+ }
15
+
16
+ export { ComponentsWriter };
17
+ //# sourceMappingURL=component-writer.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"component-writer.mjs","sources":["../../src/post-processor/component-writer.ts"],"sourcesContent":["import { OpenAPIV3_1 } from 'openapi-types';\nimport * as z from 'zod/v4';\nimport type { DocumentContext } from '../types';\nimport { toComponentsPath } from '../utils/zod';\nimport type { PostProcessor } from './types';\n\nexport class ComponentsWriter implements PostProcessor {\n postProcess(context: DocumentContext): void {\n const { output } = context;\n\n const { schemas } = z.toJSONSchema(z.globalRegistry, {\n uri: toComponentsPath,\n }) as OpenAPIV3_1.ComponentsObject;\n\n output.data.components = { schemas };\n }\n}\n"],"names":["ComponentsWriter","postProcess","context","output","schemas","z","toJSONSchema","globalRegistry","uri","toComponentsPath","data","components"],"mappings":";;;AAMO,MAAMA,gBAAAA,CAAAA;AACXC,IAAAA,WAAAA,CAAYC,OAAwB,EAAQ;QAC1C,MAAM,EAAEC,MAAM,EAAE,GAAGD,OAAAA;QAEnB,MAAM,EAAEE,OAAO,EAAE,GAAGC,EAAEC,YAAY,CAACD,CAAEE,CAAAA,cAAc,EAAE;YACnDC,GAAKC,EAAAA;AACP,SAAA,CAAA;QAEAN,MAAOO,CAAAA,IAAI,CAACC,UAAU,GAAG;AAAEP,YAAAA;AAAQ,SAAA;AACrC;AACF;;;;"}
@@ -0,0 +1,5 @@
1
+ import type { PostProcessor } from './types';
2
+ export declare class PostProcessorsFactory {
3
+ createAll(): PostProcessor[];
4
+ }
5
+ //# sourceMappingURL=factory.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"factory.d.ts","sourceRoot":"","sources":["../../src/post-processor/factory.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAE7C,qBAAa,qBAAqB;IAChC,SAAS,IAAI,aAAa,EAAE;CAG7B"}
@@ -0,0 +1,14 @@
1
+ 'use strict';
2
+
3
+ var componentWriter = require('./component-writer.js');
4
+
5
+ class PostProcessorsFactory {
6
+ createAll() {
7
+ return [
8
+ new componentWriter.ComponentsWriter()
9
+ ];
10
+ }
11
+ }
12
+
13
+ exports.PostProcessorsFactory = PostProcessorsFactory;
14
+ //# sourceMappingURL=factory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"factory.js","sources":["../../src/post-processor/factory.ts"],"sourcesContent":["import { ComponentsWriter } from './component-writer';\n\nimport type { PostProcessor } from './types';\n\nexport class PostProcessorsFactory {\n createAll(): PostProcessor[] {\n return [new ComponentsWriter()];\n }\n}\n"],"names":["PostProcessorsFactory","createAll","ComponentsWriter"],"mappings":";;;;AAIO,MAAMA,qBAAAA,CAAAA;IACXC,SAA6B,GAAA;QAC3B,OAAO;YAAC,IAAIC,gCAAAA;AAAmB,SAAA;AACjC;AACF;;;;"}
@@ -0,0 +1,12 @@
1
+ import { ComponentsWriter } from './component-writer.mjs';
2
+
3
+ class PostProcessorsFactory {
4
+ createAll() {
5
+ return [
6
+ new ComponentsWriter()
7
+ ];
8
+ }
9
+ }
10
+
11
+ export { PostProcessorsFactory };
12
+ //# sourceMappingURL=factory.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"factory.mjs","sources":["../../src/post-processor/factory.ts"],"sourcesContent":["import { ComponentsWriter } from './component-writer';\n\nimport type { PostProcessor } from './types';\n\nexport class PostProcessorsFactory {\n createAll(): PostProcessor[] {\n return [new ComponentsWriter()];\n }\n}\n"],"names":["PostProcessorsFactory","createAll","ComponentsWriter"],"mappings":";;AAIO,MAAMA,qBAAAA,CAAAA;IACXC,SAA6B,GAAA;QAC3B,OAAO;YAAC,IAAIC,gBAAAA;AAAmB,SAAA;AACjC;AACF;;;;"}
@@ -0,0 +1,4 @@
1
+ export { ComponentsWriter } from './component-writer';
2
+ export { PostProcessorsFactory } from './factory';
3
+ export type * from './types';
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/post-processor/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,qBAAqB,EAAE,MAAM,WAAW,CAAC;AAElD,mBAAmB,SAAS,CAAC"}
@@ -0,0 +1,5 @@
1
+ import type { DocumentContext } from '../types';
2
+ export interface PostProcessor {
3
+ postProcess(context: DocumentContext): void;
4
+ }
5
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/post-processor/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAEhD,MAAM,WAAW,aAAa;IAC5B,WAAW,CAAC,OAAO,EAAE,eAAe,GAAG,IAAI,CAAC;CAC7C"}
@@ -0,0 +1,5 @@
1
+ import type { PreProcessor } from './types';
2
+ export declare class PreProcessorFactory {
3
+ createAll(): PreProcessor[];
4
+ }
5
+ //# sourceMappingURL=factory.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"factory.d.ts","sourceRoot":"","sources":["../../src/pre-processor/factory.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAE5C,qBAAa,mBAAmB;IAC9B,SAAS,IAAI,YAAY,EAAE;CAG5B"}
@@ -0,0 +1,10 @@
1
+ 'use strict';
2
+
3
+ class PreProcessorFactory {
4
+ createAll() {
5
+ return [];
6
+ }
7
+ }
8
+
9
+ exports.PreProcessorFactory = PreProcessorFactory;
10
+ //# sourceMappingURL=factory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"factory.js","sources":["../../src/pre-processor/factory.ts"],"sourcesContent":["import type { PreProcessor } from './types';\n\nexport class PreProcessorFactory {\n createAll(): PreProcessor[] {\n return [];\n }\n}\n"],"names":["PreProcessorFactory","createAll"],"mappings":";;AAEO,MAAMA,mBAAAA,CAAAA;IACXC,SAA4B,GAAA;AAC1B,QAAA,OAAO,EAAE;AACX;AACF;;;;"}
@@ -0,0 +1,8 @@
1
+ class PreProcessorFactory {
2
+ createAll() {
3
+ return [];
4
+ }
5
+ }
6
+
7
+ export { PreProcessorFactory };
8
+ //# sourceMappingURL=factory.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"factory.mjs","sources":["../../src/pre-processor/factory.ts"],"sourcesContent":["import type { PreProcessor } from './types';\n\nexport class PreProcessorFactory {\n createAll(): PreProcessor[] {\n return [];\n }\n}\n"],"names":["PreProcessorFactory","createAll"],"mappings":"AAEO,MAAMA,mBAAAA,CAAAA;IACXC,SAA4B,GAAA;AAC1B,QAAA,OAAO,EAAE;AACX;AACF;;;;"}
@@ -0,0 +1,3 @@
1
+ export { PreProcessorFactory } from './factory';
2
+ export type * from './types';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/pre-processor/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AAGhD,mBAAmB,SAAS,CAAC"}
@@ -0,0 +1,5 @@
1
+ import type { DocumentContext } from '../types';
2
+ export interface PreProcessor {
3
+ preProcess(context: DocumentContext): void;
4
+ }
5
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/pre-processor/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAEhD,MAAM,WAAW,YAAY;IAC3B,UAAU,CAAC,OAAO,EAAE,eAAe,GAAG,IAAI,CAAC;CAC5C"}
@@ -0,0 +1,4 @@
1
+ export declare class RegistriesFactory {
2
+ createAll(): {};
3
+ }
4
+ //# sourceMappingURL=factory.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"factory.d.ts","sourceRoot":"","sources":["../../src/registries/factory.ts"],"names":[],"mappings":"AAAA,qBAAa,iBAAiB;IAC5B,SAAS;CAGV"}
@@ -0,0 +1,10 @@
1
+ 'use strict';
2
+
3
+ class RegistriesFactory {
4
+ createAll() {
5
+ return {};
6
+ }
7
+ }
8
+
9
+ exports.RegistriesFactory = RegistriesFactory;
10
+ //# sourceMappingURL=factory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"factory.js","sources":["../../src/registries/factory.ts"],"sourcesContent":["export class RegistriesFactory {\n createAll() {\n return {};\n }\n}\n"],"names":["RegistriesFactory","createAll"],"mappings":";;AAAO,MAAMA,iBAAAA,CAAAA;IACXC,SAAY,GAAA;AACV,QAAA,OAAO,EAAC;AACV;AACF;;;;"}
@@ -0,0 +1,8 @@
1
+ class RegistriesFactory {
2
+ createAll() {
3
+ return {};
4
+ }
5
+ }
6
+
7
+ export { RegistriesFactory };
8
+ //# sourceMappingURL=factory.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"factory.mjs","sources":["../../src/registries/factory.ts"],"sourcesContent":["export class RegistriesFactory {\n createAll() {\n return {};\n }\n}\n"],"names":["RegistriesFactory","createAll"],"mappings":"AAAO,MAAMA,iBAAAA,CAAAA;IACXC,SAAY,GAAA;AACV,QAAA,OAAO,EAAC;AACV;AACF;;;;"}
@@ -0,0 +1,3 @@
1
+ export { RegistriesFactory } from './factory';
2
+ export type * from './types';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/registries/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAE9C,mBAAmB,SAAS,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { OpenAPIV3_1 } from 'openapi-types';
2
+ export type ComponentType = keyof OpenAPIV3_1.ComponentsObject;
3
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/registries/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAEjD,MAAM,MAAM,aAAa,GAAG,MAAM,WAAW,CAAC,gBAAgB,CAAC"}
@@ -0,0 +1,29 @@
1
+ import type { Core } from '@strapi/types';
2
+ import { RouteMatcher } from './matcher';
3
+ import type { RoutesProvider } from './providers';
4
+ /**
5
+ * Class responsible for collecting and filtering routes from multiple providers.
6
+ */
7
+ export declare class RouteCollector {
8
+ private readonly _providers;
9
+ private readonly _matcher;
10
+ /**
11
+ * @param providers - An array of route providers to collect routes from. Defaults to an empty array.
12
+ * @param matcher - An instance of RouteMatcher to filter routes. Defaults to a new {@link RouteMatcher} with no rules.
13
+ */
14
+ constructor(providers?: RoutesProvider[], matcher?: RouteMatcher);
15
+ /**
16
+ * Collects routes from all providers and filters them based on the matcher rules.
17
+ *
18
+ * @returns An array of {@link Core.Route} that pass the filter rules.
19
+ */
20
+ collect(): Core.Route[];
21
+ /**
22
+ * Filters the given array of routes based on the matcher rules.
23
+ *
24
+ * @param routes - The list of routes to filter.
25
+ * @returns An array of routes that match the rules.
26
+ */
27
+ private filter;
28
+ }
29
+ //# sourceMappingURL=collector.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"collector.d.ts","sourceRoot":"","sources":["../../src/routes/collector.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAG1C,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAEzC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAIlD;;GAEG;AACH,qBAAa,cAAc;IACzB,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAmB;IAE9C,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAe;IAExC;;;OAGG;gBACS,SAAS,GAAE,cAAc,EAAO,EAAE,OAAO,GAAE,YAAiC;IAKxF;;;;OAIG;IACI,OAAO,IAAI,IAAI,CAAC,KAAK,EAAE;IAe9B;;;;;OAKG;IACH,OAAO,CAAC,MAAM;CAGf"}
@@ -0,0 +1,40 @@
1
+ 'use strict';
2
+
3
+ var debug$1 = require('../utils/debug.js');
4
+ require('node:crypto');
5
+ require('zod/v4');
6
+ var matcher = require('./matcher.js');
7
+
8
+ const debug = debug$1.createDebugger('routes:collector');
9
+ /**
10
+ * Class responsible for collecting and filtering routes from multiple providers.
11
+ */ class RouteCollector {
12
+ /**
13
+ * Collects routes from all providers and filters them based on the matcher rules.
14
+ *
15
+ * @returns An array of {@link Core.Route} that pass the filter rules.
16
+ */ collect() {
17
+ const routes = this._providers.flatMap((provider)=>Array.from(provider));
18
+ const sanitizedRoutes = this.filter(routes);
19
+ debug('collected %o/%o routes from %o providers %o', sanitizedRoutes.length, routes.length, this._providers.length, this._providers.map((provider)=>provider.constructor.name));
20
+ return sanitizedRoutes;
21
+ }
22
+ /**
23
+ * Filters the given array of routes based on the matcher rules.
24
+ *
25
+ * @param routes - The list of routes to filter.
26
+ * @returns An array of routes that match the rules.
27
+ */ filter(routes) {
28
+ return routes.filter((route)=>this._matcher.match(route));
29
+ }
30
+ /**
31
+ * @param providers - An array of route providers to collect routes from. Defaults to an empty array.
32
+ * @param matcher - An instance of RouteMatcher to filter routes. Defaults to a new {@link RouteMatcher} with no rules.
33
+ */ constructor(providers = [], matcher$1 = new matcher.RouteMatcher()){
34
+ this._providers = providers;
35
+ this._matcher = matcher$1;
36
+ }
37
+ }
38
+
39
+ exports.RouteCollector = RouteCollector;
40
+ //# sourceMappingURL=collector.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"collector.js","sources":["../../src/routes/collector.ts"],"sourcesContent":["import type { Core } from '@strapi/types';\n\nimport { createDebugger } from '../utils';\nimport { RouteMatcher } from './matcher';\n\nimport type { RoutesProvider } from './providers';\n\nconst debug = createDebugger('routes:collector');\n\n/**\n * Class responsible for collecting and filtering routes from multiple providers.\n */\nexport class RouteCollector {\n private readonly _providers: RoutesProvider[];\n\n private readonly _matcher: RouteMatcher;\n\n /**\n * @param providers - An array of route providers to collect routes from. Defaults to an empty array.\n * @param matcher - An instance of RouteMatcher to filter routes. Defaults to a new {@link RouteMatcher} with no rules.\n */\n constructor(providers: RoutesProvider[] = [], matcher: RouteMatcher = new RouteMatcher()) {\n this._providers = providers;\n this._matcher = matcher;\n }\n\n /**\n * Collects routes from all providers and filters them based on the matcher rules.\n *\n * @returns An array of {@link Core.Route} that pass the filter rules.\n */\n public collect(): Core.Route[] {\n const routes = this._providers.flatMap((provider) => Array.from(provider));\n const sanitizedRoutes = this.filter(routes);\n\n debug(\n 'collected %o/%o routes from %o providers %o',\n sanitizedRoutes.length,\n routes.length,\n this._providers.length,\n this._providers.map((provider) => provider.constructor.name)\n );\n\n return sanitizedRoutes;\n }\n\n /**\n * Filters the given array of routes based on the matcher rules.\n *\n * @param routes - The list of routes to filter.\n * @returns An array of routes that match the rules.\n */\n private filter(routes: Core.Route[]): Core.Route[] {\n return routes.filter((route) => this._matcher.match(route));\n }\n}\n"],"names":["debug","createDebugger","RouteCollector","routes","_providers","flatMap","provider","Array","from","sanitizedRoutes","filter","length","map","constructor","name","route","_matcher","match","providers","matcher","RouteMatcher"],"mappings":";;;;;;;AAOA,MAAMA,QAAQC,sBAAe,CAAA,kBAAA,CAAA;AAE7B;;AAEC,IACM,MAAMC,cAAAA,CAAAA;AAcX;;;;AAIC,MACD,OAA+B,GAAA;QAC7B,MAAMC,MAAAA,GAAS,IAAI,CAACC,UAAU,CAACC,OAAO,CAAC,CAACC,QAAAA,GAAaC,KAAMC,CAAAA,IAAI,CAACF,QAAAA,CAAAA,CAAAA;AAChE,QAAA,MAAMG,eAAkB,GAAA,IAAI,CAACC,MAAM,CAACP,MAAAA,CAAAA;QAEpCH,KACE,CAAA,6CAAA,EACAS,eAAgBE,CAAAA,MAAM,EACtBR,MAAAA,CAAOQ,MAAM,EACb,IAAI,CAACP,UAAU,CAACO,MAAM,EACtB,IAAI,CAACP,UAAU,CAACQ,GAAG,CAAC,CAACN,QAAaA,GAAAA,QAAAA,CAASO,WAAW,CAACC,IAAI,CAAA,CAAA;QAG7D,OAAOL,eAAAA;AACT;AAEA;;;;;MAMQC,MAAOP,CAAAA,MAAoB,EAAgB;QACjD,OAAOA,MAAAA,CAAOO,MAAM,CAAC,CAACK,KAAAA,GAAU,IAAI,CAACC,QAAQ,CAACC,KAAK,CAACF,KAAAA,CAAAA,CAAAA;AACtD;AArCA;;;AAGC,MACDF,YAAYK,SAA8B,GAAA,EAAE,EAAEC,SAAwB,GAAA,IAAIC,sBAAc,CAAE;QACxF,IAAI,CAAChB,UAAU,GAAGc,SAAAA;QAClB,IAAI,CAACF,QAAQ,GAAGG,SAAAA;AAClB;AA+BF;;;;"}
@@ -0,0 +1,38 @@
1
+ import { createDebugger } from '../utils/debug.mjs';
2
+ import 'node:crypto';
3
+ import 'zod/v4';
4
+ import { RouteMatcher } from './matcher.mjs';
5
+
6
+ const debug = createDebugger('routes:collector');
7
+ /**
8
+ * Class responsible for collecting and filtering routes from multiple providers.
9
+ */ class RouteCollector {
10
+ /**
11
+ * Collects routes from all providers and filters them based on the matcher rules.
12
+ *
13
+ * @returns An array of {@link Core.Route} that pass the filter rules.
14
+ */ collect() {
15
+ const routes = this._providers.flatMap((provider)=>Array.from(provider));
16
+ const sanitizedRoutes = this.filter(routes);
17
+ debug('collected %o/%o routes from %o providers %o', sanitizedRoutes.length, routes.length, this._providers.length, this._providers.map((provider)=>provider.constructor.name));
18
+ return sanitizedRoutes;
19
+ }
20
+ /**
21
+ * Filters the given array of routes based on the matcher rules.
22
+ *
23
+ * @param routes - The list of routes to filter.
24
+ * @returns An array of routes that match the rules.
25
+ */ filter(routes) {
26
+ return routes.filter((route)=>this._matcher.match(route));
27
+ }
28
+ /**
29
+ * @param providers - An array of route providers to collect routes from. Defaults to an empty array.
30
+ * @param matcher - An instance of RouteMatcher to filter routes. Defaults to a new {@link RouteMatcher} with no rules.
31
+ */ constructor(providers = [], matcher = new RouteMatcher()){
32
+ this._providers = providers;
33
+ this._matcher = matcher;
34
+ }
35
+ }
36
+
37
+ export { RouteCollector };
38
+ //# sourceMappingURL=collector.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"collector.mjs","sources":["../../src/routes/collector.ts"],"sourcesContent":["import type { Core } from '@strapi/types';\n\nimport { createDebugger } from '../utils';\nimport { RouteMatcher } from './matcher';\n\nimport type { RoutesProvider } from './providers';\n\nconst debug = createDebugger('routes:collector');\n\n/**\n * Class responsible for collecting and filtering routes from multiple providers.\n */\nexport class RouteCollector {\n private readonly _providers: RoutesProvider[];\n\n private readonly _matcher: RouteMatcher;\n\n /**\n * @param providers - An array of route providers to collect routes from. Defaults to an empty array.\n * @param matcher - An instance of RouteMatcher to filter routes. Defaults to a new {@link RouteMatcher} with no rules.\n */\n constructor(providers: RoutesProvider[] = [], matcher: RouteMatcher = new RouteMatcher()) {\n this._providers = providers;\n this._matcher = matcher;\n }\n\n /**\n * Collects routes from all providers and filters them based on the matcher rules.\n *\n * @returns An array of {@link Core.Route} that pass the filter rules.\n */\n public collect(): Core.Route[] {\n const routes = this._providers.flatMap((provider) => Array.from(provider));\n const sanitizedRoutes = this.filter(routes);\n\n debug(\n 'collected %o/%o routes from %o providers %o',\n sanitizedRoutes.length,\n routes.length,\n this._providers.length,\n this._providers.map((provider) => provider.constructor.name)\n );\n\n return sanitizedRoutes;\n }\n\n /**\n * Filters the given array of routes based on the matcher rules.\n *\n * @param routes - The list of routes to filter.\n * @returns An array of routes that match the rules.\n */\n private filter(routes: Core.Route[]): Core.Route[] {\n return routes.filter((route) => this._matcher.match(route));\n }\n}\n"],"names":["debug","createDebugger","RouteCollector","routes","_providers","flatMap","provider","Array","from","sanitizedRoutes","filter","length","map","constructor","name","route","_matcher","match","providers","matcher","RouteMatcher"],"mappings":";;;;;AAOA,MAAMA,QAAQC,cAAe,CAAA,kBAAA,CAAA;AAE7B;;AAEC,IACM,MAAMC,cAAAA,CAAAA;AAcX;;;;AAIC,MACD,OAA+B,GAAA;QAC7B,MAAMC,MAAAA,GAAS,IAAI,CAACC,UAAU,CAACC,OAAO,CAAC,CAACC,QAAAA,GAAaC,KAAMC,CAAAA,IAAI,CAACF,QAAAA,CAAAA,CAAAA;AAChE,QAAA,MAAMG,eAAkB,GAAA,IAAI,CAACC,MAAM,CAACP,MAAAA,CAAAA;QAEpCH,KACE,CAAA,6CAAA,EACAS,eAAgBE,CAAAA,MAAM,EACtBR,MAAAA,CAAOQ,MAAM,EACb,IAAI,CAACP,UAAU,CAACO,MAAM,EACtB,IAAI,CAACP,UAAU,CAACQ,GAAG,CAAC,CAACN,QAAaA,GAAAA,QAAAA,CAASO,WAAW,CAACC,IAAI,CAAA,CAAA;QAG7D,OAAOL,eAAAA;AACT;AAEA;;;;;MAMQC,MAAOP,CAAAA,MAAoB,EAAgB;QACjD,OAAOA,MAAAA,CAAOO,MAAM,CAAC,CAACK,KAAAA,GAAU,IAAI,CAACC,QAAQ,CAACC,KAAK,CAACF,KAAAA,CAAAA,CAAAA;AACtD;AArCA;;;AAGC,MACDF,YAAYK,SAA8B,GAAA,EAAE,EAAEC,OAAwB,GAAA,IAAIC,cAAc,CAAE;QACxF,IAAI,CAAChB,UAAU,GAAGc,SAAAA;QAClB,IAAI,CAACF,QAAQ,GAAGG,OAAAA;AAClB;AA+BF;;;;"}
@@ -0,0 +1,7 @@
1
+ export { RouteCollector } from './collector';
2
+ export { RouteMatcher } from './matcher';
3
+ export { AbstractRoutesProvider, AdminRoutesProvider, ApiRoutesProvider, PluginRoutesProvider, } from './providers';
4
+ export * as rules from './rules';
5
+ export type { RoutesProvider } from './providers';
6
+ export type * from './types';
7
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/routes/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,EACL,sBAAsB,EACtB,mBAAmB,EACnB,iBAAiB,EACjB,oBAAoB,GACrB,MAAM,aAAa,CAAC;AAErB,OAAO,KAAK,KAAK,MAAM,SAAS,CAAC;AAEjC,YAAY,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAClD,mBAAmB,SAAS,CAAC"}
@@ -0,0 +1,25 @@
1
+ import type { Core } from '@strapi/types';
2
+ import type { MatcherRule } from './types';
3
+ /**
4
+ * Class responsible for matching routes based on provided rules.
5
+ */
6
+ export declare class RouteMatcher {
7
+ /**
8
+ * Array of rules to match routes against.
9
+ */
10
+ private readonly _rules;
11
+ /**
12
+ * @param rules - A list of matcher rules to apply. Defaults to an empty array.
13
+ */
14
+ constructor(rules?: MatcherRule[]);
15
+ /**
16
+ * Checks if a given route matches all provided rules.
17
+ *
18
+ * Exits early if any rule fails.
19
+ *
20
+ * @param route - The route to check.
21
+ * @returns `true` if the route satisfies all rules, otherwise `false`.
22
+ */
23
+ match(route: Core.Route): boolean;
24
+ }
25
+ //# sourceMappingURL=matcher.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"matcher.d.ts","sourceRoot":"","sources":["../../src/routes/matcher.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAE1C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAE3C;;GAEG;AACH,qBAAa,YAAY;IACvB;;OAEG;IACH,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAgB;IAEvC;;OAEG;gBACS,KAAK,GAAE,WAAW,EAAO;IAIrC;;;;;;;OAOG;IACH,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,GAAG,OAAO;CAGlC"}
@@ -0,0 +1,24 @@
1
+ 'use strict';
2
+
3
+ /**
4
+ * Class responsible for matching routes based on provided rules.
5
+ */ class RouteMatcher {
6
+ /**
7
+ * Checks if a given route matches all provided rules.
8
+ *
9
+ * Exits early if any rule fails.
10
+ *
11
+ * @param route - The route to check.
12
+ * @returns `true` if the route satisfies all rules, otherwise `false`.
13
+ */ match(route) {
14
+ return this._rules.every((rule)=>rule(route));
15
+ }
16
+ /**
17
+ * @param rules - A list of matcher rules to apply. Defaults to an empty array.
18
+ */ constructor(rules = []){
19
+ this._rules = rules;
20
+ }
21
+ }
22
+
23
+ exports.RouteMatcher = RouteMatcher;
24
+ //# sourceMappingURL=matcher.js.map