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 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 (ctx, next) => {
38
- const reqHeaders = ctx.request && (ctx.request.headers || {}) || {};
39
- const requestOrigin = typeof ctx.request.get === "function" ? ctx.request.get("origin") : reqHeaders["origin"] || reqHeaders["Origin"] || "";
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(ctx.response, "Access-Control-Allow-Origin", "*");
59
+ setHeader(response, "Access-Control-Allow-Origin", "*");
49
60
  }
50
61
  } else if (Array.isArray(allowedOrigin)) {
51
- const originStr = Array.isArray(requestOrigin) ? requestOrigin[0] : requestOrigin;
52
- if (originStr && allowedOrigin.includes(originStr)) {
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(ctx.response, "Access-Control-Allow-Origin", allowedOrigin);
66
+ setHeader(response, "Access-Control-Allow-Origin", allowedOrigin);
57
67
  }
58
68
  if (credentials) {
59
- setHeader(ctx.response, "Access-Control-Allow-Credentials", "true");
69
+ setHeader(response, "Access-Control-Allow-Credentials", "true");
60
70
  }
61
71
  setHeader(
62
- ctx.response,
72
+ response,
63
73
  "Access-Control-Allow-Methods",
64
74
  Array.isArray(methods) ? methods.join(",") : methods
65
75
  );
66
76
  setHeader(
67
- ctx.response,
77
+ response,
68
78
  "Access-Control-Allow-Headers",
69
79
  Array.isArray(allowedHeaders) ? allowedHeaders.join(",") : allowedHeaders
70
80
  );
71
- setHeader(ctx.response, "Vary", "Origin");
72
- if (ctx.request && ctx.request.method === "OPTIONS" || ctx.request.method === "OPTIONS") {
73
- return endResponse(ctx.response);
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":"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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 return;\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 (ctx: HttpContext, next: () => Promise<void>) => {\n const reqHeaders = (ctx.request && (ctx.request.headers || {})) || {};\n const requestOrigin =\n typeof ctx.request.get === \"function\"\n ? ctx.request.get(\"origin\")\n : reqHeaders[\"origin\"] || reqHeaders[\"Origin\"] || \"\";\n\n if (allowedOrigin === \"*\") {\n if (credentials && requestOrigin) {\n setHeader(\n ctx.response,\n \"Access-Control-Allow-Origin\",\n Array.isArray(requestOrigin) ? requestOrigin.join(\",\") : requestOrigin,\n );\n } else {\n setHeader(ctx.response, \"Access-Control-Allow-Origin\", \"*\");\n }\n } else if (Array.isArray(allowedOrigin)) {\n const originStr = Array.isArray(requestOrigin) ? requestOrigin[0] : requestOrigin;\n if (originStr && allowedOrigin.includes(originStr)) {\n setHeader(ctx.response, \"Access-Control-Allow-Origin\", originStr);\n }\n } else if (allowedOrigin) {\n setHeader(ctx.response, \"Access-Control-Allow-Origin\", allowedOrigin as string);\n }\n\n if (credentials) {\n setHeader(ctx.response, \"Access-Control-Allow-Credentials\", \"true\");\n }\n\n setHeader(\n ctx.response,\n \"Access-Control-Allow-Methods\",\n Array.isArray(methods) ? methods.join(\",\") : methods,\n );\n\n setHeader(\n ctx.response,\n \"Access-Control-Allow-Headers\",\n Array.isArray(allowedHeaders) ? allowedHeaders.join(\",\") : allowedHeaders,\n );\n\n setHeader(ctx.response, \"Vary\", \"Origin\");\n\n if ((ctx.request && ctx.request.method === \"OPTIONS\") || ctx.request.method === \"OPTIONS\") {\n return endResponse(ctx.response);\n }\n\n return next();\n };\n}\n"]}
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): (ctx: HttpContext, next: () => Promise<void>) => Promise<any>;
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): (ctx: HttpContext, next: () => Promise<void>) => Promise<any>;
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 (ctx, next) => {
36
- const reqHeaders = ctx.request && (ctx.request.headers || {}) || {};
37
- const requestOrigin = typeof ctx.request.get === "function" ? ctx.request.get("origin") : reqHeaders["origin"] || reqHeaders["Origin"] || "";
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(ctx.response, "Access-Control-Allow-Origin", "*");
57
+ setHeader(response, "Access-Control-Allow-Origin", "*");
47
58
  }
