druxt 0.25.1-dev.20261029031407 → 0.25.1-dev.20261031205554
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/druxt.esm.js +16 -6
- package/dist/druxt.ssr.js +16 -6
- package/package.json +1 -1
package/dist/druxt.esm.js
CHANGED
|
@@ -54,11 +54,12 @@ const consumerId = (axios) => {
|
|
|
54
54
|
};
|
|
55
55
|
const headersHaveCredentials = (headers, sessionCookie) => {
|
|
56
56
|
const session = new RegExp(`(?:^|;\\s*)(?:${sessionCookie})=`, "i");
|
|
57
|
-
return Object.entries(headers || {}).some(([name,
|
|
57
|
+
return Object.entries(headers || {}).some(([name, raw]) => {
|
|
58
|
+
const value = Array.isArray(raw) ? raw.join("; ") : raw;
|
|
58
59
|
if (!value || typeof value === "object")
|
|
59
60
|
return false;
|
|
60
61
|
const header = name.toLowerCase();
|
|
61
|
-
return header === "authorization" || header === "cookie" && session.test(String(value));
|
|
62
|
+
return header === "authorization" || header === "origin" || header === "cookie" && session.test(String(value));
|
|
62
63
|
});
|
|
63
64
|
};
|
|
64
65
|
const configHasCredentials = (config, sessionCookie = DRUPAL_SESSION_COOKIE) => {
|
|
@@ -109,7 +110,7 @@ const parseCacheLifetime = (headers) => {
|
|
|
109
110
|
if (directives.some((d) => ["private", "no-store", "no-cache"].includes(d)))
|
|
110
111
|
return 0;
|
|
111
112
|
const vary = header("vary").toLowerCase().split(",").map((v) => v.trim()).filter(Boolean);
|
|
112
|
-
if (vary.some((v) => !["cookie", "x-consumer-id", "accept-encoding"].includes(v)))
|
|
113
|
+
if (vary.some((v) => !["cookie", "x-consumer-id", "accept-encoding", "origin"].includes(v)))
|
|
113
114
|
return 0;
|
|
114
115
|
const seconds = (name) => {
|
|
115
116
|
const directive = directives.find((d) => d.startsWith(`${name}=`));
|
|
@@ -202,6 +203,15 @@ const lifetimes = new WeakMap();
|
|
|
202
203
|
const DEFAULT_MAX_SIZE = 50 * 1024 * 1024;
|
|
203
204
|
const CACHE_SAFE_OPTIONS = ["validateStatus", "timeout"];
|
|
204
205
|
const requestOptions = ({ bypassCache } = {}) => bypassCache ? [{ bypassCache: true }] : [];
|
|
206
|
+
const isNested = (value) => value !== null && typeof value === "object";
|
|
207
|
+
const stringifyNested = (value, name) => Object.entries(value).map(([key, item]) => {
|
|
208
|
+
if (!name && (!isNested(item) || Array.isArray(item)))
|
|
209
|
+
return stringify({ [key]: item });
|
|
210
|
+
if (item === null || typeof item === "undefined")
|
|
211
|
+
return "";
|
|
212
|
+
const nested = name ? `${name}[${encodeURIComponent(key)}]` : encodeURIComponent(key);
|
|
213
|
+
return isNested(item) ? stringifyNested(item, nested) : `${nested}=${encodeURIComponent(item)}`;
|
|
214
|
+
}).filter((part) => part).join("&");
|
|
205
215
|
class DruxtClient {
|
|
206
216
|
constructor(baseUrl, options = {}) {
|
|
207
217
|
this.log = consola.create({ defaults: {
|
|
@@ -289,8 +299,8 @@ class DruxtClient {
|
|
|
289
299
|
if (typeof query === "object" && typeof query.getQueryString === "function" && (query = query.getQueryString())) {
|
|
290
300
|
return [url, query].join("?");
|
|
291
301
|
}
|
|
292
|
-
if (typeof query === "object" &&
|
|
293
|
-
return [url,
|
|
302
|
+
if (typeof query === "object" && (query = stringifyNested(query))) {
|
|
303
|
+
return [url, query].join("?");
|
|
294
304
|
}
|
|
295
305
|
return url;
|
|
296
306
|
}
|
|
@@ -553,7 +563,7 @@ const cacheClearHandler = (secret) => (req, res) => {
|
|
|
553
563
|
};
|
|
554
564
|
|
|
555
565
|
var name = "druxt";
|
|
556
|
-
var version = "0.25.1-dev.
|
|
566
|
+
var version = "0.25.1-dev.20261031205554";
|
|
557
567
|
var description = "The Fully Decoupled Drupal Framework for Nuxt.js.";
|
|
558
568
|
var keywords = [
|
|
559
569
|
"cms",
|
package/dist/druxt.ssr.js
CHANGED
|
@@ -67,11 +67,12 @@ const consumerId = (axios) => {
|
|
|
67
67
|
};
|
|
68
68
|
const headersHaveCredentials = (headers, sessionCookie) => {
|
|
69
69
|
const session = new RegExp(`(?:^|;\\s*)(?:${sessionCookie})=`, "i");
|
|
70
|
-
return Object.entries(headers || {}).some(([name,
|
|
70
|
+
return Object.entries(headers || {}).some(([name, raw]) => {
|
|
71
|
+
const value = Array.isArray(raw) ? raw.join("; ") : raw;
|
|
71
72
|
if (!value || typeof value === "object")
|
|
72
73
|
return false;
|
|
73
74
|
const header = name.toLowerCase();
|
|
74
|
-
return header === "authorization" || header === "cookie" && session.test(String(value));
|
|
75
|
+
return header === "authorization" || header === "origin" || header === "cookie" && session.test(String(value));
|
|
75
76
|
});
|
|
76
77
|
};
|
|
77
78
|
const configHasCredentials = (config, sessionCookie = DRUPAL_SESSION_COOKIE) => {
|
|
@@ -122,7 +123,7 @@ const parseCacheLifetime = (headers) => {
|
|
|
122
123
|
if (directives.some((d) => ["private", "no-store", "no-cache"].includes(d)))
|
|
123
124
|
return 0;
|
|
124
125
|
const vary = header("vary").toLowerCase().split(",").map((v) => v.trim()).filter(Boolean);
|
|
125
|
-
if (vary.some((v) => !["cookie", "x-consumer-id", "accept-encoding"].includes(v)))
|
|
126
|
+
if (vary.some((v) => !["cookie", "x-consumer-id", "accept-encoding", "origin"].includes(v)))
|
|
126
127
|
return 0;
|
|
127
128
|
const seconds = (name) => {
|
|
128
129
|
const directive = directives.find((d) => d.startsWith(`${name}=`));
|
|
@@ -215,6 +216,15 @@ const lifetimes = new WeakMap();
|
|
|
215
216
|
const DEFAULT_MAX_SIZE = 50 * 1024 * 1024;
|
|
216
217
|
const CACHE_SAFE_OPTIONS = ["validateStatus", "timeout"];
|
|
217
218
|
const requestOptions = ({ bypassCache } = {}) => bypassCache ? [{ bypassCache: true }] : [];
|
|
219
|
+
const isNested = (value) => value !== null && typeof value === "object";
|
|
220
|
+
const stringifyNested = (value, name) => Object.entries(value).map(([key, item]) => {
|
|
221
|
+
if (!name && (!isNested(item) || Array.isArray(item)))
|
|
222
|
+
return querystring.stringify({ [key]: item });
|
|
223
|
+
if (item === null || typeof item === "undefined")
|
|
224
|
+
return "";
|
|
225
|
+
const nested = name ? `${name}[${encodeURIComponent(key)}]` : encodeURIComponent(key);
|
|
226
|
+
return isNested(item) ? stringifyNested(item, nested) : `${nested}=${encodeURIComponent(item)}`;
|
|
227
|
+
}).filter((part) => part).join("&");
|
|
218
228
|
class DruxtClient {
|
|
219
229
|
constructor(baseUrl, options = {}) {
|
|
220
230
|
this.log = consola__default["default"].create({ defaults: {
|
|
@@ -302,8 +312,8 @@ class DruxtClient {
|
|
|
302
312
|
if (typeof query === "object" && typeof query.getQueryString === "function" && (query = query.getQueryString())) {
|
|
303
313
|
return [url, query].join("?");
|
|
304
314
|
}
|
|
305
|
-
if (typeof query === "object" &&
|
|
306
|
-
return [url,
|
|
315
|
+
if (typeof query === "object" && (query = stringifyNested(query))) {
|
|
316
|
+
return [url, query].join("?");
|
|
307
317
|
}
|
|
308
318
|
return url;
|
|
309
319
|
}
|
|
@@ -566,7 +576,7 @@ const cacheClearHandler = (secret) => (req, res) => {
|
|
|
566
576
|
};
|
|
567
577
|
|
|
568
578
|
var name = "druxt";
|
|
569
|
-
var version = "0.25.1-dev.
|
|
579
|
+
var version = "0.25.1-dev.20261031205554";
|
|
570
580
|
var description = "The Fully Decoupled Drupal Framework for Nuxt.js.";
|
|
571
581
|
var keywords = [
|
|
572
582
|
"cms",
|