@strapi/admin 5.50.2 → 5.51.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (169) hide show
  1. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/Permissions.js +14 -6
  2. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/Permissions.js.map +1 -1
  3. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/Permissions.mjs +14 -6
  4. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/Permissions.mjs.map +1 -1
  5. package/dist/admin/admin/src/utils/cookies.js +77 -2
  6. package/dist/admin/admin/src/utils/cookies.js.map +1 -1
  7. package/dist/admin/admin/src/utils/cookies.mjs +76 -3
  8. package/dist/admin/admin/src/utils/cookies.mjs.map +1 -1
  9. package/dist/admin/admin/tests/server.js +23 -1
  10. package/dist/admin/admin/tests/server.js.map +1 -1
  11. package/dist/admin/admin/tests/server.mjs +23 -1
  12. package/dist/admin/admin/tests/server.mjs.map +1 -1
  13. package/dist/admin/ee/admin/src/pages/SettingsPage/pages/AuditLogs/ListPage.js +38 -7
  14. package/dist/admin/ee/admin/src/pages/SettingsPage/pages/AuditLogs/ListPage.js.map +1 -1
  15. package/dist/admin/ee/admin/src/pages/SettingsPage/pages/AuditLogs/ListPage.mjs +18 -7
  16. package/dist/admin/ee/admin/src/pages/SettingsPage/pages/AuditLogs/ListPage.mjs.map +1 -1
  17. package/dist/admin/ee/admin/src/pages/SettingsPage/pages/AuditLogs/components/ComboboxFilter.js +4 -1
  18. package/dist/admin/ee/admin/src/pages/SettingsPage/pages/AuditLogs/components/ComboboxFilter.js.map +1 -1
  19. package/dist/admin/ee/admin/src/pages/SettingsPage/pages/AuditLogs/components/ComboboxFilter.mjs +4 -1
  20. package/dist/admin/ee/admin/src/pages/SettingsPage/pages/AuditLogs/components/ComboboxFilter.mjs.map +1 -1
  21. package/dist/admin/ee/admin/src/pages/SettingsPage/pages/AuditLogs/hooks/useAuditLogsData.js +17 -6
  22. package/dist/admin/ee/admin/src/pages/SettingsPage/pages/AuditLogs/hooks/useAuditLogsData.js.map +1 -1
  23. package/dist/admin/ee/admin/src/pages/SettingsPage/pages/AuditLogs/hooks/useAuditLogsData.mjs +18 -7
  24. package/dist/admin/ee/admin/src/pages/SettingsPage/pages/AuditLogs/hooks/useAuditLogsData.mjs.map +1 -1
  25. package/dist/admin/ee/admin/src/pages/SettingsPage/pages/AuditLogs/utils/getDisplayedFilters.js +23 -26
  26. package/dist/admin/ee/admin/src/pages/SettingsPage/pages/AuditLogs/utils/getDisplayedFilters.js.map +1 -1
  27. package/dist/admin/ee/admin/src/pages/SettingsPage/pages/AuditLogs/utils/getDisplayedFilters.mjs +23 -26
  28. package/dist/admin/ee/admin/src/pages/SettingsPage/pages/AuditLogs/utils/getDisplayedFilters.mjs.map +1 -1
  29. package/dist/admin/ee/admin/src/services/auditLogs.js +10 -1
  30. package/dist/admin/ee/admin/src/services/auditLogs.js.map +1 -1
  31. package/dist/admin/ee/admin/src/services/auditLogs.mjs +10 -2
  32. package/dist/admin/ee/admin/src/services/auditLogs.mjs.map +1 -1
  33. package/dist/admin/shared/utils/auth-cookie-domain.js +42 -0
  34. package/dist/admin/shared/utils/auth-cookie-domain.js.map +1 -0
  35. package/dist/admin/shared/utils/auth-cookie-domain.mjs +39 -0
  36. package/dist/admin/shared/utils/auth-cookie-domain.mjs.map +1 -0
  37. package/dist/admin/shared/utils/auth-cookie-name.js +2 -2
  38. package/dist/admin/shared/utils/auth-cookie-name.js.map +1 -1
  39. package/dist/admin/shared/utils/auth-cookie-name.mjs +2 -2
  40. package/dist/admin/shared/utils/auth-cookie-name.mjs.map +1 -1
  41. package/dist/admin/shared/utils/auth-cookie-path.js +40 -0
  42. package/dist/admin/shared/utils/auth-cookie-path.js.map +1 -0
  43. package/dist/admin/shared/utils/auth-cookie-path.mjs +37 -0
  44. package/dist/admin/shared/utils/auth-cookie-path.mjs.map +1 -0
  45. package/dist/admin/src/utils/cookies.d.ts +21 -0
  46. package/dist/ee/admin/src/pages/SettingsPage/pages/AuditLogs/components/ComboboxFilter.d.ts +6 -1
  47. package/dist/ee/admin/src/pages/SettingsPage/pages/AuditLogs/hooks/useAuditLogsData.d.ts +5 -3
  48. package/dist/ee/admin/src/pages/SettingsPage/pages/AuditLogs/utils/getDisplayedFilters.d.ts +8 -4
  49. package/dist/ee/admin/src/services/auditLogs.d.ts +5 -2
  50. package/dist/ee/server/src/audit-logs/controllers/audit-logs.d.ts +1 -0
  51. package/dist/ee/server/src/audit-logs/controllers/audit-logs.d.ts.map +1 -1
  52. package/dist/ee/server/src/audit-logs/routes/audit-logs.d.ts.map +1 -1
  53. package/dist/ee/server/src/audit-logs/services/audit-logs.d.ts +16 -0
  54. package/dist/ee/server/src/audit-logs/services/audit-logs.d.ts.map +1 -1
  55. package/dist/ee/server/src/audit-logs/validation/audit-logs.d.ts +2 -0
  56. package/dist/ee/server/src/audit-logs/validation/audit-logs.d.ts.map +1 -1
  57. package/dist/ee/server/src/controllers/admin.d.ts.map +1 -1
  58. package/dist/ee/server/src/controllers/authentication-utils/middlewares.d.ts.map +1 -1
  59. package/dist/ee/server/src/index.d.ts +1 -0
  60. package/dist/ee/server/src/index.d.ts.map +1 -1
  61. package/dist/ee/server/src/services/auth.d.ts.map +1 -1
  62. package/dist/ee/server/src/services/user.d.ts.map +1 -1
  63. package/dist/server/ee/server/src/audit-logs/controllers/audit-logs.js +10 -0
  64. package/dist/server/ee/server/src/audit-logs/controllers/audit-logs.js.map +1 -1
  65. package/dist/server/ee/server/src/audit-logs/controllers/audit-logs.mjs +11 -1
  66. package/dist/server/ee/server/src/audit-logs/controllers/audit-logs.mjs.map +1 -1
  67. package/dist/server/ee/server/src/audit-logs/routes/audit-logs.js +24 -32
  68. package/dist/server/ee/server/src/audit-logs/routes/audit-logs.js.map +1 -1
  69. package/dist/server/ee/server/src/audit-logs/routes/audit-logs.mjs +24 -32
  70. package/dist/server/ee/server/src/audit-logs/routes/audit-logs.mjs.map +1 -1
  71. package/dist/server/ee/server/src/audit-logs/services/audit-logs.js +33 -1
  72. package/dist/server/ee/server/src/audit-logs/services/audit-logs.js.map +1 -1
  73. package/dist/server/ee/server/src/audit-logs/services/audit-logs.mjs +33 -1
  74. package/dist/server/ee/server/src/audit-logs/services/audit-logs.mjs.map +1 -1
  75. package/dist/server/ee/server/src/audit-logs/validation/audit-logs.js +8 -0
  76. package/dist/server/ee/server/src/audit-logs/validation/audit-logs.js.map +1 -1
  77. package/dist/server/ee/server/src/audit-logs/validation/audit-logs.mjs +8 -1
  78. package/dist/server/ee/server/src/audit-logs/validation/audit-logs.mjs.map +1 -1
  79. package/dist/server/ee/server/src/controllers/admin.js.map +1 -1
  80. package/dist/server/ee/server/src/controllers/admin.mjs.map +1 -1
  81. package/dist/server/ee/server/src/controllers/authentication-utils/middlewares.js +9 -3
  82. package/dist/server/ee/server/src/controllers/authentication-utils/middlewares.js.map +1 -1
  83. package/dist/server/ee/server/src/controllers/authentication-utils/middlewares.mjs +10 -4
  84. package/dist/server/ee/server/src/controllers/authentication-utils/middlewares.mjs.map +1 -1
  85. package/dist/server/ee/server/src/services/auth.js +5 -5
  86. package/dist/server/ee/server/src/services/auth.js.map +1 -1
  87. package/dist/server/ee/server/src/services/auth.mjs +5 -5
  88. package/dist/server/ee/server/src/services/auth.mjs.map +1 -1
  89. package/dist/server/ee/server/src/services/user.js +1 -0
  90. package/dist/server/ee/server/src/services/user.js.map +1 -1
  91. package/dist/server/ee/server/src/services/user.mjs +1 -0
  92. package/dist/server/ee/server/src/services/user.mjs.map +1 -1
  93. package/dist/server/server/src/content-types/User.js +6 -0
  94. package/dist/server/server/src/content-types/User.js.map +1 -1
  95. package/dist/server/server/src/content-types/User.mjs +6 -0
  96. package/dist/server/server/src/content-types/User.mjs.map +1 -1
  97. package/dist/server/server/src/controllers/authentication.js +12 -10
  98. package/dist/server/server/src/controllers/authentication.js.map +1 -1
  99. package/dist/server/server/src/controllers/authentication.mjs +10 -8
  100. package/dist/server/server/src/controllers/authentication.mjs.map +1 -1
  101. package/dist/server/server/src/routes/serve-admin-panel.js +17 -4
  102. package/dist/server/server/src/routes/serve-admin-panel.js.map +1 -1
  103. package/dist/server/server/src/routes/serve-admin-panel.mjs +17 -4
  104. package/dist/server/server/src/routes/serve-admin-panel.mjs.map +1 -1
  105. package/dist/server/server/src/services/auth.js +51 -6
  106. package/dist/server/server/src/services/auth.js.map +1 -1
  107. package/dist/server/server/src/services/auth.mjs +46 -6
  108. package/dist/server/server/src/services/auth.mjs.map +1 -1
  109. package/dist/server/server/src/services/index.js +1 -1
  110. package/dist/server/server/src/services/index.js.map +1 -1
  111. package/dist/server/server/src/services/user.js +1 -0
  112. package/dist/server/server/src/services/user.js.map +1 -1
  113. package/dist/server/server/src/services/user.mjs +1 -0
  114. package/dist/server/server/src/services/user.mjs.map +1 -1
  115. package/dist/server/shared/utils/auth-cookie-domain.js +42 -0
  116. package/dist/server/shared/utils/auth-cookie-domain.js.map +1 -0
  117. package/dist/server/shared/utils/auth-cookie-domain.mjs +39 -0
  118. package/dist/server/shared/utils/auth-cookie-domain.mjs.map +1 -0
  119. package/dist/server/shared/utils/auth-cookie-name.js +2 -2
  120. package/dist/server/shared/utils/auth-cookie-name.js.map +1 -1
  121. package/dist/server/shared/utils/auth-cookie-name.mjs +2 -2
  122. package/dist/server/shared/utils/auth-cookie-name.mjs.map +1 -1
  123. package/dist/server/shared/utils/auth-cookie-path.js +40 -0
  124. package/dist/server/shared/utils/auth-cookie-path.js.map +1 -0
  125. package/dist/server/shared/utils/auth-cookie-path.mjs +37 -0
  126. package/dist/server/shared/utils/auth-cookie-path.mjs.map +1 -0
  127. package/dist/server/shared/utils/session-auth.js +54 -3
  128. package/dist/server/shared/utils/session-auth.js.map +1 -1
  129. package/dist/server/shared/utils/session-auth.mjs +51 -4
  130. package/dist/server/shared/utils/session-auth.mjs.map +1 -1
  131. package/dist/server/src/content-types/User.d.ts +6 -0
  132. package/dist/server/src/content-types/User.d.ts.map +1 -1
  133. package/dist/server/src/content-types/index.d.ts +6 -0
  134. package/dist/server/src/content-types/index.d.ts.map +1 -1
  135. package/dist/server/src/controllers/authentication.d.ts.map +1 -1
  136. package/dist/server/src/domain/user.d.ts +1 -0
  137. package/dist/server/src/domain/user.d.ts.map +1 -1
  138. package/dist/server/src/index.d.ts +6 -0
  139. package/dist/server/src/index.d.ts.map +1 -1
  140. package/dist/server/src/routes/serve-admin-panel.d.ts.map +1 -1
  141. package/dist/server/src/services/auth.d.ts +18 -0
  142. package/dist/server/src/services/auth.d.ts.map +1 -1
  143. package/dist/server/src/services/index.d.ts.map +1 -1
  144. package/dist/server/src/services/user.d.ts.map +1 -1
  145. package/dist/shared/contracts/api-token.d.ts +2 -2
  146. package/dist/shared/contracts/api-token.d.ts.map +1 -1
  147. package/dist/shared/contracts/audit-logs.d.ts +19 -1
  148. package/dist/shared/contracts/audit-logs.d.ts.map +1 -1
  149. package/dist/shared/contracts/authentication.d.ts +1 -1
  150. package/dist/shared/contracts/authentication.d.ts.map +1 -1
  151. package/dist/shared/contracts/homepage.d.ts +2 -2
  152. package/dist/shared/contracts/homepage.d.ts.map +1 -1
  153. package/dist/shared/contracts/shared.d.ts +2 -1
  154. package/dist/shared/contracts/shared.d.ts.map +1 -1
  155. package/dist/shared/contracts/user.d.ts +1 -1
  156. package/dist/shared/contracts/user.d.ts.map +1 -1
  157. package/dist/shared/utils/__tests__/auth-cookie-domain.test.d.ts +1 -0
  158. package/dist/shared/utils/__tests__/auth-cookie-domain.test.d.ts.map +1 -0
  159. package/dist/shared/utils/__tests__/auth-cookie-path.test.d.ts +1 -0
  160. package/dist/shared/utils/__tests__/auth-cookie-path.test.d.ts.map +1 -0
  161. package/dist/shared/utils/auth-cookie-domain.d.ts +21 -0
  162. package/dist/shared/utils/auth-cookie-domain.d.ts.map +1 -0
  163. package/dist/shared/utils/auth-cookie-name.d.ts +1 -1
  164. package/dist/shared/utils/auth-cookie-name.d.ts.map +1 -1
  165. package/dist/shared/utils/auth-cookie-path.d.ts +17 -0
  166. package/dist/shared/utils/auth-cookie-path.d.ts.map +1 -0
  167. package/dist/shared/utils/session-auth.d.ts +15 -0
  168. package/dist/shared/utils/session-auth.d.ts.map +1 -1
  169. package/package.json +10 -10
