Compare commits
1 Commits
Author | SHA1 | Date | |
---|---|---|---|
3d0fde06d2 |
25
CHANGELOG.md
25
CHANGELOG.md
@ -1,28 +1,3 @@
|
|||||||
### **0.0.13** (2021-02-23)
|
|
||||||
|
|
||||||
- bump version
|
|
||||||
|
|
||||||
### **0.0.12** (2021-02-23)
|
|
||||||
|
|
||||||
- update readme
|
|
||||||
|
|
||||||
### **0.0.11** (2021-02-23)
|
|
||||||
|
|
||||||
- Add documentation
|
|
||||||
|
|
||||||
### **0.0.10** (2021-02-23)
|
|
||||||
|
|
||||||
- Remove extra closing bracket
|
|
||||||
|
|
||||||
### **0.0.9** (2021-02-22)
|
|
||||||
|
|
||||||
- fix container startup script
|
|
||||||
- minor update
|
|
||||||
|
|
||||||
### **0.0.8** (2021-02-21)
|
|
||||||
|
|
||||||
- Include theme properties
|
|
||||||
|
|
||||||
### **0.0.7** (2021-02-21)
|
### **0.0.7** (2021-02-21)
|
||||||
|
|
||||||
- fix build
|
- fix build
|
||||||
|
96
README.md
96
README.md
@ -2,7 +2,7 @@
|
|||||||
<img src="https://user-images.githubusercontent.com/6702424/80216211-00ef5280-863e-11ea-81de-59f3a3d4b8e4.png">
|
<img src="https://user-images.githubusercontent.com/6702424/80216211-00ef5280-863e-11ea-81de-59f3a3d4b8e4.png">
|
||||||
</p>
|
</p>
|
||||||
<p align="center">
|
<p align="center">
|
||||||
<i>🔏 Keycloak theme generator for Reacts app💅</i>
|
<i>Provides a way to customize Keycloak login and register pages with React</i>
|
||||||
<br>
|
<br>
|
||||||
<br>
|
<br>
|
||||||
<img src="https://github.com/garronej/keycloak-react-theming/workflows/ci/badge.svg?branch=develop">
|
<img src="https://github.com/garronej/keycloak-react-theming/workflows/ci/badge.svg?branch=develop">
|
||||||
@ -10,87 +10,31 @@
|
|||||||
<img src="https://img.shields.io/npm/dw/keycloak-react-theming">
|
<img src="https://img.shields.io/npm/dw/keycloak-react-theming">
|
||||||
<img src="https://img.shields.io/npm/l/keycloak-react-theming">
|
<img src="https://img.shields.io/npm/l/keycloak-react-theming">
|
||||||
</p>
|
</p>
|
||||||
|
<p align="center">
|
||||||
|
<a href="https://github.com/garronej/keycloak-react-theming">Home</a>
|
||||||
|
-
|
||||||
|
<a href="https://github.com/garronej/keycloak-react-theming">Documentation</a>
|
||||||
|
</p>
|
||||||
|
|
||||||
# MOTIVATION
|
# REQUIREMENT
|
||||||
|
## For building the theme:
|
||||||
|
|
||||||
The problem:
|
- `mvn` must be installed
|
||||||
|
|
||||||

|
## For development, (testing the theme on a docker container ect ):
|
||||||
|
|
||||||
When we redirected to Keycloak the user suffers from a harsh context switch.
|
- `rm`
|
||||||
The language is set back to default and the theme is different.
|
- `mkdir` )
|
||||||
|
- `wget`
|
||||||
|
- `unzip`
|
||||||
|
|
||||||
Keycloak does offer a way to customize theses pages but it requires a lot of raw HTML/CSS hacking
|
Tested on MacOS
|
||||||
to reproduce the look and feel of a specific app. Not mentioning the maintenance cost of such an endeavour.
|
|
||||||
|
|
||||||
Wouldn't it be great if we could just design the login and register pages as if they where part of our app while
|
# USAGE
|
||||||
still letting Keycloak handle the heavy lifting of actually authenticating the users?
|
|
||||||
|
|
||||||
Here is `yarn add keycloak-react-theming` for you 🍸
|
## Build the theme:
|
||||||
|
`npx build-keycloak-theme`
|
||||||
|
|
||||||

|
## (Optional/Debug) Download more themes:
|
||||||

|
|
||||||

