@strapi/admin 4.9.0-exp.90df253ba90fd6879eb56a720a1f80d04ff745b8 → 4.9.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.
- package/.eslintignore +4 -0
- package/.eslintrc.js +14 -0
- package/admin/src/components/LocalesProvider/__mocks__/useLocalesProvider.js +7 -0
- package/admin/src/content-manager/components/DynamicZone/utils/select.js +1 -1
- package/admin/src/content-manager/components/EditViewDataManagerProvider/reducer.js +3 -1
- package/admin/src/content-manager/components/EditViewDataManagerProvider/utils/findAllAndReplace.js +10 -3
- package/admin/src/content-manager/components/FieldComponent/utils/select.js +2 -1
- package/admin/src/content-manager/components/InputUID/endActionStyle.js +4 -13
- package/admin/src/content-manager/components/InputUID/index.js +94 -71
- package/admin/src/content-manager/components/Inputs/utils/getInputType.js +1 -1
- package/admin/src/content-manager/components/Inputs/utils/select.js +1 -1
- package/admin/src/content-manager/hooks/useContentTypeLayout/index.js +1 -2
- package/admin/src/content-manager/hooks/useFetchContentTypeLayout/utils/formatLayouts.js +4 -1
- package/admin/src/content-manager/pages/App/index.js +2 -2
- package/admin/src/content-manager/pages/CollectionTypeRecursivePath/index.js +1 -2
- package/admin/src/content-manager/pages/EditSettingsView/init.js +3 -1
- package/admin/src/content-manager/pages/EditSettingsView/utils/createPossibleMainFieldsForModelsAndComponents.js +2 -4
- package/admin/src/content-manager/pages/EditView/DeleteLink/utils/select.js +1 -1
- package/admin/src/content-manager/pages/EditView/utils/createAttributesLayout.js +2 -1
- package/admin/src/content-manager/pages/EditView/utils/getFieldsActionMatchingPermissions.js +2 -1
- package/admin/src/content-manager/utils/checkIfAttributeIsDisplayable.js +1 -1
- package/admin/src/content-manager/utils/createDefaultForm.js +2 -2
- package/admin/src/content-manager/utils/formatLayoutToApi.js +2 -1
- package/admin/src/content-manager/utils/getFieldName.js +1 -1
- package/admin/src/content-manager/utils/mergeMetasWithSchema.js +1 -1
- package/admin/src/content-manager/utils/paths.js +1 -1
- package/admin/src/content-manager/utils/removePasswordFieldsFromData.js +1 -1
- package/admin/src/hooks/useConfigurations/__mocks__/index.js +7 -0
- package/admin/src/hooks/useRegenerate/index.js +12 -7
- package/admin/src/hooks/useSettingsForm/index.js +3 -3
- package/admin/src/hooks/useSettingsForm/reducer.js +3 -1
- package/admin/src/hooks/useSettingsMenu/reducer.js +1 -1
- package/admin/src/pages/AuthPage/components/Register/index.js +46 -38
- package/admin/src/pages/AuthPage/reducer.js +1 -1
- package/admin/src/pages/MarketplacePage/components/EmptyNpmPackageSearch/index.js +2 -2
- package/admin/src/pages/SettingsPage/components/Tokens/FormHead/index.js +4 -0
- package/admin/src/pages/SettingsPage/components/Tokens/Regenerate/index.js +5 -3
- package/admin/src/pages/SettingsPage/pages/ApiTokens/EditView/components/CollapsableContentType/index.js +1 -1
- package/admin/src/pages/SettingsPage/pages/ApiTokens/EditView/reducer.js +1 -1
- package/admin/src/pages/SettingsPage/pages/ApiTokens/EditView/utils/transformPermissionsData.js +6 -8
- package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/ConditionsModal/utils/createDefaultConditionsForm.js +1 -1
- package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/ContentTypeCollapse/Collapse/utils/generateCheckboxesActions.js +2 -1
- package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/ContentTypeCollapse/CollapsePropertyMatrix/ActionRow/utils/getRowLabelCheckboxeState.js +2 -1
- package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/GlobalActions/utils/getRowLabelCheckboxesState.js +1 -1
- package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/Permissions/reducer.js +6 -1
- package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/Permissions/utils/createDefaultCTFormFromLayout.js +5 -1
- package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/Permissions/utils/createDefaultPluginsFormFromLayout.js +1 -2
- package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/Permissions/utils/formatContentTypesPermissionToAPI.js +2 -2
- package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/Permissions/utils/updateConditionsToFalse.js +4 -1
- package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/Permissions/utils/updateValues.js +1 -1
- package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/PluginsAndSettings/SubCategory/utils/formatActions.js +1 -1
- package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/utils/createArrayOfValues.js +2 -1
- package/admin/src/pages/SettingsPage/pages/Roles/ListPage/index.js +1 -1
- package/admin/src/pages/SettingsPage/pages/TransferTokens/EditView/index.js +47 -5
- package/admin/src/pages/SettingsPage/pages/TransferTokens/ListView/index.js +27 -5
- package/admin/src/pages/SettingsPage/pages/Users/ProtectedEditPage/index.js +2 -2
- package/admin/src/pages/SettingsPage/pages/Webhooks/EditView/utils/formatData.js +1 -7
- package/admin/src/permissions/index.js +1 -1
- package/admin/src/translations/en.json +1 -0
- package/admin/src/utils/getAttributesToDisplay.js +2 -4
- package/admin/src/utils/getExistingActions.js +1 -3
- package/admin/src/utils/sortLinks.js +1 -1
- package/build/1387.84b454d3.chunk.js +1 -0
- package/build/1657.45231968.chunk.js +168 -0
- package/build/3081.bcf9a12f.chunk.js +108 -0
- package/build/462.8fff7f3b.chunk.js +71 -0
- package/build/4628.20631dd1.chunk.js +1 -0
- package/build/5542.b8240e3f.chunk.js +70 -0
- package/build/5563.905daa13.chunk.js +79 -0
- package/build/6404.68405699.chunk.js +100 -0
- package/build/7259.b7d00cea.chunk.js +1 -0
- package/build/8694.6522968d.chunk.js +247 -0
- package/build/9347.058ddb22.chunk.js +1 -0
- package/build/Admin-authenticatedApp.a168aa38.chunk.js +79 -0
- package/build/Admin_InternalErrorPage.15c6bf07.chunk.js +1 -0
- package/build/Admin_homePage.da2181fe.chunk.js +73 -0
- package/build/Admin_marketplace.99e25059.chunk.js +31 -0
- package/build/Admin_pluginsPage.f6b52ee9.chunk.js +6 -0
- package/build/Admin_profilePage.9112cffc.chunk.js +15 -0
- package/build/Admin_settingsPage.cb63220f.chunk.js +79 -0
- package/build/Upload_ConfigureTheView.eaaec495.chunk.js +1 -0
- package/build/admin-app.8cde5b22.chunk.js +110 -0
- package/build/admin-edit-roles-page.4f1858e9.chunk.js +280 -0
- package/build/admin-edit-users.7e14d85f.chunk.js +10 -0
- package/build/admin-roles-list.97e198f9.chunk.js +31 -0
- package/build/admin-users.d02de059.chunk.js +34 -0
- package/build/api-tokens-create-page.97595e12.chunk.js +1 -0
- package/build/api-tokens-edit-page.cd36e30e.chunk.js +1 -0
- package/build/api-tokens-list-page.6757c7b9.chunk.js +16 -0
- package/build/audit-logs-settings-page.ca9a3c46.chunk.js +76 -0
- package/build/content-manager.ba088a66.chunk.js +1132 -0
- package/build/content-type-builder-list-view.9c2c020c.chunk.js +214 -0
- package/build/content-type-builder.fef159db.chunk.js +126 -0
- package/build/email-settings-page.1095e1ab.chunk.js +10 -0
- package/build/{en-json.01a88a30.chunk.js → en-json.b052667a.chunk.js} +1 -1
- package/build/{highlight.js.26ef649f.chunk.js → highlight.js.28a1547e.chunk.js} +2 -2
- package/build/i18n-settings-page.7d80aae0.chunk.js +60 -0
- package/build/index.html +1 -1
- package/build/main.0df5f5ca.js +2280 -0
- package/build/{runtime~main.a40b1b57.js → runtime~main.03cdff31.js} +2 -2
- package/build/sso-settings-page.1dd4886e.chunk.js +1 -0
- package/build/transfer-tokens-create-page.ec2ca215.chunk.js +1 -0
- package/build/transfer-tokens-edit-page.22bf28e5.chunk.js +1 -0
- package/build/transfer-tokens-list-page.cf8c77f2.chunk.js +16 -0
- package/build/upload-settings.945fdcfa.chunk.js +13 -0
- package/build/upload-translation-fr-json.baab9911.chunk.js +1 -0
- package/build/{upload-translation-th-json.3847dae0.chunk.js → upload-translation-th-json.98d35574.chunk.js} +1 -1
- package/build/upload.a86b1054.chunk.js +33 -0
- package/build/users-advanced-settings-page.5b5a9baa.chunk.js +8 -0
- package/build/users-email-settings-page.e5506eb4.chunk.js +23 -0
- package/build/users-providers-settings-page.e32089c2.chunk.js +28 -0
- package/build/users-roles-settings-page.9359e4d1.chunk.js +30 -0
- package/build/webhook-edit-page.213f0075.chunk.js +75 -0
- package/build/webhook-list-page.5beb2a5c.chunk.js +71 -0
- package/ee/server/bootstrap.js +3 -0
- package/ee/server/register.js +3 -2
- package/ee/server/services/audit-logs.js +75 -16
- package/ee/server/utils/persisted-tables.js +49 -0
- package/jest.config.front.js +1 -6
- package/package.json +27 -25
- package/server/middlewares/data-transfer.js +4 -1
- package/server/services/permission/permissions-manager/sanitize.js +2 -0
- package/webpack.config.js +1 -1
- package/build/2637.679b590b.chunk.js +0 -1
- package/build/4049.64715f20.chunk.js +0 -1
- package/build/5563.451e91ee.chunk.js +0 -30
- package/build/7112.2bf13da3.chunk.js +0 -14
- package/build/7259.7744297b.chunk.js +0 -1
- package/build/8469.853c822b.chunk.js +0 -1
- package/build/8580.b0dcf37c.chunk.js +0 -98
- package/build/9816.01ee964f.chunk.js +0 -2
- package/build/Admin-authenticatedApp.5aa08bf5.chunk.js +0 -79
- package/build/Admin_InternalErrorPage.4ad8b0df.chunk.js +0 -1
- package/build/Admin_homePage.1411fb7c.chunk.js +0 -68
- package/build/Admin_marketplace.0f6c8ee2.chunk.js +0 -22
- package/build/Admin_pluginsPage.15e3b0fd.chunk.js +0 -1
- package/build/Admin_profilePage.d2a8f9ab.chunk.js +0 -15
- package/build/Admin_settingsPage.489ec4eb.chunk.js +0 -9
- package/build/Upload_ConfigureTheView.34dde278.chunk.js +0 -1
- package/build/admin-app.4b313104.chunk.js +0 -112
- package/build/admin-edit-roles-page.3b196317.chunk.js +0 -216
- package/build/admin-edit-users.af3b0f15.chunk.js +0 -10
- package/build/admin-roles-list.0ad504a7.chunk.js +0 -2
- package/build/admin-users.af8c3123.chunk.js +0 -11
- package/build/api-tokens-create-page.2a6e22bd.chunk.js +0 -1
- package/build/api-tokens-edit-page.fa38cd63.chunk.js +0 -1
- package/build/api-tokens-list-page.93f24348.chunk.js +0 -16
- package/build/audit-logs-settings-page.7be97e82.chunk.js +0 -1
- package/build/content-manager.f530e141.chunk.js +0 -1139
- package/build/content-type-builder-list-view.cf38fe2f.chunk.js +0 -191
- package/build/content-type-builder.6ecd201d.chunk.js +0 -126
- package/build/email-settings-page.4bdbef9a.chunk.js +0 -3
- package/build/i18n-settings-page.2bb5be96.chunk.js +0 -1
- package/build/main.43b93ff3.js +0 -3843
- package/build/sso-settings-page.5a8588ef.chunk.js +0 -1
- package/build/transfer-tokens-create-page.a1f14bb1.chunk.js +0 -1
- package/build/transfer-tokens-edit-page.00ee1c74.chunk.js +0 -1
- package/build/transfer-tokens-list-page.ce37354b.chunk.js +0 -16
- package/build/upload-settings.0200561d.chunk.js +0 -1
- package/build/upload-translation-fr-json.84429734.chunk.js +0 -1
- package/build/upload.c7da1611.chunk.js +0 -13
- package/build/users-advanced-settings-page.c0cae03a.chunk.js +0 -1
- package/build/users-email-settings-page.a3c80419.chunk.js +0 -1
- package/build/users-providers-settings-page.5f86e45c.chunk.js +0 -1
- package/build/users-roles-settings-page.b02986df.chunk.js +0 -30
- package/build/webhook-edit-page.a2a2b7bb.chunk.js +0 -23
- package/build/webhook-list-page.029957a4.chunk.js +0 -1
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
"use strict";(self.webpackChunk_strapi_admin=self.webpackChunk_strapi_admin||[]).push([[5162],{47272:function(te,O,t){t.d(O,{Z:function(){return Ie}});var e=t(32735),l=t(43383),T=t(27649),o=t(20108),k=t(53038),Z=t(67927),Y=t(60216),s=t.n(Y),g=t(2438),p=t(66456),N=t(29439),Se=t(82055),y=t(87933),fe=t(41415),Oe=t(17e3),ne=t(72850),se=t(15335),V=t(5803),le=t(10369),$=t(92802),j=t(67879),he=t(28847),w=t(49372),ie=t(8471),Ee=t(8284),ke=t(44426),Q=t(23940),de=t.n(Q);const d=({disabledEvents:n,name:r,events:a,inputValue:i,handleChange:m,handleChangeAll:x})=>{const u=a.filter(b=>!n.includes(b)),f=i.length===u.length,M=i.length>0,v=({target:{name:b}})=>{x({target:{name:b,value:!f}})};return e.createElement("tr",null,e.createElement("td",null,e.createElement(Ee.X,{indeterminate:M&&!f,"aria-label":"Select all entries",name:r,onChange:v,value:f},de()(r))),a.map(b=>e.createElement("td",{key:b},e.createElement(ke.C,{disabled:n.includes(b),"aria-label":b,name:b,value:i.includes(b),onValueChange:I=>m({target:{name:b,value:I}})}))))};d.defaultProps={disabledEvents:[],events:[],inputValue:[],handleChange(){},handleChangeAll(){}},d.propTypes={disabledEvents:s().array,events:s().array,inputValue:s().array,handleChange:s().func,handleChangeAll:s().func,name:s().string.isRequired};var D=d,X=n=>n.reduce((r,a)=>{const i=a.split(".")[0];return r[i]||(r[i]=[]),r[i].push(a),r},{});const R=ie.ZP.table`
|
|
2
|
+
td {
|
|
3
|
+
height: ${52/16}rem;
|
|
4
|
+
width: 10%;
|
|
5
|
+
vertical-align: middle;
|
|
6
|
+
text-align: center;
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
tbody tr:nth-child(odd) {
|
|
10
|
+
background: ${({theme:n})=>n.colors.neutral100};
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
tbody tr td:first-child {
|
|
14
|
+
padding-left: ${({theme:n})=>n.spaces[7]};
|
|
15
|
+
}
|
|
16
|
+
`,H={headers:{default:[{id:"Settings.webhooks.events.create",defaultMessage:"Create"},{id:"Settings.webhooks.events.update",defaultMessage:"Update"},{id:"app.utils.delete",defaultMessage:"Delete"}],draftAndPublish:[{id:"Settings.webhooks.events.create",defaultMessage:"Create"},{id:"Settings.webhooks.events.update",defaultMessage:"Update"},{id:"app.utils.delete",defaultMessage:"Delete"},{id:"app.utils.publish",defaultMessage:"Publish"},{id:"app.utils.unpublish",defaultMessage:"Unpublish"}]},events:{default:{entry:["entry.create","entry.update","entry.delete"],media:["media.create","media.update","media.delete"]},draftAndPublish:{entry:["entry.create","entry.update","entry.delete","entry.publish","entry.unpublish"],media:["media.create","media.update","media.delete"]}}},ve=({isDraftAndPublish:n})=>{const r=n?H.headers.draftAndPublish:H.headers.default,a=n?H.events.draftAndPublish:H.events.default,{formatMessage:i}=(0,j.Z)(),{values:m,handleChange:x}=(0,$.u6)(),u="events",f=m.events,M=[],v=X(f),b=({target:{name:h,value:A}})=>{let K=new Set(f);A?K.add(h):K.delete(h),x({target:{name:u,value:Array.from(K)}})},I=({target:{name:h,value:A}})=>{let K=new Set(f);A?a[h].forEach(G=>{M.includes(G)||K.add(G)}):a[h].forEach(G=>K.delete(G)),x({target:{name:u,value:Array.from(K)}})};return e.createElement(y.k,{direction:"column",alignItems:"stretch",gap:1},e.createElement(he.Q,null,i({id:"Settings.webhooks.form.events",defaultMessage:"Events"})),e.createElement(R,null,e.createElement("thead",null,e.createElement("tr",null,e.createElement("td",null),r.map(h=>h==="app.utils.publish"||h==="app.utils.unpublish"?e.createElement("td",{key:h.id,title:i({id:"Settings.webhooks.event.publish-tooltip",defaultMessage:"This event only exists for content with draft & publish enabled"})},e.createElement(w.Z,{variant:"sigma",textColor:"neutral600"},i(h))):e.createElement("td",{key:h.id},e.createElement(w.Z,{variant:"sigma",textColor:"neutral600"},i(h)))))),e.createElement("tbody",null,Object.keys(a).map(h=>e.createElement(D,{disabledEvents:M,key:h,name:h,events:a[h],inputValue:v[h],handleChange:b,handleChangeAll:I})))))};ve.propTypes={isDraftAndPublish:s().bool.isRequired};var ce=ve,Le=t(19406),J=t(7563),Te=t(42623),ue=t(90333),be=["A-IM","Accept","Accept-Charset","Accept-Encoding","Accept-Language","Accept-Datetime","Access-Control-Request-Method","Access-Control-Request-Headers","Authorization","Cache-Control","Connection","Content-Length","Content-Type","Cookie","Date","Expect","Forwarded","From","Host","If-Match","If-Modified-Since","If-None-Match","If-Range","If-Unmodified-Since","Max-Forwards","Origin","Pragma","Proxy-Authorization","Range","Referer","TE","User-Agent","Upgrade","Via","Warning"];const ae=({name:n,onChange:r,value:a,...i})=>{const[m,x]=(0,e.useState)(a?[...be,a]:be),u=M=>{r({target:{name:n,value:M}})},f=M=>{x(v=>[...v,M]),r({target:{name:n,value:M}})};return e.createElement(Te.X,{...i,onChange:u,onCreateOption:f,placeholder:"",value:a},m.map(M=>e.createElement(ue.O,{value:M,key:M},M)))};ae.defaultProps={value:void 0},ae.propTypes={name:s().string.isRequired,onChange:s().func.isRequired,value:s().string};var Ce=ae,ye=()=>{const{formatMessage:n}=(0,j.Z)(),{values:r,errors:a}=(0,$.u6)();return e.createElement(y.k,{direction:"column",alignItems:"stretch",gap:1},e.createElement(he.Q,null,n({id:"Settings.webhooks.form.headers",defaultMessage:"Headers"})),e.createElement(ne.x,{padding:8,background:"neutral100",hasRadius:!0},e.createElement($.F2,{validateOnChange:!1,name:"headers",render:({push:i,remove:m})=>e.createElement(se.r,{gap:4},r.headers?.map((x,u)=>e.createElement(e.Fragment,{key:u},e.createElement(V.P,{col:6},e.createElement($.gN,{as:Ce,name:`headers.${u}.key`,"aria-label":`row ${u+1} key`,label:n({id:"Settings.webhooks.key",defaultMessage:"Key"}),error:a.headers?.[u]?.key&&n({id:a.headers[u]?.key,defaultMessage:a.headers[u]?.key})})),e.createElement(V.P,{col:6},e.createElement(y.k,{alignItems:"flex-end"},e.createElement(ne.x,{style:{flex:1}},e.createElement($.gN,{as:le.o,"aria-label":`row ${u+1} value`,label:n({id:"Settings.webhooks.value",defaultMessage:"Value"}),name:`headers.${u}.value`,error:a.headers?.[u]?.value&&n({id:a.headers[u]?.value,defaultMessage:a.headers[u]?.value})})),e.createElement(y.k,{paddingLeft:2,style:{alignSelf:"center"},paddingTop:a.headers?.[u]?.value?0:5},e.createElement(l.fG,{onClick:()=>r.headers.length!==1&&m(u),label:n({id:"Settings.webhooks.headers.remove",defaultMessage:"Remove header row {number}"},{number:u+1})})))))),e.createElement(V.P,{col:12},e.createElement(J.A,{type:"button",onClick:()=>{i({key:"",value:""})},startIcon:e.createElement(Le.Z,null)},n({id:"Settings.webhooks.create.header",defaultMessage:"Create new header"}))))})))},Re=t(27169),Me=t(35331);const q=ie.ZP.svg(({theme:n,color:r})=>`
|
|
17
|
+
width: ${12/16}rem;
|
|
18
|
+
height: ${12/16}rem;
|
|
19
|
+
|
|
20
|
+
path {
|
|
21
|
+
fill: ${n.colors[r]};
|
|
22
|
+
}
|
|
23
|
+
`),W=({isPending:n,statusCode:r})=>{const{formatMessage:a}=(0,j.Z)();return n?e.createElement(y.k,{gap:2,alignItems:"center"},e.createElement(q,{as:Re.Z}),e.createElement(w.Z,null,a({id:"Settings.webhooks.trigger.pending",defaultMessage:"pending"}))):r>=200&&r<300?e.createElement(y.k,{gap:2,alignItems:"center"},e.createElement(q,{as:p.Z,color:"success700"}),e.createElement(w.Z,null,a({id:"Settings.webhooks.trigger.success",defaultMessage:"success"}))):r>=300?e.createElement(y.k,{gap:2,alignItems:"center"},e.createElement(q,{as:Me.Z,color:"danger700"}),e.createElement(w.Z,null,a({id:"Settings.error",defaultMessage:"error"})," ",r)):null};W.propTypes={isPending:s().bool.isRequired,statusCode:s().number},W.defaultProps={statusCode:void 0};const ge=({statusCode:n,message:r})=>{const{formatMessage:a}=(0,j.Z)();return n>=200&&n<300?e.createElement(y.k,{justifyContent:"flex-end"},e.createElement(w.Z,{textColor:"neutral600",ellipsis:!0},a({id:"Settings.webhooks.trigger.success.label",defaultMessage:"Trigger succeeded"}))):n>=300?e.createElement(y.k,{justifyContent:"flex-end"},e.createElement(y.k,{maxWidth:(0,l.Q1)(250),justifyContent:"flex-end",title:r},e.createElement(w.Z,{ellipsis:!0,textColor:"neutral600"},r))):null};ge.propTypes={statusCode:s().number,message:s().string},ge.defaultProps={statusCode:void 0,message:void 0};const Pe=({onCancel:n})=>{const{formatMessage:r}=(0,j.Z)();return e.createElement(y.k,{justifyContent:"flex-end"},e.createElement("button",{onClick:n,type:"button"},e.createElement(y.k,{gap:2,alignItems:"center"},e.createElement(w.Z,{textColor:"neutral400"},r({id:"Settings.webhooks.trigger.cancel",defaultMessage:"cancel"})),e.createElement(q,{as:Me.Z,color:"neutral400"}))))};Pe.propTypes={onCancel:s().func.isRequired};const P=({isPending:n,onCancel:r,response:a})=>{const{statusCode:i,message:m}=a,{formatMessage:x}=(0,j.Z)();return e.createElement(ne.x,{background:"neutral0",padding:5,shadow:"filterShadow",hasRadius:!0},e.createElement(se.r,{gap:4,style:{alignItems:"center"}},e.createElement(V.P,{col:3},e.createElement(w.Z,null,x({id:"Settings.webhooks.trigger.test",defaultMessage:"Test-trigger"}))),e.createElement(V.P,{col:3},e.createElement(W,{isPending:n,statusCode:i})),e.createElement(V.P,{col:6},n?e.createElement(Pe,{onCancel:r}):e.createElement(ge,{statusCode:i,message:m}))))};P.defaultProps={isPending:!1,onCancel(){},response:{}},P.propTypes={isPending:s().bool,onCancel:s().func,response:s().object};var xe=P,F=t(24346);const Ae=/(^$)|(^[A-Za-z][_0-9A-Za-z ]*$)/,U=/(^$)|((https?:\/\/.*)(d*)\/?(.*))/;var z=F.Ry().shape({name:F.Z_(l.I0.string).required(l.I0.required).matches(Ae,l.I0.regex),url:F.Z_(l.I0.string).required(l.I0.required).matches(U,l.I0.regex),headers:F.Vo(n=>{let r=F.IX();if(n.length===1){const{key:a,value:i}=n[0];if(!a&&!i)return r}return r.of(F.Ry().shape({key:F.Z_().required(l.I0.required),value:F.Z_().required(l.I0.required)}))}),events:F.IX()});const me=({handleSubmit:n,data:r,triggerWebhook:a,isCreating:i,isTriggering:m,triggerResponse:x,isDraftAndPublishEvents:u})=>{const{formatMessage:f}=(0,j.Z)(),[M,v]=(0,e.useState)(!1);return e.createElement($.J9,{onSubmit:n,initialValues:{name:r?.name||"",url:r?.url||"",headers:Object.keys(r?.headers||[]).length?Object.entries(r.headers).map(([b,I])=>({key:b,value:I})):[{key:"",value:""}],events:r?.events||[]},validationSchema:z,validateOnChange:!1,validateOnBlur:!1},({handleSubmit:b,errors:I})=>e.createElement(l.l0,{noValidate:!0},e.createElement(Se.T,{primaryAction:e.createElement(y.k,{gap:2},e.createElement(fe.z,{onClick:()=>{a(),v(!0)},variant:"tertiary",startIcon:e.createElement(g.Z,null),disabled:i||m,size:"L"},f({id:"Settings.webhooks.trigger",defaultMessage:"Trigger"})),e.createElement(fe.z,{startIcon:e.createElement(p.Z,null),onClick:b,type:"submit",size:"L"},f({id:"global.save",defaultMessage:"Save"}))),title:i?f({id:"Settings.webhooks.create",defaultMessage:"Create a webhook"}):r?.name,navigationAction:e.createElement(l.rU,{startIcon:e.createElement(N.Z,null),to:"/settings/webhooks"},f({id:"global.back",defaultMessage:"Back"}))}),e.createElement(Oe.D,null,e.createElement(y.k,{direction:"column",alignItems:"stretch",gap:4},M&&e.createElement("div",{className:"trigger-wrapper"},e.createElement(xe,{isPending:m,response:x,onCancel:()=>v(!1)})),e.createElement(ne.x,{background:"neutral0",padding:8,shadow:"filterShadow",hasRadius:!0},e.createElement(y.k,{direction:"column",alignItems:"stretch",gap:6},e.createElement(se.r,{gap:6},e.createElement(V.P,{col:6},e.createElement($.gN,{as:le.o,name:"name",error:I.name&&f({id:I.name}),label:f({id:"global.name",defaultMessage:"Name"}),required:!0})),e.createElement(V.P,{col:12},e.createElement($.gN,{as:le.o,name:"url",error:I.url&&f({id:I.url}),label:f({id:"Settings.roles.form.input.url",defaultMessage:"Url"}),required:!0}))),e.createElement(ye,null),e.createElement(ce,{isDraftAndPublish:u})))))))};me.propTypes={data:s().object,handleSubmit:s().func.isRequired,triggerWebhook:s().func.isRequired,isCreating:s().bool.isRequired,isDraftAndPublishEvents:s().bool.isRequired,isTriggering:s().bool.isRequired,triggerResponse:s().object},me.defaultProps={data:void 0,triggerResponse:void 0};var L=me;const re=n=>({...n,headers:_(n.headers)}),_=n=>n.reduce((r,a)=>{const{key:i,value:m}=a;return i!==""?{...r,[i]:m}:r},{});var ee=re,Ie=()=>{const{params:{id:n}}=(0,k.$B)("/settings/webhooks/:id"),{replace:r}=(0,k.k6)(),{lockApp:a,unlockApp:i}=(0,l.o1)(),m=(0,l.lm)(),x=(0,o.useQueryClient)(),{isLoading:u,collectionTypes:f}=(0,Z.bP)(),{post:M}=(0,l.kY)(),v=n==="create",b=(0,e.useCallback)(async C=>{const[S,{data:we}]=await(0,l.to)((0,l.WY)(`/admin/webhooks/${C}`,{method:"GET"}));return S?(m({type:"warning",message:{id:"notification.error"}}),null):we},[m]),{isLoading:I,data:h}=(0,o.useQuery)(["get-webhook",n],()=>b(n),{enabled:!v}),{isLoading:A,data:K,isIdle:G,mutate:Ze}=(0,o.useMutation)(()=>M(`/admin/webhooks/${n}/trigger`)),$e=()=>Ze(null,{onError(){m({type:"warning",message:{id:"notification.error"}})}}),Be=(0,o.useMutation)(C=>(0,l.WY)("/admin/webhooks",{method:"POST",body:C})),pe=(0,o.useMutation)(({id:C,body:S})=>(0,l.WY)(`/admin/webhooks/${C}`,{method:"PUT",body:S})),c=async C=>{v?(a(),Be.mutate(ee(C),{onSuccess(S){m({type:"success",message:{id:"Settings.webhooks.created"}}),r(`/settings/webhooks/${S.data.id}`),i()},onError(S){m({type:"warning",message:{id:"notification.error"}}),console.log(S),i()}})):(a(),pe.mutate({id:n,body:ee(C)},{onSuccess(){x.invalidateQueries(["get-webhook",n]),m({type:"success",message:{id:"notification.form.success.fields"}}),i()},onError(S){m({type:"warning",message:{id:"notification.error"}}),console.log(S),i()}}))},E=(0,e.useMemo)(()=>f.some(C=>C.options.draftAndPublish===!0),[f]);return I||u?e.createElement(l.dO,null):e.createElement(T.o,null,e.createElement(l.SL,{name:"Webhooks"}),e.createElement(L,{handleSubmit:c,data:h,triggerWebhook:$e,isCreating:v,isTriggering:A,isTriggerIdle:G,triggerResponse:K?.data.data,isDraftAndPublishEvents:E}))}},33238:function(te,O,t){t.r(O);var e=t(32735),l=t(43383),T=t(83983),o=t(47272);const k=()=>e.createElement(l.O4,{permissions:T.Z.settings.webhooks.create},e.createElement(o.Z,null));O.default=k},59021:function(te,O,t){t.r(O);var e=t(32735),l=t(43383),T=t(83983),o=t(47272);const k=()=>e.createElement(l.O4,{permissions:T.Z.settings.webhooks.update},e.createElement(o.Z,null));O.default=k},42623:function(te,O,t){t.d(O,{h:function(){return Q},X:function(){return de}});var e=t(32735),l=t(35331),T=t(16899),o=t(60216),k=t(90333),Z=t(91225),Y=t(17289),s=t(94486);const g={Close:"Close",CloseSelect:"CloseSelect",First:"First",Last:"Last",Next:"Next",Open:"Open",PageDown:"PageDown",PageUp:"PageUp",Previous:"Previous",Select:"Select",Space:"Space",Type:"Type"},p={Close:"Close",First:"First",Last:"Last",Next:"Next",Open:"Open",Previous:"Previous",Select:"Select",UpLevel:"UpLevel"};function N(d=[],D=null,B=[]){const X=String(D??"").toLowerCase();return X?d.filter(R=>R.props.children.toString().toLowerCase().includes(X)&&B.indexOf(R)<0):d}function Se(d,D){if(!D&&d===s.y.DOWN)return g.Open;if(d===s.y.DOWN)return g.Next;if(d===s.y.UP)return g.Previous;if(d===s.y.HOME)return g.First;if(d===s.y.END)return g.Last;if(d===s.y.ESCAPE)return g.Close;if(d===s.y.ENTER)return g.CloseSelect;if(d===s.y.BACKSPACE||d===s.y.CLEAR||d.length===1)return g.Type}function y(d,D,B){switch(B){case g.First:return 0;case g.Last:return D;case g.Previous:return Math.max(0,d-1);case g.Next:return Math.min(D,d+1);default:return d}}function fe(d){(0,Y.Z)(d,{scrollMode:"if-needed",block:"nearest",inline:"nearest"}).forEach(({el:D,top:B,left:X})=>{D.scrollTop=B,D.scrollLeft=X})}var Oe=t(72850),ne=t(87107),se=t(28847),V=t(67014),le=t(47851),$=t(87933),j=t(74971),he=t(97405),w=t(4101),ie=t(93958),Ee=t(49372),ke=t(3685);const Q=({children:d,clearLabel:D,creatable:B,createMessage:X,disabled:R,error:H,hasMoreItems:ve,hint:ce,id:Le,label:J,labelAction:Te,loading:ue,loadingMessage:We,noOptionsMessage:be,onChange:ae,onClear:Ce,onCreateOption:Ue,onInputChange:ye,onLoadMore:Re,placeholder:Me,required:q,value:W,...ge})=>{const Pe=()=>d.find(c=>c.props?.value.toLowerCase()===W.toLowerCase()).props?.children,[P,xe]=(0,e.useState)(0),[F,Ae]=(0,e.useState)(null),[U,De]=(0,e.useState)(d),[z,me]=(0,e.useState)(!1),[L,re]=(0,e.useState)(""),_=(0,e.useRef)(),ee=(0,e.useRef)(!1),oe=(0,e.useRef)(),Ie=(0,e.useRef)(),n=(0,e.useRef)(),r=(0,e.useRef)(!0),a=(0,j.M)(Le),i=`${a}-label`;if(!J&&!ge["aria-label"])throw new Error('The Combobox component needs a "label" or an "aria-label" props');(0,e.useEffect)(()=>{De(N(d,L))},[L,d]),(0,e.useEffect)(()=>{z&&_.current&&fe(_.current)},[P,z]),(0,e.useLayoutEffect)(()=>{r.current&&(r.current=!1)},[W]);const m=z?`${a}-${P}`:"",x=()=>{ae(null),re("")},u=c=>{ye&&ye(c);const E=oe.current.value;De(N(d,E)),xe(0),Ae(null),L!==E&&re(E),z||A(!0,!1)},f=c=>{const{key:E}=c,C=B&&L?U.length:U.length-1,S=Se(E,z);switch(W&&!L&&E===s.y.BACKSPACE&&x(),S){case g.Next:{if(P===C){v(0);break}v(y(P,C,S));break}case g.Previous:{if(P===0){v(C);break}v(y(P,C,S));break}case g.Last:case g.First:{if(P===C){v(0);break}v(y(P,C,S));break}case g.CloseSelect:c.preventDefault(),h(P);break;case g.Close:c.preventDefault(),A(!1);break;case g.Open:A(!0);break}},M=c=>{if(c.preventDefault(),W&&!ee.current&&re(""),ee.current){ee.current=!1;return}A(!1,!1)},v=c=>{xe(c)},b=c=>{v(c),h(c)},I=()=>{ee.current=!0},h=c=>{const E=U[c];if(re(""),E){ae(E.props.value),A(!1);return}B&&(Ue(L),A(!1))},A=(c,E=!0)=>{me(c),E&&oe.current.focus()},K=e.Children.toArray(U).map((c,E)=>{const C=P===E;return(0,e.cloneElement)(c,{id:`${a}-${E}`,"aria-selected":F===E,"aria-posinset":E+1,"aria-setsize":e.Children.toArray(U).length,ref(S){C&&(_.current=S)},onClick:()=>b(E),onMouseDown:I,isSelected:C})}),G=()=>{oe.current.focus(),Ce&&Ce(),x()},Ze=()=>{oe.current.focus(),A(!0)},$e=()=>{const c=U.findIndex(E=>E.props?.children===L);return L&&c===-1},Be=c=>{c.preventDefault(),A(c,!0)};let pe;return H?pe=`${a}-error`:ce&&(pe=`${a}-hint`),e.createElement(ne.g,{hint:ce,error:H,id:a,required:q},e.createElement(ke.T,{"aria-live":"polite","aria-atomic":"false","aria-relevant":"additions text"},W),e.createElement($.k,{direction:"column",alignItems:"stretch",gap:J||ce||H?1:0},J&&e.createElement(se.Q,{action:Te},J),e.createElement(Z.d8,{ref:Ie,$disabled:R,hasError:H},e.createElement(Z.fv,{wrap:"wrap"},!L&&W&&e.createElement(Z.K7,{id:`${a}-selected-value`},e.createElement(Ee.Z,null,Pe())),e.createElement(Z.II,{"aria-activedescendant":m,"aria-autocomplete":"list","aria-controls":`${a}-listbox`,"aria-disabled":R,"aria-expanded":z,"aria-haspopup":"listbox","aria-describedby":pe,autoComplete:"off",autoCorrect:"off",id:a,onBlur:R?void 0:M,onClick:R?void 0:Be,onInput:R?void 0:u,onKeyDown:R?void 0:f,placeholder:W?"":Me,readOnly:R,ref:oe,required:q,role:"combobox",spellCheck:"off",type:"text",value:L})),e.createElement($.k,null,(W||L)&&e.createElement(ie.zb,{id:`${a}-clear`,"aria-label":D,disabled:R,paddingLeft:3,as:"button",onClick:G,type:"button"},e.createElement(l.Z,null)),e.createElement(ie.AV,{disabled:R,paddingLeft:3,"aria-hidden":!0,as:"button",onClick:Ze,tabIndex:-1,type:"button"},e.createElement(T.Z,null)))),e.createElement(V.J,null),e.createElement(le.c,null)),z&&e.createElement(w.J2,{id:`${a}-popover`,source:Ie,spacing:4,fullWidth:!0,intersectionId:`${a}-listbox-popover-intersection`,onReachEnd:ve&&!ue?Re:void 0},e.createElement("div",{role:"listbox",ref:n,id:`${a}-listbox`,"aria-labelledby":J?i:void 0},(Boolean(U.length)||B)&&e.createElement(e.Fragment,null,K,$e()&&B&&e.createElement(k.O,{isSelected:P===U.length,ref:c=>{P===U.length&&(_.current=c)},onMouseDown:I,onClick:()=>h(),taindex:0},X(L))),!U.length&&!B&&!ue&&e.createElement(Oe.x,{paddingLeft:4,paddingRight:4,paddingTop:2,paddingBottom:2,ref:_},e.createElement(Ee.Z,{textColor:"neutral800"},be(L))),ue&&e.createElement($.k,{justifyContent:"center",alignItems:"center",paddingTop:2,paddingBottom:2},e.createElement(he.a,{small:!0},We)))))},de=d=>e.createElement(Q,{...d,creatable:!0});Q.defaultProps={"aria-label":void 0,clearLabel:"clear",creatable:!1,createMessage:d=>`Create "${d}"`,disabled:!1,error:void 0,hasMoreItems:!1,hint:void 0,id:void 0,label:void 0,loading:!1,loadingMessage:"Loading content...",noOptionsMessage:()=>"No results found",onClear:void 0,onCreateOption:void 0,onInputChange:void 0,onLoadMore:void 0,placeholder:"Select or enter a value",value:void 0},de.defaultProps=Q.defaultProps,Q.propTypes={"aria-label":o.string,children:o.oneOfType([o.arrayOf(o.node),o.node]),clearLabel:o.string,creatable:o.bool,createMessage:o.func,disabled:o.bool,error:o.string,hasMoreItems:o.bool,id:o.string,hint:o.oneOfType([o.string,o.node,o.arrayOf(o.node)]),label:o.string,labelAction:o.element,loading:o.bool,loadingMessage:o.string,noOptionsMessage:o.func,onChange:o.func.isRequired,onClear:o.func,onCreateOption:o.func,onInputChange:o.func,onLoadMore:o.func,placeholder:o.string,value:o.string},de.propTypes={...Q.propTypes,onCreateOption:o.func.isRequired}},90333:function(te,O,t){t.d(O,{O:function(){return k}});var e=t(32735),l=t(60216),T=t(91225),o=t(49372);const k=(0,e.forwardRef)(({isSelected:Z,children:Y,...s},g)=>e.createElement(T.Zq,{hasRadius:!0,paddingLeft:4,paddingRight:4,paddingTop:2,paddingBottom:2,role:"option",background:"neutral0",isSelected:Z,ref:g,...s},e.createElement(o.Z,{textColor:Z?"primary600":"neutral800",fontWeight:Z?"bold":null},Y)));k.defaultProps={isSelected:!1},k.propTypes={children:l.oneOfType([l.string,l.number]).isRequired,isSelected:l.bool},k.displayName="ComboboxOption"},91225:function(te,O,t){t.d(O,{II:function(){return s},K7:function(){return Z},Zq:function(){return g},d8:function(){return k},fv:function(){return Y}});var e=t(8471),l=t(72850),T=t(87933),o=t(30350);const k=(0,e.ZP)(T.k)`
|
|
24
|
+
position: relative;
|
|
25
|
+
border: 1px solid ${({theme:p,hasError:N})=>N?p.colors.danger600:p.colors.neutral200};
|
|
26
|
+
padding-right: ${({theme:p})=>p.spaces[3]};
|
|
27
|
+
padding-left: ${({theme:p})=>p.spaces[3]};
|
|
28
|
+
border-radius: ${({theme:p})=>p.borderRadius};
|
|
29
|
+
background: ${({theme:p})=>p.colors.neutral0};
|
|
30
|
+
|
|
31
|
+
${({theme:p,$disabled:N})=>N?`
|
|
32
|
+
color: ${p.colors.neutral600};
|
|
33
|
+
background: ${p.colors.neutral150};
|
|
34
|
+
`:void 0}
|
|
35
|
+
|
|
36
|
+
${(0,o.k3)()}
|
|
37
|
+
`,Z=e.ZP.div`
|
|
38
|
+
padding: 1px 2px;
|
|
39
|
+
grid-area: 1 / 1 / 2 / 3;
|
|
40
|
+
`,Y=(0,e.ZP)(T.k)`
|
|
41
|
+
display: grid;
|
|
42
|
+
flex: 1 1 0%;
|
|
43
|
+
position: relative;
|
|
44
|
+
`,s=e.ZP.input`
|
|
45
|
+
display: inline-grid;
|
|
46
|
+
grid-area: 1 / 1 / 2 / 3;
|
|
47
|
+
grid-template-columns: 0px min-content;
|
|
48
|
+
background: transparent;
|
|
49
|
+
min-height: ${40/16}rem;
|
|
50
|
+
border: none;
|
|
51
|
+
flex: 1;
|
|
52
|
+
font-size: ${14/16}rem;
|
|
53
|
+
color: ${({theme:p})=>p.colors.neutral800};
|
|
54
|
+
outline: none;
|
|
55
|
+
&:focus-visible {
|
|
56
|
+
outline: none;
|
|
57
|
+
box-shadow: none;
|
|
58
|
+
outline-offset: 0;
|
|
59
|
+
}
|
|
60
|
+
&[aria-disabled='true'] {
|
|
61
|
+
background: inherit;
|
|
62
|
+
color: inherit;
|
|
63
|
+
cursor: not-allowed;
|
|
64
|
+
}
|
|
65
|
+
`,g=(0,e.ZP)(l.x)`
|
|
66
|
+
width: 100%;
|
|
67
|
+
border: none;
|
|
68
|
+
text-align: left;
|
|
69
|
+
outline-offset: -3px;
|
|
70
|
+
${({isSelected:p,theme:N})=>p&&`background: ${N.colors.primary100};`}
|
|
71
|
+
|
|
72
|
+
&:hover {
|
|
73
|
+
background: ${({theme:p})=>p.colors.primary100};
|
|
74
|
+
}
|
|
75
|
+
`},29439:function(te,O,t){t.d(O,{Z:function(){return T}});var e=t(74512);const l=o=>(0,e.jsx)("svg",{width:"1rem",height:"1rem",viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg",...o,children:(0,e.jsx)("path",{d:"M24 13.3a.2.2 0 0 1-.2.2H5.74l8.239 8.239a.2.2 0 0 1 0 .282L12.14 23.86a.2.2 0 0 1-.282 0L.14 12.14a.2.2 0 0 1 0-.282L11.86.14a.2.2 0 0 1 .282 0L13.98 1.98a.2.2 0 0 1 0 .282L5.74 10.5H23.8c.11 0 .2.09.2.2v2.6Z",fill:"#212134"})}),T=l}}]);
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
"use strict";(self.webpackChunk_strapi_admin=self.webpackChunk_strapi_admin||[]).push([[4121],{74767:function(U,L,t){t.r(L),t.d(L,{default:function(){return ue}});var e=t(32735),a=t(43383),b=t(83983),h=t(53038),O=t(67879),p=t(94638),C=t(96709),D=t(27649),c=t(82055),f=t(99223),i=t(49372),M=t(41415),x=t(17e3),H=t(72850),_=t(56755),ee=t(73269),te=t(33827),G=t(94547),E=t(19786),N=t(44426),ne=t(3685),le=t(35658),S=t(87933),y=t(60216),V=t(8471);const $=V.ZP.div`
|
|
2
|
+
background: ${({theme:l})=>l.colors.danger500};
|
|
3
|
+
border: none;
|
|
4
|
+
border-radius: 16px;
|
|
5
|
+
position: relative;
|
|
6
|
+
height: ${24/16}rem;
|
|
7
|
+
width: ${40/16}rem;
|
|
8
|
+
|
|
9
|
+
& span {
|
|
10
|
+
font-size: ${({visibleLabels:l})=>l?"1rem":0};
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
&:before {
|
|
14
|
+
content: '';
|
|
15
|
+
background: ${({theme:l})=>l.colors.neutral0};
|
|
16
|
+
width: 1rem;
|
|
17
|
+
height: 1rem;
|
|
18
|
+
border-radius: 50%;
|
|
19
|
+
position: absolute;
|
|
20
|
+
transition: all 0.5s;
|
|
21
|
+
left: ${({theme:l})=>l.spaces[1]};
|
|
22
|
+
top: ${({theme:l})=>l.spaces[1]};
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
@media (prefers-reduced-motion: reduce) {
|
|
26
|
+
&:before {
|
|
27
|
+
transition: none;
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
`,ae=V.ZP.button`
|
|
31
|
+
background: transparent;
|
|
32
|
+
padding: 0;
|
|
33
|
+
border: none;
|
|
34
|
+
|
|
35
|
+
&[aria-checked='true'] ${$} {
|
|
36
|
+
background: ${({theme:l})=>l.colors.success500};
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
&[aria-checked='true'] ${$}:before {
|
|
40
|
+
transform: translateX(1rem);
|
|
41
|
+
}
|
|
42
|
+
`,W=e.forwardRef(({label:l,onChange:r,onLabel:s,offLabel:d,selected:T,visibleLabels:v,...u},o)=>e.createElement(ae,{ref:o,role:"switch","aria-checked":T,"aria-label":l,onClick:r,visibleLabels:v,type:"button",...u},e.createElement(S.k,null,e.createElement($,null,e.createElement("span",null,s),e.createElement("span",null,d)),v&&e.createElement(H.x,{as:"span","aria-hidden":!0,paddingLeft:2,color:T?"success600":"danger600"},T?s:d))));W.defaultProps={onLabel:"On",offLabel:"Off",visibleLabels:!1},W.propTypes={label:y.string.isRequired,offLabel:y.string,onChange:y.func.isRequired,onLabel:y.string,selected:y.bool.isRequired,visibleLabels:y.bool},W.displayName="Switch";var j=t(50563),oe=t(9695),R=t(19406),F=t(4038),se=t(68625),re=t(54725),ie=t(97889),de=t(3040),ce=t.n(de);const Ee={webhooks:[],webhooksToDelete:[],webhookToDelete:null,loadingWebhooks:!0};var me=(l,r)=>(0,ie.ZP)(l,s=>{switch(r.type){case"GET_DATA_SUCCEEDED":{s.webhooks=r.data,s.loadingWebhooks=!1;break}case"TOGGLE_LOADING":{s.loadingWebhooks=!l.loadingWebhooks;break}case"SET_WEBHOOK_ENABLED":{ce()(s,["webhooks",...r.keys],r.value);break}case"SET_WEBHOOK_TO_DELETE":{s.webhookToDelete=r.id;break}case"SET_WEBHOOKS_TO_DELETE":{r.value?s.webhooksToDelete.push(r.id):s.webhooksToDelete=l.webhooksToDelete.filter(d=>d!==r.id);break}case"SET_ALL_WEBHOOKS_TO_DELETE":{l.webhooksToDelete.length===0?s.webhooksToDelete=l.webhooks.map(d=>d.id):s.webhooksToDelete=[];break}case"WEBHOOKS_DELETED":{s.webhooks=l.webhooks.filter(d=>!l.webhooksToDelete.includes(d.id)),s.webhooksToDelete=[];break}case"WEBHOOK_DELETED":{s.webhooks=l.webhooks.filter((d,T)=>T!==r.index),s.webhookToDelete=null;break}default:return s}}),he=()=>{const{isLoading:l,allowedActions:{canCreate:r,canRead:s,canUpdate:d,canDelete:T}}=(0,a.ss)(b.Z.settings.webhooks),v=(0,a.lm)(),u=(0,e.useRef)(!0),{formatMessage:o}=(0,O.Z)(),[ge,P]=(0,e.useState)(!1),[{webhooks:B,webhooksToDelete:Z,webhookToDelete:K,loadingWebhooks:I},g]=(0,e.useReducer)(me,Ee),{notifyStatus:be}=(0,p.G)();(0,a.go)();const{push:fe}=(0,h.k6)(),{pathname:z}=(0,h.TH)(),A=B.length,k=Z.length,Y=n=>B.findIndex(m=>m.id===n);(0,e.useEffect)(()=>(u.current=!0,()=>{u.current=!1}),[]),(0,e.useEffect)(()=>{s&&Te()},[s]);const Te=async()=>{try{const{data:n}=await(0,a.WY)("/admin/webhooks",{method:"GET"});u.current&&(g({type:"GET_DATA_SUCCEEDED",data:n}),be("webhooks have been loaded"))}catch(n){console.log(n),u.current&&(n.code!==20&&v({type:"warning",message:{id:"notification.error"}}),g({type:"TOGGLE_LOADING"}))}},De=()=>{P(n=>!n)},ve=()=>{K?Le():Oe()},Le=async()=>{try{await(0,a.WY)(`/admin/webhooks/${K}`,{method:"DELETE"}),g({type:"WEBHOOK_DELETED",index:Y(K)})}catch(n){n.code!==20&&v({type:"warning",message:{id:"notification.error"}})}P(!1)},Oe=async()=>{const n={ids:Z};try{await(0,a.WY)("/admin/webhooks/batch-delete",{method:"POST",body:n}),u.current&&g({type:"WEBHOOKS_DELETED"})}catch(m){u.current&&m.code!==20&&v({type:"warning",message:{id:"notification.error"}})}P(!1)},Q=n=>{P(!0),n!=="all"&&g({type:"SET_WEBHOOK_TO_DELETE",id:n})},pe=async(n,m)=>{const X=Y(m),ke=B[X],J=[X,"isEnabled"],q={...ke,isEnabled:n};delete q.id;try{g({type:"SET_WEBHOOK_ENABLED",keys:J,value:n}),await(0,a.WY)(`/admin/webhooks/${m}`,{method:"PUT",body:q})}catch(Me){u.current&&(g({type:"SET_WEBHOOK_ENABLED",keys:J,value:!n}),Me.code!==20&&v({type:"warning",message:{id:"notification.error"}}))}},ye=()=>{g({type:"SET_ALL_WEBHOOKS_TO_DELETE"})},Ce=(n,m)=>{g({type:"SET_WEBHOOKS_TO_DELETE",value:n,id:m})},w=n=>{fe(`${z}/${n}`)};return e.createElement(C.A,null,e.createElement(a.SL,{name:"Webhooks"}),e.createElement(D.o,{"aria-busy":l||I},e.createElement(c.T,{title:o({id:"Settings.webhooks.title",defaultMessage:"Webhooks"}),subtitle:o({id:"Settings.webhooks.list.description",defaultMessage:"Get POST changes notifications"}),primaryAction:r&&!I&&e.createElement(a.Qj,{startIcon:e.createElement(R.Z,null),variant:"default",to:`${z}/create`,size:"S"},o({id:"Settings.webhooks.list.button.add",defaultMessage:"Create new webhook"}))}),k>0&&T&&e.createElement(f.Z,{startActions:e.createElement(e.Fragment,null,e.createElement(i.Z,{variant:"epsilon",textColor:"neutral600"},o({id:"Settings.webhooks.to.delete",defaultMessage:"{webhooksToDeleteLength, plural, one {# asset} other {# assets}} selected"},{webhooksToDeleteLength:k})),e.createElement(M.z,{onClick:()=>Q("all"),startIcon:e.createElement(F.Z,null),size:"L",variant:"danger-light"},o({id:"global.delete",defaultMessage:"Delete"})))}),e.createElement(x.D,null,l||I?e.createElement(H.x,{background:"neutral0",padding:6,shadow:"filterShadow",hasRadius:!0},e.createElement(a.dO,null)):A>0?e.createElement(_.i,{colCount:5,rowCount:A+1,footer:e.createElement(ee.c,{onClick:()=>r?w("create"):{},icon:e.createElement(R.Z,null)},o({id:"Settings.webhooks.list.button.add",defaultMessage:"Create new webhook"}))},e.createElement(te.h,null,e.createElement(G.Tr,null,e.createElement(E.Th,null,e.createElement(N.C,{"aria-label":o({id:"global.select-all-entries",defaultMessage:"Select all entries"}),indeterminate:k>0&&k<A,value:k===A,onValueChange:ye})),e.createElement(E.Th,{width:"20%"},e.createElement(i.Z,{variant:"sigma",textColor:"neutral600"},o({id:"global.name",defaultMessage:"Name"}))),e.createElement(E.Th,{width:"60%"},e.createElement(i.Z,{variant:"sigma",textColor:"neutral600"},o({id:"Settings.webhooks.form.url",defaultMessage:"URL"}))),e.createElement(E.Th,{width:"20%"},e.createElement(i.Z,{variant:"sigma",textColor:"neutral600"},o({id:"Settings.webhooks.list.th.status",defaultMessage:"Status"}))),e.createElement(E.Th,null,e.createElement(ne.T,null,o({id:"Settings.webhooks.list.th.actions",defaultMessage:"Actions"}))))),e.createElement(le.p,null,B.map(n=>e.createElement(G.Tr,{key:n.id,...(0,a.X7)({fn:()=>w(n.id),condition:d})},e.createElement(E.Td,{...a.UW},e.createElement(N.C,{"aria-label":`${o({id:"global.select",defaultMessage:"Select"})} ${n.name}`,value:Z?.includes(n.id),onValueChange:m=>Ce(m,n.id),id:"select",name:"select"})),e.createElement(E.Td,null,e.createElement(i.Z,{fontWeight:"semiBold",textColor:"neutral800"},n.name)),e.createElement(E.Td,null,e.createElement(i.Z,{textColor:"neutral800"},n.url)),e.createElement(E.Td,null,e.createElement(S.k,{...a.UW},e.createElement(W,{onLabel:o({id:"global.enabled",defaultMessage:"Enabled"}),offLabel:o({id:"global.disabled",defaultMessage:"Disabled"}),label:`${n.name} ${o({id:"Settings.webhooks.list.th.status",defaultMessage:"Status"})}`,selected:n.isEnabled,onChange:()=>pe(!n.isEnabled,n.id),visibleLabels:!0}))),e.createElement(E.Td,null,e.createElement(S.k,{gap:1,...a.UW},d&&e.createElement(j.h,{onClick:()=>{w(n.id)},label:o({id:"Settings.webhooks.events.update",defaultMessage:"Update"}),icon:e.createElement(se.Z,null),noBorder:!0}),T&&e.createElement(j.h,{onClick:()=>Q(n.id),label:o({id:"global.delete",defaultMessage:"Delete"}),icon:e.createElement(F.Z,null),noBorder:!0,id:`delete-${n.id}`}))))))):e.createElement(oe.x,{icon:e.createElement(re.Z,{width:"160px"}),content:o({id:"Settings.webhooks.list.empty.description",defaultMessage:"No webhooks found"}),action:e.createElement(M.z,{variant:"secondary",startIcon:e.createElement(R.Z,null),onClick:()=>r?w("create"):{}},o({id:"Settings.webhooks.list.button.add",defaultMessage:"Create new webhook"}))}))),e.createElement(a.QH,{isOpen:ge,onToggleDialog:De,onConfirm:ve}))},ue=()=>e.createElement(a.O4,{permissions:b.Z.settings.webhooks.main},e.createElement(he,null))},99223:function(U,L,t){t.d(L,{Z:function(){return D}});var e=t(32735),a=t(60216),b=t(8471),h=t(72850),O=t(87933);const p=(0,b.ZP)(O.k)`
|
|
43
|
+
& > * + * {
|
|
44
|
+
margin-left: ${({theme:c})=>c.spaces[2]};
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
margin-left: ${({pullRight:c})=>c?"auto":void 0};
|
|
48
|
+
`,C=(0,b.ZP)(p)`
|
|
49
|
+
flex-shrink: 0;
|
|
50
|
+
`,D=({startActions:c,endActions:f})=>c||f?e.createElement(h.x,{paddingLeft:10,paddingRight:10},e.createElement(h.x,{paddingBottom:4},e.createElement(O.k,{justifyContent:"space-between",alignItems:"flex-start"},c&&e.createElement(p,{wrap:"wrap"},c),f&&e.createElement(C,{pullRight:!0},f)))):null;D.defaultProps={endActions:void 0,startActions:void 0},D.propTypes={endActions:a.node,startActions:a.node}},73269:function(U,L,t){t.d(L,{c:function(){return f}});var e=t(32735),a=t(60216),b=t(8471),h=t(72850),O=t(9026),p=t(87933),C=t(49372);const D=(0,b.ZP)(h.x)`
|
|
51
|
+
height: ${24/16}rem;
|
|
52
|
+
width: ${24/16}rem;
|
|
53
|
+
border-radius: 50%;
|
|
54
|
+
display: flex;
|
|
55
|
+
justify-content: center;
|
|
56
|
+
align-items: center;
|
|
57
|
+
|
|
58
|
+
svg {
|
|
59
|
+
height: ${10/16}rem;
|
|
60
|
+
width: ${10/16}rem;
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
svg path {
|
|
64
|
+
fill: ${({theme:i})=>i.colors.primary600};
|
|
65
|
+
}
|
|
66
|
+
`,c=(0,b.ZP)(h.x)`
|
|
67
|
+
border-radius: 0 0 ${({theme:i})=>i.borderRadius} ${({theme:i})=>i.borderRadius};
|
|
68
|
+
display: block;
|
|
69
|
+
width: 100%;
|
|
70
|
+
border: none;
|
|
71
|
+
`,f=({children:i,icon:M,...x})=>e.createElement("div",null,e.createElement(O.i,null),e.createElement(c,{as:"button",background:"primary100",padding:5,...x},e.createElement(p.k,null,e.createElement(D,{"aria-hidden":!0,background:"primary200"},M),e.createElement(h.x,{paddingLeft:3},e.createElement(C.Z,{variant:"pi",fontWeight:"bold",textColor:"primary600"},i)))));f.propTypes={children:a.string.isRequired,icon:a.node.isRequired}}}]);
|
package/ee/server/bootstrap.js
CHANGED
|
@@ -5,6 +5,7 @@ const { features } = require('@strapi/strapi/lib/utils/ee');
|
|
|
5
5
|
const executeCEBootstrap = require('../../server/bootstrap');
|
|
6
6
|
const { getService } = require('../../server/utils');
|
|
7
7
|
const actions = require('./config/admin-actions');
|
|
8
|
+
const { persistTablesWithPrefix } = require('./utils/persisted-tables');
|
|
8
9
|
|
|
9
10
|
module.exports = async () => {
|
|
10
11
|
const { actionProvider } = getService('permission');
|
|
@@ -14,6 +15,8 @@ module.exports = async () => {
|
|
|
14
15
|
}
|
|
15
16
|
|
|
16
17
|
if (features.isEnabled('audit-logs')) {
|
|
18
|
+
await persistTablesWithPrefix('strapi_audit_logs');
|
|
19
|
+
|
|
17
20
|
await actionProvider.registerMany(actions.auditLogs);
|
|
18
21
|
}
|
|
19
22
|
|
package/ee/server/register.js
CHANGED
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
const { features } = require('@strapi/strapi/lib/utils/ee');
|
|
4
3
|
const executeCERegister = require('../../server/register');
|
|
5
4
|
const migrateAuditLogsTable = require('./migrations/audit-logs-table');
|
|
6
5
|
const createAuditLogsService = require('./services/audit-logs');
|
|
7
6
|
|
|
8
7
|
module.exports = async ({ strapi }) => {
|
|
9
|
-
|
|
8
|
+
const auditLogsIsEnabled = strapi.config.get('admin.auditLogs.enabled', true);
|
|
9
|
+
|
|
10
|
+
if (auditLogsIsEnabled) {
|
|
10
11
|
strapi.hook('strapi::content-types.beforeSync').register(migrateAuditLogsTable);
|
|
11
12
|
const auditLogsService = createAuditLogsService(strapi);
|
|
12
13
|
strapi.container.register('audit-logs', auditLogsService);
|
|
@@ -63,16 +63,37 @@ const getEventMap = (defaultEvents) => {
|
|
|
63
63
|
}, {});
|
|
64
64
|
};
|
|
65
65
|
|
|
66
|
+
const getRetentionDays = (strapi) => {
|
|
67
|
+
const licenseRetentionDays = features.get('audit-logs')?.options.retentionDays;
|
|
68
|
+
const userRetentionDays = strapi.config.get('admin.auditLogs.retentionDays');
|
|
69
|
+
|
|
70
|
+
// For enterprise plans, use 90 days by default, but allow users to override it
|
|
71
|
+
if (licenseRetentionDays == null) {
|
|
72
|
+
return userRetentionDays ?? DEFAULT_RETENTION_DAYS;
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
// Allow users to override the license retention days, but not to increase it
|
|
76
|
+
if (userRetentionDays && userRetentionDays < licenseRetentionDays) {
|
|
77
|
+
return userRetentionDays;
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
// User didn't provide a retention days value, use the license one
|
|
81
|
+
return licenseRetentionDays;
|
|
82
|
+
};
|
|
83
|
+
|
|
66
84
|
const createAuditLogsService = (strapi) => {
|
|
85
|
+
// Manage internal service state privately
|
|
86
|
+
const state = {};
|
|
87
|
+
|
|
67
88
|
// NOTE: providers should be able to replace getEventMap to add or remove events
|
|
68
89
|
const eventMap = getEventMap(defaultEvents);
|
|
69
90
|
|
|
70
91
|
const processEvent = (name, ...args) => {
|
|
71
|
-
const
|
|
92
|
+
const requestState = strapi.requestContext.get()?.state;
|
|
72
93
|
|
|
73
94
|
// Ignore events with auth strategies different from admin
|
|
74
|
-
const isUsingAdminAuth =
|
|
75
|
-
const user =
|
|
95
|
+
const isUsingAdminAuth = requestState?.auth?.strategy.name === 'admin';
|
|
96
|
+
const user = requestState?.user;
|
|
76
97
|
|
|
77
98
|
if (!isUsingAdminAuth || !user) {
|
|
78
99
|
return null;
|
|
@@ -103,26 +124,60 @@ const createAuditLogsService = (strapi) => {
|
|
|
103
124
|
const processedEvent = processEvent(name, ...args);
|
|
104
125
|
|
|
105
126
|
if (processedEvent) {
|
|
106
|
-
await
|
|
127
|
+
await state.provider.saveEvent(processedEvent);
|
|
107
128
|
}
|
|
108
129
|
}
|
|
109
130
|
|
|
110
131
|
return {
|
|
111
132
|
async register() {
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
133
|
+
// Handle license being enabled
|
|
134
|
+
if (!state.eeEnableUnsubscribe) {
|
|
135
|
+
state.eeEnableUnsubscribe = strapi.eventHub.on('ee.enable', () => {
|
|
136
|
+
// Recreate the service to use the new license info
|
|
137
|
+
this.destroy();
|
|
138
|
+
this.register();
|
|
139
|
+
});
|
|
140
|
+
}
|
|
141
|
+
|
|
142
|
+
// Handle license being updated
|
|
143
|
+
if (!state.eeUpdateUnsubscribe) {
|
|
144
|
+
state.eeUpdateUnsubscribe = strapi.eventHub.on('ee.update', () => {
|
|
145
|
+
// Recreate the service to use the new license info
|
|
146
|
+
this.destroy();
|
|
147
|
+
this.register();
|
|
148
|
+
});
|
|
149
|
+
}
|
|
150
|
+
|
|
151
|
+
// Handle license being disabled
|
|
152
|
+
state.eeDisableUnsubscribe = strapi.eventHub.on('ee.disable', () => {
|
|
153
|
+
// Turn off service when the license gets disabled
|
|
154
|
+
// Only ee.enable and ee.update listeners remain active to recreate the service
|
|
155
|
+
this.destroy();
|
|
156
|
+
});
|
|
157
|
+
|
|
158
|
+
// Register the provider now because collections can't be added later at runtime
|
|
159
|
+
state.provider = await localProvider.register({ strapi });
|
|
160
|
+
|
|
161
|
+
// Check current state of license
|
|
162
|
+
if (!features.isEnabled('audit-logs')) {
|
|
163
|
+
return this;
|
|
164
|
+
}
|
|
165
|
+
|
|
166
|
+
// Start saving events
|
|
167
|
+
state.eventHubUnsubscribe = strapi.eventHub.subscribe(handleEvent.bind(this));
|
|
168
|
+
|
|
169
|
+
// Manage audit logs auto deletion
|
|
170
|
+
const retentionDays = getRetentionDays(strapi);
|
|
171
|
+
state.deleteExpiredJob = scheduleJob('0 0 * * *', () => {
|
|
117
172
|
const expirationDate = new Date(Date.now() - retentionDays * 24 * 60 * 60 * 1000);
|
|
118
|
-
|
|
173
|
+
state.provider.deleteExpiredEvents(expirationDate);
|
|
119
174
|
});
|
|
120
175
|
|
|
121
176
|
return this;
|
|
122
177
|
},
|
|
123
178
|
|
|
124
179
|
async findMany(query) {
|
|
125
|
-
const { results, pagination } = await
|
|
180
|
+
const { results, pagination } = await state.provider.findMany(query);
|
|
126
181
|
|
|
127
182
|
const sanitizedResults = results.map((result) => {
|
|
128
183
|
const { user, ...rest } = result;
|
|
@@ -139,7 +194,7 @@ const createAuditLogsService = (strapi) => {
|
|
|
139
194
|
},
|
|
140
195
|
|
|
141
196
|
async findOne(id) {
|
|
142
|
-
const result = await
|
|
197
|
+
const result = await state.provider.findOne(id);
|
|
143
198
|
|
|
144
199
|
if (!result) {
|
|
145
200
|
return null;
|
|
@@ -153,12 +208,16 @@ const createAuditLogsService = (strapi) => {
|
|
|
153
208
|
},
|
|
154
209
|
|
|
155
210
|
unsubscribe() {
|
|
156
|
-
if (
|
|
157
|
-
|
|
211
|
+
if (state.eeDisableUnsubscribe) {
|
|
212
|
+
state.eeDisableUnsubscribe();
|
|
213
|
+
}
|
|
214
|
+
|
|
215
|
+
if (state.eventHubUnsubscribe) {
|
|
216
|
+
state.eventHubUnsubscribe();
|
|
158
217
|
}
|
|
159
218
|
|
|
160
|
-
if (
|
|
161
|
-
|
|
219
|
+
if (state.deleteExpiredJob) {
|
|
220
|
+
state.deleteExpiredJob.cancel();
|
|
162
221
|
}
|
|
163
222
|
|
|
164
223
|
return this;
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Finds all tables in the database that start with a prefix
|
|
5
|
+
* @param {string} prefix
|
|
6
|
+
* @returns {Array}
|
|
7
|
+
*/
|
|
8
|
+
const findTablesThatStartWithPrefix = async (prefix) => {
|
|
9
|
+
const tables = await strapi.db.dialect.schemaInspector.getTables();
|
|
10
|
+
return tables.filter((tableName) => tableName.startsWith(prefix));
|
|
11
|
+
};
|
|
12
|
+
|
|
13
|
+
/**
|
|
14
|
+
* Get all reserved table names from the core store
|
|
15
|
+
* @returns {Array}
|
|
16
|
+
*/
|
|
17
|
+
const getPersistedTables = async () =>
|
|
18
|
+
(await strapi.store.get({
|
|
19
|
+
type: 'core',
|
|
20
|
+
key: 'persisted_tables',
|
|
21
|
+
})) ?? [];
|
|
22
|
+
|
|
23
|
+
/**
|
|
24
|
+
* Add all table names that start with a prefix to the reserved tables in
|
|
25
|
+
* core store
|
|
26
|
+
* @param {string} tableNamePrefix
|
|
27
|
+
*/
|
|
28
|
+
|
|
29
|
+
const persistTablesWithPrefix = async (tableNamePrefix) => {
|
|
30
|
+
const persistedTables = await getPersistedTables();
|
|
31
|
+
const tableNames = await findTablesThatStartWithPrefix(tableNamePrefix);
|
|
32
|
+
const notReservedTableNames = tableNames.filter((name) => !persistedTables.includes(name));
|
|
33
|
+
|
|
34
|
+
if (!notReservedTableNames.length) {
|
|
35
|
+
return;
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
persistedTables.push(...notReservedTableNames);
|
|
39
|
+
await strapi.store.set({
|
|
40
|
+
type: 'core',
|
|
41
|
+
key: 'persisted_tables',
|
|
42
|
+
value: persistedTables,
|
|
43
|
+
});
|
|
44
|
+
};
|
|
45
|
+
|
|
46
|
+
module.exports = {
|
|
47
|
+
persistTablesWithPrefix,
|
|
48
|
+
findTablesThatStartWithPrefix,
|
|
49
|
+
};
|
package/jest.config.front.js
CHANGED
|
@@ -1,11 +1,6 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
const baseConfig = require('../../../jest.base-config.front');
|
|
4
|
-
const pkg = require('./package.json');
|
|
5
|
-
|
|
6
3
|
module.exports = {
|
|
7
|
-
|
|
8
|
-
displayName: (pkg.strapi && pkg.strapi.name) || pkg.name,
|
|
9
|
-
roots: [__dirname],
|
|
4
|
+
preset: '../../../jest-preset.front.js',
|
|
10
5
|
collectCoverageFrom: ['<rootDir>/packages/core/admin/admin/**/*.js'],
|
|
11
6
|
};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@strapi/admin",
|
|
3
|
-
"version": "4.9.
|
|
3
|
+
"version": "4.9.1",
|
|
4
4
|
"description": "Strapi Admin",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -28,14 +28,16 @@
|
|
|
28
28
|
"develop:webpack": "cross-env NODE_ENV=development webpack serve --config webpack.config.dev.js --progress profile",
|
|
29
29
|
"prepublishOnly": "yarn build",
|
|
30
30
|
"build": "rimraf build && node ./scripts/build.js",
|
|
31
|
-
"build:
|
|
31
|
+
"build:measure": "rimraf build && cross-env MEASURE_BUILD_SPEED=true node ./scripts/build.js",
|
|
32
32
|
"test": "echo \"no tests yet\"",
|
|
33
|
-
"test:unit": "jest
|
|
34
|
-
"test:
|
|
35
|
-
"test:front
|
|
36
|
-
"test:front:
|
|
37
|
-
"test:front:
|
|
38
|
-
"test:front:ce
|
|
33
|
+
"test:unit": "run -T jest",
|
|
34
|
+
"test:unit:watch": "run -T jest --watch",
|
|
35
|
+
"test:front": "run -T cross-env IS_EE=true jest --config ./jest.config.front.js",
|
|
36
|
+
"test:front:watch": "run -T cross-env IS_EE=true jest --config ./jest.config.front.js --watchAll",
|
|
37
|
+
"test:front:ce": "run -T cross-env IS_EE=false jest --config ./jest.config.front.js",
|
|
38
|
+
"test:front:watch:ce": "run -T cross-env IS_EE=false jest --config ./jest.config.front.js --watchAll",
|
|
39
|
+
"test:front:ce:cov": "run -T cross-env IS_EE=false jest --config ./jest.config.front.js --coverage",
|
|
40
|
+
"lint": "run -T eslint ."
|
|
39
41
|
},
|
|
40
42
|
"dependencies": {
|
|
41
43
|
"@babel/core": "^7.20.12",
|
|
@@ -46,15 +48,15 @@
|
|
|
46
48
|
"@casl/ability": "^5.4.3",
|
|
47
49
|
"@fingerprintjs/fingerprintjs": "3.3.6",
|
|
48
50
|
"@pmmmwh/react-refresh-webpack-plugin": "0.5.10",
|
|
49
|
-
"@strapi/babel-plugin-switch-ee-ce": "4.9.
|
|
50
|
-
"@strapi/data-transfer": "4.9.
|
|
51
|
-
"@strapi/design-system": "1.6.
|
|
52
|
-
"@strapi/helper-plugin": "4.9.
|
|
53
|
-
"@strapi/icons": "1.6.
|
|
54
|
-
"@strapi/permissions": "4.9.
|
|
55
|
-
"@strapi/provider-audit-logs-local": "4.9.
|
|
56
|
-
"@strapi/typescript-utils": "4.9.
|
|
57
|
-
"@strapi/utils": "4.9.
|
|
51
|
+
"@strapi/babel-plugin-switch-ee-ce": "4.9.1",
|
|
52
|
+
"@strapi/data-transfer": "4.9.1",
|
|
53
|
+
"@strapi/design-system": "1.6.6",
|
|
54
|
+
"@strapi/helper-plugin": "4.9.1",
|
|
55
|
+
"@strapi/icons": "1.6.6",
|
|
56
|
+
"@strapi/permissions": "4.9.1",
|
|
57
|
+
"@strapi/provider-audit-logs-local": "4.9.1",
|
|
58
|
+
"@strapi/typescript-utils": "4.9.1",
|
|
59
|
+
"@strapi/utils": "4.9.1",
|
|
58
60
|
"axios": "1.3.4",
|
|
59
61
|
"babel-loader": "^9.1.2",
|
|
60
62
|
"babel-plugin-styled-components": "2.0.2",
|
|
@@ -106,35 +108,35 @@
|
|
|
106
108
|
"passport-local": "1.0.0",
|
|
107
109
|
"pluralize": "8.0.0",
|
|
108
110
|
"prop-types": "^15.7.2",
|
|
109
|
-
"qs": "6.11.
|
|
111
|
+
"qs": "6.11.1",
|
|
110
112
|
"react": "^17.0.2",
|
|
111
113
|
"react-copy-to-clipboard": "^5.1.0",
|
|
112
114
|
"react-dnd": "15.1.2",
|
|
113
|
-
"react-dnd-html5-backend": "15.1.
|
|
115
|
+
"react-dnd-html5-backend": "15.1.3",
|
|
114
116
|
"react-dom": "^17.0.2",
|
|
115
117
|
"react-error-boundary": "3.1.4",
|
|
116
118
|
"react-fast-compare": "^3.2.0",
|
|
117
119
|
"react-helmet": "^6.1.0",
|
|
118
|
-
"react-intl": "6.2
|
|
120
|
+
"react-intl": "6.3.2",
|
|
119
121
|
"react-is": "^17.0.2",
|
|
120
122
|
"react-query": "3.24.3",
|
|
121
123
|
"react-redux": "8.0.5",
|
|
122
124
|
"react-refresh": "0.14.0",
|
|
123
125
|
"react-router-dom": "5.3.4",
|
|
124
126
|
"react-select": "5.7.0",
|
|
125
|
-
"react-window": "1.8.
|
|
127
|
+
"react-window": "1.8.8",
|
|
126
128
|
"redux": "^4.2.1",
|
|
127
129
|
"reselect": "^4.1.7",
|
|
128
130
|
"rimraf": "3.0.2",
|
|
129
|
-
"sanitize-html": "2.
|
|
131
|
+
"sanitize-html": "2.10.0",
|
|
130
132
|
"semver": "7.3.8",
|
|
131
|
-
"sift": "16.0.
|
|
133
|
+
"sift": "16.0.1",
|
|
132
134
|
"style-loader": "3.3.1",
|
|
133
135
|
"styled-components": "5.3.3",
|
|
134
136
|
"typescript": "4.6.2",
|
|
135
137
|
"webpack": "^5.76.0",
|
|
136
138
|
"webpack-cli": "^5.0.1",
|
|
137
|
-
"webpack-dev-server": "^4.
|
|
139
|
+
"webpack-dev-server": "^4.13.1",
|
|
138
140
|
"webpackbar": "^5.0.2",
|
|
139
141
|
"yup": "^0.32.9"
|
|
140
142
|
},
|
|
@@ -166,5 +168,5 @@
|
|
|
166
168
|
}
|
|
167
169
|
}
|
|
168
170
|
},
|
|
169
|
-
"gitHead": "
|
|
171
|
+
"gitHead": "c8f2f0543b45dda8eadde21a0782b64d156fc786"
|
|
170
172
|
}
|
|
@@ -13,7 +13,10 @@ module.exports = () => async (ctx, next) => {
|
|
|
13
13
|
|
|
14
14
|
if (!hasValidTokenSalt()) {
|
|
15
15
|
return ctx.notImplemented(
|
|
16
|
-
'The server configuration for data transfer is invalid. Please contact your server administrator.'
|
|
16
|
+
'The server configuration for data transfer is invalid. Please contact your server administrator.',
|
|
17
|
+
{
|
|
18
|
+
code: 'INVALID_TOKEN_SALT',
|
|
19
|
+
}
|
|
17
20
|
);
|
|
18
21
|
}
|
|
19
22
|
|
|
@@ -34,6 +34,7 @@ const {
|
|
|
34
34
|
ID_ATTRIBUTE,
|
|
35
35
|
CREATED_AT_ATTRIBUTE,
|
|
36
36
|
UPDATED_AT_ATTRIBUTE,
|
|
37
|
+
PUBLISHED_AT_ATTRIBUTE,
|
|
37
38
|
CREATED_BY_ATTRIBUTE,
|
|
38
39
|
UPDATED_BY_ATTRIBUTE,
|
|
39
40
|
} = constants;
|
|
@@ -261,6 +262,7 @@ module.exports = ({ action, ability, model }) => {
|
|
|
261
262
|
...COMPONENT_FIELDS,
|
|
262
263
|
CREATED_AT_ATTRIBUTE,
|
|
263
264
|
UPDATED_AT_ATTRIBUTE,
|
|
265
|
+
PUBLISHED_AT_ATTRIBUTE,
|
|
264
266
|
]);
|
|
265
267
|
};
|
|
266
268
|
|
package/webpack.config.js
CHANGED
|
@@ -221,7 +221,7 @@ module.exports = ({
|
|
|
221
221
|
alias,
|
|
222
222
|
symlinks: false,
|
|
223
223
|
extensions: ['.js', '.jsx', '.react.js', '.ts', '.tsx'],
|
|
224
|
-
mainFields: ['browser', 'jsnext:main', 'main'],
|
|
224
|
+
mainFields: ['browser', 'module', 'jsnext:main', 'main'],
|
|
225
225
|
modules: ['node_modules', path.resolve(__dirname, 'node_modules')],
|
|
226
226
|
},
|
|
227
227
|
plugins: [
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
(self.webpackChunk_strapi_admin=self.webpackChunk_strapi_admin||[]).push([[2637],{88058:function(u,v,n){var t=n(87650);function o(e,i){var a=e==null?0:e.length;return!!a&&t(e,i,0)>-1}u.exports=o},37431:function(u){function v(n,t,o){for(var e=-1,i=n==null?0:n.length;++e<i;)if(o(t,n[e]))return!0;return!1}u.exports=v},23089:function(u,v,n){var t=n(61712),o=t("length");u.exports=o},56671:function(u,v,n){var t=n(35897),o=n(74741),e=o(t);u.exports=e},60528:function(u){function v(n,t,o,e){for(var i=n.length,a=o+(e?1:-1);e?a--:++a<i;)if(t(n[a],a,n))return a;return-1}u.exports=v},87650:function(u,v,n){var t=n(60528),o=n(25556),e=n(54256);function i(a,p,d){return p===p?e(a,p,d):t(a,o,d)}u.exports=i},25556:function(u){function v(n){return n!==n}u.exports=v},91131:function(u,v,n){var t=n(94318),o=n(3387),e="[object RegExp]";function i(a){return o(a)&&t(a)==e}u.exports=i},52920:function(u,v,n){var t=n(56671),o=n(81580);function e(i,a){var p=-1,d=o(i)?Array(i.length):[];return t(i,function(S,E,O){d[++p]=a(S,E,O)}),d}u.exports=e},50690:function(u,v,n){var t=n(26460),o=n(80166),e=n(88904),i=n(52920),a=n(36024),p=n(76535),d=n(1397),S=n(15362),E=n(77236);function O(g,r,s){r.length?r=t(r,function(c){return E(c)?function(x){return o(x,c.length===1?c[0]:c)}:c}):r=[S];var f=-1;r=t(r,p(e));var b=i(g,function(c,x,l){var h=t(r,function(m){return m(c)});return{criteria:h,index:++f,value:c}});return a(b,function(c,x){return d(c,x,s)})}u.exports=O},36024:function(u){function v(n,t){var o=n.length;for(n.sort(t);o--;)n[o]=n[o].value;return n}u.exports=v},84351:function(u,v,n){var t=n(61124),o=n(88058),e=n(37431),i=n(30555),a=n(58491),p=n(66350),d=200;function S(E,O,g){var r=-1,s=o,f=E.length,b=!0,c=[],x=c;if(g)b=!1,s=e;else if(f>=d){var l=O?null:a(E);if(l)return p(l);b=!1,s=i,x=new t}else x=O?[]:c;n:for(;++r<f;){var h=E[r],m=O?O(h):h;if(h=g||h!==0?h:0,b&&m===m){for(var y=x.length;y--;)if(x[y]===m)continue n;O&&x.push(m),c.push(h)}else s(x,m,g)||(x!==c&&x.push(m),c.push(h))}return c}u.exports=S},40709:function(u,v,n){var t=n(22945);function o(e,i){if(e!==i){var a=e!==void 0,p=e===null,d=e===e,S=t(e),E=i!==void 0,O=i===null,g=i===i,r=t(i);if(!O&&!r&&!S&&e>i||S&&E&&g&&!O&&!r||p&&E&&g||!a&&g||!d)return 1;if(!p&&!S&&!r&&e<i||r&&a&&d&&!p&&!S||O&&a&&d||!E&&d||!g)return-1}return 0}u.exports=o},1397:function(u,v,n){var t=n(40709);function o(e,i,a){for(var p=-1,d=e.criteria,S=i.criteria,E=d.length,O=a.length;++p<E;){var g=t(d[p],S[p]);if(g){if(p>=O)return g;var r=a[p];return g*(r=="desc"?-1:1)}}return e.index-i.index}u.exports=o},74741:function(u,v,n){var t=n(81580);function o(e,i){return function(a,p){if(a==null)return a;if(!t(a))return e(a,p);for(var d=a.length,S=i?d:-1,E=Object(a);(i?S--:++S<d)&&p(E[S],S,E)!==!1;);return a}}u.exports=o},58491:function(u,v,n){var t=n(69902),o=n(13581),e=n(66350),i=1/0,a=t&&1/e(new t([,-0]))[1]==i?function(p){return new t(p)}:o;u.exports=a},54256:function(u){function v(n,t,o){for(var e=o-1,i=n.length;++e<i;)if(n[e]===t)return e;return-1}u.exports=v},38788:function(u,v,n){var t=n(23089),o=n(34327),e=n(71286);function i(a){return o(a)?e(a):t(a)}u.exports=i},71286:function(u){var v="\\ud800-\\udfff",n="\\u0300-\\u036f",t="\\ufe20-\\ufe2f",o="\\u20d0-\\u20ff",e=n+t+o,i="\\ufe0e\\ufe0f",a="["+v+"]",p="["+e+"]",d="\\ud83c[\\udffb-\\udfff]",S="(?:"+p+"|"+d+")",E="[^"+v+"]",O="(?:\\ud83c[\\udde6-\\uddff]){2}",g="[\\ud800-\\udbff][\\udc00-\\udfff]",r="\\u200d",s=S+"?",f="["+i+"]?",b="(?:"+r+"(?:"+[E,O,g].join("|")+")"+f+s+")*",c=f+s+b,x="(?:"+[E+p+"?",p,O,g,a].join("|")+")",l=RegExp(d+"(?="+d+")|"+x+c,"g");function h(m){for(var y=l.lastIndex=0;l.test(m);)++y;return y}u.exports=h},52654:function(u,v,n){var t=n(91131),o=n(76535),e=n(91782),i=e&&e.isRegExp,a=i?o(i):t;u.exports=a},13581:function(u){function v(){}u.exports=v},98978:function(u,v,n){var t=n(40314),o=n(50690),e=n(94569),i=n(63108),a=e(function(p,d){if(p==null)return[];var S=d.length;return S>1&&i(p,d[0],d[1])?d=[]:S>2&&i(d[0],d[1],d[2])&&(d=[d[0]]),o(p,t(d,1),[])});u.exports=a},59578:function(u,v,n){var t=n(41119);function o(e){return t(e).toLowerCase()}u.exports=o},51382:function(u,v,n){var t=n(90454),o=n(24793),e=n(34327),i=n(85973),a=n(52654),p=n(38788),d=n(51119),S=n(25225),E=n(41119),O=30,g="...",r=/\w*$/;function s(f,b){var c=O,x=g;if(i(b)){var l="separator"in b?b.separator:l;c="length"in b?S(b.length):c,x="omission"in b?t(b.omission):x}f=E(f);var h=f.length;if(e(f)){var m=d(f);h=m.length}if(c>=h)return f;var y=c-p(x);if(y<1)return x;var C=m?o(m,0,y).join(""):f.slice(0,y);if(l===void 0)return C+x;if(m&&(y+=C.length-y),a(l)){if(f.slice(y).search(l)){var A,j=C;for(l.global||(l=RegExp(l.source,E(r.exec(l))+"g")),l.lastIndex=0;A=l.exec(j);)var R=A.index;C=C.slice(0,R===void 0?y:R)}}else if(f.indexOf(t(l),y)!=y){var z=C.lastIndexOf(l);z>-1&&(C=C.slice(0,z))}return C+x}u.exports=s},91815:function(u,v,n){var t=n(84351);function o(e){return e&&e.length?t(e):[]}u.exports=o},98178:function(u,v,n){"use strict";n.d(v,{P1:function(){return E}});var t="NOT_FOUND";function o(g){var r;return{get:function(f){return r&&g(r.key,f)?r.value:t},put:function(f,b){r={key:f,value:b}},getEntries:function(){return r?[r]:[]},clear:function(){r=void 0}}}function e(g,r){var s=[];function f(l){var h=s.findIndex(function(y){return r(l,y.key)});if(h>-1){var m=s[h];return h>0&&(s.splice(h,1),s.unshift(m)),m.value}return t}function b(l,h){f(l)===t&&(s.unshift({key:l,value:h}),s.length>g&&s.pop())}function c(){return s}function x(){s=[]}return{get:f,put:b,getEntries:c,clear:x}}var i=function(r,s){return r===s};function a(g){return function(s,f){if(s===null||f===null||s.length!==f.length)return!1;for(var b=s.length,c=0;c<b;c++)if(!g(s[c],f[c]))return!1;return!0}}function p(g,r){var s=typeof r=="object"?r:{equalityCheck:r},f=s.equalityCheck,b=f===void 0?i:f,c=s.maxSize,x=c===void 0?1:c,l=s.resultEqualityCheck,h=a(b),m=x===1?o(h):e(x,h);function y(){var C=m.get(arguments);if(C===t){if(C=g.apply(null,arguments),l){var A=m.getEntries(),j=A.find(function(R){return l(R.value,C)});j&&(C=j.value)}m.put(arguments,C)}return C}return y.clearCache=function(){return m.clear()},y}function d(g){var r=Array.isArray(g[0])?g[0]:g;if(!r.every(function(f){return typeof f=="function"})){var s=r.map(function(f){return typeof f=="function"?"function "+(f.name||"unnamed")+"()":typeof f}).join(", ");throw new Error("createSelector expects all input-selectors to be functions, but received the following types: ["+s+"]")}return r}function S(g){for(var r=arguments.length,s=new Array(r>1?r-1:0),f=1;f<r;f++)s[f-1]=arguments[f];var b=function(){for(var x=arguments.length,l=new Array(x),h=0;h<x;h++)l[h]=arguments[h];var m=0,y,C={memoizeOptions:void 0},A=l.pop();if(typeof A=="object"&&(C=A,A=l.pop()),typeof A!="function")throw new Error("createSelector expects an output function after the inputs, but received: ["+typeof A+"]");var j=C,R=j.memoizeOptions,z=R===void 0?s:R,N=Array.isArray(z)?z:[z],F=d(l),U=g.apply(void 0,[function(){return m++,A.apply(null,arguments)}].concat(N)),L=g(function(){for(var M=[],B=F.length,T=0;T<B;T++)M.push(F[T].apply(null,arguments));return y=U.apply(null,M),y});return Object.assign(L,{resultFunc:A,memoizedResultFunc:U,dependencies:F,lastResult:function(){return y},recomputations:function(){return m},resetRecomputations:function(){return m=0}}),L};return b}var E=S(p),O=function(r,s){if(s===void 0&&(s=E),typeof r!="object")throw new Error("createStructuredSelector expects first argument to be an object "+("where each property is a selector, instead received a "+typeof r));var f=Object.keys(r),b=s(f.map(function(c){return r[c]}),function(){for(var c=arguments.length,x=new Array(c),l=0;l<c;l++)x[l]=arguments[l];return x.reduce(function(h,m,y){return h[f[y]]=m,h},{})});return b}}}]);
|