@openedx/frontend-base 1.0.0-alpha.4 → 1.0.0-alpha.40

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 (813) hide show
  1. package/README.md +27 -0
  2. package/{index.ts → dist/index.d.ts} +0 -3
  3. package/dist/index.js +4 -0
  4. package/dist/index.js.map +1 -0
  5. package/dist/runtime/analytics/MockAnalyticsService.d.ts +50 -0
  6. package/dist/runtime/analytics/MockAnalyticsService.js +64 -0
  7. package/dist/runtime/analytics/MockAnalyticsService.js.map +1 -0
  8. package/dist/runtime/analytics/SegmentAnalyticsService.d.ts +64 -0
  9. package/dist/runtime/analytics/SegmentAnalyticsService.js +218 -0
  10. package/dist/runtime/analytics/SegmentAnalyticsService.js.map +1 -0
  11. package/dist/runtime/analytics/index.d.ts +3 -0
  12. package/dist/runtime/analytics/index.js +4 -0
  13. package/dist/runtime/analytics/index.js.map +1 -0
  14. package/dist/runtime/analytics/interface.d.ts +53 -0
  15. package/{runtime → dist/runtime}/analytics/interface.js +26 -38
  16. package/dist/runtime/analytics/interface.js.map +1 -0
  17. package/dist/runtime/auth/AxiosCsrfTokenService.d.ts +10 -0
  18. package/dist/runtime/auth/AxiosCsrfTokenService.js +64 -0
  19. package/dist/runtime/auth/AxiosCsrfTokenService.js.map +1 -0
  20. package/dist/runtime/auth/AxiosJwtAuthService.d.ts +182 -0
  21. package/dist/runtime/auth/AxiosJwtAuthService.js +339 -0
  22. package/dist/runtime/auth/AxiosJwtAuthService.js.map +1 -0
  23. package/dist/runtime/auth/AxiosJwtTokenService.d.ts +16 -0
  24. package/dist/runtime/auth/AxiosJwtTokenService.js +130 -0
  25. package/dist/runtime/auth/AxiosJwtTokenService.js.map +1 -0
  26. package/dist/runtime/auth/LocalForageCache.d.ts +7 -0
  27. package/dist/runtime/auth/LocalForageCache.js +78 -0
  28. package/dist/runtime/auth/LocalForageCache.js.map +1 -0
  29. package/dist/runtime/auth/MockAuthService.d.ts +209 -0
  30. package/dist/runtime/auth/MockAuthService.js +256 -0
  31. package/dist/runtime/auth/MockAuthService.js.map +1 -0
  32. package/dist/runtime/auth/index.d.ts +3 -0
  33. package/dist/runtime/auth/index.js +4 -0
  34. package/dist/runtime/auth/index.js.map +1 -0
  35. package/dist/runtime/auth/interceptors/createCsrfTokenProviderInterceptor.d.ts +2 -0
  36. package/dist/runtime/auth/interceptors/createCsrfTokenProviderInterceptor.js +42 -0
  37. package/dist/runtime/auth/interceptors/createCsrfTokenProviderInterceptor.js.map +1 -0
  38. package/dist/runtime/auth/interceptors/createJwtTokenProviderInterceptor.d.ts +2 -0
  39. package/dist/runtime/auth/interceptors/createJwtTokenProviderInterceptor.js +40 -0
  40. package/dist/runtime/auth/interceptors/createJwtTokenProviderInterceptor.js.map +1 -0
  41. package/dist/runtime/auth/interceptors/createProcessAxiosRequestErrorInterceptor.d.ts +2 -0
  42. package/dist/runtime/auth/interceptors/createProcessAxiosRequestErrorInterceptor.js +26 -0
  43. package/dist/runtime/auth/interceptors/createProcessAxiosRequestErrorInterceptor.js.map +1 -0
  44. package/dist/runtime/auth/interceptors/createRetryInterceptor.d.ts +3 -0
  45. package/dist/runtime/auth/interceptors/createRetryInterceptor.js +67 -0
  46. package/dist/runtime/auth/interceptors/createRetryInterceptor.js.map +1 -0
  47. package/dist/runtime/auth/interface.d.ts +133 -0
  48. package/{runtime → dist/runtime}/auth/interface.js +65 -72
  49. package/dist/runtime/auth/interface.js.map +1 -0
  50. package/dist/runtime/auth/utils.d.ts +13 -0
  51. package/dist/runtime/auth/utils.js +66 -0
  52. package/dist/runtime/auth/utils.js.map +1 -0
  53. package/dist/runtime/babel.config.d.ts +2 -0
  54. package/{runtime → dist/runtime}/babel.config.js +2 -1
  55. package/dist/runtime/babel.config.js.map +1 -0
  56. package/{runtime/config/index.ts → dist/runtime/config/index.d.ts} +45 -124
  57. package/dist/runtime/config/index.js +359 -0
  58. package/dist/runtime/config/index.js.map +1 -0
  59. package/dist/runtime/constants.d.ts +57 -0
  60. package/{runtime/constants.ts → dist/runtime/constants.js} +1 -11
  61. package/dist/runtime/constants.js.map +1 -0
  62. package/dist/runtime/i18n/index.d.ts +3 -0
  63. package/{runtime → dist/runtime}/i18n/index.js +4 -44
  64. package/dist/runtime/i18n/index.js.map +1 -0
  65. package/dist/runtime/i18n/injectIntlWithShim.d.ts +11 -0
  66. package/dist/runtime/i18n/injectIntlWithShim.js +45 -0
  67. package/dist/runtime/i18n/injectIntlWithShim.js.map +1 -0
  68. package/dist/runtime/i18n/lib.d.ts +113 -0
  69. package/dist/runtime/i18n/lib.js +223 -0
  70. package/dist/runtime/i18n/lib.js.map +1 -0
  71. package/dist/runtime/index.d.ts +14 -0
  72. package/dist/runtime/index.js +15 -0
  73. package/dist/runtime/index.js.map +1 -0
  74. package/dist/runtime/initialize.d.ts +87 -0
  75. package/dist/runtime/initialize.js +305 -0
  76. package/dist/runtime/initialize.js.map +1 -0
  77. package/dist/runtime/jest.config.d.ts +16 -0
  78. package/dist/runtime/jest.config.js +34 -0
  79. package/dist/runtime/jest.config.js.map +1 -0
  80. package/dist/runtime/logging/MockLoggingService.d.ts +28 -0
  81. package/dist/runtime/logging/MockLoggingService.js +31 -0
  82. package/dist/runtime/logging/MockLoggingService.js.map +1 -0
  83. package/dist/runtime/logging/NewRelicLoggingService.d.ts +67 -0
  84. package/dist/runtime/logging/NewRelicLoggingService.js +175 -0
  85. package/dist/runtime/logging/NewRelicLoggingService.js.map +1 -0
  86. package/{runtime/logging/index.ts → dist/runtime/logging/index.d.ts} +1 -7
  87. package/dist/runtime/logging/index.js +4 -0
  88. package/dist/runtime/logging/index.js.map +1 -0
  89. package/dist/runtime/logging/interface.d.ts +38 -0
  90. package/{runtime → dist/runtime}/logging/interface.js +16 -26
  91. package/dist/runtime/logging/interface.js.map +1 -0
  92. package/dist/runtime/logging/types.d.ts +4 -0
  93. package/dist/runtime/logging/types.js +2 -0
  94. package/dist/runtime/logging/types.js.map +1 -0
  95. package/dist/runtime/react/AuthenticatedPageRoute.d.ts +30 -0
  96. package/{runtime/react/AuthenticatedPageRoute.jsx → dist/runtime/react/AuthenticatedPageRoute.js} +13 -18
  97. package/dist/runtime/react/AuthenticatedPageRoute.js.map +1 -0
  98. package/dist/runtime/react/CombinedAppProvider.d.ts +6 -0
  99. package/dist/runtime/react/CombinedAppProvider.js +24 -0
  100. package/dist/runtime/react/CombinedAppProvider.js.map +1 -0
  101. package/dist/runtime/react/CurrentAppContext.d.ts +20 -0
  102. package/{runtime/react/CurrentAppContext.tsx → dist/runtime/react/CurrentAppContext.js} +3 -7
  103. package/dist/runtime/react/CurrentAppContext.js.map +1 -0
  104. package/dist/runtime/react/CurrentAppProvider.d.ts +23 -0
  105. package/dist/runtime/react/CurrentAppProvider.js +33 -0
  106. package/dist/runtime/react/CurrentAppProvider.js.map +1 -0
  107. package/dist/runtime/react/Divider.d.ts +1 -0
  108. package/dist/runtime/react/Divider.js +5 -0
  109. package/dist/runtime/react/Divider.js.map +1 -0
  110. package/dist/runtime/react/ErrorBoundary.d.ts +32 -0
  111. package/dist/runtime/react/ErrorBoundary.js +40 -0
  112. package/dist/runtime/react/ErrorBoundary.js.map +1 -0
  113. package/dist/runtime/react/ErrorPage.d.ts +17 -0
  114. package/dist/runtime/react/ErrorPage.js +29 -0
  115. package/dist/runtime/react/ErrorPage.js.map +1 -0
  116. package/dist/runtime/react/LoginRedirect.d.ts +8 -0
  117. package/{runtime/react/LoginRedirect.jsx → dist/runtime/react/LoginRedirect.js} +5 -5
  118. package/dist/runtime/react/LoginRedirect.js.map +1 -0
  119. package/dist/runtime/react/NotFoundPage.d.ts +2 -0
  120. package/dist/runtime/react/NotFoundPage.js +14 -0
  121. package/dist/runtime/react/NotFoundPage.js.map +1 -0
  122. package/dist/runtime/react/PageWrap.d.ts +8 -0
  123. package/{runtime/react/PageWrap.jsx → dist/runtime/react/PageWrap.js} +7 -10
  124. package/dist/runtime/react/PageWrap.js.map +1 -0
  125. package/dist/runtime/react/SiteContext.d.ts +24 -0
  126. package/{runtime/react/SiteContext.tsx → dist/runtime/react/SiteContext.js} +5 -11
  127. package/dist/runtime/react/SiteContext.js.map +1 -0
  128. package/dist/runtime/react/SiteProvider.d.ts +29 -0
  129. package/dist/runtime/react/SiteProvider.js +69 -0
  130. package/dist/runtime/react/SiteProvider.js.map +1 -0
  131. package/dist/runtime/react/constants.d.ts +3 -0
  132. package/dist/runtime/react/constants.js +4 -0
  133. package/dist/runtime/react/constants.js.map +1 -0
  134. package/dist/runtime/react/hooks/index.d.ts +7 -0
  135. package/dist/runtime/react/hooks/index.js +8 -0
  136. package/dist/runtime/react/hooks/index.js.map +1 -0
  137. package/dist/runtime/react/hooks/theme/index.d.ts +2 -0
  138. package/dist/runtime/react/hooks/theme/index.js +3 -0
  139. package/dist/runtime/react/hooks/theme/index.js.map +1 -0
  140. package/dist/runtime/react/hooks/theme/useTheme.d.ts +35 -0
  141. package/dist/runtime/react/hooks/theme/useTheme.js +153 -0
  142. package/dist/runtime/react/hooks/theme/useTheme.js.map +1 -0
  143. package/dist/runtime/react/hooks/theme/useThemeConfig.d.ts +16 -0
  144. package/dist/runtime/react/hooks/theme/useThemeConfig.js +29 -0
  145. package/dist/runtime/react/hooks/theme/useThemeConfig.js.map +1 -0
  146. package/dist/runtime/react/hooks/theme/useThemeCore.d.ts +10 -0
  147. package/dist/runtime/react/hooks/theme/useThemeCore.js +40 -0
  148. package/dist/runtime/react/hooks/theme/useThemeCore.js.map +1 -0
  149. package/dist/runtime/react/hooks/theme/useThemeVariants.d.ts +17 -0
  150. package/dist/runtime/react/hooks/theme/useThemeVariants.js +90 -0
  151. package/dist/runtime/react/hooks/theme/useThemeVariants.js.map +1 -0
  152. package/dist/runtime/react/hooks/theme/useTrackColorSchemeChoice.d.ts +8 -0
  153. package/dist/runtime/react/hooks/theme/useTrackColorSchemeChoice.js +30 -0
  154. package/dist/runtime/react/hooks/theme/useTrackColorSchemeChoice.js.map +1 -0
  155. package/dist/runtime/react/hooks/theme/utils.d.ts +6 -0
  156. package/dist/runtime/react/hooks/theme/utils.js +11 -0
  157. package/dist/runtime/react/hooks/theme/utils.js.map +1 -0
  158. package/dist/runtime/react/hooks/useActiveRoles.d.ts +2 -0
  159. package/dist/runtime/react/hooks/useActiveRoles.js +13 -0
  160. package/dist/runtime/react/hooks/useActiveRoles.js.map +1 -0
  161. package/dist/runtime/react/hooks/useActiveRouteRoleWatcher.d.ts +2 -0
  162. package/dist/runtime/react/hooks/useActiveRouteRoleWatcher.js +28 -0
  163. package/dist/runtime/react/hooks/useActiveRouteRoleWatcher.js.map +1 -0
  164. package/dist/runtime/react/hooks/useAppConfig.d.ts +2 -0
  165. package/dist/runtime/react/hooks/useAppConfig.js +8 -0
  166. package/dist/runtime/react/hooks/useAppConfig.js.map +1 -0
  167. package/dist/runtime/react/hooks/useAuthenticatedUser.d.ts +2 -0
  168. package/dist/runtime/react/hooks/useAuthenticatedUser.js +8 -0
  169. package/dist/runtime/react/hooks/useAuthenticatedUser.js.map +1 -0
  170. package/dist/runtime/react/hooks/useSiteConfig.d.ts +2 -0
  171. package/dist/runtime/react/hooks/useSiteConfig.js +8 -0
  172. package/dist/runtime/react/hooks/useSiteConfig.js.map +1 -0
  173. package/dist/runtime/react/hooks/useSiteEvent.d.ts +12 -0
  174. package/dist/runtime/react/hooks/useSiteEvent.js +22 -0
  175. package/dist/runtime/react/hooks/useSiteEvent.js.map +1 -0
  176. package/{runtime/react/index.ts → dist/runtime/react/index.d.ts} +1 -1
  177. package/dist/runtime/react/index.js +20 -0
  178. package/dist/runtime/react/index.js.map +1 -0
  179. package/dist/runtime/react/reducers.d.ts +11 -0
  180. package/dist/runtime/react/reducers.js +28 -0
  181. package/dist/runtime/react/reducers.js.map +1 -0
  182. package/dist/runtime/routing/authenticatedLoader.d.ts +2 -0
  183. package/dist/runtime/routing/authenticatedLoader.js +27 -0
  184. package/dist/runtime/routing/authenticatedLoader.js.map +1 -0
  185. package/dist/runtime/routing/index.d.ts +2 -0
  186. package/dist/runtime/routing/index.js +3 -0
  187. package/dist/runtime/routing/index.js.map +1 -0
  188. package/dist/runtime/routing/utils.d.ts +4 -0
  189. package/dist/runtime/routing/utils.js +43 -0
  190. package/dist/runtime/routing/utils.js.map +1 -0
  191. package/dist/runtime/scripts/index.d.ts +1 -0
  192. package/dist/runtime/scripts/index.js +14 -0
  193. package/dist/runtime/scripts/index.js.map +1 -0
  194. package/dist/runtime/setupTest.d.ts +1 -0
  195. package/dist/runtime/setupTest.js +12 -0
  196. package/dist/runtime/setupTest.js.map +1 -0
  197. package/dist/runtime/slots/Slot.d.ts +10 -0
  198. package/dist/runtime/slots/Slot.js +35 -0
  199. package/dist/runtime/slots/Slot.js.map +1 -0
  200. package/dist/runtime/slots/SlotContext.d.ts +8 -0
  201. package/dist/runtime/slots/SlotContext.js +7 -0
  202. package/dist/runtime/slots/SlotContext.js.map +1 -0
  203. package/dist/runtime/slots/hooks.d.ts +13 -0
  204. package/dist/runtime/slots/hooks.js +29 -0
  205. package/dist/runtime/slots/hooks.js.map +1 -0
  206. package/dist/runtime/slots/index.js +7 -0
  207. package/dist/runtime/slots/index.js.map +1 -0
  208. package/dist/runtime/slots/layout/DefaultSlotLayout.d.ts +1 -0
  209. package/dist/runtime/slots/layout/DefaultSlotLayout.js +7 -0
  210. package/dist/runtime/slots/layout/DefaultSlotLayout.js.map +1 -0
  211. package/dist/runtime/slots/layout/hooks.d.ts +10 -0
  212. package/dist/runtime/slots/layout/hooks.js +57 -0
  213. package/dist/runtime/slots/layout/hooks.js.map +1 -0
  214. package/dist/runtime/slots/layout/index.js +5 -0
  215. package/dist/runtime/slots/layout/index.js.map +1 -0
  216. package/{runtime/slots/layout/types.ts → dist/runtime/slots/layout/types.d.ts} +10 -25
  217. package/dist/runtime/slots/layout/types.js +12 -0
  218. package/dist/runtime/slots/layout/types.js.map +1 -0
  219. package/dist/runtime/slots/layout/utils.d.ts +5 -0
  220. package/dist/runtime/slots/layout/utils.js +11 -0
  221. package/dist/runtime/slots/layout/utils.js.map +1 -0
  222. package/{runtime/slots/types.ts → dist/runtime/slots/types.d.ts} +6 -12
  223. package/dist/runtime/slots/types.js +7 -0
  224. package/dist/runtime/slots/types.js.map +1 -0
  225. package/dist/runtime/slots/utils.d.ts +3 -0
  226. package/dist/runtime/slots/utils.js +66 -0
  227. package/dist/runtime/slots/utils.js.map +1 -0
  228. package/dist/runtime/slots/widget/WidgetContext.d.ts +6 -0
  229. package/dist/runtime/slots/widget/WidgetContext.js +8 -0
  230. package/dist/runtime/slots/widget/WidgetContext.js.map +1 -0
  231. package/dist/runtime/slots/widget/WidgetProvider.d.ts +9 -0
  232. package/dist/runtime/slots/widget/WidgetProvider.js +18 -0
  233. package/dist/runtime/slots/widget/WidgetProvider.js.map +1 -0
  234. package/dist/runtime/slots/widget/hooks.d.ts +13 -0
  235. package/dist/runtime/slots/widget/hooks.js +104 -0
  236. package/dist/runtime/slots/widget/hooks.js.map +1 -0
  237. package/dist/runtime/slots/widget/iframe/IFrameContentWrapper.d.ts +10 -0
  238. package/dist/runtime/slots/widget/iframe/IFrameContentWrapper.js +42 -0
  239. package/dist/runtime/slots/widget/iframe/IFrameContentWrapper.js.map +1 -0
  240. package/dist/runtime/slots/widget/iframe/IFrameContentWrapper.messages.d.ts +13 -0
  241. package/dist/runtime/slots/widget/iframe/IFrameContentWrapper.messages.js +15 -0
  242. package/dist/runtime/slots/widget/iframe/IFrameContentWrapper.messages.js.map +1 -0
  243. package/dist/runtime/slots/widget/iframe/IFrameWidget.d.ts +6 -0
  244. package/dist/runtime/slots/widget/iframe/IFrameWidget.js +32 -0
  245. package/dist/runtime/slots/widget/iframe/IFrameWidget.js.map +1 -0
  246. package/dist/runtime/slots/widget/iframe/constants.d.ts +15 -0
  247. package/{runtime/slots/widget/iframe/constants.ts → dist/runtime/slots/widget/iframe/constants.js} +2 -4
  248. package/dist/runtime/slots/widget/iframe/constants.js.map +1 -0
  249. package/dist/runtime/slots/widget/iframe/hooks.d.ts +64 -0
  250. package/dist/runtime/slots/widget/iframe/hooks.js +144 -0
  251. package/dist/runtime/slots/widget/iframe/hooks.js.map +1 -0
  252. package/{runtime/slots/widget/iframe/index.ts → dist/runtime/slots/widget/iframe/index.d.ts} +1 -4
  253. package/dist/runtime/slots/widget/iframe/index.js +3 -0
  254. package/dist/runtime/slots/widget/iframe/index.js.map +1 -0
  255. package/{runtime/slots/widget/iframe/types.ts → dist/runtime/slots/widget/iframe/types.d.ts} +2 -4
  256. package/dist/runtime/slots/widget/iframe/types.js +3 -0
  257. package/dist/runtime/slots/widget/iframe/types.js.map +1 -0
  258. package/dist/runtime/slots/widget/index.js +6 -0
  259. package/dist/runtime/slots/widget/index.js.map +1 -0
  260. package/{runtime/slots/widget/types.ts → dist/runtime/slots/widget/types.d.ts} +58 -84
  261. package/dist/runtime/slots/widget/types.js +41 -0
  262. package/dist/runtime/slots/widget/types.js.map +1 -0
  263. package/dist/runtime/slots/widget/utils.d.ts +22 -0
  264. package/dist/runtime/slots/widget/utils.js +184 -0
  265. package/dist/runtime/slots/widget/utils.js.map +1 -0
  266. package/{runtime/subscriptions.ts → dist/runtime/subscriptions.d.ts} +5 -41
  267. package/dist/runtime/subscriptions.js +48 -0
  268. package/dist/runtime/subscriptions.js.map +1 -0
  269. package/{runtime/testing/index.ts → dist/runtime/testing/index.d.ts} +0 -1
  270. package/dist/runtime/testing/index.js +9 -0
  271. package/dist/runtime/testing/index.js.map +1 -0
  272. package/dist/runtime/testing/initializeMockApp.d.ts +46 -0
  273. package/{runtime/testing/initializeMockApp.ts → dist/runtime/testing/initializeMockApp.js} +26 -36
  274. package/dist/runtime/testing/initializeMockApp.js.map +1 -0
  275. package/dist/runtime/testing/mockMessages.d.ts +22 -0
  276. package/dist/runtime/testing/mockMessages.js +23 -0
  277. package/dist/runtime/testing/mockMessages.js.map +1 -0
  278. package/dist/runtime/utils.d.ts +95 -0
  279. package/{runtime → dist/runtime}/utils.js +55 -70
  280. package/dist/runtime/utils.js.map +1 -0
  281. package/dist/shell/DefaultLayout.d.ts +1 -0
  282. package/dist/shell/DefaultLayout.js +7 -0
  283. package/dist/shell/DefaultLayout.js.map +1 -0
  284. package/dist/shell/DefaultMain.d.ts +1 -0
  285. package/dist/shell/DefaultMain.js +6 -0
  286. package/dist/shell/DefaultMain.js.map +1 -0
  287. package/dist/shell/Logo.d.ts +6 -0
  288. package/dist/shell/Logo.js +16 -0
  289. package/dist/shell/Logo.js.map +1 -0
  290. package/dist/shell/Shell.d.ts +1 -0
  291. package/dist/shell/Shell.js +10 -0
  292. package/dist/shell/Shell.js.map +1 -0
  293. package/dist/shell/Shell.messages.d.ts +58 -0
  294. package/dist/shell/Shell.messages.js +60 -0
  295. package/dist/shell/Shell.messages.js.map +1 -0
  296. package/dist/shell/app.d.ts +3 -0
  297. package/dist/shell/app.js +43 -0
  298. package/dist/shell/app.js.map +1 -0
  299. package/dist/shell/babel.config.d.ts +2 -0
  300. package/{shell → dist/shell}/babel.config.js +2 -1
  301. package/dist/shell/babel.config.js.map +1 -0
  302. package/dist/shell/constants.d.ts +2 -0
  303. package/dist/shell/constants.js +3 -0
  304. package/dist/shell/constants.js.map +1 -0
  305. package/dist/shell/dev/devFooter/app.d.ts +3 -0
  306. package/dist/shell/dev/devFooter/app.js +36 -0
  307. package/dist/shell/dev/devFooter/app.js.map +1 -0
  308. package/dist/shell/dev/devFooter/index.js +2 -0
  309. package/dist/shell/dev/devFooter/index.js.map +1 -0
  310. package/dist/shell/dev/devHeader/BarContext.d.ts +7 -0
  311. package/dist/shell/dev/devHeader/BarContext.js +8 -0
  312. package/dist/shell/dev/devHeader/BarContext.js.map +1 -0
  313. package/dist/shell/dev/devHeader/BarLink.d.ts +1 -0
  314. package/dist/shell/dev/devHeader/BarLink.js +10 -0
  315. package/dist/shell/dev/devHeader/BarLink.js.map +1 -0
  316. package/dist/shell/dev/devHeader/BarProvider.d.ts +6 -0
  317. package/dist/shell/dev/devHeader/BarProvider.js +16 -0
  318. package/dist/shell/dev/devHeader/BarProvider.js.map +1 -0
  319. package/dist/shell/dev/devHeader/CoursesLink.d.ts +1 -0
  320. package/dist/shell/dev/devHeader/CoursesLink.js +10 -0
  321. package/dist/shell/dev/devHeader/CoursesLink.js.map +1 -0
  322. package/dist/shell/dev/devHeader/FooContext.d.ts +7 -0
  323. package/dist/shell/dev/devHeader/FooContext.js +8 -0
  324. package/dist/shell/dev/devHeader/FooContext.js.map +1 -0
  325. package/dist/shell/dev/devHeader/FooLink.d.ts +1 -0
  326. package/dist/shell/dev/devHeader/FooLink.js +10 -0
  327. package/dist/shell/dev/devHeader/FooLink.js.map +1 -0
  328. package/dist/shell/dev/devHeader/FooProvider.d.ts +6 -0
  329. package/dist/shell/dev/devHeader/FooProvider.js +16 -0
  330. package/dist/shell/dev/devHeader/FooProvider.js.map +1 -0
  331. package/dist/shell/dev/devHeader/app.d.ts +3 -0
  332. package/dist/shell/dev/devHeader/app.js +34 -0
  333. package/dist/shell/dev/devHeader/app.js.map +1 -0
  334. package/dist/shell/dev/devHeader/index.js +2 -0
  335. package/dist/shell/dev/devHeader/index.js.map +1 -0
  336. package/dist/shell/dev/devHeader/providers.d.ts +3 -0
  337. package/dist/shell/dev/devHeader/providers.js +8 -0
  338. package/dist/shell/dev/devHeader/providers.js.map +1 -0
  339. package/dist/shell/dev/devHome/HomePage.d.ts +1 -0
  340. package/dist/shell/dev/devHome/HomePage.js +14 -0
  341. package/dist/shell/dev/devHome/HomePage.js.map +1 -0
  342. package/dist/shell/dev/devHome/app.d.ts +3 -0
  343. package/dist/shell/dev/devHome/app.js +15 -0
  344. package/dist/shell/dev/devHome/app.js.map +1 -0
  345. package/dist/shell/dev/devHome/index.js +2 -0
  346. package/dist/shell/dev/devHome/index.js.map +1 -0
  347. package/dist/shell/dev/devHome/messages.d.ts +8 -0
  348. package/dist/shell/dev/devHome/messages.js +10 -0
  349. package/dist/shell/dev/devHome/messages.js.map +1 -0
  350. package/dist/shell/dev/devUser/app.d.ts +3 -0
  351. package/dist/shell/dev/devUser/app.js +22 -0
  352. package/dist/shell/dev/devUser/app.js.map +1 -0
  353. package/dist/shell/dev/devUser/index.js +2 -0
  354. package/dist/shell/dev/devUser/index.js.map +1 -0
  355. package/dist/shell/dev/index.js +6 -0
  356. package/dist/shell/dev/index.js.map +1 -0
  357. package/dist/shell/dev/slotShowcase/HorizontalSlotLayout.d.ts +1 -0
  358. package/dist/shell/dev/slotShowcase/HorizontalSlotLayout.js +8 -0
  359. package/dist/shell/dev/slotShowcase/HorizontalSlotLayout.js.map +1 -0
  360. package/dist/shell/dev/slotShowcase/LayoutWithOptions.d.ts +1 -0
  361. package/dist/shell/dev/slotShowcase/LayoutWithOptions.js +9 -0
  362. package/dist/shell/dev/slotShowcase/LayoutWithOptions.js.map +1 -0
  363. package/dist/shell/dev/slotShowcase/SlotShowcase.scss +50 -0
  364. package/dist/shell/dev/slotShowcase/SlotShowcasePage.d.ts +2 -0
  365. package/dist/shell/dev/slotShowcase/SlotShowcasePage.js +17 -0
  366. package/dist/shell/dev/slotShowcase/SlotShowcasePage.js.map +1 -0
  367. package/dist/shell/dev/slotShowcase/ToggleByRoleLayout.d.ts +1 -0
  368. package/dist/shell/dev/slotShowcase/ToggleByRoleLayout.js +11 -0
  369. package/dist/shell/dev/slotShowcase/ToggleByRoleLayout.js.map +1 -0
  370. package/dist/shell/dev/slotShowcase/WidgetWithOptions.d.ts +1 -0
  371. package/dist/shell/dev/slotShowcase/WidgetWithOptions.js +8 -0
  372. package/dist/shell/dev/slotShowcase/WidgetWithOptions.js.map +1 -0
  373. package/dist/shell/dev/slotShowcase/app.d.ts +3 -0
  374. package/dist/shell/dev/slotShowcase/app.js +372 -0
  375. package/dist/shell/dev/slotShowcase/app.js.map +1 -0
  376. package/dist/shell/dev/slotShowcase/index.js +2 -0
  377. package/dist/shell/dev/slotShowcase/index.js.map +1 -0
  378. package/dist/shell/footer/CenterLinks.d.ts +1 -0
  379. package/dist/shell/footer/CenterLinks.js +7 -0
  380. package/dist/shell/footer/CenterLinks.js.map +1 -0
  381. package/dist/shell/footer/CopyrightNotice.d.ts +10 -0
  382. package/dist/shell/footer/CopyrightNotice.js +10 -0
  383. package/dist/shell/footer/CopyrightNotice.js.map +1 -0
  384. package/dist/shell/footer/Footer.d.ts +1 -0
  385. package/dist/shell/footer/Footer.js +12 -0
  386. package/dist/shell/footer/Footer.js.map +1 -0
  387. package/dist/shell/footer/LabeledLinkColumn.d.ts +1 -0
  388. package/dist/shell/footer/LabeledLinkColumn.js +11 -0
  389. package/dist/shell/footer/LabeledLinkColumn.js.map +1 -0
  390. package/dist/shell/footer/LanguageMenu.d.ts +1 -0
  391. package/dist/shell/footer/LanguageMenu.js +16 -0
  392. package/dist/shell/footer/LanguageMenu.js.map +1 -0
  393. package/dist/shell/footer/LanguageMenuItem.d.ts +8 -0
  394. package/dist/shell/footer/LanguageMenuItem.js +11 -0
  395. package/dist/shell/footer/LanguageMenuItem.js.map +1 -0
  396. package/dist/shell/footer/LeftLinks.d.ts +1 -0
  397. package/dist/shell/footer/LeftLinks.js +7 -0
  398. package/dist/shell/footer/LeftLinks.js.map +1 -0
  399. package/dist/shell/footer/LegalNotices.d.ts +1 -0
  400. package/dist/shell/footer/LegalNotices.js +10 -0
  401. package/dist/shell/footer/LegalNotices.js.map +1 -0
  402. package/dist/shell/footer/PoweredBy.d.ts +1 -0
  403. package/dist/shell/footer/PoweredBy.js +9 -0
  404. package/dist/shell/footer/PoweredBy.js.map +1 -0
  405. package/dist/shell/footer/RevealLinks.d.ts +1 -0
  406. package/dist/shell/footer/RevealLinks.js +16 -0
  407. package/dist/shell/footer/RevealLinks.js.map +1 -0
  408. package/dist/shell/footer/RightLinks.d.ts +1 -0
  409. package/dist/shell/footer/RightLinks.js +7 -0
  410. package/dist/shell/footer/RightLinks.js.map +1 -0
  411. package/dist/shell/footer/app.d.ts +3 -0
  412. package/dist/shell/footer/app.js +59 -0
  413. package/dist/shell/footer/app.js.map +1 -0
  414. package/dist/shell/footer/data/api.d.ts +1 -0
  415. package/dist/shell/footer/data/api.js +45 -0
  416. package/dist/shell/footer/data/api.js.map +1 -0
  417. package/dist/shell/footer/index.js +3 -0
  418. package/dist/shell/footer/index.js.map +1 -0
  419. package/dist/shell/header/AuthenticatedMenu.d.ts +5 -0
  420. package/dist/shell/header/AuthenticatedMenu.js +9 -0
  421. package/dist/shell/header/AuthenticatedMenu.js.map +1 -0
  422. package/dist/shell/header/Header.d.ts +1 -0
  423. package/dist/shell/header/Header.js +8 -0
  424. package/dist/shell/header/Header.js.map +1 -0
  425. package/dist/shell/header/anonymous-menu/AnonymousMenu.d.ts +5 -0
  426. package/dist/shell/header/anonymous-menu/AnonymousMenu.js +7 -0
  427. package/dist/shell/header/anonymous-menu/AnonymousMenu.js.map +1 -0
  428. package/dist/shell/header/anonymous-menu/LoginButton.d.ts +3 -0
  429. package/dist/shell/header/anonymous-menu/LoginButton.js +22 -0
  430. package/dist/shell/header/anonymous-menu/LoginButton.js.map +1 -0
  431. package/dist/shell/header/anonymous-menu/RegisterButton.d.ts +3 -0
  432. package/dist/shell/header/anonymous-menu/RegisterButton.js +22 -0
  433. package/dist/shell/header/anonymous-menu/RegisterButton.js.map +1 -0
  434. package/dist/shell/header/app.d.ts +4 -0
  435. package/dist/shell/header/app.js +132 -0
  436. package/dist/shell/header/app.js.map +1 -0
  437. package/dist/shell/header/app.scss +14 -0
  438. package/dist/shell/header/constants.d.ts +2 -0
  439. package/dist/shell/header/constants.js +3 -0
  440. package/dist/shell/header/constants.js.map +1 -0
  441. package/dist/shell/header/course-navigation-bar/CourseTabsNavigation.d.ts +3 -0
  442. package/dist/shell/header/course-navigation-bar/CourseTabsNavigation.js +62 -0
  443. package/dist/shell/header/course-navigation-bar/CourseTabsNavigation.js.map +1 -0
  444. package/dist/shell/header/course-navigation-bar/course-tabs-navigation.scss +7 -0
  445. package/dist/shell/header/course-navigation-bar/data/service.d.ts +9 -0
  446. package/dist/shell/header/course-navigation-bar/data/service.js +27 -0
  447. package/dist/shell/header/course-navigation-bar/data/service.js.map +1 -0
  448. package/dist/shell/header/course-navigation-bar/messages.d.ts +8 -0
  449. package/dist/shell/header/course-navigation-bar/messages.js +10 -0
  450. package/dist/shell/header/course-navigation-bar/messages.js.map +1 -0
  451. package/dist/shell/header/course-navigation-bar/utils.d.ts +2 -0
  452. package/dist/shell/header/course-navigation-bar/utils.js +27 -0
  453. package/dist/shell/header/course-navigation-bar/utils.js.map +1 -0
  454. package/dist/shell/header/desktop/DesktopLayout.d.ts +1 -0
  455. package/dist/shell/header/desktop/DesktopLayout.js +10 -0
  456. package/dist/shell/header/desktop/DesktopLayout.js.map +1 -0
  457. package/dist/shell/header/desktop/PrimaryNavLinks.d.ts +1 -0
  458. package/dist/shell/header/desktop/PrimaryNavLinks.js +7 -0
  459. package/dist/shell/header/desktop/PrimaryNavLinks.js.map +1 -0
  460. package/dist/shell/header/desktop/SecondaryNavLinks.d.ts +1 -0
  461. package/dist/shell/header/desktop/SecondaryNavLinks.js +7 -0
  462. package/dist/shell/header/desktop/SecondaryNavLinks.js.map +1 -0
  463. package/{shell/header/index.ts → dist/shell/header/index.d.ts} +1 -0
  464. package/dist/shell/header/index.js +4 -0
  465. package/dist/shell/header/index.js.map +1 -0
  466. package/dist/shell/header/mobile/MobileLayout.d.ts +1 -0
  467. package/dist/shell/header/mobile/MobileLayout.js +17 -0
  468. package/dist/shell/header/mobile/MobileLayout.js.map +1 -0
  469. package/dist/shell/header/mobile/MobileNavLinks.d.ts +1 -0
  470. package/dist/shell/header/mobile/MobileNavLinks.js +7 -0
  471. package/dist/shell/header/mobile/MobileNavLinks.js.map +1 -0
  472. package/{shell/index.ts → dist/shell/index.d.ts} +2 -1
  473. package/dist/shell/index.js +9 -0
  474. package/dist/shell/index.js.map +1 -0
  475. package/dist/shell/jest.config.d.ts +15 -0
  476. package/{tools/dist/jest → dist/shell}/jest.config.js +12 -10
  477. package/dist/shell/jest.config.js.map +1 -0
  478. package/dist/shell/layer-order.scss +1 -0
  479. package/dist/shell/menus/LinkMenuItem.d.ts +9 -0
  480. package/dist/shell/menus/LinkMenuItem.js +38 -0
  481. package/dist/shell/menus/LinkMenuItem.js.map +1 -0
  482. package/dist/shell/menus/NavDropdownMenuSlot.d.ts +7 -0
  483. package/dist/shell/menus/NavDropdownMenuSlot.js +14 -0
  484. package/dist/shell/menus/NavDropdownMenuSlot.js.map +1 -0
  485. package/dist/shell/menus/ProfileLinkMenuItem.d.ts +8 -0
  486. package/dist/shell/menus/ProfileLinkMenuItem.js +16 -0
  487. package/dist/shell/menus/ProfileLinkMenuItem.js.map +1 -0
  488. package/dist/shell/menus/data/utils.d.ts +4 -0
  489. package/dist/shell/menus/data/utils.js +13 -0
  490. package/dist/shell/menus/data/utils.js.map +1 -0
  491. package/dist/shell/router/createRouter.d.ts +1 -0
  492. package/dist/shell/router/createRouter.js +26 -0
  493. package/dist/shell/router/createRouter.js.map +1 -0
  494. package/dist/shell/router/getAppRoutes.d.ts +2 -0
  495. package/dist/shell/router/getAppRoutes.js +27 -0
  496. package/dist/shell/router/getAppRoutes.js.map +1 -0
  497. package/dist/shell/setupTest.d.ts +1 -0
  498. package/dist/shell/setupTest.js +12 -0
  499. package/dist/shell/setupTest.js.map +1 -0
  500. package/dist/shell/site.config.dev.d.ts +4 -0
  501. package/dist/shell/site.config.dev.js +43 -0
  502. package/dist/shell/site.config.dev.js.map +1 -0
  503. package/dist/shell/site.d.ts +1 -0
  504. package/dist/shell/site.js +45 -0
  505. package/dist/shell/site.js.map +1 -0
  506. package/dist/shell/style.d.ts +3 -0
  507. package/dist/shell/style.js +10 -0
  508. package/dist/shell/style.js.map +1 -0
  509. package/{shell/app.scss → dist/shell/style.scss} +0 -2
  510. package/dist/tools/babel/babel.config.d.ts +12 -0
  511. package/dist/tools/babel.config.d.ts +2 -0
  512. package/dist/tools/babel.config.js +3 -0
  513. package/dist/tools/cli/commands/serve.d.ts +1 -0
  514. package/dist/tools/cli/commands/translations.d.ts +2 -0
  515. package/dist/tools/cli/commands/translations.js +20 -0
  516. package/dist/tools/cli/openedx.d.ts +2 -0
  517. package/{tools/dist → dist/tools}/cli/openedx.js +33 -8
  518. package/dist/tools/cli/utils/ensureConfigFilenameOption.d.ts +2 -0
  519. package/dist/tools/cli/utils/formatter.d.ts +1 -0
  520. package/dist/tools/cli/utils/formatter.js +3 -0
  521. package/dist/tools/cli/utils/getResolvedConfigPath.d.ts +2 -0
  522. package/dist/tools/cli/utils/prettyPrintTitle.d.ts +1 -0
  523. package/dist/tools/cli/utils/printUsage.d.ts +1 -0
  524. package/{tools/dist → dist/tools}/cli/utils/printUsage.js +8 -0
  525. package/dist/tools/cli/utils/translations/index.d.ts +2 -0
  526. package/dist/tools/cli/utils/translations/index.js +7 -0
  527. package/dist/tools/cli/utils/translations/messagesObject.d.ts +26 -0
  528. package/dist/tools/cli/utils/translations/messagesObject.js +66 -0
  529. package/dist/tools/cli/utils/translations/prepare.d.ts +5 -0
  530. package/dist/tools/cli/utils/translations/prepare.js +98 -0
  531. package/dist/tools/cli/utils/translations/pull.d.ts +6 -0
  532. package/dist/tools/cli/utils/translations/pull.js +102 -0
  533. package/dist/tools/config-helpers/createConfig.d.ts +2 -0
  534. package/dist/tools/config-helpers/createLintConfig.d.ts +2 -0
  535. package/dist/tools/config-helpers/getBaseConfig.d.ts +2 -0
  536. package/dist/tools/defaultConfigPaths.d.ts +8 -0
  537. package/dist/tools/eslint/base.eslint.config.d.ts +3 -0
  538. package/{config → dist/tools}/eslint/base.eslint.config.js +5 -4
  539. package/dist/tools/eslint.config.d.ts +3 -0
  540. package/dist/tools/index.d.ts +3 -0
  541. package/dist/tools/jest/jest.config.d.ts +14 -0
  542. package/dist/tools/jest.config.d.ts +8 -0
  543. package/dist/tools/types.d.ts +20 -0
  544. package/{tools/dist → dist/tools}/types.js +2 -0
  545. package/{tools/dist → dist/tools}/typescript/tsconfig.json +2 -1
  546. package/dist/tools/webpack/common-config/all/getCodeRules.d.ts +2 -0
  547. package/dist/tools/webpack/common-config/all/getFileLoaderRules.d.ts +11 -0
  548. package/dist/tools/webpack/common-config/all/getImageMinimizer.d.ts +5 -0
  549. package/dist/tools/webpack/common-config/all/getStylesheetRule.d.ts +12 -0
  550. package/dist/tools/webpack/common-config/all/getStylesheetRule.js +150 -0
  551. package/dist/tools/webpack/common-config/all/postcssWrapLayer.d.ts +4 -0
  552. package/dist/tools/webpack/common-config/all/postcssWrapLayer.js +32 -0
  553. package/dist/tools/webpack/common-config/dev/getDevServer.d.ts +2 -0
  554. package/{tools/dist → dist/tools}/webpack/common-config/dev/getDevServer.js +3 -5
  555. package/dist/tools/webpack/common-config/index.d.ts +7 -0
  556. package/{config → dist/tools}/webpack/common-config/index.js +3 -1
  557. package/dist/tools/webpack/common-config/site/getHtmlWebpackPlugin.d.ts +2 -0
  558. package/{config → dist/tools}/webpack/common-config/site/getHtmlWebpackPlugin.js +11 -3
  559. package/dist/tools/webpack/common-config/site/getI18nMessagesFallbackPlugin/emptyI18n.d.ts +2 -0
  560. package/{config/webpack/types.js → dist/tools/webpack/common-config/site/getI18nMessagesFallbackPlugin/emptyI18n.js} +1 -0
  561. package/dist/tools/webpack/common-config/site/getI18nMessagesFallbackPlugin/index.d.ts +2 -0
  562. package/dist/tools/webpack/common-config/site/getI18nMessagesFallbackPlugin/index.js +26 -0
  563. package/dist/tools/webpack/plugins/html-webpack-new-relic-plugin/HtmlWebpackNewRelicPlugin.d.ts +16 -0
  564. package/dist/tools/webpack/plugins/html-webpack-new-relic-plugin/index.d.ts +2 -0
  565. package/dist/tools/webpack/plugins/html-webpack-new-relic-plugin/test/fixtures/entry.d.ts +1 -0
  566. package/dist/tools/webpack/utils/getPublicPath.d.ts +1 -0
  567. package/{tools/dist → dist/tools}/webpack/utils/getPublicPath.js +1 -1
  568. package/dist/tools/webpack/utils/getResolvedSiteConfigPath.d.ts +1 -0
  569. package/dist/tools/webpack/utils/getResolvedSiteI18nPath.d.ts +1 -0
  570. package/dist/tools/webpack/utils/getResolvedSiteI18nPath.js +25 -0
  571. package/dist/tools/webpack/webpack.config.build.d.ts +3 -0
  572. package/{config → dist/tools}/webpack/webpack.config.build.js +13 -15
  573. package/dist/tools/webpack/webpack.config.dev.d.ts +3 -0
  574. package/{config → dist/tools}/webpack/webpack.config.dev.js +17 -15
  575. package/dist/tools/webpack/webpack.config.dev.shell.d.ts +3 -0
  576. package/{config → dist/tools}/webpack/webpack.config.dev.shell.js +11 -16
  577. package/dist/types.d.ts +92 -0
  578. package/dist/types.js +7 -0
  579. package/dist/types.js.map +1 -0
  580. package/package.json +46 -26
  581. package/config/tsconfig.json +0 -32
  582. package/config/types.js +0 -23
  583. package/config/webpack/common-config/all/getIgnoreWarnings.js +0 -14
  584. package/config/webpack/common-config/all/getStylesheetRule.js +0 -112
  585. package/config/webpack/common-config/dev/getDevServer.js +0 -38
  586. package/config/webpack/plugins/html-webpack-new-relic-plugin/test/HtmlWebpackNewRelicPlugin.test.js +0 -66
  587. package/config/webpack/plugins/paragon-webpack-plugin/ParagonWebpackPlugin.js +0 -108
  588. package/config/webpack/plugins/paragon-webpack-plugin/index.js +0 -7
  589. package/config/webpack/plugins/paragon-webpack-plugin/utils/assetUtils.js +0 -64
  590. package/config/webpack/plugins/paragon-webpack-plugin/utils/htmlUtils.js +0 -53
  591. package/config/webpack/plugins/paragon-webpack-plugin/utils/index.js +0 -9
  592. package/config/webpack/plugins/paragon-webpack-plugin/utils/paragonStylesheetUtils.js +0 -114
  593. package/config/webpack/plugins/paragon-webpack-plugin/utils/scriptUtils.js +0 -146
  594. package/config/webpack/plugins/paragon-webpack-plugin/utils/stylesheetUtils.js +0 -126
  595. package/config/webpack/plugins/paragon-webpack-plugin/utils/tagUtils.js +0 -57
  596. package/config/webpack/utils/getLocalAliases.js +0 -65
  597. package/config/webpack/utils/getPublicPath.js +0 -6
  598. package/config/webpack/utils/paragonUtils.js +0 -138
  599. package/runtime/__mocks__/file.js +0 -1
  600. package/runtime/__mocks__/svg.js +0 -1
  601. package/runtime/__mocks__/universal-cookie.js +0 -6
  602. package/runtime/analytics/MockAnalyticsService.js +0 -71
  603. package/runtime/analytics/SegmentAnalyticsService.js +0 -243
  604. package/runtime/analytics/index.ts +0 -12
  605. package/runtime/analytics/interface.test.js +0 -242
  606. package/runtime/auth/AxiosCsrfTokenService.js +0 -60
  607. package/runtime/auth/AxiosJwtAuthService.js +0 -363
  608. package/runtime/auth/AxiosJwtAuthService.test.jsx +0 -1076
  609. package/runtime/auth/AxiosJwtTokenService.js +0 -134
  610. package/runtime/auth/LocalForageCache.js +0 -76
  611. package/runtime/auth/MockAuthService.js +0 -278
  612. package/runtime/auth/index.ts +0 -19
  613. package/runtime/auth/interceptors/createCsrfTokenProviderInterceptor.js +0 -36
  614. package/runtime/auth/interceptors/createJwtTokenProviderInterceptor.js +0 -37
  615. package/runtime/auth/interceptors/createProcessAxiosRequestErrorInterceptor.js +0 -20
  616. package/runtime/auth/interceptors/createRetryInterceptor.js +0 -74
  617. package/runtime/auth/interceptors/createRetryInterceptor.test.js +0 -23
  618. package/runtime/auth/utils.js +0 -105
  619. package/runtime/config/getExternalLinkUrl.test.js +0 -76
  620. package/runtime/i18n/injectIntlWithShim.jsx +0 -48
  621. package/runtime/i18n/lib.test.js +0 -230
  622. package/runtime/i18n/lib.ts +0 -272
  623. package/runtime/index.ts +0 -139
  624. package/runtime/initialize.async.function.config.test.js +0 -43
  625. package/runtime/initialize.const.config.test.js +0 -41
  626. package/runtime/initialize.function.config.test.js +0 -41
  627. package/runtime/initialize.js +0 -352
  628. package/runtime/initialize.test.js +0 -356
  629. package/runtime/jest.config.js +0 -32
  630. package/runtime/logging/MockLoggingService.js +0 -31
  631. package/runtime/logging/NewRelicLoggingService.js +0 -184
  632. package/runtime/logging/NewRelicLoggingService.test.js +0 -214
  633. package/runtime/logging/types.ts +0 -4
  634. package/runtime/react/AuthenticatedPageRoute.test.jsx +0 -135
  635. package/runtime/react/CombinedAppProvider.tsx +0 -46
  636. package/runtime/react/CurrentAppProvider.tsx +0 -46
  637. package/runtime/react/Divider.tsx +0 -5
  638. package/runtime/react/ErrorBoundary.jsx +0 -47
  639. package/runtime/react/ErrorBoundary.test.jsx +0 -83
  640. package/runtime/react/ErrorPage.jsx +0 -72
  641. package/runtime/react/SiteProvider.test.jsx +0 -66
  642. package/runtime/react/SiteProvider.tsx +0 -78
  643. package/runtime/react/hooks.test.jsx +0 -104
  644. package/runtime/react/hooks.ts +0 -106
  645. package/runtime/routing/index.ts +0 -1
  646. package/runtime/routing/utils.test.ts +0 -7
  647. package/runtime/routing/utils.ts +0 -34
  648. package/runtime/scripts/GoogleAnalyticsLoader.test.ts +0 -77
  649. package/runtime/scripts/GoogleAnalyticsLoader.ts +0 -59
  650. package/runtime/scripts/index.ts +0 -1
  651. package/runtime/setupTest.js +0 -49
  652. package/runtime/site.config.test.tsx +0 -33
  653. package/runtime/slots/Slot.test.tsx +0 -40
  654. package/runtime/slots/Slot.tsx +0 -32
  655. package/runtime/slots/SlotContext.tsx +0 -8
  656. package/runtime/slots/hooks.ts +0 -35
  657. package/runtime/slots/layout/DefaultSlotLayout.test.tsx +0 -31
  658. package/runtime/slots/layout/DefaultSlotLayout.tsx +0 -9
  659. package/runtime/slots/layout/hooks.test.tsx +0 -178
  660. package/runtime/slots/layout/hooks.ts +0 -65
  661. package/runtime/slots/layout/utils.test.ts +0 -67
  662. package/runtime/slots/layout/utils.ts +0 -14
  663. package/runtime/slots/utils.test.ts +0 -64
  664. package/runtime/slots/utils.ts +0 -78
  665. package/runtime/slots/widget/WidgetContext.tsx +0 -9
  666. package/runtime/slots/widget/WidgetProvider.tsx +0 -30
  667. package/runtime/slots/widget/hooks.ts +0 -105
  668. package/runtime/slots/widget/iframe/IFrameContentWrapper.messages.tsx +0 -16
  669. package/runtime/slots/widget/iframe/IFrameContentWrapper.tsx +0 -84
  670. package/runtime/slots/widget/iframe/IFrameWidget.tsx +0 -59
  671. package/runtime/slots/widget/iframe/hooks.ts +0 -179
  672. package/runtime/slots/widget/utils.tsx +0 -201
  673. package/runtime/testing/initializeMockApp.test.ts +0 -66
  674. package/runtime/testing/mockMessages.ts +0 -23
  675. package/runtime/utils.test.js +0 -116
  676. package/shell/DefaultLayout.tsx +0 -18
  677. package/shell/DefaultMain.tsx +0 -7
  678. package/shell/Logo.test.tsx +0 -32
  679. package/shell/Logo.tsx +0 -28
  680. package/shell/Shell.messages.ts +0 -61
  681. package/shell/Shell.tsx +0 -18
  682. package/shell/__mocks__/file.js +0 -1
  683. package/shell/__mocks__/svg.js +0 -1
  684. package/shell/__mocks__/universal-cookie.js +0 -6
  685. package/shell/app.ts +0 -38
  686. package/shell/dev/devFooter/app.tsx +0 -43
  687. package/shell/dev/devHeader/BarContext.tsx +0 -13
  688. package/shell/dev/devHeader/BarLink.tsx +0 -16
  689. package/shell/dev/devHeader/BarProvider.tsx +0 -25
  690. package/shell/dev/devHeader/CoursesLink.tsx +0 -16
  691. package/shell/dev/devHeader/FooContext.tsx +0 -13
  692. package/shell/dev/devHeader/FooLink.tsx +0 -16
  693. package/shell/dev/devHeader/FooProvider.tsx +0 -25
  694. package/shell/dev/devHeader/app.tsx +0 -53
  695. package/shell/dev/devHeader/providers.tsx +0 -11
  696. package/shell/dev/devHome/HomePage.tsx +0 -28
  697. package/shell/dev/devHome/app.ts +0 -18
  698. package/shell/dev/devHome/i18n/index.ts +0 -27
  699. package/shell/dev/devHome/messages.ts +0 -11
  700. package/shell/dev/devUser/app.tsx +0 -24
  701. package/shell/dev/slotShowcase/HorizontalSlotLayout.tsx +0 -11
  702. package/shell/dev/slotShowcase/LayoutWithOptions.tsx +0 -17
  703. package/shell/dev/slotShowcase/SlotShowcasePage.tsx +0 -66
  704. package/shell/dev/slotShowcase/WidgetWithOptions.tsx +0 -11
  705. package/shell/dev/slotShowcase/app.tsx +0 -373
  706. package/shell/footer/CenterLinks.tsx +0 -11
  707. package/shell/footer/CopyrightNotice.tsx +0 -36
  708. package/shell/footer/Footer.tsx +0 -34
  709. package/shell/footer/LabeledLinkColumn.tsx +0 -19
  710. package/shell/footer/LanguageMenu.tsx +0 -35
  711. package/shell/footer/LanguageMenuItem.tsx +0 -23
  712. package/shell/footer/LeftLinks.tsx +0 -11
  713. package/shell/footer/LegalNotices.tsx +0 -17
  714. package/shell/footer/PoweredBy.tsx +0 -17
  715. package/shell/footer/RevealLinks.tsx +0 -43
  716. package/shell/footer/RightLinks.tsx +0 -11
  717. package/shell/footer/app.tsx +0 -73
  718. package/shell/footer/data/api.ts +0 -48
  719. package/shell/header/AuthenticatedMenu.tsx +0 -32
  720. package/shell/header/Header.tsx +0 -17
  721. package/shell/header/anonymous-menu/AnonymousMenu.tsx +0 -14
  722. package/shell/header/anonymous-menu/LoginButton.tsx +0 -14
  723. package/shell/header/anonymous-menu/RegisterButton.tsx +0 -15
  724. package/shell/header/app.tsx +0 -142
  725. package/shell/header/desktop/DesktopLayout.tsx +0 -22
  726. package/shell/header/desktop/PrimaryNavLinks.tsx +0 -10
  727. package/shell/header/desktop/SecondaryNavLinks.tsx +0 -10
  728. package/shell/header/mobile/MobileLayout.tsx +0 -47
  729. package/shell/header/mobile/MobileNavLinks.tsx +0 -10
  730. package/shell/i18n/index.ts +0 -25
  731. package/shell/jest.config.js +0 -30
  732. package/shell/menus/LinkMenuItem.tsx +0 -64
  733. package/shell/menus/NavDropdownMenuSlot.tsx +0 -29
  734. package/shell/menus/ProfileLinkMenuItem.tsx +0 -33
  735. package/shell/menus/data/utils.ts +0 -19
  736. package/shell/public/index.html +0 -10
  737. package/shell/router/createRouter.test.tsx +0 -50
  738. package/shell/router/createRouter.ts +0 -17
  739. package/shell/router/getAppRoutes.test.tsx +0 -59
  740. package/shell/router/getAppRoutes.ts +0 -21
  741. package/shell/setupTest.js +0 -48
  742. package/shell/site.config.dev.tsx +0 -49
  743. package/shell/site.config.test.tsx +0 -16
  744. package/shell/site.tsx +0 -41
  745. package/tools/dist/babel/babel.config.js +0 -28
  746. package/tools/dist/cli/intl-imports.js +0 -233
  747. package/tools/dist/cli/intl-imports.test.js +0 -146
  748. package/tools/dist/cli/transifex-utils.js +0 -68
  749. package/tools/dist/cli/utils/formatter.js +0 -10
  750. package/tools/dist/config-helpers/createConfig.js +0 -13
  751. package/tools/dist/config-helpers/createLintConfig.js +0 -16
  752. package/tools/dist/config-helpers/getBaseConfig.js +0 -12
  753. package/tools/dist/defaultConfigPaths.js +0 -35
  754. package/tools/dist/eslint/base.eslint.config.js +0 -113
  755. package/tools/dist/index.js +0 -12
  756. package/tools/dist/webpack/common-config/all/getCodeRules.js +0 -52
  757. package/tools/dist/webpack/common-config/all/getFileLoaderRules.js +0 -26
  758. package/tools/dist/webpack/common-config/all/getIgnoreWarnings.js +0 -14
  759. package/tools/dist/webpack/common-config/all/getImageMinimizer.js +0 -25
  760. package/tools/dist/webpack/common-config/all/getStylesheetRule.js +0 -112
  761. package/tools/dist/webpack/common-config/index.js +0 -18
  762. package/tools/dist/webpack/common-config/site/getHtmlWebpackPlugin.js +0 -16
  763. package/tools/dist/webpack/plugins/html-webpack-new-relic-plugin/HtmlWebpackNewRelicPlugin.js +0 -91
  764. package/tools/dist/webpack/plugins/html-webpack-new-relic-plugin/index.js +0 -7
  765. package/tools/dist/webpack/plugins/html-webpack-new-relic-plugin/test/HtmlWebpackNewRelicPlugin.test.js +0 -66
  766. package/tools/dist/webpack/plugins/html-webpack-new-relic-plugin/test/fixtures/entry.js +0 -3
  767. package/tools/dist/webpack/plugins/paragon-webpack-plugin/ParagonWebpackPlugin.js +0 -108
  768. package/tools/dist/webpack/plugins/paragon-webpack-plugin/index.js +0 -7
  769. package/tools/dist/webpack/plugins/paragon-webpack-plugin/utils/assetUtils.js +0 -64
  770. package/tools/dist/webpack/plugins/paragon-webpack-plugin/utils/htmlUtils.js +0 -53
  771. package/tools/dist/webpack/plugins/paragon-webpack-plugin/utils/index.js +0 -9
  772. package/tools/dist/webpack/plugins/paragon-webpack-plugin/utils/paragonStylesheetUtils.js +0 -114
  773. package/tools/dist/webpack/plugins/paragon-webpack-plugin/utils/scriptUtils.js +0 -146
  774. package/tools/dist/webpack/plugins/paragon-webpack-plugin/utils/stylesheetUtils.js +0 -126
  775. package/tools/dist/webpack/plugins/paragon-webpack-plugin/utils/tagUtils.js +0 -57
  776. package/tools/dist/webpack/types.js +0 -2
  777. package/tools/dist/webpack/utils/getLocalAliases.js +0 -65
  778. package/tools/dist/webpack/utils/getResolvedSiteConfigPath.js +0 -32
  779. package/tools/dist/webpack/utils/paragonUtils.js +0 -138
  780. package/tools/dist/webpack/webpack.config.build.js +0 -80
  781. package/tools/dist/webpack/webpack.config.dev.js +0 -76
  782. package/tools/dist/webpack/webpack.config.dev.shell.js +0 -110
  783. package/types.ts +0 -99
  784. /package/{runtime/slots/index.ts → dist/runtime/slots/index.d.ts} +0 -0
  785. /package/{runtime/slots/layout/index.ts → dist/runtime/slots/layout/index.d.ts} +0 -0
  786. /package/{runtime/slots/widget/index.ts → dist/runtime/slots/widget/index.d.ts} +0 -0
  787. /package/{shell/dev/devFooter/index.ts → dist/shell/dev/devFooter/index.d.ts} +0 -0
  788. /package/{shell/dev/devHeader/index.ts → dist/shell/dev/devHeader/index.d.ts} +0 -0
  789. /package/{shell/dev/devHome/index.ts → dist/shell/dev/devHome/index.d.ts} +0 -0
  790. /package/{shell/dev/devUser/index.ts → dist/shell/dev/devUser/index.d.ts} +0 -0
  791. /package/{shell/dev/index.ts → dist/shell/dev/index.d.ts} +0 -0
  792. /package/{shell/dev/slotShowcase/index.ts → dist/shell/dev/slotShowcase/index.d.ts} +0 -0
  793. /package/{shell/footer/index.ts → dist/shell/footer/index.d.ts} +0 -0
  794. /package/{config → dist/tools}/babel/babel.config.js +0 -0
  795. /package/{tools/dist → dist/tools}/cli/commands/serve.js +0 -0
  796. /package/{tools/dist → dist/tools}/cli/utils/ensureConfigFilenameOption.js +0 -0
  797. /package/{tools/dist → dist/tools}/cli/utils/getResolvedConfigPath.js +0 -0
  798. /package/{tools/dist → dist/tools}/cli/utils/prettyPrintTitle.js +0 -0
  799. /package/{config → dist/tools}/config-helpers/createConfig.js +0 -0
  800. /package/{config → dist/tools}/config-helpers/createLintConfig.js +0 -0
  801. /package/{config → dist/tools}/config-helpers/getBaseConfig.js +0 -0
  802. /package/{config → dist/tools}/defaultConfigPaths.js +0 -0
  803. /package/{tools/dist → dist/tools}/eslint.config.js +0 -0
  804. /package/{config → dist/tools}/index.js +0 -0
  805. /package/{config → dist/tools}/jest/jest.config.js +0 -0
  806. /package/{tools/dist → dist/tools}/jest.config.js +0 -0
  807. /package/{config → dist/tools}/webpack/common-config/all/getCodeRules.js +0 -0
  808. /package/{config → dist/tools}/webpack/common-config/all/getFileLoaderRules.js +0 -0
  809. /package/{config → dist/tools}/webpack/common-config/all/getImageMinimizer.js +0 -0
  810. /package/{config → dist/tools}/webpack/plugins/html-webpack-new-relic-plugin/HtmlWebpackNewRelicPlugin.js +0 -0
  811. /package/{config → dist/tools}/webpack/plugins/html-webpack-new-relic-plugin/index.js +0 -0
  812. /package/{config → dist/tools}/webpack/plugins/html-webpack-new-relic-plugin/test/fixtures/entry.js +0 -0
  813. /package/{config → dist/tools}/webpack/utils/getResolvedSiteConfigPath.js +0 -0
