@strapi/content-manager 5.54.0 → 5.55.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (60) hide show
  1. package/dist/admin/components/LeftMenu.js +131 -52
  2. package/dist/admin/components/LeftMenu.js.map +1 -1
  3. package/dist/admin/components/LeftMenu.mjs +133 -54
  4. package/dist/admin/components/LeftMenu.mjs.map +1 -1
  5. package/dist/admin/hooks/useContentManagerInitData.js +3 -2
  6. package/dist/admin/hooks/useContentManagerInitData.js.map +1 -1
  7. package/dist/admin/hooks/useContentManagerInitData.mjs +3 -2
  8. package/dist/admin/hooks/useContentManagerInitData.mjs.map +1 -1
  9. package/dist/admin/hooks/useDocumentActions.js +3 -1
  10. package/dist/admin/hooks/useDocumentActions.js.map +1 -1
  11. package/dist/admin/hooks/useDocumentActions.mjs +4 -2
  12. package/dist/admin/hooks/useDocumentActions.mjs.map +1 -1
  13. package/dist/admin/layout.js +2 -4
  14. package/dist/admin/layout.js.map +1 -1
  15. package/dist/admin/layout.mjs +2 -4
  16. package/dist/admin/layout.mjs.map +1 -1
  17. package/dist/admin/modules/app.js +3 -1
  18. package/dist/admin/modules/app.js.map +1 -1
  19. package/dist/admin/modules/app.mjs +3 -1
  20. package/dist/admin/modules/app.mjs.map +1 -1
  21. package/dist/admin/pages/EditView/components/FormInputs/Relations/RelationModal.js +58 -1
  22. package/dist/admin/pages/EditView/components/FormInputs/Relations/RelationModal.js.map +1 -1
  23. package/dist/admin/pages/EditView/components/FormInputs/Relations/RelationModal.mjs +58 -2
  24. package/dist/admin/pages/EditView/components/FormInputs/Relations/RelationModal.mjs.map +1 -1
  25. package/dist/admin/src/modules/app.d.ts +2 -0
  26. package/dist/admin/src/pages/EditView/components/FormInputs/Relations/RelationModal.d.ts +14 -1
  27. package/dist/admin/src/services/init.d.ts +1 -0
  28. package/dist/admin/src/utils/contentStructure.d.ts +59 -0
  29. package/dist/admin/utils/contentStructure.js +136 -0
  30. package/dist/admin/utils/contentStructure.js.map +1 -0
  31. package/dist/admin/utils/contentStructure.mjs +130 -0
  32. package/dist/admin/utils/contentStructure.mjs.map +1 -0
  33. package/dist/server/controllers/init.js +7 -2
  34. package/dist/server/controllers/init.js.map +1 -1
  35. package/dist/server/controllers/init.mjs +7 -2
  36. package/dist/server/controllers/init.mjs.map +1 -1
  37. package/dist/server/services/content-structure.js +53 -0
  38. package/dist/server/services/content-structure.js.map +1 -0
  39. package/dist/server/services/content-structure.mjs +51 -0
  40. package/dist/server/services/content-structure.mjs.map +1 -0
  41. package/dist/server/services/index.js +2 -0
  42. package/dist/server/services/index.js.map +1 -1
  43. package/dist/server/services/index.mjs +2 -0
  44. package/dist/server/services/index.mjs.map +1 -1
  45. package/dist/server/src/controllers/index.d.ts +1 -1
  46. package/dist/server/src/controllers/init.d.ts +1 -1
  47. package/dist/server/src/controllers/init.d.ts.map +1 -1
  48. package/dist/server/src/index.d.ts +6 -1
  49. package/dist/server/src/index.d.ts.map +1 -1
  50. package/dist/server/src/services/content-structure.d.ts +8 -0
  51. package/dist/server/src/services/content-structure.d.ts.map +1 -0
  52. package/dist/server/src/services/index.d.ts +5 -0
  53. package/dist/server/src/services/index.d.ts.map +1 -1
  54. package/dist/server/src/utils/index.d.ts +2 -0
  55. package/dist/server/src/utils/index.d.ts.map +1 -1
  56. package/dist/server/utils/index.js.map +1 -1
  57. package/dist/server/utils/index.mjs.map +1 -1
  58. package/dist/shared/contracts/init.d.ts +2 -0
  59. package/dist/shared/contracts/init.d.ts.map +1 -1
  60. package/package.json +5 -5
