@strapi/content-type-builder 5.53.0 → 5.55.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (208) hide show
  1. package/dist/admin/components/AIChat/hooks/useAIFetch.js +6 -2
  2. package/dist/admin/components/AIChat/hooks/useAIFetch.js.map +1 -1
  3. package/dist/admin/components/AIChat/hooks/useAIFetch.mjs +7 -3
  4. package/dist/admin/components/AIChat/hooks/useAIFetch.mjs.map +1 -1
  5. package/dist/admin/components/AIChat/hooks/usePrefetchAIToken.js +20 -0
  6. package/dist/admin/components/AIChat/hooks/usePrefetchAIToken.js.map +1 -0
  7. package/dist/admin/components/AIChat/hooks/usePrefetchAIToken.mjs +18 -0
  8. package/dist/admin/components/AIChat/hooks/usePrefetchAIToken.mjs.map +1 -0
  9. package/dist/admin/components/ContentTypeBuilderNav/ContentTypeBuilderNav.js +83 -59
  10. package/dist/admin/components/ContentTypeBuilderNav/ContentTypeBuilderNav.js.map +1 -1
  11. package/dist/admin/components/ContentTypeBuilderNav/ContentTypeBuilderNav.mjs +86 -62
  12. package/dist/admin/components/ContentTypeBuilderNav/ContentTypeBuilderNav.mjs.map +1 -1
  13. package/dist/admin/components/ContentTypeBuilderNav/components/FolderNav/DeleteFolderDialog.js +112 -0
  14. package/dist/admin/components/ContentTypeBuilderNav/components/FolderNav/DeleteFolderDialog.js.map +1 -0
  15. package/dist/admin/components/ContentTypeBuilderNav/components/FolderNav/DeleteFolderDialog.mjs +110 -0
  16. package/dist/admin/components/ContentTypeBuilderNav/components/FolderNav/DeleteFolderDialog.mjs.map +1 -0
  17. package/dist/admin/components/ContentTypeBuilderNav/components/FolderNav/FolderNameField.js +159 -0
  18. package/dist/admin/components/ContentTypeBuilderNav/components/FolderNav/FolderNameField.js.map +1 -0
  19. package/dist/admin/components/ContentTypeBuilderNav/components/FolderNav/FolderNameField.mjs +157 -0
  20. package/dist/admin/components/ContentTypeBuilderNav/components/FolderNav/FolderNameField.mjs.map +1 -0
  21. package/dist/admin/components/ContentTypeBuilderNav/components/FolderNav/FolderNavSection.js +311 -0
  22. package/dist/admin/components/ContentTypeBuilderNav/components/FolderNav/FolderNavSection.js.map +1 -0
  23. package/dist/admin/components/ContentTypeBuilderNav/components/FolderNav/FolderNavSection.mjs +309 -0
  24. package/dist/admin/components/ContentTypeBuilderNav/components/FolderNav/FolderNavSection.mjs.map +1 -0
  25. package/dist/admin/components/ContentTypeBuilderNav/components/FolderNav/SortableTreeRow.js +379 -0
  26. package/dist/admin/components/ContentTypeBuilderNav/components/FolderNav/SortableTreeRow.js.map +1 -0
  27. package/dist/admin/components/ContentTypeBuilderNav/components/FolderNav/SortableTreeRow.mjs +376 -0
  28. package/dist/admin/components/ContentTypeBuilderNav/components/FolderNav/SortableTreeRow.mjs.map +1 -0
  29. package/dist/admin/components/ContentTypeBuilderNav/hooks/useContentTypeBuilderMenu.js +172 -0
  30. package/dist/admin/components/ContentTypeBuilderNav/hooks/useContentTypeBuilderMenu.js.map +1 -0
  31. package/dist/admin/components/ContentTypeBuilderNav/hooks/useContentTypeBuilderMenu.mjs +166 -0
  32. package/dist/admin/components/ContentTypeBuilderNav/hooks/useContentTypeBuilderMenu.mjs.map +1 -0
  33. package/dist/admin/components/ContentTypeBuilderNav/hooks/useFolderActions.js +62 -0
  34. package/dist/admin/components/ContentTypeBuilderNav/hooks/useFolderActions.js.map +1 -0
  35. package/dist/admin/components/ContentTypeBuilderNav/hooks/useFolderActions.mjs +60 -0
  36. package/dist/admin/components/ContentTypeBuilderNav/hooks/useFolderActions.mjs.map +1 -0
  37. package/dist/admin/components/ContentTypeBuilderNav/hooks/useSortableTree.js +145 -0
  38. package/dist/admin/components/ContentTypeBuilderNav/hooks/useSortableTree.js.map +1 -0
  39. package/dist/admin/components/ContentTypeBuilderNav/hooks/useSortableTree.mjs +143 -0
  40. package/dist/admin/components/ContentTypeBuilderNav/hooks/useSortableTree.mjs.map +1 -0
  41. package/dist/admin/components/ContentTypeBuilderNav/lib/buildFolderTree.js +176 -0
  42. package/dist/admin/components/ContentTypeBuilderNav/lib/buildFolderTree.js.map +1 -0
  43. package/dist/admin/components/ContentTypeBuilderNav/lib/buildFolderTree.mjs +169 -0
  44. package/dist/admin/components/ContentTypeBuilderNav/lib/buildFolderTree.mjs.map +1 -0
  45. package/dist/admin/components/ContentTypeBuilderNav/lib/dropProjection.js +277 -0
  46. package/dist/admin/components/ContentTypeBuilderNav/lib/dropProjection.js.map +1 -0
  47. package/dist/admin/components/ContentTypeBuilderNav/lib/dropProjection.mjs +273 -0
  48. package/dist/admin/components/ContentTypeBuilderNav/lib/dropProjection.mjs.map +1 -0
  49. package/dist/admin/components/ContentTypeBuilderNav/lib/flatModel.js +62 -0
  50. package/dist/admin/components/ContentTypeBuilderNav/lib/flatModel.js.map +1 -0
  51. package/dist/admin/components/ContentTypeBuilderNav/lib/flatModel.mjs +58 -0
  52. package/dist/admin/components/ContentTypeBuilderNav/lib/flatModel.mjs.map +1 -0
  53. package/dist/admin/components/DataManager/DataManagerContext.js.map +1 -1
  54. package/dist/admin/components/DataManager/DataManagerContext.mjs.map +1 -1
  55. package/dist/admin/components/DataManager/DataManagerProvider.js +70 -8
  56. package/dist/admin/components/DataManager/DataManagerProvider.js.map +1 -1
  57. package/dist/admin/components/DataManager/DataManagerProvider.mjs +70 -8
  58. package/dist/admin/components/DataManager/DataManagerProvider.mjs.map +1 -1
  59. package/dist/admin/components/DataManager/reducer.js +411 -33
  60. package/dist/admin/components/DataManager/reducer.js.map +1 -1
  61. package/dist/admin/components/DataManager/reducer.mjs +411 -33
  62. package/dist/admin/components/DataManager/reducer.mjs.map +1 -1
  63. package/dist/admin/components/DataManager/utils/cleanData.js +11 -2
  64. package/dist/admin/components/DataManager/utils/cleanData.js.map +1 -1
  65. package/dist/admin/components/DataManager/utils/cleanData.mjs +11 -2
  66. package/dist/admin/components/DataManager/utils/cleanData.mjs.map +1 -1
  67. package/dist/admin/components/DataManager/utils/contentStructure.js +150 -0
  68. package/dist/admin/components/DataManager/utils/contentStructure.js.map +1 -0
  69. package/dist/admin/components/DataManager/utils/contentStructure.mjs +133 -0
  70. package/dist/admin/components/DataManager/utils/contentStructure.mjs.map +1 -0
  71. package/dist/admin/components/FolderSelect.js +200 -0
  72. package/dist/admin/components/FolderSelect.js.map +1 -0
  73. package/dist/admin/components/FolderSelect.mjs +198 -0
  74. package/dist/admin/components/FolderSelect.mjs.map +1 -0
  75. package/dist/admin/components/FormModal/FormModal.js +23 -2
  76. package/dist/admin/components/FormModal/FormModal.js.map +1 -1
  77. package/dist/admin/components/FormModal/FormModal.mjs +23 -2
  78. package/dist/admin/components/FormModal/FormModal.mjs.map +1 -1
  79. package/dist/admin/components/FormModal/contentType/contentTypeForm.js +15 -18
  80. package/dist/admin/components/FormModal/contentType/contentTypeForm.js.map +1 -1
  81. package/dist/admin/components/FormModal/contentType/contentTypeForm.mjs +15 -18
  82. package/dist/admin/components/FormModal/contentType/contentTypeForm.mjs.map +1 -1
  83. package/dist/admin/components/FormModal/reducer.js +6 -0
  84. package/dist/admin/components/FormModal/reducer.js.map +1 -1
  85. package/dist/admin/components/FormModal/reducer.mjs +6 -0
  86. package/dist/admin/components/FormModal/reducer.mjs.map +1 -1
  87. package/dist/admin/pages/App/index.js +2 -5
  88. package/dist/admin/pages/App/index.js.map +1 -1
  89. package/dist/admin/pages/App/index.mjs +2 -5
  90. package/dist/admin/pages/App/index.mjs.map +1 -1
  91. package/dist/admin/src/components/AIChat/hooks/usePrefetchAIToken.d.ts +1 -0
  92. package/dist/admin/src/components/ContentTypeBuilderNav/components/FolderNav/DeleteFolderDialog.d.ts +16 -0
  93. package/dist/admin/src/components/ContentTypeBuilderNav/components/FolderNav/FolderNameField.d.ts +12 -0
  94. package/dist/admin/src/components/ContentTypeBuilderNav/components/FolderNav/FolderNavSection.d.ts +14 -0
  95. package/dist/admin/src/components/ContentTypeBuilderNav/components/FolderNav/SortableTreeRow.d.ts +38 -0
  96. package/dist/admin/src/components/ContentTypeBuilderNav/{useContentTypeBuilderMenu.d.ts → hooks/useContentTypeBuilderMenu.d.ts} +17 -7
  97. package/dist/admin/src/components/ContentTypeBuilderNav/hooks/useFolderActions.d.ts +42 -0
  98. package/dist/admin/src/components/ContentTypeBuilderNav/hooks/useSortableTree.d.ts +53 -0
  99. package/dist/admin/src/components/ContentTypeBuilderNav/lib/buildFolderTree.d.ts +42 -0
  100. package/dist/admin/src/components/ContentTypeBuilderNav/lib/dropProjection.d.ts +58 -0
  101. package/dist/admin/src/components/ContentTypeBuilderNav/lib/flatModel.d.ts +18 -0
  102. package/dist/admin/src/components/DataManager/DataManagerContext.d.ts +41 -0
  103. package/dist/admin/src/components/DataManager/reducer.d.ts +105 -1
  104. package/dist/admin/src/components/DataManager/utils/cleanData.d.ts +5 -1
  105. package/dist/admin/src/components/DataManager/utils/contentStructure.d.ts +68 -0
  106. package/dist/admin/src/components/FolderSelect.d.ts +18 -0
  107. package/dist/admin/src/components/FormModal/contentType/contentTypeForm.d.ts +0 -21
  108. package/dist/admin/src/components/FormModal/forms/forms.d.ts +0 -10
  109. package/dist/admin/src/components/FormModal/reducer.d.ts +7 -0
  110. package/dist/admin/src/utils/folderTelemetry.d.ts +5 -0
  111. package/dist/admin/translations/en.json.js +23 -0
  112. package/dist/admin/translations/en.json.js.map +1 -1
  113. package/dist/admin/translations/en.json.mjs +23 -0
  114. package/dist/admin/translations/en.json.mjs.map +1 -1
  115. package/dist/admin/utils/folderTelemetry.js +19 -0
  116. package/dist/admin/utils/folderTelemetry.js.map +1 -0
  117. package/dist/admin/utils/folderTelemetry.mjs +16 -0
  118. package/dist/admin/utils/folderTelemetry.mjs.map +1 -0
  119. package/dist/server/controllers/schema.js +1 -1
  120. package/dist/server/controllers/schema.js.map +1 -1
  121. package/dist/server/controllers/schema.mjs +1 -1
  122. package/dist/server/controllers/schema.mjs.map +1 -1
  123. package/dist/server/controllers/validation/common.js +3 -0
  124. package/dist/server/controllers/validation/common.js.map +1 -1
  125. package/dist/server/controllers/validation/common.mjs +3 -1
  126. package/dist/server/controllers/validation/common.mjs.map +1 -1
  127. package/dist/server/controllers/validation/content-structure.js +177 -0
  128. package/dist/server/controllers/validation/content-structure.js.map +1 -0
  129. package/dist/server/controllers/validation/content-structure.mjs +173 -0
  130. package/dist/server/controllers/validation/content-structure.mjs.map +1 -0
  131. package/dist/server/controllers/validation/schema.js +3 -1
  132. package/dist/server/controllers/validation/schema.js.map +1 -1
  133. package/dist/server/controllers/validation/schema.mjs +3 -1
  134. package/dist/server/controllers/validation/schema.mjs.map +1 -1
  135. package/dist/server/register.js +1 -1
  136. package/dist/server/register.js.map +1 -1
  137. package/dist/server/register.mjs +1 -1
  138. package/dist/server/register.mjs.map +1 -1
  139. package/dist/server/routes/content-api.js +4 -4
  140. package/dist/server/routes/content-api.js.map +1 -1
  141. package/dist/server/routes/content-api.mjs +4 -4
  142. package/dist/server/routes/content-api.mjs.map +1 -1
  143. package/dist/server/services/api-handler.js +37 -4
  144. package/dist/server/services/api-handler.js.map +1 -1
  145. package/dist/server/services/api-handler.mjs +36 -5
  146. package/dist/server/services/api-handler.mjs.map +1 -1
  147. package/dist/server/services/content-structure.js +174 -0
  148. package/dist/server/services/content-structure.js.map +1 -0
  149. package/dist/server/services/content-structure.mjs +172 -0
  150. package/dist/server/services/content-structure.mjs.map +1 -0
  151. package/dist/server/services/content-types.js +196 -44
  152. package/dist/server/services/content-types.js.map +1 -1
  153. package/dist/server/services/content-types.mjs +195 -45
  154. package/dist/server/services/content-types.mjs.map +1 -1
  155. package/dist/server/services/index.js +3 -1
  156. package/dist/server/services/index.js.map +1 -1
  157. package/dist/server/services/index.mjs +3 -1
  158. package/dist/server/services/index.mjs.map +1 -1
  159. package/dist/server/services/schema-builder/index.js +4 -2
  160. package/dist/server/services/schema-builder/index.js.map +1 -1
  161. package/dist/server/services/schema-builder/index.mjs +4 -2
  162. package/dist/server/services/schema-builder/index.mjs.map +1 -1
  163. package/dist/server/services/schema-builder/schema-handler.js +19 -17
  164. package/dist/server/services/schema-builder/schema-handler.js.map +1 -1
  165. package/dist/server/services/schema-builder/schema-handler.mjs +19 -17
  166. package/dist/server/services/schema-builder/schema-handler.mjs.map +1 -1
  167. package/dist/server/services/schema-mutation.js +46 -0
  168. package/dist/server/services/schema-mutation.js.map +1 -0
  169. package/dist/server/services/schema-mutation.mjs +43 -0
  170. package/dist/server/services/schema-mutation.mjs.map +1 -0
  171. package/dist/server/services/schema.js +134 -79
  172. package/dist/server/services/schema.js.map +1 -1
  173. package/dist/server/services/schema.mjs +135 -80
  174. package/dist/server/services/schema.mjs.map +1 -1
  175. package/dist/server/src/controllers/schema.d.ts.map +1 -1
  176. package/dist/server/src/controllers/validation/common.d.ts +1 -0
  177. package/dist/server/src/controllers/validation/common.d.ts.map +1 -1
  178. package/dist/server/src/controllers/validation/content-structure.d.ts +56 -0
  179. package/dist/server/src/controllers/validation/content-structure.d.ts.map +1 -0
  180. package/dist/server/src/controllers/validation/schema.d.ts +35 -0
  181. package/dist/server/src/controllers/validation/schema.d.ts.map +1 -1
  182. package/dist/server/src/index.d.ts +3 -0
  183. package/dist/server/src/index.d.ts.map +1 -1
  184. package/dist/server/src/routes/content-api.d.ts.map +1 -1
  185. package/dist/server/src/services/api-handler.d.ts +13 -1
  186. package/dist/server/src/services/api-handler.d.ts.map +1 -1
  187. package/dist/server/src/services/content-structure.d.ts +37 -0
  188. package/dist/server/src/services/content-structure.d.ts.map +1 -0
  189. package/dist/server/src/services/content-types.d.ts +4 -0
  190. package/dist/server/src/services/content-types.d.ts.map +1 -1
  191. package/dist/server/src/services/index.d.ts +4 -0
  192. package/dist/server/src/services/index.d.ts.map +1 -1
  193. package/dist/server/src/services/schema-builder/index.d.ts +3 -1
  194. package/dist/server/src/services/schema-builder/index.d.ts.map +1 -1
  195. package/dist/server/src/services/schema-builder/schema-handler.d.ts.map +1 -1
  196. package/dist/server/src/services/schema-mutation.d.ts +26 -0
  197. package/dist/server/src/services/schema-mutation.d.ts.map +1 -0
  198. package/dist/server/src/services/schema.d.ts +1 -0
  199. package/dist/server/src/services/schema.d.ts.map +1 -1
  200. package/dist/server/src/utils/index.d.ts +2 -0
  201. package/dist/server/src/utils/index.d.ts.map +1 -1
  202. package/dist/server/utils/index.js.map +1 -1
  203. package/dist/server/utils/index.mjs.map +1 -1
  204. package/package.json +8 -8
  205. package/dist/admin/components/ContentTypeBuilderNav/useContentTypeBuilderMenu.js +0 -157
  206. package/dist/admin/components/ContentTypeBuilderNav/useContentTypeBuilderMenu.js.map +0 -1
  207. package/dist/admin/components/ContentTypeBuilderNav/useContentTypeBuilderMenu.mjs +0 -151
  208. package/dist/admin/components/ContentTypeBuilderNav/useContentTypeBuilderMenu.mjs.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"schema.mjs","sources":["../../../server/src/services/schema.ts"],"sourcesContent":["import { contentTypes as contentTypesUtils } from '@strapi/utils';\nimport { mapValues } from 'lodash/fp';\n\nimport type { Schema } from '@strapi/types';\n\nimport createBuilder from './schema-builder';\nimport { getService } from '../utils';\nimport type { Schema as CTBSchema } from '../controllers/validation/schema';\nimport { getRestrictRelationsTo, isContentTypeVisible } from './content-types';\n\nconst removeEmptyDefaultsOnUpdates = (schema: CTBSchema) => {\n schema.components.forEach((component) => {\n if (component.action === 'delete') {\n return;\n }\n\n component.attributes.forEach((attribute) => {\n if (attribute.action === 'update') {\n const { properties } = attribute;\n\n if ('default' in properties && properties.default === '') {\n properties.default = undefined;\n }\n }\n });\n });\n\n schema.contentTypes.forEach((contentType) => {\n if (contentType.action === 'delete') {\n return;\n }\n\n contentType.attributes.forEach((attribute) => {\n if (attribute.action === 'update') {\n const { properties } = attribute;\n\n if ('default' in properties && properties.default === '') {\n properties.default = undefined;\n }\n }\n });\n });\n};\n\nconst removeDeletedUIDTargetFieldsOnUpdates = (schema: CTBSchema) => {\n schema.contentTypes.forEach((contentType) => {\n if (contentType.action === 'delete') {\n return;\n }\n\n contentType.attributes.forEach((attribute) => {\n if (attribute.action === 'update') {\n const { properties } = attribute;\n\n if (\n properties.type === 'uid' &&\n properties.targetField &&\n !contentType.attributes.find((attr) => attr.name === properties.targetField)\n ) {\n properties.targetField = undefined;\n }\n }\n });\n });\n};\n\nconst formatAttributes = (model: any) => {\n const { getVisibleAttributes } = contentTypesUtils;\n\n // only get attributes that can be seen in the CTB\n return getVisibleAttributes(model).map((key) => {\n return { ...formatAttribute(model.attributes[key]), name: key };\n });\n};\n\nexport const formatAttribute = (attribute: Schema.Attribute.AnyAttribute & Record<string, any>) => {\n if (attribute.type === 'relation') {\n return {\n ...attribute,\n targetAttribute: attribute.inversedBy || attribute.mappedBy || null,\n // Explicitly preserve conditions if they exist\n ...(attribute.conditions && { conditions: attribute.conditions }),\n };\n }\n\n return attribute;\n};\n\nexport const getSchema = async () => {\n const contentTypes = mapValues((contentType) => {\n const {\n uid,\n options,\n globalId,\n pluginOptions,\n kind,\n modelName,\n plugin,\n collectionName,\n info,\n modelType,\n } = contentType;\n\n return {\n uid,\n modelName,\n kind,\n globalId,\n options,\n pluginOptions,\n plugin,\n collectionName,\n info,\n modelType,\n attributes: formatAttributes(contentType),\n visible: isContentTypeVisible(contentType),\n restrictRelationsTo: getRestrictRelationsTo(contentType),\n };\n }, strapi.contentTypes);\n\n const components = mapValues((component) => {\n const { uid, globalId, modelName, collectionName, info, category, modelType } = component;\n\n return {\n uid,\n modelName,\n globalId,\n modelType,\n collectionName,\n category,\n info,\n attributes: formatAttributes(component),\n };\n }, strapi.components);\n\n return {\n contentTypes,\n components,\n };\n};\n\nexport const updateSchema = async (schema: CTBSchema) => {\n const builder = createBuilder();\n const apiHandler = getService('api-handler');\n\n const { components, contentTypes } = schema;\n\n // pre-process data\n removeEmptyDefaultsOnUpdates(schema);\n removeDeletedUIDTargetFieldsOnUpdates(schema);\n\n // we pre create empty typesk\n for (const contentType of contentTypes) {\n if (contentType.action === 'create') {\n builder.createContentType({\n ...contentType,\n attributes: {},\n });\n }\n }\n\n // we pre create empty types\n for (const component of components) {\n if (component.action === 'create') {\n builder.createComponent({\n ...component,\n attributes: {},\n });\n }\n }\n\n for (const contentType of contentTypes) {\n const { action, uid } = contentType;\n\n if (action === 'create') {\n builder.createContentTypeAttributes(\n uid,\n contentType.attributes.reduce((acc: any, attr: any) => {\n acc[attr.name] = attr.properties;\n return acc;\n }, {})\n );\n\n if (!contentType.plugin) {\n await getService('content-types').generateAPI({\n displayName: contentType!.displayName,\n singularName: contentType!.singularName,\n pluralName: contentType!.pluralName,\n kind: contentType!.kind,\n });\n }\n }\n\n if (action === 'update') {\n builder.editContentType({\n ...contentType,\n attributes: contentType.attributes.reduce((acc: any, attr: any) => {\n // NOTE: handle renaming migrations here by comparing attr name & attr.properties.name\n\n if (attr.action === 'delete') {\n return acc;\n }\n\n acc[attr.name] = attr.properties;\n return acc;\n }, {}),\n });\n }\n\n if (action === 'delete') {\n builder.deleteContentType(uid);\n await apiHandler.backup(uid);\n }\n }\n\n for (const component of components) {\n const { action, uid } = component;\n\n if (action === 'create') {\n builder.createComponentAttributes(\n uid,\n component.attributes.reduce((acc: any, attr: any) => {\n acc[attr.name] = attr.properties;\n return acc;\n }, {})\n );\n }\n\n if (action === 'update') {\n builder.editComponent({\n ...component,\n attributes: component.attributes.reduce((acc: any, attr: any) => {\n if (attr.action === 'delete') {\n return acc;\n }\n\n acc[attr.name] = attr.properties;\n return acc;\n }, {}),\n });\n }\n\n if (action === 'delete') {\n builder.deleteComponent(uid);\n }\n }\n\n // run sanity checks on the schema\n // Relations target existing types\n // Bidirectional relation have their counterpart in the schema\n // Components target existing components\n // Nested components target existing components\n // Dynamic zones target existing components\n\n const APIsToDelete = contentTypes\n .filter((ct: any) => ct.action === 'delete')\n .map((ct: any) => ct.uid);\n\n await builder.writeFiles();\n\n try {\n for (const uid of APIsToDelete) {\n await apiHandler.clear(uid);\n }\n } catch (error) {\n strapi.log.error(error);\n for (const uid of APIsToDelete) {\n await apiHandler.rollback(uid);\n }\n }\n\n for (const contentType of contentTypes) {\n if (contentType.action === 'delete') {\n strapi.eventHub.emit('content-type.delete', {\n contentType: builder.contentTypes.get(contentType.uid),\n });\n }\n\n if (contentType.action === 'update') {\n strapi.eventHub.emit('content-type.update', {\n contentType: builder.contentTypes.get(contentType.uid),\n });\n }\n\n if (contentType.action === 'create') {\n strapi.eventHub.emit('content-type.create', {\n contentType: builder.contentTypes.get(contentType.uid),\n });\n }\n }\n\n for (const component of components) {\n if (component.action === 'delete') {\n strapi.eventHub.emit('component.delete', {\n component: builder.components.get(component.uid),\n });\n }\n\n if (component.action === 'update') {\n strapi.eventHub.emit('component.update', {\n component: builder.components.get(component.uid),\n });\n }\n\n if (component.action === 'create') {\n strapi.eventHub.emit('component.create', {\n component: builder.components.get(component.uid),\n });\n }\n }\n};\n"],"names":["removeEmptyDefaultsOnUpdates","schema","components","forEach","component","action","attributes","attribute","properties","default","undefined","contentTypes","contentType","removeDeletedUIDTargetFieldsOnUpdates","type","targetField","find","attr","name","formatAttributes","model","getVisibleAttributes","contentTypesUtils","map","key","formatAttribute","targetAttribute","inversedBy","mappedBy","conditions","getSchema","mapValues","uid","options","globalId","pluginOptions","kind","modelName","plugin","collectionName","info","modelType","visible","isContentTypeVisible","restrictRelationsTo","getRestrictRelationsTo","strapi","category","updateSchema","builder","createBuilder","apiHandler","getService","createContentType","createComponent","createContentTypeAttributes","reduce","acc","generateAPI","displayName","singularName","pluralName","editContentType","deleteContentType","backup","createComponentAttributes","editComponent","deleteComponent","APIsToDelete","filter","ct","writeFiles","clear","error","log","rollback","eventHub","emit","get"],"mappings":"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"}
