keycloakify 11.4.0-rc.0 → 11.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (93) hide show
  1. package/README.md +2 -0
  2. package/account/i18n/noJsx/getI18n.js +5 -7
  3. package/account/i18n/noJsx/getI18n.js.map +1 -1
  4. package/account/i18n/withJsx/useI18n.js +15 -4
  5. package/account/i18n/withJsx/useI18n.js.map +1 -1
  6. package/bin/20.index.js +0 -85
  7. package/bin/33.index.js +55 -212
  8. package/bin/356.index.js +106 -45
  9. package/bin/36.index.js +1 -2922
  10. package/bin/{526.index.js → 392.index.js} +89 -3
  11. package/bin/40.index.js +1 -86
  12. package/bin/453.index.js +85 -22
  13. package/bin/573.index.js +4 -86
  14. package/bin/653.index.js +752 -0
  15. package/bin/658.index.js +197 -0
  16. package/bin/735.index.js +343 -116
  17. package/bin/786.index.js +78 -14
  18. package/bin/805.index.js +15 -18
  19. package/bin/921.index.js +79 -18
  20. package/bin/97.index.js +64 -13
  21. package/bin/main.js +165 -86
  22. package/bin/shared/constants.d.ts +2 -0
  23. package/bin/shared/constants.js +3 -1
  24. package/bin/shared/constants.js.map +1 -1
  25. package/bin/start-keycloak/startViteDevServer.d.ts +7 -0
  26. package/bin/tools/crawlAsync.d.ts +1 -1
  27. package/bin/tools/isTrackedByGit.d.ts +3 -0
  28. package/bin/tools/runPrettier.d.ts +5 -5
  29. package/bin/tools/untrackFromGit.d.ts +3 -0
  30. package/lib/getKcClsx.js +1 -2
  31. package/lib/getKcClsx.js.map +1 -1
  32. package/login/KcContext/KcContext.d.ts +2 -2
  33. package/login/KcContext/kcContextMocks.d.ts +1 -1
  34. package/login/TemplateProps.d.ts +0 -1
  35. package/login/i18n/noJsx/getI18n.js +5 -7
  36. package/login/i18n/noJsx/getI18n.js.map +1 -1
  37. package/login/i18n/withJsx/useI18n.js +15 -4
  38. package/login/i18n/withJsx/useI18n.js.map +1 -1
  39. package/login/pages/LoginConfigTotp.js +1 -1
  40. package/login/pages/LoginConfigTotp.js.map +1 -1
  41. package/login/pages/LoginPasskeysConditionalAuthenticate.js +16 -18
  42. package/login/pages/LoginPasskeysConditionalAuthenticate.js.map +1 -1
  43. package/package.json +17 -7
  44. package/src/account/i18n/noJsx/getI18n.tsx +5 -7
  45. package/src/account/i18n/withJsx/useI18n.tsx +18 -4
  46. package/src/bin/eject-page.ts +28 -10
  47. package/src/bin/initialize-account-theme/initializeAccountTheme_singlePage.ts +3 -18
  48. package/src/bin/initialize-account-theme/updateAccountThemeImplementationInConfig.ts +1 -2
  49. package/src/bin/keycloakify/generateFtl/kcContextDeclarationTemplate.ftl +39 -0
  50. package/src/bin/keycloakify/generateResources/generateResources.ts +6 -2
  51. package/src/bin/main.ts +51 -4
  52. package/src/bin/postinstall/getUiModuleFileSourceCodeReadyToBeCopied.ts +30 -19
  53. package/src/bin/postinstall/installUiModulesPeerDependencies.ts +3 -3
  54. package/src/bin/postinstall/managedGitignoreFile.ts +4 -3
  55. package/src/bin/postinstall/postinstall.ts +24 -2
  56. package/src/bin/postinstall/uiModuleMeta.ts +14 -9
  57. package/src/bin/shared/buildContext.ts +1 -2
  58. package/src/bin/shared/constants.ts +4 -1
  59. package/src/bin/start-keycloak/myrealm-realm-25.json +21 -34
  60. package/src/bin/start-keycloak/myrealm-realm-26.json +32 -35
  61. package/src/bin/start-keycloak/start-keycloak.ts +93 -1
  62. package/src/bin/start-keycloak/startViteDevServer.ts +39 -0
  63. package/src/bin/tools/crawlAsync.ts +6 -6
  64. package/src/bin/tools/isTrackedByGit.ts +29 -0
  65. package/src/bin/tools/listInstalledModules.ts +1 -2
  66. package/src/bin/tools/npmInstall.ts +396 -1
  67. package/src/bin/tools/runPrettier.ts +63 -14
  68. package/src/bin/tools/untrackFromGit.ts +24 -0
  69. package/src/bin/tsconfig.json +1 -1
  70. package/src/bin/update-kc-gen.ts +17 -2
  71. package/src/lib/getKcClsx.ts +1 -2
  72. package/src/login/KcContext/KcContext.ts +2 -2
  73. package/src/login/KcContext/kcContextMocks.ts +1 -1
  74. package/src/login/TemplateProps.ts +0 -1
  75. package/src/login/i18n/noJsx/getI18n.tsx +5 -7
  76. package/src/login/i18n/withJsx/useI18n.tsx +18 -4
  77. package/src/login/pages/LoginConfigTotp.tsx +18 -20
  78. package/src/login/pages/LoginPasskeysConditionalAuthenticate.tsx +51 -52
  79. package/src/tools/StatefulObservable/StatefulObservable.ts +1 -2
  80. package/src/tools/deepAssign.ts +1 -2
  81. package/src/tools/extractLastParenthesisContent.ts +43 -0
  82. package/src/vite-plugin/vite-plugin.ts +67 -0
  83. package/stories/login/pages/Info.stories.tsx +3 -39
  84. package/tools/StatefulObservable/StatefulObservable.js +1 -2
  85. package/tools/StatefulObservable/StatefulObservable.js.map +1 -1
  86. package/tools/deepAssign.js +1 -2
  87. package/tools/deepAssign.js.map +1 -1
  88. package/tools/extractLastParenthesisContent.d.ts +6 -0
  89. package/tools/extractLastParenthesisContent.js +36 -0
  90. package/tools/extractLastParenthesisContent.js.map +1 -0
  91. package/vite-plugin/index.js +326 -186
  92. package/bin/124.index.js +0 -348
  93. package/stories/login/pages/LoginDeviceVerifyUserCode.stories.tsx +0 -18
