azurajs 2.7.1-1 → 2.7.1-2
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/cors.cjs +31 -20
- package/dist/cors.cjs.map +1 -1
- package/dist/cors.d.cts +1 -5
- package/dist/cors.d.ts +1 -5
- package/dist/cors.js +31 -20
- package/dist/cors.js.map +1 -1
- package/dist/index.cjs +31 -20
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +31 -20
- package/dist/index.js.map +1 -1
- package/dist/infra.cjs +31 -20
- package/dist/infra.cjs.map +1 -1
- package/dist/infra.js +31 -20
- package/dist/infra.js.map +1 -1
- package/dist/plugins.cjs +31 -20
- package/dist/plugins.cjs.map +1 -1
- package/dist/plugins.js +31 -20
- package/dist/plugins.js.map +1 -1
- package/package.json +1 -1
- package/src/shared/plugins/CORSPlugin.ts +35 -21
package/dist/cors.cjs
CHANGED
|
@@ -6,7 +6,6 @@ function setHeader(res, key, value) {
|
|
|
6
6
|
if (typeof res.set === "function") return res.set(key, value);
|
|
7
7
|
if (typeof res.setHeader === "function") return res.setHeader(key, value);
|
|
8
8
|
if (typeof res.header === "function") return res.header(key, value);
|
|
9
|
-
return;
|
|
10
9
|
}
|
|
11
10
|
function endResponse(res) {
|
|
12
11
|
if (!res) return;
|
|
@@ -34,43 +33,55 @@ function cors(opts) {
|
|
|
34
33
|
const methods = opts.methods ?? "GET,HEAD,PUT,PATCH,POST,DELETE,OPTIONS";
|
|
35
34
|
const allowedHeaders = opts.allowedHeaders ?? "Content-Type,Authorization,Cookie,X-Requested-With,Accept";
|
|
36
35
|
const credentials = opts.credentials === true;
|
|
37
|
-
return async (
|
|
38
|
-
|
|
39
|
-
|
|
36
|
+
return async function middleware(a, b, c) {
|
|
37
|
+
let request;
|
|
38
|
+
let response;
|
|
39
|
+
let next;
|
|
40
|
+
if (a && a.request && typeof b === "function") {
|
|
41
|
+
request = a.request;
|
|
42
|
+
response = a.response;
|
|
43
|
+
next = b;
|
|
44
|
+
} else if (c && typeof c === "function") {
|
|
45
|
+
request = a;
|
|
46
|
+
response = b;
|
|
47
|
+
next = c;
|
|
48
|
+
} else {
|
|
49
|
+
request = a && (a.request || a.req) || a;
|
|
50
|
+
response = a && (a.response || a.res) || b;
|
|
51
|
+
next = a && a.next || (() => Promise.resolve());
|
|
52
|
+
}
|
|
53
|
+
const reqHeaders = request && (request.headers || {}) || {};
|
|
54
|
+
const requestOrigin = typeof request?.get === "function" ? request.get("origin") : reqHeaders["origin"] || reqHeaders["Origin"] || "";
|
|
40
55
|
if (allowedOrigin === "*") {
|
|
41
56
|
if (credentials && requestOrigin) {
|
|
42
|
-
setHeader(
|
|
43
|
-
ctx.response,
|
|
44
|
-
"Access-Control-Allow-Origin",
|
|
45
|
-
Array.isArray(requestOrigin) ? requestOrigin.join(",") : requestOrigin
|
|
46
|
-
);
|
|
57
|
+
setHeader(response, "Access-Control-Allow-Origin", requestOrigin);
|
|
47
58
|
} else {
|
|
48
|
-
setHeader(
|
|
59
|
+
setHeader(response, "Access-Control-Allow-Origin", "*");
|
|
49
60
|
}
|
|
50
61
|
} else if (Array.isArray(allowedOrigin)) {
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
setHeader(ctx.response, "Access-Control-Allow-Origin", originStr);
|
|
62
|
+
if (requestOrigin && allowedOrigin.includes(requestOrigin)) {
|
|
63
|
+
setHeader(response, "Access-Control-Allow-Origin", requestOrigin);
|
|
54
64
|
}
|
|
55
65
|
} else if (allowedOrigin) {
|
|
56
|
-
setHeader(
|
|
66
|
+
setHeader(response, "Access-Control-Allow-Origin", allowedOrigin);
|
|
57
67
|
}
|
|
58
68
|
if (credentials) {
|
|
59
|
-
setHeader(
|
|
69
|
+
setHeader(response, "Access-Control-Allow-Credentials", "true");
|
|
60
70
|
}
|
|
61
71
|
setHeader(
|
|
62
|
-
|
|
72
|
+
response,
|
|
63
73
|
"Access-Control-Allow-Methods",
|
|
64
74
|
Array.isArray(methods) ? methods.join(",") : methods
|
|
65
75
|
);
|
|
66
76
|
setHeader(
|
|
67
|
-
|
|
77
|
+
response,
|
|
68
78
|
"Access-Control-Allow-Headers",
|
|
69
79
|
Array.isArray(allowedHeaders) ? allowedHeaders.join(",") : allowedHeaders
|
|
70
80
|
);
|
|
71
|
-
setHeader(
|
|
72
|
-
|
|
73
|
-
|
|
81
|
+
setHeader(response, "Vary", "Origin");
|
|
82
|
+
const method = request && (request.method || request?.req?.method) || "";
|
|
83
|
+
if (method === "OPTIONS") {
|
|
84
|
+
return endResponse(response);
|
|
74
85
|
}
|
|
75
86
|
return next();
|
|
76
87
|
};
|
package/dist/cors.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/shared/plugins/CORSPlugin.ts"],"names":[],"mappings":";;;AAGA,SAAS,SAAA,CAAU,GAAA,EAAU,GAAA,EAAa,KAAA,EAAe;AACvD,EAAA,IAAI,CAAC,GAAA,EAAK;AACV,EAAA,IAAI,OAAO,IAAI,GAAA,KAAQ,UAAA,SAAmB,GAAA,CAAI,GAAA,CAAI,KAAK,KAAK,CAAA;AAC5D,EAAA,IAAI,OAAO,IAAI,SAAA,KAAc,UAAA,SAAmB,GAAA,CAAI,SAAA,CAAU,KAAK,KAAK,CAAA;AACxE,EAAA,IAAI,OAAO,IAAI,MAAA,KAAW,UAAA,SAAmB,GAAA,CAAI,MAAA,CAAO,KAAK,KAAK,CAAA;
|
|
1
|
+
{"version":3,"sources":["../src/shared/plugins/CORSPlugin.ts"],"names":[],"mappings":"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","file":"cors.cjs","sourcesContent":["import type { HttpContext } from \"../../types/common.type\";\nimport type { CorsOptions } from \"../../types/plugins/cors.type\";\n\nfunction setHeader(res: any, key: string, value: string) {\n if (!res) return;\n if (typeof res.set === \"function\") return res.set(key, value);\n if (typeof res.setHeader === \"function\") return res.setHeader(key, value);\n if (typeof res.header === \"function\") return res.header(key, value);\n}\n\nfunction endResponse(res: any) {\n if (!res) return;\n if (typeof res.end === \"function\") {\n if (typeof res.statusCode === \"number\") res.statusCode = 204;\n setHeader(res, \"Content-Length\", \"0\");\n return res.end();\n }\n if (typeof res.send === \"function\") {\n if (typeof res.status === \"function\") res.status(204);\n setHeader(res, \"Content-Length\", \"0\");\n return res.send();\n }\n if (typeof res.status === \"function\") {\n res.status(204);\n setHeader(res, \"Content-Length\", \"0\");\n } else {\n if (typeof res.statusCode === \"number\") res.statusCode = 204;\n setHeader(res, \"Content-Length\", \"0\");\n }\n return;\n}\n\nexport function cors(opts: CorsOptions) {\n const allowedOrigin = opts.origin ?? \"*\";\n const methods = opts.methods ?? \"GET,HEAD,PUT,PATCH,POST,DELETE,OPTIONS\";\n const allowedHeaders =\n opts.allowedHeaders ?? \"Content-Type,Authorization,Cookie,X-Requested-With,Accept\";\n const credentials = opts.credentials === true;\n\n return async function middleware(a: any, b?: any, c?: any) {\n let request: any;\n let response: any;\n let next: any;\n\n if (a && a.request && typeof b === \"function\") {\n request = a.request;\n response = a.response;\n next = b;\n } else if (c && typeof c === \"function\") {\n request = a;\n response = b;\n next = c;\n } else {\n request = (a && (a.request || a.req)) || a;\n response = (a && (a.response || a.res)) || b;\n next = (a && a.next) || (() => Promise.resolve());\n }\n\n const reqHeaders = (request && (request.headers || {})) || {};\n const requestOrigin =\n typeof request?.get === \"function\"\n ? request.get(\"origin\")\n : reqHeaders[\"origin\"] || reqHeaders[\"Origin\"] || \"\";\n\n if (allowedOrigin === \"*\") {\n if (credentials && requestOrigin) {\n setHeader(response, \"Access-Control-Allow-Origin\", requestOrigin);\n } else {\n setHeader(response, \"Access-Control-Allow-Origin\", \"*\");\n }\n } else if (Array.isArray(allowedOrigin)) {\n if (requestOrigin && allowedOrigin.includes(requestOrigin)) {\n setHeader(response, \"Access-Control-Allow-Origin\", requestOrigin);\n }\n } else if (allowedOrigin) {\n setHeader(response, \"Access-Control-Allow-Origin\", allowedOrigin as string);\n }\n\n if (credentials) {\n setHeader(response, \"Access-Control-Allow-Credentials\", \"true\");\n }\n\n setHeader(\n response,\n \"Access-Control-Allow-Methods\",\n Array.isArray(methods) ? methods.join(\",\") : methods,\n );\n\n setHeader(\n response,\n \"Access-Control-Allow-Headers\",\n Array.isArray(allowedHeaders) ? allowedHeaders.join(\",\") : allowedHeaders,\n );\n\n setHeader(response, \"Vary\", \"Origin\");\n\n const method = (request && (request.method || request?.req?.method)) || \"\";\n\n if (method === \"OPTIONS\") {\n return endResponse(response);\n }\n\n return next();\n };\n}\n"]}
|
package/dist/cors.d.cts
CHANGED
|
@@ -1,7 +1,3 @@
|
|
|
1
|
-
import { H as HttpContext } from './common.type-9qSPjs_U.cjs';
|
|
2
|
-
import 'node:http';
|
|
3
|
-
import './response.type-d6e6eU9D.cjs';
|
|
4
|
-
|
|
5
1
|
interface CorsOptions {
|
|
6
2
|
origin: string | string[];
|
|
7
3
|
methods: string | string[];
|
|
@@ -9,6 +5,6 @@ interface CorsOptions {
|
|
|
9
5
|
credentials: boolean;
|
|
10
6
|
}
|
|
11
7
|
|
|
12
|
-
declare function cors(opts: CorsOptions): (
|
|
8
|
+
declare function cors(opts: CorsOptions): (a: any, b?: any, c?: any) => Promise<any>;
|
|
13
9
|
|
|
14
10
|
export { cors };
|
package/dist/cors.d.ts
CHANGED
|
@@ -1,7 +1,3 @@
|
|
|
1
|
-
import { H as HttpContext } from './common.type-DYqM-uUk.js';
|
|
2
|
-
import 'node:http';
|
|
3
|
-
import './response.type-d6e6eU9D.js';
|
|
4
|
-
|
|
5
1
|
interface CorsOptions {
|
|
6
2
|
origin: string | string[];
|
|
7
3
|
methods: string | string[];
|
|
@@ -9,6 +5,6 @@ interface CorsOptions {
|
|
|
9
5
|
credentials: boolean;
|
|
10
6
|
}
|
|
11
7
|
|
|
12
|
-
declare function cors(opts: CorsOptions): (
|
|
8
|
+
declare function cors(opts: CorsOptions): (a: any, b?: any, c?: any) => Promise<any>;
|
|
13
9
|
|
|
14
10
|
export { cors };
|
package/dist/cors.js
CHANGED
|
@@ -4,7 +4,6 @@ function setHeader(res, key, value) {
|
|
|
4
4
|
if (typeof res.set === "function") return res.set(key, value);
|
|
5
5
|
if (typeof res.setHeader === "function") return res.setHeader(key, value);
|
|
6
6
|
if (typeof res.header === "function") return res.header(key, value);
|
|
7
|
-
return;
|
|
8
7
|
}
|
|
9
8
|
function endResponse(res) {
|
|
10
9
|
if (!res) return;
|
|
@@ -32,43 +31,55 @@ function cors(opts) {
|
|
|
32
31
|
const methods = opts.methods ?? "GET,HEAD,PUT,PATCH,POST,DELETE,OPTIONS";
|
|
33
32
|
const allowedHeaders = opts.allowedHeaders ?? "Content-Type,Authorization,Cookie,X-Requested-With,Accept";
|
|
34
33
|
const credentials = opts.credentials === true;
|
|
35
|
-
return async (
|
|
36
|
-
|
|
37
|
-
|
|
34
|
+
return async function middleware(a, b, c) {
|
|
35
|
+
let request;
|
|
36
|
+
let response;
|
|
37
|
+
let next;
|
|
38
|
+
if (a && a.request && typeof b === "function") {
|
|
39
|
+
request = a.request;
|
|
40
|
+
response = a.response;
|
|
41
|
+
next = b;
|
|
42
|
+
} else if (c && typeof c === "function") {
|
|
43
|
+
request = a;
|
|
44
|
+
response = b;
|
|
45
|
+
next = c;
|
|
46
|
+
} else {
|
|
47
|
+
request = a && (a.request || a.req) || a;
|
|
48
|
+
response = a && (a.response || a.res) || b;
|
|
49
|
+
next = a && a.next || (() => Promise.resolve());
|
|
50
|
+
}
|
|
51
|
+
const reqHeaders = request && (request.headers || {}) || {};
|
|
52
|
+
const requestOrigin = typeof request?.get === "function" ? request.get("origin") : reqHeaders["origin"] || reqHeaders["Origin"] || "";
|
|
38
53
|
if (allowedOrigin === "*") {
|
|
39
54
|
if (credentials && requestOrigin) {
|
|
40
|
-
setHeader(
|
|
41
|
-
ctx.response,
|
|
42
|
-
"Access-Control-Allow-Origin",
|
|
43
|
-
Array.isArray(requestOrigin) ? requestOrigin.join(",") : requestOrigin
|
|
44
|
-
);
|
|
55
|
+
setHeader(response, "Access-Control-Allow-Origin", requestOrigin);
|
|
45
56
|
} else {
|
|
46
|
-
setHeader(
|
|
57
|
+
setHeader(response, "Access-Control-Allow-Origin", "*");
|
|
47
58
|
}
|
|
48
59
|
} else if (Array.isArray(allowedOrigin)) {
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
setHeader(ctx.response, "Access-Control-Allow-Origin", originStr);
|
|
60
|
+
if (requestOrigin && allowedOrigin.includes(requestOrigin)) {
|
|
61
|
+
setHeader(response, "Access-Control-Allow-Origin", requestOrigin);
|
|
52
62
|
}
|
|
53
63
|
} else if (allowedOrigin) {
|
|
54
|
-
setHeader(
|
|
64
|
+
setHeader(response, "Access-Control-Allow-Origin", allowedOrigin);
|
|
55
65
|
}
|
|
56
66
|
if (credentials) {
|
|
57
|
-
setHeader(
|
|
67
|
+
setHeader(response, "Access-Control-Allow-Credentials", "true");
|
|
58
68
|
}
|
|
59
69
|
setHeader(
|
|
60
|
-
|
|
70
|
+
response,
|
|
61
71
|
"Access-Control-Allow-Methods",
|
|
62
72
|
Array.isArray(methods) ? methods.join(",") : methods
|
|
63
73
|
);
|
|
64
74
|
setHeader(
|
|
65
|
-
|
|
75
|
+
response,
|
|
66
76
|
"Access-Control-Allow-Headers",
|
|
67
77
|
Array.isArray(allowedHeaders) ? allowedHeaders.join(",") : allowedHeaders
|
|
68
78
|
);
|
|
69
|
-
setHeader(
|
|
70
|
-
|
|
71
|
-
|
|
79
|
+
setHeader(response, "Vary", "Origin");
|
|
80
|
+
const method = request && (request.method || request?.req?.method) || "";
|
|
81
|
+
if (method === "OPTIONS") {
|
|
82
|
+
return endResponse(response);
|
|
72
83
|
}
|
|
73
84
|
return next();
|
|
74
85
|
};
|
package/dist/cors.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/shared/plugins/CORSPlugin.ts"],"names":[],"mappings":";AAGA,SAAS,SAAA,CAAU,GAAA,EAAU,GAAA,EAAa,KAAA,EAAe;AACvD,EAAA,IAAI,CAAC,GAAA,EAAK;AACV,EAAA,IAAI,OAAO,IAAI,GAAA,KAAQ,UAAA,SAAmB,GAAA,CAAI,GAAA,CAAI,KAAK,KAAK,CAAA;AAC5D,EAAA,IAAI,OAAO,IAAI,SAAA,KAAc,UAAA,SAAmB,GAAA,CAAI,SAAA,CAAU,KAAK,KAAK,CAAA;AACxE,EAAA,IAAI,OAAO,IAAI,MAAA,KAAW,UAAA,SAAmB,GAAA,CAAI,MAAA,CAAO,KAAK,KAAK,CAAA;
|
|
1
|
+
{"version":3,"sources":["../src/shared/plugins/CORSPlugin.ts"],"names":[],"mappings":";AAGA,SAAS,SAAA,CAAU,GAAA,EAAU,GAAA,EAAa,KAAA,EAAe;AACvD,EAAA,IAAI,CAAC,GAAA,EAAK;AACV,EAAA,IAAI,OAAO,IAAI,GAAA,KAAQ,UAAA,SAAmB,GAAA,CAAI,GAAA,CAAI,KAAK,KAAK,CAAA;AAC5D,EAAA,IAAI,OAAO,IAAI,SAAA,KAAc,UAAA,SAAmB,GAAA,CAAI,SAAA,CAAU,KAAK,KAAK,CAAA;AACxE,EAAA,IAAI,OAAO,IAAI,MAAA,KAAW,UAAA,SAAmB,GAAA,CAAI,MAAA,CAAO,KAAK,KAAK,CAAA;AACpE;AAEA,SAAS,YAAY,GAAA,EAAU;AAC7B,EAAA,IAAI,CAAC,GAAA,EAAK;AACV,EAAA,IAAI,OAAO,GAAA,CAAI,GAAA,KAAQ,UAAA,EAAY;AACjC,IAAA,IAAI,OAAO,GAAA,CAAI,UAAA,KAAe,QAAA,MAAc,UAAA,GAAa,GAAA;AACzD,IAAA,SAAA,CAAU,GAAA,EAAK,kBAAkB,GAAG,CAAA;AACpC,IAAA,OAAO,IAAI,GAAA,EAAI;AAAA,EACjB;AACA,EAAA,IAAI,OAAO,GAAA,CAAI,IAAA,KAAS,UAAA,EAAY;AAClC,IAAA,IAAI,OAAO,GAAA,CAAI,MAAA,KAAW,UAAA,EAAY,GAAA,CAAI,OAAO,GAAG,CAAA;AACpD,IAAA,SAAA,CAAU,GAAA,EAAK,kBAAkB,GAAG,CAAA;AACpC,IAAA,OAAO,IAAI,IAAA,EAAK;AAAA,EAClB;AACA,EAAA,IAAI,OAAO,GAAA,CAAI,MAAA,KAAW,UAAA,EAAY;AACpC,IAAA,GAAA,CAAI,OAAO,GAAG,CAAA;AACd,IAAA,SAAA,CAAU,GAAA,EAAK,kBAAkB,GAAG,CAAA;AAAA,EACtC,CAAA,MAAO;AACL,IAAA,IAAI,OAAO,GAAA,CAAI,UAAA,KAAe,QAAA,MAAc,UAAA,GAAa,GAAA;AACzD,IAAA,SAAA,CAAU,GAAA,EAAK,kBAAkB,GAAG,CAAA;AAAA,EACtC;AACA,EAAA;AACF;AAEO,SAAS,KAAK,IAAA,EAAmB;AACtC,EAAA,MAAM,aAAA,GAAgB,KAAK,MAAA,IAAU,GAAA;AACrC,EAAA,MAAM,OAAA,GAAU,KAAK,OAAA,IAAW,wCAAA;AAChC,EAAA,MAAM,cAAA,GACJ,KAAK,cAAA,IAAkB,2DAAA;AACzB,EAAA,MAAM,WAAA,GAAc,KAAK,WAAA,KAAgB,IAAA;AAEzC,EAAA,OAAO,eAAe,UAAA,CAAW,CAAA,EAAQ,CAAA,EAAS,CAAA,EAAS;AACzD,IAAA,IAAI,OAAA;AACJ,IAAA,IAAI,QAAA;AACJ,IAAA,IAAI,IAAA;AAEJ,IAAA,IAAI,CAAA,IAAK,CAAA,CAAE,OAAA,IAAW,OAAO,MAAM,UAAA,EAAY;AAC7C,MAAA,OAAA,GAAU,CAAA,CAAE,OAAA;AACZ,MAAA,QAAA,GAAW,CAAA,CAAE,QAAA;AACb,MAAA,IAAA,GAAO,CAAA;AAAA,IACT,CAAA,MAAA,IAAW,CAAA,IAAK,OAAO,CAAA,KAAM,UAAA,EAAY;AACvC,MAAA,OAAA,GAAU,CAAA;AACV,MAAA,QAAA,GAAW,CAAA;AACX,MAAA,IAAA,GAAO,CAAA;AAAA,IACT,CAAA,MAAO;AACL,MAAA,OAAA,GAAW,CAAA,KAAM,CAAA,CAAE,OAAA,IAAW,CAAA,CAAE,GAAA,CAAA,IAAS,CAAA;AACzC,MAAA,QAAA,GAAY,CAAA,KAAM,CAAA,CAAE,QAAA,IAAY,CAAA,CAAE,GAAA,CAAA,IAAS,CAAA;AAC3C,MAAA,IAAA,GAAQ,CAAA,IAAK,CAAA,CAAE,IAAA,KAAU,MAAM,QAAQ,OAAA,EAAQ,CAAA;AAAA,IACjD;AAEA,IAAA,MAAM,aAAc,OAAA,KAAY,OAAA,CAAQ,OAAA,IAAW,OAAQ,EAAC;AAC5D,IAAA,MAAM,aAAA,GACJ,OAAO,OAAA,EAAS,GAAA,KAAQ,aACpB,OAAA,CAAQ,GAAA,CAAI,QAAQ,CAAA,GACpB,UAAA,CAAW,QAAQ,CAAA,IAAK,UAAA,CAAW,QAAQ,CAAA,IAAK,EAAA;AAEtD,IAAA,IAAI,kBAAkB,GAAA,EAAK;AACzB,MAAA,IAAI,eAAe,aAAA,EAAe;AAChC,QAAA,SAAA,CAAU,QAAA,EAAU,+BAA+B,aAAa,CAAA;AAAA,MAClE,CAAA,MAAO;AACL,QAAA,SAAA,CAAU,QAAA,EAAU,+BAA+B,GAAG,CAAA;AAAA,MACxD;AAAA,IACF,CAAA,MAAA,IAAW,KAAA,CAAM,OAAA,CAAQ,aAAa,CAAA,EAAG;AACvC,MAAA,IAAI,aAAA,IAAiB,aAAA,CAAc,QAAA,CAAS,aAAa,CAAA,EAAG;AAC1D,QAAA,SAAA,CAAU,QAAA,EAAU,+BAA+B,aAAa,CAAA;AAAA,MAClE;AAAA,IACF,WAAW,aAAA,EAAe;AACxB,MAAA,SAAA,CAAU,QAAA,EAAU,+BAA+B,aAAuB,CAAA;AAAA,IAC5E;AAEA,IAAA,IAAI,WAAA,EAAa;AACf,MAAA,SAAA,CAAU,QAAA,EAAU,oCAAoC,MAAM,CAAA;AAAA,IAChE;AAEA,IAAA,SAAA;AAAA,MACE,QAAA;AAAA,MACA,8BAAA;AAAA,MACA,MAAM,OAAA,CAAQ,OAAO,IAAI,OAAA,CAAQ,IAAA,CAAK,GAAG,CAAA,GAAI;AAAA,KAC/C;AAEA,IAAA,SAAA;AAAA,MACE,QAAA;AAAA,MACA,8BAAA;AAAA,MACA,MAAM,OAAA,CAAQ,cAAc,IAAI,cAAA,CAAe,IAAA,CAAK,GAAG,CAAA,GAAI;AAAA,KAC7D;AAEA,IAAA,SAAA,CAAU,QAAA,EAAU,QAAQ,QAAQ,CAAA;AAEpC,IAAA,MAAM,SAAU,OAAA,KAAY,OAAA,CAAQ,MAAA,IAAU,OAAA,EAAS,KAAK,MAAA,CAAA,IAAY,EAAA;AAExE,IAAA,IAAI,WAAW,SAAA,EAAW;AACxB,MAAA,OAAO,YAAY,QAAQ,CAAA;AAAA,IAC7B;AAEA,IAAA,OAAO,IAAA,EAAK;AAAA,EACd,CAAA;AACF","file":"cors.js","sourcesContent":["import type { HttpContext } from \"../../types/common.type\";\nimport type { CorsOptions } from \"../../types/plugins/cors.type\";\n\nfunction setHeader(res: any, key: string, value: string) {\n if (!res) return;\n if (typeof res.set === \"function\") return res.set(key, value);\n if (typeof res.setHeader === \"function\") return res.setHeader(key, value);\n if (typeof res.header === \"function\") return res.header(key, value);\n}\n\nfunction endResponse(res: any) {\n if (!res) return;\n if (typeof res.end === \"function\") {\n if (typeof res.statusCode === \"number\") res.statusCode = 204;\n setHeader(res, \"Content-Length\", \"0\");\n return res.end();\n }\n if (typeof res.send === \"function\") {\n if (typeof res.status === \"function\") res.status(204);\n setHeader(res, \"Content-Length\", \"0\");\n return res.send();\n }\n if (typeof res.status === \"function\") {\n res.status(204);\n setHeader(res, \"Content-Length\", \"0\");\n } else {\n if (typeof res.statusCode === \"number\") res.statusCode = 204;\n setHeader(res, \"Content-Length\", \"0\");\n }\n return;\n}\n\nexport function cors(opts: CorsOptions) {\n const allowedOrigin = opts.origin ?? \"*\";\n const methods = opts.methods ?? \"GET,HEAD,PUT,PATCH,POST,DELETE,OPTIONS\";\n const allowedHeaders =\n opts.allowedHeaders ?? \"Content-Type,Authorization,Cookie,X-Requested-With,Accept\";\n const credentials = opts.credentials === true;\n\n return async function middleware(a: any, b?: any, c?: any) {\n let request: any;\n let response: any;\n let next: any;\n\n if (a && a.request && typeof b === \"function\") {\n request = a.request;\n response = a.response;\n next = b;\n } else if (c && typeof c === \"function\") {\n request = a;\n response = b;\n next = c;\n } else {\n request = (a && (a.request || a.req)) || a;\n response = (a && (a.response || a.res)) || b;\n next = (a && a.next) || (() => Promise.resolve());\n }\n\n const reqHeaders = (request && (request.headers || {})) || {};\n const requestOrigin =\n typeof request?.get === \"function\"\n ? request.get(\"origin\")\n : reqHeaders[\"origin\"] || reqHeaders[\"Origin\"] || \"\";\n\n if (allowedOrigin === \"*\") {\n if (credentials && requestOrigin) {\n setHeader(response, \"Access-Control-Allow-Origin\", requestOrigin);\n } else {\n setHeader(response, \"Access-Control-Allow-Origin\", \"*\");\n }\n } else if (Array.isArray(allowedOrigin)) {\n if (requestOrigin && allowedOrigin.includes(requestOrigin)) {\n setHeader(response, \"Access-Control-Allow-Origin\", requestOrigin);\n }\n } else if (allowedOrigin) {\n setHeader(response, \"Access-Control-Allow-Origin\", allowedOrigin as string);\n }\n\n if (credentials) {\n setHeader(response, \"Access-Control-Allow-Credentials\", \"true\");\n }\n\n setHeader(\n response,\n \"Access-Control-Allow-Methods\",\n Array.isArray(methods) ? methods.join(\",\") : methods,\n );\n\n setHeader(\n response,\n \"Access-Control-Allow-Headers\",\n Array.isArray(allowedHeaders) ? allowedHeaders.join(\",\") : allowedHeaders,\n );\n\n setHeader(response, \"Vary\", \"Origin\");\n\n const method = (request && (request.method || request?.req?.method)) || \"\";\n\n if (method === \"OPTIONS\") {\n return endResponse(response);\n }\n\n return next();\n };\n}\n"]}
|
package/dist/index.cjs
CHANGED
|
@@ -623,7 +623,6 @@ function setHeader(res, key, value) {
|
|
|
623
623
|
if (typeof res.set === "function") return res.set(key, value);
|
|
624
624
|
if (typeof res.setHeader === "function") return res.setHeader(key, value);
|
|
625
625
|
if (typeof res.header === "function") return res.header(key, value);
|
|
626
|
-
return;
|
|
627
626
|
}
|
|
628
627
|
function endResponse(res) {
|
|
629
628
|
if (!res) return;
|
|
@@ -651,43 +650,55 @@ function cors(opts) {
|
|
|
651
650
|
const methods = opts.methods ?? "GET,HEAD,PUT,PATCH,POST,DELETE,OPTIONS";
|
|
652
651
|
const allowedHeaders = opts.allowedHeaders ?? "Content-Type,Authorization,Cookie,X-Requested-With,Accept";
|
|
653
652
|
const credentials = opts.credentials === true;
|
|
654
|
-
return async (
|
|
655
|
-
|
|
656
|
-
|
|
653
|
+
return async function middleware(a, b, c) {
|
|
654
|
+
let request;
|
|
655
|
+
let response;
|
|
656
|
+
let next;
|
|
657
|
+
if (a && a.request && typeof b === "function") {
|
|
658
|
+
request = a.request;
|
|
659
|
+
response = a.response;
|
|
660
|
+
next = b;
|
|
661
|
+
} else if (c && typeof c === "function") {
|
|
662
|
+
request = a;
|
|
663
|
+
response = b;
|
|
664
|
+
next = c;
|
|
665
|
+
} else {
|
|
666
|
+
request = a && (a.request || a.req) || a;
|
|
667
|
+
response = a && (a.response || a.res) || b;
|
|
668
|
+
next = a && a.next || (() => Promise.resolve());
|
|
669
|
+
}
|
|
670
|
+
const reqHeaders = request && (request.headers || {}) || {};
|
|
671
|
+
const requestOrigin = typeof request?.get === "function" ? request.get("origin") : reqHeaders["origin"] || reqHeaders["Origin"] || "";
|
|
657
672
|
if (allowedOrigin === "*") {
|
|
658
673
|
if (credentials && requestOrigin) {
|
|
659
|
-
setHeader(
|
|
660
|
-
ctx.response,
|
|
661
|
-
"Access-Control-Allow-Origin",
|
|
662
|
-
Array.isArray(requestOrigin) ? requestOrigin.join(",") : requestOrigin
|
|
663
|
-
);
|
|
674
|
+
setHeader(response, "Access-Control-Allow-Origin", requestOrigin);
|
|
664
675
|
} else {
|
|
665
|
-
setHeader(
|
|
676
|
+
setHeader(response, "Access-Control-Allow-Origin", "*");
|
|
666
677
|
}
|
|
667
678
|
} else if (Array.isArray(allowedOrigin)) {
|
|
668
|
-
|
|
669
|
-
|
|
670
|
-
setHeader(ctx.response, "Access-Control-Allow-Origin", originStr);
|
|
679
|
+
if (requestOrigin && allowedOrigin.includes(requestOrigin)) {
|
|
680
|
+
setHeader(response, "Access-Control-Allow-Origin", requestOrigin);
|
|
671
681
|
}
|
|
672
682
|
} else if (allowedOrigin) {
|
|
673
|
-
setHeader(
|
|
683
|
+
setHeader(response, "Access-Control-Allow-Origin", allowedOrigin);
|
|
674
684
|
}
|
|
675
685
|
if (credentials) {
|
|
676
|
-
setHeader(
|
|
686
|
+
setHeader(response, "Access-Control-Allow-Credentials", "true");
|
|
677
687
|
}
|
|
678
688
|
setHeader(
|
|
679
|
-
|
|
689
|
+
response,
|
|
680
690
|
"Access-Control-Allow-Methods",
|
|
681
691
|
Array.isArray(methods) ? methods.join(",") : methods
|
|
682
692
|
);
|
|
683
693
|
setHeader(
|
|
684
|
-
|
|
694
|
+
response,
|
|
685
695
|
"Access-Control-Allow-Headers",
|
|
686
696
|
Array.isArray(allowedHeaders) ? allowedHeaders.join(",") : allowedHeaders
|
|
687
697
|
);
|
|
688
|
-
setHeader(
|
|
689
|
-
|
|
690
|
-
|
|
698
|
+
setHeader(response, "Vary", "Origin");
|
|
699
|
+
const method = request && (request.method || request?.req?.method) || "";
|
|
700
|
+
if (method === "OPTIONS") {
|
|
701
|
+
return endResponse(response);
|
|
691
702
|
}
|
|
692
703
|
return next();
|
|
693
704
|
};
|