hxdec 1.0.0 → 1.0.2

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/lib/index.js CHANGED
@@ -31,7 +31,7 @@ const hxdec = {
31
31
  // if line doesnt start with a number followed by " " or "x ", It is not a card line. Check to see if its a section title and then, assign the targetSection based on the title. If the title is "About" and it is the first line of the first section, check to see if the second line starts with "Name " and if so, capture the deck name from that line and assign it to listData.name. If the line is not a card line or a section header, skip it.
32
32
  if (!/^\d+x?\s/.test(line)) {
33
33
  const titleLine = line.toLowerCase().replace(":", "");
34
- console.log(`Processing section title: ${titleLine}`);
34
+ console.log(`Processing section by title: ${titleLine}`);
35
35
  if (titleLine === "commander" || titleLine === "companion" || titleLine === "sideboard" || titleLine === "maybeboard" || titleLine === "mainboard") {
36
36
  targetSection = titleLine;
37
37
  }
@@ -46,14 +46,18 @@ const hxdec = {
46
46
  else if (sec.length < 3 && index === 0 && listData.commander.length === 0) {
47
47
  // 1-2 separate lines with no section headerde notes commanders for some formats
48
48
  targetSection = "commander";
49
+ console.log(`Processing commanders by layout`, targetSection);
50
+ }
51
+ else if (index === 0) {
52
+ console.log(`Processing mainboard by layout`, targetSection);
49
53
  }
50
54
  const newCard = hxdec.digestCard(line);
51
- if (typeof newCard.hxnumber === "undefined" || typeof newCard.hxcode === "undefined") {
55
+ if (newCard.hxnumber.length === 0 || newCard.hxcode.length === 0) {
52
56
  listData.prefetch = listData.prefetch || [];
53
57
  listData.prefetch.push(Object.assign(Object.assign({}, newCard), { targetSection }));
54
58
  return;
55
59
  }
56
- else if (typeof newCard.cat !== "undefined" && newCard.cat.includes("Commander")) {
60
+ else if (newCard.cat.includes("Commander")) {
57
61
  listData.commander = listData.commander || [];
58
62
  listData.commander.push(Object.assign(Object.assign({}, newCard), { targetSection }));
59
63
  }
@@ -63,12 +67,12 @@ const hxdec = {
63
67
  }
64
68
  });
65
69
  });
66
- if (typeof listData.prefetch !== "undefined") {
70
+ if (listData.prefetch.length > 0) {
67
71
  hxdec.getCardData(listData.prefetch, ["set", "collector_number"], (cards) => {
68
72
  cards.forEach((card) => {
69
73
  var _a;
70
74
  // add each card to its target section and update the hxcode and hxnumber based on the set and collector number
71
- if (typeof card.set !== "undefined" && typeof card.collector_number !== "undefined" && typeof hxdec.setData !== "undefined") {
75
+ if (card.set.length > 0 && card.collector_number.length > 0 && hxdec.setData.length > 0) {
72
76
  card.hxcode = ((_a = hxdec.setData.find(s => s.code.toLowerCase() === card.set.toLowerCase())) === null || _a === void 0 ? void 0 : _a.hxcode) || null;
73
77
  if (card.hxcode) {
74
78
  const collectorNumber = card.collector_number;
@@ -119,25 +123,25 @@ const hxdec = {
119
123
  }
120
124
  cardString += card.hxcode;
121
125
  cardString += card.hxnumber;
122
- if (foil && typeof card.foil !== "undefined") {
126
+ if (foil && card.foil.length > 0) {
123
127
  cardString += `*${card.foil}*`;
124
128
  }
125
- if (tags && typeof card.tags !== "undefined") {
129
+ if (tags && card.tags.length > 0) {
126
130
  cardString += `^${card.tags}^`;
127
131
  }
128
- if (cat && typeof card.cat !== "undefined") {
132
+ if (cat && card.cat.length > 0) {
129
133
  cardString += `[${card.cat}]`;
130
134
  }
131
135
  newCards += cardString;
132
136
  });
133
137
  return newCards;
134
138
  };
135
- if (typeof listData.mainboard === "undefined" || listData.mainboard.length === 0) {
139
+ if (listData.mainboard.length === 0 || listData.mainboard.length === 0) {
136
140
  hxdec.error("No mainboard cards found, cannot build HXDEC");
137
141
  return;
138
142
  }
139
143
  // If this is a type of format that lists a commander as the first card in the mainboard section without a section header, move it to the commander section and remove it from the mainboard section
140
- if (typeof listData.mainboard !== "undefined" && typeof listData.commander === "undefined") {
144
+ if (listData.mainboard.length > 0 && listData.commander.length === 0) {
141
145
  // count the number of cards in the mainboard
142
146
  let mainboardCount = 0;
143
147
  listData.mainboard.forEach((mainboardCard) => {
@@ -150,19 +154,19 @@ const hxdec = {
150
154
  }
151
155
  }
152
156
  let deck = `h${outputCards(listData.mainboard)}`;
153
- if (typeof listData.commander !== "undefined") {
157
+ if (listData.commander.length > 0) {
154
158
  deck += `k${outputCards(listData.commander)}`;
155
159
  }
156
- if (typeof listData.sideboard !== "undefined") {
160
+ if (listData.sideboard.length > 0) {
157
161
  deck += `s${outputCards(listData.sideboard)}`;
158
162
  }
159
- if (typeof listData.maybeboard !== "undefined") {
163
+ if (listData.maybeboard.length > 0) {
160
164
  deck += `m${outputCards(listData.maybeboard)}`;
161
165
  }
162
- if (typeof listData.companion !== "undefined") {
166
+ if (listData.companion.length > 0) {
163
167
  deck += `p${outputCards(listData.companion)}`;
164
168
  }
165
- if (typeof listData.name !== "undefined") {
169
+ if (listData.name.length > 0) {
166
170
  deck += `+${encodeURIComponent(listData.name)}+`;
167
171
  }
168
172
  hxdec.ready();
@@ -224,7 +228,7 @@ const hxdec = {
224
228
  }
225
229
  const setHx = code.substring(0, 3);
226
230
  // if code contains * , extract the foil value and remove it from the code
227
- let foil = null;
231
+ let foil = "";
228
232
  if (code.includes("*")) {
229
233
  const foilMatch = code.match(/\*(.*?)\*/);
230
234
  if (foilMatch) {
@@ -233,7 +237,7 @@ const hxdec = {
233
237
  }
234
238
  }
235
239
  // if code contains ^, extract the tag value and remove it from the code
236
- let tags = null;
240
+ let tags = "";
237
241
  if (code.includes("^")) {
238
242
  const tagMatch = code.match(/\^(.*?)\^/);
239
243
  if (tagMatch) {
@@ -242,7 +246,7 @@ const hxdec = {
242
246
  }
243
247
  }
244
248
  // if code contains [ ], extract the category value and remove it from the code
245
- let category = null;
249
+ let category = "";
246
250
  if (code.includes("[")) {
247
251
  const categoryMatch = code.match(/\[(.*?)\]/);
248
252
  if (categoryMatch) {
@@ -258,13 +262,13 @@ const hxdec = {
258
262
  else if (isNaN(parseInt(number))) {
259
263
  console.log(`Invalid collector number hex: ${numberHx} for code: ${code}`);
260
264
  }
261
- let set = null;
265
+ let set = "";
262
266
  // find set in set data
263
267
  const setInfo = hxdec.setData.find(s => s.hxcode === setHx);
264
268
  if (setInfo) {
265
269
  set = setInfo.code;
266
270
  }
267
- const newCard = { code, qty, set, number, foil, tags, category, targetSection };
271
+ const newCard = { name: "", code, qty, set, number, foil, tags, category, targetSection };
268
272
  cards.push(newCard);
269
273
  });
270
274
  decodedData.prefetch.push(...cards);
@@ -355,15 +359,21 @@ const hxdec = {
355
359
  },
356
360
  init: () => {
357
361
  // fetch all sets from scryfall and prepare them for initial firebase upload
358
- if (typeof hxdec.setData !== "undefined") {
362
+ if (hxdec.setData.length > 0) {
359
363
  console.log("Set data already processed, skipping fetch");
360
364
  return;
361
365
  }
362
366
  hxdec.loading("Fetching set data from scryfall");
363
- fetch("https://api.scryfall.com/sets")
367
+ fetch("https://api.scryfall.com/sets", {
368
+ headers: {
369
+ "Content-Type": "application/json",
370
+ "User-Agent": "hxdec/1.0.2",
371
+ "Accept": "application/json",
372
+ }
373
+ })
364
374
  .then((resp) => resp.json())
365
375
  .then((resp) => {
366
- if (typeof resp.data !== "undefined" && resp.data.length > 0) {
376
+ if (resp.data && resp.data.length > 0) {
367
377
  const sets = [];
368
378
  const initSetsData = resp.data;
369
379
  // sort initSetsData by release date ascending
@@ -435,7 +445,9 @@ const hxdec = {
435
445
  fetch("https://api.scryfall.com/cards/collection", {
436
446
  method: "POST",
437
447
  headers: {
438
- "Content-Type": "application/json"
448
+ "Content-Type": "application/json",
449
+ "User-Agent": "hxdec/1.0.2",
450
+ "Accept": "application/json",
439
451
  },
440
452
  body: JSON.stringify({ identifiers })
441
453
  })
@@ -447,15 +459,15 @@ const hxdec = {
447
459
  // all card info has been fetched, add the card names to the cards in the decoded data
448
460
  cards.forEach((card, index) => {
449
461
  let cardInfo = {};
450
- if (typeof card.name !== "undefined" && (typeof card.set === "undefined" || typeof card.number === "undefined")) {
462
+ if (card.name.length > 0 && (card.set.length === 0 || card.number.length === 0)) {
451
463
  cardInfo = cardInfos.find(info => info.name.toLowerCase() === card.name.toLowerCase()) || {};
452
464
  }
453
- else if ((typeof card.set !== "undefined" && typeof card.number !== "undefined") && typeof card.name === "undefined") {
465
+ else if ((card.set.length > 0 && card.number.length > 0) && card.name.length === 0) {
454
466
  cardInfo = cardInfos.find(info => info.set.toLowerCase() === card.set.toLowerCase() && info.collector_number === String(card.number)) || {};
455
467
  }
456
468
  if (cardInfo && Object.keys(cardInfo).length !== 0) {
457
469
  properties.forEach(prop => {
458
- if (typeof cardInfo[prop] !== "undefined") {
470
+ if (cardInfo[prop].length > 0) {
459
471
  cards[index][prop] = cardInfo[prop];
460
472
  }
461
473
  });
@@ -521,10 +533,10 @@ const hxdec = {
521
533
  if (nameSplit.length > 1) {
522
534
  newCard.collectorNumber = nameSplit[1].trim();
523
535
  }
524
- if (typeof newCard.set !== "undefined") {
536
+ if (newCard.set.length > 0) {
525
537
  newCard.hxcode = ((_a = hxdec.setData.find(s => s.code.toLowerCase() === newCard.set.toLowerCase())) === null || _a === void 0 ? void 0 : _a.hxcode) || null;
526
538
  }
527
- if (typeof newCard.collectorNumber !== "undefined") {
539
+ if (newCard.collectorNumber.length > 0) {
528
540
  // if collector number is just a number, convert to hex and pad to 3 digits
529
541
  if (/^\d+$/.test(newCard.collectorNumber)) {
530
542
  const hxnumber = Number(newCard.collectorNumber).toString(16);
package/lib/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "hxdec",
3
- "version": "1.0.0",
3
+ "version": "1.0.2",
4
4
  "description": "A Hexidecimal Magic the Gathering Decklist format.",
5
5
  "main": "./lib/index.js",
6
6
  "type": "module",
package/src/index.ts CHANGED
@@ -35,7 +35,7 @@ const hxdec = {
35
35
  // if line doesnt start with a number followed by " " or "x ", It is not a card line. Check to see if its a section title and then, assign the targetSection based on the title. If the title is "About" and it is the first line of the first section, check to see if the second line starts with "Name " and if so, capture the deck name from that line and assign it to listData.name. If the line is not a card line or a section header, skip it.
36
36
  if (!/^\d+x?\s/.test(line)) {
37
37
  const titleLine = line.toLowerCase().replace(":", "");
38
- console.log(`Processing section title: ${titleLine}`);
38
+ console.log(`Processing section by title: ${titleLine}`);
39
39
  if (titleLine === "commander" || titleLine === "companion" || titleLine === "sideboard" || titleLine === "maybeboard" || titleLine === "mainboard") {
40
40
  targetSection = titleLine;
41
41
  }
@@ -49,13 +49,16 @@ const hxdec = {
49
49
  } else if (sec.length < 3 && index === 0 && listData.commander.length === 0) {
50
50
  // 1-2 separate lines with no section headerde notes commanders for some formats
51
51
  targetSection = "commander";
52
+ console.log(`Processing commanders by layout`, targetSection);
53
+ } else if (index === 0) {
54
+ console.log(`Processing mainboard by layout`, targetSection);
52
55
  }
53
56
  const newCard = hxdec.digestCard(line);
54
- if (typeof newCard.hxnumber === "undefined" || typeof newCard.hxcode === "undefined") {
57
+ if (newCard.hxnumber.length === 0 || newCard.hxcode.length === 0) {
55
58
  listData.prefetch = listData.prefetch || [];
56
59
  listData.prefetch.push({ ...newCard, targetSection });
57
60
  return;
58
- } else if (typeof newCard.cat !== "undefined" && newCard.cat.includes("Commander")) {
61
+ } else if (newCard.cat.includes("Commander")) {
59
62
  listData.commander = listData.commander || [];
60
63
  listData.commander.push({ ...newCard, targetSection });
61
64
  } else {
@@ -65,11 +68,11 @@ const hxdec = {
65
68
  });
66
69
 
67
70
  });
68
- if (typeof listData.prefetch !== "undefined") {
71
+ if (listData.prefetch.length > 0) {
69
72
  hxdec.getCardData(listData.prefetch, ["set", "collector_number"], (cards: Obj[]) => {
70
73
  cards.forEach((card: Obj) => {
71
74
  // add each card to its target section and update the hxcode and hxnumber based on the set and collector number
72
- if (typeof card.set !== "undefined" && typeof card.collector_number !== "undefined" && typeof hxdec.setData !== "undefined") {
75
+ if (card.set.length > 0 && card.collector_number.length > 0 && hxdec.setData.length > 0) {
73
76
  card.hxcode = hxdec.setData.find(s => s.code.toLowerCase() === card.set.toLowerCase())?.hxcode || null;
74
77
  if (card.hxcode) {
75
78
  const collectorNumber = card.collector_number;
@@ -114,25 +117,25 @@ const hxdec = {
114
117
  }
115
118
  cardString += card.hxcode;
116
119
  cardString += card.hxnumber;
117
- if (foil && typeof card.foil !== "undefined") {
120
+ if (foil && card.foil.length > 0) {
118
121
  cardString += `*${card.foil}*`;
119
122
  }
120
- if (tags && typeof card.tags !== "undefined") {
123
+ if (tags && card.tags.length > 0) {
121
124
  cardString += `^${card.tags}^`;
122
125
  }
123
- if (cat && typeof card.cat !== "undefined") {
126
+ if (cat && card.cat.length > 0) {
124
127
  cardString += `[${card.cat}]`;
125
128
  }
126
129
  newCards += cardString;
127
130
  });
128
131
  return newCards;
129
132
  }
130
- if (typeof listData.mainboard === "undefined" || listData.mainboard.length === 0) {
133
+ if (listData.mainboard.length === 0 || listData.mainboard.length === 0) {
131
134
  hxdec.error("No mainboard cards found, cannot build HXDEC");
132
135
  return;
133
136
  }
134
137
  // If this is a type of format that lists a commander as the first card in the mainboard section without a section header, move it to the commander section and remove it from the mainboard section
135
- if (typeof listData.mainboard !== "undefined" && typeof listData.commander === "undefined") {
138
+ if (listData.mainboard.length > 0 && listData.commander.length === 0) {
136
139
  // count the number of cards in the mainboard
137
140
  let mainboardCount = 0;
138
141
  listData.mainboard.forEach((mainboardCard: Obj) => {
@@ -145,19 +148,19 @@ const hxdec = {
145
148
  }
146
149
  }
147
150
  let deck = `h${outputCards(listData.mainboard)}`;
148
- if (typeof listData.commander !== "undefined") {
151
+ if (listData.commander.length > 0) {
149
152
  deck += `k${outputCards(listData.commander)}`;
150
153
  }
151
- if (typeof listData.sideboard !== "undefined") {
154
+ if (listData.sideboard.length > 0) {
152
155
  deck += `s${outputCards(listData.sideboard)}`;
153
156
  }
154
- if (typeof listData.maybeboard !== "undefined") {
157
+ if (listData.maybeboard.length > 0) {
155
158
  deck += `m${outputCards(listData.maybeboard)}`;
156
159
  }
157
- if (typeof listData.companion !== "undefined") {
160
+ if (listData.companion.length > 0) {
158
161
  deck += `p${outputCards(listData.companion)}`;
159
162
  }
160
- if (typeof listData.name !== "undefined") {
163
+ if (listData.name.length > 0) {
161
164
  deck += `+${encodeURIComponent(listData.name)}+`;
162
165
  }
163
166
  hxdec.ready();
@@ -222,7 +225,7 @@ const hxdec = {
222
225
  }
223
226
  const setHx = code.substring(0, 3);
224
227
  // if code contains * , extract the foil value and remove it from the code
225
- let foil = null;
228
+ let foil = "";
226
229
  if (code.includes("*")) {
227
230
  const foilMatch = code.match(/\*(.*?)\*/);
228
231
  if (foilMatch) {
@@ -231,7 +234,7 @@ const hxdec = {
231
234
  }
232
235
  }
233
236
  // if code contains ^, extract the tag value and remove it from the code
234
- let tags = null;
237
+ let tags = "";
235
238
  if (code.includes("^")) {
236
239
  const tagMatch = code.match(/\^(.*?)\^/);
237
240
  if (tagMatch) {
@@ -240,7 +243,7 @@ const hxdec = {
240
243
  }
241
244
  }
242
245
  // if code contains [ ], extract the category value and remove it from the code
243
- let category = null;
246
+ let category = "";
244
247
  if (code.includes("[")) {
245
248
  const categoryMatch = code.match(/\[(.*?)\]/);
246
249
  if (categoryMatch) {
@@ -257,7 +260,7 @@ const hxdec = {
257
260
  } else if (isNaN(parseInt(number))) {
258
261
  console.log(`Invalid collector number hex: ${numberHx} for code: ${code}`);
259
262
  }
260
- let set = null;
263
+ let set = "";
261
264
 
262
265
  // find set in set data
263
266
  const setInfo = hxdec.setData.find(s => s.hxcode === setHx);
@@ -265,7 +268,7 @@ const hxdec = {
265
268
  set = setInfo.code;
266
269
  }
267
270
 
268
- const newCard = { code, qty, set, number, foil, tags, category, targetSection } as Obj;
271
+ const newCard = { name: "", code, qty, set, number, foil, tags, category, targetSection } as Obj;
269
272
 
270
273
  cards.push(newCard);
271
274
  });
@@ -392,15 +395,22 @@ const hxdec = {
392
395
  },
393
396
  init: () => {
394
397
  // fetch all sets from scryfall and prepare them for initial firebase upload
395
- if (typeof hxdec.setData !== "undefined") {
398
+ if (hxdec.setData.length > 0) {
396
399
  console.log("Set data already processed, skipping fetch");
397
400
  return;
398
401
  }
399
402
  hxdec.loading("Fetching set data from scryfall");
400
- fetch("https://api.scryfall.com/sets")
403
+ fetch("https://api.scryfall.com/sets", {
404
+ headers: {
405
+ "Content-Type": "application/json",
406
+ "User-Agent": "hxdec/1.0.2",
407
+ "Accept": "application/json",
408
+ }
409
+ }
410
+ )
401
411
  .then((resp) => resp.json())
402
412
  .then((resp) => {
403
- if (typeof resp.data !== "undefined" && resp.data.length > 0) {
413
+ if (resp.data && resp.data.length > 0) {
404
414
  const sets = [] as Obj[];
405
415
  const initSetsData = resp.data;
406
416
  // sort initSetsData by release date ascending
@@ -469,7 +479,9 @@ const hxdec = {
469
479
  fetch("https://api.scryfall.com/cards/collection", {
470
480
  method: "POST",
471
481
  headers: {
472
- "Content-Type": "application/json"
482
+ "Content-Type": "application/json",
483
+ "User-Agent": "hxdec/1.0.2",
484
+ "Accept": "application/json",
473
485
  },
474
486
  body: JSON.stringify({ identifiers })
475
487
  })
@@ -481,14 +493,14 @@ const hxdec = {
481
493
  // all card info has been fetched, add the card names to the cards in the decoded data
482
494
  cards.forEach((card, index) => {
483
495
  let cardInfo = {} as Obj;
484
- if (typeof card.name !== "undefined" && (typeof card.set === "undefined" || typeof card.number === "undefined")) {
496
+ if (card.name.length > 0 && (card.set.length === 0 || card.number.length === 0)) {
485
497
  cardInfo = cardInfos.find(info => info.name.toLowerCase() === card.name.toLowerCase()) || {} as Obj;
486
- } else if ((typeof card.set !== "undefined" && typeof card.number !== "undefined") && typeof card.name === "undefined") {
498
+ } else if ((card.set.length > 0 && card.number.length > 0) && card.name.length === 0) {
487
499
  cardInfo = cardInfos.find(info => info.set.toLowerCase() === card.set.toLowerCase() && info.collector_number === String(card.number)) || {} as Obj;
488
500
  }
489
501
  if (cardInfo && Object.keys(cardInfo).length !== 0) {
490
502
  properties.forEach(prop => {
491
- if (typeof cardInfo[prop] !== "undefined") {
503
+ if (cardInfo[prop].length > 0) {
492
504
  cards[index][prop] = cardInfo[prop];
493
505
  }
494
506
  });
@@ -552,10 +564,10 @@ const hxdec = {
552
564
  if (nameSplit.length > 1) {
553
565
  newCard.collectorNumber = nameSplit[1].trim();
554
566
  }
555
- if (typeof newCard.set !== "undefined") {
567
+ if (newCard.set.length > 0) {
556
568
  newCard.hxcode = hxdec.setData.find(s => s.code.toLowerCase() === newCard.set.toLowerCase())?.hxcode || null;
557
569
  }
558
- if (typeof newCard.collectorNumber !== "undefined") {
570
+ if (newCard.collectorNumber.length > 0) {
559
571
  // if collector number is just a number, convert to hex and pad to 3 digits
560
572
  if (/^\d+$/.test(newCard.collectorNumber)) {
561
573
  const hxnumber = Number(newCard.collectorNumber).toString(16);