@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 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.USER_ID
33
- const authToken = process.env.AUTH_TOKEN
34
- const url = process.env.URL
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 = {}));
@@ -20,6 +20,7 @@ export declare class ChestsMapper {
20
20
  dragon_ids?: number[];
21
21
  building_id?: number;
22
22
  orb_dragon_id?: number;
23
+ size?: string;
23
24
  } | undefined;
24
25
  building_ids: number[] | undefined;
25
26
  eggs_ids: number[] | undefined;
@@ -41,6 +41,7 @@ export declare class HeroicRacesMapper {
41
41
  dragon_ids?: number[];
42
42
  building_id?: number;
43
43
  orb_dragon_id?: number;
44
+ size?: string;
44
45
  }[];
45
46
  }[];
46
47
  encounters: {
@@ -114,6 +114,7 @@ export declare class MazeIslandsMapper {
114
114
  dragon_ids?: number[];
115
115
  building_id?: number;
116
116
  orb_dragon_id?: number;
117
+ size?: string;
117
118
  }[] | undefined;
118
119
  is_highlighted: boolean | undefined;
119
120
  key_path_id: number | undefined;
@@ -91,6 +91,7 @@ export declare class RunnerIslandsMapper {
91
91
  dragon_ids?: number[];
92
92
  building_id?: number;
93
93
  orb_dragon_id?: number;
94
+ size?: string;
94
95
  }[];
95
96
  type_id: number;
96
97
  double_with_video_ad: boolean | undefined;
@@ -56,6 +56,7 @@ export declare class TowerIslandsMapper {
56
56
  dragon_ids?: number[];
57
57
  building_id?: number;
58
58
  orb_dragon_id?: number;
59
+ size?: string;
59
60
  }[] | null;
60
61
  wall: string | undefined;
61
62
  catapult_destination_square_id: number | undefined;
@@ -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;
@@ -54,6 +54,7 @@ export declare const chestRewardSchema: z.ZodPipe<z.ZodObject<{
54
54
  dragon_ids?: number[];
55
55
  building_id?: number;
56
56
  orb_dragon_id?: number;
57
+ size?: string;
57
58
  } | undefined;
58
59
  building_ids: number[] | undefined;
59
60
  eggs_ids: number[] | undefined;
@@ -18,6 +18,7 @@ export declare const heroicRacesRewardSchema: z.ZodPipe<z.ZodObject<{
18
18
  dragon_ids?: number[];
19
19
  building_id?: number;
20
20
  orb_dragon_id?: number;
21
+ size?: string;
21
22
  }[];
22
23
  }, {
23
24
  id: number;
@@ -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(),
@@ -43,6 +43,7 @@ export declare const runnerIslandsRewardSchema: z.ZodPipe<z.ZodObject<{
43
43
  dragon_ids?: number[];
44
44
  building_id?: number;
45
45
  orb_dragon_id?: number;
46
+ size?: string;
46
47
  }[];
47
48
  type_id: number;
48
49
  double_with_video_ad: boolean | undefined;
@@ -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;
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.isBlankObject = isBlankObject;
4
+ function isBlankObject(object) {
5
+ return Object.keys(object).length === 0;
6
+ }
@@ -7,7 +7,12 @@ type Reward = {
7
7
  id: number;
8
8
  amount: number;
9
9
  }[];
10
- } & Omit<Partial<Record<RewardAcronym, number>>, "egg" | "seeds">;
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 rewards) {
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
- processedRewards.push({
49
- type: reward_type_enum_1.RewardType.Building,
50
- building_id: reward.b,
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 < rewards.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.7",
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
- "playground": "ts-node ./playground/index.ts"
22
- },
23
- "author": "Marcuth",
24
- "license": "MIT",
25
- "type": "commonjs",
26
- "devDependencies": {
27
- "@marcuth/env": "^0.0.1",
28
- "@types/lodash": "^4.17.21",
29
- "@types/node": "^25.0.3",
30
- "@types/pluralize": "^0.0.33",
31
- "ts-node": "^10.9.2",
32
- "typescript": "^5.9.3"
33
- },
34
- "dependencies": {
35
- "lodash": "^4.17.21",
36
- "pluralize": "^8.0.0",
37
- "zod": "^4.3.5"
38
- },
39
- "peerDependencies": {
40
- "@dchighs/dc-config": "^0.0.1",
41
- "@dchighs/dc-core": "^0.2.0",
42
- "@dchighs/dc-localization": "^0.0.5"
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,11 +0,0 @@
1
- export declare enum RewardResourceType {
2
- Food = "food",
3
- Gold = "gold",
4
- Gem = "gem",
5
- Xp = "xp",
6
- HabitatToken = "habitat_token",
7
- Dragon = "dragon",
8
- IslandCoin = "island_coin",
9
- Chest = "chest",
10
- Building = "building"
11
- }
@@ -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 = {}));