@aws-amplify/api-graphql 3.4.12-api-v6-models.b3abc9b.0 → 4.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (118) hide show
  1. package/README.md +3 -0
  2. package/lib/GraphQLAPI.d.ts +17 -4
  3. package/lib/GraphQLAPI.js +33 -27
  4. package/lib/Providers/AWSAppSyncRealTimeProvider/index.d.ts +64 -0
  5. package/lib/Providers/AWSAppSyncRealTimeProvider/index.js +690 -0
  6. package/lib/Providers/constants.d.ts +95 -0
  7. package/lib/Providers/constants.js +103 -0
  8. package/lib/index.d.ts +1 -3
  9. package/lib/index.js +6 -10
  10. package/lib/internals/InternalGraphQLAPI.d.ts +11 -34
  11. package/lib/internals/InternalGraphQLAPI.js +219 -345
  12. package/lib/internals/index.d.ts +1 -1
  13. package/lib/internals/index.js +2 -1
  14. package/lib/internals/v6.d.ts +14 -2
  15. package/lib/internals/v6.js +21 -3
  16. package/lib/tsconfig.tsbuildinfo +6813 -0
  17. package/lib/types/PubSub.d.ts +27 -0
  18. package/lib/types/PubSub.js +46 -0
  19. package/lib/types/index.d.ts +119 -12
  20. package/lib/types/index.js +4 -3
  21. package/lib/utils/ConnectionStateMonitor.d.ts +41 -0
  22. package/lib/utils/ConnectionStateMonitor.js +131 -0
  23. package/lib/utils/ReachabilityMonitor/index.d.ts +1 -0
  24. package/lib/utils/ReachabilityMonitor/index.js +6 -0
  25. package/lib/utils/ReachabilityMonitor/index.native.d.ts +1 -0
  26. package/lib/utils/ReachabilityMonitor/index.native.js +8 -0
  27. package/lib/utils/ReconnectionMonitor.d.ts +29 -0
  28. package/lib/utils/ReconnectionMonitor.js +68 -0
  29. package/lib/utils/errors/APIError.d.ts +7 -0
  30. package/lib/utils/errors/APIError.js +18 -0
  31. package/lib/utils/errors/assertValidationError.d.ts +5 -0
  32. package/lib/utils/errors/assertValidationError.js +16 -0
  33. package/lib/utils/errors/index.d.ts +3 -0
  34. package/lib/utils/errors/index.js +11 -0
  35. package/lib/utils/errors/validation.d.ts +7 -0
  36. package/lib/utils/errors/validation.js +25 -0
  37. package/lib/utils/index.d.ts +2 -0
  38. package/lib/utils/index.js +8 -0
  39. package/lib/utils/resolveConfig.d.ts +12 -0
  40. package/lib/utils/resolveConfig.js +22 -0
  41. package/lib/utils/resolveLibraryOptions.d.ts +11 -0
  42. package/lib/utils/resolveLibraryOptions.js +12 -0
  43. package/lib-esm/GraphQLAPI.d.ts +17 -4
  44. package/lib-esm/GraphQLAPI.js +33 -28
  45. package/lib-esm/Providers/AWSAppSyncRealTimeProvider/index.d.ts +64 -0
  46. package/lib-esm/Providers/AWSAppSyncRealTimeProvider/index.js +687 -0
  47. package/lib-esm/Providers/constants.d.ts +95 -0
  48. package/lib-esm/Providers/constants.js +100 -0
  49. package/lib-esm/index.d.ts +1 -3
  50. package/lib-esm/index.js +1 -4
  51. package/lib-esm/internals/InternalGraphQLAPI.d.ts +11 -34
  52. package/lib-esm/internals/InternalGraphQLAPI.js +218 -345
  53. package/lib-esm/internals/index.d.ts +1 -1
  54. package/lib-esm/internals/index.js +1 -2
  55. package/lib-esm/internals/v6.d.ts +14 -2
  56. package/lib-esm/internals/v6.js +18 -2
  57. package/lib-esm/tsconfig.tsbuildinfo +6813 -0
  58. package/lib-esm/types/PubSub.d.ts +27 -0
  59. package/lib-esm/types/PubSub.js +44 -0
  60. package/lib-esm/types/index.d.ts +119 -12
  61. package/lib-esm/types/index.js +2 -3
  62. package/lib-esm/utils/ConnectionStateMonitor.d.ts +41 -0
  63. package/lib-esm/utils/ConnectionStateMonitor.js +128 -0
  64. package/lib-esm/utils/ReachabilityMonitor/index.d.ts +1 -0
  65. package/lib-esm/utils/ReachabilityMonitor/index.js +4 -0
  66. package/lib-esm/utils/ReachabilityMonitor/index.native.d.ts +1 -0
  67. package/lib-esm/utils/ReachabilityMonitor/index.native.js +5 -0
  68. package/lib-esm/utils/ReconnectionMonitor.d.ts +29 -0
  69. package/lib-esm/utils/ReconnectionMonitor.js +65 -0
  70. package/lib-esm/utils/errors/APIError.d.ts +7 -0
  71. package/lib-esm/utils/errors/APIError.js +15 -0
  72. package/lib-esm/utils/errors/assertValidationError.d.ts +5 -0
  73. package/lib-esm/utils/errors/assertValidationError.js +13 -0
  74. package/lib-esm/utils/errors/index.d.ts +3 -0
  75. package/lib-esm/utils/errors/index.js +5 -0
  76. package/lib-esm/utils/errors/validation.d.ts +7 -0
  77. package/lib-esm/utils/errors/validation.js +23 -0
  78. package/lib-esm/utils/index.d.ts +2 -0
  79. package/lib-esm/utils/index.js +4 -0
  80. package/lib-esm/utils/resolveConfig.d.ts +12 -0
  81. package/lib-esm/utils/resolveConfig.js +20 -0
  82. package/lib-esm/utils/resolveLibraryOptions.d.ts +11 -0
  83. package/lib-esm/utils/resolveLibraryOptions.js +10 -0
  84. package/package.json +122 -118
  85. package/src/GraphQLAPI.ts +26 -4
  86. package/src/Providers/AWSAppSyncRealTimeProvider/index.ts +998 -0
  87. package/src/Providers/constants.ts +110 -0
  88. package/src/index.ts +2 -3
  89. package/src/internals/InternalGraphQLAPI.ts +181 -218
  90. package/src/internals/index.ts +1 -1
  91. package/src/internals/v6.ts +34 -2
  92. package/src/types/PubSub.ts +56 -0
  93. package/src/types/index.ts +175 -15
  94. package/src/utils/ConnectionStateMonitor.ts +199 -0
  95. package/src/utils/ReachabilityMonitor/index.native.ts +7 -0
  96. package/src/utils/ReachabilityMonitor/index.ts +4 -0
  97. package/src/utils/ReconnectionMonitor.ts +76 -0
  98. package/src/utils/errors/APIError.ts +21 -0
  99. package/src/utils/errors/assertValidationError.ts +19 -0
  100. package/src/utils/errors/index.ts +6 -0
  101. package/src/utils/errors/validation.ts +26 -0
  102. package/src/utils/index.ts +5 -0
  103. package/src/utils/resolveConfig.ts +35 -0
  104. package/src/utils/resolveLibraryOptions.ts +13 -0
  105. package/lib/.tsbuildinfo +0 -3
  106. package/lib/GraphQLAPI.js.map +0 -1
  107. package/lib/index.js.map +0 -1
  108. package/lib/internals/InternalGraphQLAPI.js.map +0 -1
  109. package/lib/internals/index.js.map +0 -1
  110. package/lib/internals/v6.js.map +0 -1
  111. package/lib/types/index.js.map +0 -1
  112. package/lib-esm/.tsbuildinfo +0 -3
  113. package/lib-esm/GraphQLAPI.js.map +0 -1
  114. package/lib-esm/index.js.map +0 -1
  115. package/lib-esm/internals/InternalGraphQLAPI.js.map +0 -1
  116. package/lib-esm/internals/index.js.map +0 -1
  117. package/lib-esm/internals/v6.js.map +0 -1
  118. package/lib-esm/types/index.js.map +0 -1
