volleyballsimtypes 0.0.478 → 0.0.480
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/dist/cjs/src/api/index.d.ts +1 -0
- package/dist/cjs/src/data/models/tactics.d.ts +1 -0
- package/dist/cjs/src/data/transformers/rally-event-tempo.test.d.ts +1 -0
- package/dist/cjs/src/data/transformers/rally-event-tempo.test.js +40 -0
- package/dist/cjs/src/data/transformers/rally-event.d.ts +1 -0
- package/dist/cjs/src/data/transformers/rally-event.js +5 -1
- package/dist/cjs/src/data/transformers/tactics.js +8 -4
- package/dist/cjs/src/data/transformers/tactics.test.js +13 -0
- package/dist/cjs/src/service/event/schemas/set.z.d.ts +1 -0
- package/dist/cjs/src/service/event/schemas/set.z.js +4 -1
- package/dist/cjs/src/service/event/schemas/set.z.test.d.ts +1 -0
- package/dist/cjs/src/service/event/schemas/set.z.test.js +29 -0
- package/dist/cjs/src/service/event/set.d.ts +7 -0
- package/dist/cjs/src/service/event/set.js +15 -3
- package/dist/cjs/src/service/index.d.ts +1 -0
- package/dist/cjs/src/service/index.js +1 -0
- package/dist/cjs/src/service/notification/catalog/en.json +41 -0
- package/dist/cjs/src/service/notification/catalog/es.json +41 -0
- package/dist/cjs/src/service/notification/catalog/fr.json +41 -0
- package/dist/cjs/src/service/notification/catalog/index.d.ts +3 -0
- package/dist/cjs/src/service/notification/catalog/index.js +22 -0
- package/dist/cjs/src/service/notification/catalog/it.json +41 -0
- package/dist/cjs/src/service/notification/catalog/pl.json +41 -0
- package/dist/cjs/src/service/notification/catalog/pt-BR.json +41 -0
- package/dist/cjs/src/service/notification/catalog/tr.json +41 -0
- package/dist/cjs/src/service/notification/index.d.ts +5 -0
- package/dist/cjs/src/service/notification/index.js +23 -0
- package/dist/cjs/src/service/notification/notification-type.d.ts +6 -0
- package/dist/cjs/src/service/notification/notification-type.js +30 -0
- package/dist/cjs/src/service/notification/notification.test.d.ts +1 -0
- package/dist/cjs/src/service/notification/notification.test.js +128 -0
- package/dist/cjs/src/service/notification/payloads.d.ts +34 -0
- package/dist/cjs/src/service/notification/payloads.js +5 -0
- package/dist/cjs/src/service/notification/registry.d.ts +13 -0
- package/dist/cjs/src/service/notification/registry.js +112 -0
- package/dist/cjs/src/service/notification/render.d.ts +10 -0
- package/dist/cjs/src/service/notification/render.js +64 -0
- package/dist/cjs/src/service/team/offensive-preference.d.ts +2 -0
- package/dist/cjs/src/service/team/schemas/tactics.z.d.ts +8 -0
- package/dist/cjs/src/service/team/schemas/tactics.z.js +12 -2
- package/dist/cjs/src/service/team/schemas/tactics.z.test.js +24 -0
- package/dist/cjs/src/service/team/schemas/team.z.d.ts +8 -0
- package/dist/esm/src/api/index.d.ts +1 -0
- package/dist/esm/src/data/models/tactics.d.ts +1 -0
- package/dist/esm/src/data/transformers/rally-event-tempo.test.d.ts +1 -0
- package/dist/esm/src/data/transformers/rally-event-tempo.test.js +38 -0
- package/dist/esm/src/data/transformers/rally-event.d.ts +1 -0
- package/dist/esm/src/data/transformers/rally-event.js +5 -1
- package/dist/esm/src/data/transformers/tactics.js +8 -4
- package/dist/esm/src/data/transformers/tactics.test.js +13 -0
- package/dist/esm/src/service/event/schemas/set.z.d.ts +1 -0
- package/dist/esm/src/service/event/schemas/set.z.js +4 -1
- package/dist/esm/src/service/event/schemas/set.z.test.d.ts +1 -0
- package/dist/esm/src/service/event/schemas/set.z.test.js +27 -0
- package/dist/esm/src/service/event/set.d.ts +7 -0
- package/dist/esm/src/service/event/set.js +14 -2
- package/dist/esm/src/service/index.d.ts +1 -0
- package/dist/esm/src/service/index.js +1 -0
- package/dist/esm/src/service/notification/catalog/en.json +41 -0
- package/dist/esm/src/service/notification/catalog/es.json +41 -0
- package/dist/esm/src/service/notification/catalog/fr.json +41 -0
- package/dist/esm/src/service/notification/catalog/index.d.ts +3 -0
- package/dist/esm/src/service/notification/catalog/index.js +16 -0
- package/dist/esm/src/service/notification/catalog/it.json +41 -0
- package/dist/esm/src/service/notification/catalog/pl.json +41 -0
- package/dist/esm/src/service/notification/catalog/pt-BR.json +41 -0
- package/dist/esm/src/service/notification/catalog/tr.json +41 -0
- package/dist/esm/src/service/notification/index.d.ts +5 -0
- package/dist/esm/src/service/notification/index.js +5 -0
- package/dist/esm/src/service/notification/notification-type.d.ts +6 -0
- package/dist/esm/src/service/notification/notification-type.js +26 -0
- package/dist/esm/src/service/notification/notification.test.d.ts +1 -0
- package/dist/esm/src/service/notification/notification.test.js +126 -0
- package/dist/esm/src/service/notification/payloads.d.ts +34 -0
- package/dist/esm/src/service/notification/payloads.js +4 -0
- package/dist/esm/src/service/notification/registry.d.ts +13 -0
- package/dist/esm/src/service/notification/registry.js +109 -0
- package/dist/esm/src/service/notification/render.d.ts +10 -0
- package/dist/esm/src/service/notification/render.js +58 -0
- package/dist/esm/src/service/team/offensive-preference.d.ts +2 -0
- package/dist/esm/src/service/team/schemas/tactics.z.d.ts +8 -0
- package/dist/esm/src/service/team/schemas/tactics.z.js +12 -2
- package/dist/esm/src/service/team/schemas/tactics.z.test.js +24 -0
- package/dist/esm/src/service/team/schemas/team.z.d.ts +8 -0
- package/package.json +6 -1
|
@@ -42,6 +42,7 @@ export interface DesignatedSubAttributes {
|
|
|
42
42
|
export interface OffensivePreferenceAttributes {
|
|
43
43
|
rotation: number;
|
|
44
44
|
order: PlayerId[];
|
|
45
|
+
tempos?: Record<PlayerId, 'FAST' | 'HIGH'>;
|
|
45
46
|
}
|
|
46
47
|
export interface SystemSetAttributes {
|
|
47
48
|
rotationSystem: RotationSystemEnum;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const globals_1 = require("@jest/globals");
|
|
4
|
+
const uuid_1 = require("uuid");
|
|
5
|
+
const service_1 = require("../../service");
|
|
6
|
+
const rally_event_1 = require("./rally-event");
|
|
7
|
+
(0, globals_1.describe)('rally-event compact round trip — set tempo marker', () => {
|
|
8
|
+
const playerId = (0, uuid_1.v4)();
|
|
9
|
+
const roster = [playerId];
|
|
10
|
+
const playerIndex = new Map(roster.map((id, i) => [id, i]));
|
|
11
|
+
function makeSet(tempo) {
|
|
12
|
+
return service_1.Set.create({
|
|
13
|
+
playerId,
|
|
14
|
+
score: 90,
|
|
15
|
+
target: 4,
|
|
16
|
+
failure: service_1.SetFailureEnum.NO_FAILURE,
|
|
17
|
+
type: service_1.SetTypeEnum.OVERHAND,
|
|
18
|
+
...(tempo !== undefined ? { tempo } : {})
|
|
19
|
+
});
|
|
20
|
+
}
|
|
21
|
+
(0, globals_1.it)('packs each tempo as m and round-trips it', () => {
|
|
22
|
+
for (const tempo of [service_1.SetTempoEnum.FIRST, service_1.SetTempoEnum.SECOND, service_1.SetTempoEnum.HIGH]) {
|
|
23
|
+
const compact = (0, rally_event_1.transformToCompact)(makeSet(tempo), playerIndex);
|
|
24
|
+
(0, globals_1.expect)(compact.m).toBe(tempo);
|
|
25
|
+
const decoded = (0, rally_event_1.transformToSet)(compact, roster);
|
|
26
|
+
(0, globals_1.expect)(decoded.tempo).toBe(tempo);
|
|
27
|
+
}
|
|
28
|
+
});
|
|
29
|
+
(0, globals_1.it)('omits m entirely for a set without a tempo', () => {
|
|
30
|
+
const compact = (0, rally_event_1.transformToCompact)(makeSet(), playerIndex);
|
|
31
|
+
(0, globals_1.expect)('m' in compact).toBe(false);
|
|
32
|
+
const decoded = (0, rally_event_1.transformToSet)(compact, roster);
|
|
33
|
+
(0, globals_1.expect)(decoded.tempo).toBeUndefined();
|
|
34
|
+
});
|
|
35
|
+
(0, globals_1.it)('decodes a legacy compact event (no m key) with no tempo', () => {
|
|
36
|
+
const legacy = { p: 0, e: service_1.EventTypeEnum.SET, f: 0, t: 0, a: 4, s: 90 };
|
|
37
|
+
const decoded = (0, rally_event_1.transformToSet)(legacy, roster);
|
|
38
|
+
(0, globals_1.expect)(decoded.tempo).toBeUndefined();
|
|
39
|
+
});
|
|
40
|
+
});
|
|
@@ -12,6 +12,7 @@ export interface CompactEvent {
|
|
|
12
12
|
j?: number;
|
|
13
13
|
i?: number;
|
|
14
14
|
h?: number;
|
|
15
|
+
m?: number;
|
|
15
16
|
}
|
|
16
17
|
export declare function transformToCompact(evt: RallyEvent, playerIndex: Map<string, number>): CompactEvent;
|
|
17
18
|
export declare function transformToBlock(event: CompactEvent, roster: string[]): Block;
|
|
@@ -44,6 +44,9 @@ function transformToCompact(evt, playerIndex) {
|
|
|
44
44
|
if (evt instanceof service_1.Block) {
|
|
45
45
|
out.b = evt.blockers.map(id => playerIndex.get(id));
|
|
46
46
|
}
|
|
47
|
+
if (evt instanceof service_1.Set && evt.tempo !== undefined) {
|
|
48
|
+
out.m = evt.tempo;
|
|
49
|
+
}
|
|
47
50
|
}
|
|
48
51
|
else if (evt instanceof service_1.LiberoReplacement) {
|
|
49
52
|
out.t = evt.type;
|
|
@@ -101,7 +104,8 @@ function transformToSet(event, roster) {
|
|
|
101
104
|
playerId: roster[event.p],
|
|
102
105
|
target: event.a,
|
|
103
106
|
score: event.s,
|
|
104
|
-
incident: incidentFromCompact(event.i, event.h, roster)
|
|
107
|
+
incident: incidentFromCompact(event.i, event.h, roster),
|
|
108
|
+
tempo: event.m
|
|
105
109
|
});
|
|
106
110
|
}
|
|
107
111
|
function transformToSpike(event, roster) {
|
|
@@ -92,7 +92,8 @@ function transformToAttributes(tactics, teamId) {
|
|
|
92
92
|
designated_setters: tactics.designatedSetters.map((s) => s.id),
|
|
93
93
|
offensive_preferences: tactics.offensivePreferences.map(p => ({
|
|
94
94
|
rotation: p.rotation,
|
|
95
|
-
order: p.order.map((a) => a.id)
|
|
95
|
+
order: p.order.map((a) => a.id),
|
|
96
|
+
tempos: p.tempos
|
|
96
97
|
})),
|
|
97
98
|
system_sets: tactics.systemSets?.map(s => ({
|
|
98
99
|
rotationSystem: s.rotationSystem,
|
|
@@ -100,7 +101,8 @@ function transformToAttributes(tactics, teamId) {
|
|
|
100
101
|
})),
|
|
101
102
|
offensive_preference_sets: tactics.offensivePreferenceSets?.map(prefs => prefs.map(p => ({
|
|
102
103
|
rotation: p.rotation,
|
|
103
|
-
order: p.order.map((a) => a.id)
|
|
104
|
+
order: p.order.map((a) => a.id),
|
|
105
|
+
tempos: p.tempos
|
|
104
106
|
}))),
|
|
105
107
|
replace_knocked_immediately: tactics.replaceKnockedImmediately,
|
|
106
108
|
injury_replacements: tactics.injuryReplacements.map(ir => ({
|
|
@@ -190,7 +192,8 @@ function transformToObject(model, roster) {
|
|
|
190
192
|
designatedSetters: (model.designated_setters ?? []).map((id) => findPlayer(id, roster)),
|
|
191
193
|
offensivePreferences: (model.offensive_preferences ?? []).map(p => ({
|
|
192
194
|
rotation: p.rotation,
|
|
193
|
-
order: p.order.map((id) => findPlayer(id, roster))
|
|
195
|
+
order: p.order.map((id) => findPlayer(id, roster)),
|
|
196
|
+
tempos: p.tempos
|
|
194
197
|
})),
|
|
195
198
|
systemSets: model.system_sets?.map(s => ({
|
|
196
199
|
rotationSystem: s.rotationSystem,
|
|
@@ -198,7 +201,8 @@ function transformToObject(model, roster) {
|
|
|
198
201
|
})),
|
|
199
202
|
offensivePreferenceSets: model.offensive_preference_sets?.map(prefs => prefs.map(p => ({
|
|
200
203
|
rotation: p.rotation,
|
|
201
|
-
order: p.order.map((id) => findPlayer(id, roster))
|
|
204
|
+
order: p.order.map((id) => findPlayer(id, roster)),
|
|
205
|
+
tempos: p.tempos
|
|
202
206
|
}))),
|
|
203
207
|
// LENIENT: keep only boolean entries keyed by a court starter or, when a second libero exists, the starting
|
|
204
208
|
// libero (the libero knock toggle is an L2-only feature, owner 2026-07-06) so stale jsonb (an ex-starter's
|
|
@@ -184,6 +184,19 @@ function makeTactics(designatedSubs) {
|
|
|
184
184
|
(0, globals_1.expect)(back.systemSets).toBeUndefined();
|
|
185
185
|
(0, globals_1.expect)(back.offensivePreferenceSets).toBeUndefined();
|
|
186
186
|
});
|
|
187
|
+
(0, globals_1.it)('round-trips a per-starter tempos map on offensive preferences', () => {
|
|
188
|
+
const withTempos = service_1.Tactics.create({
|
|
189
|
+
lineup: { 4: p4, 3: p3, 2: p2, 5: p5, 6: p6, 1: p1, bench: [] },
|
|
190
|
+
liberoReplacements: [],
|
|
191
|
+
offensivePreferences: [{ rotation: 1, order: [p2, p3], tempos: { [p2.id]: 'FAST', [p3.id]: 'HIGH' } }]
|
|
192
|
+
});
|
|
193
|
+
const attrs = (0, tactics_1.transformFromTactics)(withTempos, 'team-1');
|
|
194
|
+
(0, globals_1.expect)(attrs.offensive_preferences).toEqual([
|
|
195
|
+
{ rotation: 1, order: [p2.id, p3.id], tempos: { [p2.id]: 'FAST', [p3.id]: 'HIGH' } }
|
|
196
|
+
]);
|
|
197
|
+
const back = (0, tactics_1.transformToTactics)(attrs, roster);
|
|
198
|
+
(0, globals_1.expect)(back.offensivePreferences[0].tempos).toEqual({ [p2.id]: 'FAST', [p3.id]: 'HIGH' });
|
|
199
|
+
});
|
|
187
200
|
});
|
|
188
201
|
(0, globals_1.describe)('libero injuries — service <-> row round-trip + lenient heal', () => {
|
|
189
202
|
const country = (0, test_helpers_1.makeCountry)();
|
|
@@ -6,6 +6,7 @@ const player_1 = require("../../player");
|
|
|
6
6
|
const incident_z_1 = require("./incident.z");
|
|
7
7
|
const setTypeValues = [0, 1];
|
|
8
8
|
const setFailureValues = [0, 1, 2, 3, 4];
|
|
9
|
+
const setTempoValues = [0, 1, 2];
|
|
9
10
|
const courtTargetValues = Array.from({ length: 13 }, (_, i) => i);
|
|
10
11
|
exports.SetInputSchema = zod_1.z.object({
|
|
11
12
|
playerId: zod_1.z.uuid(),
|
|
@@ -14,5 +15,7 @@ exports.SetInputSchema = zod_1.z.object({
|
|
|
14
15
|
activeTraits: zod_1.z.array(zod_1.z.enum(Object.values(player_1.TraitEnum))).default([]),
|
|
15
16
|
failure: zod_1.z.number().int().refine((v) => setFailureValues.includes(v), { message: 'INVALID_SET_FAILURE' }),
|
|
16
17
|
type: zod_1.z.number().int().refine((v) => setTypeValues.includes(v), { message: 'INVALID_SET_TYPE' }),
|
|
17
|
-
incident: incident_z_1.EventIncidentSchema.optional()
|
|
18
|
+
incident: incident_z_1.EventIncidentSchema.optional(),
|
|
19
|
+
// Set tempo (FIRST=0, SECOND=1, HIGH=2). Optional: absent on dumps, failed sets, and every pre-tempo event.
|
|
20
|
+
tempo: zod_1.z.number().int().refine((v) => setTempoValues.includes(v), { message: 'INVALID_SET_TEMPO' }).optional()
|
|
18
21
|
});
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const globals_1 = require("@jest/globals");
|
|
4
|
+
const set_z_1 = require("./set.z");
|
|
5
|
+
const base = {
|
|
6
|
+
playerId: '11111111-1111-4111-8111-111111111111',
|
|
7
|
+
score: 90,
|
|
8
|
+
target: 4,
|
|
9
|
+
activeTraits: [],
|
|
10
|
+
failure: 0,
|
|
11
|
+
type: 0
|
|
12
|
+
};
|
|
13
|
+
(0, globals_1.describe)('SetInputSchema — tempo', () => {
|
|
14
|
+
(0, globals_1.it)('accepts every tempo 0-2 (FIRST / SECOND / HIGH)', () => {
|
|
15
|
+
for (const tempo of [0, 1, 2]) {
|
|
16
|
+
(0, globals_1.expect)(set_z_1.SetInputSchema.safeParse({ ...base, tempo }).success).toBe(true);
|
|
17
|
+
}
|
|
18
|
+
});
|
|
19
|
+
(0, globals_1.it)('accepts an absent tempo (Auto, dumps, failed sets)', () => {
|
|
20
|
+
(0, globals_1.expect)(set_z_1.SetInputSchema.safeParse(base).success).toBe(true);
|
|
21
|
+
});
|
|
22
|
+
(0, globals_1.it)('rejects an out-of-range tempo', () => {
|
|
23
|
+
(0, globals_1.expect)(set_z_1.SetInputSchema.safeParse({ ...base, tempo: 3 }).success).toBe(false);
|
|
24
|
+
(0, globals_1.expect)(set_z_1.SetInputSchema.safeParse({ ...base, tempo: -1 }).success).toBe(false);
|
|
25
|
+
});
|
|
26
|
+
(0, globals_1.it)('rejects a non-integer tempo', () => {
|
|
27
|
+
(0, globals_1.expect)(set_z_1.SetInputSchema.safeParse({ ...base, tempo: 1.5 }).success).toBe(false);
|
|
28
|
+
});
|
|
29
|
+
});
|
|
@@ -4,6 +4,12 @@ export declare enum SetTypeEnum {
|
|
|
4
4
|
DUMP = 1
|
|
5
5
|
}
|
|
6
6
|
export type SetType = SetTypeEnum.OVERHAND | SetTypeEnum.DUMP;
|
|
7
|
+
export declare enum SetTempoEnum {
|
|
8
|
+
FIRST = 0,
|
|
9
|
+
SECOND = 1,
|
|
10
|
+
HIGH = 2
|
|
11
|
+
}
|
|
12
|
+
export type SetTempo = SetTempoEnum.FIRST | SetTempoEnum.SECOND | SetTempoEnum.HIGH;
|
|
7
13
|
export declare enum SetFailureEnum {
|
|
8
14
|
NO_FAILURE = 0,
|
|
9
15
|
FAULT = 1,
|
|
@@ -15,6 +21,7 @@ export type SetFailure = SetFailureEnum.NO_FAILURE | SetFailureEnum.FAULT | SetF
|
|
|
15
21
|
export declare class Set extends InPlayEvent<SetFailure, SetType> {
|
|
16
22
|
readonly failure: SetFailure;
|
|
17
23
|
readonly type: SetType;
|
|
24
|
+
readonly tempo?: SetTempo;
|
|
18
25
|
static create(input: unknown): Set;
|
|
19
26
|
private constructor();
|
|
20
27
|
toString(): string;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.Set = exports.SetFailureEnum = exports.SetTypeEnum = void 0;
|
|
3
|
+
exports.Set = exports.SetFailureEnum = exports.SetTempoEnum = exports.SetTypeEnum = void 0;
|
|
4
4
|
const rally_event_1 = require("./rally-event");
|
|
5
5
|
const in_play_event_1 = require("./in-play-event");
|
|
6
6
|
const set_z_1 = require("./schemas/set.z");
|
|
@@ -9,6 +9,16 @@ var SetTypeEnum;
|
|
|
9
9
|
SetTypeEnum[SetTypeEnum["OVERHAND"] = 0] = "OVERHAND";
|
|
10
10
|
SetTypeEnum[SetTypeEnum["DUMP"] = 1] = "DUMP";
|
|
11
11
|
})(SetTypeEnum || (exports.SetTypeEnum = SetTypeEnum = {}));
|
|
12
|
+
// The tempo of a set (set-tempo rework). Decided by the simulator (pass quality + target lane + setter skill)
|
|
13
|
+
// or forced by a per-player offensive preference. FIRST = quick (swings the `quick` stat, hardest to nail,
|
|
14
|
+
// hardest to block); SECOND = second tempo; HIGH = high ball (the fallback, easiest to block). Only present on
|
|
15
|
+
// a successful overhand set; absent for dumps, failed sets, and free-ball/scramble attacks.
|
|
16
|
+
var SetTempoEnum;
|
|
17
|
+
(function (SetTempoEnum) {
|
|
18
|
+
SetTempoEnum[SetTempoEnum["FIRST"] = 0] = "FIRST";
|
|
19
|
+
SetTempoEnum[SetTempoEnum["SECOND"] = 1] = "SECOND";
|
|
20
|
+
SetTempoEnum[SetTempoEnum["HIGH"] = 2] = "HIGH";
|
|
21
|
+
})(SetTempoEnum || (exports.SetTempoEnum = SetTempoEnum = {}));
|
|
12
22
|
var SetFailureEnum;
|
|
13
23
|
(function (SetFailureEnum) {
|
|
14
24
|
SetFailureEnum[SetFailureEnum["NO_FAILURE"] = 0] = "NO_FAILURE";
|
|
@@ -31,15 +41,17 @@ class Set extends in_play_event_1.InPlayEvent {
|
|
|
31
41
|
}
|
|
32
42
|
return new Set(result.data);
|
|
33
43
|
}
|
|
34
|
-
constructor({ score, playerId, target, failure, type, activeTraits, incident }) {
|
|
44
|
+
constructor({ score, playerId, target, failure, type, activeTraits, incident, tempo }) {
|
|
35
45
|
super({ score, playerId, target, activeTraits, incident, eventType });
|
|
36
46
|
this.type = type;
|
|
37
47
|
this.failure = failure;
|
|
48
|
+
this.tempo = tempo;
|
|
38
49
|
}
|
|
39
50
|
toString() {
|
|
40
51
|
const failure = `"failure":${this.failure}`;
|
|
41
52
|
const type = `"type":${this.type}`;
|
|
42
|
-
|
|
53
|
+
const tempo = this.tempo !== undefined ? `,"tempo":${this.tempo}` : '';
|
|
54
|
+
return `{${this._toString()},${failure},${type}${tempo}}`;
|
|
43
55
|
}
|
|
44
56
|
}
|
|
45
57
|
exports.Set = Set;
|
|
@@ -20,4 +20,5 @@ __exportStar(require("./team"), exports);
|
|
|
20
20
|
__exportStar(require("./event"), exports);
|
|
21
21
|
__exportStar(require("./player"), exports);
|
|
22
22
|
__exportStar(require("./competition"), exports);
|
|
23
|
+
__exportStar(require("./notification"), exports);
|
|
23
24
|
__exportStar(require("./utils"), exports);
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
{
|
|
2
|
+
"matchResult": {
|
|
3
|
+
"title": "Match result",
|
|
4
|
+
"wonNamed": "You won against {{opponent}}",
|
|
5
|
+
"wonUnnamed": "You won your match",
|
|
6
|
+
"lostNamed": "You lost against {{opponent}}",
|
|
7
|
+
"lostUnnamed": "You lost your match"
|
|
8
|
+
},
|
|
9
|
+
"injury": {
|
|
10
|
+
"title": "Player injured",
|
|
11
|
+
"body": "{{name}} has been injured during the last match. Check the infirmary for their recovery time."
|
|
12
|
+
},
|
|
13
|
+
"injuryRecovered": {
|
|
14
|
+
"title": "Player recovered",
|
|
15
|
+
"body": "{{name}} has recovered from their injury and is ready to play!"
|
|
16
|
+
},
|
|
17
|
+
"seasonEnd": {
|
|
18
|
+
"title": "Season complete",
|
|
19
|
+
"body": "Your final league position is ready."
|
|
20
|
+
},
|
|
21
|
+
"grant": {
|
|
22
|
+
"title": "Recruit received",
|
|
23
|
+
"body": "A new recruit reward is available."
|
|
24
|
+
},
|
|
25
|
+
"promotion": {
|
|
26
|
+
"title": "Promotion",
|
|
27
|
+
"body": "Your team has been promoted to a higher division."
|
|
28
|
+
},
|
|
29
|
+
"dailyLogin": {
|
|
30
|
+
"title": "Daily reward claimed",
|
|
31
|
+
"body": "Your daily login reward was added."
|
|
32
|
+
},
|
|
33
|
+
"welcome": {
|
|
34
|
+
"title": "Welcome to World Aces",
|
|
35
|
+
"body": "Your welcome recruit is ready."
|
|
36
|
+
},
|
|
37
|
+
"generic": {
|
|
38
|
+
"title": "World Aces",
|
|
39
|
+
"body": "You have a new notification."
|
|
40
|
+
}
|
|
41
|
+
}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
{
|
|
2
|
+
"matchResult": {
|
|
3
|
+
"title": "Resultado del partido",
|
|
4
|
+
"wonNamed": "Ganaste contra {{opponent}}",
|
|
5
|
+
"wonUnnamed": "Ganaste tu partido",
|
|
6
|
+
"lostNamed": "Perdiste contra {{opponent}}",
|
|
7
|
+
"lostUnnamed": "Perdiste tu partido"
|
|
8
|
+
},
|
|
9
|
+
"injury": {
|
|
10
|
+
"title": "Jugador lesionado",
|
|
11
|
+
"body": "{{name}} se ha lesionado durante el último partido. Consulta la enfermería para ver su tiempo de recuperación."
|
|
12
|
+
},
|
|
13
|
+
"injuryRecovered": {
|
|
14
|
+
"title": "Jugador recuperado",
|
|
15
|
+
"body": "¡{{name}} se ha recuperado de su lesión y está listo para jugar!"
|
|
16
|
+
},
|
|
17
|
+
"seasonEnd": {
|
|
18
|
+
"title": "Temporada completada",
|
|
19
|
+
"body": "Tu posición final en la liga está lista."
|
|
20
|
+
},
|
|
21
|
+
"grant": {
|
|
22
|
+
"title": "Reclutamiento recibido",
|
|
23
|
+
"body": "Hay una nueva recompensa de reclutamiento disponible."
|
|
24
|
+
},
|
|
25
|
+
"promotion": {
|
|
26
|
+
"title": "Ascenso",
|
|
27
|
+
"body": "Tu equipo ha ascendido a una división superior."
|
|
28
|
+
},
|
|
29
|
+
"dailyLogin": {
|
|
30
|
+
"title": "Recompensa diaria reclamada",
|
|
31
|
+
"body": "Tu recompensa por inicio de sesión diario se ha añadido."
|
|
32
|
+
},
|
|
33
|
+
"welcome": {
|
|
34
|
+
"title": "Te damos la bienvenida a World Aces",
|
|
35
|
+
"body": "Tu reclutamiento de bienvenida ya está disponible."
|
|
36
|
+
},
|
|
37
|
+
"generic": {
|
|
38
|
+
"title": "World Aces",
|
|
39
|
+
"body": "Tienes una nueva notificación."
|
|
40
|
+
}
|
|
41
|
+
}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
{
|
|
2
|
+
"matchResult": {
|
|
3
|
+
"title": "Résultat du match",
|
|
4
|
+
"wonNamed": "Vous avez gagné contre {{opponent}}",
|
|
5
|
+
"wonUnnamed": "Vous avez gagné votre match",
|
|
6
|
+
"lostNamed": "Vous avez perdu contre {{opponent}}",
|
|
7
|
+
"lostUnnamed": "Vous avez perdu votre match"
|
|
8
|
+
},
|
|
9
|
+
"injury": {
|
|
10
|
+
"title": "Joueur blessé",
|
|
11
|
+
"body": "{{name}} s'est blessé lors du dernier match. Consultez l'infirmerie pour connaître son temps de récupération."
|
|
12
|
+
},
|
|
13
|
+
"injuryRecovered": {
|
|
14
|
+
"title": "Joueur rétabli",
|
|
15
|
+
"body": "{{name}} est remis de sa blessure et est prêt à jouer !"
|
|
16
|
+
},
|
|
17
|
+
"seasonEnd": {
|
|
18
|
+
"title": "Saison terminée",
|
|
19
|
+
"body": "Votre classement final dans la ligue est disponible."
|
|
20
|
+
},
|
|
21
|
+
"grant": {
|
|
22
|
+
"title": "Recrutement reçu",
|
|
23
|
+
"body": "Une nouvelle récompense de recrutement est disponible."
|
|
24
|
+
},
|
|
25
|
+
"promotion": {
|
|
26
|
+
"title": "Promotion",
|
|
27
|
+
"body": "Votre équipe a été promue dans une division supérieure."
|
|
28
|
+
},
|
|
29
|
+
"dailyLogin": {
|
|
30
|
+
"title": "Récompense quotidienne récupérée",
|
|
31
|
+
"body": "Votre récompense de connexion quotidienne a été ajoutée."
|
|
32
|
+
},
|
|
33
|
+
"welcome": {
|
|
34
|
+
"title": "Bienvenue sur World Aces",
|
|
35
|
+
"body": "Votre recrutement de bienvenue est prêt."
|
|
36
|
+
},
|
|
37
|
+
"generic": {
|
|
38
|
+
"title": "World Aces",
|
|
39
|
+
"body": "Vous avez une nouvelle notification."
|
|
40
|
+
}
|
|
41
|
+
}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.NOTIFICATION_CATALOG = void 0;
|
|
7
|
+
const en_json_1 = __importDefault(require("./en.json"));
|
|
8
|
+
const es_json_1 = __importDefault(require("./es.json"));
|
|
9
|
+
const fr_json_1 = __importDefault(require("./fr.json"));
|
|
10
|
+
const it_json_1 = __importDefault(require("./it.json"));
|
|
11
|
+
const pl_json_1 = __importDefault(require("./pl.json"));
|
|
12
|
+
const pt_BR_json_1 = __importDefault(require("./pt-BR.json"));
|
|
13
|
+
const tr_json_1 = __importDefault(require("./tr.json"));
|
|
14
|
+
exports.NOTIFICATION_CATALOG = {
|
|
15
|
+
en: en_json_1.default,
|
|
16
|
+
es: es_json_1.default,
|
|
17
|
+
fr: fr_json_1.default,
|
|
18
|
+
it: it_json_1.default,
|
|
19
|
+
pl: pl_json_1.default,
|
|
20
|
+
'pt-BR': pt_BR_json_1.default,
|
|
21
|
+
tr: tr_json_1.default
|
|
22
|
+
};
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
{
|
|
2
|
+
"matchResult": {
|
|
3
|
+
"title": "Risultato della partita",
|
|
4
|
+
"wonNamed": "Hai vinto contro {{opponent}}",
|
|
5
|
+
"wonUnnamed": "Hai vinto la partita",
|
|
6
|
+
"lostNamed": "Hai perso contro {{opponent}}",
|
|
7
|
+
"lostUnnamed": "Hai perso la partita"
|
|
8
|
+
},
|
|
9
|
+
"injury": {
|
|
10
|
+
"title": "Giocatore infortunato",
|
|
11
|
+
"body": "{{name}} si è infortunato durante l'ultima partita. Controlla l'infermeria per conoscere i suoi tempi di recupero."
|
|
12
|
+
},
|
|
13
|
+
"injuryRecovered": {
|
|
14
|
+
"title": "Giocatore recuperato",
|
|
15
|
+
"body": "{{name}} si è ripreso dall'infortunio ed è pronto a giocare!"
|
|
16
|
+
},
|
|
17
|
+
"seasonEnd": {
|
|
18
|
+
"title": "Stagione completata",
|
|
19
|
+
"body": "La tua posizione finale in campionato è pronta."
|
|
20
|
+
},
|
|
21
|
+
"grant": {
|
|
22
|
+
"title": "Reclutamento ricevuto",
|
|
23
|
+
"body": "È disponibile una nuova ricompensa di reclutamento."
|
|
24
|
+
},
|
|
25
|
+
"promotion": {
|
|
26
|
+
"title": "Promozione",
|
|
27
|
+
"body": "La tua squadra è stata promossa in una divisione superiore."
|
|
28
|
+
},
|
|
29
|
+
"dailyLogin": {
|
|
30
|
+
"title": "Ricompensa giornaliera riscattata",
|
|
31
|
+
"body": "La tua ricompensa di accesso giornaliero è stata aggiunta."
|
|
32
|
+
},
|
|
33
|
+
"welcome": {
|
|
34
|
+
"title": "Benvenuto in World Aces",
|
|
35
|
+
"body": "La tua recluta di benvenuto è pronta."
|
|
36
|
+
},
|
|
37
|
+
"generic": {
|
|
38
|
+
"title": "World Aces",
|
|
39
|
+
"body": "Hai una nuova notifica."
|
|
40
|
+
}
|
|
41
|
+
}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
{
|
|
2
|
+
"matchResult": {
|
|
3
|
+
"title": "Wynik meczu",
|
|
4
|
+
"wonNamed": "Wygrana z {{opponent}}",
|
|
5
|
+
"wonUnnamed": "Wygrana w meczu",
|
|
6
|
+
"lostNamed": "Porażka z {{opponent}}",
|
|
7
|
+
"lostUnnamed": "Porażka w meczu"
|
|
8
|
+
},
|
|
9
|
+
"injury": {
|
|
10
|
+
"title": "Zawodnik kontuzjowany",
|
|
11
|
+
"body": "{{name}} doznał kontuzji w ostatnim meczu. Sprawdź ambulatorium, aby poznać czas powrotu do zdrowia."
|
|
12
|
+
},
|
|
13
|
+
"injuryRecovered": {
|
|
14
|
+
"title": "Zawodnik wyzdrowiał",
|
|
15
|
+
"body": "{{name}} wrócił do zdrowia po kontuzji i jest gotowy do gry!"
|
|
16
|
+
},
|
|
17
|
+
"seasonEnd": {
|
|
18
|
+
"title": "Sezon zakończony",
|
|
19
|
+
"body": "Twoja końcowa pozycja w lidze jest gotowa."
|
|
20
|
+
},
|
|
21
|
+
"grant": {
|
|
22
|
+
"title": "Otrzymano rekrutację",
|
|
23
|
+
"body": "Dostępna jest nowa nagroda rekrutacyjna."
|
|
24
|
+
},
|
|
25
|
+
"promotion": {
|
|
26
|
+
"title": "Awans",
|
|
27
|
+
"body": "Twoja drużyna awansowała do wyższej dywizji."
|
|
28
|
+
},
|
|
29
|
+
"dailyLogin": {
|
|
30
|
+
"title": "Odebrano codzienną nagrodę",
|
|
31
|
+
"body": "Twoja codzienna nagroda za logowanie została dodana."
|
|
32
|
+
},
|
|
33
|
+
"welcome": {
|
|
34
|
+
"title": "Witaj w World Aces",
|
|
35
|
+
"body": "Twoja powitalna rekrutacja jest gotowa."
|
|
36
|
+
},
|
|
37
|
+
"generic": {
|
|
38
|
+
"title": "World Aces",
|
|
39
|
+
"body": "Masz nowe powiadomienie."
|
|
40
|
+
}
|
|
41
|
+
}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
{
|
|
2
|
+
"matchResult": {
|
|
3
|
+
"title": "Resultado da partida",
|
|
4
|
+
"wonNamed": "Você venceu {{opponent}}",
|
|
5
|
+
"wonUnnamed": "Você venceu sua partida",
|
|
6
|
+
"lostNamed": "Você perdeu para {{opponent}}",
|
|
7
|
+
"lostUnnamed": "Você perdeu sua partida"
|
|
8
|
+
},
|
|
9
|
+
"injury": {
|
|
10
|
+
"title": "Jogador lesionado",
|
|
11
|
+
"body": "{{name}} se lesionou durante a última partida. Confira a enfermaria para ver o tempo de recuperação."
|
|
12
|
+
},
|
|
13
|
+
"injuryRecovered": {
|
|
14
|
+
"title": "Jogador recuperado",
|
|
15
|
+
"body": "{{name}} se recuperou da lesão e está pronto para jogar!"
|
|
16
|
+
},
|
|
17
|
+
"seasonEnd": {
|
|
18
|
+
"title": "Temporada concluída",
|
|
19
|
+
"body": "Sua colocação final na liga já está disponível."
|
|
20
|
+
},
|
|
21
|
+
"grant": {
|
|
22
|
+
"title": "Recrutamento recebido",
|
|
23
|
+
"body": "Uma nova recompensa de recrutamento está disponível."
|
|
24
|
+
},
|
|
25
|
+
"promotion": {
|
|
26
|
+
"title": "Promoção",
|
|
27
|
+
"body": "Seu time foi promovido para uma divisão superior."
|
|
28
|
+
},
|
|
29
|
+
"dailyLogin": {
|
|
30
|
+
"title": "Recompensa diária coletada",
|
|
31
|
+
"body": "Sua recompensa de login diário foi adicionada."
|
|
32
|
+
},
|
|
33
|
+
"welcome": {
|
|
34
|
+
"title": "Boas-vindas ao World Aces",
|
|
35
|
+
"body": "Seu recrutamento de boas-vindas está pronto."
|
|
36
|
+
},
|
|
37
|
+
"generic": {
|
|
38
|
+
"title": "World Aces",
|
|
39
|
+
"body": "Você tem uma nova notificação."
|
|
40
|
+
}
|
|
41
|
+
}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
{
|
|
2
|
+
"matchResult": {
|
|
3
|
+
"title": "Maç sonucu",
|
|
4
|
+
"wonNamed": "{{opponent}} karşısında kazandın",
|
|
5
|
+
"wonUnnamed": "Maçını kazandın",
|
|
6
|
+
"lostNamed": "{{opponent}} karşısında kaybettin",
|
|
7
|
+
"lostUnnamed": "Maçını kaybettin"
|
|
8
|
+
},
|
|
9
|
+
"injury": {
|
|
10
|
+
"title": "Oyuncu sakatlandı",
|
|
11
|
+
"body": "{{name}} son maçta sakatlandı. İyileşme süresini görmek için reviri kontrol edin."
|
|
12
|
+
},
|
|
13
|
+
"injuryRecovered": {
|
|
14
|
+
"title": "Oyuncu iyileşti",
|
|
15
|
+
"body": "{{name}} sakatlığını atlattı ve oynamaya hazır!"
|
|
16
|
+
},
|
|
17
|
+
"seasonEnd": {
|
|
18
|
+
"title": "Sezon tamamlandı",
|
|
19
|
+
"body": "Ligdeki nihai sıralaman hazır."
|
|
20
|
+
},
|
|
21
|
+
"grant": {
|
|
22
|
+
"title": "Transfer alındı",
|
|
23
|
+
"body": "Yeni bir transfer ödülü mevcut."
|
|
24
|
+
},
|
|
25
|
+
"promotion": {
|
|
26
|
+
"title": "Terfi",
|
|
27
|
+
"body": "Takımın bir üst gruba terfi etti."
|
|
28
|
+
},
|
|
29
|
+
"dailyLogin": {
|
|
30
|
+
"title": "Günlük ödül alındı",
|
|
31
|
+
"body": "Günlük giriş ödülün eklendi."
|
|
32
|
+
},
|
|
33
|
+
"welcome": {
|
|
34
|
+
"title": "World Aces'e hoş geldin",
|
|
35
|
+
"body": "Hoş geldin transferin hazır."
|
|
36
|
+
},
|
|
37
|
+
"generic": {
|
|
38
|
+
"title": "World Aces",
|
|
39
|
+
"body": "Yeni bir bildirimin var."
|
|
40
|
+
}
|
|
41
|
+
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
exports.NOTIFICATION_CATALOG = void 0;
|
|
18
|
+
__exportStar(require("./notification-type"), exports);
|
|
19
|
+
__exportStar(require("./payloads"), exports);
|
|
20
|
+
__exportStar(require("./registry"), exports);
|
|
21
|
+
__exportStar(require("./render"), exports);
|
|
22
|
+
var catalog_1 = require("./catalog");
|
|
23
|
+
Object.defineProperty(exports, "NOTIFICATION_CATALOG", { enumerable: true, get: function () { return catalog_1.NOTIFICATION_CATALOG; } });
|