@piltoverarchive/riftbound-deck-codes 1.0.0 → 1.1.0

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/CHANGELOG.md CHANGED
@@ -5,6 +5,26 @@ All notable changes to this project will be documented in this file.
5
5
  The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
6
6
  and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
7
 
8
+ ## [1.1.0] - 2026-01-10
9
+
10
+ ### Added
11
+
12
+ - **Chosen Champion Support (Version 3)**: New optional `chosenChampion` parameter for `getCodeFromDeck()` and returned in `getDeckFromCode()`. The champion is a label referencing a card in the main deck.
13
+ - **Alternative Signed Card Suffix**: Support `*` as an alternative to `s` for signed cards (e.g., `OGN-007*` is equivalent to `OGN-007s`)
14
+ - **Decode Options**: New `signedSuffix` option in `getDeckFromCode()` to control whether signed cards decode with `s` or `*` suffix
15
+
16
+ ### Changed
17
+
18
+ - Deck codes now encode as Version 3 by default
19
+ - `DeckWithSideboard` type now includes optional `chosenChampion?: string` field
20
+
21
+ ### Compatibility
22
+
23
+ - ✅ Can decode Version 1 and 2 codes (returns `chosenChampion: undefined`)
24
+ - ❌ Version 3 codes require updated library (older libraries will reject v3 codes)
25
+
26
+ ---
27
+
8
28
  ## [1.0.0] - 2025
9
29
 
10
30
  ### Added
@@ -38,9 +58,10 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
38
58
 
39
59
  ## Version History Summary
40
60
 
41
- | Version | Date | Key Changes |
42
- | ------- | ---- | ---------------------------------------------------- |
43
- | 1.0.0 | 2025 | Initial release with Version 1 and Version 2 support |
61
+ | Version | Date | Key Changes |
62
+ | ------- | ---------- | -------------------------------------------------------- |
63
+ | 1.1.0 | 2026-01-10 | Chosen champion support, alternative signed card suffix |
64
+ | 1.0.0 | 2025 | Initial release with Version 1 and Version 2 support |
44
65
 
45
66
  ---
46
67
 
package/README.md CHANGED
@@ -36,7 +36,8 @@ All encodings begin with 4 bits for format and 4 bits for version.
36
36
  | Format | Version | Date | About |
37
37
  | ------ | ------- | ----------------- | ------------------------------------------------------------------------- |
38
38
  | 1 | 1 | April 1, 2025 | Initial release. Supports main deck encoding. |
39
- | 1 | 2 | November 20, 2025 | Adds sideboard support. All new codes encode as V2 (backward compatible). |
39
+ | 1 | 2 | November 20, 2025 | Adds sideboard support. |
40
+ | 1 | 3 | January 10, 2026 | Adds chosen champion support. All new codes encode as V3. |
40
41
 
41
42
  The list of cards are then encoded according to the following scheme:
42
43
 
@@ -81,9 +82,11 @@ Variants are mapped as follows:
81
82
  | ------- | ------------------ | ------------ | --------------- |
82
83
  | 1 | 0 | (none) | Base variant |
83
84
  | 1 | 1 | a | Alternate art A |
84
- | 1 | 2 | s | Signed |
85
+ | 1 | 2 | s or \* | Signed |
85
86
  | 2 | 3 | b | Alternate art B |
86
87
 