@@ -0,0 +1,184 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { isSlotOperationConditionSatisfied } from '../utils';
3
+ import { IFrameWidget } from './iframe';
4
+ import { WidgetOperationTypes } from './types';
5
+ import WidgetProvider from './WidgetProvider';
6
+ export function isWidgetOperation(operation) {
7
+ return Object.values(WidgetOperationTypes).includes(operation.op);
8
+ }
9
+ export function isWidgetAbsoluteOperation(operation) {
10
+ return operation.op === WidgetOperationTypes.APPEND || operation.op === WidgetOperationTypes.PREPEND;
11
+ }
12
+ export function isWidgetRelativeOperation(operation) {
13
+ return operation.op === WidgetOperationTypes.INSERT_AFTER || operation.op === WidgetOperationTypes.INSERT_BEFORE;
14
+ }
15
+ export function isWidgetAppendOperation(operation) {
16
+ return isWidgetOperation(operation) && operation.op === WidgetOperationTypes.APPEND;
17
+ }
18
+ export function isWidgetInsertAfterOperation(operation) {
19
+ return isWidgetOperation(operation) && operation.op === WidgetOperationTypes.INSERT_AFTER;
20
+ }
21
+ export function isWidgetInsertBeforeOperation(operation) {
22
+ return isWidgetOperation(operation) && operation.op === WidgetOperationTypes.INSERT_BEFORE;
23
+ }
24
+ export function isWidgetPrependOperation(operation) {
25
+ return isWidgetOperation(operation) && operation.op === WidgetOperationTypes.PREPEND;
26
+ }
27
+ export function isWidgetRemoveOperation(operation) {
28
+ return isWidgetOperation(operation) && operation.op === WidgetOperationTypes.REMOVE;
29
+ }
30
+ export function isWidgetReplaceOperation(operation) {
31
+ return isWidgetOperation(operation) && operation.op === WidgetOperationTypes.REPLACE;
32
+ }
33
+ export function isWidgetOptionsOperation(operation) {
34
+ return isWidgetOperation(operation) && operation.op === WidgetOperationTypes.OPTIONS;
35
+ }
36
+ export function isWidgetRendererOperation(operation) {
37
+ return isWidgetOperation(operation) && hasWidgetRendererProps(operation);
38
+ }
39
+ export function isWidgetIdentityOperation(operation) {
40
+ return isWidgetOperation(operation) && hasWidgetIdentityProps(operation);
41
+ }
42
+ export function isWidgetIdentityRoleOperation(operation) {
43
+ return isWidgetIdentityOperation(operation) && hasWidgetIdentityRoleProps(operation);
44
+ }
45
+ export function createWidgetAppendOperation(id, slotId, element) {
46
+ let operation = undefined;
47
+ if (element) {
48
+ operation = {
49
+ slotId,
50
+ id,
51
+ op: WidgetOperationTypes.APPEND,
52
+ element
53
+ };
54
+ }
55
+ return operation;
56
+ }
57
+ // Widget Operation props helpers
58
+ function hasWidgetComponentProps(operation) {
59
+ return isWidgetOperation(operation) && 'component' in operation;
60
+ }
61
+ function hasWidgetElementProps(operation) {
62
+ return isWidgetOperation(operation) && 'element' in operation;
63
+ }
64
+ function hasWidgetIFrameProps(operation) {
65
+ return isWidgetOperation(operation) && 'url' in operation && 'title' in operation;
66
+ }
67
+ function hasWidgetRendererProps(operation) {
68
+ return hasWidgetComponentProps(operation) || hasWidgetElementProps(operation) || hasWidgetIFrameProps(operation);
69
+ }
70
+ function hasWidgetIdentityProps(operation) {
71
+ return isWidgetOperation(operation) && 'id' in operation;
72
+ }
73
+ function hasWidgetIdentityRoleProps(operation) {
74
+ return hasWidgetIdentityProps(operation) && 'role' in operation;
75
+ }
76
+ /**
77
+ * An 'identified' widget just means a data structure with an ID and a ReactNode.
78
+ */
79
+ function createIdentifiedWidget(operation, componentProps) {
80
+ let widget = null;
81
+ const { id } = operation;
82
+ if (hasWidgetComponentProps(operation)) {
83
+ widget = (_jsx(operation.component, Object.assign({}, componentProps)));
84
+ }
85
+ else if (hasWidgetElementProps(operation)) {
86
+ widget = operation.element;
87
+ }
88
+ else if (hasWidgetIFrameProps(operation)) {
89
+ widget = (_jsx(IFrameWidget, { url: operation.url, title: operation.title }));
90
+ }
91
+ return {
92
+ id,
93
+ role: operation.role,
94
+ node: (_jsx(WidgetProvider, { slotId: operation.slotId, widgetId: operation.id, role: operation.role, children: widget }, id)),
95
+ };
96
+ }
97
+ function findRelatedWidgetIndex(id, widgets) {
98
+ for (const candidateRelatedWidget of widgets) {
99
+ if (candidateRelatedWidget.id === id) {
100
+ return widgets.indexOf(candidateRelatedWidget);
101
+ }
102
+ }
103
+ return null;
104
+ }
105
+ function appendWidget(operation, widgets, componentProps) {
106
+ const widget = createIdentifiedWidget(operation, componentProps);
107
+ widgets.push(widget);
108
+ }
109
+ function prependWidget(operation, widgets, componentProps) {
110
+ const widget = createIdentifiedWidget(operation, componentProps);
111
+ widgets.unshift(widget);
112
+ }
113
+ function insertAfterWidget(operation, widgets, componentProps) {
114
+ const widget = createIdentifiedWidget(operation, componentProps);
115
+ const relatedIndex = findRelatedWidgetIndex(operation.relatedId, widgets);
116
+ if (relatedIndex !== null) {
117
+ widgets.splice(relatedIndex + 1, 0, widget);
118
+ }
119
+ }
120
+ function insertBeforeWidget(operation, widgets, componentProps) {
121
+ const widget = createIdentifiedWidget(operation, componentProps);
122
+ const relatedIndex = findRelatedWidgetIndex(operation.relatedId, widgets);
123
+ if (relatedIndex !== null) {
124
+ widgets.splice(relatedIndex, 0, widget);
125
+ }
126
+ }
127
+ function replaceWidget(operation, widgets, componentProps) {
128
+ const widget = createIdentifiedWidget(operation, componentProps);
129
+ const relatedIndex = findRelatedWidgetIndex(operation.relatedId, widgets);
130
+ if (relatedIndex !== null) {
131
+ widgets.splice(relatedIndex, 1, widget);
132
+ }
133
+ }
134
+ function removeWidget(operation, widgets) {
135
+ const relatedIndex = findRelatedWidgetIndex(operation.relatedId, widgets);
136
+ if (relatedIndex !== null) {
137
+ widgets.splice(relatedIndex, 1);
138
+ }
139
+ }
140
+ function createWidgetList(identifiedWidgets) {
141
+ const nodes = identifiedWidgets.map(widget => widget.node);
142
+ const widgetList = nodes;
143
+ widgetList.identified = identifiedWidgets;
144
+ widgetList.byId = (id) => {
145
+ return identifiedWidgets.filter(w => w.id === id).map(w => w.node);
146
+ };
147
+ widgetList.withoutId = (id) => {
148
+ return identifiedWidgets.filter(w => w.id !== id).map(w => w.node);
149
+ };
150
+ widgetList.byRole = (role) => {
151
+ return identifiedWidgets.filter(w => w.role === role).map(w => w.node);
152
+ };
153
+ widgetList.withoutRole = (role) => {
154
+ return identifiedWidgets.filter(w => w.role !== role).map(w => w.node);
155
+ };
156
+ return widgetList;
157
+ }
158
+ export function createWidgets(operations, componentProps) {
159
+ const identifiedWidgets = [];
160
+ for (const operation of operations) {
161
+ if (isSlotOperationConditionSatisfied(operation)) {
162
+ if (isWidgetAppendOperation(operation)) {
163
+ appendWidget(operation, identifiedWidgets, componentProps);
164
+ }
165
+ else if (isWidgetPrependOperation(operation)) {
166
+ prependWidget(operation, identifiedWidgets, componentProps);
167
+ }
168
+ else if (isWidgetInsertAfterOperation(operation)) {
169
+ insertAfterWidget(operation, identifiedWidgets, componentProps);
170
+ }
171
+ else if (isWidgetInsertBeforeOperation(operation)) {
172
+ insertBeforeWidget(operation, identifiedWidgets, componentProps);
173
+ }
174
+ else if (isWidgetReplaceOperation(operation)) {
175
+ replaceWidget(operation, identifiedWidgets, componentProps);
176
+ }
177
+ else if (isWidgetRemoveOperation(operation)) {
178
+ removeWidget(operation, identifiedWidgets);
179
+ }
180
+ }
181
+ }
182
+ return createWidgetList(identifiedWidgets);
183
+ }
184
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../runtime/slots/widget/utils.tsx"],"names":[],"mappings":"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","sourcesContent":["import { ReactNode } from 'react';\nimport { SlotOperation } from '../types';\nimport { isSlotOperationConditionSatisfied } from '../utils';\nimport { IFrameWidget } from './iframe';\nimport { IdentifiedWidget, WidgetAbsoluteOperation, WidgetAppendOperation, WidgetComponentProps, WidgetElementProps, WidgetIdentityProps, WidgetIFrameProps, WidgetInsertAfterOperation, WidgetInsertBeforeOperation, WidgetList, WidgetOperation, WidgetOperationTypes, WidgetOptionsOperation, WidgetPrependOperation, WidgetRemoveOperation, WidgetRendererOperation, WidgetRendererProps, WidgetReplaceOperation } from './types';\nimport WidgetProvider from './WidgetProvider';\n\nexport function isWidgetOperation(operation: SlotOperation): operation is WidgetOperation {\n return Object.values(WidgetOperationTypes).includes(operation.op as WidgetOperationTypes);\n}\n\nexport function isWidgetAbsoluteOperation(operation: WidgetOperation): operation is WidgetAbsoluteOperation {\n return operation.op === WidgetOperationTypes.APPEND || operation.op === WidgetOperationTypes.PREPEND;\n}\n\nexport function isWidgetRelativeOperation(operation: WidgetOperation): operation is (WidgetInsertAfterOperation | WidgetInsertBeforeOperation) {\n return operation.op === WidgetOperationTypes.INSERT_AFTER || operation.op === WidgetOperationTypes.INSERT_BEFORE;\n}\n\nexport function isWidgetAppendOperation(operation: SlotOperation): operation is WidgetAppendOperation {\n return isWidgetOperation(operation) && operation.op === WidgetOperationTypes.APPEND;\n}\n\nexport function isWidgetInsertAfterOperation(operation: SlotOperation): operation is WidgetInsertAfterOperation {\n return isWidgetOperation(operation) && operation.op === WidgetOperationTypes.INSERT_AFTER;\n}\n\nexport function isWidgetInsertBeforeOperation(operation: SlotOperation): operation is WidgetInsertBeforeOperation {\n return isWidgetOperation(operation) && operation.op === WidgetOperationTypes.INSERT_BEFORE;\n}\n\nexport function isWidgetPrependOperation(operation: SlotOperation): operation is WidgetPrependOperation {\n return isWidgetOperation(operation) && operation.op === WidgetOperationTypes.PREPEND;\n}\n\nexport function isWidgetRemoveOperation(operation: SlotOperation): operation is WidgetRemoveOperation {\n return isWidgetOperation(operation) && operation.op === WidgetOperationTypes.REMOVE;\n}\n\nexport function isWidgetReplaceOperation(operation: SlotOperation): operation is WidgetReplaceOperation {\n return isWidgetOperation(operation) && operation.op === WidgetOperationTypes.REPLACE;\n}\n\nexport function isWidgetOptionsOperation(operation: SlotOperation): operation is WidgetOptionsOperation {\n return isWidgetOperation(operation) && operation.op === WidgetOperationTypes.OPTIONS;\n}\n\nexport function isWidgetRendererOperation(operation: SlotOperation): operation is WidgetRendererOperation {\n return isWidgetOperation(operation) && hasWidgetRendererProps(operation);\n}\n\nexport function isWidgetIdentityOperation(operation: SlotOperation): operation is (WidgetOperation & WidgetIdentityProps) {\n return isWidgetOperation(operation) && hasWidgetIdentityProps(operation);\n}\n\nexport function isWidgetIdentityRoleOperation(operation: SlotOperation): operation is (WidgetOperation & WidgetIdentityProps & { role: string }) {\n return isWidgetIdentityOperation(operation) && hasWidgetIdentityRoleProps(operation);\n}\n\nexport function createWidgetAppendOperation(id: string, slotId: string, element: ReactNode) {\n let operation: WidgetOperation | undefined = undefined;\n if (element) {\n operation = {\n slotId,\n id,\n op: WidgetOperationTypes.APPEND,\n element\n };\n }\n\n return operation;\n}\n\n// Widget Operation props helpers\n\nfunction hasWidgetComponentProps(operation: WidgetOperation): operation is (WidgetOperation & WidgetComponentProps) {\n return isWidgetOperation(operation) && 'component' in operation;\n}\n\nfunction hasWidgetElementProps(operation: WidgetOperation): operation is (WidgetOperation & WidgetElementProps) {\n return isWidgetOperation(operation) && 'element' in operation;\n}\n\nfunction hasWidgetIFrameProps(operation: WidgetOperation): operation is (WidgetOperation & WidgetIFrameProps) {\n return isWidgetOperation(operation) && 'url' in operation && 'title' in operation;\n}\n\nfunction hasWidgetRendererProps(operation: WidgetOperation): operation is (WidgetOperation & WidgetRendererProps) {\n return hasWidgetComponentProps(operation) || hasWidgetElementProps(operation) || hasWidgetIFrameProps(operation);\n}\n\nfunction hasWidgetIdentityProps(operation: WidgetOperation): operation is (WidgetOperation & WidgetIdentityProps) {\n return isWidgetOperation(operation) && 'id' in operation;\n}\n\nfunction hasWidgetIdentityRoleProps(operation: WidgetOperation): operation is (WidgetOperation & WidgetIdentityProps & { role: string }) {\n return hasWidgetIdentityProps(operation) && 'role' in operation;\n}\n\n/**\n * An 'identified' widget just means a data structure with an ID and a ReactNode.\n */\nfunction createIdentifiedWidget(operation: WidgetRendererOperation, componentProps?: Record<string, unknown>) {\n let widget: ReactNode = null;\n const { id } = operation;\n if (hasWidgetComponentProps(operation)) {\n widget = (\n <operation.component {...componentProps} />\n );\n } else if (hasWidgetElementProps(operation)) {\n widget = operation.element;\n } else if (hasWidgetIFrameProps(operation)) {\n widget = (\n <IFrameWidget url={operation.url} title={operation.title} />\n );\n }\n\n return {\n id,\n role: operation.role,\n node: (\n <WidgetProvider key={id} slotId={operation.slotId} widgetId={operation.id} role={operation.role}>\n {widget}\n </WidgetProvider>\n ),\n };\n}\n\nfunction findRelatedWidgetIndex(id: string, widgets: IdentifiedWidget[]) {\n for (const candidateRelatedWidget of widgets) {\n if (candidateRelatedWidget.id === id) {\n return widgets.indexOf(candidateRelatedWidget);\n }\n }\n return null;\n}\n\nfunction appendWidget(operation: WidgetAppendOperation, widgets: IdentifiedWidget[], componentProps?: Record<string, unknown>) {\n const widget = createIdentifiedWidget(operation, componentProps);\n widgets.push(widget);\n}\n\nfunction prependWidget(operation: WidgetPrependOperation, widgets: IdentifiedWidget[], componentProps?: Record<string, unknown>) {\n const widget = createIdentifiedWidget(operation, componentProps);\n widgets.unshift(widget);\n}\n\nfunction insertAfterWidget(operation: WidgetInsertAfterOperation, widgets: IdentifiedWidget[], componentProps?: Record<string, unknown>) {\n const widget = createIdentifiedWidget(operation, componentProps);\n const relatedIndex = findRelatedWidgetIndex(operation.relatedId, widgets);\n if (relatedIndex !== null) {\n widgets.splice(relatedIndex + 1, 0, widget);\n }\n}\n\nfunction insertBeforeWidget(operation: WidgetInsertBeforeOperation, widgets: IdentifiedWidget[], componentProps?: Record<string, unknown>) {\n const widget = createIdentifiedWidget(operation, componentProps);\n const relatedIndex = findRelatedWidgetIndex(operation.relatedId, widgets);\n if (relatedIndex !== null) {\n widgets.splice(relatedIndex, 0, widget);\n }\n}\n\nfunction replaceWidget(operation: WidgetReplaceOperation, widgets: IdentifiedWidget[], componentProps?: Record<string, unknown>) {\n const widget = createIdentifiedWidget(operation, componentProps);\n const relatedIndex = findRelatedWidgetIndex(operation.relatedId, widgets);\n if (relatedIndex !== null) {\n widgets.splice(relatedIndex, 1, widget);\n }\n}\n\nfunction removeWidget(operation: WidgetRemoveOperation, widgets: IdentifiedWidget[]) {\n const relatedIndex = findRelatedWidgetIndex(operation.relatedId, widgets);\n if (relatedIndex !== null) {\n widgets.splice(relatedIndex, 1);\n }\n}\n\nfunction createWidgetList(identifiedWidgets: IdentifiedWidget[]): WidgetList {\n const nodes = identifiedWidgets.map(widget => widget.node);\n const widgetList = nodes as WidgetList;\n\n widgetList.identified = identifiedWidgets;\n\n widgetList.byId = (id: string): ReactNode[] => {\n return identifiedWidgets.filter(w => w.id === id).map(w => w.node);\n };\n\n widgetList.withoutId = (id: string): ReactNode[] => {\n return identifiedWidgets.filter(w => w.id !== id).map(w => w.node);\n };\n\n widgetList.byRole = (role: string): ReactNode[] => {\n return identifiedWidgets.filter(w => w.role === role).map(w => w.node);\n };\n\n widgetList.withoutRole = (role: string): ReactNode[] => {\n return identifiedWidgets.filter(w => w.role !== role).map(w => w.node);\n };\n\n return widgetList;\n}\n\nexport function createWidgets(operations: WidgetOperation[], componentProps?: Record<string, unknown>): WidgetList {\n const identifiedWidgets: IdentifiedWidget[] = [];\n\n for (const operation of operations) {\n if (isSlotOperationConditionSatisfied(operation)) {\n if (isWidgetAppendOperation(operation)) {\n appendWidget(operation, identifiedWidgets, componentProps);\n } else if (isWidgetPrependOperation(operation)) {\n prependWidget(operation, identifiedWidgets, componentProps);\n } else if (isWidgetInsertAfterOperation(operation)) {\n insertAfterWidget(operation, identifiedWidgets, componentProps);\n } else if (isWidgetInsertBeforeOperation(operation)) {\n insertBeforeWidget(operation, identifiedWidgets, componentProps);\n } else if (isWidgetReplaceOperation(operation)) {\n replaceWidget(operation, identifiedWidgets, componentProps);\n } else if (isWidgetRemoveOperation(operation)) {\n removeWidget(operation, identifiedWidgets);\n }\n }\n }\n\n return createWidgetList(identifiedWidgets);\n}\n"]}
@@ -16,45 +16,9 @@
16
16
  *
