@elite-dangerous-almanac/core 0.2.8 → 0.2.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.
Files changed (262) hide show
  1. package/PROVENANCE/astro/SOURCES.md +13 -12
  2. package/PROVENANCE/commodities/SOURCES.md +50 -6
  3. package/PROVENANCE/equipment/SOURCES.md +98 -20
  4. package/PROVENANCE/i18n/SOURCES.md +186 -80
  5. package/PROVENANCE/ships/SOURCES.md +344 -200
  6. package/README.md +10 -2
  7. package/THIRD_PARTY_NOTICES.md +11 -3
  8. package/dist/astro/body-rings.d.ts +2 -2
  9. package/dist/astro/codex-region-lookup.d.ts +1 -1
  10. package/dist/astro/codex-region-lookup.js +1 -1
  11. package/dist/astro/hand-authored-regions.d.ts +1 -1
  12. package/dist/astro/index.d.ts +1 -1
  13. package/dist/astro/index.js +1 -1
  14. package/dist/astro/naming-region-origins.d.ts +1 -1
  15. package/dist/astro/naming-region-origins.js +1 -1
  16. package/dist/astro/nebulae-all.d.ts +4 -6
  17. package/dist/astro/nebulae-all.js +1 -1
  18. package/dist/astro/nebulae-all.js.map +1 -1
  19. package/dist/astro/nebulae-planetary.d.ts +4 -5
  20. package/dist/astro/nebulae-planetary.js +1 -1
  21. package/dist/astro/nebulae-procgen.d.ts +3 -3
  22. package/dist/astro/nebulae-real.d.ts +3 -3
  23. package/dist/astro/nebulae.d.ts +8 -8
  24. package/dist/astro/permit-locked-regions.d.ts +2 -2
  25. package/dist/astro/permit-locked-systems.d.ts +1 -1
  26. package/dist/astro/permit-locks.d.ts +2 -2
  27. package/dist/astro/procedural-system.d.ts +3 -3
  28. package/dist/astro/procedural-system.js +1 -1
  29. package/dist/astro/system-address.d.ts +1 -1
  30. package/dist/astro/system-address.js +1 -1
  31. package/dist/astro/system-name.js +1 -1
  32. package/dist/{chunk-XSLPWM5N.js → chunk-2J6NNI3Y.js} +1 -1
  33. package/dist/{chunk-DWRNXUAX.js → chunk-2KIZN3BY.js} +1 -1
  34. package/dist/{chunk-J7BM5NGK.js → chunk-2TY42PTF.js} +1 -1
  35. package/dist/{chunk-773VO2GK.js → chunk-4T3TTYUT.js} +1 -1
  36. package/dist/{chunk-773VO2GK.js.map → chunk-4T3TTYUT.js.map} +1 -1
  37. package/dist/{chunk-W5ULI75F.js → chunk-7C7NJWCF.js} +1 -1
  38. package/dist/{chunk-W5ULI75F.js.map → chunk-7C7NJWCF.js.map} +1 -1
  39. package/dist/{chunk-IMNOEFUE.js → chunk-7Y5EK2VO.js} +1 -1
  40. package/dist/{chunk-IMNOEFUE.js.map → chunk-7Y5EK2VO.js.map} +1 -1
  41. package/dist/{chunk-2OBUSQA7.js → chunk-AAU7OM47.js} +1 -1
  42. package/dist/{chunk-2OBUSQA7.js.map → chunk-AAU7OM47.js.map} +1 -1
  43. package/dist/{chunk-GIGRBFIJ.js → chunk-AC3U7LRK.js} +1 -1
  44. package/dist/{chunk-GIGRBFIJ.js.map → chunk-AC3U7LRK.js.map} +1 -1
  45. package/dist/{chunk-BJU27V6C.js → chunk-AUBV6S7V.js} +1 -1
  46. package/dist/{chunk-BJU27V6C.js.map → chunk-AUBV6S7V.js.map} +1 -1
  47. package/dist/{chunk-DI5RXSJR.js → chunk-BVLBS2QY.js} +1 -1
  48. package/dist/{chunk-DI5RXSJR.js.map → chunk-BVLBS2QY.js.map} +1 -1
  49. package/dist/{chunk-IN36YSS4.js → chunk-C3YZ5KTA.js} +1 -1
  50. package/dist/{chunk-IN36YSS4.js.map → chunk-C3YZ5KTA.js.map} +1 -1
  51. package/dist/{chunk-6UNAD74Z.js → chunk-C4FUV6GF.js} +1 -1
  52. package/dist/{chunk-6UNAD74Z.js.map → chunk-C4FUV6GF.js.map} +1 -1
  53. package/dist/chunk-CEF7SMB2.js +1 -0
  54. package/dist/chunk-CEF7SMB2.js.map +1 -0
  55. package/dist/chunk-E2HDF6PJ.js +1 -0
  56. package/dist/chunk-E2HDF6PJ.js.map +1 -0
  57. package/dist/{chunk-OFZGNWBT.js → chunk-ETREYN5U.js} +1 -1
  58. package/dist/{chunk-OFZGNWBT.js.map → chunk-ETREYN5U.js.map} +1 -1
  59. package/dist/{chunk-KBCA4GEZ.js → chunk-FP2TQJZP.js} +1 -1
  60. package/dist/{chunk-YJAH6DFY.js → chunk-G7WARJ3X.js} +1 -1
  61. package/dist/chunk-G7WARJ3X.js.map +1 -0
  62. package/dist/{chunk-Z4OUB4SJ.js → chunk-GLTCCDN5.js} +1 -1
  63. package/dist/{chunk-Z4OUB4SJ.js.map → chunk-GLTCCDN5.js.map} +1 -1
  64. package/dist/chunk-GVNTKCVF.js +1 -0
  65. package/dist/chunk-GVNTKCVF.js.map +1 -0
  66. package/dist/{chunk-Q6YDPREF.js → chunk-GZLD7RTK.js} +1 -1
  67. package/dist/{chunk-Q6YDPREF.js.map → chunk-GZLD7RTK.js.map} +1 -1
  68. package/dist/{chunk-SC4MEHVY.js → chunk-HIJR7DOC.js} +1 -1
  69. package/dist/{chunk-SC4MEHVY.js.map → chunk-HIJR7DOC.js.map} +1 -1
  70. package/dist/{chunk-ETWMPMZP.js → chunk-K5JK3XQB.js} +1 -1
  71. package/dist/{chunk-GRIK3EDH.js → chunk-KY7KSPU6.js} +1 -1
  72. package/dist/{chunk-GRIK3EDH.js.map → chunk-KY7KSPU6.js.map} +1 -1
  73. package/dist/{chunk-EHFHRQEP.js → chunk-M4STXLXO.js} +1 -1
  74. package/dist/{chunk-EHFHRQEP.js.map → chunk-M4STXLXO.js.map} +1 -1
  75. package/dist/{chunk-5YEHJM6V.js → chunk-OSMBAFRW.js} +1 -1
  76. package/dist/{chunk-5YEHJM6V.js.map → chunk-OSMBAFRW.js.map} +1 -1
  77. package/dist/chunk-PIU24HRN.js +1 -0
  78. package/dist/chunk-PIU24HRN.js.map +1 -0
  79. package/dist/{chunk-ELT3FEA4.js → chunk-PKKBYBL4.js} +1 -1
  80. package/dist/{chunk-ELT3FEA4.js.map → chunk-PKKBYBL4.js.map} +1 -1
  81. package/dist/{chunk-6HMIF2RJ.js → chunk-Q647OXON.js} +1 -1
  82. package/dist/{chunk-6HMIF2RJ.js.map → chunk-Q647OXON.js.map} +1 -1
  83. package/dist/{chunk-BMQM4JBL.js → chunk-QPT2WJYN.js} +1 -1
  84. package/dist/{chunk-BMQM4JBL.js.map → chunk-QPT2WJYN.js.map} +1 -1
  85. package/dist/{chunk-3WGXGBW5.js → chunk-R2AEZYX7.js} +1 -1
  86. package/dist/{chunk-FJIWJYKO.js → chunk-RA4YJBU5.js} +1 -1
  87. package/dist/chunk-RA4YJBU5.js.map +1 -0
  88. package/dist/{chunk-MRLUWHGI.js → chunk-RJ3ZLQRB.js} +1 -1
  89. package/dist/{chunk-MRLUWHGI.js.map → chunk-RJ3ZLQRB.js.map} +1 -1
  90. package/dist/chunk-SFEQXUIA.js +1 -0
  91. package/dist/{chunk-WV7QCDL5.js → chunk-SIL356HB.js} +1 -1
  92. package/dist/{chunk-WV7QCDL5.js.map → chunk-SIL356HB.js.map} +1 -1
  93. package/dist/{chunk-OLKOWR7S.js → chunk-SS7HVNP5.js} +1 -1
  94. package/dist/{chunk-OLKOWR7S.js.map → chunk-SS7HVNP5.js.map} +1 -1
  95. package/dist/chunk-TRGHPX2O.js +1 -0
  96. package/dist/chunk-TRGHPX2O.js.map +1 -0
  97. package/dist/{chunk-GMTAFUAG.js → chunk-TYRH73MO.js} +1 -1
  98. package/dist/{chunk-GMTAFUAG.js.map → chunk-TYRH73MO.js.map} +1 -1
  99. package/dist/{chunk-7TVFV3VO.js → chunk-U3IRMXMR.js} +1 -1
  100. package/dist/{chunk-A7IVMYNF.js → chunk-U73MBQ45.js} +1 -1
  101. package/dist/{chunk-A7IVMYNF.js.map → chunk-U73MBQ45.js.map} +1 -1
  102. package/dist/{chunk-IZIIGK3W.js → chunk-UE22QU7A.js} +1 -1
  103. package/dist/{chunk-IZIIGK3W.js.map → chunk-UE22QU7A.js.map} +1 -1
  104. package/dist/{chunk-DBDCOHI4.js → chunk-UI5RROGI.js} +1 -1
  105. package/dist/{chunk-DBDCOHI4.js.map → chunk-UI5RROGI.js.map} +1 -1
  106. package/dist/chunk-URRPEUIK.js +1 -0
  107. package/dist/{chunk-QJECDMQQ.js.map → chunk-URRPEUIK.js.map} +1 -1
  108. package/dist/chunk-UTWZZOSA.js +1 -0
  109. package/dist/chunk-UTWZZOSA.js.map +1 -0
  110. package/dist/chunk-UVX7RCMP.js +1 -0
  111. package/dist/chunk-UVX7RCMP.js.map +1 -0
  112. package/dist/{chunk-7ATBEOVC.js → chunk-WG4DPXJI.js} +1 -1
  113. package/dist/{chunk-XFDMCPDW.js → chunk-WZIBBJHA.js} +1 -1
  114. package/dist/{chunk-XFDMCPDW.js.map → chunk-WZIBBJHA.js.map} +1 -1
  115. package/dist/{chunk-7EWZGDWY.js → chunk-X3MXPE7G.js} +1 -1
  116. package/dist/{chunk-7EWZGDWY.js.map → chunk-X3MXPE7G.js.map} +1 -1
  117. package/dist/{chunk-JCYOE3C4.js → chunk-XQJERZUS.js} +1 -1
  118. package/dist/{chunk-JCYOE3C4.js.map → chunk-XQJERZUS.js.map} +1 -1
  119. package/dist/{chunk-SD6GNFDX.js → chunk-YBE5M27G.js} +1 -1
  120. package/dist/{chunk-SD6GNFDX.js.map → chunk-YBE5M27G.js.map} +1 -1
  121. package/dist/chunk-ZBUTGTZ3.js +1 -0
  122. package/dist/chunk-ZBUTGTZ3.js.map +1 -0
  123. package/dist/commodities/commodities-all.d.ts +2 -2
  124. package/dist/commodities/commodities-all.js +1 -1
  125. package/dist/commodities/commodities-rare.d.ts +3 -4
  126. package/dist/commodities/commodities-rare.js +1 -1
  127. package/dist/commodities/commodities-standard.d.ts +7 -7
  128. package/dist/commodities/commodities-standard.js +1 -1
  129. package/dist/commodities/commodities.d.ts +12 -12
  130. package/dist/commodities/commodities.js +1 -1
  131. package/dist/commodities/index.js +1 -1
  132. package/dist/equipment/engineering.d.ts +11 -6
  133. package/dist/equipment/engineering.js +1 -1
  134. package/dist/equipment/index.d.ts +4 -4
  135. package/dist/equipment/index.js +1 -1
  136. package/dist/equipment/modification-journal.js +1 -1
  137. package/dist/equipment/modifications.d.ts +23 -14
  138. package/dist/equipment/modifications.js +1 -1
  139. package/dist/equipment/suits.d.ts +2 -145
  140. package/dist/equipment/suits.js +1 -1
  141. package/dist/equipment/tools.d.ts +102 -0
  142. package/dist/equipment/tools.js +1 -0
  143. package/dist/equipment/tools.js.map +1 -0
  144. package/dist/equipment/upgrade-costs.d.ts +2 -3
  145. package/dist/equipment/upgrade-costs.js +1 -1
  146. package/dist/equipment/weapons.d.ts +2 -135
  147. package/dist/equipment/weapons.js +1 -1
  148. package/dist/i18n/blueprints.d.ts +2 -3
  149. package/dist/i18n/blueprints.js +1 -1
  150. package/dist/i18n/commodities.d.ts +36 -0
  151. package/dist/i18n/commodities.js +1 -0
  152. package/dist/i18n/commodities.js.map +1 -0
  153. package/dist/i18n/experimental-effect-descriptions.d.ts +5 -6
  154. package/dist/i18n/experimental-effect-descriptions.js +1 -1
  155. package/dist/i18n/experimental-effects.d.ts +2 -3
  156. package/dist/i18n/experimental-effects.js +1 -1
  157. package/dist/i18n/index.d.ts +19 -9
  158. package/dist/i18n/index.js +1 -1
  159. package/dist/i18n/materials.d.ts +2 -4
  160. package/dist/i18n/materials.js +1 -1
  161. package/dist/i18n/micro-resources.d.ts +2 -4
  162. package/dist/i18n/micro-resources.js +1 -1
  163. package/dist/i18n/module-families.d.ts +3 -5
  164. package/dist/i18n/module-families.js +1 -1
  165. package/dist/i18n/modules.d.ts +3 -6
  166. package/dist/i18n/modules.js +1 -1
  167. package/dist/i18n/personal-modifications.d.ts +4 -6
  168. package/dist/i18n/personal-modifications.js +1 -1
  169. package/dist/i18n/personal-tools.d.ts +33 -0
  170. package/dist/i18n/personal-tools.js +1 -0
  171. package/dist/i18n/personal-tools.js.map +1 -0
  172. package/dist/i18n/personal-weapons.d.ts +3 -4
  173. package/dist/i18n/personal-weapons.js +1 -1
  174. package/dist/i18n/pre-engineered.d.ts +1 -1
  175. package/dist/i18n/slots.d.ts +2 -2
  176. package/dist/i18n/suits.d.ts +36 -6
  177. package/dist/i18n/suits.js +1 -1
  178. package/dist/materials/index.d.ts +4 -3
  179. package/dist/materials/index.js +1 -1
  180. package/dist/materials/materials-all.d.ts +2 -2
  181. package/dist/materials/materials-all.js +1 -1
  182. package/dist/materials/materials-raw.d.ts +3 -4
  183. package/dist/materials/materials-raw.js +1 -1
  184. package/dist/materials/materials.d.ts +18 -15
  185. package/dist/materials/materials.js +1 -1
  186. package/dist/materials/micro-resources-all.d.ts +2 -2
  187. package/dist/materials/micro-resources-all.js +1 -1
  188. package/dist/materials/micro-resources-component.d.ts +2 -2
  189. package/dist/materials/micro-resources-consumable.d.ts +2 -2
  190. package/dist/materials/micro-resources-data.d.ts +2 -2
  191. package/dist/materials/micro-resources-item.d.ts +2 -2
  192. package/dist/materials/micro-resources.d.ts +17 -14
  193. package/dist/materials/micro-resources.js +1 -1
  194. package/dist/ships/ammunition.d.ts +4 -4
  195. package/dist/ships/blueprint-costs.d.ts +13 -13
  196. package/dist/ships/blueprint-costs.js +1 -1
  197. package/dist/ships/blueprint-journal.d.ts +3 -3
  198. package/dist/ships/blueprint-journal.js +1 -1
  199. package/dist/ships/blueprints.d.ts +3 -3
  200. package/dist/ships/build-metrics.d.ts +2 -1
  201. package/dist/ships/build-metrics.js +1 -1
  202. package/dist/ships/default-loadouts.d.ts +2 -3
  203. package/dist/ships/default-loadouts.js +1 -1
  204. package/dist/ships/engineering-options.d.ts +29 -32
  205. package/dist/ships/engineering-options.js +1 -1
  206. package/dist/ships/engineering.d.ts +1 -2
  207. package/dist/ships/engineering.js +1 -1
  208. package/dist/ships/experimental-effect-costs.d.ts +1 -1
  209. package/dist/ships/gunsights.d.ts +3 -3
  210. package/dist/ships/heat.d.ts +1 -1
  211. package/dist/ships/index.d.ts +4 -5
  212. package/dist/ships/index.js +1 -1
  213. package/dist/ships/loadout-validation.d.ts +1 -1
  214. package/dist/ships/module-families.d.ts +1 -1
  215. package/dist/ships/modules-all.d.ts +2 -3
  216. package/dist/ships/modules-all.js +1 -1
  217. package/dist/ships/modules-core.d.ts +3 -3
  218. package/dist/ships/modules-hardpoint.d.ts +4 -5
  219. package/dist/ships/modules-hardpoint.js +1 -1
  220. package/dist/ships/modules-internal.d.ts +5 -6
  221. package/dist/ships/modules-internal.js +1 -1
  222. package/dist/ships/modules-utility.d.ts +3 -4
  223. package/dist/ships/modules-utility.js +1 -1
  224. package/dist/ships/modules.d.ts +26 -24
  225. package/dist/ships/modules.js +1 -1
  226. package/dist/ships/pre-engineered-stats.d.ts +1 -1
  227. package/dist/ships/pre-engineered-stats.js +1 -1
  228. package/dist/ships/pre-engineered.d.ts +9 -10
  229. package/dist/ships/pre-engineered.js +1 -1
  230. package/dist/ships/shield-capacitor.js +1 -1
  231. package/dist/ships/ship-loadout.d.ts +7 -7
  232. package/dist/ships/ship-loadout.js +1 -1
  233. package/dist/ships/ships.d.ts +1 -2
  234. package/dist/ships/ships.js +1 -1
  235. package/dist/ships/slots.d.ts +5 -5
  236. package/dist/ships/weapons.js +1 -1
  237. package/dist/suits-B37rAORs.d.ts +414 -0
  238. package/dist/{system-address-cyJaeZIS.d.ts → system-address-DmzXRD48.d.ts} +6 -4
  239. package/package.json +13 -1
  240. package/dist/chunk-77TT4K53.js +0 -1
  241. package/dist/chunk-DAQ3PJ4R.js +0 -1
  242. package/dist/chunk-DAQ3PJ4R.js.map +0 -1
  243. package/dist/chunk-DHACRCLI.js +0 -1
  244. package/dist/chunk-DHACRCLI.js.map +0 -1
  245. package/dist/chunk-FJIWJYKO.js.map +0 -1
  246. package/dist/chunk-IUSMAX5T.js +0 -1
  247. package/dist/chunk-IUSMAX5T.js.map +0 -1
  248. package/dist/chunk-LWNBWRKL.js +0 -1
  249. package/dist/chunk-LWNBWRKL.js.map +0 -1
  250. package/dist/chunk-MT5AHPNP.js +0 -1
  251. package/dist/chunk-MT5AHPNP.js.map +0 -1
  252. package/dist/chunk-QJECDMQQ.js +0 -1
  253. package/dist/chunk-YJAH6DFY.js.map +0 -1
  254. /package/dist/{chunk-XSLPWM5N.js.map → chunk-2J6NNI3Y.js.map} +0 -0
  255. /package/dist/{chunk-DWRNXUAX.js.map → chunk-2KIZN3BY.js.map} +0 -0
  256. /package/dist/{chunk-J7BM5NGK.js.map → chunk-2TY42PTF.js.map} +0 -0
  257. /package/dist/{chunk-KBCA4GEZ.js.map → chunk-FP2TQJZP.js.map} +0 -0
  258. /package/dist/{chunk-ETWMPMZP.js.map → chunk-K5JK3XQB.js.map} +0 -0
  259. /package/dist/{chunk-3WGXGBW5.js.map → chunk-R2AEZYX7.js.map} +0 -0
  260. /package/dist/{chunk-77TT4K53.js.map → chunk-SFEQXUIA.js.map} +0 -0
  261. /package/dist/{chunk-7TVFV3VO.js.map → chunk-U3IRMXMR.js.map} +0 -0
  262. /package/dist/{chunk-7ATBEOVC.js.map → chunk-WG4DPXJI.js.map} +0 -0
