keycloakify 10.0.0-rc.23 → 10.0.0-rc.24

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 (232) hide show
  1. package/PUBLIC_URL.d.ts +1 -1
  2. package/PUBLIC_URL.js +1 -1
  3. package/PUBLIC_URL.js.map +1 -1
  4. package/account/Fallback.js.map +1 -1
  5. package/account/Template.js +3 -3
  6. package/account/Template.js.map +1 -1
  7. package/account/i18n/baseMessages/index.js.map +1 -1
  8. package/account/i18n/i18n.js.map +1 -1
  9. package/account/index.d.ts +2 -2
  10. package/account/index.js +1 -2
  11. package/account/index.js.map +1 -1
  12. package/account/kcContext/KcContext.d.ts +12 -0
  13. package/account/kcContext/KcContext.js.map +1 -1
  14. package/account/kcContext/getKcContextMock.d.ts +24 -0
  15. package/account/kcContext/getKcContextMock.js +28 -0
  16. package/account/kcContext/getKcContextMock.js.map +1 -0
  17. package/account/kcContext/index.d.ts +2 -1
  18. package/account/kcContext/index.js +1 -1
  19. package/account/kcContext/index.js.map +1 -1
  20. package/account/kcContext/kcContextMocks.js +23 -91
  21. package/account/kcContext/kcContextMocks.js.map +1 -1
  22. package/account/pages/Account.js +1 -1
  23. package/account/pages/Account.js.map +1 -1
  24. package/account/pages/Applications.js +2 -2
  25. package/account/pages/Applications.js.map +1 -1
  26. package/account/pages/FederatedIdentity.js +1 -1
  27. package/account/pages/FederatedIdentity.js.map +1 -1
  28. package/account/pages/Log.js +1 -1
  29. package/account/pages/Log.js.map +1 -1
  30. package/account/pages/Password.js +6 -4
  31. package/account/pages/Password.js.map +1 -1
  32. package/account/pages/Sessions.js +1 -1
  33. package/account/pages/Sessions.js.map +1 -1
  34. package/account/pages/Totp.js +1 -1
  35. package/account/pages/Totp.js.map +1 -1
  36. package/bin/main.js +152 -162
  37. package/lib/BASE_URL.js.map +1 -1
  38. package/login/Fallback.js.map +1 -1
  39. package/login/Template.js +7 -7
  40. package/login/Template.js.map +1 -1
  41. package/login/UserProfileFormFields.js +24 -68
  42. package/login/UserProfileFormFields.js.map +1 -1
  43. package/login/i18n/baseMessages/index.js.map +1 -1
  44. package/login/i18n/i18n.js.map +1 -1
  45. package/login/index.d.ts +2 -3
  46. package/login/index.js +1 -2
  47. package/login/index.js.map +1 -1
  48. package/login/kcContext/KcContext.d.ts +23 -12
  49. package/login/kcContext/KcContext.js.map +1 -1
  50. package/login/kcContext/getKcContextMock.d.ts +24 -0
  51. package/login/kcContext/getKcContextMock.js +28 -0
  52. package/login/kcContext/getKcContextMock.js.map +1 -0
  53. package/login/kcContext/index.d.ts +2 -1
  54. package/login/kcContext/index.js +1 -1
  55. package/login/kcContext/index.js.map +1 -1
  56. package/login/kcContext/kcContextMocks.js +32 -99
  57. package/login/kcContext/kcContextMocks.js.map +1 -1
  58. package/login/lib/useDownloadTerms.js +8 -14
  59. package/login/lib/useDownloadTerms.js.map +1 -1
  60. package/login/lib/useGetClassName.js +1 -1
  61. package/login/lib/useGetClassName.js.map +1 -1
  62. package/login/lib/useUserProfileForm.d.ts +9 -1
  63. package/login/lib/useUserProfileForm.js +94 -15
  64. package/login/lib/useUserProfileForm.js.map +1 -1
  65. package/login/pages/Code.js +1 -1
  66. package/login/pages/Code.js.map +1 -1
  67. package/login/pages/DeleteAccountConfirm.js +2 -2
  68. package/login/pages/DeleteAccountConfirm.js.map +1 -1
  69. package/login/pages/DeleteCredential.js +1 -1
  70. package/login/pages/DeleteCredential.js.map +1 -1
  71. package/login/pages/Error.js +1 -1
  72. package/login/pages/Error.js.map +1 -1
  73. package/login/pages/FrontchannelLogout.js +1 -1
  74. package/login/pages/FrontchannelLogout.js.map +1 -1
  75. package/login/pages/IdpReviewUserProfile.js +1 -1
  76. package/login/pages/IdpReviewUserProfile.js.map +1 -1
  77. package/login/pages/Info.js +5 -5
  78. package/login/pages/Info.js.map +1 -1
  79. package/login/pages/Login.js +4 -4
  80. package/login/pages/Login.js.map +1 -1
  81. package/login/pages/LoginConfigTotp.js +2 -2
  82. package/login/pages/LoginConfigTotp.js.map +1 -1
  83. package/login/pages/LoginIdpLinkConfirm.js +1 -1
  84. package/login/pages/LoginIdpLinkConfirm.js.map +1 -1
  85. package/login/pages/LoginIdpLinkEmail.js +1 -1
  86. package/login/pages/LoginIdpLinkEmail.js.map +1 -1
  87. package/login/pages/LoginOauth2DeviceVerifyUserCode.js +1 -1
  88. package/login/pages/LoginOauth2DeviceVerifyUserCode.js.map +1 -1
  89. package/login/pages/LoginOauthGrant.js +2 -2
  90. package/login/pages/LoginOauthGrant.js.map +1 -1
  91. package/login/pages/LoginOtp.js +1 -1
  92. package/login/pages/LoginOtp.js.map +1 -1
  93. package/login/pages/LoginPageExpired.js +1 -1
  94. package/login/pages/LoginPageExpired.js.map +1 -1
  95. package/login/pages/LoginPassword.js +3 -3
  96. package/login/pages/LoginPassword.js.map +1 -1
  97. package/login/pages/LoginRecoveryAuthnCodeConfig.js +10 -10
  98. package/login/pages/LoginRecoveryAuthnCodeConfig.js.map +1 -1
  99. package/login/pages/LoginRecoveryAuthnCodeInput.js +1 -1
  100. package/login/pages/LoginRecoveryAuthnCodeInput.js.map +1 -1
  101. package/login/pages/LoginResetOtp.js +1 -1
  102. package/login/pages/LoginResetOtp.js.map +1 -1
  103. package/login/pages/LoginResetPassword.js +2 -2
  104. package/login/pages/LoginResetPassword.js.map +1 -1
  105. package/login/pages/LoginUpdatePassword.js +3 -3
  106. package/login/pages/LoginUpdatePassword.js.map +1 -1
  107. package/login/pages/LoginUpdateProfile.js +4 -2
  108. package/login/pages/LoginUpdateProfile.js.map +1 -1
  109. package/login/pages/LoginUsername.js +3 -3
  110. package/login/pages/LoginUsername.js.map +1 -1
  111. package/login/pages/LoginVerifyEmail.js +1 -1
  112. package/login/pages/LoginVerifyEmail.js.map +1 -1
  113. package/login/pages/LoginX509Info.js +1 -1
  114. package/login/pages/LoginX509Info.js.map +1 -1
  115. package/login/pages/LogoutConfirm.js +1 -1
  116. package/login/pages/LogoutConfirm.js.map +1 -1
  117. package/login/pages/Register.js +8 -4
  118. package/login/pages/Register.js.map +1 -1
  119. package/login/pages/SamlPostForm.js +1 -1
  120. package/login/pages/SamlPostForm.js.map +1 -1
  121. package/login/pages/SelectAuthenticator.js +2 -2
  122. package/login/pages/SelectAuthenticator.js.map +1 -1
  123. package/login/pages/Terms.js +1 -1
  124. package/login/pages/Terms.js.map +1 -1
  125. package/login/pages/UpdateEmail.js +5 -3
  126. package/login/pages/UpdateEmail.js.map +1 -1
  127. package/login/pages/WebauthnAuthenticate.js +8 -8
  128. package/login/pages/WebauthnAuthenticate.js.map +1 -1
  129. package/login/pages/WebauthnError.js +2 -2
  130. package/login/pages/WebauthnError.js.map +1 -1
  131. package/login/pages/WebauthnRegister.js +5 -5
  132. package/login/pages/WebauthnRegister.js.map +1 -1
  133. package/package.json +26 -38
  134. package/src/PUBLIC_URL.ts +1 -1
  135. package/src/account/Template.tsx +2 -3
  136. package/src/account/index.ts +2 -2
  137. package/src/account/kcContext/KcContext.ts +19 -1
  138. package/src/account/kcContext/getKcContextMock.ts +80 -0
  139. package/src/account/kcContext/index.ts +2 -1
  140. package/src/account/kcContext/kcContextMocks.ts +26 -91
  141. package/src/bin/copy-keycloak-resources-to-public.ts +1 -4
  142. package/src/bin/keycloakify/generateFtl/ftl_object_to_js_code_declaring_an_object.ftl +4 -6
  143. package/src/bin/tools/getNpmWorkspaceRootDirPath.ts +25 -25
  144. package/src/login/Template.tsx +4 -5
  145. package/src/login/UserProfileFormFields.tsx +28 -80
  146. package/src/login/index.ts +6 -3
  147. package/src/login/kcContext/KcContext.ts +41 -27
  148. package/src/login/kcContext/getKcContextMock.ts +80 -0
  149. package/src/login/kcContext/index.ts +7 -1
  150. package/src/login/kcContext/kcContextMocks.ts +95 -156
  151. package/src/login/lib/useDownloadTerms.ts +10 -24
  152. package/src/login/lib/useGetClassName.ts +1 -1
  153. package/src/login/lib/useUserProfileForm.tsx +117 -13
  154. package/src/login/pages/LoginConfigTotp.tsx +1 -1
  155. package/src/login/pages/LoginRecoveryAuthnCodeConfig.tsx +7 -8
  156. package/src/login/pages/WebauthnAuthenticate.tsx +2 -3
  157. package/src/login/pages/WebauthnRegister.tsx +2 -3
  158. package/src/tools/ExtractAfterStartingWith.ts +4 -0
  159. package/src/tools/StatefulObservable/hooks/useRerenderOnChange.ts +4 -4
  160. package/src/tools/ValueOf.ts +2 -0
  161. package/src/tools/deepAssign.ts +51 -20
  162. package/src/tools/structuredCloneButFunctions.ts +24 -0
  163. package/src/tools/useInsertLinkTags.ts +78 -87
  164. package/src/tools/useInsertScriptTags.ts +69 -78
  165. package/src/tools/useOnFirstMount.ts +18 -0
  166. package/tools/Array.prototype.every.js.map +1 -1
  167. package/tools/ExtractAfterStartingWith.d.ts +1 -0
  168. package/tools/ExtractAfterStartingWith.js +2 -0
  169. package/tools/ExtractAfterStartingWith.js.map +1 -0
  170. package/tools/HTMLElement.prototype.prepend.js.map +1 -1
  171. package/tools/StatefulObservable/StatefulObservable.js.map +1 -1
  172. package/tools/StatefulObservable/hooks/useRerenderOnChange.d.ts +1 -1
  173. package/tools/StatefulObservable/hooks/useRerenderOnChange.js +4 -4
  174. package/tools/StatefulObservable/hooks/useRerenderOnChange.js.map +1 -1
  175. package/tools/ValueOf.d.ts +2 -0
  176. package/tools/ValueOf.js +2 -0
  177. package/tools/ValueOf.js.map +1 -0
  178. package/tools/clsx.js.map +1 -1
  179. package/tools/deepAssign.d.ts +1 -0
  180. package/tools/deepAssign.js +39 -16
  181. package/tools/deepAssign.js.map +1 -1
  182. package/tools/formatNumber.js.map +1 -1
  183. package/tools/structuredCloneButFunctions.d.ts +7 -0
  184. package/tools/structuredCloneButFunctions.js +19 -0
  185. package/tools/structuredCloneButFunctions.js.map +1 -0
  186. package/tools/useInsertLinkTags.d.ts +11 -6
  187. package/tools/useInsertLinkTags.js +53 -53
  188. package/tools/useInsertLinkTags.js.map +1 -1
  189. package/tools/useInsertScriptTags.d.ts +15 -6
  190. package/tools/useInsertScriptTags.js +56 -64
  191. package/tools/useInsertScriptTags.js.map +1 -1
  192. package/tools/useOnFirstMount.d.ts +2 -0
  193. package/tools/useOnFirstMount.js +15 -0
  194. package/tools/useOnFirstMount.js.map +1 -0
  195. package/tools/useSetClassName.js.map +1 -1
  196. package/vite-plugin/index.js +66 -64
  197. package/account/kcContext/createGetKcContext.d.ts +0 -19
  198. package/account/kcContext/createGetKcContext.js +0 -78
  199. package/account/kcContext/createGetKcContext.js.map +0 -1
  200. package/account/kcContext/getKcContext.d.ts +0 -13
  201. package/account/kcContext/getKcContext.js +0 -13
  202. package/account/kcContext/getKcContext.js.map +0 -1
  203. package/account/kcContext/getKcContextFromWindow.d.ts +0 -10
  204. package/account/kcContext/getKcContextFromWindow.js +0 -5
  205. package/account/kcContext/getKcContextFromWindow.js.map +0 -1
  206. package/login/kcContext/createGetKcContext.d.ts +0 -19
  207. package/login/kcContext/createGetKcContext.js +0 -114
  208. package/login/kcContext/createGetKcContext.js.map +0 -1
  209. package/login/kcContext/getKcContext.d.ts +0 -13
  210. package/login/kcContext/getKcContext.js +0 -13
  211. package/login/kcContext/getKcContext.js.map +0 -1
  212. package/login/kcContext/getKcContextFromWindow.d.ts +0 -10
  213. package/login/kcContext/getKcContextFromWindow.js +0 -5
  214. package/login/kcContext/getKcContextFromWindow.js.map +0 -1
  215. package/src/account/kcContext/createGetKcContext.ts +0 -134
  216. package/src/account/kcContext/getKcContext.ts +0 -23
  217. package/src/account/kcContext/getKcContextFromWindow.ts +0 -15
  218. package/src/login/kcContext/createGetKcContext.ts +0 -199
  219. package/src/login/kcContext/getKcContext.ts +0 -23
  220. package/src/login/kcContext/getKcContextFromWindow.ts +0 -15
  221. package/src/tools/AndByDiscriminatingKey.ts +0 -31
  222. package/src/tools/deepClone.ts +0 -19
  223. package/src/tools/memoize.ts +0 -55
  224. package/tools/AndByDiscriminatingKey.d.ts +0 -5
  225. package/tools/AndByDiscriminatingKey.js +0 -2
  226. package/tools/AndByDiscriminatingKey.js.map +0 -1
  227. package/tools/deepClone.d.ts +0 -2
  228. package/tools/deepClone.js +0 -14
  229. package/tools/deepClone.js.map +0 -1
  230. package/tools/memoize.d.ts +0 -7
  231. package/tools/memoize.js +0 -38
  232. package/tools/memoize.js.map +0 -1
