CborTag

import { CborTag } from "jsr:@ende/cbor";

class

class CborTag<T extends CborType | CborStreamInput | CborStreamOutput>

Represents a CBOR tag, which pairs a tag number with content, used to convey additional semantic information in CBOR-encoded data. CBOR Tags.

Example: Usage

import { assert, assertEquals } from "@ende/assert";
import { CborTag, decodeCbor, encodeCbor } from "@ende/cbor";
import { decodeBase64Url, encodeBase64Url } from "@ende/encoding";

const rawMessage = new TextEncoder().encode("Hello World");

const encodedMessage = encodeCbor(
  new CborTag(
    33, // TagNumber 33 specifies the tagContent must be a valid "base64url" "string".
    encodeBase64Url(rawMessage),
  ),
);

const decodedMessage = decodeCbor(encodedMessage);

assert(decodedMessage instanceof CborTag);
assert(typeof decodedMessage.tagContent === "string");
assertEquals(decodeBase64Url(decodedMessage.tagContent), rawMessage);

Constructors

constructor

new CborTag(tagNumber: number | bigint, tagContent: T)

Constructs a new instance.

tagNumber: number | bigint

A number or bigint representing the CBOR tag number, used to identify the type of the tagged content.

tagContent: T

The content associated with the tag of type T.

Properties

tagNumber

tagNumber: number | bigint

A number or bigint representing the CBOR tag number, used to identify the type of the tagged content. CBOR Tags.

Example: Usage

import { assert, assertEquals } from "@ende/assert";
import { CborTag, decodeCbor, encodeCbor } from "@ende/cbor";
import { decodeBase64Url, encodeBase64Url } from "@ende/encoding";

const rawMessage = new TextEncoder().encode("Hello World");

const encodedMessage = encodeCbor(
  new CborTag(
    33, // TagNumber 33 specifies the tagContent must be a valid "base64url" "string".
    encodeBase64Url(rawMessage),
  ),
);

const decodedMessage = decodeCbor(encodedMessage);

assert(decodedMessage instanceof CborTag);
assert(typeof decodedMessage.tagContent === "string");
assertEquals(decodeBase64Url(decodedMessage.tagContent), rawMessage);

tagContent

tagContent: T

The content associated with the tag of type T. CBOR Tags.

Example: Usage

import { assert, assertEquals } from "@ende/assert";
import { CborTag, decodeCbor, encodeCbor } from "@ende/cbor";
import { decodeBase64Url, encodeBase64Url } from "@ende/encoding";

const rawMessage = new TextEncoder().encode("Hello World");

const encodedMessage = encodeCbor(
  new CborTag(
    33, // TagNumber 33 specifies the tagContent must be a valid "base64url" "string".
    encodeBase64Url(rawMessage),
  ),
);

const decodedMessage = decodeCbor(encodedMessage);

assert(decodedMessage instanceof CborTag);
assert(typeof decodedMessage.tagContent === "string");
assertEquals(decodeBase64Url(decodedMessage.tagContent), rawMessage);

Source