@elite-dangerous-almanac/core 0.2.5 → 0.2.7

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.
Files changed (153) hide show
  1. package/PROVENANCE/i18n/SOURCES.md +199 -113
  2. package/PROVENANCE/materials/SOURCES.md +22 -0
  3. package/PROVENANCE/ships/SOURCES.md +254 -59
  4. package/README.md +17 -11
  5. package/assets/ships/LakonMiner/schematic-bottom.svg +5 -3
  6. package/assets/ships/LakonMiner/schematic-top.svg +2 -4
  7. package/dist/{chunk-XM4VA2WE.js → chunk-4U7KYQGK.js} +1 -1
  8. package/dist/{chunk-XM4VA2WE.js.map → chunk-4U7KYQGK.js.map} +1 -1
  9. package/dist/{chunk-7EWZGDWY.js → chunk-7S7ZTZZY.js} +1 -1
  10. package/dist/chunk-A5TCT2AJ.js +1 -0
  11. package/dist/{chunk-AIEC3LBT.js.map → chunk-A5TCT2AJ.js.map} +1 -1
  12. package/dist/chunk-A7IVMYNF.js +1 -0
  13. package/dist/chunk-A7IVMYNF.js.map +1 -0
  14. package/dist/{chunk-2OBUSQA7.js → chunk-AAU7OM47.js} +1 -1
  15. package/dist/{chunk-2OBUSQA7.js.map → chunk-AAU7OM47.js.map} +1 -1
  16. package/dist/{chunk-KPJ77VPS.js → chunk-BJU27V6C.js} +1 -1
  17. package/dist/{chunk-KPJ77VPS.js.map → chunk-BJU27V6C.js.map} +1 -1
  18. package/dist/{chunk-DSMLYA2M.js → chunk-BMQM4JBL.js} +1 -1
  19. package/dist/{chunk-DSMLYA2M.js.map → chunk-BMQM4JBL.js.map} +1 -1
  20. package/dist/chunk-C3LLPLLD.js +1 -0
  21. package/dist/chunk-C3LLPLLD.js.map +1 -0
  22. package/dist/chunk-EHFHRQEP.js +1 -0
  23. package/dist/{chunk-GLWPSVFV.js.map → chunk-EHFHRQEP.js.map} +1 -1
  24. package/dist/{chunk-YCGISPDR.js → chunk-ETWMPMZP.js} +1 -1
  25. package/dist/{chunk-3NPVWPOV.js → chunk-F7VWRDSL.js} +1 -1
  26. package/dist/chunk-F7VWRDSL.js.map +1 -0
  27. package/dist/{chunk-4CBMQULR.js → chunk-FMA36V6A.js} +1 -1
  28. package/dist/{chunk-4CBMQULR.js.map → chunk-FMA36V6A.js.map} +1 -1
  29. package/dist/chunk-IZIIGK3W.js +1 -0
  30. package/dist/{chunk-TW7LUBHD.js.map → chunk-IZIIGK3W.js.map} +1 -1
  31. package/dist/chunk-KBCA4GEZ.js +1 -0
  32. package/dist/chunk-KLC5XT6F.js +1 -0
  33. package/dist/chunk-KLC5XT6F.js.map +1 -0
  34. package/dist/chunk-M6J7KP7G.js +1 -0
  35. package/dist/chunk-M6J7KP7G.js.map +1 -0
  36. package/dist/chunk-MRLUWHGI.js +1 -0
  37. package/dist/{chunk-FF2X4K5P.js.map → chunk-MRLUWHGI.js.map} +1 -1
  38. package/dist/chunk-MVBVXK3G.js +1 -0
  39. package/dist/chunk-MVBVXK3G.js.map +1 -0
  40. package/dist/{chunk-HBQELOBY.js → chunk-NZXSIHAW.js} +1 -1
  41. package/dist/{chunk-HBQELOBY.js.map → chunk-NZXSIHAW.js.map} +1 -1
  42. package/dist/{chunk-IWFQ4ZKF.js → chunk-OFZGNWBT.js} +1 -1
  43. package/dist/chunk-PF3HZ73R.js +1 -0
  44. package/dist/{chunk-ITKZKREP.js.map → chunk-PF3HZ73R.js.map} +1 -1
  45. package/dist/chunk-QJECDMQQ.js +1 -0
  46. package/dist/{chunk-LZYHBFJC.js.map → chunk-QJECDMQQ.js.map} +1 -1
  47. package/dist/chunk-T7IQHFQ2.js +1 -0
  48. package/dist/chunk-T7IQHFQ2.js.map +1 -0
  49. package/dist/chunk-TSEDU73T.js +1 -0
  50. package/dist/chunk-TSEDU73T.js.map +1 -0
  51. package/dist/chunk-XFDMCPDW.js +1 -0
  52. package/dist/{chunk-GRSNX36B.js.map → chunk-XFDMCPDW.js.map} +1 -1
  53. package/dist/chunk-XRGECU7S.js +1 -0
  54. package/dist/chunk-XRGECU7S.js.map +1 -0
  55. package/dist/{chunk-OLKNYGGT.js → chunk-XSLPWM5N.js} +1 -1
  56. package/dist/chunk-XSN53F7W.js +1 -0
  57. package/dist/{chunk-DBGXZF7O.js.map → chunk-XSN53F7W.js.map} +1 -1
  58. package/dist/chunk-ZEN5K3GE.js +1 -0
  59. package/dist/{chunk-WR6ZFHTO.js.map → chunk-ZEN5K3GE.js.map} +1 -1
  60. package/dist/chunk-ZZTDEDXJ.js +1 -0
  61. package/dist/{chunk-FA5JVXVG.js.map → chunk-ZZTDEDXJ.js.map} +1 -1
  62. package/dist/equipment/index.js +1 -1
  63. package/dist/equipment/upgrade-costs.js +1 -1
  64. package/dist/equipment/upgrade-costs.js.map +1 -1
  65. package/dist/i18n/experimental-effect-descriptions.d.ts +21 -6
  66. package/dist/i18n/experimental-effect-descriptions.js +1 -1
  67. package/dist/i18n/experimental-effects.js +1 -1
  68. package/dist/i18n/index.d.ts +0 -2
  69. package/dist/i18n/index.js +1 -1
  70. package/dist/i18n/materials.d.ts +7 -6
  71. package/dist/i18n/materials.js +1 -1
  72. package/dist/i18n/micro-resources.d.ts +7 -6
  73. package/dist/i18n/micro-resources.js +1 -1
  74. package/dist/i18n/modules.d.ts +10 -7
  75. package/dist/i18n/modules.js +1 -1
  76. package/dist/i18n/pre-engineered.js +1 -1
  77. package/dist/materials/index.js +1 -1
  78. package/dist/materials/materials-all.js +1 -1
  79. package/dist/materials/materials-encoded.js +1 -1
  80. package/dist/materials/materials-manufactured.js +1 -1
  81. package/dist/materials/materials.js +1 -1
  82. package/dist/materials/micro-resources-all.js +1 -1
  83. package/dist/materials/micro-resources.js +1 -1
  84. package/dist/ships/blueprint-costs.js +1 -1
  85. package/dist/ships/blueprint-journal.js +1 -1
  86. package/dist/ships/build-metrics.js +1 -1
  87. package/dist/ships/engineering-options.d.ts +12 -6
  88. package/dist/ships/engineering-options.js +1 -1
  89. package/dist/ships/engineering.js +1 -1
  90. package/dist/ships/gunsights.d.ts +2 -2
  91. package/dist/ships/gunsights.js +1 -1
  92. package/dist/ships/index.d.ts +5 -5
  93. package/dist/ships/index.js +1 -1
  94. package/dist/ships/loadout-calculations.d.ts +11 -2
  95. package/dist/ships/loadout-calculations.js +1 -1
  96. package/dist/ships/loadout-validation.js +1 -1
  97. package/dist/ships/modules-all.d.ts +2 -2
  98. package/dist/ships/modules-all.js +1 -1
  99. package/dist/ships/modules-core.d.ts +3 -3
  100. package/dist/ships/modules-core.js +1 -1
  101. package/dist/ships/modules-hardpoint.d.ts +1 -1
  102. package/dist/ships/modules-internal.d.ts +1 -1
  103. package/dist/ships/modules-internal.js +1 -1
  104. package/dist/ships/modules-utility.d.ts +1 -1
  105. package/dist/ships/modules.d.ts +9 -6
  106. package/dist/ships/modules.js +1 -1
  107. package/dist/ships/pre-engineered-stats.js +1 -1
  108. package/dist/ships/pre-engineered.js +1 -1
  109. package/dist/ships/ship-loadout.d.ts +65 -23
  110. package/dist/ships/ship-loadout.js +1 -1
  111. package/dist/ships/weapons.js +1 -1
  112. package/package.json +1 -9
  113. package/dist/chunk-3NPVWPOV.js.map +0 -1
  114. package/dist/chunk-5QSCLEEB.js +0 -1
  115. package/dist/chunk-5QSCLEEB.js.map +0 -1
  116. package/dist/chunk-5VBB5CTV.js +0 -1
  117. package/dist/chunk-5VBB5CTV.js.map +0 -1
  118. package/dist/chunk-5ZVYRX6Z.js +0 -1
  119. package/dist/chunk-5ZVYRX6Z.js.map +0 -1
  120. package/dist/chunk-AIEC3LBT.js +0 -1
  121. package/dist/chunk-DAQ3PJ4R.js +0 -1
  122. package/dist/chunk-DAQ3PJ4R.js.map +0 -1
  123. package/dist/chunk-DBGXZF7O.js +0 -1
  124. package/dist/chunk-DCB4COCL.js +0 -1
  125. package/dist/chunk-DCB4COCL.js.map +0 -1
  126. package/dist/chunk-FA5JVXVG.js +0 -1
  127. package/dist/chunk-FF2X4K5P.js +0 -1
  128. package/dist/chunk-G2VSQFD6.js +0 -1
  129. package/dist/chunk-G2VSQFD6.js.map +0 -1
  130. package/dist/chunk-GLWPSVFV.js +0 -1
  131. package/dist/chunk-GRSNX36B.js +0 -1
  132. package/dist/chunk-ITKZKREP.js +0 -1
  133. package/dist/chunk-J4PCK4RV.js +0 -1
  134. package/dist/chunk-J4PCK4RV.js.map +0 -1
  135. package/dist/chunk-JO52LYO3.js +0 -1
  136. package/dist/chunk-KJFUNIIY.js +0 -1
  137. package/dist/chunk-KJFUNIIY.js.map +0 -1
  138. package/dist/chunk-LZYHBFJC.js +0 -1
  139. package/dist/chunk-OJC6AUL7.js +0 -1
  140. package/dist/chunk-OJC6AUL7.js.map +0 -1
  141. package/dist/chunk-TW7LUBHD.js +0 -1
  142. package/dist/chunk-WR6ZFHTO.js +0 -1
  143. package/dist/i18n/engineering-groups.d.ts +0 -21
  144. package/dist/i18n/engineering-groups.js +0 -1
  145. package/dist/i18n/engineering-groups.js.map +0 -1
  146. package/dist/i18n/ships.d.ts +0 -36
  147. package/dist/i18n/ships.js +0 -1
  148. package/dist/i18n/ships.js.map +0 -1
  149. /package/dist/{chunk-7EWZGDWY.js.map → chunk-7S7ZTZZY.js.map} +0 -0
  150. /package/dist/{chunk-YCGISPDR.js.map → chunk-ETWMPMZP.js.map} +0 -0
  151. /package/dist/{chunk-JO52LYO3.js.map → chunk-KBCA4GEZ.js.map} +0 -0
  152. /package/dist/{chunk-IWFQ4ZKF.js.map → chunk-OFZGNWBT.js.map} +0 -0
  153. /package/dist/{chunk-OLKNYGGT.js.map → chunk-XSLPWM5N.js.map} +0 -0