@@ -24,7 +24,8 @@
24
24
  * The same holds for `Weapon_Overcharged`, which the game writes for every weapon, though
25
25
  * a multi-cannon's also cuts the clip — 3% at grade 1 falling to 15% at grade 5.
26
26
  * `BLUEPRINTS` keys that side under `MC_Overcharged`, and this is the common case: 70 of
27
- * the build corpus's 1902 declared entries go through it, against one for the scanners.
27
+ * the build corpus's 1902 declared entries go through it, against a single entry for the
28
+ * Long Range collision above.
28
29
  * The clip penalty is folded only where a module's menu offers the multi-cannon recipe —
29
30
  * anti-xeno multi-cannons have no ordinary menu, and cannons, fragment cannons and plasma
30
31
  * accelerators take no clip leg. See
@@ -49,8 +50,7 @@
49
50
  * @throws {TypeError} If `blueprintSymbol` is not a string, including when it is missing — this
50
51
  * returns an id rather than reporting whether one is known, so there is no miss for a
51
52
  * nullish one to be. A nullish `moduleSymbol` *is* a miss: an unknown module offers no
52
- * menu,
53
- * and `blueprintSymbol` comes back unchanged.
53
+ * menu, and `blueprintSymbol` comes back unchanged.
54
54
  * @example
