JavaScript- / Node.js-SDK

Lees, controleer en schrijf TigerTag-chips met JavaScript.

De SDK van het open TigerTag-protocol voor filament en hars voor 3D-printen: hij zet de bytes van een chip om in materiaal, kleur, printinstellingen en hoeveelheid, controleert de ECDSA-P256-handtekening offline en bouwt nieuwe tags byte voor byte.

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
Huidige versie op npm
1.2.1Huidige versie op npm
Gebruikt de ingebouwde crypto en fetch
Node.js 18+Gebruikt de ingebouwde crypto en fetch
Runtime-afhankelijkheden voor lezen en controleren
0Runtime-afhankelijkheden voor lezen en controleren
Opensourcelicentie, met octrooiverlening
Apache-2.0Opensourcelicentie, met octrooiverlening

Wat de SDK doet

Eén pakket voor alles rond een TigerTag-chip: lezen, controleren, schrijven en de gegevens actueel houden.

Elke dump lezen

fromPages(), fromDump() en fromFile() nemen een UID met 80 of 144 bytes, of een dump van 180 bytes. pretty(), describe() en toDict() geven tekst, een leesbare samenvatting of JSON-objecten.

Echtheid offline controleren

verify() controleert de ECDSA-P256-handtekening die de UID van de chip aan de productgegevens koppelt, met de publieke sleutel uit het pakket. Het resultaat is valid, invalid, unsigned, no_key of no_uid.

Tags maken en aanpassen

create(), asInit(), patch() en erase() bouwen chipbytes. Een TigerTag is onveranderlijk: patch() geeft een nieuwe terug en weigert idTigertag, idProduct, uid of de handtekening te wijzigen.

Bouwen vanuit de catalogus

TigerTag.fromCatalog(productId) bouwt een volledige TigerTag+ uit de officiële productcatalogus, die bij het eerste gebruik wordt gedownload en per gebruiker in een cachemap wordt bewaard.

Synchroniseren met de fabrikant

Voor TigerTag+-chips halen rawApi(), diffApi() en patchFromApi() de actuele productgegevens van het merk op, tonen ze wat afwijkt van de chip en passen ze het toe.

Referentiegegevens, eerst offline

De tabellen voor materiaal, merk, uiterlijk, type, diameter en eenheid zitten in het pakket en worden hooguit één keer per dag bijgewerkt; offline: true of TIGERTAG_OFFLINE=1 betekent nul netwerkverzoeken.

Lees een chip

Geef TigerTag.fromPages() de UID van 7 bytes en de bytes die je NFC-bibliotheek leest. pretty(), verify() en toDict() geven een leesbare samenvatting, het resultaat van de handtekeningcontrole en een object dat klaar is voor JSON. Werkt direct na npm install, zonder configuratie.

A TigerTag chip

Wijzig en schrijf

Elke wijziging geeft een nieuwe TigerTag terug; toBytes() levert de bytes om terug te schrijven. erase() levert een lege chip.

TigerTag

Probeer het zonder lezer: de playground

Een lokale webpagina, geserveerd door de SDK zelf, die TigerTag-chips bouwt en decodeert en elke byte toont. Geen NFC-hardware nodig. De playground schrijft nooit een handtekening: alleen een gecertificeerde fabrikant kan er een uitgeven.

Vragen

Hoe installeer ik de TigerTag JavaScript-SDK?

Voer npm install tigertag uit, of pnpm add tigertag, yarn add tigertag of bun add tigertag. Hij vraagt Node.js 18 of nieuwer en geen ander pakket om te lezen en te controleren.

Is er een internetverbinding nodig?

Nee. De referentietabellen en de publieke handtekeningsleutel zitten in het pakket, dus lezen en controleren werken offline. Het netwerk wordt alleen gebruikt voor de dagelijkse tabelcontrole, de productcatalogus en de TigerTag+-cloudmethoden; offline: true of TIGERTAG_OFFLINE=1 zet het uit.

Met welke NFC-chips en lezers werkt hij?

TigerTag gebruikt NTAG213-, NTAG215- en NTAG216-chips (ISO 14443-3). De SDK neemt de UID en de bytes die je NFC-bibliotheek leest, dus hij is niet aan één lezer gebonden; de README toont nfc-pcsc met een ACR122U.

Hoe controleert hij of een chip echt is?

verify() controleert de ECDSA-P256-handtekening van de chip over de UID en de product-ID's, met de publieke sleutel uit het pakket. Het resultaat is valid, invalid, unsigned, no_key of no_uid, zonder serveraanroep.

Kan hij chips schrijven?

Hij bouwt de bytes: create(), patch(), asInit(), erase() en fromCatalog() geven een TigerTag waarvan toBytes() de inhoud is die je NFC-bibliotheek schrijft. De Burn-knop van de playground schrijft die naar de chips op aangesloten lezers.

Eén opdracht om te beginnen

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

Bekijk op npm