@@ -9,13 +9,15 @@
9
9
  * hyphens. A regional or script subtag is dropped: every stored locale is a bare
10
10
  * language tag.
11
11
  * @returns The localized outfitting name; the canonical `OutfittingModule.name` for any
12
- * English tag; or `null` when the
13
- * symbol is unknown, the locale is unsupported, or the pinned sources carry no value
14
- * for that module and locale.
12
+ * English tag; or `null` when the symbol is unknown or the locale is not one of the six
13
+ * this catalogue stores.
15
14
  * @remarks
16
- * The table deduplicates modules that share one canonical name. It does not bundle any
17
- * module stats, so this lookup avoids the 1,199-record `ALL_MODULES` catalogue. Missing
18
- * translations never silently fall back to English.
15
+ * All six stored locales are complete for this dataset, so a supported locale always
16
+ * answers. The table deduplicates modules that share one name in every locale, which is
17
+ * finer than sharing one canonical English name: the game distinguishes the singular and
18
+ * plural hull alloys, for instance, where English spells both the same. It does not
19
+ * bundle any module stats, so this lookup avoids the 1,194-record `ALL_MODULES`
20
+ * catalogue.
19
21
  * @throws {TypeError} If `symbol` is present and not a string, or `locale` is not a
20
22
  * string. A nullish `symbol` is a lookup miss and returns `null`.
21
23
  * @example
@@ -23,7 +25,8 @@
23
25
  * import { getModuleName } from '@elite-dangerous-almanac/core/i18n/modules';
24
26
  *
