SDK для JavaScript / Node.js

Читайте, проверяйте и записывайте чипы TigerTag на JavaScript.

SDK открытого протокола TigerTag для филамента и смолы для 3D-печати: превращает байты чипа в материал, цвет, параметры печати и количество, проверяет его подпись ECDSA-P256 без сети и собирает новые метки байт за байтом.

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
Текущая версия в npm
1.2.1Текущая версия в npm
Использует встроенные crypto и fetch
Node.js 18+Использует встроенные crypto и fetch
Зависимостей времени выполнения для чтения и проверки
0Зависимостей времени выполнения для чтения и проверки
Открытая лицензия с предоставлением патентных прав
Apache-2.0Открытая лицензия с предоставлением патентных прав

Что умеет SDK

Один пакет для всего, что связано с чипом TigerTag: чтения, проверки, записи и обновления данных.

Чтение любого дампа

fromPages(), fromDump() и fromFile() принимают UID с 80 или 144 байтами либо полный дамп на 180 байт. pretty(), describe() и toDict() возвращают текст, понятное описание или объекты для JSON.

Проверка подлинности без сети

verify() проверяет подпись ECDSA-P256, связывающую UID чипа с данными продукта, открытым ключом из пакета. Результат: valid, invalid, unsigned, no_key или no_uid.

Создание и изменение меток

create(), asInit(), patch() и erase() формируют байты чипа. TigerTag неизменяем: patch() возвращает новый объект и не позволяет менять idTigertag, idProduct, uid или подпись.

Сборка из каталога

TigerTag.fromCatalog(productId) собирает полный TigerTag+ из официального каталога продуктов, который загружается при первом использовании и кешируется в папке пользователя.

Синхронизация с производителем

Для чипов TigerTag+ методы rawApi(), diffApi() и patchFromApi() получают актуальные данные бренда, показывают отличия от чипа и применяют их.

Справочные данные, прежде всего офлайн

Таблицы материалов, брендов, видов поверхности, типов, диаметров и единиц входят в пакет. Фоновая проверка обновляет их не чаще раза в сутки; offline: true или TIGERTAG_OFFLINE=1 означает ноль сетевых запросов.

Прочитайте чип

Передайте в TigerTag.fromPages() 7-байтовый UID и байты, прочитанные NFC-библиотекой. pretty(), verify() и toDict() возвращают понятную сводку, результат проверки подписи и объект, готовый для JSON. Работает сразу после npm install, без настройки.

A TigerTag chip

Измените и запишите

Каждое изменение возвращает новый TigerTag; toBytes() даёт байты для записи. erase() даёт пустой чип.

TigerTag

Попробуйте без считывателя: playground

Локальная веб-страница, которую обслуживает сам SDK: она собирает и декодирует чипы TigerTag и показывает каждый байт. NFC-оборудование не нужно. Playground никогда не записывает подпись: выпустить её может только сертифицированный производитель.

Вопросы

Как установить TigerTag JavaScript SDK?

Выполните npm install tigertag, либо pnpm add tigertag, yarn add tigertag или bun add tigertag. Нужен Node.js 18 или новее; для чтения и проверки другие пакеты не нужны.

Нужно ли подключение к интернету?

Нет. Справочные таблицы и открытый ключ подписи входят в пакет, поэтому чтение и проверка работают без сети. Сеть используется только для ежедневной проверки таблиц, каталога продуктов и облачных методов TigerTag+; offline: true или TIGERTAG_OFFLINE=1 её отключает.

С какими NFC-чипами и считывателями он работает?

TigerTag использует чипы NTAG213, NTAG215 и NTAG216 (ISO 14443-3). SDK принимает UID и байты, прочитанные вашей NFC-библиотекой, поэтому не привязан к одному считывателю; в README показан nfc-pcsc с ACR122U.

Как он проверяет подлинность чипа?

verify() проверяет подпись ECDSA-P256 чипа по его UID и идентификаторам продукта открытым ключом из пакета. Возвращает valid, invalid, unsigned, no_key или no_uid без обращения к серверу.

Может ли он записывать чипы?

Он формирует байты: create(), patch(), asInit(), erase() и fromCatalog() дают TigerTag, чей toBytes() — содержимое, которое записывает ваша NFC-библиотека. Кнопка Burn в playground записывает его на чипы подключённых считывателей.

Одна команда для старта

npm install tigertag, затем TigerTag.fromPages(uid, payload).

Открыть в npm