55
55
  * ```ts
56
56
  * import { resolveBlueprintForModule } from '@elite-dangerous-almanac/core/ships/blueprint-journal';
@@ -1 +1 @@
1
- export{resolveBlueprintForModule}from"../chunk-XSLPWM5N.js"; //# sourceMappingURL=blueprint-journal.js.map
1
+ export{resolveBlueprintForModule}from"../chunk-2J6NNI3Y.js"; //# sourceMappingURL=blueprint-journal.js.map
@@ -29,8 +29,8 @@ import './slots.js';
29
29
  * leaves it alone. `ships/blueprint-journal` keeps those three spellings apart from this
30
30
  * full mechanics catalogue and resolves one against a module.
31
31
  *
32
- * A further 25 keys are the **Operations** ids: 21 recipes a module is *sold*
33
- * carrying (`ships/pre-engineered`) and four Operations recipes a player rolls at an
32
+ * Further keys are the **Operations** ids: recipes a module is *sold*
33
+ * carrying (`ships/pre-engineered`) and the four Operations recipes a player rolls at an
34
34
  * engineer (`ships/engineering-options`). No journal spelling has been observed for those
35
35
  * Operations ids — a gap in the evidence, not a claim that the game writes none.
36
36
  *
@@ -39,7 +39,7 @@ import './slots.js';
39
39
  * Guardian modules; the Inara registry's `recipe_guardianmodule_sturdy` and
40
40
  * `recipe_guardianweapon_sturdy` are that registry's own spellings of the same recipe and
41
41
  * are not keys here.
42
- * Enumerate the 107 blueprints with `Object.keys(BLUEPRINTS)`.
42
+ * Enumerate every blueprint with `Object.keys(BLUEPRINTS)`.
43
43
  *
44
44
  * Data from EDCD/coriolis-data (`modifications/blueprints.json`): `features` from the
45
45
  * grade with journal Labels resolved via EDSY; see
@@ -42,7 +42,8 @@ import './loadout-validation.js';
42
42
  * Every calculation here is also available data-free: `./jump-range`, `./power`,
43
43
  * `./heat`, `./mobility`, `./mobility-capacitor`, `./shields`, `./shield-capacitor`,
44
44
  * `./shield-recovery`, `./armour`, `./weapons`, `./weapons-capacitor` and
45
- * `./distributor` each take a plain input object and import no catalogue. This class is the convenience that reads those inputs off a build.
45
+ * `./distributor` each take a plain input object and import no catalogue. This class is
46
+ * the convenience that reads those inputs off a build.
46
47
  *
47
48
  * Metrics that depend on optional build state return a {@link CalculationResult}: its
48
49
  * `value` is the completed figure or `null`, and `issues` explains an unavailable one.
@@ -1 +1 @@
1
- export{BuildMetrics}from"../chunk-YJAH6DFY.js"; //# sourceMappingURL=build-metrics.js.map
1
+ export{BuildMetrics}from"../chunk-G7WARJ3X.js"; //# sourceMappingURL=build-metrics.js.map
@@ -31,7 +31,7 @@ interface DefaultLoadout {
31
31
  readonly modules: readonly DefaultLoadoutModule[];
32
32
  }
33
33
  /**
34
- * Default loadouts for all 48 player-flyable hulls, in
34
+ * Default loadouts for every player-flyable hull, in
35
35
  * {@link ships!SHIPS | SHIPS} catalogue order.
36
36
  *
37
37
  * @remarks
@@ -42,7 +42,6 @@ interface DefaultLoadout {
42
42
  * ```ts
