@elite-dangerous-almanac/core 0.1.8 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (261) hide show
  1. package/PROVENANCE/i18n/SOURCES.md +2 -2
  2. package/PROVENANCE/ships/SOURCES.md +11 -9
  3. package/README.md +54 -40
  4. package/dist/astro/galaxy-grid.js +1 -1
  5. package/dist/astro/index.d.ts +1 -1
  6. package/dist/astro/index.js +1 -1
  7. package/dist/astro/naming-region-origins.d.ts +1 -1
  8. package/dist/astro/naming-region-origins.js +1 -1
  9. package/dist/astro/nebulae.d.ts +2 -2
  10. package/dist/astro/permit-locks.d.ts +2 -1
  11. package/dist/astro/permit-locks.js +1 -1
  12. package/dist/astro/procedural-system.d.ts +2 -1
  13. package/dist/astro/procedural-system.js +1 -1
  14. package/dist/astro/sector-name.d.ts +2 -1
  15. package/dist/astro/sector-name.js +1 -1
  16. package/dist/astro/system-address.d.ts +1 -1
  17. package/dist/astro/system-name.d.ts +14 -9
  18. package/dist/astro/system-name.js +1 -1
  19. package/dist/chunk-2W5MW376.js +1 -0
  20. package/dist/chunk-2W5MW376.js.map +1 -0
  21. package/dist/{chunk-VZZUNSDF.js → chunk-4KJ7CR74.js} +1 -1
  22. package/dist/{chunk-VZZUNSDF.js.map → chunk-4KJ7CR74.js.map} +1 -1
  23. package/dist/{chunk-6EUVIZAS.js → chunk-4QYTVSNR.js} +1 -1
  24. package/dist/{chunk-EKQCVCMK.js → chunk-5ZVYRX6Z.js} +1 -1
  25. package/dist/{chunk-EKQCVCMK.js.map → chunk-5ZVYRX6Z.js.map} +1 -1
  26. package/dist/chunk-6GJHUWMO.js +1 -0
  27. package/dist/chunk-6GJHUWMO.js.map +1 -0
  28. package/dist/chunk-6L56LWTT.js +1 -0
  29. package/dist/chunk-6L56LWTT.js.map +1 -0
  30. package/dist/{chunk-GQ5GX5TB.js → chunk-6O4NRRSB.js} +1 -1
  31. package/dist/chunk-6O4NRRSB.js.map +1 -0
  32. package/dist/{chunk-WNGQ3IAM.js → chunk-6UNAD74Z.js} +1 -1
  33. package/dist/{chunk-WNGQ3IAM.js.map → chunk-6UNAD74Z.js.map} +1 -1
  34. package/dist/{chunk-JPBMRJFC.js → chunk-77I24V6B.js} +1 -1
  35. package/dist/chunk-77I24V6B.js.map +1 -0
  36. package/dist/chunk-7ATBEOVC.js +1 -0
  37. package/dist/chunk-7ATBEOVC.js.map +1 -0
  38. package/dist/chunk-7TQ2X6Q3.js +1 -0
  39. package/dist/chunk-7TQ2X6Q3.js.map +1 -0
  40. package/dist/{chunk-6EPYVBAX.js → chunk-A6OINYNP.js} +1 -1
  41. package/dist/{chunk-Q3QCLNVG.js → chunk-AYAKU4YA.js} +1 -1
  42. package/dist/chunk-AYAKU4YA.js.map +1 -0
  43. package/dist/chunk-B7EYTZRK.js +1 -0
  44. package/dist/chunk-B7EYTZRK.js.map +1 -0
  45. package/dist/{chunk-EBAHNZ36.js → chunk-CIULJH3G.js} +1 -1
  46. package/dist/{chunk-EBAHNZ36.js.map → chunk-CIULJH3G.js.map} +1 -1
  47. package/dist/{chunk-SNADUQSJ.js → chunk-CJK2IBI2.js} +1 -1
  48. package/dist/{chunk-SNADUQSJ.js.map → chunk-CJK2IBI2.js.map} +1 -1
  49. package/dist/{chunk-DYPOL3CI.js → chunk-CJQ37JII.js} +1 -1
  50. package/dist/chunk-CJQ37JII.js.map +1 -0
  51. package/dist/chunk-D6YEHR5S.js +1 -0
  52. package/dist/chunk-D6YEHR5S.js.map +1 -0
  53. package/dist/{chunk-Z6XMXMVI.js → chunk-DBDCOHI4.js} +1 -1
  54. package/dist/chunk-DBDCOHI4.js.map +1 -0
  55. package/dist/{chunk-AFVYCQWL.js → chunk-DCB4COCL.js} +1 -1
  56. package/dist/{chunk-AFVYCQWL.js.map → chunk-DCB4COCL.js.map} +1 -1
  57. package/dist/{chunk-CJWFY6OX.js → chunk-DSMLYA2M.js} +1 -1
  58. package/dist/{chunk-CJWFY6OX.js.map → chunk-DSMLYA2M.js.map} +1 -1
  59. package/dist/{chunk-UXBCLFGU.js → chunk-DWRNXUAX.js} +1 -1
  60. package/dist/{chunk-UXBCLFGU.js.map → chunk-DWRNXUAX.js.map} +1 -1
  61. package/dist/chunk-EVW4Z4CB.js +1 -0
  62. package/dist/chunk-EVW4Z4CB.js.map +1 -0
  63. package/dist/{chunk-4S6WB7QR.js → chunk-FF2X4K5P.js} +1 -1
  64. package/dist/chunk-FF2X4K5P.js.map +1 -0
  65. package/dist/chunk-FYVPZBXN.js +1 -0
  66. package/dist/chunk-FYVPZBXN.js.map +1 -0
  67. package/dist/{chunk-QTZPA2FR.js → chunk-GLWPSVFV.js} +1 -1
  68. package/dist/chunk-GLWPSVFV.js.map +1 -0
  69. package/dist/chunk-GZYPQIO2.js +1 -0
  70. package/dist/chunk-GZYPQIO2.js.map +1 -0
  71. package/dist/chunk-H47K3UWG.js +1 -0
  72. package/dist/chunk-H47K3UWG.js.map +1 -0
  73. package/dist/chunk-JGOAQLYW.js +1 -0
  74. package/dist/chunk-JGOAQLYW.js.map +1 -0
  75. package/dist/{chunk-JWWYAMGD.js → chunk-MGRDB2BZ.js} +1 -1
  76. package/dist/{chunk-JWWYAMGD.js.map → chunk-MGRDB2BZ.js.map} +1 -1
  77. package/dist/{chunk-MKGJPVPS.js → chunk-MRTTQYT5.js} +1 -1
  78. package/dist/{chunk-MKGJPVPS.js.map → chunk-MRTTQYT5.js.map} +1 -1
  79. package/dist/chunk-MTJ4MS7W.js +1 -0
  80. package/dist/chunk-MTJ4MS7W.js.map +1 -0
  81. package/dist/chunk-NIURLW2F.js +1 -0
  82. package/dist/chunk-NIURLW2F.js.map +1 -0
  83. package/dist/chunk-OLKNYGGT.js +1 -0
  84. package/dist/chunk-OLKNYGGT.js.map +1 -0
  85. package/dist/chunk-OYFMHDYT.js +1 -0
  86. package/dist/chunk-OYFMHDYT.js.map +1 -0
  87. package/dist/chunk-OYR5HUQZ.js +1 -0
  88. package/dist/chunk-OYR5HUQZ.js.map +1 -0
  89. package/dist/chunk-PL75RTA2.js +1 -0
  90. package/dist/{chunk-2VPVZELZ.js.map → chunk-PL75RTA2.js.map} +1 -1
  91. package/dist/chunk-PY5L6WC5.js +1 -0
  92. package/dist/chunk-PY5L6WC5.js.map +1 -0
  93. package/dist/{chunk-W6EPHHTS.js → chunk-Q2L75GSI.js} +1 -1
  94. package/dist/chunk-Q2L75GSI.js.map +1 -0
  95. package/dist/chunk-QJ7GB6FF.js +1 -0
  96. package/dist/chunk-QJ7GB6FF.js.map +1 -0
  97. package/dist/chunk-QTAMQ6ME.js +1 -0
  98. package/dist/chunk-QTAMQ6ME.js.map +1 -0
  99. package/dist/{chunk-FMPRCYKY.js → chunk-RRYBSAPX.js} +1 -1
  100. package/dist/chunk-RRYBSAPX.js.map +1 -0
  101. package/dist/{chunk-J42ZXLBL.js → chunk-T62GO4AA.js} +1 -1
  102. package/dist/chunk-T62GO4AA.js.map +1 -0
  103. package/dist/{chunk-E3BRVGJJ.js → chunk-TBZJIQ5P.js} +1 -1
  104. package/dist/{chunk-E3BRVGJJ.js.map → chunk-TBZJIQ5P.js.map} +1 -1
  105. package/dist/chunk-V3AEUBHV.js +1 -0
  106. package/dist/chunk-V3AEUBHV.js.map +1 -0
  107. package/dist/chunk-VYDQHPY2.js +1 -0
  108. package/dist/chunk-VYDQHPY2.js.map +1 -0
  109. package/dist/chunk-XUHAPOM6.js +1 -0
  110. package/dist/chunk-XUHAPOM6.js.map +1 -0
  111. package/dist/chunk-Y6KJJMIM.js +1 -0
  112. package/dist/chunk-Y6KJJMIM.js.map +1 -0
  113. package/dist/chunk-YXPZ7QQB.js +1 -0
  114. package/dist/chunk-YXPZ7QQB.js.map +1 -0
  115. package/dist/{chunk-Y6UZWNP4.js → chunk-ZCEAPJDH.js} +1 -1
  116. package/dist/{chunk-Y6UZWNP4.js.map → chunk-ZCEAPJDH.js.map} +1 -1
  117. package/dist/commodities/commodities.d.ts +20 -10
  118. package/dist/commodities/commodities.js +1 -1
  119. package/dist/commodities/index.d.ts +15 -4
  120. package/dist/commodities/index.js +1 -1
  121. package/dist/equipment/index.js +1 -1
  122. package/dist/equipment/modification-costs.d.ts +2 -1
  123. package/dist/equipment/modification-costs.js.map +1 -1
  124. package/dist/equipment/modification-journal.js +1 -1
  125. package/dist/equipment/modifications.d.ts +2 -1
  126. package/dist/equipment/modifications.js +1 -1
  127. package/dist/equipment/suits.d.ts +6 -3
  128. package/dist/equipment/suits.js +1 -1
  129. package/dist/equipment/upgrade-costs.d.ts +8 -4
  130. package/dist/equipment/upgrade-costs.js +1 -1
  131. package/dist/equipment/upgrade-costs.js.map +1 -1
  132. package/dist/equipment/weapons.d.ts +13 -5
  133. package/dist/equipment/weapons.js +1 -1
  134. package/dist/i18n/blueprints.d.ts +6 -6
  135. package/dist/i18n/blueprints.js +1 -1
  136. package/dist/i18n/diagnostics.d.ts +1 -13
  137. package/dist/i18n/engineering-groups.d.ts +1 -0
  138. package/dist/i18n/engineering-groups.js +1 -1
  139. package/dist/i18n/experimental-effect-descriptions.d.ts +4 -3
  140. package/dist/i18n/experimental-effect-descriptions.js +1 -1
  141. package/dist/i18n/experimental-effects.d.ts +5 -4
  142. package/dist/i18n/experimental-effects.js +1 -1
  143. package/dist/i18n/index.d.ts +1 -13
  144. package/dist/i18n/index.js +1 -1
  145. package/dist/i18n/pre-engineered.d.ts +7 -6
  146. package/dist/i18n/pre-engineered.js +1 -1
  147. package/dist/materials/index.d.ts +16 -4
  148. package/dist/materials/index.js +1 -1
  149. package/dist/materials/materials.d.ts +36 -19
  150. package/dist/materials/materials.js +1 -1
  151. package/dist/materials/micro-resources.d.ts +18 -7
  152. package/dist/materials/micro-resources.js +1 -1
  153. package/dist/ships/armour.d.ts +20 -4
  154. package/dist/ships/armour.js +1 -1
  155. package/dist/ships/blueprint-costs.d.ts +20 -17
  156. package/dist/ships/blueprint-costs.js +1 -1
  157. package/dist/ships/blueprint-journal.d.ts +9 -8
  158. package/dist/ships/blueprint-journal.js +1 -1
  159. package/dist/ships/blueprints.d.ts +14 -12
  160. package/dist/ships/blueprints.js +1 -1
  161. package/dist/ships/build-metrics.d.ts +1061 -0
  162. package/dist/ships/build-metrics.js +1 -0
  163. package/dist/ships/build-metrics.js.map +1 -0
  164. package/dist/ships/distributor.d.ts +10 -3
  165. package/dist/ships/distributor.js +1 -1
  166. package/dist/ships/engineering-options.d.ts +8 -6
  167. package/dist/ships/engineering-options.js +1 -1
  168. package/dist/ships/engineering.d.ts +2 -16
  169. package/dist/ships/engineering.js +1 -1
  170. package/dist/ships/experimental-effect-costs.d.ts +5 -5
  171. package/dist/ships/experimental-effect-costs.js +1 -1
  172. package/dist/ships/experimental-effects.d.ts +9 -8
  173. package/dist/ships/experimental-effects.js +1 -1
  174. package/dist/ships/heat.d.ts +7 -2
  175. package/dist/ships/heat.js +1 -1
  176. package/dist/ships/index.d.ts +34 -22
  177. package/dist/ships/index.js +1 -1
  178. package/dist/ships/jump-range.d.ts +10 -3
  179. package/dist/ships/jump-range.js +1 -1
  180. package/dist/ships/loadout-calculations.d.ts +1 -1
  181. package/dist/ships/loadout-calculations.js +1 -1
  182. package/dist/ships/mobility-capacitor.d.ts +90 -0
  183. package/dist/ships/mobility-capacitor.js +1 -0
  184. package/dist/ships/mobility-capacitor.js.map +1 -0
  185. package/dist/ships/mobility.d.ts +29 -17
  186. package/dist/ships/mobility.js +1 -1
  187. package/dist/ships/power.d.ts +12 -5
  188. package/dist/ships/power.js +1 -1
  189. package/dist/ships/pre-engineered-stats.d.ts +10 -8
  190. package/dist/ships/pre-engineered-stats.js +1 -1
  191. package/dist/ships/pre-engineered.d.ts +6 -6
  192. package/dist/ships/pre-engineered.js +1 -1
  193. package/dist/ships/resistances.d.ts +2 -2
  194. package/dist/ships/resistances.js +1 -1
  195. package/dist/ships/shield-capacitor.d.ts +133 -0
  196. package/dist/ships/shield-capacitor.js +1 -0
  197. package/dist/ships/shield-capacitor.js.map +1 -0
  198. package/dist/ships/shield-recovery.d.ts +16 -2
  199. package/dist/ships/shield-recovery.js +1 -1
  200. package/dist/ships/shields.d.ts +86 -28
  201. package/dist/ships/shields.js +1 -1
  202. package/dist/ships/ship-loadout.d.ts +91 -797
  203. package/dist/ships/ship-loadout.js +1 -1
  204. package/dist/ships/ships.d.ts +7 -6
  205. package/dist/ships/ships.js +1 -1
  206. package/dist/ships/slef.d.ts +1 -1
  207. package/dist/ships/source-purchase.d.ts +2 -1
  208. package/dist/ships/source-purchase.js +1 -1
  209. package/dist/ships/weapons-capacitor.d.ts +10 -3
  210. package/dist/ships/weapons-capacitor.js +1 -1
  211. package/dist/ships/weapons.d.ts +22 -6
  212. package/dist/ships/weapons.js +1 -1
  213. package/dist/{system-address-DYsN1qOT.d.ts → system-address-cyJaeZIS.d.ts} +2 -1
  214. package/package.json +17 -2
  215. package/dist/chunk-2FHHMYDC.js +0 -1
  216. package/dist/chunk-2FHHMYDC.js.map +0 -1
  217. package/dist/chunk-2TW4ZBI3.js +0 -1
  218. package/dist/chunk-2TW4ZBI3.js.map +0 -1
  219. package/dist/chunk-2VPVZELZ.js +0 -1
  220. package/dist/chunk-3BM5BHI3.js +0 -1
  221. package/dist/chunk-3BM5BHI3.js.map +0 -1
  222. package/dist/chunk-4S6WB7QR.js.map +0 -1
  223. package/dist/chunk-6BO5JJNI.js +0 -1
  224. package/dist/chunk-6BO5JJNI.js.map +0 -1
  225. package/dist/chunk-CX7B67OI.js +0 -1
  226. package/dist/chunk-CX7B67OI.js.map +0 -1
  227. package/dist/chunk-DVL5RBKX.js +0 -1
  228. package/dist/chunk-DVL5RBKX.js.map +0 -1
  229. package/dist/chunk-DYPOL3CI.js.map +0 -1
  230. package/dist/chunk-FGXWVFN6.js +0 -1
  231. package/dist/chunk-FGXWVFN6.js.map +0 -1
  232. package/dist/chunk-FMPRCYKY.js.map +0 -1
  233. package/dist/chunk-G3265B27.js +0 -1
  234. package/dist/chunk-G3265B27.js.map +0 -1
  235. package/dist/chunk-GQ5GX5TB.js.map +0 -1
  236. package/dist/chunk-IOJXLDJN.js +0 -1
  237. package/dist/chunk-IOJXLDJN.js.map +0 -1
  238. package/dist/chunk-IYU4WLFM.js +0 -1
  239. package/dist/chunk-IYU4WLFM.js.map +0 -1
  240. package/dist/chunk-J42ZXLBL.js.map +0 -1
  241. package/dist/chunk-JPBMRJFC.js.map +0 -1
  242. package/dist/chunk-LJI7VXJD.js +0 -1
  243. package/dist/chunk-LJI7VXJD.js.map +0 -1
  244. package/dist/chunk-OCND33TO.js +0 -1
  245. package/dist/chunk-OCND33TO.js.map +0 -1
  246. package/dist/chunk-P2QOL63K.js +0 -1
  247. package/dist/chunk-P2QOL63K.js.map +0 -1
  248. package/dist/chunk-Q3QCLNVG.js.map +0 -1
  249. package/dist/chunk-QTZPA2FR.js.map +0 -1
  250. package/dist/chunk-RLUS76LZ.js +0 -1
  251. package/dist/chunk-RLUS76LZ.js.map +0 -1
  252. package/dist/chunk-TEOJCBSG.js +0 -1
  253. package/dist/chunk-TEOJCBSG.js.map +0 -1
  254. package/dist/chunk-TMMGS6TC.js +0 -1
  255. package/dist/chunk-TMMGS6TC.js.map +0 -1
  256. package/dist/chunk-W6EPHHTS.js.map +0 -1
  257. package/dist/chunk-Z6XMXMVI.js.map +0 -1
  258. package/dist/chunk-ZNCXENNB.js +0 -1
  259. package/dist/chunk-ZNCXENNB.js.map +0 -1
  260. /package/dist/{chunk-6EUVIZAS.js.map → chunk-4QYTVSNR.js.map} +0 -0
  261. /package/dist/{chunk-6EPYVBAX.js.map → chunk-A6OINYNP.js.map} +0 -0
