@aws-amplify/api 5.4.4-user-agent-backup.c6dfb36.0 → 5.4.5-api-v6.26fa5d0.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.
package/lib/API.d.ts CHANGED
@@ -1,8 +1,9 @@
1
1
  import { AWSAppSyncRealTimeProvider } from '@aws-amplify/pubsub';
2
- import { GraphQLOptions, GraphQLResult } from '@aws-amplify/api-graphql';
2
+ import { GraphQLOptions, GraphQLResult, GraphQLQuery, GraphQLSubscription } from '@aws-amplify/api-graphql';
3
+ import { graphql as v6graphql } from '@aws-amplify/api-graphql/internals';
3
4
  import Observable from 'zen-observable-ts';
4
- import { GraphQLQuery, GraphQLSubscription } from './types';
5
5
  import { InternalAPIClass } from './internals/InternalAPI';
6
+ import type { ModelTypes } from '@aws-amplify/types-package-alpha';
6
7
  /**
7
8
  * @deprecated
8
9
  * Use RestApi or GraphQLAPI to reduce your application bundle size
@@ -23,5 +24,20 @@ export declare class APIClass extends InternalAPIClass {
23
24
  provider: AWSAppSyncRealTimeProvider;
24
25
  value: GraphQLResult<T>;
25
26
  }> : Promise<GraphQLResult<any>> | Observable<object>;
27
+ /**
28
+ * Generates an API client that can work with models or raw GraphQL
29
+ */
30
+ generateClient<T extends Record<any, any> = never>(): V6Client<T>;
26
31
  }
32
+ declare type FilteredKeys<T> = {
33
+ [P in keyof T]: T[P] extends never ? never : P;
34
+ }[keyof T];
35
+ declare type ExcludeNeverFields<O> = {
36
+ [K in FilteredKeys<O>]: O[K];
37
+ };
38
+ declare type V6Client<T extends Record<any, any> = never> = ExcludeNeverFields<{
39
+ graphql: typeof v6graphql;
40
+ models: ModelTypes<T>;
41
+ }>;
27
42
  export declare const API: APIClass;
43
+ export {};
package/lib/API.js CHANGED
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  var tslib_1 = require("tslib");
4
+ var internals_1 = require("@aws-amplify/api-graphql/internals");
4
5
  var core_1 = require("@aws-amplify/core");
5
6
  var InternalAPI_1 = require("./internals/InternalAPI");
6
7
  var logger = new core_1.ConsoleLogger('API');
@@ -20,9 +21,174 @@ var APIClass = /** @class */ (function (_super) {
20
21
  APIClass.prototype.graphql = function (options, additionalHeaders) {
21
22
  return _super.prototype.graphql.call(this, options, additionalHeaders);
22
23
  };
24
+ /**
25
+ * Generates an API client that can work with models or raw GraphQL
26
+ */
27
+ APIClass.prototype.generateClient = function () {
28
+ var e_1, _a;
29
+ var _this = this;
30
+ var config = _super.prototype.configure.call(this, {});
31
+ var modelIntrospection = config.modelIntrospection;
32
+ var client = {
33
+ graphql: internals_1.graphql,
34
+ models: {},
35
+ };
36
+ var _loop_1 = function (model) {
37
+ var name_1 = model.name;
38
+ client.models[name_1] = {};
39
+ Object.entries(graphQLOperationsInfo).forEach(function (_a) {
40
+ var _b = tslib_1.__read(_a, 2), key = _b[0], operationPrefix = _b[1].operationPrefix;
41
+ var operation = key;
42
+ // e.g. clients.models.Todo.update
43
+ client.models[name_1][operationPrefix] = function (arg) { return tslib_1.__awaiter(_this, void 0, void 0, function () {
44
+ var query, variables, res, _a, key_1;
45
+ return tslib_1.__generator(this, function (_b) {
46
+ switch (_b.label) {
47
+ case 0:
48
+ query = generateGraphQLDocument(model, operation);
49
+ variables = buildGraphQLVariables(model, operation, arg);
50
+ return [4 /*yield*/, this.graphql({
51
+ query: query,
52
+ variables: variables,
53
+ })];
54
+ case 1:
55
+ res = (_b.sent());
56
+ // flatten response
57
+ if (res.data !== undefined) {
58
+ _a = tslib_1.__read(Object.keys(res.data), 1), key_1 = _a[0];
59
+ if (res.data[key_1].items) {
60
+ return [2 /*return*/, res.data[key_1].items];
61
+ }
62
+ return [2 /*return*/, res.data[key_1]];
63
+ }
64
+ return [2 /*return*/, res];
65
+ }
66
+ });
67
+ }); };
68
+ });
69
+ };
70
+ try {
71
+ for (var _b = tslib_1.__values(Object.values(modelIntrospection.models)), _c = _b.next(); !_c.done; _c = _b.next()) {
72
+ var model = _c.value;
73
+ _loop_1(model);
74
+ }
75
+ }
76
+ catch (e_1_1) { e_1 = { error: e_1_1 }; }
77
+ finally {
78
+ try {
79
+ if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
80
+ }
81
+ finally { if (e_1) throw e_1.error; }
82
+ }
83
+ return client;
84
+ };
23
85
  return APIClass;
24
86
  }(InternalAPI_1.InternalAPIClass));
25
87
  exports.APIClass = APIClass;
