@tf2-automatic/tf2-format 9.3.0-dev.3 → 10.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/README.md +124 -7
- package/package.json +3 -2
- package/src/index.d.ts +3 -0
- package/src/index.js +3 -0
- package/src/index.js.map +1 -1
- package/src/lib/binary/binary.d.ts +8 -0
- package/src/lib/binary/binary.js +56 -0
- package/src/lib/binary/binary.js.map +1 -0
- package/src/lib/binary/index.d.ts +1 -0
- package/src/lib/binary/index.js +5 -0
- package/src/lib/binary/index.js.map +1 -0
- package/src/lib/common.d.ts +29 -0
- package/src/lib/common.js +33 -0
- package/src/lib/common.js.map +1 -0
- package/src/lib/naming/index.d.ts +2 -1
- package/src/lib/naming/index.js +25 -27
- package/src/lib/naming/index.js.map +1 -1
- package/src/lib/parsing/bptf/parser.d.ts +8 -0
- package/src/lib/parsing/bptf/parser.js +89 -0
- package/src/lib/parsing/bptf/parser.js.map +1 -0
- package/src/lib/parsing/bptf/types.d.ts +94 -0
- package/src/lib/parsing/bptf/types.js +3 -0
- package/src/lib/parsing/bptf/types.js.map +1 -0
- package/src/lib/parsing/econ/parser.d.ts +3 -9
- package/src/lib/parsing/econ/parser.js +75 -138
- package/src/lib/parsing/econ/parser.js.map +1 -1
- package/src/lib/parsing/econ/types.d.ts +1 -1
- package/src/lib/parsing/helpers.d.ts +7 -0
- package/src/lib/parsing/helpers.js +105 -0
- package/src/lib/parsing/helpers.js.map +1 -0
- package/src/lib/parsing/index.d.ts +3 -1
- package/src/lib/parsing/index.js +3 -1
- package/src/lib/parsing/index.js.map +1 -1
- package/src/lib/parsing/parser.d.ts +4 -4
- package/src/lib/parsing/parser.js.map +1 -1
- package/src/lib/parsing/tf2/parser.d.ts +9 -10
- package/src/lib/parsing/tf2/parser.js +123 -384
- package/src/lib/parsing/tf2/parser.js.map +1 -1
- package/src/lib/parsing/tf2/types.d.ts +12 -59
- package/src/lib/parsing/tf2-api/parser.d.ts +10 -0
- package/src/lib/parsing/tf2-api/parser.js +128 -0
- package/src/lib/parsing/tf2-api/parser.js.map +1 -0
- package/src/lib/parsing/tf2-api/types.d.ts +47 -0
- package/src/lib/parsing/tf2-api/types.js +3 -0
- package/src/lib/parsing/tf2-api/types.js.map +1 -0
- package/src/lib/parsing/tf2-gc/constants.js.map +1 -0
- package/src/lib/parsing/tf2-gc/parser.d.ts +12 -0
- package/src/lib/parsing/tf2-gc/parser.js +277 -0
- package/src/lib/parsing/tf2-gc/parser.js.map +1 -0
- package/src/lib/parsing/tf2-gc/types.d.ts +43 -0
- package/src/lib/parsing/tf2-gc/types.js +3 -0
- package/src/lib/parsing/tf2-gc/types.js.map +1 -0
- package/src/lib/schemas.d.ts +65 -0
- package/src/lib/schemas.js +3 -0
- package/src/lib/schemas.js.map +1 -0
- package/src/lib/sku/sku.d.ts +2 -3
- package/src/lib/sku/sku.js +11 -28
- package/src/lib/sku/sku.js.map +1 -1
- package/src/lib/types.d.ts +8 -324
- package/src/lib/utils/index.d.ts +1 -0
- package/src/lib/utils/index.js +5 -0
- package/src/lib/utils/index.js.map +1 -0
- package/src/lib/utils/utils.d.ts +60 -0
- package/src/lib/utils/utils.js +123 -0
- package/src/lib/utils/utils.js.map +1 -0
- package/src/lib/parsing/tf2/constants.js.map +0 -1
- /package/src/lib/parsing/{tf2 → tf2-gc}/constants.d.ts +0 -0
- /package/src/lib/parsing/{tf2 → tf2-gc}/constants.js +0 -0
|
@@ -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":";;AAKA,wCASC;AAED,4CASC;AAED,wCAmBC;AAED,kCAuEC;;AArHD,sCAAsD;AAGtD,SAAgB,cAAc,CAAC,IAAY,EAAE,MAAsB;IACjE,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;QAC5B,MAAM,KAAK,GAAG,MAAM,CAAC,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QACtD,IAAI,KAAK,EAAE,CAAC;YACV,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;AACxC,CAAC;AAED,SAAgB,gBAAgB,CAAC,IAAY,EAAE,MAAsB;IACnE,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;QAC5B,MAAM,KAAK,GAAG,MAAM,CAAC,mBAAmB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QACxD,IAAI,KAAK,EAAE,CAAC;YACV,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC;AAC1C,CAAC;AAED,SAAsB,cAAc,CAClC,eAAyB,EACzB,MAAmB;;QAEnB,MAAM,MAAM,GAAY,EAAE,CAAC;QAC3B,KAAK,MAAM,KAAK,IAAI,eAAe,EAAE,CAAC;YACpC,MAAM,MAAM,GAAG,MAAM,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;YAC5C,IAAI,MAAM,YAAY,KAAK,EAAE,CAAC;gBAC5B,MAAM,MAAM,CAAC;YACf,CAAC;iBAAM,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;gBAChC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gBACpB,SAAS;YACX,CAAC;YAED,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;YACrD,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACvB,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;CAAA;AAED,SAAsB,WAAW,CAC/B,eAA8C,EAC9C,MAAsC;;QAEtC,IAAI,MAAM,GAAyB,IAAI,CAAC;QACxC,IAAI,eAAe,KAAK,IAAI,EAAE,CAAC;YAC7B,MAAM,GAAG,EAAE,CAAC;YAEZ,KAAK,MAAM,QAAQ,IAAI,eAAe,EAAE,CAAC;gBACvC,IAAI,IAAI,GAAkB,QAAQ,CAAC,IAAI,CAAC;gBACxC,IAAI,UAAU,GAAG,QAAQ,CAAC;gBAC1B,sDAAsD;gBACtD,IAAI,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;oBAChC,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;oBACrB,UAAU,GAAG,SAAS,CAAC;gBACzB,CAAC;gBAED,IAAI,OAAO,GAAiB,IAAI,CAAC;gBAEjC,kBAAkB;gBAClB,MAAM,aAAa,GAAG,MAAM,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC;gBAC1D,IAAI,aAAa,KAAK,SAAS,EAAE,CAAC;oBAChC,OAAO,GAAG,MAAM,MAAM,CAAC,kBAAkB,CAAC,UAAU,CAAC,CAAC;gBACxD,CAAC;qBAAM,IAAI,aAAa,YAAY,KAAK,EAAE,CAAC;oBAC1C,MAAM,aAAa,CAAC;gBACtB,CAAC;qBAAM,CAAC;oBACN,OAAO,GAAG,aAAa,CAAC;gBAC1B,CAAC;gBAED,MAAM,KAAK,GAAgB;oBACzB,OAAO;oBACP,QAAQ,EAAE,QAAQ,CAAC,QAAQ;iBAC5B,CAAC;gBAEF,yDAAyD;gBACzD,IAAI,IAAI,CAAC,QAAQ,CAAC,kBAAkB,CAAC,EAAE,CAAC;oBACtC,0DAA0D;oBAC1D,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAC3B,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EACjC,IAAI,CAAC,MAAM,GAAG,CAAC,CAChB,CAAC;oBACF,IAAI,GAAG,IAAI,CAAC;oBACZ,KAAK,CAAC,UAAU,GAAG,kCAAyB,CAAC,UAAU,CAAC,CAAC;gBAC3D,CAAC;gBACD,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;oBAClB,qCAAqC;oBACrC,IAAI,QAAQ,GAAkB,IAAI,CAAC;oBAEnC,MAAM,MAAM,GAAG,cAAc,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;oBAC5C,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;wBACzB,QAAQ,GAAG,MAAM,gBAAgB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;oBAClD,CAAC;yBAAM,IAAI,MAAM,YAAY,KAAK,EAAE,CAAC;wBACnC,MAAM,MAAM,CAAC;oBACf,CAAC;yBAAM,CAAC;wBACN,QAAQ,GAAG,MAAM,CAAC;oBACpB,CAAC;oBAED,IAAI,QAAQ,KAAK,IAAI,EAAE,CAAC;wBACtB,MAAM,IAAI,KAAK,CACb,kDAAkD,IAAI,GAAG,CAC1D,CAAC;oBACJ,CAAC;oBAED,KAAK,CAAC,QAAQ,GAAG,QAAQ,CAAC;gBAC5B,CAAC;gBAED,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACrB,CAAC;QACH,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;CAAA"}
|
package/src/lib/parsing/index.js
CHANGED
|
@@ -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,
|
|
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"}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import { InventoryItem } from '../types';
|
|
1
|
+
import { InventoryItem, Item, PossibleInventoryItem } from '../types';
|
|
2
2
|
/**
|
|
3
3
|
* A parser that extracts information from an item and parses it into a common format
|
|
4
4
|
*
|
|
5
5
|
* @template Item A type for the raw item to parse.
|
|
6
6
|
* @template ExtractedItem A type for the result of extracting information from the raw item.
|
|
7
7
|
*/
|
|
8
|
-
export declare abstract class Parser<SchemaType,
|
|
8
|
+
export declare abstract class Parser<SchemaType, RawItem, ExtractedItem, Context = null> {
|
|
9
9
|
protected readonly schema: SchemaType;
|
|
10
10
|
constructor(schema: SchemaType);
|
|
11
11
|
/**
|
|
@@ -13,12 +13,12 @@ export declare abstract class Parser<SchemaType, Item, ExtractedItem, Context =
|
|
|
13
13
|
* @param raw The raw item to extract information from.
|
|
14
14
|
* @returns The extracted information.
|
|
15
15
|
*/
|
|
16
|
-
abstract extract(raw:
|
|
16
|
+
abstract extract(raw: RawItem): Context extends null ? ExtractedItem : [ExtractedItem, Context];
|
|
17
17
|
/**
|
|
18
18
|
* This method parses the extracted information into a common format.
|
|
19
19
|
* @param extracted The result from the `extract` method.
|
|
20
20
|
* @returns The parsed inventory item.
|
|
21
21
|
* @throws If something goes wrong fetching values using the schema.
|
|
22
22
|
*/
|
|
23
|
-
abstract parse(extracted: ExtractedItem, context?: Context extends null ? never : Context): Promise<InventoryItem>;
|
|
23
|
+
abstract parse(extracted: ExtractedItem, context?: Context extends null ? never : Context): Promise<PossibleInventoryItem | InventoryItem | Item>;
|
|
24
24
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parser.js","sourceRoot":"","sources":["../../../../../../libs/tf2-format/src/lib/parsing/parser.ts"],"names":[],"mappings":";;;AAEA;;;;;GAKG;AACH,MAAsB,MAAM;
|
|
1
|
+
{"version":3,"file":"parser.js","sourceRoot":"","sources":["../../../../../../libs/tf2-format/src/lib/parsing/parser.ts"],"names":[],"mappings":";;;AAEA;;;;;GAKG;AACH,MAAsB,MAAM;IAM1B,YAA+B,MAAkB;QAAlB,WAAM,GAAN,MAAM,CAAY;IAAG,CAAC;CAqBtD;AA3BD,wBA2BC"}
|
|
@@ -1,12 +1,11 @@
|
|
|
1
|
+
import { TF2ParserSchema } from '../../schemas';
|
|
2
|
+
import { InventoryItem, Item } from '../../types';
|
|
1
3
|
import { Parser } from '../parser';
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
private static hasAttribute;
|
|
10
|
-
parse(extracted: ExtractedTF2Item, context: Context): Promise<InventoryItem>;
|
|
4
|
+
import { Context as APIContext, TF2APIItem } from '../tf2-api/types';
|
|
5
|
+
import { Context as GCContext, TF2GCItem } from '../tf2-gc/types';
|
|
6
|
+
import { Attributes, ExtractedTF2Item } from './types';
|
|
7
|
+
export declare abstract class TF2Parser<RawItem extends TF2GCItem | TF2APIItem, Context = RawItem extends TF2APIItem ? APIContext : GCContext> extends Parser<TF2ParserSchema, RawItem, ExtractedTF2Item, Context> {
|
|
8
|
+
protected createExtractedItem(item: RawItem, attributes: Partial<Attributes>): ExtractedTF2Item;
|
|
9
|
+
protected createParsedItem(extracted: ExtractedTF2Item, parts: Item['parts'], paint: Item['paint'], crateSeries: Item['crateSeries'], quantity: Item['quantity'], tradable: Item['tradable'], craftable: Item['craftable']): InventoryItem;
|
|
10
|
+
static extractSimpleAttribute(defindex: number, value: Buffer, result: Partial<Attributes>): void;
|
|
11
11
|
}
|
|
12
|
-
export * from './types';
|