@bcts/tags 1.0.0-alpha.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +48 -0
- package/README.md +11 -0
- package/dist/index.cjs +273 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.cts +96 -0
- package/dist/index.d.cts.map +1 -0
- package/dist/index.d.mts +96 -0
- package/dist/index.d.mts.map +1 -0
- package/dist/index.iife.js +276 -0
- package/dist/index.iife.js.map +1 -0
- package/dist/index.mjs +197 -0
- package/dist/index.mjs.map +1 -0
- package/package.json +74 -0
- package/src/index.ts +13 -0
- package/src/tags-registry.ts +269 -0
|
@@ -0,0 +1,276 @@
|
|
|
1
|
+
var BCTags = (function(exports, __bcts_dcbor) {
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
//#region src/tags-registry.ts
|
|
5
|
+
/**
|
|
6
|
+
* CBOR Tags Registry
|
|
7
|
+
*
|
|
8
|
+
* This is a 1:1 port of the Rust bc-tags-rust implementation.
|
|
9
|
+
*
|
|
10
|
+
* @see https://github.com/BlockchainCommons/Research/blob/master/papers/bcr-2020-006-urtypes.md
|
|
11
|
+
*
|
|
12
|
+
* As of August 13 2022, the [IANA registry of CBOR tags](https://www.iana.org/assignments/cbor-tags/cbor-tags.xhtml)
|
|
13
|
+
* has the following low-numbered values available:
|
|
14
|
+
*
|
|
15
|
+
* One byte encoding: 6-15, 19-20
|
|
16
|
+
* Two byte encoding: 48-51, 53, 55-60, 62, 88-95, 99, 102, 105-109, 113-119,
|
|
17
|
+
* 128-255
|
|
18
|
+
*
|
|
19
|
+
* Tags in the range 0-23 require "standards action" for the IANA to recognize.
|
|
20
|
+
* Tags in the range 24-32767 require a specification to reserve.
|
|
21
|
+
* Tags in the range 24-255 only require two bytes to encode.
|
|
22
|
+
* Higher numbered tags are first-come, first-served.
|
|
23
|
+
*/
|
|
24
|
+
const URI = (0, __bcts_dcbor.createTag)(32, "url");
|
|
25
|
+
const UUID = (0, __bcts_dcbor.createTag)(37, "uuid");
|
|
26
|
+
const ENCODED_CBOR = (0, __bcts_dcbor.createTag)(24, "encoded-cbor");
|
|
27
|
+
const ENVELOPE = (0, __bcts_dcbor.createTag)(200, "envelope");
|
|
28
|
+
const LEAF = (0, __bcts_dcbor.createTag)(201, "leaf");
|
|
29
|
+
const JSON = (0, __bcts_dcbor.createTag)(262, "json");
|
|
30
|
+
const KNOWN_VALUE = (0, __bcts_dcbor.createTag)(4e4, "known-value");
|
|
31
|
+
const DIGEST = (0, __bcts_dcbor.createTag)(40001, "digest");
|
|
32
|
+
const ENCRYPTED = (0, __bcts_dcbor.createTag)(40002, "encrypted");
|
|
33
|
+
const COMPRESSED = (0, __bcts_dcbor.createTag)(40003, "compressed");
|
|
34
|
+
const REQUEST = (0, __bcts_dcbor.createTag)(40004, "request");
|
|
35
|
+
const RESPONSE = (0, __bcts_dcbor.createTag)(40005, "response");
|
|
36
|
+
const FUNCTION = (0, __bcts_dcbor.createTag)(40006, "function");
|
|
37
|
+
const PARAMETER = (0, __bcts_dcbor.createTag)(40007, "parameter");
|
|
38
|
+
const PLACEHOLDER = (0, __bcts_dcbor.createTag)(40008, "placeholder");
|
|
39
|
+
const REPLACEMENT = (0, __bcts_dcbor.createTag)(40009, "replacement");
|
|
40
|
+
const X25519_PRIVATE_KEY = (0, __bcts_dcbor.createTag)(40010, "agreement-private-key");
|
|
41
|
+
const X25519_PUBLIC_KEY = (0, __bcts_dcbor.createTag)(40011, "agreement-public-key");
|
|
42
|
+
const ARID = (0, __bcts_dcbor.createTag)(40012, "arid");
|
|
43
|
+
const PRIVATE_KEYS = (0, __bcts_dcbor.createTag)(40013, "crypto-prvkeys");
|
|
44
|
+
const NONCE = (0, __bcts_dcbor.createTag)(40014, "nonce");
|
|
45
|
+
const PASSWORD = (0, __bcts_dcbor.createTag)(40015, "password");
|
|
46
|
+
const PRIVATE_KEY_BASE = (0, __bcts_dcbor.createTag)(40016, "crypto-prvkey-base");
|
|
47
|
+
const PUBLIC_KEYS = (0, __bcts_dcbor.createTag)(40017, "crypto-pubkeys");
|
|
48
|
+
const SALT = (0, __bcts_dcbor.createTag)(40018, "salt");
|
|
49
|
+
const SEALED_MESSAGE = (0, __bcts_dcbor.createTag)(40019, "crypto-sealed");
|
|
50
|
+
const SIGNATURE = (0, __bcts_dcbor.createTag)(40020, "signature");
|
|
51
|
+
const SIGNING_PRIVATE_KEY = (0, __bcts_dcbor.createTag)(40021, "signing-private-key");
|
|
52
|
+
const SIGNING_PUBLIC_KEY = (0, __bcts_dcbor.createTag)(40022, "signing-public-key");
|
|
53
|
+
const SYMMETRIC_KEY = (0, __bcts_dcbor.createTag)(40023, "crypto-key");
|
|
54
|
+
const XID = (0, __bcts_dcbor.createTag)(40024, "xid");
|
|
55
|
+
const REFERENCE = (0, __bcts_dcbor.createTag)(40025, "reference");
|
|
56
|
+
const EVENT = (0, __bcts_dcbor.createTag)(40026, "event");
|
|
57
|
+
const ENCRYPTED_KEY = (0, __bcts_dcbor.createTag)(40027, "encrypted-key");
|
|
58
|
+
const MLKEM_PRIVATE_KEY = (0, __bcts_dcbor.createTag)(40100, "mlkem-private-key");
|
|
59
|
+
const MLKEM_PUBLIC_KEY = (0, __bcts_dcbor.createTag)(40101, "mlkem-public-key");
|
|
60
|
+
const MLKEM_CIPHERTEXT = (0, __bcts_dcbor.createTag)(40102, "mlkem-ciphertext");
|
|
61
|
+
const MLDSA_PRIVATE_KEY = (0, __bcts_dcbor.createTag)(40103, "mldsa-private-key");
|
|
62
|
+
const MLDSA_PUBLIC_KEY = (0, __bcts_dcbor.createTag)(40104, "mldsa-public-key");
|
|
63
|
+
const MLDSA_SIGNATURE = (0, __bcts_dcbor.createTag)(40105, "mldsa-signature");
|
|
64
|
+
const SEED = (0, __bcts_dcbor.createTag)(40300, "seed");
|
|
65
|
+
const HDKEY = (0, __bcts_dcbor.createTag)(40303, "hdkey");
|
|
66
|
+
const DERIVATION_PATH = (0, __bcts_dcbor.createTag)(40304, "keypath");
|
|
67
|
+
const USE_INFO = (0, __bcts_dcbor.createTag)(40305, "coin-info");
|
|
68
|
+
const EC_KEY = (0, __bcts_dcbor.createTag)(40306, "eckey");
|
|
69
|
+
const ADDRESS = (0, __bcts_dcbor.createTag)(40307, "address");
|
|
70
|
+
const OUTPUT_DESCRIPTOR = (0, __bcts_dcbor.createTag)(40308, "output-descriptor");
|
|
71
|
+
const SSKR_SHARE = (0, __bcts_dcbor.createTag)(40309, "sskr");
|
|
72
|
+
const PSBT = (0, __bcts_dcbor.createTag)(40310, "psbt");
|
|
73
|
+
const ACCOUNT_DESCRIPTOR = (0, __bcts_dcbor.createTag)(40311, "account-descriptor");
|
|
74
|
+
const SSH_TEXT_PRIVATE_KEY = (0, __bcts_dcbor.createTag)(40800, "ssh-private");
|
|
75
|
+
const SSH_TEXT_PUBLIC_KEY = (0, __bcts_dcbor.createTag)(40801, "ssh-public");
|
|
76
|
+
const SSH_TEXT_SIGNATURE = (0, __bcts_dcbor.createTag)(40802, "ssh-signature");
|
|
77
|
+
const SSH_TEXT_CERTIFICATE = (0, __bcts_dcbor.createTag)(40803, "ssh-certificate");
|
|
78
|
+
const PROVENANCE_MARK = (0, __bcts_dcbor.createTag)(1347571542, "provenance");
|
|
79
|
+
const SEED_V1 = (0, __bcts_dcbor.createTag)(300, "crypto-seed");
|
|
80
|
+
const EC_KEY_V1 = (0, __bcts_dcbor.createTag)(306, "crypto-eckey");
|
|
81
|
+
const SSKR_SHARE_V1 = (0, __bcts_dcbor.createTag)(309, "crypto-sskr");
|
|
82
|
+
const HDKEY_V1 = (0, __bcts_dcbor.createTag)(303, "crypto-hdkey");
|
|
83
|
+
const DERIVATION_PATH_V1 = (0, __bcts_dcbor.createTag)(304, "crypto-keypath");
|
|
84
|
+
const USE_INFO_V1 = (0, __bcts_dcbor.createTag)(305, "crypto-coin-info");
|
|
85
|
+
const OUTPUT_DESCRIPTOR_V1 = (0, __bcts_dcbor.createTag)(307, "crypto-output");
|
|
86
|
+
const PSBT_V1 = (0, __bcts_dcbor.createTag)(310, "crypto-psbt");
|
|
87
|
+
const ACCOUNT_V1 = (0, __bcts_dcbor.createTag)(311, "crypto-account");
|
|
88
|
+
const OUTPUT_SCRIPT_HASH = (0, __bcts_dcbor.createTag)(400, "output-script-hash");
|
|
89
|
+
const OUTPUT_WITNESS_SCRIPT_HASH = (0, __bcts_dcbor.createTag)(401, "output-witness-script-hash");
|
|
90
|
+
const OUTPUT_PUBLIC_KEY = (0, __bcts_dcbor.createTag)(402, "output-public-key");
|
|
91
|
+
const OUTPUT_PUBLIC_KEY_HASH = (0, __bcts_dcbor.createTag)(403, "output-public-key-hash");
|
|
92
|
+
const OUTPUT_WITNESS_PUBLIC_KEY_HASH = (0, __bcts_dcbor.createTag)(404, "output-witness-public-key-hash");
|
|
93
|
+
const OUTPUT_COMBO = (0, __bcts_dcbor.createTag)(405, "output-combo");
|
|
94
|
+
const OUTPUT_MULTISIG = (0, __bcts_dcbor.createTag)(406, "output-multisig");
|
|
95
|
+
const OUTPUT_SORTED_MULTISIG = (0, __bcts_dcbor.createTag)(407, "output-sorted-multisig");
|
|
96
|
+
const OUTPUT_RAW_SCRIPT = (0, __bcts_dcbor.createTag)(408, "output-raw-script");
|
|
97
|
+
const OUTPUT_TAPROOT = (0, __bcts_dcbor.createTag)(409, "output-taproot");
|
|
98
|
+
const OUTPUT_COSIGNER = (0, __bcts_dcbor.createTag)(410, "output-cosigner");
|
|
99
|
+
/**
|
|
100
|
+
* Register all Blockchain Commons tags in a specific tags store.
|
|
101
|
+
* This matches the Rust function `register_tags_in()`.
|
|
102
|
+
*
|
|
103
|
+
* @param tagsStore - The tags store to register tags into
|
|
104
|
+
*/
|
|
105
|
+
function registerTagsIn(tagsStore) {
|
|
106
|
+
(0, __bcts_dcbor.registerTagsIn)(tagsStore);
|
|
107
|
+
const tags = [
|
|
108
|
+
URI,
|
|
109
|
+
UUID,
|
|
110
|
+
ENCODED_CBOR,
|
|
111
|
+
ENVELOPE,
|
|
112
|
+
LEAF,
|
|
113
|
+
JSON,
|
|
114
|
+
KNOWN_VALUE,
|
|
115
|
+
DIGEST,
|
|
116
|
+
ENCRYPTED,
|
|
117
|
+
COMPRESSED,
|
|
118
|
+
REQUEST,
|
|
119
|
+
RESPONSE,
|
|
120
|
+
FUNCTION,
|
|
121
|
+
PARAMETER,
|
|
122
|
+
PLACEHOLDER,
|
|
123
|
+
REPLACEMENT,
|
|
124
|
+
EVENT,
|
|
125
|
+
SEED_V1,
|
|
126
|
+
EC_KEY_V1,
|
|
127
|
+
SSKR_SHARE_V1,
|
|
128
|
+
SEED,
|
|
129
|
+
EC_KEY,
|
|
130
|
+
SSKR_SHARE,
|
|
131
|
+
X25519_PRIVATE_KEY,
|
|
132
|
+
X25519_PUBLIC_KEY,
|
|
133
|
+
ARID,
|
|
134
|
+
PRIVATE_KEYS,
|
|
135
|
+
NONCE,
|
|
136
|
+
PASSWORD,
|
|
137
|
+
PRIVATE_KEY_BASE,
|
|
138
|
+
PUBLIC_KEYS,
|
|
139
|
+
SALT,
|
|
140
|
+
SEALED_MESSAGE,
|
|
141
|
+
SIGNATURE,
|
|
142
|
+
SIGNING_PRIVATE_KEY,
|
|
143
|
+
SIGNING_PUBLIC_KEY,
|
|
144
|
+
SYMMETRIC_KEY,
|
|
145
|
+
XID,
|
|
146
|
+
REFERENCE,
|
|
147
|
+
ENCRYPTED_KEY,
|
|
148
|
+
MLKEM_PRIVATE_KEY,
|
|
149
|
+
MLKEM_PUBLIC_KEY,
|
|
150
|
+
MLKEM_CIPHERTEXT,
|
|
151
|
+
MLDSA_PRIVATE_KEY,
|
|
152
|
+
MLDSA_PUBLIC_KEY,
|
|
153
|
+
MLDSA_SIGNATURE,
|
|
154
|
+
HDKEY_V1,
|
|
155
|
+
DERIVATION_PATH_V1,
|
|
156
|
+
USE_INFO_V1,
|
|
157
|
+
OUTPUT_DESCRIPTOR_V1,
|
|
158
|
+
PSBT_V1,
|
|
159
|
+
ACCOUNT_V1,
|
|
160
|
+
HDKEY,
|
|
161
|
+
DERIVATION_PATH,
|
|
162
|
+
USE_INFO,
|
|
163
|
+
ADDRESS,
|
|
164
|
+
OUTPUT_DESCRIPTOR,
|
|
165
|
+
PSBT,
|
|
166
|
+
ACCOUNT_DESCRIPTOR,
|
|
167
|
+
SSH_TEXT_PRIVATE_KEY,
|
|
168
|
+
SSH_TEXT_PUBLIC_KEY,
|
|
169
|
+
SSH_TEXT_SIGNATURE,
|
|
170
|
+
SSH_TEXT_CERTIFICATE,
|
|
171
|
+
OUTPUT_SCRIPT_HASH,
|
|
172
|
+
OUTPUT_WITNESS_SCRIPT_HASH,
|
|
173
|
+
OUTPUT_PUBLIC_KEY,
|
|
174
|
+
OUTPUT_PUBLIC_KEY_HASH,
|
|
175
|
+
OUTPUT_WITNESS_PUBLIC_KEY_HASH,
|
|
176
|
+
OUTPUT_COMBO,
|
|
177
|
+
OUTPUT_MULTISIG,
|
|
178
|
+
OUTPUT_SORTED_MULTISIG,
|
|
179
|
+
OUTPUT_RAW_SCRIPT,
|
|
180
|
+
OUTPUT_TAPROOT,
|
|
181
|
+
OUTPUT_COSIGNER,
|
|
182
|
+
PROVENANCE_MARK
|
|
183
|
+
];
|
|
184
|
+
tagsStore.insertAll(tags);
|
|
185
|
+
}
|
|
186
|
+
/**
|
|
187
|
+
* Register all Blockchain Commons tags in the global tags store.
|
|
188
|
+
* This matches the Rust function `register_tags()`.
|
|
189
|
+
*
|
|
190
|
+
* This function is idempotent - calling it multiple times is safe.
|
|
191
|
+
*/
|
|
192
|
+
function registerTags() {
|
|
193
|
+
registerTagsIn((0, __bcts_dcbor.getGlobalTagsStore)());
|
|
194
|
+
}
|
|
195
|
+
|
|
196
|
+
//#endregion
|
|
197
|
+
exports.ACCOUNT_DESCRIPTOR = ACCOUNT_DESCRIPTOR;
|
|
198
|
+
exports.ACCOUNT_V1 = ACCOUNT_V1;
|
|
199
|
+
exports.ADDRESS = ADDRESS;
|
|
200
|
+
exports.ARID = ARID;
|
|
201
|
+
exports.COMPRESSED = COMPRESSED;
|
|
202
|
+
exports.DERIVATION_PATH = DERIVATION_PATH;
|
|
203
|
+
exports.DERIVATION_PATH_V1 = DERIVATION_PATH_V1;
|
|
204
|
+
exports.DIGEST = DIGEST;
|
|
205
|
+
exports.EC_KEY = EC_KEY;
|
|
206
|
+
exports.EC_KEY_V1 = EC_KEY_V1;
|
|
207
|
+
exports.ENCODED_CBOR = ENCODED_CBOR;
|
|
208
|
+
exports.ENCRYPTED = ENCRYPTED;
|
|
209
|
+
exports.ENCRYPTED_KEY = ENCRYPTED_KEY;
|
|
210
|
+
exports.ENVELOPE = ENVELOPE;
|
|
211
|
+
exports.EVENT = EVENT;
|
|
212
|
+
exports.FUNCTION = FUNCTION;
|
|
213
|
+
exports.HDKEY = HDKEY;
|
|
214
|
+
exports.HDKEY_V1 = HDKEY_V1;
|
|
215
|
+
exports.JSON = JSON;
|
|
216
|
+
exports.KNOWN_VALUE = KNOWN_VALUE;
|
|
217
|
+
exports.LEAF = LEAF;
|
|
218
|
+
exports.MLDSA_PRIVATE_KEY = MLDSA_PRIVATE_KEY;
|
|
219
|
+
exports.MLDSA_PUBLIC_KEY = MLDSA_PUBLIC_KEY;
|
|
220
|
+
exports.MLDSA_SIGNATURE = MLDSA_SIGNATURE;
|
|
221
|
+
exports.MLKEM_CIPHERTEXT = MLKEM_CIPHERTEXT;
|
|
222
|
+
exports.MLKEM_PRIVATE_KEY = MLKEM_PRIVATE_KEY;
|
|
223
|
+
exports.MLKEM_PUBLIC_KEY = MLKEM_PUBLIC_KEY;
|
|
224
|
+
exports.NONCE = NONCE;
|
|
225
|
+
exports.OUTPUT_COMBO = OUTPUT_COMBO;
|
|
226
|
+
exports.OUTPUT_COSIGNER = OUTPUT_COSIGNER;
|
|
227
|
+
exports.OUTPUT_DESCRIPTOR = OUTPUT_DESCRIPTOR;
|
|
228
|
+
exports.OUTPUT_DESCRIPTOR_V1 = OUTPUT_DESCRIPTOR_V1;
|
|
229
|
+
exports.OUTPUT_MULTISIG = OUTPUT_MULTISIG;
|
|
230
|
+
exports.OUTPUT_PUBLIC_KEY = OUTPUT_PUBLIC_KEY;
|
|
231
|
+
exports.OUTPUT_PUBLIC_KEY_HASH = OUTPUT_PUBLIC_KEY_HASH;
|
|
232
|
+
exports.OUTPUT_RAW_SCRIPT = OUTPUT_RAW_SCRIPT;
|
|
233
|
+
exports.OUTPUT_SCRIPT_HASH = OUTPUT_SCRIPT_HASH;
|
|
234
|
+
exports.OUTPUT_SORTED_MULTISIG = OUTPUT_SORTED_MULTISIG;
|
|
235
|
+
exports.OUTPUT_TAPROOT = OUTPUT_TAPROOT;
|
|
236
|
+
exports.OUTPUT_WITNESS_PUBLIC_KEY_HASH = OUTPUT_WITNESS_PUBLIC_KEY_HASH;
|
|
237
|
+
exports.OUTPUT_WITNESS_SCRIPT_HASH = OUTPUT_WITNESS_SCRIPT_HASH;
|
|
238
|
+
exports.PARAMETER = PARAMETER;
|
|
239
|
+
exports.PASSWORD = PASSWORD;
|
|
240
|
+
exports.PLACEHOLDER = PLACEHOLDER;
|
|
241
|
+
exports.PRIVATE_KEYS = PRIVATE_KEYS;
|
|
242
|
+
exports.PRIVATE_KEY_BASE = PRIVATE_KEY_BASE;
|
|
243
|
+
exports.PROVENANCE_MARK = PROVENANCE_MARK;
|
|
244
|
+
exports.PSBT = PSBT;
|
|
245
|
+
exports.PSBT_V1 = PSBT_V1;
|
|
246
|
+
exports.PUBLIC_KEYS = PUBLIC_KEYS;
|
|
247
|
+
exports.REFERENCE = REFERENCE;
|
|
248
|
+
exports.REPLACEMENT = REPLACEMENT;
|
|
249
|
+
exports.REQUEST = REQUEST;
|
|
250
|
+
exports.RESPONSE = RESPONSE;
|
|
251
|
+
exports.SALT = SALT;
|
|
252
|
+
exports.SEALED_MESSAGE = SEALED_MESSAGE;
|
|
253
|
+
exports.SEED = SEED;
|
|
254
|
+
exports.SEED_V1 = SEED_V1;
|
|
255
|
+
exports.SIGNATURE = SIGNATURE;
|
|
256
|
+
exports.SIGNING_PRIVATE_KEY = SIGNING_PRIVATE_KEY;
|
|
257
|
+
exports.SIGNING_PUBLIC_KEY = SIGNING_PUBLIC_KEY;
|
|
258
|
+
exports.SSH_TEXT_CERTIFICATE = SSH_TEXT_CERTIFICATE;
|
|
259
|
+
exports.SSH_TEXT_PRIVATE_KEY = SSH_TEXT_PRIVATE_KEY;
|
|
260
|
+
exports.SSH_TEXT_PUBLIC_KEY = SSH_TEXT_PUBLIC_KEY;
|
|
261
|
+
exports.SSH_TEXT_SIGNATURE = SSH_TEXT_SIGNATURE;
|
|
262
|
+
exports.SSKR_SHARE = SSKR_SHARE;
|
|
263
|
+
exports.SSKR_SHARE_V1 = SSKR_SHARE_V1;
|
|
264
|
+
exports.SYMMETRIC_KEY = SYMMETRIC_KEY;
|
|
265
|
+
exports.URI = URI;
|
|
266
|
+
exports.USE_INFO = USE_INFO;
|
|
267
|
+
exports.USE_INFO_V1 = USE_INFO_V1;
|
|
268
|
+
exports.UUID = UUID;
|
|
269
|
+
exports.X25519_PRIVATE_KEY = X25519_PRIVATE_KEY;
|
|
270
|
+
exports.X25519_PUBLIC_KEY = X25519_PUBLIC_KEY;
|
|
271
|
+
exports.XID = XID;
|
|
272
|
+
exports.registerTags = registerTags;
|
|
273
|
+
exports.registerTagsIn = registerTagsIn;
|
|
274
|
+
return exports;
|
|
275
|
+
})({}, BCDcbor);
|
|
276
|
+
//# sourceMappingURL=index.iife.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.iife.js","names":["URI: Tag","UUID: Tag","ENCODED_CBOR: Tag","ENVELOPE: Tag","LEAF: Tag","JSON: Tag","KNOWN_VALUE: Tag","DIGEST: Tag","ENCRYPTED: Tag","COMPRESSED: Tag","REQUEST: Tag","RESPONSE: Tag","FUNCTION: Tag","PARAMETER: Tag","PLACEHOLDER: Tag","REPLACEMENT: Tag","X25519_PRIVATE_KEY: Tag","X25519_PUBLIC_KEY: Tag","ARID: Tag","PRIVATE_KEYS: Tag","NONCE: Tag","PASSWORD: Tag","PRIVATE_KEY_BASE: Tag","PUBLIC_KEYS: Tag","SALT: Tag","SEALED_MESSAGE: Tag","SIGNATURE: Tag","SIGNING_PRIVATE_KEY: Tag","SIGNING_PUBLIC_KEY: Tag","SYMMETRIC_KEY: Tag","XID: Tag","REFERENCE: Tag","EVENT: Tag","ENCRYPTED_KEY: Tag","MLKEM_PRIVATE_KEY: Tag","MLKEM_PUBLIC_KEY: Tag","MLKEM_CIPHERTEXT: Tag","MLDSA_PRIVATE_KEY: Tag","MLDSA_PUBLIC_KEY: Tag","MLDSA_SIGNATURE: Tag","SEED: Tag","HDKEY: Tag","DERIVATION_PATH: Tag","USE_INFO: Tag","EC_KEY: Tag","ADDRESS: Tag","OUTPUT_DESCRIPTOR: Tag","SSKR_SHARE: Tag","PSBT: Tag","ACCOUNT_DESCRIPTOR: Tag","SSH_TEXT_PRIVATE_KEY: Tag","SSH_TEXT_PUBLIC_KEY: Tag","SSH_TEXT_SIGNATURE: Tag","SSH_TEXT_CERTIFICATE: Tag","PROVENANCE_MARK: Tag","SEED_V1: Tag","EC_KEY_V1: Tag","SSKR_SHARE_V1: Tag","HDKEY_V1: Tag","DERIVATION_PATH_V1: Tag","USE_INFO_V1: Tag","OUTPUT_DESCRIPTOR_V1: Tag","PSBT_V1: Tag","ACCOUNT_V1: Tag","OUTPUT_SCRIPT_HASH: Tag","OUTPUT_WITNESS_SCRIPT_HASH: Tag","OUTPUT_PUBLIC_KEY: Tag","OUTPUT_PUBLIC_KEY_HASH: Tag","OUTPUT_WITNESS_PUBLIC_KEY_HASH: Tag","OUTPUT_COMBO: Tag","OUTPUT_MULTISIG: Tag","OUTPUT_SORTED_MULTISIG: Tag","OUTPUT_RAW_SCRIPT: Tag","OUTPUT_TAPROOT: Tag","OUTPUT_COSIGNER: Tag","tags: Tag[]"],"sources":["../src/tags-registry.ts"],"sourcesContent":["/**\n * CBOR Tags Registry\n *\n * This is a 1:1 port of the Rust bc-tags-rust implementation.\n *\n * @see https://github.com/BlockchainCommons/Research/blob/master/papers/bcr-2020-006-urtypes.md\n *\n * As of August 13 2022, the [IANA registry of CBOR tags](https://www.iana.org/assignments/cbor-tags/cbor-tags.xhtml)\n * has the following low-numbered values available:\n *\n * One byte encoding: 6-15, 19-20\n * Two byte encoding: 48-51, 53, 55-60, 62, 88-95, 99, 102, 105-109, 113-119,\n * 128-255\n *\n * Tags in the range 0-23 require \"standards action\" for the IANA to recognize.\n * Tags in the range 24-32767 require a specification to reserve.\n * Tags in the range 24-255 only require two bytes to encode.\n * Higher numbered tags are first-come, first-served.\n */\n\nimport {\n type Tag,\n createTag,\n type TagsStore,\n getGlobalTagsStore,\n registerTagsIn as registerDcborTagsIn,\n} from \"@bcts/dcbor\";\n\n// ============================================================================\n// Standard IANA Tags (re-used from dcbor but defined here for completeness)\n// ============================================================================\n\nexport const URI: Tag = createTag(32, \"url\");\nexport const UUID: Tag = createTag(37, \"uuid\");\n\n// A previous version of the Envelope spec used tag #6.24 (\"Encoded CBOR Item\")\n// as the header for the Envelope `leaf` case. Unfortunately, this was not a\n// correct use of the tag, as the contents of #6.24 (RFC8949 §3.4.5.1) MUST\n// always be a byte string, while we were simply using it as a wrapper/header\n// for any dCBOR data item.\n//\n// https://www.rfc-editor.org/rfc/rfc8949.html#name-encoded-cbor-data-item\n//\n// The new leaf tag is #6.201, but we will still recognize #6.24 for backwards\n// compatibility.\n\n// The only two tags that Blockchain Commons has registered in the\n// \"Specification Required\" range are the two tags for \"Gordian Envelope\"\n// (#6.200) and \"dCBOR/Envelope Leaf\" (#6.201).\n\n// ============================================================================\n// Core Envelope tags.\n// ============================================================================\n\nexport const ENCODED_CBOR: Tag = createTag(24, \"encoded-cbor\");\nexport const ENVELOPE: Tag = createTag(200, \"envelope\");\nexport const LEAF: Tag = createTag(201, \"leaf\"); // dCBOR data item\nexport const JSON: Tag = createTag(262, \"json\"); // bstr containing UTF-8 JSON text\n\n// ============================================================================\n// Envelope extension tags\n// ============================================================================\n\nexport const KNOWN_VALUE: Tag = createTag(40000, \"known-value\");\nexport const DIGEST: Tag = createTag(40001, \"digest\");\nexport const ENCRYPTED: Tag = createTag(40002, \"encrypted\");\nexport const COMPRESSED: Tag = createTag(40003, \"compressed\");\n\n// ============================================================================\n// Tags for subtypes specific to Distributed Function Calls.\n// ============================================================================\n\nexport const REQUEST: Tag = createTag(40004, \"request\");\nexport const RESPONSE: Tag = createTag(40005, \"response\");\nexport const FUNCTION: Tag = createTag(40006, \"function\");\nexport const PARAMETER: Tag = createTag(40007, \"parameter\");\nexport const PLACEHOLDER: Tag = createTag(40008, \"placeholder\");\nexport const REPLACEMENT: Tag = createTag(40009, \"replacement\");\n\nexport const X25519_PRIVATE_KEY: Tag = createTag(40010, \"agreement-private-key\");\nexport const X25519_PUBLIC_KEY: Tag = createTag(40011, \"agreement-public-key\");\nexport const ARID: Tag = createTag(40012, \"arid\");\nexport const PRIVATE_KEYS: Tag = createTag(40013, \"crypto-prvkeys\");\nexport const NONCE: Tag = createTag(40014, \"nonce\");\nexport const PASSWORD: Tag = createTag(40015, \"password\");\nexport const PRIVATE_KEY_BASE: Tag = createTag(40016, \"crypto-prvkey-base\");\n\nexport const PUBLIC_KEYS: Tag = createTag(40017, \"crypto-pubkeys\");\nexport const SALT: Tag = createTag(40018, \"salt\");\nexport const SEALED_MESSAGE: Tag = createTag(40019, \"crypto-sealed\");\nexport const SIGNATURE: Tag = createTag(40020, \"signature\");\nexport const SIGNING_PRIVATE_KEY: Tag = createTag(40021, \"signing-private-key\");\nexport const SIGNING_PUBLIC_KEY: Tag = createTag(40022, \"signing-public-key\");\nexport const SYMMETRIC_KEY: Tag = createTag(40023, \"crypto-key\");\nexport const XID: Tag = createTag(40024, \"xid\");\nexport const REFERENCE: Tag = createTag(40025, \"reference\");\nexport const EVENT: Tag = createTag(40026, \"event\");\n\nexport const ENCRYPTED_KEY: Tag = createTag(40027, \"encrypted-key\");\nexport const MLKEM_PRIVATE_KEY: Tag = createTag(40100, \"mlkem-private-key\");\nexport const MLKEM_PUBLIC_KEY: Tag = createTag(40101, \"mlkem-public-key\");\nexport const MLKEM_CIPHERTEXT: Tag = createTag(40102, \"mlkem-ciphertext\");\nexport const MLDSA_PRIVATE_KEY: Tag = createTag(40103, \"mldsa-private-key\");\nexport const MLDSA_PUBLIC_KEY: Tag = createTag(40104, \"mldsa-public-key\");\nexport const MLDSA_SIGNATURE: Tag = createTag(40105, \"mldsa-signature\");\nexport const SEED: Tag = createTag(40300, \"seed\");\nexport const HDKEY: Tag = createTag(40303, \"hdkey\");\nexport const DERIVATION_PATH: Tag = createTag(40304, \"keypath\");\n\nexport const USE_INFO: Tag = createTag(40305, \"coin-info\");\nexport const EC_KEY: Tag = createTag(40306, \"eckey\");\nexport const ADDRESS: Tag = createTag(40307, \"address\");\nexport const OUTPUT_DESCRIPTOR: Tag = createTag(40308, \"output-descriptor\");\nexport const SSKR_SHARE: Tag = createTag(40309, \"sskr\");\nexport const PSBT: Tag = createTag(40310, \"psbt\");\nexport const ACCOUNT_DESCRIPTOR: Tag = createTag(40311, \"account-descriptor\");\nexport const SSH_TEXT_PRIVATE_KEY: Tag = createTag(40800, \"ssh-private\");\nexport const SSH_TEXT_PUBLIC_KEY: Tag = createTag(40801, \"ssh-public\");\nexport const SSH_TEXT_SIGNATURE: Tag = createTag(40802, \"ssh-signature\");\nexport const SSH_TEXT_CERTIFICATE: Tag = createTag(40803, \"ssh-certificate\");\n\nexport const PROVENANCE_MARK: Tag = createTag(1347571542, \"provenance\");\n\n// ============================================================================\n// DEPRECATED TAGS\n// ============================================================================\n//\n// The following tags are deprecated and should not be used in new code.\n// Unfortunately, they are likely to be in active use by external developers,\n// but should never have been used as they are in the range of CBOR tags\n// requiring \"Specification\" action by IANA, which requires IANA experts to\n// review and approve the specification. These are harder to get approved than\n// \"First Come First Served\" tags, and we don't want to have to do that for\n// every new tag we create. Most of these tags have been replaced by \"First Come\n// First Served\" tags in the range of 40000+.\n\nexport const SEED_V1: Tag = createTag(300, \"crypto-seed\");\nexport const EC_KEY_V1: Tag = createTag(306, \"crypto-eckey\");\nexport const SSKR_SHARE_V1: Tag = createTag(309, \"crypto-sskr\");\n\nexport const HDKEY_V1: Tag = createTag(303, \"crypto-hdkey\");\nexport const DERIVATION_PATH_V1: Tag = createTag(304, \"crypto-keypath\");\nexport const USE_INFO_V1: Tag = createTag(305, \"crypto-coin-info\");\nexport const OUTPUT_DESCRIPTOR_V1: Tag = createTag(307, \"crypto-output\");\nexport const PSBT_V1: Tag = createTag(310, \"crypto-psbt\");\nexport const ACCOUNT_V1: Tag = createTag(311, \"crypto-account\");\n\n// ============================================================================\n// Tags for subtypes specific to AccountBundle (crypto-output).\n// ============================================================================\n\nexport const OUTPUT_SCRIPT_HASH: Tag = createTag(400, \"output-script-hash\");\nexport const OUTPUT_WITNESS_SCRIPT_HASH: Tag = createTag(401, \"output-witness-script-hash\");\nexport const OUTPUT_PUBLIC_KEY: Tag = createTag(402, \"output-public-key\");\nexport const OUTPUT_PUBLIC_KEY_HASH: Tag = createTag(403, \"output-public-key-hash\");\nexport const OUTPUT_WITNESS_PUBLIC_KEY_HASH: Tag = createTag(404, \"output-witness-public-key-hash\");\nexport const OUTPUT_COMBO: Tag = createTag(405, \"output-combo\");\nexport const OUTPUT_MULTISIG: Tag = createTag(406, \"output-multisig\");\nexport const OUTPUT_SORTED_MULTISIG: Tag = createTag(407, \"output-sorted-multisig\");\nexport const OUTPUT_RAW_SCRIPT: Tag = createTag(408, \"output-raw-script\");\nexport const OUTPUT_TAPROOT: Tag = createTag(409, \"output-taproot\");\nexport const OUTPUT_COSIGNER: Tag = createTag(410, \"output-cosigner\");\n\n// ============================================================================\n// Registration Functions\n// ============================================================================\n\n/**\n * Register all Blockchain Commons tags in a specific tags store.\n * This matches the Rust function `register_tags_in()`.\n *\n * @param tagsStore - The tags store to register tags into\n */\nexport function registerTagsIn(tagsStore: TagsStore): void {\n // First register dcbor's tags\n registerDcborTagsIn(tagsStore);\n\n // Then register all Blockchain Commons tags\n const tags: Tag[] = [\n URI,\n UUID,\n ENCODED_CBOR,\n ENVELOPE,\n LEAF,\n JSON,\n KNOWN_VALUE,\n DIGEST,\n ENCRYPTED,\n COMPRESSED,\n REQUEST,\n RESPONSE,\n FUNCTION,\n PARAMETER,\n PLACEHOLDER,\n REPLACEMENT,\n EVENT,\n SEED_V1,\n EC_KEY_V1,\n SSKR_SHARE_V1,\n SEED,\n EC_KEY,\n SSKR_SHARE,\n X25519_PRIVATE_KEY,\n X25519_PUBLIC_KEY,\n ARID,\n PRIVATE_KEYS,\n NONCE,\n PASSWORD,\n PRIVATE_KEY_BASE,\n PUBLIC_KEYS,\n SALT,\n SEALED_MESSAGE,\n SIGNATURE,\n SIGNING_PRIVATE_KEY,\n SIGNING_PUBLIC_KEY,\n SYMMETRIC_KEY,\n XID,\n REFERENCE,\n ENCRYPTED_KEY,\n MLKEM_PRIVATE_KEY,\n MLKEM_PUBLIC_KEY,\n MLKEM_CIPHERTEXT,\n MLDSA_PRIVATE_KEY,\n MLDSA_PUBLIC_KEY,\n MLDSA_SIGNATURE,\n HDKEY_V1,\n DERIVATION_PATH_V1,\n USE_INFO_V1,\n OUTPUT_DESCRIPTOR_V1,\n PSBT_V1,\n ACCOUNT_V1,\n HDKEY,\n DERIVATION_PATH,\n USE_INFO,\n ADDRESS,\n OUTPUT_DESCRIPTOR,\n PSBT,\n ACCOUNT_DESCRIPTOR,\n SSH_TEXT_PRIVATE_KEY,\n SSH_TEXT_PUBLIC_KEY,\n SSH_TEXT_SIGNATURE,\n SSH_TEXT_CERTIFICATE,\n OUTPUT_SCRIPT_HASH,\n OUTPUT_WITNESS_SCRIPT_HASH,\n OUTPUT_PUBLIC_KEY,\n OUTPUT_PUBLIC_KEY_HASH,\n OUTPUT_WITNESS_PUBLIC_KEY_HASH,\n OUTPUT_COMBO,\n OUTPUT_MULTISIG,\n OUTPUT_SORTED_MULTISIG,\n OUTPUT_RAW_SCRIPT,\n OUTPUT_TAPROOT,\n OUTPUT_COSIGNER,\n PROVENANCE_MARK,\n ];\n\n tagsStore.insertAll(tags);\n}\n\n/**\n * Register all Blockchain Commons tags in the global tags store.\n * This matches the Rust function `register_tags()`.\n *\n * This function is idempotent - calling it multiple times is safe.\n */\nexport function registerTags(): void {\n const globalStore = getGlobalTagsStore();\n registerTagsIn(globalStore);\n}\n"],"mappings":"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"}
|
package/dist/index.mjs
ADDED
|
@@ -0,0 +1,197 @@
|
|
|
1
|
+
import { createTag, getGlobalTagsStore, registerTagsIn as registerTagsIn$1 } from "@bcts/dcbor";
|
|
2
|
+
|
|
3
|
+
//#region src/tags-registry.ts
|
|
4
|
+
/**
|
|
5
|
+
* CBOR Tags Registry
|
|
6
|
+
*
|
|
7
|
+
* This is a 1:1 port of the Rust bc-tags-rust implementation.
|
|
8
|
+
*
|
|
9
|
+
* @see https://github.com/BlockchainCommons/Research/blob/master/papers/bcr-2020-006-urtypes.md
|
|
10
|
+
*
|
|
11
|
+
* As of August 13 2022, the [IANA registry of CBOR tags](https://www.iana.org/assignments/cbor-tags/cbor-tags.xhtml)
|
|
12
|
+
* has the following low-numbered values available:
|
|
13
|
+
*
|
|
14
|
+
* One byte encoding: 6-15, 19-20
|
|
15
|
+
* Two byte encoding: 48-51, 53, 55-60, 62, 88-95, 99, 102, 105-109, 113-119,
|
|
16
|
+
* 128-255
|
|
17
|
+
*
|
|
18
|
+
* Tags in the range 0-23 require "standards action" for the IANA to recognize.
|
|
19
|
+
* Tags in the range 24-32767 require a specification to reserve.
|
|
20
|
+
* Tags in the range 24-255 only require two bytes to encode.
|
|
21
|
+
* Higher numbered tags are first-come, first-served.
|
|
22
|
+
*/
|
|
23
|
+
const URI = createTag(32, "url");
|
|
24
|
+
const UUID = createTag(37, "uuid");
|
|
25
|
+
const ENCODED_CBOR = createTag(24, "encoded-cbor");
|
|
26
|
+
const ENVELOPE = createTag(200, "envelope");
|
|
27
|
+
const LEAF = createTag(201, "leaf");
|
|
28
|
+
const JSON = createTag(262, "json");
|
|
29
|
+
const KNOWN_VALUE = createTag(4e4, "known-value");
|
|
30
|
+
const DIGEST = createTag(40001, "digest");
|
|
31
|
+
const ENCRYPTED = createTag(40002, "encrypted");
|
|
32
|
+
const COMPRESSED = createTag(40003, "compressed");
|
|
33
|
+
const REQUEST = createTag(40004, "request");
|
|
34
|
+
const RESPONSE = createTag(40005, "response");
|
|
35
|
+
const FUNCTION = createTag(40006, "function");
|
|
36
|
+
const PARAMETER = createTag(40007, "parameter");
|
|
37
|
+
const PLACEHOLDER = createTag(40008, "placeholder");
|
|
38
|
+
const REPLACEMENT = createTag(40009, "replacement");
|
|
39
|
+
const X25519_PRIVATE_KEY = createTag(40010, "agreement-private-key");
|
|
40
|
+
const X25519_PUBLIC_KEY = createTag(40011, "agreement-public-key");
|
|
41
|
+
const ARID = createTag(40012, "arid");
|
|
42
|
+
const PRIVATE_KEYS = createTag(40013, "crypto-prvkeys");
|
|
43
|
+
const NONCE = createTag(40014, "nonce");
|
|
44
|
+
const PASSWORD = createTag(40015, "password");
|
|
45
|
+
const PRIVATE_KEY_BASE = createTag(40016, "crypto-prvkey-base");
|
|
46
|
+
const PUBLIC_KEYS = createTag(40017, "crypto-pubkeys");
|
|
47
|
+
const SALT = createTag(40018, "salt");
|
|
48
|
+
const SEALED_MESSAGE = createTag(40019, "crypto-sealed");
|
|
49
|
+
const SIGNATURE = createTag(40020, "signature");
|
|
50
|
+
const SIGNING_PRIVATE_KEY = createTag(40021, "signing-private-key");
|
|
51
|
+
const SIGNING_PUBLIC_KEY = createTag(40022, "signing-public-key");
|
|
52
|
+
const SYMMETRIC_KEY = createTag(40023, "crypto-key");
|
|
53
|
+
const XID = createTag(40024, "xid");
|
|
54
|
+
const REFERENCE = createTag(40025, "reference");
|
|
55
|
+
const EVENT = createTag(40026, "event");
|
|
56
|
+
const ENCRYPTED_KEY = createTag(40027, "encrypted-key");
|
|
57
|
+
const MLKEM_PRIVATE_KEY = createTag(40100, "mlkem-private-key");
|
|
58
|
+
const MLKEM_PUBLIC_KEY = createTag(40101, "mlkem-public-key");
|
|
59
|
+
const MLKEM_CIPHERTEXT = createTag(40102, "mlkem-ciphertext");
|
|
60
|
+
const MLDSA_PRIVATE_KEY = createTag(40103, "mldsa-private-key");
|
|
61
|
+
const MLDSA_PUBLIC_KEY = createTag(40104, "mldsa-public-key");
|
|
62
|
+
const MLDSA_SIGNATURE = createTag(40105, "mldsa-signature");
|
|
63
|
+
const SEED = createTag(40300, "seed");
|
|
64
|
+
const HDKEY = createTag(40303, "hdkey");
|
|
65
|
+
const DERIVATION_PATH = createTag(40304, "keypath");
|
|
66
|
+
const USE_INFO = createTag(40305, "coin-info");
|
|
67
|
+
const EC_KEY = createTag(40306, "eckey");
|
|
68
|
+
const ADDRESS = createTag(40307, "address");
|
|
69
|
+
const OUTPUT_DESCRIPTOR = createTag(40308, "output-descriptor");
|
|
70
|
+
const SSKR_SHARE = createTag(40309, "sskr");
|
|
71
|
+
const PSBT = createTag(40310, "psbt");
|
|
72
|
+
const ACCOUNT_DESCRIPTOR = createTag(40311, "account-descriptor");
|
|
73
|
+
const SSH_TEXT_PRIVATE_KEY = createTag(40800, "ssh-private");
|
|
74
|
+
const SSH_TEXT_PUBLIC_KEY = createTag(40801, "ssh-public");
|
|
75
|
+
const SSH_TEXT_SIGNATURE = createTag(40802, "ssh-signature");
|
|
76
|
+
const SSH_TEXT_CERTIFICATE = createTag(40803, "ssh-certificate");
|
|
77
|
+
const PROVENANCE_MARK = createTag(1347571542, "provenance");
|
|
78
|
+
const SEED_V1 = createTag(300, "crypto-seed");
|
|
79
|
+
const EC_KEY_V1 = createTag(306, "crypto-eckey");
|
|
80
|
+
const SSKR_SHARE_V1 = createTag(309, "crypto-sskr");
|
|
81
|
+
const HDKEY_V1 = createTag(303, "crypto-hdkey");
|
|
82
|
+
const DERIVATION_PATH_V1 = createTag(304, "crypto-keypath");
|
|
83
|
+
const USE_INFO_V1 = createTag(305, "crypto-coin-info");
|
|
84
|
+
const OUTPUT_DESCRIPTOR_V1 = createTag(307, "crypto-output");
|
|
85
|
+
const PSBT_V1 = createTag(310, "crypto-psbt");
|
|
86
|
+
const ACCOUNT_V1 = createTag(311, "crypto-account");
|
|
87
|
+
const OUTPUT_SCRIPT_HASH = createTag(400, "output-script-hash");
|
|
88
|
+
const OUTPUT_WITNESS_SCRIPT_HASH = createTag(401, "output-witness-script-hash");
|
|
89
|
+
const OUTPUT_PUBLIC_KEY = createTag(402, "output-public-key");
|
|
90
|
+
const OUTPUT_PUBLIC_KEY_HASH = createTag(403, "output-public-key-hash");
|
|
91
|
+
const OUTPUT_WITNESS_PUBLIC_KEY_HASH = createTag(404, "output-witness-public-key-hash");
|
|
92
|
+
const OUTPUT_COMBO = createTag(405, "output-combo");
|
|
93
|
+
const OUTPUT_MULTISIG = createTag(406, "output-multisig");
|
|
94
|
+
const OUTPUT_SORTED_MULTISIG = createTag(407, "output-sorted-multisig");
|
|
95
|
+
const OUTPUT_RAW_SCRIPT = createTag(408, "output-raw-script");
|
|
96
|
+
const OUTPUT_TAPROOT = createTag(409, "output-taproot");
|
|
97
|
+
const OUTPUT_COSIGNER = createTag(410, "output-cosigner");
|
|
98
|
+
/**
|
|
99
|
+
* Register all Blockchain Commons tags in a specific tags store.
|
|
100
|
+
* This matches the Rust function `register_tags_in()`.
|
|
101
|
+
*
|
|
102
|
+
* @param tagsStore - The tags store to register tags into
|
|
103
|
+
*/
|
|
104
|
+
function registerTagsIn(tagsStore) {
|
|
105
|
+
registerTagsIn$1(tagsStore);
|
|
106
|
+
const tags = [
|
|
107
|
+
URI,
|
|
108
|
+
UUID,
|
|
109
|
+
ENCODED_CBOR,
|
|
110
|
+
ENVELOPE,
|
|
111
|
+
LEAF,
|
|
112
|
+
JSON,
|
|
113
|
+
KNOWN_VALUE,
|
|
114
|
+
DIGEST,
|
|
115
|
+
ENCRYPTED,
|
|
116
|
+
COMPRESSED,
|
|
117
|
+
REQUEST,
|
|
118
|
+
RESPONSE,
|
|
119
|
+
FUNCTION,
|
|
120
|
+
PARAMETER,
|
|
121
|
+
PLACEHOLDER,
|
|
122
|
+
REPLACEMENT,
|
|
123
|
+
EVENT,
|
|
124
|
+
SEED_V1,
|
|
125
|
+
EC_KEY_V1,
|
|
126
|
+
SSKR_SHARE_V1,
|
|
127
|
+
SEED,
|
|
128
|
+
EC_KEY,
|
|
129
|
+
SSKR_SHARE,
|
|
130
|
+
X25519_PRIVATE_KEY,
|
|
131
|
+
X25519_PUBLIC_KEY,
|
|
132
|
+
ARID,
|
|
133
|
+
PRIVATE_KEYS,
|
|
134
|
+
NONCE,
|
|
135
|
+
PASSWORD,
|
|
136
|
+
PRIVATE_KEY_BASE,
|
|
137
|
+
PUBLIC_KEYS,
|
|
138
|
+
SALT,
|
|
139
|
+
SEALED_MESSAGE,
|
|
140
|
+
SIGNATURE,
|
|
141
|
+
SIGNING_PRIVATE_KEY,
|
|
142
|
+
SIGNING_PUBLIC_KEY,
|
|
143
|
+
SYMMETRIC_KEY,
|
|
144
|
+
XID,
|
|
145
|
+
REFERENCE,
|
|
146
|
+
ENCRYPTED_KEY,
|
|
147
|
+
MLKEM_PRIVATE_KEY,
|
|
148
|
+
MLKEM_PUBLIC_KEY,
|
|
149
|
+
MLKEM_CIPHERTEXT,
|
|
150
|
+
MLDSA_PRIVATE_KEY,
|
|
151
|
+
MLDSA_PUBLIC_KEY,
|
|
152
|
+
MLDSA_SIGNATURE,
|
|
153
|
+
HDKEY_V1,
|
|
154
|
+
DERIVATION_PATH_V1,
|
|
155
|
+
USE_INFO_V1,
|
|
156
|
+
OUTPUT_DESCRIPTOR_V1,
|
|
157
|
+
PSBT_V1,
|
|
158
|
+
ACCOUNT_V1,
|
|
159
|
+
HDKEY,
|
|
160
|
+
DERIVATION_PATH,
|
|
161
|
+
USE_INFO,
|
|
162
|
+
ADDRESS,
|
|
163
|
+
OUTPUT_DESCRIPTOR,
|
|
164
|
+
PSBT,
|
|
165
|
+
ACCOUNT_DESCRIPTOR,
|
|
166
|
+
SSH_TEXT_PRIVATE_KEY,
|
|
167
|
+
SSH_TEXT_PUBLIC_KEY,
|
|
168
|
+
SSH_TEXT_SIGNATURE,
|
|
169
|
+
SSH_TEXT_CERTIFICATE,
|
|
170
|
+
OUTPUT_SCRIPT_HASH,
|
|
171
|
+
OUTPUT_WITNESS_SCRIPT_HASH,
|
|
172
|
+
OUTPUT_PUBLIC_KEY,
|
|
173
|
+
OUTPUT_PUBLIC_KEY_HASH,
|
|
174
|
+
OUTPUT_WITNESS_PUBLIC_KEY_HASH,
|
|
175
|
+
OUTPUT_COMBO,
|
|
176
|
+
OUTPUT_MULTISIG,
|
|
177
|
+
OUTPUT_SORTED_MULTISIG,
|
|
178
|
+
OUTPUT_RAW_SCRIPT,
|
|
179
|
+
OUTPUT_TAPROOT,
|
|
180
|
+
OUTPUT_COSIGNER,
|
|
181
|
+
PROVENANCE_MARK
|
|
182
|
+
];
|
|
183
|
+
tagsStore.insertAll(tags);
|
|
184
|
+
}
|
|
185
|
+
/**
|
|
186
|
+
* Register all Blockchain Commons tags in the global tags store.
|
|
187
|
+
* This matches the Rust function `register_tags()`.
|
|
188
|
+
*
|
|
189
|
+
* This function is idempotent - calling it multiple times is safe.
|
|
190
|
+
*/
|
|
191
|
+
function registerTags() {
|
|
192
|
+
registerTagsIn(getGlobalTagsStore());
|
|
193
|
+
}
|
|
194
|
+
|
|
195
|
+
//#endregion
|
|
196
|
+
export { ACCOUNT_DESCRIPTOR, ACCOUNT_V1, ADDRESS, ARID, COMPRESSED, DERIVATION_PATH, DERIVATION_PATH_V1, DIGEST, EC_KEY, EC_KEY_V1, ENCODED_CBOR, ENCRYPTED, ENCRYPTED_KEY, ENVELOPE, EVENT, FUNCTION, HDKEY, HDKEY_V1, JSON, KNOWN_VALUE, LEAF, MLDSA_PRIVATE_KEY, MLDSA_PUBLIC_KEY, MLDSA_SIGNATURE, MLKEM_CIPHERTEXT, MLKEM_PRIVATE_KEY, MLKEM_PUBLIC_KEY, NONCE, OUTPUT_COMBO, OUTPUT_COSIGNER, OUTPUT_DESCRIPTOR, OUTPUT_DESCRIPTOR_V1, OUTPUT_MULTISIG, OUTPUT_PUBLIC_KEY, OUTPUT_PUBLIC_KEY_HASH, OUTPUT_RAW_SCRIPT, OUTPUT_SCRIPT_HASH, OUTPUT_SORTED_MULTISIG, OUTPUT_TAPROOT, OUTPUT_WITNESS_PUBLIC_KEY_HASH, OUTPUT_WITNESS_SCRIPT_HASH, PARAMETER, PASSWORD, PLACEHOLDER, PRIVATE_KEYS, PRIVATE_KEY_BASE, PROVENANCE_MARK, PSBT, PSBT_V1, PUBLIC_KEYS, REFERENCE, REPLACEMENT, REQUEST, RESPONSE, SALT, SEALED_MESSAGE, SEED, SEED_V1, SIGNATURE, SIGNING_PRIVATE_KEY, SIGNING_PUBLIC_KEY, SSH_TEXT_CERTIFICATE, SSH_TEXT_PRIVATE_KEY, SSH_TEXT_PUBLIC_KEY, SSH_TEXT_SIGNATURE, SSKR_SHARE, SSKR_SHARE_V1, SYMMETRIC_KEY, URI, USE_INFO, USE_INFO_V1, UUID, X25519_PRIVATE_KEY, X25519_PUBLIC_KEY, XID, registerTags, registerTagsIn };
|
|
197
|
+
//# sourceMappingURL=index.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.mjs","names":["URI: Tag","UUID: Tag","ENCODED_CBOR: Tag","ENVELOPE: Tag","LEAF: Tag","JSON: Tag","KNOWN_VALUE: Tag","DIGEST: Tag","ENCRYPTED: Tag","COMPRESSED: Tag","REQUEST: Tag","RESPONSE: Tag","FUNCTION: Tag","PARAMETER: Tag","PLACEHOLDER: Tag","REPLACEMENT: Tag","X25519_PRIVATE_KEY: Tag","X25519_PUBLIC_KEY: Tag","ARID: Tag","PRIVATE_KEYS: Tag","NONCE: Tag","PASSWORD: Tag","PRIVATE_KEY_BASE: Tag","PUBLIC_KEYS: Tag","SALT: Tag","SEALED_MESSAGE: Tag","SIGNATURE: Tag","SIGNING_PRIVATE_KEY: Tag","SIGNING_PUBLIC_KEY: Tag","SYMMETRIC_KEY: Tag","XID: Tag","REFERENCE: Tag","EVENT: Tag","ENCRYPTED_KEY: Tag","MLKEM_PRIVATE_KEY: Tag","MLKEM_PUBLIC_KEY: Tag","MLKEM_CIPHERTEXT: Tag","MLDSA_PRIVATE_KEY: Tag","MLDSA_PUBLIC_KEY: Tag","MLDSA_SIGNATURE: Tag","SEED: Tag","HDKEY: Tag","DERIVATION_PATH: Tag","USE_INFO: Tag","EC_KEY: Tag","ADDRESS: Tag","OUTPUT_DESCRIPTOR: Tag","SSKR_SHARE: Tag","PSBT: Tag","ACCOUNT_DESCRIPTOR: Tag","SSH_TEXT_PRIVATE_KEY: Tag","SSH_TEXT_PUBLIC_KEY: Tag","SSH_TEXT_SIGNATURE: Tag","SSH_TEXT_CERTIFICATE: Tag","PROVENANCE_MARK: Tag","SEED_V1: Tag","EC_KEY_V1: Tag","SSKR_SHARE_V1: Tag","HDKEY_V1: Tag","DERIVATION_PATH_V1: Tag","USE_INFO_V1: Tag","OUTPUT_DESCRIPTOR_V1: Tag","PSBT_V1: Tag","ACCOUNT_V1: Tag","OUTPUT_SCRIPT_HASH: Tag","OUTPUT_WITNESS_SCRIPT_HASH: Tag","OUTPUT_PUBLIC_KEY: Tag","OUTPUT_PUBLIC_KEY_HASH: Tag","OUTPUT_WITNESS_PUBLIC_KEY_HASH: Tag","OUTPUT_COMBO: Tag","OUTPUT_MULTISIG: Tag","OUTPUT_SORTED_MULTISIG: Tag","OUTPUT_RAW_SCRIPT: Tag","OUTPUT_TAPROOT: Tag","OUTPUT_COSIGNER: Tag","tags: Tag[]"],"sources":["../src/tags-registry.ts"],"sourcesContent":["/**\n * CBOR Tags Registry\n *\n * This is a 1:1 port of the Rust bc-tags-rust implementation.\n *\n * @see https://github.com/BlockchainCommons/Research/blob/master/papers/bcr-2020-006-urtypes.md\n *\n * As of August 13 2022, the [IANA registry of CBOR tags](https://www.iana.org/assignments/cbor-tags/cbor-tags.xhtml)\n * has the following low-numbered values available:\n *\n * One byte encoding: 6-15, 19-20\n * Two byte encoding: 48-51, 53, 55-60, 62, 88-95, 99, 102, 105-109, 113-119,\n * 128-255\n *\n * Tags in the range 0-23 require \"standards action\" for the IANA to recognize.\n * Tags in the range 24-32767 require a specification to reserve.\n * Tags in the range 24-255 only require two bytes to encode.\n * Higher numbered tags are first-come, first-served.\n */\n\nimport {\n type Tag,\n createTag,\n type TagsStore,\n getGlobalTagsStore,\n registerTagsIn as registerDcborTagsIn,\n} from \"@bcts/dcbor\";\n\n// ============================================================================\n// Standard IANA Tags (re-used from dcbor but defined here for completeness)\n// ============================================================================\n\nexport const URI: Tag = createTag(32, \"url\");\nexport const UUID: Tag = createTag(37, \"uuid\");\n\n// A previous version of the Envelope spec used tag #6.24 (\"Encoded CBOR Item\")\n// as the header for the Envelope `leaf` case. Unfortunately, this was not a\n// correct use of the tag, as the contents of #6.24 (RFC8949 §3.4.5.1) MUST\n// always be a byte string, while we were simply using it as a wrapper/header\n// for any dCBOR data item.\n//\n// https://www.rfc-editor.org/rfc/rfc8949.html#name-encoded-cbor-data-item\n//\n// The new leaf tag is #6.201, but we will still recognize #6.24 for backwards\n// compatibility.\n\n// The only two tags that Blockchain Commons has registered in the\n// \"Specification Required\" range are the two tags for \"Gordian Envelope\"\n// (#6.200) and \"dCBOR/Envelope Leaf\" (#6.201).\n\n// ============================================================================\n// Core Envelope tags.\n// ============================================================================\n\nexport const ENCODED_CBOR: Tag = createTag(24, \"encoded-cbor\");\nexport const ENVELOPE: Tag = createTag(200, \"envelope\");\nexport const LEAF: Tag = createTag(201, \"leaf\"); // dCBOR data item\nexport const JSON: Tag = createTag(262, \"json\"); // bstr containing UTF-8 JSON text\n\n// ============================================================================\n// Envelope extension tags\n// ============================================================================\n\nexport const KNOWN_VALUE: Tag = createTag(40000, \"known-value\");\nexport const DIGEST: Tag = createTag(40001, \"digest\");\nexport const ENCRYPTED: Tag = createTag(40002, \"encrypted\");\nexport const COMPRESSED: Tag = createTag(40003, \"compressed\");\n\n// ============================================================================\n// Tags for subtypes specific to Distributed Function Calls.\n// ============================================================================\n\nexport const REQUEST: Tag = createTag(40004, \"request\");\nexport const RESPONSE: Tag = createTag(40005, \"response\");\nexport const FUNCTION: Tag = createTag(40006, \"function\");\nexport const PARAMETER: Tag = createTag(40007, \"parameter\");\nexport const PLACEHOLDER: Tag = createTag(40008, \"placeholder\");\nexport const REPLACEMENT: Tag = createTag(40009, \"replacement\");\n\nexport const X25519_PRIVATE_KEY: Tag = createTag(40010, \"agreement-private-key\");\nexport const X25519_PUBLIC_KEY: Tag = createTag(40011, \"agreement-public-key\");\nexport const ARID: Tag = createTag(40012, \"arid\");\nexport const PRIVATE_KEYS: Tag = createTag(40013, \"crypto-prvkeys\");\nexport const NONCE: Tag = createTag(40014, \"nonce\");\nexport const PASSWORD: Tag = createTag(40015, \"password\");\nexport const PRIVATE_KEY_BASE: Tag = createTag(40016, \"crypto-prvkey-base\");\n\nexport const PUBLIC_KEYS: Tag = createTag(40017, \"crypto-pubkeys\");\nexport const SALT: Tag = createTag(40018, \"salt\");\nexport const SEALED_MESSAGE: Tag = createTag(40019, \"crypto-sealed\");\nexport const SIGNATURE: Tag = createTag(40020, \"signature\");\nexport const SIGNING_PRIVATE_KEY: Tag = createTag(40021, \"signing-private-key\");\nexport const SIGNING_PUBLIC_KEY: Tag = createTag(40022, \"signing-public-key\");\nexport const SYMMETRIC_KEY: Tag = createTag(40023, \"crypto-key\");\nexport const XID: Tag = createTag(40024, \"xid\");\nexport const REFERENCE: Tag = createTag(40025, \"reference\");\nexport const EVENT: Tag = createTag(40026, \"event\");\n\nexport const ENCRYPTED_KEY: Tag = createTag(40027, \"encrypted-key\");\nexport const MLKEM_PRIVATE_KEY: Tag = createTag(40100, \"mlkem-private-key\");\nexport const MLKEM_PUBLIC_KEY: Tag = createTag(40101, \"mlkem-public-key\");\nexport const MLKEM_CIPHERTEXT: Tag = createTag(40102, \"mlkem-ciphertext\");\nexport const MLDSA_PRIVATE_KEY: Tag = createTag(40103, \"mldsa-private-key\");\nexport const MLDSA_PUBLIC_KEY: Tag = createTag(40104, \"mldsa-public-key\");\nexport const MLDSA_SIGNATURE: Tag = createTag(40105, \"mldsa-signature\");\nexport const SEED: Tag = createTag(40300, \"seed\");\nexport const HDKEY: Tag = createTag(40303, \"hdkey\");\nexport const DERIVATION_PATH: Tag = createTag(40304, \"keypath\");\n\nexport const USE_INFO: Tag = createTag(40305, \"coin-info\");\nexport const EC_KEY: Tag = createTag(40306, \"eckey\");\nexport const ADDRESS: Tag = createTag(40307, \"address\");\nexport const OUTPUT_DESCRIPTOR: Tag = createTag(40308, \"output-descriptor\");\nexport const SSKR_SHARE: Tag = createTag(40309, \"sskr\");\nexport const PSBT: Tag = createTag(40310, \"psbt\");\nexport const ACCOUNT_DESCRIPTOR: Tag = createTag(40311, \"account-descriptor\");\nexport const SSH_TEXT_PRIVATE_KEY: Tag = createTag(40800, \"ssh-private\");\nexport const SSH_TEXT_PUBLIC_KEY: Tag = createTag(40801, \"ssh-public\");\nexport const SSH_TEXT_SIGNATURE: Tag = createTag(40802, \"ssh-signature\");\nexport const SSH_TEXT_CERTIFICATE: Tag = createTag(40803, \"ssh-certificate\");\n\nexport const PROVENANCE_MARK: Tag = createTag(1347571542, \"provenance\");\n\n// ============================================================================\n// DEPRECATED TAGS\n// ============================================================================\n//\n// The following tags are deprecated and should not be used in new code.\n// Unfortunately, they are likely to be in active use by external developers,\n// but should never have been used as they are in the range of CBOR tags\n// requiring \"Specification\" action by IANA, which requires IANA experts to\n// review and approve the specification. These are harder to get approved than\n// \"First Come First Served\" tags, and we don't want to have to do that for\n// every new tag we create. Most of these tags have been replaced by \"First Come\n// First Served\" tags in the range of 40000+.\n\nexport const SEED_V1: Tag = createTag(300, \"crypto-seed\");\nexport const EC_KEY_V1: Tag = createTag(306, \"crypto-eckey\");\nexport const SSKR_SHARE_V1: Tag = createTag(309, \"crypto-sskr\");\n\nexport const HDKEY_V1: Tag = createTag(303, \"crypto-hdkey\");\nexport const DERIVATION_PATH_V1: Tag = createTag(304, \"crypto-keypath\");\nexport const USE_INFO_V1: Tag = createTag(305, \"crypto-coin-info\");\nexport const OUTPUT_DESCRIPTOR_V1: Tag = createTag(307, \"crypto-output\");\nexport const PSBT_V1: Tag = createTag(310, \"crypto-psbt\");\nexport const ACCOUNT_V1: Tag = createTag(311, \"crypto-account\");\n\n// ============================================================================\n// Tags for subtypes specific to AccountBundle (crypto-output).\n// ============================================================================\n\nexport const OUTPUT_SCRIPT_HASH: Tag = createTag(400, \"output-script-hash\");\nexport const OUTPUT_WITNESS_SCRIPT_HASH: Tag = createTag(401, \"output-witness-script-hash\");\nexport const OUTPUT_PUBLIC_KEY: Tag = createTag(402, \"output-public-key\");\nexport const OUTPUT_PUBLIC_KEY_HASH: Tag = createTag(403, \"output-public-key-hash\");\nexport const OUTPUT_WITNESS_PUBLIC_KEY_HASH: Tag = createTag(404, \"output-witness-public-key-hash\");\nexport const OUTPUT_COMBO: Tag = createTag(405, \"output-combo\");\nexport const OUTPUT_MULTISIG: Tag = createTag(406, \"output-multisig\");\nexport const OUTPUT_SORTED_MULTISIG: Tag = createTag(407, \"output-sorted-multisig\");\nexport const OUTPUT_RAW_SCRIPT: Tag = createTag(408, \"output-raw-script\");\nexport const OUTPUT_TAPROOT: Tag = createTag(409, \"output-taproot\");\nexport const OUTPUT_COSIGNER: Tag = createTag(410, \"output-cosigner\");\n\n// ============================================================================\n// Registration Functions\n// ============================================================================\n\n/**\n * Register all Blockchain Commons tags in a specific tags store.\n * This matches the Rust function `register_tags_in()`.\n *\n * @param tagsStore - The tags store to register tags into\n */\nexport function registerTagsIn(tagsStore: TagsStore): void {\n // First register dcbor's tags\n registerDcborTagsIn(tagsStore);\n\n // Then register all Blockchain Commons tags\n const tags: Tag[] = [\n URI,\n UUID,\n ENCODED_CBOR,\n ENVELOPE,\n LEAF,\n JSON,\n KNOWN_VALUE,\n DIGEST,\n ENCRYPTED,\n COMPRESSED,\n REQUEST,\n RESPONSE,\n FUNCTION,\n PARAMETER,\n PLACEHOLDER,\n REPLACEMENT,\n EVENT,\n SEED_V1,\n EC_KEY_V1,\n SSKR_SHARE_V1,\n SEED,\n EC_KEY,\n SSKR_SHARE,\n X25519_PRIVATE_KEY,\n X25519_PUBLIC_KEY,\n ARID,\n PRIVATE_KEYS,\n NONCE,\n PASSWORD,\n PRIVATE_KEY_BASE,\n PUBLIC_KEYS,\n SALT,\n SEALED_MESSAGE,\n SIGNATURE,\n SIGNING_PRIVATE_KEY,\n SIGNING_PUBLIC_KEY,\n SYMMETRIC_KEY,\n XID,\n REFERENCE,\n ENCRYPTED_KEY,\n MLKEM_PRIVATE_KEY,\n MLKEM_PUBLIC_KEY,\n MLKEM_CIPHERTEXT,\n MLDSA_PRIVATE_KEY,\n MLDSA_PUBLIC_KEY,\n MLDSA_SIGNATURE,\n HDKEY_V1,\n DERIVATION_PATH_V1,\n USE_INFO_V1,\n OUTPUT_DESCRIPTOR_V1,\n PSBT_V1,\n ACCOUNT_V1,\n HDKEY,\n DERIVATION_PATH,\n USE_INFO,\n ADDRESS,\n OUTPUT_DESCRIPTOR,\n PSBT,\n ACCOUNT_DESCRIPTOR,\n SSH_TEXT_PRIVATE_KEY,\n SSH_TEXT_PUBLIC_KEY,\n SSH_TEXT_SIGNATURE,\n SSH_TEXT_CERTIFICATE,\n OUTPUT_SCRIPT_HASH,\n OUTPUT_WITNESS_SCRIPT_HASH,\n OUTPUT_PUBLIC_KEY,\n OUTPUT_PUBLIC_KEY_HASH,\n OUTPUT_WITNESS_PUBLIC_KEY_HASH,\n OUTPUT_COMBO,\n OUTPUT_MULTISIG,\n OUTPUT_SORTED_MULTISIG,\n OUTPUT_RAW_SCRIPT,\n OUTPUT_TAPROOT,\n OUTPUT_COSIGNER,\n PROVENANCE_MARK,\n ];\n\n tagsStore.insertAll(tags);\n}\n\n/**\n * Register all Blockchain Commons tags in the global tags store.\n * This matches the Rust function `register_tags()`.\n *\n * This function is idempotent - calling it multiple times is safe.\n */\nexport function registerTags(): void {\n const globalStore = getGlobalTagsStore();\n registerTagsIn(globalStore);\n}\n"],"mappings":"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;AAC/D,MAAaC,kBAAuB,UAAU,KAAK,kBAAkB;AACrE,MAAaC,yBAA8B,UAAU,KAAK,yBAAyB;AACnF,MAAaC,oBAAyB,UAAU,KAAK,oBAAoB;AACzE,MAAaC,iBAAsB,UAAU,KAAK,iBAAiB;AACnE,MAAaC,kBAAuB,UAAU,KAAK,kBAAkB;;;;;;;AAYrE,SAAgB,eAAe,WAA4B;AAEzD,kBAAoB,UAAU;CAG9B,MAAMC,OAAc;EAClB;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACD;AAED,WAAU,UAAU,KAAK;;;;;;;;AAS3B,SAAgB,eAAqB;AAEnC,gBADoB,oBAAoB,CACb"}
|
package/package.json
ADDED
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@bcts/tags",
|
|
3
|
+
"version": "1.0.0-alpha.5",
|
|
4
|
+
"type": "module",
|
|
5
|
+
"description": "Blockchain Commons CBOR Tags Registry for TypeScript",
|
|
6
|
+
"license": "BSD-2-Clause-Patent",
|
|
7
|
+
"author": "Leonardo Custodio <leonardo@custodio.me>",
|
|
8
|
+
"homepage": "https://github.com/leonardocustodio/blockchain-commons",
|
|
9
|
+
"repository": {
|
|
10
|
+
"type": "git",
|
|
11
|
+
"url": "https://github.com/leonardocustodio/blockchain-commons",
|
|
12
|
+
"directory": "packages/tags"
|
|
13
|
+
},
|
|
14
|
+
"bugs": {
|
|
15
|
+
"url": "https://github.com/leonardocustodio/blockchain-commons/issues"
|
|
16
|
+
},
|
|
17
|
+
"main": "dist/index.cjs",
|
|
18
|
+
"module": "dist/index.mjs",
|
|
19
|
+
"types": "dist/index.d.mts",
|
|
20
|
+
"browser": "dist/index.iife.js",
|
|
21
|
+
"exports": {
|
|
22
|
+
".": {
|
|
23
|
+
"types": "./dist/index.d.mts",
|
|
24
|
+
"import": "./dist/index.mjs",
|
|
25
|
+
"require": "./dist/index.cjs",
|
|
26
|
+
"browser": "./dist/index.iife.js",
|
|
27
|
+
"default": "./dist/index.mjs"
|
|
28
|
+
}
|
|
29
|
+
},
|
|
30
|
+
"files": [
|
|
31
|
+
"dist",
|
|
32
|
+
"src",
|
|
33
|
+
"README.md"
|
|
34
|
+
],
|
|
35
|
+
"scripts": {
|
|
36
|
+
"build": "tsdown",
|
|
37
|
+
"dev": "tsdown --watch",
|
|
38
|
+
"test": "vitest run",
|
|
39
|
+
"test:watch": "vitest",
|
|
40
|
+
"lint": "eslint 'src/**/*.ts'",
|
|
41
|
+
"lint:fix": "eslint 'src/**/*.ts' --fix",
|
|
42
|
+
"typecheck": "tsc --noEmit",
|
|
43
|
+
"clean": "rm -rf dist",
|
|
44
|
+
"docs": "typedoc",
|
|
45
|
+
"prepublishOnly": "npm run clean && npm run build && npm test"
|
|
46
|
+
},
|
|
47
|
+
"keywords": [
|
|
48
|
+
"cbor",
|
|
49
|
+
"tags",
|
|
50
|
+
"blockchain-commons",
|
|
51
|
+
"envelope",
|
|
52
|
+
"gordian",
|
|
53
|
+
"cryptography"
|
|
54
|
+
],
|
|
55
|
+
"engines": {
|
|
56
|
+
"node": ">=18.0.0"
|
|
57
|
+
},
|
|
58
|
+
"devDependencies": {
|
|
59
|
+
"@bcts/eslint": "workspace:*",
|
|
60
|
+
"@bcts/tsconfig": "workspace:*",
|
|
61
|
+
"@eslint/js": "^9.39.1",
|
|
62
|
+
"@typescript-eslint/eslint-plugin": "^8.49.0",
|
|
63
|
+
"@typescript-eslint/parser": "^8.49.0",
|
|
64
|
+
"eslint": "^9.39.1",
|
|
65
|
+
"ts-node": "^10.9.2",
|
|
66
|
+
"tsdown": "^0.17.2",
|
|
67
|
+
"typedoc": "^0.28.15",
|
|
68
|
+
"typescript": "^5.9.3",
|
|
69
|
+
"vitest": "^3.2.4"
|
|
70
|
+
},
|
|
71
|
+
"dependencies": {
|
|
72
|
+
"@bcts/dcbor": "workspace:*"
|
|
73
|
+
}
|
|
74
|
+
}
|
package/src/index.ts
ADDED
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Blockchain Commons CBOR Tags Registry
|
|
3
|
+
*
|
|
4
|
+
* This package provides a comprehensive registry of CBOR tags used by
|
|
5
|
+
* Blockchain Commons protocols, including Gordian Envelope and related
|
|
6
|
+
* cryptographic specifications.
|
|
7
|
+
*
|
|
8
|
+
* This is a 1:1 port of the Rust bc-tags-rust library.
|
|
9
|
+
*
|
|
10
|
+
* @packageDocumentation
|
|
11
|
+
*/
|
|
12
|
+
|
|
13
|
+
export * from "./tags-registry";
|