keycloakify 9.3.0 → 9.4.0-rc.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (182) hide show
  1. package/README.md +5 -0
  2. package/account/kcContext/getKcContextFromWindow.js +2 -2
  3. package/account/kcContext/getKcContextFromWindow.js.map +1 -1
  4. package/bin/constants.d.ts +4 -1
  5. package/bin/constants.js +5 -2
  6. package/bin/constants.js.map +1 -1
  7. package/bin/copy-keycloak-resources-to-public.js +3 -4
  8. package/bin/copy-keycloak-resources-to-public.js.map +1 -1
  9. package/bin/download-builtin-keycloak-theme.js +98 -31
  10. package/bin/download-builtin-keycloak-theme.js.map +1 -1
  11. package/bin/eject-keycloak-page.js +2 -2
  12. package/bin/eject-keycloak-page.js.map +1 -1
  13. package/bin/{getSrcDirPath.js → getThemeSrcDirPath.js} +1 -1
  14. package/bin/getThemeSrcDirPath.js.map +1 -0
  15. package/bin/initialize-email-theme.js +6 -5
  16. package/bin/initialize-email-theme.js.map +1 -1
  17. package/bin/keycloakify/{BuildOptions.d.ts → buildOptions/buildOptions.d.ts} +2 -1
  18. package/bin/keycloakify/buildOptions/buildOptions.js +136 -0
  19. package/bin/keycloakify/buildOptions/buildOptions.js.map +1 -0
  20. package/bin/keycloakify/buildOptions/getKeycloakifyBuildDirPath.d.ts +7 -0
  21. package/bin/keycloakify/buildOptions/getKeycloakifyBuildDirPath.js +27 -0
  22. package/bin/keycloakify/buildOptions/getKeycloakifyBuildDirPath.js.map +1 -0
  23. package/bin/keycloakify/buildOptions/index.d.ts +1 -0
  24. package/bin/keycloakify/{generateJavaStackFiles → buildOptions}/index.js +1 -1
  25. package/bin/keycloakify/buildOptions/index.js.map +1 -0
  26. package/bin/keycloakify/buildOptions/parsedPackageJson.d.ts +19 -0
  27. package/bin/keycloakify/{parsedPackageJson.js → buildOptions/parsedPackageJson.js} +6 -7
  28. package/bin/keycloakify/buildOptions/parsedPackageJson.js.map +1 -0
  29. package/bin/keycloakify/buildOptions/resolvedViteConfig.d.ts +12 -0
  30. package/bin/keycloakify/buildOptions/resolvedViteConfig.js +82 -0
  31. package/bin/keycloakify/buildOptions/resolvedViteConfig.js.map +1 -0
  32. package/bin/keycloakify/generateFtl/generateFtl.d.ts +4 -1
  33. package/bin/keycloakify/generateFtl/generateFtl.js +5 -5
  34. package/bin/keycloakify/generateFtl/generateFtl.js.map +1 -1
  35. package/bin/keycloakify/generatePom.d.ts +12 -0
  36. package/bin/keycloakify/generatePom.js +59 -0
  37. package/bin/keycloakify/generatePom.js.map +1 -0
  38. package/bin/keycloakify/{generateJavaStackFiles → generateTheme}/bringInAccountV1.d.ts +2 -1
  39. package/bin/keycloakify/{generateJavaStackFiles → generateTheme}/bringInAccountV1.js +21 -67
  40. package/bin/keycloakify/generateTheme/bringInAccountV1.js.map +1 -0
  41. package/bin/keycloakify/generateTheme/downloadKeycloakStaticResources.d.ts +0 -3
  42. package/bin/keycloakify/generateTheme/downloadKeycloakStaticResources.js +5 -34
  43. package/bin/keycloakify/generateTheme/downloadKeycloakStaticResources.js.map +1 -1
  44. package/bin/keycloakify/generateTheme/generateTheme.d.ts +4 -1
  45. package/bin/keycloakify/generateTheme/generateTheme.js +123 -70
  46. package/bin/keycloakify/generateTheme/generateTheme.js.map +1 -1
  47. package/bin/keycloakify/keycloakify.js +13 -72
  48. package/bin/keycloakify/keycloakify.js.map +1 -1
  49. package/bin/keycloakify/replacers/replaceImportsInCssCode.js +2 -1
  50. package/bin/keycloakify/replacers/replaceImportsInCssCode.js.map +1 -1
  51. package/bin/keycloakify/replacers/replaceImportsInInlineCssCode.js +2 -1
  52. package/bin/keycloakify/replacers/replaceImportsInInlineCssCode.js.map +1 -1
  53. package/bin/keycloakify/replacers/replaceImportsInJsCode/index.d.ts +1 -0
  54. package/bin/keycloakify/replacers/replaceImportsInJsCode/index.js +18 -0
  55. package/bin/keycloakify/replacers/replaceImportsInJsCode/index.js.map +1 -0
  56. package/bin/keycloakify/replacers/replaceImportsInJsCode/replaceImportsInJsCode.d.ts +12 -0
  57. package/bin/keycloakify/replacers/replaceImportsInJsCode/replaceImportsInJsCode.js +70 -0
  58. package/bin/keycloakify/replacers/replaceImportsInJsCode/replaceImportsInJsCode.js.map +1 -0
  59. package/bin/keycloakify/replacers/replaceImportsInJsCode/vite.d.ts +13 -0
  60. package/bin/keycloakify/replacers/replaceImportsInJsCode/vite.js +95 -0
  61. package/bin/keycloakify/replacers/replaceImportsInJsCode/vite.js.map +1 -0
  62. package/bin/keycloakify/replacers/replaceImportsInJsCode/webpack.d.ts +12 -0
  63. package/bin/keycloakify/replacers/replaceImportsInJsCode/webpack.js +108 -0
  64. package/bin/keycloakify/replacers/replaceImportsInJsCode/webpack.js.map +1 -0
  65. package/bin/promptKeycloakVersion.js +0 -1
  66. package/bin/promptKeycloakVersion.js.map +1 -1
  67. package/bin/tools/OptionalIfCanBeUndefined.d.ts +14 -0
  68. package/bin/tools/OptionalIfCanBeUndefined.js +3 -0
  69. package/bin/tools/OptionalIfCanBeUndefined.js.map +1 -0
  70. package/bin/tools/SemVer.d.ts +26 -0
  71. package/bin/tools/{NpmModuleVersion.js → SemVer.js} +39 -23
  72. package/bin/tools/SemVer.js.map +1 -0
  73. package/bin/tools/String.prototype.replaceAll.d.ts +1 -0
  74. package/bin/tools/String.prototype.replaceAll.js +29 -0
  75. package/bin/tools/String.prototype.replaceAll.js.map +1 -0
  76. package/bin/tools/crawl.js +9 -9
  77. package/bin/tools/crawl.js.map +1 -1
  78. package/bin/tools/downloadAndUnzip.js +30 -19
  79. package/bin/tools/downloadAndUnzip.js.map +1 -1
  80. package/bin/tools/fs.rm.d.ts +8 -0
  81. package/bin/tools/fs.rm.js +151 -0
  82. package/bin/tools/fs.rm.js.map +1 -0
  83. package/bin/tools/fs.rmSync.d.ts +8 -0
  84. package/bin/tools/fs.rmSync.js +58 -0
  85. package/bin/tools/fs.rmSync.js.map +1 -0
  86. package/bin/tools/getAbsoluteAndInOsFormatPath.js +1 -0
  87. package/bin/tools/getAbsoluteAndInOsFormatPath.js.map +1 -1
  88. package/bin/tools/octokit-addons/getLatestsSemVersionedTag.d.ts +2 -3
  89. package/bin/tools/octokit-addons/getLatestsSemVersionedTag.js +6 -6
  90. package/bin/tools/octokit-addons/getLatestsSemVersionedTag.js.map +1 -1
  91. package/bin/tools/transformCodebase.d.ts +5 -1
  92. package/bin/tools/transformCodebase.js +31 -13
  93. package/bin/tools/transformCodebase.js.map +1 -1
  94. package/login/kcContext/getKcContextFromWindow.js +2 -2
  95. package/login/kcContext/getKcContextFromWindow.js.map +1 -1
  96. package/login/lib/useGetClassName.js +1 -1
  97. package/login/lib/useGetClassName.js.map +1 -1
  98. package/login/pages/LoginOtp.js +5 -43
  99. package/login/pages/LoginOtp.js.map +1 -1
  100. package/package.json +104 -53
  101. package/src/account/kcContext/getKcContextFromWindow.ts +2 -2
  102. package/src/bin/constants.ts +4 -1
  103. package/src/bin/copy-keycloak-resources-to-public.ts +2 -3
  104. package/src/bin/download-builtin-keycloak-theme.ts +96 -48
  105. package/src/bin/eject-keycloak-page.ts +1 -1
  106. package/src/bin/initialize-email-theme.ts +4 -3
  107. package/src/bin/keycloakify/buildOptions/buildOptions.ts +185 -0
  108. package/src/bin/keycloakify/buildOptions/getKeycloakifyBuildDirPath.ts +33 -0
  109. package/src/bin/keycloakify/buildOptions/index.ts +1 -0
  110. package/src/bin/keycloakify/{parsedPackageJson.ts → buildOptions/parsedPackageJson.ts} +4 -6
  111. package/src/bin/keycloakify/buildOptions/resolvedViteConfig.ts +85 -0
  112. package/src/bin/keycloakify/generateFtl/generateFtl.ts +12 -8
  113. package/src/bin/keycloakify/generatePom.ts +70 -0
  114. package/src/bin/keycloakify/generateStartKeycloakTestingContainer.ts +1 -1
  115. package/src/bin/keycloakify/generateTheme/bringInAccountV1.ts +83 -0
  116. package/src/bin/keycloakify/generateTheme/downloadKeycloakStaticResources.ts +11 -52
  117. package/src/bin/keycloakify/generateTheme/generateTheme.ts +141 -51
  118. package/src/bin/keycloakify/keycloakify.ts +11 -58
  119. package/src/bin/keycloakify/replacers/replaceImportsInCssCode.ts +3 -2
  120. package/src/bin/keycloakify/replacers/replaceImportsInInlineCssCode.ts +3 -2
  121. package/src/bin/keycloakify/replacers/replaceImportsInJsCode/index.ts +1 -0
  122. package/src/bin/keycloakify/replacers/replaceImportsInJsCode/replaceImportsInJsCode.ts +66 -0
  123. package/src/bin/keycloakify/replacers/replaceImportsInJsCode/vite.ts +85 -0
  124. package/src/bin/keycloakify/replacers/replaceImportsInJsCode/webpack.ts +90 -0
  125. package/src/bin/promptKeycloakVersion.ts +0 -1
  126. package/src/bin/tools/OptionalIfCanBeUndefined.ts +12 -0
  127. package/src/bin/tools/SemVer.ts +99 -0
  128. package/src/bin/tools/String.prototype.replaceAll.ts +30 -0
  129. package/src/bin/tools/crawl.ts +8 -8
  130. package/src/bin/tools/downloadAndUnzip.ts +11 -4
  131. package/src/bin/tools/fs.rm.ts +43 -0
  132. package/src/bin/tools/fs.rmSync.ts +34 -0
  133. package/src/bin/tools/getAbsoluteAndInOsFormatPath.ts +2 -0
  134. package/src/bin/tools/octokit-addons/getLatestsSemVersionedTag.ts +9 -9
  135. package/src/bin/tools/transformCodebase.ts +35 -14
  136. package/src/login/kcContext/getKcContextFromWindow.ts +2 -2
  137. package/src/login/lib/useGetClassName.ts +1 -1
  138. package/src/login/pages/LoginOtp.tsx +64 -94
  139. package/src/tsconfig.json +1 -1
  140. package/src/vite-plugin/config.json +232 -0
  141. package/src/vite-plugin/index.ts +1 -0
  142. package/src/vite-plugin/tsconfig.json +18 -0
  143. package/src/vite-plugin/vite-plugin.ts +128 -0
  144. package/vite-plugin/index.d.ts +1 -0
  145. package/vite-plugin/index.js +18 -0
  146. package/vite-plugin/index.js.map +1 -0
  147. package/vite-plugin/tsconfig.tsbuildinfo +1 -0
  148. package/vite-plugin/vite-plugin.d.ts +2 -0
  149. package/vite-plugin/vite-plugin.js +118 -0
  150. package/vite-plugin/vite-plugin.js.map +1 -0
  151. package/bin/getSrcDirPath.js.map +0 -1
  152. package/bin/keycloakify/BuildOptions.js +0 -113
  153. package/bin/keycloakify/BuildOptions.js.map +0 -1
  154. package/bin/keycloakify/ftlValuesGlobalName.d.ts +0 -1
  155. package/bin/keycloakify/ftlValuesGlobalName.js +0 -5
  156. package/bin/keycloakify/ftlValuesGlobalName.js.map +0 -1
  157. package/bin/keycloakify/generateJavaStackFiles/bringInAccountV1.js.map +0 -1
  158. package/bin/keycloakify/generateJavaStackFiles/generateJavaStackFiles.d.ts +0 -16
  159. package/bin/keycloakify/generateJavaStackFiles/generateJavaStackFiles.js +0 -205
  160. package/bin/keycloakify/generateJavaStackFiles/generateJavaStackFiles.js.map +0 -1
  161. package/bin/keycloakify/generateJavaStackFiles/index.d.ts +0 -1
  162. package/bin/keycloakify/generateJavaStackFiles/index.js.map +0 -1
  163. package/bin/keycloakify/generateTheme/readStaticResourcesUsage.d.ts +0 -15
  164. package/bin/keycloakify/generateTheme/readStaticResourcesUsage.js +0 -158
  165. package/bin/keycloakify/generateTheme/readStaticResourcesUsage.js.map +0 -1
  166. package/bin/keycloakify/parsedPackageJson.d.ts +0 -108
  167. package/bin/keycloakify/parsedPackageJson.js.map +0 -1
  168. package/bin/keycloakify/replacers/replaceImportsFromStaticInJsCode.d.ts +0 -5
  169. package/bin/keycloakify/replacers/replaceImportsFromStaticInJsCode.js +0 -74
  170. package/bin/keycloakify/replacers/replaceImportsFromStaticInJsCode.js.map +0 -1
  171. package/bin/tools/NpmModuleVersion.d.ts +0 -22
  172. package/bin/tools/NpmModuleVersion.js.map +0 -1
  173. package/src/bin/keycloakify/BuildOptions.ts +0 -157
  174. package/src/bin/keycloakify/ftlValuesGlobalName.ts +0 -1
  175. package/src/bin/keycloakify/generateJavaStackFiles/bringInAccountV1.ts +0 -101
  176. package/src/bin/keycloakify/generateJavaStackFiles/generateJavaStackFiles.ts +0 -141
  177. package/src/bin/keycloakify/generateJavaStackFiles/index.ts +0 -1
  178. package/src/bin/keycloakify/generateTheme/readStaticResourcesUsage.ts +0 -76
  179. package/src/bin/keycloakify/replacers/replaceImportsFromStaticInJsCode.ts +0 -51
  180. package/src/bin/tools/NpmModuleVersion.ts +0 -73
  181. /package/bin/{getSrcDirPath.d.ts → getThemeSrcDirPath.d.ts} +0 -0
  182. /package/src/bin/{getSrcDirPath.ts → getThemeSrcDirPath.ts} +0 -0
