@openedx/frontend-base 1.0.0-alpha.9 → 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (895) hide show
  1. package/README.md +27 -0
  2. package/dist/index.d.ts +4 -0
  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/dist/runtime/analytics/interface.js +133 -0
  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/dist/runtime/auth/interface.js +302 -0
  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/dist/runtime/babel.config.js +4 -0
  55. package/dist/runtime/babel.config.js.map +1 -0
  56. package/dist/runtime/config/index.d.ts +216 -0
  57. package/dist/runtime/config/index.js +428 -0
  58. package/dist/runtime/config/index.js.map +1 -0
  59. package/dist/runtime/constants.d.ts +57 -0
  60. package/dist/runtime/constants.js +58 -0
  61. package/dist/runtime/constants.js.map +1 -0
  62. package/dist/runtime/i18n/index.d.ts +3 -0
  63. package/dist/runtime/i18n/index.js +78 -0
  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/dist/runtime/logging/index.d.ts +3 -0
  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/dist/runtime/logging/interface.js +99 -0
  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/dist/runtime/react/AuthenticatedPageRoute.js +38 -0
  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 +20 -0
  100. package/dist/runtime/react/CombinedAppProvider.js.map +1 -0
  101. package/dist/runtime/react/CurrentAppContext.d.ts +20 -0
  102. package/dist/runtime/react/CurrentAppContext.js +21 -0
  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/dist/runtime/react/LoginRedirect.js +16 -0
  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/dist/runtime/react/PageWrap.js +21 -0
  124. package/dist/runtime/react/PageWrap.js.map +1 -0
  125. package/dist/runtime/react/SiteContext.d.ts +24 -0
  126. package/dist/runtime/react/SiteContext.js +26 -0
  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.js +3 -0
  138. package/dist/runtime/react/hooks/theme/index.js.map +1 -0
  139. package/dist/runtime/react/hooks/theme/useTheme.d.ts +35 -0
  140. package/dist/runtime/react/hooks/theme/useTheme.js +153 -0
  141. package/dist/runtime/react/hooks/theme/useTheme.js.map +1 -0
  142. package/dist/runtime/react/hooks/theme/useThemeConfig.d.ts +16 -0
  143. package/dist/runtime/react/hooks/theme/useThemeConfig.js +29 -0
  144. package/dist/runtime/react/hooks/theme/useThemeConfig.js.map +1 -0
  145. package/dist/runtime/react/hooks/theme/useThemeCore.d.ts +10 -0
  146. package/dist/runtime/react/hooks/theme/useThemeCore.js +48 -0
  147. package/dist/runtime/react/hooks/theme/useThemeCore.js.map +1 -0
  148. package/dist/runtime/react/hooks/theme/useThemeVariants.d.ts +17 -0
  149. package/dist/runtime/react/hooks/theme/useThemeVariants.js +90 -0
  150. package/dist/runtime/react/hooks/theme/useThemeVariants.js.map +1 -0
  151. package/dist/runtime/react/hooks/theme/useTrackColorSchemeChoice.d.ts +8 -0
  152. package/dist/runtime/react/hooks/theme/useTrackColorSchemeChoice.js +30 -0
  153. package/dist/runtime/react/hooks/theme/useTrackColorSchemeChoice.js.map +1 -0
  154. package/dist/runtime/react/hooks/theme/utils.d.ts +6 -0
  155. package/dist/runtime/react/hooks/theme/utils.js +11 -0
  156. package/dist/runtime/react/hooks/theme/utils.js.map +1 -0
  157. package/dist/runtime/react/hooks/useActiveRoles.d.ts +2 -0
  158. package/dist/runtime/react/hooks/useActiveRoles.js +16 -0
  159. package/dist/runtime/react/hooks/useActiveRoles.js.map +1 -0
  160. package/dist/runtime/react/hooks/useActiveRouteRoleWatcher.d.ts +2 -0
  161. package/dist/runtime/react/hooks/useActiveRouteRoleWatcher.js +22 -0
  162. package/dist/runtime/react/hooks/useActiveRouteRoleWatcher.js.map +1 -0
  163. package/dist/runtime/react/hooks/useAppConfig.d.ts +2 -0
  164. package/dist/runtime/react/hooks/useAppConfig.js +8 -0
  165. package/dist/runtime/react/hooks/useAppConfig.js.map +1 -0
  166. package/dist/runtime/react/hooks/useAuthenticatedUser.d.ts +2 -0
  167. package/dist/runtime/react/hooks/useAuthenticatedUser.js +8 -0
  168. package/dist/runtime/react/hooks/useAuthenticatedUser.js.map +1 -0
  169. package/dist/runtime/react/hooks/useSiteConfig.d.ts +2 -0
  170. package/dist/runtime/react/hooks/useSiteConfig.js +8 -0
  171. package/dist/runtime/react/hooks/useSiteConfig.js.map +1 -0
  172. package/dist/runtime/react/hooks/useSiteEvent.d.ts +12 -0
  173. package/dist/runtime/react/hooks/useSiteEvent.js +22 -0
  174. package/dist/runtime/react/hooks/useSiteEvent.js.map +1 -0
  175. package/dist/runtime/react/index.d.ts +19 -0
  176. package/dist/runtime/react/index.js +20 -0
  177. package/dist/runtime/react/index.js.map +1 -0
  178. package/dist/runtime/react/reducers.d.ts +11 -0
  179. package/dist/runtime/react/reducers.js +28 -0
  180. package/dist/runtime/react/reducers.js.map +1 -0
  181. package/dist/runtime/routing/authenticatedLoader.d.ts +2 -0
  182. package/dist/runtime/routing/authenticatedLoader.js +27 -0
  183. package/dist/runtime/routing/authenticatedLoader.js.map +1 -0
  184. package/dist/runtime/routing/index.d.ts +2 -0
  185. package/dist/runtime/routing/index.js +3 -0
  186. package/dist/runtime/routing/index.js.map +1 -0
  187. package/dist/runtime/routing/utils.d.ts +4 -0
  188. package/dist/runtime/routing/utils.js +43 -0
  189. package/dist/runtime/routing/utils.js.map +1 -0
  190. package/dist/runtime/scripts/index.d.ts +1 -0
  191. package/dist/runtime/scripts/index.js +14 -0
  192. package/dist/runtime/scripts/index.js.map +1 -0
  193. package/dist/runtime/setupTest.d.ts +1 -0
  194. package/dist/runtime/setupTest.js +12 -0
  195. package/dist/runtime/setupTest.js.map +1 -0
  196. package/dist/runtime/slots/Slot.d.ts +11 -0
  197. package/dist/runtime/slots/Slot.js +37 -0
  198. package/dist/runtime/slots/Slot.js.map +1 -0
  199. package/dist/runtime/slots/SlotContext.d.ts +8 -0
  200. package/dist/runtime/slots/SlotContext.js +7 -0
  201. package/dist/runtime/slots/SlotContext.js.map +1 -0
  202. package/dist/runtime/slots/hooks.d.ts +11 -0
  203. package/dist/runtime/slots/hooks.js +19 -0
  204. package/dist/runtime/slots/hooks.js.map +1 -0
  205. package/dist/runtime/slots/index.js +7 -0
  206. package/dist/runtime/slots/index.js.map +1 -0
  207. package/dist/runtime/slots/layout/DefaultSlotLayout.d.ts +1 -0
  208. package/dist/runtime/slots/layout/DefaultSlotLayout.js +7 -0
  209. package/dist/runtime/slots/layout/DefaultSlotLayout.js.map +1 -0
  210. package/dist/runtime/slots/layout/hooks.d.ts +9 -0
  211. package/dist/runtime/slots/layout/hooks.js +52 -0
  212. package/dist/runtime/slots/layout/hooks.js.map +1 -0
  213. package/dist/runtime/slots/layout/index.js +5 -0
  214. package/dist/runtime/slots/layout/index.js.map +1 -0
  215. package/dist/runtime/slots/layout/types.d.ts +30 -0
  216. package/dist/runtime/slots/layout/types.js +12 -0
  217. package/dist/runtime/slots/layout/types.js.map +1 -0
  218. package/dist/runtime/slots/layout/utils.d.ts +5 -0
  219. package/dist/runtime/slots/layout/utils.js +11 -0
  220. package/dist/runtime/slots/layout/utils.js.map +1 -0
  221. package/dist/runtime/slots/types.d.ts +18 -0
  222. package/dist/runtime/slots/types.js +7 -0
  223. package/dist/runtime/slots/types.js.map +1 -0
  224. package/dist/runtime/slots/utils.d.ts +3 -0
  225. package/dist/runtime/slots/utils.js +65 -0
  226. package/dist/runtime/slots/utils.js.map +1 -0
  227. package/dist/runtime/slots/widget/WidgetContext.d.ts +6 -0
  228. package/dist/runtime/slots/widget/WidgetContext.js +8 -0
  229. package/dist/runtime/slots/widget/WidgetContext.js.map +1 -0
  230. package/dist/runtime/slots/widget/WidgetProvider.d.ts +9 -0
  231. package/dist/runtime/slots/widget/WidgetProvider.js +18 -0
  232. package/dist/runtime/slots/widget/WidgetProvider.js.map +1 -0
  233. package/dist/runtime/slots/widget/hooks.d.ts +12 -0
  234. package/dist/runtime/slots/widget/hooks.js +84 -0
  235. package/dist/runtime/slots/widget/hooks.js.map +1 -0
  236. package/dist/runtime/slots/widget/iframe/IFrameContentWrapper.d.ts +10 -0
  237. package/dist/runtime/slots/widget/iframe/IFrameContentWrapper.js +42 -0
  238. package/dist/runtime/slots/widget/iframe/IFrameContentWrapper.js.map +1 -0
  239. package/dist/runtime/slots/widget/iframe/IFrameContentWrapper.messages.d.ts +13 -0
  240. package/dist/runtime/slots/widget/iframe/IFrameContentWrapper.messages.js +15 -0
  241. package/dist/runtime/slots/widget/iframe/IFrameContentWrapper.messages.js.map +1 -0
  242. package/dist/runtime/slots/widget/iframe/IFrameWidget.d.ts +6 -0
  243. package/dist/runtime/slots/widget/iframe/IFrameWidget.js +32 -0
  244. package/dist/runtime/slots/widget/iframe/IFrameWidget.js.map +1 -0
  245. package/dist/runtime/slots/widget/iframe/constants.d.ts +15 -0
  246. package/dist/runtime/slots/widget/iframe/constants.js +17 -0
  247. package/dist/runtime/slots/widget/iframe/constants.js.map +1 -0
  248. package/dist/runtime/slots/widget/iframe/hooks.d.ts +64 -0
  249. package/dist/runtime/slots/widget/iframe/hooks.js +144 -0
  250. package/dist/runtime/slots/widget/iframe/hooks.js.map +1 -0
  251. package/dist/runtime/slots/widget/iframe/index.d.ts +3 -0
  252. package/dist/runtime/slots/widget/iframe/index.js +3 -0
  253. package/dist/runtime/slots/widget/iframe/index.js.map +1 -0
  254. package/dist/runtime/slots/widget/iframe/types.d.ts +5 -0
  255. package/dist/runtime/slots/widget/iframe/types.js +3 -0
  256. package/dist/runtime/slots/widget/iframe/types.js.map +1 -0
  257. package/dist/runtime/slots/widget/index.js +6 -0
  258. package/dist/runtime/slots/widget/index.js.map +1 -0
  259. package/dist/runtime/slots/widget/types.d.ts +108 -0
  260. package/dist/runtime/slots/widget/types.js +41 -0
  261. package/dist/runtime/slots/widget/types.js.map +1 -0
  262. package/dist/runtime/slots/widget/utils.d.ts +22 -0
  263. package/dist/runtime/slots/widget/utils.js +181 -0
  264. package/dist/runtime/slots/widget/utils.js.map +1 -0
  265. package/dist/runtime/subscriptions.d.ts +24 -0
  266. package/dist/runtime/subscriptions.js +48 -0
  267. package/dist/runtime/subscriptions.js.map +1 -0
  268. package/dist/runtime/testing/index.d.ts +8 -0
  269. package/dist/runtime/testing/index.js +9 -0
  270. package/dist/runtime/testing/index.js.map +1 -0
  271. package/dist/runtime/testing/initializeMockApp.d.ts +46 -0
  272. package/dist/runtime/testing/initializeMockApp.js +71 -0
  273. package/dist/runtime/testing/initializeMockApp.js.map +1 -0
  274. package/dist/runtime/testing/mockMessages.d.ts +22 -0
  275. package/dist/runtime/testing/mockMessages.js +23 -0
  276. package/dist/runtime/testing/mockMessages.js.map +1 -0
  277. package/dist/runtime/utils.d.ts +95 -0
  278. package/dist/runtime/utils.js +163 -0
  279. package/dist/runtime/utils.js.map +1 -0
  280. package/dist/shell/DefaultLayout.d.ts +1 -0
  281. package/dist/shell/DefaultLayout.js +7 -0
  282. package/dist/shell/DefaultLayout.js.map +1 -0
  283. package/dist/shell/DefaultMain.d.ts +1 -0
  284. package/dist/shell/DefaultMain.js +6 -0
  285. package/dist/shell/DefaultMain.js.map +1 -0
  286. package/dist/shell/Logo.d.ts +6 -0
  287. package/dist/shell/Logo.js +16 -0
  288. package/dist/shell/Logo.js.map +1 -0
  289. package/dist/shell/Shell.d.ts +1 -0
  290. package/dist/shell/Shell.js +10 -0
  291. package/dist/shell/Shell.js.map +1 -0
  292. package/dist/shell/Shell.messages.d.ts +63 -0
  293. package/dist/shell/Shell.messages.js +65 -0
  294. package/dist/shell/Shell.messages.js.map +1 -0
  295. package/dist/shell/app.d.ts +3 -0
  296. package/dist/shell/app.js +43 -0
  297. package/dist/shell/app.js.map +1 -0
  298. package/dist/shell/babel.config.d.ts +2 -0
  299. package/dist/shell/babel.config.js +4 -0
  300. package/dist/shell/babel.config.js.map +1 -0
  301. package/dist/shell/constants.d.ts +2 -0
  302. package/dist/shell/constants.js +3 -0
  303. package/dist/shell/constants.js.map +1 -0
  304. package/dist/shell/dev/devFooter/app.d.ts +3 -0
  305. package/dist/shell/dev/devFooter/app.js +36 -0
  306. package/dist/shell/dev/devFooter/app.js.map +1 -0
  307. package/dist/shell/dev/devFooter/index.js +2 -0
  308. package/dist/shell/dev/devFooter/index.js.map +1 -0
  309. package/dist/shell/dev/devHeader/BarContext.d.ts +7 -0
  310. package/dist/shell/dev/devHeader/BarContext.js +8 -0
  311. package/dist/shell/dev/devHeader/BarContext.js.map +1 -0
  312. package/dist/shell/dev/devHeader/BarLink.d.ts +1 -0
  313. package/dist/shell/dev/devHeader/BarLink.js +10 -0
  314. package/dist/shell/dev/devHeader/BarLink.js.map +1 -0
  315. package/dist/shell/dev/devHeader/BarProvider.d.ts +6 -0
  316. package/dist/shell/dev/devHeader/BarProvider.js +16 -0
  317. package/dist/shell/dev/devHeader/BarProvider.js.map +1 -0
  318. package/dist/shell/dev/devHeader/CoursesLink.d.ts +1 -0
  319. package/dist/shell/dev/devHeader/CoursesLink.js +10 -0
  320. package/dist/shell/dev/devHeader/CoursesLink.js.map +1 -0
  321. package/dist/shell/dev/devHeader/FooContext.d.ts +7 -0
  322. package/dist/shell/dev/devHeader/FooContext.js +8 -0
  323. package/dist/shell/dev/devHeader/FooContext.js.map +1 -0
  324. package/dist/shell/dev/devHeader/FooLink.d.ts +1 -0
  325. package/dist/shell/dev/devHeader/FooLink.js +10 -0
  326. package/dist/shell/dev/devHeader/FooLink.js.map +1 -0
  327. package/dist/shell/dev/devHeader/FooProvider.d.ts +6 -0
  328. package/dist/shell/dev/devHeader/FooProvider.js +16 -0
  329. package/dist/shell/dev/devHeader/FooProvider.js.map +1 -0
  330. package/dist/shell/dev/devHeader/app.d.ts +3 -0
  331. package/dist/shell/dev/devHeader/app.js +34 -0
  332. package/dist/shell/dev/devHeader/app.js.map +1 -0
  333. package/dist/shell/dev/devHeader/index.js +2 -0
  334. package/dist/shell/dev/devHeader/index.js.map +1 -0
  335. package/dist/shell/dev/devHeader/providers.d.ts +3 -0
  336. package/dist/shell/dev/devHeader/providers.js +8 -0
  337. package/dist/shell/dev/devHeader/providers.js.map +1 -0
  338. package/dist/shell/dev/devHome/HomePage.d.ts +1 -0
  339. package/dist/shell/dev/devHome/HomePage.js +14 -0
  340. package/dist/shell/dev/devHome/HomePage.js.map +1 -0
  341. package/dist/shell/dev/devHome/app.d.ts +3 -0
  342. package/dist/shell/dev/devHome/app.js +15 -0
  343. package/dist/shell/dev/devHome/app.js.map +1 -0
  344. package/dist/shell/dev/devHome/index.js +2 -0
  345. package/dist/shell/dev/devHome/index.js.map +1 -0
  346. package/dist/shell/dev/devHome/messages.d.ts +8 -0
  347. package/dist/shell/dev/devHome/messages.js +10 -0
  348. package/dist/shell/dev/devHome/messages.js.map +1 -0
  349. package/dist/shell/dev/index.d.ts +4 -0
  350. package/dist/shell/dev/index.js +5 -0
  351. package/dist/shell/dev/index.js.map +1 -0
  352. package/dist/shell/dev/slotShowcase/HorizontalSlotLayout.d.ts +1 -0
  353. package/dist/shell/dev/slotShowcase/HorizontalSlotLayout.js +8 -0
  354. package/dist/shell/dev/slotShowcase/HorizontalSlotLayout.js.map +1 -0
  355. package/dist/shell/dev/slotShowcase/LayoutWithOptions.d.ts +1 -0
  356. package/dist/shell/dev/slotShowcase/LayoutWithOptions.js +9 -0
  357. package/dist/shell/dev/slotShowcase/LayoutWithOptions.js.map +1 -0
  358. package/dist/shell/dev/slotShowcase/SlotShowcase.scss +50 -0
  359. package/dist/shell/dev/slotShowcase/SlotShowcasePage.d.ts +2 -0
  360. package/dist/shell/dev/slotShowcase/SlotShowcasePage.js +17 -0
  361. package/dist/shell/dev/slotShowcase/SlotShowcasePage.js.map +1 -0
  362. package/dist/shell/dev/slotShowcase/ToggleByRoleLayout.d.ts +1 -0
  363. package/dist/shell/dev/slotShowcase/ToggleByRoleLayout.js +11 -0
  364. package/dist/shell/dev/slotShowcase/ToggleByRoleLayout.js.map +1 -0
  365. package/dist/shell/dev/slotShowcase/WidgetWithOptions.d.ts +1 -0
  366. package/dist/shell/dev/slotShowcase/WidgetWithOptions.js +8 -0
  367. package/dist/shell/dev/slotShowcase/WidgetWithOptions.js.map +1 -0
  368. package/dist/shell/dev/slotShowcase/app.d.ts +3 -0
  369. package/dist/shell/dev/slotShowcase/app.js +372 -0
  370. package/dist/shell/dev/slotShowcase/app.js.map +1 -0
  371. package/dist/shell/dev/slotShowcase/index.js +2 -0
  372. package/dist/shell/dev/slotShowcase/index.js.map +1 -0
  373. package/dist/shell/footer/CenterLinks.d.ts +1 -0
  374. package/dist/shell/footer/CenterLinks.js +7 -0
  375. package/dist/shell/footer/CenterLinks.js.map +1 -0
  376. package/dist/shell/footer/CopyrightNotice.d.ts +10 -0
  377. package/dist/shell/footer/CopyrightNotice.js +10 -0
  378. package/dist/shell/footer/CopyrightNotice.js.map +1 -0
  379. package/dist/shell/footer/DesktopFooterLayout.d.ts +1 -0
  380. package/dist/shell/footer/DesktopFooterLayout.js +12 -0
  381. package/dist/shell/footer/DesktopFooterLayout.js.map +1 -0
  382. package/dist/shell/footer/Footer.d.ts +1 -0
  383. package/dist/shell/footer/Footer.js +6 -0
  384. package/dist/shell/footer/Footer.js.map +1 -0
  385. package/dist/shell/footer/LabeledLinkColumn.d.ts +1 -0
  386. package/dist/shell/footer/LabeledLinkColumn.js +11 -0
  387. package/dist/shell/footer/LabeledLinkColumn.js.map +1 -0
  388. package/dist/shell/footer/LanguageMenu.d.ts +1 -0
  389. package/dist/shell/footer/LanguageMenu.js +16 -0
  390. package/dist/shell/footer/LanguageMenu.js.map +1 -0
  391. package/dist/shell/footer/LanguageMenuItem.d.ts +8 -0
  392. package/dist/shell/footer/LanguageMenuItem.js +11 -0
  393. package/dist/shell/footer/LanguageMenuItem.js.map +1 -0
  394. package/dist/shell/footer/LeftLinks.d.ts +1 -0
  395. package/dist/shell/footer/LeftLinks.js +7 -0
  396. package/dist/shell/footer/LeftLinks.js.map +1 -0
  397. package/dist/shell/footer/LegalNotices.d.ts +1 -0
  398. package/dist/shell/footer/LegalNotices.js +10 -0
  399. package/dist/shell/footer/LegalNotices.js.map +1 -0
  400. package/dist/shell/footer/PoweredBy.d.ts +1 -0
  401. package/dist/shell/footer/PoweredBy.js +9 -0
  402. package/dist/shell/footer/PoweredBy.js.map +1 -0
  403. package/dist/shell/footer/RevealLinks.d.ts +1 -0
  404. package/dist/shell/footer/RevealLinks.js +16 -0
  405. package/dist/shell/footer/RevealLinks.js.map +1 -0
  406. package/dist/shell/footer/RightLinks.d.ts +1 -0
  407. package/dist/shell/footer/RightLinks.js +7 -0
  408. package/dist/shell/footer/RightLinks.js.map +1 -0
  409. package/dist/shell/footer/app.d.ts +3 -0
  410. package/dist/shell/footer/app.js +67 -0
  411. package/dist/shell/footer/app.js.map +1 -0
  412. package/dist/shell/footer/data/api.d.ts +1 -0
  413. package/dist/shell/footer/data/api.js +45 -0
  414. package/dist/shell/footer/data/api.js.map +1 -0
  415. package/dist/shell/footer/index.js +3 -0
  416. package/dist/shell/footer/index.js.map +1 -0
  417. package/dist/shell/header/AuthenticatedMenu.d.ts +5 -0
  418. package/dist/shell/header/AuthenticatedMenu.js +9 -0
  419. package/dist/shell/header/AuthenticatedMenu.js.map +1 -0
  420. package/dist/shell/header/Header.d.ts +1 -0
  421. package/dist/shell/header/Header.js +8 -0
  422. package/dist/shell/header/Header.js.map +1 -0
  423. package/dist/shell/header/HelpButton.d.ts +5 -0
  424. package/dist/shell/header/HelpButton.js +10 -0
  425. package/dist/shell/header/HelpButton.js.map +1 -0
  426. package/dist/shell/header/anonymous-menu/AnonymousMenu.d.ts +5 -0
  427. package/dist/shell/header/anonymous-menu/AnonymousMenu.js +7 -0
  428. package/dist/shell/header/anonymous-menu/AnonymousMenu.js.map +1 -0
  429. package/dist/shell/header/anonymous-menu/LoginButton.d.ts +3 -0
  430. package/dist/shell/header/anonymous-menu/LoginButton.js +22 -0
  431. package/dist/shell/header/anonymous-menu/LoginButton.js.map +1 -0
  432. package/dist/shell/header/anonymous-menu/RegisterButton.d.ts +3 -0
  433. package/dist/shell/header/anonymous-menu/RegisterButton.js +22 -0
  434. package/dist/shell/header/anonymous-menu/RegisterButton.js.map +1 -0
  435. package/dist/shell/header/app.d.ts +4 -0
  436. package/dist/shell/header/app.js +157 -0
  437. package/dist/shell/header/app.js.map +1 -0
  438. package/dist/shell/header/app.scss +20 -0
  439. package/dist/shell/header/constants.d.ts +3 -0
  440. package/dist/shell/header/constants.js +4 -0
  441. package/dist/shell/header/constants.js.map +1 -0
  442. package/dist/shell/header/course-bar/data/service.d.ts +11 -0
  443. package/dist/shell/header/course-bar/data/service.js +49 -0
  444. package/dist/shell/header/course-bar/data/service.js.map +1 -0
  445. package/dist/shell/header/course-bar/masquerade/MasqueradeBar.d.ts +1 -0
  446. package/dist/shell/header/course-bar/masquerade/MasqueradeBar.js +22 -0
  447. package/dist/shell/header/course-bar/masquerade/MasqueradeBar.js.map +1 -0
  448. package/dist/shell/header/course-bar/masquerade/MasqueradeContext.d.ts +3 -0
  449. package/dist/shell/header/course-bar/masquerade/MasqueradeContext.js +10 -0
  450. package/dist/shell/header/course-bar/masquerade/MasqueradeContext.js.map +1 -0
  451. package/dist/shell/header/course-bar/masquerade/StudioLink.d.ts +6 -0
  452. package/dist/shell/header/course-bar/masquerade/StudioLink.js +27 -0
  453. package/dist/shell/header/course-bar/masquerade/StudioLink.js.map +1 -0
  454. package/dist/shell/header/course-bar/masquerade/data/api.d.ts +29 -0
  455. package/dist/shell/header/course-bar/masquerade/data/api.js +33 -0
  456. package/dist/shell/header/course-bar/masquerade/data/api.js.map +1 -0
  457. package/dist/shell/header/course-bar/masquerade/hooks.d.ts +20 -0
  458. package/dist/shell/header/course-bar/masquerade/hooks.js +203 -0
  459. package/dist/shell/header/course-bar/masquerade/hooks.js.map +1 -0
  460. package/dist/shell/header/course-bar/masquerade/index.d.ts +1 -0
  461. package/dist/shell/header/course-bar/masquerade/index.js +2 -0
  462. package/dist/shell/header/course-bar/masquerade/index.js.map +1 -0
  463. package/dist/shell/header/course-bar/masquerade/masquerade-widget/MasqueradeUserNameInput.d.ts +7 -0
  464. package/dist/shell/header/course-bar/masquerade/masquerade-widget/MasqueradeUserNameInput.js +18 -0
  465. package/dist/shell/header/course-bar/masquerade/masquerade-widget/MasqueradeUserNameInput.js.map +1 -0
  466. package/dist/shell/header/course-bar/masquerade/masquerade-widget/MasqueradeWidget.d.ts +1 -0
  467. package/dist/shell/header/course-bar/masquerade/masquerade-widget/MasqueradeWidget.js +16 -0
  468. package/dist/shell/header/course-bar/masquerade/masquerade-widget/MasqueradeWidget.js.map +1 -0
  469. package/dist/shell/header/course-bar/masquerade/masquerade-widget/MasqueradeWidgetOption.d.ts +6 -0
  470. package/dist/shell/header/course-bar/masquerade/masquerade-widget/MasqueradeWidgetOption.js +18 -0
  471. package/dist/shell/header/course-bar/masquerade/masquerade-widget/MasqueradeWidgetOption.js.map +1 -0
  472. package/dist/shell/header/course-bar/masquerade/masquerade-widget/index.d.ts +2 -0
  473. package/dist/shell/header/course-bar/masquerade/masquerade-widget/index.js +3 -0
  474. package/dist/shell/header/course-bar/masquerade/masquerade-widget/index.js.map +1 -0
  475. package/dist/shell/header/course-bar/masquerade/masquerade-widget/messages.d.ts +28 -0
  476. package/dist/shell/header/course-bar/masquerade/masquerade-widget/messages.js +30 -0
  477. package/dist/shell/header/course-bar/masquerade/masquerade-widget/messages.js.map +1 -0
  478. package/dist/shell/header/course-bar/masquerade/messages.d.ts +28 -0
  479. package/dist/shell/header/course-bar/masquerade/messages.js +30 -0
  480. package/dist/shell/header/course-bar/masquerade/messages.js.map +1 -0
  481. package/dist/shell/header/course-bar/navigation/CourseTabsNavigation.d.ts +3 -0
  482. package/dist/shell/header/course-bar/navigation/CourseTabsNavigation.js +39 -0
  483. package/dist/shell/header/course-bar/navigation/CourseTabsNavigation.js.map +1 -0
  484. package/dist/shell/header/course-bar/navigation/course-tabs-navigation.scss +7 -0
  485. package/dist/shell/header/course-bar/navigation/messages.d.ts +8 -0
  486. package/dist/shell/header/course-bar/navigation/messages.js +10 -0
  487. package/dist/shell/header/course-bar/navigation/messages.js.map +1 -0
  488. package/dist/shell/header/course-bar/utils.d.ts +3 -0
  489. package/dist/shell/header/course-bar/utils.js +54 -0
  490. package/dist/shell/header/course-bar/utils.js.map +1 -0
  491. package/dist/shell/header/desktop/DesktopLayout.d.ts +1 -0
  492. package/dist/shell/header/desktop/DesktopLayout.js +10 -0
  493. package/dist/shell/header/desktop/DesktopLayout.js.map +1 -0
  494. package/dist/shell/header/desktop/PrimaryNavLinks.d.ts +1 -0
  495. package/dist/shell/header/desktop/PrimaryNavLinks.js +7 -0
  496. package/dist/shell/header/desktop/PrimaryNavLinks.js.map +1 -0
  497. package/dist/shell/header/desktop/SecondaryNavLinks.d.ts +1 -0
  498. package/dist/shell/header/desktop/SecondaryNavLinks.js +7 -0
  499. package/dist/shell/header/desktop/SecondaryNavLinks.js.map +1 -0
  500. package/dist/shell/header/helpButtonSlotOperation.d.ts +6 -0
  501. package/dist/shell/header/helpButtonSlotOperation.js +14 -0
  502. package/dist/shell/header/helpButtonSlotOperation.js.map +1 -0
  503. package/dist/shell/header/index.d.ts +5 -0
  504. package/dist/shell/header/index.js +6 -0
  505. package/dist/shell/header/index.js.map +1 -0
  506. package/dist/shell/header/mobile/MobileLayout.d.ts +1 -0
  507. package/dist/shell/header/mobile/MobileLayout.js +17 -0
  508. package/dist/shell/header/mobile/MobileLayout.js.map +1 -0
  509. package/dist/shell/header/mobile/MobileNavLinks.d.ts +1 -0
  510. package/dist/shell/header/mobile/MobileNavLinks.js +7 -0
  511. package/dist/shell/header/mobile/MobileNavLinks.js.map +1 -0
  512. package/dist/shell/index.d.ts +8 -0
  513. package/dist/shell/index.js +9 -0
  514. package/dist/shell/index.js.map +1 -0
  515. package/dist/shell/jest.config.d.ts +15 -0
  516. package/dist/shell/jest.config.js +32 -0
  517. package/dist/shell/jest.config.js.map +1 -0
  518. package/dist/shell/layer-order.scss +1 -0
  519. package/dist/shell/menus/LinkMenuItem.d.ts +9 -0
  520. package/dist/shell/menus/LinkMenuItem.js +38 -0
  521. package/dist/shell/menus/LinkMenuItem.js.map +1 -0
  522. package/dist/shell/menus/NavDropdownMenuSlot.d.ts +7 -0
  523. package/dist/shell/menus/NavDropdownMenuSlot.js +14 -0
  524. package/dist/shell/menus/NavDropdownMenuSlot.js.map +1 -0
  525. package/dist/shell/menus/ProfileLinkMenuItem.d.ts +8 -0
  526. package/dist/shell/menus/ProfileLinkMenuItem.js +16 -0
  527. package/dist/shell/menus/ProfileLinkMenuItem.js.map +1 -0
  528. package/dist/shell/menus/data/utils.d.ts +4 -0
  529. package/dist/shell/menus/data/utils.js +13 -0
  530. package/dist/shell/menus/data/utils.js.map +1 -0
  531. package/dist/shell/router/createRouter.d.ts +1 -0
  532. package/dist/shell/router/createRouter.js +26 -0
  533. package/dist/shell/router/createRouter.js.map +1 -0
  534. package/dist/shell/router/getAppRoutes.d.ts +2 -0
  535. package/dist/shell/router/getAppRoutes.js +27 -0
  536. package/dist/shell/router/getAppRoutes.js.map +1 -0
  537. package/dist/shell/setupTest.d.ts +1 -0
  538. package/dist/shell/setupTest.js +12 -0
  539. package/dist/shell/setupTest.js.map +1 -0
  540. package/dist/shell/site.config.dev.d.ts +4 -0
  541. package/dist/shell/site.config.dev.js +43 -0
  542. package/dist/shell/site.config.dev.js.map +1 -0
  543. package/dist/shell/site.d.ts +1 -0
  544. package/dist/shell/site.js +45 -0
  545. package/dist/shell/site.js.map +1 -0
  546. package/dist/shell/style.d.ts +3 -0
  547. package/dist/shell/style.js +10 -0
  548. package/dist/shell/style.js.map +1 -0
  549. package/dist/shell/style.scss +147 -0
  550. package/dist/tools/babel/babel.config.d.ts +12 -0
  551. package/dist/tools/babel.config.d.ts +2 -0
  552. package/dist/tools/babel.config.js +3 -0
  553. package/dist/tools/cli/commands/serve.d.ts +1 -0
  554. package/dist/tools/cli/commands/translations.d.ts +2 -0
  555. package/dist/tools/cli/commands/translations.js +20 -0
  556. package/dist/tools/cli/openedx.d.ts +2 -0
  557. package/dist/tools/cli/openedx.js +111 -0
  558. package/dist/tools/cli/utils/ensureConfigFilenameOption.d.ts +2 -0
  559. package/dist/tools/cli/utils/formatter.d.ts +1 -0
  560. package/dist/tools/cli/utils/formatter.js +3 -0
  561. package/dist/tools/cli/utils/getResolvedConfigPath.d.ts +2 -0
  562. package/dist/tools/cli/utils/prettyPrintTitle.d.ts +1 -0
  563. package/dist/tools/cli/utils/printUsage.d.ts +1 -0
  564. package/dist/tools/cli/utils/printUsage.js +47 -0
  565. package/dist/tools/cli/utils/translations/index.d.ts +2 -0
  566. package/dist/tools/cli/utils/translations/index.js +7 -0
  567. package/dist/tools/cli/utils/translations/messagesObject.d.ts +26 -0
  568. package/dist/tools/cli/utils/translations/messagesObject.js +66 -0
  569. package/dist/tools/cli/utils/translations/prepare.d.ts +5 -0
  570. package/dist/tools/cli/utils/translations/prepare.js +98 -0
  571. package/dist/tools/cli/utils/translations/pull.d.ts +6 -0
  572. package/dist/tools/cli/utils/translations/pull.js +102 -0
  573. package/dist/tools/config-helpers/createConfig.d.ts +2 -0
  574. package/dist/tools/config-helpers/createLintConfig.d.ts +2 -0
  575. package/dist/tools/config-helpers/getBaseConfig.d.ts +2 -0
  576. package/dist/tools/defaultConfigPaths.d.ts +8 -0
  577. package/dist/tools/eslint/base.eslint.config.d.ts +3 -0
  578. package/dist/tools/eslint/base.eslint.config.js +114 -0
  579. package/dist/tools/eslint.config.d.ts +3 -0
  580. package/dist/tools/index.d.ts +3 -0
  581. package/dist/tools/jest/jest.config.d.ts +14 -0
  582. package/dist/tools/jest.config.d.ts +8 -0
  583. package/dist/tools/types.d.ts +20 -0
  584. package/dist/tools/types.js +25 -0
  585. package/dist/tools/typescript/tsconfig.json +33 -0
  586. package/dist/tools/webpack/common-config/all/getCodeRules.d.ts +2 -0
  587. package/dist/tools/webpack/common-config/all/getFileLoaderRules.d.ts +11 -0
  588. package/dist/tools/webpack/common-config/all/getImageMinimizer.d.ts +5 -0
  589. package/dist/tools/webpack/common-config/all/getStylesheetRule.d.ts +12 -0
  590. package/dist/tools/webpack/common-config/all/getStylesheetRule.js +150 -0
  591. package/dist/tools/webpack/common-config/all/postcssWrapLayer.d.ts +4 -0
  592. package/dist/tools/webpack/common-config/all/postcssWrapLayer.js +32 -0
  593. package/dist/tools/webpack/common-config/dev/getDevServer.d.ts +2 -0
  594. package/dist/tools/webpack/common-config/dev/getDevServer.js +36 -0
  595. package/dist/tools/webpack/common-config/index.d.ts +7 -0
  596. package/dist/tools/webpack/common-config/index.js +20 -0
  597. package/dist/tools/webpack/common-config/site/getHtmlWebpackPlugin.d.ts +2 -0
  598. package/dist/tools/webpack/common-config/site/getHtmlWebpackPlugin.js +24 -0
  599. package/dist/tools/webpack/common-config/site/getI18nMessagesFallbackPlugin/emptyI18n.d.ts +2 -0
  600. package/dist/tools/webpack/common-config/site/getI18nMessagesFallbackPlugin/emptyI18n.js +3 -0
  601. package/dist/tools/webpack/common-config/site/getI18nMessagesFallbackPlugin/index.d.ts +2 -0
  602. package/dist/tools/webpack/common-config/site/getI18nMessagesFallbackPlugin/index.js +26 -0
  603. package/dist/tools/webpack/plugins/html-webpack-new-relic-plugin/HtmlWebpackNewRelicPlugin.d.ts +16 -0
  604. package/dist/tools/webpack/plugins/html-webpack-new-relic-plugin/index.d.ts +2 -0
  605. package/dist/tools/webpack/plugins/html-webpack-new-relic-plugin/test/fixtures/entry.d.ts +1 -0
  606. package/dist/tools/webpack/utils/getPublicPath.d.ts +1 -0
  607. package/dist/tools/webpack/utils/getPublicPath.js +6 -0
  608. package/dist/tools/webpack/utils/getResolvedSiteConfigPath.d.ts +1 -0
  609. package/dist/tools/webpack/utils/getResolvedSiteI18nPath.d.ts +1 -0
  610. package/dist/tools/webpack/utils/getResolvedSiteI18nPath.js +25 -0
  611. package/dist/tools/webpack/webpack.config.build.d.ts +3 -0
  612. package/dist/tools/webpack/webpack.config.build.js +78 -0
  613. package/dist/tools/webpack/webpack.config.dev.d.ts +3 -0
  614. package/dist/tools/webpack/webpack.config.dev.js +78 -0
  615. package/dist/tools/webpack/webpack.config.dev.shell.d.ts +3 -0
  616. package/dist/tools/webpack/webpack.config.dev.shell.js +105 -0
  617. package/dist/types.d.ts +93 -0
  618. package/dist/types.js +7 -0
  619. package/dist/types.js.map +1 -0
  620. package/package.json +45 -32
  621. package/config/eslint/base.eslint.config.js +0 -113
  622. package/config/tsconfig.json +0 -32
  623. package/config/types.js +0 -23
  624. package/config/webpack/common-config/all/getIgnoreWarnings.js +0 -14
  625. package/config/webpack/common-config/all/getStylesheetRule.js +0 -112
  626. package/config/webpack/common-config/dev/getDevServer.js +0 -38
  627. package/config/webpack/common-config/index.js +0 -18
  628. package/config/webpack/common-config/site/getHtmlWebpackPlugin.js +0 -16
  629. package/config/webpack/plugins/html-webpack-new-relic-plugin/test/HtmlWebpackNewRelicPlugin.test.js +0 -66
  630. package/config/webpack/utils/getLocalAliases.js +0 -65
  631. package/config/webpack/utils/getPublicPath.js +0 -6
  632. package/config/webpack/webpack.config.build.js +0 -69
  633. package/config/webpack/webpack.config.dev.js +0 -69
  634. package/config/webpack/webpack.config.dev.shell.js +0 -103
  635. package/index.ts +0 -7
  636. package/runtime/__mocks__/file.js +0 -1
  637. package/runtime/__mocks__/svg.js +0 -1
  638. package/runtime/__mocks__/universal-cookie.js +0 -6
  639. package/runtime/analytics/MockAnalyticsService.js +0 -71
  640. package/runtime/analytics/SegmentAnalyticsService.js +0 -243
  641. package/runtime/analytics/index.ts +0 -12
  642. package/runtime/analytics/interface.js +0 -145
  643. package/runtime/analytics/interface.test.js +0 -242
  644. package/runtime/auth/AxiosCsrfTokenService.js +0 -60
  645. package/runtime/auth/AxiosJwtAuthService.js +0 -363
  646. package/runtime/auth/AxiosJwtAuthService.test.jsx +0 -1076
  647. package/runtime/auth/AxiosJwtTokenService.js +0 -134
  648. package/runtime/auth/LocalForageCache.js +0 -76
  649. package/runtime/auth/MockAuthService.js +0 -278
  650. package/runtime/auth/index.ts +0 -19
  651. package/runtime/auth/interceptors/createCsrfTokenProviderInterceptor.js +0 -36
  652. package/runtime/auth/interceptors/createJwtTokenProviderInterceptor.js +0 -37
  653. package/runtime/auth/interceptors/createProcessAxiosRequestErrorInterceptor.js +0 -20
  654. package/runtime/auth/interceptors/createRetryInterceptor.js +0 -74
  655. package/runtime/auth/interceptors/createRetryInterceptor.test.js +0 -23
  656. package/runtime/auth/interface.js +0 -309
  657. package/runtime/auth/utils.js +0 -105
  658. package/runtime/babel.config.js +0 -3
  659. package/runtime/config/getExternalLinkUrl.test.js +0 -76
  660. package/runtime/config/index.ts +0 -294
  661. package/runtime/constants.ts +0 -68
  662. package/runtime/i18n/index.js +0 -118
  663. package/runtime/i18n/injectIntlWithShim.jsx +0 -48
  664. package/runtime/i18n/lib.test.js +0 -230
  665. package/runtime/i18n/lib.ts +0 -272
  666. package/runtime/index.ts +0 -139
  667. package/runtime/initialize.async.function.config.test.js +0 -43
  668. package/runtime/initialize.const.config.test.js +0 -41
  669. package/runtime/initialize.function.config.test.js +0 -41
  670. package/runtime/initialize.js +0 -352
  671. package/runtime/initialize.test.js +0 -356
  672. package/runtime/jest.config.js +0 -33
  673. package/runtime/logging/MockLoggingService.js +0 -31
  674. package/runtime/logging/NewRelicLoggingService.js +0 -184
  675. package/runtime/logging/NewRelicLoggingService.test.js +0 -214
  676. package/runtime/logging/index.ts +0 -9
  677. package/runtime/logging/interface.js +0 -109
  678. package/runtime/logging/types.ts +0 -4
  679. package/runtime/react/AuthenticatedPageRoute.jsx +0 -43
  680. package/runtime/react/AuthenticatedPageRoute.test.jsx +0 -135
  681. package/runtime/react/CombinedAppProvider.tsx +0 -46
  682. package/runtime/react/CurrentAppContext.tsx +0 -25
  683. package/runtime/react/CurrentAppProvider.tsx +0 -46
  684. package/runtime/react/Divider.tsx +0 -5
  685. package/runtime/react/ErrorBoundary.jsx +0 -47
  686. package/runtime/react/ErrorBoundary.test.jsx +0 -83
  687. package/runtime/react/ErrorPage.jsx +0 -72
  688. package/runtime/react/LoginRedirect.jsx +0 -16
  689. package/runtime/react/PageWrap.jsx +0 -24
  690. package/runtime/react/SiteContext.tsx +0 -32
  691. package/runtime/react/SiteProvider.test.jsx +0 -66
  692. package/runtime/react/SiteProvider.tsx +0 -101
  693. package/runtime/react/constants.ts +0 -3
  694. package/runtime/react/hooks/index.ts +0 -8
  695. package/runtime/react/hooks/theme/useTheme.test.ts +0 -221
  696. package/runtime/react/hooks/theme/useTheme.ts +0 -179
  697. package/runtime/react/hooks/theme/useThemeConfig.test.ts +0 -107
  698. package/runtime/react/hooks/theme/useThemeConfig.ts +0 -34
  699. package/runtime/react/hooks/theme/useThemeCore.test.ts +0 -65
  700. package/runtime/react/hooks/theme/useThemeCore.ts +0 -52
  701. package/runtime/react/hooks/theme/useThemeVariants.test.ts +0 -97
  702. package/runtime/react/hooks/theme/useThemeVariants.ts +0 -116
  703. package/runtime/react/hooks/theme/useTrackColorSchemeChoice.test.ts +0 -54
  704. package/runtime/react/hooks/theme/useTrackColorSchemeChoice.ts +0 -30
  705. package/runtime/react/hooks/theme/utils.ts +0 -11
  706. package/runtime/react/hooks/useActiveRoles.ts +0 -15
  707. package/runtime/react/hooks/useActiveRouteRoleWatcher.ts +0 -31
  708. package/runtime/react/hooks/useAppConfig.ts +0 -9
  709. package/runtime/react/hooks/useAuthenticatedUser.test.tsx +0 -41
  710. package/runtime/react/hooks/useAuthenticatedUser.ts +0 -9
  711. package/runtime/react/hooks/useSiteConfig.test.tsx +0 -13
  712. package/runtime/react/hooks/useSiteConfig.ts +0 -9
  713. package/runtime/react/hooks/useSiteEvent.ts +0 -24
  714. package/runtime/react/index.ts +0 -19
  715. package/runtime/react/reducers.ts +0 -40
  716. package/runtime/routing/index.ts +0 -1
  717. package/runtime/routing/utils.test.ts +0 -7
  718. package/runtime/routing/utils.ts +0 -34
  719. package/runtime/scripts/GoogleAnalyticsLoader.test.ts +0 -77
  720. package/runtime/scripts/GoogleAnalyticsLoader.ts +0 -59
  721. package/runtime/scripts/index.ts +0 -1
  722. package/runtime/setupTest.js +0 -14
  723. package/runtime/site.config.test.tsx +0 -33
  724. package/runtime/slots/Slot.test.tsx +0 -40
  725. package/runtime/slots/Slot.tsx +0 -32
  726. package/runtime/slots/SlotContext.tsx +0 -8
  727. package/runtime/slots/hooks.ts +0 -35
  728. package/runtime/slots/layout/DefaultSlotLayout.test.tsx +0 -31
  729. package/runtime/slots/layout/DefaultSlotLayout.tsx +0 -9
  730. package/runtime/slots/layout/hooks.test.tsx +0 -178
  731. package/runtime/slots/layout/hooks.ts +0 -65
  732. package/runtime/slots/layout/types.ts +0 -45
  733. package/runtime/slots/layout/utils.test.ts +0 -67
  734. package/runtime/slots/layout/utils.ts +0 -14
  735. package/runtime/slots/types.ts +0 -24
  736. package/runtime/slots/utils.test.ts +0 -64
  737. package/runtime/slots/utils.ts +0 -78
  738. package/runtime/slots/widget/WidgetContext.tsx +0 -9
  739. package/runtime/slots/widget/WidgetProvider.tsx +0 -30
  740. package/runtime/slots/widget/hooks.ts +0 -105
  741. package/runtime/slots/widget/iframe/IFrameContentWrapper.messages.tsx +0 -16
  742. package/runtime/slots/widget/iframe/IFrameContentWrapper.tsx +0 -84
  743. package/runtime/slots/widget/iframe/IFrameWidget.tsx +0 -59
  744. package/runtime/slots/widget/iframe/constants.ts +0 -19
  745. package/runtime/slots/widget/iframe/hooks.ts +0 -179
  746. package/runtime/slots/widget/iframe/index.ts +0 -6
  747. package/runtime/slots/widget/iframe/types.ts +0 -7
  748. package/runtime/slots/widget/types.ts +0 -134
  749. package/runtime/slots/widget/utils.tsx +0 -201
  750. package/runtime/subscriptions.ts +0 -60
  751. package/runtime/testing/index.ts +0 -9
  752. package/runtime/testing/initializeMockApp.test.ts +0 -66
  753. package/runtime/testing/initializeMockApp.ts +0 -86
  754. package/runtime/testing/mockMessages.ts +0 -23
  755. package/runtime/utils.js +0 -178
  756. package/runtime/utils.test.js +0 -116
  757. package/shell/DefaultLayout.tsx +0 -18
  758. package/shell/DefaultMain.tsx +0 -7
  759. package/shell/Logo.test.tsx +0 -32
  760. package/shell/Logo.tsx +0 -28
  761. package/shell/Shell.messages.ts +0 -61
  762. package/shell/Shell.tsx +0 -18
  763. package/shell/__mocks__/file.js +0 -1
  764. package/shell/__mocks__/svg.js +0 -1
  765. package/shell/__mocks__/universal-cookie.js +0 -6
  766. package/shell/app.scss +0 -150
  767. package/shell/app.ts +0 -38
  768. package/shell/babel.config.js +0 -3
  769. package/shell/dev/devFooter/app.tsx +0 -43
  770. package/shell/dev/devHeader/BarContext.tsx +0 -13
  771. package/shell/dev/devHeader/BarLink.tsx +0 -16
  772. package/shell/dev/devHeader/BarProvider.tsx +0 -25
  773. package/shell/dev/devHeader/CoursesLink.tsx +0 -16
  774. package/shell/dev/devHeader/FooContext.tsx +0 -13
  775. package/shell/dev/devHeader/FooLink.tsx +0 -16
  776. package/shell/dev/devHeader/FooProvider.tsx +0 -25
  777. package/shell/dev/devHeader/app.tsx +0 -53
  778. package/shell/dev/devHeader/providers.tsx +0 -11
  779. package/shell/dev/devHome/HomePage.tsx +0 -28
  780. package/shell/dev/devHome/app.ts +0 -18
  781. package/shell/dev/devHome/i18n/index.ts +0 -27
  782. package/shell/dev/devHome/messages.ts +0 -11
  783. package/shell/dev/devUser/app.tsx +0 -24
  784. package/shell/dev/devUser/index.ts +0 -1
  785. package/shell/dev/index.ts +0 -5
  786. package/shell/dev/slotShowcase/HorizontalSlotLayout.tsx +0 -11
  787. package/shell/dev/slotShowcase/LayoutWithOptions.tsx +0 -17
  788. package/shell/dev/slotShowcase/SlotShowcasePage.tsx +0 -66
  789. package/shell/dev/slotShowcase/WidgetWithOptions.tsx +0 -11
  790. package/shell/dev/slotShowcase/app.tsx +0 -373
  791. package/shell/footer/CenterLinks.tsx +0 -11
  792. package/shell/footer/CopyrightNotice.tsx +0 -36
  793. package/shell/footer/Footer.tsx +0 -34
  794. package/shell/footer/LabeledLinkColumn.tsx +0 -19
  795. package/shell/footer/LanguageMenu.tsx +0 -35
  796. package/shell/footer/LanguageMenuItem.tsx +0 -23
  797. package/shell/footer/LeftLinks.tsx +0 -11
  798. package/shell/footer/LegalNotices.tsx +0 -17
  799. package/shell/footer/PoweredBy.tsx +0 -17
  800. package/shell/footer/RevealLinks.tsx +0 -43
  801. package/shell/footer/RightLinks.tsx +0 -11
  802. package/shell/footer/app.tsx +0 -73
  803. package/shell/footer/data/api.ts +0 -48
  804. package/shell/header/AuthenticatedMenu.tsx +0 -32
  805. package/shell/header/Header.tsx +0 -17
  806. package/shell/header/anonymous-menu/AnonymousMenu.tsx +0 -14
  807. package/shell/header/anonymous-menu/LoginButton.tsx +0 -14
  808. package/shell/header/anonymous-menu/RegisterButton.tsx +0 -15
  809. package/shell/header/app.tsx +0 -142
  810. package/shell/header/desktop/DesktopLayout.tsx +0 -22
  811. package/shell/header/desktop/PrimaryNavLinks.tsx +0 -10
  812. package/shell/header/desktop/SecondaryNavLinks.tsx +0 -10
  813. package/shell/header/index.ts +0 -2
  814. package/shell/header/mobile/MobileLayout.tsx +0 -47
  815. package/shell/header/mobile/MobileNavLinks.tsx +0 -10
  816. package/shell/i18n/index.ts +0 -25
  817. package/shell/index.ts +0 -7
  818. package/shell/jest.config.js +0 -31
  819. package/shell/menus/LinkMenuItem.tsx +0 -64
  820. package/shell/menus/NavDropdownMenuSlot.tsx +0 -29
  821. package/shell/menus/ProfileLinkMenuItem.tsx +0 -33
  822. package/shell/menus/data/utils.ts +0 -19
  823. package/shell/public/index.html +0 -10
  824. package/shell/router/createRouter.test.tsx +0 -50
  825. package/shell/router/createRouter.ts +0 -17
  826. package/shell/router/getAppRoutes.test.tsx +0 -59
  827. package/shell/router/getAppRoutes.ts +0 -21
  828. package/shell/setupTest.js +0 -13
  829. package/shell/site.config.dev.tsx +0 -49
  830. package/shell/site.config.test.tsx +0 -16
  831. package/shell/site.tsx +0 -41
  832. package/tools/dist/babel/babel.config.js +0 -28
  833. package/tools/dist/cli/intl-imports.js +0 -233
  834. package/tools/dist/cli/intl-imports.test.js +0 -146
  835. package/tools/dist/cli/openedx.js +0 -86
  836. package/tools/dist/cli/transifex-utils.js +0 -68
  837. package/tools/dist/cli/utils/formatter.js +0 -10
  838. package/tools/dist/cli/utils/printUsage.js +0 -39
  839. package/tools/dist/config-helpers/createConfig.js +0 -13
  840. package/tools/dist/config-helpers/createLintConfig.js +0 -16
  841. package/tools/dist/config-helpers/getBaseConfig.js +0 -12
  842. package/tools/dist/defaultConfigPaths.js +0 -35
  843. package/tools/dist/eslint/base.eslint.config.js +0 -113
  844. package/tools/dist/index.js +0 -12
  845. package/tools/dist/jest/jest.config.js +0 -30
  846. package/tools/dist/types.js +0 -23
  847. package/tools/dist/typescript/tsconfig.json +0 -32
  848. package/tools/dist/webpack/common-config/all/getCodeRules.js +0 -52
  849. package/tools/dist/webpack/common-config/all/getFileLoaderRules.js +0 -26
  850. package/tools/dist/webpack/common-config/all/getIgnoreWarnings.js +0 -14
  851. package/tools/dist/webpack/common-config/all/getImageMinimizer.js +0 -25
  852. package/tools/dist/webpack/common-config/all/getStylesheetRule.js +0 -112
  853. package/tools/dist/webpack/common-config/dev/getDevServer.js +0 -38
  854. package/tools/dist/webpack/common-config/index.js +0 -18
  855. package/tools/dist/webpack/common-config/site/getHtmlWebpackPlugin.js +0 -16
  856. package/tools/dist/webpack/plugins/html-webpack-new-relic-plugin/HtmlWebpackNewRelicPlugin.js +0 -91
  857. package/tools/dist/webpack/plugins/html-webpack-new-relic-plugin/index.js +0 -7
  858. package/tools/dist/webpack/plugins/html-webpack-new-relic-plugin/test/HtmlWebpackNewRelicPlugin.test.js +0 -66
  859. package/tools/dist/webpack/plugins/html-webpack-new-relic-plugin/test/fixtures/entry.js +0 -3
  860. package/tools/dist/webpack/utils/getLocalAliases.js +0 -65
  861. package/tools/dist/webpack/utils/getPublicPath.js +0 -6
  862. package/tools/dist/webpack/utils/getResolvedSiteConfigPath.js +0 -32
  863. package/tools/dist/webpack/webpack.config.build.js +0 -69
  864. package/tools/dist/webpack/webpack.config.dev.js +0 -69
  865. package/tools/dist/webpack/webpack.config.dev.shell.js +0 -103
  866. package/types.ts +0 -119
  867. /package/{runtime/react/hooks/theme/index.ts → dist/runtime/react/hooks/theme/index.d.ts} +0 -0
  868. /package/{runtime/slots/index.ts → dist/runtime/slots/index.d.ts} +0 -0
  869. /package/{runtime/slots/layout/index.ts → dist/runtime/slots/layout/index.d.ts} +0 -0
  870. /package/{runtime/slots/widget/index.ts → dist/runtime/slots/widget/index.d.ts} +0 -0
  871. /package/{shell/dev/devFooter/index.ts → dist/shell/dev/devFooter/index.d.ts} +0 -0
  872. /package/{shell/dev/devHeader/index.ts → dist/shell/dev/devHeader/index.d.ts} +0 -0
  873. /package/{shell/dev/devHome/index.ts → dist/shell/dev/devHome/index.d.ts} +0 -0
  874. /package/{shell/dev/slotShowcase/index.ts → dist/shell/dev/slotShowcase/index.d.ts} +0 -0
  875. /package/{shell/footer/index.ts → dist/shell/footer/index.d.ts} +0 -0
  876. /package/{config → dist/tools}/babel/babel.config.js +0 -0
  877. /package/{tools/dist → dist/tools}/cli/commands/serve.js +0 -0
  878. /package/{tools/dist → dist/tools}/cli/utils/ensureConfigFilenameOption.js +0 -0
  879. /package/{tools/dist → dist/tools}/cli/utils/getResolvedConfigPath.js +0 -0
  880. /package/{tools/dist → dist/tools}/cli/utils/prettyPrintTitle.js +0 -0
  881. /package/{config → dist/tools}/config-helpers/createConfig.js +0 -0
  882. /package/{config → dist/tools}/config-helpers/createLintConfig.js +0 -0
  883. /package/{config → dist/tools}/config-helpers/getBaseConfig.js +0 -0
  884. /package/{config → dist/tools}/defaultConfigPaths.js +0 -0
  885. /package/{tools/dist → dist/tools}/eslint.config.js +0 -0
  886. /package/{config → dist/tools}/index.js +0 -0
  887. /package/{config → dist/tools}/jest/jest.config.js +0 -0
  888. /package/{tools/dist → dist/tools}/jest.config.js +0 -0
  889. /package/{config → dist/tools}/webpack/common-config/all/getCodeRules.js +0 -0
  890. /package/{config → dist/tools}/webpack/common-config/all/getFileLoaderRules.js +0 -0
  891. /package/{config → dist/tools}/webpack/common-config/all/getImageMinimizer.js +0 -0
  892. /package/{config → dist/tools}/webpack/plugins/html-webpack-new-relic-plugin/HtmlWebpackNewRelicPlugin.js +0 -0
  893. /package/{config → dist/tools}/webpack/plugins/html-webpack-new-relic-plugin/index.js +0 -0
  894. /package/{config → dist/tools}/webpack/plugins/html-webpack-new-relic-plugin/test/fixtures/entry.js +0 -0
  895. /package/{config → dist/tools}/webpack/utils/getResolvedSiteConfigPath.js +0 -0
