keycloakify 7.2.4 → 7.3.1

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 (42) hide show
  1. package/bin/download-builtin-keycloak-theme.js +9 -8
  2. package/bin/download-builtin-keycloak-theme.js.map +1 -1
  3. package/bin/keycloakify/generateFtl/ftl_object_to_js_code_declaring_an_object.ftl +2 -1
  4. package/bin/keycloakify/generateFtl/generateFtl.d.ts +1 -1
  5. package/bin/keycloakify/generateFtl/generateFtl.js +2 -1
  6. package/bin/keycloakify/generateFtl/generateFtl.js.map +1 -1
  7. package/bin/tools/downloadAndUnzip.d.ts +1 -3
  8. package/bin/tools/downloadAndUnzip.js +85 -371
  9. package/bin/tools/downloadAndUnzip.js.map +1 -1
  10. package/bin/tools/jar.js +8 -4
  11. package/bin/tools/jar.js.map +1 -1
  12. package/bin/tools/partitionPromiseSettledResults.d.ts +2 -0
  13. package/bin/tools/partitionPromiseSettledResults.js +41 -0
  14. package/bin/tools/partitionPromiseSettledResults.js.map +1 -0
  15. package/bin/tools/trimIndent.d.ts +9 -0
  16. package/bin/tools/trimIndent.js +98 -0
  17. package/bin/tools/trimIndent.js.map +1 -0
  18. package/bin/tools/unzip.d.ts +30 -0
  19. package/bin/tools/unzip.js +345 -0
  20. package/bin/tools/unzip.js.map +1 -0
  21. package/login/Fallback.js +3 -0
  22. package/login/Fallback.js.map +1 -1
  23. package/login/kcContext/KcContext.d.ts +7 -1
  24. package/login/kcContext/KcContext.js.map +1 -1
  25. package/login/kcContext/kcContextMocks.js +3 -0
  26. package/login/kcContext/kcContextMocks.js.map +1 -1
  27. package/login/pages/UpdateEmail.d.ts +7 -0
  28. package/login/pages/UpdateEmail.js +15 -0
  29. package/login/pages/UpdateEmail.js.map +1 -0
  30. package/package.json +17 -1
  31. package/src/bin/download-builtin-keycloak-theme.ts +17 -17
  32. package/src/bin/keycloakify/generateFtl/ftl_object_to_js_code_declaring_an_object.ftl +2 -1
  33. package/src/bin/keycloakify/generateFtl/generateFtl.ts +2 -1
  34. package/src/bin/tools/downloadAndUnzip.ts +52 -236
  35. package/src/bin/tools/jar.ts +15 -23
  36. package/src/bin/tools/partitionPromiseSettledResults.ts +11 -0
  37. package/src/bin/tools/trimIndent.ts +51 -0
  38. package/src/bin/tools/unzip.ts +184 -0
  39. package/src/login/Fallback.tsx +3 -0
  40. package/src/login/kcContext/KcContext.ts +9 -1
  41. package/src/login/kcContext/kcContextMocks.ts +7 -0
  42. package/src/login/pages/UpdateEmail.tsx +88 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"unzip.js","sourceRoot":"","sources":["../../src/bin/tools/unzip.ts"],"names":[],"mappings":"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"}
package/login/Fallback.js CHANGED
@@ -33,6 +33,7 @@ const LoginConfigTotp = lazy(() => import("../login/pages/LoginConfigTotp"));
33
33
  const LogoutConfirm = lazy(() => import("../login/pages/LogoutConfirm"));
34
34
  const UpdateUserProfile = lazy(() => import("../login/pages/UpdateUserProfile"));
35
35
  const IdpReviewUserProfile = lazy(() => import("../login/pages/IdpReviewUserProfile"));
