@tf2-automatic/tf2-format 9.3.0-dev.3 → 10.0.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.
Files changed (53) hide show
  1. package/README.md +124 -7
  2. package/package.json +1 -1
  3. package/src/index.d.ts +1 -0
  4. package/src/index.js +1 -0
  5. package/src/index.js.map +1 -1
  6. package/src/lib/common.d.ts +29 -0
  7. package/src/lib/common.js +33 -0
  8. package/src/lib/common.js.map +1 -0
  9. package/src/lib/naming/index.d.ts +2 -1
  10. package/src/lib/naming/index.js +21 -26
  11. package/src/lib/naming/index.js.map +1 -1
  12. package/src/lib/parsing/bptf/parser.d.ts +8 -0
  13. package/src/lib/parsing/bptf/parser.js +89 -0
  14. package/src/lib/parsing/bptf/parser.js.map +1 -0
  15. package/src/lib/parsing/bptf/types.d.ts +94 -0
  16. package/src/lib/parsing/bptf/types.js +3 -0
  17. package/src/lib/parsing/bptf/types.js.map +1 -0
  18. package/src/lib/parsing/econ/parser.d.ts +3 -9
  19. package/src/lib/parsing/econ/parser.js +74 -138
  20. package/src/lib/parsing/econ/parser.js.map +1 -1
  21. package/src/lib/parsing/econ/types.d.ts +1 -1
  22. package/src/lib/parsing/helpers.d.ts +7 -0
  23. package/src/lib/parsing/helpers.js +105 -0
  24. package/src/lib/parsing/helpers.js.map +1 -0
  25. package/src/lib/parsing/index.d.ts +3 -1
  26. package/src/lib/parsing/index.js +3 -1
  27. package/src/lib/parsing/index.js.map +1 -1
  28. package/src/lib/parsing/parser.d.ts +4 -4
  29. package/src/lib/parsing/parser.js.map +1 -1
  30. package/src/lib/parsing/tf2/parser.d.ts +9 -10
  31. package/src/lib/parsing/tf2/parser.js +123 -384
  32. package/src/lib/parsing/tf2/parser.js.map +1 -1
  33. package/src/lib/parsing/tf2/types.d.ts +12 -59
  34. package/src/lib/parsing/tf2-api/parser.d.ts +10 -0
  35. package/src/lib/parsing/tf2-api/parser.js +128 -0
  36. package/src/lib/parsing/tf2-api/parser.js.map +1 -0
  37. package/src/lib/parsing/tf2-api/types.d.ts +47 -0
  38. package/src/lib/parsing/tf2-api/types.js +3 -0
  39. package/src/lib/parsing/tf2-api/types.js.map +1 -0
  40. package/src/lib/parsing/tf2-gc/constants.js.map +1 -0
  41. package/src/lib/parsing/tf2-gc/parser.d.ts +12 -0
  42. package/src/lib/parsing/tf2-gc/parser.js +277 -0
  43. package/src/lib/parsing/tf2-gc/parser.js.map +1 -0
  44. package/src/lib/parsing/tf2-gc/types.d.ts +43 -0
  45. package/src/lib/parsing/tf2-gc/types.js +3 -0
  46. package/src/lib/parsing/tf2-gc/types.js.map +1 -0
  47. package/src/lib/schemas.d.ts +65 -0
  48. package/src/lib/schemas.js +3 -0
  49. package/src/lib/schemas.js.map +1 -0
  50. package/src/lib/types.d.ts +11 -323
  51. package/src/lib/parsing/tf2/constants.js.map +0 -1
  52. /package/src/lib/parsing/{tf2 → tf2-gc}/constants.d.ts +0 -0
  53. /package/src/lib/parsing/{tf2 → tf2-gc}/constants.js +0 -0
@@ -3,6 +3,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.EconParser = void 0;
4
4
  const tslib_1 = require("tslib");
5
5
  const parser_1 = require("../parser");
