@dchighs/dc-config-mapper 0.2.2 → 0.3.1
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/index.d.ts +1 -0
- package/dist/index.js +3 -0
- package/dist/mappers/grid-islands.mapper.d.ts +108 -0
- package/dist/mappers/grid-islands.mapper.js +35 -0
- package/dist/mappers/index.d.ts +1 -0
- package/dist/mappers/index.js +1 -0
- package/dist/mappers/maze-islands.mapper.d.ts +0 -1
- package/dist/mappers/tower-islands.mapper.d.ts +4 -1
- package/dist/schemas/islands/grid-islands/decoration.schema.d.ts +21 -0
- package/dist/schemas/islands/grid-islands/decoration.schema.js +19 -0
- package/dist/schemas/islands/grid-islands/encounter.schema.d.ts +20 -0
- package/dist/schemas/islands/grid-islands/encounter.schema.js +19 -0
- package/dist/schemas/islands/grid-islands/episode.schema.d.ts +45 -0
- package/dist/schemas/islands/grid-islands/episode.schema.js +35 -0
- package/dist/schemas/islands/grid-islands/island.schema.d.ts +188 -0
- package/dist/schemas/islands/grid-islands/island.schema.js +115 -0
- package/dist/schemas/islands/grid-islands/square.schema.d.ts +42 -0
- package/dist/schemas/islands/grid-islands/square.schema.js +36 -0
- package/dist/schemas/islands/maze-islands/island.schema.d.ts +0 -1
- package/dist/schemas/islands/maze-islands/island.schema.js +0 -1
- package/dist/schemas/islands/tower-islands/island.schema.d.ts +4 -1
- package/dist/schemas/islands/tower-islands/island.schema.js +4 -1
- package/dist/utils/index.d.ts +1 -0
- package/dist/utils/index.js +1 -0
- package/dist/utils/resolve-grid-decoration-positions.util.d.ts +20 -0
- package/dist/utils/resolve-grid-decoration-positions.util.js +31 -0
- package/package.json +3 -2
package/dist/index.d.ts
CHANGED
package/dist/index.js
CHANGED
|
@@ -14,5 +14,8 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
14
14
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
exports.resolveGridDecorationPositions = void 0;
|
|
17
18
|
__exportStar(require("./data-compiler"), exports);
|
|
18
19
|
__exportStar(require("./mappers"), exports);
|
|
20
|
+
var utils_1 = require("./utils");
|
|
21
|
+
Object.defineProperty(exports, "resolveGridDecorationPositions", { enumerable: true, get: function () { return utils_1.resolveGridDecorationPositions; } });
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
import { Localization } from "@dchighs/dc-localization";
|
|
2
|
+
import { GameConfigDto } from "@dchighs/dc-config";
|
|
3
|
+
type GridIslandsDto = GameConfigDto["game_data"]["config"]["grid_island"];
|
|
4
|
+
export declare class GridIslandsMapper {
|
|
5
|
+
readonly localization: Localization;
|
|
6
|
+
constructor(localization: Localization);
|
|
7
|
+
map(gridIslands: GridIslandsDto): {
|
|
8
|
+
islands: import("@dchighs/dc-localization/dist/types").Translated<{
|
|
9
|
+
id: number;
|
|
10
|
+
min_level: number;
|
|
11
|
+
availability: {
|
|
12
|
+
from: string;
|
|
13
|
+
to: string;
|
|
14
|
+
};
|
|
15
|
+
name_key: string;
|
|
16
|
+
sound_tag: string;
|
|
17
|
+
zip_file_name: string;
|
|
18
|
+
currency_id: number;
|
|
19
|
+
pool: {
|
|
20
|
+
points: number;
|
|
21
|
+
time: number;
|
|
22
|
+
};
|
|
23
|
+
initial_points: number;
|
|
24
|
+
board_size: {
|
|
25
|
+
width: number;
|
|
26
|
+
height: number;
|
|
27
|
+
};
|
|
28
|
+
initial_square_id: number;
|
|
29
|
+
episode_ids: number[];
|
|
30
|
+
}>[];
|
|
31
|
+
episodes: import("@dchighs/dc-localization/dist/types").Translated<{
|
|
32
|
+
id: number;
|
|
33
|
+
board_size: {
|
|
34
|
+
width: number;
|
|
35
|
+
height: number;
|
|
36
|
+
};
|
|
37
|
+
initial_square_id: number;
|
|
38
|
+
final_square_id: number;
|
|
39
|
+
name_key: string;
|
|
40
|
+
square_ids: number[];
|
|
41
|
+
decoration_ids: number[];
|
|
42
|
+
}>[];
|
|
43
|
+
squares: {
|
|
44
|
+
id: number;
|
|
45
|
+
type: string;
|
|
46
|
+
reward: {
|
|
47
|
+
chest_id: number | undefined;
|
|
48
|
+
type: string;
|
|
49
|
+
} | {
|
|
50
|
+
dragon_id: number | undefined;
|
|
51
|
+
type: string;
|
|
52
|
+
} | null;
|
|
53
|
+
highlight: number;
|
|
54
|
+
x: number;
|
|
55
|
+
y: number;
|
|
56
|
+
claim_cost: number;
|
|
57
|
+
wall: string | undefined;
|
|
58
|
+
wall_suffix: string | undefined;
|
|
59
|
+
}[];
|
|
60
|
+
decorations: {
|
|
61
|
+
id: number;
|
|
62
|
+
filename: string;
|
|
63
|
+
x: number;
|
|
64
|
+
y: number;
|
|
65
|
+
}[];
|
|
66
|
+
encounters: {
|
|
67
|
+
id: number;
|
|
68
|
+
enemy_ids: number[];
|
|
69
|
+
speed_up_price_per_hour: number;
|
|
70
|
+
fight_background: string;
|
|
71
|
+
fight_background_id: string;
|
|
72
|
+
}[];
|
|
73
|
+
enemies: {
|
|
74
|
+
id: number;
|
|
75
|
+
dragon_ids: Array<number>;
|
|
76
|
+
handicaps: Array<number>;
|
|
77
|
+
view_type: string;
|
|
78
|
+
elements_view_type: Array<any>;
|
|
79
|
+
cooldown: number;
|
|
80
|
+
}[];
|
|
81
|
+
currencies: {
|
|
82
|
+
id: number;
|
|
83
|
+
tid_name: string;
|
|
84
|
+
actions: Array<number>;
|
|
85
|
+
}[];
|
|
86
|
+
actions: {
|
|
87
|
+
id: number;
|
|
88
|
+
type: string;
|
|
89
|
+
tid_name: string;
|
|
90
|
+
image: string;
|
|
91
|
+
pool_percent: number;
|
|
92
|
+
max_points: number;
|
|
93
|
+
extra_parameters?: {
|
|
94
|
+
max_time?: number;
|
|
95
|
+
cooldown?: number;
|
|
96
|
+
max_control_level?: number;
|
|
97
|
+
max_production?: number;
|
|
98
|
+
max_level?: number;
|
|
99
|
+
};
|
|
100
|
+
}[];
|
|
101
|
+
parameters: {
|
|
102
|
+
id: number;
|
|
103
|
+
name: string;
|
|
104
|
+
value: any;
|
|
105
|
+
}[];
|
|
106
|
+
};
|
|
107
|
+
}
|
|
108
|
+
export {};
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.GridIslandsMapper = void 0;
|
|
4
|
+
const island_schema_1 = require("../schemas/islands/grid-islands/island.schema");
|
|
5
|
+
const episode_schema_1 = require("../schemas/islands/grid-islands/episode.schema");
|
|
6
|
+
const square_schema_1 = require("../schemas/islands/grid-islands/square.schema");
|
|
7
|
+
const decoration_schema_1 = require("../schemas/islands/grid-islands/decoration.schema");
|
|
8
|
+
const encounter_schema_1 = require("../schemas/islands/grid-islands/encounter.schema");
|
|
9
|
+
class GridIslandsMapper {
|
|
10
|
+
constructor(localization) {
|
|
11
|
+
this.localization = localization;
|
|
12
|
+
}
|
|
13
|
+
map(gridIslands) {
|
|
14
|
+
return {
|
|
15
|
+
islands: gridIslands.islands.map(island => this.localization.translate(island_schema_1.gridIslandSchema.parse(island))),
|
|
16
|
+
episodes: gridIslands.episodes.map(episode => {
|
|
17
|
+
const decorationIds = gridIslands.decorations
|
|
18
|
+
.filter(decoration => decoration.episode_id === episode.id)
|
|
19
|
+
.map(decoration => decoration.id);
|
|
20
|
+
return this.localization.translate(episode_schema_1.gridIslandsEpisodeSchema.parse({
|
|
21
|
+
...episode,
|
|
22
|
+
decoration_ids: decorationIds
|
|
23
|
+
}));
|
|
24
|
+
}),
|
|
25
|
+
squares: gridIslands.squares.map(square => square_schema_1.gridIslandsSquareSchema.parse(square)),
|
|
26
|
+
decorations: gridIslands.decorations.map(decoration => decoration_schema_1.gridIslandsDecorationSchema.parse(decoration)),
|
|
27
|
+
encounters: gridIslands.encounters.map(encounter => encounter_schema_1.gridIslandsEncounterSchema.parse(encounter)),
|
|
28
|
+
enemies: gridIslands.enemies,
|
|
29
|
+
currencies: gridIslands.currencies,
|
|
30
|
+
actions: gridIslands.actions,
|
|
31
|
+
parameters: gridIslands.parameters,
|
|
32
|
+
};
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
exports.GridIslandsMapper = GridIslandsMapper;
|
package/dist/mappers/index.d.ts
CHANGED
package/dist/mappers/index.js
CHANGED
|
@@ -20,3 +20,4 @@ __exportStar(require("./skills.mapper"), exports);
|
|
|
20
20
|
__exportStar(require("./heroic-races.mapper"), exports);
|
|
21
21
|
__exportStar(require("./maze-islands.mapper"), exports);
|
|
22
22
|
__exportStar(require("./tower-islands.mapper"), exports);
|
|
23
|
+
__exportStar(require("./grid-islands.mapper"), exports);
|
|
@@ -20,7 +20,6 @@ export declare class TowerIslandsMapper {
|
|
|
20
20
|
initial_points: number;
|
|
21
21
|
currency_id: number;
|
|
22
22
|
min_level: number;
|
|
23
|
-
tower_size: number[];
|
|
24
23
|
zip_file_name: string;
|
|
25
24
|
sound_tag: string;
|
|
26
25
|
max_die_roll: number;
|
|
@@ -28,6 +27,10 @@ export declare class TowerIslandsMapper {
|
|
|
28
27
|
square_ids: number[];
|
|
29
28
|
floor_ids: number[];
|
|
30
29
|
reward_ids: number[];
|
|
30
|
+
board_size: {
|
|
31
|
+
width: number;
|
|
32
|
+
height: number;
|
|
33
|
+
};
|
|
31
34
|
}>[];
|
|
32
35
|
floors: import("@dchighs/dc-localization/dist/types").Translated<{
|
|
33
36
|
id: number;
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
export declare const gridIslandsDecorationSchema: z.ZodPipe<z.ZodObject<{
|
|
3
|
+
id: z.ZodNumber;
|
|
4
|
+
file: z.ZodString;
|
|
5
|
+
x: z.ZodNumber;
|
|
6
|
+
y: z.ZodNumber;
|
|
7
|
+
island_id: z.ZodNumber;
|
|
8
|
+
episode_id: z.ZodNumber;
|
|
9
|
+
}, z.core.$strict>, z.ZodTransform<{
|
|
10
|
+
id: number;
|
|
11
|
+
filename: string;
|
|
12
|
+
x: number;
|
|
13
|
+
y: number;
|
|
14
|
+
}, {
|
|
15
|
+
id: number;
|
|
16
|
+
file: string;
|
|
17
|
+
x: number;
|
|
18
|
+
y: number;
|
|
19
|
+
island_id: number;
|
|
20
|
+
episode_id: number;
|
|
21
|
+
}>>;
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.gridIslandsDecorationSchema = void 0;
|
|
4
|
+
const zod_1 = require("zod");
|
|
5
|
+
exports.gridIslandsDecorationSchema = zod_1.z.object({
|
|
6
|
+
id: zod_1.z.number(),
|
|
7
|
+
file: zod_1.z.string(),
|
|
8
|
+
x: zod_1.z.number(),
|
|
9
|
+
y: zod_1.z.number(),
|
|
10
|
+
island_id: zod_1.z.number(),
|
|
11
|
+
episode_id: zod_1.z.number(),
|
|
12
|
+
}).strict().transform(data => {
|
|
13
|
+
return {
|
|
14
|
+
id: data.id,
|
|
15
|
+
filename: data.file,
|
|
16
|
+
x: data.x,
|
|
17
|
+
y: data.y,
|
|
18
|
+
};
|
|
19
|
+
});
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
export declare const gridIslandsEncounterSchema: z.ZodPipe<z.ZodObject<{
|
|
3
|
+
id: z.ZodNumber;
|
|
4
|
+
enemies: z.ZodArray<z.ZodNumber>;
|
|
5
|
+
speed_up_price_per_hour: z.ZodNumber;
|
|
6
|
+
fight_background: z.ZodString;
|
|
7
|
+
fight_background_id: z.ZodString;
|
|
8
|
+
}, z.core.$strict>, z.ZodTransform<{
|
|
9
|
+
id: number;
|
|
10
|
+
enemy_ids: number[];
|
|
11
|
+
speed_up_price_per_hour: number;
|
|
12
|
+
fight_background: string;
|
|
13
|
+
fight_background_id: string;
|
|
14
|
+
}, {
|
|
15
|
+
id: number;
|
|
16
|
+
enemies: number[];
|
|
17
|
+
speed_up_price_per_hour: number;
|
|
18
|
+
fight_background: string;
|
|
19
|
+
fight_background_id: string;
|
|
20
|
+
}>>;
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.gridIslandsEncounterSchema = void 0;
|
|
4
|
+
const zod_1 = require("zod");
|
|
5
|
+
exports.gridIslandsEncounterSchema = zod_1.z.object({
|
|
6
|
+
id: zod_1.z.number(),
|
|
7
|
+
enemies: zod_1.z.array(zod_1.z.number()),
|
|
8
|
+
speed_up_price_per_hour: zod_1.z.number(),
|
|
9
|
+
fight_background: zod_1.z.string(),
|
|
10
|
+
fight_background_id: zod_1.z.string(),
|
|
11
|
+
}).strict().transform(data => {
|
|
12
|
+
return {
|
|
13
|
+
id: data.id,
|
|
14
|
+
enemy_ids: data.enemies,
|
|
15
|
+
speed_up_price_per_hour: data.speed_up_price_per_hour,
|
|
16
|
+
fight_background: data.fight_background,
|
|
17
|
+
fight_background_id: data.fight_background_id,
|
|
18
|
+
};
|
|
19
|
+
});
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
export declare const gridIslandsEpisodeSchema: z.ZodPipe<z.ZodObject<{
|
|
3
|
+
id: z.ZodNumber;
|
|
4
|
+
island_id: z.ZodNumber;
|
|
5
|
+
board_size: z.ZodArray<z.ZodNumber>;
|
|
6
|
+
initial_square_id: z.ZodNumber;
|
|
7
|
+
final_square_id: z.ZodNumber;
|
|
8
|
+
tid_title: z.ZodString;
|
|
9
|
+
mobile_begin_tutorial_id: z.ZodNumber;
|
|
10
|
+
mobile_end_tutorial_id: z.ZodNumber;
|
|
11
|
+
canvas_background: z.ZodString;
|
|
12
|
+
backgrounds: z.ZodArray<z.ZodString>;
|
|
13
|
+
background_plist: z.ZodString;
|
|
14
|
+
foregrounds: z.ZodArray<z.ZodAny>;
|
|
15
|
+
foregrounds_plists: z.ZodArray<z.ZodAny>;
|
|
16
|
+
squares: z.ZodArray<z.ZodNumber>;
|
|
17
|
+
decoration_ids: z.ZodArray<z.ZodNumber>;
|
|
18
|
+
}, z.core.$strict>, z.ZodTransform<{
|
|
19
|
+
id: number;
|
|
20
|
+
board_size: {
|
|
21
|
+
width: number;
|
|
22
|
+
height: number;
|
|
23
|
+
};
|
|
24
|
+
initial_square_id: number;
|
|
25
|
+
final_square_id: number;
|
|
26
|
+
name_key: string;
|
|
27
|
+
square_ids: number[];
|
|
28
|
+
decoration_ids: number[];
|
|
29
|
+
}, {
|
|
30
|
+
id: number;
|
|
31
|
+
island_id: number;
|
|
32
|
+
board_size: number[];
|
|
33
|
+
initial_square_id: number;
|
|
34
|
+
final_square_id: number;
|
|
35
|
+
tid_title: string;
|
|
36
|
+
mobile_begin_tutorial_id: number;
|
|
37
|
+
mobile_end_tutorial_id: number;
|
|
38
|
+
canvas_background: string;
|
|
39
|
+
backgrounds: string[];
|
|
40
|
+
background_plist: string;
|
|
41
|
+
foregrounds: any[];
|
|
42
|
+
foregrounds_plists: any[];
|
|
43
|
+
squares: number[];
|
|
44
|
+
decoration_ids: number[];
|
|
45
|
+
}>>;
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.gridIslandsEpisodeSchema = void 0;
|
|
4
|
+
const zod_1 = require("zod");
|
|
5
|
+
exports.gridIslandsEpisodeSchema = zod_1.z.object({
|
|
6
|
+
id: zod_1.z.number(),
|
|
7
|
+
island_id: zod_1.z.number(),
|
|
8
|
+
board_size: zod_1.z.array(zod_1.z.number()),
|
|
9
|
+
initial_square_id: zod_1.z.number(),
|
|
10
|
+
final_square_id: zod_1.z.number(),
|
|
11
|
+
tid_title: zod_1.z.string(),
|
|
12
|
+
mobile_begin_tutorial_id: zod_1.z.number(),
|
|
13
|
+
mobile_end_tutorial_id: zod_1.z.number(),
|
|
14
|
+
canvas_background: zod_1.z.string(),
|
|
15
|
+
backgrounds: zod_1.z.array(zod_1.z.string()),
|
|
16
|
+
background_plist: zod_1.z.string(),
|
|
17
|
+
foregrounds: zod_1.z.array(zod_1.z.any()),
|
|
18
|
+
foregrounds_plists: zod_1.z.array(zod_1.z.any()),
|
|
19
|
+
squares: zod_1.z.array(zod_1.z.number()),
|
|
20
|
+
// injected props
|
|
21
|
+
decoration_ids: zod_1.z.array(zod_1.z.number())
|
|
22
|
+
}).strict().transform((data) => {
|
|
23
|
+
return {
|
|
24
|
+
id: data.id,
|
|
25
|
+
board_size: {
|
|
26
|
+
width: data.board_size[0],
|
|
27
|
+
height: data.board_size[1],
|
|
28
|
+
},
|
|
29
|
+
initial_square_id: data.initial_square_id,
|
|
30
|
+
final_square_id: data.final_square_id,
|
|
31
|
+
name_key: data.tid_title,
|
|
32
|
+
square_ids: data.squares,
|
|
33
|
+
decoration_ids: data.decoration_ids,
|
|
34
|
+
};
|
|
35
|
+
});
|
|
@@ -0,0 +1,188 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
export declare const gridIslandSchema: z.ZodPipe<z.ZodObject<{
|
|
3
|
+
id: z.ZodNumber;
|
|
4
|
+
analytics_id: z.ZodString;
|
|
5
|
+
tid_name: z.ZodString;
|
|
6
|
+
tutorial_id: z.ZodNumber;
|
|
7
|
+
tutorial_claimable_cell_id: z.ZodNumber;
|
|
8
|
+
pool_points: z.ZodNumber;
|
|
9
|
+
pool_time: z.ZodNumber;
|
|
10
|
+
initial_points: z.ZodNumber;
|
|
11
|
+
start_ts: z.ZodNumber;
|
|
12
|
+
end_ts: z.ZodNumber;
|
|
13
|
+
currency_id: z.ZodNumber;
|
|
14
|
+
min_level: z.ZodNumber;
|
|
15
|
+
building_id: z.ZodNumber;
|
|
16
|
+
building_position: z.ZodArray<z.ZodNumber>;
|
|
17
|
+
zip_file: z.ZodString;
|
|
18
|
+
sound_tag: z.ZodString;
|
|
19
|
+
canvas_assets_url: z.ZodString;
|
|
20
|
+
ui_configuration: z.ZodObject<{
|
|
21
|
+
cell_contents_config: z.ZodObject<{
|
|
22
|
+
blocked_dragon_position_offset: z.ZodArray<z.ZodNumber>;
|
|
23
|
+
blocked_opacity: z.ZodNumber;
|
|
24
|
+
claimable_dragon_position_offset: z.ZodArray<z.ZodNumber>;
|
|
25
|
+
default_dragon_scale: z.ZodArray<z.ZodNumber>;
|
|
26
|
+
dragon_scale: z.ZodArray<z.ZodNumber>;
|
|
27
|
+
dragon_scale_by_id: z.ZodRecord<z.ZodNumber, z.ZodArray<z.ZodNumber>>;
|
|
28
|
+
icon_position_offset: z.ZodArray<z.ZodNumber>;
|
|
29
|
+
label_position_offset: z.ZodArray<z.ZodNumber>;
|
|
30
|
+
}, z.core.$strip>;
|
|
31
|
+
cell_highlight_asset: z.ZodString;
|
|
32
|
+
cell_highlight_index: z.ZodNumber;
|
|
33
|
+
cell_size: z.ZodArray<z.ZodNumber>;
|
|
34
|
+
cells_label_config: z.ZodObject<{
|
|
35
|
+
claimable: z.ZodObject<{
|
|
36
|
+
color: z.ZodArray<z.ZodNumber>;
|
|
37
|
+
size: z.ZodNumber;
|
|
38
|
+
stroke_color: z.ZodArray<z.ZodNumber>;
|
|
39
|
+
stroke_width: z.ZodNumber;
|
|
40
|
+
}, z.core.$strip>;
|
|
41
|
+
unclaimable: z.ZodObject<{
|
|
42
|
+
color: z.ZodArray<z.ZodNumber>;
|
|
43
|
+
size: z.ZodNumber;
|
|
44
|
+
stroke_color: z.ZodArray<z.ZodNumber>;
|
|
45
|
+
stroke_width: z.ZodNumber;
|
|
46
|
+
}, z.core.$strip>;
|
|
47
|
+
}, z.core.$strip>;
|
|
48
|
+
dragon_evolution: z.ZodNumber;
|
|
49
|
+
grey_scale_blocked_cells: z.ZodBoolean;
|
|
50
|
+
island_title_config: z.ZodObject<{
|
|
51
|
+
down_color: z.ZodArray<z.ZodNumber>;
|
|
52
|
+
size: z.ZodNumber;
|
|
53
|
+
small_stroke_color: z.ZodArray<z.ZodNumber>;
|
|
54
|
+
small_stroke_width: z.ZodNumber;
|
|
55
|
+
upper_color: z.ZodArray<z.ZodNumber>;
|
|
56
|
+
}, z.core.$strip>;
|
|
57
|
+
layers_z_indexes: z.ZodObject<{
|
|
58
|
+
additional_layer: z.ZodNumber;
|
|
59
|
+
cell_backgrounds: z.ZodNumber;
|
|
60
|
+
cell_contents: z.ZodNumber;
|
|
61
|
+
decorations: z.ZodNumber;
|
|
62
|
+
player_token: z.ZodNumber;
|
|
63
|
+
walls: z.ZodNumber;
|
|
64
|
+
}, z.core.$strip>;
|
|
65
|
+
origin_offset: z.ZodArray<z.ZodNumber>;
|
|
66
|
+
tutorial_scroll_duration: z.ZodNumber;
|
|
67
|
+
tutorial_scroll_duration_base: z.ZodNumber;
|
|
68
|
+
tutorial_scroll_duration_factor: z.ZodNumber;
|
|
69
|
+
}, z.core.$strip>;
|
|
70
|
+
active_platforms: z.ZodObject<{
|
|
71
|
+
ios: z.ZodNumber;
|
|
72
|
+
canvas: z.ZodString;
|
|
73
|
+
android: z.ZodNumber;
|
|
74
|
+
amazon: z.ZodNumber;
|
|
75
|
+
windows: z.ZodNumber;
|
|
76
|
+
}, z.core.$strip>;
|
|
77
|
+
episodes: z.ZodArray<z.ZodNumber>;
|
|
78
|
+
board_size: z.ZodArray<z.ZodNumber>;
|
|
79
|
+
initial_square_id: z.ZodNumber;
|
|
80
|
+
backgrounds: z.ZodArray<z.ZodNumber>;
|
|
81
|
+
background_plist: z.ZodString;
|
|
82
|
+
foregrounds: z.ZodArray<z.ZodAny>;
|
|
83
|
+
foregrounds_plists: z.ZodArray<z.ZodAny>;
|
|
84
|
+
}, z.core.$strict>, z.ZodTransform<{
|
|
85
|
+
id: number;
|
|
86
|
+
min_level: number;
|
|
87
|
+
availability: {
|
|
88
|
+
from: string;
|
|
89
|
+
to: string;
|
|
90
|
+
};
|
|
91
|
+
name_key: string;
|
|
92
|
+
sound_tag: string;
|
|
93
|
+
zip_file_name: string;
|
|
94
|
+
currency_id: number;
|
|
95
|
+
pool: {
|
|
96
|
+
points: number;
|
|
97
|
+
time: number;
|
|
98
|
+
};
|
|
99
|
+
initial_points: number;
|
|
100
|
+
board_size: {
|
|
101
|
+
width: number;
|
|
102
|
+
height: number;
|
|
103
|
+
};
|
|
104
|
+
initial_square_id: number;
|
|
105
|
+
episode_ids: number[];
|
|
106
|
+
}, {
|
|
107
|
+
id: number;
|
|
108
|
+
analytics_id: string;
|
|
109
|
+
tid_name: string;
|
|
110
|
+
tutorial_id: number;
|
|
111
|
+
tutorial_claimable_cell_id: number;
|
|
112
|
+
pool_points: number;
|
|
113
|
+
pool_time: number;
|
|
114
|
+
initial_points: number;
|
|
115
|
+
start_ts: number;
|
|
116
|
+
end_ts: number;
|
|
117
|
+
currency_id: number;
|
|
118
|
+
min_level: number;
|
|
119
|
+
building_id: number;
|
|
120
|
+
building_position: number[];
|
|
121
|
+
zip_file: string;
|
|
122
|
+
sound_tag: string;
|
|
123
|
+
canvas_assets_url: string;
|
|
124
|
+
ui_configuration: {
|
|
125
|
+
cell_contents_config: {
|
|
126
|
+
blocked_dragon_position_offset: number[];
|
|
127
|
+
blocked_opacity: number;
|
|
128
|
+
claimable_dragon_position_offset: number[];
|
|
129
|
+
default_dragon_scale: number[];
|
|
130
|
+
dragon_scale: number[];
|
|
131
|
+
dragon_scale_by_id: Record<number, number[]>;
|
|
132
|
+
icon_position_offset: number[];
|
|
133
|
+
label_position_offset: number[];
|
|
134
|
+
};
|
|
135
|
+
cell_highlight_asset: string;
|
|
136
|
+
cell_highlight_index: number;
|
|
137
|
+
cell_size: number[];
|
|
138
|
+
cells_label_config: {
|
|
139
|
+
claimable: {
|
|
140
|
+
color: number[];
|
|
141
|
+
size: number;
|
|
142
|
+
stroke_color: number[];
|
|
143
|
+
stroke_width: number;
|
|
144
|
+
};
|
|
145
|
+
unclaimable: {
|
|
146
|
+
color: number[];
|
|
147
|
+
size: number;
|
|
148
|
+
stroke_color: number[];
|
|
149
|
+
stroke_width: number;
|
|
150
|
+
};
|
|
151
|
+
};
|
|
152
|
+
dragon_evolution: number;
|
|
153
|
+
grey_scale_blocked_cells: boolean;
|
|
154
|
+
island_title_config: {
|
|
155
|
+
down_color: number[];
|
|
156
|
+
size: number;
|
|
157
|
+
small_stroke_color: number[];
|
|
158
|
+
small_stroke_width: number;
|
|
159
|
+
upper_color: number[];
|
|
160
|
+
};
|
|
161
|
+
layers_z_indexes: {
|
|
162
|
+
additional_layer: number;
|
|
163
|
+
cell_backgrounds: number;
|
|
164
|
+
cell_contents: number;
|
|
165
|
+
decorations: number;
|
|
166
|
+
player_token: number;
|
|
167
|
+
walls: number;
|
|
168
|
+
};
|
|
169
|
+
origin_offset: number[];
|
|
170
|
+
tutorial_scroll_duration: number;
|
|
171
|
+
tutorial_scroll_duration_base: number;
|
|
172
|
+
tutorial_scroll_duration_factor: number;
|
|
173
|
+
};
|
|
174
|
+
active_platforms: {
|
|
175
|
+
ios: number;
|
|
176
|
+
canvas: string;
|
|
177
|
+
android: number;
|
|
178
|
+
amazon: number;
|
|
179
|
+
windows: number;
|
|
180
|
+
};
|
|
181
|
+
episodes: number[];
|
|
182
|
+
board_size: number[];
|
|
183
|
+
initial_square_id: number;
|
|
184
|
+
backgrounds: number[];
|
|
185
|
+
background_plist: string;
|
|
186
|
+
foregrounds: any[];
|
|
187
|
+
foregrounds_plists: any[];
|
|
188
|
+
}>>;
|
|
@@ -0,0 +1,115 @@
|
|
|
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.gridIslandSchema = void 0;
|
|
7
|
+
const node_path_1 = __importDefault(require("node:path"));
|
|
8
|
+
const zod_1 = require("zod");
|
|
9
|
+
exports.gridIslandSchema = zod_1.z.object({
|
|
10
|
+
id: zod_1.z.number(),
|
|
11
|
+
analytics_id: zod_1.z.string(),
|
|
12
|
+
tid_name: zod_1.z.string(),
|
|
13
|
+
tutorial_id: zod_1.z.number(),
|
|
14
|
+
tutorial_claimable_cell_id: zod_1.z.number(),
|
|
15
|
+
pool_points: zod_1.z.number(),
|
|
16
|
+
pool_time: zod_1.z.number(),
|
|
17
|
+
initial_points: zod_1.z.number(),
|
|
18
|
+
start_ts: zod_1.z.number(),
|
|
19
|
+
end_ts: zod_1.z.number(),
|
|
20
|
+
currency_id: zod_1.z.number(),
|
|
21
|
+
min_level: zod_1.z.number(),
|
|
22
|
+
building_id: zod_1.z.number(),
|
|
23
|
+
building_position: zod_1.z.array(zod_1.z.number()),
|
|
24
|
+
zip_file: zod_1.z.string(),
|
|
25
|
+
sound_tag: zod_1.z.string(),
|
|
26
|
+
canvas_assets_url: zod_1.z.string(),
|
|
27
|
+
ui_configuration: zod_1.z.object({
|
|
28
|
+
cell_contents_config: zod_1.z.object({
|
|
29
|
+
blocked_dragon_position_offset: zod_1.z.array(zod_1.z.number()),
|
|
30
|
+
blocked_opacity: zod_1.z.number(),
|
|
31
|
+
claimable_dragon_position_offset: zod_1.z.array(zod_1.z.number()),
|
|
32
|
+
default_dragon_scale: zod_1.z.array(zod_1.z.number()),
|
|
33
|
+
dragon_scale: zod_1.z.array(zod_1.z.number()),
|
|
34
|
+
dragon_scale_by_id: zod_1.z.record(zod_1.z.number(), zod_1.z.array(zod_1.z.number())),
|
|
35
|
+
icon_position_offset: zod_1.z.array(zod_1.z.number()),
|
|
36
|
+
label_position_offset: zod_1.z.array(zod_1.z.number()),
|
|
37
|
+
}),
|
|
38
|
+
cell_highlight_asset: zod_1.z.string(),
|
|
39
|
+
cell_highlight_index: zod_1.z.number(),
|
|
40
|
+
cell_size: zod_1.z.array(zod_1.z.number()),
|
|
41
|
+
cells_label_config: zod_1.z.object({
|
|
42
|
+
claimable: zod_1.z.object({
|
|
43
|
+
color: zod_1.z.array(zod_1.z.number()),
|
|
44
|
+
size: zod_1.z.number(),
|
|
45
|
+
stroke_color: zod_1.z.array(zod_1.z.number()),
|
|
46
|
+
stroke_width: zod_1.z.number(),
|
|
47
|
+
}),
|
|
48
|
+
unclaimable: zod_1.z.object({
|
|
49
|
+
color: zod_1.z.array(zod_1.z.number()),
|
|
50
|
+
size: zod_1.z.number(),
|
|
51
|
+
stroke_color: zod_1.z.array(zod_1.z.number()),
|
|
52
|
+
stroke_width: zod_1.z.number(),
|
|
53
|
+
}),
|
|
54
|
+
}),
|
|
55
|
+
dragon_evolution: zod_1.z.number(),
|
|
56
|
+
grey_scale_blocked_cells: zod_1.z.boolean(),
|
|
57
|
+
island_title_config: zod_1.z.object({
|
|
58
|
+
down_color: zod_1.z.array(zod_1.z.number()),
|
|
59
|
+
size: zod_1.z.number(),
|
|
60
|
+
small_stroke_color: zod_1.z.array(zod_1.z.number()),
|
|
61
|
+
small_stroke_width: zod_1.z.number(),
|
|
62
|
+
upper_color: zod_1.z.array(zod_1.z.number()),
|
|
63
|
+
}),
|
|
64
|
+
layers_z_indexes: zod_1.z.object({
|
|
65
|
+
additional_layer: zod_1.z.number(),
|
|
66
|
+
cell_backgrounds: zod_1.z.number(),
|
|
67
|
+
cell_contents: zod_1.z.number(),
|
|
68
|
+
decorations: zod_1.z.number(),
|
|
69
|
+
player_token: zod_1.z.number(),
|
|
70
|
+
walls: zod_1.z.number(),
|
|
71
|
+
}),
|
|
72
|
+
origin_offset: zod_1.z.array(zod_1.z.number()),
|
|
73
|
+
tutorial_scroll_duration: zod_1.z.number(),
|
|
74
|
+
tutorial_scroll_duration_base: zod_1.z.number(),
|
|
75
|
+
tutorial_scroll_duration_factor: zod_1.z.number(),
|
|
76
|
+
}),
|
|
77
|
+
active_platforms: zod_1.z.object({
|
|
78
|
+
ios: zod_1.z.number(),
|
|
79
|
+
canvas: zod_1.z.string(),
|
|
80
|
+
android: zod_1.z.number(),
|
|
81
|
+
amazon: zod_1.z.number(),
|
|
82
|
+
windows: zod_1.z.number(),
|
|
83
|
+
}),
|
|
84
|
+
episodes: zod_1.z.array(zod_1.z.number()),
|
|
85
|
+
board_size: zod_1.z.array(zod_1.z.number()),
|
|
86
|
+
initial_square_id: zod_1.z.number(),
|
|
87
|
+
backgrounds: zod_1.z.array(zod_1.z.number()),
|
|
88
|
+
background_plist: zod_1.z.string(),
|
|
89
|
+
foregrounds: zod_1.z.array(zod_1.z.any()),
|
|
90
|
+
foregrounds_plists: zod_1.z.array(zod_1.z.any()),
|
|
91
|
+
}).strict().transform(data => {
|
|
92
|
+
return {
|
|
93
|
+
id: data.id,
|
|
94
|
+
min_level: data.min_level,
|
|
95
|
+
availability: {
|
|
96
|
+
from: new Date(data.start_ts * 1000).toISOString(),
|
|
97
|
+
to: new Date(data.end_ts * 1000).toISOString(),
|
|
98
|
+
},
|
|
99
|
+
name_key: data.tid_name,
|
|
100
|
+
sound_tag: data.sound_tag,
|
|
101
|
+
zip_file_name: node_path_1.default.basename(data.zip_file),
|
|
102
|
+
currency_id: data.currency_id,
|
|
103
|
+
pool: {
|
|
104
|
+
points: data.pool_points,
|
|
105
|
+
time: data.pool_time,
|
|
106
|
+
},
|
|
107
|
+
initial_points: data.initial_points,
|
|
108
|
+
board_size: {
|
|
109
|
+
width: data.board_size[0],
|
|
110
|
+
height: data.board_size[1],
|
|
111
|
+
},
|
|
112
|
+
initial_square_id: data.initial_square_id,
|
|
113
|
+
episode_ids: data.episodes,
|
|
114
|
+
};
|
|
115
|
+
});
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
export declare const gridIslandsSquareSchema: z.ZodPipe<z.ZodObject<{
|
|
3
|
+
id: z.ZodNumber;
|
|
4
|
+
type: z.ZodString;
|
|
5
|
+
type_id: z.ZodOptional<z.ZodNumber>;
|
|
6
|
+
highlight: z.ZodNumber;
|
|
7
|
+
x: z.ZodNumber;
|
|
8
|
+
y: z.ZodNumber;
|
|
9
|
+
island_id: z.ZodNumber;
|
|
10
|
+
episode_id: z.ZodNumber;
|
|
11
|
+
claim_cost: z.ZodNumber;
|
|
12
|
+
wall: z.ZodOptional<z.ZodString>;
|
|
13
|
+
wall_suffix: z.ZodOptional<z.ZodString>;
|
|
14
|
+
}, z.core.$strict>, z.ZodTransform<{
|
|
15
|
+
id: number;
|
|
16
|
+
type: string;
|
|
17
|
+
reward: {
|
|
18
|
+
chest_id: number | undefined;
|
|
19
|
+
type: string;
|
|
20
|
+
} | {
|
|
21
|
+
dragon_id: number | undefined;
|
|
22
|
+
type: string;
|
|
23
|
+
} | null;
|
|
24
|
+
highlight: number;
|
|
25
|
+
x: number;
|
|
26
|
+
y: number;
|
|
27
|
+
claim_cost: number;
|
|
28
|
+
wall: string | undefined;
|
|
29
|
+
wall_suffix: string | undefined;
|
|
30
|
+
}, {
|
|
31
|
+
id: number;
|
|
32
|
+
type: string;
|
|
33
|
+
highlight: number;
|
|
34
|
+
x: number;
|
|
35
|
+
y: number;
|
|
36
|
+
island_id: number;
|
|
37
|
+
episode_id: number;
|
|
38
|
+
claim_cost: number;
|
|
39
|
+
type_id?: number | undefined;
|
|
40
|
+
wall?: string | undefined;
|
|
41
|
+
wall_suffix?: string | undefined;
|
|
42
|
+
}>>;
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.gridIslandsSquareSchema = void 0;
|
|
4
|
+
const zod_1 = require("zod");
|
|
5
|
+
exports.gridIslandsSquareSchema = zod_1.z.object({
|
|
6
|
+
id: zod_1.z.number(),
|
|
7
|
+
type: zod_1.z.string(),
|
|
8
|
+
type_id: zod_1.z.number().optional(),
|
|
9
|
+
highlight: zod_1.z.number(),
|
|
10
|
+
x: zod_1.z.number(),
|
|
11
|
+
y: zod_1.z.number(),
|
|
12
|
+
island_id: zod_1.z.number(),
|
|
13
|
+
episode_id: zod_1.z.number(),
|
|
14
|
+
claim_cost: zod_1.z.number(),
|
|
15
|
+
wall: zod_1.z.string().optional(),
|
|
16
|
+
wall_suffix: zod_1.z.string().optional()
|
|
17
|
+
}).strict().transform(data => {
|
|
18
|
+
return {
|
|
19
|
+
id: data.id,
|
|
20
|
+
type: data.type,
|
|
21
|
+
reward: data.type === "NONE" ? null : {
|
|
22
|
+
type: data.type.toLowerCase(),
|
|
23
|
+
...(data.type === "CHEST" ? {
|
|
24
|
+
chest_id: data.type_id,
|
|
25
|
+
} : {
|
|
26
|
+
dragon_id: data.type_id,
|
|
27
|
+
})
|
|
28
|
+
},
|
|
29
|
+
highlight: data.highlight,
|
|
30
|
+
x: data.x,
|
|
31
|
+
y: data.y,
|
|
32
|
+
claim_cost: data.claim_cost,
|
|
33
|
+
wall: data.wall,
|
|
34
|
+
wall_suffix: data.wall_suffix,
|
|
35
|
+
};
|
|
36
|
+
});
|
|
@@ -58,7 +58,6 @@ exports.mazeIslandSchema = zod_1.z.object({
|
|
|
58
58
|
},
|
|
59
59
|
initial_points: data.initial_points,
|
|
60
60
|
min_level: data.min_level,
|
|
61
|
-
mobile_tutorial_id: data.mobile_tutorial_id,
|
|
62
61
|
zip_file_name: node_path_1.default.basename(data.zip_file),
|
|
63
62
|
sound_tag: data.sound_tag,
|
|
64
63
|
};
|
|
@@ -52,7 +52,6 @@ export declare const towerIslandSchema: z.ZodPipe<z.ZodObject<{
|
|
|
52
52
|
initial_points: number;
|
|
53
53
|
currency_id: number;
|
|
54
54
|
min_level: number;
|
|
55
|
-
tower_size: number[];
|
|
56
55
|
zip_file_name: string;
|
|
57
56
|
sound_tag: string;
|
|
58
57
|
max_die_roll: number;
|
|
@@ -60,6 +59,10 @@ export declare const towerIslandSchema: z.ZodPipe<z.ZodObject<{
|
|
|
60
59
|
square_ids: number[];
|
|
61
60
|
floor_ids: number[];
|
|
62
61
|
reward_ids: number[];
|
|
62
|
+
board_size: {
|
|
63
|
+
width: number;
|
|
64
|
+
height: number;
|
|
65
|
+
};
|
|
63
66
|
}, {
|
|
64
67
|
id: number;
|
|
65
68
|
analytics_id: string;
|
|
@@ -61,7 +61,6 @@ exports.towerIslandSchema = zod_1.z.object({
|
|
|
61
61
|
initial_points: data.initial_points,
|
|
62
62
|
currency_id: data.currency_id,
|
|
63
63
|
min_level: data.min_level,
|
|
64
|
-
tower_size: data.tower_size,
|
|
65
64
|
zip_file_name: node_path_1.default.basename(data.zip_file),
|
|
66
65
|
sound_tag: data.sound_tag,
|
|
67
66
|
max_die_roll: data.max_die_roll,
|
|
@@ -69,5 +68,9 @@ exports.towerIslandSchema = zod_1.z.object({
|
|
|
69
68
|
square_ids: data.square_ids,
|
|
70
69
|
floor_ids: data.floor_ids,
|
|
71
70
|
reward_ids: data.reward_ids,
|
|
71
|
+
board_size: {
|
|
72
|
+
width: data.tower_size[0],
|
|
73
|
+
height: data.tower_size[1],
|
|
74
|
+
},
|
|
72
75
|
};
|
|
73
76
|
});
|
package/dist/utils/index.d.ts
CHANGED
package/dist/utils/index.js
CHANGED
|
@@ -19,3 +19,4 @@ __exportStar(require("./record-keys-conversor.util"), exports);
|
|
|
19
19
|
__exportStar(require("./element-map.util"), exports);
|
|
20
20
|
__exportStar(require("./process-rewards.util"), exports);
|
|
21
21
|
__exportStar(require("./process-price.util"), exports);
|
|
22
|
+
__exportStar(require("./resolve-grid-decoration-positions.util"), exports);
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { GameConfigDto } from "@dchighs/dc-config";
|
|
2
|
+
type Square = GameConfigDto["game_data"]["config"]["grid_island"]["squares"][number];
|
|
3
|
+
type Decoration = GameConfigDto["game_data"]["config"]["grid_island"]["decorations"][number];
|
|
4
|
+
type resolveGridDecorationpositionsOptions = {
|
|
5
|
+
squares: Square[];
|
|
6
|
+
decorations: Decoration[];
|
|
7
|
+
boardSize: {
|
|
8
|
+
width: number;
|
|
9
|
+
height: number;
|
|
10
|
+
};
|
|
11
|
+
};
|
|
12
|
+
export declare function resolveGridDecorationPositions({ squares, decorations, boardSize }: resolveGridDecorationpositionsOptions): {
|
|
13
|
+
id: number;
|
|
14
|
+
file: string;
|
|
15
|
+
x: number;
|
|
16
|
+
y: number;
|
|
17
|
+
island_id: number;
|
|
18
|
+
episode_id: number;
|
|
19
|
+
}[];
|
|
20
|
+
export {};
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.resolveGridDecorationPositions = resolveGridDecorationPositions;
|
|
4
|
+
function resolveGridDecorationPositions({ squares, decorations, boardSize }) {
|
|
5
|
+
const squaresBoard = [];
|
|
6
|
+
for (const square of squares) {
|
|
7
|
+
squaresBoard.push(`${square.x},${square.y}`);
|
|
8
|
+
}
|
|
9
|
+
const decorationPositions = [];
|
|
10
|
+
const resolvedDecorations = [];
|
|
11
|
+
for (let x = 1; x < boardSize.width + 1; x++) {
|
|
12
|
+
for (let y = 1; y < boardSize.height + 1; y++) {
|
|
13
|
+
if (!squaresBoard.includes(`${x},${y}`)) {
|
|
14
|
+
decorationPositions.push(`${x},${y}`);
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
if (decorationPositions.length !== decorations.length) {
|
|
19
|
+
throw new Error("Number of decoration positions does not match number of decorations");
|
|
20
|
+
}
|
|
21
|
+
for (let i = 0; i < decorations.length; i++) {
|
|
22
|
+
const decorationPosition = decorationPositions[i];
|
|
23
|
+
const [x, y] = decorationPosition.split(",").map(Number);
|
|
24
|
+
resolvedDecorations.push({
|
|
25
|
+
...decorations[i],
|
|
26
|
+
x: x,
|
|
27
|
+
y: y
|
|
28
|
+
});
|
|
29
|
+
}
|
|
30
|
+
return resolvedDecorations;
|
|
31
|
+
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@dchighs/dc-config-mapper",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.3.1",
|
|
4
4
|
"description": "A opined library to restructure and populate configuration for Dragon City.",
|
|
5
5
|
"main": "./dist/index.js",
|
|
6
6
|
"module": "./dist/index.js",
|
|
@@ -17,7 +17,8 @@
|
|
|
17
17
|
"dc highs"
|
|
18
18
|
],
|
|
19
19
|
"scripts": {
|
|
20
|
-
"build": "tsc"
|
|
20
|
+
"build": "tsc",
|
|
21
|
+
"playground": "ts-node ./playground/index.ts"
|
|
21
22
|
},
|
|
22
23
|
"author": "Marcuth",
|
|
23
24
|
"license": "MIT",
|