25
27
  * getModuleName('Int_Hyperdrive_Size6_Class5', 'de-DE'); // -> 'Frameshiftantrieb'
26
- * getModuleName('Int_LargeCargoRack_Size8_class1', 'de'); // -> null
28
+ * getModuleName('Int_LargeCargoRack_Size8_class1', 'de'); // -> 'Frachtgestell für Mk II'
29
+ * getModuleName('Int_Hyperdrive_Size6_Class5', 'it'); // -> null
27
30
  * ```
28
31
  */
29
32
  declare function getModuleName(symbol: string, locale: string): string | null;
@@ -1 +1 @@
1
- export{getModuleName}from"../chunk-LZYHBFJC.js"; //# sourceMappingURL=modules.js.map
1
+ export{getModuleName}from"../chunk-QJECDMQQ.js"; //# sourceMappingURL=modules.js.map
@@ -1 +1 @@
1
- export{getPreEngineeredVariantName}from"../chunk-G2VSQFD6.js"; //# sourceMappingURL=pre-engineered.js.map
1
+ export{getPreEngineeredVariantName}from"../chunk-T7IQHFQ2.js"; //# sourceMappingURL=pre-engineered.js.map
@@ -1 +1 @@
1
- export{getMicroResourceByName,getMicroResourceBySymbol,microResourcesInCategory}from"../chunk-7EWZGDWY.js";export{ALL_MICRO_RESOURCES}from"../chunk-DAQ3PJ4R.js";export{COMPONENT_MICRO_RESOURCES}from"../chunk-HTB52N6S.js";export{CONSUMABLE_MICRO_RESOURCES}from"../chunk-K7L7SMIR.js";export{DATA_MICRO_RESOURCES}from"../chunk-GVLDFJEY.js";export{ITEM_MICRO_RESOURCES}from"../chunk-WHWFKHV3.js"; export{MaterialGrade,MaterialLine,getMaterialByElementSymbol,getMaterialByName,getMaterialBySymbol,materialsByGrade,materialsInCategory,materialsInLine}from"../chunk-IWFQ4ZKF.js";export{ALL_MATERIALS}from"../chunk-JO52LYO3.js";export{ENCODED_MATERIALS}from"../chunk-AIEC3LBT.js";export{MANUFACTURED_MATERIALS}from"../chunk-ITKZKREP.js";export{RAW_MATERIALS}from"../chunk-Q6YDPREF.js"; //# sourceMappingURL=index.js.map
1
+ export{getMicroResourceByName,getMicroResourceBySymbol,microResourcesInCategory}from"../chunk-7S7ZTZZY.js";export{MaterialGrade,MaterialLine,getMaterialByElementSymbol,getMaterialByName,getMaterialBySymbol,materialsByGrade,materialsInCategory,materialsInLine}from"../chunk-OFZGNWBT.js";export{ALL_MATERIALS}from"../chunk-KBCA4GEZ.js";export{ENCODED_MATERIALS}from"../chunk-A5TCT2AJ.js";export{MANUFACTURED_MATERIALS}from"../chunk-PF3HZ73R.js";export{RAW_MATERIALS}from"../chunk-Q6YDPREF.js"; export{ALL_MICRO_RESOURCES}from"../chunk-KLC5XT6F.js";export{CONSUMABLE_MICRO_RESOURCES}from"../chunk-K7L7SMIR.js";export{DATA_MICRO_RESOURCES}from"../chunk-GVLDFJEY.js";export{ITEM_MICRO_RESOURCES}from"../chunk-WHWFKHV3.js";export{COMPONENT_MICRO_RESOURCES}from"../chunk-HTB52N6S.js"; //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- export{ALL_MATERIALS}from"../chunk-JO52LYO3.js"; //# sourceMappingURL=materials-all.js.map
1
+ export{ALL_MATERIALS}from"../chunk-KBCA4GEZ.js"; //# sourceMappingURL=materials-all.js.map
@@ -1 +1 @@
1
- export{ENCODED_MATERIALS}from"../chunk-AIEC3LBT.js"; //# sourceMappingURL=materials-encoded.js.map
1
+ export{ENCODED_MATERIALS}from"../chunk-A5TCT2AJ.js"; //# sourceMappingURL=materials-encoded.js.map
@@ -1 +1 @@
1
- export{MANUFACTURED_MATERIALS}from"../chunk-ITKZKREP.js"; //# sourceMappingURL=materials-manufactured.js.map
1
+ export{MANUFACTURED_MATERIALS}from"../chunk-PF3HZ73R.js"; //# sourceMappingURL=materials-manufactured.js.map
@@ -1 +1 @@
1
- export{MaterialGrade,MaterialLine,getMaterialByElementSymbol,getMaterialByName,getMaterialBySymbol,materialsByGrade,materialsInCategory,materialsInLine}from"../chunk-IWFQ4ZKF.js"; //# sourceMappingURL=materials.js.map
1
+ export{MaterialGrade,MaterialLine,getMaterialByElementSymbol,getMaterialByName,getMaterialBySymbol,materialsByGrade,materialsInCategory,materialsInLine}from"../chunk-OFZGNWBT.js"; //# sourceMappingURL=materials.js.map
@@ -1 +1 @@
1
- export{ALL_MICRO_RESOURCES}from"../chunk-DAQ3PJ4R.js"; //# sourceMappingURL=micro-resources-all.js.map
1
+ export{ALL_MICRO_RESOURCES}from"../chunk-KLC5XT6F.js"; //# sourceMappingURL=micro-resources-all.js.map
@@ -1 +1 @@
1
- export{getMicroResourceByName,getMicroResourceBySymbol,microResourcesInCategory}from"../chunk-7EWZGDWY.js"; //# sourceMappingURL=micro-resources.js.map
1
+ export{getMicroResourceByName,getMicroResourceBySymbol,microResourcesInCategory}from"../chunk-7S7ZTZZY.js"; //# sourceMappingURL=micro-resources.js.map
@@ -1 +1 @@
1
- export{BLUEPRINT_COSTS,BLUEPRINT_MERC_COIN_COSTS,getBlueprintCost,getBlueprintCosts,getBlueprintGradeCost}from"../chunk-YCGISPDR.js"; //# sourceMappingURL=blueprint-costs.js.map
1
+ export{BLUEPRINT_COSTS,BLUEPRINT_MERC_COIN_COSTS,getBlueprintCost,getBlueprintCosts,getBlueprintGradeCost}from"../chunk-ETWMPMZP.js"; //# sourceMappingURL=blueprint-costs.js.map
@@ -1 +1 @@
1
- export{resolveBlueprintForModule}from"../chunk-OLKNYGGT.js"; //# sourceMappingURL=blueprint-journal.js.map
1
+ export{resolveBlueprintForModule}from"../chunk-XSLPWM5N.js"; //# sourceMappingURL=blueprint-journal.js.map
@@ -1 +1 @@
1
- export{BuildMetrics}from"../chunk-3NPVWPOV.js"; //# sourceMappingURL=build-metrics.js.map
1
+ export{BuildMetrics}from"../chunk-F7VWRDSL.js"; //# sourceMappingURL=build-metrics.js.map
@@ -8,7 +8,7 @@
8
8
  * this module?" is the question the game actually answers. So modules are grouped, and
9
9
  * each group lists what it offers.
10
10
  *
11
- * The catalogue groups 1005 of the 1199 modules — every stock module with an ordinary
11
+ * The catalogue groups 1000 of the 1194 modules — every stock module with an ordinary
12
12
  * engineering menu. The other 194 have no ordinary menu: whole families (fuel tanks,
13
13
  * cargo racks, passenger cabins, the repair, recon, research, decontamination and
14
14
  * multi-limpet controllers, meta-alloy and ordinary module reinforcement, the Pulse Wave
@@ -79,10 +79,16 @@
79
79
  * ```
