hono 2.3.2 → 2.4.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.
Files changed (141) hide show
  1. package/dist/cjs/compose.js +82 -66
  2. package/dist/cjs/context.js +159 -144
  3. package/dist/cjs/hono.js +173 -150
  4. package/dist/cjs/index.js +31 -11
  5. package/dist/cjs/middleware/basic-auth/index.js +70 -39
  6. package/dist/cjs/middleware/bearer-auth/index.js +69 -51
  7. package/dist/cjs/middleware/cache/index.js +49 -28
  8. package/dist/cjs/middleware/compress/index.js +39 -16
  9. package/dist/cjs/middleware/cors/index.js +89 -71
  10. package/dist/cjs/middleware/etag/index.js +46 -24
  11. package/dist/cjs/middleware/html/index.js +50 -30
  12. package/dist/cjs/middleware/jsx/index.js +178 -166
  13. package/dist/cjs/middleware/jsx/jsx-dev-runtime.js +30 -7
  14. package/dist/cjs/middleware/jsx/jsx-runtime.js +30 -6
  15. package/dist/cjs/middleware/jwt/index.js +74 -54
  16. package/dist/cjs/middleware/logger/index.js +59 -38
  17. package/dist/cjs/middleware/powered-by/index.js +30 -7
  18. package/dist/cjs/middleware/pretty-json/index.js +31 -8
  19. package/dist/cjs/middleware/serve-static/bun.js +56 -38
  20. package/dist/cjs/middleware/serve-static/index.js +27 -4
  21. package/dist/cjs/middleware/serve-static/module.js +42 -0
  22. package/dist/cjs/middleware/serve-static/serve-static.js +58 -39
  23. package/dist/cjs/middleware/validator/index.js +27 -4
  24. package/dist/cjs/middleware/validator/middleware.js +125 -91
  25. package/dist/cjs/package.json +3 -0
  26. package/dist/cjs/request.js +129 -116
  27. package/dist/cjs/router/reg-exp-router/index.js +27 -4
  28. package/dist/cjs/router/reg-exp-router/node.js +108 -97
  29. package/dist/cjs/router/reg-exp-router/router.js +158 -141
  30. package/dist/cjs/router/reg-exp-router/trie.js +55 -39
  31. package/dist/cjs/router/smart-router/index.js +27 -4
  32. package/dist/cjs/router/smart-router/router.js +70 -49
  33. package/dist/cjs/router/static-router/index.js +27 -4
  34. package/dist/cjs/router/static-router/router.js +78 -64
  35. package/dist/cjs/router/trie-router/index.js +27 -4
  36. package/dist/cjs/router/trie-router/node.js +167 -159
  37. package/dist/cjs/router/trie-router/router.js +43 -20
  38. package/dist/cjs/router.js +35 -6
  39. package/dist/cjs/types.js +16 -0
  40. package/dist/cjs/utils/body.js +36 -15
  41. package/dist/cjs/utils/buffer.js +56 -31
  42. package/dist/cjs/utils/cloudflare.js +53 -34
  43. package/dist/cjs/utils/cookie.js +59 -35
  44. package/dist/cjs/utils/crypto.js +69 -43
  45. package/dist/cjs/utils/encode.js +92 -65
  46. package/dist/cjs/utils/filepath.js +39 -22
  47. package/dist/cjs/utils/html.js +54 -33
  48. package/dist/cjs/utils/http-status.js +68 -45
  49. package/dist/cjs/utils/json.js +91 -76
  50. package/dist/cjs/utils/jwt/index.js +32 -25
  51. package/dist/cjs/utils/jwt/jwt.js +124 -93
  52. package/dist/cjs/utils/jwt/types.js +65 -38
  53. package/dist/cjs/utils/mime.js +110 -87
  54. package/dist/cjs/utils/object.js +53 -35
  55. package/dist/cjs/utils/types.js +15 -1
  56. package/dist/cjs/utils/url.js +89 -78
  57. package/dist/cjs/validator/rule.js +78 -64
  58. package/dist/cjs/validator/sanitizer.js +28 -4
  59. package/dist/cjs/validator/schema.js +15 -1
  60. package/dist/cjs/validator/validator.js +405 -386
  61. package/dist/compose.d.ts +1 -1
  62. package/dist/compose.js +61 -64
  63. package/dist/context.d.ts +4 -4
  64. package/dist/context.js +139 -143
  65. package/dist/hono.d.ts +1 -17
  66. package/dist/hono.js +153 -149
  67. package/dist/index.d.ts +3 -1
  68. package/dist/index.js +9 -9
  69. package/dist/middleware/basic-auth/index.d.ts +1 -1
  70. package/dist/middleware/basic-auth/index.js +52 -40
  71. package/dist/middleware/bearer-auth/index.d.ts +1 -1
  72. package/dist/middleware/bearer-auth/index.js +48 -49
  73. package/dist/middleware/cache/index.d.ts +1 -1
  74. package/dist/middleware/cache/index.js +28 -26
  75. package/dist/middleware/compress/index.d.ts +1 -1
  76. package/dist/middleware/compress/index.js +18 -14
  77. package/dist/middleware/cors/index.d.ts +1 -1
  78. package/dist/middleware/cors/index.js +68 -69
  79. package/dist/middleware/etag/index.d.ts +1 -1
  80. package/dist/middleware/etag/index.js +25 -22
  81. package/dist/middleware/html/index.js +29 -28
  82. package/dist/middleware/jsx/index.js +164 -172
  83. package/dist/middleware/jsx/jsx-dev-runtime.js +9 -5
  84. package/dist/middleware/jsx/jsx-runtime.js +7 -2
  85. package/dist/middleware/jwt/index.d.ts +1 -1
  86. package/dist/middleware/jwt/index.js +53 -52
  87. package/dist/middleware/logger/index.d.ts +1 -1
  88. package/dist/middleware/logger/index.js +35 -39
  89. package/dist/middleware/powered-by/index.d.ts +1 -1
  90. package/dist/middleware/powered-by/index.js +9 -5
  91. package/dist/middleware/pretty-json/index.d.ts +1 -1
  92. package/dist/middleware/pretty-json/index.js +10 -6
  93. package/dist/middleware/serve-static/bun.d.ts +1 -1
  94. package/dist/middleware/serve-static/bun.js +35 -36
  95. package/dist/middleware/serve-static/index.js +5 -1
  96. package/dist/middleware/serve-static/{module.d.mts → module.d.ts} +1 -1
  97. package/dist/middleware/serve-static/module.js +13 -0
  98. package/dist/middleware/serve-static/serve-static.d.ts +1 -1
  99. package/dist/middleware/serve-static/serve-static.js +36 -36
  100. package/dist/middleware/validator/index.js +5 -2
  101. package/dist/middleware/validator/middleware.d.ts +1 -1
  102. package/dist/middleware/validator/middleware.js +104 -89
  103. package/dist/request.js +108 -114
  104. package/dist/router/reg-exp-router/index.js +5 -1
  105. package/dist/router/reg-exp-router/node.js +87 -96
  106. package/dist/router/reg-exp-router/router.js +140 -142
  107. package/dist/router/reg-exp-router/trie.js +35 -38
  108. package/dist/router/smart-router/index.js +5 -1
  109. package/dist/router/smart-router/router.js +50 -48
  110. package/dist/router/static-router/index.js +5 -1
  111. package/dist/router/static-router/router.js +58 -63
  112. package/dist/router/trie-router/index.js +5 -1
  113. package/dist/router/trie-router/node.js +147 -158
  114. package/dist/router/trie-router/router.js +23 -19
  115. package/dist/router.js +12 -5
  116. package/dist/types.d.ts +22 -0
  117. package/dist/types.js +0 -0
  118. package/dist/utils/body.js +15 -13
  119. package/dist/utils/buffer.js +35 -29
  120. package/dist/utils/cloudflare.js +32 -32
  121. package/dist/utils/cookie.js +38 -33
  122. package/dist/utils/crypto.js +48 -41
  123. package/dist/utils/encode.js +70 -62
  124. package/dist/utils/filepath.js +18 -20
  125. package/dist/utils/html.js +34 -32
  126. package/dist/utils/http-status.js +48 -44
  127. package/dist/utils/json.js +71 -75
  128. package/dist/utils/jwt/index.js +5 -1
  129. package/dist/utils/jwt/jwt.js +95 -90
  130. package/dist/utils/jwt/types.js +47 -41
  131. package/dist/utils/mime.js +90 -86
  132. package/dist/utils/object.js +31 -32
  133. package/dist/utils/types.js +0 -1
  134. package/dist/utils/url.js +69 -77
  135. package/dist/validator/rule.js +56 -62
  136. package/dist/validator/sanitizer.js +6 -2
  137. package/dist/validator/schema.js +0 -1
  138. package/dist/validator/validator.d.ts +5 -4
  139. package/dist/validator/validator.js +393 -393
  140. package/package.json +14 -8
  141. package/dist/middleware/serve-static/module.mjs +0 -13
