Toutes les fonctions
La bibliothèque standard complète — 51 fonctions, chacune avec une signature typée que le compilateur fait respecter (TF2007 pour un nom inconnu, TF2008 pour de mauvais arguments). Cet index est généré depuis les définitions mêmes qu'utilisent le compilateur et le runtime — il ne peut pas dériver. Besoin de plus ? Ajoutez vos propres fonctions.
string(value: unknown): stringConvertit toute valeur en sa représentation textuelle (JSON pour les objets et les tableaux).
length(value: string): numberNombre de caractères de la chaîne.
contains(value: string, substring: string): booleanVrai si la chaîne contient la sous-chaîne donnée.
matches(value: string, pattern: string): booleanVrai si la chaîne correspond à l'expression régulière `pattern`.
upper(value: string): stringPasse la chaîne en majuscules.
lower(value: string): stringPasse la chaîne en minuscules.
trim(value: string): stringSupprime les espaces en début et fin de chaîne.
pad(value: string, width: number, char?: string): stringComplète la chaîne jusqu'à `width` avec `char` (espace par défaut) ; une largeur négative complète à gauche.
substring(value: string, start: number, length?: number): stringExtrait `length` caractères à partir de `start` ; un début négatif compte depuis la fin.
split(value: string, separator: string, limit?: number): string[]Découpe sur un séparateur, en ne gardant éventuellement que les `limit` premières parties.
replace(value: string, pattern: string, replacement: string): stringRemplace chaque occurrence de `pattern` par `replacement`.
base64encode(value: string): stringEncode la chaîne en Base64 (compatible UTF-8).
base64decode(value: string): stringDécode une chaîne Base64 (compatible UTF-8).
encodeUrl(value: string): stringEncode une URL complète (`encodeURI`).
decodeUrl(value: string): stringDécode une URL complète (`decodeURI`).
encodeUrlComponent(value: string): stringEncode un composant d'URL (`encodeURIComponent`).
decodeUrlComponent(value: string): stringDécode un composant d'URL (`decodeURIComponent`).
number(value: string | number | boolean): numberConvertit chaînes et booléens en nombre (`undefined` si non analysable).
formatBase(value: number, radix?: number): stringRend un entier dans la base donnée (2–36, 10 par défaut).
floor(value: number): numberArrondit à l'entier inférieur.
ceil(value: number): numberArrondit à l'entier supérieur.
round(value: number, precision?: number): numberArrondit à `precision` chiffres, au pair le plus proche comme JSONata.
abs(value: number): numberValeur absolue.
power(base: number, exponent: number): number`base` élevé à la puissance `exponent`.
sqrt(value: number): numberRacine carrée (`undefined` pour une entrée négative).
random(): numberNombre pseudo-aléatoire dans [0, 1).
sum(items: number[]): numberSomme des nombres (0 pour un tableau vide).
max(items: number[]): numberPlus grand nombre (`undefined` pour un tableau vide).
min(items: number[]): numberPlus petit nombre (`undefined` pour un tableau vide).
average(items: number[]): numberMoyenne arithmétique (`undefined` pour un tableau vide).
boolean(value: unknown): booleanVéracité JSONata : `""`, `0`, `[]` et `{}` sont faux.
not(value: unknown): booleanVéracité JSONata niée.
exists(value: unknown): booleanVrai sauf si la valeur est `undefined` (`null` existe).
count(items: unknown[]): numberNombre d'éléments.
join(items: string[], separator?: string): stringConcatène les chaînes avec un séparateur (`""` par défaut).
append(first: unknown[], second: unknown[]): unknown[]Concatène deux tableaux.
zip(first: unknown[], second: unknown[]): unknown[][]Apparie les éléments par indice, tronqué au tableau le plus court.
sort(items: string[] | number[]): string[] | number[]Trie en ordre naturel croissant ; le résultat conserve le type d'entrée.
reverse(items: unknown[]): unknown[]Inverse l'ordre ; le résultat conserve le type d'entrée.
shuffle(items: unknown[]): unknown[]Permutation aléatoire ; conserve le type d'entrée.
distinct(items: unknown[]): unknown[]Supprime les doublons (égalité profonde pour les objets) ; conserve le type d'entrée.
keys(value: object): string[]Noms des propriétés (fusionnés entre les éléments pour un tableau d'objets).
values(value: object): unknown[]Valeurs des propriétés, typées comme l'union des types de champs de l'objet.
lookup(value: object, key: string): unknownValeur de la clé donnée (appliquée à chaque élément pour un tableau d'objets).
merge(objects: object[]): objectFusionne un tableau d'objets de gauche à droite.
spread(value: object): object[]Éclate un objet en un tableau d'objets à une seule propriété.
type(value: unknown): string`"string" | "number" | "boolean" | "null" | "array" | "object" | "undefined"`.
now(): stringHorodatage courant, ISO 8601.
millis(): numberHorodatage courant, en millisecondes depuis l'epoch.
fromMillis(millis: number): stringMillisecondes epoch → chaîne ISO 8601.
toMillis(timestamp: string): numberChaîne ISO 8601 (ou toute date analysable) → millisecondes epoch.