keycloakify 2.3.0 → 2.5.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 (177) hide show
  1. package/CHANGELOG.md +21 -0
  2. package/README.md +156 -127
  3. package/bin/KeycloakVersion.js.map +1 -1
  4. package/bin/build-keycloak-theme/build-keycloak-theme.js +57 -54
  5. package/bin/build-keycloak-theme/build-keycloak-theme.js.map +1 -1
  6. package/bin/build-keycloak-theme/ftlValuesGlobalName.js.map +1 -1
  7. package/bin/build-keycloak-theme/generateDebugFiles/generateDebugFiles.js +4 -11
  8. package/bin/build-keycloak-theme/generateDebugFiles/generateDebugFiles.js.map +1 -1
  9. package/bin/build-keycloak-theme/generateFtl/common.ftl +72 -57
  10. package/bin/build-keycloak-theme/generateFtl/generateFtl.d.ts +1 -1
  11. package/bin/build-keycloak-theme/generateFtl/generateFtl.js +47 -44
  12. package/bin/build-keycloak-theme/generateFtl/generateFtl.js.map +1 -1
  13. package/bin/build-keycloak-theme/generateJavaStackFiles.js +12 -8
  14. package/bin/build-keycloak-theme/generateJavaStackFiles.js.map +1 -1
  15. package/bin/build-keycloak-theme/generateKeycloakThemeResources.js +20 -21
  16. package/bin/build-keycloak-theme/generateKeycloakThemeResources.js.map +1 -1
  17. package/bin/build-keycloak-theme/index.js.map +1 -1
  18. package/bin/build-keycloak-theme/replaceImportFromStatic.js +18 -30
  19. package/bin/build-keycloak-theme/replaceImportFromStatic.js.map +1 -1
  20. package/bin/download-builtin-keycloak-theme.js +2 -2
  21. package/bin/download-builtin-keycloak-theme.js.map +1 -1
  22. package/bin/generate-i18n-messages.js +9 -11
  23. package/bin/generate-i18n-messages.js.map +1 -1
  24. package/bin/link_in_test_app.js +6 -22
  25. package/bin/link_in_test_app.js.map +1 -1
  26. package/bin/tools/crawl.js.map +1 -1
  27. package/bin/tools/downloadAndUnzip.js +4 -5
  28. package/bin/tools/downloadAndUnzip.js.map +1 -1
  29. package/bin/tools/grant-exec-perms.js +4 -3
  30. package/bin/tools/grant-exec-perms.js.map +1 -1
  31. package/bin/tools/isInside.js.map +1 -1
  32. package/bin/tools/rm.js +1 -1
  33. package/bin/tools/rm.js.map +1 -1
  34. package/bin/tools/transformCodebase.js +7 -3
  35. package/bin/tools/transformCodebase.js.map +1 -1
  36. package/lib/components/Error.js +1 -2
  37. package/lib/components/Error.js.map +1 -1
  38. package/lib/components/Info.js +1 -15
  39. package/lib/components/Info.js.map +1 -1
  40. package/lib/components/KcApp.js +23 -10
  41. package/lib/components/KcApp.js.map +1 -1
  42. package/lib/components/KcProps.d.ts +4 -2
  43. package/lib/components/KcProps.js +10 -8
  44. package/lib/components/KcProps.js.map +1 -1
  45. package/lib/components/Login.js +20 -18
  46. package/lib/components/Login.js.map +1 -1
  47. package/lib/components/LoginIdpLinkConfirm.js.map +1 -1
  48. package/lib/components/LoginOtp.js +14 -15
  49. package/lib/components/LoginOtp.js.map +1 -1
  50. package/lib/components/LoginResetPassword.js +5 -7
  51. package/lib/components/LoginResetPassword.js.map +1 -1
  52. package/lib/components/LoginUpdateProfile.js +1 -5
  53. package/lib/components/LoginUpdateProfile.js.map +1 -1
  54. package/lib/components/LoginVerifyEmail.js.map +1 -1
  55. package/lib/components/Register.js +1 -4
  56. package/lib/components/Register.js.map +1 -1
  57. package/lib/components/RegisterUserProfile.d.ts +6 -0
  58. package/lib/components/RegisterUserProfile.js +78 -0
  59. package/lib/components/RegisterUserProfile.js.map +1 -0
  60. package/lib/components/Template.js +28 -43
  61. package/lib/components/Template.js.map +1 -1
  62. package/lib/components/Terms.js.map +1 -1
  63. package/lib/getKcContext/KcContextBase.d.ts +78 -18
  64. package/lib/getKcContext/KcContextBase.js +2 -3
  65. package/lib/getKcContext/KcContextBase.js.map +1 -1
  66. package/lib/getKcContext/getKcContext.d.ts +1 -3
  67. package/lib/getKcContext/getKcContext.js +5 -9
  68. package/lib/getKcContext/getKcContext.js.map +1 -1
  69. package/lib/getKcContext/kcContextMocks/kcContextMocks.d.ts +1 -0
  70. package/lib/getKcContext/kcContextMocks/kcContextMocks.js +187 -55
  71. package/lib/getKcContext/kcContextMocks/kcContextMocks.js.map +1 -1
  72. package/lib/getKcContext/kcContextMocks/urlResourcesPath.js.map +1 -1
  73. package/lib/i18n/KcLanguageTag.d.ts +25 -2
  74. package/lib/i18n/KcLanguageTag.js +27 -27
  75. package/lib/i18n/KcLanguageTag.js.map +1 -1
  76. package/lib/i18n/generated_kcMessages/11.0.3/account.js +27 -27
  77. package/lib/i18n/generated_kcMessages/11.0.3/account.js.map +1 -1
  78. package/lib/i18n/generated_kcMessages/11.0.3/admin.js +23 -23
  79. package/lib/i18n/generated_kcMessages/11.0.3/admin.js.map +1 -1
  80. package/lib/i18n/generated_kcMessages/11.0.3/email.js +97 -97
  81. package/lib/i18n/generated_kcMessages/11.0.3/email.js.map +1 -1
  82. package/lib/i18n/generated_kcMessages/11.0.3/login.js +30 -30
  83. package/lib/i18n/generated_kcMessages/11.0.3/login.js.map +1 -1
  84. package/lib/i18n/generated_kcMessages/15.0.2/account.js +29 -29
  85. package/lib/i18n/generated_kcMessages/15.0.2/account.js.map +1 -1
  86. package/lib/i18n/generated_kcMessages/15.0.2/admin.js +23 -23
  87. package/lib/i18n/generated_kcMessages/15.0.2/admin.js.map +1 -1
  88. package/lib/i18n/generated_kcMessages/15.0.2/email.js +111 -111
  89. package/lib/i18n/generated_kcMessages/15.0.2/email.js.map +1 -1
  90. package/lib/i18n/generated_kcMessages/15.0.2/login.js +32 -32
  91. package/lib/i18n/generated_kcMessages/15.0.2/login.js.map +1 -1
  92. package/lib/i18n/kcMessages/login.js +1 -1
  93. package/lib/i18n/kcMessages/login.js.map +1 -1
  94. package/lib/i18n/useKcLanguageTag.js +1 -3
  95. package/lib/i18n/useKcLanguageTag.js.map +1 -1
  96. package/lib/i18n/useKcMessage.d.ts +2 -1
  97. package/lib/i18n/useKcMessage.js +8 -6
  98. package/lib/i18n/useKcMessage.js.map +1 -1
  99. package/lib/keycloakJsAdapter.d.ts +6 -6
  100. package/lib/keycloakJsAdapter.js +10 -12
  101. package/lib/keycloakJsAdapter.js.map +1 -1
  102. package/lib/tools/ReactComponent.d.ts +2 -0
  103. package/lib/tools/ReactComponent.js +3 -0
  104. package/lib/tools/ReactComponent.js.map +1 -0
  105. package/lib/tools/allPropertiesValuesToUndefined.js +1 -2
  106. package/lib/tools/allPropertiesValuesToUndefined.js.map +1 -1
  107. package/lib/tools/appendHead.js +16 -12
  108. package/lib/tools/appendHead.js.map +1 -1
  109. package/lib/tools/assert.js.map +1 -1
  110. package/lib/tools/deepAssign.js +3 -4
  111. package/lib/tools/deepAssign.js.map +1 -1
  112. package/lib/tools/deepClone.js.map +1 -1
  113. package/package.json +26 -6
  114. package/src/bin/KeycloakVersion.ts +0 -2
  115. package/src/bin/build-keycloak-theme/build-keycloak-theme.ts +70 -77
  116. package/src/bin/build-keycloak-theme/ftlValuesGlobalName.ts +1 -2
  117. package/src/bin/build-keycloak-theme/generateDebugFiles/generateDebugFiles.ts +26 -37
  118. package/src/bin/build-keycloak-theme/generateDebugFiles/index.ts +1 -1
  119. package/src/bin/build-keycloak-theme/generateFtl/common.ftl +72 -57
  120. package/src/bin/build-keycloak-theme/generateFtl/generateFtl.ts +75 -95
  121. package/src/bin/build-keycloak-theme/generateFtl/index.ts +1 -1
  122. package/src/bin/build-keycloak-theme/generateJavaStackFiles.ts +38 -56
  123. package/src/bin/build-keycloak-theme/generateKeycloakThemeResources.ts +47 -85
  124. package/src/bin/build-keycloak-theme/index.ts +2 -4
  125. package/src/bin/build-keycloak-theme/replaceImportFromStatic.ts +34 -78
  126. package/src/bin/download-builtin-keycloak-theme.ts +5 -19
  127. package/src/bin/generate-i18n-messages.ts +13 -25
  128. package/src/bin/link_in_test_app.ts +9 -38
  129. package/src/bin/tools/crawl.ts +2 -12
  130. package/src/bin/tools/downloadAndUnzip.ts +6 -22
  131. package/src/bin/tools/getProjectRoot.ts +1 -1
  132. package/src/bin/tools/grant-exec-perms.ts +8 -7
  133. package/src/bin/tools/isInside.ts +2 -9
  134. package/src/bin/tools/rm.ts +21 -32
  135. package/src/bin/tools/transformCodebase.ts +20 -43
  136. package/src/lib/components/Error.tsx +3 -7
  137. package/src/lib/components/Info.tsx +23 -47
  138. package/src/lib/components/KcApp.tsx +25 -13
  139. package/src/lib/components/KcProps.ts +94 -92
  140. package/src/lib/components/Login.tsx +126 -116
  141. package/src/lib/components/LoginIdpLinkConfirm.tsx +38 -53
  142. package/src/lib/components/LoginOtp.tsx +39 -76
  143. package/src/lib/components/LoginResetPassword.tsx +9 -26
  144. package/src/lib/components/LoginUpdateProfile.tsx +104 -117
  145. package/src/lib/components/LoginVerifyEmail.tsx +3 -12
  146. package/src/lib/components/Register.tsx +76 -46
  147. package/src/lib/components/RegisterUserProfile.tsx +201 -0
  148. package/src/lib/components/Template.tsx +109 -161
  149. package/src/lib/components/Terms.tsx +4 -13
  150. package/src/lib/getKcContext/KcContextBase.ts +104 -53
  151. package/src/lib/getKcContext/getKcContext.ts +47 -78
  152. package/src/lib/getKcContext/index.ts +2 -2
  153. package/src/lib/getKcContext/kcContextMocks/index.ts +1 -1
  154. package/src/lib/getKcContext/kcContextMocks/kcContextMocks.ts +362 -241
  155. package/src/lib/getKcContext/kcContextMocks/urlResourcesPath.ts +1 -2
  156. package/src/lib/i18n/KcLanguageTag.ts +34 -45
  157. package/src/lib/i18n/generated_kcMessages/11.0.3/account.ts +3086 -3059
  158. package/src/lib/i18n/generated_kcMessages/11.0.3/admin.ts +248 -239
  159. package/src/lib/i18n/generated_kcMessages/11.0.3/email.ts +848 -633
  160. package/src/lib/i18n/generated_kcMessages/11.0.3/login.ts +4466 -4359
  161. package/src/lib/i18n/generated_kcMessages/15.0.2/account.ts +4247 -4202
  162. package/src/lib/i18n/generated_kcMessages/15.0.2/admin.ts +273 -264
  163. package/src/lib/i18n/generated_kcMessages/15.0.2/email.ts +997 -749
  164. package/src/lib/i18n/generated_kcMessages/15.0.2/login.ts +5352 -5212
  165. package/src/lib/i18n/kcMessages/login.ts +4 -9
  166. package/src/lib/i18n/useKcLanguageTag.ts +2 -16
  167. package/src/lib/i18n/useKcMessage.tsx +17 -20
  168. package/src/lib/index.ts +0 -1
  169. package/src/lib/keycloakJsAdapter.ts +23 -53
  170. package/src/lib/tools/AndByDiscriminatingKey.ts +16 -30
  171. package/src/lib/tools/DeepPartial.ts +1 -2
  172. package/src/lib/tools/ReactComponent.ts +4 -0
  173. package/src/lib/tools/allPropertiesValuesToUndefined.ts +1 -6
  174. package/src/lib/tools/appendHead.ts +28 -25
  175. package/src/lib/tools/assert.ts +1 -2
  176. package/src/lib/tools/deepAssign.ts +28 -46
  177. package/src/lib/tools/deepClone.ts +2 -3
