@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
package/LICENSE ADDED
@@ -0,0 +1,48 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 Elite Dangerous Community
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
22
+
23
+ ---
24
+
25
+ The MIT License above covers this project's own code, documentation, and the
26
+ organisation of its data files. It does not relicense bundled third-party or
27
+ Elite Dangerous game data.
28
+
29
+ Elite Dangerous Almanac also incorporates Elite Dangerous game data (ship,
30
+ module, and outfitting values). That data is the property of Frontier
31
+ Developments plc and is used here under Frontier's media-usage terms:
32
+
33
+ Elite Dangerous Almanac was created using assets and imagery from Elite
34
+ Dangerous, with the permission of Frontier Developments plc, for
35
+ non-commercial purposes. It is not endorsed by nor reflects the views or
36
+ opinions of Frontier Developments and no employee of Frontier Developments
37
+ was involved in the making of it.
38
+
39
+ Frontier's rules:
40
+ https://forums.frontier.co.uk/threads/elite-dangerous-media-usage-rules.510879/
41
+
42
+ Other bundled catalogues and derived values remain subject to the terms listed
43
+ in the third-party notices that accompany this project: `ATTRIBUTIONS.md` at
44
+ the repository root, shipped inside the npm package as
45
+ `THIRD_PARTY_NOTICES.md`. In particular, some upstream sources state no
46
+ explicit licence and EDSY-derived material is attributed there under
47
+ CC BY-NC 4.0. Consumers must review those terms before redistributing the data
48
+ or using it commercially, and should preserve the applicable notices.
@@ -0,0 +1,36 @@
1
+ # Data snapshot metadata
2
+
3
+ Each `data/<domain>/SOURCES.md` file is authoritative for the catalogues in that
4
+ domain. It records, per catalogue, which source the data came from, the acquisition
5
+ date, the immutable revision or checksum, the derivation and every manual correction.
6
+ Who to credit for a source — its author, link and licence terms — is recorded once, in
7
+ `../ATTRIBUTIONS.md`, and a `SOURCES.md` refers to it by name.
8
+
9
+ Some sources do not publish immutable versions, and some acquired snapshots do not
10
+ have a recorded revision. Those entries must state that limitation explicitly and
11
+ identify the source and derivation that can still be verified. Never infer a revision
12
+ after acquisition.
13
+
14
+ ## Required metadata
15
+
16
+ Every data change must record, in the relevant domain `SOURCES.md`:
17
+
18
+ - the UTC acquisition date;
19
+ - an upstream commit, release, dataset version, response timestamp or checksum when
20
+ available;
21
+ - the import or derivation method;
22
+ - every manual correction and every field sourced elsewhere;
23
+ - any known gap, why it remains unresolved and the issue that tracks it.
24
+
25
+ When an upstream source has no immutable version, preserve the acquired content or its
26
+ SHA-256 checksum where licensing permits. Update shared fixtures and every language
27
+ implementation affected by the data in the same change.
28
+
29
+ A **test fixture is not recorded here.** A fixture in `fixtures/` carries the same
30
+ metadata in its own comment header — what it pins, and for a captured build where it
31
+ came from, when, its checksum and anything scrubbed or corrected. A `SOURCES.md` entry
32
+ may name a fixture as the evidence for a value; it does not document the fixture.
33
+
34
+ Provenance describes the checked-in data as it exists. Release history belongs in Git
35
+ and GitHub releases, and how the library computes something belongs in its own
36
+ documentation, not here.
@@ -0,0 +1,94 @@
1
+ # Data sources — `data/astro/`
2
+
3
+ **Acquired:** 2026-07-24. **Upstream revision:** unavailable for every source below.
4
+
5
+ ## Procedural naming and named-region origins
6
+
7
+ - **File:** `named-region-origins.jsonc`.
8
+ - **Source:** the EDTS reference implementation (`edtslib/pgdata.py`, `edtslib/pgnames.py`).
9
+ - **Derivation:** named-region origins are stored in the game's internal coordinate frame
10
+ (32 units per light-year from the galaxy corner). Where a region is defined by a single
11
+ sphere, its origin and extent are the sphere's axis-aligned bounds in that frame. The
12
+ NGC 2392 record is derived from its catalogued 100 ly sphere and verified by encoding
13
+ the EDSM system `NGC 2392 Sector UJ-Q b5-0` (id64 `674176509065`, EDSM system id 21224).
14
+
15
+ ## Hand-authored named sectors
16
+
17
+ - **File:** `hand-authored-regions.jsonc`. Region names and spheres only — whether a
18
+ region is permit-locked is recorded once, in `permit-locked-regions.jsonc`.
19
+ - **Sources:** EDSM and Spansh. These are factual system names, coordinates and region
20
+ bounds.
21
+ - **Derivation:** sphere membership and real-system triples are cross-checked across the
22
+ two services. Decimal id64 values remain strings in JSON so every target language can
23
+ parse them without IEEE-754 precision loss.
24
+
25
+ ## Nebulae
26
+
27
+ - **Files:** `nebulae-real.jsonc` (180 catalogued real-world nebulae and dark regions),
28
+ `nebulae-procgen.jsonc` (166 procedurally generated nebulae) and
29
+ `nebulae-planetary.jsonc` (5489 planetary nebulae), split by class.
30
+ - **Source:** the EDAstro nebulae coordinates dataset (`nebulae-coordinates.csv`, columns
31
+ `Name,System,X,Y,Z,Type,RegionID`). Original observations are community exploration
32
+ data.
33
+ - **Obtained via:** canonn-signals, `src/assets/nebulae.json`, which converts the CSV to
34
+ JSON verbatim. The records here were checked against both and are identical
35
+ field-for-field.
36
+ - **Derivation:** records retain their name, catalogued system, galactic X/Y/Z in
37
+ light-years with Sol at the origin, class and region id. They are grouped by `type`
38
+ into one file per class and sorted by name; the class is represented by that file and
39
+ is not repeated on every record. In the planetary file, `system` is omitted for the
40
+ 5210 records where it is identical to `name`; all 279 differing systems remain.
41
+ `regionId` is the galactic codex region id from the source CSV — a column the
42
+ canonn-signals JSON drops — and all 5835 values were verified to agree with this
43
+ project's own codex-region lookup.
44
+ - **Caveat:** a nebula is a volume, but the dataset records a single point — the position
45
+ of the system it is catalogued at.
46
+
47
+ ## Permit-locked systems and regions
48
+
49
+ - **Files:** `permit-locked-systems.jsonc`, `permit-locked-regions.jsonc`.
50
+ - **Source:** the community-maintained "Elite Dangerous Permit Database" spreadsheet.
51
+ Permit status appears in no game data file, journal event or API (Sol itself reports no
52
+ permit flag), so the list is hand-maintained by the community and is best-effort.
53
+ - **Obtained via:** canonn-signals, `src/app/data/permit-locked-systems.ts`, which
54
+ transcribes the sheet into two arrays.
55
+ - **Derivation:** the 54 exact system names are carried over unchanged and sorted
56
+ case-insensitively. Permit state is split by lookup domain. The 28 region entries are
57
+ names of regions in
58
+ `hand-authored-regions.jsonc`, which stores their spheres and nothing about permits.
59
+ Each name doubles as the matching prefix, because the game names every system in a
60
+ region after it (`Col 70 Sector AA-D b17-0`). The upstream list matches 19 lower-cased
61
+ stems instead; the two agree except for the digit-suffixed regions, which the region
62
+ names resolve exactly.
63
+ - **System addresses:** `id64` comes from Spansh for 53 of the 54, cross-checked against
64
+ EDSM for the 38 EDSM holds, with no disagreement in address or coordinates. The
65
+ remaining 16 are absent from EDSM entirely, which is expected of systems no commander
66
+ can enter to report. `Plaa Ain HA-Z d46` is in neither service; it is procedurally
67
+ named, so its address is encoded by this project's own procedural system encoder, whose
68
+ output was confirmed against Spansh on the other two procedural entries in the list
69
+ (`Dryio Flyuae IC-B c1-377`, `Scheau Bli NB-O d6-1409`). Values are stored as decimal
70
+ strings so every target language parses them without IEEE-754 loss.
71
+ - **`Bleia1`–`Bleia5` and `Praei1`–`Praei6` are in-game region names**, not groupings:
72
+ EDSM holds `Bleia1 DL-Y f26`, `Bleia2 AA-A h55` and `Praei3 MJ-D b43-8`, each inside the
73
+ same-named sphere of `hand-authored-regions.jsonc`. The bare stems `Bleia` and `Praea`
74
+ name unrelated procedural sectors far outside the permit spheres. `Bleia Flyuae DH-U
75
+ e3-26` sits ≈6800 ly beyond every Bleia sphere, and `Praea Aec AA-A b1-1` sits ≈46 kly
76
+ from the Praei spheres, so neither bare stem is a permit prefix.
77
+ - **Caveat:** region membership is inferred from the system name, since no per-system
78
+ region-permit flag is published. Permit-locked _bodies_ inside otherwise-open
79
+ systems (Diso 5 C, Lave 2, Sol's Moon and Triton) are out of scope — a system-level flag
80
+ would misreport their systems.
81
+
82
+ ## Galactic codex regions
83
+
84
+ - **Files:** `galactic-regions.jsonc` (per-region metadata),
85
+ `galactic-region-cells.jsonc` (per-region lookup geometry + projection), split along the
86
+ metadata-versus-geometry axis.
87
+ - **Source:** EliteDangerousRegionMap.
88
+ - **Derivation:** the 42 region ids/names and each region's run-length cell geometry
89
+ (`cells`) are taken from the upstream `RegionMapData.json` (itself generated from
90
+ `RegionMap.png`), re-grouped per region. The per-region footprint fields (`cellCount`,
91
+ `areaLy2`, `bounds`, `centroid`) are computed by this project from that grid and are
92
+ approximate (≈49.35 ly grid resolution); coordinates are quantised to 1/64 ly.
93
+ - **Grid mapping:** regions sit on a `4096 / 83` ly (≈49.3494 ly) grid over the galactic
94
+ plane, origin corner at `(x0, y0, z0) = (-49985, -40985, -24105)` ly.
@@ -0,0 +1,41 @@
1
+ # Data sources — `data/commodities/`
2
+
3
+ **Acquired:** FDevIDs 2026-07-24 UTC; player-journal record 2026-08-02 UTC; in-game
4
+ category verification 2026-08-12 UTC. **Upstream revision:** unavailable. One record
5
+ combines the latter two sources, documented under Standard commodities.
6
+
7
+ ## Standard commodities
8
+
9
+ - **File:** `commodities.jsonc` (257 tradable goods).
10
+ - **Source:** EDCD FDevIDs, `commodity.csv` (columns `id,symbol,category,name`).
11
+ - **Derivation:** records are carried over in registry order as
12
+ `{ symbol, name, category }`. `symbol` is Frontier's internal id as the market and
13
+ journal report it; `name` is the display name;
14
+ `category` is the market group (Metals, Minerals, Foods, …), kept verbatim including the
15
+ space in multi-word groups (`Consumer Items`, `Industrial Materials`, `Legal Drugs`). The
16
+ CSV's numeric `id` column is dropped — commodities are keyed by `symbol`. The
17
+ `NonMarketable` group (its one member, symbol `Drones`, is Limpets) is retained: a
18
+ registry must resolve every symbol the market can report.
19
+ - **One record is not from FDevIDs** (acquired 2026-08-02 UTC) — `curatedcommodity` /
20
+ "Curated Commodity Package". Acquired from a player-journal `MarketBuy` event timestamped
21
+ `2026-08-01T16:12:01Z` (`MarketID` 128667761, `BuyPrice` 347), which supplies the
22
+ `symbol` (`Type`) and `name` (`Type_Localised`) verbatim. A `MarketBuy` carries **no
23
+ category**; `Industrial Materials` is separately observed in the running game's commodity
24
+ market (2026-08-12 UTC; no immutable revision). The record is appended after the registry
25
+ order rather than inserted into it, so FDevIDs order is still recoverable by dropping the
26
+ tail. Standard rather than rare: a `MarketBuy` of 388 units far exceeds any rare's
27
+ per-station allocation. The event's `Count`, `BuyPrice`, `TotalCost` and `MarketID` are
28
+ dropped — this is an id/name/category registry, not a price sheet.
29
+
30
+ ## Rare commodities
31
+
32
+ - **File:** `rare-commodities.jsonc` (142 location-specific luxury goods).
33
+ - **Source:** EDCD FDevIDs, `rare_commodity.csv` (columns
34
+ `id,symbol,market_id,category,name`).
35
+ - **Derivation:** records are carried over in registry order as
36
+ `{ symbol, name, category }`, exactly as for standard commodities. Both the numeric `id`
37
+ and the `market_id` columns are dropped: rares are keyed by `symbol`, and the `market_id`
38
+ — the id of the single station that produces a rare — has no stable source referent in
39
+ this data domain. A record's rareness is not stored on it; it is derived from which
40
+ catalogue the record lives in, the same way a material's category is derived from its
41
+ catalogue.
@@ -0,0 +1,69 @@
1
+ # Data sources — `data/materials/`
2
+
3
+ **Acquired:** 2026-07-24. **Upstream revision:** unavailable for both sources below.
4
+
5
+ ## Materials — raw, manufactured, encoded
6
+
7
+ - **Files:** `materials-raw.jsonc`, `materials-manufactured.jsonc`,
8
+ `materials-encoded.jsonc`.
9
+ - **Primary source:** EDCD FDevIDs, `material.csv`. It provides, for each material, the
10
+ internal symbol, grade (`rarity` 1–5), type (raw / manufactured / encoded) and the
11
+ in-game group.
12
+ - **Derivation:**
13
+ - `symbol` is FDevIDs' internal id (e.g. `GridResistors`) — what the player journal
14
+ reports, with the same field and meaning as on a ship or module.
15
+ Frontier's numeric material id from the CSV is not carried. `name` is the human
16
+ display name (`Grid Resistors`). For raw materials `elementSymbol` is the chemical
17
+ element symbol (Fe, C, …); manufactured and encoded materials have none (`null`).
18
+ - `grade` is FDevIDs' `rarity` (1 = Very Common … 5 = Very Rare) — the grade **is** the
19
+ rarity, so no separate rarity is stored. Raw materials only reach grade 4 (Rare) —
20
+ there is no grade-5 raw element.
21
+ - `line` is the in-game group. Manufactured and encoded materials keep FDevIDs' group
22
+ name (Chemical, Emission Data, …). FDevIDs files Guardian and Thargoid materials under
23
+ group `None`; here they are grouped `Guardian` or `Thargoid` from their symbol prefix
24
+ (`Guardian_*` / `Ancient*` → Guardian; `TG_*` / `Unknown*` → Thargoid). Raw materials'
25
+ seven numeric families (1–7) are named after their grade-1 element — **Carbon,
26
+ Phosphorus, Sulphur, Iron, Nickel, Rhenium, Lead** — the convention the in-game raw
27
+ grid columns follow.
28
+
29
+ ### Secondary source — Thargoid caustic / Titan materials absent from FDevIDs
30
+
31
+ Several Thargoid caustic and Titan materials are absent from the pinned FDevIDs
32
+ `material.csv`. Their grade comes from Inara's component pages (rarity tier mapped Very
33
+ common → 1 … Very rare → 5); their `symbol` is the identifier the player journal reports
34
+ (e.g. `tg_causticshard`, `unknowncorechip`).
35
+
36
+ | Material | Category | Grade | Symbol (journal) |
37
+ | ------------------------------- | ------------ | ----- | -------------------------- |
38
+ | Hardened Surface Fragments | Manufactured | 1 | `tg_abrasion03` |
39
+ | Caustic Shard | Manufactured | 2 | `tg_causticshard` |
40
+ | Tactical Core Chip | Manufactured | 2 | `unknowncorechip` |
41
+ | Corrosive Mechanisms | Manufactured | 3 | `tg_causticgeneratorparts` |
42
+ | Phasing Membrane Residue | Manufactured | 3 | `tg_abrasion02` |
43
+ | Caustic Crystal | Manufactured | 4 | `tg_causticcrystal` |
44
+ | Heat Exposure Specimen | Manufactured | 5 | `tg_abrasion01` |
45
+ | Massive Energy Surge Analytics | Encoded | 3 | `tg_shutdowndata` |
46
+ | Thargoid Interdiction Telemetry | Encoded | 3 | `tg_interdictiondata` |
47
+
48
+ Inara agreed with FDevIDs on every material the two share (e.g. Bio-Mechanical Conduits =
49
+ grade 3), which is why it is used to fill the gap.
50
+
51
+ ## Odyssey micro resources — component, consumable, data, item
52
+
53
+ - **Files:** `micro-resources-component.jsonc`, `micro-resources-consumable.jsonc`,
54
+ `micro-resources-data.jsonc`, `micro-resources-item.jsonc`.
55
+ - **Source:** EDCD FDevIDs, `microresources.csv`. It provides, for each micro resource,
56
+ the internal symbol, category (Component / Consumable / Data / Item) and English display
57
+ name.
58
+ - **Derivation:**
59
+ - `symbol` is FDevIDs' internal id (e.g. `graphene`) — what the player journal reports
60
+ with the same field and meaning as on a ship, module or material.
61
+ Frontier's numeric micro-resource id from the CSV is **not** carried.
62
+ - `name` is the English display name (`Graphene`).
63
+ - FDevIDs' category is lower-cased to `component` / `consumable` / `data` / `item`
64
+ (matching how ship modules and materials spell their category). Each data file holds
65
+ exactly one category, so the category is represented by the file rather than repeated
66
+ on every record.
67
+ - Micro resources have **no grade and no line** — those belong to the ship-side
68
+ engineering materials above; each data-file record is a plain `{ symbol, name }`
69
+ registry record.