@strapi/openapi 0.0.0-experimental.4e03c41e8e44fa7b77c41c3e0edd86c7f1fc9c52 → 0.0.0-experimental.50e7f41993c2e6e11d3c5a39b47f003ddb06cddc

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 (103) hide show
  1. package/dist/assemblers/document/factory.js +1 -1
  2. package/dist/assemblers/document/factory.mjs +1 -1
  3. package/dist/assemblers/document/info.js +1 -1
  4. package/dist/assemblers/document/info.js.map +1 -1
  5. package/dist/assemblers/document/info.mjs +1 -1
  6. package/dist/assemblers/document/info.mjs.map +1 -1
  7. package/dist/assemblers/document/metadata.js +1 -1
  8. package/dist/assemblers/document/metadata.mjs +1 -1
  9. package/dist/assemblers/document/path/factory.js +1 -1
  10. package/dist/assemblers/document/path/factory.mjs +1 -1
  11. package/dist/assemblers/document/path/path-item/factory.js +1 -1
  12. package/dist/assemblers/document/path/path-item/factory.mjs +1 -1
  13. package/dist/assemblers/document/path/path-item/operation/body.d.ts.map +1 -1
  14. package/dist/assemblers/document/path/path-item/operation/body.js.map +1 -1
  15. package/dist/assemblers/document/path/path-item/operation/body.mjs.map +1 -1
  16. package/dist/assemblers/document/path/path-item/operation/operation-id.js +1 -1
  17. package/dist/assemblers/document/path/path-item/operation/operation-id.js.map +1 -1
  18. package/dist/assemblers/document/path/path-item/operation/operation-id.mjs +1 -1
  19. package/dist/assemblers/document/path/path-item/operation/operation-id.mjs.map +1 -1
  20. package/dist/assemblers/document/path/path-item/operation/operation.d.ts.map +1 -1
  21. package/dist/assemblers/document/path/path-item/operation/operation.js +5 -2
  22. package/dist/assemblers/document/path/path-item/operation/operation.js.map +1 -1
  23. package/dist/assemblers/document/path/path-item/operation/operation.mjs +5 -2
  24. package/dist/assemblers/document/path/path-item/operation/operation.mjs.map +1 -1
  25. package/dist/assemblers/document/path/path-item/operation/parameters.js +2 -2
  26. package/dist/assemblers/document/path/path-item/operation/parameters.js.map +1 -1
  27. package/dist/assemblers/document/path/path-item/operation/parameters.mjs +2 -2
  28. package/dist/assemblers/document/path/path-item/operation/parameters.mjs.map +1 -1
  29. package/dist/assemblers/document/path/path-item/operation/responses.js.map +1 -1
  30. package/dist/assemblers/document/path/path-item/operation/responses.mjs.map +1 -1
  31. package/dist/assemblers/document/path/path-item/operation/tags.js +1 -1
  32. package/dist/assemblers/document/path/path-item/operation/tags.mjs +1 -1
  33. package/dist/assemblers/document/path/path-item/path-item.js +1 -1
  34. package/dist/assemblers/document/path/path-item/path-item.js.map +1 -1
  35. package/dist/assemblers/document/path/path-item/path-item.mjs +1 -1
  36. package/dist/assemblers/document/path/path-item/path-item.mjs.map +1 -1
  37. package/dist/assemblers/document/path/path.js +1 -1
  38. package/dist/assemblers/document/path/path.js.map +1 -1
  39. package/dist/assemblers/document/path/path.mjs +1 -1
  40. package/dist/assemblers/document/path/path.mjs.map +1 -1
  41. package/dist/context/factories/document.d.ts +2 -2
  42. package/dist/context/factories/document.d.ts.map +1 -1
  43. package/dist/context/factories/document.js +1 -1
  44. package/dist/context/factories/document.js.map +1 -1
  45. package/dist/context/factories/document.mjs +1 -1
  46. package/dist/context/factories/document.mjs.map +1 -1
  47. package/dist/context/factories/operation.d.ts +2 -2
  48. package/dist/context/factories/operation.d.ts.map +1 -1
  49. package/dist/context/factories/operation.js +1 -1
  50. package/dist/context/factories/operation.js.map +1 -1
  51. package/dist/context/factories/operation.mjs +1 -1
  52. package/dist/context/factories/operation.mjs.map +1 -1
  53. package/dist/context/factories/path-item.js +1 -1
  54. package/dist/context/factories/path-item.js.map +1 -1
  55. package/dist/context/factories/path-item.mjs +1 -1
  56. package/dist/context/factories/path-item.mjs.map +1 -1
  57. package/dist/context/factories/path.js +1 -1
  58. package/dist/context/factories/path.js.map +1 -1
  59. package/dist/context/factories/path.mjs +1 -1
  60. package/dist/context/factories/path.mjs.map +1 -1
  61. package/dist/exports.d.ts +27 -1
  62. package/dist/exports.d.ts.map +1 -1
  63. package/dist/exports.js +28 -1
  64. package/dist/exports.js.map +1 -1
  65. package/dist/exports.mjs +28 -1
  66. package/dist/exports.mjs.map +1 -1
  67. package/dist/generator/generator.js +1 -1
  68. package/dist/generator/generator.js.map +1 -1
  69. package/dist/generator/generator.mjs +1 -1
  70. package/dist/generator/generator.mjs.map +1 -1
  71. package/dist/generator/types.d.ts +2 -2
  72. package/dist/generator/types.d.ts.map +1 -1
  73. package/dist/post-processor/component-writer.js +21 -2
  74. package/dist/post-processor/component-writer.js.map +1 -1
  75. package/dist/post-processor/component-writer.mjs +1 -1
  76. package/dist/post-processor/component-writer.mjs.map +1 -1
  77. package/dist/registries/types.d.ts +2 -2
  78. package/dist/registries/types.d.ts.map +1 -1
  79. package/dist/routes/collector.js +1 -1
  80. package/dist/routes/collector.js.map +1 -1
  81. package/dist/routes/collector.mjs +1 -1
  82. package/dist/routes/collector.mjs.map +1 -1
  83. package/dist/routes/matcher.js.map +1 -1
  84. package/dist/routes/matcher.mjs.map +1 -1
  85. package/dist/routes/providers/admin.js +1 -1
  86. package/dist/routes/providers/admin.mjs +1 -1
  87. package/dist/routes/providers/api.js +1 -1
  88. package/dist/routes/providers/api.mjs +1 -1
  89. package/dist/routes/providers/plugin.js +1 -1
  90. package/dist/routes/providers/plugin.mjs +1 -1
  91. package/dist/types.d.ts +5 -5
  92. package/dist/types.d.ts.map +1 -1
  93. package/dist/utils/debug.js.map +1 -1
  94. package/dist/utils/debug.mjs.map +1 -1
  95. package/dist/utils/timer/timer.js.map +1 -1
  96. package/dist/utils/timer/timer.mjs.map +1 -1
  97. package/dist/utils/zod.d.ts +4 -4
  98. package/dist/utils/zod.d.ts.map +1 -1
  99. package/dist/utils/zod.js +2 -2
  100. package/dist/utils/zod.js.map +1 -1
  101. package/dist/utils/zod.mjs +2 -2
  102. package/dist/utils/zod.mjs.map +1 -1
  103. package/package.json +4 -5
@@ -2,7 +2,7 @@
2
2
 
3
3
  require('debug');
4
4
  require('node:crypto');
5
- require('zod');
5
+ require('zod/v4');
6
6
  var path$1 = require('../../context/factories/path.js');
7
7
  var info = require('./info.js');
8
8
  var metadata = require('./metadata.js');
@@ -1,6 +1,6 @@
1
1
  import 'debug';
2
2
  import 'node:crypto';
3
- import 'zod';
3
+ import 'zod/v4';
4
4
  import { PathContextFactory } from '../../context/factories/path.mjs';
5
5
  import { DocumentInfoAssembler } from './info.mjs';
6
6
  import { DocumentMetadataAssembler } from './metadata.mjs';
@@ -2,7 +2,7 @@
2
2
 
3
3
  var debug$1 = require('../../utils/debug.js');
4
4
  require('node:crypto');
5
- require('zod');
5
+ require('zod/v4');
6
6
 
7
7
  const debug = debug$1.createDebugger('assembler:info');