@@ -1,11 +1,54 @@
1
1
  'use strict';
2
2
 
3
+ var authCookieDomain = require('../../../shared/utils/auth-cookie-domain.js');
3
4
  var authCookieName = require('../../../shared/utils/auth-cookie-name.js');
5
+ var authCookiePath = require('../../../shared/utils/auth-cookie-path.js');
4
6
 
5
7
  /**
6
8
  * Resolved once at module load: the build inlines `admin.auth.cookie.name`
7
9
  * into the bundle as `STRAPI_ADMIN_AUTH_COOKIE_NAME`.
8
10
  */ const AUTH_COOKIE_NAME = authCookieName.resolveAuthCookieName(process.env.STRAPI_ADMIN_AUTH_COOKIE_NAME);
11
+ /**
12
+ * Resolved once at module load: the build inlines `admin.auth.cookie.path`
13
+ * into the bundle as `STRAPI_ADMIN_AUTH_COOKIE_PATH`.
14
+ */ const AUTH_COOKIE_PATH = authCookiePath.resolveAuthCookiePath(process.env.STRAPI_ADMIN_AUTH_COOKIE_PATH);
15
+ /**
16
+ * Resolved once at module load: the build inlines `admin.auth.cookie.domain`
17
+ * into the bundle as `STRAPI_ADMIN_AUTH_COOKIE_DOMAIN`. `undefined` means the
18
+ * cookie is host-only.
19
+ */ const AUTH_COOKIE_DOMAIN = authCookieDomain.resolveAuthCookieDomain(process.env.STRAPI_ADMIN_AUTH_COOKIE_DOMAIN);
20
+ /** Paths previously used by the client for the access cookie; cleared on set/delete. */ const LEGACY_AUTH_COOKIE_PATHS = [
21
+ '/'
22
+ ];
23
+ const expireCookieAt = (name, path, domain)=>{
24
+ const domainAttr = domain ? `; Domain=${domain}` : '';
25
+ document.cookie = `${name}=; Path=${path}${domainAttr}; Expires=Thu, 01 Jan 1970 00:00:01 GMT;`;
26
+ };
27
+ /**
28
+ * Every `(path, domain)` key the access cookie may live under: the configured
29
+ * key plus the legacy-path and host-only variants written by older versions or
30
+ * previous configs. The browser cookie store keys entries by
31
+ * `(name, domain, path)`, so each combination is a distinct entry.
32
+ */ const cookieKeyMatrix = ()=>{
33
+ const paths = new Set([
34
+ AUTH_COOKIE_PATH,
35
+ ...LEGACY_AUTH_COOKIE_PATHS
36
+ ]);
37
+ const domains = new Set([
38
+ undefined,
39
+ AUTH_COOKIE_DOMAIN
40
+ ]);
41
+ const matrix = [];
42
+ for (const path of paths){
43
+ for (const domain of domains){
44
+ matrix.push({
45
+ path,
46
+ domain
47
+ });
48
+ }
49
+ }
50
+ return matrix;
51
+ };
9
52
  /**
10
53
  * Retrieves the value of a specified cookie.
11
54
  *
@@ -24,23 +67,55 @@ var authCookieName = require('../../../shared/utils/auth-cookie-name.js');
24
67
  };
25
68
  /**
26
69
  * Sets a cookie with the given name, value, and optional expiration time.
70
+ * Uses `admin.auth.cookie.path` and `admin.auth.cookie.domain` (both inlined
71
+ * at build time) so the access cookie stays scoped to the same path and domain
72
+ * as the httpOnly refresh cookie and the EE SSO access cookie. The cookie is
73
+ * marked `Secure` whenever the page is served over TLS.
27
74
  *
28
75
  * @param name - The name of the cookie.
29
76
  * @param value - The value of the cookie.
30
77
  * @param days - (Optional) Number of days until the cookie expires. If omitted, the cookie is a session cookie.
31
78
  */ const setCookie = (name, value, days)=>{
32
79
  let expires = '';
33
- document.cookie = `${name}=${encodeURIComponent(value)}; Path=/${expires}`;
80
+ // Expire every other key the cookie may live under (legacy Path=/, host-only
81
+ // copies written before a domain was configured). A stale same-name entry at
82
+ // an equal-length path sorts first in document.cookie by creation time
83
+ // (RFC 6265 §5.4), so leaving one behind would shadow the token written below.
84
+ for (const { path, domain } of cookieKeyMatrix()){
85
+ if (path !== AUTH_COOKIE_PATH || domain !== AUTH_COOKIE_DOMAIN) {
86
+ expireCookieAt(name, path, domain);
87
+ }
88
+ }
89
+ const domainAttr = AUTH_COOKIE_DOMAIN ? `; Domain=${AUTH_COOKIE_DOMAIN}` : '';
90
+ // Mark the token Secure when the page itself is served over TLS — the
91
+ // browser's own criterion — so it is never attached to plain-http requests.
92
+ // Expiry writes stay flag-free on purpose: deletion targets the (name,
93
+ // domain, path) key regardless of Secure, and from an http origin a
94
+ // flag-free write can still clear non-Secure entries (no origin can carry
95
+ // the Secure flag over http, and Secure entries are untouchable from there
96
+ // either way).
97
+ const secureAttr = window.location.protocol === 'https:' ? '; Secure' : '';
98
+ document.cookie = `${name}=${encodeURIComponent(value)}; Path=${AUTH_COOKIE_PATH}${domainAttr}${expires}${secureAttr}`;
34
99
  };
35
100
  /**
36
101
  * Deletes a cookie by setting its expiration date to a past date.
37
102
  *
103
+ * Expires every combination of {configured path, legacy Path=/} and
104
+ * {configured domain, host-only}. A `Domain`-scoped cookie is a distinct entry
105
+ * from a host-only one in the browser cookie store, so both must be cleared or
106
+ * remote logout leaves the EE SSO cookie (written with `Domain` by the server)
107
+ * behind, rehydrating a dead session into an infinite login redirect.
108
+ *
38
109
  * @param name - The name of the cookie to delete.
39
110
  */ const deleteCookie = (name)=>{
40
- document.cookie = `${name}=; Path=/; Expires=Thu, 01 Jan 1970 00:00:01 GMT;`;
111
+ for (const { path, domain } of cookieKeyMatrix()){
112
+ expireCookieAt(name, path, domain);
113
+ }
41
114
  };
42
115
 
116
+ exports.AUTH_COOKIE_DOMAIN = AUTH_COOKIE_DOMAIN;
43
117
  exports.AUTH_COOKIE_NAME = AUTH_COOKIE_NAME;
118
+ exports.AUTH_COOKIE_PATH = AUTH_COOKIE_PATH;
44
119
  exports.deleteCookie = deleteCookie;
45
120
  exports.getCookieValue = getCookieValue;
46
121
  exports.setCookie = setCookie;
