@strapi/admin 5.24.2 → 5.25.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.
- package/dist/admin/admin/src/services/homepage.js +15 -1
- package/dist/admin/admin/src/services/homepage.js.map +1 -1
- package/dist/admin/admin/src/services/homepage.mjs +14 -2
- package/dist/admin/admin/src/services/homepage.mjs.map +1 -1
- package/dist/admin/src/services/homepage.d.ts +3 -2
- package/dist/server/server/src/controllers/homepage.js +17 -0
- package/dist/server/server/src/controllers/homepage.js.map +1 -1
- package/dist/server/server/src/controllers/homepage.mjs +17 -0
- package/dist/server/server/src/controllers/homepage.mjs.map +1 -1
- package/dist/server/server/src/controllers/validation/schema.js +30 -0
- package/dist/server/server/src/controllers/validation/schema.js.map +1 -0
- package/dist/server/server/src/controllers/validation/schema.mjs +26 -0
- package/dist/server/server/src/controllers/validation/schema.mjs.map +1 -0
- package/dist/server/server/src/routes/homepage.js +20 -0
- package/dist/server/server/src/routes/homepage.js.map +1 -1
- package/dist/server/server/src/routes/homepage.mjs +20 -0
- package/dist/server/server/src/routes/homepage.mjs.map +1 -1
- package/dist/server/server/src/services/homepage.js +48 -1
- package/dist/server/server/src/services/homepage.js.map +1 -1
- package/dist/server/server/src/services/homepage.mjs +48 -1
- package/dist/server/server/src/services/homepage.mjs.map +1 -1
- package/dist/server/src/controllers/homepage.d.ts +8 -0
- package/dist/server/src/controllers/homepage.d.ts.map +1 -1
- package/dist/server/src/controllers/index.d.ts +20 -0
- package/dist/server/src/controllers/index.d.ts.map +1 -1
- package/dist/server/src/controllers/validation/schema.d.ts +61 -0
- package/dist/server/src/controllers/validation/schema.d.ts.map +1 -0
- package/dist/server/src/index.d.ts +36 -0
- package/dist/server/src/index.d.ts.map +1 -1
- package/dist/server/src/routes/homepage.d.ts.map +1 -1
- package/dist/server/src/services/homepage.d.ts +3 -0
- package/dist/server/src/services/homepage.d.ts.map +1 -1
- package/dist/server/src/services/index.d.ts +16 -0
- package/dist/server/src/services/index.d.ts.map +1 -1
- package/dist/shared/contracts/homepage.d.ts +27 -0
- package/dist/shared/contracts/homepage.d.ts.map +1 -1
- package/package.json +9 -9
|
@@ -21,11 +21,25 @@ const homepageService = api.adminApi.enhanceEndpoints({
|
|
|
21
21
|
providesTags: (_, _err)=>[
|
|
22
22
|
'CountDocuments'
|
|
23
23
|
]
|
|
24
|
+
}),
|
|
25
|
+
getHomepageLayout: builder.query({
|
|
26
|
+
query: ()=>'/admin/homepage/layout',
|
|
27
|
+
transformResponse: (r)=>r.data
|
|
28
|
+
}),
|
|
29
|
+
updateHomepageLayout: builder.mutation({
|
|
30
|
+
query: (body)=>({
|
|
31
|
+
url: '/admin/homepage/layout',
|
|
32
|
+
method: 'PUT',
|
|
33
|
+
body
|
|
34
|
+
}),
|
|
35
|
+
transformResponse: (r)=>r.data
|
|
24
36
|
})
|
|
25
37
|
})
|
|
26
38
|
});
|
|
27
|
-
const { useGetKeyStatisticsQuery, useGetCountDocumentsQuery } = homepageService;
|
|
39
|
+
const { useGetKeyStatisticsQuery, useGetCountDocumentsQuery, useGetHomepageLayoutQuery, useUpdateHomepageLayoutMutation } = homepageService;
|
|
28
40
|
|
|
29
41
|
exports.useGetCountDocumentsQuery = useGetCountDocumentsQuery;
|
|
42
|
+
exports.useGetHomepageLayoutQuery = useGetHomepageLayoutQuery;
|
|
30
43
|
exports.useGetKeyStatisticsQuery = useGetKeyStatisticsQuery;
|
|
44
|
+
exports.useUpdateHomepageLayoutMutation = useUpdateHomepageLayoutMutation;
|
|
31
45
|
//# sourceMappingURL=homepage.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"homepage.js","sources":["../../../../../admin/src/services/homepage.ts"],"sourcesContent":["import * as Homepage from '../../../shared/contracts/homepage';\n\nimport { adminApi } from './api';\n\nconst homepageService = adminApi\n .enhanceEndpoints({\n addTagTypes: ['CountDocuments'],\n })\n .injectEndpoints({\n endpoints: (builder) => ({\n getKeyStatistics: builder.query<Homepage.GetKeyStatistics.Response['data'], void>({\n query: () => '/admin/homepage/key-statistics',\n transformResponse: (response: Homepage.GetKeyStatistics.Response) => response.data,\n providesTags: (_, _err) => ['HomepageKeyStatistics'],\n }),\n getCountDocuments: builder.query<Homepage.GetCountDocuments.Response['data'], void>({\n query: () => '/content-manager/homepage/count-documents',\n transformResponse: (response: Homepage.GetCountDocuments.Response) => response.data,\n providesTags: (_, _err) => ['CountDocuments'],\n }),\n }),\n });\n\nconst {
|
|
1
|
+
{"version":3,"file":"homepage.js","sources":["../../../../../admin/src/services/homepage.ts"],"sourcesContent":["import * as Homepage from '../../../shared/contracts/homepage';\n\nimport { adminApi } from './api';\n\nconst homepageService = adminApi\n .enhanceEndpoints({\n addTagTypes: ['CountDocuments'],\n })\n .injectEndpoints({\n endpoints: (builder) => ({\n getKeyStatistics: builder.query<Homepage.GetKeyStatistics.Response['data'], void>({\n query: () => '/admin/homepage/key-statistics',\n transformResponse: (response: Homepage.GetKeyStatistics.Response) => response.data,\n providesTags: (_, _err) => ['HomepageKeyStatistics'],\n }),\n getCountDocuments: builder.query<Homepage.GetCountDocuments.Response['data'], void>({\n query: () => '/content-manager/homepage/count-documents',\n transformResponse: (response: Homepage.GetCountDocuments.Response) => response.data,\n providesTags: (_, _err) => ['CountDocuments'],\n }),\n getHomepageLayout: builder.query<Homepage.GetHomepageLayout.Response['data'], void>({\n query: () => '/admin/homepage/layout',\n transformResponse: (r: Homepage.GetHomepageLayout.Response) => r.data,\n }),\n updateHomepageLayout: builder.mutation<\n Homepage.UpdateHomepageLayout.Response['data'],\n Homepage.UpdateHomepageLayout.Request['body']\n >({\n query: (body) => ({ url: '/admin/homepage/layout', method: 'PUT', body }),\n transformResponse: (r: Homepage.UpdateHomepageLayout.Response) => r.data,\n }),\n }),\n });\n\nconst {\n useGetKeyStatisticsQuery,\n useGetCountDocumentsQuery,\n useGetHomepageLayoutQuery,\n useUpdateHomepageLayoutMutation,\n} = homepageService;\n\nexport {\n useGetKeyStatisticsQuery,\n useGetCountDocumentsQuery,\n useGetHomepageLayoutQuery,\n useUpdateHomepageLayoutMutation,\n};\n"],"names":["homepageService","adminApi","enhanceEndpoints","addTagTypes","injectEndpoints","endpoints","builder","getKeyStatistics","query","transformResponse","response","data","providesTags","_","_err","getCountDocuments","getHomepageLayout","r","updateHomepageLayout","mutation","body","url","method","useGetKeyStatisticsQuery","useGetCountDocumentsQuery","useGetHomepageLayoutQuery","useUpdateHomepageLayoutMutation"],"mappings":";;;;AAIA,MAAMA,eAAAA,GAAkBC,YACrBC,CAAAA,gBAAgB,CAAC;IAChBC,WAAa,EAAA;AAAC,QAAA;AAAiB;AACjC,CAAA,CAAA,CACCC,eAAe,CAAC;IACfC,SAAW,EAAA,CAACC,WAAa;YACvBC,gBAAkBD,EAAAA,OAAAA,CAAQE,KAAK,CAAmD;AAChFA,gBAAAA,KAAAA,EAAO,IAAM,gCAAA;gBACbC,iBAAmB,EAAA,CAACC,QAAiDA,GAAAA,QAAAA,CAASC,IAAI;gBAClFC,YAAc,EAAA,CAACC,GAAGC,IAAS,GAAA;AAAC,wBAAA;AAAwB;AACtD,aAAA,CAAA;YACAC,iBAAmBT,EAAAA,OAAAA,CAAQE,KAAK,CAAoD;AAClFA,gBAAAA,KAAAA,EAAO,IAAM,2CAAA;gBACbC,iBAAmB,EAAA,CAACC,QAAkDA,GAAAA,QAAAA,CAASC,IAAI;gBACnFC,YAAc,EAAA,CAACC,GAAGC,IAAS,GAAA;AAAC,wBAAA;AAAiB;AAC/C,aAAA,CAAA;YACAE,iBAAmBV,EAAAA,OAAAA,CAAQE,KAAK,CAAoD;AAClFA,gBAAAA,KAAAA,EAAO,IAAM,wBAAA;gBACbC,iBAAmB,EAAA,CAACQ,CAA2CA,GAAAA,CAAAA,CAAEN;AACnE,aAAA,CAAA;YACAO,oBAAsBZ,EAAAA,OAAAA,CAAQa,QAAQ,CAGpC;gBACAX,KAAO,EAAA,CAACY,QAAU;wBAAEC,GAAK,EAAA,wBAAA;wBAA0BC,MAAQ,EAAA,KAAA;AAAOF,wBAAAA;qBAAK,CAAA;gBACvEX,iBAAmB,EAAA,CAACQ,CAA8CA,GAAAA,CAAAA,CAAEN;AACtE,aAAA;SACF;AACF,CAAA,CAAA;AAEI,MAAA,EACJY,wBAAwB,EACxBC,yBAAyB,EACzBC,yBAAyB,EACzBC,+BAA+B,EAChC,GAAG1B;;;;;;;"}
|
|
@@ -19,10 +19,22 @@ const homepageService = adminApi.enhanceEndpoints({
|
|
|
19
19
|
providesTags: (_, _err)=>[
|
|
20
20
|
'CountDocuments'
|
|
21
21
|
]
|
|
22
|
+
}),
|
|
23
|
+
getHomepageLayout: builder.query({
|
|
24
|
+
query: ()=>'/admin/homepage/layout',
|
|
25
|
+
transformResponse: (r)=>r.data
|
|
26
|
+
}),
|
|
27
|
+
updateHomepageLayout: builder.mutation({
|
|
28
|
+
query: (body)=>({
|
|
29
|
+
url: '/admin/homepage/layout',
|
|
30
|
+
method: 'PUT',
|
|
31
|
+
body
|
|
32
|
+
}),
|
|
33
|
+
transformResponse: (r)=>r.data
|
|
22
34
|
})
|
|
23
35
|
})
|
|
24
36
|
});
|
|
25
|
-
const { useGetKeyStatisticsQuery, useGetCountDocumentsQuery } = homepageService;
|
|
37
|
+
const { useGetKeyStatisticsQuery, useGetCountDocumentsQuery, useGetHomepageLayoutQuery, useUpdateHomepageLayoutMutation } = homepageService;
|
|
26
38
|
|
|
27
|
-
export { useGetCountDocumentsQuery, useGetKeyStatisticsQuery };
|
|
39
|
+
export { useGetCountDocumentsQuery, useGetHomepageLayoutQuery, useGetKeyStatisticsQuery, useUpdateHomepageLayoutMutation };
|
|
28
40
|
//# sourceMappingURL=homepage.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"homepage.mjs","sources":["../../../../../admin/src/services/homepage.ts"],"sourcesContent":["import * as Homepage from '../../../shared/contracts/homepage';\n\nimport { adminApi } from './api';\n\nconst homepageService = adminApi\n .enhanceEndpoints({\n addTagTypes: ['CountDocuments'],\n })\n .injectEndpoints({\n endpoints: (builder) => ({\n getKeyStatistics: builder.query<Homepage.GetKeyStatistics.Response['data'], void>({\n query: () => '/admin/homepage/key-statistics',\n transformResponse: (response: Homepage.GetKeyStatistics.Response) => response.data,\n providesTags: (_, _err) => ['HomepageKeyStatistics'],\n }),\n getCountDocuments: builder.query<Homepage.GetCountDocuments.Response['data'], void>({\n query: () => '/content-manager/homepage/count-documents',\n transformResponse: (response: Homepage.GetCountDocuments.Response) => response.data,\n providesTags: (_, _err) => ['CountDocuments'],\n }),\n }),\n });\n\nconst {
|
|
1
|
+
{"version":3,"file":"homepage.mjs","sources":["../../../../../admin/src/services/homepage.ts"],"sourcesContent":["import * as Homepage from '../../../shared/contracts/homepage';\n\nimport { adminApi } from './api';\n\nconst homepageService = adminApi\n .enhanceEndpoints({\n addTagTypes: ['CountDocuments'],\n })\n .injectEndpoints({\n endpoints: (builder) => ({\n getKeyStatistics: builder.query<Homepage.GetKeyStatistics.Response['data'], void>({\n query: () => '/admin/homepage/key-statistics',\n transformResponse: (response: Homepage.GetKeyStatistics.Response) => response.data,\n providesTags: (_, _err) => ['HomepageKeyStatistics'],\n }),\n getCountDocuments: builder.query<Homepage.GetCountDocuments.Response['data'], void>({\n query: () => '/content-manager/homepage/count-documents',\n transformResponse: (response: Homepage.GetCountDocuments.Response) => response.data,\n providesTags: (_, _err) => ['CountDocuments'],\n }),\n getHomepageLayout: builder.query<Homepage.GetHomepageLayout.Response['data'], void>({\n query: () => '/admin/homepage/layout',\n transformResponse: (r: Homepage.GetHomepageLayout.Response) => r.data,\n }),\n updateHomepageLayout: builder.mutation<\n Homepage.UpdateHomepageLayout.Response['data'],\n Homepage.UpdateHomepageLayout.Request['body']\n >({\n query: (body) => ({ url: '/admin/homepage/layout', method: 'PUT', body }),\n transformResponse: (r: Homepage.UpdateHomepageLayout.Response) => r.data,\n }),\n }),\n });\n\nconst {\n useGetKeyStatisticsQuery,\n useGetCountDocumentsQuery,\n useGetHomepageLayoutQuery,\n useUpdateHomepageLayoutMutation,\n} = homepageService;\n\nexport {\n useGetKeyStatisticsQuery,\n useGetCountDocumentsQuery,\n useGetHomepageLayoutQuery,\n useUpdateHomepageLayoutMutation,\n};\n"],"names":["homepageService","adminApi","enhanceEndpoints","addTagTypes","injectEndpoints","endpoints","builder","getKeyStatistics","query","transformResponse","response","data","providesTags","_","_err","getCountDocuments","getHomepageLayout","r","updateHomepageLayout","mutation","body","url","method","useGetKeyStatisticsQuery","useGetCountDocumentsQuery","useGetHomepageLayoutQuery","useUpdateHomepageLayoutMutation"],"mappings":";;AAIA,MAAMA,eAAAA,GAAkBC,QACrBC,CAAAA,gBAAgB,CAAC;IAChBC,WAAa,EAAA;AAAC,QAAA;AAAiB;AACjC,CAAA,CAAA,CACCC,eAAe,CAAC;IACfC,SAAW,EAAA,CAACC,WAAa;YACvBC,gBAAkBD,EAAAA,OAAAA,CAAQE,KAAK,CAAmD;AAChFA,gBAAAA,KAAAA,EAAO,IAAM,gCAAA;gBACbC,iBAAmB,EAAA,CAACC,QAAiDA,GAAAA,QAAAA,CAASC,IAAI;gBAClFC,YAAc,EAAA,CAACC,GAAGC,IAAS,GAAA;AAAC,wBAAA;AAAwB;AACtD,aAAA,CAAA;YACAC,iBAAmBT,EAAAA,OAAAA,CAAQE,KAAK,CAAoD;AAClFA,gBAAAA,KAAAA,EAAO,IAAM,2CAAA;gBACbC,iBAAmB,EAAA,CAACC,QAAkDA,GAAAA,QAAAA,CAASC,IAAI;gBACnFC,YAAc,EAAA,CAACC,GAAGC,IAAS,GAAA;AAAC,wBAAA;AAAiB;AAC/C,aAAA,CAAA;YACAE,iBAAmBV,EAAAA,OAAAA,CAAQE,KAAK,CAAoD;AAClFA,gBAAAA,KAAAA,EAAO,IAAM,wBAAA;gBACbC,iBAAmB,EAAA,CAACQ,CAA2CA,GAAAA,CAAAA,CAAEN;AACnE,aAAA,CAAA;YACAO,oBAAsBZ,EAAAA,OAAAA,CAAQa,QAAQ,CAGpC;gBACAX,KAAO,EAAA,CAACY,QAAU;wBAAEC,GAAK,EAAA,wBAAA;wBAA0BC,MAAQ,EAAA,KAAA;AAAOF,wBAAAA;qBAAK,CAAA;gBACvEX,iBAAmB,EAAA,CAACQ,CAA8CA,GAAAA,CAAAA,CAAEN;AACtE,aAAA;SACF;AACF,CAAA,CAAA;AAEI,MAAA,EACJY,wBAAwB,EACxBC,yBAAyB,EACzBC,yBAAyB,EACzBC,+BAA+B,EAChC,GAAG1B;;;;"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import * as Homepage from '../../../shared/contracts/homepage';
|
|
1
2
|
declare const useGetKeyStatisticsQuery: import("@reduxjs/toolkit/dist/query/react/buildHooks").UseQuery<import("@reduxjs/toolkit/query").QueryDefinition<void, import("@reduxjs/toolkit/query").BaseQueryFn<string | import("..").QueryArguments, unknown, import("..").BaseQueryError>, "GuidedTourMeta" | "HomepageKeyStatistics" | "CountDocuments", {
|
|
2
3
|
assets: number;
|
|
3
4
|
contentTypes: number;
|
|
@@ -10,5 +11,5 @@ declare const useGetKeyStatisticsQuery: import("@reduxjs/toolkit/dist/query/reac
|
|
|
10
11
|
draft: number;
|
|
11
12
|
published: number;
|
|
12
13
|
modified: number;
|
|
13
|
-
}, "adminApi">>;
|
|
14
|
-
export { useGetKeyStatisticsQuery, useGetCountDocumentsQuery };
|
|
14
|
+
}, "adminApi">>, useGetHomepageLayoutQuery: import("@reduxjs/toolkit/dist/query/react/buildHooks").UseQuery<import("@reduxjs/toolkit/query").QueryDefinition<void, import("@reduxjs/toolkit/query").BaseQueryFn<string | import("..").QueryArguments, unknown, import("..").BaseQueryError>, "GuidedTourMeta" | "HomepageKeyStatistics" | "CountDocuments", Homepage.Homepage.Layout, "adminApi">>, useUpdateHomepageLayoutMutation: import("@reduxjs/toolkit/dist/query/react/buildHooks").UseMutation<import("@reduxjs/toolkit/query").MutationDefinition<Homepage.Homepage.LayoutWrite, import("@reduxjs/toolkit/query").BaseQueryFn<string | import("..").QueryArguments, unknown, import("..").BaseQueryError>, "GuidedTourMeta" | "HomepageKeyStatistics" | "CountDocuments", Homepage.Homepage.Layout, "adminApi">>;
|
|
15
|
+
export { useGetKeyStatisticsQuery, useGetCountDocumentsQuery, useGetHomepageLayoutQuery, useUpdateHomepageLayoutMutation, };
|
|
@@ -8,6 +8,23 @@ var homepage = {
|
|
|
8
8
|
return {
|
|
9
9
|
data: await homepageService.getKeyStatistics()
|
|
10
10
|
};
|
|
11
|
+
},
|
|
12
|
+
async getHomepageLayout (ctx) {
|
|
13
|
+
const homepageService = index.getService('homepage');
|
|
14
|
+
const userId = ctx.state.user?.id;
|
|
15
|
+
const data = await homepageService.getHomepageLayout(userId);
|
|
16
|
+
return {
|
|
17
|
+
data
|
|
18
|
+
};
|
|
19
|
+
},
|
|
20
|
+
async updateHomepageLayout (ctx) {
|
|
21
|
+
const homepageService = index.getService('homepage');
|
|
22
|
+
const userId = ctx.state.user?.id;
|
|
23
|
+
const body = ctx.request.body;
|
|
24
|
+
const data = await homepageService.updateHomepageLayout(userId, body);
|
|
25
|
+
return {
|
|
26
|
+
data
|
|
27
|
+
};
|
|
11
28
|
}
|
|
12
29
|
};
|
|
13
30
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"homepage.js","sources":["../../../../../server/src/controllers/homepage.ts"],"sourcesContent":["import { getService } from '../utils';\n\nexport default {\n async getKeyStatistics(): Promise<{\n data: Awaited<ReturnType<typeof homepageService.getKeyStatistics>>;\n }> {\n const homepageService = getService('homepage');\n return { data: await homepageService.getKeyStatistics() };\n },\n};\n"],"names":["getKeyStatistics","homepageService","getService","data"],"mappings":";;;;
|
|
1
|
+
{"version":3,"file":"homepage.js","sources":["../../../../../server/src/controllers/homepage.ts"],"sourcesContent":["import type { Context } from 'koa';\nimport { getService } from '../utils';\nimport { HomepageLayout, HomepageLayoutWrite } from './validation/schema';\n\nexport default {\n async getKeyStatistics(): Promise<{\n data: Awaited<ReturnType<typeof homepageService.getKeyStatistics>>;\n }> {\n const homepageService = getService('homepage');\n return { data: await homepageService.getKeyStatistics() };\n },\n async getHomepageLayout(ctx: Context): Promise<{ data: HomepageLayout | null }> {\n const homepageService = getService('homepage');\n const userId = ctx.state.user?.id;\n\n const data = await homepageService.getHomepageLayout(userId);\n return { data };\n },\n async updateHomepageLayout(ctx: Context): Promise<{ data: HomepageLayout }> {\n const homepageService = getService('homepage');\n const userId = ctx.state.user?.id;\n\n const body = ctx.request.body as HomepageLayoutWrite;\n const data = await homepageService.updateHomepageLayout(userId, body);\n return { data };\n },\n};\n"],"names":["getKeyStatistics","homepageService","getService","data","getHomepageLayout","ctx","userId","state","user","id","updateHomepageLayout","body","request"],"mappings":";;;;AAIA,eAAe;IACb,MAAMA,gBAAAA,CAAAA,GAAAA;AAGJ,QAAA,MAAMC,kBAAkBC,gBAAW,CAAA,UAAA,CAAA;QACnC,OAAO;YAAEC,IAAM,EAAA,MAAMF,gBAAgBD,gBAAgB;AAAG,SAAA;AAC1D,KAAA;AACA,IAAA,MAAMI,mBAAkBC,GAAY,EAAA;AAClC,QAAA,MAAMJ,kBAAkBC,gBAAW,CAAA,UAAA,CAAA;AACnC,QAAA,MAAMI,MAASD,GAAAA,GAAAA,CAAIE,KAAK,CAACC,IAAI,EAAEC,EAAAA;AAE/B,QAAA,MAAMN,IAAO,GAAA,MAAMF,eAAgBG,CAAAA,iBAAiB,CAACE,MAAAA,CAAAA;QACrD,OAAO;AAAEH,YAAAA;AAAK,SAAA;AAChB,KAAA;AACA,IAAA,MAAMO,sBAAqBL,GAAY,EAAA;AACrC,QAAA,MAAMJ,kBAAkBC,gBAAW,CAAA,UAAA,CAAA;AACnC,QAAA,MAAMI,MAASD,GAAAA,GAAAA,CAAIE,KAAK,CAACC,IAAI,EAAEC,EAAAA;AAE/B,QAAA,MAAME,IAAON,GAAAA,GAAAA,CAAIO,OAAO,CAACD,IAAI;AAC7B,QAAA,MAAMR,IAAO,GAAA,MAAMF,eAAgBS,CAAAA,oBAAoB,CAACJ,MAAQK,EAAAA,IAAAA,CAAAA;QAChE,OAAO;AAAER,YAAAA;AAAK,SAAA;AAChB;AACF,CAAE;;;;"}
|
|
@@ -6,6 +6,23 @@ var homepage = {
|
|
|
6
6
|
return {
|
|
7
7
|
data: await homepageService.getKeyStatistics()
|
|
8
8
|
};
|
|
9
|
+
},
|
|
10
|
+
async getHomepageLayout (ctx) {
|
|
11
|
+
const homepageService = getService('homepage');
|
|
12
|
+
const userId = ctx.state.user?.id;
|
|
13
|
+
const data = await homepageService.getHomepageLayout(userId);
|
|
14
|
+
return {
|
|
15
|
+
data
|
|
16
|
+
};
|
|
17
|
+
},
|
|
18
|
+
async updateHomepageLayout (ctx) {
|
|
19
|
+
const homepageService = getService('homepage');
|
|
20
|
+
const userId = ctx.state.user?.id;
|
|
21
|
+
const body = ctx.request.body;
|
|
22
|
+
const data = await homepageService.updateHomepageLayout(userId, body);
|
|
23
|
+
return {
|
|
24
|
+
data
|
|
25
|
+
};
|
|
9
26
|
}
|
|
10
27
|
};
|
|
11
28
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"homepage.mjs","sources":["../../../../../server/src/controllers/homepage.ts"],"sourcesContent":["import { getService } from '../utils';\n\nexport default {\n async getKeyStatistics(): Promise<{\n data: Awaited<ReturnType<typeof homepageService.getKeyStatistics>>;\n }> {\n const homepageService = getService('homepage');\n return { data: await homepageService.getKeyStatistics() };\n },\n};\n"],"names":["getKeyStatistics","homepageService","getService","data"],"mappings":";;
|
|
1
|
+
{"version":3,"file":"homepage.mjs","sources":["../../../../../server/src/controllers/homepage.ts"],"sourcesContent":["import type { Context } from 'koa';\nimport { getService } from '../utils';\nimport { HomepageLayout, HomepageLayoutWrite } from './validation/schema';\n\nexport default {\n async getKeyStatistics(): Promise<{\n data: Awaited<ReturnType<typeof homepageService.getKeyStatistics>>;\n }> {\n const homepageService = getService('homepage');\n return { data: await homepageService.getKeyStatistics() };\n },\n async getHomepageLayout(ctx: Context): Promise<{ data: HomepageLayout | null }> {\n const homepageService = getService('homepage');\n const userId = ctx.state.user?.id;\n\n const data = await homepageService.getHomepageLayout(userId);\n return { data };\n },\n async updateHomepageLayout(ctx: Context): Promise<{ data: HomepageLayout }> {\n const homepageService = getService('homepage');\n const userId = ctx.state.user?.id;\n\n const body = ctx.request.body as HomepageLayoutWrite;\n const data = await homepageService.updateHomepageLayout(userId, body);\n return { data };\n },\n};\n"],"names":["getKeyStatistics","homepageService","getService","data","getHomepageLayout","ctx","userId","state","user","id","updateHomepageLayout","body","request"],"mappings":";;AAIA,eAAe;IACb,MAAMA,gBAAAA,CAAAA,GAAAA;AAGJ,QAAA,MAAMC,kBAAkBC,UAAW,CAAA,UAAA,CAAA;QACnC,OAAO;YAAEC,IAAM,EAAA,MAAMF,gBAAgBD,gBAAgB;AAAG,SAAA;AAC1D,KAAA;AACA,IAAA,MAAMI,mBAAkBC,GAAY,EAAA;AAClC,QAAA,MAAMJ,kBAAkBC,UAAW,CAAA,UAAA,CAAA;AACnC,QAAA,MAAMI,MAASD,GAAAA,GAAAA,CAAIE,KAAK,CAACC,IAAI,EAAEC,EAAAA;AAE/B,QAAA,MAAMN,IAAO,GAAA,MAAMF,eAAgBG,CAAAA,iBAAiB,CAACE,MAAAA,CAAAA;QACrD,OAAO;AAAEH,YAAAA;AAAK,SAAA;AAChB,KAAA;AACA,IAAA,MAAMO,sBAAqBL,GAAY,EAAA;AACrC,QAAA,MAAMJ,kBAAkBC,UAAW,CAAA,UAAA,CAAA;AACnC,QAAA,MAAMI,MAASD,GAAAA,GAAAA,CAAIE,KAAK,CAACC,IAAI,EAAEC,EAAAA;AAE/B,QAAA,MAAME,IAAON,GAAAA,GAAAA,CAAIO,OAAO,CAACD,IAAI;AAC7B,QAAA,MAAMR,IAAO,GAAA,MAAMF,eAAgBS,CAAAA,oBAAoB,CAACJ,MAAQK,EAAAA,IAAAA,CAAAA;QAChE,OAAO;AAAER,YAAAA;AAAK,SAAA;AAChB;AACF,CAAE;;;;"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var zod = require('zod');
|
|
4
|
+
|
|
5
|
+
// widths must be one of 4, 6, 8, 12
|
|
6
|
+
const WidthSchema = zod.z.union([
|
|
7
|
+
zod.z.literal(4),
|
|
8
|
+
zod.z.literal(6),
|
|
9
|
+
zod.z.literal(8),
|
|
10
|
+
zod.z.literal(12)
|
|
11
|
+
]);
|
|
12
|
+
const WidgetEntrySchema = zod.z.object({
|
|
13
|
+
uid: zod.z.string().nonempty(),
|
|
14
|
+
width: WidthSchema
|
|
15
|
+
}).strict();
|
|
16
|
+
const HomepageLayoutSchema = zod.z.object({
|
|
17
|
+
version: zod.z.number().int().min(1),
|
|
18
|
+
widgets: zod.z.array(WidgetEntrySchema).max(100),
|
|
19
|
+
updatedAt: zod.z.string().datetime()
|
|
20
|
+
}).strict();
|
|
21
|
+
const HomepageLayoutWriteSchema = zod.z.object({
|
|
22
|
+
version: zod.z.number().int().min(1).optional(),
|
|
23
|
+
widgets: zod.z.array(WidgetEntrySchema).max(100),
|
|
24
|
+
updatedAt: zod.z.string().datetime().optional()
|
|
25
|
+
}).strict();
|
|
26
|
+
|
|
27
|
+
exports.HomepageLayoutSchema = HomepageLayoutSchema;
|
|
28
|
+
exports.HomepageLayoutWriteSchema = HomepageLayoutWriteSchema;
|
|
29
|
+
exports.WidthSchema = WidthSchema;
|
|
30
|
+
//# sourceMappingURL=schema.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schema.js","sources":["../../../../../../server/src/controllers/validation/schema.ts"],"sourcesContent":["import { z } from 'zod';\n\n// widths must be one of 4, 6, 8, 12\nexport const WidthSchema = z.union([z.literal(4), z.literal(6), z.literal(8), z.literal(12)]);\n\nconst WidgetEntrySchema = z\n .object({\n uid: z.string().nonempty(),\n width: WidthSchema,\n })\n .strict();\n\nexport const HomepageLayoutSchema = z\n .object({\n version: z.number().int().min(1),\n widgets: z.array(WidgetEntrySchema).max(100),\n updatedAt: z.string().datetime(),\n })\n .strict();\n\nexport type HomepageLayout = z.infer<typeof HomepageLayoutSchema>;\n\nexport const HomepageLayoutWriteSchema = z\n .object({\n version: z.number().int().min(1).optional(),\n widgets: z.array(WidgetEntrySchema).max(100),\n updatedAt: z.string().datetime().optional(),\n })\n .strict();\n\nexport type HomepageLayoutWrite = z.infer<typeof HomepageLayoutWriteSchema>;\n"],"names":["WidthSchema","z","union","literal","WidgetEntrySchema","object","uid","string","nonempty","width","strict","HomepageLayoutSchema","version","number","int","min","widgets","array","max","updatedAt","datetime","HomepageLayoutWriteSchema","optional"],"mappings":";;;;AAEA;AACaA,MAAAA,WAAAA,GAAcC,KAAEC,CAAAA,KAAK,CAAC;AAACD,IAAAA,KAAAA,CAAEE,OAAO,CAAC,CAAA,CAAA;AAAIF,IAAAA,KAAAA,CAAEE,OAAO,CAAC,CAAA,CAAA;AAAIF,IAAAA,KAAAA,CAAEE,OAAO,CAAC,CAAA,CAAA;AAAIF,IAAAA,KAAAA,CAAEE,OAAO,CAAC,EAAA;CAAI;AAE5F,MAAMC,iBAAAA,GAAoBH,KACvBI,CAAAA,MAAM,CAAC;IACNC,GAAKL,EAAAA,KAAAA,CAAEM,MAAM,EAAA,CAAGC,QAAQ,EAAA;IACxBC,KAAOT,EAAAA;AACT,CAAA,CAAA,CACCU,MAAM,EAAA;AAEIC,MAAAA,oBAAAA,GAAuBV,KACjCI,CAAAA,MAAM,CAAC;AACNO,IAAAA,OAAAA,EAASX,MAAEY,MAAM,EAAA,CAAGC,GAAG,EAAA,CAAGC,GAAG,CAAC,CAAA,CAAA;AAC9BC,IAAAA,OAAAA,EAASf,KAAEgB,CAAAA,KAAK,CAACb,iBAAAA,CAAAA,CAAmBc,GAAG,CAAC,GAAA,CAAA;IACxCC,SAAWlB,EAAAA,KAAAA,CAAEM,MAAM,EAAA,CAAGa,QAAQ;AAChC,CAAA,CAAA,CACCV,MAAM;AAIIW,MAAAA,yBAAAA,GAA4BpB,KACtCI,CAAAA,MAAM,CAAC;IACNO,OAASX,EAAAA,KAAAA,CAAEY,MAAM,EAAGC,CAAAA,GAAG,GAAGC,GAAG,CAAC,GAAGO,QAAQ,EAAA;AACzCN,IAAAA,OAAAA,EAASf,KAAEgB,CAAAA,KAAK,CAACb,iBAAAA,CAAAA,CAAmBc,GAAG,CAAC,GAAA,CAAA;AACxCC,IAAAA,SAAAA,EAAWlB,KAAEM,CAAAA,MAAM,EAAGa,CAAAA,QAAQ,GAAGE,QAAQ;AAC3C,CAAA,CAAA,CACCZ,MAAM;;;;;;"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
|
|
3
|
+
// widths must be one of 4, 6, 8, 12
|
|
4
|
+
const WidthSchema = z.union([
|
|
5
|
+
z.literal(4),
|
|
6
|
+
z.literal(6),
|
|
7
|
+
z.literal(8),
|
|
8
|
+
z.literal(12)
|
|
9
|
+
]);
|
|
10
|
+
const WidgetEntrySchema = z.object({
|
|
11
|
+
uid: z.string().nonempty(),
|
|
12
|
+
width: WidthSchema
|
|
13
|
+
}).strict();
|
|
14
|
+
const HomepageLayoutSchema = z.object({
|
|
15
|
+
version: z.number().int().min(1),
|
|
16
|
+
widgets: z.array(WidgetEntrySchema).max(100),
|
|
17
|
+
updatedAt: z.string().datetime()
|
|
18
|
+
}).strict();
|
|
19
|
+
const HomepageLayoutWriteSchema = z.object({
|
|
20
|
+
version: z.number().int().min(1).optional(),
|
|
21
|
+
widgets: z.array(WidgetEntrySchema).max(100),
|
|
22
|
+
updatedAt: z.string().datetime().optional()
|
|
23
|
+
}).strict();
|
|
24
|
+
|
|
25
|
+
export { HomepageLayoutSchema, HomepageLayoutWriteSchema, WidthSchema };
|
|
26
|
+
//# sourceMappingURL=schema.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schema.mjs","sources":["../../../../../../server/src/controllers/validation/schema.ts"],"sourcesContent":["import { z } from 'zod';\n\n// widths must be one of 4, 6, 8, 12\nexport const WidthSchema = z.union([z.literal(4), z.literal(6), z.literal(8), z.literal(12)]);\n\nconst WidgetEntrySchema = z\n .object({\n uid: z.string().nonempty(),\n width: WidthSchema,\n })\n .strict();\n\nexport const HomepageLayoutSchema = z\n .object({\n version: z.number().int().min(1),\n widgets: z.array(WidgetEntrySchema).max(100),\n updatedAt: z.string().datetime(),\n })\n .strict();\n\nexport type HomepageLayout = z.infer<typeof HomepageLayoutSchema>;\n\nexport const HomepageLayoutWriteSchema = z\n .object({\n version: z.number().int().min(1).optional(),\n widgets: z.array(WidgetEntrySchema).max(100),\n updatedAt: z.string().datetime().optional(),\n })\n .strict();\n\nexport type HomepageLayoutWrite = z.infer<typeof HomepageLayoutWriteSchema>;\n"],"names":["WidthSchema","z","union","literal","WidgetEntrySchema","object","uid","string","nonempty","width","strict","HomepageLayoutSchema","version","number","int","min","widgets","array","max","updatedAt","datetime","HomepageLayoutWriteSchema","optional"],"mappings":";;AAEA;AACaA,MAAAA,WAAAA,GAAcC,CAAEC,CAAAA,KAAK,CAAC;AAACD,IAAAA,CAAAA,CAAEE,OAAO,CAAC,CAAA,CAAA;AAAIF,IAAAA,CAAAA,CAAEE,OAAO,CAAC,CAAA,CAAA;AAAIF,IAAAA,CAAAA,CAAEE,OAAO,CAAC,CAAA,CAAA;AAAIF,IAAAA,CAAAA,CAAEE,OAAO,CAAC,EAAA;CAAI;AAE5F,MAAMC,iBAAAA,GAAoBH,CACvBI,CAAAA,MAAM,CAAC;IACNC,GAAKL,EAAAA,CAAAA,CAAEM,MAAM,EAAA,CAAGC,QAAQ,EAAA;IACxBC,KAAOT,EAAAA;AACT,CAAA,CAAA,CACCU,MAAM,EAAA;AAEIC,MAAAA,oBAAAA,GAAuBV,CACjCI,CAAAA,MAAM,CAAC;AACNO,IAAAA,OAAAA,EAASX,EAAEY,MAAM,EAAA,CAAGC,GAAG,EAAA,CAAGC,GAAG,CAAC,CAAA,CAAA;AAC9BC,IAAAA,OAAAA,EAASf,CAAEgB,CAAAA,KAAK,CAACb,iBAAAA,CAAAA,CAAmBc,GAAG,CAAC,GAAA,CAAA;IACxCC,SAAWlB,EAAAA,CAAAA,CAAEM,MAAM,EAAA,CAAGa,QAAQ;AAChC,CAAA,CAAA,CACCV,MAAM;AAIIW,MAAAA,yBAAAA,GAA4BpB,CACtCI,CAAAA,MAAM,CAAC;IACNO,OAASX,EAAAA,CAAAA,CAAEY,MAAM,EAAGC,CAAAA,GAAG,GAAGC,GAAG,CAAC,GAAGO,QAAQ,EAAA;AACzCN,IAAAA,OAAAA,EAASf,CAAEgB,CAAAA,KAAK,CAACb,iBAAAA,CAAAA,CAAmBc,GAAG,CAAC,GAAA,CAAA;AACxCC,IAAAA,SAAAA,EAAWlB,CAAEM,CAAAA,MAAM,EAAGa,CAAAA,QAAQ,GAAGE,QAAQ;AAC3C,CAAA,CAAA,CACCZ,MAAM;;;;"}
|
|
@@ -10,6 +10,26 @@ var homepage = [
|
|
|
10
10
|
'admin::isAuthenticatedAdmin'
|
|
11
11
|
]
|
|
12
12
|
}
|
|
13
|
+
},
|
|
14
|
+
{
|
|
15
|
+
method: 'GET',
|
|
16
|
+
path: '/homepage/layout',
|
|
17
|
+
handler: 'homepage.getHomepageLayout',
|
|
18
|
+
config: {
|
|
19
|
+
policies: [
|
|
20
|
+
'admin::isAuthenticatedAdmin'
|
|
21
|
+
]
|
|
22
|
+
}
|
|
23
|
+
},
|
|
24
|
+
{
|
|
25
|
+
method: 'PUT',
|
|
26
|
+
path: '/homepage/layout',
|
|
27
|
+
handler: 'homepage.updateHomepageLayout',
|
|
28
|
+
config: {
|
|
29
|
+
policies: [
|
|
30
|
+
'admin::isAuthenticatedAdmin'
|
|
31
|
+
]
|
|
32
|
+
}
|
|
13
33
|
}
|
|
14
34
|
];
|
|
15
35
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"homepage.js","sources":["../../../../../server/src/routes/homepage.ts"],"sourcesContent":["export default [\n {\n method: 'GET',\n path: '/homepage/key-statistics',\n handler: 'homepage.getKeyStatistics',\n config: {\n policies: ['admin::isAuthenticatedAdmin'],\n },\n },\n];\n"],"names":["method","path","handler","config","policies"],"mappings":";;AAAA,eAAe;AACb,IAAA;QACEA,MAAQ,EAAA,KAAA;QACRC,IAAM,EAAA,0BAAA;QACNC,OAAS,EAAA,2BAAA;QACTC,MAAQ,EAAA;YACNC,QAAU,EAAA;AAAC,gBAAA;AAA8B;AAC3C;AACF;CACD;;;;"}
|
|
1
|
+
{"version":3,"file":"homepage.js","sources":["../../../../../server/src/routes/homepage.ts"],"sourcesContent":["export default [\n {\n method: 'GET',\n path: '/homepage/key-statistics',\n handler: 'homepage.getKeyStatistics',\n config: {\n policies: ['admin::isAuthenticatedAdmin'],\n },\n },\n {\n method: 'GET',\n path: '/homepage/layout',\n handler: 'homepage.getHomepageLayout',\n config: { policies: ['admin::isAuthenticatedAdmin'] },\n },\n {\n method: 'PUT',\n path: '/homepage/layout',\n handler: 'homepage.updateHomepageLayout',\n config: { policies: ['admin::isAuthenticatedAdmin'] },\n },\n];\n"],"names":["method","path","handler","config","policies"],"mappings":";;AAAA,eAAe;AACb,IAAA;QACEA,MAAQ,EAAA,KAAA;QACRC,IAAM,EAAA,0BAAA;QACNC,OAAS,EAAA,2BAAA;QACTC,MAAQ,EAAA;YACNC,QAAU,EAAA;AAAC,gBAAA;AAA8B;AAC3C;AACF,KAAA;AACA,IAAA;QACEJ,MAAQ,EAAA,KAAA;QACRC,IAAM,EAAA,kBAAA;QACNC,OAAS,EAAA,4BAAA;QACTC,MAAQ,EAAA;YAAEC,QAAU,EAAA;AAAC,gBAAA;AAA8B;AAAC;AACtD,KAAA;AACA,IAAA;QACEJ,MAAQ,EAAA,KAAA;QACRC,IAAM,EAAA,kBAAA;QACNC,OAAS,EAAA,+BAAA;QACTC,MAAQ,EAAA;YAAEC,QAAU,EAAA;AAAC,gBAAA;AAA8B;AAAC;AACtD;CACD;;;;"}
|
|
@@ -8,6 +8,26 @@ var homepage = [
|
|
|
8
8
|
'admin::isAuthenticatedAdmin'
|
|
9
9
|
]
|
|
10
10
|
}
|
|
11
|
+
},
|
|
12
|
+
{
|
|
13
|
+
method: 'GET',
|
|
14
|
+
path: '/homepage/layout',
|
|
15
|
+
handler: 'homepage.getHomepageLayout',
|
|
16
|
+
config: {
|
|
17
|
+
policies: [
|
|
18
|
+
'admin::isAuthenticatedAdmin'
|
|
19
|
+
]
|
|
20
|
+
}
|
|
21
|
+
},
|
|
22
|
+
{
|
|
23
|
+
method: 'PUT',
|
|
24
|
+
path: '/homepage/layout',
|
|
25
|
+
handler: 'homepage.updateHomepageLayout',
|
|
26
|
+
config: {
|
|
27
|
+
policies: [
|
|
28
|
+
'admin::isAuthenticatedAdmin'
|
|
29
|
+
]
|
|
30
|
+
}
|
|
11
31
|
}
|
|
12
32
|
];
|
|
13
33
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"homepage.mjs","sources":["../../../../../server/src/routes/homepage.ts"],"sourcesContent":["export default [\n {\n method: 'GET',\n path: '/homepage/key-statistics',\n handler: 'homepage.getKeyStatistics',\n config: {\n policies: ['admin::isAuthenticatedAdmin'],\n },\n },\n];\n"],"names":["method","path","handler","config","policies"],"mappings":"AAAA,eAAe;AACb,IAAA;QACEA,MAAQ,EAAA,KAAA;QACRC,IAAM,EAAA,0BAAA;QACNC,OAAS,EAAA,2BAAA;QACTC,MAAQ,EAAA;YACNC,QAAU,EAAA;AAAC,gBAAA;AAA8B;AAC3C;AACF;CACD;;;;"}
|
|
1
|
+
{"version":3,"file":"homepage.mjs","sources":["../../../../../server/src/routes/homepage.ts"],"sourcesContent":["export default [\n {\n method: 'GET',\n path: '/homepage/key-statistics',\n handler: 'homepage.getKeyStatistics',\n config: {\n policies: ['admin::isAuthenticatedAdmin'],\n },\n },\n {\n method: 'GET',\n path: '/homepage/layout',\n handler: 'homepage.getHomepageLayout',\n config: { policies: ['admin::isAuthenticatedAdmin'] },\n },\n {\n method: 'PUT',\n path: '/homepage/layout',\n handler: 'homepage.updateHomepageLayout',\n config: { policies: ['admin::isAuthenticatedAdmin'] },\n },\n];\n"],"names":["method","path","handler","config","policies"],"mappings":"AAAA,eAAe;AACb,IAAA;QACEA,MAAQ,EAAA,KAAA;QACRC,IAAM,EAAA,0BAAA;QACNC,OAAS,EAAA,2BAAA;QACTC,MAAQ,EAAA;YACNC,QAAU,EAAA;AAAC,gBAAA;AAA8B;AAC3C;AACF,KAAA;AACA,IAAA;QACEJ,MAAQ,EAAA,KAAA;QACRC,IAAM,EAAA,kBAAA;QACNC,OAAS,EAAA,4BAAA;QACTC,MAAQ,EAAA;YAAEC,QAAU,EAAA;AAAC,gBAAA;AAA8B;AAAC;AACtD,KAAA;AACA,IAAA;QACEJ,MAAQ,EAAA,KAAA;QACRC,IAAM,EAAA,kBAAA;QACNC,OAAS,EAAA,+BAAA;QACTC,MAAQ,EAAA;YAAEC,QAAU,EAAA;AAAC,gBAAA;AAA8B;AAAC;AACtD;CACD;;;;"}
|
|
@@ -1,9 +1,16 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
3
|
var index = require('../utils/index.js');
|
|
4
|
+
var schema = require('../controllers/validation/schema.js');
|
|
4
5
|
|
|
6
|
+
const DEFAULT_WIDTH = 6;
|
|
7
|
+
const keyFor = (userId)=>`homepage-layout:${userId}`;
|
|
5
8
|
const isContentTypeVisible = (model)=>model?.pluginOptions?.['content-type-builder']?.visible !== false;
|
|
6
9
|
const homepageService = ({ strapi })=>{
|
|
10
|
+
const adminStore = strapi.store({
|
|
11
|
+
type: 'core',
|
|
12
|
+
name: 'admin'
|
|
13
|
+
});
|
|
7
14
|
const getKeyStatistics = async ()=>{
|
|
8
15
|
const contentTypes = Object.entries(strapi.contentTypes).filter(([, contentType])=>{
|
|
9
16
|
return isContentTypeVisible(contentType);
|
|
@@ -25,8 +32,48 @@ const homepageService = ({ strapi })=>{
|
|
|
25
32
|
apiTokens: countApiTokens
|
|
26
33
|
};
|
|
27
34
|
};
|
|
35
|
+
const getHomepageLayout = async (userId)=>{
|
|
36
|
+
const key = keyFor(userId);
|
|
37
|
+
const value = await adminStore.get({
|
|
38
|
+
key
|
|
39
|
+
});
|
|
40
|
+
if (!value) {
|
|
41
|
+
// nothing saved yet
|
|
42
|
+
return null;
|
|
43
|
+
}
|
|
44
|
+
return schema.HomepageLayoutSchema.parse(value);
|
|
45
|
+
};
|
|
46
|
+
const updateHomepageLayout = async (userId, input)=>{
|
|
47
|
+
const write = schema.HomepageLayoutWriteSchema.parse(input);
|
|
48
|
+
const key = keyFor(userId);
|
|
49
|
+
const currentRaw = await adminStore.get({
|
|
50
|
+
key
|
|
51
|
+
});
|
|
52
|
+
const current = currentRaw ? schema.HomepageLayoutSchema.parse(currentRaw) : null;
|
|
53
|
+
const widgetsNext = write.widgets ?? current?.widgets ?? [];
|
|
54
|
+
// Normalize widths (fill defaults where missing)
|
|
55
|
+
const normalizedWidgets = widgetsNext.map((w)=>{
|
|
56
|
+
const prev = current?.widgets.find((cw)=>cw.uid === w.uid);
|
|
57
|
+
return {
|
|
58
|
+
uid: w.uid,
|
|
59
|
+
width: w.width ?? prev?.width ?? DEFAULT_WIDTH
|
|
60
|
+
};
|
|
61
|
+
});
|
|
62
|
+
const next = {
|
|
63
|
+
version: write.version ?? 1,
|
|
64
|
+
widgets: normalizedWidgets,
|
|
65
|
+
updatedAt: write.updatedAt ?? new Date().toISOString()
|
|
66
|
+
};
|
|
67
|
+
await adminStore.set({
|
|
68
|
+
key,
|
|
69
|
+
value: next
|
|
70
|
+
});
|
|
71
|
+
return next;
|
|
72
|
+
};
|
|
28
73
|
return {
|
|
29
|
-
getKeyStatistics
|
|
74
|
+
getKeyStatistics,
|
|
75
|
+
getHomepageLayout,
|
|
76
|
+
updateHomepageLayout
|
|
30
77
|
};
|
|
31
78
|
};
|
|
32
79
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"homepage.js","sources":["../../../../../server/src/services/homepage.ts"],"sourcesContent":["import { Core } from '@strapi/types';\nimport { getService } from '../utils';\n\nconst isContentTypeVisible = (model: any) =>\n model?.pluginOptions?.['content-type-builder']?.visible !== false;\n\nexport const homepageService = ({ strapi }: { strapi: Core.Strapi }) => {\n const getKeyStatistics = async () => {\n const contentTypes = Object.entries(strapi.contentTypes).filter(([, contentType]) => {\n return isContentTypeVisible(contentType);\n });\n\n const countApiTokens = await getService('api-token').count();\n const countAdmins = await getService('user').count();\n const countLocales = (await strapi.plugin('i18n')?.service('locales')?.count()) ?? null;\n const countsAssets = await strapi.db.query('plugin::upload.file').count();\n const countWebhooks = await strapi.db.query('strapi::webhook').count();\n\n const componentCategories = new Set(\n Object.values(strapi.components).map((component) => component.category)\n );\n const components = Array.from(componentCategories);\n\n return {\n assets: countsAssets,\n contentTypes: contentTypes.length,\n components: components.length,\n locales: countLocales,\n admins: countAdmins,\n webhooks: countWebhooks,\n apiTokens: countApiTokens,\n };\n };\n\n return {\n getKeyStatistics,\n };\n};\n"],"names":["isContentTypeVisible","model","pluginOptions","visible","homepageService","strapi","getKeyStatistics","contentTypes","Object","entries","filter","contentType","countApiTokens","getService","count","countAdmins","countLocales","plugin","service","countsAssets","db","query","countWebhooks","componentCategories","Set","values","components","map","component","category","Array","from","assets","length","locales","admins","webhooks","apiTokens"],"mappings":"
|
|
1
|
+
{"version":3,"file":"homepage.js","sources":["../../../../../server/src/services/homepage.ts"],"sourcesContent":["import { Core } from '@strapi/types';\nimport { getService } from '../utils';\nimport {\n HomepageLayout,\n HomepageLayoutSchema,\n HomepageLayoutWrite,\n HomepageLayoutWriteSchema,\n} from '../controllers/validation/schema';\n\nconst DEFAULT_WIDTH = 6 as const;\nconst keyFor = (userId: number) => `homepage-layout:${userId}`;\n\nconst isContentTypeVisible = (model: any) =>\n model?.pluginOptions?.['content-type-builder']?.visible !== false;\n\nexport const homepageService = ({ strapi }: { strapi: Core.Strapi }) => {\n const adminStore = strapi.store({ type: 'core', name: 'admin' });\n const getKeyStatistics = async () => {\n const contentTypes = Object.entries(strapi.contentTypes).filter(([, contentType]) => {\n return isContentTypeVisible(contentType);\n });\n\n const countApiTokens = await getService('api-token').count();\n const countAdmins = await getService('user').count();\n const countLocales = (await strapi.plugin('i18n')?.service('locales')?.count()) ?? null;\n const countsAssets = await strapi.db.query('plugin::upload.file').count();\n const countWebhooks = await strapi.db.query('strapi::webhook').count();\n\n const componentCategories = new Set(\n Object.values(strapi.components).map((component) => component.category)\n );\n const components = Array.from(componentCategories);\n\n return {\n assets: countsAssets,\n contentTypes: contentTypes.length,\n components: components.length,\n locales: countLocales,\n admins: countAdmins,\n webhooks: countWebhooks,\n apiTokens: countApiTokens,\n };\n };\n\n const getHomepageLayout = async (userId: number): Promise<HomepageLayout | null> => {\n const key = keyFor(userId);\n const value = await adminStore.get({ key });\n if (!value) {\n // nothing saved yet\n return null;\n }\n\n return HomepageLayoutSchema.parse(value);\n };\n\n const updateHomepageLayout = async (userId: number, input: unknown): Promise<HomepageLayout> => {\n const write: HomepageLayoutWrite = HomepageLayoutWriteSchema.parse(input);\n\n const key = keyFor(userId);\n\n const currentRaw = await adminStore.get({ key });\n const current: HomepageLayout | null = currentRaw\n ? HomepageLayoutSchema.parse(currentRaw)\n : null;\n\n const widgetsNext = write.widgets ?? current?.widgets ?? [];\n\n // Normalize widths (fill defaults where missing)\n const normalizedWidgets = widgetsNext.map((w) => {\n const prev = current?.widgets.find((cw) => cw.uid === w.uid);\n return {\n uid: w.uid,\n width: w.width ?? prev?.width ?? DEFAULT_WIDTH,\n };\n });\n\n const next: HomepageLayout = {\n version: write.version ?? 1,\n widgets: normalizedWidgets,\n updatedAt: write.updatedAt ?? new Date().toISOString(),\n };\n\n await adminStore.set({ key, value: next });\n return next;\n };\n return {\n getKeyStatistics,\n getHomepageLayout,\n updateHomepageLayout,\n };\n};\n"],"names":["DEFAULT_WIDTH","keyFor","userId","isContentTypeVisible","model","pluginOptions","visible","homepageService","strapi","adminStore","store","type","name","getKeyStatistics","contentTypes","Object","entries","filter","contentType","countApiTokens","getService","count","countAdmins","countLocales","plugin","service","countsAssets","db","query","countWebhooks","componentCategories","Set","values","components","map","component","category","Array","from","assets","length","locales","admins","webhooks","apiTokens","getHomepageLayout","key","value","get","HomepageLayoutSchema","parse","updateHomepageLayout","input","write","HomepageLayoutWriteSchema","currentRaw","current","widgetsNext","widgets","normalizedWidgets","w","prev","find","cw","uid","width","next","version","updatedAt","Date","toISOString","set"],"mappings":";;;;;AASA,MAAMA,aAAgB,GAAA,CAAA;AACtB,MAAMC,SAAS,CAACC,MAAAA,GAAmB,CAAC,gBAAgB,EAAEA,OAAO,CAAC;AAE9D,MAAMC,oBAAAA,GAAuB,CAACC,KAC5BA,GAAAA,KAAAA,EAAOC,gBAAgB,sBAAA,CAAuB,EAAEC,OAAY,KAAA,KAAA;AAEjDC,MAAAA,eAAAA,GAAkB,CAAC,EAAEC,MAAM,EAA2B,GAAA;IACjE,MAAMC,UAAAA,GAAaD,MAAOE,CAAAA,KAAK,CAAC;QAAEC,IAAM,EAAA,MAAA;QAAQC,IAAM,EAAA;AAAQ,KAAA,CAAA;AAC9D,IAAA,MAAMC,gBAAmB,GAAA,UAAA;QACvB,MAAMC,YAAAA,GAAeC,MAAOC,CAAAA,OAAO,CAACR,MAAAA,CAAOM,YAAY,CAAA,CAAEG,MAAM,CAAC,CAAC,GAAGC,WAAY,CAAA,GAAA;AAC9E,YAAA,OAAOf,oBAAqBe,CAAAA,WAAAA,CAAAA;AAC9B,SAAA,CAAA;AAEA,QAAA,MAAMC,cAAiB,GAAA,MAAMC,gBAAW,CAAA,WAAA,CAAA,CAAaC,KAAK,EAAA;AAC1D,QAAA,MAAMC,WAAc,GAAA,MAAMF,gBAAW,CAAA,MAAA,CAAA,CAAQC,KAAK,EAAA;QAClD,MAAME,YAAAA,GAAe,MAAOf,MAAAA,CAAOgB,MAAM,CAAC,MAAA,CAAA,EAASC,OAAQ,CAAA,SAAA,CAAA,EAAYJ,KAAY,EAAA,IAAA,IAAA;QACnF,MAAMK,YAAAA,GAAe,MAAMlB,MAAOmB,CAAAA,EAAE,CAACC,KAAK,CAAC,uBAAuBP,KAAK,EAAA;QACvE,MAAMQ,aAAAA,GAAgB,MAAMrB,MAAOmB,CAAAA,EAAE,CAACC,KAAK,CAAC,mBAAmBP,KAAK,EAAA;AAEpE,QAAA,MAAMS,mBAAsB,GAAA,IAAIC,GAC9BhB,CAAAA,MAAAA,CAAOiB,MAAM,CAACxB,MAAAA,CAAOyB,UAAU,CAAA,CAAEC,GAAG,CAAC,CAACC,SAAAA,GAAcA,UAAUC,QAAQ,CAAA,CAAA;QAExE,MAAMH,UAAAA,GAAaI,KAAMC,CAAAA,IAAI,CAACR,mBAAAA,CAAAA;QAE9B,OAAO;YACLS,MAAQb,EAAAA,YAAAA;AACRZ,YAAAA,YAAAA,EAAcA,aAAa0B,MAAM;AACjCP,YAAAA,UAAAA,EAAYA,WAAWO,MAAM;YAC7BC,OAASlB,EAAAA,YAAAA;YACTmB,MAAQpB,EAAAA,WAAAA;YACRqB,QAAUd,EAAAA,aAAAA;YACVe,SAAWzB,EAAAA;AACb,SAAA;AACF,KAAA;AAEA,IAAA,MAAM0B,oBAAoB,OAAO3C,MAAAA,GAAAA;AAC/B,QAAA,MAAM4C,MAAM7C,MAAOC,CAAAA,MAAAA,CAAAA;AACnB,QAAA,MAAM6C,KAAQ,GAAA,MAAMtC,UAAWuC,CAAAA,GAAG,CAAC;AAAEF,YAAAA;AAAI,SAAA,CAAA;AACzC,QAAA,IAAI,CAACC,KAAO,EAAA;;YAEV,OAAO,IAAA;AACT;QAEA,OAAOE,2BAAAA,CAAqBC,KAAK,CAACH,KAAAA,CAAAA;AACpC,KAAA;IAEA,MAAMI,oBAAAA,GAAuB,OAAOjD,MAAgBkD,EAAAA,KAAAA,GAAAA;QAClD,MAAMC,KAAAA,GAA6BC,gCAA0BJ,CAAAA,KAAK,CAACE,KAAAA,CAAAA;AAEnE,QAAA,MAAMN,MAAM7C,MAAOC,CAAAA,MAAAA,CAAAA;AAEnB,QAAA,MAAMqD,UAAa,GAAA,MAAM9C,UAAWuC,CAAAA,GAAG,CAAC;AAAEF,YAAAA;AAAI,SAAA,CAAA;AAC9C,QAAA,MAAMU,OAAiCD,GAAAA,UAAAA,GACnCN,2BAAqBC,CAAAA,KAAK,CAACK,UAC3B,CAAA,GAAA,IAAA;AAEJ,QAAA,MAAME,cAAcJ,KAAMK,CAAAA,OAAO,IAAIF,OAAAA,EAASE,WAAW,EAAE;;AAG3D,QAAA,MAAMC,iBAAoBF,GAAAA,WAAAA,CAAYvB,GAAG,CAAC,CAAC0B,CAAAA,GAAAA;YACzC,MAAMC,IAAAA,GAAOL,OAASE,EAAAA,OAAAA,CAAQI,IAAK,CAAA,CAACC,KAAOA,EAAGC,CAAAA,GAAG,KAAKJ,CAAAA,CAAEI,GAAG,CAAA;YAC3D,OAAO;AACLA,gBAAAA,GAAAA,EAAKJ,EAAEI,GAAG;AACVC,gBAAAA,KAAAA,EAAOL,CAAEK,CAAAA,KAAK,IAAIJ,IAAAA,EAAMI,KAASjE,IAAAA;AACnC,aAAA;AACF,SAAA,CAAA;AAEA,QAAA,MAAMkE,IAAuB,GAAA;YAC3BC,OAASd,EAAAA,KAAAA,CAAMc,OAAO,IAAI,CAAA;YAC1BT,OAASC,EAAAA,iBAAAA;AACTS,YAAAA,SAAAA,EAAWf,KAAMe,CAAAA,SAAS,IAAI,IAAIC,OAAOC,WAAW;AACtD,SAAA;QAEA,MAAM7D,UAAAA,CAAW8D,GAAG,CAAC;AAAEzB,YAAAA,GAAAA;YAAKC,KAAOmB,EAAAA;AAAK,SAAA,CAAA;QACxC,OAAOA,IAAAA;AACT,KAAA;IACA,OAAO;AACLrD,QAAAA,gBAAAA;AACAgC,QAAAA,iBAAAA;AACAM,QAAAA;AACF,KAAA;AACF;;;;"}
|
|
@@ -1,7 +1,14 @@
|
|
|
1
1
|
import { getService } from '../utils/index.mjs';
|
|
2
|
+
import { HomepageLayoutSchema, HomepageLayoutWriteSchema } from '../controllers/validation/schema.mjs';
|
|
2
3
|
|
|
4
|
+
const DEFAULT_WIDTH = 6;
|
|
5
|
+
const keyFor = (userId)=>`homepage-layout:${userId}`;
|
|
3
6
|
const isContentTypeVisible = (model)=>model?.pluginOptions?.['content-type-builder']?.visible !== false;
|
|
4
7
|
const homepageService = ({ strapi })=>{
|
|
8
|
+
const adminStore = strapi.store({
|
|
9
|
+
type: 'core',
|
|
10
|
+
name: 'admin'
|
|
11
|
+
});
|
|
5
12
|
const getKeyStatistics = async ()=>{
|
|
6
13
|
const contentTypes = Object.entries(strapi.contentTypes).filter(([, contentType])=>{
|
|
7
14
|
return isContentTypeVisible(contentType);
|
|
@@ -23,8 +30,48 @@ const homepageService = ({ strapi })=>{
|
|
|
23
30
|
apiTokens: countApiTokens
|
|
24
31
|
};
|
|
25
32
|
};
|
|
33
|
+
const getHomepageLayout = async (userId)=>{
|
|
34
|
+
const key = keyFor(userId);
|
|
35
|
+
const value = await adminStore.get({
|
|
36
|
+
key
|
|
37
|
+
});
|
|
38
|
+
if (!value) {
|
|
39
|
+
// nothing saved yet
|
|
40
|
+
return null;
|
|
41
|
+
}
|
|
42
|
+
return HomepageLayoutSchema.parse(value);
|
|
43
|
+
};
|
|
44
|
+
const updateHomepageLayout = async (userId, input)=>{
|
|
45
|
+
const write = HomepageLayoutWriteSchema.parse(input);
|
|
46
|
+
const key = keyFor(userId);
|
|
47
|
+
const currentRaw = await adminStore.get({
|
|
48
|
+
key
|
|
49
|
+
});
|
|
50
|
+
const current = currentRaw ? HomepageLayoutSchema.parse(currentRaw) : null;
|
|
51
|
+
const widgetsNext = write.widgets ?? current?.widgets ?? [];
|
|
52
|
+
// Normalize widths (fill defaults where missing)
|
|
53
|
+
const normalizedWidgets = widgetsNext.map((w)=>{
|
|
54
|
+
const prev = current?.widgets.find((cw)=>cw.uid === w.uid);
|
|
55
|
+
return {
|
|
56
|
+
uid: w.uid,
|
|
57
|
+
width: w.width ?? prev?.width ?? DEFAULT_WIDTH
|
|
58
|
+
};
|
|
59
|
+
});
|
|
60
|
+
const next = {
|
|
61
|
+
version: write.version ?? 1,
|
|
62
|
+
widgets: normalizedWidgets,
|
|
63
|
+
updatedAt: write.updatedAt ?? new Date().toISOString()
|
|
64
|
+
};
|
|
65
|
+
await adminStore.set({
|
|
66
|
+
key,
|
|
67
|
+
value: next
|
|
68
|
+
});
|
|
69
|
+
return next;
|
|
70
|
+
};
|
|
26
71
|
return {
|
|
27
|
-
getKeyStatistics
|
|
72
|
+
getKeyStatistics,
|
|
73
|
+
getHomepageLayout,
|
|
74
|
+
updateHomepageLayout
|
|
28
75
|
};
|
|
29
76
|
};
|
|
30
77
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"homepage.mjs","sources":["../../../../../server/src/services/homepage.ts"],"sourcesContent":["import { Core } from '@strapi/types';\nimport { getService } from '../utils';\n\nconst isContentTypeVisible = (model: any) =>\n model?.pluginOptions?.['content-type-builder']?.visible !== false;\n\nexport const homepageService = ({ strapi }: { strapi: Core.Strapi }) => {\n const getKeyStatistics = async () => {\n const contentTypes = Object.entries(strapi.contentTypes).filter(([, contentType]) => {\n return isContentTypeVisible(contentType);\n });\n\n const countApiTokens = await getService('api-token').count();\n const countAdmins = await getService('user').count();\n const countLocales = (await strapi.plugin('i18n')?.service('locales')?.count()) ?? null;\n const countsAssets = await strapi.db.query('plugin::upload.file').count();\n const countWebhooks = await strapi.db.query('strapi::webhook').count();\n\n const componentCategories = new Set(\n Object.values(strapi.components).map((component) => component.category)\n );\n const components = Array.from(componentCategories);\n\n return {\n assets: countsAssets,\n contentTypes: contentTypes.length,\n components: components.length,\n locales: countLocales,\n admins: countAdmins,\n webhooks: countWebhooks,\n apiTokens: countApiTokens,\n };\n };\n\n return {\n getKeyStatistics,\n };\n};\n"],"names":["isContentTypeVisible","model","pluginOptions","visible","homepageService","strapi","getKeyStatistics","contentTypes","Object","entries","filter","contentType","countApiTokens","getService","count","countAdmins","countLocales","plugin","service","countsAssets","db","query","countWebhooks","componentCategories","Set","values","components","map","component","category","Array","from","assets","length","locales","admins","webhooks","apiTokens"],"mappings":"
|
|
1
|
+
{"version":3,"file":"homepage.mjs","sources":["../../../../../server/src/services/homepage.ts"],"sourcesContent":["import { Core } from '@strapi/types';\nimport { getService } from '../utils';\nimport {\n HomepageLayout,\n HomepageLayoutSchema,\n HomepageLayoutWrite,\n HomepageLayoutWriteSchema,\n} from '../controllers/validation/schema';\n\nconst DEFAULT_WIDTH = 6 as const;\nconst keyFor = (userId: number) => `homepage-layout:${userId}`;\n\nconst isContentTypeVisible = (model: any) =>\n model?.pluginOptions?.['content-type-builder']?.visible !== false;\n\nexport const homepageService = ({ strapi }: { strapi: Core.Strapi }) => {\n const adminStore = strapi.store({ type: 'core', name: 'admin' });\n const getKeyStatistics = async () => {\n const contentTypes = Object.entries(strapi.contentTypes).filter(([, contentType]) => {\n return isContentTypeVisible(contentType);\n });\n\n const countApiTokens = await getService('api-token').count();\n const countAdmins = await getService('user').count();\n const countLocales = (await strapi.plugin('i18n')?.service('locales')?.count()) ?? null;\n const countsAssets = await strapi.db.query('plugin::upload.file').count();\n const countWebhooks = await strapi.db.query('strapi::webhook').count();\n\n const componentCategories = new Set(\n Object.values(strapi.components).map((component) => component.category)\n );\n const components = Array.from(componentCategories);\n\n return {\n assets: countsAssets,\n contentTypes: contentTypes.length,\n components: components.length,\n locales: countLocales,\n admins: countAdmins,\n webhooks: countWebhooks,\n apiTokens: countApiTokens,\n };\n };\n\n const getHomepageLayout = async (userId: number): Promise<HomepageLayout | null> => {\n const key = keyFor(userId);\n const value = await adminStore.get({ key });\n if (!value) {\n // nothing saved yet\n return null;\n }\n\n return HomepageLayoutSchema.parse(value);\n };\n\n const updateHomepageLayout = async (userId: number, input: unknown): Promise<HomepageLayout> => {\n const write: HomepageLayoutWrite = HomepageLayoutWriteSchema.parse(input);\n\n const key = keyFor(userId);\n\n const currentRaw = await adminStore.get({ key });\n const current: HomepageLayout | null = currentRaw\n ? HomepageLayoutSchema.parse(currentRaw)\n : null;\n\n const widgetsNext = write.widgets ?? current?.widgets ?? [];\n\n // Normalize widths (fill defaults where missing)\n const normalizedWidgets = widgetsNext.map((w) => {\n const prev = current?.widgets.find((cw) => cw.uid === w.uid);\n return {\n uid: w.uid,\n width: w.width ?? prev?.width ?? DEFAULT_WIDTH,\n };\n });\n\n const next: HomepageLayout = {\n version: write.version ?? 1,\n widgets: normalizedWidgets,\n updatedAt: write.updatedAt ?? new Date().toISOString(),\n };\n\n await adminStore.set({ key, value: next });\n return next;\n };\n return {\n getKeyStatistics,\n getHomepageLayout,\n updateHomepageLayout,\n };\n};\n"],"names":["DEFAULT_WIDTH","keyFor","userId","isContentTypeVisible","model","pluginOptions","visible","homepageService","strapi","adminStore","store","type","name","getKeyStatistics","contentTypes","Object","entries","filter","contentType","countApiTokens","getService","count","countAdmins","countLocales","plugin","service","countsAssets","db","query","countWebhooks","componentCategories","Set","values","components","map","component","category","Array","from","assets","length","locales","admins","webhooks","apiTokens","getHomepageLayout","key","value","get","HomepageLayoutSchema","parse","updateHomepageLayout","input","write","HomepageLayoutWriteSchema","currentRaw","current","widgetsNext","widgets","normalizedWidgets","w","prev","find","cw","uid","width","next","version","updatedAt","Date","toISOString","set"],"mappings":"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"}
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
import type { Context } from 'koa';
|
|
2
|
+
import { HomepageLayout } from './validation/schema';
|
|
1
3
|
declare const _default: {
|
|
2
4
|
getKeyStatistics(): Promise<{
|
|
3
5
|
data: {
|
|
@@ -10,6 +12,12 @@ declare const _default: {
|
|
|
10
12
|
apiTokens: number;
|
|
11
13
|
};
|
|
12
14
|
}>;
|
|
15
|
+
getHomepageLayout(ctx: Context): Promise<{
|
|
16
|
+
data: HomepageLayout | null;
|
|
17
|
+
}>;
|
|
18
|
+
updateHomepageLayout(ctx: Context): Promise<{
|
|
19
|
+
data: HomepageLayout;
|
|
20
|
+
}>;
|
|
13
21
|
};
|
|
14
22
|
export default _default;
|
|
15
23
|
//# sourceMappingURL=homepage.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"homepage.d.ts","sourceRoot":"","sources":["../../../../server/src/controllers/homepage.ts"],"names":[],"mappings":";;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"homepage.d.ts","sourceRoot":"","sources":["../../../../server/src/controllers/homepage.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,KAAK,CAAC;AAEnC,OAAO,EAAE,cAAc,EAAuB,MAAM,qBAAqB,CAAC;;;;;;;;;;;;;2BAS3C,OAAO,GAAG,QAAQ;QAAE,IAAI,EAAE,cAAc,GAAG,IAAI,CAAA;KAAE,CAAC;8BAO/C,OAAO,GAAG,QAAQ;QAAE,IAAI,EAAE,cAAc,CAAA;KAAE,CAAC;;AAd7E,wBAsBE"}
|
|
@@ -125,6 +125,26 @@ declare const _default: {
|
|
|
125
125
|
apiTokens: number;
|
|
126
126
|
};
|
|
127
127
|
}>;
|
|
128
|
+
getHomepageLayout(ctx: import("koa").Context): Promise<{
|
|
129
|
+
data: {
|
|
130
|
+
updatedAt: string;
|
|
131
|
+
version: number;
|
|
132
|
+
widgets: {
|
|
133
|
+
uid: string;
|
|
134
|
+
width: 8 | 6 | 4 | 12;
|
|
135
|
+
}[];
|
|
136
|
+
} | null;
|
|
137
|
+
}>;
|
|
138
|
+
updateHomepageLayout(ctx: import("koa").Context): Promise<{
|
|
139
|
+
data: {
|
|
140
|
+
updatedAt: string;
|
|
141
|
+
version: number;
|
|
142
|
+
widgets: {
|
|
143
|
+
uid: string;
|
|
144
|
+
width: 8 | 6 | 4 | 12;
|
|
145
|
+
}[];
|
|
146
|
+
};
|
|
147
|
+
}>;
|
|
128
148
|
};
|
|
129
149
|
};
|
|
130
150
|
export default _default;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../server/src/controllers/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../server/src/controllers/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAcA,wBAYE"}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
export declare const WidthSchema: z.ZodUnion<[z.ZodLiteral<4>, z.ZodLiteral<6>, z.ZodLiteral<8>, z.ZodLiteral<12>]>;
|
|
3
|
+
export declare const HomepageLayoutSchema: z.ZodObject<{
|
|
4
|
+
version: z.ZodNumber;
|
|
5
|
+
widgets: z.ZodArray<z.ZodObject<{
|
|
6
|
+
uid: z.ZodString;
|
|
7
|
+
width: z.ZodUnion<[z.ZodLiteral<4>, z.ZodLiteral<6>, z.ZodLiteral<8>, z.ZodLiteral<12>]>;
|
|
8
|
+
}, "strict", z.ZodTypeAny, {
|
|
9
|
+
uid: string;
|
|
10
|
+
width: 8 | 6 | 4 | 12;
|
|
11
|
+
}, {
|
|
12
|
+
uid: string;
|
|
13
|
+
width: 8 | 6 | 4 | 12;
|
|
14
|
+
}>, "many">;
|
|
15
|
+
updatedAt: z.ZodString;
|
|
16
|
+
}, "strict", z.ZodTypeAny, {
|
|
17
|
+
updatedAt: string;
|
|
18
|
+
version: number;
|
|
19
|
+
widgets: {
|
|
20
|
+
uid: string;
|
|
21
|
+
width: 8 | 6 | 4 | 12;
|
|
22
|
+
}[];
|
|
23
|
+
}, {
|
|
24
|
+
updatedAt: string;
|
|
25
|
+
version: number;
|
|
26
|
+
widgets: {
|
|
27
|
+
uid: string;
|
|
28
|
+
width: 8 | 6 | 4 | 12;
|
|
29
|
+
}[];
|
|
30
|
+
}>;
|
|
31
|
+
export type HomepageLayout = z.infer<typeof HomepageLayoutSchema>;
|
|
32
|
+
export declare const HomepageLayoutWriteSchema: z.ZodObject<{
|
|
33
|
+
version: z.ZodOptional<z.ZodNumber>;
|
|
34
|
+
widgets: z.ZodArray<z.ZodObject<{
|
|
35
|
+
uid: z.ZodString;
|
|
36
|
+
width: z.ZodUnion<[z.ZodLiteral<4>, z.ZodLiteral<6>, z.ZodLiteral<8>, z.ZodLiteral<12>]>;
|
|
37
|
+
}, "strict", z.ZodTypeAny, {
|
|
38
|
+
uid: string;
|
|
39
|
+
width: 8 | 6 | 4 | 12;
|
|
40
|
+
}, {
|
|
41
|
+
uid: string;
|
|
42
|
+
width: 8 | 6 | 4 | 12;
|
|
43
|
+
}>, "many">;
|
|
44
|
+
updatedAt: z.ZodOptional<z.ZodString>;
|
|
45
|
+
}, "strict", z.ZodTypeAny, {
|
|
46
|
+
widgets: {
|
|
47
|
+
uid: string;
|
|
48
|
+
width: 8 | 6 | 4 | 12;
|
|
49
|
+
}[];
|
|
50
|
+
updatedAt?: string | undefined;
|
|
51
|
+
version?: number | undefined;
|
|
52
|
+
}, {
|
|
53
|
+
widgets: {
|
|
54
|
+
uid: string;
|
|
55
|
+
width: 8 | 6 | 4 | 12;
|
|
56
|
+
}[];
|
|
57
|
+
updatedAt?: string | undefined;
|
|
58
|
+
version?: number | undefined;
|
|
59
|
+
}>;
|
|
60
|
+
export type HomepageLayoutWrite = z.infer<typeof HomepageLayoutWriteSchema>;
|
|
61
|
+
//# sourceMappingURL=schema.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../../../server/src/controllers/validation/schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,eAAO,MAAM,WAAW,mFAAqE,CAAC;AAS9F,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;EAMtB,CAAC;AAEZ,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAElE,eAAO,MAAM,yBAAyB;;;;;;;;;;;;;;;;;;;;;;;;;;;EAM3B,CAAC;AAEZ,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,yBAAyB,CAAC,CAAC"}
|
|
@@ -202,6 +202,22 @@ declare let admin: {
|
|
|
202
202
|
webhooks: number;
|
|
203
203
|
apiTokens: number;
|
|
204
204
|
}>;
|
|
205
|
+
getHomepageLayout: (userId: number) => Promise<{
|
|
206
|
+
updatedAt: string;
|
|
207
|
+
version: number;
|
|
208
|
+
widgets: {
|
|
209
|
+
uid: string;
|
|
210
|
+
width: 8 | 6 | 4 | 12;
|
|
211
|
+
}[];
|
|
212
|
+
} | null>;
|
|
213
|
+
updateHomepageLayout: (userId: number, input: unknown) => Promise<{
|
|
214
|
+
updatedAt: string;
|
|
215
|
+
version: number;
|
|
216
|
+
widgets: {
|
|
217
|
+
uid: string;
|
|
218
|
+
width: 8 | 6 | 4 | 12;
|
|
219
|
+
}[];
|
|
220
|
+
}>;
|
|
205
221
|
};
|
|
206
222
|
};
|
|
207
223
|
controllers: {
|
|
@@ -330,6 +346,26 @@ declare let admin: {
|
|
|
330
346
|
apiTokens: number;
|
|
331
347
|
};
|
|
332
348
|
}>;
|
|
349
|
+
getHomepageLayout(ctx: import("koa").Context): Promise<{
|
|
350
|
+
data: {
|
|
351
|
+
updatedAt: string;
|
|
352
|
+
version: number;
|
|
353
|
+
widgets: {
|
|
354
|
+
uid: string;
|
|
355
|
+
width: 8 | 6 | 4 | 12;
|
|
356
|
+
}[];
|
|
357
|
+
} | null;
|
|
358
|
+
}>;
|
|
359
|
+
updateHomepageLayout(ctx: import("koa").Context): Promise<{
|
|
360
|
+
data: {
|
|
361
|
+
updatedAt: string;
|
|
362
|
+
version: number;
|
|
363
|
+
widgets: {
|
|
364
|
+
uid: string;
|
|
365
|
+
width: 8 | 6 | 4 | 12;
|
|
366
|
+
}[];
|
|
367
|
+
};
|
|
368
|
+
}>;
|
|
333
369
|
};
|
|
334
370
|
};
|
|
335
371
|
contentTypes: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../server/src/index.ts"],"names":[],"mappings":";AAeA,QAAA,IAAI,KAAK
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../server/src/index.ts"],"names":[],"mappings":";AAeA,QAAA,IAAI,KAAK;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAWR,CAAC;AAUF,eAAe,KAAK,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"homepage.d.ts","sourceRoot":"","sources":["../../../../server/src/routes/homepage.ts"],"names":[],"mappings":";;;;;;;;AAAA,
|
|
1
|
+
{"version":3,"file":"homepage.d.ts","sourceRoot":"","sources":["../../../../server/src/routes/homepage.ts"],"names":[],"mappings":";;;;;;;;AAAA,wBAqBE"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { Core } from '@strapi/types';
|
|
2
|
+
import { HomepageLayout } from '../controllers/validation/schema';
|
|
2
3
|
export declare const homepageService: ({ strapi }: {
|
|
3
4
|
strapi: Core.Strapi;
|
|
4
5
|
}) => {
|
|
@@ -11,5 +12,7 @@ export declare const homepageService: ({ strapi }: {
|
|
|
11
12
|
webhooks: number;
|
|
12
13
|
apiTokens: number;
|
|
13
14
|
}>;
|
|
15
|
+
getHomepageLayout: (userId: number) => Promise<HomepageLayout | null>;
|
|
16
|
+
updateHomepageLayout: (userId: number, input: unknown) => Promise<HomepageLayout>;
|
|
14
17
|
};
|
|
15
18
|
//# sourceMappingURL=homepage.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"homepage.d.ts","sourceRoot":"","sources":["../../../../server/src/services/homepage.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"homepage.d.ts","sourceRoot":"","sources":["../../../../server/src/services/homepage.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAErC,OAAO,EACL,cAAc,EAIf,MAAM,kCAAkC,CAAC;AAQ1C,eAAO,MAAM,eAAe,eAAgB;IAAE,MAAM,EAAE,KAAK,MAAM,CAAA;CAAE;;;;;;;;;;gCA6BxB,MAAM,KAAG,QAAQ,cAAc,GAAG,IAAI,CAAC;mCAWpC,MAAM,SAAS,OAAO,KAAG,QAAQ,cAAc,CAAC;CAmC7F,CAAC"}
|
|
@@ -124,6 +124,22 @@ declare const _default: {
|
|
|
124
124
|
webhooks: number;
|
|
125
125
|
apiTokens: number;
|
|
126
126
|
}>;
|
|
127
|
+
getHomepageLayout: (userId: number) => Promise<{
|
|
128
|
+
updatedAt: string;
|
|
129
|
+
version: number;
|
|
130
|
+
widgets: {
|
|
131
|
+
uid: string;
|
|
132
|
+
width: 8 | 6 | 4 | 12;
|
|
133
|
+
}[];
|
|
134
|
+
} | null>;
|
|
135
|
+
updateHomepageLayout: (userId: number, input: unknown) => Promise<{
|
|
136
|
+
updatedAt: string;
|
|
137
|
+
version: number;
|
|
138
|
+
widgets: {
|
|
139
|
+
uid: string;
|
|
140
|
+
width: 8 | 6 | 4 | 12;
|
|
141
|
+
}[];
|
|
142
|
+
}>;
|
|
127
143
|
};
|
|
128
144
|
};
|
|
129
145
|
export default _default;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../server/src/services/index.ts"],"names":[],"mappings":";AAOA,OAAO,KAAK,KAAK,MAAM,SAAS,CAAC;AACjC,OAAO,KAAK,UAAU,MAAM,cAAc,CAAC;AAC3C,OAAO,KAAK,WAAW,MAAM,gBAAgB,CAAC;AAC9C,OAAO,KAAK,SAAS,MAAM,aAAa,CAAC;AACzC,OAAO,KAAK,SAAS,MAAM,aAAa,CAAC;AACzC,OAAO,KAAK,MAAM,MAAM,UAAU,CAAC;AACnC,OAAO,KAAK,QAAQ,MAAM,aAAa,CAAC;AACxC,OAAO,KAAK,QAAQ,MAAM,YAAY,CAAC;AACvC,OAAO,KAAK,eAAe,MAAM,oBAAoB,CAAC
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../server/src/services/index.ts"],"names":[],"mappings":";AAOA,OAAO,KAAK,KAAK,MAAM,SAAS,CAAC;AACjC,OAAO,KAAK,UAAU,MAAM,cAAc,CAAC;AAC3C,OAAO,KAAK,WAAW,MAAM,gBAAgB,CAAC;AAC9C,OAAO,KAAK,SAAS,MAAM,aAAa,CAAC;AACzC,OAAO,KAAK,SAAS,MAAM,aAAa,CAAC;AACzC,OAAO,KAAK,MAAM,MAAM,UAAU,CAAC;AACnC,OAAO,KAAK,QAAQ,MAAM,aAAa,CAAC;AACxC,OAAO,KAAK,QAAQ,MAAM,YAAY,CAAC;AACvC,OAAO,KAAK,eAAe,MAAM,oBAAoB,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAItD,wBAiBE"}
|
|
@@ -53,3 +53,30 @@ export declare namespace GetCountDocuments {
|
|
|
53
53
|
error?: errors.ApplicationError;
|
|
54
54
|
}
|
|
55
55
|
}
|
|
56
|
+
export declare namespace Homepage {
|
|
57
|
+
type WidgetUID = string;
|
|
58
|
+
type Width = 4 | 6 | 8 | 12;
|
|
59
|
+
interface Layout {
|
|
60
|
+
version: number;
|
|
61
|
+
order: WidgetUID[];
|
|
62
|
+
widths: Record<WidgetUID, Width>;
|
|
63
|
+
updatedAt: string;
|
|
64
|
+
}
|
|
65
|
+
interface LayoutWrite {
|
|
66
|
+
order: WidgetUID[];
|
|
67
|
+
widths: Record<WidgetUID, Width>;
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
export declare namespace GetHomepageLayout {
|
|
71
|
+
interface Response {
|
|
72
|
+
data: Homepage.Layout;
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
export declare namespace UpdateHomepageLayout {
|
|
76
|
+
interface Request {
|
|
77
|
+
body: Homepage.LayoutWrite;
|
|
78
|
+
}
|
|
79
|
+
interface Response {
|
|
80
|
+
data: Homepage.Layout;
|
|
81
|
+
}
|
|
82
|
+
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"homepage.d.ts","sourceRoot":"","sources":["../../../shared/contracts/homepage.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,eAAe,CAAC;AAGjD,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC,eAAe,CAAC;IAC7B,cAAc,EAAE,GAAG,CAAC,WAAW,CAAC;IAChC,sBAAsB,EAAE,MAAM,CAAC;IAC/B,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,MAAM,CAAC,EAAE,OAAO,GAAG,WAAW,GAAG,UAAU,CAAC;IAC5C,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,IAAI,CAAC;IAChB,WAAW,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC;CAC3B;AAED,MAAM,CAAC,OAAO,WAAW,kBAAkB,CAAC;IAC1C,UAAiB,OAAO;QACtB,IAAI,EAAE,EAAE,CAAC;QACT,KAAK,EAAE;YACL,MAAM,EAAE,QAAQ,GAAG,SAAS,CAAC;SAC9B,CAAC;KACH;IAED,UAAiB,QAAQ;QACvB,IAAI,EAAE,cAAc,EAAE,CAAC;QACvB,KAAK,CAAC,EAAE,MAAM,CAAC,gBAAgB,CAAC;KACjC;CACF;AAED,MAAM,CAAC,OAAO,WAAW,gBAAgB,CAAC;IACxC,UAAiB,OAAO;QACtB,IAAI,EAAE,EAAE,CAAC;KACV;IAED,UAAiB,QAAQ;QACvB,IAAI,EAAE;YACJ,MAAM,EAAE,MAAM,CAAC;YACf,YAAY,EAAE,MAAM,CAAC;YACrB,UAAU,EAAE,MAAM,CAAC;YACnB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;YACvB,MAAM,EAAE,MAAM,CAAC;YACf,QAAQ,EAAE,MAAM,CAAC;YACjB,SAAS,EAAE,MAAM,CAAC;SACnB,CAAC;QACF,KAAK,CAAC,EAAE,MAAM,CAAC,gBAAgB,CAAC;KACjC;CACF;AAED,MAAM,CAAC,OAAO,WAAW,iBAAiB,CAAC;IACzC,UAAiB,OAAO;QACtB,IAAI,EAAE,EAAE,CAAC;KACV;IAED,UAAiB,QAAQ;QACvB,IAAI,EAAE;YACJ,KAAK,EAAE,MAAM,CAAC;YACd,SAAS,EAAE,MAAM,CAAC;YAClB,QAAQ,EAAE,MAAM,CAAC;SAClB,CAAC;QACF,KAAK,CAAC,EAAE,MAAM,CAAC,gBAAgB,CAAC;KACjC;CACF"}
|
|
1
|
+
{"version":3,"file":"homepage.d.ts","sourceRoot":"","sources":["../../../shared/contracts/homepage.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,eAAe,CAAC;AAGjD,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC,eAAe,CAAC;IAC7B,cAAc,EAAE,GAAG,CAAC,WAAW,CAAC;IAChC,sBAAsB,EAAE,MAAM,CAAC;IAC/B,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,MAAM,CAAC,EAAE,OAAO,GAAG,WAAW,GAAG,UAAU,CAAC;IAC5C,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,IAAI,CAAC;IAChB,WAAW,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC;CAC3B;AAED,MAAM,CAAC,OAAO,WAAW,kBAAkB,CAAC;IAC1C,UAAiB,OAAO;QACtB,IAAI,EAAE,EAAE,CAAC;QACT,KAAK,EAAE;YACL,MAAM,EAAE,QAAQ,GAAG,SAAS,CAAC;SAC9B,CAAC;KACH;IAED,UAAiB,QAAQ;QACvB,IAAI,EAAE,cAAc,EAAE,CAAC;QACvB,KAAK,CAAC,EAAE,MAAM,CAAC,gBAAgB,CAAC;KACjC;CACF;AAED,MAAM,CAAC,OAAO,WAAW,gBAAgB,CAAC;IACxC,UAAiB,OAAO;QACtB,IAAI,EAAE,EAAE,CAAC;KACV;IAED,UAAiB,QAAQ;QACvB,IAAI,EAAE;YACJ,MAAM,EAAE,MAAM,CAAC;YACf,YAAY,EAAE,MAAM,CAAC;YACrB,UAAU,EAAE,MAAM,CAAC;YACnB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;YACvB,MAAM,EAAE,MAAM,CAAC;YACf,QAAQ,EAAE,MAAM,CAAC;YACjB,SAAS,EAAE,MAAM,CAAC;SACnB,CAAC;QACF,KAAK,CAAC,EAAE,MAAM,CAAC,gBAAgB,CAAC;KACjC;CACF;AAED,MAAM,CAAC,OAAO,WAAW,iBAAiB,CAAC;IACzC,UAAiB,OAAO;QACtB,IAAI,EAAE,EAAE,CAAC;KACV;IAED,UAAiB,QAAQ;QACvB,IAAI,EAAE;YACJ,KAAK,EAAE,MAAM,CAAC;YACd,SAAS,EAAE,MAAM,CAAC;YAClB,QAAQ,EAAE,MAAM,CAAC;SAClB,CAAC;QACF,KAAK,CAAC,EAAE,MAAM,CAAC,gBAAgB,CAAC;KACjC;CACF;AAED,MAAM,CAAC,OAAO,WAAW,QAAQ,CAAC;IAChC,KAAY,SAAS,GAAG,MAAM,CAAC;IAC/B,KAAY,KAAK,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;IAEnC,UAAiB,MAAM;QACrB,OAAO,EAAE,MAAM,CAAC;QAChB,KAAK,EAAE,SAAS,EAAE,CAAC;QACnB,MAAM,EAAE,MAAM,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;QACjC,SAAS,EAAE,MAAM,CAAC;KACnB;IAED,UAAiB,WAAW;QAC1B,KAAK,EAAE,SAAS,EAAE,CAAC;QACnB,MAAM,EAAE,MAAM,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;KAClC;CACF;AAED,MAAM,CAAC,OAAO,WAAW,iBAAiB,CAAC;IACzC,UAAiB,QAAQ;QACvB,IAAI,EAAE,QAAQ,CAAC,MAAM,CAAC;KACvB;CACF;AAED,MAAM,CAAC,OAAO,WAAW,oBAAoB,CAAC;IAC5C,UAAiB,OAAO;QACtB,IAAI,EAAE,QAAQ,CAAC,WAAW,CAAC;KAC5B;IAED,UAAiB,QAAQ;QACvB,IAAI,EAAE,QAAQ,CAAC,MAAM,CAAC;KACvB;CACF"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@strapi/admin",
|
|
3
|
-
"version": "5.
|
|
3
|
+
"version": "5.25.0",
|
|
4
4
|
"description": "Strapi Admin",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -84,12 +84,12 @@
|
|
|
84
84
|
"@radix-ui/react-context": "1.0.1",
|
|
85
85
|
"@radix-ui/react-toolbar": "1.0.4",
|
|
86
86
|
"@reduxjs/toolkit": "1.9.7",
|
|
87
|
-
"@strapi/design-system": "2.0.0-rc.
|
|
88
|
-
"@strapi/icons": "2.0.0-rc.
|
|
89
|
-
"@strapi/permissions": "5.
|
|
90
|
-
"@strapi/types": "5.
|
|
91
|
-
"@strapi/typescript-utils": "5.
|
|
92
|
-
"@strapi/utils": "5.
|
|
87
|
+
"@strapi/design-system": "2.0.0-rc.30",
|
|
88
|
+
"@strapi/icons": "2.0.0-rc.30",
|
|
89
|
+
"@strapi/permissions": "5.25.0",
|
|
90
|
+
"@strapi/types": "5.25.0",
|
|
91
|
+
"@strapi/typescript-utils": "5.25.0",
|
|
92
|
+
"@strapi/utils": "5.25.0",
|
|
93
93
|
"@testing-library/dom": "10.1.0",
|
|
94
94
|
"@testing-library/react": "15.0.7",
|
|
95
95
|
"@testing-library/user-event": "14.5.2",
|
|
@@ -143,8 +143,8 @@
|
|
|
143
143
|
"zod": "3.25.67"
|
|
144
144
|
},
|
|
145
145
|
"devDependencies": {
|
|
146
|
-
"@strapi/admin-test-utils": "5.
|
|
147
|
-
"@strapi/data-transfer": "5.
|
|
146
|
+
"@strapi/admin-test-utils": "5.25.0",
|
|
147
|
+
"@strapi/data-transfer": "5.25.0",
|
|
148
148
|
"@types/codemirror5": "npm:@types/codemirror@^5.60.15",
|
|
149
149
|
"@types/fs-extra": "11.0.4",
|
|
150
150
|
"@types/invariant": "2.2.36",
|