8
8
  class DocumentInfoAssembler {
@@ -1 +1 @@
1
- {"version":3,"file":"info.js","sources":["../../../src/assemblers/document/info.ts"],"sourcesContent":["import type { OpenAPIV3 } from 'openapi-types';\n\nimport type { DocumentContext } from '../../types';\n\nimport { createDebugger } from '../../utils';\n\nimport type { Assembler } from '..';\n\ninterface StrapiInfoConfig {\n name: string;\n version: string;\n}\n\nconst debug = createDebugger('assembler:info');\n\nexport class DocumentInfoAssembler implements Assembler.Document {\n assemble(context: DocumentContext): void {\n const { name, version } = context.strapi.config.get<StrapiInfoConfig>('info');\n\n debug(`assembling document's info for %O...`, { name, version });\n\n const info: OpenAPIV3.InfoObject = {\n title: this._title(name),\n description: this._description(name, version),\n version,\n };\n\n debug(`document's info assembled: %O`, info);\n\n context.output.data.info = info;\n }\n\n private _title(name: string) {\n return `${name}`;\n }\n\n private _description(name: string, version: string) {\n return `API documentation for ${name} v${version}`;\n }\n}\n"],"names":["debug","createDebugger","DocumentInfoAssembler","assemble","context","name","version","strapi","config","get","info","title","_title","description","_description","output","data"],"mappings":";;;;;;AAaA,MAAMA,QAAQC,sBAAe,CAAA,gBAAA,CAAA;AAEtB,MAAMC,qBAAAA,CAAAA;AACXC,IAAAA,QAAAA,CAASC,OAAwB,EAAQ;AACvC,QAAA,MAAM,EAAEC,IAAI,EAAEC,OAAO,EAAE,GAAGF,OAAQG,CAAAA,MAAM,CAACC,MAAM,CAACC,GAAG,CAAmB,MAAA,CAAA;QAEtET,KAAM,CAAA,CAAC,oCAAoC,CAAC,EAAE;AAAEK,YAAAA,IAAAA;AAAMC,YAAAA;AAAQ,SAAA,CAAA;AAE9D,QAAA,MAAMI,IAA6B,GAAA;YACjCC,KAAO,EAAA,IAAI,CAACC,MAAM,CAACP,IAAAA,CAAAA;AACnBQ,YAAAA,WAAAA,EAAa,IAAI,CAACC,YAAY,CAACT,IAAMC,EAAAA,OAAAA,CAAAA;AACrCA,YAAAA;AACF,SAAA;QAEAN,KAAM,CAAA,CAAC,6BAA6B,CAAC,EAAEU,IAAAA,CAAAA;AAEvCN,QAAAA,OAAAA,CAAQW,MAAM,CAACC,IAAI,CAACN,IAAI,GAAGA,IAAAA;AAC7B;AAEQE,IAAAA,MAAAA,CAAOP,IAAY,EAAE;QAC3B,OAAO,CAAC,EAAEA,IAAAA,CAAK,CAAC;AAClB;IAEQS,YAAaT,CAAAA,IAAY,EAAEC,OAAe,EAAE;AAClD,QAAA,OAAO,CAAC,sBAAsB,EAAED,KAAK,EAAE,EAAEC,QAAQ,CAAC;AACpD;AACF;;;;"}
1
+ {"version":3,"file":"info.js","sources":["../../../src/assemblers/document/info.ts"],"sourcesContent":["import type { OpenAPIV3_1 } from 'openapi-types';\n\nimport type { DocumentContext } from '../../types';\n\nimport { createDebugger } from '../../utils';\n\nimport type { Assembler } from '..';\n\ninterface StrapiInfoConfig {\n name: string;\n version: string;\n}\n\nconst debug = createDebugger('assembler:info');\n\nexport class DocumentInfoAssembler implements Assembler.Document {\n assemble(context: DocumentContext): void {\n const { name, version } = context.strapi.config.get<StrapiInfoConfig>('info');\n\n debug(`assembling document's info for %O...`, { name, version });\n\n const info: OpenAPIV3_1.InfoObject = {\n title: this._title(name),\n description: this._description(name, version),\n version,\n };\n\n debug(`document's info assembled: %O`, info);\n\n context.output.data.info = info;\n }\n\n private _title(name: string) {\n return `${name}`;\n }\n\n private _description(name: string, version: string) {\n return `API documentation for ${name} v${version}`;\n }\n}\n"],"names":["debug","createDebugger","DocumentInfoAssembler","assemble","context","name","version","strapi","config","get","info","title","_title","description","_description","output","data"],"mappings":";;;;;;AAaA,MAAMA,QAAQC,sBAAe,CAAA,gBAAA,CAAA;AAEtB,MAAMC,qBAAAA,CAAAA;AACXC,IAAAA,QAAAA,CAASC,OAAwB,EAAQ;AACvC,QAAA,MAAM,EAAEC,IAAI,EAAEC,OAAO,EAAE,GAAGF,OAAQG,CAAAA,MAAM,CAACC,MAAM,CAACC,GAAG,CAAmB,MAAA,CAAA;QAEtET,KAAM,CAAA,CAAC,oCAAoC,CAAC,EAAE;AAAEK,YAAAA,IAAAA;AAAMC,YAAAA;AAAQ,SAAA,CAAA;AAE9D,QAAA,MAAMI,IAA+B,GAAA;YACnCC,KAAO,EAAA,IAAI,CAACC,MAAM,CAACP,IAAAA,CAAAA;AACnBQ,YAAAA,WAAAA,EAAa,IAAI,CAACC,YAAY,CAACT,IAAMC,EAAAA,OAAAA,CAAAA;AACrCA,YAAAA;AACF,SAAA;QAEAN,KAAM,CAAA,CAAC,6BAA6B,CAAC,EAAEU,IAAAA,CAAAA;AAEvCN,QAAAA,OAAAA,CAAQW,MAAM,CAACC,IAAI,CAACN,IAAI,GAAGA,IAAAA;AAC7B;AAEQE,IAAAA,MAAAA,CAAOP,IAAY,EAAE;AAC3B,QAAA,OAAO,GAAGA,IAAM,CAAA,CAAA;AAClB;IAEQS,YAAaT,CAAAA,IAAY,EAAEC,OAAe,EAAE;AAClD,QAAA,OAAO,CAAC,sBAAsB,EAAED,IAAK,CAAA,EAAE,EAAEC,OAAS,CAAA,CAAA;AACpD;AACF;;;;"}
@@ -1,6 +1,6 @@
1
1
  import { createDebugger } from '../../utils/debug.mjs';
2
2
  import 'node:crypto';
3
- import 'zod';
3
+ import 'zod/v4';
4
4
 
5
5
  const debug = createDebugger('assembler:info');
6
6
  class DocumentInfoAssembler {
@@ -1 +1 @@
1
- {"version":3,"file":"info.mjs","sources":["../../../src/assemblers/document/info.ts"],"sourcesContent":["import type { OpenAPIV3 } from 'openapi-types';\n\nimport type { DocumentContext } from '../../types';\n\nimport { createDebugger } from '../../utils';\n\nimport type { Assembler } from '..';\n\ninterface StrapiInfoConfig {\n name: string;\n version: string;\n}\n\nconst debug = createDebugger('assembler:info');\n\nexport class DocumentInfoAssembler implements Assembler.Document {\n assemble(context: DocumentContext): void {\n const { name, version } = context.strapi.config.get<StrapiInfoConfig>('info');\n\n debug(`assembling document's info for %O...`, { name, version });\n\n const info: OpenAPIV3.InfoObject = {\n title: this._title(name),\n description: this._description(name, version),\n version,\n };\n\n debug(`document's info assembled: %O`, info);\n\n context.output.data.info = info;\n }\n\n private _title(name: string) {\n return `${name}`;\n }\n\n private _description(name: string, version: string) {\n return `API documentation for ${name} v${version}`;\n }\n}\n"],"names":["debug","createDebugger","DocumentInfoAssembler","assemble","context","name","version","strapi","config","get","info","title","_title","description","_description","output","data"],"mappings":";;;;AAaA,MAAMA,QAAQC,cAAe,CAAA,gBAAA,CAAA;AAEtB,MAAMC,qBAAAA,CAAAA;AACXC,IAAAA,QAAAA,CAASC,OAAwB,EAAQ;AACvC,QAAA,MAAM,EAAEC,IAAI,EAAEC,OAAO,EAAE,GAAGF,OAAQG,CAAAA,MAAM,CAACC,MAAM,CAACC,GAAG,CAAmB,MAAA,CAAA;QAEtET,KAAM,CAAA,CAAC,oCAAoC,CAAC,EAAE;AAAEK,YAAAA,IAAAA;AAAMC,YAAAA;AAAQ,SAAA,CAAA;AAE9D,QAAA,MAAMI,IAA6B,GAAA;YACjCC,KAAO,EAAA,IAAI,CAACC,MAAM,CAACP,IAAAA,CAAAA;AACnBQ,YAAAA,WAAAA,EAAa,IAAI,CAACC,YAAY,CAACT,IAAMC,EAAAA,OAAAA,CAAAA;AACrCA,YAAAA;AACF,SAAA;QAEAN,KAAM,CAAA,CAAC,6BAA6B,CAAC,EAAEU,IAAAA,CAAAA;AAEvCN,QAAAA,OAAAA,CAAQW,MAAM,CAACC,IAAI,CAACN,IAAI,GAAGA,IAAAA;AAC7B;AAEQE,IAAAA,MAAAA,CAAOP,IAAY,EAAE;QAC3B,OAAO,CAAC,EAAEA,IAAAA,CAAK,CAAC;AAClB;IAEQS,YAAaT,CAAAA,IAAY,EAAEC,OAAe,EAAE;AAClD,QAAA,OAAO,CAAC,sBAAsB,EAAED,KAAK,EAAE,EAAEC,QAAQ,CAAC;AACpD;AACF;;;;"}
1
+ {"version":3,"file":"info.mjs","sources":["../../../src/assemblers/document/info.ts"],"sourcesContent":["import type { OpenAPIV3_1 } from 'openapi-types';\n\nimport type { DocumentContext } from '../../types';\n\nimport { createDebugger } from '../../utils';\n\nimport type { Assembler } from '..';\n\ninterface StrapiInfoConfig {\n name: string;\n version: string;\n}\n\nconst debug = createDebugger('assembler:info');\n\nexport class DocumentInfoAssembler implements Assembler.Document {\n assemble(context: DocumentContext): void {\n const { name, version } = context.strapi.config.get<StrapiInfoConfig>('info');\n\n debug(`assembling document's info for %O...`, { name, version });\n\n const info: OpenAPIV3_1.InfoObject = {\n title: this._title(name),\n description: this._description(name, version),\n version,\n };\n\n debug(`document's info assembled: %O`, info);\n\n context.output.data.info = info;\n }\n\n private _title(name: string) {\n return `${name}`;\n }\n\n private _description(name: string, version: string) {\n return `API documentation for ${name} v${version}`;\n }\n}\n"],"names":["debug","createDebugger","DocumentInfoAssembler","assemble","context","name","version","strapi","config","get","info","title","_title","description","_description","output","data"],"mappings":";;;;AAaA,MAAMA,QAAQC,cAAe,CAAA,gBAAA,CAAA;AAEtB,MAAMC,qBAAAA,CAAAA;AACXC,IAAAA,QAAAA,CAASC,OAAwB,EAAQ;AACvC,QAAA,MAAM,EAAEC,IAAI,EAAEC,OAAO,EAAE,GAAGF,OAAQG,CAAAA,MAAM,CAACC,MAAM,CAACC,GAAG,CAAmB,MAAA,CAAA;QAEtET,KAAM,CAAA,CAAC,oCAAoC,CAAC,EAAE;AAAEK,YAAAA,IAAAA;AAAMC,YAAAA;AAAQ,SAAA,CAAA;AAE9D,QAAA,MAAMI,IAA+B,GAAA;YACnCC,KAAO,EAAA,IAAI,CAACC,MAAM,CAACP,IAAAA,CAAAA;AACnBQ,YAAAA,WAAAA,EAAa,IAAI,CAACC,YAAY,CAACT,IAAMC,EAAAA,OAAAA,CAAAA;AACrCA,YAAAA;AACF,SAAA;QAEAN,KAAM,CAAA,CAAC,6BAA6B,CAAC,EAAEU,IAAAA,CAAAA;AAEvCN,QAAAA,OAAAA,CAAQW,MAAM,CAACC,IAAI,CAACN,IAAI,GAAGA,IAAAA;AAC7B;AAEQE,IAAAA,MAAAA,CAAOP,IAAY,EAAE;AAC3B,QAAA,OAAO,GAAGA,IAAM,CAAA,CAAA;AAClB;IAEQS,YAAaT,CAAAA,IAAY,EAAEC,OAAe,EAAE;AAClD,QAAA,OAAO,CAAC,sBAAsB,EAAED,IAAK,CAAA,EAAE,EAAEC,OAAS,CAAA,CAAA;AACpD;AACF;;;;"}
@@ -2,7 +2,7 @@
2
2
 
3
3
  var debug$1 = require('../../utils/debug.js');
4
4
  require('node:crypto');
5
- require('zod');
5
+ require('zod/v4');
6
6
 
7
7
  const debug = debug$1.createDebugger('assembler:metadata');
8
8
  class DocumentMetadataAssembler {
@@ -1,6 +1,6 @@
1
1
  import { createDebugger } from '../../utils/debug.mjs';
2
2
  import 'node:crypto';
3
- import 'zod';
3
+ import 'zod/v4';
4
4
 
5
5
  const debug = createDebugger('assembler:metadata');
6
6
  class DocumentMetadataAssembler {
@@ -2,7 +2,7 @@
2
2
 
3
3
  require('debug');
4
4
  require('node:crypto');
5
- require('zod');
5
+ require('zod/v4');
6
6
  var pathItem$1 = require('../../../context/factories/path-item.js');
7
7
  var pathItem = require('./path-item/path-item.js');
8
8
  var factory = require('./path-item/factory.js');
@@ -1,6 +1,6 @@
1
1
  import 'debug';
2
2
  import 'node:crypto';
3
- import 'zod';
3
+ import 'zod/v4';
4
4
  import { PathItemContextFactory } from '../../../context/factories/path-item.mjs';
5
5
  import { PathItemAssembler } from './path-item/path-item.mjs';
6
6
  import { PathItemAssemblerFactory } from './path-item/factory.mjs';
@@ -2,7 +2,7 @@
2
2
 
3
3
  require('debug');
4
4
  require('node:crypto');
5
- require('zod');
5
+ require('zod/v4');
6
6
  var operation$1 = require('../../../../context/factories/operation.js');
7
7
  var operation = require('./operation/operation.js');
8
8
  var factory = require('./operation/factory.js');
@@ -1,6 +1,6 @@
1
1
  import 'debug';
2
2
  import 'node:crypto';
3
- import 'zod';
3
+ import 'zod/v4';
4
4
  import { OperationContextFactory } from '../../../../context/factories/operation.mjs';
5
5
  import { OperationAssembler } from './operation/operation.mjs';
6
6
  import { OperationAssemblerFactory } from './operation/factory.mjs';
@@ -1 +1 @@
1
- {"version":3,"file":"body.d.ts","sourceRoot":"","sources":["../../../../../../src/assemblers/document/path/path-item/operation/body.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAG1C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAI7C,qBAAa,aAAc,YAAW,SAAS,CAAC,SAAS;IACvD,QAAQ,CAAC,OAAO,EAAE,gBAAgB,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,GAAG,IAAI;CAiB7D"}
1
+ {"version":3,"file":"body.d.ts","sourceRoot":"","sources":["../../../../../../src/assemblers/document/path/path-item/operation/body.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAG1C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAI7C,qBAAa,aAAc,YAAW,SAAS,CAAC,SAAS;IACvD,QAAQ,CAAC,OAAO,EAAE,gBAAgB,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,GAAG,IAAI;CAmB7D"}
@@ -1 +1 @@
1
- {"version":3,"file":"body.js","sources":["../../../../../../src/assemblers/document/path/path-item/operation/body.ts"],"sourcesContent":["import type { Core } from '@strapi/types';\nimport type { OpenAPIV3 } from 'openapi-types';\n\nimport type { OperationContext } from '../../../../../types';\nimport type { Assembler } from '../../../..';\n\nimport { zodToOpenAPI } from '../../../../../utils';\n\nexport class BodyAssembler implements Assembler.Operation {\n assemble(context: OperationContext, route: Core.Route): void {\n const { output } = context;\n const { body } = route.request ?? {};\n\n // If no `body` property is defined, we don't need to do anything\n if (!body) {\n return;\n }\n\n const content: Record<string, OpenAPIV3.MediaTypeObject> = {};\n\n for (const [media, zodSchema] of Object.entries(body)) {\n content[media] = { schema: zodToOpenAPI(zodSchema) as any };\n }\n\n output.data.requestBody = { content };\n }\n}\n"],"names":["BodyAssembler","assemble","context","route","output","body","request","content","media","zodSchema","Object","entries","schema","zodToOpenAPI","data","requestBody"],"mappings":";;;;;AAQO,MAAMA,aAAAA,CAAAA;IACXC,QAASC,CAAAA,OAAyB,EAAEC,KAAiB,EAAQ;QAC3D,MAAM,EAAEC,MAAM,EAAE,GAAGF,OAAAA;AACnB,QAAA,MAAM,EAAEG,IAAI,EAAE,GAAGF,KAAMG,CAAAA,OAAO,IAAI,EAAC;;AAGnC,QAAA,IAAI,CAACD,IAAM,EAAA;AACT,YAAA;AACF;AAEA,QAAA,MAAME,UAAqD,EAAC;QAE5D,KAAK,MAAM,CAACC,KAAOC,EAAAA,SAAAA,CAAU,IAAIC,MAAOC,CAAAA,OAAO,CAACN,IAAO,CAAA,CAAA;YACrDE,OAAO,CAACC,MAAM,GAAG;AAAEI,gBAAAA,MAAAA,EAAQC,gBAAaJ,CAAAA,SAAAA;AAAkB,aAAA;AAC5D;QAEAL,MAAOU,CAAAA,IAAI,CAACC,WAAW,GAAG;AAAER,YAAAA;AAAQ,SAAA;AACtC;AACF;;;;"}
1
+ {"version":3,"file":"body.js","sources":["../../../../../../src/assemblers/document/path/path-item/operation/body.ts"],"sourcesContent":["import type { Core } from '@strapi/types';\nimport type { OpenAPIV3_1 } from 'openapi-types';\n\nimport type { OperationContext } from '../../../../../types';\nimport type { Assembler } from '../../../..';\n\nimport { zodToOpenAPI } from '../../../../../utils';\n\nexport class BodyAssembler implements Assembler.Operation {\n assemble(context: OperationContext, route: Core.Route): void {\n const { output } = context;\n const { body } = route.request ?? {};\n\n // If no `body` property is defined, we don't need to do anything\n if (!body) {\n return;\n }\n\n const content: Record<string, OpenAPIV3_1.MediaTypeObject> = {};\n\n for (const [media, zodSchema] of Object.entries(body)) {\n content[media] = {\n schema: zodToOpenAPI(zodSchema) as any,\n };\n }\n\n output.data.requestBody = { content };\n }\n}\n"],"names":["BodyAssembler","assemble","context","route","output","body","request","content","media","zodSchema","Object","entries","schema","zodToOpenAPI","data","requestBody"],"mappings":";;;;;AAQO,MAAMA,aAAAA,CAAAA;IACXC,QAASC,CAAAA,OAAyB,EAAEC,KAAiB,EAAQ;QAC3D,MAAM,EAAEC,MAAM,EAAE,GAAGF,OAAAA;AACnB,QAAA,MAAM,EAAEG,IAAI,EAAE,GAAGF,KAAMG,CAAAA,OAAO,IAAI,EAAC;;AAGnC,QAAA,IAAI,CAACD,IAAM,EAAA;AACT,YAAA;AACF;AAEA,QAAA,MAAME,UAAuD,EAAC;QAE9D,KAAK,MAAM,CAACC,KAAOC,EAAAA,SAAAA,CAAU,IAAIC,MAAOC,CAAAA,OAAO,CAACN,IAAO,CAAA,CAAA;YACrDE,OAAO,CAACC,MAAM,GAAG;AACfI,gBAAAA,MAAAA,EAAQC,gBAAaJ,CAAAA,SAAAA;AACvB,aAAA;AACF;QAEAL,MAAOU,CAAAA,IAAI,CAACC,WAAW,GAAG;AAAER,YAAAA;AAAQ,SAAA;AACtC;AACF;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"body.mjs","sources":["../../../../../../src/assemblers/document/path/path-item/operation/body.ts"],"sourcesContent":["import type { Core } from '@strapi/types';\nimport type { OpenAPIV3 } from 'openapi-types';\n\nimport type { OperationContext } from '../../../../../types';\nimport type { Assembler } from '../../../..';\n\nimport { zodToOpenAPI } from '../../../../../utils';\n\nexport class BodyAssembler implements Assembler.Operation {\n assemble(context: OperationContext, route: Core.Route): void {\n const { output } = context;\n const { body } = route.request ?? {};\n\n // If no `body` property is defined, we don't need to do anything\n if (!body) {\n return;\n }\n\n const content: Record<string, OpenAPIV3.MediaTypeObject> = {};\n\n for (const [media, zodSchema] of Object.entries(body)) {\n content[media] = { schema: zodToOpenAPI(zodSchema) as any };\n }\n\n output.data.requestBody = { content };\n }\n}\n"],"names":["BodyAssembler","assemble","context","route","output","body","request","content","media","zodSchema","Object","entries","schema","zodToOpenAPI","data","requestBody"],"mappings":";;;AAQO,MAAMA,aAAAA,CAAAA;IACXC,QAASC,CAAAA,OAAyB,EAAEC,KAAiB,EAAQ;QAC3D,MAAM,EAAEC,MAAM,EAAE,GAAGF,OAAAA;AACnB,QAAA,MAAM,EAAEG,IAAI,EAAE,GAAGF,KAAMG,CAAAA,OAAO,IAAI,EAAC;;AAGnC,QAAA,IAAI,CAACD,IAAM,EAAA;AACT,YAAA;AACF;AAEA,QAAA,MAAME,UAAqD,EAAC;QAE5D,KAAK,MAAM,CAACC,KAAOC,EAAAA,SAAAA,CAAU,IAAIC,MAAOC,CAAAA,OAAO,CAACN,IAAO,CAAA,CAAA;YACrDE,OAAO,CAACC,MAAM,GAAG;AAAEI,gBAAAA,MAAAA,EAAQC,YAAaJ,CAAAA,SAAAA;AAAkB,aAAA;AAC5D;QAEAL,MAAOU,CAAAA,IAAI,CAACC,WAAW,GAAG;AAAER,YAAAA;AAAQ,SAAA;AACtC;AACF;;;;"}
1
+ {"version":3,"file":"body.mjs","sources":["../../../../../../src/assemblers/document/path/path-item/operation/body.ts"],"sourcesContent":["import type { Core } from '@strapi/types';\nimport type { OpenAPIV3_1 } from 'openapi-types';\n\nimport type { OperationContext } from '../../../../../types';\nimport type { Assembler } from '../../../..';\n\nimport { zodToOpenAPI } from '../../../../../utils';\n\nexport class BodyAssembler implements Assembler.Operation {\n assemble(context: OperationContext, route: Core.Route): void {\n const { output } = context;\n const { body } = route.request ?? {};\n\n // If no `body` property is defined, we don't need to do anything\n if (!body) {\n return;\n }\n\n const content: Record<string, OpenAPIV3_1.MediaTypeObject> = {};\n\n for (const [media, zodSchema] of Object.entries(body)) {\n content[media] = {\n schema: zodToOpenAPI(zodSchema) as any,\n };\n }\n\n output.data.requestBody = { content };\n }\n}\n"],"names":["BodyAssembler","assemble","context","route","output","body","request","content","media","zodSchema","Object","entries","schema","zodToOpenAPI","data","requestBody"],"mappings":";;;AAQO,MAAMA,aAAAA,CAAAA;IACXC,QAASC,CAAAA,OAAyB,EAAEC,KAAiB,EAAQ;QAC3D,MAAM,EAAEC,MAAM,EAAE,GAAGF,OAAAA;AACnB,QAAA,MAAM,EAAEG,IAAI,EAAE,GAAGF,KAAMG,CAAAA,OAAO,IAAI,EAAC;;AAGnC,QAAA,IAAI,CAACD,IAAM,EAAA;AACT,YAAA;AACF;AAEA,QAAA,MAAME,UAAuD,EAAC;QAE9D,KAAK,MAAM,CAACC,KAAOC,EAAAA,SAAAA,CAAU,IAAIC,MAAOC,CAAAA,OAAO,CAACN,IAAO,CAAA,CAAA;YACrDE,OAAO,CAACC,MAAM,GAAG;AACfI,gBAAAA,MAAAA,EAAQC,YAAaJ,CAAAA,SAAAA;AACvB,aAAA;AACF;QAEAL,MAAOU,CAAAA,IAAI,CAACC,WAAW,GAAG;AAAER,YAAAA;AAAQ,SAAA;AACtC;AACF;;;;"}
@@ -3,7 +3,7 @@
3
3
  var constants = require('../../../../../constants.js');
4
4
  var debug$1 = require('../../../../../utils/debug.js');
5
5
  require('node:crypto');
6
- require('zod');
6
+ require('zod/v4');
7
7
 
8
8
  const debug = debug$1.createDebugger('assembler:operation-id');
9
9
  class OperationIDAssembler {
@@ -1 +1 @@
1
- {"version":3,"file":"operation-id.js","sources":["../../../../../../src/assemblers/document/path/path-item/operation/operation-id.ts"],"sourcesContent":["import type { Core } from '@strapi/types';\n\nimport { REGEX_STRAPI_PATH_PARAMS } from '../../../../../constants';\n\nimport type { OperationContext } from '../../../../../types';\nimport { createDebugger } from '../../../../../utils';\nimport type { Assembler } from '../../../..';\n\nconst debug = createDebugger('assembler:operation-id');\n\nexport class OperationIDAssembler implements Assembler.Operation {\n assemble(context: OperationContext, route: Core.Route): void {\n const { path, method, info } = route;\n\n const origin = info.apiName ?? info.pluginName;\n\n const [operationId] = ['']\n // 'origin/' or ''\n .map(this._maybeAppendOrigin(origin))\n // 'origin/get' or 'get'\n .map(this._appendMethod(method))\n // 'origin/get/entity_by_id' or 'get/entity_by_id'\n .map(this._maybeAppendPath(path));\n\n debug('assembled an operation ID for %o %o: %o', method, path, operationId);\n\n context.output.data.operationId = operationId;\n }\n\n private _maybeAppendOrigin(origin?: string) {\n return () => (origin ? `${origin}/` : '');\n }\n\n private _appendMethod(method: string) {\n return (operationId: string) => `${operationId}${method.toLowerCase()}`;\n }\n\n private _maybeAppendPath(path: string) {\n const pathParts = path.split('/').filter(Boolean);\n\n return (operationId: string) => {\n if (!pathParts.length) {\n return operationId;\n }\n\n // Make sure to add a trailing slash after the method name\n let appendix = '/';\n\n const formatPart = (str: string) => (/[_/]$/.test(appendix) ? str : `_${str}`);\n\n pathParts.forEach((part) => {\n const match = REGEX_STRAPI_PATH_PARAMS.exec(part);\n\n appendix += match\n ? // Parameter\n formatPart(`by_${match[1]}`)\n : // Regular path segment\n formatPart(part.replaceAll(/\\W/g, '_'));\n });\n\n return `${operationId}${appendix}`;\n };\n }\n}\n"],"names":["debug","createDebugger","OperationIDAssembler","assemble","context","route","path","method","info","origin","apiName","pluginName","operationId","map","_maybeAppendOrigin","_appendMethod","_maybeAppendPath","output","data","toLowerCase","pathParts","split","filter","Boolean","length","appendix","formatPart","str","test","forEach","part","match","REGEX_STRAPI_PATH_PARAMS","exec","replaceAll"],"mappings":";;;;;;;AAQA,MAAMA,QAAQC,sBAAe,CAAA,wBAAA,CAAA;AAEtB,MAAMC,oBAAAA,CAAAA;IACXC,QAASC,CAAAA,OAAyB,EAAEC,KAAiB,EAAQ;AAC3D,QAAA,MAAM,EAAEC,IAAI,EAAEC,MAAM,EAAEC,IAAI,EAAE,GAAGH,KAAAA;AAE/B,QAAA,MAAMI,MAASD,GAAAA,IAAAA,CAAKE,OAAO,IAAIF,KAAKG,UAAU;QAE9C,MAAM,CAACC,YAAY,GAAG;AAAC,YAAA;AAAG,SACxB;AACCC,SAAAA,GAAG,CAAC,IAAI,CAACC,kBAAkB,CAACL,QAC7B;AACCI,SAAAA,GAAG,CAAC,IAAI,CAACE,aAAa,CAACR,QACxB;AACCM,SAAAA,GAAG,CAAC,IAAI,CAACG,gBAAgB,CAACV,IAAAA,CAAAA,CAAAA;QAE7BN,KAAM,CAAA,yCAAA,EAA2CO,QAAQD,IAAMM,EAAAA,WAAAA,CAAAA;AAE/DR,QAAAA,OAAAA,CAAQa,MAAM,CAACC,IAAI,CAACN,WAAW,GAAGA,WAAAA;AACpC;AAEQE,IAAAA,kBAAAA,CAAmBL,MAAe,EAAE;AAC1C,QAAA,OAAO,IAAOA,MAAS,GAAA,CAAC,EAAEA,MAAO,CAAA,CAAC,CAAC,GAAG,EAAA;AACxC;AAEQM,IAAAA,aAAAA,CAAcR,MAAc,EAAE;QACpC,OAAO,CAACK,cAAwB,CAAC,EAAEA,YAAY,EAAEL,MAAAA,CAAOY,WAAW,EAAA,CAAG,CAAC;AACzE;AAEQH,IAAAA,gBAAAA,CAAiBV,IAAY,EAAE;AACrC,QAAA,MAAMc,YAAYd,IAAKe,CAAAA,KAAK,CAAC,GAAA,CAAA,CAAKC,MAAM,CAACC,OAAAA,CAAAA;AAEzC,QAAA,OAAO,CAACX,WAAAA,GAAAA;YACN,IAAI,CAACQ,SAAUI,CAAAA,MAAM,EAAE;gBACrB,OAAOZ,WAAAA;AACT;;AAGA,YAAA,IAAIa,QAAW,GAAA,GAAA;AAEf,YAAA,MAAMC,UAAa,GAAA,CAACC,GAAiB,GAAA,OAAA,CAAQC,IAAI,CAACH,QAAYE,CAAAA,GAAAA,GAAAA,GAAM,CAAC,CAAC,EAAEA,GAAAA,CAAI,CAAC;YAE7EP,SAAUS,CAAAA,OAAO,CAAC,CAACC,IAAAA,GAAAA;gBACjB,MAAMC,KAAAA,GAAQC,kCAAyBC,CAAAA,IAAI,CAACH,IAAAA,CAAAA;AAE5CL,gBAAAA,QAAAA,IAAYM,KAERL,GAAAA,UAAAA,CAAW,CAAC,GAAG,EAAEK,KAAK,CAAC,CAAE,CAAA,CAAC,CAAC,CAE3BL,GAAAA,UAAAA,CAAWI,IAAKI,CAAAA,UAAU,CAAC,KAAO,EAAA,GAAA,CAAA,CAAA;AACxC,aAAA,CAAA;AAEA,YAAA,OAAO,CAAC,EAAEtB,WAAY,CAAA,EAAEa,SAAS,CAAC;AACpC,SAAA;AACF;AACF;;;;"}
1
+ {"version":3,"file":"operation-id.js","sources":["../../../../../../src/assemblers/document/path/path-item/operation/operation-id.ts"],"sourcesContent":["import type { Core } from '@strapi/types';\n\nimport { REGEX_STRAPI_PATH_PARAMS } from '../../../../../constants';\n\nimport type { OperationContext } from '../../../../../types';\nimport { createDebugger } from '../../../../../utils';\nimport type { Assembler } from '../../../..';\n\nconst debug = createDebugger('assembler:operation-id');\n\nexport class OperationIDAssembler implements Assembler.Operation {\n assemble(context: OperationContext, route: Core.Route): void {\n const { path, method, info } = route;\n\n const origin = info.apiName ?? info.pluginName;\n\n const [operationId] = ['']\n // 'origin/' or ''\n .map(this._maybeAppendOrigin(origin))\n // 'origin/get' or 'get'\n .map(this._appendMethod(method))\n // 'origin/get/entity_by_id' or 'get/entity_by_id'\n .map(this._maybeAppendPath(path));\n\n debug('assembled an operation ID for %o %o: %o', method, path, operationId);\n\n context.output.data.operationId = operationId;\n }\n\n private _maybeAppendOrigin(origin?: string) {\n return () => (origin ? `${origin}/` : '');\n }\n\n private _appendMethod(method: string) {\n return (operationId: string) => `${operationId}${method.toLowerCase()}`;\n }\n\n private _maybeAppendPath(path: string) {\n const pathParts = path.split('/').filter(Boolean);\n\n return (operationId: string) => {\n if (!pathParts.length) {\n return operationId;\n }\n\n // Make sure to add a trailing slash after the method name\n let appendix = '/';\n\n const formatPart = (str: string) => (/[_/]$/.test(appendix) ? str : `_${str}`);\n\n pathParts.forEach((part) => {\n const match = REGEX_STRAPI_PATH_PARAMS.exec(part);\n\n appendix += match\n ? // Parameter\n formatPart(`by_${match[1]}`)\n : // Regular path segment\n formatPart(part.replaceAll(/\\W/g, '_'));\n });\n\n return `${operationId}${appendix}`;\n };\n }\n}\n"],"names":["debug","createDebugger","OperationIDAssembler","assemble","context","route","path","method","info","origin","apiName","pluginName","operationId","map","_maybeAppendOrigin","_appendMethod","_maybeAppendPath","output","data","toLowerCase","pathParts","split","filter","Boolean","length","appendix","formatPart","str","test","forEach","part","match","REGEX_STRAPI_PATH_PARAMS","exec","replaceAll"],"mappings":";;;;;;;AAQA,MAAMA,QAAQC,sBAAe,CAAA,wBAAA,CAAA;AAEtB,MAAMC,oBAAAA,CAAAA;IACXC,QAASC,CAAAA,OAAyB,EAAEC,KAAiB,EAAQ;AAC3D,QAAA,MAAM,EAAEC,IAAI,EAAEC,MAAM,EAAEC,IAAI,EAAE,GAAGH,KAAAA;AAE/B,QAAA,MAAMI,MAASD,GAAAA,IAAAA,CAAKE,OAAO,IAAIF,KAAKG,UAAU;QAE9C,MAAM,CAACC,YAAY,GAAG;AAAC,YAAA;AAAG,SACxB;AACCC,SAAAA,GAAG,CAAC,IAAI,CAACC,kBAAkB,CAACL,QAC7B;AACCI,SAAAA,GAAG,CAAC,IAAI,CAACE,aAAa,CAACR,QACxB;AACCM,SAAAA,GAAG,CAAC,IAAI,CAACG,gBAAgB,CAACV,IAAAA,CAAAA,CAAAA;QAE7BN,KAAM,CAAA,yCAAA,EAA2CO,QAAQD,IAAMM,EAAAA,WAAAA,CAAAA;AAE/DR,QAAAA,OAAAA,CAAQa,MAAM,CAACC,IAAI,CAACN,WAAW,GAAGA,WAAAA;AACpC;AAEQE,IAAAA,kBAAAA,CAAmBL,MAAe,EAAE;AAC1C,QAAA,OAAO,IAAOA,MAAS,GAAA,CAAA,EAAGA,MAAO,CAAA,CAAC,CAAC,GAAG,EAAA;AACxC;AAEQM,IAAAA,aAAAA,CAAcR,MAAc,EAAE;AACpC,QAAA,OAAO,CAACK,WAAwB,GAAA,CAAA,EAAGA,WAAcL,CAAAA,EAAAA,MAAAA,CAAOY,WAAW,EAAI,CAAA,CAAA;AACzE;AAEQH,IAAAA,gBAAAA,CAAiBV,IAAY,EAAE;AACrC,QAAA,MAAMc,YAAYd,IAAKe,CAAAA,KAAK,CAAC,GAAA,CAAA,CAAKC,MAAM,CAACC,OAAAA,CAAAA;AAEzC,QAAA,OAAO,CAACX,WAAAA,GAAAA;YACN,IAAI,CAACQ,SAAUI,CAAAA,MAAM,EAAE;gBACrB,OAAOZ,WAAAA;AACT;;AAGA,YAAA,IAAIa,QAAW,GAAA,GAAA;YAEf,MAAMC,UAAAA,GAAa,CAACC,GAAAA,GAAiB,OAAQC,CAAAA,IAAI,CAACH,QAAAA,CAAAA,GAAYE,GAAM,GAAA,CAAC,CAAC,EAAEA,GAAK,CAAA,CAAA;YAE7EP,SAAUS,CAAAA,OAAO,CAAC,CAACC,IAAAA,GAAAA;gBACjB,MAAMC,KAAAA,GAAQC,kCAAyBC,CAAAA,IAAI,CAACH,IAAAA,CAAAA;AAE5CL,gBAAAA,QAAAA,IAAYM,KAERL,GAAAA,UAAAA,CAAW,CAAC,GAAG,EAAEK,KAAK,CAAC,CAAE,CAAA,CAAA,CAAE,CAE3BL,GAAAA,UAAAA,CAAWI,IAAKI,CAAAA,UAAU,CAAC,KAAO,EAAA,GAAA,CAAA,CAAA;AACxC,aAAA,CAAA;YAEA,OAAO,CAAA,EAAGtB,cAAca,QAAU,CAAA,CAAA;AACpC,SAAA;AACF;AACF;;;;"}
@@ -1,7 +1,7 @@
1
1
  import { REGEX_STRAPI_PATH_PARAMS } from '../../../../../constants.mjs';
2
2
  import { createDebugger } from '../../../../../utils/debug.mjs';
3
3
  import 'node:crypto';
4
- import 'zod';
4
+ import 'zod/v4';
5
5
 
6
6
  const debug = createDebugger('assembler:operation-id');
7
7
  class OperationIDAssembler {
@@ -1 +1 @@
1
- {"version":3,"file":"operation-id.mjs","sources":["../../../../../../src/assemblers/document/path/path-item/operation/operation-id.ts"],"sourcesContent":["import type { Core } from '@strapi/types';\n\nimport { REGEX_STRAPI_PATH_PARAMS } from '../../../../../constants';\n\nimport type { OperationContext } from '../../../../../types';\nimport { createDebugger } from '../../../../../utils';\nimport type { Assembler } from '../../../..';\n\nconst debug = createDebugger('assembler:operation-id');\n\nexport class OperationIDAssembler implements Assembler.Operation {\n assemble(context: OperationContext, route: Core.Route): void {\n const { path, method, info } = route;\n\n const origin = info.apiName ?? info.pluginName;\n\n const [operationId] = ['']\n // 'origin/' or ''\n .map(this._maybeAppendOrigin(origin))\n // 'origin/get' or 'get'\n .map(this._appendMethod(method))\n // 'origin/get/entity_by_id' or 'get/entity_by_id'\n .map(this._maybeAppendPath(path));\n\n debug('assembled an operation ID for %o %o: %o', method, path, operationId);\n\n context.output.data.operationId = operationId;\n }\n\n private _maybeAppendOrigin(origin?: string) {\n return () => (origin ? `${origin}/` : '');\n }\n\n private _appendMethod(method: string) {\n return (operationId: string) => `${operationId}${method.toLowerCase()}`;\n }\n\n private _maybeAppendPath(path: string) {\n const pathParts = path.split('/').filter(Boolean);\n\n return (operationId: string) => {\n if (!pathParts.length) {\n return operationId;\n }\n\n // Make sure to add a trailing slash after the method name\n let appendix = '/';\n\n const formatPart = (str: string) => (/[_/]$/.test(appendix) ? str : `_${str}`);\n\n pathParts.forEach((part) => {\n const match = REGEX_STRAPI_PATH_PARAMS.exec(part);\n\n appendix += match\n ? // Parameter\n formatPart(`by_${match[1]}`)\n : // Regular path segment\n formatPart(part.replaceAll(/\\W/g, '_'));\n });\n\n return `${operationId}${appendix}`;\n };\n }\n}\n"],"names":["debug","createDebugger","OperationIDAssembler","assemble","context","route","path","method","info","origin","apiName","pluginName","operationId","map","_maybeAppendOrigin","_appendMethod","_maybeAppendPath","output","data","toLowerCase","pathParts","split","filter","Boolean","length","appendix","formatPart","str","test","forEach","part","match","REGEX_STRAPI_PATH_PARAMS","exec","replaceAll"],"mappings":";;;;;AAQA,MAAMA,QAAQC,cAAe,CAAA,wBAAA,CAAA;AAEtB,MAAMC,oBAAAA,CAAAA;IACXC,QAASC,CAAAA,OAAyB,EAAEC,KAAiB,EAAQ;AAC3D,QAAA,MAAM,EAAEC,IAAI,EAAEC,MAAM,EAAEC,IAAI,EAAE,GAAGH,KAAAA;AAE/B,QAAA,MAAMI,MAASD,GAAAA,IAAAA,CAAKE,OAAO,IAAIF,KAAKG,UAAU;QAE9C,MAAM,CAACC,YAAY,GAAG;AAAC,YAAA;AAAG,SACxB;AACCC,SAAAA,GAAG,CAAC,IAAI,CAACC,kBAAkB,CAACL,QAC7B;AACCI,SAAAA,GAAG,CAAC,IAAI,CAACE,aAAa,CAACR,QACxB;AACCM,SAAAA,GAAG,CAAC,IAAI,CAACG,gBAAgB,CAACV,IAAAA,CAAAA,CAAAA;QAE7BN,KAAM,CAAA,yCAAA,EAA2CO,QAAQD,IAAMM,EAAAA,WAAAA,CAAAA;AAE/DR,QAAAA,OAAAA,CAAQa,MAAM,CAACC,IAAI,CAACN,WAAW,GAAGA,WAAAA;AACpC;AAEQE,IAAAA,kBAAAA,CAAmBL,MAAe,EAAE;AAC1C,QAAA,OAAO,IAAOA,MAAS,GAAA,CAAC,EAAEA,MAAO,CAAA,CAAC,CAAC,GAAG,EAAA;AACxC;AAEQM,IAAAA,aAAAA,CAAcR,MAAc,EAAE;QACpC,OAAO,CAACK,cAAwB,CAAC,EAAEA,YAAY,EAAEL,MAAAA,CAAOY,WAAW,EAAA,CAAG,CAAC;AACzE;AAEQH,IAAAA,gBAAAA,CAAiBV,IAAY,EAAE;AACrC,QAAA,MAAMc,YAAYd,IAAKe,CAAAA,KAAK,CAAC,GAAA,CAAA,CAAKC,MAAM,CAACC,OAAAA,CAAAA;AAEzC,QAAA,OAAO,CAACX,WAAAA,GAAAA;YACN,IAAI,CAACQ,SAAUI,CAAAA,MAAM,EAAE;gBACrB,OAAOZ,WAAAA;AACT;;AAGA,YAAA,IAAIa,QAAW,GAAA,GAAA;AAEf,YAAA,MAAMC,UAAa,GAAA,CAACC,GAAiB,GAAA,OAAA,CAAQC,IAAI,CAACH,QAAYE,CAAAA,GAAAA,GAAAA,GAAM,CAAC,CAAC,EAAEA,GAAAA,CAAI,CAAC;YAE7EP,SAAUS,CAAAA,OAAO,CAAC,CAACC,IAAAA,GAAAA;gBACjB,MAAMC,KAAAA,GAAQC,wBAAyBC,CAAAA,IAAI,CAACH,IAAAA,CAAAA;AAE5CL,gBAAAA,QAAAA,IAAYM,KAERL,GAAAA,UAAAA,CAAW,CAAC,GAAG,EAAEK,KAAK,CAAC,CAAE,CAAA,CAAC,CAAC,CAE3BL,GAAAA,UAAAA,CAAWI,IAAKI,CAAAA,UAAU,CAAC,KAAO,EAAA,GAAA,CAAA,CAAA;AACxC,aAAA,CAAA;AAEA,YAAA,OAAO,CAAC,EAAEtB,WAAY,CAAA,EAAEa,SAAS,CAAC;AACpC,SAAA;AACF;AACF;;;;"}
1
+ {"version":3,"file":"operation-id.mjs","sources":["../../../../../../src/assemblers/document/path/path-item/operation/operation-id.ts"],"sourcesContent":["import type { Core } from '@strapi/types';\n\nimport { REGEX_STRAPI_PATH_PARAMS } from '../../../../../constants';\n\nimport type { OperationContext } from '../../../../../types';\nimport { createDebugger } from '../../../../../utils';\nimport type { Assembler } from '../../../..';\n\nconst debug = createDebugger('assembler:operation-id');\n\nexport class OperationIDAssembler implements Assembler.Operation {\n assemble(context: OperationContext, route: Core.Route): void {\n const { path, method, info } = route;\n\n const origin = info.apiName ?? info.pluginName;\n\n const [operationId] = ['']\n // 'origin/' or ''\n .map(this._maybeAppendOrigin(origin))\n // 'origin/get' or 'get'\n .map(this._appendMethod(method))\n // 'origin/get/entity_by_id' or 'get/entity_by_id'\n .map(this._maybeAppendPath(path));\n\n debug('assembled an operation ID for %o %o: %o', method, path, operationId);\n\n context.output.data.operationId = operationId;\n }\n\n private _maybeAppendOrigin(origin?: string) {\n return () => (origin ? `${origin}/` : '');\n }\n\n private _appendMethod(method: string) {\n return (operationId: string) => `${operationId}${method.toLowerCase()}`;\n }\n\n private _maybeAppendPath(path: string) {\n const pathParts = path.split('/').filter(Boolean);\n\n return (operationId: string) => {\n if (!pathParts.length) {\n return operationId;\n }\n\n // Make sure to add a trailing slash after the method name\n let appendix = '/';\n\n const formatPart = (str: string) => (/[_/]$/.test(appendix) ? str : `_${str}`);\n\n pathParts.forEach((part) => {\n const match = REGEX_STRAPI_PATH_PARAMS.exec(part);\n\n appendix += match\n ? // Parameter\n formatPart(`by_${match[1]}`)\n : // Regular path segment\n formatPart(part.replaceAll(/\\W/g, '_'));\n });\n\n return `${operationId}${appendix}`;\n };\n }\n}\n"],"names":["debug","createDebugger","OperationIDAssembler","assemble","context","route","path","method","info","origin","apiName","pluginName","operationId","map","_maybeAppendOrigin","_appendMethod","_maybeAppendPath","output","data","toLowerCase","pathParts","split","filter","Boolean","length","appendix","formatPart","str","test","forEach","part","match","REGEX_STRAPI_PATH_PARAMS","exec","replaceAll"],"mappings":";;;;;AAQA,MAAMA,QAAQC,cAAe,CAAA,wBAAA,CAAA;AAEtB,MAAMC,oBAAAA,CAAAA;IACXC,QAASC,CAAAA,OAAyB,EAAEC,KAAiB,EAAQ;AAC3D,QAAA,MAAM,EAAEC,IAAI,EAAEC,MAAM,EAAEC,IAAI,EAAE,GAAGH,KAAAA;AAE/B,QAAA,MAAMI,MAASD,GAAAA,IAAAA,CAAKE,OAAO,IAAIF,KAAKG,UAAU;QAE9C,MAAM,CAACC,YAAY,GAAG;AAAC,YAAA;AAAG,SACxB;AACCC,SAAAA,GAAG,CAAC,IAAI,CAACC,kBAAkB,CAACL,QAC7B;AACCI,SAAAA,GAAG,CAAC,IAAI,CAACE,aAAa,CAACR,QACxB;AACCM,SAAAA,GAAG,CAAC,IAAI,CAACG,gBAAgB,CAACV,IAAAA,CAAAA,CAAAA;QAE7BN,KAAM,CAAA,yCAAA,EAA2CO,QAAQD,IAAMM,EAAAA,WAAAA,CAAAA;AAE/DR,QAAAA,OAAAA,CAAQa,MAAM,CAACC,IAAI,CAACN,WAAW,GAAGA,WAAAA;AACpC;AAEQE,IAAAA,kBAAAA,CAAmBL,MAAe,EAAE;AAC1C,QAAA,OAAO,IAAOA,MAAS,GAAA,CAAA,EAAGA,MAAO,CAAA,CAAC,CAAC,GAAG,EAAA;AACxC;AAEQM,IAAAA,aAAAA,CAAcR,MAAc,EAAE;AACpC,QAAA,OAAO,CAACK,WAAwB,GAAA,CAAA,EAAGA,WAAcL,CAAAA,EAAAA,MAAAA,CAAOY,WAAW,EAAI,CAAA,CAAA;AACzE;AAEQH,IAAAA,gBAAAA,CAAiBV,IAAY,EAAE;AACrC,QAAA,MAAMc,YAAYd,IAAKe,CAAAA,KAAK,CAAC,GAAA,CAAA,CAAKC,MAAM,CAACC,OAAAA,CAAAA;AAEzC,QAAA,OAAO,CAACX,WAAAA,GAAAA;YACN,IAAI,CAACQ,SAAUI,CAAAA,MAAM,EAAE;gBACrB,OAAOZ,WAAAA;AACT;;AAGA,YAAA,IAAIa,QAAW,GAAA,GAAA;YAEf,MAAMC,UAAAA,GAAa,CAACC,GAAAA,GAAiB,OAAQC,CAAAA,IAAI,CAACH,QAAAA,CAAAA,GAAYE,GAAM,GAAA,CAAC,CAAC,EAAEA,GAAK,CAAA,CAAA;YAE7EP,SAAUS,CAAAA,OAAO,CAAC,CAACC,IAAAA,GAAAA;gBACjB,MAAMC,KAAAA,GAAQC,wBAAyBC,CAAAA,IAAI,CAACH,IAAAA,CAAAA;AAE5CL,gBAAAA,QAAAA,IAAYM,KAERL,GAAAA,UAAAA,CAAW,CAAC,GAAG,EAAEK,KAAK,CAAC,CAAE,CAAA,CAAA,CAAE,CAE3BL,GAAAA,UAAAA,CAAWI,IAAKI,CAAAA,UAAU,CAAC,KAAO,EAAA,GAAA,CAAA,CAAA;AACxC,aAAA,CAAA;YAEA,OAAO,CAAA,EAAGtB,cAAca,QAAU,CAAA,CAAA;AACpC,SAAA;AACF;AACF;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"operation.d.ts","sourceRoot":"","sources":["../../../../../../src/assemblers/document/path/path-item/operation/operation.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAE1C,OAAO,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AAGjE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAE5D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAI7C,qBAAa,kBAAmB,YAAW,SAAS,CAAC,QAAQ;IAC3D,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAwB;IAEpD,OAAO,CAAC,QAAQ,CAAC,eAAe,CAA0B;gBAGxD,UAAU,EAAE,SAAS,CAAC,SAAS,EAAE,EACjC,cAAc,GAAE,uBAAuD;IAMzE,QAAQ,CAAC,OAAO,EAAE,eAAe,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,KAAK,EAAE,GAAG,IAAI;IA6B5E,OAAO,CAAC,wBAAwB;IAQhC,OAAO,CAAC,kBAAkB;CAQ3B"}
1
+ {"version":3,"file":"operation.d.ts","sourceRoot":"","sources":["../../../../../../src/assemblers/document/path/path-item/operation/operation.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAE1C,OAAO,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AAGjE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAE5D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAI7C,qBAAa,kBAAmB,YAAW,SAAS,CAAC,QAAQ;IAC3D,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAwB;IAEpD,OAAO,CAAC,QAAQ,CAAC,eAAe,CAA0B;gBAGxD,UAAU,EAAE,SAAS,CAAC,SAAS,EAAE,EACjC,cAAc,GAAE,uBAAuD;IAMzE,QAAQ,CAAC,OAAO,EAAE,eAAe,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,KAAK,EAAE,GAAG,IAAI;IA6B5E,OAAO,CAAC,wBAAwB;IAQhC,OAAO,CAAC,kBAAkB;CAS3B"}
@@ -3,7 +3,7 @@
3
3
  var openapiTypes = require('openapi-types');
4
4
  var debug$1 = require('../../../../../utils/debug.js');
5
5
  require('node:crypto');
6
- require('zod');
6
+ require('zod/v4');
7
7
  var operation = require('../../../../../context/factories/operation.js');
8
8
 
9
9
  const debug = debug$1.createDebugger('assembler:operation');
@@ -23,7 +23,9 @@ class OperationAssembler {
23
23
  const { data: operationObject } = operationContext.output;
24
24
  this._validateOperationObject(operationObject);
25
25
  debug('assembled operation object for %o %o', method, path);
26
- output.data[methodIndex] = operationObject;
26
+ Object.assign(output.data, {
27
+ [methodIndex]: operationObject
28
+ });
27
29
  }
28
30
  }
29
31
  _validateOperationObject(operation) {
@@ -32,6 +34,7 @@ class OperationAssembler {
32
34
  }
33
35
  }
34
36
  _validateHTTPIndex(method) {
37
+ // HttpMethods is exported as an enum in OpenAPIV3 and as a type only in OpenAPIV3_1
35
38
  const allowedMethods = Object.values(openapiTypes.OpenAPIV3.HttpMethods);
36
39
  const isAllowedMethod = allowedMethods.includes(method);
37
40
  if (!isAllowedMethod) {
@@ -1 +1 @@
1
- {"version":3,"file":"operation.js","sources":["../../../../../../src/assemblers/document/path/path-item/operation/operation.ts"],"sourcesContent":["import { OpenAPIV3 } from 'openapi-types';\n\nimport type { Core } from '@strapi/types';\n\nimport { OperationContextFactory } from '../../../../../context';\nimport { createDebugger } from '../../../../../utils';\n\nimport type { PathItemContext } from '../../../../../types';\n\nimport type { Assembler } from '../../../..';\n\nconst debug = createDebugger('assembler:operation');\n\nexport class OperationAssembler implements Assembler.PathItem {\n private readonly _assemblers: Assembler.Operation[];\n\n private readonly _contextFactory: OperationContextFactory;\n\n constructor(\n assemblers: Assembler.Operation[],\n contextFactory: OperationContextFactory = new OperationContextFactory()\n ) {\n this._assemblers = assemblers;\n this._contextFactory = contextFactory;\n }\n\n assemble(context: PathItemContext, path: string, routes: Core.Route[]): void {\n const { output, ...defaultContextProps } = context;\n\n for (const route of routes) {\n const { method } = route;\n\n const methodIndex = method.toLowerCase();\n const operationContext = this._contextFactory.create(defaultContextProps);\n\n this._validateHTTPIndex(methodIndex);\n\n debug('assembling operation object for %o %o...', method, path);\n\n for (const assembler of this._assemblers) {\n debug('running assembler: %s...', assembler.constructor.name);\n\n assembler.assemble(operationContext, route);\n }\n\n const { data: operationObject } = operationContext.output;\n\n this._validateOperationObject(operationObject);\n\n debug('assembled operation object for %o %o', method, path);\n\n output.data[methodIndex] = operationObject;\n }\n }\n\n private _validateOperationObject(\n operation: Partial<OpenAPIV3.OperationObject>\n ): asserts operation is OpenAPIV3.OperationObject {\n if (!('responses' in operation)) {\n throw new Error('Invalid operation object: missing \"responses\" property');\n }\n }\n\n private _validateHTTPIndex(method: string): asserts method is OpenAPIV3.HttpMethods {\n const allowedMethods = Object.values<string>(OpenAPIV3.HttpMethods);\n const isAllowedMethod = allowedMethods.includes(method);\n\n if (!isAllowedMethod) {\n throw new Error(`Invalid HTTP method object: ${method}. Expected one of ${allowedMethods}`);\n }\n }\n}\n"],"names":["debug","createDebugger","OperationAssembler","assemble","context","path","routes","output","defaultContextProps","route","method","methodIndex","toLowerCase","operationContext","_contextFactory","create","_validateHTTPIndex","assembler","_assemblers","constructor","name","data","operationObject","_validateOperationObject","operation","Error","allowedMethods","Object","values","OpenAPIV3","HttpMethods","isAllowedMethod","includes","assemblers","contextFactory","OperationContextFactory"],"mappings":";;;;;;;;AAWA,MAAMA,QAAQC,sBAAe,CAAA,qBAAA,CAAA;AAEtB,MAAMC,kBAAAA,CAAAA;AAaXC,IAAAA,QAAAA,CAASC,OAAwB,EAAEC,IAAY,EAAEC,MAAoB,EAAQ;AAC3E,QAAA,MAAM,EAAEC,MAAM,EAAE,GAAGC,qBAAqB,GAAGJ,OAAAA;QAE3C,KAAK,MAAMK,SAASH,MAAQ,CAAA;YAC1B,MAAM,EAAEI,MAAM,EAAE,GAAGD,KAAAA;YAEnB,MAAME,WAAAA,GAAcD,OAAOE,WAAW,EAAA;AACtC,YAAA,MAAMC,mBAAmB,IAAI,CAACC,eAAe,CAACC,MAAM,CAACP,mBAAAA,CAAAA;YAErD,IAAI,CAACQ,kBAAkB,CAACL,WAAAA,CAAAA;AAExBX,YAAAA,KAAAA,CAAM,4CAA4CU,MAAQL,EAAAA,IAAAA,CAAAA;AAE1D,YAAA,KAAK,MAAMY,SAAAA,IAAa,IAAI,CAACC,WAAW,CAAE;AACxClB,gBAAAA,KAAAA,CAAM,0BAA4BiB,EAAAA,SAAAA,CAAUE,WAAW,CAACC,IAAI,CAAA;gBAE5DH,SAAUd,CAAAA,QAAQ,CAACU,gBAAkBJ,EAAAA,KAAAA,CAAAA;AACvC;AAEA,YAAA,MAAM,EAAEY,IAAMC,EAAAA,eAAe,EAAE,GAAGT,iBAAiBN,MAAM;YAEzD,IAAI,CAACgB,wBAAwB,CAACD,eAAAA,CAAAA;AAE9BtB,YAAAA,KAAAA,CAAM,wCAAwCU,MAAQL,EAAAA,IAAAA,CAAAA;YAEtDE,MAAOc,CAAAA,IAAI,CAACV,WAAAA,CAAY,GAAGW,eAAAA;AAC7B;AACF;AAEQC,IAAAA,wBAAAA,CACNC,SAA6C,EACG;AAChD,QAAA,IAAI,EAAE,WAAeA,IAAAA,SAAQ,CAAI,EAAA;AAC/B,YAAA,MAAM,IAAIC,KAAM,CAAA,wDAAA,CAAA;AAClB;AACF;AAEQT,IAAAA,kBAAAA,CAAmBN,MAAc,EAA2C;AAClF,QAAA,MAAMgB,cAAiBC,GAAAA,MAAAA,CAAOC,MAAM,CAASC,uBAAUC,WAAW,CAAA;QAClE,MAAMC,eAAAA,GAAkBL,cAAeM,CAAAA,QAAQ,CAACtB,MAAAA,CAAAA;AAEhD,QAAA,IAAI,CAACqB,eAAiB,EAAA;YACpB,MAAM,IAAIN,MAAM,CAAC,4BAA4B,EAAEf,MAAO,CAAA,kBAAkB,EAAEgB,cAAAA,CAAe,CAAC,CAAA;AAC5F;AACF;AApDAP,IAAAA,WAAAA,CACEc,UAAiC,EACjCC,cAA0C,GAAA,IAAIC,mCAAyB,CACvE;QACA,IAAI,CAACjB,WAAW,GAAGe,UAAAA;QACnB,IAAI,CAACnB,eAAe,GAAGoB,cAAAA;AACzB;AA+CF;;;;"}
1
+ {"version":3,"file":"operation.js","sources":["../../../../../../src/assemblers/document/path/path-item/operation/operation.ts"],"sourcesContent":["import { OpenAPIV3_1, OpenAPIV3 } from 'openapi-types';\n\nimport type { Core } from '@strapi/types';\n\nimport { OperationContextFactory } from '../../../../../context';\nimport { createDebugger } from '../../../../../utils';\n\nimport type { PathItemContext } from '../../../../../types';\n\nimport type { Assembler } from '../../../..';\n\nconst debug = createDebugger('assembler:operation');\n\nexport class OperationAssembler implements Assembler.PathItem {\n private readonly _assemblers: Assembler.Operation[];\n\n private readonly _contextFactory: OperationContextFactory;\n\n constructor(\n assemblers: Assembler.Operation[],\n contextFactory: OperationContextFactory = new OperationContextFactory()\n ) {\n this._assemblers = assemblers;\n this._contextFactory = contextFactory;\n }\n\n assemble(context: PathItemContext, path: string, routes: Core.Route[]): void {\n const { output, ...defaultContextProps } = context;\n\n for (const route of routes) {\n const { method } = route;\n\n const methodIndex = method.toLowerCase();\n const operationContext = this._contextFactory.create(defaultContextProps);\n\n this._validateHTTPIndex(methodIndex);\n\n debug('assembling operation object for %o %o...', method, path);\n\n for (const assembler of this._assemblers) {\n debug('running assembler: %s...', assembler.constructor.name);\n\n assembler.assemble(operationContext, route);\n }\n\n const { data: operationObject } = operationContext.output;\n\n this._validateOperationObject(operationObject);\n\n debug('assembled operation object for %o %o', method, path);\n\n Object.assign(output.data, { [methodIndex]: operationObject });\n }\n }\n\n private _validateOperationObject(\n operation: Partial<OpenAPIV3_1.OperationObject>\n ): asserts operation is OpenAPIV3_1.OperationObject {\n if (!('responses' in operation)) {\n throw new Error('Invalid operation object: missing \"responses\" property');\n }\n }\n\n private _validateHTTPIndex(method: string): asserts method is OpenAPIV3_1.HttpMethods {\n // HttpMethods is exported as an enum in OpenAPIV3 and as a type only in OpenAPIV3_1\n const allowedMethods = Object.values<string>(OpenAPIV3.HttpMethods);\n const isAllowedMethod = allowedMethods.includes(method);\n\n if (!isAllowedMethod) {\n throw new Error(`Invalid HTTP method object: ${method}. Expected one of ${allowedMethods}`);\n }\n }\n}\n"],"names":["debug","createDebugger","OperationAssembler","assemble","context","path","routes","output","defaultContextProps","route","method","methodIndex","toLowerCase","operationContext","_contextFactory","create","_validateHTTPIndex","assembler","_assemblers","name","data","operationObject","_validateOperationObject","Object","assign","operation","Error","allowedMethods","values","OpenAPIV3","HttpMethods","isAllowedMethod","includes","assemblers","contextFactory","OperationContextFactory"],"mappings":";;;;;;;;AAWA,MAAMA,QAAQC,sBAAe,CAAA,qBAAA,CAAA;AAEtB,MAAMC,kBAAAA,CAAAA;AAaXC,IAAAA,QAAAA,CAASC,OAAwB,EAAEC,IAAY,EAAEC,MAAoB,EAAQ;AAC3E,QAAA,MAAM,EAAEC,MAAM,EAAE,GAAGC,qBAAqB,GAAGJ,OAAAA;QAE3C,KAAK,MAAMK,SAASH,MAAQ,CAAA;YAC1B,MAAM,EAAEI,MAAM,EAAE,GAAGD,KAAAA;YAEnB,MAAME,WAAAA,GAAcD,OAAOE,WAAW,EAAA;AACtC,YAAA,MAAMC,mBAAmB,IAAI,CAACC,eAAe,CAACC,MAAM,CAACP,mBAAAA,CAAAA;YAErD,IAAI,CAACQ,kBAAkB,CAACL,WAAAA,CAAAA;AAExBX,YAAAA,KAAAA,CAAM,4CAA4CU,MAAQL,EAAAA,IAAAA,CAAAA;AAE1D,YAAA,KAAK,MAAMY,SAAAA,IAAa,IAAI,CAACC,WAAW,CAAE;AACxClB,gBAAAA,KAAAA,CAAM,0BAA4BiB,EAAAA,SAAAA,CAAU,WAAW,CAACE,IAAI,CAAA;gBAE5DF,SAAUd,CAAAA,QAAQ,CAACU,gBAAkBJ,EAAAA,KAAAA,CAAAA;AACvC;AAEA,YAAA,MAAM,EAAEW,IAAMC,EAAAA,eAAe,EAAE,GAAGR,iBAAiBN,MAAM;YAEzD,IAAI,CAACe,wBAAwB,CAACD,eAAAA,CAAAA;AAE9BrB,YAAAA,KAAAA,CAAM,wCAAwCU,MAAQL,EAAAA,IAAAA,CAAAA;AAEtDkB,YAAAA,MAAAA,CAAOC,MAAM,CAACjB,MAAOa,CAAAA,IAAI,EAAE;AAAE,gBAAA,CAACT,cAAcU;AAAgB,aAAA,CAAA;AAC9D;AACF;AAEQC,IAAAA,wBAAAA,CACNG,SAA+C,EACG;AAClD,QAAA,IAAI,EAAE,WAAeA,IAAAA,SAAQ,CAAI,EAAA;AAC/B,YAAA,MAAM,IAAIC,KAAM,CAAA,wDAAA,CAAA;AAClB;AACF;AAEQV,IAAAA,kBAAAA,CAAmBN,MAAc,EAA6C;;AAEpF,QAAA,MAAMiB,cAAiBJ,GAAAA,MAAAA,CAAOK,MAAM,CAASC,uBAAUC,WAAW,CAAA;QAClE,MAAMC,eAAAA,GAAkBJ,cAAeK,CAAAA,QAAQ,CAACtB,MAAAA,CAAAA;AAEhD,QAAA,IAAI,CAACqB,eAAiB,EAAA;YACpB,MAAM,IAAIL,MAAM,CAAC,4BAA4B,EAAEhB,MAAO,CAAA,kBAAkB,EAAEiB,cAAgB,CAAA,CAAA,CAAA;AAC5F;AACF;AArDA,IAAA,WAAA,CACEM,UAAiC,EACjCC,cAA0C,GAAA,IAAIC,mCAAyB,CACvE;QACA,IAAI,CAACjB,WAAW,GAAGe,UAAAA;QACnB,IAAI,CAACnB,eAAe,GAAGoB,cAAAA;AACzB;AAgDF;;;;"}
@@ -1,7 +1,7 @@
1
1
  import { OpenAPIV3 } from 'openapi-types';
2
2
  import { createDebugger } from '../../../../../utils/debug.mjs';
3
3
  import 'node:crypto';
4
- import 'zod';
4
+ import 'zod/v4';
5
5
  import { OperationContextFactory } from '../../../../../context/factories/operation.mjs';
6
6
 
7
7
  const debug = createDebugger('assembler:operation');
@@ -21,7 +21,9 @@ class OperationAssembler {
21
21
  const { data: operationObject } = operationContext.output;
22
22
  this._validateOperationObject(operationObject);
23
23
  debug('assembled operation object for %o %o', method, path);
24
- output.data[methodIndex] = operationObject;
24
+ Object.assign(output.data, {
25
+ [methodIndex]: operationObject
26
+ });
25
27
  }
26
28
  }
27
29
  _validateOperationObject(operation) {
@@ -30,6 +32,7 @@ class OperationAssembler {
30
32
  }
31
33
  }
32
34
  _validateHTTPIndex(method) {
35
+ // HttpMethods is exported as an enum in OpenAPIV3 and as a type only in OpenAPIV3_1
33
36
  const allowedMethods = Object.values(OpenAPIV3.HttpMethods);
34
37
  const isAllowedMethod = allowedMethods.includes(method);
35
38
  if (!isAllowedMethod) {
@@ -1 +1 @@
1
- {"version":3,"file":"operation.mjs","sources":["../../../../../../src/assemblers/document/path/path-item/operation/operation.ts"],"sourcesContent":["import { OpenAPIV3 } from 'openapi-types';\n\nimport type { Core } from '@strapi/types';\n\nimport { OperationContextFactory } from '../../../../../context';\nimport { createDebugger } from '../../../../../utils';\n\nimport type { PathItemContext } from '../../../../../types';\n\nimport type { Assembler } from '../../../..';\n\nconst debug = createDebugger('assembler:operation');\n\nexport class OperationAssembler implements Assembler.PathItem {\n private readonly _assemblers: Assembler.Operation[];\n\n private readonly _contextFactory: OperationContextFactory;\n\n constructor(\n assemblers: Assembler.Operation[],\n contextFactory: OperationContextFactory = new OperationContextFactory()\n ) {\n this._assemblers = assemblers;\n this._contextFactory = contextFactory;\n }\n\n assemble(context: PathItemContext, path: string, routes: Core.Route[]): void {\n const { output, ...defaultContextProps } = context;\n\n for (const route of routes) {\n const { method } = route;\n\n const methodIndex = method.toLowerCase();\n const operationContext = this._contextFactory.create(defaultContextProps);\n\n this._validateHTTPIndex(methodIndex);\n\n debug('assembling operation object for %o %o...', method, path);\n\n for (const assembler of this._assemblers) {\n debug('running assembler: %s...', assembler.constructor.name);\n\n assembler.assemble(operationContext, route);\n }\n\n const { data: operationObject } = operationContext.output;\n\n this._validateOperationObject(operationObject);\n\n debug('assembled operation object for %o %o', method, path);\n\n output.data[methodIndex] = operationObject;\n }\n }\n\n private _validateOperationObject(\n operation: Partial<OpenAPIV3.OperationObject>\n ): asserts operation is OpenAPIV3.OperationObject {\n if (!('responses' in operation)) {\n throw new Error('Invalid operation object: missing \"responses\" property');\n }\n }\n\n private _validateHTTPIndex(method: string): asserts method is OpenAPIV3.HttpMethods {\n const allowedMethods = Object.values<string>(OpenAPIV3.HttpMethods);\n const isAllowedMethod = allowedMethods.includes(method);\n\n if (!isAllowedMethod) {\n throw new Error(`Invalid HTTP method object: ${method}. Expected one of ${allowedMethods}`);\n }\n }\n}\n"],"names":["debug","createDebugger","OperationAssembler","assemble","context","path","routes","output","defaultContextProps","route","method","methodIndex","toLowerCase","operationContext","_contextFactory","create","_validateHTTPIndex","assembler","_assemblers","constructor","name","data","operationObject","_validateOperationObject","operation","Error","allowedMethods","Object","values","OpenAPIV3","HttpMethods","isAllowedMethod","includes","assemblers","contextFactory","OperationContextFactory"],"mappings":";;;;;;AAWA,MAAMA,QAAQC,cAAe,CAAA,qBAAA,CAAA;AAEtB,MAAMC,kBAAAA,CAAAA;AAaXC,IAAAA,QAAAA,CAASC,OAAwB,EAAEC,IAAY,EAAEC,MAAoB,EAAQ;AAC3E,QAAA,MAAM,EAAEC,MAAM,EAAE,GAAGC,qBAAqB,GAAGJ,OAAAA;QAE3C,KAAK,MAAMK,SAASH,MAAQ,CAAA;YAC1B,MAAM,EAAEI,MAAM,EAAE,GAAGD,KAAAA;YAEnB,MAAME,WAAAA,GAAcD,OAAOE,WAAW,EAAA;AACtC,YAAA,MAAMC,mBAAmB,IAAI,CAACC,eAAe,CAACC,MAAM,CAACP,mBAAAA,CAAAA;YAErD,IAAI,CAACQ,kBAAkB,CAACL,WAAAA,CAAAA;AAExBX,YAAAA,KAAAA,CAAM,4CAA4CU,MAAQL,EAAAA,IAAAA,CAAAA;AAE1D,YAAA,KAAK,MAAMY,SAAAA,IAAa,IAAI,CAACC,WAAW,CAAE;AACxClB,gBAAAA,KAAAA,CAAM,0BAA4BiB,EAAAA,SAAAA,CAAUE,WAAW,CAACC,IAAI,CAAA;gBAE5DH,SAAUd,CAAAA,QAAQ,CAACU,gBAAkBJ,EAAAA,KAAAA,CAAAA;AACvC;AAEA,YAAA,MAAM,EAAEY,IAAMC,EAAAA,eAAe,EAAE,GAAGT,iBAAiBN,MAAM;YAEzD,IAAI,CAACgB,wBAAwB,CAACD,eAAAA,CAAAA;AAE9BtB,YAAAA,KAAAA,CAAM,wCAAwCU,MAAQL,EAAAA,IAAAA,CAAAA;YAEtDE,MAAOc,CAAAA,IAAI,CAACV,WAAAA,CAAY,GAAGW,eAAAA;AAC7B;AACF;AAEQC,IAAAA,wBAAAA,CACNC,SAA6C,EACG;AAChD,QAAA,IAAI,EAAE,WAAeA,IAAAA,SAAQ,CAAI,EAAA;AAC/B,YAAA,MAAM,IAAIC,KAAM,CAAA,wDAAA,CAAA;AAClB;AACF;AAEQT,IAAAA,kBAAAA,CAAmBN,MAAc,EAA2C;AAClF,QAAA,MAAMgB,cAAiBC,GAAAA,MAAAA,CAAOC,MAAM,CAASC,UAAUC,WAAW,CAAA;QAClE,MAAMC,eAAAA,GAAkBL,cAAeM,CAAAA,QAAQ,CAACtB,MAAAA,CAAAA;AAEhD,QAAA,IAAI,CAACqB,eAAiB,EAAA;YACpB,MAAM,IAAIN,MAAM,CAAC,4BAA4B,EAAEf,MAAO,CAAA,kBAAkB,EAAEgB,cAAAA,CAAe,CAAC,CAAA;AAC5F;AACF;AApDAP,IAAAA,WAAAA,CACEc,UAAiC,EACjCC,cAA0C,GAAA,IAAIC,yBAAyB,CACvE;QACA,IAAI,CAACjB,WAAW,GAAGe,UAAAA;QACnB,IAAI,CAACnB,eAAe,GAAGoB,cAAAA;AACzB;AA+CF;;;;"}
1
+ {"version":3,"file":"operation.mjs","sources":["../../../../../../src/assemblers/document/path/path-item/operation/operation.ts"],"sourcesContent":["import { OpenAPIV3_1, OpenAPIV3 } from 'openapi-types';\n\nimport type { Core } from '@strapi/types';\n\nimport { OperationContextFactory } from '../../../../../context';\nimport { createDebugger } from '../../../../../utils';\n\nimport type { PathItemContext } from '../../../../../types';\n\nimport type { Assembler } from '../../../..';\n\nconst debug = createDebugger('assembler:operation');\n\nexport class OperationAssembler implements Assembler.PathItem {\n private readonly _assemblers: Assembler.Operation[];\n\n private readonly _contextFactory: OperationContextFactory;\n\n constructor(\n assemblers: Assembler.Operation[],\n contextFactory: OperationContextFactory = new OperationContextFactory()\n ) {\n this._assemblers = assemblers;\n this._contextFactory = contextFactory;\n }\n\n assemble(context: PathItemContext, path: string, routes: Core.Route[]): void {\n const { output, ...defaultContextProps } = context;\n\n for (const route of routes) {\n const { method } = route;\n\n const methodIndex = method.toLowerCase();\n const operationContext = this._contextFactory.create(defaultContextProps);\n\n this._validateHTTPIndex(methodIndex);\n\n debug('assembling operation object for %o %o...', method, path);\n\n for (const assembler of this._assemblers) {\n debug('running assembler: %s...', assembler.constructor.name);\n\n assembler.assemble(operationContext, route);\n }\n\n const { data: operationObject } = operationContext.output;\n\n this._validateOperationObject(operationObject);\n\n debug('assembled operation object for %o %o', method, path);\n\n Object.assign(output.data, { [methodIndex]: operationObject });\n }\n }\n\n private _validateOperationObject(\n operation: Partial<OpenAPIV3_1.OperationObject>\n ): asserts operation is OpenAPIV3_1.OperationObject {\n if (!('responses' in operation)) {\n throw new Error('Invalid operation object: missing \"responses\" property');\n }\n }\n\n private _validateHTTPIndex(method: string): asserts method is OpenAPIV3_1.HttpMethods {\n // HttpMethods is exported as an enum in OpenAPIV3 and as a type only in OpenAPIV3_1\n const allowedMethods = Object.values<string>(OpenAPIV3.HttpMethods);\n const isAllowedMethod = allowedMethods.includes(method);\n\n if (!isAllowedMethod) {\n throw new Error(`Invalid HTTP method object: ${method}. Expected one of ${allowedMethods}`);\n }\n }\n}\n"],"names":["debug","createDebugger","OperationAssembler","assemble","context","path","routes","output","defaultContextProps","route","method","methodIndex","toLowerCase","operationContext","_contextFactory","create","_validateHTTPIndex","assembler","_assemblers","name","data","operationObject","_validateOperationObject","Object","assign","operation","Error","allowedMethods","values","OpenAPIV3","HttpMethods","isAllowedMethod","includes","assemblers","contextFactory","OperationContextFactory"],"mappings":";;;;;;AAWA,MAAMA,QAAQC,cAAe,CAAA,qBAAA,CAAA;AAEtB,MAAMC,kBAAAA,CAAAA;AAaXC,IAAAA,QAAAA,CAASC,OAAwB,EAAEC,IAAY,EAAEC,MAAoB,EAAQ;AAC3E,QAAA,MAAM,EAAEC,MAAM,EAAE,GAAGC,qBAAqB,GAAGJ,OAAAA;QAE3C,KAAK,MAAMK,SAASH,MAAQ,CAAA;YAC1B,MAAM,EAAEI,MAAM,EAAE,GAAGD,KAAAA;YAEnB,MAAME,WAAAA,GAAcD,OAAOE,WAAW,EAAA;AACtC,YAAA,MAAMC,mBAAmB,IAAI,CAACC,eAAe,CAACC,MAAM,CAACP,mBAAAA,CAAAA;YAErD,IAAI,CAACQ,kBAAkB,CAACL,WAAAA,CAAAA;AAExBX,YAAAA,KAAAA,CAAM,4CAA4CU,MAAQL,EAAAA,IAAAA,CAAAA;AAE1D,YAAA,KAAK,MAAMY,SAAAA,IAAa,IAAI,CAACC,WAAW,CAAE;AACxClB,gBAAAA,KAAAA,CAAM,0BAA4BiB,EAAAA,SAAAA,CAAU,WAAW,CAACE,IAAI,CAAA;gBAE5DF,SAAUd,CAAAA,QAAQ,CAACU,gBAAkBJ,EAAAA,KAAAA,CAAAA;AACvC;AAEA,YAAA,MAAM,EAAEW,IAAMC,EAAAA,eAAe,EAAE,GAAGR,iBAAiBN,MAAM;YAEzD,IAAI,CAACe,wBAAwB,CAACD,eAAAA,CAAAA;AAE9BrB,YAAAA,KAAAA,CAAM,wCAAwCU,MAAQL,EAAAA,IAAAA,CAAAA;AAEtDkB,YAAAA,MAAAA,CAAOC,MAAM,CAACjB,MAAOa,CAAAA,IAAI,EAAE;AAAE,gBAAA,CAACT,cAAcU;AAAgB,aAAA,CAAA;AAC9D;AACF;AAEQC,IAAAA,wBAAAA,CACNG,SAA+C,EACG;AAClD,QAAA,IAAI,EAAE,WAAeA,IAAAA,SAAQ,CAAI,EAAA;AAC/B,YAAA,MAAM,IAAIC,KAAM,CAAA,wDAAA,CAAA;AAClB;AACF;AAEQV,IAAAA,kBAAAA,CAAmBN,MAAc,EAA6C;;AAEpF,QAAA,MAAMiB,cAAiBJ,GAAAA,MAAAA,CAAOK,MAAM,CAASC,UAAUC,WAAW,CAAA;QAClE,MAAMC,eAAAA,GAAkBJ,cAAeK,CAAAA,QAAQ,CAACtB,MAAAA,CAAAA;AAEhD,QAAA,IAAI,CAACqB,eAAiB,EAAA;YACpB,MAAM,IAAIL,MAAM,CAAC,4BAA4B,EAAEhB,MAAO,CAAA,kBAAkB,EAAEiB,cAAgB,CAAA,CAAA,CAAA;AAC5F;AACF;AArDA,IAAA,WAAA,CACEM,UAAiC,EACjCC,cAA0C,GAAA,IAAIC,yBAAyB,CACvE;QACA,IAAI,CAACjB,WAAW,GAAGe,UAAAA;QACnB,IAAI,CAACnB,eAAe,GAAGoB,cAAAA;AACzB;AAgDF;;;;"}
@@ -29,7 +29,7 @@ class OperationParametersAssembler {
29
29
  const required = !zodSchema.isOptional();
30
30
  const schema = zod.zodToOpenAPI(zodSchema);
31
31
  pathParams.push({
32
- name: name,
32
+ name,
33
33
  in: 'path',
34
34
  required,
35
35
  schema
@@ -47,7 +47,7 @@ class OperationParametersAssembler {
47
47
  const required = !zodSchema.isOptional();
48
48
  const schema = zod.zodToOpenAPI(zodSchema);
49
49
  const param = {
50
- name: name,
50
+ name,
51
51
  in: 'query',
52
52
  required,
53
53
  schema
@@ -1 +1 @@
1
- {"version":3,"file":"parameters.js","sources":["../../../../../../src/assemblers/document/path/path-item/operation/parameters.ts"],"sourcesContent":["import type { Core } from '@strapi/types';\nimport type { OpenAPIV3 } 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.ParameterObject & { in: 'path' };\ntype QueryParameterObject = OpenAPIV3.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: 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: 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,sBAAe,CAAA,sBAAA,CAAA;AAKtB,MAAMC,4BAAAA,CAAAA;IACXC,QAASC,CAAAA,OAAyB,EAAEC,KAAiB,EAAQ;AAC3DL,QAAAA,KAAAA,CAAM,oCAAsCK,EAAAA,KAAAA,CAAMC,MAAM,EAAED,MAAME,IAAI,CAAA;AAEpE,QAAA,MAAMC,cAAiB,GAAA,IAAI,CAACC,kBAAkB,CAACJ,KAAAA,CAAAA;QAC/CL,KAAM,CAAA,0BAAA,EAA4BQ,eAAeE,MAAM,CAAA;AAEvD,QAAA,MAAMC,eAAkB,GAAA,IAAI,CAACC,mBAAmB,CAACP,KAAAA,CAAAA;QACjDL,KAAM,CAAA,2BAAA,EAA6BW,gBAAgBD,MAAM,CAAA;AAEzD,QAAA,MAAMG,UAAa,GAAA;AAAIL,YAAAA,GAAAA,cAAAA;AAAmBG,YAAAA,GAAAA;AAAgB,SAAA;QAC1DX,KAAM,CAAA,mCAAA,EAAqCa,WAAWH,MAAM,EAAEL,MAAMC,MAAM,EAAED,MAAME,IAAI,CAAA;AAEtFH,QAAAA,OAAAA,CAAQU,MAAM,CAACC,IAAI,CAACF,UAAU,GAAGA,UAAAA;AACnC;AAEQJ,IAAAA,kBAAAA,CAAmBJ,KAAiB,EAAyB;AACnE,QAAA,MAAM,EAAEW,MAAM,EAAE,GAAGX,KAAMY,CAAAA,OAAO,IAAI,EAAC;;AAGrC,QAAA,IAAI,CAACD,MAAQ,EAAA;AACX,YAAA,OAAO,EAAE;AACX;AAEA,QAAA,MAAME,aAAoC,EAAE;QAE5C,KAAK,MAAM,CAACC,IAAMC,EAAAA,SAAAA,CAAU,IAAIC,MAAOC,CAAAA,OAAO,CAACN,MAAS,CAAA,CAAA;YACtD,MAAMO,QAAAA,GAAW,CAACH,SAAAA,CAAUI,UAAU,EAAA;AACtC,YAAA,MAAMC,SAASC,gBAAaN,CAAAA,SAAAA,CAAAA;AAE5BF,YAAAA,UAAAA,CAAWS,IAAI,CAAC;gBAAER,IAAMA,EAAAA,IAAAA;gBAAMS,EAAI,EAAA,MAAA;AAAQL,gBAAAA,QAAAA;AAAUE,gBAAAA;AAAO,aAAA,CAAA;AAC7D;QAEA,OAAOP,UAAAA;AACT;AAEQN,IAAAA,mBAAAA,CAAoBP,KAAiB,EAA0B;AACrE,QAAA,MAAM,EAAEwB,KAAK,EAAE,GAAGxB,KAAMY,CAAAA,OAAO,IAAI,EAAC;AAEpC,QAAA,IAAI,CAACY,KAAO,EAAA;AACV,YAAA,OAAO,EAAE;AACX;AAEA,QAAA,MAAMC,cAAsC,EAAE;QAE9C,KAAK,MAAM,CAACX,IAAMC,EAAAA,SAAAA,CAAU,IAAIC,MAAOC,CAAAA,OAAO,CAACO,KAAQ,CAAA,CAAA;YACrD,MAAMN,QAAAA,GAAW,CAACH,SAAAA,CAAUI,UAAU,EAAA;AACtC,YAAA,MAAMC,SAASC,gBAAaN,CAAAA,SAAAA,CAAAA;AAC5B,YAAA,MAAMW,KAA8B,GAAA;gBAAEZ,IAAMA,EAAAA,IAAAA;gBAAMS,EAAI,EAAA,OAAA;AAASL,gBAAAA,QAAAA;AAAUE,gBAAAA;AAAO,aAAA;;;YAIhFJ,MAAOW,CAAAA,MAAM,CAACD,KAAO,EAAA;gBAAE,oBAAsB,EAAA;AAAc,aAAA,CAAA;AAE3DD,YAAAA,WAAAA,CAAYH,IAAI,CAACI,KAAAA,CAAAA;AACnB;QAEA,OAAOD,WAAAA;AACT;AACF;;;;"}
1
+ {"version":3,"file":"parameters.js","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,sBAAe,CAAA,sBAAA,CAAA;AAKtB,MAAMC,4BAAAA,CAAAA;IACXC,QAASC,CAAAA,OAAyB,EAAEC,KAAiB,EAAQ;AAC3DL,QAAAA,KAAAA,CAAM,oCAAsCK,EAAAA,KAAAA,CAAMC,MAAM,EAAED,MAAME,IAAI,CAAA;AAEpE,QAAA,MAAMC,cAAiB,GAAA,IAAI,CAACC,kBAAkB,CAACJ,KAAAA,CAAAA;QAC/CL,KAAM,CAAA,0BAAA,EAA4BQ,eAAeE,MAAM,CAAA;AAEvD,QAAA,MAAMC,eAAkB,GAAA,IAAI,CAACC,mBAAmB,CAACP,KAAAA,CAAAA;QACjDL,KAAM,CAAA,2BAAA,EAA6BW,gBAAgBD,MAAM,CAAA;AAEzD,QAAA,MAAMG,UAAa,GAAA;AAAIL,YAAAA,GAAAA,cAAAA;AAAmBG,YAAAA,GAAAA;AAAgB,SAAA;QAC1DX,KAAM,CAAA,mCAAA,EAAqCa,WAAWH,MAAM,EAAEL,MAAMC,MAAM,EAAED,MAAME,IAAI,CAAA;AAEtFH,QAAAA,OAAAA,CAAQU,MAAM,CAACC,IAAI,CAACF,UAAU,GAAGA,UAAAA;AACnC;AAEQJ,IAAAA,kBAAAA,CAAmBJ,KAAiB,EAAyB;AACnE,QAAA,MAAM,EAAEW,MAAM,EAAE,GAAGX,KAAMY,CAAAA,OAAO,IAAI,EAAC;;AAGrC,QAAA,IAAI,CAACD,MAAQ,EAAA;AACX,YAAA,OAAO,EAAE;AACX;AAEA,QAAA,MAAME,aAAoC,EAAE;QAE5C,KAAK,MAAM,CAACC,IAAMC,EAAAA,SAAAA,CAAU,IAAIC,MAAOC,CAAAA,OAAO,CAACN,MAAS,CAAA,CAAA;YACtD,MAAMO,QAAAA,GAAW,CAACH,SAAAA,CAAUI,UAAU,EAAA;AACtC,YAAA,MAAMC,SAASC,gBAAaN,CAAAA,SAAAA,CAAAA;AAE5BF,YAAAA,UAAAA,CAAWS,IAAI,CAAC;AAAER,gBAAAA,IAAAA;gBAAMS,EAAI,EAAA,MAAA;AAAQL,gBAAAA,QAAAA;AAAUE,gBAAAA;AAAO,aAAA,CAAA;AACvD;QAEA,OAAOP,UAAAA;AACT;AAEQN,IAAAA,mBAAAA,CAAoBP,KAAiB,EAA0B;AACrE,QAAA,MAAM,EAAEwB,KAAK,EAAE,GAAGxB,KAAMY,CAAAA,OAAO,IAAI,EAAC;AAEpC,QAAA,IAAI,CAACY,KAAO,EAAA;AACV,YAAA,OAAO,EAAE;AACX;AAEA,QAAA,MAAMC,cAAsC,EAAE;QAE9C,KAAK,MAAM,CAACX,IAAMC,EAAAA,SAAAA,CAAU,IAAIC,MAAOC,CAAAA,OAAO,CAACO,KAAQ,CAAA,CAAA;YACrD,MAAMN,QAAAA,GAAW,CAACH,SAAAA,CAAUI,UAAU,EAAA;AACtC,YAAA,MAAMC,SAASC,gBAAaN,CAAAA,SAAAA,CAAAA;AAC5B,YAAA,MAAMW,KAA8B,GAAA;AAAEZ,gBAAAA,IAAAA;gBAAMS,EAAI,EAAA,OAAA;AAASL,gBAAAA,QAAAA;AAAUE,gBAAAA;AAAO,aAAA;;;YAI1EJ,MAAOW,CAAAA,MAAM,CAACD,KAAO,EAAA;gBAAE,oBAAsB,EAAA;AAAc,aAAA,CAAA;AAE3DD,YAAAA,WAAAA,CAAYH,IAAI,CAACI,KAAAA,CAAAA;AACnB;QAEA,OAAOD,WAAAA;AACT;AACF;;;;"}
@@ -27,7 +27,7 @@ class OperationParametersAssembler {
27
27
  const required = !zodSchema.isOptional();
28
28
  const schema = zodToOpenAPI(zodSchema);
29
29
  pathParams.push({
30
- name: name,
30
+ name,
31
31
  in: 'path',
32
32
  required,
33
33
  schema
@@ -45,7 +45,7 @@ class OperationParametersAssembler {
45
45
  const required = !zodSchema.isOptional();
46
46
  const schema = zodToOpenAPI(zodSchema);
47
47
  const param = {
48
- name: name,
48
+ name,
49
49
  in: 'query',
50
50
  required,
51
51
  schema
@@ -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 } 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.ParameterObject & { in: 'path' };\ntype QueryParameterObject = OpenAPIV3.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: 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: 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,cAAe,CAAA,sBAAA,CAAA;AAKtB,MAAMC,4BAAAA,CAAAA;IACXC,QAASC,CAAAA,OAAyB,EAAEC,KAAiB,EAAQ;AAC3DL,QAAAA,KAAAA,CAAM,oCAAsCK,EAAAA,KAAAA,CAAMC,MAAM,EAAED,MAAME,IAAI,CAAA;AAEpE,QAAA,MAAMC,cAAiB,GAAA,IAAI,CAACC,kBAAkB,CAACJ,KAAAA,CAAAA;QAC/CL,KAAM,CAAA,0BAAA,EAA4BQ,eAAeE,MAAM,CAAA;AAEvD,QAAA,MAAMC,eAAkB,GAAA,IAAI,CAACC,mBAAmB,CAACP,KAAAA,CAAAA;QACjDL,KAAM,CAAA,2BAAA,EAA6BW,gBAAgBD,MAAM,CAAA;AAEzD,QAAA,MAAMG,UAAa,GAAA;AAAIL,YAAAA,GAAAA,cAAAA;AAAmBG,YAAAA,GAAAA;AAAgB,SAAA;QAC1DX,KAAM,CAAA,mCAAA,EAAqCa,WAAWH,MAAM,EAAEL,MAAMC,MAAM,EAAED,MAAME,IAAI,CAAA;AAEtFH,QAAAA,OAAAA,CAAQU,MAAM,CAACC,IAAI,CAACF,UAAU,GAAGA,UAAAA;AACnC;AAEQJ,IAAAA,kBAAAA,CAAmBJ,KAAiB,EAAyB;AACnE,QAAA,MAAM,EAAEW,MAAM,EAAE,GAAGX,KAAMY,CAAAA,OAAO,IAAI,EAAC;;AAGrC,QAAA,IAAI,CAACD,MAAQ,EAAA;AACX,YAAA,OAAO,EAAE;AACX;AAEA,QAAA,MAAME,aAAoC,EAAE;QAE5C,KAAK,MAAM,CAACC,IAAMC,EAAAA,SAAAA,CAAU,IAAIC,MAAOC,CAAAA,OAAO,CAACN,MAAS,CAAA,CAAA;YACtD,MAAMO,QAAAA,GAAW,CAACH,SAAAA,CAAUI,UAAU,EAAA;AACtC,YAAA,MAAMC,SAASC,YAAaN,CAAAA,SAAAA,CAAAA;AAE5BF,YAAAA,UAAAA,CAAWS,IAAI,CAAC;gBAAER,IAAMA,EAAAA,IAAAA;gBAAMS,EAAI,EAAA,MAAA;AAAQL,gBAAAA,QAAAA;AAAUE,gBAAAA;AAAO,aAAA,CAAA;AAC7D;QAEA,OAAOP,UAAAA;AACT;AAEQN,IAAAA,mBAAAA,CAAoBP,KAAiB,EAA0B;AACrE,QAAA,MAAM,EAAEwB,KAAK,EAAE,GAAGxB,KAAMY,CAAAA,OAAO,IAAI,EAAC;AAEpC,QAAA,IAAI,CAACY,KAAO,EAAA;AACV,YAAA,OAAO,EAAE;AACX;AAEA,QAAA,MAAMC,cAAsC,EAAE;QAE9C,KAAK,MAAM,CAACX,IAAMC,EAAAA,SAAAA,CAAU,IAAIC,MAAOC,CAAAA,OAAO,CAACO,KAAQ,CAAA,CAAA;YACrD,MAAMN,QAAAA,GAAW,CAACH,SAAAA,CAAUI,UAAU,EAAA;AACtC,YAAA,MAAMC,SAASC,YAAaN,CAAAA,SAAAA,CAAAA;AAC5B,YAAA,MAAMW,KAA8B,GAAA;gBAAEZ,IAAMA,EAAAA,IAAAA;gBAAMS,EAAI,EAAA,OAAA;AAASL,gBAAAA,QAAAA;AAAUE,gBAAAA;AAAO,aAAA;;;YAIhFJ,MAAOW,CAAAA,MAAM,CAACD,KAAO,EAAA;gBAAE,oBAAsB,EAAA;AAAc,aAAA,CAAA;AAE3DD,YAAAA,WAAAA,CAAYH,IAAI,CAACI,KAAAA,CAAAA;AACnB;QAEA,OAAOD,WAAAA;AACT;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';\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,cAAe,CAAA,sBAAA,CAAA;AAKtB,MAAMC,4BAAAA,CAAAA;IACXC,QAASC,CAAAA,OAAyB,EAAEC,KAAiB,EAAQ;AAC3DL,QAAAA,KAAAA,CAAM,oCAAsCK,EAAAA,KAAAA,CAAMC,MAAM,EAAED,MAAME,IAAI,CAAA;AAEpE,QAAA,MAAMC,cAAiB,GAAA,IAAI,CAACC,kBAAkB,CAACJ,KAAAA,CAAAA;QAC/CL,KAAM,CAAA,0BAAA,EAA4BQ,eAAeE,MAAM,CAAA;AAEvD,QAAA,MAAMC,eAAkB,GAAA,IAAI,CAACC,mBAAmB,CAACP,KAAAA,CAAAA;QACjDL,KAAM,CAAA,2BAAA,EAA6BW,gBAAgBD,MAAM,CAAA;AAEzD,QAAA,MAAMG,UAAa,GAAA;AAAIL,YAAAA,GAAAA,cAAAA;AAAmBG,YAAAA,GAAAA;AAAgB,SAAA;QAC1DX,KAAM,CAAA,mCAAA,EAAqCa,WAAWH,MAAM,EAAEL,MAAMC,MAAM,EAAED,MAAME,IAAI,CAAA;AAEtFH,QAAAA,OAAAA,CAAQU,MAAM,CAACC,IAAI,CAACF,UAAU,GAAGA,UAAAA;AACnC;AAEQJ,IAAAA,kBAAAA,CAAmBJ,KAAiB,EAAyB;AACnE,QAAA,MAAM,EAAEW,MAAM,EAAE,GAAGX,KAAMY,CAAAA,OAAO,IAAI,EAAC;;AAGrC,QAAA,IAAI,CAACD,MAAQ,EAAA;AACX,YAAA,OAAO,EAAE;AACX;AAEA,QAAA,MAAME,aAAoC,EAAE;QAE5C,KAAK,MAAM,CAACC,IAAMC,EAAAA,SAAAA,CAAU,IAAIC,MAAOC,CAAAA,OAAO,CAACN,MAAS,CAAA,CAAA;YACtD,MAAMO,QAAAA,GAAW,CAACH,SAAAA,CAAUI,UAAU,EAAA;AACtC,YAAA,MAAMC,SAASC,YAAaN,CAAAA,SAAAA,CAAAA;AAE5BF,YAAAA,UAAAA,CAAWS,IAAI,CAAC;AAAER,gBAAAA,IAAAA;gBAAMS,EAAI,EAAA,MAAA;AAAQL,gBAAAA,QAAAA;AAAUE,gBAAAA;AAAO,aAAA,CAAA;AACvD;QAEA,OAAOP,UAAAA;AACT;AAEQN,IAAAA,mBAAAA,CAAoBP,KAAiB,EAA0B;AACrE,QAAA,MAAM,EAAEwB,KAAK,EAAE,GAAGxB,KAAMY,CAAAA,OAAO,IAAI,EAAC;AAEpC,QAAA,IAAI,CAACY,KAAO,EAAA;AACV,YAAA,OAAO,EAAE;AACX;AAEA,QAAA,MAAMC,cAAsC,EAAE;QAE9C,KAAK,MAAM,CAACX,IAAMC,EAAAA,SAAAA,CAAU,IAAIC,MAAOC,CAAAA,OAAO,CAACO,KAAQ,CAAA,CAAA;YACrD,MAAMN,QAAAA,GAAW,CAACH,SAAAA,CAAUI,UAAU,EAAA;AACtC,YAAA,MAAMC,SAASC,YAAaN,CAAAA,SAAAA,CAAAA;AAC5B,YAAA,MAAMW,KAA8B,GAAA;AAAEZ,gBAAAA,IAAAA;gBAAMS,EAAI,EAAA,OAAA;AAASL,gBAAAA,QAAAA;AAAUE,gBAAAA;AAAO,aAAA;;;YAI1EJ,MAAOW,CAAAA,MAAM,CAACD,KAAO,EAAA;gBAAE,oBAAsB,EAAA;AAAc,aAAA,CAAA;AAE3DD,YAAAA,WAAAA,CAAYH,IAAI,CAACI,KAAAA,CAAAA;AACnB;QAEA,OAAOD,WAAAA;AACT;AACF;;;;"}
@@ -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 } 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.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,OAAU,GAAA;QACpB,OAAO;YACL,GAAK,EAAA;gBAAEC,WAAa,EAAA;AAAc,aAAA;YAClC,GAAK,EAAA;gBAAEA,WAAa,EAAA;AAAe,aAAA;YACnC,GAAK,EAAA;gBAAEA,WAAa,EAAA;AAAY,aAAA;YAChC,GAAK,EAAA;gBAAEA,WAAa,EAAA;AAAY,aAAA;YAChC,GAAK,EAAA;gBAAEA,WAAa,EAAA;AAAwB;AAC9C,SAAA;AACF;IAEAC,QAASC,CAAAA,OAAyB,EAAEC,KAAiB,EAAQ;QAC3D,MAAM,EAAEC,MAAM,EAAE,GAAGF,OAAAA;AAEnB,QAAA,MAAMG,SAAY,GAAA;YAAE,GAAGD,MAAAA,CAAOE,IAAI,CAACD;AAAU,SAAA;;QAG7C,KAAK,MAAM,CAACE,SAAAA,EAAWC,QAAS,CAAA,IAAIC,MAAOC,CAAAA,OAAO,CAAC,IAAI,CAACX,OAAO,CAAG,CAAA;YAChEM,SAAS,CAACE,UAAU,GAAGC,QAAAA;AACzB;QAEA,IAAIL,KAAAA,CAAMK,QAAQ,EAAE;YAClB,MAAMG,MAAAA,GAASC,gBAAaT,CAAAA,KAAAA,CAAMK,QAAQ,CAAA;YAE1CH,SAAS,CAAC,IAAI,GAAG;gBACfL,WAAa,EAAA,IAAA;gBACba,OAAS,EAAA;oBAAE,kBAAoB,EAAA;AAAEF,wBAAAA;AAAO;AAAE;AAC5C,aAAA;AACF;QAEAP,MAAOE,CAAAA,IAAI,CAACD,SAAS,GAAGA,SAAAA;AAC1B;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);\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,OAAU,GAAA;QACpB,OAAO;YACL,GAAK,EAAA;gBAAEC,WAAa,EAAA;AAAc,aAAA;YAClC,GAAK,EAAA;gBAAEA,WAAa,EAAA;AAAe,aAAA;YACnC,GAAK,EAAA;gBAAEA,WAAa,EAAA;AAAY,aAAA;YAChC,GAAK,EAAA;gBAAEA,WAAa,EAAA;AAAY,aAAA;YAChC,GAAK,EAAA;gBAAEA,WAAa,EAAA;AAAwB;AAC9C,SAAA;AACF;IAEAC,QAASC,CAAAA,OAAyB,EAAEC,KAAiB,EAAQ;QAC3D,MAAM,EAAEC,MAAM,EAAE,GAAGF,OAAAA;AAEnB,QAAA,MAAMG,SAAY,GAAA;YAAE,GAAGD,MAAAA,CAAOE,IAAI,CAACD;AAAU,SAAA;;QAG7C,KAAK,MAAM,CAACE,SAAAA,EAAWC,QAAS,CAAA,IAAIC,MAAOC,CAAAA,OAAO,CAAC,IAAI,CAACX,OAAO,CAAG,CAAA;YAChEM,SAAS,CAACE,UAAU,GAAGC,QAAAA;AACzB;QAEA,IAAIL,KAAAA,CAAMK,QAAQ,EAAE;YAClB,MAAMG,MAAAA,GAASC,gBAAaT,CAAAA,KAAAA,CAAMK,QAAQ,CAAA;YAE1CH,SAAS,CAAC,IAAI,GAAG;gBACfL,WAAa,EAAA,IAAA;gBACba,OAAS,EAAA;oBAAE,kBAAoB,EAAA;AAAEF,wBAAAA;AAAO;AAAE;AAC5C,aAAA;AACF;QAEAP,MAAOE,CAAAA,IAAI,CAACD,SAAS,GAAGA,SAAAA;AAC1B;AACF;;;;"}
@@ -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 } 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.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,OAAU,GAAA;QACpB,OAAO;YACL,GAAK,EAAA;gBAAEC,WAAa,EAAA;AAAc,aAAA;YAClC,GAAK,EAAA;gBAAEA,WAAa,EAAA;AAAe,aAAA;YACnC,GAAK,EAAA;gBAAEA,WAAa,EAAA;AAAY,aAAA;YAChC,GAAK,EAAA;gBAAEA,WAAa,EAAA;AAAY,aAAA;YAChC,GAAK,EAAA;gBAAEA,WAAa,EAAA;AAAwB;AAC9C,SAAA;AACF;IAEAC,QAASC,CAAAA,OAAyB,EAAEC,KAAiB,EAAQ;QAC3D,MAAM,EAAEC,MAAM,EAAE,GAAGF,OAAAA;AAEnB,QAAA,MAAMG,SAAY,GAAA;YAAE,GAAGD,MAAAA,CAAOE,IAAI,CAACD;AAAU,SAAA;;QAG7C,KAAK,MAAM,CAACE,SAAAA,EAAWC,QAAS,CAAA,IAAIC,MAAOC,CAAAA,OAAO,CAAC,IAAI,CAACX,OAAO,CAAG,CAAA;YAChEM,SAAS,CAACE,UAAU,GAAGC,QAAAA;AACzB;QAEA,IAAIL,KAAAA,CAAMK,QAAQ,EAAE;YAClB,MAAMG,MAAAA,GAASC,YAAaT,CAAAA,KAAAA,CAAMK,QAAQ,CAAA;YAE1CH,SAAS,CAAC,IAAI,GAAG;gBACfL,WAAa,EAAA,IAAA;gBACba,OAAS,EAAA;oBAAE,kBAAoB,EAAA;AAAEF,wBAAAA;AAAO;AAAE;AAC5C,aAAA;AACF;QAEAP,MAAOE,CAAAA,IAAI,CAACD,SAAS,GAAGA,SAAAA;AAC1B;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);\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,OAAU,GAAA;QACpB,OAAO;YACL,GAAK,EAAA;gBAAEC,WAAa,EAAA;AAAc,aAAA;YAClC,GAAK,EAAA;gBAAEA,WAAa,EAAA;AAAe,aAAA;YACnC,GAAK,EAAA;gBAAEA,WAAa,EAAA;AAAY,aAAA;YAChC,GAAK,EAAA;gBAAEA,WAAa,EAAA;AAAY,aAAA;YAChC,GAAK,EAAA;gBAAEA,WAAa,EAAA;AAAwB;AAC9C,SAAA;AACF;IAEAC,QAASC,CAAAA,OAAyB,EAAEC,KAAiB,EAAQ;QAC3D,MAAM,EAAEC,MAAM,EAAE,GAAGF,OAAAA;AAEnB,QAAA,MAAMG,SAAY,GAAA;YAAE,GAAGD,MAAAA,CAAOE,IAAI,CAACD;AAAU,SAAA;;QAG7C,KAAK,MAAM,CAACE,SAAAA,EAAWC,QAAS,CAAA,IAAIC,MAAOC,CAAAA,OAAO,CAAC,IAAI,CAACX,OAAO,CAAG,CAAA;YAChEM,SAAS,CAACE,UAAU,GAAGC,QAAAA;AACzB;QAEA,IAAIL,KAAAA,CAAMK,QAAQ,EAAE;YAClB,MAAMG,MAAAA,GAASC,YAAaT,CAAAA,KAAAA,CAAMK,QAAQ,CAAA;YAE1CH,SAAS,CAAC,IAAI,GAAG;gBACfL,WAAa,EAAA,IAAA;gBACba,OAAS,EAAA;oBAAE,kBAAoB,EAAA;AAAEF,wBAAAA;AAAO;AAAE;AAC5C,aAAA;AACF;QAEAP,MAAOE,CAAAA,IAAI,CAACD,SAAS,GAAGA,SAAAA;AAC1B;AACF;;;;"}
@@ -2,7 +2,7 @@
2
2
 
3
3
  var debug$1 = require('../../../../../utils/debug.js');
4
4
  require('node:crypto');
5
- require('zod');
5
+ require('zod/v4');
6
6
 
7
7
  const debug = debug$1.createDebugger('assembler:tags');
8
8
  class OperationTagsAssembler {
@@ -1,6 +1,6 @@
1
1
  import { createDebugger } from '../../../../../utils/debug.mjs';
2
2
  import 'node:crypto';
3
- import 'zod';
3
+ import 'zod/v4';
4
4
 
5
5
  const debug = createDebugger('assembler:tags');
6
6
  class OperationTagsAssembler {
@@ -2,7 +2,7 @@
2
2
 
3
3
  var debug$1 = require('../../../../utils/debug.js');
4
4
  require('node:crypto');
5
- require('zod');
5
+ require('zod/v4');
6
6
 
7
7
  const debug = debug$1.createDebugger('assembler:path-item');
8
8
  class PathItemAssembler {
@@ -1 +1 @@
1
- {"version":3,"file":"path-item.js","sources":["../../../../../src/assemblers/document/path/path-item/path-item.ts"],"sourcesContent":["import type { Core } from '@strapi/types';\nimport { type PartialContext, PathItemContextFactory } from '../../../../context';\n\nimport type { PathContext, PathItemContext, PathItemContextData } from '../../../../types';\n\nimport { createDebugger } from '../../../../utils';\n\nimport type { Assembler } from '../../..';\n\nconst debug = createDebugger('assembler:path-item');\n\nexport class PathItemAssembler implements Assembler.Path {\n private readonly _assemblers: Assembler.PathItem[];\n\n private readonly _contextFactory: PathItemContextFactory;\n\n constructor(assemblers: Assembler.PathItem[], contextFactory: PathItemContextFactory) {\n this._assemblers = assemblers;\n this._contextFactory = contextFactory;\n }\n\n assemble(context: PathContext): void {\n const { output, routes } = context;\n\n const routesByPath = this._groupRoutesByPath(routes);\n\n debug(\n 'grouping routes by path, found %O groups for %O routes',\n Object.keys(routesByPath).length,\n routes.length\n );\n\n for (const [path, routes] of Object.entries(routesByPath)) {\n const openAPIPath = this._formatPath(path);\n\n debug(\n 'assembling path item for %o (%o)...',\n openAPIPath,\n routes.map((route) => route.method).join(', ')\n );\n\n const pathItemContext = this._createPathItemContext(context);\n\n for (const assembler of this._assemblers) {\n debug('running assembler: %s...', assembler.constructor.name);\n\n assembler.assemble(pathItemContext, path, routes);\n }\n\n output.data[openAPIPath] = pathItemContext.output.data;\n }\n }\n\n private _createPathItemContext(context: PathContext): PathItemContext {\n const initProps: PartialContext<PathItemContextData> = {\n strapi: context.strapi,\n registries: context.registries,\n routes: context.routes,\n timer: context.timer,\n };\n\n return this._contextFactory.create(initProps);\n }\n\n private _formatPath(path: string): string {\n return path.replace(/:([^/]+)/g, '{$1}');\n }\n\n private _groupRoutesByPath(routes: Core.Route[]): Record<string, Core.Route[]> {\n return routes.reduce<Record<string, Core.Route[]>>((acc, route) => {\n const { path } = route;\n\n if (!Array.isArray(acc[path])) {\n acc[path] = [];\n }\n\n acc[path].push(route);\n\n return acc;\n }, {});\n }\n}\n"],"names":["debug","createDebugger","PathItemAssembler","assemble","context","output","routes","routesByPath","_groupRoutesByPath","Object","keys","length","path","entries","openAPIPath","_formatPath","map","route","method","join","pathItemContext","_createPathItemContext","assembler","_assemblers","constructor","name","data","initProps","strapi","registries","timer","_contextFactory","create","replace","reduce","acc","Array","isArray","push","assemblers","contextFactory"],"mappings":";;;;;;AASA,MAAMA,QAAQC,sBAAe,CAAA,qBAAA,CAAA;AAEtB,MAAMC,iBAAAA,CAAAA;AAUXC,IAAAA,QAAAA,CAASC,OAAoB,EAAQ;AACnC,QAAA,MAAM,EAAEC,MAAM,EAAEC,MAAM,EAAE,GAAGF,OAAAA;AAE3B,QAAA,MAAMG,YAAe,GAAA,IAAI,CAACC,kBAAkB,CAACF,MAAAA,CAAAA;QAE7CN,KACE,CAAA,wDAAA,EACAS,OAAOC,IAAI,CAACH,cAAcI,MAAM,EAChCL,OAAOK,MAAM,CAAA;QAGf,KAAK,MAAM,CAACC,IAAMN,EAAAA,MAAAA,CAAO,IAAIG,MAAOI,CAAAA,OAAO,CAACN,YAAe,CAAA,CAAA;AACzD,YAAA,MAAMO,WAAc,GAAA,IAAI,CAACC,WAAW,CAACH,IAAAA,CAAAA;YAErCZ,KACE,CAAA,qCAAA,EACAc,WACAR,EAAAA,MAAAA,CAAOU,GAAG,CAAC,CAACC,KAAAA,GAAUA,KAAMC,CAAAA,MAAM,CAAEC,CAAAA,IAAI,CAAC,IAAA,CAAA,CAAA;AAG3C,YAAA,MAAMC,eAAkB,GAAA,IAAI,CAACC,sBAAsB,CAACjB,OAAAA,CAAAA;AAEpD,YAAA,KAAK,MAAMkB,SAAAA,IAAa,IAAI,CAACC,WAAW,CAAE;AACxCvB,gBAAAA,KAAAA,CAAM,0BAA4BsB,EAAAA,SAAAA,CAAUE,WAAW,CAACC,IAAI,CAAA;gBAE5DH,SAAUnB,CAAAA,QAAQ,CAACiB,eAAAA,EAAiBR,IAAMN,EAAAA,MAAAA,CAAAA;AAC5C;AAEAD,YAAAA,MAAAA,CAAOqB,IAAI,CAACZ,WAAAA,CAAY,GAAGM,eAAgBf,CAAAA,MAAM,CAACqB,IAAI;AACxD;AACF;AAEQL,IAAAA,sBAAAA,CAAuBjB,OAAoB,EAAmB;AACpE,QAAA,MAAMuB,SAAiD,GAAA;AACrDC,YAAAA,MAAAA,EAAQxB,QAAQwB,MAAM;AACtBC,YAAAA,UAAAA,EAAYzB,QAAQyB,UAAU;AAC9BvB,YAAAA,MAAAA,EAAQF,QAAQE,MAAM;AACtBwB,YAAAA,KAAAA,EAAO1B,QAAQ0B;AACjB,SAAA;AAEA,QAAA,OAAO,IAAI,CAACC,eAAe,CAACC,MAAM,CAACL,SAAAA,CAAAA;AACrC;AAEQZ,IAAAA,WAAAA,CAAYH,IAAY,EAAU;QACxC,OAAOA,IAAAA,CAAKqB,OAAO,CAAC,WAAa,EAAA,MAAA,CAAA;AACnC;AAEQzB,IAAAA,kBAAAA,CAAmBF,MAAoB,EAAgC;AAC7E,QAAA,OAAOA,MAAO4B,CAAAA,MAAM,CAA+B,CAACC,GAAKlB,EAAAA,KAAAA,GAAAA;YACvD,MAAM,EAAEL,IAAI,EAAE,GAAGK,KAAAA;AAEjB,YAAA,IAAI,CAACmB,KAAMC,CAAAA,OAAO,CAACF,GAAG,CAACvB,KAAK,CAAG,EAAA;gBAC7BuB,GAAG,CAACvB,IAAK,CAAA,GAAG,EAAE;AAChB;AAEAuB,YAAAA,GAAG,CAACvB,IAAAA,CAAK,CAAC0B,IAAI,CAACrB,KAAAA,CAAAA;YAEf,OAAOkB,GAAAA;AACT,SAAA,EAAG,EAAC,CAAA;AACN;IAhEAX,WAAYe,CAAAA,UAAgC,EAAEC,cAAsC,CAAE;QACpF,IAAI,CAACjB,WAAW,GAAGgB,UAAAA;QACnB,IAAI,CAACR,eAAe,GAAGS,cAAAA;AACzB;AA8DF;;;;"}
1
+ {"version":3,"file":"path-item.js","sources":["../../../../../src/assemblers/document/path/path-item/path-item.ts"],"sourcesContent":["import type { Core } from '@strapi/types';\nimport { type PartialContext, PathItemContextFactory } from '../../../../context';\n\nimport type { PathContext, PathItemContext, PathItemContextData } from '../../../../types';\n\nimport { createDebugger } from '../../../../utils';\n\nimport type { Assembler } from '../../..';\n\nconst debug = createDebugger('assembler:path-item');\n\nexport class PathItemAssembler implements Assembler.Path {\n private readonly _assemblers: Assembler.PathItem[];\n\n private readonly _contextFactory: PathItemContextFactory;\n\n constructor(assemblers: Assembler.PathItem[], contextFactory: PathItemContextFactory) {\n this._assemblers = assemblers;\n this._contextFactory = contextFactory;\n }\n\n assemble(context: PathContext): void {\n const { output, routes } = context;\n\n const routesByPath = this._groupRoutesByPath(routes);\n\n debug(\n 'grouping routes by path, found %O groups for %O routes',\n Object.keys(routesByPath).length,\n routes.length\n );\n\n for (const [path, routes] of Object.entries(routesByPath)) {\n const openAPIPath = this._formatPath(path);\n\n debug(\n 'assembling path item for %o (%o)...',\n openAPIPath,\n routes.map((route) => route.method).join(', ')\n );\n\n const pathItemContext = this._createPathItemContext(context);\n\n for (const assembler of this._assemblers) {\n debug('running assembler: %s...', assembler.constructor.name);\n\n assembler.assemble(pathItemContext, path, routes);\n }\n\n output.data[openAPIPath] = pathItemContext.output.data;\n }\n }\n\n private _createPathItemContext(context: PathContext): PathItemContext {\n const initProps: PartialContext<PathItemContextData> = {\n strapi: context.strapi,\n registries: context.registries,\n routes: context.routes,\n timer: context.timer,\n };\n\n return this._contextFactory.create(initProps);\n }\n\n private _formatPath(path: string): string {\n return path.replace(/:([^/]+)/g, '{$1}');\n }\n\n private _groupRoutesByPath(routes: Core.Route[]): Record<string, Core.Route[]> {\n return routes.reduce<Record<string, Core.Route[]>>((acc, route) => {\n const { path } = route;\n\n if (!Array.isArray(acc[path])) {\n acc[path] = [];\n }\n\n acc[path].push(route);\n\n return acc;\n }, {});\n }\n}\n"],"names":["debug","createDebugger","PathItemAssembler","assemble","context","output","routes","routesByPath","_groupRoutesByPath","Object","keys","length","path","entries","openAPIPath","_formatPath","map","route","method","join","pathItemContext","_createPathItemContext","assembler","_assemblers","name","data","initProps","strapi","registries","timer","_contextFactory","create","replace","reduce","acc","Array","isArray","push","assemblers","contextFactory"],"mappings":";;;;;;AASA,MAAMA,QAAQC,sBAAe,CAAA,qBAAA,CAAA;AAEtB,MAAMC,iBAAAA,CAAAA;AAUXC,IAAAA,QAAAA,CAASC,OAAoB,EAAQ;AACnC,QAAA,MAAM,EAAEC,MAAM,EAAEC,MAAM,EAAE,GAAGF,OAAAA;AAE3B,QAAA,MAAMG,YAAe,GAAA,IAAI,CAACC,kBAAkB,CAACF,MAAAA,CAAAA;QAE7CN,KACE,CAAA,wDAAA,EACAS,OAAOC,IAAI,CAACH,cAAcI,MAAM,EAChCL,OAAOK,MAAM,CAAA;QAGf,KAAK,MAAM,CAACC,IAAMN,EAAAA,MAAAA,CAAO,IAAIG,MAAOI,CAAAA,OAAO,CAACN,YAAe,CAAA,CAAA;AACzD,YAAA,MAAMO,WAAc,GAAA,IAAI,CAACC,WAAW,CAACH,IAAAA,CAAAA;YAErCZ,KACE,CAAA,qCAAA,EACAc,WACAR,EAAAA,MAAAA,CAAOU,GAAG,CAAC,CAACC,KAAAA,GAAUA,KAAMC,CAAAA,MAAM,CAAEC,CAAAA,IAAI,CAAC,IAAA,CAAA,CAAA;AAG3C,YAAA,MAAMC,eAAkB,GAAA,IAAI,CAACC,sBAAsB,CAACjB,OAAAA,CAAAA;AAEpD,YAAA,KAAK,MAAMkB,SAAAA,IAAa,IAAI,CAACC,WAAW,CAAE;AACxCvB,gBAAAA,KAAAA,CAAM,0BAA4BsB,EAAAA,SAAAA,CAAU,WAAW,CAACE,IAAI,CAAA;gBAE5DF,SAAUnB,CAAAA,QAAQ,CAACiB,eAAAA,EAAiBR,IAAMN,EAAAA,MAAAA,CAAAA;AAC5C;AAEAD,YAAAA,MAAAA,CAAOoB,IAAI,CAACX,WAAAA,CAAY,GAAGM,eAAgBf,CAAAA,MAAM,CAACoB,IAAI;AACxD;AACF;AAEQJ,IAAAA,sBAAAA,CAAuBjB,OAAoB,EAAmB;AACpE,QAAA,MAAMsB,SAAiD,GAAA;AACrDC,YAAAA,MAAAA,EAAQvB,QAAQuB,MAAM;AACtBC,YAAAA,UAAAA,EAAYxB,QAAQwB,UAAU;AAC9BtB,YAAAA,MAAAA,EAAQF,QAAQE,MAAM;AACtBuB,YAAAA,KAAAA,EAAOzB,QAAQyB;AACjB,SAAA;AAEA,QAAA,OAAO,IAAI,CAACC,eAAe,CAACC,MAAM,CAACL,SAAAA,CAAAA;AACrC;AAEQX,IAAAA,WAAAA,CAAYH,IAAY,EAAU;QACxC,OAAOA,IAAAA,CAAKoB,OAAO,CAAC,WAAa,EAAA,MAAA,CAAA;AACnC;AAEQxB,IAAAA,kBAAAA,CAAmBF,MAAoB,EAAgC;AAC7E,QAAA,OAAOA,MAAO2B,CAAAA,MAAM,CAA+B,CAACC,GAAKjB,EAAAA,KAAAA,GAAAA;YACvD,MAAM,EAAEL,IAAI,EAAE,GAAGK,KAAAA;AAEjB,YAAA,IAAI,CAACkB,KAAMC,CAAAA,OAAO,CAACF,GAAG,CAACtB,KAAK,CAAG,EAAA;gBAC7BsB,GAAG,CAACtB,IAAK,CAAA,GAAG,EAAE;AAChB;AAEAsB,YAAAA,GAAG,CAACtB,IAAAA,CAAK,CAACyB,IAAI,CAACpB,KAAAA,CAAAA;YAEf,OAAOiB,GAAAA;AACT,SAAA,EAAG,EAAC,CAAA;AACN;IAhEA,WAAYI,CAAAA,UAAgC,EAAEC,cAAsC,CAAE;QACpF,IAAI,CAAChB,WAAW,GAAGe,UAAAA;QACnB,IAAI,CAACR,eAAe,GAAGS,cAAAA;AACzB;AA8DF;;;;"}
@@ -1,6 +1,6 @@
1
1
  import { createDebugger } from '../../../../utils/debug.mjs';
2
2
  import 'node:crypto';
3
- import 'zod';
3
+ import 'zod/v4';
4
4
 
5
5
  const debug = createDebugger('assembler:path-item');
6
6
  class PathItemAssembler {
@@ -1 +1 @@
1
- {"version":3,"file":"path-item.mjs","sources":["../../../../../src/assemblers/document/path/path-item/path-item.ts"],"sourcesContent":["import type { Core } from '@strapi/types';\nimport { type PartialContext, PathItemContextFactory } from '../../../../context';\n\nimport type { PathContext, PathItemContext, PathItemContextData } from '../../../../types';\n\nimport { createDebugger } from '../../../../utils';\n\nimport type { Assembler } from '../../..';\n\nconst debug = createDebugger('assembler:path-item');\n\nexport class PathItemAssembler implements Assembler.Path {\n private readonly _assemblers: Assembler.PathItem[];\n\n private readonly _contextFactory: PathItemContextFactory;\n\n constructor(assemblers: Assembler.PathItem[], contextFactory: PathItemContextFactory) {\n this._assemblers = assemblers;\n this._contextFactory = contextFactory;\n }\n\n assemble(context: PathContext): void {\n const { output, routes } = context;\n\n const routesByPath = this._groupRoutesByPath(routes);\n\n debug(\n 'grouping routes by path, found %O groups for %O routes',\n Object.keys(routesByPath).length,\n routes.length\n );\n\n for (const [path, routes] of Object.entries(routesByPath)) {\n const openAPIPath = this._formatPath(path);\n\n debug(\n 'assembling path item for %o (%o)...',\n openAPIPath,\n routes.map((route) => route.method).join(', ')\n );\n\n const pathItemContext = this._createPathItemContext(context);\n\n for (const assembler of this._assemblers) {\n debug('running assembler: %s...', assembler.constructor.name);\n\n assembler.assemble(pathItemContext, path, routes);\n }\n\n output.data[openAPIPath] = pathItemContext.output.data;\n }\n }\n\n private _createPathItemContext(context: PathContext): PathItemContext {\n const initProps: PartialContext<PathItemContextData> = {\n strapi: context.strapi,\n registries: context.registries,\n routes: context.routes,\n timer: context.timer,\n };\n\n return this._contextFactory.create(initProps);\n }\n\n private _formatPath(path: string): string {\n return path.replace(/:([^/]+)/g, '{$1}');\n }\n\n private _groupRoutesByPath(routes: Core.Route[]): Record<string, Core.Route[]> {\n return routes.reduce<Record<string, Core.Route[]>>((acc, route) => {\n const { path } = route;\n\n if (!Array.isArray(acc[path])) {\n acc[path] = [];\n }\n\n acc[path].push(route);\n\n return acc;\n }, {});\n }\n}\n"],"names":["debug","createDebugger","PathItemAssembler","assemble","context","output","routes","routesByPath","_groupRoutesByPath","Object","keys","length","path","entries","openAPIPath","_formatPath","map","route","method","join","pathItemContext","_createPathItemContext","assembler","_assemblers","constructor","name","data","initProps","strapi","registries","timer","_contextFactory","create","replace","reduce","acc","Array","isArray","push","assemblers","contextFactory"],"mappings":";;;;AASA,MAAMA,QAAQC,cAAe,CAAA,qBAAA,CAAA;AAEtB,MAAMC,iBAAAA,CAAAA;AAUXC,IAAAA,QAAAA,CAASC,OAAoB,EAAQ;AACnC,QAAA,MAAM,EAAEC,MAAM,EAAEC,MAAM,EAAE,GAAGF,OAAAA;AAE3B,QAAA,MAAMG,YAAe,GAAA,IAAI,CAACC,kBAAkB,CAACF,MAAAA,CAAAA;QAE7CN,KACE,CAAA,wDAAA,EACAS,OAAOC,IAAI,CAACH,cAAcI,MAAM,EAChCL,OAAOK,MAAM,CAAA;QAGf,KAAK,MAAM,CAACC,IAAMN,EAAAA,MAAAA,CAAO,IAAIG,MAAOI,CAAAA,OAAO,CAACN,YAAe,CAAA,CAAA;AACzD,YAAA,MAAMO,WAAc,GAAA,IAAI,CAACC,WAAW,CAACH,IAAAA,CAAAA;YAErCZ,KACE,CAAA,qCAAA,EACAc,WACAR,EAAAA,MAAAA,CAAOU,GAAG,CAAC,CAACC,KAAAA,GAAUA,KAAMC,CAAAA,MAAM,CAAEC,CAAAA,IAAI,CAAC,IAAA,CAAA,CAAA;AAG3C,YAAA,MAAMC,eAAkB,GAAA,IAAI,CAACC,sBAAsB,CAACjB,OAAAA,CAAAA;AAEpD,YAAA,KAAK,MAAMkB,SAAAA,IAAa,IAAI,CAACC,WAAW,CAAE;AACxCvB,gBAAAA,KAAAA,CAAM,0BAA4BsB,EAAAA,SAAAA,CAAUE,WAAW,CAACC,IAAI,CAAA;gBAE5DH,SAAUnB,CAAAA,QAAQ,CAACiB,eAAAA,EAAiBR,IAAMN,EAAAA,MAAAA,CAAAA;AAC5C;AAEAD,YAAAA,MAAAA,CAAOqB,IAAI,CAACZ,WAAAA,CAAY,GAAGM,eAAgBf,CAAAA,MAAM,CAACqB,IAAI;AACxD;AACF;AAEQL,IAAAA,sBAAAA,CAAuBjB,OAAoB,EAAmB;AACpE,QAAA,MAAMuB,SAAiD,GAAA;AACrDC,YAAAA,MAAAA,EAAQxB,QAAQwB,MAAM;AACtBC,YAAAA,UAAAA,EAAYzB,QAAQyB,UAAU;AAC9BvB,YAAAA,MAAAA,EAAQF,QAAQE,MAAM;AACtBwB,YAAAA,KAAAA,EAAO1B,QAAQ0B;AACjB,SAAA;AAEA,QAAA,OAAO,IAAI,CAACC,eAAe,CAACC,MAAM,CAACL,SAAAA,CAAAA;AACrC;AAEQZ,IAAAA,WAAAA,CAAYH,IAAY,EAAU;QACxC,OAAOA,IAAAA,CAAKqB,OAAO,CAAC,WAAa,EAAA,MAAA,CAAA;AACnC;AAEQzB,IAAAA,kBAAAA,CAAmBF,MAAoB,EAAgC;AAC7E,QAAA,OAAOA,MAAO4B,CAAAA,MAAM,CAA+B,CAACC,GAAKlB,EAAAA,KAAAA,GAAAA;YACvD,MAAM,EAAEL,IAAI,EAAE,GAAGK,KAAAA;AAEjB,YAAA,IAAI,CAACmB,KAAMC,CAAAA,OAAO,CAACF,GAAG,CAACvB,KAAK,CAAG,EAAA;gBAC7BuB,GAAG,CAACvB,IAAK,CAAA,GAAG,EAAE;AAChB;AAEAuB,YAAAA,GAAG,CAACvB,IAAAA,CAAK,CAAC0B,IAAI,CAACrB,KAAAA,CAAAA;YAEf,OAAOkB,GAAAA;AACT,SAAA,EAAG,EAAC,CAAA;AACN;IAhEAX,WAAYe,CAAAA,UAAgC,EAAEC,cAAsC,CAAE;QACpF,IAAI,CAACjB,WAAW,GAAGgB,UAAAA;QACnB,IAAI,CAACR,eAAe,GAAGS,cAAAA;AACzB;AA8DF;;;;"}
1
+ {"version":3,"file":"path-item.mjs","sources":["../../../../../src/assemblers/document/path/path-item/path-item.ts"],"sourcesContent":["import type { Core } from '@strapi/types';\nimport { type PartialContext, PathItemContextFactory } from '../../../../context';\n\nimport type { PathContext, PathItemContext, PathItemContextData } from '../../../../types';\n\nimport { createDebugger } from '../../../../utils';\n\nimport type { Assembler } from '../../..';\n\nconst debug = createDebugger('assembler:path-item');\n\nexport class PathItemAssembler implements Assembler.Path {\n private readonly _assemblers: Assembler.PathItem[];\n\n private readonly _contextFactory: PathItemContextFactory;\n\n constructor(assemblers: Assembler.PathItem[], contextFactory: PathItemContextFactory) {\n this._assemblers = assemblers;\n this._contextFactory = contextFactory;\n }\n\n assemble(context: PathContext): void {\n const { output, routes } = context;\n\n const routesByPath = this._groupRoutesByPath(routes);\n\n debug(\n 'grouping routes by path, found %O groups for %O routes',\n Object.keys(routesByPath).length,\n routes.length\n );\n\n for (const [path, routes] of Object.entries(routesByPath)) {\n const openAPIPath = this._formatPath(path);\n\n debug(\n 'assembling path item for %o (%o)...',\n openAPIPath,\n routes.map((route) => route.method).join(', ')\n );\n\n const pathItemContext = this._createPathItemContext(context);\n\n for (const assembler of this._assemblers) {\n debug('running assembler: %s...', assembler.constructor.name);\n\n assembler.assemble(pathItemContext, path, routes);\n }\n\n output.data[openAPIPath] = pathItemContext.output.data;\n }\n }\n\n private _createPathItemContext(context: PathContext): PathItemContext {\n const initProps: PartialContext<PathItemContextData> = {\n strapi: context.strapi,\n registries: context.registries,\n routes: context.routes,\n timer: context.timer,\n };\n\n return this._contextFactory.create(initProps);\n }\n\n private _formatPath(path: string): string {\n return path.replace(/:([^/]+)/g, '{$1}');\n }\n\n private _groupRoutesByPath(routes: Core.Route[]): Record<string, Core.Route[]> {\n return routes.reduce<Record<string, Core.Route[]>>((acc, route) => {\n const { path } = route;\n\n if (!Array.isArray(acc[path])) {\n acc[path] = [];\n }\n\n acc[path].push(route);\n\n return acc;\n }, {});\n }\n}\n"],"names":["debug","createDebugger","PathItemAssembler","assemble","context","output","routes","routesByPath","_groupRoutesByPath","Object","keys","length","path","entries","openAPIPath","_formatPath","map","route","method","join","pathItemContext","_createPathItemContext","assembler","_assemblers","name","data","initProps","strapi","registries","timer","_contextFactory","create","replace","reduce","acc","Array","isArray","push","assemblers","contextFactory"],"mappings":";;;;AASA,MAAMA,QAAQC,cAAe,CAAA,qBAAA,CAAA;AAEtB,MAAMC,iBAAAA,CAAAA;AAUXC,IAAAA,QAAAA,CAASC,OAAoB,EAAQ;AACnC,QAAA,MAAM,EAAEC,MAAM,EAAEC,MAAM,EAAE,GAAGF,OAAAA;AAE3B,QAAA,MAAMG,YAAe,GAAA,IAAI,CAACC,kBAAkB,CAACF,MAAAA,CAAAA;QAE7CN,KACE,CAAA,wDAAA,EACAS,OAAOC,IAAI,CAACH,cAAcI,MAAM,EAChCL,OAAOK,MAAM,CAAA;QAGf,KAAK,MAAM,CAACC,IAAMN,EAAAA,MAAAA,CAAO,IAAIG,MAAOI,CAAAA,OAAO,CAACN,YAAe,CAAA,CAAA;AACzD,YAAA,MAAMO,WAAc,GAAA,IAAI,CAACC,WAAW,CAACH,IAAAA,CAAAA;YAErCZ,KACE,CAAA,qCAAA,EACAc,WACAR,EAAAA,MAAAA,CAAOU,GAAG,CAAC,CAACC,KAAAA,GAAUA,KAAMC,CAAAA,MAAM,CAAEC,CAAAA,IAAI,CAAC,IAAA,CAAA,CAAA;AAG3C,YAAA,MAAMC,eAAkB,GAAA,IAAI,CAACC,sBAAsB,CAACjB,OAAAA,CAAAA;AAEpD,YAAA,KAAK,MAAMkB,SAAAA,IAAa,IAAI,CAACC,WAAW,CAAE;AACxCvB,gBAAAA,KAAAA,CAAM,0BAA4BsB,EAAAA,SAAAA,CAAU,WAAW,CAACE,IAAI,CAAA;gBAE5DF,SAAUnB,CAAAA,QAAQ,CAACiB,eAAAA,EAAiBR,IAAMN,EAAAA,MAAAA,CAAAA;AAC5C;AAEAD,YAAAA,MAAAA,CAAOoB,IAAI,CAACX,WAAAA,CAAY,GAAGM,eAAgBf,CAAAA,MAAM,CAACoB,IAAI;AACxD;AACF;AAEQJ,IAAAA,sBAAAA,CAAuBjB,OAAoB,EAAmB;AACpE,QAAA,MAAMsB,SAAiD,GAAA;AACrDC,YAAAA,MAAAA,EAAQvB,QAAQuB,MAAM;AACtBC,YAAAA,UAAAA,EAAYxB,QAAQwB,UAAU;AAC9BtB,YAAAA,MAAAA,EAAQF,QAAQE,MAAM;AACtBuB,YAAAA,KAAAA,EAAOzB,QAAQyB;AACjB,SAAA;AAEA,QAAA,OAAO,IAAI,CAACC,eAAe,CAACC,MAAM,CAACL,SAAAA,CAAAA;AACrC;AAEQX,IAAAA,WAAAA,CAAYH,IAAY,EAAU;QACxC,OAAOA,IAAAA,CAAKoB,OAAO,CAAC,WAAa,EAAA,MAAA,CAAA;AACnC;AAEQxB,IAAAA,kBAAAA,CAAmBF,MAAoB,EAAgC;AAC7E,QAAA,OAAOA,MAAO2B,CAAAA,MAAM,CAA+B,CAACC,GAAKjB,EAAAA,KAAAA,GAAAA;YACvD,MAAM,EAAEL,IAAI,EAAE,GAAGK,KAAAA;AAEjB,YAAA,IAAI,CAACkB,KAAMC,CAAAA,OAAO,CAACF,GAAG,CAACtB,KAAK,CAAG,EAAA;gBAC7BsB,GAAG,CAACtB,IAAK,CAAA,GAAG,EAAE;AAChB;AAEAsB,YAAAA,GAAG,CAACtB,IAAAA,CAAK,CAACyB,IAAI,CAACpB,KAAAA,CAAAA;YAEf,OAAOiB,GAAAA;AACT,SAAA,EAAG,EAAC,CAAA;AACN;IAhEA,WAAYI,CAAAA,UAAgC,EAAEC,cAAsC,CAAE;QACpF,IAAI,CAAChB,WAAW,GAAGe,UAAAA;QACnB,IAAI,CAACR,eAAe,GAAGS,cAAAA;AACzB;AA8DF;;;;"}