48
59
  } else if (Array.isArray(allowedOrigin)) {
49
- const originStr = Array.isArray(requestOrigin) ? requestOrigin[0] : requestOrigin;
50
- if (originStr && allowedOrigin.includes(originStr)) {
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(ctx.response, "Access-Control-Allow-Origin", allowedOrigin);
64
+ setHeader(response, "Access-Control-Allow-Origin", allowedOrigin);
55
65
  }
56
66
  if (credentials) {
57
- setHeader(ctx.response, "Access-Control-Allow-Credentials", "true");
67
+ setHeader(response, "Access-Control-Allow-Credentials", "true");
58
68
  }
59
69
  setHeader(
60
- ctx.response,
70
+ response,
61
71
  "Access-Control-Allow-Methods",
62
72
  Array.isArray(methods) ? methods.join(",") : methods
63
73
  );
64
74
  setHeader(
65
- ctx.response,
75
+ response,
66
76
  "Access-Control-Allow-Headers",
67
77
  Array.isArray(allowedHeaders) ? allowedHeaders.join(",") : allowedHeaders
68
78
  );
69
- setHeader(ctx.response, "Vary", "Origin");
70
- if (ctx.request && ctx.request.method === "OPTIONS" || ctx.request.method === "OPTIONS") {
71
- return endResponse(ctx.response);
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":"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","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 return;\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 (ctx: HttpContext, next: () => Promise<void>) => {\n const reqHeaders = (ctx.request && (ctx.request.headers || {})) || {};\n const requestOrigin =\n typeof ctx.request.get === \"function\"\n ? ctx.request.get(\"origin\")\n : reqHeaders[\"origin\"] || reqHeaders[\"Origin\"] || \"\";\n\n if (allowedOrigin === \"*\") {\n if (credentials && requestOrigin) {\n setHeader(\n ctx.response,\n \"Access-Control-Allow-Origin\",\n Array.isArray(requestOrigin) ? requestOrigin.join(\",\") : requestOrigin,\n );\n } else {\n setHeader(ctx.response, \"Access-Control-Allow-Origin\", \"*\");\n }\n } else if (Array.isArray(allowedOrigin)) {\n const originStr = Array.isArray(requestOrigin) ? requestOrigin[0] : requestOrigin;\n if (originStr && allowedOrigin.includes(originStr)) {\n setHeader(ctx.response, \"Access-Control-Allow-Origin\", originStr);\n }\n } else if (allowedOrigin) {\n setHeader(ctx.response, \"Access-Control-Allow-Origin\", allowedOrigin as string);\n }\n\n if (credentials) {\n setHeader(ctx.response, \"Access-Control-Allow-Credentials\", \"true\");\n }\n\n setHeader(\n ctx.response,\n \"Access-Control-Allow-Methods\",\n Array.isArray(methods) ? methods.join(\",\") : methods,\n );\n\n setHeader(\n ctx.response,\n \"Access-Control-Allow-Headers\",\n Array.isArray(allowedHeaders) ? allowedHeaders.join(\",\") : allowedHeaders,\n );\n\n setHeader(ctx.response, \"Vary\", \"Origin\");\n\n if ((ctx.request && ctx.request.method === \"OPTIONS\") || ctx.request.method === \"OPTIONS\") {\n return endResponse(ctx.response);\n }\n\n return next();\n };\n}\n"]}
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 (ctx, next) => {
655
- const reqHeaders = ctx.request && (ctx.request.headers || {}) || {};
656
- const requestOrigin = typeof ctx.request.get === "function" ? ctx.request.get("origin") : reqHeaders["origin"] || reqHeaders["Origin"] || "";
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(ctx.response, "Access-Control-Allow-Origin", "*");
676
+ setHeader(response, "Access-Control-Allow-Origin", "*");
666
677
  }
667
678
  } else if (Array.isArray(allowedOrigin)) {
668
- const originStr = Array.isArray(requestOrigin) ? requestOrigin[0] : requestOrigin;
669
- if (originStr && allowedOrigin.includes(originStr)) {
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(ctx.response, "Access-Control-Allow-Origin", allowedOrigin);
683
+ setHeader(response, "Access-Control-Allow-Origin", allowedOrigin);
674
684
  }
675
685
  if (credentials) {
676
- setHeader(ctx.response, "Access-Control-Allow-Credentials", "true");
686
+ setHeader(response, "Access-Control-Allow-Credentials", "true");
677
687
  }
678
688
  setHeader(
679
- ctx.response,
689
+ response,
680
690
  "Access-Control-Allow-Methods",
681
691
  Array.isArray(methods) ? methods.join(",") : methods
682
692
  );
683
693
  setHeader(
684
- ctx.response,
694
+ response,
685
695
  "Access-Control-Allow-Headers",
686
696
  Array.isArray(allowedHeaders) ? allowedHeaders.join(",") : allowedHeaders
687
697
  );
688
- setHeader(ctx.response, "Vary", "Origin");
689
- if (ctx.request && ctx.request.method === "OPTIONS" || ctx.request.method === "OPTIONS") {
690
- return endResponse(ctx.response);
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
  };