@aws-amplify/adapter-nextjs 0.0.2-console-preview.23dc225.0 → 0.0.2-console-preview.5a31ca1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/utils/createCookieStorageAdapterFromNextServerContext.js +32 -13
- package/lib/utils/createCookieStorageAdapterFromNextServerContext.js.map +1 -1
- package/lib-esm/utils/createCookieStorageAdapterFromNextServerContext.js +32 -13
- package/lib-esm/utils/createCookieStorageAdapterFromNextServerContext.js.map +1 -1
- package/package.json +4 -4
- package/src/utils/createCookieStorageAdapterFromNextServerContext.ts +40 -13
|
@@ -59,16 +59,24 @@ var createCookieStorageAdapterFromNextRequestAndNextResponse = function (request
|
|
|
59
59
|
var readonlyCookieStore = request.cookies;
|
|
60
60
|
var mutableCookieStore = response.cookies;
|
|
61
61
|
return {
|
|
62
|
-
get:
|
|
62
|
+
get: function (name) {
|
|
63
|
+
return readonlyCookieStore.get(ensureEncodedForJSCookie(name));
|
|
64
|
+
},
|
|
63
65
|
getAll: readonlyCookieStore.getAll.bind(readonlyCookieStore),
|
|
64
|
-
set:
|
|
65
|
-
|
|
66
|
+
set: function (name, value, options) {
|
|
67
|
+
mutableCookieStore.set(ensureEncodedForJSCookie(name), value, options);
|
|
68
|
+
},
|
|
69
|
+
delete: function (name) {
|
|
70
|
+
mutableCookieStore.delete(ensureEncodedForJSCookie(name));
|
|
71
|
+
},
|
|
66
72
|
};
|
|
67
73
|
};
|
|
68
74
|
var createCookieStorageAdapterFromNextRequestAndHttpResponse = function (request, response) {
|
|
69
75
|
var readonlyCookieStore = request.cookies;
|
|
70
76
|
var mutableCookieStore = createMutableCookieStoreFromHeaders(response.headers);
|
|
71
|
-
return __assign({ get:
|
|
77
|
+
return __assign({ get: function (name) {
|
|
78
|
+
return readonlyCookieStore.get(ensureEncodedForJSCookie(name));
|
|
79
|
+
}, getAll: readonlyCookieStore.getAll.bind(readonlyCookieStore) }, mutableCookieStore);
|
|
72
80
|
};
|
|
73
81
|
var createCookieStorageAdapterFromNextCookies = function (cookies) {
|
|
74
82
|
var cookieStore = cookies();
|
|
@@ -79,7 +87,7 @@ var createCookieStorageAdapterFromNextCookies = function (cookies) {
|
|
|
79
87
|
// and safely ignore the error if it is thrown.
|
|
80
88
|
var setFunc = function (name, value, options) {
|
|
81
89
|
try {
|
|
82
|
-
cookieStore.set(name, value, options);
|
|
90
|
+
cookieStore.set(ensureEncodedForJSCookie(name), value, options);
|
|
83
91
|
}
|
|
84
92
|
catch (_a) {
|
|
85
93
|
// no-op
|
|
@@ -87,14 +95,16 @@ var createCookieStorageAdapterFromNextCookies = function (cookies) {
|
|
|
87
95
|
};
|
|
88
96
|
var deleteFunc = function (name) {
|
|
89
97
|
try {
|
|
90
|
-
cookieStore.delete(name);
|
|
98
|
+
cookieStore.delete(ensureEncodedForJSCookie(name));
|
|
91
99
|
}
|
|
92
100
|
catch (_a) {
|
|
93
101
|
// no-op
|
|
94
102
|
}
|
|
95
103
|
};
|
|
96
104
|
return {
|
|
97
|
-
get:
|
|
105
|
+
get: function (name) {
|
|
106
|
+
return cookieStore.get(ensureEncodedForJSCookie(name));
|
|
107
|
+
},
|
|
98
108
|
getAll: cookieStore.getAll.bind(cookieStore),
|
|
99
109
|
set: setFunc,
|
|
100
110
|
delete: deleteFunc,
|
|
@@ -111,7 +121,7 @@ var createCookieStorageAdapterFromGetServerSidePropsContext = function (request,
|
|
|
111
121
|
});
|
|
112
122
|
return {
|
|
113
123
|
get: function (name) {
|
|
114
|
-
var value = cookiesMap[name];
|
|
124
|
+
var value = cookiesMap[ensureEncodedForJSCookie(name)];
|
|
115
125
|
return value
|
|
116
126
|
? {
|
|
117
127
|
name: name,
|
|
@@ -123,19 +133,19 @@ var createCookieStorageAdapterFromGetServerSidePropsContext = function (request,
|
|
|
123
133
|
return allCookies;
|
|
124
134
|
},
|
|
125
135
|
set: function (name, value, options) {
|
|
126
|
-
response.setHeader('Set-Cookie', "".concat(name, "=").concat(value, ";").concat(options ? serializeSetCookieOptions(options) : ''));
|
|
136
|
+
response.setHeader('Set-Cookie', "".concat(ensureEncodedForJSCookie(name), "=").concat(value, ";").concat(options ? serializeSetCookieOptions(options) : ''));
|
|
127
137
|
},
|
|
128
138
|
delete: function (name) {
|
|
129
|
-
response.setHeader('Set-Cookie', "".concat(name, "=;Expires=").concat(exports.DATE_IN_THE_PAST.toUTCString()));
|
|
139
|
+
response.setHeader('Set-Cookie', "".concat(ensureEncodedForJSCookie(name), "=;Expires=").concat(exports.DATE_IN_THE_PAST.toUTCString()));
|
|
130
140
|
},
|
|
131
141
|
};
|
|
132
142
|
};
|
|
133
143
|
var createMutableCookieStoreFromHeaders = function (headers) {
|
|
134
144
|
var setFunc = function (name, value, options) {
|
|
135
|
-
headers.append('Set-Cookie', "".concat(name, "=").concat(value, ";").concat(options ? serializeSetCookieOptions(options) : ''));
|
|
145
|
+
headers.append('Set-Cookie', "".concat(ensureEncodedForJSCookie(name), "=").concat(value, ";").concat(options ? serializeSetCookieOptions(options) : ''));
|
|
136
146
|
};
|
|
137
147
|
var deleteFunc = function (name) {
|
|
138
|
-
headers.append('Set-Cookie', "".concat(name, "=;Expires=").concat(exports.DATE_IN_THE_PAST.toUTCString()));
|
|
148
|
+
headers.append('Set-Cookie', "".concat(ensureEncodedForJSCookie(name), "=;Expires=").concat(exports.DATE_IN_THE_PAST.toUTCString()));
|
|
139
149
|
};
|
|
140
150
|
return {
|
|
141
151
|
set: setFunc,
|
|
@@ -143,7 +153,7 @@ var createMutableCookieStoreFromHeaders = function (headers) {
|
|
|
143
153
|
};
|
|
144
154
|
};
|
|
145
155
|
var serializeSetCookieOptions = function (options) {
|
|
146
|
-
var expires = options.expires,
|
|
156
|
+
var expires = options.expires, domain = options.domain, httpOnly = options.httpOnly, sameSite = options.sameSite, secure = options.secure;
|
|
147
157
|
var serializedOptions = [];
|
|
148
158
|
if (domain) {
|
|
149
159
|
serializedOptions.push("Domain=".concat(domain));
|
|
@@ -162,4 +172,13 @@ var serializeSetCookieOptions = function (options) {
|
|
|
162
172
|
}
|
|
163
173
|
return serializedOptions.join(';');
|
|
164
174
|
};
|
|
175
|
+
// Ensures the cookie names are encoded in order to look up the cookie store
|
|
176
|
+
// that is manipulated by js-cookie on the client side.
|
|
177
|
+
// Details of the js-cookie encoding behavior see:
|
|
178
|
+
// https://github.com/js-cookie/js-cookie#encoding
|
|
179
|
+
// The implementation is borrowed from js-cookie without escaping `[()]` as
|
|
180
|
+
// we are not using those chars in the auth keys.
|
|
181
|
+
var ensureEncodedForJSCookie = function (name) {
|
|
182
|
+
return encodeURIComponent(name).replace(/%(2[346B]|5E|60|7C)/g, decodeURIComponent);
|
|
183
|
+
};
|
|
165
184
|
//# sourceMappingURL=createCookieStorageAdapterFromNextServerContext.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createCookieStorageAdapterFromNextServerContext.js","sourceRoot":"","sources":["../../src/utils/createCookieStorageAdapterFromNextServerContext.ts"],"names":[],"mappings":";AAAA,qEAAqE;AACrE,sCAAsC;;;;;;;;;;;;;;AAEtC,sCAAwD;AAExD,yEAGkD;AAErC,QAAA,gBAAgB,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC;AAErC,IAAM,+CAA+C,GAAG,UAC9D,OAA2B;IAErB,IAAA,KACL,OAAwD,EADxC,GAAG,aAAA,EAAY,GAAG,cACsB,CAAC;IAE1D,iFAAiF;IACjF,sEAAsE;IACtE,2EAA2E;IAC3E,6EAA6E;IAC7E,kBAAkB;IAClB,IACC,GAAG;QACH,GAAG;QACH,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,iBAAiB;QACjE,OAAO,GAAG,CAAC,SAAS,KAAK,UAAU,EAClC;QACD,OAAO,uDAAuD,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;KACzE;IAEK,IAAA,KAAwB,OAG7B,EAHO,OAAO,aAAA,EAAE,QAAQ,cAGxB,CAAC;IAEF,6EAA6E;IAC7E,oBAAoB;IACpB,+EAA+E;IAC/E,qBAAqB;IACrB,2EAA2E;IAC3E,6DAA6D;IAC7D,IAAI,OAAO,IAAI,QAAQ,EAAE;QACxB,IAAI,QAAQ,YAAY,qBAAY,EAAE;YACrC,OAAO,wDAAwD,CAC9D,OAAO,EACP,QAAQ,CACR,CAAC;SACF;aAAM;YACN,OAAO,wDAAwD,CAC9D,OAAO,EACP,QAAQ,CACR,CAAC;SACF;KACD;IAEO,IAAA,OAAO,GAAK,OAEnB,QAFc,CAEb;IAEF,IAAI,OAAO,OAAO,KAAK,UAAU,EAAE;QAClC,OAAO,yCAAyC,CAAC,OAAO,CAAC,CAAC;KAC1D;IAED,mCAAmC;IACnC,MAAM,IAAI,wCAAyB,CAAC;QACnC,OAAO,EACN,wFAAwF;KACzF,CAAC,CAAC;AACJ,CAAC,CAAC;AA1DW,QAAA,+CAA+C,mDA0D1D;AAEF,IAAM,wDAAwD,GAAG,UAChE,OAAoB,EACpB,QAAsB;IAEtB,IAAM,mBAAmB,GAAG,OAAO,CAAC,OAAO,CAAC;IAC5C,IAAM,kBAAkB,GAAG,QAAQ,CAAC,OAAO,CAAC;IAE5C,OAAO;QACN,GAAG,
|
|
1
|
+
{"version":3,"file":"createCookieStorageAdapterFromNextServerContext.js","sourceRoot":"","sources":["../../src/utils/createCookieStorageAdapterFromNextServerContext.ts"],"names":[],"mappings":";AAAA,qEAAqE;AACrE,sCAAsC;;;;;;;;;;;;;;AAEtC,sCAAwD;AAExD,yEAGkD;AAErC,QAAA,gBAAgB,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC;AAErC,IAAM,+CAA+C,GAAG,UAC9D,OAA2B;IAErB,IAAA,KACL,OAAwD,EADxC,GAAG,aAAA,EAAY,GAAG,cACsB,CAAC;IAE1D,iFAAiF;IACjF,sEAAsE;IACtE,2EAA2E;IAC3E,6EAA6E;IAC7E,kBAAkB;IAClB,IACC,GAAG;QACH,GAAG;QACH,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,iBAAiB;QACjE,OAAO,GAAG,CAAC,SAAS,KAAK,UAAU,EAClC;QACD,OAAO,uDAAuD,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;KACzE;IAEK,IAAA,KAAwB,OAG7B,EAHO,OAAO,aAAA,EAAE,QAAQ,cAGxB,CAAC;IAEF,6EAA6E;IAC7E,oBAAoB;IACpB,+EAA+E;IAC/E,qBAAqB;IACrB,2EAA2E;IAC3E,6DAA6D;IAC7D,IAAI,OAAO,IAAI,QAAQ,EAAE;QACxB,IAAI,QAAQ,YAAY,qBAAY,EAAE;YACrC,OAAO,wDAAwD,CAC9D,OAAO,EACP,QAAQ,CACR,CAAC;SACF;aAAM;YACN,OAAO,wDAAwD,CAC9D,OAAO,EACP,QAAQ,CACR,CAAC;SACF;KACD;IAEO,IAAA,OAAO,GAAK,OAEnB,QAFc,CAEb;IAEF,IAAI,OAAO,OAAO,KAAK,UAAU,EAAE;QAClC,OAAO,yCAAyC,CAAC,OAAO,CAAC,CAAC;KAC1D;IAED,mCAAmC;IACnC,MAAM,IAAI,wCAAyB,CAAC;QACnC,OAAO,EACN,wFAAwF;KACzF,CAAC,CAAC;AACJ,CAAC,CAAC;AA1DW,QAAA,+CAA+C,mDA0D1D;AAEF,IAAM,wDAAwD,GAAG,UAChE,OAAoB,EACpB,QAAsB;IAEtB,IAAM,mBAAmB,GAAG,OAAO,CAAC,OAAO,CAAC;IAC5C,IAAM,kBAAkB,GAAG,QAAQ,CAAC,OAAO,CAAC;IAE5C,OAAO;QACN,GAAG,YAAC,IAAI;YACP,OAAO,mBAAmB,CAAC,GAAG,CAAC,wBAAwB,CAAC,IAAI,CAAC,CAAC,CAAC;QAChE,CAAC;QACD,MAAM,EAAE,mBAAmB,CAAC,MAAM,CAAC,IAAI,CAAC,mBAAmB,CAAC;QAC5D,GAAG,YAAC,IAAI,EAAE,KAAK,EAAE,OAAO;YACvB,kBAAkB,CAAC,GAAG,CAAC,wBAAwB,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;QACxE,CAAC;QACD,MAAM,YAAC,IAAI;YACV,kBAAkB,CAAC,MAAM,CAAC,wBAAwB,CAAC,IAAI,CAAC,CAAC,CAAC;QAC3D,CAAC;KACD,CAAC;AACH,CAAC,CAAC;AAEF,IAAM,wDAAwD,GAAG,UAChE,OAAoB,EACpB,QAAkB;IAElB,IAAM,mBAAmB,GAAG,OAAO,CAAC,OAAO,CAAC;IAC5C,IAAM,kBAAkB,GAAG,mCAAmC,CAC7D,QAAQ,CAAC,OAAO,CAChB,CAAC;IAEF,kBACC,GAAG,YAAC,IAAI;YACP,OAAO,mBAAmB,CAAC,GAAG,CAAC,wBAAwB,CAAC,IAAI,CAAC,CAAC,CAAC;QAChE,CAAC,EACD,MAAM,EAAE,mBAAmB,CAAC,MAAM,CAAC,IAAI,CAAC,mBAAmB,CAAC,IACzD,kBAAkB,EACpB;AACH,CAAC,CAAC;AAEF,IAAM,yCAAyC,GAAG,UACjD,OAAqD;IAErD,IAAM,WAAW,GAAG,OAAO,EAAE,CAAC;IAE9B,6EAA6E;IAC7E,uEAAuE;IACvE,2EAA2E;IAC3E,mFAAmF;IACnF,+CAA+C;IAC/C,IAAM,OAAO,GAAiC,UAAC,IAAI,EAAE,KAAK,EAAE,OAAO;QAClE,IAAI;YACH,WAAW,CAAC,GAAG,CAAC,wBAAwB,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;SAChE;QAAC,WAAM;YACP,QAAQ;SACR;IACF,CAAC,CAAC;IAEF,IAAM,UAAU,GAAoC,UAAA,IAAI;QACvD,IAAI;YACH,WAAW,CAAC,MAAM,CAAC,wBAAwB,CAAC,IAAI,CAAC,CAAC,CAAC;SACnD;QAAC,WAAM;YACP,QAAQ;SACR;IACF,CAAC,CAAC;IAEF,OAAO;QACN,GAAG,YAAC,IAAI;YACP,OAAO,WAAW,CAAC,GAAG,CAAC,wBAAwB,CAAC,IAAI,CAAC,CAAC,CAAC;QACxD,CAAC;QACD,MAAM,EAAE,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC;QAC5C,GAAG,EAAE,OAAO;QACZ,MAAM,EAAE,UAAU;KAClB,CAAC;AACH,CAAC,CAAC;AAEF,IAAM,uDAAuD,GAAG,UAC/D,OAAwD,EACxD,QAA0D;IAE1D,IAAM,UAAU,gBAAQ,OAAO,CAAC,OAAO,CAAE,CAAC;IAC1C,IAAM,UAAU,GAAG,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,UAAC,EAAa;YAAZ,IAAI,QAAA,EAAE,KAAK,QAAA;QAAM,OAAA,CAAC;YACrE,IAAI,MAAA;YACJ,KAAK,OAAA;SACL,CAAC;IAHmE,CAGnE,CAAC,CAAC;IAEJ,OAAO;QACN,GAAG,YAAC,IAAI;YACP,IAAM,KAAK,GAAG,UAAU,CAAC,wBAAwB,CAAC,IAAI,CAAC,CAAC,CAAC;YACzD,OAAO,KAAK;gBACX,CAAC,CAAC;oBACA,IAAI,MAAA;oBACJ,KAAK,OAAA;iBACJ;gBACH,CAAC,CAAC,SAAS,CAAC;QACd,CAAC;QACD,MAAM;YACL,OAAO,UAAU,CAAC;QACnB,CAAC;QACD,GAAG,YAAC,IAAI,EAAE,KAAK,EAAE,OAAO;YACvB,QAAQ,CAAC,SAAS,CACjB,YAAY,EACZ,UAAG,wBAAwB,CAAC,IAAI,CAAC,cAAI,KAAK,cACzC,OAAO,CAAC,CAAC,CAAC,yBAAyB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAChD,CACF,CAAC;QACH,CAAC;QACD,MAAM,YAAC,IAAI;YACV,QAAQ,CAAC,SAAS,CACjB,YAAY,EACZ,UAAG,wBAAwB,CAC1B,IAAI,CACJ,uBAAa,wBAAgB,CAAC,WAAW,EAAE,CAAE,CAC9C,CAAC;QACH,CAAC;KACD,CAAC;AACH,CAAC,CAAC;AAEF,IAAM,mCAAmC,GAAG,UAC3C,OAAgB;IAEhB,IAAM,OAAO,GAAiC,UAAC,IAAI,EAAE,KAAK,EAAE,OAAO;QAClE,OAAO,CAAC,MAAM,CACb,YAAY,EACZ,UAAG,wBAAwB,CAAC,IAAI,CAAC,cAAI,KAAK,cACzC,OAAO,CAAC,CAAC,CAAC,yBAAyB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAChD,CACF,CAAC;IACH,CAAC,CAAC;IACF,IAAM,UAAU,GAAoC,UAAA,IAAI;QACvD,OAAO,CAAC,MAAM,CACb,YAAY,EACZ,UAAG,wBAAwB,CAC1B,IAAI,CACJ,uBAAa,wBAAgB,CAAC,WAAW,EAAE,CAAE,CAC9C,CAAC;IACH,CAAC,CAAC;IACF,OAAO;QACN,GAAG,EAAE,OAAO;QACZ,MAAM,EAAE,UAAU;KAClB,CAAC;AACH,CAAC,CAAC;AAEF,IAAM,yBAAyB,GAAG,UACjC,OAAuC;IAE/B,IAAA,OAAO,GAAyC,OAAO,QAAhD,EAAE,MAAM,GAAiC,OAAO,OAAxC,EAAE,QAAQ,GAAuB,OAAO,SAA9B,EAAE,QAAQ,GAAa,OAAO,SAApB,EAAE,MAAM,GAAK,OAAO,OAAZ,CAAa;IAChE,IAAM,iBAAiB,GAAa,EAAE,CAAC;IACvC,IAAI,MAAM,EAAE;QACX,iBAAiB,CAAC,IAAI,CAAC,iBAAU,MAAM,CAAE,CAAC,CAAC;KAC3C;IACD,IAAI,OAAO,EAAE;QACZ,iBAAiB,CAAC,IAAI,CAAC,kBAAW,OAAO,CAAC,WAAW,EAAE,CAAE,CAAC,CAAC;KAC3D;IACD,IAAI,QAAQ,EAAE;QACb,iBAAiB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;KACnC;IACD,IAAI,QAAQ,EAAE;QACb,iBAAiB,CAAC,IAAI,CAAC,mBAAY,QAAQ,CAAE,CAAC,CAAC;KAC/C;IACD,IAAI,MAAM,EAAE;QACX,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;KACjC;IACD,OAAO,iBAAiB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACpC,CAAC,CAAC;AAEF,4EAA4E;AAC5E,uDAAuD;AACvD,kDAAkD;AAClD,kDAAkD;AAClD,2EAA2E;AAC3E,iDAAiD;AACjD,IAAM,wBAAwB,GAAG,UAAC,IAAY;IAC7C,OAAA,kBAAkB,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,sBAAsB,EAAE,kBAAkB,CAAC;AAA5E,CAA4E,CAAC"}
|
|
@@ -55,16 +55,24 @@ var createCookieStorageAdapterFromNextRequestAndNextResponse = function (request
|
|
|
55
55
|
var readonlyCookieStore = request.cookies;
|
|
56
56
|
var mutableCookieStore = response.cookies;
|
|
57
57
|
return {
|
|
58
|
-
get:
|
|
58
|
+
get: function (name) {
|
|
59
|
+
return readonlyCookieStore.get(ensureEncodedForJSCookie(name));
|
|
60
|
+
},
|
|
59
61
|
getAll: readonlyCookieStore.getAll.bind(readonlyCookieStore),
|
|
60
|
-
set:
|
|
61
|
-
|
|
62
|
+
set: function (name, value, options) {
|
|
63
|
+
mutableCookieStore.set(ensureEncodedForJSCookie(name), value, options);
|
|
64
|
+
},
|
|
65
|
+
delete: function (name) {
|
|
66
|
+
mutableCookieStore.delete(ensureEncodedForJSCookie(name));
|
|
67
|
+
},
|
|
62
68
|
};
|
|
63
69
|
};
|
|
64
70
|
var createCookieStorageAdapterFromNextRequestAndHttpResponse = function (request, response) {
|
|
65
71
|
var readonlyCookieStore = request.cookies;
|
|
66
72
|
var mutableCookieStore = createMutableCookieStoreFromHeaders(response.headers);
|
|
67
|
-
return __assign({ get:
|
|
73
|
+
return __assign({ get: function (name) {
|
|
74
|
+
return readonlyCookieStore.get(ensureEncodedForJSCookie(name));
|
|
75
|
+
}, getAll: readonlyCookieStore.getAll.bind(readonlyCookieStore) }, mutableCookieStore);
|
|
68
76
|
};
|
|
69
77
|
var createCookieStorageAdapterFromNextCookies = function (cookies) {
|
|
70
78
|
var cookieStore = cookies();
|
|
@@ -75,7 +83,7 @@ var createCookieStorageAdapterFromNextCookies = function (cookies) {
|
|
|
75
83
|
// and safely ignore the error if it is thrown.
|
|
76
84
|
var setFunc = function (name, value, options) {
|
|
77
85
|
try {
|
|
78
|
-
cookieStore.set(name, value, options);
|
|
86
|
+
cookieStore.set(ensureEncodedForJSCookie(name), value, options);
|
|
79
87
|
}
|
|
80
88
|
catch (_a) {
|
|
81
89
|
// no-op
|
|
@@ -83,14 +91,16 @@ var createCookieStorageAdapterFromNextCookies = function (cookies) {
|
|
|
83
91
|
};
|
|
84
92
|
var deleteFunc = function (name) {
|
|
85
93
|
try {
|
|
86
|
-
cookieStore.delete(name);
|
|
94
|
+
cookieStore.delete(ensureEncodedForJSCookie(name));
|
|
87
95
|
}
|
|
88
96
|
catch (_a) {
|
|
89
97
|
// no-op
|
|
90
98
|
}
|
|
91
99
|
};
|
|
92
100
|
return {
|
|
93
|
-
get:
|
|
101
|
+
get: function (name) {
|
|
102
|
+
return cookieStore.get(ensureEncodedForJSCookie(name));
|
|
103
|
+
},
|
|
94
104
|
getAll: cookieStore.getAll.bind(cookieStore),
|
|
95
105
|
set: setFunc,
|
|
96
106
|
delete: deleteFunc,
|
|
@@ -107,7 +117,7 @@ var createCookieStorageAdapterFromGetServerSidePropsContext = function (request,
|
|
|
107
117
|
});
|
|
108
118
|
return {
|
|
109
119
|
get: function (name) {
|
|
110
|
-
var value = cookiesMap[name];
|
|
120
|
+
var value = cookiesMap[ensureEncodedForJSCookie(name)];
|
|
111
121
|
return value
|
|
112
122
|
? {
|
|
113
123
|
name: name,
|
|
@@ -119,19 +129,19 @@ var createCookieStorageAdapterFromGetServerSidePropsContext = function (request,
|
|
|
119
129
|
return allCookies;
|
|
120
130
|
},
|
|
121
131
|
set: function (name, value, options) {
|
|
122
|
-
response.setHeader('Set-Cookie', "".concat(name, "=").concat(value, ";").concat(options ? serializeSetCookieOptions(options) : ''));
|
|
132
|
+
response.setHeader('Set-Cookie', "".concat(ensureEncodedForJSCookie(name), "=").concat(value, ";").concat(options ? serializeSetCookieOptions(options) : ''));
|
|
123
133
|
},
|
|
124
134
|
delete: function (name) {
|
|
125
|
-
response.setHeader('Set-Cookie', "".concat(name, "=;Expires=").concat(DATE_IN_THE_PAST.toUTCString()));
|
|
135
|
+
response.setHeader('Set-Cookie', "".concat(ensureEncodedForJSCookie(name), "=;Expires=").concat(DATE_IN_THE_PAST.toUTCString()));
|
|
126
136
|
},
|
|
127
137
|
};
|
|
128
138
|
};
|
|
129
139
|
var createMutableCookieStoreFromHeaders = function (headers) {
|
|
130
140
|
var setFunc = function (name, value, options) {
|
|
131
|
-
headers.append('Set-Cookie', "".concat(name, "=").concat(value, ";").concat(options ? serializeSetCookieOptions(options) : ''));
|
|
141
|
+
headers.append('Set-Cookie', "".concat(ensureEncodedForJSCookie(name), "=").concat(value, ";").concat(options ? serializeSetCookieOptions(options) : ''));
|
|
132
142
|
};
|
|
133
143
|
var deleteFunc = function (name) {
|
|
134
|
-
headers.append('Set-Cookie', "".concat(name, "=;Expires=").concat(DATE_IN_THE_PAST.toUTCString()));
|
|
144
|
+
headers.append('Set-Cookie', "".concat(ensureEncodedForJSCookie(name), "=;Expires=").concat(DATE_IN_THE_PAST.toUTCString()));
|
|
135
145
|
};
|
|
136
146
|
return {
|
|
137
147
|
set: setFunc,
|
|
@@ -139,7 +149,7 @@ var createMutableCookieStoreFromHeaders = function (headers) {
|
|
|
139
149
|
};
|
|
140
150
|
};
|
|
141
151
|
var serializeSetCookieOptions = function (options) {
|
|
142
|
-
var expires = options.expires,
|
|
152
|
+
var expires = options.expires, domain = options.domain, httpOnly = options.httpOnly, sameSite = options.sameSite, secure = options.secure;
|
|
143
153
|
var serializedOptions = [];
|
|
144
154
|
if (domain) {
|
|
145
155
|
serializedOptions.push("Domain=".concat(domain));
|
|
@@ -158,4 +168,13 @@ var serializeSetCookieOptions = function (options) {
|
|
|
158
168
|
}
|
|
159
169
|
return serializedOptions.join(';');
|
|
160
170
|
};
|
|
171
|
+
// Ensures the cookie names are encoded in order to look up the cookie store
|
|
172
|
+
// that is manipulated by js-cookie on the client side.
|
|
173
|
+
// Details of the js-cookie encoding behavior see:
|
|
174
|
+
// https://github.com/js-cookie/js-cookie#encoding
|
|
175
|
+
// The implementation is borrowed from js-cookie without escaping `[()]` as
|
|
176
|
+
// we are not using those chars in the auth keys.
|
|
177
|
+
var ensureEncodedForJSCookie = function (name) {
|
|
178
|
+
return encodeURIComponent(name).replace(/%(2[346B]|5E|60|7C)/g, decodeURIComponent);
|
|
179
|
+
};
|
|
161
180
|
//# sourceMappingURL=createCookieStorageAdapterFromNextServerContext.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createCookieStorageAdapterFromNextServerContext.js","sourceRoot":"","sources":["../../src/utils/createCookieStorageAdapterFromNextServerContext.ts"],"names":[],"mappings":"AAAA,qEAAqE;AACrE,sCAAsC;;;;;;;;;;;;AAEtC,OAAO,EAAe,YAAY,EAAE,MAAM,aAAa,CAAC;AAExD,OAAO,EACN,yBAAyB,GAEzB,MAAM,0CAA0C,CAAC;AAElD,MAAM,CAAC,IAAM,gBAAgB,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC;AAE5C,MAAM,CAAC,IAAM,+CAA+C,GAAG,UAC9D,OAA2B;IAErB,IAAA,KACL,OAAwD,EADxC,GAAG,aAAA,EAAY,GAAG,cACsB,CAAC;IAE1D,iFAAiF;IACjF,sEAAsE;IACtE,2EAA2E;IAC3E,6EAA6E;IAC7E,kBAAkB;IAClB,IACC,GAAG;QACH,GAAG;QACH,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,iBAAiB;QACjE,OAAO,GAAG,CAAC,SAAS,KAAK,UAAU,EAClC;QACD,OAAO,uDAAuD,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;KACzE;IAEK,IAAA,KAAwB,OAG7B,EAHO,OAAO,aAAA,EAAE,QAAQ,cAGxB,CAAC;IAEF,6EAA6E;IAC7E,oBAAoB;IACpB,+EAA+E;IAC/E,qBAAqB;IACrB,2EAA2E;IAC3E,6DAA6D;IAC7D,IAAI,OAAO,IAAI,QAAQ,EAAE;QACxB,IAAI,QAAQ,YAAY,YAAY,EAAE;YACrC,OAAO,wDAAwD,CAC9D,OAAO,EACP,QAAQ,CACR,CAAC;SACF;aAAM;YACN,OAAO,wDAAwD,CAC9D,OAAO,EACP,QAAQ,CACR,CAAC;SACF;KACD;IAEO,IAAA,OAAO,GAAK,OAEnB,QAFc,CAEb;IAEF,IAAI,OAAO,OAAO,KAAK,UAAU,EAAE;QAClC,OAAO,yCAAyC,CAAC,OAAO,CAAC,CAAC;KAC1D;IAED,mCAAmC;IACnC,MAAM,IAAI,yBAAyB,CAAC;QACnC,OAAO,EACN,wFAAwF;KACzF,CAAC,CAAC;AACJ,CAAC,CAAC;AAEF,IAAM,wDAAwD,GAAG,UAChE,OAAoB,EACpB,QAAsB;IAEtB,IAAM,mBAAmB,GAAG,OAAO,CAAC,OAAO,CAAC;IAC5C,IAAM,kBAAkB,GAAG,QAAQ,CAAC,OAAO,CAAC;IAE5C,OAAO;QACN,GAAG,
|
|
1
|
+
{"version":3,"file":"createCookieStorageAdapterFromNextServerContext.js","sourceRoot":"","sources":["../../src/utils/createCookieStorageAdapterFromNextServerContext.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
"name": "@aws-amplify/adapter-nextjs",
|
|
4
4
|
"description": "The adapter for the supporting of using Amplify APIs in Next.js.",
|
|
5
5
|
"peerDependencies": {
|
|
6
|
-
"aws-amplify": "6.0.1-console-preview.
|
|
6
|
+
"aws-amplify": "6.0.1-console-preview.5a31ca1.0+5a31ca1",
|
|
7
7
|
"next": ">=13.4.0 <14.0.0"
|
|
8
8
|
},
|
|
9
9
|
"dependencies": {
|
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
"@types/node": "^20.3.1",
|
|
16
16
|
"@types/react": "^18.2.13",
|
|
17
17
|
"@types/react-dom": "^18.2.6",
|
|
18
|
-
"aws-amplify": "6.0.1-console-preview.
|
|
18
|
+
"aws-amplify": "6.0.1-console-preview.5a31ca1.0+5a31ca1",
|
|
19
19
|
"jest-fetch-mock": "3.0.3",
|
|
20
20
|
"next": ">= 13.4.0 < 14.0.0",
|
|
21
21
|
"typescript": "5.1.6"
|
|
@@ -107,6 +107,6 @@
|
|
|
107
107
|
"ts-coverage": "typescript-coverage-report -p ./tsconfig.build.json -t 90.31"
|
|
108
108
|
},
|
|
109
109
|
"typings": "./lib-esm/index.d.ts",
|
|
110
|
-
"version": "0.0.2-console-preview.
|
|
111
|
-
"gitHead": "
|
|
110
|
+
"version": "0.0.2-console-preview.5a31ca1.0+5a31ca1",
|
|
111
|
+
"gitHead": "5a31ca110861fbb0762e9c4d817064acd474f83f"
|
|
112
112
|
}
|
|
@@ -78,10 +78,16 @@ const createCookieStorageAdapterFromNextRequestAndNextResponse = (
|
|
|
78
78
|
const mutableCookieStore = response.cookies;
|
|
79
79
|
|
|
80
80
|
return {
|
|
81
|
-
get
|
|
81
|
+
get(name) {
|
|
82
|
+
return readonlyCookieStore.get(ensureEncodedForJSCookie(name));
|
|
83
|
+
},
|
|
82
84
|
getAll: readonlyCookieStore.getAll.bind(readonlyCookieStore),
|
|
83
|
-
set
|
|
84
|
-
|
|
85
|
+
set(name, value, options) {
|
|
86
|
+
mutableCookieStore.set(ensureEncodedForJSCookie(name), value, options);
|
|
87
|
+
},
|
|
88
|
+
delete(name) {
|
|
89
|
+
mutableCookieStore.delete(ensureEncodedForJSCookie(name));
|
|
90
|
+
},
|
|
85
91
|
};
|
|
86
92
|
};
|
|
87
93
|
|
|
@@ -95,7 +101,9 @@ const createCookieStorageAdapterFromNextRequestAndHttpResponse = (
|
|
|
95
101
|
);
|
|
96
102
|
|
|
97
103
|
return {
|
|
98
|
-
get
|
|
104
|
+
get(name) {
|
|
105
|
+
return readonlyCookieStore.get(ensureEncodedForJSCookie(name));
|
|
106
|
+
},
|
|
99
107
|
getAll: readonlyCookieStore.getAll.bind(readonlyCookieStore),
|
|
100
108
|
...mutableCookieStore,
|
|
101
109
|
};
|
|
@@ -113,7 +121,7 @@ const createCookieStorageAdapterFromNextCookies = (
|
|
|
113
121
|
// and safely ignore the error if it is thrown.
|
|
114
122
|
const setFunc: CookieStorage.Adapter['set'] = (name, value, options) => {
|
|
115
123
|
try {
|
|
116
|
-
cookieStore.set(name, value, options);
|
|
124
|
+
cookieStore.set(ensureEncodedForJSCookie(name), value, options);
|
|
117
125
|
} catch {
|
|
118
126
|
// no-op
|
|
119
127
|
}
|
|
@@ -121,14 +129,16 @@ const createCookieStorageAdapterFromNextCookies = (
|
|
|
121
129
|
|
|
122
130
|
const deleteFunc: CookieStorage.Adapter['delete'] = name => {
|
|
123
131
|
try {
|
|
124
|
-
cookieStore.delete(name);
|
|
132
|
+
cookieStore.delete(ensureEncodedForJSCookie(name));
|
|
125
133
|
} catch {
|
|
126
134
|
// no-op
|
|
127
135
|
}
|
|
128
136
|
};
|
|
129
137
|
|
|
130
138
|
return {
|
|
131
|
-
get
|
|
139
|
+
get(name) {
|
|
140
|
+
return cookieStore.get(ensureEncodedForJSCookie(name));
|
|
141
|
+
},
|
|
132
142
|
getAll: cookieStore.getAll.bind(cookieStore),
|
|
133
143
|
set: setFunc,
|
|
134
144
|
delete: deleteFunc,
|
|
@@ -147,7 +157,7 @@ const createCookieStorageAdapterFromGetServerSidePropsContext = (
|
|
|
147
157
|
|
|
148
158
|
return {
|
|
149
159
|
get(name) {
|
|
150
|
-
const value = cookiesMap[name];
|
|
160
|
+
const value = cookiesMap[ensureEncodedForJSCookie(name)];
|
|
151
161
|
return value
|
|
152
162
|
? {
|
|
153
163
|
name,
|
|
@@ -161,13 +171,17 @@ const createCookieStorageAdapterFromGetServerSidePropsContext = (
|
|
|
161
171
|
set(name, value, options) {
|
|
162
172
|
response.setHeader(
|
|
163
173
|
'Set-Cookie',
|
|
164
|
-
`${name}=${value};${
|
|
174
|
+
`${ensureEncodedForJSCookie(name)}=${value};${
|
|
175
|
+
options ? serializeSetCookieOptions(options) : ''
|
|
176
|
+
}`
|
|
165
177
|
);
|
|
166
178
|
},
|
|
167
179
|
delete(name) {
|
|
168
180
|
response.setHeader(
|
|
169
181
|
'Set-Cookie',
|
|
170
|
-
`${
|
|
182
|
+
`${ensureEncodedForJSCookie(
|
|
183
|
+
name
|
|
184
|
+
)}=;Expires=${DATE_IN_THE_PAST.toUTCString()}`
|
|
171
185
|
);
|
|
172
186
|
},
|
|
173
187
|
};
|
|
@@ -179,13 +193,17 @@ const createMutableCookieStoreFromHeaders = (
|
|
|
179
193
|
const setFunc: CookieStorage.Adapter['set'] = (name, value, options) => {
|
|
180
194
|
headers.append(
|
|
181
195
|
'Set-Cookie',
|
|
182
|
-
`${name}=${value};${
|
|
196
|
+
`${ensureEncodedForJSCookie(name)}=${value};${
|
|
197
|
+
options ? serializeSetCookieOptions(options) : ''
|
|
198
|
+
}`
|
|
183
199
|
);
|
|
184
200
|
};
|
|
185
201
|
const deleteFunc: CookieStorage.Adapter['delete'] = name => {
|
|
186
202
|
headers.append(
|
|
187
203
|
'Set-Cookie',
|
|
188
|
-
`${
|
|
204
|
+
`${ensureEncodedForJSCookie(
|
|
205
|
+
name
|
|
206
|
+
)}=;Expires=${DATE_IN_THE_PAST.toUTCString()}`
|
|
189
207
|
);
|
|
190
208
|
};
|
|
191
209
|
return {
|
|
@@ -197,7 +215,7 @@ const createMutableCookieStoreFromHeaders = (
|
|
|
197
215
|
const serializeSetCookieOptions = (
|
|
198
216
|
options: CookieStorage.SetCookieOptions
|
|
199
217
|
): string => {
|
|
200
|
-
const { expires,
|
|
218
|
+
const { expires, domain, httpOnly, sameSite, secure } = options;
|
|
201
219
|
const serializedOptions: string[] = [];
|
|
202
220
|
if (domain) {
|
|
203
221
|
serializedOptions.push(`Domain=${domain}`);
|
|
@@ -216,3 +234,12 @@ const serializeSetCookieOptions = (
|
|
|
216
234
|
}
|
|
217
235
|
return serializedOptions.join(';');
|
|
218
236
|
};
|
|
237
|
+
|
|
238
|
+
// Ensures the cookie names are encoded in order to look up the cookie store
|
|
239
|
+
// that is manipulated by js-cookie on the client side.
|
|
240
|
+
// Details of the js-cookie encoding behavior see:
|
|
241
|
+
// https://github.com/js-cookie/js-cookie#encoding
|
|
242
|
+
// The implementation is borrowed from js-cookie without escaping `[()]` as
|
|
243
|
+
// we are not using those chars in the auth keys.
|
|
244
|
+
const ensureEncodedForJSCookie = (name: string): string =>
|
|
245
|
+
encodeURIComponent(name).replace(/%(2[346B]|5E|60|7C)/g, decodeURIComponent);
|