@strapi/openapi 0.0.0-experimental.6340da17068c3bed7fb006e7bcc554c71129e282 → 0.0.0-experimental.63624e21eb5b0713345a0cf2f68f1c40eab427bc

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (60) hide show
  1. package/dist/assemblers/document/factory.d.ts +2 -0
  2. package/dist/assemblers/document/factory.d.ts.map +1 -1
  3. package/dist/assemblers/document/factory.js +10 -0
  4. package/dist/assemblers/document/factory.js.map +1 -1
  5. package/dist/assemblers/document/factory.mjs +10 -0
  6. package/dist/assemblers/document/factory.mjs.map +1 -1
  7. package/dist/assemblers/document/path/path-item/operation/body.d.ts.map +1 -1
  8. package/dist/assemblers/document/path/path-item/operation/body.js +5 -1
  9. package/dist/assemblers/document/path/path-item/operation/body.js.map +1 -1
  10. package/dist/assemblers/document/path/path-item/operation/body.mjs +5 -1
  11. package/dist/assemblers/document/path/path-item/operation/body.mjs.map +1 -1
  12. package/dist/assemblers/document/path/path-item/operation/parameters.d.ts +6 -0
  13. package/dist/assemblers/document/path/path-item/operation/parameters.d.ts.map +1 -1
  14. package/dist/assemblers/document/path/path-item/operation/parameters.js +115 -17
  15. package/dist/assemblers/document/path/path-item/operation/parameters.js.map +1 -1
  16. package/dist/assemblers/document/path/path-item/operation/parameters.mjs +115 -17
  17. package/dist/assemblers/document/path/path-item/operation/parameters.mjs.map +1 -1
  18. package/dist/assemblers/document/path/path-item/operation/responses.d.ts.map +1 -1
  19. package/dist/assemblers/document/path/path-item/operation/responses.js +3 -1
  20. package/dist/assemblers/document/path/path-item/operation/responses.js.map +1 -1
  21. package/dist/assemblers/document/path/path-item/operation/responses.mjs +3 -1
  22. package/dist/assemblers/document/path/path-item/operation/responses.mjs.map +1 -1
  23. package/dist/assemblers/document/query-param-styles.d.ts +10 -0
  24. package/dist/assemblers/document/query-param-styles.d.ts.map +1 -0
  25. package/dist/assemblers/document/query-param-styles.js +23 -0
  26. package/dist/assemblers/document/query-param-styles.js.map +1 -0
  27. package/dist/assemblers/document/query-param-styles.mjs +19 -0
  28. package/dist/assemblers/document/query-param-styles.mjs.map +1 -0
  29. package/dist/assemblers/document/security.d.ts +8 -0
  30. package/dist/assemblers/document/security.d.ts.map +1 -0
  31. package/dist/assemblers/document/security.js +45 -0
  32. package/dist/assemblers/document/security.js.map +1 -0
  33. package/dist/assemblers/document/security.mjs +43 -0
  34. package/dist/assemblers/document/security.mjs.map +1 -0
  35. package/dist/assemblers/document/server.d.ts +13 -0
  36. package/dist/assemblers/document/server.d.ts.map +1 -0
  37. package/dist/assemblers/document/server.js +25 -0
  38. package/dist/assemblers/document/server.js.map +1 -0
  39. package/dist/assemblers/document/server.mjs +23 -0
  40. package/dist/assemblers/document/server.mjs.map +1 -0
  41. package/dist/context/types.d.ts +2 -2
  42. package/dist/context/types.d.ts.map +1 -1
  43. package/dist/post-processor/component-writer.d.ts.map +1 -1
  44. package/dist/post-processor/component-writer.js +21 -3
  45. package/dist/post-processor/component-writer.js.map +1 -1
  46. package/dist/post-processor/component-writer.mjs +22 -4
  47. package/dist/post-processor/component-writer.mjs.map +1 -1
  48. package/dist/registries/factory.d.ts +4 -1
  49. package/dist/registries/factory.d.ts.map +1 -1
  50. package/dist/registries/factory.js +3 -1
  51. package/dist/registries/factory.js.map +1 -1
  52. package/dist/registries/factory.mjs +3 -1
  53. package/dist/registries/factory.mjs.map +1 -1
  54. package/dist/utils/zod.d.ts +53 -10
  55. package/dist/utils/zod.d.ts.map +1 -1
  56. package/dist/utils/zod.js +128 -14
  57. package/dist/utils/zod.js.map +1 -1
  58. package/dist/utils/zod.mjs +126 -15
  59. package/dist/utils/zod.mjs.map +1 -1
  60. package/package.json +10 -6