36
+ const UpdateEmail = lazy(() => import("../login/pages/UpdateEmail"));
36
37
  export default function Fallback(props) {
37
38
  const { kcContext } = props, rest = __rest(props, ["kcContext"]);
38
39
  return (_jsx(Suspense, { children: (() => {
@@ -79,6 +80,8 @@ export default function Fallback(props) {
79
80
  return _jsx(UpdateUserProfile, Object.assign({ kcContext: kcContext }, rest));
80
81
  case "idp-review-user-profile.ftl":
81
82
  return _jsx(IdpReviewUserProfile, Object.assign({ kcContext: kcContext }, rest));
83
+ case "update-email.ftl":
84
+ return _jsx(UpdateEmail, Object.assign({ kcContext: kcContext }, rest));
82
85
  }
83
86
  assert(false);
84
87
  })() }));
@@ -1 +1 @@
1
- {"version":3,"file":"Fallback.js","sourceRoot":"","sources":["../src/login/Fallback.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Fallback.js","sourceRoot":"","sources":["../src/login/Fallback.tsx"],"names":[],"mappings":"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"}
@@ -4,7 +4,7 @@ type ExtractAfterStartingWith<Prefix extends string, StrEnum> = StrEnum extends
4
4
  * Some values might be undefined on some pages.
5
5
  * (ex: url.loginAction is undefined on error.ftl)
6
6
  */
7
- export type KcContext = KcContext.Login | KcContext.Register | KcContext.RegisterUserProfile | KcContext.Info | KcContext.Error | KcContext.LoginResetPassword | KcContext.LoginVerifyEmail | KcContext.Terms | KcContext.LoginOtp | KcContext.LoginUsername | KcContext.WebauthnAuthenticate | KcContext.LoginPassword | KcContext.LoginUpdatePassword | KcContext.LoginUpdateProfile | KcContext.LoginIdpLinkConfirm | KcContext.LoginIdpLinkEmail | KcContext.LoginPageExpired | KcContext.LoginConfigTotp | KcContext.LogoutConfirm | KcContext.UpdateUserProfile | KcContext.IdpReviewUserProfile;
7
+ export type KcContext = KcContext.Login | KcContext.Register | KcContext.RegisterUserProfile | KcContext.Info | KcContext.Error | KcContext.LoginResetPassword | KcContext.LoginVerifyEmail | KcContext.Terms | KcContext.LoginOtp | KcContext.LoginUsername | KcContext.WebauthnAuthenticate | KcContext.LoginPassword | KcContext.LoginUpdatePassword | KcContext.LoginUpdateProfile | KcContext.LoginIdpLinkConfirm | KcContext.LoginIdpLinkEmail | KcContext.LoginPageExpired | KcContext.LoginConfigTotp | KcContext.LogoutConfirm | KcContext.UpdateUserProfile | KcContext.IdpReviewUserProfile | KcContext.UpdateEmail;
8
8
  export declare namespace KcContext {
9
9
  type Common = {
10
10
  url: {
@@ -332,6 +332,12 @@ export declare namespace KcContext {
332
332
  attributesByName: Record<string, Attribute>;
333
333
  };
334
334
  };
335
+ type UpdateEmail = Common & {
336
+ pageId: "update-email.ftl";
337
+ email: {
338
+ value?: string;
339
+ };
340
+ };
335
341
  }
336
342
  export type Attribute = {
337
343
  name: string;
@@ -1 +1 @@
1
- {"version":3,"file":"KcContext.js","sourceRoot":"","sources":["../../src/login/kcContext/KcContext.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAqftC,MAAM,EAAiD,CAAC"}
1
+ {"version":3,"file":"KcContext.js","sourceRoot":"","sources":["../../src/login/kcContext/KcContext.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AA6ftC,MAAM,EAAiD,CAAC"}
@@ -330,6 +330,9 @@ export const kcContextMocks = [
330
330
  context: "IDP_REVIEW",
331
331
  attributes,
332
332
  attributesByName
333
+ } })),
334
+ id(Object.assign(Object.assign({}, kcContextCommonMock), { "pageId": "update-email.ftl", "email": {
335
+ value: "email@example.com"
333
336
  } }))
334
337
  ];
335
338
  //# sourceMappingURL=kcContextMocks.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"kcContextMocks.js","sourceRoot":"","sources":["../../src/login/kcContext/kcContextMocks.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"kcContextMocks.js","sourceRoot":"","sources":["../../src/login/kcContext/kcContextMocks.ts"],"names":[],"mappings":";AAAA,OAAO,sCAAsC,CAAC;AAE9C,OAAO,EAAE,8BAA8B,EAAE,wBAAwB,EAAE,MAAM,0CAA0C,CAAC;AACpH,OAAO,EAAE,QAAQ,EAAE,MAAM,gCAAgC,CAAC;AAC1D,OAAO,EAAE,EAAE,EAAE,MAAM,UAAU,CAAC;AAE9B,MAAM,UAAU,GAAG,MAAA,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,mCAAI,GAAG,CAAC;AAEpD,MAAM,UAAU,GAAgB;IAC5B;QACI,YAAY,EAAE;YACV,gCAAgC,EAAE;gBAC9B,oBAAoB,EAAE,IAAI;aAC7B;YACD,uBAAuB,EAAE,EAAE;YAC3B,QAAQ,EAAE;gBACN,oBAAoB,EAAE,IAAI;gBAC1B,KAAK,EAAE,GAAG;gBACV,KAAK,EAAE,KAAK;aACf;YACD,uBAAuB,EAAE,EAAE;YAC3B,sBAAsB,EAAE,EAAE;SAC7B;QACD,aAAa,EAAE,aAAa;QAC5B,aAAa,EAAE,EAAE;QACjB,UAAU,EAAE,IAAI;QAChB,kBAAkB,EAAE,EAAE;QACtB,cAAc,EAAE,UAAU;QAC1B,UAAU,EAAE,KAAK;QACjB,MAAM,EAAE,UAAU;QAClB,OAAO,EAAE,MAAM;KAClB;IACD;QACI,YAAY,EAAE;YACV,6BAA6B,EAAE,EAAE;YACjC,QAAQ,EAAE;gBACN,KAAK,EAAE,KAAK;gBACZ,oBAAoB,EAAE,IAAI;aAC7B;YACD,0BAA0B,EAAE;gBACxB,eAAe,EAAE,qBAAqB;gBACtC,cAAc,EAAE,KAAK;aACxB;YACD,oBAAoB,EAAE,EAAE;YACxB,OAAO,EAAE;gBACL,oBAAoB,EAAE,IAAI;aAC7B;YACD,SAAS,EAAE;gBACP,oBAAoB,EAAE,IAAI;gBAC1B,SAAS,EAAE,cAAc;aAC5B;SACJ;QACD,aAAa,EAAE,UAAU;QACzB,aAAa,EAAE,EAAE;QACjB,UAAU,EAAE,IAAI;QAChB,kBAAkB,EAAE,EAAE;QACtB,cAAc,EAAE,OAAO;QACvB,UAAU,EAAE,KAAK;QACjB,MAAM,EAAE,OAAO;KAClB;IACD;QACI,YAAY,EAAE;YACV,QAAQ,EAAE;gBACN,KAAK,EAAE,KAAK;gBACZ,oBAAoB,EAAE,IAAI;aAC7B;YACD,mCAAmC,EAAE;gBACjC,oBAAoB,EAAE,IAAI;aAC7B;YACD,wBAAwB,EAAE,EAAE;YAC5B,yCAAyC,EAAE,EAAE;SAChD;QACD,aAAa,EAAE,cAAc;QAC7B,aAAa,EAAE,EAAE;QACjB,UAAU,EAAE,IAAI;QAChB,kBAAkB,EAAE,EAAE;QACtB,UAAU,EAAE,KAAK;QACjB,MAAM,EAAE,WAAW;KACtB;IACD;QACI,YAAY,EAAE;YACV,QAAQ,EAAE;gBACN,KAAK,EAAE,KAAK;gBACZ,oBAAoB,EAAE,IAAI;aAC7B;YACD,mCAAmC,EAAE;gBACjC,oBAAoB,EAAE,IAAI;aAC7B;YACD,wBAAwB,EAAE,EAAE;YAC5B,yCAAyC,EAAE,EAAE;SAChD;QACD,aAAa,EAAE,aAAa;QAC5B,aAAa,EAAE,EAAE;QACjB,UAAU,EAAE,IAAI;QAChB,kBAAkB,EAAE,EAAE;QACtB,UAAU,EAAE,KAAK;QACjB,MAAM,EAAE,UAAU;KACrB;CACJ,CAAC;AAEF,MAAM,gBAAgB,GAAG,MAAM,CAAC,WAAW,CAAC,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,CAAQ,CAAC;AAE7G,MAAM,CAAC,MAAM,mBAAmB,GAAqB;IACjD,KAAK,EAAE;QACH,aAAa,EAAE,GAAG;QAClB,eAAe,EAAE,QAAQ,CAAC,UAAU,EAAE,wBAAwB,CAAC;QAC/D,qBAAqB,EAAE,QAAQ,CAAC,UAAU,EAAE,8BAA8B,CAAC;QAC3E,qBAAqB,EAAE,iFAAiF;QACxG,UAAU,EAAE,sFAAsF;KACrG;IACD,OAAO,EAAE;QACL,MAAM,EAAE,SAAS;QACjB,aAAa,EAAE,SAAS;QACxB,iBAAiB,EAAE,SAAS;QAC5B,6BAA6B,EAAE,IAAI;QACnC,6BAA6B,EAAE,KAAK;KACvC;IACD,kBAAkB,EAAE;QAChB,eAAe,EAAE,GAAG,EAAE;YAClB,OAAO,SAAS,CAAC;QACrB,CAAC;QACD,aAAa,EAAE,GAAG,EAAE,CAAC,KAAK;QAC1B,KAAK,EAAE,GAAG,CAAC,EAAE,CAAC,kBAAkB,GAAG,EAAE;QACrC,QAAQ,EAAE,GAAG,EAAE,CAAC,KAAK;KACxB;IACD,QAAQ,EAAE;QACN,WAAW,EAAE;YACT,4BAA4B;YAC5B;gBACI,KAAK,EAAE,kJAAkJ;gBACzJ,OAAO,EAAE,SAAS;gBAClB,aAAa,EAAE,IAAI;aACtB;YACD;gBACI,KAAK,EAAE,kJAAkJ;gBACzJ,OAAO,EAAE,OAAO;gBAChB,aAAa,EAAE,IAAI;aACtB;YACD;gBACI,KAAK,EAAE,kJAAkJ;gBACzJ,OAAO,EAAE,SAAS;gBAClB,aAAa,EAAE,IAAI;aACtB;YACD;gBACI,KAAK,EAAE,kJAAkJ;gBACzJ,OAAO,EAAE,SAAS;gBAClB,aAAa,EAAE,IAAI;aACtB;YACD;gBACI,KAAK,EAAE,qJAAqJ;gBAC5J,OAAO,EAAE,oBAAoB;gBAC7B,aAAa,EAAE,OAAO;aACzB;YACD;gBACI,KAAK,EAAE,kJAAkJ;gBACzJ,OAAO,EAAE,UAAU;gBACnB,aAAa,EAAE,IAAI;aACtB;YACD;gBACI,KAAK,EAAE,kJAAkJ;gBACzJ,OAAO,EAAE,SAAS;gBAClB,aAAa,EAAE,IAAI;aACtB;YACD;gBACI,KAAK,EAAE,kJAAkJ;gBACzJ,OAAO,EAAE,UAAU;gBACnB,aAAa,EAAE,IAAI;aACtB;YACD;gBACI,KAAK,EAAE,kJAAkJ;gBACzJ,OAAO,EAAE,UAAU;gBACnB,aAAa,EAAE,IAAI;aACtB;YACD;gBACI,KAAK,EAAE,qJAAqJ;gBAC5J,OAAO,EAAE,MAAM;gBACf,aAAa,EAAE,OAAO;aACzB;YACD;gBACI,KAAK,EAAE,kJAAkJ;gBACzJ,OAAO,EAAE,SAAS;gBAClB,aAAa,EAAE,IAAI;aACtB;YACD;gBACI,KAAK,EAAE,kJAAkJ;gBACzJ,OAAO,EAAE,SAAS;gBAClB,aAAa,EAAE,IAAI;aACtB;YACD;gBACI,KAAK,EAAE,kJAAkJ;gBACzJ,OAAO,EAAE,KAAK;gBACd,aAAa,EAAE,IAAI;aACtB;YACD;gBACI,KAAK,EAAE,kJAAkJ;gBACzJ,OAAO,EAAE,YAAY;gBACrB,aAAa,EAAE,IAAI;aACtB;YACD;gBACI,KAAK,EAAE,kJAAkJ;gBACzJ,OAAO,EAAE,QAAQ;gBACjB,aAAa,EAAE,IAAI;aACtB;YACD;gBACI,KAAK,EAAE,kJAAkJ;gBACzJ,OAAO,EAAE,QAAQ;gBACjB,aAAa,EAAE,IAAI;aACtB;YACD;gBACI,KAAK,EAAE,kJAAkJ;gBACzJ,OAAO,EAAE,YAAY;gBACrB,aAAa,EAAE,IAAI;aACtB;YACD;gBACI,KAAK,EAAE,kJAAkJ;gBACzJ,OAAO,EAAE,QAAQ;gBACjB,aAAa,EAAE,IAAI;aACtB;YACD,2BAA2B;SAC9B;QACD,oBAAoB,EAAE,IAAI;KAC7B;IACD,MAAM,EAAE;QACJ,cAAc,EAAE,KAAK;QACrB,sBAAsB,EAAE,KAAK;QAC7B,uBAAuB,EAAE,KAAK;KACjC;IACD,QAAQ,EAAE;QACN,UAAU,EAAE,OAAO;KACtB;IACD,SAAS,EAAE,EAAE;IACb,SAAS,EAAE;QACP,MAAM,EAAE,SAAS;QACjB,SAAS,EAAE,wBAAwB;KACtC;IACD,sBAAsB,EAAE,KAAK;CAChC,CAAC;AAEF,MAAM,QAAQ,mCACP,mBAAmB,CAAC,GAAG,KAC1B,0BAA0B,EAAE,2FAA2F,EACvH,iBAAiB,EAAE,sFAAsF,GAC5G,CAAC;AAEF,MAAM,CAAC,MAAM,cAAc,GAAgB;IACvC,EAAE,iCACK,mBAAmB,KACtB,QAAQ,EAAE,WAAW,EACrB,KAAK,EAAE,QAAQ,EACf,OAAO,kCACA,mBAAmB,CAAC,KAAK,KAC5B,uBAAuB,EAAE,IAAI,EAC7B,YAAY,EAAE,IAAI,EAClB,UAAU,EAAE,IAAI,EAChB,sBAAsB,EAAE,IAAI,EAC5B,qBAAqB,EAAE,IAAI,KAE/B,MAAM,EAAE,mBAAmB,CAAC,IAAK,EACjC,QAAQ,EAAE;YACN,aAAa,EAAE,IAAI;SACtB,EACD,sBAAsB,EAAE,KAAK,EAC7B,OAAO,EAAE,EAAE,EACX,sBAAsB,EAAE,KAAK,IAC/B;IACF,GAAG,CAAC,GAAG,EAAE;QACL,MAAM,cAAc,mCACb,mBAAmB,KACtB,KAAK,kCACE,QAAQ,KACX,oBAAoB,EAChB,mNAAmN,KAE3N,SAAS,EAAE,EAAE,EACb,sBAAsB,EAAE,KAAK,EAC7B,kBAAkB,EAAE,IAAI,EACxB,mBAAmB,EAAE,KAAK,EAC1B,QAAQ,EAAE;gBACN,aAAa,EAAE,IAAI;aACtB,GACJ,CAAC;QAEF,OAAO;YACH,EAAE,+BACE,QAAQ,EAAE,cAAc,IACrB,cAAc,KACjB,UAAU,EAAE;oBACR,UAAU,EAAE,EAAE;iBACjB,IACH;YACF,EAAE,+BACE,QAAQ,EAAE,2BAA2B,IAClC,cAAc,KACjB,SAAS,EAAE;oBACP,SAAS,EAAE,sBAA+B;oBAC1C,UAAU;oBACV,gBAAgB;iBACnB,IACH;SACL,CAAC;IACN,CAAC,CAAC,EAAE;IACJ,EAAE,iCACK,mBAAmB,KACtB,QAAQ,EAAE,UAAU,EACpB,eAAe,EAAE,kBAAkB,EACnC,iBAAiB,EAAE,SAAS,EAC5B,UAAU,EAAE,KAAK,EACjB,WAAW,EAAE,GAAG,EAChB,QAAQ,EAAE;YACN,UAAU,EAAE,OAAO;YACnB,SAAS,EAAE,GAAG;SACjB,IACH;IACF,EAAE,iCACK,mBAAmB,KACtB,QAAQ,EAAE,WAAW,EACrB,QAAQ,EAAE;YACN,UAAU,EAAE,OAAO;YACnB,SAAS,EAAE,GAAG;SACjB,EACD,SAAS,EAAE;YACP,MAAM,EAAE,OAAO;YACf,SAAS,EAAE,2BAA2B;SACzC,IACH;IACF,EAAE,iCACK,mBAAmB,KACtB,QAAQ,EAAE,0BAA0B,EACpC,OAAO,kCACA,mBAAmB,CAAC,KAAK,KAC5B,uBAAuB,EAAE,KAAK,KAElC,GAAG,EAAE,QAAQ,IACf;IACF,EAAE,iCACK,mBAAmB,KACtB,QAAQ,EAAE,wBAAwB,EAClC,MAAM,EAAE;YACJ,OAAO,EAAE,oBAAoB;SAChC,IACH;IACF,EAAE,iCACK,mBAAmB,KACtB,QAAQ,EAAE,WAAW,IACvB;IACF,EAAE,iCACK,mBAAmB,KACtB,QAAQ,EAAE,eAAe,EACzB,UAAU,EAAE;YACR,oBAAoB,EAAE;gBAClB;oBACI,IAAI,EAAE,KAAK;oBACX,WAAW,EAAE,QAAQ;iBACxB;gBACD;oBACI,IAAI,EAAE,KAAK;oBACX,WAAW,EAAE,QAAQ;iBACxB;aACJ;SACJ,IACH;IACF,EAAE,iCACK,mBAAmB,KACtB,QAAQ,EAAE,oBAAoB,EAC9B,KAAK,EAAE,QAAQ,EACf,OAAO,kCACA,mBAAmB,CAAC,KAAK,KAC5B,uBAAuB,EAAE,IAAI,EAC7B,YAAY,EAAE,IAAI,EAClB,UAAU,EAAE,IAAI,EAChB,sBAAsB,EAAE,IAAI,EAC5B,qBAAqB,EAAE,IAAI,KAE/B,QAAQ,EAAE;YACN,aAAa,EAAE,IAAI;SACtB,EACD,gBAAgB,EAAE,KAAK,EACvB,OAAO,EAAE,EAAE,EACX,sBAAsB,EAAE,KAAK,IAC/B;IACF,EAAE,iCACK,mBAAmB,KACtB,QAAQ,EAAE,oBAAoB,EAC9B,KAAK,EAAE,QAAQ,EACf,OAAO,kCACA,mBAAmB,CAAC,KAAK,KAC5B,sBAAsB,EAAE,IAAI,KAEhC,QAAQ,EAAE;YACN,aAAa,EAAE,KAAK;SACvB,EACD,OAAO,EAAE,EAAE,IACb;IACF,EAAE,iCACK,mBAAmB,KACtB,QAAQ,EAAE,2BAA2B,EACrC,KAAK,EAAE,QAAQ,EACf,gBAAgB,EAAE;YACd,gBAAgB,EAAE,EAAE;SACvB,EACD,OAAO,oBACA,mBAAmB,CAAC,KAAK,GAEhC,WAAW,EAAE,EAAE,EACf,kBAAkB,EAAE,eAAe,EACnC,MAAM,EAAE,EAAE,EACV,eAAe,EAAE,GAAG,EACpB,kBAAkB,EAAE,OAAO,EAC3B,6BAA6B,EAAE,KAAK,EACpC,QAAQ,EAAE;YACN,aAAa,EAAE,KAAK;SACvB,EACD,OAAO,EAAE,EAAE,IACb;IACF,EAAE,iCACK,mBAAmB,KACtB,QAAQ,EAAE,2BAA2B,EACrC,UAAU,EAAE,YAAY,IAC1B;IACF,EAAE,iCACK,mBAAmB,KACtB,QAAQ,EAAE,0BAA0B,EACpC,MAAM,EAAE;YACJ,qBAAqB,EAAE,IAAI;YAC3B,UAAU,EAAE,YAAY;YACxB,OAAO,EAAE,iBAAiB;YAC1B,WAAW,EAAE,YAAY;YACzB,UAAU,EAAE,WAAW;SAC1B,IACH;IACF,EAAE,iCACK,mBAAmB,KACtB,QAAQ,EAAE,4BAA4B,EACtC,UAAU,EAAE,eAAe,IAC7B;IACF,EAAE,iCACK,mBAAmB,KACtB,QAAQ,EAAE,0BAA0B,EACpC,UAAU,EAAE,eAAe,EAC3B,eAAe,EAAE;YACb,UAAU,EAAE,YAAY;SAC3B,IACH;IACF,EAAE,iCACK,mBAAmB,KACtB,QAAQ,EAAE,uBAAuB,EACjC,IAAI,EAAE;YACF,iBAAiB,EAAE,yCAAyC;YAC5D,KAAK,EAAE,GAAG;YACV,gBAAgB,EACZ,8zBAA8zB;YACl0B,SAAS,EAAE,GAAG;YACd,UAAU,EAAE,sBAAsB;YAClC,cAAc,EAAE,EAAE;YAClB,MAAM,EAAE;gBACJ,qBAAqB,EAAE,CAAC,SAAS,EAAE,sBAAsB,CAAC;gBAC1D,SAAS,EAAE,UAAU;gBACrB,MAAM,EAAE,CAAC;gBACT,eAAe,EAAE,CAAC;gBAClB,IAAI,EAAE,MAAM;gBACZ,MAAM,EAAE,EAAE;aACb;SACJ,IACH;IACF,EAAE,iCACK,mBAAmB,KACtB,QAAQ,EAAE,oBAAoB,EAC9B,KAAK,kCACE,mBAAmB,CAAC,GAAG,KAC1B,qBAAqB,EAAE,YAAY,KAEvC,QAAQ,EAAE;YACN,UAAU,EAAE,OAAO;YACnB,SAAS,EAAE,GAAG;SACjB,EACD,eAAe,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,IACrD;IACF,EAAE,iCACK,mBAAmB,KACtB,QAAQ,EAAE,yBAAyB,EACnC,SAAS,EAAE;YACP,UAAU;YACV,gBAAgB;SACnB,IACH;IACF,EAAE,iCACK,mBAAmB,KACtB,QAAQ,EAAE,6BAA6B,EACvC,SAAS,EAAE;YACP,OAAO,EAAE,YAAY;YACrB,UAAU;YACV,gBAAgB;SACnB,IACH;IACF,EAAE,iCACK,mBAAmB,KACtB,QAAQ,EAAE,kBAAkB,EAC5B,OAAO,EAAE;YACL,KAAK,EAAE,mBAAmB;SAC7B,IACH;CACL,CAAC"}
@@ -0,0 +1,7 @@
1
+ /// <reference types="react" />
2
+ import type { PageProps } from "../../login/pages/PageProps";
3
+ import type { KcContext } from "../kcContext";
4
+ import type { I18n } from "../i18n";
5
+ export default function UpdateEmail(props: PageProps<Extract<KcContext, {
6
+ pageId: "update-email.ftl";
7
+ }>, I18n>): JSX.Element;
@@ -0,0 +1,15 @@
1
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
+ import { clsx } from "../../tools/clsx";
3
+ import { useGetClassName } from "../../login/lib/useGetClassName";
4
+ export default function UpdateEmail(props) {
5
+ var _a;
6
+ const { kcContext, i18n, doUseDefaultCss, Template, classes } = props;
7
+ const { getClassName } = useGetClassName({
8
+ doUseDefaultCss,
9
+ classes
10
+ });
11
+ const { msg, msgStr } = i18n;
12
+ const { url, messagesPerField, isAppInitiatedAction, email } = kcContext;
13
+ return (_jsx(Template, Object.assign({}, { kcContext, i18n, doUseDefaultCss, classes }, { headerNode: msg("updateEmailTitle") }, { children: _jsxs("form", Object.assign({ id: "kc-update-email-form", className: getClassName("kcFormClass"), action: url.loginAction, method: "post" }, { children: [_jsxs("div", Object.assign({ className: clsx(getClassName("kcFormGroupClass"), messagesPerField.printIfExists("email", getClassName("kcFormGroupErrorClass"))) }, { children: [_jsx("div", Object.assign({ className: getClassName("kcLabelWrapperClass") }, { children: _jsx("label", Object.assign({ htmlFor: "email", className: getClassName("kcLabelClass") }, { children: msg("email") })) })), _jsx("div", Object.assign({ className: getClassName("kcInputWrapperClass") }, { children: _jsx("input", { type: "text", id: "email", name: "email", defaultValue: (_a = email.value) !== null && _a !== void 0 ? _a : "", className: getClassName("kcInputClass"), "aria-invalid": messagesPerField.existsError("email") }) }))] })), _jsxs("div", Object.assign({ className: getClassName("kcFormGroupClass") }, { children: [_jsx("div", Object.assign({ id: "kc-form-options", className: getClassName("kcFormOptionsClass") }, { children: _jsx("div", { className: getClassName("kcFormOptionsWrapperClass") }) })), _jsx("div", Object.assign({ id: "kc-form-buttons", className: getClassName("kcFormButtonsClass") }, { children: isAppInitiatedAction ? (_jsxs(_Fragment, { children: [_jsx("input", { className: clsx(getClassName("kcButtonClass"), getClassName("kcButtonPrimaryClass"), getClassName("kcButtonLargeClass")), type: "submit", defaultValue: msgStr("doSubmit") }), _jsx("button", Object.assign({ className: clsx(getClassName("kcButtonClass"), getClassName("kcButtonDefaultClass"), getClassName("kcButtonLargeClass")), type: "submit", name: "cancel-aia", value: "true" }, { children: msg("doCancel") }))] })) : (_jsx("input", { className: clsx(getClassName("kcButtonClass"), getClassName("kcButtonPrimaryClass"), getClassName("kcButtonBlockClass"), getClassName("kcButtonLargeClass")), type: "submit", defaultValue: msgStr("doSubmit") })) }))] }))] })) })));
14
+ }
15
+ //# sourceMappingURL=UpdateEmail.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"UpdateEmail.js","sourceRoot":"","sources":["../../src/login/pages/UpdateEmail.tsx"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "keycloakify",
3
- "version": "7.2.4",
3
+ "version": "7.3.1",
4
4
  "description": "Create Keycloak themes using React",
5
5
  "repository": {
6
6
  "type": "git",
@@ -99,9 +99,12 @@
99
99
  "src/bin/tools/logger.ts",
100
100
  "src/bin/tools/octokit-addons/getLatestsSemVersionedTag.ts",
101
101
  "src/bin/tools/octokit-addons/listTags.ts",
102
+ "src/bin/tools/partitionPromiseSettledResults.ts",
102
103
  "src/bin/tools/pathJoin.ts",
103
104
  "src/bin/tools/tee.ts",
104
105
  "src/bin/tools/transformCodebase.ts",
106
+ "src/bin/tools/trimIndent.ts",
107
+ "src/bin/tools/unzip.ts",
105
108
  "src/bin/tools/walk.ts",
106
109
  "src/bin/tools/zip.ts",
107
110
  "src/bin/tsconfig.json",
@@ -167,6 +170,7 @@
167
170
  "src/login/pages/Register.tsx",
168
171
  "src/login/pages/RegisterUserProfile.tsx",
169
172
  "src/login/pages/Terms.tsx",
173
+ "src/login/pages/UpdateEmail.tsx",
170
174
  "src/login/pages/UpdateUserProfile.tsx",
171
175
  "src/login/pages/WebauthnAuthenticate.tsx",
172
176
  "src/login/pages/shared/UserProfileFormFields.tsx",
@@ -400,6 +404,9 @@
400
404
  "bin/tools/octokit-addons/listTags.d.ts",
401
405
  "bin/tools/octokit-addons/listTags.js",
402
406
  "bin/tools/octokit-addons/listTags.js.map",
407
+ "bin/tools/partitionPromiseSettledResults.d.ts",
408
+ "bin/tools/partitionPromiseSettledResults.js",
409
+ "bin/tools/partitionPromiseSettledResults.js.map",
403
410
  "bin/tools/pathJoin.d.ts",
404
411
  "bin/tools/pathJoin.js",
405
412
  "bin/tools/pathJoin.js.map",
@@ -409,6 +416,12 @@
409
416
  "bin/tools/transformCodebase.d.ts",
410
417
  "bin/tools/transformCodebase.js",
411
418
  "bin/tools/transformCodebase.js.map",
419
+ "bin/tools/trimIndent.d.ts",
420
+ "bin/tools/trimIndent.js",
421
+ "bin/tools/trimIndent.js.map",
422
+ "bin/tools/unzip.d.ts",
423
+ "bin/tools/unzip.js",
424
+ "bin/tools/unzip.js.map",
412
425
  "bin/tools/walk.d.ts",
413
426
  "bin/tools/walk.js",
414
427
  "bin/tools/walk.js.map",
@@ -601,6 +614,9 @@
601
614
  "login/pages/Terms.d.ts",
602
615
  "login/pages/Terms.js",
603
616
  "login/pages/Terms.js.map",
617
+ "login/pages/UpdateEmail.d.ts",
618
+ "login/pages/UpdateEmail.js",
619
+ "login/pages/UpdateEmail.js.map",
604
620
  "login/pages/UpdateUserProfile.d.ts",
605
621
  "login/pages/UpdateUserProfile.js",
606
622
  "login/pages/UpdateUserProfile.js.map",
@@ -8,35 +8,35 @@ import { getCliOptions } from "./tools/cliOptions";
8
8
  import { getLogger } from "./tools/logger";
9
9
 
10
10
  export async function downloadBuiltinKeycloakTheme(params: { keycloakVersion: string; destDirPath: string; isSilent: boolean }) {
11
- const { keycloakVersion, destDirPath, isSilent } = params;
11
+ const { keycloakVersion, destDirPath } = params;
12
12
 
13
13
  await Promise.all(
14
14
  ["", "-community"].map(ext =>
15
15
  downloadAndUnzip({
16
16
  "destDirPath": destDirPath,
17
17
  "url": `https://github.com/keycloak/keycloak/archive/refs/tags/${keycloakVersion}.zip`,
18
- "pathOfDirToExtractInArchive": `keycloak-${keycloakVersion}/themes/src/main/resources${ext}/theme`,
19
- "cacheDirPath": pathJoin(keycloakThemeBuildingDirPath, ".cache"),
20
- isSilent
18
+ "pathOfDirToExtractInArchive": `keycloak-${keycloakVersion}/themes/src/main/resources${ext}/theme`
21
19
  })
22
20
  )
23
21
  );
24
22
  }
25
23
 
26
- if (require.main === module) {
27
- (async () => {
28
- const { isSilent } = getCliOptions(process.argv.slice(2));
29
- const logger = getLogger({ isSilent });
30
- const { keycloakVersion } = await promptKeycloakVersion();
24
+ async function main() {
25
+ const { isSilent } = getCliOptions(process.argv.slice(2));
26
+ const logger = getLogger({ isSilent });
27
+ const { keycloakVersion } = await promptKeycloakVersion();
28
+
29
+ const destDirPath = pathJoin(keycloakThemeBuildingDirPath, "src", "main", "resources", "theme");
31
30
 
32
- const destDirPath = pathJoin(keycloakThemeBuildingDirPath, "src", "main", "resources", "theme");
31
+ logger.log(`Downloading builtins theme of Keycloak ${keycloakVersion} here ${destDirPath}`);
33
32
 
34
- logger.log(`Downloading builtins theme of Keycloak ${keycloakVersion} here ${destDirPath}`);
33
+ await downloadBuiltinKeycloakTheme({
34
+ keycloakVersion,
35
+ destDirPath,
36
+ isSilent
37
+ });
38
+ }
35
39
 
36
- await downloadBuiltinKeycloakTheme({
37
- keycloakVersion,
38
- destDirPath,
39
- isSilent
40
- });
41
- })();
40
+ if (require.main === module) {
41
+ main().catch(e => console.error(e));
42
42
  }
@@ -13,7 +13,8 @@
13
13
  "totp", "totpSecret", "SAMLRequest", "SAMLResponse", "relayState", "device_user_code", "code",
14
14
  "password-new", "rememberMe", "login", "authenticationExecution", "cancel-aia", "clientDataJSON",
15
15
  "authenticatorData", "signature", "credentialId", "userHandle", "error", "authn_use_chk", "authenticationExecution",
16
- "isSetRetry", "try-again", "attestationObject", "publicKeyCredentialId", "authenticatorLabel"
16
+ "isSetRetry", "try-again", "attestationObject", "publicKeyCredentialId", "authenticatorLabel",
17
+ "location", "occupation"
17
18
  ]>
18
19
 
19
20
  <#attempt>
@@ -35,7 +35,8 @@ export const loginThemePageIds = [
35
35
  "login-config-totp.ftl",
36
36
  "logout-confirm.ftl",
37
37
  "update-user-profile.ftl",
38
- "idp-review-user-profile.ftl"
38
+ "idp-review-user-profile.ftl",
39
+ "update-email.ftl"
39
40
  ] as const;
40
41
 
41
42
  export const accountThemePageIds = ["password.ftl", "account.ftl"] as const;
@@ -1,15 +1,13 @@
1
- import { dirname as pathDirname, basename as pathBasename, join as pathJoin, join } from "path";
2
- import { createReadStream, createWriteStream } from "fs";
3
- import { stat, mkdir, unlink, writeFile } from "fs/promises";
4
- import { transformCodebase } from "./transformCodebase";
5
- import { createHash } from "crypto";
6
- import fetch from "make-fetch-happen";
7
- import { createInflateRaw } from "zlib";
8
- import type { Readable } from "stream";
9
- import { homedir } from "os";
10
- import { FetchOptions } from "make-fetch-happen";
11
1
  import { exec as execCallback } from "child_process";
2
+ import { createHash } from "crypto";
3
+ import { mkdir, stat, writeFile } from "fs/promises";
4
+ import fetch, { type FetchOptions } from "make-fetch-happen";
5
+ import { dirname as pathDirname, join as pathJoin } from "path";
6
+ import { assert } from "tsafe";
12
7
  import { promisify } from "util";
8
+ import { getProjectRoot } from "./getProjectRoot";
9
+ import { transformCodebase } from "./transformCodebase";
10
+ import { unzip } from "./unzip";
13
11
 
14
12
  const exec = promisify(execCallback);
15
13
 
@@ -17,25 +15,27 @@ function hash(s: string) {
17
15
  return createHash("sha256").update(s).digest("hex");
18
16
  }
19
17
 
20
- async function maybeStat(path: string) {
18
+ async function exists(path: string) {
21
19
  try {
22
- return await stat(path);
20
+ await stat(path);
21
+ return true;
23
22
  } catch (error) {
24
- if ((error as Error & { code: string }).code === "ENOENT") return undefined;
23
+ if ((error as Error & { code: string }).code === "ENOENT") return false;
25
24
  throw error;
26
25
  }
27
26
  }
28
27
 
29
28
  /**
30
- * Get an npm configuration value as string, undefined if not set.
31
- *
32
- * @param key
33
- * @returns string or undefined
29
+ * Get npm configuration as map
34
30
  */
35
- async function getNmpConfig(key: string): Promise<string | undefined> {
36
- const { stdout } = await exec(`npm config get ${key}`);
37
- const value = stdout.trim();
38
- return value && value !== "null" ? value : undefined;
31
+ async function getNmpConfig(): Promise<Record<string, string>> {
32
+ const { stdout } = await exec("npm config get", { encoding: "utf8" });
33
+ return stdout
34
+ .split("\n")
35
+ .filter(line => !line.startsWith(";"))
36
+ .map(line => line.trim())
37
+ .map(line => line.split("=", 2))
38
+ .reduce((cfg, [key, value]) => ({ ...cfg, [key]: value }), {});
39
39
  }
40
40
 
41
41
  /**
@@ -45,233 +45,49 @@ async function getNmpConfig(key: string): Promise<string | undefined> {
45
45
  * @returns proxy configuration
46
46
  */
47
47
  async function getNpmProxyConfig(): Promise<Pick<FetchOptions, "proxy" | "noProxy">> {
48
- const proxy = (await getNmpConfig("https-proxy")) ?? (await getNmpConfig("proxy"));
49
- const noProxy = (await getNmpConfig("noproxy")) ?? (await getNmpConfig("no-proxy"));
48
+ const cfg = await getNmpConfig();
50
49
 
51
- return { proxy, noProxy };
52
- }
50
+ const proxy = cfg["https-proxy"] ?? cfg["proxy"];
51
+ const noProxy = cfg["noproxy"] ?? cfg["no-proxy"];
53
52
 
54
- /**
55
- * Download a file from `url` to `dir`. Will try to avoid downloading existing
56
- * files by using the cache directory ~/.keycloakify/cache
57
- *
58
- * If the target directory does not exist, it will be created.
59
- *
60
- * If the target file exists, it will be overwritten.
61
- *
62
- * We use make-fetch-happen's internal file cache here, so we don't need to
63
- * worry about redownloading the same file over and over. Unfortunately, that
64
- * cache does not have a single file per entry, but bundles and indexes them,
65
- * so we still need to write the contents to the target directory (possibly
66
- * over and over), cause the current unzip implementation wants random access.
67
- *
68
- * @param url download url
69
- * @param dir target directory
70
- * @param filename target filename
71
- * @returns promise for the full path of the downloaded file
72
- */
73
- async function download(url: string, dir: string, filename: string): Promise<string> {
74
- const proxyOpts = await getNpmProxyConfig();
75
- const cacheRoot = process.env.XDG_CACHE_HOME ?? homedir();
76
- const cachePath = join(cacheRoot, ".keycloakify/cache");
77
- const opts: FetchOptions = { cachePath, ...proxyOpts };
78
- const response = await fetch(url, opts);
79
- const filepath = pathJoin(dir, filename);
80
- await mkdir(dir, { recursive: true });
81
- await writeFile(filepath, response.body);
82
- return filepath;
83
- }
84
-
85
- /**
86
- * @typedef
87
- * @type MultiError = Error & { cause: Error[] }
88
- */
89
-
90
- /**
91
- * Extract the archive `zipFile` into the directory `dir`. If `archiveDir` is given,
92
- * only that directory will be extracted, stripping the given path components.
93
- *
94
- * If dir does not exist, it will be created.
95
- *
96
- * If any archive file exists, it will be overwritten.
97
- *
98
- * Will unzip using all available nodejs worker threads.
99
- *
100
- * Will try to clean up extracted files on failure.
101
- *
102
- * If unpacking fails, will either throw an regular error, or
103
- * possibly an `MultiError`, which contains a `cause` field with
104
- * a number of root cause errors.
105
- *
106
- * Warning this method is not optimized for continuous reading of the zip
107
- * archive, but is a trade-off between simplicity and allowing extraction
108
- * of a single directory from the archive.
109
- *
110
- * @param zipFile the file to unzip
111
- * @param dir the target directory
112
- * @param archiveDir if given, unpack only files from this archive directory
113
- * @throws {MultiError} error
114
- * @returns Promise for a list of full file paths pointing to actually extracted files
115
- */
116
- async function unzip(zipFile: string, dir: string, archiveDir?: string): Promise<string[]> {
117
- await mkdir(dir, { recursive: true });
118
- const promises: Promise<string>[] = [];
119
-
120
- // Iterate over all files in the zip, skip files which are not in archiveDir,
121
- // if given.
122
- for await (const record of iterateZipArchive(zipFile)) {
123
- const { path: recordPath, createReadStream: createRecordReadStream } = record;
124
- const filePath = pathJoin(dir, recordPath);
125
- const parent = pathDirname(filePath);
126
- if (archiveDir && !recordPath.startsWith(archiveDir)) continue;
127
- promises.push(
128
- new Promise<string>(async (resolve, reject) => {
129
- await mkdir(parent, { recursive: true });
130
- // Pull the file out of the archive, write it to the target directory
131
- const input = createRecordReadStream();
132
- const output = createWriteStream(filePath);
133
- output.setMaxListeners(Infinity);
134
- output.on("error", e => reject(Object.assign(e, { filePath })));
135
- output.on("finish", () => resolve(filePath));
136
- input.pipe(output);
137
- })
138
- );
139
- }
140
-
141
- // Wait until _all_ files are either extracted or failed
142
- const results = await Promise.allSettled(promises);
143
- const success = results.filter(r => r.status === "fulfilled").map(r => (r as PromiseFulfilledResult<string>).value);
144
- const failure = results.filter(r => r.status === "rejected").map(r => (r as PromiseRejectedResult).reason);
145
-
146
- // If any extraction failed, try to clean up, then throw a MultiError,
147
- // which has a `cause` field, containing a list of root cause errors.
148
- if (failure.length) {
149
- await Promise.all(success.map(path => unlink(path)));
150
- await Promise.all(failure.map(e => e && e.path && unlink(e.path as string)));
151
- const e = new Error("Failed to extract: " + failure.map(e => e.message).join(";"));
152
- (e as any).cause = failure;
153
- throw e;
154
- }
155
-
156
- return success;
157
- }
158
-
159
- /**
160
- *
161
- * @param file file to read
162
- * @param start first byte to read
163
- * @param end last byte to read
164
- * @returns Promise of a buffer of read bytes
165
- */
166
- async function readFileChunk(file: string, start: number, end: number): Promise<Buffer> {
167
- const chunks: Buffer[] = [];
168
- return new Promise((resolve, reject) => {
169
- const stream = createReadStream(file, { start, end });
170
- stream.setMaxListeners(Infinity);
171
- stream.on("error", e => reject(e));
172
- stream.on("end", () => resolve(Buffer.concat(chunks)));
173
- stream.on("data", chunk => chunks.push(chunk as Buffer));
174
- });
175
- }
176
-
177
- type ZipRecord = {
178
- path: string;
179
- createReadStream: () => Readable;
180
- compressionMethod: "deflate" | undefined;
181
- };
182
-
183
- type ZipRecordGenerator = AsyncGenerator<ZipRecord, void, unknown>;
184
-
185
- /**
186
- * Iterate over all records of a zipfile, and yield a ZipRecord.
187
- * Use `record.createReadStream()` to actually read the file.
188
- *
189
- * Warning this method will only work with single-disk zip files.
190
- * Warning this method may fail if the zip archive has an crazy amount
191
- * of files and the central directory is not fully contained within the
192
- * last 65k bytes of the zip file.
193
- *
194
- * @param zipFile
195
- * @returns AsyncGenerator which will yield ZipRecords
196
- */
197
- async function* iterateZipArchive(zipFile: string): ZipRecordGenerator {
198
- // Need to know zip file size before we can do anything else
199
- const { size } = await stat(zipFile);
200
- const chunkSize = 65_535 + 22 + 1; // max comment size + end header size + wiggle
201
- // Read last ~65k bytes. Zip files have an comment up to 65_535 bytes at the very end,
202
- // before that comes the zip central directory end header.
203
- let chunk = await readFileChunk(zipFile, size - chunkSize, size);
204
- const unread = size - chunk.length;
205
- let i = chunk.length - 4;
206
- let found = false;
207
- // Find central directory end header, reading backwards from the end
208
- while (!found && i-- > 0) if (chunk[i] === 0x50 && chunk.readUInt32LE(i) === 0x06054b50) found = true;
209
- if (!found) throw new Error("Not a zip file");
210
- // This method will fail on a multi-disk zip, so bail early.
211
- if (chunk.readUInt16LE(i + 4) !== 0) throw new Error("Multi-disk zip not supported");
212
- let nFiles = chunk.readUint16LE(i + 10);
213
- // Get the position of the central directory
214
- const directorySize = chunk.readUint32LE(i + 12);
215
- const directoryOffset = chunk.readUint32LE(i + 16);
216
- if (directoryOffset === 0xffff_ffff) throw new Error("zip64 not supported");
217
- if (directoryOffset > size) throw new Error(`Central directory offset ${directoryOffset} is outside file`);
218
- i = directoryOffset - unread;
219
- // If i < 0, it means that the central directory is not contained within `chunk`
220
- if (i < 0) {
221
- chunk = await readFileChunk(zipFile, directoryOffset, directoryOffset + directorySize);
222
- i = 0;
223
- }
224
- // Now iterate the central directory records, yield an `ZipRecord` for every entry
225
- while (nFiles-- > 0) {
226
- // Check for marker bytes
227
- if (chunk.readUInt32LE(i) !== 0x02014b50) throw new Error("No central directory record at position " + (unread + i));
228
- const compressionMethod = ({ 8: "deflate" } as const)[chunk.readUint16LE(i + 10)];
229
- const compressedFileSize = chunk.readUint32LE(i + 20);
230
- const filenameLength = chunk.readUint16LE(i + 28);
231
- const extraLength = chunk.readUint16LE(i + 30);
232
- const commentLength = chunk.readUint16LE(i + 32);
233
- // Start of the actual content byte stream is after the 'local' record header,
234
- // which is 30 bytes long plus filename and extra field
235
- const start = chunk.readUint32LE(i + 42) + 30 + filenameLength + extraLength;
236
- const end = start + compressedFileSize;
237
- const filename = chunk.slice(i + 46, i + 46 + filenameLength).toString("utf-8");
238
- const createRecordReadStream = () => {
239
- const input = createReadStream(zipFile, { start, end });
240
- if (compressionMethod === "deflate") {
241
- const inflate = createInflateRaw();
242
- input.pipe(inflate);
243
- return inflate;
244
- }
245
- return input;
246
- };
247
- if (end > start) yield { path: filename, createReadStream: createRecordReadStream, compressionMethod };
248
- // advance pointer to next central directory entry
249
- i += 46 + filenameLength + extraLength + commentLength;
250
- }
53
+ return { proxy, noProxy };
251
54
  }
252
55
 
253
56
  export async function downloadAndUnzip({
254
57
  url,
255
58
  destDirPath,
256
- pathOfDirToExtractInArchive,
257
- cacheDirPath
59
+ pathOfDirToExtractInArchive
258
60
  }: {
259
- isSilent: boolean;
260
61
  url: string;
261
62
  destDirPath: string;
262
63
  pathOfDirToExtractInArchive?: string;
263
- cacheDirPath: string;
264
64
  }) {
265
- const downloadHash = hash(JSON.stringify({ url, pathOfDirToExtractInArchive })).substring(0, 15);
266
- const extractDirPath = pathJoin(cacheDirPath, `_${downloadHash}`);
267
-
268
- const filename = pathBasename(url);
269
- const zipFilepath = await download(url, cacheDirPath, filename);
270
- const zipMtime = (await stat(zipFilepath)).mtimeMs;
271
- const unzipMtime = (await maybeStat(extractDirPath))?.mtimeMs;
65
+ const downloadHash = hash(JSON.stringify({ url })).substring(0, 15);
66
+ const projectRoot = getProjectRoot();
67
+ const cacheRoot = process.env.XDG_CACHE_HOME ?? `${projectRoot}/node_modules/.cache`;
68
+ const zipFilePath = pathJoin(cacheRoot, "keycloakify", "zip", `_${downloadHash}.zip`);
69
+ const extractDirPath = pathJoin(cacheRoot, "keycloakify", "unzip", `_${downloadHash}`);
70
+
71
+ if (!(await exists(zipFilePath))) {
72
+ const proxyOpts = await getNpmProxyConfig();
73
+ const response = await fetch(url, proxyOpts);
74
+ await mkdir(pathDirname(zipFilePath), { recursive: true });
75
+ /**
76
+ * The correct way to fix this is to upgrade node-fetch beyond 3.2.5
77
+ * (see https://github.com/node-fetch/node-fetch/issues/1295#issuecomment-1144061991.)
78
+ * Unfortunately, octokit (a dependency of keycloakify) also uses node-fetch, and
79
+ * does not support node-fetch 3.x. So we stick around with this band-aid until
80
+ * octokit upgrades.
81
+ */
82
+ response.body?.setMaxListeners(Number.MAX_VALUE);
83
+ assert(typeof response.body !== "undefined" && response.body != null);
84
+ await writeFile(zipFilePath, response.body);
85
+ }
272
86
 
273
- if (!unzipMtime || zipMtime > unzipMtime) await unzip(zipFilepath, extractDirPath, pathOfDirToExtractInArchive);
87
+ await unzip(zipFilePath, extractDirPath, pathOfDirToExtractInArchive);
274
88
 
275
- const srcDirPath = pathOfDirToExtractInArchive === undefined ? extractDirPath : pathJoin(extractDirPath, pathOfDirToExtractInArchive);
276
- transformCodebase({ srcDirPath, destDirPath });
89
+ transformCodebase({
90
+ "srcDirPath": extractDirPath,
91
+ "destDirPath": destDirPath
92
+ });
277
93
  }