88
+ var graphQLOperationsInfo = {
89
+ CREATE: { operationPrefix: 'create', usePlural: false },
90
+ READ: { operationPrefix: 'get', usePlural: false },
91
+ UPDATE: { operationPrefix: 'update', usePlural: false },
92
+ DELETE: { operationPrefix: 'delete', usePlural: false },
93
+ LIST: { operationPrefix: 'list', usePlural: true },
94
+ };
95
+ var graphQLDocumentsCache = new Map();
96
+ function generateGraphQLDocument(modelDefinition, modelOperation) {
97
+ var _a;
98
+ var _b, _c;
99
+ var name = modelDefinition.name, pluralName = modelDefinition.pluralName, fields = modelDefinition.fields, _d = modelDefinition.primaryKeyInfo, isCustomPrimaryKey = _d.isCustomPrimaryKey, primaryKeyFieldName = _d.primaryKeyFieldName, sortKeyFieldNames = _d.sortKeyFieldNames;
100
+ var _e = graphQLOperationsInfo[modelOperation], operationPrefix = _e.operationPrefix, usePlural = _e.usePlural;
101
+ var fromCache = (_b = graphQLDocumentsCache.get(name)) === null || _b === void 0 ? void 0 : _b.get(modelOperation);
102
+ if (fromCache !== undefined) {
103
+ return fromCache;
104
+ }
105
+ if (!graphQLDocumentsCache.has(name)) {
106
+ graphQLDocumentsCache.set(name, new Map());
107
+ }
108
+ var graphQLFieldName = "" + operationPrefix + (usePlural ? pluralName : name);
109
+ var graphQLOperationType;
110
+ var graphQLSelectionSet;
111
+ var graphQLArguments;
112
+ var selectionSetFields = Object.values(fields)
113
+ .map(function (_a) {
114
+ var type = _a.type, name = _a.name;
115
+ return typeof type === 'string' && name;
116
+ }) // Only scalars for now
117
+ .filter(Boolean)
118
+ .join(' ');
119
+ switch (modelOperation) {
120
+ case 'CREATE':
121
+ case 'UPDATE':
122
+ case 'DELETE':
123
+ graphQLArguments !== null && graphQLArguments !== void 0 ? graphQLArguments : (graphQLArguments = {
124
+ input: "" + (operationPrefix.charAt(0).toLocaleUpperCase() +
125
+ operationPrefix.slice(1)) + name + "Input!",
126
+ });
127
+ graphQLOperationType !== null && graphQLOperationType !== void 0 ? graphQLOperationType : (graphQLOperationType = 'mutation');
128
+ case 'READ':
129
+ graphQLArguments !== null && graphQLArguments !== void 0 ? graphQLArguments : (graphQLArguments = isCustomPrimaryKey
130
+ ? tslib_1.__spread([primaryKeyFieldName], sortKeyFieldNames).reduce(function (acc, fieldName) {
131
+ acc[fieldName] = fields[fieldName].type;
132
+ return acc;
133
+ }, {})
134
+ : (_a = {},
135
+ _a[primaryKeyFieldName] = fields[primaryKeyFieldName].type + "!",
136
+ _a));
137
+ graphQLSelectionSet !== null && graphQLSelectionSet !== void 0 ? graphQLSelectionSet : (graphQLSelectionSet = selectionSetFields);
138
+ case 'LIST':
139
+ graphQLOperationType !== null && graphQLOperationType !== void 0 ? graphQLOperationType : (graphQLOperationType = 'query');
140
+ graphQLSelectionSet !== null && graphQLSelectionSet !== void 0 ? graphQLSelectionSet : (graphQLSelectionSet = "items { " + selectionSetFields + " }");
141
+ }
142
+ var graphQLDocument = "" + graphQLOperationType + (graphQLArguments
143
+ ? "(" + Object.entries(graphQLArguments).map(function (_a) {
144
+ var _b = tslib_1.__read(_a, 2), fieldName = _b[0], type = _b[1];
145
+ return "$" + fieldName + ": " + type;
146
+ }) + ")"
147
+ : '') + " { " + graphQLFieldName + (graphQLArguments
148
+ ? "(" + Object.keys(graphQLArguments).map(function (fieldName) { return fieldName + ": $" + fieldName; }) + ")"
149
+ : '') + " { " + graphQLSelectionSet + " } }";
150
+ (_c = graphQLDocumentsCache.get(name)) === null || _c === void 0 ? void 0 : _c.set(modelOperation, graphQLDocument);
151
+ return graphQLDocument;
152
+ }
153
+ function buildGraphQLVariables(modelDefinition, operation, arg) {
154
+ var _a;
155
+ var fields = modelDefinition.fields, _b = modelDefinition.primaryKeyInfo, isCustomPrimaryKey = _b.isCustomPrimaryKey, primaryKeyFieldName = _b.primaryKeyFieldName, sortKeyFieldNames = _b.sortKeyFieldNames;
156
+ var variables = {};
157
+ switch (operation) {
158
+ case 'CREATE':
159
+ variables = { input: arg };
160
+ break;
161
+ case 'UPDATE':
162
+ // readonly fields are not updated
163
+ variables = {
164
+ input: Object.fromEntries(Object.entries(arg).filter(function (_a) {
165
+ var _b = tslib_1.__read(_a, 1), fieldName = _b[0];
166
+ var isReadOnly = fields[fieldName].isReadOnly;
167
+ return !isReadOnly;
168
+ })),
169
+ };
170
+ break;
171
+ case 'READ':
172
+ case 'DELETE':
173
+ // only identifiers are sent
174
+ variables = isCustomPrimaryKey
175
+ ? tslib_1.__spread([primaryKeyFieldName], sortKeyFieldNames).reduce(function (acc, fieldName) {
176
+ acc[fieldName] = arg[fieldName];
177
+ return acc;
178
+ }, {})
179
+ : (_a = {}, _a[primaryKeyFieldName] = arg[primaryKeyFieldName], _a);
180
+ if (operation === 'DELETE') {
181
+ variables = { input: variables };
182
+ }
183
+ break;
184
+ case 'LIST':
185
+ break;
186
+ default:
187
+ var exhaustiveCheck = operation;
188
+ throw new Error("Unhandled operation case: " + exhaustiveCheck);
189
+ }
190
+ return variables;
191
+ }
26
192
  exports.API = new APIClass(null);
27
193
  core_1.Amplify.register(exports.API);
28
194
  //# sourceMappingURL=API.js.map