@@ -1,83 +1,79 @@
1
- const JSONPathCopyInternal = (src, dst, parts, results) => {
2
- let srcVal = src;
3
- let dstVal = dst;
4
- const length = parts.length;
5
- for (let i = 0; i < length && srcVal !== undefined && dstVal; i++) {
6
- const p = parts[i];
7
- if (typeof srcVal !== 'object') {
8
- return srcVal;
9
- }
10
- if (srcVal === null) {
11
- return undefined;
12
- }
13
- if (p === '*') {
14
- const restParts = parts.slice(i + 1);
15
- const restLength = srcVal.length;
16
- if (restLength === undefined) {
17
- parts = Object.keys(srcVal);
18
- for (const p of parts) {
19
- const srcVal2 = srcVal;
20
- const dst2 = {};
21
- JSONPathCopyInternal(srcVal2, dst2, [p], results);
22
- dstVal[p] = dst2[p];
23
- }
24
- }
25
- else {
26
- const res = [];
27
- for (let i2 = 0; i2 < restLength; i2++) {
28
- if (typeof srcVal[i2] !== 'object' || srcVal[i2] === undefined) {
29
- res.push(srcVal[i2]);
30
- }
31
- else {
32
- const srcVal2 = srcVal[i2];
33
- const dst2 = {};
34
- const res2 = JSONPathCopyInternal(srcVal2, dst2, restParts, results);
35
- if (res2 === undefined)
36
- results.push(undefined);
37
- dstVal[i2] = dst2;
38
- }
39
- }
40
- if (res.length) {
41
- Object.assign(dstVal, srcVal);
42
- results.push(...res);
43
- }
44
- }
45
- return results;
46
- }
47
- if (typeof srcVal[p] === 'object') {
48
- // eslint-disable-next-line @typescript-eslint/ban-ts-comment
49
- // @ts-ignore
50
- dstVal[p] || (dstVal[p] = new srcVal[p].constructor());
1
+ // src/utils/json.ts
2
+ var JSONPathCopyInternal = (src, dst, parts, results) => {
3
+ let srcVal = src;
4
+ let dstVal = dst;
5
+ const length = parts.length;
6
+ for (let i = 0; i < length && srcVal !== void 0 && dstVal; i++) {
7
+ const p = parts[i];
8
+ if (typeof srcVal !== "object") {
9
+ return srcVal;
10
+ }
11
+ if (srcVal === null) {
12
+ return void 0;
13
+ }
14
+ if (p === "*") {
15
+ const restParts = parts.slice(i + 1);
16
+ const restLength = srcVal.length;
17
+ if (restLength === void 0) {
18
+ parts = Object.keys(srcVal);
19
+ for (const p2 of parts) {
20
+ const srcVal2 = srcVal;
21
+ const dst2 = {};
22
+ JSONPathCopyInternal(srcVal2, dst2, [p2], results);
23
+ dstVal[p2] = dst2[p2];
51
24
  }
52
- else if (typeof srcVal[p] !== 'undefined') {
53
- dstVal[p] = srcVal[p];
25
+ } else {
26
+ const res = [];
27
+ for (let i2 = 0; i2 < restLength; i2++) {
28
+ if (typeof srcVal[i2] !== "object" || srcVal[i2] === void 0) {
29
+ res.push(srcVal[i2]);
30
+ } else {
31
+ const srcVal2 = srcVal[i2];
32
+ const dst2 = {};
33
+ const res2 = JSONPathCopyInternal(srcVal2, dst2, restParts, results);
34
+ if (res2 === void 0)
35
+ results.push(void 0);
36
+ dstVal[i2] = dst2;
37
+ }
54
38
  }
55
- else {
56
- return undefined;
39
+ if (res.length) {
40
+ Object.assign(dstVal, srcVal);
41
+ results.push(...res);
57
42
  }
58
- srcVal = srcVal[p];
59
- dstVal = dstVal[p];
43
+ }
44
+ return results;
60
45
  }
61
- if (typeof srcVal === 'object' && dstVal) {
62
- Object.assign(dstVal, srcVal);
46
+ if (typeof srcVal[p] === "object") {
47
+ dstVal[p] || (dstVal[p] = new srcVal[p].constructor());
48
+ } else if (typeof srcVal[p] !== "undefined") {
49
+ dstVal[p] = srcVal[p];
50
+ } else {
51
+ return void 0;
63
52
  }
64
- results.push(srcVal);
65
- return results;
53
+ srcVal = srcVal[p];
54
+ dstVal = dstVal[p];
55
+ }
56
+ if (typeof srcVal === "object" && dstVal) {
57
+ Object.assign(dstVal, srcVal);
58
+ }
59
+ results.push(srcVal);
60
+ return results;
66
61
  };
67
- export const JSONPathCopy = (src, dst, path) => {
68
- const results = [];
69
- const parts = path.replace(/\.?\[(.*?)\]/g, '.$1').split(/\./);
70
- try {
71
- JSONPathCopyInternal(src, dst, parts, results);
72
- if (results.length === 0) {
73
- return undefined;
74
- }
75
- else if (results.length === 1 && !parts.includes('*')) {
76
- return results[0];
77
- }
78
- return results;
79
- }
80
- catch (e) {
81
- return undefined;
62
+ var JSONPathCopy = (src, dst, path) => {
63
+ const results = [];
64
+ const parts = path.replace(/\.?\[(.*?)\]/g, ".$1").split(/\./);
65
+ try {
66
+ JSONPathCopyInternal(src, dst, parts, results);
67
+ if (results.length === 0) {
68
+ return void 0;
69
+ } else if (results.length === 1 && !parts.includes("*")) {
70
+ return results[0];
82
71
  }
72
+ return results;
73
+ } catch (e) {
74
+ return void 0;
75
+ }
76
+ };
77
+ export {
78
+ JSONPathCopy
83
79
  };
@@ -1 +1,5 @@
1
- export * as Jwt from './jwt';
1
+ // src/utils/jwt/index.ts
2
+ import * as Jwt from "./jwt.js";
3
+ export {
4
+ Jwt
5
+ };
@@ -1,95 +1,100 @@
1
- import { utf8ToUint8Array, encodeBase64URL, arrayBufferToBase64URL, decodeBase64URL, } from '../../utils/encode';
2
- import { AlgorithmTypes } from './types';
3
- import { JwtTokenInvalid, JwtTokenNotBefore, JwtTokenExpired, JwtTokenSignatureMismatched, JwtAlgorithmNotImplemented, } from './types';
4
- var CryptoKeyFormat;
5
- (function (CryptoKeyFormat) {
6
- CryptoKeyFormat["RAW"] = "raw";
7
- CryptoKeyFormat["PKCS8"] = "pkcs8";
8
- CryptoKeyFormat["SPKI"] = "spki";
9
- CryptoKeyFormat["JWK"] = "jwk";
10
- })(CryptoKeyFormat || (CryptoKeyFormat = {}));
11
- var CryptoKeyUsage;
12
- (function (CryptoKeyUsage) {
13
- CryptoKeyUsage["Ecrypt"] = "encrypt";
14
- CryptoKeyUsage["Decrypt"] = "decrypt";
15
- CryptoKeyUsage["Sign"] = "sign";
16
- CryptoKeyUsage["Verify"] = "verify";
17
- CryptoKeyUsage["Deriverkey"] = "deriveKey";
18
- CryptoKeyUsage["DeriveBits"] = "deriveBits";
19
- CryptoKeyUsage["WrapKey"] = "wrapKey";
20
- CryptoKeyUsage["UnwrapKey"] = "unwrapKey";
21
- })(CryptoKeyUsage || (CryptoKeyUsage = {}));
22
- const param = (name) => {
23
- switch (name.toUpperCase()) {
24
- case 'HS256':
25
- return {
26
- name: 'HMAC',
27
- hash: {
28
- name: 'SHA-256',
29
- },
30
- };
31
- case 'HS384':
32
- return {
33
- name: 'HMAC',
34
- hash: {
35
- name: 'SHA-384',
36
- },
37
- };
38
- case 'HS512':
39
- return {
40
- name: 'HMAC',
41
- hash: {
42
- name: 'SHA-512',
43
- },
44
- };
45
- default:
46
- throw new JwtAlgorithmNotImplemented(name);
47
- }
1
+ // src/utils/jwt/jwt.ts
2
+ import {
3
+ utf8ToUint8Array,
4
+ encodeBase64URL,
5
+ arrayBufferToBase64URL,
6
+ decodeBase64URL
7
+ } from "../../utils/encode.js";
8
+ import { AlgorithmTypes } from "./types.js";
9
+ import {
10
+ JwtTokenInvalid,
11
+ JwtTokenNotBefore,
12
+ JwtTokenExpired,
13
+ JwtTokenSignatureMismatched,
14
+ JwtAlgorithmNotImplemented
15
+ } from "./types.js";
16
+ var param = (name) => {
17
+ switch (name.toUpperCase()) {
18
+ case "HS256":
19
+ return {
20
+ name: "HMAC",
21
+ hash: {
22
+ name: "SHA-256"
23
+ }
24
+ };
25
+ case "HS384":
26
+ return {
27
+ name: "HMAC",
28
+ hash: {
29
+ name: "SHA-384"
30
+ }
31
+ };
32
+ case "HS512":
33
+ return {
34
+ name: "HMAC",
35
+ hash: {
36
+ name: "SHA-512"
37
+ }
38
+ };
39
+ default:
40
+ throw new JwtAlgorithmNotImplemented(name);
41
+ }
48
42
  };
49
- const signing = async (data, secret, alg = AlgorithmTypes.HS256) => {
50
- if (!crypto.subtle || !crypto.subtle.importKey) {
51
- throw new Error('`crypto.subtle.importKey` is undefined. JWT auth middleware requires it.');
52
- }
53
- const cryptoKey = await crypto.subtle.importKey(CryptoKeyFormat.RAW, utf8ToUint8Array(secret), param(alg), false, [CryptoKeyUsage.Sign]);
54
- return await crypto.subtle.sign(param(alg), cryptoKey, utf8ToUint8Array(data));
43
+ var signing = async (data, secret, alg = AlgorithmTypes.HS256) => {
44
+ if (!crypto.subtle || !crypto.subtle.importKey) {
45
+ throw new Error("`crypto.subtle.importKey` is undefined. JWT auth middleware requires it.");
46
+ }
47
+ const cryptoKey = await crypto.subtle.importKey(
48
+ "raw" /* RAW */,
49
+ utf8ToUint8Array(secret),
50
+ param(alg),
51
+ false,
52
+ ["sign" /* Sign */]
53
+ );
54
+ return await crypto.subtle.sign(param(alg), cryptoKey, utf8ToUint8Array(data));
55
55
  };
56
- export const sign = async (payload, secret, alg = AlgorithmTypes.HS256) => {
57
- const encodedPayload = await encodeBase64URL(JSON.stringify(payload));
58
- const encodedHeader = await encodeBase64URL(JSON.stringify({ alg, typ: 'JWT' }));
59
- const partialToken = `${encodedHeader}.${encodedPayload}`;
60
- const signature = await arrayBufferToBase64URL(await signing(partialToken, secret, alg));
61
- return `${partialToken}.${signature}`;
56
+ var sign = async (payload, secret, alg = AlgorithmTypes.HS256) => {
57
+ const encodedPayload = await encodeBase64URL(JSON.stringify(payload));
58
+ const encodedHeader = await encodeBase64URL(JSON.stringify({ alg, typ: "JWT" }));
59
+ const partialToken = `${encodedHeader}.${encodedPayload}`;
60
+ const signature = await arrayBufferToBase64URL(await signing(partialToken, secret, alg));
61
+ return `${partialToken}.${signature}`;
62
62
  };
63
- export const verify = async (token, secret, alg = AlgorithmTypes.HS256) => {
64
- const tokenParts = token.split('.');
65
- if (tokenParts.length !== 3) {
66
- throw new JwtTokenInvalid(token);
67
- }
68
- const { payload } = decode(token);
69
- if (payload.nbf && payload.nbf > Math.floor(Date.now() / 1000)) {
70
- throw new JwtTokenNotBefore(token);
71
- }
72
- if (payload.exp && payload.exp <= Math.floor(Date.now() / 1000)) {
73
- throw new JwtTokenExpired(token);
74
- }
75
- const signature = await arrayBufferToBase64URL(await signing(tokenParts.slice(0, 2).join('.'), secret, alg));
76
- if (signature !== tokenParts[2]) {
77
- throw new JwtTokenSignatureMismatched(token);
78
- }
79
- return true;
63
+ var verify = async (token, secret, alg = AlgorithmTypes.HS256) => {
64
+ const tokenParts = token.split(".");
65
+ if (tokenParts.length !== 3) {
66
+ throw new JwtTokenInvalid(token);
67
+ }
68
+ const { payload } = decode(token);
69
+ if (payload.nbf && payload.nbf > Math.floor(Date.now() / 1e3)) {
70
+ throw new JwtTokenNotBefore(token);
71
+ }
72
+ if (payload.exp && payload.exp <= Math.floor(Date.now() / 1e3)) {
73
+ throw new JwtTokenExpired(token);
74
+ }
75
+ const signature = await arrayBufferToBase64URL(
76
+ await signing(tokenParts.slice(0, 2).join("."), secret, alg)
77
+ );
78
+ if (signature !== tokenParts[2]) {
79
+ throw new JwtTokenSignatureMismatched(token);
80
+ }
81
+ return true;
80
82
  };
81
- // eslint-disable-next-line
82
- export const decode = (token) => {
83
- try {
84
- const [h, p] = token.split('.');
85
- const header = JSON.parse(decodeBase64URL(h));
86
- const payload = JSON.parse(decodeBase64URL(p));
87
- return {
88
- header,
89
- payload,
90
- };
91
- }
92
- catch (e) {
93
- throw new JwtTokenInvalid(token);
94
- }
83
+ var decode = (token) => {
84
+ try {
85
+ const [h, p] = token.split(".");
86
+ const header = JSON.parse(decodeBase64URL(h));
87
+ const payload = JSON.parse(decodeBase64URL(p));
88
+ return {
89
+ header,
90
+ payload
91
+ };
92
+ } catch (e) {
93
+ throw new JwtTokenInvalid(token);
94
+ }
95
+ };
96
+ export {
97
+ decode,
98
+ sign,
99
+ verify
95
100
  };
@@ -1,41 +1,47 @@
1
- export class JwtAlgorithmNotImplemented extends Error {
2
- constructor(token) {
3
- super(`invalid JWT token: ${token}`);
4
- this.name = 'JwtAlgorithmNotImplemented';
5
- }
6
- }
7
- /**
8
- * Export for backward compatibility
9
- * @deprecated Use JwtAlgorithmNotImplemented instead
10
- **/
11
- export const JwtAlorithmNotImplemented = JwtAlgorithmNotImplemented;
12
- export class JwtTokenInvalid extends Error {
13
- constructor(token) {
14
- super(`invalid JWT token: ${token}`);
15
- this.name = 'JwtTokenInvalid';
16
- }
17
- }
18
- export class JwtTokenNotBefore extends Error {
19
- constructor(token) {
20
- super(`token (${token}) is being used before it's valid`);
21
- this.name = 'JwtTokenNotBefore';
22
- }
23
- }
24
- export class JwtTokenExpired extends Error {
25
- constructor(token) {
26
- super(`token (${token}) expired`);
27
- this.name = 'JwtTokenExpired';
28
- }
29
- }
30
- export class JwtTokenSignatureMismatched extends Error {
31
- constructor(token) {
32
- super(`token(${token}) signature mismatched`);
33
- this.name = 'JwtTokenSignatureMismatched';
34
- }
35
- }
36
- export var AlgorithmTypes;
37
- (function (AlgorithmTypes) {
38
- AlgorithmTypes["HS256"] = "HS256";
39
- AlgorithmTypes["HS384"] = "HS384";
40
- AlgorithmTypes["HS512"] = "HS512";
41
- })(AlgorithmTypes || (AlgorithmTypes = {}));
1
+ // src/utils/jwt/types.ts
2
+ var JwtAlgorithmNotImplemented = class extends Error {
3
+ constructor(token) {
4
+ super(`invalid JWT token: ${token}`);
5
+ this.name = "JwtAlgorithmNotImplemented";
6
+ }
7
+ };
8
+ var JwtAlorithmNotImplemented = JwtAlgorithmNotImplemented;
9
+ var JwtTokenInvalid = class extends Error {
10
+ constructor(token) {
11
+ super(`invalid JWT token: ${token}`);
12
+ this.name = "JwtTokenInvalid";
13
+ }
14
+ };
15
+ var JwtTokenNotBefore = class extends Error {
16
+ constructor(token) {
17
+ super(`token (${token}) is being used before it's valid`);
18
+ this.name = "JwtTokenNotBefore";
19
+ }
20
+ };
21
+ var JwtTokenExpired = class extends Error {
22
+ constructor(token) {
23
+ super(`token (${token}) expired`);
24
+ this.name = "JwtTokenExpired";
25
+ }
26
+ };
27
+ var JwtTokenSignatureMismatched = class extends Error {
28
+ constructor(token) {
29
+ super(`token(${token}) signature mismatched`);
30
+ this.name = "JwtTokenSignatureMismatched";
31
+ }
32
+ };
33
+ var AlgorithmTypes = /* @__PURE__ */ ((AlgorithmTypes2) => {
34
+ AlgorithmTypes2["HS256"] = "HS256";
35
+ AlgorithmTypes2["HS384"] = "HS384";
36
+ AlgorithmTypes2["HS512"] = "HS512";
37
+ return AlgorithmTypes2;
38
+ })(AlgorithmTypes || {});
39
+ export {
40
+ AlgorithmTypes,
41
+ JwtAlgorithmNotImplemented,
42
+ JwtAlorithmNotImplemented,
43
+ JwtTokenExpired,
44
+ JwtTokenInvalid,
45
+ JwtTokenNotBefore,
46
+ JwtTokenSignatureMismatched
47
+ };
@@ -1,88 +1,92 @@
1
- export const getMimeType = (filename) => {
2
- const regexp = /\.([a-zA-Z0-9]+?)$/;
3
- const match = filename.match(regexp);
4
- if (!match)
5
- return;
6
- let mimeType = mimes[match[1]];
7
- if ((mimeType && mimeType.startsWith('text')) || mimeType === 'application/json') {
8
- mimeType += '; charset=utf-8';
9
- }
10
- return mimeType;
1
+ // src/utils/mime.ts
2
+ var getMimeType = (filename) => {
3
+ const regexp = /\.([a-zA-Z0-9]+?)$/;
4
+ const match = filename.match(regexp);
5
+ if (!match)
6
+ return;
7
+ let mimeType = mimes[match[1]];
8
+ if (mimeType && mimeType.startsWith("text") || mimeType === "application/json") {
9
+ mimeType += "; charset=utf-8";
10
+ }
11
+ return mimeType;
11
12
  };
12
- const mimes = {
13
- aac: 'audio/aac',
14
- abw: 'application/x-abiword',
15
- arc: 'application/x-freearc',
16
- avi: 'video/x-msvideo',
17
- azw: 'application/vnd.amazon.ebook',
18
- bin: 'application/octet-stream',
19
- bmp: 'image/bmp',
20
- bz: 'application/x-bzip',
21
- bz2: 'application/x-bzip2',
22
- csh: 'application/x-csh',
23
- css: 'text/css',
24
- csv: 'text/csv',
25
- doc: 'application/msword',
26
- docx: 'application/vnd.openxmlformats-officedocument.wordprocessingml.document',
27
- eot: 'application/vnd.ms-fontobject',
28
- epub: 'application/epub+zip',
29
- gz: 'application/gzip',
30
- gif: 'image/gif',
31
- htm: 'text/html',
32
- html: 'text/html',
33
- ico: 'image/x-icon',
34
- ics: 'text/calendar',
35
- jar: 'application/java-archive',
36
- jpeg: 'image/jpeg',
37
- jpg: 'image/jpeg',
38
- js: 'text/javascript',
39
- json: 'application/json',
40
- jsonld: 'application/ld+json',
41
- map: 'application/json',
42
- mid: 'audio/x-midi',
43
- midi: 'audio/x-midi',
44
- mjs: 'text/javascript',
45
- mp3: 'audio/mpeg',
46
- mpeg: 'video/mpeg',
47
- mpkg: 'application/vnd.apple.installer+xml',
48
- odp: 'application/vnd.oasis.opendocument.presentation',
49
- ods: 'application/vnd.oasis.opendocument.spreadsheet',
50
- odt: 'application/vnd.oasis.opendocument.text',
51
- oga: 'audio/ogg',
52
- ogv: 'video/ogg',
53
- ogx: 'application/ogg',
54
- opus: 'audio/opus',
55
- otf: 'font/otf',
56
- png: 'image/png',
57
- pdf: 'application/pdf',
58
- php: 'application/php',
59
- ppt: 'application/vnd.ms-powerpoint',
60
- pptx: 'application/vnd.openxmlformats-officedocument.presentationml.presentation',
61
- rar: 'application/vnd.rar',
62
- rtf: 'application/rtf',
63
- sh: 'application/x-sh',
64
- svg: 'image/svg+xml',
65
- swf: 'application/x-shockwave-flash',
66
- tar: 'application/x-tar',
67
- tif: 'image/tiff',
68
- tiff: 'image/tiff',
69
- ts: 'video/mp2t',
70
- ttf: 'font/ttf',
71
- txt: 'text/plain',
72
- vsd: 'application/vnd.visio',
73
- wav: 'audio/wav',
74
- weba: 'audio/webm',
75
- webm: 'video/webm',
76
- webp: 'image/webp',
77
- woff: 'font/woff',
78
- woff2: 'font/woff2',
79
- xhtml: 'application/xhtml+xml',
80
- xls: 'application/vnd.ms-excel',
81
- xlsx: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',
82
- xml: 'application/xml',
83
- xul: 'application/vnd.mozilla.xul+xml',
84
- zip: 'application/zip',
85
- '3gp': 'video/3gpp',
86
- '3g2': 'video/3gpp2',
87
- '7z': 'application/x-7z-compressed',
13
+ var mimes = {
14
+ aac: "audio/aac",
15
+ abw: "application/x-abiword",
16
+ arc: "application/x-freearc",
17
+ avi: "video/x-msvideo",
18
+ azw: "application/vnd.amazon.ebook",
19
+ bin: "application/octet-stream",
20
+ bmp: "image/bmp",
21
+ bz: "application/x-bzip",
22
+ bz2: "application/x-bzip2",
23
+ csh: "application/x-csh",
24
+ css: "text/css",
25
+ csv: "text/csv",
26
+ doc: "application/msword",
27
+ docx: "application/vnd.openxmlformats-officedocument.wordprocessingml.document",
28
+ eot: "application/vnd.ms-fontobject",
29
+ epub: "application/epub+zip",
30
+ gz: "application/gzip",
31
+ gif: "image/gif",
32
+ htm: "text/html",
33
+ html: "text/html",
34
+ ico: "image/x-icon",
35
+ ics: "text/calendar",
36
+ jar: "application/java-archive",
37
+ jpeg: "image/jpeg",
38
+ jpg: "image/jpeg",
39
+ js: "text/javascript",
40
+ json: "application/json",
41
+ jsonld: "application/ld+json",
42
+ map: "application/json",
43
+ mid: "audio/x-midi",
44
+ midi: "audio/x-midi",
45
+ mjs: "text/javascript",
46
+ mp3: "audio/mpeg",
47
+ mpeg: "video/mpeg",
48
+ mpkg: "application/vnd.apple.installer+xml",
49
+ odp: "application/vnd.oasis.opendocument.presentation",
50
+ ods: "application/vnd.oasis.opendocument.spreadsheet",
51
+ odt: "application/vnd.oasis.opendocument.text",
52
+ oga: "audio/ogg",
53
+ ogv: "video/ogg",
54
+ ogx: "application/ogg",
55
+ opus: "audio/opus",
56
+ otf: "font/otf",
57
+ png: "image/png",
58
+ pdf: "application/pdf",
59
+ php: "application/php",
60
+ ppt: "application/vnd.ms-powerpoint",
61
+ pptx: "application/vnd.openxmlformats-officedocument.presentationml.presentation",
62
+ rar: "application/vnd.rar",
63
+ rtf: "application/rtf",
64
+ sh: "application/x-sh",
65
+ svg: "image/svg+xml",
66
+ swf: "application/x-shockwave-flash",
67
+ tar: "application/x-tar",
68
+ tif: "image/tiff",
69
+ tiff: "image/tiff",
70
+ ts: "video/mp2t",
71
+ ttf: "font/ttf",
72
+ txt: "text/plain",
73
+ vsd: "application/vnd.visio",
74
+ wav: "audio/wav",
75
+ weba: "audio/webm",
76
+ webm: "video/webm",
77
+ webp: "image/webp",
78
+ woff: "font/woff",
79
+ woff2: "font/woff2",
80
+ xhtml: "application/xhtml+xml",
81
+ xls: "application/vnd.ms-excel",
82
+ xlsx: "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",
83
+ xml: "application/xml",
84
+ xul: "application/vnd.mozilla.xul+xml",
85
+ zip: "application/zip",
86
+ "3gp": "video/3gpp",
87
+ "3g2": "video/3gpp2",
88
+ "7z": "application/x-7z-compressed"
89
+ };
90
+ export {
91
+ getMimeType
88
92
  };