keycloakify 10.0.0-rc.137 → 10.0.0-rc.138
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bin/31.index.js +46 -3
- package/bin/440.index.js +1 -1
- package/bin/526.index.js +290 -70
- package/bin/622.index.js +14 -5
- package/bin/shared/buildContext.d.ts +23 -0
- package/bin/shared/buildContext.js.map +1 -1
- package/bin/shared/downloadKeycloakDefaultTheme.js.map +1 -1
- package/package.json +1 -1
- package/src/bin/keycloakify/generateResources/generateResourcesForMainTheme.ts +1 -1
- package/src/bin/shared/buildContext.ts +79 -2
- package/src/bin/shared/downloadKeycloakDefaultTheme.ts +1 -1
- package/src/bin/start-keycloak/appBuild.ts +2 -2
- package/src/bin/start-keycloak/keycloakifyBuild.ts +1 -1
- package/src/bin/start-keycloak/start-keycloak.ts +142 -82
- package/src/bin/tools/downloadAndExtractArchive.ts +27 -10
- package/vite-plugin/index.js +60 -8
package/bin/31.index.js
CHANGED
@@ -142,7 +142,7 @@ function ensureSingleOrNone(arg0) {
|
|
142
142
|
|
143
143
|
(0,assert.assert)();
|
144
144
|
function getBuildContext(params) {
|
145
|
-
var _a, _b, _c, _d, _e, _f;
|
145
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o;
|
146
146
|
const { cliCommandOptions } = params;
|
147
147
|
const projectDirPath = cliCommandOptions.projectDirPath !== undefined
|
148
148
|
? (0,getAbsoluteAndInOsFormatPath/* getAbsoluteAndInOsFormatPath */.c)({
|
@@ -260,6 +260,17 @@ function getBuildContext(params) {
|
|
260
260
|
(0,assert.assert)();
|
261
261
|
return (0,id.id)(zTargetType);
|
262
262
|
})();
|
263
|
+
const zStartKeycloakOptions = (() => {
|
264
|
+
const zTargetType = lib.z.object({
|
265
|
+
dockerImage: lib.z.string().optional(),
|
266
|
+
extensionJars: lib.z.array(lib.z.string()).optional(),
|
267
|
+
realmJsonFilePath: lib.z.string().optional(),
|
268
|
+
dockerExtraArgs: lib.z.array(lib.z.string()).optional(),
|
269
|
+
keycloakExtraArgs: lib.z.array(lib.z.string()).optional()
|
270
|
+
});
|
271
|
+
(0,assert.assert)();
|
272
|
+
return (0,id.id)(zTargetType);
|
273
|
+
})();
|
263
274
|
const zBuildOptions = (() => {
|
264
275
|
const zTargetType = lib.z.intersection(lib.z.object({
|
265
276
|
themeName: lib.z.union([lib.z.string(), lib.z.array(lib.z.string())]).optional(),
|
@@ -274,7 +285,8 @@ function getBuildContext(params) {
|
|
274
285
|
groupId: lib.z.string().optional(),
|
275
286
|
loginThemeResourcesFromKeycloakVersion: lib.z.string().optional(),
|
276
287
|
keycloakifyBuildDirPath: lib.z.string().optional(),
|
277
|
-
kcContextExclusionsFtl: lib.z.string().optional()
|
288
|
+
kcContextExclusionsFtl: lib.z.string().optional(),
|
289
|
+
startKeycloakOptions: zStartKeycloakOptions.optional()
|
278
290
|
}), zAccountThemeImplAndKeycloakVersionTargets);
|
279
291
|
(0,assert.assert)();
|
280
292
|
return (0,id.id)(zTargetType);
|
@@ -660,7 +672,38 @@ function getBuildContext(params) {
|
|
660
672
|
process.exit(1);
|
661
673
|
}
|
662
674
|
return jarTargets;
|
663
|
-
})()
|
675
|
+
})(),
|
676
|
+
startKeycloakOptions: {
|
677
|
+
dockerImage: (() => {
|
678
|
+
var _a;
|
679
|
+
if (((_a = buildOptions.startKeycloakOptions) === null || _a === void 0 ? void 0 : _a.dockerImage) === undefined) {
|
680
|
+
return undefined;
|
681
|
+
}
|
682
|
+
const [reference, tag, ...rest] = buildOptions.startKeycloakOptions.dockerImage.split(":");
|
683
|
+
(0,assert.assert)(reference !== undefined && tag !== undefined && rest.length === 0, `Invalid docker image: ${buildOptions.startKeycloakOptions.dockerImage}`);
|
684
|
+
return { reference, tag };
|
685
|
+
})(),
|
686
|
+
dockerExtraArgs: (_h = (_g = buildOptions.startKeycloakOptions) === null || _g === void 0 ? void 0 : _g.dockerExtraArgs) !== null && _h !== void 0 ? _h : [],
|
687
|
+
keycloakExtraArgs: (_k = (_j = buildOptions.startKeycloakOptions) === null || _j === void 0 ? void 0 : _j.keycloakExtraArgs) !== null && _k !== void 0 ? _k : [],
|
688
|
+
extensionJars: ((_m = (_l = buildOptions.startKeycloakOptions) === null || _l === void 0 ? void 0 : _l.extensionJars) !== null && _m !== void 0 ? _m : []).map(urlOrPath => {
|
689
|
+
if (/^https?:\/\//.test(urlOrPath)) {
|
690
|
+
return { type: "url", url: urlOrPath };
|
691
|
+
}
|
692
|
+
return {
|
693
|
+
type: "path",
|
694
|
+
path: (0,getAbsoluteAndInOsFormatPath/* getAbsoluteAndInOsFormatPath */.c)({
|
695
|
+
pathIsh: urlOrPath,
|
696
|
+
cwd: projectDirPath
|
697
|
+
})
|
698
|
+
};
|
699
|
+
}),
|
700
|
+
realmJsonFilePath: ((_o = buildOptions.startKeycloakOptions) === null || _o === void 0 ? void 0 : _o.realmJsonFilePath) === undefined
|
701
|
+
? undefined
|
702
|
+
: (0,getAbsoluteAndInOsFormatPath/* getAbsoluteAndInOsFormatPath */.c)({
|
703
|
+
pathIsh: buildOptions.startKeycloakOptions.realmJsonFilePath,
|
704
|
+
cwd: projectDirPath
|
705
|
+
})
|
706
|
+
}
|
664
707
|
};
|
665
708
|
}
|
666
709
|
//# sourceMappingURL=buildContext.js.map
|
package/bin/440.index.js
CHANGED
@@ -885,7 +885,7 @@ async function generateResourcesForMainTheme(params) {
|
|
885
885
|
break bring_in_account_v3_i18n_messages;
|
886
886
|
}
|
887
887
|
const { extractedDirPath } = await (0,downloadAndExtractArchive/* downloadAndExtractArchive */.I)({
|
888
|
-
|
888
|
+
urlOrPath: "https://repo1.maven.org/maven2/org/keycloak/keycloak-account-ui/25.0.1/keycloak-account-ui-25.0.1.jar",
|
889
889
|
cacheDirPath: buildContext.cacheDirPath,
|
890
890
|
fetchOptions: buildContext.fetchOptions,
|
891
891
|
uniqueIdOfOnArchiveFile: "bring_in_account_v3_i18n_messages",
|
package/bin/526.index.js
CHANGED
@@ -401,7 +401,7 @@ async function appBuild_vite(params) {
|
|
401
401
|
const { buildContext } = params;
|
402
402
|
(0,assert.assert)(buildContext.bundler === "vite");
|
403
403
|
const dIsSuccess = new Deferred.Deferred();
|
404
|
-
console.log(source_default().blue("
|
404
|
+
console.log(source_default().blue("$ npx vite build"));
|
405
405
|
const child = external_child_process_.spawn("npx", ["vite", "build"], {
|
406
406
|
cwd: buildContext.projectDirPath,
|
407
407
|
shell: true
|
@@ -464,7 +464,7 @@ async function appBuild_webpack(params) {
|
|
464
464
|
});
|
465
465
|
continue;
|
466
466
|
}
|
467
|
-
console.log(source_default().blue(
|
467
|
+
console.log(source_default().blue(`$ ${subCommand}`));
|
468
468
|
const child = external_child_process_.spawn(command, args, {
|
469
469
|
cwd: commandCwd,
|
470
470
|
env: Object.assign(Object.assign({}, process.env), { PATH: (() => {
|
@@ -498,7 +498,7 @@ async function appBuild_webpack(params) {
|
|
498
498
|
async function keycloakifyBuild(params) {
|
499
499
|
const { buildForKeycloakMajorVersionNumber, buildContext } = params;
|
500
500
|
const dResult = new Deferred.Deferred();
|
501
|
-
console.log(source_default().blue("
|
501
|
+
console.log(source_default().blue("$ npx keycloakify build"));
|
502
502
|
const child = external_child_process_.spawn("npx", ["keycloakify", "build"], {
|
503
503
|
cwd: buildContext.projectDirPath,
|
504
504
|
env: Object.assign(Object.assign({}, process.env), { [constants/* BUILD_FOR_KEYCLOAK_MAJOR_VERSION_ENV_NAME */.ac]: `${buildForKeycloakMajorVersionNumber}` }),
|
@@ -517,6 +517,8 @@ var isInside = __webpack_require__(90665);
|
|
517
517
|
var fs_existsAsync = __webpack_require__(43765);
|
518
518
|
// EXTERNAL MODULE: ./dist/bin/tools/fs.rm.js
|
519
519
|
var fs_rm = __webpack_require__(8699);
|
520
|
+
// EXTERNAL MODULE: ./dist/bin/tools/downloadAndExtractArchive.js
|
521
|
+
var downloadAndExtractArchive = __webpack_require__(38367);
|
520
522
|
;// CONCATENATED MODULE: ./dist/bin/start-keycloak/start-keycloak.js
|
521
523
|
|
522
524
|
|
@@ -538,9 +540,11 @@ var fs_rm = __webpack_require__(8699);
|
|
538
540
|
|
539
541
|
|
540
542
|
|
543
|
+
|
541
544
|
|
542
545
|
|
543
546
|
async function command(params) {
|
547
|
+
var _a, _b;
|
544
548
|
exit_if_docker_not_installed: {
|
545
549
|
let commandOutput = undefined;
|
546
550
|
try {
|
@@ -548,7 +552,7 @@ async function command(params) {
|
|
548
552
|
stdio: ["ignore", "pipe", "ignore"]
|
549
553
|
});
|
550
554
|
}
|
551
|
-
catch (
|
555
|
+
catch (_c) { }
|
552
556
|
if (commandOutput === null || commandOutput === void 0 ? void 0 : commandOutput.toString("utf8").includes("Docker")) {
|
553
557
|
break exit_if_docker_not_installed;
|
554
558
|
}
|
@@ -565,7 +569,7 @@ async function command(params) {
|
|
565
569
|
external_child_process_.execSync("docker info", { stdio: "ignore" });
|
566
570
|
isDockerRunning = true;
|
567
571
|
}
|
568
|
-
catch (
|
572
|
+
catch (_d) {
|
569
573
|
isDockerRunning = false;
|
570
574
|
}
|
571
575
|
if (isDockerRunning) {
|
@@ -579,11 +583,13 @@ async function command(params) {
|
|
579
583
|
}
|
580
584
|
const { cliCommandOptions } = params;
|
581
585
|
const buildContext = (0,shared_buildContext/* getBuildContext */.s)({ cliCommandOptions });
|
582
|
-
const {
|
586
|
+
const { dockerImageTag } = await (async () => {
|
583
587
|
if (cliCommandOptions.keycloakVersion !== undefined) {
|
588
|
+
return { dockerImageTag: cliCommandOptions.keycloakVersion };
|
589
|
+
}
|
590
|
+
if (buildContext.startKeycloakOptions.dockerImage !== undefined) {
|
584
591
|
return {
|
585
|
-
|
586
|
-
keycloakMajorNumber: SemVer/* SemVer.parse */.h.parse(cliCommandOptions.keycloakVersion).major
|
592
|
+
dockerImageTag: buildContext.startKeycloakOptions.dockerImage.tag
|
587
593
|
};
|
588
594
|
}
|
589
595
|
console.log([
|
@@ -596,9 +602,26 @@ async function command(params) {
|
|
596
602
|
buildContext
|
597
603
|
});
|
598
604
|
console.log(`→ ${keycloakVersion}`);
|
599
|
-
return { keycloakVersion };
|
605
|
+
return { dockerImageTag: keycloakVersion };
|
606
|
+
})();
|
607
|
+
const keycloakMajorVersionNumber = (() => {
|
608
|
+
if (buildContext.startKeycloakOptions.dockerImage === undefined) {
|
609
|
+
return SemVer/* SemVer.parse */.h.parse(dockerImageTag).major;
|
610
|
+
}
|
611
|
+
const { tag } = buildContext.startKeycloakOptions.dockerImage;
|
612
|
+
const [wrap] = [18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28]
|
613
|
+
.map(majorVersionNumber => ({
|
614
|
+
majorVersionNumber,
|
615
|
+
index: tag.indexOf(`${majorVersionNumber}`)
|
616
|
+
}))
|
617
|
+
.filter(({ index }) => index !== -1)
|
618
|
+
.sort((a, b) => a.index - b.index);
|
619
|
+
if (wrap === undefined) {
|
620
|
+
console.warn(source_default().yellow(`Could not determine the major Keycloak version number from the docker image tag ${tag}. Assuming 25`));
|
621
|
+
return 25;
|
622
|
+
}
|
623
|
+
return wrap.majorVersionNumber;
|
600
624
|
})();
|
601
|
-
const keycloakMajorVersionNumber = SemVer/* SemVer.parse */.h.parse(keycloakVersion).major;
|
602
625
|
{
|
603
626
|
const { isAppBuildSuccess } = await appBuild({
|
604
627
|
buildContext
|
@@ -621,18 +644,39 @@ async function command(params) {
|
|
621
644
|
.map(fileBasename => (0,external_path_.join)(buildContext.keycloakifyBuildDirPath, fileBasename))
|
622
645
|
.sort((a, b) => external_fs_.statSync(b).mtimeMs - external_fs_.statSync(a).mtimeMs)[0];
|
623
646
|
(0,assert.assert)(jarFilePath !== undefined);
|
624
|
-
|
647
|
+
const extensionJarFilePaths = await Promise.all(buildContext.startKeycloakOptions.extensionJars.map(async (extensionJar) => {
|
648
|
+
switch (extensionJar.type) {
|
649
|
+
case "path": {
|
650
|
+
(0,assert.assert)(await (0,fs_existsAsync/* existsAsync */.o)(extensionJar.path), `${extensionJar.path} does not exist`);
|
651
|
+
return extensionJar.path;
|
652
|
+
}
|
653
|
+
case "url": {
|
654
|
+
const { archiveFilePath } = await (0,downloadAndExtractArchive/* downloadAndExtractArchive */.I)({
|
655
|
+
cacheDirPath: buildContext.cacheDirPath,
|
656
|
+
fetchOptions: buildContext.fetchOptions,
|
657
|
+
urlOrPath: extensionJar.url,
|
658
|
+
uniqueIdOfOnArchiveFile: "no extraction",
|
659
|
+
onArchiveFile: async () => { }
|
660
|
+
});
|
661
|
+
return archiveFilePath;
|
662
|
+
}
|
663
|
+
}
|
664
|
+
(0,assert.assert)(false);
|
665
|
+
}));
|
625
666
|
const realmJsonFilePath = await (async () => {
|
626
667
|
if (cliCommandOptions.realmJsonFilePath !== undefined) {
|
627
668
|
if (cliCommandOptions.realmJsonFilePath === "none") {
|
628
669
|
return undefined;
|
629
670
|
}
|
630
|
-
console.log(source_default().green(`Using realm json file: ${cliCommandOptions.realmJsonFilePath}`));
|
631
671
|
return (0,getAbsoluteAndInOsFormatPath/* getAbsoluteAndInOsFormatPath */.c)({
|
632
672
|
pathIsh: cliCommandOptions.realmJsonFilePath,
|
633
673
|
cwd: process.cwd()
|
634
674
|
});
|
635
675
|
}
|
676
|
+
if (buildContext.startKeycloakOptions.realmJsonFilePath !== undefined) {
|
677
|
+
(0,assert.assert)(await (0,fs_existsAsync/* existsAsync */.o)(buildContext.startKeycloakOptions.realmJsonFilePath), `${(0,external_path_.relative)(process.cwd(), buildContext.startKeycloakOptions.realmJsonFilePath)} does not exist`);
|
678
|
+
return buildContext.startKeycloakOptions.realmJsonFilePath;
|
679
|
+
}
|
636
680
|
const internalFilePath = await (async () => {
|
637
681
|
const dirPath = (0,external_path_.join)((0,getThisCodebaseRootDirPath/* getThisCodebaseRootDirPath */.e)(), "src", "bin", "start-keycloak");
|
638
682
|
const filePath = (0,external_path_.join)(dirPath, `myrealm-realm-${keycloakMajorVersionNumber}.json`);
|
@@ -690,65 +734,52 @@ async function command(params) {
|
|
690
734
|
stdio: "ignore"
|
691
735
|
});
|
692
736
|
}
|
693
|
-
catch (
|
694
|
-
const
|
695
|
-
|
696
|
-
|
697
|
-
|
698
|
-
|
699
|
-
|
700
|
-
|
701
|
-
|
702
|
-
|
703
|
-
|
704
|
-
|
705
|
-
|
706
|
-
|
707
|
-
|
708
|
-
|
709
|
-
|
710
|
-
|
711
|
-
|
712
|
-
|
713
|
-
|
714
|
-
|
715
|
-
|
716
|
-
|
717
|
-
|
718
|
-
|
719
|
-
|
720
|
-
|
721
|
-
|
722
|
-
|
723
|
-
|
724
|
-
}))
|
725
|
-
|
726
|
-
|
727
|
-
|
728
|
-
|
729
|
-
|
730
|
-
|
731
|
-
|
732
|
-
|
733
|
-
.filter((0,exclude.exclude)(undefined))
|
734
|
-
.map(({ name, envValue }) => [
|
735
|
-
"--env",
|
736
|
-
`${name}='${envValue.replace(/'/g, "'\\''")}'`
|
737
|
-
])
|
738
|
-
.flat(),
|
739
|
-
`quay.io/keycloak/keycloak:${keycloakVersion}`,
|
740
|
-
"start-dev",
|
741
|
-
...(21 <= keycloakMajorVersionNumber && keycloakMajorVersionNumber < 24
|
742
|
-
? ["--features=declarative-user-profile"]
|
743
|
-
: []),
|
744
|
-
...(realmJsonFilePath === undefined ? [] : ["--import-realm"])
|
745
|
-
],
|
746
|
-
{
|
747
|
-
cwd: buildContext.keycloakifyBuildDirPath,
|
748
|
-
shell: true
|
749
|
-
}
|
737
|
+
catch (_e) { }
|
738
|
+
const dockerRunArgs = [
|
739
|
+
`-p ${cliCommandOptions.port}:8080`,
|
740
|
+
`--name ${constants/* CONTAINER_NAME */.sv}`,
|
741
|
+
`-e KEYCLOAK_ADMIN=admin`,
|
742
|
+
`-e KEYCLOAK_ADMIN_PASSWORD=admin`,
|
743
|
+
...(realmJsonFilePath === undefined
|
744
|
+
? []
|
745
|
+
: [
|
746
|
+
`-v ".${external_path_.sep}${(0,external_path_.relative)(process.cwd(), realmJsonFilePath)}":/opt/keycloak/data/import/myrealm-realm.json`
|
747
|
+
]),
|
748
|
+
`-v "./${(0,external_path_.relative)(process.cwd(), jarFilePath_cacheDir)}":/opt/keycloak/providers/keycloak-theme.jar`,
|
749
|
+
...extensionJarFilePaths.map(jarFilePath => `-v ".${external_path_.sep}${(0,external_path_.relative)(process.cwd(), jarFilePath)}":/opt/keycloak/providers/${(0,external_path_.basename)(jarFilePath)}`),
|
750
|
+
...(keycloakMajorVersionNumber <= 20
|
751
|
+
? ["-e JAVA_OPTS=-Dkeycloak.profile=preview"]
|
752
|
+
: []),
|
753
|
+
...[
|
754
|
+
...buildContext.themeNames,
|
755
|
+
...(external_fs_.existsSync((0,external_path_.join)(buildContext.keycloakifyBuildDirPath, "theme", constants/* ACCOUNT_V1_THEME_NAME */.ZQ))
|
756
|
+
? [constants/* ACCOUNT_V1_THEME_NAME */.ZQ]
|
757
|
+
: [])
|
758
|
+
]
|
759
|
+
.map(themeName => ({
|
760
|
+
localDirPath: (0,external_path_.join)(buildContext.keycloakifyBuildDirPath, "theme", themeName),
|
761
|
+
containerDirPath: `/opt/keycloak/themes/${themeName}`
|
762
|
+
}))
|
763
|
+
.map(({ localDirPath, containerDirPath }) => `-v ".${external_path_.sep}${(0,external_path_.relative)(process.cwd(), localDirPath)}":${containerDirPath}:rw`),
|
764
|
+
...buildContext.environmentVariables
|
765
|
+
.map(({ name }) => ({ name, envValue: process.env[name] }))
|
766
|
+
.map(({ name, envValue }) => envValue === undefined ? undefined : { name, envValue })
|
767
|
+
.filter((0,exclude.exclude)(undefined))
|
768
|
+
.map(({ name, envValue }) => `--env ${name}='${envValue.replace(/'/g, "'\\''")}'`),
|
769
|
+
...buildContext.startKeycloakOptions.dockerExtraArgs,
|
770
|
+
`${(_b = (_a = buildContext.startKeycloakOptions.dockerImage) === null || _a === void 0 ? void 0 : _a.reference) !== null && _b !== void 0 ? _b : "quay.io/keycloak/keycloak"}:${dockerImageTag}`,
|
771
|
+
"start-dev",
|
772
|
+
...(21 <= keycloakMajorVersionNumber && keycloakMajorVersionNumber < 24
|
773
|
+
? ["--features=declarative-user-profile"]
|
774
|
+
: []),
|
775
|
+
...(realmJsonFilePath === undefined ? [] : ["--import-realm"]),
|
776
|
+
...buildContext.startKeycloakOptions.keycloakExtraArgs
|
750
777
|
];
|
751
|
-
|
778
|
+
console.log(source_default().blue([
|
779
|
+
`$ docker run \\`,
|
780
|
+
...dockerRunArgs.map((line, i, arr) => ` ${line}${arr.length - 1 === i ? "" : " \\"}`)
|
781
|
+
].join("\n")));
|
782
|
+
const child = external_child_process_.spawn("docker", ["run", ...dockerRunArgs.map(line => line.split(" ")).flat()], { shell: true });
|
752
783
|
child.stdout.on("data", data => process.stdout.write(data));
|
753
784
|
child.stderr.on("data", data => process.stderr.write(data));
|
754
785
|
child.on("exit", process.exit);
|
@@ -911,6 +942,195 @@ var SemVer;
|
|
911
942
|
|
912
943
|
/***/ }),
|
913
944
|
|
945
|
+
/***/ 38367:
|
946
|
+
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
947
|
+
|
948
|
+
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
949
|
+
/* harmony export */ "I": () => (/* binding */ downloadAndExtractArchive)
|
950
|
+
/* harmony export */ });
|
951
|
+
/* harmony import */ var make_fetch_happen__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(9525);
|
952
|
+
/* harmony import */ var make_fetch_happen__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(make_fetch_happen__WEBPACK_IMPORTED_MODULE_0__);
|
953
|
+
/* harmony import */ var fs_promises__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(73292);
|
954
|
+
/* harmony import */ var fs_promises__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(fs_promises__WEBPACK_IMPORTED_MODULE_1__);
|
955
|
+
/* harmony import */ var path__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(71017);
|
956
|
+
/* harmony import */ var path__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(path__WEBPACK_IMPORTED_MODULE_2__);
|
957
|
+
/* harmony import */ var tsafe_assert__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(88078);
|
958
|
+
/* harmony import */ var tsafe_assert__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(tsafe_assert__WEBPACK_IMPORTED_MODULE_3__);
|
959
|
+
/* harmony import */ var _extractArchive__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(29121);
|
960
|
+
/* harmony import */ var _fs_existsAsync__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(43765);
|
961
|
+
/* harmony import */ var crypto__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(6113);
|
962
|
+
/* harmony import */ var crypto__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(crypto__WEBPACK_IMPORTED_MODULE_6__);
|
963
|
+
/* harmony import */ var _fs_rm__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(8699);
|
964
|
+
|
965
|
+
|
966
|
+
|
967
|
+
|
968
|
+
|
969
|
+
|
970
|
+
|
971
|
+
|
972
|
+
|
973
|
+
async function downloadAndExtractArchive(params) {
|
974
|
+
var _a;
|
975
|
+
const { urlOrPath, uniqueIdOfOnArchiveFile, onArchiveFile, cacheDirPath, fetchOptions } = params;
|
976
|
+
const isUrl = /^https?:\/\//.test(urlOrPath);
|
977
|
+
const archiveFileBasename = isUrl
|
978
|
+
? urlOrPath.split("?")[0].split("/").reverse()[0]
|
979
|
+
: (0,path__WEBPACK_IMPORTED_MODULE_2__.basename)(urlOrPath);
|
980
|
+
const archiveFilePath = (0,path__WEBPACK_IMPORTED_MODULE_2__.join)(cacheDirPath, archiveFileBasename);
|
981
|
+
download: {
|
982
|
+
await (0,fs_promises__WEBPACK_IMPORTED_MODULE_1__.mkdir)((0,path__WEBPACK_IMPORTED_MODULE_2__.dirname)(archiveFilePath), { recursive: true });
|
983
|
+
if (!isUrl) {
|
984
|
+
await fs_promises__WEBPACK_IMPORTED_MODULE_1__.copyFile(urlOrPath, archiveFilePath);
|
985
|
+
break download;
|
986
|
+
}
|
987
|
+
const url = urlOrPath;
|
988
|
+
if (await (0,_fs_existsAsync__WEBPACK_IMPORTED_MODULE_5__/* .existsAsync */ .o)(archiveFilePath)) {
|
989
|
+
const isDownloaded = await SuccessTracker.getIsDownloaded({
|
990
|
+
cacheDirPath,
|
991
|
+
archiveFileBasename
|
992
|
+
});
|
993
|
+
if (isDownloaded) {
|
994
|
+
break download;
|
995
|
+
}
|
996
|
+
await (0,fs_promises__WEBPACK_IMPORTED_MODULE_1__.unlink)(archiveFilePath);
|
997
|
+
await SuccessTracker.removeFromDownloaded({
|
998
|
+
cacheDirPath,
|
999
|
+
archiveFileBasename
|
1000
|
+
});
|
1001
|
+
}
|
1002
|
+
const response = await make_fetch_happen__WEBPACK_IMPORTED_MODULE_0___default()(url, fetchOptions);
|
1003
|
+
(_a = response.body) === null || _a === void 0 ? void 0 : _a.setMaxListeners(Number.MAX_VALUE);
|
1004
|
+
(0,tsafe_assert__WEBPACK_IMPORTED_MODULE_3__.assert)(typeof response.body !== "undefined" && response.body != null);
|
1005
|
+
await (0,fs_promises__WEBPACK_IMPORTED_MODULE_1__.writeFile)(archiveFilePath, response.body);
|
1006
|
+
await SuccessTracker.markAsDownloaded({
|
1007
|
+
cacheDirPath,
|
1008
|
+
archiveFileBasename
|
1009
|
+
});
|
1010
|
+
}
|
1011
|
+
const extractDirBasename = `${archiveFileBasename.replace(/\.([^.]+)$/, (...[, ext]) => `_${ext}`)}_${uniqueIdOfOnArchiveFile}_${crypto__WEBPACK_IMPORTED_MODULE_6__.createHash("sha256")
|
1012
|
+
.update(onArchiveFile.toString())
|
1013
|
+
.digest("hex")
|
1014
|
+
.substring(0, 5)}`;
|
1015
|
+
await Promise.all((await (0,fs_promises__WEBPACK_IMPORTED_MODULE_1__.readdir)(cacheDirPath))
|
1016
|
+
.filter((() => {
|
1017
|
+
const prefix = extractDirBasename
|
1018
|
+
.split("_")
|
1019
|
+
.reverse()
|
1020
|
+
.slice(1)
|
1021
|
+
.reverse()
|
1022
|
+
.join("_");
|
1023
|
+
return basename => basename !== extractDirBasename && basename.startsWith(prefix);
|
1024
|
+
})())
|
1025
|
+
.map(async (extractDirBasename) => {
|
1026
|
+
await (0,_fs_rm__WEBPACK_IMPORTED_MODULE_7__.rm)((0,path__WEBPACK_IMPORTED_MODULE_2__.join)(cacheDirPath, extractDirBasename), {
|
1027
|
+
recursive: true
|
1028
|
+
});
|
1029
|
+
await SuccessTracker.removeFromExtracted({
|
1030
|
+
cacheDirPath,
|
1031
|
+
extractDirBasename
|
1032
|
+
});
|
1033
|
+
}));
|
1034
|
+
const extractedDirPath = (0,path__WEBPACK_IMPORTED_MODULE_2__.join)(cacheDirPath, extractDirBasename);
|
1035
|
+
extract_and_transform: {
|
1036
|
+
if (await (0,_fs_existsAsync__WEBPACK_IMPORTED_MODULE_5__/* .existsAsync */ .o)(extractedDirPath)) {
|
1037
|
+
const isExtracted = await SuccessTracker.getIsExtracted({
|
1038
|
+
cacheDirPath,
|
1039
|
+
extractDirBasename
|
1040
|
+
});
|
1041
|
+
if (isExtracted) {
|
1042
|
+
break extract_and_transform;
|
1043
|
+
}
|
1044
|
+
await (0,_fs_rm__WEBPACK_IMPORTED_MODULE_7__.rm)(extractedDirPath, { recursive: true });
|
1045
|
+
await SuccessTracker.removeFromExtracted({
|
1046
|
+
cacheDirPath,
|
1047
|
+
extractDirBasename
|
1048
|
+
});
|
1049
|
+
}
|
1050
|
+
await (0,_extractArchive__WEBPACK_IMPORTED_MODULE_4__/* .extractArchive */ .N)({
|
1051
|
+
archiveFilePath,
|
1052
|
+
onArchiveFile: async ({ relativeFilePathInArchive, readFile, writeFile }) => onArchiveFile({
|
1053
|
+
fileRelativePath: relativeFilePathInArchive,
|
1054
|
+
readFile,
|
1055
|
+
writeFile: ({ fileRelativePath, modifiedData }) => writeFile({
|
1056
|
+
filePath: (0,path__WEBPACK_IMPORTED_MODULE_2__.join)(extractedDirPath, fileRelativePath),
|
1057
|
+
modifiedData
|
1058
|
+
})
|
1059
|
+
})
|
1060
|
+
});
|
1061
|
+
await SuccessTracker.markAsExtracted({
|
1062
|
+
cacheDirPath,
|
1063
|
+
extractDirBasename
|
1064
|
+
});
|
1065
|
+
}
|
1066
|
+
return { extractedDirPath, archiveFilePath };
|
1067
|
+
}
|
1068
|
+
var SuccessTracker;
|
1069
|
+
(function (SuccessTracker) {
|
1070
|
+
async function read(params) {
|
1071
|
+
const { cacheDirPath } = params;
|
1072
|
+
const filePath = (0,path__WEBPACK_IMPORTED_MODULE_2__.join)(cacheDirPath, "downloadAndExtractArchive.json");
|
1073
|
+
if (!(await (0,_fs_existsAsync__WEBPACK_IMPORTED_MODULE_5__/* .existsAsync */ .o)(filePath))) {
|
1074
|
+
return { archiveFileBasenames: [], extractDirBasenames: [] };
|
1075
|
+
}
|
1076
|
+
return JSON.parse((await (0,fs_promises__WEBPACK_IMPORTED_MODULE_1__.readFile)(filePath)).toString("utf8"));
|
1077
|
+
}
|
1078
|
+
async function write(params) {
|
1079
|
+
const { cacheDirPath, successTracker } = params;
|
1080
|
+
const filePath = (0,path__WEBPACK_IMPORTED_MODULE_2__.join)(cacheDirPath, "downloadAndExtractArchive.json");
|
1081
|
+
{
|
1082
|
+
const dirPath = (0,path__WEBPACK_IMPORTED_MODULE_2__.dirname)(filePath);
|
1083
|
+
if (!(await (0,_fs_existsAsync__WEBPACK_IMPORTED_MODULE_5__/* .existsAsync */ .o)(dirPath))) {
|
1084
|
+
await (0,fs_promises__WEBPACK_IMPORTED_MODULE_1__.mkdir)(dirPath, { recursive: true });
|
1085
|
+
}
|
1086
|
+
}
|
1087
|
+
await (0,fs_promises__WEBPACK_IMPORTED_MODULE_1__.writeFile)(filePath, JSON.stringify(successTracker));
|
1088
|
+
}
|
1089
|
+
async function markAsDownloaded(params) {
|
1090
|
+
const { cacheDirPath, archiveFileBasename } = params;
|
1091
|
+
const successTracker = await read({ cacheDirPath });
|
1092
|
+
successTracker.archiveFileBasenames.push(archiveFileBasename);
|
1093
|
+
await write({ cacheDirPath, successTracker });
|
1094
|
+
}
|
1095
|
+
SuccessTracker.markAsDownloaded = markAsDownloaded;
|
1096
|
+
async function getIsDownloaded(params) {
|
1097
|
+
const { cacheDirPath, archiveFileBasename } = params;
|
1098
|
+
const successTracker = await read({ cacheDirPath });
|
1099
|
+
return successTracker.archiveFileBasenames.includes(archiveFileBasename);
|
1100
|
+
}
|
1101
|
+
SuccessTracker.getIsDownloaded = getIsDownloaded;
|
1102
|
+
async function removeFromDownloaded(params) {
|
1103
|
+
const { cacheDirPath, archiveFileBasename } = params;
|
1104
|
+
const successTracker = await read({ cacheDirPath });
|
1105
|
+
successTracker.archiveFileBasenames = successTracker.archiveFileBasenames.filter(basename => basename !== archiveFileBasename);
|
1106
|
+
await write({ cacheDirPath, successTracker });
|
1107
|
+
}
|
1108
|
+
SuccessTracker.removeFromDownloaded = removeFromDownloaded;
|
1109
|
+
async function markAsExtracted(params) {
|
1110
|
+
const { cacheDirPath, extractDirBasename } = params;
|
1111
|
+
const successTracker = await read({ cacheDirPath });
|
1112
|
+
successTracker.extractDirBasenames.push(extractDirBasename);
|
1113
|
+
await write({ cacheDirPath, successTracker });
|
1114
|
+
}
|
1115
|
+
SuccessTracker.markAsExtracted = markAsExtracted;
|
1116
|
+
async function getIsExtracted(params) {
|
1117
|
+
const { cacheDirPath, extractDirBasename } = params;
|
1118
|
+
const successTracker = await read({ cacheDirPath });
|
1119
|
+
return successTracker.extractDirBasenames.includes(extractDirBasename);
|
1120
|
+
}
|
1121
|
+
SuccessTracker.getIsExtracted = getIsExtracted;
|
1122
|
+
async function removeFromExtracted(params) {
|
1123
|
+
const { cacheDirPath, extractDirBasename } = params;
|
1124
|
+
const successTracker = await read({ cacheDirPath });
|
1125
|
+
successTracker.extractDirBasenames = successTracker.extractDirBasenames.filter(basename => basename !== extractDirBasename);
|
1126
|
+
await write({ cacheDirPath, successTracker });
|
1127
|
+
}
|
1128
|
+
SuccessTracker.removeFromExtracted = removeFromExtracted;
|
1129
|
+
})(SuccessTracker || (SuccessTracker = {}));
|
1130
|
+
//# sourceMappingURL=downloadAndExtractArchive.js.map
|
1131
|
+
|
1132
|
+
/***/ }),
|
1133
|
+
|
914
1134
|
/***/ 29121:
|
915
1135
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
916
1136
|
|
package/bin/622.index.js
CHANGED
@@ -25,7 +25,7 @@ async function downloadKeycloakDefaultTheme(params) {
|
|
25
25
|
let kcNodeModulesKeepFilePaths = undefined;
|
26
26
|
let kcNodeModulesKeepFilePaths_lastAccountV1 = undefined;
|
27
27
|
const { extractedDirPath } = await (0,_tools_downloadAndExtractArchive__WEBPACK_IMPORTED_MODULE_3__/* .downloadAndExtractArchive */ .I)({
|
28
|
-
|
28
|
+
urlOrPath: `https://repo1.maven.org/maven2/org/keycloak/keycloak-themes/${keycloakVersion}/keycloak-themes-${keycloakVersion}.jar`,
|
29
29
|
cacheDirPath: buildContext.cacheDirPath,
|
30
30
|
fetchOptions: buildContext.fetchOptions,
|
31
31
|
uniqueIdOfOnArchiveFile: "downloadKeycloakDefaultTheme",
|
@@ -262,12 +262,22 @@ var SemVer;
|
|
262
262
|
|
263
263
|
|
264
264
|
|
265
|
+
|
265
266
|
async function downloadAndExtractArchive(params) {
|
266
267
|
var _a;
|
267
|
-
const {
|
268
|
-
const
|
268
|
+
const { urlOrPath, uniqueIdOfOnArchiveFile, onArchiveFile, cacheDirPath, fetchOptions } = params;
|
269
|
+
const isUrl = /^https?:\/\//.test(urlOrPath);
|
270
|
+
const archiveFileBasename = isUrl
|
271
|
+
? urlOrPath.split("?")[0].split("/").reverse()[0]
|
272
|
+
: (0,path__WEBPACK_IMPORTED_MODULE_2__.basename)(urlOrPath);
|
269
273
|
const archiveFilePath = (0,path__WEBPACK_IMPORTED_MODULE_2__.join)(cacheDirPath, archiveFileBasename);
|
270
274
|
download: {
|
275
|
+
await (0,fs_promises__WEBPACK_IMPORTED_MODULE_1__.mkdir)((0,path__WEBPACK_IMPORTED_MODULE_2__.dirname)(archiveFilePath), { recursive: true });
|
276
|
+
if (!isUrl) {
|
277
|
+
await fs_promises__WEBPACK_IMPORTED_MODULE_1__.copyFile(urlOrPath, archiveFilePath);
|
278
|
+
break download;
|
279
|
+
}
|
280
|
+
const url = urlOrPath;
|
271
281
|
if (await (0,_fs_existsAsync__WEBPACK_IMPORTED_MODULE_5__/* .existsAsync */ .o)(archiveFilePath)) {
|
272
282
|
const isDownloaded = await SuccessTracker.getIsDownloaded({
|
273
283
|
cacheDirPath,
|
@@ -282,7 +292,6 @@ async function downloadAndExtractArchive(params) {
|
|
282
292
|
archiveFileBasename
|
283
293
|
});
|
284
294
|
}
|
285
|
-
await (0,fs_promises__WEBPACK_IMPORTED_MODULE_1__.mkdir)((0,path__WEBPACK_IMPORTED_MODULE_2__.dirname)(archiveFilePath), { recursive: true });
|
286
295
|
const response = await make_fetch_happen__WEBPACK_IMPORTED_MODULE_0___default()(url, fetchOptions);
|
287
296
|
(_a = response.body) === null || _a === void 0 ? void 0 : _a.setMaxListeners(Number.MAX_VALUE);
|
288
297
|
(0,tsafe_assert__WEBPACK_IMPORTED_MODULE_3__.assert)(typeof response.body !== "undefined" && response.body != null);
|
@@ -347,7 +356,7 @@ async function downloadAndExtractArchive(params) {
|
|
347
356
|
extractDirBasename
|
348
357
|
});
|
349
358
|
}
|
350
|
-
return { extractedDirPath };
|
359
|
+
return { extractedDirPath, archiveFilePath };
|
351
360
|
}
|
352
361
|
var SuccessTracker;
|
353
362
|
(function (SuccessTracker) {
|
@@ -45,6 +45,22 @@ export type BuildContext = {
|
|
45
45
|
keycloakVersionRange: KeycloakVersionRange;
|
46
46
|
jarFileBasename: string;
|
47
47
|
}[];
|
48
|
+
startKeycloakOptions: {
|
49
|
+
dockerImage: {
|
50
|
+
reference: string;
|
51
|
+
tag: string;
|
52
|
+
} | undefined;
|
53
|
+
dockerExtraArgs: string[];
|
54
|
+
keycloakExtraArgs: string[];
|
55
|
+
extensionJars: ({
|
56
|
+
type: "path";
|
57
|
+
path: string;
|
58
|
+
} | {
|
59
|
+
type: "url";
|
60
|
+
url: string;
|
61
|
+
})[];
|
62
|
+
realmJsonFilePath: string | undefined;
|
63
|
+
};
|
48
64
|
};
|
49
65
|
export type BuildOptions = {
|
50
66
|
themeName?: string | string[];
|
@@ -59,6 +75,13 @@ export type BuildOptions = {
|
|
59
75
|
loginThemeResourcesFromKeycloakVersion?: string;
|
60
76
|
keycloakifyBuildDirPath?: string;
|
61
77
|
kcContextExclusionsFtl?: string;
|
78
|
+
startKeycloakOptions?: {
|
79
|
+
dockerImage?: string;
|
80
|
+
dockerExtraArgs?: string[];
|
81
|
+
keycloakExtraArgs?: string[];
|
82
|
+
extensionJars?: string[];
|
83
|
+
realmJsonFilePath?: string;
|
84
|
+
};
|
62
85
|
} & BuildOptions.AccountThemeImplAndKeycloakVersionTargets;
|
63
86
|
export declare namespace BuildOptions {
|
64
87
|
type AccountThemeImplAndKeycloakVersionTargets = AccountThemeImplAndKeycloakVersionTargets.MultiPageApp | AccountThemeImplAndKeycloakVersionTargets.SinglePageAppOrNone;
|