@@ -1,5 +1,5 @@
1
-
2
- import type { KcContextBase } from "../KcContextBase";
1
+ import "minimal-polyfills/Object.fromEntries";
2
+ import type { KcContextBase, Attribute } from "../KcContextBase";
3
3
  import { getEvtKcLanguage } from "../../i18n/useKcLanguageTag";
4
4
  import { getKcLanguageTagLabel } from "../../i18n/KcLanguageTag";
5
5
  //NOTE: Aside because we want to be able to import them from node
@@ -10,252 +10,373 @@ import { join as pathJoin } from "path";
10
10
  const PUBLIC_URL = process.env["PUBLIC_URL"] ?? "/";
11
11
 
12
12
  export const kcContextCommonMock: KcContextBase.Common = {
13
- "url": {
14
- "loginAction": "#",
15
- "resourcesPath": pathJoin(PUBLIC_URL, resourcesPath),
16
- "resourcesCommonPath": pathJoin(PUBLIC_URL, resourcesCommonPath),
17
- "loginRestartFlowUrl": "/auth/realms/myrealm/login-actions/restart?client_id=account&tab_id=HoAx28ja4xg",
18
- "loginUrl": "/auth/realms/myrealm/login-actions/authenticate?client_id=account&tab_id=HoAx28ja4xg",
19
- },
20
- "realm": {
21
- "displayName": "myrealm",
22
- "displayNameHtml": "myrealm",
23
- "internationalizationEnabled": true,
24
- "registrationEmailAsUsername": true,
25
- },
26
- "locale": {
27
- "supported": [
28
- {
29
- "url": "/auth/realms/myrealm/login-actions/authenticate?client_id=account&tab_id=HoAx28ja4xg&execution=ee6c2834-46a4-4a20-a1b6-f6d6f6451b36&kc_locale=de",
30
- "languageTag": "de"
31
- },
32
- {
33
- "url": "/auth/realms/myrealm/login-actions/authenticate?client_id=account&tab_id=HoAx28ja4xg&execution=ee6c2834-46a4-4a20-a1b6-f6d6f6451b36&kc_locale=no",
34
- "languageTag": "no"
35
- },
36
- {
37
- "url": "/auth/realms/myrealm/login-actions/authenticate?client_id=account&tab_id=HoAx28ja4xg&execution=ee6c2834-46a4-4a20-a1b6-f6d6f6451b36&kc_locale=ru",
38
- "languageTag": "ru"
39
- },
40
- {
41
- "url": "/auth/realms/myrealm/login-actions/authenticate?client_id=account&tab_id=HoAx28ja4xg&execution=ee6c2834-46a4-4a20-a1b6-f6d6f6451b36&kc_locale=sv",
42
- "languageTag": "sv"
43
- },
44
- {
45
- "url": "/auth/realms/myrealm/login-actions/authenticate?client_id=account&tab_id=HoAx28ja4xg&execution=ee6c2834-46a4-4a20-a1b6-f6d6f6451b36&kc_locale=pt-BR",
46
- "languageTag": "pt-BR"
47
- },
48
- {
49
- "url": "/auth/realms/myrealm/login-actions/authenticate?client_id=account&tab_id=HoAx28ja4xg&execution=ee6c2834-46a4-4a20-a1b6-f6d6f6451b36&kc_locale=lt",
50
- "languageTag": "lt"
51
- },
52
- {
53
- "url": "/auth/realms/myrealm/login-actions/authenticate?client_id=account&tab_id=HoAx28ja4xg&execution=ee6c2834-46a4-4a20-a1b6-f6d6f6451b36&kc_locale=en",
54
- "languageTag": "en"
55
- },
56
- {
57
- "url": "/auth/realms/myrealm/login-actions/authenticate?client_id=account&tab_id=HoAx28ja4xg&execution=ee6c2834-46a4-4a20-a1b6-f6d6f6451b36&kc_locale=it",
58
- "languageTag": "it"
59
- },
60
- {
61
- "url": "/auth/realms/myrealm/login-actions/authenticate?client_id=account&tab_id=HoAx28ja4xg&execution=ee6c2834-46a4-4a20-a1b6-f6d6f6451b36&kc_locale=fr",
62
- "languageTag": "fr"
63
- },
64
- {
65
- "url": "/auth/realms/myrealm/login-actions/authenticate?client_id=account&tab_id=HoAx28ja4xg&execution=ee6c2834-46a4-4a20-a1b6-f6d6f6451b36&kc_locale=zh-CN",
66
- "languageTag": "zh-CN"
67
- },
68
- {
69
- "url": "/auth/realms/myrealm/login-actions/authenticate?client_id=account&tab_id=HoAx28ja4xg&execution=ee6c2834-46a4-4a20-a1b6-f6d6f6451b36&kc_locale=es",
70
- "languageTag": "es"
71
- },
72
- {
73
- "url": "/auth/realms/myrealm/login-actions/authenticate?client_id=account&tab_id=HoAx28ja4xg&execution=ee6c2834-46a4-4a20-a1b6-f6d6f6451b36&kc_locale=cs",
74
- "languageTag": "cs"
75
- },
76
- {
77
- "url": "/auth/realms/myrealm/login-actions/authenticate?client_id=account&tab_id=HoAx28ja4xg&execution=ee6c2834-46a4-4a20-a1b6-f6d6f6451b36&kc_locale=ja",
78
- "languageTag": "ja"
79
- },
80
- {
81
- "url": "/auth/realms/myrealm/login-actions/authenticate?client_id=account&tab_id=HoAx28ja4xg&execution=ee6c2834-46a4-4a20-a1b6-f6d6f6451b36&kc_locale=sk",
82
- "languageTag": "sk"
83
- },
84
- {
85
- "url": "/auth/realms/myrealm/login-actions/authenticate?client_id=account&tab_id=HoAx28ja4xg&execution=ee6c2834-46a4-4a20-a1b6-f6d6f6451b36&kc_locale=pl",
86
- "languageTag": "pl"
87
- },
88
- {
89
- "url": "/auth/realms/myrealm/login-actions/authenticate?client_id=account&tab_id=HoAx28ja4xg&execution=ee6c2834-46a4-4a20-a1b6-f6d6f6451b36&kc_locale=ca",
90
- "languageTag": "ca"
91
- },
92
- {
93
- "url": "/auth/realms/myrealm/login-actions/authenticate?client_id=account&tab_id=HoAx28ja4xg&execution=ee6c2834-46a4-4a20-a1b6-f6d6f6451b36&kc_locale=nl",
94
- "languageTag": "nl"
95
- },
96
- {
97
- "url": "/auth/realms/myrealm/login-actions/authenticate?client_id=account&tab_id=HoAx28ja4xg&execution=ee6c2834-46a4-4a20-a1b6-f6d6f6451b36&kc_locale=tr",
98
- "languageTag": "tr"
99
- }
100
- ],
101
- //"current": null as any
102
- "current": "English"
103
- },
104
- "auth": {
105
- "showUsername": false,
106
- "showResetCredentials": false,
107
- "showTryAnotherWayLink": false
108
- },
109
- "client": {
110
- "clientId": "myApp"
111
- },
112
- "scripts": [],
113
- "message": {
114
- "type": "success",
115
- "summary": "This is a test message"
116
- },
117
- "isAppInitiatedAction": false,
13
+ "url": {
14
+ "loginAction": "#",
15
+ "resourcesPath": pathJoin(PUBLIC_URL, resourcesPath),
16
+ "resourcesCommonPath": pathJoin(PUBLIC_URL, resourcesCommonPath),
17
+ "loginRestartFlowUrl": "/auth/realms/myrealm/login-actions/restart?client_id=account&tab_id=HoAx28ja4xg",
18
+ "loginUrl": "/auth/realms/myrealm/login-actions/authenticate?client_id=account&tab_id=HoAx28ja4xg",
19
+ },
20
+ "realm": {
21
+ "displayName": "myrealm",
22
+ "displayNameHtml": "myrealm",
23
+ "internationalizationEnabled": true,
24
+ "registrationEmailAsUsername": false,
25
+ },
26
+ "messagesPerField": {
27
+ "printIfExists": (...[, x]) => x,
28
+ "existsError": () => true,
29
+ "get": key => `Fake error for ${key}`,
30
+ "exists": () => true,
31
+ },
32
+ "locale": {
33
+ "supported": [
34
+ {
35
+ "url": "/auth/realms/myrealm/login-actions/authenticate?client_id=account&tab_id=HoAx28ja4xg&execution=ee6c2834-46a4-4a20-a1b6-f6d6f6451b36&kc_locale=de",
36
+ "languageTag": "de",
37
+ },
38
+ {
39
+ "url": "/auth/realms/myrealm/login-actions/authenticate?client_id=account&tab_id=HoAx28ja4xg&execution=ee6c2834-46a4-4a20-a1b6-f6d6f6451b36&kc_locale=no",
40
+ "languageTag": "no",
41
+ },
42
+ {
43
+ "url": "/auth/realms/myrealm/login-actions/authenticate?client_id=account&tab_id=HoAx28ja4xg&execution=ee6c2834-46a4-4a20-a1b6-f6d6f6451b36&kc_locale=ru",
44
+ "languageTag": "ru",
45
+ },
46
+ {
47
+ "url": "/auth/realms/myrealm/login-actions/authenticate?client_id=account&tab_id=HoAx28ja4xg&execution=ee6c2834-46a4-4a20-a1b6-f6d6f6451b36&kc_locale=sv",
48
+ "languageTag": "sv",
49
+ },
50
+ {
51
+ "url": "/auth/realms/myrealm/login-actions/authenticate?client_id=account&tab_id=HoAx28ja4xg&execution=ee6c2834-46a4-4a20-a1b6-f6d6f6451b36&kc_locale=pt-BR",
52
+ "languageTag": "pt-BR",
53
+ },
54
+ {
55
+ "url": "/auth/realms/myrealm/login-actions/authenticate?client_id=account&tab_id=HoAx28ja4xg&execution=ee6c2834-46a4-4a20-a1b6-f6d6f6451b36&kc_locale=lt",
56
+ "languageTag": "lt",
57
+ },
58
+ {
59
+ "url": "/auth/realms/myrealm/login-actions/authenticate?client_id=account&tab_id=HoAx28ja4xg&execution=ee6c2834-46a4-4a20-a1b6-f6d6f6451b36&kc_locale=en",
60
+ "languageTag": "en",
61
+ },
62
+ {
63
+ "url": "/auth/realms/myrealm/login-actions/authenticate?client_id=account&tab_id=HoAx28ja4xg&execution=ee6c2834-46a4-4a20-a1b6-f6d6f6451b36&kc_locale=it",
64
+ "languageTag": "it",
65
+ },
66
+ {
67
+ "url": "/auth/realms/myrealm/login-actions/authenticate?client_id=account&tab_id=HoAx28ja4xg&execution=ee6c2834-46a4-4a20-a1b6-f6d6f6451b36&kc_locale=fr",
68
+ "languageTag": "fr",
69
+ },
70
+ {
71
+ "url": "/auth/realms/myrealm/login-actions/authenticate?client_id=account&tab_id=HoAx28ja4xg&execution=ee6c2834-46a4-4a20-a1b6-f6d6f6451b36&kc_locale=zh-CN",
72
+ "languageTag": "zh-CN",
73
+ },
74
+ {
75
+ "url": "/auth/realms/myrealm/login-actions/authenticate?client_id=account&tab_id=HoAx28ja4xg&execution=ee6c2834-46a4-4a20-a1b6-f6d6f6451b36&kc_locale=es",
76
+ "languageTag": "es",
77
+ },
78
+ {
79
+ "url": "/auth/realms/myrealm/login-actions/authenticate?client_id=account&tab_id=HoAx28ja4xg&execution=ee6c2834-46a4-4a20-a1b6-f6d6f6451b36&kc_locale=cs",
80
+ "languageTag": "cs",
81
+ },
82
+ {
83
+ "url": "/auth/realms/myrealm/login-actions/authenticate?client_id=account&tab_id=HoAx28ja4xg&execution=ee6c2834-46a4-4a20-a1b6-f6d6f6451b36&kc_locale=ja",
84
+ "languageTag": "ja",
85
+ },
86
+ {
87
+ "url": "/auth/realms/myrealm/login-actions/authenticate?client_id=account&tab_id=HoAx28ja4xg&execution=ee6c2834-46a4-4a20-a1b6-f6d6f6451b36&kc_locale=sk",
88
+ "languageTag": "sk",
89
+ },
90
+ {
91
+ "url": "/auth/realms/myrealm/login-actions/authenticate?client_id=account&tab_id=HoAx28ja4xg&execution=ee6c2834-46a4-4a20-a1b6-f6d6f6451b36&kc_locale=pl",
92
+ "languageTag": "pl",
93
+ },
94
+ {
95
+ "url": "/auth/realms/myrealm/login-actions/authenticate?client_id=account&tab_id=HoAx28ja4xg&execution=ee6c2834-46a4-4a20-a1b6-f6d6f6451b36&kc_locale=ca",
96
+ "languageTag": "ca",
97
+ },
98
+ {
99
+ "url": "/auth/realms/myrealm/login-actions/authenticate?client_id=account&tab_id=HoAx28ja4xg&execution=ee6c2834-46a4-4a20-a1b6-f6d6f6451b36&kc_locale=nl",
100
+ "languageTag": "nl",
101
+ },
102
+ {
103
+ "url": "/auth/realms/myrealm/login-actions/authenticate?client_id=account&tab_id=HoAx28ja4xg&execution=ee6c2834-46a4-4a20-a1b6-f6d6f6451b36&kc_locale=tr",
104
+ "languageTag": "tr",
105
+ },
106
+ ],
107
+ //"current": null as any
108
+ "current": "English",
109
+ },
110
+ "auth": {
111
+ "showUsername": false,
112
+ "showResetCredentials": false,
113
+ "showTryAnotherWayLink": false,
114
+ },
115
+ "client": {
116
+ "clientId": "myApp",
117
+ },
118
+ "scripts": [],
119
+ "message": {
120
+ "type": "success",
121
+ "summary": "This is a test message",
122
+ },
123
+ "isAppInitiatedAction": false,
118
124
  };