@@ -2,11 +2,12 @@
2
2
  /**
3
3
  * Look up an experimental effect's display description.
4
4
  *
5
- * @param fdname - Frontier's experimental-effect id.
5
+ * @param experimentalEffectSymbol - Frontier's experimental-effect id. Matching ignores case and
6
+ * surrounding whitespace.
6
7
  * @param locale - A BCP 47 locale. The current source supplies canonical English only.
7
8
  * @returns The localized description, or `null` when the effect is unknown, has no
8
9
  * source description, or the requested locale is unavailable.
9
- * @throws {TypeError} If a present `fdname` or `locale` is not a string.
10
+ * @throws {TypeError} If a present `experimentalEffectSymbol` or `locale` is not a string.
10
11
  * @example
11
12
  * ```ts
12
13
  * import { getExperimentalEffectDescription } from '@elite-dangerous-almanac/core/i18n/experimental-effect-descriptions';
@@ -15,6 +16,6 @@
15
16
  * getExperimentalEffectDescription('special_auto_loader', 'fr'); // -> null
16
17
  * ```
17
18
  */
18
- declare function getExperimentalEffectDescription(fdname: string, locale: string): string | null;
19
+ declare function getExperimentalEffectDescription(experimentalEffectSymbol: string, locale: string): string | null;
19
20
 