@@ -0,0 +1,12 @@
1
+ import { AmplifyClassV6 } from '@aws-amplify/core';
2
+ /**
3
+ * @internal
4
+ */
5
+ export declare const resolveConfig: (amplify: AmplifyClassV6) => {
6
+ apiKey: string | undefined;
7
+ customEndpoint: string | undefined;
8
+ customEndpointRegion: string | undefined;
9
+ defaultAuthMode: "apiKey" | "oidc" | "userPool" | "iam" | "lambda" | "none" | undefined;
10
+ endpoint: string | undefined;
11
+ region: string | undefined;
12
+ };
@@ -0,0 +1,20 @@
1
+ // Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
2
+ // SPDX-License-Identifier: Apache-2.0
3
+ import { APIValidationErrorCode, assertValidationError } from './errors';
4
+ /**
5
+ * @internal
6
+ */
7
+ export const resolveConfig = (amplify) => {
8
+ const { apiKey, customEndpoint, customEndpointRegion, defaultAuthMode, endpoint, region, } = amplify.getConfig().API?.GraphQL ?? {};
9
+ // TODO: re-enable when working in all test environments:
10
+ // assertValidationError(!!endpoint, APIValidationErrorCode.NoEndpoint);
11
+ assertValidationError(!(!customEndpoint && customEndpointRegion), APIValidationErrorCode.NoCustomEndpoint);
12
+ return {
13
+ apiKey,
14
+ customEndpoint,
15
+ customEndpointRegion,
16
+ defaultAuthMode,
17
+ endpoint,
18
+ region,
19
+ };
20
+ };
@@ -0,0 +1,11 @@
1
+ import { AmplifyClassV6 } from '@aws-amplify/core';
2
+ /**
3
+ * @internal
4
+ */
5
+ export declare const resolveLibraryOptions: (amplify: AmplifyClassV6) => {
6
+ headers: ((options: {
7
+ query: string;
8
+ variables?: Record<string, import("@aws-amplify/core/lib-esm/libraryUtils").DocumentType> | undefined;
9
+ }) => Promise<Record<string, string>>) | undefined;
10
+ withCredentials: boolean | undefined;
11
+ };
@@ -0,0 +1,10 @@
1
+ // Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
2
+ // SPDX-License-Identifier: Apache-2.0
3
+ /**
4
+ * @internal
5
+ */
6
+ export const resolveLibraryOptions = (amplify) => {
7
+ const headers = amplify.libraryOptions?.API?.GraphQL?.headers;
8
+ const withCredentials = amplify.libraryOptions?.API?.GraphQL?.withCredentials;
9
+ return { headers, withCredentials };
10
+ };
package/package.json CHANGED
@@ -1,120 +1,124 @@
1
1
  {
2
- "name": "@aws-amplify/api-graphql",
3
- "version": "3.4.12-api-v6-models.b3abc9b.0+b3abc9b",
4
- "description": "Api-graphql category of aws-amplify",
5
- "main": "./lib/index.js",
6
- "module": "./lib-esm/index.js",
7
- "typings": "./lib-esm/index.d.ts",
8
- "react-native": {
9
- "./lib/index": "./lib-esm/index.js"
10
- },
11
- "sideEffects": [
12
- "./lib/GraphQLAPI.js",
13
- "./lib-esm/GraphQLAPI.js"
14
- ],
15
- "publishConfig": {
16
- "access": "public"
17
- },
18
- "scripts": {
19
- "test": "npm run lint && jest --coverage",
20
- "test:size": "size-limit",
21
- "build-with-test": "npm test && npm run build",
22
- "build:cjs": "node ./build es5 && webpack && webpack --config ./webpack.config.dev.js",
23
- "build:esm": "node ./build es6",
24
- "build:cjs:watch": "node ./build es5 --watch",
25
- "build:esm:watch": "node ./build es6 --watch",
26
- "build": "npm run clean && npm run build:esm && npm run build:cjs",
27
- "clean": "npm run clean:size && rimraf lib-esm lib dist",
28
- "clean:size": "rimraf dual-publish-tmp tmp*",
29
- "format": "echo \"Not implemented\"",
30
- "lint": "tslint 'src/**/*.ts' && npm run ts-coverage",
31
- "ts-coverage": "typescript-coverage-report -p ./tsconfig.build.json -t 75.62"
32
- },
33
- "repository": {
34
- "type": "git",
35
- "url": "https://github.com/aws-amplify/amplify-js.git"
36
- },
37
- "author": "Amazon Web Services",
38
- "license": "Apache-2.0",
39
- "bugs": {
40
- "url": "https://github.com/aws/aws-amplify/issues"
41
- },
42
- "homepage": "https://aws-amplify.github.io/",
43
- "devDependencies": {
44
- "@types/zen-observable": "^0.8.0"
45
- },
46
- "files": [
47
- "lib",
48
- "lib-esm",
49
- "src",
50
- "internals"
51
- ],
52
- "dependencies": {
53
- "@aws-amplify/api-rest": "3.5.6-api-v6-models.b3abc9b.0+b3abc9b",
54
- "@aws-amplify/auth": "5.6.6-api-v6-models.b3abc9b.0+b3abc9b",
55
- "@aws-amplify/cache": "5.1.12-api-v6-models.b3abc9b.0+b3abc9b",
56
- "@aws-amplify/core": "5.8.6-api-v6-models.b3abc9b.0+b3abc9b",
57
- "@aws-amplify/pubsub": "5.5.6-api-v6-models.b3abc9b.0+b3abc9b",
58
- "graphql": "15.8.0",
59
- "tslib": "^1.8.0",
60
- "uuid": "^3.2.1",
61
- "zen-observable-ts": "0.8.19"
62
- },
63
- "size-limit": [
64
- {
65
- "name": "API (GraphQL client)",
66
- "path": "./lib-esm/index.js",
67
- "import": "{ Amplify, GraphQLAPI }",
68
- "limit": "91.7 kB"
69
- }
70
- ],
71
- "jest": {
72
- "globals": {
73
- "ts-jest": {
74
- "diagnostics": true,
75
- "tsConfig": {
76
- "lib": [
77
- "es5",
78
- "es2015",
79
- "dom",
80
- "esnext.asynciterable",
81
- "es2017.object"
82
- ],
83
- "allowJs": true
84
- }
85
- }
86
- },
87
- "transform": {
88
- "^.+\\.(js|jsx|ts|tsx)$": "ts-jest"
89
- },
90
- "testRegex": "(/__tests__/.*|\\.(test|spec))\\.(tsx?|jsx?)$",
91
- "testPathIgnorePatterns": [
92
- "__tests__/fixtures",
93
- "__tests__/utils"
94
- ],
95
- "moduleFileExtensions": [
96
- "ts",
97
- "tsx",
98
- "js",
99
- "json",
100
- "jsx"
101
- ],
102
- "testEnvironment": "jsdom",
103
- "testURL": "http://localhost/",
104
- "coverageThreshold": {
105
- "global": {
106
- "branches": 0,
107
- "functions": 0,
108
- "lines": 0,
109
- "statements": 0
110
- }
111
- },
112
- "coveragePathIgnorePatterns": [
113
- "/node_modules/",
114
- "dist",
115
- "lib",
116
- "lib-esm"
117
- ]
118
- },
119
- "gitHead": "b3abc9b75f6f1353f4c2fbc10cd3369be498e9fc"
2
+ "name": "@aws-amplify/api-graphql",
3
+ "version": "4.0.0",
4
+ "description": "Api-graphql category of aws-amplify",
5
+ "main": "./lib/index.js",
6
+ "module": "./lib-esm/index.js",
7
+ "typings": "./lib-esm/index.d.ts",
8
+ "react-native": {
9
+ "./lib/index": "./lib-esm/index.js"
10
+ },
11
+ "sideEffects": [
12
+ "./lib/GraphQLAPI.js",
13
+ "./lib-esm/GraphQLAPI.js"
14
+ ],
15
+ "publishConfig": {
16
+ "access": "public"
17
+ },
18
+ "scripts": {
19
+ "test": "npm run lint && jest -w 1 --coverage",
20
+ "test:watch": "tslint 'src/**/*.ts' && jest -w 1 --watch",
21
+ "build-with-test": "npm run clean && npm test && tsc && webpack",
22
+ "build:cjs": "rimraf lib && tsc -m commonjs --outDir lib && webpack && webpack --config ./webpack.config.dev.js",
23
+ "build:esm": "rimraf lib-esm && tsc -m esnext --outDir lib-esm",
24
+ "build:cjs:watch": "rimraf lib && tsc -m commonjs --outDir lib --watch",
25
+ "build:esm:watch": "rimraf lib-esm && tsc -m esnext --outDir lib-esm --watch",
26
+ "build": "npm run clean && npm run build:esm && npm run build:cjs",
27
+ "clean": "npm run clean:size && rimraf lib-esm lib dist",
28
+ "clean:size": "rimraf dual-publish-tmp tmp*",
29
+ "format": "echo \"Not implemented\"",
30
+ "lint": "tslint 'src/**/*.ts' && npm run ts-coverage",
31
+ "ts-coverage": "typescript-coverage-report -p ./tsconfig.json -t 70.0"
32
+ },
33
+ "repository": {
34
+ "type": "git",
35
+ "url": "https://github.com/aws-amplify/amplify-js.git"
36
+ },
37
+ "author": "Amazon Web Services",
38
+ "license": "Apache-2.0",
39
+ "bugs": {
40
+ "url": "https://github.com/aws/aws-amplify/issues"
41
+ },
42
+ "homepage": "https://aws-amplify.github.io/",
43
+ "files": [
44
+ "lib",
45
+ "lib-esm",
46
+ "src",
47
+ "internals"
48
+ ],
49
+ "dependencies": {
50
+ "@aws-amplify/api-rest": "4.0.0",
51
+ "@aws-amplify/auth": "6.0.0",
52
+ "@aws-amplify/core": "6.0.0",
53
+ "@aws-sdk/types": "3.387.0",
54
+ "graphql": "15.8.0",
55
+ "rxjs": "^7.8.1",
56
+ "tslib": "^2.5.0"
57
+ },
58
+ "size-limit": [
59
+ {
60
+ "name": "API (GraphQL client)",
61
+ "path": "./lib-esm/index.js",
62
+ "import": "{ Amplify, GraphQLAPI }",
63
+ "limit": "91.7 kB"
64
+ }
65
+ ],
66
+ "jest": {
67
+ "globals": {
68
+ "ts-jest": {
69
+ "diagnostics": {
70
+ "pathRegex": "(/__tests__/.*|\\.(test|spec))\\.(tsx?|jsx?)$"
71
+ },
72
+ "tsConfig": {
73
+ "lib": [
74
+ "es5",
75
+ "es2015",
76
+ "dom",
77
+ "esnext.asynciterable",
78
+ "es2017.object"
79
+ ],
80
+ "allowJs": true,
81
+ "noEmitOnError": false,
82
+ "strictNullChecks": true,
83
+ "types": [
84
+ "@types/jest"
85
+ ]
86
+ }
87
+ }
88
+ },
89
+ "transform": {
90
+ "^.+\\.(js|jsx|ts|tsx)$": "ts-jest"
91
+ },
92
+ "testRegex": "(/__tests__/.*|\\.(test|spec))\\.(tsx?|jsx?)$",
93
+ "testPathIgnorePatterns": [
94
+ "<rootDir>/__tests__/helpers.ts",
95
+ "<rootDir>/__tests__/fixtures/",
96
+ "<rootDir>/__tests__/utils/"
97
+ ],
98
+ "moduleFileExtensions": [
99
+ "ts",
100
+ "tsx",
101
+ "js",
102
+ "json",
103
+ "jsx"
104
+ ],
105
+ "testEnvironment": "jsdom",
106
+ "testURL": "http://localhost/",
107
+ "coverageThreshold": {
108
+ "global": {
109
+ "branches": 0,
110
+ "functions": 0,
111
+ "lines": 0,
112
+ "statements": 0
113
+ }
114
+ },
115
+ "coveragePathIgnorePatterns": [
116
+ "<rootDir>/node_modules/",
117
+ "<rootDir>/dist",
118
+ "<rootDir>/lib",
119
+ "<rootDir>/lib-esm",
120
+ "<rootDir>/__tests__"
121
+ ]
122
+ },
123
+ "gitHead": "d505105326d7f6214f6bd1e06eb20be3a3651377"
120
124
  }