@@ -1,9 +1,9 @@
1
1
  "use strict";
2
- exports.id = 526;
3
- exports.ids = [526];
2
+ exports.id = 392;
3
+ exports.ids = [392];
4
4
  exports.modules = {
5
5
 
6
- /***/ 80526:
6
+ /***/ 18392:
7
7
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
8
8
 
9
9
  // ESM COMPAT FLAG
@@ -191,6 +191,29 @@ var fs_existsAsync = __webpack_require__(43765);
191
191
  var fs_rm = __webpack_require__(8699);
192
192
  // EXTERNAL MODULE: ./dist/bin/tools/downloadAndExtractArchive.js
193
193
  var downloadAndExtractArchive = __webpack_require__(38367);
194
+ ;// CONCATENATED MODULE: ./dist/bin/start-keycloak/startViteDevServer.js
195
+
196
+
197
+
198
+
199
+ (0,assert/* assert */.h)();
200
+ function startViteDevServer(params) {
201
+ const { buildContext, port } = params;
202
+ console.log(source_default().blue(`$ npx vite dev --port ${port}`));
203
+ const child = external_child_process_.spawn("npx", ["vite", "dev", "--port", `${port}`], {
204
+ cwd: buildContext.projectDirPath,
205
+ env: Object.assign(Object.assign({}, process.env), { [constants/* VITE_PLUGIN_SUB_SCRIPTS_ENV_NAMES.READ_KC_CONTEXT_FROM_URL */.TE.READ_KC_CONTEXT_FROM_URL]: "true" }),
206
+ shell: true
207
+ });
208
+ child.stdout.on("data", data => {
209
+ if (!data.toString("utf8").includes("[vite] hmr")) {
210
+ return;
211
+ }
212
+ process.stdout.write(data);
213
+ });
214
+ child.stderr.on("data", data => process.stderr.write(data));
215
+ }
216
+ //# sourceMappingURL=startViteDevServer.js.map
194
217
  ;// CONCATENATED MODULE: ./dist/bin/start-keycloak/start-keycloak.js
195
218
 
196
219
 
@@ -212,6 +235,7 @@ var downloadAndExtractArchive = __webpack_require__(38367);
212
235
 
213
236
 
214
237
 
238
+
215
239
 
216
240
 
217
241
  async function command(params) {
@@ -428,12 +452,48 @@ async function command(params) {
428
452
  catch (_h) { }
429
453
  const DEFAULT_PORT = 8080;
430
454
  const port = (_c = (_b = cliCommandOptions.port) !== null && _b !== void 0 ? _b : buildContext.startKeycloakOptions.port) !== null && _c !== void 0 ? _c : DEFAULT_PORT;
455
+ const devServerPort = (() => {
456
+ const hasSpaUi = buildContext.implementedThemeTypes.admin.isImplemented ||
457
+ (buildContext.implementedThemeTypes.account.isImplemented &&
458
+ buildContext.implementedThemeTypes.account.type === "Single-Page");
459
+ if (!hasSpaUi) {
460
+ return undefined;
461
+ }
462
+ if (buildContext.bundler !== "vite") {
463
+ console.log(source_default().yellow([
464
+ `WARNING: Since you are using ${buildContext.bundler} instead of Vite,`,
465
+ `you'll have to wait serval seconds for the changes you made on your account or admin theme to be reflected in the browser.\n`,
466
+ `For a better development experience, consider migrating to Vite.`
467
+ ].join(" ")));
468
+ return undefined;
469
+ }
470
+ if (keycloakMajorVersionNumber < 25) {
471
+ console.log(source_default().yellow([
472
+ `WARNING: Your account or admin theme can't be tested with hot module replacement on Keycloak ${keycloakMajorVersionNumber}.`,
473
+ `This mean that you'll have to wait serval seconds for the changes to be reflected in the browser.`,
474
+ `For a better development experience, select a more recent version of Keycloak.`
475
+ ].join("\n")));
476
+ return undefined;
477
+ }
478
+ return port + 1;
479
+ })();
480
+ if (devServerPort !== undefined) {
481
+ startViteDevServer({
482
+ buildContext,
483
+ port: devServerPort
484
+ });
485
+ }
431
486
  const SPACE_PLACEHOLDER = "SPACE_PLACEHOLDER_xKLmdPd";
432
487
  const dockerRunArgs = [
433
488
  `-p${SPACE_PLACEHOLDER}${port}:8080`,
434
489
  `--name${SPACE_PLACEHOLDER}${constants/* CONTAINER_NAME */.sv}`,
435
490
  `-e${SPACE_PLACEHOLDER}KEYCLOAK_ADMIN=admin`,
436
491
  `-e${SPACE_PLACEHOLDER}KEYCLOAK_ADMIN_PASSWORD=admin`,
492
+ ...(devServerPort === undefined
493
+ ? []
494
+ : [
495
+ `-e${SPACE_PLACEHOLDER}${constants/* KEYCLOAKIFY_SPA_DEV_SERVER_PORT */.Sz}=${devServerPort}`
496
+ ]),
437
497
  ...(buildContext.startKeycloakOptions.dockerExtraArgs.length === 0
438
498
  ? []
439
499
  : [
@@ -566,6 +626,32 @@ async function command(params) {
566
626
  ignoreInitial: true
567
627
  })
568
628
  .on("all", async (...[, filePath]) => {
629
+ ignore_account_spa: {
630
+ const doImplementAccountSpa = buildContext.implementedThemeTypes.account.isImplemented &&
631
+ buildContext.implementedThemeTypes.account.type === "Single-Page";
632
+ if (!doImplementAccountSpa) {
633
+ break ignore_account_spa;
634
+ }
635
+ if (!(0,isInside/* isInside */.V)({
636
+ dirPath: (0,external_path_.join)(buildContext.themeSrcDirPath, "account"),
637
+ filePath
638
+ })) {
639
+ break ignore_account_spa;
640
+ }
641
+ return;
642
+ }
643
+ ignore_admin: {
644
+ if (!buildContext.implementedThemeTypes.admin.isImplemented) {
645
+ break ignore_admin;
646
+ }
647
+ if (!(0,isInside/* isInside */.V)({
648
+ dirPath: (0,external_path_.join)(buildContext.themeSrcDirPath, "admin"),
649
+ filePath
650
+ })) {
651
+ break ignore_admin;
652
+ }
653
+ return;
654
+ }
569
655
  console.log(`Detected changes in ${filePath}`);
570
656
  await waitForDebounce();
571
657
  runFullBuild();
package/bin/40.index.js CHANGED
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  exports.id = 40;
3
- exports.ids = [40];
3
+ exports.ids = [40,658];
4
4
  exports.modules = {
5
5
 
6
6
  /***/ 18040:
@@ -155,91 +155,6 @@ function maybeDelegateCommandToCustomHandler(params) {
155
155
 
156
156
  /***/ }),
157
157
 
158
- /***/ 12171:
159
- /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
160
-
161
- /* harmony export */ __webpack_require__.d(__webpack_exports__, {
162
- /* harmony export */ "h": () => (/* binding */ SemVer)
163
- /* harmony export */ });
164
- var SemVer;
165
- (function (SemVer) {
166
- const bumpTypes = ["major", "minor", "patch", "rc", "no bump"];
167
- function parse(versionStr) {
168
- const match = versionStr.match(/^v?([0-9]+)\.([0-9]+)(?:\.([0-9]+))?(?:-rc.([0-9]+))?$/);
169
- if (!match) {
170
- throw new Error(`${versionStr} is not a valid semantic version`);
171
- }
172
- const semVer = Object.assign({ major: parseInt(match[1]), minor: parseInt(match[2]), patch: (() => {
173
- const str = match[3];
174
- return str === undefined ? 0 : parseInt(str);
175
- })() }, (() => {
176
- const str = match[4];
177
- return str === undefined ? {} : { rc: parseInt(str) };
178
- })());
179
- const initialStr = stringify(semVer);
180
- Object.defineProperty(semVer, "parsedFrom", {
181
- enumerable: true,
182
- get: function () {
183
- const currentStr = stringify(this);
184
- if (currentStr !== initialStr) {
185
- throw new Error(`SemVer.parsedFrom can't be read anymore, the version have been modified from ${initialStr} to ${currentStr}`);
186
- }
187
- return versionStr;
188
- }
189
- });
190
- return semVer;
191
- }
192
- SemVer.parse = parse;
193
- function stringify(v) {
194
- return `${v.major}.${v.minor}.${v.patch}${v.rc === undefined ? "" : `-rc.${v.rc}`}`;
195
- }
196
- SemVer.stringify = stringify;
197
- /**
198
- *
199
- * v1 < v2 => -1
200
- * v1 === v2 => 0
201
- * v1 > v2 => 1
202
- *
203
- */
204
- function compare(v1, v2) {
205
- const sign = (diff) => (diff === 0 ? 0 : diff < 0 ? -1 : 1);
206
- const noUndefined = (n) => n !== null && n !== void 0 ? n : Infinity;
207
- for (const level of ["major", "minor", "patch", "rc"]) {
208
- if (noUndefined(v1[level]) !== noUndefined(v2[level])) {
209
- return sign(noUndefined(v1[level]) - noUndefined(v2[level]));
210
- }
211
- }
212
- return 0;
213
- }
214
- SemVer.compare = compare;
215
- /*
216
- console.log(compare(parse("3.0.0-rc.3"), parse("3.0.0")) === -1 )
217
- console.log(compare(parse("3.0.0-rc.3"), parse("3.0.0-rc.4")) === -1 )
218
- console.log(compare(parse("3.0.0-rc.3"), parse("4.0.0")) === -1 )
219
- */
220
- function bumpType(params) {
221
- const versionAhead = typeof params.versionAhead === "string"
222
- ? parse(params.versionAhead)
223
- : params.versionAhead;
224
- const versionBehind = typeof params.versionBehind === "string"
225
- ? parse(params.versionBehind)
226
- : params.versionBehind;
227
- if (compare(versionBehind, versionAhead) === 1) {
228
- throw new Error(`Version regression ${stringify(versionBehind)} -> ${stringify(versionAhead)}`);
229
- }
230
- for (const level of ["major", "minor", "patch", "rc"]) {
231
- if (versionBehind[level] !== versionAhead[level]) {
232
- return level;
233
- }
234
- }
235
- return "no bump";
236
- }
237
- SemVer.bumpType = bumpType;
238
- })(SemVer || (SemVer = {}));
239
- //# sourceMappingURL=SemVer.js.map
240
-
241
- /***/ }),
242
-
243
158
  /***/ 89693:
244
159
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
245
160
 
package/bin/453.index.js CHANGED
@@ -69,21 +69,24 @@ async function command(params) {
69
69
  });
70
70
  return value;
71
71
  })();
72
- if (themeType === "admin" ||
73
- (themeType === "account" &&
74
- ((0,tsafe_assert__WEBPACK_IMPORTED_MODULE_5__/* .assert */ .h)(buildContext.implementedThemeTypes.account.isImplemented),
75
- buildContext.implementedThemeTypes.account.type === "Single-Page"))) {
76
- const srcDirPath = (0,path__WEBPACK_IMPORTED_MODULE_4__.join)((0,path__WEBPACK_IMPORTED_MODULE_4__.dirname)(buildContext.packageJsonFilePath), "node_modules", "@keycloakify", `keycloak-${themeType}-ui`, "src");
72
+ if (themeType === "admin") {
73
+ console.log("Use `npx keycloakify eject-file` command instead, see documentation");
74
+ process.exit(-1);
75
+ }
76
+ if (themeType === "account" &&
77
+ ((0,tsafe_assert__WEBPACK_IMPORTED_MODULE_5__/* .assert */ .h)(buildContext.implementedThemeTypes.account.isImplemented),
78
+ buildContext.implementedThemeTypes.account.type === "Single-Page")) {
79
+ const srcDirPath = (0,path__WEBPACK_IMPORTED_MODULE_4__.join)((0,path__WEBPACK_IMPORTED_MODULE_4__.dirname)(buildContext.packageJsonFilePath), "node_modules", "@keycloakify", `keycloak-account-ui`, "src");
77
80
  console.log([
78
- `There isn't an interactive CLI to eject components of the ${themeType} UI.`,
81
+ `There isn't an interactive CLI to eject components of the Account SPA UI.`,
79
82
  `You can however copy paste into your codebase the any file or directory from the following source directory:`,
80
83
  ``,
81
84
  `${chalk__WEBPACK_IMPORTED_MODULE_6___default().bold((0,path__WEBPACK_IMPORTED_MODULE_4__.join)((0,path__WEBPACK_IMPORTED_MODULE_4__.relative)(process.cwd(), srcDirPath)))}`,
82
85
  ``
83
86
  ].join("\n"));
84
87
  eject_entrypoint: {
85
- const kcUiTsxFileRelativePath = `Kc${(0,tsafe_capitalize__WEBPACK_IMPORTED_MODULE_9__/* .capitalize */ .k)(themeType)}Ui.tsx`;
86
- const themeSrcDirPath = (0,path__WEBPACK_IMPORTED_MODULE_4__.join)(buildContext.themeSrcDirPath, themeType);
88
+ const kcUiTsxFileRelativePath = `KcAccountUi.tsx`;
89
+ const themeSrcDirPath = (0,path__WEBPACK_IMPORTED_MODULE_4__.join)(buildContext.themeSrcDirPath, "account");
87
90
  const targetFilePath = (0,path__WEBPACK_IMPORTED_MODULE_4__.join)(themeSrcDirPath, kcUiTsxFileRelativePath);
88
91
  if (fs__WEBPACK_IMPORTED_MODULE_3__.existsSync(targetFilePath)) {
89
92
  break eject_entrypoint;
@@ -93,7 +96,16 @@ async function command(params) {
93
96
  const kcPageTsxFilePath = (0,path__WEBPACK_IMPORTED_MODULE_4__.join)(themeSrcDirPath, "KcPage.tsx");
94
97
  const kcPageTsxCode = fs__WEBPACK_IMPORTED_MODULE_3__.readFileSync(kcPageTsxFilePath).toString("utf8");
95
98
  const componentName = (0,path__WEBPACK_IMPORTED_MODULE_4__.basename)(kcUiTsxFileRelativePath).replace(/.tsx$/, "");
96
- const modifiedKcPageTsxCode = kcPageTsxCode.replace(`@keycloakify/keycloak-${themeType}-ui/${componentName}`, `./${componentName}`);
99
+ let modifiedKcPageTsxCode = kcPageTsxCode.replace(`@keycloakify/keycloak-account-ui/${componentName}`, `./${componentName}`);
100
+ run_prettier: {
101
+ if (!(await (0,_tools_runPrettier__WEBPACK_IMPORTED_MODULE_8__/* .getIsPrettierAvailable */ .MT)())) {
102
+ break run_prettier;
103
+ }
104
+ modifiedKcPageTsxCode = await (0,_tools_runPrettier__WEBPACK_IMPORTED_MODULE_8__/* .runPrettier */ .eY)({
105
+ filePath: kcPageTsxFilePath,
106
+ sourceCode: modifiedKcPageTsxCode
107
+ });
108
+ }
97
109
  fs__WEBPACK_IMPORTED_MODULE_3__.writeFileSync(kcPageTsxFilePath, Buffer.from(modifiedKcPageTsxCode, "utf8"));
98
110
  }
99
111
  const routesTsxFilePath = (0,path__WEBPACK_IMPORTED_MODULE_4__.relative)(process.cwd(), (0,path__WEBPACK_IMPORTED_MODULE_4__.join)(srcDirPath, "routes.tsx"));
@@ -381,8 +393,8 @@ function getNodeModulesBinDirPath() {
381
393
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
382
394
 
383
395
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
396
+ /* harmony export */ "LG": () => (/* binding */ getPrettier),
384
397
  /* harmony export */ "MT": () => (/* binding */ getIsPrettierAvailable),
385
- /* harmony export */ "cI": () => (/* binding */ getPrettierAndConfig),
386
398
  /* harmony export */ "eY": () => (/* binding */ runPrettier)
387
399
  /* harmony export */ });
388
400
  /* harmony import */ var _nodeModulesBinDirPath__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(73776);
@@ -390,17 +402,24 @@ function getNodeModulesBinDirPath() {
390
402
  /* harmony import */ var path__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(path__WEBPACK_IMPORTED_MODULE_1__);
391
403
  /* harmony import */ var fs_promises__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(73292);
392
404
  /* harmony import */ var fs_promises__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(fs_promises__WEBPACK_IMPORTED_MODULE_2__);
393
- /* harmony import */ var tsafe_id__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(38469);
405
+ /* harmony import */ var tsafe_id__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(38469);
394
406
  /* harmony import */ var tsafe_assert__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(29041);
395
407
  /* harmony import */ var chalk__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(78818);
396
408
  /* harmony import */ var chalk__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(chalk__WEBPACK_IMPORTED_MODULE_4__);
409
+ /* harmony import */ var crypto__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(6113);
410
+ /* harmony import */ var crypto__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(crypto__WEBPACK_IMPORTED_MODULE_5__);
411
+ /* harmony import */ var tsafe_symToStr__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(76030);
412
+ /* harmony import */ var _readThisNpmPackageVersion__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(64795);
413
+
397
414
 
398
415
 
399
416
 
400
417
 
401
418
 
402
419
 
403
- getIsPrettierAvailable.cache = (0,tsafe_id__WEBPACK_IMPORTED_MODULE_5__.id)(undefined);
420
+
421
+
422
+ getIsPrettierAvailable.cache = (0,tsafe_id__WEBPACK_IMPORTED_MODULE_7__.id)(undefined);
404
423
  async function getIsPrettierAvailable() {
405
424
  var _a;
406
425
  if (getIsPrettierAvailable.cache !== undefined) {
@@ -413,26 +432,53 @@ async function getIsPrettierAvailable() {
413
432
  getIsPrettierAvailable.cache = isPrettierAvailable;
414
433
  return isPrettierAvailable;
415
434
  }
416
- getPrettierAndConfig.cache = (0,tsafe_id__WEBPACK_IMPORTED_MODULE_5__.id)(undefined);
417
- async function getPrettierAndConfig() {
435
+ getPrettier.cache = (0,tsafe_id__WEBPACK_IMPORTED_MODULE_7__.id)(undefined);
436
+ async function getPrettier() {
418
437
  (0,tsafe_assert__WEBPACK_IMPORTED_MODULE_3__/* .assert */ .h)(getIsPrettierAvailable());
419
- if (getPrettierAndConfig.cache !== undefined) {
420
- return getPrettierAndConfig.cache;
438
+ if (getPrettier.cache !== undefined) {
439
+ return getPrettier.cache;
421
440
  }
422
- const prettier = await Promise.resolve(/* import() */).then(__webpack_require__.t.bind(__webpack_require__, 79421, 23));
441
+ let prettier = (0,tsafe_id__WEBPACK_IMPORTED_MODULE_7__.id)(undefined);
442
+ import_prettier: {
443
+ // NOTE: When module is linked we want to make sure we import the correct version
444
+ // of prettier, that is the one of the project, not the one of this repo.
445
+ // So we do a sketchy eval to bypass ncc.
446
+ // We make sure to only do that when linking, otherwise we import properly.
447
+ if ((0,_readThisNpmPackageVersion__WEBPACK_IMPORTED_MODULE_6__/* .readThisNpmPackageVersion */ .K)().startsWith("0.0.0")) {
448
+ eval(`${(0,tsafe_symToStr__WEBPACK_IMPORTED_MODULE_8__/* .symToStr */ .r)({ prettier })} = require("${(0,path__WEBPACK_IMPORTED_MODULE_1__.resolve)((0,path__WEBPACK_IMPORTED_MODULE_1__.join)((0,_nodeModulesBinDirPath__WEBPACK_IMPORTED_MODULE_0__/* .getNodeModulesBinDirPath */ .K)(), "..", "prettier"))}")`);
449
+ (0,tsafe_assert__WEBPACK_IMPORTED_MODULE_3__/* .assert */ .h)(!(0,tsafe_assert__WEBPACK_IMPORTED_MODULE_3__.is)(prettier));
450
+ break import_prettier;
451
+ }
452
+ prettier = await Promise.resolve(/* import() */).then(__webpack_require__.t.bind(__webpack_require__, 79421, 23));
453
+ }
454
+ const configHash = await (async () => {
455
+ const configFilePath = await prettier.resolveConfigFile((0,path__WEBPACK_IMPORTED_MODULE_1__.join)((0,_nodeModulesBinDirPath__WEBPACK_IMPORTED_MODULE_0__/* .getNodeModulesBinDirPath */ .K)(), ".."));
456
+ if (configFilePath === null) {
457
+ return "";
458
+ }
459
+ const data = await fs_promises__WEBPACK_IMPORTED_MODULE_2__.readFile(configFilePath);
460
+ return crypto__WEBPACK_IMPORTED_MODULE_5__.createHash("sha256").update(data).digest("hex");
461
+ })();
423
462
  const prettierAndConfig = {
424
463
  prettier,
425
- config: await prettier.resolveConfig((0,path__WEBPACK_IMPORTED_MODULE_1__.join)((0,_nodeModulesBinDirPath__WEBPACK_IMPORTED_MODULE_0__/* .getNodeModulesBinDirPath */ .K)(), ".."))
464
+ configHash
426
465
  };
427
- getPrettierAndConfig.cache = prettierAndConfig;
466
+ getPrettier.cache = prettierAndConfig;
428
467
  return prettierAndConfig;
429
468
  }
430
469
  async function runPrettier(params) {
431
470
  const { sourceCode, filePath } = params;
432
471
  let formattedSourceCode;
433
472
  try {
434
- const { prettier, config } = await getPrettierAndConfig();
435
- formattedSourceCode = await prettier.format(sourceCode, Object.assign(Object.assign({}, config), { filePath }));
473
+ const { prettier } = await getPrettier();
474
+ const { ignored, inferredParser } = await prettier.getFileInfo(filePath, {
475
+ resolveConfig: true
476
+ });
477
+ if (ignored) {
478
+ return sourceCode;
479
+ }
480
+ const config = await prettier.resolveConfig(filePath);
481
+ formattedSourceCode = await prettier.format(sourceCode, Object.assign(Object.assign({}, config), { filePath, parser: inferredParser !== null && inferredParser !== void 0 ? inferredParser : undefined }));
436
482
  }
437
483
  catch (error) {
438
484
  console.log(chalk__WEBPACK_IMPORTED_MODULE_4___default().red(`You probably need to upgrade the version of prettier in your project`));
@@ -1021,7 +1067,6 @@ exports.withObjectValues = withObjectValues;
1021
1067
  /* harmony export */ });
1022
1068
  /** @see <https://docs.tsafe.dev/capitalize> */
1023
1069
  function capitalize(str) {
1024
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
1025
1070
  return (str.charAt(0).toUpperCase() + str.slice(1));
1026
1071
  }
1027
1072
 
@@ -1029,6 +1074,24 @@ function capitalize(str) {
1029
1074
  //# sourceMappingURL=capitalize.mjs.map
1030
1075
 
1031
1076
 
1077
+ /***/ }),
1078
+
1079
+ /***/ 76030:
1080
+ /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
1081
+
1082
+ /* harmony export */ __webpack_require__.d(__webpack_exports__, {
1083
+ /* harmony export */ "r": () => (/* binding */ symToStr)
1084
+ /* harmony export */ });
1085
+ /** @see <https://docs.tsafe.dev/main/symtostr> */
1086
+ function symToStr(wrap) {
1087
+ // @ts-expect-error: We know better
1088
+ return Object.keys(wrap)[0];
1089
+ }
1090
+
1091
+
1092
+ //# sourceMappingURL=symToStr.mjs.map
1093
+
1094
+
1032
1095
  /***/ })
1033
1096
 
1034
1097
  };
package/bin/573.index.js CHANGED
@@ -1022,7 +1022,10 @@ async function generateResources(params) {
1022
1022
  ? ["deprecatedMode=false"]
1023
1023
  : []),
1024
1024
  ...((_a = buildContext.extraThemeProperties) !== null && _a !== void 0 ? _a : []),
1025
- ...buildContext.environmentVariables.map(({ name, default: defaultValue }) => `${name}=\${env.${name}:${(0,escapeStringForPropertiesFile/* escapeStringForPropertiesFile */.y)(defaultValue)}}`),
1025
+ ...[
1026
+ ...buildContext.environmentVariables,
1027
+ { name: constants/* KEYCLOAKIFY_SPA_DEV_SERVER_PORT */.Sz, default: "" }
1028
+ ].map(({ name, default: defaultValue }) => `${name}=\${env.${name}:${(0,escapeStringForPropertiesFile/* escapeStringForPropertiesFile */.y)(defaultValue)}}`),
1026
1029
  ...(languageTags === undefined
1027
1030
  ? []
1028
1031
  : [`locales=${languageTags.join(",")}`])
@@ -1529,91 +1532,6 @@ async function command(params) {
1529
1532
 
1530
1533
  /***/ }),
1531
1534
 
1532
- /***/ 12171:
1533
- /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
1534
-
1535
- /* harmony export */ __webpack_require__.d(__webpack_exports__, {
1536
- /* harmony export */ "h": () => (/* binding */ SemVer)
1537
- /* harmony export */ });
1538
- var SemVer;
1539
- (function (SemVer) {
1540
- const bumpTypes = ["major", "minor", "patch", "rc", "no bump"];
1541
- function parse(versionStr) {
1542
- const match = versionStr.match(/^v?([0-9]+)\.([0-9]+)(?:\.([0-9]+))?(?:-rc.([0-9]+))?$/);
1543
- if (!match) {
1544
- throw new Error(`${versionStr} is not a valid semantic version`);
1545
- }
1546
- const semVer = Object.assign({ major: parseInt(match[1]), minor: parseInt(match[2]), patch: (() => {
1547
- const str = match[3];
1548
- return str === undefined ? 0 : parseInt(str);
1549
- })() }, (() => {
1550
- const str = match[4];
1551
- return str === undefined ? {} : { rc: parseInt(str) };
1552
- })());
1553
- const initialStr = stringify(semVer);
1554
- Object.defineProperty(semVer, "parsedFrom", {
1555
- enumerable: true,
1556
- get: function () {
1557
- const currentStr = stringify(this);
1558
- if (currentStr !== initialStr) {
1559
- throw new Error(`SemVer.parsedFrom can't be read anymore, the version have been modified from ${initialStr} to ${currentStr}`);
1560
- }
1561
- return versionStr;
1562
- }
1563
- });
1564
- return semVer;
1565
- }
1566
- SemVer.parse = parse;
1567
- function stringify(v) {
1568
- return `${v.major}.${v.minor}.${v.patch}${v.rc === undefined ? "" : `-rc.${v.rc}`}`;
1569
- }
1570
- SemVer.stringify = stringify;
1571
- /**
1572
- *
1573
- * v1 < v2 => -1
1574
- * v1 === v2 => 0
1575
- * v1 > v2 => 1
1576
- *
1577
- */
1578
- function compare(v1, v2) {
1579
- const sign = (diff) => (diff === 0 ? 0 : diff < 0 ? -1 : 1);
1580
- const noUndefined = (n) => n !== null && n !== void 0 ? n : Infinity;
1581
- for (const level of ["major", "minor", "patch", "rc"]) {
1582
- if (noUndefined(v1[level]) !== noUndefined(v2[level])) {
1583
- return sign(noUndefined(v1[level]) - noUndefined(v2[level]));
1584
- }
1585
- }
1586
- return 0;
1587
- }
1588
- SemVer.compare = compare;
1589
- /*
1590
- console.log(compare(parse("3.0.0-rc.3"), parse("3.0.0")) === -1 )
1591
- console.log(compare(parse("3.0.0-rc.3"), parse("3.0.0-rc.4")) === -1 )
1592
- console.log(compare(parse("3.0.0-rc.3"), parse("4.0.0")) === -1 )
1593
- */
1594
- function bumpType(params) {
1595
- const versionAhead = typeof params.versionAhead === "string"
1596
- ? parse(params.versionAhead)
1597
- : params.versionAhead;
1598
- const versionBehind = typeof params.versionBehind === "string"
1599
- ? parse(params.versionBehind)
1600
- : params.versionBehind;
1601
- if (compare(versionBehind, versionAhead) === 1) {
1602
- throw new Error(`Version regression ${stringify(versionBehind)} -> ${stringify(versionAhead)}`);
1603
- }
1604
- for (const level of ["major", "minor", "patch", "rc"]) {
1605
- if (versionBehind[level] !== versionAhead[level]) {
1606
- return level;
1607
- }
1608
- }
1609
- return "no bump";
1610
- }
1611
- SemVer.bumpType = bumpType;
1612
- })(SemVer || (SemVer = {}));
1613
- //# sourceMappingURL=SemVer.js.map
1614
-
1615
- /***/ }),
1616
-
1617
1535
  /***/ 27190:
1618
1536
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
1619
1537