20
21
  export { getExperimentalEffectDescription };
@@ -1 +1 @@
1
- export{getExperimentalEffectDescription}from"../chunk-4S6WB7QR.js"; //# sourceMappingURL=experimental-effect-descriptions.js.map
1
+ export{getExperimentalEffectDescription}from"../chunk-FF2X4K5P.js"; //# sourceMappingURL=experimental-effect-descriptions.js.map
@@ -2,7 +2,7 @@
2
2
  /**
3
3
  * Look up an engineering experimental effect's source-backed display name for a locale.
4
4
  *
5
- * @param fdname - Frontier's experimental-effect id, such as
5
+ * @param experimentalEffectSymbol - Frontier's experimental-effect id, such as
6
6
  * `"special_concordant_sequence"`. Matching ignores case and surrounding whitespace.
7
7
  * @param locale - A BCP 47 language or regional tag, such as `"de"`, `"de-DE"` or
8
8
  * `"en-GB"`. Matching is case-insensitive; underscores are accepted in place of
@@ -14,8 +14,9 @@
14
14
  * @remarks
15
15
  * This function bundles names only, not modifier mechanics or material costs. Missing
16
16
  * translations never silently fall back to English.
17
- * @throws {TypeError} If `fdname` is present and not a string, or `locale` is not a
18
- * string. A nullish `fdname` is a lookup miss and returns `null`.
17
+ * @throws {TypeError} If `experimentalEffectSymbol` is present and not a string, or
18
+ * `locale` is not a string. A nullish `experimentalEffectSymbol` is a lookup miss and
19
+ * returns `null`.
19
20
  * @example
20
21
  * ```ts
21
22
  * import { getExperimentalEffectName } from '@elite-dangerous-almanac/core/i18n/experimental-effects';
@@ -25,6 +26,6 @@
25
26
  * getExperimentalEffectName('special_concordant_sequence', 'ja-JP'); // -> null
26
27
  * ```
27
28
  */
28
- declare function getExperimentalEffectName(fdname: string, locale: string): string | null;
29
+ declare function getExperimentalEffectName(experimentalEffectSymbol: string, locale: string): string | null;
29
30
 
30
31
  export { getExperimentalEffectName };