1
+ {"version":3,"file":"schema.mjs","sources":["../../../server/src/services/schema.ts"],"sourcesContent":["import { contentTypes as contentTypesUtils, errors } from '@strapi/utils';\nimport { mapValues } from 'lodash/fp';\n\nimport type { Schema } from '@strapi/types';\n\nimport createBuilder from './schema-builder';\nimport { finalizeSchemaMutation, rollbackSchemaMutation } from './schema-mutation';\nimport { getService } from '../utils';\nimport type { Schema as CTBSchema } from '../controllers/validation/schema';\nimport {\n assertCTBOwnedApplicationContentType,\n getRestrictRelationsTo,\n isContentTypeVisible,\n} from './content-types';\nimport type { CoreContentStructureService } from './content-structure';\n\ntype ContentTypeKind = 'collectionType' | 'singleType';\n\nconst removeEmptyDefaultsOnUpdates = (schema: CTBSchema) => {\n schema.components.forEach((component) => {\n if (component.action === 'delete') {\n return;\n }\n\n component.attributes.forEach((attribute) => {\n if (attribute.action === 'update') {\n const { properties } = attribute;\n\n if ('default' in properties && properties.default === '') {\n properties.default = undefined;\n }\n }\n });\n });\n\n schema.contentTypes.forEach((contentType) => {\n if (contentType.action === 'delete') {\n return;\n }\n\n contentType.attributes.forEach((attribute) => {\n if (attribute.action === 'update') {\n const { properties } = attribute;\n\n if ('default' in properties && properties.default === '') {\n properties.default = undefined;\n }\n }\n });\n });\n};\n\nconst removeDeletedUIDTargetFieldsOnUpdates = (schema: CTBSchema) => {\n schema.contentTypes.forEach((contentType) => {\n if (contentType.action === 'delete') {\n return;\n }\n\n contentType.attributes.forEach((attribute) => {\n if (attribute.action === 'update') {\n const { properties } = attribute;\n\n if (\n properties.type === 'uid' &&\n properties.targetField &&\n !contentType.attributes.find((attr) => attr.name === properties.targetField)\n ) {\n properties.targetField = undefined;\n }\n }\n });\n });\n};\n\nconst formatAttributes = (model: any) => {\n const { getVisibleAttributes } = contentTypesUtils;\n\n // only get attributes that can be seen in the CTB\n return getVisibleAttributes(model).map((key) => {\n return { ...formatAttribute(model.attributes[key]), name: key };\n });\n};\n\nexport const formatAttribute = (attribute: Schema.Attribute.AnyAttribute & Record<string, any>) => {\n if (attribute.type === 'relation') {\n return {\n ...attribute,\n targetAttribute: attribute.inversedBy || attribute.mappedBy || null,\n // Explicitly preserve conditions if they exist\n ...(attribute.conditions && { conditions: attribute.conditions }),\n };\n }\n\n return attribute;\n};\n\nexport const getSchema = async () => {\n const contentTypes = mapValues((contentType) => {\n const {\n uid,\n options,\n globalId,\n pluginOptions,\n kind,\n modelName,\n plugin,\n collectionName,\n info,\n modelType,\n } = contentType;\n\n return {\n uid,\n modelName,\n kind,\n globalId,\n options,\n pluginOptions,\n plugin,\n collectionName,\n info,\n modelType,\n attributes: formatAttributes(contentType),\n visible: isContentTypeVisible(contentType),\n restrictRelationsTo: getRestrictRelationsTo(contentType),\n };\n }, strapi.contentTypes);\n\n const components = mapValues((component) => {\n const { uid, globalId, modelName, collectionName, info, category, modelType } = component;\n\n return {\n uid,\n modelName,\n globalId,\n modelType,\n collectionName,\n category,\n info,\n attributes: formatAttributes(component),\n };\n }, strapi.components);\n\n const coreContentStructure: CoreContentStructureService = strapi.get('content-structure');\n const contentStructure = await coreContentStructure.getCleanedFile();\n\n return {\n contentStructure,\n contentTypes,\n components,\n };\n};\n\nexport const updateSchema = async (schema: CTBSchema) => {\n const builder = createBuilder();\n const apiHandler = getService('api-handler') as typeof import('./api-handler');\n\n const { components, contentTypes, contentStructure } = schema;\n\n // Reject protected/plugin deletes before builders, API backups, or folder reconciliation can\n // mutate anything. This is the server-side invariant for crafted update requests.\n contentTypes\n .filter((contentType) => contentType.action === 'delete')\n .forEach((contentType) => assertCTBOwnedApplicationContentType(contentType.uid));\n\n // pre-process data\n removeEmptyDefaultsOnUpdates(schema);\n removeDeletedUIDTargetFieldsOnUpdates(schema);\n\n const upsertedUids = new Map<string, ContentTypeKind>();\n const deletedUids = new Set<string>();\n const generatedApiNames: string[] = [];\n const backedUpApiUids: string[] = [];\n let schemaAlreadyRolledBack = false;\n const APIsToDelete = contentTypes\n .filter((contentType) => contentType.action === 'delete')\n .map((contentType) => contentType.uid);\n\n try {\n for (const contentType of contentTypes) {\n if (contentType.action === 'create') {\n upsertedUids.set(contentType.uid, contentType.kind ?? 'collectionType');\n } else if (contentType.action === 'update' && contentType.kind) {\n // A kind switch in the same save must override the registry's stale kind,\n // otherwise a folder assignment into the new section fails validation.\n upsertedUids.set(contentType.uid, contentType.kind);\n } else if (contentType.action === 'delete') {\n deletedUids.add(contentType.uid);\n }\n }\n\n // Validate folder references before anything is written. This will throw if invalid.\n getService('content-structure').validateFromUpdate({\n incomingStructure: contentStructure,\n upsertedUids,\n deletedUids,\n });\n\n // we pre create empty typesk\n for (const contentType of contentTypes) {\n if (contentType.action === 'create') {\n builder.createContentType({\n ...contentType,\n attributes: {},\n });\n }\n }\n\n // we pre create empty types\n for (const component of components) {\n if (component.action === 'create') {\n builder.createComponent({\n ...component,\n attributes: {},\n });\n }\n }\n\n for (const contentType of contentTypes) {\n const { action, uid } = contentType;\n\n if (action === 'create') {\n builder.createContentTypeAttributes(\n uid,\n contentType.attributes.reduce((acc: any, attr: any) => {\n acc[attr.name] = attr.properties;\n return acc;\n }, {})\n );\n\n if (!contentType.plugin) {\n // Track before generation because a generator failure can leave a partial skeleton.\n generatedApiNames.push(contentType.singularName);\n await getService('content-types').generateAPI({\n displayName: contentType!.displayName,\n singularName: contentType!.singularName,\n pluralName: contentType!.pluralName,\n kind: contentType!.kind,\n });\n }\n }\n\n if (action === 'update') {\n builder.editContentType({\n ...contentType,\n attributes: contentType.attributes.reduce((acc: any, attr: any) => {\n // NOTE: handle renaming migrations here by comparing attr name & attr.properties.name\n\n if (attr.action === 'delete') {\n return acc;\n }\n\n acc[attr.name] = attr.properties;\n return acc;\n }, {}),\n });\n }\n\n if (action === 'delete') {\n builder.deleteContentType(uid);\n await apiHandler.backup(uid);\n backedUpApiUids.push(uid);\n }\n }\n\n for (const component of components) {\n const { action, uid } = component;\n\n if (action === 'create') {\n builder.createComponentAttributes(\n uid,\n component.attributes.reduce((acc: any, attr: any) => {\n acc[attr.name] = attr.properties;\n return acc;\n }, {})\n );\n }\n\n if (action === 'update') {\n builder.editComponent({\n ...component,\n attributes: component.attributes.reduce((acc: any, attr: any) => {\n if (attr.action === 'delete') {\n return acc;\n }\n\n acc[attr.name] = attr.properties;\n return acc;\n }, {}),\n });\n }\n\n if (action === 'delete') {\n builder.deleteComponent(uid);\n }\n }\n\n // run sanity checks on the schema\n // Relations target existing types\n // Bidirectional relation have their counterpart in the schema\n // Components target existing components\n // Nested components target existing components\n // Dynamic zones target existing components\n\n const schemaFilesWritten = await builder.writeFiles();\n\n if (!schemaFilesWritten) {\n schemaAlreadyRolledBack = true;\n throw new errors.ApplicationError('Invalid schema edition');\n }\n\n for (const uid of APIsToDelete) {\n await apiHandler.clear(uid, { preserveBackup: true });\n }\n\n // Commit the single folder file last. Every preceding filesystem mutation can be restored.\n await getService('content-structure').commitFromUpdate({\n incomingStructure: contentStructure,\n deletedUids,\n });\n } catch (error) {\n await rollbackSchemaMutation({\n builder,\n apiHandler,\n backedUpApiUids,\n generatedApiNames,\n schemaAlreadyRolledBack,\n });\n\n throw error;\n }\n\n // Backup cleanup is deliberately outside the compensating boundary: at this point all\n // user-visible artifacts, including groups.json, have committed.\n for (const error of await finalizeSchemaMutation({ apiHandler, backedUpApiUids })) {\n strapi.log.error(error);\n }\n\n for (const contentType of contentTypes) {\n if (contentType.action === 'delete') {\n strapi.eventHub.emit('content-type.delete', {\n contentType: builder.contentTypes.get(contentType.uid),\n });\n }\n\n if (contentType.action === 'update') {\n strapi.eventHub.emit('content-type.update', {\n contentType: builder.contentTypes.get(contentType.uid),\n });\n }\n\n if (contentType.action === 'create') {\n strapi.eventHub.emit('content-type.create', {\n contentType: builder.contentTypes.get(contentType.uid),\n });\n }\n }\n\n for (const component of components) {\n if (component.action === 'delete') {\n strapi.eventHub.emit('component.delete', {\n component: builder.components.get(component.uid),\n });\n }\n\n if (component.action === 'update') {\n strapi.eventHub.emit('component.update', {\n component: builder.components.get(component.uid),\n });\n }\n\n if (component.action === 'create') {\n strapi.eventHub.emit('component.create', {\n component: builder.components.get(component.uid),\n });\n }\n }\n};\n"],"names":["removeEmptyDefaultsOnUpdates","schema","components","forEach","component","action","attributes","attribute","properties","default","undefined","contentTypes","contentType","removeDeletedUIDTargetFieldsOnUpdates","type","targetField","find","attr","name","formatAttributes","model","getVisibleAttributes","contentTypesUtils","map","key","formatAttribute","targetAttribute","inversedBy","mappedBy","conditions","getSchema","mapValues","uid","options","globalId","pluginOptions","kind","modelName","plugin","collectionName","info","modelType","visible","isContentTypeVisible","restrictRelationsTo","getRestrictRelationsTo","strapi","category","coreContentStructure","get","contentStructure","getCleanedFile","updateSchema","builder","createBuilder","apiHandler","getService","filter","assertCTBOwnedApplicationContentType","upsertedUids","Map","deletedUids","Set","generatedApiNames","backedUpApiUids","schemaAlreadyRolledBack","APIsToDelete","set","add","validateFromUpdate","incomingStructure","createContentType","createComponent","createContentTypeAttributes","reduce","acc","push","singularName","generateAPI","displayName","pluralName","editContentType","deleteContentType","backup","createComponentAttributes","editComponent","deleteComponent","schemaFilesWritten","writeFiles","errors","ApplicationError","clear","preserveBackup","commitFromUpdate","error","rollbackSchemaMutation","finalizeSchemaMutation","log","eventHub","emit"],"mappings":";;;;;;;AAkBA,MAAMA,+BAA+B,CAACC,MAAAA,GAAAA;AACpCA,IAAAA,MAAAA,CAAOC,UAAU,CAACC,OAAO,CAAC,CAACC,SAAAA,GAAAA;QACzB,IAAIA,SAAAA,CAAUC,MAAM,KAAK,QAAA,EAAU;AACjC,YAAA;AACF,QAAA;AAEAD,QAAAA,SAAAA,CAAUE,UAAU,CAACH,OAAO,CAAC,CAACI,SAAAA,GAAAA;YAC5B,IAAIA,SAAAA,CAAUF,MAAM,KAAK,QAAA,EAAU;gBACjC,MAAM,EAAEG,UAAU,EAAE,GAAGD,SAAAA;AAEvB,gBAAA,IAAI,SAAA,IAAaC,UAAAA,IAAcA,UAAAA,CAAWC,OAAO,KAAK,EAAA,EAAI;AACxDD,oBAAAA,UAAAA,CAAWC,OAAO,GAAGC,SAAAA;AACvB,gBAAA;AACF,YAAA;AACF,QAAA,CAAA,CAAA;AACF,IAAA,CAAA,CAAA;AAEAT,IAAAA,MAAAA,CAAOU,YAAY,CAACR,OAAO,CAAC,CAACS,WAAAA,GAAAA;QAC3B,IAAIA,WAAAA,CAAYP,MAAM,KAAK,QAAA,EAAU;AACnC,YAAA;AACF,QAAA;AAEAO,QAAAA,WAAAA,CAAYN,UAAU,CAACH,OAAO,CAAC,CAACI,SAAAA,GAAAA;YAC9B,IAAIA,SAAAA,CAAUF,MAAM,KAAK,QAAA,EAAU;gBACjC,MAAM,EAAEG,UAAU,EAAE,GAAGD,SAAAA;AAEvB,gBAAA,IAAI,SAAA,IAAaC,UAAAA,IAAcA,UAAAA,CAAWC,OAAO,KAAK,EAAA,EAAI;AACxDD,oBAAAA,UAAAA,CAAWC,OAAO,GAAGC,SAAAA;AACvB,gBAAA;AACF,YAAA;AACF,QAAA,CAAA,CAAA;AACF,IAAA,CAAA,CAAA;AACF,CAAA;AAEA,MAAMG,wCAAwC,CAACZ,MAAAA,GAAAA;AAC7CA,IAAAA,MAAAA,CAAOU,YAAY,CAACR,OAAO,CAAC,CAACS,WAAAA,GAAAA;QAC3B,IAAIA,WAAAA,CAAYP,MAAM,KAAK,QAAA,EAAU;AACnC,YAAA;AACF,QAAA;AAEAO,QAAAA,WAAAA,CAAYN,UAAU,CAACH,OAAO,CAAC,CAACI,SAAAA,GAAAA;YAC9B,IAAIA,SAAAA,CAAUF,MAAM,KAAK,QAAA,EAAU;gBACjC,MAAM,EAAEG,UAAU,EAAE,GAAGD,SAAAA;gBAEvB,IACEC,UAAAA,CAAWM,IAAI,KAAK,KAAA,IACpBN,WAAWO,WAAW,IACtB,CAACH,WAAAA,CAAYN,UAAU,CAACU,IAAI,CAAC,CAACC,IAAAA,GAASA,IAAAA,CAAKC,IAAI,KAAKV,UAAAA,CAAWO,WAAW,CAAA,EAC3E;AACAP,oBAAAA,UAAAA,CAAWO,WAAW,GAAGL,SAAAA;AAC3B,gBAAA;AACF,YAAA;AACF,QAAA,CAAA,CAAA;AACF,IAAA,CAAA,CAAA;AACF,CAAA;AAEA,MAAMS,mBAAmB,CAACC,KAAAA,GAAAA;IACxB,MAAM,EAAEC,oBAAoB,EAAE,GAAGC,YAAAA;;AAGjC,IAAA,OAAOD,oBAAAA,CAAqBD,KAAAA,CAAAA,CAAOG,GAAG,CAAC,CAACC,GAAAA,GAAAA;QACtC,OAAO;AAAE,YAAA,GAAGC,eAAAA,CAAgBL,KAAAA,CAAMd,UAAU,CAACkB,IAAI,CAAC;YAAEN,IAAAA,EAAMM;AAAI,SAAA;AAChE,IAAA,CAAA,CAAA;AACF,CAAA;AAEO,MAAMC,kBAAkB,CAAClB,SAAAA,GAAAA;IAC9B,IAAIA,SAAAA,CAAUO,IAAI,KAAK,UAAA,EAAY;QACjC,OAAO;AACL,YAAA,GAAGP,SAAS;AACZmB,YAAAA,eAAAA,EAAiBnB,SAAAA,CAAUoB,UAAU,IAAIpB,SAAAA,CAAUqB,QAAQ,IAAI,IAAA;;YAE/D,GAAIrB,SAAAA,CAAUsB,UAAU,IAAI;AAAEA,gBAAAA,UAAAA,EAAYtB,UAAUsB;;AACtD,SAAA;AACF,IAAA;IAEA,OAAOtB,SAAAA;AACT;MAEauB,SAAAA,GAAY,UAAA;IACvB,MAAMnB,YAAAA,GAAeoB,UAAU,CAACnB,WAAAA,GAAAA;QAC9B,MAAM,EACJoB,GAAG,EACHC,OAAO,EACPC,QAAQ,EACRC,aAAa,EACbC,IAAI,EACJC,SAAS,EACTC,MAAM,EACNC,cAAc,EACdC,IAAI,EACJC,SAAS,EACV,GAAG7B,WAAAA;QAEJ,OAAO;AACLoB,YAAAA,GAAAA;AACAK,YAAAA,SAAAA;AACAD,YAAAA,IAAAA;AACAF,YAAAA,QAAAA;AACAD,YAAAA,OAAAA;AACAE,YAAAA,aAAAA;AACAG,YAAAA,MAAAA;AACAC,YAAAA,cAAAA;AACAC,YAAAA,IAAAA;AACAC,YAAAA,SAAAA;AACAnC,YAAAA,UAAAA,EAAYa,gBAAAA,CAAiBP,WAAAA,CAAAA;AAC7B8B,YAAAA,OAAAA,EAASC,oBAAAA,CAAqB/B,WAAAA,CAAAA;AAC9BgC,YAAAA,mBAAAA,EAAqBC,sBAAAA,CAAuBjC,WAAAA;AAC9C,SAAA;AACF,IAAA,CAAA,EAAGkC,OAAOnC,YAAY,CAAA;IAEtB,MAAMT,UAAAA,GAAa6B,UAAU,CAAC3B,SAAAA,GAAAA;AAC5B,QAAA,MAAM,EAAE4B,GAAG,EAAEE,QAAQ,EAAEG,SAAS,EAAEE,cAAc,EAAEC,IAAI,EAAEO,QAAQ,EAAEN,SAAS,EAAE,GAAGrC,SAAAA;QAEhF,OAAO;AACL4B,YAAAA,GAAAA;AACAK,YAAAA,SAAAA;AACAH,YAAAA,QAAAA;AACAO,YAAAA,SAAAA;AACAF,YAAAA,cAAAA;AACAQ,YAAAA,QAAAA;AACAP,YAAAA,IAAAA;AACAlC,YAAAA,UAAAA,EAAYa,gBAAAA,CAAiBf,SAAAA;AAC/B,SAAA;AACF,IAAA,CAAA,EAAG0C,OAAO5C,UAAU,CAAA;IAEpB,MAAM8C,oBAAAA,GAAoDF,MAAAA,CAAOG,GAAG,CAAC,mBAAA,CAAA;IACrE,MAAMC,gBAAAA,GAAmB,MAAMF,oBAAAA,CAAqBG,cAAc,EAAA;IAElE,OAAO;AACLD,QAAAA,gBAAAA;AACAvC,QAAAA,YAAAA;AACAT,QAAAA;AACF,KAAA;AACF;AAEO,MAAMkD,eAAe,OAAOnD,MAAAA,GAAAA;AACjC,IAAA,MAAMoD,OAAAA,GAAUC,aAAAA,EAAAA;AAChB,IAAA,MAAMC,aAAaC,UAAAA,CAAW,aAAA,CAAA;AAE9B,IAAA,MAAM,EAAEtD,UAAU,EAAES,YAAY,EAAEuC,gBAAgB,EAAE,GAAGjD,MAAAA;;;AAIvDU,IAAAA,YAAAA,CACG8C,MAAM,CAAC,CAAC7C,WAAAA,GAAgBA,YAAYP,MAAM,KAAK,QAAA,CAAA,CAC/CF,OAAO,CAAC,CAACS,WAAAA,GAAgB8C,oCAAAA,CAAqC9C,YAAYoB,GAAG,CAAA,CAAA;;IAGhFhC,4BAAAA,CAA6BC,MAAAA,CAAAA;IAC7BY,qCAAAA,CAAsCZ,MAAAA,CAAAA;AAEtC,IAAA,MAAM0D,eAAe,IAAIC,GAAAA,EAAAA;AACzB,IAAA,MAAMC,cAAc,IAAIC,GAAAA,EAAAA;AACxB,IAAA,MAAMC,oBAA8B,EAAE;AACtC,IAAA,MAAMC,kBAA4B,EAAE;AACpC,IAAA,IAAIC,uBAAAA,GAA0B,KAAA;AAC9B,IAAA,MAAMC,YAAAA,GAAevD,YAAAA,CAClB8C,MAAM,CAAC,CAAC7C,WAAAA,GAAgBA,WAAAA,CAAYP,MAAM,KAAK,UAC/CkB,GAAG,CAAC,CAACX,WAAAA,GAAgBA,YAAYoB,GAAG,CAAA;IAEvC,IAAI;QACF,KAAK,MAAMpB,eAAeD,YAAAA,CAAc;YACtC,IAAIC,WAAAA,CAAYP,MAAM,KAAK,QAAA,EAAU;AACnCsD,gBAAAA,YAAAA,CAAaQ,GAAG,CAACvD,WAAAA,CAAYoB,GAAG,EAAEpB,WAAAA,CAAYwB,IAAI,IAAI,gBAAA,CAAA;AACxD,YAAA,CAAA,MAAO,IAAIxB,WAAAA,CAAYP,MAAM,KAAK,QAAA,IAAYO,WAAAA,CAAYwB,IAAI,EAAE;;;AAG9DuB,gBAAAA,YAAAA,CAAaQ,GAAG,CAACvD,WAAAA,CAAYoB,GAAG,EAAEpB,YAAYwB,IAAI,CAAA;AACpD,YAAA,CAAA,MAAO,IAAIxB,WAAAA,CAAYP,MAAM,KAAK,QAAA,EAAU;gBAC1CwD,WAAAA,CAAYO,GAAG,CAACxD,WAAAA,CAAYoB,GAAG,CAAA;AACjC,YAAA;AACF,QAAA;;QAGAwB,UAAAA,CAAW,mBAAA,CAAA,CAAqBa,kBAAkB,CAAC;YACjDC,iBAAAA,EAAmBpB,gBAAAA;AACnBS,YAAAA,YAAAA;AACAE,YAAAA;AACF,SAAA,CAAA;;QAGA,KAAK,MAAMjD,eAAeD,YAAAA,CAAc;YACtC,IAAIC,WAAAA,CAAYP,MAAM,KAAK,QAAA,EAAU;AACnCgD,gBAAAA,OAAAA,CAAQkB,iBAAiB,CAAC;AACxB,oBAAA,GAAG3D,WAAW;AACdN,oBAAAA,UAAAA,EAAY;AACd,iBAAA,CAAA;AACF,YAAA;AACF,QAAA;;QAGA,KAAK,MAAMF,aAAaF,UAAAA,CAAY;YAClC,IAAIE,SAAAA,CAAUC,MAAM,KAAK,QAAA,EAAU;AACjCgD,gBAAAA,OAAAA,CAAQmB,eAAe,CAAC;AACtB,oBAAA,GAAGpE,SAAS;AACZE,oBAAAA,UAAAA,EAAY;AACd,iBAAA,CAAA;AACF,YAAA;AACF,QAAA;QAEA,KAAK,MAAMM,eAAeD,YAAAA,CAAc;AACtC,YAAA,MAAM,EAAEN,MAAM,EAAE2B,GAAG,EAAE,GAAGpB,WAAAA;AAExB,YAAA,IAAIP,WAAW,QAAA,EAAU;gBACvBgD,OAAAA,CAAQoB,2BAA2B,CACjCzC,GAAAA,EACApB,WAAAA,CAAYN,UAAU,CAACoE,MAAM,CAAC,CAACC,GAAAA,EAAU1D,IAAAA,GAAAA;AACvC0D,oBAAAA,GAAG,CAAC1D,IAAAA,CAAKC,IAAI,CAAC,GAAGD,KAAKT,UAAU;oBAChC,OAAOmE,GAAAA;AACT,gBAAA,CAAA,EAAG,EAAC,CAAA,CAAA;gBAGN,IAAI,CAAC/D,WAAAA,CAAY0B,MAAM,EAAE;;oBAEvByB,iBAAAA,CAAkBa,IAAI,CAAChE,WAAAA,CAAYiE,YAAY,CAAA;oBAC/C,MAAMrB,UAAAA,CAAW,eAAA,CAAA,CAAiBsB,WAAW,CAAC;AAC5CC,wBAAAA,WAAAA,EAAanE,YAAamE,WAAW;AACrCF,wBAAAA,YAAAA,EAAcjE,YAAaiE,YAAY;AACvCG,wBAAAA,UAAAA,EAAYpE,YAAaoE,UAAU;AACnC5C,wBAAAA,IAAAA,EAAMxB,YAAawB;AACrB,qBAAA,CAAA;AACF,gBAAA;AACF,YAAA;AAEA,YAAA,IAAI/B,WAAW,QAAA,EAAU;AACvBgD,gBAAAA,OAAAA,CAAQ4B,eAAe,CAAC;AACtB,oBAAA,GAAGrE,WAAW;AACdN,oBAAAA,UAAAA,EAAYM,YAAYN,UAAU,CAACoE,MAAM,CAAC,CAACC,GAAAA,EAAU1D,IAAAA,GAAAA;;wBAGnD,IAAIA,IAAAA,CAAKZ,MAAM,KAAK,QAAA,EAAU;4BAC5B,OAAOsE,GAAAA;AACT,wBAAA;AAEAA,wBAAAA,GAAG,CAAC1D,IAAAA,CAAKC,IAAI,CAAC,GAAGD,KAAKT,UAAU;wBAChC,OAAOmE,GAAAA;AACT,oBAAA,CAAA,EAAG,EAAC;AACN,iBAAA,CAAA;AACF,YAAA;AAEA,YAAA,IAAItE,WAAW,QAAA,EAAU;AACvBgD,gBAAAA,OAAAA,CAAQ6B,iBAAiB,CAAClD,GAAAA,CAAAA;gBAC1B,MAAMuB,UAAAA,CAAW4B,MAAM,CAACnD,GAAAA,CAAAA;AACxBgC,gBAAAA,eAAAA,CAAgBY,IAAI,CAAC5C,GAAAA,CAAAA;AACvB,YAAA;AACF,QAAA;QAEA,KAAK,MAAM5B,aAAaF,UAAAA,CAAY;AAClC,YAAA,MAAM,EAAEG,MAAM,EAAE2B,GAAG,EAAE,GAAG5B,SAAAA;AAExB,YAAA,IAAIC,WAAW,QAAA,EAAU;gBACvBgD,OAAAA,CAAQ+B,yBAAyB,CAC/BpD,GAAAA,EACA5B,SAAAA,CAAUE,UAAU,CAACoE,MAAM,CAAC,CAACC,GAAAA,EAAU1D,IAAAA,GAAAA;AACrC0D,oBAAAA,GAAG,CAAC1D,IAAAA,CAAKC,IAAI,CAAC,GAAGD,KAAKT,UAAU;oBAChC,OAAOmE,GAAAA;AACT,gBAAA,CAAA,EAAG,EAAC,CAAA,CAAA;AAER,YAAA;AAEA,YAAA,IAAItE,WAAW,QAAA,EAAU;AACvBgD,gBAAAA,OAAAA,CAAQgC,aAAa,CAAC;AACpB,oBAAA,GAAGjF,SAAS;AACZE,oBAAAA,UAAAA,EAAYF,UAAUE,UAAU,CAACoE,MAAM,CAAC,CAACC,GAAAA,EAAU1D,IAAAA,GAAAA;wBACjD,IAAIA,IAAAA,CAAKZ,MAAM,KAAK,QAAA,EAAU;4BAC5B,OAAOsE,GAAAA;AACT,wBAAA;AAEAA,wBAAAA,GAAG,CAAC1D,IAAAA,CAAKC,IAAI,CAAC,GAAGD,KAAKT,UAAU;wBAChC,OAAOmE,GAAAA;AACT,oBAAA,CAAA,EAAG,EAAC;AACN,iBAAA,CAAA;AACF,YAAA;AAEA,YAAA,IAAItE,WAAW,QAAA,EAAU;AACvBgD,gBAAAA,OAAAA,CAAQiC,eAAe,CAACtD,GAAAA,CAAAA;AAC1B,YAAA;AACF,QAAA;;;;;;;QASA,MAAMuD,kBAAAA,GAAqB,MAAMlC,OAAAA,CAAQmC,UAAU,EAAA;AAEnD,QAAA,IAAI,CAACD,kBAAAA,EAAoB;YACvBtB,uBAAAA,GAA0B,IAAA;YAC1B,MAAM,IAAIwB,MAAAA,CAAOC,gBAAgB,CAAC,wBAAA,CAAA;AACpC,QAAA;QAEA,KAAK,MAAM1D,OAAOkC,YAAAA,CAAc;YAC9B,MAAMX,UAAAA,CAAWoC,KAAK,CAAC3D,GAAAA,EAAK;gBAAE4D,cAAAA,EAAgB;AAAK,aAAA,CAAA;AACrD,QAAA;;QAGA,MAAMpC,UAAAA,CAAW,mBAAA,CAAA,CAAqBqC,gBAAgB,CAAC;YACrDvB,iBAAAA,EAAmBpB,gBAAAA;AACnBW,YAAAA;AACF,SAAA,CAAA;AACF,IAAA,CAAA,CAAE,OAAOiC,KAAAA,EAAO;AACd,QAAA,MAAMC,sBAAAA,CAAuB;AAC3B1C,YAAAA,OAAAA;AACAE,YAAAA,UAAAA;AACAS,YAAAA,eAAAA;AACAD,YAAAA,iBAAAA;AACAE,YAAAA;AACF,SAAA,CAAA;QAEA,MAAM6B,KAAAA;AACR,IAAA;;;AAIA,IAAA,KAAK,MAAMA,KAAAA,KAAS,MAAME,sBAAAA,CAAuB;AAAEzC,QAAAA,UAAAA;AAAYS,QAAAA;AAAgB,KAAA,CAAC,EAAG;QACjFlB,MAAAA,CAAOmD,GAAG,CAACH,KAAK,CAACA,KAAAA,CAAAA;AACnB,IAAA;IAEA,KAAK,MAAMlF,eAAeD,YAAAA,CAAc;QACtC,IAAIC,WAAAA,CAAYP,MAAM,KAAK,QAAA,EAAU;AACnCyC,YAAAA,MAAAA,CAAOoD,QAAQ,CAACC,IAAI,CAAC,qBAAA,EAAuB;AAC1CvF,gBAAAA,WAAAA,EAAayC,QAAQ1C,YAAY,CAACsC,GAAG,CAACrC,YAAYoB,GAAG;AACvD,aAAA,CAAA;AACF,QAAA;QAEA,IAAIpB,WAAAA,CAAYP,MAAM,KAAK,QAAA,EAAU;AACnCyC,YAAAA,MAAAA,CAAOoD,QAAQ,CAACC,IAAI,CAAC,qBAAA,EAAuB;AAC1CvF,gBAAAA,WAAAA,EAAayC,QAAQ1C,YAAY,CAACsC,GAAG,CAACrC,YAAYoB,GAAG;AACvD,aAAA,CAAA;AACF,QAAA;QAEA,IAAIpB,WAAAA,CAAYP,MAAM,KAAK,QAAA,EAAU;AACnCyC,YAAAA,MAAAA,CAAOoD,QAAQ,CAACC,IAAI,CAAC,qBAAA,EAAuB;AAC1CvF,gBAAAA,WAAAA,EAAayC,QAAQ1C,YAAY,CAACsC,GAAG,CAACrC,YAAYoB,GAAG;AACvD,aAAA,CAAA;AACF,QAAA;AACF,IAAA;IAEA,KAAK,MAAM5B,aAAaF,UAAAA,CAAY;QAClC,IAAIE,SAAAA,CAAUC,MAAM,KAAK,QAAA,EAAU;AACjCyC,YAAAA,MAAAA,CAAOoD,QAAQ,CAACC,IAAI,CAAC,kBAAA,EAAoB;AACvC/F,gBAAAA,SAAAA,EAAWiD,QAAQnD,UAAU,CAAC+C,GAAG,CAAC7C,UAAU4B,GAAG;AACjD,aAAA,CAAA;AACF,QAAA;QAEA,IAAI5B,SAAAA,CAAUC,MAAM,KAAK,QAAA,EAAU;AACjCyC,YAAAA,MAAAA,CAAOoD,QAAQ,CAACC,IAAI,CAAC,kBAAA,EAAoB;AACvC/F,gBAAAA,SAAAA,EAAWiD,QAAQnD,UAAU,CAAC+C,GAAG,CAAC7C,UAAU4B,GAAG;AACjD,aAAA,CAAA;AACF,QAAA;QAEA,IAAI5B,SAAAA,CAAUC,MAAM,KAAK,QAAA,EAAU;AACjCyC,YAAAA,MAAAA,CAAOoD,QAAQ,CAACC,IAAI,CAAC,kBAAA,EAAoB;AACvC/F,gBAAAA,SAAAA,EAAWiD,QAAQnD,UAAU,CAAC+C,GAAG,CAAC7C,UAAU4B,GAAG;AACjD,aAAA,CAAA;AACF,QAAA;AACF,IAAA;AACF;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../../server/src/controllers/schema.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,KAAK,CAAC;;mBAYV,OAAO;sBAMJ,OAAO;+BAgCE,OAAO;;AA5C5C,wBAgDE"}
1
+ {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../../server/src/controllers/schema.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,KAAK,CAAC;;mBAYV,OAAO;sBAMJ,OAAO;+BAoCE,OAAO;;AAhD5C,wBAoDE"}
@@ -12,6 +12,7 @@ export declare const CATEGORY_NAME_REGEX: RegExp;
12
12
  export declare const ICON_REGEX: RegExp;
13
13
  export declare const UID_REGEX: RegExp;
14
14
  export declare const KEBAB_BASE_REGEX: RegExp;
15
+ export declare const CONTENT_TYPE_UID_REGEX: RegExp;
15
16
  export type CommonTestConfig = TestConfig<unknown | undefined, Record<string, unknown>>;
16
17
  export declare const isValidName: CommonTestConfig;
17
18
  export declare const isValidIcon: CommonTestConfig;
@@ -1 +1 @@
1
- {"version":3,"file":"common.d.ts","sourceRoot":"","sources":["../../../../../server/src/controllers/validation/common.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,GAAG,EAAW,MAAM,eAAe,CAAC;AAE7C,OAAO,EAAE,UAAU,EAAE,MAAM,KAAK,CAAC;AAEjC,eAAO,MAAM,UAAU;;;;;CAKtB,CAAC;AAEF,eAAO,MAAM,UAAU,QAA4B,CAAC;AACpD,eAAO,MAAM,qBAAqB,QAA6B,CAAC;AAChE,eAAO,MAAM,mBAAmB,QAA6B,CAAC;AAC9D,eAAO,MAAM,UAAU,QAA+B,CAAC;AACvD,eAAO,MAAM,SAAS,QAAuB,CAAC;AAC9C,eAAO,MAAM,gBAAgB,QAA+B,CAAC;AAE7D,MAAM,MAAM,gBAAgB,GAAG,UAAU,CAAC,OAAO,GAAG,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;AAExF,eAAO,MAAM,WAAW,EAAE,gBAIzB,CAAC;AAEF,eAAO,MAAM,WAAW,EAAE,gBAIzB,CAAC;AAEF,eAAO,MAAM,UAAU,EAAE,gBAIxB,CAAC;AAEF,eAAO,MAAM,mBAAmB,EAAE,gBAIjC,CAAC;AAEF,eAAO,MAAM,qBAAqB,EAAE,gBAInC,CAAC;AAEF,eAAO,MAAM,UAAU,GAAI,KAAK,MAAM,KAAG,gBAIvC,CAAC;AAEH,eAAO,MAAM,WAAW,EAAE,gBAIzB,CAAC;AAEF,eAAO,MAAM,mBAAmB,EAAE,gBAQjC,CAAC;AAEF,eAAO,MAAM,oBAAoB,EAAE,gBAIlC,CAAC;AAEF,eAAO,MAAM,kBAAkB,EAAE,gBAoBhC,CAAC"}
1
+ {"version":3,"file":"common.d.ts","sourceRoot":"","sources":["../../../../../server/src/controllers/validation/common.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,GAAG,EAAW,MAAM,eAAe,CAAC;AAE7C,OAAO,EAAE,UAAU,EAAE,MAAM,KAAK,CAAC;AAEjC,eAAO,MAAM,UAAU;;;;;CAKtB,CAAC;AAEF,eAAO,MAAM,UAAU,QAA4B,CAAC;AACpD,eAAO,MAAM,qBAAqB,QAA6B,CAAC;AAChE,eAAO,MAAM,mBAAmB,QAA6B,CAAC;AAC9D,eAAO,MAAM,UAAU,QAA+B,CAAC;AACvD,eAAO,MAAM,SAAS,QAAuB,CAAC;AAC9C,eAAO,MAAM,gBAAgB,QAA+B,CAAC;AAE7D,eAAO,MAAM,sBAAsB,QAA4D,CAAC;AAEhG,MAAM,MAAM,gBAAgB,GAAG,UAAU,CAAC,OAAO,GAAG,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;AAExF,eAAO,MAAM,WAAW,EAAE,gBAIzB,CAAC;AAEF,eAAO,MAAM,WAAW,EAAE,gBAIzB,CAAC;AAEF,eAAO,MAAM,UAAU,EAAE,gBAIxB,CAAC;AAEF,eAAO,MAAM,mBAAmB,EAAE,gBAIjC,CAAC;AAEF,eAAO,MAAM,qBAAqB,EAAE,gBAInC,CAAC;AAEF,eAAO,MAAM,UAAU,GAAI,KAAK,MAAM,KAAG,gBAIvC,CAAC;AAEH,eAAO,MAAM,WAAW,EAAE,gBAIzB,CAAC;AAEF,eAAO,MAAM,mBAAmB,EAAE,gBAQjC,CAAC;AAEF,eAAO,MAAM,oBAAoB,EAAE,gBAIlC,CAAC;AAEF,eAAO,MAAM,kBAAkB,EAAE,gBAoBhC,CAAC"}
@@ -0,0 +1,56 @@
1
+ import { z } from 'zod';
2
+ export declare const contentStructureChildSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
3
+ uid: z.ZodString;
4
+ type: z.ZodLiteral<"contentType">;
5
+ }, z.core.$strip>, z.ZodObject<{
6
+ type: z.ZodLiteral<"group">;
7
+ id: z.ZodString;
8
+ }, z.core.$strip>], "type">;
9
+ /** Zod schema for a group record */
10
+ export declare const contentStructureGroupSchema: z.ZodObject<{
11
+ children: z.ZodArray<z.ZodDiscriminatedUnion<[z.ZodObject<{
12
+ uid: z.ZodString;
13
+ type: z.ZodLiteral<"contentType">;
14
+ }, z.core.$strip>, z.ZodObject<{
15
+ type: z.ZodLiteral<"group">;
16
+ id: z.ZodString;
17
+ }, z.core.$strip>], "type">>;
18
+ parent: z.ZodNullable<z.ZodString>;
19
+ name: z.ZodString;
20
+ id: z.ZodString;
21
+ }, z.core.$strip>;
22
+ export declare const contentStructureFileSchema: z.ZodObject<{
23
+ version: z.ZodLiteral<1>;
24
+ sections: z.ZodObject<{
25
+ collectionTypes: z.ZodObject<{
26
+ groups: z.ZodArray<z.ZodObject<{
27
+ children: z.ZodArray<z.ZodDiscriminatedUnion<[z.ZodObject<{
28
+ uid: z.ZodString;
29
+ type: z.ZodLiteral<"contentType">;
30
+ }, z.core.$strip>, z.ZodObject<{
31
+ type: z.ZodLiteral<"group">;
32
+ id: z.ZodString;
33
+ }, z.core.$strip>], "type">>;
34
+ parent: z.ZodNullable<z.ZodString>;
35
+ name: z.ZodString;
36
+ id: z.ZodString;
37
+ }, z.core.$strip>>;
38
+ }, z.core.$strip>;
39
+ singleTypes: z.ZodObject<{
40
+ groups: z.ZodArray<z.ZodObject<{
41
+ children: z.ZodArray<z.ZodDiscriminatedUnion<[z.ZodObject<{
42
+ uid: z.ZodString;
43
+ type: z.ZodLiteral<"contentType">;
44
+ }, z.core.$strip>, z.ZodObject<{
45
+ type: z.ZodLiteral<"group">;
46
+ id: z.ZodString;
47
+ }, z.core.$strip>], "type">>;
48
+ parent: z.ZodNullable<z.ZodString>;
49
+ name: z.ZodString;
50
+ id: z.ZodString;
51
+ }, z.core.$strip>>;
52
+ }, z.core.$strip>;
53
+ }, z.core.$strip>;
54
+ }, z.core.$strip>;
55
+ export type ContentStructureFileInput = z.infer<typeof contentStructureFileSchema>;
56
+ //# sourceMappingURL=content-structure.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"content-structure.d.ts","sourceRoot":"","sources":["../../../../../server/src/controllers/validation/content-structure.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AA+BxB,eAAO,MAAM,2BAA2B;;;;;;2BAStC,CAAC;AAEH,oCAAoC;AACpC,eAAO,MAAM,2BAA2B;;;;;;;;;;;iBAKtC,CAAC;AAuLH,eAAO,MAAM,0BAA0B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAEL,CAAC;AAEnC,MAAM,MAAM,yBAAyB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,0BAA0B,CAAC,CAAC"}
@@ -1,5 +1,6 @@
1
1
  import * as z from 'zod/v4';
2
2
  import type { UID } from '@strapi/types';
3
+ import { type ContentStructureFileInput } from './content-structure';
3
4
  type SuperRefinement<T> = (value: T, ctx: z.RefinementCtx) => void | Promise<void>;
4
5
  type ContentTypeSchemaAction = {
5
6
  action: 'create' | 'update' | 'delete';
@@ -8351,6 +8352,7 @@ type DeleteContentType = z.infer<typeof deleteContentTypeSchema>;
8351
8352
  export type Schema = {
8352
8353
  components: Array<CreateComponentType | UpdateComponentType | DeleteComponentType>;
8353
8354
  contentTypes: Array<CreateSingleType | CreateCollectionType | UpdateSingleType | UpdateCollectionType | DeleteContentType>;
8355
+ contentStructure?: ContentStructureFileInput;
8354
8356
  };
8355
8357
  export declare const validateUpdateSchema: (data: unknown, errorMessage?: string) => {
8356
8358
  data: {
@@ -12085,6 +12087,39 @@ export declare const validateUpdateSchema: (data: unknown, errorMessage?: string
12085
12087
  action: "delete";
12086
12088
  uid: UID.ContentType;
12087
12089
  })[];
12090
+ contentStructure?: {
12091
+ version: 1;
12092
+ sections: {
12093
+ collectionTypes: {
12094
+ groups: {
12095
+ children: ({
12096
+ uid: string;
12097
+ type: "contentType";
12098
+ } | {
12099
+ type: "group";
12100
+ id: string;
12101
+ })[];
12102
+ parent: string | null;
12103
+ name: string;
12104
+ id: string;
12105
+ }[];
12106
+ };
12107
+ singleTypes: {
12108
+ groups: {
12109
+ children: ({
12110
+ uid: string;
12111
+ type: "contentType";
12112
+ } | {
12113
+ type: "group";
12114
+ id: string;
12115
+ })[];
12116
+ parent: string | null;
12117
+ name: string;
12118
+ id: string;
12119
+ }[];
12120
+ };
12121
+ };
12122
+ } | undefined;
12088
12123
  };
12089
12124
  };
12090
12125
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../../../server/src/controllers/validation/schema.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,QAAQ,CAAC;AAE5B,OAAO,KAAK,EAAU,GAAG,EAAE,MAAM,eAAe,CAAC;AAuBjD,KAAK,eAAe,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,aAAa,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;AAmEnF,KAAK,uBAAuB,GAAG;IAC7B,MAAM,EAAE,QAAQ,GAAG,QAAQ,GAAG,QAAQ,CAAC;IACvC,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,GAAG,CAAC,EAAE,GAAG,CAAC,WAAW,CAAC;IACtB,UAAU,CAAC,EAAE,KAAK,CAAC;QAAE,MAAM,EAAE,QAAQ,GAAG,QAAQ,GAAG,QAAQ,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAC9E,CAAC;AA2BF,eAAO,MAAM,uCAAuC,EAAE,eAAe,CAAC,uBAAuB,CAmB5F,CAAC;AAEF,eAAO,MAAM,6BAA6B,EAAE,eAAe,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAkBlF,CAAC;AAEF,eAAO,MAAM,iBAAiB,EAAE,eAAe,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAUtE,CAAC;AAwgBF,QAAA,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAUzB,CAAC;AAEH,QAAA,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAgBzB,CAAC;AAEH,QAAA,MAAM,qBAAqB;;;iBAGzB,CAAC;AA6BH,QAAA,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAW1B,CAAC;AAEH,QAAA,MAAM,0BAA0B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAW9B,CAAC;AAMH,QAAA,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAkB1B,CAAC;AAEH,QAAA,MAAM,0BAA0B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAAuC,CAAC"}
1
+ {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../../../server/src/controllers/validation/schema.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,QAAQ,CAAC;AAE5B,OAAO,KAAK,EAAU,GAAG,EAAE,MAAM,eAAe,CAAC;AAajD,OAAO,EAA8B,KAAK,yBAAyB,EAAE,MAAM,qBAAqB,CAAC;AAWjG,KAAK,eAAe,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,aAAa,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;AAmEnF,KAAK,uBAAuB,GAAG;IAC7B,MAAM,EAAE,QAAQ,GAAG,QAAQ,GAAG,QAAQ,CAAC;IACvC,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,GAAG,CAAC,EAAE,GAAG,CAAC,WAAW,CAAC;IACtB,UAAU,CAAC,EAAE,KAAK,CAAC;QAAE,MAAM,EAAE,QAAQ,GAAG,QAAQ,GAAG,QAAQ,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAC9E,CAAC;AA2BF,eAAO,MAAM,uCAAuC,EAAE,eAAe,CAAC,uBAAuB,CAmB5F,CAAC;AAEF,eAAO,MAAM,6BAA6B,EAAE,eAAe,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAkBlF,CAAC;AAEF,eAAO,MAAM,iBAAiB,EAAE,eAAe,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAUtE,CAAC;AAwgBF,QAAA,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAUzB,CAAC;AAEH,QAAA,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAgBzB,CAAC;AAEH,QAAA,MAAM,qBAAqB;;;iBAGzB,CAAC;AA6BH,QAAA,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAW1B,CAAC;AAEH,QAAA,MAAM,0BAA0B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAW9B,CAAC;AAMH,QAAA,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAkB1B,CAAC;AAEH,QAAA,MAAM,0BAA0B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAAuC,CAAC"}
@@ -17,6 +17,9 @@ declare const _default: () => {
17
17
  builder: typeof import("./services/builder");
18
18
  'api-handler': typeof import("./services/api-handler");
19
19
  schema: typeof import("./services/schema");
20
+ 'content-structure': ({ strapi }: {
21
+ strapi: import("@strapi/types/dist/core/strapi.js").Strapi;
22
+ }) => import("./services/content-structure").ContentTypeBuilderContentStructureService;
20
23
  };
21
24
  controllers: {
22
25
  builder: {
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../server/src/index.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,WAAW,MAAM,eAAe,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAE7C,wBAQG"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../server/src/index.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,WAAW,MAAM,eAAe,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAE7C,wBAQG"}
@@ -1 +1 @@
1
- {"version":3,"file":"content-api.d.ts","sourceRoot":"","sources":["../../../../server/src/routes/content-api.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AA0H1C,QAAA,MAAM,YAAY;;;CAwChB,CAAC;AAEH,eAAe,YAAY,CAAC"}
1
+ {"version":3,"file":"content-api.d.ts","sourceRoot":"","sources":["../../../../server/src/routes/content-api.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AA2H1C,QAAA,MAAM,YAAY;;;CAwChB,CAAC;AAEH,eAAe,YAAY,CAAC"}
@@ -2,7 +2,15 @@ import type { Internal } from '@strapi/types';
2
2
  /**
3
3
  * Deletes the API folder of a contentType
4
4
  */
5
- export declare function clear(uid: Internal.UID.ContentType): Promise<void>;
5
+ export declare function clear(uid: Internal.UID.ContentType, { preserveBackup }?: {
6
+ preserveBackup?: boolean;
7
+ }): Promise<void>;
8
+ /**
9
+ * Deletes an inactive rollback backup after the enclosing schema mutation has committed.
10
+ * A failed cleanup leaves only housekeeping residue; it does not alter committed schema, API,
11
+ * or groups.json artifacts.
12
+ */
13
+ export declare function finalize(uid: Internal.UID.ContentType): Promise<void>;
6
14
  /**
7
15
  * Backups the API folder of a contentType
8
16
  * @param {string} uid content type uid
@@ -12,4 +20,8 @@ export declare function backup(uid: Internal.UID.ContentType): Promise<void>;
12
20
  * Rollbacks the API folder of a contentType
13
21
  */
14
22
  export declare function rollback(uid: Internal.UID.ContentType): Promise<void>;
23
+ /**
24
+ * Removes an API skeleton created for a new content type before its schema mutation commits.
25
+ */
26
+ export declare function clearGenerated(apiName: string): Promise<void>;
15
27
  //# sourceMappingURL=api-handler.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"api-handler.d.ts","sourceRoot":"","sources":["../../../../server/src/services/api-handler.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAE9C;;GAEG;AACH,wBAAsB,KAAK,CAAC,GAAG,EAAE,QAAQ,CAAC,GAAG,CAAC,WAAW,iBAWxD;AAED;;;GAGG;AACH,wBAAsB,MAAM,CAAC,GAAG,EAAE,QAAQ,CAAC,GAAG,CAAC,WAAW,iBAWzD;AAsBD;;GAEG;AACH,wBAAsB,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC,GAAG,CAAC,WAAW,iBAkB3D"}
1
+ {"version":3,"file":"api-handler.d.ts","sourceRoot":"","sources":["../../../../server/src/services/api-handler.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAE9C;;GAEG;AACH,wBAAsB,KAAK,CACzB,GAAG,EAAE,QAAQ,CAAC,GAAG,CAAC,WAAW,EAC7B,EAAE,cAAsB,EAAE,GAAE;IAAE,cAAc,CAAC,EAAE,OAAO,CAAA;CAAO,iBAc9D;AAED;;;;GAIG;AACH,wBAAsB,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC,GAAG,CAAC,WAAW,iBAE3D;AAED;;;GAGG;AACH,wBAAsB,MAAM,CAAC,GAAG,EAAE,QAAQ,CAAC,GAAG,CAAC,WAAW,iBA8BzD;AAsBD;;GAEG;AACH,wBAAsB,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC,GAAG,CAAC,WAAW,iBAkB3D;AAED;;GAEG;AACH,wBAAsB,cAAc,CAAC,OAAO,EAAE,MAAM,iBAEnD"}
@@ -0,0 +1,37 @@
1
+ import type { Core, Modules } from '@strapi/types';
2
+ type ContentStructureFile = Modules.ContentStructure.ContentStructureFile;
3
+ type ContentTypeKind = 'collectionType' | 'singleType';
4
+ /**
5
+ * A mirror of the subset of the core `content-structure` service (strapi.get('content-structure'))
6
+ * that this service consumes.
7
+ */
8
+ export interface CoreContentStructureService {
9
+ getCleanedFile(): Promise<ContentStructureFile | null>;
10
+ write(structure: ContentStructureFile): Promise<void>;
11
+ }
12
+ /**
13
+ * This service handles the CTB orchestration of folder-group WRITES. It handles:
14
+ * - Context-aware validation that requires the content-type registry
15
+ * - Context-aware pruning of references invalidated by CTB transaction.
16
+ * - Persistence to filesystem via the core content-structure service.
17
+ * It assumes that non-context-aware validation has already been performed.
18
+ */
19
+ export interface ContentTypeBuilderContentStructureService {
20
+ /**
21
+ * Validates all references to content types in the provided content structure.
22
+ * Throws an ApplicationError naming every offending uid + rule.
23
+ */
24
+ validateContentTypeUidReferences(structure: unknown, contentTypeUids: Map<string, ContentTypeKind>): void;
25
+ validateFromUpdate(input: {
26
+ incomingStructure?: unknown;
27
+ upsertedUids: Map<string, ContentTypeKind>;
28
+ deletedUids: Set<string>;
29
+ }): void;
30
+ commitFromUpdate(input: {
31
+ incomingStructure?: unknown;
32
+ deletedUids: Set<string>;
33
+ }): Promise<boolean>;
34
+ }
35
+ export declare function createContentStructureService(strapi: Core.Strapi): ContentTypeBuilderContentStructureService;
36
+ export {};
37
+ //# sourceMappingURL=content-structure.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"content-structure.d.ts","sourceRoot":"","sources":["../../../../server/src/services/content-structure.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAKnD,KAAK,oBAAoB,GAAG,OAAO,CAAC,gBAAgB,CAAC,oBAAoB,CAAC;AAE1E,KAAK,eAAe,GAAG,gBAAgB,GAAG,YAAY,CAAC;AAQvD;;;GAGG;AACH,MAAM,WAAW,2BAA2B;IAC1C,cAAc,IAAI,OAAO,CAAC,oBAAoB,GAAG,IAAI,CAAC,CAAC;IACvD,KAAK,CAAC,SAAS,EAAE,oBAAoB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACvD;AAED;;;;;;GAMG;AACH,MAAM,WAAW,yCAAyC;IACxD;;;OAGG;IACH,gCAAgC,CAC9B,SAAS,EAAE,OAAO,EAClB,eAAe,EAAE,GAAG,CAAC,MAAM,EAAE,eAAe,CAAC,GAC5C,IAAI,CAAC;IAER,kBAAkB,CAAC,KAAK,EAAE;QACxB,iBAAiB,CAAC,EAAE,OAAO,CAAC;QAC5B,YAAY,EAAE,GAAG,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;QAC3C,WAAW,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;KAC1B,GAAG,IAAI,CAAC;IAET,gBAAgB,CAAC,KAAK,EAAE;QACtB,iBAAiB,CAAC,EAAE,OAAO,CAAC;QAC5B,WAAW,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;KAC1B,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;CACtB;AA6DD,wBAAgB,6BAA6B,CAC3C,MAAM,EAAE,IAAI,CAAC,MAAM,GAClB,yCAAyC,CA2K3C"}
@@ -1,4 +1,6 @@
1
1
  import type { UID, Struct } from '@strapi/types';
2
+ export declare const isCTBOwnedApplicationContentType: (uid: UID.ContentType) => boolean;
3
+ export declare const assertCTBOwnedApplicationContentType: (uid: UID.ContentType) => void;
2
4
  export declare const isContentTypeVisible: (model: Struct.ContentTypeSchema) => boolean;
3
5
  export declare const getRestrictRelationsTo: (contentType: Struct.ContentTypeSchema) => string[] | null;
4
6
  /**
@@ -38,6 +40,8 @@ export declare const formatContentType: (contentType: any) => {
38
40
  export declare const createContentTypes: (contentTypes: any[]) => Promise<any[]>;
39
41
  type CreateContentTypeOptions = {
40
42
  defaultBuilder?: any;
43
+ generatedApiNames?: string[];
44
+ deferEvent?: boolean;
41
45
  };
42
46
  /**
43
47
  * Creates a content type and handle the nested components sent with it
@@ -1 +1 @@
1
- {"version":3,"file":"content-types.d.ts","sourceRoot":"","sources":["../../../../server/src/services/content-types.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAOjD,eAAO,MAAM,oBAAoB,GAAI,OAAO,MAAM,CAAC,iBAAiB,YACO,CAAC;AAE5E,eAAO,MAAM,sBAAsB,GAAI,aAAa,MAAM,CAAC,iBAAiB,oBAgB3E,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,iBAAiB,GAAI,aAAa,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAqBjD,CAAC;AAEF,eAAO,MAAM,kBAAkB,GAAU,cAAc,GAAG,EAAE,mBAW3D,CAAC;AAEF,KAAK,wBAAwB,GAAG;IAC9B,cAAc,CAAC,EAAE,GAAG,CAAC;CACtB,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,iBAAiB,GAC5B,6BAA6B,GAAG,EAChC,UAAS,wBAA6B,iBA8CvC,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,WAAW,GAAI,kDAKzB,GAAG,QAiBL,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,eAAe,GAC1B,KAAK,GAAG,CAAC,WAAW,EACpB,6BAAkC,GAAG,iBA2EtC,CAAC;AAEF,eAAO,MAAM,kBAAkB,GAAU,MAAM,GAAG,CAAC,WAAW,EAAE,kBAiB/D,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,iBAAiB,GAAU,KAAK,GAAG,CAAC,WAAW,EAAE,iBAAgB,GAAe,iBAoB5F,CAAC"}
1
+ {"version":3,"file":"content-types.d.ts","sourceRoot":"","sources":["../../../../server/src/services/content-types.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AASjD,eAAO,MAAM,gCAAgC,GAAI,KAAK,GAAG,CAAC,WAAW,KAAG,OAC/C,CAAC;AAE1B,eAAO,MAAM,oCAAoC,GAAI,KAAK,GAAG,CAAC,WAAW,KAAG,IAI3E,CAAC;AAMF,eAAO,MAAM,oBAAoB,GAAI,OAAO,MAAM,CAAC,iBAAiB,YACO,CAAC;AAE5E,eAAO,MAAM,sBAAsB,GAAI,aAAa,MAAM,CAAC,iBAAiB,oBAgB3E,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,iBAAiB,GAAI,aAAa,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAqBjD,CAAC;AAEF,eAAO,MAAM,kBAAkB,GAAU,cAAc,GAAG,EAAE,mBAyC3D,CAAC;AAEF,KAAK,wBAAwB,GAAG;IAC9B,cAAc,CAAC,EAAE,GAAG,CAAC;IACrB,iBAAiB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC7B,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,iBAAiB,GAC5B,6BAA6B,GAAG,EAChC,UAAS,wBAA6B,iBA2EvC,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,WAAW,GAAI,kDAKzB,GAAG,QAiBL,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,eAAe,GAC1B,KAAK,GAAG,CAAC,WAAW,EACpB,6BAAkC,GAAG,iBAgGtC,CAAC;AAEF,eAAO,MAAM,kBAAkB,GAAU,MAAM,GAAG,CAAC,WAAW,EAAE,kBAgD/D,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,iBAAiB,GAAU,KAAK,GAAG,CAAC,WAAW,EAAE,iBAAgB,GAAe,iBA8C5F,CAAC"}
@@ -1,3 +1,4 @@
1
+ import type { Core } from '@strapi/types';
1
2
  import * as contentTypes from './content-types';
2
3
  import * as components from './components';
3
4
  import * as componentCategories from './component-categories';
@@ -11,6 +12,9 @@ declare const _default: {
11
12
  builder: typeof builder;
12
13
  'api-handler': typeof apiHandler;
13
14
  schema: typeof schema;
15
+ 'content-structure': ({ strapi }: {
16
+ strapi: Core.Strapi;
17
+ }) => import("./content-structure").ContentTypeBuilderContentStructureService;
14
18
  };
15
19
  export default _default;
16
20
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../server/src/services/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,YAAY,MAAM,iBAAiB,CAAC;AAChD,OAAO,KAAK,UAAU,MAAM,cAAc,CAAC;AAC3C,OAAO,KAAK,mBAAmB,MAAM,wBAAwB,CAAC;AAC9D,OAAO,KAAK,OAAO,MAAM,WAAW,CAAC;AACrC,OAAO,KAAK,UAAU,MAAM,eAAe,CAAC;AAC5C,OAAO,KAAK,MAAM,MAAM,UAAU,CAAC;;;;;;;;;AAEnC,wBAOE"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../server/src/services/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAE1C,OAAO,KAAK,YAAY,MAAM,iBAAiB,CAAC;AAChD,OAAO,KAAK,UAAU,MAAM,cAAc,CAAC;AAC3C,OAAO,KAAK,mBAAmB,MAAM,wBAAwB,CAAC;AAC9D,OAAO,KAAK,OAAO,MAAM,WAAW,CAAC;AACrC,OAAO,KAAK,UAAU,MAAM,eAAe,CAAC;AAC5C,OAAO,KAAK,MAAM,MAAM,UAAU,CAAC;;;;;;;;sCAUC;QAAE,MAAM,EAAE,IAAI,CAAC,MAAM,CAAA;KAAE;;AAP3D,wBASE"}
@@ -4,8 +4,10 @@
4
4
  export default function createBuilder(): {
5
5
  /**
6
6
  * Write all type to files
7
+ * @returns boolean true if all files have been written correctly, false if an error occurred
8
+ * @throws ApplicationError if an error occurred and rollback failed
7
9
  */
8
- writeFiles(): Promise<any[]>;
10
+ writeFiles(): Promise<boolean>;
9
11
  /**
10
12
  * rollback all files
11
13
  */
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../server/src/services/schema-builder/index.ts"],"names":[],"mappings":"AAQA;;GAEG;AACH,MAAM,CAAC,OAAO,UAAU,aAAa;IAwIjC;;OAEG;;IAuBH;;OAEG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IA5FH;;OAEG;kCAC2B,GAAG;gCAUL,GAAG;EA1ClC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../server/src/services/schema-builder/index.ts"],"names":[],"mappings":"AAQA;;GAEG;AACH,MAAM,CAAC,OAAO,UAAU,aAAa;IAwIjC;;;;OAIG;;IAwBH;;OAEG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IA/FH;;OAEG;kCAC2B,GAAG;gCAUL,GAAG;EA1ClC"}
@@ -1 +1 @@
1
- {"version":3,"file":"schema-handler.d.ts","sourceRoot":"","sources":["../../../../../server/src/services/schema-builder/schema-handler.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAMtD,MAAM,MAAM,KAAK,GAAG;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,GAAG,CAAC,EAAE,QAAQ,CAAC,GAAG,CAAC,WAAW,CAAC;IAC/B,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC,iBAAiB,CAAC;CACnC,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG,UAAU,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAEnE,MAAM,CAAC,OAAO,UAAU,mBAAmB,CAAC,KAAK,EAAE,KAAK;;;;;;;gBAoDxC,QAAQ,CAAC,GAAG,CAAC,WAAW;gBAOxB,MAAM;;mBAWH,MAAM,CAAC,iBAAiB;cAQ7B,MAAM,EAAE;cAKR,MAAM,EAAE,GAAG,MAAM,OAAO,OAAO;gBAY7B,MAAM,EAAE;;sBAaF,MAAM;sBAIN,MAAM,aAAa,GAAG;yBAInB,MAAM;iCAIE,MAAM,CAAC,gBAAgB;2BAkB7B,QAAQ,CAAC,GAAG,CAAC,WAAW;yBAiB1B,QAAQ,CAAC,GAAG,CAAC,SAAS;yBA2BtB,QAAQ,CAAC,GAAG,CAAC,SAAS,UAAU,QAAQ,CAAC,GAAG,CAAC,SAAS;;;EAyH9E"}
1
+ {"version":3,"file":"schema-handler.d.ts","sourceRoot":"","sources":["../../../../../server/src/services/schema-builder/schema-handler.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAMtD,MAAM,MAAM,KAAK,GAAG;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,GAAG,CAAC,EAAE,QAAQ,CAAC,GAAG,CAAC,WAAW,CAAC;IAC/B,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC,iBAAiB,CAAC;CACnC,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG,UAAU,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAenE,MAAM,CAAC,OAAO,UAAU,mBAAmB,CAAC,KAAK,EAAE,KAAK;;;;;;;gBAoDxC,QAAQ,CAAC,GAAG,CAAC,WAAW;gBAOxB,MAAM;;mBAWH,MAAM,CAAC,iBAAiB;cAQ7B,MAAM,EAAE;cAKR,MAAM,EAAE,GAAG,MAAM,OAAO,OAAO;gBAY7B,MAAM,EAAE;;sBAaF,MAAM;sBAIN,MAAM,aAAa,GAAG;yBAInB,MAAM;iCAIE,MAAM,CAAC,gBAAgB;2BAkB7B,QAAQ,CAAC,GAAG,CAAC,WAAW;yBAiB1B,QAAQ,CAAC,GAAG,CAAC,SAAS;yBA2BtB,QAAQ,CAAC,GAAG,CAAC,SAAS,UAAU,QAAQ,CAAC,GAAG,CAAC,SAAS;;;EA+G9E"}
@@ -0,0 +1,26 @@
1
+ type SchemaBuilder = {
2
+ rollback(): Promise<unknown>;
3
+ };
4
+ type ApiHandler = {
5
+ rollback(uid: string): Promise<void>;
6
+ clearGenerated(apiName: string): Promise<void>;
7
+ finalize(uid: string): Promise<void>;
8
+ };
9
+ export declare const finalizeSchemaMutation: ({ apiHandler, backedUpApiUids, }: {
10
+ apiHandler: ApiHandler;
11
+ backedUpApiUids?: string[];
12
+ }) => Promise<unknown[]>;
13
+ /**
14
+ * Restores the filesystem artifacts touched before content-structure reconciliation.
15
+ * Folder reconciliation is deliberately the final mutation, so groups.json never needs a
16
+ * compensating write when an earlier schema or API operation fails.
17
+ */
18
+ export declare const rollbackSchemaMutation: ({ builder, apiHandler, backedUpApiUids, generatedApiNames, schemaAlreadyRolledBack, }: {
19
+ builder: SchemaBuilder;
20
+ apiHandler: ApiHandler;
21
+ backedUpApiUids?: string[];
22
+ generatedApiNames?: string[];
23
+ schemaAlreadyRolledBack?: boolean;
24
+ }) => Promise<void>;
25
+ export {};
26
+ //# sourceMappingURL=schema-mutation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema-mutation.d.ts","sourceRoot":"","sources":["../../../../server/src/services/schema-mutation.ts"],"names":[],"mappings":"AAAA,KAAK,aAAa,GAAG;IACnB,QAAQ,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;CAC9B,CAAC;AAEF,KAAK,UAAU,GAAG;IAChB,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACrC,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC/C,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACtC,CAAC;AAEF,eAAO,MAAM,sBAAsB,GAAU,kCAG1C;IACD,UAAU,EAAE,UAAU,CAAC;IACvB,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;CAC5B,uBAYA,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,sBAAsB,GAAU,uFAM1C;IACD,OAAO,EAAE,aAAa,CAAC;IACvB,UAAU,EAAE,UAAU,CAAC;IACvB,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAC3B,iBAAiB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC7B,uBAAuB,CAAC,EAAE,OAAO,CAAC;CACnC,kBA4BA,CAAC"}
@@ -640,6 +640,7 @@ export declare const formatAttribute: (attribute: Schema.Attribute.AnyAttribute
640
640
  relation: "morphMany";
641
641
  };
642
642
  export declare const getSchema: () => Promise<{
643
+ contentStructure: import("@strapi/types/dist/modules/content-structure.js").ContentStructureFile | null;
643
644
  contentTypes: {
644
645
  [x: `admin::${string}`]: {
645
646
  uid: import("@strapi/types/dist/uid/index.js").ContentType;
@@ -1 +1 @@
1
- {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../../server/src/services/schema.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAI5C,OAAO,KAAK,EAAE,MAAM,IAAI,SAAS,EAAE,MAAM,kCAAkC,CAAC;AAoE5E,eAAO,MAAM,eAAe,GAAI,WAAW,MAAM,CAAC,SAAS,CAAC,YAAY,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAW7F,CAAC;AAEF,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAmDrB,CAAC;AAEF,eAAO,MAAM,YAAY,GAAU,QAAQ,SAAS,kBAyKnD,CAAC"}
1
+ {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../../server/src/services/schema.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAK5C,OAAO,KAAK,EAAE,MAAM,IAAI,SAAS,EAAE,MAAM,kCAAkC,CAAC;AA2E5E,eAAO,MAAM,eAAe,GAAI,WAAW,MAAM,CAAC,SAAS,CAAC,YAAY,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAW7F,CAAC;AAEF,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAuDrB,CAAC;AAEF,eAAO,MAAM,YAAY,GAAU,QAAQ,SAAS,kBAgOnD,CAAC"}
@@ -4,6 +4,7 @@ import type * as contentTypes from '../services/content-types';
4
4
  import type * as componentCategories from '../services/component-categories';
5
5
  import type * as apiHandler from '../services/api-handler';
6
6
  import type * as schema from '../services/schema';
7
+ import type { createContentStructureService } from '../services/content-structure';
7
8
  type S = {
8
9
  'content-types': typeof contentTypes;
9
10
  components: typeof components;
@@ -11,6 +12,7 @@ type S = {
11
12
  builder: typeof builder;
12
13
  'api-handler': typeof apiHandler;
13
14
  schema: typeof schema;
15
+ 'content-structure': typeof createContentStructureService;
14
16
  };
15
17
  export declare function getService<T extends keyof S>(name: T): S[T] extends (...args: any[]) => any ? ReturnType<S[T]> : S[T];
16
18
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../server/src/utils/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,UAAU,MAAM,wBAAwB,CAAC;AAC1D,OAAO,KAAK,KAAK,OAAO,MAAM,qBAAqB,CAAC;AACpD,OAAO,KAAK,KAAK,YAAY,MAAM,2BAA2B,CAAC;AAC/D,OAAO,KAAK,KAAK,mBAAmB,MAAM,kCAAkC,CAAC;AAC7E,OAAO,KAAK,KAAK,UAAU,MAAM,yBAAyB,CAAC;AAC3D,OAAO,KAAK,KAAK,MAAM,MAAM,oBAAoB,CAAC;AAElD,KAAK,CAAC,GAAG;IACP,eAAe,EAAE,OAAO,YAAY,CAAC;IACrC,UAAU,EAAE,OAAO,UAAU,CAAC;IAC9B,sBAAsB,EAAE,OAAO,mBAAmB,CAAC;IACnD,OAAO,EAAE,OAAO,OAAO,CAAC;IACxB,aAAa,EAAE,OAAO,UAAU,CAAC;IACjC,MAAM,EAAE,OAAO,MAAM,CAAC;CACvB,CAAC;AAEF,wBAAgB,UAAU,CAAC,CAAC,SAAS,MAAM,CAAC,EAC1C,IAAI,EAAE,CAAC,GACN,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAEhE"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../server/src/utils/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,UAAU,MAAM,wBAAwB,CAAC;AAC1D,OAAO,KAAK,KAAK,OAAO,MAAM,qBAAqB,CAAC;AACpD,OAAO,KAAK,KAAK,YAAY,MAAM,2BAA2B,CAAC;AAC/D,OAAO,KAAK,KAAK,mBAAmB,MAAM,kCAAkC,CAAC;AAC7E,OAAO,KAAK,KAAK,UAAU,MAAM,yBAAyB,CAAC;AAC3D,OAAO,KAAK,KAAK,MAAM,MAAM,oBAAoB,CAAC;AAClD,OAAO,KAAK,EAAE,6BAA6B,EAAE,MAAM,+BAA+B,CAAC;AAEnF,KAAK,CAAC,GAAG;IACP,eAAe,EAAE,OAAO,YAAY,CAAC;IACrC,UAAU,EAAE,OAAO,UAAU,CAAC;IAC9B,sBAAsB,EAAE,OAAO,mBAAmB,CAAC;IACnD,OAAO,EAAE,OAAO,OAAO,CAAC;IACxB,aAAa,EAAE,OAAO,UAAU,CAAC;IACjC,MAAM,EAAE,OAAO,MAAM,CAAC;IACtB,mBAAmB,EAAE,OAAO,6BAA6B,CAAC;CAC3D,CAAC;AAEF,wBAAgB,UAAU,CAAC,CAAC,SAAS,MAAM,CAAC,EAC1C,IAAI,EAAE,CAAC,GACN,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAEhE"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../server/src/utils/index.ts"],"sourcesContent":["import type * as components from '../services/components';\nimport type * as builder from '../services/builder';\nimport type * as contentTypes from '../services/content-types';\nimport type * as componentCategories from '../services/component-categories';\nimport type * as apiHandler from '../services/api-handler';\nimport type * as schema from '../services/schema';\n\ntype S = {\n 'content-types': typeof contentTypes;\n components: typeof components;\n 'component-categories': typeof componentCategories;\n builder: typeof builder;\n 'api-handler': typeof apiHandler;\n schema: typeof schema;\n};\n\nexport function getService<T extends keyof S>(\n name: T\n): S[T] extends (...args: any[]) => any ? ReturnType<S[T]> : S[T] {\n return strapi.plugin('content-type-builder').service(name);\n}\n"],"names":["getService","name","strapi","plugin","service"],"mappings":";;AAgBO,SAASA,WACdC,IAAO,EAAA;AAEP,IAAA,OAAOC,MAAAA,CAAOC,MAAM,CAAC,sBAAA,CAAA,CAAwBC,OAAO,CAACH,IAAAA,CAAAA;AACvD;;;;"}
1
+ {"version":3,"file":"index.js","sources":["../../../server/src/utils/index.ts"],"sourcesContent":["import type * as components from '../services/components';\nimport type * as builder from '../services/builder';\nimport type * as contentTypes from '../services/content-types';\nimport type * as componentCategories from '../services/component-categories';\nimport type * as apiHandler from '../services/api-handler';\nimport type * as schema from '../services/schema';\nimport type { createContentStructureService } from '../services/content-structure';\n\ntype S = {\n 'content-types': typeof contentTypes;\n components: typeof components;\n 'component-categories': typeof componentCategories;\n builder: typeof builder;\n 'api-handler': typeof apiHandler;\n schema: typeof schema;\n 'content-structure': typeof createContentStructureService;\n};\n\nexport function getService<T extends keyof S>(\n name: T\n): S[T] extends (...args: any[]) => any ? ReturnType<S[T]> : S[T] {\n return strapi.plugin('content-type-builder').service(name);\n}\n"],"names":["getService","name","strapi","plugin","service"],"mappings":";;AAkBO,SAASA,WACdC,IAAO,EAAA;AAEP,IAAA,OAAOC,MAAAA,CAAOC,MAAM,CAAC,sBAAA,CAAA,CAAwBC,OAAO,CAACH,IAAAA,CAAAA;AACvD;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","sources":["../../../server/src/utils/index.ts"],"sourcesContent":["import type * as components from '../services/components';\nimport type * as builder from '../services/builder';\nimport type * as contentTypes from '../services/content-types';\nimport type * as componentCategories from '../services/component-categories';\nimport type * as apiHandler from '../services/api-handler';\nimport type * as schema from '../services/schema';\n\ntype S = {\n 'content-types': typeof contentTypes;\n components: typeof components;\n 'component-categories': typeof componentCategories;\n builder: typeof builder;\n 'api-handler': typeof apiHandler;\n schema: typeof schema;\n};\n\nexport function getService<T extends keyof S>(\n name: T\n): S[T] extends (...args: any[]) => any ? ReturnType<S[T]> : S[T] {\n return strapi.plugin('content-type-builder').service(name);\n}\n"],"names":["getService","name","strapi","plugin","service"],"mappings":"AAgBO,SAASA,WACdC,IAAO,EAAA;AAEP,IAAA,OAAOC,MAAAA,CAAOC,MAAM,CAAC,sBAAA,CAAA,CAAwBC,OAAO,CAACH,IAAAA,CAAAA;AACvD;;;;"}
1
+ {"version":3,"file":"index.mjs","sources":["../../../server/src/utils/index.ts"],"sourcesContent":["import type * as components from '../services/components';\nimport type * as builder from '../services/builder';\nimport type * as contentTypes from '../services/content-types';\nimport type * as componentCategories from '../services/component-categories';\nimport type * as apiHandler from '../services/api-handler';\nimport type * as schema from '../services/schema';\nimport type { createContentStructureService } from '../services/content-structure';\n\ntype S = {\n 'content-types': typeof contentTypes;\n components: typeof components;\n 'component-categories': typeof componentCategories;\n builder: typeof builder;\n 'api-handler': typeof apiHandler;\n schema: typeof schema;\n 'content-structure': typeof createContentStructureService;\n};\n\nexport function getService<T extends keyof S>(\n name: T\n): S[T] extends (...args: any[]) => any ? ReturnType<S[T]> : S[T] {\n return strapi.plugin('content-type-builder').service(name);\n}\n"],"names":["getService","name","strapi","plugin","service"],"mappings":"AAkBO,SAASA,WACdC,IAAO,EAAA;AAEP,IAAA,OAAOC,MAAAA,CAAOC,MAAM,CAAC,sBAAA,CAAA,CAAwBC,OAAO,CAACH,IAAAA,CAAAA;AACvD;;;;"}