package/lib/API.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"API.js","sourceRoot":"","sources":["../src/API.ts"],"names":[],"mappings":";;;AAIA,0CAAqE;AAGrE,uDAA2D;AAE3D,IAAM,MAAM,GAAG,IAAI,oBAAM,CAAC,KAAK,CAAC,CAAC;AACjC;;;;GAIG;AACH;IAA8B,oCAAgB;IAA9C;;IA6BA,CAAC;IA5BO,gCAAa,GAApB;QACC,OAAO,KAAK,CAAC;IACd,CAAC;IAoBD,0BAAO,GAAP,UACC,OAAuB,EACvB,iBAA6C;QAE7C,OAAO,iBAAM,OAAO,YAAC,OAAO,EAAE,iBAAiB,CAAC,CAAC;IAClD,CAAC;IACF,eAAC;AAAD,CAAC,AA7BD,CAA8B,8BAAgB,GA6B7C;AA7BY,4BAAQ;AA+BR,QAAA,GAAG,GAAG,IAAI,QAAQ,CAAC,IAAI,CAAC,CAAC;AACtC,cAAO,CAAC,QAAQ,CAAC,WAAG,CAAC,CAAC"}
1
+ {"version":3,"file":"API.js","sourceRoot":"","sources":["../src/API.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,7 @@
1
- import { GraphQLOperation, GraphQLOptions, GraphQLResult, OperationTypeNode } from '@aws-amplify/api-graphql';
1
+ import { GraphQLOperation, GraphQLOptions, GraphQLResult, OperationTypeNode, GraphQLQuery, GraphQLSubscription } from '@aws-amplify/api-graphql';
2
2
  import { CustomUserAgentDetails } from '@aws-amplify/core';
3
3
  import { AWSAppSyncRealTimeProvider } from '@aws-amplify/pubsub';
4
4
  import Observable from 'zen-observable-ts';
5
- import { GraphQLQuery, GraphQLSubscription } from '../types';
6
5
  /**
7
6
  * @deprecated
8
7
  * Use RestApi or GraphQLAPI to reduce your application bundle size
@@ -16,7 +15,7 @@ export declare class InternalAPIClass {
16
15
  private _options;
17
16
  private _restApi;
18
17
  private _graphqlApi;
19
- InternalAuth: import("@aws-amplify/auth/lib-esm/internals/InternalAuth").InternalAuthClass;
18
+ Auth: import("@aws-amplify/auth/lib-esm/Auth").AuthClass;
20
19
  Cache: import("@aws-amplify/cache/lib-esm/types").ICache;
21
20
  Credentials: import("@aws-amplify/core").CredentialsClass;
22
21
  /**
@@ -3,7 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  var tslib_1 = require("tslib");
4
4
  var internals_1 = require("@aws-amplify/api-graphql/internals");
5
5
  var api_rest_1 = require("@aws-amplify/api-rest");
6
- var internals_2 = require("@aws-amplify/auth/internals");
6
+ var auth_1 = require("@aws-amplify/auth");
7
7
  var cache_1 = require("@aws-amplify/cache");
8
8
  var core_1 = require("@aws-amplify/core");
9
9
  var logger = new core_1.ConsoleLogger('API');
@@ -18,7 +18,7 @@ var InternalAPIClass = /** @class */ (function () {
18
18
  * @param {Object} options - Configuration object for API
19
19
  */
20
20
  function InternalAPIClass(options) {
21
- this.InternalAuth = internals_2.InternalAuth;
21
+ this.Auth = auth_1.Auth;
22
22
  this.Cache = cache_1.Cache;
23
23
  this.Credentials = core_1.Credentials;
24
24
  this._options = options;
@@ -38,7 +38,7 @@ var InternalAPIClass = /** @class */ (function () {
38
38
  this._options = Object.assign({}, this._options, options);
39
39
  // Share Amplify instance with client for SSR
40
40
  this._restApi.Credentials = this.Credentials;
41
- this._graphqlApi.InternalAuth = this.InternalAuth;
41
+ this._graphqlApi.Auth = this.Auth;
42
42
  this._graphqlApi.Cache = this.Cache;
43
43
  this._graphqlApi.Credentials = this.Credentials;
44
44
  var restAPIConfig = this._restApi.configure(this._options);
@@ -1 +1 @@
1
- {"version":3,"file":"InternalAPI.js","sourceRoot":"","sources":["../../src/internals/InternalAPI.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"InternalAPI.js","sourceRoot":"","sources":["../../src/internals/InternalAPI.ts"],"names":[],"mappings":"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"}
@@ -3,11 +3,4 @@
3
3
  * generates code that relies on this import path https://github.com/aws-amplify/amplify-cli/issues/3863
4
4
  * This will be removed in future release when CLI and customers moves to recommeneded import styles.
5
5
  */
6
- export { graphqlOperation, GraphQLAuthError, GraphQLResult, GRAPHQL_AUTH_MODE, } from '@aws-amplify/api-graphql';
7
- declare const queryType: unique symbol;
8
- export declare type GraphQLQuery<T> = T & {
9
- readonly [queryType]: 'query';
10
- };
11
- export declare type GraphQLSubscription<T> = T & {
12
- readonly [queryType]: 'subscription';
13
- };
6
+ export { graphqlOperation, GraphQLAuthError, GraphQLResult, GRAPHQL_AUTH_MODE, GraphQLQuery, GraphQLSubscription, } from '@aws-amplify/api-graphql';
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":";AAAA,qEAAqE;AACrE,sCAAsC;;AAEtC;;;;GAIG;AACH,wDAKkC;AAJjC,yCAAA,gBAAgB,CAAA;AAChB,yCAAA,gBAAgB,CAAA;AAEhB,0CAAA,iBAAiB,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":";AAAA,qEAAqE;AACrE,sCAAsC;;AAEtC;;;;GAIG;AACH,wDAOkC;AANjC,yCAAA,gBAAgB,CAAA;AAChB,yCAAA,gBAAgB,CAAA;AAEhB,0CAAA,iBAAiB,CAAA"}
package/lib-esm/API.d.ts CHANGED
@@ -1,8 +1,9 @@
1
1
  import { AWSAppSyncRealTimeProvider } from '@aws-amplify/pubsub';
2
- import { GraphQLOptions, GraphQLResult } from '@aws-amplify/api-graphql';
2
+ import { GraphQLOptions, GraphQLResult, GraphQLQuery, GraphQLSubscription } from '@aws-amplify/api-graphql';
3
+ import { graphql as v6graphql } from '@aws-amplify/api-graphql/internals';
3
4
  import Observable from 'zen-observable-ts';
4
- import { GraphQLQuery, GraphQLSubscription } from './types';
5
5
  import { InternalAPIClass } from './internals/InternalAPI';
6
+ import type { ModelTypes } from '@aws-amplify/types-package-alpha';
6
7
  /**
7
8
  * @deprecated
8
9
  * Use RestApi or GraphQLAPI to reduce your application bundle size
@@ -23,5 +24,20 @@ export declare class APIClass extends InternalAPIClass {
23
24
  provider: AWSAppSyncRealTimeProvider;
24
25
  value: GraphQLResult<T>;
25
26
  }> : Promise<GraphQLResult<any>> | Observable<object>;
27
+ /**
28
+ * Generates an API client that can work with models or raw GraphQL
29
+ */
30
+ generateClient<T extends Record<any, any> = never>(): V6Client<T>;
26
31
  }
32
+ declare type FilteredKeys<T> = {
33
+ [P in keyof T]: T[P] extends never ? never : P;
34
+ }[keyof T];
35
+ declare type ExcludeNeverFields<O> = {
36
+ [K in FilteredKeys<O>]: O[K];
37
+ };
38
+ declare type V6Client<T extends Record<any, any> = never> = ExcludeNeverFields<{
39
+ graphql: typeof v6graphql;
40
+ models: ModelTypes<T>;
41
+ }>;
27
42
  export declare const API: APIClass;
43
+ export {};
package/lib-esm/API.js CHANGED
@@ -1,4 +1,5 @@
1
- import { __extends } from "tslib";
1
+ import { __awaiter, __extends, __generator, __read, __spread, __values } from "tslib";
2
+ import { graphql as v6graphql } from '@aws-amplify/api-graphql/internals';
2
3
  import { Amplify, ConsoleLogger as Logger } from '@aws-amplify/core';
3
4
  import { InternalAPIClass } from './internals/InternalAPI';
4
5
  var logger = new Logger('API');
@@ -18,9 +19,174 @@ var APIClass = /** @class */ (function (_super) {
18
19
  APIClass.prototype.graphql = function (options, additionalHeaders) {
19
20
  return _super.prototype.graphql.call(this, options, additionalHeaders);
20
21
  };
22
+ /**
23
+ * Generates an API client that can work with models or raw GraphQL
24
+ */
25
+ APIClass.prototype.generateClient = function () {
26
+ var e_1, _a;
27
+ var _this = this;
28
+ var config = _super.prototype.configure.call(this, {});
29
+ var modelIntrospection = config.modelIntrospection;
30
+ var client = {
31
+ graphql: v6graphql,
32
+ models: {},
33
+ };
34
+ var _loop_1 = function (model) {
35
+ var name_1 = model.name;
36
+ client.models[name_1] = {};
37
+ Object.entries(graphQLOperationsInfo).forEach(function (_a) {
38
+ var _b = __read(_a, 2), key = _b[0], operationPrefix = _b[1].operationPrefix;
39
+ var operation = key;
40
+ // e.g. clients.models.Todo.update
41
+ client.models[name_1][operationPrefix] = function (arg) { return __awaiter(_this, void 0, void 0, function () {
42
+ var query, variables, res, _a, key_1;
43
+ return __generator(this, function (_b) {
44
+ switch (_b.label) {
45
+ case 0:
46
+ query = generateGraphQLDocument(model, operation);
47
+ variables = buildGraphQLVariables(model, operation, arg);
48
+ return [4 /*yield*/, this.graphql({
49
+ query: query,
50
+ variables: variables,
51
+ })];
52
+ case 1:
53
+ res = (_b.sent());
54
+ // flatten response
55
+ if (res.data !== undefined) {
56
+ _a = __read(Object.keys(res.data), 1), key_1 = _a[0];
57
+ if (res.data[key_1].items) {
58
+ return [2 /*return*/, res.data[key_1].items];
59
+ }
60
+ return [2 /*return*/, res.data[key_1]];
61
+ }
62
+ return [2 /*return*/, res];
63
+ }
64
+ });
65
+ }); };
66
+ });
67
+ };
68
+ try {
69
+ for (var _b = __values(Object.values(modelIntrospection.models)), _c = _b.next(); !_c.done; _c = _b.next()) {
70
+ var model = _c.value;
71
+ _loop_1(model);
72
+ }
73
+ }
74
+ catch (e_1_1) { e_1 = { error: e_1_1 }; }
75
+ finally {
76
+ try {
77
+ if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
78
+ }
79
+ finally { if (e_1) throw e_1.error; }
80
+ }
81
+ return client;
82
+ };
21
83
  return APIClass;
22
84
  }(InternalAPIClass));
23
85
  export { APIClass };
86
+ var graphQLOperationsInfo = {
87
+ CREATE: { operationPrefix: 'create', usePlural: false },
88
+ READ: { operationPrefix: 'get', usePlural: false },
89
+ UPDATE: { operationPrefix: 'update', usePlural: false },
90
+ DELETE: { operationPrefix: 'delete', usePlural: false },
91
+ LIST: { operationPrefix: 'list', usePlural: true },
92
+ };
93
+ var graphQLDocumentsCache = new Map();
94
+ function generateGraphQLDocument(modelDefinition, modelOperation) {
95
+ var _a;
96
+ var _b, _c;
97
+ var name = modelDefinition.name, pluralName = modelDefinition.pluralName, fields = modelDefinition.fields, _d = modelDefinition.primaryKeyInfo, isCustomPrimaryKey = _d.isCustomPrimaryKey, primaryKeyFieldName = _d.primaryKeyFieldName, sortKeyFieldNames = _d.sortKeyFieldNames;
98
+ var _e = graphQLOperationsInfo[modelOperation], operationPrefix = _e.operationPrefix, usePlural = _e.usePlural;
99
+ var fromCache = (_b = graphQLDocumentsCache.get(name)) === null || _b === void 0 ? void 0 : _b.get(modelOperation);
100
+ if (fromCache !== undefined) {
101
+ return fromCache;
102
+ }
103
+ if (!graphQLDocumentsCache.has(name)) {
104
+ graphQLDocumentsCache.set(name, new Map());
105
+ }
106
+ var graphQLFieldName = "" + operationPrefix + (usePlural ? pluralName : name);
107
+ var graphQLOperationType;
108
+ var graphQLSelectionSet;
109
+ var graphQLArguments;
110
+ var selectionSetFields = Object.values(fields)
111
+ .map(function (_a) {
112
+ var type = _a.type, name = _a.name;
113
+ return typeof type === 'string' && name;
114
+ }) // Only scalars for now
115
+ .filter(Boolean)
116
+ .join(' ');
117
+ switch (modelOperation) {
118
+ case 'CREATE':
119
+ case 'UPDATE':
120
+ case 'DELETE':
121
+ graphQLArguments !== null && graphQLArguments !== void 0 ? graphQLArguments : (graphQLArguments = {
122
+ input: "" + (operationPrefix.charAt(0).toLocaleUpperCase() +
123
+ operationPrefix.slice(1)) + name + "Input!",
124
+ });
125
+ graphQLOperationType !== null && graphQLOperationType !== void 0 ? graphQLOperationType : (graphQLOperationType = 'mutation');
126
+ case 'READ':
127
+ graphQLArguments !== null && graphQLArguments !== void 0 ? graphQLArguments : (graphQLArguments = isCustomPrimaryKey
128
+ ? __spread([primaryKeyFieldName], sortKeyFieldNames).reduce(function (acc, fieldName) {
129
+ acc[fieldName] = fields[fieldName].type;
130
+ return acc;
131
+ }, {})
132
+ : (_a = {},
133
+ _a[primaryKeyFieldName] = fields[primaryKeyFieldName].type + "!",
134
+ _a));
135
+ graphQLSelectionSet !== null && graphQLSelectionSet !== void 0 ? graphQLSelectionSet : (graphQLSelectionSet = selectionSetFields);
136
+ case 'LIST':
137
+ graphQLOperationType !== null && graphQLOperationType !== void 0 ? graphQLOperationType : (graphQLOperationType = 'query');
138
+ graphQLSelectionSet !== null && graphQLSelectionSet !== void 0 ? graphQLSelectionSet : (graphQLSelectionSet = "items { " + selectionSetFields + " }");
139
+ }
140
+ var graphQLDocument = "" + graphQLOperationType + (graphQLArguments
141
+ ? "(" + Object.entries(graphQLArguments).map(function (_a) {
142
+ var _b = __read(_a, 2), fieldName = _b[0], type = _b[1];
143
+ return "$" + fieldName + ": " + type;
144
+ }) + ")"
145
+ : '') + " { " + graphQLFieldName + (graphQLArguments
146
+ ? "(" + Object.keys(graphQLArguments).map(function (fieldName) { return fieldName + ": $" + fieldName; }) + ")"
147
+ : '') + " { " + graphQLSelectionSet + " } }";
148
+ (_c = graphQLDocumentsCache.get(name)) === null || _c === void 0 ? void 0 : _c.set(modelOperation, graphQLDocument);
149
+ return graphQLDocument;
150
+ }
151
+ function buildGraphQLVariables(modelDefinition, operation, arg) {
152
+ var _a;
153
+ var fields = modelDefinition.fields, _b = modelDefinition.primaryKeyInfo, isCustomPrimaryKey = _b.isCustomPrimaryKey, primaryKeyFieldName = _b.primaryKeyFieldName, sortKeyFieldNames = _b.sortKeyFieldNames;
154
+ var variables = {};
155
+ switch (operation) {
156
+ case 'CREATE':
157
+ variables = { input: arg };
158
+ break;
159
+ case 'UPDATE':
160
+ // readonly fields are not updated
161
+ variables = {
162
+ input: Object.fromEntries(Object.entries(arg).filter(function (_a) {
163
+ var _b = __read(_a, 1), fieldName = _b[0];
164
+ var isReadOnly = fields[fieldName].isReadOnly;
165
+ return !isReadOnly;
166
+ })),
167
+ };
168
+ break;
169
+ case 'READ':
170
+ case 'DELETE':
171
+ // only identifiers are sent
172
+ variables = isCustomPrimaryKey
173
+ ? __spread([primaryKeyFieldName], sortKeyFieldNames).reduce(function (acc, fieldName) {
174
+ acc[fieldName] = arg[fieldName];
175
+ return acc;
176
+ }, {})
177
+ : (_a = {}, _a[primaryKeyFieldName] = arg[primaryKeyFieldName], _a);
178
+ if (operation === 'DELETE') {
179
+ variables = { input: variables };
180
+ }
181
+ break;
182
+ case 'LIST':
183
+ break;
184
+ default:
185
+ var exhaustiveCheck = operation;
186
+ throw new Error("Unhandled operation case: " + exhaustiveCheck);
187
+ }
188
+ return variables;
189
+ }
24
190
  export var API = new APIClass(null);
25
191
  Amplify.register(API);
26
192
  //# sourceMappingURL=API.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"API.js","sourceRoot":"","sources":["../src/API.ts"],"names":[],"mappings":";AAIA,OAAO,EAAE,OAAO,EAAE,aAAa,IAAI,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAGrE,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAE3D,IAAM,MAAM,GAAG,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC;AACjC;;;;GAIG;AACH;IAA8B,4BAAgB;IAA9C;;IA6BA,CAAC;IA5BO,gCAAa,GAApB;QACC,OAAO,KAAK,CAAC;IACd,CAAC;IAoBD,0BAAO,GAAP,UACC,OAAuB,EACvB,iBAA6C;QAE7C,OAAO,iBAAM,OAAO,YAAC,OAAO,EAAE,iBAAiB,CAAC,CAAC;IAClD,CAAC;IACF,eAAC;AAAD,CAAC,AA7BD,CAA8B,gBAAgB,GA6B7C;;AAED,MAAM,CAAC,IAAM,GAAG,GAAG,IAAI,QAAQ,CAAC,IAAI,CAAC,CAAC;AACtC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC"}
1
+ {"version":3,"file":"API.js","sourceRoot":"","sources":["../src/API.ts"],"names":[],"mappings":";AASA,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,oCAAoC,CAAC;AAC1E,OAAO,EAAE,OAAO,EAAE,aAAa,IAAI,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAErE,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAG3D,IAAM,MAAM,GAAG,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC;AACjC;;;;GAIG;AACH;IAA8B,4BAAgB;IAA9C;;IAiFA,CAAC;IAhFO,gCAAa,GAApB;QACC,OAAO,KAAK,CAAC;IACd,CAAC;IAoBD,0BAAO,GAAP,UACC,OAAuB,EACvB,iBAA6C;QAE7C,OAAO,iBAAM,OAAO,YAAC,OAAO,EAAE,iBAAiB,CAAC,CAAC;IAClD,CAAC;IAED;;OAEG;IACH,iCAAc,GAAd;;QAAA,iBA+CC;QA9CA,IAAM,MAAM,GAAG,iBAAM,SAAS,YAAC,EAAE,CAAC,CAAC;QAE3B,IAAA,8CAAkB,CAAY;QAEtC,IAAM,MAAM,GAAkB;YAC7B,OAAO,EAAE,SAAS;YAClB,MAAM,EAAE,EAAE;SACV,CAAC;gCAES,KAAK;YACP,IAAA,mBAAI,CAAkB;YAE9B,MAAM,CAAC,MAAM,CAAC,MAAI,CAAC,GAAG,EAAS,CAAC;YAEhC,MAAM,CAAC,OAAO,CAAC,qBAAqB,CAAC,CAAC,OAAO,CAC5C,UAAC,EAA0B;oBAA1B,kBAA0B,EAAzB,WAAG,EAAI,uCAAe;gBACvB,IAAM,SAAS,GAAG,GAAqB,CAAC;gBAExC,kCAAkC;gBAClC,MAAM,CAAC,MAAM,CAAC,MAAI,CAAC,CAAC,eAAe,CAAC,GAAG,UAAO,GAAS;;;;;gCAChD,KAAK,GAAG,uBAAuB,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;gCAClD,SAAS,GAAG,qBAAqB,CAAC,KAAK,EAAE,SAAS,EAAE,GAAG,CAAC,CAAC;gCAElD,qBAAM,IAAI,CAAC,OAAO,CAAC;wCAC/B,KAAK,OAAA;wCACL,SAAS,WAAA;qCACT,CAAC,EAAA;;gCAHI,GAAG,GAAG,CAAC,SAGX,CAAQ;gCAEV,mBAAmB;gCACnB,IAAI,GAAG,CAAC,IAAI,KAAK,SAAS,EAAE;oCACrB,KAAA,OAAQ,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAA,EAA5B,aAAG,CAA0B;oCAEpC,IAAI,GAAG,CAAC,IAAI,CAAC,KAAG,CAAC,CAAC,KAAK,EAAE;wCACxB,sBAAO,GAAG,CAAC,IAAI,CAAC,KAAG,CAAC,CAAC,KAAK,EAAC;qCAC3B;oCAED,sBAAO,GAAG,CAAC,IAAI,CAAC,KAAG,CAAC,EAAC;iCACrB;gCAED,sBAAO,GAAG,EAAC;;;qBACX,CAAC;YACH,CAAC,CACD,CAAC;;;YAjCH,KAAoB,IAAA,KAAA,SAAA,MAAM,CAAC,MAAM,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAA,gBAAA;gBAAvD,IAAM,KAAK,WAAA;wBAAL,KAAK;aAkCf;;;;;;;;;QAED,OAAO,MAAqB,CAAC;IAC9B,CAAC;IACF,eAAC;AAAD,CAAC,AAjFD,CAA8B,gBAAgB,GAiF7C;;AAED,IAAM,qBAAqB,GAAG;IAC7B,MAAM,EAAE,EAAE,eAAe,EAAE,QAAiB,EAAE,SAAS,EAAE,KAAK,EAAE;IAChE,IAAI,EAAE,EAAE,eAAe,EAAE,KAAc,EAAE,SAAS,EAAE,KAAK,EAAE;IAC3D,MAAM,EAAE,EAAE,eAAe,EAAE,QAAiB,EAAE,SAAS,EAAE,KAAK,EAAE;IAChE,MAAM,EAAE,EAAE,eAAe,EAAE,QAAiB,EAAE,SAAS,EAAE,KAAK,EAAE;IAChE,IAAI,EAAE,EAAE,eAAe,EAAE,MAAe,EAAE,SAAS,EAAE,IAAI,EAAE;CAC3D,CAAC;AAKF,IAAM,qBAAqB,GAAG,IAAI,GAAG,EAAuC,CAAC;AAE7E,SAAS,uBAAuB,CAC/B,eAAoB,EACpB,cAA8B;;;IAG7B,IAAA,2BAAI,EACJ,uCAAU,EACV,+BAAM,EACN,mCAIC,EAHA,0CAAkB,EAClB,4CAAmB,EACnB,wCACA,CACkB;IACd,IAAA,0CAAsE,EAApE,oCAAe,EAAE,wBAAmD,CAAC;IAE7E,IAAM,SAAS,SAAG,qBAAqB,CAAC,GAAG,CAAC,IAAI,CAAC,0CAAE,GAAG,CAAC,cAAc,CAAC,CAAC;IAEvE,IAAI,SAAS,KAAK,SAAS,EAAE;QAC5B,OAAO,SAAS,CAAC;KACjB;IAED,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;QACrC,qBAAqB,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,GAAG,EAAE,CAAC,CAAC;KAC3C;IAED,IAAM,gBAAgB,GAAG,KAAG,eAAe,IAAG,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAE,CAAC;IAC9E,IAAI,oBAAsD,CAAC;IAC3D,IAAI,mBAAuC,CAAC;IAC5C,IAAI,gBAAiD,CAAC;IAEtD,IAAM,kBAAkB,GAAG,MAAM,CAAC,MAAM,CAAM,MAAM,CAAC;SACnD,GAAG,CAAC,UAAC,EAAc;YAAZ,cAAI,EAAE,cAAI;QAAO,OAAA,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI;IAAhC,CAAgC,CAAC,CAAC,uBAAuB;SACjF,MAAM,CAAC,OAAO,CAAC;SACf,IAAI,CAAC,GAAG,CAAC,CAAC;IAEZ,QAAQ,cAAc,EAAE;QACvB,KAAK,QAAQ,CAAC;QACd,KAAK,QAAQ,CAAC;QACd,KAAK,QAAQ;YACZ,gBAAgB,aAAhB,gBAAgB,cAAhB,gBAAgB,GACf,CAAC,gBAAgB,GAAG;gBACnB,KAAK,EAAE,MACN,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,iBAAiB,EAAE;oBAC7C,eAAe,CAAC,KAAK,CAAC,CAAC,CAAC,IACtB,IAAI,WAAQ;aACf,CAAC,CAAC;YACJ,oBAAoB,aAApB,oBAAoB,cAApB,oBAAoB,GAAI,CAAC,oBAAoB,GAAG,UAAU,CAAC,CAAC;QAC7D,KAAK,MAAM;YACV,gBAAgB,aAAhB,gBAAgB,cAAhB,gBAAgB,GACf,CAAC,gBAAgB,GAAG,kBAAkB;gBACrC,CAAC,CAAC,UAAC,mBAAmB,GAAK,iBAAiB,EAAE,MAAM,CAClD,UAAC,GAAG,EAAE,SAAS;oBACd,GAAG,CAAC,SAAS,CAAC,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC;oBAExC,OAAO,GAAG,CAAC;gBACZ,CAAC,EACD,EAAE,CACD;gBACH,CAAC;oBACC,GAAC,mBAAmB,IAAM,MAAM,CAAC,mBAAmB,CAAC,CAAC,IAAI,MAAG;uBAC5D,CAAC,CAAC;YACP,mBAAmB,aAAnB,mBAAmB,cAAnB,mBAAmB,GAAI,CAAC,mBAAmB,GAAG,kBAAkB,CAAC,CAAC;QACnE,KAAK,MAAM;YACV,oBAAoB,aAApB,oBAAoB,cAApB,oBAAoB,GAAI,CAAC,oBAAoB,GAAG,OAAO,CAAC,CAAC;YACzD,mBAAmB,aAAnB,mBAAmB,cAAnB,mBAAmB,GAClB,CAAC,mBAAmB,GAAG,aAAW,kBAAkB,OAAI,CAAC,CAAC;KAC5D;IAED,IAAM,eAAe,GAAG,KAAG,oBAAoB,IAC9C,gBAAgB;QACf,CAAC,CAAC,MAAI,MAAM,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC,GAAG,CACxC,UAAC,EAAiB;gBAAjB,kBAAiB,EAAhB,iBAAS,EAAE,YAAI;YAAM,OAAA,MAAK,SAAS,UAAK,IAAM;QAAzB,CAAyB,CAC/C,MAAG;QACN,CAAC,CAAC,EAAE,YACA,gBAAgB,IACrB,gBAAgB;QACf,CAAC,CAAC,MAAI,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,GAAG,CACrC,UAAA,SAAS,IAAI,OAAG,SAAS,WAAO,SAAW,EAA9B,CAA8B,CAC1C,MAAG;QACN,CAAC,CAAC,EAAE,YACA,mBAAmB,SAAM,CAAC;IAEhC,MAAA,qBAAqB,CAAC,GAAG,CAAC,IAAI,CAAC,0CAAE,GAAG,CAAC,cAAc,EAAE,eAAe,EAAE;IAEtE,OAAO,eAAe,CAAC;AACxB,CAAC;AAED,SAAS,qBAAqB,CAC7B,eAAoB,EACpB,SAAyB,EACzB,GAAQ;;IAGP,IAAA,+BAAM,EACN,mCAIC,EAHA,0CAAkB,EAClB,4CAAmB,EACnB,wCACA,CACkB;IAEpB,IAAI,SAAS,GAAG,EAAE,CAAC;IAEnB,QAAQ,SAAS,EAAE;QAClB,KAAK,QAAQ;YACZ,SAAS,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC;YAC3B,MAAM;QACP,KAAK,QAAQ;YACZ,mCAAmC;YACnC,SAAS,GAAG;gBACX,KAAK,EAAE,MAAM,CAAC,WAAW,CACxB,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,UAAC,EAAW;wBAAX,kBAAW,EAAV,iBAAS;oBAC7B,IAAA,yCAAU,CAAuB;oBAEzC,OAAO,CAAC,UAAU,CAAC;gBACpB,CAAC,CAAC,CACF;aACD,CAAC;YACF,MAAM;QACP,KAAK,MAAM,CAAC;QACZ,KAAK,QAAQ;YACZ,4BAA4B;YAC5B,SAAS,GAAG,kBAAkB;gBAC7B,CAAC,CAAC,UAAC,mBAAmB,GAAK,iBAAiB,EAAE,MAAM,CAClD,UAAC,GAAG,EAAE,SAAS;oBACd,GAAG,CAAC,SAAS,CAAC,GAAG,GAAG,CAAC,SAAS,CAAC,CAAC;oBAEhC,OAAO,GAAG,CAAC;gBACZ,CAAC,EACD,EAAE,CACD;gBACH,CAAC,WAAG,GAAC,mBAAmB,IAAG,GAAG,CAAC,mBAAmB,CAAC,KAAE,CAAC;YAEvD,IAAI,SAAS,KAAK,QAAQ,EAAE;gBAC3B,SAAS,GAAG,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC;aACjC;YACD,MAAM;QACP,KAAK,MAAM;YACV,MAAM;QACP;YACC,IAAM,eAAe,GAAU,SAAS,CAAC;YACzC,MAAM,IAAI,KAAK,CAAC,+BAA6B,eAAiB,CAAC,CAAC;KACjE;IAED,OAAO,SAAS,CAAC;AAClB,CAAC;AAeD,MAAM,CAAC,IAAM,GAAG,GAAG,IAAI,QAAQ,CAAC,IAAI,CAAC,CAAC;AACtC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC"}
@@ -1,8 +1,7 @@
1
- import { GraphQLOperation, GraphQLOptions, GraphQLResult, OperationTypeNode } from '@aws-amplify/api-graphql';
1
+ import { GraphQLOperation, GraphQLOptions, GraphQLResult, OperationTypeNode, GraphQLQuery, GraphQLSubscription } from '@aws-amplify/api-graphql';
2
2
  import { CustomUserAgentDetails } from '@aws-amplify/core';
3
3
  import { AWSAppSyncRealTimeProvider } from '@aws-amplify/pubsub';
4
4
  import Observable from 'zen-observable-ts';
5
- import { GraphQLQuery, GraphQLSubscription } from '../types';
6
5
  /**
7
6
  * @deprecated
8
7
  * Use RestApi or GraphQLAPI to reduce your application bundle size
@@ -16,7 +15,7 @@ export declare class InternalAPIClass {
16
15
  private _options;
17
16
  private _restApi;
18
17
  private _graphqlApi;
19
- InternalAuth: import("@aws-amplify/auth/lib-esm/internals/InternalAuth").InternalAuthClass;
18
+ Auth: import("@aws-amplify/auth/lib-esm/Auth").AuthClass;
20
19
  Cache: import("@aws-amplify/cache/lib-esm/types").ICache;
21
20
  Credentials: import("@aws-amplify/core").CredentialsClass;
22
21
  /**
@@ -1,7 +1,7 @@
1
1
  import { __assign, __awaiter, __generator } from "tslib";
2
2
  import { InternalGraphQLAPIClass } from '@aws-amplify/api-graphql/internals';
3
3
  import { RestAPIClass } from '@aws-amplify/api-rest';
4
- import { InternalAuth } from '@aws-amplify/auth/internals';
4
+ import { Auth } from '@aws-amplify/auth';
5
5
  import { Cache } from '@aws-amplify/cache';
6
6
  import { Amplify, ApiAction, Category, Credentials, ConsoleLogger as Logger, } from '@aws-amplify/core';
7
7
  var logger = new Logger('API');
@@ -16,7 +16,7 @@ var InternalAPIClass = /** @class */ (function () {
16
16
  * @param {Object} options - Configuration object for API
17
17
  */
18
18
  function InternalAPIClass(options) {
19
- this.InternalAuth = InternalAuth;
19
+ this.Auth = Auth;
20
20
  this.Cache = Cache;
21
21
  this.Credentials = Credentials;
22
22
  this._options = options;
@@ -36,7 +36,7 @@ var InternalAPIClass = /** @class */ (function () {
36
36
  this._options = Object.assign({}, this._options, options);
37
37
  // Share Amplify instance with client for SSR
38
38
  this._restApi.Credentials = this.Credentials;
39
- this._graphqlApi.InternalAuth = this.InternalAuth;
39
+ this._graphqlApi.Auth = this.Auth;
40
40
  this._graphqlApi.Cache = this.Cache;
41
41
  this._graphqlApi.Credentials = this.Credentials;
42
42
  var restAPIConfig = this._restApi.configure(this._options);
@@ -1 +1 @@
1
- {"version":3,"file":"InternalAPI.js","sourceRoot":"","sources":["../../src/internals/InternalAPI.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"InternalAPI.js","sourceRoot":"","sources":["../../src/internals/InternalAPI.ts"],"names":[],"mappings":"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"}
@@ -3,11 +3,4 @@
3
3
  * generates code that relies on this import path https://github.com/aws-amplify/amplify-cli/issues/3863
4
4
  * This will be removed in future release when CLI and customers moves to recommeneded import styles.
5
5
  */
6
- export { graphqlOperation, GraphQLAuthError, GraphQLResult, GRAPHQL_AUTH_MODE, } from '@aws-amplify/api-graphql';
7
- declare const queryType: unique symbol;
8
- export declare type GraphQLQuery<T> = T & {
9
- readonly [queryType]: 'query';
10
- };
11
- export declare type GraphQLSubscription<T> = T & {
12
- readonly [queryType]: 'subscription';
13
- };
6
+ export { graphqlOperation, GraphQLAuthError, GraphQLResult, GRAPHQL_AUTH_MODE, GraphQLQuery, GraphQLSubscription, } from '@aws-amplify/api-graphql';
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA,qEAAqE;AACrE,sCAAsC;AAEtC;;;;GAIG;AACH,OAAO,EACN,gBAAgB,EAChB,gBAAgB,EAEhB,iBAAiB,GACjB,MAAM,0BAA0B,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA,qEAAqE;AACrE,sCAAsC;AAEtC;;;;GAIG;AACH,OAAO,EACN,gBAAgB,EAChB,gBAAgB,EAEhB,iBAAiB,GAGjB,MAAM,0BAA0B,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aws-amplify/api",
3
- "version": "5.4.4-user-agent-backup.c6dfb36.0+c6dfb36",
3
+ "version": "5.4.5-api-v6.26fa5d0.0+26fa5d0",
4
4
  "description": "Api category of aws-amplify",
5
5
  "main": "./lib/index.js",
6
6
  "module": "./lib-esm/index.js",
@@ -35,7 +35,7 @@
35
35
  "clean:size": "rimraf dual-publish-tmp tmp*",
36
36
  "format": "echo \"Not implemented\"",
37
37
  "lint": "tslint 'src/**/*.ts' && npm run ts-coverage",
38
- "ts-coverage": "typescript-coverage-report -p ./tsconfig.build.json -t 91.93"
38
+ "ts-coverage": "typescript-coverage-report -p ./tsconfig.build.json -t 88"
39
39
  },
40
40
  "repository": {
41
41
  "type": "git",
@@ -48,7 +48,8 @@
48
48
  },
49
49
  "homepage": "https://aws-amplify.github.io/",
50
50
  "devDependencies": {
51
- "@types/zen-observable": "^0.8.0"
51
+ "@types/zen-observable": "^0.8.0",
52
+ "typescript": "5.1.6"
52
53
  },
53
54
  "files": [
54
55
  "lib",
@@ -58,16 +59,17 @@
58
59
  "internals"
59
60
  ],
60
61
  "dependencies": {
61
- "@aws-amplify/api-graphql": "3.4.10-user-agent-backup.c6dfb36.0+c6dfb36",
62
- "@aws-amplify/api-rest": "3.5.4-user-agent-backup.c6dfb36.0+c6dfb36",
63
- "tslib": "^1.8.0"
62
+ "@aws-amplify/api-graphql": "3.4.11-api-v6.26fa5d0.0+26fa5d0",
63
+ "@aws-amplify/api-rest": "3.5.5-api-v6.26fa5d0.0+26fa5d0",
64
+ "@aws-amplify/types-package-alpha": "0.0.1-api-v6.26fa5d0.0+26fa5d0",
65
+ "tslib": "^2.6.1"
64
66
  },
65
67
  "size-limit": [
66
68
  {
67
69
  "name": "API (top-level class)",
68
70
  "path": "./lib-esm/index.js",
69
71
  "import": "{ Amplify, API }",
70
- "limit": "91.12 kB"
72
+ "limit": "93.82 kB"
71
73
  }
72
74
  ],
73
75
  "jest": {
@@ -114,5 +116,5 @@
114
116
  "lib-esm"
115
117
  ]
116
118
  },
117
- "gitHead": "c6dfb36977fa8dee00a9200569b69f41a4ac8c2d"
119
+ "gitHead": "26fa5d0a69db52eda29ec36eb31762b86cd30392"
118
120
  }
package/src/API.ts CHANGED
@@ -1,11 +1,17 @@
1
1
  // Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
2
2
  // SPDX-License-Identifier: Apache-2.0
3
3
  import { AWSAppSyncRealTimeProvider } from '@aws-amplify/pubsub';
4
- import { GraphQLOptions, GraphQLResult } from '@aws-amplify/api-graphql';
4
+ import {
5
+ GraphQLOptions,
6
+ GraphQLResult,
7
+ GraphQLQuery,
8
+ GraphQLSubscription,
9
+ } from '@aws-amplify/api-graphql';
10
+ import { graphql as v6graphql } from '@aws-amplify/api-graphql/internals';
5
11
  import { Amplify, ConsoleLogger as Logger } from '@aws-amplify/core';
6
12
  import Observable from 'zen-observable-ts';
7
- import { GraphQLQuery, GraphQLSubscription } from './types';
8
13
  import { InternalAPIClass } from './internals/InternalAPI';
14
+ import type { ModelTypes } from '@aws-amplify/types-package-alpha';
9
15
 
10
16
  const logger = new Logger('API');
11
17
  /**
@@ -42,7 +48,233 @@ export class APIClass extends InternalAPIClass {
42
48
  ): Promise<GraphQLResult<any>> | Observable<object> {
43
49
  return super.graphql(options, additionalHeaders);
44
50
  }
51
+
52
+ /**
53
+ * Generates an API client that can work with models or raw GraphQL
54
+ */
55
+ generateClient<T extends Record<any, any> = never>(): V6Client<T> {
56
+ const config = super.configure({});
57
+
58
+ const { modelIntrospection } = config;
59
+
60
+ const client: V6Client<any> = {
61
+ graphql: v6graphql,
62
+ models: {},
63
+ };
64
+
65
+ for (const model of Object.values(modelIntrospection.models)) {
66
+ const { name } = model as any;
67
+
68
+ client.models[name] = {} as any;
69
+
70
+ Object.entries(graphQLOperationsInfo).forEach(
71
+ ([key, { operationPrefix }]) => {
72
+ const operation = key as ModelOperation;
73
+
74
+ // e.g. clients.models.Todo.update
75
+ client.models[name][operationPrefix] = async (arg?: any) => {
76
+ const query = generateGraphQLDocument(model, operation);
77
+ const variables = buildGraphQLVariables(model, operation, arg);
78
+
79
+ const res = (await this.graphql({
80
+ query,
81
+ variables,
82
+ })) as any;
83
+
84
+ // flatten response
85
+ if (res.data !== undefined) {
86
+ const [key] = Object.keys(res.data);
87
+
88
+ if (res.data[key].items) {
89
+ return res.data[key].items;
90
+ }
91
+
92
+ return res.data[key];
93
+ }
94
+
95
+ return res;
96
+ };
97
+ }
98
+ );
99
+ }
100
+
101
+ return client as V6Client<T>;
102
+ }
103
+ }
104
+
105
+ const graphQLOperationsInfo = {
106
+ CREATE: { operationPrefix: 'create' as const, usePlural: false },
107
+ READ: { operationPrefix: 'get' as const, usePlural: false },
108
+ UPDATE: { operationPrefix: 'update' as const, usePlural: false },
109
+ DELETE: { operationPrefix: 'delete' as const, usePlural: false },
110
+ LIST: { operationPrefix: 'list' as const, usePlural: true },
111
+ };
112
+ type ModelOperation = keyof typeof graphQLOperationsInfo;
113
+ type OperationPrefix =
114
+ (typeof graphQLOperationsInfo)[ModelOperation]['operationPrefix'];
115
+
116
+ const graphQLDocumentsCache = new Map<string, Map<ModelOperation, string>>();
117
+
118
+ function generateGraphQLDocument(
119
+ modelDefinition: any,
120
+ modelOperation: ModelOperation
121
+ ): string {
122
+ const {
123
+ name,
124
+ pluralName,
125
+ fields,
126
+ primaryKeyInfo: {
127
+ isCustomPrimaryKey,
128
+ primaryKeyFieldName,
129
+ sortKeyFieldNames,
130
+ },
131
+ } = modelDefinition;
132
+ const { operationPrefix, usePlural } = graphQLOperationsInfo[modelOperation];
133
+
134
+ const fromCache = graphQLDocumentsCache.get(name)?.get(modelOperation);
135
+
136
+ if (fromCache !== undefined) {
137
+ return fromCache;
138
+ }
139
+
140
+ if (!graphQLDocumentsCache.has(name)) {
141
+ graphQLDocumentsCache.set(name, new Map());
142
+ }
143
+
144
+ const graphQLFieldName = `${operationPrefix}${usePlural ? pluralName : name}`;
145
+ let graphQLOperationType: 'mutation' | 'query' | undefined;
146
+ let graphQLSelectionSet: string | undefined;
147
+ let graphQLArguments: Record<string, any> | undefined;
148
+
149
+ const selectionSetFields = Object.values<any>(fields)
150
+ .map(({ type, name }) => typeof type === 'string' && name) // Only scalars for now
151
+ .filter(Boolean)
152
+ .join(' ');
153
+
154
+ switch (modelOperation) {
155
+ case 'CREATE':
156
+ case 'UPDATE':
157
+ case 'DELETE':
158
+ graphQLArguments ??
159
+ (graphQLArguments = {
160
+ input: `${
161
+ operationPrefix.charAt(0).toLocaleUpperCase() +
162
+ operationPrefix.slice(1)
163
+ }${name}Input!`,
164
+ });
165
+ graphQLOperationType ?? (graphQLOperationType = 'mutation');
166
+ case 'READ':
167
+ graphQLArguments ??
168
+ (graphQLArguments = isCustomPrimaryKey
169
+ ? [primaryKeyFieldName, ...sortKeyFieldNames].reduce(
170
+ (acc, fieldName) => {
171
+ acc[fieldName] = fields[fieldName].type;
172
+
173
+ return acc;
174
+ },
175
+ {}
176
+ )
177
+ : {
178
+ [primaryKeyFieldName]: `${fields[primaryKeyFieldName].type}!`,
179
+ });
180
+ graphQLSelectionSet ?? (graphQLSelectionSet = selectionSetFields);
181
+ case 'LIST':
182
+ graphQLOperationType ?? (graphQLOperationType = 'query');
183
+ graphQLSelectionSet ??
184
+ (graphQLSelectionSet = `items { ${selectionSetFields} }`);
185
+ }
186
+
187
+ const graphQLDocument = `${graphQLOperationType}${
188
+ graphQLArguments
189
+ ? `(${Object.entries(graphQLArguments).map(
190
+ ([fieldName, type]) => `\$${fieldName}: ${type}`
191
+ )})`
192
+ : ''
193
+ } { ${graphQLFieldName}${
194
+ graphQLArguments
195
+ ? `(${Object.keys(graphQLArguments).map(
196
+ fieldName => `${fieldName}: \$${fieldName}`
197
+ )})`
198
+ : ''
199
+ } { ${graphQLSelectionSet} } }`;
200
+
201
+ graphQLDocumentsCache.get(name)?.set(modelOperation, graphQLDocument);
202
+
203
+ return graphQLDocument;
45
204
  }
46
205
 
206
+ function buildGraphQLVariables(
207
+ modelDefinition: any,
208
+ operation: ModelOperation,
209
+ arg: any
210
+ ): object {
211
+ const {
212
+ fields,
213
+ primaryKeyInfo: {
214
+ isCustomPrimaryKey,
215
+ primaryKeyFieldName,
216
+ sortKeyFieldNames,
217
+ },
218
+ } = modelDefinition;
219
+
220
+ let variables = {};
221
+
222
+ switch (operation) {
223
+ case 'CREATE':
224
+ variables = { input: arg };
225
+ break;
226
+ case 'UPDATE':
227
+ // readonly fields are not updated
228
+ variables = {
229
+ input: Object.fromEntries(
230
+ Object.entries(arg).filter(([fieldName]) => {
231
+ const { isReadOnly } = fields[fieldName];
232
+
233
+ return !isReadOnly;
234
+ })
235
+ ),
236
+ };
237
+ break;
238
+ case 'READ':
239
+ case 'DELETE':
240
+ // only identifiers are sent
241
+ variables = isCustomPrimaryKey
242
+ ? [primaryKeyFieldName, ...sortKeyFieldNames].reduce(
243
+ (acc, fieldName) => {
244
+ acc[fieldName] = arg[fieldName];
245
+
246
+ return acc;
247
+ },
248
+ {}
249
+ )
250
+ : { [primaryKeyFieldName]: arg[primaryKeyFieldName] };
251
+
252
+ if (operation === 'DELETE') {
253
+ variables = { input: variables };
254
+ }
255
+ break;
256
+ case 'LIST':
257
+ break;
258
+ default:
259
+ const exhaustiveCheck: never = operation;
260
+ throw new Error(`Unhandled operation case: ${exhaustiveCheck}`);
261
+ }
262
+
263
+ return variables;
264
+ }
265
+
266
+ type FilteredKeys<T> = {
267
+ [P in keyof T]: T[P] extends never ? never : P;
268
+ }[keyof T];
269
+ type ExcludeNeverFields<O> = {
270
+ [K in FilteredKeys<O>]: O[K];
271
+ };
272
+
273
+ // If no T is passed, ExcludeNeverFields removes "models" from the client
274
+ declare type V6Client<T extends Record<any, any> = never> = ExcludeNeverFields<{
275
+ graphql: typeof v6graphql;
276
+ models: ModelTypes<T>;
277
+ }>;
278
+
47
279
  export const API = new APIClass(null);
48
280
  Amplify.register(API);
@@ -5,10 +5,12 @@ import {
5
5
  GraphQLOptions,
6
6
  GraphQLResult,
7
7
  OperationTypeNode,
8
+ GraphQLQuery,
9
+ GraphQLSubscription,
8
10
  } from '@aws-amplify/api-graphql';
9
11
  import { InternalGraphQLAPIClass } from '@aws-amplify/api-graphql/internals';
10
12
  import { RestAPIClass } from '@aws-amplify/api-rest';
11
- import { InternalAuth } from '@aws-amplify/auth/internals';
13
+ import { Auth } from '@aws-amplify/auth';
12
14
  import { Cache } from '@aws-amplify/cache';
13
15
  import {
14
16
  Amplify,
@@ -20,7 +22,6 @@ import {
20
22
  } from '@aws-amplify/core';
21
23
  import { AWSAppSyncRealTimeProvider } from '@aws-amplify/pubsub';
22
24
  import Observable from 'zen-observable-ts';
23
- import { GraphQLQuery, GraphQLSubscription } from '../types';
24
25
 
25
26
  const logger = new Logger('API');
26
27
  /**
@@ -37,7 +38,7 @@ export class InternalAPIClass {
37
38
  private _restApi: RestAPIClass;
38
39
  private _graphqlApi: InternalGraphQLAPIClass;
39
40
 
40
- InternalAuth = InternalAuth;
41
+ Auth = Auth;
41
42
  Cache = Cache;
42
43
  Credentials = Credentials;
43
44
 
@@ -67,7 +68,7 @@ export class InternalAPIClass {
67
68
  // Share Amplify instance with client for SSR
68
69
  this._restApi.Credentials = this.Credentials;
69
70
 
70
- this._graphqlApi.InternalAuth = this.InternalAuth;
71
+ this._graphqlApi.Auth = this.Auth;
71
72
  this._graphqlApi.Cache = this.Cache;
72
73
  this._graphqlApi.Credentials = this.Credentials;
73
74
 
@@ -11,12 +11,6 @@ export {
11
11
  GraphQLAuthError,
12
12
  GraphQLResult,
13
13
  GRAPHQL_AUTH_MODE,
14
+ GraphQLQuery,
15
+ GraphQLSubscription,
14
16
  } from '@aws-amplify/api-graphql';
15
-
16
- // Opaque type used for determining the graphql query type
17
- declare const queryType: unique symbol;
18
-
19
- export type GraphQLQuery<T> = T & { readonly [queryType]: 'query' };
20
- export type GraphQLSubscription<T> = T & {
21
- readonly [queryType]: 'subscription';
22
- };