@elite-dangerous-almanac/core 0.1.0-beta.1

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 (357) hide show
  1. package/LICENSE +48 -0
  2. package/PROVENANCE/SNAPSHOTS.md +36 -0
  3. package/PROVENANCE/astro/SOURCES.md +94 -0
  4. package/PROVENANCE/commodities/SOURCES.md +41 -0
  5. package/PROVENANCE/materials/SOURCES.md +69 -0
  6. package/PROVENANCE/ships/SOURCES.md +1580 -0
  7. package/README.md +148 -0
  8. package/THIRD_PARTY_NOTICES.md +202 -0
  9. package/dist/astro/codex-region-lookup.d.ts +169 -0
  10. package/dist/astro/codex-region-lookup.js +1 -0
  11. package/dist/astro/codex-region-lookup.js.map +1 -0
  12. package/dist/astro/codex-region.d.ts +149 -0
  13. package/dist/astro/codex-region.js +1 -0
  14. package/dist/astro/codex-region.js.map +1 -0
  15. package/dist/astro/galaxy-grid.d.ts +83 -0
  16. package/dist/astro/galaxy-grid.js +1 -0
  17. package/dist/astro/galaxy-grid.js.map +1 -0
  18. package/dist/astro/hand-authored-regions.d.ts +121 -0
  19. package/dist/astro/hand-authored-regions.js +1 -0
  20. package/dist/astro/hand-authored-regions.js.map +1 -0
  21. package/dist/astro/index.d.ts +140 -0
  22. package/dist/astro/index.js +1 -0
  23. package/dist/astro/index.js.map +1 -0
  24. package/dist/astro/mass-code.d.ts +55 -0
  25. package/dist/astro/mass-code.js +1 -0
  26. package/dist/astro/mass-code.js.map +1 -0
  27. package/dist/astro/naming-region-origins.d.ts +4 -0
  28. package/dist/astro/naming-region-origins.js +1 -0
  29. package/dist/astro/naming-region-origins.js.map +1 -0
  30. package/dist/astro/nebulae-all.d.ts +40 -0
  31. package/dist/astro/nebulae-all.js +1 -0
  32. package/dist/astro/nebulae-all.js.map +1 -0
  33. package/dist/astro/nebulae-planetary.d.ts +37 -0
  34. package/dist/astro/nebulae-planetary.js +1 -0
  35. package/dist/astro/nebulae-planetary.js.map +1 -0
  36. package/dist/astro/nebulae-procgen.d.ts +36 -0
  37. package/dist/astro/nebulae-procgen.js +1 -0
  38. package/dist/astro/nebulae-procgen.js.map +1 -0
  39. package/dist/astro/nebulae-real.d.ts +37 -0
  40. package/dist/astro/nebulae-real.js +1 -0
  41. package/dist/astro/nebulae-real.js.map +1 -0
  42. package/dist/astro/nebulae.d.ts +169 -0
  43. package/dist/astro/nebulae.js +1 -0
  44. package/dist/astro/nebulae.js.map +1 -0
  45. package/dist/astro/permit-locked-regions.d.ts +54 -0
  46. package/dist/astro/permit-locked-regions.js +1 -0
  47. package/dist/astro/permit-locked-regions.js.map +1 -0
  48. package/dist/astro/permit-locked-systems.d.ts +74 -0
  49. package/dist/astro/permit-locked-systems.js +1 -0
  50. package/dist/astro/permit-locked-systems.js.map +1 -0
  51. package/dist/astro/permit-locks.d.ts +130 -0
  52. package/dist/astro/permit-locks.js +1 -0
  53. package/dist/astro/permit-locks.js.map +1 -0
  54. package/dist/astro/procedural-system.d.ts +228 -0
  55. package/dist/astro/procedural-system.js +1 -0
  56. package/dist/astro/procedural-system.js.map +1 -0
  57. package/dist/astro/sector-name.d.ts +87 -0
  58. package/dist/astro/sector-name.js +1 -0
  59. package/dist/astro/sector-name.js.map +1 -0
  60. package/dist/astro/system-address-input.d.ts +76 -0
  61. package/dist/astro/system-address-input.js +1 -0
  62. package/dist/astro/system-address-input.js.map +1 -0
  63. package/dist/astro/system-address.d.ts +4 -0
  64. package/dist/astro/system-address.js +1 -0
  65. package/dist/astro/system-address.js.map +1 -0
  66. package/dist/astro/system-name.d.ts +187 -0
  67. package/dist/astro/system-name.js +1 -0
  68. package/dist/astro/system-name.js.map +1 -0
  69. package/dist/chunk-2FHHMYDC.js +1 -0
  70. package/dist/chunk-2FHHMYDC.js.map +1 -0
  71. package/dist/chunk-462OKHXR.js +1 -0
  72. package/dist/chunk-462OKHXR.js.map +1 -0
  73. package/dist/chunk-5H74FKY7.js +1 -0
  74. package/dist/chunk-5H74FKY7.js.map +1 -0
  75. package/dist/chunk-6LUEKHO5.js +1 -0
  76. package/dist/chunk-6LUEKHO5.js.map +1 -0
  77. package/dist/chunk-76XKY2Y2.js +1 -0
  78. package/dist/chunk-76XKY2Y2.js.map +1 -0
  79. package/dist/chunk-7EE5VIHR.js +1 -0
  80. package/dist/chunk-7EE5VIHR.js.map +1 -0
  81. package/dist/chunk-A3NM7SAJ.js +1 -0
  82. package/dist/chunk-A3NM7SAJ.js.map +1 -0
  83. package/dist/chunk-A6XPYSVR.js +1 -0
  84. package/dist/chunk-A6XPYSVR.js.map +1 -0
  85. package/dist/chunk-AA3K5XUE.js +1 -0
  86. package/dist/chunk-AA3K5XUE.js.map +1 -0
  87. package/dist/chunk-AVZI6VKA.js +1 -0
  88. package/dist/chunk-AVZI6VKA.js.map +1 -0
  89. package/dist/chunk-B5TT26XE.js +1 -0
  90. package/dist/chunk-B5TT26XE.js.map +1 -0
  91. package/dist/chunk-BNILZXJD.js +1 -0
  92. package/dist/chunk-BNILZXJD.js.map +1 -0
  93. package/dist/chunk-BRDQUJXV.js +1 -0
  94. package/dist/chunk-BRDQUJXV.js.map +1 -0
  95. package/dist/chunk-BTPV5CIF.js +1 -0
  96. package/dist/chunk-BTPV5CIF.js.map +1 -0
  97. package/dist/chunk-CI3ACMRA.js +1 -0
  98. package/dist/chunk-CI3ACMRA.js.map +1 -0
  99. package/dist/chunk-COE5ADYJ.js +1 -0
  100. package/dist/chunk-COE5ADYJ.js.map +1 -0
  101. package/dist/chunk-CWAX3BSH.js +1 -0
  102. package/dist/chunk-CWAX3BSH.js.map +1 -0
  103. package/dist/chunk-DACZE3HX.js +1 -0
  104. package/dist/chunk-DACZE3HX.js.map +1 -0
  105. package/dist/chunk-DURKO7JU.js +1 -0
  106. package/dist/chunk-DURKO7JU.js.map +1 -0
  107. package/dist/chunk-E45EDCYH.js +1 -0
  108. package/dist/chunk-E45EDCYH.js.map +1 -0
  109. package/dist/chunk-ELIZXUMI.js +1 -0
  110. package/dist/chunk-ELIZXUMI.js.map +1 -0
  111. package/dist/chunk-EYGVDJ2I.js +1 -0
  112. package/dist/chunk-EYGVDJ2I.js.map +1 -0
  113. package/dist/chunk-FGXWVFN6.js +1 -0
  114. package/dist/chunk-FGXWVFN6.js.map +1 -0
  115. package/dist/chunk-GJCB2Z72.js +1 -0
  116. package/dist/chunk-GJCB2Z72.js.map +1 -0
  117. package/dist/chunk-HI7FCS3G.js +1 -0
  118. package/dist/chunk-HI7FCS3G.js.map +1 -0
  119. package/dist/chunk-HKXXFIRI.js +1 -0
  120. package/dist/chunk-HKXXFIRI.js.map +1 -0
  121. package/dist/chunk-HTB52N6S.js +1 -0
  122. package/dist/chunk-HTB52N6S.js.map +1 -0
  123. package/dist/chunk-I7PIDRMU.js +1 -0
  124. package/dist/chunk-I7PIDRMU.js.map +1 -0
  125. package/dist/chunk-IH4NXKVW.js +1 -0
  126. package/dist/chunk-IH4NXKVW.js.map +1 -0
  127. package/dist/chunk-INNFH37U.js +1 -0
  128. package/dist/chunk-INNFH37U.js.map +1 -0
  129. package/dist/chunk-J2PNZQY4.js +1 -0
  130. package/dist/chunk-J2PNZQY4.js.map +1 -0
  131. package/dist/chunk-JQG4C67D.js +1 -0
  132. package/dist/chunk-JQG4C67D.js.map +1 -0
  133. package/dist/chunk-JTQVWIGL.js +1 -0
  134. package/dist/chunk-JTQVWIGL.js.map +1 -0
  135. package/dist/chunk-JWJ7RSZC.js +1 -0
  136. package/dist/chunk-JWJ7RSZC.js.map +1 -0
  137. package/dist/chunk-K3AMV27L.js +1 -0
  138. package/dist/chunk-K3AMV27L.js.map +1 -0
  139. package/dist/chunk-K7F6WC4T.js +1 -0
  140. package/dist/chunk-K7F6WC4T.js.map +1 -0
  141. package/dist/chunk-K7L7SMIR.js +1 -0
  142. package/dist/chunk-K7L7SMIR.js.map +1 -0
  143. package/dist/chunk-KG4EWDZZ.js +1 -0
  144. package/dist/chunk-KG4EWDZZ.js.map +1 -0
  145. package/dist/chunk-KMFUCORC.js +1 -0
  146. package/dist/chunk-KMFUCORC.js.map +1 -0
  147. package/dist/chunk-L2ZZXEZM.js +1 -0
  148. package/dist/chunk-L2ZZXEZM.js.map +1 -0
  149. package/dist/chunk-L747RVPO.js +1 -0
  150. package/dist/chunk-L747RVPO.js.map +1 -0
  151. package/dist/chunk-MFV4VZFP.js +1 -0
  152. package/dist/chunk-MFV4VZFP.js.map +1 -0
  153. package/dist/chunk-NWPK6Q3S.js +1 -0
  154. package/dist/chunk-NWPK6Q3S.js.map +1 -0
  155. package/dist/chunk-PMJG7PHU.js +1 -0
  156. package/dist/chunk-PMJG7PHU.js.map +1 -0
  157. package/dist/chunk-PP2VSA6M.js +1 -0
  158. package/dist/chunk-PP2VSA6M.js.map +1 -0
  159. package/dist/chunk-Q22LXT53.js +1 -0
  160. package/dist/chunk-Q22LXT53.js.map +1 -0
  161. package/dist/chunk-Q5MR36RW.js +1 -0
  162. package/dist/chunk-Q5MR36RW.js.map +1 -0
  163. package/dist/chunk-Q5XOGATC.js +1 -0
  164. package/dist/chunk-Q5XOGATC.js.map +1 -0
  165. package/dist/chunk-QTDBO7R2.js +1 -0
  166. package/dist/chunk-QTDBO7R2.js.map +1 -0
  167. package/dist/chunk-R4OD62HV.js +1 -0
  168. package/dist/chunk-R4OD62HV.js.map +1 -0
  169. package/dist/chunk-RD73TFGS.js +1 -0
  170. package/dist/chunk-RD73TFGS.js.map +1 -0
  171. package/dist/chunk-RIT6MOO5.js +1 -0
  172. package/dist/chunk-RIT6MOO5.js.map +1 -0
  173. package/dist/chunk-RVSXKQHE.js +1 -0
  174. package/dist/chunk-RVSXKQHE.js.map +1 -0
  175. package/dist/chunk-S4DBNX2B.js +1 -0
  176. package/dist/chunk-S4DBNX2B.js.map +1 -0
  177. package/dist/chunk-S4UWCHL6.js +1 -0
  178. package/dist/chunk-S4UWCHL6.js.map +1 -0
  179. package/dist/chunk-SQS7672E.js +1 -0
  180. package/dist/chunk-SQS7672E.js.map +1 -0
  181. package/dist/chunk-TLNHETGC.js +1 -0
  182. package/dist/chunk-TLNHETGC.js.map +1 -0
  183. package/dist/chunk-U6TMCYA6.js +1 -0
  184. package/dist/chunk-U6TMCYA6.js.map +1 -0
  185. package/dist/chunk-V4C6FIE2.js +1 -0
  186. package/dist/chunk-V4C6FIE2.js.map +1 -0
  187. package/dist/chunk-VXVUEF5U.js +1 -0
  188. package/dist/chunk-VXVUEF5U.js.map +1 -0
  189. package/dist/chunk-VZXL5KBR.js +1 -0
  190. package/dist/chunk-VZXL5KBR.js.map +1 -0
  191. package/dist/chunk-VZZ2XIRE.js +1 -0
  192. package/dist/chunk-VZZ2XIRE.js.map +1 -0
  193. package/dist/chunk-WV5YM7H5.js +1 -0
  194. package/dist/chunk-WV5YM7H5.js.map +1 -0
  195. package/dist/chunk-Y2MUIE5W.js +1 -0
  196. package/dist/chunk-Y2MUIE5W.js.map +1 -0
  197. package/dist/chunk-Z43DN4PY.js +1 -0
  198. package/dist/chunk-Z43DN4PY.js.map +1 -0
  199. package/dist/chunk-Z4GTTB7I.js +1 -0
  200. package/dist/chunk-Z4GTTB7I.js.map +1 -0
  201. package/dist/chunk-Z4OUB4SJ.js +1 -0
  202. package/dist/chunk-Z4OUB4SJ.js.map +1 -0
  203. package/dist/chunk-ZFT56QFR.js +1 -0
  204. package/dist/chunk-ZFT56QFR.js.map +1 -0
  205. package/dist/chunk-ZNCXENNB.js +1 -0
  206. package/dist/chunk-ZNCXENNB.js.map +1 -0
  207. package/dist/commodities/commodities-all.d.ts +25 -0
  208. package/dist/commodities/commodities-all.js +1 -0
  209. package/dist/commodities/commodities-all.js.map +1 -0
  210. package/dist/commodities/commodities-rare.d.ts +34 -0
  211. package/dist/commodities/commodities-rare.js +1 -0
  212. package/dist/commodities/commodities-rare.js.map +1 -0
  213. package/dist/commodities/commodities-standard.d.ts +34 -0
  214. package/dist/commodities/commodities-standard.js +1 -0
  215. package/dist/commodities/commodities-standard.js.map +1 -0
  216. package/dist/commodities/commodities.d.ts +142 -0
  217. package/dist/commodities/commodities.js +1 -0
  218. package/dist/commodities/commodities.js.map +1 -0
  219. package/dist/commodities/index.d.ts +30 -0
  220. package/dist/commodities/index.js +1 -0
  221. package/dist/commodities/index.js.map +1 -0
  222. package/dist/galactic-position-shLkm4Qg.d.ts +30 -0
  223. package/dist/materials/index.d.ts +47 -0
  224. package/dist/materials/index.js +1 -0
  225. package/dist/materials/index.js.map +1 -0
  226. package/dist/materials/materials-all.d.ts +26 -0
  227. package/dist/materials/materials-all.js +1 -0
  228. package/dist/materials/materials-all.js.map +1 -0
  229. package/dist/materials/materials-encoded.d.ts +31 -0
  230. package/dist/materials/materials-encoded.js +1 -0
  231. package/dist/materials/materials-encoded.js.map +1 -0
  232. package/dist/materials/materials-manufactured.d.ts +32 -0
  233. package/dist/materials/materials-manufactured.js +1 -0
  234. package/dist/materials/materials-manufactured.js.map +1 -0
  235. package/dist/materials/materials-raw.d.ts +31 -0
  236. package/dist/materials/materials-raw.js +1 -0
  237. package/dist/materials/materials-raw.js.map +1 -0
  238. package/dist/materials/materials.d.ts +277 -0
  239. package/dist/materials/materials.js +1 -0
  240. package/dist/materials/materials.js.map +1 -0
  241. package/dist/materials/micro-resources-all.d.ts +28 -0
  242. package/dist/materials/micro-resources-all.js +1 -0
  243. package/dist/materials/micro-resources-all.js.map +1 -0
  244. package/dist/materials/micro-resources-component.d.ts +29 -0
  245. package/dist/materials/micro-resources-component.js +1 -0
  246. package/dist/materials/micro-resources-component.js.map +1 -0
  247. package/dist/materials/micro-resources-consumable.d.ts +29 -0
  248. package/dist/materials/micro-resources-consumable.js +1 -0
  249. package/dist/materials/micro-resources-consumable.js.map +1 -0
  250. package/dist/materials/micro-resources-data.d.ts +29 -0
  251. package/dist/materials/micro-resources-data.js +1 -0
  252. package/dist/materials/micro-resources-data.js.map +1 -0
  253. package/dist/materials/micro-resources-item.d.ts +29 -0
  254. package/dist/materials/micro-resources-item.js +1 -0
  255. package/dist/materials/micro-resources-item.js.map +1 -0
  256. package/dist/materials/micro-resources.d.ts +136 -0
  257. package/dist/materials/micro-resources.js +1 -0
  258. package/dist/materials/micro-resources.js.map +1 -0
  259. package/dist/ship-loadout-Ba63RDf-.d.ts +1059 -0
  260. package/dist/ships/ammunition.d.ts +107 -0
  261. package/dist/ships/ammunition.js +1 -0
  262. package/dist/ships/ammunition.js.map +1 -0
  263. package/dist/ships/armour.d.ts +134 -0
  264. package/dist/ships/armour.js +1 -0
  265. package/dist/ships/armour.js.map +1 -0
  266. package/dist/ships/blueprint-costs.d.ts +128 -0
  267. package/dist/ships/blueprint-costs.js +1 -0
  268. package/dist/ships/blueprint-costs.js.map +1 -0
  269. package/dist/ships/blueprint-journal.d.ts +116 -0
  270. package/dist/ships/blueprint-journal.js +1 -0
  271. package/dist/ships/blueprint-journal.js.map +1 -0
  272. package/dist/ships/blueprints.d.ts +103 -0
  273. package/dist/ships/blueprints.js +1 -0
  274. package/dist/ships/blueprints.js.map +1 -0
  275. package/dist/ships/decorative-modifications.d.ts +176 -0
  276. package/dist/ships/decorative-modifications.js +1 -0
  277. package/dist/ships/decorative-modifications.js.map +1 -0
  278. package/dist/ships/engineering-options.d.ts +246 -0
  279. package/dist/ships/engineering-options.js +1 -0
  280. package/dist/ships/engineering-options.js.map +1 -0
  281. package/dist/ships/engineering.d.ts +229 -0
  282. package/dist/ships/engineering.js +1 -0
  283. package/dist/ships/engineering.js.map +1 -0
  284. package/dist/ships/experimental-effect-costs.d.ts +56 -0
  285. package/dist/ships/experimental-effect-costs.js +1 -0
  286. package/dist/ships/experimental-effect-costs.js.map +1 -0
  287. package/dist/ships/experimental-effects.d.ts +62 -0
  288. package/dist/ships/experimental-effects.js +1 -0
  289. package/dist/ships/experimental-effects.js.map +1 -0
  290. package/dist/ships/index.d.ts +205 -0
  291. package/dist/ships/index.js +1 -0
  292. package/dist/ships/index.js.map +1 -0
  293. package/dist/ships/jump-range.d.ts +115 -0
  294. package/dist/ships/jump-range.js +1 -0
  295. package/dist/ships/jump-range.js.map +1 -0
  296. package/dist/ships/loadout-calculations.d.ts +109 -0
  297. package/dist/ships/loadout-calculations.js +1 -0
  298. package/dist/ships/loadout-calculations.js.map +1 -0
  299. package/dist/ships/loadout-validation.d.ts +80 -0
  300. package/dist/ships/loadout-validation.js +1 -0
  301. package/dist/ships/loadout-validation.js.map +1 -0
  302. package/dist/ships/module-capabilities.d.ts +205 -0
  303. package/dist/ships/module-capabilities.js +1 -0
  304. package/dist/ships/module-capabilities.js.map +1 -0
  305. package/dist/ships/modules-all.d.ts +43 -0
  306. package/dist/ships/modules-all.js +1 -0
  307. package/dist/ships/modules-all.js.map +1 -0
  308. package/dist/ships/modules-core.d.ts +40 -0
  309. package/dist/ships/modules-core.js +1 -0
  310. package/dist/ships/modules-core.js.map +1 -0
  311. package/dist/ships/modules-hardpoint.d.ts +42 -0
  312. package/dist/ships/modules-hardpoint.js +1 -0
  313. package/dist/ships/modules-hardpoint.js.map +1 -0
  314. package/dist/ships/modules-internal.d.ts +40 -0
  315. package/dist/ships/modules-internal.js +1 -0
  316. package/dist/ships/modules-internal.js.map +1 -0
  317. package/dist/ships/modules-utility.d.ts +40 -0
  318. package/dist/ships/modules-utility.js +1 -0
  319. package/dist/ships/modules-utility.js.map +1 -0
  320. package/dist/ships/modules.d.ts +755 -0
  321. package/dist/ships/modules.js +1 -0
  322. package/dist/ships/modules.js.map +1 -0
  323. package/dist/ships/power.d.ts +168 -0
  324. package/dist/ships/power.js +1 -0
  325. package/dist/ships/power.js.map +1 -0
  326. package/dist/ships/pre-engineered-stats.d.ts +147 -0
  327. package/dist/ships/pre-engineered-stats.js +1 -0
  328. package/dist/ships/pre-engineered-stats.js.map +1 -0
  329. package/dist/ships/pre-engineered.d.ts +215 -0
  330. package/dist/ships/pre-engineered.js +1 -0
  331. package/dist/ships/pre-engineered.js.map +1 -0
  332. package/dist/ships/resistances.d.ts +208 -0
  333. package/dist/ships/resistances.js +1 -0
  334. package/dist/ships/resistances.js.map +1 -0
  335. package/dist/ships/shields.d.ts +221 -0
  336. package/dist/ships/shields.js +1 -0
  337. package/dist/ships/shields.js.map +1 -0
  338. package/dist/ships/ship-loadout.d.ts +16 -0
  339. package/dist/ships/ship-loadout.js +1 -0
  340. package/dist/ships/ship-loadout.js.map +1 -0
  341. package/dist/ships/ships.d.ts +191 -0
  342. package/dist/ships/ships.js +1 -0
  343. package/dist/ships/ships.js.map +1 -0
  344. package/dist/ships/slef.d.ts +318 -0
  345. package/dist/ships/slef.js +1 -0
  346. package/dist/ships/slef.js.map +1 -0
  347. package/dist/ships/slots.d.ts +418 -0
  348. package/dist/ships/slots.js +1 -0
  349. package/dist/ships/slots.js.map +1 -0
  350. package/dist/ships/source-purchase.d.ts +132 -0
  351. package/dist/ships/source-purchase.js +1 -0
  352. package/dist/ships/source-purchase.js.map +1 -0
  353. package/dist/ships/weapons.d.ts +380 -0
  354. package/dist/ships/weapons.js +1 -0
  355. package/dist/ships/weapons.js.map +1 -0
  356. package/dist/system-address-DYsN1qOT.d.ts +313 -0
  357. package/package.json +375 -0