80
80
  */
81
81
  type EngineeringGroupId = 'powerPlants' | 'guardianPowerPlants' | 'thrusters' | 'frameShiftDrives' | 'powerDistributors' | 'guardianPowerDistributors' | 'frameShiftDrivesSCO' | 'shieldGenerators' | 'shieldCellBanks' | 'hullReinforcements' | 'guardianHullReinforcements' | 'pulseLasers' | 'burstLasers' | 'beamLasers' | 'cannons' | 'fragmentCannons' | 'multiCannons' | 'plasmaAccelerators' | 'railGuns' | 'missiles' | 'mines' | 'torpedoes' | 'shieldBoosters' | 'bulkheads' | 'lifeSupports' | 'sensors' | 'autoFieldMaintenanceUnits' | 'collectionLimpets' | 'fsdBoosters' | 'fsdInterdictors' | 'fuelScoops' | 'fuelTransferLimpets' | 'hatchBreakerLimpets' | 'moduleReinforcements' | 'prospectingLimpets' | 'refineries' | 'shieldReinforcements' | 'surfaceScanners' | 'chaffLaunchers' | 'ecms' | 'heatSinkLaunchers' | 'killWarrantScanners' | 'manifestScanners' | 'pointDefence' | 'wakeScanners' | 'guardianGauss' | 'guardianPlasma' | 'guardianShard';
