@aws-amplify/data-schema 1.3.10 → 1.4.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/dist/cjs/ModelType.js +5 -0
- package/dist/cjs/ModelType.js.map +1 -1
- package/dist/cjs/SchemaProcessor.js +58 -1
- package/dist/cjs/SchemaProcessor.js.map +1 -1
- package/dist/cjs/runtime/addSchemaToClient.js +1 -0
- package/dist/cjs/runtime/addSchemaToClient.js.map +1 -1
- package/dist/cjs/runtime/addSchemaToClientWithInstance.js +1 -0
- package/dist/cjs/runtime/addSchemaToClientWithInstance.js.map +1 -1
- package/dist/cjs/runtime/internals/APIClient.js +63 -42
- package/dist/cjs/runtime/internals/APIClient.js.map +1 -1
- package/dist/cjs/runtime/internals/cancellation.js +48 -0
- package/dist/cjs/runtime/internals/cancellation.js.map +1 -0
- package/dist/cjs/runtime/internals/clientUtils.js +45 -3
- package/dist/cjs/runtime/internals/clientUtils.js.map +1 -1
- package/dist/cjs/runtime/internals/index.js +3 -1
- package/dist/cjs/runtime/internals/index.js.map +1 -1
- package/dist/cjs/runtime/internals/operations/custom.js +91 -85
- package/dist/cjs/runtime/internals/operations/custom.js.map +1 -1
- package/dist/cjs/runtime/internals/operations/get.js +71 -65
- package/dist/cjs/runtime/internals/operations/get.js.map +1 -1
- package/dist/cjs/runtime/internals/operations/indexQuery.js +66 -60
- package/dist/cjs/runtime/internals/operations/indexQuery.js.map +1 -1
- package/dist/cjs/runtime/internals/operations/list.js +90 -84
- package/dist/cjs/runtime/internals/operations/list.js.map +1 -1
- package/dist/cjs/runtime/internals/server/generateModelsProperty.js +3 -3
- package/dist/cjs/runtime/internals/server/generateModelsProperty.js.map +1 -1
- package/dist/cjs/runtime/internals/utils/clientProperties/generateModelsProperty.js +3 -3
- package/dist/cjs/runtime/internals/utils/clientProperties/generateModelsProperty.js.map +1 -1
- package/dist/cjs/runtime/utils/index.js +3 -1
- package/dist/cjs/runtime/utils/index.js.map +1 -1
- package/dist/cjs/runtime/utils/selfAwareAsync.js +40 -0
- package/dist/cjs/runtime/utils/selfAwareAsync.js.map +1 -0
- package/dist/esm/Authorization.d.ts +1 -1
- package/dist/esm/ClientSchema/Core/ClientModel.d.ts +20 -1
- package/dist/esm/ClientSchema/utilities/ResolveField.d.ts +5 -1
- package/dist/esm/ModelType.d.ts +6 -0
- package/dist/esm/ModelType.mjs +5 -0
- package/dist/esm/ModelType.mjs.map +1 -1
- package/dist/esm/SchemaProcessor.mjs +58 -1
- package/dist/esm/SchemaProcessor.mjs.map +1 -1
- package/dist/esm/runtime/addSchemaToClient.mjs +2 -0
- package/dist/esm/runtime/addSchemaToClient.mjs.map +1 -1
- package/dist/esm/runtime/addSchemaToClientWithInstance.mjs +2 -0
- package/dist/esm/runtime/addSchemaToClientWithInstance.mjs.map +1 -1
- package/dist/esm/runtime/bridge-types.d.ts +2 -2
- package/dist/esm/runtime/client/index.d.ts +6 -6
- package/dist/esm/runtime/internals/APIClient.d.ts +2 -2
- package/dist/esm/runtime/internals/APIClient.mjs +64 -42
- package/dist/esm/runtime/internals/APIClient.mjs.map +1 -1
- package/dist/esm/runtime/internals/cancellation.d.ts +10 -0
- package/dist/esm/runtime/internals/cancellation.mjs +44 -0
- package/dist/esm/runtime/internals/cancellation.mjs.map +1 -0
- package/dist/esm/runtime/internals/clientUtils.d.ts +78 -1
- package/dist/esm/runtime/internals/clientUtils.mjs +45 -3
- package/dist/esm/runtime/internals/clientUtils.mjs.map +1 -1
- package/dist/esm/runtime/internals/index.d.ts +1 -0
- package/dist/esm/runtime/internals/index.mjs +1 -0
- package/dist/esm/runtime/internals/index.mjs.map +1 -1
- package/dist/esm/runtime/internals/operations/custom.d.ts +1 -1
- package/dist/esm/runtime/internals/operations/custom.mjs +91 -85
- package/dist/esm/runtime/internals/operations/custom.mjs.map +1 -1
- package/dist/esm/runtime/internals/operations/get.d.ts +1 -1
- package/dist/esm/runtime/internals/operations/get.mjs +71 -65
- package/dist/esm/runtime/internals/operations/get.mjs.map +1 -1
- package/dist/esm/runtime/internals/operations/indexQuery.d.ts +1 -1
- package/dist/esm/runtime/internals/operations/indexQuery.mjs +66 -60
- package/dist/esm/runtime/internals/operations/indexQuery.mjs.map +1 -1
- package/dist/esm/runtime/internals/operations/list.d.ts +1 -1
- package/dist/esm/runtime/internals/operations/list.mjs +90 -84
- package/dist/esm/runtime/internals/operations/list.mjs.map +1 -1
- package/dist/esm/runtime/internals/server/generateModelsProperty.mjs +4 -4
- package/dist/esm/runtime/internals/server/generateModelsProperty.mjs.map +1 -1
- package/dist/esm/runtime/internals/utils/clientProperties/generateModelsProperty.mjs +4 -4
- package/dist/esm/runtime/internals/utils/clientProperties/generateModelsProperty.mjs.map +1 -1
- package/dist/esm/runtime/utils/index.d.ts +1 -0
- package/dist/esm/runtime/utils/index.mjs +1 -0
- package/dist/esm/runtime/utils/index.mjs.map +1 -1
- package/dist/esm/runtime/utils/selfAwareAsync.d.ts +19 -0
- package/dist/esm/runtime/utils/selfAwareAsync.mjs +37 -0
- package/dist/esm/runtime/utils/selfAwareAsync.mjs.map +1 -0
- package/dist/meta/cjs.tsbuildinfo +1 -1
- package/package.json +2 -2
- package/src/ClientSchema/Core/ClientModel.ts +29 -0
- package/src/ClientSchema/utilities/ResolveField.ts +26 -6
- package/src/ModelType.ts +31 -0
- package/src/SchemaProcessor.ts +77 -2
- package/src/runtime/addSchemaToClient.ts +2 -0
- package/src/runtime/addSchemaToClientWithInstance.ts +2 -0
- package/src/runtime/bridge-types.ts +2 -2
- package/src/runtime/client/index.ts +207 -184
- package/src/runtime/internals/APIClient.ts +67 -23
- package/src/runtime/internals/cancellation.ts +57 -0
- package/src/runtime/internals/clientUtils.ts +61 -1
- package/src/runtime/internals/index.ts +1 -0
- package/src/runtime/internals/operations/custom.ts +117 -109
- package/src/runtime/internals/operations/get.ts +111 -95
- package/src/runtime/internals/operations/indexQuery.ts +100 -94
- package/src/runtime/internals/operations/list.ts +132 -119
- package/src/runtime/internals/server/generateModelsProperty.ts +31 -28
- package/src/runtime/internals/utils/clientProperties/generateModelsProperty.ts +36 -33
- package/src/runtime/utils/index.ts +1 -0
- package/src/runtime/utils/selfAwareAsync.ts +39 -0
|
@@ -295,7 +295,7 @@ type IndexQueryMethod<Model extends ClientSchemaByEntityTypeBaseShape['models'][
|
|
|
295
295
|
authToken?: string;
|
|
296
296
|
headers?: CustomHeaders;
|
|
297
297
|
}) => ListReturnValue<Prettify<ReturnValue<Model, FlatModel, SelectionSet>>>;
|
|
298
|
-
type ModelTypesClient<Model extends ClientSchemaByEntityTypeBaseShape['models'][string], FlatModel extends Record<string, unknown> = ResolvedModel<Model['type']>> = IndexQueryMethods<Model> & {
|
|
298
|
+
type ModelTypesClient<Model extends ClientSchemaByEntityTypeBaseShape['models'][string], FlatModel extends Record<string, unknown> = ResolvedModel<Model['type']>> = IndexQueryMethods<Model> & Omit<{
|
|
299
299
|
create: (model: Model['createType'], options?: {
|
|
300
300
|
authMode?: AuthMode;
|
|
301
301
|
authToken?: string;
|
|
@@ -353,8 +353,8 @@ type ModelTypesClient<Model extends ClientSchemaByEntityTypeBaseShape['models'][
|
|
|
353
353
|
authMode?: AuthMode;
|
|
354
354
|
authToken?: string;
|
|
355
355
|
}): ObserveQueryReturnValue<Prettify<ReturnValue<Model, FlatModel, SelectionSet>>>;
|
|
356
|
-
}
|
|
357
|
-
type ModelTypesSSRCookies<Model extends ClientSchemaByEntityTypeBaseShape['models'][string], FlatModel extends Record<string, unknown> = ResolvedModel<Model['type']>> = IndexQueryMethods<Model> & {
|
|
356
|
+
}, keyof Model['__meta']['disabledOperations']>;
|
|
357
|
+
type ModelTypesSSRCookies<Model extends ClientSchemaByEntityTypeBaseShape['models'][string], FlatModel extends Record<string, unknown> = ResolvedModel<Model['type']>> = IndexQueryMethods<Model> & Omit<{
|
|
358
358
|
create: (model: Model['createType'], options?: {
|
|
359
359
|
authMode?: AuthMode;
|
|
360
360
|
authToken?: string;
|
|
@@ -386,8 +386,8 @@ type ModelTypesSSRCookies<Model extends ClientSchemaByEntityTypeBaseShape['model
|
|
|
386
386
|
authToken?: string;
|
|
387
387
|
headers?: CustomHeaders;
|
|
388
388
|
}): ListReturnValue<Prettify<ReturnValue<Model, FlatModel, SelectionSet>>>;
|
|
389
|
-
}
|
|
390
|
-
type ModelTypesSSRRequest<Model extends ClientSchemaByEntityTypeBaseShape['models'][string], FlatModel extends Record<string, unknown> = ResolvedModel<Model['type']>> = IndexQueryMethods<Model, 'REQUEST'> & {
|
|
389
|
+
}, keyof Model['__meta']['disabledOperations']>;
|
|
390
|
+
type ModelTypesSSRRequest<Model extends ClientSchemaByEntityTypeBaseShape['models'][string], FlatModel extends Record<string, unknown> = ResolvedModel<Model['type']>> = IndexQueryMethods<Model, 'REQUEST'> & Omit<{
|
|
391
391
|
create: (contextSpec: AmplifyServer.ContextSpec, model: Model['createType'], options?: {
|
|
392
392
|
authMode?: AuthMode;
|
|
393
393
|
authToken?: string;
|
|
@@ -419,7 +419,7 @@ type ModelTypesSSRRequest<Model extends ClientSchemaByEntityTypeBaseShape['model
|
|
|
419
419
|
authToken?: string;
|
|
420
420
|
headers?: CustomHeaders;
|
|
421
421
|
}): ListReturnValue<Prettify<ReturnValue<Model, FlatModel, SelectionSet>>>;
|
|
422
|
-
}
|
|
422
|
+
}, keyof Model['__meta']['disabledOperations']>;
|
|
423
423
|
type ContextType = 'CLIENT' | 'COOKIES' | 'REQUEST';
|
|
424
424
|
export type ModelTypes<T extends Record<any, any>, Context extends ContextType = 'CLIENT', Schema extends ClientSchemaByEntityType<T> = ClientSchemaByEntityType<T>> = {
|
|
425
425
|
[ModelName in keyof Schema['models']]: Context extends 'CLIENT' ? ModelTypesClient<Schema['models'][ModelName]> : Context extends 'COOKIES' ? ModelTypesSSRCookies<Schema['models'][ModelName]> : Context extends 'REQUEST' ? ModelTypesSSRRequest<Schema['models'][ModelName]> : never;
|
|
@@ -51,7 +51,7 @@ export declare const graphQLOperationsInfo: {
|
|
|
51
51
|
readonly operationPrefix: "create";
|
|
52
52
|
readonly usePlural: false;
|
|
53
53
|
};
|
|
54
|
-
readonly
|
|
54
|
+
readonly GET: {
|
|
55
55
|
readonly operationPrefix: "get";
|
|
56
56
|
readonly usePlural: false;
|
|
57
57
|
};
|
|
@@ -83,7 +83,7 @@ export declare const graphQLOperationsInfo: {
|
|
|
83
83
|
readonly operationPrefix: "onDelete";
|
|
84
84
|
readonly usePlural: false;
|
|
85
85
|
};
|
|
86
|
-
readonly
|
|
86
|
+
readonly OBSERVEQUERY: {
|
|
87
87
|
readonly operationPrefix: "observeQuery";
|
|
88
88
|
readonly usePlural: false;
|
|
89
89
|
};
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import { resolveOwnerFields } from '../utils/resolveOwnerFields.mjs';
|
|
2
2
|
import { capitalize } from '../utils/stringTransformation.mjs';
|
|
3
|
+
import { selfAwareAsync } from '../utils/selfAwareAsync.mjs';
|
|
4
|
+
import { extendCancellability } from './cancellation.mjs';
|
|
3
5
|
|
|
4
6
|
// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
|
5
7
|
const connectionType = {
|
|
@@ -166,6 +168,10 @@ function initializeModel(client, modelName, result, modelIntrospection, authMode
|
|
|
166
168
|
return (acc[curVal] = record[curVal]);
|
|
167
169
|
}
|
|
168
170
|
}, {});
|
|
171
|
+
// if get is disabled on the related model
|
|
172
|
+
if (client.models[relatedModelName].get === undefined) {
|
|
173
|
+
break;
|
|
174
|
+
}
|
|
169
175
|
if (context) {
|
|
170
176
|
initializedRelationalFields[fieldName] = (contextSpec, options) => {
|
|
171
177
|
if (record[targetNames[0]]) {
|
|
@@ -228,18 +234,24 @@ function initializeModel(client, modelName, result, modelIntrospection, authMode
|
|
|
228
234
|
}
|
|
229
235
|
return { [field]: { eq: record[parentSK[idx - 1]] } };
|
|
230
236
|
});
|
|
237
|
+
// if list is disabled on the related model
|
|
238
|
+
if (client.models[relatedModelName].list === undefined) {
|
|
239
|
+
break;
|
|
240
|
+
}
|
|
231
241
|
if (context) {
|
|
232
242
|
initializedRelationalFields[fieldName] = (contextSpec, options) => {
|
|
233
243
|
if (record[parentPk]) {
|
|
234
|
-
return
|
|
235
|
-
.list(contextSpec, {
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
244
|
+
return selfAwareAsync(async (resultPromise) => {
|
|
245
|
+
const basePromise = client.models[relatedModelName].list(contextSpec, {
|
|
246
|
+
filter: { and: hasManyFilter },
|
|
247
|
+
limit: options?.limit,
|
|
248
|
+
nextToken: options?.nextToken,
|
|
249
|
+
authMode: options?.authMode || authMode,
|
|
250
|
+
authToken: options?.authToken || authToken,
|
|
251
|
+
});
|
|
252
|
+
const extendedBase = extendCancellability(basePromise, resultPromise);
|
|
253
|
+
return mapResult((await extendedBase));
|
|
254
|
+
});
|
|
243
255
|
}
|
|
244
256
|
return [];
|
|
245
257
|
};
|
|
@@ -247,15 +259,17 @@ function initializeModel(client, modelName, result, modelIntrospection, authMode
|
|
|
247
259
|
else {
|
|
248
260
|
initializedRelationalFields[fieldName] = (options) => {
|
|
249
261
|
if (record[parentPk]) {
|
|
250
|
-
return
|
|
251
|
-
.list({
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
262
|
+
return selfAwareAsync(async (resultPromise) => {
|
|
263
|
+
const basePromise = client.models[relatedModelName].list({
|
|
264
|
+
filter: { and: hasManyFilter },
|
|
265
|
+
limit: options?.limit,
|
|
266
|
+
nextToken: options?.nextToken,
|
|
267
|
+
authMode: options?.authMode || authMode,
|
|
268
|
+
authToken: options?.authToken || authToken,
|
|
269
|
+
});
|
|
270
|
+
const extendedBase = extendCancellability(basePromise, resultPromise);
|
|
271
|
+
return mapResult((await extendedBase));
|
|
272
|
+
});
|
|
259
273
|
}
|
|
260
274
|
return [];
|
|
261
275
|
};
|
|
@@ -268,18 +282,24 @@ function initializeModel(client, modelName, result, modelIntrospection, authMode
|
|
|
268
282
|
}
|
|
269
283
|
return { [field]: { eq: record[parentSK[idx - 1]] } };
|
|
270
284
|
});
|
|
285
|
+
// if list is disabled on the related model
|
|
286
|
+
if (client.models[relatedModelName].list === undefined) {
|
|
287
|
+
break;
|
|
288
|
+
}
|
|
271
289
|
if (context) {
|
|
272
290
|
initializedRelationalFields[fieldName] = (contextSpec, options) => {
|
|
273
291
|
if (record[parentPk]) {
|
|
274
|
-
return
|
|
275
|
-
.list(contextSpec, {
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
292
|
+
return selfAwareAsync(async (resultPromise) => {
|
|
293
|
+
const basePromise = client.models[relatedModelName].list(contextSpec, {
|
|
294
|
+
filter: { and: hasManyFilter },
|
|
295
|
+
limit: options?.limit,
|
|
296
|
+
nextToken: options?.nextToken,
|
|
297
|
+
authMode: options?.authMode || authMode,
|
|
298
|
+
authToken: options?.authToken || authToken,
|
|
299
|
+
});
|
|
300
|
+
const extendedBase = extendCancellability(basePromise, resultPromise);
|
|
301
|
+
return mapResult((await extendedBase));
|
|
302
|
+
});
|
|
283
303
|
}
|
|
284
304
|
return [];
|
|
285
305
|
};
|
|
@@ -287,15 +307,17 @@ function initializeModel(client, modelName, result, modelIntrospection, authMode
|
|
|
287
307
|
else {
|
|
288
308
|
initializedRelationalFields[fieldName] = (options) => {
|
|
289
309
|
if (record[parentPk]) {
|
|
290
|
-
return
|
|
291
|
-
.list({
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
310
|
+
return selfAwareAsync(async (resultPromise) => {
|
|
311
|
+
const basePromise = client.models[relatedModelName].list({
|
|
312
|
+
filter: { and: hasManyFilter },
|
|
313
|
+
limit: options?.limit,
|
|
314
|
+
nextToken: options?.nextToken,
|
|
315
|
+
authMode: options?.authMode || authMode,
|
|
316
|
+
authToken: options?.authToken || authToken,
|
|
317
|
+
});
|
|
318
|
+
const extendedBase = extendCancellability(basePromise, resultPromise);
|
|
319
|
+
return mapResult((await extendedBase));
|
|
320
|
+
});
|
|
299
321
|
}
|
|
300
322
|
return [];
|
|
301
323
|
};
|
|
@@ -309,7 +331,7 @@ function initializeModel(client, modelName, result, modelIntrospection, authMode
|
|
|
309
331
|
}
|
|
310
332
|
const graphQLOperationsInfo = {
|
|
311
333
|
CREATE: { operationPrefix: 'create', usePlural: false },
|
|
312
|
-
|
|
334
|
+
GET: { operationPrefix: 'get', usePlural: false },
|
|
313
335
|
UPDATE: { operationPrefix: 'update', usePlural: false },
|
|
314
336
|
DELETE: { operationPrefix: 'delete', usePlural: false },
|
|
315
337
|
LIST: { operationPrefix: 'list', usePlural: true },
|
|
@@ -317,7 +339,7 @@ const graphQLOperationsInfo = {
|
|
|
317
339
|
ONCREATE: { operationPrefix: 'onCreate', usePlural: false },
|
|
318
340
|
ONUPDATE: { operationPrefix: 'onUpdate', usePlural: false },
|
|
319
341
|
ONDELETE: { operationPrefix: 'onDelete', usePlural: false },
|
|
320
|
-
|
|
342
|
+
OBSERVEQUERY: { operationPrefix: 'observeQuery', usePlural: false },
|
|
321
343
|
};
|
|
322
344
|
const SELECTION_SET_WILDCARD = '*';
|
|
323
345
|
const getDefaultSelectionSetForNonModelWithIR = (nonModelDefinition, modelIntrospection) => {
|
|
@@ -696,7 +718,7 @@ function generateGraphQLDocument(modelIntrospection, modelName, modelOperation,
|
|
|
696
718
|
graphQLOperationType ?? (graphQLOperationType = 'mutation');
|
|
697
719
|
// TODO(Eslint): this this case clause correct without the break statement?
|
|
698
720
|
// eslint-disable-next-line no-fallthrough
|
|
699
|
-
case '
|
|
721
|
+
case 'GET':
|
|
700
722
|
graphQLArguments ?? (graphQLArguments = getPkArgs);
|
|
701
723
|
graphQLSelectionSet ?? (graphQLSelectionSet = selectionSetFields);
|
|
702
724
|
// TODO(Eslint): this this case clause correct without the break statement?
|
|
@@ -744,7 +766,7 @@ function generateGraphQLDocument(modelIntrospection, modelName, modelOperation,
|
|
|
744
766
|
graphQLOperationType ?? (graphQLOperationType = 'subscription');
|
|
745
767
|
graphQLSelectionSet ?? (graphQLSelectionSet = selectionSetFields);
|
|
746
768
|
break;
|
|
747
|
-
case '
|
|
769
|
+
case 'OBSERVEQUERY':
|
|
748
770
|
default:
|
|
749
771
|
throw new Error('Internal error: Attempted to generate graphql document for observeQuery. Please report this error.');
|
|
750
772
|
}
|
|
@@ -779,7 +801,7 @@ function buildGraphQLVariables(modelDefinition, operation, arg, modelIntrospecti
|
|
|
779
801
|
: {},
|
|
780
802
|
};
|
|
781
803
|
break;
|
|
782
|
-
case '
|
|
804
|
+
case 'GET':
|
|
783
805
|
case 'DELETE':
|
|
784
806
|
// only identifiers are sent
|
|
785
807
|
if (arg) {
|
|
@@ -842,7 +864,7 @@ function buildGraphQLVariables(modelDefinition, operation, arg, modelIntrospecti
|
|
|
842
864
|
variables = { filter: arg.filter };
|
|
843
865
|
}
|
|
844
866
|
break;
|
|
845
|
-
case '
|
|
867
|
+
case 'OBSERVEQUERY':
|
|
846
868
|
throw new Error('Internal error: Attempted to build variables for observeQuery. Please report this error.');
|
|
847
869
|
default: {
|
|
848
870
|
const exhaustiveCheck = operation;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"APIClient.mjs","sources":["../../../../src/runtime/internals/APIClient.ts"],"sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\nimport { resolveOwnerFields, capitalize } from '../utils';\nconst connectionType = {\n HAS_ONE: 'HAS_ONE',\n HAS_MANY: 'HAS_MANY',\n BELONGS_TO: 'BELONGS_TO',\n};\n// When generating an SK's KeyConditionInput name, string-like types map to String\nconst skGraphQlFieldTypeMap = {\n ID: 'ID',\n String: 'String',\n AWSDate: 'String',\n AWSTime: 'String',\n AWSDateTime: 'String',\n AWSTimestamp: 'Int',\n AWSEmail: 'String',\n AWSPhone: 'String',\n AWSURL: 'String',\n AWSIPAddress: 'String',\n AWSJSON: 'String',\n Boolean: 'Boolean',\n Int: 'Int',\n Float: 'Float',\n};\n// move to util\nconst resolvedSkName = (sk) => {\n if (sk.length === 1) {\n return sk[0];\n }\n else {\n return sk.reduce((acc, curr, idx) => {\n if (idx === 0) {\n return curr;\n }\n else {\n return acc + capitalize(curr);\n }\n }, '');\n }\n};\n/**\n * Crawls a model tree, starting with a given **individual** model instance record, looking\n * for related hasMany children to extract from their `items` containers.\n *\n * E.g., if we have a record like this:\n *\n * ```js\n * {\n * id: 'some-id',\n * children: {\n * items: [\n * { name: 'a' }\n * { name: 'b' }\n * { name: 'c' }\n * ]\n * }\n * }\n * ```\n *\n * And if `children` refers to *an array of another model* (as opposed to a custom type),\n * the `items` will be extracted. We do this because `items` is just the mechanism for nesting\n * child records -- we don't want customers to have to dig the items out in application code.\n * Ultimately, we return this \"flattened\" structure:\n *\n * ```js\n * {\n * id: 'some-id',\n * children: [\n * { name: 'a' }\n * { name: 'b' }\n * { name: 'c' }\n * ]\n * }\n * ```\n *\n * Notably, an identical record could be the result of a nested custom type that contains an\n * `items` property. This will *not* be flattened, because in that case the `items` property is\n * actually part of the customer's schema. Similarly if a model contains an explicit `items` field.\n *\n * @param modelIntrospection Top-level model introspection schema.\n * @param modelName The name of the model. Can be `undefined`. E.g., for customOperation return types.\n * @param modelRecord The individual \"model instance record\" to normalize.\n */\nexport const flattenItems = (modelIntrospection, modelName, modelRecord) => {\n if (!modelRecord)\n return null;\n const mapped = {};\n for (const [fieldName, value] of Object.entries(modelRecord)) {\n const fieldDef = modelName\n ? modelIntrospection.models[modelName]?.fields[fieldName]\n : undefined;\n const dvPair = { fieldDef, value };\n if (isRelatedModelItemsArrayPair(dvPair)) {\n mapped[fieldName] = dvPair.value.items.map((itemValue) => flattenItems(modelIntrospection, dvPair.fieldDef.type.model, itemValue));\n }\n else if (isRelatedModelProperty(fieldDef)) {\n mapped[fieldName] = flattenItems(modelIntrospection, fieldDef.type.model, value);\n }\n else {\n mapped[fieldName] = value;\n }\n }\n return mapped;\n};\n/**\n * Determines whether the given field definition and associated result value\n * represent a related model array from a HasMany-type relationship.\n *\n * @param dv Pair of field definition and associated result value\n * @returns\n */\nfunction isRelatedModelItemsArrayPair(dv) {\n return (typeof dv.fieldDef?.type === 'object' &&\n 'model' in dv.fieldDef.type &&\n typeof dv.fieldDef.type.model === 'string' &&\n dv.fieldDef.isArray &&\n Array.isArray(dv.value?.items));\n}\n/**\n * Determines whether the given field definition represents a relationship\n * to another model.\n *\n * @param fieldDef\n * @returns\n */\nfunction isRelatedModelProperty(fieldDef) {\n return (typeof fieldDef?.type === 'object' &&\n 'model' in fieldDef.type &&\n typeof fieldDef.type.model === 'string');\n}\n// TODO: this should accept single result to support CRUD methods; create helper for array/list\nexport function initializeModel(client, modelName, result, modelIntrospection, authMode, authToken, context = false) {\n const introModel = modelIntrospection.models[modelName];\n const introModelFields = introModel.fields;\n const modelFields = Object.entries(introModelFields)\n .filter(([_, field]) => field?.type?.model !== undefined)\n .map(([fieldName]) => fieldName);\n return result.map((record) => {\n const initializedRelationalFields = {};\n for (const fieldName of modelFields) {\n const modelField = introModelFields[fieldName];\n const modelFieldType = modelField?.type;\n const relatedModelName = modelFieldType.model;\n const relatedModel = modelIntrospection.models[relatedModelName];\n const relatedModelPKFieldName = relatedModel.primaryKeyInfo.primaryKeyFieldName;\n const relatedModelSKFieldNames = relatedModel.primaryKeyInfo.sortKeyFieldNames;\n const relationType = modelField.association?.connectionType;\n let connectionFields = [];\n if (modelField.association &&\n 'associatedWith' in modelField.association) {\n connectionFields = modelField.association.associatedWith;\n }\n const targetNames = [];\n if (modelField.association && 'targetNames' in modelField.association) {\n targetNames.push(...modelField.association.targetNames);\n }\n switch (relationType) {\n case connectionType.BELONGS_TO: {\n const sortKeyValues = relatedModelSKFieldNames.reduce(\n // TODO(Eslint): is this implementation correct?\n // eslint-disable-next-line array-callback-return\n (acc, curVal) => {\n if (record[curVal]) {\n return (acc[curVal] = record[curVal]);\n }\n }, {});\n if (context) {\n initializedRelationalFields[fieldName] = (contextSpec, options) => {\n if (record[targetNames[0]]) {\n return client.models[relatedModelName].get(contextSpec, {\n [relatedModelPKFieldName]: record[targetNames[0]],\n ...sortKeyValues,\n }, {\n authMode: options?.authMode || authMode,\n authToken: options?.authToken || authToken,\n });\n }\n return { data: null };\n };\n }\n else {\n initializedRelationalFields[fieldName] = (options) => {\n if (record[targetNames[0]]) {\n return client.models[relatedModelName].get({\n [relatedModelPKFieldName]: record[targetNames[0]],\n ...sortKeyValues,\n }, {\n authMode: options?.authMode || authMode,\n authToken: options?.authToken || authToken,\n });\n }\n return { data: null };\n };\n }\n break;\n }\n case connectionType.HAS_ONE:\n case connectionType.HAS_MANY: {\n /**\n * If the loader is a HAS_ONE, we just need to attempt to grab the first item\n * from the result.\n */\n const mapResult = relationType === connectionType.HAS_ONE\n ? (result) => {\n return {\n data: result?.data.shift() || null,\n errors: result.errors,\n extensions: result.extensions,\n };\n }\n : (result) => result;\n const parentPk = introModel.primaryKeyInfo.primaryKeyFieldName;\n const parentSK = introModel.primaryKeyInfo.sortKeyFieldNames;\n // M:N check - TODO: refactor\n const relatedModelField = relatedModel.fields[connectionFields[0]];\n const relatedModelFieldType = relatedModelField.type;\n if (relatedModelFieldType.model) {\n let relatedTargetNames = [];\n if (relatedModelField.association &&\n 'targetNames' in relatedModelField.association) {\n relatedTargetNames = relatedModelField.association?.targetNames;\n }\n const hasManyFilter = relatedTargetNames.map((field, idx) => {\n if (idx === 0) {\n return { [field]: { eq: record[parentPk] } };\n }\n return { [field]: { eq: record[parentSK[idx - 1]] } };\n });\n if (context) {\n initializedRelationalFields[fieldName] = (contextSpec, options) => {\n if (record[parentPk]) {\n return client.models[relatedModelName]\n .list(contextSpec, {\n filter: { and: hasManyFilter },\n limit: options?.limit,\n nextToken: options?.nextToken,\n authMode: options?.authMode || authMode,\n authToken: options?.authToken || authToken,\n })\n .then(mapResult);\n }\n return [];\n };\n }\n else {\n initializedRelationalFields[fieldName] = (options) => {\n if (record[parentPk]) {\n return client.models[relatedModelName]\n .list({\n filter: { and: hasManyFilter },\n limit: options?.limit,\n nextToken: options?.nextToken,\n authMode: options?.authMode || authMode,\n authToken: options?.authToken || authToken,\n })\n .then(mapResult);\n }\n return [];\n };\n }\n break;\n }\n const hasManyFilter = connectionFields.map((field, idx) => {\n if (idx === 0) {\n return { [field]: { eq: record[parentPk] } };\n }\n return { [field]: { eq: record[parentSK[idx - 1]] } };\n });\n if (context) {\n initializedRelationalFields[fieldName] = (contextSpec, options) => {\n if (record[parentPk]) {\n return client.models[relatedModelName]\n .list(contextSpec, {\n filter: { and: hasManyFilter },\n limit: options?.limit,\n nextToken: options?.nextToken,\n authMode: options?.authMode || authMode,\n authToken: options?.authToken || authToken,\n })\n .then(mapResult);\n }\n return [];\n };\n }\n else {\n initializedRelationalFields[fieldName] = (options) => {\n if (record[parentPk]) {\n return client.models[relatedModelName]\n .list({\n filter: { and: hasManyFilter },\n limit: options?.limit,\n nextToken: options?.nextToken,\n authMode: options?.authMode || authMode,\n authToken: options?.authToken || authToken,\n })\n .then(mapResult);\n }\n return [];\n };\n }\n break;\n }\n default:\n break;\n }\n }\n return { ...record, ...initializedRelationalFields };\n });\n}\nexport const graphQLOperationsInfo = {\n CREATE: { operationPrefix: 'create', usePlural: false },\n READ: { operationPrefix: 'get', usePlural: false },\n UPDATE: { operationPrefix: 'update', usePlural: false },\n DELETE: { operationPrefix: 'delete', usePlural: false },\n LIST: { operationPrefix: 'list', usePlural: true },\n INDEX_QUERY: { operationPrefix: '', usePlural: false },\n ONCREATE: { operationPrefix: 'onCreate', usePlural: false },\n ONUPDATE: { operationPrefix: 'onUpdate', usePlural: false },\n ONDELETE: { operationPrefix: 'onDelete', usePlural: false },\n OBSERVE_QUERY: { operationPrefix: 'observeQuery', usePlural: false },\n};\nconst SELECTION_SET_WILDCARD = '*';\nexport const getDefaultSelectionSetForNonModelWithIR = (nonModelDefinition, modelIntrospection) => {\n const { fields } = nonModelDefinition;\n const mappedFields = Object.values(fields)\n .map(({ type, name }) => {\n if (typeof type.enum === 'string') {\n return [name, FIELD_IR];\n }\n if (typeof type.nonModel === 'string') {\n return [\n name,\n getDefaultSelectionSetForNonModelWithIR(modelIntrospection.nonModels[type.nonModel], modelIntrospection),\n ];\n }\n if (typeof type === 'string') {\n return [name, FIELD_IR];\n }\n return undefined;\n })\n .filter((pair) => pair !== undefined);\n return Object.fromEntries(mappedFields);\n};\nconst getDefaultSelectionSetForModelWithIR = (modelDefinition, modelIntrospection) => {\n const { fields } = modelDefinition;\n const mappedFields = Object.values(fields)\n .map(({ type, name }) => {\n if (typeof type.enum === 'string' ||\n typeof type === 'string') {\n return [name, FIELD_IR];\n }\n if (typeof type.nonModel === 'string') {\n return [\n name,\n getDefaultSelectionSetForNonModelWithIR(modelIntrospection.nonModels[type.nonModel], modelIntrospection),\n ];\n }\n return undefined;\n })\n .filter((pair) => pair !== undefined);\n const ownerFields = resolveOwnerFields(modelDefinition).map((field) => [\n field,\n FIELD_IR,\n ]);\n return Object.fromEntries(mappedFields.concat(ownerFields));\n};\nfunction defaultSelectionSetForModel(modelDefinition) {\n // fields that are explicitly part of the graphql schema; not\n // inferred from owner auth rules.\n const { fields } = modelDefinition;\n const explicitFields = Object.values(fields)\n // Default selection set omits model fields\n .map(({ type, name }) => {\n if (typeof type === 'string')\n return name;\n if (typeof type === 'object') {\n if (typeof type?.enum === 'string') {\n return name;\n }\n else if (typeof type?.nonModel === 'string') {\n return `${name}.${SELECTION_SET_WILDCARD}`;\n }\n }\n return undefined;\n })\n .filter(Boolean);\n // fields used for owner auth rules that may or may not also\n // be explicit on the model.\n const ownerFields = resolveOwnerFields(modelDefinition);\n return Array.from(new Set(explicitFields.concat(ownerFields)));\n}\nconst FIELD_IR = '';\n/**\n * Generates nested Custom Selection Set IR from path\n *\n * @param modelDefinitions\n * @param modelName\n * @param selectionSet - array of object paths\n * @example\n * ### Given\n * `selectionSet = ['id', 'comments.post.id']`\n * ### Returns\n * ```ts\n * {\n * id: '',\n * comments: {\n * items: { post: { id: '' } }\n * }\n * }\n * ```\n */\nexport function customSelectionSetToIR(modelIntrospection, modelName, selectionSet) {\n const dotNotationToObject = (path, modelOrNonModelName) => {\n const [fieldName, ...rest] = path.split('.');\n const nested = rest[0];\n const modelOrNonModelDefinition = modelIntrospection.models[modelOrNonModelName] ??\n modelIntrospection.nonModels[modelOrNonModelName];\n const modelOrNonModelFields = modelOrNonModelDefinition?.fields;\n const relatedModel = modelOrNonModelFields?.[fieldName]?.type?.model;\n const relatedModelDefinition = modelIntrospection.models[relatedModel];\n const relatedNonModel = modelOrNonModelFields?.[fieldName]?.type?.nonModel;\n const relatedNonModelDefinition = modelIntrospection.nonModels[relatedNonModel];\n const isModelOrNonModelOrFieldType = relatedModelDefinition\n ? 'model'\n : relatedNonModelDefinition\n ? 'nonModel'\n : 'field';\n if (isModelOrNonModelOrFieldType === 'nonModel') {\n let result = {};\n if (!nested) {\n throw Error(`${fieldName} must declare a wildcard (*) or a field of custom type ${relatedNonModel}`);\n }\n if (nested === SELECTION_SET_WILDCARD) {\n result = {\n [fieldName]: getDefaultSelectionSetForNonModelWithIR(relatedNonModelDefinition, modelIntrospection),\n };\n }\n else {\n result = {\n [fieldName]: dotNotationToObject(rest.join('.'), relatedNonModel),\n };\n }\n return result;\n }\n else if (isModelOrNonModelOrFieldType === 'model') {\n let result = {};\n if (!nested) {\n throw Error(`${fieldName} must declare a wildcard (*) or a field of model ${relatedModel}`);\n }\n if (nested === SELECTION_SET_WILDCARD) {\n const nestedRelatedModelDefinition = modelIntrospection.models[relatedModel];\n result = {\n [fieldName]: getDefaultSelectionSetForModelWithIR(nestedRelatedModelDefinition, modelIntrospection),\n };\n }\n else {\n result = {\n [fieldName]: dotNotationToObject(rest.join('.'), relatedModel),\n };\n }\n if (modelOrNonModelFields[fieldName]?.isArray) {\n result = {\n [fieldName]: {\n items: result[fieldName],\n },\n };\n }\n return result;\n }\n else {\n const modelField = modelOrNonModelFields?.[fieldName];\n const nonModelDefinition = modelIntrospection.nonModels[modelOrNonModelName];\n const nonModelField = nonModelDefinition?.fields?.[fieldName];\n if (!nonModelDefinition) {\n const isOwnerField = resolveOwnerFields(modelOrNonModelDefinition).includes(fieldName);\n if (!modelField && !isOwnerField) {\n throw Error(`${fieldName} is not a field of model ${modelOrNonModelName}`);\n }\n }\n else {\n if (!nonModelField) {\n throw Error(`${fieldName} is not a field of custom type ${modelOrNonModelName}`);\n }\n }\n return { [fieldName]: FIELD_IR };\n }\n };\n return selectionSet.reduce((resultObj, path) => deepMergeSelectionSetObjects(dotNotationToObject(path, modelName), resultObj), {});\n}\n/**\n * Stringifies selection set IR\n * * @example\n * ### Given\n * ```ts\n * {\n * id: '',\n * comments: {\n * items: { post: { id: '' } }\n * }\n * }\n * ```\n * ### Returns\n * `'id comments { items { post { id } } }'`\n */\nexport function selectionSetIRToString(obj) {\n const res = [];\n Object.entries(obj).forEach(([fieldName, value]) => {\n if (value === FIELD_IR) {\n res.push(fieldName);\n }\n else if (typeof value === 'object' && value !== null) {\n if (value?.items) {\n res.push(fieldName, '{', 'items', '{', selectionSetIRToString(value.items), '}', '}');\n }\n else {\n res.push(fieldName, '{', selectionSetIRToString(value), '}');\n }\n }\n });\n return res.join(' ');\n}\n/**\n * Recursively merges selection set objects from `source` onto `target`.\n *\n * `target` will be updated. `source` will be left alone.\n *\n * @param source The object to merge into target.\n * @param target The object to be mutated.\n */\nfunction deepMergeSelectionSetObjects(source, target) {\n const isObject = (obj) => obj && typeof obj === 'object';\n for (const key in source) {\n // This verification avoids 'Prototype Pollution' issue\n if (!Object.prototype.hasOwnProperty.call(source, key))\n continue;\n if (Object.prototype.hasOwnProperty.call(target, key) &&\n isObject(target[key])) {\n deepMergeSelectionSetObjects(source[key], target[key]);\n }\n else {\n target[key] = source[key];\n }\n }\n return target;\n}\nexport function generateSelectionSet(modelIntrospection, modelName, selectionSet) {\n const modelDefinition = modelIntrospection.models[modelName];\n const selSetIr = customSelectionSetToIR(modelIntrospection, modelName, selectionSet ?? defaultSelectionSetForModel(modelDefinition));\n const selSetString = selectionSetIRToString(selSetIr);\n return selSetString;\n}\nexport function generateGraphQLDocument(modelIntrospection, modelName, modelOperation, listArgs, indexMeta) {\n const modelDefinition = modelIntrospection.models[modelName];\n const { name, pluralName, fields, primaryKeyInfo: { isCustomPrimaryKey, primaryKeyFieldName, sortKeyFieldNames, }, attributes, } = modelDefinition;\n // Use pascal case of the model name to generate the operations and the arguments.\n // This is required to be in sync with the resources generated by the GraphQL transformers.\n const namePascalCase = name.charAt(0).toUpperCase() + name.slice(1);\n const pluralNamePascalCase = pluralName.charAt(0).toUpperCase() + pluralName.slice(1);\n const { operationPrefix, usePlural } = graphQLOperationsInfo[modelOperation];\n const { selectionSet } = listArgs || {};\n let graphQLFieldName;\n let indexQueryArgs;\n if (operationPrefix) {\n graphQLFieldName = `${operationPrefix}${usePlural ? pluralNamePascalCase : namePascalCase}`;\n }\n else if (indexMeta) {\n const { queryField, pk, sk = [] } = indexMeta;\n graphQLFieldName = queryField;\n /**\n * **a. Single field SK** -> single arg where name is the field name and the type is `Model${gqlFieldType}KeyConditionInput` (nullable)\n * Note: string-like data types e.g., AWSDateTime, AWSEmail, AWSPhone, etc. should map to String. See `skGraphQlFieldTypeMap` above\n * @example\n * ```\n * sk1: ModelStringKeyConditionInput\n * ```\n *\n * **b. Composite SK** -> single arg where the name is camelCase concatenation of all the field names that comprise the SK\n * and the type is `Model${modelName}${keyAttributeName}CompositeKeyConditionInput` (nullable)\n * @example\n * ```\n * sk1Sk2: ModelMyModelMyModelByPkAndSk1AndSk2CompositeKeyConditionInput\n */\n let skQueryArgs = {};\n if (sk.length === 1) {\n const [skField] = sk;\n const type = (typeof fields[skField].type === 'string'\n ? fields[skField].type\n : 'String');\n const normalizedType = skGraphQlFieldTypeMap[type];\n skQueryArgs = {\n [skField]: `Model${normalizedType}KeyConditionInput`,\n };\n }\n else if (sk.length > 1) {\n const compositeSkArgName = resolvedSkName(sk);\n const keyName = attributes?.find((attr) => attr?.properties?.queryField === queryField)?.properties?.name;\n skQueryArgs = {\n [compositeSkArgName]: `Model${capitalize(modelName)}${capitalize(keyName)}CompositeKeyConditionInput`,\n };\n }\n indexQueryArgs = {\n [pk]: `${Object.prototype.hasOwnProperty.call(fields[pk].type, 'enum')\n ? fields[pk].type.enum // AppSync schema sets enum type as the type of the enum fields that's used as PK\n : fields[pk].type}!`,\n ...skQueryArgs,\n };\n }\n else {\n throw new Error('Error generating GraphQL Document - invalid operation name');\n }\n let graphQLOperationType;\n let graphQLSelectionSet;\n let graphQLArguments;\n const selectionSetFields = generateSelectionSet(modelIntrospection, modelName, selectionSet);\n // default PK args for get and list operations\n // modified below for CPK\n const getPkArgs = {\n [primaryKeyFieldName]: `${fields[primaryKeyFieldName].type}!`,\n };\n const listPkArgs = {};\n /**\n * Generate query field args for the SK if it's defined\n *\n * **1. Get queries** require each SK field to be present as a separate arg where the type is the field's GraphQL scalar type (non-nullable)\n * @example\n * ```\n * sk1: String!, sk2: Int!\n * ```\n *\n * **2. List queries**\n *\n * **a. Single field SK** -> single arg where name is the field name and the type is `Model${gqlFieldType}KeyConditionInput` (nullable)\n * Note: string-like data types e.g., AWSDateTime, AWSEmail, AWSPhone, etc. should map to String. See `skGraphQlFieldTypeMap` above\n * @example\n * ```\n * sk1: ModelStringKeyConditionInput\n * ```\n *\n * **b. Composite SK** -> single arg where the name is camelCase concatenation of all the field names that comprise the SK\n * and the type is `Model${modelName}PrimaryCompositeKeyConditionInput` (nullable)\n * @example\n * ```\n * sk1Sk2: ModelMyModelPrimaryCompositeKeyConditionInput\n * ```\n */\n const generateSkArgs = (op) => {\n if (sortKeyFieldNames.length === 0)\n return {};\n if (op === 'get') {\n return sortKeyFieldNames.reduce((acc, fieldName) => {\n const fieldType = fields[fieldName].type;\n if (op === 'get') {\n acc[fieldName] = `${fieldType}!`; // ! - SK args are non-nullable in Get queries\n }\n return acc;\n }, {});\n }\n else {\n // list SK\n if (sortKeyFieldNames.length === 1) {\n // Single SK\n const [sk] = sortKeyFieldNames;\n const type = (typeof fields[sk].type === 'string' ? fields[sk].type : 'String');\n const normalizedType = skGraphQlFieldTypeMap[type];\n return {\n [sk]: `Model${normalizedType}KeyConditionInput`,\n };\n }\n else {\n // Composite SK\n const compositeSkArgName = resolvedSkName(sortKeyFieldNames);\n return {\n [compositeSkArgName]: `Model${capitalize(modelName)}PrimaryCompositeKeyConditionInput`,\n };\n }\n }\n };\n if (isCustomPrimaryKey) {\n Object.assign(getPkArgs, generateSkArgs('get'));\n Object.assign(listPkArgs, {\n // PK is only included in list query field args in the generated GQL\n // when explicitly specifying PK with .identifier(['fieldName']) or @primaryKey in the schema definition\n [primaryKeyFieldName]: `${fields[primaryKeyFieldName].type}`, // PK is always a nullable arg for list (no `!` after the type)\n sortDirection: 'ModelSortDirection',\n }, generateSkArgs('list'));\n }\n switch (modelOperation) {\n case 'CREATE':\n case 'UPDATE':\n case 'DELETE':\n graphQLArguments ??\n (graphQLArguments = {\n input: `${operationPrefix.charAt(0).toLocaleUpperCase() +\n operationPrefix.slice(1)}${namePascalCase}Input!`,\n });\n graphQLOperationType ?? (graphQLOperationType = 'mutation');\n // TODO(Eslint): this this case clause correct without the break statement?\n // eslint-disable-next-line no-fallthrough\n case 'READ':\n graphQLArguments ?? (graphQLArguments = getPkArgs);\n graphQLSelectionSet ?? (graphQLSelectionSet = selectionSetFields);\n // TODO(Eslint): this this case clause correct without the break statement?\n // eslint-disable-next-line no-fallthrough\n case 'LIST':\n graphQLArguments ??\n (graphQLArguments = {\n ...listPkArgs,\n // eslint doesn't like the ts-ignore, because it thinks it's unnecessary.\n // But TS doesn't like the `filter: ...` because it think it will always be\n // overwritten. (it won't be.) so, we need to ignore the TS error and then\n // ignore the eslint error on the ts-ignore.\n // eslint-disable-next-line\n // @ts-ignore\n filter: `Model${namePascalCase}FilterInput`,\n limit: 'Int',\n nextToken: 'String',\n });\n graphQLOperationType ?? (graphQLOperationType = 'query');\n graphQLSelectionSet ??\n (graphQLSelectionSet = `items { ${selectionSetFields} } nextToken __typename`);\n // TODO(Eslint): this this case clause correct without the break statement?\n // eslint-disable-next-line no-fallthrough\n case 'INDEX_QUERY':\n graphQLArguments ??\n (graphQLArguments = {\n ...indexQueryArgs,\n filter: `Model${namePascalCase}FilterInput`,\n sortDirection: 'ModelSortDirection',\n limit: 'Int',\n nextToken: 'String',\n });\n graphQLOperationType ?? (graphQLOperationType = 'query');\n graphQLSelectionSet ??\n (graphQLSelectionSet = `items { ${selectionSetFields} } nextToken __typename`);\n // TODO(Eslint): this this case clause correct without the break statement?\n // eslint-disable-next-line no-fallthrough\n case 'ONCREATE':\n case 'ONUPDATE':\n case 'ONDELETE':\n graphQLArguments ??\n (graphQLArguments = {\n filter: `ModelSubscription${namePascalCase}FilterInput`,\n });\n graphQLOperationType ?? (graphQLOperationType = 'subscription');\n graphQLSelectionSet ?? (graphQLSelectionSet = selectionSetFields);\n break;\n case 'OBSERVE_QUERY':\n default:\n throw new Error('Internal error: Attempted to generate graphql document for observeQuery. Please report this error.');\n }\n const graphQLDocument = `${graphQLOperationType}${graphQLArguments\n ? `(${Object.entries(graphQLArguments).map(([fieldName, type]) => `$${fieldName}: ${type}`)})`\n : ''} { ${graphQLFieldName}${graphQLArguments\n ? `(${Object.keys(graphQLArguments).map((fieldName) => `${fieldName}: $${fieldName}`)})`\n : ''} { ${graphQLSelectionSet} } }`;\n return graphQLDocument;\n}\nexport function buildGraphQLVariables(modelDefinition, operation, arg, modelIntrospection, indexMeta) {\n const { fields, primaryKeyInfo: { isCustomPrimaryKey, primaryKeyFieldName, sortKeyFieldNames, }, } = modelDefinition;\n const skName = sortKeyFieldNames?.length && resolvedSkName(sortKeyFieldNames);\n let variables = {};\n // TODO: process input\n switch (operation) {\n case 'CREATE':\n variables = {\n input: arg\n ? normalizeMutationInput(arg, modelDefinition, modelIntrospection)\n : {},\n };\n break;\n case 'UPDATE':\n // readonly fields are not updated\n variables = {\n input: arg\n ? Object.fromEntries(Object.entries(normalizeMutationInput(arg, modelDefinition, modelIntrospection)).filter(([fieldName]) => {\n const { isReadOnly } = fields[fieldName];\n return !isReadOnly;\n }))\n : {},\n };\n break;\n case 'READ':\n case 'DELETE':\n // only identifiers are sent\n if (arg) {\n variables = isCustomPrimaryKey\n ? [primaryKeyFieldName, ...sortKeyFieldNames].reduce((acc, fieldName) => {\n acc[fieldName] = arg[fieldName];\n return acc;\n }, {})\n : { [primaryKeyFieldName]: arg[primaryKeyFieldName] };\n }\n if (operation === 'DELETE') {\n variables = { input: variables };\n }\n break;\n case 'LIST':\n if (arg?.filter) {\n variables.filter = arg.filter;\n }\n if (arg?.sortDirection) {\n variables.sortDirection = arg.sortDirection;\n }\n if (arg && arg[primaryKeyFieldName]) {\n variables[primaryKeyFieldName] = arg[primaryKeyFieldName];\n }\n if (skName && arg && arg[skName]) {\n variables[skName] = arg[skName];\n }\n if (arg?.nextToken) {\n variables.nextToken = arg.nextToken;\n }\n if (arg?.limit) {\n variables.limit = arg.limit;\n }\n break;\n case 'INDEX_QUERY': {\n const { pk, sk = [] } = indexMeta;\n const indexQuerySkName = sk?.length && resolvedSkName(sk);\n variables[pk] = arg[pk];\n if (indexQuerySkName && arg && arg[indexQuerySkName]) {\n variables[indexQuerySkName] = arg[indexQuerySkName];\n }\n if (arg?.filter) {\n variables.filter = arg.filter;\n }\n if (arg?.sortDirection) {\n variables.sortDirection = arg.sortDirection;\n }\n if (arg?.nextToken) {\n variables.nextToken = arg.nextToken;\n }\n if (arg?.limit) {\n variables.limit = arg.limit;\n }\n break;\n }\n case 'ONCREATE':\n case 'ONUPDATE':\n case 'ONDELETE':\n if (arg?.filter) {\n variables = { filter: arg.filter };\n }\n break;\n case 'OBSERVE_QUERY':\n throw new Error('Internal error: Attempted to build variables for observeQuery. Please report this error.');\n break;\n default: {\n const exhaustiveCheck = operation;\n throw new Error(`Unhandled operation case: ${exhaustiveCheck}`);\n }\n }\n return variables;\n}\n/**\n * Iterates over mutation input values and resolves any model inputs to their corresponding join fields/values\n *\n * @example\n * ### Usage\n * ```ts\n * const result = normalizeMutationInput({ post: post }, model, modelDefinition);\n * ```\n * ### Result\n * ```ts\n * { postId: \"abc123\" }\n * ```\n *\n */\nexport function normalizeMutationInput(mutationInput, model, modelIntrospection) {\n const { fields } = model;\n const normalized = {};\n Object.entries(mutationInput).forEach(([inputFieldName, inputValue]) => {\n const fieldType = fields[inputFieldName]?.type;\n const relatedModelName = fieldType?.model;\n if (relatedModelName) {\n const association = fields[inputFieldName]?.association;\n const relatedModelDef = modelIntrospection.models[relatedModelName];\n const relatedModelPkInfo = relatedModelDef.primaryKeyInfo;\n if (association?.connectionType === connectionType.HAS_ONE) {\n const associationHasOne = association;\n associationHasOne.targetNames.forEach((targetName, idx) => {\n const associatedFieldName = associationHasOne.associatedWith[idx];\n normalized[targetName] = inputValue[associatedFieldName];\n });\n }\n if (association?.connectionType === connectionType.BELONGS_TO) {\n const associationBelongsTo = association;\n associationBelongsTo.targetNames.forEach((targetName, idx) => {\n if (idx === 0) {\n const associatedFieldName = relatedModelPkInfo.primaryKeyFieldName;\n normalized[targetName] = inputValue[associatedFieldName];\n }\n else {\n const associatedFieldName = relatedModelPkInfo.sortKeyFieldNames[idx - 1];\n normalized[targetName] = inputValue[associatedFieldName];\n }\n });\n }\n }\n else {\n normalized[inputFieldName] = inputValue;\n }\n });\n return normalized;\n}\n/**\n * Produces a parameter object that can contains auth mode/token overrides\n * only if present in either `options` (first) or configured on the `client`\n * as a fallback.\n *\n * @param client Configured client from `generateClient`\n * @param options Args/Options object from call site.\n * @returns\n */\nexport function authModeParams(client, getInternals, options = {}) {\n const internals = getInternals(client);\n return {\n authMode: options.authMode || internals.authMode,\n authToken: options.authToken || internals.authToken,\n };\n}\n/**\n * Retrieves custom headers from either the client or request options.\n * @param client V6Client | V6ClientSSRRequest | V6ClientSSRCookies - for extracting client headers\n * @param requestHeaders {@link CustomHeaders} - request headers\n * @returns custom headers as {@link CustomHeaders}\n */\nexport function getCustomHeaders(client, getInternals, requestHeaders) {\n let headers = getInternals(client).headers || {};\n // Individual request headers will take precedence over client headers.\n // We intentionally do *not* merge client and request headers.\n if (requestHeaders) {\n headers = requestHeaders;\n }\n return headers;\n}\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"APIClient.mjs","sources":["../../../../src/runtime/internals/APIClient.ts"],"sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\nimport { resolveOwnerFields, capitalize, selfAwareAsync } from '../utils';\nimport { extendCancellability } from './cancellation';\nconst connectionType = {\n HAS_ONE: 'HAS_ONE',\n HAS_MANY: 'HAS_MANY',\n BELONGS_TO: 'BELONGS_TO',\n};\n// When generating an SK's KeyConditionInput name, string-like types map to String\nconst skGraphQlFieldTypeMap = {\n ID: 'ID',\n String: 'String',\n AWSDate: 'String',\n AWSTime: 'String',\n AWSDateTime: 'String',\n AWSTimestamp: 'Int',\n AWSEmail: 'String',\n AWSPhone: 'String',\n AWSURL: 'String',\n AWSIPAddress: 'String',\n AWSJSON: 'String',\n Boolean: 'Boolean',\n Int: 'Int',\n Float: 'Float',\n};\n// move to util\nconst resolvedSkName = (sk) => {\n if (sk.length === 1) {\n return sk[0];\n }\n else {\n return sk.reduce((acc, curr, idx) => {\n if (idx === 0) {\n return curr;\n }\n else {\n return acc + capitalize(curr);\n }\n }, '');\n }\n};\n/**\n * Crawls a model tree, starting with a given **individual** model instance record, looking\n * for related hasMany children to extract from their `items` containers.\n *\n * E.g., if we have a record like this:\n *\n * ```js\n * {\n * id: 'some-id',\n * children: {\n * items: [\n * { name: 'a' }\n * { name: 'b' }\n * { name: 'c' }\n * ]\n * }\n * }\n * ```\n *\n * And if `children` refers to *an array of another model* (as opposed to a custom type),\n * the `items` will be extracted. We do this because `items` is just the mechanism for nesting\n * child records -- we don't want customers to have to dig the items out in application code.\n * Ultimately, we return this \"flattened\" structure:\n *\n * ```js\n * {\n * id: 'some-id',\n * children: [\n * { name: 'a' }\n * { name: 'b' }\n * { name: 'c' }\n * ]\n * }\n * ```\n *\n * Notably, an identical record could be the result of a nested custom type that contains an\n * `items` property. This will *not* be flattened, because in that case the `items` property is\n * actually part of the customer's schema. Similarly if a model contains an explicit `items` field.\n *\n * @param modelIntrospection Top-level model introspection schema.\n * @param modelName The name of the model. Can be `undefined`. E.g., for customOperation return types.\n * @param modelRecord The individual \"model instance record\" to normalize.\n */\nexport const flattenItems = (modelIntrospection, modelName, modelRecord) => {\n if (!modelRecord)\n return null;\n const mapped = {};\n for (const [fieldName, value] of Object.entries(modelRecord)) {\n const fieldDef = modelName\n ? modelIntrospection.models[modelName]?.fields[fieldName]\n : undefined;\n const dvPair = { fieldDef, value };\n if (isRelatedModelItemsArrayPair(dvPair)) {\n mapped[fieldName] = dvPair.value.items.map((itemValue) => flattenItems(modelIntrospection, dvPair.fieldDef.type.model, itemValue));\n }\n else if (isRelatedModelProperty(fieldDef)) {\n mapped[fieldName] = flattenItems(modelIntrospection, fieldDef.type.model, value);\n }\n else {\n mapped[fieldName] = value;\n }\n }\n return mapped;\n};\n/**\n * Determines whether the given field definition and associated result value\n * represent a related model array from a HasMany-type relationship.\n *\n * @param dv Pair of field definition and associated result value\n * @returns\n */\nfunction isRelatedModelItemsArrayPair(dv) {\n return (typeof dv.fieldDef?.type === 'object' &&\n 'model' in dv.fieldDef.type &&\n typeof dv.fieldDef.type.model === 'string' &&\n dv.fieldDef.isArray &&\n Array.isArray(dv.value?.items));\n}\n/**\n * Determines whether the given field definition represents a relationship\n * to another model.\n *\n * @param fieldDef\n * @returns\n */\nfunction isRelatedModelProperty(fieldDef) {\n return (typeof fieldDef?.type === 'object' &&\n 'model' in fieldDef.type &&\n typeof fieldDef.type.model === 'string');\n}\n// TODO: this should accept single result to support CRUD methods; create helper for array/list\nexport function initializeModel(client, modelName, result, modelIntrospection, authMode, authToken, context = false) {\n const introModel = modelIntrospection.models[modelName];\n const introModelFields = introModel.fields;\n const modelFields = Object.entries(introModelFields)\n .filter(([_, field]) => field?.type?.model !== undefined)\n .map(([fieldName]) => fieldName);\n return result.map((record) => {\n const initializedRelationalFields = {};\n for (const fieldName of modelFields) {\n const modelField = introModelFields[fieldName];\n const modelFieldType = modelField?.type;\n const relatedModelName = modelFieldType.model;\n const relatedModel = modelIntrospection.models[relatedModelName];\n const relatedModelPKFieldName = relatedModel.primaryKeyInfo.primaryKeyFieldName;\n const relatedModelSKFieldNames = relatedModel.primaryKeyInfo.sortKeyFieldNames;\n const relationType = modelField.association?.connectionType;\n let connectionFields = [];\n if (modelField.association &&\n 'associatedWith' in modelField.association) {\n connectionFields = modelField.association.associatedWith;\n }\n const targetNames = [];\n if (modelField.association && 'targetNames' in modelField.association) {\n targetNames.push(...modelField.association.targetNames);\n }\n switch (relationType) {\n case connectionType.BELONGS_TO: {\n const sortKeyValues = relatedModelSKFieldNames.reduce(\n // TODO(Eslint): is this implementation correct?\n // eslint-disable-next-line array-callback-return\n (acc, curVal) => {\n if (record[curVal]) {\n return (acc[curVal] = record[curVal]);\n }\n }, {});\n // if get is disabled on the related model\n if (client.models[relatedModelName].get === undefined) {\n break;\n }\n if (context) {\n initializedRelationalFields[fieldName] = (contextSpec, options) => {\n if (record[targetNames[0]]) {\n return client.models[relatedModelName].get(contextSpec, {\n [relatedModelPKFieldName]: record[targetNames[0]],\n ...sortKeyValues,\n }, {\n authMode: options?.authMode || authMode,\n authToken: options?.authToken || authToken,\n });\n }\n return { data: null };\n };\n }\n else {\n initializedRelationalFields[fieldName] = (options) => {\n if (record[targetNames[0]]) {\n return client.models[relatedModelName].get({\n [relatedModelPKFieldName]: record[targetNames[0]],\n ...sortKeyValues,\n }, {\n authMode: options?.authMode || authMode,\n authToken: options?.authToken || authToken,\n });\n }\n return { data: null };\n };\n }\n break;\n }\n case connectionType.HAS_ONE:\n case connectionType.HAS_MANY: {\n /**\n * If the loader is a HAS_ONE, we just need to attempt to grab the first item\n * from the result.\n */\n const mapResult = relationType === connectionType.HAS_ONE\n ? (result) => {\n return {\n data: result?.data.shift() || null,\n errors: result.errors,\n extensions: result.extensions,\n };\n }\n : (result) => result;\n const parentPk = introModel.primaryKeyInfo.primaryKeyFieldName;\n const parentSK = introModel.primaryKeyInfo.sortKeyFieldNames;\n // M:N check - TODO: refactor\n const relatedModelField = relatedModel.fields[connectionFields[0]];\n const relatedModelFieldType = relatedModelField.type;\n if (relatedModelFieldType.model) {\n let relatedTargetNames = [];\n if (relatedModelField.association &&\n 'targetNames' in relatedModelField.association) {\n relatedTargetNames = relatedModelField.association?.targetNames;\n }\n const hasManyFilter = relatedTargetNames.map((field, idx) => {\n if (idx === 0) {\n return { [field]: { eq: record[parentPk] } };\n }\n return { [field]: { eq: record[parentSK[idx - 1]] } };\n });\n // if list is disabled on the related model\n if (client.models[relatedModelName].list === undefined) {\n break;\n }\n if (context) {\n initializedRelationalFields[fieldName] = (contextSpec, options) => {\n if (record[parentPk]) {\n return selfAwareAsync(async (resultPromise) => {\n const basePromise = client.models[relatedModelName].list(contextSpec, {\n filter: { and: hasManyFilter },\n limit: options?.limit,\n nextToken: options?.nextToken,\n authMode: options?.authMode || authMode,\n authToken: options?.authToken || authToken,\n });\n const extendedBase = extendCancellability(basePromise, resultPromise);\n return mapResult((await extendedBase));\n });\n }\n return [];\n };\n }\n else {\n initializedRelationalFields[fieldName] = (options) => {\n if (record[parentPk]) {\n return selfAwareAsync(async (resultPromise) => {\n const basePromise = client.models[relatedModelName].list({\n filter: { and: hasManyFilter },\n limit: options?.limit,\n nextToken: options?.nextToken,\n authMode: options?.authMode || authMode,\n authToken: options?.authToken || authToken,\n });\n const extendedBase = extendCancellability(basePromise, resultPromise);\n return mapResult((await extendedBase));\n });\n }\n return [];\n };\n }\n break;\n }\n const hasManyFilter = connectionFields.map((field, idx) => {\n if (idx === 0) {\n return { [field]: { eq: record[parentPk] } };\n }\n return { [field]: { eq: record[parentSK[idx - 1]] } };\n });\n // if list is disabled on the related model\n if (client.models[relatedModelName].list === undefined) {\n break;\n }\n if (context) {\n initializedRelationalFields[fieldName] = (contextSpec, options) => {\n if (record[parentPk]) {\n return selfAwareAsync(async (resultPromise) => {\n const basePromise = client.models[relatedModelName].list(contextSpec, {\n filter: { and: hasManyFilter },\n limit: options?.limit,\n nextToken: options?.nextToken,\n authMode: options?.authMode || authMode,\n authToken: options?.authToken || authToken,\n });\n const extendedBase = extendCancellability(basePromise, resultPromise);\n return mapResult((await extendedBase));\n });\n }\n return [];\n };\n }\n else {\n initializedRelationalFields[fieldName] = (options) => {\n if (record[parentPk]) {\n return selfAwareAsync(async (resultPromise) => {\n const basePromise = client.models[relatedModelName].list({\n filter: { and: hasManyFilter },\n limit: options?.limit,\n nextToken: options?.nextToken,\n authMode: options?.authMode || authMode,\n authToken: options?.authToken || authToken,\n });\n const extendedBase = extendCancellability(basePromise, resultPromise);\n return mapResult((await extendedBase));\n });\n }\n return [];\n };\n }\n break;\n }\n default:\n break;\n }\n }\n return { ...record, ...initializedRelationalFields };\n });\n}\nexport const graphQLOperationsInfo = {\n CREATE: { operationPrefix: 'create', usePlural: false },\n GET: { operationPrefix: 'get', usePlural: false },\n UPDATE: { operationPrefix: 'update', usePlural: false },\n DELETE: { operationPrefix: 'delete', usePlural: false },\n LIST: { operationPrefix: 'list', usePlural: true },\n INDEX_QUERY: { operationPrefix: '', usePlural: false },\n ONCREATE: { operationPrefix: 'onCreate', usePlural: false },\n ONUPDATE: { operationPrefix: 'onUpdate', usePlural: false },\n ONDELETE: { operationPrefix: 'onDelete', usePlural: false },\n OBSERVEQUERY: { operationPrefix: 'observeQuery', usePlural: false },\n};\nconst SELECTION_SET_WILDCARD = '*';\nexport const getDefaultSelectionSetForNonModelWithIR = (nonModelDefinition, modelIntrospection) => {\n const { fields } = nonModelDefinition;\n const mappedFields = Object.values(fields)\n .map(({ type, name }) => {\n if (typeof type.enum === 'string') {\n return [name, FIELD_IR];\n }\n if (typeof type.nonModel === 'string') {\n return [\n name,\n getDefaultSelectionSetForNonModelWithIR(modelIntrospection.nonModels[type.nonModel], modelIntrospection),\n ];\n }\n if (typeof type === 'string') {\n return [name, FIELD_IR];\n }\n return undefined;\n })\n .filter((pair) => pair !== undefined);\n return Object.fromEntries(mappedFields);\n};\nconst getDefaultSelectionSetForModelWithIR = (modelDefinition, modelIntrospection) => {\n const { fields } = modelDefinition;\n const mappedFields = Object.values(fields)\n .map(({ type, name }) => {\n if (typeof type.enum === 'string' ||\n typeof type === 'string') {\n return [name, FIELD_IR];\n }\n if (typeof type.nonModel === 'string') {\n return [\n name,\n getDefaultSelectionSetForNonModelWithIR(modelIntrospection.nonModels[type.nonModel], modelIntrospection),\n ];\n }\n return undefined;\n })\n .filter((pair) => pair !== undefined);\n const ownerFields = resolveOwnerFields(modelDefinition).map((field) => [\n field,\n FIELD_IR,\n ]);\n return Object.fromEntries(mappedFields.concat(ownerFields));\n};\nfunction defaultSelectionSetForModel(modelDefinition) {\n // fields that are explicitly part of the graphql schema; not\n // inferred from owner auth rules.\n const { fields } = modelDefinition;\n const explicitFields = Object.values(fields)\n // Default selection set omits model fields\n .map(({ type, name }) => {\n if (typeof type === 'string')\n return name;\n if (typeof type === 'object') {\n if (typeof type?.enum === 'string') {\n return name;\n }\n else if (typeof type?.nonModel === 'string') {\n return `${name}.${SELECTION_SET_WILDCARD}`;\n }\n }\n return undefined;\n })\n .filter(Boolean);\n // fields used for owner auth rules that may or may not also\n // be explicit on the model.\n const ownerFields = resolveOwnerFields(modelDefinition);\n return Array.from(new Set(explicitFields.concat(ownerFields)));\n}\nconst FIELD_IR = '';\n/**\n * Generates nested Custom Selection Set IR from path\n *\n * @param modelDefinitions\n * @param modelName\n * @param selectionSet - array of object paths\n * @example\n * ### Given\n * `selectionSet = ['id', 'comments.post.id']`\n * ### Returns\n * ```ts\n * {\n * id: '',\n * comments: {\n * items: { post: { id: '' } }\n * }\n * }\n * ```\n */\nexport function customSelectionSetToIR(modelIntrospection, modelName, selectionSet) {\n const dotNotationToObject = (path, modelOrNonModelName) => {\n const [fieldName, ...rest] = path.split('.');\n const nested = rest[0];\n const modelOrNonModelDefinition = modelIntrospection.models[modelOrNonModelName] ??\n modelIntrospection.nonModels[modelOrNonModelName];\n const modelOrNonModelFields = modelOrNonModelDefinition?.fields;\n const relatedModel = modelOrNonModelFields?.[fieldName]?.type?.model;\n const relatedModelDefinition = modelIntrospection.models[relatedModel];\n const relatedNonModel = modelOrNonModelFields?.[fieldName]?.type?.nonModel;\n const relatedNonModelDefinition = modelIntrospection.nonModels[relatedNonModel];\n const isModelOrNonModelOrFieldType = relatedModelDefinition\n ? 'model'\n : relatedNonModelDefinition\n ? 'nonModel'\n : 'field';\n if (isModelOrNonModelOrFieldType === 'nonModel') {\n let result = {};\n if (!nested) {\n throw Error(`${fieldName} must declare a wildcard (*) or a field of custom type ${relatedNonModel}`);\n }\n if (nested === SELECTION_SET_WILDCARD) {\n result = {\n [fieldName]: getDefaultSelectionSetForNonModelWithIR(relatedNonModelDefinition, modelIntrospection),\n };\n }\n else {\n result = {\n [fieldName]: dotNotationToObject(rest.join('.'), relatedNonModel),\n };\n }\n return result;\n }\n else if (isModelOrNonModelOrFieldType === 'model') {\n let result = {};\n if (!nested) {\n throw Error(`${fieldName} must declare a wildcard (*) or a field of model ${relatedModel}`);\n }\n if (nested === SELECTION_SET_WILDCARD) {\n const nestedRelatedModelDefinition = modelIntrospection.models[relatedModel];\n result = {\n [fieldName]: getDefaultSelectionSetForModelWithIR(nestedRelatedModelDefinition, modelIntrospection),\n };\n }\n else {\n result = {\n [fieldName]: dotNotationToObject(rest.join('.'), relatedModel),\n };\n }\n if (modelOrNonModelFields[fieldName]?.isArray) {\n result = {\n [fieldName]: {\n items: result[fieldName],\n },\n };\n }\n return result;\n }\n else {\n const modelField = modelOrNonModelFields?.[fieldName];\n const nonModelDefinition = modelIntrospection.nonModels[modelOrNonModelName];\n const nonModelField = nonModelDefinition?.fields?.[fieldName];\n if (!nonModelDefinition) {\n const isOwnerField = resolveOwnerFields(modelOrNonModelDefinition).includes(fieldName);\n if (!modelField && !isOwnerField) {\n throw Error(`${fieldName} is not a field of model ${modelOrNonModelName}`);\n }\n }\n else {\n if (!nonModelField) {\n throw Error(`${fieldName} is not a field of custom type ${modelOrNonModelName}`);\n }\n }\n return { [fieldName]: FIELD_IR };\n }\n };\n return selectionSet.reduce((resultObj, path) => deepMergeSelectionSetObjects(dotNotationToObject(path, modelName), resultObj), {});\n}\n/**\n * Stringifies selection set IR\n * * @example\n * ### Given\n * ```ts\n * {\n * id: '',\n * comments: {\n * items: { post: { id: '' } }\n * }\n * }\n * ```\n * ### Returns\n * `'id comments { items { post { id } } }'`\n */\nexport function selectionSetIRToString(obj) {\n const res = [];\n Object.entries(obj).forEach(([fieldName, value]) => {\n if (value === FIELD_IR) {\n res.push(fieldName);\n }\n else if (typeof value === 'object' && value !== null) {\n if (value?.items) {\n res.push(fieldName, '{', 'items', '{', selectionSetIRToString(value.items), '}', '}');\n }\n else {\n res.push(fieldName, '{', selectionSetIRToString(value), '}');\n }\n }\n });\n return res.join(' ');\n}\n/**\n * Recursively merges selection set objects from `source` onto `target`.\n *\n * `target` will be updated. `source` will be left alone.\n *\n * @param source The object to merge into target.\n * @param target The object to be mutated.\n */\nfunction deepMergeSelectionSetObjects(source, target) {\n const isObject = (obj) => obj && typeof obj === 'object';\n for (const key in source) {\n // This verification avoids 'Prototype Pollution' issue\n if (!Object.prototype.hasOwnProperty.call(source, key))\n continue;\n if (Object.prototype.hasOwnProperty.call(target, key) &&\n isObject(target[key])) {\n deepMergeSelectionSetObjects(source[key], target[key]);\n }\n else {\n target[key] = source[key];\n }\n }\n return target;\n}\nexport function generateSelectionSet(modelIntrospection, modelName, selectionSet) {\n const modelDefinition = modelIntrospection.models[modelName];\n const selSetIr = customSelectionSetToIR(modelIntrospection, modelName, selectionSet ?? defaultSelectionSetForModel(modelDefinition));\n const selSetString = selectionSetIRToString(selSetIr);\n return selSetString;\n}\nexport function generateGraphQLDocument(modelIntrospection, modelName, modelOperation, listArgs, indexMeta) {\n const modelDefinition = modelIntrospection.models[modelName];\n const { name, pluralName, fields, primaryKeyInfo: { isCustomPrimaryKey, primaryKeyFieldName, sortKeyFieldNames, }, attributes, } = modelDefinition;\n // Use pascal case of the model name to generate the operations and the arguments.\n // This is required to be in sync with the resources generated by the GraphQL transformers.\n const namePascalCase = name.charAt(0).toUpperCase() + name.slice(1);\n const pluralNamePascalCase = pluralName.charAt(0).toUpperCase() + pluralName.slice(1);\n const { operationPrefix, usePlural } = graphQLOperationsInfo[modelOperation];\n const { selectionSet } = listArgs || {};\n let graphQLFieldName;\n let indexQueryArgs;\n if (operationPrefix) {\n graphQLFieldName = `${operationPrefix}${usePlural ? pluralNamePascalCase : namePascalCase}`;\n }\n else if (indexMeta) {\n const { queryField, pk, sk = [] } = indexMeta;\n graphQLFieldName = queryField;\n /**\n * **a. Single field SK** -> single arg where name is the field name and the type is `Model${gqlFieldType}KeyConditionInput` (nullable)\n * Note: string-like data types e.g., AWSDateTime, AWSEmail, AWSPhone, etc. should map to String. See `skGraphQlFieldTypeMap` above\n * @example\n * ```\n * sk1: ModelStringKeyConditionInput\n * ```\n *\n * **b. Composite SK** -> single arg where the name is camelCase concatenation of all the field names that comprise the SK\n * and the type is `Model${modelName}${keyAttributeName}CompositeKeyConditionInput` (nullable)\n * @example\n * ```\n * sk1Sk2: ModelMyModelMyModelByPkAndSk1AndSk2CompositeKeyConditionInput\n */\n let skQueryArgs = {};\n if (sk.length === 1) {\n const [skField] = sk;\n const type = (typeof fields[skField].type === 'string'\n ? fields[skField].type\n : 'String');\n const normalizedType = skGraphQlFieldTypeMap[type];\n skQueryArgs = {\n [skField]: `Model${normalizedType}KeyConditionInput`,\n };\n }\n else if (sk.length > 1) {\n const compositeSkArgName = resolvedSkName(sk);\n const keyName = attributes?.find((attr) => attr?.properties?.queryField === queryField)?.properties?.name;\n skQueryArgs = {\n [compositeSkArgName]: `Model${capitalize(modelName)}${capitalize(keyName)}CompositeKeyConditionInput`,\n };\n }\n indexQueryArgs = {\n [pk]: `${Object.prototype.hasOwnProperty.call(fields[pk].type, 'enum')\n ? fields[pk].type.enum // AppSync schema sets enum type as the type of the enum fields that's used as PK\n : fields[pk].type}!`,\n ...skQueryArgs,\n };\n }\n else {\n throw new Error('Error generating GraphQL Document - invalid operation name');\n }\n let graphQLOperationType;\n let graphQLSelectionSet;\n let graphQLArguments;\n const selectionSetFields = generateSelectionSet(modelIntrospection, modelName, selectionSet);\n // default PK args for get and list operations\n // modified below for CPK\n const getPkArgs = {\n [primaryKeyFieldName]: `${fields[primaryKeyFieldName].type}!`,\n };\n const listPkArgs = {};\n /**\n * Generate query field args for the SK if it's defined\n *\n * **1. Get queries** require each SK field to be present as a separate arg where the type is the field's GraphQL scalar type (non-nullable)\n * @example\n * ```\n * sk1: String!, sk2: Int!\n * ```\n *\n * **2. List queries**\n *\n * **a. Single field SK** -> single arg where name is the field name and the type is `Model${gqlFieldType}KeyConditionInput` (nullable)\n * Note: string-like data types e.g., AWSDateTime, AWSEmail, AWSPhone, etc. should map to String. See `skGraphQlFieldTypeMap` above\n * @example\n * ```\n * sk1: ModelStringKeyConditionInput\n * ```\n *\n * **b. Composite SK** -> single arg where the name is camelCase concatenation of all the field names that comprise the SK\n * and the type is `Model${modelName}PrimaryCompositeKeyConditionInput` (nullable)\n * @example\n * ```\n * sk1Sk2: ModelMyModelPrimaryCompositeKeyConditionInput\n * ```\n */\n const generateSkArgs = (op) => {\n if (sortKeyFieldNames.length === 0)\n return {};\n if (op === 'get') {\n return sortKeyFieldNames.reduce((acc, fieldName) => {\n const fieldType = fields[fieldName].type;\n if (op === 'get') {\n acc[fieldName] = `${fieldType}!`; // ! - SK args are non-nullable in Get queries\n }\n return acc;\n }, {});\n }\n else {\n // list SK\n if (sortKeyFieldNames.length === 1) {\n // Single SK\n const [sk] = sortKeyFieldNames;\n const type = (typeof fields[sk].type === 'string' ? fields[sk].type : 'String');\n const normalizedType = skGraphQlFieldTypeMap[type];\n return {\n [sk]: `Model${normalizedType}KeyConditionInput`,\n };\n }\n else {\n // Composite SK\n const compositeSkArgName = resolvedSkName(sortKeyFieldNames);\n return {\n [compositeSkArgName]: `Model${capitalize(modelName)}PrimaryCompositeKeyConditionInput`,\n };\n }\n }\n };\n if (isCustomPrimaryKey) {\n Object.assign(getPkArgs, generateSkArgs('get'));\n Object.assign(listPkArgs, {\n // PK is only included in list query field args in the generated GQL\n // when explicitly specifying PK with .identifier(['fieldName']) or @primaryKey in the schema definition\n [primaryKeyFieldName]: `${fields[primaryKeyFieldName].type}`, // PK is always a nullable arg for list (no `!` after the type)\n sortDirection: 'ModelSortDirection',\n }, generateSkArgs('list'));\n }\n switch (modelOperation) {\n case 'CREATE':\n case 'UPDATE':\n case 'DELETE':\n graphQLArguments ??\n (graphQLArguments = {\n input: `${operationPrefix.charAt(0).toLocaleUpperCase() +\n operationPrefix.slice(1)}${namePascalCase}Input!`,\n });\n graphQLOperationType ?? (graphQLOperationType = 'mutation');\n // TODO(Eslint): this this case clause correct without the break statement?\n // eslint-disable-next-line no-fallthrough\n case 'GET':\n graphQLArguments ?? (graphQLArguments = getPkArgs);\n graphQLSelectionSet ?? (graphQLSelectionSet = selectionSetFields);\n // TODO(Eslint): this this case clause correct without the break statement?\n // eslint-disable-next-line no-fallthrough\n case 'LIST':\n graphQLArguments ??\n (graphQLArguments = {\n ...listPkArgs,\n // eslint doesn't like the ts-ignore, because it thinks it's unnecessary.\n // But TS doesn't like the `filter: ...` because it think it will always be\n // overwritten. (it won't be.) so, we need to ignore the TS error and then\n // ignore the eslint error on the ts-ignore.\n // eslint-disable-next-line\n // @ts-ignore\n filter: `Model${namePascalCase}FilterInput`,\n limit: 'Int',\n nextToken: 'String',\n });\n graphQLOperationType ?? (graphQLOperationType = 'query');\n graphQLSelectionSet ??\n (graphQLSelectionSet = `items { ${selectionSetFields} } nextToken __typename`);\n // TODO(Eslint): this this case clause correct without the break statement?\n // eslint-disable-next-line no-fallthrough\n case 'INDEX_QUERY':\n graphQLArguments ??\n (graphQLArguments = {\n ...indexQueryArgs,\n filter: `Model${namePascalCase}FilterInput`,\n sortDirection: 'ModelSortDirection',\n limit: 'Int',\n nextToken: 'String',\n });\n graphQLOperationType ?? (graphQLOperationType = 'query');\n graphQLSelectionSet ??\n (graphQLSelectionSet = `items { ${selectionSetFields} } nextToken __typename`);\n // TODO(Eslint): this this case clause correct without the break statement?\n // eslint-disable-next-line no-fallthrough\n case 'ONCREATE':\n case 'ONUPDATE':\n case 'ONDELETE':\n graphQLArguments ??\n (graphQLArguments = {\n filter: `ModelSubscription${namePascalCase}FilterInput`,\n });\n graphQLOperationType ?? (graphQLOperationType = 'subscription');\n graphQLSelectionSet ?? (graphQLSelectionSet = selectionSetFields);\n break;\n case 'OBSERVEQUERY':\n default:\n throw new Error('Internal error: Attempted to generate graphql document for observeQuery. Please report this error.');\n }\n const graphQLDocument = `${graphQLOperationType}${graphQLArguments\n ? `(${Object.entries(graphQLArguments).map(([fieldName, type]) => `$${fieldName}: ${type}`)})`\n : ''} { ${graphQLFieldName}${graphQLArguments\n ? `(${Object.keys(graphQLArguments).map((fieldName) => `${fieldName}: $${fieldName}`)})`\n : ''} { ${graphQLSelectionSet} } }`;\n return graphQLDocument;\n}\nexport function buildGraphQLVariables(modelDefinition, operation, arg, modelIntrospection, indexMeta) {\n const { fields, primaryKeyInfo: { isCustomPrimaryKey, primaryKeyFieldName, sortKeyFieldNames, }, } = modelDefinition;\n const skName = sortKeyFieldNames?.length && resolvedSkName(sortKeyFieldNames);\n let variables = {};\n // TODO: process input\n switch (operation) {\n case 'CREATE':\n variables = {\n input: arg\n ? normalizeMutationInput(arg, modelDefinition, modelIntrospection)\n : {},\n };\n break;\n case 'UPDATE':\n // readonly fields are not updated\n variables = {\n input: arg\n ? Object.fromEntries(Object.entries(normalizeMutationInput(arg, modelDefinition, modelIntrospection)).filter(([fieldName]) => {\n const { isReadOnly } = fields[fieldName];\n return !isReadOnly;\n }))\n : {},\n };\n break;\n case 'GET':\n case 'DELETE':\n // only identifiers are sent\n if (arg) {\n variables = isCustomPrimaryKey\n ? [primaryKeyFieldName, ...sortKeyFieldNames].reduce((acc, fieldName) => {\n acc[fieldName] = arg[fieldName];\n return acc;\n }, {})\n : { [primaryKeyFieldName]: arg[primaryKeyFieldName] };\n }\n if (operation === 'DELETE') {\n variables = { input: variables };\n }\n break;\n case 'LIST':\n if (arg?.filter) {\n variables.filter = arg.filter;\n }\n if (arg?.sortDirection) {\n variables.sortDirection = arg.sortDirection;\n }\n if (arg && arg[primaryKeyFieldName]) {\n variables[primaryKeyFieldName] = arg[primaryKeyFieldName];\n }\n if (skName && arg && arg[skName]) {\n variables[skName] = arg[skName];\n }\n if (arg?.nextToken) {\n variables.nextToken = arg.nextToken;\n }\n if (arg?.limit) {\n variables.limit = arg.limit;\n }\n break;\n case 'INDEX_QUERY': {\n const { pk, sk = [] } = indexMeta;\n const indexQuerySkName = sk?.length && resolvedSkName(sk);\n variables[pk] = arg[pk];\n if (indexQuerySkName && arg && arg[indexQuerySkName]) {\n variables[indexQuerySkName] = arg[indexQuerySkName];\n }\n if (arg?.filter) {\n variables.filter = arg.filter;\n }\n if (arg?.sortDirection) {\n variables.sortDirection = arg.sortDirection;\n }\n if (arg?.nextToken) {\n variables.nextToken = arg.nextToken;\n }\n if (arg?.limit) {\n variables.limit = arg.limit;\n }\n break;\n }\n case 'ONCREATE':\n case 'ONUPDATE':\n case 'ONDELETE':\n if (arg?.filter) {\n variables = { filter: arg.filter };\n }\n break;\n case 'OBSERVEQUERY':\n throw new Error('Internal error: Attempted to build variables for observeQuery. Please report this error.');\n break;\n default: {\n const exhaustiveCheck = operation;\n throw new Error(`Unhandled operation case: ${exhaustiveCheck}`);\n }\n }\n return variables;\n}\n/**\n * Iterates over mutation input values and resolves any model inputs to their corresponding join fields/values\n *\n * @example\n * ### Usage\n * ```ts\n * const result = normalizeMutationInput({ post: post }, model, modelDefinition);\n * ```\n * ### Result\n * ```ts\n * { postId: \"abc123\" }\n * ```\n *\n */\nexport function normalizeMutationInput(mutationInput, model, modelIntrospection) {\n const { fields } = model;\n const normalized = {};\n Object.entries(mutationInput).forEach(([inputFieldName, inputValue]) => {\n const fieldType = fields[inputFieldName]?.type;\n const relatedModelName = fieldType?.model;\n if (relatedModelName) {\n const association = fields[inputFieldName]?.association;\n const relatedModelDef = modelIntrospection.models[relatedModelName];\n const relatedModelPkInfo = relatedModelDef.primaryKeyInfo;\n if (association?.connectionType === connectionType.HAS_ONE) {\n const associationHasOne = association;\n associationHasOne.targetNames.forEach((targetName, idx) => {\n const associatedFieldName = associationHasOne.associatedWith[idx];\n normalized[targetName] = inputValue[associatedFieldName];\n });\n }\n if (association?.connectionType === connectionType.BELONGS_TO) {\n const associationBelongsTo = association;\n associationBelongsTo.targetNames.forEach((targetName, idx) => {\n if (idx === 0) {\n const associatedFieldName = relatedModelPkInfo.primaryKeyFieldName;\n normalized[targetName] = inputValue[associatedFieldName];\n }\n else {\n const associatedFieldName = relatedModelPkInfo.sortKeyFieldNames[idx - 1];\n normalized[targetName] = inputValue[associatedFieldName];\n }\n });\n }\n }\n else {\n normalized[inputFieldName] = inputValue;\n }\n });\n return normalized;\n}\n/**\n * Produces a parameter object that can contains auth mode/token overrides\n * only if present in either `options` (first) or configured on the `client`\n * as a fallback.\n *\n * @param client Configured client from `generateClient`\n * @param options Args/Options object from call site.\n * @returns\n */\nexport function authModeParams(client, getInternals, options = {}) {\n const internals = getInternals(client);\n return {\n authMode: options.authMode || internals.authMode,\n authToken: options.authToken || internals.authToken,\n };\n}\n/**\n * Retrieves custom headers from either the client or request options.\n * @param client V6Client | V6ClientSSRRequest | V6ClientSSRCookies - for extracting client headers\n * @param requestHeaders {@link CustomHeaders} - request headers\n * @returns custom headers as {@link CustomHeaders}\n */\nexport function getCustomHeaders(client, getInternals, requestHeaders) {\n let headers = getInternals(client).headers || {};\n // Individual request headers will take precedence over client headers.\n // We intentionally do *not* merge client and request headers.\n if (requestHeaders) {\n headers = requestHeaders;\n }\n return headers;\n}\n"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { BaseClient } from '../bridge-types';
|
|
2
|
+
export declare function extendCancellability<T>(existingCancellablePromise: Promise<T>, newPromiseToRegister: Promise<any>): Promise<T>;
|
|
3
|
+
/**
|
|
4
|
+
* Wraps the existing `cancel()` method with logic to iteratively search for
|
|
5
|
+
* the corresponding base level promise, if needed, that the core graphql client
|
|
6
|
+
* knows how to cancel.
|
|
7
|
+
*
|
|
8
|
+
* @param client
|
|
9
|
+
*/
|
|
10
|
+
export declare function upgradeClientCancellation(client: BaseClient): void;
|