keycloakify 4.2.9 β†’ 4.2.13

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,3 +1,20 @@
1
+ ### **4.2.13** (2021-12-08)
2
+
3
+ - Fix broken link about how to import fonts #62
4
+ - Add a video to show how to test the theme in a local container
5
+
6
+ ### **4.2.12** (2021-12-08)
7
+
8
+ - Update post build instructions
9
+
10
+ ### **4.2.11** (2021-12-07)
11
+
12
+
13
+
14
+ ### **4.2.10** (2021-11-12)
15
+
16
+ - Export an exaustive list of KcLanguageTag
17
+
1
18
  ### **4.2.9** (2021-11-11)
2
19
 
3
20
  - Fix useAdvancedMsg
package/README.md CHANGED
@@ -77,6 +77,7 @@ If you already have a Keycloak custom theme, it can be easily ported to Keycloak
77
77
  - [Implement context persistence (optional)](#implement-context-persistence-optional)
78
78
  - [Kickstart video](#kickstart-video)
79
79
  - [About the errors related to `objectToJson` in Keycloak logs.](#about-the-errors-related-to-objecttojson-in-keycloak-logs)
80
+ - [The pages take too long to load ?](#the-pages-take-too-long-to-load-)
80
81
  - [Adding custom message (to `i18n/useKcMessage.tsx`)](#adding-custom-message-to-i18nusekcmessagetsx)
81
82
  - [Email domain whitelist](#email-domain-whitelist)
82
83
  - [Changelog highlights](#changelog-highlights)
@@ -87,6 +88,8 @@ If you already have a Keycloak custom theme, it can be easily ported to Keycloak
87
88
 
88
89
  # Requirements
89
90
 
91
+ On Windows OS you'll have to use [WSL](https://docs.microsoft.com/en-us/windows/wsl/install-win10). More info [here](https://github.com/InseeFrLab/keycloakify/issues/54%23issuecomment-984834217)
92
+
90
93
  Tested with the following Keycloak versions:
91
94
 
92
95
  - [11.0.3](https://hub.docker.com/layers/jboss/keycloak/11.0.3/images/sha256-4438f1e51c1369371cb807dffa526e1208086b3ebb9cab009830a178de949782?context=explore)
@@ -106,8 +109,6 @@ For more information see [this issue](https://github.com/InseeFrLab/keycloakify/
106
109
  - `mvn` ([Maven](https://maven.apache.org/)), `rm`, `mkdir`, `curl`, `unzip` are assumed to be available.
107
110
  - `docker` must be up and running when running `yarn keycloak`.
108
111
 
109
- On Windows you'll have to use [WSL](https://docs.microsoft.com/en-us/windows/wsl/install-win10).
110
-
111
112
  ## My framework doesn’t seem to be supported, what can I do?
112
113
 
113
114
  Currently Keycloakify is only compatible with `create-react-app` apps.
@@ -373,7 +374,8 @@ this limitation doesn't apply, you can import fonts however you see fit.
373
374
  - If it is possible, use Google Fonts or any other font provider.
374
375
  - If you want to host your font recommended approach is to move your fonts into the `public`
375
376
  directory and to place your `@font-face` statements in the `public/index.html`.
376
- Example [here](https://github.com/InseeFrLab/onyxia-ui/blob/0e3a04610cfe872ca71dad59e05ced8f785dee4b/public/index.html#L6-L51).
377
+ Example [here](https://github.com/garronej/keycloakify-demo-app/blob/9aa2dbaec28a7786d6b2983c9a59d393dec1b2d6/public/index.html#L27-L73)
378
+ (and the font are [here](https://github.com/garronej/keycloakify-demo-app/tree/main/public/fonts/WorkSans)).
377
379
  - You can also [use non relative url](https://github.com/garronej/keycloakify-demo-app/blob/2de8a9eb6f5de9c94f9cd3991faad0377e63268c/src/fonts.scss#L16) but don't forget [`Access-Control-Allow-Origin`](https://github.com/garronej/keycloakify-demo-app/blob/2de8a9eb6f5de9c94f9cd3991faad0377e63268c/nginx.conf#L17-L19).
378
380
 
379
381
  # Implement context persistence (optional)
@@ -461,6 +463,15 @@ To [converts the `.ftl` values into a JavaScript object](https://github.com/Inse
461
463
  without making assumptions on the `.data_model` we have to do things that throws.
462
464
  It's all-right because every statement that can fail is inside an `<#attempt><#recorver>` block but it results in errors being printed to the logs.
463
465
 
466
+ # The pages take too long to load ?
467
+
468
+ The problem of templates taking a long time to load only happens in the test environment, when you have a console logging all the above-mentioned `.ftl` warnings in real time. Logging all those warnings is what takes time. Once in production page load is way faster.
469
+
470
+ If you run the docker container locally we acknowledge that the loading time is getting out of hand.
471
+ We are [in the process](https://github.com/InseeFrLab/keycloakify/pull/63) of resolving this issue.
472
+
473
+ In the meantime we recommend [to run the docker container as a background task](https://youtu.be/F29Z1GaH-jk).
474
+
464
475
  # Adding custom message (to `i18n/useKcMessage.tsx`)
465
476
 
466
477
  You can reproduce [this approach](https://github.com/garronej/keycloakify-demo-app/blob/main/src/kcMessagesExtension.ts)
@@ -127,11 +127,14 @@ function main() {
127
127
  "",
128
128
  "\uD83D\uDC49 $ ./" + (0, path_1.relative)(reactProjectDirPath, (0, path_1.join)(exports.keycloakThemeBuildingDirPath, generateDebugFiles_1.containerLaunchScriptBasename)) + " \uD83D\uDC48",
129
129
  "",
130
- 'To enable the theme within keycloak log into the admin console ( πŸ‘‰ http://localhost:8080 username: admin, password: admin πŸ‘ˆ), create a realm (called "myrealm" for example),',
131
- "go to your realm settings, click on the theme tab then select " + themeName + ".",
132
- "More details: https://www.keycloak.org/getting-started/getting-started-docker",
130
+ "Once your container is up and running: ",
131
+ "- Log into the admin console πŸ‘‰ http://localhost:8080 username: admin, password: admin πŸ‘ˆ",
132
+ '- Create a realm named "myrealm"',
133
+ '- Create a client with id "myclient" and root url: "https://www.keycloak.org/app/"',
134
+ "- Select Login Theme: " + themeName + " (don't forget to save at the bottom of the page)",
135
+ "- Go to \uD83D\uDC49 https://www.keycloak.org/app/ \uD83D\uDC48 Click \"Save\" then \"Sign in\". You should see your login page",
133
136
  "",
134
- "Once your container is up and configured πŸ‘‰ http://localhost:8080/auth/realms/myrealm/account πŸ‘ˆ",
137
+ "Video demoing this process: https://youtu.be/N3wlBoH4hKg",
135
138
  "",
136
139
  ].join("\n"));
137
140
  }
@@ -1 +1 @@
1
- {"version":3,"file":"build-keycloak-theme.js","sourceRoot":"","sources":["../../src/bin/build-keycloak-theme/build-keycloak-theme.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"build-keycloak-theme.js","sourceRoot":"","sources":["../../src/bin/build-keycloak-theme/build-keycloak-theme.ts"],"names":[],"mappings":"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"}
@@ -24,6 +24,7 @@ declare const kcLanguageByTagLabel: {
24
24
  };
25
25
  export declare type LanguageLabel = typeof kcLanguageByTagLabel[keyof typeof kcLanguageByTagLabel];
26
26
  export declare function getKcLanguageTagLabel(language: KcLanguageTag): LanguageLabel;
27
+ export declare const kcLanguageTags: ("tr" | "no" | "en" | "fr" | "ca" | "cs" | "da" | "de" | "es" | "hu" | "it" | "ja" | "lt" | "nl" | "pl" | "pt-BR" | "ru" | "sk" | "sv" | "zh-CN")[];
27
28
  /**
28
29
  * Pass in "fr-FR" or "franΓ§ais" for example, it will return the AvailableLanguage
29
30
  * it corresponds to: "fr".
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getBestMatchAmongKcLanguageTag = exports.getKcLanguageTagLabel = void 0;
3
+ exports.getBestMatchAmongKcLanguageTag = exports.kcLanguageTags = exports.getKcLanguageTagLabel = void 0;
4
4
  var objectKeys_1 = require("tsafe/objectKeys");
5
5
  var login_1 = require("./kcMessages/login");
6
6
  var kcLanguageByTagLabel = {
@@ -32,7 +32,7 @@ function getKcLanguageTagLabel(language) {
32
32
  return (_a = kcLanguageByTagLabel[language]) !== null && _a !== void 0 ? _a : language;
33
33
  }
34
34
  exports.getKcLanguageTagLabel = getKcLanguageTagLabel;
35
- var availableLanguages = (0, objectKeys_1.objectKeys)(login_1.kcMessages);
35
+ exports.kcLanguageTags = (0, objectKeys_1.objectKeys)(login_1.kcMessages);
36
36
  /**
37
37
  * Pass in "fr-FR" or "franΓ§ais" for example, it will return the AvailableLanguage
38
38
  * it corresponds to: "fr".
@@ -41,7 +41,7 @@ var availableLanguages = (0, objectKeys_1.objectKeys)(login_1.kcMessages);
41
41
  */
42
42
  function getBestMatchAmongKcLanguageTag(languageLike) {
43
43
  var iso2LanguageLike = languageLike.split("-")[0].toLowerCase();
44
- var kcLanguageTag = availableLanguages.find(function (language) {
44
+ var kcLanguageTag = exports.kcLanguageTags.find(function (language) {
45
45
  return language.toLowerCase().includes(iso2LanguageLike) ||
46
46
  getKcLanguageTagLabel(language).toLocaleLowerCase() === languageLike.toLocaleLowerCase();
47
47
  });
@@ -1 +1 @@
1
- {"version":3,"file":"KcLanguageTag.js","sourceRoot":"","sources":["../../src/lib/i18n/KcLanguageTag.ts"],"names":[],"mappings":";;;AAAA,+CAA8C;AAC9C,4CAAgD;AAIhD,IAAM,oBAAoB,GAAG;IACzB,4BAA4B;IAC5B,IAAI,EAAE,SAAS;IACf,IAAI,EAAE,UAAU;IAChB,IAAI,EAAE,UAAU;IAChB,IAAI,EAAE,QAAQ;IACd,IAAI,EAAE,SAAS;IACf,IAAI,EAAE,SAAS;IACf,IAAI,EAAE,OAAO;IACb,OAAO,EAAE,oBAAoB;IAC7B,IAAI,EAAE,SAAS;IACf,IAAI,EAAE,YAAY;IAClB,IAAI,EAAE,KAAK;IACX,IAAI,EAAE,QAAQ;IACd,OAAO,EAAE,MAAM;IACf,IAAI,EAAE,SAAS;IACf,IAAI,EAAE,UAAU;IAChB,IAAI,EAAE,SAAS;IACf,IAAI,EAAE,YAAY;IAClB,IAAI,EAAE,QAAQ;IACd,IAAI,EAAE,OAAO;IACb,IAAI,EAAE,QAAQ;IACd,2BAA2B;CACrB,CAAC;AAIX,SAAgB,qBAAqB,CAAC,QAAuB;;IACzD,OAAO,MAAA,oBAAoB,CAAC,QAAQ,CAAC,mCAAI,QAAQ,CAAC;AACtD,CAAC;AAFD,sDAEC;AAED,IAAM,kBAAkB,GAAG,IAAA,uBAAU,EAAC,kBAAU,CAAC,CAAC;AAElD;;;;;GAKG;AACH,SAAgB,8BAA8B,CAAC,YAAoB;IAC/D,IAAM,gBAAgB,GAAG,YAAY,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;IAElE,IAAM,aAAa,GAAG,kBAAkB,CAAC,IAAI,CACzC,UAAA,QAAQ;QACJ,OAAA,QAAQ,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,gBAAgB,CAAC;YACjD,qBAAqB,CAAC,QAAQ,CAAC,CAAC,iBAAiB,EAAE,KAAK,YAAY,CAAC,iBAAiB,EAAE;IADxF,CACwF,CAC/F,CAAC;IAEF,IAAI,aAAa,KAAK,SAAS,EAAE;QAC7B,OAAO,aAAa,CAAC;KACxB;IAED,IAAI,YAAY,KAAK,SAAS,CAAC,QAAQ,EAAE;QACrC,OAAO,8BAA8B,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;KAC7D;IAED,OAAO,IAAI,CAAC;AAChB,CAAC;AAlBD,wEAkBC"}
1
+ {"version":3,"file":"KcLanguageTag.js","sourceRoot":"","sources":["../../src/lib/i18n/KcLanguageTag.ts"],"names":[],"mappings":";;;AAAA,+CAA8C;AAC9C,4CAAgD;AAIhD,IAAM,oBAAoB,GAAG;IACzB,4BAA4B;IAC5B,IAAI,EAAE,SAAS;IACf,IAAI,EAAE,UAAU;IAChB,IAAI,EAAE,UAAU;IAChB,IAAI,EAAE,QAAQ;IACd,IAAI,EAAE,SAAS;IACf,IAAI,EAAE,SAAS;IACf,IAAI,EAAE,OAAO;IACb,OAAO,EAAE,oBAAoB;IAC7B,IAAI,EAAE,SAAS;IACf,IAAI,EAAE,YAAY;IAClB,IAAI,EAAE,KAAK;IACX,IAAI,EAAE,QAAQ;IACd,OAAO,EAAE,MAAM;IACf,IAAI,EAAE,SAAS;IACf,IAAI,EAAE,UAAU;IAChB,IAAI,EAAE,SAAS;IACf,IAAI,EAAE,YAAY;IAClB,IAAI,EAAE,QAAQ;IACd,IAAI,EAAE,OAAO;IACb,IAAI,EAAE,QAAQ;IACd,2BAA2B;CACrB,CAAC;AAIX,SAAgB,qBAAqB,CAAC,QAAuB;;IACzD,OAAO,MAAA,oBAAoB,CAAC,QAAQ,CAAC,mCAAI,QAAQ,CAAC;AACtD,CAAC;AAFD,sDAEC;AAEY,QAAA,cAAc,GAAG,IAAA,uBAAU,EAAC,kBAAU,CAAC,CAAC;AAErD;;;;;GAKG;AACH,SAAgB,8BAA8B,CAAC,YAAoB;IAC/D,IAAM,gBAAgB,GAAG,YAAY,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;IAElE,IAAM,aAAa,GAAG,sBAAc,CAAC,IAAI,CACrC,UAAA,QAAQ;QACJ,OAAA,QAAQ,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,gBAAgB,CAAC;YACjD,qBAAqB,CAAC,QAAQ,CAAC,CAAC,iBAAiB,EAAE,KAAK,YAAY,CAAC,iBAAiB,EAAE;IADxF,CACwF,CAC/F,CAAC;IAEF,IAAI,aAAa,KAAK,SAAS,EAAE;QAC7B,OAAO,aAAa,CAAC;KACxB;IAED,IAAI,YAAY,KAAK,SAAS,CAAC,QAAQ,EAAE;QACrC,OAAO,8BAA8B,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;KAC7D;IAED,OAAO,IAAI,CAAC;AAChB,CAAC;AAlBD,wEAkBC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "keycloakify",
3
- "version": "4.2.9",
3
+ "version": "4.2.13",
4
4
  "description": "Keycloak theme generator for Reacts app",
5
5
  "repository": {
6
6
  "type": "git",
@@ -321,7 +321,7 @@
321
321
  "@emotion/react": "^11.4.1",
322
322
  "powerhooks": "^0.10.0",
323
323
  "react": "^16.8.0 || ^17.0.0",
324
- "tss-react": "^1.1.0"
324
+ "tss-react": "^1.1.0 || ^3.0.0"
325
325
  },
326
326
  "devDependencies": {
327
327
  "@emotion/react": "^11.4.1",
@@ -335,7 +335,7 @@
335
335
  "properties-parser": "^0.3.1",
336
336
  "react": "^17.0.1",
337
337
  "rimraf": "^3.0.2",
338
- "tss-react": "^1.1.0",
338
+ "tss-react": "^3.0.0",
339
339
  "typescript": "^4.2.3"
340
340
  },
341
341
  "dependencies": {
@@ -121,11 +121,14 @@ export function main() {
121
121
  "",
122
122
  `πŸ‘‰ $ ./${pathRelative(reactProjectDirPath, pathJoin(keycloakThemeBuildingDirPath, containerLaunchScriptBasename))} πŸ‘ˆ`,
123
123
  "",
124
- 'To enable the theme within keycloak log into the admin console ( πŸ‘‰ http://localhost:8080 username: admin, password: admin πŸ‘ˆ), create a realm (called "myrealm" for example),',
125
- `go to your realm settings, click on the theme tab then select ${themeName}.`,
126
- `More details: https://www.keycloak.org/getting-started/getting-started-docker`,
124
+ "Once your container is up and running: ",
125
+ "- Log into the admin console πŸ‘‰ http://localhost:8080 username: admin, password: admin πŸ‘ˆ",
126
+ '- Create a realm named "myrealm"',
127
+ '- Create a client with id "myclient" and root url: "https://www.keycloak.org/app/"',
128
+ `- Select Login Theme: ${themeName} (don't forget to save at the bottom of the page)`,
129
+ `- Go to πŸ‘‰ https://www.keycloak.org/app/ πŸ‘ˆ Click "Save" then "Sign in". You should see your login page`,
127
130
  "",
128
- "Once your container is up and configured πŸ‘‰ http://localhost:8080/auth/realms/myrealm/account πŸ‘ˆ",
131
+ "Video demoing this process: https://youtu.be/N3wlBoH4hKg",
129
132
  "",
130
133
  ].join("\n"),
131
134
  );
@@ -34,7 +34,7 @@ export function getKcLanguageTagLabel(language: KcLanguageTag): LanguageLabel {
34
34
  return kcLanguageByTagLabel[language] ?? language;
35
35
  }
36
36
 
37
- const availableLanguages = objectKeys(kcMessages);
37
+ export const kcLanguageTags = objectKeys(kcMessages);
38
38
 
39
39
  /**
40
40
  * Pass in "fr-FR" or "franΓ§ais" for example, it will return the AvailableLanguage
@@ -45,7 +45,7 @@ const availableLanguages = objectKeys(kcMessages);
45
45
  export function getBestMatchAmongKcLanguageTag(languageLike: string): KcLanguageTag {
46
46
  const iso2LanguageLike = languageLike.split("-")[0].toLowerCase();
47
47
 
48
- const kcLanguageTag = availableLanguages.find(
48
+ const kcLanguageTag = kcLanguageTags.find(
49
49
  language =>
50
50
  language.toLowerCase().includes(iso2LanguageLike) ||
51
51
  getKcLanguageTagLabel(language).toLocaleLowerCase() === languageLike.toLocaleLowerCase(),