82
- /** What one group of modules can be engineered with. */
82
+ /**
83
+ * What one group of modules can be engineered with.
84
+ *
85
+ * @remarks
86
+ * A group carries no display name, because the game has no engineering-group label to
87
+ * carry: an engineering menu is headed by the module's own outfitting family. Name a
88
+ * group by naming that family — `getOutfittingFamilyName(module.familyId, locale)` in
89
+ * `i18n/module-families`.
90
+ */
83
91
  interface EngineeringOptionGroup {
84
- /** Display name of the module group, e.g. `"Beam Lasers"`. */
85
- readonly name: string;
86
92
  /** Blueprint ids the group accepts. Join to `BLUEPRINTS`. */
87
93
  readonly blueprints: readonly string[];
88
94
  /** Experimental-effect ids the group accepts. Join to `EXPERIMENTAL_EFFECTS`. */
@@ -96,8 +102,8 @@ interface EngineeringOptionGroup {
96
102
  * ```ts
97
103
  * import { ENGINEERING_OPTION_GROUPS } from '@elite-dangerous-almanac/core/ships/engineering-options';
98
104
  *
99
- * ENGINEERING_OPTION_GROUPS['beamLasers'].name; // -> 'Beam Lasers'
100
105
  * ENGINEERING_OPTION_GROUPS['beamLasers'].experimentals.length; // -> 9
106
+ * ENGINEERING_OPTION_GROUPS['beamLasers'].blueprints.length; // -> 7
101
107
  * ```
102
108
  */
103
109
  declare const ENGINEERING_OPTION_GROUPS: Readonly<Record<EngineeringGroupId, EngineeringOptionGroup>>;
@@ -184,7 +190,7 @@ declare function getBlueprintsForModule(symbol: string): readonly string[];
184
190
  * here, so the result is the exact set for this module.
185
191
  *
186
192
  * **An empty array is the common answer, and it usually means "blueprints only".** 368
187
- * of the 1005 grouped modules have no experimental slot; all sit in the 27 of 48 groups
193
+ * of the 1000 grouped modules have no experimental slot; all sit in the 27 of 48 groups
188
194
  * that offer none — life support, sensors, the limpet controllers, the utility scanners,
189
195
  * and every Guardian group, weapons and modules alike. An ungrouped module answers empty
190
196
  * too; {@link getEngineeringGroup} tells the two apart.
@@ -1 +1 @@
1
- export{ENGINEERING_OPTION_GROUPS,getBlueprintsForModule,getEngineeringGroup,getExperimentalsForBlueprint,getExperimentalsForModule}from"../chunk-GLWPSVFV.js"; //# sourceMappingURL=engineering-options.js.map
1
+ export{ENGINEERING_OPTION_GROUPS,getBlueprintsForModule,getEngineeringGroup,getExperimentalsForBlueprint,getExperimentalsForModule}from"../chunk-EHFHRQEP.js"; //# sourceMappingURL=engineering-options.js.map
@@ -1 +1 @@
1
- export{computeModifiers,sumMaterials}from"../chunk-5QSCLEEB.js"; //# sourceMappingURL=engineering.js.map
1
+ export{computeModifiers,sumMaterials}from"../chunk-A7IVMYNF.js"; //# sourceMappingURL=engineering.js.map
@@ -58,7 +58,7 @@ type ShipGunsightCatalogue = Readonly<Record<string, ShipGunsight>>;
58
58
  * import { SHIP_GUNSIGHTS } from '@elite-dangerous-almanac/core/ships/gunsights';
59
59
  *
60
60
  * SHIP_GUNSIGHTS.SideWinder?.length; // -> 2
61
- * SHIP_GUNSIGHTS.SideWinder?.[0]; // -> [-2.1956754475, -1.166162014]
61
+ * SHIP_GUNSIGHTS.SideWinder?.[0]; // -> [-2.1956754, -1.166162]
62
62
  * ```
63
63
  */
64
64
  declare const SHIP_GUNSIGHTS: ShipGunsightCatalogue;
@@ -103,7 +103,7 @@ declare function getShipGunsight(shipSymbol: string): ShipGunsight | null;
103
103
  *
104
104
  * const gunsight = getShipGunsight('SideWinder')!;
105
105
  * projectGunsight(gunsight, 1000)[0];
106
- * // -> { horizontalTangent: -0.0021956754475, verticalTangent: -0.001166162014 }
106
+ * // -> { horizontalTangent: -0.0021956754, verticalTangent: -0.001166162 }
107
107
  * ```
108
108
  */
109
109
  declare function projectGunsight(gunsight: ShipGunsight, targetRangeMetres: number): readonly GunsightPoint[];
@@ -1 +1 @@
1
- export{SHIP_GUNSIGHTS,getShipGunsight,projectGunsight}from"../chunk-DBGXZF7O.js"; //# sourceMappingURL=gunsights.js.map
1
+ export{SHIP_GUNSIGHTS,getShipGunsight,projectGunsight}from"../chunk-XSN53F7W.js"; //# sourceMappingURL=gunsights.js.map
@@ -28,7 +28,7 @@
28
28
  * {@link ships/default-loadouts!DEFAULT_LOADOUTS | default-loadouts} subpath carries
29
29
  * the stock modules {@link ShipLoadout.default} turns into a live build.
30
30
  * - **Modules** — the {@link OutfittingModule} type and the lookups
31
- * ({@link getModuleBySymbol} & co.), which search all 1199 modules unless you hand
31
+ * ({@link getModuleBySymbol} & co.), which search all 1194 modules unless you hand
32
32
  * them a narrower set; capability guards such as {@link hasWeaponDamageStats} narrow
33
33
  * the sparse record before stat access. The catalogues live on explicit subpaths split
34
34
  * by Frontier's four outfitting categories —
@@ -111,7 +111,7 @@
111
111
  * ```
112
112
  *
113
113
  * @example
114
- * **The lookup layer.** One small hull catalogue, and 1199 modules split by Frontier's
114
+ * **The lookup layer.** One small hull catalogue, and 1194 modules split by Frontier's
115
115
  * four outfitting categories. Lookups ignore case and surrounding whitespace.
116
116
  *
117
117
  * ```ts
@@ -121,8 +121,8 @@
121
121
  *
122
122
  * getShipBySymbol('empire_trader')?.name; // -> 'Imperial Clipper'
123
123
  *
124
- * // Pass a category to bound what you bundle; omit it to search all 1199.
125
- * CORE_MODULES.length; // -> 521
124
+ * // Pass a category to bound what you bundle; omit it to search all 1194.
125
+ * CORE_MODULES.length; // -> 516
126
126
  * getModuleBySymbol('Int_Hyperdrive_Size6_Class5', CORE_MODULES)?.name;
127
127
  * // -> 'Frame Shift Drive'
128
128
  * ```
@@ -157,7 +157,7 @@ export { BlueprintModuleEngineering, EngineeringModifier, LoadoutEvent, LoadoutM
157
157
  export { FrameShiftDriveParams, TotalRangeDetails, frameShiftDriveMassFactor, fuelPerJump, singleJumpRange, totalRange } from './jump-range.js';
158
158
  export { ApplyBlueprintOptions, AvailableBlueprint, EngineeringNormalizationCode, EngineeringNormalizationResult, EngineeringNormalizationUnchanged, EngineeringNormalizationUnsupported, EngineeringNormalized, ExperimentalEffectMutationCode, ExperimentalEffectMutationResult, ExperimentalEffectUnchanged, ExperimentalEffectUnsupported, ExperimentalEffectUpdated, FittedModule, FixedMountRepairResult, ImmovableReason, LoadoutEditError, LoadoutEditErrorCode, LoadoutExportOptions, LoadoutImportOutcome, LoadoutSlot, ShipLoadout, SlefExportOptions } from './ship-loadout.js';
159
159
  export { BuildCost, BuildCredits, BuildMass, BuildMetrics, BuildWeaponMetrics, DistributorOptions, FittedWeaponMetrics, JumpOptions, JumpRangeSummary, MobilityCapacitorOptions, ShieldCapacitorOptions, ShieldRecoveryOptions, StandardLoad, StandardLoadInputs, WeaponsOptions } from './build-metrics.js';
160
- export { CalculationIssue, CalculationIssueReason, CalculationResult, FuelCapacity, LoadoutCalculationModule, calculateCargoCapacity, calculateFuelCapacity, calculateUnladenMass } from './loadout-calculations.js';
160
+ export { CalculationIssue, CalculationIssueReason, CalculationResult, FuelCapacity, LoadoutCalculationModule, calculateCargoCapacity, calculateFuelCapacity, calculatePassengerCapacity, calculateUnladenMass } from './loadout-calculations.js';
161
161
  export { LoadoutIssue, LoadoutIssueCode, LoadoutIssueParam, LoadoutIssueParams, LoadoutMass, LoadoutValidation, LoadoutValidationInput, ModuleFitConstraint, ThrusterLoad, ValidationModule, validateLoadout } from './loadout-validation.js';
162
162
  export { SourceModuleValue, SourcePurchaseRecord, getSourceModuleValue, sourcePurchaseFromLoadout, sumSourceModuleValues } from './source-purchase.js';
163
163
  export { PowerBand, PowerBudget, PowerConsumer, PowerConsumerResult, powerBudget } from './power.js';
@@ -1 +1 @@
1
- export{LoadoutEditError,ShipLoadout}from"../chunk-J4PCK4RV.js";export{hasFrameShiftDriveJumpStats,hasMassCurveStats,hasPowerDistributorStats,hasPowerGenerationStats,hasShieldRegenerationStats,hasWeaponDamageStats}from"../chunk-JTQVWIGL.js";export{OUTFITTING_FAMILIES}from"../chunk-M6G3UDTX.js";export{SHIP_GUNSIGHTS,getShipGunsight,projectGunsight}from"../chunk-DBGXZF7O.js";export{validateLoadout}from"../chunk-OJC6AUL7.js";export{SHIP_MODULE_LIMITS,calculateModuleLimits}from"../chunk-KPETDYQX.js";export{BuildMetrics}from"../chunk-3NPVWPOV.js";export{cellBankSummary,shieldRecovery}from"../chunk-JMAXSXXQ.js"; export{armourPiercingFactor,combinedRateOfFire,damageFalloff,damagePerSecond,energyPerSecond,heatPerSecond,splitDamage,sumWeaponMetrics,sustainedDamagePerSecond,sustainedFireFactor,weaponMetrics}from"../chunk-2OBUSQA7.js";export{shieldMassCurveMultiplier,shieldMetrics,shieldStrength}from"../chunk-5VWACBTN.js";export{SHIPS,getShipByName,getShipBySymbol,getShipSlots}from"../chunk-6UNAD74Z.js";export{getLoadoutModifier,inspectSlef,parseSlef,stringifySlef,toSlef}from"../chunk-T4MKUKYS.js";export{getSourceModuleValue,sourcePurchaseFromLoadout,sumSourceModuleValues}from"../chunk-NIURLW2F.js";export{weaponsCapacitorMetrics}from"../chunk-M4FZRDAH.js";export{powerBudget}from"../chunk-GGQMIQPC.js";export{getPreEngineeredJournalModifiers,getPreEngineeredModifiers,getPreEngineeredStats,identifyPreEngineeredVariant,unresolvedModifiers}from"../chunk-XM4VA2WE.js";export{getBulkheadsForShip,getModuleBySymbol,getModulesByName}from"../chunk-HBQELOBY.js";export{PRE_ENGINEERED_MODULES,getPreEngineeredVariants,isPreEngineered}from"../chunk-KPJ77VPS.js";export{shieldCapacitorMetrics}from"../chunk-XQJERZUS.js";export{mobilityCapacitorMetrics}from"../chunk-VEEBJFJ7.js";export{mobilityMetrics,thrusterMassCurveMultiplier}from"../chunk-A4QKXXZD.js"; export{EXPERIMENTAL_EFFECTS,getExperimentalEffect}from"../chunk-77I24V6B.js";export{OVERHEAT_HEAT_LEVEL,effectiveWeaponThermalLoad,equilibriumHeatLevel,heatLevelAtTime,heatMetrics,secondsToHeatLevel}from"../chunk-6HA2YIKW.js";export{frameShiftDriveMassFactor,fuelPerJump,singleJumpRange,totalRange}from"../chunk-VTMCSCXV.js";export{calculateCargoCapacity,calculateFuelCapacity,calculateUnladenMass}from"../chunk-DCB4COCL.js"; export{resolveBlueprintForModule}from"../chunk-OLKNYGGT.js";export{BLUEPRINTS,getBlueprint,getBlueprintGrade}from"../chunk-AYAKU4YA.js"; export{distributorMetrics}from"../chunk-M2TCZKRT.js"; export{ENGINEERING_OPTION_GROUPS,getBlueprintsForModule,getEngineeringGroup,getExperimentalsForBlueprint,getExperimentalsForModule}from"../chunk-GLWPSVFV.js";export{computeModifiers,sumMaterials}from"../chunk-5QSCLEEB.js"; export{ammunitionCapacity}from"../chunk-AA3K5XUE.js";export{armourMetrics}from"../chunk-Q5ALV3DI.js";export{effectiveHitPoints,mapDamageTypes,stackArmourResistance,stackShieldResistance,systemsResistance}from"../chunk-F44QX47A.js"; export{SLOT_RESTRICTION_LABELS,enumerateSlots,parseSlotName}from"../chunk-RAO35XDF.js"; //# sourceMappingURL=index.js.map
1
+ export{LoadoutEditError,ShipLoadout}from"../chunk-TSEDU73T.js";export{hasFrameShiftDriveJumpStats,hasMassCurveStats,hasPowerDistributorStats,hasPowerGenerationStats,hasShieldRegenerationStats,hasWeaponDamageStats}from"../chunk-JTQVWIGL.js";export{OUTFITTING_FAMILIES}from"../chunk-M6G3UDTX.js";export{SHIP_GUNSIGHTS,getShipGunsight,projectGunsight}from"../chunk-XSN53F7W.js";export{validateLoadout}from"../chunk-MVBVXK3G.js";export{SHIP_MODULE_LIMITS,calculateModuleLimits}from"../chunk-KPETDYQX.js";export{BuildMetrics}from"../chunk-F7VWRDSL.js"; export{SHIPS,getShipByName,getShipBySymbol,getShipSlots}from"../chunk-6UNAD74Z.js";export{getLoadoutModifier,inspectSlef,parseSlef,stringifySlef,toSlef}from"../chunk-T4MKUKYS.js";export{getSourceModuleValue,sourcePurchaseFromLoadout,sumSourceModuleValues}from"../chunk-NIURLW2F.js";export{weaponsCapacitorMetrics}from"../chunk-M4FZRDAH.js";export{armourPiercingFactor,combinedRateOfFire,damageFalloff,damagePerSecond,energyPerSecond,heatPerSecond,splitDamage,sumWeaponMetrics,sustainedDamagePerSecond,sustainedFireFactor,weaponMetrics}from"../chunk-AAU7OM47.js";export{powerBudget}from"../chunk-GGQMIQPC.js";export{getPreEngineeredJournalModifiers,getPreEngineeredModifiers,getPreEngineeredStats,identifyPreEngineeredVariant,unresolvedModifiers}from"../chunk-4U7KYQGK.js";export{getBulkheadsForShip,getModuleBySymbol,getModulesByName}from"../chunk-NZXSIHAW.js";export{PRE_ENGINEERED_MODULES,getPreEngineeredVariants,isPreEngineered}from"../chunk-BJU27V6C.js";export{shieldCapacitorMetrics}from"../chunk-XQJERZUS.js";export{cellBankSummary,shieldRecovery}from"../chunk-JMAXSXXQ.js";export{shieldMassCurveMultiplier,shieldMetrics,shieldStrength}from"../chunk-5VWACBTN.js"; export{OVERHEAT_HEAT_LEVEL,effectiveWeaponThermalLoad,equilibriumHeatLevel,heatLevelAtTime,heatMetrics,secondsToHeatLevel}from"../chunk-6HA2YIKW.js";export{frameShiftDriveMassFactor,fuelPerJump,singleJumpRange,totalRange}from"../chunk-VTMCSCXV.js";export{calculateCargoCapacity,calculateFuelCapacity,calculatePassengerCapacity,calculateUnladenMass}from"../chunk-C3LLPLLD.js"; export{mobilityCapacitorMetrics}from"../chunk-VEEBJFJ7.js";export{mobilityMetrics,thrusterMassCurveMultiplier}from"../chunk-A4QKXXZD.js"; export{BLUEPRINTS,getBlueprint,getBlueprintGrade}from"../chunk-AYAKU4YA.js"; export{distributorMetrics}from"../chunk-M2TCZKRT.js"; export{EXPERIMENTAL_EFFECTS,getExperimentalEffect}from"../chunk-77I24V6B.js";export{ammunitionCapacity}from"../chunk-AA3K5XUE.js";export{armourMetrics}from"../chunk-Q5ALV3DI.js";export{effectiveHitPoints,mapDamageTypes,stackArmourResistance,stackShieldResistance,systemsResistance}from"../chunk-F44QX47A.js"; export{computeModifiers,sumMaterials}from"../chunk-A7IVMYNF.js"; export{resolveBlueprintForModule}from"../chunk-XSLPWM5N.js";export{ENGINEERING_OPTION_GROUPS,getBlueprintsForModule,getEngineeringGroup,getExperimentalsForBlueprint,getExperimentalsForModule}from"../chunk-EHFHRQEP.js"; export{SLOT_RESTRICTION_LABELS,enumerateSlots,parseSlotName}from"../chunk-RAO35XDF.js"; //# sourceMappingURL=index.js.map
@@ -2,7 +2,7 @@
2
2
  * Pure aggregate calculations for ship loadouts.
3
3
  *
4
4
  * @remarks
5
- * The three sums here consume already-resolved module contributions, so they import no
5
+ * The four sums here consume already-resolved module contributions, so they import no
6
6
  * catalogue and know nothing of {@link ShipLoadout}. Every contribution is a known number
7
7
  * — a record missing one is refused long before it reaches a build — so each returns its
8
8
  * figure outright. The {@link CalculationResult} types below belong to the
@@ -59,6 +59,8 @@ interface LoadoutCalculationModule {
59
59
  readonly mass: number;
60
60
  /** Cargo tonnes; `undefined` for anything but a cargo rack. */
61
61
  readonly cargoCapacity?: number;
62
+ /** Berths; `undefined` for anything but a passenger cabin. */
63
+ readonly cabinCapacity?: number;
62
64
  /** Fuel tonnes; `undefined` for anything but a fuel tank. */
63
65
  readonly fuelCapacity?: number;
64
66
  }
@@ -84,6 +86,13 @@ declare function calculateUnladenMass(hullMass: number, modules: readonly Loadou
84
86
  * @returns Cargo capacity in tonnes. A build with no rack carries `0`.
85
87
  */
86
88
  declare function calculateCargoCapacity(modules: readonly LoadoutCalculationModule[]): number;
89
+ /**
90
+ * Sum fitted passenger cabins.
91
+ *
92
+ * @param modules - Resolved fitted-module contributions.
93
+ * @returns Passenger capacity, in berths. A build with no cabin carries `0`.
94
+ */
95
+ declare function calculatePassengerCapacity(modules: readonly LoadoutCalculationModule[]): number;
87
96
  /**
88
97
  * Sum fitted fuel tanks and the hull reserve.
89
98
  *
@@ -93,4 +102,4 @@ declare function calculateCargoCapacity(modules: readonly LoadoutCalculationModu
93
102
  */
94
103
  declare function calculateFuelCapacity(reserveFuelCapacity: number, modules: readonly LoadoutCalculationModule[]): FuelCapacity;
95
104
 
96
- export { type CalculationIssue, type CalculationIssueReason, type CalculationResult, type FuelCapacity, type LoadoutCalculationModule, calculateCargoCapacity, calculateFuelCapacity, calculateUnladenMass };
105
+ export { type CalculationIssue, type CalculationIssueReason, type CalculationResult, type FuelCapacity, type LoadoutCalculationModule, calculateCargoCapacity, calculateFuelCapacity, calculatePassengerCapacity, calculateUnladenMass };
@@ -1 +1 @@
1
- export{calculateCargoCapacity,calculateFuelCapacity,calculateUnladenMass}from"../chunk-DCB4COCL.js";//# sourceMappingURL=loadout-calculations.js.map
1
+ export{calculateCargoCapacity,calculateFuelCapacity,calculatePassengerCapacity,calculateUnladenMass}from"../chunk-C3LLPLLD.js";//# sourceMappingURL=loadout-calculations.js.map
@@ -1 +1 @@
1
- export{validateLoadout}from"../chunk-OJC6AUL7.js"; //# sourceMappingURL=loadout-validation.js.map
1
+ export{validateLoadout}from"../chunk-MVBVXK3G.js"; //# sourceMappingURL=loadout-validation.js.map
@@ -9,7 +9,7 @@ import './slots.js';
9
9
  *
10
10
  * @remarks
11
11
  * **This module pulls in every module catalogue** — it exists for consumers that
12
- * really do want to search all 1199 modules (a "resolve any module id" lookup, say).
12
+ * really do want to search all 1194 modules (a "resolve any module id" lookup, say).
13
13
  * If you only need one category, import that catalogue's module
14
14
  * (`./modules-core`, `./modules-internal`, `./modules-hardpoint`,
15
15
  * `./modules-utility`) and nothing else gets bundled.
@@ -35,7 +35,7 @@ import './slots.js';
35
35
  * ```ts
36
36
  * import { ALL_MODULES } from '@elite-dangerous-almanac/core/ships/modules-all';
37
37
  *
38
- * ALL_MODULES.length; // -> 1199
38
+ * ALL_MODULES.length; // -> 1194
39
39
  * ALL_MODULES.filter((m) => m.category === 'utility').length; // -> 35
40
40
  * ```
41
41
  */
@@ -1 +1 @@
1
- export{ALL_MODULES}from"../chunk-WR6ZFHTO.js"; //# sourceMappingURL=modules-all.js.map
1
+ export{ALL_MODULES}from"../chunk-ZEN5K3GE.js"; //# sourceMappingURL=modules-all.js.map
@@ -20,20 +20,20 @@ import './slots.js';
20
20
  */
21
21
 
22
22
  /**
23
- * All 521 core internal modules, in Frontier's registry order.
23
+ * All 516 core internal modules, in Frontier's registry order.
24
24
  *
25
25
  * @remarks
26
26
  * Every record has `category: 'core'`, added from the file it was read from
27
27
  * rather than repeated on every record. To keep the other three categories out of
28
28
  * your bundle, search this array directly — `CORE_MODULES.find((m) =>
29
29
  * m.symbol.toLowerCase() === wanted)`, lower-cased because a journal's symbols are —
30
- * rather than with the lookups in `./modules`, which default to all 1199 modules.
30
+ * rather than with the lookups in `./modules`, which default to all 1194 modules.
31
31
  *
32
32
  * @example
33
33
  * ```ts
34
34
  * import { CORE_MODULES } from '@elite-dangerous-almanac/core/ships/modules-core';
35
35
  *
36
- * CORE_MODULES.length; // -> 521
36
+ * CORE_MODULES.length; // -> 516
37
37
  * ```
38
38
  */
39
39
  declare const CORE_MODULES: readonly OutfittingModule[];
@@ -1 +1 @@
1
- export{CORE_MODULES}from"../chunk-FA5JVXVG.js"; //# sourceMappingURL=modules-core.js.map
1
+ export{CORE_MODULES}from"../chunk-ZZTDEDXJ.js"; //# sourceMappingURL=modules-core.js.map
@@ -28,7 +28,7 @@ import './slots.js';
28
28
  * rather than repeated on every record. To keep the other three categories out of
29
29
  * your bundle, search this array directly — `HARDPOINT_MODULES.find((m) =>
30
30
  * m.symbol.toLowerCase() === wanted)`, lower-cased because a journal's symbols are —
31
- * rather than with the lookups in `./modules`, which default to all 1199 modules.
31
+ * rather than with the lookups in `./modules`, which default to all 1194 modules.
32
32
  *
33
33
  * @example
34
34
  * ```ts
@@ -27,7 +27,7 @@ import './slots.js';
27
27
  * rather than repeated on every record. To keep the other three categories out of
28
28
  * your bundle, search this array directly — `INTERNAL_MODULES.find((m) =>
29
29
  * m.symbol.toLowerCase() === wanted)`, lower-cased because a journal's symbols are —
30
- * rather than with the lookups in `./modules`, which default to all 1199 modules.
30
+ * rather than with the lookups in `./modules`, which default to all 1194 modules.
31
31
  *
32
32
  * @example
33
33
  * ```ts
@@ -1 +1 @@
1
- export{INTERNAL_MODULES}from"../chunk-4CBMQULR.js"; //# sourceMappingURL=modules-internal.js.map
1
+ export{INTERNAL_MODULES}from"../chunk-FMA36V6A.js"; //# sourceMappingURL=modules-internal.js.map
@@ -27,7 +27,7 @@ import './slots.js';
27
27
  * rather than repeated on every record. To keep the other three categories out of
28
28
  * your bundle, search this array directly — `UTILITY_MODULES.find((m) =>
29
29
  * m.symbol.toLowerCase() === wanted)`, lower-cased because a journal's symbols are —
30
- * rather than with the lookups in `./modules`, which default to all 1199 modules.
30
+ * rather than with the lookups in `./modules`, which default to all 1194 modules.
31
31
  *
32
32
  * @example
33
33
  * ```ts
@@ -10,7 +10,7 @@ import { ModuleSlot, SlotRestriction } from './slots.js';
10
10
  * together — and the functions that find one ({@link getModuleBySymbol},
11
11
  * {@link getModulesByName}, {@link getBulkheadsForShip}).
12
12
  *
13
- * **Every lookup searches all 1199 modules by default.** A journal `Item` string does
13
+ * **Every lookup searches all 1194 modules by default.** A journal `Item` string does
14
14
  * not identify its outfitting category, so callers need no category for lookup:
15
15
  *
16
16
  * ```ts
@@ -23,11 +23,11 @@ import { ModuleSlot, SlotRestriction } from './slots.js';
23
23
  *
24
24
  * | Module | Export | Entries |
25
25
  * | --- | --- | --- |
26
- * | `./modules-core` | `CORE_MODULES` | 521 |
26
+ * | `./modules-core` | `CORE_MODULES` | 516 |
27
27
  * | `./modules-internal` | `INTERNAL_MODULES` | 484 |
28
28
  * | `./modules-hardpoint` | `HARDPOINT_MODULES` | 159 |
29
29
  * | `./modules-utility` | `UTILITY_MODULES` | 35 |
30
- * | `./modules-all` | `ALL_MODULES` | 1199 (the default) |
30
+ * | `./modules-all` | `ALL_MODULES` | 1194 (the default) |
31
31
  *
32
32
  * Those four are for **listing** a category — an outfitting screen's hardpoint tab.
33
33
  * They make poor narrowing arguments: no module symbol or display name is shared
@@ -435,7 +435,8 @@ interface OutfittingModuleIdentity {
435
435
  *
436
436
  * @remarks
437
437
  * Absent on the handful of records no registry prices: the starter `*_free`
438
- * variants, the size-8 frame shift drives, and a few internals no outfitting
438
+ * variants, the two Community Goal Corrosion Resistant Cargo Racks, and the 1B
439
+ * shield generator — records no outfitting
439
440
  * registry carries a figure for — among them the two Corrosion Resistant Cargo
440
441
  * Racks no station sells, which are not free. Treat `undefined` as "unknown", never
441
442
  * as free — see [`data/ships/SOURCES.md`](https://github.com/DarkSession/Elite-Dangerous-Almanac/blob/main/data/ships/SOURCES.md).
@@ -525,7 +526,7 @@ interface OutfittingModuleStats {
525
526
  *
526
527
  * @remarks
527
528
  * A sparse capability flag on the 36 Overcharge drives and absent everywhere else,
528
- * including on the 36 ordinary drives of the same sizes and ratings. Read it rather
529
+ * including on the 31 ordinary drives of the same sizes and ratings. Read it rather
529
530
  * than matching `Int_Hyperdrive_Overcharge` on the symbol: the capability is the
530
531
  * record's to state, and a pre-engineered or fitted article carries the flag
531
532
  * through while its symbol is not always the one you looked up.
@@ -569,6 +570,8 @@ interface OutfittingModuleStats {
569
570
  readonly fuelCapacity?: number;
570
571
  /** Cargo rack: capacity, in tonnes. */
571
572
  readonly cargoCapacity?: number;
573
+ /** Passenger cabin: capacity, in passenger berths. */
574
+ readonly cabinCapacity?: number;
572
575
  /** Shield generator: regeneration rate, MJ per second. */
573
576
  readonly shieldRegenRate?: number;
574
577
  /** Shield generator: broken (down) regeneration rate, MJ per second. */
@@ -795,7 +798,7 @@ interface OutfittingModule extends OutfittingModuleIdentity, OutfittingModuleSta
795
798
  * @param symbol - The internal identifier, e.g. `"Hpt_PulseLaser_Fixed_Small"`.
796
799
  * Leading/trailing whitespace and case are ignored, so the journal's lower-cased
797
800
  * form resolves too.
798
- * @param modules - Optional subset to search instead of all 1199 modules —
801
+ * @param modules - Optional subset to search instead of all 1194 modules —
799
802
  * `CORE_MODULES`, `INTERNAL_MODULES`, `HARDPOINT_MODULES`, `UTILITY_MODULES`, or any
800
803
  * array you have filtered yourself. Omit it unless you specifically want to exclude
801
804
  * the other categories; a symbol is unique across all four.
@@ -1 +1 @@
1
- export{getBulkheadsForShip,getModuleBySymbol,getModulesByName}from"../chunk-HBQELOBY.js"; //# sourceMappingURL=modules.js.map
1
+ export{getBulkheadsForShip,getModuleBySymbol,getModulesByName}from"../chunk-NZXSIHAW.js"; //# sourceMappingURL=modules.js.map
@@ -1 +1 @@
1
- export{getPreEngineeredJournalModifiers,getPreEngineeredModifiers,getPreEngineeredStats,identifyPreEngineeredVariant,unresolvedModifiers}from"../chunk-XM4VA2WE.js"; //# sourceMappingURL=pre-engineered-stats.js.map
1
+ export{getPreEngineeredJournalModifiers,getPreEngineeredModifiers,getPreEngineeredStats,identifyPreEngineeredVariant,unresolvedModifiers}from"../chunk-4U7KYQGK.js"; //# sourceMappingURL=pre-engineered-stats.js.map
@@ -1 +1 @@
1
- export{PRE_ENGINEERED_MODULES,getPreEngineeredVariants,isPreEngineered}from"../chunk-KPJ77VPS.js"; //# sourceMappingURL=pre-engineered.js.map
1
+ export{PRE_ENGINEERED_MODULES,getPreEngineeredVariants,isPreEngineered}from"../chunk-BJU27V6C.js"; //# sourceMappingURL=pre-engineered.js.map