warframe-public-export-plus 0.6.0 → 0.6.2

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/index.d.ts CHANGED
@@ -112,6 +112,13 @@ export interface IArcane {
112
112
  codexSecret: boolean;
113
113
  excludeFromCodex?: true;
114
114
  rarity: TRarity;
115
+ levelStats?: {
116
+ tag: string;
117
+ sub: Record<string,
118
+ { tag: string; sub: Record<string, string> }
119
+ | string // note: substitute itself may be a loctag
120
+ >;
121
+ }[][];
115
122
  fusionLimit: number;
116
123
  distillPointValue?: number;
117
124
  }
@@ -167,6 +174,7 @@ export type TPlatform =
167
174
  | "CP_PS5"
168
175
  | "CP_XSX"
169
176
  | "CP_IOS"
177
+ | "CP_ANDROID"
170
178
  ;
171
179
 
172
180
  export interface IBundle {
@@ -450,10 +458,12 @@ export interface IColour {
450
458
  value: string;
451
459
  }
452
460
 
461
+ export type TFocusSchool = "AP_ATTACK" | "AP_DEFENSE" | "AP_POWER" | "AP_TACTIC" | "AP_WARD";
462
+
453
463
  export interface IFocusUpgrade {
454
464
  name: string;
455
465
  icon: string;
456
- polarity: "AP_ATTACK" | "AP_DEFENSE" | "AP_POWER" | "AP_TACTIC" | "AP_WARD";
466
+ polarity: TFocusSchool;
457
467
  rarity: TRarity;
458
468
  codexSecret: boolean;
459
469
  baseDrain: number;
@@ -561,9 +571,6 @@ export interface IHelminthSnack {
561
571
  gain: number;
562
572
  }
563
573
 
564
- export interface IExportMisc {
565
- }
566
-
567
574
  export type TMissionType =
568
575
  | "MT_ASSASSINATION"
569
576
  | "MT_EXTERMINATION"
@@ -712,7 +719,7 @@ export interface IRegion {
712
719
  nodeType: number;
713
720
  masteryReq: number;
714
721
  missionType: TMissionType;
715
- missionName: string; // may differ from eMission[missionIndex].name for dual defense, conjunction survival, railjack
722
+ missionName: string; // may differ from ExportMissions[missionType].name for dual defense, conjunction survival, railjack
716
723
  faction?: TFaction;
717
724
  secondaryFaction?: TFaction;
718
725
  minEnemyLevel: number;
@@ -726,6 +733,7 @@ export interface IRegion {
726
733
  customAdvancedSpawners?: string[];
727
734
  missionReward?: IMissionReward;
728
735
  miscItemFee?: ICountedItem;
736
+ founders?: string[];
729
737
  challenges?: string[];
730
738
  rewardManifests: string[];
731
739
  cacheRewardManifest?: string;
@@ -873,6 +881,7 @@ export interface ISyndicateSacrifice {
873
881
  }
874
882
 
875
883
  export interface ISystem {
884
+ index: number;
876
885
  name: string;
877
886
  droneDamage: IRange;
878
887
  damageChance: number;
@@ -905,8 +914,8 @@ export interface ITextIcon {
905
914
 
906
915
  export interface ITileset {
907
916
  uniqueName: string;
908
- faction?: TFaction;
909
- missions: Record<TMissionType, ITilesetMission>;
917
+ faction: TFaction;
918
+ missions: Partial<Record<TMissionType, ITilesetMission>>; // Only contains mission types supported by the tileset.
910
919
  }
911
920
 
912
921
  export interface ITilesetMission {
@@ -926,8 +935,9 @@ export interface IUpgrade {
926
935
  baseDrain: number;
927
936
  fusionLimit: number;
928
937
  compat?: string;
929
- compatibilityTags?: string[];
930
938
  compatName?: string;
939
+ compatibilityTags?: string[];
940
+ incompatibilityTags?: string[];
931
941
  type?: string;
932
942
  description?: string;
933
943
  isUtility?: true;
@@ -968,11 +978,13 @@ export interface IUpgrade {
968
978
  levelStats?: {
969
979
  stats: string[];
970
980
  }[];
981
+ introducedAt?: number;
971
982
  }
972
983
 
973
984
  export interface IVendor {
974
985
  isDynamic: boolean;
975
986
  isOneBinPerCycle?: boolean;
987
+ requiredGoalTag?: string;
976
988
  items: IVendorOffer[];
977
989
  randomItemPricesPerBin?: {
978
990
  type: string;
@@ -1008,6 +1020,10 @@ export interface IVendorOffer {
1008
1020
  reductionPerPositiveRank: number;
1009
1021
  increasePerNegativeRank: number;
1010
1022
  };
1023
+ focusXpCost?: {
1024
+ polarity: TFocusSchool;
1025
+ cost: number;
1026
+ };
1011
1027
  }
1012
1028
 
1013
1029
  export interface IVirtual {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "warframe-public-export-plus",
3
- "version": "0.6.0",
3
+ "version": "0.6.2",
4
4
  "main": "index.js",
5
5
  "types": "index.d.ts",
6
6
  "exports": {
@@ -15,8 +15,7 @@
15
15
  "url": "git+https://github.com/calamity-inc/warframe-public-export-plus.git"
16
16
  },
17
17
  "devDependencies": {
18
- "ts-node": "^10.9.2",
19
- "ts-to-zod": "^3.15.0",
20
- "zod": "^3.24.2"
18
+ "ts-to-zod": "^5",
19
+ "zod": "^4"
21
20
  }
22
21
  }
@@ -11,33 +11,32 @@ for (const line of indexTypes.split(/\r?\n/)) {
11
11
  }
12
12
  types += "\n}";
13
13
 
14
- console.log("🕐 Generating schemas...");
14
+ console.log("Generating schemas...");
15
15
  fs.writeFileSync("tmp-types.ts", types);
16
- execSync("npx ts-to-zod tmp-types.ts tmp-schemas.ts --skipValidation", {
17
- stdio: "inherit",
18
- });
16
+ execSync("npx ts-to-zod tmp-types.ts tmp-schemas.js --skipValidation");
19
17
 
20
18
  const schemas = fs
21
- .readFileSync("tmp-schemas.ts", "utf8")
22
- .replace(/z\.object/g, "z.strictObject")
23
- .replace("iAbilitySchema = z.strictObject({", "iAbilitySchema = z.object({");
24
- fs.writeFileSync("tmp-schemas.ts", schemas);
19
+ .readFileSync("tmp-schemas.js", "utf8")
20
+ .replaceAll("z.object", "z.strictObject")
21
+ .replace("iAbilitySchema = z.strictObject({", "iAbilitySchema = z.object({")
22
+ .replace("z.record(tMissionTypeSchema, iTilesetMissionSchema).partial()", "z.partialRecord(tMissionTypeSchema, iTilesetMissionSchema)");
23
+ fs.writeFileSync("tmp-schemas.mjs", schemas);
25
24
 
26
- console.log("🕐 Validating schemas...");
25
+ console.log("Validating schemas...");
27
26
  const test = `import { z } from "zod";
28
- import { iPublicExportPlusSchema } from "./tmp-schemas";
29
- import publicExportPlus from "./index";
27
+ import { iPublicExportPlusSchema } from "./tmp-schemas.mjs";
28
+ import publicExportPlus from "./index.js";
30
29
  try {
31
30
  iPublicExportPlusSchema.parse(publicExportPlus);
32
- console.log("Schemas validated successfully.");
31
+ console.log("Schemas validated successfully.");
33
32
  } catch (e) {
34
- console.error((e as Error).message);
33
+ console.error(e.message);
35
34
  process.exit(1);
36
35
  }`;
37
- fs.writeFileSync("tmp-test.ts", test);
36
+ fs.writeFileSync("tmp-test.mjs", test);
38
37
 
39
38
  try {
40
- execSync("npx ts-node tmp-test.ts", {
39
+ execSync("node tmp-test.mjs", {
41
40
  stdio: "inherit",
42
41
  env: {
43
42
  ...process.env,
@@ -51,7 +50,8 @@ try {
51
50
  process.exitCode = 1;
52
51
  }
53
52
  } finally {
54
- fs.unlinkSync("tmp-schemas.ts");
55
53
  fs.unlinkSync("tmp-types.ts");
56
- fs.unlinkSync("tmp-test.ts");
54
+ fs.unlinkSync("tmp-schemas.mjs");
55
+ fs.unlinkSync("tmp-schemas.js");
56
+ fs.unlinkSync("tmp-test.mjs");
57
57
  }