@aws-amplify/api-graphql 4.0.3-unstable.032ab8e.0 → 4.0.3-unstable.4953a58.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/Providers/AWSAppSyncRealTimeProvider/index.js +32 -12
- package/dist/cjs/Providers/AWSAppSyncRealTimeProvider/index.js.map +1 -1
- package/dist/cjs/internals/APIClient.js +17 -1
- package/dist/cjs/internals/APIClient.js.map +1 -1
- package/dist/cjs/internals/InternalGraphQLAPI.js +38 -16
- package/dist/cjs/internals/InternalGraphQLAPI.js.map +1 -1
- package/dist/cjs/internals/generateClient.js +1 -0
- package/dist/cjs/internals/generateClient.js.map +1 -1
- package/dist/cjs/internals/generateModelsProperty.js +7 -1
- package/dist/cjs/internals/generateModelsProperty.js.map +1 -1
- package/dist/cjs/internals/operations/get.js +3 -2
- package/dist/cjs/internals/operations/get.js.map +1 -1
- package/dist/cjs/internals/operations/list.js +3 -2
- package/dist/cjs/internals/operations/list.js.map +1 -1
- package/dist/cjs/internals/operations/subscription.js +2 -1
- package/dist/cjs/internals/operations/subscription.js.map +1 -1
- package/dist/cjs/internals/server/generateModelsProperty.js +1 -1
- package/dist/cjs/internals/server/generateModelsProperty.js.map +1 -1
- package/dist/cjs/types/index.js +2 -1
- package/dist/cjs/types/index.js.map +1 -1
- package/dist/cjs/utils/resolveConfig.js +7 -1
- package/dist/cjs/utils/resolveConfig.js.map +1 -1
- package/dist/esm/GraphQLAPI.d.ts +2 -3
- package/dist/esm/Providers/AWSAppSyncRealTimeProvider/index.d.ts +3 -3
- package/dist/esm/Providers/AWSAppSyncRealTimeProvider/index.mjs +32 -12
- package/dist/esm/Providers/AWSAppSyncRealTimeProvider/index.mjs.map +1 -1
- package/dist/esm/index.mjs +1 -1
- package/dist/esm/internals/APIClient.d.ts +9 -1
- package/dist/esm/internals/APIClient.mjs +17 -2
- package/dist/esm/internals/APIClient.mjs.map +1 -1
- package/dist/esm/internals/InternalGraphQLAPI.d.ts +2 -3
- package/dist/esm/internals/InternalGraphQLAPI.mjs +38 -16
- package/dist/esm/internals/InternalGraphQLAPI.mjs.map +1 -1
- package/dist/esm/internals/generateClient.mjs +2 -1
- package/dist/esm/internals/generateClient.mjs.map +1 -1
- package/dist/esm/internals/generateModelsProperty.mjs +7 -1
- package/dist/esm/internals/generateModelsProperty.mjs.map +1 -1
- package/dist/esm/internals/operations/get.mjs +4 -3
- package/dist/esm/internals/operations/get.mjs.map +1 -1
- package/dist/esm/internals/operations/list.mjs +4 -3
- package/dist/esm/internals/operations/list.mjs.map +1 -1
- package/dist/esm/internals/operations/observeQuery.mjs +1 -2
- package/dist/esm/internals/operations/observeQuery.mjs.map +1 -1
- package/dist/esm/internals/operations/subscription.mjs +3 -2
- package/dist/esm/internals/operations/subscription.mjs.map +1 -1
- package/dist/esm/internals/server/generateClient.mjs +1 -2
- package/dist/esm/internals/server/generateClient.mjs.map +1 -1
- package/dist/esm/internals/server/generateModelsProperty.d.ts +1 -1
- package/dist/esm/internals/server/generateModelsProperty.mjs +1 -1
- package/dist/esm/internals/server/generateModelsProperty.mjs.map +1 -1
- package/dist/esm/internals/types.d.ts +2 -0
- package/dist/esm/internals/v6.d.ts +2 -3
- package/dist/esm/types/index.d.ts +9 -10
- package/dist/esm/types/index.mjs +2 -1
- package/dist/esm/types/index.mjs.map +1 -1
- package/dist/esm/utils/resolveConfig.mjs +7 -1
- package/dist/esm/utils/resolveConfig.mjs.map +1 -1
- package/package.json +6 -6
- package/src/GraphQLAPI.ts +2 -1
- package/src/Providers/AWSAppSyncRealTimeProvider/index.ts +39 -11
- package/src/internals/APIClient.ts +25 -0
- package/src/internals/InternalGraphQLAPI.ts +61 -21
- package/src/internals/generateClient.ts +8 -1
- package/src/internals/generateModelsProperty.ts +8 -3
- package/src/internals/operations/get.ts +14 -6
- package/src/internals/operations/list.ts +13 -6
- package/src/internals/operations/subscription.ts +11 -5
- package/src/internals/server/generateModelsProperty.ts +2 -4
- package/src/internals/types.ts +2 -0
- package/src/internals/v6.ts +2 -1
- package/src/types/index.ts +13 -13
- package/src/utils/resolveConfig.ts +12 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"list.mjs","sources":["../../../../src/internals/operations/list.ts"],"sourcesContent":["import { initializeModel, generateGraphQLDocument, buildGraphQLVariables, flattenItems, authModeParams, } from '../APIClient';\nexport function listFactory(client, modelIntrospection, model, context = false) {\n const listWithContext = async (contextSpec, args) => {\n return _list(client, modelIntrospection, model, args, contextSpec);\n };\n const list = async (args) => {\n return _list(client, modelIntrospection, model, args);\n };\n return context ? listWithContext : list;\n}\nasync function _list(client, modelIntrospection, model, args, contextSpec) {\n const { name } = model;\n const query = generateGraphQLDocument(modelIntrospection.models, name, 'LIST', args);\n const variables = buildGraphQLVariables(model, 'LIST', args, modelIntrospection);\n try {\n const auth = authModeParams(client, args);\n const { data, extensions } = !!contextSpec\n ? (await client.graphql(contextSpec, {\n ...auth,\n query,\n variables,\n }))\n : (await client.graphql({\n ...auth,\n query,\n variables,\n }));\n // flatten response\n if (data !== undefined) {\n const [key] = Object.keys(data);\n if (data[key].items) {\n const flattenedResult = flattenItems(data)[key];\n // don't init if custom selection set\n if (args?.selectionSet) {\n return {\n data: flattenedResult,\n nextToken: data[key].nextToken,\n extensions,\n };\n }\n else {\n const initialized = initializeModel(client, name, flattenedResult, modelIntrospection, auth.authMode, auth.authToken, !!contextSpec);\n return {\n data: initialized,\n nextToken: data[key].nextToken,\n extensions,\n };\n }\n }\n return {\n data: data[key],\n nextToken: data[key].nextToken,\n extensions,\n };\n }\n }\n catch (error) {\n if (error.errors) {\n // graphql errors pass through\n return error;\n }\n else {\n // non-graphql errors re re-thrown\n throw error;\n }\n }\n}\n"],"names":[],"mappings":";;AACO,SAAS,WAAW,CAAC,MAAM,EAAE,kBAAkB,EAAE,KAAK,EAAE,OAAO,GAAG,KAAK,EAAE;AAChF,IAAI,MAAM,eAAe,GAAG,OAAO,WAAW,EAAE,IAAI,KAAK;AACzD,QAAQ,OAAO,KAAK,CAAC,MAAM,EAAE,kBAAkB,EAAE,KAAK,EAAE,IAAI,EAAE,WAAW,CAAC,CAAC;AAC3E,KAAK,CAAC;AACN,IAAI,MAAM,IAAI,GAAG,OAAO,IAAI,KAAK;AACjC,QAAQ,OAAO,KAAK,CAAC,MAAM,EAAE,kBAAkB,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;AAC9D,KAAK,CAAC;AACN,IAAI,OAAO,OAAO,GAAG,eAAe,GAAG,IAAI,CAAC;AAC5C,CAAC;AACD,eAAe,KAAK,CAAC,MAAM,EAAE,kBAAkB,EAAE,KAAK,EAAE,IAAI,EAAE,WAAW,EAAE;AAC3E,IAAI,MAAM,EAAE,IAAI,EAAE,GAAG,KAAK,CAAC;AAC3B,IAAI,MAAM,KAAK,GAAG,uBAAuB,CAAC,kBAAkB,CAAC,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;AACzF,IAAI,MAAM,SAAS,GAAG,qBAAqB,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,kBAAkB,CAAC,CAAC;AACrF,IAAI,IAAI;AACR,QAAQ,MAAM,IAAI,GAAG,cAAc,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;AAClD,QAAQ,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG,CAAC,CAAC,WAAW;AAClD,eAAe,MAAM,MAAM,CAAC,OAAO,CAAC,WAAW,EAAE;AACjD,gBAAgB,GAAG,IAAI;AACvB,gBAAgB,KAAK;AACrB,gBAAgB,SAAS;AACzB,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"list.mjs","sources":["../../../../src/internals/operations/list.ts"],"sourcesContent":["import { initializeModel, generateGraphQLDocument, buildGraphQLVariables, flattenItems, authModeParams, getCustomHeaders, } from '../APIClient';\nexport function listFactory(client, modelIntrospection, model, context = false) {\n const listWithContext = async (contextSpec, args) => {\n return _list(client, modelIntrospection, model, args, contextSpec);\n };\n const list = async (args) => {\n return _list(client, modelIntrospection, model, args);\n };\n return context ? listWithContext : list;\n}\nasync function _list(client, modelIntrospection, model, args, contextSpec) {\n const { name } = model;\n const query = generateGraphQLDocument(modelIntrospection.models, name, 'LIST', args);\n const variables = buildGraphQLVariables(model, 'LIST', args, modelIntrospection);\n try {\n const auth = authModeParams(client, args);\n const headers = getCustomHeaders(client, args?.headers);\n const { data, extensions } = !!contextSpec\n ? (await client.graphql(contextSpec, {\n ...auth,\n query,\n variables,\n }, headers))\n : (await client.graphql({\n ...auth,\n query,\n variables,\n }, headers));\n // flatten response\n if (data !== undefined) {\n const [key] = Object.keys(data);\n if (data[key].items) {\n const flattenedResult = flattenItems(data)[key];\n // don't init if custom selection set\n if (args?.selectionSet) {\n return {\n data: flattenedResult,\n nextToken: data[key].nextToken,\n extensions,\n };\n }\n else {\n const initialized = initializeModel(client, name, flattenedResult, modelIntrospection, auth.authMode, auth.authToken, !!contextSpec);\n return {\n data: initialized,\n nextToken: data[key].nextToken,\n extensions,\n };\n }\n }\n return {\n data: data[key],\n nextToken: data[key].nextToken,\n extensions,\n };\n }\n }\n catch (error) {\n if (error.errors) {\n // graphql errors pass through\n return error;\n }\n else {\n // non-graphql errors re re-thrown\n throw error;\n }\n }\n}\n"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import { Observable } from 'rxjs';
|
|
2
|
-
import '
|
|
3
|
-
import '../../utils/errors/validation.mjs';
|
|
2
|
+
import '../../utils/resolveConfig.mjs';
|
|
4
3
|
import { resolvePKFields } from '../../utils/resolvePKFields.mjs';
|
|
5
4
|
import { findIndexByFields } from '../../utils/findIndexByFields.mjs';
|
|
6
5
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"observeQuery.mjs","sources":["../../../../src/internals/operations/observeQuery.ts"],"sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { Observable } from 'rxjs';\nimport { findIndexByFields, resolvePKFields } from '../../utils';\nexport function observeQueryFactory(models, model) {\n const { name } = model;\n const observeQuery = (arg) => new Observable(subscriber => {\n // what we'll be sending to our subscribers\n const items = [];\n // To enqueue subscription messages while we collect our initial\n // result set.\n const messageQueue = [];\n // operation to take when message(s) arrive.\n // this operation will be swapped out once initial \"sync\" is complete\n // to immediately ingest messsages.\n let receiveMessages = (...messages) => {\n return messageQueue.push(...messages);\n };\n // start subscriptions\n const onCreateSub = models[name].onCreate(arg).subscribe({\n next(item) {\n receiveMessages({ item, type: 'create' });\n },\n error(error) {\n subscriber.error({ type: 'onCreate', error });\n },\n });\n const onUpdateSub = models[name].onUpdate(arg).subscribe({\n next(item) {\n receiveMessages({ item, type: 'update' });\n },\n error(error) {\n subscriber.error({ type: 'onUpdate', error });\n },\n });\n const onDeleteSub = models[name].onDelete(arg).subscribe({\n next(item) {\n receiveMessages({ item, type: 'delete' });\n },\n error(error) {\n subscriber.error({ type: 'onDelete', error });\n },\n });\n // consumes a list of messages and sends a snapshot\n function ingestMessages(messages) {\n for (const message of messages) {\n const idx = findIndexByFields(message.item, items, pkFields);\n switch (message.type) {\n case 'create':\n if (idx < 0)\n items.push(message.item);\n break;\n case 'update':\n if (idx >= 0)\n items[idx] = message.item;\n break;\n case 'delete':\n if (idx >= 0)\n items.splice(idx, 1);\n break;\n default:\n console.error('Unrecognized message in observeQuery.', message);\n }\n }\n subscriber.next({\n items,\n isSynced: true,\n });\n }\n const pkFields = resolvePKFields(model);\n // initial results\n (async () => {\n let firstPage = true;\n let nextToken = null;\n while (!subscriber.closed && (firstPage || nextToken)) {\n firstPage = false;\n const { data: page, errors, nextToken: _nextToken, } = await models[name].list({ ...arg, nextToken });\n nextToken = _nextToken;\n items.push(...page);\n // if there are no more pages and no items we already know about\n // that need to be merged in from sub, we're \"synced\"\n const isSynced = messageQueue.length === 0 &&\n (nextToken === null || nextToken === undefined);\n subscriber.next({\n items,\n isSynced,\n });\n if (Array.isArray(errors)) {\n for (const error of errors) {\n subscriber.error(error);\n }\n }\n }\n // play through the queue\n if (messageQueue.length > 0) {\n ingestMessages(messageQueue);\n }\n // switch the queue to write directly to the items collection\n receiveMessages = (...messages) => {\n ingestMessages(messages);\n return items.length;\n };\n })();\n // when subscriber unsubscribes, tear down internal subs\n return () => {\n // 1. tear down internal subs\n onCreateSub.unsubscribe();\n onUpdateSub.unsubscribe();\n onDeleteSub.unsubscribe();\n // 2. there is no need to explicitly stop paging. instead, we\n // just check `subscriber.closed` above before fetching each page.\n };\n });\n return observeQuery;\n}\n"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"observeQuery.mjs","sources":["../../../../src/internals/operations/observeQuery.ts"],"sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { Observable } from 'rxjs';\nimport { findIndexByFields, resolvePKFields } from '../../utils';\nexport function observeQueryFactory(models, model) {\n const { name } = model;\n const observeQuery = (arg) => new Observable(subscriber => {\n // what we'll be sending to our subscribers\n const items = [];\n // To enqueue subscription messages while we collect our initial\n // result set.\n const messageQueue = [];\n // operation to take when message(s) arrive.\n // this operation will be swapped out once initial \"sync\" is complete\n // to immediately ingest messsages.\n let receiveMessages = (...messages) => {\n return messageQueue.push(...messages);\n };\n // start subscriptions\n const onCreateSub = models[name].onCreate(arg).subscribe({\n next(item) {\n receiveMessages({ item, type: 'create' });\n },\n error(error) {\n subscriber.error({ type: 'onCreate', error });\n },\n });\n const onUpdateSub = models[name].onUpdate(arg).subscribe({\n next(item) {\n receiveMessages({ item, type: 'update' });\n },\n error(error) {\n subscriber.error({ type: 'onUpdate', error });\n },\n });\n const onDeleteSub = models[name].onDelete(arg).subscribe({\n next(item) {\n receiveMessages({ item, type: 'delete' });\n },\n error(error) {\n subscriber.error({ type: 'onDelete', error });\n },\n });\n // consumes a list of messages and sends a snapshot\n function ingestMessages(messages) {\n for (const message of messages) {\n const idx = findIndexByFields(message.item, items, pkFields);\n switch (message.type) {\n case 'create':\n if (idx < 0)\n items.push(message.item);\n break;\n case 'update':\n if (idx >= 0)\n items[idx] = message.item;\n break;\n case 'delete':\n if (idx >= 0)\n items.splice(idx, 1);\n break;\n default:\n console.error('Unrecognized message in observeQuery.', message);\n }\n }\n subscriber.next({\n items,\n isSynced: true,\n });\n }\n const pkFields = resolvePKFields(model);\n // initial results\n (async () => {\n let firstPage = true;\n let nextToken = null;\n while (!subscriber.closed && (firstPage || nextToken)) {\n firstPage = false;\n const { data: page, errors, nextToken: _nextToken, } = await models[name].list({ ...arg, nextToken });\n nextToken = _nextToken;\n items.push(...page);\n // if there are no more pages and no items we already know about\n // that need to be merged in from sub, we're \"synced\"\n const isSynced = messageQueue.length === 0 &&\n (nextToken === null || nextToken === undefined);\n subscriber.next({\n items,\n isSynced,\n });\n if (Array.isArray(errors)) {\n for (const error of errors) {\n subscriber.error(error);\n }\n }\n }\n // play through the queue\n if (messageQueue.length > 0) {\n ingestMessages(messageQueue);\n }\n // switch the queue to write directly to the items collection\n receiveMessages = (...messages) => {\n ingestMessages(messages);\n return items.length;\n };\n })();\n // when subscriber unsubscribes, tear down internal subs\n return () => {\n // 1. tear down internal subs\n onCreateSub.unsubscribe();\n onUpdateSub.unsubscribe();\n onDeleteSub.unsubscribe();\n // 2. there is no need to explicitly stop paging. instead, we\n // just check `subscriber.closed` above before fetching each page.\n };\n });\n return observeQuery;\n}\n"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { map } from 'rxjs';
|
|
2
|
-
import { generateGraphQLDocument, buildGraphQLVariables, authModeParams, initializeModel } from '../APIClient.mjs';
|
|
2
|
+
import { generateGraphQLDocument, buildGraphQLVariables, authModeParams, getCustomHeaders, initializeModel } from '../APIClient.mjs';
|
|
3
3
|
|
|
4
4
|
// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
|
5
5
|
// SPDX-License-Identifier: Apache-2.0
|
|
@@ -9,11 +9,12 @@ function subscriptionFactory(client, modelIntrospection, model, operation) {
|
|
|
9
9
|
const query = generateGraphQLDocument(modelIntrospection.models, name, operation);
|
|
10
10
|
const variables = buildGraphQLVariables(model, operation, args, modelIntrospection);
|
|
11
11
|
const auth = authModeParams(client, args);
|
|
12
|
+
const headers = getCustomHeaders(client, args?.headers);
|
|
12
13
|
const observable = client.graphql({
|
|
13
14
|
...auth,
|
|
14
15
|
query,
|
|
15
16
|
variables,
|
|
16
|
-
});
|
|
17
|
+
}, headers);
|
|
17
18
|
return observable.pipe(map(value => {
|
|
18
19
|
const [key] = Object.keys(value.data);
|
|
19
20
|
const data = value.data[key];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"subscription.mjs","sources":["../../../../src/internals/operations/subscription.ts"],"sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { map } from 'rxjs';\nimport { initializeModel, generateGraphQLDocument, buildGraphQLVariables, authModeParams, } from '../APIClient';\nexport function subscriptionFactory(client, modelIntrospection, model, operation) {\n const { name } = model;\n const subscription = (args) => {\n const query = generateGraphQLDocument(modelIntrospection.models, name, operation);\n const variables = buildGraphQLVariables(model, operation, args, modelIntrospection);\n const auth = authModeParams(client, args);\n const observable = client.graphql({\n ...auth,\n query,\n variables,\n });\n return observable.pipe(map(value => {\n const [key] = Object.keys(value.data);\n const data = value.data[key];\n const [initialized] = initializeModel(client, name, [data], modelIntrospection, auth.authMode, auth.authToken);\n return initialized;\n }));\n };\n return subscription;\n}\n"],"names":[],"mappings":";;;AAAA;AACA;AAGO,SAAS,mBAAmB,CAAC,MAAM,EAAE,kBAAkB,EAAE,KAAK,EAAE,SAAS,EAAE;AAClF,IAAI,MAAM,EAAE,IAAI,EAAE,GAAG,KAAK,CAAC;AAC3B,IAAI,MAAM,YAAY,GAAG,CAAC,IAAI,KAAK;AACnC,QAAQ,MAAM,KAAK,GAAG,uBAAuB,CAAC,kBAAkB,CAAC,MAAM,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC;AAC1F,QAAQ,MAAM,SAAS,GAAG,qBAAqB,CAAC,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,kBAAkB,CAAC,CAAC;AAC5F,QAAQ,MAAM,IAAI,GAAG,cAAc,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;AAClD,QAAQ,MAAM,UAAU,GAAG,MAAM,CAAC,OAAO,CAAC;AAC1C,YAAY,GAAG,IAAI;AACnB,YAAY,KAAK;AACjB,YAAY,SAAS;AACrB,SAAS,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"subscription.mjs","sources":["../../../../src/internals/operations/subscription.ts"],"sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { map } from 'rxjs';\nimport { initializeModel, generateGraphQLDocument, buildGraphQLVariables, authModeParams, getCustomHeaders, } from '../APIClient';\nexport function subscriptionFactory(client, modelIntrospection, model, operation) {\n const { name } = model;\n const subscription = (args) => {\n const query = generateGraphQLDocument(modelIntrospection.models, name, operation);\n const variables = buildGraphQLVariables(model, operation, args, modelIntrospection);\n const auth = authModeParams(client, args);\n const headers = getCustomHeaders(client, args?.headers);\n const observable = client.graphql({\n ...auth,\n query,\n variables,\n }, headers);\n return observable.pipe(map(value => {\n const [key] = Object.keys(value.data);\n const data = value.data[key];\n const [initialized] = initializeModel(client, name, [data], modelIntrospection, auth.authMode, auth.authToken);\n return initialized;\n }));\n };\n return subscription;\n}\n"],"names":[],"mappings":";;;AAAA;AACA;AAGO,SAAS,mBAAmB,CAAC,MAAM,EAAE,kBAAkB,EAAE,KAAK,EAAE,SAAS,EAAE;AAClF,IAAI,MAAM,EAAE,IAAI,EAAE,GAAG,KAAK,CAAC;AAC3B,IAAI,MAAM,YAAY,GAAG,CAAC,IAAI,KAAK;AACnC,QAAQ,MAAM,KAAK,GAAG,uBAAuB,CAAC,kBAAkB,CAAC,MAAM,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC;AAC1F,QAAQ,MAAM,SAAS,GAAG,qBAAqB,CAAC,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,kBAAkB,CAAC,CAAC;AAC5F,QAAQ,MAAM,IAAI,GAAG,cAAc,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;AAClD,QAAQ,MAAM,OAAO,GAAG,gBAAgB,CAAC,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;AAChE,QAAQ,MAAM,UAAU,GAAG,MAAM,CAAC,OAAO,CAAC;AAC1C,YAAY,GAAG,IAAI;AACnB,YAAY,KAAK;AACjB,YAAY,SAAS;AACrB,SAAS,EAAE,OAAO,CAAC,CAAC;AACpB,QAAQ,OAAO,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,IAAI;AAC5C,YAAY,MAAM,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;AAClD,YAAY,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACzC,YAAY,MAAM,CAAC,WAAW,CAAC,GAAG,eAAe,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,IAAI,CAAC,EAAE,kBAAkB,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;AAC3H,YAAY,OAAO,WAAW,CAAC;AAC/B,SAAS,CAAC,CAAC,CAAC;AACZ,KAAK,CAAC;AACN,IAAI,OAAO,YAAY,CAAC;AACxB;;;;"}
|
|
@@ -2,8 +2,7 @@ import '../InternalGraphQLAPI.mjs';
|
|
|
2
2
|
import { graphql, cancel, isCancelError } from '../v6.mjs';
|
|
3
3
|
import { __amplify, __authMode, __authToken } from '../../types/index.mjs';
|
|
4
4
|
import 'rxjs';
|
|
5
|
-
import '
|
|
6
|
-
import '../../utils/errors/validation.mjs';
|
|
5
|
+
import '../../utils/resolveConfig.mjs';
|
|
7
6
|
import { generateModelsProperty } from './generateModelsProperty.mjs';
|
|
8
7
|
|
|
9
8
|
// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generateClient.mjs","sources":["../../../../src/internals/server/generateClient.ts"],"sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { graphql, cancel, isCancelError } from '../';\nimport { generateModelsProperty } from './generateModelsProperty';\nimport { __amplify, __authMode, __authToken, } from '../../types';\n/**\n * @private\n *\n * Creates a client that can be used to make GraphQL requests, using a provided `AmplifyClassV6`\n * compatible context object for config and auth fetching.\n *\n * @param params\n * @returns\n */\nexport function generateClient(params) {\n const client = {\n [__amplify]: params.amplify,\n [__authMode]: params.authMode,\n [__authToken]: params.authToken,\n graphql,\n cancel,\n isCancelError,\n };\n client.models = generateModelsProperty(client, params);\n return client;\n}\n"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"generateClient.mjs","sources":["../../../../src/internals/server/generateClient.ts"],"sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { graphql, cancel, isCancelError } from '../';\nimport { generateModelsProperty } from './generateModelsProperty';\nimport { __amplify, __authMode, __authToken, } from '../../types';\n/**\n * @private\n *\n * Creates a client that can be used to make GraphQL requests, using a provided `AmplifyClassV6`\n * compatible context object for config and auth fetching.\n *\n * @param params\n * @returns\n */\nexport function generateClient(params) {\n const client = {\n [__amplify]: params.amplify,\n [__authMode]: params.authMode,\n [__authToken]: params.authToken,\n graphql,\n cancel,\n isCancelError,\n };\n client.models = generateModelsProperty(client, params);\n return client;\n}\n"],"names":[],"mappings":";;;;;;;AAAA;AACA;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAAS,cAAc,CAAC,MAAM,EAAE;AACvC,IAAI,MAAM,MAAM,GAAG;AACnB,QAAQ,CAAC,SAAS,GAAG,MAAM,CAAC,OAAO;AACnC,QAAQ,CAAC,UAAU,GAAG,MAAM,CAAC,QAAQ;AACrC,QAAQ,CAAC,WAAW,GAAG,MAAM,CAAC,SAAS;AACvC,QAAQ,OAAO;AACf,QAAQ,MAAM;AACd,QAAQ,aAAa;AACrB,KAAK,CAAC;AACN,IAAI,MAAM,CAAC,MAAM,GAAG,sBAAsB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AAC3D,IAAI,OAAO,MAAM,CAAC;AAClB;;;;"}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import { ServerClientGenerationParams } from '../../types/';
|
|
2
2
|
import { V6ClientSSRRequest, V6ClientSSRCookies } from '../../types';
|
|
3
|
-
export declare function generateModelsProperty<
|
|
3
|
+
export declare function generateModelsProperty<_T extends Record<any, any> = never, ClientType extends V6ClientSSRRequest<Record<string, any>> | V6ClientSSRCookies<Record<string, any>> = V6ClientSSRCookies<Record<string, any>>>(client: ClientType, params: ServerClientGenerationParams): ClientType;
|
|
@@ -10,7 +10,7 @@ function generateModelsProperty(client, params) {
|
|
|
10
10
|
throw new Error('generateModelsProperty cannot retrieve Amplify config');
|
|
11
11
|
}
|
|
12
12
|
if (!config.API?.GraphQL) {
|
|
13
|
-
|
|
13
|
+
return {};
|
|
14
14
|
}
|
|
15
15
|
const modelIntrospection = config.API.GraphQL.modelIntrospection;
|
|
16
16
|
if (!modelIntrospection) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generateModelsProperty.mjs","sources":["../../../../src/internals/server/generateModelsProperty.ts"],"sourcesContent":["import { graphQLOperationsInfo } from '../APIClient';\nimport { listFactory } from '../operations/list';\nimport { getFactory } from '../operations/get';\nexport function generateModelsProperty(client, params) {\n const models = {};\n const config = params.config;\n const useContext = client === null;\n if (!config) {\n throw new Error('generateModelsProperty cannot retrieve Amplify config');\n }\n if (!config.API?.GraphQL) {\n
|
|
1
|
+
{"version":3,"file":"generateModelsProperty.mjs","sources":["../../../../src/internals/server/generateModelsProperty.ts"],"sourcesContent":["import { graphQLOperationsInfo } from '../APIClient';\nimport { listFactory } from '../operations/list';\nimport { getFactory } from '../operations/get';\nexport function generateModelsProperty(client, params) {\n const models = {};\n const config = params.config;\n const useContext = client === null;\n if (!config) {\n throw new Error('generateModelsProperty cannot retrieve Amplify config');\n }\n if (!config.API?.GraphQL) {\n return {};\n }\n const modelIntrospection = config.API.GraphQL.modelIntrospection;\n if (!modelIntrospection) {\n return {};\n }\n const SSR_UNSUPORTED_OPS = [\n 'ONCREATE',\n 'ONUPDATE',\n 'ONDELETE',\n 'OBSERVE_QUERY',\n ];\n for (const model of Object.values(modelIntrospection.models)) {\n const { name } = model;\n models[name] = {};\n Object.entries(graphQLOperationsInfo).forEach(([key, { operationPrefix }]) => {\n const operation = key;\n // subscriptions are not supported in SSR\n if (SSR_UNSUPORTED_OPS.includes(operation))\n return;\n if (operation === 'LIST') {\n models[name][operationPrefix] = listFactory(client, modelIntrospection, model, useContext);\n }\n else {\n models[name][operationPrefix] = getFactory(client, modelIntrospection, model, operation, useContext);\n }\n });\n }\n return models;\n}\n"],"names":[],"mappings":";;;;AAGO,SAAS,sBAAsB,CAAC,MAAM,EAAE,MAAM,EAAE;AACvD,IAAI,MAAM,MAAM,GAAG,EAAE,CAAC;AACtB,IAAI,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;AACjC,IAAI,MAAM,UAAU,GAAG,MAAM,KAAK,IAAI,CAAC;AACvC,IAAI,IAAI,CAAC,MAAM,EAAE;AACjB,QAAQ,MAAM,IAAI,KAAK,CAAC,uDAAuD,CAAC,CAAC;AACjF,KAAK;AACL,IAAI,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,OAAO,EAAE;AAC9B,QAAQ,OAAO,EAAE,CAAC;AAClB,KAAK;AACL,IAAI,MAAM,kBAAkB,GAAG,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,kBAAkB,CAAC;AACrE,IAAI,IAAI,CAAC,kBAAkB,EAAE;AAC7B,QAAQ,OAAO,EAAE,CAAC;AAClB,KAAK;AACL,IAAI,MAAM,kBAAkB,GAAG;AAC/B,QAAQ,UAAU;AAClB,QAAQ,UAAU;AAClB,QAAQ,UAAU;AAClB,QAAQ,eAAe;AACvB,KAAK,CAAC;AACN,IAAI,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,MAAM,CAAC,kBAAkB,CAAC,MAAM,CAAC,EAAE;AAClE,QAAQ,MAAM,EAAE,IAAI,EAAE,GAAG,KAAK,CAAC;AAC/B,QAAQ,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;AAC1B,QAAQ,MAAM,CAAC,OAAO,CAAC,qBAAqB,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,EAAE,eAAe,EAAE,CAAC,KAAK;AACtF,YAAY,MAAM,SAAS,GAAG,GAAG,CAAC;AAClC;AACA,YAAY,IAAI,kBAAkB,CAAC,QAAQ,CAAC,SAAS,CAAC;AACtD,gBAAgB,OAAO;AACvB,YAAY,IAAI,SAAS,KAAK,MAAM,EAAE;AACtC,gBAAgB,MAAM,CAAC,IAAI,CAAC,CAAC,eAAe,CAAC,GAAG,WAAW,CAAC,MAAM,EAAE,kBAAkB,EAAE,KAAK,EAAE,UAAU,CAAC,CAAC;AAC3G,aAAa;AACb,iBAAiB;AACjB,gBAAgB,MAAM,CAAC,IAAI,CAAC,CAAC,eAAe,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,kBAAkB,EAAE,KAAK,EAAE,SAAS,EAAE,UAAU,CAAC,CAAC;AACrH,aAAa;AACb,SAAS,CAAC,CAAC;AACX,KAAK;AACL,IAAI,OAAO,MAAM,CAAC;AAClB;;;;"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { AmplifyClassV6 } from '@aws-amplify/core';
|
|
2
2
|
import { GraphQLAuthMode } from '@aws-amplify/core/internals/utils';
|
|
3
|
+
import { CustomHeaders } from '@aws-amplify/data-schema-types';
|
|
3
4
|
/**
|
|
4
5
|
* @private
|
|
5
6
|
*
|
|
@@ -14,4 +15,5 @@ export type ClientGenerationParams = {
|
|
|
14
15
|
export type CommonPublicClientOptions = {
|
|
15
16
|
authMode?: GraphQLAuthMode;
|
|
16
17
|
authToken?: string;
|
|
18
|
+
headers?: CustomHeaders;
|
|
17
19
|
};
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { V6Client, GraphQLOptionsV6, GraphQLResponseV6 } from '../types';
|
|
2
|
+
import { CustomHeaders } from '@aws-amplify/data-schema-types';
|
|
2
3
|
/**
|
|
3
4
|
* Invokes graphql operations against a graphql service, providing correct input and
|
|
4
5
|
* output types if Amplify-generated graphql from a recent version of the CLI/codegen
|
|
@@ -83,9 +84,7 @@ import { V6Client, GraphQLOptionsV6, GraphQLResponseV6 } from '../types';
|
|
|
83
84
|
* @param options
|
|
84
85
|
* @param additionalHeaders
|
|
85
86
|
*/
|
|
86
|
-
export declare function graphql<FALLBACK_TYPES = unknown, TYPED_GQL_STRING extends string = string>(this: V6Client, options: GraphQLOptionsV6<FALLBACK_TYPES, TYPED_GQL_STRING>, additionalHeaders?:
|
|
87
|
-
[key: string]: string;
|
|
88
|
-
}): GraphQLResponseV6<FALLBACK_TYPES, TYPED_GQL_STRING>;
|
|
87
|
+
export declare function graphql<FALLBACK_TYPES = unknown, TYPED_GQL_STRING extends string = string>(this: V6Client, options: GraphQLOptionsV6<FALLBACK_TYPES, TYPED_GQL_STRING>, additionalHeaders?: CustomHeaders): GraphQLResponseV6<FALLBACK_TYPES, TYPED_GQL_STRING>;
|
|
89
88
|
/**
|
|
90
89
|
* Cancels an inflight request. Only applicable for graphql queries and mutations
|
|
91
90
|
* @param {any} request - request to cancel
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { AmplifyClassV6, ResourcesConfig } from '@aws-amplify/core';
|
|
2
|
-
import { ModelTypes } from '@aws-amplify/data-schema-types';
|
|
2
|
+
import { ModelTypes, CustomHeaders } from '@aws-amplify/data-schema-types';
|
|
3
3
|
import { Source, DocumentNode, GraphQLError } from 'graphql';
|
|
4
4
|
export { OperationTypeNode } from 'graphql';
|
|
5
5
|
import { Observable } from 'rxjs';
|
|
@@ -143,9 +143,7 @@ export interface AWSAppSyncRealTimeProviderOptions {
|
|
|
143
143
|
apiKey?: string;
|
|
144
144
|
region?: string;
|
|
145
145
|
graphql_headers?: () => {} | (() => Promise<{}>);
|
|
146
|
-
additionalHeaders?:
|
|
147
|
-
[key: string]: string;
|
|
148
|
-
};
|
|
146
|
+
additionalHeaders?: CustomHeaders;
|
|
149
147
|
}
|
|
150
148
|
export type AWSAppSyncRealTimeProvider = {
|
|
151
149
|
subscribe(options?: AWSAppSyncRealTimeProviderOptions): Observable<Record<string, unknown>>;
|
|
@@ -285,11 +283,13 @@ type ExcludeNeverFields<O> = {
|
|
|
285
283
|
export declare const __amplify: unique symbol;
|
|
286
284
|
export declare const __authMode: unique symbol;
|
|
287
285
|
export declare const __authToken: unique symbol;
|
|
286
|
+
export declare const __headers: unique symbol;
|
|
288
287
|
export type ClientWithModels = V6Client<Record<string, any>> | V6ClientSSRRequest<Record<string, any>> | V6ClientSSRCookies<Record<string, any>>;
|
|
289
288
|
export type V6Client<T extends Record<any, any> = never> = ExcludeNeverFields<{
|
|
290
289
|
[__amplify]: AmplifyClassV6;
|
|
291
290
|
[__authMode]?: GraphQLAuthMode;
|
|
292
291
|
[__authToken]?: string;
|
|
292
|
+
[__headers]?: CustomHeaders;
|
|
293
293
|
graphql: GraphQLMethod;
|
|
294
294
|
cancel: (promise: Promise<any>, message?: string) => boolean;
|
|
295
295
|
isCancelError: (error: any) => boolean;
|
|
@@ -299,6 +299,7 @@ export type V6ClientSSRRequest<T extends Record<any, any> = never> = ExcludeNeve
|
|
|
299
299
|
[__amplify]: AmplifyClassV6;
|
|
300
300
|
[__authMode]?: GraphQLAuthMode;
|
|
301
301
|
[__authToken]?: string;
|
|
302
|
+
[__headers]?: CustomHeaders;
|
|
302
303
|
graphql: GraphQLMethodSSR;
|
|
303
304
|
cancel: (promise: Promise<any>, message?: string) => boolean;
|
|
304
305
|
isCancelError: (error: any) => boolean;
|
|
@@ -308,17 +309,14 @@ export type V6ClientSSRCookies<T extends Record<any, any> = never> = ExcludeNeve
|
|
|
308
309
|
[__amplify]: AmplifyClassV6;
|
|
309
310
|
[__authMode]?: GraphQLAuthMode;
|
|
310
311
|
[__authToken]?: string;
|
|
312
|
+
[__headers]?: CustomHeaders;
|
|
311
313
|
graphql: GraphQLMethod;
|
|
312
314
|
cancel: (promise: Promise<any>, message?: string) => boolean;
|
|
313
315
|
isCancelError: (error: any) => boolean;
|
|
314
316
|
models: ModelTypes<T, 'COOKIES'>;
|
|
315
317
|
}>;
|
|
316
|
-
export type GraphQLMethod = <FALLBACK_TYPES = unknown, TYPED_GQL_STRING extends string = string>(options: GraphQLOptionsV6<FALLBACK_TYPES, TYPED_GQL_STRING>, additionalHeaders?:
|
|
317
|
-
|
|
318
|
-
} | undefined) => GraphQLResponseV6<FALLBACK_TYPES, TYPED_GQL_STRING>;
|
|
319
|
-
export type GraphQLMethodSSR = <FALLBACK_TYPES = unknown, TYPED_GQL_STRING extends string = string>(contextSpec: AmplifyServer.ContextSpec, options: GraphQLOptionsV6<FALLBACK_TYPES, TYPED_GQL_STRING>, additionalHeaders?: {
|
|
320
|
-
[key: string]: string;
|
|
321
|
-
} | undefined) => GraphQLResponseV6<FALLBACK_TYPES, TYPED_GQL_STRING>;
|
|
318
|
+
export type GraphQLMethod = <FALLBACK_TYPES = unknown, TYPED_GQL_STRING extends string = string>(options: GraphQLOptionsV6<FALLBACK_TYPES, TYPED_GQL_STRING>, additionalHeaders?: CustomHeaders | undefined) => GraphQLResponseV6<FALLBACK_TYPES, TYPED_GQL_STRING>;
|
|
319
|
+
export type GraphQLMethodSSR = <FALLBACK_TYPES = unknown, TYPED_GQL_STRING extends string = string>(contextSpec: AmplifyServer.ContextSpec, options: GraphQLOptionsV6<FALLBACK_TYPES, TYPED_GQL_STRING>, additionalHeaders?: CustomHeaders | undefined) => GraphQLResponseV6<FALLBACK_TYPES, TYPED_GQL_STRING>;
|
|
322
320
|
/**
|
|
323
321
|
* @private
|
|
324
322
|
*
|
|
@@ -332,6 +330,7 @@ export type QueryArgs = Record<string, unknown>;
|
|
|
332
330
|
export type ListArgs = {
|
|
333
331
|
selectionSet?: string[];
|
|
334
332
|
filter?: {};
|
|
333
|
+
headers?: CustomHeaders;
|
|
335
334
|
};
|
|
336
335
|
export type AuthModeParams = {
|
|
337
336
|
authMode?: GraphQLAuthMode;
|
package/dist/esm/types/index.mjs
CHANGED
|
@@ -11,6 +11,7 @@ var GraphQLAuthError;
|
|
|
11
11
|
const __amplify = Symbol('amplify');
|
|
12
12
|
const __authMode = Symbol('authMode');
|
|
13
13
|
const __authToken = Symbol('authToken');
|
|
14
|
+
const __headers = Symbol('headers');
|
|
14
15
|
|
|
15
|
-
export { GraphQLAuthError, __amplify, __authMode, __authToken };
|
|
16
|
+
export { GraphQLAuthError, __amplify, __authMode, __authToken, __headers };
|
|
16
17
|
//# sourceMappingURL=index.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.mjs","sources":["../../../src/types/index.ts"],"sourcesContent":["export { CONTROL_MSG, ConnectionState } from './PubSub';\nexport var GraphQLAuthError;\n(function (GraphQLAuthError) {\n GraphQLAuthError[\"NO_API_KEY\"] = \"No api-key configured\";\n GraphQLAuthError[\"NO_CURRENT_USER\"] = \"No current user\";\n GraphQLAuthError[\"NO_CREDENTIALS\"] = \"No credentials\";\n GraphQLAuthError[\"NO_FEDERATED_JWT\"] = \"No federated jwt\";\n GraphQLAuthError[\"NO_AUTH_TOKEN\"] = \"No auth token specified\";\n})(GraphQLAuthError || (GraphQLAuthError = {}));\nexport const __amplify = Symbol('amplify');\nexport const __authMode = Symbol('authMode');\nexport const __authToken = Symbol('authToken');\n"],"names":[],"mappings":";;AACU,IAAC,iBAAiB;AAC5B,CAAC,UAAU,gBAAgB,EAAE;AAC7B,IAAI,gBAAgB,CAAC,YAAY,CAAC,GAAG,uBAAuB,CAAC;AAC7D,IAAI,gBAAgB,CAAC,iBAAiB,CAAC,GAAG,iBAAiB,CAAC;AAC5D,IAAI,gBAAgB,CAAC,gBAAgB,CAAC,GAAG,gBAAgB,CAAC;AAC1D,IAAI,gBAAgB,CAAC,kBAAkB,CAAC,GAAG,kBAAkB,CAAC;AAC9D,IAAI,gBAAgB,CAAC,eAAe,CAAC,GAAG,yBAAyB,CAAC;AAClE,CAAC,EAAE,gBAAgB,KAAK,gBAAgB,GAAG,EAAE,CAAC,CAAC,CAAC;AACpC,MAAC,SAAS,GAAG,MAAM,CAAC,SAAS,EAAE;AAC/B,MAAC,UAAU,GAAG,MAAM,CAAC,UAAU,EAAE;AACjC,MAAC,WAAW,GAAG,MAAM,CAAC,WAAW;;;;"}
|
|
1
|
+
{"version":3,"file":"index.mjs","sources":["../../../src/types/index.ts"],"sourcesContent":["export { CONTROL_MSG, ConnectionState } from './PubSub';\nexport var GraphQLAuthError;\n(function (GraphQLAuthError) {\n GraphQLAuthError[\"NO_API_KEY\"] = \"No api-key configured\";\n GraphQLAuthError[\"NO_CURRENT_USER\"] = \"No current user\";\n GraphQLAuthError[\"NO_CREDENTIALS\"] = \"No credentials\";\n GraphQLAuthError[\"NO_FEDERATED_JWT\"] = \"No federated jwt\";\n GraphQLAuthError[\"NO_AUTH_TOKEN\"] = \"No auth token specified\";\n})(GraphQLAuthError || (GraphQLAuthError = {}));\nexport const __amplify = Symbol('amplify');\nexport const __authMode = Symbol('authMode');\nexport const __authToken = Symbol('authToken');\nexport const __headers = Symbol('headers');\n"],"names":[],"mappings":";;AACU,IAAC,iBAAiB;AAC5B,CAAC,UAAU,gBAAgB,EAAE;AAC7B,IAAI,gBAAgB,CAAC,YAAY,CAAC,GAAG,uBAAuB,CAAC;AAC7D,IAAI,gBAAgB,CAAC,iBAAiB,CAAC,GAAG,iBAAiB,CAAC;AAC5D,IAAI,gBAAgB,CAAC,gBAAgB,CAAC,GAAG,gBAAgB,CAAC;AAC1D,IAAI,gBAAgB,CAAC,kBAAkB,CAAC,GAAG,kBAAkB,CAAC;AAC9D,IAAI,gBAAgB,CAAC,eAAe,CAAC,GAAG,yBAAyB,CAAC;AAClE,CAAC,EAAE,gBAAgB,KAAK,gBAAgB,GAAG,EAAE,CAAC,CAAC,CAAC;AACpC,MAAC,SAAS,GAAG,MAAM,CAAC,SAAS,EAAE;AAC/B,MAAC,UAAU,GAAG,MAAM,CAAC,UAAU,EAAE;AACjC,MAAC,WAAW,GAAG,MAAM,CAAC,WAAW,EAAE;AACnC,MAAC,SAAS,GAAG,MAAM,CAAC,SAAS;;;;"}
|
|
@@ -1,14 +1,20 @@
|
|
|
1
|
+
import { ConsoleLogger } from '@aws-amplify/core';
|
|
1
2
|
import '@aws-amplify/core/internals/utils';
|
|
2
3
|
import { assertValidationError } from './errors/assertValidationError.mjs';
|
|
3
4
|
import { APIValidationErrorCode } from './errors/validation.mjs';
|
|
4
5
|
|
|
5
6
|
// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
|
6
7
|
// SPDX-License-Identifier: Apache-2.0
|
|
8
|
+
const logger = new ConsoleLogger('GraphQLAPI resolveConfig');
|
|
7
9
|
/**
|
|
8
10
|
* @internal
|
|
9
11
|
*/
|
|
10
12
|
const resolveConfig = (amplify) => {
|
|
11
|
-
const
|
|
13
|
+
const config = amplify.getConfig();
|
|
14
|
+
if (!config.API?.GraphQL) {
|
|
15
|
+
logger.warn('The API configuration is missing. This is likely due to Amplify.configure() not being called prior to generateClient().');
|
|
16
|
+
}
|
|
17
|
+
const { apiKey, customEndpoint, customEndpointRegion, defaultAuthMode, endpoint, region, } = config.API?.GraphQL ?? {};
|
|
12
18
|
// TODO: re-enable when working in all test environments:
|
|
13
19
|
// assertValidationError(!!endpoint, APIValidationErrorCode.NoEndpoint);
|
|
14
20
|
assertValidationError(!(!customEndpoint && customEndpointRegion), APIValidationErrorCode.NoCustomEndpoint);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resolveConfig.mjs","sources":["../../../src/utils/resolveConfig.ts"],"sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { APIValidationErrorCode, assertValidationError } from './errors';\n/**\n * @internal\n */\nexport const resolveConfig = (amplify) => {\n const { apiKey, customEndpoint, customEndpointRegion, defaultAuthMode, endpoint, region, } =
|
|
1
|
+
{"version":3,"file":"resolveConfig.mjs","sources":["../../../src/utils/resolveConfig.ts"],"sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { ConsoleLogger } from '@aws-amplify/core';\nimport { APIValidationErrorCode, assertValidationError } from './errors';\nconst logger = new ConsoleLogger('GraphQLAPI resolveConfig');\n/**\n * @internal\n */\nexport const resolveConfig = (amplify) => {\n const config = amplify.getConfig();\n if (!config.API?.GraphQL) {\n logger.warn('The API configuration is missing. This is likely due to Amplify.configure() not being called prior to generateClient().');\n }\n const { apiKey, customEndpoint, customEndpointRegion, defaultAuthMode, endpoint, region, } = config.API?.GraphQL ?? {};\n // TODO: re-enable when working in all test environments:\n // assertValidationError(!!endpoint, APIValidationErrorCode.NoEndpoint);\n assertValidationError(!(!customEndpoint && customEndpointRegion), APIValidationErrorCode.NoCustomEndpoint);\n return {\n apiKey,\n customEndpoint,\n customEndpointRegion,\n defaultAuthMode,\n endpoint,\n region,\n };\n};\n"],"names":[],"mappings":";;;;;AAAA;AACA;AAGA,MAAM,MAAM,GAAG,IAAI,aAAa,CAAC,0BAA0B,CAAC,CAAC;AAC7D;AACA;AACA;AACY,MAAC,aAAa,GAAG,CAAC,OAAO,KAAK;AAC1C,IAAI,MAAM,MAAM,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC;AACvC,IAAI,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,OAAO,EAAE;AAC9B,QAAQ,MAAM,CAAC,IAAI,CAAC,yHAAyH,CAAC,CAAC;AAC/I,KAAK;AACL,IAAI,MAAM,EAAE,MAAM,EAAE,cAAc,EAAE,oBAAoB,EAAE,eAAe,EAAE,QAAQ,EAAE,MAAM,GAAG,GAAG,MAAM,CAAC,GAAG,EAAE,OAAO,IAAI,EAAE,CAAC;AAC3H;AACA;AACA,IAAI,qBAAqB,CAAC,EAAE,CAAC,cAAc,IAAI,oBAAoB,CAAC,EAAE,sBAAsB,CAAC,gBAAgB,CAAC,CAAC;AAC/G,IAAI,OAAO;AACX,QAAQ,MAAM;AACd,QAAQ,cAAc;AACtB,QAAQ,oBAAoB;AAC5B,QAAQ,eAAe;AACvB,QAAQ,QAAQ;AAChB,QAAQ,MAAM;AACd,KAAK,CAAC;AACN;;;;"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@aws-amplify/api-graphql",
|
|
3
|
-
"version": "4.0.3-unstable.
|
|
3
|
+
"version": "4.0.3-unstable.4953a58.0+4953a58",
|
|
4
4
|
"description": "Api-graphql category of aws-amplify",
|
|
5
5
|
"main": "./dist/cjs/index.js",
|
|
6
6
|
"module": "./dist/esm/index.mjs",
|
|
@@ -67,7 +67,7 @@
|
|
|
67
67
|
},
|
|
68
68
|
"homepage": "https://aws-amplify.github.io/",
|
|
69
69
|
"devDependencies": {
|
|
70
|
-
"@aws-amplify/data-schema": "^0.
|
|
70
|
+
"@aws-amplify/data-schema": "^0.12.6",
|
|
71
71
|
"@rollup/plugin-typescript": "11.1.5",
|
|
72
72
|
"rollup": "3.29.4",
|
|
73
73
|
"typescript": "5.0.2"
|
|
@@ -79,9 +79,9 @@
|
|
|
79
79
|
"internals"
|
|
80
80
|
],
|
|
81
81
|
"dependencies": {
|
|
82
|
-
"@aws-amplify/api-rest": "4.0.3-unstable.
|
|
83
|
-
"@aws-amplify/core": "6.0.3-unstable.
|
|
84
|
-
"@aws-amplify/data-schema-types": "^0.4
|
|
82
|
+
"@aws-amplify/api-rest": "4.0.3-unstable.4953a58.0+4953a58",
|
|
83
|
+
"@aws-amplify/core": "6.0.3-unstable.4953a58.0+4953a58",
|
|
84
|
+
"@aws-amplify/data-schema-types": "^0.6.4",
|
|
85
85
|
"@aws-sdk/types": "3.387.0",
|
|
86
86
|
"graphql": "15.8.0",
|
|
87
87
|
"rxjs": "^7.8.1",
|
|
@@ -146,5 +146,5 @@
|
|
|
146
146
|
"<rootDir>/__tests__"
|
|
147
147
|
]
|
|
148
148
|
},
|
|
149
|
-
"gitHead": "
|
|
149
|
+
"gitHead": "4953a584b95db10dd528c6d1814d8bd47a33ee3d"
|
|
150
150
|
}
|
package/src/GraphQLAPI.ts
CHANGED
|
@@ -4,6 +4,7 @@ import { AmplifyClassV6 } from '@aws-amplify/core';
|
|
|
4
4
|
import { Category, ApiAction } from '@aws-amplify/core/internals/utils';
|
|
5
5
|
import { GraphQLOptions, GraphQLResult } from './types';
|
|
6
6
|
import { InternalGraphQLAPIClass } from './internals/InternalGraphQLAPI';
|
|
7
|
+
import { CustomHeaders } from '@aws-amplify/data-schema-types';
|
|
7
8
|
import { Observable } from 'rxjs';
|
|
8
9
|
|
|
9
10
|
export const graphqlOperation = (
|
|
@@ -34,7 +35,7 @@ export class GraphQLAPIClass extends InternalGraphQLAPIClass {
|
|
|
34
35
|
graphql<T = any>(
|
|
35
36
|
amplify: AmplifyClassV6 | (() => Promise<AmplifyClassV6>),
|
|
36
37
|
options: GraphQLOptions,
|
|
37
|
-
additionalHeaders?:
|
|
38
|
+
additionalHeaders?: CustomHeaders
|
|
38
39
|
): Observable<GraphQLResult<T>> | Promise<GraphQLResult<T>> {
|
|
39
40
|
return super.graphql(amplify, options, additionalHeaders, {
|
|
40
41
|
category: Category.API,
|
|
@@ -98,7 +98,11 @@ export interface AWSAppSyncRealTimeProviderOptions {
|
|
|
98
98
|
apiKey?: string;
|
|
99
99
|
region?: string;
|
|
100
100
|
graphql_headers?: () => {} | (() => Promise<{}>);
|
|
101
|
-
additionalHeaders?:
|
|
101
|
+
additionalHeaders?:
|
|
102
|
+
| Record<string, string>
|
|
103
|
+
| (() => Promise<Record<string, string>>);
|
|
104
|
+
additionalCustomHeaders?: Record<string, string>;
|
|
105
|
+
authToken?: string;
|
|
102
106
|
}
|
|
103
107
|
|
|
104
108
|
type AWSAppSyncRealTimeAuthInput =
|
|
@@ -198,6 +202,7 @@ export class AWSAppSyncRealTimeProvider {
|
|
|
198
202
|
authenticationType,
|
|
199
203
|
additionalHeaders,
|
|
200
204
|
apiKey,
|
|
205
|
+
authToken,
|
|
201
206
|
} = options || {};
|
|
202
207
|
|
|
203
208
|
return new Observable(observer => {
|
|
@@ -229,6 +234,7 @@ export class AWSAppSyncRealTimeProvider {
|
|
|
229
234
|
appSyncGraphqlEndpoint,
|
|
230
235
|
additionalHeaders,
|
|
231
236
|
apiKey,
|
|
237
|
+
authToken,
|
|
232
238
|
},
|
|
233
239
|
observer,
|
|
234
240
|
subscriptionId,
|
|
@@ -309,8 +315,25 @@ export class AWSAppSyncRealTimeProvider {
|
|
|
309
315
|
region,
|
|
310
316
|
graphql_headers = () => ({}),
|
|
311
317
|
additionalHeaders = {},
|
|
318
|
+
authToken,
|
|
312
319
|
} = options;
|
|
313
320
|
|
|
321
|
+
let additionalCustomHeaders: Record<string, string> = {};
|
|
322
|
+
|
|
323
|
+
if (typeof additionalHeaders === 'function') {
|
|
324
|
+
additionalCustomHeaders = await additionalHeaders();
|
|
325
|
+
} else {
|
|
326
|
+
additionalCustomHeaders = additionalHeaders;
|
|
327
|
+
}
|
|
328
|
+
|
|
329
|
+
// if an authorization header is set, have the explicit authToken take precedence
|
|
330
|
+
if (authToken) {
|
|
331
|
+
additionalCustomHeaders = {
|
|
332
|
+
...additionalCustomHeaders,
|
|
333
|
+
Authorization: authToken,
|
|
334
|
+
};
|
|
335
|
+
}
|
|
336
|
+
|
|
314
337
|
const subscriptionState: SUBSCRIPTION_STATUS = SUBSCRIPTION_STATUS.PENDING;
|
|
315
338
|
const data = {
|
|
316
339
|
query,
|
|
@@ -336,10 +359,10 @@ export class AWSAppSyncRealTimeProvider {
|
|
|
336
359
|
payload: dataString,
|
|
337
360
|
canonicalUri: '',
|
|
338
361
|
region,
|
|
339
|
-
|
|
362
|
+
additionalCustomHeaders,
|
|
340
363
|
})),
|
|
341
364
|
...(await graphql_headers()),
|
|
342
|
-
...
|
|
365
|
+
...additionalCustomHeaders,
|
|
343
366
|
[USER_AGENT_HEADER]: getAmplifyUserAgent(customUserAgentDetails),
|
|
344
367
|
};
|
|
345
368
|
|
|
@@ -365,7 +388,7 @@ export class AWSAppSyncRealTimeProvider {
|
|
|
365
388
|
appSyncGraphqlEndpoint,
|
|
366
389
|
authenticationType,
|
|
367
390
|
region,
|
|
368
|
-
|
|
391
|
+
additionalCustomHeaders,
|
|
369
392
|
});
|
|
370
393
|
} catch (err: any) {
|
|
371
394
|
this._logStartSubscriptionError(subscriptionId, observer, err);
|
|
@@ -679,7 +702,7 @@ export class AWSAppSyncRealTimeProvider {
|
|
|
679
702
|
authenticationType,
|
|
680
703
|
apiKey,
|
|
681
704
|
region,
|
|
682
|
-
|
|
705
|
+
additionalCustomHeaders,
|
|
683
706
|
}: AWSAppSyncRealTimeProviderOptions) {
|
|
684
707
|
if (this.socketStatus === SOCKET_STATUS.READY) {
|
|
685
708
|
return;
|
|
@@ -700,7 +723,7 @@ export class AWSAppSyncRealTimeProvider {
|
|
|
700
723
|
apiKey,
|
|
701
724
|
appSyncGraphqlEndpoint,
|
|
702
725
|
region,
|
|
703
|
-
|
|
726
|
+
additionalCustomHeaders,
|
|
704
727
|
});
|
|
705
728
|
|
|
706
729
|
const headerString = authHeader ? JSON.stringify(authHeader) : '';
|
|
@@ -883,7 +906,7 @@ export class AWSAppSyncRealTimeProvider {
|
|
|
883
906
|
canonicalUri,
|
|
884
907
|
appSyncGraphqlEndpoint,
|
|
885
908
|
region,
|
|
886
|
-
|
|
909
|
+
additionalCustomHeaders,
|
|
887
910
|
}: AWSAppSyncRealTimeAuthInput): Promise<
|
|
888
911
|
Record<string, unknown> | undefined
|
|
889
912
|
> {
|
|
@@ -920,7 +943,7 @@ export class AWSAppSyncRealTimeProvider {
|
|
|
920
943
|
apiKey: resolvedApiKey,
|
|
921
944
|
region,
|
|
922
945
|
host,
|
|
923
|
-
|
|
946
|
+
additionalCustomHeaders,
|
|
924
947
|
});
|
|
925
948
|
|
|
926
949
|
return result;
|
|
@@ -989,14 +1012,19 @@ export class AWSAppSyncRealTimeProvider {
|
|
|
989
1012
|
|
|
990
1013
|
private _customAuthHeader({
|
|
991
1014
|
host,
|
|
992
|
-
|
|
1015
|
+
additionalCustomHeaders,
|
|
993
1016
|
}: AWSAppSyncRealTimeAuthInput) {
|
|
994
|
-
|
|
1017
|
+
/**
|
|
1018
|
+
* If `additionalHeaders` was provided to the subscription as a function,
|
|
1019
|
+
* the headers that are returned by that function will already have been
|
|
1020
|
+
* provided before this function is called.
|
|
1021
|
+
*/
|
|
1022
|
+
if (!additionalCustomHeaders?.['Authorization']) {
|
|
995
1023
|
throw new Error('No auth token specified');
|
|
996
1024
|
}
|
|
997
1025
|
|
|
998
1026
|
return {
|
|
999
|
-
Authorization:
|
|
1027
|
+
Authorization: additionalCustomHeaders.Authorization,
|
|
1000
1028
|
host,
|
|
1001
1029
|
};
|
|
1002
1030
|
}
|
|
@@ -16,17 +16,21 @@ import {
|
|
|
16
16
|
ListArgs,
|
|
17
17
|
QueryArgs,
|
|
18
18
|
V6Client,
|
|
19
|
+
V6ClientSSRCookies,
|
|
19
20
|
V6ClientSSRRequest,
|
|
20
21
|
__authMode,
|
|
21
22
|
__authToken,
|
|
23
|
+
__headers,
|
|
22
24
|
} from '../types';
|
|
23
25
|
import { AmplifyServer } from '@aws-amplify/core/internals/adapter-core';
|
|
26
|
+
import { CustomHeaders } from '@aws-amplify/data-schema-types';
|
|
24
27
|
|
|
25
28
|
type LazyLoadOptions = {
|
|
26
29
|
authMode?: GraphQLAuthMode;
|
|
27
30
|
authToken?: string | undefined;
|
|
28
31
|
limit?: number | undefined;
|
|
29
32
|
nextToken?: string | undefined | null;
|
|
33
|
+
headers?: CustomHeaders | undefined;
|
|
30
34
|
};
|
|
31
35
|
|
|
32
36
|
const connectionType = {
|
|
@@ -778,3 +782,24 @@ export function authModeParams(
|
|
|
778
782
|
authToken: options.authToken || client[__authToken],
|
|
779
783
|
};
|
|
780
784
|
}
|
|
785
|
+
|
|
786
|
+
/**
|
|
787
|
+
* Retrieves custom headers from either the client or request options.
|
|
788
|
+
* @param {client} V6Client | V6ClientSSRRequest | V6ClientSSRCookies - for extracting client headers
|
|
789
|
+
* @param {requestHeaders} [CustomHeaders] - request headers
|
|
790
|
+
* @returns {CustomHeaders} - custom headers
|
|
791
|
+
*/
|
|
792
|
+
export function getCustomHeaders(
|
|
793
|
+
client: V6Client | ClientWithModels,
|
|
794
|
+
requestHeaders?: CustomHeaders
|
|
795
|
+
): CustomHeaders {
|
|
796
|
+
let headers: CustomHeaders = client[__headers] || {};
|
|
797
|
+
|
|
798
|
+
// Individual request headers will take precedence over client headers.
|
|
799
|
+
// We intentionally do *not* merge client and request headers.
|
|
800
|
+
if (requestHeaders) {
|
|
801
|
+
headers = requestHeaders;
|
|
802
|
+
}
|
|
803
|
+
|
|
804
|
+
return headers;
|
|
805
|
+
}
|