@dchighs/dc-config-mapper 0.5.7 → 0.5.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +3 -3
- package/dist/enums/reward-acronym.enum.d.ts +5 -1
- package/dist/enums/reward-acronym.enum.js +4 -0
- package/dist/enums/reward-type.enum.d.ts +3 -1
- package/dist/enums/reward-type.enum.js +2 -0
- package/dist/mappers/chest.mapper.d.ts +1 -0
- package/dist/mappers/heroic-races.mapper.d.ts +1 -0
- package/dist/mappers/maze-islands.mapper.d.ts +1 -0
- package/dist/mappers/runner-islands.mapper.d.ts +1 -0
- package/dist/mappers/tower-islands.mapper.d.ts +1 -0
- package/dist/schemas/chests/chest.schema.d.ts +3 -0
- package/dist/schemas/chests/reward.schema.d.ts +1 -0
- package/dist/schemas/islands/heroic-races/reward.schema.d.ts +1 -0
- package/dist/schemas/islands/maze-islands/node.schema.d.ts +3 -2
- package/dist/schemas/islands/maze-islands/node.schema.js +1 -1
- package/dist/schemas/islands/runner-islands/reward.schema.d.ts +1 -0
- package/dist/schemas/islands/tower-islands/square.schema.d.ts +1 -0
- package/dist/utils/is-blank-object.d.ts +1 -0
- package/dist/utils/is-blank-object.js +6 -0
- package/dist/utils/process-rewards.util.d.ts +7 -1
- package/dist/utils/process-rewards.util.js +44 -6
- package/package.json +47 -44
- package/dist/enums/reward-resource-type.enum.d.ts +0 -11
- package/dist/enums/reward-resource-type.enum.js +0 -15
package/README.md
CHANGED
|
@@ -29,9 +29,9 @@ import { ChestsMapper } from "@dchighs/dc-config-mapper"
|
|
|
29
29
|
import { Localization } from "@dchighs/dc-localization"
|
|
30
30
|
|
|
31
31
|
;(async () => {
|
|
32
|
-
const userId = process.env.
|
|
33
|
-
const authToken = process.env.
|
|
34
|
-
const url = process.env.
|
|
32
|
+
const userId = process.env.GAME_GAME_USER_ID
|
|
33
|
+
const authToken = process.env.GAME_GAME_AUTH_TOKEN
|
|
34
|
+
const url = process.env.GAME_CONFIG_URL
|
|
35
35
|
|
|
36
36
|
const config = await Config.create({
|
|
37
37
|
userId: userId,
|
|
@@ -28,5 +28,9 @@ export declare enum RewardAcronym {
|
|
|
28
28
|
DreamToken = "dr_token",
|
|
29
29
|
EventPoints = "ep",
|
|
30
30
|
Seeds = "seeds",
|
|
31
|
-
RunnerIslandEnergy = "en_runner"
|
|
31
|
+
RunnerIslandEnergy = "en_runner",
|
|
32
|
+
PetFoodPackSmall = "pet_food_pack.s",
|
|
33
|
+
PetFoodPackMedium = "pet_food_pack.m",
|
|
34
|
+
PetFoodPackLarge = "pet_food_pack.l",
|
|
35
|
+
PetFoodPackExtraLarge = "pet_food_pack.xl"
|
|
32
36
|
}
|
|
@@ -33,4 +33,8 @@ var RewardAcronym;
|
|
|
33
33
|
RewardAcronym["EventPoints"] = "ep";
|
|
34
34
|
RewardAcronym["Seeds"] = "seeds";
|
|
35
35
|
RewardAcronym["RunnerIslandEnergy"] = "en_runner";
|
|
36
|
+
RewardAcronym["PetFoodPackSmall"] = "pet_food_pack.s";
|
|
37
|
+
RewardAcronym["PetFoodPackMedium"] = "pet_food_pack.m";
|
|
38
|
+
RewardAcronym["PetFoodPackLarge"] = "pet_food_pack.l";
|
|
39
|
+
RewardAcronym["PetFoodPackExtraLarge"] = "pet_food_pack.xl";
|
|
36
40
|
})(RewardAcronym || (exports.RewardAcronym = RewardAcronym = {}));
|
|
@@ -9,5 +9,7 @@ export declare enum RewardType {
|
|
|
9
9
|
IslandCoin = "island_coin",
|
|
10
10
|
EventPoints = "event_points",
|
|
11
11
|
DragonOrbs = "dragon_orbs",
|
|
12
|
-
RunnerIslandEnergy = "runner_island_energy"
|
|
12
|
+
RunnerIslandEnergy = "runner_island_energy",
|
|
13
|
+
PetFoodPack = "pet_food_pack",
|
|
14
|
+
AlbumPackAces = "album_pack_aces"
|
|
13
15
|
}
|
|
@@ -14,4 +14,6 @@ var RewardType;
|
|
|
14
14
|
RewardType["EventPoints"] = "event_points";
|
|
15
15
|
RewardType["DragonOrbs"] = "dragon_orbs";
|
|
16
16
|
RewardType["RunnerIslandEnergy"] = "runner_island_energy";
|
|
17
|
+
RewardType["PetFoodPack"] = "pet_food_pack";
|
|
18
|
+
RewardType["AlbumPackAces"] = "album_pack_aces";
|
|
17
19
|
})(RewardType || (exports.RewardType = RewardType = {}));
|
|
@@ -57,6 +57,7 @@ export declare const chestSchema: z.ZodPipe<z.ZodObject<{
|
|
|
57
57
|
dragon_ids?: number[];
|
|
58
58
|
building_id?: number;
|
|
59
59
|
orb_dragon_id?: number;
|
|
60
|
+
size?: string;
|
|
60
61
|
} | undefined;
|
|
61
62
|
building_ids: number[] | undefined;
|
|
62
63
|
eggs_ids: number[] | undefined;
|
|
@@ -146,6 +147,7 @@ export declare const chestSchema: z.ZodPipe<z.ZodObject<{
|
|
|
146
147
|
dragon_ids?: number[];
|
|
147
148
|
building_id?: number;
|
|
148
149
|
orb_dragon_id?: number;
|
|
150
|
+
size?: string;
|
|
149
151
|
} | undefined;
|
|
150
152
|
building_ids: number[] | undefined;
|
|
151
153
|
eggs_ids: number[] | undefined;
|
|
@@ -191,6 +193,7 @@ export declare const chestSchema: z.ZodPipe<z.ZodObject<{
|
|
|
191
193
|
dragon_ids?: number[];
|
|
192
194
|
building_id?: number;
|
|
193
195
|
orb_dragon_id?: number;
|
|
196
|
+
size?: string;
|
|
194
197
|
} | undefined;
|
|
195
198
|
building_ids: number[] | undefined;
|
|
196
199
|
eggs_ids: number[] | undefined;
|
|
@@ -8,7 +8,7 @@ export declare const mazeIslandsNodeSchema: z.ZodPipe<z.ZodObject<{
|
|
|
8
8
|
reward_id: z.ZodOptional<z.ZodNumber>;
|
|
9
9
|
reward: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
10
10
|
chest: z.ZodOptional<z.ZodNumber>;
|
|
11
|
-
b: z.ZodOptional<z.ZodNumber
|
|
11
|
+
b: z.ZodOptional<z.ZodUnion<readonly [z.ZodNumber, z.ZodArray<z.ZodNumber>]>>;
|
|
12
12
|
f: z.ZodOptional<z.ZodNumber>;
|
|
13
13
|
g: z.ZodOptional<z.ZodNumber>;
|
|
14
14
|
}, z.core.$strip>>>;
|
|
@@ -30,6 +30,7 @@ export declare const mazeIslandsNodeSchema: z.ZodPipe<z.ZodObject<{
|
|
|
30
30
|
dragon_ids?: number[];
|
|
31
31
|
building_id?: number;
|
|
32
32
|
orb_dragon_id?: number;
|
|
33
|
+
size?: string;
|
|
33
34
|
}[] | undefined;
|
|
34
35
|
is_highlighted: boolean | undefined;
|
|
35
36
|
key_path_id: number | undefined;
|
|
@@ -44,7 +45,7 @@ export declare const mazeIslandsNodeSchema: z.ZodPipe<z.ZodObject<{
|
|
|
44
45
|
reward_id?: number | undefined;
|
|
45
46
|
reward?: {
|
|
46
47
|
chest?: number | undefined;
|
|
47
|
-
b?: number | undefined;
|
|
48
|
+
b?: number | number[] | undefined;
|
|
48
49
|
f?: number | undefined;
|
|
49
50
|
g?: number | undefined;
|
|
50
51
|
}[] | undefined;
|
|
@@ -12,7 +12,7 @@ exports.mazeIslandsNodeSchema = zod_1.z.object({
|
|
|
12
12
|
reward_id: zod_1.z.number().optional(),
|
|
13
13
|
reward: zod_1.z.array(zod_1.z.object({
|
|
14
14
|
chest: zod_1.z.number().optional(),
|
|
15
|
-
b: zod_1.z.number().optional(),
|
|
15
|
+
b: zod_1.z.union([zod_1.z.number(), zod_1.z.array(zod_1.z.number())]).optional(),
|
|
16
16
|
f: zod_1.z.number().optional(),
|
|
17
17
|
g: zod_1.z.number().optional(),
|
|
18
18
|
})).optional(),
|
|
@@ -30,6 +30,7 @@ export declare const towerIslandsSquareSchema: z.ZodPipe<z.ZodObject<{
|
|
|
30
30
|
dragon_ids?: number[];
|
|
31
31
|
building_id?: number;
|
|
32
32
|
orb_dragon_id?: number;
|
|
33
|
+
size?: string;
|
|
33
34
|
}[] | null;
|
|
34
35
|
wall: string | undefined;
|
|
35
36
|
catapult_destination_square_id: number | undefined;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function isBlankObject<T extends Record<string, any>>(object: T): boolean;
|
|
@@ -7,7 +7,12 @@ type Reward = {
|
|
|
7
7
|
id: number;
|
|
8
8
|
amount: number;
|
|
9
9
|
}[];
|
|
10
|
-
|
|
10
|
+
"pet_food_pack.s"?: number;
|
|
11
|
+
"pet_food_pack.m"?: number;
|
|
12
|
+
"pet_food_pack.l"?: number;
|
|
13
|
+
"pet_food_pack.xl"?: number;
|
|
14
|
+
b?: number | number[];
|
|
15
|
+
} & Omit<Partial<Record<RewardAcronym, number>>, "egg" | "seeds" | "b">;
|
|
11
16
|
type ProcessedReward = {
|
|
12
17
|
type: RewardType;
|
|
13
18
|
element?: DragonElement;
|
|
@@ -17,6 +22,7 @@ type ProcessedReward = {
|
|
|
17
22
|
dragon_ids?: number[];
|
|
18
23
|
building_id?: number;
|
|
19
24
|
orb_dragon_id?: number;
|
|
25
|
+
size?: string;
|
|
20
26
|
};
|
|
21
27
|
export declare function processRewards(rewards: Reward[]): ProcessedReward[];
|
|
22
28
|
export {};
|
|
@@ -3,9 +3,15 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.processRewards = processRewards;
|
|
4
4
|
const reward_type_enum_1 = require("../enums/reward-type.enum");
|
|
5
5
|
const element_map_util_1 = require("./element-map.util");
|
|
6
|
+
const is_blank_object_1 = require("./is-blank-object");
|
|
7
|
+
const petFoodPackSizes = ["s", "m", "l", "xl"];
|
|
6
8
|
function processRewards(rewards) {
|
|
9
|
+
const filteredRewards = rewards.filter(reward => !(0, is_blank_object_1.isBlankObject)(reward));
|
|
7
10
|
const processedRewards = [];
|
|
8
|
-
for (const reward of
|
|
11
|
+
for (const reward of filteredRewards) {
|
|
12
|
+
if ((0, is_blank_object_1.isBlankObject)(reward)) {
|
|
13
|
+
continue;
|
|
14
|
+
}
|
|
9
15
|
if (reward.chest) {
|
|
10
16
|
processedRewards.push({
|
|
11
17
|
type: reward_type_enum_1.RewardType.Chest,
|
|
@@ -45,10 +51,18 @@ function processRewards(rewards) {
|
|
|
45
51
|
});
|
|
46
52
|
}
|
|
47
53
|
if (reward.b) {
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
54
|
+
if (Array.isArray(reward.b)) {
|
|
55
|
+
processedRewards.push({
|
|
56
|
+
type: reward_type_enum_1.RewardType.Building,
|
|
57
|
+
building_id: reward.b[0],
|
|
58
|
+
});
|
|
59
|
+
}
|
|
60
|
+
else {
|
|
61
|
+
processedRewards.push({
|
|
62
|
+
type: reward_type_enum_1.RewardType.Building,
|
|
63
|
+
building_id: reward.b,
|
|
64
|
+
});
|
|
65
|
+
}
|
|
52
66
|
}
|
|
53
67
|
if (reward.ep) {
|
|
54
68
|
processedRewards.push({
|
|
@@ -83,8 +97,32 @@ function processRewards(rewards) {
|
|
|
83
97
|
amount: reward[key],
|
|
84
98
|
});
|
|
85
99
|
}
|
|
100
|
+
if (Object.keys(reward).some(key => petFoodPackSizes.some(size => key === `pet_food_pack.${size}`))) {
|
|
101
|
+
for (const size of petFoodPackSizes) {
|
|
102
|
+
const key = `pet_food_pack.${size}`;
|
|
103
|
+
if (key in reward) {
|
|
104
|
+
processedRewards.push({
|
|
105
|
+
type: reward_type_enum_1.RewardType.PetFoodPack,
|
|
106
|
+
size,
|
|
107
|
+
amount: reward[key],
|
|
108
|
+
});
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
if (Object.keys(reward).some(key => key.startsWith("album_pack_aces."))) {
|
|
113
|
+
const key = Object.keys(reward).find(key => key.startsWith("album_pack_aces."));
|
|
114
|
+
const size = key === null || key === void 0 ? void 0 : key.split(".").pop();
|
|
115
|
+
if (!size) {
|
|
116
|
+
throw new Error("Invalid reward");
|
|
117
|
+
}
|
|
118
|
+
processedRewards.push({
|
|
119
|
+
type: reward_type_enum_1.RewardType.AlbumPackAces,
|
|
120
|
+
size: size,
|
|
121
|
+
amount: reward[key],
|
|
122
|
+
});
|
|
123
|
+
}
|
|
86
124
|
}
|
|
87
|
-
if (processedRewards.length <
|
|
125
|
+
if (processedRewards.length < filteredRewards.length) {
|
|
88
126
|
throw new Error(`Not processed correctly: ${JSON.stringify(rewards)} -> ${JSON.stringify(processedRewards)}`);
|
|
89
127
|
}
|
|
90
128
|
return processedRewards;
|
package/package.json
CHANGED
|
@@ -1,44 +1,47 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "@dchighs/dc-config-mapper",
|
|
3
|
-
"version": "0.5.
|
|
4
|
-
"description": "A opined library to restructure and populate configuration for Dragon City.",
|
|
5
|
-
"main": "./dist/index.js",
|
|
6
|
-
"module": "./dist/index.js",
|
|
7
|
-
"types": "./dist/index.d.ts",
|
|
8
|
-
"files": [
|
|
9
|
-
"dist/*",
|
|
10
|
-
"!/**/__tests__"
|
|
11
|
-
],
|
|
12
|
-
"keywords": [
|
|
13
|
-
"dragon city",
|
|
14
|
-
"dc",
|
|
15
|
-
"configuration",
|
|
16
|
-
"mapper",
|
|
17
|
-
"dc highs"
|
|
18
|
-
],
|
|
19
|
-
"scripts": {
|
|
20
|
-
"build": "tsc",
|
|
21
|
-
"
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
"
|
|
25
|
-
"
|
|
26
|
-
"
|
|
27
|
-
|
|
28
|
-
"@
|
|
29
|
-
"@types/
|
|
30
|
-
"@types/
|
|
31
|
-
"
|
|
32
|
-
"
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
"
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
"
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
1
|
+
{
|
|
2
|
+
"name": "@dchighs/dc-config-mapper",
|
|
3
|
+
"version": "0.5.9",
|
|
4
|
+
"description": "A opined library to restructure and populate configuration for Dragon City.",
|
|
5
|
+
"main": "./dist/index.js",
|
|
6
|
+
"module": "./dist/index.js",
|
|
7
|
+
"types": "./dist/index.d.ts",
|
|
8
|
+
"files": [
|
|
9
|
+
"dist/*",
|
|
10
|
+
"!/**/__tests__"
|
|
11
|
+
],
|
|
12
|
+
"keywords": [
|
|
13
|
+
"dragon city",
|
|
14
|
+
"dc",
|
|
15
|
+
"configuration",
|
|
16
|
+
"mapper",
|
|
17
|
+
"dc highs"
|
|
18
|
+
],
|
|
19
|
+
"scripts": {
|
|
20
|
+
"build": "tsc",
|
|
21
|
+
"test": "vitest run",
|
|
22
|
+
"playground": "ts-node ./playground/index.ts"
|
|
23
|
+
},
|
|
24
|
+
"author": "Marcuth",
|
|
25
|
+
"license": "MIT",
|
|
26
|
+
"type": "commonjs",
|
|
27
|
+
"devDependencies": {
|
|
28
|
+
"@marcuth/env": "^0.0.1",
|
|
29
|
+
"@types/lodash": "^4.17.24",
|
|
30
|
+
"@types/node": "^25.3.3",
|
|
31
|
+
"@types/pluralize": "^0.0.33",
|
|
32
|
+
"ts-morph": "^27.0.2",
|
|
33
|
+
"ts-node": "^10.9.2",
|
|
34
|
+
"typescript": "^5.9.3",
|
|
35
|
+
"vitest": "^4.0.18"
|
|
36
|
+
},
|
|
37
|
+
"dependencies": {
|
|
38
|
+
"lodash": "^4.17.23",
|
|
39
|
+
"pluralize": "^8.0.0",
|
|
40
|
+
"zod": "^4.3.6"
|
|
41
|
+
},
|
|
42
|
+
"peerDependencies": {
|
|
43
|
+
"@dchighs/dc-config": "^0.0.6",
|
|
44
|
+
"@dchighs/dc-core": "^0.3.0",
|
|
45
|
+
"@dchighs/dc-localization": "^0.0.6"
|
|
46
|
+
}
|
|
47
|
+
}
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.RewardResourceType = void 0;
|
|
4
|
-
var RewardResourceType;
|
|
5
|
-
(function (RewardResourceType) {
|
|
6
|
-
RewardResourceType["Food"] = "food";
|
|
7
|
-
RewardResourceType["Gold"] = "gold";
|
|
8
|
-
RewardResourceType["Gem"] = "gem";
|
|
9
|
-
RewardResourceType["Xp"] = "xp";
|
|
10
|
-
RewardResourceType["HabitatToken"] = "habitat_token";
|
|
11
|
-
RewardResourceType["Dragon"] = "dragon";
|
|
12
|
-
RewardResourceType["IslandCoin"] = "island_coin";
|
|
13
|
-
RewardResourceType["Chest"] = "chest";
|
|
14
|
-
RewardResourceType["Building"] = "building";
|
|
15
|
-
})(RewardResourceType || (exports.RewardResourceType = RewardResourceType = {}));
|