package/src/GraphQLAPI.ts CHANGED
@@ -1,9 +1,10 @@
1
1
  // Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
2
2
  // SPDX-License-Identifier: Apache-2.0
3
- import { Amplify } from '@aws-amplify/core';
3
+ import { AmplifyClassV6 } from '@aws-amplify/core';
4
+ import { Category, ApiAction } from '@aws-amplify/core/internals/utils';
4
5
  import { GraphQLOptions, GraphQLResult } from './types';
5
6
  import { InternalGraphQLAPIClass } from './internals';
6
- import Observable from 'zen-observable-ts';
7
+ import { Observable } from 'rxjs';
7
8
 
8
9
  export const graphqlOperation = (
9
10
  query,
@@ -31,12 +32,33 @@ export class GraphQLAPIClass extends InternalGraphQLAPIClass {
31
32
  * @returns An Observable if the query is a subscription query, else a promise of the graphql result.
32
33
  */
33
34
  graphql<T = any>(
35
+ amplify: AmplifyClassV6 | (() => Promise<AmplifyClassV6>),
34
36
  options: GraphQLOptions,
35
37
  additionalHeaders?: { [key: string]: string }
36
38
  ): Observable<GraphQLResult<T>> | Promise<GraphQLResult<T>> {
37
- return super.graphql(options, additionalHeaders);
39
+ return super.graphql(amplify, options, additionalHeaders, {
40
+ category: Category.API,
41
+ action: ApiAction.GraphQl,
42
+ });
43
+ }
44
+
45
+ /**
46
+ * Checks to see if an error thrown is from an api request cancellation
47
+ * @param error - Any error
48
+ * @returns A boolean indicating if the error was from an api request cancellation
49
+ */
50
+ isCancelError(error: any): boolean {
51
+ return super.isCancelError(error);
52
+ }
53
+
54
+ /**
55
+ * Cancels an inflight request. Only applicable for graphql queries and mutations
56
+ * @param {any} request - request to cancel
57
+ * @returns A boolean indicating if the request was cancelled
58
+ */
59
+ cancel(request: Promise<any>, message?: string): boolean {
60
+ return super.cancel(request, message);
38
61
  }
39
62
  }
40
63
 
41
64
  export const GraphQLAPI = new GraphQLAPIClass(null);
42
- Amplify.register(GraphQLAPI);