@strapi/openapi 0.0.0-experimental.4e03c41e8e44fa7b77c41c3e0edd86c7f1fc9c52
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/LICENSE +37 -0
- 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 +48 -0
- package/dist/assemblers/document/path/path-item/operation/operation.js.map +1 -0
- package/dist/assemblers/document/path/path-item/operation/operation.mjs +46 -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 +9 -0
- package/dist/exports.d.ts.map +1 -0
- package/dist/exports.js +49 -0
- package/dist/exports.js.map +1 -0
- package/dist/exports.mjs +47 -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 +2 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +8 -0
- package/dist/index.js.map +1 -0
- package/dist/index.mjs +2 -0
- package/dist/index.mjs.map +1 -0
- 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 +19 -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 +68 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"generator.mjs","sources":["../../src/generator/generator.ts"],"sourcesContent":["import type { Core } from '@strapi/types';\nimport type { OpenAPIV3 } 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.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 @@
|
|
|
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 } 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.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,SAAS,EAAE,MAAM,eAAe,CAAC;AAE/C,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,SAAS,CAAC,QAAQ,CAAC;IAC7B,UAAU,EAAE,MAAM,CAAC;CACpB"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC"}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;"}
|
package/dist/index.mjs
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|
|
@@ -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,19 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var z = require('zod');
|
|
4
|
+
var zod = require('../utils/zod.js');
|
|
5
|
+
|
|
6
|
+
class ComponentsWriter {
|
|
7
|
+
postProcess(context) {
|
|
8
|
+
const { output } = context;
|
|
9
|
+
const { schemas } = z.z.toJSONSchema(z.z.globalRegistry, {
|
|
10
|
+
uri: zod.toComponentsPath
|
|
11
|
+
});
|
|
12
|
+
output.data.components = {
|
|
13
|
+
schemas
|
|
14
|
+
};
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
exports.ComponentsWriter = ComponentsWriter;
|
|
19
|
+
//# 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 } from 'openapi-types';\nimport { z } from 'zod';\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.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,IAAEC,YAAY,CAACD,GAAEE,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 { z } from 'zod';
|
|
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 } from 'openapi-types';\nimport { z } from 'zod';\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.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,SAAS,EAAE,MAAM,eAAe,CAAC;AAE/C,MAAM,MAAM,aAAa,GAAG,MAAM,SAAS,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');
|
|
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';
|
|
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
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"matcher.js","sources":["../../src/routes/matcher.ts"],"sourcesContent":["import type { Core } from '@strapi/types';\n\nimport type { MatcherRule } from './types';\n\n/**\n * Class responsible for matching routes based on provided rules.\n */\nexport class RouteMatcher {\n /**\n * Array of rules to match routes against.\n */\n private readonly _rules: MatcherRule[];\n\n /**\n * @param rules - A list of matcher rules to apply. Defaults to an empty array.\n */\n constructor(rules: MatcherRule[] = []) {\n this._rules = rules;\n }\n\n /**\n * Checks if a given route matches all provided rules.\n *\n * Exits early if any rule fails.\n *\n * @param route - The route to check.\n * @returns `true` if the route satisfies all rules, otherwise `false`.\n */\n match(route: Core.Route): boolean {\n return this._rules.every((rule) => rule(route));\n }\n}\n"],"names":["RouteMatcher","match","route","_rules","every","rule","constructor","rules"],"mappings":";;AAIA;;AAEC,IACM,MAAMA,YAAAA,CAAAA;AAaX;;;;;;;MAQAC,KAAAA,CAAMC,KAAiB,EAAW;QAChC,OAAO,IAAI,CAACC,MAAM,CAACC,KAAK,CAAC,CAACC,OAASA,IAAKH,CAAAA,KAAAA,CAAAA,CAAAA;AAC1C;AAjBA;;MAGAI,WAAAA,CAAYC,KAAuB,GAAA,EAAE,CAAE;QACrC,IAAI,CAACJ,MAAM,GAAGI,KAAAA;AAChB;AAaF;;;;"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Class responsible for matching routes based on provided rules.
|
|
3
|
+
*/ class RouteMatcher {
|
|
4
|
+
/**
|
|
5
|
+
* Checks if a given route matches all provided rules.
|
|
6
|
+
*
|
|
7
|
+
* Exits early if any rule fails.
|
|
8
|
+
*
|
|
9
|
+
* @param route - The route to check.
|
|
10
|
+
* @returns `true` if the route satisfies all rules, otherwise `false`.
|
|
11
|
+
*/ match(route) {
|
|
12
|
+
return this._rules.every((rule)=>rule(route));
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* @param rules - A list of matcher rules to apply. Defaults to an empty array.
|
|
16
|
+
*/ constructor(rules = []){
|
|
17
|
+
this._rules = rules;
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
export { RouteMatcher };
|
|
22
|
+
//# sourceMappingURL=matcher.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"matcher.mjs","sources":["../../src/routes/matcher.ts"],"sourcesContent":["import type { Core } from '@strapi/types';\n\nimport type { MatcherRule } from './types';\n\n/**\n * Class responsible for matching routes based on provided rules.\n */\nexport class RouteMatcher {\n /**\n * Array of rules to match routes against.\n */\n private readonly _rules: MatcherRule[];\n\n /**\n * @param rules - A list of matcher rules to apply. Defaults to an empty array.\n */\n constructor(rules: MatcherRule[] = []) {\n this._rules = rules;\n }\n\n /**\n * Checks if a given route matches all provided rules.\n *\n * Exits early if any rule fails.\n *\n * @param route - The route to check.\n * @returns `true` if the route satisfies all rules, otherwise `false`.\n */\n match(route: Core.Route): boolean {\n return this._rules.every((rule) => rule(route));\n }\n}\n"],"names":["RouteMatcher","match","route","_rules","every","rule","constructor","rules"],"mappings":"AAIA;;AAEC,IACM,MAAMA,YAAAA,CAAAA;AAaX;;;;;;;MAQAC,KAAAA,CAAMC,KAAiB,EAAW;QAChC,OAAO,IAAI,CAACC,MAAM,CAACC,KAAK,CAAC,CAACC,OAASA,IAAKH,CAAAA,KAAAA,CAAAA,CAAAA;AAC1C;AAjBA;;MAGAI,WAAAA,CAAYC,KAAuB,GAAA,EAAE,CAAE;QACrC,IAAI,CAACJ,MAAM,GAAGI,KAAAA;AAChB;AAaF;;;;"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import type { Core } from '@strapi/types';
|
|
2
|
+
import type { RoutesProvider } from './types';
|
|
3
|
+
/**
|
|
4
|
+
* Abstract class representing a provider for routes.
|
|
5
|
+
*
|
|
6
|
+
* This class provides a base implementation for classes that manage and provide
|
|
7
|
+
* routes from Strapi.
|
|
8
|
+
*
|
|
9
|
+
* @implements {@link RoutesProvider}
|
|
10
|
+
*/
|
|
11
|
+
export declare abstract class AbstractRoutesProvider implements RoutesProvider {
|
|
12
|
+
/**
|
|
13
|
+
* Reference to the Strapi instance.
|
|
14
|
+
*/
|
|
15
|
+
protected readonly _strapi: Core.Strapi;
|
|
16
|
+
/**
|
|
17
|
+
* @param strapi - The Strapi instance used to retrieve and manage routes.
|
|
18
|
+
*/
|
|
19
|
+
constructor(strapi: Core.Strapi);
|
|
20
|
+
/**
|
|
21
|
+
* Retrieves an array of routes.
|
|
22
|
+
*
|
|
23
|
+
* Classes extending this abstract class must provide their own implementation
|
|
24
|
+
* for returning the list of routes they manage.
|
|
25
|
+
*/
|
|
26
|
+
abstract get routes(): Core.Route[];
|
|
27
|
+
/**
|
|
28
|
+
* Iterator to traverse the routes.
|
|
29
|
+
*
|
|
30
|
+
* This generator function allows iterating over the {@link Core.Route} objects
|
|
31
|
+
* managed by this provider and yielding them one at a time.
|
|
32
|
+
*/
|
|
33
|
+
[Symbol.iterator](): Iterator<Core.Route>;
|
|
34
|
+
}
|
|
35
|
+
//# sourceMappingURL=abstract.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"abstract.d.ts","sourceRoot":"","sources":["../../../src/routes/providers/abstract.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAE1C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAE9C;;;;;;;GAOG;AACH,8BAAsB,sBAAuB,YAAW,cAAc;IACpE;;OAEG;IACH,SAAS,CAAC,QAAQ,CAAC,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC;IAExC;;OAEG;gBACgB,MAAM,EAAE,IAAI,CAAC,MAAM;IAItC;;;;;OAKG;IACH,aAAoB,MAAM,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;IAE3C;;;;;OAKG;IACK,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC;CAKlD"}
|