43
43
  * import { DEFAULT_LOADOUTS } from '@elite-dangerous-almanac/core/ships/default-loadouts';
44
44
  *
45
- * DEFAULT_LOADOUTS.length; // -> 48
46
45
  * DEFAULT_LOADOUTS[0]?.modules.find((module) => module.slot === 'FrameShiftDrive')?.symbol;
47
46
  * // -> 'Int_Hyperdrive_Size2_Class1'
48
47
  * ```
@@ -60,7 +59,7 @@ declare const DEFAULT_LOADOUTS: readonly DefaultLoadout[];
60
59
  * ```ts
61
60
  * import { getDefaultLoadout } from '@elite-dangerous-almanac/core/ships/default-loadouts';
62
61
  *
63
- * getDefaultLoadout(' sidewinder ')?.modules.length; // -> 16
62
+ * getDefaultLoadout(' sidewinder ')?.symbol; // -> 'SideWinder'
64
63
  * getDefaultLoadout('not_a_ship'); // -> null
65
64
  * ```
66
65
  */
@@ -1 +1 @@
1
- export{DEFAULT_LOADOUTS,getDefaultLoadout}from"../chunk-GRIK3EDH.js"; //# sourceMappingURL=default-loadouts.js.map
1
+ export{DEFAULT_LOADOUTS,getDefaultLoadout}from"../chunk-KY7KSPU6.js"; //# sourceMappingURL=default-loadouts.js.map
@@ -8,20 +8,17 @@
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 1000 of the 1194 modules — every stock module with an ordinary
12
- * engineering menu. The other 194 have no ordinary menu: whole families (fuel tanks,
11
+ * The catalogue groups every stock module with an ordinary engineering menu. The rest
12
+ * 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
15
15
  * Analyser, the mining launchers, Shock Cannons, Nanite Torpedo Pylons, fighter and vehicle
16
16
  * hangars, docking computers and Supercruise Assist, the module stabilisers, the planetary
17
17
  * approach suites, the cargo hatch and the AX utility modules), plus the individual
18
18
  * modules denied every ordinary blueprint — every anti-xeno multi-cannon and missile rack,
19
- * the Enzyme Missile Rack, all seven mining tools, the remote-release launchers and the Mk II
20
- * Plasma Shock Accelerator. Six module symbols without a menu still have a Mercenary upgrade
21
- * route: the Enzyme Missile Rack, fixed Mining Laser, fixed Abrasion Blaster, size-5 class-2
22
- * Module Reinforcement Package, and size-5 and size-6 cargo racks. Their qualifying articles can
23
- * take grades 2–5 of their bespoke recipes through
24
- * `ships/pre-engineered`; fixed community-goal cargo racks remain final articles.
19
+ * the Enzyme Missile Rack, every mining tool, the remote-release launchers and the Mk II
20
+ * Plasma Shock Accelerator. A few module symbols without a menu still have a Mercenary
21
+ * upgrade route through `ships/pre-engineered`; {@link getEngineeringGroup} names them.
25
22
  *
26
23
  * **A group is one menu.** Where the same kind of module comes in two flavours with
27
24
  * different menus, they are two groups: a Guardian Power Plant takes only Anti-Guardian
@@ -102,8 +99,7 @@ interface EngineeringOptionGroup {
102
99
  * ```ts