17
17
  * @module PubSub
18
18
  */
19
-
20
- // export const {
21
- // subscribe,
22
- // unsubscribe,
23
- // publish,
24
- // } = PubSub;
25
-
26
19
  type CallbackFunction = (topic: string, data?: any) => void;
27
-
28
- let subscriptions: Record<string, CallbackFunction[]> = {};
29
-
30
- export function subscribe(topic: string, callback) {
31
- if (subscriptions[topic] === undefined) {
32
- subscriptions[topic] = [];
33
- }
34
- subscriptions[topic].push(callback);
35
- }
36
-
37
- export function publish(topic: string, data?: any) {
38
- if (subscriptions[topic] === undefined) {
39
- subscriptions[topic] = [];
40
- }
41
- subscriptions[topic].forEach(callback => {
42
- if (data) {
43
- callback(topic, data);
44
- } else {
45
- callback(topic);
46
- }
47
- });
48
- }
49
-
50
- export function unsubscribe(topic: string, callback: CallbackFunction) {
51
- if (subscriptions[topic] === undefined) {
52
- subscriptions[topic] = [];
53
- }
54
-
55
- subscriptions[topic] = subscriptions[topic].filter((value) => value !== callback);
56
- }
57
-
58
- export function clearAllSubscriptions() {
59
- subscriptions = {};
60
- }
20
+ export declare function subscribe(topic: string, callback: any): void;
21
+ export declare function publish(topic: string, data?: any): void;
22
+ export declare function unsubscribe(topic: string, callback: CallbackFunction): void;
23
+ export declare function clearAllSubscriptions(): void;
24
+ export {};
@@ -0,0 +1,48 @@
1
+ /**
2
+ * #### Import members from **@openedx/frontend-base**
3
+ *
4
+ * The PubSub module is a thin wrapper around the base functionality of
5
+ * [PubSubJS](https://github.com/mroderick/PubSubJS). For the sake of simplicity and not relying
6
+ * too heavily on implementation-specific features, it maintains a fairly simple API (subscribe,
7
+ * unsubscribe, and publish).
8
+ *
9
+ * Publish/Subscribe events should be used mindfully, especially in relation to application UI
10
+ * frameworks like React. Given React's unidirectional data flow and prop/state management
11
+ * capabilities, using a pub/sub mechanism is at odds with that framework's best practices.
12
+ *
13
+ * That said, we use pub/sub in our application initialization sequence to allow applications to
14
+ * hook into the initialization lifecycle, and we also use them to publish when the application
15
+ * state has changed, i.e., when the config document or user's authentication state have changed.
16
+ *
17
+ * @module PubSub
18
+ */
19
+ let subscriptions = {};
20
+ export function subscribe(topic, callback) {
21
+ if (subscriptions[topic] === undefined) {
22
+ subscriptions[topic] = [];
23
+ }
24
+ subscriptions[topic].push(callback);
25
+ }
26
+ export function publish(topic, data) {
27
+ if (subscriptions[topic] === undefined) {
28
+ subscriptions[topic] = [];
29
+ }
30
+ subscriptions[topic].forEach(callback => {
31
+ if (data) {
32
+ callback(topic, data);
33
+ }
34
+ else {
35
+ callback(topic);
36
+ }
37
+ });
38
+ }
39
+ export function unsubscribe(topic, callback) {
40
+ if (subscriptions[topic] === undefined) {
41
+ subscriptions[topic] = [];
42
+ }
43
+ subscriptions[topic] = subscriptions[topic].filter((value) => value !== callback);
44
+ }
45
+ export function clearAllSubscriptions() {
46
+ subscriptions = {};
47
+ }
48
+ //# sourceMappingURL=subscriptions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"subscriptions.js","sourceRoot":"","sources":["../../runtime/subscriptions.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAUH,IAAI,aAAa,GAAuC,EAAE,CAAC;AAE3D,MAAM,UAAU,SAAS,CAAC,KAAa,EAAE,QAAQ;IAC/C,IAAI,aAAa,CAAC,KAAK,CAAC,KAAK,SAAS,EAAE,CAAC;QACvC,aAAa,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC;IAC5B,CAAC;IACD,aAAa,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AACtC,CAAC;AAED,MAAM,UAAU,OAAO,CAAC,KAAa,EAAE,IAAU;IAC/C,IAAI,aAAa,CAAC,KAAK,CAAC,KAAK,SAAS,EAAE,CAAC;QACvC,aAAa,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC;IAC5B,CAAC;IACD,aAAa,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE;QACtC,IAAI,IAAI,EAAE,CAAC;YACT,QAAQ,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QACxB,CAAC;aAAM,CAAC;YACN,QAAQ,CAAC,KAAK,CAAC,CAAC;QAClB,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,KAAa,EAAE,QAA0B;IACnE,IAAI,aAAa,CAAC,KAAK,CAAC,KAAK,SAAS,EAAE,CAAC;QACvC,aAAa,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC;IAC5B,CAAC;IAED,aAAa,CAAC,KAAK,CAAC,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC;AACpF,CAAC;AAED,MAAM,UAAU,qBAAqB;IACnC,aAAa,GAAG,EAAE,CAAC;AACrB,CAAC","sourcesContent":["/**\n * #### Import members from **@openedx/frontend-base**\n *\n * The PubSub module is a thin wrapper around the base functionality of\n * [PubSubJS](https://github.com/mroderick/PubSubJS). For the sake of simplicity and not relying\n * too heavily on implementation-specific features, it maintains a fairly simple API (subscribe,\n * unsubscribe, and publish).\n *\n * Publish/Subscribe events should be used mindfully, especially in relation to application UI\n * frameworks like React. Given React's unidirectional data flow and prop/state management\n * capabilities, using a pub/sub mechanism is at odds with that framework's best practices.\n *\n * That said, we use pub/sub in our application initialization sequence to allow applications to\n * hook into the initialization lifecycle, and we also use them to publish when the application\n * state has changed, i.e., when the config document or user's authentication state have changed.\n *\n * @module PubSub\n */\n\n// export const {\n// subscribe,\n// unsubscribe,\n// publish,\n// } = PubSub;\n\ntype CallbackFunction = (topic: string, data?: any) => void;\n\nlet subscriptions: Record<string, CallbackFunction[]> = {};\n\nexport function subscribe(topic: string, callback) {\n if (subscriptions[topic] === undefined) {\n subscriptions[topic] = [];\n }\n subscriptions[topic].push(callback);\n}\n\nexport function publish(topic: string, data?: any) {\n if (subscriptions[topic] === undefined) {\n subscriptions[topic] = [];\n }\n subscriptions[topic].forEach(callback => {\n if (data) {\n callback(topic, data);\n } else {\n callback(topic);\n }\n });\n}\n\nexport function unsubscribe(topic: string, callback: CallbackFunction) {\n if (subscriptions[topic] === undefined) {\n subscriptions[topic] = [];\n }\n\n subscriptions[topic] = subscriptions[topic].filter((value) => value !== callback);\n}\n\nexport function clearAllSubscriptions() {\n subscriptions = {};\n}\n"]}
@@ -4,6 +4,5 @@
4
4
  *