6
+ const common_1 = require("../../common");
7
+ const helpers = tslib_1.__importStar(require("../helpers"));
6
8
  const TAGS_OF_INTEREST = new Set([
7
9
  'Quality',
8
10
  'Exterior',
@@ -14,24 +16,6 @@ const NON_CRAFTABLE_DESCRIPTIONS = {
14
16
  '( Not Tradable, Marketable, or Usable in Crafting )': true,
15
17
  '( Not Tradable, Marketable, Usable in Crafting, or Gift Wrappable )': true,
16
18
  };
17
- const WEAR = {
18
- 'Factory New': 1,
19
- 'Minimal Wear': 2,
20
- 'Field-Tested': 3,
21
- 'Well-Worn': 4,
22
- 'Battle Scarred': 5,
23
- };
24
- const KILLSTREAK_FABRICATORS = {
25
- 1: 6527,
26
- 2: 6523,
27
- 3: 6526,
28
- };
29
- const KILLSTREAK_TIERS = {
30
- Killstreak: 1,
31
- 'Specialized Killstreak': 2,
32
- 'Professional Killstreak': 3,
33
- };
34
- /* eslint-enable @typescript-eslint/no-duplicate-enum-values */
35
19
  /**
36
20
  * This is a mapping from the item type to the description that we want to
37
21
  * start the description parsing from
@@ -111,7 +95,7 @@ class EconParser extends parser_1.Parser {
111
95
  effect: descriptions.effect,
112
96
  wear: (_c = tags.Exterior) !== null && _c !== void 0 ? _c : null,
113
97
  paint: descriptions.paint,
114
- killstreak: EconParser.getKillstreak(descriptions),
98
+ killstreak: EconParser.getKillstreak(item.market_hash_name, descriptions),
115
99
  sheen: descriptions.sheen,
116
100
  killstreaker: descriptions.killstreaker,
117
101
  spells: descriptions.spells,
@@ -187,7 +171,10 @@ class EconParser extends parser_1.Parser {
187
171
  raw.outputQuality = 'Unique';
188
172
  if (raw.killstreak !== 0) {
189
173
  // Handle Killstreak Kit Fabricators
190
- raw.target = raw.output.slice(raw.output.indexOf('Killstreak ') + 11, raw.output.lastIndexOf(' Kit'));
174
+ const target = raw.output.slice(raw.output.indexOf('Killstreak ') + 11, raw.output.lastIndexOf(' Kit'));
175
+ if (target !== '') {
176
+ raw.target = target;
177
+ }
191
178
  raw.output = 'Kit';
192
179
  }
193
180
  else if (raw.output.endsWith('Strangifier')) {
@@ -230,7 +217,10 @@ class EconParser extends parser_1.Parser {
230
217
  throw new Error('Quality is undefined');
231
218
  }
232
219
  let effect = null;
233
- if (raw.effect !== null) {
220
+ if (raw.effect === 'Invalid Particle') {
221
+ effect = 0;
222
+ }
223
+ else if (raw.effect !== null) {
234
224
  const cached = this.schema.getEffectByName(raw.effect);
235
225
  if (cached === undefined) {
236
226
  effect = yield this.schema.fetchEffectByName(raw.effect);
@@ -257,7 +247,7 @@ class EconParser extends parser_1.Parser {
257
247
  }
258
248
  let wear = null;
259
249
  if (raw.wear !== null) {
260
- wear = WEAR[raw.wear];
250
+ wear = common_1.WEAR_NAMES_TO_LEVELS[raw.wear];
261
251
  }
262
252
  let target = null;
263
253
  if (raw.target !== null) {
@@ -288,7 +278,7 @@ class EconParser extends parser_1.Parser {
288
278
  let output = null;
289
279
  if (raw.output !== null) {
290
280
  if (raw.output === 'Kit') {
291
- output = KILLSTREAK_FABRICATORS[raw.killstreak];
281
+ output = common_1.KILLSTREAK_FABRICATORS[raw.killstreak];
292
282
  }
293
283
  else if (raw.output === 'Strangifier') {
294
284
  output = 6522;
@@ -316,21 +306,7 @@ class EconParser extends parser_1.Parser {
316
306
  parts.push(part);
317
307
  }
318
308
  }
319
- const spells = [];
320
- for (const spell of raw.spells) {
321
- const cached = this.schema.getSpellByName(spell);
322
- if (cached instanceof Error) {
323
- throw cached;
324
- }
325
- else if (cached !== undefined) {
326
- spells.push(cached);
327
- continue;
328
- }
329
- const fetched = yield this.schema.fetchSpellByName(spell);
330
- if (fetched) {
331
- spells.push(fetched);
332
- }
333
- }
309
+ const spells = yield helpers.getSpellByName(raw.spells, this.schema);
334
310
  let paint = null;
335
311
  if (raw.paint !== null) {
336
312
  const cached = this.schema.getDefindexByName(raw.paint);
@@ -370,58 +346,19 @@ class EconParser extends parser_1.Parser {
370
346
  killstreaker = cached;
371
347
  }
372
348
  }
373
- let inputs = null;
374
- if (raw.inputs !== null) {
375
- inputs = [];
376
- for (const rawInput of raw.inputs) {
377
- let name = rawInput.name;
378
- let rawQuality = 'Unique';
379
- // Handle strange items for strangifier chemistry sets
380
- if (name.startsWith('Strange ') && raw.output === 'Strangifier') {
381
- name = name.slice(8);
382
- rawQuality = 'Strange';
383
- }
384
- let quality = null;
385
- // Get the quality
386
- const cachedQuality = this.schema.getQualityByName(rawQuality);
387
- if (cachedQuality === undefined) {
388
- quality = yield this.schema.fetchQualityByName(rawQuality);
389
- }
390
- else if (cachedQuality instanceof Error) {
391
- throw cachedQuality;
392
- }
393
- else {
394
- quality = cachedQuality;
395
- }
396
- const input = {
397
- quality,
398
- amount: rawInput.amount,
399
- };
400
- // Handle killstreak items for killstreak kit fabricators
401
- if (name.startsWith('Unique') && name.endsWith(' Killstreak Item')) {
402
- const killstreak = name.slice(7, name.length - 5);
403
- name = null;
404
- input.killstreak = KILLSTREAK_TIERS[killstreak];
405
- }
406
- if (name !== null) {
407
- // Get the defindex of the input item
408
- let defindex = null;
409
- const cached = this.getInputByName(name);
410
- if (cached === undefined) {
411
- defindex = yield this.fetchInputByName(name);
412
- }
413
- else if (cached instanceof Error) {
414
- throw cached;
415
- }
416
- else {
417
- defindex = cached;
418
- }
419
- if (defindex === null) {
420
- throw new Error(`Could not find the defindex of the input item "${name}"`);
421
- }
422
- input.defindex = defindex;
423
- }
424
- inputs.push(input);
349
+ const inputs = yield helpers.parseInputs(raw.inputs, this.schema);
350
+ let crateSeries = raw.crateSeries;
351
+ if (crateSeries === null && raw.type === 'Crate') {
352
+ let item = this.schema.getItemsGameItemByDefindex(raw.defindex);
353
+ if (item === undefined) {
354
+ item = yield this.schema.fetchItemsGameItemByDefindex(raw.defindex);
355
+ }
356
+ else if (item instanceof Error) {
357
+ throw item;
358
+ }
359
+ if (item.static_attrs &&
360
+ item.static_attrs['set supply crate series'] !== undefined) {
361
+ crateSeries = Number(item.static_attrs['set supply crate series']);
425
362
  }
426
363
  }
427
364
  const parsed = {
@@ -440,7 +377,7 @@ class EconParser extends parser_1.Parser {
440
377
  output,
441
378
  outputQuality,
442
379
  elevated: raw.elevated,
443
- crateSeries: raw.crateSeries,
380
+ crateSeries,
444
381
  paint,
445
382
  parts,
446
383
  spells,
@@ -461,9 +398,9 @@ class EconParser extends parser_1.Parser {
461
398
  if (!part) {
462
399
  return part;
463
400
  }
464
- let item = this.schema.getItemByDefindex(part);
401
+ let item = this.schema.getItemsGameItemByDefindex(part);
465
402
  if (item === undefined) {
466
- item = yield this.schema.fetchItemByDefindex(part);
403
+ item = yield this.schema.fetchItemsGameItemByDefindex(part);
467
404
  }
468
405
  else if (item instanceof Error) {
469
406
  throw item;
@@ -478,26 +415,6 @@ class EconParser extends parser_1.Parser {
478
415
  return part;
479
416
  });
480
417
  }
481
- getInputByName(name) {
482
- if (name.startsWith('The ')) {
483
- const input = this.schema.getDefindexByName(name.slice(4));
484
- if (input) {
485
- return input;
486
- }
487
- }
488
- return this.schema.getDefindexByName(name);
489
- }
490
- fetchInputByName(name) {
491
- return tslib_1.__awaiter(this, void 0, void 0, function* () {
492
- if (name.startsWith('The ')) {
493
- const input = yield this.schema.fetchDefindexByName(name.slice(4));
494
- if (input) {
495
- return input;
496
- }
497
- }
498
- return this.schema.fetchDefindexByName(name);
499
- });
500
- }
501
418
  static getDefindex(item) {
502
419
  for (const action of item.actions) {
503
420
  if (action.name !== 'Item Wiki Page...') {
@@ -511,14 +428,17 @@ class EconParser extends parser_1.Parser {
511
428
  }
512
429
  return null;
513
430
  }
514
- static getKillstreak(descriptions) {
515
- if (descriptions.killstreaker !== null) {
431
+ static getKillstreak(name, descriptions) {
432
+ if (descriptions.killstreaker !== null ||
433
+ name.includes(common_1.KILLSTREAK_TIERS_TO_NAMES[3])) {
516
434
  return 3;
517
435
  }
518
- else if (descriptions.sheen !== null) {
436
+ else if (descriptions.sheen !== null ||
437
+ name.includes(common_1.KILLSTREAK_TIERS_TO_NAMES[2])) {
519
438
  return 2;
520
439
  }
521
- else if (descriptions.killstreak) {
440
+ else if (descriptions.killstreak ||
441
+ name.includes(common_1.KILLSTREAK_TIERS_TO_NAMES[1])) {
522
442
  return 1;
523
443
  }
524
444
  else {
@@ -590,7 +510,7 @@ class EconParser extends parser_1.Parser {
590
510
  * @param start The description to start from
591
511
  * @returns An object with the extracted information
592
512
  */
593
- static getDescriptionAttributes(item, tags, start = 1 /* IdentifiableDescription.Paint */) {
513
+ static getDescriptionAttributes(item, tags, start = 1 /* IdentifiableDescription.All */) {
594
514
  const attributes = {
595
515
  craftable: true,
596
516
  effect: null,
@@ -638,6 +558,11 @@ class EconParser extends parser_1.Parser {
638
558
  i++;
639
559
  }
640
560
  }
561
+ else if (tags.Type === 'Tool' &&
562
+ descriptions[i].value === 'Used to paint other items.') {
563
+ // It would be easier to just take the defindex of the item, but meh
564
+ attributes.paint = item.market_hash_name;
565
+ }
641
566
  loop: while (i < descriptions.length - 1) {
642
567
  // Skip descriptions that are too short/long to contain any useful information
643
568
  // TODO: Fix "magic numbers"
@@ -645,53 +570,64 @@ class EconParser extends parser_1.Parser {
645
570
  i++;
646
571
  continue;
647
572
  }
573
+ let matchedAll = false;
648
574
  /* eslint-disable no-fallthrough */
649
575
  switch (next) {
650
- case 1 /* IdentifiableDescription.All */:
651
- case 1 /* IdentifiableDescription.Paint */:
576
+ case 1 /* IdentifiableDescription.All */: {
652
577
  if (descriptions[i].value.startsWith('Paint Color: ')) {
653
578
  attributes.paint = descriptions[i].value.slice(13);
654
- next = 1 /* IdentifiableDescription.Effect */;
579
+ next = 1 /* IdentifiableDescription.All */;
655
580
  i++;
581
+ matchedAll = true;
656
582
  }
657
- case 1 /* IdentifiableDescription.Effect */:
658
583
  if (descriptions[i].value.startsWith('\u2605 Unusual Effect: ')) {
659
584
  attributes.effect = descriptions[i].value.slice(18);
660
- next = 1 /* IdentifiableDescription.Spells */;
585
+ next = 1 /* IdentifiableDescription.All */;
661
586
  i++;
587
+ matchedAll = true;
662
588
  }
663
- case 1 /* IdentifiableDescription.Spells */:
664
589
  if (descriptions[i].value.startsWith('Halloween: ')) {
665
590
  attributes.spells.push(descriptions[i].value.slice(11, descriptions[i].value.lastIndexOf(' (spell only active during event)')));
666
591
  // This is redundant
667
- next = 1 /* IdentifiableDescription.Spells */;
592
+ next = 1 /* IdentifiableDescription.All */;
668
593
  i++;
594
+ matchedAll = true;
669
595
  // We break because that might be the best to do if there are more spells
670
- continue loop;
671
596
  }
672
- case 1 /* IdentifiableDescription.Parts */:
597
+ let partIndex = -1;
673
598
  if (descriptions[i].value.startsWith('(') &&
674
599
  // Make sure it does not match Craftable/Tradable/Marketable descriptions
675
600
  descriptions[i].value.charAt(1) !== ' ') {
676
- attributes.parts.push(descriptions[i].value.slice(1, descriptions[i].value.lastIndexOf(': ')));
677
- next = 1 /* IdentifiableDescription.Parts */;
678
- i++;
679
- // Break again so we can check for more parts
680
- continue loop;
601
+ partIndex = 1;
681
602
  }
682
603
  else if (descriptions[i].value.startsWith(' ')) {
683
- attributes.parts.push(descriptions[i].value.slice(5, descriptions[i].value.lastIndexOf(': ')));
684
- next = 1 /* IdentifiableDescription.Parts */;
604
+ partIndex = 5;
605
+ }
606
+ if (partIndex !== -1) {
607
+ const killEater = descriptions[i].value.slice(partIndex, descriptions[i].value.lastIndexOf(': '));
608
+ // TODO: Do we care about strange filters?
609
+ const killEaterFilterIndex = killEater.indexOf(' (');
610
+ let end = killEater.length;
611
+ if (killEaterFilterIndex !== -1) {
612
+ end = killEaterFilterIndex;
613
+ }
614
+ attributes.parts.push(killEater.slice(0, end));
615
+ next = 1 /* IdentifiableDescription.All */;
685
616
  i++;
617
+ matchedAll = true;
686
618
  // Break again so we can check for more parts
687
619
  continue loop;
688
620
  }
689
- case 3 /* IdentifiableDescription.Festivized */:
690
621
  if (descriptions[i].value === 'Festivized') {
691
622
  attributes.festivized = true;
692
- next = 4 /* IdentifiableDescription.Killstreaker */;
623
+ next = 1 /* IdentifiableDescription.All */;
693
624
  i++;
625
+ matchedAll = true;
694
626
  }
627
+ if (matchedAll) {
628
+ continue loop;
629
+ }
630
+ }
695
631
  case 4 /* IdentifiableDescription.Killstreaker */:
696
632
  if (descriptions[i].value.startsWith('Killstreaker: ')) {
697
633
  attributes.killstreaker = descriptions[i].value.slice(14);
@@ -765,8 +701,8 @@ class EconParser extends parser_1.Parser {
765
701
  while (descriptions[i].value !== ' ') {
766
702
  const split = descriptions[i].value.lastIndexOf(' x ');
767
703
  const name = descriptions[i].value.slice(0, split);
768
- const amount = parseInt(descriptions[i].value.slice(split + 3), 10);
769
- inputs.push({ name, amount });
704
+ const quantity = parseInt(descriptions[i].value.slice(split + 3), 10);
705
+ inputs.push({ name, quantity });
770
706
  i++;
771
707
  }
772
708
  next = 9 /* IdentifiableDescription.Output */;
@@ -1 +1 @@
1
- {"version":3,"file":"parser.js","sourceRoot":"","sources":["../../../../../../../libs/tf2-format/src/lib/parsing/econ/parser.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"parser.js","sourceRoot":"","sources":["../../../../../../../libs/tf2-format/src/lib/parsing/econ/parser.ts"],"names":[],"mappings":"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"}
@@ -50,7 +50,7 @@ export interface MarketAction {
50
50
  }
51
51
  export interface ExtractedRecipeInput {
52
52
  name: string;
53
- amount: number;
53
+ quantity: number;
54
54
  }
55
55
  export interface TagAttributes {
56
56
  Quality?: string;
@@ -0,0 +1,7 @@
1
+ import { DefindexByName, QualityByName, SpellByName } from '../schemas';
2
+ import { RecipeInput, NumberOrNull, Spell } from '../types';
3
+ import { ExtractedRecipeInput } from './econ/types';
4
+ export declare function getInputByName(name: string, schema: DefindexByName): import("../types").UndefinedOrError<number>;
5
+ export declare function fetchInputByName(name: string, schema: DefindexByName): Promise<NumberOrNull>;
6
+ export declare function getSpellByName(extractedSpells: string[], schema: SpellByName): Promise<Spell[]>;
7
+ export declare function parseInputs(extractedInputs: ExtractedRecipeInput[] | null, schema: QualityByName & DefindexByName): Promise<RecipeInput[] | null>;
@@ -0,0 +1,105 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getInputByName = getInputByName;
4
+ exports.fetchInputByName = fetchInputByName;
5
+ exports.getSpellByName = getSpellByName;
6
+ exports.parseInputs = parseInputs;
7
+ const tslib_1 = require("tslib");
8
+ const common_1 = require("../common");
9
+ function getInputByName(name, schema) {
10
+ if (name.startsWith('The ')) {
11
+ const input = schema.getDefindexByName(name.slice(4));
12
+ if (input) {
13
+ return input;
14
+ }
15
+ }
16
+ return schema.getDefindexByName(name);
17
+ }
18
+ function fetchInputByName(name, schema) {
19
+ if (name.startsWith('The ')) {
20
+ const input = schema.fetchDefindexByName(name.slice(4));
21
+ if (input) {
22
+ return input;
23
+ }
24
+ }
25
+ return schema.fetchDefindexByName(name);
26
+ }
27
+ function getSpellByName(extractedSpells, schema) {
28
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
29
+ const spells = [];
30
+ for (const spell of extractedSpells) {
31
+ const cached = schema.getSpellByName(spell);
32
+ if (cached instanceof Error) {
33
+ throw cached;
34
+ }
35
+ else if (cached !== undefined) {
36
+ spells.push(cached);
37
+ continue;
38
+ }
39
+ const fetched = yield schema.fetchSpellByName(spell);
40
+ spells.push(fetched);
41
+ }
42
+ return spells;
43
+ });
44
+ }
45
+ function parseInputs(extractedInputs, schema) {
46
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
47
+ let inputs = null;
48
+ if (extractedInputs !== null) {
49
+ inputs = [];
50
+ for (const rawInput of extractedInputs) {
51
+ let name = rawInput.name;
52
+ let rawQuality = 'Unique';
53
+ // Handle strange items for strangifier chemistry sets
54
+ if (name.startsWith('Strange ')) {
55
+ name = name.slice(8);
56
+ rawQuality = 'Strange';
57
+ }
58
+ let quality = null;
59
+ // Get the quality
60
+ const cachedQuality = schema.getQualityByName(rawQuality);
61
+ if (cachedQuality === undefined) {
62
+ quality = yield schema.fetchQualityByName(rawQuality);
63
+ }
64
+ else if (cachedQuality instanceof Error) {
65
+ throw cachedQuality;
66
+ }
67
+ else {
68
+ quality = cachedQuality;
69
+ }
70
+ const input = {
71
+ quality,
72
+ quantity: rawInput.quantity,
73
+ };
74
+ // Handle killstreak items for killstreak kit fabricators
75
+ if (name.endsWith(' Killstreak Item')) {
76
+ // Backpack.tf does not prefix "Unique", but Steam does...
77
+ const killstreak = name.slice(name.startsWith('Unique') ? 7 : 0, name.length - 5);
78
+ name = null;
79
+ input.killstreak = common_1.KILLSTREAK_NAMES_TO_TIERS[killstreak];
80
+ }
81
+ if (name !== null) {
82
+ // Get the defindex of the input item
83
+ let defindex = null;
84
+ const cached = getInputByName(name, schema);
85
+ if (cached === undefined) {
86
+ defindex = yield fetchInputByName(name, schema);
87
+ }
88
+ else if (cached instanceof Error) {
89
+ throw cached;
90
+ }
91
+ else {
92
+ defindex = cached;
93
+ }
94
+ if (defindex === null) {
95
+ throw new Error(`Could not find the defindex of the input item "${name}"`);
96
+ }
97
+ input.defindex = defindex;
98
+ }
99
+ inputs.push(input);
100
+ }
101
+ }
102
+ return inputs;
103
+ });
104
+ }
105
+ //# sourceMappingURL=helpers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../../../../../libs/tf2-format/src/lib/parsing/helpers.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,5 @@
1
1
  export * from './parser';
2
2
  export * from './econ/parser';
3
- export * from './tf2/parser';
3
+ export * from './tf2-gc/parser';
4
+ export * from './tf2-api/parser';
5
+ export * from './bptf/parser';
@@ -3,5 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const tslib_1 = require("tslib");
4
4
  tslib_1.__exportStar(require("./parser"), exports);
5
5
  tslib_1.__exportStar(require("./econ/parser"), exports);
6
- tslib_1.__exportStar(require("./tf2/parser"), exports);
6
+ tslib_1.__exportStar(require("./tf2-gc/parser"), exports);
7
+ tslib_1.__exportStar(require("./tf2-api/parser"), exports);
8
+ tslib_1.__exportStar(require("./bptf/parser"), exports);
7
9
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../libs/tf2-format/src/lib/parsing/index.ts"],"names":[],"mappings":";;;AAAA,mDAAyB;AACzB,wDAA8B;AAC9B,uDAA6B"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../libs/tf2-format/src/lib/parsing/index.ts"],"names":[],"mappings":";;;AAAA,mDAAyB;AACzB,wDAA8B;AAC9B,0DAAgC;AAChC,2DAAiC;AACjC,wDAA8B"}