@@ -1 +1 @@
1
- export{getExperimentalEffectName}from"../chunk-CJWFY6OX.js"; //# sourceMappingURL=experimental-effects.js.map
1
+ export{getExperimentalEffectName}from"../chunk-DSMLYA2M.js"; //# sourceMappingURL=experimental-effects.js.map
@@ -18,20 +18,8 @@ import '../ships/engineering-options.js';
18
18
  import '../ships/module-families.js';
19
19
  import '../ships/ship-loadout.js';
20
20
  import '../ships/slef.js';
21
- import '../ships/jump-range.js';
22
- import '../ships/engineering.js';
23
- import '../ships/power.js';
24
- import '../ships/heat.js';
25
- import '../ships/shields.js';
26
- import '../ships/resistances.js';
27
- import '../ships/armour.js';
28
- import '../ships/weapons.js';
29
- import '../ships/ammunition.js';
30
- import '../ships/weapons-capacitor.js';
31
- import '../ships/distributor.js';
32
- import '../ships/mobility.js';
33
- import '../ships/shield-recovery.js';
34
21
  import '../ships/pre-engineered.js';
22
+ import '../ships/ammunition.js';
35
23
  import '../ships/source-purchase.js';
36
24
 
37
25
  /**
@@ -1 +1 @@
1
- export{getMicroResourceName}from"../chunk-GRSNX36B.js";export{getOutfittingFamilyName}from"../chunk-SD6GNFDX.js";export{getModuleName}from"../chunk-LZYHBFJC.js";export{getPreEngineeredVariantName}from"../chunk-J42ZXLBL.js";export{getShipManufacturer,getShipName}from"../chunk-KJFUNIIY.js";export{getLoadoutSlotName,getSlotRestrictionLabel}from"../chunk-ZRG35JSH.js"; export{getBlueprintName}from"../chunk-Z6XMXMVI.js";export{getCalculationIssueMessage,getLoadoutEditErrorMessage,getLoadoutIssueMessage,getSlefDiagnosticMessage}from"../chunk-6G6TYW2D.js";export{getEngineeringGroupName}from"../chunk-EKQCVCMK.js";export{getExperimentalEffectDescription}from"../chunk-4S6WB7QR.js";export{getExperimentalEffectName}from"../chunk-CJWFY6OX.js";export{getMaterialName}from"../chunk-TW7LUBHD.js"; //# sourceMappingURL=index.js.map
1
+ export{getMicroResourceName}from"../chunk-GRSNX36B.js";export{getOutfittingFamilyName}from"../chunk-SD6GNFDX.js";export{getModuleName}from"../chunk-LZYHBFJC.js";export{getPreEngineeredVariantName}from"../chunk-T62GO4AA.js";export{getShipManufacturer,getShipName}from"../chunk-KJFUNIIY.js";export{getLoadoutSlotName,getSlotRestrictionLabel}from"../chunk-ZRG35JSH.js"; export{getBlueprintName}from"../chunk-DBDCOHI4.js";export{getCalculationIssueMessage,getLoadoutEditErrorMessage,getLoadoutIssueMessage,getSlefDiagnosticMessage}from"../chunk-6G6TYW2D.js";export{getEngineeringGroupName}from"../chunk-5ZVYRX6Z.js";export{getExperimentalEffectDescription}from"../chunk-FF2X4K5P.js";export{getExperimentalEffectName}from"../chunk-DSMLYA2M.js";export{getMaterialName}from"../chunk-TW7LUBHD.js"; //# sourceMappingURL=index.js.map
@@ -6,10 +6,10 @@ import { PreEngineeredAcquisition } from '../ships/pre-engineered.js';
6
6
  interface PreEngineeredVariantIdentity {
7
7
  /** Base outfitting-module symbol. */
8
8
  readonly symbol: string;
9
- /** Frontier blueprint or fixed-reward id. */
10
- readonly blueprint: string;
11
- /** Frontier experimental-effect id, or `null`/omitted when none is fitted. */
12
- readonly experimental?: string | null;
9
+ /** Frontier blueprint or fixed-reward symbol. */
10
+ readonly blueprintSymbol: string;
11
+ /** Frontier experimental-effect symbol, or `null`/omitted when none is fitted. */
12
+ readonly experimentalEffectSymbol?: string | null;
13
13
  /** Route through which the variant is obtained. */
14
14
  readonly acquisition: PreEngineeredAcquisition;
15
15
  }
