diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml
deleted file mode 100644
index 37d2be37..00000000
--- a/.github/workflows/ci.yaml
+++ /dev/null
@@ -1,76 +0,0 @@
-name: ci
-on:
- push:
- branches:
- - develop
- pull_request:
- branches:
- - develop
-
-jobs:
-
- test_node:
- runs-on: ${{ matrix.os }}
- strategy:
- matrix:
- node: [ '14', '13', '12' ]
- os: [ ubuntu-latest ]
- name: Test with Node v${{ matrix.node }} on ${{ matrix.os }}
- steps:
- - uses: actions/checkout@v2
- - uses: actions/setup-node@v1
- with:
- node-version: ${{ matrix.node }}
- - run: npm ci
- - run: npm run build
- - run: npm run test
-
-
- trigger_publish:
- name: Trigger publish.yaml workflow if package.json version updated ( and secrets.PAT is set ).
- runs-on: ubuntu-latest
- env:
- PAT: ${{secrets.PAT}}
- if: github.event_name == 'push' && github.event.head_commit.author.name != 'ts_ci'
- needs: test_node
- steps:
-
- - name: Get version on latest
- id: v_latest
- uses: garronej/github_actions_toolkit@v1.9
- with:
- action_name: get_package_json_version
- owner: ${{github.repository_owner}}
- repo: ${{github.event.repository.name}}
- branch: latest
- compare_to_version: '0.0.0'
-
- - name: Get version on develop
- id: v_develop
- uses: garronej/github_actions_toolkit@v1.9
- with:
- action_name: get_package_json_version
- owner: ${{github.repository_owner}}
- repo: ${{github.event.repository.name}}
- branch: ${{ github.sha }}
- compare_to_version: ${{steps.v_latest.outputs.version || '0.0.0'}}
-
- - name: 'Trigger the ''publish'' workflow'
- if: ${{ !!env.PAT && steps.v_develop.outputs.compare_result == '1' }}
- uses: garronej/github_actions_toolkit@v1.9
- env:
- GITHUB_TOKEN: ${{ secrets.PAT }}
- with:
- action_name: dispatch_event
- owner: ${{github.repository_owner}}
- repo: ${{github.event.repository.name}}
- event_type: publish
- client_payload_json: |
- ${{
- format(
- '{{"from_version":"{0}","to_version":"{1}","repo":"{2}"}}',
- steps.v_latest.outputs.version,
- steps.v_develop.outputs.version,
- github.event.repository.name
- )
- }}
diff --git a/.github/workflows/publish.yaml b/.github/workflows/publish.yaml
deleted file mode 100644
index 43c6fbfb..00000000
--- a/.github/workflows/publish.yaml
+++ /dev/null
@@ -1,106 +0,0 @@
-on:
- repository_dispatch:
- types: publish
-
-jobs:
- update_changelog_and_sync_package_lock_version:
- name: Update CHANGELOG.md and make sure package.json and package-lock.json versions matches.
- runs-on: ubuntu-latest
- steps:
- - name: Synchronize package.json and package-lock.json version if needed.
- uses: garronej/github_actions_toolkit@v1.9
- env:
- GITHUB_TOKEN: ${{ secrets.PAT }}
- with:
- action_name: sync_package_and_package_lock_version
- owner: ${{github.repository_owner}}
- repo: ${{github.event.client_payload.repo}}
- branch: develop
- commit_author_email: ts_ci@github.com
- - name: Update CHANGELOG.md
- if: ${{ !!github.event.client_payload.from_version }}
- uses: garronej/github_actions_toolkit@v1.9
- env:
- GITHUB_TOKEN: ${{ secrets.PAT }}
- with:
- action_name: update_changelog
- owner: ${{github.repository_owner}}
- repo: ${{github.event.client_payload.repo}}
- branch_behind: latest
- branch_ahead: develop
- commit_author_email: ts_ci@github.com
- exclude_commit_from_author_names_json: '["ts_ci"]'
-
- publish:
- runs-on: ubuntu-latest
- needs: update_changelog_and_sync_package_lock_version
- steps:
- - uses: actions/checkout@v2
- with:
- fetch-depth: 0
- ref: develop
- - name: Remove .github directory, useless on 'latest' branch
- run: rm -r .github
- - name: Remove branch 'latest'
- continue-on-error: true
- run: |
- git branch -d latest || true
- git push origin :latest
- - name: Create the new 'latest' branch
- run: |
- git branch latest
- git checkout latest
- - uses: actions/setup-node@v1
- - run: npm ci
- - run: npm run enable_short_import_path
- env:
- DRY_RUN: "0"
- - name: (DEBUG) Show how the files have been moved to enable short import
- run: ls -lR
- - name: Publishing on NPM
- run: |
- if [ "$(npm show . version)" = "$VERSION" ]; then
- echo "This version is already published"
- exit 0
- fi
- if [ "$NPM_TOKEN" = "" ]; then
- echo "Can't publish on NPM, You must first create a secret called NPM_TOKEN that contains your NPM auth token. https://help.github.com/en/actions/automating-your-workflow-with-github-actions/creating-and-using-encrypted-secrets"
- false
- fi
- echo '//registry.npmjs.org/:_authToken=${NPM_TOKEN}' > .npmrc
- npm publish
- rm .npmrc
- env:
- NPM_TOKEN: ${{ secrets.NPM_TOKEN }}
- VERSION: ${{ github.event.client_payload.to_version }}
- - name: Commit changes
- run: |
- git config --local user.email "ts_ci@github.com"
- git config --local user.name "ts_ci"
- git add -A
- git commit -am "Enabling shorter import paths [automatic]"
- - run: git push origin latest
- - name: Release body
- id: id_rb
- run: |
- if [ "$FROM_VERSION" = "" ]; then
- echo "::set-output name=body::🚀"
- else
- echo "::set-output name=body::📋 [CHANGELOG](https://github.com/$OWNER/$REPO/blob/$REF/CHANGELOG.md)"
- fi
- env:
- FROM_VERSION: ${{ github.event.client_payload.from_version }}
- OWNER: ${{github.repository_owner}}
- REPO: ${{github.event.client_payload.repo}}
- REF: v${{github.event.client_payload.to_version}}
- - name: Create Release
- uses: garronej/create-release@master
- env:
- GITHUB_TOKEN: ${{ secrets.PAT }}
- with:
- tag_name: v${{ github.event.client_payload.to_version }}
- release_name: Release v${{ github.event.client_payload.to_version }}
- branch: latest
- draft: false
- prerelease: false
- body: ${{ steps.id_rb.outputs.body }}
diff --git a/bin/build-keycloak-theme/generateDebugFiles/index.d.ts b/bin/build-keycloak-theme/generateDebugFiles/index.d.ts
new file mode 100644
index 00000000..edd8e11e
--- /dev/null
+++ b/bin/build-keycloak-theme/generateDebugFiles/index.d.ts
@@ -0,0 +1,6 @@
+export declare const containerLaunchScriptBasename = "start_keycloak_testing_container.sh";
+/** Files for being able to run a hot reload keycloak container */
+export declare function generateDebugFiles(params: {
+ packageJsonName: string;
+ keycloakThemeBuildingDirPath: string;
+}): void;
diff --git a/bin/build-keycloak-theme/generateDebugFiles/index.js b/bin/build-keycloak-theme/generateDebugFiles/index.js
new file mode 100644
index 00000000..a145fda5
--- /dev/null
+++ b/bin/build-keycloak-theme/generateDebugFiles/index.js
@@ -0,0 +1,68 @@
+"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 __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
+}) : function(o, v) {
+ o["default"] = v;
+});
+var __importStar = (this && this.__importStar) || function (mod) {
+ if (mod && mod.__esModule) return mod;
+ var result = {};
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
+ __setModuleDefault(result, mod);
+ return result;
+};
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.generateDebugFiles = exports.containerLaunchScriptBasename = void 0;
+var fs = __importStar(require("fs"));
+var path_1 = require("path");
+exports.containerLaunchScriptBasename = "start_keycloak_testing_container.sh";
+/** Files for being able to run a hot reload keycloak container */
+function generateDebugFiles(params) {
+ var packageJsonName = params.packageJsonName, keycloakThemeBuildingDirPath = params.keycloakThemeBuildingDirPath;
+ fs.writeFileSync(path_1.join(keycloakThemeBuildingDirPath, "Dockerfile"), Buffer.from([
+ "FROM jboss/keycloak:11.0.3",
+ "",
+ "USER root",
+ "",
+ "WORKDIR /",
+ "",
+ "ADD configuration /opt/jboss/keycloak/standalone/configuration/",
+ "",
+ 'ENTRYPOINT [ "/opt/jboss/tools/docker-entrypoint.sh" ]',
+ ].join("\n"), "utf8"));
+ var dockerImage = packageJsonName + "/keycloak-hot-reload";
+ var containerName = "keycloak-testing-container";
+ fs.writeFileSync(path_1.join(keycloakThemeBuildingDirPath, exports.containerLaunchScriptBasename), Buffer.from([
+ "#!/bin/bash",
+ "",
+ "cd " + keycloakThemeBuildingDirPath,
+ "",
+ "docker rm " + containerName + " || true",
+ "",
+ "docker build . -t " + dockerImage,
+ "",
+ "docker run \\",
+ " -p 8080:8080 \\",
+ "\t--name " + containerName + " \\",
+ " -e KEYCLOAK_USER=admin \\",
+ " -e KEYCLOAK_PASSWORD=admin \\",
+ "\t-v " + path_1.join(keycloakThemeBuildingDirPath, "src", "main", "resources", "theme", packageJsonName) + ":/opt/jboss/keycloak/themes/" + packageJsonName + ":rw \\",
+ "\t-it " + dockerImage + ":latest",
+ ""
+ ].join("\n"), "utf8"), { "mode": 493 });
+ var standaloneHaFilePath = path_1.join(keycloakThemeBuildingDirPath, "configuration", "standalone-ha.xml");
+ try {
+ fs.mkdirSync(path_1.dirname(standaloneHaFilePath));
+ }
+ catch (_a) { }
+ fs.writeFileSync(standaloneHaFilePath, fs.readFileSync(path_1.join(__dirname, path_1.basename(standaloneHaFilePath))));
+}
+exports.generateDebugFiles = generateDebugFiles;
+//# sourceMappingURL=index.js.map
\ No newline at end of file
diff --git a/bin/build-keycloak-theme/generateDebugFiles/index.js.map b/bin/build-keycloak-theme/generateDebugFiles/index.js.map
new file mode 100644
index 00000000..5a2888ca
--- /dev/null
+++ b/bin/build-keycloak-theme/generateDebugFiles/index.js.map
@@ -0,0 +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,QAAM,4BAA8B;QACpC,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;AAlED,gDAkEC"}
\ No newline at end of file
diff --git a/bin/build-keycloak-theme/generateDebugFiles/standalone-ha.xml b/bin/build-keycloak-theme/generateDebugFiles/standalone-ha.xml
new file mode 100644
index 00000000..19ca86ec
--- /dev/null
+++ b/bin/build-keycloak-theme/generateDebugFiles/standalone-ha.xml
@@ -0,0 +1,666 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ jdbc:h2:mem:test;DB_CLOSE_DELAY=-1;DB_CLOSE_ON_EXIT=FALSE
+ h2
+
+ sa
+ sa
+
+
+
+ jdbc:h2:${jboss.server.data.dir}/keycloak;AUTO_SERVER=TRUE
+ h2
+
+ 100
+
+
+ sa
+ sa
+
+
+
+
+ org.h2.jdbcx.JdbcDataSource
+
+
+
+
+
+
+
+
+ false
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ auth
+
+
+ classpath:${jboss.home.dir}/providers/*
+
+
+ master
+ 900
+
+ -1
+ false
+ false
+ ${env.KEYCLOAK_WELCOME_THEME:keycloak}
+ ${env.KEYCLOAK_DEFAULT_THEME:keycloak}
+ ${jboss.home.dir}/themes
+
+
+
+
+
+
+
+
+
+
+
+
+ jpa
+
+
+ basic
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ default
+
+
+
+
+
+
+
+ ${keycloak.jta.lookup.provider:jboss}
+
+
+
+
+
+
+
+
+
+
+ ${keycloak.x509cert.lookup.provider:default}
+
+
+
+ ${keycloak.hostname.provider:default}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/bin/build-keycloak-theme/generateFtl.d.ts b/bin/build-keycloak-theme/generateFtl.d.ts
new file mode 100644
index 00000000..8e66a701
--- /dev/null
+++ b/bin/build-keycloak-theme/generateFtl.d.ts
@@ -0,0 +1,11 @@
+export declare function generateFtlFilesCodeFactory(params: {
+ ftlValuesGlobalName: string;
+ cssGlobalsToDefine: Record;
+ indexHtmlCode: string;
+}): {
+ generateFtlFilesCode: (params: {
+ pageBasename: "login.ftl" | "register.ftl";
+ }) => {
+ ftlCode: string;
+ };
+};
diff --git a/bin/build-keycloak-theme/generateFtl.js b/bin/build-keycloak-theme/generateFtl.js
new file mode 100644
index 00000000..c2e97e79
--- /dev/null
+++ b/bin/build-keycloak-theme/generateFtl.js
@@ -0,0 +1,98 @@
+"use strict";
+var __read = (this && this.__read) || function (o, n) {
+ var m = typeof Symbol === "function" && o[Symbol.iterator];
+ if (!m) return o;
+ var i = m.call(o), r, ar = [], e;
+ try {
+ while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
+ }
+ catch (error) { e = { error: error }; }
+ finally {
+ try {
+ if (r && !r.done && (m = i["return"])) m.call(i);
+ }
+ finally { if (e) throw e.error; }
+ }
+ 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) {
+ return (mod && mod.__esModule) ? mod : { "default": mod };
+};
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.generateFtlFilesCodeFactory = void 0;
+var cheerio_1 = __importDefault(require("cheerio"));
+var replaceImportFromStatic_1 = require("./replaceImportFromStatic");
+function generateFtlFilesCodeFactory(params) {
+ var ftlValuesGlobalName = params.ftlValuesGlobalName, cssGlobalsToDefine = params.cssGlobalsToDefine, indexHtmlCode = params.indexHtmlCode;
+ var $ = cheerio_1.default.load(indexHtmlCode);
+ $("script:not([src])").each(function () {
+ var _a = [];
+ for (var _i = 0; _i < arguments.length; _i++) {
+ _a[_i] = arguments[_i];
+ }
+ var _b = __read(_a, 2), element = _b[1];
+ var fixedJsCode = replaceImportFromStatic_1.replaceImportFromStaticInJsCode({
+ ftlValuesGlobalName: ftlValuesGlobalName,
+ "jsCode": $(element).html()
+ }).fixedJsCode;
+ $(element).text(fixedJsCode);
+ });
+ [
+ ["link", "href"],
+ ["script", "src"],
+ ].forEach(function (_a) {
+ var _b = __read(_a, 2), selector = _b[0], attrName = _b[1];
+ return $(selector).each(function () {
+ var _a = [];
+ for (var _i = 0; _i < arguments.length; _i++) {
+ _a[_i] = arguments[_i];
+ }
+ var _b = __read(_a, 2), element = _b[1];
+ var href = $(element).attr(attrName);
+ if (!(href === null || href === void 0 ? void 0 : href.startsWith("/"))) {
+ return;
+ }
+ $(element).attr(attrName, "${url.resourcesPath}" + href);
+ });
+ });
+ $("head").prepend(__spread((Object.keys(cssGlobalsToDefine).length === 0 ? [] : [
+ '',
+ '',
+ ''
+ ]), [
+ '',
+ ''
+ ]).join("\n"));
+ var partiallyFixedIndexHtmlCode = $.html();
+ function generateFtlFilesCode(params) {
+ var pageBasename = params.pageBasename;
+ var $ = cheerio_1.default.load(partiallyFixedIndexHtmlCode);
+ $("head").prepend([
+ '',
+ '',
+ ''
+ ].join("\n"));
+ return { "ftlCode": $.html() };
+ }
+ return { generateFtlFilesCode: generateFtlFilesCode };
+}
+exports.generateFtlFilesCodeFactory = generateFtlFilesCodeFactory;
+//# sourceMappingURL=generateFtl.js.map
\ No newline at end of file
diff --git a/bin/build-keycloak-theme/generateFtl.js.map b/bin/build-keycloak-theme/generateFtl.js.map
new file mode 100644
index 00000000..3fe1a2e6
--- /dev/null
+++ b/bin/build-keycloak-theme/generateFtl.js.map
@@ -0,0 +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"}
\ No newline at end of file
diff --git a/bin/build-keycloak-theme/generateJavaStackFiles.d.ts b/bin/build-keycloak-theme/generateJavaStackFiles.d.ts
new file mode 100644
index 00000000..2b260c84
--- /dev/null
+++ b/bin/build-keycloak-theme/generateJavaStackFiles.d.ts
@@ -0,0 +1,11 @@
+export declare type ParsedPackageJson = {
+ name: string;
+ version: string;
+ homepage?: string;
+};
+export declare function generateJavaStackFiles(params: {
+ parsedPackageJson: ParsedPackageJson;
+ keycloakThemeBuildingDirPath: string;
+}): {
+ jarFilePath: string;
+};
diff --git a/bin/build-keycloak-theme/generateJavaStackFiles.js b/bin/build-keycloak-theme/generateJavaStackFiles.js
new file mode 100644
index 00000000..f3e0315d
--- /dev/null
+++ b/bin/build-keycloak-theme/generateJavaStackFiles.js
@@ -0,0 +1,72 @@
+"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 __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
+}) : function(o, v) {
+ o["default"] = v;
+});
+var __importStar = (this && this.__importStar) || function (mod) {
+ if (mod && mod.__esModule) return mod;
+ var result = {};
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
+ __setModuleDefault(result, mod);
+ return result;
+};
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.generateJavaStackFiles = void 0;
+var url = __importStar(require("url"));
+var fs = __importStar(require("fs"));
+var path_1 = require("path");
+function generateJavaStackFiles(params) {
+ var _a = params.parsedPackageJson, name = _a.name, version = _a.version, homepage = _a.homepage, keycloakThemeBuildingDirPath = params.keycloakThemeBuildingDirPath;
+ {
+ var pomFileCode = (function generatePomFileCode() {
+ var groupId = (function () {
+ var _a, _b;
+ var fallbackGroupId = "there.was.no.homepage.field.in.the.package.json." + name;
+ return (!homepage ?
+ fallbackGroupId : (_b = (_a = url.parse(homepage).host) === null || _a === void 0 ? void 0 : _a.split(".").reverse().join(".")) !== null && _b !== void 0 ? _b : fallbackGroupId) + ".keycloak";
+ })();
+ var artefactId = name + "-keycloak-theme";
+ var pomFileCode = [
+ "",
+ "",
+ "\t4.0.0",
+ "\t" + groupId + "",
+ "\t" + artefactId + "",
+ "\t" + version + "",
+ "\t" + artefactId + "",
+ "\t",
+ ""
+ ].join("\n");
+ return { pomFileCode: pomFileCode };
+ })().pomFileCode;
+ fs.writeFileSync(path_1.join(keycloakThemeBuildingDirPath, "pom.xml"), Buffer.from(pomFileCode, "utf8"));
+ }
+ {
+ var themeManifestFilePath = path_1.join(keycloakThemeBuildingDirPath, "src", "main", "resources", "META-INF", "keycloak-themes.json");
+ try {
+ fs.mkdirSync(path_1.dirname(themeManifestFilePath));
+ }
+ catch (_b) { }
+ fs.writeFileSync(themeManifestFilePath, Buffer.from(JSON.stringify({
+ "themes": [
+ {
+ "name": name,
+ "types": ["login"]
+ }
+ ]
+ }, null, 2), "utf8"));
+ }
+ return { "jarFilePath": path_1.join(keycloakThemeBuildingDirPath, "target", name + "-" + version + ".jar") };
+}
+exports.generateJavaStackFiles = generateJavaStackFiles;
+//# sourceMappingURL=generateJavaStackFiles.js.map
\ No newline at end of file
diff --git a/bin/build-keycloak-theme/generateJavaStackFiles.js.map b/bin/build-keycloak-theme/generateJavaStackFiles.js.map
new file mode 100644
index 00000000..5026979b
--- /dev/null
+++ b/bin/build-keycloak-theme/generateJavaStackFiles.js.map
@@ -0,0 +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"}
\ No newline at end of file
diff --git a/bin/build-keycloak-theme/generateKeycloakThemeResources.d.ts b/bin/build-keycloak-theme/generateKeycloakThemeResources.d.ts
new file mode 100644
index 00000000..e33af95d
--- /dev/null
+++ b/bin/build-keycloak-theme/generateKeycloakThemeResources.d.ts
@@ -0,0 +1,6 @@
+export declare const ftlValuesGlobalName = "keycloakPagesContext";
+export declare function generateKeycloakThemeResources(params: {
+ themeName: string;
+ reactAppBuildDirPath: string;
+ keycloakThemeBuildingDirPath: string;
+}): void;
diff --git a/bin/build-keycloak-theme/generateKeycloakThemeResources.js b/bin/build-keycloak-theme/generateKeycloakThemeResources.js
new file mode 100644
index 00000000..f7318b57
--- /dev/null
+++ b/bin/build-keycloak-theme/generateKeycloakThemeResources.js
@@ -0,0 +1,76 @@
+"use strict";
+var __assign = (this && this.__assign) || function () {
+ __assign = Object.assign || function(t) {
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
+ s = arguments[i];
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
+ t[p] = s[p];
+ }
+ return t;
+ };
+ return __assign.apply(this, arguments);
+};
+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 __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
+}) : function(o, v) {
+ o["default"] = v;
+});
+var __importStar = (this && this.__importStar) || function (mod) {
+ if (mod && mod.__esModule) return mod;
+ var result = {};
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
+ __setModuleDefault(result, mod);
+ return result;
+};
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.generateKeycloakThemeResources = exports.ftlValuesGlobalName = void 0;
+var transformCodebase_1 = require("../../tools/transformCodebase");
+var fs = __importStar(require("fs"));
+var path_1 = require("path");
+var replaceImportFromStatic_1 = require("./replaceImportFromStatic");
+var generateFtl_1 = require("./generateFtl");
+exports.ftlValuesGlobalName = "keycloakPagesContext";
+function generateKeycloakThemeResources(params) {
+ var themeName = params.themeName, reactAppBuildDirPath = params.reactAppBuildDirPath, keycloakThemeBuildingDirPath = params.keycloakThemeBuildingDirPath;
+ var themeDirPath = path_1.join(keycloakThemeBuildingDirPath, "src", "main", "resources", "theme", themeName, "login");
+ var allCssGlobalsToDefine = {};
+ transformCodebase_1.transformCodebase({
+ "destDirPath": path_1.join(themeDirPath, "resources"),
+ "srcDirPath": reactAppBuildDirPath,
+ "transformSourceCodeString": function (_a) {
+ var filePath = _a.filePath, sourceCode = _a.sourceCode;
+ if (/\.css?$/i.test(filePath)) {
+ var _b = replaceImportFromStatic_1.replaceImportFromStaticInCssCode({ "cssCode": sourceCode.toString("utf8") }), cssGlobalsToDefine = _b.cssGlobalsToDefine, fixedCssCode = _b.fixedCssCode;
+ allCssGlobalsToDefine = __assign(__assign({}, allCssGlobalsToDefine), cssGlobalsToDefine);
+ return { "modifiedSourceCode": Buffer.from(fixedCssCode, "utf8") };
+ }
+ if (/\.js?$/i.test(filePath)) {
+ var fixedJsCode = replaceImportFromStatic_1.replaceImportFromStaticInJsCode({
+ "jsCode": sourceCode.toString("utf8"),
+ ftlValuesGlobalName: exports.ftlValuesGlobalName
+ }).fixedJsCode;
+ return { "modifiedSourceCode": Buffer.from(fixedJsCode, "utf8") };
+ }
+ return { "modifiedSourceCode": sourceCode };
+ }
+ });
+ var generateFtlFilesCode = generateFtl_1.generateFtlFilesCodeFactory({
+ "cssGlobalsToDefine": allCssGlobalsToDefine,
+ ftlValuesGlobalName: exports.ftlValuesGlobalName,
+ "indexHtmlCode": fs.readFileSync(path_1.join(reactAppBuildDirPath, "index.html")).toString("utf8")
+ }).generateFtlFilesCode;
+ ["login.ftl", "register.ftl"].forEach(function (pageBasename) {
+ var ftlCode = generateFtlFilesCode({ pageBasename: pageBasename }).ftlCode;
+ 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;
+//# sourceMappingURL=generateKeycloakThemeResources.js.map
\ No newline at end of file
diff --git a/bin/build-keycloak-theme/generateKeycloakThemeResources.js.map b/bin/build-keycloak-theme/generateKeycloakThemeResources.js.map
new file mode 100644
index 00000000..aaec1a8d
--- /dev/null
+++ b/bin/build-keycloak-theme/generateKeycloakThemeResources.js.map
@@ -0,0 +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"}
\ No newline at end of file
diff --git a/bin/build-keycloak-theme/index.d.ts b/bin/build-keycloak-theme/index.d.ts
new file mode 100644
index 00000000..5e74aba1
--- /dev/null
+++ b/bin/build-keycloak-theme/index.d.ts
@@ -0,0 +1,2 @@
+#!/usr/bin/env node
+export declare const keycloakThemeBuildingDirPath: string;
diff --git a/bin/build-keycloak-theme/index.js b/bin/build-keycloak-theme/index.js
new file mode 100755
index 00000000..50c06b0b
--- /dev/null
+++ b/bin/build-keycloak-theme/index.js
@@ -0,0 +1,86 @@
+#!/usr/bin/env node
+"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 __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
+}) : function(o, v) {
+ o["default"] = v;
+});
+var __importStar = (this && this.__importStar) || function (mod) {
+ if (mod && mod.__esModule) return mod;
+ var result = {};
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
+ __setModuleDefault(result, mod);
+ return result;
+};
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.keycloakThemeBuildingDirPath = void 0;
+var generateKeycloakThemeResources_1 = require("./generateKeycloakThemeResources");
+var generateJavaStackFiles_1 = require("./generateJavaStackFiles");
+var path_1 = require("path");
+var child_process = __importStar(require("child_process"));
+var generateDebugFiles_1 = require("./generateDebugFiles");
+var reactProjectDirPath = process.cwd();
+var parsedPackageJson = require(path_1.join(reactProjectDirPath, "package.json"));
+exports.keycloakThemeBuildingDirPath = path_1.join(reactProjectDirPath, "build_keycloak");
+console.log("🔏 Building the keycloak theme...⌚");
+if (require.main === module) {
+ generateKeycloakThemeResources_1.generateKeycloakThemeResources({
+ keycloakThemeBuildingDirPath: exports.keycloakThemeBuildingDirPath,
+ "reactAppBuildDirPath": path_1.join(reactProjectDirPath, "build"),
+ "themeName": parsedPackageJson.name
+ });
+ var jarFilePath = generateJavaStackFiles_1.generateJavaStackFiles({
+ parsedPackageJson: parsedPackageJson,
+ keycloakThemeBuildingDirPath: exports.keycloakThemeBuildingDirPath
+ }).jarFilePath;
+ child_process.execSync("mvn package", { "cwd": exports.keycloakThemeBuildingDirPath });
+ generateDebugFiles_1.generateDebugFiles({
+ keycloakThemeBuildingDirPath: exports.keycloakThemeBuildingDirPath,
+ "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
\ No newline at end of file
diff --git a/bin/build-keycloak-theme/index.js.map b/bin/build-keycloak-theme/index.js.map
new file mode 100644
index 00000000..4da8b0f9
--- /dev/null
+++ b/bin/build-keycloak-theme/index.js.map
@@ -0,0 +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"}
\ No newline at end of file
diff --git a/bin/build-keycloak-theme/replaceImportFromStatic.d.ts b/bin/build-keycloak-theme/replaceImportFromStatic.d.ts
new file mode 100644
index 00000000..3d55feef
--- /dev/null
+++ b/bin/build-keycloak-theme/replaceImportFromStatic.d.ts
@@ -0,0 +1,17 @@
+export declare function replaceImportFromStaticInJsCode(params: {
+ ftlValuesGlobalName: string;
+ jsCode: string;
+}): {
+ fixedJsCode: string;
+};
+export declare function replaceImportFromStaticInCssCode(params: {
+ cssCode: string;
+}): {
+ fixedCssCode: string;
+ cssGlobalsToDefine: Record;
+};
+export declare function generateCssCodeToDefineGlobals(params: {
+ cssGlobalsToDefine: Record;
+}): {
+ cssCodeToPrependInHead: string;
+};
diff --git a/bin/build-keycloak-theme/replaceImportFromStatic.js b/bin/build-keycloak-theme/replaceImportFromStatic.js
new file mode 100644
index 00000000..d330db3f
--- /dev/null
+++ b/bin/build-keycloak-theme/replaceImportFromStatic.js
@@ -0,0 +1,93 @@
+"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 __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
+}) : function(o, v) {
+ o["default"] = v;
+});
+var __importStar = (this && this.__importStar) || function (mod) {
+ if (mod && mod.__esModule) return mod;
+ var result = {};
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
+ __setModuleDefault(result, mod);
+ return result;
+};
+var __read = (this && this.__read) || function (o, n) {
+ var m = typeof Symbol === "function" && o[Symbol.iterator];
+ if (!m) return o;
+ var i = m.call(o), r, ar = [], e;
+ try {
+ while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
+ }
+ catch (error) { e = { error: error }; }
+ finally {
+ try {
+ if (r && !r.done && (m = i["return"])) m.call(i);
+ }
+ finally { if (e) throw e.error; }
+ }
+ 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;
+};
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.generateCssCodeToDefineGlobals = exports.replaceImportFromStaticInCssCode = exports.replaceImportFromStaticInJsCode = void 0;
+var crypto = __importStar(require("crypto"));
+function replaceImportFromStaticInJsCode(params) {
+ var jsCode = params.jsCode, ftlValuesGlobalName = params.ftlValuesGlobalName;
+ var fixedJsCode = jsCode.replace(/"static\//g, "window." + ftlValuesGlobalName + ".url.resourcesPath.replace(/^\\//,\"\") + \"/\" + \"static/");
+ return { fixedJsCode: fixedJsCode };
+}
+exports.replaceImportFromStaticInJsCode = replaceImportFromStaticInJsCode;
+function replaceImportFromStaticInCssCode(params) {
+ var _a;
+ var cssCode = params.cssCode;
+ var cssGlobalsToDefine = {};
+ new Set((_a = cssCode.match(/(url\(\/[^)]+\))/g)) !== null && _a !== void 0 ? _a : [])
+ .forEach(function (match) {
+ return cssGlobalsToDefine["url" + crypto
+ .createHash("sha256")
+ .update(match)
+ .digest("hex")
+ .substring(0, 15)] = match;
+ });
+ var fixedCssCode = cssCode;
+ Object.keys(cssGlobalsToDefine).forEach(function (cssVariableName) {
+ //NOTE: split/join pattern ~ replace all
+ return fixedCssCode =
+ fixedCssCode.split(cssGlobalsToDefine[cssVariableName])
+ .join("var(--" + cssVariableName + ")");
+ });
+ return { fixedCssCode: fixedCssCode, cssGlobalsToDefine: cssGlobalsToDefine };
+}
+exports.replaceImportFromStaticInCssCode = replaceImportFromStaticInCssCode;
+function generateCssCodeToDefineGlobals(params) {
+ var cssGlobalsToDefine = params.cssGlobalsToDefine;
+ return {
+ "cssCodeToPrependInHead": __spread([
+ ":root {"
+ ], Object.keys(cssGlobalsToDefine)
+ .map(function (cssVariableName) { return [
+ "--" + cssVariableName + ":",
+ [
+ "url(",
+ "${url.resourcesPath}" +
+ cssGlobalsToDefine[cssVariableName].match(/^url\(([^)]+)\)$/)[1],
+ ")"
+ ].join("")
+ ].join(" "); })
+ .map(function (line) { return " " + line + ";"; }), [
+ "}"
+ ]).join("\n")
+ };
+}
+exports.generateCssCodeToDefineGlobals = generateCssCodeToDefineGlobals;
+//# sourceMappingURL=replaceImportFromStatic.js.map
\ No newline at end of file
diff --git a/bin/build-keycloak-theme/replaceImportFromStatic.js.map b/bin/build-keycloak-theme/replaceImportFromStatic.js.map
new file mode 100644
index 00000000..3ef60886
--- /dev/null
+++ b/bin/build-keycloak-theme/replaceImportFromStatic.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"replaceImportFromStatic.js","sourceRoot":"","sources":["../../src/bin/build-keycloak-theme/replaceImportFromStatic.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,6CAAiC;AAEjC,SAAgB,+BAA+B,CAC3C,MAGC;IAGO,IAAA,MAAM,GAA0B,MAAM,OAAhC,EAAE,mBAAmB,GAAK,MAAM,oBAAX,CAAY;IAE/C,IAAM,WAAW,GAAG,MAAO,CAAC,OAAO,CAC/B,YAAY,EACZ,YAAU,mBAAmB,gEAAwD,CACxF,CAAC;IAEF,OAAO,EAAE,WAAW,aAAA,EAAE,CAAC;AAE3B,CAAC;AAhBD,0EAgBC;AAED,SAAgB,gCAAgC,CAC5C,MAEC;;IAMO,IAAA,OAAO,GAAK,MAAM,QAAX,CAAY;IAE3B,IAAM,kBAAkB,GAA2B,EAAE,CAAC;IAEtD,IAAI,GAAG,OAAC,OAAO,CAAC,KAAK,CAAC,mBAAmB,CAAC,mCAAI,EAAE,CAAC;SAC5C,OAAO,CAAC,UAAA,KAAK;QACV,OAAA,kBAAkB,CAClB,KAAK,GAAG,MAAM;aACT,UAAU,CAAC,QAAQ,CAAC;aACpB,MAAM,CAAC,KAAK,CAAC;aACb,MAAM,CAAC,KAAK,CAAC;aACb,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,CACpB,GAAG,KAAK;IANT,CAMS,CACZ,CAAC;IAEN,IAAI,YAAY,GAAG,OAAO,CAAC;IAE3B,MAAM,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,OAAO,CACnC,UAAA,eAAe;QACX,wCAAwC;QACxC,OAAA,YAAY;YACZ,YAAY,CAAC,KAAK,CAAC,kBAAkB,CAAC,eAAe,CAAC,CAAC;iBAClD,IAAI,CAAC,WAAS,eAAe,MAAG,CAAC;IAFtC,CAEsC,CAC7C,CAAC;IAEF,OAAO,EAAE,YAAY,cAAA,EAAE,kBAAkB,oBAAA,EAAE,CAAC;AAEhD,CAAC;AApCD,4EAoCC;AAED,SAAgB,8BAA8B,CAC1C,MAEC;IAKO,IAAA,kBAAkB,GAAK,MAAM,mBAAX,CAAY;IAEtC,OAAO;QACH,wBAAwB,EAAE;YACtB,SAAS;WACN,MAAM,CAAC,IAAI,CAAC,kBAAkB,CAAC;aAC7B,GAAG,CAAC,UAAA,eAAe,IAAI,OAAA;YACpB,OAAK,eAAe,MAAG;YACvB;gBACI,MAAM;gBACN,sBAAsB;oBACtB,kBAAkB,CAAC,eAAe,CAAC,CAAC,KAAK,CAAC,kBAAkB,CAAE,CAAC,CAAC,CAAC;gBACjE,GAAG;aACN,CAAC,IAAI,CAAC,EAAE,CAAC;SACb,CAAC,IAAI,CAAC,GAAG,CAAC,EARa,CAQb,CAAC;aACX,GAAG,CAAC,UAAA,IAAI,IAAI,OAAA,SAAO,IAAI,MAAG,EAAd,CAAc,CAAC;YAChC,GAAG;WACL,IAAI,CAAC,IAAI,CAAC;KACf,CAAC;AAEN,CAAC;AA5BD,wEA4BC"}
\ No newline at end of file
diff --git a/bin/download-sample-keycloak-themes.d.ts b/bin/download-sample-keycloak-themes.d.ts
new file mode 100644
index 00000000..b7988016
--- /dev/null
+++ b/bin/download-sample-keycloak-themes.d.ts
@@ -0,0 +1,2 @@
+#!/usr/bin/env node
+export {};
diff --git a/bin/download-sample-keycloak-themes.js b/bin/download-sample-keycloak-themes.js
new file mode 100755
index 00000000..bd919854
--- /dev/null
+++ b/bin/download-sample-keycloak-themes.js
@@ -0,0 +1,58 @@
+#!/usr/bin/env node
+"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 __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
+}) : function(o, v) {
+ o["default"] = v;
+});
+var __importStar = (this && this.__importStar) || function (mod) {
+ if (mod && mod.__esModule) return mod;
+ var result = {};
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
+ __setModuleDefault(result, mod);
+ return result;
+};
+var __read = (this && this.__read) || function (o, n) {
+ var m = typeof Symbol === "function" && o[Symbol.iterator];
+ if (!m) return o;
+ var i = m.call(o), r, ar = [], e;
+ try {
+ while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
+ }
+ catch (error) { e = { error: error }; }
+ finally {
+ try {
+ if (r && !r.done && (m = i["return"])) m.call(i);
+ }
+ finally { if (e) throw e.error; }
+ }
+ 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) {
+ return (mod && mod.__esModule) ? mod : { "default": mod };
+};
+Object.defineProperty(exports, "__esModule", { value: true });
+var fs = __importStar(require("fs"));
+var path_1 = require("path");
+var build_keycloak_theme_1 = require("./build-keycloak-theme");
+var child_process_1 = __importDefault(require("child_process"));
+if (!fs.existsSync(build_keycloak_theme_1.keycloakThemeBuildingDirPath)) {
+ console.log("Error: The keycloak theme need to be build");
+ process.exit(1);
+}
+var url = "https://github.com/garronej/keycloak-react-theming/releases/download/v0.0.1/other_keycloak_thems.zip";
+__spread([
+ "wget " + url
+], ["unzip", "rm"].map(function (prg) { return prg + " " + path_1.basename(url); })).forEach(function (cmd) { return child_process_1.default.execSync(cmd, { "cwd": path_1.join(build_keycloak_theme_1.keycloakThemeBuildingDirPath, "src", "main", "resources", "theme") }); });
+//# sourceMappingURL=download-sample-keycloak-themes.js.map
\ No newline at end of file
diff --git a/bin/download-sample-keycloak-themes.js.map b/bin/download-sample-keycloak-themes.js.map
new file mode 100644
index 00000000..1b388855
--- /dev/null
+++ b/bin/download-sample-keycloak-themes.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"download-sample-keycloak-themes.js","sourceRoot":"","sources":["../src/bin/download-sample-keycloak-themes.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,qCAAyB;AACzB,6BAAkE;AAClE,+DAAsE;AACtE,gEAA0C;AAE1C,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,mDAA4B,CAAC,EAAE;IAC9C,OAAO,CAAC,GAAG,CAAC,4CAA4C,CAAC,CAAC;IAC1D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;CACnB;AAED,IAAM,GAAG,GAAG,sGAAsG,CAAC;AAEnH;IACI,UAAQ,GAAK;GACV,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,uBAAa,CAAC,QAAQ,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,WAAQ,CAAC,mDAA4B,EAAE,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,OAAO,CAAC,EAAE,CAAC,EAAnH,CAAmH,CAAC,CAAC"}
\ No newline at end of file
diff --git a/lib/index.d.ts b/lib/index.d.ts
new file mode 100644
index 00000000..f52f5ba3
--- /dev/null
+++ b/lib/index.d.ts
@@ -0,0 +1 @@
+export * from "./keycloakFtlValues";
diff --git a/lib/index.js b/lib/index.js
new file mode 100644
index 00000000..90acc060
--- /dev/null
+++ b/lib/index.js
@@ -0,0 +1,14 @@
+"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
\ No newline at end of file
diff --git a/lib/index.js.map b/lib/index.js.map
new file mode 100644
index 00000000..a024dfd0
--- /dev/null
+++ b/lib/index.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/lib/index.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,sDAAoC"}
\ No newline at end of file
diff --git a/lib/keycloakFtlValues.d.ts b/lib/keycloakFtlValues.d.ts
new file mode 100644
index 00000000..bc01c0e0
--- /dev/null
+++ b/lib/keycloakFtlValues.d.ts
@@ -0,0 +1,9 @@
+import type { generateFtlFilesCodeFactory } from "../bin/build-keycloak-theme/generateFtl";
+export declare type KeycloakFtlValues = {
+ pageBasename: Parameters["generateFtlFilesCode"]>[0]["pageBasename"];
+ url: {
+ loginAction: string;
+ resourcesPath: string;
+ };
+};
+export declare const keycloakPagesContext: KeycloakFtlValues | undefined;
diff --git a/lib/keycloakFtlValues.js b/lib/keycloakFtlValues.js
new file mode 100644
index 00000000..5fe02bbd
--- /dev/null
+++ b/lib/keycloakFtlValues.js
@@ -0,0 +1,9 @@
+"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
\ No newline at end of file
diff --git a/lib/keycloakFtlValues.js.map b/lib/keycloakFtlValues.js.map
new file mode 100644
index 00000000..9c5a4860
--- /dev/null
+++ b/lib/keycloakFtlValues.js.map
@@ -0,0 +1 @@
+{"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"}
\ No newline at end of file
diff --git a/package.json b/package.json
index 18b0860b..754f1ce3 100755
--- a/package.json
+++ b/package.json
@@ -6,27 +6,61 @@
"type": "git",
"url": "git://github.com/garronej/keycloak-react-theming.git"
},
- "main": "dist/lib/index.js",
- "types": "dist/lib/index.d.ts",
- "scripts": {
- "build": "tsc && npm run grant-exec-perms && npm run copy-standalone-ha",
- "copy-standalone-ha": "cp src/bin/build-keycloak-theme/generateDebugFiles/standalone-ha.xml dist/bin/build-keycloak-theme/generateDebugFiles/",
- "grant-exec-perms": "cd dist/bin && chmod +x build-keycloak-theme/index.js download-sample-keycloak-themes.js",
- "test": "node dist/test/build-keycloak-theme && node dist/test/download-sample-keycloak-themes",
- "enable_short_import_path": "npm run build && denoify_enable_short_npm_import_path"
- },
+ "main": "lib/index.js",
+ "types": "lib/index.d.ts",
"bin": {
- "build-keycloak-theme": "dist/bin/build-keycloak-theme/index.js",
- "download-sample-keycloak-themes": "dist/bin/download-sample-keycloak-themes.js"
+ "build-keycloak-theme": "bin/build-keycloak-theme/index.js",
+ "download-sample-keycloak-themes": "bin/download-sample-keycloak-themes.js"
},
"author": "u/garronej",
"license": "MIT",
"files": [
- "src/",
- "!src/test/",
- "dist/",
- "!dist/test/",
- "!dist/tsconfig.tsbuildinfo"
+ "src/bin/build-keycloak-theme/generateDebugFiles/index.ts",
+ "src/bin/build-keycloak-theme/generateDebugFiles/standalone-ha.xml",
+ "src/bin/build-keycloak-theme/generateFtl.ts",
+ "src/bin/build-keycloak-theme/generateJavaStackFiles.ts",
+ "src/bin/build-keycloak-theme/generateKeycloakThemeResources.ts",
+ "src/bin/build-keycloak-theme/index.ts",
+ "src/bin/build-keycloak-theme/replaceImportFromStatic.ts",
+ "src/bin/download-sample-keycloak-themes.ts",
+ "src/lib/index.ts",
+ "src/lib/keycloakFtlValues.ts",
+ "src/tools/crawl.ts",
+ "src/tools/transformCodebase.ts",
+ "bin/build-keycloak-theme/generateDebugFiles/index.d.ts",
+ "bin/build-keycloak-theme/generateDebugFiles/index.js",
+ "bin/build-keycloak-theme/generateDebugFiles/index.js.map",
+ "bin/build-keycloak-theme/generateDebugFiles/standalone-ha.xml",
+ "bin/build-keycloak-theme/generateFtl.d.ts",
+ "bin/build-keycloak-theme/generateFtl.js",
+ "bin/build-keycloak-theme/generateFtl.js.map",
+ "bin/build-keycloak-theme/generateJavaStackFiles.d.ts",
+ "bin/build-keycloak-theme/generateJavaStackFiles.js",
+ "bin/build-keycloak-theme/generateJavaStackFiles.js.map",
+ "bin/build-keycloak-theme/generateKeycloakThemeResources.d.ts",
+ "bin/build-keycloak-theme/generateKeycloakThemeResources.js",
+ "bin/build-keycloak-theme/generateKeycloakThemeResources.js.map",
+ "bin/build-keycloak-theme/index.d.ts",
+ "bin/build-keycloak-theme/index.js",
+ "bin/build-keycloak-theme/index.js.map",
+ "bin/build-keycloak-theme/replaceImportFromStatic.d.ts",
+ "bin/build-keycloak-theme/replaceImportFromStatic.js",
+ "bin/build-keycloak-theme/replaceImportFromStatic.js.map",
+ "bin/download-sample-keycloak-themes.d.ts",
+ "bin/download-sample-keycloak-themes.js",
+ "bin/download-sample-keycloak-themes.js.map",
+ "lib/index.d.ts",
+ "lib/index.js",
+ "lib/index.js.map",
+ "lib/keycloakFtlValues.d.ts",
+ "lib/keycloakFtlValues.js",
+ "lib/keycloakFtlValues.js.map",
+ "tools/crawl.d.ts",
+ "tools/crawl.js",
+ "tools/crawl.js.map",
+ "tools/transformCodebase.d.ts",
+ "tools/transformCodebase.js",
+ "tools/transformCodebase.js.map"
],
"keywords": [
"keycloak",
diff --git a/test/build-keycloak-theme.d.ts b/test/build-keycloak-theme.d.ts
new file mode 100644
index 00000000..cb0ff5c3
--- /dev/null
+++ b/test/build-keycloak-theme.d.ts
@@ -0,0 +1 @@
+export {};
diff --git a/test/build-keycloak-theme.js b/test/build-keycloak-theme.js
new file mode 100644
index 00000000..7cc88826
--- /dev/null
+++ b/test/build-keycloak-theme.js
@@ -0,0 +1,28 @@
+"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 __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
+}) : function(o, v) {
+ o["default"] = v;
+});
+var __importStar = (this && this.__importStar) || function (mod) {
+ if (mod && mod.__esModule) return mod;
+ var result = {};
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
+ __setModuleDefault(result, mod);
+ return result;
+};
+Object.defineProperty(exports, "__esModule", { value: true });
+var setupSampleReactProject_1 = require("./setupSampleReactProject");
+var st = __importStar(require("scripting-tools"));
+var path_1 = require("path");
+setupSampleReactProject_1.setupSampleReactProject();
+console.log("Running main in " + setupSampleReactProject_1.sampleReactProjectDirPath);
+console.log(st.execSync("node " + path_1.join(__dirname, "../bin/build-keycloak-theme"), { "cwd": setupSampleReactProject_1.sampleReactProjectDirPath }));
+//# sourceMappingURL=build-keycloak-theme.js.map
\ No newline at end of file
diff --git a/test/build-keycloak-theme.js.map b/test/build-keycloak-theme.js.map
new file mode 100644
index 00000000..14f161ec
--- /dev/null
+++ b/test/build-keycloak-theme.js.map
@@ -0,0 +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"}
\ No newline at end of file
diff --git a/test/download-sample-keycloak-themes.d.ts b/test/download-sample-keycloak-themes.d.ts
new file mode 100644
index 00000000..cb0ff5c3
--- /dev/null
+++ b/test/download-sample-keycloak-themes.d.ts
@@ -0,0 +1 @@
+export {};
diff --git a/test/download-sample-keycloak-themes.js b/test/download-sample-keycloak-themes.js
new file mode 100644
index 00000000..caf16634
--- /dev/null
+++ b/test/download-sample-keycloak-themes.js
@@ -0,0 +1,27 @@
+"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 __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
+}) : function(o, v) {
+ o["default"] = v;
+});
+var __importStar = (this && this.__importStar) || function (mod) {
+ if (mod && mod.__esModule) return mod;
+ var result = {};
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
+ __setModuleDefault(result, mod);
+ return result;
+};
+Object.defineProperty(exports, "__esModule", { value: true });
+var setupSampleReactProject_1 = require("./setupSampleReactProject");
+var st = __importStar(require("scripting-tools"));
+var path_1 = require("path");
+console.log("Running main in " + setupSampleReactProject_1.sampleReactProjectDirPath);
+st.execSync("node " + path_1.join(__dirname, "../bin/download-sample-keycloak-themes"), { "cwd": setupSampleReactProject_1.sampleReactProjectDirPath });
+//# sourceMappingURL=download-sample-keycloak-themes.js.map
\ No newline at end of file
diff --git a/test/download-sample-keycloak-themes.js.map b/test/download-sample-keycloak-themes.js.map
new file mode 100644
index 00000000..eac12dfd
--- /dev/null
+++ b/test/download-sample-keycloak-themes.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"download-sample-keycloak-themes.js","sourceRoot":"","sources":["../src/test/download-sample-keycloak-themes.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;AACA,qEAAsE;AACtE,kDAAsC;AACtC,6BAAwC;AAExC,OAAO,CAAC,GAAG,CAAC,qBAAmB,mDAA2B,CAAC,CAAC;AAE5D,EAAE,CAAC,QAAQ,CACP,UAAQ,WAAQ,CAAC,SAAS,EAAE,wCAAwC,CAAG,EACvE,EAAE,KAAK,EAAE,mDAAyB,EAAE,CACvC,CAAC"}
\ No newline at end of file
diff --git a/test/generateKeycloakThemeResources.d.ts b/test/generateKeycloakThemeResources.d.ts
new file mode 100644
index 00000000..cb0ff5c3
--- /dev/null
+++ b/test/generateKeycloakThemeResources.d.ts
@@ -0,0 +1 @@
+export {};
diff --git a/test/generateKeycloakThemeResources.js b/test/generateKeycloakThemeResources.js
new file mode 100644
index 00000000..3e54bb74
--- /dev/null
+++ b/test/generateKeycloakThemeResources.js
@@ -0,0 +1,12 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+var path_1 = require("path");
+var generateKeycloakThemeResources_1 = require("../bin/build-keycloak-theme/generateKeycloakThemeResources");
+var setupSampleReactProject_1 = require("./setupSampleReactProject");
+setupSampleReactProject_1.setupSampleReactProject();
+generateKeycloakThemeResources_1.generateKeycloakThemeResources({
+ "themeName": "onyxia-ui",
+ "reactAppBuildDirPath": path_1.join(setupSampleReactProject_1.sampleReactProjectDirPath, "build"),
+ "keycloakThemeBuildingDirPath": path_1.join(setupSampleReactProject_1.sampleReactProjectDirPath, "build_keycloak_theme")
+});
+//# sourceMappingURL=generateKeycloakThemeResources.js.map
\ No newline at end of file
diff --git a/test/generateKeycloakThemeResources.js.map b/test/generateKeycloakThemeResources.js.map
new file mode 100644
index 00000000..725549aa
--- /dev/null
+++ b/test/generateKeycloakThemeResources.js.map
@@ -0,0 +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"}
\ No newline at end of file
diff --git a/test/replaceImportFromStatic.d.ts b/test/replaceImportFromStatic.d.ts
new file mode 100644
index 00000000..cb0ff5c3
--- /dev/null
+++ b/test/replaceImportFromStatic.d.ts
@@ -0,0 +1 @@
+export {};
diff --git a/test/replaceImportFromStatic.js b/test/replaceImportFromStatic.js
new file mode 100644
index 00000000..288576e3
--- /dev/null
+++ b/test/replaceImportFromStatic.js
@@ -0,0 +1,15 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+var replaceImportFromStatic_1 = require("../bin/build-keycloak-theme/replaceImportFromStatic");
+var fixedJsCode = replaceImportFromStatic_1.replaceImportFromStaticInJsCode({
+ "ftlValuesGlobalName": "keycloakFtlValues",
+ "jsCode": "\n function f() {\n return a.p + \"static/js/\" + ({}[e] || e) + \".\" + {\n 3: \"0664cdc0\"\n }[e] + \".chunk.js\"\n }\n\n function f2() {\n return a.p +\"static/js/\" + ({}[e] || e) + \".\" + {\n 3: \"0664cdc0\"\n }[e] + \".chunk.js\"\n }\n "
+}).fixedJsCode;
+console.log({ fixedJsCode: fixedJsCode });
+var _a = replaceImportFromStatic_1.replaceImportFromStaticInCssCode({
+ "cssCode": "\n\n .my-div {\n background: url(/logo192.png) no-repeat center center;\n }\n\n .my-div2 {\n background: url(/logo192.png) no-repeat center center;\n }\n\n .my-div {\n background-image: url(/static/media/something.svg);\n }\n "
+}), fixedCssCode = _a.fixedCssCode, cssGlobalsToDefine = _a.cssGlobalsToDefine;
+console.log({ fixedCssCode: fixedCssCode, cssGlobalsToDefine: cssGlobalsToDefine });
+var cssCodeToPrependInHead = replaceImportFromStatic_1.generateCssCodeToDefineGlobals({ cssGlobalsToDefine: cssGlobalsToDefine }).cssCodeToPrependInHead;
+console.log({ cssCodeToPrependInHead: cssCodeToPrependInHead });
+//# sourceMappingURL=replaceImportFromStatic.js.map
\ No newline at end of file
diff --git a/test/replaceImportFromStatic.js.map b/test/replaceImportFromStatic.js.map
new file mode 100644
index 00000000..f4cc6278
--- /dev/null
+++ b/test/replaceImportFromStatic.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"replaceImportFromStatic.js","sourceRoot":"","sources":["../src/test/replaceImportFromStatic.ts"],"names":[],"mappings":";;AACA,+FAI6D;AAErD,IAAA,WAAW,GAAK,yDAA+B,CAAC;IACpD,qBAAqB,EAAE,mBAAmB;IAC1C,QAAQ,EAAE,8VAYT;CACJ,CAAC,YAfiB,CAehB;AAEH,OAAO,CAAC,GAAG,CAAC,EAAE,WAAW,aAAA,EAAE,CAAC,CAAC;AAEvB,IAAA,KAAuC,0DAAgC,CAAC;IAC1E,SAAS,EAAE,8QAaV;CACJ,CAAC,EAfM,YAAY,kBAAA,EAAE,kBAAkB,wBAetC,CAAC;AAGH,OAAO,CAAC,GAAG,CAAC,EAAE,YAAY,cAAA,EAAE,kBAAkB,oBAAA,EAAE,CAAC,CAAC;AAG1C,IAAA,sBAAsB,GAAK,wDAA8B,CAAC,EAAE,kBAAkB,oBAAA,EAAE,CAAC,uBAA3D,CAA4D;AAE1F,OAAO,CAAC,GAAG,CAAC,EAAE,sBAAsB,wBAAA,EAAE,CAAC,CAAC"}
\ No newline at end of file
diff --git a/test/setupSampleReactProject.d.ts b/test/setupSampleReactProject.d.ts
new file mode 100644
index 00000000..2aa52dee
--- /dev/null
+++ b/test/setupSampleReactProject.d.ts
@@ -0,0 +1,2 @@
+export declare const sampleReactProjectDirPath: string;
+export declare function setupSampleReactProject(): void;
diff --git a/test/setupSampleReactProject.js b/test/setupSampleReactProject.js
new file mode 100644
index 00000000..d35a0370
--- /dev/null
+++ b/test/setupSampleReactProject.js
@@ -0,0 +1,55 @@
+"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 __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
+}) : function(o, v) {
+ o["default"] = v;
+});
+var __importStar = (this && this.__importStar) || function (mod) {
+ if (mod && mod.__esModule) return mod;
+ var result = {};
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
+ __setModuleDefault(result, mod);
+ return result;
+};
+var __read = (this && this.__read) || function (o, n) {
+ var m = typeof Symbol === "function" && o[Symbol.iterator];
+ if (!m) return o;
+ var i = m.call(o), r, ar = [], e;
+ try {
+ while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
+ }
+ catch (error) { e = { error: error }; }
+ finally {
+ try {
+ if (r && !r.done && (m = i["return"])) m.call(i);
+ }
+ finally { if (e) throw e.error; }
+ }
+ 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;
+};
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.setupSampleReactProject = exports.sampleReactProjectDirPath = void 0;
+var st = __importStar(require("scripting-tools"));
+var path_1 = require("path");
+exports.sampleReactProjectDirPath = path_1.join(__dirname, "..", "..", "sample_react_project");
+function setupSampleReactProject() {
+ st.execSync("rm -rf " + exports.sampleReactProjectDirPath);
+ st.execSync("mkdir " + exports.sampleReactProjectDirPath);
+ var url = "https://github.com/garronej/keycloak-react-theming/releases/download/v0.0.1/sample_build_dir_and_package_json.zip";
+ __spread([
+ "wget " + url
+ ], ["unzip", "rm"].map(function (prg) { return prg + " " + path_1.basename(url); })).forEach(function (cmd) { return st.execSync(cmd, { "cwd": exports.sampleReactProjectDirPath }); });
+}
+exports.setupSampleReactProject = setupSampleReactProject;
+//# sourceMappingURL=setupSampleReactProject.js.map
\ No newline at end of file
diff --git a/test/setupSampleReactProject.js.map b/test/setupSampleReactProject.js.map
new file mode 100644
index 00000000..ee139097
--- /dev/null
+++ b/test/setupSampleReactProject.js.map
@@ -0,0 +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"}
\ No newline at end of file
diff --git a/tools/crawl.d.ts b/tools/crawl.d.ts
new file mode 100644
index 00000000..a17223ab
--- /dev/null
+++ b/tools/crawl.d.ts
@@ -0,0 +1,2 @@
+/** List all files in a given directory return paths relative to the dir_path */
+export declare const crawl: (dir_path: string) => string[];
diff --git a/tools/crawl.js b/tools/crawl.js
new file mode 100644
index 00000000..bfc642a0
--- /dev/null
+++ b/tools/crawl.js
@@ -0,0 +1,65 @@
+"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 __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
+}) : function(o, v) {
+ o["default"] = v;
+});
+var __importStar = (this && this.__importStar) || function (mod) {
+ if (mod && mod.__esModule) return mod;
+ var result = {};
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
+ __setModuleDefault(result, mod);
+ return result;
+};
+var __values = (this && this.__values) || function(o) {
+ var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
+ if (m) return m.call(o);
+ if (o && typeof o.length === "number") return {
+ next: function () {
+ if (o && i >= o.length) o = void 0;
+ return { value: o && o[i++], done: !o };
+ }
+ };
+ throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
+};
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.crawl = void 0;
+var fs = __importStar(require("fs"));
+var path = __importStar(require("path"));
+/** List all files in a given directory return paths relative to the dir_path */
+exports.crawl = (function () {
+ var crawlRec = function (dir_path, paths) {
+ var e_1, _a;
+ try {
+ for (var _b = __values(fs.readdirSync(dir_path)), _c = _b.next(); !_c.done; _c = _b.next()) {
+ var file_name = _c.value;
+ var file_path = path.join(dir_path, file_name);
+ if (fs.lstatSync(file_path).isDirectory()) {
+ crawlRec(file_path, paths);
+ continue;
+ }
+ paths.push(file_path);
+ }
+ }
+ catch (e_1_1) { e_1 = { error: e_1_1 }; }
+ finally {
+ try {
+ if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
+ }
+ finally { if (e_1) throw e_1.error; }
+ }
+ };
+ return function crawl(dir_path) {
+ var paths = [];
+ crawlRec(dir_path, paths);
+ return paths.map(function (file_path) { return path.relative(dir_path, file_path); });
+ };
+})();
+//# sourceMappingURL=crawl.js.map
\ No newline at end of file
diff --git a/tools/crawl.js.map b/tools/crawl.js.map
new file mode 100644
index 00000000..9ddabf5c
--- /dev/null
+++ b/tools/crawl.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"crawl.js","sourceRoot":"","sources":["../src/tools/crawl.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,qCAAyB;AACzB,yCAA6B;AAE7B,gFAAgF;AACnE,QAAA,KAAK,GAAG,CAAC;IAElB,IAAM,QAAQ,GAAG,UAAC,QAAgB,EAAE,KAAe;;;YAE/C,KAAwB,IAAA,KAAA,SAAA,EAAE,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAA,gBAAA,4BAAE;gBAA7C,IAAM,SAAS,WAAA;gBAEhB,IAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;gBAEjD,IAAI,EAAE,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,WAAW,EAAE,EAAE;oBAEvC,QAAQ,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;oBAE3B,SAAS;iBAEZ;gBAED,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;aAEzB;;;;;;;;;IAEL,CAAC,CAAC;IAEF,OAAO,SAAS,KAAK,CAAC,QAAgB;QAElC,IAAM,KAAK,GAAa,EAAE,CAAC;QAE3B,QAAQ,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;QAE1B,OAAO,KAAK,CAAC,GAAG,CAAC,UAAA,SAAS,IAAI,OAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,SAAS,CAAC,EAAlC,CAAkC,CAAC,CAAC;IAEtE,CAAC,CAAA;AAEL,CAAC,CAAC,EAAE,CAAC"}
\ No newline at end of file
diff --git a/tools/transformCodebase.d.ts b/tools/transformCodebase.d.ts
new file mode 100644
index 00000000..1b8cbf7d
--- /dev/null
+++ b/tools/transformCodebase.d.ts
@@ -0,0 +1,13 @@
+///
+/** Apply a transformation function to every file of directory */
+export declare function transformCodebase(params: {
+ srcDirPath: string;
+ destDirPath: string;
+ transformSourceCodeString: (params: {
+ sourceCode: Buffer;
+ filePath: string;
+ }) => {
+ modifiedSourceCode: Buffer;
+ newFileName?: string;
+ } | undefined;
+}): void;
diff --git a/tools/transformCodebase.js b/tools/transformCodebase.js
new file mode 100644
index 00000000..fbe75ab2
--- /dev/null
+++ b/tools/transformCodebase.js
@@ -0,0 +1,66 @@
+"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 __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
+}) : function(o, v) {
+ o["default"] = v;
+});
+var __importStar = (this && this.__importStar) || function (mod) {
+ if (mod && mod.__esModule) return mod;
+ var result = {};
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
+ __setModuleDefault(result, mod);
+ return result;
+};
+var __values = (this && this.__values) || function(o) {
+ var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
+ if (m) return m.call(o);
+ if (o && typeof o.length === "number") return {
+ next: function () {
+ if (o && i >= o.length) o = void 0;
+ return { value: o && o[i++], done: !o };
+ }
+ };
+ throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
+};
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.transformCodebase = void 0;
+var fs = __importStar(require("fs"));
+var path = __importStar(require("path"));
+var crawl_1 = require("./crawl");
+/** Apply a transformation function to every file of directory */
+function transformCodebase(params) {
+ var e_1, _a;
+ var srcDirPath = params.srcDirPath, destDirPath = params.destDirPath, transformSourceCodeString = params.transformSourceCodeString;
+ try {
+ for (var _b = __values(crawl_1.crawl(srcDirPath)), _c = _b.next(); !_c.done; _c = _b.next()) {
+ var file_relative_path = _c.value;
+ var filePath = path.join(srcDirPath, file_relative_path);
+ var transformSourceCodeStringResult = transformSourceCodeString({
+ "sourceCode": fs.readFileSync(filePath),
+ "filePath": path.join(srcDirPath, file_relative_path)
+ });
+ if (transformSourceCodeStringResult === undefined) {
+ continue;
+ }
+ fs.mkdirSync(path.dirname(path.join(destDirPath, file_relative_path)), { "recursive": true });
+ var newFileName = transformSourceCodeStringResult.newFileName, modifiedSourceCode = transformSourceCodeStringResult.modifiedSourceCode;
+ fs.writeFileSync(path.join(path.dirname(path.join(destDirPath, file_relative_path)), newFileName !== null && newFileName !== void 0 ? newFileName : path.basename(file_relative_path)), modifiedSourceCode);
+ }
+ }
+ catch (e_1_1) { e_1 = { error: e_1_1 }; }
+ finally {
+ try {
+ if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
+ }
+ finally { if (e_1) throw e_1.error; }
+ }
+}
+exports.transformCodebase = transformCodebase;
+//# sourceMappingURL=transformCodebase.js.map
\ No newline at end of file
diff --git a/tools/transformCodebase.js.map b/tools/transformCodebase.js.map
new file mode 100644
index 00000000..8c19d24f
--- /dev/null
+++ b/tools/transformCodebase.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"transformCodebase.js","sourceRoot":"","sources":["../src/tools/transformCodebase.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,qCAAyB;AACzB,yCAA6B;AAC7B,iCAAgC;AAEhC,iEAAiE;AACjE,SAAgB,iBAAiB,CAC7B,MAUC;;IAGO,IAAA,UAAU,GAA6C,MAAM,WAAnD,EAAE,WAAW,GAAgC,MAAM,YAAtC,EAAE,yBAAyB,GAAK,MAAM,0BAAX,CAAY;;QAEtE,KAAiC,IAAA,KAAA,SAAA,aAAK,CAAC,UAAU,CAAC,CAAA,gBAAA,4BAAE;YAA/C,IAAM,kBAAkB,WAAA;YAEzB,IAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,kBAAkB,CAAC,CAAC;YAE3D,IAAM,+BAA+B,GAAG,yBAAyB,CAAC;gBAC9D,YAAY,EAAE,EAAE,CAAC,YAAY,CAAC,QAAQ,CAAC;gBACvC,UAAU,EAAE,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,kBAAkB,CAAC;aACxD,CAAC,CAAC;YAEH,IAAI,+BAA+B,KAAK,SAAS,EAAE;gBAC/C,SAAS;aACZ;YAED,EAAE,CAAC,SAAS,CACR,IAAI,CAAC,OAAO,CACR,IAAI,CAAC,IAAI,CACL,WAAW,EACX,kBAAkB,CACrB,CACJ,EACD,EAAE,WAAW,EAAE,IAAI,EAAE,CACxB,CAAC;YAEM,IAAA,WAAW,GAAyB,+BAA+B,YAAxD,EAAE,kBAAkB,GAAK,+BAA+B,mBAApC,CAAqC;YAE5E,EAAE,CAAC,aAAa,CACZ,IAAI,CAAC,IAAI,CACL,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,kBAAkB,CAAC,CAAC,EACxD,WAAW,aAAX,WAAW,cAAX,WAAW,GAAI,IAAI,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CACnD,EACD,kBAAkB,CACrB,CAAC;SAEL;;;;;;;;;AAGL,CAAC;AApDD,8CAoDC"}
\ No newline at end of file
diff --git a/tsconfig.tsbuildinfo b/tsconfig.tsbuildinfo
new file mode 100644
index 00000000..c19ba78e
--- /dev/null
+++ b/tsconfig.tsbuildinfo
@@ -0,0 +1,1175 @@
+{
+ "program": {
+ "fileInfos": {
+ "../node_modules/typescript/lib/lib.es5.d.ts": {
+ "version": "9622e8bd7cc72a7dab819a8011ecbf81d443638082e5cb99ecf2e75ff56ffc9d",
+ "signature": "9622e8bd7cc72a7dab819a8011ecbf81d443638082e5cb99ecf2e75ff56ffc9d",
+ "affectsGlobalScope": true
+ },
+ "../node_modules/typescript/lib/lib.es2015.d.ts": {
+ "version": "dc47c4fa66b9b9890cf076304de2a9c5201e94b740cffdf09f87296d877d71f6",
+ "signature": "dc47c4fa66b9b9890cf076304de2a9c5201e94b740cffdf09f87296d877d71f6",
+ "affectsGlobalScope": false
+ },
+ "../node_modules/typescript/lib/lib.es2016.d.ts": {
+ "version": "7a387c58583dfca701b6c85e0adaf43fb17d590fb16d5b2dc0a2fbd89f35c467",
+ "signature": "7a387c58583dfca701b6c85e0adaf43fb17d590fb16d5b2dc0a2fbd89f35c467",
+ "affectsGlobalScope": false
+ },
+ "../node_modules/typescript/lib/lib.es2017.d.ts": {
+ "version": "8a12173c586e95f4433e0c6dc446bc88346be73ffe9ca6eec7aa63c8f3dca7f9",
+ "signature": "8a12173c586e95f4433e0c6dc446bc88346be73ffe9ca6eec7aa63c8f3dca7f9",
+ "affectsGlobalScope": false
+ },
+ "../node_modules/typescript/lib/lib.es2018.d.ts": {
+ "version": "5f4e733ced4e129482ae2186aae29fde948ab7182844c3a5a51dd346182c7b06",
+ "signature": "5f4e733ced4e129482ae2186aae29fde948ab7182844c3a5a51dd346182c7b06",
+ "affectsGlobalScope": false
+ },
+ "../node_modules/typescript/lib/lib.dom.d.ts": {
+ "version": "abadddbf660adeec27e9a56584907d52fa1d6e1e1dc49f639a921baa951b7a84",
+ "signature": "abadddbf660adeec27e9a56584907d52fa1d6e1e1dc49f639a921baa951b7a84",
+ "affectsGlobalScope": true
+ },
+ "../node_modules/typescript/lib/lib.es2015.core.d.ts": {
+ "version": "46ee15e9fefa913333b61eaf6b18885900b139867d89832a515059b62cf16a17",
+ "signature": "46ee15e9fefa913333b61eaf6b18885900b139867d89832a515059b62cf16a17",
+ "affectsGlobalScope": true
+ },
+ "../node_modules/typescript/lib/lib.es2015.collection.d.ts": {
+ "version": "43fb1d932e4966a39a41b464a12a81899d9ae5f2c829063f5571b6b87e6d2f9c",
+ "signature": "43fb1d932e4966a39a41b464a12a81899d9ae5f2c829063f5571b6b87e6d2f9c",
+ "affectsGlobalScope": true
+ },
+ "../node_modules/typescript/lib/lib.es2015.generator.d.ts": {
+ "version": "cdccba9a388c2ee3fd6ad4018c640a471a6c060e96f1232062223063b0a5ac6a",
+ "signature": "cdccba9a388c2ee3fd6ad4018c640a471a6c060e96f1232062223063b0a5ac6a",
+ "affectsGlobalScope": true
+ },
+ "../node_modules/typescript/lib/lib.es2015.iterable.d.ts": {
+ "version": "8b2a5df1ce95f78f6b74f1a555ccdb6baab0486b42d8345e0871dd82811f9b9a",
+ "signature": "8b2a5df1ce95f78f6b74f1a555ccdb6baab0486b42d8345e0871dd82811f9b9a",
+ "affectsGlobalScope": true
+ },
+ "../node_modules/typescript/lib/lib.es2015.promise.d.ts": {
+ "version": "2bb4b3927299434052b37851a47bf5c39764f2ba88a888a107b32262e9292b7c",
+ "signature": "2bb4b3927299434052b37851a47bf5c39764f2ba88a888a107b32262e9292b7c",
+ "affectsGlobalScope": true
+ },
+ "../node_modules/typescript/lib/lib.es2015.proxy.d.ts": {
+ "version": "7207e317a2cb07a177e7d963ab7b8c0e85dde7f9ddb50351f830239bf597569e",
+ "signature": "7207e317a2cb07a177e7d963ab7b8c0e85dde7f9ddb50351f830239bf597569e",
+ "affectsGlobalScope": true
+ },
+ "../node_modules/typescript/lib/lib.es2015.reflect.d.ts": {
+ "version": "cb609802a8698aa28b9c56331d4b53f590ca3c1c3a255350304ae3d06017779d",
+ "signature": "cb609802a8698aa28b9c56331d4b53f590ca3c1c3a255350304ae3d06017779d",
+ "affectsGlobalScope": true
+ },
+ "../node_modules/typescript/lib/lib.es2015.symbol.d.ts": {
+ "version": "3013574108c36fd3aaca79764002b3717da09725a36a6fc02eac386593110f93",
+ "signature": "3013574108c36fd3aaca79764002b3717da09725a36a6fc02eac386593110f93",
+ "affectsGlobalScope": true
+ },
+ "../node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts": {
+ "version": "9d122b7e8c1a5c72506eea50c0973cba55b92b5532d5cafa8a6ce2c547d57551",
+ "signature": "9d122b7e8c1a5c72506eea50c0973cba55b92b5532d5cafa8a6ce2c547d57551",
+ "affectsGlobalScope": true
+ },
+ "../node_modules/typescript/lib/lib.es2016.array.include.d.ts": {
+ "version": "3be5a1453daa63e031d266bf342f3943603873d890ab8b9ada95e22389389006",
+ "signature": "3be5a1453daa63e031d266bf342f3943603873d890ab8b9ada95e22389389006",
+ "affectsGlobalScope": true
+ },
+ "../node_modules/typescript/lib/lib.es2017.object.d.ts": {
+ "version": "17bb1fc99591b00515502d264fa55dc8370c45c5298f4a5c2083557dccba5a2a",
+ "signature": "17bb1fc99591b00515502d264fa55dc8370c45c5298f4a5c2083557dccba5a2a",
+ "affectsGlobalScope": true
+ },
+ "../node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts": {
+ "version": "7ce9f0bde3307ca1f944119f6365f2d776d281a393b576a18a2f2893a2d75c98",
+ "signature": "7ce9f0bde3307ca1f944119f6365f2d776d281a393b576a18a2f2893a2d75c98",
+ "affectsGlobalScope": true
+ },
+ "../node_modules/typescript/lib/lib.es2017.string.d.ts": {
+ "version": "6a6b173e739a6a99629a8594bfb294cc7329bfb7b227f12e1f7c11bc163b8577",
+ "signature": "6a6b173e739a6a99629a8594bfb294cc7329bfb7b227f12e1f7c11bc163b8577",
+ "affectsGlobalScope": true
+ },
+ "../node_modules/typescript/lib/lib.es2017.intl.d.ts": {
+ "version": "12a310447c5d23c7d0d5ca2af606e3bd08afda69100166730ab92c62999ebb9d",
+ "signature": "12a310447c5d23c7d0d5ca2af606e3bd08afda69100166730ab92c62999ebb9d",
+ "affectsGlobalScope": true
+ },
+ "../node_modules/typescript/lib/lib.es2017.typedarrays.d.ts": {
+ "version": "b0124885ef82641903d232172577f2ceb5d3e60aed4da1153bab4221e1f6dd4e",
+ "signature": "b0124885ef82641903d232172577f2ceb5d3e60aed4da1153bab4221e1f6dd4e",
+ "affectsGlobalScope": true
+ },
+ "../node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts": {
+ "version": "0eb85d6c590b0d577919a79e0084fa1744c1beba6fd0d4e951432fa1ede5510a",
+ "signature": "0eb85d6c590b0d577919a79e0084fa1744c1beba6fd0d4e951432fa1ede5510a",
+ "affectsGlobalScope": true
+ },
+ "../node_modules/typescript/lib/lib.es2018.asynciterable.d.ts": {
+ "version": "a40c4d82bf13fcded295ac29f354eb7d40249613c15e07b53f2fc75e45e16359",
+ "signature": "a40c4d82bf13fcded295ac29f354eb7d40249613c15e07b53f2fc75e45e16359",
+ "affectsGlobalScope": true
+ },
+ "../node_modules/typescript/lib/lib.es2018.intl.d.ts": {
+ "version": "df9c8a72ca8b0ed62f5470b41208a0587f0f73f0a7db28e5a1272cf92537518e",
+ "signature": "df9c8a72ca8b0ed62f5470b41208a0587f0f73f0a7db28e5a1272cf92537518e",
+ "affectsGlobalScope": true
+ },
+ "../node_modules/typescript/lib/lib.es2018.promise.d.ts": {
+ "version": "bb2d3fb05a1d2ffbca947cc7cbc95d23e1d053d6595391bd325deb265a18d36c",
+ "signature": "bb2d3fb05a1d2ffbca947cc7cbc95d23e1d053d6595391bd325deb265a18d36c",
+ "affectsGlobalScope": true
+ },
+ "../node_modules/typescript/lib/lib.es2018.regexp.d.ts": {
+ "version": "c80df75850fea5caa2afe43b9949338ce4e2de086f91713e9af1a06f973872b8",
+ "signature": "c80df75850fea5caa2afe43b9949338ce4e2de086f91713e9af1a06f973872b8",
+ "affectsGlobalScope": true
+ },
+ "../node_modules/typescript/lib/lib.es2020.bigint.d.ts": {
+ "version": "7b5a10e3c897fabece5a51aa85b4111727d7adb53c2734b5d37230ff96802a09",
+ "signature": "7b5a10e3c897fabece5a51aa85b4111727d7adb53c2734b5d37230ff96802a09",
+ "affectsGlobalScope": true
+ },
+ "../node_modules/typescript/lib/lib.esnext.intl.d.ts": {
+ "version": "89bf2b7a601b73ea4311eda9c41f86a58994fec1bee3b87c4a14d68d9adcdcbd",
+ "signature": "89bf2b7a601b73ea4311eda9c41f86a58994fec1bee3b87c4a14d68d9adcdcbd",
+ "affectsGlobalScope": true
+ },
+ "../src/tools/crawl.ts": {
+ "version": "be352c5202d87414be6fb99a6841537ed64d838ebf98fe2ad76c7603fdcfbc98",
+ "signature": "5059ddaf08e8e94b7165b334b7eeacf2011e7a97d3ff28c35eff113dfbd01e8f",
+ "affectsGlobalScope": false
+ },
+ "../src/tools/transformCodebase.ts": {
+ "version": "b5d8a7d3621dd51c1589fb9f9f8acd94799cc99f9f17e2c99ccdc0ebd9ff8378",
+ "signature": "469179a125fe92f2436d23da406494b1a6a58726e8511dd1c57819a837996a71",
+ "affectsGlobalScope": false
+ },
+ "../src/bin/build-keycloak-theme/replaceImportFromStatic.ts": {
+ "version": "435d450422e135e4ff2ad3242a33175f127e4034af3fec5636a298ec36e1d78a",
+ "signature": "4586c183ccb11d75a7cb5525625fd200ed940b0c6208b2f473d20f661ffcebbb",
+ "affectsGlobalScope": false
+ },
+ "../node_modules/domelementtype/lib/index.d.ts": {
+ "version": "d830021c592127d10cf4fe2df16454df77dd180a36a590e0067deb8fbed11b2d",
+ "signature": "d830021c592127d10cf4fe2df16454df77dd180a36a590e0067deb8fbed11b2d",
+ "affectsGlobalScope": false
+ },
+ "../node_modules/domhandler/lib/node.d.ts": {
+ "version": "107d6118ddf590494f2140d4293e512acc837ab545c1c08deb72c2921f4d5e10",
+ "signature": "107d6118ddf590494f2140d4293e512acc837ab545c1c08deb72c2921f4d5e10",
+ "affectsGlobalScope": false
+ },
+ "../node_modules/domhandler/lib/index.d.ts": {
+ "version": "b3b8821ddedf72080a875eb9308bb1c5800606299f49a9b1e4f7c4e6ff20934f",
+ "signature": "b3b8821ddedf72080a875eb9308bb1c5800606299f49a9b1e4f7c4e6ff20934f",
+ "affectsGlobalScope": false
+ },
+ "../node_modules/htmlparser2/lib/Tokenizer.d.ts": {
+ "version": "97477a011d4d9813cea4a10dd0e2f8ffab55e4705d45cd12b88db6a50157e302",
+ "signature": "97477a011d4d9813cea4a10dd0e2f8ffab55e4705d45cd12b88db6a50157e302",
+ "affectsGlobalScope": false
+ },
+ "../node_modules/htmlparser2/lib/Parser.d.ts": {
+ "version": "d341d39f8b1f377b8a8e15a1fb71ddba23a3b44c761a79a7cc3439bf1c4e81cb",
+ "signature": "d341d39f8b1f377b8a8e15a1fb71ddba23a3b44c761a79a7cc3439bf1c4e81cb",
+ "affectsGlobalScope": false
+ },
+ "../node_modules/htmlparser2/lib/FeedHandler.d.ts": {
+ "version": "d97b371df0bb35cf998992854ce00b020d3cdb31fd935496fe1e87dccf202565",
+ "signature": "d97b371df0bb35cf998992854ce00b020d3cdb31fd935496fe1e87dccf202565",
+ "affectsGlobalScope": false
+ },
+ "../node_modules/dom-serializer/lib/index.d.ts": {
+ "version": "fa9a034e2449cfb088c469587cc46ece2a6f28f498ffd3572a53ff0b4bd2a2fe",
+ "signature": "fa9a034e2449cfb088c469587cc46ece2a6f28f498ffd3572a53ff0b4bd2a2fe",
+ "affectsGlobalScope": false
+ },
+ "../node_modules/domutils/lib/stringify.d.ts": {
+ "version": "4d87f2d59f1ed190a7f87255662eeef0f0c36d9b22881a6b1469ac2913f25c7a",
+ "signature": "4d87f2d59f1ed190a7f87255662eeef0f0c36d9b22881a6b1469ac2913f25c7a",
+ "affectsGlobalScope": false
+ },
+ "../node_modules/domutils/lib/traversal.d.ts": {
+ "version": "25e59492c50d22fae6cb56fb3fda12996b239b9305ff64fd598afe577e561057",
+ "signature": "25e59492c50d22fae6cb56fb3fda12996b239b9305ff64fd598afe577e561057",
+ "affectsGlobalScope": false
+ },
+ "../node_modules/domutils/lib/manipulation.d.ts": {
+ "version": "3742d984090f0e11aec15575beb7cf6dab0f138417d22f97ed5fd01d3be18c9e",
+ "signature": "3742d984090f0e11aec15575beb7cf6dab0f138417d22f97ed5fd01d3be18c9e",
+ "affectsGlobalScope": false
+ },
+ "../node_modules/domutils/lib/querying.d.ts": {
+ "version": "679b7e31877ecde1280ce1967d295a8e8122a10ea063e716c3391914d3b1abce",
+ "signature": "679b7e31877ecde1280ce1967d295a8e8122a10ea063e716c3391914d3b1abce",
+ "affectsGlobalScope": false
+ },
+ "../node_modules/domutils/lib/legacy.d.ts": {
+ "version": "62e342f655f6ca3973555de7d85f45b6df00baf82179364095afde20043b0e2c",
+ "signature": "62e342f655f6ca3973555de7d85f45b6df00baf82179364095afde20043b0e2c",
+ "affectsGlobalScope": false
+ },
+ "../node_modules/domutils/lib/helpers.d.ts": {
+ "version": "fc3847b4e7acd3b25e85968dafcbc8dc9869070f9266f6279df16e94eda03170",
+ "signature": "fc3847b4e7acd3b25e85968dafcbc8dc9869070f9266f6279df16e94eda03170",
+ "affectsGlobalScope": false
+ },
+ "../node_modules/domutils/lib/tagtypes.d.ts": {
+ "version": "e963d7df9d1ae068384baff5ab46c64c9b0ad49c9849e06fdbc1db437880c135",
+ "signature": "e963d7df9d1ae068384baff5ab46c64c9b0ad49c9849e06fdbc1db437880c135",
+ "affectsGlobalScope": false
+ },
+ "../node_modules/domutils/lib/index.d.ts": {
+ "version": "291b665413ae6943bb539f7268b62c8fd71929a654441e2bd02a55172e747764",
+ "signature": "291b665413ae6943bb539f7268b62c8fd71929a654441e2bd02a55172e747764",
+ "affectsGlobalScope": false
+ },
+ "../node_modules/htmlparser2/lib/index.d.ts": {
+ "version": "bcf45cceed56bfc1679d68b1221534b997127f5b874087613e5d5e9592f402da",
+ "signature": "bcf45cceed56bfc1679d68b1221534b997127f5b874087613e5d5e9592f402da",
+ "affectsGlobalScope": false
+ },
+ "../node_modules/cheerio/types/index.d.ts": {
+ "version": "c3a2f14af88ebca3c9e0445aa8c14d1cf6fcebfdadf54a46e26c46959e368119",
+ "signature": "c3a2f14af88ebca3c9e0445aa8c14d1cf6fcebfdadf54a46e26c46959e368119",
+ "affectsGlobalScope": false
+ },
+ "../src/bin/build-keycloak-theme/generateFtl.ts": {
+ "version": "9b6401a245a32e2968648cf5e48595a0a4e1d12237bf8aadf2da6336304ad8c8",
+ "signature": "3a11af9abe294b90f19598d16e9d081f5452cdb668939e63abdd6a4d90955279",
+ "affectsGlobalScope": false
+ },
+ "../src/bin/build-keycloak-theme/generateKeycloakThemeResources.ts": {
+ "version": "fa036a62fb59eb4f9c98070852ba0de9789bacdc38c049a015649439edd74edc",
+ "signature": "91ea17958f25db390b27717b63af5395e85d44a75b1fcaf57ff05c0a46dcacae",
+ "affectsGlobalScope": false
+ },
+ "../src/bin/build-keycloak-theme/generateJavaStackFiles.ts": {
+ "version": "9ce7db79f73f7e02e5c50134e826f9fe4c7a48c6d248ad0d500196d3606f1321",
+ "signature": "557c16c024b7430c3da3f19a980eca355acaa8275713ad3bc3fd91329248b921",
+ "affectsGlobalScope": false
+ },
+ "../src/bin/build-keycloak-theme/generateDebugFiles/index.ts": {
+ "version": "4411f80c0fb04b749da03ee2e605b6ab45780654682ebdcbb4c1adbd36385340",
+ "signature": "a32872c9b926d7fd1fd2ed3aca63380a6c333c9ea05f1f84fd0248cd637f2553",
+ "affectsGlobalScope": false
+ },
+ "../src/bin/build-keycloak-theme/index.ts": {
+ "version": "324a1c0c8c3cfa50dbc213fa4f2650551a3e5537e53635b8d4225acad9c83dc3",
+ "signature": "cc0e708e12dd472472902f20c879f10b9352d52e6823ac341bc0941ef15b9618",
+ "affectsGlobalScope": false
+ },
+ "../src/bin/download-sample-keycloak-themes.ts": {
+ "version": "9d8f3dc2b3ca71deb6879f01ea7024382fcc7d28f0999f3924fa2105936611af",
+ "signature": "43e818adf60173644896298637f47b01d5819b17eda46eaa32d0c7d64724d012",
+ "affectsGlobalScope": false
+ },
+ "../node_modules/evt/tools/typeSafety/id.d.ts": {
+ "version": "9b4cbbc5d76a0e78a053503ed153a83f48799f1519e3aef593cb0987700704b8",
+ "signature": "9b4cbbc5d76a0e78a053503ed153a83f48799f1519e3aef593cb0987700704b8",
+ "affectsGlobalScope": false
+ },
+ "../src/lib/keycloakFtlValues.ts": {
+ "version": "8855aa745f2916ae3bc7161b4ef9784c21f595070e177e2a201a5d8ffc672a64",
+ "signature": "47f69685f9207ddeb9e876a0b9545efbd8a73a6b3b123c9b685165bde9d408df",
+ "affectsGlobalScope": false
+ },
+ "../src/lib/index.ts": {
+ "version": "982f8546cf41fe3912d92c4b9f338c57b55bebe8dacd5002bb11449d1a273ed5",
+ "signature": "988e58c5be2a660857f23895090b1b6cafe4fe6d36ce4f9e74754ac6d8bfd787",
+ "affectsGlobalScope": false
+ },
+ "../node_modules/@types/node/globals.d.ts": {
+ "version": "829fcfff513ac68aae602034a6e0d2e30a2f4fa32881157ba6a3002bc949f685",
+ "signature": "829fcfff513ac68aae602034a6e0d2e30a2f4fa32881157ba6a3002bc949f685",
+ "affectsGlobalScope": true
+ },
+ "../node_modules/@types/node/async_hooks.d.ts": {
+ "version": "138476cfdccbb9e2c7e06602bc216af843a56c4f3469a79106bc660ba94bd66a",
+ "signature": "138476cfdccbb9e2c7e06602bc216af843a56c4f3469a79106bc660ba94bd66a",
+ "affectsGlobalScope": false
+ },
+ "../node_modules/@types/node/buffer.d.ts": {
+ "version": "fe892fea1e75a442fffb4a604d7eeb451e858787a9f2f01c4e83bf12a3b5048d",
+ "signature": "fe892fea1e75a442fffb4a604d7eeb451e858787a9f2f01c4e83bf12a3b5048d",
+ "affectsGlobalScope": false
+ },
+ "../node_modules/@types/node/child_process.d.ts": {
+ "version": "d5c80b931928fbd06f967ce4bdca24fbb37523773ac2c7c87458a689154351fb",
+ "signature": "d5c80b931928fbd06f967ce4bdca24fbb37523773ac2c7c87458a689154351fb",
+ "affectsGlobalScope": false
+ },
+ "../node_modules/@types/node/cluster.d.ts": {
+ "version": "fcd718b2feb2820a9844536a1a2fbc77a3da90820e02894d40f879a789f46560",
+ "signature": "fcd718b2feb2820a9844536a1a2fbc77a3da90820e02894d40f879a789f46560",
+ "affectsGlobalScope": false
+ },
+ "../node_modules/@types/node/console.d.ts": {
+ "version": "525c8fc510d9632d2a0a9de2d41c3ac1cdd79ff44d3b45c6d81cacabb683528d",
+ "signature": "525c8fc510d9632d2a0a9de2d41c3ac1cdd79ff44d3b45c6d81cacabb683528d",
+ "affectsGlobalScope": false
+ },
+ "../node_modules/@types/node/constants.d.ts": {
+ "version": "ece75b9bfc916f9ccc4e8a9ddee1dda5c987804fbe3b60a01fc120fae731c2ce",
+ "signature": "ece75b9bfc916f9ccc4e8a9ddee1dda5c987804fbe3b60a01fc120fae731c2ce",
+ "affectsGlobalScope": false
+ },
+ "../node_modules/@types/node/crypto.d.ts": {
+ "version": "4e146a0b69c893ae1538aff8b76f4e8796755bdd45050a83099348d59863437e",
+ "signature": "4e146a0b69c893ae1538aff8b76f4e8796755bdd45050a83099348d59863437e",
+ "affectsGlobalScope": false
+ },
+ "../node_modules/@types/node/dgram.d.ts": {
+ "version": "a1dc9cfe8be39cbcef62692510b450ab35553ef39382715c88763d0c477704a9",
+ "signature": "a1dc9cfe8be39cbcef62692510b450ab35553ef39382715c88763d0c477704a9",
+ "affectsGlobalScope": false
+ },
+ "../node_modules/@types/node/dns.d.ts": {
+ "version": "05e732266b5a36789fd9eb846b1f45fec1b6e318b740e3f20fc22fd95f9ebf31",
+ "signature": "05e732266b5a36789fd9eb846b1f45fec1b6e318b740e3f20fc22fd95f9ebf31",
+ "affectsGlobalScope": false
+ },
+ "../node_modules/@types/node/domain.d.ts": {
+ "version": "985c3d1b62a4a4f563e3ca3e3a47717cff7d82c81883d62ecf08d8417eb477c4",
+ "signature": "985c3d1b62a4a4f563e3ca3e3a47717cff7d82c81883d62ecf08d8417eb477c4",
+ "affectsGlobalScope": false
+ },
+ "../node_modules/@types/node/events.d.ts": {
+ "version": "8059976d7f408e08be353de1833172139bbaa70fc33d01b98249f7226c122119",
+ "signature": "8059976d7f408e08be353de1833172139bbaa70fc33d01b98249f7226c122119",
+ "affectsGlobalScope": false
+ },
+ "../node_modules/@types/node/fs.d.ts": {
+ "version": "1733741cf2adc5926ac58c66004268cdc3d34b2ff6250f5114db14253ea02ce1",
+ "signature": "1733741cf2adc5926ac58c66004268cdc3d34b2ff6250f5114db14253ea02ce1",
+ "affectsGlobalScope": false
+ },
+ "../node_modules/@types/node/http.d.ts": {
+ "version": "40a80f579e92750f3e695b44a704f8d44d331a67d77623f2e57914da1369d68e",
+ "signature": "40a80f579e92750f3e695b44a704f8d44d331a67d77623f2e57914da1369d68e",
+ "affectsGlobalScope": false
+ },
+ "../node_modules/@types/node/http2.d.ts": {
+ "version": "b6b09f944889a23f19eba6e0f112030e55160c5e1a225012ab2349c582ba5595",
+ "signature": "b6b09f944889a23f19eba6e0f112030e55160c5e1a225012ab2349c582ba5595",
+ "affectsGlobalScope": false
+ },
+ "../node_modules/@types/node/https.d.ts": {
+ "version": "152af7c23ec219f632afa2d861abc65993f56cd39a4f3a4018515dbc05950a74",
+ "signature": "152af7c23ec219f632afa2d861abc65993f56cd39a4f3a4018515dbc05950a74",
+ "affectsGlobalScope": false
+ },
+ "../node_modules/@types/node/inspector.d.ts": {
+ "version": "3a0bdc4c5b6f84a1abb5356d7a7fa1f96ac6c5b5646eec3ef2b33c1ed095e155",
+ "signature": "3a0bdc4c5b6f84a1abb5356d7a7fa1f96ac6c5b5646eec3ef2b33c1ed095e155",
+ "affectsGlobalScope": false
+ },
+ "../node_modules/@types/node/module.d.ts": {
+ "version": "03394bf8deb8781b490ae9266a843fbdf00647947d79e25fcbf1d89a9e9c8a66",
+ "signature": "03394bf8deb8781b490ae9266a843fbdf00647947d79e25fcbf1d89a9e9c8a66",
+ "affectsGlobalScope": false
+ },
+ "../node_modules/@types/node/net.d.ts": {
+ "version": "56a15cc211894d79aa44cbb46c276bfd3f10458a61bff2dec99114db8a7e71e3",
+ "signature": "56a15cc211894d79aa44cbb46c276bfd3f10458a61bff2dec99114db8a7e71e3",
+ "affectsGlobalScope": false
+ },
+ "../node_modules/@types/node/os.d.ts": {
+ "version": "1a5366b0d4d0153955fd85777c72d35979dabc0537649da6eade09007c0d080a",
+ "signature": "1a5366b0d4d0153955fd85777c72d35979dabc0537649da6eade09007c0d080a",
+ "affectsGlobalScope": false
+ },
+ "../node_modules/@types/node/path.d.ts": {
+ "version": "61c84c3b0eb6e60196d15ae5e21793a1d4241c547f0bdd0529ffae838d1a073c",
+ "signature": "61c84c3b0eb6e60196d15ae5e21793a1d4241c547f0bdd0529ffae838d1a073c",
+ "affectsGlobalScope": false
+ },
+ "../node_modules/@types/node/perf_hooks.d.ts": {
+ "version": "272522db288a7e03f14ff930407b776357082efce20369ea42239a57af9c7f81",
+ "signature": "272522db288a7e03f14ff930407b776357082efce20369ea42239a57af9c7f81",
+ "affectsGlobalScope": false
+ },
+ "../node_modules/@types/node/process.d.ts": {
+ "version": "3a8848a9c307429b861402cc69bc472ffe0c05b86474fc158723169161e16389",
+ "signature": "3a8848a9c307429b861402cc69bc472ffe0c05b86474fc158723169161e16389",
+ "affectsGlobalScope": false
+ },
+ "../node_modules/@types/node/punycode.d.ts": {
+ "version": "3f6a1fd73c9dc3bd7f4b79bc075297ca6527904df69b0f2c2c94e4c4c7d9a32c",
+ "signature": "3f6a1fd73c9dc3bd7f4b79bc075297ca6527904df69b0f2c2c94e4c4c7d9a32c",
+ "affectsGlobalScope": false
+ },
+ "../node_modules/@types/node/querystring.d.ts": {
+ "version": "8969e0b4d22ca77ad011c8fc4a25ec5d515bdfae4ecbd22608ed0d5c38829c1e",
+ "signature": "8969e0b4d22ca77ad011c8fc4a25ec5d515bdfae4ecbd22608ed0d5c38829c1e",
+ "affectsGlobalScope": false
+ },
+ "../node_modules/@types/node/readline.d.ts": {
+ "version": "81ef2751228318b1c7c6b35ccae2ea39ef275add30319e746bfd4658208a0519",
+ "signature": "81ef2751228318b1c7c6b35ccae2ea39ef275add30319e746bfd4658208a0519",
+ "affectsGlobalScope": false
+ },
+ "../node_modules/@types/node/repl.d.ts": {
+ "version": "0811662f95fabfc05b8f1cefcc46b351092cfc7d2a3e849475c51e2578c5c485",
+ "signature": "0811662f95fabfc05b8f1cefcc46b351092cfc7d2a3e849475c51e2578c5c485",
+ "affectsGlobalScope": false
+ },
+ "../node_modules/@types/node/stream.d.ts": {
+ "version": "8e2f9031210a8fc27af8844bf69f964307d6013c90336bea9fb5d6ba43248c78",
+ "signature": "8e2f9031210a8fc27af8844bf69f964307d6013c90336bea9fb5d6ba43248c78",
+ "affectsGlobalScope": false
+ },
+ "../node_modules/@types/node/string_decoder.d.ts": {
+ "version": "17e157df6125098a1a34eb4d201ee4ac03bbe97e471ab5627bb2c40fce555948",
+ "signature": "17e157df6125098a1a34eb4d201ee4ac03bbe97e471ab5627bb2c40fce555948",
+ "affectsGlobalScope": false
+ },
+ "../node_modules/@types/node/timers.d.ts": {
+ "version": "b40652bf8ce4a18133b31349086523b219724dca8df3448c1a0742528e7ad5b9",
+ "signature": "b40652bf8ce4a18133b31349086523b219724dca8df3448c1a0742528e7ad5b9",
+ "affectsGlobalScope": false
+ },
+ "../node_modules/@types/node/tls.d.ts": {
+ "version": "4bdb7b15b3f9a3ee0b856c7b991d0e522f8ce92f7b66ae8ac00e61d1269dd10a",
+ "signature": "4bdb7b15b3f9a3ee0b856c7b991d0e522f8ce92f7b66ae8ac00e61d1269dd10a",
+ "affectsGlobalScope": false
+ },
+ "../node_modules/@types/node/trace_events.d.ts": {
+ "version": "978aecd2e6bc2ac094e9a35eda98ff8586713857b3655e7c98ca5ed8f7d50662",
+ "signature": "978aecd2e6bc2ac094e9a35eda98ff8586713857b3655e7c98ca5ed8f7d50662",
+ "affectsGlobalScope": false
+ },
+ "../node_modules/@types/node/tty.d.ts": {
+ "version": "a185b8e0d7a4ae078a79339d63e98177813aac39256f69f788eaf5c360aa756f",
+ "signature": "a185b8e0d7a4ae078a79339d63e98177813aac39256f69f788eaf5c360aa756f",
+ "affectsGlobalScope": false
+ },
+ "../node_modules/@types/node/url.d.ts": {
+ "version": "c6b71a0585467900820167370738cfc256e9635471725a7ba1d24a3a262984e5",
+ "signature": "c6b71a0585467900820167370738cfc256e9635471725a7ba1d24a3a262984e5",
+ "affectsGlobalScope": false
+ },
+ "../node_modules/@types/node/util.d.ts": {
+ "version": "8bf10278b5c28698a73f800fde911bcc33d405a15f7bddab1c4ade637b69a822",
+ "signature": "8bf10278b5c28698a73f800fde911bcc33d405a15f7bddab1c4ade637b69a822",
+ "affectsGlobalScope": false
+ },
+ "../node_modules/@types/node/v8.d.ts": {
+ "version": "e880a08fbb0d9ee2f733f9183f4d1bdb75bc9e0e64060a8a1fc30540791fcded",
+ "signature": "e880a08fbb0d9ee2f733f9183f4d1bdb75bc9e0e64060a8a1fc30540791fcded",
+ "affectsGlobalScope": false
+ },
+ "../node_modules/@types/node/vm.d.ts": {
+ "version": "3cb4cbade80dde6e045b01d34582625ea45fc2f1080085ef671cefbc9c75625d",
+ "signature": "3cb4cbade80dde6e045b01d34582625ea45fc2f1080085ef671cefbc9c75625d",
+ "affectsGlobalScope": false
+ },
+ "../node_modules/@types/node/worker_threads.d.ts": {
+ "version": "69fc4a10650eff3416ba5c2f7ce71744734928a7135ebe5a63c61d2d03ca3ec3",
+ "signature": "69fc4a10650eff3416ba5c2f7ce71744734928a7135ebe5a63c61d2d03ca3ec3",
+ "affectsGlobalScope": false
+ },
+ "../node_modules/@types/node/zlib.d.ts": {
+ "version": "13918848c4e07d1094164112bd7fd151d61cbb949ceef340a2a4595cd609afb6",
+ "signature": "13918848c4e07d1094164112bd7fd151d61cbb949ceef340a2a4595cd609afb6",
+ "affectsGlobalScope": false
+ },
+ "../node_modules/@types/node/ts3.6/base.d.ts": {
+ "version": "9af6a9de7bd818e68c4236f20027ff4b19387c2269a6952945d1a716c177cc4d",
+ "signature": "9af6a9de7bd818e68c4236f20027ff4b19387c2269a6952945d1a716c177cc4d",
+ "affectsGlobalScope": false
+ },
+ "../node_modules/@types/node/assert.d.ts": {
+ "version": "3497438242251378cf232f36a7fabac70e7bd8229d68dac8955534e63ffc8ff4",
+ "signature": "3497438242251378cf232f36a7fabac70e7bd8229d68dac8955534e63ffc8ff4",
+ "affectsGlobalScope": false
+ },
+ "../node_modules/@types/node/base.d.ts": {
+ "version": "e61a21e9418f279bc480394a94d1581b2dee73747adcbdef999b6737e34d721b",
+ "signature": "e61a21e9418f279bc480394a94d1581b2dee73747adcbdef999b6737e34d721b",
+ "affectsGlobalScope": false
+ },
+ "../node_modules/@types/node/index.d.ts": {
+ "version": "f6f04f1c31ff0314a67d7911e49a60e76cd5fc4e50c6374e506cb85916fadec9",
+ "signature": "f6f04f1c31ff0314a67d7911e49a60e76cd5fc4e50c6374e506cb85916fadec9",
+ "affectsGlobalScope": false
+ },
+ "../node_modules/scripting-tools/dist/lib/get_caller_file_path.d.ts": {
+ "version": "e64648c5d646fde7e056578ade957887b730713df1723afdfb40a4ddcf235f8c",
+ "signature": "e64648c5d646fde7e056578ade957887b730713df1723afdfb40a4ddcf235f8c",
+ "affectsGlobalScope": false
+ },
+ "../node_modules/scripting-tools/dist/lib/index.d.ts": {
+ "version": "dc50fd008223d44fc750cff976056781a0844c58a581ae48fac5f3793c5ca4e5",
+ "signature": "dc50fd008223d44fc750cff976056781a0844c58a581ae48fac5f3793c5ca4e5",
+ "affectsGlobalScope": false
+ },
+ "../src/test/setupSampleReactProject.ts": {
+ "version": "5d592efc3bfbae69466fab8beb461761dd9e7c903929fcfaac193db047481e3c",
+ "signature": "2c0ddcdfefa535987300f17ab4be6b93e9dcc2583a80136eebb34671ff7cac00",
+ "affectsGlobalScope": false
+ },
+ "../src/test/build-keycloak-theme.ts": {
+ "version": "42f3866a8b954b6f15f9e63132a0554b5e9b12068c024c9f4250d48efe9a59f5",
+ "signature": "8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881",
+ "affectsGlobalScope": false
+ },
+ "../src/test/download-sample-keycloak-themes.ts": {
+ "version": "4bed46433028ade014a5ba87805452fcc3488f88bc78bde988e64d286b02aeec",
+ "signature": "8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881",
+ "affectsGlobalScope": false
+ },
+ "../src/test/generateKeycloakThemeResources.ts": {
+ "version": "d6d7ad4c5158ffddb31c072d016c4a8d5925359c787548ffab0fd3adf6f58f2b",
+ "signature": "8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881",
+ "affectsGlobalScope": false
+ },
+ "../src/test/replaceImportFromStatic.ts": {
+ "version": "ba4b596f51cb40af66e4a26b4146fd61fb6498097b5ae8a8a47691d82e62f765",
+ "signature": "8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881",
+ "affectsGlobalScope": false
+ },
+ "../node_modules/@types/comment-json/index.d.ts": {
+ "version": "c401118ea6c6daa9f196013b0622c602d4faec565bb1cc6ca751d2a8fc295498",
+ "signature": "c401118ea6c6daa9f196013b0622c602d4faec565bb1cc6ca751d2a8fc295498",
+ "affectsGlobalScope": false
+ }
+ },
+ "options": {
+ "module": 1,
+ "target": 1,
+ "lib": [
+ "lib.es2015.d.ts",
+ "lib.dom.d.ts"
+ ],
+ "esModuleInterop": true,
+ "declaration": true,
+ "outDir": "./",
+ "sourceMap": true,
+ "newLine": 1,
+ "noUnusedLocals": true,
+ "noUnusedParameters": true,
+ "incremental": true,
+ "strict": true,
+ "downlevelIteration": true,
+ "jsx": 4,
+ "noFallthroughCasesInSwitch": true,
+ "configFilePath": "../tsconfig.json"
+ },
+ "referencedMap": {
+ "../node_modules/@types/node/base.d.ts": [
+ "../node_modules/@types/node/assert.d.ts",
+ "../node_modules/@types/node/ts3.6/base.d.ts"
+ ],
+ "../node_modules/@types/node/child_process.d.ts": [
+ "../node_modules/@types/node/events.d.ts",
+ "../node_modules/@types/node/net.d.ts",
+ "../node_modules/@types/node/stream.d.ts"
+ ],
+ "../node_modules/@types/node/cluster.d.ts": [
+ "../node_modules/@types/node/child_process.d.ts",
+ "../node_modules/@types/node/events.d.ts",
+ "../node_modules/@types/node/net.d.ts"
+ ],
+ "../node_modules/@types/node/crypto.d.ts": [
+ "../node_modules/@types/node/stream.d.ts"
+ ],
+ "../node_modules/@types/node/dgram.d.ts": [
+ "../node_modules/@types/node/dns.d.ts",
+ "../node_modules/@types/node/events.d.ts",
+ "../node_modules/@types/node/net.d.ts"
+ ],
+ "../node_modules/@types/node/domain.d.ts": [
+ "../node_modules/@types/node/events.d.ts"
+ ],
+ "../node_modules/@types/node/events.d.ts": [
+ "../node_modules/@types/node/events.d.ts"
+ ],
+ "../node_modules/@types/node/fs.d.ts": [
+ "../node_modules/@types/node/events.d.ts",
+ "../node_modules/@types/node/stream.d.ts",
+ "../node_modules/@types/node/url.d.ts"
+ ],
+ "../node_modules/@types/node/http.d.ts": [
+ "../node_modules/@types/node/events.d.ts",
+ "../node_modules/@types/node/net.d.ts",
+ "../node_modules/@types/node/stream.d.ts",
+ "../node_modules/@types/node/url.d.ts"
+ ],
+ "../node_modules/@types/node/http2.d.ts": [
+ "../node_modules/@types/node/events.d.ts",
+ "../node_modules/@types/node/fs.d.ts",
+ "../node_modules/@types/node/http.d.ts",
+ "../node_modules/@types/node/net.d.ts",
+ "../node_modules/@types/node/stream.d.ts",
+ "../node_modules/@types/node/tls.d.ts",
+ "../node_modules/@types/node/url.d.ts"
+ ],
+ "../node_modules/@types/node/https.d.ts": [
+ "../node_modules/@types/node/events.d.ts",
+ "../node_modules/@types/node/http.d.ts",
+ "../node_modules/@types/node/tls.d.ts",
+ "../node_modules/@types/node/url.d.ts"
+ ],
+ "../node_modules/@types/node/index.d.ts": [
+ "../node_modules/@types/node/base.d.ts",
+ "../node_modules/@types/node/ts3.6/base.d.ts"
+ ],
+ "../node_modules/@types/node/inspector.d.ts": [
+ "../node_modules/@types/node/events.d.ts"
+ ],
+ "../node_modules/@types/node/net.d.ts": [
+ "../node_modules/@types/node/dns.d.ts",
+ "../node_modules/@types/node/events.d.ts",
+ "../node_modules/@types/node/stream.d.ts"
+ ],
+ "../node_modules/@types/node/perf_hooks.d.ts": [
+ "../node_modules/@types/node/async_hooks.d.ts"
+ ],
+ "../node_modules/@types/node/readline.d.ts": [
+ "../node_modules/@types/node/events.d.ts",
+ "../node_modules/@types/node/stream.d.ts"
+ ],
+ "../node_modules/@types/node/repl.d.ts": [
+ "../node_modules/@types/node/readline.d.ts",
+ "../node_modules/@types/node/util.d.ts",
+ "../node_modules/@types/node/vm.d.ts"
+ ],
+ "../node_modules/@types/node/stream.d.ts": [
+ "../node_modules/@types/node/events.d.ts"
+ ],
+ "../node_modules/@types/node/tls.d.ts": [
+ "../node_modules/@types/node/crypto.d.ts",
+ "../node_modules/@types/node/dns.d.ts",
+ "../node_modules/@types/node/net.d.ts",
+ "../node_modules/@types/node/stream.d.ts"
+ ],
+ "../node_modules/@types/node/ts3.6/base.d.ts": [
+ "../node_modules/@types/node/async_hooks.d.ts",
+ "../node_modules/@types/node/buffer.d.ts",
+ "../node_modules/@types/node/child_process.d.ts",
+ "../node_modules/@types/node/cluster.d.ts",
+ "../node_modules/@types/node/console.d.ts",
+ "../node_modules/@types/node/constants.d.ts",
+ "../node_modules/@types/node/crypto.d.ts",
+ "../node_modules/@types/node/dgram.d.ts",
+ "../node_modules/@types/node/dns.d.ts",
+ "../node_modules/@types/node/domain.d.ts",
+ "../node_modules/@types/node/events.d.ts",
+ "../node_modules/@types/node/fs.d.ts",
+ "../node_modules/@types/node/globals.d.ts",
+ "../node_modules/@types/node/http.d.ts",
+ "../node_modules/@types/node/http2.d.ts",
+ "../node_modules/@types/node/https.d.ts",
+ "../node_modules/@types/node/inspector.d.ts",
+ "../node_modules/@types/node/module.d.ts",
+ "../node_modules/@types/node/net.d.ts",
+ "../node_modules/@types/node/os.d.ts",
+ "../node_modules/@types/node/path.d.ts",
+ "../node_modules/@types/node/perf_hooks.d.ts",
+ "../node_modules/@types/node/process.d.ts",
+ "../node_modules/@types/node/punycode.d.ts",
+ "../node_modules/@types/node/querystring.d.ts",
+ "../node_modules/@types/node/readline.d.ts",
+ "../node_modules/@types/node/repl.d.ts",
+ "../node_modules/@types/node/stream.d.ts",
+ "../node_modules/@types/node/string_decoder.d.ts",
+ "../node_modules/@types/node/timers.d.ts",
+ "../node_modules/@types/node/tls.d.ts",
+ "../node_modules/@types/node/trace_events.d.ts",
+ "../node_modules/@types/node/tty.d.ts",
+ "../node_modules/@types/node/url.d.ts",
+ "../node_modules/@types/node/util.d.ts",
+ "../node_modules/@types/node/v8.d.ts",
+ "../node_modules/@types/node/vm.d.ts",
+ "../node_modules/@types/node/worker_threads.d.ts",
+ "../node_modules/@types/node/zlib.d.ts"
+ ],
+ "../node_modules/@types/node/tty.d.ts": [
+ "../node_modules/@types/node/net.d.ts"
+ ],
+ "../node_modules/@types/node/url.d.ts": [
+ "../node_modules/@types/node/querystring.d.ts"
+ ],
+ "../node_modules/@types/node/worker_threads.d.ts": [
+ "../node_modules/@types/node/events.d.ts",
+ "../node_modules/@types/node/stream.d.ts"
+ ],
+ "../node_modules/@types/node/zlib.d.ts": [
+ "../node_modules/@types/node/stream.d.ts"
+ ],
+ "../node_modules/cheerio/types/index.d.ts": [
+ "../node_modules/domhandler/lib/index.d.ts",
+ "../node_modules/htmlparser2/lib/index.d.ts"
+ ],
+ "../node_modules/dom-serializer/lib/index.d.ts": [
+ "../node_modules/domhandler/lib/index.d.ts"
+ ],
+ "../node_modules/domhandler/lib/index.d.ts": [
+ "../node_modules/domhandler/lib/node.d.ts"
+ ],
+ "../node_modules/domhandler/lib/node.d.ts": [
+ "../node_modules/domelementtype/lib/index.d.ts"
+ ],
+ "../node_modules/domutils/lib/helpers.d.ts": [
+ "../node_modules/domhandler/lib/index.d.ts"
+ ],
+ "../node_modules/domutils/lib/index.d.ts": [
+ "../node_modules/domutils/lib/helpers.d.ts",
+ "../node_modules/domutils/lib/legacy.d.ts",
+ "../node_modules/domutils/lib/manipulation.d.ts",
+ "../node_modules/domutils/lib/querying.d.ts",
+ "../node_modules/domutils/lib/stringify.d.ts",
+ "../node_modules/domutils/lib/tagtypes.d.ts",
+ "../node_modules/domutils/lib/traversal.d.ts"
+ ],
+ "../node_modules/domutils/lib/legacy.d.ts": [
+ "../node_modules/domelementtype/lib/index.d.ts",
+ "../node_modules/domhandler/lib/index.d.ts"
+ ],
+ "../node_modules/domutils/lib/manipulation.d.ts": [
+ "../node_modules/domhandler/lib/index.d.ts"
+ ],
+ "../node_modules/domutils/lib/querying.d.ts": [
+ "../node_modules/domhandler/lib/index.d.ts"
+ ],
+ "../node_modules/domutils/lib/stringify.d.ts": [
+ "../node_modules/dom-serializer/lib/index.d.ts",
+ "../node_modules/domhandler/lib/index.d.ts"
+ ],
+ "../node_modules/domutils/lib/tagtypes.d.ts": [
+ "../node_modules/domhandler/lib/index.d.ts"
+ ],
+ "../node_modules/domutils/lib/traversal.d.ts": [
+ "../node_modules/domhandler/lib/index.d.ts"
+ ],
+ "../node_modules/htmlparser2/lib/FeedHandler.d.ts": [
+ "../node_modules/domhandler/lib/index.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/index.d.ts": [
+ "../node_modules/domelementtype/lib/index.d.ts",
+ "../node_modules/domhandler/lib/index.d.ts",
+ "../node_modules/domutils/lib/index.d.ts",
+ "../node_modules/htmlparser2/lib/FeedHandler.d.ts",
+ "../node_modules/htmlparser2/lib/Parser.d.ts",
+ "../node_modules/htmlparser2/lib/Tokenizer.d.ts"
+ ],
+ "../node_modules/scripting-tools/dist/lib/index.d.ts": [
+ "../node_modules/@types/node/child_process.d.ts",
+ "../node_modules/@types/node/index.d.ts",
+ "../node_modules/scripting-tools/dist/lib/get_caller_file_path.d.ts"
+ ],
+ "../src/bin/build-keycloak-theme/generateDebugFiles/index.ts": [
+ "../node_modules/@types/node/fs.d.ts",
+ "../node_modules/@types/node/path.d.ts"
+ ],
+ "../src/bin/build-keycloak-theme/generateFtl.ts": [
+ "../node_modules/cheerio/types/index.d.ts",
+ "../src/bin/build-keycloak-theme/replaceImportFromStatic.ts"
+ ],
+ "../src/bin/build-keycloak-theme/generateJavaStackFiles.ts": [
+ "../node_modules/@types/node/fs.d.ts",
+ "../node_modules/@types/node/path.d.ts",
+ "../node_modules/@types/node/url.d.ts"
+ ],
+ "../src/bin/build-keycloak-theme/generateKeycloakThemeResources.ts": [
+ "../node_modules/@types/node/fs.d.ts",
+ "../node_modules/@types/node/path.d.ts",
+ "../src/bin/build-keycloak-theme/generateFtl.ts",
+ "../src/bin/build-keycloak-theme/replaceImportFromStatic.ts",
+ "../src/tools/transformCodebase.ts"
+ ],
+ "../src/bin/build-keycloak-theme/index.ts": [
+ "../node_modules/@types/node/child_process.d.ts",
+ "../node_modules/@types/node/path.d.ts",
+ "../src/bin/build-keycloak-theme/generateDebugFiles/index.ts",
+ "../src/bin/build-keycloak-theme/generateJavaStackFiles.ts",
+ "../src/bin/build-keycloak-theme/generateKeycloakThemeResources.ts"
+ ],
+ "../src/bin/build-keycloak-theme/replaceImportFromStatic.ts": [
+ "../node_modules/@types/node/crypto.d.ts"
+ ],
+ "../src/bin/download-sample-keycloak-themes.ts": [
+ "../node_modules/@types/node/child_process.d.ts",
+ "../node_modules/@types/node/fs.d.ts",
+ "../node_modules/@types/node/path.d.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": [
+ "../node_modules/@types/node/path.d.ts",
+ "../node_modules/scripting-tools/dist/lib/index.d.ts",
+ "../src/test/setupSampleReactProject.ts"
+ ],
+ "../src/test/download-sample-keycloak-themes.ts": [
+ "../node_modules/@types/node/path.d.ts",
+ "../node_modules/scripting-tools/dist/lib/index.d.ts",
+ "../src/test/setupSampleReactProject.ts"
+ ],
+ "../src/test/generateKeycloakThemeResources.ts": [
+ "../node_modules/@types/node/path.d.ts",
+ "../src/bin/build-keycloak-theme/generateKeycloakThemeResources.ts",
+ "../src/test/setupSampleReactProject.ts"
+ ],
+ "../src/test/replaceImportFromStatic.ts": [
+ "../src/bin/build-keycloak-theme/replaceImportFromStatic.ts"
+ ],
+ "../src/test/setupSampleReactProject.ts": [
+ "../node_modules/@types/node/path.d.ts",
+ "../node_modules/scripting-tools/dist/lib/index.d.ts"
+ ],
+ "../src/tools/crawl.ts": [
+ "../node_modules/@types/node/fs.d.ts",
+ "../node_modules/@types/node/path.d.ts"
+ ],
+ "../src/tools/transformCodebase.ts": [
+ "../node_modules/@types/node/fs.d.ts",
+ "../node_modules/@types/node/path.d.ts",
+ "../src/tools/crawl.ts"
+ ]
+ },
+ "exportedModulesMap": {
+ "../node_modules/@types/node/base.d.ts": [
+ "../node_modules/@types/node/assert.d.ts",
+ "../node_modules/@types/node/ts3.6/base.d.ts"
+ ],
+ "../node_modules/@types/node/child_process.d.ts": [
+ "../node_modules/@types/node/events.d.ts",
+ "../node_modules/@types/node/net.d.ts",
+ "../node_modules/@types/node/stream.d.ts"
+ ],
+ "../node_modules/@types/node/cluster.d.ts": [
+ "../node_modules/@types/node/child_process.d.ts",
+ "../node_modules/@types/node/events.d.ts",
+ "../node_modules/@types/node/net.d.ts"
+ ],
+ "../node_modules/@types/node/crypto.d.ts": [
+ "../node_modules/@types/node/stream.d.ts"
+ ],
+ "../node_modules/@types/node/dgram.d.ts": [
+ "../node_modules/@types/node/dns.d.ts",
+ "../node_modules/@types/node/events.d.ts",
+ "../node_modules/@types/node/net.d.ts"
+ ],
+ "../node_modules/@types/node/domain.d.ts": [
+ "../node_modules/@types/node/events.d.ts"
+ ],
+ "../node_modules/@types/node/events.d.ts": [
+ "../node_modules/@types/node/events.d.ts"
+ ],
+ "../node_modules/@types/node/fs.d.ts": [
+ "../node_modules/@types/node/events.d.ts",
+ "../node_modules/@types/node/stream.d.ts",
+ "../node_modules/@types/node/url.d.ts"
+ ],
+ "../node_modules/@types/node/http.d.ts": [
+ "../node_modules/@types/node/events.d.ts",
+ "../node_modules/@types/node/net.d.ts",
+ "../node_modules/@types/node/stream.d.ts",
+ "../node_modules/@types/node/url.d.ts"
+ ],
+ "../node_modules/@types/node/http2.d.ts": [
+ "../node_modules/@types/node/events.d.ts",
+ "../node_modules/@types/node/fs.d.ts",
+ "../node_modules/@types/node/http.d.ts",
+ "../node_modules/@types/node/net.d.ts",
+ "../node_modules/@types/node/stream.d.ts",
+ "../node_modules/@types/node/tls.d.ts",
+ "../node_modules/@types/node/url.d.ts"
+ ],
+ "../node_modules/@types/node/https.d.ts": [
+ "../node_modules/@types/node/events.d.ts",
+ "../node_modules/@types/node/http.d.ts",
+ "../node_modules/@types/node/tls.d.ts",
+ "../node_modules/@types/node/url.d.ts"
+ ],
+ "../node_modules/@types/node/index.d.ts": [
+ "../node_modules/@types/node/base.d.ts",
+ "../node_modules/@types/node/ts3.6/base.d.ts"
+ ],
+ "../node_modules/@types/node/inspector.d.ts": [
+ "../node_modules/@types/node/events.d.ts"
+ ],
+ "../node_modules/@types/node/net.d.ts": [
+ "../node_modules/@types/node/dns.d.ts",
+ "../node_modules/@types/node/events.d.ts",
+ "../node_modules/@types/node/stream.d.ts"
+ ],
+ "../node_modules/@types/node/perf_hooks.d.ts": [
+ "../node_modules/@types/node/async_hooks.d.ts"
+ ],
+ "../node_modules/@types/node/readline.d.ts": [
+ "../node_modules/@types/node/events.d.ts",
+ "../node_modules/@types/node/stream.d.ts"
+ ],
+ "../node_modules/@types/node/repl.d.ts": [
+ "../node_modules/@types/node/readline.d.ts",
+ "../node_modules/@types/node/util.d.ts",
+ "../node_modules/@types/node/vm.d.ts"
+ ],
+ "../node_modules/@types/node/stream.d.ts": [
+ "../node_modules/@types/node/events.d.ts"
+ ],
+ "../node_modules/@types/node/tls.d.ts": [
+ "../node_modules/@types/node/crypto.d.ts",
+ "../node_modules/@types/node/dns.d.ts",
+ "../node_modules/@types/node/net.d.ts",
+ "../node_modules/@types/node/stream.d.ts"
+ ],
+ "../node_modules/@types/node/ts3.6/base.d.ts": [
+ "../node_modules/@types/node/async_hooks.d.ts",
+ "../node_modules/@types/node/buffer.d.ts",
+ "../node_modules/@types/node/child_process.d.ts",
+ "../node_modules/@types/node/cluster.d.ts",
+ "../node_modules/@types/node/console.d.ts",
+ "../node_modules/@types/node/constants.d.ts",
+ "../node_modules/@types/node/crypto.d.ts",
+ "../node_modules/@types/node/dgram.d.ts",
+ "../node_modules/@types/node/dns.d.ts",
+ "../node_modules/@types/node/domain.d.ts",
+ "../node_modules/@types/node/events.d.ts",
+ "../node_modules/@types/node/fs.d.ts",
+ "../node_modules/@types/node/globals.d.ts",
+ "../node_modules/@types/node/http.d.ts",
+ "../node_modules/@types/node/http2.d.ts",
+ "../node_modules/@types/node/https.d.ts",
+ "../node_modules/@types/node/inspector.d.ts",
+ "../node_modules/@types/node/module.d.ts",
+ "../node_modules/@types/node/net.d.ts",
+ "../node_modules/@types/node/os.d.ts",
+ "../node_modules/@types/node/path.d.ts",
+ "../node_modules/@types/node/perf_hooks.d.ts",
+ "../node_modules/@types/node/process.d.ts",
+ "../node_modules/@types/node/punycode.d.ts",
+ "../node_modules/@types/node/querystring.d.ts",
+ "../node_modules/@types/node/readline.d.ts",
+ "../node_modules/@types/node/repl.d.ts",
+ "../node_modules/@types/node/stream.d.ts",
+ "../node_modules/@types/node/string_decoder.d.ts",
+ "../node_modules/@types/node/timers.d.ts",
+ "../node_modules/@types/node/tls.d.ts",
+ "../node_modules/@types/node/trace_events.d.ts",
+ "../node_modules/@types/node/tty.d.ts",
+ "../node_modules/@types/node/url.d.ts",
+ "../node_modules/@types/node/util.d.ts",
+ "../node_modules/@types/node/v8.d.ts",
+ "../node_modules/@types/node/vm.d.ts",
+ "../node_modules/@types/node/worker_threads.d.ts",
+ "../node_modules/@types/node/zlib.d.ts"
+ ],
+ "../node_modules/@types/node/tty.d.ts": [
+ "../node_modules/@types/node/net.d.ts"
+ ],
+ "../node_modules/@types/node/url.d.ts": [
+ "../node_modules/@types/node/querystring.d.ts"
+ ],
+ "../node_modules/@types/node/worker_threads.d.ts": [
+ "../node_modules/@types/node/events.d.ts",
+ "../node_modules/@types/node/stream.d.ts"
+ ],
+ "../node_modules/@types/node/zlib.d.ts": [
+ "../node_modules/@types/node/stream.d.ts"
+ ],
+ "../node_modules/cheerio/types/index.d.ts": [
+ "../node_modules/domhandler/lib/index.d.ts",
+ "../node_modules/htmlparser2/lib/index.d.ts"
+ ],
+ "../node_modules/dom-serializer/lib/index.d.ts": [
+ "../node_modules/domhandler/lib/index.d.ts"
+ ],
+ "../node_modules/domhandler/lib/index.d.ts": [
+ "../node_modules/domhandler/lib/node.d.ts"
+ ],
+ "../node_modules/domhandler/lib/node.d.ts": [
+ "../node_modules/domelementtype/lib/index.d.ts"
+ ],
+ "../node_modules/domutils/lib/helpers.d.ts": [
+ "../node_modules/domhandler/lib/index.d.ts"
+ ],
+ "../node_modules/domutils/lib/index.d.ts": [
+ "../node_modules/domutils/lib/helpers.d.ts",
+ "../node_modules/domutils/lib/legacy.d.ts",
+ "../node_modules/domutils/lib/manipulation.d.ts",
+ "../node_modules/domutils/lib/querying.d.ts",
+ "../node_modules/domutils/lib/stringify.d.ts",
+ "../node_modules/domutils/lib/tagtypes.d.ts",
+ "../node_modules/domutils/lib/traversal.d.ts"
+ ],
+ "../node_modules/domutils/lib/legacy.d.ts": [
+ "../node_modules/domelementtype/lib/index.d.ts",
+ "../node_modules/domhandler/lib/index.d.ts"
+ ],
+ "../node_modules/domutils/lib/manipulation.d.ts": [
+ "../node_modules/domhandler/lib/index.d.ts"
+ ],
+ "../node_modules/domutils/lib/querying.d.ts": [
+ "../node_modules/domhandler/lib/index.d.ts"
+ ],
+ "../node_modules/domutils/lib/stringify.d.ts": [
+ "../node_modules/dom-serializer/lib/index.d.ts",
+ "../node_modules/domhandler/lib/index.d.ts"
+ ],
+ "../node_modules/domutils/lib/tagtypes.d.ts": [
+ "../node_modules/domhandler/lib/index.d.ts"
+ ],
+ "../node_modules/domutils/lib/traversal.d.ts": [
+ "../node_modules/domhandler/lib/index.d.ts"
+ ],
+ "../node_modules/htmlparser2/lib/FeedHandler.d.ts": [
+ "../node_modules/domhandler/lib/index.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/index.d.ts": [
+ "../node_modules/domelementtype/lib/index.d.ts",
+ "../node_modules/domhandler/lib/index.d.ts",
+ "../node_modules/domutils/lib/index.d.ts",
+ "../node_modules/htmlparser2/lib/FeedHandler.d.ts",
+ "../node_modules/htmlparser2/lib/Parser.d.ts",
+ "../node_modules/htmlparser2/lib/Tokenizer.d.ts"
+ ],
+ "../node_modules/scripting-tools/dist/lib/index.d.ts": [
+ "../node_modules/@types/node/child_process.d.ts",
+ "../node_modules/@types/node/index.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": [
+ "../node_modules/@types/comment-json/index.d.ts",
+ "../node_modules/@types/node/assert.d.ts",
+ "../node_modules/@types/node/async_hooks.d.ts",
+ "../node_modules/@types/node/base.d.ts",
+ "../node_modules/@types/node/buffer.d.ts",
+ "../node_modules/@types/node/child_process.d.ts",
+ "../node_modules/@types/node/cluster.d.ts",
+ "../node_modules/@types/node/console.d.ts",
+ "../node_modules/@types/node/constants.d.ts",
+ "../node_modules/@types/node/crypto.d.ts",
+ "../node_modules/@types/node/dgram.d.ts",
+ "../node_modules/@types/node/dns.d.ts",
+ "../node_modules/@types/node/domain.d.ts",
+ "../node_modules/@types/node/events.d.ts",
+ "../node_modules/@types/node/fs.d.ts",
+ "../node_modules/@types/node/globals.d.ts",
+ "../node_modules/@types/node/http.d.ts",
+ "../node_modules/@types/node/http2.d.ts",
+ "../node_modules/@types/node/https.d.ts",
+ "../node_modules/@types/node/index.d.ts",
+ "../node_modules/@types/node/inspector.d.ts",
+ "../node_modules/@types/node/module.d.ts",
+ "../node_modules/@types/node/net.d.ts",
+ "../node_modules/@types/node/os.d.ts",
+ "../node_modules/@types/node/path.d.ts",
+ "../node_modules/@types/node/perf_hooks.d.ts",
+ "../node_modules/@types/node/process.d.ts",
+ "../node_modules/@types/node/punycode.d.ts",
+ "../node_modules/@types/node/querystring.d.ts",
+ "../node_modules/@types/node/readline.d.ts",
+ "../node_modules/@types/node/repl.d.ts",
+ "../node_modules/@types/node/stream.d.ts",
+ "../node_modules/@types/node/string_decoder.d.ts",
+ "../node_modules/@types/node/timers.d.ts",
+ "../node_modules/@types/node/tls.d.ts",
+ "../node_modules/@types/node/trace_events.d.ts",
+ "../node_modules/@types/node/ts3.6/base.d.ts",
+ "../node_modules/@types/node/tty.d.ts",
+ "../node_modules/@types/node/url.d.ts",
+ "../node_modules/@types/node/util.d.ts",
+ "../node_modules/@types/node/v8.d.ts",
+ "../node_modules/@types/node/vm.d.ts",
+ "../node_modules/@types/node/worker_threads.d.ts",
+ "../node_modules/@types/node/zlib.d.ts",
+ "../node_modules/cheerio/types/index.d.ts",
+ "../node_modules/dom-serializer/lib/index.d.ts",
+ "../node_modules/domelementtype/lib/index.d.ts",
+ "../node_modules/domhandler/lib/index.d.ts",
+ "../node_modules/domhandler/lib/node.d.ts",
+ "../node_modules/domutils/lib/helpers.d.ts",
+ "../node_modules/domutils/lib/index.d.ts",
+ "../node_modules/domutils/lib/legacy.d.ts",
+ "../node_modules/domutils/lib/manipulation.d.ts",
+ "../node_modules/domutils/lib/querying.d.ts",
+ "../node_modules/domutils/lib/stringify.d.ts",
+ "../node_modules/domutils/lib/tagtypes.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/Parser.d.ts",
+ "../node_modules/htmlparser2/lib/Tokenizer.d.ts",
+ "../node_modules/htmlparser2/lib/index.d.ts",
+ "../node_modules/scripting-tools/dist/lib/get_caller_file_path.d.ts",
+ "../node_modules/scripting-tools/dist/lib/index.d.ts",
+ "../node_modules/typescript/lib/lib.dom.d.ts",
+ "../node_modules/typescript/lib/lib.es2015.collection.d.ts",
+ "../node_modules/typescript/lib/lib.es2015.core.d.ts",
+ "../node_modules/typescript/lib/lib.es2015.d.ts",
+ "../node_modules/typescript/lib/lib.es2015.generator.d.ts",
+ "../node_modules/typescript/lib/lib.es2015.iterable.d.ts",
+ "../node_modules/typescript/lib/lib.es2015.promise.d.ts",
+ "../node_modules/typescript/lib/lib.es2015.proxy.d.ts",
+ "../node_modules/typescript/lib/lib.es2015.reflect.d.ts",
+ "../node_modules/typescript/lib/lib.es2015.symbol.d.ts",
+ "../node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts",
+ "../node_modules/typescript/lib/lib.es2016.array.include.d.ts",
+ "../node_modules/typescript/lib/lib.es2016.d.ts",
+ "../node_modules/typescript/lib/lib.es2017.d.ts",
+ "../node_modules/typescript/lib/lib.es2017.intl.d.ts",
+ "../node_modules/typescript/lib/lib.es2017.object.d.ts",
+ "../node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts",
+ "../node_modules/typescript/lib/lib.es2017.string.d.ts",
+ "../node_modules/typescript/lib/lib.es2017.typedarrays.d.ts",
+ "../node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts",
+ "../node_modules/typescript/lib/lib.es2018.asynciterable.d.ts",
+ "../node_modules/typescript/lib/lib.es2018.d.ts",
+ "../node_modules/typescript/lib/lib.es2018.intl.d.ts",
+ "../node_modules/typescript/lib/lib.es2018.promise.d.ts",
+ "../node_modules/typescript/lib/lib.es2018.regexp.d.ts",
+ "../node_modules/typescript/lib/lib.es2020.bigint.d.ts",
+ "../node_modules/typescript/lib/lib.es5.d.ts",
+ "../node_modules/typescript/lib/lib.esnext.intl.d.ts",
+ "../src/bin/build-keycloak-theme/generateDebugFiles/index.ts",
+ "../src/bin/build-keycloak-theme/generateFtl.ts",
+ "../src/bin/build-keycloak-theme/generateJavaStackFiles.ts",
+ "../src/bin/build-keycloak-theme/generateKeycloakThemeResources.ts",
+ "../src/bin/build-keycloak-theme/index.ts",
+ "../src/bin/build-keycloak-theme/replaceImportFromStatic.ts",
+ "../src/bin/download-sample-keycloak-themes.ts",
+ "../src/lib/index.ts",
+ "../src/lib/keycloakFtlValues.ts",
+ "../src/test/build-keycloak-theme.ts",
+ "../src/test/download-sample-keycloak-themes.ts",
+ "../src/test/generateKeycloakThemeResources.ts",
+ "../src/test/replaceImportFromStatic.ts",
+ "../src/test/setupSampleReactProject.ts",
+ "../src/tools/crawl.ts",
+ "../src/tools/transformCodebase.ts"
+ ]
+ },
+ "version": "4.1.5"
+}
\ No newline at end of file