@@ -0,0 +1,130 @@
1
+ /**
2
+ * Reconcile a resolved content-structure section (folder groups) with the set of links the user can
3
+ * actually see with respect to their RBAC permissions.
4
+ */ const deriveVisibleTree = (groups, links, compareUngrouped)=>{
5
+ const linkByUid = new Map(links.map((link)=>[
6
+ link.uid,
7
+ link
8
+ ]));
9
+ const grouped = new Set();
10
+ const resolveChildAsNode = (child)=>{
11
+ if (child.type === 'contentType') {
12
+ const link = linkByUid.get(child.uid);
13
+ if (!link) {
14
+ return null;
15
+ }
16
+ grouped.add(child.uid);
17
+ return {
18
+ type: 'link',
19
+ link
20
+ };
21
+ }
22
+ return resolveGroupAsNode(child);
23
+ };
24
+ const isTreeNode = (node)=>{
25
+ return node !== null;
26
+ };
27
+ const resolveGroupAsNode = (group)=>{
28
+ const children = group.children.map(resolveChildAsNode).filter(isTreeNode);
29
+ if (children.length === 0) {
30
+ return null;
31
+ }
32
+ return {
33
+ type: 'folder',
34
+ id: group.id,
35
+ name: group.name,
36
+ children
37
+ };
38
+ };
39
+ const folders = groups.map(resolveGroupAsNode).filter(isTreeNode);
40
+ const ungrouped = links.filter((link)=>!grouped.has(link.uid));
41
+ if (compareUngrouped) {
42
+ ungrouped.sort(compareUngrouped);
43
+ }
44
+ return [
45
+ ...folders,
46
+ ...ungrouped.map((link)=>({
47
+ type: 'link',
48
+ link
49
+ }))
50
+ ];
51
+ };
52
+ function flattenTreeLinks(nodes, parentPath = []) {
53
+ return nodes.flatMap((node)=>{
54
+ if (node.type === 'link') {
55
+ return [
56
+ {
57
+ link: node.link,
58
+ path: parentPath
59
+ }
60
+ ];
61
+ }
62
+ return flattenTreeLinks(node.children, [
63
+ ...parentPath,
64
+ node.name
65
+ ]);
66
+ });
67
+ }
68
+ function countTreeLinks(nodes) {
69
+ return flattenTreeLinks(nodes).length;
70
+ }
71
+ /**
72
+ * Search the contentStructure tree, returning the matching links with their folder path.
73
+ *
74
+ * A **link** matches on whatever `matchLink` tests (display name and/or UID) and is returned with its ancestor folder path.
75
+ *
76
+ * A **folder** matches on its name and, when it does, surfaces *all* of its descendant content types (each with
77
+ * its own path).
78
+ */ function filterTreeLinks({ matchFolderName, matchLink, nodes, parentPath = [] }) {
79
+ return nodes.flatMap((node)=>{
80
+ if (node.type === 'link') {
81
+ return matchLink(node.link) ? [
82
+ {
83
+ link: node.link,
84
+ path: parentPath
85
+ }
86
+ ] : [];
87
+ }
88
+ const path = [
89
+ ...parentPath,
90
+ node.name
91
+ ];
92
+ if (matchFolderName(node.name)) {
93
+ return flattenTreeLinks(node.children, path);
94
+ }
95
+ return filterTreeLinks({
96
+ nodes: node.children,
97
+ matchFolderName,
98
+ matchLink,
99
+ parentPath: path
100
+ });
101
+ });
102
+ }
103
+ /**
104
+ * Builds a content structure section for the left menu from the RBAC-provided links and the resolved content structure configuration.
105
+ */ function buildContentStructureSection({ compareLinks, groups, links, title, id }) {
106
+ try {
107
+ return {
108
+ id,
109
+ title,
110
+ tree: deriveVisibleTree(groups, links, compareLinks)
111
+ };
112
+ } catch {
113
+ const tree = [
114
+ ...links
115
+ ].sort(compareLinks).map((link)=>{
116
+ return {
117
+ type: 'link',
118
+ link
119
+ };
120
+ });
121
+ return {
122
+ id,
123
+ title,
124
+ tree
125
+ };
126
+ }
127
+ }
128
+
129
+ export { buildContentStructureSection, countTreeLinks, deriveVisibleTree, filterTreeLinks, flattenTreeLinks };
130
+ //# sourceMappingURL=contentStructure.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"contentStructure.mjs","sources":["../../../admin/src/utils/contentStructure.ts"],"sourcesContent":["import type { ContentManagerLink } from '../hooks/useContentManagerInitData';\nimport type { Modules } from '@strapi/types';\n\ntype ResolvedGroupNode = Modules.ContentStructure.ResolvedGroupNode;\ntype ResolvedStructureChild = Modules.ContentStructure.ResolvedStructureChild;\n\ntype VisibleTreeNode<TLink> =\n | { type: 'folder'; id: string; name: string; children: VisibleTreeNode<TLink>[] }\n | { type: 'link'; link: TLink };\n\nexport type LinkTreeNode = VisibleTreeNode<ContentManagerLink>;\n\n/**\n * Reconcile a resolved content-structure section (folder groups) with the set of links the user can\n * actually see with respect to their RBAC permissions.\n */\nexport const deriveVisibleTree = <TLink extends { uid: string }>(\n groups: ResolvedGroupNode[],\n links: TLink[],\n compareUngrouped?: (a: TLink, b: TLink) => number\n): VisibleTreeNode<TLink>[] => {\n const linkByUid = new Map(links.map((link) => [link.uid, link]));\n const grouped = new Set<string>();\n\n const resolveChildAsNode = (child: ResolvedStructureChild): VisibleTreeNode<TLink> | null => {\n if (child.type === 'contentType') {\n const link = linkByUid.get(child.uid);\n\n if (!link) {\n return null;\n }\n\n grouped.add(child.uid);\n\n return { type: 'link', link };\n }\n\n return resolveGroupAsNode(child);\n };\n\n const isTreeNode = (node: VisibleTreeNode<TLink> | null): node is VisibleTreeNode<TLink> => {\n return node !== null;\n };\n\n const resolveGroupAsNode = (group: ResolvedGroupNode): VisibleTreeNode<TLink> | null => {\n const children = group.children.map(resolveChildAsNode).filter(isTreeNode);\n\n if (children.length === 0) {\n return null;\n }\n\n return { type: 'folder', id: group.id, name: group.name, children };\n };\n\n const folders = groups.map(resolveGroupAsNode).filter(isTreeNode);\n\n const ungrouped = links.filter((link) => !grouped.has(link.uid));\n\n if (compareUngrouped) {\n ungrouped.sort(compareUngrouped);\n }\n\n return [...folders, ...ungrouped.map((link): VisibleTreeNode<TLink> => ({ type: 'link', link }))];\n};\n\nexport function flattenTreeLinks<TLink>(\n nodes: VisibleTreeNode<TLink>[],\n parentPath: string[] = []\n): Array<{ link: TLink; path: string[] }> {\n return nodes.flatMap((node) => {\n if (node.type === 'link') {\n return [{ link: node.link, path: parentPath }];\n }\n\n return flattenTreeLinks(node.children, [...parentPath, node.name]);\n });\n}\n\nexport function countTreeLinks<TLink>(nodes: VisibleTreeNode<TLink>[]): number {\n return flattenTreeLinks(nodes).length;\n}\n\ntype FilterTreeLinksParams<TLink> = {\n matchFolderName: (name: string) => boolean;\n matchLink: (link: TLink) => boolean;\n nodes: VisibleTreeNode<TLink>[];\n parentPath?: string[];\n};\n\n/**\n * Search the contentStructure tree, returning the matching links with their folder path.\n *\n * A **link** matches on whatever `matchLink` tests (display name and/or UID) and is returned with its ancestor folder path.\n *\n * A **folder** matches on its name and, when it does, surfaces *all* of its descendant content types (each with\n * its own path).\n */\nexport function filterTreeLinks<TLink>({\n matchFolderName,\n matchLink,\n nodes,\n parentPath = [],\n}: FilterTreeLinksParams<TLink>): Array<{ link: TLink; path: string[] }> {\n return nodes.flatMap((node) => {\n if (node.type === 'link') {\n return matchLink(node.link) ? [{ link: node.link, path: parentPath }] : [];\n }\n\n const path = [...parentPath, node.name];\n\n if (matchFolderName(node.name)) {\n return flattenTreeLinks(node.children, path);\n }\n\n return filterTreeLinks({\n nodes: node.children,\n matchFolderName,\n matchLink,\n parentPath: path,\n });\n });\n}\n\ntype BuildContentStructureSectionParams = {\n compareLinks: (a: ContentManagerLink, b: ContentManagerLink) => number;\n groups: Modules.ContentStructure.ResolvedGroupNode[];\n id: Modules.ContentStructure.ContentStructureSectionKey;\n links: ContentManagerLink[];\n title: string;\n};\n/**\n * Builds a content structure section for the left menu from the RBAC-provided links and the resolved content structure configuration.\n */\nexport function buildContentStructureSection({\n compareLinks,\n groups,\n links,\n title,\n id,\n}: BuildContentStructureSectionParams): {\n id: Modules.ContentStructure.ContentStructureSectionKey;\n title: string;\n tree: LinkTreeNode[];\n} {\n try {\n return { id, title, tree: deriveVisibleTree(groups, links, compareLinks) };\n } catch {\n const tree: LinkTreeNode[] = [...links].sort(compareLinks).map((link) => {\n return { type: 'link', link };\n });\n\n return { id, title, tree };\n }\n}\n"],"names":["deriveVisibleTree","groups","links","compareUngrouped","linkByUid","Map","map","link","uid","grouped","Set","resolveChildAsNode","child","type","get","add","resolveGroupAsNode","isTreeNode","node","group","children","filter","length","id","name","folders","ungrouped","has","sort","flattenTreeLinks","nodes","parentPath","flatMap","path","countTreeLinks","filterTreeLinks","matchFolderName","matchLink","buildContentStructureSection","compareLinks","title","tree"],"mappings":"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"}
@@ -3,16 +3,21 @@
3
3
  var index = require('../utils/index.js');
4
4
 