@@ -22,14 +22,15 @@ interface PreEngineeredVariantIdentity {
22
22
  * @returns The explicit localized name, or `null` for an unknown variant or unavailable
23
23
  * translation. Decorative reward names currently have English values only.
24
24
  * @throws {TypeError} If `variant` is not an object, a required identity field or a
25
- * non-null `experimental` value is not a string, or `locale` is not a string.
25
+ * non-null `experimentalEffectSymbol` value is not a string, or `locale` is not a
26
+ * string.
26
27
  * @example
27
28
  * ```ts
28
29
  * import { getPreEngineeredVariantName } from '@elite-dangerous-almanac/core/i18n/pre-engineered';
29
30
  *
30
31
  * getPreEngineeredVariantName({
31
32
  * symbol: 'Hpt_FlakMortar_Turret_Medium',
32
- * blueprint: 'Decorative_Red',
33
+ * blueprintSymbol: 'Decorative_Red',
33
34
  * acquisition: 'eventReward',
34
35
  * }, 'en'); // -> 'Festive Red Remote Release Flak Launcher'
35
36
  * ```
@@ -1 +1 @@
1
- export{getPreEngineeredVariantName}from"../chunk-J42ZXLBL.js"; //# sourceMappingURL=pre-engineered.js.map
1
+ export{getPreEngineeredVariantName}from"../chunk-T62GO4AA.js"; //# sourceMappingURL=pre-engineered.js.map
@@ -22,14 +22,26 @@
22
22
  * getMicroResourceBySymbol('graphene')?.name; // -> 'Graphene'
23
23
  * ```
24
24
  *
25
- * Every lookup also takes an optional trailing argument to **narrow** the search to
26
- * a subset — one category's catalogue, or an array you have filtered yourself:
25
+ * The by-key lookups also take an optional trailing argument to **narrow** the search
26
+ * to a subset — one category's catalogue, or an array you have filtered yourself. It
27
+ * must be one of the exported catalogues *by reference*; `ALL_MATERIALS` (or omitting
28
+ * it) is the one that answers from an index rather than a scan:
27
29
  *
28
30
  * ```ts
29
- * import { materialsByGrade } from '@elite-dangerous-almanac/core/materials';
31
+ * import { getMaterialByName } from '@elite-dangerous-almanac/core/materials';
30
32
  * import { RAW_MATERIALS } from '@elite-dangerous-almanac/core/materials/materials-raw';
31
33
  *
32
- * materialsByGrade(MaterialGrade.Rare, RAW_MATERIALS).length; // -> 7, one per raw line
34
+ * getMaterialByName('imperial shielding', RAW_MATERIALS); // -> null; it is manufactured
35
+ * ```
36
+ *
37
+ * A lookup that returns an array takes no catalogue — narrow its result, or the subset
38
+ * you already imported, with `.filter()`:
39
+ *
40
+ * ```ts
41
+ * import { MaterialGrade } from '@elite-dangerous-almanac/core/materials';
42
+ * import { RAW_MATERIALS } from '@elite-dangerous-almanac/core/materials/materials-raw';
43
+ *
44
+ * RAW_MATERIALS.filter((m) => m.grade === MaterialGrade.Rare).length; // -> 7, one per raw line
33
45
  * ```
34
46
  *
35
47
  * @packageDocumentation
@@ -1 +1 @@
1
- export{getMicroResourceByName,getMicroResourceBySymbol,microResourcesInCategory}from"../chunk-MKGJPVPS.js";export{MaterialGrade,MaterialLine,getMaterialByElementSymbol,getMaterialByName,getMaterialBySymbol,materialsByGrade,materialsInCategory,materialsInLine}from"../chunk-IOJXLDJN.js";export{ALL_MICRO_RESOURCES}from"../chunk-GVNTKCVF.js";export{ITEM_MICRO_RESOURCES}from"../chunk-WHWFKHV3.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{ALL_MATERIALS}from"../chunk-V4C6FIE2.js";export{ENCODED_MATERIALS}from"../chunk-Q5XOGATC.js";export{MANUFACTURED_MATERIALS}from"../chunk-HKXXFIRI.js";export{RAW_MATERIALS}from"../chunk-SQS7672E.js"; //# sourceMappingURL=index.js.map
1
+ export{getMicroResourceByName,getMicroResourceBySymbol,microResourcesInCategory}from"../chunk-MRTTQYT5.js";export{MaterialGrade,MaterialLine,getMaterialByElementSymbol,getMaterialByName,getMaterialBySymbol,materialsByGrade,materialsInCategory,materialsInLine}from"../chunk-OYR5HUQZ.js";export{ALL_MICRO_RESOURCES}from"../chunk-GVNTKCVF.js";export{ITEM_MICRO_RESOURCES}from"../chunk-WHWFKHV3.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{ALL_MATERIALS}from"../chunk-V4C6FIE2.js";export{ENCODED_MATERIALS}from"../chunk-Q5XOGATC.js";export{MANUFACTURED_MATERIALS}from"../chunk-HKXXFIRI.js";export{RAW_MATERIALS}from"../chunk-SQS7672E.js"; //# sourceMappingURL=index.js.map
@@ -16,8 +16,9 @@
16
16
  * getMaterialByName('iron')?.grade; // -> MaterialGrade.VeryCommon (1)
17
17
  * ```
18
18
  *
19
- * Each lookup takes an optional second argument to **narrow** the search to a
20
- * subset — one category's catalogue, or any array you have filtered yourself:
19
+ * The three **by-key** lookups take an optional second argument to **narrow** the
20
+ * search to a subset — one category's catalogue, or any array you have filtered
21
+ * yourself:
21
22
  *
22
23
  * | Module | Export | Entries |
23
24
  * | --- | --- | --- |
@@ -27,9 +28,19 @@
27
28
  * | `./materials-all` | `ALL_MATERIALS` | 146 (the default) |
28
29
  *
29
30
  * It narrows *results*, not bundle size: importing a lookup pulls all three
30
- * catalogues, since that is what it falls back to — 16.9 KiB minified for all 146.
31
+ * catalogues, since that is what it falls back to — 17.2 KiB minified for all 146.
31
32
  * {@link materialsInCategory} reaches the same subsets from a plain string.
32
33
  *
34
+ * **Only `ALL_MATERIALS` itself is indexed.** A by-key lookup answers from an O(1)
35
+ * index when the catalogue you pass *is* `ALL_MATERIALS` — the same object, not a copy
36
+ * — and scans linearly otherwise, including for `[...ALL_MATERIALS]`, which holds the
37
+ * same 146 records. Omitting the argument always takes the indexed path, so pass one
38
+ * only when you mean to exclude the rest.
39
+ *
40
+ * The filtering lookups ({@link materialsByGrade}, {@link materialsInLine},
41
+ * {@link materialsInCategory}) take no catalogue: each returns an array, so narrowing
42
+ * one is `.filter()` on the result or on the subset you already imported.
43
+ *
33
44
  * Data originates from EDCD FDevIDs, with Thargoid materials absent from that
34
45
  * pinned source supplied by INARA; see [`data/materials/SOURCES.md`](https://github.com/DarkSession/Elite-Dangerous-Almanac/blob/main/data/materials/SOURCES.md).
35
46
  *
@@ -168,10 +179,14 @@ interface Material {
168
179
  * Here, `symbol` is Frontier's internal item id for the material.
169
180
  *
170
181
  * @param symbol - The internal symbol, e.g. `"GridResistors"`, or the lower-cased
171
- * form the player journal reports (`"gridresistors"`).
182
+ * form the player journal reports (`"gridresistors"`). Leading/trailing whitespace
183
+ * and case are ignored.
172
184
  * @param materials - Optional subset to search instead of all 146 materials —
173
185
  * `RAW_MATERIALS`, `MANUFACTURED_MATERIALS`, `ENCODED_MATERIALS`, or any array you
174
- * have filtered yourself. Omit it unless you specifically want to exclude the rest.
186
+ * have filtered yourself. Omit it unless you specifically want to exclude the rest:
187
+ * the indexed O(1) path is taken only when the argument is omitted or is
188
+ * `ALL_MATERIALS` **by reference**, and every other array — a copy of that same
189
+ * catalogue included — is scanned.
175
190
  * @returns The matching {@link Material}, or `null` if no material has that symbol.
176
191
  * @throws {TypeError} If `symbol` is present and not a string. A nullish
177
192
  * `symbol` is a miss, answered the way an unrecognised one is.
@@ -187,6 +202,7 @@ declare function getMaterialBySymbol(symbol: string, materials?: readonly Materi
187
202
  * Look up a material by its display name (case-insensitive).
188
203
  *
189
204
  * @param name - The display name as the catalogue spells it, e.g. `"Grid Resistors"`.
205
+ * Leading/trailing whitespace and case are ignored.
190
206
  * @param materials - Optional subset to search (see {@link getMaterialBySymbol}).
191
207
  * @returns The matching {@link Material}, or `null` if no material has that name.
192
208
  * @throws {TypeError} If `name` is present and not a string. A nullish
@@ -202,7 +218,8 @@ declare function getMaterialByName(name: string, materials?: readonly Material[]
202
218
  /**
203
219
  * Look up a raw material by its chemical element symbol (case-insensitive).
204
220
  *
205
- * @param elementSymbol - The element symbol, e.g. `"Fe"` or `"fe"`.
221
+ * @param elementSymbol - The element symbol, e.g. `"Fe"` or `"fe"`. Leading/trailing
222
+ * whitespace and case are ignored.
206
223
  * @param materials - Optional subset to search (see {@link getMaterialBySymbol}).
207
224
  * @returns The matching {@link Material}, or `null`. Only raw materials carry an
208
225
  * element symbol, so a manufactured or encoded subset never matches.
@@ -217,29 +234,30 @@ declare function getMaterialByName(name: string, materials?: readonly Material[]
217
234
  */
218
235
  declare function getMaterialByElementSymbol(elementSymbol: string, materials?: readonly Material[]): Material | null;
219
236
  /**
220
- * Every material of a given grade, in catalogue order.
237
+ * Every material of a given grade, across all three categories, in catalogue order.
221
238
  *
222
- * @param grade - The grade to match, 1–5 (or a {@link MaterialGrade} member).
223
- * @param materials - Optional subset to search (see {@link getMaterialBySymbol}).
224
- * @returns A new array of matches (possibly empty). The input is not modified.
239
+ * @param grade - The grade to match, 1–5 (or a {@link MaterialGrade} member). A grade
240
+ * no material carries matches nothing, the way an unrecognised symbol does.
241
+ * @returns A new array of matches (possibly empty).
242
+ * @throws {TypeError} If `grade` is present and not a number. A nullish `grade` is a
243
+ * miss, answered the way an unrecognised one is.
225
244
  * @example
226
245
  * ```ts
227
246
  * import { MaterialGrade, materialsByGrade } from '@elite-dangerous-almanac/core/materials/materials';
228
247
  * import { RAW_MATERIALS } from '@elite-dangerous-almanac/core/materials/materials-raw';
229
248
  *
230
- * materialsByGrade(MaterialGrade.VeryRare).length; // -> across every category
231
- * materialsByGrade(MaterialGrade.Rare, RAW_MATERIALS).length; // -> 7, one per raw line
249
+ * materialsByGrade(MaterialGrade.VeryRare).length; // -> across every category
250
+ * RAW_MATERIALS.filter((m) => m.grade === MaterialGrade.Rare).length; // -> 7, one per raw line
232
251
  * ```
233
252
  */
234
- declare function materialsByGrade(grade: MaterialGrade, materials?: readonly Material[]): Material[];
253
+ declare function materialsByGrade(grade: MaterialGrade): Material[];
235
254
  /**
236
255
  * Every material in a given line, in catalogue order.
237
256
  *
238
257
  * @param line - The line to match, e.g. `MaterialLine.Chemical`. A plain string of
239
258
  * the line's value works too: leading/trailing whitespace and case are ignored, like
240
259
  * every other lookup here.
241
- * @param materials - Optional subset to search (see {@link getMaterialBySymbol}).
242
- * @returns A new array of matches (possibly empty). The input is not modified.
260
+ * @returns A new array of matches (possibly empty).
243
261
  * @throws {TypeError} If `line` is present and not a string. A nullish
244
262
  * `line` is a miss, answered the way an unrecognised one is.
245
263
  * @example
@@ -249,7 +267,7 @@ declare function materialsByGrade(grade: MaterialGrade, materials?: readonly Mat
249
267
  * materialsInLine(MaterialLine.Chemical).map((m) => m.grade); // -> [1, 2, 3, 4, 5]
250
268
  * ```
251
269
  */
252
- declare function materialsInLine(line: string, materials?: readonly Material[]): Material[];
270
+ declare function materialsInLine(line: string): Material[];
253
271
  /**
254
272
  * Every material in a given category, in catalogue order.
255
273
  *
@@ -260,8 +278,7 @@ declare function materialsInLine(line: string, materials?: readonly Material[]):
260
278
  *
261
279
  * @param category - The category to match: `'raw'`, `'manufactured'` or `'encoded'`.
262
280
  * Leading/trailing whitespace and case are ignored, like every other lookup here.
263
- * @param materials - Optional subset to search (see {@link getMaterialBySymbol}).
264
- * @returns A new array of matches (possibly empty). The input is not modified.
281
+ * @returns A new array of matches (possibly empty).
265
282
  * @throws {TypeError} If `category` is present and not a string. A nullish
266
283
  * `category` is a miss, answered the way an unrecognised one is.
267
284
  * @example
@@ -272,6 +289,6 @@ declare function materialsInLine(line: string, materials?: readonly Material[]):
272
289
  * materialsInCategory('Encoded').length; // -> 47; case is ignored
273
290
  * ```
274
291
  */
275
- declare function materialsInCategory(category: string, materials?: readonly Material[]): Material[];
292
+ declare function materialsInCategory(category: string): Material[];
276
293
 
277
294
  export { type Material, type MaterialCategory, MaterialGrade, MaterialLine, getMaterialByElementSymbol, getMaterialByName, getMaterialBySymbol, materialsByGrade, materialsInCategory, materialsInLine };
@@ -1 +1 @@
1
- export{MaterialGrade,MaterialLine,getMaterialByElementSymbol,getMaterialByName,getMaterialBySymbol,materialsByGrade,materialsInCategory,materialsInLine}from"../chunk-IOJXLDJN.js"; //# sourceMappingURL=materials.js.map
1
+ export{MaterialGrade,MaterialLine,getMaterialByElementSymbol,getMaterialByName,getMaterialBySymbol,materialsByGrade,materialsInCategory,materialsInLine}from"../chunk-OYR5HUQZ.js"; //# sourceMappingURL=materials.js.map
@@ -15,8 +15,8 @@
15
15
  * getMicroResourceBySymbol('graphene')?.category; // -> 'component'
16
16
  * ```
17
17
  *
18
- * Each lookup takes an optional second argument to **narrow** the search to a
19
- * subset — one category's catalogue, or any array you have filtered yourself:
18
+ * The two **by-key** lookups take an optional second argument to **narrow** the search
19
+ * to a subset — one category's catalogue, or any array you have filtered yourself:
20
20
  *
21
21
  * | Module | Export | Entries |
22
22
  * | --- | --- | --- |
@@ -27,9 +27,18 @@
27
27
  * | `./micro-resources-all` | `ALL_MICRO_RESOURCES` | 226 (the default) |
28
28
  *
29
29
  * It narrows *results*, not bundle size: importing a lookup pulls all four
30
- * catalogues, since that is what it falls back to — 13.0 KiB minified for all 226.
30
+ * catalogues, since that is what it falls back to — 13.4 KiB minified for all 226.
31
31
  * {@link microResourcesInCategory} reaches the same subsets from a plain string.
32
32
  *
33
+ * **Only `ALL_MICRO_RESOURCES` itself is indexed.** A by-key lookup answers from an
34
+ * O(1) index when the catalogue you pass *is* `ALL_MICRO_RESOURCES` — the same object,
35
+ * not a copy — and scans linearly otherwise, including for `[...ALL_MICRO_RESOURCES]`,
36
+ * which holds the same 226 records. Omitting the argument always takes the indexed
37
+ * path, so pass one only when you mean to exclude the rest.
38
+ *
39
+ * {@link microResourcesInCategory} takes no catalogue: it returns an array, so
40
+ * narrowing it is `.filter()` on the result or on the subset you already imported.
41
+ *
33
42
  * Data originates from EDCD FDevIDs (`microresources.csv`), in-game verification and
34
43
  * Inara; see [`data/materials/SOURCES.md`](https://github.com/DarkSession/Elite-Dangerous-Almanac/blob/main/data/materials/SOURCES.md).
35
44
  *
@@ -83,7 +92,10 @@ interface MicroResource {
83
92
  * @param microResources - Optional subset to search instead of all 226 micro
84
93
  * resources — `COMPONENT_MICRO_RESOURCES`, `CONSUMABLE_MICRO_RESOURCES`,
85
94
  * `DATA_MICRO_RESOURCES`, `ITEM_MICRO_RESOURCES`, or any array you have filtered
86
- * yourself. Omit it unless you specifically want to exclude the rest.
95
+ * yourself. Omit it unless you specifically want to exclude the rest: the indexed O(1)
96
+ * path is taken only when the argument is omitted or is `ALL_MICRO_RESOURCES` **by
97
+ * reference**, and every other array — a copy of that same catalogue included — is
98
+ * scanned.
87
99
  * @returns The matching {@link MicroResource}, or `null` if no micro resource has
88
100
  * that symbol.
89
101
  * @throws {TypeError} If `symbol` is present and not a string. A nullish
@@ -119,8 +131,7 @@ declare function getMicroResourceByName(name: string, microResources?: readonly
119
131
  *
120
132
  * @param category - The category to match, e.g. `'component'`. Leading/trailing
121
133
  * whitespace and case are ignored, like every other lookup here.
122
- * @param microResources - Optional subset to search (see {@link getMicroResourceBySymbol}).
123
- * @returns A new array of matches (possibly empty). The input is not modified.
134
+ * @returns A new array of matches (possibly empty).
124
135
  * @throws {TypeError} If `category` is present and not a string. A nullish
125
136
  * `category` is a miss, answered the way an unrecognised one is.
126
137
  * @example
@@ -131,6 +142,6 @@ declare function getMicroResourceByName(name: string, microResources?: readonly
131
142
  * microResourcesInCategory('Consumable').length; // -> 6; case is ignored
132
143
  * ```
133
144
  */
134
- declare function microResourcesInCategory(category: string, microResources?: readonly MicroResource[]): MicroResource[];
145
+ declare function microResourcesInCategory(category: string): MicroResource[];
135
146
 
136
147
  export { type MicroResource, type MicroResourceCategory, getMicroResourceByName, getMicroResourceBySymbol, microResourcesInCategory };
@@ -1 +1 @@
1
- export{getMicroResourceByName,getMicroResourceBySymbol,microResourcesInCategory}from"../chunk-MKGJPVPS.js"; //# sourceMappingURL=micro-resources.js.map
1
+ export{getMicroResourceByName,getMicroResourceBySymbol,microResourcesInCategory}from"../chunk-MRTTQYT5.js"; //# sourceMappingURL=micro-resources.js.map
@@ -14,7 +14,7 @@ import { DamageResistanceParams, DamageResistances, DamageTypeValues } from './r
14
14
  * stack onto with diminishing returns — see `./resistances`. Module reinforcement
15
15
  * packages protect the *modules* rather than the hull, and are reported separately.
16
16
  *
17
- * This module is data-free. {@link ShipLoadout.armourMetrics} (in `./ship-loadout`)
17
+ * This module is data-free. {@link BuildMetrics.armourMetrics} (in `./build-metrics`)
18
18
  * gathers a build's bulkhead and reinforcement packages, post-engineering, and calls
19
19
  * {@link armourMetrics} for you.
20
20
  *
@@ -77,7 +77,7 @@ interface ArmourInput {
77
77
  * @remarks
78
78
  * Absent means **no** bulkhead: no armour bonus and no resistances, so the hull
79
79
  * reports its bare `baseArmour`. No ship in the game flies like that;
80
- * `ShipLoadout.armourMetrics()` substitutes the hull's stock lightweight alloy
80
+ * `BuildMetrics.armourMetrics()` substitutes the hull's stock lightweight alloy
81
81
  * instead, and you should pass the hull's own armour record here to do the same.
82
82
  */
83
83
  readonly bulkhead?: BulkheadParams | null;
@@ -86,7 +86,14 @@ interface ArmourInput {
86
86
  /** Each fitted, powered module reinforcement package. Defaults to none. */
87
87
  readonly moduleReinforcements?: readonly ModuleReinforcementParams[];
88
88
  }
89
- /** A build's armour: hit points, where they come from, and what the hull resists. */
89
+ /**
90
+ * A build's armour: hit points, where they come from, and what the hull resists.
91
+ *
92
+ * @remarks
93
+ * Frozen — nested records and lists included — so a result can be held, cached and
94
+ * shared without a defensive copy. Derive a changed figure with a spread rather than
95
+ * by assigning into one.
96
+ */
90
97
  interface ArmourMetrics {
91
98
  /** Total hull hit points. */
92
99
  readonly hitPoints: number;
@@ -94,7 +101,16 @@ interface ArmourMetrics {
94
101
  readonly bulkheads: number;
95
102
  /** What the hull reinforcement packages add. */
96
103
  readonly reinforcement: number;
97
- /** Effective resistances, bulkhead and reinforcement stacked with diminishing returns. */
104
+ /**
105
+ * Effective resistances, bulkhead and reinforcement stacked with diminishing returns.
106
+ *
107
+ * @remarks
108
+ * Fractions rather than percentages, and **unrounded**: the stacking is
109
+ * floating-point arithmetic, so a nominal −20% reads as `-0.19999999999999996`
110
+ * rather than `-0.2`. Round where the figure is displayed, not before it is
111
+ * composed further — {@link ArmourMetrics.effectiveHitPoints} is derived from
112
+ * exactly these values.
113
+ */
98
114
  readonly resistances: DamageResistances;
99
115
  /**
100
116
  * Effective hit points against each damage type — `hitPoints / (1 − resistance)`,
@@ -1 +1 @@
1
- export{armourMetrics}from"../chunk-FGXWVFN6.js"; //# sourceMappingURL=armour.js.map
1
+ export{armourMetrics}from"../chunk-FYVPZBXN.js"; //# sourceMappingURL=armour.js.map
@@ -39,7 +39,7 @@ import './slots.js';
39
39
  */
40
40
  type BlueprintGradeCosts = Readonly<Record<string, readonly EngineeringMaterial[]>>;
41
41
  /**
42
- * Every craftable blueprint's per-roll material recipes, keyed by Frontier `fdname` and then grade.
42
+ * Every craftable blueprint's per-roll material recipes, keyed by Frontier symbol and then grade.
43
43
  *
44
44
  * @remarks
45
45
  * Its ids and grade sets are the craftable subset of `BLUEPRINTS` from
@@ -59,7 +59,7 @@ declare const BLUEPRINT_COSTS: Readonly<Record<string, BlueprintGradeCosts>>;
59
59
  /**
60
60
  * Look up all per-grade material recipes for one blueprint.
61
61
  *
62
- * @param fdname - The blueprint id, e.g. `"FSD_LongRange"`, matched
62
+ * @param blueprintSymbol - The blueprint id, e.g. `"FSD_LongRange"`, matched
63
63
  * case-insensitively after trimming surrounding whitespace.
64
64
  * @remarks
65
65
  * The material half only, straight from the catalogue. The Merc Coin some recipes charge
@@ -68,8 +68,8 @@ declare const BLUEPRINT_COSTS: Readonly<Record<string, BlueprintGradeCosts>>;
68
68
  *
69
69
  * @returns The frozen grade-to-material-list record, or `null` if no ordinary craft
70
70
  * cost is catalogued (including a known fixed reward identity).
71
- * @throws {TypeError} If `fdname` is present and not a string. A nullish
72
- * `fdname` is a miss, answered the way an unrecognised one is.
71
+ * @throws {TypeError} If `blueprintSymbol` is present and not a string. A nullish
72
+ * `blueprintSymbol` is a miss, answered the way an unrecognised one is.
73
73
  * @example
74
74
  * ```ts
75
75
  * import { getBlueprintCosts } from '@elite-dangerous-almanac/core/ships/blueprint-costs';
@@ -78,7 +78,7 @@ declare const BLUEPRINT_COSTS: Readonly<Record<string, BlueprintGradeCosts>>;
78
78
  * // -> [{ symbol: 'Arsenic', name: 'Arsenic', count: 1 }, ...]
79
79
  * ```
80
80
  */
81
- declare function getBlueprintCosts(fdname: string): BlueprintGradeCosts | null;
81
+ declare function getBlueprintCosts(blueprintSymbol: string): BlueprintGradeCosts | null;
82
82
  /**
83
83
  * What one engineering step costs — the materials it consumes and the Merc Coin billed
84
84
  * beside them.
@@ -109,15 +109,15 @@ interface BlueprintCost {
109
109
  /**
110
110
  * Look up what **one roll** at one blueprint grade costs.
111
111
  *
112
- * @param fdname - The blueprint id, e.g. `"FSD_LongRange"`, matched
112
+ * @param blueprintSymbol - The blueprint id, e.g. `"FSD_LongRange"`, matched
113
113
  * case-insensitively after trimming surrounding whitespace.
114
114
  * @param grade - The grade, `1`–`5`.
115
115
  * @returns The materials one roll consumes and the Merc Coin it bills, or `null` if no
116
116
  * ordinary craft cost is catalogued for the blueprint and grade. `materials` is the
117
117
  * frozen catalogue list; `mercCoins` is `0` unless the recipe charges a currency.
118
118
  * @throws {RangeError} If `grade` is not an integer from 1 through 5.
119
- * @throws {TypeError} If `fdname` is present and not a string. A nullish
120
- * `fdname` is a miss, answered the way an unrecognised one is.
119
+ * @throws {TypeError} If `blueprintSymbol` is present and not a string. A nullish
120
+ * `blueprintSymbol` is a miss, answered the way an unrecognised one is.
121
121
  * @example
122
122
  * ```ts
123
123
  * import { getBlueprintGradeCost } from '@elite-dangerous-almanac/core/ships/blueprint-costs';
@@ -128,12 +128,15 @@ interface BlueprintCost {
128
128
  * getBlueprintGradeCost('RailGun_LongShot', 5)?.mercCoins; // -> 50
129
129
  * ```
130
130
  */
131
- declare function getBlueprintGradeCost(fdname: string, grade: number): BlueprintCost | null;
131
+ declare function getBlueprintGradeCost(blueprintSymbol: string, grade: number): BlueprintCost | null;
132
132
  /**
133
133
  * Compute the **total** cost of engineering a module up to a grade — every grade the
134
- * module still has to climb, each rolled the number of times it takes to complete
135
- * ({@link rollsForGrade}: grade `g` needs `g` rolls), summed into one shopping list and
136
- * one Merc Coin total.
134
+ * module still has to climb, each rolled the number of times it takes to complete,
135
+ * summed into one shopping list and one Merc Coin total.
136
+ *
137
+ * **Grade `N` takes `N` rolls** to fill its progress bar (grade 1 → 1 roll, grade 2 → 2
138
+ * rolls, … grade 5 → 5 rolls), and each roll costs that grade's recipe once, so the
139
+ * climb is weighted rather than a plain sum — for the materials and the Merc Coin alike.
137
140
  *
138
141
  * By default it prices the whole climb from unengineered; pass `currentGrade` to price
139
142
  * only what remains. Each grade `g` in `currentGrade + 1 … grade` contributes
@@ -153,7 +156,7 @@ declare function getBlueprintGradeCost(fdname: string, grade: number): Blueprint
153
156
  * same at every grade. Either spelling therefore prices correctly without a fitted
154
157
  * module; cross-catalogue tests pin that invariant.
155
158
  *
156
- * @param fdname - The blueprint id, e.g. `"FSD_LongRange"`, matched
159
+ * @param blueprintSymbol - The blueprint id, e.g. `"FSD_LongRange"`, matched
157
160
  * case-insensitively after trimming surrounding whitespace.
158
161
  * @param grade - The target grade, `1`–`5`.
159
162
  * @param currentGrade - The completed grade, `0`–`5`; defaults to `0` for an
@@ -166,8 +169,8 @@ declare function getBlueprintGradeCost(fdname: string, grade: number): Blueprint
166
169
  * charges no currency, so `null` remains the one answer meaning "not catalogued".
167
170
  * @throws {RangeError} If `grade` is not an integer from 1 through 5, or `currentGrade`
168
171
  * is not an integer from 0 through 5.
169
- * @throws {TypeError} If `fdname` is present and not a string. A nullish
170
- * `fdname` is a miss, answered the way an unrecognised one is.
172
+ * @throws {TypeError} If `blueprintSymbol` is present and not a string. A nullish
173
+ * `blueprintSymbol` is a miss, answered the way an unrecognised one is.
171
174
  * @example
172
175
  * ```ts
173
176
  * import { getBlueprintCost } from '@elite-dangerous-almanac/core/ships/blueprint-costs';
@@ -181,7 +184,7 @@ declare function getBlueprintGradeCost(fdname: string, grade: number): Blueprint
181
184
  * getBlueprintCost('FuelScoop_Efficiency', 5)?.mercCoins; // -> 350
182
185
  * ```
183
186
  */
184
- declare function getBlueprintCost(fdname: string, grade: number, currentGrade?: number): BlueprintCost | null;
187
+ declare function getBlueprintCost(blueprintSymbol: string, grade: number, currentGrade?: number): BlueprintCost | null;
185
188
  /**
186
189
  * Merc Coin charged for **one roll** of a blueprint, keyed by grade (`"1"`–`"5"`).
187
190
  *
@@ -195,7 +198,7 @@ declare function getBlueprintCost(fdname: string, grade: number, currentGrade?:
195
198
  type BlueprintMercCoinCosts = Readonly<Record<string, number>>;
196
199
  /**
197
200
  * The Merc Coin charged per roll by every blueprint that charges any, keyed by Frontier
198
- * `fdname` and then grade.
201
+ * symbol and then grade.
199
202
  *
200
203
  * @remarks
201
204
  * The raw catalogue behind {@link BlueprintCost.mercCoins}; reach for
@@ -1 +1 @@
1
- export{BLUEPRINT_COSTS,BLUEPRINT_MERC_COIN_COSTS,getBlueprintCost,getBlueprintCosts,getBlueprintGradeCost}from"../chunk-TEOJCBSG.js"; //# sourceMappingURL=blueprint-costs.js.map
1
+ export{BLUEPRINT_COSTS,BLUEPRINT_MERC_COIN_COSTS,getBlueprintCost,getBlueprintCosts,getBlueprintGradeCost}from"../chunk-MTJ4MS7W.js"; //# sourceMappingURL=blueprint-costs.js.map
@@ -39,17 +39,18 @@
39
39
  * unaffected — both spellings of a pair bill the same at every grade, so
40
40
  * `getBlueprintCost` needs no module.
41
41
  *
42
- * @param symbol - A module symbol, e.g. `"Hpt_CloudScanner_Size0_Class5"`.
43
- * @param fdname - A blueprint catalogue or journal id, matched case-insensitively and
44
- * trimmed. Colliding journal spellings are resolved against `symbol`.
42
+ * @param moduleSymbol - A module symbol, e.g. `"Hpt_CloudScanner_Size0_Class5"`.
43
+ * @param blueprintSymbol - A blueprint catalogue or journal id, matched case-insensitively and
44
+ * trimmed. Colliding journal spellings are resolved against `moduleSymbol`.
45
45
  * @returns The id to join to `BLUEPRINTS`, in that catalogue's spelling when a journal
46
- * name resolved, and otherwise `fdname` exactly as it was passed — byte for byte, so a
46
+ * name resolved, and otherwise `blueprintSymbol` exactly as it was passed — byte for byte, so a
47
47
  * caller who never meets the collision never sees their own spelling rewritten.
48
48
  *
49
- * @throws {TypeError} If `fdname` is not a string, including when it is missing — this
49
+ * @throws {TypeError} If `blueprintSymbol` is not a string, including when it is missing — this
50
50
  * returns an id rather than reporting whether one is known, so there is no miss for a
51
- * nullish one to be. A nullish `symbol` *is* a miss: an unknown module offers no menu,
52
- * and `fdname` comes back unchanged.
51
+ * nullish one to be. A nullish `moduleSymbol` *is* a miss: an unknown module offers no
52
+ * menu,
53
+ * and `blueprintSymbol` comes back unchanged.
53
54
  * @example
54
55
  * ```ts
55
56
  * import { resolveBlueprintForModule } from '@elite-dangerous-almanac/core/ships/blueprint-journal';
@@ -69,6 +70,6 @@
69
70
  * // -> 'Weapon_Overcharged'
70
71
  * ```
71
72
  */
72
- declare function resolveBlueprintForModule(symbol: string, fdname: string): string;
73
+ declare function resolveBlueprintForModule(moduleSymbol: string, blueprintSymbol: string): string;
73
74
 
74
75
  export { resolveBlueprintForModule };
@@ -1 +1 @@
1
- export{resolveBlueprintForModule}from"../chunk-2TW4ZBI3.js"; //# sourceMappingURL=blueprint-journal.js.map
1
+ export{resolveBlueprintForModule}from"../chunk-OLKNYGGT.js"; //# sourceMappingURL=blueprint-journal.js.map