@strapi/admin 5.0.0-rc.0 → 5.0.0-rc.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (166) hide show
  1. package/dist/admin/{ApplicationInfoPage-g82dXg6q.js → ApplicationInfoPage-LznjJLOK.js} +2 -2
  2. package/dist/admin/{ApplicationInfoPage-g82dXg6q.js.map → ApplicationInfoPage-LznjJLOK.js.map} +1 -1
  3. package/dist/admin/{ApplicationInfoPage-dUIGrQGe.mjs → ApplicationInfoPage-bFUQipUD.mjs} +2 -2
  4. package/dist/admin/{ApplicationInfoPage-dUIGrQGe.mjs.map → ApplicationInfoPage-bFUQipUD.mjs.map} +1 -1
  5. package/dist/admin/{AuthenticatedLayout-Nvdzrzx5.mjs → AuthenticatedLayout-9BqTP5ts.mjs} +9 -9
  6. package/dist/admin/{AuthenticatedLayout-Nvdzrzx5.mjs.map → AuthenticatedLayout-9BqTP5ts.mjs.map} +1 -1
  7. package/dist/admin/{AuthenticatedLayout-zi65roOD.js → AuthenticatedLayout-JXL3-C1o.js} +9 -9
  8. package/dist/admin/{AuthenticatedLayout-zi65roOD.js.map → AuthenticatedLayout-JXL3-C1o.js.map} +1 -1
  9. package/dist/admin/{CreatePage--JuxyfiM.mjs → CreatePage-2FruFy8h.mjs} +2 -2
  10. package/dist/admin/{CreatePage--JuxyfiM.mjs.map → CreatePage-2FruFy8h.mjs.map} +1 -1
  11. package/dist/admin/{CreatePage-cmQo1lsI.js → CreatePage-AD3sbEN3.js} +2 -2
  12. package/dist/admin/{CreatePage-cmQo1lsI.js.map → CreatePage-AD3sbEN3.js.map} +1 -1
  13. package/dist/admin/{CreatePage-pdMfqmVQ.js → CreatePage-gcrJLU-l.js} +2 -2
  14. package/dist/admin/{CreatePage-pdMfqmVQ.js.map → CreatePage-gcrJLU-l.js.map} +1 -1
  15. package/dist/admin/{CreatePage-N7P4KHBw.mjs → CreatePage-iY2orjRn.mjs} +2 -2
  16. package/dist/admin/{CreatePage-N7P4KHBw.mjs.map → CreatePage-iY2orjRn.mjs.map} +1 -1
  17. package/dist/admin/{CreateView-pnws3TX-.js → CreateView-7641d4wB.js} +2 -2
  18. package/dist/admin/{CreateView-pnws3TX-.js.map → CreateView-7641d4wB.js.map} +1 -1
  19. package/dist/admin/{CreateView-yZaKlylD.mjs → CreateView-7V0euitE.mjs} +2 -2
  20. package/dist/admin/{CreateView-yZaKlylD.mjs.map → CreateView-7V0euitE.mjs.map} +1 -1
  21. package/dist/admin/{CreateView-d40DvWop.js → CreateView-_Ne-aCCb.js} +2 -2
  22. package/dist/admin/{CreateView-d40DvWop.js.map → CreateView-_Ne-aCCb.js.map} +1 -1
  23. package/dist/admin/{CreateView-XmSKJfeA.mjs → CreateView-iK56xNQ1.mjs} +2 -2
  24. package/dist/admin/{CreateView-XmSKJfeA.mjs.map → CreateView-iK56xNQ1.mjs.map} +1 -1
  25. package/dist/admin/{EditPage-lZSLQ_kW.js → EditPage-2CbSq-lR.js} +5 -5
  26. package/dist/admin/{EditPage-lZSLQ_kW.js.map → EditPage-2CbSq-lR.js.map} +1 -1
  27. package/dist/admin/{EditPage--0bmE7_N.js → EditPage-9tvJX8ja.js} +3 -3
  28. package/dist/admin/{EditPage--0bmE7_N.js.map → EditPage-9tvJX8ja.js.map} +1 -1
  29. package/dist/admin/{EditPage-SEqJd8aL.mjs → EditPage-EdNkFkC1.mjs} +3 -3
  30. package/dist/admin/{EditPage-SEqJd8aL.mjs.map → EditPage-EdNkFkC1.mjs.map} +1 -1
  31. package/dist/admin/{EditPage-aTVcZqIw.js → EditPage-JB_Z07h6.js} +3 -3
  32. package/dist/admin/{EditPage-aTVcZqIw.js.map → EditPage-JB_Z07h6.js.map} +1 -1
  33. package/dist/admin/{EditPage-0LYEDOqM.mjs → EditPage-R5dvKr7i.mjs} +3 -3
  34. package/dist/admin/{EditPage-0LYEDOqM.mjs.map → EditPage-R5dvKr7i.mjs.map} +1 -1
  35. package/dist/admin/{EditPage-EnZY6R8C.mjs → EditPage-ioeYD8Hp.mjs} +5 -5
  36. package/dist/admin/{EditPage-EnZY6R8C.mjs.map → EditPage-ioeYD8Hp.mjs.map} +1 -1
  37. package/dist/admin/{EditView-Xnf-Y_i6.mjs → EditView-7alLH-tr.mjs} +3 -3
  38. package/dist/admin/{EditView-Xnf-Y_i6.mjs.map → EditView-7alLH-tr.mjs.map} +1 -1
  39. package/dist/admin/{EditView-lT8-jopG.js → EditView-VUk5wGgo.js} +3 -3
  40. package/dist/admin/{EditView-lT8-jopG.js.map → EditView-VUk5wGgo.js.map} +1 -1
  41. package/dist/admin/{EditViewPage-Ol2GfMki.mjs → EditViewPage-g8QWLTxd.mjs} +3 -3
  42. package/dist/admin/{EditViewPage-Ol2GfMki.mjs.map → EditViewPage-g8QWLTxd.mjs.map} +1 -1
  43. package/dist/admin/{EditViewPage-l54jnFq5.js → EditViewPage-oOwj_78J.js} +3 -3
  44. package/dist/admin/{EditViewPage-l54jnFq5.js.map → EditViewPage-oOwj_78J.js.map} +1 -1
  45. package/dist/admin/{EventsTable-x8idMSyd.mjs → EventsTable-9H-nFyHq.mjs} +2 -2
  46. package/dist/admin/{EventsTable-x8idMSyd.mjs.map → EventsTable-9H-nFyHq.mjs.map} +1 -1
  47. package/dist/admin/{EventsTable-wSeeoOYt.js → EventsTable-owF7zlhz.js} +2 -2
  48. package/dist/admin/{EventsTable-wSeeoOYt.js.map → EventsTable-owF7zlhz.js.map} +1 -1
  49. package/dist/admin/{HomePage-ivlZamVP.js → HomePage-EbzXWLqD.js} +2 -2
  50. package/dist/admin/{HomePage-ivlZamVP.js.map → HomePage-EbzXWLqD.js.map} +1 -1
  51. package/dist/admin/{HomePage-rO315cxr.js → HomePage-Emln7c5k.js} +3 -3
  52. package/dist/admin/{HomePage-rO315cxr.js.map → HomePage-Emln7c5k.js.map} +1 -1
  53. package/dist/admin/{HomePage-Zmtc9RWT.mjs → HomePage-FGqxZHtu.mjs} +2 -2
  54. package/dist/admin/{HomePage-Zmtc9RWT.mjs.map → HomePage-FGqxZHtu.mjs.map} +1 -1
  55. package/dist/admin/{HomePage-XGnQE7ny.mjs → HomePage-sT_HlwYZ.mjs} +3 -3
  56. package/dist/admin/{HomePage-XGnQE7ny.mjs.map → HomePage-sT_HlwYZ.mjs.map} +1 -1
  57. package/dist/admin/{InstalledPluginsPage-WaPhGz8o.mjs → InstalledPluginsPage-3vlfPpU3.mjs} +2 -2
  58. package/dist/admin/{InstalledPluginsPage-WaPhGz8o.mjs.map → InstalledPluginsPage-3vlfPpU3.mjs.map} +1 -1
  59. package/dist/admin/{InstalledPluginsPage-Jr5ITmO2.js → InstalledPluginsPage-SiFmaNWc.js} +2 -2
  60. package/dist/admin/{InstalledPluginsPage-Jr5ITmO2.js.map → InstalledPluginsPage-SiFmaNWc.js.map} +1 -1
  61. package/dist/admin/{Layout-zkpMXAoS.mjs → Layout-VwzGyu0x.mjs} +3 -3
  62. package/dist/admin/{Layout-zkpMXAoS.mjs.map → Layout-VwzGyu0x.mjs.map} +1 -1
  63. package/dist/admin/{Layout-oY1FywRQ.js → Layout-nKc2yK5p.js} +3 -3
  64. package/dist/admin/{Layout-oY1FywRQ.js.map → Layout-nKc2yK5p.js.map} +1 -1
  65. package/dist/admin/{ListPage-Hr65IOSg.js → ListPage---uyMv_p.js} +2 -2
  66. package/dist/admin/{ListPage-Hr65IOSg.js.map → ListPage---uyMv_p.js.map} +1 -1
  67. package/dist/admin/{ListPage-O5tDuG9A.mjs → ListPage-8yzXGf7C.mjs} +3 -3
  68. package/dist/admin/{ListPage-O5tDuG9A.mjs.map → ListPage-8yzXGf7C.mjs.map} +1 -1
  69. package/dist/admin/{ListPage-Lg5YOMva.js → ListPage-QXAdZtNF.js} +3 -3
  70. package/dist/admin/{ListPage-Lg5YOMva.js.map → ListPage-QXAdZtNF.js.map} +1 -1
  71. package/dist/admin/{ListPage-CwIQBV8p.mjs → ListPage-SFqp9JZy.mjs} +2 -2
  72. package/dist/admin/{ListPage-CwIQBV8p.mjs.map → ListPage-SFqp9JZy.mjs.map} +1 -1
  73. package/dist/admin/{ListPage-Z6tGG3Ab.js → ListPage-cTiffPin.js} +2 -2
  74. package/dist/admin/{ListPage-Z6tGG3Ab.js.map → ListPage-cTiffPin.js.map} +1 -1
  75. package/dist/admin/{ListPage-e73kfoF7.js → ListPage-eozWdsvq.js} +2 -2
  76. package/dist/admin/{ListPage-e73kfoF7.js.map → ListPage-eozWdsvq.js.map} +1 -1
  77. package/dist/admin/{ListPage-8mH-itGQ.mjs → ListPage-p792wPTB.mjs} +2 -2
  78. package/dist/admin/{ListPage-8mH-itGQ.mjs.map → ListPage-p792wPTB.mjs.map} +1 -1
  79. package/dist/admin/{ListPage-ecQ9qHgD.mjs → ListPage-qg090kRv.mjs} +5 -5
  80. package/dist/admin/{ListPage-ecQ9qHgD.mjs.map → ListPage-qg090kRv.mjs.map} +1 -1
  81. package/dist/admin/{ListPage-6FZt3Rsr.mjs → ListPage-tJWXHTen.mjs} +2 -2
  82. package/dist/admin/{ListPage-6FZt3Rsr.mjs.map → ListPage-tJWXHTen.mjs.map} +1 -1
  83. package/dist/admin/{ListPage-1rd2okih.js → ListPage-xUK9iGiT.js} +5 -5
  84. package/dist/admin/{ListPage-1rd2okih.js.map → ListPage-xUK9iGiT.js.map} +1 -1
  85. package/dist/admin/{ListView-5P4j7mTu.js → ListView-3jqyshKJ.js} +3 -3
  86. package/dist/admin/{ListView-5P4j7mTu.js.map → ListView-3jqyshKJ.js.map} +1 -1
  87. package/dist/admin/{ListView-el6fHHck.mjs → ListView-4M8jtsQm.mjs} +3 -3
  88. package/dist/admin/{ListView-el6fHHck.mjs.map → ListView-4M8jtsQm.mjs.map} +1 -1
  89. package/dist/admin/{ListView-qyoVbUIE.js → ListView-SkucwgXe.js} +3 -3
  90. package/dist/admin/{ListView-qyoVbUIE.js.map → ListView-SkucwgXe.js.map} +1 -1
  91. package/dist/admin/{ListView-z5iwLF2-.mjs → ListView-w4UDfqi5.mjs} +3 -3
  92. package/dist/admin/{ListView-z5iwLF2-.mjs.map → ListView-w4UDfqi5.mjs.map} +1 -1
  93. package/dist/admin/{Login-KZbFZfrN.js → Login-1OxJroKq.js} +2 -2
  94. package/dist/admin/{Login-KZbFZfrN.js.map → Login-1OxJroKq.js.map} +1 -1
  95. package/dist/admin/{Login-N5NSuTVF.mjs → Login-tlIHpT6f.mjs} +2 -2
  96. package/dist/admin/{Login-N5NSuTVF.mjs.map → Login-tlIHpT6f.mjs.map} +1 -1
  97. package/dist/admin/{MagicLinkEE-XXdnsS6S.mjs → MagicLinkEE--s9mjgfw.mjs} +3 -3
  98. package/dist/admin/{MagicLinkEE-XXdnsS6S.mjs.map → MagicLinkEE--s9mjgfw.mjs.map} +1 -1
  99. package/dist/admin/{MagicLinkEE-sKqh4jBd.js → MagicLinkEE-pO0Gruh0.js} +3 -3
  100. package/dist/admin/{MagicLinkEE-sKqh4jBd.js.map → MagicLinkEE-pO0Gruh0.js.map} +1 -1
  101. package/dist/admin/{MarketplacePage-_xLLmtgL.js → MarketplacePage-AHNjanZD.js} +2 -2
  102. package/dist/admin/{MarketplacePage-_xLLmtgL.js.map → MarketplacePage-AHNjanZD.js.map} +1 -1
  103. package/dist/admin/{MarketplacePage-tOb2ZzOl.mjs → MarketplacePage-r7UEpF7R.mjs} +2 -2
  104. package/dist/admin/{MarketplacePage-tOb2ZzOl.mjs.map → MarketplacePage-r7UEpF7R.mjs.map} +1 -1
  105. package/dist/admin/{ProfilePage-ktCLvQFd.mjs → ProfilePage-QqH-J3Oy.mjs} +3 -3
  106. package/dist/admin/{ProfilePage-ktCLvQFd.mjs.map → ProfilePage-QqH-J3Oy.mjs.map} +1 -1
  107. package/dist/admin/{ProfilePage-CcfGiB1f.js → ProfilePage-lDn-qHpP.js} +3 -3
  108. package/dist/admin/{ProfilePage-CcfGiB1f.js.map → ProfilePage-lDn-qHpP.js.map} +1 -1
  109. package/dist/admin/{PurchaseAuditLogs-FFyc1iqD.mjs → PurchaseAuditLogs--utOgRAX.mjs} +2 -2
  110. package/dist/admin/{PurchaseAuditLogs-FFyc1iqD.mjs.map → PurchaseAuditLogs--utOgRAX.mjs.map} +1 -1
  111. package/dist/admin/{PurchaseAuditLogs-vw0PH1V9.js → PurchaseAuditLogs-mqXfinGn.js} +2 -2
  112. package/dist/admin/{PurchaseAuditLogs-vw0PH1V9.js.map → PurchaseAuditLogs-mqXfinGn.js.map} +1 -1
  113. package/dist/admin/{PurchaseSingleSignOn-xU0fuX_i.mjs → PurchaseSingleSignOn-CMk7f-UQ.mjs} +2 -2
  114. package/dist/admin/{PurchaseSingleSignOn-xU0fuX_i.mjs.map → PurchaseSingleSignOn-CMk7f-UQ.mjs.map} +1 -1
  115. package/dist/admin/{PurchaseSingleSignOn-6LucYXfi.js → PurchaseSingleSignOn-_a_L6ovG.js} +2 -2
  116. package/dist/admin/{PurchaseSingleSignOn-6LucYXfi.js.map → PurchaseSingleSignOn-_a_L6ovG.js.map} +1 -1
  117. package/dist/admin/{SelectRoles-N6X582ND.mjs → SelectRoles-9OiWZeb9.mjs} +3 -3
  118. package/dist/admin/{SelectRoles-N6X582ND.mjs.map → SelectRoles-9OiWZeb9.mjs.map} +1 -1
  119. package/dist/admin/{SelectRoles-9mmcvACr.js → SelectRoles-yJe9JKeA.js} +3 -3
  120. package/dist/admin/{SelectRoles-9mmcvACr.js.map → SelectRoles-yJe9JKeA.js.map} +1 -1
  121. package/dist/admin/{SingleSignOnPage-4wlUp8RB.mjs → SingleSignOnPage-PVK18-8t.mjs} +3 -3
  122. package/dist/admin/{SingleSignOnPage-4wlUp8RB.mjs.map → SingleSignOnPage-PVK18-8t.mjs.map} +1 -1
  123. package/dist/admin/{SingleSignOnPage-UAjYb3Du.js → SingleSignOnPage-WhK5o9JP.js} +3 -3
  124. package/dist/admin/{SingleSignOnPage-UAjYb3Du.js.map → SingleSignOnPage-WhK5o9JP.js.map} +1 -1
  125. package/dist/admin/{Table-0h7ykSft.js → Table-1UeBLvgr.js} +3 -2
  126. package/dist/admin/Table-1UeBLvgr.js.map +1 -0
  127. package/dist/admin/{Table-xRelygoM.mjs → Table-6HfAb1wa.mjs} +3 -2
  128. package/dist/admin/Table-6HfAb1wa.mjs.map +1 -0
  129. package/dist/admin/{TokenTypeSelect-hdjIIxHs.js → TokenTypeSelect-XmdkgtYN.js} +2 -2
  130. package/dist/admin/{TokenTypeSelect-hdjIIxHs.js.map → TokenTypeSelect-XmdkgtYN.js.map} +1 -1
  131. package/dist/admin/{TokenTypeSelect-zY7AWGQx.mjs → TokenTypeSelect-YXtj_qJ5.mjs} +2 -2
  132. package/dist/admin/{TokenTypeSelect-zY7AWGQx.mjs.map → TokenTypeSelect-YXtj_qJ5.mjs.map} +1 -1
  133. package/dist/admin/{UseCasePage-zJ0ShP4K.mjs → UseCasePage-DjjXgY-r.mjs} +2 -2
  134. package/dist/admin/{UseCasePage-zJ0ShP4K.mjs.map → UseCasePage-DjjXgY-r.mjs.map} +1 -1
  135. package/dist/admin/{UseCasePage-qujErAl0.js → UseCasePage-PSOoW50c.js} +2 -2
  136. package/dist/admin/{UseCasePage-qujErAl0.js.map → UseCasePage-PSOoW50c.js.map} +1 -1
  137. package/dist/admin/{constants-4XMdB2M2.js → constants-FxekqL-R.js} +2 -2
  138. package/dist/admin/{constants-4XMdB2M2.js.map → constants-FxekqL-R.js.map} +1 -1
  139. package/dist/admin/{constants-cKzCiJ5m.mjs → constants-sfKqW7Eu.mjs} +2 -2
  140. package/dist/admin/{constants-cKzCiJ5m.mjs.map → constants-sfKqW7Eu.mjs.map} +1 -1
  141. package/dist/admin/{index-r7BCTgkx.js → index-dEoiR6qH.js} +44 -30
  142. package/dist/admin/index-dEoiR6qH.js.map +1 -0
  143. package/dist/admin/{index-8-k5RCnK.mjs → index-m_rp3iqs.mjs} +44 -30
  144. package/dist/admin/index-m_rp3iqs.mjs.map +1 -0
  145. package/dist/admin/index.js +1 -1
  146. package/dist/admin/index.mjs +1 -1
  147. package/dist/admin/src/types/permissions.d.ts +1 -1
  148. package/dist/admin/{useAdminRoles-L_erbna_.js → useAdminRoles-38N3HyXZ.js} +2 -2
  149. package/dist/admin/{useAdminRoles-L_erbna_.js.map → useAdminRoles-38N3HyXZ.js.map} +1 -1
  150. package/dist/admin/{useAdminRoles-SYx-GXvp.mjs → useAdminRoles-moiJL1FT.mjs} +2 -2
  151. package/dist/admin/{useAdminRoles-SYx-GXvp.mjs.map → useAdminRoles-moiJL1FT.mjs.map} +1 -1
  152. package/dist/admin/{validation-m5K7EGQS.js → validation-4neJeZKW.js} +2 -2
  153. package/dist/admin/{validation-m5K7EGQS.js.map → validation-4neJeZKW.js.map} +1 -1
  154. package/dist/admin/{validation-OmnQSHJ4.mjs → validation-Ki10t7Oh.mjs} +2 -2
  155. package/dist/admin/{validation-OmnQSHJ4.mjs.map → validation-Ki10t7Oh.mjs.map} +1 -1
  156. package/dist/ee/admin/src/constants.d.ts +10 -0
  157. package/dist/ee/server/index.js +1 -3
  158. package/dist/ee/server/index.js.map +1 -1
  159. package/dist/ee/server/index.mjs +1 -3
  160. package/dist/ee/server/index.mjs.map +1 -1
  161. package/dist/package.json.d.ts +7 -7
  162. package/package.json +8 -8
  163. package/dist/admin/Table-0h7ykSft.js.map +0 -1
  164. package/dist/admin/Table-xRelygoM.mjs.map +0 -1
  165. package/dist/admin/index-8-k5RCnK.mjs.map +0 -1
  166. package/dist/admin/index-r7BCTgkx.js.map +0 -1
