@robsonbittencourt/calc 0.10.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/.eslintignore +2 -0
- package/.eslintrc +12 -0
- package/bundle +107 -0
- package/dist/adaptable.d.ts +6 -0
- package/dist/adaptable.js +28 -0
- package/dist/adaptable.js.map +1 -0
- package/dist/calc.d.ts +6 -0
- package/dist/calc.js +26 -0
- package/dist/calc.js.map +1 -0
- package/dist/data/abilities.d.ts +15 -0
- package/dist/data/abilities.js +448 -0
- package/dist/data/abilities.js.map +1 -0
- package/dist/data/index.d.ts +2 -0
- package/dist/data/index.js +30 -0
- package/dist/data/index.js.map +1 -0
- package/dist/data/interface.d.ts +150 -0
- package/dist/data/interface.js +3 -0
- package/dist/data/interface.js.map +1 -0
- package/dist/data/items.d.ts +24 -0
- package/dist/data/items.js +708 -0
- package/dist/data/items.js.map +1 -0
- package/dist/data/moves.d.ts +86 -0
- package/dist/data/moves.js +5014 -0
- package/dist/data/moves.js.map +1 -0
- package/dist/data/natures.d.ts +17 -0
- package/dist/data/natures.js +127 -0
- package/dist/data/natures.js.map +1 -0
- package/dist/data/production.min.js +1 -0
- package/dist/data/species.d.ts +48 -0
- package/dist/data/species.js +10126 -0
- package/dist/data/species.js.map +1 -0
- package/dist/data/types.d.ts +23 -0
- package/dist/data/types.js +538 -0
- package/dist/data/types.js.map +1 -0
- package/dist/desc.d.ts +65 -0
- package/dist/desc.js +866 -0
- package/dist/desc.js.map +1 -0
- package/dist/field.d.ts +49 -0
- package/dist/field.js +111 -0
- package/dist/field.js.map +1 -0
- package/dist/index.d.ts +44 -0
- package/dist/index.js +99 -0
- package/dist/index.js.map +1 -0
- package/dist/items.d.ts +13 -0
- package/dist/items.js +434 -0
- package/dist/items.js.map +1 -0
- package/dist/mechanics/gen12.d.ts +6 -0
- package/dist/mechanics/gen12.js +271 -0
- package/dist/mechanics/gen12.js.map +1 -0
- package/dist/mechanics/gen3.d.ts +11 -0
- package/dist/mechanics/gen3.js +371 -0
- package/dist/mechanics/gen3.js.map +1 -0
- package/dist/mechanics/gen4.d.ts +11 -0
- package/dist/mechanics/gen4.js +596 -0
- package/dist/mechanics/gen4.js.map +1 -0
- package/dist/mechanics/gen56.d.ts +13 -0
- package/dist/mechanics/gen56.js +836 -0
- package/dist/mechanics/gen56.js.map +1 -0
- package/dist/mechanics/gen789.d.ts +14 -0
- package/dist/mechanics/gen789.js +1325 -0
- package/dist/mechanics/gen789.js.map +1 -0
- package/dist/mechanics/util.d.ts +39 -0
- package/dist/mechanics/util.js +675 -0
- package/dist/mechanics/util.js.map +1 -0
- package/dist/move.d.ts +50 -0
- package/dist/move.js +324 -0
- package/dist/move.js.map +1 -0
- package/dist/pokemon.d.ts +55 -0
- package/dist/pokemon.js +240 -0
- package/dist/pokemon.js.map +1 -0
- package/dist/production.min.js +1 -0
- package/dist/result.d.ts +34 -0
- package/dist/result.js +94 -0
- package/dist/result.js.map +1 -0
- package/dist/state.d.ts +77 -0
- package/dist/state.js +3 -0
- package/dist/state.js.map +1 -0
- package/dist/stats.d.ts +26 -0
- package/dist/stats.js +183 -0
- package/dist/stats.js.map +1 -0
- package/dist/test/calc.test.d.ts +1 -0
- package/dist/test/calc.test.js +1297 -0
- package/dist/test/calc.test.js.map +1 -0
- package/dist/test/data.test.d.ts +1 -0
- package/dist/test/data.test.js +368 -0
- package/dist/test/data.test.js.map +1 -0
- package/dist/test/gen.d.ts +135 -0
- package/dist/test/gen.js +636 -0
- package/dist/test/gen.js.map +1 -0
- package/dist/test/helper.d.ts +55 -0
- package/dist/test/helper.js +174 -0
- package/dist/test/helper.js.map +1 -0
- package/dist/test/move.test.d.ts +1 -0
- package/dist/test/move.test.js +14 -0
- package/dist/test/move.test.js.map +1 -0
- package/dist/test/pokemon.test.d.ts +1 -0
- package/dist/test/pokemon.test.js +102 -0
- package/dist/test/pokemon.test.js.map +1 -0
- package/dist/test/stats.test.d.ts +1 -0
- package/dist/test/stats.test.js +64 -0
- package/dist/test/stats.test.js.map +1 -0
- package/dist/test/utils.test.d.ts +1 -0
- package/dist/test/utils.test.js +19 -0
- package/dist/test/utils.test.js.map +1 -0
- package/dist/util.d.ts +17 -0
- package/dist/util.js +115 -0
- package/dist/util.js.map +1 -0
- package/jest.config.js +11 -0
- package/package.json +40 -0
- package/src/adaptable.ts +12 -0
- package/src/calc.ts +40 -0
- package/src/data/abilities.ts +383 -0
- package/src/data/index.ts +36 -0
- package/src/data/interface.ts +176 -0
- package/src/data/items.ts +632 -0
- package/src/data/moves.ts +5028 -0
- package/src/data/natures.ts +65 -0
- package/src/data/species.ts +10098 -0
- package/src/data/types.ts +478 -0
- package/src/desc.ts +1063 -0
- package/src/field.ts +124 -0
- package/src/index.ts +156 -0
- package/src/items.ts +423 -0
- package/src/mechanics/gen12.ts +297 -0
- package/src/mechanics/gen3.ts +444 -0
- package/src/mechanics/gen4.ts +702 -0
- package/src/mechanics/gen56.ts +1134 -0
- package/src/mechanics/gen789.ts +1788 -0
- package/src/mechanics/util.ts +676 -0
- package/src/move.ts +337 -0
- package/src/pokemon.ts +244 -0
- package/src/result.ts +106 -0
- package/src/state.ts +81 -0
- package/src/stats.ts +213 -0
- package/src/test/calc.test.ts +1588 -0
- package/src/test/data.test.ts +129 -0
- package/src/test/gen.ts +514 -0
- package/src/test/helper.ts +185 -0
- package/src/test/move.test.ts +13 -0
- package/src/test/pokemon.test.ts +121 -0
- package/src/test/stats.test.ts +84 -0
- package/src/test/utils.test.ts +18 -0
- package/src/util.ts +153 -0
- package/tsconfig.json +10 -0
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import type * as I from '../data/interface';
|
|
2
|
+
import { type Result, Pokemon, Move } from '../index';
|
|
3
|
+
import type { State } from '../state';
|
|
4
|
+
import { Field, Side } from '../field';
|
|
5
|
+
declare const calc: (gen: I.GenerationNum) => (attacker: Pokemon, defender: Pokemon, move: Move, field?: Field) => Result;
|
|
6
|
+
declare const move: (gen: I.GenerationNum) => (name: string, options?: Partial<Omit<State.Move, 'ability' | 'item' | 'species'>> & {
|
|
7
|
+
ability?: string;
|
|
8
|
+
item?: string;
|
|
9
|
+
species?: string;
|
|
10
|
+
}) => Move;
|
|
11
|
+
declare const pokemon: (gen: I.GenerationNum) => (name: string, options?: Partial<Omit<State.Pokemon, 'ability' | 'item' | 'nature' | 'moves'>> & {
|
|
12
|
+
ability?: string;
|
|
13
|
+
item?: string;
|
|
14
|
+
nature?: string;
|
|
15
|
+
moves?: string[];
|
|
16
|
+
curHP?: number;
|
|
17
|
+
ivs?: Partial<I.StatsTable> & {
|
|
18
|
+
spc?: number;
|
|
19
|
+
};
|
|
20
|
+
evs?: Partial<I.StatsTable> & {
|
|
21
|
+
spc?: number;
|
|
22
|
+
};
|
|
23
|
+
boosts?: Partial<I.StatsTable> & {
|
|
24
|
+
spc?: number;
|
|
25
|
+
};
|
|
26
|
+
}) => Pokemon;
|
|
27
|
+
declare const field: (field?: Partial<State.Field>) => Field;
|
|
28
|
+
declare const side: (side?: State.Side) => Side;
|
|
29
|
+
interface Gen {
|
|
30
|
+
gen: I.GenerationNum;
|
|
31
|
+
calculate: ReturnType<typeof calc>;
|
|
32
|
+
Pokemon: ReturnType<typeof pokemon>;
|
|
33
|
+
Move: ReturnType<typeof move>;
|
|
34
|
+
Field: typeof field;
|
|
35
|
+
Side: typeof side;
|
|
36
|
+
}
|
|
37
|
+
export declare function inGen(gen: I.GenerationNum, fn: (gen: Gen) => void): void;
|
|
38
|
+
export declare function inGens(from: I.GenerationNum, to: I.GenerationNum, fn: (gen: Gen) => void): void;
|
|
39
|
+
export declare function tests(name: string, fn: (gen: Gen) => void, type?: 'skip' | 'only'): void;
|
|
40
|
+
export declare function tests(name: string, from: I.GenerationNum, fn: (gen: Gen) => void, type?: 'skip' | 'only'): void;
|
|
41
|
+
export declare function tests(name: string, from: I.GenerationNum, to: I.GenerationNum, fn: (gen: Gen) => void, type?: 'skip' | 'only'): void;
|
|
42
|
+
declare global {
|
|
43
|
+
namespace jest {
|
|
44
|
+
interface Matchers<R, T> {
|
|
45
|
+
toMatch(gen: I.GenerationNum, notation?: '%' | 'px' | ResultDiff, diff?: ResultDiff): R;
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
type ResultDiff = Partial<Record<I.GenerationNum, Partial<ResultBreakdown>>>;
|
|
50
|
+
interface ResultBreakdown {
|
|
51
|
+
range: [number, number];
|
|
52
|
+
desc: string;
|
|
53
|
+
result: string;
|
|
54
|
+
}
|
|
55
|
+
export {};
|
|
@@ -0,0 +1,174 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __values = (this && this.__values) || function(o) {
|
|
3
|
+
var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
|
|
4
|
+
if (m) return m.call(o);
|
|
5
|
+
if (o && typeof o.length === "number") return {
|
|
6
|
+
next: function () {
|
|
7
|
+
if (o && i >= o.length) o = void 0;
|
|
8
|
+
return { value: o && o[i++], done: !o };
|
|
9
|
+
}
|
|
10
|
+
};
|
|
11
|
+
throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
|
|
12
|
+
};
|
|
13
|
+
var __read = (this && this.__read) || function (o, n) {
|
|
14
|
+
var m = typeof Symbol === "function" && o[Symbol.iterator];
|
|
15
|
+
if (!m) return o;
|
|
16
|
+
var i = m.call(o), r, ar = [], e;
|
|
17
|
+
try {
|
|
18
|
+
while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
|
|
19
|
+
}
|
|
20
|
+
catch (error) { e = { error: error }; }
|
|
21
|
+
finally {
|
|
22
|
+
try {
|
|
23
|
+
if (r && !r.done && (m = i["return"])) m.call(i);
|
|
24
|
+
}
|
|
25
|
+
finally { if (e) throw e.error; }
|
|
26
|
+
}
|
|
27
|
+
return ar;
|
|
28
|
+
};
|
|
29
|
+
exports.__esModule = true;
|
|
30
|
+
exports.tests = exports.inGens = exports.inGen = void 0;
|
|
31
|
+
var index_1 = require("../index");
|
|
32
|
+
var field_1 = require("../field");
|
|
33
|
+
var calc = function (gen) { return function (attacker, defender, move, field) { return (0, index_1.calculate)(gen, attacker, defender, move, field); }; };
|
|
34
|
+
var move = function (gen) { return function (name, options) {
|
|
35
|
+
if (options === void 0) { options = {}; }
|
|
36
|
+
return new index_1.Move(gen, name, options);
|
|
37
|
+
}; };
|
|
38
|
+
var pokemon = function (gen) { return function (name, options) {
|
|
39
|
+
if (options === void 0) { options = {}; }
|
|
40
|
+
return new index_1.Pokemon(gen, name, options);
|
|
41
|
+
}; };
|
|
42
|
+
var field = function (field) {
|
|
43
|
+
if (field === void 0) { field = {}; }
|
|
44
|
+
return new field_1.Field(field);
|
|
45
|
+
};
|
|
46
|
+
var side = function (side) {
|
|
47
|
+
if (side === void 0) { side = {}; }
|
|
48
|
+
return new field_1.Side(side);
|
|
49
|
+
};
|
|
50
|
+
function inGen(gen, fn) {
|
|
51
|
+
fn({
|
|
52
|
+
gen: gen,
|
|
53
|
+
calculate: calc(gen),
|
|
54
|
+
Move: move(gen),
|
|
55
|
+
Pokemon: pokemon(gen),
|
|
56
|
+
Field: field,
|
|
57
|
+
Side: side
|
|
58
|
+
});
|
|
59
|
+
}
|
|
60
|
+
exports.inGen = inGen;
|
|
61
|
+
function inGens(from, to, fn) {
|
|
62
|
+
for (var gen = from; gen <= to; gen++) {
|
|
63
|
+
inGen(gen, fn);
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
exports.inGens = inGens;
|
|
67
|
+
function tests() {
|
|
68
|
+
var _a, _b, _c;
|
|
69
|
+
var args = [];
|
|
70
|
+
for (var _i = 0; _i < arguments.length; _i++) {
|
|
71
|
+
args[_i] = arguments[_i];
|
|
72
|
+
}
|
|
73
|
+
var name = args[0];
|
|
74
|
+
var from;
|
|
75
|
+
var to;
|
|
76
|
+
var fn;
|
|
77
|
+
var type = undefined;
|
|
78
|
+
if (typeof args[1] !== 'number') {
|
|
79
|
+
from = 1;
|
|
80
|
+
to = 9;
|
|
81
|
+
fn = args[1];
|
|
82
|
+
type = args[2];
|
|
83
|
+
}
|
|
84
|
+
else if (typeof args[2] !== 'number') {
|
|
85
|
+
from = (_a = args[1]) !== null && _a !== void 0 ? _a : 1;
|
|
86
|
+
to = 9;
|
|
87
|
+
fn = args[2];
|
|
88
|
+
type = args[3];
|
|
89
|
+
}
|
|
90
|
+
else {
|
|
91
|
+
from = (_b = args[1]) !== null && _b !== void 0 ? _b : 1;
|
|
92
|
+
to = (_c = args[2]) !== null && _c !== void 0 ? _c : 8;
|
|
93
|
+
fn = args[3];
|
|
94
|
+
type = args[4];
|
|
95
|
+
}
|
|
96
|
+
inGens(from, to, function (gen) {
|
|
97
|
+
var n = "".concat(name, " (gen ").concat(gen.gen, ")");
|
|
98
|
+
if (type === 'skip') {
|
|
99
|
+
test.skip(n, function () { return fn(gen); });
|
|
100
|
+
}
|
|
101
|
+
else if (type === 'only') {
|
|
102
|
+
test.only(n, function () { return fn(gen); });
|
|
103
|
+
}
|
|
104
|
+
else {
|
|
105
|
+
test(n, function () { return fn(gen); });
|
|
106
|
+
}
|
|
107
|
+
});
|
|
108
|
+
}
|
|
109
|
+
exports.tests = tests;
|
|
110
|
+
expect.extend({
|
|
111
|
+
toMatch: function (received, gen, notation, diff) {
|
|
112
|
+
var e_1, _a;
|
|
113
|
+
if (typeof notation !== 'string') {
|
|
114
|
+
diff = notation;
|
|
115
|
+
notation = '%';
|
|
116
|
+
}
|
|
117
|
+
if (!diff)
|
|
118
|
+
throw new Error('toMatch called with no diff!');
|
|
119
|
+
var breakdowns = Object.entries(diff).sort();
|
|
120
|
+
var expected = { range: undefined, desc: '', result: '' };
|
|
121
|
+
try {
|
|
122
|
+
for (var breakdowns_1 = __values(breakdowns), breakdowns_1_1 = breakdowns_1.next(); !breakdowns_1_1.done; breakdowns_1_1 = breakdowns_1.next()) {
|
|
123
|
+
var _b = __read(breakdowns_1_1.value, 2), g = _b[0], _c = _b[1], range = _c.range, desc = _c.desc, result = _c.result;
|
|
124
|
+
if (Number(g) > gen)
|
|
125
|
+
break;
|
|
126
|
+
if (range)
|
|
127
|
+
expected.range = range;
|
|
128
|
+
if (desc)
|
|
129
|
+
expected.desc = desc;
|
|
130
|
+
if (result)
|
|
131
|
+
expected.result = result;
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
catch (e_1_1) { e_1 = { error: e_1_1 }; }
|
|
135
|
+
finally {
|
|
136
|
+
try {
|
|
137
|
+
if (breakdowns_1_1 && !breakdowns_1_1.done && (_a = breakdowns_1["return"])) _a.call(breakdowns_1);
|
|
138
|
+
}
|
|
139
|
+
finally { if (e_1) throw e_1.error; }
|
|
140
|
+
}
|
|
141
|
+
if (!(expected.range || expected.desc || expected.result)) {
|
|
142
|
+
throw new Error("toMatch called with empty diff: ".concat(diff));
|
|
143
|
+
}
|
|
144
|
+
if (expected.range) {
|
|
145
|
+
if (this.isNot) {
|
|
146
|
+
expect(received.range()).not.toEqual(expected.range);
|
|
147
|
+
}
|
|
148
|
+
else {
|
|
149
|
+
expect(received.range()).toEqual(expected.range);
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
if (expected.desc) {
|
|
153
|
+
var r = received.fullDesc(notation).split(': ')[0];
|
|
154
|
+
if (this.isNot) {
|
|
155
|
+
expect(r).not.toEqual(expected.desc);
|
|
156
|
+
}
|
|
157
|
+
else {
|
|
158
|
+
expect(r).toEqual(expected.desc);
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
if (expected.result) {
|
|
162
|
+
var post = received.fullDesc(notation).split(': ')[1];
|
|
163
|
+
var r = "(".concat(post.split('(')[1]);
|
|
164
|
+
if (this.isNot) {
|
|
165
|
+
expect(r).not.toEqual(expected.result);
|
|
166
|
+
}
|
|
167
|
+
else {
|
|
168
|
+
expect(r).toEqual(expected.result);
|
|
169
|
+
}
|
|
170
|
+
}
|
|
171
|
+
return { pass: !this.isNot, message: function () { return ''; } };
|
|
172
|
+
}
|
|
173
|
+
});
|
|
174
|
+
//# sourceMappingURL=helper.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"helper.js","sourceRoot":"","sources":["../../src/test/helper.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
exports.__esModule = true;
|
|
3
|
+
var index_1 = require("../index");
|
|
4
|
+
describe('Move', function () {
|
|
5
|
+
test('clone', function () {
|
|
6
|
+
var m = new index_1.Move(7, 'Blizzard', { useZ: true });
|
|
7
|
+
expect(m.name).toBe('Subzero Slammer');
|
|
8
|
+
expect(m.bp).toBe(185);
|
|
9
|
+
var clone = m.clone();
|
|
10
|
+
expect(clone.name).toBe('Subzero Slammer');
|
|
11
|
+
expect(clone.bp).toBe(185);
|
|
12
|
+
});
|
|
13
|
+
});
|
|
14
|
+
//# sourceMappingURL=move.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"move.test.js","sourceRoot":"","sources":["../../src/test/move.test.ts"],"names":[],"mappings":";;AAAA,kCAA8B;AAE9B,QAAQ,CAAC,MAAM,EAAE;IACf,IAAI,CAAC,OAAO,EAAE;QACZ,IAAM,CAAC,GAAG,IAAI,YAAI,CAAC,CAAC,EAAE,UAAU,EAAE,EAAC,IAAI,EAAE,IAAI,EAAC,CAAC,CAAC;QAChD,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;QACvC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAEvB,IAAM,KAAK,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC;QACxB,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;QAC3C,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC7B,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
exports.__esModule = true;
|
|
3
|
+
var index_1 = require("../index");
|
|
4
|
+
describe('Pokemon', function () {
|
|
5
|
+
test('defaults', function () {
|
|
6
|
+
var p = new index_1.Pokemon(7, 'Gengar');
|
|
7
|
+
expect(p.name).toBe('Gengar');
|
|
8
|
+
expect(p.types).toEqual(['Ghost', 'Poison']);
|
|
9
|
+
expect(p.weightkg).toBe(40.5);
|
|
10
|
+
expect(p.level).toBe(100);
|
|
11
|
+
expect(p.gender).toBe('M');
|
|
12
|
+
expect(p.item).toBeUndefined();
|
|
13
|
+
expect(p.ability).toBe('Cursed Body');
|
|
14
|
+
expect(p.nature).toBe('Serious');
|
|
15
|
+
expect(p.status).toBe('');
|
|
16
|
+
expect(p.hasStatus()).toBe(false);
|
|
17
|
+
expect(p.toxicCounter).toBe(0);
|
|
18
|
+
expect(p.curHP()).toBe(p.stats.hp);
|
|
19
|
+
var stat;
|
|
20
|
+
for (stat in p.ivs) {
|
|
21
|
+
expect(p.ivs[stat]).toBe(31);
|
|
22
|
+
expect(p.evs[stat]).toBe(0);
|
|
23
|
+
expect(p.boosts[stat]).toBe(0);
|
|
24
|
+
}
|
|
25
|
+
expect(p.stats).toEqual({ hp: 261, atk: 166, def: 156, spa: 296, spd: 186, spe: 256 });
|
|
26
|
+
});
|
|
27
|
+
test('Pokemon full', function () {
|
|
28
|
+
var p = new index_1.Pokemon(7, 'Suicune', {
|
|
29
|
+
level: 50,
|
|
30
|
+
ability: 'Inner Focus',
|
|
31
|
+
item: 'Leftovers',
|
|
32
|
+
nature: 'Bold',
|
|
33
|
+
ivs: { spa: 30 },
|
|
34
|
+
evs: { spd: 4, def: 252, hp: 252 },
|
|
35
|
+
boosts: { atk: -1, spa: 2, spd: 1 },
|
|
36
|
+
curHP: 60,
|
|
37
|
+
status: 'tox',
|
|
38
|
+
toxicCounter: 2,
|
|
39
|
+
moves: ['Surf', 'Rest', 'Curse', 'Sleep Talk']
|
|
40
|
+
});
|
|
41
|
+
expect(p.name).toBe('Suicune');
|
|
42
|
+
expect(p.types).toEqual(['Water']);
|
|
43
|
+
expect(p.weightkg).toBe(187.0);
|
|
44
|
+
expect(p.level).toBe(50);
|
|
45
|
+
expect(p.gender).toBe('N');
|
|
46
|
+
expect(p.item).toBe('Leftovers');
|
|
47
|
+
expect(p.ability).toBe('Inner Focus');
|
|
48
|
+
expect(p.nature).toBe('Bold');
|
|
49
|
+
expect(p.status).toBe('tox');
|
|
50
|
+
expect(p.toxicCounter).toBe(2);
|
|
51
|
+
expect(p.curHP()).toBe(60);
|
|
52
|
+
expect(p.ivs).toEqual({ hp: 31, atk: 31, def: 31, spa: 30, spd: 31, spe: 31 });
|
|
53
|
+
expect(p.evs).toEqual({ hp: 252, atk: 0, def: 252, spa: 0, spd: 4, spe: 0 });
|
|
54
|
+
expect(p.boosts).toEqual({ hp: 0, atk: -1, def: 0, spa: 2, spd: 1, spe: 0 });
|
|
55
|
+
expect(p.stats).toEqual({ hp: 207, atk: 85, def: 183, spa: 110, spd: 136, spe: 105 });
|
|
56
|
+
expect(p.moves).toEqual(['Surf', 'Rest', 'Curse', 'Sleep Talk']);
|
|
57
|
+
});
|
|
58
|
+
test('gen1', function () {
|
|
59
|
+
var p = new index_1.Pokemon(1, 'Tauros', {
|
|
60
|
+
level: 100,
|
|
61
|
+
ivs: { spc: 20, def: 16 },
|
|
62
|
+
evs: { atk: 200 },
|
|
63
|
+
curHP: 500
|
|
64
|
+
});
|
|
65
|
+
expect(p.ivs).toEqual({ hp: 20, atk: 31, def: 16, spa: 20, spd: 20, spe: 31 });
|
|
66
|
+
expect(p.evs).toEqual({ hp: 252, atk: 200, def: 252, spa: 252, spd: 252, spe: 252 });
|
|
67
|
+
expect(p.stats).toEqual({ hp: 343, atk: 298, def: 274, spa: 228, spd: 228, spe: 318 });
|
|
68
|
+
expect(p.curHP()).toBe(p.maxHP());
|
|
69
|
+
});
|
|
70
|
+
test('getForme', function () {
|
|
71
|
+
expect(index_1.Pokemon.getForme(1, 'Gengar')).toBe('Gengar');
|
|
72
|
+
expect(index_1.Pokemon.getForme(7, 'Gengar', 'Black Sludge', 'Hypnosis')).toBe('Gengar');
|
|
73
|
+
expect(index_1.Pokemon.getForme(7, 'Gengar', 'Gengarite', 'Hypnosis')).toBe('Gengar-Mega');
|
|
74
|
+
expect(index_1.Pokemon.getForme(7, 'Charizard')).toBe('Charizard');
|
|
75
|
+
expect(index_1.Pokemon.getForme(7, 'Charizard', 'Charizardite X')).toBe('Charizard-Mega-X');
|
|
76
|
+
expect(index_1.Pokemon.getForme(7, 'Charizard', 'Charizardite Y')).toBe('Charizard-Mega-Y');
|
|
77
|
+
expect(index_1.Pokemon.getForme(7, 'Mewtwo', 'Choice Specs', 'Psystrike')).toBe('Mewtwo');
|
|
78
|
+
expect(index_1.Pokemon.getForme(7, 'Mewtwo', 'Mewtwonite X', 'Psystrike')).toBe('Mewtwo-Mega-X');
|
|
79
|
+
expect(index_1.Pokemon.getForme(7, 'Mewtwo', 'Mewtwonite Y', 'Psystrike')).toBe('Mewtwo-Mega-Y');
|
|
80
|
+
expect(index_1.Pokemon.getForme(7, 'Groudon', 'Choice Band', 'Earthquake')).toBe('Groudon');
|
|
81
|
+
expect(index_1.Pokemon.getForme(7, 'Groudon', 'Red Orb', 'Earthquake')).toBe('Groudon-Primal');
|
|
82
|
+
expect(index_1.Pokemon.getForme(7, 'Kyogre', 'Choice Specs', 'Surf')).toBe('Kyogre');
|
|
83
|
+
expect(index_1.Pokemon.getForme(7, 'Kyogre', 'Blue Orb', 'Surf')).toBe('Kyogre-Primal');
|
|
84
|
+
expect(index_1.Pokemon.getForme(7, 'Meloetta', 'Leftovers', 'Psychic')).toBe('Meloetta');
|
|
85
|
+
expect(index_1.Pokemon.getForme(7, 'Meloetta', 'Leftovers', 'Relic Song')).toBe('Meloetta-Pirouette');
|
|
86
|
+
expect(index_1.Pokemon.getForme(7, 'Rayquaza', undefined, 'Earthquake')).toBe('Rayquaza');
|
|
87
|
+
expect(index_1.Pokemon.getForme(7, 'Rayquaza', undefined, 'Dragon Ascent')).toBe('Rayquaza-Mega');
|
|
88
|
+
});
|
|
89
|
+
test('hasType', function () {
|
|
90
|
+
var p = new index_1.Pokemon(7, 'Gengar');
|
|
91
|
+
expect(p.hasType('Ghost')).toBe(true);
|
|
92
|
+
expect(p.hasType('Poison')).toBe(true);
|
|
93
|
+
expect(p.hasType('Fire')).toBe(false);
|
|
94
|
+
expect(p.hasType('Ice')).toBe(false);
|
|
95
|
+
});
|
|
96
|
+
test('Gigantamx weights', function () {
|
|
97
|
+
expect(new index_1.Pokemon(8, 'Venusaur-Gmax').weightkg).toBe(100);
|
|
98
|
+
expect(new index_1.Pokemon(8, 'Venusaur-Gmax', { isDynamaxed: true }).weightkg).toBe(0);
|
|
99
|
+
expect(new index_1.Pokemon(8, 'Venusaur-Gmax', { overrides: { weightkg: 50 } }).weightkg).toBe(50);
|
|
100
|
+
});
|
|
101
|
+
});
|
|
102
|
+
//# sourceMappingURL=pokemon.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pokemon.test.js","sourceRoot":"","sources":["../../src/test/pokemon.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
exports.__esModule = true;
|
|
3
|
+
var data_1 = require("../data");
|
|
4
|
+
var stats_1 = require("../stats");
|
|
5
|
+
var util_1 = require("../mechanics/util");
|
|
6
|
+
describe('Stats', function () {
|
|
7
|
+
test('displayStat', function () {
|
|
8
|
+
expect(stats_1.Stats.displayStat('hp')).toBe('HP');
|
|
9
|
+
expect(stats_1.Stats.displayStat('atk')).toBe('Atk');
|
|
10
|
+
expect(stats_1.Stats.displayStat('def')).toBe('Def');
|
|
11
|
+
expect(stats_1.Stats.displayStat('spa')).toBe('SpA');
|
|
12
|
+
expect(stats_1.Stats.displayStat('spd')).toBe('SpD');
|
|
13
|
+
expect(stats_1.Stats.displayStat('spe')).toBe('Spe');
|
|
14
|
+
expect(stats_1.Stats.displayStat('spc')).toBe('Spc');
|
|
15
|
+
});
|
|
16
|
+
test('calcStat', function () {
|
|
17
|
+
var RBY = {
|
|
18
|
+
hp: 403,
|
|
19
|
+
atk: 298,
|
|
20
|
+
def: 298,
|
|
21
|
+
spa: 298,
|
|
22
|
+
spd: 298,
|
|
23
|
+
spe: 298
|
|
24
|
+
};
|
|
25
|
+
var ADV = { hp: 404, atk: 328, def: 299, spa: 269, spd: 299, spe: 299 };
|
|
26
|
+
for (var gen = 1; gen <= 9; gen++) {
|
|
27
|
+
for (var s in ADV) {
|
|
28
|
+
var stat = s;
|
|
29
|
+
var val = stats_1.Stats.calcStat(data_1.Generations.get(gen), stat, 100, 31, 252, 100, 'Adamant');
|
|
30
|
+
expect(val).toBe(gen < 3 ? RBY[stat] : ADV[stat]);
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
expect(stats_1.Stats.calcStat(data_1.Generations.get(8), 'hp', 1, 31, 252, 100, 'Jolly')).toBe(1);
|
|
34
|
+
expect(stats_1.Stats.calcStat(data_1.Generations.get(8), 'atk', 100, 31, 252, 100)).toBe(299);
|
|
35
|
+
});
|
|
36
|
+
test('dvs', function () {
|
|
37
|
+
for (var dv = 0; dv <= 15; dv++) {
|
|
38
|
+
expect(stats_1.Stats.IVToDV(stats_1.Stats.DVToIV(dv))).toBe(dv);
|
|
39
|
+
}
|
|
40
|
+
expect(stats_1.Stats.getHPDV({
|
|
41
|
+
atk: stats_1.Stats.DVToIV(15),
|
|
42
|
+
def: stats_1.Stats.DVToIV(15),
|
|
43
|
+
spc: stats_1.Stats.DVToIV(15),
|
|
44
|
+
spe: stats_1.Stats.DVToIV(15)
|
|
45
|
+
})).toBe(15);
|
|
46
|
+
expect(stats_1.Stats.getHPDV({
|
|
47
|
+
atk: stats_1.Stats.DVToIV(5),
|
|
48
|
+
def: stats_1.Stats.DVToIV(15),
|
|
49
|
+
spc: stats_1.Stats.DVToIV(13),
|
|
50
|
+
spe: stats_1.Stats.DVToIV(13)
|
|
51
|
+
})).toBe(15);
|
|
52
|
+
expect(stats_1.Stats.getHPDV({
|
|
53
|
+
atk: stats_1.Stats.DVToIV(15),
|
|
54
|
+
def: stats_1.Stats.DVToIV(3),
|
|
55
|
+
spc: stats_1.Stats.DVToIV(11),
|
|
56
|
+
spe: stats_1.Stats.DVToIV(10)
|
|
57
|
+
})).toBe(13);
|
|
58
|
+
});
|
|
59
|
+
test('gen 2 modifications', function () {
|
|
60
|
+
expect((0, util_1.getModifiedStat)(158, -1, data_1.Generations.get(2))).toBe(104);
|
|
61
|
+
expect((0, util_1.getModifiedStat)(238, -1, data_1.Generations.get(2))).toBe(157);
|
|
62
|
+
});
|
|
63
|
+
});
|
|
64
|
+
//# sourceMappingURL=stats.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"stats.test.js","sourceRoot":"","sources":["../../src/test/stats.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
exports.__esModule = true;
|
|
3
|
+
var util_1 = require("../util");
|
|
4
|
+
describe('util', function () {
|
|
5
|
+
test('extend', function () {
|
|
6
|
+
var obj1 = { a: 1, b: { c: 2 }, d: { e: 3 }, f: 4 };
|
|
7
|
+
var obj2 = { a: 2, b: { c: 3 }, d: 4, e: { f: 5 } };
|
|
8
|
+
expect((0, util_1.extend)(true, {}, obj1)).toEqual(obj1);
|
|
9
|
+
expect((0, util_1.extend)(true, {}, obj1, obj2)).toEqual({ a: 2, b: { c: 3 }, d: 4, e: { f: 5 }, f: 4 });
|
|
10
|
+
expect((0, util_1.extend)(true, {}, obj2, obj1)).toEqual({
|
|
11
|
+
a: 1,
|
|
12
|
+
b: { c: 2 },
|
|
13
|
+
d: { e: 3 },
|
|
14
|
+
e: { f: 5 },
|
|
15
|
+
f: 4
|
|
16
|
+
});
|
|
17
|
+
});
|
|
18
|
+
});
|
|
19
|
+
//# sourceMappingURL=utils.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.test.js","sourceRoot":"","sources":["../../src/test/utils.test.ts"],"names":[],"mappings":";;AAAA,gCAA+B;AAE/B,QAAQ,CAAC,MAAM,EAAE;IACf,IAAI,CAAC,QAAQ,EAAE;QACb,IAAM,IAAI,GAAG,EAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAC,CAAC,EAAE,CAAC,EAAC,EAAE,CAAC,EAAE,EAAC,CAAC,EAAE,CAAC,EAAC,EAAE,CAAC,EAAE,CAAC,EAAC,CAAC;QAChD,IAAM,IAAI,GAAG,EAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAC,CAAC,EAAE,CAAC,EAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAC,CAAC,EAAE,CAAC,EAAC,EAAC,CAAC;QAEhD,MAAM,CAAC,IAAA,aAAM,EAAC,IAAI,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAC7C,MAAM,CAAC,IAAA,aAAM,EAAC,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,EAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAC,CAAC,EAAE,CAAC,EAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAC,CAAC,EAAE,CAAC,EAAC,EAAE,CAAC,EAAE,CAAC,EAAC,CAAC,CAAC;QACvF,MAAM,CAAC,IAAA,aAAM,EAAC,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC;YAC3C,CAAC,EAAE,CAAC;YACJ,CAAC,EAAE,EAAC,CAAC,EAAE,CAAC,EAAC;YACT,CAAC,EAAE,EAAC,CAAC,EAAE,CAAC,EAAC;YACT,CAAC,EAAE,EAAC,CAAC,EAAE,CAAC,EAAC;YACT,CAAC,EAAE,CAAC;SACL,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
package/dist/util.d.ts
ADDED
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { ID } from './data/interface';
|
|
2
|
+
export declare function toID(text: any): ID;
|
|
3
|
+
export declare function error(err: boolean, msg: string): void;
|
|
4
|
+
export declare function assignWithout(a: {
|
|
5
|
+
[key: string]: any;
|
|
6
|
+
}, b: {
|
|
7
|
+
[key: string]: any;
|
|
8
|
+
}, exclude: Set<string>): void;
|
|
9
|
+
export type Primitive = string | number | boolean | bigint | symbol | undefined | null;
|
|
10
|
+
export type Builtin = Primitive | Function | Date | Error | RegExp;
|
|
11
|
+
export type IsTuple<T> = T extends [infer A] ? T : T extends [infer A, infer B] ? T : T extends [infer A, infer B, infer C] ? T : T extends [infer A, infer B, infer C, infer D] ? T : T extends [infer A, infer B, infer C, infer D, infer E] ? T : never;
|
|
12
|
+
export type DeepPartial<T> = T extends Builtin ? T : T extends Map<infer K, infer V> ? Map<DeepPartial<K>, DeepPartial<V>> : T extends ReadonlyMap<infer K, infer V> ? ReadonlyMap<DeepPartial<K>, DeepPartial<V>> : T extends Set<infer U> ? Set<DeepPartial<U>> : T extends ReadonlySet<infer U> ? ReadonlySet<DeepPartial<U>> : T extends Array<infer U> ? T extends IsTuple<T> ? {
|
|
13
|
+
[K in keyof T]?: DeepPartial<T[K]>;
|
|
14
|
+
} : Array<DeepPartial<U>> : T extends Promise<infer U> ? Promise<DeepPartial<U>> : T extends {} ? {
|
|
15
|
+
[K in keyof T]?: DeepPartial<T[K]>;
|
|
16
|
+
} : Partial<T>;
|
|
17
|
+
export declare function extend(this: any, ...args: any[]): any;
|
package/dist/util.js
ADDED
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
exports.__esModule = true;
|
|
3
|
+
exports.extend = exports.assignWithout = exports.error = exports.toID = void 0;
|
|
4
|
+
function toID(text) {
|
|
5
|
+
return ('' + text).toLowerCase().replace(/[^a-z0-9]+/g, '');
|
|
6
|
+
}
|
|
7
|
+
exports.toID = toID;
|
|
8
|
+
function error(err, msg) {
|
|
9
|
+
if (err) {
|
|
10
|
+
throw new Error(msg);
|
|
11
|
+
}
|
|
12
|
+
else {
|
|
13
|
+
console.log(msg);
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
exports.error = error;
|
|
17
|
+
function assignWithout(a, b, exclude) {
|
|
18
|
+
for (var key in b) {
|
|
19
|
+
if (Object.prototype.hasOwnProperty.call(b, key) && !exclude.has(key)) {
|
|
20
|
+
a[key] = b[key];
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
exports.assignWithout = assignWithout;
|
|
25
|
+
var class2Type = {
|
|
26
|
+
'[object Boolean]': 'boolean',
|
|
27
|
+
'[object Number]': 'number',
|
|
28
|
+
'[object String]': 'string',
|
|
29
|
+
'[object Function]': 'function',
|
|
30
|
+
'[object Array]': 'array',
|
|
31
|
+
'[object Date]': 'date',
|
|
32
|
+
'[object RegExp]': 'regexp',
|
|
33
|
+
'[object Object]': 'object',
|
|
34
|
+
'[object Error]': 'error'
|
|
35
|
+
};
|
|
36
|
+
var coreToString = class2Type.toString;
|
|
37
|
+
var coreHasOwn = class2Type.hasOwnProperty;
|
|
38
|
+
function isFunction(obj) {
|
|
39
|
+
return getType(obj) === 'function';
|
|
40
|
+
}
|
|
41
|
+
function isWindow(obj) {
|
|
42
|
+
return obj != null && obj === obj.window;
|
|
43
|
+
}
|
|
44
|
+
function getType(obj) {
|
|
45
|
+
if (obj == null) {
|
|
46
|
+
return String(obj);
|
|
47
|
+
}
|
|
48
|
+
return typeof obj === 'object' || typeof obj === 'function'
|
|
49
|
+
? class2Type[coreToString.call(obj)] || 'object'
|
|
50
|
+
: typeof obj;
|
|
51
|
+
}
|
|
52
|
+
function isPlainObject(obj) {
|
|
53
|
+
if (getType(obj) !== 'object' || obj.nodeType || isWindow(obj)) {
|
|
54
|
+
return false;
|
|
55
|
+
}
|
|
56
|
+
try {
|
|
57
|
+
if (obj.constructor && !coreHasOwn.call(obj.constructor.prototype, 'isPrototypeOf')) {
|
|
58
|
+
return false;
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
catch (e) {
|
|
62
|
+
return false;
|
|
63
|
+
}
|
|
64
|
+
return true;
|
|
65
|
+
}
|
|
66
|
+
function extend() {
|
|
67
|
+
var args = [];
|
|
68
|
+
for (var _i = 0; _i < arguments.length; _i++) {
|
|
69
|
+
args[_i] = arguments[_i];
|
|
70
|
+
}
|
|
71
|
+
var options, name, src, copy, copyIsArray, clone;
|
|
72
|
+
var target = args[0] || {};
|
|
73
|
+
var i = 1;
|
|
74
|
+
var deep = false;
|
|
75
|
+
var length = args.length;
|
|
76
|
+
if (typeof target === 'boolean') {
|
|
77
|
+
deep = target;
|
|
78
|
+
target = args[1] || {};
|
|
79
|
+
i = 2;
|
|
80
|
+
}
|
|
81
|
+
if (typeof target !== 'object' && !isFunction(target)) {
|
|
82
|
+
target = {};
|
|
83
|
+
}
|
|
84
|
+
if (length === i) {
|
|
85
|
+
target = this;
|
|
86
|
+
--i;
|
|
87
|
+
}
|
|
88
|
+
for (; i < length; i++) {
|
|
89
|
+
if ((options = args[i]) != null) {
|
|
90
|
+
for (name in options) {
|
|
91
|
+
src = target[name];
|
|
92
|
+
copy = options[name];
|
|
93
|
+
if (target === copy) {
|
|
94
|
+
continue;
|
|
95
|
+
}
|
|
96
|
+
if (deep && copy && (isPlainObject(copy) || (copyIsArray = Array.isArray(copy)))) {
|
|
97
|
+
if (copyIsArray) {
|
|
98
|
+
copyIsArray = false;
|
|
99
|
+
clone = src && Array.isArray(src) ? src : [];
|
|
100
|
+
}
|
|
101
|
+
else {
|
|
102
|
+
clone = src && isPlainObject(src) ? src : {};
|
|
103
|
+
}
|
|
104
|
+
target[name] = extend(deep, clone, copy);
|
|
105
|
+
}
|
|
106
|
+
else if (copy !== undefined) {
|
|
107
|
+
target[name] = copy;
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
return target;
|
|
113
|
+
}
|
|
114
|
+
exports.extend = extend;
|
|
115
|
+
//# sourceMappingURL=util.js.map
|
package/dist/util.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"util.js","sourceRoot":"","sources":["../src/util.ts"],"names":[],"mappings":";;;AAGA,SAAgB,IAAI,CAAC,IAAS;IAC5B,OAAO,CAAC,EAAE,GAAG,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,aAAa,EAAE,EAAE,CAAO,CAAC;AACpE,CAAC;AAFD,oBAEC;AAED,SAAgB,KAAK,CAAC,GAAY,EAAE,GAAW;IAC7C,IAAI,GAAG,EAAE;QACP,MAAM,IAAI,KAAK,CAAC,GAAG,CAAC,CAAC;KACtB;SAAM;QACL,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;KAClB;AACH,CAAC;AAND,sBAMC;AAED,SAAgB,aAAa,CAC3B,CAAuB,EAAE,CAAuB,EAAE,OAAoB;IAEtE,KAAK,IAAM,GAAG,IAAI,CAAC,EAAE;QACnB,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,EAAE,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;YACrE,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;SACjB;KACF;AACH,CAAC;AARD,sCAQC;AA8BD,IAAM,UAAU,GAA0B;IACxC,kBAAkB,EAAE,SAAS;IAC7B,iBAAiB,EAAE,QAAQ;IAC3B,iBAAiB,EAAE,QAAQ;IAC3B,mBAAmB,EAAE,UAAU;IAC/B,gBAAgB,EAAE,OAAO;IACzB,eAAe,EAAE,MAAM;IACvB,iBAAiB,EAAE,QAAQ;IAC3B,iBAAiB,EAAE,QAAQ;IAC3B,gBAAgB,EAAE,OAAO;CAC1B,CAAC;AAEF,IAAM,YAAY,GAAG,UAAU,CAAC,QAAQ,CAAC;AACzC,IAAM,UAAU,GAAG,UAAU,CAAC,cAAc,CAAC;AAE7C,SAAS,UAAU,CAAC,GAAQ;IAC1B,OAAO,OAAO,CAAC,GAAG,CAAC,KAAK,UAAU,CAAC;AACrC,CAAC;AAED,SAAS,QAAQ,CAAC,GAAQ;IACxB,OAAO,GAAG,IAAI,IAAI,IAAI,GAAG,KAAK,GAAG,CAAC,MAAM,CAAC;AAC3C,CAAC;AAED,SAAS,OAAO,CAAC,GAAQ;IACvB,IAAI,GAAG,IAAI,IAAI,EAAE;QACf,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC;KACpB;IACD,OAAO,OAAO,GAAG,KAAK,QAAQ,IAAI,OAAO,GAAG,KAAK,UAAU;QACzD,CAAC,CAAC,UAAU,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,QAAQ;QAChD,CAAC,CAAC,OAAO,GAAG,CAAC;AACjB,CAAC;AAED,SAAS,aAAa,CAAC,GAAQ;IAC7B,IAAI,OAAO,CAAC,GAAG,CAAC,KAAK,QAAQ,IAAI,GAAG,CAAC,QAAQ,IAAI,QAAQ,CAAC,GAAG,CAAC,EAAE;QAC9D,OAAO,KAAK,CAAC;KACd;IAED,IAAI;QACF,IAAI,GAAG,CAAC,WAAW,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,SAAS,EAAE,eAAe,CAAC,EAAE;YACnF,OAAO,KAAK,CAAC;SACd;KACF;IAAC,OAAO,CAAC,EAAE;QACV,OAAO,KAAK,CAAC;KACd;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAgB,MAAM;IAAY,cAAc;SAAd,UAAc,EAAd,qBAAc,EAAd,IAAc;QAAd,yBAAc;;IAC9C,IAAI,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,CAAC;IACjD,IAAI,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IAC3B,IAAI,CAAC,GAAG,CAAC,CAAC;IACV,IAAI,IAAI,GAAG,KAAK,CAAC;IACjB,IAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;IAE3B,IAAI,OAAO,MAAM,KAAK,SAAS,EAAE;QAC/B,IAAI,GAAG,MAAM,CAAC;QACd,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QACvB,CAAC,GAAG,CAAC,CAAC;KACP;IAED,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE;QACrD,MAAM,GAAG,EAAE,CAAC;KACb;IAED,IAAI,MAAM,KAAK,CAAC,EAAE;QAEhB,MAAM,GAAG,IAAI,CAAC;QACd,EAAE,CAAC,CAAC;KACL;IAED,OAAO,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,EAAE;QACtB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE;YAE/B,KAAK,IAAI,IAAI,OAAO,EAAE;gBACpB,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;gBACnB,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;gBAErB,IAAI,MAAM,KAAK,IAAI,EAAE;oBACnB,SAAS;iBACV;gBAED,IAAI,IAAI,IAAI,IAAI,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE;oBAChF,IAAI,WAAW,EAAE;wBACf,WAAW,GAAG,KAAK,CAAC;wBACpB,KAAK,GAAG,GAAG,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;qBAC9C;yBAAM;wBACL,KAAK,GAAG,GAAG,IAAI,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;qBAC9C;oBAED,MAAM,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;iBAC1C;qBAAM,IAAI,IAAI,KAAK,SAAS,EAAE;oBAC7B,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;iBACrB;aACF;SACF;KACF;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAnDD,wBAmDC"}
|
package/jest.config.js
ADDED
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
module.exports = {
|
|
2
|
+
preset: 'ts-jest',
|
|
3
|
+
testEnvironment: 'node',
|
|
4
|
+
coverageDirectory: 'coverage',
|
|
5
|
+
testPathIgnorePatterns: ['<rootDir>/node_modules/', '<rootDir>/dist/'],
|
|
6
|
+
coveragePathIgnorePatterns: ['<rootDir>/node_modules/', '<rootDir>/dist/' ],
|
|
7
|
+
transform: {
|
|
8
|
+
'^.+\\.test\\.ts$': 'ts-jest',
|
|
9
|
+
},
|
|
10
|
+
};
|
|
11
|
+
|