keycloakify 11.8.47-rc.1 → 11.8.47-rc.3
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/254.index.js +41 -3
- package/bin/355.index.js +47 -25
- package/bin/502.index.js +4 -2
- package/bin/626.index.js +47 -25
- package/bin/656.index.js +47 -25
- package/bin/762.index.js +1 -1
- package/bin/97.index.js +4 -2
- package/bin/main.js +33 -26
- package/package.json +1 -1
- package/src/bin/init/init.ts +1 -1
- package/src/bin/initialize-login-theme.ts +49 -3
- package/src/bin/shared/buildContext.ts +41 -31
- package/src/bin/shared/initializeSpa.ts +28 -0
- package/src/bin/tools/fetchProxyOptions.ts +1 -3
- package/src/bin/tools/npmInstall.ts +13 -6
- package/vite-plugin/index.js +33 -26
package/bin/254.index.js
CHANGED
@@ -146,7 +146,7 @@ async function command(params) {
|
|
146
146
|
}
|
147
147
|
{
|
148
148
|
const moduleName = "@keycloakify/login-ui";
|
149
|
-
const latestVersion =
|
149
|
+
const latestVersion = getModuleLatestVersion({ moduleName });
|
150
150
|
((_c = parsedPackageJson.dependencies) !== null && _c !== void 0 ? _c : (parsedPackageJson.dependencies = {}))[moduleName] = `~${latestVersion}`;
|
151
151
|
if (parsedPackageJson.devDependencies !== undefined) {
|
152
152
|
delete parsedPackageJson.devDependencies[moduleName];
|
@@ -157,10 +157,48 @@ async function command(params) {
|
|
157
157
|
break install_stories;
|
158
158
|
}
|
159
159
|
const moduleName = "@keycloakify/login-ui-storybook";
|
160
|
-
const latestVersion =
|
160
|
+
const latestVersion = getModuleLatestVersion({ moduleName });
|
161
161
|
((_d = parsedPackageJson.devDependencies) !== null && _d !== void 0 ? _d : (parsedPackageJson.devDependencies = {}))[moduleName] = `~${latestVersion}`;
|
162
162
|
delete parsedPackageJson.dependencies[moduleName];
|
163
163
|
}
|
164
|
+
update_main_dev: {
|
165
|
+
for (const fileBasename of ["main-kc.dev.tsx", "main.dev.tsx"]) {
|
166
|
+
const filePath = (0,path__WEBPACK_IMPORTED_MODULE_1__.join)(buildContext.themeSrcDirPath, fileBasename);
|
167
|
+
if (!(await (0,_tools_fs_existsAsync__WEBPACK_IMPORTED_MODULE_10__/* .existsAsync */ .o)(filePath))) {
|
168
|
+
continue;
|
169
|
+
}
|
170
|
+
const content = (await fs_promises__WEBPACK_IMPORTED_MODULE_2__.readFile(filePath)).toString("utf8");
|
171
|
+
if (!content.includes("export {}")) {
|
172
|
+
break update_main_dev;
|
173
|
+
}
|
174
|
+
let content_new = [
|
175
|
+
`import { createRoot } from "react-dom/client";`,
|
176
|
+
`import { StrictMode } from "react";`,
|
177
|
+
`import { KcPage } from "./kc.gen";`,
|
178
|
+
`import { getKcContextMock } from "./login/mocks/getKcContextMock";`,
|
179
|
+
``,
|
180
|
+
`const kcContext = getKcContextMock({`,
|
181
|
+
` pageId: "login.ftl",`,
|
182
|
+
` overrides: {}`,
|
183
|
+
`});`,
|
184
|
+
``,
|
185
|
+
`createRoot(document.getElementById("root")!).render(`,
|
186
|
+
` <StrictMode>`,
|
187
|
+
` <KcPage kcContext={kcContext} />`,
|
188
|
+
` </StrictMode>`,
|
189
|
+
`);`,
|
190
|
+
``
|
191
|
+
].join("\n");
|
192
|
+
if (await (0,_tools_runPrettier__WEBPACK_IMPORTED_MODULE_5__/* .getIsPrettierAvailable */ .MT)()) {
|
193
|
+
content_new = await (0,_tools_runPrettier__WEBPACK_IMPORTED_MODULE_5__/* .runPrettier */ .eY)({
|
194
|
+
sourceCode: content_new,
|
195
|
+
filePath
|
196
|
+
});
|
197
|
+
}
|
198
|
+
await fs_promises__WEBPACK_IMPORTED_MODULE_2__.writeFile(filePath, content_new);
|
199
|
+
break;
|
200
|
+
}
|
201
|
+
}
|
164
202
|
{
|
165
203
|
let sourceCode = JSON.stringify(parsedPackageJson, null, 2);
|
166
204
|
if (await (0,_tools_runPrettier__WEBPACK_IMPORTED_MODULE_5__/* .getIsPrettierAvailable */ .MT)()) {
|
@@ -175,7 +213,7 @@ async function command(params) {
|
|
175
213
|
packageJsonDirPath: (0,path__WEBPACK_IMPORTED_MODULE_1__.dirname)(buildContext.packageJsonFilePath)
|
176
214
|
});
|
177
215
|
}
|
178
|
-
|
216
|
+
function getModuleLatestVersion(params) {
|
179
217
|
const { moduleName } = params;
|
180
218
|
const versions = (() => {
|
181
219
|
const cmdOutput = child_process__WEBPACK_IMPORTED_MODULE_7__.execSync(`npm show ${moduleName} versions --json`)
|
package/bin/355.index.js
CHANGED
@@ -164,16 +164,20 @@ __webpack_require__.r(__webpack_exports__);
|
|
164
164
|
/* harmony import */ var path__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(path__WEBPACK_IMPORTED_MODULE_0__);
|
165
165
|
/* harmony import */ var fs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(57147);
|
166
166
|
/* harmony import */ var fs__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(fs__WEBPACK_IMPORTED_MODULE_1__);
|
167
|
-
/* harmony import */ var
|
168
|
-
/* harmony import */ var
|
169
|
-
/* harmony import */ var
|
170
|
-
/* harmony import */ var
|
171
|
-
/* harmony import */ var
|
172
|
-
/* harmony import */ var
|
173
|
-
/* harmony import */ var
|
174
|
-
/* harmony import */ var
|
175
|
-
/* harmony import */ var
|
176
|
-
/* harmony import */ var
|
167
|
+
/* harmony import */ var fs_promises__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(73292);
|
168
|
+
/* harmony import */ var fs_promises__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(fs_promises__WEBPACK_IMPORTED_MODULE_2__);
|
169
|
+
/* harmony import */ var tsafe_assert__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(29041);
|
170
|
+
/* harmony import */ var tsafe_id__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(38469);
|
171
|
+
/* harmony import */ var _addSyncExtensionsToPostinstallScript__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(80339);
|
172
|
+
/* harmony import */ var _tools_runPrettier__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(48433);
|
173
|
+
/* harmony import */ var _tools_npmInstall__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(63046);
|
174
|
+
/* harmony import */ var child_process__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(32081);
|
175
|
+
/* harmony import */ var child_process__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(child_process__WEBPACK_IMPORTED_MODULE_7__);
|
176
|
+
/* harmony import */ var zod__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(52300);
|
177
|
+
/* harmony import */ var chalk__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(78818);
|
178
|
+
/* harmony import */ var chalk__WEBPACK_IMPORTED_MODULE_8___default = /*#__PURE__*/__webpack_require__.n(chalk__WEBPACK_IMPORTED_MODULE_8__);
|
179
|
+
/* harmony import */ var _tools_fs_existsAsync__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(43765);
|
180
|
+
|
177
181
|
|
178
182
|
|
179
183
|
|
@@ -184,7 +188,8 @@ __webpack_require__.r(__webpack_exports__);
|
|
184
188
|
|
185
189
|
|
186
190
|
|
187
|
-
|
191
|
+
|
192
|
+
(0,tsafe_assert__WEBPACK_IMPORTED_MODULE_3__/* .assert */ .h)();
|
188
193
|
async function initializeSpa(params) {
|
189
194
|
var _a;
|
190
195
|
const { themeType, buildContext } = params;
|
@@ -192,29 +197,32 @@ async function initializeSpa(params) {
|
|
192
197
|
const themeTypeSrcDirPath = (0,path__WEBPACK_IMPORTED_MODULE_0__.join)(buildContext.themeSrcDirPath, themeType);
|
193
198
|
if (fs__WEBPACK_IMPORTED_MODULE_1__.existsSync(themeTypeSrcDirPath) &&
|
194
199
|
fs__WEBPACK_IMPORTED_MODULE_1__.readdirSync(themeTypeSrcDirPath).length > 0) {
|
195
|
-
console.warn(
|
200
|
+
console.warn(chalk__WEBPACK_IMPORTED_MODULE_8___default().red(`There is already a ${(0,path__WEBPACK_IMPORTED_MODULE_0__.relative)(process.cwd(), themeTypeSrcDirPath)} directory in your project. Aborting.`));
|
196
201
|
process.exit(-1);
|
197
202
|
}
|
198
203
|
}
|
199
204
|
const parsedPackageJson = (() => {
|
200
205
|
const zParsedPackageJson = (() => {
|
201
|
-
const zTargetType =
|
202
|
-
scripts:
|
203
|
-
dependencies:
|
204
|
-
devDependencies:
|
206
|
+
const zTargetType = zod__WEBPACK_IMPORTED_MODULE_10__.z.object({
|
207
|
+
scripts: zod__WEBPACK_IMPORTED_MODULE_10__.z.record(zod__WEBPACK_IMPORTED_MODULE_10__.z.union([zod__WEBPACK_IMPORTED_MODULE_10__.z.string(), zod__WEBPACK_IMPORTED_MODULE_10__.z.undefined()])).optional(),
|
208
|
+
dependencies: zod__WEBPACK_IMPORTED_MODULE_10__.z.record(zod__WEBPACK_IMPORTED_MODULE_10__.z.union([zod__WEBPACK_IMPORTED_MODULE_10__.z.string(), zod__WEBPACK_IMPORTED_MODULE_10__.z.undefined()])).optional(),
|
209
|
+
devDependencies: zod__WEBPACK_IMPORTED_MODULE_10__.z.record(zod__WEBPACK_IMPORTED_MODULE_10__.z.union([zod__WEBPACK_IMPORTED_MODULE_10__.z.string(), zod__WEBPACK_IMPORTED_MODULE_10__.z.undefined()])).optional()
|
205
210
|
});
|
206
|
-
|
207
|
-
return (0,
|
211
|
+
tsafe_assert__WEBPACK_IMPORTED_MODULE_3__/* .assert */ .h;
|
212
|
+
return (0,tsafe_id__WEBPACK_IMPORTED_MODULE_11__.id)(zTargetType);
|
208
213
|
})();
|
209
214
|
const parsedPackageJson = JSON.parse(fs__WEBPACK_IMPORTED_MODULE_1__.readFileSync(buildContext.packageJsonFilePath).toString("utf8"));
|
210
215
|
zParsedPackageJson.parse(parsedPackageJson);
|
211
|
-
(0,
|
216
|
+
(0,tsafe_assert__WEBPACK_IMPORTED_MODULE_3__/* .assert */ .h)((0,tsafe_assert__WEBPACK_IMPORTED_MODULE_3__.is)(parsedPackageJson));
|
212
217
|
return parsedPackageJson;
|
213
218
|
})();
|
214
|
-
(0,
|
219
|
+
(0,_addSyncExtensionsToPostinstallScript__WEBPACK_IMPORTED_MODULE_4__/* .addSyncExtensionsToPostinstallScript */ .N)({
|
215
220
|
parsedPackageJson,
|
216
221
|
buildContext
|
217
222
|
});
|
223
|
+
await disableVerbatimModuleSyntax({
|
224
|
+
projectDirPath: buildContext.projectDirPath
|
225
|
+
});
|
218
226
|
const uiSharedMajor = (() => {
|
219
227
|
const dependencies = Object.assign(Object.assign({}, parsedPackageJson.devDependencies), parsedPackageJson.dependencies);
|
220
228
|
const version = dependencies["@keycloakify/keycloak-ui-shared"];
|
@@ -229,7 +237,7 @@ async function initializeSpa(params) {
|
|
229
237
|
})();
|
230
238
|
const moduleName = `@keycloakify/keycloak-${themeType}-ui`;
|
231
239
|
const version = (() => {
|
232
|
-
const cmdOutput =
|
240
|
+
const cmdOutput = child_process__WEBPACK_IMPORTED_MODULE_7__.execSync(`npm show ${moduleName} versions --json`)
|
233
241
|
.toString("utf8")
|
234
242
|
.trim();
|
235
243
|
const versions = JSON.parse(cmdOutput);
|
@@ -242,25 +250,39 @@ async function initializeSpa(params) {
|
|
242
250
|
.reverse()
|
243
251
|
.filter(version => !version.includes("-"))
|
244
252
|
.find(version => uiSharedMajor === undefined ? true : version.startsWith(`${uiSharedMajor}.`));
|
245
|
-
(0,
|
253
|
+
(0,tsafe_assert__WEBPACK_IMPORTED_MODULE_3__/* .assert */ .h)(version !== undefined);
|
246
254
|
((_a = parsedPackageJson.dependencies) !== null && _a !== void 0 ? _a : (parsedPackageJson.dependencies = {}))[moduleName] = `~${version}`;
|
247
255
|
if (parsedPackageJson.devDependencies !== undefined) {
|
248
256
|
delete parsedPackageJson.devDependencies[moduleName];
|
249
257
|
}
|
250
258
|
{
|
251
259
|
let sourceCode = JSON.stringify(parsedPackageJson, undefined, 2);
|
252
|
-
if (await (0,
|
253
|
-
sourceCode = await (0,
|
260
|
+
if (await (0,_tools_runPrettier__WEBPACK_IMPORTED_MODULE_5__/* .getIsPrettierAvailable */ .MT)()) {
|
261
|
+
sourceCode = await (0,_tools_runPrettier__WEBPACK_IMPORTED_MODULE_5__/* .runPrettier */ .eY)({
|
254
262
|
sourceCode,
|
255
263
|
filePath: buildContext.packageJsonFilePath
|
256
264
|
});
|
257
265
|
}
|
258
266
|
fs__WEBPACK_IMPORTED_MODULE_1__.writeFileSync(buildContext.packageJsonFilePath, Buffer.from(sourceCode, "utf8"));
|
259
267
|
}
|
260
|
-
await (0,
|
268
|
+
await (0,_tools_npmInstall__WEBPACK_IMPORTED_MODULE_6__/* .npmInstall */ .c)({
|
261
269
|
packageJsonDirPath: (0,path__WEBPACK_IMPORTED_MODULE_0__.dirname)(buildContext.packageJsonFilePath)
|
262
270
|
});
|
263
271
|
}
|
272
|
+
async function disableVerbatimModuleSyntax(params) {
|
273
|
+
const { projectDirPath } = params;
|
274
|
+
const filePath = (0,path__WEBPACK_IMPORTED_MODULE_0__.join)(projectDirPath, "tsconfig.app.json");
|
275
|
+
if (!(await (0,_tools_fs_existsAsync__WEBPACK_IMPORTED_MODULE_9__/* .existsAsync */ .o)(filePath))) {
|
276
|
+
return;
|
277
|
+
}
|
278
|
+
let content = (await fs_promises__WEBPACK_IMPORTED_MODULE_2__.readFile(filePath)).toString("utf8");
|
279
|
+
const regExp = /"verbatimModuleSyntax"\s*:\s*true\s*(,?)/m;
|
280
|
+
if (!regExp.test(content)) {
|
281
|
+
return;
|
282
|
+
}
|
283
|
+
content = content.replace(regExp, `"verbatimModuleSyntax": false$1`);
|
284
|
+
await fs_promises__WEBPACK_IMPORTED_MODULE_2__.writeFile(filePath, Buffer.from(content, "utf8"));
|
285
|
+
}
|
264
286
|
//# sourceMappingURL=initializeSpa.js.map
|
265
287
|
|
266
288
|
/***/ }),
|
package/bin/502.index.js
CHANGED
@@ -299,20 +299,22 @@ async function npmInstall(params) {
|
|
299
299
|
async function runPackageManagerInstall(params) {
|
300
300
|
const { packageManagerBinName, cwd } = params;
|
301
301
|
const dCompleted = new Deferred.Deferred();
|
302
|
-
const child = external_child_process_.spawn(packageManagerBinName, ["install"], {
|
302
|
+
const child = external_child_process_.spawn(packageManagerBinName, ["install", ...(packageManagerBinName !== "npm" ? [] : ["--force"])], {
|
303
303
|
cwd,
|
304
304
|
env: process.env,
|
305
305
|
shell: true
|
306
306
|
});
|
307
307
|
child.stdout.on("data", data => process.stdout.write(data));
|
308
|
+
let errorLog = "";
|
308
309
|
child.stderr.on("data", data => {
|
309
310
|
if (data.toString("utf8").includes("peer dependency")) {
|
310
311
|
return;
|
311
312
|
}
|
312
|
-
|
313
|
+
errorLog += data.toString("utf8");
|
313
314
|
});
|
314
315
|
child.on("exit", code => {
|
315
316
|
if (code !== 0) {
|
317
|
+
console.log(errorLog);
|
316
318
|
dCompleted.reject(new Error(`Failed with code ${code}`));
|
317
319
|
return;
|
318
320
|
}
|
package/bin/626.index.js
CHANGED
@@ -89,16 +89,19 @@ __webpack_require__.r(__webpack_exports__);
|
|
89
89
|
/* harmony import */ var path__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(path__WEBPACK_IMPORTED_MODULE_0__);
|
90
90
|
/* harmony import */ var fs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(57147);
|
91
91
|
/* harmony import */ var fs__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(fs__WEBPACK_IMPORTED_MODULE_1__);
|
92
|
-
/* harmony import */ var
|
93
|
-
/* harmony import */ var
|
94
|
-
/* harmony import */ var
|
95
|
-
/* harmony import */ var
|
96
|
-
/* harmony import */ var
|
97
|
-
/* harmony import */ var
|
98
|
-
/* harmony import */ var
|
99
|
-
/* harmony import */ var
|
100
|
-
/* harmony import */ var
|
101
|
-
/* harmony import */ var
|
92
|
+
/* harmony import */ var fs_promises__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(73292);
|
93
|
+
/* harmony import */ var fs_promises__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(fs_promises__WEBPACK_IMPORTED_MODULE_2__);
|
94
|
+
/* harmony import */ var tsafe_assert__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(29041);
|
95
|
+
/* harmony import */ var tsafe_id__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(38469);
|
96
|
+
/* harmony import */ var _addSyncExtensionsToPostinstallScript__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(80339);
|
97
|
+
/* harmony import */ var _tools_runPrettier__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(48433);
|
98
|
+
/* harmony import */ var _tools_npmInstall__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(63046);
|
99
|
+
/* harmony import */ var child_process__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(32081);
|
100
|
+
/* harmony import */ var child_process__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(child_process__WEBPACK_IMPORTED_MODULE_7__);
|
101
|
+
/* harmony import */ var zod__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(52300);
|
102
|
+
/* harmony import */ var chalk__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(78818);
|
103
|
+
/* harmony import */ var chalk__WEBPACK_IMPORTED_MODULE_8___default = /*#__PURE__*/__webpack_require__.n(chalk__WEBPACK_IMPORTED_MODULE_8__);
|
104
|
+
/* harmony import */ var _tools_fs_existsAsync__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(43765);
|
102
105
|
|
103
106
|
|
104
107
|
|
@@ -109,7 +112,9 @@ __webpack_require__.r(__webpack_exports__);
|
|
109
112
|
|
110
113
|
|
111
114
|
|
112
|
-
|
115
|
+
|
116
|
+
|
117
|
+
(0,tsafe_assert__WEBPACK_IMPORTED_MODULE_3__/* .assert */ .h)();
|
113
118
|
async function initializeSpa(params) {
|
114
119
|
var _a;
|
115
120
|
const { themeType, buildContext } = params;
|
@@ -117,29 +122,32 @@ async function initializeSpa(params) {
|
|
117
122
|
const themeTypeSrcDirPath = (0,path__WEBPACK_IMPORTED_MODULE_0__.join)(buildContext.themeSrcDirPath, themeType);
|
118
123
|
if (fs__WEBPACK_IMPORTED_MODULE_1__.existsSync(themeTypeSrcDirPath) &&
|
119
124
|
fs__WEBPACK_IMPORTED_MODULE_1__.readdirSync(themeTypeSrcDirPath).length > 0) {
|
120
|
-
console.warn(
|
125
|
+
console.warn(chalk__WEBPACK_IMPORTED_MODULE_8___default().red(`There is already a ${(0,path__WEBPACK_IMPORTED_MODULE_0__.relative)(process.cwd(), themeTypeSrcDirPath)} directory in your project. Aborting.`));
|
121
126
|
process.exit(-1);
|
122
127
|
}
|
123
128
|
}
|
124
129
|
const parsedPackageJson = (() => {
|
125
130
|
const zParsedPackageJson = (() => {
|
126
|
-
const zTargetType =
|
127
|
-
scripts:
|
128
|
-
dependencies:
|
129
|
-
devDependencies:
|
131
|
+
const zTargetType = zod__WEBPACK_IMPORTED_MODULE_10__.z.object({
|
132
|
+
scripts: zod__WEBPACK_IMPORTED_MODULE_10__.z.record(zod__WEBPACK_IMPORTED_MODULE_10__.z.union([zod__WEBPACK_IMPORTED_MODULE_10__.z.string(), zod__WEBPACK_IMPORTED_MODULE_10__.z.undefined()])).optional(),
|
133
|
+
dependencies: zod__WEBPACK_IMPORTED_MODULE_10__.z.record(zod__WEBPACK_IMPORTED_MODULE_10__.z.union([zod__WEBPACK_IMPORTED_MODULE_10__.z.string(), zod__WEBPACK_IMPORTED_MODULE_10__.z.undefined()])).optional(),
|
134
|
+
devDependencies: zod__WEBPACK_IMPORTED_MODULE_10__.z.record(zod__WEBPACK_IMPORTED_MODULE_10__.z.union([zod__WEBPACK_IMPORTED_MODULE_10__.z.string(), zod__WEBPACK_IMPORTED_MODULE_10__.z.undefined()])).optional()
|
130
135
|
});
|
131
|
-
|
132
|
-
return (0,
|
136
|
+
tsafe_assert__WEBPACK_IMPORTED_MODULE_3__/* .assert */ .h;
|
137
|
+
return (0,tsafe_id__WEBPACK_IMPORTED_MODULE_11__.id)(zTargetType);
|
133
138
|
})();
|
134
139
|
const parsedPackageJson = JSON.parse(fs__WEBPACK_IMPORTED_MODULE_1__.readFileSync(buildContext.packageJsonFilePath).toString("utf8"));
|
135
140
|
zParsedPackageJson.parse(parsedPackageJson);
|
136
|
-
(0,
|
141
|
+
(0,tsafe_assert__WEBPACK_IMPORTED_MODULE_3__/* .assert */ .h)((0,tsafe_assert__WEBPACK_IMPORTED_MODULE_3__.is)(parsedPackageJson));
|
137
142
|
return parsedPackageJson;
|
138
143
|
})();
|
139
|
-
(0,
|
144
|
+
(0,_addSyncExtensionsToPostinstallScript__WEBPACK_IMPORTED_MODULE_4__/* .addSyncExtensionsToPostinstallScript */ .N)({
|
140
145
|
parsedPackageJson,
|
141
146
|
buildContext
|
142
147
|
});
|
148
|
+
await disableVerbatimModuleSyntax({
|
149
|
+
projectDirPath: buildContext.projectDirPath
|
150
|
+
});
|
143
151
|
const uiSharedMajor = (() => {
|
144
152
|
const dependencies = Object.assign(Object.assign({}, parsedPackageJson.devDependencies), parsedPackageJson.dependencies);
|
145
153
|
const version = dependencies["@keycloakify/keycloak-ui-shared"];
|
@@ -154,7 +162,7 @@ async function initializeSpa(params) {
|
|
154
162
|
})();
|
155
163
|
const moduleName = `@keycloakify/keycloak-${themeType}-ui`;
|
156
164
|
const version = (() => {
|
157
|
-
const cmdOutput =
|
165
|
+
const cmdOutput = child_process__WEBPACK_IMPORTED_MODULE_7__.execSync(`npm show ${moduleName} versions --json`)
|
158
166
|
.toString("utf8")
|
159
167
|
.trim();
|
160
168
|
const versions = JSON.parse(cmdOutput);
|
@@ -167,25 +175,39 @@ async function initializeSpa(params) {
|
|
167
175
|
.reverse()
|
168
176
|
.filter(version => !version.includes("-"))
|
169
177
|
.find(version => uiSharedMajor === undefined ? true : version.startsWith(`${uiSharedMajor}.`));
|
170
|
-
(0,
|
178
|
+
(0,tsafe_assert__WEBPACK_IMPORTED_MODULE_3__/* .assert */ .h)(version !== undefined);
|
171
179
|
((_a = parsedPackageJson.dependencies) !== null && _a !== void 0 ? _a : (parsedPackageJson.dependencies = {}))[moduleName] = `~${version}`;
|
172
180
|
if (parsedPackageJson.devDependencies !== undefined) {
|
173
181
|
delete parsedPackageJson.devDependencies[moduleName];
|
174
182
|
}
|
175
183
|
{
|
176
184
|
let sourceCode = JSON.stringify(parsedPackageJson, undefined, 2);
|
177
|
-
if (await (0,
|
178
|
-
sourceCode = await (0,
|
185
|
+
if (await (0,_tools_runPrettier__WEBPACK_IMPORTED_MODULE_5__/* .getIsPrettierAvailable */ .MT)()) {
|
186
|
+
sourceCode = await (0,_tools_runPrettier__WEBPACK_IMPORTED_MODULE_5__/* .runPrettier */ .eY)({
|
179
187
|
sourceCode,
|
180
188
|
filePath: buildContext.packageJsonFilePath
|
181
189
|
});
|
182
190
|
}
|
183
191
|
fs__WEBPACK_IMPORTED_MODULE_1__.writeFileSync(buildContext.packageJsonFilePath, Buffer.from(sourceCode, "utf8"));
|
184
192
|
}
|
185
|
-
await (0,
|
193
|
+
await (0,_tools_npmInstall__WEBPACK_IMPORTED_MODULE_6__/* .npmInstall */ .c)({
|
186
194
|
packageJsonDirPath: (0,path__WEBPACK_IMPORTED_MODULE_0__.dirname)(buildContext.packageJsonFilePath)
|
187
195
|
});
|
188
196
|
}
|
197
|
+
async function disableVerbatimModuleSyntax(params) {
|
198
|
+
const { projectDirPath } = params;
|
199
|
+
const filePath = (0,path__WEBPACK_IMPORTED_MODULE_0__.join)(projectDirPath, "tsconfig.app.json");
|
200
|
+
if (!(await (0,_tools_fs_existsAsync__WEBPACK_IMPORTED_MODULE_9__/* .existsAsync */ .o)(filePath))) {
|
201
|
+
return;
|
202
|
+
}
|
203
|
+
let content = (await fs_promises__WEBPACK_IMPORTED_MODULE_2__.readFile(filePath)).toString("utf8");
|
204
|
+
const regExp = /"verbatimModuleSyntax"\s*:\s*true\s*(,?)/m;
|
205
|
+
if (!regExp.test(content)) {
|
206
|
+
return;
|
207
|
+
}
|
208
|
+
content = content.replace(regExp, `"verbatimModuleSyntax": false$1`);
|
209
|
+
await fs_promises__WEBPACK_IMPORTED_MODULE_2__.writeFile(filePath, Buffer.from(content, "utf8"));
|
210
|
+
}
|
189
211
|
//# sourceMappingURL=initializeSpa.js.map
|
190
212
|
|
191
213
|
/***/ })
|
package/bin/656.index.js
CHANGED
@@ -14,16 +14,21 @@ __webpack_require__.r(__webpack_exports__);
|
|
14
14
|
/* harmony import */ var path__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(path__WEBPACK_IMPORTED_MODULE_0__);
|
15
15
|
/* harmony import */ var fs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(57147);
|
16
16
|
/* harmony import */ var fs__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(fs__WEBPACK_IMPORTED_MODULE_1__);
|
17
|
-
/* harmony import */ var
|
18
|
-
/* harmony import */ var
|
19
|
-
/* harmony import */ var
|
20
|
-
/* harmony import */ var
|
21
|
-
/* harmony import */ var
|
22
|
-
/* harmony import */ var
|
23
|
-
/* harmony import */ var
|
24
|
-
/* harmony import */ var
|
25
|
-
/* harmony import */ var
|
26
|
-
/* harmony import */ var
|
17
|
+
/* harmony import */ var fs_promises__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(73292);
|
18
|
+
/* harmony import */ var fs_promises__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(fs_promises__WEBPACK_IMPORTED_MODULE_2__);
|
19
|
+
/* harmony import */ var tsafe_assert__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(29041);
|
20
|
+
/* harmony import */ var tsafe_id__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(38469);
|
21
|
+
/* harmony import */ var _addSyncExtensionsToPostinstallScript__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(80339);
|
22
|
+
/* harmony import */ var _tools_runPrettier__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(48433);
|
23
|
+
/* harmony import */ var _tools_npmInstall__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(63046);
|
24
|
+
/* harmony import */ var child_process__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(32081);
|
25
|
+
/* harmony import */ var child_process__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(child_process__WEBPACK_IMPORTED_MODULE_7__);
|
26
|
+
/* harmony import */ var zod__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(52300);
|
27
|
+
/* harmony import */ var chalk__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(78818);
|
28
|
+
/* harmony import */ var chalk__WEBPACK_IMPORTED_MODULE_8___default = /*#__PURE__*/__webpack_require__.n(chalk__WEBPACK_IMPORTED_MODULE_8__);
|
29
|
+
/* harmony import */ var _tools_fs_existsAsync__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(43765);
|
30
|
+
|
31
|
+
|
27
32
|
|
28
33
|
|
29
34
|
|
@@ -34,7 +39,7 @@ __webpack_require__.r(__webpack_exports__);
|
|
34
39
|
|
35
40
|
|
36
41
|
|
37
|
-
(0,
|
42
|
+
(0,tsafe_assert__WEBPACK_IMPORTED_MODULE_3__/* .assert */ .h)();
|
38
43
|
async function initializeSpa(params) {
|
39
44
|
var _a;
|
40
45
|
const { themeType, buildContext } = params;
|
@@ -42,29 +47,32 @@ async function initializeSpa(params) {
|
|
42
47
|
const themeTypeSrcDirPath = (0,path__WEBPACK_IMPORTED_MODULE_0__.join)(buildContext.themeSrcDirPath, themeType);
|
43
48
|
if (fs__WEBPACK_IMPORTED_MODULE_1__.existsSync(themeTypeSrcDirPath) &&
|
44
49
|
fs__WEBPACK_IMPORTED_MODULE_1__.readdirSync(themeTypeSrcDirPath).length > 0) {
|
45
|
-
console.warn(
|
50
|
+
console.warn(chalk__WEBPACK_IMPORTED_MODULE_8___default().red(`There is already a ${(0,path__WEBPACK_IMPORTED_MODULE_0__.relative)(process.cwd(), themeTypeSrcDirPath)} directory in your project. Aborting.`));
|
46
51
|
process.exit(-1);
|
47
52
|
}
|
48
53
|
}
|
49
54
|
const parsedPackageJson = (() => {
|
50
55
|
const zParsedPackageJson = (() => {
|
51
|
-
const zTargetType =
|
52
|
-
scripts:
|
53
|
-
dependencies:
|
54
|
-
devDependencies:
|
56
|
+
const zTargetType = zod__WEBPACK_IMPORTED_MODULE_10__.z.object({
|
57
|
+
scripts: zod__WEBPACK_IMPORTED_MODULE_10__.z.record(zod__WEBPACK_IMPORTED_MODULE_10__.z.union([zod__WEBPACK_IMPORTED_MODULE_10__.z.string(), zod__WEBPACK_IMPORTED_MODULE_10__.z.undefined()])).optional(),
|
58
|
+
dependencies: zod__WEBPACK_IMPORTED_MODULE_10__.z.record(zod__WEBPACK_IMPORTED_MODULE_10__.z.union([zod__WEBPACK_IMPORTED_MODULE_10__.z.string(), zod__WEBPACK_IMPORTED_MODULE_10__.z.undefined()])).optional(),
|
59
|
+
devDependencies: zod__WEBPACK_IMPORTED_MODULE_10__.z.record(zod__WEBPACK_IMPORTED_MODULE_10__.z.union([zod__WEBPACK_IMPORTED_MODULE_10__.z.string(), zod__WEBPACK_IMPORTED_MODULE_10__.z.undefined()])).optional()
|
55
60
|
});
|
56
|
-
|
57
|
-
return (0,
|
61
|
+
tsafe_assert__WEBPACK_IMPORTED_MODULE_3__/* .assert */ .h;
|
62
|
+
return (0,tsafe_id__WEBPACK_IMPORTED_MODULE_11__.id)(zTargetType);
|
58
63
|
})();
|
59
64
|
const parsedPackageJson = JSON.parse(fs__WEBPACK_IMPORTED_MODULE_1__.readFileSync(buildContext.packageJsonFilePath).toString("utf8"));
|
60
65
|
zParsedPackageJson.parse(parsedPackageJson);
|
61
|
-
(0,
|
66
|
+
(0,tsafe_assert__WEBPACK_IMPORTED_MODULE_3__/* .assert */ .h)((0,tsafe_assert__WEBPACK_IMPORTED_MODULE_3__.is)(parsedPackageJson));
|
62
67
|
return parsedPackageJson;
|
63
68
|
})();
|
64
|
-
(0,
|
69
|
+
(0,_addSyncExtensionsToPostinstallScript__WEBPACK_IMPORTED_MODULE_4__/* .addSyncExtensionsToPostinstallScript */ .N)({
|
65
70
|
parsedPackageJson,
|
66
71
|
buildContext
|
67
72
|
});
|
73
|
+
await disableVerbatimModuleSyntax({
|
74
|
+
projectDirPath: buildContext.projectDirPath
|
75
|
+
});
|
68
76
|
const uiSharedMajor = (() => {
|
69
77
|
const dependencies = Object.assign(Object.assign({}, parsedPackageJson.devDependencies), parsedPackageJson.dependencies);
|
70
78
|
const version = dependencies["@keycloakify/keycloak-ui-shared"];
|
@@ -79,7 +87,7 @@ async function initializeSpa(params) {
|
|
79
87
|
})();
|
80
88
|
const moduleName = `@keycloakify/keycloak-${themeType}-ui`;
|
81
89
|
const version = (() => {
|
82
|
-
const cmdOutput =
|
90
|
+
const cmdOutput = child_process__WEBPACK_IMPORTED_MODULE_7__.execSync(`npm show ${moduleName} versions --json`)
|
83
91
|
.toString("utf8")
|
84
92
|
.trim();
|
85
93
|
const versions = JSON.parse(cmdOutput);
|
@@ -92,25 +100,39 @@ async function initializeSpa(params) {
|
|
92
100
|
.reverse()
|
93
101
|
.filter(version => !version.includes("-"))
|
94
102
|
.find(version => uiSharedMajor === undefined ? true : version.startsWith(`${uiSharedMajor}.`));
|
95
|
-
(0,
|
103
|
+
(0,tsafe_assert__WEBPACK_IMPORTED_MODULE_3__/* .assert */ .h)(version !== undefined);
|
96
104
|
((_a = parsedPackageJson.dependencies) !== null && _a !== void 0 ? _a : (parsedPackageJson.dependencies = {}))[moduleName] = `~${version}`;
|
97
105
|
if (parsedPackageJson.devDependencies !== undefined) {
|
98
106
|
delete parsedPackageJson.devDependencies[moduleName];
|
99
107
|
}
|
100
108
|
{
|
101
109
|
let sourceCode = JSON.stringify(parsedPackageJson, undefined, 2);
|
102
|
-
if (await (0,
|
103
|
-
sourceCode = await (0,
|
110
|
+
if (await (0,_tools_runPrettier__WEBPACK_IMPORTED_MODULE_5__/* .getIsPrettierAvailable */ .MT)()) {
|
111
|
+
sourceCode = await (0,_tools_runPrettier__WEBPACK_IMPORTED_MODULE_5__/* .runPrettier */ .eY)({
|
104
112
|
sourceCode,
|
105
113
|
filePath: buildContext.packageJsonFilePath
|
106
114
|
});
|
107
115
|
}
|
108
116
|
fs__WEBPACK_IMPORTED_MODULE_1__.writeFileSync(buildContext.packageJsonFilePath, Buffer.from(sourceCode, "utf8"));
|
109
117
|
}
|
110
|
-
await (0,
|
118
|
+
await (0,_tools_npmInstall__WEBPACK_IMPORTED_MODULE_6__/* .npmInstall */ .c)({
|
111
119
|
packageJsonDirPath: (0,path__WEBPACK_IMPORTED_MODULE_0__.dirname)(buildContext.packageJsonFilePath)
|
112
120
|
});
|
113
121
|
}
|
122
|
+
async function disableVerbatimModuleSyntax(params) {
|
123
|
+
const { projectDirPath } = params;
|
124
|
+
const filePath = (0,path__WEBPACK_IMPORTED_MODULE_0__.join)(projectDirPath, "tsconfig.app.json");
|
125
|
+
if (!(await (0,_tools_fs_existsAsync__WEBPACK_IMPORTED_MODULE_9__/* .existsAsync */ .o)(filePath))) {
|
126
|
+
return;
|
127
|
+
}
|
128
|
+
let content = (await fs_promises__WEBPACK_IMPORTED_MODULE_2__.readFile(filePath)).toString("utf8");
|
129
|
+
const regExp = /"verbatimModuleSyntax"\s*:\s*true\s*(,?)/m;
|
130
|
+
if (!regExp.test(content)) {
|
131
|
+
return;
|
132
|
+
}
|
133
|
+
content = content.replace(regExp, `"verbatimModuleSyntax": false$1`);
|
134
|
+
await fs_promises__WEBPACK_IMPORTED_MODULE_2__.writeFile(filePath, Buffer.from(content, "utf8"));
|
135
|
+
}
|
114
136
|
//# sourceMappingURL=initializeSpa.js.map
|
115
137
|
|
116
138
|
/***/ }),
|
package/bin/762.index.js
CHANGED
@@ -430,7 +430,7 @@ async function command(params) {
|
|
430
430
|
if (values.length === 0) {
|
431
431
|
return undefined;
|
432
432
|
}
|
433
|
-
console.log(source_default().cyan(
|
433
|
+
console.log(source_default().cyan(`Which theme theme type would you like to initialize?`));
|
434
434
|
const { value } = await dist_default()({
|
435
435
|
values
|
436
436
|
}).catch(() => {
|
package/bin/97.index.js
CHANGED
@@ -1105,20 +1105,22 @@ async function npmInstall(params) {
|
|
1105
1105
|
async function runPackageManagerInstall(params) {
|
1106
1106
|
const { packageManagerBinName, cwd } = params;
|
1107
1107
|
const dCompleted = new Deferred.Deferred();
|
1108
|
-
const child = external_child_process_.spawn(packageManagerBinName, ["install"], {
|
1108
|
+
const child = external_child_process_.spawn(packageManagerBinName, ["install", ...(packageManagerBinName !== "npm" ? [] : ["--force"])], {
|
1109
1109
|
cwd,
|
1110
1110
|
env: process.env,
|
1111
1111
|
shell: true
|
1112
1112
|
});
|
1113
1113
|
child.stdout.on("data", data => process.stdout.write(data));
|
1114
|
+
let errorLog = "";
|
1114
1115
|
child.stderr.on("data", data => {
|
1115
1116
|
if (data.toString("utf8").includes("peer dependency")) {
|
1116
1117
|
return;
|
1117
1118
|
}
|
1118
|
-
|
1119
|
+
errorLog += data.toString("utf8");
|
1119
1120
|
});
|
1120
1121
|
child.on("exit", code => {
|
1121
1122
|
if (code !== 0) {
|
1123
|
+
console.log(errorLog);
|
1122
1124
|
dCompleted.reject(new Error(`Failed with code ${code}`));
|
1123
1125
|
return;
|
1124
1126
|
}
|
package/bin/main.js
CHANGED
@@ -72,9 +72,7 @@ function getProxyFetchOptions(params) {
|
|
72
72
|
var _a, _b, _c;
|
73
73
|
const { npmConfigGetCwd } = params;
|
74
74
|
const cfg = (() => {
|
75
|
-
const output = external_child_process_.execSync("npm config get", {
|
76
|
-
cwd: npmConfigGetCwd
|
77
|
-
})
|
75
|
+
const output = external_child_process_.execSync("npm config get", { cwd: npmConfigGetCwd })
|
78
76
|
.toString("utf8");
|
79
77
|
return output
|
80
78
|
.split("\n")
|
@@ -202,11 +200,18 @@ function getBuildContext(params) {
|
|
202
200
|
undefined) {
|
203
201
|
return { resolvedViteConfig: undefined };
|
204
202
|
}
|
205
|
-
|
206
|
-
|
207
|
-
|
208
|
-
|
209
|
-
|
203
|
+
let output;
|
204
|
+
try {
|
205
|
+
output = external_child_process_.execSync("npx vite", {
|
206
|
+
cwd: projectDirPath,
|
207
|
+
stdio: ["pipe", "pipe", "ignore"],
|
208
|
+
env: Object.assign(Object.assign({}, process.env), { [constants/* VITE_PLUGIN_SUB_SCRIPTS_ENV_NAMES.RESOLVE_VITE_CONFIG */.TE.RESOLVE_VITE_CONFIG]: "true" })
|
209
|
+
})
|
210
|
+
.toString("utf8");
|
211
|
+
}
|
212
|
+
catch (error) {
|
213
|
+
throw new Error(`Failed to run \`npx vite\`: ${error}`);
|
214
|
+
}
|
210
215
|
(0,assert/* assert */.h)(output.includes(constants/* VITE_PLUGIN_SUB_SCRIPTS_ENV_NAMES.RESOLVE_VITE_CONFIG */.TE.RESOLVE_VITE_CONFIG), "Seems like the Keycloakify's Vite plugin is not installed.");
|
211
216
|
const resolvedViteConfigStr = output
|
212
217
|
.split(constants/* VITE_PLUGIN_SUB_SCRIPTS_ENV_NAMES.RESOLVE_VITE_CONFIG */.TE.RESOLVE_VITE_CONFIG)
|
@@ -577,25 +582,27 @@ function getBuildContext(params) {
|
|
577
582
|
environmentVariables: (_e = buildOptions.environmentVariables) !== null && _e !== void 0 ? _e : [],
|
578
583
|
implementedThemeTypes,
|
579
584
|
themeSrcDirPath,
|
580
|
-
fetchOptions
|
581
|
-
|
582
|
-
|
583
|
-
|
584
|
-
|
585
|
-
|
586
|
-
|
587
|
-
|
588
|
-
|
589
|
-
|
590
|
-
catch (error) {
|
591
|
-
if (String(error).includes("ENOWORKSPACES")) {
|
592
|
-
return callee(upCount + 1);
|
585
|
+
get fetchOptions() {
|
586
|
+
return getProxyFetchOptions({
|
587
|
+
npmConfigGetCwd: (function callee(upCount) {
|
588
|
+
const dirPath = (0,external_path_.resolve)((0,external_path_.join)(...[projectDirPath, ...Array(upCount).fill("..")]));
|
589
|
+
(0,assert/* assert */.h)(dirPath !== external_path_.sep, "Couldn't find a place to run 'npm config get'");
|
590
|
+
try {
|
591
|
+
external_child_process_.execSync("npm config get", {
|
592
|
+
cwd: dirPath,
|
593
|
+
stdio: "pipe"
|
594
|
+
});
|
593
595
|
}
|
594
|
-
|
595
|
-
|
596
|
-
|
597
|
-
|
598
|
-
|
596
|
+
catch (error) {
|
597
|
+
if (String(error).includes("ENOWORKSPACES")) {
|
598
|
+
return callee(upCount + 1);
|
599
|
+
}
|
600
|
+
throw error;
|
601
|
+
}
|
602
|
+
return dirPath;
|
603
|
+
})(0)
|
604
|
+
});
|
605
|
+
},
|
599
606
|
jarTargets: (() => {
|
600
607
|
const getDefaultJarFileBasename = (range) => `keycloak-theme-for-kc-${range}.jar`;
|
601
608
|
build_for_specific_keycloak_major_version: {
|
package/package.json
CHANGED
package/src/bin/init/init.ts
CHANGED
@@ -299,7 +299,7 @@ export async function command(params: { projectDirPath: string }) {
|
|
299
299
|
return undefined;
|
300
300
|
}
|
301
301
|
|
302
|
-
console.log(chalk.cyan(
|
302
|
+
console.log(chalk.cyan(`Which theme theme type would you like to initialize?`));
|
303
303
|
|
304
304
|
const { value } = await cliSelect({
|
305
305
|
values
|
@@ -168,7 +168,7 @@ export async function command(params: { buildContext: BuildContext }) {
|
|
168
168
|
{
|
169
169
|
const moduleName = "@keycloakify/login-ui";
|
170
170
|
|
171
|
-
const latestVersion =
|
171
|
+
const latestVersion = getModuleLatestVersion({ moduleName });
|
172
172
|
|
173
173
|
(parsedPackageJson.dependencies ??= {})[moduleName] = `~${latestVersion}`;
|
174
174
|
|
@@ -184,13 +184,59 @@ export async function command(params: { buildContext: BuildContext }) {
|
|
184
184
|
|
185
185
|
const moduleName = "@keycloakify/login-ui-storybook";
|
186
186
|
|
187
|
-
const latestVersion =
|
187
|
+
const latestVersion = getModuleLatestVersion({ moduleName });
|
188
188
|
|
189
189
|
(parsedPackageJson.devDependencies ??= {})[moduleName] = `~${latestVersion}`;
|
190
190
|
|
191
191
|
delete parsedPackageJson.dependencies[moduleName];
|
192
192
|
}
|
193
193
|
|
194
|
+
update_main_dev: {
|
195
|
+
for (const fileBasename of ["main-kc.dev.tsx", "main.dev.tsx"]) {
|
196
|
+
const filePath = pathJoin(buildContext.themeSrcDirPath, fileBasename);
|
197
|
+
|
198
|
+
if (!(await existsAsync(filePath))) {
|
199
|
+
continue;
|
200
|
+
}
|
201
|
+
|
202
|
+
const content = (await fs.readFile(filePath)).toString("utf8");
|
203
|
+
|
204
|
+
if (!content.includes("export {}")) {
|
205
|
+
break update_main_dev;
|
206
|
+
}
|
207
|
+
|
208
|
+
let content_new = [
|
209
|
+
`import { createRoot } from "react-dom/client";`,
|
210
|
+
`import { StrictMode } from "react";`,
|
211
|
+
`import { KcPage } from "./kc.gen";`,
|
212
|
+
`import { getKcContextMock } from "./login/mocks/getKcContextMock";`,
|
213
|
+
``,
|
214
|
+
`const kcContext = getKcContextMock({`,
|
215
|
+
` pageId: "login.ftl",`,
|
216
|
+
` overrides: {}`,
|
217
|
+
`});`,
|
218
|
+
``,
|
219
|
+
`createRoot(document.getElementById("root")!).render(`,
|
220
|
+
` <StrictMode>`,
|
221
|
+
` <KcPage kcContext={kcContext} />`,
|
222
|
+
` </StrictMode>`,
|
223
|
+
`);`,
|
224
|
+
``
|
225
|
+
].join("\n");
|
226
|
+
|
227
|
+
if (await getIsPrettierAvailable()) {
|
228
|
+
content_new = await runPrettier({
|
229
|
+
sourceCode: content_new,
|
230
|
+
filePath
|
231
|
+
});
|
232
|
+
}
|
233
|
+
|
234
|
+
await fs.writeFile(filePath, content_new);
|
235
|
+
|
236
|
+
break;
|
237
|
+
}
|
238
|
+
}
|
239
|
+
|
194
240
|
{
|
195
241
|
let sourceCode = JSON.stringify(parsedPackageJson, null, 2);
|
196
242
|
|
@@ -212,7 +258,7 @@ export async function command(params: { buildContext: BuildContext }) {
|
|
212
258
|
});
|
213
259
|
}
|
214
260
|
|
215
|
-
|
261
|
+
function getModuleLatestVersion(params: { moduleName: string }) {
|
216
262
|
const { moduleName } = params;
|
217
263
|
|
218
264
|
const versions = ((): string[] => {
|
@@ -178,15 +178,22 @@ export function getBuildContext(params: {
|
|
178
178
|
return { resolvedViteConfig: undefined };
|
179
179
|
}
|
180
180
|
|
181
|
-
|
182
|
-
|
183
|
-
|
184
|
-
|
185
|
-
|
186
|
-
|
187
|
-
|
188
|
-
|
189
|
-
|
181
|
+
let output: string;
|
182
|
+
|
183
|
+
try {
|
184
|
+
output = child_process
|
185
|
+
.execSync("npx vite", {
|
186
|
+
cwd: projectDirPath,
|
187
|
+
stdio: ["pipe", "pipe", "ignore"],
|
188
|
+
env: {
|
189
|
+
...process.env,
|
190
|
+
[VITE_PLUGIN_SUB_SCRIPTS_ENV_NAMES.RESOLVE_VITE_CONFIG]: "true"
|
191
|
+
}
|
192
|
+
})
|
193
|
+
.toString("utf8");
|
194
|
+
} catch (error) {
|
195
|
+
throw new Error(`Failed to run \`npx vite\`: ${error}`);
|
196
|
+
}
|
190
197
|
|
191
198
|
assert(
|
192
199
|
output.includes(VITE_PLUGIN_SUB_SCRIPTS_ENV_NAMES.RESOLVE_VITE_CONFIG),
|
@@ -735,33 +742,36 @@ export function getBuildContext(params: {
|
|
735
742
|
environmentVariables: buildOptions.environmentVariables ?? [],
|
736
743
|
implementedThemeTypes,
|
737
744
|
themeSrcDirPath,
|
738
|
-
fetchOptions
|
739
|
-
|
740
|
-
|
741
|
-
|
742
|
-
|
745
|
+
get fetchOptions() {
|
746
|
+
return getProxyFetchOptions({
|
747
|
+
npmConfigGetCwd: (function callee(upCount: number): string {
|
748
|
+
const dirPath = pathResolve(
|
749
|
+
pathJoin(...[projectDirPath, ...Array(upCount).fill("..")])
|
750
|
+
);
|
743
751
|
|
744
|
-
|
745
|
-
|
746
|
-
|
747
|
-
|
752
|
+
assert(
|
753
|
+
dirPath !== pathSep,
|
754
|
+
"Couldn't find a place to run 'npm config get'"
|
755
|
+
);
|
748
756
|
|
749
|
-
|
750
|
-
|
751
|
-
|
752
|
-
|
753
|
-
|
754
|
-
|
755
|
-
|
756
|
-
|
757
|
+
try {
|
758
|
+
child_process.execSync("npm config get", {
|
759
|
+
cwd: dirPath,
|
760
|
+
stdio: "pipe"
|
761
|
+
});
|
762
|
+
} catch (error) {
|
763
|
+
if (String(error).includes("ENOWORKSPACES")) {
|
764
|
+
return callee(upCount + 1);
|
765
|
+
}
|
766
|
+
|
767
|
+
throw error;
|
757
768
|
}
|
758
769
|
|
759
|
-
|
760
|
-
}
|
770
|
+
return dirPath;
|
771
|
+
})(0)
|
772
|
+
});
|
773
|
+
},
|
761
774
|
|
762
|
-
return dirPath;
|
763
|
-
})(0)
|
764
|
-
}),
|
765
775
|
jarTargets: (() => {
|
766
776
|
const getDefaultJarFileBasename = (range: string) =>
|
767
777
|
`keycloak-theme-for-kc-${range}.jar`;
|
@@ -1,6 +1,7 @@
|
|
1
1
|
import { dirname as pathDirname, join as pathJoin, relative as pathRelative } from "path";
|
2
2
|
import type { BuildContext } from "./buildContext";
|
3
3
|
import * as fs from "fs";
|
4
|
+
import * as fsPr from "fs/promises";
|
4
5
|
import { assert, is, type Equals } from "tsafe/assert";
|
5
6
|
import { id } from "tsafe/id";
|
6
7
|
import {
|
@@ -12,6 +13,7 @@ import { npmInstall } from "../tools/npmInstall";
|
|
12
13
|
import * as child_process from "child_process";
|
13
14
|
import { z } from "zod";
|
14
15
|
import chalk from "chalk";
|
16
|
+
import { existsAsync } from "../tools/fs.existsAsync";
|
15
17
|
|
16
18
|
export type BuildContextLike = BuildContextLike_addSyncExtensionsToPostinstallScript & {
|
17
19
|
themeSrcDirPath: string;
|
@@ -82,6 +84,10 @@ export async function initializeSpa(params: {
|
|
82
84
|
buildContext
|
83
85
|
});
|
84
86
|
|
87
|
+
await disableVerbatimModuleSyntax({
|
88
|
+
projectDirPath: buildContext.projectDirPath
|
89
|
+
});
|
90
|
+
|
85
91
|
const uiSharedMajor = (() => {
|
86
92
|
const dependencies = {
|
87
93
|
...parsedPackageJson.devDependencies,
|
@@ -154,3 +160,25 @@ export async function initializeSpa(params: {
|
|
154
160
|
packageJsonDirPath: pathDirname(buildContext.packageJsonFilePath)
|
155
161
|
});
|
156
162
|
}
|
163
|
+
|
164
|
+
async function disableVerbatimModuleSyntax(params: { projectDirPath: string }) {
|
165
|
+
const { projectDirPath } = params;
|
166
|
+
|
167
|
+
const filePath = pathJoin(projectDirPath, "tsconfig.app.json");
|
168
|
+
|
169
|
+
if (!(await existsAsync(filePath))) {
|
170
|
+
return;
|
171
|
+
}
|
172
|
+
|
173
|
+
let content = (await fsPr.readFile(filePath)).toString("utf8");
|
174
|
+
|
175
|
+
const regExp = /"verbatimModuleSyntax"\s*:\s*true\s*(,?)/m;
|
176
|
+
|
177
|
+
if (!regExp.test(content)) {
|
178
|
+
return;
|
179
|
+
}
|
180
|
+
|
181
|
+
content = content.replace(regExp, `"verbatimModuleSyntax": false$1`);
|
182
|
+
|
183
|
+
await fsPr.writeFile(filePath, Buffer.from(content, "utf8"));
|
184
|
+
}
|
@@ -17,9 +17,7 @@ export function getProxyFetchOptions(params: {
|
|
17
17
|
|
18
18
|
const cfg = (() => {
|
19
19
|
const output = child_process
|
20
|
-
.execSync("npm config get", {
|
21
|
-
cwd: npmConfigGetCwd
|
22
|
-
})
|
20
|
+
.execSync("npm config get", { cwd: npmConfigGetCwd })
|
23
21
|
.toString("utf8");
|
24
22
|
|
25
23
|
return output
|
@@ -99,24 +99,31 @@ async function runPackageManagerInstall(params: {
|
|
99
99
|
|
100
100
|
const dCompleted = new Deferred<void>();
|
101
101
|
|
102
|
-
const child = child_process.spawn(
|
103
|
-
|
104
|
-
|
105
|
-
|
106
|
-
|
102
|
+
const child = child_process.spawn(
|
103
|
+
packageManagerBinName,
|
104
|
+
["install", ...(packageManagerBinName !== "npm" ? [] : ["--force"])],
|
105
|
+
{
|
106
|
+
cwd,
|
107
|
+
env: process.env,
|
108
|
+
shell: true
|
109
|
+
}
|
110
|
+
);
|
107
111
|
|
108
112
|
child.stdout.on("data", data => process.stdout.write(data));
|
109
113
|
|
114
|
+
let errorLog = "";
|
115
|
+
|
110
116
|
child.stderr.on("data", data => {
|
111
117
|
if (data.toString("utf8").includes("peer dependency")) {
|
112
118
|
return;
|
113
119
|
}
|
114
120
|
|
115
|
-
|
121
|
+
errorLog += data.toString("utf8");
|
116
122
|
});
|
117
123
|
|
118
124
|
child.on("exit", code => {
|
119
125
|
if (code !== 0) {
|
126
|
+
console.log(errorLog);
|
120
127
|
dCompleted.reject(new Error(`Failed with code ${code}`));
|
121
128
|
return;
|
122
129
|
}
|
package/vite-plugin/index.js
CHANGED
@@ -286,9 +286,7 @@ function getProxyFetchOptions(params) {
|
|
286
286
|
var _a, _b, _c;
|
287
287
|
const { npmConfigGetCwd } = params;
|
288
288
|
const cfg = (() => {
|
289
|
-
const output = external_child_process_.execSync("npm config get", {
|
290
|
-
cwd: npmConfigGetCwd
|
291
|
-
})
|
289
|
+
const output = external_child_process_.execSync("npm config get", { cwd: npmConfigGetCwd })
|
292
290
|
.toString("utf8");
|
293
291
|
return output
|
294
292
|
.split("\n")
|
@@ -416,11 +414,18 @@ function getBuildContext(params) {
|
|
416
414
|
undefined) {
|
417
415
|
return { resolvedViteConfig: undefined };
|
418
416
|
}
|
419
|
-
|
420
|
-
|
421
|
-
|
422
|
-
|
423
|
-
|
417
|
+
let output;
|
418
|
+
try {
|
419
|
+
output = external_child_process_.execSync("npx vite", {
|
420
|
+
cwd: projectDirPath,
|
421
|
+
stdio: ["pipe", "pipe", "ignore"],
|
422
|
+
env: Object.assign(Object.assign({}, process.env), { [constants.VITE_PLUGIN_SUB_SCRIPTS_ENV_NAMES.RESOLVE_VITE_CONFIG]: "true" })
|
423
|
+
})
|
424
|
+
.toString("utf8");
|
425
|
+
}
|
426
|
+
catch (error) {
|
427
|
+
throw new Error(`Failed to run \`npx vite\`: ${error}`);
|
428
|
+
}
|
424
429
|
(0,assert/* assert */.h)(output.includes(constants.VITE_PLUGIN_SUB_SCRIPTS_ENV_NAMES.RESOLVE_VITE_CONFIG), "Seems like the Keycloakify's Vite plugin is not installed.");
|
425
430
|
const resolvedViteConfigStr = output
|
426
431
|
.split(constants.VITE_PLUGIN_SUB_SCRIPTS_ENV_NAMES.RESOLVE_VITE_CONFIG)
|
@@ -791,25 +796,27 @@ function getBuildContext(params) {
|
|
791
796
|
environmentVariables: (_e = buildOptions.environmentVariables) !== null && _e !== void 0 ? _e : [],
|
792
797
|
implementedThemeTypes,
|
793
798
|
themeSrcDirPath,
|
794
|
-
fetchOptions
|
795
|
-
|
796
|
-
|
797
|
-
|
798
|
-
|
799
|
-
|
800
|
-
|
801
|
-
|
802
|
-
|
803
|
-
|
804
|
-
catch (error) {
|
805
|
-
if (String(error).includes("ENOWORKSPACES")) {
|
806
|
-
return callee(upCount + 1);
|
799
|
+
get fetchOptions() {
|
800
|
+
return getProxyFetchOptions({
|
801
|
+
npmConfigGetCwd: (function callee(upCount) {
|
802
|
+
const dirPath = (0,external_path_.resolve)((0,external_path_.join)(...[projectDirPath, ...Array(upCount).fill("..")]));
|
803
|
+
(0,assert/* assert */.h)(dirPath !== external_path_.sep, "Couldn't find a place to run 'npm config get'");
|
804
|
+
try {
|
805
|
+
external_child_process_.execSync("npm config get", {
|
806
|
+
cwd: dirPath,
|
807
|
+
stdio: "pipe"
|
808
|
+
});
|
807
809
|
}
|
808
|
-
|
809
|
-
|
810
|
-
|
811
|
-
|
812
|
-
|
810
|
+
catch (error) {
|
811
|
+
if (String(error).includes("ENOWORKSPACES")) {
|
812
|
+
return callee(upCount + 1);
|
813
|
+
}
|
814
|
+
throw error;
|
815
|
+
}
|
816
|
+
return dirPath;
|
817
|
+
})(0)
|
818
|
+
});
|
819
|
+
},
|
813
820
|
jarTargets: (() => {
|
814
821
|
const getDefaultJarFileBasename = (range) => `keycloak-theme-for-kc-${range}.jar`;
|
815
822
|
build_for_specific_keycloak_major_version: {
|