@20syldev/api 4.3.0 → 4.5.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/README.md +3 -3
- package/dist/config/env.js +5 -1
- package/dist/config/env.js.map +1 -1
- package/dist/config/plans.js +44 -0
- package/dist/config/plans.js.map +1 -0
- package/dist/config/versions.js +10 -0
- package/dist/config/versions.js.map +1 -1
- package/dist/constants.js +1 -2
- package/dist/constants.js.map +1 -1
- package/dist/middleware/cors.js +7 -2
- package/dist/middleware/cors.js.map +1 -1
- package/dist/middleware/error.js +3 -1
- package/dist/middleware/error.js.map +1 -1
- package/dist/middleware/ratelimit.js +39 -21
- package/dist/middleware/ratelimit.js.map +1 -1
- package/dist/modules/v4/captcha.js +60 -23
- package/dist/modules/v4/captcha.js.map +1 -1
- package/dist/modules/v4/chat.js +1 -1
- package/dist/modules/v4/chat.js.map +1 -1
- package/dist/modules/v4/color.js +44 -35
- package/dist/modules/v4/color.js.map +1 -1
- package/dist/modules/v4/colors.js +54 -0
- package/dist/modules/v4/colors.js.map +1 -0
- package/dist/modules/v4/convert.js +93 -19
- package/dist/modules/v4/convert.js.map +1 -1
- package/dist/modules/v4/domain.js +1 -1
- package/dist/modules/v4/domain.js.map +1 -1
- package/dist/modules/v4/hash.js +11 -4
- package/dist/modules/v4/hash.js.map +1 -1
- package/dist/modules/v4/hyperplanning.js +32 -2
- package/dist/modules/v4/hyperplanning.js.map +1 -1
- package/dist/modules/v4/palette.js +2 -43
- package/dist/modules/v4/palette.js.map +1 -1
- package/dist/modules/v4/personal.js +1 -1
- package/dist/modules/v4/personal.js.map +1 -1
- package/dist/modules/v4/placeholder.js +5 -10
- package/dist/modules/v4/placeholder.js.map +1 -1
- package/dist/modules/v4/qrcode.js +79 -6
- package/dist/modules/v4/qrcode.js.map +1 -1
- package/dist/modules/v4/username.js +1 -1
- package/dist/modules/v4/username.js.map +1 -1
- package/dist/routes/delete.js +14 -14
- package/dist/routes/delete.js.map +1 -1
- package/dist/routes/get.js +73 -17
- package/dist/routes/get.js.map +1 -1
- package/dist/routes/post.js +11 -3
- package/dist/routes/post.js.map +1 -1
- package/dist/utils/colors.js +93 -0
- package/dist/utils/colors.js.map +1 -0
- package/dist/utils/helpers.js +77 -0
- package/dist/utils/helpers.js.map +1 -0
- package/dist/utils/response.js +18 -2
- package/dist/utils/response.js.map +1 -1
- package/package.json +1 -1
- package/src/config/env.ts +6 -1
- package/src/config/plans.ts +61 -0
- package/src/config/versions.ts +10 -0
- package/src/constants.ts +1 -2
- package/src/middleware/cors.ts +8 -2
- package/src/middleware/error.ts +10 -2
- package/src/middleware/ratelimit.ts +42 -20
- package/src/modules/v4/captcha.ts +84 -27
- package/src/modules/v4/chat.ts +1 -1
- package/src/modules/v4/color.ts +56 -52
- package/src/modules/v4/convert.ts +100 -20
- package/src/modules/v4/domain.ts +1 -1
- package/src/modules/v4/hash.ts +18 -4
- package/src/modules/v4/hyperplanning.ts +28 -2
- package/src/modules/v4/palette.ts +3 -43
- package/src/modules/v4/personal.ts +1 -1
- package/src/modules/v4/placeholder.ts +6 -9
- package/src/modules/v4/qrcode.ts +108 -6
- package/src/modules/v4/username.ts +1 -1
- package/src/routes/get.ts +75 -19
- package/src/routes/post.ts +11 -3
- package/src/utils/colors.ts +91 -0
- package/src/utils/helpers.ts +90 -0
- package/src/utils/response.ts +18 -2
- package/tests/integration/api.test.ts +89 -7
- package/tests/unit/captcha.test.ts +50 -12
- package/tests/unit/chat.test.ts +4 -1
- package/tests/unit/color.test.ts +24 -4
- package/tests/unit/convert.test.ts +26 -1
- package/tests/unit/hash.test.ts +17 -10
- package/tests/unit/hyperplanning.test.ts +19 -0
- package/tests/unit/qrcode.test.ts +72 -4
- package/tests/unit/tic_tac_toe.test.ts +4 -1
- package/src/modules/v4/utils.ts +0 -38
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
export function hexToRgb(hex) {
|
|
2
|
+
const clean = hex.replace('#', '');
|
|
3
|
+
if (!/^[0-9a-fA-F]{6}$/.test(clean))
|
|
4
|
+
throw new Error('Invalid HEX color (use #RRGGBB)');
|
|
5
|
+
return [parseInt(clean.slice(0, 2), 16), parseInt(clean.slice(2, 4), 16), parseInt(clean.slice(4, 6), 16)];
|
|
6
|
+
}
|
|
7
|
+
export function rgbToHsl(r, g, b) {
|
|
8
|
+
const r1 = r / 255, g1 = g / 255, b1 = b / 255;
|
|
9
|
+
const max = Math.max(r1, g1, b1), min = Math.min(r1, g1, b1);
|
|
10
|
+
const l = (max + min) / 2;
|
|
11
|
+
if (max === min)
|
|
12
|
+
return [0, 0, l];
|
|
13
|
+
const d = max - min;
|
|
14
|
+
const s = l > 0.5 ? d / (2 - max - min) : d / (max + min);
|
|
15
|
+
let h = 0;
|
|
16
|
+
if (max === r1)
|
|
17
|
+
h = (g1 - b1) / d + (g1 < b1 ? 6 : 0);
|
|
18
|
+
else if (max === g1)
|
|
19
|
+
h = (b1 - r1) / d + 2;
|
|
20
|
+
else
|
|
21
|
+
h = (r1 - g1) / d + 4;
|
|
22
|
+
return [(h * 60 + 360) % 360, s, l];
|
|
23
|
+
}
|
|
24
|
+
export function hslToRgb(h, s, l) {
|
|
25
|
+
const c = (1 - Math.abs(2 * l - 1)) * s;
|
|
26
|
+
const x = c * (1 - Math.abs(((h / 60) % 2) - 1));
|
|
27
|
+
const m = l - c / 2;
|
|
28
|
+
let r1 = 0, g1 = 0, b1 = 0;
|
|
29
|
+
if (h < 60)
|
|
30
|
+
[r1, g1, b1] = [c, x, 0];
|
|
31
|
+
else if (h < 120)
|
|
32
|
+
[r1, g1, b1] = [x, c, 0];
|
|
33
|
+
else if (h < 180)
|
|
34
|
+
[r1, g1, b1] = [0, c, x];
|
|
35
|
+
else if (h < 240)
|
|
36
|
+
[r1, g1, b1] = [0, x, c];
|
|
37
|
+
else if (h < 300)
|
|
38
|
+
[r1, g1, b1] = [x, 0, c];
|
|
39
|
+
else
|
|
40
|
+
[r1, g1, b1] = [c, 0, x];
|
|
41
|
+
return [Math.round((r1 + m) * 255), Math.round((g1 + m) * 255), Math.round((b1 + m) * 255)];
|
|
42
|
+
}
|
|
43
|
+
export function rgbToHex(r, g, b) {
|
|
44
|
+
return `#${[r, g, b].map((x) => x.toString(16).padStart(2, '0')).join('')}`;
|
|
45
|
+
}
|
|
46
|
+
export function normalizeColor(value, def) {
|
|
47
|
+
if (!value)
|
|
48
|
+
return def;
|
|
49
|
+
const clean = value.startsWith('#') ? value : `#${value}`;
|
|
50
|
+
if (!/^#([0-9a-fA-F]{3}){1,2}$/.test(clean))
|
|
51
|
+
throw new Error('Invalid color (use hex like ff6600)');
|
|
52
|
+
return clean;
|
|
53
|
+
}
|
|
54
|
+
//# sourceMappingURL=colors.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"colors.js","sourceRoot":"","sources":["../../../src/modules/v4/colors.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,33 +1,107 @@
|
|
|
1
|
-
|
|
1
|
+
const TEMPERATURE_UNITS = new Set(['celsius', 'fahrenheit', 'kelvin']);
|
|
2
|
+
const ABSOLUTE_ZERO = { celsius: -273.15, fahrenheit: -459.67, kelvin: 0 };
|
|
2
3
|
const conversions = {
|
|
4
|
+
// Temperature
|
|
3
5
|
celsius: {
|
|
4
|
-
fahrenheit: (
|
|
5
|
-
kelvin: (
|
|
6
|
+
fahrenheit: (v) => (v * 9) / 5 + 32,
|
|
7
|
+
kelvin: (v) => v + 273.15,
|
|
6
8
|
},
|
|
7
9
|
fahrenheit: {
|
|
8
|
-
celsius: (
|
|
9
|
-
kelvin: (
|
|
10
|
+
celsius: (v) => ((v - 32) * 5) / 9,
|
|
11
|
+
kelvin: (v) => ((v - 32) * 5) / 9 + 273.15,
|
|
10
12
|
},
|
|
11
13
|
kelvin: {
|
|
12
|
-
celsius: (
|
|
13
|
-
fahrenheit: (
|
|
14
|
+
celsius: (v) => v - 273.15,
|
|
15
|
+
fahrenheit: (v) => ((v - 273.15) * 9) / 5 + 32,
|
|
14
16
|
},
|
|
17
|
+
// Length
|
|
18
|
+
km: {
|
|
19
|
+
mi: (v) => v * 0.621371,
|
|
20
|
+
m: (v) => v * 1000,
|
|
21
|
+
ft: (v) => v * 3280.84,
|
|
22
|
+
cm: (v) => v * 100000,
|
|
23
|
+
in: (v) => v * 39370.1,
|
|
24
|
+
yd: (v) => v * 1093.61,
|
|
25
|
+
},
|
|
26
|
+
mi: {
|
|
27
|
+
km: (v) => v * 1.60934,
|
|
28
|
+
m: (v) => v * 1609.34,
|
|
29
|
+
ft: (v) => v * 5280,
|
|
30
|
+
cm: (v) => v * 160934,
|
|
31
|
+
in: (v) => v * 63360,
|
|
32
|
+
yd: (v) => v * 1760,
|
|
33
|
+
},
|
|
34
|
+
m: {
|
|
35
|
+
km: (v) => v / 1000,
|
|
36
|
+
mi: (v) => v * 0.000621371,
|
|
37
|
+
ft: (v) => v * 3.28084,
|
|
38
|
+
cm: (v) => v * 100,
|
|
39
|
+
in: (v) => v * 39.3701,
|
|
40
|
+
yd: (v) => v * 1.09361,
|
|
41
|
+
},
|
|
42
|
+
ft: {
|
|
43
|
+
km: (v) => v * 0.0003048,
|
|
44
|
+
mi: (v) => v / 5280,
|
|
45
|
+
m: (v) => v * 0.3048,
|
|
46
|
+
cm: (v) => v * 30.48,
|
|
47
|
+
in: (v) => v * 12,
|
|
48
|
+
yd: (v) => v / 3,
|
|
49
|
+
},
|
|
50
|
+
cm: {
|
|
51
|
+
km: (v) => v / 100000,
|
|
52
|
+
mi: (v) => v / 160934,
|
|
53
|
+
m: (v) => v / 100,
|
|
54
|
+
ft: (v) => v / 30.48,
|
|
55
|
+
in: (v) => v / 2.54,
|
|
56
|
+
yd: (v) => v / 91.44,
|
|
57
|
+
},
|
|
58
|
+
in: {
|
|
59
|
+
km: (v) => v / 39370.1,
|
|
60
|
+
mi: (v) => v / 63360,
|
|
61
|
+
m: (v) => v * 0.0254,
|
|
62
|
+
ft: (v) => v / 12,
|
|
63
|
+
cm: (v) => v * 2.54,
|
|
64
|
+
yd: (v) => v / 36,
|
|
65
|
+
},
|
|
66
|
+
yd: {
|
|
67
|
+
km: (v) => v * 0.0009144,
|
|
68
|
+
mi: (v) => v / 1760,
|
|
69
|
+
m: (v) => v * 0.9144,
|
|
70
|
+
ft: (v) => v * 3,
|
|
71
|
+
cm: (v) => v * 91.44,
|
|
72
|
+
in: (v) => v * 36,
|
|
73
|
+
},
|
|
74
|
+
// Weight
|
|
75
|
+
kg: { lb: (v) => v * 2.20462, oz: (v) => v * 35.274, g: (v) => v * 1000, ton: (v) => v / 1000 },
|
|
76
|
+
lb: { kg: (v) => v * 0.453592, oz: (v) => v * 16, g: (v) => v * 453.592, ton: (v) => v * 0.000453592 },
|
|
77
|
+
oz: { kg: (v) => v * 0.0283495, lb: (v) => v / 16, g: (v) => v * 28.3495, ton: (v) => v * 0.0000283495 },
|
|
78
|
+
g: { kg: (v) => v / 1000, lb: (v) => v * 0.00220462, oz: (v) => v * 0.035274, ton: (v) => v / 1000000 },
|
|
79
|
+
ton: { kg: (v) => v * 1000, lb: (v) => v * 2204.62, oz: (v) => v * 35274, g: (v) => v * 1000000 },
|
|
80
|
+
// Data
|
|
81
|
+
b: { kb: (v) => v / 1024, mb: (v) => v / 1048576, gb: (v) => v / 1073741824, tb: (v) => v / 1099511627776 },
|
|
82
|
+
kb: { b: (v) => v * 1024, mb: (v) => v / 1024, gb: (v) => v / 1048576, tb: (v) => v / 1073741824 },
|
|
83
|
+
mb: { b: (v) => v * 1048576, kb: (v) => v * 1024, gb: (v) => v / 1024, tb: (v) => v / 1048576 },
|
|
84
|
+
gb: { b: (v) => v * 1073741824, kb: (v) => v * 1048576, mb: (v) => v * 1024, tb: (v) => v / 1024 },
|
|
85
|
+
tb: { b: (v) => v * 1099511627776, kb: (v) => v * 1073741824, mb: (v) => v * 1048576, gb: (v) => v * 1024 },
|
|
86
|
+
// Speed
|
|
87
|
+
'km/h': { mph: (v) => v * 0.621371, 'm/s': (v) => v / 3.6, knots: (v) => v * 0.539957 },
|
|
88
|
+
mph: { 'km/h': (v) => v * 1.60934, 'm/s': (v) => v * 0.44704, knots: (v) => v * 0.868976 },
|
|
89
|
+
'm/s': { 'km/h': (v) => v * 3.6, mph: (v) => v * 2.23694, knots: (v) => v * 1.94384 },
|
|
90
|
+
knots: { 'km/h': (v) => v * 1.852, mph: (v) => v * 1.15078, 'm/s': (v) => v * 0.514444 },
|
|
15
91
|
};
|
|
16
92
|
export default function convert(value, from, to) {
|
|
17
|
-
const
|
|
93
|
+
const fromKey = from.toLowerCase();
|
|
94
|
+
const toKey = to.toLowerCase();
|
|
95
|
+
const convertFn = conversions[fromKey]?.[toKey];
|
|
18
96
|
if (!convertFn)
|
|
19
97
|
throw new Error('Invalid conversion unit');
|
|
20
|
-
if (isNaN(
|
|
98
|
+
if (isNaN(value))
|
|
21
99
|
throw new Error('Value must be a number');
|
|
22
|
-
if (
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
to,
|
|
29
|
-
value: parseFloat(String(value)),
|
|
30
|
-
result: convertFn(parseFloat(String(value))),
|
|
31
|
-
};
|
|
100
|
+
if (TEMPERATURE_UNITS.has(fromKey)) {
|
|
101
|
+
const minValue = ABSOLUTE_ZERO[fromKey];
|
|
102
|
+
if (value < minValue)
|
|
103
|
+
throw new Error('Value must be greater than absolute zero');
|
|
104
|
+
}
|
|
105
|
+
return { from, to, value, result: convertFn(value) };
|
|
32
106
|
}
|
|
33
107
|
//# sourceMappingURL=convert.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"convert.js","sourceRoot":"","sources":["../../../src/modules/v4/convert.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"convert.js","sourceRoot":"","sources":["../../../src/modules/v4/convert.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"domain.js","sourceRoot":"","sources":["../../../src/modules/v4/domain.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"domain.js","sourceRoot":"","sources":["../../../src/modules/v4/domain.ts"],"names":[],"mappings":"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"}
|
package/dist/modules/v4/hash.js
CHANGED
|
@@ -1,9 +1,16 @@
|
|
|
1
1
|
import { getHashes, createHash } from 'crypto';
|
|
2
|
-
|
|
2
|
+
const ENCODINGS = new Set(['hex', 'base64']);
|
|
3
|
+
export default function hash(text, method, encoding = 'hex') {
|
|
4
|
+
if (!text)
|
|
5
|
+
throw new Error('Text is required');
|
|
3
6
|
const methods = getHashes();
|
|
4
7
|
if (!methods.includes(method))
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
+
throw new Error(`Unsupported method. Use one of: ${methods.join(', ')}`);
|
|
9
|
+
if (!ENCODINGS.has(encoding))
|
|
10
|
+
throw new Error('Encoding must be one of: hex, base64');
|
|
11
|
+
const result = createHash(method)
|
|
12
|
+
.update(text)
|
|
13
|
+
.digest(encoding);
|
|
14
|
+
return { method, hash: result, encoding };
|
|
8
15
|
}
|
|
9
16
|
//# sourceMappingURL=hash.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hash.js","sourceRoot":"","sources":["../../../src/modules/v4/hash.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;
|
|
1
|
+
{"version":3,"file":"hash.js","sourceRoot":"","sources":["../../../src/modules/v4/hash.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AAQ/C,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC;AAE7C,MAAM,CAAC,OAAO,UAAU,IAAI,CAAC,IAAY,EAAE,MAAc,EAAE,WAAmB,KAAK;IAC/E,IAAI,CAAC,IAAI;QAAE,MAAM,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAC;IAE/C,MAAM,OAAO,GAAG,SAAS,EAAE,CAAC;IAC5B,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,mCAAmC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAExG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAC;IAEtF,MAAM,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC;SAC5B,MAAM,CAAC,IAAI,CAAC;SACZ,MAAM,CAAC,QAA4B,CAAC,CAAC;IAC1C,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC;AAC9C,CAAC"}
|
|
@@ -1,7 +1,37 @@
|
|
|
1
|
-
import { formatDate } from '
|
|
1
|
+
import { formatDate } from '../../utils/helpers.js';
|
|
2
2
|
import ical from 'ical.js';
|
|
3
|
+
function blocked(hostname) {
|
|
4
|
+
const list = ['localhost', '127.0.0.1', '0.0.0.0', '[::1]', 'metadata.google.internal'];
|
|
5
|
+
if (list.includes(hostname))
|
|
6
|
+
return true;
|
|
7
|
+
const parts = hostname.split('.').map(Number);
|
|
8
|
+
if (parts.length === 4 && parts.every((n) => !isNaN(n))) {
|
|
9
|
+
if (parts[0] === 10)
|
|
10
|
+
return true;
|
|
11
|
+
if (parts[0] === 172 && parts[1] >= 16 && parts[1] <= 31)
|
|
12
|
+
return true;
|
|
13
|
+
if (parts[0] === 192 && parts[1] === 168)
|
|
14
|
+
return true;
|
|
15
|
+
if (parts[0] === 169 && parts[1] === 254)
|
|
16
|
+
return true;
|
|
17
|
+
if (parts[0] === 0)
|
|
18
|
+
return true;
|
|
19
|
+
}
|
|
20
|
+
return false;
|
|
21
|
+
}
|
|
3
22
|
export default async function hyperplanning(url, detail) {
|
|
4
|
-
|
|
23
|
+
let parsed;
|
|
24
|
+
try {
|
|
25
|
+
parsed = new URL(url);
|
|
26
|
+
}
|
|
27
|
+
catch {
|
|
28
|
+
throw new Error('Invalid URL.');
|
|
29
|
+
}
|
|
30
|
+
if (parsed.protocol !== 'https:')
|
|
31
|
+
throw new Error('Only HTTPS URLs are allowed.');
|
|
32
|
+
if (blocked(parsed.hostname))
|
|
33
|
+
throw new Error('Access to private/internal hosts is not allowed.');
|
|
34
|
+
const response = await fetch(url, { signal: AbortSignal.timeout(10_000) });
|
|
5
35
|
if (!response.ok || !(response.headers.get('content-type') || '').includes('text/calendar')) {
|
|
6
36
|
throw new Error('Invalid ICS file format.');
|
|
7
37
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hyperplanning.js","sourceRoot":"","sources":["../../../src/modules/v4/hyperplanning.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"hyperplanning.js","sourceRoot":"","sources":["../../../src/modules/v4/hyperplanning.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,49 +1,8 @@
|
|
|
1
|
-
|
|
2
|
-
const clean = hex.replace('#', '');
|
|
3
|
-
if (!/^[0-9a-fA-F]{6}$/.test(clean))
|
|
4
|
-
throw new Error('Invalid HEX color (use #RRGGBB)');
|
|
5
|
-
return [parseInt(clean.slice(0, 2), 16), parseInt(clean.slice(2, 4), 16), parseInt(clean.slice(4, 6), 16)];
|
|
6
|
-
}
|
|
7
|
-
function rgbToHsl(r, g, b) {
|
|
8
|
-
const r1 = r / 255, g1 = g / 255, b1 = b / 255;
|
|
9
|
-
const max = Math.max(r1, g1, b1), min = Math.min(r1, g1, b1);
|
|
10
|
-
const l = (max + min) / 2;
|
|
11
|
-
if (max === min)
|
|
12
|
-
return [0, 0, l];
|
|
13
|
-
const d = max - min;
|
|
14
|
-
const s = l > 0.5 ? d / (2 - max - min) : d / (max + min);
|
|
15
|
-
let h = 0;
|
|
16
|
-
if (max === r1)
|
|
17
|
-
h = (g1 - b1) / d + (g1 < b1 ? 6 : 0);
|
|
18
|
-
else if (max === g1)
|
|
19
|
-
h = (b1 - r1) / d + 2;
|
|
20
|
-
else
|
|
21
|
-
h = (r1 - g1) / d + 4;
|
|
22
|
-
return [(h * 60 + 360) % 360, s, l];
|
|
23
|
-
}
|
|
24
|
-
function hslToRgb(h, s, l) {
|
|
25
|
-
const c = (1 - Math.abs(2 * l - 1)) * s;
|
|
26
|
-
const x = c * (1 - Math.abs(((h / 60) % 2) - 1));
|
|
27
|
-
const m = l - c / 2;
|
|
28
|
-
let r1 = 0, g1 = 0, b1 = 0;
|
|
29
|
-
if (h < 60)
|
|
30
|
-
[r1, g1, b1] = [c, x, 0];
|
|
31
|
-
else if (h < 120)
|
|
32
|
-
[r1, g1, b1] = [x, c, 0];
|
|
33
|
-
else if (h < 180)
|
|
34
|
-
[r1, g1, b1] = [0, c, x];
|
|
35
|
-
else if (h < 240)
|
|
36
|
-
[r1, g1, b1] = [0, x, c];
|
|
37
|
-
else if (h < 300)
|
|
38
|
-
[r1, g1, b1] = [x, 0, c];
|
|
39
|
-
else
|
|
40
|
-
[r1, g1, b1] = [c, 0, x];
|
|
41
|
-
return [Math.round((r1 + m) * 255), Math.round((g1 + m) * 255), Math.round((b1 + m) * 255)];
|
|
42
|
-
}
|
|
1
|
+
import { hexToRgb, rgbToHsl, hslToRgb, rgbToHex } from '../../utils/colors.js';
|
|
43
2
|
function format(r, g, b) {
|
|
44
3
|
const [h, s, l] = rgbToHsl(r, g, b);
|
|
45
4
|
return {
|
|
46
|
-
hex:
|
|
5
|
+
hex: rgbToHex(r, g, b),
|
|
47
6
|
rgb: `rgb(${r}, ${g}, ${b})`,
|
|
48
7
|
hsl: `hsl(${h.toFixed(1)}, ${(s * 100).toFixed(1)}%, ${(l * 100).toFixed(1)}%)`,
|
|
49
8
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"palette.js","sourceRoot":"","sources":["../../../src/modules/v4/palette.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"palette.js","sourceRoot":"","sources":["../../../src/modules/v4/palette.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"personal.js","sourceRoot":"","sources":["../../../src/modules/v4/personal.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"personal.js","sourceRoot":"","sources":["../../../src/modules/v4/personal.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAe9D,MAAM,CAAC,OAAO,UAAU,QAAQ;IAC5B,MAAM,MAAM,GAAa;QACrB,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,kBAAkB,EAAE,OAAO,EAAE,IAAI,EAAE;QAClF,EAAE,IAAI,EAAE,aAAa,EAAE,MAAM,EAAE,aAAa,EAAE,KAAK,EAAE,kBAAkB,EAAE,OAAO,EAAE,IAAI,EAAE;QACxF,EAAE,IAAI,EAAE,iBAAiB,EAAE,MAAM,EAAE,cAAc,EAAE,KAAK,EAAE,qBAAqB,EAAE,OAAO,EAAE,IAAI,EAAE;QAChG,EAAE,IAAI,EAAE,aAAa,EAAE,MAAM,EAAE,aAAa,EAAE,KAAK,EAAE,mBAAmB,EAAE,OAAO,EAAE,IAAI,EAAE;QACzF,EAAE,IAAI,EAAE,eAAe,EAAE,MAAM,EAAE,eAAe,EAAE,KAAK,EAAE,oBAAoB,EAAE,OAAO,EAAE,IAAI,EAAE;QAC9F,EAAE,IAAI,EAAE,gBAAgB,EAAE,MAAM,EAAE,gBAAgB,EAAE,KAAK,EAAE,mBAAmB,EAAE,OAAO,EAAE,IAAI,EAAE;QAC/F,EAAE,IAAI,EAAE,cAAc,EAAE,MAAM,EAAE,cAAc,EAAE,KAAK,EAAE,oBAAoB,EAAE,OAAO,EAAE,IAAI,EAAE;QAC5F,EAAE,IAAI,EAAE,eAAe,EAAE,MAAM,EAAE,eAAe,EAAE,KAAK,EAAE,oBAAoB,EAAE,OAAO,EAAE,IAAI,EAAE;QAC9F,EAAE,IAAI,EAAE,cAAc,EAAE,MAAM,EAAE,cAAc,EAAE,KAAK,EAAE,mBAAmB,EAAE,OAAO,EAAE,IAAI,EAAE;QAC3F,EAAE,IAAI,EAAE,eAAe,EAAE,MAAM,EAAE,eAAe,EAAE,KAAK,EAAE,oBAAoB,EAAE,OAAO,EAAE,IAAI,EAAE;KACjG,CAAC;IAEF,MAAM,SAAS,GAAgC;QAC3C,EAAE,EAAE,EAAE,GAAG,EAAE,cAAc,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,SAAS,EAAE;QACvD,EAAE,EAAE,EAAE,GAAG,EAAE,gBAAgB,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE;QACzD,EAAE,EAAE,EAAE,GAAG,EAAE,aAAa,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE;QACvD,EAAE,EAAE,EAAE,GAAG,EAAE,aAAa,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE;QACvD,EAAE,EAAE,EAAE,GAAG,EAAE,cAAc,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE;QACvD,EAAE,EAAE,EAAE,GAAG,EAAE,cAAc,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE;QACxD,EAAE,EAAE,EAAE,GAAG,EAAE,eAAe,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,UAAU,EAAE;QAC1D,EAAE,EAAE,EAAE,GAAG,EAAE,iBAAiB,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,YAAY,EAAE;QAC9D,EAAE,EAAE,EAAE,GAAG,EAAE,cAAc,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,SAAS,EAAE;QACvD,EAAE,EAAE,EAAE,GAAG,EAAE,cAAc,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE;KAC3D,CAAC;IAEF,MAAM,IAAI,GAAG,CAAC,QAAQ,EAAE,QAAQ,EAAE,UAAU,EAAE,UAAU,EAAE,WAAW,EAAE,UAAU,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;IACxG,MAAM,OAAO,GAAG,CAAC,SAAS,EAAE,WAAW,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,OAAO,EAAE,aAAa,EAAE,SAAS,CAAC,CAAC;IAC5G,MAAM,MAAM,GAAG;QACX,UAAU;QACV,OAAO;QACP,QAAQ;QACR,QAAQ;QACR,QAAQ;QACR,MAAM;QACN,OAAO;QACP,aAAa;QACb,QAAQ;QACR,WAAW;QACX,SAAS;KACZ,CAAC;IACF,MAAM,OAAO,GAAG,CAAC,SAAS,EAAE,SAAS,EAAE,UAAU,EAAE,WAAW,EAAE,QAAQ,EAAE,aAAa,EAAE,UAAU,EAAE,aAAa,CAAC,CAAC;IAEpH,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,EAAE,GAAG,EAAE,CAAC,YAAY,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACjF,MAAM,GAAG,GAAG,YAAY,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IACnC,MAAM,UAAU,GAAG,GAAG,MAAM,CAAC,YAAY,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,GAAG,YAAY,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAE7I,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;IAC9B,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;IAC7B,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;IAC/B,MAAM,WAAW,GAAG,SAAS,CAAC,OAAO,CAAE,CAAC;IACxC,MAAM,KAAK,GAAG,WAAW,CAAC,GAAG,CAAC;IAC9B,MAAM,IAAI,GAAG,WAAW,CAAC,IAAI,CAAC;IAE9B,MAAM,GAAG,GAAG,YAAY,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;IACjC,MAAM,QAAQ,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,YAAY,CAAC,EAAE,EAAE,EAAE,CAAC,GAAG,MAAM,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC;IAE1G,MAAM,iBAAiB,GAA4D,EAAE,CAAC;IACtF,MAAM,UAAU,GAAG,YAAY,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IAC/C,MAAM,aAAa,GAAa,EAAE,CAAC;IACnC,MAAM,IAAI,GAAa,EAAE,CAAC;IAC1B,MAAM,QAAQ,GAAa,EAAE,CAAC;IAC9B,IAAI,WAAW,GAAG,QAAQ,CAAC;IAC3B,IAAI,QAAQ,GAAG,CAAC,CAAC;IAEjB,IAAI,GAAG,IAAI,EAAE,IAAI,IAAI,CAAC,MAAM,EAAE,GAAG,GAAG;QAAE,WAAW,GAAG,SAAS,CAAC;IAC9D,IAAI,WAAW,KAAK,SAAS,IAAI,GAAG,IAAI,EAAE;QAAE,QAAQ,GAAG,YAAY,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAE1E,OAAO,iBAAiB,CAAC,MAAM,GAAG,YAAY,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;QACnD,IAAI,gBAAgB,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;QACtC,OACI,gBAAgB,CAAC,KAAK,KAAK,MAAM,CAAC,KAAK;YACvC,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,gBAAgB,CAAC,IAAI,CAAC,EACjE,CAAC;YACC,gBAAgB,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;QACtC,CAAC;QACD,MAAM,cAAc,GAAG,GAAG,YAAY,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,YAAY,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,YAAY,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC;QACzG,iBAAiB,CAAC,IAAI,CAAC;YACnB,IAAI,EAAE,gBAAgB,CAAC,IAAI;YAC3B,YAAY,EAAE,MAAM,CAAC,CAAC,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;YAC/D,KAAK,EAAE,IAAI,WAAW,CAAC,IAAI,IAAI,cAAc,EAAE;SAClD,CAAC,CAAC;IACP,CAAC;IAED,OAAO,aAAa,CAAC,MAAM,GAAG,YAAY,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;QAC/C,MAAM,YAAY,GAAG,MAAM,CAAC,CAAC,SAAS,EAAE,SAAS,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC;QACvF,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,YAAY,CAAC;YAAE,aAAa,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IAChF,CAAC;IAED,OAAO,IAAI,CAAC,MAAM,GAAG,YAAY,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;QACtC,MAAM,GAAG,GAAG,MAAM,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;QAC3D,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC;YAAE,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC5C,CAAC;IAED,OAAO,QAAQ,CAAC,MAAM,GAAG,YAAY,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;QAC1C,MAAM,OAAO,GAAG,MAAM,CAAC,CAAC,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC;QACrE,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC;YAAE,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC5D,CAAC;IAED,OAAO;QACH,IAAI,EAAE,MAAM,CAAC,IAAI;QACjB,KAAK,EAAE,MAAM,CAAC,KAAK;QACnB,YAAY,EAAE,OAAO;QACrB,KAAK,EAAE,IAAI,WAAW,CAAC,IAAI,IAAI,KAAK,EAAE;QACtC,GAAG,EAAE,MAAM,CAAC,IAAI,CAAC;QACjB,OAAO,EAAE,MAAM,CAAC,OAAO,CAAC;QACxB,QAAQ,EAAE,IAAI;QACd,IAAI;QACJ,GAAG;QACH,UAAU;QACV,OAAO,EAAE,GAAG,YAAY,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,MAAM,CAAC,MAAM,CAAC,EAAE;QACzE,QAAQ;QACR,YAAY,EAAE,WAAW;QACzB,QAAQ;QACR,OAAO,EAAE,QAAQ;QACjB,eAAe,EAAE;YACb,OAAO,EAAE,IAAI,MAAM,EAAE;YACrB,QAAQ,EAAE,gBAAgB,MAAM,EAAE;YAClC,QAAQ,EAAE,mBAAmB,MAAM,EAAE;YACrC,SAAS,EAAE,iBAAiB,MAAM,EAAE;SACvC;QACD,WAAW,EAAE,GAAG,UAAU,WAAW;QACrC,YAAY,EAAE,GAAG,CAAC,UAAU,GAAG,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,YAAY;QACzD,SAAS,EAAE,MAAM,CAAC,CAAC,aAAa,EAAE,YAAY,EAAE,UAAU,EAAE,KAAK,CAAC,CAAC;QACnE,eAAe,EAAE,GAAG,YAAY,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ;QAC/C,aAAa,EAAE,MAAM,CAAC,CAAC,SAAS,EAAE,cAAc,EAAE,oBAAoB,CAAC,CAAC;QACxE,kBAAkB,EAAE,iBAAiB;QACrC,aAAa;QACb,IAAI;KACP,CAAC;AACN,CAAC"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { normalizeColor } from '../../utils/colors.js';
|
|
1
2
|
function parseSize(value, name, def) {
|
|
2
3
|
if (value === undefined)
|
|
3
4
|
return def;
|
|
@@ -8,14 +9,6 @@ function parseSize(value, name, def) {
|
|
|
8
9
|
throw new Error(`${name} must be between 1 and 4000`);
|
|
9
10
|
return Math.floor(n);
|
|
10
11
|
}
|
|
11
|
-
function normalizeColor(value, def) {
|
|
12
|
-
if (!value)
|
|
13
|
-
return def;
|
|
14
|
-
const clean = value.startsWith('#') ? value : `#${value}`;
|
|
15
|
-
if (!/^#([0-9a-fA-F]{3}){1,2}$/.test(clean))
|
|
16
|
-
throw new Error('Invalid color (use hex like #ff6600)');
|
|
17
|
-
return clean;
|
|
18
|
-
}
|
|
19
12
|
function escapeXml(str) {
|
|
20
13
|
return str.replace(/&/g, '&').replace(/</g, '<').replace(/>/g, '>').replace(/"/g, '"');
|
|
21
14
|
}
|
|
@@ -67,8 +60,10 @@ function generateSkeleton(opts) {
|
|
|
67
60
|
const speed = opts.speed ?? 1.5;
|
|
68
61
|
const rx = opts.radius ?? 4;
|
|
69
62
|
const pad = Math.round(width * 0.06);
|
|
70
|
-
const
|
|
71
|
-
const
|
|
63
|
+
const slots = rows + (avatar ? 4 : 0);
|
|
64
|
+
const available = height - pad * 2;
|
|
65
|
+
const lineH = Math.round(Math.max(8, (available / Math.max(1, slots)) * 0.65));
|
|
66
|
+
const gap = Math.round(Math.max(6, (available / Math.max(1, slots)) * 0.35));
|
|
72
67
|
const shapes = [];
|
|
73
68
|
let y = pad;
|
|
74
69
|
if (avatar) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"placeholder.js","sourceRoot":"","sources":["../../../src/modules/v4/placeholder.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"placeholder.js","sourceRoot":"","sources":["../../../src/modules/v4/placeholder.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,12 +1,85 @@
|
|
|
1
|
-
import { toDataURL } from 'qrcode';
|
|
2
|
-
|
|
1
|
+
import { toBuffer, toDataURL, toCanvas as qrToCanvas } from 'qrcode';
|
|
2
|
+
import { createCanvas, loadImage } from 'canvas';
|
|
3
|
+
import { normalizeColor } from '../../utils/colors.js';
|
|
4
|
+
const CORRECTIONS = new Set(['L', 'M', 'Q', 'H']);
|
|
5
|
+
const FORMATS = new Set(['png', 'base64']);
|
|
6
|
+
const MAX_LOGO_BYTES = 2 * 1024 * 1024;
|
|
7
|
+
function clamp(value, name, def, min, max) {
|
|
8
|
+
if (value === undefined)
|
|
9
|
+
return def;
|
|
10
|
+
if (isNaN(value))
|
|
11
|
+
throw new Error(`${name} must be a number`);
|
|
12
|
+
if (value < min || value > max)
|
|
13
|
+
throw new Error(`${name} must be between ${min} and ${max}`);
|
|
14
|
+
return Math.floor(value);
|
|
15
|
+
}
|
|
16
|
+
async function fetchIcon(url) {
|
|
17
|
+
if (!/^https:\/\//i.test(url))
|
|
18
|
+
throw new Error('Icon URL must use HTTPS');
|
|
19
|
+
const response = await fetch(url, { signal: AbortSignal.timeout(5000) });
|
|
20
|
+
if (!response.ok)
|
|
21
|
+
throw new Error(`Failed to fetch icon: HTTP ${response.status}`);
|
|
22
|
+
const contentType = response.headers.get('content-type') ?? '';
|
|
23
|
+
if (!contentType.startsWith('image/'))
|
|
24
|
+
throw new Error('Icon URL must point to an image');
|
|
25
|
+
const buffer = Buffer.from(await response.arrayBuffer());
|
|
26
|
+
if (buffer.length > MAX_LOGO_BYTES)
|
|
27
|
+
throw new Error('Icon must be under 2MB');
|
|
28
|
+
return buffer;
|
|
29
|
+
}
|
|
30
|
+
export default async function qrcode(options) {
|
|
31
|
+
const { url } = options;
|
|
3
32
|
if (!url || typeof url !== 'string')
|
|
4
33
|
throw new Error('Please provide a valid URL');
|
|
5
|
-
|
|
6
|
-
|
|
34
|
+
const format = options.format ?? 'png';
|
|
35
|
+
if (!FORMATS.has(format))
|
|
36
|
+
throw new Error('format must be one of: png, base64');
|
|
37
|
+
const size = clamp(options.size, 'size', 200, 50, 2000);
|
|
38
|
+
const margin = clamp(options.margin, 'margin', 4, 0, 10);
|
|
39
|
+
const dark = normalizeColor(options.dark, '#000000');
|
|
40
|
+
const light = normalizeColor(options.light, '#ffffff');
|
|
41
|
+
let correction = options.correction ?? 'M';
|
|
42
|
+
if (!CORRECTIONS.has(correction))
|
|
43
|
+
throw new Error('correction must be one of: L, M, Q, H');
|
|
44
|
+
if (options.icon)
|
|
45
|
+
correction = 'H';
|
|
46
|
+
const qrOpts = {
|
|
47
|
+
width: size,
|
|
48
|
+
margin,
|
|
49
|
+
errorCorrectionLevel: correction,
|
|
50
|
+
color: { dark, light },
|
|
51
|
+
};
|
|
52
|
+
if (!options.icon) {
|
|
53
|
+
if (format === 'base64') {
|
|
54
|
+
return { contentType: 'application/json', body: await toDataURL(url, qrOpts) };
|
|
55
|
+
}
|
|
56
|
+
return { contentType: 'image/png', body: await toBuffer(url, qrOpts) };
|
|
7
57
|
}
|
|
8
|
-
|
|
9
|
-
|
|
58
|
+
const canvas = createCanvas(size, size);
|
|
59
|
+
await qrToCanvas(canvas, url, qrOpts);
|
|
60
|
+
const iconBuffer = await fetchIcon(options.icon);
|
|
61
|
+
const iconImg = await loadImage(iconBuffer);
|
|
62
|
+
const iconSize = clamp(options.iconSize, 'iconSize', Math.round(size * 0.2), 10, Math.round(size * 0.4));
|
|
63
|
+
const iconPadding = clamp(options.iconPadding, 'iconPadding', 5, 0, 50);
|
|
64
|
+
const maxRadius = Math.floor((iconSize + iconPadding * 2) / 2);
|
|
65
|
+
const iconRadius = clamp(options.iconRadius, 'iconRadius', 0, 0, maxRadius);
|
|
66
|
+
const ctx = canvas.getContext('2d');
|
|
67
|
+
const totalSize = iconSize + iconPadding * 2;
|
|
68
|
+
const x = (canvas.width - totalSize) / 2;
|
|
69
|
+
const y = (canvas.height - totalSize) / 2;
|
|
70
|
+
ctx.beginPath();
|
|
71
|
+
ctx.roundRect(x, y, totalSize, totalSize, iconRadius);
|
|
72
|
+
ctx.fillStyle = light;
|
|
73
|
+
ctx.fill();
|
|
74
|
+
ctx.save();
|
|
75
|
+
ctx.beginPath();
|
|
76
|
+
ctx.roundRect(x + iconPadding, y + iconPadding, iconSize, iconSize, Math.max(0, iconRadius - iconPadding));
|
|
77
|
+
ctx.clip();
|
|
78
|
+
ctx.drawImage(iconImg, x + iconPadding, y + iconPadding, iconSize, iconSize);
|
|
79
|
+
ctx.restore();
|
|
80
|
+
if (format === 'base64') {
|
|
81
|
+
return { contentType: 'application/json', body: canvas.toDataURL('image/png') };
|
|
10
82
|
}
|
|
83
|
+
return { contentType: 'image/png', body: canvas.toBuffer('image/png') };
|
|
11
84
|
}
|
|
12
85
|
//# sourceMappingURL=qrcode.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"qrcode.js","sourceRoot":"","sources":["../../../src/modules/v4/qrcode.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;
|
|
1
|
+
{"version":3,"file":"qrcode.js","sourceRoot":"","sources":["../../../src/modules/v4/qrcode.ts"],"names":[],"mappings":"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"}
|