@@ -796,9 +796,26 @@ export type ItemHighlights = {
796796 url ?: Maybe < Array < Maybe < Scalars [ 'String' ] > > > ;
797797} ;
798798
799+ export type ItemNotFound = {
800+ __typename ?: 'ItemNotFound' ;
801+ message ?: Maybe < Scalars [ 'String' ] > ;
802+ } ;
803+
799804/** Union type for items that may or may not be processed */
800805export type ItemResult = Item | PendingItem ;
801806
807+ export type ItemSummary = {
808+ __typename ?: 'ItemSummary' ;
809+ authors ?: Maybe < Array < Author > > ;
810+ datePublished ?: Maybe < Scalars [ 'ISOString' ] > ;
811+ domain ?: Maybe < DomainMetadata > ;
812+ excerpt ?: Maybe < Scalars [ 'String' ] > ;
813+ image ?: Maybe < Image > ;
814+ item ?: Maybe < Item > ;
815+ title ?: Maybe < Scalars [ 'String' ] > ;
816+ url : Scalars [ 'Url' ] ;
817+ } ;
818+
802819/** A label used to mark and categorize an Entity (e.g. Collection). */
803820export type Label = {
804821 __typename ?: 'Label' ;
@@ -1709,6 +1726,31 @@ export enum PocketSaveStatus {
17091726 Unread = 'UNREAD'
17101727}
17111728
1729+ export enum PremiumFeature {
1730+ /** Feature where you get an ad-free experience */
1731+ AdFree = 'AD_FREE' ,
1732+ /** Feature where you can highlight articles */
1733+ Annotations = 'ANNOTATIONS' ,
1734+ /** Feature where pocket saves permanent copies of all your saves */
1735+ PermanentLibrary = 'PERMANENT_LIBRARY' ,
1736+ /** Feature where pocket's search is enhanced */
1737+ PremiumSearch = 'PREMIUM_SEARCH' ,
1738+ /** Feature where pocket suggests tags */
1739+ SuggestedTags = 'SUGGESTED_TAGS'
1740+ }
1741+
1742+ export enum PremiumStatus {
1743+ /**
1744+ * User has premium and its active
1745+ * NOTE: User will still show as active if they turn off auto-renew or have otherwise canceled but the expiration date hasn't hit yet
1746+ */
1747+ Active = 'ACTIVE' ,
1748+ /** User has had premium, but it is expired */
1749+ Expired = 'EXPIRED' ,
1750+ /** User has never had premium */
1751+ Never = 'NEVER'
1752+ }
1753+
17121754/** The publisher that the curation team set for the syndicated article */
17131755export type Publisher = {
17141756 __typename ?: 'Publisher' ;
@@ -1811,6 +1853,14 @@ export type Query = {
18111853 listTopics : Array < Topic > ;
18121854 /** Get a slate of ranked recommendations for the Firefox New Tab. Currently supports the Italy, France, and Spain markets. */
18131855 newTabSlate : CorpusSlate ;
1856+ /**
1857+ * Resolve Reader View links which might point to SavedItems that do not
1858+ * exist, aren't in the Pocket User's list, or are requested by a logged-out
1859+ * user (or user without a Pocket Account).
1860+ * Fetches data to create an interstitial page/modal so the visitor can click
1861+ * through to the shared site.
1862+ */
1863+ readerSlug : ReaderViewResult ;
18141864 /** List all topics that the user can express a preference for. */
18151865 recommendationPreferenceTopics : Array < Topic > ;
18161866 scheduledSurface : ScheduledSurface ;
@@ -1953,6 +2003,15 @@ export type QueryNewTabSlateArgs = {
19532003} ;
19542004
19552005
2006+ /**
2007+ * Default root level query type. All authorization checks are done in these queries.
2008+ * TODO: These belong in a seperate User Service that provides a User object (the user settings will probably exist there too)
2009+ */
2010+ export type QueryReaderSlugArgs = {
2011+ slug : Scalars [ 'ID' ] ;
2012+ } ;
2013+
2014+
19562015/**
19572016 * Default root level query type. All authorization checks are done in these queries.
19582017 * TODO: These belong in a seperate User Service that provides a User object (the user settings will probably exist there too)
@@ -2007,6 +2066,24 @@ export type QueryUnleashAssignmentsArgs = {
20072066 context : UnleashContext ;
20082067} ;
20092068
2069+ export type ReaderFallback = ItemNotFound | ReaderInterstitial ;
2070+
2071+ export type ReaderInterstitial = {
2072+ __typename ?: 'ReaderInterstitial' ;
2073+ itemCard ?: Maybe < ItemSummary > ;
2074+ } ;
2075+
2076+ export type ReaderViewResult = {
2077+ __typename ?: 'ReaderViewResult' ;
2078+ fallbackPage ?: Maybe < ReaderFallback > ;
2079+ /**
2080+ * The SavedItem referenced by this reader view slug, if it
2081+ * is in the Pocket User's list.
2082+ */
2083+ savedItem ?: Maybe < SavedItem > ;
2084+ slug : Scalars [ 'ID' ] ;
2085+ } ;
2086+
20102087export type RecItUserProfile = {
20112088 userModels : Array < Scalars [ 'String' ] > ;
20122089} ;
@@ -3106,6 +3183,8 @@ export type User = {
31063183 email ?: Maybe < Scalars [ 'String' ] > ;
31073184 /** The users first name */
31083185 firstName ?: Maybe < Scalars [ 'String' ] > ;
3186+ /** User id, provided by the user service. */
3187+ id : Scalars [ 'ID' ] ;
31093188 /** Indicates if a user is FxA or not */
31103189 isFxa ?: Maybe < Scalars [ 'Boolean' ] > ;
31113190 /** The user's premium status */
@@ -3114,6 +3193,10 @@ export type User = {
31143193 lastName ?: Maybe < Scalars [ 'String' ] > ;
31153194 /** The users first name and last name combined */
31163195 name ?: Maybe < Scalars [ 'String' ] > ;
3196+ /** Premium features that a user has access to */
3197+ premiumFeatures ?: Maybe < Array < Maybe < PremiumFeature > > > ;
3198+ /** Current premium status of the user */
3199+ premiumStatus ?: Maybe < PremiumStatus > ;
31173200 /** Preferences for recommendations that the user has explicitly set. */
31183201 recommendationPreferences ?: Maybe < UserRecommendationPreferences > ;
31193202 /** Get a PocketSave(s) by its id(s) */
@@ -3137,6 +3220,18 @@ export type User = {
31373220 searchSavedItemsByOffset ?: Maybe < SavedItemSearchResultPage > ;
31383221 /** Get a paginated listing of all a user's Tags */
31393222 tags ?: Maybe < TagConnection > ;
3223+ /**
3224+ * Get all tag names for a user.
3225+ * If syncSince is passed, it will only return tags if changes
3226+ * to a user's tags have occurred after syncSince. It will return
3227+ * all of the user's tags (not just the changes).
3228+ *
3229+ * Yes, this is bad graphql design. It's serving a specific
3230+ * REST API which has unlimited SQL queries, and we do not want to
3231+ * make it possible to request every associated SavedItem
3232+ * node on a tag object. Just biting the bullet on this one.
3233+ */
3234+ tagsList ?: Maybe < Array < Scalars [ 'String' ] > > ;
31403235 /** The public username for the user */
31413236 username ?: Maybe < Scalars [ 'String' ] > ;
31423237} ;
@@ -3217,6 +3312,12 @@ export type UserTagsArgs = {
32173312 pagination ?: InputMaybe < PaginationInput > ;
32183313} ;
32193314
3315+
3316+ /** Resolve by reference the User entity in this graph to provide user data with public lists. */
3317+ export type UserTagsListArgs = {
3318+ syncSince ?: InputMaybe < Scalars [ 'ISOString' ] > ;
3319+ } ;
3320+
32203321export type UserRecommendationPreferences = {
32213322 __typename ?: 'UserRecommendationPreferences' ;
32223323 /** Topics that the user expressed interest in. */
0 commit comments