@@ -1 +1 @@
1
- {"version":3,"file":"cookies.js","sources":["../../../../../admin/src/utils/cookies.ts"],"sourcesContent":["import { resolveAuthCookieName } from '../../../shared/utils/auth-cookie-name';\n\n/**\n * Resolved once at module load: the build inlines `admin.auth.cookie.name`\n * into the bundle as `STRAPI_ADMIN_AUTH_COOKIE_NAME`.\n */\nexport const AUTH_COOKIE_NAME = resolveAuthCookieName(process.env.STRAPI_ADMIN_AUTH_COOKIE_NAME);\n\n/**\n * Retrieves the value of a specified cookie.\n *\n * @param name - The name of the cookie to retrieve.\n * @returns The decoded cookie value if found, otherwise null.\n */\nexport const getCookieValue = (name: string): string | null => {\n let result = null;\n const cookieArray = document.cookie.split(';');\n cookieArray.forEach((cookie) => {\n const [key, value] = cookie.split('=').map((item) => item.trim());\n if (key === name) {\n result = decodeURIComponent(value);\n }\n });\n return result;\n};\n\n/**\n * Sets a cookie with the given name, value, and optional expiration time.\n *\n * @param name - The name of the cookie.\n * @param value - The value of the cookie.\n * @param days - (Optional) Number of days until the cookie expires. If omitted, the cookie is a session cookie.\n */\nexport const setCookie = (name: string, value: string, days?: number): void => {\n let expires = '';\n if (days) {\n const date = new Date();\n date.setTime(date.getTime() + days * 24 * 60 * 60 * 1000);\n expires = `; Expires=${date.toUTCString()}`;\n }\n document.cookie = `${name}=${encodeURIComponent(value)}; Path=/${expires}`;\n};\n\n/**\n * Deletes a cookie by setting its expiration date to a past date.\n *\n * @param name - The name of the cookie to delete.\n */\nexport const deleteCookie = (name: string): void => {\n document.cookie = `${name}=; Path=/; Expires=Thu, 01 Jan 1970 00:00:01 GMT;`;\n};\n"],"names":["AUTH_COOKIE_NAME","resolveAuthCookieName","process","env","STRAPI_ADMIN_AUTH_COOKIE_NAME","getCookieValue","name","result","cookieArray","document","cookie","split","forEach","key","value","map","item","trim","decodeURIComponent","setCookie","days","expires","encodeURIComponent","deleteCookie"],"mappings":";;;;AAEA;;;UAIaA,gBAAAA,GAAmBC,oCAAAA,CAAsBC,QAAQC,GAAG,CAACC,6BAA6B;AAE/F;;;;;IAMO,MAAMC,cAAAA,GAAiB,CAACC,IAAAA,GAAAA;AAC7B,IAAA,IAAIC,MAAAA,GAAS,IAAA;AACb,IAAA,MAAMC,WAAAA,GAAcC,QAAAA,CAASC,MAAM,CAACC,KAAK,CAAC,GAAA,CAAA;IAC1CH,WAAAA,CAAYI,OAAO,CAAC,CAACF,MAAAA,GAAAA;AACnB,QAAA,MAAM,CAACG,GAAAA,EAAKC,KAAAA,CAAM,GAAGJ,MAAAA,CAAOC,KAAK,CAAC,GAAA,CAAA,CAAKI,GAAG,CAAC,CAACC,IAAAA,GAASA,KAAKC,IAAI,EAAA,CAAA;AAC9D,QAAA,IAAIJ,QAAQP,IAAAA,EAAM;AAChBC,YAAAA,MAAAA,GAASW,kBAAAA,CAAmBJ,KAAAA,CAAAA;AAC9B,QAAA;AACF,IAAA,CAAA,CAAA;IACA,OAAOP,MAAAA;AACT;AAEA;;;;;;AAMC,IACM,MAAMY,SAAAA,GAAY,CAACb,MAAcQ,KAAAA,EAAeM,IAAAA,GAAAA;AACrD,IAAA,IAAIC,OAAAA,GAAU,EAAA;IAMdZ,QAAAA,CAASC,MAAM,GAAG,CAAA,EAAGJ,IAAAA,CAAK,CAAC,EAAEgB,kBAAAA,CAAmBR,KAAAA,CAAAA,CAAO,QAAQ,EAAEO,OAAAA,CAAAA,CAAS;AAC5E;AAEA;;;;IAKO,MAAME,YAAAA,GAAe,CAACjB,IAAAA,GAAAA;AAC3BG,IAAAA,QAAAA,CAASC,MAAM,GAAG,CAAA,EAAGJ,IAAAA,CAAK,iDAAiD,CAAC;AAC9E;;;;;;;"}
1
+ {"version":3,"file":"cookies.js","sources":["../../../../../admin/src/utils/cookies.ts"],"sourcesContent":["import { resolveAuthCookieDomain } from '../../../shared/utils/auth-cookie-domain';\nimport { resolveAuthCookieName } from '../../../shared/utils/auth-cookie-name';\nimport { resolveAuthCookiePath } from '../../../shared/utils/auth-cookie-path';\n\n/**\n * Resolved once at module load: the build inlines `admin.auth.cookie.name`\n * into the bundle as `STRAPI_ADMIN_AUTH_COOKIE_NAME`.\n */\nexport const AUTH_COOKIE_NAME = resolveAuthCookieName(process.env.STRAPI_ADMIN_AUTH_COOKIE_NAME);\n\n/**\n * Resolved once at module load: the build inlines `admin.auth.cookie.path`\n * into the bundle as `STRAPI_ADMIN_AUTH_COOKIE_PATH`.\n */\nexport const AUTH_COOKIE_PATH = resolveAuthCookiePath(process.env.STRAPI_ADMIN_AUTH_COOKIE_PATH);\n\n/**\n * Resolved once at module load: the build inlines `admin.auth.cookie.domain`\n * into the bundle as `STRAPI_ADMIN_AUTH_COOKIE_DOMAIN`. `undefined` means the\n * cookie is host-only.\n */\nexport const AUTH_COOKIE_DOMAIN = resolveAuthCookieDomain(\n process.env.STRAPI_ADMIN_AUTH_COOKIE_DOMAIN\n);\n\n/** Paths previously used by the client for the access cookie; cleared on set/delete. */\nconst LEGACY_AUTH_COOKIE_PATHS = ['/'] as const;\n\nconst expireCookieAt = (name: string, path: string, domain?: string): void => {\n const domainAttr = domain ? `; Domain=${domain}` : '';\n document.cookie = `${name}=; Path=${path}${domainAttr}; Expires=Thu, 01 Jan 1970 00:00:01 GMT;`;\n};\n\n/**\n * Every `(path, domain)` key the access cookie may live under: the configured\n * key plus the legacy-path and host-only variants written by older versions or\n * previous configs. The browser cookie store keys entries by\n * `(name, domain, path)`, so each combination is a distinct entry.\n */\nconst cookieKeyMatrix = (): Array<{ path: string; domain: string | undefined }> => {\n const paths = new Set<string>([AUTH_COOKIE_PATH, ...LEGACY_AUTH_COOKIE_PATHS]);\n const domains = new Set<string | undefined>([undefined, AUTH_COOKIE_DOMAIN]);\n\n const matrix: Array<{ path: string; domain: string | undefined }> = [];\n for (const path of paths) {\n for (const domain of domains) {\n matrix.push({ path, domain });\n }\n }\n return matrix;\n};\n\n/**\n * Retrieves the value of a specified cookie.\n *\n * @param name - The name of the cookie to retrieve.\n * @returns The decoded cookie value if found, otherwise null.\n */\nexport const getCookieValue = (name: string): string | null => {\n let result = null;\n const cookieArray = document.cookie.split(';');\n cookieArray.forEach((cookie) => {\n const [key, value] = cookie.split('=').map((item) => item.trim());\n if (key === name) {\n result = decodeURIComponent(value);\n }\n });\n return result;\n};\n\n/**\n * Sets a cookie with the given name, value, and optional expiration time.\n * Uses `admin.auth.cookie.path` and `admin.auth.cookie.domain` (both inlined\n * at build time) so the access cookie stays scoped to the same path and domain\n * as the httpOnly refresh cookie and the EE SSO access cookie. The cookie is\n * marked `Secure` whenever the page is served over TLS.\n *\n * @param name - The name of the cookie.\n * @param value - The value of the cookie.\n * @param days - (Optional) Number of days until the cookie expires. If omitted, the cookie is a session cookie.\n */\nexport const setCookie = (name: string, value: string, days?: number): void => {\n let expires = '';\n if (days) {\n const date = new Date();\n date.setTime(date.getTime() + days * 24 * 60 * 60 * 1000);\n expires = `; Expires=${date.toUTCString()}`;\n }\n\n // Expire every other key the cookie may live under (legacy Path=/, host-only\n // copies written before a domain was configured). A stale same-name entry at\n // an equal-length path sorts first in document.cookie by creation time\n // (RFC 6265 §5.4), so leaving one behind would shadow the token written below.\n for (const { path, domain } of cookieKeyMatrix()) {\n if (path !== AUTH_COOKIE_PATH || domain !== AUTH_COOKIE_DOMAIN) {\n expireCookieAt(name, path, domain);\n }\n }\n\n const domainAttr = AUTH_COOKIE_DOMAIN ? `; Domain=${AUTH_COOKIE_DOMAIN}` : '';\n // Mark the token Secure when the page itself is served over TLS — the\n // browser's own criterion — so it is never attached to plain-http requests.\n // Expiry writes stay flag-free on purpose: deletion targets the (name,\n // domain, path) key regardless of Secure, and from an http origin a\n // flag-free write can still clear non-Secure entries (no origin can carry\n // the Secure flag over http, and Secure entries are untouchable from there\n // either way).\n const secureAttr = window.location.protocol === 'https:' ? '; Secure' : '';\n document.cookie = `${name}=${encodeURIComponent(value)}; Path=${AUTH_COOKIE_PATH}${domainAttr}${expires}${secureAttr}`;\n};\n\n/**\n * Deletes a cookie by setting its expiration date to a past date.\n *\n * Expires every combination of {configured path, legacy Path=/} and\n * {configured domain, host-only}. A `Domain`-scoped cookie is a distinct entry\n * from a host-only one in the browser cookie store, so both must be cleared or\n * remote logout leaves the EE SSO cookie (written with `Domain` by the server)\n * behind, rehydrating a dead session into an infinite login redirect.\n *\n * @param name - The name of the cookie to delete.\n */\nexport const deleteCookie = (name: string): void => {\n for (const { path, domain } of cookieKeyMatrix()) {\n expireCookieAt(name, path, domain);\n }\n};\n"],"names":["AUTH_COOKIE_NAME","resolveAuthCookieName","process","env","STRAPI_ADMIN_AUTH_COOKIE_NAME","AUTH_COOKIE_PATH","resolveAuthCookiePath","STRAPI_ADMIN_AUTH_COOKIE_PATH","AUTH_COOKIE_DOMAIN","resolveAuthCookieDomain","STRAPI_ADMIN_AUTH_COOKIE_DOMAIN","LEGACY_AUTH_COOKIE_PATHS","expireCookieAt","name","path","domain","domainAttr","document","cookie","cookieKeyMatrix","paths","Set","domains","undefined","matrix","push","getCookieValue","result","cookieArray","split","forEach","key","value","map","item","trim","decodeURIComponent","setCookie","days","expires","secureAttr","window","location","protocol","encodeURIComponent","deleteCookie"],"mappings":"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"}
@@ -1,9 +1,52 @@
1
+ import { resolveAuthCookieDomain } from '../../../shared/utils/auth-cookie-domain.mjs';
1
2
  import { resolveAuthCookieName } from '../../../shared/utils/auth-cookie-name.mjs';
3
+ import { resolveAuthCookiePath } from '../../../shared/utils/auth-cookie-path.mjs';
2
4
 
