Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fix(aws-appsync) #342

Closed
wants to merge 36 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
36 commits
Select commit Hold shift + click to select a range
a2035d0
fix(subscriptions): Guard against errors: null response in subscripti…
marklawlor Jan 11, 2019
42ac50a
fix(offline-helpers): Offline helpers types and fix issue with differ…
elorzafe Jan 11, 2019
8dbe01d
fix(deltasync): Fix error when baseQuery is not specified (#320)
manueliglesias Jan 11, 2019
b933379
fix(subscriptions): Do not retry mqtt disconnections (#319)
manueliglesias Jan 11, 2019
c990f7c
chore(release): Publish [ci skip]
manueliglesias Jan 11, 2019
bfc861e
updating apollo-cache-inmemory
Jan 21, 2019
d81af38
fix(typescript) add promise types for CredentialsGetter (#305)
hisham Jan 25, 2019
2278942
Update package.json (#333)
elorzafe Jan 25, 2019
920b47d
fix(auth): Remove temporary variables (starting with '@@') before sig…
greimela Feb 19, 2019
13a2dec
fix(deltaSync): Make sure query manager is initialized
elorzafe Mar 12, 2019
a97c3b5
add npmrc to gitignore
elorzafe Mar 12, 2019
b3f6fde
chore(release): Publish [ci skip]
elorzafe Mar 12, 2019
af84d3e
fix(readme) switch AppSync.js to aws-exports.js (#373)
nateous Mar 20, 2019
997e3d8
fix(deltaSync) (#368)
lukasf98 Mar 20, 2019
7001bc1
docs(react-offline-realtime-todos): fix typos in README.md (#383)
Mar 29, 2019
8d3602f
fix(deltaSync): Read last sync timestamps from store if not present i…
manueliglesias May 6, 2019
5af8c08
chore: Relicensing to Apache 2.0 (#402)
hyandell May 6, 2019
1885a8a
feat: Multi-client support (#398)
manueliglesias May 14, 2019
013416a
test: Fix TypeScript error
manueliglesias May 14, 2019
b0870ba
chore(release): Publish [ci skip]n
manueliglesias May 14, 2019
526b9b8
fix(offline): Call observer.error when discarding mutation (#408)
manueliglesias May 31, 2019
cbfd4c3
Update keys from aws-exports.js (#419)
matthiasn May 31, 2019
cc54934
Update aws-sdk to latest (#425)
elorzafe Jun 10, 2019
0df1882
chore(release): Publish [ci skip]
sammartinez Jun 17, 2019
8b815dd
Fix: Cannot read property 'reduce' of undefined (#442)
thaiphan Aug 13, 2019
a7539fb
Adding support in the offline helpers to update the cache for queries…
Ashish-Nanda Aug 21, 2019
fa19c4a
fix: Add support for React Native 0.60 (#457)
Ashish-Nanda Sep 5, 2019
fe513d8
fix(aws-appsync): Update aws-sdk to be the same as amplify (#458)
elorzafe Sep 6, 2019
f2165a0
Publish
elorzafe Sep 6, 2019
b1e2682
Adding setup instructions for React Native 0.60 (#462)
Ashish-Nanda Sep 10, 2019
07281fd
Add CHANGELOG entries for 2.0.0 release (#468)
Ashish-Nanda Sep 25, 2019
50185bb
feat: exporting links (#470)
elorzafe Oct 11, 2019
ea5052a
releasing aws-appsync-auth-link and aws-appsync-subscription-link
elorzafe Oct 11, 2019
a9ccd1a
Updating links usage (#472)
elorzafe Oct 15, 2019
cb9688d
updating apollo-cache-inmemory
Jan 21, 2019
6ef2eaf
resolving conflicts
Oct 30, 2019
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -2,3 +2,4 @@ node_modules
lib
*.tgz
lerna-debug.log
.npmrc
271 changes: 175 additions & 96 deletions LICENSE
Original file line number Diff line number Diff line change
@@ -1,96 +1,175 @@
Amazon Software License 1.0

This Amazon Software License ("License") governs your use, reproduction, and
distribution of the accompanying software as specified below.

1. Definitions

"Licensor" means any person or entity that distributes its Work.

"Software" means the original work of authorship made available under this
License.

"Work" means the Software and any additions to or derivative works of the
Software that are made available under this License.

The terms "reproduce," "reproduction," "derivative works," and
"distribution" have the meaning as provided under U.S. copyright law;
provided, however, that for the purposes of this License, derivative works
shall not include works that remain separable from, or merely link (or bind
by name) to the interfaces of, the Work.

Works, including the Software, are "made available" under this License by
including in or with the Work either (a) a copyright notice referencing the
applicability of this License to the Work, or (b) a copy of this License.

2. License Grants

2.1 Copyright Grant. Subject to the terms and conditions of this License,
each Licensor grants to you a perpetual, worldwide, non-exclusive,
royalty-free, copyright license to reproduce, prepare derivative works of,
publicly display, publicly perform, sublicense and distribute its Work and
any resulting derivative works in any form.

2.2 Patent Grant. Subject to the terms and conditions of this License, each
Licensor grants to you a perpetual, worldwide, non-exclusive, royalty-free
patent license to make, have made, use, sell, offer for sale, import, and
otherwise transfer its Work, in whole or in part. The foregoing license
applies only to the patent claims licensable by Licensor that would be
infringed by Licensor's Work (or portion thereof) individually and
excluding any combinations with any other materials or technology.

3. Limitations

3.1 Redistribution. You may reproduce or distribute the Work only if
(a) you do so under this License, (b) you include a complete copy of this
License with your distribution, and (c) you retain without modification
any copyright, patent, trademark, or attribution notices that are present
in the Work.

3.2 Derivative Works. You may specify that additional or different terms
apply to the use, reproduction, and distribution of your derivative works
of the Work ("Your Terms") only if (a) Your Terms provide that the use
limitation in Section 3.3 applies to your derivative works, and (b) you
identify the specific derivative works that are subject to Your Terms.
Notwithstanding Your Terms, this License (including the redistribution
requirements in Section 3.1) will continue to apply to the Work itself.

3.3 Use Limitation. The Work and any derivative works thereof only may be
used or intended for use with the web services, computing platforms or
applications provided by Amazon.com, Inc. or its affiliates, including
Amazon Web Services, Inc.

3.4 Patent Claims. If you bring or threaten to bring a patent claim against
any Licensor (including any claim, cross-claim or counterclaim in a
lawsuit) to enforce any patents that you allege are infringed by any Work,
then your rights under this License from such Licensor (including the
grants in Sections 2.1 and 2.2) will terminate immediately.

3.5 Trademarks. This License does not grant any rights to use any
Licensor's or its affiliates' names, logos, or trademarks, except as
necessary to reproduce the notices described in this License.

3.6 Termination. If you violate any term of this License, then your rights
under this License (including the grants in Sections 2.1 and 2.2) will
terminate immediately.

4. Disclaimer of Warranty.

THE WORK IS PROVIDED "AS IS" WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND,
EITHER EXPRESS OR IMPLIED, INCLUDING WARRANTIES OR CONDITIONS OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, TITLE OR
NON-INFRINGEMENT. YOU BEAR THE RISK OF UNDERTAKING ANY ACTIVITIES UNDER
THIS LICENSE. SOME STATES' CONSUMER LAWS DO NOT ALLOW EXCLUSION OF AN
IMPLIED WARRANTY, SO THIS DISCLAIMER MAY NOT APPLY TO YOU.

5. Limitation of Liability.

EXCEPT AS PROHIBITED BY APPLICABLE LAW, IN NO EVENT AND UNDER NO LEGAL
THEORY, WHETHER IN TORT (INCLUDING NEGLIGENCE), CONTRACT, OR OTHERWISE
SHALL ANY LICENSOR BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY DIRECT,
INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES ARISING OUT OF OR
RELATED TO THIS LICENSE, THE USE OR INABILITY TO USE THE WORK (INCLUDING
BUT NOT LIMITED TO LOSS OF GOODWILL, BUSINESS INTERRUPTION, LOST PROFITS
OR DATA, COMPUTER FAILURE OR MALFUNCTION, OR ANY OTHER COMM ERCIAL DAMAGES
OR LOSSES), EVEN IF THE LICENSOR HAS BEEN ADVISED OF THE POSSIBILITY OF
SUCH DAMAGES.

Apache License
Version 2.0, January 2004
http://www.apache.org/licenses/

TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION

1. Definitions.

"License" shall mean the terms and conditions for use, reproduction,
and distribution as defined by Sections 1 through 9 of this document.

"Licensor" shall mean the copyright owner or entity authorized by
the copyright owner that is granting the License.

"Legal Entity" shall mean the union of the acting entity and all
other entities that control, are controlled by, or are under common
control with that entity. For the purposes of this definition,
"control" means (i) the power, direct or indirect, to cause the
direction or management of such entity, whether by contract or
otherwise, or (ii) ownership of fifty percent (50%) or more of the
outstanding shares, or (iii) beneficial ownership of such entity.

"You" (or "Your") shall mean an individual or Legal Entity
exercising permissions granted by this License.

"Source" form shall mean the preferred form for making modifications,
including but not limited to software source code, documentation
source, and configuration files.

"Object" form shall mean any form resulting from mechanical
transformation or translation of a Source form, including but
not limited to compiled object code, generated documentation,
and conversions to other media types.

"Work" shall mean the work of authorship, whether in Source or
Object form, made available under the License, as indicated by a
copyright notice that is included in or attached to the work
(an example is provided in the Appendix below).

"Derivative Works" shall mean any work, whether in Source or Object
form, that is based on (or derived from) the Work and for which the
editorial revisions, annotations, elaborations, or other modifications
represent, as a whole, an original work of authorship. For the purposes
of this License, Derivative Works shall not include works that remain
separable from, or merely link (or bind by name) to the interfaces of,
the Work and Derivative Works thereof.

"Contribution" shall mean any work of authorship, including
the original version of the Work and any modifications or additions
to that Work or Derivative Works thereof, that is intentionally
submitted to Licensor for inclusion in the Work by the copyright owner
or by an individual or Legal Entity authorized to submit on behalf of
the copyright owner. For the purposes of this definition, "submitted"
means any form of electronic, verbal, or written communication sent
to the Licensor or its representatives, including but not limited to
communication on electronic mailing lists, source code control systems,
and issue tracking systems that are managed by, or on behalf of, the
Licensor for the purpose of discussing and improving the Work, but
excluding communication that is conspicuously marked or otherwise
designated in writing by the copyright owner as "Not a Contribution."

"Contributor" shall mean Licensor and any individual or Legal Entity
on behalf of whom a Contribution has been received by Licensor and
subsequently incorporated within the Work.

2. Grant of Copyright License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
copyright license to reproduce, prepare Derivative Works of,
publicly display, publicly perform, sublicense, and distribute the
Work and such Derivative Works in Source or Object form.

3. Grant of Patent License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
(except as stated in this section) patent license to make, have made,
use, offer to sell, sell, import, and otherwise transfer the Work,
where such license applies only to those patent claims licensable
by such Contributor that are necessarily infringed by their
Contribution(s) alone or by combination of their Contribution(s)
with the Work to which such Contribution(s) was submitted. If You
institute patent litigation against any entity (including a
cross-claim or counterclaim in a lawsuit) alleging that the Work
or a Contribution incorporated within the Work constitutes direct
or contributory patent infringement, then any patent licenses
granted to You under this License for that Work shall terminate
as of the date such litigation is filed.

4. Redistribution. You may reproduce and distribute copies of the
Work or Derivative Works thereof in any medium, with or without
modifications, and in Source or Object form, provided that You
meet the following conditions:

(a) You must give any other recipients of the Work or
Derivative Works a copy of this License; and

(b) You must cause any modified files to carry prominent notices
stating that You changed the files; and

(c) You must retain, in the Source form of any Derivative Works
that You distribute, all copyright, patent, trademark, and
attribution notices from the Source form of the Work,
excluding those notices that do not pertain to any part of
the Derivative Works; and

(d) If the Work includes a "NOTICE" text file as part of its
distribution, then any Derivative Works that You distribute must
include a readable copy of the attribution notices contained
within such NOTICE file, excluding those notices that do not
pertain to any part of the Derivative Works, in at least one
of the following places: within a NOTICE text file distributed
as part of the Derivative Works; within the Source form or
documentation, if provided along with the Derivative Works; or,
within a display generated by the Derivative Works, if and
wherever such third-party notices normally appear. The contents
of the NOTICE file are for informational purposes only and
do not modify the License. You may add Your own attribution
notices within Derivative Works that You distribute, alongside
or as an addendum to the NOTICE text from the Work, provided
that such additional attribution notices cannot be construed
as modifying the License.

You may add Your own copyright statement to Your modifications and
may provide additional or different license terms and conditions
for use, reproduction, or distribution of Your modifications, or
for any such Derivative Works as a whole, provided Your use,
reproduction, and distribution of the Work otherwise complies with
the conditions stated in this License.

5. Submission of Contributions. Unless You explicitly state otherwise,
any Contribution intentionally submitted for inclusion in the Work
by You to the Licensor shall be under the terms and conditions of
this License, without any additional terms or conditions.
Notwithstanding the above, nothing herein shall supersede or modify
the terms of any separate license agreement you may have executed
with Licensor regarding such Contributions.

6. Trademarks. This License does not grant permission to use the trade
names, trademarks, service marks, or product names of the Licensor,
except as required for reasonable and customary use in describing the
origin of the Work and reproducing the content of the NOTICE file.

7. Disclaimer of Warranty. Unless required by applicable law or
agreed to in writing, Licensor provides the Work (and each
Contributor provides its Contributions) on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
implied, including, without limitation, any warranties or conditions
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
PARTICULAR PURPOSE. You are solely responsible for determining the
appropriateness of using or redistributing the Work and assume any
risks associated with Your exercise of permissions under this License.

8. Limitation of Liability. In no event and under no legal theory,
whether in tort (including negligence), contract, or otherwise,
unless required by applicable law (such as deliberate and grossly
negligent acts) or agreed to in writing, shall any Contributor be
liable to You for damages, including any direct, indirect, special,
incidental, or consequential damages of any character arising as a
result of this License or out of the use or inability to use the
Work (including but not limited to damages for loss of goodwill,
work stoppage, computer failure or malfunction, or any and all
other commercial damages or losses), even if such Contributor
has been advised of the possibility of such damages.

9. Accepting Warranty or Additional Liability. While redistributing
the Work or Derivative Works thereof, You may choose to offer,
and charge a fee for, acceptance of support, warranty, indemnity,
or other liability obligations and/or rights consistent with this
License. However, in accepting such obligations, You may act only
on Your own behalf and on Your sole responsibility, not on behalf
of any other Contributor, and only if You agree to indemnify,
defend, and hold each Contributor harmless for any liability
incurred by, or claims asserted against, such Contributor by reason
of your accepting any such warranty or additional liability.
61 changes: 59 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,28 @@ npm install --save aws-appsync
yarn add aws-appsync
```

#### React Native Compatibility
When using this library with React Native, you need to ensure you are using the correct version of the library based on your version of React Native. Take a look at the table below to determine what version to use.


| `aws-appsync` version | Required React Native Version
| ----------------------------------------- | -------------------------------------------------------------------------------- |
| `2.x.x` | `>= 0.60`
| `1.x.x` | `<= 0.59`

If you are using React Native `0.60` and above, you also need to install `@react-native-community/netinfo`:

```
npm install --save @react-native-community/netinfo
```
or
```
yarn add @react-native-community/netinfo
```
If you are using React Native `0.60+` for iOS, run the following command as an additional step:
```
cd ios && pod install && cd ..
```
## Usage

Please visit the [documentation with the Amplify Framework](https://aws-amplify.github.io/docs/js/api) for detailed instructions.
Expand Down Expand Up @@ -644,12 +666,47 @@ export default {
}
```

### Angular / Ionic examples coming soon
### Using Authorization and Subscription links with Apollo Client (No offline support)

For versions of the Apollo client newer than 2.4.6 you can use custom links for Authorization and Subscriptions. Offline support is not available for these newer versions. The packages available are
`aws-appsync-auth-link` and `aws-appsync-subscription-link`. Below is a sample code snippet that shows how to use it.


```javascript
import { createAuthLink } from 'aws-appsync-auth-link';
import { createSubscriptionHandshakeLink } from 'aws-appsync-subscription-link';

import { ApolloLink } from 'apollo-link';
import { createHttpLink } from 'apollo-link-http';
import ApolloClient from 'apollo-client';
import { InMemoryCache } from 'apollo-cache-inmemory';

import appSyncConfig from "./aws-exports";

const url = appSyncConfig.aws_appsync_graphqlEndpoint;
const region = appSyncConfig.aws_appsync_region;
const auth = {
type: appSyncConfig.aws_appsync_authenticationType,
apiKey: appSyncConfig.aws_appsync_apiKey,
};

const httpLink = createHttpLink({ uri: url });

const link = ApolloLink.from([
createAuthLink({ url, region, auth }),
createSubscriptionHandshakeLink(url, httpLink)
]);

const client = new ApolloClient({
link,
cache: new InMemoryCache()
})
```

## Creating an AppSync Project

To create a new AppSync project, go to https://aws.amazon.com/appsync/.

## License

This library is licensed under the Amazon Software License.
This library is licensed under the Apache License 2.0.
3 changes: 3 additions & 0 deletions packages/aws-appsync-auth-link/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
node_modules
lib
*.tgz
3 changes: 3 additions & 0 deletions packages/aws-appsync-auth-link/.npmignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
src/
*.tgz
tsconfig.json
12 changes: 12 additions & 0 deletions packages/aws-appsync-auth-link/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
# Change Log

All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.

<a name="1.0.1"></a>
## 1.0.1 (2019-10-11)


### Features

* exporting links ([#470](https://github.com/awslabs/aws-mobile-appsync-sdk-js/issues/470)) ([50185bb](https://github.com/awslabs/aws-mobile-appsync-sdk-js/commit/50185bb))
Empty file.
Loading