@newskit-render/core 0.0.0-d55b7d88
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.
- package/.ci/trigger-circleci-workflow.sh +37 -0
- package/.eslintignore +23 -0
- package/.eslintrc +74 -0
- package/.prettierignore +19 -0
- package/.prettierrc +7 -0
- package/CHANGELOG.md +7638 -0
- package/Dockerfile +14 -0
- package/Dockerfile.withNewRelic +15 -0
- package/README.md +274 -0
- package/__tests__/pages/__snapshots__/brightcove.test.tsx.snap +20 -0
- package/__tests__/pages/__snapshots__/home.test.tsx.snap +1195 -0
- package/__tests__/pages/brightcove.test.tsx +34 -0
- package/__tests__/pages/empty.test.tsx +10 -0
- package/__tests__/pages/home.test.tsx +16 -0
- package/app-context/InstrumentationContextProvider.tsx +36 -0
- package/assets/fontFamily.ts +416 -0
- package/assets/fonts/Graphik-Black-App.ttf +0 -0
- package/assets/fonts/Graphik-BlackItalic-App.ttf +0 -0
- package/assets/fonts/Graphik-Bold-App.ttf +0 -0
- package/assets/fonts/Graphik-BoldItalic-App.ttf +0 -0
- package/assets/fonts/Graphik-Extralight-App.ttf +0 -0
- package/assets/fonts/Graphik-ExtralightItalic-App.ttf +0 -0
- package/assets/fonts/Graphik-Light-App.ttf +0 -0
- package/assets/fonts/Graphik-LightItalic-App.ttf +0 -0
- package/assets/fonts/Graphik-Medium-App.ttf +0 -0
- package/assets/fonts/Graphik-Medium-Web.woff2 +0 -0
- package/assets/fonts/Graphik-MediumItalic-App.ttf +0 -0
- package/assets/fonts/Graphik-Regular-App.ttf +0 -0
- package/assets/fonts/Graphik-Regular-Web.woff2 +0 -0
- package/assets/fonts/Graphik-RegularItalic-App.ttf +0 -0
- package/assets/fonts/Graphik-Semibold-App.ttf +0 -0
- package/assets/fonts/Graphik-Semibold-Web.woff2 +0 -0
- package/assets/fonts/Graphik-SemiboldItalic-App.ttf +0 -0
- package/assets/fonts/Graphik-Super-App.ttf +0 -0
- package/assets/fonts/Graphik-SuperItalic-App.ttf +0 -0
- package/assets/fonts/Graphik-Thin-App.ttf +0 -0
- package/assets/fonts/Graphik-ThinItalic-App.ttf +0 -0
- package/assets/fonts/Montserrat-Black.ttf +0 -0
- package/assets/fonts/Montserrat-BlackItalic.ttf +0 -0
- package/assets/fonts/Montserrat-Bold.ttf +0 -0
- package/assets/fonts/Montserrat-BoldItalic.ttf +0 -0
- package/assets/fonts/Montserrat-ExtraBold.ttf +0 -0
- package/assets/fonts/Montserrat-ExtraBoldItalic.ttf +0 -0
- package/assets/fonts/Montserrat-ExtraLight.ttf +0 -0
- package/assets/fonts/Montserrat-ExtraLightItalic.ttf +0 -0
- package/assets/fonts/Montserrat-Italic.ttf +0 -0
- package/assets/fonts/Montserrat-Light.ttf +0 -0
- package/assets/fonts/Montserrat-LightItalic.ttf +0 -0
- package/assets/fonts/Montserrat-Medium.ttf +0 -0
- package/assets/fonts/Montserrat-MediumItalic.ttf +0 -0
- package/assets/fonts/Montserrat-Regular.ttf +0 -0
- package/assets/fonts/Montserrat-SemiBold.ttf +0 -0
- package/assets/fonts/Montserrat-SemiBoldItalic.ttf +0 -0
- package/assets/fonts/Montserrat-Thin.ttf +0 -0
- package/assets/fonts/Montserrat-ThinItalic.ttf +0 -0
- package/assets/fonts/PublicoHeadline-Black-App.ttf +0 -0
- package/assets/fonts/PublicoHeadline-BlackItalic-App.ttf +0 -0
- package/assets/fonts/PublicoHeadline-Bold-App.ttf +0 -0
- package/assets/fonts/PublicoHeadline-Bold-Web.woff2 +0 -0
- package/assets/fonts/PublicoHeadline-BoldItalic-App.ttf +0 -0
- package/assets/fonts/PublicoHeadline-Extrabold-App.ttf +0 -0
- package/assets/fonts/PublicoHeadline-ExtraboldItalic-App.ttf +0 -0
- package/assets/fonts/PublicoHeadline-Italic-App.ttf +0 -0
- package/assets/fonts/PublicoHeadline-Light-App.ttf +0 -0
- package/assets/fonts/PublicoHeadline-LightItalic-App.ttf +0 -0
- package/assets/fonts/PublicoHeadline-Medium-App.ttf +0 -0
- package/assets/fonts/PublicoHeadline-MediumItalic-App.ttf +0 -0
- package/assets/fonts/PublicoHeadline-Roman-App.ttf +0 -0
- package/assets/fonts/PublicoHeadline-Roman-Web.woff2 +0 -0
- package/assets/fonts/PublicoText-Bold-App.ttf +0 -0
- package/assets/fonts/PublicoText-BoldItalic-App.ttf +0 -0
- package/assets/fonts/PublicoText-Italic-App.ttf +0 -0
- package/assets/fonts/PublicoText-Italic-Web.woff2 +0 -0
- package/assets/fonts/PublicoText-Roman-App.ttf +0 -0
- package/assets/fonts/PublicoText-Roman-Web.woff2 +0 -0
- package/assets/fonts/PublicoText-Semibold-App.ttf +0 -0
- package/assets/fonts/PublicoText-SemiboldItalic-App.ttf +0 -0
- package/assets/fonts/Roboto-Bold.ttf +0 -0
- package/assets/fonts/Roboto-Light.ttf +0 -0
- package/assets/fonts/Roboto-Medium.ttf +0 -0
- package/assets/fonts/Roboto-Regular.ttf +0 -0
- package/assets/fonts/TheSun-Bold.ttf +0 -0
- package/assets/fonts/TheSun-BoldItalic.ttf +0 -0
- package/assets/fonts/TheSun-HeavyCondensed.ttf +0 -0
- package/assets/fonts/TheSun-HeavyNarrow.ttf +0 -0
- package/assets/fonts/TheSun-Italic.ttf +0 -0
- package/assets/fonts/TheSun-Medium.ttf +0 -0
- package/assets/fonts/TheSun-MediumItalic.ttf +0 -0
- package/assets/fonts/TheSun-Regular.ttf +0 -0
- package/assets/fonts/TimesDigital-Bold.ttf +0 -0
- package/assets/fonts/TimesDigital-BoldItalic.ttf +0 -0
- package/assets/fonts/TimesDigital-BoldSC.ttf +0 -0
- package/assets/fonts/TimesDigital-Italic.ttf +0 -0
- package/assets/fonts/TimesDigital-Regular.ttf +0 -0
- package/assets/fonts/TimesDigital-RegularSC.ttf +0 -0
- package/assets/fonts/TimesDigitalW04-Bold.ttf +0 -0
- package/assets/fonts/TimesDigitalW04-BoldItalic.ttf +0 -0
- package/assets/fonts/TimesDigitalW04-BoldSC.ttf +0 -0
- package/assets/fonts/TimesDigitalW04-Italic.ttf +0 -0
- package/assets/fonts/TimesDigitalW04-Regular.ttf +0 -0
- package/assets/fonts/TimesDigitalW04-RegularSC.ttf +0 -0
- package/assets/fonts/TimesModern-Regular.otf +0 -0
- package/assets/fonts/attribuitions.mdx +35 -0
- package/assets/fonts/bitter-medium.woff +0 -0
- package/assets/fonts/bitter-medium.woff2 +0 -0
- package/assets/fonts/bitter-mediumitalic.woff +0 -0
- package/assets/fonts/bitter-mediumitalic.woff2 +0 -0
- package/assets/fonts/bitter-regular.woff +0 -0
- package/assets/fonts/bitter-regular.woff2 +0 -0
- package/assets/fonts/bitter-semibold.woff +0 -0
- package/assets/fonts/bitter-semibold.woff2 +0 -0
- package/assets/fonts/dmmono-medium.woff +0 -0
- package/assets/fonts/dmmono-medium.woff2 +0 -0
- package/assets/fonts/dmsans-bold-webfont.woff +0 -0
- package/assets/fonts/dmsans-bold-webfont.woff2 +0 -0
- package/assets/fonts/dmsans-bolditalic-webfont.woff +0 -0
- package/assets/fonts/dmsans-bolditalic-webfont.woff2 +0 -0
- package/assets/fonts/dmsans-italic-webfont.woff +0 -0
- package/assets/fonts/dmsans-italic-webfont.woff2 +0 -0
- package/assets/fonts/dmsans-medium-webfont.woff +0 -0
- package/assets/fonts/dmsans-medium-webfont.woff2 +0 -0
- package/assets/fonts/dmsans-mediumitalic-webfont.woff +0 -0
- package/assets/fonts/dmsans-mediumitalic-webfont.woff2 +0 -0
- package/assets/fonts/dmsans-regular-webfont.woff +0 -0
- package/assets/fonts/dmsans-regular-webfont.woff2 +0 -0
- package/assets/fonts/notosans-bold-webfont.woff +0 -0
- package/assets/fonts/notosans-bold-webfont.woff2 +0 -0
- package/assets/fonts/notosans-italic-webfont.woff +0 -0
- package/assets/fonts/notosans-italic-webfont.woff2 +0 -0
- package/assets/fonts/notosans-medium-webfont.woff +0 -0
- package/assets/fonts/notosans-medium-webfont.woff2 +0 -0
- package/assets/fonts/notosans-regular-webfont.woff +0 -0
- package/assets/fonts/notosans-regular-webfont.woff2 +0 -0
- package/assets/fonts/poppins-bold-webfont.woff +0 -0
- package/assets/fonts/poppins-bold-webfont.woff2 +0 -0
- package/assets/fonts/poppins-bolditalic-webfont.woff +0 -0
- package/assets/fonts/poppins-bolditalic-webfont.woff2 +0 -0
- package/assets/fonts/poppins-extrabold-webfont.woff +0 -0
- package/assets/fonts/poppins-extrabold-webfont.woff2 +0 -0
- package/assets/fonts/poppins-extrabolditalic-webfont.woff +0 -0
- package/assets/fonts/poppins-extrabolditalic-webfont.woff2 +0 -0
- package/assets/fonts/poppins-italic-webfont.woff +0 -0
- package/assets/fonts/poppins-italic-webfont.woff2 +0 -0
- package/assets/fonts/poppins-light-webfont.woff +0 -0
- package/assets/fonts/poppins-light-webfont.woff2 +0 -0
- package/assets/fonts/poppins-lightitalic-webfont.woff +0 -0
- package/assets/fonts/poppins-lightitalic-webfont.woff2 +0 -0
- package/assets/fonts/poppins-medium-webfont.woff +0 -0
- package/assets/fonts/poppins-medium-webfont.woff2 +0 -0
- package/assets/fonts/poppins-mediumitalic-webfont.woff +0 -0
- package/assets/fonts/poppins-mediumitalic-webfont.woff2 +0 -0
- package/assets/fonts/poppins-regular-webfont.woff +0 -0
- package/assets/fonts/poppins-regular-webfont.woff2 +0 -0
- package/assets/fonts/poppins-semibold-webfont.woff +0 -0
- package/assets/fonts/poppins-semibold-webfont.woff2 +0 -0
- package/assets/fonts/poppins-semibolditalic-webfont.woff +0 -0
- package/assets/fonts/poppins-semibolditalic-webfont.woff2 +0 -0
- package/assets/fonts/source-serif-pro-600.woff +0 -0
- package/assets/fonts/source-serif-pro-600.woff2 +0 -0
- package/assets/fonts/source-serif-pro-600italic.woff +0 -0
- package/assets/fonts/source-serif-pro-600italic.woff2 +0 -0
- package/assets/fonts/source-serif-pro-700.woff +0 -0
- package/assets/fonts/source-serif-pro-700.woff2 +0 -0
- package/assets/fonts/source-serif-pro-700italic.woff +0 -0
- package/assets/fonts/source-serif-pro-700italic.woff2 +0 -0
- package/assets/fonts/source-serif-pro-italic.woff +0 -0
- package/assets/fonts/source-serif-pro-italic.woff2 +0 -0
- package/assets/fonts/source-serif-pro-regular.woff +0 -0
- package/assets/fonts/source-serif-pro-regular.woff2 +0 -0
- package/components/AccountDropdown/AccountDropdown.tsx +65 -0
- package/components/AccountDropdown/__tests__/AcountDropdown.test.tsx +83 -0
- package/components/AccountDropdown/accounts.ts +47 -0
- package/components/AccountDropdown/index.tsx +2 -0
- package/components/AccountDropdown/utils.ts +21 -0
- package/components/ErrorPage/ErrorPage.tsx +135 -0
- package/components/ad/index.tsx +35 -0
- package/components/article/Highlights.tsx +77 -0
- package/components/article/MetaBox.tsx +50 -0
- package/components/article/RelatedArticles.tsx +53 -0
- package/components/article/RelatedTopics.tsx +59 -0
- package/components/article/ShareBarComponent.tsx +53 -0
- package/components/article/__tests__/__snapshots__/index.test.tsx.snap +1568 -0
- package/components/article/__tests__/index.test.tsx +171 -0
- package/components/article/__tests__/mocks.ts +105 -0
- package/components/article/index.tsx +320 -0
- package/components/common/BackToHomepage.tsx +37 -0
- package/components/common/NavLink.tsx +26 -0
- package/components/common/NewskitLogo.tsx +52 -0
- package/components/common/NewskitLogoShort.tsx +48 -0
- package/components/common/SectionTitleBar.tsx +57 -0
- package/components/common/ShareButton.tsx +18 -0
- package/components/common/ViewMoreButton.tsx +20 -0
- package/components/common/iconNavLink/IconNavLink.tsx +70 -0
- package/components/common/iconNavLink/__tests__/IconNavLink.test.tsx +35 -0
- package/components/common/iconNavLink/index.ts +3 -0
- package/components/common/iconNavLink/types.ts +24 -0
- package/components/common/icons/IconAccount.tsx +13 -0
- package/components/common/icons/IconFilledTwitter.tsx +14 -0
- package/components/common/icons/StyledIconFilledChevronRight.tsx +12 -0
- package/components/footer/__snapshots__/index.test.tsx.snap +192 -0
- package/components/footer/index.test.tsx +13 -0
- package/components/footer/index.tsx +151 -0
- package/components/header/banner-messages.ts +39 -0
- package/components/header/index.tsx +52 -0
- package/components/header/navigation-links.ts +20 -0
- package/components/layout/Gutter.tsx +11 -0
- package/components/layout/LayoutTemplate.tsx +26 -0
- package/components/layout/MainGrid.tsx +66 -0
- package/components/layout/index.tsx +3 -0
- package/components/layout/layoutTypes.ts +13 -0
- package/components/section/ArticleSlice.tsx +35 -0
- package/components/section/CollectionBlock.tsx +54 -0
- package/components/section/SectionContext.tsx +9 -0
- package/components/section/__tests__/ArticleSlice.test.tsx +128 -0
- package/components/section/__tests__/CollectionBlock.test.tsx +83 -0
- package/components/section/__tests__/pageBlock.test.tsx +24 -0
- package/components/section/__tests__/sectionUtils.test.ts +94 -0
- package/components/section/index.tsx +39 -0
- package/components/section/layouts/Block.tsx +79 -0
- package/components/section/layouts/FallBack.tsx +24 -0
- package/components/section/layouts/Lead.tsx +43 -0
- package/components/section/layouts/Rows.tsx +82 -0
- package/components/section/layouts/SectionTitle.tsx +57 -0
- package/components/section/layouts/__tests__/Lead.test.tsx +37 -0
- package/components/section/layouts/__tests__/Rows.test.tsx +40 -0
- package/components/section/layouts/__tests__/SectionTitle.test.tsx +37 -0
- package/components/section/layouts/__tests__/__snapshots__/Lead.test.tsx.snap +180 -0
- package/components/section/layouts/__tests__/__snapshots__/SectionTitle.test.tsx.snap +354 -0
- package/components/section/layouts/gridUtils.ts +21 -0
- package/components/section/layouts/index.tsx +4 -0
- package/components/section/layouts/types.ts +13 -0
- package/components/section/pageBlock.tsx +23 -0
- package/components/section/sectionUtils.ts +61 -0
- package/components/teaser/index.test.tsx +50 -0
- package/components/teaser/index.tsx +64 -0
- package/components/teaser/teaserVariants.ts +33 -0
- package/components/teaser/variant-types.ts +49 -0
- package/components/teaser/variants/featureVariant.ts +42 -0
- package/components/teaser/variants/horizontal.ts +14 -0
- package/components/teaser/variants/titleTeaserVariant.ts +32 -0
- package/components/teaser/variants/titleVertical.ts +24 -0
- package/components/utils/index.test.ts +12 -0
- package/components/utils/index.ts +6 -0
- package/config/__tests__/index.test.ts +54 -0
- package/config/environment.ts +80 -0
- package/config/index.ts +2 -0
- package/config/multiTenancy.ts +11 -0
- package/constants/index.ts +2 -0
- package/context/app-context/AppContext.test.tsx +56 -0
- package/context/app-context/holidayStopListContextOverrides.ts +18 -0
- package/context/app-context/index.tsx +34 -0
- package/context/app-context/paymentMethodContext.tsx +70 -0
- package/context/index.tsx +2 -0
- package/context/multi-tenancy/MultiTenancy.test.tsx +48 -0
- package/context/multi-tenancy/index.tsx +32 -0
- package/css/index.ts +15 -0
- package/cypress/axe/terminal-log.js +19 -0
- package/cypress/config/visual.config.ts +11 -0
- package/cypress/config/visual.skip.config.ts +10 -0
- package/cypress/e2e/account/accessibility.cy.js +88 -0
- package/cypress/e2e/account/banners.cy.js +169 -0
- package/cypress/e2e/account/cancellation.cy.js +219 -0
- package/cypress/e2e/account/holiday-stops.cy.js +109 -0
- package/cypress/e2e/account/main-api.cy.js +102 -0
- package/cypress/e2e/account/newsletters-and-alerts.cy.js +149 -0
- package/cypress/e2e/account/newsletters-page.cy.js +69 -0
- package/cypress/e2e/account/payment-page.cy.js +98 -0
- package/cypress/e2e/account/personal-details.cy.js +1161 -0
- package/cypress/e2e/account/subscription-and-billing.cy.js +434 -0
- package/cypress/e2e/checkout/account-creation.cy.js +8 -0
- package/cypress/e2e/checkout/payment-details.cy.js +19 -0
- package/cypress/e2e/core/home-page.cy.js +6 -0
- package/cypress/e2e/help-hub/accessibility.cy.js +35 -0
- package/cypress/e2e/help-hub/article-page.cy.js +115 -0
- package/cypress/e2e/help-hub/landing-page.cy.js +94 -0
- package/cypress/e2e/help-hub/result-page.cy.js +117 -0
- package/cypress/fixtures/empty.html +10 -0
- package/cypress/fixtures/example.json +5 -0
- package/cypress/fixtures/holiday-stops.json +40 -0
- package/cypress/fixtures/paymentFailure.js +24 -0
- package/cypress/fixtures/testDates.js +26 -0
- package/cypress/support/commands.js +125 -0
- package/cypress/support/consentValues.js +5839 -0
- package/cypress/support/e2e.js +22 -0
- package/cypress/support/users.js +58 -0
- package/cypress/visual/account/print-visual-regression.cy.js +9 -0
- package/cypress/visual/account/visual-regression.cy.js +40 -0
- package/cypress/visual/empty/empty.cy.js +5 -0
- package/cypress.config.ts +38 -0
- package/helpers/__tests__/getUser.test.ts +45 -0
- package/helpers/__tests__/logger.test.ts +62 -0
- package/helpers/__tests__/useThemeDropdownObject.test.ts +49 -0
- package/helpers/a11y.ts +7 -0
- package/helpers/addCacheHeaders.ts +8 -0
- package/helpers/getUser.ts +37 -0
- package/helpers/getYear.ts +1 -0
- package/helpers/global-types.ts +186 -0
- package/helpers/logger/getWinstonLogger.ts +19 -0
- package/helpers/logger/index.ts +20 -0
- package/helpers/logger/replaceConsoleWithLogger.ts +14 -0
- package/helpers/mocks/articleMock.ts +50 -0
- package/helpers/mocks/getPageMock.ts +369 -0
- package/helpers/mocks/getRadioPostMock.ts +71 -0
- package/helpers/mocks/getRadioPostsMock.ts +26 -0
- package/helpers/mocks/getRecommendationsMock.ts +20 -0
- package/helpers/mocks/index.ts +7 -0
- package/helpers/multiTenancy.ts +19 -0
- package/helpers/setupTests.ts +5 -0
- package/helpers/test-utils.tsx +33 -0
- package/helpers/useThemeDropdownObject.tsx +73 -0
- package/infrastructure/.circleci/config.yml +1187 -0
- package/infrastructure/INFRASTRUCTURE.md +142 -0
- package/infrastructure/build_and_deploy.png +0 -0
- package/infrastructure/helm/Chart.yaml +21 -0
- package/infrastructure/helm/templates/_helpers.tpl +87 -0
- package/infrastructure/helm/templates/deployment.yaml +45 -0
- package/infrastructure/helm/templates/horizontalpodautoscaler.yaml +21 -0
- package/infrastructure/helm/templates/ingress.yaml +31 -0
- package/infrastructure/helm/templates/networkpolicy.yaml +26 -0
- package/infrastructure/helm/templates/secret.yaml +12 -0
- package/infrastructure/helm/templates/service.yaml +15 -0
- package/infrastructure/helm/values-dev.yaml +39 -0
- package/infrastructure/helm/values-local.yaml +30 -0
- package/infrastructure/helm/values-pr.yaml +40 -0
- package/infrastructure/helm/values-prod.yaml +39 -0
- package/infrastructure/helm/values-staging.yaml +39 -0
- package/infrastructure/helm/values.yaml +44 -0
- package/infrastructure/pull_request.png +0 -0
- package/infrastructure/release-documentation-cli.config.json +18 -0
- package/infrastructure/remove_pr.png +0 -0
- package/infrastructure/terraform-ecr/dev.tfvars +3 -0
- package/infrastructure/terraform-ecr/ecr.tf +69 -0
- package/infrastructure/terraform-ecr/main.tf +3 -0
- package/infrastructure/terraform-ecr/variables.tf +19 -0
- package/infrastructure/terraform-ecr/versions.tf +12 -0
- package/infrastructure/terraform-newrelic/alerts.tf +290 -0
- package/infrastructure/terraform-newrelic/dashboards.tf +347 -0
- package/infrastructure/terraform-newrelic/dev.tfvars +3 -0
- package/infrastructure/terraform-newrelic/lighthouse-script-dev.js +53 -0
- package/infrastructure/terraform-newrelic/lighthouse-script-prod.js +54 -0
- package/infrastructure/terraform-newrelic/lighthouse-script-stage.js +54 -0
- package/infrastructure/terraform-newrelic/main.tf +11 -0
- package/infrastructure/terraform-newrelic/monitors.tf +11 -0
- package/infrastructure/terraform-newrelic/prod.tfvars +3 -0
- package/infrastructure/terraform-newrelic/staging.tfvars +3 -0
- package/infrastructure/terraform-newrelic/variables.tf +33 -0
- package/infrastructure/terraform-newrelic/versions.tf +18 -0
- package/jest.config.js +40 -0
- package/jest.config.pact.js +18 -0
- package/newrelic.js +86 -0
- package/next-env.d.ts +5 -0
- package/next.config.js +95 -0
- package/package.json +127 -0
- package/pages/_app.tsx +117 -0
- package/pages/_document.tsx +112 -0
- package/pages/_error.tsx +68 -0
- package/pages/account/add/[field].tsx +34 -0
- package/pages/account/cancellation/index.tsx +22 -0
- package/pages/account/delete/confirm/index.tsx +16 -0
- package/pages/account/delete/error/index.tsx +16 -0
- package/pages/account/delete/index.tsx +16 -0
- package/pages/account/delete/success/index.tsx +16 -0
- package/pages/account/dream-team/index.tsx +19 -0
- package/pages/account/edit/[field].tsx +45 -0
- package/pages/account/family/index.tsx +19 -0
- package/pages/account/holiday-stop/index.tsx +19 -0
- package/pages/account/holiday-stop/previous-holiday-stops.tsx +19 -0
- package/pages/account/holiday-stop/upcoming-holiday-stops.tsx +19 -0
- package/pages/account/index.tsx +33 -0
- package/pages/account/newsletters/index.tsx +19 -0
- package/pages/account/newsletters-and-alerts/index.tsx +24 -0
- package/pages/account/payment/[paymentMethod].tsx +37 -0
- package/pages/account/payment/index.tsx +23 -0
- package/pages/account/payment-methods/index.tsx +21 -0
- package/pages/account/subscription-and-billing/index.tsx +29 -0
- package/pages/api/account/get-session/index.ts +33 -0
- package/pages/api/account/invoice/index.ts +35 -0
- package/pages/api/account/mutate/index.ts +8 -0
- package/pages/api/account/query/index.ts +7 -0
- package/pages/api/auth/[...nextauth].ts +11 -0
- package/pages/api/competitions-sitemap.ts +19 -0
- package/pages/api/feed.ts +23 -0
- package/pages/api/health-check.ts +7 -0
- package/pages/api/news-sitemap.ts +18 -0
- package/pages/api/pages-sitemap.ts +27 -0
- package/pages/api/robots.ts +19 -0
- package/pages/api/sitemap.ts +24 -0
- package/pages/checkout/account-creation/index.tsx +13 -0
- package/pages/checkout/payment-details/index.tsx +10 -0
- package/pages/empty.tsx +6 -0
- package/pages/help-hub/article/[title]/index.tsx +25 -0
- package/pages/help-hub/error.tsx +23 -0
- package/pages/help-hub/index.tsx +51 -0
- package/pages/help-hub/results.tsx +25 -0
- package/pages/index.tsx +19 -0
- package/pages/player/brightcove.tsx +19 -0
- package/pages/rss/create/index.tsx +18 -0
- package/pages/rss/feed/[feedId]/index.tsx +21 -0
- package/pages/rss/index.tsx +18 -0
- package/public/ads.min.js +8175 -0
- package/public/assets/display-base-header.svg +25 -0
- package/public/assets/display-personalDetails-header-sun.svg +55 -0
- package/public/assets/display-personalDetails-header-times.svg +90 -0
- package/public/assets/display-personalDetails-header-vr.svg +46 -0
- package/public/assets/dream-team.svg +10 -0
- package/public/assets/navigationPrimary-brandMark-sun.svg +9 -0
- package/public/assets/navigationPrimary-brandMark-times.svg +18 -0
- package/public/assets/navigationPrimary-brandMark-vr.svg +10 -0
- package/public/assets/newsletters/bestoftimes-101.png +0 -0
- package/public/assets/newsletters/books-115.png +0 -0
- package/public/assets/newsletters/environment-140.png +0 -0
- package/public/assets/newsletters/fashion-108.png +0 -0
- package/public/assets/newsletters/food-106.png +0 -0
- package/public/assets/newsletters/football-111.png +0 -0
- package/public/assets/newsletters/ireland-152.png +0 -0
- package/public/assets/newsletters/law-121.png +0 -0
- package/public/assets/newsletters/money-107.png +0 -0
- package/public/assets/newsletters/moneymentor-150.png +0 -0
- package/public/assets/newsletters/placeholder.png +0 -0
- package/public/assets/newsletters/politics-119.png +0 -0
- package/public/assets/newsletters/property-113.png +0 -0
- package/public/assets/newsletters/puzzles-125.png +0 -0
- package/public/assets/newsletters/scotland-134.png +0 -0
- package/public/assets/newsletters/theatre-127.png +0 -0
- package/public/assets/newsletters/travel-149.png +0 -0
- package/public/assets/newsletters/tv-133.png +0 -0
- package/public/assets/newsletters/us-153.png +0 -0
- package/public/assets/no-subscription.svg +15 -0
- package/public/assets/pending-activation.svg +16 -0
- package/public/assets/personal-details-header.svg +91 -0
- package/public/assets/plchldr150x100.png +0 -0
- package/public/assets/previous-subscription.svg +15 -0
- package/public/assets/primary-navigation-logo-white.svg +6 -0
- package/public/assets/primary-navigation-logo.svg +6 -0
- package/public/assets/tls-logo-white.svg +3 -0
- package/public/favicon.ico +0 -0
- package/public/icon.png +0 -0
- package/public/prebid.min.js +1 -0
- package/queries/getPage.ts +100 -0
- package/queries/getRadioPost.ts +61 -0
- package/queries/getRadioPosts.ts +16 -0
- package/queries/getUserSubscription.ts +9 -0
- package/queries/index.ts +3 -0
- package/scripts/k8s-local.sh +137 -0
- package/scripts/nr-exports.sh +7 -0
- package/temp/_app.tsx +15 -0
- package/temp/_document.tsx +61 -0
- package/temp/app-context-test.tsx +51 -0
- package/temp/app-context.tsx +25 -0
- package/temp/config-index.ts +1 -0
- package/temp/context-index.tsx +1 -0
- package/temp/header.tsx +45 -0
- package/temp/next.config.js +56 -0
- package/tsconfig.json +51 -0
- package/tsconfig.test.json +6 -0
- package/validation/index.tsx +24 -0
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import React from 'react'
|
|
2
|
+
import {
|
|
3
|
+
AccountDeletionError,
|
|
4
|
+
getProviderProps,
|
|
5
|
+
} from '@newskit-render/my-account'
|
|
6
|
+
import { replaceConsoleAndSetTransactionName } from '../../../../helpers/logger'
|
|
7
|
+
|
|
8
|
+
const Error = (props) => <AccountDeletionError {...props} />
|
|
9
|
+
|
|
10
|
+
export default Error
|
|
11
|
+
|
|
12
|
+
export const getServerSideProps = async (context) => {
|
|
13
|
+
replaceConsoleAndSetTransactionName('Account: Deletion - Error')
|
|
14
|
+
|
|
15
|
+
return getProviderProps({ ...context })
|
|
16
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import React from 'react'
|
|
2
|
+
import {
|
|
3
|
+
InitiateAccountDeletion,
|
|
4
|
+
getProviderProps,
|
|
5
|
+
} from '@newskit-render/my-account'
|
|
6
|
+
import { replaceConsoleAndSetTransactionName } from '../../../helpers/logger'
|
|
7
|
+
|
|
8
|
+
const AccountDeletion = (props) => <InitiateAccountDeletion {...props} />
|
|
9
|
+
|
|
10
|
+
export default AccountDeletion
|
|
11
|
+
|
|
12
|
+
export const getServerSideProps = async (context) => {
|
|
13
|
+
replaceConsoleAndSetTransactionName('Account: Deletion')
|
|
14
|
+
|
|
15
|
+
return getProviderProps({ ...context })
|
|
16
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import React from 'react'
|
|
2
|
+
import {
|
|
3
|
+
AccountDeletionSuccess,
|
|
4
|
+
getProviderProps,
|
|
5
|
+
} from '@newskit-render/my-account'
|
|
6
|
+
import { replaceConsoleAndSetTransactionName } from '../../../../helpers/logger'
|
|
7
|
+
|
|
8
|
+
const Success = (props) => <AccountDeletionSuccess {...props} />
|
|
9
|
+
|
|
10
|
+
export default Success
|
|
11
|
+
|
|
12
|
+
export const getServerSideProps = async (context) => {
|
|
13
|
+
replaceConsoleAndSetTransactionName('Account: Deletion - Success')
|
|
14
|
+
|
|
15
|
+
return getProviderProps({ ...context })
|
|
16
|
+
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import React from 'react'
|
|
2
|
+
import { DreamTeam, getProviderProps } from '@newskit-render/my-account'
|
|
3
|
+
import { replaceConsoleAndSetTransactionName } from '../../../helpers/logger'
|
|
4
|
+
import { getFlagsAll } from '@newskit-render/feature-flags' /* cra-effected */
|
|
5
|
+
|
|
6
|
+
const AccountNewslettersAndAlerts = (props) => <DreamTeam {...props} />
|
|
7
|
+
|
|
8
|
+
export default AccountNewslettersAndAlerts
|
|
9
|
+
|
|
10
|
+
export const getServerSideProps = async (context) => {
|
|
11
|
+
replaceConsoleAndSetTransactionName('Account: Dream Team')
|
|
12
|
+
/* start cra-effected */
|
|
13
|
+
const featureFlags = await getFlagsAll()
|
|
14
|
+
/* end cra-effected */
|
|
15
|
+
return getProviderProps(
|
|
16
|
+
{ ...context, provider: 'DreamTeam' },
|
|
17
|
+
{ featureFlags } /* cra-effected */
|
|
18
|
+
)
|
|
19
|
+
}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import React from 'react'
|
|
2
|
+
import { replaceConsoleAndSetTransactionName } from '../../../helpers/logger'
|
|
3
|
+
import {
|
|
4
|
+
EditField,
|
|
5
|
+
getProviderProps,
|
|
6
|
+
editComponentMap,
|
|
7
|
+
DynamicPage,
|
|
8
|
+
} from '@newskit-render/my-account'
|
|
9
|
+
import { getFlagsAll } from '@newskit-render/feature-flags' /* cra-effected */
|
|
10
|
+
import validation from '../../../validation'
|
|
11
|
+
|
|
12
|
+
const AccountEditField = (props) => (
|
|
13
|
+
<DynamicPage
|
|
14
|
+
objectMap={editComponentMap}
|
|
15
|
+
pageName={props.data.type}
|
|
16
|
+
Component={EditField}
|
|
17
|
+
componentProps={props}
|
|
18
|
+
validation={validation}
|
|
19
|
+
/>
|
|
20
|
+
)
|
|
21
|
+
|
|
22
|
+
export default AccountEditField
|
|
23
|
+
|
|
24
|
+
export const getServerSideProps = async (context) => {
|
|
25
|
+
const {
|
|
26
|
+
params: { field },
|
|
27
|
+
} = context
|
|
28
|
+
const doesEditPageExist = Object.keys(editComponentMap).includes(field)
|
|
29
|
+
|
|
30
|
+
replaceConsoleAndSetTransactionName(`Account: edit ${field}`)
|
|
31
|
+
|
|
32
|
+
if (!doesEditPageExist) {
|
|
33
|
+
context.res.statusCode = 404
|
|
34
|
+
// Logging the error for being captured by New Relic
|
|
35
|
+
console.error(`An error ${context.res.statusCode} occurred on server`)
|
|
36
|
+
}
|
|
37
|
+
/* start cra-effected */
|
|
38
|
+
const featureFlags = await getFlagsAll()
|
|
39
|
+
/* end cra-effected */
|
|
40
|
+
|
|
41
|
+
return getProviderProps(
|
|
42
|
+
{ ...context, provider: 'EditField' },
|
|
43
|
+
{ featureFlags } /* cra-effected */
|
|
44
|
+
)
|
|
45
|
+
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import React from 'react'
|
|
2
|
+
import { Family, getProviderProps } from '@newskit-render/my-account'
|
|
3
|
+
import { replaceConsoleAndSetTransactionName } from '../../../helpers/logger'
|
|
4
|
+
import { getFlagsAll } from '@newskit-render/feature-flags' /* cra-effected */
|
|
5
|
+
|
|
6
|
+
const AccountFamily = (props) => <Family {...props} />
|
|
7
|
+
|
|
8
|
+
export default AccountFamily
|
|
9
|
+
|
|
10
|
+
export const getServerSideProps = async (context) => {
|
|
11
|
+
replaceConsoleAndSetTransactionName('Account: Family')
|
|
12
|
+
/* start cra-effected */
|
|
13
|
+
const featureFlags = await getFlagsAll()
|
|
14
|
+
/* end cra-effected */
|
|
15
|
+
return getProviderProps(
|
|
16
|
+
{ ...context, provider: 'GroupAccounts' },
|
|
17
|
+
{ featureFlags } /* cra-effected */
|
|
18
|
+
)
|
|
19
|
+
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import React from 'react'
|
|
2
|
+
import { getProviderProps, HolidayStop } from '@newskit-render/my-account'
|
|
3
|
+
import { replaceConsoleAndSetTransactionName } from '../../../helpers/logger'
|
|
4
|
+
import { getFlagsAll } from '@newskit-render/feature-flags' /* cra-effected */
|
|
5
|
+
|
|
6
|
+
const AccountHolidayStop = (props) => <HolidayStop {...props} />
|
|
7
|
+
|
|
8
|
+
export default AccountHolidayStop
|
|
9
|
+
|
|
10
|
+
export const getServerSideProps = async (context) => {
|
|
11
|
+
replaceConsoleAndSetTransactionName('Account: Book a Holiday Stop')
|
|
12
|
+
/* start cra-effected */
|
|
13
|
+
const featureFlags = await getFlagsAll()
|
|
14
|
+
/* end cra-effected */
|
|
15
|
+
return getProviderProps(
|
|
16
|
+
{ ...context, provider: 'HolidayStop' },
|
|
17
|
+
{ featureFlags } /* cra-effected */
|
|
18
|
+
)
|
|
19
|
+
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import React from 'react'
|
|
2
|
+
import { getProviderProps, HolidayStopList } from '@newskit-render/my-account'
|
|
3
|
+
import { replaceConsoleAndSetTransactionName } from '../../../helpers/logger'
|
|
4
|
+
import { holidayStopListContextOverrides } from '../../../context/app-context/holidayStopListContextOverrides'
|
|
5
|
+
|
|
6
|
+
const AccountPreviousHolidayStops = (props) => (
|
|
7
|
+
<HolidayStopList
|
|
8
|
+
{...props}
|
|
9
|
+
holidayStopType="previous"
|
|
10
|
+
context={holidayStopListContextOverrides}
|
|
11
|
+
/>
|
|
12
|
+
)
|
|
13
|
+
|
|
14
|
+
export default AccountPreviousHolidayStops
|
|
15
|
+
|
|
16
|
+
export const getServerSideProps = async (context) => {
|
|
17
|
+
replaceConsoleAndSetTransactionName('Account: Previous Holiday Stops')
|
|
18
|
+
return getProviderProps({ ...context, provider: 'HolidayStop' })
|
|
19
|
+
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import React from 'react'
|
|
2
|
+
import { getProviderProps, HolidayStopList } from '@newskit-render/my-account'
|
|
3
|
+
import { replaceConsoleAndSetTransactionName } from '../../../helpers/logger'
|
|
4
|
+
import { holidayStopListContextOverrides } from '../../../context/app-context/holidayStopListContextOverrides'
|
|
5
|
+
|
|
6
|
+
const AccountUpcomingHolidayStops = (props) => (
|
|
7
|
+
<HolidayStopList
|
|
8
|
+
{...props}
|
|
9
|
+
holidayStopType="upcoming"
|
|
10
|
+
context={holidayStopListContextOverrides}
|
|
11
|
+
/>
|
|
12
|
+
)
|
|
13
|
+
|
|
14
|
+
export default AccountUpcomingHolidayStops
|
|
15
|
+
|
|
16
|
+
export const getServerSideProps = async (context) => {
|
|
17
|
+
replaceConsoleAndSetTransactionName('Account: Upcoming Holiday Stops')
|
|
18
|
+
return getProviderProps({ ...context, provider: 'HolidayStop' })
|
|
19
|
+
}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import React from 'react'
|
|
2
|
+
import { PersonalDetails, getProviderProps } from '@newskit-render/my-account'
|
|
3
|
+
import { getFlagsAll } from '@newskit-render/feature-flags' /* cra-effected */
|
|
4
|
+
import { AccountDropdown } from '../../components/AccountDropdown' /* cra-disabled */
|
|
5
|
+
import { replaceConsoleAndSetTransactionName } from '../../helpers/logger'
|
|
6
|
+
import { closeFlagsInstance } from '@newskit-render/feature-flags'
|
|
7
|
+
|
|
8
|
+
const AccountPersonalDetails = (props) => {
|
|
9
|
+
return (
|
|
10
|
+
<>
|
|
11
|
+
{
|
|
12
|
+
/* start cra-disabled */
|
|
13
|
+
<AccountDropdown />
|
|
14
|
+
/* end cra-disabled */
|
|
15
|
+
}
|
|
16
|
+
<PersonalDetails {...props} />
|
|
17
|
+
</>
|
|
18
|
+
)
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
export default AccountPersonalDetails
|
|
22
|
+
|
|
23
|
+
export const getServerSideProps = async (context) => {
|
|
24
|
+
replaceConsoleAndSetTransactionName('Account: Personal details')
|
|
25
|
+
|
|
26
|
+
const featureFlags = await getFlagsAll()
|
|
27
|
+
await closeFlagsInstance()
|
|
28
|
+
|
|
29
|
+
return getProviderProps(
|
|
30
|
+
{ ...context, provider: 'PersonalDetails' },
|
|
31
|
+
{ featureFlags } /* cra-effected */
|
|
32
|
+
)
|
|
33
|
+
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import React from 'react'
|
|
2
|
+
import { Newsletters, getProviderProps } from '@newskit-render/my-account'
|
|
3
|
+
import { replaceConsoleAndSetTransactionName } from '../../../helpers/logger'
|
|
4
|
+
import { getFlagsAll } from '@newskit-render/feature-flags' /* cra-effected */
|
|
5
|
+
|
|
6
|
+
const AccountNewsletters = (props) => <Newsletters {...props} />
|
|
7
|
+
|
|
8
|
+
export default AccountNewsletters
|
|
9
|
+
|
|
10
|
+
export const getServerSideProps = async (context) => {
|
|
11
|
+
replaceConsoleAndSetTransactionName('Account: Newsletters')
|
|
12
|
+
/* start cra-effected */
|
|
13
|
+
const featureFlags = await getFlagsAll()
|
|
14
|
+
/* end cra-effected */
|
|
15
|
+
return getProviderProps(
|
|
16
|
+
{ ...context, provider: 'Newsletters' },
|
|
17
|
+
{ featureFlags } /* cra-effected */
|
|
18
|
+
)
|
|
19
|
+
}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import React from 'react'
|
|
2
|
+
import {
|
|
3
|
+
NewslettersAndAlerts,
|
|
4
|
+
getProviderProps,
|
|
5
|
+
} from '@newskit-render/my-account'
|
|
6
|
+
import { replaceConsoleAndSetTransactionName } from '../../../helpers/logger'
|
|
7
|
+
import { getFlagsAll } from '@newskit-render/feature-flags' /* cra-effected */
|
|
8
|
+
|
|
9
|
+
const AccountNewslettersAndAlerts = (props) => (
|
|
10
|
+
<NewslettersAndAlerts {...props} />
|
|
11
|
+
)
|
|
12
|
+
|
|
13
|
+
export default AccountNewslettersAndAlerts
|
|
14
|
+
|
|
15
|
+
export const getServerSideProps = async (context) => {
|
|
16
|
+
replaceConsoleAndSetTransactionName('Account: Newsletters and Alerts')
|
|
17
|
+
/* start cra-effected */
|
|
18
|
+
const featureFlags = await getFlagsAll()
|
|
19
|
+
/* end cra-effected */
|
|
20
|
+
return getProviderProps(
|
|
21
|
+
{ ...context, provider: 'NewslettersAndAlerts' },
|
|
22
|
+
{ featureFlags } /* cra-effected */
|
|
23
|
+
)
|
|
24
|
+
}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import React from 'react'
|
|
2
|
+
import { replaceConsoleAndSetTransactionName } from '../../../helpers/logger'
|
|
3
|
+
import {
|
|
4
|
+
getProviderProps,
|
|
5
|
+
Payment,
|
|
6
|
+
paymentMethodsMap,
|
|
7
|
+
DynamicPage,
|
|
8
|
+
} from '@newskit-render/my-account'
|
|
9
|
+
import { getFlagsAll } from '@newskit-render/feature-flags' /* cra-effected */
|
|
10
|
+
|
|
11
|
+
const PaymentPage = (props) => {
|
|
12
|
+
return (
|
|
13
|
+
<DynamicPage
|
|
14
|
+
objectMap={paymentMethodsMap}
|
|
15
|
+
pageName={props.paymentType}
|
|
16
|
+
Component={Payment}
|
|
17
|
+
componentProps={props}
|
|
18
|
+
/>
|
|
19
|
+
)
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
export default PaymentPage
|
|
23
|
+
|
|
24
|
+
export const getServerSideProps = async (context) => {
|
|
25
|
+
replaceConsoleAndSetTransactionName('Payment method')
|
|
26
|
+
/* start cra-effected */
|
|
27
|
+
const featureFlags = await getFlagsAll()
|
|
28
|
+
/* end cra-effected */
|
|
29
|
+
|
|
30
|
+
return getProviderProps(
|
|
31
|
+
{
|
|
32
|
+
...context,
|
|
33
|
+
provider: 'Payment',
|
|
34
|
+
},
|
|
35
|
+
{ featureFlags } /* cra-effected */
|
|
36
|
+
)
|
|
37
|
+
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import React from 'react'
|
|
2
|
+
import { replaceConsoleAndSetTransactionName } from '../../../helpers/logger'
|
|
3
|
+
import { Payment, getProviderProps } from '@newskit-render/my-account'
|
|
4
|
+
import { getFlagsAll } from '@newskit-render/feature-flags' /* cra-effected */
|
|
5
|
+
|
|
6
|
+
const AccountPayment = (props) => <Payment {...props} />
|
|
7
|
+
|
|
8
|
+
export default AccountPayment
|
|
9
|
+
|
|
10
|
+
export const getServerSideProps = async (context) => {
|
|
11
|
+
replaceConsoleAndSetTransactionName('Edit Payment method')
|
|
12
|
+
/* start cra-effected */
|
|
13
|
+
const featureFlags = await getFlagsAll()
|
|
14
|
+
/* end cra-effected */
|
|
15
|
+
|
|
16
|
+
return getProviderProps(
|
|
17
|
+
{
|
|
18
|
+
...context,
|
|
19
|
+
provider: 'Payment',
|
|
20
|
+
},
|
|
21
|
+
{ featureFlags } /* cra-effected */
|
|
22
|
+
)
|
|
23
|
+
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import React from 'react'
|
|
2
|
+
import { getProviderProps, PaymentMethods } from '@newskit-render/my-account'
|
|
3
|
+
import { getFlagsAll } from '@newskit-render/feature-flags' // create-render-app effected
|
|
4
|
+
import { paymentMethodContext } from '../../../context/app-context/paymentMethodContext'
|
|
5
|
+
import { replaceConsoleAndSetTransactionName } from '../../../helpers/logger'
|
|
6
|
+
|
|
7
|
+
const AccountPaymentMethods = (props) => (
|
|
8
|
+
<PaymentMethods {...props} context={paymentMethodContext} />
|
|
9
|
+
)
|
|
10
|
+
|
|
11
|
+
export default AccountPaymentMethods
|
|
12
|
+
|
|
13
|
+
export const getServerSideProps = async (context) => {
|
|
14
|
+
replaceConsoleAndSetTransactionName('Account: Payment Methods')
|
|
15
|
+
const featureFlags = await getFlagsAll()
|
|
16
|
+
// create-render-app effected
|
|
17
|
+
return getProviderProps(
|
|
18
|
+
{ ...context, provider: 'PaymentMethods' },
|
|
19
|
+
{ featureFlags } // create-render-app effected
|
|
20
|
+
)
|
|
21
|
+
}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import React from 'react'
|
|
2
|
+
import {
|
|
3
|
+
SubscriptionAndBilling,
|
|
4
|
+
getProviderProps,
|
|
5
|
+
} from '@newskit-render/my-account'
|
|
6
|
+
import { getFlagsAll } from '@newskit-render/feature-flags' /* cra-effected */
|
|
7
|
+
import { replaceConsoleAndSetTransactionName } from '../../../helpers/logger'
|
|
8
|
+
|
|
9
|
+
const AccountSubscriptionAndBilling = (props) => (
|
|
10
|
+
<SubscriptionAndBilling {...props} />
|
|
11
|
+
)
|
|
12
|
+
|
|
13
|
+
export default AccountSubscriptionAndBilling
|
|
14
|
+
|
|
15
|
+
export const getServerSideProps = async (context) => {
|
|
16
|
+
replaceConsoleAndSetTransactionName('Account: Subscription and Billing')
|
|
17
|
+
/* start cra-effected */
|
|
18
|
+
const featureFlags = await getFlagsAll()
|
|
19
|
+
/* end cra-effected */
|
|
20
|
+
const result = await getProviderProps(
|
|
21
|
+
{
|
|
22
|
+
...context,
|
|
23
|
+
provider: 'SubscriptionAndBilling',
|
|
24
|
+
},
|
|
25
|
+
{ featureFlags } /* cra-effected */
|
|
26
|
+
)
|
|
27
|
+
|
|
28
|
+
return result
|
|
29
|
+
}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { fetchSessionCookie } from '@newskit-render/api'
|
|
2
|
+
import { safeJsonParse } from '@newskit-render/shared-components'
|
|
3
|
+
import { NextApiRequest, NextApiResponse } from 'next'
|
|
4
|
+
import { acsSessionUrlTimes, acsSessionUrlSun } from '../../../../config'
|
|
5
|
+
import { getAccounts } from '../../../../components/AccountDropdown'
|
|
6
|
+
|
|
7
|
+
const tenantMap = {
|
|
8
|
+
SUN: acsSessionUrlSun,
|
|
9
|
+
TIMES: acsSessionUrlTimes,
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
const handler = async (req: NextApiRequest, res: NextApiResponse) => {
|
|
13
|
+
if (process.env.TM_ACCOUNTS_PASSWORD && process.env.NGN_ACCOUNTS_PASSWORD) {
|
|
14
|
+
const options = getAccounts(
|
|
15
|
+
process.env.NGN_ACCOUNTS_PASSWORD,
|
|
16
|
+
process.env.TM_ACCOUNTS_PASSWORD
|
|
17
|
+
)
|
|
18
|
+
const { option } = safeJsonParse(req.body)
|
|
19
|
+
const { username, password, tenant } = options[option]
|
|
20
|
+
|
|
21
|
+
const tenantUrl = tenantMap[tenant]
|
|
22
|
+
|
|
23
|
+
const result = await fetchSessionCookie({
|
|
24
|
+
username,
|
|
25
|
+
password,
|
|
26
|
+
tenantUrl,
|
|
27
|
+
})
|
|
28
|
+
res.send(result)
|
|
29
|
+
} else {
|
|
30
|
+
res.end()
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
export default handler
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import type { NextApiRequest, NextApiResponse } from 'next'
|
|
2
|
+
import { nodeEnviroment } from '../../../../config'
|
|
3
|
+
|
|
4
|
+
const buildUrl = (cpn: string, invoiceId: string, pdfId: string) => {
|
|
5
|
+
const envPrefix = nodeEnviroment === 'production' ? '' : 'staging-'
|
|
6
|
+
return `https://api.${envPrefix}news.co.uk/cps/api/billing/tenants/tnl/accounts/${cpn}/invoices/${invoiceId}/pdf/${pdfId}`
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
export const handler = async (req: NextApiRequest, res: NextApiResponse) => {
|
|
10
|
+
try {
|
|
11
|
+
const { cookie } = req.headers as { cookie: string }
|
|
12
|
+
const { cpn, invoiceId, pdfId } = req.body
|
|
13
|
+
const apiUrl = buildUrl(cpn, invoiceId, pdfId)
|
|
14
|
+
|
|
15
|
+
const pdfResponse = await fetch(apiUrl, {
|
|
16
|
+
method: 'GET',
|
|
17
|
+
headers: {
|
|
18
|
+
Cookie: cookie,
|
|
19
|
+
},
|
|
20
|
+
})
|
|
21
|
+
const pdfBuffer = await pdfResponse.arrayBuffer()
|
|
22
|
+
|
|
23
|
+
res.setHeader('Content-Type', pdfResponse.headers.get('content-type'))
|
|
24
|
+
res.setHeader(
|
|
25
|
+
'Content-Disposition',
|
|
26
|
+
pdfResponse.headers.get('content-disposition')
|
|
27
|
+
)
|
|
28
|
+
res.status(200).send(Buffer.from(pdfBuffer))
|
|
29
|
+
} catch (err) {
|
|
30
|
+
console.error('Error fetching PDF:', err)
|
|
31
|
+
res.status(500).send({ error: 'Error fetching PDF file' })
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
export default handler
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { NextApiRequest, NextApiResponse } from 'next'
|
|
2
|
+
import { mutateHandler } from '@newskit-render/my-account'
|
|
3
|
+
import validation from '../../../../validation'
|
|
4
|
+
|
|
5
|
+
const handler = async (req: NextApiRequest, res: NextApiResponse) =>
|
|
6
|
+
mutateHandler(req, res, validation)
|
|
7
|
+
|
|
8
|
+
export default handler
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import createAuthRoute from '@newskit-render/auth/providers'
|
|
2
|
+
import { NextApiRequest, NextApiResponse } from 'next'
|
|
3
|
+
import { oktaClientId, oktaClientSecret, oktaDomain } from '../../../config'
|
|
4
|
+
|
|
5
|
+
const router = (req: NextApiRequest, res: NextApiResponse) =>
|
|
6
|
+
createAuthRoute(req, res, {
|
|
7
|
+
clientId: oktaClientId,
|
|
8
|
+
clientSecret: oktaClientSecret,
|
|
9
|
+
issuer: oktaDomain,
|
|
10
|
+
})
|
|
11
|
+
export default router
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { NextApiRequest, NextApiResponse } from 'next'
|
|
2
|
+
import { genericSitemap } from '@newskit-render/feed'
|
|
3
|
+
import { Publisher } from '@newskit-render/api'
|
|
4
|
+
import { getHost } from '@newskit-render/shared-components'
|
|
5
|
+
import { publisher, sitemapPublicationName } from '../../config'
|
|
6
|
+
/* We do not have sitemap date for Demo so using Virgin,
|
|
7
|
+
* This can be removed and replace with just - publisher: process.env.PUBLISHER as PublisherGroup, in created projects
|
|
8
|
+
*/
|
|
9
|
+
|
|
10
|
+
const handler = async (req: NextApiRequest, res: NextApiResponse) =>
|
|
11
|
+
genericSitemap({
|
|
12
|
+
res,
|
|
13
|
+
dataType: 'competitionList',
|
|
14
|
+
publisher: publisher as Publisher,
|
|
15
|
+
domain: new URL(getHost(req) as string).host,
|
|
16
|
+
publicationName: sitemapPublicationName as string,
|
|
17
|
+
})
|
|
18
|
+
|
|
19
|
+
export default handler
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { NextApiRequest, NextApiResponse } from 'next'
|
|
2
|
+
import { rssFeed, UpdatePeriod } from '@newskit-render/feed'
|
|
3
|
+
import { Publisher } from '@newskit-render/api'
|
|
4
|
+
import { getHost } from '@newskit-render/shared-components'
|
|
5
|
+
import { publisher } from '../../config'
|
|
6
|
+
|
|
7
|
+
const handler = async (req: NextApiRequest, res: NextApiResponse) =>
|
|
8
|
+
rssFeed({
|
|
9
|
+
res,
|
|
10
|
+
publisher: publisher as Publisher,
|
|
11
|
+
domain: getHost(req) as string,
|
|
12
|
+
titeAttributes: {
|
|
13
|
+
title: 'Demo Site',
|
|
14
|
+
link: '/feed',
|
|
15
|
+
description: 'Newskit Render Demo site',
|
|
16
|
+
language: 'en-US',
|
|
17
|
+
updatePeriod: 'hourly' as UpdatePeriod,
|
|
18
|
+
updateFrequency: 1,
|
|
19
|
+
logoUrl: '/icon.png',
|
|
20
|
+
},
|
|
21
|
+
})
|
|
22
|
+
|
|
23
|
+
export default handler
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { NextApiRequest, NextApiResponse } from 'next'
|
|
2
|
+
import { newsSitemap } from '@newskit-render/feed'
|
|
3
|
+
import { Publisher } from '@newskit-render/api'
|
|
4
|
+
import { getHost } from '@newskit-render/shared-components'
|
|
5
|
+
import { publisher, sitemapPublicationName } from '../../config'
|
|
6
|
+
/* We do not have sitemap date for Demo so using Virgin,
|
|
7
|
+
* This can be removed and replace with just - publisher: process.env.PUBLISHER as PublisherGroup, in created projects
|
|
8
|
+
*/
|
|
9
|
+
|
|
10
|
+
const handler = async (req: NextApiRequest, res: NextApiResponse) =>
|
|
11
|
+
newsSitemap({
|
|
12
|
+
res,
|
|
13
|
+
publisher: publisher as Publisher,
|
|
14
|
+
domain: new URL(getHost(req) as string).host,
|
|
15
|
+
publicationName: sitemapPublicationName as string,
|
|
16
|
+
})
|
|
17
|
+
|
|
18
|
+
export default handler
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { NextApiRequest, NextApiResponse } from 'next'
|
|
2
|
+
import { genericSitemap, CustomStaticPage } from '@newskit-render/feed'
|
|
3
|
+
import { Publisher } from '@newskit-render/api'
|
|
4
|
+
import { getHost } from '@newskit-render/shared-components'
|
|
5
|
+
import { publisher, sitemapPublicationName } from '../../config'
|
|
6
|
+
/* We do not have sitemap date for Demo so using Virgin,
|
|
7
|
+
* This can be removed and replace with just - publisher: process.env.PUBLISHER as PublisherGroup, in created projects
|
|
8
|
+
*/
|
|
9
|
+
|
|
10
|
+
const defaultCustomStaticPagesCollection: CustomStaticPage[] = [
|
|
11
|
+
{
|
|
12
|
+
slug: 'test-custom-page',
|
|
13
|
+
},
|
|
14
|
+
]
|
|
15
|
+
const handler = async (req: NextApiRequest, res: NextApiResponse) =>
|
|
16
|
+
genericSitemap({
|
|
17
|
+
res,
|
|
18
|
+
dataType: 'pageList',
|
|
19
|
+
publisher: publisher as Publisher,
|
|
20
|
+
domain: new URL(getHost(req) as string).host,
|
|
21
|
+
publicationName: sitemapPublicationName as string,
|
|
22
|
+
customStaticPageCollection: defaultCustomStaticPagesCollection,
|
|
23
|
+
changefreq: 'hourly',
|
|
24
|
+
priority: '0.8',
|
|
25
|
+
})
|
|
26
|
+
|
|
27
|
+
export default handler
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { NextApiRequest, NextApiResponse } from 'next'
|
|
2
|
+
import { getHost } from '@newskit-render/shared-components'
|
|
3
|
+
import { nodeEnviroment } from '../../config'
|
|
4
|
+
|
|
5
|
+
export default function handler(req: NextApiRequest, res: NextApiResponse) {
|
|
6
|
+
const crawable =
|
|
7
|
+
nodeEnviroment === 'production' ? 'Disallow: /' : 'Disallow: /' // change to Allow when your ready for prod to be crawlable
|
|
8
|
+
const robots = `User-agent: *
|
|
9
|
+
${crawable}
|
|
10
|
+
Sitemap: ${new URL(getHost(req) as string)}sitemap.xml
|
|
11
|
+
Sitemap: ${new URL(getHost(req) as string)}news-sitemap.xml
|
|
12
|
+
Sitemap: ${new URL(getHost(req) as string)}pages-sitemap.xml
|
|
13
|
+
Sitemap: ${new URL(getHost(req) as string)}competitions-sitemap.xml`
|
|
14
|
+
|
|
15
|
+
res.statusCode = 200
|
|
16
|
+
res.setHeader('Content-Type', 'text/plain')
|
|
17
|
+
res.write(robots)
|
|
18
|
+
res.end()
|
|
19
|
+
}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { NextApiRequest, NextApiResponse } from 'next'
|
|
2
|
+
import { genericSitemap } from '@newskit-render/feed'
|
|
3
|
+
import { Publisher } from '@newskit-render/api'
|
|
4
|
+
import { getHost } from '@newskit-render/shared-components'
|
|
5
|
+
import {
|
|
6
|
+
publisher,
|
|
7
|
+
sitemapFirstPublicationDate,
|
|
8
|
+
sitemapPublicationName,
|
|
9
|
+
} from '../../config'
|
|
10
|
+
/* We do not have sitemap date for Demo so using Virgin,
|
|
11
|
+
* This can be removed and replace with just - publisher: process.env.PUBLISHER as PublisherGroup, in created projects
|
|
12
|
+
*/
|
|
13
|
+
|
|
14
|
+
const handler = async (req: NextApiRequest, res: NextApiResponse) =>
|
|
15
|
+
genericSitemap({
|
|
16
|
+
res,
|
|
17
|
+
query: req.query,
|
|
18
|
+
publisher: publisher as Publisher,
|
|
19
|
+
domain: new URL(getHost(req) as string).host,
|
|
20
|
+
firstArticleDate: sitemapFirstPublicationDate as string,
|
|
21
|
+
publicationName: sitemapPublicationName as string,
|
|
22
|
+
})
|
|
23
|
+
|
|
24
|
+
export default handler
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import React from 'react'
|
|
2
|
+
import { AccountCreation, getProviderProps } from '@newskit-render/checkout'
|
|
3
|
+
import validation from '../../../validation'
|
|
4
|
+
|
|
5
|
+
const AccountCreationPage = (props) => (
|
|
6
|
+
<AccountCreation {...props} validation={validation} />
|
|
7
|
+
)
|
|
8
|
+
|
|
9
|
+
export default AccountCreationPage
|
|
10
|
+
|
|
11
|
+
export const getServerSideProps = async (context) => {
|
|
12
|
+
return getProviderProps({ ...context, provider: 'accountCreation' })
|
|
13
|
+
}
|