diff --git a/app/client/app.js b/app/client/app.js index f300bedf5..118543d12 100644 --- a/app/client/app.js +++ b/app/client/app.js @@ -9,7 +9,7 @@ import "../../app/assets/stylesheets/app.scss"; const opts = { enableServiceWorker: process.env.NODE_ENV === "production", appVersion: require("../isomorphic/app-version"), - preRenderApplication + preRenderApplication, }; function enableHotReload(store) { @@ -21,12 +21,6 @@ function enableHotReload(store) { } } -if (window.OneSignal) { - Object.assign(opts, { - serviceWorkerLocation: "/OneSignalSDKWorker.js" - }); -} - global.wretch = wretch; startApp(renderApplication, REDUCERS, opts).then(enableHotReload); diff --git a/app/server/app.js b/app/server/app.js index d9158abc4..b5a6660bf 100644 --- a/app/server/app.js +++ b/app/server/app.js @@ -7,56 +7,64 @@ import { isomorphicRoutes, staticRoutes, ampRoutes, - getWithConfig + getWithConfig, } from "@quintype/framework/server/routes"; import { generateRoutes, STATIC_ROUTES } from "./routes"; import { renderLayout } from "./handlers/render-layout"; import { loadData, loadErrorData } from "./load-data"; import { pickComponent } from "../isomorphic/pick-component"; import { generateStaticData, generateStructuredData, SEO } from "@quintype/seo"; +import webengageConfig from "../../config/webengage-config"; export const app = createApp(); upstreamQuintypeRoutes(app, {}); -const redirectCollectionHandler = () => async (req, res, next, { client, config }) => { - const response = await Collection.getCollectionBySlug(client, req.params.collectionSlug, { limit: 20 }, { depth: 2 }); - if (!response) { - return next(); - } - const collection = response && response.collection; - if (collection.template === "section") { - const sectionId = collection.metadata.section[0].id; - const section = config.sections.find(section => section.id === sectionId) || {}; - return res.redirect(301, `${section["section-url"]}`); - } +const redirectCollectionHandler = + () => + async (req, res, next, { client, config }) => { + const response = await Collection.getCollectionBySlug( + client, + req.params.collectionSlug, + { limit: 20 }, + { depth: 2 } + ); + if (!response) { + return next(); + } + const collection = response && response.collection; + if (collection.template === "section") { + const sectionId = collection.metadata.section[0].id; + const section = config.sections.find((section) => section.id === sectionId) || {}; + return res.redirect(301, `${section["section-url"]}`); + } - if (collection.template === "author") { - return res.redirect(301, `/author/${req.params.collectionSlug}`); - } - return next(); -}; + if (collection.template === "author") { + return res.redirect(301, `/author/${req.params.collectionSlug}`); + } + return next(); + }; -const logError = error => logger.error(error); +const logError = (error) => logger.error(error); getWithConfig(app, "/collection/:collectionSlug", redirectCollectionHandler(), { - logError + logError, }); function returnConfig(req) { return getClient(req.hostname) .getConfig() - .then(res => res.config || []); + .then((res) => res.config || []); } app.get("*", (req, res, next) => { if (req.hostname.includes("auth")) { const whitelistedUrls = ["user-login", "route-data.json", "manifest.json"]; - const isPathPresent = element => req.params[0].includes(element); + const isPathPresent = (element) => req.params[0].includes(element); if (whitelistedUrls.some(isPathPresent)) { return next(); } else { - returnConfig(req).then(response => { + returnConfig(req).then((response) => { const sketchesHost = response["sketches-host"]; res.redirect(301, sketchesHost); }); @@ -72,21 +80,21 @@ function generateSeo(config, pageType) { structuredData: Object.assign(generateStructuredData(config), { enableLiveBlog: true, enableVideo: true, - enableNewsArticle: true + enableNewsArticle: true, }), enableTwitterCards: true, enableOgTags: true, - enableNews: true + enableNews: true, }); } ampRoutes(app, { - seo: generateSeo + seo: generateSeo, }); isomorphicRoutes(app, { appVersion: require("../isomorphic/app-version"), - logError: error => logger.error(error), + logError: (error) => logger.error(error), generateRoutes: generateRoutes, loadData: loadData, pickComponent: pickComponent, @@ -96,6 +104,6 @@ isomorphicRoutes(app, { staticRoutes: STATIC_ROUTES, seo: generateSeo, preloadJs: true, - oneSignalServiceWorkers: true, - prerenderServiceUrl: "https://prerender.quintype.io" + prerenderServiceUrl: "https://prerender.quintype.io", + webengageConfig, }); diff --git a/app/server/handlers/render-layout.js b/app/server/handlers/render-layout.js index 984b3daa7..70358f92f 100644 --- a/app/server/handlers/render-layout.js +++ b/app/server/handlers/render-layout.js @@ -17,17 +17,9 @@ const fontJsContent = assetPath("font.js") ? readAsset("font.js") : ""; const allChunks = getAllChunks("list", "story", "home"); export async function renderLayout(res, params) { - const { - gtmId, - gaId, - cdnImage, - isOnesignalEnable, - isGtmEnable, - isGaEnable, - enableAds, - loadAdsSynchronously, - pageType, - } = getConfig(params.store.getState()); + const { gtmId, gaId, cdnImage, isGtmEnable, isGaEnable, enableAds, loadAdsSynchronously, pageType } = getConfig( + params.store.getState() + ); const chunk = params.shell ? null : allChunks[getChunkName(params.pageType)]; const criticalCss = await getCriticalCss(); const styleTags = await getStyleTags(); @@ -38,6 +30,8 @@ export async function renderLayout(res, params) { get(params.store.getState(), ["qt", "config", "publisher-attributes", "placeholder_delay"]) ); + const webengageLicenseCode = get(params.store.getState(), ["qt", "config", "webengage-config", "licenseCode"], ""); + res.render( "pages/layout", Object.assign( @@ -72,13 +66,12 @@ export async function renderLayout(res, params) { serialize, isGtmEnable, isGaEnable, - isOnesignalEnable, - oneSignalScript: params.oneSignalScript, enableAds: enableAds && params.pageType !== "profile-page", loadAdsSynchronously, placeholderDelay, pageType, enableBreakingNews: params.pageType !== "profile-page", + webengageLicenseCode, }, params ) diff --git a/app/server/helpers/index.js b/app/server/helpers/index.js index 33bbfbed8..d41607a9c 100644 --- a/app/server/helpers/index.js +++ b/app/server/helpers/index.js @@ -94,7 +94,6 @@ export const getConfig = (state) => { gaId: get(state, ["qt", "config", "publisher-attributes", "google_analytics", "id"], ""), isGaEnable: get(state, ["qt", "config", "publisher-attributes", "google_analytics", "is_enable"], false), cdnImage: get(state, ["qt", "config", "cdn-image"], ""), - isOnesignalEnable: get(state, ["qt", "config", "publisher-attributes", "onesignal", "is_enable"], false), enableAds: get(state, ["qt", "config", "ads-config", "dfp_ads", "enable_ads"]), loadAdsSynchronously: get(state, ["qt", "config", "ads-config", "dfp_ads", "load_ads_synchronously"]), pageType: get(state, ["qt", "pageType"], ""), diff --git a/app/server/load-data.js b/app/server/load-data.js index 6ddc0410d..6fc1b39de 100644 --- a/app/server/load-data.js +++ b/app/server/load-data.js @@ -15,6 +15,7 @@ import { getNavigationMenuArray } from "./data-loaders/menu-data"; import { loadCollectionPageData } from "./data-loaders/collection-page-data"; import { loadAuthorPageData } from "./data-loaders/author-page-data"; import { PAGE_TYPE } from "../isomorphic/constants"; +import webengageConfig from "../../config/webengage-config"; const { ads } = require("@quintype/framework/server/static-configuration"); @@ -27,10 +28,10 @@ const WHITELIST_CONFIG_KEYS = [ "publisher-name", "public-integrations", "sketches-host", - "publisher-settings" + "publisher-settings", ]; -const svgSpritePath = Array.from(getAssetFiles()).find(asset => asset.includes("sprite")); +const svgSpritePath = Array.from(getAssetFiles()).find((asset) => asset.includes("sprite")); export function getPublisherAttributes(publisherYml = publisher) { const publisherAttributes = get(publisherYml, ["publisher"], {}); @@ -42,15 +43,16 @@ export function loadErrorData(error, config) { const errorComponents = { 404: "not-found" }; return Promise.resolve({ data: { - navigationMenu: getNavigationMenuArray(config.layout.menu, config.sections) + navigationMenu: getNavigationMenuArray(config.layout.menu, config.sections), }, config: Object.assign(pick(config.asJson(), WHITELIST_CONFIG_KEYS), { "publisher-attributes": publisherAttributes, + "webengage-config": webengageConfig, "ads-config": ads, - svgSpritePath + svgSpritePath, }), pageType: errorComponents[error.httpStatusCode], - httpStatusCode: error.httpStatusCode || 500 + httpStatusCode: error.httpStatusCode || 500, }); } @@ -89,22 +91,23 @@ export function loadData(pageType, params, config, client, { host, next, domainS } } - return _loadData().then(data => { + return _loadData().then((data) => { return { httpStatusCode: data.httpStatusCode || 200, pageType: data.pageType || pageType, data: Object.assign({}, data, { navigationMenu: getNavigationMenuArray(config.layout.menu, config.sections), - timezone: publisherAttributes.timezone || null + timezone: publisherAttributes.timezone || null, }), config: Object.assign(pick(config.asJson(), WHITELIST_CONFIG_KEYS), { "publisher-attributes": publisherAttributes, + "webengage-config": webengageConfig, "image-cdn-format": "gumlet", "ads-config": ads, svgSpritePath, domainSlug, - showPlaceholder: publisherAttributes.enable_placeholder - }) + showPlaceholder: publisherAttributes.enable_placeholder, + }), }; }); } diff --git a/config/webengage-config.js b/config/webengage-config.js new file mode 100644 index 000000000..fa4d8db48 --- /dev/null +++ b/config/webengage-config.js @@ -0,0 +1,5 @@ +module.exports = { + enableWebengage: true, + licenseCode: "~10a5cb515", + apiKey: "2bdc2d5d-583f-4937-bd5a-4dff207a59c3", +}; diff --git a/package-lock.json b/package-lock.json index 903de0c05..f0649f2a2 100644 --- a/package-lock.json +++ b/package-lock.json @@ -13,7 +13,7 @@ "@loadable/server": "^5.14.2", "@quintype/bridgekeeper-js": "^2.8.1", "@quintype/components": "^3.0.2", - "@quintype/framework": "^7.7.7", + "@quintype/framework": "^7.18.10-webengage-update.3", "@quintype/seo": "^1.40.10", "axios": "^0.24.0", "fontfaceobserver": "^2.1.0", @@ -532,18 +532,6 @@ "@babel/core": "^7.0.0" } }, - "node_modules/@babel/helper-define-map": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-define-map/-/helper-define-map-7.18.6.tgz", - "integrity": "sha512-XSOjXUDG7KODvtURN1p29hGHa4RFgqBQELuBowUOBt3alf2Ny/oNFJygS4yCXwM0vMoqLDjE1O7wSmocUmQ3Kg==", - "dependencies": { - "@babel/helper-function-name": "^7.18.6", - "@babel/types": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - } - }, "node_modules/@babel/helper-define-polyfill-provider": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.3.0.tgz", @@ -763,9 +751,9 @@ } }, "node_modules/@babel/helper-plugin-utils": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.18.6.tgz", - "integrity": "sha512-gvZnm1YAAxh13eJdkb9EWHBnF3eAub3XTLCZEehHT2kWxiKVRL64+ae5Y6Ivne0mVHmMYKT+xWgZO+gQhuLUBg==", + "version": "7.20.2", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.20.2.tgz", + "integrity": "sha512-8RvlJG2mj4huQ4pZ+rU9lqKi9ZKiRmuvGuM2HlWmkmgOhbs6zEAw6IEiJ5cQqGbDzGZOhwuOQNtZMi/ENLjZoQ==", "engines": { "node": ">=6.9.0" } @@ -2068,12 +2056,11 @@ } }, "node_modules/@babel/plugin-transform-property-mutators": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-mutators/-/plugin-transform-property-mutators-7.18.6.tgz", - "integrity": "sha512-30BjBu2xyai0GivUBMeFmHlFxeZtJXHcTUUrRRIZ9u0Mihk0qzREWicLUjDO/hcQOfya1I0pQ7eAcKKNt0BKug==", + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-mutators/-/plugin-transform-property-mutators-7.20.7.tgz", + "integrity": "sha512-Jq14o707UCRcGrdWa3qyA9TMoa/dMi9GfrphmwsppuZ3jxbDqRXHrQkjLN87sopIV3Zlp8SRZS48+S9ABcmC7g==", "dependencies": { - "@babel/helper-define-map": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6" + "@babel/helper-plugin-utils": "^7.20.2" }, "engines": { "node": ">=6.9.0" @@ -4933,12 +4920,12 @@ "integrity": "sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==" }, "node_modules/@quintype/amp": { - "version": "2.4.28", - "resolved": "https://registry.npmjs.org/@quintype/amp/-/amp-2.4.28.tgz", - "integrity": "sha512-LAta0Bt8fthHxORK1232kTrp516ZAJCR9ixqNmvj911bi7cP6It9eDesCDO+O4jP8rcVDqROc1ns/MZwDFGeyg==", + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/@quintype/amp/-/amp-2.11.0.tgz", + "integrity": "sha512-fmJKuOwzJt80SBuPO90ULTixfYgvMcoAjUFhUPJFw3xgU1ibB3WTm9ah9GTK3DUyHz2w7CSQ32EnYkWiZ/69Xg==", "dependencies": { "@rvgpl/get-youtube-id": "^1.0.0", - "atob": "^2.1.2", + "atob-utf-8": "^1.0.4", "babel-preset-airbnb": "^5.0.0", "date-fns": "^2.11.0", "date-fns-tz": "^1.0.10", @@ -4959,9 +4946,9 @@ } }, "node_modules/@quintype/backend": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/@quintype/backend/-/backend-2.3.1.tgz", - "integrity": "sha512-z6DVASwl+TwmTtrjqJ3G9fzakpjQaFiN74inKornAgHYlJgqP5+irgEUnmwCVg8a4UCCcWqAJams4bkA7qu2kQ==", + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/@quintype/backend/-/backend-2.3.3.tgz", + "integrity": "sha512-tpzH5gzBvPDCK03yX0uZoHF5s/ZX6JehW9Y+xA2O0bMX88kRPtB2weu/tv7sp+vuaoU/SjgK6owHNDC/EQcXZw==", "dependencies": { "axios": "^0.21.1", "bluebird": "^3.7.2", @@ -4978,25 +4965,6 @@ "follow-redirects": "^1.14.0" } }, - "node_modules/@quintype/backend/node_modules/follow-redirects": { - "version": "1.15.0", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.0.tgz", - "integrity": "sha512-aExlJShTV4qOUOL7yF1U5tvLCB0xQuudbf6toyYA0E/acBNw71mvjFTnLaRp50aQaYocMR0a/RMMBIHeZnGyjQ==", - "funding": [ - { - "type": "individual", - "url": "https://github.com/sponsors/RubenVerborgh" - } - ], - "engines": { - "node": ">=4.0" - }, - "peerDependenciesMeta": { - "debug": { - "optional": true - } - } - }, "node_modules/@quintype/bridgekeeper-js": { "version": "2.8.1", "resolved": "https://registry.npmjs.org/@quintype/bridgekeeper-js/-/bridgekeeper-js-2.8.1.tgz", @@ -5243,12 +5211,11 @@ } }, "node_modules/@quintype/components": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/@quintype/components/-/components-3.0.2.tgz", - "integrity": "sha512-QhfDexSof8oU3yenG9m4SB9qKuph/qKTtz7a2dDroPDKecul/Ig/jrwRNiOpZd/Mcicwyhb2LMigIoaJf0OmWw==", + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/@quintype/components/-/components-3.3.0.tgz", + "integrity": "sha512-fNGdpvnof3MRFlbZl6d82EDekYnv4eebw1OQAyq1adR+ON1iQ1yRGUjhYLF0DYOYsXX4is8rcAnx+zDb7t1Ylw==", "dependencies": { "@babel/runtime": "^7.16.3", - "atob": "^2.1.2", "classnames": "^2.3.1", "empty-web-gif": "^1.0.1", "get-video-id": "^3.4.3", @@ -5293,14 +5260,14 @@ "integrity": "sha512-N2sYGNRaianJZJROz31vNoGo7Sd+2ElX9g+qwiOQ8/+3oJVCEOkFxVMSYT/8QQqTrWs5bmMbDyxrOleALhUMCA==" }, "node_modules/@quintype/framework": { - "version": "7.7.7", - "resolved": "https://registry.npmjs.org/@quintype/framework/-/framework-7.7.7.tgz", - "integrity": "sha512-FGIkT2PVdJBR5UbarU97kArIZBfOMUiHugELGscxM6R3yzUrP0wEzzLmqhu9caWWJ2ZD/ThFaE2E3dUhRYViXQ==", + "version": "7.18.10-webengage-update.3", + "resolved": "https://registry.npmjs.org/@quintype/framework/-/framework-7.18.10-webengage-update.3.tgz", + "integrity": "sha512-RssJ3lbJxiq5X35XyPUxXHMwg+5MzyKGYvoH/StEdU3J2xW5EWsdGAcfNiFObfYmdYQNRWSIxrJdJqme35sQjQ==", "dependencies": { "@ampproject/toolbox-optimizer": "2.8.3", - "@quintype/amp": "^2.4.28", - "@quintype/backend": "^2.3.1", - "@quintype/components": "^3.0.0", + "@quintype/amp": "^2.11.0", + "@quintype/backend": "^2.3.3", + "@quintype/components": "^3.3.0", "@quintype/prerender-node": "^3.2.26", "@quintype/seo": "^1.39.0", "atob": "^2.1.2", @@ -7051,6 +7018,17 @@ "node": ">= 4.5.0" } }, + "node_modules/atob-utf-8": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/atob-utf-8/-/atob-utf-8-1.0.4.tgz", + "integrity": "sha512-URuOY6Qtmeu51HqXgIO/osI2MAY6kiJ5WwXMo3hqTlaGn28AexlyPvJFy5fsfcpc3EgnglbaHkkDZ5ibFKWLww==", + "bin": { + "atob": "bin/atob.js" + }, + "engines": { + "node": ">= 8.0.0" + } + }, "node_modules/autocompleter": { "version": "6.1.2", "resolved": "https://registry.npmjs.org/autocompleter/-/autocompleter-6.1.2.tgz", @@ -7130,25 +7108,6 @@ "follow-redirects": "^1.14.4" } }, - "node_modules/axios/node_modules/follow-redirects": { - "version": "1.14.5", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.14.5.tgz", - "integrity": "sha512-wtphSXy7d4/OR+MvIFbCVBDzZ5520qV8XfPklSN5QtxuMUJZ+b0Wnst1e1lCDocfzuCkHqj8k0FpZqO+UIaKNA==", - "funding": [ - { - "type": "individual", - "url": "https://github.com/sponsors/RubenVerborgh" - } - ], - "engines": { - "node": ">=4.0" - }, - "peerDependenciesMeta": { - "debug": { - "optional": true - } - } - }, "node_modules/babel-code-frame": { "version": "6.26.0", "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz", @@ -8520,9 +8479,12 @@ } }, "node_modules/camelize": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/camelize/-/camelize-1.0.0.tgz", - "integrity": "sha512-W2lPwkBkMZwFlPCXhIlYgxu+7gC/NUlCtdK652DAJ1JdgV0sTrvuPFshNPrFa1TY2JOkLhgdeEBplB4ezEa+xg==" + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/camelize/-/camelize-1.0.1.tgz", + "integrity": "sha512-dU+Tx2fsypxTgtLoE36npi3UqcjSSMNYfkqgmoEhtZrraP5VWq0K7FkWVTYa8eMPtnU/G2txVsfdCJTn9uzpuQ==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, "node_modules/caniuse-api": { "version": "3.0.0", @@ -9950,9 +9912,9 @@ } }, "node_modules/css-to-react-native": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/css-to-react-native/-/css-to-react-native-3.0.0.tgz", - "integrity": "sha512-Ro1yETZA813eoyUp2GDBhG2j+YggidUmzO1/v9eYBKR2EHVEniE2MI/NqpTQ954BMpTPZFsGNPm46qFB9dpaPQ==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/css-to-react-native/-/css-to-react-native-3.2.0.tgz", + "integrity": "sha512-e8RKaLXMOFii+02mOlqwjbD00KSEKqblnpO9e++1aXS1fPQOpS1YoqdVHBqPjHNoxeF2mimzVqawm2KCbEdtHQ==", "dependencies": { "camelize": "^1.0.0", "css-color-keywords": "^1.0.0", @@ -13264,22 +13226,22 @@ "integrity": "sha512-GRnmB5gPyJpAhTQdSZTSp9uaPSvl09KoYcMQtsB9rQoOmzs9dH6ffeccH+Z+cv6P68Hu5bC6JjRh4Ah/mHSNRw==" }, "node_modules/follow-redirects": { - "version": "1.5.10", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.5.10.tgz", - "integrity": "sha512-0V5l4Cizzvqt5D44aTXbFZz+FtyXV1vrDN6qrelxtfYQKW0KO0W2T/hkE8xvGa/540LkZlkaUjO4ailYTFtHVQ==", - "dependencies": { - "debug": "=3.1.0" - }, + "version": "1.15.2", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.2.tgz", + "integrity": "sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==", + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/RubenVerborgh" + } + ], "engines": { "node": ">=4.0" - } - }, - "node_modules/follow-redirects/node_modules/debug": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", - "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", - "dependencies": { - "ms": "2.0.0" + }, + "peerDependenciesMeta": { + "debug": { + "optional": true + } } }, "node_modules/fontfaceobserver": { @@ -27607,7 +27569,7 @@ "node_modules/stealthy-require": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/stealthy-require/-/stealthy-require-1.1.1.tgz", - "integrity": "sha1-NbCYdbT/SfJqd35QmzCQoyJr8ks=", + "integrity": "sha512-ZnWpYnYugiOVEY5GkcuJK1io5V8QmNYChG62gSit9pQVGErXtrKuPC55ITaVSukmMta5qpMU7vqLt2Lnni4f/g==", "engines": { "node": ">=0.10.0" } @@ -28044,10 +28006,9 @@ "dev": true }, "node_modules/styled-components": { - "version": "5.3.5", - "resolved": "https://registry.npmjs.org/styled-components/-/styled-components-5.3.5.tgz", - "integrity": "sha512-ndETJ9RKaaL6q41B69WudeqLzOpY1A/ET/glXkNZ2T7dPjPqpPCXXQjDFYZWwNnE5co0wX+gTCqx9mfxTmSIPg==", - "hasInstallScript": true, + "version": "5.3.9", + "resolved": "https://registry.npmjs.org/styled-components/-/styled-components-5.3.9.tgz", + "integrity": "sha512-Aj3kb13B75DQBo2oRwRa/APdB5rSmwUfN5exyarpX+x/tlM/rwZA2vVk2vQgVSP6WKaZJHWwiFrzgHt+CLtB4A==", "dependencies": { "@babel/helper-module-imports": "^7.0.0", "@babel/traverse": "^7.4.5", @@ -33029,15 +32990,6 @@ "regexpu-core": "^4.7.1" } }, - "@babel/helper-define-map": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-define-map/-/helper-define-map-7.18.6.tgz", - "integrity": "sha512-XSOjXUDG7KODvtURN1p29hGHa4RFgqBQELuBowUOBt3alf2Ny/oNFJygS4yCXwM0vMoqLDjE1O7wSmocUmQ3Kg==", - "requires": { - "@babel/helper-function-name": "^7.18.6", - "@babel/types": "^7.18.6" - } - }, "@babel/helper-define-polyfill-provider": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.3.0.tgz", @@ -33200,9 +33152,9 @@ } }, "@babel/helper-plugin-utils": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.18.6.tgz", - "integrity": "sha512-gvZnm1YAAxh13eJdkb9EWHBnF3eAub3XTLCZEehHT2kWxiKVRL64+ae5Y6Ivne0mVHmMYKT+xWgZO+gQhuLUBg==" + "version": "7.20.2", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.20.2.tgz", + "integrity": "sha512-8RvlJG2mj4huQ4pZ+rU9lqKi9ZKiRmuvGuM2HlWmkmgOhbs6zEAw6IEiJ5cQqGbDzGZOhwuOQNtZMi/ENLjZoQ==" }, "@babel/helper-remap-async-to-generator": { "version": "7.16.4", @@ -34064,12 +34016,11 @@ } }, "@babel/plugin-transform-property-mutators": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-mutators/-/plugin-transform-property-mutators-7.18.6.tgz", - "integrity": "sha512-30BjBu2xyai0GivUBMeFmHlFxeZtJXHcTUUrRRIZ9u0Mihk0qzREWicLUjDO/hcQOfya1I0pQ7eAcKKNt0BKug==", + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-mutators/-/plugin-transform-property-mutators-7.20.7.tgz", + "integrity": "sha512-Jq14o707UCRcGrdWa3qyA9TMoa/dMi9GfrphmwsppuZ3jxbDqRXHrQkjLN87sopIV3Zlp8SRZS48+S9ABcmC7g==", "requires": { - "@babel/helper-define-map": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6" + "@babel/helper-plugin-utils": "^7.20.2" } }, "@babel/plugin-transform-react-display-name": { @@ -36343,12 +36294,12 @@ "integrity": "sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==" }, "@quintype/amp": { - "version": "2.4.28", - "resolved": "https://registry.npmjs.org/@quintype/amp/-/amp-2.4.28.tgz", - "integrity": "sha512-LAta0Bt8fthHxORK1232kTrp516ZAJCR9ixqNmvj911bi7cP6It9eDesCDO+O4jP8rcVDqROc1ns/MZwDFGeyg==", + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/@quintype/amp/-/amp-2.11.0.tgz", + "integrity": "sha512-fmJKuOwzJt80SBuPO90ULTixfYgvMcoAjUFhUPJFw3xgU1ibB3WTm9ah9GTK3DUyHz2w7CSQ32EnYkWiZ/69Xg==", "requires": { "@rvgpl/get-youtube-id": "^1.0.0", - "atob": "^2.1.2", + "atob-utf-8": "^1.0.4", "babel-preset-airbnb": "^5.0.0", "date-fns": "^2.11.0", "date-fns-tz": "^1.0.10", @@ -36365,9 +36316,9 @@ } }, "@quintype/backend": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/@quintype/backend/-/backend-2.3.1.tgz", - "integrity": "sha512-z6DVASwl+TwmTtrjqJ3G9fzakpjQaFiN74inKornAgHYlJgqP5+irgEUnmwCVg8a4UCCcWqAJams4bkA7qu2kQ==", + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/@quintype/backend/-/backend-2.3.3.tgz", + "integrity": "sha512-tpzH5gzBvPDCK03yX0uZoHF5s/ZX6JehW9Y+xA2O0bMX88kRPtB2weu/tv7sp+vuaoU/SjgK6owHNDC/EQcXZw==", "requires": { "axios": "^0.21.1", "bluebird": "^3.7.2", @@ -36383,11 +36334,6 @@ "requires": { "follow-redirects": "^1.14.0" } - }, - "follow-redirects": { - "version": "1.15.0", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.0.tgz", - "integrity": "sha512-aExlJShTV4qOUOL7yF1U5tvLCB0xQuudbf6toyYA0E/acBNw71mvjFTnLaRp50aQaYocMR0a/RMMBIHeZnGyjQ==" } } }, @@ -36578,12 +36524,11 @@ } }, "@quintype/components": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/@quintype/components/-/components-3.0.2.tgz", - "integrity": "sha512-QhfDexSof8oU3yenG9m4SB9qKuph/qKTtz7a2dDroPDKecul/Ig/jrwRNiOpZd/Mcicwyhb2LMigIoaJf0OmWw==", + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/@quintype/components/-/components-3.3.0.tgz", + "integrity": "sha512-fNGdpvnof3MRFlbZl6d82EDekYnv4eebw1OQAyq1adR+ON1iQ1yRGUjhYLF0DYOYsXX4is8rcAnx+zDb7t1Ylw==", "requires": { "@babel/runtime": "^7.16.3", - "atob": "^2.1.2", "classnames": "^2.3.1", "empty-web-gif": "^1.0.1", "get-video-id": "^3.4.3", @@ -36624,14 +36569,14 @@ } }, "@quintype/framework": { - "version": "7.7.7", - "resolved": "https://registry.npmjs.org/@quintype/framework/-/framework-7.7.7.tgz", - "integrity": "sha512-FGIkT2PVdJBR5UbarU97kArIZBfOMUiHugELGscxM6R3yzUrP0wEzzLmqhu9caWWJ2ZD/ThFaE2E3dUhRYViXQ==", + "version": "7.18.10-webengage-update.3", + "resolved": "https://registry.npmjs.org/@quintype/framework/-/framework-7.18.10-webengage-update.3.tgz", + "integrity": "sha512-RssJ3lbJxiq5X35XyPUxXHMwg+5MzyKGYvoH/StEdU3J2xW5EWsdGAcfNiFObfYmdYQNRWSIxrJdJqme35sQjQ==", "requires": { "@ampproject/toolbox-optimizer": "2.8.3", - "@quintype/amp": "^2.4.28", - "@quintype/backend": "^2.3.1", - "@quintype/components": "^3.0.0", + "@quintype/amp": "^2.11.0", + "@quintype/backend": "^2.3.3", + "@quintype/components": "^3.3.0", "@quintype/prerender-node": "^3.2.26", "@quintype/seo": "^1.39.0", "atob": "^2.1.2", @@ -38064,6 +38009,11 @@ "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==" }, + "atob-utf-8": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/atob-utf-8/-/atob-utf-8-1.0.4.tgz", + "integrity": "sha512-URuOY6Qtmeu51HqXgIO/osI2MAY6kiJ5WwXMo3hqTlaGn28AexlyPvJFy5fsfcpc3EgnglbaHkkDZ5ibFKWLww==" + }, "autocompleter": { "version": "6.1.2", "resolved": "https://registry.npmjs.org/autocompleter/-/autocompleter-6.1.2.tgz", @@ -38118,13 +38068,6 @@ "integrity": "sha512-Q6cWsys88HoPgAaFAVUb0WpPk0O8iTeisR9IMqy9G8AbO4NlpVknrnQS03zzF9PGAWgO3cgletO3VjV/P7VztA==", "requires": { "follow-redirects": "^1.14.4" - }, - "dependencies": { - "follow-redirects": { - "version": "1.14.5", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.14.5.tgz", - "integrity": "sha512-wtphSXy7d4/OR+MvIFbCVBDzZ5520qV8XfPklSN5QtxuMUJZ+b0Wnst1e1lCDocfzuCkHqj8k0FpZqO+UIaKNA==" - } } }, "babel-code-frame": { @@ -39269,9 +39212,9 @@ } }, "camelize": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/camelize/-/camelize-1.0.0.tgz", - "integrity": "sha512-W2lPwkBkMZwFlPCXhIlYgxu+7gC/NUlCtdK652DAJ1JdgV0sTrvuPFshNPrFa1TY2JOkLhgdeEBplB4ezEa+xg==" + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/camelize/-/camelize-1.0.1.tgz", + "integrity": "sha512-dU+Tx2fsypxTgtLoE36npi3UqcjSSMNYfkqgmoEhtZrraP5VWq0K7FkWVTYa8eMPtnU/G2txVsfdCJTn9uzpuQ==" }, "caniuse-api": { "version": "3.0.0", @@ -40416,9 +40359,9 @@ } }, "css-to-react-native": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/css-to-react-native/-/css-to-react-native-3.0.0.tgz", - "integrity": "sha512-Ro1yETZA813eoyUp2GDBhG2j+YggidUmzO1/v9eYBKR2EHVEniE2MI/NqpTQ954BMpTPZFsGNPm46qFB9dpaPQ==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/css-to-react-native/-/css-to-react-native-3.2.0.tgz", + "integrity": "sha512-e8RKaLXMOFii+02mOlqwjbD00KSEKqblnpO9e++1aXS1fPQOpS1YoqdVHBqPjHNoxeF2mimzVqawm2KCbEdtHQ==", "requires": { "camelize": "^1.0.0", "css-color-keywords": "^1.0.0", @@ -42994,22 +42937,9 @@ "integrity": "sha512-GRnmB5gPyJpAhTQdSZTSp9uaPSvl09KoYcMQtsB9rQoOmzs9dH6ffeccH+Z+cv6P68Hu5bC6JjRh4Ah/mHSNRw==" }, "follow-redirects": { - "version": "1.5.10", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.5.10.tgz", - "integrity": "sha512-0V5l4Cizzvqt5D44aTXbFZz+FtyXV1vrDN6qrelxtfYQKW0KO0W2T/hkE8xvGa/540LkZlkaUjO4ailYTFtHVQ==", - "requires": { - "debug": "=3.1.0" - }, - "dependencies": { - "debug": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", - "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", - "requires": { - "ms": "2.0.0" - } - } - } + "version": "1.15.2", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.2.tgz", + "integrity": "sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==" }, "fontfaceobserver": { "version": "2.1.0", @@ -54051,7 +53981,7 @@ "stealthy-require": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/stealthy-require/-/stealthy-require-1.1.1.tgz", - "integrity": "sha1-NbCYdbT/SfJqd35QmzCQoyJr8ks=" + "integrity": "sha512-ZnWpYnYugiOVEY5GkcuJK1io5V8QmNYChG62gSit9pQVGErXtrKuPC55ITaVSukmMta5qpMU7vqLt2Lnni4f/g==" }, "stream-browserify": { "version": "2.0.2", @@ -54395,9 +54325,9 @@ "dev": true }, "styled-components": { - "version": "5.3.5", - "resolved": "https://registry.npmjs.org/styled-components/-/styled-components-5.3.5.tgz", - "integrity": "sha512-ndETJ9RKaaL6q41B69WudeqLzOpY1A/ET/glXkNZ2T7dPjPqpPCXXQjDFYZWwNnE5co0wX+gTCqx9mfxTmSIPg==", + "version": "5.3.9", + "resolved": "https://registry.npmjs.org/styled-components/-/styled-components-5.3.9.tgz", + "integrity": "sha512-Aj3kb13B75DQBo2oRwRa/APdB5rSmwUfN5exyarpX+x/tlM/rwZA2vVk2vQgVSP6WKaZJHWwiFrzgHt+CLtB4A==", "requires": { "@babel/helper-module-imports": "^7.0.0", "@babel/traverse": "^7.4.5", diff --git a/package.json b/package.json index eb92acad7..77f3605f1 100644 --- a/package.json +++ b/package.json @@ -15,7 +15,7 @@ "@loadable/server": "^5.14.2", "@quintype/bridgekeeper-js": "^2.8.1", "@quintype/components": "^3.0.2", - "@quintype/framework": "^7.7.7", + "@quintype/framework": "^7.18.10-webengage-update.3", "@quintype/seo": "^1.40.10", "axios": "^0.24.0", "fontfaceobserver": "^2.1.0", diff --git a/views/js/service-worker.ejs b/views/js/service-worker.ejs index c15c30a51..ec9d7917d 100644 --- a/views/js/service-worker.ejs +++ b/views/js/service-worker.ejs @@ -1,24 +1 @@ -<%- serviceWorkerHelper %>; - -const shellUrl = "/shell.html?revision=<%= assetHash("app.js") %>-<%= configVersion %>"; - -const REQUIRED_ASSETS = [ - <%_ getFilesForChunks("app", "list", "story").map(x => { _%> - "<%= x %>", - <%_ }) _%> - // Put fonts here - shellUrl -]; - -initializeQServiceWorker({ - routes: <%- JSON.stringify(routes) %>, - assets: REQUIRED_ASSETS, - shell: shellUrl, - hostname: <%- JSON.stringify(hostname) %> -}); - -workbox.routing.registerRoute(new RegExp('/route-data.json*'), new workbox.strategies.NetworkFirst()); - -if("<%= config["public-integrations"]["one-signal"] && config["public-integrations"]["one-signal"]["app-id"] %>") { - importScripts('https://cdn.onesignal.com/sdks/OneSignalSDKWorker.js'); -} +importScripts('https://ssl.widgets.webengage.com/js/service-worker.js'); diff --git a/views/pages/layout.ejs b/views/pages/layout.ejs index a7cd92d9f..12c39d569 100644 --- a/views/pages/layout.ejs +++ b/views/pages/layout.ejs @@ -64,10 +64,6 @@ <%_ }) _%> <%_ } _%> - - <%_ if(isOnesignalEnable) { _%> - <%- oneSignalScript -%> - <%_ } _%>