uesp-eso-build-wrapper 0.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.
@@ -0,0 +1 @@
1
+ {"version":3,"file":"loader.js","sourceRoot":"","sources":["../../../src/lib/eso-engine/loader.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,136 @@
1
+ /**
2
+ * Public types for uesp-eso-build-wrapper.
3
+ *
4
+ * DATA FLOW:
5
+ * 1. Your front-end fetches item data from the UESP public API:
6
+ * https://esolog.uesp.net/exportJson.php?table=minedItem&id=<id>&level=<lv>&quality=<q>
7
+ * 2. Pass the returned object (UespItemApiData) directly to BuildInput.items[slot].
8
+ * 3. Call calculateBuild(input) — the library injects everything into the UESP engine
9
+ * and returns the computed stats.
10
+ *
11
+ * UPDATING AFTER A NEW PATCH (when ZeniMax releases a new DLC):
12
+ * 1. In vendor/uesp-esochardata/, run:
13
+ * git fetch upstream && git merge upstream/master
14
+ * 2. Open https://esobuilds.uesp.net in a browser.
15
+ * 3. Run vendor/uesp-data/browser-extract.js in the DevTools Console.
16
+ * 4. Save the downloaded JSON to vendor/uesp-data/uesp-init-data.json.
17
+ * 5. Run tests: npm test
18
+ */
19
+ export interface UespItemApiData {
20
+ itemId: string;
21
+ name?: string;
22
+ armorRating?: string;
23
+ weaponPower?: string;
24
+ armorType?: string;
25
+ weaponType?: string;
26
+ type?: string;
27
+ equipType?: string;
28
+ trait?: string;
29
+ traitDesc?: string;
30
+ enchantId?: string;
31
+ enchantName?: string;
32
+ enchantDesc?: string;
33
+ internalLevel?: string;
34
+ internalSubtype?: string;
35
+ setId?: string;
36
+ setName?: string;
37
+ setBonusCount?: string;
38
+ setMaxEquipCount?: string;
39
+ setBonusCount1?: string;
40
+ setBonusCount2?: string;
41
+ setBonusCount3?: string;
42
+ setBonusCount4?: string;
43
+ setBonusCount5?: string;
44
+ setBonusDesc1?: string;
45
+ setBonusDesc2?: string;
46
+ setBonusDesc3?: string;
47
+ setBonusDesc4?: string;
48
+ setBonusDesc5?: string;
49
+ abilityDesc?: string;
50
+ link?: string;
51
+ [key: string]: string | undefined;
52
+ }
53
+ export type EquipSlot = 'Head' | 'Shoulders' | 'Chest' | 'Hands' | 'Legs' | 'Waist' | 'Feet' | 'Neck' | 'Ring1' | 'Ring2' | 'MainHand1' | 'OffHand1' | 'MainHand2' | 'OffHand2' | 'Poison1' | 'Poison2' | 'Food' | 'Potion';
54
+ export interface BuildInput {
55
+ character: {
56
+ /** Raça. Ex: "High Elf", "Nord", "Breton", "Khajiit", "Dark Elf" */
57
+ race: string;
58
+ /** Classe. Ex: "Sorcerer", "Dragonknight", "Nightblade", "Templar" */
59
+ class: string;
60
+ /** Nível do personagem: 1–50 */
61
+ level: number;
62
+ /** Pontos de atributo distribuídos (máx 64 cada, total 64) */
63
+ attributes: {
64
+ health: number;
65
+ magicka: number;
66
+ stamina: number;
67
+ };
68
+ /** Pedra de Mundus ativa. Ex: "The Thief", "The Apprentice" */
69
+ mundusStone?: string;
70
+ /** Habilita Battle Spirit (modo PvP Cyrodiil) */
71
+ cyrodiil?: boolean;
72
+ /** Estágio de vampiro: 0–4 */
73
+ vampireStage?: number;
74
+ /** Estágio de lobisomem: 0 ou 1 */
75
+ werewolfStage?: number;
76
+ /** Total de Champion Points (0–3600). Distribuição detalhada via cpData. */
77
+ championPoints?: number;
78
+ /** Versão das regras: "Live" (padrão) ou "PTS" */
79
+ rulesVersion?: string;
80
+ };
81
+ /**
82
+ * Itens equipados. Passe o objeto retornado pela API da UESP diretamente.
83
+ * Busca: GET https://esolog.uesp.net/exportJson.php?table=minedItem&id=<id>&level=<lv>&quality=<q>
84
+ * Mapeie o item desejado (do array .minedItem[]) ao slot correto.
85
+ */
86
+ items?: Partial<Record<EquipSlot, UespItemApiData>>;
87
+ }
88
+ export interface ComputedStats {
89
+ Health: number;
90
+ Magicka: number;
91
+ Stamina: number;
92
+ HealthRegen: number;
93
+ MagickaRegen: number;
94
+ StaminaRegen: number;
95
+ WeaponDamage: number;
96
+ SpellDamage: number;
97
+ WeaponCrit: number;
98
+ SpellCrit: number;
99
+ SpellCritDamage: number;
100
+ WeaponCritDamage: number;
101
+ PhysicalResist: number;
102
+ SpellResist: number;
103
+ CritResist: number;
104
+ PhysicalPenetration: number;
105
+ SpellPenetration: number;
106
+ EffectiveSpellPower: number;
107
+ EffectiveWeaponPower: number;
108
+ EffectivePower: number;
109
+ HealingDone: number;
110
+ HealingTaken: number;
111
+ RunSpeed: number;
112
+ SprintSpeed: number;
113
+ AttackSpellMitigation: number;
114
+ AttackPhysicalMitigation: number;
115
+ DefenseSpellMitigation: number;
116
+ DefensePhysicalMitigation: number;
117
+ /** Objeto bruto com TODOS os valores de g_EsoComputedStats após o cálculo */
118
+ raw: Record<string, number>;
119
+ }
120
+ export interface UespInitData {
121
+ /** Fórmulas de cálculo dos stats (a "inteligência" do motor) */
122
+ computedStats: Record<string, unknown>;
123
+ /** Definições dos stats de entrada (estrutura de inputValues) */
124
+ inputStats: Record<string, unknown>;
125
+ /** Dados de buffs iniciais */
126
+ buffData?: Record<string, unknown>;
127
+ /** Dados de Champion Points iniciais */
128
+ cpData?: Record<string, unknown>;
129
+ /** Regras gerais da build */
130
+ buildRules?: Record<string, unknown>;
131
+ /** Dados de skills (vindos do banco da UESP) */
132
+ skillsData?: Record<string, unknown>;
133
+ /** Dados de skills de sets */
134
+ setSkillsData?: Record<string, unknown>;
135
+ }
136
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/lib/eso-engine/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ /**
3
+ * Public types for uesp-eso-build-wrapper.
4
+ *
5
+ * DATA FLOW:
6
+ * 1. Your front-end fetches item data from the UESP public API:
7
+ * https://esolog.uesp.net/exportJson.php?table=minedItem&id=<id>&level=<lv>&quality=<q>
8
+ * 2. Pass the returned object (UespItemApiData) directly to BuildInput.items[slot].
9
+ * 3. Call calculateBuild(input) — the library injects everything into the UESP engine
10
+ * and returns the computed stats.
11
+ *
12
+ * UPDATING AFTER A NEW PATCH (when ZeniMax releases a new DLC):
13
+ * 1. In vendor/uesp-esochardata/, run:
14
+ * git fetch upstream && git merge upstream/master
15
+ * 2. Open https://esobuilds.uesp.net in a browser.
16
+ * 3. Run vendor/uesp-data/browser-extract.js in the DevTools Console.
17
+ * 4. Save the downloaded JSON to vendor/uesp-data/uesp-init-data.json.
18
+ * 5. Run tests: npm test
19
+ */
20
+ Object.defineProperty(exports, "__esModule", { value: true });
21
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/lib/eso-engine/types.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;GAiBG"}
package/package.json ADDED
@@ -0,0 +1,55 @@
1
+ {
2
+ "name": "uesp-eso-build-wrapper",
3
+ "version": "0.1.0",
4
+ "description": "Node.js wrapper around the UESP ESO Build Editor math engine. Calculate Elder Scrolls Online character stats (Health, Magicka, Stamina, mitigation, crit, etc.) without rewriting any game formulas.",
5
+ "keywords": [
6
+ "elder-scrolls-online",
7
+ "eso",
8
+ "uesp",
9
+ "build-editor",
10
+ "character-stats",
11
+ "eso-build",
12
+ "game",
13
+ "wrapper"
14
+ ],
15
+ "license": "MIT",
16
+ "author": "Tarcisio Scotta",
17
+ "homepage": "https://github.com/srtomy/uesp-eso-build-wrapper#readme",
18
+ "repository": {
19
+ "type": "git",
20
+ "url": "https://github.com/srtomy/uesp-eso-build-wrapper.git"
21
+ },
22
+ "bugs": {
23
+ "url": "https://github.com/srtomy/uesp-eso-build-wrapper/issues"
24
+ },
25
+ "engines": {
26
+ "node": ">=18.0.0"
27
+ },
28
+ "main": "dist/lib/eso-engine/index.js",
29
+ "types": "dist/lib/eso-engine/index.d.ts",
30
+ "exports": {
31
+ ".": {
32
+ "require": "./dist/lib/eso-engine/index.js",
33
+ "default": "./dist/lib/eso-engine/index.js",
34
+ "types": "./dist/lib/eso-engine/index.d.ts"
35
+ }
36
+ },
37
+ "files": [
38
+ "dist",
39
+ "vendor/uesp-esochardata/resources/esoEditBuild.js",
40
+ "vendor/uesp-esochardata/resources/esobuilddata.js",
41
+ "vendor/uesp-esochardata/LICENSE",
42
+ "vendor/uesp-data/uesp-init-data.json",
43
+ "THIRD_PARTY_NOTICES"
44
+ ],
45
+ "scripts": {
46
+ "build": "tsc",
47
+ "prepublishOnly": "npm run build && node -e \"require('fs').existsSync('vendor/uesp-data/uesp-init-data.json')||process.exit(1)\"",
48
+ "test": "ts-node --project tsconfig.scripts.json scripts/test-engine.ts"
49
+ },
50
+ "devDependencies": {
51
+ "@types/node": "^20.19.41",
52
+ "ts-node": "^10.9.2",
53
+ "typescript": "^5.9.3"
54
+ }
55
+ }