3
5
  /**
4
6
  * Resolved once at module load: the build inlines `admin.auth.cookie.name`
5
7
  * into the bundle as `STRAPI_ADMIN_AUTH_COOKIE_NAME`.
6
8
  */ const AUTH_COOKIE_NAME = resolveAuthCookieName(process.env.STRAPI_ADMIN_AUTH_COOKIE_NAME);
9
+ /**
10
+ * Resolved once at module load: the build inlines `admin.auth.cookie.path`
11
+ * into the bundle as `STRAPI_ADMIN_AUTH_COOKIE_PATH`.
12
+ */ const AUTH_COOKIE_PATH = resolveAuthCookiePath(process.env.STRAPI_ADMIN_AUTH_COOKIE_PATH);
13
+ /**
14
+ * Resolved once at module load: the build inlines `admin.auth.cookie.domain`
15
+ * into the bundle as `STRAPI_ADMIN_AUTH_COOKIE_DOMAIN`. `undefined` means the
16
+ * cookie is host-only.
17
+ */ const AUTH_COOKIE_DOMAIN = resolveAuthCookieDomain(process.env.STRAPI_ADMIN_AUTH_COOKIE_DOMAIN);
18
+ /** Paths previously used by the client for the access cookie; cleared on set/delete. */ const LEGACY_AUTH_COOKIE_PATHS = [
19
+ '/'
20
+ ];
21
+ const expireCookieAt = (name, path, domain)=>{
22
+ const domainAttr = domain ? `; Domain=${domain}` : '';
23
+ document.cookie = `${name}=; Path=${path}${domainAttr}; Expires=Thu, 01 Jan 1970 00:00:01 GMT;`;
24
+ };
25
+ /**
26
+ * Every `(path, domain)` key the access cookie may live under: the configured
27
+ * key plus the legacy-path and host-only variants written by older versions or
28
+ * previous configs. The browser cookie store keys entries by
29
+ * `(name, domain, path)`, so each combination is a distinct entry.
30
+ */ const cookieKeyMatrix = ()=>{
31
+ const paths = new Set([
32
+ AUTH_COOKIE_PATH,
33
+ ...LEGACY_AUTH_COOKIE_PATHS
34
+ ]);
35
+ const domains = new Set([
36
+ undefined,
37
+ AUTH_COOKIE_DOMAIN
38
+ ]);
39
+ const matrix = [];
40
+ for (const path of paths){
41
+ for (const domain of domains){
42
+ matrix.push({
43
+ path,
44
+ domain
45
+ });
46
+ }
47
+ }
48
+ return matrix;
49
+ };
7
50
  /**
8
51
  * Retrieves the value of a specified cookie.
9
52
  *
@@ -22,21 +65,51 @@ import { resolveAuthCookieName } from '../../../shared/utils/auth-cookie-name.mj
22
65
  };
23
66
  /**
24
67
  * Sets a cookie with the given name, value, and optional expiration time.
68
+ * Uses `admin.auth.cookie.path` and `admin.auth.cookie.domain` (both inlined
69
+ * at build time) so the access cookie stays scoped to the same path and domain
70
+ * as the httpOnly refresh cookie and the EE SSO access cookie. The cookie is
71
+ * marked `Secure` whenever the page is served over TLS.
25
72
  *
26
73
  * @param name - The name of the cookie.
27
74
  * @param value - The value of the cookie.
28
75
  * @param days - (Optional) Number of days until the cookie expires. If omitted, the cookie is a session cookie.
29
76
  */ const setCookie = (name, value, days)=>{
30
77
  let expires = '';
31
- document.cookie = `${name}=${encodeURIComponent(value)}; Path=/${expires}`;
78
+ // Expire every other key the cookie may live under (legacy Path=/, host-only
79
+ // copies written before a domain was configured). A stale same-name entry at
80
+ // an equal-length path sorts first in document.cookie by creation time
81
+ // (RFC 6265 §5.4), so leaving one behind would shadow the token written below.
82
+ for (const { path, domain } of cookieKeyMatrix()){
83
+ if (path !== AUTH_COOKIE_PATH || domain !== AUTH_COOKIE_DOMAIN) {
84
+ expireCookieAt(name, path, domain);
85
+ }
86
+ }
87
+ const domainAttr = AUTH_COOKIE_DOMAIN ? `; Domain=${AUTH_COOKIE_DOMAIN}` : '';
88
+ // Mark the token Secure when the page itself is served over TLS — the
89
+ // browser's own criterion — so it is never attached to plain-http requests.
90
+ // Expiry writes stay flag-free on purpose: deletion targets the (name,
91
+ // domain, path) key regardless of Secure, and from an http origin a
92
+ // flag-free write can still clear non-Secure entries (no origin can carry
93
+ // the Secure flag over http, and Secure entries are untouchable from there
94
+ // either way).
95
+ const secureAttr = window.location.protocol === 'https:' ? '; Secure' : '';
96
+ document.cookie = `${name}=${encodeURIComponent(value)}; Path=${AUTH_COOKIE_PATH}${domainAttr}${expires}${secureAttr}`;
32
97
  };
33
98
  /**
34
99
  * Deletes a cookie by setting its expiration date to a past date.
35
100
  *
101
+ * Expires every combination of {configured path, legacy Path=/} and
102
+ * {configured domain, host-only}. A `Domain`-scoped cookie is a distinct entry
103
+ * from a host-only one in the browser cookie store, so both must be cleared or
104
+ * remote logout leaves the EE SSO cookie (written with `Domain` by the server)
105
+ * behind, rehydrating a dead session into an infinite login redirect.
106
+ *
36
107
  * @param name - The name of the cookie to delete.
37
108
  */ const deleteCookie = (name)=>{
38
- document.cookie = `${name}=; Path=/; Expires=Thu, 01 Jan 1970 00:00:01 GMT;`;
109
+ for (const { path, domain } of cookieKeyMatrix()){
110
+ expireCookieAt(name, path, domain);
111
+ }
39
112
  };
40
113
 
41
- export { AUTH_COOKIE_NAME, deleteCookie, getCookieValue, setCookie };
114
+ export { AUTH_COOKIE_DOMAIN, AUTH_COOKIE_NAME, AUTH_COOKIE_PATH, deleteCookie, getCookieValue, setCookie };
42
115
  //# sourceMappingURL=cookies.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"cookies.mjs","sources":["../../../../../admin/src/utils/cookies.ts"],"sourcesContent":["import { resolveAuthCookieName } from '../../../shared/utils/auth-cookie-name';\n\n/**\n * Resolved once at module load: the build inlines `admin.auth.cookie.name`\n * into the bundle as `STRAPI_ADMIN_AUTH_COOKIE_NAME`.\n */\nexport const AUTH_COOKIE_NAME = resolveAuthCookieName(process.env.STRAPI_ADMIN_AUTH_COOKIE_NAME);\n\n/**\n * Retrieves the value of a specified cookie.\n *\n * @param name - The name of the cookie to retrieve.\n * @returns The decoded cookie value if found, otherwise null.\n */\nexport const getCookieValue = (name: string): string | null => {\n let result = null;\n const cookieArray = document.cookie.split(';');\n cookieArray.forEach((cookie) => {\n const [key, value] = cookie.split('=').map((item) => item.trim());\n if (key === name) {\n result = decodeURIComponent(value);\n }\n });\n return result;\n};\n\n/**\n * Sets a cookie with the given name, value, and optional expiration time.\n *\n * @param name - The name of the cookie.\n * @param value - The value of the cookie.\n * @param days - (Optional) Number of days until the cookie expires. If omitted, the cookie is a session cookie.\n */\nexport const setCookie = (name: string, value: string, days?: number): void => {\n let expires = '';\n if (days) {\n const date = new Date();\n date.setTime(date.getTime() + days * 24 * 60 * 60 * 1000);\n expires = `; Expires=${date.toUTCString()}`;\n }\n document.cookie = `${name}=${encodeURIComponent(value)}; Path=/${expires}`;\n};\n\n/**\n * Deletes a cookie by setting its expiration date to a past date.\n *\n * @param name - The name of the cookie to delete.\n */\nexport const deleteCookie = (name: string): void => {\n document.cookie = `${name}=; Path=/; Expires=Thu, 01 Jan 1970 00:00:01 GMT;`;\n};\n"],"names":["AUTH_COOKIE_NAME","resolveAuthCookieName","process","env","STRAPI_ADMIN_AUTH_COOKIE_NAME","getCookieValue","name","result","cookieArray","document","cookie","split","forEach","key","value","map","item","trim","decodeURIComponent","setCookie","days","expires","encodeURIComponent","deleteCookie"],"mappings":";;AAEA;;;UAIaA,gBAAAA,GAAmBC,qBAAAA,CAAsBC,QAAQC,GAAG,CAACC,6BAA6B;AAE/F;;;;;IAMO,MAAMC,cAAAA,GAAiB,CAACC,IAAAA,GAAAA;AAC7B,IAAA,IAAIC,MAAAA,GAAS,IAAA;AACb,IAAA,MAAMC,WAAAA,GAAcC,QAAAA,CAASC,MAAM,CAACC,KAAK,CAAC,GAAA,CAAA;IAC1CH,WAAAA,CAAYI,OAAO,CAAC,CAACF,MAAAA,GAAAA;AACnB,QAAA,MAAM,CAACG,GAAAA,EAAKC,KAAAA,CAAM,GAAGJ,MAAAA,CAAOC,KAAK,CAAC,GAAA,CAAA,CAAKI,GAAG,CAAC,CAACC,IAAAA,GAASA,KAAKC,IAAI,EAAA,CAAA;AAC9D,QAAA,IAAIJ,QAAQP,IAAAA,EAAM;AAChBC,YAAAA,MAAAA,GAASW,kBAAAA,CAAmBJ,KAAAA,CAAAA;AAC9B,QAAA;AACF,IAAA,CAAA,CAAA;IACA,OAAOP,MAAAA;AACT;AAEA;;;;;;AAMC,IACM,MAAMY,SAAAA,GAAY,CAACb,MAAcQ,KAAAA,EAAeM,IAAAA,GAAAA;AACrD,IAAA,IAAIC,OAAAA,GAAU,EAAA;IAMdZ,QAAAA,CAASC,MAAM,GAAG,CAAA,EAAGJ,IAAAA,CAAK,CAAC,EAAEgB,kBAAAA,CAAmBR,KAAAA,CAAAA,CAAO,QAAQ,EAAEO,OAAAA,CAAAA,CAAS;AAC5E;AAEA;;;;IAKO,MAAME,YAAAA,GAAe,CAACjB,IAAAA,GAAAA;AAC3BG,IAAAA,QAAAA,CAASC,MAAM,GAAG,CAAA,EAAGJ,IAAAA,CAAK,iDAAiD,CAAC;AAC9E;;;;"}