103
100
  * import { ENGINEERING_OPTION_GROUPS } from '@elite-dangerous-almanac/core/ships/engineering-options';
104
101
  *
105
- * ENGINEERING_OPTION_GROUPS['beamLasers'].experimentals.length; // -> 9
106
- * ENGINEERING_OPTION_GROUPS['beamLasers'].blueprints.length; // -> 7
102
+ * ENGINEERING_OPTION_GROUPS['beamLasers'].blueprints.includes('Weapon_Efficient'); // -> true
107
103
  * ```
108
104
  */
109
105
  declare const ENGINEERING_OPTION_GROUPS: Readonly<Record<EngineeringGroupId, EngineeringOptionGroup>>;
@@ -111,11 +107,13 @@ declare const ENGINEERING_OPTION_GROUPS: Readonly<Record<EngineeringGroupId, Eng
111
107
  * The group id a module is engineered as, or `null` when this catalogue does not group
112
108
  * it.
113
109
  *
114
- * `null` means **"this stock module has no ordinary engineering menu"**. For 188 of the
115
- * 194 ungrouped modules that is the same as "has no engineering route". Six instead
116
- * retain Mercenary upgrade routes: the Enzyme Missile Rack, fixed Mining Laser and Abrasion
110
+ * `null` means **"this stock module has no ordinary engineering menu"**. For nearly every
111
+ * ungrouped module that is the same as "has no engineering route". A few instead keep a
112
+ * Mercenary upgrade route: the Enzyme Missile Rack, fixed Mining Laser and Abrasion
117
113
  * Blaster, size-5 and size-6 cargo racks, and size-5 class-2 Module Reinforcement Package
118
- * have no stock menu while their qualifying Mercenary articles retain bespoke upgrade routes.
114
+ * have no stock menu, while their qualifying Mercenary articles take grades 2–5 of their
115
+ * bespoke recipes through `ships/pre-engineered`. The fixed community-goal cargo racks are
116
+ * final articles.
119
117
  * The build corpus also contains an unsupported declaration on the Mk II Plasma Shock
120
118
  * Accelerator, which upstream denies every blueprint.
121
119
  *
@@ -184,15 +182,15 @@ declare function getBlueprintsForModule(symbol: string): readonly string[];
184
182
  * Every experimental effect in a stock module's ordinary menu — its group's list, minus
185
183
  * the effects that particular module is excluded from.
186
184
  *
187
- * Most modules take their whole group's list, but 23 are exceptions: 13 Multi-cannons
188
- * cannot take Phasing Sequence, six dumbfire racks cannot take Drag Munitions, and four
185
+ * Most modules take their whole group's list, but some are exceptions: most Multi-cannons
186
+ * cannot take Phasing Sequence, dumbfire racks cannot take Drag Munitions, and some
189
187
  * missile racks are short of Penetrator Munitions or FSD Interrupt. Those are applied
190
188
  * here, so the result is the exact set for this module.
191
189
  *
192
- * **An empty array is the common answer, and it usually means "blueprints only".** 368
193
- * of the 1000 grouped modules have no experimental slot; all sit in the 27 of 48 groups
194
- * that offer none — life support, sensors, the limpet controllers, the utility scanners,
195
- * and every Guardian group, weapons and modules alike. An ungrouped module answers empty
190
+ * **An empty array is the common answer, and it usually means "blueprints only".** Whole
191
+ * groups offer no experimental effect at all life support, sensors, the limpet
192
+ * controllers, the utility scanners, and every Guardian group, weapons and modules alike
193
+ * so every module in them answers empty. An ungrouped module answers empty
196
194
  * too; {@link getEngineeringGroup} tells the two apart.
197
195
  *
198
196
  * @param symbol - A module symbol. Leading/trailing whitespace and case are ignored.
@@ -204,10 +202,10 @@ declare function getBlueprintsForModule(symbol: string): readonly string[];
204
202
  * ```ts
205
203
  * import { getExperimentalsForModule } from '@elite-dangerous-almanac/core/ships/engineering-options';
206
204
  *
207
- * getExperimentalsForModule('Hpt_MultiCannon_Fixed_Medium').length; // -> 12
205
+ * getExperimentalsForModule('Hpt_MultiCannon_Fixed_Medium').includes('special_phasing_sequence'); // -> true
208
206
  *
209
207
  * // The small Multi-cannon is one effect short — no Phasing Sequence.
210
- * getExperimentalsForModule('Hpt_MultiCannon_Fixed_Small').length; // -> 11
208
+ * getExperimentalsForModule('Hpt_MultiCannon_Fixed_Small').includes('special_phasing_sequence'); // -> false
211
209
  *
212
210
  * // The stock Abrasion Blaster has no ordinary engineering menu.
213
211
  * getExperimentalsForModule('Hpt_Mining_AbrBlstr_Fixed_Small'); // -> []
@@ -222,19 +220,18 @@ declare function getExperimentalsForModule(symbol: string): readonly string[];
222
220
  * `Weapon_LongRange` does not offer every effect listed here, only its own group's. Use
223
221
  * {@link getExperimentalsForModule} once you know the module — that is the exact answer.
224
222
  *
