SDK JavaScript / Node.js

Lisez, vérifiez, écrivez les puces TigerTag en JavaScript.

Le SDK du protocole ouvert TigerTag pour le filament et la résine d'impression 3D : il transforme les octets d'une puce en matière, couleur, réglages d'impression et quantité, vérifie sa signature ECDSA-P256 hors ligne et construit de nouveaux tags octet par octet.

npm ↗GitHub ↗

$ npm install tigertag

const { TigerTag } = require('tigertag');

const tag = TigerTag.fromPages(uid, payload);  // from your NFC SDK
console.log(tag.pretty());  // human-readable summary
console.log(String(tag.verify()));  // VALID / NOT SIGNED / INVALID
console.log(tag.toDict());  // JSON-ready object
Version actuelle sur npm
1.2.1Version actuelle sur npm
Utilise crypto et fetch intégrés
Node.js 18+Utilise crypto et fetch intégrés
Dépendance d'exécution pour lire et vérifier
0Dépendance d'exécution pour lire et vérifier
Licence open source, avec octroi de brevets
Apache-2.0Licence open source, avec octroi de brevets

Ce que fait le SDK

Un seul paquet pour tous les usages d'une puce TigerTag : lire, vérifier, écrire et garder ses données à jour.

Lire tout dump

fromPages(), fromDump() et fromFile() acceptent un UID avec 80 ou 144 octets, ou un dump de 180 octets. pretty(), describe() et toDict() renvoient du texte, un résumé ou du JSON.

Vérifier l'authenticité hors ligne

verify() contrôle la signature ECDSA-P256 qui lie l'UID de la puce à ses données produit, avec la clé publique incluse dans le paquet. Résultat : valid, invalid, unsigned, no_key ou no_uid.

Créer et modifier des tags

create(), asInit(), patch() et erase() construisent les octets. Un TigerTag est immuable : patch() en renvoie un nouveau et refuse de changer idTigertag, idProduct, uid ou la signature.

Partir du catalogue

TigerTag.fromCatalog(productId) construit un TigerTag+ complet depuis le catalogue officiel des produits, téléchargé à la première utilisation et mis en cache dans un dossier propre à l'utilisateur.

Synchroniser avec le fabricant

Pour les puces TigerTag+, rawApi(), diffApi() et patchFromApi() récupèrent les données actuelles de la marque, listent ce qui diffère de la puce et l'appliquent.

Données de référence, hors ligne d'abord

Les tables matières, marques, aspects, types, diamètres et unités sont dans le paquet, mises à jour une fois par jour au plus ; offline: true ou TIGERTAG_OFFLINE=1 coupe le réseau.

Lire une puce

Passez à TigerTag.fromPages() l'UID de 7 octets et les octets lus par votre bibliothèque NFC. pretty(), verify() et toDict() renvoient un résumé lisible, le résultat de la signature et un objet prêt pour JSON. Cela fonctionne dès npm install, sans configuration.

A TigerTag chip

Modifier et écrire

Chaque modification renvoie un nouveau TigerTag ; toBytes() donne les octets à réécrire. erase() donne une puce vierge.

TigerTag

Essayer sans lecteur : le playground

Une page web locale, servie par le SDK lui-même, qui construit et décode les puces TigerTag et montre chaque octet. Aucun matériel NFC n'est nécessaire. Le playground n'écrit jamais de signature : seul un fabricant certifié peut en émettre une.

Questions fréquentes

Comment installer le SDK JavaScript TigerTag ?

Lancez npm install tigertag, ou pnpm add tigertag, yarn add tigertag ou bun add tigertag. Il faut Node.js 18 ou plus récent, et aucun autre paquet pour lire et vérifier.

Faut-il une connexion internet ?

Non. Les tables de référence et la clé publique de signature sont incluses dans le paquet : lecture et vérification fonctionnent hors ligne. Le réseau ne sert qu'à la vérification quotidienne des tables, au catalogue de produits et aux méthodes cloud TigerTag+ ; offline: true ou TIGERTAG_OFFLINE=1 le désactive.

Avec quelles puces et quels lecteurs NFC fonctionne-t-il ?

TigerTag utilise des puces NTAG213, NTAG215 et NTAG216 (ISO 14443-3). Le SDK prend l'UID et les octets lus par votre bibliothèque NFC : il n'est lié à aucun lecteur ; le README montre nfc-pcsc avec un ACR122U.

Comment vérifie-t-il qu'une puce est authentique ?

verify() contrôle la signature ECDSA-P256 de la puce sur son UID et ses identifiants produit, avec la clé publique incluse dans le paquet. Il renvoie valid, invalid, unsigned, no_key ou no_uid, sans appel serveur.

Peut-il écrire des puces ?

Il construit les octets : create(), patch(), asInit(), erase() et fromCatalog() donnent un TigerTag dont toBytes() est le contenu que votre bibliothèque NFC écrit. Le bouton Burn du playground l'écrit sur les puces des lecteurs connectés.

Une commande pour commencer

npm install tigertag, puis TigerTag.fromPages(uid, payload).

Voir sur npm