diff --git a/.nvmrc b/.nvmrc
new file mode 100644
index 0000000000000000000000000000000000000000..510c921623e46adbe82f508df0c1be78da1f4fa5
--- /dev/null
+++ b/.nvmrc
@@ -0,0 +1 @@
+22.3.0
\ No newline at end of file
diff --git a/DailymotionConfig.json b/DailymotionConfig.json
index 9c7f3f653bbb1591bddc6e6e2200c383d3f1ebd5..d45fa07cd86fb7706976cda74943273615a486d8 100644
--- a/DailymotionConfig.json
+++ b/DailymotionConfig.json
@@ -7,7 +7,7 @@
   "sourceUrl": "https://stefancruz.github.io/GrayjayDailymotion/DailymotionConfig.json",
   "scriptUrl": "./DailymotionScript.js",
   "repositoryUrl": "https://github.com/stefancruz/GrayjayDailymotion",
-  "version": 16,
+  "version": 17,
   "iconUrl": "./DailymotionIcon.png",
   "id": "9c87e8db-e75d-48f4-afe5-2d203d4b95c5",
   "scriptSignature": "",
@@ -27,15 +27,15 @@
     "static2.dmcdn.net"
   ],
   "authentication": {
-    "loginUrl": "https://www.dailymotion.com/signin?urlback=/video/x34e1fp",
-    "cookiesToFind": [
-      "damd",
-      "refresh_token",
-      "access_token"
-    ],
+    "loginUrl": "https://www.dailymotion.com/signin?urlback=/library",
+    "completionUrl":"https://www.dailymotion.com/library",
     "domainHeadersToFind": {
-      ".graphql.api.dailymotion.com": [
-        "Authorization"
+      "graphql.api.dailymotion.com": [
+        "Authorization",
+        "X-DM-AppInfo-Id",
+        "X-DM-AppInfo-Type",
+        "X-DM-AppInfo-Version",
+        "X-DM-Neon-SSR"
       ]
     },
     "userAgent": "Mozilla/5.0 (Linux; Android 12) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.6099.230 Mobile Safari/537.36"
diff --git a/Readme.md b/Readme.md
index 73b6526c07537430ce0d67f6ad5190c0d7d9efd7..9c5ef53f850b74df787fa66d55efa10455ca121c 100644
--- a/Readme.md
+++ b/Readme.md
@@ -19,9 +19,13 @@ Click [here](https://stefancruz.github.io/GrayjayDailymotion/index.html) to inst
 - [x] - Settings / Hide sensitive content
 - [x] - Settings / Prefered Country
 - [x] - Sign in (import subscriptions and playlists (and Likes, Favorites, Recently Watched))
-- [x] - Policentric Comments
+- [x] - Polycentric Comments
 - [x] - Subtitles
-- [x] - State management
+
+## Work in progress (wip)
+
+- [ ] - Harbor account verification
+
 
 ## Todo 
 - [ ] - Unit tests - (wip)
@@ -44,7 +48,7 @@ npm run build
 
 npm start - will build and watch for changes
 
-# notes:
+## Notes
 - Content of the 'build' folder should not be manually changed since it's recreated for each build. 
 - Used [rollup](https://rollupjs.org/) to bundle all the scripts into one.
 - Used npm shrinkwrap to lock the dependency versions of the project. This should avoid new bugs, vulnerabilities and breaking changes (in minor and patches), introduced when the dependencies are automatically updated by npm.
\ No newline at end of file
diff --git a/assets/DailymotionIcon.png b/assets/DailymotionIcon.png
index ce8159b0f64805bc1a684dfc4355d385a58958a0..37aaf3cdf9d44b7637bafae49fa2445d975a008d 100644
Binary files a/assets/DailymotionIcon.png and b/assets/DailymotionIcon.png differ
diff --git a/assets/DailymotionIcon.svg b/assets/DailymotionIcon.svg
new file mode 100644
index 0000000000000000000000000000000000000000..179fb32f6a60239e77e602e5ae4be40727dd85f0
--- /dev/null
+++ b/assets/DailymotionIcon.svg
@@ -0,0 +1,32 @@
+<?xml version="1.0" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 20010904//EN"
+ "http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">
+<svg version="1.0" xmlns="http://www.w3.org/2000/svg"
+ width="192.000000pt" height="192.000000pt" viewBox="0 0 192.000000 192.000000"
+ preserveAspectRatio="xMidYMid meet">
+
+<g transform="translate(0.000000,192.000000) scale(0.100000,-0.100000)"
+fill="#000000" stroke="none">
+<path d="M793 1905 c-129 -23 -268 -80 -380 -156 -80 -54 -224 -208 -277 -297
+-149 -250 -176 -571 -70 -841 73 -185 235 -376 402 -475 251 -149 571 -176
+841 -70 185 73 376 235 475 402 149 251 176 571 70 841 -73 185 -235 376 -402
+475 -193 114 -442 160 -659 121z m291 -360 c112 -24 210 -78 296 -165 87 -86
+132 -164 160 -276 25 -98 25 -190 0 -288 -29 -114 -73 -190 -160 -276 -127
+-128 -263 -179 -470 -180 l-105 0 -112 112 -113 113 0 107 c0 96 2 108 19 118
+12 6 97 10 206 10 206 0 226 5 266 62 31 43 31 113 0 156 -38 54 -65 62 -215
+62 l-135 0 -68 59 c-38 32 -92 83 -120 114 l-53 56 0 109 c0 60 3 112 7 115 3
+4 124 7 267 7 190 0 280 -4 330 -15z"/>
+<path d="M664 1430 l73 -70 129 0 c71 0 149 -5 173 -11 117 -27 227 -116 279
+-226 24 -52 27 -70 27 -163 0 -99 -2 -110 -33 -172 -53 -107 -158 -191 -274
+-218 -24 -5 -76 -10 -115 -10 l-73 0 0 -71 0 -72 108 6 c170 9 279 56 387 168
+162 167 198 396 95 605 -72 147 -225 264 -384 293 -33 6 -151 11 -262 11
+l-202 0 72 -70z"/>
+<path d="M540 1409 l0 -55 75 -74 75 -74 -1 59 -1 60 -74 69 -74 70 0 -55z"/>
+<path d="M750 1237 l0 -65 123 -3 c108 -4 129 -7 172 -30 147 -75 147 -283 1
+-358 -45 -23 -65 -26 -198 -31 l-149 -5 71 -64 71 -64 98 5 c118 6 188 34 254
+102 65 66 89 125 95 224 4 80 3 86 -32 157 -41 82 -90 130 -172 167 -41 19
+-71 23 -191 26 l-143 4 0 -65z"/>
+<path d="M640 664 c0 -48 2 -51 75 -124 l75 -74 0 55 c0 53 -2 56 -52 105 -29
+27 -63 58 -75 68 l-23 19 0 -49z"/>
+</g>
+</svg>
diff --git a/assets/DailymotionIcon.xcf b/assets/DailymotionIcon.xcf
new file mode 100644
index 0000000000000000000000000000000000000000..b9682e061dfb95d6600d16989f305b5c94c54102
Binary files /dev/null and b/assets/DailymotionIcon.xcf differ
diff --git a/assets/qr.PNG b/assets/qr.PNG
deleted file mode 100644
index 8184c3c39b1288b17adb68a222f3e7aebf6dc836..0000000000000000000000000000000000000000
Binary files a/assets/qr.PNG and /dev/null differ
diff --git a/build/DailymotionConfig.json b/build/DailymotionConfig.json
index 9c7f3f653bbb1591bddc6e6e2200c383d3f1ebd5..d45fa07cd86fb7706976cda74943273615a486d8 100644
--- a/build/DailymotionConfig.json
+++ b/build/DailymotionConfig.json
@@ -7,7 +7,7 @@
   "sourceUrl": "https://stefancruz.github.io/GrayjayDailymotion/DailymotionConfig.json",
   "scriptUrl": "./DailymotionScript.js",
   "repositoryUrl": "https://github.com/stefancruz/GrayjayDailymotion",
-  "version": 16,
+  "version": 17,
   "iconUrl": "./DailymotionIcon.png",
   "id": "9c87e8db-e75d-48f4-afe5-2d203d4b95c5",
   "scriptSignature": "",
@@ -27,15 +27,15 @@
     "static2.dmcdn.net"
   ],
   "authentication": {
-    "loginUrl": "https://www.dailymotion.com/signin?urlback=/video/x34e1fp",
-    "cookiesToFind": [
-      "damd",
-      "refresh_token",
-      "access_token"
-    ],
+    "loginUrl": "https://www.dailymotion.com/signin?urlback=/library",
+    "completionUrl":"https://www.dailymotion.com/library",
     "domainHeadersToFind": {
-      ".graphql.api.dailymotion.com": [
-        "Authorization"
+      "graphql.api.dailymotion.com": [
+        "Authorization",
+        "X-DM-AppInfo-Id",
+        "X-DM-AppInfo-Type",
+        "X-DM-AppInfo-Version",
+        "X-DM-Neon-SSR"
       ]
     },
     "userAgent": "Mozilla/5.0 (Linux; Android 12) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.6099.230 Mobile Safari/537.36"
diff --git a/build/DailymotionIcon.png b/build/DailymotionIcon.png
index ce8159b0f64805bc1a684dfc4355d385a58958a0..37aaf3cdf9d44b7637bafae49fa2445d975a008d 100644
Binary files a/build/DailymotionIcon.png and b/build/DailymotionIcon.png differ
diff --git a/build/DailymotionScript.js b/build/DailymotionScript.js
index 766f6bf116574e2cb9a15f89c1517f28ed6817f0..64c3e884fd47f0a154dd45fcda16988b3b604c70 100644
--- a/build/DailymotionScript.js
+++ b/build/DailymotionScript.js
@@ -13,7 +13,7 @@ const CLIENT_ID = 'f1a362d288c1b98099c7';
 const CLIENT_SECRET = 'eea605b96e01c796ff369935357eca920c5da4c5';
 const X_DM_AppInfo_Id = "com.dailymotion.neon";
 const X_DM_AppInfo_Type = "website";
-const X_DM_AppInfo_Version = "v2024-05-16T12:17:57.363Z"; //TODO check how to get this dynamically
+const X_DM_AppInfo_Version = "v2024-07-02T13:55:47.186Z"; //TODO check how to get this dynamically
 const X_DM_Neon_SSR = "0";
 const PLATFORM = "Dailymotion";
 const PLATFORM_CLAIMTYPE = 27;
@@ -1762,7 +1762,6 @@ const state = {
 const LIKE_PLAYLIST_ID = "LIKE_PLAYLIST";
 const FAVORITES_PLAYLIST_ID = "FAVORITES_PLAYLIST";
 const RECENTLY_WATCHED_PLAYLIST_ID = "RECENTLY_WATCHED_PLAYLIST";
-let httpClientAnonymous = http.newClient(false);
 let httpClientRequestToken = http.newClient(false);
 // Will be used to store private playlists that require authentication
 const authenticatedPlaylistCollection = [];
@@ -1845,7 +1844,7 @@ source.getHome = function () {
 };
 source.searchSuggestions = function (query) {
     try {
-        const jsonResponse = executeGqlQuery(getHttpContext({ usePlatformAuth: false }), {
+        const jsonResponse = executeGqlQuery(http, {
             operationName: 'AUTOCOMPLETE_QUERY',
             variables: {
                 query
@@ -1872,7 +1871,7 @@ source.isChannelUrl = function (url) {
 };
 source.getChannel = function (url) {
     const channel_name = getChannelNameFromUrl(url);
-    const channelDetails = executeGqlQuery(getHttpContext({ usePlatformAuth: false }), {
+    const channelDetails = executeGqlQuery(http, {
         operationName: 'CHANNEL_QUERY_DESKTOP',
         variables: {
             channel_name,
@@ -1910,10 +1909,7 @@ source.getContentDetails = function (url) {
     return getSavedVideo(url, false);
 };
 source.saveState = () => {
-    return JSON.stringify({
-        anonymousUserAuthorizationToken: state.anonymousUserAuthorizationToken,
-        anonymousUserAuthorizationTokenExpirationDate: state.anonymousUserAuthorizationTokenExpirationDate
-    });
+    return JSON.stringify(state);
 };
 //Playlist
 source.isPlaylistUrl = (url) => {
@@ -1927,16 +1923,15 @@ source.searchPlaylists = (query, type, order, filters) => {
 };
 source.getPlaylist = (url) => {
     const usePlatformAuth = authenticatedPlaylistCollection.includes(url);
-    const httpClient = getHttpContext({ usePlatformAuth });
     const thumbnailResolutionIndex = _settings.thumbnailResolutionOptionIndex;
     if (url === LIKE_PLAYLIST_ID) {
-        return getLikePlaylist(config.id, httpClient, usePlatformAuth, thumbnailResolutionIndex);
+        return getLikePlaylist(config.id, http, usePlatformAuth, thumbnailResolutionIndex);
     }
     if (url === FAVORITES_PLAYLIST_ID) {
-        return getFavoritesPlaylist(config.id, httpClient, usePlatformAuth, thumbnailResolutionIndex);
+        return getFavoritesPlaylist(config.id, http, usePlatformAuth, thumbnailResolutionIndex);
     }
     if (url === RECENTLY_WATCHED_PLAYLIST_ID) {
-        return getRecentlyWatchedPlaylist(config.id, httpClient, usePlatformAuth, thumbnailResolutionIndex);
+        return getRecentlyWatchedPlaylist(config.id, http, usePlatformAuth, thumbnailResolutionIndex);
     }
     const xid = url.split('/').pop();
     const variables = {
@@ -1944,7 +1939,7 @@ source.getPlaylist = (url) => {
         avatar_size: CREATOR_AVATAR_HEIGHT[_settings.avatarSizeOptionIndex],
         thumbnail_resolution: THUMBNAIL_HEIGHT[thumbnailResolutionIndex],
     };
-    let jsonResponse = executeGqlQuery(httpClient, {
+    let jsonResponse = executeGqlQuery(http, {
         operationName: 'PLAYLIST_VIDEO_QUERY',
         variables,
         query: PLAYLIST_DETAILS_QUERY,
@@ -1966,10 +1961,6 @@ source.getUserSubscriptions = () => {
         // Accept: '*/*, */*',
         'Accept-Language': 'en-GB',
         Referer: `${BASE_URL}/library/subscriptions`,
-        'X-DM-AppInfo-Id': X_DM_AppInfo_Id,
-        'X-DM-AppInfo-Type': X_DM_AppInfo_Type,
-        'X-DM-AppInfo-Version': X_DM_AppInfo_Version,
-        'X-DM-Neon-SSR': '0',
         'X-DM-Preferred-Country': getPreferredCountry(_settings?.preferredCountryOptionIndex),
         Origin: BASE_URL,
         DNT: '1',
@@ -1983,7 +1974,7 @@ source.getUserSubscriptions = () => {
     };
     const usePlatformAuth = true;
     const fetchSubscriptions = (page, first) => {
-        const jsonResponse = executeGqlQuery(getHttpContext({ usePlatformAuth }), {
+        const jsonResponse = executeGqlQuery(http, {
             operationName: 'SUBSCRIPTIONS_QUERY',
             variables: {
                 first: first,
@@ -2019,13 +2010,9 @@ source.getUserPlaylists = () => {
     const headers = {
         'Content-Type': 'application/json',
         'User-Agent': USER_AGENT,
-        // Accept: '*/*, */*',
         'Accept-Language': 'en-GB',
-        Referer: `${BASE_URL}/library/subscriptions`,
-        'X-DM-AppInfo-Id': X_DM_AppInfo_Id,
-        'X-DM-AppInfo-Type': X_DM_AppInfo_Type,
-        'X-DM-AppInfo-Version': X_DM_AppInfo_Version,
-        'X-DM-Neon-SSR': '0',
+        Referer: 'https://www.dailymotion.com/',
+        'Sec-GPC': '1',
         'X-DM-Preferred-Country': getPreferredCountry(_settings?.preferredCountryOptionIndex),
         Origin: BASE_URL,
         DNT: '1',
@@ -2033,11 +2020,11 @@ source.getUserPlaylists = () => {
         'Sec-Fetch-Dest': 'empty',
         'Sec-Fetch-Mode': 'cors',
         'Sec-Fetch-Site': 'same-site',
-        Priority: 'u=4',
+        Priority: 'u=1',
         Pragma: 'no-cache',
         'Cache-Control': 'no-cache',
     };
-    const jsonResponse = executeGqlQuery(getHttpContext({ usePlatformAuth: true }), {
+    const jsonResponse = executeGqlQuery(http, {
         operationName: 'SUBSCRIPTIONS_QUERY',
         headers,
         query: SUBSCRIPTIONS_QUERY,
@@ -2059,8 +2046,16 @@ source.getUserPlaylists = () => {
     });
     return playlists;
 };
+source.getChannelTemplateByClaimMap = () => {
+    return {
+        //Dailymotion claim type
+        27: {
+            0: BASE_URL + "/{{CLAIMVALUE}}",
+        }
+    };
+};
 function getPlaylistsByUsername(userName, headers, usePlatformAuth = false) {
-    const collections = executeGqlQuery(getHttpContext({ usePlatformAuth }), {
+    const collections = executeGqlQuery(http, {
         operationName: 'CHANNEL_PLAYLISTS_QUERY',
         variables: {
             channel_name: userName,
@@ -2100,7 +2095,7 @@ function searchPlaylists(contextQuery) {
         "thumbnail_resolution": THUMBNAIL_HEIGHT[_settings?.thumbnailResolutionOptionIndex],
         "avatar_size": CREATOR_AVATAR_HEIGHT[_settings?.avatarSizeOptionIndex],
     };
-    const jsonResponse = executeGqlQuery(getHttpContext({ usePlatformAuth: false }), {
+    const jsonResponse = executeGqlQuery(http, {
         operationName: 'SEARCH_QUERY',
         variables: variables,
         query: SEARCH_QUERY,
@@ -2145,9 +2140,8 @@ function getVideoPager(params, page) {
         "Cache-Control": "no-cache"
     };
     let obj;
-    const anonymousHttpClient = getHttpContext({ usePlatformAuth: false });
     try {
-        obj = executeGqlQuery(anonymousHttpClient, {
+        obj = executeGqlQuery(http, {
             operationName: 'SEACH_DISCOVERY_QUERY',
             variables: {
                 avatar_size: CREATOR_AVATAR_HEIGHT[_settings?.avatarSizeOptionIndex],
@@ -2189,8 +2183,7 @@ function getChannelContentsPager(url, page, type, order, filters) {
     else {
         sort = LikedMediaSort.Recent;
     }
-    const anonymousHttpClient = getHttpContext({ usePlatformAuth: false });
-    const jsonResponse = executeGqlQuery(anonymousHttpClient, {
+    const jsonResponse = executeGqlQuery(http, {
         operationName: 'CHANNEL_VIDEOS_QUERY',
         variables: {
             channel_name,
@@ -2241,7 +2234,7 @@ function getSearchPagerAll(contextQuery) {
         "avatar_size": CREATOR_AVATAR_HEIGHT[_settings?.avatarSizeOptionIndex],
         "thumbnail_resolution": THUMBNAIL_HEIGHT[_settings?.thumbnailResolutionOptionIndex]
     };
-    const jsonResponse = executeGqlQuery(getHttpContext({ usePlatformAuth: false }), {
+    const jsonResponse = executeGqlQuery(http, {
         operationName: 'SEARCH_QUERY',
         variables: variables,
         query: SEARCH_QUERY,
@@ -2284,7 +2277,7 @@ function getSavedVideo(url, usePlatformAuth = false) {
     else {
         headers1["Cookie"] = "ff=off";
     }
-    const player_metadataResponse = getHttpContext({ usePlatformAuth }).GET(player_metadata_url, headers1, usePlatformAuth);
+    const player_metadataResponse = http.GET(player_metadata_url, headers1, usePlatformAuth);
     if (!player_metadataResponse.isOk) {
         throw new UnavailableException('Unable to get player metadata');
     }
@@ -2328,7 +2321,7 @@ function getSavedVideo(url, usePlatformAuth = false) {
         variables,
         query: WATCHING_VIDEO
     });
-    const video_details_response = getHttpContext({ usePlatformAuth }).POST(BASE_URL_API, videoDetailsRequestBody, videoDetailsRequestHeaders, usePlatformAuth);
+    const video_details_response = http.POST(BASE_URL_API, videoDetailsRequestBody, videoDetailsRequestHeaders, usePlatformAuth);
     if (video_details_response.code != 200) {
         throw new UnavailableException('Failed to get video details');
     }
@@ -2346,7 +2339,7 @@ function getSavedVideo(url, usePlatformAuth = false) {
     return new PlatformVideoDetails(platformVideoDetails);
 }
 function getSearchChannelPager(context) {
-    const searchResponse = executeGqlQuery(getHttpContext({ usePlatformAuth: false }), {
+    const searchResponse = executeGqlQuery(http, {
         operationName: "SEARCH_QUERY",
         variables: {
             query: context.q,
@@ -2537,7 +2530,5 @@ function getPlatformSystemPlaylist(opts) {
     };
     return SourceCollectionToGrayjayPlaylistDetails(opts.pluginId, collection, videos);
 }
-function getHttpContext(opts = { usePlatformAuth: false }) {
-    return opts.usePlatformAuth ? http : httpClientAnonymous;
-}
 log("LOADED");
+//# sourceMappingURL=DailymotionScript.js.map
diff --git a/build/DailymotionScript.js.map b/build/DailymotionScript.js.map
new file mode 100644
index 0000000000000000000000000000000000000000..f2c1e3834ce711aa4d6d2ee6cf52e0f39cbfb58d
--- /dev/null
+++ b/build/DailymotionScript.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"DailymotionScript.js","sources":["../src/constants.ts","../src/gqlQueries.ts","../src/util.ts","../src/Pagers.ts","../src/Mappers.ts","../src/DailymotionScript.ts"],"sourcesContent":[null,null,null,null,null,null],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/build/index.html b/build/index.html
index 38cb65af5b8d3d74cb8370dc2ec8e4cf78b4fdb0..cbc4e20aebb452892aada24a4fe1e4c89b2cfab2 100644
--- a/build/index.html
+++ b/build/index.html
@@ -1,101 +1,101 @@
-<!DOCTYPE html>
-<html lang="en">
-
-<head>
-    <meta charset="UTF-8">
-    <meta name="viewport" content="width=device-width, initial-scale=1.0">
-    <title>Install Plugin</title>
-    <style>
-        body {
-            font-family: Arial, sans-serif;
-            margin: 0;
-            padding: 0;
-            display: flex;
-            flex-direction: column;
-            justify-content: center;
-            align-items: center;
-            height: 100vh;
-            background-color: #f5f5f5;
-        }
-
-        p {
-            margin: 20px;
-            text-align: center;
-            font-size: 1.2em;
-            color: #333;
-        }
-
-        img {
-            max-width: 100%;
-            height: auto;
-            margin: 20px;
-        }
-
-        @media (min-width: 600px) {
-            p {
-                font-size: 1.5em;
-            }
-        }
-    </style>
-    <script src="https://unpkg.com/qrcode-generator@1.4.4/qrcode.js"></script>
-    <script>
-        window.onload = function () {
-            
-            const hostname = window.location.hostname;
-            
-            if (hostname !== 'localhost' && hostname !== '127.0.0.1') {
-                const configUrl = new URL('DailymotionConfig.json', window.location.href).href;
-
-                let qr = qrcode(0, 'L');
-                qr.addData(configUrl);
-                qr.make();
-
-                let qrImgTag = qr.createImgTag(6, 8, "qr code of " + configUrl);
-
-                let tempDiv = document.createElement('div');
-                tempDiv.innerHTML = qrImgTag;
-
-                let qrImg = tempDiv.querySelector('img');
-                const title = 'QR code of the plugin configuration';
-                qrImg.alt = title;
-                qrImg.title = title;
-
-                let qrCodeContainer = document.getElementById('qrCodeContainer');
-                if (qrCodeContainer) {
-                    qrCodeContainer.appendChild(qrImg);
-                } else {
-                    console.error('QR code container not found');
-                }
-
-                document.getElementById('qr-code-text').style.display = 'inline';
-
-                const isSupported = /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent);
-
-                if (isSupported) {
-                    setTimeout(function () {
-                        window.location.href = `grayjay://plugin/${configUrl}`;
-                    }, 1000); // Redirect after 1 seconds to allow the QR code to be seen
-                } else {
-                    console.log("Currently this link is supported on mobile devices only. Use the QR code to install it on Grayjay.");
-                }
-            } else {
-                console.log("QR code is disabled on localhost.");
-                document.getElementById('qr-code-error-text').style.display = 'inline';
-            }
-        }
-    </script>
-</head>
-
-<body>
-    <p>
-        <span>Currently this link is supported on mobile devices only.</span>
-        <span id="qr-code-text" style="display: none;">Use the QR code to install the plugin on Grayjay.</span>
-        <span id="qr-code-error-text" style="display: none;">QR code is disabled on localhost.</span>
-    </p>
-    <div id="qrCodeContainer" class="qr-container"></div>
-    <p>
-        <a href="./DailymotionConfig.json">Plugin Configuration</a>
-    </p>
-</body>
-
+<!DOCTYPE html>
+<html lang="en">
+
+<head>
+    <meta charset="UTF-8">
+    <meta name="viewport" content="width=device-width, initial-scale=1.0">
+    <title>Install Plugin</title>
+    <style>
+        body {
+            font-family: Arial, sans-serif;
+            margin: 0;
+            padding: 0;
+            display: flex;
+            flex-direction: column;
+            justify-content: center;
+            align-items: center;
+            height: 100vh;
+            background-color: #f5f5f5;
+        }
+
+        p {
+            margin: 20px;
+            text-align: center;
+            font-size: 1.2em;
+            color: #333;
+        }
+
+        img {
+            max-width: 100%;
+            height: auto;
+            margin: 20px;
+        }
+
+        @media (min-width: 600px) {
+            p {
+                font-size: 1.5em;
+            }
+        }
+    </style>
+    <script src="https://unpkg.com/qrcode-generator@1.4.4/qrcode.js"></script>
+    <script>
+        window.onload = function () {
+            
+            const hostname = window.location.hostname;
+            
+            if (hostname !== 'localhost' && hostname !== '127.0.0.1') {
+                const configUrl = new URL('DailymotionConfig.json', window.location.href).href;
+
+                let qr = qrcode(0, 'L');
+                qr.addData(configUrl);
+                qr.make();
+
+                let qrImgTag = qr.createImgTag(6, 8, "qr code of " + configUrl);
+
+                let tempDiv = document.createElement('div');
+                tempDiv.innerHTML = qrImgTag;
+
+                let qrImg = tempDiv.querySelector('img');
+                const title = 'QR code of the plugin configuration';
+                qrImg.alt = title;
+                qrImg.title = title;
+
+                let qrCodeContainer = document.getElementById('qrCodeContainer');
+                if (qrCodeContainer) {
+                    qrCodeContainer.appendChild(qrImg);
+                } else {
+                    console.error('QR code container not found');
+                }
+
+                document.getElementById('qr-code-text').style.display = 'inline';
+
+                const isSupported = /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent);
+
+                if (isSupported) {
+                    setTimeout(function () {
+                        window.location.href = `grayjay://plugin/${configUrl}`;
+                    }, 1000); // Redirect after 1 seconds to allow the QR code to be seen
+                } else {
+                    console.log("Currently this link is supported on mobile devices only. Use the QR code to install it on Grayjay.");
+                }
+            } else {
+                console.log("QR code is disabled on localhost.");
+                document.getElementById('qr-code-error-text').style.display = 'inline';
+            }
+        }
+    </script>
+</head>
+
+<body>
+    <p>
+        <span>Currently this link is supported on mobile devices only.</span>
+        <span id="qr-code-text" style="display: none;">Use the QR code to install the plugin on Grayjay.</span>
+        <span id="qr-code-error-text" style="display: none;">QR code is disabled on localhost.</span>
+    </p>
+    <div id="qrCodeContainer" class="qr-container"></div>
+    <p>
+        <a href="./DailymotionConfig.json">Plugin Configuration</a>
+    </p>
+</body>
+
 </html>
\ No newline at end of file
diff --git a/rollup.config.js b/rollup.config.js
index f8e67b436a338d5c87350e0aa2a7f1f48b4ea843..2bd686516b209eaee9de546c74f0cc572921d434 100644
--- a/rollup.config.js
+++ b/rollup.config.js
@@ -11,7 +11,7 @@ module.exports = {
   output: {
     file: `${dest}/DailymotionScript.js`,
     format: 'cjs', // Use IIFE format for browser compatibility
-    sourcemap: false
+    sourcemap: true
   },
   plugins: [
     del({ targets: `${dest}/*` }), // Clean up the dist folder before building
diff --git a/src/DailymotionScript.ts b/src/DailymotionScript.ts
index 369cd9885499a540f251812cc6714cf85a2076c8..26440e6210fb83954f120477181eb67a616b602c 100644
--- a/src/DailymotionScript.ts
+++ b/src/DailymotionScript.ts
@@ -95,7 +95,6 @@ import {
 
 
 
-let httpClientAnonymous: IHttp = http.newClient(false);
 let httpClientRequestToken: IHttp = http.newClient(false);
 
 
@@ -203,7 +202,7 @@ source.searchSuggestions = function (query): string[] {
 	try {
 
 		const jsonResponse = executeGqlQuery(
-			getHttpContext({ usePlatformAuth: false }),
+			http,
 			{
 				operationName: 'AUTOCOMPLETE_QUERY',
 				variables: {
@@ -241,7 +240,7 @@ source.getChannel = function (url) {
 	const channel_name = getChannelNameFromUrl(url);
 
 	const channelDetails = executeGqlQuery(
-		getHttpContext({ usePlatformAuth: false }),
+		http,
 		{
 			operationName: 'CHANNEL_QUERY_DESKTOP',
 			variables: {
@@ -294,10 +293,7 @@ source.getContentDetails = function (url) {
 };
 
 source.saveState = () => {
-	return JSON.stringify({
-		anonymousUserAuthorizationToken: state.anonymousUserAuthorizationToken,
-		anonymousUserAuthorizationTokenExpirationDate: state.anonymousUserAuthorizationTokenExpirationDate
-	});
+	return JSON.stringify(state);
 };
 
 //Playlist
@@ -316,20 +312,18 @@ source.getPlaylist = (url: string): PlatformPlaylistDetails => {
 
 	const usePlatformAuth = authenticatedPlaylistCollection.includes(url);
 
-	const httpClient = getHttpContext({ usePlatformAuth });
-
 	const thumbnailResolutionIndex = _settings.thumbnailResolutionOptionIndex;
 
 	if (url === LIKE_PLAYLIST_ID) {
-		return getLikePlaylist(config.id, httpClient, usePlatformAuth, thumbnailResolutionIndex);
+		return getLikePlaylist(config.id, http, usePlatformAuth, thumbnailResolutionIndex);
 	}
 
 	if (url === FAVORITES_PLAYLIST_ID) {
-		return getFavoritesPlaylist(config.id, httpClient, usePlatformAuth, thumbnailResolutionIndex);
+		return getFavoritesPlaylist(config.id, http, usePlatformAuth, thumbnailResolutionIndex);
 	}
 
 	if (url === RECENTLY_WATCHED_PLAYLIST_ID) {
-		return getRecentlyWatchedPlaylist(config.id, httpClient, usePlatformAuth, thumbnailResolutionIndex);
+		return getRecentlyWatchedPlaylist(config.id, http, usePlatformAuth, thumbnailResolutionIndex);
 	}
 
 	const xid = url.split('/').pop();
@@ -341,7 +335,7 @@ source.getPlaylist = (url: string): PlatformPlaylistDetails => {
 	}
 
 	let jsonResponse = executeGqlQuery(
-		httpClient,
+		http,
 		{
 			operationName: 'PLAYLIST_VIDEO_QUERY',
 			variables,
@@ -370,10 +364,6 @@ source.getUserSubscriptions = (): string[] => {
 		// Accept: '*/*, */*',
 		'Accept-Language': 'en-GB',
 		Referer: `${BASE_URL}/library/subscriptions`,
-		'X-DM-AppInfo-Id': X_DM_AppInfo_Id,
-		'X-DM-AppInfo-Type': X_DM_AppInfo_Type,
-		'X-DM-AppInfo-Version': X_DM_AppInfo_Version,
-		'X-DM-Neon-SSR': '0',
 		'X-DM-Preferred-Country': getPreferredCountry(_settings?.preferredCountryOptionIndex),
 		Origin: BASE_URL,
 		DNT: '1',
@@ -390,7 +380,7 @@ source.getUserSubscriptions = (): string[] => {
 
 	const fetchSubscriptions = (page, first): string[] => {
 		const jsonResponse = executeGqlQuery(
-			getHttpContext({ usePlatformAuth }),
+			http,
 			{
 				operationName: 'SUBSCRIPTIONS_QUERY',
 				variables: {
@@ -439,13 +429,9 @@ source.getUserPlaylists = (): string[] => {
 	const headers = {
 		'Content-Type': 'application/json',
 		'User-Agent': USER_AGENT,
-		// Accept: '*/*, */*',
 		'Accept-Language': 'en-GB',
-		Referer: `${BASE_URL}/library/subscriptions`,
-		'X-DM-AppInfo-Id': X_DM_AppInfo_Id,
-		'X-DM-AppInfo-Type': X_DM_AppInfo_Type,
-		'X-DM-AppInfo-Version': X_DM_AppInfo_Version,
-		'X-DM-Neon-SSR': '0',
+		Referer: 'https://www.dailymotion.com/',
+		'Sec-GPC': '1',
 		'X-DM-Preferred-Country': getPreferredCountry(_settings?.preferredCountryOptionIndex),
 		Origin: BASE_URL,
 		DNT: '1',
@@ -453,13 +439,13 @@ source.getUserPlaylists = (): string[] => {
 		'Sec-Fetch-Dest': 'empty',
 		'Sec-Fetch-Mode': 'cors',
 		'Sec-Fetch-Site': 'same-site',
-		Priority: 'u=4',
+		Priority: 'u=1',
 		Pragma: 'no-cache',
 		'Cache-Control': 'no-cache',
 	}
 
 	const jsonResponse = executeGqlQuery(
-		getHttpContext({ usePlatformAuth: true }),
+		http,
 		{
 			operationName: 'SUBSCRIPTIONS_QUERY',
 			headers,
@@ -490,11 +476,21 @@ source.getUserPlaylists = (): string[] => {
 
 }
 
+source.getChannelTemplateByClaimMap = () => {
+	return {
+		//Dailymotion claim type
+		27: {
+			0: BASE_URL + "/{{CLAIMVALUE}}",
+		}
+	};
+};
+
+
 function getPlaylistsByUsername(userName, headers, usePlatformAuth = false): string[] {
 
 
 	const collections = executeGqlQuery(
-		getHttpContext({ usePlatformAuth }),
+		http,
 		{
 			operationName: 'CHANNEL_PLAYLISTS_QUERY',
 			variables: {
@@ -545,7 +541,7 @@ function searchPlaylists(contextQuery) {
 
 
 	const jsonResponse = executeGqlQuery(
-		getHttpContext({ usePlatformAuth: false }),
+		http,
 		{
 			operationName: 'SEARCH_QUERY',
 			variables: variables,
@@ -609,11 +605,9 @@ function getVideoPager(params, page) {
 
 	let obj;
 
-	const anonymousHttpClient = getHttpContext({ usePlatformAuth: false });
-
 	try {
 		obj = executeGqlQuery(
-			anonymousHttpClient,
+			http,
 			{
 				operationName: 'SEACH_DISCOVERY_QUERY',
 				variables: {
@@ -665,9 +659,8 @@ function getChannelContentsPager(url, page, type, order, filters) {
 		sort = LikedMediaSort.Recent;
 	}
 
-	const anonymousHttpClient = getHttpContext({ usePlatformAuth: false });
 	const jsonResponse = executeGqlQuery(
-		anonymousHttpClient,
+		http,
 		{
 			operationName: 'CHANNEL_VIDEOS_QUERY',
 			variables: {
@@ -732,7 +725,7 @@ function getSearchPagerAll(contextQuery): VideoPager {
 
 
 	const jsonResponse = executeGqlQuery(
-		getHttpContext({ usePlatformAuth: false }),
+		http,
 		{
 			operationName: 'SEARCH_QUERY',
 			variables: variables,
@@ -787,7 +780,7 @@ function getSavedVideo(url, usePlatformAuth = false) {
 		headers1["Cookie"] = "ff=off"
 	}
 
-	const player_metadataResponse = getHttpContext({ usePlatformAuth }).GET(player_metadata_url, headers1, usePlatformAuth);
+	const player_metadataResponse = http.GET(player_metadata_url, headers1, usePlatformAuth);
 
 	if (!player_metadataResponse.isOk) {
 		throw new UnavailableException('Unable to get player metadata');
@@ -842,7 +835,7 @@ function getSavedVideo(url, usePlatformAuth = false) {
 			query: WATCHING_VIDEO
 		});
 
-	const video_details_response = getHttpContext({ usePlatformAuth }).POST(BASE_URL_API, videoDetailsRequestBody, videoDetailsRequestHeaders, usePlatformAuth)
+	const video_details_response = http.POST(BASE_URL_API, videoDetailsRequestBody, videoDetailsRequestHeaders, usePlatformAuth)
 
 	if (video_details_response.code != 200) {
 		throw new UnavailableException('Failed to get video details');
@@ -872,7 +865,7 @@ function getSavedVideo(url, usePlatformAuth = false) {
 function getSearchChannelPager(context) {
 
 	const searchResponse = executeGqlQuery(
-		getHttpContext({ usePlatformAuth: false }), {
+		http, {
 		operationName: "SEARCH_QUERY",
 		variables: {
 			query: context.q,
@@ -986,10 +979,10 @@ function executeGqlQuery(httpClient, requestOptions) {
 		variables: requestOptions.variables,
 		query: requestOptions.query,
 	});
-
+	
 	const usePlatformAuth = requestOptions.usePlatformAuth == undefined ? false : requestOptions.usePlatformAuth;
 	const throwOnError = requestOptions.throwOnError == undefined ? true : requestOptions.throwOnError;
-
+	
 	if (!usePlatformAuth) {
 		headersToAdd.Authorization = state.anonymousUserAuthorizationToken;
 	}
@@ -1136,9 +1129,4 @@ function getPlatformSystemPlaylist(opts: IPlatformSystemPlaylist): PlatformPlayl
 	return SourceCollectionToGrayjayPlaylistDetails(opts.pluginId, collection as Collection, videos);
 }
 
-
-function getHttpContext(opts: { usePlatformAuth: boolean } = { usePlatformAuth: false }): IHttp {
-	return opts.usePlatformAuth ? http : httpClientAnonymous;
-}
-
 log("LOADED");
\ No newline at end of file
diff --git a/src/constants.ts b/src/constants.ts
index 3343aa8d7ede9e2ef2f35f322830d48af6d5ba05..6d5f09708b0e5552970be03dcde5441cfc5636cc 100644
--- a/src/constants.ts
+++ b/src/constants.ts
@@ -14,7 +14,7 @@ export const CLIENT_SECRET = 'eea605b96e01c796ff369935357eca920c5da4c5';
 
 export const X_DM_AppInfo_Id = "com.dailymotion.neon"
 export const X_DM_AppInfo_Type = "website"
-export const X_DM_AppInfo_Version = "v2024-05-16T12:17:57.363Z" //TODO check how to get this dynamically
+export const X_DM_AppInfo_Version = "v2024-07-02T13:55:47.186Z" //TODO check how to get this dynamically
 export const X_DM_Neon_SSR = "0"
 
 export const PLATFORM = "Dailymotion";
diff --git a/types/CodeGenDailymotion.d.ts b/types/CodeGenDailymotion.d.ts
index 2c4835c17b1d82147560e53ab4d3feaf830b4fa1..6f62b075f948facd8d3a2cb2bb2726ccc2e9d868 100644
--- a/types/CodeGenDailymotion.d.ts
+++ b/types/CodeGenDailymotion.d.ts
@@ -49,6 +49,24 @@ export type ActivateUserPayload = {
   status?: Maybe<Status>;
 };
 
+/** The possible values for an Activity. */
+export enum Activity {
+  /** An activity that is `favorited`. */
+  Favorited = 'FAVORITED',
+  /** An activity that is `liked`. */
+  Liked = 'LIKED',
+  /** An activity that is `saved`. */
+  Saved = 'SAVED',
+  /** An activity that is `watched`. */
+  Watched = 'WATCHED'
+}
+
+/** The available input fields of an Activity operator. */
+export type ActivityOperator = {
+  /** Short for equal, must match the given data exactly. */
+  eq?: InputMaybe<Activity>;
+};
+
 /** The input fields to add a video to a collection. */
 export type AddCollectionVideoInput = {
   /** The ID generated for the client performing the mutation. */
@@ -98,6 +116,8 @@ export type Algorithm = {
 
 /** The possible values for the name of algorithm. */
 export enum AlgorithmName {
+  /** An algorithm to explore content based on location. */
+  Explore = 'EXPLORE',
   /** An algorithm that considers what content to feature. */
   Featured = 'FEATURED',
   /** A personalized algorithm. */
@@ -255,7 +275,12 @@ export type AnalyticsReport = Node & {
   __typename?: 'AnalyticsReport';
   /** The Dailymotion ID of the channel in the report. */
   channelXid?: Maybe<Scalars['String']['output']>;
-  /** The creation date of the report. */
+  /** The date and time (ISO 8601 format) when the report was created. */
+  createDate: Scalars['DateTime']['output'];
+  /**
+   * The creation date of the report.
+   * @deprecated Use `createDate` field.
+   */
   createdAt?: Maybe<Scalars['Date']['output']>;
   /** The Dailymotion user who created the report. */
   creator?: Maybe<User>;
@@ -815,6 +840,8 @@ export type Channel = Node & {
    * @deprecated Use `logolURL` field.
    */
   thumbnails?: Maybe<Thumbnails>;
+  /** Required updates on the channel, as it does not respect the community guidelines. */
+  updateRequired?: Maybe<ChannelUpdateRequired>;
   /** The videos of the channel. */
   videos?: Maybe<VideoConnection>;
   /**
@@ -971,7 +998,7 @@ export type ChannelConnection = {
 
 /** The input fields to create a channel. */
 export type ChannelCreateInput = {
-  /** The URL of the avatar of the channel. @deprecated(reason: "Use input field `avatarUrl`.") */
+  /** @deprecated(reason: "Use `avatarUrl` input field.") - The URL of the avatar of the channel. */
   avatarURL?: InputMaybe<Scalars['String']['input']>;
   /** The url of the avatar of the channel. */
   avatarUrl?: InputMaybe<Scalars['String']['input']>;
@@ -1220,6 +1247,13 @@ export type ChannelStatsViews = Node & {
   total?: Maybe<Scalars['BigInt']['output']>;
 };
 
+/** Information about required updates on the channel. */
+export type ChannelUpdateRequired = {
+  __typename?: 'ChannelUpdateRequired';
+  /** Indicates whether the name of the channel is required to be updated. */
+  name: Scalars['Boolean']['output'];
+};
+
 /** The possible sort options for channels. */
 export enum ChannelsSort {
   /** Sort by popular. */
@@ -1298,7 +1332,12 @@ export type Collection = Content & Node & {
    * @deprecated Use `creator` field.
    */
   channel?: Maybe<Channel>;
-  /** The creation date (DateTime ISO8601) of the collection. */
+  /** The date and time (ISO 8601 format) when the collection was created. */
+  createDate: Scalars['DateTime']['output'];
+  /**
+   * The creation date (DateTime ISO8601) of the collection.
+   * @deprecated Use `createDate` field.
+   */
   createdAt?: Maybe<Scalars['DateTime']['output']>;
   /** The creator that created the Collection. */
   creator?: Maybe<Channel>;
@@ -1335,7 +1374,12 @@ export type Collection = Content & Node & {
    * @deprecated Use `thumbnailURL` field.
    */
   thumbnails?: Maybe<Thumbnails>;
-  /** The updated date (DateTime ISO8601) of the collection. */
+  /** The date and time (ISO 8601 format) when the collection was updated. */
+  updateDate: Scalars['DateTime']['output'];
+  /**
+   * The updated date (DateTime ISO8601) of the collection.
+   * @deprecated Use `updateDate` field.
+   */
   updatedAt?: Maybe<Scalars['DateTime']['output']>;
   /** The videos of the collection. */
   videos?: Maybe<VideoConnection>;
@@ -1489,7 +1533,7 @@ export type Comment = Node & {
   /** The metrics of the comment. */
   metrics?: Maybe<CommentMetrics>;
   /** The commented story. */
-  opener: Story;
+  opener?: Maybe<Story>;
   /** The content of the comment. */
   text: Scalars['String']['output'];
   /** The last update date (DateTime ISO8601) of the comment. */
@@ -1637,6 +1681,8 @@ export type Conversation = Node & {
   dailymotionAd?: Maybe<DailymotionAd>;
   /** The ID of the object. */
   id: Scalars['ID']['output'];
+  /** A list of interactions. */
+  interactions?: Maybe<InteractionConnection>;
   /** The Story. */
   story?: Maybe<Story>;
 };
@@ -1673,8 +1719,12 @@ export type ConversationEdge = {
 export type ConversationFilter = {
   /** Filter conversations by algorithm name. */
   algorithm?: InputMaybe<AlgorithmNameOperator>;
+  /** Filter conversations by id. */
+  id?: InputMaybe<IdOperator>;
   /** Filter conversations by story. */
   story?: InputMaybe<StoryOperator>;
+  /** Filter conversations by story ID. */
+  storyId?: InputMaybe<IdOperator>;
 };
 
 /** Information about a country. */
@@ -1723,14 +1773,18 @@ export type CreateBehaviorRuleInput = {
   description?: InputMaybe<Scalars['String']['input']>;
   /** Indicates whether the rule is enabled. */
   enabled?: InputMaybe<Scalars['Boolean']['input']>;
-  /** The end date and time (DateTime ISO8601) of the rule if enabled. */
+  /** @deprecated(reason: "Use `endDate` input field.") - The end date and time (DateTime ISO8601) of the rule if enabled. */
   endAt?: InputMaybe<Scalars['DateTime']['input']>;
+  /** The date and time (ISO 8601 format) when the rule ends (if enabled). */
+  endDate?: InputMaybe<Scalars['DateTime']['input']>;
   /** Experiment configuration. If set, the rule will be an experiment (contains JSON). */
   experiment?: InputMaybe<Scalars['String']['input']>;
   /** The name of the new rule. */
   name: Scalars['String']['input'];
-  /** Start date and time (DateTime ISO8601) of the rule if enabled. */
+  /** @deprecated(reason: "Use `endDate` input field.") - Start date and time (DateTime ISO8601) of the rule if enabled. */
   startAt?: InputMaybe<Scalars['DateTime']['input']>;
+  /** The date and time (ISO 8601 format) when the rule starts (if enabled). */
+  startDate?: InputMaybe<Scalars['DateTime']['input']>;
   /** The tags associated with the rule. Useful for filtering. */
   tags?: InputMaybe<Array<InputMaybe<Scalars['String']['input']>>>;
 };
@@ -1821,7 +1875,7 @@ export type CreateUserInput = {
   /** The gender of the user. */
   gender?: InputMaybe<Gender>;
   lastName?: InputMaybe<Scalars['String']['input']>;
-  /** The name of the user. @deprecated(reason: Use `firstName` and `lastName` respectively). */
+  /** @deprecated(reason: "Use `firstName` and `lastName` respectively.") - The name of the user. */
   name?: InputMaybe<Scalars['String']['input']>;
   /** The nickname of the user. */
   nickname?: InputMaybe<Scalars['String']['input']>;
@@ -2040,7 +2094,12 @@ export enum EmbedType {
 /** Represents an experiment (A/B testing) matched/enabled for a client. */
 export type ExperimentMatch = Node & {
   __typename?: 'ExperimentMatch';
-  /** The end date and time (DateTime ISO8601) of the experiment if enabled. */
+  /** The date and time (ISO 8601 format) when the experiment ends (if enabled). */
+  endDate?: Maybe<Scalars['DateTime']['output']>;
+  /**
+   * The end date and time (DateTime ISO8601) of the experiment if enabled.
+   * @deprecated Use `endDate` field.
+   */
   endingAt?: Maybe<Scalars['DateTime']['output']>;
   /** The ID of the object. */
   id: Scalars['ID']['output'];
@@ -2048,6 +2107,11 @@ export type ExperimentMatch = Node & {
   matched?: Maybe<Scalars['Boolean']['output']>;
   /** A unique name for the experiment. */
   name?: Maybe<Scalars['String']['output']>;
+  /**
+   * The reviewed date (DateTime ISO8601) of the media.
+   * @deprecated Use `reviewDate` field.
+   */
+  reviewedAt?: Maybe<Scalars['DateTime']['output']>;
   /** The tags associated to the experiment. Useful for filtering. */
   tags?: Maybe<BehaviorRuleTagConnection>;
   /** A unique uuid for the experiment. */
@@ -2114,7 +2178,7 @@ export type FallbackCountryEdge = {
   node?: Maybe<FallbackCountry>;
 };
 
-/** Represents a Favorite (an interaction). */
+/** Represents a Favorite (an activity). */
 export type Favorite = History & Node & {
   __typename?: 'Favorite';
   /** The ID of the object. */
@@ -2370,7 +2434,12 @@ export type FollowedChannel = Node & {
   __typename?: 'FollowedChannel';
   /** The channel that is being followed. */
   channel?: Maybe<Channel>;
-  /** The date and time (DateTime ISO8601) the channel was followed at. */
+  /** The date and time (ISO 8601 format) when the channel was followed. */
+  followDate: Scalars['DateTime']['output'];
+  /**
+   * The date and time (DateTime ISO8601) the channel was followed at.
+   * @deprecated Use `followDate` field
+   */
   followedAt?: Maybe<Scalars['DateTime']['output']>;
   /** The ID of the object. */
   id: Scalars['ID']['output'];
@@ -2411,6 +2480,8 @@ export enum FollowedChannelsSort {
 /** Information about a topic that is being followed by a user. */
 export type FollowedTopic = Node & {
   __typename?: 'FollowedTopic';
+  /** The date and time (ISO 8601 format) when the topic was followed. */
+  followDate: Scalars['DateTime']['output'];
   /** The date and time (Date ISO8601) the topic was followed at. */
   followedAt?: Maybe<Scalars['DateTime']['output']>;
   /** The ID of the object. */
@@ -2717,7 +2788,7 @@ export type HistoryEdge = {
 /** The available input fields of a History filter. */
 export type HistoryFilter = {
   /** Filter history by the activity. */
-  activity: InteractionOperator;
+  activity: ActivityOperator;
   /** Filter history by the post. */
   post: PostOperator;
 };
@@ -2759,22 +2830,27 @@ export type Image = Node & {
   width?: Maybe<Scalars['Int']['output']>;
 };
 
-/** The possible values for an Interaction. */
-export enum Interaction {
-  /** An interaction that is `favorited`. */
-  Favorited = 'FAVORITED',
-  /** An interaction that is `liked`. */
-  Liked = 'LIKED',
-  /** An interaction that is `saved`. */
-  Saved = 'SAVED',
-  /** An interaction that is `watched`. */
-  Watched = 'WATCHED'
-}
+/** Types that can be an Interaction. */
+export type Interaction = Comment | Reaction;
 
-/** The available input fields of an Interaction operator. */
-export type InteractionOperator = {
-  /** Short for equal, must match the given data exactly. */
-  eq?: InputMaybe<Interaction>;
+/** A connection to a list of items. */
+export type InteractionConnection = {
+  __typename?: 'InteractionConnection';
+  /** A list of edges. */
+  edges: Array<Maybe<InteractionEdge>>;
+  /** The metadata of the connection. */
+  metadata: Metadata;
+  /** Information to aid in pagination. */
+  pageInfo: PageInfo;
+  /** The total number of items. A null value indicates that the information is unavailable for the connection. */
+  totalCount?: Maybe<Scalars['Int']['output']>;
+};
+
+/** An edge in a connection. */
+export type InteractionEdge = {
+  __typename?: 'InteractionEdge';
+  /** The item at the end of the edge. */
+  node?: Maybe<Interaction>;
 };
 
 /** Information of an interest. */
@@ -2981,7 +3057,12 @@ export type Live = Content & Node & Recording & {
   channel?: Maybe<Channel>;
   /** The channel claiming revenue sharing on the live. */
   claimer?: Maybe<Channel>;
-  /** The last aired date (DateTime ISO8601), if never aired, then the creation date (DateTime ISO8601) of the live. */
+  /** The date and time (ISO 8601 format) when the live was last aired (if never aired, then when it was created). */
+  createDate: Scalars['DateTime']['output'];
+  /**
+   * The last aired date (DateTime ISO8601), if never aired, then the creation date (DateTime ISO8601) of the live.
+   * @deprecated Use `createDate` field.
+   */
   createdAt?: Maybe<Scalars['DateTime']['output']>;
   /** The creator that created the Live. */
   creator?: Maybe<Channel>;
@@ -3000,8 +3081,13 @@ export type Live = Content & Node & Recording & {
   embedHtml?: Maybe<Scalars['String']['output']>;
   /** The URL to embed the live outside of Dailymotion. */
   embedURL?: Maybe<Scalars['String']['output']>;
-  /** The date (DateTime ISO8601) the live ends. */
+  /**
+   * The date (DateTime ISO8601) the live ends.
+   * @deprecated Use `endDate` field.
+   */
   endAt?: Maybe<Scalars['DateTime']['output']>;
+  /** The date and time (ISO 8601 format) when the live ends. */
+  endDate?: Maybe<Scalars['DateTime']['output']>;
   /** The geoblocked countries of the live. */
   geoblockedCountries?: Maybe<GeoblockedCountries>;
   /** The country codes (ISO 3166-1 alpha-2) that are allowed or denied by the live. */
@@ -3074,8 +3160,13 @@ export type Live = Content & Node & Recording & {
    * @deprecated Use `shareUrls` field.
    */
   sharingURLs?: Maybe<SharingUrlConnection>;
-  /** The date (DateTime ISO8601) the live started. */
+  /**
+   * The date (DateTime ISO8601) the live started.
+   * @deprecated Use `startDate` field.
+   */
   startAt?: Maybe<Scalars['DateTime']['output']>;
+  /** The date and time (ISO 8601 format) when the live starts. */
+  startDate?: Maybe<Scalars['DateTime']['output']>;
   /**
    * The stats of the live.
    * @deprecated Use `metrics` field.
@@ -3101,7 +3192,12 @@ export type Live = Content & Node & Recording & {
   title?: Maybe<Scalars['String']['output']>;
   /** The topics associated to the live. */
   topics?: Maybe<TopicConnection>;
-  /** The updated date (DateTime ISO8601) of the live. */
+  /** The date and time (ISO 8601 format) when the live was updated. */
+  updateDate: Scalars['DateTime']['output'];
+  /**
+   * The updated date (DateTime ISO8601) of the live.
+   * @deprecated Use `updateDate` field.
+   */
   updatedAt?: Maybe<Scalars['DateTime']['output']>;
   /**
    * The URL of the live.
@@ -3495,7 +3591,12 @@ export type MediaModeration = Node & {
   __typename?: 'MediaModeration';
   /** The ID of the object. */
   id: Scalars['ID']['output'];
-  /** The reviewed date (DateTime ISO8601) of the media. */
+  /** The date and time (ISO 8601 format) when the media was reviewed. */
+  reviewDate?: Maybe<Scalars['DateTime']['output']>;
+  /**
+   * The reviewed date (DateTime ISO8601) of the media.
+   * @deprecated Use `reviewDate` field.
+   */
   reviewedAt?: Maybe<Scalars['DateTime']['output']>;
 };
 
@@ -4605,7 +4706,12 @@ export enum PartnerReportDimension {
 /** A partner report file. */
 export type PartnerReportFile = Node & {
   __typename?: 'PartnerReportFile';
-  /** The creation date of the report. */
+  /** The date and time (ISO 8601 format) when the report was created. */
+  createDate: Scalars['DateTime']['output'];
+  /**
+   * The creation date of the report.
+   * @deprecated Use `createDate` field.
+   */
   createdAt?: Maybe<Scalars['DateTime']['output']>;
   /** The download links of the report. */
   downloadLinks?: Maybe<ReportFileDownloadLinkConnection>;
@@ -5483,7 +5589,12 @@ export type QueryVideosArgs = {
 /** Represents a Reaction in a recording format. */
 export type Reaction = Content & Node & Recording & {
   __typename?: 'Reaction';
-  /** The creation date (DateTime ISO8601) of the reaction. */
+  /** The date and time (ISO 8601 format) when the reaction was created. */
+  createDate: Scalars['DateTime']['output'];
+  /**
+   * The creation date (DateTime ISO8601) of the reaction.
+   * @deprecated Use `createDate` field.
+   */
   createdAt?: Maybe<Scalars['DateTime']['output']>;
   /** The channel who created the reaction. */
   creator?: Maybe<Channel>;
@@ -5955,15 +6066,25 @@ export type RecommendedRecordingEdge = {
 
 /** Represents a node with a Recording. */
 export type Recording = {
-  /** The creation date (DateTime ISO8601) of the recording. */
+  /** The date and time (ISO 8601 format) when the recording was created. */
+  createDate: Scalars['DateTime']['output'];
+  /**
+   * The creation date (DateTime ISO8601) of the recording.
+   * @deprecated Use `createDate` field.
+   */
   createdAt?: Maybe<Scalars['DateTime']['output']>;
   /** The reactions created on the recording. */
   reactions?: Maybe<ReactionConnection>;
+  /** The share urls of the recording. */
+  shareUrls?: Maybe<ShareUrls>;
   /** The URL of the recording thumbnail image. */
   thumbnail?: Maybe<Image>;
   /** The title of the recording. */
   title?: Maybe<Scalars['String']['output']>;
-  /** The URL of the recording. */
+  /**
+   * The URL of the recording.
+   * @deprecated Use `shareUrls.permalink` field.
+   */
   url?: Maybe<Scalars['String']['output']>;
 };
 
@@ -6229,7 +6350,7 @@ export type ReportVideoInput = {
    *   If omitted, indicates whole video is reported.
    */
   timecode?: InputMaybe<Scalars['String']['input']>;
-  /** The type of report. Valid types are (child_abuse, copyrightowner, crime_apology, disinformation, harmful_for_children, hateful_content, porn, spam, terrorism, violent). @deprecated(reason: "Use input field `violation`."). */
+  /** @deprecated(reason: "Use `violation` input field.") - The type of report. Valid types are (child_abuse, copyrightowner, crime_apology, disinformation, harmful_for_children, hateful_content, porn, spam, terrorism, violent). */
   type?: InputMaybe<Scalars['String']['input']>;
   /** The Dailymotion ID of the video to report. */
   videoXid: Scalars['String']['input'];
@@ -6363,31 +6484,51 @@ export enum RolePermission {
 /** Represents a rule. */
 export type Rule = Node & {
   __typename?: 'Rule';
-  /** Indicates if the condition is a complex condition, a.k.a custom made. */
+  /** Indicates if the rule has a complex (customized) condition. */
   complexCondition?: Maybe<Scalars['Boolean']['output']>;
-  /** The detailed logic of the feature. */
+  /** The detailed logic of the rule. */
   condition?: Maybe<Scalars['String']['output']>;
-  /** The creation date and time (DateTime ISO8601) of the feature. */
+  /** The date and time (ISO 8601 format) when the rule was created. */
+  createDate: Scalars['DateTime']['output'];
+  /**
+   * The creation date and time (DateTime ISO8601) of the feature.
+   * @deprecated Use `createDate` field.
+   */
   createdAt?: Maybe<Scalars['DateTime']['output']>;
-  /** The unique id of the user that created the feature. */
+  /** The unique id of the user that created the rule. */
   creatorXid?: Maybe<Scalars['String']['output']>;
-  /** A human-readable description of the feature. */
+  /** A human-readable description of the rule. */
   description?: Maybe<Scalars['String']['output']>;
-  /** Whether the feature is enabled or not. */
+  /** Indicated whether the feature is enabled. */
   enabled?: Maybe<Scalars['Boolean']['output']>;
-  /** End date and time (DateTime ISO8601) of the feature if enabled. */
+  /**
+   * End date and time (DateTime ISO8601) of the feature if enabled.
+   * @deprecated Use `endDate` field
+   */
   endAt?: Maybe<Scalars['DateTime']['output']>;
+  /** The date and time (ISO 8601 format) when the rule ends. */
+  endDate?: Maybe<Scalars['DateTime']['output']>;
   /** The A/B experiment logic and configuration. */
   experiment?: Maybe<Scalars['String']['output']>;
   /** The ID of the object. */
   id: Scalars['ID']['output'];
-  /** The name for the feature. */
+  /** The name of the rule. */
   name?: Maybe<Scalars['String']['output']>;
-  /** Start date and time (DateTime ISO8601) of the feature if enabled. */
+  /**
+   * Start date and time (DateTime ISO8601) of the feature if enabled.
+   * @deprecated Use `starDate` field
+   */
   startAt?: Maybe<Scalars['DateTime']['output']>;
+  /** The date and time (ISO 8601 format) when the rule starts. */
+  startDate?: Maybe<Scalars['DateTime']['output']>;
   /** The tags associated with the rule. Useful for filtering. */
   tags?: Maybe<BehaviorRuleTagConnection>;
-  /** The last update date-time of the feature. */
+  /** The date and time (ISO 8601 format) when the rule was updated. */
+  updateDate: Scalars['DateTime']['output'];
+  /**
+   * The last update date-time of the feature.
+   * @deprecated Use `updateDate` field.
+   */
   updatedAt?: Maybe<Scalars['DateTime']['output']>;
   /** A unique immutable uuid for the rule (used by experiment). */
   uuid?: Maybe<Scalars['String']['output']>;
@@ -6892,7 +7033,12 @@ export type Topic = Node & {
   collection?: Maybe<Collection>;
   /** The URL of the cover image. */
   coverURL?: Maybe<Scalars['String']['output']>;
-  /** The creation date (DateTime ISO8601) of the topic. */
+  /** The date and time (ISO 8601 format) when the topic was created. */
+  createDate: Scalars['DateTime']['output'];
+  /**
+   * The creation date (DateTime ISO8601) of the topic.
+   * @deprecated Use `createDate` field.
+   */
   createdAt?: Maybe<Scalars['DateTime']['output']>;
   /** The ID of the object. */
   id: Scalars['ID']['output'];
@@ -6911,7 +7057,12 @@ export type Topic = Node & {
    * @deprecated Use `coverURL` field.
    */
   thumbnails?: Maybe<Thumbnails>;
-  /** The update date (DateTime ISO8601) of the topic. */
+  /** The date and time (ISO 8601 format) when the topic was updated. */
+  updateDate: Scalars['DateTime']['output'];
+  /**
+   * The update date (DateTime ISO8601) of the topic.
+   * @deprecated Use `updateDate` field.
+   */
   updatedAt?: Maybe<Scalars['DateTime']['output']>;
   /**
    * The URL of the topic.
@@ -7144,8 +7295,10 @@ export type UpdateBehaviorRuleInput = {
   description?: InputMaybe<Scalars['String']['input']>;
   /** Indicate whether the rule/condition is enabled. */
   enabled?: InputMaybe<Scalars['Boolean']['input']>;
-  /** End date and time (DateTime ISO8601) of the rule if enabled. */
+  /** @deprecated(reason: "Use `endDate` input field.") - End date and time (DateTime ISO8601) of the rule if enabled. */
   endAt?: InputMaybe<Scalars['DateTime']['input']>;
+  /** The date and time (ISO 8601 format) when the rule ends. */
+  endDate?: InputMaybe<Scalars['DateTime']['input']>;
   /** Experiment configuration. If set, this rule will be an experiment (contains JSON). */
   experiment?: InputMaybe<Scalars['String']['input']>;
   /** The name of the selected rule to update. */
@@ -7154,6 +7307,8 @@ export type UpdateBehaviorRuleInput = {
   newName?: InputMaybe<Scalars['String']['input']>;
   /** Start date and time (DateTime ISO8601) of the rule if enabled. */
   startAt?: InputMaybe<Scalars['DateTime']['input']>;
+  /** @deprecated(reason: "Use `startDate` input field.") - The date and time (ISO 8601 format) when the rule starts. */
+  startDate?: InputMaybe<Scalars['DateTime']['input']>;
   /** The tags associated with the rule. Useful for filtering. */
   tags?: InputMaybe<Array<InputMaybe<Scalars['String']['input']>>>;
 };
@@ -7303,7 +7458,7 @@ export type UpdateUserInput = {
   birthday?: InputMaybe<Scalars['DateTime']['input']>;
   /** The ID generated for the client performing the mutation. */
   clientMutationId?: InputMaybe<Scalars['String']['input']>;
-  /** The email address of the user. This field is deprecated: Use mutation `emailChangeRequest`. */
+  /** @deprecated(reason: "Use mutation `emailChangeRequest`.") - The email address of the user. */
   email?: InputMaybe<Scalars['String']['input']>;
   /** The Facebook ID of the user. */
   facebookID?: InputMaybe<Scalars['String']['input']>;
@@ -7316,7 +7471,7 @@ export type UpdateUserInput = {
   lastName?: InputMaybe<Scalars['String']['input']>;
   /** The Microsoft ID of the user. */
   microsoftID?: InputMaybe<Scalars['String']['input']>;
-  /** The name of the user. @deprecated(reason: Use `firstName` and `lastName` respectively). */
+  /** @deprecated(reason: "Use `firstName` and `lastName` respectively.") - The name of the user. */
   name?: InputMaybe<Scalars['String']['input']>;
   /** The new password for the user. */
   newPassword?: InputMaybe<Scalars['String']['input']>;
@@ -7441,7 +7596,12 @@ export type User = Node & {
    * @deprecated Use `channel.banner`.
    */
   coverURL?: Maybe<Scalars['String']['output']>;
-  /** The creation date (DateTime ISO8601) of the user. */
+  /** The date and time (ISO 8601 format) when the user was created. */
+  createDate: Scalars['DateTime']['output'];
+  /**
+   * The creation date (DateTime ISO8601) of the user.
+   * @deprecated Use `createDate` field.
+   */
   createdAt?: Maybe<Scalars['DateTime']['output']>;
   /** The email address of the user. */
   email?: Maybe<Scalars['String']['output']>;
@@ -8129,7 +8289,12 @@ export type Video = Content & Node & Recording & {
   collections?: Maybe<CollectionConnection>;
   /** The comments of the video. */
   comments?: Maybe<CommentConnection>;
-  /** The creation date (DateTime ISO8601) of the video. */
+  /** The date and time (ISO 8601 format) when the video was created. */
+  createDate: Scalars['DateTime']['output'];
+  /**
+   * The creation date (DateTime ISO8601) of the video.
+   * @deprecated Use `createDate` field.
+   */
   createdAt?: Maybe<Scalars['DateTime']['output']>;
   /** The creator that created the video. */
   creator?: Maybe<Channel>;
@@ -8286,7 +8451,12 @@ export type Video = Content & Node & Recording & {
   title?: Maybe<Scalars['String']['output']>;
   /** The list of topics related to the media. */
   topics?: Maybe<TopicConnection>;
-  /** The last update date (DateTime ISO8601) of the video. */
+  /** The date and time (ISO 8601 format) when the video was updated. */
+  updateDate: Scalars['DateTime']['output'];
+  /**
+   * The last update date (DateTime ISO8601) of the video.
+   * @deprecated Use `updateDate` field.
+   */
   updatedAt?: Maybe<Scalars['DateTime']['output']>;
   /** The upload info of the video, read-only for the owner of the video. */
   uploadInfo?: Maybe<MediaUploadInfo>;
@@ -8788,7 +8958,7 @@ export type VisibilityOperator = {
   eq: Visibility;
 };
 
-/** Represents a Watch (an interaction). */
+/** Represents a Watch (an activity). */
 export type Watch = History & Node & {
   __typename?: 'Watch';
   /** The ID of the object. */
@@ -8982,6 +9152,7 @@ export type DirectiveResolverFn<TResult = {}, TParent = {}, TContext = {}, TArgs
 /** Mapping of union types */
 export type ResolversUnionTypes<_RefType extends Record<string, unknown>> = {
   Component: ( Channel ) | ( Collection ) | ( Live ) | ( Omit<Poll, 'component' | 'post'> & { component?: Maybe<_RefType['Component']>, post?: Maybe<_RefType['Post']> } ) | ( Omit<Reaction, 'opener'> & { opener?: Maybe<_RefType['Story']> } ) | ( ReactionVideo ) | ( Topic ) | ( Video );
+  Interaction: ( Omit<Comment, 'opener'> & { opener?: Maybe<_RefType['Story']> } ) | ( Omit<Reaction, 'opener'> & { opener?: Maybe<_RefType['Story']> } );
   Media: ( Live ) | ( Video );
   MediaStreams: ( LiveStreams ) | ( VideoStreams );
   Post: ( Collection ) | ( Live ) | ( Omit<Reaction, 'opener'> & { opener?: Maybe<_RefType['Story']> } ) | ( ReactionVideo ) | ( Video );
@@ -8997,7 +9168,7 @@ export type ResolversInterfaceTypes<_RefType extends Record<string, unknown>> =
   Content: ( Collection ) | ( Live ) | ( Omit<Reaction, 'opener'> & { opener?: Maybe<_RefType['Story']> } ) | ( Video );
   History: ( Omit<Favorite, 'post'> & { post: _RefType['Post'] } ) | ( Omit<Watch, 'post'> & { post: _RefType['Post'] } );
   Metric: ( BookmarkMetric ) | ( ChannelMetric ) | ( CollectionMetric ) | ( CommentMetric ) | ( LikeMetric ) | ( LiveMetric ) | ( ReactionMetric ) | ( VideoMetric );
-  Node: ( Omit<Analytics, 'timeSeries' | 'topValues'> & { timeSeries: _RefType['AnalyticsPayload'], topValues: _RefType['AnalyticsPayload'] } ) | ( AnalyticsGroupedPayloadItem ) | ( AnalyticsReport ) | ( Attribute ) | ( Behavior ) | ( BehaviorRuleTag ) | ( Channel ) | ( ChannelEngagementMetrics ) | ( ChannelExternalLinks ) | ( ChannelMetrics ) | ( ChannelShareUrls ) | ( ChannelStats ) | ( ChannelStatsFollowers ) | ( ChannelStatsReactions ) | ( ChannelStatsVideos ) | ( ChannelStatsViews ) | ( Collection ) | ( CollectionEngagementMetrics ) | ( CollectionMetrics ) | ( CollectionStats ) | ( CollectionStatsVideos ) | ( Omit<Comment, 'opener'> & { opener: _RefType['Story'] } ) | ( CommentEngagementMetrics ) | ( CommentMetrics ) | ( CommentViewerEngagement ) | ( ContentCategory ) | ( Omit<Conversation, 'story'> & { story?: Maybe<_RefType['Story']> } ) | ( Country ) | ( CuratedCategory ) | ( DailymotionAd ) | ( EmailChangeRequest ) | ( ExperimentMatch ) | ( FallbackCountry ) | ( Omit<Favorite, 'post'> & { post: _RefType['Post'] } ) | ( FeatureMatch ) | ( FeaturedContent ) | ( FileUpload ) | ( FollowedChannel ) | ( FollowedTopic ) | ( Follower ) | ( FollowerEngagement ) | ( Following ) | ( FollowingChannelStartsLive ) | ( FollowingChannelUploadsVideo ) | ( FollowingStartsLive ) | ( GeoblockedCountries ) | ( Geoblocking ) | ( Hashtag ) | ( HashtagEngagementMetrics ) | ( HashtagMetrics ) | ( Image ) | ( Interest ) | ( Language ) | ( Live ) | ( LiveEngagementMetrics ) | ( LiveMetrics ) | ( LiveShareUrls ) | ( LiveStats ) | ( LiveStatsViews ) | ( LiveStreams ) | ( LiveViewerEngagement ) | ( Localization ) | ( LocalizationMe ) | ( MediaModeration ) | ( MediaTag ) | ( MediaUploadInfo ) | ( Metadata ) | ( MonetizationInsights ) | ( Neon ) | ( NotificationSettings ) | ( Organization ) | ( OrganizationAnalysis ) | ( OrganizationStats ) | ( OrganizationStatsChannels ) | ( Partner ) | ( PartnerReportFile ) | ( PartnerSpace ) | ( Player ) | ( PlayerQueue ) | ( Omit<Poll, 'component' | 'post'> & { component?: Maybe<_RefType['Component']>, post?: Maybe<_RefType['Post']> } ) | ( PollOption ) | ( PollShareUrls ) | ( ProductUpdates ) | ( Omit<Reaction, 'opener'> & { opener?: Maybe<_RefType['Story']> } ) | ( ReactionEngagementMetrics ) | ( ReactionMetrics ) | ( ReactionShareUrls ) | ( ReactionVideo ) | ( ReactionVideoStats ) | ( ReactionVideoStatsBookmarks ) | ( ReactionVideoStatsFavorites ) | ( ReactionVideoStatsLikes ) | ( ReactionVideoStatsReactionVideos ) | ( ReactionVideoStatsSaves ) | ( ReactionViewerEngagement ) | ( Omit<RecommendedRecording, 'recording'> & { recording?: Maybe<_RefType['Recording']> } ) | ( RemindUnwatchedVideos ) | ( ReportFileDownloadLink ) | ( Restriction ) | ( Rule ) | ( Search ) | ( Omit<Section, 'relatedComponent'> & { relatedComponent?: Maybe<_RefType['Component']> } ) | ( SharingUrl ) | ( Subdivision ) | ( Subtitle ) | ( Suggestion ) | ( SupportedCountry ) | ( SupportedLanguage ) | ( Thumbnails ) | ( Tips ) | ( Topic ) | ( TopicLabel ) | ( TopicShareUrls ) | ( TopicStats ) | ( TopicStatsFollowers ) | ( TopicStatsVideos ) | ( TopicWhitelistStatus ) | ( User ) | ( UserInterest ) | ( UserPollAnswer ) | ( UserStats ) | ( UserStatsCollections ) | ( UserStatsFollowers ) | ( UserStatsFollowingChannels ) | ( UserStatsFollowingTopics ) | ( UserStatsLikedVideos ) | ( UserStatsReactionVideos ) | ( UserStatsUploadedVideos ) | ( UserStatsVideos ) | ( UserStatsWatchLater ) | ( UserStatsWatchedVideos ) | ( Video ) | ( VideoDigest ) | ( VideoEngagementMetrics ) | ( VideoMetrics ) | ( VideoShareUrls ) | ( VideoStats ) | ( VideoStatsBookmarks ) | ( VideoStatsFavorites ) | ( VideoStatsLikes ) | ( VideoStatsReactionVideos ) | ( VideoStatsSaves ) | ( VideoStatsViews ) | ( VideoStreams ) | ( VideoViewerEngagement ) | ( Views ) | ( Omit<Watch, 'post'> & { post: _RefType['Post'] } ) | ( Web ) | ( WebMetadata ) | ( WebMetadataConnection );
+  Node: ( Omit<Analytics, 'timeSeries' | 'topValues'> & { timeSeries: _RefType['AnalyticsPayload'], topValues: _RefType['AnalyticsPayload'] } ) | ( AnalyticsGroupedPayloadItem ) | ( AnalyticsReport ) | ( Attribute ) | ( Behavior ) | ( BehaviorRuleTag ) | ( Channel ) | ( ChannelEngagementMetrics ) | ( ChannelExternalLinks ) | ( ChannelMetrics ) | ( ChannelShareUrls ) | ( ChannelStats ) | ( ChannelStatsFollowers ) | ( ChannelStatsReactions ) | ( ChannelStatsVideos ) | ( ChannelStatsViews ) | ( Collection ) | ( CollectionEngagementMetrics ) | ( CollectionMetrics ) | ( CollectionStats ) | ( CollectionStatsVideos ) | ( Omit<Comment, 'opener'> & { opener?: Maybe<_RefType['Story']> } ) | ( CommentEngagementMetrics ) | ( CommentMetrics ) | ( CommentViewerEngagement ) | ( ContentCategory ) | ( Omit<Conversation, 'story'> & { story?: Maybe<_RefType['Story']> } ) | ( Country ) | ( CuratedCategory ) | ( DailymotionAd ) | ( EmailChangeRequest ) | ( ExperimentMatch ) | ( FallbackCountry ) | ( Omit<Favorite, 'post'> & { post: _RefType['Post'] } ) | ( FeatureMatch ) | ( FeaturedContent ) | ( FileUpload ) | ( FollowedChannel ) | ( FollowedTopic ) | ( Follower ) | ( FollowerEngagement ) | ( Following ) | ( FollowingChannelStartsLive ) | ( FollowingChannelUploadsVideo ) | ( FollowingStartsLive ) | ( GeoblockedCountries ) | ( Geoblocking ) | ( Hashtag ) | ( HashtagEngagementMetrics ) | ( HashtagMetrics ) | ( Image ) | ( Interest ) | ( Language ) | ( Live ) | ( LiveEngagementMetrics ) | ( LiveMetrics ) | ( LiveShareUrls ) | ( LiveStats ) | ( LiveStatsViews ) | ( LiveStreams ) | ( LiveViewerEngagement ) | ( Localization ) | ( LocalizationMe ) | ( MediaModeration ) | ( MediaTag ) | ( MediaUploadInfo ) | ( Metadata ) | ( MonetizationInsights ) | ( Neon ) | ( NotificationSettings ) | ( Organization ) | ( OrganizationAnalysis ) | ( OrganizationStats ) | ( OrganizationStatsChannels ) | ( Partner ) | ( PartnerReportFile ) | ( PartnerSpace ) | ( Player ) | ( PlayerQueue ) | ( Omit<Poll, 'component' | 'post'> & { component?: Maybe<_RefType['Component']>, post?: Maybe<_RefType['Post']> } ) | ( PollOption ) | ( PollShareUrls ) | ( ProductUpdates ) | ( Omit<Reaction, 'opener'> & { opener?: Maybe<_RefType['Story']> } ) | ( ReactionEngagementMetrics ) | ( ReactionMetrics ) | ( ReactionShareUrls ) | ( ReactionVideo ) | ( ReactionVideoStats ) | ( ReactionVideoStatsBookmarks ) | ( ReactionVideoStatsFavorites ) | ( ReactionVideoStatsLikes ) | ( ReactionVideoStatsReactionVideos ) | ( ReactionVideoStatsSaves ) | ( ReactionViewerEngagement ) | ( Omit<RecommendedRecording, 'recording'> & { recording?: Maybe<_RefType['Recording']> } ) | ( RemindUnwatchedVideos ) | ( ReportFileDownloadLink ) | ( Restriction ) | ( Rule ) | ( Search ) | ( Omit<Section, 'relatedComponent'> & { relatedComponent?: Maybe<_RefType['Component']> } ) | ( SharingUrl ) | ( Subdivision ) | ( Subtitle ) | ( Suggestion ) | ( SupportedCountry ) | ( SupportedLanguage ) | ( Thumbnails ) | ( Tips ) | ( Topic ) | ( TopicLabel ) | ( TopicShareUrls ) | ( TopicStats ) | ( TopicStatsFollowers ) | ( TopicStatsVideos ) | ( TopicWhitelistStatus ) | ( User ) | ( UserInterest ) | ( UserPollAnswer ) | ( UserStats ) | ( UserStatsCollections ) | ( UserStatsFollowers ) | ( UserStatsFollowingChannels ) | ( UserStatsFollowingTopics ) | ( UserStatsLikedVideos ) | ( UserStatsReactionVideos ) | ( UserStatsUploadedVideos ) | ( UserStatsVideos ) | ( UserStatsWatchLater ) | ( UserStatsWatchedVideos ) | ( Video ) | ( VideoDigest ) | ( VideoEngagementMetrics ) | ( VideoMetrics ) | ( VideoShareUrls ) | ( VideoStats ) | ( VideoStatsBookmarks ) | ( VideoStatsFavorites ) | ( VideoStatsLikes ) | ( VideoStatsReactionVideos ) | ( VideoStatsSaves ) | ( VideoStatsViews ) | ( VideoStreams ) | ( VideoViewerEngagement ) | ( Views ) | ( Omit<Watch, 'post'> & { post: _RefType['Post'] } ) | ( Web ) | ( WebMetadata ) | ( WebMetadataConnection );
   PostEngagementMetrics: ( LiveEngagementMetrics ) | ( ReactionEngagementMetrics ) | ( VideoEngagementMetrics );
   PostMetrics: ( LiveMetrics ) | ( ReactionMetrics ) | ( VideoMetrics );
   Recording: ( Live ) | ( Omit<Reaction, 'opener'> & { opener?: Maybe<_RefType['Story']> } ) | ( Video );
@@ -9010,6 +9181,8 @@ export type ResolversTypes = {
   AccountType: AccountType;
   ActivateUserInput: ActivateUserInput;
   ActivateUserPayload: ResolverTypeWrapper<ActivateUserPayload>;
+  Activity: Activity;
+  ActivityOperator: ActivityOperator;
   AddCollectionVideoInput: AddCollectionVideoInput;
   AddCollectionVideoPayload: ResolverTypeWrapper<AddCollectionVideoPayload>;
   AddWatchLaterVideoInput: AddWatchLaterVideoInput;
@@ -9088,6 +9261,7 @@ export type ResolversTypes = {
   ChannelStatsReactions: ResolverTypeWrapper<ChannelStatsReactions>;
   ChannelStatsVideos: ResolverTypeWrapper<ChannelStatsVideos>;
   ChannelStatsViews: ResolverTypeWrapper<ChannelStatsViews>;
+  ChannelUpdateRequired: ResolverTypeWrapper<ChannelUpdateRequired>;
   ChannelsSort: ChannelsSort;
   ClearCollectionMediasInput: ClearCollectionMediasInput;
   ClearCollectionMediasPayload: ResolverTypeWrapper<ClearCollectionMediasPayload>;
@@ -9108,7 +9282,7 @@ export type ResolversTypes = {
   CollectionMetrics: ResolverTypeWrapper<CollectionMetrics>;
   CollectionStats: ResolverTypeWrapper<CollectionStats>;
   CollectionStatsVideos: ResolverTypeWrapper<CollectionStatsVideos>;
-  Comment: ResolverTypeWrapper<Omit<Comment, 'opener'> & { opener: ResolversTypes['Story'] }>;
+  Comment: ResolverTypeWrapper<Omit<Comment, 'opener'> & { opener?: Maybe<ResolversTypes['Story']> }>;
   CommentConnection: ResolverTypeWrapper<CommentConnection>;
   CommentEdge: ResolverTypeWrapper<CommentEdge>;
   CommentEngagementMetrics: ResolverTypeWrapper<CommentEngagementMetrics>;
@@ -9232,8 +9406,9 @@ export type ResolversTypes = {
   IDOperator: IdOperator;
   Image: ResolverTypeWrapper<Image>;
   Int: ResolverTypeWrapper<Scalars['Int']['output']>;
-  Interaction: Interaction;
-  InteractionOperator: InteractionOperator;
+  Interaction: ResolverTypeWrapper<ResolversUnionTypes<ResolversTypes>['Interaction']>;
+  InteractionConnection: ResolverTypeWrapper<InteractionConnection>;
+  InteractionEdge: ResolverTypeWrapper<Omit<InteractionEdge, 'node'> & { node?: Maybe<ResolversTypes['Interaction']> }>;
   Interest: ResolverTypeWrapper<Interest>;
   InterestConnection: ResolverTypeWrapper<InterestConnection>;
   InterestEdge: ResolverTypeWrapper<InterestEdge>;
@@ -9570,6 +9745,7 @@ export type ResolversTypes = {
 export type ResolversParentTypes = {
   ActivateUserInput: ActivateUserInput;
   ActivateUserPayload: ActivateUserPayload;
+  ActivityOperator: ActivityOperator;
   AddCollectionVideoInput: AddCollectionVideoInput;
   AddCollectionVideoPayload: AddCollectionVideoPayload;
   AddWatchLaterVideoInput: AddWatchLaterVideoInput;
@@ -9636,6 +9812,7 @@ export type ResolversParentTypes = {
   ChannelStatsReactions: ChannelStatsReactions;
   ChannelStatsVideos: ChannelStatsVideos;
   ChannelStatsViews: ChannelStatsViews;
+  ChannelUpdateRequired: ChannelUpdateRequired;
   ClearCollectionMediasInput: ClearCollectionMediasInput;
   ClearCollectionMediasPayload: ClearCollectionMediasPayload;
   ClearLikedVideosInput: ClearLikedVideosInput;
@@ -9655,7 +9832,7 @@ export type ResolversParentTypes = {
   CollectionMetrics: CollectionMetrics;
   CollectionStats: CollectionStats;
   CollectionStatsVideos: CollectionStatsVideos;
-  Comment: Omit<Comment, 'opener'> & { opener: ResolversParentTypes['Story'] };
+  Comment: Omit<Comment, 'opener'> & { opener?: Maybe<ResolversParentTypes['Story']> };
   CommentConnection: CommentConnection;
   CommentEdge: CommentEdge;
   CommentEngagementMetrics: CommentEngagementMetrics;
@@ -9771,7 +9948,9 @@ export type ResolversParentTypes = {
   IDOperator: IdOperator;
   Image: Image;
   Int: Scalars['Int']['output'];
-  InteractionOperator: InteractionOperator;
+  Interaction: ResolversUnionTypes<ResolversParentTypes>['Interaction'];
+  InteractionConnection: InteractionConnection;
+  InteractionEdge: Omit<InteractionEdge, 'node'> & { node?: Maybe<ResolversParentTypes['Interaction']> };
   Interest: Interest;
   InterestConnection: InterestConnection;
   InterestEdge: InterestEdge;
@@ -10213,6 +10392,7 @@ export type AnalyticsPayloadResolvers<ContextType = any, ParentType extends Reso
 
 export type AnalyticsReportResolvers<ContextType = any, ParentType extends ResolversParentTypes['AnalyticsReport'] = ResolversParentTypes['AnalyticsReport']> = {
   channelXid?: Resolver<Maybe<ResolversTypes['String']>, ParentType, ContextType>;
+  createDate?: Resolver<ResolversTypes['DateTime'], ParentType, ContextType>;
   createdAt?: Resolver<Maybe<ResolversTypes['Date']>, ParentType, ContextType>;
   creator?: Resolver<Maybe<ResolversTypes['User']>, ParentType, ContextType>;
   downloadLinks?: Resolver<Maybe<ResolversTypes['ReportFileDownloadLinkConnection']>, ParentType, ContextType, RequireFields<AnalyticsReportDownloadLinksArgs, 'page'>>;
@@ -10390,6 +10570,7 @@ export type ChannelResolvers<ContextType = any, ParentType extends ResolversPare
   stats?: Resolver<Maybe<ResolversTypes['ChannelStats']>, ParentType, ContextType>;
   tagline?: Resolver<Maybe<ResolversTypes['String']>, ParentType, ContextType>;
   thumbnails?: Resolver<Maybe<ResolversTypes['Thumbnails']>, ParentType, ContextType>;
+  updateRequired?: Resolver<Maybe<ResolversTypes['ChannelUpdateRequired']>, ParentType, ContextType>;
   videos?: Resolver<Maybe<ResolversTypes['VideoConnection']>, ParentType, ContextType, RequireFields<ChannelVideosArgs, 'first' | 'page'>>;
   viewCount?: Resolver<Maybe<ResolversTypes['BigInt']>, ParentType, ContextType>;
   xid?: Resolver<ResolversTypes['String'], ParentType, ContextType>;
@@ -10509,6 +10690,11 @@ export type ChannelStatsViewsResolvers<ContextType = any, ParentType extends Res
   __isTypeOf?: IsTypeOfResolverFn<ParentType, ContextType>;
 };
 
+export type ChannelUpdateRequiredResolvers<ContextType = any, ParentType extends ResolversParentTypes['ChannelUpdateRequired'] = ResolversParentTypes['ChannelUpdateRequired']> = {
+  name?: Resolver<ResolversTypes['Boolean'], ParentType, ContextType>;
+  __isTypeOf?: IsTypeOfResolverFn<ParentType, ContextType>;
+};
+
 export type ClearCollectionMediasPayloadResolvers<ContextType = any, ParentType extends ResolversParentTypes['ClearCollectionMediasPayload'] = ResolversParentTypes['ClearCollectionMediasPayload']> = {
   clientMutationId?: Resolver<Maybe<ResolversTypes['String']>, ParentType, ContextType>;
   status?: Resolver<Maybe<ResolversTypes['Status']>, ParentType, ContextType>;
@@ -10535,6 +10721,7 @@ export type ClearWatchedVideosPayloadResolvers<ContextType = any, ParentType ext
 
 export type CollectionResolvers<ContextType = any, ParentType extends ResolversParentTypes['Collection'] = ResolversParentTypes['Collection']> = {
   channel?: Resolver<Maybe<ResolversTypes['Channel']>, ParentType, ContextType>;
+  createDate?: Resolver<ResolversTypes['DateTime'], ParentType, ContextType>;
   createdAt?: Resolver<Maybe<ResolversTypes['DateTime']>, ParentType, ContextType>;
   creator?: Resolver<Maybe<ResolversTypes['Channel']>, ParentType, ContextType>;
   description?: Resolver<Maybe<ResolversTypes['String']>, ParentType, ContextType>;
@@ -10549,6 +10736,7 @@ export type CollectionResolvers<ContextType = any, ParentType extends ResolversP
   thumbnail?: Resolver<Maybe<ResolversTypes['Image']>, ParentType, ContextType, RequireFields<CollectionThumbnailArgs, 'height'>>;
   thumbnailURL?: Resolver<Maybe<ResolversTypes['String']>, ParentType, ContextType, RequireFields<CollectionThumbnailUrlArgs, 'size'>>;
   thumbnails?: Resolver<Maybe<ResolversTypes['Thumbnails']>, ParentType, ContextType>;
+  updateDate?: Resolver<ResolversTypes['DateTime'], ParentType, ContextType>;
   updatedAt?: Resolver<Maybe<ResolversTypes['DateTime']>, ParentType, ContextType>;
   videos?: Resolver<Maybe<ResolversTypes['VideoConnection']>, ParentType, ContextType, RequireFields<CollectionVideosArgs, 'first' | 'page'>>;
   xid?: Resolver<ResolversTypes['String'], ParentType, ContextType>;
@@ -10616,7 +10804,7 @@ export type CommentResolvers<ContextType = any, ParentType extends ResolversPare
   creator?: Resolver<ResolversTypes['Channel'], ParentType, ContextType>;
   id?: Resolver<ResolversTypes['ID'], ParentType, ContextType>;
   metrics?: Resolver<Maybe<ResolversTypes['CommentMetrics']>, ParentType, ContextType>;
-  opener?: Resolver<ResolversTypes['Story'], ParentType, ContextType>;
+  opener?: Resolver<Maybe<ResolversTypes['Story']>, ParentType, ContextType>;
   text?: Resolver<ResolversTypes['String'], ParentType, ContextType>;
   updateDate?: Resolver<ResolversTypes['DateTime'], ParentType, ContextType>;
   viewerEngagement?: Resolver<Maybe<ResolversTypes['CommentViewerEngagement']>, ParentType, ContextType>;
@@ -10707,6 +10895,7 @@ export type ConversationResolvers<ContextType = any, ParentType extends Resolver
   algorithm?: Resolver<Maybe<ResolversTypes['AlgorithmName']>, ParentType, ContextType>;
   dailymotionAd?: Resolver<Maybe<ResolversTypes['DailymotionAd']>, ParentType, ContextType>;
   id?: Resolver<ResolversTypes['ID'], ParentType, ContextType>;
+  interactions?: Resolver<Maybe<ResolversTypes['InteractionConnection']>, ParentType, ContextType>;
   story?: Resolver<Maybe<ResolversTypes['Story']>, ParentType, ContextType>;
   __isTypeOf?: IsTypeOfResolverFn<ParentType, ContextType>;
 };
@@ -10851,10 +11040,12 @@ export type EmailChangeRequestResolvers<ContextType = any, ParentType extends Re
 };
 
 export type ExperimentMatchResolvers<ContextType = any, ParentType extends ResolversParentTypes['ExperimentMatch'] = ResolversParentTypes['ExperimentMatch']> = {
+  endDate?: Resolver<Maybe<ResolversTypes['DateTime']>, ParentType, ContextType>;
   endingAt?: Resolver<Maybe<ResolversTypes['DateTime']>, ParentType, ContextType>;
   id?: Resolver<ResolversTypes['ID'], ParentType, ContextType>;
   matched?: Resolver<Maybe<ResolversTypes['Boolean']>, ParentType, ContextType>;
   name?: Resolver<Maybe<ResolversTypes['String']>, ParentType, ContextType>;
+  reviewedAt?: Resolver<Maybe<ResolversTypes['DateTime']>, ParentType, ContextType>;
   tags?: Resolver<Maybe<ResolversTypes['BehaviorRuleTagConnection']>, ParentType, ContextType, RequireFields<ExperimentMatchTagsArgs, 'page'>>;
   uuid?: Resolver<Maybe<ResolversTypes['String']>, ParentType, ContextType>;
   variation?: Resolver<Maybe<ResolversTypes['String']>, ParentType, ContextType>;
@@ -10987,6 +11178,7 @@ export type FollowUserPayloadResolvers<ContextType = any, ParentType extends Res
 
 export type FollowedChannelResolvers<ContextType = any, ParentType extends ResolversParentTypes['FollowedChannel'] = ResolversParentTypes['FollowedChannel']> = {
   channel?: Resolver<Maybe<ResolversTypes['Channel']>, ParentType, ContextType>;
+  followDate?: Resolver<ResolversTypes['DateTime'], ParentType, ContextType>;
   followedAt?: Resolver<Maybe<ResolversTypes['DateTime']>, ParentType, ContextType>;
   id?: Resolver<ResolversTypes['ID'], ParentType, ContextType>;
   isNotificationEnabled?: Resolver<Maybe<ResolversTypes['Boolean']>, ParentType, ContextType>;
@@ -11007,6 +11199,7 @@ export type FollowedChannelEdgeResolvers<ContextType = any, ParentType extends R
 };
 
 export type FollowedTopicResolvers<ContextType = any, ParentType extends ResolversParentTypes['FollowedTopic'] = ResolversParentTypes['FollowedTopic']> = {
+  followDate?: Resolver<ResolversTypes['DateTime'], ParentType, ContextType>;
   followedAt?: Resolver<Maybe<ResolversTypes['DateTime']>, ParentType, ContextType>;
   id?: Resolver<ResolversTypes['ID'], ParentType, ContextType>;
   topic?: Resolver<Maybe<ResolversTypes['Topic']>, ParentType, ContextType>;
@@ -11188,6 +11381,23 @@ export type ImageResolvers<ContextType = any, ParentType extends ResolversParent
   __isTypeOf?: IsTypeOfResolverFn<ParentType, ContextType>;
 };
 
+export type InteractionResolvers<ContextType = any, ParentType extends ResolversParentTypes['Interaction'] = ResolversParentTypes['Interaction']> = {
+  __resolveType: TypeResolveFn<'Comment' | 'Reaction', ParentType, ContextType>;
+};
+
+export type InteractionConnectionResolvers<ContextType = any, ParentType extends ResolversParentTypes['InteractionConnection'] = ResolversParentTypes['InteractionConnection']> = {
+  edges?: Resolver<Array<Maybe<ResolversTypes['InteractionEdge']>>, ParentType, ContextType>;
+  metadata?: Resolver<ResolversTypes['Metadata'], ParentType, ContextType>;
+  pageInfo?: Resolver<ResolversTypes['PageInfo'], ParentType, ContextType>;
+  totalCount?: Resolver<Maybe<ResolversTypes['Int']>, ParentType, ContextType>;
+  __isTypeOf?: IsTypeOfResolverFn<ParentType, ContextType>;
+};
+
+export type InteractionEdgeResolvers<ContextType = any, ParentType extends ResolversParentTypes['InteractionEdge'] = ResolversParentTypes['InteractionEdge']> = {
+  node?: Resolver<Maybe<ResolversTypes['Interaction']>, ParentType, ContextType>;
+  __isTypeOf?: IsTypeOfResolverFn<ParentType, ContextType>;
+};
+
 export type InterestResolvers<ContextType = any, ParentType extends ResolversParentTypes['Interest'] = ResolversParentTypes['Interest']> = {
   id?: Resolver<ResolversTypes['ID'], ParentType, ContextType>;
   interestId?: Resolver<ResolversTypes['Int'], ParentType, ContextType>;
@@ -11278,6 +11488,7 @@ export type LiveResolvers<ContextType = any, ParentType extends ResolversParentT
   category?: Resolver<Maybe<ResolversTypes['MediaCategory']>, ParentType, ContextType>;
   channel?: Resolver<Maybe<ResolversTypes['Channel']>, ParentType, ContextType>;
   claimer?: Resolver<Maybe<ResolversTypes['Channel']>, ParentType, ContextType>;
+  createDate?: Resolver<ResolversTypes['DateTime'], ParentType, ContextType>;
   createdAt?: Resolver<Maybe<ResolversTypes['DateTime']>, ParentType, ContextType>;
   creator?: Resolver<Maybe<ResolversTypes['Channel']>, ParentType, ContextType>;
   curatedCategories?: Resolver<Maybe<ResolversTypes['CuratedCategoryConnection']>, ParentType, ContextType, RequireFields<LiveCuratedCategoriesArgs, 'page'>>;
@@ -11285,6 +11496,7 @@ export type LiveResolvers<ContextType = any, ParentType extends ResolversParentT
   embedHtml?: Resolver<Maybe<ResolversTypes['String']>, ParentType, ContextType>;
   embedURL?: Resolver<Maybe<ResolversTypes['String']>, ParentType, ContextType>;
   endAt?: Resolver<Maybe<ResolversTypes['DateTime']>, ParentType, ContextType>;
+  endDate?: Resolver<Maybe<ResolversTypes['DateTime']>, ParentType, ContextType>;
   geoblockedCountries?: Resolver<Maybe<ResolversTypes['GeoblockedCountries']>, ParentType, ContextType>;
   geoblocking?: Resolver<Maybe<ResolversTypes['GeoblockingConnection']>, ParentType, ContextType, RequireFields<LiveGeoblockingArgs, 'page'>>;
   height?: Resolver<Maybe<ResolversTypes['Int']>, ParentType, ContextType>;
@@ -11310,6 +11522,7 @@ export type LiveResolvers<ContextType = any, ParentType extends ResolversParentT
   shareUrls?: Resolver<Maybe<ResolversTypes['LiveShareUrls']>, ParentType, ContextType>;
   sharingURLs?: Resolver<Maybe<ResolversTypes['SharingURLConnection']>, ParentType, ContextType, RequireFields<LiveSharingUrLsArgs, 'page'>>;
   startAt?: Resolver<Maybe<ResolversTypes['DateTime']>, ParentType, ContextType>;
+  startDate?: Resolver<Maybe<ResolversTypes['DateTime']>, ParentType, ContextType>;
   stats?: Resolver<Maybe<ResolversTypes['LiveStats']>, ParentType, ContextType>;
   subtitles?: Resolver<Maybe<ResolversTypes['SubtitleConnection']>, ParentType, ContextType, RequireFields<LiveSubtitlesArgs, 'first' | 'page'>>;
   tags?: Resolver<Maybe<ResolversTypes['MediaTagConnection']>, ParentType, ContextType, RequireFields<LiveTagsArgs, 'page'>>;
@@ -11318,6 +11531,7 @@ export type LiveResolvers<ContextType = any, ParentType extends ResolversParentT
   thumbnails?: Resolver<Maybe<ResolversTypes['Thumbnails']>, ParentType, ContextType>;
   title?: Resolver<Maybe<ResolversTypes['String']>, ParentType, ContextType>;
   topics?: Resolver<Maybe<ResolversTypes['TopicConnection']>, ParentType, ContextType, RequireFields<LiveTopicsArgs, 'first' | 'page' | 'whitelistedOnly'>>;
+  updateDate?: Resolver<ResolversTypes['DateTime'], ParentType, ContextType>;
   updatedAt?: Resolver<Maybe<ResolversTypes['DateTime']>, ParentType, ContextType>;
   url?: Resolver<Maybe<ResolversTypes['String']>, ParentType, ContextType>;
   viewerEngagement?: Resolver<Maybe<ResolversTypes['LiveViewerEngagement']>, ParentType, ContextType>;
@@ -11462,6 +11676,7 @@ export type MediaEdgeResolvers<ContextType = any, ParentType extends ResolversPa
 
 export type MediaModerationResolvers<ContextType = any, ParentType extends ResolversParentTypes['MediaModeration'] = ResolversParentTypes['MediaModeration']> = {
   id?: Resolver<ResolversTypes['ID'], ParentType, ContextType>;
+  reviewDate?: Resolver<Maybe<ResolversTypes['DateTime']>, ParentType, ContextType>;
   reviewedAt?: Resolver<Maybe<ResolversTypes['DateTime']>, ParentType, ContextType>;
   __isTypeOf?: IsTypeOfResolverFn<ParentType, ContextType>;
 };
@@ -11713,6 +11928,7 @@ export type PartnerResolvers<ContextType = any, ParentType extends ResolversPare
 };
 
 export type PartnerReportFileResolvers<ContextType = any, ParentType extends ResolversParentTypes['PartnerReportFile'] = ResolversParentTypes['PartnerReportFile']> = {
+  createDate?: Resolver<ResolversTypes['DateTime'], ParentType, ContextType>;
   createdAt?: Resolver<Maybe<ResolversTypes['DateTime']>, ParentType, ContextType>;
   downloadLinks?: Resolver<Maybe<ResolversTypes['ReportFileDownloadLinkConnection']>, ParentType, ContextType, RequireFields<PartnerReportFileDownloadLinksArgs, 'page'>>;
   id?: Resolver<ResolversTypes['ID'], ParentType, ContextType>;
@@ -11882,6 +12098,7 @@ export type QueryResolvers<ContextType = any, ParentType extends ResolversParent
 };
 
 export type ReactionResolvers<ContextType = any, ParentType extends ResolversParentTypes['Reaction'] = ResolversParentTypes['Reaction']> = {
+  createDate?: Resolver<ResolversTypes['DateTime'], ParentType, ContextType>;
   createdAt?: Resolver<Maybe<ResolversTypes['DateTime']>, ParentType, ContextType>;
   creator?: Resolver<Maybe<ResolversTypes['Channel']>, ParentType, ContextType>;
   duration?: Resolver<Maybe<ResolversTypes['Int']>, ParentType, ContextType>;
@@ -12088,8 +12305,10 @@ export type RecommendedRecordingEdgeResolvers<ContextType = any, ParentType exte
 
 export type RecordingResolvers<ContextType = any, ParentType extends ResolversParentTypes['Recording'] = ResolversParentTypes['Recording']> = {
   __resolveType: TypeResolveFn<'Live' | 'Reaction' | 'Video', ParentType, ContextType>;
+  createDate?: Resolver<ResolversTypes['DateTime'], ParentType, ContextType>;
   createdAt?: Resolver<Maybe<ResolversTypes['DateTime']>, ParentType, ContextType>;
   reactions?: Resolver<Maybe<ResolversTypes['ReactionConnection']>, ParentType, ContextType, RequireFields<RecordingReactionsArgs, 'first' | 'page'>>;
+  shareUrls?: Resolver<Maybe<ResolversTypes['ShareUrls']>, ParentType, ContextType>;
   thumbnail?: Resolver<Maybe<ResolversTypes['Image']>, ParentType, ContextType, RequireFields<RecordingThumbnailArgs, 'height'>>;
   title?: Resolver<Maybe<ResolversTypes['String']>, ParentType, ContextType>;
   url?: Resolver<Maybe<ResolversTypes['String']>, ParentType, ContextType>;
@@ -12203,16 +12422,20 @@ export type RestrictionResolvers<ContextType = any, ParentType extends Resolvers
 export type RuleResolvers<ContextType = any, ParentType extends ResolversParentTypes['Rule'] = ResolversParentTypes['Rule']> = {
   complexCondition?: Resolver<Maybe<ResolversTypes['Boolean']>, ParentType, ContextType>;
   condition?: Resolver<Maybe<ResolversTypes['String']>, ParentType, ContextType>;
+  createDate?: Resolver<ResolversTypes['DateTime'], ParentType, ContextType>;
   createdAt?: Resolver<Maybe<ResolversTypes['DateTime']>, ParentType, ContextType>;
   creatorXid?: Resolver<Maybe<ResolversTypes['String']>, ParentType, ContextType>;
   description?: Resolver<Maybe<ResolversTypes['String']>, ParentType, ContextType>;
   enabled?: Resolver<Maybe<ResolversTypes['Boolean']>, ParentType, ContextType>;
   endAt?: Resolver<Maybe<ResolversTypes['DateTime']>, ParentType, ContextType>;
+  endDate?: Resolver<Maybe<ResolversTypes['DateTime']>, ParentType, ContextType>;
   experiment?: Resolver<Maybe<ResolversTypes['String']>, ParentType, ContextType>;
   id?: Resolver<ResolversTypes['ID'], ParentType, ContextType>;
   name?: Resolver<Maybe<ResolversTypes['String']>, ParentType, ContextType>;
   startAt?: Resolver<Maybe<ResolversTypes['DateTime']>, ParentType, ContextType>;
+  startDate?: Resolver<Maybe<ResolversTypes['DateTime']>, ParentType, ContextType>;
   tags?: Resolver<Maybe<ResolversTypes['BehaviorRuleTagConnection']>, ParentType, ContextType, RequireFields<RuleTagsArgs, 'page'>>;
+  updateDate?: Resolver<ResolversTypes['DateTime'], ParentType, ContextType>;
   updatedAt?: Resolver<Maybe<ResolversTypes['DateTime']>, ParentType, ContextType>;
   uuid?: Resolver<Maybe<ResolversTypes['String']>, ParentType, ContextType>;
   __isTypeOf?: IsTypeOfResolverFn<ParentType, ContextType>;
@@ -12417,6 +12640,7 @@ export type TipsResolvers<ContextType = any, ParentType extends ResolversParentT
 export type TopicResolvers<ContextType = any, ParentType extends ResolversParentTypes['Topic'] = ResolversParentTypes['Topic']> = {
   collection?: Resolver<Maybe<ResolversTypes['Collection']>, ParentType, ContextType, Partial<TopicCollectionArgs>>;
   coverURL?: Resolver<Maybe<ResolversTypes['String']>, ParentType, ContextType, RequireFields<TopicCoverUrlArgs, 'size'>>;
+  createDate?: Resolver<ResolversTypes['DateTime'], ParentType, ContextType>;
   createdAt?: Resolver<Maybe<ResolversTypes['DateTime']>, ParentType, ContextType>;
   id?: Resolver<ResolversTypes['ID'], ParentType, ContextType>;
   isFollowed?: Resolver<Maybe<ResolversTypes['Boolean']>, ParentType, ContextType>;
@@ -12425,6 +12649,7 @@ export type TopicResolvers<ContextType = any, ParentType extends ResolversParent
   shareUrls?: Resolver<Maybe<ResolversTypes['TopicShareUrls']>, ParentType, ContextType>;
   stats?: Resolver<Maybe<ResolversTypes['TopicStats']>, ParentType, ContextType>;
   thumbnails?: Resolver<Maybe<ResolversTypes['Thumbnails']>, ParentType, ContextType>;
+  updateDate?: Resolver<ResolversTypes['DateTime'], ParentType, ContextType>;
   updatedAt?: Resolver<Maybe<ResolversTypes['DateTime']>, ParentType, ContextType>;
   url?: Resolver<Maybe<ResolversTypes['String']>, ParentType, ContextType>;
   videos?: Resolver<Maybe<ResolversTypes['VideoConnection']>, ParentType, ContextType, RequireFields<TopicVideosArgs, 'first' | 'page'>>;
@@ -12584,6 +12809,7 @@ export type UserResolvers<ContextType = any, ParentType extends ResolversParentT
   collections?: Resolver<Maybe<ResolversTypes['CollectionConnection']>, ParentType, ContextType, RequireFields<UserCollectionsArgs, 'first' | 'page'>>;
   country?: Resolver<Maybe<ResolversTypes['Country']>, ParentType, ContextType>;
   coverURL?: Resolver<Maybe<ResolversTypes['String']>, ParentType, ContextType, RequireFields<UserCoverUrlArgs, 'size'>>;
+  createDate?: Resolver<ResolversTypes['DateTime'], ParentType, ContextType>;
   createdAt?: Resolver<Maybe<ResolversTypes['DateTime']>, ParentType, ContextType>;
   email?: Resolver<Maybe<ResolversTypes['String']>, ParentType, ContextType>;
   emailChangeRequest?: Resolver<Maybe<ResolversTypes['EmailChangeRequest']>, ParentType, ContextType>;
@@ -12792,6 +13018,7 @@ export type VideoResolvers<ContextType = any, ParentType extends ResolversParent
   claimer?: Resolver<Maybe<ResolversTypes['Channel']>, ParentType, ContextType>;
   collections?: Resolver<Maybe<ResolversTypes['CollectionConnection']>, ParentType, ContextType, RequireFields<VideoCollectionsArgs, 'first' | 'page'>>;
   comments?: Resolver<Maybe<ResolversTypes['CommentConnection']>, ParentType, ContextType, RequireFields<VideoCommentsArgs, 'first' | 'page'>>;
+  createDate?: Resolver<ResolversTypes['DateTime'], ParentType, ContextType>;
   createdAt?: Resolver<Maybe<ResolversTypes['DateTime']>, ParentType, ContextType>;
   creator?: Resolver<Maybe<ResolversTypes['Channel']>, ParentType, ContextType>;
   curatedCategories?: Resolver<Maybe<ResolversTypes['CuratedCategoryConnection']>, ParentType, ContextType, RequireFields<VideoCuratedCategoriesArgs, 'page'>>;
@@ -12846,6 +13073,7 @@ export type VideoResolvers<ContextType = any, ParentType extends ResolversParent
   thumbnails?: Resolver<Maybe<ResolversTypes['Thumbnails']>, ParentType, ContextType>;
   title?: Resolver<Maybe<ResolversTypes['String']>, ParentType, ContextType>;
   topics?: Resolver<Maybe<ResolversTypes['TopicConnection']>, ParentType, ContextType, RequireFields<VideoTopicsArgs, 'first' | 'page' | 'whitelistedOnly'>>;
+  updateDate?: Resolver<ResolversTypes['DateTime'], ParentType, ContextType>;
   updatedAt?: Resolver<Maybe<ResolversTypes['DateTime']>, ParentType, ContextType>;
   uploadInfo?: Resolver<Maybe<ResolversTypes['MediaUploadInfo']>, ParentType, ContextType>;
   url?: Resolver<Maybe<ResolversTypes['String']>, ParentType, ContextType>;
@@ -13119,6 +13347,7 @@ export type Resolvers<ContextType = any> = {
   ChannelStatsReactions?: ChannelStatsReactionsResolvers<ContextType>;
   ChannelStatsVideos?: ChannelStatsVideosResolvers<ContextType>;
   ChannelStatsViews?: ChannelStatsViewsResolvers<ContextType>;
+  ChannelUpdateRequired?: ChannelUpdateRequiredResolvers<ContextType>;
   ClearCollectionMediasPayload?: ClearCollectionMediasPayloadResolvers<ContextType>;
   ClearLikedVideosPayload?: ClearLikedVideosPayloadResolvers<ContextType>;
   ClearWatchLaterVideosPayload?: ClearWatchLaterVideosPayloadResolvers<ContextType>;
@@ -13221,6 +13450,9 @@ export type Resolvers<ContextType = any> = {
   HistoryConnection?: HistoryConnectionResolvers<ContextType>;
   HistoryEdge?: HistoryEdgeResolvers<ContextType>;
   Image?: ImageResolvers<ContextType>;
+  Interaction?: InteractionResolvers<ContextType>;
+  InteractionConnection?: InteractionConnectionResolvers<ContextType>;
+  InteractionEdge?: InteractionEdgeResolvers<ContextType>;
   Interest?: InterestResolvers<ContextType>;
   InterestConnection?: InterestConnectionResolvers<ContextType>;
   InterestEdge?: InterestEdgeResolvers<ContextType>;
diff --git a/types/CodeGenDailymotion.schema.json b/types/CodeGenDailymotion.schema.json
index e22caed6225fe8f9f6001c4fe563a743c0c9fca5..f0bac39bae4fb97e5b62865cfb24dc90c0958b1c 100644
--- a/types/CodeGenDailymotion.schema.json
+++ b/types/CodeGenDailymotion.schema.json
@@ -121,6 +121,64 @@
         "enumValues": null,
         "possibleTypes": null
       },
+      {
+        "kind": "ENUM",
+        "name": "Activity",
+        "description": "The possible values for an Activity.",
+        "fields": null,
+        "inputFields": null,
+        "interfaces": null,
+        "enumValues": [
+          {
+            "name": "FAVORITED",
+            "description": "An activity that is `favorited`.",
+            "isDeprecated": false,
+            "deprecationReason": null
+          },
+          {
+            "name": "LIKED",
+            "description": "An activity that is `liked`.",
+            "isDeprecated": false,
+            "deprecationReason": null
+          },
+          {
+            "name": "SAVED",
+            "description": "An activity that is `saved`.",
+            "isDeprecated": false,
+            "deprecationReason": null
+          },
+          {
+            "name": "WATCHED",
+            "description": "An activity that is `watched`.",
+            "isDeprecated": false,
+            "deprecationReason": null
+          }
+        ],
+        "possibleTypes": null
+      },
+      {
+        "kind": "INPUT_OBJECT",
+        "name": "ActivityOperator",
+        "description": "The available input fields of an Activity operator.",
+        "fields": null,
+        "inputFields": [
+          {
+            "name": "eq",
+            "description": "Short for equal, must match the given data exactly.",
+            "type": {
+              "kind": "ENUM",
+              "name": "Activity",
+              "ofType": null
+            },
+            "defaultValue": null,
+            "isDeprecated": false,
+            "deprecationReason": null
+          }
+        ],
+        "interfaces": null,
+        "enumValues": null,
+        "possibleTypes": null
+      },
       {
         "kind": "INPUT_OBJECT",
         "name": "AddCollectionVideoInput",
@@ -340,6 +398,12 @@
         "inputFields": null,
         "interfaces": null,
         "enumValues": [
+          {
+            "name": "EXPLORE",
+            "description": "An algorithm to explore content based on location.",
+            "isDeprecated": false,
+            "deprecationReason": null
+          },
           {
             "name": "FEATURED",
             "description": "An algorithm that considers what content to feature.",
@@ -1295,6 +1359,22 @@
             "isDeprecated": false,
             "deprecationReason": null
           },
+          {
+            "name": "createDate",
+            "description": "The date and time (ISO 8601 format) when the report was created.",
+            "args": [],
+            "type": {
+              "kind": "NON_NULL",
+              "name": null,
+              "ofType": {
+                "kind": "SCALAR",
+                "name": "DateTime",
+                "ofType": null
+              }
+            },
+            "isDeprecated": false,
+            "deprecationReason": null
+          },
           {
             "name": "createdAt",
             "description": "The creation date of the report.",
@@ -1304,8 +1384,8 @@
               "name": "Date",
               "ofType": null
             },
-            "isDeprecated": false,
-            "deprecationReason": null
+            "isDeprecated": true,
+            "deprecationReason": "Use `createDate` field."
           },
           {
             "name": "creator",
@@ -4537,6 +4617,18 @@
             "isDeprecated": true,
             "deprecationReason": "Use `logolURL` field."
           },
+          {
+            "name": "updateRequired",
+            "description": "Required updates on the channel, as it does not respect the community guidelines.",
+            "args": [],
+            "type": {
+              "kind": "OBJECT",
+              "name": "ChannelUpdateRequired",
+              "ofType": null
+            },
+            "isDeprecated": false,
+            "deprecationReason": null
+          },
           {
             "name": "videos",
             "description": "The videos of the channel.",
@@ -4785,7 +4877,7 @@
         "inputFields": [
           {
             "name": "avatarURL",
-            "description": "The URL of the avatar of the channel. @deprecated(reason: \"Use input field `avatarUrl`.\")",
+            "description": "@deprecated(reason: \"Use `avatarUrl` input field.\") - The URL of the avatar of the channel.",
             "type": {
               "kind": "SCALAR",
               "name": "String",
@@ -5956,6 +6048,33 @@
         "enumValues": null,
         "possibleTypes": null
       },
+      {
+        "kind": "OBJECT",
+        "name": "ChannelUpdateRequired",
+        "description": "Information about required updates on the channel.",
+        "fields": [
+          {
+            "name": "name",
+            "description": "Indicates whether the name of the channel is required to be updated.",
+            "args": [],
+            "type": {
+              "kind": "NON_NULL",
+              "name": null,
+              "ofType": {
+                "kind": "SCALAR",
+                "name": "Boolean",
+                "ofType": null
+              }
+            },
+            "isDeprecated": false,
+            "deprecationReason": null
+          }
+        ],
+        "inputFields": null,
+        "interfaces": [],
+        "enumValues": null,
+        "possibleTypes": null
+      },
       {
         "kind": "ENUM",
         "name": "ChannelsSort",
@@ -6244,6 +6363,22 @@
             "isDeprecated": true,
             "deprecationReason": "Use `creator` field."
           },
+          {
+            "name": "createDate",
+            "description": "The date and time (ISO 8601 format) when the collection was created.",
+            "args": [],
+            "type": {
+              "kind": "NON_NULL",
+              "name": null,
+              "ofType": {
+                "kind": "SCALAR",
+                "name": "DateTime",
+                "ofType": null
+              }
+            },
+            "isDeprecated": false,
+            "deprecationReason": null
+          },
           {
             "name": "createdAt",
             "description": "The creation date (DateTime ISO8601) of the collection.",
@@ -6253,8 +6388,8 @@
               "name": "DateTime",
               "ofType": null
             },
-            "isDeprecated": false,
-            "deprecationReason": null
+            "isDeprecated": true,
+            "deprecationReason": "Use `createDate` field."
           },
           {
             "name": "creator",
@@ -6528,6 +6663,22 @@
             "isDeprecated": true,
             "deprecationReason": "Use `thumbnailURL` field."
           },
+          {
+            "name": "updateDate",
+            "description": "The date and time (ISO 8601 format) when the collection was updated.",
+            "args": [],
+            "type": {
+              "kind": "NON_NULL",
+              "name": null,
+              "ofType": {
+                "kind": "SCALAR",
+                "name": "DateTime",
+                "ofType": null
+              }
+            },
+            "isDeprecated": false,
+            "deprecationReason": null
+          },
           {
             "name": "updatedAt",
             "description": "The updated date (DateTime ISO8601) of the collection.",
@@ -6537,8 +6688,8 @@
               "name": "DateTime",
               "ofType": null
             },
-            "isDeprecated": false,
-            "deprecationReason": null
+            "isDeprecated": true,
+            "deprecationReason": "Use `updateDate` field."
           },
           {
             "name": "videos",
@@ -7161,13 +7312,9 @@
             "description": "The commented story.",
             "args": [],
             "type": {
-              "kind": "NON_NULL",
-              "name": null,
-              "ofType": {
-                "kind": "UNION",
-                "name": "Story",
-                "ofType": null
-              }
+              "kind": "UNION",
+              "name": "Story",
+              "ofType": null
             },
             "isDeprecated": false,
             "deprecationReason": null
@@ -7969,6 +8116,18 @@
             "isDeprecated": false,
             "deprecationReason": null
           },
+          {
+            "name": "interactions",
+            "description": "A list of interactions.",
+            "args": [],
+            "type": {
+              "kind": "OBJECT",
+              "name": "InteractionConnection",
+              "ofType": null
+            },
+            "isDeprecated": false,
+            "deprecationReason": null
+          },
           {
             "name": "story",
             "description": "The Story.",
@@ -8144,6 +8303,18 @@
             "isDeprecated": false,
             "deprecationReason": null
           },
+          {
+            "name": "id",
+            "description": "Filter conversations by id.",
+            "type": {
+              "kind": "INPUT_OBJECT",
+              "name": "IDOperator",
+              "ofType": null
+            },
+            "defaultValue": null,
+            "isDeprecated": false,
+            "deprecationReason": null
+          },
           {
             "name": "story",
             "description": "Filter conversations by story.",
@@ -8155,6 +8326,18 @@
             "defaultValue": null,
             "isDeprecated": false,
             "deprecationReason": null
+          },
+          {
+            "name": "storyId",
+            "description": "Filter conversations by story ID.",
+            "type": {
+              "kind": "INPUT_OBJECT",
+              "name": "IDOperator",
+              "ofType": null
+            },
+            "defaultValue": null,
+            "isDeprecated": false,
+            "deprecationReason": null
           }
         ],
         "interfaces": null,
@@ -8388,7 +8571,19 @@
           },
           {
             "name": "endAt",
-            "description": "The end date and time (DateTime ISO8601) of the rule if enabled.",
+            "description": "@deprecated(reason: \"Use `endDate` input field.\") - The end date and time (DateTime ISO8601) of the rule if enabled.",
+            "type": {
+              "kind": "SCALAR",
+              "name": "DateTime",
+              "ofType": null
+            },
+            "defaultValue": null,
+            "isDeprecated": false,
+            "deprecationReason": null
+          },
+          {
+            "name": "endDate",
+            "description": "The date and time (ISO 8601 format) when the rule ends (if enabled).",
             "type": {
               "kind": "SCALAR",
               "name": "DateTime",
@@ -8428,7 +8623,19 @@
           },
           {
             "name": "startAt",
-            "description": "Start date and time (DateTime ISO8601) of the rule if enabled.",
+            "description": "@deprecated(reason: \"Use `endDate` input field.\") - Start date and time (DateTime ISO8601) of the rule if enabled.",
+            "type": {
+              "kind": "SCALAR",
+              "name": "DateTime",
+              "ofType": null
+            },
+            "defaultValue": null,
+            "isDeprecated": false,
+            "deprecationReason": null
+          },
+          {
+            "name": "startDate",
+            "description": "The date and time (ISO 8601 format) when the rule starts (if enabled).",
             "type": {
               "kind": "SCALAR",
               "name": "DateTime",
@@ -8905,7 +9112,7 @@
           },
           {
             "name": "name",
-            "description": "The name of the user. @deprecated(reason: Use `firstName` and `lastName` respectively).",
+            "description": "@deprecated(reason: \"Use `firstName` and `lastName` respectively.\") - The name of the user.",
             "type": {
               "kind": "SCALAR",
               "name": "String",
@@ -9967,8 +10174,8 @@
         "description": "Represents an experiment (A/B testing) matched/enabled for a client.",
         "fields": [
           {
-            "name": "endingAt",
-            "description": "The end date and time (DateTime ISO8601) of the experiment if enabled.",
+            "name": "endDate",
+            "description": "The date and time (ISO 8601 format) when the experiment ends (if enabled).",
             "args": [],
             "type": {
               "kind": "SCALAR",
@@ -9978,6 +10185,18 @@
             "isDeprecated": false,
             "deprecationReason": null
           },
+          {
+            "name": "endingAt",
+            "description": "The end date and time (DateTime ISO8601) of the experiment if enabled.",
+            "args": [],
+            "type": {
+              "kind": "SCALAR",
+              "name": "DateTime",
+              "ofType": null
+            },
+            "isDeprecated": true,
+            "deprecationReason": "Use `endDate` field."
+          },
           {
             "name": "id",
             "description": "The ID of the object.",
@@ -10018,6 +10237,18 @@
             "isDeprecated": false,
             "deprecationReason": null
           },
+          {
+            "name": "reviewedAt",
+            "description": "The reviewed date (DateTime ISO8601) of the media.",
+            "args": [],
+            "type": {
+              "kind": "SCALAR",
+              "name": "DateTime",
+              "ofType": null
+            },
+            "isDeprecated": true,
+            "deprecationReason": "Use `reviewDate` field."
+          },
           {
             "name": "tags",
             "description": "The tags associated to the experiment. Useful for filtering.",
@@ -10347,7 +10578,7 @@
       {
         "kind": "OBJECT",
         "name": "Favorite",
-        "description": "Represents a Favorite (an interaction).",
+        "description": "Represents a Favorite (an activity).",
         "fields": [
           {
             "name": "id",
@@ -11527,6 +11758,22 @@
             "isDeprecated": false,
             "deprecationReason": null
           },
+          {
+            "name": "followDate",
+            "description": "The date and time (ISO 8601 format) when the channel was followed.",
+            "args": [],
+            "type": {
+              "kind": "NON_NULL",
+              "name": null,
+              "ofType": {
+                "kind": "SCALAR",
+                "name": "DateTime",
+                "ofType": null
+              }
+            },
+            "isDeprecated": false,
+            "deprecationReason": null
+          },
           {
             "name": "followedAt",
             "description": "The date and time (DateTime ISO8601) the channel was followed at.",
@@ -11536,8 +11783,8 @@
               "name": "DateTime",
               "ofType": null
             },
-            "isDeprecated": false,
-            "deprecationReason": null
+            "isDeprecated": true,
+            "deprecationReason": "Use `followDate` field"
           },
           {
             "name": "id",
@@ -11711,6 +11958,22 @@
         "name": "FollowedTopic",
         "description": "Information about a topic that is being followed by a user.",
         "fields": [
+          {
+            "name": "followDate",
+            "description": "The date and time (ISO 8601 format) when the topic was followed.",
+            "args": [],
+            "type": {
+              "kind": "NON_NULL",
+              "name": null,
+              "ofType": {
+                "kind": "SCALAR",
+                "name": "DateTime",
+                "ofType": null
+              }
+            },
+            "isDeprecated": false,
+            "deprecationReason": null
+          },
           {
             "name": "followedAt",
             "description": "The date and time (Date ISO8601) the topic was followed at.",
@@ -13164,7 +13427,7 @@
               "name": null,
               "ofType": {
                 "kind": "INPUT_OBJECT",
-                "name": "InteractionOperator",
+                "name": "ActivityOperator",
                 "ofType": null
               }
             },
@@ -13417,60 +13680,121 @@
         "possibleTypes": null
       },
       {
-        "kind": "ENUM",
+        "kind": "UNION",
         "name": "Interaction",
-        "description": "The possible values for an Interaction.",
+        "description": "Types that can be an Interaction.",
         "fields": null,
         "inputFields": null,
         "interfaces": null,
-        "enumValues": [
+        "enumValues": null,
+        "possibleTypes": [
           {
-            "name": "FAVORITED",
-            "description": "An interaction that is `favorited`.",
+            "kind": "OBJECT",
+            "name": "Comment",
+            "ofType": null
+          },
+          {
+            "kind": "OBJECT",
+            "name": "Reaction",
+            "ofType": null
+          }
+        ]
+      },
+      {
+        "kind": "OBJECT",
+        "name": "InteractionConnection",
+        "description": "A connection to a list of items.",
+        "fields": [
+          {
+            "name": "edges",
+            "description": "A list of edges.",
+            "args": [],
+            "type": {
+              "kind": "NON_NULL",
+              "name": null,
+              "ofType": {
+                "kind": "LIST",
+                "name": null,
+                "ofType": {
+                  "kind": "OBJECT",
+                  "name": "InteractionEdge",
+                  "ofType": null
+                }
+              }
+            },
             "isDeprecated": false,
             "deprecationReason": null
           },
           {
-            "name": "LIKED",
-            "description": "An interaction that is `liked`.",
+            "name": "metadata",
+            "description": "The metadata of the connection.",
+            "args": [],
+            "type": {
+              "kind": "NON_NULL",
+              "name": null,
+              "ofType": {
+                "kind": "OBJECT",
+                "name": "Metadata",
+                "ofType": null
+              }
+            },
             "isDeprecated": false,
             "deprecationReason": null
           },
           {
-            "name": "SAVED",
-            "description": "An interaction that is `saved`.",
+            "name": "pageInfo",
+            "description": "Information to aid in pagination.",
+            "args": [],
+            "type": {
+              "kind": "NON_NULL",
+              "name": null,
+              "ofType": {
+                "kind": "OBJECT",
+                "name": "PageInfo",
+                "ofType": null
+              }
+            },
             "isDeprecated": false,
             "deprecationReason": null
           },
           {
-            "name": "WATCHED",
-            "description": "An interaction that is `watched`.",
+            "name": "totalCount",
+            "description": "The total number of items. A null value indicates that the information is unavailable for the connection.",
+            "args": [],
+            "type": {
+              "kind": "SCALAR",
+              "name": "Int",
+              "ofType": null
+            },
             "isDeprecated": false,
             "deprecationReason": null
           }
         ],
+        "inputFields": null,
+        "interfaces": [],
+        "enumValues": null,
         "possibleTypes": null
       },
       {
-        "kind": "INPUT_OBJECT",
-        "name": "InteractionOperator",
-        "description": "The available input fields of an Interaction operator.",
-        "fields": null,
-        "inputFields": [
+        "kind": "OBJECT",
+        "name": "InteractionEdge",
+        "description": "An edge in a connection.",
+        "fields": [
           {
-            "name": "eq",
-            "description": "Short for equal, must match the given data exactly.",
+            "name": "node",
+            "description": "The item at the end of the edge.",
+            "args": [],
             "type": {
-              "kind": "ENUM",
+              "kind": "UNION",
               "name": "Interaction",
               "ofType": null
             },
-            "defaultValue": null,
             "isDeprecated": false,
             "deprecationReason": null
           }
         ],
-        "interfaces": null,
+        "inputFields": null,
+        "interfaces": [],
         "enumValues": null,
         "possibleTypes": null
       },
@@ -14365,6 +14689,22 @@
             "isDeprecated": false,
             "deprecationReason": null
           },
+          {
+            "name": "createDate",
+            "description": "The date and time (ISO 8601 format) when the live was last aired (if never aired, then when it was created).",
+            "args": [],
+            "type": {
+              "kind": "NON_NULL",
+              "name": null,
+              "ofType": {
+                "kind": "SCALAR",
+                "name": "DateTime",
+                "ofType": null
+              }
+            },
+            "isDeprecated": false,
+            "deprecationReason": null
+          },
           {
             "name": "createdAt",
             "description": "The last aired date (DateTime ISO8601), if never aired, then the creation date (DateTime ISO8601) of the live.",
@@ -14374,8 +14714,8 @@
               "name": "DateTime",
               "ofType": null
             },
-            "isDeprecated": false,
-            "deprecationReason": null
+            "isDeprecated": true,
+            "deprecationReason": "Use `createDate` field."
           },
           {
             "name": "creator",
@@ -14471,6 +14811,18 @@
               "name": "DateTime",
               "ofType": null
             },
+            "isDeprecated": true,
+            "deprecationReason": "Use `endDate` field."
+          },
+          {
+            "name": "endDate",
+            "description": "The date and time (ISO 8601 format) when the live ends.",
+            "args": [],
+            "type": {
+              "kind": "SCALAR",
+              "name": "DateTime",
+              "ofType": null
+            },
             "isDeprecated": false,
             "deprecationReason": null
           },
@@ -14904,6 +15256,18 @@
               "name": "DateTime",
               "ofType": null
             },
+            "isDeprecated": true,
+            "deprecationReason": "Use `startDate` field."
+          },
+          {
+            "name": "startDate",
+            "description": "The date and time (ISO 8601 format) when the live starts.",
+            "args": [],
+            "type": {
+              "kind": "SCALAR",
+              "name": "DateTime",
+              "ofType": null
+            },
             "isDeprecated": false,
             "deprecationReason": null
           },
@@ -15124,6 +15488,22 @@
             "isDeprecated": false,
             "deprecationReason": null
           },
+          {
+            "name": "updateDate",
+            "description": "The date and time (ISO 8601 format) when the live was updated.",
+            "args": [],
+            "type": {
+              "kind": "NON_NULL",
+              "name": null,
+              "ofType": {
+                "kind": "SCALAR",
+                "name": "DateTime",
+                "ofType": null
+              }
+            },
+            "isDeprecated": false,
+            "deprecationReason": null
+          },
           {
             "name": "updatedAt",
             "description": "The updated date (DateTime ISO8601) of the live.",
@@ -15133,8 +15513,8 @@
               "name": "DateTime",
               "ofType": null
             },
-            "isDeprecated": false,
-            "deprecationReason": null
+            "isDeprecated": true,
+            "deprecationReason": "Use `updateDate` field."
           },
           {
             "name": "url",
@@ -16576,8 +16956,8 @@
             "deprecationReason": null
           },
           {
-            "name": "reviewedAt",
-            "description": "The reviewed date (DateTime ISO8601) of the media.",
+            "name": "reviewDate",
+            "description": "The date and time (ISO 8601 format) when the media was reviewed.",
             "args": [],
             "type": {
               "kind": "SCALAR",
@@ -16586,6 +16966,18 @@
             },
             "isDeprecated": false,
             "deprecationReason": null
+          },
+          {
+            "name": "reviewedAt",
+            "description": "The reviewed date (DateTime ISO8601) of the media.",
+            "args": [],
+            "type": {
+              "kind": "SCALAR",
+              "name": "DateTime",
+              "ofType": null
+            },
+            "isDeprecated": true,
+            "deprecationReason": "Use `reviewDate` field."
           }
         ],
         "inputFields": null,
@@ -21648,6 +22040,22 @@
         "name": "PartnerReportFile",
         "description": "A partner report file.",
         "fields": [
+          {
+            "name": "createDate",
+            "description": "The date and time (ISO 8601 format) when the report was created.",
+            "args": [],
+            "type": {
+              "kind": "NON_NULL",
+              "name": null,
+              "ofType": {
+                "kind": "SCALAR",
+                "name": "DateTime",
+                "ofType": null
+              }
+            },
+            "isDeprecated": false,
+            "deprecationReason": null
+          },
           {
             "name": "createdAt",
             "description": "The creation date of the report.",
@@ -21657,8 +22065,8 @@
               "name": "DateTime",
               "ofType": null
             },
-            "isDeprecated": false,
-            "deprecationReason": null
+            "isDeprecated": true,
+            "deprecationReason": "Use `createDate` field."
           },
           {
             "name": "downloadLinks",
@@ -25543,6 +25951,22 @@
         "name": "Reaction",
         "description": "Represents a Reaction in a recording format.",
         "fields": [
+          {
+            "name": "createDate",
+            "description": "The date and time (ISO 8601 format) when the reaction was created.",
+            "args": [],
+            "type": {
+              "kind": "NON_NULL",
+              "name": null,
+              "ofType": {
+                "kind": "SCALAR",
+                "name": "DateTime",
+                "ofType": null
+              }
+            },
+            "isDeprecated": false,
+            "deprecationReason": null
+          },
           {
             "name": "createdAt",
             "description": "The creation date (DateTime ISO8601) of the reaction.",
@@ -25552,8 +25976,8 @@
               "name": "DateTime",
               "ofType": null
             },
-            "isDeprecated": false,
-            "deprecationReason": null
+            "isDeprecated": true,
+            "deprecationReason": "Use `createDate` field."
           },
           {
             "name": "creator",
@@ -27743,6 +28167,22 @@
         "name": "Recording",
         "description": "Represents a node with a Recording.",
         "fields": [
+          {
+            "name": "createDate",
+            "description": "The date and time (ISO 8601 format) when the recording was created.",
+            "args": [],
+            "type": {
+              "kind": "NON_NULL",
+              "name": null,
+              "ofType": {
+                "kind": "SCALAR",
+                "name": "DateTime",
+                "ofType": null
+              }
+            },
+            "isDeprecated": false,
+            "deprecationReason": null
+          },
           {
             "name": "createdAt",
             "description": "The creation date (DateTime ISO8601) of the recording.",
@@ -27752,8 +28192,8 @@
               "name": "DateTime",
               "ofType": null
             },
-            "isDeprecated": false,
-            "deprecationReason": null
+            "isDeprecated": true,
+            "deprecationReason": "Use `createDate` field."
           },
           {
             "name": "reactions",
@@ -27792,6 +28232,18 @@
             "isDeprecated": false,
             "deprecationReason": null
           },
+          {
+            "name": "shareUrls",
+            "description": "The share urls of the recording.",
+            "args": [],
+            "type": {
+              "kind": "INTERFACE",
+              "name": "ShareUrls",
+              "ofType": null
+            },
+            "isDeprecated": false,
+            "deprecationReason": null
+          },
           {
             "name": "thumbnail",
             "description": "The URL of the recording thumbnail image.",
@@ -27842,8 +28294,8 @@
               "name": "String",
               "ofType": null
             },
-            "isDeprecated": false,
-            "deprecationReason": null
+            "isDeprecated": true,
+            "deprecationReason": "Use `shareUrls.permalink` field."
           }
         ],
         "inputFields": null,
@@ -28966,7 +29418,7 @@
           },
           {
             "name": "type",
-            "description": "The type of report. Valid types are (child_abuse, copyrightowner, crime_apology, disinformation, harmful_for_children, hateful_content, porn, spam, terrorism, violent). @deprecated(reason: \"Use input field `violation`.\").",
+            "description": "@deprecated(reason: \"Use `violation` input field.\") - The type of report. Valid types are (child_abuse, copyrightowner, crime_apology, disinformation, harmful_for_children, hateful_content, porn, spam, terrorism, violent).",
             "type": {
               "kind": "SCALAR",
               "name": "String",
@@ -29513,7 +29965,7 @@
         "fields": [
           {
             "name": "complexCondition",
-            "description": "Indicates if the condition is a complex condition, a.k.a custom made.",
+            "description": "Indicates if the rule has a complex (customized) condition.",
             "args": [],
             "type": {
               "kind": "SCALAR",
@@ -29525,7 +29977,7 @@
           },
           {
             "name": "condition",
-            "description": "The detailed logic of the feature.",
+            "description": "The detailed logic of the rule.",
             "args": [],
             "type": {
               "kind": "SCALAR",
@@ -29535,6 +29987,22 @@
             "isDeprecated": false,
             "deprecationReason": null
           },
+          {
+            "name": "createDate",
+            "description": "The date and time (ISO 8601 format) when the rule was created.",
+            "args": [],
+            "type": {
+              "kind": "NON_NULL",
+              "name": null,
+              "ofType": {
+                "kind": "SCALAR",
+                "name": "DateTime",
+                "ofType": null
+              }
+            },
+            "isDeprecated": false,
+            "deprecationReason": null
+          },
           {
             "name": "createdAt",
             "description": "The creation date and time (DateTime ISO8601) of the feature.",
@@ -29544,12 +30012,12 @@
               "name": "DateTime",
               "ofType": null
             },
-            "isDeprecated": false,
-            "deprecationReason": null
+            "isDeprecated": true,
+            "deprecationReason": "Use `createDate` field."
           },
           {
             "name": "creatorXid",
-            "description": "The unique id of the user that created the feature.",
+            "description": "The unique id of the user that created the rule.",
             "args": [],
             "type": {
               "kind": "SCALAR",
@@ -29561,7 +30029,7 @@
           },
           {
             "name": "description",
-            "description": "A human-readable description of the feature.",
+            "description": "A human-readable description of the rule.",
             "args": [],
             "type": {
               "kind": "SCALAR",
@@ -29573,7 +30041,7 @@
           },
           {
             "name": "enabled",
-            "description": "Whether the feature is enabled or not.",
+            "description": "Indicated whether the feature is enabled.",
             "args": [],
             "type": {
               "kind": "SCALAR",
@@ -29592,6 +30060,18 @@
               "name": "DateTime",
               "ofType": null
             },
+            "isDeprecated": true,
+            "deprecationReason": "Use `endDate` field"
+          },
+          {
+            "name": "endDate",
+            "description": "The date and time (ISO 8601 format) when the rule ends.",
+            "args": [],
+            "type": {
+              "kind": "SCALAR",
+              "name": "DateTime",
+              "ofType": null
+            },
             "isDeprecated": false,
             "deprecationReason": null
           },
@@ -29625,7 +30105,7 @@
           },
           {
             "name": "name",
-            "description": "The name for the feature.",
+            "description": "The name of the rule.",
             "args": [],
             "type": {
               "kind": "SCALAR",
@@ -29644,6 +30124,18 @@
               "name": "DateTime",
               "ofType": null
             },
+            "isDeprecated": true,
+            "deprecationReason": "Use `starDate` field"
+          },
+          {
+            "name": "startDate",
+            "description": "The date and time (ISO 8601 format) when the rule starts.",
+            "args": [],
+            "type": {
+              "kind": "SCALAR",
+              "name": "DateTime",
+              "ofType": null
+            },
             "isDeprecated": false,
             "deprecationReason": null
           },
@@ -29684,6 +30176,22 @@
             "isDeprecated": false,
             "deprecationReason": null
           },
+          {
+            "name": "updateDate",
+            "description": "The date and time (ISO 8601 format) when the rule was updated.",
+            "args": [],
+            "type": {
+              "kind": "NON_NULL",
+              "name": null,
+              "ofType": {
+                "kind": "SCALAR",
+                "name": "DateTime",
+                "ofType": null
+              }
+            },
+            "isDeprecated": false,
+            "deprecationReason": null
+          },
           {
             "name": "updatedAt",
             "description": "The last update date-time of the feature.",
@@ -29693,8 +30201,8 @@
               "name": "DateTime",
               "ofType": null
             },
-            "isDeprecated": false,
-            "deprecationReason": null
+            "isDeprecated": true,
+            "deprecationReason": "Use `updateDate` field."
           },
           {
             "name": "uuid",
@@ -32216,6 +32724,22 @@
             "isDeprecated": false,
             "deprecationReason": null
           },
+          {
+            "name": "createDate",
+            "description": "The date and time (ISO 8601 format) when the topic was created.",
+            "args": [],
+            "type": {
+              "kind": "NON_NULL",
+              "name": null,
+              "ofType": {
+                "kind": "SCALAR",
+                "name": "DateTime",
+                "ofType": null
+              }
+            },
+            "isDeprecated": false,
+            "deprecationReason": null
+          },
           {
             "name": "createdAt",
             "description": "The creation date (DateTime ISO8601) of the topic.",
@@ -32225,8 +32749,8 @@
               "name": "DateTime",
               "ofType": null
             },
-            "isDeprecated": false,
-            "deprecationReason": null
+            "isDeprecated": true,
+            "deprecationReason": "Use `createDate` field."
           },
           {
             "name": "id",
@@ -32341,6 +32865,22 @@
             "isDeprecated": true,
             "deprecationReason": "Use `coverURL` field."
           },
+          {
+            "name": "updateDate",
+            "description": "The date and time (ISO 8601 format) when the topic was updated.",
+            "args": [],
+            "type": {
+              "kind": "NON_NULL",
+              "name": null,
+              "ofType": {
+                "kind": "SCALAR",
+                "name": "DateTime",
+                "ofType": null
+              }
+            },
+            "isDeprecated": false,
+            "deprecationReason": null
+          },
           {
             "name": "updatedAt",
             "description": "The update date (DateTime ISO8601) of the topic.",
@@ -32350,8 +32890,8 @@
               "name": "DateTime",
               "ofType": null
             },
-            "isDeprecated": false,
-            "deprecationReason": null
+            "isDeprecated": true,
+            "deprecationReason": "Use `updateDate` field."
           },
           {
             "name": "url",
@@ -33388,7 +33928,19 @@
           },
           {
             "name": "endAt",
-            "description": "End date and time (DateTime ISO8601) of the rule if enabled.",
+            "description": "@deprecated(reason: \"Use `endDate` input field.\") - End date and time (DateTime ISO8601) of the rule if enabled.",
+            "type": {
+              "kind": "SCALAR",
+              "name": "DateTime",
+              "ofType": null
+            },
+            "defaultValue": null,
+            "isDeprecated": false,
+            "deprecationReason": null
+          },
+          {
+            "name": "endDate",
+            "description": "The date and time (ISO 8601 format) when the rule ends.",
             "type": {
               "kind": "SCALAR",
               "name": "DateTime",
@@ -33450,6 +34002,18 @@
             "isDeprecated": false,
             "deprecationReason": null
           },
+          {
+            "name": "startDate",
+            "description": "@deprecated(reason: \"Use `startDate` input field.\") - The date and time (ISO 8601 format) when the rule starts.",
+            "type": {
+              "kind": "SCALAR",
+              "name": "DateTime",
+              "ofType": null
+            },
+            "defaultValue": null,
+            "isDeprecated": false,
+            "deprecationReason": null
+          },
           {
             "name": "tags",
             "description": "The tags associated with the rule. Useful for filtering.",
@@ -34197,7 +34761,7 @@
           },
           {
             "name": "email",
-            "description": "The email address of the user. This field is deprecated: Use mutation `emailChangeRequest`.",
+            "description": "@deprecated(reason: \"Use mutation `emailChangeRequest`.\") - The email address of the user.",
             "type": {
               "kind": "SCALAR",
               "name": "String",
@@ -34281,7 +34845,7 @@
           },
           {
             "name": "name",
-            "description": "The name of the user. @deprecated(reason: Use `firstName` and `lastName` respectively).",
+            "description": "@deprecated(reason: \"Use `firstName` and `lastName` respectively.\") - The name of the user.",
             "type": {
               "kind": "SCALAR",
               "name": "String",
@@ -34968,6 +35532,22 @@
             "isDeprecated": true,
             "deprecationReason": "Use `channel.banner`."
           },
+          {
+            "name": "createDate",
+            "description": "The date and time (ISO 8601 format) when the user was created.",
+            "args": [],
+            "type": {
+              "kind": "NON_NULL",
+              "name": null,
+              "ofType": {
+                "kind": "SCALAR",
+                "name": "DateTime",
+                "ofType": null
+              }
+            },
+            "isDeprecated": false,
+            "deprecationReason": null
+          },
           {
             "name": "createdAt",
             "description": "The creation date (DateTime ISO8601) of the user.",
@@ -34977,8 +35557,8 @@
               "name": "DateTime",
               "ofType": null
             },
-            "isDeprecated": false,
-            "deprecationReason": null
+            "isDeprecated": true,
+            "deprecationReason": "Use `createDate` field."
           },
           {
             "name": "email",
@@ -38045,6 +38625,22 @@
             "isDeprecated": false,
             "deprecationReason": null
           },
+          {
+            "name": "createDate",
+            "description": "The date and time (ISO 8601 format) when the video was created.",
+            "args": [],
+            "type": {
+              "kind": "NON_NULL",
+              "name": null,
+              "ofType": {
+                "kind": "SCALAR",
+                "name": "DateTime",
+                "ofType": null
+              }
+            },
+            "isDeprecated": false,
+            "deprecationReason": null
+          },
           {
             "name": "createdAt",
             "description": "The creation date (DateTime ISO8601) of the video.",
@@ -38054,8 +38650,8 @@
               "name": "DateTime",
               "ofType": null
             },
-            "isDeprecated": false,
-            "deprecationReason": null
+            "isDeprecated": true,
+            "deprecationReason": "Use `createDate` field."
           },
           {
             "name": "creator",
@@ -39125,6 +39721,22 @@
             "isDeprecated": false,
             "deprecationReason": null
           },
+          {
+            "name": "updateDate",
+            "description": "The date and time (ISO 8601 format) when the video was updated.",
+            "args": [],
+            "type": {
+              "kind": "NON_NULL",
+              "name": null,
+              "ofType": {
+                "kind": "SCALAR",
+                "name": "DateTime",
+                "ofType": null
+              }
+            },
+            "isDeprecated": false,
+            "deprecationReason": null
+          },
           {
             "name": "updatedAt",
             "description": "The last update date (DateTime ISO8601) of the video.",
@@ -39134,8 +39746,8 @@
               "name": "DateTime",
               "ofType": null
             },
-            "isDeprecated": false,
-            "deprecationReason": null
+            "isDeprecated": true,
+            "deprecationReason": "Use `updateDate` field."
           },
           {
             "name": "uploadInfo",
@@ -40861,7 +41473,7 @@
       {
         "kind": "OBJECT",
         "name": "Watch",
-        "description": "Represents a Watch (an interaction).",
+        "description": "Represents a Watch (an activity).",
         "fields": [
           {
             "name": "id",
diff --git a/types/plugin.d.ts b/types/plugin.d.ts
index f6c210772fd9b4be8d7d55faa6ba8f7d6c532973..483d0693668b95756d309a927060d9e51a3eef73 100644
--- a/types/plugin.d.ts
+++ b/types/plugin.d.ts
@@ -1418,6 +1418,12 @@ interface IHttp {
     * @return {void}
     **/
     setDefaultHeaders(headers: Map<string, string>): void
+
+    /**
+     * @param {Boolean} allow
+     * @return {void}
+     * */
+    setDoAllowNewCookies(allow: boolean): void
 }