225
- * The groups name 85 of the 107 blueprints in `BLUEPRINTS`. Of the other 22, 21 are
226
- * Operations keys of modules sold already engineered rather than offered in a menu (see
227
- * `ships/pre-engineered`); the last is the fixed Expanded Cargo Rack reward identity.
228
- * All 22 answer `[]` here exactly as an unknown id would, so read this function's empty answer with
223
+ * The groups do not name every id in `BLUEPRINTS`. The ones they miss are Operations keys
224
+ * of modules sold already engineered rather than offered in a menu (see
225
+ * `ships/pre-engineered`), plus the fixed Expanded Cargo Rack reward identity.
226
+ * They answer `[]` here exactly as an unknown id would, so read this function's empty answer with
229
227
  * {@link getExperimentalsForModule} rather than as a claim about the recipe.
230
228
  *
231
- * Four Operations keys **are** named by a group, because they are recipes a player applies
229
+ * Some Operations keys **are** named by a group, because they are recipes a player applies
232
230
  * rather than a purchase: the Merc-Coin blueprints published with a full grade 1–5,
233
- * `FuelScoop_Efficiency` and the three lasers' `PulseLaser_ThermalPlasmaConversion`,
234
- * `BurstLaser_ThermalPlasmaConversion` and
235
- * `BeamLaser_ThermalPlasmaConversion`. Anti-Guardian Zone Resistance answers `[]`, and there
236
- * that is the exact answer rather
237
- * than a miss: it has no experimental slot, on any of the nine groups that offer it.
231
+ * `FuelScoop_Efficiency` and the lasers' `PulseLaser_ThermalPlasmaConversion`,
232
+ * `BurstLaser_ThermalPlasmaConversion` and `BeamLaser_ThermalPlasmaConversion`.
233
+ * Anti-Guardian Zone Resistance answers `[]`, and there that is the exact answer rather
234
+ * than a miss: it has no experimental slot, on any group that offers it.
238
235
  *
239
236
  * @param blueprintSymbol - A blueprint recipe's Frontier symbol, e.g. `"Weapon_Efficient"`.
240
237
  * Leading/trailing whitespace and case are ignored.
@@ -1 +1 @@
1
- export{ENGINEERING_OPTION_GROUPS,getBlueprintsForModule,getEngineeringGroup,getExperimentalsForBlueprint,getExperimentalsForModule}from"../chunk-EHFHRQEP.js"; //# sourceMappingURL=engineering-options.js.map
1
+ export{ENGINEERING_OPTION_GROUPS,getBlueprintsForModule,getEngineeringGroup,getExperimentalsForBlueprint,getExperimentalsForModule}from"../chunk-M4STXLXO.js"; //# sourceMappingURL=engineering-options.js.map
@@ -37,8 +37,7 @@ import './slots.js';
37
37
  * Frontier exposes; {@link ShipLoadout.applyBlueprint} performs that presentation step.
38
38
  *
39
39
  * The catalogues live in `./blueprints` and `./experimental-effects`; this module
40
- * holds no data. {@link ShipLoadout.applyBlueprint} uses this calculator, then presents
41
- * its result in Frontier's journal form.
40
+ * holds no data.
42
41
  *
43
42
  * @example
44
43
  * ```ts
@@ -1 +1 @@
1
- export{computeModifiers,sumMaterials}from"../chunk-A7IVMYNF.js"; //# sourceMappingURL=engineering.js.map
1
+ export{computeModifiers,sumMaterials}from"../chunk-U73MBQ45.js"; //# sourceMappingURL=engineering.js.map
@@ -41,7 +41,7 @@ declare const EXPERIMENTAL_EFFECT_COSTS: Readonly<Record<string, readonly Engine
41
41
  *
42
42
  * @remarks
43
43
  * Materials are the whole cost: an experimental effect charges no Merc Coin, unlike the
44
- * 25 blueprints whose {@link ships/blueprint-costs!getBlueprintCost | getBlueprintCost}
44
+ * blueprints whose {@link ships/blueprint-costs!getBlueprintCost | getBlueprintCost}
45
45
  * reports a non-zero `mercCoins`.
46
46
  *
47
47
  * @param experimentalEffectSymbol - The effect id, e.g. `"special_fsd_heavy"`, matched
@@ -49,9 +49,9 @@ type ShipGunsightCatalogue = Readonly<Record<string, ShipGunsight>>;
49
49
  * by {@link ships!SHIPS | SHIPS}.
50
50
  *
51
51
  * @remarks
52
- * The map, each hull array and every offset pair are deeply frozen. It contains 48
53
- * hulls and 234 hardpoints. Importing this module adds only the compact offset map; it
54
- * does not import the ship or outfitting catalogues.
52
+ * The map, each hull array and every offset pair are deeply frozen. It covers every
53
+ * hardpoint of every player-flyable hull. Importing this module adds only the compact
54
+ * offset map; it does not import the ship or outfitting catalogues.
55
55
  *
56
56
  * @example
57
57
  * ```ts
@@ -13,7 +13,7 @@
13
13
  * settles at heatLevel = √(thermal load / heatDissipation)
14
14
  * ```
15
15
  *
16
- * Two consequences are worth stating outright, because they are what the numbers mean:
16
+ * Two consequences follow, and they are what the numbers mean:
17
17
  * a build whose thermal load stays under the hull's `heatDissipation` **always settles**
18
18
  * below heat level `1` and never overheats, however long it holds the trigger; and one
19
19
  * whose load goes over it **never settles** — heat climbs until the ship cooks, and the
@@ -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 1194 modules unless you hand
31
+ * ({@link getModuleBySymbol} & co.), which search the whole catalogue 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,8 +111,8 @@
111
111
  * ```
112
112
  *
113
113
  * @example
114
- * **The lookup layer.** One small hull catalogue, and 1194 modules split by Frontier's
115
- * four outfitting categories. Lookups ignore case and surrounding whitespace.
114
+ * **The lookup layer.** One small hull catalogue, and the outfitting modules split by
115
+ * Frontier's four categories. Lookups ignore case and surrounding whitespace.
116
116
  *
117
117
  * ```ts
118
118
  * import { getShipBySymbol } from '@elite-dangerous-almanac/core/ships/ships';
@@ -121,8 +121,7 @@
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 1194.
125
- * CORE_MODULES.length; // -> 516
124
+ * // Pass a category to bound what you bundle; omit it to search every module.
126
125
  * getModuleBySymbol('Int_Hyperdrive_Size6_Class5', CORE_MODULES)?.name;
127
126
  * // -> 'Frame Shift Drive'
128
127
  * ```