5
5
  * @module Testing
6
6
  */
7
-
8
7
  export { default as initializeMockApp } from './initializeMockApp';
9
8
  export { default as mockMessages } from './mockMessages';
@@ -0,0 +1,9 @@
1
+ /**
2
+ * #### Import members from **@openedx/frontend-base** Testing
3
+ * The testing module provides helpers for writing tests in Jest.
4
+ *
5
+ * @module Testing
6
+ */
7
+ export { default as initializeMockApp } from './initializeMockApp';
8
+ export { default as mockMessages } from './mockMessages';
9
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../runtime/testing/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,OAAO,IAAI,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACnE,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,gBAAgB,CAAC","sourcesContent":["/**\n * #### Import members from **@openedx/frontend-base** Testing\n * The testing module provides helpers for writing tests in Jest.\n *\n * @module Testing\n */\n\nexport { default as initializeMockApp } from './initializeMockApp';\nexport { default as mockMessages } from './mockMessages';\n"]}
@@ -0,0 +1,46 @@
1
+ import { LocalizedMessages, User } from '../../types';
2
+ /**
3
+ * Initializes a mock application for component testing. The mock application includes
4
+ * mock analytics, auth, and logging services, and the real i18n service.
5
+ *
6
+ * See MockAnalyticsService, MockAuthService, and MockLoggingService for mock implementation
7
+ * details. For the most part, the analytics and logging services just implement their functions
8
+ * with jest.fn() and do nothing else, whereas the MockAuthService actually has some behavior
9
+ * implemented, it just doesn't make any HTTP calls.
10
+ *
11
+ * Note that this mock application is not sufficient for testing the full application lifecycle or
12
+ * initialization callbacks/custom handlers as described in the 'initialize' function's
13
+ * documentation. It exists merely to set up the mock services that components themselves tend to
14
+ * interact with most often. It could be extended to allow for setting up custom handlers fairly
15
+ * easily, as this functionality would be more-or-less identical to what the real initialize
16
+ * function does.
17
+ *
18
+ * Example:
19
+ *
20
+ * ```
21
+ * import { initializeMockApp, logInfo } from '@openedx/frontend-base';
22
+ *
23
+ * describe('initializeMockApp', () => {
24
+ * it('mocks things correctly', () => {
25
+ * const { loggingService } = initializeMockApp();
26
+ * logInfo('test', {});
27
+ * expect(loggingService.logInfo).toHaveBeenCalledWith('test', {});
28
+ * });
29
+ * });
30
+ * ```
31
+ *
32
+ * @param {Object} [options]
33
+ * @param {*} [options.messages] A i18n-compatible messages object, or an array of such objects. If
34
+ * an array is provided, duplicate keys are resolved with the last-one-in winning.
35
+ * @param {UserData|null} [options.authenticatedUser] A UserData object representing the
36
+ * authenticated user. This is passed directly to MockAuthService.
37
+ * @memberof module:Testing
38
+ */
39
+ export default function initializeMockApp({ messages, authenticatedUser, }?: {
40
+ messages?: LocalizedMessages;
41
+ authenticatedUser?: User | null;
42
+ }): {
43
+ analyticsService: class;
44
+ authService: class;
45
+ loggingService: any;
46
+ };
@@ -1,12 +1,10 @@
1
1
  import siteConfig from 'site.config';