@@ -0,0 +1,277 @@
1
+ /**
2
+ * Engineering-material types and lookups.
3
+ *
4
+ * Elite Dangerous groups its engineering materials into three categories — raw,
5
+ * manufactured and encoded — each material carrying a **grade** ({@link MaterialGrade})
6
+ * and sitting in a **line** ({@link MaterialLine}: Chemical, Emission Data, the seven
7
+ * raw element families, …). This module holds the {@link Material} record shape, the
8
+ * grade ⇄ rarity mapping, and the functions that find one
9
+ * ({@link getMaterialBySymbol}, {@link getMaterialByName}, {@link materialsByGrade},
10
+ * {@link materialsInLine}, …).
11
+ *
12
+ * **Every lookup searches all 146 materials by default** — you do not have to hand it
13
+ * a catalogue:
14
+ *
15
+ * ```ts
16
+ * getMaterialByName('iron')?.grade; // -> MaterialGrade.VeryCommon (1)
17
+ * ```
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:
21
+ *
22
+ * | Module | Export | Entries |
23
+ * | --- | --- | --- |
24
+ * | `./materials-raw` | `RAW_MATERIALS` | 28 |
25
+ * | `./materials-manufactured` | `MANUFACTURED_MATERIALS` | 71 |
26
+ * | `./materials-encoded` | `ENCODED_MATERIALS` | 47 |
27
+ * | `./materials-all` | `ALL_MATERIALS` | 146 (the default) |
28
+ *
29
+ * 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
+ * {@link materialsInCategory} reaches the same subsets from a plain string.
32
+ *
33
+ * Data originates from EDCD FDevIDs, with Thargoid materials absent from that
34
+ * pinned source supplied by INARA; see [`data/materials/SOURCES.md`](https://github.com/DarkSession/Elite-Dangerous-Almanac/blob/main/data/materials/SOURCES.md).
35
+ *
36
+ * @example
37
+ * ```ts
38
+ * import { getMaterialByName, materialsInCategory } from '@elite-dangerous-almanac/core/materials';
39
+ *
40
+ * getMaterialByName('iron')?.grade; // -> MaterialGrade.VeryCommon (1)
41
+ * materialsInCategory('raw').length; // -> 28
42
+ * ```
43
+ *
44
+ * @packageDocumentation
45
+ */
46
+ /** Which of the three engineering-material categories a material belongs to. */
47
+ type MaterialCategory = 'raw' | 'manufactured' | 'encoded';
48
+ /**
49
+ * A material grade, 1–5. **A material's grade is its rarity** — the members are named
50
+ * for the rarity each grade denotes, so there is no separate rarity field.
51
+ *
52
+ * @remarks
53
+ * Raw materials only reach {@link MaterialGrade.Rare} (4); grade 5 appears in the
54
+ * manufactured and encoded categories only. The numeric values match Frontier's own
55
+ * grading, so a `MaterialGrade` compares equal to the plain number (`grade === 5`).
56
+ * The member name is the rarity — read it with `MaterialGrade[grade]` (`"VeryCommon"`)
57
+ * if you need a string.
58
+ */
59
+ declare enum MaterialGrade {
60
+ /** Grade 1 — Very Common. */
61
+ VeryCommon = 1,
62
+ /** Grade 2 — Common. */
63
+ Common = 2,
64
+ /** Grade 3 — Standard. */
65
+ Standard = 3,
66
+ /** Grade 4 — Rare. The highest grade a raw element reaches. */
67
+ Rare = 4,
68
+ /** Grade 5 — Very Rare. Manufactured and encoded materials only. */
69
+ VeryRare = 5
70
+ }
71
+ /**
72
+ * The in-game line (group) a material belongs to.
73
+ *
74
+ * @remarks
75
+ * The seven raw lines are named after their grade-1 element (Carbon, Phosphorus,
76
+ * Sulphur, Iron, Nickel, Rhenium, Lead). Manufactured and encoded materials use
77
+ * Frontier's group names. Guardian and Thargoid materials — which Frontier files
78
+ * outside the standard groups — are collected under {@link MaterialLine.Guardian}
79
+ * and {@link MaterialLine.Thargoid}.
80
+ */
81
+ declare enum MaterialLine {
82
+ /** Raw element family, grades 1–4: Carbon, Vanadium, Niobium, Yttrium. */
83
+ Carbon = "Carbon",
84
+ /** Raw element family, grades 1–4, starting at Phosphorus. */
85
+ Phosphorus = "Phosphorus",
86
+ /** Raw element family, grades 1–4, starting at Sulphur. */
87
+ Sulphur = "Sulphur",
88
+ /** Raw element family, grades 1–4, starting at Iron. */
89
+ Iron = "Iron",
90
+ /** Raw element family, grades 1–4, starting at Nickel. */
91
+ Nickel = "Nickel",
92
+ /** Raw element family, grades 1–4, starting at Rhenium. */
93
+ Rhenium = "Rhenium",
94
+ /** Raw element family, grades 1–4, starting at Lead. */
95
+ Lead = "Lead",
96
+ /** Manufactured line, grades 1–5 (Chemical Storage Units → Chemical Manipulators). */
97
+ Chemical = "Chemical",
98
+ /** Manufactured line, grades 1–5 (Thermic alloys and processors). */
99
+ Thermic = "Thermic",
100
+ /** Manufactured line, grades 1–5 (heat conduction wiring → exchangers). */
101
+ Heat = "Heat",
102
+ /** Manufactured line, grades 1–5 (conductive components → polymers). */
103
+ Conductive = "Conductive",
104
+ /** Manufactured line, grades 1–5 (mechanical scrap → equipment). */
105
+ MechanicalComponents = "Mechanical Components",
106
+ /** Manufactured line, grades 1–5 (grid resistors → military supercapacitors). */
107
+ Capacitors = "Capacitors",
108
+ /** Manufactured line, grades 1–5 (worn shield emitters → imperial shielding). */
109
+ Shielding = "Shielding",
110
+ /** Manufactured line, grades 1–5 (compact composites → core dynamics composites). */
111
+ Composite = "Composite",
112
+ /** Manufactured line, grades 1–5 (crystal shards → exquisite focus crystals). */
113
+ Crystals = "Crystals",
114
+ /** Manufactured line, grades 1–5 (salvaged alloys → proto light alloys). */
115
+ Alloys = "Alloys",
116
+ /** Encoded line, grades 1–5 (exceptional scrambled emission data → abnormal compact emissions). */
117
+ EmissionData = "Emission Data",
118
+ /** Encoded line, grades 1–5 (atypical disrupted wake echoes → datamined wake exceptions). */
119
+ WakeScans = "Wake Scans",
120
+ /** Encoded line, grades 1–5 (distorted shield cycle recordings → inconsistent shield soak analysis). */
121
+ ShieldData = "Shield Data",
122
+ /** Encoded line, grades 1–5 (unusual encrypted files → adaptive encryptors capture). */
123
+ EncryptionFiles = "Encryption Files",
124
+ /** Encoded line, grades 1–5 (atypical encoded data → classified scan databanks). */
125
+ DataArchives = "Data Archives",
126
+ /** Encoded line, grades 1–5 (specialised legacy firmware → modified embedded firmware). */
127
+ EncodedFirmware = "Encoded Firmware",
128
+ /** Guardian technology materials, filed outside the standard lines. */
129
+ Guardian = "Guardian",
130
+ /** Thargoid materials (including the caustic/Titan set), outside the standard lines. */
131
+ Thargoid = "Thargoid"
132
+ }
133
+ /**
134
+ * One engineering material and how it is classified.
135
+ *
136
+ * @remarks
137
+ * A `Material` is a plain, frozen value object. `category` is derived from the
138
+ * catalogue the record lives in. There is no separate rarity field — the `grade` is
139
+ * the rarity (its {@link MaterialGrade} member name is the rarity tier).
140
+ */
141
+ interface Material {
142
+ /** Which category this material belongs to. */
143
+ readonly category: MaterialCategory;
144
+ /**
145
+ * Frontier's internal symbol, e.g. `"GridResistors"` — the id the player journal
146
+ * reports (case-insensitively, so `"gridresistors"` matches). This is the same
147
+ * field, with the same meaning, as `symbol` on a ship or outfitting module.
148
+ */
149
+ readonly symbol: string;
150
+ /** Display name, e.g. `"Grid Resistors"`. */
151
+ readonly name: string;
152
+ /**
153
+ * The chemical element symbol for a raw material, e.g. `"Fe"` for Iron.
154
+ *
155
+ * @remarks
156
+ * Only raw materials — which are chemical elements — have one. Manufactured and
157
+ * encoded materials are `null`.
158
+ */
159
+ readonly elementSymbol: string | null;
160
+ /** The material grade, 1–5 (raw materials only reach 4) — this is its rarity. */
161
+ readonly grade: MaterialGrade;
162
+ /** The in-game line (group) this material sits in. */
163
+ readonly line: MaterialLine;
164
+ }
165
+ /**
166
+ * Look up a material by its Frontier symbol / journal id (case-insensitive).
167
+ *
168
+ * Here, `symbol` is Frontier's internal item id for the material.
169
+ *
170
+ * @param symbol - The internal symbol, e.g. `"GridResistors"`, or the lower-cased
171
+ * form the player journal reports (`"gridresistors"`).
172
+ * @param materials - Optional subset to search instead of all 146 materials —
173
+ * `RAW_MATERIALS`, `MANUFACTURED_MATERIALS`, `ENCODED_MATERIALS`, or any array you
174
+ * have filtered yourself. Omit it unless you specifically want to exclude the rest.
175
+ * @returns The matching {@link Material}, or `null` if no material has that symbol.
176
+ * @throws {TypeError} If `symbol` is present and not a string. A nullish
177
+ * `symbol` is a miss, answered the way an unrecognised one is.
178
+ * @example
179
+ * ```ts
180
+ * import { getMaterialBySymbol } from '@elite-dangerous-almanac/core/materials/materials';
181
+ *
182
+ * getMaterialBySymbol('temperedalloys')?.name; // -> 'Tempered Alloys'
183
+ * ```
184
+ */
185
+ declare function getMaterialBySymbol(symbol: string, materials?: readonly Material[]): Material | null;
186
+ /**
187
+ * Look up a material by its display name (case-insensitive).
188
+ *
189
+ * @param name - The display name as the catalogue spells it, e.g. `"Grid Resistors"`.
190
+ * @param materials - Optional subset to search (see {@link getMaterialBySymbol}).
191
+ * @returns The matching {@link Material}, or `null` if no material has that name.
192
+ * @throws {TypeError} If `name` is present and not a string. A nullish
193
+ * `name` is a miss, answered the way an unrecognised one is.
194
+ * @example
195
+ * ```ts
196
+ * import { getMaterialByName } from '@elite-dangerous-almanac/core/materials/materials';
197
+ *
198
+ * getMaterialByName('imperial shielding')?.grade; // -> 5
199
+ * ```
200
+ */
201
+ declare function getMaterialByName(name: string, materials?: readonly Material[]): Material | null;
202
+ /**
203
+ * Look up a raw material by its chemical element symbol (case-insensitive).
204
+ *
205
+ * @param elementSymbol - The element symbol, e.g. `"Fe"` or `"fe"`.
206
+ * @param materials - Optional subset to search (see {@link getMaterialBySymbol}).
207
+ * @returns The matching {@link Material}, or `null`. Only raw materials carry an
208
+ * element symbol, so a manufactured or encoded subset never matches.
209
+ * @throws {TypeError} If `elementSymbol` is present and not a string. A nullish
210
+ * `elementSymbol` is a miss, answered the way an unrecognised one is.
211
+ * @example
212
+ * ```ts
213
+ * import { getMaterialByElementSymbol } from '@elite-dangerous-almanac/core/materials/materials';
214
+ *
215
+ * getMaterialByElementSymbol('fe')?.name; // -> 'Iron'
216
+ * ```
217
+ */
218
+ declare function getMaterialByElementSymbol(elementSymbol: string, materials?: readonly Material[]): Material | null;
219
+ /**
220
+ * Every material of a given grade, in catalogue order.
221
+ *
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.
225
+ * @example
226
+ * ```ts
227
+ * import { MaterialGrade, materialsByGrade } from '@elite-dangerous-almanac/core/materials/materials';
228
+ * import { RAW_MATERIALS } from '@elite-dangerous-almanac/core/materials/materials-raw';
229
+ *
230
+ * materialsByGrade(MaterialGrade.VeryRare).length; // -> across every category
231
+ * materialsByGrade(MaterialGrade.Rare, RAW_MATERIALS).length; // -> 7, one per raw line
232
+ * ```
233
+ */
234
+ declare function materialsByGrade(grade: MaterialGrade, materials?: readonly Material[]): Material[];
235
+ /**
236
+ * Every material in a given line, in catalogue order.
237
+ *
238
+ * @param line - The line to match, e.g. `MaterialLine.Chemical`. A plain string of
239
+ * the line's value works too: leading/trailing whitespace and case are ignored, like
240
+ * 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.
243
+ * @throws {TypeError} If `line` is present and not a string. A nullish
244
+ * `line` is a miss, answered the way an unrecognised one is.
245
+ * @example
246
+ * ```ts
247
+ * import { MaterialLine, materialsInLine } from '@elite-dangerous-almanac/core/materials/materials';
248
+ *
249
+ * materialsInLine(MaterialLine.Chemical).map((m) => m.grade); // -> [1, 2, 3, 4, 5]
250
+ * ```
251
+ */
252
+ declare function materialsInLine(line: string, materials?: readonly Material[]): Material[];
253
+ /**
254
+ * Every material in a given category, in catalogue order.
255
+ *
256
+ * @remarks
257
+ * The same answer as importing that category's own catalogue module, reached from a
258
+ * string — which is what you have when the category came from a dropdown or a saved
259
+ * filter rather than from your own source code.
260
+ *
261
+ * @param category - The category to match: `'raw'`, `'manufactured'` or `'encoded'`.
262
+ * 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.
265
+ * @throws {TypeError} If `category` is present and not a string. A nullish
266
+ * `category` is a miss, answered the way an unrecognised one is.
267
+ * @example
268
+ * ```ts
269
+ * import { materialsInCategory } from '@elite-dangerous-almanac/core/materials/materials';
270
+ *
271
+ * materialsInCategory('raw').length; // -> 28
272
+ * materialsInCategory('Encoded').length; // -> 47; case is ignored
273
+ * ```
274
+ */
275
+ declare function materialsInCategory(category: string, materials?: readonly Material[]): Material[];
276
+
277
+ export { type Material, type MaterialCategory, MaterialGrade, MaterialLine, getMaterialByElementSymbol, getMaterialByName, getMaterialBySymbol, materialsByGrade, materialsInCategory, materialsInLine };
@@ -0,0 +1 @@
1
+ export{MaterialGrade,MaterialLine,getMaterialByElementSymbol,getMaterialByName,getMaterialBySymbol,materialsByGrade,materialsInCategory,materialsInLine}from"../chunk-Q22LXT53.js"; //# sourceMappingURL=materials.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":"O"}
@@ -0,0 +1,28 @@
1
+ import { MicroResource } from './micro-resources.js';
2
+
3
+ /**
4
+ * Every Odyssey micro resource — the component, consumable, data and item
5
+ * catalogues concatenated.
6
+ *
7
+ * Importing this pulls all four data modules; when you only need one category,
8
+ * import `COMPONENT_MICRO_RESOURCES`, `CONSUMABLE_MICRO_RESOURCES`,
9
+ * `DATA_MICRO_RESOURCES` or `ITEM_MICRO_RESOURCES` from their own module so a bundler
10
+ * can drop the rest.
11
+ *
12
+ * @packageDocumentation
13
+ */
14
+
15
+ /**
16
+ * All 196 micro resources across every category — component, then consumable, then
17
+ * data, then item.
18
+ *
19
+ * @example
20
+ * ```ts
21
+ * import { ALL_MICRO_RESOURCES } from '@elite-dangerous-almanac/core/materials/micro-resources-all';
22
+ *
23
+ * ALL_MICRO_RESOURCES.length; // -> 196
24
+ * ```
25
+ */
26
+ declare const ALL_MICRO_RESOURCES: readonly MicroResource[];
27
+
28
+ export { ALL_MICRO_RESOURCES };
@@ -0,0 +1 @@
1
+ export{ALL_MICRO_RESOURCES}from"../chunk-5H74FKY7.js"; //# sourceMappingURL=micro-resources-all.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":"O"}
@@ -0,0 +1,29 @@
1
+ import { MicroResource } from './micro-resources.js';
2
+
3
+ /**
4
+ * The catalogue of **component** micro resources — the manufactured parts spent
5
+ * upgrading suits and hand weapons at Pioneer Supplies.
6
+ *
7
+ * Search it with the query functions in `./micro-resources`.
8
+ *
9
+ * Data from EDCD FDevIDs (`microresources.csv`); see [`data/materials/SOURCES.md`](https://github.com/DarkSession/Elite-Dangerous-Almanac/blob/main/data/materials/SOURCES.md).
10
+ *
11
+ * @packageDocumentation
12
+ */
13
+
14
+ /**
15
+ * All 33 component micro resources, in Frontier's registry order.
16
+ *
17
+ * @remarks
18
+ * Every record has `category: 'component'`. The array and its records are frozen.
19
+ *
20
+ * @example
21
+ * ```ts
22
+ * import { COMPONENT_MICRO_RESOURCES } from '@elite-dangerous-almanac/core/materials/micro-resources-component';
23
+ *
24
+ * COMPONENT_MICRO_RESOURCES.length; // -> 33
25
+ * ```
26
+ */
27
+ declare const COMPONENT_MICRO_RESOURCES: readonly MicroResource[];
28
+
29
+ export { COMPONENT_MICRO_RESOURCES };
@@ -0,0 +1 @@
1
+ export{COMPONENT_MICRO_RESOURCES}from"../chunk-HTB52N6S.js"; //# sourceMappingURL=micro-resources-component.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":"O"}
@@ -0,0 +1,29 @@
1
+ import { MicroResource } from './micro-resources.js';
2
+
3
+ /**
4
+ * The catalogue of **consumable** micro resources — the deployable field tools
5
+ * (medkits, energy cells, grenades, E-Breach) carried on foot.
6
+ *
7
+ * Search it with the query functions in `./micro-resources`.
8
+ *
9
+ * Data from EDCD FDevIDs (`microresources.csv`); see [`data/materials/SOURCES.md`](https://github.com/DarkSession/Elite-Dangerous-Almanac/blob/main/data/materials/SOURCES.md).
10
+ *
11
+ * @packageDocumentation
12
+ */
13
+
14
+ /**
15
+ * All 6 consumable micro resources, in Frontier's registry order.
16
+ *
17
+ * @remarks
18
+ * Every record has `category: 'consumable'`. The array and its records are frozen.
19
+ *
20
+ * @example
21
+ * ```ts
22
+ * import { CONSUMABLE_MICRO_RESOURCES } from '@elite-dangerous-almanac/core/materials/micro-resources-consumable';
23
+ *
24
+ * CONSUMABLE_MICRO_RESOURCES.length; // -> 6
25
+ * ```
26
+ */
27
+ declare const CONSUMABLE_MICRO_RESOURCES: readonly MicroResource[];
28
+
29
+ export { CONSUMABLE_MICRO_RESOURCES };
@@ -0,0 +1 @@
1
+ export{CONSUMABLE_MICRO_RESOURCES}from"../chunk-K7L7SMIR.js"; //# sourceMappingURL=micro-resources-consumable.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":"O"}
@@ -0,0 +1,29 @@
1
+ import { MicroResource } from './micro-resources.js';
2
+
3
+ /**
4
+ * The catalogue of **data** micro resources — the intel and files downloaded,
5
+ * stolen or traded on foot.
6
+ *
7
+ * Search it with the query functions in `./micro-resources`.
8
+ *
9
+ * Data from EDCD FDevIDs (`microresources.csv`); see [`data/materials/SOURCES.md`](https://github.com/DarkSession/Elite-Dangerous-Almanac/blob/main/data/materials/SOURCES.md).
10
+ *
11
+ * @packageDocumentation
12
+ */
13
+
14
+ /**
15
+ * All 114 data micro resources, in Frontier's registry order.
16
+ *
17
+ * @remarks
18
+ * Every record has `category: 'data'`. The array and its records are frozen.
19
+ *
20
+ * @example
21
+ * ```ts
22
+ * import { DATA_MICRO_RESOURCES } from '@elite-dangerous-almanac/core/materials/micro-resources-data';
23
+ *
24
+ * DATA_MICRO_RESOURCES.length; // -> 114
25
+ * ```
26
+ */
27
+ declare const DATA_MICRO_RESOURCES: readonly MicroResource[];
28
+
29
+ export { DATA_MICRO_RESOURCES };
@@ -0,0 +1 @@
1
+ export{DATA_MICRO_RESOURCES}from"../chunk-RIT6MOO5.js"; //# sourceMappingURL=micro-resources-data.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":"O"}
@@ -0,0 +1,29 @@
1
+ import { MicroResource } from './micro-resources.js';
2
+
3
+ /**
4
+ * The catalogue of **item** micro resources — the physical goods collected and
5
+ * traded on foot.
6
+ *
7
+ * Search it with the query functions in `./micro-resources`.
8
+ *
9
+ * Data from EDCD FDevIDs (`microresources.csv`); see [`data/materials/SOURCES.md`](https://github.com/DarkSession/Elite-Dangerous-Almanac/blob/main/data/materials/SOURCES.md).
10
+ *
11
+ * @packageDocumentation
12
+ */
13
+
14
+ /**
15
+ * All 43 item micro resources, in Frontier's registry order.
16
+ *
17
+ * @remarks
18
+ * Every record has `category: 'item'`. The array and its records are frozen.
19
+ *
20
+ * @example
21
+ * ```ts
22
+ * import { ITEM_MICRO_RESOURCES } from '@elite-dangerous-almanac/core/materials/micro-resources-item';
23
+ *
24
+ * ITEM_MICRO_RESOURCES.length; // -> 43
25
+ * ```
26
+ */
27
+ declare const ITEM_MICRO_RESOURCES: readonly MicroResource[];
28
+
29
+ export { ITEM_MICRO_RESOURCES };
@@ -0,0 +1 @@
1
+ export{ITEM_MICRO_RESOURCES}from"../chunk-CI3ACMRA.js"; //# sourceMappingURL=micro-resources-item.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":"O"}
@@ -0,0 +1,136 @@
1
+ /**
2
+ * Odyssey **micro resource** types and lookups.
3
+ *
4
+ * Elite Dangerous: Odyssey adds on-foot **micro resources** — the components, data,
5
+ * consumables and items a Commander carries on foot (distinct from the ship-side
6
+ * engineering {@link Material}s, which have a grade and a line). This module holds the
7
+ * {@link MicroResource} record shape and the functions that find one
8
+ * ({@link getMicroResourceBySymbol}, {@link getMicroResourceByName},
9
+ * {@link microResourcesInCategory}).
10
+ *
11
+ * **Every lookup searches all 196 micro resources by default** — you do not have to
12
+ * hand it a catalogue:
13
+ *
14
+ * ```ts
15
+ * getMicroResourceBySymbol('graphene')?.category; // -> 'component'
16
+ * ```
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:
20
+ *
21
+ * | Module | Export | Entries |
22
+ * | --- | --- | --- |
23
+ * | `./micro-resources-component` | `COMPONENT_MICRO_RESOURCES` | 33 |
24
+ * | `./micro-resources-consumable` | `CONSUMABLE_MICRO_RESOURCES` | 6 |
25
+ * | `./micro-resources-data` | `DATA_MICRO_RESOURCES` | 114 |
26
+ * | `./micro-resources-item` | `ITEM_MICRO_RESOURCES` | 43 |
27
+ * | `./micro-resources-all` | `ALL_MICRO_RESOURCES` | 196 (the default) |
28
+ *
29
+ * It narrows *results*, not bundle size: importing a lookup pulls all four
30
+ * catalogues, since that is what it falls back to — 10.7 KiB minified for all 196.
31
+ * {@link microResourcesInCategory} reaches the same subsets from a plain string.
32
+ *
33
+ * Data originates from EDCD FDevIDs (`microresources.csv`); see
34
+ * [`data/materials/SOURCES.md`](https://github.com/DarkSession/Elite-Dangerous-Almanac/blob/main/data/materials/SOURCES.md).
35
+ *
36
+ * @example
37
+ * ```ts
38
+ * import { getMicroResourceBySymbol } from '@elite-dangerous-almanac/core/materials/micro-resources';
39
+ *
40
+ * getMicroResourceBySymbol('graphene')?.name; // -> 'Graphene'
41
+ * ```
42
+ *
43
+ * @packageDocumentation
44
+ */
45
+ /**
46
+ * Frontier's micro-resource category — which on-foot inventory a micro resource
47
+ * belongs to.
48
+ *
49
+ * - `component` — the manufactured parts spent upgrading suits and hand weapons.
50
+ * - `consumable` — the deployable field tools (medkits, energy cells, grenades,
51
+ * E-Breach).
52
+ * - `data` — the intel and files downloaded, stolen or traded on foot.
53
+ * - `item` — the physical goods collected and traded on foot.
54
+ */
55
+ type MicroResourceCategory = 'component' | 'consumable' | 'data' | 'item';
56
+ /**
57
+ * One Odyssey micro resource in Frontier's registry.
58
+ *
59
+ * @remarks
60
+ * A pure registry record — it tells you what a micro resource *is* (symbol, name,
61
+ * category), not where it is found or what it is worth. Unlike the ship-side
62
+ * {@link Material}, a micro resource has no grade or line.
63
+ */
64
+ interface MicroResource {
65
+ /**
66
+ * Frontier's internal symbol, e.g. `"graphene"` — the id the player journal
67
+ * reports (case-insensitively). This is the same field, with the same meaning,
68
+ * as `symbol` on a ship, module or material.
69
+ */
70
+ readonly symbol: string;
71
+ /** Which on-foot inventory the micro resource belongs to. */
72
+ readonly category: MicroResourceCategory;
73
+ /** Display name, e.g. `"Graphene"`. */
74
+ readonly name: string;
75
+ }
76
+ /**
77
+ * Look up a micro resource by its Frontier symbol / journal id (case-insensitive).
78
+ *
79
+ * Here, `symbol` is Frontier's internal item id for the micro resource.
80
+ *
81
+ * @param symbol - The internal symbol, e.g. `"graphene"`, or the lower-cased form the
82
+ * player journal reports. Leading/trailing whitespace and case are ignored.
83
+ * @param microResources - Optional subset to search instead of all 196 micro
84
+ * resources — `COMPONENT_MICRO_RESOURCES`, `CONSUMABLE_MICRO_RESOURCES`,
85
+ * `DATA_MICRO_RESOURCES`, `ITEM_MICRO_RESOURCES`, or any array you have filtered
86
+ * yourself. Omit it unless you specifically want to exclude the rest.
87
+ * @returns The matching {@link MicroResource}, or `null` if no micro resource has
88
+ * that symbol.
89
+ * @throws {TypeError} If `symbol` is present and not a string. A nullish
90
+ * `symbol` is a miss, answered the way an unrecognised one is.
91
+ * @example
92
+ * ```ts
93
+ * import { getMicroResourceBySymbol } from '@elite-dangerous-almanac/core/materials/micro-resources';
94
+ *
95
+ * getMicroResourceBySymbol('circuitboard')?.name; // -> 'Circuit Board'
96
+ * ```
97
+ */
98
+ declare function getMicroResourceBySymbol(symbol: string, microResources?: readonly MicroResource[]): MicroResource | null;
99
+ /**
100
+ * Look up a micro resource by its display name (case-insensitive).
101
+ *
102
+ * @param name - The display name as the catalogue spells it, e.g. `"Circuit Board"`.
103
+ * Leading/trailing whitespace and case are ignored.
104
+ * @param microResources - Optional subset to search (see {@link getMicroResourceBySymbol}).
105
+ * @returns The matching {@link MicroResource}, or `null` if no micro resource has
106
+ * that name.
107
+ * @throws {TypeError} If `name` is present and not a string. A nullish
108
+ * `name` is a miss, answered the way an unrecognised one is.
109
+ * @example
110
+ * ```ts
111
+ * import { getMicroResourceByName } from '@elite-dangerous-almanac/core/materials/micro-resources';
112
+ *
113
+ * getMicroResourceByName('circuit board')?.symbol; // -> 'circuitboard'
114
+ * ```
115
+ */
116
+ declare function getMicroResourceByName(name: string, microResources?: readonly MicroResource[]): MicroResource | null;
117
+ /**
118
+ * Every micro resource in a given category, in catalogue order.
119
+ *
120
+ * @param category - The category to match, e.g. `'component'`. Leading/trailing
121
+ * 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.
124
+ * @throws {TypeError} If `category` is present and not a string. A nullish
125
+ * `category` is a miss, answered the way an unrecognised one is.
126
+ * @example
127
+ * ```ts
128
+ * import { microResourcesInCategory } from '@elite-dangerous-almanac/core/materials/micro-resources';
129
+ *
130
+ * microResourcesInCategory('consumable').length; // -> 6
131
+ * microResourcesInCategory('Consumable').length; // -> 6; case is ignored
132
+ * ```
133
+ */
134
+ declare function microResourcesInCategory(category: string, microResources?: readonly MicroResource[]): MicroResource[];
135
+
136
+ export { type MicroResource, type MicroResourceCategory, getMicroResourceByName, getMicroResourceBySymbol, microResourcesInCategory };
@@ -0,0 +1 @@
1
+ export{getMicroResourceByName,getMicroResourceBySymbol,microResourcesInCategory}from"../chunk-ELIZXUMI.js"; //# sourceMappingURL=micro-resources.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":"O"}