@@ -1 +1 @@
1
- export{LoadoutEditError,ShipLoadout}from"../chunk-SC4MEHVY.js";export{validateLoadout}from"../chunk-3GNYPM6J.js";export{hasFrameShiftDriveJumpStats,hasMassCurveStats,hasPowerDistributorStats,hasPowerGenerationStats,hasShieldRegenerationStats,hasWeaponDamageStats}from"../chunk-JTQVWIGL.js";export{OUTFITTING_FAMILIES}from"../chunk-M6G3UDTX.js";export{SHIP_MODULE_LIMITS,calculateModuleLimits}from"../chunk-KPETDYQX.js";export{SHIP_GUNSIGHTS,getShipGunsight,projectGunsight}from"../chunk-XSN53F7W.js";export{BuildMetrics}from"../chunk-YJAH6DFY.js";export{weaponsCapacitorMetrics}from"../chunk-M4FZRDAH.js";export{shieldCapacitorMetrics}from"../chunk-JCYOE3C4.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{powerBudget}from"../chunk-GGQMIQPC.js";export{getPreEngineeredJournalModifiers,getPreEngineeredModifiers,getPreEngineeredStats,identifyPreEngineeredVariant,unresolvedModifiers}from"../chunk-IN36YSS4.js";export{getBulkheadsForShip,getModuleBySymbol,getModulesByName}from"../chunk-5YEHJM6V.js";export{PRE_ENGINEERED_MODULES,getPreEngineeredVariants,isPreEngineered}from"../chunk-BJU27V6C.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,calculatePassengerCapacity,calculateUnladenMass}from"../chunk-C3LLPLLD.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{BLUEPRINTS,getBlueprint,getBlueprintGrade}from"../chunk-AYAKU4YA.js"; export{distributorMetrics}from"../chunk-M2TCZKRT.js"; export{ENGINEERING_OPTION_GROUPS,getBlueprintsForModule,getEngineeringGroup,getExperimentalsForBlueprint,getExperimentalsForModule}from"../chunk-EHFHRQEP.js";export{ammunitionCapacity}from"../chunk-AA3K5XUE.js"; export{SLOT_RESTRICTION_LABELS,enumerateSlots,parseSlotName}from"../chunk-RAO35XDF.js"; //# sourceMappingURL=index.js.map
1
+ export{LoadoutEditError,ShipLoadout}from"../chunk-HIJR7DOC.js";export{validateLoadout}from"../chunk-3GNYPM6J.js";export{SHIP_MODULE_LIMITS,calculateModuleLimits}from"../chunk-KPETDYQX.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{BuildMetrics}from"../chunk-G7WARJ3X.js";export{weaponsCapacitorMetrics}from"../chunk-M4FZRDAH.js";export{shieldCapacitorMetrics}from"../chunk-XQJERZUS.js";export{cellBankSummary,shieldRecovery}from"../chunk-JMAXSXXQ.js"; export{getLoadoutModifier,inspectSlef,parseSlef,stringifySlef,toSlef}from"../chunk-T4MKUKYS.js";export{getSourceModuleValue,sourcePurchaseFromLoadout,sumSourceModuleValues}from"../chunk-NIURLW2F.js";export{armourPiercingFactor,combinedRateOfFire,damageFalloff,damagePerSecond,energyPerSecond,heatPerSecond,splitDamage,sumWeaponMetrics,sustainedDamagePerSecond,sustainedFireFactor,weaponMetrics}from"../chunk-AAU7OM47.js";export{getPreEngineeredJournalModifiers,getPreEngineeredModifiers,getPreEngineeredStats,identifyPreEngineeredVariant,unresolvedModifiers}from"../chunk-C3YZ5KTA.js";export{PRE_ENGINEERED_MODULES,getPreEngineeredVariants,isPreEngineered}from"../chunk-AUBV6S7V.js";export{shieldMassCurveMultiplier,shieldMetrics,shieldStrength}from"../chunk-5VWACBTN.js";export{SHIPS,getShipByName,getShipBySymbol,getShipSlots}from"../chunk-C4FUV6GF.js";export{getBulkheadsForShip,getModuleBySymbol,getModulesByName}from"../chunk-OSMBAFRW.js"; export{powerBudget}from"../chunk-GGQMIQPC.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{distributorMetrics}from"../chunk-M2TCZKRT.js"; export{EXPERIMENTAL_EFFECTS,getExperimentalEffect}from"../chunk-77I24V6B.js";export{OVERHEAT_HEAT_LEVEL,effectiveWeaponThermalLoad,equilibriumHeatLevel,heatLevelAtTime,heatMetrics,secondsToHeatLevel}from"../chunk-6HA2YIKW.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-U73MBQ45.js"; export{resolveBlueprintForModule}from"../chunk-2J6NNI3Y.js";export{ENGINEERING_OPTION_GROUPS,getBlueprintsForModule,getEngineeringGroup,getExperimentalsForBlueprint,getExperimentalsForModule}from"../chunk-M4STXLXO.js";export{BLUEPRINTS,getBlueprint,getBlueprintGrade}from"../chunk-AYAKU4YA.js"; export{SLOT_RESTRICTION_LABELS,enumerateSlots,parseSlotName}from"../chunk-RAO35XDF.js"; //# sourceMappingURL=index.js.map
@@ -31,7 +31,7 @@ type LoadoutIssueCode = 'duplicateSlot' | 'unknownSlot' | 'missingRequiredSlot'
31
31
  * @remarks
32
32
  * `dry` is the fit alone — hull plus modules, an empty tank and no cargo. `unladen`
33
33
  * adds a full main tank, and is the figure the game and every outfitting tool call a
34
- * ship's unladen mass; note that {@link ships!ShipLoadout.unladenMass} is the `dry`
34
+ * ship's unladen mass; {@link ships!ShipLoadout.unladenMass} is the `dry`
35
35
  * figure, because that is what a journal's `UnladenMass` states. `laden` adds a full
36
36
  * hold on top.
37
37
  *
@@ -32,7 +32,7 @@ type OutfittingFamilyId = 'armour' | 'powerPlants' | 'engines' | 'fsd' | 'lifeSu
32
32
  *
33
33
  * @remarks
34
34
  * The names are Frontier's own outfitting category labels where the game publishes one,
35
- * and the Almanac's descriptive name for the 19 families it does not. They are
35
+ * and the Almanac's descriptive name for the families it does not. They are
36
36
  * canonical English, not localized UI text: use
37
37
  * `getOutfittingFamilyName` for a locale.
38
38
  *