5
5
  var init = {
6
- getInitData (ctx) {
6
+ async getInitData (ctx) {
7
7
  const { toDto } = index.getService('data-mapper');
8
8
  const { findAllComponents } = index.getService('components');
9
9
  const { getAllFieldSizes } = index.getService('field-sizes');
10
10
  const { findAllContentTypes } = index.getService('content-types');
11
+ const { getContentStructure } = index.getService('content-structure');
12
+ const contentStructure = await getContentStructure();
11
13
  ctx.body = {
12
14
  data: {
13
15
  fieldSizes: getAllFieldSizes(),
14
16
  components: findAllComponents().map(toDto),
15
- contentTypes: findAllContentTypes().map(toDto)
17
+ contentTypes: findAllContentTypes().map(toDto),
18
+ ...contentStructure ? {
19
+ contentStructure
20
+ } : {}
16
21
  }
17
22
  };
18
23
  }
@@ -1 +1 @@
1
- {"version":3,"file":"init.js","sources":["../../../server/src/controllers/init.ts"],"sourcesContent":["import { getService } from '../utils';\n\nexport default {\n getInitData(ctx: any) {\n const { toDto } = getService('data-mapper');\n const { findAllComponents } = getService('components');\n const { getAllFieldSizes } = getService('field-sizes');\n const { findAllContentTypes } = getService('content-types');\n\n ctx.body = {\n data: {\n fieldSizes: getAllFieldSizes(),\n components: findAllComponents().map(toDto),\n contentTypes: findAllContentTypes().map(toDto),\n },\n };\n },\n};\n"],"names":["getInitData","ctx","toDto","getService","findAllComponents","getAllFieldSizes","findAllContentTypes","body","data","fieldSizes","components","map","contentTypes"],"mappings":";;;;AAEA,WAAe;AACbA,IAAAA,WAAAA,CAAAA,CAAYC,GAAQ,EAAA;AAClB,QAAA,MAAM,EAAEC,KAAK,EAAE,GAAGC,gBAAAA,CAAW,aAAA,CAAA;AAC7B,QAAA,MAAM,EAAEC,iBAAiB,EAAE,GAAGD,gBAAAA,CAAW,YAAA,CAAA;AACzC,QAAA,MAAM,EAAEE,gBAAgB,EAAE,GAAGF,gBAAAA,CAAW,aAAA,CAAA;AACxC,QAAA,MAAM,EAAEG,mBAAmB,EAAE,GAAGH,gBAAAA,CAAW,eAAA,CAAA;AAE3CF,QAAAA,GAAAA,CAAIM,IAAI,GAAG;YACTC,IAAAA,EAAM;gBACJC,UAAAA,EAAYJ,gBAAAA,EAAAA;gBACZK,UAAAA,EAAYN,iBAAAA,EAAAA,CAAoBO,GAAG,CAACT,KAAAA,CAAAA;gBACpCU,YAAAA,EAAcN,mBAAAA,EAAAA,CAAsBK,GAAG,CAACT,KAAAA;AAC1C;AACF,SAAA;AACF,IAAA;AACF,CAAA;;;;"}
1
+ {"version":3,"file":"init.js","sources":["../../../server/src/controllers/init.ts"],"sourcesContent":["import { getService } from '../utils';\n\nexport default {\n async getInitData(ctx: any) {\n const { toDto } = getService('data-mapper');\n const { findAllComponents } = getService('components');\n const { getAllFieldSizes } = getService('field-sizes');\n const { findAllContentTypes } = getService('content-types');\n const { getContentStructure } = getService('content-structure');\n\n const contentStructure = await getContentStructure();\n\n ctx.body = {\n data: {\n fieldSizes: getAllFieldSizes(),\n components: findAllComponents().map(toDto),\n contentTypes: findAllContentTypes().map(toDto),\n ...(contentStructure ? { contentStructure } : {}),\n },\n };\n },\n};\n"],"names":["getInitData","ctx","toDto","getService","findAllComponents","getAllFieldSizes","findAllContentTypes","getContentStructure","contentStructure","body","data","fieldSizes","components","map","contentTypes"],"mappings":";;;;AAEA,WAAe;AACb,IAAA,MAAMA,aAAYC,GAAQ,EAAA;AACxB,QAAA,MAAM,EAAEC,KAAK,EAAE,GAAGC,gBAAAA,CAAW,aAAA,CAAA;AAC7B,QAAA,MAAM,EAAEC,iBAAiB,EAAE,GAAGD,gBAAAA,CAAW,YAAA,CAAA;AACzC,QAAA,MAAM,EAAEE,gBAAgB,EAAE,GAAGF,gBAAAA,CAAW,aAAA,CAAA;AACxC,QAAA,MAAM,EAAEG,mBAAmB,EAAE,GAAGH,gBAAAA,CAAW,eAAA,CAAA;AAC3C,QAAA,MAAM,EAAEI,mBAAmB,EAAE,GAAGJ,gBAAAA,CAAW,mBAAA,CAAA;AAE3C,QAAA,MAAMK,mBAAmB,MAAMD,mBAAAA,EAAAA;AAE/BN,QAAAA,GAAAA,CAAIQ,IAAI,GAAG;YACTC,IAAAA,EAAM;gBACJC,UAAAA,EAAYN,gBAAAA,EAAAA;gBACZO,UAAAA,EAAYR,iBAAAA,EAAAA,CAAoBS,GAAG,CAACX,KAAAA,CAAAA;gBACpCY,YAAAA,EAAcR,mBAAAA,EAAAA,CAAsBO,GAAG,CAACX,KAAAA,CAAAA;AACxC,gBAAA,GAAIM,gBAAAA,GAAmB;AAAEA,oBAAAA;AAAiB,iBAAA,GAAI;AAChD;AACF,SAAA;AACF,IAAA;AACF,CAAA;;;;"}
@@ -1,16 +1,21 @@
1
1
  import { getService } from '../utils/index.mjs';
2
2
 
3
3
  var init = {
4
- getInitData (ctx) {
4
+ async getInitData (ctx) {
5
5
  const { toDto } = getService('data-mapper');
6
6
  const { findAllComponents } = getService('components');
7
7
  const { getAllFieldSizes } = getService('field-sizes');
8
8
  const { findAllContentTypes } = getService('content-types');
9
+ const { getContentStructure } = getService('content-structure');
10
+ const contentStructure = await getContentStructure();
9
11
  ctx.body = {
10
12
  data: {
11
13
  fieldSizes: getAllFieldSizes(),
12
14
  components: findAllComponents().map(toDto),
13
- contentTypes: findAllContentTypes().map(toDto)
15
+ contentTypes: findAllContentTypes().map(toDto),
16
+ ...contentStructure ? {
17
+ contentStructure
18
+ } : {}
14
19
  }
15
20
  };
16
21
  }
@@ -1 +1 @@
1
- {"version":3,"file":"init.mjs","sources":["../../../server/src/controllers/init.ts"],"sourcesContent":["import { getService } from '../utils';\n\nexport default {\n getInitData(ctx: any) {\n const { toDto } = getService('data-mapper');\n const { findAllComponents } = getService('components');\n const { getAllFieldSizes } = getService('field-sizes');\n const { findAllContentTypes } = getService('content-types');\n\n ctx.body = {\n data: {\n fieldSizes: getAllFieldSizes(),\n components: findAllComponents().map(toDto),\n contentTypes: findAllContentTypes().map(toDto),\n },\n };\n },\n};\n"],"names":["getInitData","ctx","toDto","getService","findAllComponents","getAllFieldSizes","findAllContentTypes","body","data","fieldSizes","components","map","contentTypes"],"mappings":";;AAEA,WAAe;AACbA,IAAAA,WAAAA,CAAAA,CAAYC,GAAQ,EAAA;AAClB,QAAA,MAAM,EAAEC,KAAK,EAAE,GAAGC,UAAAA,CAAW,aAAA,CAAA;AAC7B,QAAA,MAAM,EAAEC,iBAAiB,EAAE,GAAGD,UAAAA,CAAW,YAAA,CAAA;AACzC,QAAA,MAAM,EAAEE,gBAAgB,EAAE,GAAGF,UAAAA,CAAW,aAAA,CAAA;AACxC,QAAA,MAAM,EAAEG,mBAAmB,EAAE,GAAGH,UAAAA,CAAW,eAAA,CAAA;AAE3CF,QAAAA,GAAAA,CAAIM,IAAI,GAAG;YACTC,IAAAA,EAAM;gBACJC,UAAAA,EAAYJ,gBAAAA,EAAAA;gBACZK,UAAAA,EAAYN,iBAAAA,EAAAA,CAAoBO,GAAG,CAACT,KAAAA,CAAAA;gBACpCU,YAAAA,EAAcN,mBAAAA,EAAAA,CAAsBK,GAAG,CAACT,KAAAA;AAC1C;AACF,SAAA;AACF,IAAA;AACF,CAAA;;;;"}
1
+ {"version":3,"file":"init.mjs","sources":["../../../server/src/controllers/init.ts"],"sourcesContent":["import { getService } from '../utils';\n\nexport default {\n async getInitData(ctx: any) {\n const { toDto } = getService('data-mapper');\n const { findAllComponents } = getService('components');\n const { getAllFieldSizes } = getService('field-sizes');\n const { findAllContentTypes } = getService('content-types');\n const { getContentStructure } = getService('content-structure');\n\n const contentStructure = await getContentStructure();\n\n ctx.body = {\n data: {\n fieldSizes: getAllFieldSizes(),\n components: findAllComponents().map(toDto),\n contentTypes: findAllContentTypes().map(toDto),\n ...(contentStructure ? { contentStructure } : {}),\n },\n };\n },\n};\n"],"names":["getInitData","ctx","toDto","getService","findAllComponents","getAllFieldSizes","findAllContentTypes","getContentStructure","contentStructure","body","data","fieldSizes","components","map","contentTypes"],"mappings":";;AAEA,WAAe;AACb,IAAA,MAAMA,aAAYC,GAAQ,EAAA;AACxB,QAAA,MAAM,EAAEC,KAAK,EAAE,GAAGC,UAAAA,CAAW,aAAA,CAAA;AAC7B,QAAA,MAAM,EAAEC,iBAAiB,EAAE,GAAGD,UAAAA,CAAW,YAAA,CAAA;AACzC,QAAA,MAAM,EAAEE,gBAAgB,EAAE,GAAGF,UAAAA,CAAW,aAAA,CAAA;AACxC,QAAA,MAAM,EAAEG,mBAAmB,EAAE,GAAGH,UAAAA,CAAW,eAAA,CAAA;AAC3C,QAAA,MAAM,EAAEI,mBAAmB,EAAE,GAAGJ,UAAAA,CAAW,mBAAA,CAAA;AAE3C,QAAA,MAAMK,mBAAmB,MAAMD,mBAAAA,EAAAA;AAE/BN,QAAAA,GAAAA,CAAIQ,IAAI,GAAG;YACTC,IAAAA,EAAM;gBACJC,UAAAA,EAAYN,gBAAAA,EAAAA;gBACZO,UAAAA,EAAYR,iBAAAA,EAAAA,CAAoBS,GAAG,CAACX,KAAAA,CAAAA;gBACpCY,YAAAA,EAAcR,mBAAAA,EAAAA,CAAsBO,GAAG,CAACX,KAAAA,CAAAA;AACxC,gBAAA,GAAIM,gBAAAA,GAAmB;AAAEA,oBAAAA;AAAiB,iBAAA,GAAI;AAChD;AACF,SAAA;AACF,IAAA;AACF,CAAA;;;;"}
@@ -0,0 +1,53 @@
1
+ 'use strict';
2
+
3
+ var fp = require('lodash/fp');
4
+
5
+ const isInternalUid = (uid)=>{
6
+ return uid.startsWith('admin::') || uid.startsWith('strapi::');
7
+ };
8
+ const createContentStructureService = ({ strapi })=>{
9
+ const coreContentStructure = strapi.get('content-structure');
10
+ const isContentTypeVisible = (model)=>{
11
+ return fp.getOr(true, 'pluginOptions.content-manager.visible', model) === true;
12
+ };
13
+ /**
14
+ * Whether a content type may appear in the folder nav: a known, user-facing type
15
+ * that is neither internal nor hidden via pluginOptions.
16
+ */ const isFileableContentType = (uid)=>{
17
+ const schema = strapi.contentTypes[uid];
18
+ if (!schema) {
19
+ return false;
20
+ }
21
+ if (isInternalUid(uid)) {
22
+ return false;
23
+ }
24
+ return isContentTypeVisible(schema);
25
+ };
26
+ const pruneNode = (node)=>{
27
+ const children = node.children.filter((child)=>{
28
+ return child.type !== 'contentType' || isFileableContentType(child.uid);
29
+ }).map((child)=>{
30
+ return child.type === 'group' ? pruneNode(child) : child;
31
+ });
32
+ return {
33
+ ...node,
34
+ children
35
+ };
36
+ };
37
+ return {
38
+ async getContentStructure () {
39
+ const cleaned = await coreContentStructure.getCleanedFile();
40
+ if (!cleaned) {
41
+ return null;
42
+ }
43
+ const resolved = await coreContentStructure.resolve();
44
+ return {
45
+ collectionTypes: resolved.collectionTypes.map(pruneNode),
46
+ singleTypes: resolved.singleTypes.map(pruneNode)
47
+ };
48
+ }
49
+ };
50
+ };
51
+
52
+ module.exports = createContentStructureService;
53
+ //# sourceMappingURL=content-structure.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"content-structure.js","sources":["../../../server/src/services/content-structure.ts"],"sourcesContent":["import type { Core, Modules, UID, Struct } from '@strapi/types';\nimport { getOr } from 'lodash/fp';\n\ninterface CoreContentStructureService {\n getCleanedFile(): Promise<Modules.ContentStructure.ContentStructureFile | null>;\n resolve(): Promise<Modules.ContentStructure.ResolvedContentStructure>;\n}\n\ntype ResolvedGroupNode = Modules.ContentStructure.ResolvedGroupNode;\n\nconst isInternalUid = (uid: string): boolean => {\n return uid.startsWith('admin::') || uid.startsWith('strapi::');\n};\n\nconst createContentStructureService = ({ strapi }: { strapi: Core.Strapi }) => {\n const coreContentStructure: CoreContentStructureService = strapi.get('content-structure');\n\n const isContentTypeVisible = (model: Struct.ContentTypeSchema) => {\n return getOr(true, 'pluginOptions.content-manager.visible', model) === true;\n };\n\n /**\n * Whether a content type may appear in the folder nav: a known, user-facing type\n * that is neither internal nor hidden via pluginOptions.\n */\n const isFileableContentType = (uid: UID.ContentType): boolean => {\n const schema = strapi.contentTypes[uid];\n\n if (!schema) {\n return false;\n }\n\n if (isInternalUid(uid)) {\n return false;\n }\n\n return isContentTypeVisible(schema);\n };\n\n const pruneNode = (node: ResolvedGroupNode): ResolvedGroupNode => {\n const children = node.children\n .filter((child) => {\n return child.type !== 'contentType' || isFileableContentType(child.uid);\n })\n .map((child) => {\n return child.type === 'group' ? pruneNode(child) : child;\n });\n\n return { ...node, children };\n };\n\n return {\n async getContentStructure(): Promise<Modules.ContentStructure.ResolvedContentStructure | null> {\n const cleaned = await coreContentStructure.getCleanedFile();\n\n if (!cleaned) {\n return null;\n }\n\n const resolved = await coreContentStructure.resolve();\n\n return {\n collectionTypes: resolved.collectionTypes.map(pruneNode),\n singleTypes: resolved.singleTypes.map(pruneNode),\n };\n },\n };\n};\n\nexport default createContentStructureService;\n"],"names":["isInternalUid","uid","startsWith","createContentStructureService","strapi","coreContentStructure","get","isContentTypeVisible","model","getOr","isFileableContentType","schema","contentTypes","pruneNode","node","children","filter","child","type","map","getContentStructure","cleaned","getCleanedFile","resolved","resolve","collectionTypes","singleTypes"],"mappings":";;;;AAUA,MAAMA,gBAAgB,CAACC,GAAAA,GAAAA;AACrB,IAAA,OAAOA,IAAIC,UAAU,CAAC,SAAA,CAAA,IAAcD,GAAAA,CAAIC,UAAU,CAAC,UAAA,CAAA;AACrD,CAAA;AAEA,MAAMC,6BAAAA,GAAgC,CAAC,EAAEC,MAAM,EAA2B,GAAA;IACxE,MAAMC,oBAAAA,GAAoDD,MAAAA,CAAOE,GAAG,CAAC,mBAAA,CAAA;AAErE,IAAA,MAAMC,uBAAuB,CAACC,KAAAA,GAAAA;QAC5B,OAAOC,QAAAA,CAAM,IAAA,EAAM,uCAAA,EAAyCD,KAAAA,CAAAA,KAAW,IAAA;AACzE,IAAA,CAAA;AAEA;;;MAIA,MAAME,wBAAwB,CAACT,GAAAA,GAAAA;AAC7B,QAAA,MAAMU,MAAAA,GAASP,MAAAA,CAAOQ,YAAY,CAACX,GAAAA,CAAI;AAEvC,QAAA,IAAI,CAACU,MAAAA,EAAQ;YACX,OAAO,KAAA;AACT,QAAA;AAEA,QAAA,IAAIX,cAAcC,GAAAA,CAAAA,EAAM;YACtB,OAAO,KAAA;AACT,QAAA;AAEA,QAAA,OAAOM,oBAAAA,CAAqBI,MAAAA,CAAAA;AAC9B,IAAA,CAAA;AAEA,IAAA,MAAME,YAAY,CAACC,IAAAA,GAAAA;AACjB,QAAA,MAAMC,WAAWD,IAAAA,CAAKC,QAAQ,CAC3BC,MAAM,CAAC,CAACC,KAAAA,GAAAA;AACP,YAAA,OAAOA,MAAMC,IAAI,KAAK,aAAA,IAAiBR,qBAAAA,CAAsBO,MAAMhB,GAAG,CAAA;QACxE,CAAA,CAAA,CACCkB,GAAG,CAAC,CAACF,KAAAA,GAAAA;AACJ,YAAA,OAAOA,KAAAA,CAAMC,IAAI,KAAK,OAAA,GAAUL,UAAUI,KAAAA,CAAAA,GAASA,KAAAA;AACrD,QAAA,CAAA,CAAA;QAEF,OAAO;AAAE,YAAA,GAAGH,IAAI;AAAEC,YAAAA;AAAS,SAAA;AAC7B,IAAA,CAAA;IAEA,OAAO;QACL,MAAMK,mBAAAA,CAAAA,GAAAA;YACJ,MAAMC,OAAAA,GAAU,MAAMhB,oBAAAA,CAAqBiB,cAAc,EAAA;AAEzD,YAAA,IAAI,CAACD,OAAAA,EAAS;gBACZ,OAAO,IAAA;AACT,YAAA;YAEA,MAAME,QAAAA,GAAW,MAAMlB,oBAAAA,CAAqBmB,OAAO,EAAA;YAEnD,OAAO;AACLC,gBAAAA,eAAAA,EAAiBF,QAAAA,CAASE,eAAe,CAACN,GAAG,CAACN,SAAAA,CAAAA;AAC9Ca,gBAAAA,WAAAA,EAAaH,QAAAA,CAASG,WAAW,CAACP,GAAG,CAACN,SAAAA;AACxC,aAAA;AACF,QAAA;AACF,KAAA;AACF;;;;"}
@@ -0,0 +1,51 @@
1
+ import { getOr } from 'lodash/fp';
2
+
3
+ const isInternalUid = (uid)=>{
4
+ return uid.startsWith('admin::') || uid.startsWith('strapi::');
5
+ };
6
+ const createContentStructureService = ({ strapi })=>{
7
+ const coreContentStructure = strapi.get('content-structure');
8
+ const isContentTypeVisible = (model)=>{
9
+ return getOr(true, 'pluginOptions.content-manager.visible', model) === true;
10
+ };
11
+ /**
12
+ * Whether a content type may appear in the folder nav: a known, user-facing type
13
+ * that is neither internal nor hidden via pluginOptions.
14
+ */ const isFileableContentType = (uid)=>{
15
+ const schema = strapi.contentTypes[uid];
16
+ if (!schema) {
17
+ return false;
18
+ }
19
+ if (isInternalUid(uid)) {
20
+ return false;
21
+ }
22
+ return isContentTypeVisible(schema);
23
+ };
24
+ const pruneNode = (node)=>{
25
+ const children = node.children.filter((child)=>{
26
+ return child.type !== 'contentType' || isFileableContentType(child.uid);
27
+ }).map((child)=>{
28
+ return child.type === 'group' ? pruneNode(child) : child;
29
+ });
30
+ return {
31
+ ...node,
32
+ children
33
+ };
34
+ };
35
+ return {
36
+ async getContentStructure () {
37
+ const cleaned = await coreContentStructure.getCleanedFile();
38
+ if (!cleaned) {
39
+ return null;
40
+ }
41
+ const resolved = await coreContentStructure.resolve();
42
+ return {
43
+ collectionTypes: resolved.collectionTypes.map(pruneNode),
44
+ singleTypes: resolved.singleTypes.map(pruneNode)
45
+ };
46
+ }
47
+ };
48
+ };
49
+
50
+ export { createContentStructureService as default };
51
+ //# sourceMappingURL=content-structure.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"content-structure.mjs","sources":["../../../server/src/services/content-structure.ts"],"sourcesContent":["import type { Core, Modules, UID, Struct } from '@strapi/types';\nimport { getOr } from 'lodash/fp';\n\ninterface CoreContentStructureService {\n getCleanedFile(): Promise<Modules.ContentStructure.ContentStructureFile | null>;\n resolve(): Promise<Modules.ContentStructure.ResolvedContentStructure>;\n}\n\ntype ResolvedGroupNode = Modules.ContentStructure.ResolvedGroupNode;\n\nconst isInternalUid = (uid: string): boolean => {\n return uid.startsWith('admin::') || uid.startsWith('strapi::');\n};\n\nconst createContentStructureService = ({ strapi }: { strapi: Core.Strapi }) => {\n const coreContentStructure: CoreContentStructureService = strapi.get('content-structure');\n\n const isContentTypeVisible = (model: Struct.ContentTypeSchema) => {\n return getOr(true, 'pluginOptions.content-manager.visible', model) === true;\n };\n\n /**\n * Whether a content type may appear in the folder nav: a known, user-facing type\n * that is neither internal nor hidden via pluginOptions.\n */\n const isFileableContentType = (uid: UID.ContentType): boolean => {\n const schema = strapi.contentTypes[uid];\n\n if (!schema) {\n return false;\n }\n\n if (isInternalUid(uid)) {\n return false;\n }\n\n return isContentTypeVisible(schema);\n };\n\n const pruneNode = (node: ResolvedGroupNode): ResolvedGroupNode => {\n const children = node.children\n .filter((child) => {\n return child.type !== 'contentType' || isFileableContentType(child.uid);\n })\n .map((child) => {\n return child.type === 'group' ? pruneNode(child) : child;\n });\n\n return { ...node, children };\n };\n\n return {\n async getContentStructure(): Promise<Modules.ContentStructure.ResolvedContentStructure | null> {\n const cleaned = await coreContentStructure.getCleanedFile();\n\n if (!cleaned) {\n return null;\n }\n\n const resolved = await coreContentStructure.resolve();\n\n return {\n collectionTypes: resolved.collectionTypes.map(pruneNode),\n singleTypes: resolved.singleTypes.map(pruneNode),\n };\n },\n };\n};\n\nexport default createContentStructureService;\n"],"names":["isInternalUid","uid","startsWith","createContentStructureService","strapi","coreContentStructure","get","isContentTypeVisible","model","getOr","isFileableContentType","schema","contentTypes","pruneNode","node","children","filter","child","type","map","getContentStructure","cleaned","getCleanedFile","resolved","resolve","collectionTypes","singleTypes"],"mappings":";;AAUA,MAAMA,gBAAgB,CAACC,GAAAA,GAAAA;AACrB,IAAA,OAAOA,IAAIC,UAAU,CAAC,SAAA,CAAA,IAAcD,GAAAA,CAAIC,UAAU,CAAC,UAAA,CAAA;AACrD,CAAA;AAEA,MAAMC,6BAAAA,GAAgC,CAAC,EAAEC,MAAM,EAA2B,GAAA;IACxE,MAAMC,oBAAAA,GAAoDD,MAAAA,CAAOE,GAAG,CAAC,mBAAA,CAAA;AAErE,IAAA,MAAMC,uBAAuB,CAACC,KAAAA,GAAAA;QAC5B,OAAOC,KAAAA,CAAM,IAAA,EAAM,uCAAA,EAAyCD,KAAAA,CAAAA,KAAW,IAAA;AACzE,IAAA,CAAA;AAEA;;;MAIA,MAAME,wBAAwB,CAACT,GAAAA,GAAAA;AAC7B,QAAA,MAAMU,MAAAA,GAASP,MAAAA,CAAOQ,YAAY,CAACX,GAAAA,CAAI;AAEvC,QAAA,IAAI,CAACU,MAAAA,EAAQ;YACX,OAAO,KAAA;AACT,QAAA;AAEA,QAAA,IAAIX,cAAcC,GAAAA,CAAAA,EAAM;YACtB,OAAO,KAAA;AACT,QAAA;AAEA,QAAA,OAAOM,oBAAAA,CAAqBI,MAAAA,CAAAA;AAC9B,IAAA,CAAA;AAEA,IAAA,MAAME,YAAY,CAACC,IAAAA,GAAAA;AACjB,QAAA,MAAMC,WAAWD,IAAAA,CAAKC,QAAQ,CAC3BC,MAAM,CAAC,CAACC,KAAAA,GAAAA;AACP,YAAA,OAAOA,MAAMC,IAAI,KAAK,aAAA,IAAiBR,qBAAAA,CAAsBO,MAAMhB,GAAG,CAAA;QACxE,CAAA,CAAA,CACCkB,GAAG,CAAC,CAACF,KAAAA,GAAAA;AACJ,YAAA,OAAOA,KAAAA,CAAMC,IAAI,KAAK,OAAA,GAAUL,UAAUI,KAAAA,CAAAA,GAASA,KAAAA;AACrD,QAAA,CAAA,CAAA;QAEF,OAAO;AAAE,YAAA,GAAGH,IAAI;AAAEC,YAAAA;AAAS,SAAA;AAC7B,IAAA,CAAA;IAEA,OAAO;QACL,MAAMK,mBAAAA,CAAAA,GAAAA;YACJ,MAAMC,OAAAA,GAAU,MAAMhB,oBAAAA,CAAqBiB,cAAc,EAAA;AAEzD,YAAA,IAAI,CAACD,OAAAA,EAAS;gBACZ,OAAO,IAAA;AACT,YAAA;YAEA,MAAME,QAAAA,GAAW,MAAMlB,oBAAAA,CAAqBmB,OAAO,EAAA;YAEnD,OAAO;AACLC,gBAAAA,eAAAA,EAAiBF,QAAAA,CAASE,eAAe,CAACN,GAAG,CAACN,SAAAA,CAAAA;AAC9Ca,gBAAAA,WAAAA,EAAaH,QAAAA,CAASG,WAAW,CAACP,GAAG,CAACN,SAAAA;AACxC,aAAA;AACF,QAAA;AACF,KAAA;AACF;;;;"}
@@ -1,6 +1,7 @@
1
1
  'use strict';
2
2
 
3
3
  var components = require('./components.js');
4
+ var contentStructure = require('./content-structure.js');
4
5
  var contentTypes = require('./content-types.js');
5
6
  var dataMapper = require('./data-mapper.js');
6
7
  var fieldSizes = require('./field-sizes.js');
@@ -17,6 +18,7 @@ var documentManager = require('./document-manager.js');
17
18
 
18
19
  var services = {
19
20
  components,
21
+ 'content-structure': contentStructure,
20
22
  'content-types': contentTypes,
21
23
  'data-mapper': dataMapper,
22
24
  'document-metadata': documentMetadata,
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../server/src/services/index.ts"],"sourcesContent":["import components from './components';\nimport contentTypes from './content-types';\nimport dataMapper from './data-mapper';\nimport fieldSizes from './field-sizes';\nimport metrics from './metrics';\nimport permissionChecker from './permission-checker';\nimport permission from './permission';\nimport populateBuilder from './populate-builder';\nimport uid from './uid';\nimport history from '../history';\nimport preview from '../preview';\nimport homepage from '../homepage';\nimport documentMetadata from './document-metadata';\nimport documentManager from './document-manager';\n\nexport default {\n components,\n 'content-types': contentTypes,\n 'data-mapper': dataMapper,\n 'document-metadata': documentMetadata,\n 'document-manager': documentManager,\n 'field-sizes': fieldSizes,\n metrics,\n 'permission-checker': permissionChecker,\n permission,\n 'populate-builder': populateBuilder,\n uid,\n ...(history.services ? history.services : {}),\n ...(preview.services ? preview.services : {}),\n ...homepage.services,\n};\n"],"names":["components","contentTypes","dataMapper","documentMetadata","documentManager","fieldSizes","metrics","permissionChecker","permission","populateBuilder","uid","history","services","preview","homepage"],"mappings":";;;;;;;;;;;;;;;;;AAeA,eAAe;AACbA,IAAAA,UAAAA;IACA,eAAA,EAAiBC,YAAAA;IACjB,aAAA,EAAeC,UAAAA;IACf,mBAAA,EAAqBC,gBAAAA;IACrB,kBAAA,EAAoBC,eAAAA;IACpB,aAAA,EAAeC,UAAAA;AACfC,IAAAA,OAAAA;IACA,oBAAA,EAAsBC,yBAAAA;AACtBC,IAAAA,UAAAA;IACA,kBAAA,EAAoBC,eAAAA;AACpBC,IAAAA,GAAAA;AACA,IAAA,GAAIC,MAAQC,QAAQ,GAAGD,MAAQC,QAAQ,GAAG,EAAE;AAC5C,IAAA,GAAIC,QAAQD,QAAQ,GAAGC,QAAQD,QAAQ,GAAG,EAAE;AAC5C,IAAA,GAAGE,QAASF;AACd,CAAA;;;;"}
1
+ {"version":3,"file":"index.js","sources":["../../../server/src/services/index.ts"],"sourcesContent":["import components from './components';\nimport contentStructure from './content-structure';\nimport contentTypes from './content-types';\nimport dataMapper from './data-mapper';\nimport fieldSizes from './field-sizes';\nimport metrics from './metrics';\nimport permissionChecker from './permission-checker';\nimport permission from './permission';\nimport populateBuilder from './populate-builder';\nimport uid from './uid';\nimport history from '../history';\nimport preview from '../preview';\nimport homepage from '../homepage';\nimport documentMetadata from './document-metadata';\nimport documentManager from './document-manager';\n\nexport default {\n components,\n 'content-structure': contentStructure,\n 'content-types': contentTypes,\n 'data-mapper': dataMapper,\n 'document-metadata': documentMetadata,\n 'document-manager': documentManager,\n 'field-sizes': fieldSizes,\n metrics,\n 'permission-checker': permissionChecker,\n permission,\n 'populate-builder': populateBuilder,\n uid,\n ...(history.services ? history.services : {}),\n ...(preview.services ? preview.services : {}),\n ...homepage.services,\n};\n"],"names":["components","contentStructure","contentTypes","dataMapper","documentMetadata","documentManager","fieldSizes","metrics","permissionChecker","permission","populateBuilder","uid","history","services","preview","homepage"],"mappings":";;;;;;;;;;;;;;;;;;AAgBA,eAAe;AACbA,IAAAA,UAAAA;IACA,mBAAA,EAAqBC,gBAAAA;IACrB,eAAA,EAAiBC,YAAAA;IACjB,aAAA,EAAeC,UAAAA;IACf,mBAAA,EAAqBC,gBAAAA;IACrB,kBAAA,EAAoBC,eAAAA;IACpB,aAAA,EAAeC,UAAAA;AACfC,IAAAA,OAAAA;IACA,oBAAA,EAAsBC,yBAAAA;AACtBC,IAAAA,UAAAA;IACA,kBAAA,EAAoBC,eAAAA;AACpBC,IAAAA,GAAAA;AACA,IAAA,GAAIC,MAAQC,QAAQ,GAAGD,MAAQC,QAAQ,GAAG,EAAE;AAC5C,IAAA,GAAIC,QAAQD,QAAQ,GAAGC,QAAQD,QAAQ,GAAG,EAAE;AAC5C,IAAA,GAAGE,QAASF;AACd,CAAA;;;;"}
@@ -1,4 +1,5 @@
1
1
  import components from './components.mjs';
2
+ import createContentStructureService from './content-structure.mjs';
2
3
  import service from './content-types.mjs';
3
4
  import dataMapper from './data-mapper.mjs';
4
5
  import createFieldSizesService from './field-sizes.mjs';
@@ -15,6 +16,7 @@ import documentManager from './document-manager.mjs';
15
16
 
16
17
  var services = {
17
18
  components,
19
+ 'content-structure': createContentStructureService,
18
20
  'content-types': service,
19
21
  'data-mapper': dataMapper,
20
22
  'document-metadata': documentMetadata,
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","sources":["../../../server/src/services/index.ts"],"sourcesContent":["import components from './components';\nimport contentTypes from './content-types';\nimport dataMapper from './data-mapper';\nimport fieldSizes from './field-sizes';\nimport metrics from './metrics';\nimport permissionChecker from './permission-checker';\nimport permission from './permission';\nimport populateBuilder from './populate-builder';\nimport uid from './uid';\nimport history from '../history';\nimport preview from '../preview';\nimport homepage from '../homepage';\nimport documentMetadata from './document-metadata';\nimport documentManager from './document-manager';\n\nexport default {\n components,\n 'content-types': contentTypes,\n 'data-mapper': dataMapper,\n 'document-metadata': documentMetadata,\n 'document-manager': documentManager,\n 'field-sizes': fieldSizes,\n metrics,\n 'permission-checker': permissionChecker,\n permission,\n 'populate-builder': populateBuilder,\n uid,\n ...(history.services ? history.services : {}),\n ...(preview.services ? preview.services : {}),\n ...homepage.services,\n};\n"],"names":["components","contentTypes","dataMapper","documentMetadata","documentManager","fieldSizes","metrics","permissionChecker","permission","populateBuilder","uid","history","services","preview","homepage"],"mappings":";;;;;;;;;;;;;;;AAeA,eAAe;AACbA,IAAAA,UAAAA;IACA,eAAA,EAAiBC,OAAAA;IACjB,aAAA,EAAeC,UAAAA;IACf,mBAAA,EAAqBC,gBAAAA;IACrB,kBAAA,EAAoBC,eAAAA;IACpB,aAAA,EAAeC,uBAAAA;AACfC,IAAAA,OAAAA;IACA,oBAAA,EAAsBC,iBAAAA;AACtBC,IAAAA,UAAAA;IACA,kBAAA,EAAoBC,eAAAA;AACpBC,IAAAA,GAAAA;AACA,IAAA,GAAIC,QAAQC,QAAQ,GAAGD,QAAQC,QAAQ,GAAG,EAAE;AAC5C,IAAA,GAAIC,QAAQD,QAAQ,GAAGC,QAAQD,QAAQ,GAAG,EAAE;AAC5C,IAAA,GAAGE,SAASF;AACd,CAAA;;;;"}
1
+ {"version":3,"file":"index.mjs","sources":["../../../server/src/services/index.ts"],"sourcesContent":["import components from './components';\nimport contentStructure from './content-structure';\nimport contentTypes from './content-types';\nimport dataMapper from './data-mapper';\nimport fieldSizes from './field-sizes';\nimport metrics from './metrics';\nimport permissionChecker from './permission-checker';\nimport permission from './permission';\nimport populateBuilder from './populate-builder';\nimport uid from './uid';\nimport history from '../history';\nimport preview from '../preview';\nimport homepage from '../homepage';\nimport documentMetadata from './document-metadata';\nimport documentManager from './document-manager';\n\nexport default {\n components,\n 'content-structure': contentStructure,\n 'content-types': contentTypes,\n 'data-mapper': dataMapper,\n 'document-metadata': documentMetadata,\n 'document-manager': documentManager,\n 'field-sizes': fieldSizes,\n metrics,\n 'permission-checker': permissionChecker,\n permission,\n 'populate-builder': populateBuilder,\n uid,\n ...(history.services ? history.services : {}),\n ...(preview.services ? preview.services : {}),\n ...homepage.services,\n};\n"],"names":["components","contentStructure","contentTypes","dataMapper","documentMetadata","documentManager","fieldSizes","metrics","permissionChecker","permission","populateBuilder","uid","history","services","preview","homepage"],"mappings":";;;;;;;;;;;;;;;;AAgBA,eAAe;AACbA,IAAAA,UAAAA;IACA,mBAAA,EAAqBC,6BAAAA;IACrB,eAAA,EAAiBC,OAAAA;IACjB,aAAA,EAAeC,UAAAA;IACf,mBAAA,EAAqBC,gBAAAA;IACrB,kBAAA,EAAoBC,eAAAA;IACpB,aAAA,EAAeC,uBAAAA;AACfC,IAAAA,OAAAA;IACA,oBAAA,EAAsBC,iBAAAA;AACtBC,IAAAA,UAAAA;IACA,kBAAA,EAAoBC,eAAAA;AACpBC,IAAAA,GAAAA;AACA,IAAA,GAAIC,QAAQC,QAAQ,GAAGD,QAAQC,QAAQ,GAAG,EAAE;AAC5C,IAAA,GAAIC,QAAQD,QAAQ,GAAGC,QAAQD,QAAQ,GAAG,EAAE;AAC5C,IAAA,GAAGE,SAASF;AACd,CAAA;;;;"}
@@ -29,7 +29,7 @@ declare const _default: {
29
29
  updateContentTypeConfiguration(ctx: any): Promise<any>;
30
30
  };
31
31
  init: {
32
- getInitData(ctx: any): void;
32
+ getInitData(ctx: any): Promise<void>;
33
33
  };
34
34
  relations: {
35
35
  extractAndValidateRequestInfo(ctx: any, id?: import("@strapi/types/dist/data/constants.js").ID): Promise<any>;
@@ -1,5 +1,5 @@
1
1
  declare const _default: {
2
- getInitData(ctx: any): void;
2
+ getInitData(ctx: any): Promise<void>;
3
3
  };
4
4
  export default _default;
5
5
  //# sourceMappingURL=init.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../../../server/src/controllers/init.ts"],"names":[],"mappings":";qBAGmB,GAAG;;AADtB,wBAeE"}
1
+ {"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../../../server/src/controllers/init.ts"],"names":[],"mappings":";qBAGyB,GAAG;;AAD5B,wBAmBE"}
@@ -37,7 +37,7 @@ declare const _default: () => {
37
37
  updateContentTypeConfiguration(ctx: any): Promise<any>;
38
38
  };
39
39
  init: {
40
- getInitData(ctx: any): void;
40
+ getInitData(ctx: any): Promise<void>;
41
41
  };
42
42
  relations: {
43
43
  extractAndValidateRequestInfo(ctx: any, id?: import("@strapi/types/dist/data/constants.js").ID): Promise<any>;
@@ -146,6 +146,11 @@ declare const _default: () => {
146
146
  }>>;
147
147
  syncConfigurations(): Promise<void>;
148
148
  };
149
+ 'content-structure': ({ strapi }: {
150
+ strapi: import("@strapi/types/dist/core/strapi.js").Strapi;
151
+ }) => {
152
+ getContentStructure(): Promise<import("@strapi/types/dist/modules/content-structure.js").ResolvedContentStructure | null>;
153
+ };
149
154
  'content-types': ({ strapi }: {
150
155
  strapi: import("@strapi/types/dist/core/strapi.js").Strapi;
151
156
  }) => {
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../server/src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;sBAM2B,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;wBAagzB,CAAC;sBAAgE,CAAC;2BAA8C,CAAC;;;;;;;;;;;;;sBAAsvH,CAAC;;;;;wBAAkZ,CAAC;;;;;;;wBAAkkD,CAAC;;;wBAAgd,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;0BAAlvK,CAAC;;;;;;;0BAAg4B,CAAC;;;;;;;uBAAw2B,SAAS;;;;;;0BAA5d,CAAC;;;;;;;;;;;;0BAAmvB,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;sBAHn3H,CAAA;;;;;;sBAGw5B,CAAC;;;;;;sBAAy7C,CAAC;;;;;AAXv1E,wBAUE"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../server/src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;sBAM2B,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;wBAagzB,CAAC;sBAAgE,CAAC;2BAA8C,CAAC;;;;;;;;;;;;;sBAAsvH,CAAC;;;;;wBAAkZ,CAAC;;;;;;;wBAAkkD,CAAC;;;wBAAgd,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;0BAAlvK,CAAC;;;;;;;0BAAg4B,CAAC;;;;;;;uBAAw2B,SAAS;;;;;;0BAA5d,CAAC;;;;;;;;;;;;0BAAmvB,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;sBAHn3H,CAAA;;;;;;sBAGw5B,CAAC;;;;;;sBAAy7C,CAAC;;;;;AAXv1E,wBAUE"}
@@ -0,0 +1,8 @@
1
+ import type { Core, Modules } from '@strapi/types';
2
+ declare const createContentStructureService: ({ strapi }: {
3
+ strapi: Core.Strapi;
4
+ }) => {
5
+ getContentStructure(): Promise<Modules.ContentStructure.ResolvedContentStructure | null>;
6
+ };
7
+ export default createContentStructureService;
8
+ //# 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":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,OAAO,EAAe,MAAM,eAAe,CAAC;AAchE,QAAA,MAAM,6BAA6B,GAAI,YAAY;IAAE,MAAM,EAAE,IAAI,CAAC,MAAM,CAAA;CAAE;2BAsCzC,OAAO,CAAC,OAAO,CAAC,gBAAgB,CAAC,wBAAwB,GAAG,IAAI,CAAC;CAejG,CAAC;AAEF,eAAe,6BAA6B,CAAC"}
@@ -35,6 +35,11 @@ declare const _default: {
35
35
  }>>;
36
36
  syncConfigurations(): Promise<void>;
37
37
  };
38
+ 'content-structure': ({ strapi }: {
39
+ strapi: import("@strapi/types/dist/core/strapi.js").Strapi;
40
+ }) => {
41
+ getContentStructure(): Promise<import("@strapi/types/dist/modules/content-structure.js").ResolvedContentStructure | null>;
42
+ };
38
43
  'content-types': ({ strapi }: {
39
44
  strapi: import("@strapi/types/dist/core/strapi.js").Strapi;
40
45
  }) => {
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../server/src/services/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;oBA+B+N,CAAC;kBAAgE,CAAC;uBAA8C,CAAC;;;;;;;;;;;;;kBAAsvH,CAAC;;;;;oBAAkZ,CAAC;;;;;;;oBAAkkD,CAAC;;;oBAAgd,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;sBAAlvK,CAAC;;;;;;;sBAAg4B,CAAC;;;;;;;mBAAw2B,SAAS;;;;;;sBAA5d,CAAC;;;;;;;;;;;;sBAAmvB,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAtBjwG,CAAA;;;;;;kBAsBsS,CAAC;;;;;;kBAAy7C,CAAC;;;;AAhBxuD,wBAeE"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../server/src/services/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;oBAiCkI,CAAC;kBAAgE,CAAC;uBAA8C,CAAC;;;;;;;;;;;;;kBAAsvH,CAAC;;;;;oBAAkZ,CAAC;;;;;;;oBAAkkD,CAAC;;;oBAAgd,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;sBAAlvK,CAAC;;;;;;;sBAAg4B,CAAC;;;;;;;mBAAw2B,SAAS;;;;;;sBAA5d,CAAC;;;;;;;;;;;;sBAAmvB,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAzB9oG,CAAC;;;;;;kBAyBkL,CAAC;;;;;;kBAAy7C,CAAC;;;;AAjB3oD,wBAgBE"}
@@ -1,7 +1,9 @@
1
1
  import '@strapi/types';
2
2
  import type { DocumentManagerService } from '../services/document-manager';
3
3
  import type DocumentMetadata from '../services/document-metadata';
4
+ import type contentStructure from '../services/content-structure';
4
5
  type Services = {
6
+ 'content-structure': typeof contentStructure;
5
7
  'document-manager': DocumentManagerService;
6
8
  'document-metadata': typeof DocumentMetadata;
7
9
  [key: string]: any;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../server/src/utils/index.ts"],"names":[],"mappings":"AAAA,OAAO,eAAe,CAAC;AAEvB,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,8BAA8B,CAAC;AAC3E,OAAO,KAAK,gBAAgB,MAAM,+BAA+B,CAAC;AAElE,KAAK,QAAQ,GAAG;IACd,kBAAkB,EAAE,sBAAsB,CAAC;IAC3C,mBAAmB,EAAE,OAAO,gBAAgB,CAAC;IAC7C,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;CACpB,CAAC;AAEF,QAAA,MAAM,UAAU,GAAI,KAAK,SAAS,MAAM,QAAQ,EAAE,MAAM,KAAK,KAAG,UAAU,CAAC,QAAQ,CAAC,KAAK,CAAC,CAEzF,CAAC;AAEF,OAAO,EAAE,UAAU,EAAE,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../server/src/utils/index.ts"],"names":[],"mappings":"AAAA,OAAO,eAAe,CAAC;AAEvB,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,8BAA8B,CAAC;AAC3E,OAAO,KAAK,gBAAgB,MAAM,+BAA+B,CAAC;AAClE,OAAO,KAAK,gBAAgB,MAAM,+BAA+B,CAAC;AAElE,KAAK,QAAQ,GAAG;IACd,mBAAmB,EAAE,OAAO,gBAAgB,CAAC;IAC7C,kBAAkB,EAAE,sBAAsB,CAAC;IAC3C,mBAAmB,EAAE,OAAO,gBAAgB,CAAC;IAC7C,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;CACpB,CAAC;AAEF,QAAA,MAAM,UAAU,GAAI,KAAK,SAAS,MAAM,QAAQ,EAAE,MAAM,KAAK,KAAG,UAAU,CAAC,QAAQ,CAAC,KAAK,CAAC,CAEzF,CAAC;AAEF,OAAO,EAAE,UAAU,EAAE,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../server/src/utils/index.ts"],"sourcesContent":["import '@strapi/types';\n\nimport type { DocumentManagerService } from '../services/document-manager';\nimport type DocumentMetadata from '../services/document-metadata';\n\ntype Services = {\n 'document-manager': DocumentManagerService;\n 'document-metadata': typeof DocumentMetadata;\n [key: string]: any;\n};\n\nconst getService = <TName extends keyof Services>(name: TName): ReturnType<Services[TName]> => {\n return strapi.plugin('content-manager').service(name as string);\n};\n\nexport { getService };\n"],"names":["getService","name","strapi","plugin","service"],"mappings":";;;;AAWA,MAAMA,aAAa,CAA+BC,IAAAA,GAAAA;AAChD,IAAA,OAAOC,MAAAA,CAAOC,MAAM,CAAC,iBAAA,CAAA,CAAmBC,OAAO,CAACH,IAAAA,CAAAA;AAClD;;;;"}
1
+ {"version":3,"file":"index.js","sources":["../../../server/src/utils/index.ts"],"sourcesContent":["import '@strapi/types';\n\nimport type { DocumentManagerService } from '../services/document-manager';\nimport type DocumentMetadata from '../services/document-metadata';\nimport type contentStructure from '../services/content-structure';\n\ntype Services = {\n 'content-structure': typeof contentStructure;\n 'document-manager': DocumentManagerService;\n 'document-metadata': typeof DocumentMetadata;\n [key: string]: any;\n};\n\nconst getService = <TName extends keyof Services>(name: TName): ReturnType<Services[TName]> => {\n return strapi.plugin('content-manager').service(name as string);\n};\n\nexport { getService };\n"],"names":["getService","name","strapi","plugin","service"],"mappings":";;;;AAaA,MAAMA,aAAa,CAA+BC,IAAAA,GAAAA;AAChD,IAAA,OAAOC,MAAAA,CAAOC,MAAM,CAAC,iBAAA,CAAA,CAAmBC,OAAO,CAACH,IAAAA,CAAAA;AAClD;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","sources":["../../../server/src/utils/index.ts"],"sourcesContent":["import '@strapi/types';\n\nimport type { DocumentManagerService } from '../services/document-manager';\nimport type DocumentMetadata from '../services/document-metadata';\n\ntype Services = {\n 'document-manager': DocumentManagerService;\n 'document-metadata': typeof DocumentMetadata;\n [key: string]: any;\n};\n\nconst getService = <TName extends keyof Services>(name: TName): ReturnType<Services[TName]> => {\n return strapi.plugin('content-manager').service(name as string);\n};\n\nexport { getService };\n"],"names":["getService","name","strapi","plugin","service"],"mappings":";;AAWA,MAAMA,aAAa,CAA+BC,IAAAA,GAAAA;AAChD,IAAA,OAAOC,MAAAA,CAAOC,MAAM,CAAC,iBAAA,CAAA,CAAmBC,OAAO,CAACH,IAAAA,CAAAA;AAClD;;;;"}
1
+ {"version":3,"file":"index.mjs","sources":["../../../server/src/utils/index.ts"],"sourcesContent":["import '@strapi/types';\n\nimport type { DocumentManagerService } from '../services/document-manager';\nimport type DocumentMetadata from '../services/document-metadata';\nimport type contentStructure from '../services/content-structure';\n\ntype Services = {\n 'content-structure': typeof contentStructure;\n 'document-manager': DocumentManagerService;\n 'document-metadata': typeof DocumentMetadata;\n [key: string]: any;\n};\n\nconst getService = <TName extends keyof Services>(name: TName): ReturnType<Services[TName]> => {\n return strapi.plugin('content-manager').service(name as string);\n};\n\nexport { getService };\n"],"names":["getService","name","strapi","plugin","service"],"mappings":";;AAaA,MAAMA,aAAa,CAA+BC,IAAAA,GAAAA;AAChD,IAAA,OAAOC,MAAAA,CAAOC,MAAM,CAAC,iBAAA,CAAA,CAAmBC,OAAO,CAACH,IAAAA,CAAAA;AAClD;;;;"}
@@ -1,4 +1,5 @@
1
1
  import { errors } from '@strapi/utils';
2
+ import type { Modules } from '@strapi/types';
2
3
  import { Component } from './components';
3
4
  import { ContentType } from './content-types';
4
5
  /**
@@ -17,6 +18,7 @@ export declare namespace GetInitData {
17
18
  }>;
18
19
  components: Component[];
19
20
  contentTypes: ContentType[];
21
+ contentStructure?: Modules.ContentStructure.ResolvedContentStructure;
20
22
  };
21
23
  error?: errors.ApplicationError;
22
24
  }
@@ -1 +1 @@
1
- {"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../../shared/contracts/init.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AACvC,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAE9C;;GAEG;AACH,MAAM,CAAC,OAAO,WAAW,WAAW,CAAC;IACnC,UAAiB,OAAO;QACtB,IAAI,EAAE,EAAE,CAAC;QACT,KAAK,EAAE,EAAE,CAAC;KACX;IAED,UAAiB,QAAQ;QACvB,IAAI,EAAE;YACJ,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE;gBAAE,OAAO,EAAE,MAAM,CAAC;gBAAC,WAAW,EAAE,OAAO,CAAA;aAAE,CAAC,CAAC;YACtE,UAAU,EAAE,SAAS,EAAE,CAAC;YACxB,YAAY,EAAE,WAAW,EAAE,CAAC;SAC7B,CAAC;QACF,KAAK,CAAC,EAAE,MAAM,CAAC,gBAAgB,CAAC;KACjC;CACF"}
1
+ {"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../../shared/contracts/init.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AACvC,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAE9C;;GAEG;AACH,MAAM,CAAC,OAAO,WAAW,WAAW,CAAC;IACnC,UAAiB,OAAO;QACtB,IAAI,EAAE,EAAE,CAAC;QACT,KAAK,EAAE,EAAE,CAAC;KACX;IAED,UAAiB,QAAQ;QACvB,IAAI,EAAE;YACJ,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE;gBAAE,OAAO,EAAE,MAAM,CAAC;gBAAC,WAAW,EAAE,OAAO,CAAA;aAAE,CAAC,CAAC;YACtE,UAAU,EAAE,SAAS,EAAE,CAAC;YACxB,YAAY,EAAE,WAAW,EAAE,CAAC;YAC5B,gBAAgB,CAAC,EAAE,OAAO,CAAC,gBAAgB,CAAC,wBAAwB,CAAC;SACtE,CAAC;QACF,KAAK,CAAC,EAAE,MAAM,CAAC,gBAAgB,CAAC;KACjC;CACF"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@strapi/content-manager",
3
- "version": "5.54.0",
3
+ "version": "5.55.1",
4
4
  "description": "A powerful UI to easily manage your data.",
5
5
  "homepage": "https://strapi.io",
6
6
  "bugs": {
@@ -75,8 +75,8 @@
75
75
  "@sindresorhus/slugify": "1.1.0",
76
76
  "@strapi/design-system": "2.2.4",
77
77
  "@strapi/icons": "2.2.4",
78
- "@strapi/types": "5.54.0",
79
- "@strapi/utils": "5.54.0",
78
+ "@strapi/types": "5.55.1",
79
+ "@strapi/utils": "5.55.1",
80
80
  "codemirror5": "npm:codemirror@^5.65.11",
81
81
  "date-fns": "2.30.0",
82
82
  "dompurify": "3.4.13",
@@ -111,8 +111,8 @@
111
111
  "zod": "4.4.3"
112
112
  },
113
113
  "devDependencies": {
114
- "@strapi/admin": "5.54.0",
115
- "@strapi/database": "5.54.0",
114
+ "@strapi/admin": "5.55.1",
115
+ "@strapi/database": "5.55.1",
116
116
  "@testing-library/dom": "10.4.1",
117
117
  "@testing-library/jest-dom": "6.9.1",
118
118
  "@testing-library/react": "16.3.2",