@wfcd/relics 1.0.0 → 2.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.d.ts +235 -3
- package/dist/index.js +261 -18
- package/dist/index.mjs +231 -0
- package/package.json +26 -11
- package/dist/Build.d.ts +0 -1
- package/dist/Build.js +0 -30
- package/dist/Build.js.map +0 -1
- package/dist/Config.d.ts +0 -8
- package/dist/Config.js +0 -11
- package/dist/Config.js.map +0 -1
- package/dist/Generator.d.ts +0 -41
- package/dist/Generator.js +0 -151
- package/dist/Generator.js.map +0 -1
- package/dist/Logger.d.ts +0 -9
- package/dist/Logger.js +0 -72
- package/dist/Logger.js.map +0 -1
- package/dist/Types.d.ts +0 -176
- package/dist/Types.js +0 -3
- package/dist/Types.js.map +0 -1
- package/dist/VersionManager.d.ts +0 -21
- package/dist/VersionManager.js +0 -79
- package/dist/VersionManager.js.map +0 -1
- package/dist/index.js.map +0 -1
package/dist/Types.d.ts
DELETED
|
@@ -1,176 +0,0 @@
|
|
|
1
|
-
export interface WarframeMarketRoot {
|
|
2
|
-
payload: {
|
|
3
|
-
items: Array<WarframeMarketItem>;
|
|
4
|
-
};
|
|
5
|
-
}
|
|
6
|
-
export interface WarframeMarketItem {
|
|
7
|
-
/**
|
|
8
|
-
* WFM Item ID
|
|
9
|
-
*/
|
|
10
|
-
id: string;
|
|
11
|
-
/**
|
|
12
|
-
* Url name for querying WFM
|
|
13
|
-
*/
|
|
14
|
-
url_name: string;
|
|
15
|
-
/**
|
|
16
|
-
* Thumbnail URL relative to wfm api base
|
|
17
|
-
*/
|
|
18
|
-
thumb: string;
|
|
19
|
-
/**
|
|
20
|
-
* Item Name
|
|
21
|
-
*/
|
|
22
|
-
item_name: string;
|
|
23
|
-
}
|
|
24
|
-
export interface WFCDRelic {
|
|
25
|
-
/**
|
|
26
|
-
* Relic Tier (Axi, Neo, etc.)
|
|
27
|
-
*/
|
|
28
|
-
tier: string;
|
|
29
|
-
/**
|
|
30
|
-
* Relic Name (A1, A10, etc.)
|
|
31
|
-
*/
|
|
32
|
-
relicName: string;
|
|
33
|
-
/**
|
|
34
|
-
* Relic Refinement state
|
|
35
|
-
*/
|
|
36
|
-
state: 'Intact' | 'Exceptional' | 'Flawless' | 'Radiant';
|
|
37
|
-
/**
|
|
38
|
-
* Relic Rewards
|
|
39
|
-
*/
|
|
40
|
-
rewards: Array<WFCDRelicReward>;
|
|
41
|
-
/**
|
|
42
|
-
* Internal WFCD id
|
|
43
|
-
*/
|
|
44
|
-
_id: string;
|
|
45
|
-
}
|
|
46
|
-
export interface WFCDRelicReward {
|
|
47
|
-
/**
|
|
48
|
-
* Dropped Item name
|
|
49
|
-
*/
|
|
50
|
-
itemName: string;
|
|
51
|
-
/**
|
|
52
|
-
* Dropchance Rarity (Uncommon/Rare ?)
|
|
53
|
-
*/
|
|
54
|
-
rarity: 'Uncommon' | 'Rare';
|
|
55
|
-
/**
|
|
56
|
-
* Actual Dropchance in %
|
|
57
|
-
*/
|
|
58
|
-
chance: number;
|
|
59
|
-
/**
|
|
60
|
-
* Internal ID
|
|
61
|
-
*/
|
|
62
|
-
_id: string;
|
|
63
|
-
}
|
|
64
|
-
export interface WFCDItem {
|
|
65
|
-
/**
|
|
66
|
-
* Item Name
|
|
67
|
-
*/
|
|
68
|
-
name: string;
|
|
69
|
-
/** Unique identifying name */
|
|
70
|
-
uniqueName: string;
|
|
71
|
-
/**
|
|
72
|
-
* Item Drop Location
|
|
73
|
-
*/
|
|
74
|
-
drops?: Array<WFCDItemDropLocation>;
|
|
75
|
-
}
|
|
76
|
-
export interface WFCDItemDropLocation {
|
|
77
|
-
/**
|
|
78
|
-
* Dropchance in %
|
|
79
|
-
*/
|
|
80
|
-
chance: number;
|
|
81
|
-
/**
|
|
82
|
-
* Mission location
|
|
83
|
-
*/
|
|
84
|
-
location: string;
|
|
85
|
-
/**
|
|
86
|
-
* Drop rarity
|
|
87
|
-
*/
|
|
88
|
-
rarity: string;
|
|
89
|
-
/**
|
|
90
|
-
* Relic Type
|
|
91
|
-
*/
|
|
92
|
-
type: string;
|
|
93
|
-
}
|
|
94
|
-
export interface TitaniaRelic {
|
|
95
|
-
/**
|
|
96
|
-
* Relic Combined Name (Ex: Axi A1)
|
|
97
|
-
*/
|
|
98
|
-
name: string;
|
|
99
|
-
/**
|
|
100
|
-
* Relic Rewards when opened
|
|
101
|
-
*/
|
|
102
|
-
rewards: Array<TitaniaRelicReward>;
|
|
103
|
-
/**
|
|
104
|
-
* Drop Locations for the relics
|
|
105
|
-
*/
|
|
106
|
-
locations: Array<TitaniaRelicLocation>;
|
|
107
|
-
/**
|
|
108
|
-
* Warframe Market Information
|
|
109
|
-
* undefined for untradable
|
|
110
|
-
*/
|
|
111
|
-
warframeMarket?: TitaniaWFMInfo;
|
|
112
|
-
/**
|
|
113
|
-
* Relic Vault Information
|
|
114
|
-
*/
|
|
115
|
-
vaultInfo: TitaniaRelicVaultedInfo;
|
|
116
|
-
/** unique name for corresponding warframe-items Item */
|
|
117
|
-
uniqueName: string;
|
|
118
|
-
}
|
|
119
|
-
export interface TitaniaRelicReward {
|
|
120
|
-
/**
|
|
121
|
-
* Relic Rarity (Uncommon,Rare ?)
|
|
122
|
-
*/
|
|
123
|
-
rarity: 'Uncommon' | 'Rare';
|
|
124
|
-
/**
|
|
125
|
-
* Reward Drop Chance in %
|
|
126
|
-
*/
|
|
127
|
-
chance: number;
|
|
128
|
-
/**
|
|
129
|
-
* Item Information
|
|
130
|
-
*/
|
|
131
|
-
item: TitaniaRelicRewardItem;
|
|
132
|
-
}
|
|
133
|
-
export interface TitaniaRelicRewardItem {
|
|
134
|
-
/**
|
|
135
|
-
* Item Name
|
|
136
|
-
*/
|
|
137
|
-
name: string;
|
|
138
|
-
/** unique name for corresponding warframe-items Item */
|
|
139
|
-
uniqueName: string;
|
|
140
|
-
/**
|
|
141
|
-
* WarframeMarket Info
|
|
142
|
-
*/
|
|
143
|
-
warframeMarket?: TitaniaWFMInfo;
|
|
144
|
-
}
|
|
145
|
-
export interface TitaniaRelicLocation {
|
|
146
|
-
/** Location Info $planet-$node (Ex: Eris - Phalan) */
|
|
147
|
-
location: string;
|
|
148
|
-
/**
|
|
149
|
-
* Rarity (Uncommon, Rare ?)
|
|
150
|
-
*/
|
|
151
|
-
rarity: 'Uncommon' | 'Rare' | 'Legendary' | 'Common' | string;
|
|
152
|
-
/**
|
|
153
|
-
* Dropchance in %
|
|
154
|
-
*/
|
|
155
|
-
chance: number;
|
|
156
|
-
}
|
|
157
|
-
export interface TitaniaWFMInfo {
|
|
158
|
-
/**
|
|
159
|
-
* Warframe Market ID
|
|
160
|
-
*/
|
|
161
|
-
id: string;
|
|
162
|
-
/**
|
|
163
|
-
* Warframe market URL parameter
|
|
164
|
-
*/
|
|
165
|
-
urlName: string;
|
|
166
|
-
}
|
|
167
|
-
export interface TitaniaRelicVaultedInfo {
|
|
168
|
-
/**
|
|
169
|
-
* If the relic is vaulted
|
|
170
|
-
*/
|
|
171
|
-
vaulted: boolean;
|
|
172
|
-
/**
|
|
173
|
-
* Vaulted Date
|
|
174
|
-
*/
|
|
175
|
-
vaultDate: string;
|
|
176
|
-
}
|
package/dist/Types.js
DELETED
package/dist/Types.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Types.js","sourceRoot":"","sources":["../src/Types.ts"],"names":[],"mappings":""}
|
package/dist/VersionManager.d.ts
DELETED
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
export declare class VersionManager {
|
|
2
|
-
versionPath: string;
|
|
3
|
-
versionRawPath: string;
|
|
4
|
-
hashPath: string;
|
|
5
|
-
/**
|
|
6
|
-
* Creates a new VersionManager instance.
|
|
7
|
-
* @param {string} dataDir Folder to write version information to.
|
|
8
|
-
* @constructor
|
|
9
|
-
*/
|
|
10
|
-
constructor(dataDir?: string);
|
|
11
|
-
/**
|
|
12
|
-
* Checks if the current data needs an update
|
|
13
|
-
*/
|
|
14
|
-
updateNeeded(): Promise<boolean>;
|
|
15
|
-
/**
|
|
16
|
-
* Writes both game and drop version metadata
|
|
17
|
-
* @param {number} timestamp Timestamp the build was started at
|
|
18
|
-
*/
|
|
19
|
-
writeVersion(timestamp: number): Promise<void>;
|
|
20
|
-
}
|
|
21
|
-
export default VersionManager;
|
package/dist/VersionManager.js
DELETED
|
@@ -1,79 +0,0 @@
|
|
|
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.VersionManager = void 0;
|
|
7
|
-
const node_path_1 = __importDefault(require("node:path"));
|
|
8
|
-
const promises_1 = __importDefault(require("node:fs/promises"));
|
|
9
|
-
const node_fetch_1 = __importDefault(require("node-fetch"));
|
|
10
|
-
const Config_1 = __importDefault(require("./Config"));
|
|
11
|
-
const Logger_1 = __importDefault(require("./Logger"));
|
|
12
|
-
class VersionManager {
|
|
13
|
-
versionPath;
|
|
14
|
-
versionRawPath;
|
|
15
|
-
hashPath;
|
|
16
|
-
/**
|
|
17
|
-
* Creates a new VersionManager instance.
|
|
18
|
-
* @param {string} dataDir Folder to write version information to.
|
|
19
|
-
* @constructor
|
|
20
|
-
*/
|
|
21
|
-
constructor(dataDir) {
|
|
22
|
-
const DataDir = dataDir ?? node_path_1.default.join(__dirname, '..', 'data');
|
|
23
|
-
this.versionPath = node_path_1.default.join(DataDir, 'version.json');
|
|
24
|
-
this.versionRawPath = node_path_1.default.join(DataDir, 'version.txt');
|
|
25
|
-
this.hashPath = node_path_1.default.join(DataDir, 'hash.json');
|
|
26
|
-
}
|
|
27
|
-
/**
|
|
28
|
-
* Checks if the current data needs an update
|
|
29
|
-
*/
|
|
30
|
-
async updateNeeded() {
|
|
31
|
-
const infoReq = await (0, node_fetch_1.default)(Config_1.default.warframeRelicDropInfoUrl);
|
|
32
|
-
if (!infoReq.ok) {
|
|
33
|
-
Logger_1.default.fatal('Failed to fetch version info!');
|
|
34
|
-
}
|
|
35
|
-
const info = (await infoReq.json());
|
|
36
|
-
try {
|
|
37
|
-
await promises_1.default.access(this.hashPath);
|
|
38
|
-
const infoFile = JSON.parse(await promises_1.default.readFile(this.hashPath, 'utf-8'));
|
|
39
|
-
return infoFile.hash !== info.hash;
|
|
40
|
-
}
|
|
41
|
-
catch (ex) {
|
|
42
|
-
// Info file doesn't exist, so we need an update
|
|
43
|
-
return true;
|
|
44
|
-
}
|
|
45
|
-
}
|
|
46
|
-
/**
|
|
47
|
-
* Writes both game and drop version metadata
|
|
48
|
-
* @param {number} timestamp Timestamp the build was started at
|
|
49
|
-
*/
|
|
50
|
-
async writeVersion(timestamp) {
|
|
51
|
-
const patchLogsReq = await (0, node_fetch_1.default)(Config_1.default.warframePatchlogsUrl);
|
|
52
|
-
if (!patchLogsReq.ok) {
|
|
53
|
-
Logger_1.default.error('Failed to fetch patchlogs');
|
|
54
|
-
return;
|
|
55
|
-
}
|
|
56
|
-
const patchlogs = (await patchLogsReq.json());
|
|
57
|
-
// Shamelessly stolen from https://github.com/WFCD/warframe-items/blob/master/build/build.js
|
|
58
|
-
// (MIT License: https://github.com/WFCD/warframe-items/blob/master/LICENSE)
|
|
59
|
-
const version = patchlogs[0].name
|
|
60
|
-
.replace(/ \+ /g, '--')
|
|
61
|
-
.replace(/[^0-9\-.]/g, '')
|
|
62
|
-
.trim();
|
|
63
|
-
const hashReq = await (0, node_fetch_1.default)(Config_1.default.warframeRelicDropInfoUrl);
|
|
64
|
-
if (!hashReq.ok) {
|
|
65
|
-
Logger_1.default.error('Failed to fetch hashInfo');
|
|
66
|
-
return;
|
|
67
|
-
}
|
|
68
|
-
const hashInfo = (await hashReq.json());
|
|
69
|
-
const versionInfo = { version, title: patchlogs[0].name };
|
|
70
|
-
const hashFile = { hash: hashInfo.hash, deUpdated: hashInfo.modified, timestamp };
|
|
71
|
-
await promises_1.default.writeFile(this.hashPath, JSON.stringify(hashFile, undefined, 2), 'utf-8');
|
|
72
|
-
await promises_1.default.writeFile(this.versionPath, JSON.stringify(versionInfo, undefined, 2), 'utf-8');
|
|
73
|
-
await promises_1.default.writeFile(this.versionRawPath, version, 'utf-8');
|
|
74
|
-
Logger_1.default.debug('Finished writing version info');
|
|
75
|
-
}
|
|
76
|
-
}
|
|
77
|
-
exports.VersionManager = VersionManager;
|
|
78
|
-
exports.default = VersionManager;
|
|
79
|
-
//# sourceMappingURL=VersionManager.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"VersionManager.js","sourceRoot":"","sources":["../src/VersionManager.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,0CAAwB;AACxB,8CAA4B;AAC5B,mDAAiC"}
|