SDK dla JavaScript / Node.js

Odczytuj, weryfikuj i zapisuj chipy TigerTag w JavaScript.

SDK otwartego protokołu TigerTag dla filamentu i żywicy do druku 3D: zamienia bajty chipu na materiał, kolor, ustawienia druku i ilość, sprawdza jego podpis ECDSA-P256 offline i buduje nowe tagi bajt po bajcie.

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
Bieżąca wersja w npm
1.2.1Bieżąca wersja w npm
Używa wbudowanych crypto i fetch
Node.js 18+Używa wbudowanych crypto i fetch
Zależności uruchomieniowe do odczytu i weryfikacji
0Zależności uruchomieniowe do odczytu i weryfikacji
Licencja open source z udzieleniem patentów
Apache-2.0Licencja open source z udzieleniem patentów

Co robi SDK

Jeden pakiet do wszystkiego, co dotyczy chipu TigerTag: odczytu, sprawdzania, zapisu i aktualizacji danych.

Odczyt dowolnego zrzutu

fromPages(), fromDump() i fromFile() przyjmują UID z 80 lub 144 bajtami albo pełny zrzut 180 bajtów. pretty(), describe() i toDict() zwracają tekst, akapit prostym językiem lub obiekty JSON.

Weryfikacja autentyczności offline

verify() sprawdza podpis ECDSA-P256, który wiąże UID chipu z danymi produktu, kluczem publicznym dołączonym do pakietu. Wynik to valid, invalid, unsigned, no_key lub no_uid.

Tworzenie i zmiana tagów

create(), asInit(), patch() i erase() budują bajty chipu. TigerTag jest niezmienny: patch() zwraca nowy obiekt i nie pozwala zmienić idTigertag, idProduct, uid ani podpisu.

Budowanie z katalogu

TigerTag.fromCatalog(productId) buduje kompletny TigerTag+ z oficjalnego katalogu produktów, pobieranego przy pierwszym użyciu i przechowywanego w pamięci podręcznej użytkownika.

Synchronizacja z producentem

Dla chipów TigerTag+ rawApi(), diffApi() i patchFromApi() pobierają aktualne dane produktu marki, pokazują różnice względem chipu i je stosują.

Dane referencyjne, najpierw offline

Tabele materiałów, marek, wyglądu, typów, średnic i jednostek są w pakiecie. Sprawdzenie w tle aktualizuje je najwyżej raz dziennie; offline: true lub TIGERTAG_OFFLINE=1 oznacza zero połączeń sieciowych.

Odczytaj chip

Przekaż do TigerTag.fromPages() 7-bajtowy UID i bajty odczytane przez bibliotekę NFC. pretty(), verify() i toDict() zwracają czytelne podsumowanie, wynik weryfikacji podpisu i obiekt gotowy do JSON. Działa zaraz po npm install, bez konfiguracji.

A TigerTag chip

Zmień i zapisz

Każda zmiana zwraca nowy TigerTag; toBytes() daje bajty do zapisania. erase() daje pusty chip.

TigerTag

Wypróbuj bez czytnika: playground

Lokalna strona internetowa, serwowana przez samo SDK, która buduje i dekoduje chipy TigerTag i pokazuje każdy bajt. Sprzęt NFC nie jest potrzebny. Playground nigdy nie zapisuje podpisu: może go wystawić tylko certyfikowany producent.

Pytania

Jak zainstalować TigerTag JavaScript SDK?

Uruchom npm install tigertag albo pnpm add tigertag, yarn add tigertag lub bun add tigertag. Wymaga Node.js 18 lub nowszego i żadnego innego pakietu do odczytu i weryfikacji.

Czy potrzebne jest połączenie z internetem?

Nie. Tabele referencyjne i klucz publiczny podpisu są w pakiecie, więc odczyt i weryfikacja działają offline. Sieć służy tylko do codziennego sprawdzenia tabel, katalogu produktów i metod chmurowych TigerTag+; offline: true lub TIGERTAG_OFFLINE=1 ją wyłącza.

Z jakimi chipami i czytnikami NFC działa?

TigerTag używa chipów NTAG213, NTAG215 i NTAG216 (ISO 14443-3). SDK przyjmuje UID i bajty odczytane przez bibliotekę NFC, więc nie jest związane z jednym czytnikiem; README pokazuje nfc-pcsc z ACR122U.

Jak sprawdza, czy chip jest oryginalny?

verify() sprawdza podpis ECDSA-P256 chipu obejmujący jego UID i identyfikatory produktu, kluczem publicznym dołączonym do pakietu. Zwraca valid, invalid, unsigned, no_key lub no_uid, bez łączenia się z serwerem.

Czy może zapisywać chipy?

Buduje bajty: create(), patch(), asInit(), erase() i fromCatalog() zwracają TigerTag, którego toBytes() to zawartość zapisywana przez bibliotekę NFC. Przycisk Burn w playground zapisuje ją na chipach podłączonych czytników.

Jedno polecenie na start

npm install tigertag, a potem TigerTag.fromPages(uid, payload).

Zobacz w npm