@@ -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 1194 modules (a "resolve any module id" lookup, say).
12
+ * really do want to search every module (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,8 +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; // -> 1194
39
- * ALL_MODULES.filter((m) => m.category === 'utility').length; // -> 35
38
+ * ALL_MODULES.find((m) => m.symbol === 'Hpt_PulseLaser_Fixed_Small')?.category; // -> 'hardpoint'
40
39
  * ```
41
40
  */
42
41
  declare const ALL_MODULES: readonly OutfittingModule[];
@@ -1 +1 @@
1
- export{ALL_MODULES}from"../chunk-MT5AHPNP.js"; //# sourceMappingURL=modules-all.js.map
1
+ export{ALL_MODULES}from"../chunk-UVX7RCMP.js"; //# sourceMappingURL=modules-all.js.map
@@ -20,20 +20,20 @@ import './slots.js';
20
20
  */
21
21
 
22
22
  /**
23
- * All 516 core internal modules, in Frontier's registry order.
23
+ * Every core internal module, 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 1194 modules.
30
+ * rather than with the lookups in `./modules`, which default to the whole catalogue.
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; // -> 516
36
+ * CORE_MODULES.find((m) => m.symbol === 'Int_Powerplant_Size3_Class5')?.rating; // -> 'A'
37
37
  * ```
38
38
  */
39
39
  declare const CORE_MODULES: readonly OutfittingModule[];
@@ -21,22 +21,21 @@ import './slots.js';
21
21
  */
22
22
 
23
23
  /**
24
- * All 159 hardpoint modules, in Frontier's registry order.
24
+ * Every hardpoint module, in Frontier's registry order.
25
25
  *
26
26
  * @remarks
27
27
  * Every record has `category: 'hardpoint'`, added from the file it was read from
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 1194 modules.
31
+ * rather than with the lookups in `./modules`, which default to the whole catalogue.
32
32
  *
33
33
  * @example
34
34
  * ```ts
35
35
  * import { HARDPOINT_MODULES } from '@elite-dangerous-almanac/core/ships/modules-hardpoint';
36
36
  *
37
- * HARDPOINT_MODULES.length; // -> 159
38
- * HARDPOINT_MODULES.filter((m) => m.familyId === 'beamLasers').length; // -> 12
39
- * HARDPOINT_MODULES.filter((m) => m.mount === 'Turreted').length; // turreted variants
37
+ * HARDPOINT_MODULES.find((m) => m.symbol === 'Hpt_PulseLaser_Fixed_Small')?.mount; // -> 'Fixed'
38
+ * HARDPOINT_MODULES.find((m) => m.familyId === 'beamLasers')?.name; // -> 'Beam Laser'
40
39
  * ```
41
40
  */
42
41
  declare const HARDPOINT_MODULES: readonly OutfittingModule[];
@@ -1 +1 @@
1
- export{HARDPOINT_MODULES}from"../chunk-773VO2GK.js"; //# sourceMappingURL=modules-hardpoint.js.map
1
+ export{HARDPOINT_MODULES}from"../chunk-4T3TTYUT.js"; //# sourceMappingURL=modules-hardpoint.js.map
@@ -14,7 +14,7 @@ import './slots.js';
14
14
  * The other categories live in `./modules-core`, `./modules-hardpoint` and
15
15
  * `./modules-utility`, so importing this module never bundles them.
16
16
  *
17
- * Identity primarily from EDCD FDevIDs (`outfitting.csv`), with six bundle-granted
17
+ * Identity primarily from EDCD FDevIDs (`outfitting.csv`), with the bundle-granted
18
18
  * Vessel Hangar variants from a public CAPI capture; stats from EDCD/coriolis-data and
19
19
  * EDSY, joined on `symbol`. See [`data/ships/SOURCES.md`](https://github.com/DarkSession/Elite-Dangerous-Almanac/blob/main/data/ships/SOURCES.md).
20
20
  *
@@ -22,14 +22,14 @@ import './slots.js';
22
22
  */
23
23
 
24
24
  /**
25
- * All 484 modules in the `internal` outfitting category, in registry order.
25
+ * Every module in the `internal` outfitting category, in registry order.
26
26
  *
27
27
  * @remarks
28
28
  * Every record has `category: 'internal'`, added from the file it was read from
29
29
  * rather than repeated on every record. **The category is the registry's filing, not a
30
30
  * fitting rule**, so do not read a fit off it: `ModularCargoBayDoor` (family
31
31
  * `cargoHatches`) is the hull's built-in Cargo Hatch and goes in the fixed `CargoHatch`
32
- * mount alone; the fifteen Guardian hybrid power plants and distributors carry a core
32
+ * mount alone; the Guardian hybrid power plants and distributors carry a core
33
33
  * {@link ships!OutfittingModule.slot | slot} and fit only that core mount; and others
34
34
  * here reserve a restricted mount or a named hull. Ask
35
35
  * {@link ships!ShipLoadout.modulesForSlot | ShipLoadout.modulesForSlot} what a mount
@@ -38,14 +38,13 @@ import './slots.js';
38
38
  * To keep the other three categories out of your bundle, search this array directly —
39
39
  * `INTERNAL_MODULES.find((m) => m.symbol.toLowerCase() === wanted)`, lower-cased because
40
40
  * a journal's symbols are — rather than with the lookups in `./modules`, which default
41
- * to all 1194 modules.
41
+ * to the whole catalogue.
42
42
  *
43
43
  * @example
44
44
  * ```ts
45
45
  * import { INTERNAL_MODULES } from '@elite-dangerous-almanac/core/ships/modules-internal';
46
46
  *
47
- * INTERNAL_MODULES.length; // -> 484
48
- * INTERNAL_MODULES.filter((m) => m.familyId === 'cargoRacks').length; // -> 16
47
+ * INTERNAL_MODULES.find((m) => m.symbol === 'Int_CargoRack_Size1_Class1')?.familyId; // -> 'cargoRacks'
49
48
  * ```
50
49
  */
51
50
  declare const INTERNAL_MODULES: readonly OutfittingModule[];
@@ -1 +1 @@
1
- export{INTERNAL_MODULES}from"../chunk-IMNOEFUE.js"; //# sourceMappingURL=modules-internal.js.map
1
+ export{INTERNAL_MODULES}from"../chunk-7Y5EK2VO.js"; //# sourceMappingURL=modules-internal.js.map
@@ -20,21 +20,20 @@ import './slots.js';
20
20
  */
21
21
 
22
22
  /**
23
- * All 35 utility-mount modules, in Frontier's registry order.
23
+ * Every utility-mount module, in Frontier's registry order.
24
24
  *
25
25
  * @remarks
26
26
  * Every record has `category: 'utility'`, 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 — `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 1194 modules.
30
+ * rather than with the lookups in `./modules`, which default to the whole catalogue.
31
31
  *
32
32
  * @example
33
33
  * ```ts
34
34
  * import { UTILITY_MODULES } from '@elite-dangerous-almanac/core/ships/modules-utility';
35
35
  *
36
- * UTILITY_MODULES.length; // -> 35
37
- * UTILITY_MODULES.filter((m) => m.familyId === 'shieldBoosters').length; // -> 5
36
+ * UTILITY_MODULES.find((m) => m.familyId === 'shieldBoosters')?.symbol; // -> 'Hpt_ShieldBooster_Size0_Class1'
38
37
  * ```
39
38
  */
40
39
  declare const UTILITY_MODULES: readonly OutfittingModule[];
@@ -1 +1 @@
1
- export{UTILITY_MODULES}from"../chunk-ELT3FEA4.js"; //# sourceMappingURL=modules-utility.js.map
1
+ export{UTILITY_MODULES}from"../chunk-PKKBYBL4.js"; //# sourceMappingURL=modules-utility.js.map