@strapi/openapi 0.0.0 → 5.21.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.
- package/README.md +1 -0
- package/dist/assemblers/document/factory.d.ts +8 -0
- package/dist/assemblers/document/factory.d.ts.map +1 -0
- package/dist/assemblers/document/factory.js +38 -0
- package/dist/assemblers/document/factory.js.map +1 -0
- package/dist/assemblers/document/factory.mjs +36 -0
- package/dist/assemblers/document/factory.mjs.map +1 -0
- package/dist/assemblers/document/index.d.ts +5 -0
- package/dist/assemblers/document/index.d.ts.map +1 -0
- package/dist/assemblers/document/info.d.ts +8 -0
- package/dist/assemblers/document/info.d.ts.map +1 -0
- package/dist/assemblers/document/info.js +32 -0
- package/dist/assemblers/document/info.js.map +1 -0
- package/dist/assemblers/document/info.mjs +30 -0
- package/dist/assemblers/document/info.mjs.map +1 -0
- package/dist/assemblers/document/metadata.d.ts +6 -0
- package/dist/assemblers/document/metadata.d.ts.map +1 -0
- package/dist/assemblers/document/metadata.js +23 -0
- package/dist/assemblers/document/metadata.js.map +1 -0
- package/dist/assemblers/document/metadata.mjs +21 -0
- package/dist/assemblers/document/metadata.mjs.map +1 -0
- package/dist/assemblers/document/path/factory.d.ts +6 -0
- package/dist/assemblers/document/path/factory.d.ts.map +1 -0
- package/dist/assemblers/document/path/factory.js +27 -0
- package/dist/assemblers/document/path/factory.js.map +1 -0
- package/dist/assemblers/document/path/factory.mjs +25 -0
- package/dist/assemblers/document/path/factory.mjs.map +1 -0
- package/dist/assemblers/document/path/index.d.ts +4 -0
- package/dist/assemblers/document/path/index.d.ts.map +1 -0
- package/dist/assemblers/document/path/path-item/factory.d.ts +6 -0
- package/dist/assemblers/document/path/path-item/factory.d.ts.map +1 -0
- package/dist/assemblers/document/path/path-item/factory.js +26 -0
- package/dist/assemblers/document/path/path-item/factory.js.map +1 -0
- package/dist/assemblers/document/path/path-item/factory.mjs +24 -0
- package/dist/assemblers/document/path/path-item/factory.mjs.map +1 -0
- package/dist/assemblers/document/path/path-item/index.d.ts +4 -0
- package/dist/assemblers/document/path/path-item/index.d.ts.map +1 -0
- package/dist/assemblers/document/path/path-item/operation/body.d.ts +7 -0
- package/dist/assemblers/document/path/path-item/operation/body.d.ts.map +1 -0
- package/dist/assemblers/document/path/path-item/operation/body.js +27 -0
- package/dist/assemblers/document/path/path-item/operation/body.js.map +1 -0
- package/dist/assemblers/document/path/path-item/operation/body.mjs +25 -0
- package/dist/assemblers/document/path/path-item/operation/body.mjs.map +1 -0
- package/dist/assemblers/document/path/path-item/operation/factory.d.ts +10 -0
- package/dist/assemblers/document/path/path-item/operation/factory.d.ts.map +1 -0
- package/dist/assemblers/document/path/path-item/operation/factory.js +37 -0
- package/dist/assemblers/document/path/path-item/operation/factory.js.map +1 -0
- package/dist/assemblers/document/path/path-item/operation/factory.mjs +35 -0
- package/dist/assemblers/document/path/path-item/operation/factory.mjs.map +1 -0
- package/dist/assemblers/document/path/path-item/operation/index.d.ts +8 -0
- package/dist/assemblers/document/path/path-item/operation/index.d.ts.map +1 -0
- package/dist/assemblers/document/path/path-item/operation/operation-id.d.ts +10 -0
- package/dist/assemblers/document/path/path-item/operation/operation-id.d.ts.map +1 -0
- package/dist/assemblers/document/path/path-item/operation/operation-id.js +47 -0
- package/dist/assemblers/document/path/path-item/operation/operation-id.js.map +1 -0
- package/dist/assemblers/document/path/path-item/operation/operation-id.mjs +45 -0
- package/dist/assemblers/document/path/path-item/operation/operation-id.mjs.map +1 -0
- package/dist/assemblers/document/path/path-item/operation/operation.d.ts +13 -0
- package/dist/assemblers/document/path/path-item/operation/operation.d.ts.map +1 -0
- package/dist/assemblers/document/path/path-item/operation/operation.js +51 -0
- package/dist/assemblers/document/path/path-item/operation/operation.js.map +1 -0
- package/dist/assemblers/document/path/path-item/operation/operation.mjs +49 -0
- package/dist/assemblers/document/path/path-item/operation/operation.mjs.map +1 -0
- package/dist/assemblers/document/path/path-item/operation/parameters.d.ts +9 -0
- package/dist/assemblers/document/path/path-item/operation/parameters.d.ts.map +1 -0
- package/dist/assemblers/document/path/path-item/operation/parameters.js +67 -0
- package/dist/assemblers/document/path/path-item/operation/parameters.js.map +1 -0
- package/dist/assemblers/document/path/path-item/operation/parameters.mjs +65 -0
- package/dist/assemblers/document/path/path-item/operation/parameters.mjs.map +1 -0
- package/dist/assemblers/document/path/path-item/operation/responses.d.ts +8 -0
- package/dist/assemblers/document/path/path-item/operation/responses.d.ts.map +1 -0
- package/dist/assemblers/document/path/path-item/operation/responses.js +51 -0
- package/dist/assemblers/document/path/path-item/operation/responses.js.map +1 -0
- package/dist/assemblers/document/path/path-item/operation/responses.mjs +49 -0
- package/dist/assemblers/document/path/path-item/operation/responses.mjs.map +1 -0
- package/dist/assemblers/document/path/path-item/operation/tags.d.ts +7 -0
- package/dist/assemblers/document/path/path-item/operation/tags.d.ts.map +1 -0
- package/dist/assemblers/document/path/path-item/operation/tags.js +25 -0
- package/dist/assemblers/document/path/path-item/operation/tags.js.map +1 -0
- package/dist/assemblers/document/path/path-item/operation/tags.mjs +23 -0
- package/dist/assemblers/document/path/path-item/operation/tags.mjs.map +1 -0
- package/dist/assemblers/document/path/path-item/path-item.d.ts +13 -0
- package/dist/assemblers/document/path/path-item/path-item.d.ts.map +1 -0
- package/dist/assemblers/document/path/path-item/path-item.js +53 -0
- package/dist/assemblers/document/path/path-item/path-item.js.map +1 -0
- package/dist/assemblers/document/path/path-item/path-item.mjs +51 -0
- package/dist/assemblers/document/path/path-item/path-item.mjs.map +1 -0
- package/dist/assemblers/document/path/path.d.ts +10 -0
- package/dist/assemblers/document/path/path.d.ts.map +1 -0
- package/dist/assemblers/document/path/path.js +28 -0
- package/dist/assemblers/document/path/path.js.map +1 -0
- package/dist/assemblers/document/path/path.mjs +26 -0
- package/dist/assemblers/document/path/path.mjs.map +1 -0
- package/dist/assemblers/index.d.ts +3 -0
- package/dist/assemblers/index.d.ts.map +1 -0
- package/dist/assemblers/types.d.ts +18 -0
- package/dist/assemblers/types.d.ts.map +1 -0
- package/dist/constants.d.ts +3 -0
- package/dist/constants.d.ts.map +1 -0
- package/dist/constants.js +8 -0
- package/dist/constants.js.map +1 -0
- package/dist/constants.mjs +5 -0
- package/dist/constants.mjs.map +1 -0
- package/dist/context/factories/abstract.d.ts +11 -0
- package/dist/context/factories/abstract.d.ts.map +1 -0
- package/dist/context/factories/abstract.js +38 -0
- package/dist/context/factories/abstract.js.map +1 -0
- package/dist/context/factories/abstract.mjs +36 -0
- package/dist/context/factories/abstract.mjs.map +1 -0
- package/dist/context/factories/document.d.ts +11 -0
- package/dist/context/factories/document.d.ts.map +1 -0
- package/dist/context/factories/document.js +20 -0
- package/dist/context/factories/document.js.map +1 -0
- package/dist/context/factories/document.mjs +18 -0
- package/dist/context/factories/document.mjs.map +1 -0
- package/dist/context/factories/index.d.ts +6 -0
- package/dist/context/factories/index.d.ts.map +1 -0
- package/dist/context/factories/operation.d.ts +11 -0
- package/dist/context/factories/operation.d.ts.map +1 -0
- package/dist/context/factories/operation.js +20 -0
- package/dist/context/factories/operation.js.map +1 -0
- package/dist/context/factories/operation.mjs +18 -0
- package/dist/context/factories/operation.mjs.map +1 -0
- package/dist/context/factories/path-item.d.ts +10 -0
- package/dist/context/factories/path-item.d.ts.map +1 -0
- package/dist/context/factories/path-item.js +20 -0
- package/dist/context/factories/path-item.js.map +1 -0
- package/dist/context/factories/path-item.mjs +18 -0
- package/dist/context/factories/path-item.mjs.map +1 -0
- package/dist/context/factories/path.d.ts +10 -0
- package/dist/context/factories/path.d.ts.map +1 -0
- package/dist/context/factories/path.js +20 -0
- package/dist/context/factories/path.js.map +1 -0
- package/dist/context/factories/path.mjs +18 -0
- package/dist/context/factories/path.mjs.map +1 -0
- package/dist/context/index.d.ts +3 -0
- package/dist/context/index.d.ts.map +1 -0
- package/dist/context/types.d.ts +28 -0
- package/dist/context/types.d.ts.map +1 -0
- package/dist/exports.d.ts +35 -0
- package/dist/exports.d.ts.map +1 -0
- package/dist/exports.js +76 -0
- package/dist/exports.js.map +1 -0
- package/dist/exports.mjs +74 -0
- package/dist/exports.mjs.map +1 -0
- package/dist/generator/generator.d.ts +29 -0
- package/dist/generator/generator.d.ts.map +1 -0
- package/dist/generator/generator.js +85 -0
- package/dist/generator/generator.js.map +1 -0
- package/dist/generator/generator.mjs +83 -0
- package/dist/generator/generator.mjs.map +1 -0
- package/dist/generator/index.d.ts +3 -0
- package/dist/generator/index.d.ts.map +1 -0
- package/dist/generator/types.d.ts +12 -0
- package/dist/generator/types.d.ts.map +1 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -0
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +1 -1
- package/dist/post-processor/component-writer.d.ts +6 -0
- package/dist/post-processor/component-writer.d.ts.map +1 -0
- package/dist/post-processor/component-writer.js +38 -0
- package/dist/post-processor/component-writer.js.map +1 -0
- package/dist/post-processor/component-writer.mjs +17 -0
- package/dist/post-processor/component-writer.mjs.map +1 -0
- package/dist/post-processor/factory.d.ts +5 -0
- package/dist/post-processor/factory.d.ts.map +1 -0
- package/dist/post-processor/factory.js +14 -0
- package/dist/post-processor/factory.js.map +1 -0
- package/dist/post-processor/factory.mjs +12 -0
- package/dist/post-processor/factory.mjs.map +1 -0
- package/dist/post-processor/index.d.ts +4 -0
- package/dist/post-processor/index.d.ts.map +1 -0
- package/dist/post-processor/types.d.ts +5 -0
- package/dist/post-processor/types.d.ts.map +1 -0
- package/dist/pre-processor/factory.d.ts +5 -0
- package/dist/pre-processor/factory.d.ts.map +1 -0
- package/dist/pre-processor/factory.js +10 -0
- package/dist/pre-processor/factory.js.map +1 -0
- package/dist/pre-processor/factory.mjs +8 -0
- package/dist/pre-processor/factory.mjs.map +1 -0
- package/dist/pre-processor/index.d.ts +3 -0
- package/dist/pre-processor/index.d.ts.map +1 -0
- package/dist/pre-processor/types.d.ts +5 -0
- package/dist/pre-processor/types.d.ts.map +1 -0
- package/dist/registries/factory.d.ts +4 -0
- package/dist/registries/factory.d.ts.map +1 -0
- package/dist/registries/factory.js +10 -0
- package/dist/registries/factory.js.map +1 -0
- package/dist/registries/factory.mjs +8 -0
- package/dist/registries/factory.mjs.map +1 -0
- package/dist/registries/index.d.ts +3 -0
- package/dist/registries/index.d.ts.map +1 -0
- package/dist/registries/types.d.ts +3 -0
- package/dist/registries/types.d.ts.map +1 -0
- package/dist/routes/collector.d.ts +29 -0
- package/dist/routes/collector.d.ts.map +1 -0
- package/dist/routes/collector.js +40 -0
- package/dist/routes/collector.js.map +1 -0
- package/dist/routes/collector.mjs +38 -0
- package/dist/routes/collector.mjs.map +1 -0
- package/dist/routes/index.d.ts +7 -0
- package/dist/routes/index.d.ts.map +1 -0
- package/dist/routes/matcher.d.ts +25 -0
- package/dist/routes/matcher.d.ts.map +1 -0
- package/dist/routes/matcher.js +24 -0
- package/dist/routes/matcher.js.map +1 -0
- package/dist/routes/matcher.mjs +22 -0
- package/dist/routes/matcher.mjs.map +1 -0
- package/dist/routes/providers/abstract.d.ts +35 -0
- package/dist/routes/providers/abstract.d.ts.map +1 -0
- package/dist/routes/providers/abstract.js +29 -0
- package/dist/routes/providers/abstract.js.map +1 -0
- package/dist/routes/providers/abstract.mjs +27 -0
- package/dist/routes/providers/abstract.mjs.map +1 -0
- package/dist/routes/providers/admin.d.ts +6 -0
- package/dist/routes/providers/admin.d.ts.map +1 -0
- package/dist/routes/providers/admin.js +19 -0
- package/dist/routes/providers/admin.js.map +1 -0
- package/dist/routes/providers/admin.mjs +17 -0
- package/dist/routes/providers/admin.mjs.map +1 -0
- package/dist/routes/providers/api.d.ts +22 -0
- package/dist/routes/providers/api.d.ts.map +1 -0
- package/dist/routes/providers/api.js +35 -0
- package/dist/routes/providers/api.js.map +1 -0
- package/dist/routes/providers/api.mjs +33 -0
- package/dist/routes/providers/api.mjs.map +1 -0
- package/dist/routes/providers/index.d.ts +6 -0
- package/dist/routes/providers/index.d.ts.map +1 -0
- package/dist/routes/providers/plugin.d.ts +23 -0
- package/dist/routes/providers/plugin.d.ts.map +1 -0
- package/dist/routes/providers/plugin.js +37 -0
- package/dist/routes/providers/plugin.js.map +1 -0
- package/dist/routes/providers/plugin.mjs +35 -0
- package/dist/routes/providers/plugin.mjs.map +1 -0
- package/dist/routes/providers/types.d.ts +13 -0
- package/dist/routes/providers/types.d.ts.map +1 -0
- package/dist/routes/rules/index.d.ts +2 -0
- package/dist/routes/rules/index.d.ts.map +1 -0
- package/dist/routes/rules/is-of-type.d.ts +3 -0
- package/dist/routes/rules/is-of-type.d.ts.map +1 -0
- package/dist/routes/rules/is-of-type.js +8 -0
- package/dist/routes/rules/is-of-type.js.map +1 -0
- package/dist/routes/rules/is-of-type.mjs +6 -0
- package/dist/routes/rules/is-of-type.mjs.map +1 -0
- package/dist/routes/types.d.ts +6 -0
- package/dist/routes/types.d.ts.map +1 -0
- package/dist/types.d.ts +14 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/utils/debug.d.ts +3 -0
- package/dist/utils/debug.d.ts.map +1 -0
- package/dist/utils/debug.js +11 -0
- package/dist/utils/debug.js.map +1 -0
- package/dist/utils/debug.mjs +9 -0
- package/dist/utils/debug.mjs.map +1 -0
- package/dist/utils/index.d.ts +4 -0
- package/dist/utils/index.d.ts.map +1 -0
- package/dist/utils/timer/factory.d.ts +5 -0
- package/dist/utils/timer/factory.d.ts.map +1 -0
- package/dist/utils/timer/factory.js +12 -0
- package/dist/utils/timer/factory.js.map +1 -0
- package/dist/utils/timer/factory.mjs +10 -0
- package/dist/utils/timer/factory.mjs.map +1 -0
- package/dist/utils/timer/index.d.ts +3 -0
- package/dist/utils/timer/index.d.ts.map +1 -0
- package/dist/utils/timer/timer.d.ts +14 -0
- package/dist/utils/timer/timer.d.ts.map +1 -0
- package/dist/utils/timer/timer.js +38 -0
- package/dist/utils/timer/timer.js.map +1 -0
- package/dist/utils/timer/timer.mjs +36 -0
- package/dist/utils/timer/timer.mjs.map +1 -0
- package/dist/utils/zod.d.ts +39 -0
- package/dist/utils/zod.d.ts.map +1 -0
- package/dist/utils/zod.js +86 -0
- package/dist/utils/zod.js.map +1 -0
- package/dist/utils/zod.mjs +64 -0
- package/dist/utils/zod.mjs.map +1 -0
- package/package.json +24 -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":";;;;AAcA,MAAMA,QAAQC,cAAe,CAAA,WAAA,CAAA;AAQtB,MAAMC,gBAAAA,CAAAA;AAwCXC,IAAAA,QAAAA,CAASC,QAA2B,EAAmB;AACrDJ,QAAAA,KAAAA,CAAM,kEAAoEI,EAAAA,QAAAA,CAAAA;AAE1E,QAAA,MAAMC,UAAU,IAAI,CAACC,YAAY,CAAC,IAAI,CAACC,OAAO,CAAA;AAE9C,QAAA,IAAI;SAEDC,UAAU,CAACH,QACZ;SACCI,WAAW,CAACJ,QACb;SACCK,SAAS,CAACL,QACX;SACCM,YAAY,CAACN,QACd;AACCO,SAAAA,SAAS,CAACP,OAAAA,CAAAA;AAEb,QAAA,MAAM,EAAEQ,IAAI,EAAEC,KAAK,EAAE,GAAGT,QAAQU,MAAM;QAEtC,OAAO;YAAEC,QAAUH,EAAAA,IAAAA;YAA8BI,UAAYH,EAAAA,KAAAA,CAAMI,IAAI,CAACC;AAAY,SAAA;AACtF;AAEQb,IAAAA,YAAAA,CAAac,MAAmB,EAAmB;QACzDpB,KAAM,CAAA,iCAAA,CAAA;AACN,QAAA,MAAMqB,MAAS,GAAA,IAAI,CAACC,eAAe,CAACC,OAAO,EAAA;QAE3CvB,KAAM,CAAA,qDAAA,CAAA;AACN,QAAA,OAAO,IAAI,CAACwB,eAAe,CAACC,MAAM,CAAC;AAAEL,YAAAA,MAAAA;AAAQC,YAAAA;AAAO,SAAA,CAAA;AACtD;AAEQb,IAAAA,UAAAA,CAAWH,OAAwB,EAAE;QAC3C,MAAM,EAAEqB,KAAK,EAAE,GAAGrB,OAAAA;AAElBqB,QAAAA,KAAAA,CAAMC,KAAK,EAAA;QAEX,MAAMC,SAAAA,GAAYF,MAAMG,KAAK,EAAA;AAE7B7B,QAAAA,KAAAA,CAAM,wBAA0B,EAAA,IAAI8B,IAAKF,CAAAA,SAAAA,CAAAA,CAAWG,WAAW,EAAA,CAAA;AAE/D,QAAA,OAAO,IAAI;AACb;AAEQnB,IAAAA,SAAAA,CAAUP,OAAwB,EAAE;AAC1C,QAAA,MAAM,EAAEqB,KAAK,EAAEX,MAAM,EAAE,GAAGV,OAAAA;AAE1BU,QAAAA,MAAAA,CAAOD,KAAK,CAACI,IAAI,GAAGQ,MAAMM,IAAI,EAAA;QAE9B,MAAM,EAAEC,OAAO,EAAEd,WAAW,EAAE,GAAGJ,MAAAA,CAAOD,KAAK,CAACI,IAAI;AAElDlB,QAAAA,KAAAA,CAAM,0CAA4C,EAAA,IAAI8B,IAAKG,CAAAA,OAAAA,CAAAA,CAASF,WAAW,EAAIZ,EAAAA,WAAAA,CAAAA;AAEnF,QAAA,OAAO,IAAI;AACb;AAEQV,IAAAA,WAAAA,CAAYJ,OAAwB,EAAE;AAC5C,QAAA,KAAK,MAAM6B,YAAAA,IAAgB,IAAI,CAACC,cAAc,CAAE;AAC9CnC,YAAAA,KAAAA,CAAM,8BAAgCkC,EAAAA,YAAAA,CAAaE,WAAW,CAACC,IAAI,CAAA;AAEnEH,YAAAA,YAAAA,CAAaI,UAAU,CAACjC,OAAAA,CAAAA;AAC1B;AAEA,QAAA,OAAO,IAAI;AACb;AAEQK,IAAAA,SAAAA,CAAUL,OAAwB,EAAE;AAC1C,QAAA,KAAK,MAAMkC,SAAAA,IAAa,IAAI,CAACC,WAAW,CAAE;AACxCxC,YAAAA,KAAAA,CAAM,0BAA4BuC,EAAAA,SAAAA,CAAUH,WAAW,CAACC,IAAI,CAAA;AAE5DE,YAAAA,SAAAA,CAAUE,QAAQ,CAACpC,OAAAA,CAAAA;AACrB;AAEA,QAAA,OAAO,IAAI;AACb;AAEQM,IAAAA,YAAAA,CAAaN,OAAwB,EAAE;AAC7C,QAAA,KAAK,MAAMqC,aAAAA,IAAiB,IAAI,CAACC,eAAe,CAAE;AAChD3C,YAAAA,KAAAA,CAAM,+BAAiC0C,EAAAA,aAAAA,CAAcN,WAAW,CAACC,IAAI,CAAA;AAErEK,YAAAA,aAAAA,CAAcE,WAAW,CAACvC,OAAAA,CAAAA;AAC5B;AAEA,QAAA,OAAO,IAAI;AACb;AA1GA+B,IAAAA,WAAAA;AAEES,IAAAA,MAA8B;IAG9BzB,MAAmB,EACnB0B,cAA8B;AAG9BC,IAAAA,cAAsC,CACtC;;AAEA,QAAA,IAAI,CAACP,WAAW,GAAGK,MAAOG,CAAAA,UAAU,IAAI,EAAE;AAC1C,QAAA,IAAI,CAACb,cAAc,GAAGU,MAAOI,CAAAA,aAAa,IAAI,EAAE;AAChD,QAAA,IAAI,CAACN,eAAe,GAAGE,MAAOK,CAAAA,cAAc,IAAI,EAAE;;QAGlD,IAAI,CAAC3C,OAAO,GAAGa,MAAAA;QACf,IAAI,CAACE,eAAe,GAAGwB,cAAAA;;QAGvB,IAAI,CAACtB,eAAe,GAAGuB,cAAAA;AACzB;AAqFF;;;;"}
|
|
@@ -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
package/dist/index.d.ts.map
CHANGED
|
@@ -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
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 @@
|
|
|
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 @@
|
|
|
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 @@
|
|
|
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 @@
|
|
|
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 @@
|
|
|
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 @@
|
|
|
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 @@
|
|
|
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 @@
|
|
|
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 @@
|
|
|
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 @@
|
|
|
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 @@
|
|
|
1
|
+
{"version":3,"file":"factory.d.ts","sourceRoot":"","sources":["../../src/registries/factory.ts"],"names":[],"mappings":"AAAA,qBAAa,iBAAiB;IAC5B,SAAS;CAGV"}
|
|
@@ -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 @@
|
|
|
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 @@
|
|
|
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 @@
|
|
|
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
|