1
+ {"version":3,"file":"cookies.mjs","sources":["../../../../../admin/src/utils/cookies.ts"],"sourcesContent":["import { resolveAuthCookieDomain } from '../../../shared/utils/auth-cookie-domain';\nimport { resolveAuthCookieName } from '../../../shared/utils/auth-cookie-name';\nimport { resolveAuthCookiePath } from '../../../shared/utils/auth-cookie-path';\n\n/**\n * Resolved once at module load: the build inlines `admin.auth.cookie.name`\n * into the bundle as `STRAPI_ADMIN_AUTH_COOKIE_NAME`.\n */\nexport const AUTH_COOKIE_NAME = resolveAuthCookieName(process.env.STRAPI_ADMIN_AUTH_COOKIE_NAME);\n\n/**\n * Resolved once at module load: the build inlines `admin.auth.cookie.path`\n * into the bundle as `STRAPI_ADMIN_AUTH_COOKIE_PATH`.\n */\nexport const AUTH_COOKIE_PATH = resolveAuthCookiePath(process.env.STRAPI_ADMIN_AUTH_COOKIE_PATH);\n\n/**\n * Resolved once at module load: the build inlines `admin.auth.cookie.domain`\n * into the bundle as `STRAPI_ADMIN_AUTH_COOKIE_DOMAIN`. `undefined` means the\n * cookie is host-only.\n */\nexport const AUTH_COOKIE_DOMAIN = resolveAuthCookieDomain(\n process.env.STRAPI_ADMIN_AUTH_COOKIE_DOMAIN\n);\n\n/** Paths previously used by the client for the access cookie; cleared on set/delete. */\nconst LEGACY_AUTH_COOKIE_PATHS = ['/'] as const;\n\nconst expireCookieAt = (name: string, path: string, domain?: string): void => {\n const domainAttr = domain ? `; Domain=${domain}` : '';\n document.cookie = `${name}=; Path=${path}${domainAttr}; Expires=Thu, 01 Jan 1970 00:00:01 GMT;`;\n};\n\n/**\n * Every `(path, domain)` key the access cookie may live under: the configured\n * key plus the legacy-path and host-only variants written by older versions or\n * previous configs. The browser cookie store keys entries by\n * `(name, domain, path)`, so each combination is a distinct entry.\n */\nconst cookieKeyMatrix = (): Array<{ path: string; domain: string | undefined }> => {\n const paths = new Set<string>([AUTH_COOKIE_PATH, ...LEGACY_AUTH_COOKIE_PATHS]);\n const domains = new Set<string | undefined>([undefined, AUTH_COOKIE_DOMAIN]);\n\n const matrix: Array<{ path: string; domain: string | undefined }> = [];\n for (const path of paths) {\n for (const domain of domains) {\n matrix.push({ path, domain });\n }\n }\n return matrix;\n};\n\n/**\n * Retrieves the value of a specified cookie.\n *\n * @param name - The name of the cookie to retrieve.\n * @returns The decoded cookie value if found, otherwise null.\n */\nexport const getCookieValue = (name: string): string | null => {\n let result = null;\n const cookieArray = document.cookie.split(';');\n cookieArray.forEach((cookie) => {\n const [key, value] = cookie.split('=').map((item) => item.trim());\n if (key === name) {\n result = decodeURIComponent(value);\n }\n });\n return result;\n};\n\n/**\n * Sets a cookie with the given name, value, and optional expiration time.\n * Uses `admin.auth.cookie.path` and `admin.auth.cookie.domain` (both inlined\n * at build time) so the access cookie stays scoped to the same path and domain\n * as the httpOnly refresh cookie and the EE SSO access cookie. The cookie is\n * marked `Secure` whenever the page is served over TLS.\n *\n * @param name - The name of the cookie.\n * @param value - The value of the cookie.\n * @param days - (Optional) Number of days until the cookie expires. If omitted, the cookie is a session cookie.\n */\nexport const setCookie = (name: string, value: string, days?: number): void => {\n let expires = '';\n if (days) {\n const date = new Date();\n date.setTime(date.getTime() + days * 24 * 60 * 60 * 1000);\n expires = `; Expires=${date.toUTCString()}`;\n }\n\n // Expire every other key the cookie may live under (legacy Path=/, host-only\n // copies written before a domain was configured). A stale same-name entry at\n // an equal-length path sorts first in document.cookie by creation time\n // (RFC 6265 §5.4), so leaving one behind would shadow the token written below.\n for (const { path, domain } of cookieKeyMatrix()) {\n if (path !== AUTH_COOKIE_PATH || domain !== AUTH_COOKIE_DOMAIN) {\n expireCookieAt(name, path, domain);\n }\n }\n\n const domainAttr = AUTH_COOKIE_DOMAIN ? `; Domain=${AUTH_COOKIE_DOMAIN}` : '';\n // Mark the token Secure when the page itself is served over TLS — the\n // browser's own criterion — so it is never attached to plain-http requests.\n // Expiry writes stay flag-free on purpose: deletion targets the (name,\n // domain, path) key regardless of Secure, and from an http origin a\n // flag-free write can still clear non-Secure entries (no origin can carry\n // the Secure flag over http, and Secure entries are untouchable from there\n // either way).\n const secureAttr = window.location.protocol === 'https:' ? '; Secure' : '';\n document.cookie = `${name}=${encodeURIComponent(value)}; Path=${AUTH_COOKIE_PATH}${domainAttr}${expires}${secureAttr}`;\n};\n\n/**\n * Deletes a cookie by setting its expiration date to a past date.\n *\n * Expires every combination of {configured path, legacy Path=/} and\n * {configured domain, host-only}. A `Domain`-scoped cookie is a distinct entry\n * from a host-only one in the browser cookie store, so both must be cleared or\n * remote logout leaves the EE SSO cookie (written with `Domain` by the server)\n * behind, rehydrating a dead session into an infinite login redirect.\n *\n * @param name - The name of the cookie to delete.\n */\nexport const deleteCookie = (name: string): void => {\n for (const { path, domain } of cookieKeyMatrix()) {\n expireCookieAt(name, path, domain);\n }\n};\n"],"names":["AUTH_COOKIE_NAME","resolveAuthCookieName","process","env","STRAPI_ADMIN_AUTH_COOKIE_NAME","AUTH_COOKIE_PATH","resolveAuthCookiePath","STRAPI_ADMIN_AUTH_COOKIE_PATH","AUTH_COOKIE_DOMAIN","resolveAuthCookieDomain","STRAPI_ADMIN_AUTH_COOKIE_DOMAIN","LEGACY_AUTH_COOKIE_PATHS","expireCookieAt","name","path","domain","domainAttr","document","cookie","cookieKeyMatrix","paths","Set","domains","undefined","matrix","push","getCookieValue","result","cookieArray","split","forEach","key","value","map","item","trim","decodeURIComponent","setCookie","days","expires","secureAttr","window","location","protocol","encodeURIComponent","deleteCookie"],"mappings":"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"}
@@ -623,7 +623,29 @@ const server = node.setupServer(...[
623
623
  }),
