@aws-amplify/adapter-nextjs 0.0.2-server-generate-client.1e317a1.0 → 1.0.1-ssr-api.df60e41.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/internals/package.json +7 -0
- package/lib/generateServerClient.d.ts +12 -4
- package/lib/generateServerClient.js +53 -19
- package/lib/generateServerClient.js.map +1 -1
- package/lib/index.d.ts +0 -1
- package/lib/index.js +1 -3
- package/lib/index.js.map +1 -1
- package/lib/internals/index.d.ts +2 -0
- package/lib/internals/index.js +8 -0
- package/lib/internals/index.js.map +1 -0
- package/lib/runWithAmplifyServerContext.js +30 -67
- package/lib/runWithAmplifyServerContext.js.map +1 -1
- package/lib/utils/createCookieStorageAdapterFromNextServerContext.js +57 -69
- package/lib/utils/createCookieStorageAdapterFromNextServerContext.js.map +1 -1
- package/lib/utils/getAmplifyConfig.js +9 -9
- package/lib/utils/getAmplifyConfig.js.map +1 -1
- package/lib/withAmplify.d.ts +1 -1
- package/lib/withAmplify.js +10 -15
- package/lib/withAmplify.js.map +1 -1
- package/lib-esm/generateServerClient.d.ts +12 -4
- package/lib-esm/generateServerClient.js +49 -16
- package/lib-esm/generateServerClient.js.map +1 -1
- package/lib-esm/index.d.ts +0 -1
- package/lib-esm/index.js +0 -1
- package/lib-esm/index.js.map +1 -1
- package/lib-esm/internals/index.d.ts +2 -0
- package/lib-esm/internals/index.js +4 -0
- package/lib-esm/internals/index.js.map +1 -0
- package/lib-esm/runWithAmplifyServerContext.js +28 -65
- package/lib-esm/runWithAmplifyServerContext.js.map +1 -1
- package/lib-esm/utils/createCookieStorageAdapterFromNextServerContext.js +56 -68
- package/lib-esm/utils/createCookieStorageAdapterFromNextServerContext.js.map +1 -1
- package/lib-esm/utils/getAmplifyConfig.js +6 -6
- package/lib-esm/utils/getAmplifyConfig.js.map +1 -1
- package/lib-esm/withAmplify.d.ts +1 -1
- package/lib-esm/withAmplify.js +10 -15
- package/lib-esm/withAmplify.js.map +1 -1
- package/package.json +20 -9
- package/src/generateServerClient.ts +72 -17
- package/src/index.ts +0 -1
- package/src/internals/index.ts +5 -0
- package/src/runWithAmplifyServerContext.ts +1 -1
- package/src/withAmplify.ts +1 -1
- package/with-amplify/package.json +1 -1
|
@@ -1,7 +1,15 @@
|
|
|
1
|
-
import { V6Client } from '@aws-amplify/api-graphql';
|
|
1
|
+
import { V6Client, V6ClientSSR } from '@aws-amplify/api-graphql';
|
|
2
2
|
import { NextServer } from './types';
|
|
3
|
-
export type { GraphQLResult, GraphQLReturnType, } from '@aws-amplify/api-graphql';
|
|
4
3
|
/**
|
|
5
|
-
* Generates an API client that can
|
|
4
|
+
* Generates an API client that can be used inside a Next.js Server Component
|
|
5
|
+
*
|
|
6
|
+
* @example
|
|
7
|
+
* ```ts
|
|
8
|
+
* import { cookies } from "next/headers";
|
|
9
|
+
*
|
|
10
|
+
* const client = generateServerClientUsingCookies({ cookies })
|
|
11
|
+
* client.graphql()
|
|
12
|
+
* ```
|
|
6
13
|
*/
|
|
7
|
-
export declare function
|
|
14
|
+
export declare function generateServerClientUsingCookies<T extends Record<any, any> = never>(nextServerContext: NextServer.ServerComponentContext): V6Client<T>;
|
|
15
|
+
export declare function generateServerClient<T extends Record<any, any> = never>(): V6ClientSSR<T>;
|
|
@@ -2,30 +2,64 @@
|
|
|
2
2
|
// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
|
3
3
|
// SPDX-License-Identifier: Apache-2.0
|
|
4
4
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
5
|
-
exports.generateServerClient = void 0;
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
5
|
+
exports.generateServerClient = exports.generateServerClientUsingCookies = void 0;
|
|
6
|
+
const server_1 = require("@aws-amplify/api/server");
|
|
7
|
+
const adapter_core_1 = require("@aws-amplify/core/internals/adapter-core");
|
|
8
|
+
const api_graphql_1 = require("@aws-amplify/api-graphql");
|
|
9
|
+
const runWithAmplifyServerContext_1 = require("./runWithAmplifyServerContext");
|
|
10
|
+
const getAmplifyConfig_1 = require("./utils/getAmplifyConfig");
|
|
10
11
|
/**
|
|
11
|
-
* Generates an API client that can
|
|
12
|
+
* Generates an API client that can be used inside a Next.js Server Component
|
|
13
|
+
*
|
|
14
|
+
* @example
|
|
15
|
+
* ```ts
|
|
16
|
+
* import { cookies } from "next/headers";
|
|
17
|
+
*
|
|
18
|
+
* const client = generateServerClientUsingCookies({ cookies })
|
|
19
|
+
* client.graphql()
|
|
20
|
+
* ```
|
|
12
21
|
*/
|
|
13
|
-
function
|
|
14
|
-
|
|
22
|
+
function generateServerClientUsingCookies(nextServerContext) {
|
|
23
|
+
if (!nextServerContext.cookies ||
|
|
24
|
+
nextServerContext.request !== undefined) {
|
|
25
|
+
throw new adapter_core_1.AmplifyServerContextError({
|
|
26
|
+
message: 'generateServerClientUsingCookies is only compatible with the `cookies` Dynamic Function available in Server Components',
|
|
27
|
+
// TODO: link to docs
|
|
28
|
+
recoverySuggestion: 'use generateServerClient inside of runWithAmplifyServerContext with the `request` object',
|
|
29
|
+
});
|
|
30
|
+
}
|
|
31
|
+
// This function reference gets passed down to InternalGraphQLAPI.ts.graphql
|
|
15
32
|
// where this._graphql is passed through as the `fn` argument
|
|
16
33
|
// causing it to always get invoked inside `runWithAmplifyServerContext`
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
34
|
+
const getAmplify = (fn) => (0, runWithAmplifyServerContext_1.runWithAmplifyServerContext)({
|
|
35
|
+
nextServerContext,
|
|
36
|
+
operation: contextSpec => fn((0, adapter_core_1.getAmplifyServerContext)(contextSpec).amplify),
|
|
37
|
+
});
|
|
38
|
+
// retrieve general SSR config. This is used only to retrieve the
|
|
39
|
+
// modelIntroSchema for future model-based use cases
|
|
40
|
+
const config = (0, getAmplifyConfig_1.getAmplifyConfig)();
|
|
41
|
+
return (0, server_1.generateClient)({
|
|
42
|
+
amplify: getAmplify,
|
|
43
|
+
config,
|
|
44
|
+
});
|
|
45
|
+
}
|
|
46
|
+
exports.generateServerClientUsingCookies = generateServerClientUsingCookies;
|
|
47
|
+
function generateServerClient() {
|
|
48
|
+
const config = (0, getAmplifyConfig_1.getAmplifyConfig)();
|
|
49
|
+
// passing `null` instance because each (future model) method must retrieve a valid instance
|
|
50
|
+
// from server context
|
|
51
|
+
const client = (0, server_1.generateClient)({
|
|
52
|
+
amplify: null,
|
|
53
|
+
config,
|
|
54
|
+
});
|
|
55
|
+
// TODO: improve this and the next type
|
|
56
|
+
const prevGraphql = client.graphql;
|
|
57
|
+
const wrappedGraphql = (contextSpec, options, additionalHeaders) => {
|
|
58
|
+
const amplifyInstance = (0, adapter_core_1.getAmplifyServerContext)(contextSpec).amplify;
|
|
59
|
+
return prevGraphql.call({ [api_graphql_1.__amplify]: amplifyInstance }, options, additionalHeaders);
|
|
24
60
|
};
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
var config = (0, getAmplifyConfig_1.getAmplifyConfig)();
|
|
28
|
-
return (0, internals_1.generateClient)({ amplify: getAmplify, config: config });
|
|
61
|
+
client.graphql = wrappedGraphql;
|
|
62
|
+
return client;
|
|
29
63
|
}
|
|
30
64
|
exports.generateServerClient = generateServerClient;
|
|
31
65
|
//# sourceMappingURL=generateServerClient.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generateServerClient.js","sourceRoot":"","sources":["../src/generateServerClient.ts"],"names":[],"mappings":";AAAA,qEAAqE;AACrE,sCAAsC;;;AAEtC,
|
|
1
|
+
{"version":3,"file":"generateServerClient.js","sourceRoot":"","sources":["../src/generateServerClient.ts"],"names":[],"mappings":";AAAA,qEAAqE;AACrE,sCAAsC;;;AAEtC,oDAAmF;AACnF,2EAGkD;AAClD,0DAMkC;AAElC,+EAA4E;AAC5E,+DAA4D;AAG5D;;;;;;;;;;GAUG;AACH,SAAgB,gCAAgC,CAE9C,iBAAoD;IACrD,IACC,CAAC,iBAAiB,CAAC,OAAO;QACzB,iBAAyB,CAAC,OAAO,KAAK,SAAS,EAC/C;QACD,MAAM,IAAI,wCAAyB,CAAC;YACnC,OAAO,EACN,wHAAwH;YACzH,qBAAqB;YACrB,kBAAkB,EACjB,0FAA0F;SAC3F,CAAC,CAAC;KACH;IAED,4EAA4E;IAC5E,6DAA6D;IAC7D,wEAAwE;IACxE,MAAM,UAAU,GAAG,CAAC,EAAkC,EAAE,EAAE,CACzD,IAAA,yDAA2B,EAAC;QAC3B,iBAAiB;QACjB,SAAS,EAAE,WAAW,CAAC,EAAE,CACxB,EAAE,CAAC,IAAA,sCAAuB,EAAC,WAAW,CAAC,CAAC,OAAO,CAAC;KACjD,CAAC,CAAC;IAEJ,iEAAiE;IACjE,oDAAoD;IACpD,MAAM,MAAM,GAAG,IAAA,mCAAgB,GAAE,CAAC;IAElC,OAAO,IAAA,uBAAsB,EAAiB;QAC7C,OAAO,EAAE,UAAU;QACnB,MAAM;KACN,CAAC,CAAC;AACJ,CAAC;AAlCD,4EAkCC;AAED,SAAgB,oBAAoB;IAGnC,MAAM,MAAM,GAAG,IAAA,mCAAgB,GAAE,CAAC;IAElC,4FAA4F;IAC5F,sBAAsB;IACtB,MAAM,MAAM,GAAG,IAAA,uBAAsB,EAAoB;QACxD,OAAO,EAAE,IAAI;QACb,MAAM;KACN,CAAC,CAAC;IAEH,uCAAuC;IACvC,MAAM,WAAW,GAAG,MAAM,CAAC,OAAmC,CAAC;IAE/D,MAAM,cAAc,GAAG,CAAC,WAAW,EAAE,OAAO,EAAE,iBAAkB,EAAE,EAAE;QACnE,MAAM,eAAe,GAAG,IAAA,sCAAuB,EAAC,WAAW,CAAC,CAAC,OAAO,CAAC;QACrE,OAAO,WAAW,CAAC,IAAI,CACtB,EAAE,CAAC,uBAAS,CAAC,EAAE,eAAe,EAAE,EAChC,OAAO,EACP,iBAAwB,CACxB,CAAC;IACH,CAAC,CAAC;IAEF,MAAM,CAAC,OAAO,GAAG,cAA6C,CAAC;IAC/D,OAAO,MAAM,CAAC;AACf,CAAC;AA1BD,oDA0BC"}
|
package/lib/index.d.ts
CHANGED
package/lib/index.js
CHANGED
|
@@ -2,9 +2,7 @@
|
|
|
2
2
|
// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
|
3
3
|
// SPDX-License-Identifier: Apache-2.0
|
|
4
4
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
5
|
-
exports.
|
|
5
|
+
exports.runWithAmplifyServerContext = void 0;
|
|
6
6
|
var runWithAmplifyServerContext_1 = require("./runWithAmplifyServerContext");
|
|
7
7
|
Object.defineProperty(exports, "runWithAmplifyServerContext", { enumerable: true, get: function () { return runWithAmplifyServerContext_1.runWithAmplifyServerContext; } });
|
|
8
|
-
var generateServerClient_1 = require("./generateServerClient");
|
|
9
|
-
Object.defineProperty(exports, "generateServerClient", { enumerable: true, get: function () { return generateServerClient_1.generateServerClient; } });
|
|
10
8
|
//# sourceMappingURL=index.js.map
|
package/lib/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA,qEAAqE;AACrE,sCAAsC;;;AAEtC,6EAA4E;AAAnE,0IAAA,2BAA2B,OAAA
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA,qEAAqE;AACrE,sCAAsC;;;AAEtC,6EAA4E;AAAnE,0IAAA,2BAA2B,OAAA"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
|
3
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
4
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
5
|
+
exports.getAmplifyConfig = void 0;
|
|
6
|
+
var utils_1 = require("../utils");
|
|
7
|
+
Object.defineProperty(exports, "getAmplifyConfig", { enumerable: true, get: function () { return utils_1.getAmplifyConfig; } });
|
|
8
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/internals/index.ts"],"names":[],"mappings":";AAAA,qEAAqE;AACrE,sCAAsC;;;AAEtC,kCAA4C;AAAnC,yGAAA,gBAAgB,OAAA"}
|
|
@@ -1,47 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
|
3
3
|
// SPDX-License-Identifier: Apache-2.0
|
|
4
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
5
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
6
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
7
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
8
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
9
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
10
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
11
|
-
});
|
|
12
|
-
};
|
|
13
|
-
var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
14
|
-
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
|
|
15
|
-
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
16
|
-
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
17
|
-
function step(op) {
|
|
18
|
-
if (f) throw new TypeError("Generator is already executing.");
|
|
19
|
-
while (g && (g = 0, op[0] && (_ = 0)), _) try {
|
|
20
|
-
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
21
|
-
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
22
|
-
switch (op[0]) {
|
|
23
|
-
case 0: case 1: t = op; break;
|
|
24
|
-
case 4: _.label++; return { value: op[1], done: false };
|
|
25
|
-
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
26
|
-
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
27
|
-
default:
|
|
28
|
-
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
29
|
-
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
30
|
-
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
31
|
-
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
32
|
-
if (t[2]) _.ops.pop();
|
|
33
|
-
_.trys.pop(); continue;
|
|
34
|
-
}
|
|
35
|
-
op = body.call(thisArg, _);
|
|
36
|
-
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
37
|
-
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
38
|
-
}
|
|
39
|
-
};
|
|
40
4
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
41
5
|
exports.runWithAmplifyServerContext = void 0;
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
6
|
+
const utils_1 = require("./utils");
|
|
7
|
+
const core_1 = require("@aws-amplify/core");
|
|
8
|
+
const adapter_core_1 = require("aws-amplify/adapter-core");
|
|
45
9
|
/**
|
|
46
10
|
* Runs the {@link operation} with the the context created from the {@link nextServerContext}.
|
|
47
11
|
*
|
|
@@ -85,34 +49,33 @@ var adapter_core_1 = require("aws-amplify/internals/adapter-core");
|
|
|
85
49
|
* return NextResponse.redirect(new URL('/sign-in', request.url));
|
|
86
50
|
* }
|
|
87
51
|
*/
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
});
|
|
52
|
+
const runWithAmplifyServerContext = async ({ nextServerContext, operation }) => {
|
|
53
|
+
// 1. get amplify config from env vars
|
|
54
|
+
// 2. create key-value storage from nextServerContext
|
|
55
|
+
// 3. create credentials provider
|
|
56
|
+
// 4. create token provider
|
|
57
|
+
// 5. call low level runWithAmplifyServerContext
|
|
58
|
+
const amplifyConfig = (0, utils_1.getAmplifyConfig)();
|
|
59
|
+
// When the Auth config is presented, attempt to create a Amplify server
|
|
60
|
+
// context with token and credentials provider.
|
|
61
|
+
if (amplifyConfig.Auth) {
|
|
62
|
+
const keyValueStorage =
|
|
63
|
+
// When `null` is passed as the value of `nextServerContext`, opt-in
|
|
64
|
+
// unauthenticated role (primarily for static rendering). It's
|
|
65
|
+
// safe to use the singleton `MemoryKeyValueStorage` here, as the
|
|
66
|
+
// static rendering uses the same unauthenticated role cross-sever.
|
|
67
|
+
nextServerContext === null
|
|
68
|
+
? core_1.sharedInMemoryStorage
|
|
69
|
+
: (0, adapter_core_1.createKeyValueStorageFromCookieStorageAdapter)((0, utils_1.createCookieStorageAdapterFromNextServerContext)(nextServerContext));
|
|
70
|
+
const credentialsProvider = (0, adapter_core_1.createAWSCredentialsAndIdentityIdProvider)(amplifyConfig.Auth, keyValueStorage);
|
|
71
|
+
const tokenProvider = (0, adapter_core_1.createUserPoolsTokenProvider)(amplifyConfig.Auth, keyValueStorage);
|
|
72
|
+
return (0, adapter_core_1.runWithAmplifyServerContext)(amplifyConfig, {
|
|
73
|
+
Auth: { credentialsProvider, tokenProvider },
|
|
74
|
+
}, operation);
|
|
75
|
+
}
|
|
76
|
+
// Otherwise it may be the case that auth is not used, e.g. API key.
|
|
77
|
+
// Omitting the `Auth` in the second parameter.
|
|
78
|
+
return (0, adapter_core_1.runWithAmplifyServerContext)(amplifyConfig, {}, operation);
|
|
116
79
|
};
|
|
117
80
|
exports.runWithAmplifyServerContext = runWithAmplifyServerContext;
|
|
118
81
|
//# sourceMappingURL=runWithAmplifyServerContext.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runWithAmplifyServerContext.js","sourceRoot":"","sources":["../src/runWithAmplifyServerContext.ts"],"names":[],"mappings":";AAAA,qEAAqE;AACrE,sCAAsC
|
|
1
|
+
{"version":3,"file":"runWithAmplifyServerContext.js","sourceRoot":"","sources":["../src/runWithAmplifyServerContext.ts"],"names":[],"mappings":";AAAA,qEAAqE;AACrE,sCAAsC;;;AAGtC,mCAGiB;AACjB,4CAA0D;AAC1D,2DAKkC;AAElC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0CG;AACI,MAAM,2BAA2B,GACvC,KAAK,EAAE,EAAE,iBAAiB,EAAE,SAAS,EAAE,EAAE,EAAE;IAC1C,sCAAsC;IACtC,qDAAqD;IACrD,iCAAiC;IACjC,2BAA2B;IAC3B,gDAAgD;IAChD,MAAM,aAAa,GAAG,IAAA,wBAAgB,GAAE,CAAC;IAEzC,wEAAwE;IACxE,+CAA+C;IAC/C,IAAI,aAAa,CAAC,IAAI,EAAE;QACvB,MAAM,eAAe;QACpB,oEAAoE;QACpE,8DAA8D;QAC9D,iEAAiE;QACjE,mEAAmE;QACnE,iBAAiB,KAAK,IAAI;YACzB,CAAC,CAAC,4BAAqB;YACvB,CAAC,CAAC,IAAA,4DAA6C,EAC7C,IAAA,uDAA+C,EAAC,iBAAiB,CAAC,CACjE,CAAC;QACN,MAAM,mBAAmB,GAAG,IAAA,wDAAyC,EACpE,aAAa,CAAC,IAAI,EAClB,eAAe,CACf,CAAC;QACF,MAAM,aAAa,GAAG,IAAA,2CAA4B,EACjD,aAAa,CAAC,IAAI,EAClB,eAAe,CACf,CAAC;QAEF,OAAO,IAAA,0CAA+B,EACrC,aAAa,EACb;YACC,IAAI,EAAE,EAAE,mBAAmB,EAAE,aAAa,EAAE;SAC5C,EACD,SAAS,CACT,CAAC;KACF;IAED,oEAAoE;IACpE,+CAA+C;IAC/C,OAAO,IAAA,0CAA+B,EAAC,aAAa,EAAE,EAAE,EAAE,SAAS,CAAC,CAAC;AACtE,CAAC,CAAC;AA3CU,QAAA,2BAA2B,+BA2CrC"}
|
|
@@ -1,24 +1,13 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
|
3
3
|
// SPDX-License-Identifier: Apache-2.0
|
|
4
|
-
var __assign = (this && this.__assign) || function () {
|
|
5
|
-
__assign = Object.assign || function(t) {
|
|
6
|
-
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
7
|
-
s = arguments[i];
|
|
8
|
-
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
9
|
-
t[p] = s[p];
|
|
10
|
-
}
|
|
11
|
-
return t;
|
|
12
|
-
};
|
|
13
|
-
return __assign.apply(this, arguments);
|
|
14
|
-
};
|
|
15
4
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
16
5
|
exports.createCookieStorageAdapterFromNextServerContext = exports.DATE_IN_THE_PAST = void 0;
|
|
17
|
-
|
|
18
|
-
|
|
6
|
+
const server_1 = require("next/server");
|
|
7
|
+
const adapter_core_1 = require("@aws-amplify/core/internals/adapter-core");
|
|
19
8
|
exports.DATE_IN_THE_PAST = new Date(0);
|
|
20
|
-
|
|
21
|
-
|
|
9
|
+
const createCookieStorageAdapterFromNextServerContext = (context) => {
|
|
10
|
+
const { request: req, response: res } = context;
|
|
22
11
|
// When the server context is from `getServerSideProps`, the `req` is an instance
|
|
23
12
|
// of IncomingMessage, and the `res` is an instance of ServerResponse.
|
|
24
13
|
// We cannot import these two classes here from `http` as it breaks in Next
|
|
@@ -30,7 +19,7 @@ var createCookieStorageAdapterFromNextServerContext = function (context) {
|
|
|
30
19
|
typeof res.setHeader === 'function') {
|
|
31
20
|
return createCookieStorageAdapterFromGetServerSidePropsContext(req, res);
|
|
32
21
|
}
|
|
33
|
-
|
|
22
|
+
const { request, response } = context;
|
|
34
23
|
// When the server context is from `middleware`, the `request` is an instance
|
|
35
24
|
// of `NextRequest`.
|
|
36
25
|
// When the server context is from a route handler, the `request` is an `Proxy`
|
|
@@ -45,7 +34,7 @@ var createCookieStorageAdapterFromNextServerContext = function (context) {
|
|
|
45
34
|
return createCookieStorageAdapterFromNextRequestAndHttpResponse(request, response);
|
|
46
35
|
}
|
|
47
36
|
}
|
|
48
|
-
|
|
37
|
+
const { cookies } = context;
|
|
49
38
|
if (typeof cookies === 'function') {
|
|
50
39
|
return createCookieStorageAdapterFromNextCookies(cookies);
|
|
51
40
|
}
|
|
@@ -55,54 +44,58 @@ var createCookieStorageAdapterFromNextServerContext = function (context) {
|
|
|
55
44
|
});
|
|
56
45
|
};
|
|
57
46
|
exports.createCookieStorageAdapterFromNextServerContext = createCookieStorageAdapterFromNextServerContext;
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
47
|
+
const createCookieStorageAdapterFromNextRequestAndNextResponse = (request, response) => {
|
|
48
|
+
const readonlyCookieStore = request.cookies;
|
|
49
|
+
const mutableCookieStore = response.cookies;
|
|
61
50
|
return {
|
|
62
|
-
get
|
|
51
|
+
get(name) {
|
|
63
52
|
return readonlyCookieStore.get(ensureEncodedForJSCookie(name));
|
|
64
53
|
},
|
|
65
54
|
getAll: readonlyCookieStore.getAll.bind(readonlyCookieStore),
|
|
66
|
-
set
|
|
55
|
+
set(name, value, options) {
|
|
67
56
|
mutableCookieStore.set(ensureEncodedForJSCookie(name), value, options);
|
|
68
57
|
},
|
|
69
|
-
delete
|
|
58
|
+
delete(name) {
|
|
70
59
|
mutableCookieStore.delete(ensureEncodedForJSCookie(name));
|
|
71
60
|
},
|
|
72
61
|
};
|
|
73
62
|
};
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
return
|
|
63
|
+
const createCookieStorageAdapterFromNextRequestAndHttpResponse = (request, response) => {
|
|
64
|
+
const readonlyCookieStore = request.cookies;
|
|
65
|
+
const mutableCookieStore = createMutableCookieStoreFromHeaders(response.headers);
|
|
66
|
+
return {
|
|
67
|
+
get(name) {
|
|
78
68
|
return readonlyCookieStore.get(ensureEncodedForJSCookie(name));
|
|
79
|
-
},
|
|
69
|
+
},
|
|
70
|
+
getAll: readonlyCookieStore.getAll.bind(readonlyCookieStore),
|
|
71
|
+
...mutableCookieStore,
|
|
72
|
+
};
|
|
80
73
|
};
|
|
81
|
-
|
|
82
|
-
|
|
74
|
+
const createCookieStorageAdapterFromNextCookies = (cookies) => {
|
|
75
|
+
const cookieStore = cookies();
|
|
83
76
|
// When Next cookies() is called in a server component, it returns a readonly
|
|
84
77
|
// cookie store. Hence calling set and delete throws an error. However,
|
|
85
78
|
// cookies() returns a mutable cookie store when called in a server action.
|
|
86
79
|
// We have no way to detect which one is returned, so we try to call set and delete
|
|
87
80
|
// and safely ignore the error if it is thrown.
|
|
88
|
-
|
|
81
|
+
const setFunc = (name, value, options) => {
|
|
89
82
|
try {
|
|
90
83
|
cookieStore.set(ensureEncodedForJSCookie(name), value, options);
|
|
91
84
|
}
|
|
92
|
-
catch
|
|
85
|
+
catch {
|
|
93
86
|
// no-op
|
|
94
87
|
}
|
|
95
88
|
};
|
|
96
|
-
|
|
89
|
+
const deleteFunc = name => {
|
|
97
90
|
try {
|
|
98
91
|
cookieStore.delete(ensureEncodedForJSCookie(name));
|
|
99
92
|
}
|
|
100
|
-
catch
|
|
93
|
+
catch {
|
|
101
94
|
// no-op
|
|
102
95
|
}
|
|
103
96
|
};
|
|
104
97
|
return {
|
|
105
|
-
get
|
|
98
|
+
get(name) {
|
|
106
99
|
return cookieStore.get(ensureEncodedForJSCookie(name));
|
|
107
100
|
},
|
|
108
101
|
getAll: cookieStore.getAll.bind(cookieStore),
|
|
@@ -110,65 +103,62 @@ var createCookieStorageAdapterFromNextCookies = function (cookies) {
|
|
|
110
103
|
delete: deleteFunc,
|
|
111
104
|
};
|
|
112
105
|
};
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
value: value,
|
|
120
|
-
});
|
|
121
|
-
});
|
|
106
|
+
const createCookieStorageAdapterFromGetServerSidePropsContext = (request, response) => {
|
|
107
|
+
const cookiesMap = { ...request.cookies };
|
|
108
|
+
const allCookies = Object.entries(cookiesMap).map(([name, value]) => ({
|
|
109
|
+
name,
|
|
110
|
+
value,
|
|
111
|
+
}));
|
|
122
112
|
return {
|
|
123
|
-
get
|
|
124
|
-
|
|
113
|
+
get(name) {
|
|
114
|
+
const value = cookiesMap[ensureEncodedForJSCookie(name)];
|
|
125
115
|
return value
|
|
126
116
|
? {
|
|
127
|
-
name
|
|
128
|
-
value
|
|
117
|
+
name,
|
|
118
|
+
value,
|
|
129
119
|
}
|
|
130
120
|
: undefined;
|
|
131
121
|
},
|
|
132
|
-
getAll
|
|
122
|
+
getAll() {
|
|
133
123
|
return allCookies;
|
|
134
124
|
},
|
|
135
|
-
set
|
|
136
|
-
response.setHeader('Set-Cookie',
|
|
125
|
+
set(name, value, options) {
|
|
126
|
+
response.setHeader('Set-Cookie', `${ensureEncodedForJSCookie(name)}=${value};${options ? serializeSetCookieOptions(options) : ''}`);
|
|
137
127
|
},
|
|
138
|
-
delete
|
|
139
|
-
response.setHeader('Set-Cookie',
|
|
128
|
+
delete(name) {
|
|
129
|
+
response.setHeader('Set-Cookie', `${ensureEncodedForJSCookie(name)}=;Expires=${exports.DATE_IN_THE_PAST.toUTCString()}`);
|
|
140
130
|
},
|
|
141
131
|
};
|
|
142
132
|
};
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
headers.append('Set-Cookie',
|
|
133
|
+
const createMutableCookieStoreFromHeaders = (headers) => {
|
|
134
|
+
const setFunc = (name, value, options) => {
|
|
135
|
+
headers.append('Set-Cookie', `${ensureEncodedForJSCookie(name)}=${value};${options ? serializeSetCookieOptions(options) : ''}`);
|
|
146
136
|
};
|
|
147
|
-
|
|
148
|
-
headers.append('Set-Cookie',
|
|
137
|
+
const deleteFunc = name => {
|
|
138
|
+
headers.append('Set-Cookie', `${ensureEncodedForJSCookie(name)}=;Expires=${exports.DATE_IN_THE_PAST.toUTCString()}`);
|
|
149
139
|
};
|
|
150
140
|
return {
|
|
151
141
|
set: setFunc,
|
|
152
142
|
delete: deleteFunc,
|
|
153
143
|
};
|
|
154
144
|
};
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
145
|
+
const serializeSetCookieOptions = (options) => {
|
|
146
|
+
const { expires, domain, httpOnly, sameSite, secure } = options;
|
|
147
|
+
const serializedOptions = [];
|
|
158
148
|
if (domain) {
|
|
159
|
-
serializedOptions.push(
|
|
149
|
+
serializedOptions.push(`Domain=${domain}`);
|
|
160
150
|
}
|
|
161
151
|
if (expires) {
|
|
162
|
-
serializedOptions.push(
|
|
152
|
+
serializedOptions.push(`Expires=${expires.toUTCString()}`);
|
|
163
153
|
}
|
|
164
154
|
if (httpOnly) {
|
|
165
|
-
serializedOptions.push(
|
|
155
|
+
serializedOptions.push(`HttpOnly`);
|
|
166
156
|
}
|
|
167
157
|
if (sameSite) {
|
|
168
|
-
serializedOptions.push(
|
|
158
|
+
serializedOptions.push(`SameSite=${sameSite}`);
|
|
169
159
|
}
|
|
170
160
|
if (secure) {
|
|
171
|
-
serializedOptions.push(
|
|
161
|
+
serializedOptions.push(`Secure`);
|
|
172
162
|
}
|
|
173
163
|
return serializedOptions.join(';');
|
|
174
164
|
};
|
|
@@ -178,7 +168,5 @@ var serializeSetCookieOptions = function (options) {
|
|
|
178
168
|
// https://github.com/js-cookie/js-cookie#encoding
|
|
179
169
|
// The implementation is borrowed from js-cookie without escaping `[()]` as
|
|
180
170
|
// we are not using those chars in the auth keys.
|
|
181
|
-
|
|
182
|
-
return encodeURIComponent(name).replace(/%(2[346B]|5E|60|7C)/g, decodeURIComponent);
|
|
183
|
-
};
|
|
171
|
+
const ensureEncodedForJSCookie = (name) => encodeURIComponent(name).replace(/%(2[346B]|5E|60|7C)/g, decodeURIComponent);
|
|
184
172
|
//# sourceMappingURL=createCookieStorageAdapterFromNextServerContext.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createCookieStorageAdapterFromNextServerContext.js","sourceRoot":"","sources":["../../src/utils/createCookieStorageAdapterFromNextServerContext.ts"],"names":[],"mappings":";AAAA,qEAAqE;AACrE,sCAAsC
|
|
1
|
+
{"version":3,"file":"createCookieStorageAdapterFromNextServerContext.js","sourceRoot":"","sources":["../../src/utils/createCookieStorageAdapterFromNextServerContext.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,18 +6,18 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
6
6
|
};
|
|
7
7
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
8
8
|
exports.getAmplifyConfig = void 0;
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
9
|
+
const utils_1 = require("@aws-amplify/core/internals/utils");
|
|
10
|
+
const adapter_core_1 = require("@aws-amplify/core/internals/adapter-core");
|
|
11
|
+
const config_1 = __importDefault(require("next/config"));
|
|
12
|
+
const getAmplifyConfig = () => {
|
|
13
|
+
let configStr = process.env.amplifyConfig;
|
|
14
14
|
// With a Next.js app that uses the Pages Router, the key-value pairs
|
|
15
15
|
// listed under the `env` field in the `next.config.js` is not accessible
|
|
16
16
|
// via process.env.<key> at some occasion. Using the following as a fallback
|
|
17
17
|
// See: https://github.com/vercel/next.js/issues/39299
|
|
18
18
|
if (!configStr) {
|
|
19
|
-
|
|
20
|
-
configStr = serverRuntimeConfig
|
|
19
|
+
const { serverRuntimeConfig } = (0, config_1.default)();
|
|
20
|
+
configStr = serverRuntimeConfig?.amplifyConfig;
|
|
21
21
|
}
|
|
22
22
|
if (!configStr) {
|
|
23
23
|
throw new adapter_core_1.AmplifyServerContextError({
|
|
@@ -25,9 +25,9 @@ var getAmplifyConfig = function () {
|
|
|
25
25
|
recoverySuggestion: 'Ensure to use `withAmplify` function in your `next.config.js`.',
|
|
26
26
|
});
|
|
27
27
|
}
|
|
28
|
-
|
|
28
|
+
const configObject = JSON.parse(configStr);
|
|
29
29
|
// TODO(HuiSF): adds ResourcesConfig validation when it has one.
|
|
30
|
-
return Object.keys(configObject).some(
|
|
30
|
+
return Object.keys(configObject).some(key => key.startsWith('aws_'))
|
|
31
31
|
? (0, utils_1.parseAWSExports)(configObject)
|
|
32
32
|
: configObject;
|
|
33
33
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getAmplifyConfig.js","sourceRoot":"","sources":["../../src/utils/getAmplifyConfig.ts"],"names":[],"mappings":";AAAA,qEAAqE;AACrE,sCAAsC;;;;;;AAGtC,
|
|
1
|
+
{"version":3,"file":"getAmplifyConfig.js","sourceRoot":"","sources":["../../src/utils/getAmplifyConfig.ts"],"names":[],"mappings":";AAAA,qEAAqE;AACrE,sCAAsC;;;;;;AAGtC,6DAAoE;AACpE,2EAAqF;AACrF,yDAAoC;AAE7B,MAAM,gBAAgB,GAAG,GAAoB,EAAE;IACrD,IAAI,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC;IAE1C,qEAAqE;IACrE,yEAAyE;IACzE,4EAA4E;IAC5E,sDAAsD;IACtD,IAAI,CAAC,SAAS,EAAE;QACf,MAAM,EAAE,mBAAmB,EAAE,GAAG,IAAA,gBAAS,GAAE,CAAC;QAC5C,SAAS,GAAG,mBAAmB,EAAE,aAAa,CAAC;KAC/C;IAED,IAAI,CAAC,SAAS,EAAE;QACf,MAAM,IAAI,wCAAyB,CAAC;YACnC,OAAO,EAAE,sDAAsD;YAC/D,kBAAkB,EACjB,gEAAgE;SACjE,CAAC,CAAC;KACH;IAED,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;IAE3C,gEAAgE;IAChE,OAAO,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;QACnE,CAAC,CAAC,IAAA,uBAAe,EAAC,YAAY,CAAC;QAC/B,CAAC,CAAC,YAAY,CAAC;AACjB,CAAC,CAAC;AA1BW,QAAA,gBAAgB,oBA0B3B"}
|
package/lib/withAmplify.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { ResourcesConfig } from 'aws-amplify';
|
|
2
|
-
import { LegacyConfig } from 'aws-amplify/
|
|
2
|
+
import { LegacyConfig } from 'aws-amplify/adapter-core';
|
|
3
3
|
import { NextConfig } from 'next';
|
|
4
4
|
/**
|
|
5
5
|
* Merges the `amplifyConfig` into the `nextConfig.env`.
|