119
125
 
120
-
121
- Object.defineProperty(
122
- kcContextCommonMock.locale!,
123
- "current",
124
- {
125
- "get": () => getKcLanguageTagLabel(getEvtKcLanguage().state),
126
- "enumerable": true
127
- }
128
- );
126
+ Object.defineProperty(kcContextCommonMock.locale!, "current", {
127
+ "get": () => getKcLanguageTagLabel(getEvtKcLanguage().state),
128
+ "enumerable": true,
129
+ });
129
130
 
130
131
  const loginUrl = {
131
- ...kcContextCommonMock.url,
132
- "loginResetCredentialsUrl": "/auth/realms/myrealm/login-actions/reset-credentials?client_id=account&tab_id=HoAx28ja4xg",
133
- "registrationUrl": "/auth/realms/myrealm/login-actions/registration?client_id=account&tab_id=HoAx28ja4xg"
132
+ ...kcContextCommonMock.url,
133
+ "loginResetCredentialsUrl": "/auth/realms/myrealm/login-actions/reset-credentials?client_id=account&tab_id=HoAx28ja4xg",
134
+ "registrationUrl": "/auth/realms/myrealm/login-actions/registration?client_id=account&tab_id=HoAx28ja4xg",
134
135
  };
135
136
 
136
137
  export const kcContextMocks: KcContextBase[] = [
137
- id<KcContextBase.Login>({
138
- ...kcContextCommonMock,
139
- "pageId": "login.ftl",
140
- "url": loginUrl,
141
- "realm": {
142
- ...kcContextCommonMock.realm,
143
- "loginWithEmailAllowed": true,
144
- "rememberMe": true,
145
- "password": true,
146
- "resetPasswordAllowed": true,
147
- "registrationAllowed": true
148
- },
149
- "auth": kcContextCommonMock.auth!,
150
- "social": {
151
- "displayInfo": true
152
- },
153
- "usernameEditDisabled": false,
154
- "login": {
155
- "rememberMe": false
156
- },
157
- "registrationDisabled": false,
158
-
159
- }),
160
- id<KcContextBase.Register>({
161
- ...kcContextCommonMock,
162
- "pageId": "register.ftl",
163
- "url": {
164
- ...loginUrl,
165
- "registrationAction": "http://localhost:8080/auth/realms/myrealm/login-actions/registration?session_code=gwZdUeO7pbYpFTRxiIxRg_QtzMbtFTKrNu6XW_f8asM&execution=12146ce0-b139-4bbd-b25b-0eccfee6577e&client_id=account&tab_id=uS8lYfebLa0"
166
- },
167
- "messagesPerField": {
168
- "printIfExists": (...[, x]) => x
169
- },
170
- "scripts": [],
171
- "isAppInitiatedAction": false,
172
- "register": {
173
- "formData": {}
174
- },
175
- "passwordRequired": true,
176
- "recaptchaRequired": false,
177
- "social": {
178
- "displayInfo": true
179
- },
180
-
181
- }),
182
- id<KcContextBase.Info>({
183
- ...kcContextCommonMock,
184
- "pageId": "info.ftl",
185
- "messageHeader": "<Message header>",
186
- "requiredActions": undefined,
187
- "skipLink": false,
188
- "actionUri": "#",
189
- "client": {
190
- "clientId": "myApp",
191
- "baseUrl": "#"
192
- }
193
-
194
- }),
195
- id<KcContextBase.Error>({
196
- ...kcContextCommonMock,
197
- "pageId": "error.ftl",
198
- "client": {
199
- "clientId": "myApp",
200
- "baseUrl": "#"
201
- },
202
- "message": {
203
- "type": "error",
204
- "summary": "This is the error message"
205
- }
206
- }),
207
- id<KcContextBase.LoginResetPassword>({
208
- ...kcContextCommonMock,
209
- "pageId": "login-reset-password.ftl",
210
- "realm": {
211
- ...kcContextCommonMock.realm,
212
- "loginWithEmailAllowed": false
213
- }
214
-
215
- }),
216
- id<KcContextBase.LoginVerifyEmail>({
217
- ...kcContextCommonMock,
218
- "pageId": "login-verify-email.ftl"
219
- }),
220
- id<KcContextBase.Terms>({
221
- ...kcContextCommonMock,
222
- "pageId": "terms.ftl"
138
+ id<KcContextBase.Login>({
139
+ ...kcContextCommonMock,
140
+ "pageId": "login.ftl",
141
+ "url": loginUrl,
142
+ "realm": {
143
+ ...kcContextCommonMock.realm,
144
+ "loginWithEmailAllowed": true,
145
+ "rememberMe": true,
146
+ "password": true,
147
+ "resetPasswordAllowed": true,
148
+ "registrationAllowed": true,
149
+ },
150
+ "auth": kcContextCommonMock.auth!,
151
+ "social": {
152
+ "displayInfo": true,
153
+ },
154
+ "usernameEditDisabled": false,
155
+ "login": {
156
+ "rememberMe": false,
157
+ },
158
+ "registrationDisabled": false,
159
+ }),
160
+ ...(() => {
161
+ const registerCommon: KcContextBase.RegisterCommon = {
162
+ ...kcContextCommonMock,
163
+ "url": {
164
+ ...loginUrl,
165
+ "registrationAction":
166
+ "http://localhost:8080/auth/realms/myrealm/login-actions/registration?session_code=gwZdUeO7pbYpFTRxiIxRg_QtzMbtFTKrNu6XW_f8asM&execution=12146ce0-b139-4bbd-b25b-0eccfee6577e&client_id=account&tab_id=uS8lYfebLa0",
167
+ },
168
+ "scripts": [],
169
+ "isAppInitiatedAction": false,
170
+ "passwordRequired": true,
171
+ "recaptchaRequired": false,
172
+ "social": {
173
+ "displayInfo": true,
174
+ },
175
+ };
223
176
 
224
- }),
225
- id<KcContextBase.LoginOtp>({
226
- ...kcContextCommonMock,
227
- "pageId": "login-otp.ftl",
228
- "otpLogin": {
229
- "userOtpCredentials": [
230
- {
231
- "id": "id1",
232
- "userLabel": "label1"
233
- },
234
- {
235
- "id": "id2",
236
- "userLabel": "label2"
237
- }
238
- ]
239
- }
177
+ return [
178
+ id<KcContextBase.Register>({
179
+ "pageId": "register.ftl",
180
+ ...registerCommon,
181
+ "register": {
182
+ "formData": {},
183
+ },
184
+ }),
185
+ id<KcContextBase.RegisterUserProfile>({
186
+ "pageId": "register-user-profile.ftl",
187
+ ...registerCommon,
188
+ "profile": {
189
+ "context": "REGISTRATION_PROFILE" as const,
190
+ ...(() => {
191
+ const attributes: Attribute[] = [
192
+ {
193
+ "validators": {
194
+ "username-prohibited-characters": {
195
+ "ignore.empty.value": true,
196
+ },
197
+ "up-username-has-value": {},
198
+ "length": {
199
+ "ignore.empty.value": true,
200
+ "min": "3",
201
+ "max": "255",
202
+ },
203
+ "up-duplicate-username": {},
204
+ "up-username-mutation": {},
205
+ },
206
+ "displayName": "${username}",
207
+ "annotations": {},
208
+ "required": true,
209
+ "groupAnnotations": {},
210
+ "autocomplete": "username",
211
+ "readOnly": false,
212
+ "name": "username",
213
+ },
214
+ {
215
+ "validators": {
216
+ "up-email-exists-as-username": {},
217
+ "length": {
218
+ "max": "255",
219
+ "ignore.empty.value": true,
220
+ },
221
+ "up-blank-attribute-value": {
222
+ "error-message": "missingEmailMessage",
223
+ "fail-on-null": false,
224
+ },
225
+ "up-duplicate-email": {},
226
+ "email": {
227
+ "ignore.empty.value": true,
228
+ },
229
+ },
230
+ "displayName": "${email}",
231
+ "annotations": {},
232
+ "required": true,
233
+ "groupAnnotations": {},
234
+ "autocomplete": "email",
235
+ "readOnly": false,
236
+ "name": "email",
237
+ },
238
+ {
239
+ "validators": {
240
+ "length": {
241
+ "max": "255",
242
+ "ignore.empty.value": true,
243
+ },
244
+ "person-name-prohibited-characters": {
245
+ "ignore.empty.value": true,
246
+ },
247
+ "up-immutable-attribute": {},
248
+ "up-attribute-required-by-metadata-value": {},
249
+ },
250
+ "displayName": "${firstName}",
251
+ "annotations": {},
252
+ "required": true,
253
+ "groupAnnotations": {},
254
+ "readOnly": false,
255
+ "name": "firstName",
256
+ },
257
+ {
258
+ "validators": {
259
+ "length": {
260
+ "max": "255",
261
+ "ignore.empty.value": true,
262
+ },
263
+ "person-name-prohibited-characters": {
264
+ "ignore.empty.value": true,
265
+ },
266
+ "up-immutable-attribute": {},
267
+ "up-attribute-required-by-metadata-value": {},
268
+ },
269
+ "displayName": "${lastName}",
270
+ "annotations": {},
271
+ "required": true,
272
+ "groupAnnotations": {},
273
+ "readOnly": false,
274
+ "name": "lastName",
275
+ },
276
+ {
277
+ "validators": {
278
+ "length": {
279
+ "ignore.empty.value": true,
280
+ "min": "3",
281
+ "max": "9",
282
+ },
283
+ "up-immutable-attribute": {},
284
+ "up-attribute-required-by-metadata-value": {},
285
+ "email": {
286
+ "ignore.empty.value": true,
287
+ },
288
+ },
289
+ "displayName": "${foo}",
290
+ "annotations": {
291
+ "this_is_second_key": "this_is_second_value",
292
+ "this_is_first_key": "this_is_first_value",
293
+ },
294
+ "required": true,
295
+ "groupAnnotations": {},
296
+ "readOnly": false,
297
+ "name": "foo",
298
+ },
299
+ ];
240
300
 
241
- }),
242
- id<KcContextBase.LoginUpdateProfile>({
243
- ...kcContextCommonMock,
244
- "pageId": "login-update-profile.ftl",
245
- "user": {
246
- "editUsernameAllowed": true,
247
- "username": "anUsername",
248
- "email": "foo@example.com",
249
- "firstName": "aFirstName",
250
- "lastName": "aLastName"
251
- },
252
- "messagesPerField": {
253
- "printIfExists": () => undefined
254
- }
255
- }),
256
- id<KcContextBase.LoginIdpLinkConfirm>({
257
- ...kcContextCommonMock,
258
- "pageId": "login-idp-link-confirm.ftl",
259
- "idpAlias": "FranceConnect"
260
- })
301
+ return {
302
+ attributes,
303
+ "attributesByName": Object.fromEntries(attributes.map(attribute => [attribute.name, attribute])) as any,
304
+ } as any;
305
+ })(),
306
+ },
307
+ }),
308
+ ];
309
+ })(),
310
+ id<KcContextBase.Info>({
311
+ ...kcContextCommonMock,
312
+ "pageId": "info.ftl",
313
+ "messageHeader": "<Message header>",
314
+ "requiredActions": undefined,
315
+ "skipLink": false,
316
+ "actionUri": "#",
317
+ "client": {
318
+ "clientId": "myApp",
319
+ "baseUrl": "#",
320
+ },
321
+ }),
322
+ id<KcContextBase.Error>({
323
+ ...kcContextCommonMock,
324
+ "pageId": "error.ftl",
325
+ "client": {
326
+ "clientId": "myApp",
327
+ "baseUrl": "#",
328
+ },
329
+ "message": {
330
+ "type": "error",
331
+ "summary": "This is the error message",
332
+ },
333
+ }),
334
+ id<KcContextBase.LoginResetPassword>({
335
+ ...kcContextCommonMock,
336
+ "pageId": "login-reset-password.ftl",
337
+ "realm": {
338
+ ...kcContextCommonMock.realm,
339
+ "loginWithEmailAllowed": false,
340
+ },
341
+ }),
342
+ id<KcContextBase.LoginVerifyEmail>({
343
+ ...kcContextCommonMock,
344
+ "pageId": "login-verify-email.ftl",
345
+ }),
346
+ id<KcContextBase.Terms>({
347
+ ...kcContextCommonMock,
348
+ "pageId": "terms.ftl",
349
+ }),
350
+ id<KcContextBase.LoginOtp>({
351
+ ...kcContextCommonMock,
352
+ "pageId": "login-otp.ftl",
353
+ "otpLogin": {
354
+ "userOtpCredentials": [
355
+ {
356
+ "id": "id1",
357
+ "userLabel": "label1",
358
+ },
359
+ {
360
+ "id": "id2",
361
+ "userLabel": "label2",
362
+ },
363
+ ],
364
+ },
365
+ }),
366
+ id<KcContextBase.LoginUpdateProfile>({
367
+ ...kcContextCommonMock,
368
+ "pageId": "login-update-profile.ftl",
369
+ "user": {
370
+ "editUsernameAllowed": true,
371
+ "username": "anUsername",
372
+ "email": "foo@example.com",
373
+ "firstName": "aFirstName",
374
+ "lastName": "aLastName",
375
+ },
376
+ }),
377
+ id<KcContextBase.LoginIdpLinkConfirm>({
378
+ ...kcContextCommonMock,
379
+ "pageId": "login-idp-link-confirm.ftl",
380
+ "idpAlias": "FranceConnect",
381
+ }),
261
382
  ];
@@ -1,6 +1,5 @@
1
-
2
1
  import { join as pathJoin } from "path";
3
2
 
4
3
  export const subDirOfPublicDirBasename = "keycloak_static";
5
4
  export const resourcesPath = pathJoin(subDirOfPublicDirBasename, "/resources");
6
- export const resourcesCommonPath = pathJoin(subDirOfPublicDirBasename, "/resources_common");
5
+ export const resourcesCommonPath = pathJoin(subDirOfPublicDirBasename, "/resources_common");