@@ -1,6 +1,6 @@
1
1
  declare const _default: {
2
2
  "name": "@strapi/admin",
3
- "version": "5.0.0-beta.17",
3
+ "version": "5.0.0-rc.1",
4
4
  "description": "Strapi Admin",
5
5
  "repository": {
6
6
  "type": "git",
@@ -81,10 +81,10 @@ declare const _default: {
81
81
  "@reduxjs/toolkit": "1.9.7",
82
82
  "@strapi/design-system": "2.0.0-beta.6",
83
83
  "@strapi/icons": "2.0.0-beta.6",
84
- "@strapi/permissions": "5.0.0-beta.17",
85
- "@strapi/types": "5.0.0-beta.17",
86
- "@strapi/typescript-utils": "5.0.0-beta.17",
87
- "@strapi/utils": "5.0.0-beta.17",
84
+ "@strapi/permissions": "5.0.0-rc.1",
85
+ "@strapi/types": "5.0.0-rc.1",
86
+ "@strapi/typescript-utils": "5.0.0-rc.1",
87
+ "@strapi/utils": "5.0.0-rc.1",
88
88
  "@testing-library/dom": "10.1.0",
89
89
  "@testing-library/react": "15.0.7",
90
90
  "@testing-library/user-event": "14.5.2",
@@ -139,8 +139,8 @@ declare const _default: {
139
139
  "zod": "^3.22.4"
140
140
  },
141
141
  "devDependencies": {
142
- "@strapi/admin-test-utils": "5.0.0-beta.17",
143
- "@strapi/data-transfer": "5.0.0-beta.17",
142
+ "@strapi/admin-test-utils": "5.0.0-rc.1",
143
+ "@strapi/data-transfer": "5.0.0-rc.1",
144
144
  "@strapi/pack-up": "5.0.0",
145
145
  "@types/codemirror5": "npm:@types/codemirror@^5.60.15",
146
146
  "@types/fs-extra": "11.0.4",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@strapi/admin",
3
- "version": "5.0.0-rc.0",
3
+ "version": "5.0.0-rc.2",
4
4
  "description": "Strapi Admin",
5
5
  "repository": {
6
6
  "type": "git",
@@ -81,10 +81,10 @@
81
81
  "@reduxjs/toolkit": "1.9.7",
82
82
  "@strapi/design-system": "2.0.0-beta.6",
83
83
  "@strapi/icons": "2.0.0-beta.6",
84
- "@strapi/permissions": "5.0.0-rc.0",
85
- "@strapi/types": "5.0.0-rc.0",
86
- "@strapi/typescript-utils": "5.0.0-rc.0",
87
- "@strapi/utils": "5.0.0-rc.0",
84
+ "@strapi/permissions": "5.0.0-rc.2",
85
+ "@strapi/types": "5.0.0-rc.2",
86
+ "@strapi/typescript-utils": "5.0.0-rc.2",
87
+ "@strapi/utils": "5.0.0-rc.2",
88
88
  "@testing-library/dom": "10.1.0",
89
89
  "@testing-library/react": "15.0.7",
90
90
  "@testing-library/user-event": "14.5.2",
@@ -139,8 +139,8 @@
139
139
  "zod": "^3.22.4"
140
140
  },
141
141
  "devDependencies": {
142
- "@strapi/admin-test-utils": "5.0.0-rc.0",
143
- "@strapi/data-transfer": "5.0.0-rc.0",
142
+ "@strapi/admin-test-utils": "5.0.0-rc.2",
143
+ "@strapi/data-transfer": "5.0.0-rc.2",
144
144
  "@strapi/pack-up": "5.0.0",
145
145
  "@types/codemirror5": "npm:@types/codemirror@^5.60.15",
146
146
  "@types/fs-extra": "11.0.4",
@@ -186,5 +186,5 @@
186
186
  }
187
187
  }
188
188
  },
189
- "gitHead": "ec0af1ddc1aa1c774e42db971848c6b95517d4ad"
189
+ "gitHead": "c3f078328f8506cd543f6635b992d8648cb8c501"
190
190
  }
@@ -1 +0,0 @@
1
- {"version":3,"file":"Table-0h7ykSft.js","sources":["../../admin/src/components/RelativeTime.tsx","../../admin/src/pages/Settings/components/Tokens/Table.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { Duration, intervalToDuration, isPast } from 'date-fns';\nimport { useIntl } from 'react-intl';\n\nconst intervals: Array<keyof Duration> = ['years', 'months', 'days', 'hours', 'minutes', 'seconds'];\n\ninterface CustomInterval {\n unit: keyof Duration;\n text: string;\n threshold: number;\n}\n\ninterface RelativeTimeProps extends React.ComponentPropsWithoutRef<'time'> {\n timestamp: Date;\n customIntervals?: CustomInterval[];\n}\n\n/**\n * Displays the relative time between a given timestamp and the current time.\n * You can display a custom message for given time intervals by passing an array of custom intervals.\n *\n * @example\n * ```jsx\n * <caption>Display \"last hour\" if the timestamp is less than an hour ago</caption>\n * <RelativeTime\n * timestamp={new Date('2021-01-01')}\n * customIntervals={[\n * { unit: 'hours', threshold: 1, text: 'last hour' },\n * ]}\n * ```\n */\nconst RelativeTime = React.forwardRef<HTMLTimeElement, RelativeTimeProps>(\n ({ timestamp, customIntervals = [], ...restProps }, forwardedRef) => {\n const { formatRelativeTime, formatDate, formatTime } = useIntl();\n\n /**\n * TODO: make this auto-update, like a clock.\n */\n const interval = intervalToDuration({\n start: timestamp,\n end: Date.now(),\n // see https://github.com/date-fns/date-fns/issues/2891 – No idea why it's all partial it returns it every time.\n }) as Required<Duration>;\n\n const unit = intervals.find((intervalUnit) => {\n return interval[intervalUnit] > 0 && Object.keys(interval).includes(intervalUnit);\n })!;\n\n const relativeTime = isPast(timestamp) ? -interval[unit] : interval[unit];\n\n // Display custom text if interval is less than the threshold\n const customInterval = customIntervals.find(\n (custom) => interval[custom.unit] < custom.threshold\n );\n\n const displayText = customInterval\n ? customInterval.text\n : formatRelativeTime(relativeTime, unit, { numeric: 'auto' });\n\n return (\n <time\n ref={forwardedRef}\n dateTime={timestamp.toISOString()}\n role=\"time\"\n title={`${formatDate(timestamp)} ${formatTime(timestamp)}`}\n {...restProps}\n >\n {displayText}\n </time>\n );\n }\n);\n\nexport { RelativeTime };\nexport type { CustomInterval, RelativeTimeProps };\n","import * as React from 'react';\n\nimport {\n Box,\n Flex,\n IconButton,\n Typography,\n useCollator,\n Link,\n Dialog,\n} from '@strapi/design-system';\nimport { Pencil, Trash } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\nimport { NavLink, useNavigate } from 'react-router-dom';\nimport { styled } from 'styled-components';\n\nimport { ApiToken } from '../../../../../../shared/contracts/api-token';\nimport { SanitizedTransferToken } from '../../../../../../shared/contracts/transfer';\nimport { ConfirmDialog } from '../../../../components/ConfirmDialog';\nimport { RelativeTime } from '../../../../components/RelativeTime';\nimport { Table as TableImpl } from '../../../../components/Table';\nimport { useTracking } from '../../../../features/Tracking';\nimport { useQueryParams } from '../../../../hooks/useQueryParams';\n\nimport type { Data } from '@strapi/types';\n\n/* -------------------------------------------------------------------------------------------------\n * Table\n * -----------------------------------------------------------------------------------------------*/\n\ninterface TableProps\n extends Pick<TableImpl.Props<SanitizedTransferToken | ApiToken>, 'headers' | 'isLoading'> {\n onConfirmDelete: (id: Data.ID) => void;\n permissions: {\n canRead: boolean;\n canDelete: boolean;\n canUpdate: boolean;\n };\n tokens: SanitizedTransferToken[] | ApiToken[];\n tokenType: 'api-token' | 'transfer-token';\n}\n\nconst Table = ({\n permissions,\n headers = [],\n isLoading = false,\n tokens = [],\n onConfirmDelete,\n tokenType,\n}: TableProps) => {\n const [{ query }] = useQueryParams<{ sort?: string }>();\n const { formatMessage, locale } = useIntl();\n const [, sortOrder] = query && query.sort ? query.sort.split(':') : [undefined, 'ASC'];\n const navigate = useNavigate();\n const { trackUsage } = useTracking();\n const formatter = useCollator(locale);\n\n const sortedTokens = [...tokens].sort((a, b) => {\n return sortOrder === 'DESC'\n ? formatter.compare(b.name, a.name)\n : formatter.compare(a.name, b.name);\n });\n\n const { canDelete, canUpdate, canRead } = permissions;\n\n const handleRowClick = (id: Data.ID) => () => {\n if (canRead) {\n trackUsage('willEditTokenFromList', {\n tokenType,\n });\n navigate(id.toString());\n }\n };\n\n return (\n <TableImpl.Root headers={headers} rows={sortedTokens} isLoading={isLoading}>\n <TableImpl.Content>\n <TableImpl.Head>\n {headers.map((header) => (\n <TableImpl.HeaderCell key={header.name} {...header} />\n ))}\n </TableImpl.Head>\n <TableImpl.Empty />\n <TableImpl.Loading />\n <TableImpl.Body>\n {sortedTokens.map((token) => (\n <TableImpl.Row key={token.id} onClick={handleRowClick(token.id)}>\n <TableImpl.Cell maxWidth=\"25rem\">\n <Typography textColor=\"neutral800\" fontWeight=\"bold\" ellipsis>\n {token.name}\n </Typography>\n </TableImpl.Cell>\n <TableImpl.Cell maxWidth=\"25rem\">\n <Typography textColor=\"neutral800\" ellipsis>\n {token.description}\n </Typography>\n </TableImpl.Cell>\n <TableImpl.Cell>\n <Typography textColor=\"neutral800\">\n {/* @ts-expect-error One of the tokens doesn't have createdAt */}\n <RelativeTime timestamp={new Date(token.createdAt)} />\n </Typography>\n </TableImpl.Cell>\n <TableImpl.Cell>\n {token.lastUsedAt && (\n <Typography textColor=\"neutral800\">\n <RelativeTime\n timestamp={new Date(token.lastUsedAt)}\n customIntervals={[\n {\n unit: 'hours',\n threshold: 1,\n text: formatMessage({\n id: 'Settings.apiTokens.lastHour',\n defaultMessage: 'last hour',\n }),\n },\n ]}\n />\n </Typography>\n )}\n </TableImpl.Cell>\n {canUpdate || canRead || canDelete ? (\n <TableImpl.Cell>\n <Flex justifyContent=\"end\">\n {canUpdate && <UpdateButton tokenName={token.name} tokenId={token.id} />}\n {canDelete && (\n <DeleteButton\n tokenName={token.name}\n onClickDelete={() => onConfirmDelete?.(token.id)}\n tokenType={tokenType}\n />\n )}\n </Flex>\n </TableImpl.Cell>\n ) : null}\n </TableImpl.Row>\n ))}\n </TableImpl.Body>\n </TableImpl.Content>\n </TableImpl.Root>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * CRUD Buttons\n * -----------------------------------------------------------------------------------------------*/\n\nconst MESSAGES_MAP = {\n edit: {\n id: 'app.component.table.edit',\n defaultMessage: 'Edit {target}',\n },\n read: {\n id: 'app.component.table.read',\n defaultMessage: 'Read {target}',\n },\n};\n\ninterface DefaultButtonProps {\n tokenName: string;\n tokenId: Data.ID;\n buttonType?: 'edit' | 'read';\n children: React.ReactNode;\n}\n\nconst DefaultButton = ({\n tokenName,\n tokenId,\n buttonType = 'edit',\n children,\n}: DefaultButtonProps) => {\n const { formatMessage } = useIntl();\n\n return (\n <LinkStyled\n tag={NavLink}\n to={tokenId.toString()}\n title={formatMessage(MESSAGES_MAP[buttonType], { target: tokenName })}\n >\n {children}\n </LinkStyled>\n );\n};\n\nconst LinkStyled = styled(Link)`\n svg {\n path {\n fill: ${({ theme }) => theme.colors.neutral500};\n }\n }\n\n &:hover,\n &:focus {\n svg {\n path {\n fill: ${({ theme }) => theme.colors.neutral800};\n }\n }\n }\n`;\n\ninterface DeleteButtonProps extends Pick<ButtonProps, 'tokenName'>, Pick<TableProps, 'tokenType'> {\n onClickDelete: () => void;\n}\n\nconst DeleteButton = ({ tokenName, onClickDelete, tokenType }: DeleteButtonProps) => {\n const { formatMessage } = useIntl();\n const { trackUsage } = useTracking();\n const handleClickDelete = () => {\n trackUsage('willDeleteToken', {\n tokenType,\n });\n onClickDelete();\n };\n\n return (\n <Dialog.Root>\n <Box<'div'> paddingLeft={1} onClick={(e) => e.stopPropagation()}>\n <Dialog.Trigger>\n <IconButton\n label={formatMessage(\n {\n id: 'global.delete-target',\n defaultMessage: 'Delete {target}',\n },\n { target: `${tokenName}` }\n )}\n name=\"delete\"\n borderWidth={0}\n >\n <Trash />\n </IconButton>\n </Dialog.Trigger>\n <ConfirmDialog onConfirm={handleClickDelete} />\n </Box>\n </Dialog.Root>\n );\n};\n\ninterface ButtonProps {\n tokenName: string;\n tokenId: Data.ID;\n}\n\nconst UpdateButton = ({ tokenName, tokenId }: ButtonProps) => {\n return (\n <DefaultButton tokenName={tokenName} tokenId={tokenId}>\n <Pencil width={12} />\n </DefaultButton>\n );\n};\n\nexport { Table };\nexport type { TableProps };\n"],"names":["React","useIntl","intervalToDuration","isPast","jsx","useQueryParams","useNavigate","useTracking","useCollator","TableImpl","jsxs","Typography","Flex","NavLink","styled","Link","Dialog","Box","IconButton","Trash","ConfirmDialog","Pencil"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"Table-xRelygoM.mjs","sources":["../../admin/src/components/RelativeTime.tsx","../../admin/src/pages/Settings/components/Tokens/Table.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { Duration, intervalToDuration, isPast } from 'date-fns';\nimport { useIntl } from 'react-intl';\n\nconst intervals: Array<keyof Duration> = ['years', 'months', 'days', 'hours', 'minutes', 'seconds'];\n\ninterface CustomInterval {\n unit: keyof Duration;\n text: string;\n threshold: number;\n}\n\ninterface RelativeTimeProps extends React.ComponentPropsWithoutRef<'time'> {\n timestamp: Date;\n customIntervals?: CustomInterval[];\n}\n\n/**\n * Displays the relative time between a given timestamp and the current time.\n * You can display a custom message for given time intervals by passing an array of custom intervals.\n *\n * @example\n * ```jsx\n * <caption>Display \"last hour\" if the timestamp is less than an hour ago</caption>\n * <RelativeTime\n * timestamp={new Date('2021-01-01')}\n * customIntervals={[\n * { unit: 'hours', threshold: 1, text: 'last hour' },\n * ]}\n * ```\n */\nconst RelativeTime = React.forwardRef<HTMLTimeElement, RelativeTimeProps>(\n ({ timestamp, customIntervals = [], ...restProps }, forwardedRef) => {\n const { formatRelativeTime, formatDate, formatTime } = useIntl();\n\n /**\n * TODO: make this auto-update, like a clock.\n */\n const interval = intervalToDuration({\n start: timestamp,\n end: Date.now(),\n // see https://github.com/date-fns/date-fns/issues/2891 – No idea why it's all partial it returns it every time.\n }) as Required<Duration>;\n\n const unit = intervals.find((intervalUnit) => {\n return interval[intervalUnit] > 0 && Object.keys(interval).includes(intervalUnit);\n })!;\n\n const relativeTime = isPast(timestamp) ? -interval[unit] : interval[unit];\n\n // Display custom text if interval is less than the threshold\n const customInterval = customIntervals.find(\n (custom) => interval[custom.unit] < custom.threshold\n );\n\n const displayText = customInterval\n ? customInterval.text\n : formatRelativeTime(relativeTime, unit, { numeric: 'auto' });\n\n return (\n <time\n ref={forwardedRef}\n dateTime={timestamp.toISOString()}\n role=\"time\"\n title={`${formatDate(timestamp)} ${formatTime(timestamp)}`}\n {...restProps}\n >\n {displayText}\n </time>\n );\n }\n);\n\nexport { RelativeTime };\nexport type { CustomInterval, RelativeTimeProps };\n","import * as React from 'react';\n\nimport {\n Box,\n Flex,\n IconButton,\n Typography,\n useCollator,\n Link,\n Dialog,\n} from '@strapi/design-system';\nimport { Pencil, Trash } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\nimport { NavLink, useNavigate } from 'react-router-dom';\nimport { styled } from 'styled-components';\n\nimport { ApiToken } from '../../../../../../shared/contracts/api-token';\nimport { SanitizedTransferToken } from '../../../../../../shared/contracts/transfer';\nimport { ConfirmDialog } from '../../../../components/ConfirmDialog';\nimport { RelativeTime } from '../../../../components/RelativeTime';\nimport { Table as TableImpl } from '../../../../components/Table';\nimport { useTracking } from '../../../../features/Tracking';\nimport { useQueryParams } from '../../../../hooks/useQueryParams';\n\nimport type { Data } from '@strapi/types';\n\n/* -------------------------------------------------------------------------------------------------\n * Table\n * -----------------------------------------------------------------------------------------------*/\n\ninterface TableProps\n extends Pick<TableImpl.Props<SanitizedTransferToken | ApiToken>, 'headers' | 'isLoading'> {\n onConfirmDelete: (id: Data.ID) => void;\n permissions: {\n canRead: boolean;\n canDelete: boolean;\n canUpdate: boolean;\n };\n tokens: SanitizedTransferToken[] | ApiToken[];\n tokenType: 'api-token' | 'transfer-token';\n}\n\nconst Table = ({\n permissions,\n headers = [],\n isLoading = false,\n tokens = [],\n onConfirmDelete,\n tokenType,\n}: TableProps) => {\n const [{ query }] = useQueryParams<{ sort?: string }>();\n const { formatMessage, locale } = useIntl();\n const [, sortOrder] = query && query.sort ? query.sort.split(':') : [undefined, 'ASC'];\n const navigate = useNavigate();\n const { trackUsage } = useTracking();\n const formatter = useCollator(locale);\n\n const sortedTokens = [...tokens].sort((a, b) => {\n return sortOrder === 'DESC'\n ? formatter.compare(b.name, a.name)\n : formatter.compare(a.name, b.name);\n });\n\n const { canDelete, canUpdate, canRead } = permissions;\n\n const handleRowClick = (id: Data.ID) => () => {\n if (canRead) {\n trackUsage('willEditTokenFromList', {\n tokenType,\n });\n navigate(id.toString());\n }\n };\n\n return (\n <TableImpl.Root headers={headers} rows={sortedTokens} isLoading={isLoading}>\n <TableImpl.Content>\n <TableImpl.Head>\n {headers.map((header) => (\n <TableImpl.HeaderCell key={header.name} {...header} />\n ))}\n </TableImpl.Head>\n <TableImpl.Empty />\n <TableImpl.Loading />\n <TableImpl.Body>\n {sortedTokens.map((token) => (\n <TableImpl.Row key={token.id} onClick={handleRowClick(token.id)}>\n <TableImpl.Cell maxWidth=\"25rem\">\n <Typography textColor=\"neutral800\" fontWeight=\"bold\" ellipsis>\n {token.name}\n </Typography>\n </TableImpl.Cell>\n <TableImpl.Cell maxWidth=\"25rem\">\n <Typography textColor=\"neutral800\" ellipsis>\n {token.description}\n </Typography>\n </TableImpl.Cell>\n <TableImpl.Cell>\n <Typography textColor=\"neutral800\">\n {/* @ts-expect-error One of the tokens doesn't have createdAt */}\n <RelativeTime timestamp={new Date(token.createdAt)} />\n </Typography>\n </TableImpl.Cell>\n <TableImpl.Cell>\n {token.lastUsedAt && (\n <Typography textColor=\"neutral800\">\n <RelativeTime\n timestamp={new Date(token.lastUsedAt)}\n customIntervals={[\n {\n unit: 'hours',\n threshold: 1,\n text: formatMessage({\n id: 'Settings.apiTokens.lastHour',\n defaultMessage: 'last hour',\n }),\n },\n ]}\n />\n </Typography>\n )}\n </TableImpl.Cell>\n {canUpdate || canRead || canDelete ? (\n <TableImpl.Cell>\n <Flex justifyContent=\"end\">\n {canUpdate && <UpdateButton tokenName={token.name} tokenId={token.id} />}\n {canDelete && (\n <DeleteButton\n tokenName={token.name}\n onClickDelete={() => onConfirmDelete?.(token.id)}\n tokenType={tokenType}\n />\n )}\n </Flex>\n </TableImpl.Cell>\n ) : null}\n </TableImpl.Row>\n ))}\n </TableImpl.Body>\n </TableImpl.Content>\n </TableImpl.Root>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * CRUD Buttons\n * -----------------------------------------------------------------------------------------------*/\n\nconst MESSAGES_MAP = {\n edit: {\n id: 'app.component.table.edit',\n defaultMessage: 'Edit {target}',\n },\n read: {\n id: 'app.component.table.read',\n defaultMessage: 'Read {target}',\n },\n};\n\ninterface DefaultButtonProps {\n tokenName: string;\n tokenId: Data.ID;\n buttonType?: 'edit' | 'read';\n children: React.ReactNode;\n}\n\nconst DefaultButton = ({\n tokenName,\n tokenId,\n buttonType = 'edit',\n children,\n}: DefaultButtonProps) => {\n const { formatMessage } = useIntl();\n\n return (\n <LinkStyled\n tag={NavLink}\n to={tokenId.toString()}\n title={formatMessage(MESSAGES_MAP[buttonType], { target: tokenName })}\n >\n {children}\n </LinkStyled>\n );\n};\n\nconst LinkStyled = styled(Link)`\n svg {\n path {\n fill: ${({ theme }) => theme.colors.neutral500};\n }\n }\n\n &:hover,\n &:focus {\n svg {\n path {\n fill: ${({ theme }) => theme.colors.neutral800};\n }\n }\n }\n`;\n\ninterface DeleteButtonProps extends Pick<ButtonProps, 'tokenName'>, Pick<TableProps, 'tokenType'> {\n onClickDelete: () => void;\n}\n\nconst DeleteButton = ({ tokenName, onClickDelete, tokenType }: DeleteButtonProps) => {\n const { formatMessage } = useIntl();\n const { trackUsage } = useTracking();\n const handleClickDelete = () => {\n trackUsage('willDeleteToken', {\n tokenType,\n });\n onClickDelete();\n };\n\n return (\n <Dialog.Root>\n <Box<'div'> paddingLeft={1} onClick={(e) => e.stopPropagation()}>\n <Dialog.Trigger>\n <IconButton\n label={formatMessage(\n {\n id: 'global.delete-target',\n defaultMessage: 'Delete {target}',\n },\n { target: `${tokenName}` }\n )}\n name=\"delete\"\n borderWidth={0}\n >\n <Trash />\n </IconButton>\n </Dialog.Trigger>\n <ConfirmDialog onConfirm={handleClickDelete} />\n </Box>\n </Dialog.Root>\n );\n};\n\ninterface ButtonProps {\n tokenName: string;\n tokenId: Data.ID;\n}\n\nconst UpdateButton = ({ tokenName, tokenId }: ButtonProps) => {\n return (\n <DefaultButton tokenName={tokenName} tokenId={tokenId}>\n <Pencil width={12} />\n </DefaultButton>\n );\n};\n\nexport { Table };\nexport type { TableProps };\n"],"names":["TableImpl"],"mappings":"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"}