|
|
||||||
|
|
||||||
# How to use
|
`npx download-sample-keycloak-themes`
|
||||||
|
|
||||||
## Setting up the build tool
|
|
||||||
|
|
||||||
Add `keycloak-react-theming` to the dev dependencies of your project `npm install --save-dev keycloak-react-theming` or `yarn add --dev keycloak-react-theming`
|
|
||||||
then configure your `package.json` build's script to build the keycloak's theme by adding `&& build-keycloak-theme`.
|
|
||||||
|
|
||||||
Typically you will get:
|
|
||||||
|
|
||||||
`package.json`:
|
|
||||||
```json
|
|
||||||
"devDependencies": {
|
|
||||||
"keycloak-react-theming": "^0.0.10",
|
|
||||||
[...]
|
|
||||||
},
|
|
||||||
"scripts": {
|
|
||||||
"build": "react-scripts build && build-keycloak-theme",
|
|
||||||
[...]
|
|
||||||
},
|
|
||||||
```
|
|
||||||
|
|
||||||
Then build your app with `yarn run build` or `npm run build`, you will be provided with instructions
|
|
||||||
about how to load the theme into Keycloak.
|
|
||||||
|
|
||||||
## Developing your login and register pages in your React app
|
|
||||||
|
|
||||||
TODO
|
|
||||||
|
|
||||||
# How to implement context persistance
|
|
||||||
|
|
||||||
If you want dark mode preference, language and others users preferences your can do so
|
|
||||||
very easily by using [`powerhooks/useGlobalState`](https://github.com/garronej/powerhooks)
|
|
||||||
|
|
||||||
WARNING: `powerhooks` is still a work in progress.
|
|
||||||
|
|
||||||
# REQUIREMENTS
|
|
||||||
|
|
||||||
This tools assumes you are bundling your app with Webpack (tested with 4.44.2) .
|
|
||||||
It assumes there is a `build/` directory at the root of your react project directory containing a `index.html` file
|
|
||||||
and a `static/` directory generated by webpack.
|
|
||||||
|
|
||||||
**All this is defaults with [`create-react-app`](https://create-react-app.dev)** (tested with 4.0.3=)
|
|
||||||
|
|
||||||
- For building the theme: `mvn` (Maven) must be installed
|
|
||||||
- For development, (testing the theme in a local container ): `rm`, `mkdir`, `wget`, `unzip` are assumed to be available.
|
|
||||||
|
|
||||||
NOTE: This build tool has only be tested on MacOS.
|
|
||||||
|
|
||||||
# API Reference
|
|
||||||
|
|
||||||
## The build tool
|
|
||||||
|
|
||||||
Part of the lib that runs with node, at build time.
|
|
||||||
|
|
||||||
- `npx build-keycloak-theme`: Builds the theme, the CWD is assumed to be the root of your react project.
|
|
||||||
- `npx download-sample-keycloak-themes`: Downloads the keycloak default themes (for development purposes)
|
|
||||||
|
|
||||||
## The fronted lib ( imported into your react
|
|
||||||
|
|
||||||
Part of the lib that you import in your react project and runs on the browser.
|
|
||||||
|
|
||||||
**TODO**
|
|
||||||
|
@ -1,4 +1,3 @@
|
|||||||
export declare const containerLaunchScriptBasename = "start_keycloak_testing_container.sh";
|
|
||||||
/** Files for being able to run a hot reload keycloak container */
|
/** Files for being able to run a hot reload keycloak container */
|
||||||
export declare function generateDebugFiles(params: {
|
export declare function generateDebugFiles(params: {
|
||||||
packageJsonName: string;
|
packageJsonName: string;
|
||||||
|
@ -19,10 +19,9 @@ var __importStar = (this && this.__importStar) || function (mod) {
|
|||||||
return result;
|
return result;
|
||||||
};
|
};
|
||||||
Object.defineProperty(exports, "__esModule", { value: true });
|
Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
exports.generateDebugFiles = exports.containerLaunchScriptBasename = void 0;
|
exports.generateDebugFiles = void 0;
|
||||||
var fs = __importStar(require("fs"));
|
var fs = __importStar(require("fs"));
|
||||||
var path_1 = require("path");
|
var path_1 = require("path");
|
||||||
exports.containerLaunchScriptBasename = "start_keycloak_testing_container.sh";
|
|
||||||
/** Files for being able to run a hot reload keycloak container */
|
/** Files for being able to run a hot reload keycloak container */
|
||||||
function generateDebugFiles(params) {
|
function generateDebugFiles(params) {
|
||||||
var packageJsonName = params.packageJsonName, keycloakThemeBuildingDirPath = params.keycloakThemeBuildingDirPath;
|
var packageJsonName = params.packageJsonName, keycloakThemeBuildingDirPath = params.keycloakThemeBuildingDirPath;
|
||||||
@ -39,7 +38,7 @@ function generateDebugFiles(params) {
|
|||||||
].join("\n"), "utf8"));
|
].join("\n"), "utf8"));
|
||||||
var dockerImage = packageJsonName + "/keycloak-hot-reload";
|
var dockerImage = packageJsonName + "/keycloak-hot-reload";
|
||||||
var containerName = "keycloak-testing-container";
|
var containerName = "keycloak-testing-container";
|
||||||
fs.writeFileSync(path_1.join(keycloakThemeBuildingDirPath, exports.containerLaunchScriptBasename), Buffer.from([
|
fs.writeFileSync(path_1.join(keycloakThemeBuildingDirPath, "start_keycloak_testing_container.sh"), Buffer.from([
|
||||||
"#!/bin/bash",
|
"#!/bin/bash",
|
||||||
"",
|
"",
|
||||||
"docker rm " + containerName + " || true",
|
"docker rm " + containerName + " || true",
|
||||||
@ -51,7 +50,7 @@ function generateDebugFiles(params) {
|
|||||||
"\t--name " + containerName + " \\",
|
"\t--name " + containerName + " \\",
|
||||||
" -e KEYCLOAK_USER=admin \\",
|
" -e KEYCLOAK_USER=admin \\",
|
||||||
" -e KEYCLOAK_PASSWORD=admin \\",
|
" -e KEYCLOAK_PASSWORD=admin \\",
|
||||||
"\t-v " + path_1.join(keycloakThemeBuildingDirPath, "src", "main", "resources", "theme", packageJsonName) + ":/opt/jboss/keycloak/themes/" + packageJsonName + ":rw \\",
|
"\t-v " + path_1.join(keycloakThemeBuildingDirPath, "src", "main", "resources", "theme", "onyxia") + ":/opt/jboss/keycloak/themes/onyxia:rw \\",
|
||||||
"\t-it " + dockerImage + ":latest",
|
"\t-it " + dockerImage + ":latest",
|
||||||
""
|
""
|
||||||
].join("\n"), "utf8"), { "mode": 493 });
|
].join("\n"), "utf8"), { "mode": 493 });
|
||||||
|
@ -1 +1 @@
|
|||||||
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/bin/build-keycloak-theme/generateDebugFiles/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;AACA,qCAAyB;AACzB,6BAA0F;AAE7E,QAAA,6BAA6B,GAAG,qCAAqC,CAAC;AAEnF,kEAAkE;AAClE,SAAgB,kBAAkB,CAC9B,MAGC;IAGO,IAAA,eAAe,GAAmC,MAAM,gBAAzC,EAAE,4BAA4B,GAAK,MAAM,6BAAX,CAAY;IAEjE,EAAE,CAAC,aAAa,CACZ,WAAQ,CAAC,4BAA4B,EAAE,YAAY,CAAC,EACpD,MAAM,CAAC,IAAI,CACP;QACI,4BAA4B;QAC5B,EAAE;QACF,WAAW;QACX,EAAE;QACF,WAAW;QACX,EAAE;QACF,iEAAiE;QACjE,EAAE;QACF,wDAAwD;KAC3D,CAAC,IAAI,CAAC,IAAI,CAAC,EACZ,MAAM,CACT,CACJ,CAAC;IAEF,IAAM,WAAW,GAAM,eAAe,yBAAsB,CAAC;IAC7D,IAAM,aAAa,GAAG,4BAA4B,CAAC;IAEnD,EAAE,CAAC,aAAa,CACZ,WAAQ,CAAC,4BAA4B,EAAE,qCAA6B,CAAC,EACrE,MAAM,CAAC,IAAI,CACP;QACI,aAAa;QACb,EAAE;QACF,eAAa,aAAa,aAAU;QACpC,EAAE;QACF,uBAAqB,WAAa;QAClC,EAAE;QACF,eAAe;QACf,kBAAkB;QAClB,cAAW,aAAa,QAAK;QAC7B,4BAA4B;QAC5B,gCAAgC;QAChC,UAAO,WAAQ,CAAC,4BAA4B,EAAE,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,OAAO,EAAE,eAAe,CAAC,oCACpE,eAAe,WAAQ;QACtD,WAAQ,WAAW,YAAS;QAC5B,EAAE;KACL,CAAC,IAAI,CAAC,IAAI,CAAC,EACZ,MAAM,CACT,EACD,EAAE,MAAM,EAAE,GAAK,EAAE,CACpB,CAAC;IAEF,IAAM,oBAAoB,GAAG,WAAQ,CAAC,4BAA4B,EAAE,eAAe,EAAE,mBAAmB,CAAC,CAAC;IAE1G,IAAI;QAAE,EAAE,CAAC,SAAS,CAAC,cAAW,CAAC,oBAAoB,CAAC,CAAC,CAAC;KAAE;IAAC,WAAM,GAAG;IAElE,EAAE,CAAC,aAAa,CACZ,oBAAoB,EACpB,EAAE,CAAC,YAAY,CAAC,WAAQ,CAAC,SAAS,EAAE,eAAY,CAAC,oBAAoB,CAAC,CAAC,CAAC,CAC3E,CAAC;AAEN,CAAC;AAhED,gDAgEC"}
|
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/bin/build-keycloak-theme/generateDebugFiles/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;AACA,qCAAyB;AACzB,6BAA0F;AAE1F,kEAAkE;AAClE,SAAgB,kBAAkB,CAC9B,MAGC;IAGO,IAAA,eAAe,GAAmC,MAAM,gBAAzC,EAAE,4BAA4B,GAAK,MAAM,6BAAX,CAAY;IAEjE,EAAE,CAAC,aAAa,CACZ,WAAQ,CAAC,4BAA4B,EAAE,YAAY,CAAC,EACpD,MAAM,CAAC,IAAI,CACP;QACI,4BAA4B;QAC5B,EAAE;QACF,WAAW;QACX,EAAE;QACF,WAAW;QACX,EAAE;QACF,iEAAiE;QACjE,EAAE;QACF,wDAAwD;KAC3D,CAAC,IAAI,CAAC,IAAI,CAAC,EACZ,MAAM,CACT,CACJ,CAAC;IAEF,IAAM,WAAW,GAAM,eAAe,yBAAsB,CAAC;IAC7D,IAAM,aAAa,GAAG,4BAA4B,CAAC;IAEnD,EAAE,CAAC,aAAa,CACZ,WAAQ,CAAC,4BAA4B,EAAE,qCAAqC,CAAC,EAC7E,MAAM,CAAC,IAAI,CACP;QACI,aAAa;QACb,EAAE;QACF,eAAa,aAAa,aAAU;QACpC,EAAE;QACF,uBAAqB,WAAa;QAClC,EAAE;QACF,eAAe;QACf,kBAAkB;QAClB,cAAW,aAAa,QAAK;QAC7B,4BAA4B;QAC5B,gCAAgC;QAChC,UAAO,WAAQ,CAAC,4BAA4B,EAAE,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,OAAO,EAAE,QAAQ,CAAC,6CAA0C;QACtI,WAAQ,WAAW,YAAS;QAC5B,EAAE;KACL,CAAC,IAAI,CAAC,IAAI,CAAC,EACZ,MAAM,CACT,EACD,EAAE,MAAM,EAAE,GAAK,EAAE,CACpB,CAAC;IAEF,IAAM,oBAAoB,GAAG,WAAQ,CAAC,4BAA4B,EAAE,eAAe,EAAE,mBAAmB,CAAC,CAAC;IAE1G,IAAI;QAAE,EAAE,CAAC,SAAS,CAAC,cAAW,CAAC,oBAAoB,CAAC,CAAC,CAAC;KAAE;IAAC,WAAM,GAAG;IAElE,EAAE,CAAC,aAAa,CACZ,oBAAoB,EACpB,EAAE,CAAC,YAAY,CAAC,WAAQ,CAAC,SAAS,EAAE,eAAY,CAAC,oBAAoB,CAAC,CAAC,CAAC,CAC3E,CAAC;AAEN,CAAC;AA/DD,gDA+DC"}
|
@ -15,10 +15,6 @@ var __read = (this && this.__read) || function (o, n) {
|
|||||||
}
|
}
|
||||||
return ar;
|
return ar;
|
||||||
};
|
};
|
||||||
var __spread = (this && this.__spread) || function () {
|
|
||||||
for (var ar = [], i = 0; i < arguments.length; i++) ar = ar.concat(__read(arguments[i]));
|
|
||||||
return ar;
|
|
||||||
};
|
|
||||||
var __importDefault = (this && this.__importDefault) || function (mod) {
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
||||||
return (mod && mod.__esModule) ? mod : { "default": mod };
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
||||||
};
|
};
|
||||||
@ -59,13 +55,12 @@ function generateFtlFilesCodeFactory(params) {
|
|||||||
$(element).attr(attrName, "${url.resourcesPath}" + href);
|
$(element).attr(attrName, "${url.resourcesPath}" + href);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
$("head").prepend(__spread((Object.keys(cssGlobalsToDefine).length === 0 ? [] : [
|
$("head").prepend([
|
||||||
'',
|
'',
|
||||||
'<style>',
|
'<style>',
|
||||||
replaceImportFromStatic_1.generateCssCodeToDefineGlobals({ cssGlobalsToDefine: cssGlobalsToDefine }).cssCodeToPrependInHead,
|
replaceImportFromStatic_1.generateCssCodeToDefineGlobals({ cssGlobalsToDefine: cssGlobalsToDefine }).cssCodeToPrependInHead,
|
||||||
'</style>',
|
'</style>',
|
||||||
''
|
'',
|
||||||
]), [
|
|
||||||
'<script>',
|
'<script>',
|
||||||
' Object.assign(',
|
' Object.assign(',
|
||||||
" window." + ftlValuesGlobalName + ",",
|
" window." + ftlValuesGlobalName + ",",
|
||||||
@ -75,10 +70,10 @@ function generateFtlFilesCodeFactory(params) {
|
|||||||
' "resourcesPath": "${url.resourcesPath}"',
|
' "resourcesPath": "${url.resourcesPath}"',
|
||||||
' }',
|
' }',
|
||||||
' }',
|
' }',
|
||||||
' );',
|
' });',
|
||||||
'</script>',
|
'</script>',
|
||||||
''
|
''
|
||||||
]).join("\n"));
|
].join("\n"));
|
||||||
var partiallyFixedIndexHtmlCode = $.html();
|
var partiallyFixedIndexHtmlCode = $.html();
|
||||||
function generateFtlFilesCode(params) {
|
function generateFtlFilesCode(params) {
|
||||||
var pageBasename = params.pageBasename;
|
var pageBasename = params.pageBasename;
|
||||||
|
@ -1 +1 @@
|
|||||||
{"version":3,"file":"generateFtl.js","sourceRoot":"","sources":["../../src/bin/build-keycloak-theme/generateFtl.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,oDAA8B;AAC9B,qEAGmC;AAEnC,SAAgB,2BAA2B,CACvC,MAIC;IAGO,IAAA,mBAAmB,GAAwC,MAAM,oBAA9C,EAAE,kBAAkB,GAAoB,MAAM,mBAA1B,EAAE,aAAa,GAAK,MAAM,cAAX,CAAY;IAE1E,IAAM,CAAC,GAAG,iBAAO,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IAEtC,CAAC,CAAC,mBAAmB,CAAC,CAAC,IAAI,CAAC;QAAC,YAAc;aAAd,UAAc,EAAd,qBAAc,EAAd,IAAc;YAAd,uBAAc;;QAAd,IAAA,KAAA,aAAc,EAAR,OAAO,QAAA,CAAC;QAE/B,IAAA,WAAW,GAAK,yDAA+B,CAAC;YACpD,mBAAmB,qBAAA;YACnB,QAAQ,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,EAAG;SAC/B,CAAC,YAHiB,CAGhB;QAEH,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IAEjC,CAAC,CAAC,CAAC;IAGF;QACG,CAAC,MAAM,EAAE,MAAM,CAAC;QAChB,CAAC,QAAQ,EAAE,KAAK,CAAC;KACV,CAAC,OAAO,CAAC,UAAC,EAAoB;YAApB,KAAA,aAAoB,EAAnB,QAAQ,QAAA,EAAE,QAAQ,QAAA;QACpC,OAAA,CAAC,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC;YAAC,YAAc;iBAAd,UAAc,EAAd,qBAAc,EAAd,IAAc;gBAAd,uBAAc;;YAAd,IAAA,KAAA,aAAc,EAAR,OAAO,QAAA,CAAC;YAE5B,IAAM,IAAI,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAEvC,IAAI,EAAC,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,UAAU,CAAC,GAAG,EAAC,EAAE;gBACxB,OAAO;aACV;YAED,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,QAAQ,EAAE,sBAAsB,GAAG,IAAI,CAAC,CAAC;QAE7D,CAAC,CAAC;IAVF,CAUE,CACL,CAAC;IAEF,CAAC,CAAC,MAAM,CAAC,CAAC,OAAO,CACb,SACO,CAAC,MAAM,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QACpD,EAAE;QACF,SAAS;QACT,wDAA8B,CAC1B,EAAE,kBAAkB,oBAAA,EAAE,CACzB,CAAC,sBAAsB;QACxB,UAAU;QACV,EAAE;KACL,CAAC;QAEF,UAAU;QACV,oBAAoB;QACpB,oBAAkB,mBAAmB,MAAG;QACxC,WAAW;QACX,sBAAsB;QACtB,sDAAsD;QACtD,yDAAyD;QACzD,eAAe;QACf,WAAW;QACX,QAAQ;QACR,WAAW;QACX,EAAE;OACJ,IAAI,CAAC,IAAI,CAAC,CACf,CAAC;IAGF,IAAM,2BAA2B,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;IAE7C,SAAS,oBAAoB,CACzB,MAEC;QAGO,IAAA,YAAY,GAAK,MAAM,aAAX,CAAY;QAEhC,IAAM,CAAC,GAAG,iBAAO,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC;QAEpD,CAAC,CAAC,MAAM,CAAC,CAAC,OAAO,CACb;YACI,EAAE;YACF,UAAU;YACV,eAAa,mBAAmB,iCAAyB,YAAY,UAAM;YAC3E,WAAW;YACX,EAAE;SACL,CAAC,IAAI,CAAC,IAAI,CAAC,CAEf,CAAC;QAEF,OAAO,EAAE,SAAS,EAAE,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC;IAEnC,CAAC;IAED,OAAO,EAAE,oBAAoB,sBAAA,EAAE,CAAC;AAGpC,CAAC;AAnGD,kEAmGC"}
|
{"version":3,"file":"generateFtl.js","sourceRoot":"","sources":["../../src/bin/build-keycloak-theme/generateFtl.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAEA,oDAA8B;AAC9B,qEAGmC;AAEnC,SAAgB,2BAA2B,CACvC,MAIC;IAGO,IAAA,mBAAmB,GAAwC,MAAM,oBAA9C,EAAE,kBAAkB,GAAoB,MAAM,mBAA1B,EAAE,aAAa,GAAK,MAAM,cAAX,CAAY;IAE1E,IAAM,CAAC,GAAG,iBAAO,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IAEtC,CAAC,CAAC,mBAAmB,CAAC,CAAC,IAAI,CAAC;QAAC,YAAc;aAAd,UAAc,EAAd,qBAAc,EAAd,IAAc;YAAd,uBAAc;;QAAd,IAAA,KAAA,aAAc,EAAR,OAAO,QAAA,CAAC;QAE/B,IAAA,WAAW,GAAK,yDAA+B,CAAC;YACpD,mBAAmB,qBAAA;YACnB,QAAQ,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,EAAG;SAC/B,CAAC,YAHiB,CAGhB;QAEH,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IAEjC,CAAC,CAAC,CAAC;IAGF;QACG,CAAC,MAAM,EAAE,MAAM,CAAC;QAChB,CAAC,QAAQ,EAAE,KAAK,CAAC;KACV,CAAC,OAAO,CAAC,UAAC,EAAoB;YAApB,KAAA,aAAoB,EAAnB,QAAQ,QAAA,EAAE,QAAQ,QAAA;QACpC,OAAA,CAAC,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC;YAAC,YAAc;iBAAd,UAAc,EAAd,qBAAc,EAAd,IAAc;gBAAd,uBAAc;;YAAd,IAAA,KAAA,aAAc,EAAR,OAAO,QAAA,CAAC;YAE5B,IAAM,IAAI,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAEvC,IAAI,EAAC,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,UAAU,CAAC,GAAG,EAAC,EAAE;gBACxB,OAAO;aACV;YAED,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,QAAQ,EAAE,sBAAsB,GAAG,IAAI,CAAC,CAAC;QAE7D,CAAC,CAAC;IAVF,CAUE,CACL,CAAC;IAEF,CAAC,CAAC,MAAM,CAAC,CAAC,OAAO,CACb;QACI,EAAE;QACF,SAAS;QACT,wDAA8B,CAC1B,EAAE,kBAAkB,oBAAA,EAAE,CACzB,CAAC,sBAAsB;QACxB,UAAU;QACV,EAAE;QACF,UAAU;QACV,oBAAoB;QACpB,oBAAkB,mBAAmB,MAAG;QACxC,WAAW;QACX,sBAAsB;QACtB,sDAAsD;QACtD,yDAAyD;QACzD,eAAe;QACf,WAAW;QACX,SAAS;QACT,WAAW;QACX,EAAE;KACL,CAAC,IAAI,CAAC,IAAI,CAAC,CACf,CAAC;IAGF,IAAM,2BAA2B,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;IAE7C,SAAS,oBAAoB,CACzB,MAEC;QAGO,IAAA,YAAY,GAAK,MAAM,aAAX,CAAY;QAEhC,IAAM,CAAC,GAAG,iBAAO,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC;QAEpD,CAAC,CAAC,MAAM,CAAC,CAAC,OAAO,CACb;YACI,EAAE;YACF,UAAU;YACV,eAAa,mBAAmB,iCAAyB,YAAY,UAAM;YAC3E,WAAW;YACX,EAAE;SACL,CAAC,IAAI,CAAC,IAAI,CAAC,CAEf,CAAC;QAEF,OAAO,EAAE,SAAS,EAAE,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC;IAEnC,CAAC;IAED,OAAO,EAAE,oBAAoB,sBAAA,EAAE,CAAC;AAGpC,CAAC;AAhGD,kEAgGC"}
|
@ -6,6 +6,4 @@ export declare type ParsedPackageJson = {
|
|||||||
export declare function generateJavaStackFiles(params: {
|
export declare function generateJavaStackFiles(params: {
|
||||||
parsedPackageJson: ParsedPackageJson;
|
parsedPackageJson: ParsedPackageJson;
|
||||||
keycloakThemeBuildingDirPath: string;
|
keycloakThemeBuildingDirPath: string;
|
||||||
}): {
|
}): void;
|
||||||
jarFilePath: string;
|
|
||||||
};
|
|
||||||
|
@ -66,7 +66,6 @@ function generateJavaStackFiles(params) {
|
|||||||
]
|
]
|
||||||
}, null, 2), "utf8"));
|
}, null, 2), "utf8"));
|
||||||
}
|
}
|
||||||
return { "jarFilePath": path_1.join(keycloakThemeBuildingDirPath, "target", name + "-" + version + ".jar") };
|
|
||||||
}
|
}
|
||||||
exports.generateJavaStackFiles = generateJavaStackFiles;
|
exports.generateJavaStackFiles = generateJavaStackFiles;
|
||||||
//# sourceMappingURL=generateJavaStackFiles.js.map
|
//# sourceMappingURL=generateJavaStackFiles.js.map
|
@ -1 +1 @@
|
|||||||
{"version":3,"file":"generateJavaStackFiles.js","sourceRoot":"","sources":["../../src/bin/build-keycloak-theme/generateJavaStackFiles.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;AACA,uCAA2B;AAC3B,qCAAyB;AACzB,6BAAgE;AAQhE,SAAgB,sBAAsB,CAClC,MAGC;IAIG,IAAA,KAEA,MAAM,kBAFwC,EAAzB,IAAI,UAAA,EAAE,OAAO,aAAA,EAAE,QAAQ,cAAA,EAC5C,4BAA4B,GAC5B,MAAM,6BADsB,CACrB;IAEX;QAEY,IAAA,WAAW,GAAK,CAAC,SAAS,mBAAmB;YAGjD,IAAM,OAAO,GAAG,CAAC;;gBAEb,IAAM,eAAe,GAAG,qDAAmD,IAAM,CAAC;gBAElF,OAAO,CAAC,CAAC,QAAQ,CAAC,CAAC;oBACf,eAAe,CAAC,CAAC,aACjB,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,IAAI,0CAAE,KAAK,CAAC,GAAG,EAAE,OAAO,GAAG,IAAI,CAAC,GAAG,oCAAK,eAAe,CAC9E,GAAG,WAAW,CAAC;YAEpB,CAAC,CAAC,EAAE,CAAC;YAEL,IAAM,UAAU,GAAM,IAAI,oBAAiB,CAAC;YAE5C,IAAM,WAAW,GAAG;gBAChB,yBAAuB;gBACvB,sDAAoD;gBACpD,2DAAwD;gBACxD,sGAAmG;gBACnG,sCAAqC;gBACrC,gBAAa,OAAO,eAAY;gBAChC,mBAAgB,UAAU,kBAAe;gBACzC,gBAAa,OAAO,eAAY;gBAChC,aAAU,UAAU,YAAS;gBAC7B,mBAAkB;gBAClB,YAAY;aACf,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAEb,OAAO,EAAE,WAAW,aAAA,EAAE,CAAC;QAE3B,CAAC,CAAC,EAAE,YAhCe,CAgCd;QAEL,EAAE,CAAC,aAAa,CACZ,WAAQ,CAAC,4BAA4B,EAAE,SAAS,CAAC,EACjD,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE,MAAM,CAAC,CACnC,CAAC;KAEL;IAED;QAEI,IAAM,qBAAqB,GAAG,WAAQ,CAClC,4BAA4B,EAAE,KAAK,EAAE,MAAM,EAC3C,WAAW,EAAE,UAAU,EAAE,sBAAsB,CAClD,CAAC;QAEF,IAAI;YAEA,EAAE,CAAC,SAAS,CAAC,cAAW,CAAC,qBAAqB,CAAC,CAAC,CAAC;SAEpD;QAAC,WAAM,GAAG;QAEX,EAAE,CAAC,aAAa,CACZ,qBAAqB,EACrB,MAAM,CAAC,IAAI,CACP,IAAI,CAAC,SAAS,CAAC;YACX,QAAQ,EAAE;gBACN;oBACI,MAAM,EAAE,IAAI;oBACZ,OAAO,EAAE,CAAC,OAAO,CAAC;iBACrB;aACJ;SACJ,EAAE,IAAI,EAAE,CAAC,CAAC,EACX,MAAM,CACT,CACJ,CAAC;KAEL;IAED,OAAO,EAAE,aAAa,EAAE,WAAQ,CAAC,4BAA4B,EAAE,QAAQ,EAAK,IAAI,SAAI,OAAO,SAAM,CAAC,EAAE,CAAC;AAEzG,CAAC;AAvFD,wDAuFC"}
|
{"version":3,"file":"generateJavaStackFiles.js","sourceRoot":"","sources":["../../src/bin/build-keycloak-theme/generateJavaStackFiles.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;AACA,uCAA2B;AAC3B,qCAAyB;AACzB,6BAAgE;AAQhE,SAAgB,sBAAsB,CAClC,MAGC;IAIG,IAAA,KAEA,MAAM,kBAFwC,EAAzB,IAAI,UAAA,EAAE,OAAO,aAAA,EAAE,QAAQ,cAAA,EAC5C,4BAA4B,GAC5B,MAAM,6BADsB,CACrB;IAEX;QAEY,IAAA,WAAW,GAAK,CAAC,SAAS,mBAAmB;YAGjD,IAAM,OAAO,GAAG,CAAC;;gBAEb,IAAM,eAAe,GAAG,qDAAmD,IAAM,CAAC;gBAElF,OAAO,CAAC,CAAC,QAAQ,CAAC,CAAC;oBACf,eAAe,CAAC,CAAC,aACjB,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,IAAI,0CAAE,KAAK,CAAC,GAAG,EAAE,OAAO,GAAG,IAAI,CAAC,GAAG,oCAAK,eAAe,CAC9E,GAAG,WAAW,CAAC;YAEpB,CAAC,CAAC,EAAE,CAAC;YAEL,IAAM,UAAU,GAAM,IAAI,oBAAiB,CAAC;YAE5C,IAAM,WAAW,GAAG;gBAChB,yBAAuB;gBACvB,sDAAoD;gBACpD,2DAAwD;gBACxD,sGAAmG;gBACnG,sCAAqC;gBACrC,gBAAa,OAAO,eAAY;gBAChC,mBAAgB,UAAU,kBAAe;gBACzC,gBAAa,OAAO,eAAY;gBAChC,aAAU,UAAU,YAAS;gBAC7B,mBAAkB;gBAClB,YAAY;aACf,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAEb,OAAO,EAAE,WAAW,aAAA,EAAE,CAAC;QAE3B,CAAC,CAAC,EAAE,YAhCe,CAgCd;QAEL,EAAE,CAAC,aAAa,CACZ,WAAQ,CAAC,4BAA4B,EAAE,SAAS,CAAC,EACjD,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE,MAAM,CAAC,CACnC,CAAC;KAEL;IAED;QAEI,IAAM,qBAAqB,GAAG,WAAQ,CAClC,4BAA4B,EAAE,KAAK,EAAE,MAAM,EAC3C,WAAW,EAAE,UAAU,EAAE,sBAAsB,CAClD,CAAC;QAEF,IAAI;YAEA,EAAE,CAAC,SAAS,CAAC,cAAW,CAAC,qBAAqB,CAAC,CAAC,CAAC;SAEpD;QAAC,WAAM,GAAG;QAEX,EAAE,CAAC,aAAa,CACZ,qBAAqB,EACrB,MAAM,CAAC,IAAI,CACP,IAAI,CAAC,SAAS,CAAC;YACX,QAAQ,EAAE;gBACN;oBACI,MAAM,EAAE,IAAI;oBACZ,OAAO,EAAE,CAAC,OAAO,CAAC;iBACrB;aACJ;SACJ,EAAE,IAAI,EAAE,CAAC,CAAC,EACX,MAAM,CACT,CACJ,CAAC;KAEL;AAEL,CAAC;AArFD,wDAqFC"}
|
@ -1,4 +1,3 @@
|
|||||||
export declare const ftlValuesGlobalName = "keycloakPagesContext";
|
|
||||||
export declare function generateKeycloakThemeResources(params: {
|
export declare function generateKeycloakThemeResources(params: {
|
||||||
themeName: string;
|
themeName: string;
|
||||||
reactAppBuildDirPath: string;
|
reactAppBuildDirPath: string;
|
||||||
|
@ -30,13 +30,13 @@ var __importStar = (this && this.__importStar) || function (mod) {
|
|||||||
return result;
|
return result;
|
||||||
};
|
};
|
||||||
Object.defineProperty(exports, "__esModule", { value: true });
|
Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
exports.generateKeycloakThemeResources = exports.ftlValuesGlobalName = void 0;
|
exports.generateKeycloakThemeResources = void 0;
|
||||||
var transformCodebase_1 = require("../../tools/transformCodebase");
|
var transformCodebase_1 = require("../../tools/transformCodebase");
|
||||||
var fs = __importStar(require("fs"));
|
var fs = __importStar(require("fs"));
|
||||||
var path_1 = require("path");
|
var path_1 = require("path");
|
||||||
var replaceImportFromStatic_1 = require("./replaceImportFromStatic");
|
var replaceImportFromStatic_1 = require("./replaceImportFromStatic");
|
||||||
var generateFtl_1 = require("./generateFtl");
|
var generateFtl_1 = require("./generateFtl");
|
||||||
exports.ftlValuesGlobalName = "keycloakPagesContext";
|
var ftlValuesGlobalName = "keycloakFtlValues";
|
||||||
function generateKeycloakThemeResources(params) {
|
function generateKeycloakThemeResources(params) {
|
||||||
var themeName = params.themeName, reactAppBuildDirPath = params.reactAppBuildDirPath, keycloakThemeBuildingDirPath = params.keycloakThemeBuildingDirPath;
|
var themeName = params.themeName, reactAppBuildDirPath = params.reactAppBuildDirPath, keycloakThemeBuildingDirPath = params.keycloakThemeBuildingDirPath;
|
||||||
var themeDirPath = path_1.join(keycloakThemeBuildingDirPath, "src", "main", "resources", "theme", themeName, "login");
|
var themeDirPath = path_1.join(keycloakThemeBuildingDirPath, "src", "main", "resources", "theme", themeName, "login");
|
||||||
@ -54,7 +54,7 @@ function generateKeycloakThemeResources(params) {
|
|||||||
if (/\.js?$/i.test(filePath)) {
|
if (/\.js?$/i.test(filePath)) {
|
||||||
var fixedJsCode = replaceImportFromStatic_1.replaceImportFromStaticInJsCode({
|
var fixedJsCode = replaceImportFromStatic_1.replaceImportFromStaticInJsCode({
|
||||||
"jsCode": sourceCode.toString("utf8"),
|
"jsCode": sourceCode.toString("utf8"),
|
||||||
ftlValuesGlobalName: exports.ftlValuesGlobalName
|
ftlValuesGlobalName: ftlValuesGlobalName
|
||||||
}).fixedJsCode;
|
}).fixedJsCode;
|
||||||
return { "modifiedSourceCode": Buffer.from(fixedJsCode, "utf8") };
|
return { "modifiedSourceCode": Buffer.from(fixedJsCode, "utf8") };
|
||||||
}
|
}
|
||||||
@ -63,14 +63,13 @@ function generateKeycloakThemeResources(params) {
|
|||||||
});
|
});
|
||||||
var generateFtlFilesCode = generateFtl_1.generateFtlFilesCodeFactory({
|
var generateFtlFilesCode = generateFtl_1.generateFtlFilesCodeFactory({
|
||||||
"cssGlobalsToDefine": allCssGlobalsToDefine,
|
"cssGlobalsToDefine": allCssGlobalsToDefine,
|
||||||
ftlValuesGlobalName: exports.ftlValuesGlobalName,
|
ftlValuesGlobalName: ftlValuesGlobalName,
|
||||||
"indexHtmlCode": fs.readFileSync(path_1.join(reactAppBuildDirPath, "index.html")).toString("utf8")
|
"indexHtmlCode": fs.readFileSync(path_1.join(reactAppBuildDirPath, "index.html")).toString("utf8")
|
||||||
}).generateFtlFilesCode;
|
}).generateFtlFilesCode;
|
||||||
["login.ftl", "register.ftl"].forEach(function (pageBasename) {
|
["login.ftl", "register.ftl"].forEach(function (pageBasename) {
|
||||||
var ftlCode = generateFtlFilesCode({ pageBasename: pageBasename }).ftlCode;
|
var ftlCode = generateFtlFilesCode({ pageBasename: pageBasename }).ftlCode;
|
||||||
fs.writeFileSync(path_1.join(themeDirPath, pageBasename), Buffer.from(ftlCode, "utf8"));
|
fs.writeFileSync(path_1.join(themeDirPath, pageBasename), Buffer.from(ftlCode, "utf8"));
|
||||||
});
|
});
|
||||||
fs.writeFileSync(path_1.join(themeDirPath, "theme.properties"), Buffer.from("parent=base\n", "utf8"));
|
|
||||||
}
|
}
|
||||||
exports.generateKeycloakThemeResources = generateKeycloakThemeResources;
|
exports.generateKeycloakThemeResources = generateKeycloakThemeResources;
|
||||||
//# sourceMappingURL=generateKeycloakThemeResources.js.map
|
//# sourceMappingURL=generateKeycloakThemeResources.js.map
|
@ -1 +1 @@
|
|||||||
{"version":3,"file":"generateKeycloakThemeResources.js","sourceRoot":"","sources":["../../src/bin/build-keycloak-theme/generateKeycloakThemeResources.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,mEAAkE;AAClE,qCAAyB;AACzB,6BAAwC;AACxC,qEAGmC;AACnC,6CAA4D;AAE/C,QAAA,mBAAmB,GAAG,sBAAsB,CAAC;AAE1D,SAAgB,8BAA8B,CAC1C,MAIC;IAGO,IAAA,SAAS,GAAyD,MAAM,UAA/D,EAAE,oBAAoB,GAAmC,MAAM,qBAAzC,EAAE,4BAA4B,GAAK,MAAM,6BAAX,CAAY;IAEjF,IAAM,YAAY,GAAG,WAAQ,CAAC,4BAA4B,EAAE,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;IAErH,IAAI,qBAAqB,GAA2B,EAAE,CAAC;IAEvD,qCAAiB,CAAC;QACd,aAAa,EAAE,WAAQ,CAAC,YAAY,EAAE,WAAW,CAAC;QAClD,YAAY,EAAE,oBAAoB;QAClC,2BAA2B,EAAE,UAAC,EAAwB;gBAAtB,QAAQ,cAAA,EAAE,UAAU,gBAAA;YAEhD,IAAI,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE;gBAErB,IAAA,KAAuC,0DAAgC,CACzE,EAAE,SAAS,EAAE,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAC7C,EAFO,kBAAkB,wBAAA,EAAE,YAAY,kBAEvC,CAAC;gBAEF,qBAAqB,yBACd,qBAAqB,GACrB,kBAAkB,CACxB,CAAC;gBAEF,OAAO,EAAE,oBAAoB,EAAE,MAAM,CAAC,IAAI,CAAC,YAAY,EAAE,MAAM,CAAC,EAAE,CAAC;aAEtE;YAED,IAAI,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE;gBAElB,IAAA,WAAW,GAAK,yDAA+B,CAAC;oBACpD,QAAQ,EAAE,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC;oBACrC,mBAAmB,6BAAA;iBACtB,CAAC,YAHiB,CAGhB;gBAEH,OAAO,EAAE,oBAAoB,EAAE,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE,MAAM,CAAC,EAAE,CAAC;aAErE;YAED,OAAO,EAAE,oBAAoB,EAAE,UAAU,EAAE,CAAC;QAEhD,CAAC;KACJ,CAAC,CAAC;IAEK,IAAA,oBAAoB,GAAK,yCAA2B,CAAC;QACzD,oBAAoB,EAAE,qBAAqB;QAC3C,mBAAmB,6BAAA;QACnB,eAAe,EAAE,EAAE,CAAC,YAAY,CAC5B,WAAQ,CAAC,oBAAoB,EAAE,YAAY,CAAC,CAC/C,CAAC,QAAQ,CAAC,MAAM,CAAC;KACrB,CAAC,qBAN0B,CAMzB;IAEF,CAAC,WAAW,EAAE,cAAc,CAAW,CAAC,OAAO,CAAC,UAAA,YAAY;QAEjD,IAAA,OAAO,GAAK,oBAAoB,CAAC,EAAE,YAAY,cAAA,EAAE,CAAC,QAA3C,CAA4C;QAE3D,EAAE,CAAC,aAAa,CACZ,WAAQ,CAAC,YAAY,EAAE,YAAY,CAAC,EACpC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,CAC/B,CAAA;IAEL,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,aAAa,CACZ,WAAQ,CAAC,YAAY,EAAE,kBAAkB,CAAC,EAC1C,MAAM,CAAC,IAAI,CAAC,eAAe,EAAE,MAAM,CAAC,CACvC,CAAC;AAEN,CAAC;AA1ED,wEA0EC"}
|
{"version":3,"file":"generateKeycloakThemeResources.js","sourceRoot":"","sources":["../../src/bin/build-keycloak-theme/generateKeycloakThemeResources.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,mEAAkE;AAClE,qCAAyB;AACzB,6BAAwC;AACxC,qEAGmC;AACnC,6CAA4D;AAE5D,IAAM,mBAAmB,GAAG,mBAAmB,CAAC;AAEhD,SAAgB,8BAA8B,CAC1C,MAIC;IAGO,IAAA,SAAS,GAAyD,MAAM,UAA/D,EAAE,oBAAoB,GAAmC,MAAM,qBAAzC,EAAE,4BAA4B,GAAK,MAAM,6BAAX,CAAY;IAEjF,IAAM,YAAY,GAAG,WAAQ,CAAC,4BAA4B,EAAE,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;IAErH,IAAI,qBAAqB,GAA2B,EAAE,CAAC;IAEvD,qCAAiB,CAAC;QACd,aAAa,EAAE,WAAQ,CAAC,YAAY,EAAE,WAAW,CAAC;QAClD,YAAY,EAAE,oBAAoB;QAClC,2BAA2B,EAAE,UAAC,EAAwB;gBAAtB,QAAQ,cAAA,EAAE,UAAU,gBAAA;YAEhD,IAAI,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE;gBAErB,IAAA,KAAuC,0DAAgC,CACzE,EAAE,SAAS,EAAE,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAC7C,EAFO,kBAAkB,wBAAA,EAAE,YAAY,kBAEvC,CAAC;gBAEF,qBAAqB,yBACd,qBAAqB,GACrB,kBAAkB,CACxB,CAAC;gBAEF,OAAO,EAAE,oBAAoB,EAAE,MAAM,CAAC,IAAI,CAAC,YAAY,EAAE,MAAM,CAAC,EAAE,CAAC;aAEtE;YAED,IAAI,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE;gBAElB,IAAA,WAAW,GAAK,yDAA+B,CAAC;oBACpD,QAAQ,EAAE,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC;oBACrC,mBAAmB,qBAAA;iBACtB,CAAC,YAHiB,CAGhB;gBAEH,OAAO,EAAE,oBAAoB,EAAE,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE,MAAM,CAAC,EAAE,CAAC;aAErE;YAED,OAAO,EAAE,oBAAoB,EAAE,UAAU,EAAE,CAAC;QAEhD,CAAC;KACJ,CAAC,CAAC;IAEK,IAAA,oBAAoB,GAAK,yCAA2B,CAAC;QACzD,oBAAoB,EAAE,qBAAqB;QAC3C,mBAAmB,qBAAA;QACnB,eAAe,EAAE,EAAE,CAAC,YAAY,CAC5B,WAAQ,CAAC,oBAAoB,EAAE,YAAY,CAAC,CAC/C,CAAC,QAAQ,CAAC,MAAM,CAAC;KACrB,CAAC,qBAN0B,CAMzB;IAEF,CAAC,WAAW,EAAE,cAAc,CAAW,CAAC,OAAO,CAAC,UAAA,YAAY;QAEjD,IAAA,OAAO,GAAK,oBAAoB,CAAC,EAAE,YAAY,cAAA,EAAE,CAAC,QAA3C,CAA4C;QAE3D,EAAE,CAAC,aAAa,CACZ,WAAQ,CAAC,YAAY,EAAE,YAAY,CAAC,EACpC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,CAC/B,CAAA;IAEL,CAAC,CAAC,CAAC;AAEP,CAAC;AArED,wEAqEC"}
|
@ -29,58 +29,20 @@ var generateDebugFiles_1 = require("./generateDebugFiles");
|
|||||||
var reactProjectDirPath = process.cwd();
|
var reactProjectDirPath = process.cwd();
|
||||||
var parsedPackageJson = require(path_1.join(reactProjectDirPath, "package.json"));
|
var parsedPackageJson = require(path_1.join(reactProjectDirPath, "package.json"));
|
||||||
exports.keycloakThemeBuildingDirPath = path_1.join(reactProjectDirPath, "build_keycloak");
|
exports.keycloakThemeBuildingDirPath = path_1.join(reactProjectDirPath, "build_keycloak");
|
||||||
console.log("🔏 Building the keycloak theme...⌚");
|
|
||||||
if (require.main === module) {
|
if (require.main === module) {
|
||||||
generateKeycloakThemeResources_1.generateKeycloakThemeResources({
|
generateKeycloakThemeResources_1.generateKeycloakThemeResources({
|
||||||
keycloakThemeBuildingDirPath: exports.keycloakThemeBuildingDirPath,
|
keycloakThemeBuildingDirPath: exports.keycloakThemeBuildingDirPath,
|
||||||
"reactAppBuildDirPath": path_1.join(reactProjectDirPath, "build"),
|
"reactAppBuildDirPath": path_1.join(reactProjectDirPath, "build"),
|
||||||
"themeName": parsedPackageJson.name
|
"themeName": parsedPackageJson.name
|
||||||
});
|
});
|
||||||
var jarFilePath = generateJavaStackFiles_1.generateJavaStackFiles({
|
generateJavaStackFiles_1.generateJavaStackFiles({
|
||||||
parsedPackageJson: parsedPackageJson,
|
parsedPackageJson: parsedPackageJson,
|
||||||
keycloakThemeBuildingDirPath: exports.keycloakThemeBuildingDirPath
|
keycloakThemeBuildingDirPath: exports.keycloakThemeBuildingDirPath
|
||||||
}).jarFilePath;
|
});
|
||||||
child_process.execSync("mvn package", { "cwd": exports.keycloakThemeBuildingDirPath });
|
child_process.execSync("mvn package", { "cwd": exports.keycloakThemeBuildingDirPath });
|
||||||
generateDebugFiles_1.generateDebugFiles({
|
generateDebugFiles_1.generateDebugFiles({
|
||||||
keycloakThemeBuildingDirPath: exports.keycloakThemeBuildingDirPath,
|
keycloakThemeBuildingDirPath: exports.keycloakThemeBuildingDirPath,
|
||||||
"packageJsonName": parsedPackageJson.name
|
"packageJsonName": parsedPackageJson.name
|
||||||
});
|
});
|
||||||
console.log([
|
|
||||||
'',
|
|
||||||
"\u2705 Your keycloak theme has been generated and bundled into ./" + path_1.relative(reactProjectDirPath, jarFilePath) + " \uD83D\uDE80",
|
|
||||||
"It is to be placed in \"/opt/jboss/keycloak/standalone/deployments\" in the container running a jboss/keycloak Docker image. (Tested with 11.0.3)",
|
|
||||||
'',
|
|
||||||
'Using Helm (https://github.com/codecentric/helm-charts), edit to reflect:',
|
|
||||||
'',
|
|
||||||
'value.yaml: ',
|
|
||||||
' extraInitContainers: |',
|
|
||||||
' - name: realm-ext-provider',
|
|
||||||
' image: curlimages/curl',
|
|
||||||
' imagePullPolicy: IfNotPresent',
|
|
||||||
' command:',
|
|
||||||
' - sh',
|
|
||||||
' args:',
|
|
||||||
' - -c',
|
|
||||||
" - curl -L -f -S -o /extensions/" + path_1.basename(jarFilePath) + " https://AN.URL.FOR/" + path_1.basename(jarFilePath),
|
|
||||||
' volumeMounts:',
|
|
||||||
' - name: extensions',
|
|
||||||
' mountPath: /extensions',
|
|
||||||
' ',
|
|
||||||
' extraVolumeMounts: |',
|
|
||||||
' - name: extensions',
|
|
||||||
' mountPath: /opt/jboss/keycloak/standalone/deployments',
|
|
||||||
'',
|
|
||||||
'',
|
|
||||||
'To test your theme locally, with hot reloading, you can spin up a Keycloak container image with the theme loaded by running:',
|
|
||||||
'',
|
|
||||||
"$ ./" + path_1.relative(reactProjectDirPath, path_1.join(exports.keycloakThemeBuildingDirPath, generateDebugFiles_1.containerLaunchScriptBasename)),
|
|
||||||
'',
|
|
||||||
'To enable the theme within keycloak log into the admin console, create a realm (called "myrealm" for example),',
|
|
||||||
"go to your realm settings, click on the theme tab then select " + parsedPackageJson.name + ".",
|
|
||||||
"More details: https://www.keycloak.org/getting-started/getting-started-docker",
|
|
||||||
'',
|
|
||||||
'Once your container is up and configured 👉 http://localhost:8080/auth/realms/myrealm/account',
|
|
||||||
'',
|
|
||||||
].join("\n"));
|
|
||||||
}
|
}
|
||||||
//# sourceMappingURL=index.js.map
|
//# sourceMappingURL=index.js.map
|
@ -1 +1 @@
|
|||||||
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/bin/build-keycloak-theme/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAEA,mFAAkF;AAClF,mEAAkE;AAElE,6BAA4F;AAC5F,2DAA+C;AAC/C,2DAAyF;AAGzF,IAAM,mBAAmB,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;AAE1C,IAAM,iBAAiB,GAAsB,OAAO,CAAC,WAAQ,CAAC,mBAAmB,EAAE,cAAc,CAAC,CAAC,CAAC;AAEvF,QAAA,4BAA4B,GAAG,WAAQ,CAAC,mBAAmB,EAAE,gBAAgB,CAAC,CAAC;AAG5F,OAAO,CAAC,GAAG,CAAC,oCAAoC,CAAC,CAAC;AAElD,IAAI,OAAO,CAAC,IAAI,KAAK,MAAM,EAAE;IAEzB,+DAA8B,CAAC;QAC3B,4BAA4B,sCAAA;QAC5B,sBAAsB,EAAE,WAAQ,CAAC,mBAAmB,EAAE,OAAO,CAAC;QAC9D,WAAW,EAAE,iBAAiB,CAAC,IAAI;KACtC,CAAC,CAAC;IAEK,IAAA,WAAW,GAAK,+CAAsB,CAAC;QAC3C,iBAAiB,mBAAA;QACjB,4BAA4B,sCAAA;KAC/B,CAAC,YAHiB,CAGhB;IAEH,aAAa,CAAC,QAAQ,CAClB,aAAa,EACb,EAAE,KAAK,EAAE,oCAA4B,EAAE,CAC1C,CAAC;IAEF,uCAAkB,CAAC;QACf,4BAA4B,sCAAA;QAC5B,iBAAiB,EAAE,iBAAiB,CAAC,IAAI;KAC5C,CAAC,CAAC;IAEH,OAAO,CAAC,GAAG,CAAC;QACR,EAAE;QACF,sEAA+D,eAAY,CAAC,mBAAmB,EAAE,WAAW,CAAC,kBAAK;QAClH,mJAAiJ;QACjJ,EAAE;QACF,2EAA2E;QAC3E,EAAE;QACF,cAAc;QACd,4BAA4B;QAC5B,oCAAoC;QACpC,kCAAkC;QAClC,yCAAyC;QACzC,oBAAoB;QACpB,kBAAkB;QAClB,iBAAiB;QACjB,kBAAkB;QAClB,gDAA8C,eAAY,CAAC,WAAW,CAAC,4BAAuB,eAAY,CAAC,WAAW,CAAG;QACzH,yBAAyB;QACzB,gCAAgC;QAChC,sCAAsC;QACtC,UAAU;QACV,8BAA8B;QAC9B,gCAAgC;QAChC,qEAAqE;QACrE,EAAE;QACF,EAAE;QACF,8HAA8H;QAC9H,EAAE;QACF,SAAO,eAAY,CAAC,mBAAmB,EAAE,WAAQ,CAAC,oCAA4B,EAAE,kDAA6B,CAAC,CAAG;QACjH,EAAE;QACF,gHAAgH;QAChH,mEAAiE,iBAAiB,CAAC,IAAI,MAAG;QAC1F,+EAA+E;QAC/E,EAAE;QACF,+FAA+F;QAC/F,EAAE;KACL,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;CAEjB"}
|
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/bin/build-keycloak-theme/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAEA,mFAAkF;AAClF,mEAAkE;AAElE,6BAAwC;AACxC,2DAA+C;AAC/C,2DAA0D;AAE1D,IAAM,mBAAmB,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;AAE1C,IAAM,iBAAiB,GAAsB,OAAO,CAAC,WAAQ,CAAC,mBAAmB,EAAE,cAAc,CAAC,CAAC,CAAC;AAEvF,QAAA,4BAA4B,GAAG,WAAQ,CAAC,mBAAmB,EAAE,gBAAgB,CAAC,CAAC;AAE5F,IAAI,OAAO,CAAC,IAAI,KAAK,MAAM,EAAE;IAEzB,+DAA8B,CAAC;QAC3B,4BAA4B,sCAAA;QAC5B,sBAAsB,EAAE,WAAQ,CAAC,mBAAmB,EAAE,OAAO,CAAC;QAC9D,WAAW,EAAE,iBAAiB,CAAC,IAAI;KACtC,CAAC,CAAC;IAEH,+CAAsB,CAAC;QACnB,iBAAiB,mBAAA;QACjB,4BAA4B,sCAAA;KAC/B,CAAC,CAAC;IAEH,aAAa,CAAC,QAAQ,CAClB,aAAa,EACb,EAAE,KAAK,EAAE,oCAA4B,EAAE,CAC1C,CAAC;IAEF,uCAAkB,CAAC;QACf,4BAA4B,sCAAA;QAC5B,iBAAiB,EAAE,iBAAiB,CAAC,IAAI;KAC5C,CAAC,CAAC;CAEN"}
|
1
lib/index.d.ts
vendored
1
lib/index.d.ts
vendored
@ -1 +0,0 @@
|
|||||||
export * from "./keycloakFtlValues";
|
|
14
lib/index.js
14
lib/index.js
@ -1,14 +0,0 @@
|
|||||||
"use strict";
|
|
||||||
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
||||||
if (k2 === undefined) k2 = k;
|
|
||||||
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
|
|
||||||
}) : (function(o, m, k, k2) {
|
|
||||||
if (k2 === undefined) k2 = k;
|
|
||||||
o[k2] = m[k];
|
|
||||||
}));
|
|
||||||
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
||||||
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
||||||
};
|
|
||||||
Object.defineProperty(exports, "__esModule", { value: true });
|
|
||||||
__exportStar(require("./keycloakFtlValues"), exports);
|
|
||||||
//# sourceMappingURL=index.js.map
|
|
@ -1 +0,0 @@
|
|||||||
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/lib/index.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,sDAAoC"}
|
|
1
lib/inex.d.ts
vendored
Normal file
1
lib/inex.d.ts
vendored
Normal file
@ -0,0 +1 @@
|
|||||||
|
export {};
|
3
lib/inex.js
Normal file
3
lib/inex.js
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
"use strict";
|
||||||
|
Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
|
//# sourceMappingURL=inex.js.map
|
1
lib/inex.js.map
Normal file
1
lib/inex.js.map
Normal file
@ -0,0 +1 @@
|
|||||||
|
{"version":3,"file":"inex.js","sourceRoot":"","sources":["../src/lib/inex.ts"],"names":[],"mappings":""}
|
9
lib/keycloakFtlValues.d.ts
vendored
9
lib/keycloakFtlValues.d.ts
vendored
@ -1,9 +0,0 @@
|
|||||||
import type { generateFtlFilesCodeFactory } from "../bin/build-keycloak-theme/generateFtl";
|
|
||||||
export declare type KeycloakFtlValues = {
|
|
||||||
pageBasename: Parameters<ReturnType<typeof generateFtlFilesCodeFactory>["generateFtlFilesCode"]>[0]["pageBasename"];
|
|
||||||
url: {
|
|
||||||
loginAction: string;
|
|
||||||
resourcesPath: string;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
export declare const keycloakPagesContext: KeycloakFtlValues | undefined;
|
|
@ -1,9 +0,0 @@
|
|||||||
"use strict";
|
|
||||||
var _a;
|
|
||||||
Object.defineProperty(exports, "__esModule", { value: true });
|
|
||||||
exports.keycloakPagesContext = void 0;
|
|
||||||
var generateKeycloakThemeResources_1 = require("../bin/build-keycloak-theme/generateKeycloakThemeResources");
|
|
||||||
var id_1 = require("evt/tools/typeSafety/id");
|
|
||||||
exports.keycloakPagesContext = (_a = {}, _a[generateKeycloakThemeResources_1.ftlValuesGlobalName] = id_1.id(window[generateKeycloakThemeResources_1.ftlValuesGlobalName]), _a).keycloakPagesContext;
|
|
||||||
;
|
|
||||||
//# sourceMappingURL=keycloakFtlValues.js.map
|
|
@ -1 +0,0 @@
|
|||||||
{"version":3,"file":"keycloakFtlValues.js","sourceRoot":"","sources":["../src/lib/keycloakFtlValues.ts"],"names":[],"mappings":";;;;AAGA,6GAAiG;AAEjG,8CAA6C;AAW9B,QAAA,oBAAoB,aAC7B,GAAC,oDAAmB,IAAG,OAAE,CAAiC,MAAc,CAAC,oDAAmB,CAAC,CAAC,2BAAG;AACvG,CAAC"}
|
|
29
package-lock.json
generated
29
package-lock.json
generated
@ -1,15 +1,14 @@
|
|||||||
{
|
{
|
||||||
"name": "keycloak-react-theming",
|
"name": "keycloak-react-theming",
|
||||||
"version": "0.0.13",
|
"version": "0.0.7",
|
||||||
"lockfileVersion": 2,
|
"lockfileVersion": 2,
|
||||||
"requires": true,
|
"requires": true,
|
||||||
"packages": {
|
"packages": {
|
||||||
"": {
|
"": {
|
||||||
"version": "0.0.13",
|
"version": "0.0.7",
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"cheerio": "^1.0.0-rc.5",
|
"cheerio": "^1.0.0-rc.5"
|
||||||
"evt": "^1.9.12"
|
|
||||||
},
|
},
|
||||||
"bin": {
|
"bin": {
|
||||||
"build-keycloak-theme": "dist/bin/build-keycloak-theme/index.js",
|
"build-keycloak-theme": "dist/bin/build-keycloak-theme/index.js",
|
||||||
@ -483,6 +482,7 @@
|
|||||||
"version": "1.9.12",
|
"version": "1.9.12",
|
||||||
"resolved": "https://registry.npmjs.org/evt/-/evt-1.9.12.tgz",
|
"resolved": "https://registry.npmjs.org/evt/-/evt-1.9.12.tgz",
|
||||||
"integrity": "sha512-u8wC4Xif2pcDJ9cEm0wzWCIQb+Y214m1eUgsgm2hVIuXuvC6LToryA0Ecl1O8Slii2E9l6USLsyxXWntjlnIbw==",
|
"integrity": "sha512-u8wC4Xif2pcDJ9cEm0wzWCIQb+Y214m1eUgsgm2hVIuXuvC6LToryA0Ecl1O8Slii2E9l6USLsyxXWntjlnIbw==",
|
||||||
|
"dev": true,
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"minimal-polyfills": "^2.1.5",
|
"minimal-polyfills": "^2.1.5",
|
||||||
"run-exclusive": "^2.2.14"
|
"run-exclusive": "^2.2.14"
|
||||||
@ -612,7 +612,8 @@
|
|||||||
"node_modules/minimal-polyfills": {
|
"node_modules/minimal-polyfills": {
|
||||||
"version": "2.1.6",
|
"version": "2.1.6",
|
||||||
"resolved": "https://registry.npmjs.org/minimal-polyfills/-/minimal-polyfills-2.1.6.tgz",
|
"resolved": "https://registry.npmjs.org/minimal-polyfills/-/minimal-polyfills-2.1.6.tgz",
|
||||||
"integrity": "sha512-vqoxj7eMzsqX0M6/dkgoNFPw6Mztgn5qjSl0bWGboQeU7Y4UPLeyoqQw6JI+0qmBcJYdkr3nK7dqY8u/fgRp5g=="
|
"integrity": "sha512-vqoxj7eMzsqX0M6/dkgoNFPw6Mztgn5qjSl0bWGboQeU7Y4UPLeyoqQw6JI+0qmBcJYdkr3nK7dqY8u/fgRp5g==",
|
||||||
|
"dev": true
|
||||||
},
|
},
|
||||||
"node_modules/minimatch": {
|
"node_modules/minimatch": {
|
||||||
"version": "3.0.4",
|
"version": "3.0.4",
|
||||||
@ -748,6 +749,7 @@
|
|||||||
"version": "2.2.14",
|
"version": "2.2.14",
|
||||||
"resolved": "https://registry.npmjs.org/run-exclusive/-/run-exclusive-2.2.14.tgz",
|
"resolved": "https://registry.npmjs.org/run-exclusive/-/run-exclusive-2.2.14.tgz",
|
||||||
"integrity": "sha512-NHaQfB3zPJFx7p4M06AcmoK8xz/h8YDMCdy3jxfyoC9VqIbl1U+DiVjUuAYZBRMwvj5qkQnOUGfsmyUC4k46dg==",
|
"integrity": "sha512-NHaQfB3zPJFx7p4M06AcmoK8xz/h8YDMCdy3jxfyoC9VqIbl1U+DiVjUuAYZBRMwvj5qkQnOUGfsmyUC4k46dg==",
|
||||||
|
"dev": true,
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"minimal-polyfills": "^2.1.5"
|
"minimal-polyfills": "^2.1.5"
|
||||||
}
|
}
|
||||||
@ -936,9 +938,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/yargs-parser": {
|
"node_modules/yargs-parser": {
|
||||||
"version": "20.2.6",
|
"version": "20.2.5",
|
||||||
"resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.6.tgz",
|
"resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.5.tgz",
|
||||||
"integrity": "sha512-AP1+fQIWSM/sMiET8fyayjx/J+JmTPt2Mr0FkrgqB4todtfa53sOsrSAcIrJRD5XS20bKUwaDIuMkWKCEiQLKA==",
|
"integrity": "sha512-jYRGS3zWy20NtDtK2kBgo/TlAoy5YUuhD9/LZ7z7W4j1Fdw2cqD0xEEclf8fxc8xjD6X5Qr+qQQwCEsP8iRiYg==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": ">=10"
|
"node": ">=10"
|
||||||
@ -1325,6 +1327,7 @@
|
|||||||
"version": "1.9.12",
|
"version": "1.9.12",
|
||||||
"resolved": "https://registry.npmjs.org/evt/-/evt-1.9.12.tgz",
|
"resolved": "https://registry.npmjs.org/evt/-/evt-1.9.12.tgz",
|
||||||
"integrity": "sha512-u8wC4Xif2pcDJ9cEm0wzWCIQb+Y214m1eUgsgm2hVIuXuvC6LToryA0Ecl1O8Slii2E9l6USLsyxXWntjlnIbw==",
|
"integrity": "sha512-u8wC4Xif2pcDJ9cEm0wzWCIQb+Y214m1eUgsgm2hVIuXuvC6LToryA0Ecl1O8Slii2E9l6USLsyxXWntjlnIbw==",
|
||||||
|
"dev": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"minimal-polyfills": "^2.1.5",
|
"minimal-polyfills": "^2.1.5",
|
||||||
"run-exclusive": "^2.2.14"
|
"run-exclusive": "^2.2.14"
|
||||||
@ -1426,7 +1429,8 @@
|
|||||||
"minimal-polyfills": {
|
"minimal-polyfills": {
|
||||||
"version": "2.1.6",
|
"version": "2.1.6",
|
||||||
"resolved": "https://registry.npmjs.org/minimal-polyfills/-/minimal-polyfills-2.1.6.tgz",
|
"resolved": "https://registry.npmjs.org/minimal-polyfills/-/minimal-polyfills-2.1.6.tgz",
|
||||||
"integrity": "sha512-vqoxj7eMzsqX0M6/dkgoNFPw6Mztgn5qjSl0bWGboQeU7Y4UPLeyoqQw6JI+0qmBcJYdkr3nK7dqY8u/fgRp5g=="
|
"integrity": "sha512-vqoxj7eMzsqX0M6/dkgoNFPw6Mztgn5qjSl0bWGboQeU7Y4UPLeyoqQw6JI+0qmBcJYdkr3nK7dqY8u/fgRp5g==",
|
||||||
|
"dev": true
|
||||||
},
|
},
|
||||||
"minimatch": {
|
"minimatch": {
|
||||||
"version": "3.0.4",
|
"version": "3.0.4",
|
||||||
@ -1535,6 +1539,7 @@
|
|||||||
"version": "2.2.14",
|
"version": "2.2.14",
|
||||||
"resolved": "https://registry.npmjs.org/run-exclusive/-/run-exclusive-2.2.14.tgz",
|
"resolved": "https://registry.npmjs.org/run-exclusive/-/run-exclusive-2.2.14.tgz",
|
||||||
"integrity": "sha512-NHaQfB3zPJFx7p4M06AcmoK8xz/h8YDMCdy3jxfyoC9VqIbl1U+DiVjUuAYZBRMwvj5qkQnOUGfsmyUC4k46dg==",
|
"integrity": "sha512-NHaQfB3zPJFx7p4M06AcmoK8xz/h8YDMCdy3jxfyoC9VqIbl1U+DiVjUuAYZBRMwvj5qkQnOUGfsmyUC4k46dg==",
|
||||||
|
"dev": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"minimal-polyfills": "^2.1.5"
|
"minimal-polyfills": "^2.1.5"
|
||||||
}
|
}
|
||||||
@ -1694,9 +1699,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"yargs-parser": {
|
"yargs-parser": {
|
||||||
"version": "20.2.6",
|
"version": "20.2.5",
|
||||||
"resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.6.tgz",
|
"resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.5.tgz",
|
||||||
"integrity": "sha512-AP1+fQIWSM/sMiET8fyayjx/J+JmTPt2Mr0FkrgqB4todtfa53sOsrSAcIrJRD5XS20bKUwaDIuMkWKCEiQLKA==",
|
"integrity": "sha512-jYRGS3zWy20NtDtK2kBgo/TlAoy5YUuhD9/LZ7z7W4j1Fdw2cqD0xEEclf8fxc8xjD6X5Qr+qQQwCEsP8iRiYg==",
|
||||||
"dev": true
|
"dev": true
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
23
package.json
23
package.json
@ -1,13 +1,13 @@
|
|||||||
{
|
{
|
||||||
"name": "keycloak-react-theming",
|
"name": "keycloak-react-theming",
|
||||||
"version": "0.0.13",
|
"version": "0.0.7",
|
||||||
"description": "Keycloak theme generator for Reacts app",
|
"description": "Provides a way to customize Keycloak login and register pages with React",
|
||||||
"repository": {
|
"repository": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "git://github.com/garronej/keycloak-react-theming.git"
|
"url": "git://github.com/garronej/keycloak-react-theming.git"
|
||||||
},
|
},
|
||||||
"main": "lib/index.js",
|
"main": "dist/lib/index.js",
|
||||||
"types": "lib/index.d.ts",
|
"types": "dist/lib/index.d.ts",
|
||||||
"bin": {
|
"bin": {
|
||||||
"build-keycloak-theme": "bin/build-keycloak-theme/index.js",
|
"build-keycloak-theme": "bin/build-keycloak-theme/index.js",
|
||||||
"download-sample-keycloak-themes": "bin/download-sample-keycloak-themes.js"
|
"download-sample-keycloak-themes": "bin/download-sample-keycloak-themes.js"
|
||||||
@ -23,8 +23,7 @@
|
|||||||
"src/bin/build-keycloak-theme/index.ts",
|
"src/bin/build-keycloak-theme/index.ts",
|
||||||
"src/bin/build-keycloak-theme/replaceImportFromStatic.ts",
|
"src/bin/build-keycloak-theme/replaceImportFromStatic.ts",
|
||||||
"src/bin/download-sample-keycloak-themes.ts",
|
"src/bin/download-sample-keycloak-themes.ts",
|
||||||
"src/lib/index.ts",
|
"src/lib/inex.ts",
|
||||||
"src/lib/keycloakFtlValues.ts",
|
|
||||||
"src/tools/crawl.ts",
|
"src/tools/crawl.ts",
|
||||||
"src/tools/transformCodebase.ts",
|
"src/tools/transformCodebase.ts",
|
||||||
"bin/build-keycloak-theme/generateDebugFiles/index.d.ts",
|
"bin/build-keycloak-theme/generateDebugFiles/index.d.ts",
|
||||||
@ -49,12 +48,9 @@
|
|||||||
"bin/download-sample-keycloak-themes.d.ts",
|
"bin/download-sample-keycloak-themes.d.ts",
|
||||||
"bin/download-sample-keycloak-themes.js",
|
"bin/download-sample-keycloak-themes.js",
|
||||||
"bin/download-sample-keycloak-themes.js.map",
|
"bin/download-sample-keycloak-themes.js.map",
|
||||||
"lib/index.d.ts",
|
"lib/inex.d.ts",
|
||||||
"lib/index.js",
|
"lib/inex.js",
|
||||||
"lib/index.js.map",
|
"lib/inex.js.map",
|
||||||
"lib/keycloakFtlValues.d.ts",
|
|
||||||
"lib/keycloakFtlValues.js",
|
|
||||||
"lib/keycloakFtlValues.js.map",
|
|
||||||
"tools/crawl.d.ts",
|
"tools/crawl.d.ts",
|
||||||
"tools/crawl.js",
|
"tools/crawl.js",
|
||||||
"tools/crawl.js.map",
|
"tools/crawl.js.map",
|
||||||
@ -76,7 +72,6 @@
|
|||||||
"typescript": "^4.1.5"
|
"typescript": "^4.1.5"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"cheerio": "^1.0.0-rc.5",
|
"cheerio": "^1.0.0-rc.5"
|
||||||
"evt": "^1.9.12"
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -2,8 +2,6 @@
|
|||||||
import * as fs from "fs";
|
import * as fs from "fs";
|
||||||
import { join as pathJoin, dirname as pathDirname, basename as pathBasename } from "path";
|
import { join as pathJoin, dirname as pathDirname, basename as pathBasename } from "path";
|
||||||
|
|
||||||
export const containerLaunchScriptBasename = "start_keycloak_testing_container.sh";
|
|
||||||
|
|
||||||
/** Files for being able to run a hot reload keycloak container */
|
/** Files for being able to run a hot reload keycloak container */
|
||||||
export function generateDebugFiles(
|
export function generateDebugFiles(
|
||||||
params: {
|
params: {
|
||||||
@ -36,7 +34,7 @@ export function generateDebugFiles(
|
|||||||
const containerName = "keycloak-testing-container";
|
const containerName = "keycloak-testing-container";
|
||||||
|
|
||||||
fs.writeFileSync(
|
fs.writeFileSync(
|
||||||
pathJoin(keycloakThemeBuildingDirPath, containerLaunchScriptBasename),
|
pathJoin(keycloakThemeBuildingDirPath, "start_keycloak_testing_container.sh"),
|
||||||
Buffer.from(
|
Buffer.from(
|
||||||
[
|
[
|
||||||
"#!/bin/bash",
|
"#!/bin/bash",
|
||||||
@ -50,8 +48,7 @@ export function generateDebugFiles(
|
|||||||
` --name ${containerName} \\`,
|
` --name ${containerName} \\`,
|
||||||
" -e KEYCLOAK_USER=admin \\",
|
" -e KEYCLOAK_USER=admin \\",
|
||||||
" -e KEYCLOAK_PASSWORD=admin \\",
|
" -e KEYCLOAK_PASSWORD=admin \\",
|
||||||
` -v ${pathJoin(keycloakThemeBuildingDirPath, "src", "main", "resources", "theme", packageJsonName)
|
` -v ${pathJoin(keycloakThemeBuildingDirPath, "src", "main", "resources", "theme", "onyxia")}:/opt/jboss/keycloak/themes/onyxia:rw \\`,
|
||||||
}:/opt/jboss/keycloak/themes/${packageJsonName}:rw \\`,
|
|
||||||
` -it ${dockerImage}:latest`,
|
` -it ${dockerImage}:latest`,
|
||||||
""
|
""
|
||||||
].join("\n"),
|
].join("\n"),
|
||||||
|
@ -49,16 +49,13 @@ export function generateFtlFilesCodeFactory(
|
|||||||
|
|
||||||
$("head").prepend(
|
$("head").prepend(
|
||||||
[
|
[
|
||||||
...(Object.keys(cssGlobalsToDefine).length === 0 ? [] : [
|
'',
|
||||||
'',
|
'<style>',
|
||||||
'<style>',
|
generateCssCodeToDefineGlobals(
|
||||||
generateCssCodeToDefineGlobals(
|
{ cssGlobalsToDefine }
|
||||||
{ cssGlobalsToDefine }
|
).cssCodeToPrependInHead,
|
||||||
).cssCodeToPrependInHead,
|
'</style>',
|
||||||
'</style>',
|
'',
|
||||||
''
|
|
||||||
]),
|
|
||||||
|
|
||||||
'<script>',
|
'<script>',
|
||||||
' Object.assign(',
|
' Object.assign(',
|
||||||
` window.${ftlValuesGlobalName},`,
|
` window.${ftlValuesGlobalName},`,
|
||||||
@ -68,7 +65,7 @@ export function generateFtlFilesCodeFactory(
|
|||||||
' "resourcesPath": "${url.resourcesPath}"',
|
' "resourcesPath": "${url.resourcesPath}"',
|
||||||
' }',
|
' }',
|
||||||
' }',
|
' }',
|
||||||
' );',
|
' });',
|
||||||
'</script>',
|
'</script>',
|
||||||
''
|
''
|
||||||
].join("\n"),
|
].join("\n"),
|
||||||
|
@ -14,7 +14,7 @@ export function generateJavaStackFiles(
|
|||||||
parsedPackageJson: ParsedPackageJson;
|
parsedPackageJson: ParsedPackageJson;
|
||||||
keycloakThemeBuildingDirPath: string;
|
keycloakThemeBuildingDirPath: string;
|
||||||
}
|
}
|
||||||
): { jarFilePath: string; } {
|
): void {
|
||||||
|
|
||||||
const {
|
const {
|
||||||
parsedPackageJson: { name, version, homepage },
|
parsedPackageJson: { name, version, homepage },
|
||||||
@ -94,7 +94,5 @@ export function generateJavaStackFiles(
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return { "jarFilePath": pathJoin(keycloakThemeBuildingDirPath, "target", `${name}-${version}.jar`) };
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -8,7 +8,7 @@ import {
|
|||||||
} from "./replaceImportFromStatic";
|
} from "./replaceImportFromStatic";
|
||||||
import { generateFtlFilesCodeFactory } from "./generateFtl";
|
import { generateFtlFilesCodeFactory } from "./generateFtl";
|
||||||
|
|
||||||
export const ftlValuesGlobalName = "keycloakPagesContext";
|
const ftlValuesGlobalName = "keycloakFtlValues";
|
||||||
|
|
||||||
export function generateKeycloakThemeResources(
|
export function generateKeycloakThemeResources(
|
||||||
params: {
|
params: {
|
||||||
@ -79,10 +79,5 @@ export function generateKeycloakThemeResources(
|
|||||||
|
|
||||||
});
|
});
|
||||||
|
|
||||||
fs.writeFileSync(
|
|
||||||
pathJoin(themeDirPath, "theme.properties"),
|
|
||||||
Buffer.from("parent=base\n", "utf8")
|
|
||||||
);
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -3,10 +3,9 @@
|
|||||||
import { generateKeycloakThemeResources } from "./generateKeycloakThemeResources";
|
import { generateKeycloakThemeResources } from "./generateKeycloakThemeResources";
|
||||||
import { generateJavaStackFiles } from "./generateJavaStackFiles";
|
import { generateJavaStackFiles } from "./generateJavaStackFiles";
|
||||||
import type { ParsedPackageJson } from "./generateJavaStackFiles";
|
import type { ParsedPackageJson } from "./generateJavaStackFiles";
|
||||||
import { join as pathJoin, relative as pathRelative, basename as pathBasename } from "path";
|
import { join as pathJoin } from "path";
|
||||||
import * as child_process from "child_process";
|
import * as child_process from "child_process";
|
||||||
import { generateDebugFiles, containerLaunchScriptBasename } from "./generateDebugFiles";
|
import { generateDebugFiles } from "./generateDebugFiles";
|
||||||
|
|
||||||
|
|
||||||
const reactProjectDirPath = process.cwd();
|
const reactProjectDirPath = process.cwd();
|
||||||
|
|
||||||
@ -14,9 +13,6 @@ const parsedPackageJson: ParsedPackageJson = require(pathJoin(reactProjectDirPat
|
|||||||
|
|
||||||
export const keycloakThemeBuildingDirPath = pathJoin(reactProjectDirPath, "build_keycloak");
|
export const keycloakThemeBuildingDirPath = pathJoin(reactProjectDirPath, "build_keycloak");
|
||||||
|
|
||||||
|
|
||||||
console.log("🔏 Building the keycloak theme...⌚");
|
|
||||||
|
|
||||||
if (require.main === module) {
|
if (require.main === module) {
|
||||||
|
|
||||||
generateKeycloakThemeResources({
|
generateKeycloakThemeResources({
|
||||||
@ -25,7 +21,7 @@ if (require.main === module) {
|
|||||||
"themeName": parsedPackageJson.name
|
"themeName": parsedPackageJson.name
|
||||||
});
|
});
|
||||||
|
|
||||||
const { jarFilePath } = generateJavaStackFiles({
|
generateJavaStackFiles({
|
||||||
parsedPackageJson,
|
parsedPackageJson,
|
||||||
keycloakThemeBuildingDirPath
|
keycloakThemeBuildingDirPath
|
||||||
});
|
});
|
||||||
@ -40,42 +36,4 @@ if (require.main === module) {
|
|||||||
"packageJsonName": parsedPackageJson.name
|
"packageJsonName": parsedPackageJson.name
|
||||||
});
|
});
|
||||||
|
|
||||||
console.log([
|
|
||||||
'',
|
|
||||||
`✅ Your keycloak theme has been generated and bundled into ./${pathRelative(reactProjectDirPath, jarFilePath)} 🚀`,
|
|
||||||
`It is to be placed in "/opt/jboss/keycloak/standalone/deployments" in the container running a jboss/keycloak Docker image. (Tested with 11.0.3)`,
|
|
||||||
'',
|
|
||||||
'Using Helm (https://github.com/codecentric/helm-charts), edit to reflect:',
|
|
||||||
'',
|
|
||||||
'value.yaml: ',
|
|
||||||
' extraInitContainers: |',
|
|
||||||
' - name: realm-ext-provider',
|
|
||||||
' image: curlimages/curl',
|
|
||||||
' imagePullPolicy: IfNotPresent',
|
|
||||||
' command:',
|
|
||||||
' - sh',
|
|
||||||
' args:',
|
|
||||||
' - -c',
|
|
||||||
` - curl -L -f -S -o /extensions/${pathBasename(jarFilePath)} https://AN.URL.FOR/${pathBasename(jarFilePath)}`,
|
|
||||||
' volumeMounts:',
|
|
||||||
' - name: extensions',
|
|
||||||
' mountPath: /extensions',
|
|
||||||
' ',
|
|
||||||
' extraVolumeMounts: |',
|
|
||||||
' - name: extensions',
|
|
||||||
' mountPath: /opt/jboss/keycloak/standalone/deployments',
|
|
||||||
'',
|
|
||||||
'',
|
|
||||||
'To test your theme locally, with hot reloading, you can spin up a Keycloak container image with the theme loaded by running:',
|
|
||||||
'',
|
|
||||||
`$ ./${pathRelative(reactProjectDirPath, pathJoin(keycloakThemeBuildingDirPath, containerLaunchScriptBasename))}`,
|
|
||||||
'',
|
|
||||||
'To enable the theme within keycloak log into the admin console, create a realm (called "myrealm" for example),',
|
|
||||||
`go to your realm settings, click on the theme tab then select ${parsedPackageJson.name}.`,
|
|
||||||
`More details: https://www.keycloak.org/getting-started/getting-started-docker`,
|
|
||||||
'',
|
|
||||||
'Once your container is up and configured 👉 http://localhost:8080/auth/realms/myrealm/account',
|
|
||||||
'',
|
|
||||||
].join("\n"));
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -1 +0,0 @@
|
|||||||
export * from "./keycloakFtlValues";
|
|
3
src/lib/inex.ts
Normal file
3
src/lib/inex.ts
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
|
||||||
|
|
||||||
|
export { };
|
@ -1,19 +0,0 @@
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
import { ftlValuesGlobalName } from "../bin/build-keycloak-theme/generateKeycloakThemeResources";
|
|
||||||
import type { generateFtlFilesCodeFactory } from "../bin/build-keycloak-theme/generateFtl";
|
|
||||||
import { id } from "evt/tools/typeSafety/id";
|
|
||||||
|
|
||||||
|
|
||||||
export type KeycloakFtlValues = {
|
|
||||||
pageBasename: Parameters<ReturnType<typeof generateFtlFilesCodeFactory>["generateFtlFilesCode"]>[0]["pageBasename"];
|
|
||||||
url: {
|
|
||||||
loginAction: string,
|
|
||||||
resourcesPath: string
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
export const { keycloakPagesContext } =
|
|
||||||
{ [ftlValuesGlobalName]: id<KeycloakFtlValues | undefined>((window as any)[ftlValuesGlobalName]) };
|
|
||||||
;
|
|
@ -1,23 +1,15 @@
|
|||||||
|
|
||||||
import {
|
import { setupSampleReactProject } from "./setupSampleReactProject";
|
||||||
setupSampleReactProject,
|
|
||||||
sampleReactProjectDirPath
|
|
||||||
} from "./setupSampleReactProject";
|
|
||||||
import * as st from "scripting-tools";
|
import * as st from "scripting-tools";
|
||||||
import { join as pathJoin } from "path";
|
import { join as pathJoin } from "path";
|
||||||
|
|
||||||
|
const { sampleReactProjectDirPath } = setupSampleReactProject();
|
||||||
setupSampleReactProject();
|
|
||||||
|
|
||||||
|
|
||||||
console.log(`Running main in ${sampleReactProjectDirPath}`);
|
console.log(`Running main in ${sampleReactProjectDirPath}`);
|
||||||
|
|
||||||
console.log(
|
st.execSync(
|
||||||
st.execSync(
|
`node ${pathJoin(__dirname, "../bin/build-keycloak-theme")}`,
|
||||||
`node ${pathJoin(__dirname, "../bin/build-keycloak-theme")}`,
|
{ "cwd": sampleReactProjectDirPath }
|
||||||
{ "cwd": sampleReactProjectDirPath }
|
|
||||||
)
|
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -1,12 +1,9 @@
|
|||||||
|
|
||||||
import { join as pathJoin } from "path";
|
import { join as pathJoin } from "path";
|
||||||
import { generateKeycloakThemeResources } from "../bin/build-keycloak-theme/generateKeycloakThemeResources";
|
import { generateKeycloakThemeResources } from "../bin/build-keycloak-theme/generateKeycloakThemeResources";
|
||||||
import {
|
import { setupSampleReactProject } from "./setupSampleReactProject";
|
||||||
setupSampleReactProject,
|
|
||||||
sampleReactProjectDirPath
|
|
||||||
} from "./setupSampleReactProject";
|
|
||||||
|
|
||||||
setupSampleReactProject();
|
const { sampleReactProjectDirPath } = setupSampleReactProject();
|
||||||
|
|
||||||
generateKeycloakThemeResources({
|
generateKeycloakThemeResources({
|
||||||
"themeName": "onyxia-ui",
|
"themeName": "onyxia-ui",
|
||||||
|
@ -16,4 +16,6 @@ export function setupSampleReactProject() {
|
|||||||
...["unzip", "rm"].map(prg => `${prg} ${pathBasename(url)}`)
|
...["unzip", "rm"].map(prg => `${prg} ${pathBasename(url)}`)
|
||||||
].forEach(cmd => st.execSync(cmd, { "cwd": sampleReactProjectDirPath }));
|
].forEach(cmd => st.execSync(cmd, { "cwd": sampleReactProjectDirPath }));
|
||||||
|
|
||||||
|
return { sampleReactProjectDirPath };
|
||||||
|
|
||||||
}
|
}
|
@ -22,7 +22,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||||||
var setupSampleReactProject_1 = require("./setupSampleReactProject");
|
var setupSampleReactProject_1 = require("./setupSampleReactProject");
|
||||||
var st = __importStar(require("scripting-tools"));
|
var st = __importStar(require("scripting-tools"));
|
||||||
var path_1 = require("path");
|
var path_1 = require("path");
|
||||||
setupSampleReactProject_1.setupSampleReactProject();
|
var sampleReactProjectDirPath = setupSampleReactProject_1.setupSampleReactProject().sampleReactProjectDirPath;
|
||||||
console.log("Running main in " + setupSampleReactProject_1.sampleReactProjectDirPath);
|
console.log("Running main in " + sampleReactProjectDirPath);
|
||||||
console.log(st.execSync("node " + path_1.join(__dirname, "../bin/build-keycloak-theme"), { "cwd": setupSampleReactProject_1.sampleReactProjectDirPath }));
|
st.execSync("node " + path_1.join(__dirname, "../bin/build-keycloak-theme"), { "cwd": sampleReactProjectDirPath });
|
||||||
//# sourceMappingURL=build-keycloak-theme.js.map
|
//# sourceMappingURL=build-keycloak-theme.js.map
|
@ -1 +1 @@
|
|||||||
{"version":3,"file":"build-keycloak-theme.js","sourceRoot":"","sources":["../src/test/build-keycloak-theme.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;AACA,qEAGmC;AACnC,kDAAsC;AACtC,6BAAwC;AAGxC,iDAAuB,EAAE,CAAC;AAG1B,OAAO,CAAC,GAAG,CAAC,qBAAmB,mDAA2B,CAAC,CAAC;AAE5D,OAAO,CAAC,GAAG,CACP,EAAE,CAAC,QAAQ,CACP,UAAQ,WAAQ,CAAC,SAAS,EAAE,6BAA6B,CAAG,EAC5D,EAAE,KAAK,EAAE,mDAAyB,EAAE,CACvC,CACJ,CAAC"}
|
{"version":3,"file":"build-keycloak-theme.js","sourceRoot":"","sources":["../src/test/build-keycloak-theme.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;AACA,qEAAoE;AACpE,kDAAsC;AACtC,6BAAwC;AAEhC,IAAA,yBAAyB,GAAK,iDAAuB,EAAE,0BAA9B,CAA+B;AAEhE,OAAO,CAAC,GAAG,CAAC,qBAAmB,yBAA2B,CAAC,CAAC;AAE5D,EAAE,CAAC,QAAQ,CACP,UAAQ,WAAQ,CAAC,SAAS,EAAE,6BAA6B,CAAG,EAC5D,EAAE,KAAK,EAAE,yBAAyB,EAAE,CACvC,CAAC"}
|
@ -3,10 +3,10 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||||||
var path_1 = require("path");
|
var path_1 = require("path");
|
||||||
var generateKeycloakThemeResources_1 = require("../bin/build-keycloak-theme/generateKeycloakThemeResources");
|
var generateKeycloakThemeResources_1 = require("../bin/build-keycloak-theme/generateKeycloakThemeResources");
|
||||||
var setupSampleReactProject_1 = require("./setupSampleReactProject");
|
var setupSampleReactProject_1 = require("./setupSampleReactProject");
|
||||||
setupSampleReactProject_1.setupSampleReactProject();
|
var sampleReactProjectDirPath = setupSampleReactProject_1.setupSampleReactProject().sampleReactProjectDirPath;
|
||||||
generateKeycloakThemeResources_1.generateKeycloakThemeResources({
|
generateKeycloakThemeResources_1.generateKeycloakThemeResources({
|
||||||
"themeName": "onyxia-ui",
|
"themeName": "onyxia-ui",
|
||||||
"reactAppBuildDirPath": path_1.join(setupSampleReactProject_1.sampleReactProjectDirPath, "build"),
|
"reactAppBuildDirPath": path_1.join(sampleReactProjectDirPath, "build"),
|
||||||
"keycloakThemeBuildingDirPath": path_1.join(setupSampleReactProject_1.sampleReactProjectDirPath, "build_keycloak_theme")
|
"keycloakThemeBuildingDirPath": path_1.join(sampleReactProjectDirPath, "build_keycloak_theme")
|
||||||
});
|
});
|
||||||
//# sourceMappingURL=generateKeycloakThemeResources.js.map
|
//# sourceMappingURL=generateKeycloakThemeResources.js.map
|
@ -1 +1 @@
|
|||||||
{"version":3,"file":"generateKeycloakThemeResources.js","sourceRoot":"","sources":["../src/test/generateKeycloakThemeResources.ts"],"names":[],"mappings":";;AACA,6BAAwC;AACxC,6GAA4G;AAC5G,qEAGmC;AAEnC,iDAAuB,EAAE,CAAC;AAE1B,+DAA8B,CAAC;IAC3B,WAAW,EAAE,WAAW;IACxB,sBAAsB,EAAE,WAAQ,CAAC,mDAAyB,EAAE,OAAO,CAAC;IACpE,8BAA8B,EAAE,WAAQ,CAAC,mDAAyB,EAAE,sBAAsB,CAAC;CAC9F,CAAC,CAAC"}
|
{"version":3,"file":"generateKeycloakThemeResources.js","sourceRoot":"","sources":["../src/test/generateKeycloakThemeResources.ts"],"names":[],"mappings":";;AACA,6BAAwC;AACxC,6GAA4G;AAC5G,qEAAoE;AAE5D,IAAA,yBAAyB,GAAK,iDAAuB,EAAE,0BAA9B,CAA+B;AAEhE,+DAA8B,CAAC;IAC3B,WAAW,EAAE,WAAW;IACxB,sBAAsB,EAAE,WAAQ,CAAC,yBAAyB,EAAE,OAAO,CAAC;IACpE,8BAA8B,EAAE,WAAQ,CAAC,yBAAyB,EAAE,sBAAsB,CAAC;CAC9F,CAAC,CAAC"}
|
4
test/setupSampleReactProject.d.ts
vendored
4
test/setupSampleReactProject.d.ts
vendored
@ -1,2 +1,4 @@
|
|||||||
export declare const sampleReactProjectDirPath: string;
|
export declare const sampleReactProjectDirPath: string;
|
||||||
export declare function setupSampleReactProject(): void;
|
export declare function setupSampleReactProject(): {
|
||||||
|
sampleReactProjectDirPath: string;
|
||||||
|
};
|
||||||
|
@ -50,6 +50,7 @@ function setupSampleReactProject() {
|
|||||||
__spread([
|
__spread([
|
||||||
"wget " + url
|
"wget " + url
|
||||||
], ["unzip", "rm"].map(function (prg) { return prg + " " + path_1.basename(url); })).forEach(function (cmd) { return st.execSync(cmd, { "cwd": exports.sampleReactProjectDirPath }); });
|
], ["unzip", "rm"].map(function (prg) { return prg + " " + path_1.basename(url); })).forEach(function (cmd) { return st.execSync(cmd, { "cwd": exports.sampleReactProjectDirPath }); });
|
||||||
|
return { sampleReactProjectDirPath: exports.sampleReactProjectDirPath };
|
||||||
}
|
}
|
||||||
exports.setupSampleReactProject = setupSampleReactProject;
|
exports.setupSampleReactProject = setupSampleReactProject;
|
||||||
//# sourceMappingURL=setupSampleReactProject.js.map
|
//# sourceMappingURL=setupSampleReactProject.js.map
|
@ -1 +1 @@
|
|||||||
{"version":3,"file":"setupSampleReactProject.js","sourceRoot":"","sources":["../src/test/setupSampleReactProject.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,kDAAsC;AACtC,6BAAkE;AAErD,QAAA,yBAAyB,GAAG,WAAQ,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,sBAAsB,CAAC,CAAC;AAEjG,SAAgB,uBAAuB;IAEnC,EAAE,CAAC,QAAQ,CAAC,YAAU,iCAA2B,CAAC,CAAC;IACnD,EAAE,CAAC,QAAQ,CAAC,WAAS,iCAA2B,CAAC,CAAC;IAElD,IAAM,GAAG,GAAG,mHAAmH,CAAC;IAEhI;QACI,UAAQ,GAAK;OACV,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,GAAG,CAAC,UAAA,GAAG,IAAI,OAAG,GAAG,SAAI,eAAY,CAAC,GAAG,CAAG,EAA7B,CAA6B,CAAC,EAC9D,OAAO,CAAC,UAAA,GAAG,IAAI,OAAA,EAAE,CAAC,QAAQ,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,iCAAyB,EAAE,CAAC,EAAtD,CAAsD,CAAC,CAAC;AAE7E,CAAC;AAZD,0DAYC"}
|
{"version":3,"file":"setupSampleReactProject.js","sourceRoot":"","sources":["../src/test/setupSampleReactProject.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,kDAAsC;AACtC,6BAAkE;AAErD,QAAA,yBAAyB,GAAG,WAAQ,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,sBAAsB,CAAC,CAAC;AAEjG,SAAgB,uBAAuB;IAEnC,EAAE,CAAC,QAAQ,CAAC,YAAU,iCAA2B,CAAC,CAAC;IACnD,EAAE,CAAC,QAAQ,CAAC,WAAS,iCAA2B,CAAC,CAAC;IAElD,IAAM,GAAG,GAAG,mHAAmH,CAAC;IAEhI;QACI,UAAQ,GAAK;OACV,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,GAAG,CAAC,UAAA,GAAG,IAAI,OAAG,GAAG,SAAI,eAAY,CAAC,GAAG,CAAG,EAA7B,CAA6B,CAAC,EAC9D,OAAO,CAAC,UAAA,GAAG,IAAI,OAAA,EAAE,CAAC,QAAQ,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,iCAAyB,EAAE,CAAC,EAAtD,CAAsD,CAAC,CAAC;IAEzE,OAAO,EAAE,yBAAyB,mCAAA,EAAE,CAAC;AAEzC,CAAC;AAdD,0DAcC"}
|
@ -242,27 +242,27 @@
|
|||||||
"affectsGlobalScope": false
|
"affectsGlobalScope": false
|
||||||
},
|
},
|
||||||
"../src/bin/build-keycloak-theme/generateFtl.ts": {
|
"../src/bin/build-keycloak-theme/generateFtl.ts": {
|
||||||
"version": "9b6401a245a32e2968648cf5e48595a0a4e1d12237bf8aadf2da6336304ad8c8",
|
"version": "9ff8e2f3fe2505639167e0574c85bbe0748103e8093eb2d956309b59ffeffdde",
|
||||||
"signature": "3a11af9abe294b90f19598d16e9d081f5452cdb668939e63abdd6a4d90955279",
|
"signature": "3a11af9abe294b90f19598d16e9d081f5452cdb668939e63abdd6a4d90955279",
|
||||||
"affectsGlobalScope": false
|
"affectsGlobalScope": false
|
||||||
},
|
},
|
||||||
"../src/bin/build-keycloak-theme/generateKeycloakThemeResources.ts": {
|
"../src/bin/build-keycloak-theme/generateKeycloakThemeResources.ts": {
|
||||||
"version": "fa036a62fb59eb4f9c98070852ba0de9789bacdc38c049a015649439edd74edc",
|
"version": "c3b6d9c8f827f26d42410ac74adb2e87384d355d612d4a8ac368033bb731f5b1",
|
||||||
"signature": "91ea17958f25db390b27717b63af5395e85d44a75b1fcaf57ff05c0a46dcacae",
|
"signature": "c53e9172d81232fc2b183d2105ce6b33db0803cdb01c188755460b66b9e7bf35",
|
||||||
"affectsGlobalScope": false
|
"affectsGlobalScope": false
|
||||||
},
|
},
|
||||||
"../src/bin/build-keycloak-theme/generateJavaStackFiles.ts": {
|
"../src/bin/build-keycloak-theme/generateJavaStackFiles.ts": {
|
||||||
"version": "9ce7db79f73f7e02e5c50134e826f9fe4c7a48c6d248ad0d500196d3606f1321",
|
"version": "5ea7c3fa0f38cf5fb8d975843226927a2711c2d4407fe54f59cdc4a36761a49e",
|
||||||
"signature": "557c16c024b7430c3da3f19a980eca355acaa8275713ad3bc3fd91329248b921",
|
"signature": "9467ef96692034313a18433a9f0ba9586d47d0d8b0862b756a94d58b0910660e",
|
||||||
"affectsGlobalScope": false
|
"affectsGlobalScope": false
|
||||||
},
|
},
|
||||||
"../src/bin/build-keycloak-theme/generateDebugFiles/index.ts": {
|
"../src/bin/build-keycloak-theme/generateDebugFiles/index.ts": {
|
||||||
"version": "7ed04e9e9768ab4256d5d51bf12323ded0ecef891c1a100f34211903f9a3f149",
|
"version": "611e45ac6f36b781b20816282a04aea99ef815637556b98ec656359921809ece",
|
||||||
"signature": "a32872c9b926d7fd1fd2ed3aca63380a6c333c9ea05f1f84fd0248cd637f2553",
|
"signature": "e3d849f4c3846c3254bf58e796a6ed29216735252657be3dec24d30c1df5517b",
|
||||||
"affectsGlobalScope": false
|
"affectsGlobalScope": false
|
||||||
},
|
},
|
||||||
"../src/bin/build-keycloak-theme/index.ts": {
|
"../src/bin/build-keycloak-theme/index.ts": {
|
||||||
"version": "324a1c0c8c3cfa50dbc213fa4f2650551a3e5537e53635b8d4225acad9c83dc3",
|
"version": "87c56909e792ee3afdc835081db05365537f1b2699945b7a8d59dcc896d30a78",
|
||||||
"signature": "cc0e708e12dd472472902f20c879f10b9352d52e6823ac341bc0941ef15b9618",
|
"signature": "cc0e708e12dd472472902f20c879f10b9352d52e6823ac341bc0941ef15b9618",
|
||||||
"affectsGlobalScope": false
|
"affectsGlobalScope": false
|
||||||
},
|
},
|
||||||
@ -271,19 +271,9 @@
|
|||||||
"signature": "43e818adf60173644896298637f47b01d5819b17eda46eaa32d0c7d64724d012",
|
"signature": "43e818adf60173644896298637f47b01d5819b17eda46eaa32d0c7d64724d012",
|
||||||
"affectsGlobalScope": false
|
"affectsGlobalScope": false
|
||||||
},
|
},
|
||||||
"../node_modules/evt/tools/typeSafety/id.d.ts": {
|
"../src/lib/inex.ts": {
|
||||||
"version": "9b4cbbc5d76a0e78a053503ed153a83f48799f1519e3aef593cb0987700704b8",
|
"version": "f5f88f79d2709a1ebf75743bef209380b3dd79f3b6f83e61f1ffdbabc4dcc903",
|
||||||
"signature": "9b4cbbc5d76a0e78a053503ed153a83f48799f1519e3aef593cb0987700704b8",
|
"signature": "8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881",
|
||||||
"affectsGlobalScope": false
|
|
||||||
},
|
|
||||||
"../src/lib/keycloakFtlValues.ts": {
|
|
||||||
"version": "8855aa745f2916ae3bc7161b4ef9784c21f595070e177e2a201a5d8ffc672a64",
|
|
||||||
"signature": "47f69685f9207ddeb9e876a0b9545efbd8a73a6b3b123c9b685165bde9d408df",
|
|
||||||
"affectsGlobalScope": false
|
|
||||||
},
|
|
||||||
"../src/lib/index.ts": {
|
|
||||||
"version": "982f8546cf41fe3912d92c4b9f338c57b55bebe8dacd5002bb11449d1a273ed5",
|
|
||||||
"signature": "988e58c5be2a660857f23895090b1b6cafe4fe6d36ce4f9e74754ac6d8bfd787",
|
|
||||||
"affectsGlobalScope": false
|
"affectsGlobalScope": false
|
||||||
},
|
},
|
||||||
"../node_modules/@types/node/globals.d.ts": {
|
"../node_modules/@types/node/globals.d.ts": {
|
||||||
@ -512,12 +502,12 @@
|
|||||||
"affectsGlobalScope": false
|
"affectsGlobalScope": false
|
||||||
},
|
},
|
||||||
"../src/test/setupSampleReactProject.ts": {
|
"../src/test/setupSampleReactProject.ts": {
|
||||||
"version": "5d592efc3bfbae69466fab8beb461761dd9e7c903929fcfaac193db047481e3c",
|
"version": "4584f6388902ef725ef7af1a81689d594386fe475602650e1c3196e364565f9a",
|
||||||
"signature": "2c0ddcdfefa535987300f17ab4be6b93e9dcc2583a80136eebb34671ff7cac00",
|
"signature": "a2bc6a0c53ec1dd6388b62c6b3ae4df8e55c24889deb0cad6251f95cffa17da9",
|
||||||
"affectsGlobalScope": false
|
"affectsGlobalScope": false
|
||||||
},
|
},
|
||||||
"../src/test/build-keycloak-theme.ts": {
|
"../src/test/build-keycloak-theme.ts": {
|
||||||
"version": "42f3866a8b954b6f15f9e63132a0554b5e9b12068c024c9f4250d48efe9a59f5",
|
"version": "7a0945c27488e0c49134e54cf9363cd058cf07986ab1fa92b4382db235355628",
|
||||||
"signature": "8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881",
|
"signature": "8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881",
|
||||||
"affectsGlobalScope": false
|
"affectsGlobalScope": false
|
||||||
},
|
},
|
||||||
@ -527,7 +517,7 @@
|
|||||||
"affectsGlobalScope": false
|
"affectsGlobalScope": false
|
||||||
},
|
},
|
||||||
"../src/test/generateKeycloakThemeResources.ts": {
|
"../src/test/generateKeycloakThemeResources.ts": {
|
||||||
"version": "d6d7ad4c5158ffddb31c072d016c4a8d5925359c787548ffab0fd3adf6f58f2b",
|
"version": "8abf896388c9556edcc236b42c3f73a9c23f2a7f51fd40aea155f92473160eb0",
|
||||||
"signature": "8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881",
|
"signature": "8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881",
|
||||||
"affectsGlobalScope": false
|
"affectsGlobalScope": false
|
||||||
},
|
},
|
||||||
@ -806,14 +796,6 @@
|
|||||||
"../node_modules/@types/node/path.d.ts",
|
"../node_modules/@types/node/path.d.ts",
|
||||||
"../src/bin/build-keycloak-theme/index.ts"
|
"../src/bin/build-keycloak-theme/index.ts"
|
||||||
],
|
],
|
||||||
"../src/lib/index.ts": [
|
|
||||||
"../src/lib/keycloakFtlValues.ts"
|
|
||||||
],
|
|
||||||
"../src/lib/keycloakFtlValues.ts": [
|
|
||||||
"../node_modules/evt/tools/typeSafety/id.d.ts",
|
|
||||||
"../src/bin/build-keycloak-theme/generateFtl.ts",
|
|
||||||
"../src/bin/build-keycloak-theme/generateKeycloakThemeResources.ts"
|
|
||||||
],
|
|
||||||
"../src/test/build-keycloak-theme.ts": [
|
"../src/test/build-keycloak-theme.ts": [
|
||||||
"../node_modules/@types/node/path.d.ts",
|
"../node_modules/@types/node/path.d.ts",
|
||||||
"../node_modules/scripting-tools/dist/lib/index.d.ts",
|
"../node_modules/scripting-tools/dist/lib/index.d.ts",
|
||||||
@ -1052,12 +1034,6 @@
|
|||||||
"../node_modules/@types/node/child_process.d.ts",
|
"../node_modules/@types/node/child_process.d.ts",
|
||||||
"../node_modules/@types/node/index.d.ts",
|
"../node_modules/@types/node/index.d.ts",
|
||||||
"../node_modules/scripting-tools/dist/lib/get_caller_file_path.d.ts"
|
"../node_modules/scripting-tools/dist/lib/get_caller_file_path.d.ts"
|
||||||
],
|
|
||||||
"../src/lib/index.ts": [
|
|
||||||
"../src/lib/keycloakFtlValues.ts"
|
|
||||||
],
|
|
||||||
"../src/lib/keycloakFtlValues.ts": [
|
|
||||||
"../src/bin/build-keycloak-theme/generateFtl.ts"
|
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"semanticDiagnosticsPerFile": [
|
"semanticDiagnosticsPerFile": [
|
||||||
@ -1118,7 +1094,6 @@
|
|||||||
"../node_modules/domutils/lib/stringify.d.ts",
|
"../node_modules/domutils/lib/stringify.d.ts",
|
||||||
"../node_modules/domutils/lib/tagtypes.d.ts",
|
"../node_modules/domutils/lib/tagtypes.d.ts",
|
||||||
"../node_modules/domutils/lib/traversal.d.ts",
|
"../node_modules/domutils/lib/traversal.d.ts",
|
||||||
"../node_modules/evt/tools/typeSafety/id.d.ts",
|
|
||||||
"../node_modules/htmlparser2/lib/FeedHandler.d.ts",
|
"../node_modules/htmlparser2/lib/FeedHandler.d.ts",
|
||||||
"../node_modules/htmlparser2/lib/Parser.d.ts",
|
"../node_modules/htmlparser2/lib/Parser.d.ts",
|
||||||
"../node_modules/htmlparser2/lib/Tokenizer.d.ts",
|
"../node_modules/htmlparser2/lib/Tokenizer.d.ts",
|
||||||
@ -1160,8 +1135,7 @@
|
|||||||
"../src/bin/build-keycloak-theme/index.ts",
|
"../src/bin/build-keycloak-theme/index.ts",
|
||||||
"../src/bin/build-keycloak-theme/replaceImportFromStatic.ts",
|
"../src/bin/build-keycloak-theme/replaceImportFromStatic.ts",
|
||||||
"../src/bin/download-sample-keycloak-themes.ts",
|
"../src/bin/download-sample-keycloak-themes.ts",
|
||||||
"../src/lib/index.ts",
|
"../src/lib/inex.ts",
|
||||||
"../src/lib/keycloakFtlValues.ts",
|
|
||||||
"../src/test/build-keycloak-theme.ts",
|
"../src/test/build-keycloak-theme.ts",
|
||||||
"../src/test/download-sample-keycloak-themes.ts",
|
"../src/test/download-sample-keycloak-themes.ts",
|
||||||
"../src/test/generateKeycloakThemeResources.ts",
|
"../src/test/generateKeycloakThemeResources.ts",
|
||||||
|
Reference in New Issue
Block a user