@20syldev/api 4.9.0 → 5.1.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 +77 -63
- package/dist/config/versions.js +18 -0
- package/dist/config/versions.js.map +1 -1
- package/dist/constants.js +5 -0
- package/dist/constants.js.map +1 -1
- package/dist/modules/v4/captcha.js +1 -1
- package/dist/modules/v4/placeholder.js +4 -4
- package/dist/modules/v4/qrcode.js +2 -2
- package/dist/modules/v5/chart.js +379 -0
- package/dist/modules/v5/chart.js.map +1 -0
- package/dist/modules/v5/evaluate.js +281 -0
- package/dist/modules/v5/evaluate.js.map +1 -0
- package/dist/modules/v5/matrix.js +238 -0
- package/dist/modules/v5/matrix.js.map +1 -0
- package/dist/modules/v5/otp.js +108 -0
- package/dist/modules/v5/otp.js.map +1 -0
- package/dist/modules/v5/symmetric.js +71 -0
- package/dist/modules/v5/symmetric.js.map +1 -0
- package/dist/modules/v5.js +7 -0
- package/dist/modules/v5.js.map +1 -0
- package/dist/routes/delete.js +2 -2
- package/dist/routes/delete.js.map +1 -1
- package/dist/routes/get.js +199 -162
- package/dist/routes/get.js.map +1 -1
- package/dist/routes/patch.js +1 -1
- package/dist/routes/patch.js.map +1 -1
- package/dist/routes/post.js +131 -0
- package/dist/routes/post.js.map +1 -1
- package/package.json +3 -2
package/README.md
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
|
|
4
4
|
# API Personnelle
|
|
5
5
|
|
|
6
|
-
[](https://github.com/20syldev/api/releases/latest)
|
|
7
7
|
|
|
8
8
|
</div>
|
|
9
9
|
|
|
@@ -41,10 +41,10 @@ $ npm run build && npm start
|
|
|
41
41
|
```
|
|
42
42
|
|
|
43
43
|
```console
|
|
44
|
-
> @20syldev/api@
|
|
44
|
+
> @20syldev/api@5.1.0 build
|
|
45
45
|
> tsc
|
|
46
46
|
|
|
47
|
-
> @20syldev/api@
|
|
47
|
+
> @20syldev/api@5.1.0 start
|
|
48
48
|
> node dist/app.js
|
|
49
49
|
|
|
50
50
|
API is running on
|
|
@@ -63,22 +63,22 @@ $ npm run dev
|
|
|
63
63
|
Vous pouvez également importer les modules spécifiques dont vous avez besoin :
|
|
64
64
|
|
|
65
65
|
```js
|
|
66
|
-
// Importer des modules spécifiques depuis la
|
|
67
|
-
import {
|
|
66
|
+
// Importer des modules spécifiques depuis la v5
|
|
67
|
+
import { evaluate, color, username } from '@20syldev/api/v5';
|
|
68
|
+
|
|
69
|
+
// Évaluer une expression mathématique
|
|
70
|
+
const expr = evaluate('sin(pi / 2) + sqrt(4)', 5);
|
|
71
|
+
console.log(expr.result); // 3
|
|
72
|
+
console.log(expr.expression); // "sin(pi / 2) + sqrt(4)"
|
|
68
73
|
|
|
69
74
|
// Générer une couleur aléatoire
|
|
70
75
|
const couleur = color();
|
|
71
76
|
console.log(`Couleur HEX: ${couleur.hex}`);
|
|
72
77
|
console.log(`Couleur RGB: ${couleur.rgb}`);
|
|
73
|
-
console.log(`Couleur HSL: ${couleur.hsl}`);
|
|
74
78
|
|
|
75
79
|
// Générer un nom d'utilisateur aléatoire
|
|
76
80
|
const utilisateur = username();
|
|
77
81
|
console.log(`Nom d'utilisateur: ${utilisateur.username}`);
|
|
78
|
-
|
|
79
|
-
// Générer un jeton sécurisé
|
|
80
|
-
const jeton = token(16, 'hex');
|
|
81
|
-
console.log(`Jeton: ${jeton}`);
|
|
82
82
|
```
|
|
83
83
|
|
|
84
84
|
## Scripts disponibles
|
|
@@ -93,66 +93,80 @@ console.log(`Jeton: ${jeton}`);
|
|
|
93
93
|
| `npm run format` | Formatage avec Prettier |
|
|
94
94
|
| `npm run check` | Vérification TypeScript + ESLint |
|
|
95
95
|
|
|
96
|
-
## Endpoints disponibles (
|
|
96
|
+
## Endpoints disponibles (v5)
|
|
97
97
|
|
|
98
98
|
| Endpoint | Méthode | Description |
|
|
99
99
|
| ------------------- | ---------- | ------------------------------------------------------- |
|
|
100
|
-
| `/
|
|
101
|
-
| `/
|
|
102
|
-
| `/
|
|
103
|
-
| `/
|
|
104
|
-
| `/
|
|
105
|
-
| `/
|
|
106
|
-
| `/
|
|
107
|
-
| `/
|
|
108
|
-
| `/
|
|
109
|
-
| `/
|
|
110
|
-
| `/
|
|
111
|
-
| `/
|
|
112
|
-
| `/
|
|
113
|
-
| `/
|
|
114
|
-
| `/
|
|
115
|
-
| `/
|
|
116
|
-
| `/
|
|
117
|
-
| `/
|
|
118
|
-
| `/
|
|
119
|
-
| `/
|
|
120
|
-
| `/
|
|
121
|
-
| `/
|
|
122
|
-
| `/
|
|
123
|
-
| `/
|
|
124
|
-
| `/
|
|
125
|
-
| `/
|
|
126
|
-
| `/
|
|
127
|
-
| `/
|
|
128
|
-
| `/
|
|
129
|
-
| `/
|
|
130
|
-
| `/
|
|
131
|
-
| `/
|
|
132
|
-
| `/
|
|
133
|
-
| `/
|
|
100
|
+
| `/v5/address` | GET | Génération d'adresses postales aléatoires |
|
|
101
|
+
| `/v5/agent` | GET | Analyse de User-Agent |
|
|
102
|
+
| `/v5/algorithms` | GET | Fonctions algorithmiques (tri, fibonacci, factorielle…) |
|
|
103
|
+
| `/v5/avatar` | GET | Génération d'avatars identicon/pixel |
|
|
104
|
+
| `/v5/barcode` | GET | Génération de codes-barres (Code128, EAN-13/8, Code39) |
|
|
105
|
+
| `/v5/captcha` | GET | Génération d'images captcha |
|
|
106
|
+
| `/v5/chart` | POST | Génération de graphiques SVG (bar, line, pie, donut) |
|
|
107
|
+
| `/v5/chat` | GET / POST | Système de chat temporaire |
|
|
108
|
+
| `/v5/color` | GET | Génération de couleurs aléatoires |
|
|
109
|
+
| `/v5/convert` | GET | Conversions d'unités |
|
|
110
|
+
| `/v5/credit` | GET | Génération de cartes bancaires fictives (Luhn valide) |
|
|
111
|
+
| `/v5/cron` | GET | Analyse d'expressions cron |
|
|
112
|
+
| `/v5/dice` | GET | Lanceur de dés RPG |
|
|
113
|
+
| `/v5/domain` | GET | Informations de domaine aléatoires |
|
|
114
|
+
| `/v5/encode` | GET | Encodage / décodage |
|
|
115
|
+
| `/v5/evaluate` | GET | Évaluation d'expressions mathématiques |
|
|
116
|
+
| `/v5/geo` | GET | Calcul de distance géographique |
|
|
117
|
+
| `/v5/hash` | POST | Hachage de texte |
|
|
118
|
+
| `/v5/headers` | GET | Informations des en-têtes HTTP |
|
|
119
|
+
| `/v5/hyperplanning` | POST | Analyse de calendriers HyperPlanning |
|
|
120
|
+
| `/v5/infos` | GET | Informations sur l'API |
|
|
121
|
+
| `/v5/ip` | GET | Analyse d'adresses IP |
|
|
122
|
+
| `/v5/levenshtein` | GET | Distance entre chaînes |
|
|
123
|
+
| `/v5/matrix` | POST | Opérations matricielles (add, multiply, inverse…) |
|
|
124
|
+
| `/v5/otp` | POST | Génération et vérification de codes TOTP/HOTP |
|
|
125
|
+
| `/v5/palette` | GET | Génération de palettes de couleurs |
|
|
126
|
+
| `/v5/password` | GET | Génération de mots de passe sécurisés |
|
|
127
|
+
| `/v5/personal` | GET | Profil personnel aléatoire |
|
|
128
|
+
| `/v5/placeholder` | GET | Génération d'images placeholder |
|
|
129
|
+
| `/v5/qrcode` | GET | Génération de QR codes |
|
|
130
|
+
| `/v5/regex` | GET | Test d'expressions régulières |
|
|
131
|
+
| `/v5/statistics` | GET | Statistiques descriptives |
|
|
132
|
+
| `/v5/symmetric` | POST | Chiffrement symétrique AES (encrypt/decrypt) |
|
|
133
|
+
| `/v5/text` | GET | Utilitaires texte |
|
|
134
|
+
| `/v5/tic-tac-toe` | GET / POST | Jeu de morpion |
|
|
135
|
+
| `/v5/time` | GET | Informations temporelles |
|
|
136
|
+
| `/v5/token` | POST | Génération de jetons sécurisés |
|
|
137
|
+
| `/v5/username` | GET | Génération de noms d'utilisateur |
|
|
138
|
+
| `/v5/validate` | GET | Validation (Luhn, IBAN, email) |
|
|
134
139
|
|
|
135
140
|
## Exemples d'utilisation
|
|
136
141
|
|
|
137
142
|
```js
|
|
138
|
-
import {
|
|
139
|
-
|
|
140
|
-
//
|
|
141
|
-
const {
|
|
142
|
-
console.log(
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
//
|
|
154
|
-
|
|
155
|
-
|
|
143
|
+
import { chart, evaluate, matrix, otp, symmetric } from '@20syldev/api/v5';
|
|
144
|
+
|
|
145
|
+
// Évaluer une expression mathématique
|
|
146
|
+
const { result } = evaluate('log2(8) * (3 + pi)', 4);
|
|
147
|
+
console.log(result); // 18.4248
|
|
148
|
+
|
|
149
|
+
// Opération matricielle — produit de deux matrices
|
|
150
|
+
const { result: product } = matrix.multiply([[1, 2], [3, 4]], [[5, 6], [7, 8]]);
|
|
151
|
+
console.log(product); // [[19, 22], [43, 50]]
|
|
152
|
+
|
|
153
|
+
// Générer un graphique SVG en mémoire
|
|
154
|
+
const { body: svg } = chart.bar(
|
|
155
|
+
{ labels: ['Jan', 'Fév', 'Mar'], datasets: [{ label: 'Ventes', values: [120, 85, 200] }] },
|
|
156
|
+
{ width: 600, height: 300 },
|
|
157
|
+
);
|
|
158
|
+
// body contient une chaîne SVG prête à l'emploi
|
|
159
|
+
|
|
160
|
+
// Chiffrement symétrique AES-256-GCM
|
|
161
|
+
const { result: blob } = symmetric('encrypt', 'message secret', 'motdepasse');
|
|
162
|
+
const { result: plain } = symmetric('decrypt', blob, 'motdepasse');
|
|
163
|
+
console.log(plain); // 'message secret'
|
|
164
|
+
|
|
165
|
+
// Générer un secret TOTP et vérifier un code
|
|
166
|
+
const { secret } = otp('secret', {});
|
|
167
|
+
const { code } = otp('generate', { secret });
|
|
168
|
+
const { valid } = otp('verify', { secret, code });
|
|
169
|
+
console.log(valid); // true
|
|
156
170
|
```
|
|
157
171
|
|
|
158
172
|
_Visitez la [documentation](https://docs.sylvain.sh) dédiée, vous y retrouverez des exemples de requêtes et des codes simples pour tester l'[API](https://api.sylvain.sh) !_
|
package/dist/config/versions.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import * as apiv3 from '../modules/v3.js';
|
|
2
2
|
import * as apiv4 from '../modules/v4.js';
|
|
3
|
+
import * as apiv5 from '../modules/v5.js';
|
|
3
4
|
/**
|
|
4
5
|
* Merges a base list of endpoints with additions, deduplicating by `name`.
|
|
5
6
|
* If an addition has the same name as a base entry, it overrides it.
|
|
@@ -100,11 +101,28 @@ const v4 = {
|
|
|
100
101
|
{ name: 'validate', path: '/validate?type={type}&value={value}' },
|
|
101
102
|
]),
|
|
102
103
|
post: [...v3.post],
|
|
104
|
+
patch: [{ name: 'tic-tac-toe', path: '/tic-tac-toe/:game' }],
|
|
105
|
+
delete: [
|
|
106
|
+
{ name: 'chat', path: '/chat/:token' },
|
|
107
|
+
{ name: 'tic-tac-toe', path: '/tic-tac-toe/:game' },
|
|
108
|
+
],
|
|
109
|
+
};
|
|
110
|
+
const v5 = {
|
|
111
|
+
get: merge(v4.get, [{ name: 'evaluate', path: '/evaluate?expr={expression}(&precision={0-15})' }]),
|
|
112
|
+
post: merge(v4.post, [
|
|
113
|
+
{ name: 'chart', path: '/chart' },
|
|
114
|
+
{ name: 'matrix', path: '/matrix' },
|
|
115
|
+
{ name: 'otp', path: '/otp' },
|
|
116
|
+
{ name: 'symmetric', path: '/symmetric' },
|
|
117
|
+
]),
|
|
118
|
+
patch: [...v4.patch],
|
|
119
|
+
delete: [...v4.delete],
|
|
103
120
|
};
|
|
104
121
|
export const versions = {
|
|
105
122
|
v1: { endpoints: v1, modules: apiv3 },
|
|
106
123
|
v2: { endpoints: v2, modules: apiv3 },
|
|
107
124
|
v3: { endpoints: v3, modules: apiv3 },
|
|
108
125
|
v4: { endpoints: v4, modules: apiv4 },
|
|
126
|
+
v5: { endpoints: v5, modules: apiv5 },
|
|
109
127
|
};
|
|
110
128
|
//# sourceMappingURL=versions.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"versions.js","sourceRoot":"","sources":["../../src/config/versions.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"versions.js","sourceRoot":"","sources":["../../src/config/versions.ts"],"names":[],"mappings":"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"}
|
package/dist/constants.js
CHANGED
|
@@ -23,16 +23,21 @@ export const STATUS_MESSAGES = {
|
|
|
23
23
|
// Modules
|
|
24
24
|
export const EARTH_RADIUS_KM = 6371;
|
|
25
25
|
export const MAX_ADDRESS_COUNT = 10;
|
|
26
|
+
export const MAX_CHART_DATASETS = 5;
|
|
27
|
+
export const MAX_CHART_LABELS = 20;
|
|
26
28
|
export const MAX_CREDIT_COUNT = 10;
|
|
27
29
|
export const MAX_COUNTDOWN_YEARS = 100;
|
|
28
30
|
export const MAX_CRON_ITERATIONS = 365 * 24 * 60;
|
|
29
31
|
export const MAX_CRON_RESULTS = 20;
|
|
32
|
+
export const MAX_EXPR_DEPTH = 100;
|
|
33
|
+
export const MAX_EXPR_LENGTH = 500;
|
|
30
34
|
export const MAX_FACTORIAL = 170;
|
|
31
35
|
export const MAX_GCD_VALUE = 100_000;
|
|
32
36
|
export const MAX_LEVENSHTEIN_LENGTH = 1000;
|
|
33
37
|
export const MIN_PASSWORD_LENGTH = 8;
|
|
34
38
|
export const MAX_PASSWORD_LENGTH = 128;
|
|
35
39
|
export const MAX_PASSWORD_COUNT = 20;
|
|
40
|
+
export const MAX_MATRIX_SIZE = 20;
|
|
36
41
|
export const MAX_PATTERN_LENGTH = 200;
|
|
37
42
|
export const MAX_PRIME_LIST = 10_000;
|
|
38
43
|
export const MAX_QRCODE_LOGO_BYTES = 2 * 1024 * 1024;
|
package/dist/constants.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"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"}
|
|
@@ -32,7 +32,7 @@ export default function captcha(options) {
|
|
|
32
32
|
const width = clamp(options.width, 'width', text.length * 60, 100, 800);
|
|
33
33
|
const noise = options.noise ?? 'medium';
|
|
34
34
|
if (!NOISE_LEVELS.has(noise))
|
|
35
|
-
throw new Error('
|
|
35
|
+
throw new Error('Noise must be one of: low, medium, high');
|
|
36
36
|
const { lines, dots } = NOISE_CONFIG[noise];
|
|
37
37
|
const bg = normalizeColor(options.bg, '#ffffff');
|
|
38
38
|
const baseColor = options.color ? normalizeColor(options.color, '#000000') : undefined;
|
|
@@ -111,14 +111,14 @@ function parseAvatar(value) {
|
|
|
111
111
|
return 'circle';
|
|
112
112
|
if (AVATAR_SHAPES.has(value))
|
|
113
113
|
return value;
|
|
114
|
-
throw new Error('
|
|
114
|
+
throw new Error('Avatar must be one of: circle, rounded, square');
|
|
115
115
|
}
|
|
116
116
|
function parseAnimate(value) {
|
|
117
117
|
if (!value)
|
|
118
118
|
return 'shimmer';
|
|
119
119
|
if (ANIMATE_MODES.has(value))
|
|
120
120
|
return value;
|
|
121
|
-
throw new Error('
|
|
121
|
+
throw new Error('Animate must be one of: shimmer, pulse, none');
|
|
122
122
|
}
|
|
123
123
|
/**
|
|
124
124
|
* Generates an SVG placeholder image or skeleton loader with configurable dimensions and style.
|
|
@@ -131,10 +131,10 @@ function parseAnimate(value) {
|
|
|
131
131
|
export default function placeholder(type, query) {
|
|
132
132
|
const speed = query.speed ? parseFloat(query.speed) : 1.5;
|
|
133
133
|
if (isNaN(speed) || speed < 0.1 || speed > 10)
|
|
134
|
-
throw new Error('
|
|
134
|
+
throw new Error('Speed must be between 0.1 and 10');
|
|
135
135
|
const radius = query.radius ? parseInt(query.radius, 10) : 4;
|
|
136
136
|
if (isNaN(radius) || radius < 0 || radius > 50)
|
|
137
|
-
throw new Error('
|
|
137
|
+
throw new Error('Radius must be between 0 and 50');
|
|
138
138
|
const opts = {
|
|
139
139
|
width: parseSize(query.width, 'width', 800),
|
|
140
140
|
height: parseSize(query.height, 'height', 600),
|
|
@@ -40,14 +40,14 @@ export default async function qrcode(options) {
|
|
|
40
40
|
throw new Error('Please provide a valid URL');
|
|
41
41
|
const format = options.format ?? 'png';
|
|
42
42
|
if (!FORMATS.has(format))
|
|
43
|
-
throw new Error('
|
|
43
|
+
throw new Error('Format must be one of: png, base64');
|
|
44
44
|
const size = clamp(options.size, 'size', 200, 50, 2000);
|
|
45
45
|
const margin = clamp(options.margin, 'margin', 4, 0, 10);
|
|
46
46
|
const dark = normalizeColor(options.dark, '#000000');
|
|
47
47
|
const light = normalizeColor(options.light, '#ffffff');
|
|
48
48
|
let correction = options.correction ?? 'M';
|
|
49
49
|
if (!CORRECTIONS.has(correction))
|
|
50
|
-
throw new Error('
|
|
50
|
+
throw new Error('Correction must be one of: L, M, Q, H');
|
|
51
51
|
if (options.icon)
|
|
52
52
|
correction = 'H';
|
|
53
53
|
const qrOpts = {
|