2
-
3
2
  import { configureAnalytics, MockAnalyticsService } from '../analytics';
4
3
  import { configureAuth, MockAuthService, setAuthenticatedUser } from '../auth';
5
4
  import { getSiteConfig, mergeSiteConfig } from '../config';
6
5
  import { configureI18n } from '../i18n';
7
6
  import { configureLogging, MockLoggingService } from '../logging';
8
7
  import mockMessages from './mockMessages';
9
-
10
8
  /**
11
9
  * Initializes a mock application for component testing. The mock application includes
12
10
  * mock analytics, auth, and logging services, and the real i18n service.
@@ -44,38 +42,30 @@ import mockMessages from './mockMessages';
44
42
  * authenticated user. This is passed directly to MockAuthService.
45
43
  * @memberof module:Testing
46
44
  */
47
- export default function initializeMockApp({
48
- messages = mockMessages,
49
- authenticatedUser = null,
50
- } = {}) {
51
- const config = siteConfig;
52
- mergeSiteConfig(config);
53
-
54
- const loggingService = configureLogging(MockLoggingService, {
55
- config: getSiteConfig(),
56
- });
57
-
58
- const authService = configureAuth(MockAuthService, {
59
- config: getSiteConfig(),
60
- loggingService,
61
- });
62
-
63
- setAuthenticatedUser(authenticatedUser);
64
-
65
- const analyticsService = configureAnalytics(MockAnalyticsService, {
66
- config: getSiteConfig(),
67
- httpClient: authService.getAuthenticatedHttpClient(),
68
- loggingService,
69
- });
70
-
71
- // The i18n service configureI18n function has no return value, since there isn't a service class.
72
- configureI18n({
73
- messages,
74
- });
75
-
76
- return {
77
- analyticsService,
78
- authService,
79
- loggingService,
80
- };
45
+ export default function initializeMockApp({ messages = mockMessages, authenticatedUser = null, } = {}) {
46
+ const config = siteConfig;
47
+ mergeSiteConfig(config);
48
+ const loggingService = configureLogging(MockLoggingService, {
49
+ config: getSiteConfig(),
50
+ });
51
+ const authService = configureAuth(MockAuthService, {
52
+ config: getSiteConfig(),
53
+ loggingService,
54
+ });
55
+ setAuthenticatedUser(authenticatedUser);
56
+ const analyticsService = configureAnalytics(MockAnalyticsService, {
57
+ config: getSiteConfig(),
58
+ httpClient: authService.getAuthenticatedHttpClient(),
59
+ loggingService,
60
+ });
61
+ // The i18n service configureI18n function has no return value, since there isn't a service class.
62
+ configureI18n({
63
+ messages,
64
+ });
65
+ return {
66
+ analyticsService,
67
+ authService,
68
+ loggingService,
69
+ };
81
70
  }
71
+ //# sourceMappingURL=initializeMockApp.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"initializeMockApp.js","sourceRoot":"","sources":["../../../runtime/testing/initializeMockApp.ts"],"names":[],"mappings":"AAAA,OAAO,UAAU,MAAM,aAAa,CAAC;AAIrC,OAAO,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AACxE,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAC;AAC/E,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAC3D,OAAO,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AACxC,OAAO,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAClE,OAAO,YAAY,MAAM,gBAAgB,CAAC;AAE1C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AACH,MAAM,CAAC,OAAO,UAAU,iBAAiB,CAAC,EACxC,QAAQ,GAAG,YAAY,EACvB,iBAAiB,GAAG,IAAI,MAItB,EAAE;IACJ,MAAM,MAAM,GAAG,UAAU,CAAC;IAC1B,eAAe,CAAC,MAAM,CAAC,CAAC;IAExB,MAAM,cAAc,GAAG,gBAAgB,CAAC,kBAAkB,EAAE;QAC1D,MAAM,EAAE,aAAa,EAAE;KACxB,CAAC,CAAC;IAEH,MAAM,WAAW,GAAG,aAAa,CAAC,eAAe,EAAE;QACjD,MAAM,EAAE,aAAa,EAAE;QACvB,cAAc;KACf,CAAC,CAAC;IAEH,oBAAoB,CAAC,iBAAiB,CAAC,CAAC;IAExC,MAAM,gBAAgB,GAAG,kBAAkB,CAAC,oBAAoB,EAAE;QAChE,MAAM,EAAE,aAAa,EAAE;QACvB,UAAU,EAAE,WAAW,CAAC,0BAA0B,EAAE;QACpD,cAAc;KACf,CAAC,CAAC;IAEH,kGAAkG;IAClG,aAAa,CAAC;QACZ,QAAQ;KACT,CAAC,CAAC;IAEH,OAAO;QACL,gBAAgB;QAChB,WAAW;QACX,cAAc;KACf,CAAC;AACJ,CAAC","sourcesContent":["import siteConfig from 'site.config';\n\nimport { LocalizedMessages, User } from '../../types';\n\nimport { configureAnalytics, MockAnalyticsService } from '../analytics';\nimport { configureAuth, MockAuthService, setAuthenticatedUser } from '../auth';\nimport { getSiteConfig, mergeSiteConfig } from '../config';\nimport { configureI18n } from '../i18n';\nimport { configureLogging, MockLoggingService } from '../logging';\nimport mockMessages from './mockMessages';\n\n/**\n * Initializes a mock application for component testing. The mock application includes\n * mock analytics, auth, and logging services, and the real i18n service.\n *\n * See MockAnalyticsService, MockAuthService, and MockLoggingService for mock implementation\n * details. For the most part, the analytics and logging services just implement their functions\n * with jest.fn() and do nothing else, whereas the MockAuthService actually has some behavior\n * implemented, it just doesn't make any HTTP calls.\n *\n * Note that this mock application is not sufficient for testing the full application lifecycle or\n * initialization callbacks/custom handlers as described in the 'initialize' function's\n * documentation. It exists merely to set up the mock services that components themselves tend to\n * interact with most often. It could be extended to allow for setting up custom handlers fairly\n * easily, as this functionality would be more-or-less identical to what the real initialize\n * function does.\n *\n * Example:\n *\n * ```\n * import { initializeMockApp, logInfo } from '@openedx/frontend-base';\n *\n * describe('initializeMockApp', () => {\n * it('mocks things correctly', () => {\n * const { loggingService } = initializeMockApp();\n * logInfo('test', {});\n * expect(loggingService.logInfo).toHaveBeenCalledWith('test', {});\n * });\n * });\n * ```\n *\n * @param {Object} [options]\n * @param {*} [options.messages] A i18n-compatible messages object, or an array of such objects. If\n * an array is provided, duplicate keys are resolved with the last-one-in winning.\n * @param {UserData|null} [options.authenticatedUser] A UserData object representing the\n * authenticated user. This is passed directly to MockAuthService.\n * @memberof module:Testing\n */\nexport default function initializeMockApp({\n messages = mockMessages,\n authenticatedUser = null,\n}: {\n messages?: LocalizedMessages,\n authenticatedUser?: User | null,\n} = {}) {\n const config = siteConfig;\n mergeSiteConfig(config);\n\n const loggingService = configureLogging(MockLoggingService, {\n config: getSiteConfig(),\n });\n\n const authService = configureAuth(MockAuthService, {\n config: getSiteConfig(),\n loggingService,\n });\n\n setAuthenticatedUser(authenticatedUser);\n\n const analyticsService = configureAnalytics(MockAnalyticsService, {\n config: getSiteConfig(),\n httpClient: authService.getAuthenticatedHttpClient(),\n loggingService,\n });\n\n // The i18n service configureI18n function has no return value, since there isn't a service class.\n configureI18n({\n messages,\n });\n\n return {\n analyticsService,\n authService,\n loggingService,\n };\n}\n"]}
@@ -0,0 +1,22 @@
1
+ /**
2
+ * An empty messages object suitable for fulfilling the i18n service's contract.
3
+ * @memberof module:Testing
4
+ */
5
+ declare const messages: {
6
+ ar: {};
7
+ 'es-419': {};
8
+ fa: {};
9
+ 'fa-ir': {};
10
+ fr: {};
11
+ 'zh-cn': {};
12
+ ca: {};
13
+ he: {};
14
+ id: {};
15
+ 'ko-kr': {};
16
+ pl: {};
17
+ 'pt-br': {};
18
+ ru: {};
19
+ th: {};
20
+ uk: {};
21
+ };
22
+ export default messages;
@@ -0,0 +1,23 @@
1
+ /**
2
+ * An empty messages object suitable for fulfilling the i18n service's contract.
3
+ * @memberof module:Testing
4
+ */
5
+ const messages = {
6
+ ar: {},
7
+ 'es-419': {},
8
+ fa: {},
9
+ 'fa-ir': {},
10
+ fr: {},
11
+ 'zh-cn': {},
12
+ ca: {},
13
+ he: {},
14
+ id: {},
15
+ 'ko-kr': {},
16
+ pl: {},
17
+ 'pt-br': {},
18
+ ru: {},
19
+ th: {},
20
+ uk: {},
21
+ };
22
+ export default messages;
23
+ //# sourceMappingURL=mockMessages.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mockMessages.js","sourceRoot":"","sources":["../../../runtime/testing/mockMessages.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,QAAQ,GAAG;IACf,EAAE,EAAE,EAAE;IACN,QAAQ,EAAE,EAAE;IACZ,EAAE,EAAE,EAAE;IACN,OAAO,EAAE,EAAE;IACX,EAAE,EAAE,EAAE;IACN,OAAO,EAAE,EAAE;IACX,EAAE,EAAE,EAAE;IACN,EAAE,EAAE,EAAE;IACN,EAAE,EAAE,EAAE;IACN,OAAO,EAAE,EAAE;IACX,EAAE,EAAE,EAAE;IACN,OAAO,EAAE,EAAE;IACX,EAAE,EAAE,EAAE;IACN,EAAE,EAAE,EAAE;IACN,EAAE,EAAE,EAAE;CACP,CAAC;AAEF,eAAe,QAAQ,CAAC","sourcesContent":["/**\n * An empty messages object suitable for fulfilling the i18n service's contract.\n * @memberof module:Testing\n */\nconst messages = {\n ar: {},\n 'es-419': {},\n fa: {},\n 'fa-ir': {},\n fr: {},\n 'zh-cn': {},\n ca: {},\n he: {},\n id: {},\n 'ko-kr': {},\n pl: {},\n 'pt-br': {},\n ru: {},\n th: {},\n uk: {},\n};\n\nexport default messages;\n"]}
@@ -0,0 +1,95 @@
1
+ /**
2
+ * This is the underlying function used by camelCaseObject, snakeCaseObject, and convertKeyNames
3
+ * above.
4
+ *
5
+ * Given an object (or array) and a modification function, will perform the function on each key it
6
+ * encounters on the object and its tree of children.
7
+ *
8
+ * The modification function must take a string as an argument and returns a string.
9
+ *
10
+ * Example:
11
+ *
12
+ * ```
13
+ * (key) => {
14
+ * if (key === 'edX') {
15
+ * return 'Open edX';
16
+ * }
17
+ * return key;
18
+ * }
19
+ * ```
20
+ *
21
+ * This function will turn any key that matches 'edX' into 'Open edX'. All other keys will be
22
+ * passed through unmodified.
23
+ *
24
+ * Can accept arrays as well as objects, and will perform its conversion on any objects it finds in
25
+ * the array.
26
+ *
27
+ * @param {Object} object
28
+ * @param {function} modify
29
+ * @returns {Object}
30
+ */
31
+ export function modifyObjectKeys(object: any, modify: Function): any;
32
+ /**
33
+ * Performs a deep conversion to camelCase on all keys in the provided object and its tree of
34
+ * children. Uses [lodash.camelcase](https://lodash.com/docs/4.17.15#camelCase) on each key. This
35
+ * is commonly used to convert snake_case keys in models from a backend server into camelCase keys
36
+ * for use in the JavaScript client.
37
+ *
38
+ * Can accept arrays as well as objects, and will perform its conversion on any objects it finds in
39
+ * the array.
40
+ *
41
+ * @param {Array|Object} object
42
+ * @returns {Array|Object}
43
+ */
44
+ export function camelCaseObject(object: any[] | any): any[] | any;
45
+ /**
46
+ * Performs a deep conversion to snake_case on all keys in the provided object and its tree of
47
+ * children. Uses [lodash.snakecase](https://lodash.com/docs/4.17.15#snakeCase) on each key. This
48
+ * is commonly used to convert camelCase keys from the JavaScript app into snake_case keys expected
49
+ * by backend servers.
50
+ *
51
+ * Can accept arrays as well as objects, and will perform its conversion on any objects it finds in
52
+ * the array.
53
+ *
54
+ * @param {Array|Object} object
55
+ * @returns {Array|Object}
56
+ */
57
+ export function snakeCaseObject(object: any[] | any): any[] | any;
58
+ /**
59
+ * Given a map of key-value pairs, performs a deep conversion key names in the specified object
60
+ * _from_ the key _to_ the value. This is useful for updating names in an API request to the names
61
+ * used throughout a client application if they happen to differ. It can also be used in the
62
+ * reverse - formatting names from the client application to names expected by an API.
63
+ *
64
+ * ```
65
+ * import { convertKeyNames } from '@openedx/frontend-base';
66
+ *
67
+ * // This object can be of any shape or depth with subobjects/arrays.
68
+ * const myObject = {
69
+ * myKey: 'my value',
70
+ * }
71
+ *
72
+ * const result = convertKeyNames(myObject, { myKey: 'their_key' });
73
+ *
74
+ * console.log(result) // { their_key: 'my value' }
75
+ * ```
76
+ *
77
+ * Can accept arrays as well as objects, and will perform its conversion on any objects it finds in
78
+ * the array.
79
+ *
80
+ * @param {Array|Object} object
81
+ * @param {Object} nameMap
82
+ * @returns {Array|Object}
83
+ */
84
+ export function convertKeyNames(object: any[] | any, nameMap: any): any[] | any;
85
+ /**
86
+ * *Deprecated*: A method which converts the supplied query string into an object of
87
+ * key-value pairs and returns it. Defaults to the current query string - should perform like
88
+ * [window.searchParams](https://developer.mozilla.org/en-US/docs/Web/API/URL/searchParams)
89
+ *
90
+ * @deprecated
91
+ * @param {string} [search=global.location.search]
92
+ * @returns {Object}
93
+ */
94
+ export function getQueryParameters(search?: string): any;
95
+ export function isValidVariableName(name: any): boolean;