BERKIOSDocs
Studio

Commandes BERKIOS — tableaux, médias, SQL et stockage (v0.7.176)

Les commandes sont enregistrées dans bridge/system-command-registry.mjs et exécutées par bridge/system-commands.mjs.

Tableaux structurés

  • tableau-creer(rows) : clone une liste de lignes objet.
  • tableau-ligne(rows, row) : retourne le tableau avec une ligne ajoutée.
  • tableau-colonne(rows, column, values?) : ajoute une colonne ; values doit avoir le même nombre d'éléments que rows.
  • tableau-trier-par-colonne(rows, column, direction?) : asc par défaut, ou desc.
  • tableau-filtrer(rows, column, operator, value) : opérateurs egal, different, contient, superieur, inferieur, superieur_ou_egal, inferieur_ou_egal.
  • tableau-agreger(rows, groupBy, aggregates?) : agrégations count, sum, avg, min, max.
  • tableau-pivoter(rows, {index, column, value, operation?}) : sum, avg, count.

Les tableaux sont des listes d'objets, pas des chaînes séparées par virgules : les types, nombres, booléens et valeurs nulles sont préservés.

SQL

  • sql-lire(table, filters?), sql-inserer(table, data), sql-mettre-a-jour(table, data, where), sql-supprimer(table, where).
  • sql-executer(sql, params?) exécute une instruction avec paramètres séparés.
  • sql-requete-parametree(sql, params?) lit une requête paramétrée.
  • sql-transaction(actions) exécute les actions atomiquement et tente un rollback en cas d'échec.

Les noms de tables/colonnes sont validés comme identifiants SQL simples. Les valeurs sont toujours transmises avec des placeholders. sql-supprimer exige au moins une condition pour éviter un effacement accidentel de table. L'hôte doit vérifier les permissions SQL avant d'appeler le moteur. L'adaptateur DB doit exposer prepare(sql) avec run/all, et exec(sql) ou transaction(fn) pour les transactions.

Stockage

  • stocker(key, value), charger(key), oublier(key) utilisent options.storage fourni par l'hôte (get, set, delete). Un Map fonctionne pour les tests et le stockage temporaire, mais n'est pas persistant au redémarrage. Pour la persistance réelle, l'hôte doit fournir un adaptateur durable (par exemple SQLite ou stockage local).

Médias

  • image-charger, image-redimensionner, image-compresser, photo-prendre, fichier-choisir, audio-jouer, audio-enregistrer délèguent aux fonctions de options.media. Ces opérations nécessitent une implémentation native/web et les permissions correspondantes. Si l'adaptateur n'est pas présent, le moteur renvoie media_unavailable au lieu de simuler une réussite.

Intégration et tests

L'API exécutable se trouve dans bridge/data-media-sql-commands.mjs; le dispatcher du Bridge est executeSystemCommand dans bridge/system-commands.mjs. Voir bridge/tests/data-media-sql-commands.test.mjs.