keycloakify 11.3.0 → 11.3.2

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.
@@ -1,36 +1,25 @@
1
1
  "use strict";
2
- exports.id = 193;
3
- exports.ids = [193];
2
+ exports.id = 40;
3
+ exports.ids = [40];
4
4
  exports.modules = {
5
5
 
6
- /***/ 23193:
6
+ /***/ 18040:
7
7
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
8
8
 
9
- // ESM COMPAT FLAG
10
9
  __webpack_require__.r(__webpack_exports__);
11
-
12
- // EXPORTS
13
- __webpack_require__.d(__webpack_exports__, {
14
- "command": () => (/* binding */ command)
15
- });
16
-
17
- // EXTERNAL MODULE: external "path"
18
- var external_path_ = __webpack_require__(71017);
19
- // EXTERNAL MODULE: ./dist/bin/shared/constants.js
20
- var constants = __webpack_require__(173);
21
- // EXTERNAL MODULE: ./dist/bin/tools/readThisNpmPackageVersion.js
22
- var readThisNpmPackageVersion = __webpack_require__(64795);
23
- // EXTERNAL MODULE: ./node_modules/tsafe/esm/assert.mjs + 1 modules
24
- var assert = __webpack_require__(29041);
25
- // EXTERNAL MODULE: external "fs"
26
- var external_fs_ = __webpack_require__(57147);
27
- // EXTERNAL MODULE: ./dist/bin/tools/fs.rmSync.js
28
- var fs_rmSync = __webpack_require__(89693);
29
- // EXTERNAL MODULE: ./dist/bin/tools/transformCodebase.js
30
- var transformCodebase = __webpack_require__(60332);
31
- // EXTERNAL MODULE: ./dist/bin/tools/getThisCodebaseRootDirPath.js
32
- var getThisCodebaseRootDirPath = __webpack_require__(58822);
33
- ;// CONCATENATED MODULE: ./dist/bin/shared/copyKeycloakResourcesToPublic.js
10
+ /* harmony export */ __webpack_require__.d(__webpack_exports__, {
11
+ /* harmony export */ "command": () => (/* binding */ command)
12
+ /* harmony export */ });
13
+ /* harmony import */ var _shared_customHandler_delegate__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(72138);
14
+ /* harmony import */ var path__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(71017);
15
+ /* harmony import */ var path__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(path__WEBPACK_IMPORTED_MODULE_1__);
16
+ /* harmony import */ var _shared_constants__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(173);
17
+ /* harmony import */ var _tools_readThisNpmPackageVersion__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(64795);
18
+ /* harmony import */ var fs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(57147);
19
+ /* harmony import */ var fs__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(fs__WEBPACK_IMPORTED_MODULE_4__);
20
+ /* harmony import */ var _tools_fs_rmSync__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(89693);
21
+ /* harmony import */ var _tools_transformCodebase__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(60332);
22
+ /* harmony import */ var _tools_getThisCodebaseRootDirPath__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(58822);
34
23
 
35
24
 
36
25
 
@@ -39,65 +28,55 @@ var getThisCodebaseRootDirPath = __webpack_require__(58822);
39
28
 
40
29
 
41
30
 
42
- (0,assert/* assert */.h)();
43
- function copyKeycloakResourcesToPublic(params) {
31
+ async function command(params) {
44
32
  const { buildContext } = params;
45
- const destDirPath = (0,external_path_.join)(buildContext.publicDirPath, constants/* WELL_KNOWN_DIRECTORY_BASE_NAME.KEYCLOAKIFY_DEV_RESOURCES */.Ju.KEYCLOAKIFY_DEV_RESOURCES);
46
- const keycloakifyBuildinfoFilePath = (0,external_path_.join)(destDirPath, "keycloakify.buildinfo");
33
+ const { hasBeenHandled } = (0,_shared_customHandler_delegate__WEBPACK_IMPORTED_MODULE_0__/* .maybeDelegateCommandToCustomHandler */ .q)({
34
+ commandName: "copy-keycloak-resources-to-public",
35
+ buildContext
36
+ });
37
+ if (hasBeenHandled) {
38
+ return;
39
+ }
40
+ const destDirPath = (0,path__WEBPACK_IMPORTED_MODULE_1__.join)(buildContext.publicDirPath, _shared_constants__WEBPACK_IMPORTED_MODULE_2__/* .WELL_KNOWN_DIRECTORY_BASE_NAME.KEYCLOAKIFY_DEV_RESOURCES */ .Ju.KEYCLOAKIFY_DEV_RESOURCES);
41
+ const keycloakifyBuildinfoFilePath = (0,path__WEBPACK_IMPORTED_MODULE_1__.join)(destDirPath, "keycloakify.buildinfo");
47
42
  const keycloakifyBuildinfoRaw = JSON.stringify({
48
- keycloakifyVersion: (0,readThisNpmPackageVersion/* readThisNpmPackageVersion */.K)()
43
+ keycloakifyVersion: (0,_tools_readThisNpmPackageVersion__WEBPACK_IMPORTED_MODULE_3__/* .readThisNpmPackageVersion */ .K)()
49
44
  }, null, 2);
50
45
  skip_if_already_done: {
51
- if (!external_fs_.existsSync(keycloakifyBuildinfoFilePath)) {
46
+ if (!fs__WEBPACK_IMPORTED_MODULE_4__.existsSync(keycloakifyBuildinfoFilePath)) {
52
47
  break skip_if_already_done;
53
48
  }
54
- const keycloakifyBuildinfoRaw_previousRun = external_fs_.readFileSync(keycloakifyBuildinfoFilePath)
49
+ const keycloakifyBuildinfoRaw_previousRun = fs__WEBPACK_IMPORTED_MODULE_4__.readFileSync(keycloakifyBuildinfoFilePath)
55
50
  .toString("utf8");
56
51
  if (keycloakifyBuildinfoRaw_previousRun !== keycloakifyBuildinfoRaw) {
57
52
  break skip_if_already_done;
58
53
  }
59
54
  return;
60
55
  }
61
- (0,fs_rmSync/* rmSync */.a)(destDirPath, { force: true, recursive: true });
56
+ (0,_tools_fs_rmSync__WEBPACK_IMPORTED_MODULE_5__/* .rmSync */ .a)(destDirPath, { force: true, recursive: true });
62
57
  // NOTE: To remove in a while, remove the legacy keycloak-resources directory
63
- (0,fs_rmSync/* rmSync */.a)((0,external_path_.join)((0,external_path_.dirname)(destDirPath), "keycloak-resources"), {
58
+ (0,_tools_fs_rmSync__WEBPACK_IMPORTED_MODULE_5__/* .rmSync */ .a)((0,path__WEBPACK_IMPORTED_MODULE_1__.join)((0,path__WEBPACK_IMPORTED_MODULE_1__.dirname)(destDirPath), "keycloak-resources"), {
64
59
  force: true,
65
60
  recursive: true
66
61
  });
67
- (0,fs_rmSync/* rmSync */.a)((0,external_path_.join)((0,external_path_.dirname)(destDirPath), ".keycloakify"), {
62
+ (0,_tools_fs_rmSync__WEBPACK_IMPORTED_MODULE_5__/* .rmSync */ .a)((0,path__WEBPACK_IMPORTED_MODULE_1__.join)((0,path__WEBPACK_IMPORTED_MODULE_1__.dirname)(destDirPath), ".keycloakify"), {
68
63
  force: true,
69
64
  recursive: true
70
65
  });
71
- external_fs_.mkdirSync(destDirPath, { recursive: true });
72
- external_fs_.writeFileSync((0,external_path_.join)(destDirPath, ".gitignore"), Buffer.from("*", "utf8"));
73
- (0,transformCodebase/* transformCodebase */.N)({
74
- srcDirPath: (0,external_path_.join)((0,getThisCodebaseRootDirPath/* getThisCodebaseRootDirPath */.e)(), "res", "public", constants/* WELL_KNOWN_DIRECTORY_BASE_NAME.KEYCLOAKIFY_DEV_RESOURCES */.Ju.KEYCLOAKIFY_DEV_RESOURCES),
66
+ fs__WEBPACK_IMPORTED_MODULE_4__.mkdirSync(destDirPath, { recursive: true });
67
+ fs__WEBPACK_IMPORTED_MODULE_4__.writeFileSync((0,path__WEBPACK_IMPORTED_MODULE_1__.join)(destDirPath, ".gitignore"), Buffer.from("*", "utf8"));
68
+ (0,_tools_transformCodebase__WEBPACK_IMPORTED_MODULE_6__/* .transformCodebase */ .N)({
69
+ srcDirPath: (0,path__WEBPACK_IMPORTED_MODULE_1__.join)((0,_tools_getThisCodebaseRootDirPath__WEBPACK_IMPORTED_MODULE_7__/* .getThisCodebaseRootDirPath */ .e)(), "res", "public", _shared_constants__WEBPACK_IMPORTED_MODULE_2__/* .WELL_KNOWN_DIRECTORY_BASE_NAME.KEYCLOAKIFY_DEV_RESOURCES */ .Ju.KEYCLOAKIFY_DEV_RESOURCES),
75
70
  destDirPath
76
71
  });
77
- external_fs_.writeFileSync((0,external_path_.join)(destDirPath, "README.txt"), Buffer.from(
72
+ fs__WEBPACK_IMPORTED_MODULE_4__.writeFileSync((0,path__WEBPACK_IMPORTED_MODULE_1__.join)(destDirPath, "README.txt"), Buffer.from(
78
73
  // prettier-ignore
79
74
  [
80
75
  "This directory is only used in dev mode by Keycloakify",
81
76
  "It won't be included in your final build.",
82
77
  "Do not modify anything in this directory.",
83
78
  ].join("\n")));
84
- external_fs_.writeFileSync(keycloakifyBuildinfoFilePath, Buffer.from(keycloakifyBuildinfoRaw, "utf8"));
85
- }
86
- //# sourceMappingURL=copyKeycloakResourcesToPublic.js.map
87
- // EXTERNAL MODULE: ./dist/bin/shared/customHandler_delegate.js + 1 modules
88
- var customHandler_delegate = __webpack_require__(72138);
89
- ;// CONCATENATED MODULE: ./dist/bin/copy-keycloak-resources-to-public.js
90
-
91
-
92
- async function command(params) {
93
- const { buildContext } = params;
94
- (0,customHandler_delegate/* maybeDelegateCommandToCustomHandler */.q)({
95
- commandName: "copy-keycloak-resources-to-public",
96
- buildContext
97
- });
98
- copyKeycloakResourcesToPublic({
99
- buildContext
100
- });
79
+ fs__WEBPACK_IMPORTED_MODULE_4__.writeFileSync(keycloakifyBuildinfoFilePath, Buffer.from(keycloakifyBuildinfoRaw, "utf8"));
101
80
  }
102
81
  //# sourceMappingURL=copy-keycloak-resources-to-public.js.map
103
82
 
@@ -154,7 +133,7 @@ var external_fs_ = __webpack_require__(57147);
154
133
  function maybeDelegateCommandToCustomHandler(params) {
155
134
  const { commandName, buildContext } = params;
156
135
  if (!external_fs_.readdirSync((0,external_path_.dirname)(process.argv[1])).includes(BIN_NAME)) {
157
- return;
136
+ return { hasBeenHandled: false };
158
137
  }
159
138
  try {
160
139
  external_child_process_.execSync(`npx ${BIN_NAME}`, {
@@ -165,11 +144,11 @@ function maybeDelegateCommandToCustomHandler(params) {
165
144
  catch (error) {
166
145
  const status = error.status;
167
146
  if (status === NOT_IMPLEMENTED_EXIT_CODE) {
168
- return;
147
+ return { hasBeenHandled: false };
169
148
  }
170
149
  process.exit(status);
171
150
  }
172
- process.exit(0);
151
+ return { hasBeenHandled: true };
173
152
  }
174
153
  //# sourceMappingURL=customHandler_delegate.js.map
175
154
 
package/bin/453.index.js CHANGED
@@ -14,15 +14,17 @@ __webpack_require__.r(__webpack_exports__);
14
14
  /* harmony import */ var cli_select__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(99398);
15
15
  /* harmony import */ var cli_select__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(cli_select__WEBPACK_IMPORTED_MODULE_1__);
16
16
  /* harmony import */ var _shared_constants__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(173);
17
- /* harmony import */ var tsafe_capitalize__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(14899);
17
+ /* harmony import */ var tsafe_capitalize__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(14899);
18
18
  /* harmony import */ var fs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(57147);
19
19
  /* harmony import */ var fs__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(fs__WEBPACK_IMPORTED_MODULE_3__);
20
20
  /* harmony import */ var path__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(71017);
21
21
  /* harmony import */ var path__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(path__WEBPACK_IMPORTED_MODULE_4__);
22
- /* harmony import */ var _tools_kebabCaseToSnakeCase__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(17192);
22
+ /* harmony import */ var _tools_kebabCaseToSnakeCase__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(17192);
23
23
  /* harmony import */ var tsafe_assert__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(29041);
24
24
  /* harmony import */ var chalk__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(78818);
25
25
  /* harmony import */ var chalk__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(chalk__WEBPACK_IMPORTED_MODULE_6__);
26
+ /* harmony import */ var _shared_customHandler_delegate__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(72138);
27
+
26
28
 
27
29
 
28
30
 
@@ -34,6 +36,13 @@ __webpack_require__.r(__webpack_exports__);
34
36
 
35
37
  async function command(params) {
36
38
  const { buildContext } = params;
39
+ const { hasBeenHandled } = (0,_shared_customHandler_delegate__WEBPACK_IMPORTED_MODULE_7__/* .maybeDelegateCommandToCustomHandler */ .q)({
40
+ commandName: "eject-page",
41
+ buildContext
42
+ });
43
+ if (hasBeenHandled) {
44
+ return;
45
+ }
37
46
  console.log(chalk__WEBPACK_IMPORTED_MODULE_6___default().cyan("Theme type:"));
38
47
  const themeType = await (async () => {
39
48
  const values = _shared_constants__WEBPACK_IMPORTED_MODULE_2__/* .THEME_TYPES.filter */ .Jh.filter(themeType => {
@@ -121,7 +130,7 @@ async function command(params) {
121
130
  if (pageIdOrComponent === userProfileFormFieldsValue) {
122
131
  return "UserProfileFormFields.tsx";
123
132
  }
124
- return (0,tsafe_capitalize__WEBPACK_IMPORTED_MODULE_7__/* .capitalize */ .k)((0,_tools_kebabCaseToSnakeCase__WEBPACK_IMPORTED_MODULE_8__/* .kebabCaseToCamelCase */ .A)(pageIdOrComponent)).replace(/ftl$/, "tsx");
133
+ return (0,tsafe_capitalize__WEBPACK_IMPORTED_MODULE_8__/* .capitalize */ .k)((0,_tools_kebabCaseToSnakeCase__WEBPACK_IMPORTED_MODULE_9__/* .kebabCaseToCamelCase */ .A)(pageIdOrComponent)).replace(/ftl$/, "tsx");
125
134
  })();
126
135
  const pagesOrDot = (() => {
127
136
  if (pageIdOrComponent === templateValue ||
@@ -145,10 +154,10 @@ async function command(params) {
145
154
  }
146
155
  fs__WEBPACK_IMPORTED_MODULE_3__.writeFileSync(targetFilePath, Buffer.from(componentCode, "utf8"));
147
156
  console.log(`${chalk__WEBPACK_IMPORTED_MODULE_6___default().green("✓")} ${chalk__WEBPACK_IMPORTED_MODULE_6___default().bold((0,path__WEBPACK_IMPORTED_MODULE_4__.join)(".", (0,path__WEBPACK_IMPORTED_MODULE_4__.relative)(process.cwd(), targetFilePath)))} copy pasted from the Keycloakify source code into your project`);
148
- edit_KcApp: {
157
+ edit_KcPage: {
149
158
  if (pageIdOrComponent !== templateValue &&
150
159
  pageIdOrComponent !== userProfileFormFieldsValue) {
151
- break edit_KcApp;
160
+ break edit_KcPage;
152
161
  }
153
162
  const kcAppTsxPath = (0,path__WEBPACK_IMPORTED_MODULE_4__.join)(buildContext.themeSrcDirPath, themeType, "KcPage.tsx");
154
163
  const kcAppTsxCode = fs__WEBPACK_IMPORTED_MODULE_3__.readFileSync(kcAppTsxPath).toString("utf8");
@@ -226,6 +235,78 @@ async function command(params) {
226
235
 
227
236
  /***/ }),
228
237
 
238
+ /***/ 72138:
239
+ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
240
+
241
+
242
+ // EXPORTS
243
+ __webpack_require__.d(__webpack_exports__, {
244
+ "q": () => (/* binding */ maybeDelegateCommandToCustomHandler)
245
+ });
246
+
247
+ // EXTERNAL MODULE: ./node_modules/tsafe/esm/assert.mjs + 1 modules
248
+ var esm_assert = __webpack_require__(29041);
249
+ // EXTERNAL MODULE: ./dist/bin/shared/constants.js
250
+ var constants = __webpack_require__(173);
251
+ ;// CONCATENATED MODULE: ./dist/bin/shared/customHandler.js
252
+
253
+
254
+ const BIN_NAME = "_keycloakify-custom-handler";
255
+ const NOT_IMPLEMENTED_EXIT_CODE = 78;
256
+ function readParams(params) {
257
+ const { apiVersion } = params;
258
+ assert(apiVersion === "v1");
259
+ const commandName = (() => {
260
+ const envValue = process.env[CUSTOM_HANDLER_ENV_NAMES.COMMAND_NAME];
261
+ assert(envValue !== undefined);
262
+ return envValue;
263
+ })();
264
+ const buildContext = (() => {
265
+ const envValue = process.env[CUSTOM_HANDLER_ENV_NAMES.BUILD_CONTEXT];
266
+ assert(envValue !== undefined);
267
+ return JSON.parse(envValue);
268
+ })();
269
+ return { commandName, buildContext };
270
+ }
271
+ //# sourceMappingURL=customHandler.js.map
272
+ // EXTERNAL MODULE: external "child_process"
273
+ var external_child_process_ = __webpack_require__(32081);
274
+ // EXTERNAL MODULE: external "path"
275
+ var external_path_ = __webpack_require__(71017);
276
+ // EXTERNAL MODULE: external "fs"
277
+ var external_fs_ = __webpack_require__(57147);
278
+ ;// CONCATENATED MODULE: ./dist/bin/shared/customHandler_delegate.js
279
+
280
+
281
+
282
+
283
+
284
+
285
+ (0,esm_assert/* assert */.h)();
286
+ function maybeDelegateCommandToCustomHandler(params) {
287
+ const { commandName, buildContext } = params;
288
+ if (!external_fs_.readdirSync((0,external_path_.dirname)(process.argv[1])).includes(BIN_NAME)) {
289
+ return { hasBeenHandled: false };
290
+ }
291
+ try {
292
+ external_child_process_.execSync(`npx ${BIN_NAME}`, {
293
+ stdio: "inherit",
294
+ env: Object.assign(Object.assign({}, process.env), { [constants/* CUSTOM_HANDLER_ENV_NAMES.COMMAND_NAME */._S.COMMAND_NAME]: commandName, [constants/* CUSTOM_HANDLER_ENV_NAMES.BUILD_CONTEXT */._S.BUILD_CONTEXT]: JSON.stringify(buildContext) })
295
+ });
296
+ }
297
+ catch (error) {
298
+ const status = error.status;
299
+ if (status === NOT_IMPLEMENTED_EXIT_CODE) {
300
+ return { hasBeenHandled: false };
301
+ }
302
+ process.exit(status);
303
+ }
304
+ return { hasBeenHandled: true };
305
+ }
306
+ //# sourceMappingURL=customHandler_delegate.js.map
307
+
308
+ /***/ }),
309
+
229
310
  /***/ 17192:
230
311
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
231
312
 
package/bin/780.index.js CHANGED
@@ -98,10 +98,13 @@ var customHandler_delegate = __webpack_require__(72138);
98
98
 
99
99
  async function command(params) {
100
100
  const { buildContext } = params;
101
- (0,customHandler_delegate/* maybeDelegateCommandToCustomHandler */.q)({
101
+ const { hasBeenHandled } = (0,customHandler_delegate/* maybeDelegateCommandToCustomHandler */.q)({
102
102
  commandName: "initialize-account-theme",
103
103
  buildContext
104
104
  });
105
+ if (hasBeenHandled) {
106
+ return;
107
+ }
105
108
  const accountThemeSrcDirPath = (0,external_path_.join)(buildContext.themeSrcDirPath, "account");
106
109
  if (external_fs_.existsSync(accountThemeSrcDirPath) &&
107
110
  external_fs_.readdirSync(accountThemeSrcDirPath).length > 0) {
@@ -222,7 +225,7 @@ var external_fs_ = __webpack_require__(57147);
222
225
  function maybeDelegateCommandToCustomHandler(params) {
223
226
  const { commandName, buildContext } = params;
224
227
  if (!external_fs_.readdirSync((0,external_path_.dirname)(process.argv[1])).includes(BIN_NAME)) {
225
- return;
228
+ return { hasBeenHandled: false };
226
229
  }
227
230
  try {
228
231
  external_child_process_.execSync(`npx ${BIN_NAME}`, {
@@ -233,11 +236,11 @@ function maybeDelegateCommandToCustomHandler(params) {
233
236
  catch (error) {
234
237
  const status = error.status;
235
238
  if (status === NOT_IMPLEMENTED_EXIT_CODE) {
236
- return;
239
+ return { hasBeenHandled: false };
237
240
  }
238
241
  process.exit(status);
239
242
  }
240
- process.exit(0);
243
+ return { hasBeenHandled: true };
241
244
  }
242
245
  //# sourceMappingURL=customHandler_delegate.js.map
243
246
 
@@ -286,10 +289,13 @@ __webpack_require__.r(__webpack_exports__);
286
289
 
287
290
  async function command(params) {
288
291
  const { buildContext } = params;
289
- (0,_shared_customHandler_delegate__WEBPACK_IMPORTED_MODULE_3__/* .maybeDelegateCommandToCustomHandler */ .q)({
292
+ const { hasBeenHandled } = (0,_shared_customHandler_delegate__WEBPACK_IMPORTED_MODULE_3__/* .maybeDelegateCommandToCustomHandler */ .q)({
290
293
  commandName: "update-kc-gen",
291
294
  buildContext
292
295
  });
296
+ if (hasBeenHandled) {
297
+ return;
298
+ }
293
299
  const filePath = (0,path__WEBPACK_IMPORTED_MODULE_1__.join)(buildContext.themeSrcDirPath, `kc.gen.tsx`);
294
300
  const currentContent = (await (0,_tools_fs_existsAsync__WEBPACK_IMPORTED_MODULE_2__/* .existsAsync */ .o)(filePath))
295
301
  ? await fs_promises__WEBPACK_IMPORTED_MODULE_0__.readFile(filePath)
package/bin/786.index.js CHANGED
@@ -54,7 +54,7 @@ var external_fs_ = __webpack_require__(57147);
54
54
  function maybeDelegateCommandToCustomHandler(params) {
55
55
  const { commandName, buildContext } = params;
56
56
  if (!external_fs_.readdirSync((0,external_path_.dirname)(process.argv[1])).includes(BIN_NAME)) {
57
- return;
57
+ return { hasBeenHandled: false };
58
58
  }
59
59
  try {
60
60
  external_child_process_.execSync(`npx ${BIN_NAME}`, {
@@ -65,11 +65,11 @@ function maybeDelegateCommandToCustomHandler(params) {
65
65
  catch (error) {
66
66
  const status = error.status;
67
67
  if (status === NOT_IMPLEMENTED_EXIT_CODE) {
68
- return;
68
+ return { hasBeenHandled: false };
69
69
  }
70
70
  process.exit(status);
71
71
  }
72
- process.exit(0);
72
+ return { hasBeenHandled: true };
73
73
  }
74
74
  //# sourceMappingURL=customHandler_delegate.js.map
75
75
 
@@ -118,10 +118,13 @@ __webpack_require__.r(__webpack_exports__);
118
118
 
119
119
  async function command(params) {
120
120
  const { buildContext } = params;
121
- (0,_shared_customHandler_delegate__WEBPACK_IMPORTED_MODULE_3__/* .maybeDelegateCommandToCustomHandler */ .q)({
121
+ const { hasBeenHandled } = (0,_shared_customHandler_delegate__WEBPACK_IMPORTED_MODULE_3__/* .maybeDelegateCommandToCustomHandler */ .q)({
122
122
  commandName: "update-kc-gen",
123
123
  buildContext
124
124
  });
125
+ if (hasBeenHandled) {
126
+ return;
127
+ }
125
128
  const filePath = (0,path__WEBPACK_IMPORTED_MODULE_1__.join)(buildContext.themeSrcDirPath, `kc.gen.tsx`);
126
129
  const currentContent = (await (0,_tools_fs_existsAsync__WEBPACK_IMPORTED_MODULE_2__/* .existsAsync */ .o)(filePath))
127
130
  ? await fs_promises__WEBPACK_IMPORTED_MODULE_0__.readFile(filePath)
package/bin/932.index.js CHANGED
@@ -26,10 +26,13 @@ __webpack_require__.r(__webpack_exports__);
26
26
 
27
27
  async function command(params) {
28
28
  const { buildContext } = params;
29
- (0,_shared_customHandler_delegate__WEBPACK_IMPORTED_MODULE_5__/* .maybeDelegateCommandToCustomHandler */ .q)({
29
+ const { hasBeenHandled } = (0,_shared_customHandler_delegate__WEBPACK_IMPORTED_MODULE_5__/* .maybeDelegateCommandToCustomHandler */ .q)({
30
30
  commandName: "initialize-email-theme",
31
31
  buildContext
32
32
  });
33
+ if (hasBeenHandled) {
34
+ return;
35
+ }
33
36
  const emailThemeSrcDirPath = (0,path__WEBPACK_IMPORTED_MODULE_0__.join)(buildContext.themeSrcDirPath, "email");
34
37
  if (fs__WEBPACK_IMPORTED_MODULE_3__.existsSync(emailThemeSrcDirPath) &&
35
38
  fs__WEBPACK_IMPORTED_MODULE_3__.readdirSync(emailThemeSrcDirPath).length > 0) {
@@ -126,7 +129,7 @@ var external_fs_ = __webpack_require__(57147);
126
129
  function maybeDelegateCommandToCustomHandler(params) {
127
130
  const { commandName, buildContext } = params;
128
131
  if (!external_fs_.readdirSync((0,external_path_.dirname)(process.argv[1])).includes(BIN_NAME)) {
129
- return;
132
+ return { hasBeenHandled: false };
130
133
  }
131
134
  try {
132
135
  external_child_process_.execSync(`npx ${BIN_NAME}`, {
@@ -137,11 +140,11 @@ function maybeDelegateCommandToCustomHandler(params) {
137
140
  catch (error) {
138
141
  const status = error.status;
139
142
  if (status === NOT_IMPLEMENTED_EXIT_CODE) {
140
- return;
143
+ return { hasBeenHandled: false };
141
144
  }
142
145
  process.exit(status);
143
146
  }
144
- process.exit(0);
147
+ return { hasBeenHandled: true };
145
148
  }
146
149
  //# sourceMappingURL=customHandler_delegate.js.map
147
150
 
package/bin/main.js CHANGED
@@ -16274,7 +16274,7 @@ program
16274
16274
  .task({
16275
16275
  skip,
16276
16276
  handler: async ({ projectDirPath }) => {
16277
- const { command } = await __nccwpck_require__.e(/* import() */ 193).then(__nccwpck_require__.bind(__nccwpck_require__, 23193));
16277
+ const { command } = await __nccwpck_require__.e(/* import() */ 40).then(__nccwpck_require__.bind(__nccwpck_require__, 18040));
16278
16278
  await command({ buildContext: getBuildContext({ projectDirPath }) });
16279
16279
  }
16280
16280
  });
@@ -3,4 +3,6 @@ import { type CommandName } from "./customHandler";
3
3
  export declare function maybeDelegateCommandToCustomHandler(params: {
4
4
  commandName: CommandName;
5
5
  buildContext: BuildContext;
6
- }): void;
6
+ }): {
7
+ hasBeenHandled: boolean;
8
+ };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "keycloakify",
3
- "version": "11.3.0",
3
+ "version": "11.3.2",
4
4
  "description": "Framework to create custom Keycloak UIs",
5
5
  "repository": {
6
6
  "type": "git",
@@ -677,7 +677,6 @@
677
677
  "src/bin/shared/KeycloakVersionRange.ts",
678
678
  "src/bin/shared/buildContext.ts",
679
679
  "src/bin/shared/constants.ts",
680
- "src/bin/shared/copyKeycloakResourcesToPublic.ts",
681
680
  "src/bin/shared/customHandler.ts",
682
681
  "src/bin/shared/customHandler_delegate.ts",
683
682
  "src/bin/shared/getLatestsSemVersionedTag.ts",
@@ -1011,7 +1010,6 @@
1011
1010
  "bin/main.d.ts",
1012
1011
  "bin/shared/buildContext.d.ts",
1013
1012
  "bin/shared/constants.d.ts",
1014
- "bin/shared/copyKeycloakResourcesToPublic.d.ts",
1015
1013
  "bin/shared/customHandler_delegate.d.ts",
1016
1014
  "bin/shared/customHandler.d.ts",
1017
1015
  "bin/shared/getLatestsSemVersionedTag.d.ts",
@@ -1050,12 +1048,12 @@
1050
1048
  "bin/tools/trimIndent.d.ts",
1051
1049
  "bin/update-kc-gen.d.ts",
1052
1050
  "bin/main.js",
1053
- "bin/193.index.js",
1054
1051
  "bin/20.index.js",
1055
1052
  "bin/266.index.js",
1056
1053
  "bin/304.index.js",
1057
1054
  "bin/33.index.js",
1058
1055
  "bin/36.index.js",
1056
+ "bin/40.index.js",
1059
1057
  "bin/453.index.js",
1060
1058
  "bin/526.index.js",
1061
1059
  "bin/573.index.js",
@@ -1,16 +1,96 @@
1
- import { copyKeycloakResourcesToPublic } from "./shared/copyKeycloakResourcesToPublic";
2
- import type { BuildContext } from "./shared/buildContext";
3
1
  import { maybeDelegateCommandToCustomHandler } from "./shared/customHandler_delegate";
2
+ import { join as pathJoin, dirname as pathDirname } from "path";
3
+ import { WELL_KNOWN_DIRECTORY_BASE_NAME } from "./shared/constants";
4
+ import { readThisNpmPackageVersion } from "./tools/readThisNpmPackageVersion";
5
+ import * as fs from "fs";
6
+ import { rmSync } from "./tools/fs.rmSync";
7
+ import type { BuildContext } from "./shared/buildContext";
8
+ import { transformCodebase } from "./tools/transformCodebase";
9
+ import { getThisCodebaseRootDirPath } from "./tools/getThisCodebaseRootDirPath";
4
10
 
5
11
  export async function command(params: { buildContext: BuildContext }) {
6
12
  const { buildContext } = params;
7
13
 
8
- maybeDelegateCommandToCustomHandler({
14
+ const { hasBeenHandled } = maybeDelegateCommandToCustomHandler({
9
15
  commandName: "copy-keycloak-resources-to-public",
10
16
  buildContext
11
17
  });
12
18
 
13
- copyKeycloakResourcesToPublic({
14
- buildContext
19
+ if (hasBeenHandled) {
20
+ return;
21
+ }
22
+
23
+ const destDirPath = pathJoin(
24
+ buildContext.publicDirPath,
25
+ WELL_KNOWN_DIRECTORY_BASE_NAME.KEYCLOAKIFY_DEV_RESOURCES
26
+ );
27
+
28
+ const keycloakifyBuildinfoFilePath = pathJoin(destDirPath, "keycloakify.buildinfo");
29
+
30
+ const keycloakifyBuildinfoRaw = JSON.stringify(
31
+ {
32
+ keycloakifyVersion: readThisNpmPackageVersion()
33
+ },
34
+ null,
35
+ 2
36
+ );
37
+
38
+ skip_if_already_done: {
39
+ if (!fs.existsSync(keycloakifyBuildinfoFilePath)) {
40
+ break skip_if_already_done;
41
+ }
42
+
43
+ const keycloakifyBuildinfoRaw_previousRun = fs
44
+ .readFileSync(keycloakifyBuildinfoFilePath)
45
+ .toString("utf8");
46
+
47
+ if (keycloakifyBuildinfoRaw_previousRun !== keycloakifyBuildinfoRaw) {
48
+ break skip_if_already_done;
49
+ }
50
+
51
+ return;
52
+ }
53
+
54
+ rmSync(destDirPath, { force: true, recursive: true });
55
+
56
+ // NOTE: To remove in a while, remove the legacy keycloak-resources directory
57
+ rmSync(pathJoin(pathDirname(destDirPath), "keycloak-resources"), {
58
+ force: true,
59
+ recursive: true
60
+ });
61
+ rmSync(pathJoin(pathDirname(destDirPath), ".keycloakify"), {
62
+ force: true,
63
+ recursive: true
15
64
  });
65
+
66
+ fs.mkdirSync(destDirPath, { recursive: true });
67
+
68
+ fs.writeFileSync(pathJoin(destDirPath, ".gitignore"), Buffer.from("*", "utf8"));
69
+
70
+ transformCodebase({
71
+ srcDirPath: pathJoin(
72
+ getThisCodebaseRootDirPath(),
73
+ "res",
74
+ "public",
75
+ WELL_KNOWN_DIRECTORY_BASE_NAME.KEYCLOAKIFY_DEV_RESOURCES
76
+ ),
77
+ destDirPath
78
+ });
79
+
80
+ fs.writeFileSync(
81
+ pathJoin(destDirPath, "README.txt"),
82
+ Buffer.from(
83
+ // prettier-ignore
84
+ [
85
+ "This directory is only used in dev mode by Keycloakify",
86
+ "It won't be included in your final build.",
87
+ "Do not modify anything in this directory.",
88
+ ].join("\n")
89
+ )
90
+ );
91
+
92
+ fs.writeFileSync(
93
+ keycloakifyBuildinfoFilePath,
94
+ Buffer.from(keycloakifyBuildinfoRaw, "utf8")
95
+ );
16
96
  }
@@ -22,10 +22,20 @@ import { kebabCaseToCamelCase } from "./tools/kebabCaseToSnakeCase";
22
22
  import { assert, Equals } from "tsafe/assert";
23
23
  import type { BuildContext } from "./shared/buildContext";
24
24
  import chalk from "chalk";
25
+ import { maybeDelegateCommandToCustomHandler } from "./shared/customHandler_delegate";
25
26
 
26
27
  export async function command(params: { buildContext: BuildContext }) {
27
28
  const { buildContext } = params;
28
29
 
30
+ const { hasBeenHandled } = maybeDelegateCommandToCustomHandler({
31
+ commandName: "eject-page",
32
+ buildContext
33
+ });
34
+
35
+ if (hasBeenHandled) {
36
+ return;
37
+ }
38
+
29
39
  console.log(chalk.cyan("Theme type:"));
30
40
 
31
41
  const themeType = await (async () => {
@@ -239,12 +249,12 @@ export async function command(params: { buildContext: BuildContext }) {
239
249
  )} copy pasted from the Keycloakify source code into your project`
240
250
  );
241
251
 
242
- edit_KcApp: {
252
+ edit_KcPage: {
243
253
  if (
244
254
  pageIdOrComponent !== templateValue &&
245
255
  pageIdOrComponent !== userProfileFormFieldsValue
246
256
  ) {
247
- break edit_KcApp;
257
+ break edit_KcPage;
248
258
  }
249
259
 
250
260
  const kcAppTsxPath = pathJoin(
@@ -11,11 +11,15 @@ import { maybeDelegateCommandToCustomHandler } from "../shared/customHandler_del
11
11
  export async function command(params: { buildContext: BuildContext }) {
12
12
  const { buildContext } = params;
13
13
 
14
- maybeDelegateCommandToCustomHandler({
14
+ const { hasBeenHandled } = maybeDelegateCommandToCustomHandler({
15
15
  commandName: "initialize-account-theme",
16
16
  buildContext
17
17
  });
18
18
 
19
+ if (hasBeenHandled) {
20
+ return;
21
+ }
22
+
19
23
  const accountThemeSrcDirPath = pathJoin(buildContext.themeSrcDirPath, "account");
20
24
 
21
25
  if (
@@ -9,11 +9,15 @@ import { maybeDelegateCommandToCustomHandler } from "./shared/customHandler_dele
9
9
  export async function command(params: { buildContext: BuildContext }) {
10
10
  const { buildContext } = params;
11
11
 
12
- maybeDelegateCommandToCustomHandler({
12
+ const { hasBeenHandled } = maybeDelegateCommandToCustomHandler({
13
13
  commandName: "initialize-email-theme",
14
14
  buildContext
15
15
  });
16
16
 
17
+ if (hasBeenHandled) {
18
+ return;
19
+ }
20
+
17
21
  const emailThemeSrcDirPath = pathJoin(buildContext.themeSrcDirPath, "email");
18
22
 
19
23
  if (