diff --git a/package.json b/package.json index 765639eeb8..2a16ab6c2b 100644 --- a/package.json +++ b/package.json @@ -48,7 +48,8 @@ "git push --follow-tags && env EMISSION_ROOT=\"$(pwd)\" pod repo push artsy --allow-warnings --use-json --skip-import-validation", "postinstall": "sed -i '' 's/#import /#import \"RCTValueAnimatedNode.h\"/' ./node_modules/react-native/Libraries/NativeAnimation/RCTNativeAnimatedNodesManager.h && ./scripts/post_installs.sh || true", - "prestorybook": "rnstl" + "prestorybook": "rnstl", + "prepare": "patch-package" }, "repository": { "type": "git", @@ -62,6 +63,10 @@ }, "homepage": "https://github.com/artsy/emission#readme", "files": ["index.js", "data", "lib"], + "resolutions": { + "graphql": "^0.12.3", + "relay-runtime": "https://github.com/alloy/relay/releases/download/v1.5.0-alpha.4/relay-runtime-1.5.0-alpha.4.tgz" + }, "dependencies": { "lodash": "^4.17.4", "moment": "^2.19.4", @@ -73,9 +78,9 @@ "react-native-parallax-scroll-view": "https://github.com/orta/react-native-parallax-scroll-view", "react-native-scrollable-tab-view": "^0.8.0", "react-native-sentry": "^0.30.2", - "react-relay": "https://github.com/alloy/relay/releases/download/v1.3.0-artsy/react-relay-1.3.0-artsy.1.tgz", + "react-relay": "https://github.com/alloy/relay/releases/download/v1.5.0-alpha.4/react-relay-1.5.0-alpha.4.tgz", "react-tracking": "^5.0.0", - "relay-runtime": "https://github.com/alloy/relay/releases/download/v1.3.0-artsy/relay-runtime-artsy.1.tgz", + "relay-runtime": "https://github.com/alloy/relay/releases/download/v1.5.0-alpha.4/relay-runtime-1.5.0-alpha.4.tgz", "remove-markdown": "0.1.0", "styled-components": "^2.0.0" }, @@ -93,7 +98,7 @@ "awesome-typescript-loader": "^3.2.3", "babel-jest": "^18.0.0", "babel-plugin-relay": - "https://github.com/alloy/relay/releases/download/v1.3.0-artsy/babel-plugin-relay-1.3.0-artsy.1.tgz", + "https://github.com/alloy/relay/releases/download/v1.5.0-alpha.4/babel-plugin-relay-1.5.0-alpha.4.tgz", "babel-polyfill": "^6.13.0", "babel-preset-es2015": "^6.24.1", "babel-preset-react": "^6.24.1", @@ -108,13 +113,16 @@ "jest-react-native": "18.0.0", "jest-styled-components": "^4.9.0", "lint-staged": "^6.0.0", + "patch-package": "^5.0.0", + "postinstall-prepare": "^1.0.1", "prettier": "1.9.2", "react-dom": "16.0.0-alpha.12", "react-native-storybook-loader": "^1.6.0", "react-storybooks-relay-container": "^1.0.0", "react-test-renderer": "16.0.0-alpha.12", "recursive-readdir-sync": "^1.0.6", - "relay-compiler": "https://github.com/alloy/relay/releases/download/v1.3.0-artsy/relay-compiler-1.3.0-artsy.1.tgz", + "relay-compiler": + "https://github.com/alloy/relay/releases/download/v1.5.0-alpha.4/relay-compiler-1.5.0-alpha.4.tgz", "relay2ts": "^0.2.0", "snapshot-diff": "^0.2.1", "stylelint": "^7.13.0", diff --git a/patches/graphql+0.12.3.patch b/patches/graphql+0.12.3.patch new file mode 100644 index 0000000000..481901bbd7 --- /dev/null +++ b/patches/graphql+0.12.3.patch @@ -0,0 +1,24 @@ +patch-package +--- a/node_modules/graphql/utilities/assertValidName.js ++++ b/node_modules/graphql/utilities/assertValidName.js +@@ -41,13 +41,13 @@ function assertValidName(name) { + */ + function isValidNameError(name, node) { + !(typeof name === 'string') ? (0, _invariant2.default)(0, 'Expected string') : void 0; +- if (name.length > 1 && name[0] === '_' && name[1] === '_' && +- // Note: this special case is not part of the spec and exists only to +- // support legacy server configurations. Do not rely on this special case +- // as it may be removed at any time. +- name !== '__configs__') { +- return new _GraphQLError.GraphQLError('Name "' + name + '" must not begin with "__", which is reserved by ' + 'GraphQL introspection.', node); +- } ++ // if (name.length > 1 && name[0] === '_' && name[1] === '_' && ++ // // Note: this special case is not part of the spec and exists only to ++ // // support legacy server configurations. Do not rely on this special case ++ // // as it may be removed at any time. ++ // name !== '__configs__') { ++ // return new _GraphQLError.GraphQLError('Name "' + name + '" must not begin with "__", which is reserved by ' + 'GraphQL introspection.', node); ++ // } + if (!NAME_RX.test(name)) { + return new _GraphQLError.GraphQLError('Names must match /^[_a-zA-Z][_a-zA-Z0-9]*$/ but "' + name + '" does not.', node); + } diff --git a/src/lib/Components/Artist/Artworks/index.tsx b/src/lib/Components/Artist/Artworks/index.tsx index d5744c5d4a..56c184e075 100644 --- a/src/lib/Components/Artist/Artworks/index.tsx +++ b/src/lib/Components/Artist/Artworks/index.tsx @@ -115,7 +115,7 @@ const styles = StyleSheet.create({ export default createFragmentContainer( Artworks, - graphql.experimental` + graphql` fragment Artworks_artist on Artist { counts { artworks diff --git a/src/lib/Components/ArtworkGrids/RelayConnections/ArtistForSaleArtworksGrid.tsx b/src/lib/Components/ArtworkGrids/RelayConnections/ArtistForSaleArtworksGrid.tsx index e4b159242e..4229cd6d51 100644 --- a/src/lib/Components/ArtworkGrids/RelayConnections/ArtistForSaleArtworksGrid.tsx +++ b/src/lib/Components/ArtworkGrids/RelayConnections/ArtistForSaleArtworksGrid.tsx @@ -9,7 +9,7 @@ Artwork const ArtistForSaleArtworksGrid = createPaginationContainer( InfiniteScrollArtworksGrid, { - artist: graphql.experimental` + artist: graphql` fragment ArtistForSaleArtworksGrid_artist on Artist @argumentDefinitions( count: { type: "Int", defaultValue: 10 } @@ -61,7 +61,7 @@ const ArtistForSaleArtworksGrid = createPaginationContainer( filter, } }, - query: graphql.experimental` + query: graphql` query ArtistForSaleArtworksGridQuery( $__id: ID! $count: Int! diff --git a/src/lib/Components/ArtworkGrids/RelayConnections/ArtistNotForSaleArtworksGrid.tsx b/src/lib/Components/ArtworkGrids/RelayConnections/ArtistNotForSaleArtworksGrid.tsx index 435080c8b7..0e26c800db 100644 --- a/src/lib/Components/ArtworkGrids/RelayConnections/ArtistNotForSaleArtworksGrid.tsx +++ b/src/lib/Components/ArtworkGrids/RelayConnections/ArtistNotForSaleArtworksGrid.tsx @@ -9,7 +9,7 @@ Artwork const ArtistNotForSaleArtworksGrid = createPaginationContainer( InfiniteScrollArtworksGrid, { - artist: graphql.experimental` + artist: graphql` fragment ArtistNotForSaleArtworksGrid_artist on Artist @argumentDefinitions( count: { type: "Int", defaultValue: 10 } @@ -61,7 +61,7 @@ const ArtistNotForSaleArtworksGrid = createPaginationContainer( filter, } }, - query: graphql.experimental` + query: graphql` query ArtistNotForSaleArtworksGridQuery( $__id: ID! $count: Int! diff --git a/src/lib/Components/ArtworkGrids/RelayConnections/GeneArtworksGrid.tsx b/src/lib/Components/ArtworkGrids/RelayConnections/GeneArtworksGrid.tsx index 6b05ae50ba..cc914dd836 100644 --- a/src/lib/Components/ArtworkGrids/RelayConnections/GeneArtworksGrid.tsx +++ b/src/lib/Components/ArtworkGrids/RelayConnections/GeneArtworksGrid.tsx @@ -9,7 +9,7 @@ Artwork const GeneArtworksGrid = createPaginationContainer( InfiniteScrollArtworksGrid, { - gene: graphql.experimental` + gene: graphql` fragment GeneArtworksGrid_gene on Gene @argumentDefinitions( count: { type: "Int", defaultValue: 10 } @@ -65,7 +65,7 @@ const GeneArtworksGrid = createPaginationContainer( cursor, } }, - query: graphql.experimental` + query: graphql` query GeneArtworksGridQuery( $__id: ID! $count: Int! diff --git a/src/lib/Components/ArtworkGrids/RelayConnections/SaleArtworksGrid.tsx b/src/lib/Components/ArtworkGrids/RelayConnections/SaleArtworksGrid.tsx index 0821deb60d..a94ee6adc9 100644 --- a/src/lib/Components/ArtworkGrids/RelayConnections/SaleArtworksGrid.tsx +++ b/src/lib/Components/ArtworkGrids/RelayConnections/SaleArtworksGrid.tsx @@ -17,7 +17,7 @@ interface Props extends GridProps { const SaleArtworksGrid = createPaginationContainer( InfiniteScrollArtworksGrid as any, { - sale: graphql.experimental` + sale: graphql` fragment SaleArtworksGrid_sale on Sale @argumentDefinitions(count: { type: "Int", defaultValue: 10 }, cursor: { type: "String" }) { __id @@ -63,7 +63,7 @@ const SaleArtworksGrid = createPaginationContainer( cursor, } }, - query: graphql.experimental` + query: graphql` query SaleArtworksGridQuery($__id: ID!, $count: Int!, $cursor: String) { node(__id: $__id) { ... on Sale { diff --git a/src/lib/Components/Home/ArtistRails/ArtistRail.tsx b/src/lib/Components/Home/ArtistRails/ArtistRail.tsx index 5d27e29b66..759304bb55 100644 --- a/src/lib/Components/Home/ArtistRails/ArtistRail.tsx +++ b/src/lib/Components/Home/ArtistRails/ArtistRail.tsx @@ -282,7 +282,7 @@ function suggestedArtistQuery(artistID: string): string { export default createRefetchContainer( ArtistRail, - graphql.experimental` + graphql` fragment ArtistRail_rail on HomePageArtistModule @argumentDefinitions(fetchContent: { type: "Boolean!", defaultValue: false }) { __id @@ -294,7 +294,7 @@ export default createRefetchContainer( } } `, - graphql.experimental` + graphql` query ArtistRailRefetchQuery($__id: ID!, $fetchContent: Boolean!) { node(__id: $__id) { ...ArtistRail_rail @arguments(fetchContent: $fetchContent) diff --git a/src/lib/Components/Home/ArtworkRails/ArtworkRail.tsx b/src/lib/Components/Home/ArtworkRails/ArtworkRail.tsx index 92e9c2eb9e..350a5cfbe6 100644 --- a/src/lib/Components/Home/ArtworkRails/ArtworkRail.tsx +++ b/src/lib/Components/Home/ArtworkRails/ArtworkRail.tsx @@ -300,7 +300,7 @@ const styles = StyleSheet.create({ export default createRefetchContainer( ArtworkRail, - graphql.experimental` + graphql` fragment ArtworkRail_rail on HomePageArtworkModule @argumentDefinitions(fetchContent: { type: "Boolean!", defaultValue: false }) { ...ArtworkRailHeader_rail @@ -336,7 +336,7 @@ export default createRefetchContainer( } } `, - graphql.experimental` + graphql` query ArtworkRailRefetchQuery($__id: ID!, $fetchContent: Boolean!) { node(__id: $__id) { ...ArtworkRail_rail @arguments(fetchContent: $fetchContent) diff --git a/src/lib/Components/Inbox/Conversations/Messages.tsx b/src/lib/Components/Inbox/Conversations/Messages.tsx index 5b0189e643..25c63df26f 100644 --- a/src/lib/Components/Inbox/Conversations/Messages.tsx +++ b/src/lib/Components/Inbox/Conversations/Messages.tsx @@ -158,7 +158,7 @@ export class Messages extends React.Component { export default createPaginationContainer( Messages, { - conversation: graphql.experimental` + conversation: graphql` fragment Messages_conversation on Conversation @argumentDefinitions(count: { type: "Int", defaultValue: 10 }, after: { type: "String" }) { __id @@ -226,7 +226,7 @@ export default createPaginationContainer( after: paginationInfo.cursor, } }, - query: graphql.experimental` + query: graphql` query MessagesQuery($conversationID: String!, $count: Int!, $after: String) { me { conversation(id: $conversationID) { diff --git a/src/lib/Components/Inbox/Conversations/__stories__/Inbox.story.tsx b/src/lib/Components/Inbox/Conversations/__stories__/Inbox.story.tsx index d1046ace6c..9beb88f779 100644 --- a/src/lib/Components/Inbox/Conversations/__stories__/Inbox.story.tsx +++ b/src/lib/Components/Inbox/Conversations/__stories__/Inbox.story.tsx @@ -16,7 +16,7 @@ const RootContainer: React.SFC = ({ Component }) => { return ( { export default createPaginationContainer( Conversations, { - me: graphql.experimental` + me: graphql` fragment Conversations_me on Me @argumentDefinitions(count: { type: "Int", defaultValue: 10 }, cursor: { type: "String", defaultValue: "" }) { conversations(first: $count, after: $cursor) @connection(key: "Conversations_conversations") { @@ -165,7 +165,7 @@ export default createPaginationContainer( cursor, } }, - query: graphql.experimental` + query: graphql` query ConversationsQuery($count: Int!, $cursor: String) { me { ...Conversations_me @arguments(count: $count, cursor: $cursor) diff --git a/src/lib/Containers/Gene.tsx b/src/lib/Containers/Gene.tsx index b442476800..b4b5e5bc52 100644 --- a/src/lib/Containers/Gene.tsx +++ b/src/lib/Containers/Gene.tsx @@ -342,7 +342,7 @@ const styles = StyleSheet.create({ export default createRefetchContainer( Gene, - graphql.experimental` + graphql` fragment Gene_gene on Gene @argumentDefinitions( sort: { type: "String", defaultValue: "-partner_updated_at" } @@ -372,7 +372,7 @@ export default createRefetchContainer( } } `, - graphql.experimental` + graphql` query GeneRefetchQuery($geneID: String!, $sort: String, $medium: String, $price_range: String) { gene(id: $geneID) { ...Gene_gene @arguments(sort: $sort, medium: $medium, price_range: $price_range) diff --git a/src/lib/Containers/Sale.tsx b/src/lib/Containers/Sale.tsx index d87ab1b585..163c6d9493 100644 --- a/src/lib/Containers/Sale.tsx +++ b/src/lib/Containers/Sale.tsx @@ -158,7 +158,7 @@ const styles = StyleSheet.create({ export default createRefetchContainer( Sale, - graphql.experimental` + graphql` fragment Sale_sale on Sale { id name @@ -166,7 +166,7 @@ export default createRefetchContainer( ...SaleArtworksGrid_sale } `, - graphql.experimental` + graphql` query SaleRefetchQuery($saleID: String!) { sale(id: $saleID) { ...Sale_sale diff --git a/src/lib/Containers/WorksForYou.tsx b/src/lib/Containers/WorksForYou.tsx index 29588f46a7..5490277020 100644 --- a/src/lib/Containers/WorksForYou.tsx +++ b/src/lib/Containers/WorksForYou.tsx @@ -173,7 +173,7 @@ const styles = StyleSheet.create({ const WorksForYouContainer = createPaginationContainer( WorksForYou, { - viewer: graphql.experimental` + viewer: graphql` fragment WorksForYou_viewer on Viewer @argumentDefinitions( count: { type: "Int", defaultValue: 10 } @@ -233,7 +233,7 @@ const WorksForYouContainer = createPaginationContainer( cursor, } }, - query: graphql.experimental` + query: graphql` query WorksForYouQuery($count: Int!, $cursor: String) { viewer { ...WorksForYou_viewer @arguments(count: $count, cursor: $cursor) diff --git a/src/lib/Scenes/Favorites/Components/Artists/index.tsx b/src/lib/Scenes/Favorites/Components/Artists/index.tsx index 91c957e036..3916faa080 100644 --- a/src/lib/Scenes/Favorites/Components/Artists/index.tsx +++ b/src/lib/Scenes/Favorites/Components/Artists/index.tsx @@ -47,7 +47,7 @@ class Artists extends React.Component { export default createPaginationContainer( Artists, { - me: graphql.experimental` + me: graphql` fragment Artists_me on Me @argumentDefinitions(count: { type: "Int", defaultValue: 10 }, cursor: { type: "String" }) { followed_artists_connection(first: $count, after: $cursor) @@ -87,7 +87,7 @@ export default createPaginationContainer( getVariables(_props, pageInfo, _fragmentVariables) { return pageInfo }, - query: graphql.experimental` + query: graphql` query ArtistsMeQuery($count: Int!, $cursor: String) { me { ...Artists_me @arguments(count: $count, cursor: $cursor) diff --git a/src/lib/Scenes/Favorites/Components/Artworks/Relay/ArtworksRenderer.tsx b/src/lib/Scenes/Favorites/Components/Artworks/Relay/ArtworksRenderer.tsx index edfe63555b..94b8f0a3ce 100644 --- a/src/lib/Scenes/Favorites/Components/Artworks/Relay/ArtworksRenderer.tsx +++ b/src/lib/Scenes/Favorites/Components/Artworks/Relay/ArtworksRenderer.tsx @@ -8,7 +8,7 @@ export default ({ render }) => { return ( { export default createPaginationContainer( SavedWorks, { - me: graphql.experimental` + me: graphql` fragment Artworks_me on Me @argumentDefinitions(count: { type: "Int", defaultValue: 10 }, cursor: { type: "String", defaultValue: "" }) { saved_artworks { @@ -101,7 +101,7 @@ export default createPaginationContainer( cursor, } }, - query: graphql.experimental` + query: graphql` query ArtworksQuery($count: Int!, $cursor: String) { me { ...Artworks_me @arguments(count: $count, cursor: $cursor) diff --git a/src/lib/Scenes/Favorites/Components/Categories/index.tsx b/src/lib/Scenes/Favorites/Components/Categories/index.tsx index 6bd30ad7b3..d6cd4b2565 100644 --- a/src/lib/Scenes/Favorites/Components/Categories/index.tsx +++ b/src/lib/Scenes/Favorites/Components/Categories/index.tsx @@ -46,7 +46,7 @@ export class Categories extends React.Component { export default createPaginationContainer( Categories, { - me: graphql.experimental` + me: graphql` fragment Categories_me on Me @argumentDefinitions(count: { type: "Int", defaultValue: 10 }, cursor: { type: "String" }) { followed_genes(first: $count, after: $cursor) @connection(key: "Categories_followed_genes") { @@ -85,7 +85,7 @@ export default createPaginationContainer( getVariables(_props, pageInfo, _fragmentVariables) { return pageInfo }, - query: graphql.experimental` + query: graphql` query CategoriesMeQuery($count: Int!, $cursor: String) { me { ...Categories_me @arguments(count: $count, cursor: $cursor) diff --git a/src/lib/Scenes/Home/Components/ForYou/Components/ArtworkCarousel.tsx b/src/lib/Scenes/Home/Components/ForYou/Components/ArtworkCarousel.tsx index 4689dd638d..0c293b2857 100644 --- a/src/lib/Scenes/Home/Components/ForYou/Components/ArtworkCarousel.tsx +++ b/src/lib/Scenes/Home/Components/ForYou/Components/ArtworkCarousel.tsx @@ -330,7 +330,7 @@ const styles = StyleSheet.create({ export default createRefetchContainer( ArtworkCarousel, - graphql.experimental` + graphql` fragment ArtworkCarousel_rail on HomePageArtworkModule @argumentDefinitions(fetchContent: { type: "Boolean!", defaultValue: false }) { ...ArtworkCarouselHeader_rail @@ -366,7 +366,7 @@ export default createRefetchContainer( } } `, - graphql.experimental` + graphql` query ArtworkCarouselRefetchQuery($__id: ID!, $fetchContent: Boolean!) { node(__id: $__id) { ...ArtworkCarousel_rail @arguments(fetchContent: $fetchContent) diff --git a/src/lib/Scenes/Home/Components/Sales/Components/LotsByFollowedArtists.tsx b/src/lib/Scenes/Home/Components/Sales/Components/LotsByFollowedArtists.tsx index d102842abb..d0c3f95b32 100644 --- a/src/lib/Scenes/Home/Components/Sales/Components/LotsByFollowedArtists.tsx +++ b/src/lib/Scenes/Home/Components/Sales/Components/LotsByFollowedArtists.tsx @@ -42,7 +42,7 @@ export const LotsByFollowedArtists: React.SFC = props => { export default createPaginationContainer( LotsByFollowedArtists, - graphql.experimental` + graphql` fragment LotsByFollowedArtists_viewer on Viewer @argumentDefinitions(count: { type: "Int", defaultValue: 10 }, cursor: { type: "String" }) { sale_artworks: sale_artworks(first: $count, after: $cursor, include_artworks_by_followed_artists: true) @@ -67,7 +67,7 @@ export default createPaginationContainer( getConnectionFromProps: ({ viewer }) => viewer && (viewer.sale_artworks as ConnectionData), getFragmentVariables: (prevVars, totalCount) => ({ ...prevVars, count: totalCount }), getVariables: (_props, { count, cursor }) => ({ count, cursor }), - query: graphql.experimental` + query: graphql` query LotsByFollowedArtistsQuery($count: Int!, $cursor: String) { viewer { ...LotsByFollowedArtists_viewer @arguments(count: $count, cursor: $cursor) diff --git a/src/lib/Scenes/Home/Components/Sales/Relay/SalesRenderer.tsx b/src/lib/Scenes/Home/Components/Sales/Relay/SalesRenderer.tsx index 59ce959c77..428311e2db 100644 --- a/src/lib/Scenes/Home/Components/Sales/Relay/SalesRenderer.tsx +++ b/src/lib/Scenes/Home/Components/Sales/Relay/SalesRenderer.tsx @@ -6,7 +6,7 @@ export function SalesRenderer({ render }) { return ( = ({ ren return ( = ({ rende return (