624
624
  /**
625
625
  * Audit Logs
626
- */ msw.http.get('/admin/audit-logs', ()=>{
626
+ */ msw.http.get('/admin/audit-logs/users', ()=>{
627
+ return msw.HttpResponse.json({
628
+ results: [
629
+ {
630
+ id: 1,
631
+ email: 'john@testing.com',
632
+ displayName: 'John Doe'
633
+ },
634
+ {
635
+ id: 2,
636
+ email: 'kai@testing.com',
637
+ displayName: 'Kai Doe'
638
+ }
639
+ ],
640
+ pagination: {
641
+ page: 1,
642
+ pageSize: 10,
643
+ pageCount: 1,
644
+ total: 2
645
+ }
646
+ });
647
+ }),
648
+ msw.http.get('/admin/audit-logs', ()=>{
627
649
  return msw.HttpResponse.json({
628
650
  results: [
629
651
  {
@@ -1 +1 @@
1
- {"version":3,"file":"server.js","sources":["../../../../admin/tests/server.ts"],"sourcesContent":["import { http, HttpResponse } from 'msw';\nimport { type SetupServer, setupServer } from 'msw/node';\n\nimport { mockData } from './mockData';\n\nexport const server: SetupServer = setupServer(\n ...[\n /**\n * TRACKING\n */\n http.post('https://analytics.strapi.io/api/v2/track', () => {\n return new HttpResponse();\n }),\n /**\n *\n * ADMIN ROLES\n *\n */\n http.get('/admin/roles', () =>\n HttpResponse.json({\n data: [\n {\n id: 1,\n code: 'strapi-editor',\n name: 'Editor',\n },\n {\n id: 2,\n code: 'strapi-author',\n name: 'Author',\n },\n ],\n })\n ),\n\n http.get('/admin/roles/1', ({ request }) =>\n HttpResponse.json({\n data: {\n id: 1,\n code: 'strapi-editor',\n params: {\n filters: new URL(request.url).searchParams.get('filters'),\n },\n },\n })\n ),\n http.get('/admin/roles/:id/permissions', ({ request }) => {\n return HttpResponse.json({\n data: [\n {\n id: 1,\n action: 'plugin::content-manager.explorer.create',\n subject: 'api::address.address',\n properties: {\n fields: ['postal_code', 'categories'],\n },\n conditions: [],\n\n params: {\n filters: new URL(request.url).searchParams.get('filters'),\n },\n },\n ],\n });\n }),\n /**\n *\n * ADMIN USERS\n *\n */\n http.get('/admin/users', () => {\n return HttpResponse.json({\n data: {\n results: [\n { id: 1, firstname: 'John', lastname: 'Doe', roles: [] },\n { id: 2, firstname: 'Kai', lastname: 'Doe', roles: [] },\n ],\n pagination: {\n page: 1,\n },\n },\n });\n }),\n http.get('/admin/users/1', ({ request }) =>\n HttpResponse.json({\n data: {\n id: 1,\n firstname: 'John',\n lastname: 'Doe',\n emai: 'test@testing.com',\n roles: [\n { id: 1, code: 'strapi-editor', name: 'Editor' },\n { id: 2, code: 'strapi-super-admin', name: 'Super Admin' },\n ],\n params: {\n some: new URL(request.url).searchParams.get('some'),\n },\n },\n })\n ),\n http.get('/admin/users/me', () => {\n return HttpResponse.json({\n data: {\n id: 1,\n email: 'michka@michka.fr',\n firstname: 'michoko',\n lastname: 'ronronscelestes',\n username: 'yolo',\n preferedLanguage: 'en',\n roles: [\n {\n id: 2,\n },\n ],\n },\n });\n }),\n http.get('/admin/users/me/permissions', () => HttpResponse.json({ data: [] })),\n http.get('/admin/users/me/sessions', () =>\n HttpResponse.json({\n data: [\n {\n id: 'session-current',\n deviceId: 'device-aaaaaaaa',\n deviceName: 'Chrome on macOS',\n current: true,\n loginAt: '2026-06-12T08:00:00.000Z',\n lastActiveAt: '2026-06-12T10:00:00.000Z',\n },\n {\n id: 'session-other',\n deviceId: 'device-bbbbbbbb',\n current: false,\n loginAt: '2026-06-10T08:00:00.000Z',\n lastActiveAt: '2026-06-11T09:00:00.000Z',\n },\n ],\n })\n ),\n http.delete('/admin/users/me/sessions/:sessionId', () => HttpResponse.json({ data: {} })),\n http.delete('/admin/users/me/sessions', () => HttpResponse.json({ data: {} })),\n /**\n *\n * ADMIN PROVIDERS\n *\n */\n http.get('/admin/providers/isSSOLocked', () => {\n return HttpResponse.json({\n data: {\n isSSOLocked: false,\n },\n });\n }),\n http.put('/admin/providers/options', () =>\n HttpResponse.json({\n data: {\n autoRegister: false,\n defaultRole: '1',\n ssoLockedRoles: ['1', '2', '3'],\n },\n })\n ),\n http.get('/admin/providers/options', () =>\n HttpResponse.json({\n data: {\n autoRegister: false,\n defaultRole: '1',\n ssoLockedRoles: ['1', '2'],\n },\n })\n ),\n /**\n *\n * ADMIN PERMISSIONS\n *\n */\n http.get('/admin/permissions', ({ request }) => {\n const role = new URL(request.url).searchParams.get('role');\n\n const permissionsData = {\n conditions: [\n {\n id: 'admin::is-creator',\n displayName: 'Is creator',\n category: 'default',\n },\n ],\n sections: {\n collectionTypes: {\n actions: [],\n subjects: [],\n },\n singleTypes: {\n actions: [],\n subjects: [],\n },\n plugins: [],\n settings: [\n {\n displayName: 'Access the Email Settings page',\n category: 'email',\n subCategory: 'general',\n action: 'plugin::email.settings.read',\n },\n ],\n },\n };\n\n // role === '' used by AdminPermissions (token permission layout, no role scoping)\n if (role === '1' || role === '') {\n return HttpResponse.json({ data: permissionsData });\n }\n\n return new HttpResponse(null, { status: 404 });\n }),\n /**\n *\n * ADMIN MISC\n *\n */\n http.get('/admin/init', () => {\n return HttpResponse.json({\n data: {},\n });\n }),\n http.get('/admin/information', () =>\n HttpResponse.json({\n autoReload: true,\n communityEdition: false,\n currentEnvironment: 'development',\n nodeVersion: 'v14.13.1',\n strapiVersion: '3.6.0',\n })\n ),\n http.get('/admin/license-limit-information', () => {\n return HttpResponse.json({\n data: {\n attribute: 1,\n\n features: [{ name: 'sso' }, { name: 'audit-logs', options: { retentionDays: 1 } }],\n },\n });\n }),\n http.get('/admin/project-settings', () => {\n return HttpResponse.json({\n menuLogo: {\n ext: '.svg',\n height: 256,\n name: 'michka.svg',\n size: 1.3,\n url: '/uploads/michka.svg',\n width: 256,\n },\n });\n }),\n http.post('/admin/project-settings', () => {\n return HttpResponse.json({\n menuLogo: {\n ext: '.svg',\n height: 256,\n name: 'michka.svg',\n size: 1.3,\n url: '/uploads/michka.svg',\n width: 256,\n },\n });\n }),\n http.get('/admin/transfer/tokens', () => {\n return HttpResponse.json({\n data: [\n {\n id: 1,\n name: 'My super token',\n description: 'This describe my super token',\n type: 'read-only',\n createdAt: '2021-11-15T00:00:00.000Z',\n permissions: [],\n },\n ],\n });\n }),\n http.get('/admin/transfer/tokens/:id', () => {\n return HttpResponse.json({\n data: {\n id: 1,\n name: 'My super token',\n description: 'This describe my super token',\n type: 'read-only',\n createdAt: '2021-11-15T00:00:00.000Z',\n permissions: [],\n },\n });\n }),\n http.get('/admin/registration-info', ({ request }) => {\n const token = new URL(request.url).searchParams.get('registrationToken');\n\n if (token === 'error') {\n return HttpResponse.json({}, { status: 500 });\n }\n\n return HttpResponse.json({\n data: {\n firstname: 'Token firstname',\n lastname: 'Token lastname',\n email: 'test+register-token@strapi.io',\n },\n });\n }),\n http.post('/admin/renew-token', () => {\n return HttpResponse.json({\n data: {\n token: 'renewed-test-token',\n },\n });\n }),\n http.get('/admin/guided-tour-meta', () => {\n return HttpResponse.json({\n data: {\n isFirstSuperAdminUser: false,\n completedActions: [],\n },\n });\n }),\n /**\n * WEBHOOKS\n */\n http.get('/admin/webhooks', () => {\n return HttpResponse.json({\n data: mockData.webhooks,\n });\n }),\n http.post<Record<string, never>, { ids: number[] }>(\n '/admin/webhooks/batch-delete',\n async ({ request }) => {\n const { ids } = await request.json();\n\n return HttpResponse.json({\n data: mockData.webhooks.filter((webhook) => !ids.includes(webhook.id)),\n });\n }\n ),\n http.put<{ id: string }, { isEnabled: boolean }>(\n '/admin/webhooks/:id',\n async ({ request, params }) => {\n const { id } = params;\n const { isEnabled } = await request.json();\n\n return HttpResponse.json({\n data: mockData.webhooks.map((webhook) =>\n webhook.id === Number(id) ? { ...webhook, isEnabled } : webhook\n ),\n });\n }\n ),\n /**\n *\n * CONTENT_MANAGER\n *\n */\n http.get('/content-manager/content-types', () =>\n HttpResponse.json({\n data: [\n {\n uid: 'admin::collectionType',\n isDisplayed: true,\n apiID: 'permission',\n kind: 'collectionType',\n },\n\n {\n uid: 'admin::collectionTypeNotDispalyed',\n isDisplayed: false,\n apiID: 'permission',\n kind: 'collectionType',\n },\n\n {\n uid: 'admin::singleType',\n isDisplayed: true,\n kind: 'singleType',\n },\n\n {\n uid: 'admin::singleTypeNotDispalyed',\n isDisplayed: false,\n kind: 'singleType',\n },\n ],\n })\n ),\n http.get('/content-manager/components', () =>\n HttpResponse.json({\n data: [\n {\n uid: 'basic.relation',\n isDisplayed: true,\n apiID: 'relation',\n category: 'basic',\n info: {\n displayName: 'Relation',\n },\n options: {},\n attributes: {\n id: {\n type: 'integer',\n },\n categories: {\n type: 'relation',\n relation: 'oneToMany',\n target: 'api::category.category',\n targetModel: 'api::category.category',\n relationType: 'oneToMany',\n },\n },\n },\n ],\n })\n ),\n /**\n *\n * NPS SURVEY\n *\n */\n http.post('https://analytics.strapi.io/submit-nps', () => {\n return new HttpResponse();\n }),\n /**\n * CONTENT-API (API TOKENS)\n */\n http.get('/admin/content-api/permissions', () => {\n return HttpResponse.json({\n data: {\n 'api::address': {\n controllers: {\n address: ['find', 'findOne'],\n },\n },\n 'plugin::myplugin': {\n controllers: {\n test: ['findOne', 'find'],\n },\n },\n },\n });\n }),\n http.get('/admin/content-api/routes', () => {\n return HttpResponse.json({\n data: {\n 'api::address': [\n {\n method: 'GET',\n path: '/api/addresses',\n handler: 'api::address.address.find',\n config: {\n auth: {\n scope: ['api::address.address.find'],\n },\n },\n info: {\n apiName: 'address',\n type: 'content-api',\n },\n },\n {\n method: 'GET',\n path: '/api/addresses/:id',\n handler: 'api::address.address.findOne',\n config: {\n auth: {\n scope: ['api::address.address.findOne'],\n },\n },\n info: {\n apiName: 'address',\n type: 'content-api',\n },\n },\n ],\n 'plugin::myplugin': [\n {\n method: 'GET',\n path: '/api/myplugin/tests',\n handler: 'plugin::myplugin.test.find',\n config: {\n auth: {\n scope: ['plugin::myplugin.test.find'],\n },\n },\n info: {\n pluginName: 'myplugin',\n type: 'content-api',\n },\n },\n {\n method: 'GET',\n path: '/api/myplugin/tests/:id',\n handler: 'plugin::myplugin.test.findOne',\n config: {\n auth: {\n scope: ['plugin::myplugin.test.findOne'],\n },\n },\n info: {\n pluginName: 'myplugin',\n type: 'content-api',\n },\n },\n ],\n },\n });\n }),\n /**\n * API TOKENS\n */\n http.get('/admin/api-tokens', () => {\n return HttpResponse.json({\n data: [\n {\n id: '1',\n name: 'My super token',\n description: 'This describe my super token',\n kind: 'content-api',\n type: 'read-only',\n createdAt: '2021-11-15T00:00:00.000Z',\n permissions: [],\n },\n ],\n });\n }),\n http.get('/admin/api-tokens/:id', ({ params }) => {\n const { id } = params;\n\n if (id === '2') {\n return HttpResponse.json({\n data: {\n id: '2',\n name: 'My admin token',\n description: 'This is an admin token',\n kind: 'admin',\n adminPermissions: [],\n adminUserOwner: {\n id: 1,\n firstname: 'John',\n lastname: 'Doe',\n email: 'john@example.com',\n },\n createdAt: '2021-11-15T00:00:00.000Z',\n },\n });\n }\n\n return HttpResponse.json({\n data: {\n id: '1',\n name: 'My super token',\n description: 'This describe my super token',\n kind: 'content-api',\n type: 'read-only',\n createdAt: '2021-11-15T00:00:00.000Z',\n permissions: [],\n },\n });\n }),\n /**\n * ADMIN TOKENS\n */\n http.get('/admin/admin-tokens', () => {\n return HttpResponse.json({\n data: [\n {\n id: '1',\n name: 'My admin token',\n description: 'This is an admin token',\n kind: 'admin',\n adminPermissions: [],\n adminUserOwner: {\n id: 1,\n firstname: 'John',\n lastname: 'Doe',\n email: 'john@example.com',\n },\n createdAt: '2021-11-15T00:00:00.000Z',\n },\n ],\n });\n }),\n http.get('/admin/admin-tokens/:id', () => {\n return HttpResponse.json({\n data: {\n id: '1',\n name: 'My admin token',\n description: 'This is an admin token',\n kind: 'admin',\n adminPermissions: [],\n adminUserOwner: {\n id: 1,\n firstname: 'John',\n lastname: 'Doe',\n email: 'john@example.com',\n },\n createdAt: '2021-11-15T00:00:00.000Z',\n },\n });\n }),\n http.get('/admin/admin-tokens/:id/owner-permissions', () => {\n return HttpResponse.json({ data: [] });\n }),\n /**\n * Audit Logs\n */\n http.get('/admin/audit-logs', () => {\n return HttpResponse.json({\n results: [\n {\n id: 1,\n action: 'admin.logout',\n date: '2023-10-31T15:56:54.873Z',\n payload: {\n user: {\n id: 1,\n firstname: 'test',\n lastname: 'testing',\n username: null,\n email: 'test@testing.com',\n isActive: true,\n blocked: false,\n preferedLanguage: null,\n createdAt: '2023-10-26T19:19:38.245Z',\n updatedAt: '2023-10-26T19:19:38.245Z',\n roles: [\n {\n id: 1,\n name: 'Super Admin',\n description: 'Super Admins can access and manage all features and settings.',\n code: 'strapi-super-admin',\n },\n ],\n },\n },\n user: {\n id: 1,\n email: 'test@testing.com',\n displayName: 'test testing',\n },\n },\n {\n id: 2,\n action: 'user.create',\n date: '2023-10-31T15:57:38.957Z',\n payload: {\n user: {\n id: 2,\n firstname: 'editor',\n lastname: 'test',\n username: null,\n email: 'editor@testing.com',\n isActive: true,\n blocked: false,\n preferedLanguage: null,\n createdAt: '2023-10-31T15:57:38.948Z',\n updatedAt: '2023-10-31T15:57:38.948Z',\n roles: [\n {\n id: 2,\n name: 'Editor',\n description:\n 'Editors can manage and publish contents including those of other users.',\n code: 'strapi-editor',\n },\n ],\n },\n },\n user: {\n id: 1,\n email: 'test@testing.com',\n displayName: 'test testing',\n },\n },\n ],\n pagination: {\n page: 1,\n pageSize: 2,\n pageCount: 1,\n total: 2,\n },\n });\n }),\n http.get('/admin/audit-logs/:id', () => {\n return HttpResponse.json({\n id: 1,\n action: 'admin.logout',\n date: '2023-10-31T15:56:54.873Z',\n payload: {\n user: {\n id: 1,\n firstname: 'test',\n lastname: 'testing',\n username: null,\n email: 'test@testing.com',\n isActive: true,\n blocked: false,\n preferedLanguage: null,\n createdAt: '2023-10-26T19:19:38.245Z',\n updatedAt: '2023-10-26T19:19:38.245Z',\n roles: [\n {\n id: 1,\n name: 'Super Admin',\n description: 'Super Admins can access and manage all features and settings.',\n code: 'strapi-super-admin',\n },\n ],\n },\n },\n user: {\n id: 1,\n email: 'test@testing.com',\n displayName: 'test testing',\n },\n });\n }),\n /**\n *\n * fetchClient, useFetchClient and getFetchClient\n *\n */\n http.get('/use-fetch-client-test', () => {\n return HttpResponse.json({\n data: {\n results: [\n { id: 2, name: 'newest', publishedAt: null },\n { id: 1, name: 'oldest', publishedAt: null },\n ],\n pagination: { page: 1, pageCount: 10 },\n },\n });\n }),\n http.get('/test-fetch-client', () => {\n return new HttpResponse();\n }),\n ]\n);\n"],"names":["server","setupServer","http","post","HttpResponse","get","json","data","id","code","name","request","params","filters","URL","url","searchParams","action","subject","properties","fields","conditions","results","firstname","lastname","roles","pagination","page","emai","some","email","username","preferedLanguage","deviceId","deviceName","current","loginAt","lastActiveAt","delete","isSSOLocked","put","autoRegister","defaultRole","ssoLockedRoles","role","permissionsData","displayName","category","sections","collectionTypes","actions","subjects","singleTypes","plugins","settings","subCategory","status","autoReload","communityEdition","currentEnvironment","nodeVersion","strapiVersion","attribute","features","options","retentionDays","menuLogo","ext","height","size","width","description","type","createdAt","permissions","token","isFirstSuperAdminUser","completedActions","mockData","webhooks","ids","filter","webhook","includes","isEnabled","map","Number","uid","isDisplayed","apiID","kind","info","attributes","categories","relation","target","targetModel","relationType","controllers","address","test","method","path","handler","config","auth","scope","apiName","pluginName","adminPermissions","adminUserOwner","date","payload","user","isActive","blocked","updatedAt","pageSize","pageCount","total","publishedAt"],"mappings":"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"}
1
+ {"version":3,"file":"server.js","sources":["../../../../admin/tests/server.ts"],"sourcesContent":["import { http, HttpResponse } from 'msw';\nimport { type SetupServer, setupServer } from 'msw/node';\n\nimport { mockData } from './mockData';\n\nexport const server: SetupServer = setupServer(\n ...[\n /**\n * TRACKING\n */\n http.post('https://analytics.strapi.io/api/v2/track', () => {\n return new HttpResponse();\n }),\n /**\n *\n * ADMIN ROLES\n *\n */\n http.get('/admin/roles', () =>\n HttpResponse.json({\n data: [\n {\n id: 1,\n code: 'strapi-editor',\n name: 'Editor',\n },\n {\n id: 2,\n code: 'strapi-author',\n name: 'Author',\n },\n ],\n })\n ),\n\n http.get('/admin/roles/1', ({ request }) =>\n HttpResponse.json({\n data: {\n id: 1,\n code: 'strapi-editor',\n params: {\n filters: new URL(request.url).searchParams.get('filters'),\n },\n },\n })\n ),\n http.get('/admin/roles/:id/permissions', ({ request }) => {\n return HttpResponse.json({\n data: [\n {\n id: 1,\n action: 'plugin::content-manager.explorer.create',\n subject: 'api::address.address',\n properties: {\n fields: ['postal_code', 'categories'],\n },\n conditions: [],\n\n params: {\n filters: new URL(request.url).searchParams.get('filters'),\n },\n },\n ],\n });\n }),\n /**\n *\n * ADMIN USERS\n *\n */\n http.get('/admin/users', () => {\n return HttpResponse.json({\n data: {\n results: [\n { id: 1, firstname: 'John', lastname: 'Doe', roles: [] },\n { id: 2, firstname: 'Kai', lastname: 'Doe', roles: [] },\n ],\n pagination: {\n page: 1,\n },\n },\n });\n }),\n http.get('/admin/users/1', ({ request }) =>\n HttpResponse.json({\n data: {\n id: 1,\n firstname: 'John',\n lastname: 'Doe',\n emai: 'test@testing.com',\n roles: [\n { id: 1, code: 'strapi-editor', name: 'Editor' },\n { id: 2, code: 'strapi-super-admin', name: 'Super Admin' },\n ],\n params: {\n some: new URL(request.url).searchParams.get('some'),\n },\n },\n })\n ),\n http.get('/admin/users/me', () => {\n return HttpResponse.json({\n data: {\n id: 1,\n email: 'michka@michka.fr',\n firstname: 'michoko',\n lastname: 'ronronscelestes',\n username: 'yolo',\n preferedLanguage: 'en',\n roles: [\n {\n id: 2,\n },\n ],\n },\n });\n }),\n http.get('/admin/users/me/permissions', () => HttpResponse.json({ data: [] })),\n http.get('/admin/users/me/sessions', () =>\n HttpResponse.json({\n data: [\n {\n id: 'session-current',\n deviceId: 'device-aaaaaaaa',\n deviceName: 'Chrome on macOS',\n current: true,\n loginAt: '2026-06-12T08:00:00.000Z',\n lastActiveAt: '2026-06-12T10:00:00.000Z',\n },\n {\n id: 'session-other',\n deviceId: 'device-bbbbbbbb',\n current: false,\n loginAt: '2026-06-10T08:00:00.000Z',\n lastActiveAt: '2026-06-11T09:00:00.000Z',\n },\n ],\n })\n ),\n http.delete('/admin/users/me/sessions/:sessionId', () => HttpResponse.json({ data: {} })),\n http.delete('/admin/users/me/sessions', () => HttpResponse.json({ data: {} })),\n /**\n *\n * ADMIN PROVIDERS\n *\n */\n http.get('/admin/providers/isSSOLocked', () => {\n return HttpResponse.json({\n data: {\n isSSOLocked: false,\n },\n });\n }),\n http.put('/admin/providers/options', () =>\n HttpResponse.json({\n data: {\n autoRegister: false,\n defaultRole: '1',\n ssoLockedRoles: ['1', '2', '3'],\n },\n })\n ),\n http.get('/admin/providers/options', () =>\n HttpResponse.json({\n data: {\n autoRegister: false,\n defaultRole: '1',\n ssoLockedRoles: ['1', '2'],\n },\n })\n ),\n /**\n *\n * ADMIN PERMISSIONS\n *\n */\n http.get('/admin/permissions', ({ request }) => {\n const role = new URL(request.url).searchParams.get('role');\n\n const permissionsData = {\n conditions: [\n {\n id: 'admin::is-creator',\n displayName: 'Is creator',\n category: 'default',\n },\n ],\n sections: {\n collectionTypes: {\n actions: [],\n subjects: [],\n },\n singleTypes: {\n actions: [],\n subjects: [],\n },\n plugins: [],\n settings: [\n {\n displayName: 'Access the Email Settings page',\n category: 'email',\n subCategory: 'general',\n action: 'plugin::email.settings.read',\n },\n ],\n },\n };\n\n // role === '' used by AdminPermissions (token permission layout, no role scoping)\n if (role === '1' || role === '') {\n return HttpResponse.json({ data: permissionsData });\n }\n\n return new HttpResponse(null, { status: 404 });\n }),\n /**\n *\n * ADMIN MISC\n *\n */\n http.get('/admin/init', () => {\n return HttpResponse.json({\n data: {},\n });\n }),\n http.get('/admin/information', () =>\n HttpResponse.json({\n autoReload: true,\n communityEdition: false,\n currentEnvironment: 'development',\n nodeVersion: 'v14.13.1',\n strapiVersion: '3.6.0',\n })\n ),\n http.get('/admin/license-limit-information', () => {\n return HttpResponse.json({\n data: {\n attribute: 1,\n\n features: [{ name: 'sso' }, { name: 'audit-logs', options: { retentionDays: 1 } }],\n },\n });\n }),\n http.get('/admin/project-settings', () => {\n return HttpResponse.json({\n menuLogo: {\n ext: '.svg',\n height: 256,\n name: 'michka.svg',\n size: 1.3,\n url: '/uploads/michka.svg',\n width: 256,\n },\n });\n }),\n http.post('/admin/project-settings', () => {\n return HttpResponse.json({\n menuLogo: {\n ext: '.svg',\n height: 256,\n name: 'michka.svg',\n size: 1.3,\n url: '/uploads/michka.svg',\n width: 256,\n },\n });\n }),\n http.get('/admin/transfer/tokens', () => {\n return HttpResponse.json({\n data: [\n {\n id: 1,\n name: 'My super token',\n description: 'This describe my super token',\n type: 'read-only',\n createdAt: '2021-11-15T00:00:00.000Z',\n permissions: [],\n },\n ],\n });\n }),\n http.get('/admin/transfer/tokens/:id', () => {\n return HttpResponse.json({\n data: {\n id: 1,\n name: 'My super token',\n description: 'This describe my super token',\n type: 'read-only',\n createdAt: '2021-11-15T00:00:00.000Z',\n permissions: [],\n },\n });\n }),\n http.get('/admin/registration-info', ({ request }) => {\n const token = new URL(request.url).searchParams.get('registrationToken');\n\n if (token === 'error') {\n return HttpResponse.json({}, { status: 500 });\n }\n\n return HttpResponse.json({\n data: {\n firstname: 'Token firstname',\n lastname: 'Token lastname',\n email: 'test+register-token@strapi.io',\n },\n });\n }),\n http.post('/admin/renew-token', () => {\n return HttpResponse.json({\n data: {\n token: 'renewed-test-token',\n },\n });\n }),\n http.get('/admin/guided-tour-meta', () => {\n return HttpResponse.json({\n data: {\n isFirstSuperAdminUser: false,\n completedActions: [],\n },\n });\n }),\n /**\n * WEBHOOKS\n */\n http.get('/admin/webhooks', () => {\n return HttpResponse.json({\n data: mockData.webhooks,\n });\n }),\n http.post<Record<string, never>, { ids: number[] }>(\n '/admin/webhooks/batch-delete',\n async ({ request }) => {\n const { ids } = await request.json();\n\n return HttpResponse.json({\n data: mockData.webhooks.filter((webhook) => !ids.includes(webhook.id)),\n });\n }\n ),\n http.put<{ id: string }, { isEnabled: boolean }>(\n '/admin/webhooks/:id',\n async ({ request, params }) => {\n const { id } = params;\n const { isEnabled } = await request.json();\n\n return HttpResponse.json({\n data: mockData.webhooks.map((webhook) =>\n webhook.id === Number(id) ? { ...webhook, isEnabled } : webhook\n ),\n });\n }\n ),\n /**\n *\n * CONTENT_MANAGER\n *\n */\n http.get('/content-manager/content-types', () =>\n HttpResponse.json({\n data: [\n {\n uid: 'admin::collectionType',\n isDisplayed: true,\n apiID: 'permission',\n kind: 'collectionType',\n },\n\n {\n uid: 'admin::collectionTypeNotDispalyed',\n isDisplayed: false,\n apiID: 'permission',\n kind: 'collectionType',\n },\n\n {\n uid: 'admin::singleType',\n isDisplayed: true,\n kind: 'singleType',\n },\n\n {\n uid: 'admin::singleTypeNotDispalyed',\n isDisplayed: false,\n kind: 'singleType',\n },\n ],\n })\n ),\n http.get('/content-manager/components', () =>\n HttpResponse.json({\n data: [\n {\n uid: 'basic.relation',\n isDisplayed: true,\n apiID: 'relation',\n category: 'basic',\n info: {\n displayName: 'Relation',\n },\n options: {},\n attributes: {\n id: {\n type: 'integer',\n },\n categories: {\n type: 'relation',\n relation: 'oneToMany',\n target: 'api::category.category',\n targetModel: 'api::category.category',\n relationType: 'oneToMany',\n },\n },\n },\n ],\n })\n ),\n /**\n *\n * NPS SURVEY\n *\n */\n http.post('https://analytics.strapi.io/submit-nps', () => {\n return new HttpResponse();\n }),\n /**\n * CONTENT-API (API TOKENS)\n */\n http.get('/admin/content-api/permissions', () => {\n return HttpResponse.json({\n data: {\n 'api::address': {\n controllers: {\n address: ['find', 'findOne'],\n },\n },\n 'plugin::myplugin': {\n controllers: {\n test: ['findOne', 'find'],\n },\n },\n },\n });\n }),\n http.get('/admin/content-api/routes', () => {\n return HttpResponse.json({\n data: {\n 'api::address': [\n {\n method: 'GET',\n path: '/api/addresses',\n handler: 'api::address.address.find',\n config: {\n auth: {\n scope: ['api::address.address.find'],\n },\n },\n info: {\n apiName: 'address',\n type: 'content-api',\n },\n },\n {\n method: 'GET',\n path: '/api/addresses/:id',\n handler: 'api::address.address.findOne',\n config: {\n auth: {\n scope: ['api::address.address.findOne'],\n },\n },\n info: {\n apiName: 'address',\n type: 'content-api',\n },\n },\n ],\n 'plugin::myplugin': [\n {\n method: 'GET',\n path: '/api/myplugin/tests',\n handler: 'plugin::myplugin.test.find',\n config: {\n auth: {\n scope: ['plugin::myplugin.test.find'],\n },\n },\n info: {\n pluginName: 'myplugin',\n type: 'content-api',\n },\n },\n {\n method: 'GET',\n path: '/api/myplugin/tests/:id',\n handler: 'plugin::myplugin.test.findOne',\n config: {\n auth: {\n scope: ['plugin::myplugin.test.findOne'],\n },\n },\n info: {\n pluginName: 'myplugin',\n type: 'content-api',\n },\n },\n ],\n },\n });\n }),\n /**\n * API TOKENS\n */\n http.get('/admin/api-tokens', () => {\n return HttpResponse.json({\n data: [\n {\n id: '1',\n name: 'My super token',\n description: 'This describe my super token',\n kind: 'content-api',\n type: 'read-only',\n createdAt: '2021-11-15T00:00:00.000Z',\n permissions: [],\n },\n ],\n });\n }),\n http.get('/admin/api-tokens/:id', ({ params }) => {\n const { id } = params;\n\n if (id === '2') {\n return HttpResponse.json({\n data: {\n id: '2',\n name: 'My admin token',\n description: 'This is an admin token',\n kind: 'admin',\n adminPermissions: [],\n adminUserOwner: {\n id: 1,\n firstname: 'John',\n lastname: 'Doe',\n email: 'john@example.com',\n },\n createdAt: '2021-11-15T00:00:00.000Z',\n },\n });\n }\n\n return HttpResponse.json({\n data: {\n id: '1',\n name: 'My super token',\n description: 'This describe my super token',\n kind: 'content-api',\n type: 'read-only',\n createdAt: '2021-11-15T00:00:00.000Z',\n permissions: [],\n },\n });\n }),\n /**\n * ADMIN TOKENS\n */\n http.get('/admin/admin-tokens', () => {\n return HttpResponse.json({\n data: [\n {\n id: '1',\n name: 'My admin token',\n description: 'This is an admin token',\n kind: 'admin',\n adminPermissions: [],\n adminUserOwner: {\n id: 1,\n firstname: 'John',\n lastname: 'Doe',\n email: 'john@example.com',\n },\n createdAt: '2021-11-15T00:00:00.000Z',\n },\n ],\n });\n }),\n http.get('/admin/admin-tokens/:id', () => {\n return HttpResponse.json({\n data: {\n id: '1',\n name: 'My admin token',\n description: 'This is an admin token',\n kind: 'admin',\n adminPermissions: [],\n adminUserOwner: {\n id: 1,\n firstname: 'John',\n lastname: 'Doe',\n email: 'john@example.com',\n },\n createdAt: '2021-11-15T00:00:00.000Z',\n },\n });\n }),\n http.get('/admin/admin-tokens/:id/owner-permissions', () => {\n return HttpResponse.json({ data: [] });\n }),\n /**\n * Audit Logs\n */\n http.get('/admin/audit-logs/users', () => {\n return HttpResponse.json({\n results: [\n { id: 1, email: 'john@testing.com', displayName: 'John Doe' },\n { id: 2, email: 'kai@testing.com', displayName: 'Kai Doe' },\n ],\n pagination: {\n page: 1,\n pageSize: 10,\n pageCount: 1,\n total: 2,\n },\n });\n }),\n http.get('/admin/audit-logs', () => {\n return HttpResponse.json({\n results: [\n {\n id: 1,\n action: 'admin.logout',\n date: '2023-10-31T15:56:54.873Z',\n payload: {\n user: {\n id: 1,\n firstname: 'test',\n lastname: 'testing',\n username: null,\n email: 'test@testing.com',\n isActive: true,\n blocked: false,\n preferedLanguage: null,\n createdAt: '2023-10-26T19:19:38.245Z',\n updatedAt: '2023-10-26T19:19:38.245Z',\n roles: [\n {\n id: 1,\n name: 'Super Admin',\n description: 'Super Admins can access and manage all features and settings.',\n code: 'strapi-super-admin',\n },\n ],\n },\n },\n user: {\n id: 1,\n email: 'test@testing.com',\n displayName: 'test testing',\n },\n },\n {\n id: 2,\n action: 'user.create',\n date: '2023-10-31T15:57:38.957Z',\n payload: {\n user: {\n id: 2,\n firstname: 'editor',\n lastname: 'test',\n username: null,\n email: 'editor@testing.com',\n isActive: true,\n blocked: false,\n preferedLanguage: null,\n createdAt: '2023-10-31T15:57:38.948Z',\n updatedAt: '2023-10-31T15:57:38.948Z',\n roles: [\n {\n id: 2,\n name: 'Editor',\n description:\n 'Editors can manage and publish contents including those of other users.',\n code: 'strapi-editor',\n },\n ],\n },\n },\n user: {\n id: 1,\n email: 'test@testing.com',\n displayName: 'test testing',\n },\n },\n ],\n pagination: {\n page: 1,\n pageSize: 2,\n pageCount: 1,\n total: 2,\n },\n });\n }),\n http.get('/admin/audit-logs/:id', () => {\n return HttpResponse.json({\n id: 1,\n action: 'admin.logout',\n date: '2023-10-31T15:56:54.873Z',\n payload: {\n user: {\n id: 1,\n firstname: 'test',\n lastname: 'testing',\n username: null,\n email: 'test@testing.com',\n isActive: true,\n blocked: false,\n preferedLanguage: null,\n createdAt: '2023-10-26T19:19:38.245Z',\n updatedAt: '2023-10-26T19:19:38.245Z',\n roles: [\n {\n id: 1,\n name: 'Super Admin',\n description: 'Super Admins can access and manage all features and settings.',\n code: 'strapi-super-admin',\n },\n ],\n },\n },\n user: {\n id: 1,\n email: 'test@testing.com',\n displayName: 'test testing',\n },\n });\n }),\n /**\n *\n * fetchClient, useFetchClient and getFetchClient\n *\n */\n http.get('/use-fetch-client-test', () => {\n return HttpResponse.json({\n data: {\n results: [\n { id: 2, name: 'newest', publishedAt: null },\n { id: 1, name: 'oldest', publishedAt: null },\n ],\n pagination: { page: 1, pageCount: 10 },\n },\n });\n }),\n http.get('/test-fetch-client', () => {\n return new HttpResponse();\n }),\n ]\n);\n"],"names":["server","setupServer","http","post","HttpResponse","get","json","data","id","code","name","request","params","filters","URL","url","searchParams","action","subject","properties","fields","conditions","results","firstname","lastname","roles","pagination","page","emai","some","email","username","preferedLanguage","deviceId","deviceName","current","loginAt","lastActiveAt","delete","isSSOLocked","put","autoRegister","defaultRole","ssoLockedRoles","role","permissionsData","displayName","category","sections","collectionTypes","actions","subjects","singleTypes","plugins","settings","subCategory","status","autoReload","communityEdition","currentEnvironment","nodeVersion","strapiVersion","attribute","features","options","retentionDays","menuLogo","ext","height","size","width","description","type","createdAt","permissions","token","isFirstSuperAdminUser","completedActions","mockData","webhooks","ids","filter","webhook","includes","isEnabled","map","Number","uid","isDisplayed","apiID","kind","info","attributes","categories","relation","target","targetModel","relationType","controllers","address","test","method","path","handler","config","auth","scope","apiName","pluginName","adminPermissions","adminUserOwner","pageSize","pageCount","total","date","payload","user","isActive","blocked","updatedAt","publishedAt"],"mappings":"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"}
@@ -621,7 +621,29 @@ const server = setupServer(...[
621
621
  }),
622
622
  /**
623
623
  * Audit Logs
624
- */ http.get('/admin/audit-logs', ()=>{
624
+ */ http.get('/admin/audit-logs/users', ()=>{
625
+ return HttpResponse.json({
626
+ results: [
627
+ {
628
+ id: 1,
629
+ email: 'john@testing.com',
630
+ displayName: 'John Doe'
631
+ },
632
+ {
633
+ id: 2,
634
+ email: 'kai@testing.com',
635
+ displayName: 'Kai Doe'
636
+ }
637
+ ],
638
+ pagination: {
639
+ page: 1,
640
+ pageSize: 10,
641
+ pageCount: 1,
642
+ total: 2
643
+ }
644
+ });
645
+ }),
646
+ http.get('/admin/audit-logs', ()=>{
625
647
  return HttpResponse.json({
626
648
  results: [
627
649
  {