# Bibliothèque `uuid` (identifiants uniques) — v1.0.0

Source : https://docs.berkios.online/modules/uuid/ · Section : Modules · Documentation officielle BERKIOS (https://docs.berkios.online)


12 commandes pour BERKIOS CODE qui reprennent l'esprit du module `uuid` de Python : génération d'UUID version 4, formes dérivées (hexadécimal, URN, court), UUID nul et maximal, validation, lecture de la version, normalisation et comparaison.
Chaque commande existe sous son **nom Python/anglais**, en **français**, en **espagnol** et en **swahili** ; la forme qualifiée `uuid.<nom>` fonctionne aussi.
Aucune permission n'est demandée. Les commandes sont de simples macros vers des commandes intégrées (`identifiant`, `generer-identifiant`, `uuid-reproductible`, `correspond`, `sous-texte`…).

## Exemple

```text
quand clic
  uuid4 "$id"                  # 3f2b8c1e-9a4d-4e57-b1c6-0d2f7a9e5b34
  uuid-valide "$id" "$ok"      # true
  uuid-version "$id" "$v"      # 4
  uuid4-hex "$cle"             # 32 caractères hexadécimaux, sans tirets
  uuid-court "$code"           # 8 caractères, ex. 3f2b8c1e
  uuid-egal "$id" "$autre" "$meme"
```

## Choisir la bonne commande
- **Identifiant d'enregistrement, de ligne, de commande** : `uuid4`.
- **Jeton ou clé qui doit rester imprévisible** : `uuid4-secure` (générateur sécurisé de l'hôte).
- **Tests reproductibles** : `randomy.seed 42` puis `uuid4-seeded` → mêmes identifiants à chaque exécution. Jamais pour un secret.
- **Code lisible** : `uuid-court` (8 caractères : plus pratique, mais risque de collision bien plus élevé qu'un UUID complet).

## Commandes

| Noms (python/en · fr · es · sw) | Syntaxe | Effet |
|---|---|---|
| `uuid4 · nouvel-uuid · nuevo-uuid · uuid-mpya` | `uuid4 "Résultat"` | Génère un identifiant unique aléatoire (UUID version 4) comme uuid.uuid4() de Python, par exemple 3f2b8c1e-9a4d-4e57-b1c6-0d2f7a9e5b34. |
| `uuid4-hex · uuid-hexa · uuid-hexadecimal · uuid-heksadesimali` | `uuid4-hex "Résultat"` | UUID v4 sans tirets : 32 caractères hexadécimaux (uuid.uuid4().hex). |
| `uuid-urn · urn-uuid · urn-de-uuid · urn-ya-uuid` | `uuid-urn "Résultat"` | UUID v4 au format URN : urn:uuid:… (uuid.uuid4().urn). |
| `uuid-short · uuid-court · uuid-corto · uuid-fupi` | `uuid-court "Résultat"` | Identifiant court : les 8 premiers caractères d'un UUID v4. Pratique pour un code lisible, mais moins unique qu'un UUID complet. |
| `uuid4-secure · uuid-securise · uuid-seguro · uuid-salama` | `uuid4-secure "Résultat"` | UUID v4 issu du générateur sécurisé de l'hôte (generer-identifiant) : à préférer pour un jeton ou une clé qui doit rester imprévisible. |
| `uuid4-seeded · uuid-graine · uuid-semilla · uuid-mbegu` | `uuid4-seeded "Résultat"` | UUID v4 tiré avec la graine courante (voir randomy.seed) : même graine, mêmes identifiants. Pour des tests reproductibles, jamais pour un secret. |
| `uuid-nil · uuid-nul · uuid-nulo · uuid-tupu` | `uuid-nil "Résultat"` | L'UUID nul 00000000-0000-0000-0000-000000000000 (« aucun identifiant »). |
| `uuid-max · uuid-maximal · uuid-maximo · uuid-upeo` | `uuid-max "Résultat"` | L'UUID maximal ffffffff-ffff-ffff-ffff-ffffffffffff. |
| `is-uuid · uuid-valide · uuid-valido · uuid-halali` | `uuid-valide "Source" "Résultat"` | Écrit true si la source est un UUID de forme 8-4-4-4-12 chiffres hexadécimaux (majuscules ou minuscules), sinon false. |
| `uuid-version · version-uuid · version-del-uuid · toleo-la-uuid` | `uuid-version "Source" "Résultat"` | Écrit la version de l'UUID (1 à 8 ; 4 pour un UUID aléatoire). Arrête le script si la source n'est pas un UUID valide. |
| `uuid-normalize · uuid-normaliser · uuid-normalizar · uuid-sanifisha` | `uuid-normaliser "Cible"` | Met l'UUID de la cible en minuscules, sans espaces, accolades {…} ni préfixe urn:uuid:. |
| `uuid-equal · uuid-egal · uuid-igual · uuid-sawa` | `uuid-egal "A" "B" "Résultat"` | Écrit true si deux UUID sont identiques, sans tenir compte de la casse, des accolades ni du préfixe urn:uuid:. |

## Limites
- Seule la **version 4** (aléatoire) est générée. Les versions 1, 3, 5 et 7 de Python ne sont pas fournies : une bibliothèque de macros ne dispose ni de l'adresse MAC, ni de MD5/SHA-1, ni de l'horloge à la précision requise.
- `uuid-valide` et `uuid-version` n'acceptent que la forme canonique 8-4-4-4-12 ; utilisez `uuid-normaliser` d'abord pour une valeur avec accolades ou préfixe `urn:uuid:`. Un UUID sans tirets (32 caractères) est refusé.
- `uuid4-seeded` (commande intégrée `uuid-reproductible`) et `uuid4-secure` suivent la disponibilité de ces commandes intégrées : `uuid-reproductible` n'est pas encore porté dans le runtime Dart des applications Flutter ; `uuid4`, `uuid4-hex`, `uuid-urn`, `uuid-court` et les commandes de validation n'en dépendent pas.
- Dans ce document, le nom `uuid` seul reste la commande intégrée `identifiant` : pour la bibliothèque, écrivez `uuid4` ou `uuid.uuid4`.

Vérifié par `studio/tests/library-uuid.test.ts` (8 tests, exécution réelle des macros).
