keycloakify 11.3.0-rc.3 → 11.3.0-rc.6
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/61.index.js +204 -0
- package/bin/780.index.js +136 -94
- package/bin/main.js +154 -239
- package/bin/shared/{customHandler_caller.d.ts → customHandler_delegate.d.ts} +1 -1
- package/package.json +4 -6
- package/src/bin/initialize-account-theme/initialize-account-theme.ts +2 -2
- package/src/bin/main.ts +124 -181
- package/src/bin/shared/{customHandler_caller.ts → customHandler_delegate.ts} +4 -8
- package/src/bin/update-kc-gen.ts +110 -2
- package/src/vite-plugin/vite-plugin.ts +4 -3
- package/stories/login/pages/Register.stories.tsx +2 -4
- package/vite-plugin/index.js +9179 -9151
- package/bin/786.index.js +0 -179
- package/bin/shared/generateKcGenTs.d.ts +0 -15
- package/src/bin/shared/generateKcGenTs.ts +0 -175
package/bin/786.index.js
DELETED
@@ -1,179 +0,0 @@
|
|
1
|
-
"use strict";
|
2
|
-
exports.id = 786;
|
3
|
-
exports.ids = [786];
|
4
|
-
exports.modules = {
|
5
|
-
|
6
|
-
/***/ 58585:
|
7
|
-
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
8
|
-
|
9
|
-
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
10
|
-
/* harmony export */ "b": () => (/* binding */ generateKcGenTs)
|
11
|
-
/* harmony export */ });
|
12
|
-
/* harmony import */ var tsafe_assert__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(29041);
|
13
|
-
/* harmony import */ var tsafe_id__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(38469);
|
14
|
-
/* harmony import */ var fs_promises__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(73292);
|
15
|
-
/* harmony import */ var fs_promises__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(fs_promises__WEBPACK_IMPORTED_MODULE_1__);
|
16
|
-
/* harmony import */ var path__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(71017);
|
17
|
-
/* harmony import */ var path__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(path__WEBPACK_IMPORTED_MODULE_2__);
|
18
|
-
/* harmony import */ var _tools_fs_existsAsync__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(43765);
|
19
|
-
/* harmony import */ var zod__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(52300);
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
(0,tsafe_assert__WEBPACK_IMPORTED_MODULE_0__/* .assert */ .h)();
|
27
|
-
async function generateKcGenTs(params) {
|
28
|
-
const { buildContext } = params;
|
29
|
-
const isReactProject = await (async () => {
|
30
|
-
const parsedPackageJson = await (async () => {
|
31
|
-
const zParsedPackageJson = (() => {
|
32
|
-
const zTargetType = zod__WEBPACK_IMPORTED_MODULE_4__.z.object({
|
33
|
-
dependencies: zod__WEBPACK_IMPORTED_MODULE_4__.z.record(zod__WEBPACK_IMPORTED_MODULE_4__.z.string()).optional(),
|
34
|
-
devDependencies: zod__WEBPACK_IMPORTED_MODULE_4__.z.record(zod__WEBPACK_IMPORTED_MODULE_4__.z.string()).optional()
|
35
|
-
});
|
36
|
-
(0,tsafe_assert__WEBPACK_IMPORTED_MODULE_0__/* .assert */ .h)();
|
37
|
-
return (0,tsafe_id__WEBPACK_IMPORTED_MODULE_5__.id)(zTargetType);
|
38
|
-
})();
|
39
|
-
return zParsedPackageJson.parse(JSON.parse((await fs_promises__WEBPACK_IMPORTED_MODULE_1__.readFile(buildContext.packageJsonFilePath)).toString("utf8")));
|
40
|
-
})();
|
41
|
-
return (Object.assign(Object.assign({}, parsedPackageJson.dependencies), parsedPackageJson.devDependencies).react !== undefined);
|
42
|
-
})();
|
43
|
-
const filePath = (0,path__WEBPACK_IMPORTED_MODULE_2__.join)(buildContext.themeSrcDirPath, `kc.gen.ts${isReactProject ? "x" : ""}`);
|
44
|
-
const currentContent = (await (0,_tools_fs_existsAsync__WEBPACK_IMPORTED_MODULE_3__/* .existsAsync */ .o)(filePath))
|
45
|
-
? await fs_promises__WEBPACK_IMPORTED_MODULE_1__.readFile(filePath)
|
46
|
-
: undefined;
|
47
|
-
const hasLoginTheme = buildContext.implementedThemeTypes.login.isImplemented;
|
48
|
-
const hasAccountTheme = buildContext.implementedThemeTypes.account.isImplemented;
|
49
|
-
const newContent = Buffer.from([
|
50
|
-
`/* prettier-ignore-start */`,
|
51
|
-
``,
|
52
|
-
`/* eslint-disable */`,
|
53
|
-
``,
|
54
|
-
`// @ts-nocheck`,
|
55
|
-
``,
|
56
|
-
`// noinspection JSUnusedGlobalSymbols`,
|
57
|
-
``,
|
58
|
-
`// This file is auto-generated by Keycloakify`,
|
59
|
-
``,
|
60
|
-
isReactProject && `import { lazy, Suspense, type ReactNode } from "react";`,
|
61
|
-
``,
|
62
|
-
`export type ThemeName = ${buildContext.themeNames.map(themeName => `"${themeName}"`).join(" | ")};`,
|
63
|
-
``,
|
64
|
-
`export const themeNames: ThemeName[] = [${buildContext.themeNames.map(themeName => `"${themeName}"`).join(", ")}];`,
|
65
|
-
``,
|
66
|
-
`export type KcEnvName = ${buildContext.environmentVariables.length === 0 ? "never" : buildContext.environmentVariables.map(({ name }) => `"${name}"`).join(" | ")};`,
|
67
|
-
``,
|
68
|
-
`export const kcEnvNames: KcEnvName[] = [${buildContext.environmentVariables.map(({ name }) => `"${name}"`).join(", ")}];`,
|
69
|
-
``,
|
70
|
-
`export const kcEnvDefaults: Record<KcEnvName, string> = ${JSON.stringify(Object.fromEntries(buildContext.environmentVariables.map(({ name, default: defaultValue }) => [name, defaultValue])), null, 2)};`,
|
71
|
-
``,
|
72
|
-
`export type KcContext =`,
|
73
|
-
hasLoginTheme && ` | import("./login/KcContext").KcContext`,
|
74
|
-
hasAccountTheme && ` | import("./account/KcContext").KcContext`,
|
75
|
-
` ;`,
|
76
|
-
``,
|
77
|
-
`declare global {`,
|
78
|
-
` interface Window {`,
|
79
|
-
` kcContext?: KcContext;`,
|
80
|
-
` }`,
|
81
|
-
`}`,
|
82
|
-
``,
|
83
|
-
...(!isReactProject
|
84
|
-
? []
|
85
|
-
: [
|
86
|
-
hasLoginTheme &&
|
87
|
-
`export const KcLoginPage = lazy(() => import("./login/KcPage"));`,
|
88
|
-
hasAccountTheme &&
|
89
|
-
`export const KcAccountPage = lazy(() => import("./account/KcPage"));`,
|
90
|
-
``,
|
91
|
-
`export function KcPage(`,
|
92
|
-
` props: {`,
|
93
|
-
` kcContext: KcContext;`,
|
94
|
-
` fallback?: ReactNode;`,
|
95
|
-
` }`,
|
96
|
-
`) {`,
|
97
|
-
` const { kcContext, fallback } = props;`,
|
98
|
-
` return (`,
|
99
|
-
` <Suspense fallback={fallback}>`,
|
100
|
-
` {(() => {`,
|
101
|
-
` switch (kcContext.themeType) {`,
|
102
|
-
hasLoginTheme &&
|
103
|
-
` case "login": return <KcLoginPage kcContext={kcContext} />;`,
|
104
|
-
hasAccountTheme &&
|
105
|
-
` case "account": return <KcAccountPage kcContext={kcContext} />;`,
|
106
|
-
` }`,
|
107
|
-
` })()}`,
|
108
|
-
` </Suspense>`,
|
109
|
-
` );`,
|
110
|
-
`}`
|
111
|
-
]),
|
112
|
-
``,
|
113
|
-
`/* prettier-ignore-end */`,
|
114
|
-
``
|
115
|
-
]
|
116
|
-
.filter(item => typeof item === "string")
|
117
|
-
.join("\n"), "utf8");
|
118
|
-
if (currentContent !== undefined && currentContent.equals(newContent)) {
|
119
|
-
return;
|
120
|
-
}
|
121
|
-
await fs_promises__WEBPACK_IMPORTED_MODULE_1__.writeFile(filePath, newContent);
|
122
|
-
delete_legacy_file: {
|
123
|
-
if (!isReactProject) {
|
124
|
-
break delete_legacy_file;
|
125
|
-
}
|
126
|
-
const legacyFilePath = filePath.replace(/tsx$/, "ts");
|
127
|
-
if (!(await (0,_tools_fs_existsAsync__WEBPACK_IMPORTED_MODULE_3__/* .existsAsync */ .o)(legacyFilePath))) {
|
128
|
-
break delete_legacy_file;
|
129
|
-
}
|
130
|
-
await fs_promises__WEBPACK_IMPORTED_MODULE_1__.unlink(legacyFilePath);
|
131
|
-
}
|
132
|
-
}
|
133
|
-
//# sourceMappingURL=generateKcGenTs.js.map
|
134
|
-
|
135
|
-
/***/ }),
|
136
|
-
|
137
|
-
/***/ 43765:
|
138
|
-
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
139
|
-
|
140
|
-
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
141
|
-
/* harmony export */ "o": () => (/* binding */ existsAsync)
|
142
|
-
/* harmony export */ });
|
143
|
-
/* harmony import */ var fs_promises__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(73292);
|
144
|
-
/* harmony import */ var fs_promises__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(fs_promises__WEBPACK_IMPORTED_MODULE_0__);
|
145
|
-
|
146
|
-
async function existsAsync(path) {
|
147
|
-
try {
|
148
|
-
await fs_promises__WEBPACK_IMPORTED_MODULE_0__.stat(path);
|
149
|
-
return true;
|
150
|
-
}
|
151
|
-
catch (error) {
|
152
|
-
if (error.code === "ENOENT")
|
153
|
-
return false;
|
154
|
-
throw error;
|
155
|
-
}
|
156
|
-
}
|
157
|
-
//# sourceMappingURL=fs.existsAsync.js.map
|
158
|
-
|
159
|
-
/***/ }),
|
160
|
-
|
161
|
-
/***/ 10786:
|
162
|
-
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
163
|
-
|
164
|
-
__webpack_require__.r(__webpack_exports__);
|
165
|
-
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
166
|
-
/* harmony export */ "command": () => (/* binding */ command)
|
167
|
-
/* harmony export */ });
|
168
|
-
/* harmony import */ var _shared_generateKcGenTs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(58585);
|
169
|
-
|
170
|
-
async function command(params) {
|
171
|
-
const { buildContext } = params;
|
172
|
-
await (0,_shared_generateKcGenTs__WEBPACK_IMPORTED_MODULE_0__/* .generateKcGenTs */ .b)({ buildContext });
|
173
|
-
}
|
174
|
-
//# sourceMappingURL=update-kc-gen.js.map
|
175
|
-
|
176
|
-
/***/ })
|
177
|
-
|
178
|
-
};
|
179
|
-
;
|
@@ -1,15 +0,0 @@
|
|
1
|
-
import type { BuildContext } from "./buildContext";
|
2
|
-
export type BuildContextLike = {
|
3
|
-
projectDirPath: string;
|
4
|
-
themeNames: string[];
|
5
|
-
environmentVariables: {
|
6
|
-
name: string;
|
7
|
-
default: string;
|
8
|
-
}[];
|
9
|
-
themeSrcDirPath: string;
|
10
|
-
implementedThemeTypes: Pick<BuildContext["implementedThemeTypes"], "login" | "account">;
|
11
|
-
packageJsonFilePath: string;
|
12
|
-
};
|
13
|
-
export declare function generateKcGenTs(params: {
|
14
|
-
buildContext: BuildContextLike;
|
15
|
-
}): Promise<void>;
|
@@ -1,175 +0,0 @@
|
|
1
|
-
import { assert, type Equals } from "tsafe/assert";
|
2
|
-
import { id } from "tsafe/id";
|
3
|
-
import type { BuildContext } from "./buildContext";
|
4
|
-
import * as fs from "fs/promises";
|
5
|
-
import { join as pathJoin } from "path";
|
6
|
-
import { existsAsync } from "../tools/fs.existsAsync";
|
7
|
-
import { z } from "zod";
|
8
|
-
|
9
|
-
export type BuildContextLike = {
|
10
|
-
projectDirPath: string;
|
11
|
-
themeNames: string[];
|
12
|
-
environmentVariables: { name: string; default: string }[];
|
13
|
-
themeSrcDirPath: string;
|
14
|
-
implementedThemeTypes: Pick<
|
15
|
-
BuildContext["implementedThemeTypes"],
|
16
|
-
"login" | "account"
|
17
|
-
>;
|
18
|
-
packageJsonFilePath: string;
|
19
|
-
};
|
20
|
-
|
21
|
-
assert<BuildContext extends BuildContextLike ? true : false>();
|
22
|
-
|
23
|
-
export async function generateKcGenTs(params: {
|
24
|
-
buildContext: BuildContextLike;
|
25
|
-
}): Promise<void> {
|
26
|
-
const { buildContext } = params;
|
27
|
-
|
28
|
-
const isReactProject: boolean = await (async () => {
|
29
|
-
const parsedPackageJson = await (async () => {
|
30
|
-
type ParsedPackageJson = {
|
31
|
-
dependencies?: Record<string, string>;
|
32
|
-
devDependencies?: Record<string, string>;
|
33
|
-
};
|
34
|
-
|
35
|
-
const zParsedPackageJson = (() => {
|
36
|
-
type TargetType = ParsedPackageJson;
|
37
|
-
|
38
|
-
const zTargetType = z.object({
|
39
|
-
dependencies: z.record(z.string()).optional(),
|
40
|
-
devDependencies: z.record(z.string()).optional()
|
41
|
-
});
|
42
|
-
|
43
|
-
assert<Equals<z.infer<typeof zTargetType>, TargetType>>();
|
44
|
-
|
45
|
-
return id<z.ZodType<TargetType>>(zTargetType);
|
46
|
-
})();
|
47
|
-
|
48
|
-
return zParsedPackageJson.parse(
|
49
|
-
JSON.parse(
|
50
|
-
(await fs.readFile(buildContext.packageJsonFilePath)).toString("utf8")
|
51
|
-
)
|
52
|
-
);
|
53
|
-
})();
|
54
|
-
|
55
|
-
return (
|
56
|
-
{
|
57
|
-
...parsedPackageJson.dependencies,
|
58
|
-
...parsedPackageJson.devDependencies
|
59
|
-
}.react !== undefined
|
60
|
-
);
|
61
|
-
})();
|
62
|
-
|
63
|
-
const filePath = pathJoin(
|
64
|
-
buildContext.themeSrcDirPath,
|
65
|
-
`kc.gen.ts${isReactProject ? "x" : ""}`
|
66
|
-
);
|
67
|
-
|
68
|
-
const currentContent = (await existsAsync(filePath))
|
69
|
-
? await fs.readFile(filePath)
|
70
|
-
: undefined;
|
71
|
-
|
72
|
-
const hasLoginTheme = buildContext.implementedThemeTypes.login.isImplemented;
|
73
|
-
const hasAccountTheme = buildContext.implementedThemeTypes.account.isImplemented;
|
74
|
-
|
75
|
-
const newContent = Buffer.from(
|
76
|
-
[
|
77
|
-
`/* prettier-ignore-start */`,
|
78
|
-
``,
|
79
|
-
`/* eslint-disable */`,
|
80
|
-
``,
|
81
|
-
`// @ts-nocheck`,
|
82
|
-
``,
|
83
|
-
`// noinspection JSUnusedGlobalSymbols`,
|
84
|
-
``,
|
85
|
-
`// This file is auto-generated by Keycloakify`,
|
86
|
-
``,
|
87
|
-
isReactProject && `import { lazy, Suspense, type ReactNode } from "react";`,
|
88
|
-
``,
|
89
|
-
`export type ThemeName = ${buildContext.themeNames.map(themeName => `"${themeName}"`).join(" | ")};`,
|
90
|
-
``,
|
91
|
-
`export const themeNames: ThemeName[] = [${buildContext.themeNames.map(themeName => `"${themeName}"`).join(", ")}];`,
|
92
|
-
``,
|
93
|
-
`export type KcEnvName = ${buildContext.environmentVariables.length === 0 ? "never" : buildContext.environmentVariables.map(({ name }) => `"${name}"`).join(" | ")};`,
|
94
|
-
``,
|
95
|
-
`export const kcEnvNames: KcEnvName[] = [${buildContext.environmentVariables.map(({ name }) => `"${name}"`).join(", ")}];`,
|
96
|
-
``,
|
97
|
-
`export const kcEnvDefaults: Record<KcEnvName, string> = ${JSON.stringify(
|
98
|
-
Object.fromEntries(
|
99
|
-
buildContext.environmentVariables.map(
|
100
|
-
({ name, default: defaultValue }) => [name, defaultValue]
|
101
|
-
)
|
102
|
-
),
|
103
|
-
null,
|
104
|
-
2
|
105
|
-
)};`,
|
106
|
-
``,
|
107
|
-
`export type KcContext =`,
|
108
|
-
hasLoginTheme && ` | import("./login/KcContext").KcContext`,
|
109
|
-
hasAccountTheme && ` | import("./account/KcContext").KcContext`,
|
110
|
-
` ;`,
|
111
|
-
``,
|
112
|
-
`declare global {`,
|
113
|
-
` interface Window {`,
|
114
|
-
` kcContext?: KcContext;`,
|
115
|
-
` }`,
|
116
|
-
`}`,
|
117
|
-
``,
|
118
|
-
...(!isReactProject
|
119
|
-
? []
|
120
|
-
: [
|
121
|
-
hasLoginTheme &&
|
122
|
-
`export const KcLoginPage = lazy(() => import("./login/KcPage"));`,
|
123
|
-
hasAccountTheme &&
|
124
|
-
`export const KcAccountPage = lazy(() => import("./account/KcPage"));`,
|
125
|
-
``,
|
126
|
-
`export function KcPage(`,
|
127
|
-
` props: {`,
|
128
|
-
` kcContext: KcContext;`,
|
129
|
-
` fallback?: ReactNode;`,
|
130
|
-
` }`,
|
131
|
-
`) {`,
|
132
|
-
` const { kcContext, fallback } = props;`,
|
133
|
-
` return (`,
|
134
|
-
` <Suspense fallback={fallback}>`,
|
135
|
-
` {(() => {`,
|
136
|
-
` switch (kcContext.themeType) {`,
|
137
|
-
hasLoginTheme &&
|
138
|
-
` case "login": return <KcLoginPage kcContext={kcContext} />;`,
|
139
|
-
hasAccountTheme &&
|
140
|
-
` case "account": return <KcAccountPage kcContext={kcContext} />;`,
|
141
|
-
` }`,
|
142
|
-
` })()}`,
|
143
|
-
` </Suspense>`,
|
144
|
-
` );`,
|
145
|
-
`}`
|
146
|
-
]),
|
147
|
-
``,
|
148
|
-
`/* prettier-ignore-end */`,
|
149
|
-
``
|
150
|
-
]
|
151
|
-
.filter(item => typeof item === "string")
|
152
|
-
.join("\n"),
|
153
|
-
"utf8"
|
154
|
-
);
|
155
|
-
|
156
|
-
if (currentContent !== undefined && currentContent.equals(newContent)) {
|
157
|
-
return;
|
158
|
-
}
|
159
|
-
|
160
|
-
await fs.writeFile(filePath, newContent);
|
161
|
-
|
162
|
-
delete_legacy_file: {
|
163
|
-
if (!isReactProject) {
|
164
|
-
break delete_legacy_file;
|
165
|
-
}
|
166
|
-
|
167
|
-
const legacyFilePath = filePath.replace(/tsx$/, "ts");
|
168
|
-
|
169
|
-
if (!(await existsAsync(legacyFilePath))) {
|
170
|
-
break delete_legacy_file;
|
171
|
-
}
|
172
|
-
|
173
|
-
await fs.unlink(legacyFilePath);
|
174
|
-
}
|
175
|
-
}
|