@@ -1,108 +0,0 @@
1
- import { z } from "zod";
2
- export type ParsedPackageJson = {
3
- name: string;
4
- version?: string;
5
- homepage?: string;
6
- keycloakify?: {
7
- extraThemeProperties?: string[];
8
- areAppAndKeycloakServerSharingSameDomain?: boolean;
9
- artifactId?: string;
10
- groupId?: string;
11
- doCreateJar?: boolean;
12
- loginThemeResourcesFromKeycloakVersion?: string;
13
- reactAppBuildDirPath?: string;
14
- keycloakifyBuildDirPath?: string;
15
- themeName?: string | string[];
16
- doBuildRetrocompatAccountTheme?: boolean;
17
- };
18
- };
19
- export declare const zParsedPackageJson: z.ZodObject<{
20
- name: z.ZodString;
21
- version: z.ZodOptional<z.ZodString>;
22
- homepage: z.ZodOptional<z.ZodString>;
23
- keycloakify: z.ZodOptional<z.ZodObject<{
24
- extraThemeProperties: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
25
- areAppAndKeycloakServerSharingSameDomain: z.ZodOptional<z.ZodBoolean>;
26
- artifactId: z.ZodOptional<z.ZodString>;
27
- groupId: z.ZodOptional<z.ZodString>;
28
- doCreateJar: z.ZodOptional<z.ZodBoolean>;
29
- loginThemeResourcesFromKeycloakVersion: z.ZodOptional<z.ZodString>;
30
- reactAppBuildDirPath: z.ZodOptional<z.ZodString>;
31
- keycloakifyBuildDirPath: z.ZodOptional<z.ZodString>;
32
- themeName: z.ZodOptional<z.ZodUnion<[z.ZodString, z.ZodArray<z.ZodString, "many">]>>;
33
- doBuildRetrocompatAccountTheme: z.ZodOptional<z.ZodBoolean>;
34
- }, "strip", z.ZodTypeAny, {
35
- extraThemeProperties?: string[] | undefined;
36
- areAppAndKeycloakServerSharingSameDomain?: boolean | undefined;
37
- artifactId?: string | undefined;
38
- groupId?: string | undefined;
39
- doCreateJar?: boolean | undefined;
40
- loginThemeResourcesFromKeycloakVersion?: string | undefined;
41
- reactAppBuildDirPath?: string | undefined;
42
- keycloakifyBuildDirPath?: string | undefined;
43
- themeName?: string | string[] | undefined;
44
- doBuildRetrocompatAccountTheme?: boolean | undefined;
45
- }, {
46
- extraThemeProperties?: string[] | undefined;
47
- areAppAndKeycloakServerSharingSameDomain?: boolean | undefined;
48
- artifactId?: string | undefined;
49
- groupId?: string | undefined;
50
- doCreateJar?: boolean | undefined;
51
- loginThemeResourcesFromKeycloakVersion?: string | undefined;
52
- reactAppBuildDirPath?: string | undefined;
53
- keycloakifyBuildDirPath?: string | undefined;
54
- themeName?: string | string[] | undefined;
55
- doBuildRetrocompatAccountTheme?: boolean | undefined;
56
- }>>;
57
- }, "strip", z.ZodTypeAny, {
58
- name: string;
59
- version?: string | undefined;
60
- homepage?: string | undefined;
61
- keycloakify?: {
62
- extraThemeProperties?: string[] | undefined;
63
- areAppAndKeycloakServerSharingSameDomain?: boolean | undefined;
64
- artifactId?: string | undefined;
65
- groupId?: string | undefined;
66
- doCreateJar?: boolean | undefined;
67
- loginThemeResourcesFromKeycloakVersion?: string | undefined;
68
- reactAppBuildDirPath?: string | undefined;
69
- keycloakifyBuildDirPath?: string | undefined;
70
- themeName?: string | string[] | undefined;
71
- doBuildRetrocompatAccountTheme?: boolean | undefined;
72
- } | undefined;
73
- }, {
74
- name: string;
75
- version?: string | undefined;
76
- homepage?: string | undefined;
77
- keycloakify?: {
78
- extraThemeProperties?: string[] | undefined;
79
- areAppAndKeycloakServerSharingSameDomain?: boolean | undefined;
80
- artifactId?: string | undefined;
81
- groupId?: string | undefined;
82
- doCreateJar?: boolean | undefined;
83
- loginThemeResourcesFromKeycloakVersion?: string | undefined;
84
- reactAppBuildDirPath?: string | undefined;
85
- keycloakifyBuildDirPath?: string | undefined;
86
- themeName?: string | string[] | undefined;
87
- doBuildRetrocompatAccountTheme?: boolean | undefined;
88
- } | undefined;
89
- }>;
90
- export declare function getParsedPackageJson(params: {
91
- reactAppRootDirPath: string;
92
- }): {
93
- name: string;
94
- version?: string | undefined;
95
- homepage?: string | undefined;
96
- keycloakify?: {
97
- extraThemeProperties?: string[] | undefined;
98
- areAppAndKeycloakServerSharingSameDomain?: boolean | undefined;
99
- artifactId?: string | undefined;
100
- groupId?: string | undefined;
101
- doCreateJar?: boolean | undefined;
102
- loginThemeResourcesFromKeycloakVersion?: string | undefined;
103
- reactAppBuildDirPath?: string | undefined;
104
- keycloakifyBuildDirPath?: string | undefined;
105
- themeName?: string | string[] | undefined;
106
- doBuildRetrocompatAccountTheme?: boolean | undefined;
107
- } | undefined;
108
- };
@@ -1 +0,0 @@
1
- {"version":3,"file":"parsedPackageJson.js","sourceRoot":"","sources":["../../src/bin/keycloakify/parsedPackageJson.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,qCAAyB;AACzB,+BAA+B;AAE/B,2BAAwB;AACxB,8CAA6C;AAoBhC,QAAA,kBAAkB,GAAG,OAAC,CAAC,MAAM,CAAC;IACvC,MAAM,EAAE,OAAC,CAAC,MAAM,EAAE;IAClB,SAAS,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAChC,UAAU,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACjC,aAAa,EAAE,OAAC;SACX,MAAM,CAAC;QACJ,sBAAsB,EAAE,OAAC,CAAC,KAAK,CAAC,OAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;QACtD,0CAA0C,EAAE,OAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;QAClE,YAAY,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QACnC,SAAS,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QAChC,aAAa,EAAE,OAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;QACrC,wCAAwC,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QAC/D,sBAAsB,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QAC7C,yBAAyB,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QAChD,WAAW,EAAE,OAAC,CAAC,KAAK,CAAC,CAAC,OAAC,CAAC,MAAM,EAAE,EAAE,OAAC,CAAC,KAAK,CAAC,OAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;QAClE,gCAAgC,EAAE,OAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;KAC3D,CAAC;SACD,QAAQ,EAAE;CAClB,CAAC,CAAC;AAEH,IAAA,cAAM,GAA+E,CAAC;AAEtF,IAAI,iBAA+E,CAAC;AACpF,SAAgB,oBAAoB,CAAC,MAAuC;IAChE,IAAA,mBAAmB,GAAK,MAAM,oBAAX,CAAY;IACvC,IAAI,iBAAiB,EAAE;QACnB,OAAO,iBAAiB,CAAC;KAC5B;IACD,iBAAiB,GAAG,0BAAkB,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,IAAA,mBAAQ,EAAC,mBAAmB,EAAE,cAAc,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IAC1I,OAAO,iBAAiB,CAAC;AAC7B,CAAC;AAPD,oDAOC"}
@@ -1,5 +0,0 @@
1
- export declare function replaceImportsFromStaticInJsCode(params: {
2
- jsCode: string;
3
- }): {
4
- fixedJsCode: string;
5
- };
@@ -1,74 +0,0 @@
1
- "use strict";
2
- var __read = (this && this.__read) || function (o, n) {
3
- var m = typeof Symbol === "function" && o[Symbol.iterator];
4
- if (!m) return o;
5
- var i = m.call(o), r, ar = [], e;
6
- try {
7
- while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
8
- }
9
- catch (error) { e = { error: error }; }
10
- finally {
11
- try {
12
- if (r && !r.done && (m = i["return"])) m.call(i);
13
- }
14
- finally { if (e) throw e.error; }
15
- }
16
- return ar;
17
- };
18
- var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
19
- if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
20
- if (ar || !(i in from)) {
21
- if (!ar) ar = Array.prototype.slice.call(from, 0, i);
22
- ar[i] = from[i];
23
- }
24
- }
25
- return to.concat(ar || Array.prototype.slice.call(from));
26
- };
27
- Object.defineProperty(exports, "__esModule", { value: true });
28
- exports.replaceImportsFromStaticInJsCode = void 0;
29
- var ftlValuesGlobalName_1 = require("../ftlValuesGlobalName");
30
- function replaceImportsFromStaticInJsCode(params) {
31
- /*
32
- NOTE:
33
-
34
- When we have urlOrigin defined it means that
35
- we are building with --external-assets
36
- so we have to make sur that the fixed js code will run
37
- inside and outside keycloak.
38
-
39
- When urlOrigin isn't defined we can assume the fixedJsCode
40
- will always run in keycloak context.
41
- */
42
- var _a;
43
- var jsCode = params.jsCode;
44
- var getReplaceArgs = function (language) { return [
45
- new RegExp("([a-zA-Z_]+)\\.([a-zA-Z]+)=(function\\(([a-z]+)\\){return|([a-z]+)=>)\"static\\/".concat(language, "\\/\""), "g"),
46
- function () {
47
- var _a = [];
48
- for (var _i = 0; _i < arguments.length; _i++) {
49
- _a[_i] = arguments[_i];
50
- }
51
- var _b = __read(_a, 5), n = _b[1], u = _b[2], matchedFunction = _b[3], eForFunction = _b[4];
52
- var isArrowFunction = matchedFunction.includes("=>");
53
- var e = isArrowFunction ? matchedFunction.replace("=>", "").trim() : eForFunction;
54
- return "\n ".concat(n, "[(function(){\n var pd = Object.getOwnPropertyDescriptor(").concat(n, ", \"p\");\n if( pd === undefined || pd.configurable ){\n Object.defineProperty(").concat(n, ", \"p\", {\n get: function() { return window.").concat(ftlValuesGlobalName_1.ftlValuesGlobalName, ".url.resourcesPath; },\n set: function() {}\n });\n }\n return \"").concat(u, "\";\n })()] = ").concat(isArrowFunction ? "".concat(e, " =>") : "function(".concat(e, ") { return "), " \"/build/static/").concat(language, "/\"")
55
- .replace(/\s+/g, " ")
56
- .trim();
57
- }
58
- ]; };
59
- var fixedJsCode = (_a = jsCode
60
- .replace.apply(jsCode, __spreadArray([], __read(getReplaceArgs("js")), false)))
61
- .replace.apply(_a, __spreadArray([], __read(getReplaceArgs("css")), false)).replace(/[a-zA-Z]+\.[a-zA-Z]+\+"static\//g, "window.".concat(ftlValuesGlobalName_1.ftlValuesGlobalName, ".url.resourcesPath + \"/build/static/"))
62
- //TODO: Write a test case for this
63
- .replace(/".chunk.css",([a-zA-Z])+=[a-zA-Z]+\.[a-zA-Z]+\+([a-zA-Z]+),/, function () {
64
- var _a = [];
65
- for (var _i = 0; _i < arguments.length; _i++) {
66
- _a[_i] = arguments[_i];
67
- }
68
- var _b = __read(_a, 3), group1 = _b[1], group2 = _b[2];
69
- return "\".chunk.css\",".concat(group1, " = window.").concat(ftlValuesGlobalName_1.ftlValuesGlobalName, ".url.resourcesPath + \"/build/\" + ").concat(group2, ",");
70
- });
71
- return { fixedJsCode: fixedJsCode };
72
- }
73
- exports.replaceImportsFromStaticInJsCode = replaceImportsFromStaticInJsCode;
74
- //# sourceMappingURL=replaceImportsFromStaticInJsCode.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"replaceImportsFromStaticInJsCode.js","sourceRoot":"","sources":["../../../src/bin/keycloakify/replacers/replaceImportsFromStaticInJsCode.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,8DAA6D;AAE7D,SAAgB,gCAAgC,CAAC,MAA0B;IACvE;;;;;;;;;;MAUD;;IAES,IAAA,MAAM,GAAK,MAAM,OAAX,CAAY;IAE1B,IAAM,cAAc,GAAG,UAAC,QAAsB,IAAkD,OAAA;QAC5F,IAAI,MAAM,CAAC,0FAAkF,QAAQ,UAAM,EAAE,GAAG,CAAC;QACjH;YAAC,YAA0C;iBAA1C,UAA0C,EAA1C,qBAA0C,EAA1C,IAA0C;gBAA1C,uBAA0C;;YAA1C,IAAA,KAAA,aAA0C,EAApC,CAAC,QAAA,EAAE,CAAC,QAAA,EAAE,eAAe,QAAA,EAAE,YAAY,QAAA,CAAC;YACvC,IAAM,eAAe,GAAG,eAAe,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;YACvD,IAAM,CAAC,GAAG,eAAe,CAAC,CAAC,CAAC,eAAe,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC;YAEpF,OAAO,wBACL,CAAC,qFAC4C,CAAC,8HAEhB,CAAC,iFACa,yCAAmB,sJAInD,CAAC,sCACL,eAAe,CAAC,CAAC,CAAC,UAAG,CAAC,QAAK,CAAC,CAAC,CAAC,mBAAY,CAAC,gBAAa,8BAAmB,QAAQ,QAAI;iBAC5F,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC;iBACpB,IAAI,EAAE,CAAC;QAChB,CAAC;KACJ,EApB+F,CAoB/F,CAAC;IAEF,IAAM,WAAW,GAAG,CAAA,KAAA,MAAM;SACrB,OAAO,OADQ,MAAM,2BACV,cAAc,CAAC,IAAI,CAAC,UAAC,CAAA;SAChC,OAAO,oCAAI,cAAc,CAAC,KAAK,CAAC,WAChC,OAAO,CAAC,kCAAkC,EAAE,iBAAU,yCAAmB,0CAAsC,CAAC;QACjH,kCAAkC;SACjC,OAAO,CACJ,6DAA6D,EAC7D;QAAC,YAAqB;aAArB,UAAqB,EAArB,qBAAqB,EAArB,IAAqB;YAArB,uBAAqB;;QAArB,IAAA,KAAA,aAAqB,EAAf,MAAM,QAAA,EAAE,MAAM,QAAA,CAAC;QAAK,OAAA,yBAAgB,MAAM,uBAAa,yCAAmB,gDAAoC,MAAM,MAAG;IAAnG,CAAmG,CACjI,CAAC;IAEN,OAAO,EAAE,WAAW,aAAA,EAAE,CAAC;AAC3B,CAAC;AAhDD,4EAgDC"}
@@ -1,22 +0,0 @@
1
- export type NpmModuleVersion = {
2
- major: number;
3
- minor: number;
4
- patch: number;
5
- betaPreRelease?: number;
6
- };
7
- export declare namespace NpmModuleVersion {
8
- function parse(versionStr: string): NpmModuleVersion;
9
- function stringify(v: NpmModuleVersion): string;
10
- /**
11
- *
12
- * v1 < v2 => -1
13
- * v1 === v2 => 0
14
- * v1 > v2 => 1
15
- *
16
- */
17
- function compare(v1: NpmModuleVersion, v2: NpmModuleVersion): -1 | 0 | 1;
18
- function bumpType(params: {
19
- versionBehindStr: string;
20
- versionAheadStr: string;
21
- }): "major" | "minor" | "patch" | "betaPreRelease" | "same";
22
- }
@@ -1 +0,0 @@
1
- {"version":3,"file":"NpmModuleVersion.js","sourceRoot":"","sources":["../../src/bin/tools/NpmModuleVersion.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAOA,IAAiB,gBAAgB,CAiEhC;AAjED,WAAiB,gBAAgB;IAC7B,SAAgB,KAAK,CAAC,UAAkB;QACpC,IAAM,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC,kDAAkD,CAAC,CAAC;QAEnF,IAAI,CAAC,KAAK,EAAE;YACR,MAAM,IAAI,KAAK,CAAC,UAAG,UAAU,gCAA6B,CAAC,CAAC;SAC/D;QAED,kBACI,OAAO,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAC3B,OAAO,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAC3B,OAAO,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IACxB,CAAC;YACA,IAAM,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;YACrB,OAAO,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,gBAAgB,EAAE,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;QACxE,CAAC,CAAC,EAAE,EACN;IACN,CAAC;IAhBe,sBAAK,QAgBpB,CAAA;IAED,SAAgB,SAAS,CAAC,CAAmB;QACzC,OAAO,UAAG,CAAC,CAAC,KAAK,cAAI,CAAC,CAAC,KAAK,cAAI,CAAC,CAAC,KAAK,SAAG,CAAC,CAAC,cAAc,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,gBAAS,CAAC,CAAC,cAAc,CAAE,CAAE,CAAC;IAClH,CAAC;IAFe,0BAAS,YAExB,CAAA;IAED;;;;;;OAMG;IACH,SAAgB,OAAO,CAAC,EAAoB,EAAE,EAAoB;;QAC9D,IAAM,IAAI,GAAG,UAAC,IAAY,IAAiB,OAAA,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAApC,CAAoC,CAAC;QAChF,IAAM,WAAW,GAAG,UAAC,CAAqB,IAAK,OAAA,CAAC,aAAD,CAAC,cAAD,CAAC,GAAI,QAAQ,EAAb,CAAa,CAAC;;YAE7D,KAAoB,IAAA,KAAA,SAAA,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,gBAAgB,CAAU,CAAA,gBAAA,4BAAE;gBAAvE,IAAM,KAAK,WAAA;gBACZ,IAAI,WAAW,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,WAAW,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE;oBACnD,OAAO,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,WAAW,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;iBAChE;aACJ;;;;;;;;;QAED,OAAO,CAAC,CAAC;IACb,CAAC;IAXe,wBAAO,UAWtB,CAAA;IAED;;;;MAIE;IAEF,SAAgB,QAAQ,CAAC,MAA6D;;QAClF,IAAM,YAAY,GAAG,KAAK,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC;QACnD,IAAM,aAAa,GAAG,KAAK,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC;QAErD,IAAI,OAAO,CAAC,aAAa,EAAE,YAAY,CAAC,KAAK,CAAC,EAAE;YAC5C,MAAM,IAAI,KAAK,CAAC,6BAAsB,aAAa,iBAAO,YAAY,CAAE,CAAC,CAAC;SAC7E;;YAED,KAAoB,IAAA,KAAA,SAAA,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,gBAAgB,CAAU,CAAA,gBAAA,4BAAE;gBAAvE,IAAM,KAAK,WAAA;gBACZ,IAAI,aAAa,CAAC,KAAK,CAAC,KAAK,YAAY,CAAC,KAAK,CAAC,EAAE;oBAC9C,OAAO,KAAK,CAAC;iBAChB;aACJ;;;;;;;;;QAED,OAAO,MAAM,CAAC;IAClB,CAAC;IAfe,yBAAQ,WAevB,CAAA;AACL,CAAC,EAjEgB,gBAAgB,GAAhB,wBAAgB,KAAhB,wBAAgB,QAiEhC"}
@@ -1,157 +0,0 @@
1
- import { parse as urlParse } from "url";
2
- import { getParsedPackageJson } from "./parsedPackageJson";
3
- import { join as pathJoin } from "path";
4
- import parseArgv from "minimist";
5
- import { getAbsoluteAndInOsFormatPath } from "../tools/getAbsoluteAndInOsFormatPath";
6
-
7
- /** Consolidated build option gathered form CLI arguments and config in package.json */
8
- export type BuildOptions = {
9
- isSilent: boolean;
10
- themeVersion: string;
11
- themeNames: string[];
12
- extraThemeProperties: string[] | undefined;
13
- groupId: string;
14
- artifactId: string;
15
- doCreateJar: boolean;
16
- loginThemeResourcesFromKeycloakVersion: string;
17
- reactAppRootDirPath: string;
18
- /** Directory of your built react project. Defaults to {cwd}/build */
19
- reactAppBuildDirPath: string;
20
- /** Directory that keycloakify outputs to. Defaults to {cwd}/build_keycloak */
21
- keycloakifyBuildDirPath: string;
22
- publicDirPath: string;
23
- cacheDirPath: string;
24
- /** If your app is hosted under a subpath, it's the case in CRA if you have "homepage": "https://example.com/my-app" in your package.json
25
- * In this case the urlPathname will be "/my-app/" */
26
- urlPathname: string | undefined;
27
- doBuildRetrocompatAccountTheme: boolean;
28
- };
29
-
30
- export function readBuildOptions(params: { reactAppRootDirPath: string; processArgv: string[] }): BuildOptions {
31
- const { reactAppRootDirPath, processArgv } = params;
32
-
33
- const { isSilentCliParamProvided } = (() => {
34
- const argv = parseArgv(processArgv);
35
-
36
- return {
37
- "isSilentCliParamProvided": typeof argv["silent"] === "boolean" ? argv["silent"] : false
38
- };
39
- })();
40
-
41
- const parsedPackageJson = getParsedPackageJson({ reactAppRootDirPath });
42
-
43
- const { name, keycloakify = {}, version, homepage } = parsedPackageJson;
44
-
45
- const { extraThemeProperties, groupId, artifactId, doCreateJar, loginThemeResourcesFromKeycloakVersion } = keycloakify ?? {};
46
-
47
- const themeNames = (() => {
48
- if (keycloakify.themeName === undefined) {
49
- return [
50
- name
51
- .replace(/^@(.*)/, "$1")
52
- .split("/")
53
- .join("-")
54
- ];
55
- }
56
-
57
- if (typeof keycloakify.themeName === "string") {
58
- return [keycloakify.themeName];
59
- }
60
-
61
- return keycloakify.themeName;
62
- })();
63
-
64
- return {
65
- reactAppRootDirPath,
66
- themeNames,
67
- "doCreateJar": doCreateJar ?? true,
68
- "artifactId": process.env.KEYCLOAKIFY_ARTIFACT_ID ?? artifactId ?? `${themeNames[0]}-keycloak-theme`,
69
- "groupId": (() => {
70
- const fallbackGroupId = `${themeNames[0]}.keycloak`;
71
-
72
- return (
73
- process.env.KEYCLOAKIFY_GROUP_ID ??
74
- groupId ??
75
- (!homepage
76
- ? fallbackGroupId
77
- : urlParse(homepage)
78
- .host?.replace(/:[0-9]+$/, "")
79
- ?.split(".")
80
- .reverse()
81
- .join(".") ?? fallbackGroupId) + ".keycloak"
82
- );
83
- })(),
84
- "themeVersion": process.env.KEYCLOAKIFY_THEME_VERSION ?? process.env.KEYCLOAKIFY_VERSION ?? version ?? "0.0.0",
85
- extraThemeProperties,
86
- "isSilent": isSilentCliParamProvided,
87
- "loginThemeResourcesFromKeycloakVersion": loginThemeResourcesFromKeycloakVersion ?? "11.0.3",
88
- "publicDirPath": (() => {
89
- let { PUBLIC_DIR_PATH } = process.env;
90
-
91
- if (PUBLIC_DIR_PATH !== undefined) {
92
- return getAbsoluteAndInOsFormatPath({
93
- "pathIsh": PUBLIC_DIR_PATH,
94
- "cwd": reactAppRootDirPath
95
- });
96
- }
97
-
98
- return pathJoin(reactAppRootDirPath, "public");
99
- })(),
100
- "reactAppBuildDirPath": (() => {
101
- const { reactAppBuildDirPath } = parsedPackageJson.keycloakify ?? {};
102
-
103
- if (reactAppBuildDirPath !== undefined) {
104
- return getAbsoluteAndInOsFormatPath({
105
- "pathIsh": reactAppBuildDirPath,
106
- "cwd": reactAppRootDirPath
107
- });
108
- }
109
-
110
- return pathJoin(reactAppRootDirPath, "build");
111
- })(),
112
- "keycloakifyBuildDirPath": (() => {
113
- const { keycloakifyBuildDirPath } = parsedPackageJson.keycloakify ?? {};
114
-
115
- if (keycloakifyBuildDirPath !== undefined) {
116
- return getAbsoluteAndInOsFormatPath({
117
- "pathIsh": keycloakifyBuildDirPath,
118
- "cwd": reactAppRootDirPath
119
- });
120
- }
121
-
122
- return pathJoin(reactAppRootDirPath, "build_keycloak");
123
- })(),
124
- "cacheDirPath": pathJoin(
125
- (() => {
126
- let { XDG_CACHE_HOME } = process.env;
127
-
128
- if (XDG_CACHE_HOME !== undefined) {
129
- return getAbsoluteAndInOsFormatPath({
130
- "pathIsh": XDG_CACHE_HOME,
131
- "cwd": reactAppRootDirPath
132
- });
133
- }
134
-
135
- return pathJoin(reactAppRootDirPath, "node_modules", ".cache");
136
- })(),
137
- "keycloakify"
138
- ),
139
- "urlPathname": (() => {
140
- const { homepage } = parsedPackageJson;
141
-
142
- let url: URL | undefined = undefined;
143
-
144
- if (homepage !== undefined) {
145
- url = new URL(homepage);
146
- }
147
-
148
- if (url === undefined) {
149
- return undefined;
150
- }
151
-
152
- const out = url.pathname.replace(/([^/])$/, "$1/");
153
- return out === "/" ? undefined : out;
154
- })(),
155
- "doBuildRetrocompatAccountTheme": parsedPackageJson.keycloakify?.doBuildRetrocompatAccountTheme ?? true
156
- };
157
- }
@@ -1 +0,0 @@
1
- export const ftlValuesGlobalName = "kcContext";
@@ -1,101 +0,0 @@
1
- import * as fs from "fs";
2
- import { join as pathJoin, dirname as pathDirname } from "path";
3
- import { assert } from "tsafe/assert";
4
- import { Reflect } from "tsafe/Reflect";
5
- import type { BuildOptions } from "../BuildOptions";
6
- import { resources_common, lastKeycloakVersionWithAccountV1, accountV1 } from "../../constants";
7
- import { downloadBuiltinKeycloakTheme } from "../../download-builtin-keycloak-theme";
8
- import { transformCodebase } from "../../tools/transformCodebase";
9
-
10
- export type BuildOptionsLike = {
11
- keycloakifyBuildDirPath: string;
12
- cacheDirPath: string;
13
- };
14
-
15
- {
16
- const buildOptions = Reflect<BuildOptions>();
17
-
18
- assert<typeof buildOptions extends BuildOptionsLike ? true : false>();
19
- }
20
-
21
- export async function bringInAccountV1(params: { buildOptions: BuildOptionsLike }) {
22
- const { buildOptions } = params;
23
-
24
- const builtinKeycloakThemeTmpDirPath = pathJoin(buildOptions.keycloakifyBuildDirPath, "..", "tmp_yxdE2_builtin_keycloak_theme");
25
-
26
- await downloadBuiltinKeycloakTheme({
27
- "destDirPath": builtinKeycloakThemeTmpDirPath,
28
- "keycloakVersion": lastKeycloakVersionWithAccountV1,
29
- buildOptions
30
- });
31
-
32
- const accountV1DirPath = pathJoin(buildOptions.keycloakifyBuildDirPath, "src", "main", "resources", "theme", accountV1, "account");
33
-
34
- transformCodebase({
35
- "srcDirPath": pathJoin(builtinKeycloakThemeTmpDirPath, "base", "account"),
36
- "destDirPath": accountV1DirPath
37
- });
38
-
39
- const commonResourceFilePaths = [
40
- "node_modules/patternfly/dist/css/patternfly.min.css",
41
- "node_modules/patternfly/dist/css/patternfly-additions.min.css",
42
- ...[
43
- "OpenSans-Light-webfont.woff2",
44
- "OpenSans-Regular-webfont.woff2",
45
- "OpenSans-Bold-webfont.woff2",
46
- "OpenSans-Semibold-webfont.woff2",
47
- "OpenSans-Bold-webfont.woff",
48
- "OpenSans-Light-webfont.woff",
49
- "OpenSans-Regular-webfont.woff",
50
- "OpenSans-Semibold-webfont.woff",
51
- "OpenSans-Regular-webfont.ttf",
52
- "OpenSans-Light-webfont.ttf",
53
- "OpenSans-Semibold-webfont.ttf",
54
- "OpenSans-Bold-webfont.ttf"
55
- ].map(path => `node_modules/patternfly/dist/fonts/${path}`)
56
- ];
57
-
58
- for (const relativeFilePath of commonResourceFilePaths.map(path => pathJoin(...path.split("/")))) {
59
- const destFilePath = pathJoin(accountV1DirPath, "resources", resources_common, relativeFilePath);
60
-
61
- fs.mkdirSync(pathDirname(destFilePath), { "recursive": true });
62
-
63
- fs.cpSync(pathJoin(builtinKeycloakThemeTmpDirPath, "keycloak", "common", "resources", relativeFilePath), destFilePath);
64
- }
65
-
66
- const resourceFilePaths = ["css/account.css", "img/icon-sidebar-active.png", "img/logo.png"];
67
-
68
- for (const relativeFilePath of resourceFilePaths.map(path => pathJoin(...path.split("/")))) {
69
- const destFilePath = pathJoin(accountV1DirPath, "resources", relativeFilePath);
70
-
71
- fs.mkdirSync(pathDirname(destFilePath), { "recursive": true });
72
-
73
- fs.cpSync(pathJoin(builtinKeycloakThemeTmpDirPath, "keycloak", "account", "resources", relativeFilePath), destFilePath);
74
- }
75
-
76
- fs.rmSync(builtinKeycloakThemeTmpDirPath, { "recursive": true });
77
-
78
- fs.writeFileSync(
79
- pathJoin(accountV1DirPath, "theme.properties"),
80
- Buffer.from(
81
- [
82
- "accountResourceProvider=account-v1",
83
- "",
84
- "locales=ar,ca,cs,da,de,en,es,fr,fi,hu,it,ja,lt,nl,no,pl,pt-BR,ru,sk,sv,tr,zh-CN",
85
- "",
86
- "styles=" + [...resourceFilePaths, ...commonResourceFilePaths.map(path => `resources-common/${path}`)].join(" "),
87
- "",
88
- "##### css classes for form buttons",
89
- "# main class used for all buttons",
90
- "kcButtonClass=btn",
91
- "# classes defining priority of the button - primary or default (there is typically only one priority button for the form)",
92
- "kcButtonPrimaryClass=btn-primary",
93
- "kcButtonDefaultClass=btn-default",
94
- "# classes defining size of the button",
95
- "kcButtonLargeClass=btn-lg",
96
- ""
97
- ].join("\n"),
98
- "utf8"
99
- )
100
- );
101
- }
@@ -1,141 +0,0 @@
1
- import * as fs from "fs";
2
- import { join as pathJoin, dirname as pathDirname } from "path";
3
- import { assert } from "tsafe/assert";
4
- import { Reflect } from "tsafe/Reflect";
5
- import type { BuildOptions } from "../BuildOptions";
6
- import { type ThemeType, retrocompatPostfix, accountV1 } from "../../constants";
7
- import { bringInAccountV1 } from "./bringInAccountV1";
8
-
9
- export type BuildOptionsLike = {
10
- groupId: string;
11
- artifactId: string;
12
- themeVersion: string;
13
- cacheDirPath: string;
14
- keycloakifyBuildDirPath: string;
15
- themeNames: string[];
16
- doBuildRetrocompatAccountTheme: boolean;
17
- };
18
-
19
- {
20
- const buildOptions = Reflect<BuildOptions>();
21
-
22
- assert<typeof buildOptions extends BuildOptionsLike ? true : false>();
23
- }
24
-
25
- export async function generateJavaStackFiles(params: {
26
- implementedThemeTypes: Record<ThemeType | "email", boolean>;
27
- buildOptions: BuildOptionsLike;
28
- }): Promise<{
29
- jarFilePath: string;
30
- }> {
31
- const { implementedThemeTypes, buildOptions } = params;
32
-
33
- {
34
- const { pomFileCode } = (function generatePomFileCode(): {
35
- pomFileCode: string;
36
- } {
37
- const pomFileCode = [
38
- `<?xml version="1.0"?>`,
39
- `<project xmlns="http://maven.apache.org/POM/4.0.0"`,
40
- ` xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"`,
41
- ` xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">`,
42
- ` <modelVersion>4.0.0</modelVersion>`,
43
- ` <groupId>${buildOptions.groupId}</groupId>`,
44
- ` <artifactId>${buildOptions.artifactId}</artifactId>`,
45
- ` <version>${buildOptions.themeVersion}</version>`,
46
- ` <name>${buildOptions.artifactId}</name>`,
47
- ` <description />`,
48
- ` <packaging>jar</packaging>`,
49
- ` <properties>`,
50
- ` <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>`,
51
- ` </properties>`,
52
- ` <build>`,
53
- ` <plugins>`,
54
- ` <plugin>`,
55
- ` <groupId>org.apache.maven.plugins</groupId>`,
56
- ` <artifactId>maven-shade-plugin</artifactId>`,
57
- ` <version>3.5.1</version>`,
58
- ` <executions>`,
59
- ` <execution>`,
60
- ` <phase>package</phase>`,
61
- ` <goals>`,
62
- ` <goal>shade</goal>`,
63
- ` </goals>`,
64
- ` </execution>`,
65
- ` </executions>`,
66
- ` </plugin>`,
67
- ` </plugins>`,
68
- ` </build>`,
69
- ` <dependencies>`,
70
- ` <dependency>`,
71
- ` <groupId>io.phasetwo.keycloak</groupId>`,
72
- ` <artifactId>keycloak-account-v1</artifactId>`,
73
- ` <version>0.1</version>`,
74
- ` </dependency>`,
75
- ` </dependencies>`,
76
- `</project>`
77
- ].join("\n");
78
-
79
- return { pomFileCode };
80
- })();
81
-
82
- fs.writeFileSync(pathJoin(buildOptions.keycloakifyBuildDirPath, "pom.xml"), Buffer.from(pomFileCode, "utf8"));
83
- }
84
-
85
- if (implementedThemeTypes.account) {
86
- await bringInAccountV1({ buildOptions });
87
- }
88
-
89
- {
90
- const themeManifestFilePath = pathJoin(buildOptions.keycloakifyBuildDirPath, "src", "main", "resources", "META-INF", "keycloak-themes.json");
91
-
92
- try {
93
- fs.mkdirSync(pathDirname(themeManifestFilePath));
94
- } catch {}
95
-
96
- fs.writeFileSync(
97
- themeManifestFilePath,
98
- Buffer.from(
99
- JSON.stringify(
100
- {
101
- "themes": [
102
- ...(!implementedThemeTypes.account
103
- ? []
104
- : [
105
- {
106
- "name": accountV1,
107
- "types": ["account"]
108
- }
109
- ]),
110
- ...buildOptions.themeNames
111
- .map(themeName => [
112
- {
113
- "name": themeName,
114
- "types": Object.entries(implementedThemeTypes)
115
- .filter(([, isImplemented]) => isImplemented)
116
- .map(([themeType]) => themeType)
117
- },
118
- ...(!implementedThemeTypes.account || !buildOptions.doBuildRetrocompatAccountTheme
119
- ? []
120
- : [
121
- {
122
- "name": `${themeName}${retrocompatPostfix}`,
123
- "types": ["account"]
124
- }
125
- ])
126
- ])
127
- .flat()
128
- ]
129
- },
130
- null,
131
- 2
132
- ),
133
- "utf8"
134
- )
135
- );
136
- }
137
-
138
- return {
139
- "jarFilePath": pathJoin(buildOptions.keycloakifyBuildDirPath, "target", `${buildOptions.artifactId}-${buildOptions.themeVersion}.jar`)
140
- };
141
- }
@@ -1 +0,0 @@
1
- export * from "./generateJavaStackFiles";