@@ -1,58 +1,58 @@
1
- import { useReducer, useEffect } from "react";
2
- export function createUseInsertLinkTags() {
3
- let linkTagsContext = undefined;
4
- /** NOTE: The hrefs can't changes. There should be only one one call on this. */
5
- function useInsertLinkTags(params) {
6
- const { hrefs } = params;
7
- const [areAllStyleSheetsLoaded, setAllStyleSheetLoaded] = useReducer(() => true, hrefs.length === 0);
8
- useEffect(() => {
9
- let isActive = true;
10
- mount_link_tags: {
11
- if (linkTagsContext !== undefined) {
12
- if (JSON.stringify(linkTagsContext.styleSheetHrefs) ===
13
- JSON.stringify(hrefs)) {
14
- break mount_link_tags;
15
- }
16
- linkTagsContext.remove();
17
- linkTagsContext = undefined;
1
+ import { useEffect, useReducer } from "react";
2
+ import { useConst } from "../tools/useConst";
3
+ import { id } from "tsafe/id";
4
+ import { useOnFistMount } from "../tools/useOnFirstMount";
5
+ const alreadyMountedComponentOrHookNames = new Set();
6
+ /**
7
+ * NOTE: The component that use this hook can only be mounded once!
8
+ * And can't rerender with different hrefs.
9
+ * If it's mounted again the page will be reloaded.
10
+ * This simulates the behavior of a server rendered page that imports css stylesheet in the head.
11
+ */
12
+ export function useInsertLinkTags(params) {
13
+ const { hrefs, componentOrHookName } = params;
14
+ useOnFistMount(() => {
15
+ const isAlreadyMounted = alreadyMountedComponentOrHookNames.has(componentOrHookName);
16
+ if (isAlreadyMounted) {
17
+ window.location.reload();
18
+ return;
19
+ }
20
+ alreadyMountedComponentOrHookNames.add(componentOrHookName);
21
+ });
22
+ const [areAllStyleSheetsLoaded, setAllStyleSheetsLoaded] = useReducer(() => true, false);
23
+ const refPrAllStyleSheetLoaded = useConst(() => ({
24
+ current: id(undefined)
25
+ }));
26
+ useEffect(() => {
27
+ var _a;
28
+ let isActive = true;
29
+ ((_a = refPrAllStyleSheetLoaded.current) !== null && _a !== void 0 ? _a : (refPrAllStyleSheetLoaded.current = (async () => {
30
+ let lastMountedHtmlElement = undefined;
31
+ const prs = [];
32
+ for (const href of hrefs) {
33
+ const htmlElement = document.createElement("link");
34
+ prs.push(new Promise(resolve => htmlElement.addEventListener("load", () => resolve())));
35
+ htmlElement.rel = "stylesheet";
36
+ htmlElement.href = href;
37
+ if (lastMountedHtmlElement !== undefined) {
38
+ lastMountedHtmlElement.insertAdjacentElement("afterend", htmlElement);
18
39
  }
19
- let lastMountedHtmlElement = undefined;
20
- const prs = [];
21
- const removeFns = [];
22
- for (const href of hrefs) {
23
- const htmlElement = document.createElement("link");
24
- prs.push(new Promise(resolve => htmlElement.addEventListener("load", () => resolve())));
25
- htmlElement.rel = "stylesheet";
26
- htmlElement.href = href;
27
- if (lastMountedHtmlElement !== undefined) {
28
- lastMountedHtmlElement.insertAdjacentElement("afterend", htmlElement);
29
- }
30
- else {
31
- document.head.prepend(htmlElement);
32
- }
33
- removeFns.push(() => {
34
- htmlElement.remove();
35
- });
36
- lastMountedHtmlElement = htmlElement;
40
+ else {
41
+ document.head.prepend(htmlElement);
37
42
  }
38
- linkTagsContext = {
39
- styleSheetHrefs: hrefs,
40
- prAreAllStyleSheetsLoaded: Promise.all(prs).then(() => undefined),
41
- remove: () => removeFns.forEach(fn => fn())
42
- };
43
+ lastMountedHtmlElement = htmlElement;
43
44
  }
44
- linkTagsContext.prAreAllStyleSheetsLoaded.then(() => {
45
- if (!isActive) {
46
- return;
47
- }
48
- setAllStyleSheetLoaded();
49
- });
50
- return () => {
51
- isActive = false;
52
- };
53
- }, []);
54
- return { areAllStyleSheetsLoaded };
55
- }
56
- return { useInsertLinkTags };
45
+ await Promise.all(prs);
46
+ })())).then(() => {
47
+ if (!isActive) {
48
+ return;
49
+ }
50
+ setAllStyleSheetsLoaded();
51
+ });
52
+ return () => {
53
+ isActive = false;
54
+ };
55
+ }, []);
56
+ return { areAllStyleSheetsLoaded };
57
57
  }
58
58
  //# sourceMappingURL=useInsertLinkTags.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useInsertLinkTags.js","sourceRoot":"","sources":["../src/tools/useInsertLinkTags.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAE9C,MAAM,UAAU,uBAAuB;IACnC,IAAI,eAAe,GAMD,SAAS,CAAC;IAE5B,gFAAgF;IAChF,SAAS,iBAAiB,CAAC,MAA2B;QAClD,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,CAAC;QAEzB,MAAM,CAAC,uBAAuB,EAAE,sBAAsB,CAAC,GAAG,UAAU,CAChE,GAAG,EAAE,CAAC,IAAI,EACV,KAAK,CAAC,MAAM,KAAK,CAAC,CACrB,CAAC;QAEF,SAAS,CAAC,GAAG,EAAE;YACX,IAAI,QAAQ,GAAG,IAAI,CAAC;YAEpB,eAAe,EAAE,CAAC;gBACd,IAAI,eAAe,KAAK,SAAS,EAAE,CAAC;oBAChC,IACI,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,eAAe,CAAC;wBAC/C,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EACvB,CAAC;wBACC,MAAM,eAAe,CAAC;oBAC1B,CAAC;oBAED,eAAe,CAAC,MAAM,EAAE,CAAC;oBAEzB,eAAe,GAAG,SAAS,CAAC;gBAChC,CAAC;gBAED,IAAI,sBAAsB,GAAgC,SAAS,CAAC;gBAEpE,MAAM,GAAG,GAAoB,EAAE,CAAC;gBAChC,MAAM,SAAS,GAAmB,EAAE,CAAC;gBAErC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;oBACvB,MAAM,WAAW,GAAG,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;oBAEnD,GAAG,CAAC,IAAI,CACJ,IAAI,OAAO,CAAO,OAAO,CAAC,EAAE,CACxB,WAAW,CAAC,gBAAgB,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC,CACxD,CACJ,CAAC;oBAEF,WAAW,CAAC,GAAG,GAAG,YAAY,CAAC;oBAE/B,WAAW,CAAC,IAAI,GAAG,IAAI,CAAC;oBAExB,IAAI,sBAAsB,KAAK,SAAS,EAAE,CAAC;wBACvC,sBAAsB,CAAC,qBAAqB,CACxC,UAAU,EACV,WAAW,CACd,CAAC;oBACN,CAAC;yBAAM,CAAC;wBACJ,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;oBACvC,CAAC;oBAED,SAAS,CAAC,IAAI,CAAC,GAAG,EAAE;wBAChB,WAAW,CAAC,MAAM,EAAE,CAAC;oBACzB,CAAC,CAAC,CAAC;oBAEH,sBAAsB,GAAG,WAAW,CAAC;gBACzC,CAAC;gBAED,eAAe,GAAG;oBACd,eAAe,EAAE,KAAK;oBACtB,yBAAyB,EAAE,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC;oBACjE,MAAM,EAAE,GAAG,EAAE,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;iBAC9C,CAAC;YACN,CAAC;YAED,eAAe,CAAC,yBAAyB,CAAC,IAAI,CAAC,GAAG,EAAE;gBAChD,IAAI,CAAC,QAAQ,EAAE,CAAC;oBACZ,OAAO;gBACX,CAAC;gBACD,sBAAsB,EAAE,CAAC;YAC7B,CAAC,CAAC,CAAC;YAEH,OAAO,GAAG,EAAE;gBACR,QAAQ,GAAG,KAAK,CAAC;YACrB,CAAC,CAAC;QACN,CAAC,EAAE,EAAE,CAAC,CAAC;QAEP,OAAO,EAAE,uBAAuB,EAAE,CAAC;IACvC,CAAC;IAED,OAAO,EAAE,iBAAiB,EAAE,CAAC;AACjC,CAAC"}
1
+ {"version":3,"file":"useInsertLinkTags.js","sourceRoot":"","sources":["../src/tools/useInsertLinkTags.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AAC9C,OAAO,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAC;AACtD,OAAO,EAAE,EAAE,EAAE,MAAM,UAAU,CAAC;AAC9B,OAAO,EAAE,cAAc,EAAE,MAAM,mCAAmC,CAAC;AAEnE,MAAM,kCAAkC,GAAG,IAAI,GAAG,EAAU,CAAC;AAE7D;;;;;GAKG;AACH,MAAM,UAAU,iBAAiB,CAAC,MAGjC;IACG,MAAM,EAAE,KAAK,EAAE,mBAAmB,EAAE,GAAG,MAAM,CAAC;IAE9C,cAAc,CAAC,GAAG,EAAE;QAChB,MAAM,gBAAgB,GAClB,kCAAkC,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC;QAEhE,IAAI,gBAAgB,EAAE;YAClB,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;YACzB,OAAO;SACV;QAED,kCAAkC,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC;IAChE,CAAC,CAAC,CAAC;IAEH,MAAM,CAAC,uBAAuB,EAAE,uBAAuB,CAAC,GAAG,UAAU,CACjE,GAAG,EAAE,CAAC,IAAI,EACV,KAAK,CACR,CAAC;IAEF,MAAM,wBAAwB,GAAG,QAAQ,CAAC,GAAG,EAAE,CAAC,CAAC;QAC7C,OAAO,EAAE,EAAE,CAA4B,SAAS,CAAC;KACpD,CAAC,CAAC,CAAC;IAEJ,SAAS,CAAC,GAAG,EAAE;;QACX,IAAI,QAAQ,GAAG,IAAI,CAAC;QAEpB,OAAC,wBAAwB,CAAC,OAAO,oCAAhC,wBAAwB,CAAC,OAAO,GAAK,CAAC,KAAK,IAAI,EAAE;YAC9C,IAAI,sBAAsB,GAAgC,SAAS,CAAC;YAEpE,MAAM,GAAG,GAAoB,EAAE,CAAC;YAEhC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE;gBACtB,MAAM,WAAW,GAAG,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;gBAEnD,GAAG,CAAC,IAAI,CACJ,IAAI,OAAO,CAAO,OAAO,CAAC,EAAE,CACxB,WAAW,CAAC,gBAAgB,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC,CACxD,CACJ,CAAC;gBAEF,WAAW,CAAC,GAAG,GAAG,YAAY,CAAC;gBAE/B,WAAW,CAAC,IAAI,GAAG,IAAI,CAAC;gBAExB,IAAI,sBAAsB,KAAK,SAAS,EAAE;oBACtC,sBAAsB,CAAC,qBAAqB,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC;iBACzE;qBAAM;oBACH,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;iBACtC;gBAED,sBAAsB,GAAG,WAAW,CAAC;aACxC;YAED,MAAM,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAC3B,CAAC,CAAC,EAAE,EAAC,CAAC,IAAI,CAAC,GAAG,EAAE;YACZ,IAAI,CAAC,QAAQ,EAAE;gBACX,OAAO;aACV;YAED,uBAAuB,EAAE,CAAC;QAC9B,CAAC,CAAC,CAAC;QAEH,OAAO,GAAG,EAAE;YACR,QAAQ,GAAG,KAAK,CAAC;QACrB,CAAC,CAAC;IACN,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,OAAO,EAAE,uBAAuB,EAAE,CAAC;AACvC,CAAC"}
@@ -11,10 +11,19 @@ export declare namespace ScriptTag {
11
11
  };
12
12
  export {};
13
13
  }
14
- export declare function createUseInsertScriptTags(): {
15
- useInsertScriptTags: (params: {
16
- scriptTags: ScriptTag[];
17
- }) => {
18
- insertScriptTags: () => void;
19
- };
14
+ /**
15
+ * NOTE: The component that use this hook can only be mounded once!
16
+ * And can't rerender with different scriptTags.
17
+ * If it's mounted again the page will be reloaded.
18
+ * This simulates the behavior of a server rendered page that imports javascript in the head.
19
+ *
20
+ * The returned function is supposed to be called in a useEffect and
21
+ * will not download the scripts multiple times event if called more than once (react strict mode).
22
+ *
23
+ */
24
+ export declare function useInsertScriptTags(params: {
25
+ componentOrHookName: string;
26
+ scriptTags: ScriptTag[];
27
+ }): {
28
+ insertScriptTags: () => void;
20
29
  };
@@ -1,78 +1,70 @@
1
1
  import { useCallback } from "react";
2
- import { useConst } from "../tools/useConst";
3
2
  import { assert } from "tsafe/assert";
4
- export function createUseInsertScriptTags() {
3
+ import { useOnFistMount } from "../tools/useOnFirstMount";
4
+ const alreadyMountedComponentOrHookNames = new Set();
5
+ /**
6
+ * NOTE: The component that use this hook can only be mounded once!
7
+ * And can't rerender with different scriptTags.
8
+ * If it's mounted again the page will be reloaded.
9
+ * This simulates the behavior of a server rendered page that imports javascript in the head.
10
+ *
11
+ * The returned function is supposed to be called in a useEffect and
12
+ * will not download the scripts multiple times event if called more than once (react strict mode).
13
+ *
14
+ */
15
+ export function useInsertScriptTags(params) {
16
+ const { scriptTags, componentOrHookName } = params;
17
+ useOnFistMount(() => {
18
+ const isAlreadyMounted = alreadyMountedComponentOrHookNames.has(componentOrHookName);
19
+ if (isAlreadyMounted) {
20
+ window.location.reload();
21
+ return;
22
+ }
23
+ alreadyMountedComponentOrHookNames.add(componentOrHookName);
24
+ });
5
25
  let areScriptsInserted = false;
6
- function useInsertScriptTags(params) {
7
- const { scriptTags } = params;
8
- const currentScriptTagsRef = useConst(() => ({
9
- current: scriptTags
10
- }));
11
- currentScriptTagsRef.current = scriptTags;
12
- const insertScriptTags = useCallback(() => {
26
+ const insertScriptTags = useCallback(() => {
27
+ if (areScriptsInserted) {
28
+ return;
29
+ }
30
+ scriptTags.forEach(scriptTag => {
31
+ // NOTE: Avoid loading same script twice. (Like jQuery for example)
13
32
  {
14
- const getFingerprint = (scriptTags) => scriptTags
15
- .map((scriptTag) => {
33
+ const scripts = document.getElementsByTagName("script");
34
+ for (let i = 0; i < scripts.length; i++) {
35
+ const script = scripts[i];
16
36
  if ("textContent" in scriptTag) {
17
- return scriptTag.textContent;
37
+ if (script.textContent === scriptTag.textContent) {
38
+ return;
39
+ }
40
+ continue;
18
41
  }
19
42
  if ("src" in scriptTag) {
20
- return scriptTag.src;
43
+ if (script.getAttribute("src") === scriptTag.src) {
44
+ return;
45
+ }
46
+ continue;
21
47
  }
22
48
  assert(false);
23
- })
24
- .join("---");
25
- if (getFingerprint(scriptTags) !==
26
- getFingerprint(currentScriptTagsRef.current)) {
27
- // NOTE: This is for when the scripts imported in the Template have changed switching
28
- // from one page to another in storybook.
29
- window.location.reload();
30
- return;
31
49
  }
32
50
  }
33
- if (areScriptsInserted) {
34
- return;
35
- }
36
- scriptTags.forEach(scriptTag => {
37
- // NOTE: Avoid loading same script twice. (Like jQuery for example)
38
- {
39
- const scripts = document.getElementsByTagName("script");
40
- for (let i = 0; i < scripts.length; i++) {
41
- const script = scripts[i];
42
- if ("textContent" in scriptTag) {
43
- if (script.textContent === scriptTag.textContent) {
44
- return;
45
- }
46
- continue;
47
- }
48
- if ("src" in scriptTag) {
49
- if (script.getAttribute("src") === scriptTag.src) {
50
- return;
51
- }
52
- continue;
53
- }
54
- assert(false);
55
- }
51
+ const htmlElement = document.createElement("script");
52
+ htmlElement.type = scriptTag.type;
53
+ (() => {
54
+ if ("textContent" in scriptTag) {
55
+ htmlElement.textContent = scriptTag.textContent;
56
+ return;
56
57
  }
57
- const htmlElement = document.createElement("script");
58
- htmlElement.type = scriptTag.type;
59
- (() => {
60
- if ("textContent" in scriptTag) {
61
- htmlElement.textContent = scriptTag.textContent;
62
- return;
63
- }
64
- if ("src" in scriptTag) {
65
- htmlElement.src = scriptTag.src;
66
- return;
67
- }
68
- assert(false);
69
- })();
70
- document.head.appendChild(htmlElement);
71
- });
72
- areScriptsInserted = true;
73
- }, []);
74
- return { insertScriptTags };
75
- }
76
- return { useInsertScriptTags };
58
+ if ("src" in scriptTag) {
59
+ htmlElement.src = scriptTag.src;
60
+ return;
61
+ }
62
+ assert(false);
63
+ })();
64
+ document.head.appendChild(htmlElement);
65
+ });
66
+ areScriptsInserted = true;
67
+ }, []);
68
+ return { insertScriptTags };
77
69
  }
78
70
  //# sourceMappingURL=useInsertScriptTags.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useInsertScriptTags.js","sourceRoot":"","sources":["../src/tools/useInsertScriptTags.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"useInsertScriptTags.js","sourceRoot":"","sources":["../src/tools/useInsertScriptTags.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,OAAO,CAAC;AACpC,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AACtC,OAAO,EAAE,cAAc,EAAE,MAAM,mCAAmC,CAAC;AAiBnE,MAAM,kCAAkC,GAAG,IAAI,GAAG,EAAU,CAAC;AAE7D;;;;;;;;;GASG;AACH,MAAM,UAAU,mBAAmB,CAAC,MAGnC;IACG,MAAM,EAAE,UAAU,EAAE,mBAAmB,EAAE,GAAG,MAAM,CAAC;IAEnD,cAAc,CAAC,GAAG,EAAE;QAChB,MAAM,gBAAgB,GAClB,kCAAkC,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC;QAEhE,IAAI,gBAAgB,EAAE;YAClB,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;YACzB,OAAO;SACV;QAED,kCAAkC,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC;IAChE,CAAC,CAAC,CAAC;IAEH,IAAI,kBAAkB,GAAG,KAAK,CAAC;IAE/B,MAAM,gBAAgB,GAAG,WAAW,CAAC,GAAG,EAAE;QACtC,IAAI,kBAAkB,EAAE;YACpB,OAAO;SACV;QAED,UAAU,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE;YAC3B,mEAAmE;YACnE;gBACI,MAAM,OAAO,GAAG,QAAQ,CAAC,oBAAoB,CAAC,QAAQ,CAAC,CAAC;gBACxD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;oBACrC,MAAM,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;oBAC1B,IAAI,aAAa,IAAI,SAAS,EAAE;wBAC5B,IAAI,MAAM,CAAC,WAAW,KAAK,SAAS,CAAC,WAAW,EAAE;4BAC9C,OAAO;yBACV;wBACD,SAAS;qBACZ;oBACD,IAAI,KAAK,IAAI,SAAS,EAAE;wBACpB,IAAI,MAAM,CAAC,YAAY,CAAC,KAAK,CAAC,KAAK,SAAS,CAAC,GAAG,EAAE;4BAC9C,OAAO;yBACV;wBACD,SAAS;qBACZ;oBACD,MAAM,CAAC,KAAK,CAAC,CAAC;iBACjB;aACJ;YAED,MAAM,WAAW,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;YAErD,WAAW,CAAC,IAAI,GAAG,SAAS,CAAC,IAAI,CAAC;YAElC,CAAC,GAAG,EAAE;gBACF,IAAI,aAAa,IAAI,SAAS,EAAE;oBAC5B,WAAW,CAAC,WAAW,GAAG,SAAS,CAAC,WAAW,CAAC;oBAChD,OAAO;iBACV;gBACD,IAAI,KAAK,IAAI,SAAS,EAAE;oBACpB,WAAW,CAAC,GAAG,GAAG,SAAS,CAAC,GAAG,CAAC;oBAChC,OAAO;iBACV;gBACD,MAAM,CAAC,KAAK,CAAC,CAAC;YAClB,CAAC,CAAC,EAAE,CAAC;YAEL,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;QAC3C,CAAC,CAAC,CAAC;QAEH,kBAAkB,GAAG,IAAI,CAAC;IAC9B,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,OAAO,EAAE,gBAAgB,EAAE,CAAC;AAChC,CAAC"}
@@ -0,0 +1,2 @@
1
+ /** Callback is guaranteed to be call only once per component mount event in strict mode */
2
+ export declare function useOnFistMount(callback: () => void): void;
@@ -0,0 +1,15 @@
1
+ import { useEffect } from "react";
2
+ import { useConst } from "powerhooks/useConst";
3
+ import { id } from "tsafe/id";
4
+ /** Callback is guaranteed to be call only once per component mount event in strict mode */
5
+ export function useOnFistMount(callback) {
6
+ const refHasCallbackBeenCalled = useConst(() => ({ current: id(false) }));
7
+ useEffect(() => {
8
+ if (refHasCallbackBeenCalled.current) {
9
+ return;
10
+ }
11
+ callback();
12
+ refHasCallbackBeenCalled.current = true;
13
+ }, []);
14
+ }
15
+ //# sourceMappingURL=useOnFirstMount.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useOnFirstMount.js","sourceRoot":"","sources":["../src/tools/useOnFirstMount.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAClC,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAC/C,OAAO,EAAE,EAAE,EAAE,MAAM,UAAU,CAAC;AAE9B,2FAA2F;AAC3F,MAAM,UAAU,cAAc,CAAC,QAAoB;IAC/C,MAAM,wBAAwB,GAAG,QAAQ,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,EAAE,CAAU,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC;IAEnF,SAAS,CAAC,GAAG,EAAE;QACX,IAAI,wBAAwB,CAAC,OAAO,EAAE;YAClC,OAAO;SACV;QAED,QAAQ,EAAE,CAAC;QAEX,wBAAwB,CAAC,OAAO,GAAG,IAAI,CAAC;IAC5C,CAAC,EAAE,EAAE,CAAC,CAAC;AACX,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"useSetClassName.js","sourceRoot":"","sources":["../src/tools/useSetClassName.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAElC,MAAM,UAAU,eAAe,CAAC,MAG/B;IACG,MAAM,EAAE,aAAa,EAAE,SAAS,EAAE,GAAG,MAAM,CAAC;IAE5C,SAAS,CAAC,GAAG,EAAE;QACX,IAAI,SAAS,KAAK,SAAS,IAAI,SAAS,KAAK,EAAE,EAAE,CAAC;YAC9C,OAAO;QACX,CAAC;QAED,MAAM,aAAa,GAAG,QAAQ,CAAC,oBAAoB,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QAEhF,MAAM,MAAM,GAAG,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAEpC,aAAa,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,CAAC;QAE7B,OAAO,GAAG,EAAE;YACR,aAAa,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC;QACpC,CAAC,CAAC;IACN,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC;AACpB,CAAC"}
1
+ {"version":3,"file":"useSetClassName.js","sourceRoot":"","sources":["../src/tools/useSetClassName.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAElC,MAAM,UAAU,eAAe,CAAC,MAG/B;IACG,MAAM,EAAE,aAAa,EAAE,SAAS,EAAE,GAAG,MAAM,CAAC;IAE5C,SAAS,CAAC,GAAG,EAAE;QACX,IAAI,SAAS,KAAK,SAAS,IAAI,SAAS,KAAK,EAAE,EAAE;YAC7C,OAAO;SACV;QAED,MAAM,aAAa,GAAG,QAAQ,CAAC,oBAAoB,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QAEhF,MAAM,MAAM,GAAG,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAEpC,aAAa,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,CAAC;QAE7B,OAAO,GAAG,EAAE;YACR,aAAa,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC;QACpC,CAAC,CAAC;IACN,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC;AACpB,CAAC"}
@@ -959,7 +959,7 @@ var SemVer;
959
959
  return "no bump";
960
960
  }
961
961
  SemVer.bumpType = bumpType;
962
- })(SemVer || (exports.SemVer = SemVer = {}));
962
+ })(SemVer = exports.SemVer || (exports.SemVer = {}));
963
963
  //# sourceMappingURL=SemVer.js.map
964
964
 
965
965
  /***/ }),
@@ -1124,10 +1124,10 @@ var fetchProxyOptions_1 = __nccwpck_require__(1222);
1124
1124
  var crypto = __importStar(__nccwpck_require__(6113));
1125
1125
  var fs_rm_1 = __nccwpck_require__(8699);
1126
1126
  function downloadAndExtractArchive(params) {
1127
+ var _a;
1127
1128
  return __awaiter(this, void 0, void 0, function () {
1128
- var url, uniqueIdOfOnOnArchiveFile, onArchiveFile, cacheDirPath, npmWorkspaceRootDirPath, archiveFileBasename, archiveFilePath, isDownloaded, response, _a, _b, extractDirBasename, _c, _d, extractedDirPath, isExtracted;
1129
+ var url, uniqueIdOfOnOnArchiveFile, onArchiveFile, cacheDirPath, npmWorkspaceRootDirPath, archiveFileBasename, archiveFilePath, isDownloaded, response, _b, _c, extractDirBasename, _d, _e, extractedDirPath, isExtracted;
1129
1130
  var _this = this;
1130
- var _e;
1131
1131
  return __generator(this, function (_f) {
1132
1132
  switch (_f.label) {
1133
1133
  case 0:
@@ -1159,13 +1159,13 @@ function downloadAndExtractArchive(params) {
1159
1159
  case 5: return [4 /*yield*/, (0, promises_1.mkdir)((0, path_1.dirname)(archiveFilePath), { recursive: true })];
1160
1160
  case 6:
1161
1161
  _f.sent();
1162
- _a = make_fetch_happen_1.default;
1163
- _b = [url];
1162
+ _b = make_fetch_happen_1.default;
1163
+ _c = [url];
1164
1164
  return [4 /*yield*/, (0, fetchProxyOptions_1.getProxyFetchOptions)({ npmWorkspaceRootDirPath: npmWorkspaceRootDirPath })];
1165
- case 7: return [4 /*yield*/, _a.apply(void 0, _b.concat([_f.sent()]))];
1165
+ case 7: return [4 /*yield*/, _b.apply(void 0, _c.concat([_f.sent()]))];
1166
1166
  case 8:
1167
1167
  response = _f.sent();
1168
- (_e = response.body) === null || _e === void 0 ? void 0 : _e.setMaxListeners(Number.MAX_VALUE);
1168
+ (_a = response.body) === null || _a === void 0 ? void 0 : _a.setMaxListeners(Number.MAX_VALUE);
1169
1169
  (0, assert_1.assert)(typeof response.body !== "undefined" && response.body != null);
1170
1170
  return [4 /*yield*/, (0, promises_1.writeFile)(archiveFilePath, response.body)];
1171
1171
  case 9:
@@ -1183,9 +1183,9 @@ function downloadAndExtractArchive(params) {
1183
1183
  .update(onArchiveFile.toString())
1184
1184
  .digest("hex")
1185
1185
  .substring(0, 5));
1186
- _d = (_c = Promise).all;
1186
+ _e = (_d = Promise).all;
1187
1187
  return [4 /*yield*/, (0, promises_1.readdir)(cacheDirPath)];
1188
- case 12: return [4 /*yield*/, _d.apply(_c, [(_f.sent())
1188
+ case 12: return [4 /*yield*/, _e.apply(_d, [(_f.sent())
1189
1189
  .filter((function () {
1190
1190
  var prefix = extractDirBasename
1191
1191
  .split("_")
@@ -1240,22 +1240,24 @@ function downloadAndExtractArchive(params) {
1240
1240
  _f.label = 18;
1241
1241
  case 18: return [4 /*yield*/, (0, extractArchive_1.extractArchive)({
1242
1242
  archiveFilePath: archiveFilePath,
1243
- onArchiveFile: function (_a) { return __awaiter(_this, [_a], void 0, function (_b) {
1244
- var relativeFilePathInArchive = _b.relativeFilePathInArchive, readFile = _b.readFile, writeFile = _b.writeFile;
1245
- return __generator(this, function (_c) {
1246
- return [2 /*return*/, onArchiveFile({
1247
- fileRelativePath: relativeFilePathInArchive,
1248
- readFile: readFile,
1249
- writeFile: function (_a) {
1250
- var fileRelativePath = _a.fileRelativePath, modifiedData = _a.modifiedData;
1251
- return writeFile({
1252
- filePath: (0, path_1.join)(extractedDirPath, fileRelativePath),
1253
- modifiedData: modifiedData
1254
- });
1255
- }
1256
- })];
1243
+ onArchiveFile: function (_a) {
1244
+ var relativeFilePathInArchive = _a.relativeFilePathInArchive, readFile = _a.readFile, writeFile = _a.writeFile;
1245
+ return __awaiter(_this, void 0, void 0, function () {
1246
+ return __generator(this, function (_b) {
1247
+ return [2 /*return*/, onArchiveFile({
1248
+ fileRelativePath: relativeFilePathInArchive,
1249
+ readFile: readFile,
1250
+ writeFile: function (_a) {
1251
+ var fileRelativePath = _a.fileRelativePath, modifiedData = _a.modifiedData;
1252
+ return writeFile({
1253
+ filePath: (0, path_1.join)(extractedDirPath, fileRelativePath),
1254
+ modifiedData: modifiedData
1255
+ });
1256
+ }
1257
+ })];
1258
+ });
1257
1259
  });
1258
- }); }
1260
+ }
1259
1261
  })];
1260
1262
  case 19:
1261
1263
  _f.sent();
@@ -1567,13 +1569,13 @@ function getNmpConfig(params) {
1567
1569
  });
1568
1570
  }
1569
1571
  function getProxyFetchOptions(params) {
1572
+ var _a, _b, _c;
1570
1573
  return __awaiter(this, void 0, void 0, function () {
1571
1574
  function maybeBoolean(arg0) {
1572
1575
  return typeof arg0 === "undefined" ? undefined : Boolean(arg0);
1573
1576
  }
1574
- var npmWorkspaceRootDirPath, cfg, proxy, noProxy, strictSSL, cert, ca, cafile, _a, _b, _c, _d;
1577
+ var npmWorkspaceRootDirPath, cfg, proxy, noProxy, strictSSL, cert, ca, cafile, _d, _e, _f, _g;
1575
1578
  var _this = this;
1576
- var _e, _f, _g;
1577
1579
  return __generator(this, function (_h) {
1578
1580
  switch (_h.label) {
1579
1581
  case 0:
@@ -1581,16 +1583,16 @@ function getProxyFetchOptions(params) {
1581
1583
  return [4 /*yield*/, getNmpConfig({ npmWorkspaceRootDirPath: npmWorkspaceRootDirPath })];
1582
1584
  case 1:
1583
1585
  cfg = _h.sent();
1584
- proxy = ensureSingleOrNone((_e = cfg["https-proxy"]) !== null && _e !== void 0 ? _e : cfg["proxy"]);
1585
- noProxy = (_f = cfg["noproxy"]) !== null && _f !== void 0 ? _f : cfg["no-proxy"];
1586
+ proxy = ensureSingleOrNone((_a = cfg["https-proxy"]) !== null && _a !== void 0 ? _a : cfg["proxy"]);
1587
+ noProxy = (_b = cfg["noproxy"]) !== null && _b !== void 0 ? _b : cfg["no-proxy"];
1586
1588
  strictSSL = maybeBoolean(ensureSingleOrNone(cfg["strict-ssl"]));
1587
1589
  cert = cfg["cert"];
1588
- ca = ensureArray((_g = cfg["ca"]) !== null && _g !== void 0 ? _g : cfg["ca[]"]);
1590
+ ca = ensureArray((_c = cfg["ca"]) !== null && _c !== void 0 ? _c : cfg["ca[]"]);
1589
1591
  cafile = ensureSingleOrNone(cfg["cafile"]);
1590
1592
  if (!(typeof cafile !== "undefined" && cafile !== "null")) return [3 /*break*/, 3];
1591
- _b = (_a = ca.push).apply;
1592
- _c = [ca];
1593
- _d = [[]];
1593
+ _e = (_d = ca.push).apply;
1594
+ _f = [ca];
1595
+ _g = [[]];
1594
1596
  return [4 /*yield*/, (function () { return __awaiter(_this, void 0, void 0, function () {
1595
1597
  function chunks(arr, size) {
1596
1598
  if (size === void 0) { size = 2; }
@@ -1609,7 +1611,7 @@ function getProxyFetchOptions(params) {
1609
1611
  });
1610
1612
  }); })()];
1611
1613
  case 2:
1612
- _b.apply(_a, _c.concat([__spreadArray.apply(void 0, _d.concat([__read.apply(void 0, [(_h.sent())]), false]))]));
1614
+ _e.apply(_d, _f.concat([__spreadArray.apply(void 0, _g.concat([__read.apply(void 0, [(_h.sent())]), false]))]));
1613
1615
  _h.label = 3;
1614
1616
  case 3: return [2 /*return*/, {
1615
1617
  proxy: proxy,
@@ -2292,7 +2294,9 @@ var fs = __importStar(__nccwpck_require__(7147));
2292
2294
  function getNpmWorkspaceRootDirPath(params) {
2293
2295
  var reactAppRootDirPath = params.reactAppRootDirPath, dependencyExpected = params.dependencyExpected;
2294
2296
  var npmWorkspaceRootDirPath = (function callee(depth) {
2297
+ var e_1, _a;
2295
2298
  var cwd = (0, path_1.resolve)(path_1.join.apply(void 0, __spreadArray([], __read(__spreadArray([reactAppRootDirPath], __read(Array(depth).fill("..")), false)), false)));
2299
+ (0, assert_1.assert)(cwd !== path_1.sep, "NPM workspace not found");
2296
2300
  try {
2297
2301
  child_process.execSync("npm config get", {
2298
2302
  cwd: cwd,
@@ -2301,44 +2305,42 @@ function getNpmWorkspaceRootDirPath(params) {
2301
2305
  }
2302
2306
  catch (error) {
2303
2307
  if (String(error).includes("ENOWORKSPACES")) {
2304
- (0, assert_1.assert)(cwd !== path_1.sep, "NPM workspace not found");
2305
2308
  return callee(depth + 1);
2306
2309
  }
2307
2310
  throw error;
2308
2311
  }
2309
- var isExpectedDependencyFound = (function () {
2310
- var e_1, _a;
2311
- var packageJsonFilePath = (0, path_1.join)(cwd, "package.json");
2312
- (0, assert_1.assert)(fs.existsSync(packageJsonFilePath));
2313
- var parsedPackageJson = JSON.parse(fs.readFileSync(packageJsonFilePath).toString("utf8"));
2314
- var isExpectedDependencyFound = false;
2315
- try {
2316
- for (var _b = __values([
2317
- "dependencies",
2318
- "devDependencies"
2319
- ]), _c = _b.next(); !_c.done; _c = _b.next()) {
2320
- var dependenciesOrDevDependencies = _c.value;
2321
- var dependencies = parsedPackageJson[dependenciesOrDevDependencies];
2322
- if (dependencies === undefined) {
2323
- continue;
2324
- }
2325
- (0, assert_1.assert)(dependencies instanceof Object);
2326
- if (dependencies[dependencyExpected] === undefined) {
2327
- continue;
2328
- }
2329
- isExpectedDependencyFound = true;
2312
+ var packageJsonFilePath = (0, path_1.join)(cwd, "package.json");
2313
+ if (!fs.existsSync(packageJsonFilePath)) {
2314
+ return callee(depth + 1);
2315
+ }
2316
+ (0, assert_1.assert)(fs.existsSync(packageJsonFilePath));
2317
+ var parsedPackageJson = JSON.parse(fs.readFileSync(packageJsonFilePath).toString("utf8"));
2318
+ var isExpectedDependencyFound = false;
2319
+ try {
2320
+ for (var _b = __values([
2321
+ "dependencies",
2322
+ "devDependencies"
2323
+ ]), _c = _b.next(); !_c.done; _c = _b.next()) {
2324
+ var dependenciesOrDevDependencies = _c.value;
2325
+ var dependencies = parsedPackageJson[dependenciesOrDevDependencies];
2326
+ if (dependencies === undefined) {
2327
+ continue;
2330
2328
  }
2331
- }
2332
- catch (e_1_1) { e_1 = { error: e_1_1 }; }
2333
- finally {
2334
- try {
2335
- if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
2329
+ (0, assert_1.assert)(dependencies instanceof Object);
2330
+ if (dependencies[dependencyExpected] === undefined) {
2331
+ continue;
2336
2332
  }
2337
- finally { if (e_1) throw e_1.error; }
2333
+ isExpectedDependencyFound = true;
2334
+ }
2335
+ }
2336
+ catch (e_1_1) { e_1 = { error: e_1_1 }; }
2337
+ finally {
2338
+ try {
2339
+ if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
2338
2340
  }
2339
- return { isExpectedDependencyFound: isExpectedDependencyFound };
2340
- })().isExpectedDependencyFound;
2341
- if (!isExpectedDependencyFound) {
2341
+ finally { if (e_1) throw e_1.error; }
2342
+ }
2343
+ if (!isExpectedDependencyFound && parsedPackageJson.name !== dependencyExpected) {
2342
2344
  return callee(depth + 1);
2343
2345
  }
2344
2346
  return cwd;
@@ -1,19 +0,0 @@
1
- import type { DeepPartial } from "../../tools/DeepPartial";
2
- import type { ExtendKcContext } from "./getKcContextFromWindow";
3
- export declare function createGetKcContext<KcContextExtension extends {
4
- pageId: string;
5
- } = never>(params?: {
6
- mockData?: readonly DeepPartial<ExtendKcContext<KcContextExtension>>[];
7
- mockProperties?: Record<string, string>;
8
- }): {
9
- getKcContext: <PageId extends ExtendKcContext<KcContextExtension>["pageId"] | undefined = undefined>(params?: {
10
- mockPageId?: PageId;
11
- storyPartialKcContext?: DeepPartial<Extract<ExtendKcContext<KcContextExtension>, {
12
- pageId: PageId;
13
- }>>;
14
- }) => {
15
- kcContext: PageId extends undefined ? ExtendKcContext<KcContextExtension> | undefined : Extract<ExtendKcContext<KcContextExtension>, {
16
- pageId: PageId;
17
- }>;
18
- };
19
- };