@@ -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"]}
@@ -0,0 +1,8 @@
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';
@@ -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
+ };
@@ -0,0 +1,71 @@
1
+ import siteConfig from 'site.config';
2
+ import { configureAnalytics, MockAnalyticsService } from '../analytics';
3
+ import { configureAuth, MockAuthService, setAuthenticatedUser } from '../auth';
4
+ import { getSiteConfig, mergeSiteConfig } from '../config';
5
+ import { configureI18n } from '../i18n';
6
+ import { configureLogging, MockLoggingService } from '../logging';
7
+ import mockMessages from './mockMessages';
8
+ /**
9
+ * Initializes a mock application for component testing. The mock application includes
10
+ * mock analytics, auth, and logging services, and the real i18n service.
11
+ *
12
+ * See MockAnalyticsService, MockAuthService, and MockLoggingService for mock implementation
13
+ * details. For the most part, the analytics and logging services just implement their functions
14
+ * with jest.fn() and do nothing else, whereas the MockAuthService actually has some behavior
15
+ * implemented, it just doesn't make any HTTP calls.
16
+ *
17
+ * Note that this mock application is not sufficient for testing the full application lifecycle or
18
+ * initialization callbacks/custom handlers as described in the 'initialize' function's
19
+ * documentation. It exists merely to set up the mock services that components themselves tend to
20
+ * interact with most often. It could be extended to allow for setting up custom handlers fairly
21
+ * easily, as this functionality would be more-or-less identical to what the real initialize
22
+ * function does.
23
+ *
24
+ * Example:
25
+ *
26
+ * ```
27
+ * import { initializeMockApp, logInfo } from '@openedx/frontend-base';
28
+ *
29
+ * describe('initializeMockApp', () => {
30
+ * it('mocks things correctly', () => {
31
+ * const { loggingService } = initializeMockApp();
32
+ * logInfo('test', {});
33
+ * expect(loggingService.logInfo).toHaveBeenCalledWith('test', {});
34
+ * });
35
+ * });
36
+ * ```
37
+ *
38
+ * @param {Object} [options]
39
+ * @param {*} [options.messages] A i18n-compatible messages object, or an array of such objects. If
40
+ * an array is provided, duplicate keys are resolved with the last-one-in winning.
41
+ * @param {UserData|null} [options.authenticatedUser] A UserData object representing the
42
+ * authenticated user. This is passed directly to MockAuthService.
43
+ * @memberof module:Testing
44
+ */
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
+ };
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;
@@ -0,0 +1,163 @@
1
+ /**
2
+ * #### Import members from **@openedx/frontend-base**
3
+ *
4
+ * @module Utilities
5
+ */
6
+ import camelCase from 'lodash/camelCase';
7
+ import snakeCase from 'lodash/snakeCase';
8
+ /**
9
+ * This is the underlying function used by camelCaseObject, snakeCaseObject, and convertKeyNames
10
+ * above.
11
+ *
12
+ * Given an object (or array) and a modification function, will perform the function on each key it
13
+ * encounters on the object and its tree of children.
14
+ *
15
+ * The modification function must take a string as an argument and returns a string.
16
+ *
17
+ * Example:
18
+ *
19
+ * ```
20
+ * (key) => {
21
+ * if (key === 'edX') {
22
+ * return 'Open edX';
23
+ * }
24
+ * return key;
25
+ * }
26
+ * ```
27
+ *
28
+ * This function will turn any key that matches 'edX' into 'Open edX'. All other keys will be
29
+ * passed through unmodified.
30
+ *
31
+ * Can accept arrays as well as objects, and will perform its conversion on any objects it finds in
32
+ * the array.
33
+ *
34
+ * @param {Object} object
35
+ * @param {function} modify
36
+ * @returns {Object}
37
+ */
38
+ export function modifyObjectKeys(object, modify) {
39
+ // If the passed in object is not an Object, return it.
40
+ if (object === undefined
41
+ || object === null
42
+ || (typeof object !== 'object' && !Array.isArray(object))) {
43
+ return object;
44
+ }
45
+ if (Array.isArray(object)) {
46
+ return object.map(value => modifyObjectKeys(value, modify));
47
+ }
48
+ // Otherwise, process all its keys.
49
+ const result = {};
50
+ Object.entries(object).forEach(([key, value]) => {
51
+ result[modify(key)] = modifyObjectKeys(value, modify);
52
+ });
53
+ return result;
54
+ }
55
+ /**
56
+ * Performs a deep conversion to camelCase on all keys in the provided object and its tree of
57
+ * children. Uses [lodash.camelcase](https://lodash.com/docs/4.17.15#camelCase) on each key. This
58
+ * is commonly used to convert snake_case keys in models from a backend server into camelCase keys
59
+ * for use in the JavaScript client.
60
+ *
61
+ * Can accept arrays as well as objects, and will perform its conversion on any objects it finds in
62
+ * the array.
63
+ *
64
+ * @param {Array|Object} object
65
+ * @returns {Array|Object}
66
+ */
67
+ export function camelCaseObject(object) {
68
+ return modifyObjectKeys(object, camelCase);
69
+ }
70
+ /**
71
+ * Performs a deep conversion to snake_case on all keys in the provided object and its tree of
72
+ * children. Uses [lodash.snakecase](https://lodash.com/docs/4.17.15#snakeCase) on each key. This
73
+ * is commonly used to convert camelCase keys from the JavaScript app into snake_case keys expected
74
+ * by backend servers.
75
+ *
76
+ * Can accept arrays as well as objects, and will perform its conversion on any objects it finds in
77
+ * the array.
78
+ *
79
+ * @param {Array|Object} object
80
+ * @returns {Array|Object}
81
+ */
82
+ export function snakeCaseObject(object) {
83
+ return modifyObjectKeys(object, snakeCase);
84
+ }
85
+ /**
86
+ * Given a map of key-value pairs, performs a deep conversion key names in the specified object
87
+ * _from_ the key _to_ the value. This is useful for updating names in an API request to the names
88
+ * used throughout a client application if they happen to differ. It can also be used in the
89
+ * reverse - formatting names from the client application to names expected by an API.
90
+ *
91
+ * ```
92
+ * import { convertKeyNames } from '@openedx/frontend-base';
93
+ *
94
+ * // This object can be of any shape or depth with subobjects/arrays.
95
+ * const myObject = {
96
+ * myKey: 'my value',
97
+ * }
98
+ *
99
+ * const result = convertKeyNames(myObject, { myKey: 'their_key' });
100
+ *
101
+ * console.log(result) // { their_key: 'my value' }
102
+ * ```
103
+ *
104
+ * Can accept arrays as well as objects, and will perform its conversion on any objects it finds in
105
+ * the array.
106
+ *
107
+ * @param {Array|Object} object
108
+ * @param {Object} nameMap
109
+ * @returns {Array|Object}
110
+ */
111
+ export function convertKeyNames(object, nameMap) {
112
+ const transformer = key => (nameMap[key] === undefined ? key : nameMap[key]);
113
+ return modifyObjectKeys(object, transformer);
114
+ }
115
+ /**
116
+ * *Deprecated*: A method which converts the supplied query string into an object of
117
+ * key-value pairs and returns it. Defaults to the current query string - should perform like
118
+ * [window.searchParams](https://developer.mozilla.org/en-US/docs/Web/API/URL/searchParams)
119
+ *
120
+ * @deprecated
121
+ * @param {string} [search=global.location.search]
122
+ * @returns {Object}
123
+ */
124
+ export function getQueryParameters(search = global.location.search) {
125
+ const keyValueFragments = search
126
+ .slice(search.indexOf('?') + 1)
127
+ .split('&')
128
+ .filter(hash => hash !== '');
129
+ return keyValueFragments.reduce((params, keyValueFragment) => {
130
+ const split = keyValueFragment.indexOf('=');
131
+ const key = keyValueFragment.slice(0, split);
132
+ const value = keyValueFragment.slice(split + 1);
133
+ return Object.assign(params, { [key]: decodeURIComponent(value) });
134
+ }, {});
135
+ }
136
+ export function isValidVariableName(name) {
137
+ // Check if the name is a string and not empty
138
+ if (typeof name !== 'string' || name === '') {
139
+ return false;
140
+ }
141
+ // Check if the first character is a letter, underscore, or dollar sign
142
+ if (!/^[a-zA-Z_$]/.test(name)) {
143
+ return false;
144
+ }
145
+ // Check if the name contains only letters, numbers, underscores, or dollar signs
146
+ if (!/^[a-zA-Z0-9_$]+$/.test(name)) {
147
+ return false;
148
+ }
149
+ // Check if the name is a reserved keyword
150
+ const reservedKeywords = [
151
+ 'break', 'case', 'catch', 'class', 'const', 'continue',
152
+ 'debugger', 'default', 'delete', 'do', 'else', 'enum',
153
+ 'export', 'extends', 'false', 'finally', 'for', 'function',
154
+ 'if', 'import', 'in', 'instanceof', 'new', 'null', 'return',
155
+ 'super', 'switch', 'this', 'throw', 'true', 'try',
156
+ 'typeof', 'var', 'void', 'while', 'with', 'yield'
157
+ ];
158
+ if (reservedKeywords.includes(name)) {
159
+ return false;
160
+ }
161
+ return true;
162
+ }
163
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../runtime/utils.js"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,SAAS,MAAM,kBAAkB,CAAC;AACzC,OAAO,SAAS,MAAM,kBAAkB,CAAC;AAEzC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,MAAM,UAAU,gBAAgB,CAAC,MAAM,EAAE,MAAM;IAC7C,uDAAuD;IACvD,IACE,MAAM,KAAK,SAAS;WACjB,MAAM,KAAK,IAAI;WACf,CAAC,OAAO,MAAM,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,EACzD,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;QAC1B,OAAO,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,gBAAgB,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC;IAC9D,CAAC;IAED,mCAAmC;IACnC,MAAM,MAAM,GAAG,EAAE,CAAC;IAClB,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE;QAC9C,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,gBAAgB,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IACxD,CAAC,CAAC,CAAC;IACH,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,eAAe,CAAC,MAAM;IACpC,OAAO,gBAAgB,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;AAC7C,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,eAAe,CAAC,MAAM;IACpC,OAAO,gBAAgB,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;AAC7C,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,MAAM,UAAU,eAAe,CAAC,MAAM,EAAE,OAAO;IAC7C,MAAM,WAAW,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC;IAE7E,OAAO,gBAAgB,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;AAC/C,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,kBAAkB,CAAC,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,MAAM;IAChE,MAAM,iBAAiB,GAAG,MAAM;SAC7B,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;SAC9B,KAAK,CAAC,GAAG,CAAC;SACV,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,KAAK,EAAE,CAAC,CAAC;IAE/B,OAAO,iBAAiB,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,gBAAgB,EAAE,EAAE;QAC3D,MAAM,KAAK,GAAG,gBAAgB,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAC5C,MAAM,GAAG,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;QAC7C,MAAM,KAAK,GAAG,gBAAgB,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;QAChD,OAAO,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,kBAAkB,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IACrE,CAAC,EAAE,EAAE,CAAC,CAAC;AACT,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,IAAI;IACtC,8CAA8C;IAC9C,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,EAAE,EAAE,CAAC;QAC5C,OAAO,KAAK,CAAC;IACf,CAAC;IAED,uEAAuE;IACvE,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QAC9B,OAAO,KAAK,CAAC;IACf,CAAC;IAED,iFAAiF;IACjF,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QACnC,OAAO,KAAK,CAAC;IACf,CAAC;IAED,0CAA0C;IAC1C,MAAM,gBAAgB,GAAG;QACvB,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,UAAU;QACtD,UAAU,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM;QACrD,QAAQ,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,UAAU;QAC1D,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ;QAC3D,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK;QACjD,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO;KAClD,CAAC;IACF,IAAI,gBAAgB,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QACpC,OAAO,KAAK,CAAC;IACf,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC","sourcesContent":["/**\n * #### Import members from **@openedx/frontend-base**\n *\n * @module Utilities\n */\nimport camelCase from 'lodash/camelCase';\nimport snakeCase from 'lodash/snakeCase';\n\n/**\n * This is the underlying function used by camelCaseObject, snakeCaseObject, and convertKeyNames\n * above.\n *\n * Given an object (or array) and a modification function, will perform the function on each key it\n * encounters on the object and its tree of children.\n *\n * The modification function must take a string as an argument and returns a string.\n *\n * Example:\n *\n * ```\n * (key) => {\n * if (key === 'edX') {\n * return 'Open edX';\n * }\n * return key;\n * }\n * ```\n *\n * This function will turn any key that matches 'edX' into 'Open edX'. All other keys will be\n * passed through unmodified.\n *\n * Can accept arrays as well as objects, and will perform its conversion on any objects it finds in\n * the array.\n *\n * @param {Object} object\n * @param {function} modify\n * @returns {Object}\n */\nexport function modifyObjectKeys(object, modify) {\n // If the passed in object is not an Object, return it.\n if (\n object === undefined\n || object === null\n || (typeof object !== 'object' && !Array.isArray(object))\n ) {\n return object;\n }\n\n if (Array.isArray(object)) {\n return object.map(value => modifyObjectKeys(value, modify));\n }\n\n // Otherwise, process all its keys.\n const result = {};\n Object.entries(object).forEach(([key, value]) => {\n result[modify(key)] = modifyObjectKeys(value, modify);\n });\n return result;\n}\n\n/**\n * Performs a deep conversion to camelCase on all keys in the provided object and its tree of\n * children. Uses [lodash.camelcase](https://lodash.com/docs/4.17.15#camelCase) on each key. This\n * is commonly used to convert snake_case keys in models from a backend server into camelCase keys\n * for use in the JavaScript client.\n *\n * Can accept arrays as well as objects, and will perform its conversion on any objects it finds in\n * the array.\n *\n * @param {Array|Object} object\n * @returns {Array|Object}\n */\nexport function camelCaseObject(object) {\n return modifyObjectKeys(object, camelCase);\n}\n\n/**\n * Performs a deep conversion to snake_case on all keys in the provided object and its tree of\n * children. Uses [lodash.snakecase](https://lodash.com/docs/4.17.15#snakeCase) on each key. This\n * is commonly used to convert camelCase keys from the JavaScript app into snake_case keys expected\n * by backend servers.\n *\n * Can accept arrays as well as objects, and will perform its conversion on any objects it finds in\n * the array.\n *\n * @param {Array|Object} object\n * @returns {Array|Object}\n */\nexport function snakeCaseObject(object) {\n return modifyObjectKeys(object, snakeCase);\n}\n\n/**\n * Given a map of key-value pairs, performs a deep conversion key names in the specified object\n * _from_ the key _to_ the value. This is useful for updating names in an API request to the names\n * used throughout a client application if they happen to differ. It can also be used in the\n * reverse - formatting names from the client application to names expected by an API.\n *\n * ```\n * import { convertKeyNames } from '@openedx/frontend-base';\n *\n * // This object can be of any shape or depth with subobjects/arrays.\n * const myObject = {\n * myKey: 'my value',\n * }\n *\n * const result = convertKeyNames(myObject, { myKey: 'their_key' });\n *\n * console.log(result) // { their_key: 'my value' }\n * ```\n *\n * Can accept arrays as well as objects, and will perform its conversion on any objects it finds in\n * the array.\n *\n * @param {Array|Object} object\n * @param {Object} nameMap\n * @returns {Array|Object}\n */\nexport function convertKeyNames(object, nameMap) {\n const transformer = key => (nameMap[key] === undefined ? key : nameMap[key]);\n\n return modifyObjectKeys(object, transformer);\n}\n\n/**\n * *Deprecated*: A method which converts the supplied query string into an object of\n * key-value pairs and returns it. Defaults to the current query string - should perform like\n * [window.searchParams](https://developer.mozilla.org/en-US/docs/Web/API/URL/searchParams)\n *\n * @deprecated\n * @param {string} [search=global.location.search]\n * @returns {Object}\n */\nexport function getQueryParameters(search = global.location.search) {\n const keyValueFragments = search\n .slice(search.indexOf('?') + 1)\n .split('&')\n .filter(hash => hash !== '');\n\n return keyValueFragments.reduce((params, keyValueFragment) => {\n const split = keyValueFragment.indexOf('=');\n const key = keyValueFragment.slice(0, split);\n const value = keyValueFragment.slice(split + 1);\n return Object.assign(params, { [key]: decodeURIComponent(value) });\n }, {});\n}\n\nexport function isValidVariableName(name) {\n // Check if the name is a string and not empty\n if (typeof name !== 'string' || name === '') {\n return false;\n }\n\n // Check if the first character is a letter, underscore, or dollar sign\n if (!/^[a-zA-Z_$]/.test(name)) {\n return false;\n }\n\n // Check if the name contains only letters, numbers, underscores, or dollar signs\n if (!/^[a-zA-Z0-9_$]+$/.test(name)) {\n return false;\n }\n\n // Check if the name is a reserved keyword\n const reservedKeywords = [\n 'break', 'case', 'catch', 'class', 'const', 'continue',\n 'debugger', 'default', 'delete', 'do', 'else', 'enum',\n 'export', 'extends', 'false', 'finally', 'for', 'function',\n 'if', 'import', 'in', 'instanceof', 'new', 'null', 'return',\n 'super', 'switch', 'this', 'throw', 'true', 'try',\n 'typeof', 'var', 'void', 'while', 'with', 'yield'\n ];\n if (reservedKeywords.includes(name)) {\n return false;\n }\n\n return true;\n}\n"]}
@@ -0,0 +1 @@
1
+ export default function DefaultLayout(): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,7 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { Slot } from '../runtime';
3
+ import DefaultMain from './DefaultMain';
4
+ export default function DefaultLayout() {
5
+ return (_jsxs("div", { className: "d-flex flex-column min-vh-100", children: [_jsx("div", { className: "flex-grow-0 flex-shrink-0", children: _jsx(Slot, { id: "org.openedx.frontend.slot.header.main.v1" }) }), _jsx("div", { id: "main-content", className: "flex-grow-1", children: _jsx(Slot, { id: "org.openedx.frontend.slot.content.main.v1", layout: DefaultMain }) }), _jsx("div", { className: "flex-grow-0 flex-shrink-0", children: _jsx(Slot, { id: "org.openedx.frontend.slot.footer.main.v1" }) })] }));
6
+ }
7
+ //# sourceMappingURL=DefaultLayout.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DefaultLayout.js","sourceRoot":"","sources":["../../shell/DefaultLayout.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAClC,OAAO,WAAW,MAAM,eAAe,CAAC;AAExC,MAAM,CAAC,OAAO,UAAU,aAAa;IACnC,OAAO,CACL,eAAK,SAAS,EAAC,+BAA+B,aAC5C,cAAK,SAAS,EAAC,2BAA2B,YACxC,KAAC,IAAI,IAAC,EAAE,EAAC,0CAA0C,GAAG,GAClD,EACN,cAAK,EAAE,EAAC,cAAc,EAAC,SAAS,EAAC,aAAa,YAC5C,KAAC,IAAI,IAAC,EAAE,EAAC,2CAA2C,EAAC,MAAM,EAAE,WAAW,GAAI,GACxE,EACN,cAAK,SAAS,EAAC,2BAA2B,YACxC,KAAC,IAAI,IAAC,EAAE,EAAC,0CAA0C,GAAG,GAClD,IACF,CACP,CAAC;AACJ,CAAC","sourcesContent":["import { Slot } from '../runtime';\nimport DefaultMain from './DefaultMain';\n\nexport default function DefaultLayout() {\n return (\n <div className=\"d-flex flex-column min-vh-100\">\n <div className=\"flex-grow-0 flex-shrink-0\">\n <Slot id=\"org.openedx.frontend.slot.header.main.v1\" />\n </div>\n <div id=\"main-content\" className=\"flex-grow-1\">\n <Slot id=\"org.openedx.frontend.slot.content.main.v1\" layout={DefaultMain} />\n </div>\n <div className=\"flex-grow-0 flex-shrink-0\">\n <Slot id=\"org.openedx.frontend.slot.footer.main.v1\" />\n </div>\n </div>\n );\n}\n"]}
@@ -0,0 +1 @@
1
+ export default function DefaultMain(): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,6 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { Outlet } from 'react-router';
3
+ export default function DefaultMain() {
4
+ return (_jsx(Outlet, {}));
5
+ }
6
+ //# sourceMappingURL=DefaultMain.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DefaultMain.js","sourceRoot":"","sources":["../../shell/DefaultMain.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAEtC,MAAM,CAAC,OAAO,UAAU,WAAW;IACjC,OAAO,CACL,KAAC,MAAM,KAAG,CACX,CAAC;AACJ,CAAC","sourcesContent":["import { Outlet } from 'react-router';\n\nexport default function DefaultMain() {\n return (\n <Outlet />\n );\n}\n"]}
@@ -0,0 +1,6 @@
1
+ interface LogoProps {
2
+ imageUrl?: string;
3
+ destinationUrl?: string;
4
+ }
5
+ export default function Logo({ imageUrl, destinationUrl }: LogoProps): import("react/jsx-runtime").JSX.Element;
6
+ export {};
@@ -0,0 +1,16 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { IntlProvider } from 'react-intl';
3
+ import { Hyperlink, Image } from '@openedx/paragon';
4
+ import { getSiteConfig } from '../runtime/config';
5
+ import { getUrlByRouteRole } from '../runtime/routing';
6
+ import { homeRole } from './constants';
7
+ export default function Logo(_a) {
8
+ var _b;
9
+ var { imageUrl = (_b = getSiteConfig().headerLogoImageUrl) !== null && _b !== void 0 ? _b : 'https://edx-cdn.org/v3/default/logo.svg', destinationUrl = getUrlByRouteRole(homeRole) || '/' } = _a;
10
+ const image = (_jsx(Image, { src: imageUrl, style: { maxHeight: '2rem' } }));
11
+ if (destinationUrl === undefined) {
12
+ return image;
13
+ }
14
+ return (_jsx(IntlProvider, { locale: "en", children: _jsx(Hyperlink, { destination: destinationUrl, className: "p-0", children: image }) }));
15
+ }
16
+ //# sourceMappingURL=Logo.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Logo.js","sourceRoot":"","sources":["../../shell/Logo.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC1C,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAOvC,MAAM,CAAC,OAAO,UAAU,IAAI,CAAC,EAGjB;;QAHiB,EAC3B,QAAQ,GAAG,MAAA,aAAa,EAAE,CAAC,kBAAkB,mCAAI,yCAAyC,EAC1F,cAAc,GAAG,iBAAiB,CAAC,QAAQ,CAAC,IAAI,GAAG;IAEnD,MAAM,KAAK,GAAG,CACZ,KAAC,KAAK,IAAC,GAAG,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,GAAI,CACvD,CAAC;IAEF,IAAI,cAAc,KAAK,SAAS,EAAE,CAAC;QACjC,OAAO,KAAK,CAAC;IACf,CAAC;IAED,OAAO,CACL,KAAC,YAAY,IAAC,MAAM,EAAC,IAAI,YACvB,KAAC,SAAS,IAAC,WAAW,EAAE,cAAc,EAAE,SAAS,EAAC,KAAK,YACpD,KAAK,GACI,GACC,CAChB,CAAC;AACJ,CAAC","sourcesContent":["import { IntlProvider } from 'react-intl';\nimport { Hyperlink, Image } from '@openedx/paragon';\nimport { getSiteConfig } from '../runtime/config';\nimport { getUrlByRouteRole } from '../runtime/routing';\nimport { homeRole } from './constants';\n\ninterface LogoProps {\n imageUrl?: string,\n destinationUrl?: string,\n}\n\nexport default function Logo({\n imageUrl = getSiteConfig().headerLogoImageUrl ?? 'https://edx-cdn.org/v3/default/logo.svg',\n destinationUrl = getUrlByRouteRole(homeRole) || '/'\n}: LogoProps) {\n const image = (\n <Image src={imageUrl} style={{ maxHeight: '2rem' }} />\n );\n\n if (destinationUrl === undefined) {\n return image;\n }\n\n return (\n <IntlProvider locale=\"en\">\n <Hyperlink destination={destinationUrl} className=\"p-0\">\n {image}\n </Hyperlink>\n </IntlProvider>\n );\n}\n"]}
@@ -0,0 +1 @@
1
+ export default function Shell(): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,10 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { SiteProvider, Slot } from '../runtime';
3
+ import { useActiveRouteRoleWatcher, useTrackColorSchemeChoice } from '../runtime/react/hooks';
4
+ import DefaultLayout from './DefaultLayout';
5
+ export default function Shell() {
6
+ useActiveRouteRoleWatcher();
7
+ useTrackColorSchemeChoice();
8
+ return (_jsx(SiteProvider, { children: _jsx(Slot, { id: "org.openedx.frontend.slot.layout.main.v1", layout: DefaultLayout }) }));
9
+ }
10
+ //# sourceMappingURL=Shell.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Shell.js","sourceRoot":"","sources":["../../shell/Shell.tsx"],"names":[],"mappings":";AAAA,OAAO,EACL,YAAY,EACZ,IAAI,EACL,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,MAAM,wBAAwB,CAAC;AAE9F,OAAO,aAAa,MAAM,iBAAiB,CAAC;AAE5C,MAAM,CAAC,OAAO,UAAU,KAAK;IAC3B,yBAAyB,EAAE,CAAC;IAC5B,yBAAyB,EAAE,CAAC;IAE5B,OAAO,CACL,KAAC,YAAY,cACX,KAAC,IAAI,IAAC,EAAE,EAAC,0CAA0C,EAAC,MAAM,EAAE,aAAa,GAAI,GAChE,CAChB,CAAC;AACJ,CAAC","sourcesContent":["import {\n SiteProvider,\n Slot\n} from '../runtime';\nimport { useActiveRouteRoleWatcher, useTrackColorSchemeChoice } from '../runtime/react/hooks';\n\nimport DefaultLayout from './DefaultLayout';\n\nexport default function Shell() {\n useActiveRouteRoleWatcher();\n useTrackColorSchemeChoice();\n\n return (\n <SiteProvider>\n <Slot id=\"org.openedx.frontend.slot.layout.main.v1\" layout={DefaultLayout} />\n </SiteProvider>\n );\n}\n"]}