88
+ > **Note:** Both `s` and `*` are valid suffixes for signed cards (e.g., `OGN-007s` and `OGN-007*` are equivalent). When decoding, `s` is used by default. See [Decoding Options](#decoding-options) for customization.
89
+
87
90
  ## Installation
88
91
 
89
92
  ```bash
@@ -138,16 +141,17 @@ const sideboard: Deck = [
138
141
  { cardCode: "OGN-114", count: 1 },
139
142
  ];
140
143
 
141
- // Encode with sideboard
142
- const deckCode = getCodeFromDeck(mainDeck, sideboard);
144
+ // Encode with sideboard and chosen champion
145
+ const deckCode = getCodeFromDeck(mainDeck, sideboard, "OGN-103");
143
146
  console.log(deckCode);
144
- // Output: CIAAAAAAAAAQCAAAA4AACAIAABMQAAILAAAAICIMDMOVOX3AM5UHIAIDAAACO6XYAEAQKAAABX3QDGACUABKIAQAAEBQAAAWDBOQCAQAABMHE
145
147
 
146
- // Encode without sideboard (empty sideboard encoded as V2)
147
- const deckCodeNoSideboard = getCodeFromDeck(mainDeck);
148
+ // Encode without chosen champion
149
+ const deckCodeNoChampion = getCodeFromDeck(mainDeck, sideboard);
150
+ console.log(deckCodeNoChampion);
151
+
152
+ // Encode without sideboard (pass empty array for sideboard)
153
+ const deckCodeNoSideboard = getCodeFromDeck(mainDeck, [], "OGN-103");
148
154
  console.log(deckCodeNoSideboard);
149
- // Output: CIAAAAAAAAAQCAAAA4AACAIAABMQAAILAAAAICIMDMOVOX3AM5UHIAIDAAACO6XYAEAQKAAABX3QDGACUABKIAQAAAAA
150
- // Note: ~5 character overhead for empty sideboard encoding
151
155
  ```
152
156
 
153
157
  ### Decoding a Deck
@@ -166,14 +170,34 @@ console.log("Main Deck:", decoded.mainDeck);
166
170
 
167
171
  console.log("Sideboard:", decoded.sideboard);
168
172
  // 8 cards: 2x OGN-022, 2x OGN-024, 2x OGN-093, 1x OGN-088, 1x OGN-114
173
+
174
+ console.log("Chosen Champion:", decoded.chosenChampion);
175
+ // The chosen champion card code (e.g., "OGN-103") or undefined if not set
176
+ ```
177
+
178
+ ### Decoding Options
179
+
180
+ You can customize how signed cards are decoded by passing an options object:
181
+
182
+ ```typescript
183
+ import { getDeckFromCode } from "@piltoverarchive/riftbound-deck-codes";
184
+ import type { DecodeOptions } from "@piltoverarchive/riftbound-deck-codes";
185
+
186
+ const code = "YOUR_DECK_CODE";
187
+
188
+ // Default: signed cards use 's' suffix (e.g., OGN-007s)
189
+ const defaultDecode = getDeckFromCode(code);
190
+
191
+ // Use '*' suffix for signed cards (e.g., OGN-007*)
192
+ const starDecode = getDeckFromCode(code, { signedSuffix: "*" });
169
193
  ```
170
194
 
171
195
  ### Important Notes
172
196
 
173
197
  - **No Game Rule Validation**: This library only encodes/decodes deck data. It does not validate Riftbound game rules (card limits, sideboard size, etc.). Validation should be done in your application.
174
198
  - **Card Counts**: Main deck supports counts 1-12 (for runes and standard cards). Sideboard only supports counts 1-3 (optimized for regular cards only).
175
- - **Always Version 2**: All new deck codes encode as Version 2, even without a sideboard. Empty sideboards add ~5 characters overhead.
176
- - **Backward Compatibility**: Can decode Version 1 codes (without sideboard section) which return an empty sideboard array.
199
+ - **Always Version 3**: All new deck codes encode as Version 3. The chosen champion section adds 1 byte (no champion) or 4-5 bytes (with champion).
200
+ - **Backward Compatibility**: Can decode Version 1/2 codes which return `chosenChampion: undefined`.
177
201
 
178
202
  ## Implementations
179
203
 
@@ -183,7 +207,7 @@ The TypeScript implementation in this repository is the reference implementation
183
207
 
184
208
  | Name | Language | Version\* | Maintainer |
185
209
  | ------------------ | ---------- | --------- | --------------- |
186
- | RiftboundDeckCodes | TypeScript | 2 | PiltoverArchive |
210
+ | RiftboundDeckCodes | TypeScript | 3 | PiltoverArchive |
187
211
 
188
212
  \*Version refers to the MAX_KNOWN_VERSION supported by the implementation.
189
213
 
@@ -1,17 +1,19 @@
1
- import type { Deck, DeckWithSideboard } from "./types";
1
+ import type { Deck, DeckWithSideboard, DecodeOptions } from "./types";
2
2
  /**
3
3
  * Encodes a Riftbound deck into a shareable deck code
4
4
  * @param mainDeck - The main deck cards
5
5
  * @param sideboard - Optional sideboard cards (defaults to empty array)
6
+ * @param chosenChampion - Optional chosen champion card code (e.g., "OGN-007")
6
7
  * @returns Base32-encoded deck code string
7
8
  * @throws Error if deck format is invalid
8
9
  */
9
- export declare function getCodeFromDeck(mainDeck: Deck, sideboard?: Deck): string;
10
+ export declare function getCodeFromDeck(mainDeck: Deck, sideboard?: Deck, chosenChampion?: string): string;
10
11
  /**
11
12
  * Decodes a Riftbound deck code into deck and sideboard
12
13
  * @param code - Base32-encoded deck code string
14
+ * @param options - Optional decode options
13
15
  * @returns Object containing mainDeck and sideboard arrays
14
16
  * @throws Error if code is invalid or unsupported
15
17
  */
16
- export declare function getDeckFromCode(code: string): DeckWithSideboard;
18
+ export declare function getDeckFromCode(code: string, options?: DecodeOptions): DeckWithSideboard;
17
19
  //# sourceMappingURL=deckCode.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"deckCode.d.ts","sourceRoot":"","sources":["../src/deckCode.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,IAAI,EAAyB,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAsO9E;;;;;;GAMG;AACH,wBAAgB,eAAe,CAAC,QAAQ,EAAE,IAAI,EAAE,SAAS,GAAE,IAAS,GAAG,MAAM,CAc5E;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,iBAAiB,CAqC/D"}
1
+ {"version":3,"file":"deckCode.d.ts","sourceRoot":"","sources":["../src/deckCode.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,IAAI,EAGJ,iBAAiB,EACjB,aAAa,EACd,MAAM,SAAS,CAAC;AA+OjB;;;;;;;GAOG;AACH,wBAAgB,eAAe,CAC7B,QAAQ,EAAE,IAAI,EACd,SAAS,GAAE,IAAS,EACpB,cAAc,CAAC,EAAE,MAAM,GACtB,MAAM,CAoCR;AAED;;;;;;GAMG;AACH,wBAAgB,eAAe,CAC7B,IAAI,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE,aAAa,GACtB,iBAAiB,CAyEnB"}
package/dist/deckCode.js CHANGED
@@ -8,7 +8,7 @@ exports.getDeckFromCode = getDeckFromCode;
8
8
  const mappings_1 = require("./mappings");
9
9
  const VarintTranslator_1 = __importDefault(require("./VarintTranslator"));
10
10
  const FORMAT = 1;
11
- const VERSION = 2;
11
+ const VERSION = 3;
12
12
  const BASE32_ALPHABET = "ABCDEFGHIJKLMNOPQRSTUVWXYZ234567";
13
13
  /**
14
14
  * Encodes a byte array to base32 string
@@ -68,7 +68,7 @@ function parseCardCode(cardCode) {
68
68
  if (!set || !rest) {
69
69
  throw new Error(`Invalid card code format: ${cardCode}. Missing set or card number.`);
70
70
  }
71
- const match = rest.match(/^(\d+)([a-z]?)$/);
71
+ const match = rest.match(/^(\d+)([a-z*]?)$/);
72
72
  if (!match) {
73
73
  throw new Error(`Invalid card code format: ${cardCode}. Expected format: SET-NUMBERvariant`);
74
74
  }
@@ -146,8 +146,9 @@ function encodeDeckSection(deck, maxCount = 12) {
146
146
  * Decodes a deck section from bytes
147
147
  * @param translator - The varint translator
148
148
  * @param maxCount - Maximum count to process (12 for main deck, 3 for sideboard)
149
+ * @param signedSuffix - The suffix to use for signed cards ('s' or '*')
149
150
  */
150
- function decodeDeckSection(translator, maxCount = 12) {
151
+ function decodeDeckSection(translator, maxCount = 12, signedSuffix = "s") {
151
152
  const deck = [];
152
153
  // Process counts from maxCount down to 1
153
154
  for (let count = maxCount; count >= 1; count--) {
@@ -158,7 +159,14 @@ function decodeDeckSection(translator, maxCount = 12) {
158
159
  const variant = translator.get(1);
159
160
  translator.sliceAndSet(2);
160
161
  const setCode = Object.entries(mappings_1.SET_MAP).find(([_, value]) => value === set)?.[0];
161
- const variantCode = Object.entries(mappings_1.VARIANT_MAP).find(([_, value]) => value === variant)?.[0];
162
+ // For signed cards (variant 2), use the signedSuffix option
163
+ let variantCode;
164
+ if (variant === 2) {
165
+ variantCode = signedSuffix;
166
+ }
167
+ else {
168
+ variantCode = Object.entries(mappings_1.VARIANT_MAP).find(([_, value]) => value === variant)?.[0];
169
+ }
162
170
  if (!setCode) {
163
171
  throw new Error(`Unknown set code: ${set}`);
164
172
  }
@@ -177,27 +185,48 @@ function decodeDeckSection(translator, maxCount = 12) {
177
185
  * Encodes a Riftbound deck into a shareable deck code
178
186
  * @param mainDeck - The main deck cards
179
187
  * @param sideboard - Optional sideboard cards (defaults to empty array)
188
+ * @param chosenChampion - Optional chosen champion card code (e.g., "OGN-007")
180
189
  * @returns Base32-encoded deck code string
181
190
  * @throws Error if deck format is invalid
182
191
  */
183
- function getCodeFromDeck(mainDeck, sideboard = []) {
192
+ function getCodeFromDeck(mainDeck, sideboard = [], chosenChampion) {
184
193
  const bytes = [];
185
- // Write format and version (always version 2)
194
+ // Write format and version (always version 3)
186
195
  bytes.push((FORMAT << 4) | VERSION);
187
196
  // Encode main deck (counts 1-12)
188
197
  bytes.push(...encodeDeckSection(mainDeck, 12));
189
198
  // Encode sideboard (counts 1-3 only, since sideboards can't have runes/battlefields)
190
- // Empty sideboard will encode as three 0-byte varints (3 bytes total)
191
199
  bytes.push(...encodeDeckSection(sideboard, 3));
200
+ // Encode chosen champion (version 3+)
201
+ if (chosenChampion) {
202
+ const { set, number, variant } = parseCardCode(chosenChampion);
203
+ const setValue = mappings_1.SET_MAP[set];
204
+ if (setValue === undefined) {
205
+ throw new Error(`Unknown set in chosen champion: ${set}. Valid sets: ${Object.keys(mappings_1.SET_MAP).join(", ")}`);
206
+ }
207
+ const variantValue = mappings_1.VARIANT_MAP[variant];
208
+ if (variantValue === undefined) {
209
+ throw new Error(`Unknown variant in chosen champion: '${variant}'. Valid variants: ${Object.keys(mappings_1.VARIANT_MAP).join(", ")}`);
210
+ }
211
+ bytes.push(0x01); // Champion present flag
212
+ bytes.push(setValue);
213
+ bytes.push(variantValue);
214
+ bytes.push(...VarintTranslator_1.default.GetVarint(parseInt(number)));
215
+ }
216
+ else {
217
+ bytes.push(0x00); // No champion flag
218
+ }
192
219
  return base32Encode(new Uint8Array(bytes));
193
220
  }
194
221
  /**
195
222
  * Decodes a Riftbound deck code into deck and sideboard
196
223
  * @param code - Base32-encoded deck code string
224
+ * @param options - Optional decode options
197
225
  * @returns Object containing mainDeck and sideboard arrays
198
226
  * @throws Error if code is invalid or unsupported
199
227
  */
200
- function getDeckFromCode(code) {
228
+ function getDeckFromCode(code, options) {
229
+ const signedSuffix = options?.signedSuffix ?? "s";
201
230
  const bytes = base32Decode(code);
202
231
  const translator = new VarintTranslator_1.default(bytes);
203
232
  // Read format and version
@@ -212,16 +241,42 @@ function getDeckFromCode(code) {
212
241
  throw new Error(`Unsupported version: ${version}. Maximum supported version: ${VERSION}`);
213
242
  }
214
243
  // Decode main deck (counts 1-12)
215
- const mainDeck = decodeDeckSection(translator, 12);
244
+ const mainDeck = decodeDeckSection(translator, 12, signedSuffix);
216
245
  // Decode sideboard (counts 1-3 only)
217
246
  // Version 1 codes don't have sideboard section, version 2+ do
218
247
  let sideboard = [];
219
248
  if (version >= 2) {
220
- sideboard = decodeDeckSection(translator, 3);
249
+ sideboard = decodeDeckSection(translator, 3, signedSuffix);
250
+ }
251
+ // Decode chosen champion (version 3+ only)
252
+ let chosenChampion;
253
+ if (version >= 3) {
254
+ const hasChampion = translator.get(0);
255
+ translator.sliceAndSet(1);
256
+ if (hasChampion === 0x01) {
257
+ const set = translator.get(0);
258
+ const variant = translator.get(1);
259
+ translator.sliceAndSet(2);
260
+ const cardNumber = translator.PopVarint();
261
+ const setCode = Object.entries(mappings_1.SET_MAP).find(([_, value]) => value === set)?.[0];
262
+ if (!setCode) {
263
+ throw new Error(`Unknown set code in champion: ${set}`);
264
+ }
265
+ // For signed cards (variant 2), use the signedSuffix option
266
+ let variantCode;
267
+ if (variant === 2) {
268
+ variantCode = signedSuffix;
269
+ }
270
+ else {
271
+ variantCode = Object.entries(mappings_1.VARIANT_MAP).find(([_, value]) => value === variant)?.[0];
272
+ }
273
+ chosenChampion = `${setCode}-${cardNumber.toString().padStart(3, "0")}${variantCode || ""}`;
274
+ }
221
275
  }
222
276
  return {
223
277
  mainDeck,
224
278
  sideboard,
279
+ chosenChampion,
225
280
  };
226
281
  }
227
282
  //# sourceMappingURL=deckCode.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"deckCode.js","sourceRoot":"","sources":["../src/deckCode.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"deckCode.js","sourceRoot":"","sources":["../src/deckCode.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  export { getCodeFromDeck, getDeckFromCode } from "./deckCode";
2
2
  export { SET_MAP, VARIANT_MAP } from "./mappings";
3
- export type { Card, Deck, DeckWithSideboard, SetVariantGroup, CountGroup } from "./types";
3
+ export type { Card, Deck, DeckWithSideboard, SetVariantGroup, CountGroup, DecodeOptions } from "./types";
4
4
  export { default as VarintTranslator } from "./VarintTranslator";
5
5
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAC9D,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAClD,YAAY,EAAE,IAAI,EAAE,IAAI,EAAE,iBAAiB,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAC1F,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,oBAAoB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAC9D,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAClD,YAAY,EAAE,IAAI,EAAE,IAAI,EAAE,iBAAiB,EAAE,eAAe,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AACzG,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,oBAAoB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"mappings.d.ts","sourceRoot":"","sources":["../src/mappings.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,eAAO,MAAM,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAK1C,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAK9C,CAAC"}
1
+ {"version":3,"file":"mappings.d.ts","sourceRoot":"","sources":["../src/mappings.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,eAAO,MAAM,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAK1C,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAM9C,CAAC"}
package/dist/mappings.js CHANGED
@@ -20,6 +20,7 @@ exports.VARIANT_MAP = {
20
20
  "": 0, // Base variant (no suffix)
21
21
  a: 1,
22
22
  s: 2,
23
+ "*": 2, // Alternative signed notation
23
24
  b: 3,
24
25
  };
25
26
  //# sourceMappingURL=mappings.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"mappings.js","sourceRoot":"","sources":["../src/mappings.ts"],"names":[],"mappings":";;;AAAA;;;GAGG;AACU,QAAA,OAAO,GAA2B;IAC7C,GAAG,EAAE,CAAC;IACN,GAAG,EAAE,CAAC;IACN,GAAG,EAAE,CAAC;IACN,GAAG,EAAE,CAAC;CACP,CAAC;AAEF;;;;GAIG;AACU,QAAA,WAAW,GAA2B;IACjD,EAAE,EAAE,CAAC,EAAE,2BAA2B;IAClC,CAAC,EAAE,CAAC;IACJ,CAAC,EAAE,CAAC;IACJ,CAAC,EAAE,CAAC;CACL,CAAC"}
1
+ {"version":3,"file":"mappings.js","sourceRoot":"","sources":["../src/mappings.ts"],"names":[],"mappings":";;;AAAA;;;GAGG;AACU,QAAA,OAAO,GAA2B;IAC7C,GAAG,EAAE,CAAC;IACN,GAAG,EAAE,CAAC;IACN,GAAG,EAAE,CAAC;IACN,GAAG,EAAE,CAAC;CACP,CAAC;AAEF;;;;GAIG;AACU,QAAA,WAAW,GAA2B;IACjD,EAAE,EAAE,CAAC,EAAE,2BAA2B;IAClC,CAAC,EAAE,CAAC;IACJ,CAAC,EAAE,CAAC;IACJ,GAAG,EAAE,CAAC,EAAE,8BAA8B;IACtC,CAAC,EAAE,CAAC;CACL,CAAC"}
package/dist/types.d.ts CHANGED
@@ -6,6 +6,7 @@ export type Deck = Card[];
6
6
  export interface DeckWithSideboard {
7
7
  mainDeck: Deck;
8
8
  sideboard: Deck;
9
+ chosenChampion?: string;
9
10
  }
10
11
  export interface SetVariantGroup {
11
12
  set: number;
@@ -15,4 +16,7 @@ export interface SetVariantGroup {
15
16
  export interface CountGroup {
16
17
  setVariantGroups: SetVariantGroup[];
17
18
  }
19
+ export interface DecodeOptions {
20
+ signedSuffix?: "s" | "*";
21
+ }
18
22
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,IAAI;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;CACd;AAED,MAAM,MAAM,IAAI,GAAG,IAAI,EAAE,CAAC;AAE1B,MAAM,WAAW,iBAAiB;IACjC,QAAQ,EAAE,IAAI,CAAC;IACf,SAAS,EAAE,IAAI,CAAC;CAChB;AAED,MAAM,WAAW,eAAe;IAC/B,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,EAAE,CAAC;CACtB;AAED,MAAM,WAAW,UAAU;IAC1B,gBAAgB,EAAE,eAAe,EAAE,CAAC;CACpC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,IAAI;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;CACd;AAED,MAAM,MAAM,IAAI,GAAG,IAAI,EAAE,CAAC;AAE1B,MAAM,WAAW,iBAAiB;IACjC,QAAQ,EAAE,IAAI,CAAC;IACf,SAAS,EAAE,IAAI,CAAC;IAChB,cAAc,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,eAAe;IAC/B,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,EAAE,CAAC;CACtB;AAED,MAAM,WAAW,UAAU;IAC1B,gBAAgB,EAAE,eAAe,EAAE,CAAC;CACpC;AAED,MAAM,WAAW,aAAa;IAC7B,YAAY,CAAC,EAAE,GAAG,GAAG,GAAG,CAAC;CACzB"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@piltoverarchive/riftbound-deck-codes",
3
- "version": "1.0.0",
3
+ "version": "1.1.0",
4
4
  "description": "Encode and decode Riftbound TCG decks to/from shareable strings",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",