@@ -1 +1 @@
1
- {"version":3,"file":"parameters.mjs","sources":["../../../../../../src/assemblers/document/path/path-item/operation/parameters.ts"],"sourcesContent":["import type { Core } from '@strapi/types';\nimport type { OpenAPIV3_1 } from 'openapi-types';\nimport type { Assembler } from '../../../..';\n\nimport type { OperationContext } from '../../../../../types';\nimport { createDebugger, zodToOpenAPI } from '../../../../../utils';\n\nconst debug = createDebugger('assembler:parameters');\n\ntype PathParameterObject = OpenAPIV3_1.ParameterObject & { in: 'path' };\ntype QueryParameterObject = OpenAPIV3_1.ParameterObject & { in: 'query' };\n\nexport class OperationParametersAssembler implements Assembler.Operation {\n assemble(context: OperationContext, route: Core.Route): void {\n debug('assembling parameters for %o %o...', route.method, route.path);\n\n const pathParameters = this._getPathParameters(route);\n debug('found %o path parameters', pathParameters.length);\n\n const queryParameters = this._getQueryParameters(route);\n debug('found %o query parameters', queryParameters.length);\n\n const parameters = [...pathParameters, ...queryParameters];\n debug('assembled %o parameters for %o %o', parameters.length, route.method, route.path);\n\n context.output.data.parameters = parameters;\n }\n\n private _getPathParameters(route: Core.Route): PathParameterObject[] {\n const { params } = route.request ?? {};\n\n // TODO: Allow auto inference (from path) if enabled through configuration\n if (!params) {\n return [];\n }\n\n const pathParams: PathParameterObject[] = [];\n\n for (const [name, zodSchema] of Object.entries(params)) {\n const required = !zodSchema.isOptional();\n const schema = zodToOpenAPI(zodSchema) as any;\n\n pathParams.push({ name, in: 'path', required, schema });\n }\n\n return pathParams;\n }\n\n private _getQueryParameters(route: Core.Route): QueryParameterObject[] {\n const { query } = route.request ?? {};\n\n if (!query) {\n return [];\n }\n\n const queryParams: QueryParameterObject[] = [];\n\n for (const [name, zodSchema] of Object.entries(query)) {\n const required = !zodSchema.isOptional();\n const schema = zodToOpenAPI(zodSchema) as any;\n const param: QueryParameterObject = { name, in: 'query', required, schema };\n\n // In Strapi, query params are always interpreted as query strings, which isn't supported by the specification\n // TODO: Make that configurable somehow\n Object.assign(param, { 'x-strapi-serialize': 'querystring' });\n\n queryParams.push(param);\n }\n\n return queryParams;\n }\n}\n"],"names":["debug","createDebugger","OperationParametersAssembler","assemble","context","route","method","path","pathParameters","_getPathParameters","length","queryParameters","_getQueryParameters","parameters","output","data","params","request","pathParams","name","zodSchema","Object","entries","required","isOptional","schema","zodToOpenAPI","push","in","query","queryParams","param","assign"],"mappings":";;;AAOA,MAAMA,QAAQC,cAAAA,CAAe,sBAAA,CAAA;AAKtB,MAAMC,4BAAAA,CAAAA;IACXC,QAAAA,CAASC,OAAyB,EAAEC,KAAiB,EAAQ;AAC3DL,QAAAA,KAAAA,CAAM,oCAAA,EAAsCK,KAAAA,CAAMC,MAAM,EAAED,MAAME,IAAI,CAAA;AAEpE,QAAA,MAAMC,cAAAA,GAAiB,IAAI,CAACC,kBAAkB,CAACJ,KAAAA,CAAAA;QAC/CL,KAAAA,CAAM,0BAAA,EAA4BQ,eAAeE,MAAM,CAAA;AAEvD,QAAA,MAAMC,eAAAA,GAAkB,IAAI,CAACC,mBAAmB,CAACP,KAAAA,CAAAA;QACjDL,KAAAA,CAAM,2BAAA,EAA6BW,gBAAgBD,MAAM,CAAA;AAEzD,QAAA,MAAMG,UAAAA,GAAa;AAAIL,YAAAA,GAAAA,cAAAA;AAAmBG,YAAAA,GAAAA;AAAgB,SAAA;QAC1DX,KAAAA,CAAM,mCAAA,EAAqCa,WAAWH,MAAM,EAAEL,MAAMC,MAAM,EAAED,MAAME,IAAI,CAAA;AAEtFH,QAAAA,OAAAA,CAAQU,MAAM,CAACC,IAAI,CAACF,UAAU,GAAGA,UAAAA;AACnC,IAAA;AAEQJ,IAAAA,kBAAAA,CAAmBJ,KAAiB,EAAyB;AACnE,QAAA,MAAM,EAAEW,MAAM,EAAE,GAAGX,KAAAA,CAAMY,OAAO,IAAI,EAAC;;AAGrC,QAAA,IAAI,CAACD,MAAAA,EAAQ;AACX,YAAA,OAAO,EAAE;AACX,QAAA;AAEA,QAAA,MAAME,aAAoC,EAAE;QAE5C,KAAK,MAAM,CAACC,IAAAA,EAAMC,SAAAA,CAAU,IAAIC,MAAAA,CAAOC,OAAO,CAACN,MAAAA,CAAAA,CAAS;YACtD,MAAMO,QAAAA,GAAW,CAACH,SAAAA,CAAUI,UAAU,EAAA;AACtC,YAAA,MAAMC,SAASC,YAAAA,CAAaN,SAAAA,CAAAA;AAE5BF,YAAAA,UAAAA,CAAWS,IAAI,CAAC;AAAER,gBAAAA,IAAAA;gBAAMS,EAAAA,EAAI,MAAA;AAAQL,gBAAAA,QAAAA;AAAUE,gBAAAA;AAAO,aAAA,CAAA;AACvD,QAAA;QAEA,OAAOP,UAAAA;AACT,IAAA;AAEQN,IAAAA,mBAAAA,CAAoBP,KAAiB,EAA0B;AACrE,QAAA,MAAM,EAAEwB,KAAK,EAAE,GAAGxB,KAAAA,CAAMY,OAAO,IAAI,EAAC;AAEpC,QAAA,IAAI,CAACY,KAAAA,EAAO;AACV,YAAA,OAAO,EAAE;AACX,QAAA;AAEA,QAAA,MAAMC,cAAsC,EAAE;QAE9C,KAAK,MAAM,CAACX,IAAAA,EAAMC,SAAAA,CAAU,IAAIC,MAAAA,CAAOC,OAAO,CAACO,KAAAA,CAAAA,CAAQ;YACrD,MAAMN,QAAAA,GAAW,CAACH,SAAAA,CAAUI,UAAU,EAAA;AACtC,YAAA,MAAMC,SAASC,YAAAA,CAAaN,SAAAA,CAAAA;AAC5B,YAAA,MAAMW,KAAAA,GAA8B;AAAEZ,gBAAAA,IAAAA;gBAAMS,EAAAA,EAAI,OAAA;AAASL,gBAAAA,QAAAA;AAAUE,gBAAAA;AAAO,aAAA;;;YAI1EJ,MAAAA,CAAOW,MAAM,CAACD,KAAAA,EAAO;gBAAE,oBAAA,EAAsB;AAAc,aAAA,CAAA;AAE3DD,YAAAA,WAAAA,CAAYH,IAAI,CAACI,KAAAA,CAAAA;AACnB,QAAA;QAEA,OAAOD,WAAAA;AACT,IAAA;AACF;;;;"}
1
+ {"version":3,"file":"parameters.mjs","sources":["../../../../../../src/assemblers/document/path/path-item/operation/parameters.ts"],"sourcesContent":["import type { Core } from '@strapi/types';\nimport type { OpenAPIV3_1 } from 'openapi-types';\nimport type { Assembler } from '../../../..';\n\nimport type { OperationContext } from '../../../../../types';\nimport { createDebugger, zodToOpenAPI } from '../../../../../utils';\nimport {\n hasExpandableObjectProperties,\n shouldUseDeepObjectStyle,\n} from '../../../query-param-styles';\n\nconst debug = createDebugger('assembler:parameters');\n\ntype PathParameterObject = OpenAPIV3_1.ParameterObject & { in: 'path' };\ntype QueryParameterObject = OpenAPIV3_1.ParameterObject & { in: 'query' };\n\nexport class OperationParametersAssembler implements Assembler.Operation {\n assemble(context: OperationContext, route: Core.Route): void {\n debug('assembling parameters for %o %o...', route.method, route.path);\n\n const schemaStore = context.strapi.contentAPISchemaRegistry;\n const { extractedComponentSchemas } = context.registries;\n const pathParameters = this._getPathParameters(route, schemaStore, extractedComponentSchemas);\n debug('found %o path parameters', pathParameters.length);\n\n const queryParameters = this._getQueryParameters(route, schemaStore, extractedComponentSchemas);\n debug('found %o query parameters', queryParameters.length);\n\n const parameters = [...pathParameters, ...queryParameters];\n debug('assembled %o parameters for %o %o', parameters.length, route.method, route.path);\n\n context.output.data.parameters = parameters;\n }\n\n private _getPathParameters(\n route: Core.Route,\n schemaStore: Core.ContentAPISchemaRegistry,\n extractedComponentSchemas: Record<string, OpenAPIV3_1.SchemaObject>\n ): PathParameterObject[] {\n const { params } = route.request ?? {};\n\n // TODO: Allow auto inference (from path) if enabled through configuration\n if (!params) {\n return [];\n }\n\n const pathParams: PathParameterObject[] = [];\n\n for (const [name, zodSchema] of Object.entries(params)) {\n const required = !zodSchema.isOptional();\n const schema = zodToOpenAPI(zodSchema, schemaStore, {\n extractedComponentSchemas,\n }) as any;\n\n pathParams.push({ name, in: 'path', required, schema });\n }\n\n return pathParams;\n }\n\n private _getQueryParameters(\n route: Core.Route,\n schemaStore: Core.ContentAPISchemaRegistry,\n extractedComponentSchemas: Record<string, OpenAPIV3_1.SchemaObject>\n ): QueryParameterObject[] {\n const { query } = route.request ?? {};\n\n if (!query) {\n return [];\n }\n\n const queryParams: QueryParameterObject[] = [];\n\n for (const [name, zodSchema] of Object.entries(query)) {\n const required = !zodSchema.isOptional();\n const schema = zodToOpenAPI(zodSchema, schemaStore, {\n extractedComponentSchemas,\n }) as any;\n\n const resolvedSchema = this._resolveSchema(schema);\n\n if (hasExpandableObjectProperties(resolvedSchema)) {\n for (const [propName, propSchema] of Object.entries(resolvedSchema.properties!)) {\n const isRequired = resolvedSchema.required?.includes(propName) ?? false;\n\n const param: QueryParameterObject = {\n name: `${name}[${propName}]`,\n in: 'query',\n required: isRequired,\n schema: propSchema as any,\n };\n\n Object.assign(param, { 'x-strapi-serialize': 'querystring' });\n queryParams.push(param);\n }\n } else if (shouldUseDeepObjectStyle(name, resolvedSchema)) {\n const param: QueryParameterObject = {\n name,\n in: 'query',\n required,\n schema: resolvedSchema as any,\n style: 'deepObject',\n explode: true,\n };\n\n Object.assign(param, { 'x-strapi-serialize': 'querystring' });\n queryParams.push(param);\n } else {\n const param: QueryParameterObject = { name, in: 'query', required, schema };\n Object.assign(param, { 'x-strapi-serialize': 'querystring' });\n queryParams.push(param);\n }\n }\n\n return queryParams;\n }\n\n /**\n * Resolve composite OpenAPI schemas (allOf/anyOf/oneOf) into a flat object shape\n * so nested Strapi query params can be emitted as bracket notation (e.g. pagination[page]).\n */\n private _resolveSchema(schema: OpenAPIV3_1.SchemaObject): OpenAPIV3_1.SchemaObject {\n if (schema.type === 'object' && schema.properties) {\n return schema;\n }\n\n if (schema.allOf && Array.isArray(schema.allOf)) {\n const mergedSchema: OpenAPIV3_1.SchemaObject = {\n type: 'object',\n properties: {},\n required: [],\n };\n\n for (const subSchema of schema.allOf) {\n if (!('$ref' in subSchema)) {\n const hasAnyOfOneOf = Boolean(subSchema.anyOf || subSchema.oneOf);\n const resolved = this._resolveSchema(subSchema);\n\n if (resolved.type === 'object' && resolved.properties) {\n Object.assign(mergedSchema.properties!, resolved.properties);\n if (resolved.required && !hasAnyOfOneOf) {\n mergedSchema.required = [\n ...(mergedSchema.required ?? []),\n ...(resolved.required as string[]),\n ];\n }\n }\n }\n }\n\n return hasExpandableObjectProperties(mergedSchema) ? mergedSchema : schema;\n }\n\n if (schema.anyOf && Array.isArray(schema.anyOf)) {\n return this._extractCommonProperties(schema.anyOf, false);\n }\n\n if (schema.oneOf && Array.isArray(schema.oneOf)) {\n return this._extractCommonProperties(schema.oneOf, false);\n }\n\n return schema;\n }\n\n private _extractCommonProperties(\n schemas: OpenAPIV3_1.SchemaObject[],\n preserveRequired = true\n ): OpenAPIV3_1.SchemaObject {\n const objectSchemas = schemas\n .filter((s): s is OpenAPIV3_1.SchemaObject => !('$ref' in s))\n .map((s) => this._resolveSchema(s))\n .filter((s) => s.type === 'object' && s.properties);\n\n if (objectSchemas.length === 0) {\n return schemas[0] as OpenAPIV3_1.SchemaObject;\n }\n\n const allProperties: Record<string, OpenAPIV3_1.SchemaObject> = {};\n let allRequired: string[] = [];\n\n for (const objSchema of objectSchemas) {\n Object.assign(allProperties, objSchema.properties);\n if (preserveRequired && objSchema.required) {\n allRequired.push(...(objSchema.required as string[]));\n }\n }\n\n if (!preserveRequired) {\n allRequired = [];\n }\n\n if (Object.keys(allProperties).length === 0) {\n return schemas[0] as OpenAPIV3_1.SchemaObject;\n }\n\n return {\n type: 'object',\n properties: allProperties,\n required: allRequired,\n };\n }\n}\n"],"names":["debug","createDebugger","OperationParametersAssembler","assemble","context","route","method","path","schemaStore","strapi","contentAPISchemaRegistry","extractedComponentSchemas","registries","pathParameters","_getPathParameters","length","queryParameters","_getQueryParameters","parameters","output","data","params","request","pathParams","name","zodSchema","Object","entries","required","isOptional","schema","zodToOpenAPI","push","in","query","queryParams","resolvedSchema","_resolveSchema","hasExpandableObjectProperties","propName","propSchema","properties","isRequired","includes","param","assign","shouldUseDeepObjectStyle","style","explode","type","allOf","Array","isArray","mergedSchema","subSchema","hasAnyOfOneOf","Boolean","anyOf","oneOf","resolved","_extractCommonProperties","schemas","preserveRequired","objectSchemas","filter","s","map","allProperties","allRequired","objSchema","keys"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"responses.d.ts","sourceRoot":"","sources":["../../../../../../src/assemblers/document/path/path-item/operation/responses.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAE1C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAG7D,qBAAa,2BAA4B,YAAW,SAAS,CAAC,SAAS;IACrE,OAAO,KAAK,OAAO,GAQlB;IAED,QAAQ,CAAC,OAAO,EAAE,gBAAgB,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,GAAG,IAAI;CAqB7D"}
1
+ {"version":3,"file":"responses.d.ts","sourceRoot":"","sources":["../../../../../../src/assemblers/document/path/path-item/operation/responses.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAE1C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAG7D,qBAAa,2BAA4B,YAAW,SAAS,CAAC,SAAS;IACrE,OAAO,KAAK,OAAO,GAQlB;IAED,QAAQ,CAAC,OAAO,EAAE,gBAAgB,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,GAAG,IAAI;CAuB7D"}
@@ -33,7 +33,9 @@ class OperationResponsesAssembler {
33
33
  responses[errorCode] = response;
34
34
  }
35
35
  if (route.response) {
36
- const schema = zod.zodToOpenAPI(route.response);
36
+ const schema = zod.zodToOpenAPI(route.response, context.strapi.contentAPISchemaRegistry, {
37
+ extractedComponentSchemas: context.registries.extractedComponentSchemas
38
+ });
37
39
  responses[200] = {
38
40
  description: 'OK',
39
41
  content: {
@@ -1 +1 @@
1
- {"version":3,"file":"responses.js","sources":["../../../../../../src/assemblers/document/path/path-item/operation/responses.ts"],"sourcesContent":["import type { Core } from '@strapi/types';\nimport type { OpenAPIV3_1 } from 'openapi-types';\nimport type { Assembler } from '../../../..';\nimport type { OperationContext } from '../../../../../types';\nimport { zodToOpenAPI } from '../../../../../utils';\n\nexport class OperationResponsesAssembler implements Assembler.Operation {\n private get _errors() {\n return {\n 400: { description: 'Bad request' },\n 401: { description: 'Unauthorized' },\n 403: { description: 'Forbidden' },\n 404: { description: 'Not found' },\n 500: { description: 'Internal server error' },\n };\n }\n\n assemble(context: OperationContext, route: Core.Route): void {\n const { output } = context;\n\n const responses = { ...output.data.responses } satisfies OpenAPIV3_1.ResponsesObject;\n\n // Register common error responses first to allow manual overrides\n for (const [errorCode, response] of Object.entries(this._errors)) {\n responses[errorCode] = response;\n }\n\n if (route.response) {\n const schema = zodToOpenAPI(route.response);\n\n responses[200] = {\n description: 'OK',\n content: { 'application/json': { schema } },\n };\n }\n\n output.data.responses = responses;\n }\n}\n"],"names":["OperationResponsesAssembler","_errors","description","assemble","context","route","output","responses","data","errorCode","response","Object","entries","schema","zodToOpenAPI","content"],"mappings":";;;;;AAMO,MAAMA,2BAAAA,CAAAA;AACX,IAAA,IAAYC,OAAAA,GAAU;QACpB,OAAO;YACL,GAAA,EAAK;gBAAEC,WAAAA,EAAa;AAAc,aAAA;YAClC,GAAA,EAAK;gBAAEA,WAAAA,EAAa;AAAe,aAAA;YACnC,GAAA,EAAK;gBAAEA,WAAAA,EAAa;AAAY,aAAA;YAChC,GAAA,EAAK;gBAAEA,WAAAA,EAAa;AAAY,aAAA;YAChC,GAAA,EAAK;gBAAEA,WAAAA,EAAa;AAAwB;AAC9C,SAAA;AACF,IAAA;IAEAC,QAAAA,CAASC,OAAyB,EAAEC,KAAiB,EAAQ;QAC3D,MAAM,EAAEC,MAAM,EAAE,GAAGF,OAAAA;AAEnB,QAAA,MAAMG,SAAAA,GAAY;YAAE,GAAGD,MAAAA,CAAOE,IAAI,CAACD;AAAU,SAAA;;QAG7C,KAAK,MAAM,CAACE,SAAAA,EAAWC,QAAAA,CAAS,IAAIC,MAAAA,CAAOC,OAAO,CAAC,IAAI,CAACX,OAAO,CAAA,CAAG;YAChEM,SAAS,CAACE,UAAU,GAAGC,QAAAA;AACzB,QAAA;QAEA,IAAIL,KAAAA,CAAMK,QAAQ,EAAE;YAClB,MAAMG,MAAAA,GAASC,gBAAAA,CAAaT,KAAAA,CAAMK,QAAQ,CAAA;YAE1CH,SAAS,CAAC,IAAI,GAAG;gBACfL,WAAAA,EAAa,IAAA;gBACba,OAAAA,EAAS;oBAAE,kBAAA,EAAoB;AAAEF,wBAAAA;AAAO;AAAE;AAC5C,aAAA;AACF,QAAA;QAEAP,MAAAA,CAAOE,IAAI,CAACD,SAAS,GAAGA,SAAAA;AAC1B,IAAA;AACF;;;;"}
1
+ {"version":3,"file":"responses.js","sources":["../../../../../../src/assemblers/document/path/path-item/operation/responses.ts"],"sourcesContent":["import type { Core } from '@strapi/types';\nimport type { OpenAPIV3_1 } from 'openapi-types';\nimport type { Assembler } from '../../../..';\nimport type { OperationContext } from '../../../../../types';\nimport { zodToOpenAPI } from '../../../../../utils';\n\nexport class OperationResponsesAssembler implements Assembler.Operation {\n private get _errors() {\n return {\n 400: { description: 'Bad request' },\n 401: { description: 'Unauthorized' },\n 403: { description: 'Forbidden' },\n 404: { description: 'Not found' },\n 500: { description: 'Internal server error' },\n };\n }\n\n assemble(context: OperationContext, route: Core.Route): void {\n const { output } = context;\n\n const responses = { ...output.data.responses } satisfies OpenAPIV3_1.ResponsesObject;\n\n // Register common error responses first to allow manual overrides\n for (const [errorCode, response] of Object.entries(this._errors)) {\n responses[errorCode] = response;\n }\n\n if (route.response) {\n const schema = zodToOpenAPI(route.response, context.strapi.contentAPISchemaRegistry, {\n extractedComponentSchemas: context.registries.extractedComponentSchemas,\n });\n\n responses[200] = {\n description: 'OK',\n content: { 'application/json': { schema } },\n };\n }\n\n output.data.responses = responses;\n }\n}\n"],"names":["OperationResponsesAssembler","_errors","description","assemble","context","route","output","responses","data","errorCode","response","Object","entries","schema","zodToOpenAPI","strapi","contentAPISchemaRegistry","extractedComponentSchemas","registries","content"],"mappings":";;;;;AAMO,MAAMA,2BAAAA,CAAAA;AACX,IAAA,IAAYC,OAAAA,GAAU;QACpB,OAAO;YACL,GAAA,EAAK;gBAAEC,WAAAA,EAAa;AAAc,aAAA;YAClC,GAAA,EAAK;gBAAEA,WAAAA,EAAa;AAAe,aAAA;YACnC,GAAA,EAAK;gBAAEA,WAAAA,EAAa;AAAY,aAAA;YAChC,GAAA,EAAK;gBAAEA,WAAAA,EAAa;AAAY,aAAA;YAChC,GAAA,EAAK;gBAAEA,WAAAA,EAAa;AAAwB;AAC9C,SAAA;AACF,IAAA;IAEAC,QAAAA,CAASC,OAAyB,EAAEC,KAAiB,EAAQ;QAC3D,MAAM,EAAEC,MAAM,EAAE,GAAGF,OAAAA;AAEnB,QAAA,MAAMG,SAAAA,GAAY;YAAE,GAAGD,MAAAA,CAAOE,IAAI,CAACD;AAAU,SAAA;;QAG7C,KAAK,MAAM,CAACE,SAAAA,EAAWC,QAAAA,CAAS,IAAIC,MAAAA,CAAOC,OAAO,CAAC,IAAI,CAACX,OAAO,CAAA,CAAG;YAChEM,SAAS,CAACE,UAAU,GAAGC,QAAAA;AACzB,QAAA;QAEA,IAAIL,KAAAA,CAAMK,QAAQ,EAAE;YAClB,MAAMG,MAAAA,GAASC,iBAAaT,KAAAA,CAAMK,QAAQ,EAAEN,OAAAA,CAAQW,MAAM,CAACC,wBAAwB,EAAE;gBACnFC,yBAAAA,EAA2Bb,OAAAA,CAAQc,UAAU,CAACD;AAChD,aAAA,CAAA;YAEAV,SAAS,CAAC,IAAI,GAAG;gBACfL,WAAAA,EAAa,IAAA;gBACbiB,OAAAA,EAAS;oBAAE,kBAAA,EAAoB;AAAEN,wBAAAA;AAAO;AAAE;AAC5C,aAAA;AACF,QAAA;QAEAP,MAAAA,CAAOE,IAAI,CAACD,SAAS,GAAGA,SAAAA;AAC1B,IAAA;AACF;;;;"}
@@ -31,7 +31,9 @@ class OperationResponsesAssembler {
31
31
  responses[errorCode] = response;
32
32
  }
33
33
  if (route.response) {
34
- const schema = zodToOpenAPI(route.response);
34
+ const schema = zodToOpenAPI(route.response, context.strapi.contentAPISchemaRegistry, {
35
+ extractedComponentSchemas: context.registries.extractedComponentSchemas
36
+ });
35
37
  responses[200] = {
36
38
  description: 'OK',
37
39
  content: {
@@ -1 +1 @@
1
- {"version":3,"file":"responses.mjs","sources":["../../../../../../src/assemblers/document/path/path-item/operation/responses.ts"],"sourcesContent":["import type { Core } from '@strapi/types';\nimport type { OpenAPIV3_1 } from 'openapi-types';\nimport type { Assembler } from '../../../..';\nimport type { OperationContext } from '../../../../../types';\nimport { zodToOpenAPI } from '../../../../../utils';\n\nexport class OperationResponsesAssembler implements Assembler.Operation {\n private get _errors() {\n return {\n 400: { description: 'Bad request' },\n 401: { description: 'Unauthorized' },\n 403: { description: 'Forbidden' },\n 404: { description: 'Not found' },\n 500: { description: 'Internal server error' },\n };\n }\n\n assemble(context: OperationContext, route: Core.Route): void {\n const { output } = context;\n\n const responses = { ...output.data.responses } satisfies OpenAPIV3_1.ResponsesObject;\n\n // Register common error responses first to allow manual overrides\n for (const [errorCode, response] of Object.entries(this._errors)) {\n responses[errorCode] = response;\n }\n\n if (route.response) {\n const schema = zodToOpenAPI(route.response);\n\n responses[200] = {\n description: 'OK',\n content: { 'application/json': { schema } },\n };\n }\n\n output.data.responses = responses;\n }\n}\n"],"names":["OperationResponsesAssembler","_errors","description","assemble","context","route","output","responses","data","errorCode","response","Object","entries","schema","zodToOpenAPI","content"],"mappings":";;;AAMO,MAAMA,2BAAAA,CAAAA;AACX,IAAA,IAAYC,OAAAA,GAAU;QACpB,OAAO;YACL,GAAA,EAAK;gBAAEC,WAAAA,EAAa;AAAc,aAAA;YAClC,GAAA,EAAK;gBAAEA,WAAAA,EAAa;AAAe,aAAA;YACnC,GAAA,EAAK;gBAAEA,WAAAA,EAAa;AAAY,aAAA;YAChC,GAAA,EAAK;gBAAEA,WAAAA,EAAa;AAAY,aAAA;YAChC,GAAA,EAAK;gBAAEA,WAAAA,EAAa;AAAwB;AAC9C,SAAA;AACF,IAAA;IAEAC,QAAAA,CAASC,OAAyB,EAAEC,KAAiB,EAAQ;QAC3D,MAAM,EAAEC,MAAM,EAAE,GAAGF,OAAAA;AAEnB,QAAA,MAAMG,SAAAA,GAAY;YAAE,GAAGD,MAAAA,CAAOE,IAAI,CAACD;AAAU,SAAA;;QAG7C,KAAK,MAAM,CAACE,SAAAA,EAAWC,QAAAA,CAAS,IAAIC,MAAAA,CAAOC,OAAO,CAAC,IAAI,CAACX,OAAO,CAAA,CAAG;YAChEM,SAAS,CAACE,UAAU,GAAGC,QAAAA;AACzB,QAAA;QAEA,IAAIL,KAAAA,CAAMK,QAAQ,EAAE;YAClB,MAAMG,MAAAA,GAASC,YAAAA,CAAaT,KAAAA,CAAMK,QAAQ,CAAA;YAE1CH,SAAS,CAAC,IAAI,GAAG;gBACfL,WAAAA,EAAa,IAAA;gBACba,OAAAA,EAAS;oBAAE,kBAAA,EAAoB;AAAEF,wBAAAA;AAAO;AAAE;AAC5C,aAAA;AACF,QAAA;QAEAP,MAAAA,CAAOE,IAAI,CAACD,SAAS,GAAGA,SAAAA;AAC1B,IAAA;AACF;;;;"}
1
+ {"version":3,"file":"responses.mjs","sources":["../../../../../../src/assemblers/document/path/path-item/operation/responses.ts"],"sourcesContent":["import type { Core } from '@strapi/types';\nimport type { OpenAPIV3_1 } from 'openapi-types';\nimport type { Assembler } from '../../../..';\nimport type { OperationContext } from '../../../../../types';\nimport { zodToOpenAPI } from '../../../../../utils';\n\nexport class OperationResponsesAssembler implements Assembler.Operation {\n private get _errors() {\n return {\n 400: { description: 'Bad request' },\n 401: { description: 'Unauthorized' },\n 403: { description: 'Forbidden' },\n 404: { description: 'Not found' },\n 500: { description: 'Internal server error' },\n };\n }\n\n assemble(context: OperationContext, route: Core.Route): void {\n const { output } = context;\n\n const responses = { ...output.data.responses } satisfies OpenAPIV3_1.ResponsesObject;\n\n // Register common error responses first to allow manual overrides\n for (const [errorCode, response] of Object.entries(this._errors)) {\n responses[errorCode] = response;\n }\n\n if (route.response) {\n const schema = zodToOpenAPI(route.response, context.strapi.contentAPISchemaRegistry, {\n extractedComponentSchemas: context.registries.extractedComponentSchemas,\n });\n\n responses[200] = {\n description: 'OK',\n content: { 'application/json': { schema } },\n };\n }\n\n output.data.responses = responses;\n }\n}\n"],"names":["OperationResponsesAssembler","_errors","description","assemble","context","route","output","responses","data","errorCode","response","Object","entries","schema","zodToOpenAPI","strapi","contentAPISchemaRegistry","extractedComponentSchemas","registries","content"],"mappings":";;;AAMO,MAAMA,2BAAAA,CAAAA;AACX,IAAA,IAAYC,OAAAA,GAAU;QACpB,OAAO;YACL,GAAA,EAAK;gBAAEC,WAAAA,EAAa;AAAc,aAAA;YAClC,GAAA,EAAK;gBAAEA,WAAAA,EAAa;AAAe,aAAA;YACnC,GAAA,EAAK;gBAAEA,WAAAA,EAAa;AAAY,aAAA;YAChC,GAAA,EAAK;gBAAEA,WAAAA,EAAa;AAAY,aAAA;YAChC,GAAA,EAAK;gBAAEA,WAAAA,EAAa;AAAwB;AAC9C,SAAA;AACF,IAAA;IAEAC,QAAAA,CAASC,OAAyB,EAAEC,KAAiB,EAAQ;QAC3D,MAAM,EAAEC,MAAM,EAAE,GAAGF,OAAAA;AAEnB,QAAA,MAAMG,SAAAA,GAAY;YAAE,GAAGD,MAAAA,CAAOE,IAAI,CAACD;AAAU,SAAA;;QAG7C,KAAK,MAAM,CAACE,SAAAA,EAAWC,QAAAA,CAAS,IAAIC,MAAAA,CAAOC,OAAO,CAAC,IAAI,CAACX,OAAO,CAAA,CAAG;YAChEM,SAAS,CAACE,UAAU,GAAGC,QAAAA;AACzB,QAAA;QAEA,IAAIL,KAAAA,CAAMK,QAAQ,EAAE;YAClB,MAAMG,MAAAA,GAASC,aAAaT,KAAAA,CAAMK,QAAQ,EAAEN,OAAAA,CAAQW,MAAM,CAACC,wBAAwB,EAAE;gBACnFC,yBAAAA,EAA2Bb,OAAAA,CAAQc,UAAU,CAACD;AAChD,aAAA,CAAA;YAEAV,SAAS,CAAC,IAAI,GAAG;gBACfL,WAAAA,EAAa,IAAA;gBACbiB,OAAAA,EAAS;oBAAE,kBAAA,EAAoB;AAAEN,wBAAAA;AAAO;AAAE;AAC5C,aAAA;AACF,QAAA;QAEAP,MAAAA,CAAOE,IAAI,CAACD,SAAS,GAAGA,SAAAA;AAC1B,IAAA;AACF;;;;"}
@@ -0,0 +1,10 @@
1
+ import type { OpenAPIV3_1 } from 'openapi-types';
2
+ /**
3
+ * Query params whose values are open-ended records parsed from bracket notation
4
+ * (e.g. filters[title][$eq]=hello). These are described as deepObject in OpenAPI
5
+ * rather than expanded into fixed sub-keys.
6
+ */
7
+ export declare const DEEP_OBJECT_QUERY_PARAMS: Set<string>;
8
+ export declare const shouldUseDeepObjectStyle: (name: string, schema: OpenAPIV3_1.SchemaObject) => boolean;
9
+ export declare const hasExpandableObjectProperties: (schema: OpenAPIV3_1.SchemaObject) => boolean;
10
+ //# sourceMappingURL=query-param-styles.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"query-param-styles.d.ts","sourceRoot":"","sources":["../../../src/assemblers/document/query-param-styles.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAEjD;;;;GAIG;AACH,eAAO,MAAM,wBAAwB,aAAuB,CAAC;AAE7D,eAAO,MAAM,wBAAwB,GACnC,MAAM,MAAM,EACZ,QAAQ,WAAW,CAAC,YAAY,KAC/B,OAWF,CAAC;AAEF,eAAO,MAAM,6BAA6B,GAAI,QAAQ,WAAW,CAAC,YAAY,KAAG,OAIhF,CAAC"}
@@ -0,0 +1,23 @@
1
+ 'use strict';
2
+
3
+ /**
4
+ * Query params whose values are open-ended records parsed from bracket notation
5
+ * (e.g. filters[title][$eq]=hello). These are described as deepObject in OpenAPI
6
+ * rather than expanded into fixed sub-keys.
7
+ */ const DEEP_OBJECT_QUERY_PARAMS = new Set([
8
+ 'filters'
9
+ ]);
10
+ const shouldUseDeepObjectStyle = (name, schema)=>{
11
+ if (DEEP_OBJECT_QUERY_PARAMS.has(name)) {
12
+ return true;
13
+ }
14
+ return schema.type === 'object' && (!schema.properties || Object.keys(schema.properties).length === 0) && schema.additionalProperties !== undefined && schema.additionalProperties !== false;
15
+ };
16
+ const hasExpandableObjectProperties = (schema)=>{
17
+ return Boolean(schema.type === 'object' && schema.properties && Object.keys(schema.properties).length > 0);
18
+ };
19
+
20
+ exports.DEEP_OBJECT_QUERY_PARAMS = DEEP_OBJECT_QUERY_PARAMS;
21
+ exports.hasExpandableObjectProperties = hasExpandableObjectProperties;
22
+ exports.shouldUseDeepObjectStyle = shouldUseDeepObjectStyle;
23
+ //# sourceMappingURL=query-param-styles.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"query-param-styles.js","sources":["../../../src/assemblers/document/query-param-styles.ts"],"sourcesContent":["import type { OpenAPIV3_1 } from 'openapi-types';\n\n/**\n * Query params whose values are open-ended records parsed from bracket notation\n * (e.g. filters[title][$eq]=hello). These are described as deepObject in OpenAPI\n * rather than expanded into fixed sub-keys.\n */\nexport const DEEP_OBJECT_QUERY_PARAMS = new Set(['filters']);\n\nexport const shouldUseDeepObjectStyle = (\n name: string,\n schema: OpenAPIV3_1.SchemaObject\n): boolean => {\n if (DEEP_OBJECT_QUERY_PARAMS.has(name)) {\n return true;\n }\n\n return (\n schema.type === 'object' &&\n (!schema.properties || Object.keys(schema.properties).length === 0) &&\n schema.additionalProperties !== undefined &&\n schema.additionalProperties !== false\n );\n};\n\nexport const hasExpandableObjectProperties = (schema: OpenAPIV3_1.SchemaObject): boolean => {\n return Boolean(\n schema.type === 'object' && schema.properties && Object.keys(schema.properties).length > 0\n );\n};\n"],"names":["DEEP_OBJECT_QUERY_PARAMS","Set","shouldUseDeepObjectStyle","name","schema","has","type","properties","Object","keys","length","additionalProperties","undefined","hasExpandableObjectProperties","Boolean"],"mappings":";;AAEA;;;;AAIC,IACM,MAAMA,wBAAAA,GAA2B,IAAIC,GAAAA,CAAI;AAAC,IAAA;CAAU;AAEpD,MAAMC,wBAAAA,GAA2B,CACtCC,IAAAA,EACAC,MAAAA,GAAAA;IAEA,IAAIJ,wBAAAA,CAAyBK,GAAG,CAACF,IAAAA,CAAAA,EAAO;QACtC,OAAO,IAAA;AACT,IAAA;IAEA,OACEC,MAAAA,CAAOE,IAAI,KAAK,QAAA,KACf,CAACF,MAAAA,CAAOG,UAAU,IAAIC,MAAAA,CAAOC,IAAI,CAACL,OAAOG,UAAU,CAAA,CAAEG,MAAM,KAAK,CAAA,CAAA,IACjEN,MAAAA,CAAOO,oBAAoB,KAAKC,SAAAA,IAChCR,MAAAA,CAAOO,oBAAoB,KAAK,KAAA;AAEpC;AAEO,MAAME,gCAAgC,CAACT,MAAAA,GAAAA;AAC5C,IAAA,OAAOU,OAAAA,CACLV,MAAAA,CAAOE,IAAI,KAAK,YAAYF,MAAAA,CAAOG,UAAU,IAAIC,MAAAA,CAAOC,IAAI,CAACL,MAAAA,CAAOG,UAAU,CAAA,CAAEG,MAAM,GAAG,CAAA,CAAA;AAE7F;;;;;;"}
@@ -0,0 +1,19 @@
1
+ /**
2
+ * Query params whose values are open-ended records parsed from bracket notation
3
+ * (e.g. filters[title][$eq]=hello). These are described as deepObject in OpenAPI
4
+ * rather than expanded into fixed sub-keys.
5
+ */ const DEEP_OBJECT_QUERY_PARAMS = new Set([
6
+ 'filters'
7
+ ]);
8
+ const shouldUseDeepObjectStyle = (name, schema)=>{
9
+ if (DEEP_OBJECT_QUERY_PARAMS.has(name)) {
10
+ return true;
11
+ }
12
+ return schema.type === 'object' && (!schema.properties || Object.keys(schema.properties).length === 0) && schema.additionalProperties !== undefined && schema.additionalProperties !== false;
13
+ };
14
+ const hasExpandableObjectProperties = (schema)=>{
15
+ return Boolean(schema.type === 'object' && schema.properties && Object.keys(schema.properties).length > 0);
16
+ };
17
+
18
+ export { DEEP_OBJECT_QUERY_PARAMS, hasExpandableObjectProperties, shouldUseDeepObjectStyle };
19
+ //# sourceMappingURL=query-param-styles.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"query-param-styles.mjs","sources":["../../../src/assemblers/document/query-param-styles.ts"],"sourcesContent":["import type { OpenAPIV3_1 } from 'openapi-types';\n\n/**\n * Query params whose values are open-ended records parsed from bracket notation\n * (e.g. filters[title][$eq]=hello). These are described as deepObject in OpenAPI\n * rather than expanded into fixed sub-keys.\n */\nexport const DEEP_OBJECT_QUERY_PARAMS = new Set(['filters']);\n\nexport const shouldUseDeepObjectStyle = (\n name: string,\n schema: OpenAPIV3_1.SchemaObject\n): boolean => {\n if (DEEP_OBJECT_QUERY_PARAMS.has(name)) {\n return true;\n }\n\n return (\n schema.type === 'object' &&\n (!schema.properties || Object.keys(schema.properties).length === 0) &&\n schema.additionalProperties !== undefined &&\n schema.additionalProperties !== false\n );\n};\n\nexport const hasExpandableObjectProperties = (schema: OpenAPIV3_1.SchemaObject): boolean => {\n return Boolean(\n schema.type === 'object' && schema.properties && Object.keys(schema.properties).length > 0\n );\n};\n"],"names":["DEEP_OBJECT_QUERY_PARAMS","Set","shouldUseDeepObjectStyle","name","schema","has","type","properties","Object","keys","length","additionalProperties","undefined","hasExpandableObjectProperties","Boolean"],"mappings":"AAEA;;;;AAIC,IACM,MAAMA,wBAAAA,GAA2B,IAAIC,GAAAA,CAAI;AAAC,IAAA;CAAU;AAEpD,MAAMC,wBAAAA,GAA2B,CACtCC,IAAAA,EACAC,MAAAA,GAAAA;IAEA,IAAIJ,wBAAAA,CAAyBK,GAAG,CAACF,IAAAA,CAAAA,EAAO;QACtC,OAAO,IAAA;AACT,IAAA;IAEA,OACEC,MAAAA,CAAOE,IAAI,KAAK,QAAA,KACf,CAACF,MAAAA,CAAOG,UAAU,IAAIC,MAAAA,CAAOC,IAAI,CAACL,OAAOG,UAAU,CAAA,CAAEG,MAAM,KAAK,CAAA,CAAA,IACjEN,MAAAA,CAAOO,oBAAoB,KAAKC,SAAAA,IAChCR,MAAAA,CAAOO,oBAAoB,KAAK,KAAA;AAEpC;AAEO,MAAME,gCAAgC,CAACT,MAAAA,GAAAA;AAC5C,IAAA,OAAOU,OAAAA,CACLV,MAAAA,CAAOE,IAAI,KAAK,YAAYF,MAAAA,CAAOG,UAAU,IAAIC,MAAAA,CAAOC,IAAI,CAACL,MAAAA,CAAOG,UAAU,CAAA,CAAEG,MAAM,GAAG,CAAA,CAAA;AAE7F;;;;"}
@@ -0,0 +1,8 @@
1
+ import type { DocumentContext } from '../../types';
2
+ import type { Assembler } from '..';
3
+ export declare class DocumentSecurityAssembler implements Assembler.Document {
4
+ assemble(context: DocumentContext): void;
5
+ private _getSecuritySchemes;
6
+ private _getGlobalSecurity;
7
+ }
8
+ //# sourceMappingURL=security.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"security.d.ts","sourceRoot":"","sources":["../../../src/assemblers/document/security.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAEnD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,IAAI,CAAC;AASpC,qBAAa,yBAA0B,YAAW,SAAS,CAAC,QAAQ;IAClE,QAAQ,CAAC,OAAO,EAAE,eAAe,GAAG,IAAI;IAcxC,OAAO,CAAC,mBAAmB;IAqB3B,OAAO,CAAC,kBAAkB;CAU3B"}
@@ -0,0 +1,45 @@
1
+ 'use strict';
2
+
3
+ const DEFAULT_BEARER_AUTH = {
4
+ type: 'http',
5
+ scheme: 'bearer',
6
+ bearerFormat: 'JWT',
7
+ description: 'JWT Bearer token for authentication'
8
+ };
9
+ class DocumentSecurityAssembler {
10
+ assemble(context) {
11
+ const { strapi } = context;
12
+ const securitySchemes = this._getSecuritySchemes(strapi);
13
+ const security = this._getGlobalSecurity(strapi);
14
+ if (context.output.data.components === undefined) {
15
+ context.output.data.components = {};
16
+ }
17
+ context.output.data.components.securitySchemes = securitySchemes;
18
+ context.output.data.security = security;
19
+ }
20
+ _getSecuritySchemes(strapi) {
21
+ const securityConfig = strapi.config.get('openapi.security') ?? {};
22
+ const schemes = {};
23
+ if (!securityConfig.bearerAuth) {
24
+ schemes.bearerAuth = DEFAULT_BEARER_AUTH;
25
+ }
26
+ for (const [name, config] of Object.entries(securityConfig)){
27
+ schemes[name] = config;
28
+ }
29
+ return schemes;
30
+ }
31
+ _getGlobalSecurity(strapi) {
32
+ const globalSecurity = strapi.config.get('openapi.globalSecurity');
33
+ if (globalSecurity) {
34
+ return globalSecurity;
35
+ }
36
+ return [
37
+ {
38
+ bearerAuth: []
39
+ }
40
+ ];
41
+ }
42
+ }
43
+
44
+ exports.DocumentSecurityAssembler = DocumentSecurityAssembler;
45
+ //# sourceMappingURL=security.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"security.js","sources":["../../../src/assemblers/document/security.ts"],"sourcesContent":["import type { Core } from '@strapi/types';\nimport type { OpenAPIV3_1 } from 'openapi-types';\n\nimport type { DocumentContext } from '../../types';\n\nimport type { Assembler } from '..';\n\nconst DEFAULT_BEARER_AUTH: OpenAPIV3_1.HttpSecurityScheme = {\n type: 'http',\n scheme: 'bearer',\n bearerFormat: 'JWT',\n description: 'JWT Bearer token for authentication',\n};\n\nexport class DocumentSecurityAssembler implements Assembler.Document {\n assemble(context: DocumentContext): void {\n const { strapi } = context;\n\n const securitySchemes = this._getSecuritySchemes(strapi);\n const security = this._getGlobalSecurity(strapi);\n\n if (context.output.data.components === undefined) {\n context.output.data.components = {};\n }\n\n context.output.data.components.securitySchemes = securitySchemes;\n context.output.data.security = security;\n }\n\n private _getSecuritySchemes(\n strapi: Core.Strapi\n ): Record<string, OpenAPIV3_1.SecuritySchemeObject> {\n const securityConfig =\n strapi.config.get<\n Record<string, OpenAPIV3_1.ReferenceObject | OpenAPIV3_1.SecuritySchemeObject>\n >('openapi.security') ?? {};\n\n const schemes: Record<string, OpenAPIV3_1.SecuritySchemeObject> = {};\n\n if (!securityConfig.bearerAuth) {\n schemes.bearerAuth = DEFAULT_BEARER_AUTH;\n }\n\n for (const [name, config] of Object.entries(securityConfig)) {\n schemes[name] = config as OpenAPIV3_1.SecuritySchemeObject;\n }\n\n return schemes;\n }\n\n private _getGlobalSecurity(strapi: Core.Strapi): OpenAPIV3_1.Document['security'] {\n const globalSecurity =\n strapi.config.get<OpenAPIV3_1.Document['security']>('openapi.globalSecurity');\n\n if (globalSecurity) {\n return globalSecurity;\n }\n\n return [{ bearerAuth: [] }];\n }\n}\n"],"names":["DEFAULT_BEARER_AUTH","type","scheme","bearerFormat","description","DocumentSecurityAssembler","assemble","context","strapi","securitySchemes","_getSecuritySchemes","security","_getGlobalSecurity","output","data","components","undefined","securityConfig","config","get","schemes","bearerAuth","name","Object","entries","globalSecurity"],"mappings":";;AAOA,MAAMA,mBAAAA,GAAsD;IAC1DC,IAAAA,EAAM,MAAA;IACNC,MAAAA,EAAQ,QAAA;IACRC,YAAAA,EAAc,KAAA;IACdC,WAAAA,EAAa;AACf,CAAA;AAEO,MAAMC,yBAAAA,CAAAA;AACXC,IAAAA,QAAAA,CAASC,OAAwB,EAAQ;QACvC,MAAM,EAAEC,MAAM,EAAE,GAAGD,OAAAA;AAEnB,QAAA,MAAME,eAAAA,GAAkB,IAAI,CAACC,mBAAmB,CAACF,MAAAA,CAAAA;AACjD,QAAA,MAAMG,QAAAA,GAAW,IAAI,CAACC,kBAAkB,CAACJ,MAAAA,CAAAA;AAEzC,QAAA,IAAID,QAAQM,MAAM,CAACC,IAAI,CAACC,UAAU,KAAKC,SAAAA,EAAW;AAChDT,YAAAA,OAAAA,CAAQM,MAAM,CAACC,IAAI,CAACC,UAAU,GAAG,EAAC;AACpC,QAAA;AAEAR,QAAAA,OAAAA,CAAQM,MAAM,CAACC,IAAI,CAACC,UAAU,CAACN,eAAe,GAAGA,eAAAA;AACjDF,QAAAA,OAAAA,CAAQM,MAAM,CAACC,IAAI,CAACH,QAAQ,GAAGA,QAAAA;AACjC,IAAA;AAEQD,IAAAA,mBAAAA,CACNF,MAAmB,EAC+B;AAClD,QAAA,MAAMS,iBACJT,MAAAA,CAAOU,MAAM,CAACC,GAAG,CAEf,uBAAuB,EAAC;AAE5B,QAAA,MAAMC,UAA4D,EAAC;QAEnE,IAAI,CAACH,cAAAA,CAAeI,UAAU,EAAE;AAC9BD,YAAAA,OAAAA,CAAQC,UAAU,GAAGrB,mBAAAA;AACvB,QAAA;QAEA,KAAK,MAAM,CAACsB,IAAAA,EAAMJ,MAAAA,CAAO,IAAIK,MAAAA,CAAOC,OAAO,CAACP,cAAAA,CAAAA,CAAiB;YAC3DG,OAAO,CAACE,KAAK,GAAGJ,MAAAA;AAClB,QAAA;QAEA,OAAOE,OAAAA;AACT,IAAA;AAEQR,IAAAA,kBAAAA,CAAmBJ,MAAmB,EAAoC;AAChF,QAAA,MAAMiB,cAAAA,GACJjB,MAAAA,CAAOU,MAAM,CAACC,GAAG,CAAmC,wBAAA,CAAA;AAEtD,QAAA,IAAIM,cAAAA,EAAgB;YAClB,OAAOA,cAAAA;AACT,QAAA;QAEA,OAAO;AAAC,YAAA;AAAEJ,gBAAAA,UAAAA,EAAY;AAAG;AAAE,SAAA;AAC7B,IAAA;AACF;;;;"}
@@ -0,0 +1,43 @@
1
+ const DEFAULT_BEARER_AUTH = {
2
+ type: 'http',
3
+ scheme: 'bearer',
4
+ bearerFormat: 'JWT',
5
+ description: 'JWT Bearer token for authentication'
6
+ };
7
+ class DocumentSecurityAssembler {
8
+ assemble(context) {
9
+ const { strapi } = context;
10
+ const securitySchemes = this._getSecuritySchemes(strapi);
11
+ const security = this._getGlobalSecurity(strapi);
12
+ if (context.output.data.components === undefined) {
13
+ context.output.data.components = {};
14
+ }
15
+ context.output.data.components.securitySchemes = securitySchemes;
16
+ context.output.data.security = security;
17
+ }
18
+ _getSecuritySchemes(strapi) {
19
+ const securityConfig = strapi.config.get('openapi.security') ?? {};
20
+ const schemes = {};
21
+ if (!securityConfig.bearerAuth) {
22
+ schemes.bearerAuth = DEFAULT_BEARER_AUTH;
23
+ }
24
+ for (const [name, config] of Object.entries(securityConfig)){
25
+ schemes[name] = config;
26
+ }
27
+ return schemes;
28
+ }
29
+ _getGlobalSecurity(strapi) {
30
+ const globalSecurity = strapi.config.get('openapi.globalSecurity');
31
+ if (globalSecurity) {
32
+ return globalSecurity;
33
+ }
34
+ return [
35
+ {
36
+ bearerAuth: []
37
+ }
38
+ ];
39
+ }
40
+ }
41
+
42
+ export { DocumentSecurityAssembler };
43
+ //# sourceMappingURL=security.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"security.mjs","sources":["../../../src/assemblers/document/security.ts"],"sourcesContent":["import type { Core } from '@strapi/types';\nimport type { OpenAPIV3_1 } from 'openapi-types';\n\nimport type { DocumentContext } from '../../types';\n\nimport type { Assembler } from '..';\n\nconst DEFAULT_BEARER_AUTH: OpenAPIV3_1.HttpSecurityScheme = {\n type: 'http',\n scheme: 'bearer',\n bearerFormat: 'JWT',\n description: 'JWT Bearer token for authentication',\n};\n\nexport class DocumentSecurityAssembler implements Assembler.Document {\n assemble(context: DocumentContext): void {\n const { strapi } = context;\n\n const securitySchemes = this._getSecuritySchemes(strapi);\n const security = this._getGlobalSecurity(strapi);\n\n if (context.output.data.components === undefined) {\n context.output.data.components = {};\n }\n\n context.output.data.components.securitySchemes = securitySchemes;\n context.output.data.security = security;\n }\n\n private _getSecuritySchemes(\n strapi: Core.Strapi\n ): Record<string, OpenAPIV3_1.SecuritySchemeObject> {\n const securityConfig =\n strapi.config.get<\n Record<string, OpenAPIV3_1.ReferenceObject | OpenAPIV3_1.SecuritySchemeObject>\n >('openapi.security') ?? {};\n\n const schemes: Record<string, OpenAPIV3_1.SecuritySchemeObject> = {};\n\n if (!securityConfig.bearerAuth) {\n schemes.bearerAuth = DEFAULT_BEARER_AUTH;\n }\n\n for (const [name, config] of Object.entries(securityConfig)) {\n schemes[name] = config as OpenAPIV3_1.SecuritySchemeObject;\n }\n\n return schemes;\n }\n\n private _getGlobalSecurity(strapi: Core.Strapi): OpenAPIV3_1.Document['security'] {\n const globalSecurity =\n strapi.config.get<OpenAPIV3_1.Document['security']>('openapi.globalSecurity');\n\n if (globalSecurity) {\n return globalSecurity;\n }\n\n return [{ bearerAuth: [] }];\n }\n}\n"],"names":["DEFAULT_BEARER_AUTH","type","scheme","bearerFormat","description","DocumentSecurityAssembler","assemble","context","strapi","securitySchemes","_getSecuritySchemes","security","_getGlobalSecurity","output","data","components","undefined","securityConfig","config","get","schemes","bearerAuth","name","Object","entries","globalSecurity"],"mappings":"AAOA,MAAMA,mBAAAA,GAAsD;IAC1DC,IAAAA,EAAM,MAAA;IACNC,MAAAA,EAAQ,QAAA;IACRC,YAAAA,EAAc,KAAA;IACdC,WAAAA,EAAa;AACf,CAAA;AAEO,MAAMC,yBAAAA,CAAAA;AACXC,IAAAA,QAAAA,CAASC,OAAwB,EAAQ;QACvC,MAAM,EAAEC,MAAM,EAAE,GAAGD,OAAAA;AAEnB,QAAA,MAAME,eAAAA,GAAkB,IAAI,CAACC,mBAAmB,CAACF,MAAAA,CAAAA;AACjD,QAAA,MAAMG,QAAAA,GAAW,IAAI,CAACC,kBAAkB,CAACJ,MAAAA,CAAAA;AAEzC,QAAA,IAAID,QAAQM,MAAM,CAACC,IAAI,CAACC,UAAU,KAAKC,SAAAA,EAAW;AAChDT,YAAAA,OAAAA,CAAQM,MAAM,CAACC,IAAI,CAACC,UAAU,GAAG,EAAC;AACpC,QAAA;AAEAR,QAAAA,OAAAA,CAAQM,MAAM,CAACC,IAAI,CAACC,UAAU,CAACN,eAAe,GAAGA,eAAAA;AACjDF,QAAAA,OAAAA,CAAQM,MAAM,CAACC,IAAI,CAACH,QAAQ,GAAGA,QAAAA;AACjC,IAAA;AAEQD,IAAAA,mBAAAA,CACNF,MAAmB,EAC+B;AAClD,QAAA,MAAMS,iBACJT,MAAAA,CAAOU,MAAM,CAACC,GAAG,CAEf,uBAAuB,EAAC;AAE5B,QAAA,MAAMC,UAA4D,EAAC;QAEnE,IAAI,CAACH,cAAAA,CAAeI,UAAU,EAAE;AAC9BD,YAAAA,OAAAA,CAAQC,UAAU,GAAGrB,mBAAAA;AACvB,QAAA;QAEA,KAAK,MAAM,CAACsB,IAAAA,EAAMJ,MAAAA,CAAO,IAAIK,MAAAA,CAAOC,OAAO,CAACP,cAAAA,CAAAA,CAAiB;YAC3DG,OAAO,CAACE,KAAK,GAAGJ,MAAAA;AAClB,QAAA;QAEA,OAAOE,OAAAA;AACT,IAAA;AAEQR,IAAAA,kBAAAA,CAAmBJ,MAAmB,EAAoC;AAChF,QAAA,MAAMiB,cAAAA,GACJjB,MAAAA,CAAOU,MAAM,CAACC,GAAG,CAAmC,wBAAA,CAAA;AAEtD,QAAA,IAAIM,cAAAA,EAAgB;YAClB,OAAOA,cAAAA;AACT,QAAA;QAEA,OAAO;AAAC,YAAA;AAAEJ,gBAAAA,UAAAA,EAAY;AAAG;AAAE,SAAA;AAC7B,IAAA;AACF;;;;"}
@@ -0,0 +1,13 @@
1
+ import type { OpenAPIV3_1 } from 'openapi-types';
2
+ import type { DocumentContext } from '../../types';
3
+ import type { Assembler } from '..';
4
+ export interface ServerConfig {
5
+ url: string;
6
+ description?: string;
7
+ variables?: Record<string, OpenAPIV3_1.ServerVariableObject>;
8
+ }
9
+ export declare class DocumentServerAssembler implements Assembler.Document {
10
+ assemble(context: DocumentContext): void;
11
+ private _getServers;
12
+ }
13
+ //# sourceMappingURL=server.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../../src/assemblers/document/server.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAGjD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAEnD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,IAAI,CAAC;AAEpC,MAAM,WAAW,YAAY;IAC3B,GAAG,EAAE,MAAM,CAAC;IACZ,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,oBAAoB,CAAC,CAAC;CAC9D;AAID,qBAAa,uBAAwB,YAAW,SAAS,CAAC,QAAQ;IAChE,QAAQ,CAAC,OAAO,EAAE,eAAe,GAAG,IAAI;IAMxC,OAAO,CAAC,WAAW;CAgBpB"}
@@ -0,0 +1,25 @@
1
+ 'use strict';
2
+
3
+ const DEFAULT_SERVER_URL = 'http://localhost:1337';
4
+ class DocumentServerAssembler {
5
+ assemble(context) {
6
+ const { strapi } = context;
7
+ context.output.data.servers = this._getServers(strapi);
8
+ }
9
+ _getServers(strapi) {
10
+ const serverConfig = strapi.config.get('openapi.servers') ?? [];
11
+ if (serverConfig.length > 0) {
12
+ return serverConfig;
13
+ }
14
+ const serverUrl = strapi.config.get('server.url') ?? DEFAULT_SERVER_URL;
15
+ return [
16
+ {
17
+ url: serverUrl,
18
+ description: 'Default server'
19
+ }
20
+ ];
21
+ }
22
+ }
23
+
24
+ exports.DocumentServerAssembler = DocumentServerAssembler;
25
+ //# sourceMappingURL=server.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"server.js","sources":["../../../src/assemblers/document/server.ts"],"sourcesContent":["import type { OpenAPIV3_1 } from 'openapi-types';\n\nimport type { Core } from '@strapi/types';\nimport type { DocumentContext } from '../../types';\n\nimport type { Assembler } from '..';\n\nexport interface ServerConfig {\n url: string;\n description?: string;\n variables?: Record<string, OpenAPIV3_1.ServerVariableObject>;\n}\n\nconst DEFAULT_SERVER_URL = 'http://localhost:1337';\n\nexport class DocumentServerAssembler implements Assembler.Document {\n assemble(context: DocumentContext): void {\n const { strapi } = context;\n\n context.output.data.servers = this._getServers(strapi);\n }\n\n private _getServers(strapi: Core.Strapi): OpenAPIV3_1.ServerObject[] {\n const serverConfig = strapi.config.get<ServerConfig[]>('openapi.servers') ?? [];\n\n if (serverConfig.length > 0) {\n return serverConfig;\n }\n\n const serverUrl = strapi.config.get<string>('server.url') ?? DEFAULT_SERVER_URL;\n\n return [\n {\n url: serverUrl,\n description: 'Default server',\n },\n ];\n }\n}\n"],"names":["DEFAULT_SERVER_URL","DocumentServerAssembler","assemble","context","strapi","output","data","servers","_getServers","serverConfig","config","get","length","serverUrl","url","description"],"mappings":";;AAaA,MAAMA,kBAAAA,GAAqB,uBAAA;AAEpB,MAAMC,uBAAAA,CAAAA;AACXC,IAAAA,QAAAA,CAASC,OAAwB,EAAQ;QACvC,MAAM,EAAEC,MAAM,EAAE,GAAGD,OAAAA;QAEnBA,OAAAA,CAAQE,MAAM,CAACC,IAAI,CAACC,OAAO,GAAG,IAAI,CAACC,WAAW,CAACJ,MAAAA,CAAAA;AACjD,IAAA;AAEQI,IAAAA,WAAAA,CAAYJ,MAAmB,EAA8B;AACnE,QAAA,MAAMK,eAAeL,MAAAA,CAAOM,MAAM,CAACC,GAAG,CAAiB,sBAAsB,EAAE;QAE/E,IAAIF,YAAAA,CAAaG,MAAM,GAAG,CAAA,EAAG;YAC3B,OAAOH,YAAAA;AACT,QAAA;AAEA,QAAA,MAAMI,YAAYT,MAAAA,CAAOM,MAAM,CAACC,GAAG,CAAS,YAAA,CAAA,IAAiBX,kBAAAA;QAE7D,OAAO;AACL,YAAA;gBACEc,GAAAA,EAAKD,SAAAA;gBACLE,WAAAA,EAAa;AACf;AACD,SAAA;AACH,IAAA;AACF;;;;"}
@@ -0,0 +1,23 @@
1
+ const DEFAULT_SERVER_URL = 'http://localhost:1337';
2
+ class DocumentServerAssembler {
3
+ assemble(context) {
4
+ const { strapi } = context;
5
+ context.output.data.servers = this._getServers(strapi);
6
+ }
7
+ _getServers(strapi) {
8
+ const serverConfig = strapi.config.get('openapi.servers') ?? [];
9
+ if (serverConfig.length > 0) {
10
+ return serverConfig;
11
+ }
12
+ const serverUrl = strapi.config.get('server.url') ?? DEFAULT_SERVER_URL;
13
+ return [
14
+ {
15
+ url: serverUrl,
16
+ description: 'Default server'
17
+ }
18
+ ];
19
+ }
20
+ }
21
+
22
+ export { DocumentServerAssembler };
23
+ //# sourceMappingURL=server.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"server.mjs","sources":["../../../src/assemblers/document/server.ts"],"sourcesContent":["import type { OpenAPIV3_1 } from 'openapi-types';\n\nimport type { Core } from '@strapi/types';\nimport type { DocumentContext } from '../../types';\n\nimport type { Assembler } from '..';\n\nexport interface ServerConfig {\n url: string;\n description?: string;\n variables?: Record<string, OpenAPIV3_1.ServerVariableObject>;\n}\n\nconst DEFAULT_SERVER_URL = 'http://localhost:1337';\n\nexport class DocumentServerAssembler implements Assembler.Document {\n assemble(context: DocumentContext): void {\n const { strapi } = context;\n\n context.output.data.servers = this._getServers(strapi);\n }\n\n private _getServers(strapi: Core.Strapi): OpenAPIV3_1.ServerObject[] {\n const serverConfig = strapi.config.get<ServerConfig[]>('openapi.servers') ?? [];\n\n if (serverConfig.length > 0) {\n return serverConfig;\n }\n\n const serverUrl = strapi.config.get<string>('server.url') ?? DEFAULT_SERVER_URL;\n\n return [\n {\n url: serverUrl,\n description: 'Default server',\n },\n ];\n }\n}\n"],"names":["DEFAULT_SERVER_URL","DocumentServerAssembler","assemble","context","strapi","output","data","servers","_getServers","serverConfig","config","get","length","serverUrl","url","description"],"mappings":"AAaA,MAAMA,kBAAAA,GAAqB,uBAAA;AAEpB,MAAMC,uBAAAA,CAAAA;AACXC,IAAAA,QAAAA,CAASC,OAAwB,EAAQ;QACvC,MAAM,EAAEC,MAAM,EAAE,GAAGD,OAAAA;QAEnBA,OAAAA,CAAQE,MAAM,CAACC,IAAI,CAACC,OAAO,GAAG,IAAI,CAACC,WAAW,CAACJ,MAAAA,CAAAA;AACjD,IAAA;AAEQI,IAAAA,WAAAA,CAAYJ,MAAmB,EAA8B;AACnE,QAAA,MAAMK,eAAeL,MAAAA,CAAOM,MAAM,CAACC,GAAG,CAAiB,sBAAsB,EAAE;QAE/E,IAAIF,YAAAA,CAAaG,MAAM,GAAG,CAAA,EAAG;YAC3B,OAAOH,YAAAA;AACT,QAAA;AAEA,QAAA,MAAMI,YAAYT,MAAAA,CAAOM,MAAM,CAACC,GAAG,CAAS,YAAA,CAAA,IAAiBX,kBAAAA;QAE7D,OAAO;AACL,YAAA;gBACEc,GAAAA,EAAKD,SAAAA;gBACLE,WAAAA,EAAa;AACf;AACD,SAAA;AACH,IAAA;AACF;;;;"}
@@ -1,7 +1,7 @@
1
1
  import type { Core } from '@strapi/types';
2
+ import type { RegistriesFactory } from '../registries';
2
3
  import type { Timer } from '../utils';
3
- export interface ContextRegistries {
4
- }
4
+ export type ContextRegistries = ReturnType<RegistriesFactory['createAll']>;
5
5
  export interface TimeStats {
6
6
  startTime: number;
7
7
  endTime: number;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/context/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAE1C,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AAEtC,MAAM,WAAW,iBAAiB;CAAG;AAErC,MAAM,WAAW,SAAS;IACxB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,KAAK;IACpB,IAAI,EAAE,SAAS,CAAC;CACjB;AAED,MAAM,WAAW,aAAa,CAAC,CAAC;IAC9B,IAAI,EAAE,CAAC,CAAC;IACR,KAAK,EAAE,KAAK,CAAC;CACd;AAED,MAAM,WAAW,OAAO,CAAC,CAAC,GAAG,OAAO;IAClC,MAAM,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC;IACrB,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC;IACpB,KAAK,EAAE,KAAK,CAAC;IACb,UAAU,EAAE,iBAAiB,CAAC;IAC9B,MAAM,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC;CAC1B;AAED,MAAM,MAAM,cAAc,CAAC,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,GAAG,YAAY,CAAC,CAAC,GAC/E,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,QAAQ,GAAG,QAAQ,CAAC,CAAC,CAAC;AAElD,MAAM,WAAW,cAAc,CAAC,CAAC;IAC/B,MAAM,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;CACjE"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/context/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAE1C,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AACvD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AAEtC,MAAM,MAAM,iBAAiB,GAAG,UAAU,CAAC,iBAAiB,CAAC,WAAW,CAAC,CAAC,CAAC;AAE3E,MAAM,WAAW,SAAS;IACxB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,KAAK;IACpB,IAAI,EAAE,SAAS,CAAC;CACjB;AAED,MAAM,WAAW,aAAa,CAAC,CAAC;IAC9B,IAAI,EAAE,CAAC,CAAC;IACR,KAAK,EAAE,KAAK,CAAC;CACd;AAED,MAAM,WAAW,OAAO,CAAC,CAAC,GAAG,OAAO;IAClC,MAAM,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC;IACrB,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC;IACpB,KAAK,EAAE,KAAK,CAAC;IACb,UAAU,EAAE,iBAAiB,CAAC;IAC9B,MAAM,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC;CAC1B;AAED,MAAM,MAAM,cAAc,CAAC,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,GAAG,YAAY,CAAC,CAAC,GAC/E,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,QAAQ,GAAG,QAAQ,CAAC,CAAC,CAAC;AAElD,MAAM,WAAW,cAAc,CAAC,CAAC;IAC/B,MAAM,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;CACjE"}
@@ -1 +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"}
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;AAMhD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAM7C,qBAAa,gBAAiB,YAAW,aAAa;IACpD,WAAW,CAAC,OAAO,EAAE,eAAe,GAAG,IAAI;CA2B5C"}
@@ -23,14 +23,32 @@ function _interopNamespace(e) {
23
23
 
24
24
  var z__namespace = /*#__PURE__*/_interopNamespace(z);
25
25
 
26
+ const isPlainObject = (value)=>{
27
+ return typeof value === 'object' && value !== null && Array.isArray(value) === false;
28
+ };
26
29
  class ComponentsWriter {
27
30
  postProcess(context) {
28
- const { output } = context;
29
- const { schemas } = z__namespace.toJSONSchema(z__namespace.globalRegistry, {
31
+ const { output, strapi } = context;
32
+ const registry = z__namespace.registry();
33
+ for (const [id, schema] of strapi.contentAPISchemaRegistry.entries()){
34
+ registry.add(schema, {
35
+ id
36
+ });
37
+ }
38
+ const { schemas } = z__namespace.toJSONSchema(registry, {
39
+ ...zod.OPENAPI_SCHEMA_CONVERSION_OPTIONS,
30
40
  uri: zod.toComponentsPath
31
41
  });
42
+ const converted = isPlainObject(schemas) ? schemas : {};
43
+ zod.liftZodSharedDefinitions(converted);
44
+ const existingComponents = output.data.components ?? {};
45
+ const extracted = context.registries.extractedComponentSchemas;
32
46
  output.data.components = {
33
- schemas
47
+ ...existingComponents,
48
+ schemas: {
49
+ ...extracted,
50
+ ...converted
51
+ }
34
52
  };
35
53
  }
36
54
  }
@@ -1 +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,YAAAA,CAAEE,cAAc,EAAE;YACnDC,GAAAA,EAAKC;AACP,SAAA,CAAA;QAEAN,MAAAA,CAAOO,IAAI,CAACC,UAAU,GAAG;AAAEP,YAAAA;AAAQ,SAAA;AACrC,IAAA;AACF;;;;"}
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 {\n OPENAPI_SCHEMA_CONVERSION_OPTIONS,\n liftZodSharedDefinitions,\n toComponentsPath,\n} from '../utils/zod';\nimport type { PostProcessor } from './types';\n\nconst isPlainObject = (value: unknown): value is Record<string, unknown> => {\n return typeof value === 'object' && value !== null && Array.isArray(value) === false;\n};\n\nexport class ComponentsWriter implements PostProcessor {\n postProcess(context: DocumentContext): void {\n const { output, strapi } = context;\n const registry = z.registry<{ id: string }>();\n\n for (const [id, schema] of strapi.contentAPISchemaRegistry.entries()) {\n registry.add(schema, { id });\n }\n\n const { schemas } = z.toJSONSchema(registry, {\n ...OPENAPI_SCHEMA_CONVERSION_OPTIONS,\n uri: toComponentsPath,\n });\n\n const converted: Record<string, unknown> = isPlainObject(schemas) ? schemas : {};\n liftZodSharedDefinitions(converted);\n\n const existingComponents = output.data.components ?? {};\n const extracted = context.registries.extractedComponentSchemas;\n\n output.data.components = {\n ...existingComponents,\n schemas: {\n ...extracted,\n ...(converted as Record<string, OpenAPIV3_1.SchemaObject>),\n },\n };\n }\n}\n"],"names":["isPlainObject","value","Array","isArray","ComponentsWriter","postProcess","context","output","strapi","registry","z","id","schema","contentAPISchemaRegistry","entries","add","schemas","toJSONSchema","OPENAPI_SCHEMA_CONVERSION_OPTIONS","uri","toComponentsPath","converted","liftZodSharedDefinitions","existingComponents","data","components","extracted","registries","extractedComponentSchemas"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAUA,MAAMA,gBAAgB,CAACC,KAAAA,GAAAA;IACrB,OAAO,OAAOA,UAAU,QAAA,IAAYA,KAAAA,KAAU,QAAQC,KAAAA,CAAMC,OAAO,CAACF,KAAAA,CAAAA,KAAW,KAAA;AACjF,CAAA;AAEO,MAAMG,gBAAAA,CAAAA;AACXC,IAAAA,WAAAA,CAAYC,OAAwB,EAAQ;AAC1C,QAAA,MAAM,EAAEC,MAAM,EAAEC,MAAM,EAAE,GAAGF,OAAAA;QAC3B,MAAMG,QAAAA,GAAWC,aAAED,QAAQ,EAAA;QAE3B,KAAK,MAAM,CAACE,EAAAA,EAAIC,MAAAA,CAAO,IAAIJ,MAAAA,CAAOK,wBAAwB,CAACC,OAAO,EAAA,CAAI;YACpEL,QAAAA,CAASM,GAAG,CAACH,MAAAA,EAAQ;AAAED,gBAAAA;AAAG,aAAA,CAAA;AAC5B,QAAA;AAEA,QAAA,MAAM,EAAEK,OAAO,EAAE,GAAGN,YAAAA,CAAEO,YAAY,CAACR,QAAAA,EAAU;AAC3C,YAAA,GAAGS,qCAAiC;YACpCC,GAAAA,EAAKC;AACP,SAAA,CAAA;AAEA,QAAA,MAAMC,SAAAA,GAAqCrB,aAAAA,CAAcgB,OAAAA,CAAAA,GAAWA,OAAAA,GAAU,EAAC;QAC/EM,4BAAAA,CAAyBD,SAAAA,CAAAA;AAEzB,QAAA,MAAME,qBAAqBhB,MAAAA,CAAOiB,IAAI,CAACC,UAAU,IAAI,EAAC;AACtD,QAAA,MAAMC,SAAAA,GAAYpB,OAAAA,CAAQqB,UAAU,CAACC,yBAAyB;QAE9DrB,MAAAA,CAAOiB,IAAI,CAACC,UAAU,GAAG;AACvB,YAAA,GAAGF,kBAAkB;YACrBP,OAAAA,EAAS;AACP,gBAAA,GAAGU,SAAS;AACZ,gBAAA,GAAIL;AACN;AACF,SAAA;AACF,IAAA;AACF;;;;"}
@@ -1,14 +1,32 @@
1
1
  import * as z from 'zod/v4';
2
- import { toComponentsPath } from '../utils/zod.mjs';
2
+ import { toComponentsPath, OPENAPI_SCHEMA_CONVERSION_OPTIONS, liftZodSharedDefinitions } from '../utils/zod.mjs';
3
3
 
4
+ const isPlainObject = (value)=>{
5
+ return typeof value === 'object' && value !== null && Array.isArray(value) === false;
6
+ };
4
7
  class ComponentsWriter {
5
8
  postProcess(context) {
6
- const { output } = context;
7
- const { schemas } = z.toJSONSchema(z.globalRegistry, {
9
+ const { output, strapi } = context;
10
+ const registry = z.registry();
11
+ for (const [id, schema] of strapi.contentAPISchemaRegistry.entries()){
12
+ registry.add(schema, {
13
+ id
14
+ });
15
+ }
16
+ const { schemas } = z.toJSONSchema(registry, {
17
+ ...OPENAPI_SCHEMA_CONVERSION_OPTIONS,
8
18
  uri: toComponentsPath
9
19
  });
20
+ const converted = isPlainObject(schemas) ? schemas : {};
21
+ liftZodSharedDefinitions(converted);
22
+ const existingComponents = output.data.components ?? {};
23
+ const extracted = context.registries.extractedComponentSchemas;
10
24
  output.data.components = {
11
- schemas
25
+ ...existingComponents,
26
+ schemas: {
27
+ ...extracted,
28
+ ...converted
29
+ }
12
30
  };
13
31
  }
14
32
  }
@@ -1 +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,CAAAA,CAAEE,cAAc,EAAE;YACnDC,GAAAA,EAAKC;AACP,SAAA,CAAA;QAEAN,MAAAA,CAAOO,IAAI,CAACC,UAAU,GAAG;AAAEP,YAAAA;AAAQ,SAAA;AACrC,IAAA;AACF;;;;"}
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 {\n OPENAPI_SCHEMA_CONVERSION_OPTIONS,\n liftZodSharedDefinitions,\n toComponentsPath,\n} from '../utils/zod';\nimport type { PostProcessor } from './types';\n\nconst isPlainObject = (value: unknown): value is Record<string, unknown> => {\n return typeof value === 'object' && value !== null && Array.isArray(value) === false;\n};\n\nexport class ComponentsWriter implements PostProcessor {\n postProcess(context: DocumentContext): void {\n const { output, strapi } = context;\n const registry = z.registry<{ id: string }>();\n\n for (const [id, schema] of strapi.contentAPISchemaRegistry.entries()) {\n registry.add(schema, { id });\n }\n\n const { schemas } = z.toJSONSchema(registry, {\n ...OPENAPI_SCHEMA_CONVERSION_OPTIONS,\n uri: toComponentsPath,\n });\n\n const converted: Record<string, unknown> = isPlainObject(schemas) ? schemas : {};\n liftZodSharedDefinitions(converted);\n\n const existingComponents = output.data.components ?? {};\n const extracted = context.registries.extractedComponentSchemas;\n\n output.data.components = {\n ...existingComponents,\n schemas: {\n ...extracted,\n ...(converted as Record<string, OpenAPIV3_1.SchemaObject>),\n },\n };\n }\n}\n"],"names":["isPlainObject","value","Array","isArray","ComponentsWriter","postProcess","context","output","strapi","registry","z","id","schema","contentAPISchemaRegistry","entries","add","schemas","toJSONSchema","OPENAPI_SCHEMA_CONVERSION_OPTIONS","uri","toComponentsPath","converted","liftZodSharedDefinitions","existingComponents","data","components","extracted","registries","extractedComponentSchemas"],"mappings":";;;AAUA,MAAMA,gBAAgB,CAACC,KAAAA,GAAAA;IACrB,OAAO,OAAOA,UAAU,QAAA,IAAYA,KAAAA,KAAU,QAAQC,KAAAA,CAAMC,OAAO,CAACF,KAAAA,CAAAA,KAAW,KAAA;AACjF,CAAA;AAEO,MAAMG,gBAAAA,CAAAA;AACXC,IAAAA,WAAAA,CAAYC,OAAwB,EAAQ;AAC1C,QAAA,MAAM,EAAEC,MAAM,EAAEC,MAAM,EAAE,GAAGF,OAAAA;QAC3B,MAAMG,QAAAA,GAAWC,EAAED,QAAQ,EAAA;QAE3B,KAAK,MAAM,CAACE,EAAAA,EAAIC,MAAAA,CAAO,IAAIJ,MAAAA,CAAOK,wBAAwB,CAACC,OAAO,EAAA,CAAI;YACpEL,QAAAA,CAASM,GAAG,CAACH,MAAAA,EAAQ;AAAED,gBAAAA;AAAG,aAAA,CAAA;AAC5B,QAAA;AAEA,QAAA,MAAM,EAAEK,OAAO,EAAE,GAAGN,CAAAA,CAAEO,YAAY,CAACR,QAAAA,EAAU;AAC3C,YAAA,GAAGS,iCAAiC;YACpCC,GAAAA,EAAKC;AACP,SAAA,CAAA;AAEA,QAAA,MAAMC,SAAAA,GAAqCrB,aAAAA,CAAcgB,OAAAA,CAAAA,GAAWA,OAAAA,GAAU,EAAC;QAC/EM,wBAAAA,CAAyBD,SAAAA,CAAAA;AAEzB,QAAA,MAAME,qBAAqBhB,MAAAA,CAAOiB,IAAI,CAACC,UAAU,IAAI,EAAC;AACtD,QAAA,MAAMC,SAAAA,GAAYpB,OAAAA,CAAQqB,UAAU,CAACC,yBAAyB;QAE9DrB,MAAAA,CAAOiB,IAAI,CAACC,UAAU,GAAG;AACvB,YAAA,GAAGF,kBAAkB;YACrBP,OAAAA,EAAS;AACP,gBAAA,GAAGU,SAAS;AACZ,gBAAA,GAAIL;AACN;AACF,SAAA;AACF,IAAA;AACF;;;;"}
@@ -1,4 +1,7 @@
1
+ import type { OpenAPIV3_1 } from 'openapi-types';
1
2
  export declare class RegistriesFactory {
2
- createAll(): {};
3
+ createAll(): {
4
+ extractedComponentSchemas: Record<string, OpenAPIV3_1.SchemaObject>;
5
+ };
3
6
  }
4
7
  //# sourceMappingURL=factory.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"factory.d.ts","sourceRoot":"","sources":["../../src/registries/factory.ts"],"names":[],"mappings":"AAAA,qBAAa,iBAAiB;IAC5B,SAAS;CAGV"}
1
+ {"version":3,"file":"factory.d.ts","sourceRoot":"","sources":["../../src/registries/factory.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAEjD,qBAAa,iBAAiB;IAC5B,SAAS,IAAI;QACX,yBAAyB,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,YAAY,CAAC,CAAC;KACrE;CAKF"}
@@ -2,7 +2,9 @@
2
2
 
3
3
  class RegistriesFactory {
4
4
  createAll() {
5
- return {};
5
+ return {
6
+ extractedComponentSchemas: {}
7
+ };
6
8
  }
7
9
  }
8
10
 
@@ -1 +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,SAAAA,GAAY;AACV,QAAA,OAAO,EAAC;AACV,IAAA;AACF;;;;"}
1
+ {"version":3,"file":"factory.js","sources":["../../src/registries/factory.ts"],"sourcesContent":["import type { OpenAPIV3_1 } from 'openapi-types';\n\nexport class RegistriesFactory {\n createAll(): {\n extractedComponentSchemas: Record<string, OpenAPIV3_1.SchemaObject>;\n } {\n return {\n extractedComponentSchemas: {},\n };\n }\n}\n"],"names":["RegistriesFactory","createAll","extractedComponentSchemas"],"mappings":";;AAEO,MAAMA,iBAAAA,CAAAA;IACXC,SAAAA,GAEE;QACA,OAAO;AACLC,YAAAA,yBAAAA,EAA2B;AAC7B,SAAA;AACF,IAAA;AACF;;;;"}
@@ -1,6 +1,8 @@
1
1
  class RegistriesFactory {
2
2
  createAll() {
3
- return {};
3
+ return {
4
+ extractedComponentSchemas: {}
5
+ };
4
6
  }
5
7
  }
6
8
 
@@ -1 +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,SAAAA,GAAY;AACV,QAAA,OAAO,EAAC;AACV,IAAA;AACF;;;;"}
1
+ {"version":3,"file":"factory.mjs","sources":["../../src/registries/factory.ts"],"sourcesContent":["import type { OpenAPIV3_1 } from 'openapi-types';\n\nexport class RegistriesFactory {\n createAll(): {\n extractedComponentSchemas: Record<string, OpenAPIV3_1.SchemaObject>;\n } {\n return {\n extractedComponentSchemas: {},\n };\n }\n}\n"],"names":["RegistriesFactory","createAll","extractedComponentSchemas"],"mappings":"AAEO,MAAMA,iBAAAA,CAAAA;IACXC,SAAAA,GAEE;QACA,OAAO;AACLC,YAAAA,yBAAAA,EAA2B;AAC7B,SAAA;AACF,IAAA;AACF;;;;"}