@elite-dangerous-almanac/core 0.2.0 → 0.2.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 (150) hide show
  1. package/PROVENANCE/ships/SOURCES.md +23 -0
  2. package/dist/chunk-37JIMWLK.js +1 -0
  3. package/dist/chunk-37JIMWLK.js.map +1 -0
  4. package/dist/chunk-4CBMQULR.js +1 -0
  5. package/dist/{chunk-4ZGUSHTP.js.map → chunk-4CBMQULR.js.map} +1 -1
  6. package/dist/{chunk-QTAMQ6ME.js → chunk-5VWACBTN.js} +1 -1
  7. package/dist/chunk-65FZECUX.js +1 -0
  8. package/dist/chunk-65FZECUX.js.map +1 -0
  9. package/dist/chunk-6BFQIYGZ.js +1 -0
  10. package/dist/chunk-6BFQIYGZ.js.map +1 -0
  11. package/dist/chunk-6HA2YIKW.js +1 -0
  12. package/dist/chunk-6HA2YIKW.js.map +1 -0
  13. package/dist/{chunk-7EE5VIHR.js → chunk-6HMIF2RJ.js} +1 -1
  14. package/dist/chunk-6S36AVA4.js +1 -0
  15. package/dist/chunk-6S36AVA4.js.map +1 -0
  16. package/dist/chunk-6WTUY6ZX.js +1 -0
  17. package/dist/{chunk-V3AEUBHV.js.map → chunk-6WTUY6ZX.js.map} +1 -1
  18. package/dist/chunk-77TT4K53.js +1 -0
  19. package/dist/{chunk-Y6KJJMIM.js → chunk-A4QKXXZD.js} +1 -1
  20. package/dist/chunk-AAE4KZ2V.js +1 -0
  21. package/dist/chunk-AAE4KZ2V.js.map +1 -0
  22. package/dist/{chunk-Q5XOGATC.js → chunk-AIEC3LBT.js} +1 -1
  23. package/dist/{chunk-QY3L5BKN.js → chunk-APEG4ZER.js} +1 -1
  24. package/dist/{chunk-JGOAQLYW.js → chunk-F44QX47A.js} +1 -1
  25. package/dist/{chunk-EVJ32UF3.js → chunk-FA5JVXVG.js} +1 -1
  26. package/dist/{chunk-EVJ32UF3.js.map → chunk-FA5JVXVG.js.map} +1 -1
  27. package/dist/chunk-GGQMIQPC.js +1 -0
  28. package/dist/chunk-GGQMIQPC.js.map +1 -0
  29. package/dist/{chunk-EYGVDJ2I.js → chunk-GMTAFUAG.js} +1 -1
  30. package/dist/{chunk-Z43DN4PY.js → chunk-GTEHRZPN.js} +1 -1
  31. package/dist/{chunk-Z43DN4PY.js.map → chunk-GTEHRZPN.js.map} +1 -1
  32. package/dist/{chunk-PA5EITW5.js → chunk-HUYYGTRM.js} +1 -1
  33. package/dist/{chunk-PA5EITW5.js.map → chunk-HUYYGTRM.js.map} +1 -1
  34. package/dist/{chunk-HKXXFIRI.js → chunk-ITKZKREP.js} +1 -1
  35. package/dist/{chunk-OYR5HUQZ.js → chunk-IWFQ4ZKF.js} +1 -1
  36. package/dist/{chunk-ZCEAPJDH.js → chunk-J7BM5NGK.js} +1 -1
  37. package/dist/chunk-JET673E5.js +1 -0
  38. package/dist/chunk-JET673E5.js.map +1 -0
  39. package/dist/chunk-JMAXSXXQ.js +1 -0
  40. package/dist/chunk-JMAXSXXQ.js.map +1 -0
  41. package/dist/chunk-JO52LYO3.js +1 -0
  42. package/dist/chunk-M2TCZKRT.js +1 -0
  43. package/dist/chunk-M2TCZKRT.js.map +1 -0
  44. package/dist/chunk-M4FZRDAH.js +1 -0
  45. package/dist/chunk-M4FZRDAH.js.map +1 -0
  46. package/dist/chunk-OJC6AUL7.js +1 -0
  47. package/dist/chunk-OJC6AUL7.js.map +1 -0
  48. package/dist/{chunk-FYVPZBXN.js → chunk-Q5ALV3DI.js} +1 -1
  49. package/dist/{chunk-SQS7672E.js → chunk-Q6YDPREF.js} +1 -1
  50. package/dist/chunk-SG6YLUQ4.js +1 -0
  51. package/dist/chunk-SG6YLUQ4.js.map +1 -0
  52. package/dist/{chunk-OVUHQEH5.js → chunk-T4MKUKYS.js} +1 -1
  53. package/dist/{chunk-OVUHQEH5.js.map → chunk-T4MKUKYS.js.map} +1 -1
  54. package/dist/{chunk-XUHAPOM6.js → chunk-VEEBJFJ7.js} +1 -1
  55. package/dist/{chunk-L747RVPO.js → chunk-VQJXRPYI.js} +1 -1
  56. package/dist/{chunk-L747RVPO.js.map → chunk-VQJXRPYI.js.map} +1 -1
  57. package/dist/chunk-VTMCSCXV.js +1 -0
  58. package/dist/chunk-VTMCSCXV.js.map +1 -0
  59. package/dist/chunk-XQJERZUS.js +1 -0
  60. package/dist/chunk-XQJERZUS.js.map +1 -0
  61. package/dist/commodities/commodities-all.js +1 -1
  62. package/dist/commodities/commodities-rare.js +1 -1
  63. package/dist/commodities/commodities-standard.js +1 -1
  64. package/dist/commodities/commodities.js +1 -1
  65. package/dist/commodities/index.js +1 -1
  66. package/dist/materials/index.js +1 -1
  67. package/dist/materials/materials-all.js +1 -1
  68. package/dist/materials/materials-encoded.js +1 -1
  69. package/dist/materials/materials-manufactured.js +1 -1
  70. package/dist/materials/materials-raw.js +1 -1
  71. package/dist/materials/materials.js +1 -1
  72. package/dist/ships/armour.js +1 -1
  73. package/dist/ships/build-metrics.js +1 -1
  74. package/dist/ships/distributor.js +1 -1
  75. package/dist/ships/heat.js +1 -1
  76. package/dist/ships/index.d.ts +1 -1
  77. package/dist/ships/index.js +1 -1
  78. package/dist/ships/jump-range.js +1 -1
  79. package/dist/ships/loadout-validation.d.ts +111 -5
  80. package/dist/ships/loadout-validation.js +1 -1
  81. package/dist/ships/mobility-capacitor.js +1 -1
  82. package/dist/ships/mobility.js +1 -1
  83. package/dist/ships/modules-all.js +1 -1
  84. package/dist/ships/modules-core.js +1 -1
  85. package/dist/ships/modules-internal.js +1 -1
  86. package/dist/ships/modules.d.ts +21 -1
  87. package/dist/ships/modules.js +1 -1
  88. package/dist/ships/power.js +1 -1
  89. package/dist/ships/pre-engineered-stats.d.ts +12 -7
  90. package/dist/ships/pre-engineered-stats.js +1 -1
  91. package/dist/ships/resistances.js +1 -1
  92. package/dist/ships/shield-capacitor.js +1 -1
  93. package/dist/ships/shield-recovery.js +1 -1
  94. package/dist/ships/shields.js +1 -1
  95. package/dist/ships/ship-loadout.d.ts +84 -17
  96. package/dist/ships/ship-loadout.js +1 -1
  97. package/dist/ships/slef.d.ts +4 -1
  98. package/dist/ships/slef.js +1 -1
  99. package/dist/ships/weapons-capacitor.js +1 -1
  100. package/dist/ships/weapons.js +1 -1
  101. package/package.json +1 -1
  102. package/dist/chunk-4KJ7CR74.js +0 -1
  103. package/dist/chunk-4KJ7CR74.js.map +0 -1
  104. package/dist/chunk-4ZGUSHTP.js +0 -1
  105. package/dist/chunk-6L56LWTT.js +0 -1
  106. package/dist/chunk-6L56LWTT.js.map +0 -1
  107. package/dist/chunk-6O4NRRSB.js +0 -1
  108. package/dist/chunk-6O4NRRSB.js.map +0 -1
  109. package/dist/chunk-7TQ2X6Q3.js +0 -1
  110. package/dist/chunk-7TQ2X6Q3.js.map +0 -1
  111. package/dist/chunk-B4ZSTOM4.js +0 -1
  112. package/dist/chunk-B4ZSTOM4.js.map +0 -1
  113. package/dist/chunk-D6YEHR5S.js +0 -1
  114. package/dist/chunk-D6YEHR5S.js.map +0 -1
  115. package/dist/chunk-EVW4Z4CB.js +0 -1
  116. package/dist/chunk-EVW4Z4CB.js.map +0 -1
  117. package/dist/chunk-GZYPQIO2.js +0 -1
  118. package/dist/chunk-GZYPQIO2.js.map +0 -1
  119. package/dist/chunk-JQG4C67D.js +0 -1
  120. package/dist/chunk-OYFMHDYT.js +0 -1
  121. package/dist/chunk-OYFMHDYT.js.map +0 -1
  122. package/dist/chunk-PY5L6WC5.js +0 -1
  123. package/dist/chunk-PY5L6WC5.js.map +0 -1
  124. package/dist/chunk-Q2L75GSI.js +0 -1
  125. package/dist/chunk-Q2L75GSI.js.map +0 -1
  126. package/dist/chunk-QJ7GB6FF.js +0 -1
  127. package/dist/chunk-QJ7GB6FF.js.map +0 -1
  128. package/dist/chunk-RRYBSAPX.js +0 -1
  129. package/dist/chunk-RRYBSAPX.js.map +0 -1
  130. package/dist/chunk-V3AEUBHV.js +0 -1
  131. package/dist/chunk-V4C6FIE2.js +0 -1
  132. package/dist/chunk-VYDQHPY2.js +0 -1
  133. package/dist/chunk-VYDQHPY2.js.map +0 -1
  134. package/dist/chunk-YXPZ7QQB.js +0 -1
  135. package/dist/chunk-YXPZ7QQB.js.map +0 -1
  136. /package/dist/{chunk-QTAMQ6ME.js.map → chunk-5VWACBTN.js.map} +0 -0
  137. /package/dist/{chunk-7EE5VIHR.js.map → chunk-6HMIF2RJ.js.map} +0 -0
  138. /package/dist/{chunk-JQG4C67D.js.map → chunk-77TT4K53.js.map} +0 -0
  139. /package/dist/{chunk-Y6KJJMIM.js.map → chunk-A4QKXXZD.js.map} +0 -0
  140. /package/dist/{chunk-Q5XOGATC.js.map → chunk-AIEC3LBT.js.map} +0 -0
  141. /package/dist/{chunk-QY3L5BKN.js.map → chunk-APEG4ZER.js.map} +0 -0
  142. /package/dist/{chunk-JGOAQLYW.js.map → chunk-F44QX47A.js.map} +0 -0
  143. /package/dist/{chunk-EYGVDJ2I.js.map → chunk-GMTAFUAG.js.map} +0 -0
  144. /package/dist/{chunk-HKXXFIRI.js.map → chunk-ITKZKREP.js.map} +0 -0
  145. /package/dist/{chunk-OYR5HUQZ.js.map → chunk-IWFQ4ZKF.js.map} +0 -0
  146. /package/dist/{chunk-ZCEAPJDH.js.map → chunk-J7BM5NGK.js.map} +0 -0
  147. /package/dist/{chunk-V4C6FIE2.js.map → chunk-JO52LYO3.js.map} +0 -0
  148. /package/dist/{chunk-FYVPZBXN.js.map → chunk-Q5ALV3DI.js.map} +0 -0
  149. /package/dist/{chunk-SQS7672E.js.map → chunk-Q6YDPREF.js.map} +0 -0
  150. /package/dist/{chunk-XUHAPOM6.js.map → chunk-VEEBJFJ7.js.map} +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/ships/internal/loadout-export.ts","../src/ships/ship-loadout.ts"],"names":["fixedSlotReason","validateLoadout","calculateModuleLimits","publishLoadoutInternals","normalizeLoadoutEvent","preEngineeredVariantFor","moduleFitProblem","effectiveModule","moduleFitError","parseSlef","toSlef","stringifySlef","getLoadoutModifier","getSourceModuleValue","isNonOutfittingSlot","isBuiltInHullModule","cloneLoadoutModule","cloneModuleStats","availableBlueprintsFor","availableExperimentalsFor","ownKeyIn","FITTED_ITEM","blueprintAvailableFor","blueprintRoutesFor","experimentalAvailableFor","primitiveEngineeringInputsFor","missingBaseLabels","journalModifiersFor","getPreEngineeredStats","getPreEngineeredJournalModifiers","getPreEngineeredModifiers","ordinaryEngineeringProof","unresolvedModifiers","matchingKeyIn","isCargoHatchSlot","orderBySlotLayout","getPreEngineeredVariants","getShipBySymbol","builtInModuleBySymbol","ALL_MODULES","singleJumpRange","calculateUnladenMass","calculateCargoCapacity","calculateFuelCapacity","getDefaultLoadout","getExperimentalEffect","ammunitionCapacity","baseStats","computeModifiers","labelsForDamageType","scaleForLabel","resolveBlueprintForModule","getExperimentalsForModule","getBlueprintGrade","loadoutSlotName","parseSlotName","enumerateSlots","normalizeKey","CATALOGUE_KEY","truncate","describeValue","requireString","requireStringIfPresent","deepFreeze","REBUY_FRACTION","exportLoadoutEvent","input","options","fromSource","credits","source","sourcePurchase","totals","sourceTotalsVoided","sourceTotalsHold","modules","hullValue","retailHullValue","modulesValue","computedModulesValue","statsFor","rebuy","Math","trunc","Ship","shipSymbol","toLowerCase","shipName","ShipName","shipIdent","ShipIdent","HullValue","ModulesValue","UnladenMass","unladenMass","CargoCapacity","cargoCapacity","maxJumpRange","MaxJumpRange","FuelCapacity","Main","fuelCapacity","main","Reserve","reserve","Rebuy","Modules","exportModules","ordered","moduleOrder","slotOrderedModules","layout","values","map","module","on","On","explicitPower","priority","Priority","value","sourceModuleValue","moduleValue","Slot","Item","Health","Value","Engineering","sum","stats","cost","SOURCE_ITEM","entry","item","moduleValues","key","slot","fitted","get","SLOT_KEY","FITTED_SLOT","LoadoutEditError","TypeError","code","constraint","params","constructor","message","super","this","structuredClone","experimentalEffectUnsupported","kind","engineeringNormalizationUnsupported","weighable","tonnes","Number","isFinite","AGGREGATE_STATS","ShipLoadout","_ShipLoadout","ship","moduleStats","primitiveModifiers","top","importOutcomes","slotCache","Map","layoutCache","effectiveModules","modulesForEffectiveStats","moduleForEffectiveStats","resolveDrive","frameShiftDriveModule","frameShiftDrive","calculationModules","statedMainFuel","fromSlef","index","entries","length","imported","data","fromImported","fromLoadout","event","outcomes","loadout","unresolved","rollStatedRecipe","push","engineering","Modifiers","BlueprintName","has","variant","acquisition","Level","grade","applyBlueprint","quality","Quality","ExperimentalEffect","experimentalEffectSymbol","error","RangeError","action","sourceSymbol","blueprintSymbol","empty","requested","symbol","filter","parsed","computedUnladenMass","hullMass","cap","Object","freeze","computed","computedFuelCapacity","computedCargoCapacity","reserveFuelCapacity","validation","slots","byKey","builtIn","fitProblem","thrusterMaxMass","maxMass","requiresKnownSlot","fitError","fitConstraint","fitParams","exclusionGroup","limitGroup","limitIncrease","dry","fuel","cargo","mass","cached","currentLimits","moduleLimits","moduleStatsAt","fixedReason","immovableReason","moduleLimitRegression","name","fittedModuleAt","removable","set","slotKey","fittedModuleFor","raw","effective","health","effectiveStats","ammunition","preEngineeredVariant","fittedModules","keys","flatMap","availableBlueprints","availableExperimentalEffects","modulesForSlot","requireSlot","occupied","Set","group","currentStats","grantOnly","repairFixedMount","wanted","fittedKey","resultSlot","canonicalKey","status","reason","current","valid","defaultModule","find","ownKey","replacement","replacementStats","replaceModule","setModule","catalogued","field","stated","problem","conflict","previousSlot","previousSymbol","limitProblem","count","limit","removeModule","candidate","wantedGrade","wantedQuality","wantedExperimental","fittedStats","recipe","named","written","trim","resolved","some","isInteger","experimental","engineeringLocked","offered","blueprint","route","join","engineeringBaseStats","base","canonical","missing","features","modifiers","damageDistribution","type","label","damageModifier","Label","OriginalValue","setExperimentalEffect","previous","effect","restoresBakedEffect","stock","labels","originalEffect","withoutEffect","adjusted","currentEffect","blueprintGrade","previousExperimentalEffectSymbol","completeEngineeringGrade","previousQuality","proof","setPreEngineeredVariant","known","clearEngineering","bare","setModuleEnabled","patchModule","setModulePriority","patch","clear","toLoadoutEvent","exportableJumpRange","hullCost","outcome","header","toSlefString","indent","drive","tank","min","maxFuel","s","moduleMass","moduleCapacity","usage","increase","amount","baseLimit","excess","max","adjustImportedFigures","delete","next","nextStats","statsOverride","modified","modifierLabel","m","fsd","fsdModule","fuelMul","fuelPower","optMass","jumpBoost","resolveJumpBoost","engineeringGroup"],"mappings":"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"}
@@ -1 +1 @@
1
- import{normalizeKey}from"./chunk-BKWLI44T.js";import{truncate}from"./chunk-PKWVG2JY.js";var SYNTHETIC_HEADER=Object.freeze({appName:"",appVersion:""});var isRecord=value=>typeof value==="object"&&value!==null&&!Array.isArray(value);var isOptionalString=value=>value===void 0||typeof value==="string";var isOptionalFiniteNumber=value=>value===void 0||typeof value==="number"&&Number.isFinite(value);var isOptionalNumberInRange=(value,minimum,maximum=Number.POSITIVE_INFINITY)=>value===void 0||typeof value==="number"&&Number.isFinite(value)&&value>=minimum&&value<=maximum;var isOptionalIntegerInRange=(value,minimum,maximum)=>{if(value===void 0)return true;return typeof value==="number"&&Number.isInteger(value)&&value>=minimum&&value<=maximum};var CONSTRAINT_MESSAGES={objectRequired:"must be an object",stringRequired:"must be a string",booleanRequired:"must be a boolean",arrayRequired:"must be an array",finiteNumberRequired:"must be a finite number",nonNegativeNumberRequired:"must be a non-negative number",priorityRange:"must be an integer from 0 to 4",engineeringLevelRange:"must be an integer from 1 to 5",unitInterval:"must be a number from 0 to 1",binaryInteger:"must be 0 or 1",versionRequired:"must be a string or finite number",loadoutEventRequired:'must be "Loadout"',validLoadoutRequired:"is not a valid Loadout event"};var invalid=(code,path,constraint)=>({code:code,path:path,constraint:constraint,reason:CONSTRAINT_MESSAGES[constraint]});function diagnoseEngineering(value,path){if(!isRecord(value))return invalid("invalidEngineering",path,"objectRequired");if(typeof value.BlueprintName!=="string")return invalid("invalidEngineering",`${path}.BlueprintName`,"stringRequired");if(!isOptionalIntegerInRange(value.Level,1,5)||value.Level===void 0)return invalid("invalidEngineering",`${path}.Level`,"engineeringLevelRange");if(!isOptionalNumberInRange(value.Quality,0,1)||value.Quality===void 0)return invalid("invalidEngineering",`${path}.Quality`,"unitInterval");if(!isOptionalString(value.ExperimentalEffect))return invalid("invalidEngineering",`${path}.ExperimentalEffect`,"stringRequired");if(!isOptionalString(value.ExperimentalEffect_Localised))return invalid("invalidEngineering",`${path}.ExperimentalEffect_Localised`,"stringRequired");if(value.Modifiers!==void 0){if(!Array.isArray(value.Modifiers))return invalid("invalidEngineering",`${path}.Modifiers`,"arrayRequired");for(let index=0;index<value.Modifiers.length;index+=1){const modifier=value.Modifiers[index];const modifierPath=`${path}.Modifiers[${index}]`;if(!isRecord(modifier))return invalid("invalidEngineering",modifierPath,"objectRequired");if(typeof modifier.Label!=="string")return invalid("invalidEngineering",`${modifierPath}.Label`,"stringRequired");if(!isOptionalFiniteNumber(modifier.Value))return invalid("invalidEngineering",`${modifierPath}.Value`,"finiteNumberRequired");if(!isOptionalFiniteNumber(modifier.OriginalValue))return invalid("invalidEngineering",`${modifierPath}.OriginalValue`,"finiteNumberRequired");if(!isOptionalString(modifier.ValueStr))return invalid("invalidEngineering",`${modifierPath}.ValueStr`,"stringRequired");if(!isOptionalIntegerInRange(modifier.LessIsGood,0,1))return invalid("invalidEngineering",`${modifierPath}.LessIsGood`,"binaryInteger")}}return null}function diagnoseModule(value,path){if(!isRecord(value))return invalid("invalidModule",path,"objectRequired");if(typeof value.Slot!=="string")return invalid("invalidModule",`${path}.Slot`,"stringRequired");if(typeof value.Item!=="string")return invalid("invalidModule",`${path}.Item`,"stringRequired");if(value.On!==void 0&&typeof value.On!=="boolean")return invalid("invalidModule",`${path}.On`,"booleanRequired");if(!isOptionalIntegerInRange(value.Priority,0,4))return invalid("invalidModule",`${path}.Priority`,"priorityRange");if(!isOptionalNumberInRange(value.Health,0,1))return invalid("invalidModule",`${path}.Health`,"unitInterval");if(!isOptionalNumberInRange(value.Value,0))return invalid("invalidModule",`${path}.Value`,"nonNegativeNumberRequired");if(value.Engineering!==void 0)return diagnoseEngineering(value.Engineering,`${path}.Engineering`);return null}function diagnoseHeader(value,path){if(!isRecord(value))return invalid("invalidHeader",path,"objectRequired");if(typeof value.appName!=="string")return invalid("invalidHeader",`${path}.appName`,"stringRequired");if(typeof value.appVersion!=="string"&&!(typeof value.appVersion==="number"&&Number.isFinite(value.appVersion)))return invalid("invalidHeader",`${path}.appVersion`,"versionRequired");if(!isOptionalString(value.appURL))return invalid("invalidHeader",`${path}.appURL`,"stringRequired");if(value.appCustomProperties!==void 0&&!isRecord(value.appCustomProperties))return invalid("invalidHeader",`${path}.appCustomProperties`,"objectRequired");return null}function diagnoseLoadout(value,path){if(!isRecord(value))return invalid("invalidLoadout",path,"objectRequired");if(typeof value.Ship!=="string")return invalid("invalidLoadout",`${path}.Ship`,"stringRequired");if(!Array.isArray(value.Modules))return invalid("invalidLoadout",`${path}.Modules`,"arrayRequired");if(value.event!==void 0&&value.event!=="Loadout")return invalid("invalidLoadout",`${path}.event`,"loadoutEventRequired");for(const field of["ShipName","ShipIdent"]){if(!isOptionalString(value[field]))return invalid("invalidLoadout",`${path}.${field}`,"stringRequired")}for(const field of["HullValue","ModulesValue","UnladenMass","CargoCapacity","MaxJumpRange","Rebuy"]){if(!isOptionalNumberInRange(value[field],0))return invalid("invalidLoadout",`${path}.${field}`,"nonNegativeNumberRequired")}if(value.FuelCapacity!==void 0){if(!isRecord(value.FuelCapacity))return invalid("invalidLoadout",`${path}.FuelCapacity`,"objectRequired");for(const field of["Main","Reserve"]){if(!isOptionalNumberInRange(value.FuelCapacity[field],0)||value.FuelCapacity[field]===void 0)return invalid("invalidLoadout",`${path}.FuelCapacity.${field}`,"nonNegativeNumberRequired")}}for(let index=0;index<value.Modules.length;index+=1){const moduleDiagnostic=diagnoseModule(value.Modules[index],`${path}.Modules[${index}]`);if(moduleDiagnostic!==null)return moduleDiagnostic}return null}function isSlefHeader(value){return diagnoseHeader(value,"header")===null}function isLoadout(value){return diagnoseLoadout(value,"loadout")===null}function duplicateSlot(loadout){const seen=/* @__PURE__ */new Set;for(let moduleIndex=0;moduleIndex<loadout.Modules.length;moduleIndex+=1){const module=loadout.Modules[moduleIndex];const slot=module.Slot.toLowerCase();if(seen.has(slot))return{slot:module.Slot,moduleIndex:moduleIndex};seen.add(slot)}return null}function inspectSlef(input){const root=typeof input==="string"?JSON.parse(input):input;const rawEntries=Array.isArray(root)?root:[root];const entries=[];const diagnostics=[];rawEntries.forEach((raw,index)=>{const entryPath=`entries[${index}]`;let header=null;let loadout=null;if(isLoadout(raw)){header=SYNTHETIC_HEADER;loadout=raw}else if(isRecord(raw)&&isLoadout(raw.data)){if(isSlefHeader(raw.header)){header=raw.header;loadout=raw.data}}if(header===null||loadout===null){const envelope=isRecord(raw)&&("header"in raw||"data"in raw);const detail=envelope?diagnoseHeader(isRecord(raw)?raw.header:null,`${entryPath}.header`)??diagnoseLoadout(isRecord(raw)?raw.data:null,`${entryPath}.data`):diagnoseLoadout(raw,entryPath);diagnostics.push({index:index,code:detail?.code??"invalidLoadout",path:detail?.path??entryPath,constraint:detail?.constraint??"validLoadoutRequired",message:`${detail?.path??entryPath} ${detail?.reason??"is not a valid Loadout event"}`,params:{path:detail?.path??entryPath,constraint:detail?.constraint??"validLoadoutRequired"}});return}const duplicate=duplicateSlot(loadout);if(duplicate!==null){diagnostics.push({index:index,code:"duplicateSlot",path:`${entryPath}${isLoadout(raw)?"":".data"}.Modules[${duplicate.moduleIndex}].Slot`,constraint:"uniqueSlot",message:`Entry ${index} contains duplicate slot "${truncate(duplicate.slot)}"`,params:{index:index,slot:duplicate.slot}});return}entries.push({header:header,data:loadout})});return Object.freeze({entries:Object.freeze(entries),diagnostics:Object.freeze(diagnostics.map(diagnostic=>Object.freeze({...diagnostic,...diagnostic.params?{params:Object.freeze({...diagnostic.params})}:{}})))})}function parseSlef(input){const inspected=inspectSlef(input);if(inspected.diagnostics.length>0){throw new TypeError(`parseSlef: ${inspected.diagnostics[0].message}`)}if(inspected.entries.length===0){throw new TypeError("parseSlef: input holds no entries")}return[...inspected.entries]}function toSlef(data,header){if(!isSlefHeader(header)){throw new TypeError("toSlef: header needs a string `appName` and an `appVersion`")}const events=Array.isArray(data)?data:[data];if(events.length===0){throw new TypeError("toSlef: needs at least one Loadout")}return events.map((event,index)=>{if(!isLoadout(event)){throw new TypeError(`toSlef: entry ${index} is not a valid Loadout (needs a \`Ship\` and \`Modules\`)`)}const duplicate=duplicateSlot(event);if(duplicate!==null){throw new TypeError(`toSlef: entry ${index} contains duplicate slot "${truncate(duplicate.slot)}"`)}return{header:header,data:event}})}function stringifySlef(slef,options={}){return JSON.stringify(slef,null,options.indent??0)}function getLoadoutModifier(module,label){const wanted=normalizeKey(label,"getLoadoutModifier: label");const mod=module.Engineering?.Modifiers?.find(m=>m.Label.toLowerCase()===wanted);return typeof mod?.Value==="number"?mod.Value:null}export{getLoadoutModifier,inspectSlef,parseSlef,stringifySlef,toSlef};//# sourceMappingURL=chunk-OVUHQEH5.js.map
1
+ import{normalizeKey}from"./chunk-BKWLI44T.js";import{truncate}from"./chunk-PKWVG2JY.js";var SYNTHETIC_HEADER=Object.freeze({appName:"",appVersion:""});var isRecord=value=>typeof value==="object"&&value!==null&&!Array.isArray(value);var isOptionalString=value=>value===void 0||typeof value==="string";var isOptionalFiniteNumber=value=>value===void 0||typeof value==="number"&&Number.isFinite(value);var isOptionalNumberInRange=(value,minimum,maximum=Number.POSITIVE_INFINITY)=>value===void 0||typeof value==="number"&&Number.isFinite(value)&&value>=minimum&&value<=maximum;var isOptionalIntegerInRange=(value,minimum,maximum)=>{if(value===void 0)return true;return typeof value==="number"&&Number.isInteger(value)&&value>=minimum&&value<=maximum};var CONSTRAINT_MESSAGES={objectRequired:"must be an object",stringRequired:"must be a string",booleanRequired:"must be a boolean",arrayRequired:"must be an array",finiteNumberRequired:"must be a finite number",nonNegativeNumberRequired:"must be a non-negative number",priorityRange:"must be an integer from 0 to 4",engineeringLevelRange:"must be an integer from 1 to 5",unitInterval:"must be a number from 0 to 1",binaryInteger:"must be 0 or 1",versionRequired:"must be a string or finite number",loadoutEventRequired:'must be "Loadout"',validLoadoutRequired:"is not a valid Loadout event"};var invalid=(code,path,constraint)=>({code:code,path:path,constraint:constraint,reason:CONSTRAINT_MESSAGES[constraint]});function diagnoseEngineering(value,path){if(!isRecord(value))return invalid("invalidEngineering",path,"objectRequired");if(typeof value.BlueprintName!=="string")return invalid("invalidEngineering",`${path}.BlueprintName`,"stringRequired");if(!isOptionalIntegerInRange(value.Level,1,5)||value.Level===void 0)return invalid("invalidEngineering",`${path}.Level`,"engineeringLevelRange");if(!isOptionalNumberInRange(value.Quality,0,1)||value.Quality===void 0)return invalid("invalidEngineering",`${path}.Quality`,"unitInterval");if(!isOptionalString(value.ExperimentalEffect))return invalid("invalidEngineering",`${path}.ExperimentalEffect`,"stringRequired");if(!isOptionalString(value.ExperimentalEffect_Localised))return invalid("invalidEngineering",`${path}.ExperimentalEffect_Localised`,"stringRequired");if(value.Modifiers!==void 0){if(!Array.isArray(value.Modifiers))return invalid("invalidEngineering",`${path}.Modifiers`,"arrayRequired");for(let index=0;index<value.Modifiers.length;index+=1){const modifier=value.Modifiers[index];const modifierPath=`${path}.Modifiers[${index}]`;if(!isRecord(modifier))return invalid("invalidEngineering",modifierPath,"objectRequired");if(typeof modifier.Label!=="string")return invalid("invalidEngineering",`${modifierPath}.Label`,"stringRequired");if(!isOptionalFiniteNumber(modifier.Value))return invalid("invalidEngineering",`${modifierPath}.Value`,"finiteNumberRequired");if(!isOptionalFiniteNumber(modifier.OriginalValue))return invalid("invalidEngineering",`${modifierPath}.OriginalValue`,"finiteNumberRequired");if(!isOptionalString(modifier.ValueStr))return invalid("invalidEngineering",`${modifierPath}.ValueStr`,"stringRequired");if(!isOptionalIntegerInRange(modifier.LessIsGood,0,1))return invalid("invalidEngineering",`${modifierPath}.LessIsGood`,"binaryInteger")}}return null}function diagnoseModule(value,path){if(!isRecord(value))return invalid("invalidModule",path,"objectRequired");if(typeof value.Slot!=="string")return invalid("invalidModule",`${path}.Slot`,"stringRequired");if(typeof value.Item!=="string")return invalid("invalidModule",`${path}.Item`,"stringRequired");if(value.On!==void 0&&typeof value.On!=="boolean")return invalid("invalidModule",`${path}.On`,"booleanRequired");if(!isOptionalIntegerInRange(value.Priority,0,4))return invalid("invalidModule",`${path}.Priority`,"priorityRange");if(!isOptionalNumberInRange(value.Health,0,1))return invalid("invalidModule",`${path}.Health`,"unitInterval");if(!isOptionalNumberInRange(value.Value,0))return invalid("invalidModule",`${path}.Value`,"nonNegativeNumberRequired");if(value.Engineering!==void 0)return diagnoseEngineering(value.Engineering,`${path}.Engineering`);return null}function diagnoseHeader(value,path){if(!isRecord(value))return invalid("invalidHeader",path,"objectRequired");if(typeof value.appName!=="string")return invalid("invalidHeader",`${path}.appName`,"stringRequired");if(typeof value.appVersion!=="string"&&!(typeof value.appVersion==="number"&&Number.isFinite(value.appVersion)))return invalid("invalidHeader",`${path}.appVersion`,"versionRequired");if(!isOptionalString(value.appURL))return invalid("invalidHeader",`${path}.appURL`,"stringRequired");if(value.appCustomProperties!==void 0&&!isRecord(value.appCustomProperties))return invalid("invalidHeader",`${path}.appCustomProperties`,"objectRequired");return null}function diagnoseLoadout(value,path){if(!isRecord(value))return invalid("invalidLoadout",path,"objectRequired");if(typeof value.Ship!=="string")return invalid("invalidLoadout",`${path}.Ship`,"stringRequired");if(!Array.isArray(value.Modules))return invalid("invalidLoadout",`${path}.Modules`,"arrayRequired");if(value.event!==void 0&&value.event!=="Loadout")return invalid("invalidLoadout",`${path}.event`,"loadoutEventRequired");for(const field of["ShipName","ShipIdent"]){if(!isOptionalString(value[field]))return invalid("invalidLoadout",`${path}.${field}`,"stringRequired")}for(const field of["HullValue","ModulesValue","UnladenMass","CargoCapacity","MaxJumpRange","Rebuy"]){if(!isOptionalNumberInRange(value[field],0))return invalid("invalidLoadout",`${path}.${field}`,"nonNegativeNumberRequired")}if(value.FuelCapacity!==void 0){if(!isRecord(value.FuelCapacity))return invalid("invalidLoadout",`${path}.FuelCapacity`,"objectRequired");for(const field of["Main","Reserve"]){if(!isOptionalNumberInRange(value.FuelCapacity[field],0)||value.FuelCapacity[field]===void 0)return invalid("invalidLoadout",`${path}.FuelCapacity.${field}`,"nonNegativeNumberRequired")}}for(let index=0;index<value.Modules.length;index+=1){const moduleDiagnostic=diagnoseModule(value.Modules[index],`${path}.Modules[${index}]`);if(moduleDiagnostic!==null)return moduleDiagnostic}return null}function isSlefHeader(value){return diagnoseHeader(value,"header")===null}function isLoadout(value){return diagnoseLoadout(value,"loadout")===null}function duplicateSlot(loadout){const seen=/* @__PURE__ */new Set;for(let moduleIndex=0;moduleIndex<loadout.Modules.length;moduleIndex+=1){const module=loadout.Modules[moduleIndex];const slot=module.Slot.toLowerCase();if(seen.has(slot))return{slot:module.Slot,moduleIndex:moduleIndex};seen.add(slot)}return null}function inspectSlef(input){const root=typeof input==="string"?JSON.parse(input):input;const rawEntries=Array.isArray(root)?root:[root];const entries=[];const diagnostics=[];rawEntries.forEach((raw,index)=>{const entryPath=`entries[${index}]`;let header=null;let loadout=null;if(isLoadout(raw)){header=SYNTHETIC_HEADER;loadout=raw}else if(isRecord(raw)&&isLoadout(raw.data)){if(isSlefHeader(raw.header)){header=raw.header;loadout=raw.data}}if(header===null||loadout===null){const envelope=isRecord(raw)&&("header"in raw||"data"in raw);const detail=envelope?diagnoseHeader(isRecord(raw)?raw.header:null,`${entryPath}.header`)??diagnoseLoadout(isRecord(raw)?raw.data:null,`${entryPath}.data`):diagnoseLoadout(raw,entryPath);diagnostics.push({index:index,code:detail?.code??"invalidLoadout",path:detail?.path??entryPath,constraint:detail?.constraint??"validLoadoutRequired",message:`${detail?.path??entryPath} ${detail?.reason??"is not a valid Loadout event"}`,params:{path:detail?.path??entryPath,constraint:detail?.constraint??"validLoadoutRequired"}});return}const duplicate=duplicateSlot(loadout);if(duplicate!==null){diagnostics.push({index:index,code:"duplicateSlot",path:`${entryPath}${isLoadout(raw)?"":".data"}.Modules[${duplicate.moduleIndex}].Slot`,constraint:"uniqueSlot",message:`Entry ${index} contains duplicate slot "${truncate(duplicate.slot)}"`,params:{index:index,slot:duplicate.slot}});return}entries.push({header:header,data:loadout})});return Object.freeze({entries:Object.freeze(entries),diagnostics:Object.freeze(diagnostics.map(diagnostic=>Object.freeze({...diagnostic,...diagnostic.params?{params:Object.freeze({...diagnostic.params})}:{}})))})}function parseSlef(input){const inspected=inspectSlef(input);if(inspected.diagnostics.length>0){throw new TypeError(`parseSlef: ${inspected.diagnostics[0].message}`)}if(inspected.entries.length===0){throw new TypeError("parseSlef: input holds no entries")}return[...inspected.entries]}function toSlef(data,header){if(!isSlefHeader(header)){throw new TypeError("toSlef: header needs a string `appName` and an `appVersion`")}const events=Array.isArray(data)?data:[data];if(events.length===0){throw new TypeError("toSlef: needs at least one Loadout")}return events.map((event,index)=>{if(!isLoadout(event)){throw new TypeError(`toSlef: entry ${index} is not a valid Loadout (needs a \`Ship\` and \`Modules\`)`)}const duplicate=duplicateSlot(event);if(duplicate!==null){throw new TypeError(`toSlef: entry ${index} contains duplicate slot "${truncate(duplicate.slot)}"`)}return{header:header,data:event}})}function stringifySlef(slef,options={}){return JSON.stringify(slef,null,options.indent??0)}function getLoadoutModifier(module,label){const wanted=normalizeKey(label,"getLoadoutModifier: label");const mod=module.Engineering?.Modifiers?.find(m=>m.Label.toLowerCase()===wanted);return typeof mod?.Value==="number"?mod.Value:null}export{getLoadoutModifier,inspectSlef,parseSlef,stringifySlef,toSlef};//# sourceMappingURL=chunk-T4MKUKYS.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/ships/slef.ts"],"names":["normalizeKey","truncate","SYNTHETIC_HEADER","Object","freeze","appName","appVersion","isRecord","value","Array","isArray","isOptionalString","isOptionalFiniteNumber","Number","isFinite","isOptionalNumberInRange","minimum","maximum","POSITIVE_INFINITY","isOptionalIntegerInRange","isInteger","CONSTRAINT_MESSAGES","objectRequired","stringRequired","booleanRequired","arrayRequired","finiteNumberRequired","nonNegativeNumberRequired","priorityRange","engineeringLevelRange","unitInterval","binaryInteger","versionRequired","loadoutEventRequired","validLoadoutRequired","invalid","code","path","constraint","reason","diagnoseEngineering","BlueprintName","Level","Quality","ExperimentalEffect","ExperimentalEffect_Localised","Modifiers","index","length","modifier","modifierPath","Label","Value","OriginalValue","ValueStr","LessIsGood","diagnoseModule","Slot","Item","On","Priority","Health","Engineering","diagnoseHeader","appURL","appCustomProperties","diagnoseLoadout","Ship","Modules","event","field","FuelCapacity","moduleDiagnostic","isSlefHeader","isLoadout","duplicateSlot","loadout","seen","Set","moduleIndex","module","slot","toLowerCase","has","add","inspectSlef","input","root","JSON","parse","rawEntries","entries","diagnostics","forEach","raw","entryPath","header","data","envelope","detail","push","message","params","duplicate","map","diagnostic","parseSlef","inspected","TypeError","toSlef","events","stringifySlef","slef","options","stringify","indent","getLoadoutModifier","label","wanted","mod","find","m"],"mappings":"O,iFA8MA,IAAME,iBAA+BC,OAAOC,OAAO,CAAEC,QAAS,GAAIC,WAAY,KAE9E,IAAMC,SAAYC,cACPA,QAAU,UAAYA,QAAU,OAASC,MAAMC,QAAQF,OAElE,IAAMG,iBAAoBH,OACtBA,aAAU,UAAoBA,QAAU,SAE5C,IAAMI,uBAA0BJ,OAC5BA,aAAU,UAAqBA,QAAU,UAAYK,OAAOC,SAASN,OAEzE,IAAMO,wBAA0B,CAC5BP,MACAQ,QACAC,QAAUJ,OAAOK,oBAEjBV,aAAU,UACFA,QAAU,UAAYK,OAAOC,SAASN,QAAUA,OAASQ,SAAWR,OAASS,QAEzF,IAAME,yBAA2B,CAC7BX,MACAQ,QACAC,WAEA,GAAIT,aAAU,EAAW,OAAO,KAChC,cACWA,QAAU,UAAYK,OAAOO,UAAUZ,QAAUA,OAASQ,SAAWR,OAASS,SAW7F,IAAMI,oBAA6E,CAC/EC,eAAgB,oBAChBC,eAAgB,mBAChBC,gBAAiB,oBACjBC,cAAe,mBACfC,qBAAsB,0BACtBC,0BAA2B,gCAC3BC,cAAe,iCACfC,sBAAuB,iCACvBC,aAAc,+BACdC,cAAe,iBACfC,gBAAiB,oCACjBC,qBAAsB,oBACtBC,qBAAsB,gCAG1B,IAAMC,QAAU,CACZC,KACAC,KACAC,cAAA,CACsBF,UAAMC,UAAMC,sBAAYC,OAAQlB,oBAAoBiB,cAE9E,SAASE,oBAAoBhC,MAAgB6B,MACzC,IAAK9B,SAASC,OAAK,OAAU2B,QAAQ,qBAAsBE,KAAM,kBACjE,UAAW7B,MAAMiC,gBAAkB,SAC/B,OAAON,QAAQ,qBAAsB,GAAGE,qBAAsB,kBAClE,IAAKlB,yBAAyBX,MAAMkC,MAAO,EAAG,IAAMlC,MAAMkC,aAAU,EAChE,OAAOP,QAAQ,qBAAsB,GAAGE,aAAc,yBAC1D,IAAKtB,wBAAwBP,MAAMmC,QAAS,EAAG,IAAMnC,MAAMmC,eAAY,EACnE,OAAOR,QAAQ,qBAAsB,GAAGE,eAAgB,gBAC5D,IAAK1B,iBAAiBH,MAAMoC,oBACxB,OAAOT,QAAQ,qBAAsB,GAAGE,0BAA2B,kBACvE,IAAK1B,iBAAiBH,MAAMqC,8BACxB,OAAOV,QACH,qBACA,GAAGE,oCACH,kBAER,GAAI7B,MAAMsC,iBAAc,EAAW,CAC/B,IAAKrC,MAAMC,QAAQF,MAAMsC,WACrB,OAAOX,QAAQ,qBAAsB,GAAGE,iBAAkB,iBAC9D,IAAA,IAASU,MAAQ,EAAGA,MAAQvC,MAAMsC,UAAUE,OAAQD,OAAS,EAAG,CAC5D,MAAME,SAAWzC,MAAMsC,UAAUC,OACjC,MAAMG,aAAe,GAAGb,kBAAkBU,SAC1C,IAAKxC,SAAS0C,UACV,OAAOd,QAAQ,qBAAsBe,aAAc,kBACvD,UAAWD,SAASE,QAAU,SAC1B,OAAOhB,QAAQ,qBAAsB,GAAGe,qBAAsB,kBAClE,IAAKtC,uBAAuBqC,SAASG,OACjC,OAAOjB,QACH,qBACA,GAAGe,qBACH,wBAER,IAAKtC,uBAAuBqC,SAASI,eACjC,OAAOlB,QACH,qBACA,GAAGe,6BACH,wBAER,IAAKvC,iBAAiBsC,SAASK,UAC3B,OAAOnB,QAAQ,qBAAsB,GAAGe,wBAAyB,kBACrE,IAAK/B,yBAAyB8B,SAASM,WAAY,EAAG,GAClD,OAAOpB,QAAQ,qBAAsB,GAAGe,0BAA2B,gBAC3E,CACJ,CACA,OAAO,IACX,CAEA,SAASM,eAAehD,MAAgB6B,MACpC,IAAK9B,SAASC,OAAK,OAAU2B,QAAQ,gBAAiBE,KAAM,kBAC5D,UAAW7B,MAAMiD,OAAS,SACtB,OAAOtB,QAAQ,gBAAiB,GAAGE,YAAa,kBACpD,UAAW7B,MAAMkD,OAAS,SACtB,OAAOvB,QAAQ,gBAAiB,GAAGE,YAAa,kBACpD,GAAI7B,MAAMmD,UAAO,UAAoBnD,MAAMmD,KAAO,UAC9C,OAAOxB,QAAQ,gBAAiB,GAAGE,UAAW,mBAClD,IAAKlB,yBAAyBX,MAAMoD,SAAU,EAAG,GAC7C,OAAOzB,QAAQ,gBAAiB,GAAGE,gBAAiB,iBACxD,IAAKtB,wBAAwBP,MAAMqD,OAAQ,EAAG,GAC1C,OAAO1B,QAAQ,gBAAiB,GAAGE,cAAe,gBACtD,IAAKtB,wBAAwBP,MAAM4C,MAAO,GACtC,OAAOjB,QAAQ,gBAAiB,GAAGE,aAAc,6BACrD,GAAI7B,MAAMsD,mBAAgB,EACtB,OAAOtB,oBAAoBhC,MAAMsD,YAAa,GAAGzB,oBACrD,OAAO,IACX,CAEA,SAAS0B,eAAevD,MAAgB6B,MACpC,IAAK9B,SAASC,OAAK,OAAU2B,QAAQ,gBAAiBE,KAAM,kBAC5D,UAAW7B,MAAMH,UAAY,SACzB,OAAO8B,QAAQ,gBAAiB,GAAGE,eAAgB,kBACvD,UACW7B,MAAMF,aAAe,mBACnBE,MAAMF,aAAe,UAAYO,OAAOC,SAASN,MAAMF,aAEhE,OAAO6B,QAAQ,gBAAiB,GAAGE,kBAAmB,mBAC1D,IAAK1B,iBAAiBH,MAAMwD,QACxB,OAAO7B,QAAQ,gBAAiB,GAAGE,cAAe,kBACtD,GAAI7B,MAAMyD,2BAAwB,IAAc1D,SAASC,MAAMyD,qBAC3D,OAAO9B,QAAQ,gBAAiB,GAAGE,2BAA4B,kBACnE,OAAO,IACX,CAEA,SAAS6B,gBAAgB1D,MAAgB6B,MACrC,IAAK9B,SAASC,OAAK,OAAU2B,QAAQ,iBAAkBE,KAAM,kBAC7D,UAAW7B,MAAM2D,OAAS,SACtB,OAAOhC,QAAQ,iBAAkB,GAAGE,YAAa,kBACrD,IAAK5B,MAAMC,QAAQF,MAAM4D,SACrB,OAAOjC,QAAQ,iBAAkB,GAAGE,eAAgB,iBACxD,GAAI7B,MAAM6D,aAAU,GAAa7D,MAAM6D,QAAU,UAC7C,OAAOlC,QAAQ,iBAAkB,GAAGE,aAAc,wBACtD,IAAA,MAAWiC,QAAS,CAAC,WAAY,aAAuB,CACpD,IAAK3D,iBAAiBH,MAAM8D,QACxB,OAAOnC,QAAQ,iBAAkB,GAAGE,QAAQiC,QAAS,iBAC7D,CACA,IAAA,MAAWA,QAAS,CAChB,YACA,eACA,cACA,gBACA,eACA,SACQ,CACR,IAAKvD,wBAAwBP,MAAM8D,OAAQ,GACvC,OAAOnC,QAAQ,iBAAkB,GAAGE,QAAQiC,QAAS,4BAC7D,CACA,GAAI9D,MAAM+D,oBAAiB,EAAW,CAClC,IAAKhE,SAASC,MAAM+D,cAChB,OAAOpC,QAAQ,iBAAkB,GAAGE,oBAAqB,kBAC7D,IAAA,MAAWiC,QAAS,CAAC,OAAQ,WAAqB,CAC9C,IACKvD,wBAAwBP,MAAM+D,aAAaD,OAAQ,IACpD9D,MAAM+D,aAAaD,cAAW,EAE9B,OAAOnC,QACH,iBACA,GAAGE,qBAAqBiC,QACxB,4BAEZ,CACJ,CACA,IAAA,IAASvB,MAAQ,EAAGA,MAAQvC,MAAM4D,QAAQpB,OAAQD,OAAS,EAAG,CAC1D,MAAMyB,iBAAmBhB,eAAehD,MAAM4D,QAAQrB,OAAQ,GAAGV,gBAAgBU,UACjF,GAAIyB,mBAAqB,KAAM,OAAOA,gBAC1C,CACA,OAAO,IACX,CAGA,SAASC,aAAajE,OAClB,OAAOuD,eAAevD,MAAO,YAAc,IAC/C,CAGA,SAASkE,UAAUlE,OACf,OAAO0D,gBAAgB1D,MAAO,aAAe,IACjD,CAEA,SAASmE,cAAcC,SACnB,MAAMC,oBAAA,IAAWC,IACjB,IAAA,IAASC,YAAc,EAAGA,YAAcH,QAAQR,QAAQpB,OAAQ+B,aAAe,EAAG,CAC9E,MAAMC,OAASJ,QAAQR,QAAQW,aAC/B,MAAME,KAAOD,OAAOvB,KAAKyB,cACzB,GAAIL,KAAKM,IAAIF,MAAI,MAAU,CAAEA,KAAMD,OAAOvB,KAAMsB,yBAChDF,KAAKO,IAAIH,KACb,CACA,OAAO,IACX,CA6DO,SAASI,YAAYC,OACxB,MAAMC,YAAuBD,QAAU,SAAWE,KAAKC,MAAMH,OAASA,MACtE,MAAMI,WAAwBjF,MAAMC,QAAQ6E,MAAQA,KAAO,CAACA,MAC5D,MAAMI,QAAuB,GAC7B,MAAMC,YAAgC,GAEtCF,WAAWG,QAAQ,CAACC,IAAK/C,SACrB,MAAMgD,UAAY,WAAWhD,SAC7B,IAAIiD,OAA4B,KAChC,IAAIpB,QAA+B,KACnC,GAAIF,UAAUoB,KAAM,CAChBE,OAAS9F,iBACT0E,QAAUkB,GACd,MAAA,GAAWvF,SAASuF,MAAQpB,UAAUoB,IAAIG,MAAO,CAC7C,GAAIxB,aAAaqB,IAAIE,QAAS,CAC1BA,OAASF,IAAIE,OACbpB,QAAUkB,IAAIG,IAClB,CACJ,CAEA,GAAID,SAAW,MAAQpB,UAAY,KAAM,CACrC,MAAMsB,SAAW3F,SAASuF,OAAS,WAAYA,KAAO,SAAUA,KAChE,MAAMK,OAASD,SACRnC,eAAexD,SAASuF,KAAOA,IAAIE,OAAS,KAAM,GAAGD,qBACtD7B,gBAAgB3D,SAASuF,KAAOA,IAAIG,KAAO,KAAM,GAAGF,kBACpD7B,gBAAgB4B,IAAKC,WAC3BH,YAAYQ,KAAK,CACbrD,YACAX,KAAM+D,QAAQ/D,MAAQ,iBACtBC,KAAM8D,QAAQ9D,MAAQ0D,UACtBzD,WAAY6D,QAAQ7D,YAAc,uBAClC+D,QAAS,GAAGF,QAAQ9D,MAAQ0D,aAAaI,QAAQ5D,QAAU,iCAC3D+D,OAAQ,CACJjE,KAAM8D,QAAQ9D,MAAQ0D,UACtBzD,WAAY6D,QAAQ7D,YAAc,0BAG1C,MACJ,CACA,MAAMiE,UAAY5B,cAAcC,SAChC,GAAI2B,YAAc,KAAM,CACpBX,YAAYQ,KAAK,CACbrD,YACAX,KAAM,gBACNC,KAAM,GAAG0D,YAAYrB,UAAUoB,KAAO,GAAK,mBAAmBS,UAAUxB,oBACxEzC,WAAY,aACZ+D,QAAS,SAAStD,kCAAkC9C,SAASsG,UAAUtB,SACvEqB,OAAQ,CAAEvD,YAAOkC,KAAMsB,UAAUtB,QAErC,MACJ,CACAU,QAAQS,KAAK,CAAEJ,cAAQC,KAAMrB,YAGjC,OAAOzE,OAAOC,OAAO,CACjBuF,QAASxF,OAAOC,OAAOuF,SACvBC,YAAazF,OAAOC,OAChBwF,YAAYY,IAAKC,YACbtG,OAAOC,OAAO,IACPqG,cACCA,WAAWH,OACT,CAAEA,OAAQnG,OAAOC,OAAO,IAAKqG,WAAWH,UACxC,CAAA,OAK1B,CA6BO,SAASI,UAAUpB,OACtB,MAAMqB,UAAYtB,YAAYC,OAC9B,GAAIqB,UAAUf,YAAY5C,OAAS,EAAG,CAClC,MAAM,IAAI4D,UAAU,cAAcD,UAAUf,YAAY,GAAIS,UAChE,CACA,GAAIM,UAAUhB,QAAQ3C,SAAW,EAAG,CAChC,MAAM,IAAI4D,UAAU,oCACxB,CACA,MAAO,IAAID,UAAUhB,QACzB,CAiCO,SAASkB,OAAOZ,KAA8CD,QACjE,IAAKvB,aAAauB,QAAS,CACvB,MAAM,IAAIY,UAAU,8DACxB,CAEA,MAAME,OAASrG,MAAMC,QAAQuF,MAAQA,KAAO,CAACA,MAC7C,GAAIa,OAAO9D,SAAW,EAAG,CAGrB,MAAM,IAAI4D,UAAU,qCACxB,CACA,OAAOE,OAAON,IAAI,CAACnC,MAAOtB,SACtB,IAAK2B,UAAUL,OAAQ,CACnB,MAAM,IAAIuC,UACN,iBAAiB7D,kEAEzB,CACA,MAAMwD,UAAY5B,cAAcN,OAChC,GAAIkC,YAAc,KAAM,CACpB,MAAM,IAAIK,UACN,iBAAiB7D,kCAAkC9C,SAASsG,UAAUtB,SAE9E,CACA,MAAO,CAAEe,cAAQC,KAAM5B,QAE/B,CAkBO,SAAS0C,cAAcC,KAAYC,QAAgC,CAAA,GACtE,OAAOzB,KAAK0B,UAAUF,KAAM,KAAMC,QAAQE,QAAU,EACxD,CAwBO,SAASC,mBAAmBpC,OAAuBqC,OACtD,MAAMC,OAAStH,aAAaqH,MAAO,6BACnC,MAAME,IAAMvC,OAAOlB,aAAahB,WAAW0E,KAAMC,GAAMA,EAAEtE,MAAM+B,gBAAkBoC,QACjF,cAAcC,KAAKnE,QAAU,SAAWmE,IAAInE,MAAQ,IACxD,QAAAgE,mBAAA/B,YAAAqB,UAAAK,cAAAF"}
1
+ {"version":3,"sources":["../src/ships/slef.ts"],"names":["normalizeKey","truncate","SYNTHETIC_HEADER","Object","freeze","appName","appVersion","isRecord","value","Array","isArray","isOptionalString","isOptionalFiniteNumber","Number","isFinite","isOptionalNumberInRange","minimum","maximum","POSITIVE_INFINITY","isOptionalIntegerInRange","isInteger","CONSTRAINT_MESSAGES","objectRequired","stringRequired","booleanRequired","arrayRequired","finiteNumberRequired","nonNegativeNumberRequired","priorityRange","engineeringLevelRange","unitInterval","binaryInteger","versionRequired","loadoutEventRequired","validLoadoutRequired","invalid","code","path","constraint","reason","diagnoseEngineering","BlueprintName","Level","Quality","ExperimentalEffect","ExperimentalEffect_Localised","Modifiers","index","length","modifier","modifierPath","Label","Value","OriginalValue","ValueStr","LessIsGood","diagnoseModule","Slot","Item","On","Priority","Health","Engineering","diagnoseHeader","appURL","appCustomProperties","diagnoseLoadout","Ship","Modules","event","field","FuelCapacity","moduleDiagnostic","isSlefHeader","isLoadout","duplicateSlot","loadout","seen","Set","moduleIndex","module","slot","toLowerCase","has","add","inspectSlef","input","root","JSON","parse","rawEntries","entries","diagnostics","forEach","raw","entryPath","header","data","envelope","detail","push","message","params","duplicate","map","diagnostic","parseSlef","inspected","TypeError","toSlef","events","stringifySlef","slef","options","stringify","indent","getLoadoutModifier","label","wanted","mod","find","m"],"mappings":"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"}
@@ -1 +1 @@
1
- import{resolveMobilityCurves}from"./chunk-V3AEUBHV.js";import{requirePips}from"./chunk-QJ7GB6FF.js";function mobilityCapacitorMetrics(input){const scope="mobilityCapacitorMetrics";const enginesPips=input.enginesPips??4;requirePips(scope,"enginesPips",enginesPips);const curves=resolveMobilityCurves(scope,input);if(!curves)return null;const pipMultiplier=enginesPips/4;const atPips=(maximum,minimum)=>minimum+(maximum-minimum)*pipMultiplier;return Object.freeze({enginesPips:enginesPips,speed:atPips(input.maximumSpeed,input.minimumSpeed)*curves.massCurveMultiplier,pitch:atPips(input.pitch,input.minPitch)*curves.rotationMassCurveMultiplier,roll:atPips(input.roll,input.minRoll)*curves.rotationMassCurveMultiplier,yaw:atPips(input.yaw,input.minYaw)*curves.rotationMassCurveMultiplier})}export{mobilityCapacitorMetrics};//# sourceMappingURL=chunk-XUHAPOM6.js.map
1
+ import{resolveMobilityCurves}from"./chunk-6WTUY6ZX.js";import{requirePips}from"./chunk-65FZECUX.js";function mobilityCapacitorMetrics(input){const scope="mobilityCapacitorMetrics";const enginesPips=input.enginesPips??4;requirePips(scope,"enginesPips",enginesPips);const curves=resolveMobilityCurves(scope,input);if(!curves)return null;const pipMultiplier=enginesPips/4;const atPips=(maximum,minimum)=>minimum+(maximum-minimum)*pipMultiplier;return Object.freeze({enginesPips:enginesPips,speed:atPips(input.maximumSpeed,input.minimumSpeed)*curves.massCurveMultiplier,pitch:atPips(input.pitch,input.minPitch)*curves.rotationMassCurveMultiplier,roll:atPips(input.roll,input.minRoll)*curves.rotationMassCurveMultiplier,yaw:atPips(input.yaw,input.minYaw)*curves.rotationMassCurveMultiplier})}export{mobilityCapacitorMetrics};//# sourceMappingURL=chunk-VEEBJFJ7.js.map
@@ -1 +1 @@
1
- function buildCommodityCatalogue(records,rare){return Object.freeze(records.map(record=>Object.freeze({symbol:record.symbol,name:record.name,category:record.category,rare:rare})))}export{buildCommodityCatalogue};//# sourceMappingURL=chunk-L747RVPO.js.map
1
+ function buildCommodityCatalogue(records,rare){return Object.freeze(records.map(record=>Object.freeze({symbol:record.symbol,name:record.name,category:record.category,rare:rare})))}export{buildCommodityCatalogue};//# sourceMappingURL=chunk-VQJXRPYI.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/commodities/internal/commodity-catalogue.ts"],"names":["buildCommodityCatalogue","records","rare","Object","freeze","map","record","symbol","name","category"],"mappings":"AAYO,SAASA,wBACZC,QACAC,MAEA,OAAOC,OAAOC,OACVH,QAAQI,IAAKC,QACTH,OAAOC,OAAO,CACVG,OAAQD,OAAOC,OACfC,KAAMF,OAAOE,KACbC,SAAUH,OAAOG,SACjBP,aAIhB,QAAAF"}
1
+ {"version":3,"sources":["../src/commodities/internal/commodity-catalogue.ts"],"names":["buildCommodityCatalogue","records","rare","Object","freeze","map","record","symbol","name","category"],"mappings":"AAQO,SAASA,wBACZC,QACAC,MAKA,OAAOC,OAAOC,OACVH,QAAQI,IAAKC,QACTH,OAAOC,OAAO,CACVG,OAAQD,OAAOC,OACfC,KAAMF,OAAOE,KACbC,SAAUH,OAAOG,SACjBP,aAIhB,QAAAF"}
@@ -0,0 +1 @@
1
+ import{requireFiniteNonNegative}from"./chunk-65FZECUX.js";var MAX_TOTAL_RANGE_JUMPS=1e5;function requirePositive(scope,name,value){if(!Number.isFinite(value)||value<=0){throw new RangeError(`${scope}: fsd.${name} must be a finite positive number`)}}function validateFsd(scope,fsd){requirePositive(scope,"optMass",fsd.optMass);requireFiniteNonNegative(scope,"fsd.maxFuel",fsd.maxFuel);requirePositive(scope,"fuelMul",fsd.fuelMul);requirePositive(scope,"fuelPower",fsd.fuelPower);if(fsd.jumpBoost!==void 0){requireFiniteNonNegative(scope,"fsd.jumpBoost",fsd.jumpBoost)}}function frameShiftDriveMassFactorUnchecked(mass,fuel,fsd){return fsd.optMass/(mass+fuel)}function singleJumpRangeUnchecked(mass,fuel,fsd,scope){const burn=Math.min(fuel,fsd.maxFuel);if(burn<=0||mass+fuel<=0)return 0;const base=Math.pow(burn/fsd.fuelMul,1/fsd.fuelPower)*frameShiftDriveMassFactorUnchecked(mass,fuel,fsd);const range=base+(fsd.jumpBoost??0);if(!Number.isFinite(range)){throw new RangeError(`${scope}: parameters produce a non-finite range`)}return range}function frameShiftDriveMassFactor(mass,fuel,fsd){const scope="frameShiftDriveMassFactor";requireFiniteNonNegative(scope,"mass",mass);requireFiniteNonNegative(scope,"fuel",fuel);requirePositive(scope,"optMass",fsd.optMass);if(mass+fuel<=0){throw new RangeError(`${scope}: mass plus fuel must be positive`)}return frameShiftDriveMassFactorUnchecked(mass,fuel,fsd)}function singleJumpRange(mass,fuel,fsd){const scope="singleJumpRange";requireFiniteNonNegative(scope,"mass",mass);requireFiniteNonNegative(scope,"fuel",fuel);validateFsd(scope,fsd);return singleJumpRangeUnchecked(mass,fuel,fsd,scope)}function fuelPerJump(distance,mass,fuel,fsd){const scope="fuelPerJump";requireFiniteNonNegative(scope,"distance",distance);requireFiniteNonNegative(scope,"mass",mass);requireFiniteNonNegative(scope,"fuel",fuel);validateFsd(scope,fsd);if(distance<=0)return 0;const burn=Math.min(fuel,fsd.maxFuel);const maxDistance=singleJumpRangeUnchecked(mass,fuel,fsd,scope);if(maxDistance<=0)return 0;const cost=Math.pow(distance/maxDistance,fsd.fuelPower)*burn;return Math.min(cost,burn)}function totalRange(mass,fuel,fsd){const scope="totalRange";requireFiniteNonNegative(scope,"mass",mass);requireFiniteNonNegative(scope,"fuel",fuel);validateFsd(scope,fsd);if(fsd.maxFuel<=0)return Object.freeze({range:0,jumps:0});const jumps=fuel>0?Math.max(1,Math.ceil(fuel/fsd.maxFuel)):0;if(!Number.isFinite(jumps)||jumps>MAX_TOTAL_RANGE_JUMPS){throw new RangeError(`${scope}: fuel and fsd.maxFuel require more than ${MAX_TOTAL_RANGE_JUMPS} jumps`)}let range=0;let remaining=fuel;for(let i=0;i<jumps;i++){range+=singleJumpRangeUnchecked(mass,remaining,fsd,scope);if(!Number.isFinite(range)){throw new RangeError(`${scope}: parameters produce a non-finite total range`)}remaining=Math.max(0,remaining-fsd.maxFuel)}return Object.freeze({range:range,jumps:jumps})}export{frameShiftDriveMassFactor,fuelPerJump,singleJumpRange,totalRange};//# sourceMappingURL=chunk-VTMCSCXV.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/ships/jump-range.ts"],"names":["requireFiniteNonNegative","MAX_TOTAL_RANGE_JUMPS","requirePositive","scope","name","value","Number","isFinite","RangeError","validateFsd","fsd","optMass","maxFuel","fuelMul","fuelPower","jumpBoost","frameShiftDriveMassFactorUnchecked","mass","fuel","singleJumpRangeUnchecked","burn","Math","min","base","pow","range","frameShiftDriveMassFactor","singleJumpRange","fuelPerJump","distance","maxDistance","cost","totalRange","Object","freeze","jumps","max","ceil","remaining","i"],"mappings":"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"}
@@ -0,0 +1 @@
1
+ import{capacitorRechargeAtPips}from"./chunk-JOTAOI5T.js";import{systemsResistance,mapDamageTypes,effectiveHitPoints}from"./chunk-F44QX47A.js";import{requirePips,requireFiniteNonNegative}from"./chunk-65FZECUX.js";var DAMAGE_TYPES=["kinetic","thermal","explosive","caustic"];function shieldCapacitorMetrics(input){const scope="shieldCapacitorMetrics";const systemsPips=input.systemsPips??4;requirePips(scope,"systemsPips",systemsPips);for(const field of["strength","systemsCapacity","systemsRecharge"]){requireFiniteNonNegative(scope,field,input[field])}const resistances=input.resistances;if(typeof resistances!=="object"||resistances===null){throw new TypeError(`${scope}: resistances must carry the four damage types`)}for(const type of DAMAGE_TYPES){if(!Number.isFinite(input.resistances[type])){throw new RangeError(`${scope}: resistances.${type} must be a finite number`)}}const sysResistance=systemsResistance(systemsPips);const effectiveResistances=Object.freeze(mapDamageTypes(type=>1-(1-input.resistances[type])*(1-sysResistance)));return Object.freeze({systemsPips:systemsPips,capacity:input.systemsCapacity,rechargeRate:capacitorRechargeAtPips(input.systemsRecharge,systemsPips),systemsResistance:sysResistance,effectiveResistances:effectiveResistances,effectiveHitPoints:Object.freeze(effectiveHitPoints(input.strength,effectiveResistances))})}export{shieldCapacitorMetrics};//# sourceMappingURL=chunk-XQJERZUS.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/ships/shield-capacitor.ts"],"names":["capacitorRechargeAtPips","systemsResistance","mapDamageTypes","effectiveHitPoints","requirePips","requireFiniteNonNegative","DAMAGE_TYPES","shieldCapacitorMetrics","input","scope","systemsPips","field","resistances","TypeError","type","Number","isFinite","RangeError","sysResistance","effectiveResistances","Object","freeze","capacity","systemsCapacity","rechargeRate","systemsRecharge","strength"],"mappings":"O,6MAwGA,IAAMM,aAAsC,CAAC,UAAW,UAAW,YAAa,WAuCzE,SAASC,uBAAuBC,OACnC,MAAMC,MAAQ,yBACd,MAAMC,YAAcF,MAAME,aAAe,EAGzCN,YAAYK,MAAO,cAAeC,aAClC,IAAA,MAAWC,QAAS,CAAC,WAAY,kBAAmB,mBAA6B,CAC7EN,yBAAyBI,MAAOE,MAAOH,MAAMG,OACjD,CACA,MAAMC,YAAuBJ,MAAMI,YACnC,UAAWA,cAAgB,UAAYA,cAAgB,KAAM,CACzD,MAAM,IAAIC,UAAU,GAAGJ,sDAC3B,CACA,IAAA,MAAWK,QAAQR,aAAc,CAC7B,IAAKS,OAAOC,SAASR,MAAMI,YAAYE,OAAQ,CAC3C,MAAM,IAAIG,WAAW,GAAGR,sBAAsBK,+BAClD,CACJ,CAEA,MAAMI,cAAgBjB,kBAAkBS,aAExC,MAAMS,qBAA0CC,OAAOC,OACnDnB,eAAgBY,MAAS,GAAK,EAAIN,MAAMI,YAAYE,QAAU,EAAII,iBAEtE,OAAOE,OAAOC,OAAO,CACjBX,wBACAY,SAAUd,MAAMe,gBAChBC,aAAcxB,wBAAwBQ,MAAMiB,gBAAiBf,aAC7DT,kBAAmBiB,cACnBC,0CACAhB,mBAAoBiB,OAAOC,OAAOlB,mBAAmBK,MAAMkB,SAAUP,wBAE7E,QAAAZ"}
@@ -1 +1 @@
1
- export{ALL_COMMODITIES}from"../chunk-JQG4C67D.js"; //# sourceMappingURL=commodities-all.js.map
1
+ export{ALL_COMMODITIES}from"../chunk-77TT4K53.js"; //# sourceMappingURL=commodities-all.js.map
@@ -1 +1 @@
1
- export{RARE_COMMODITIES}from"../chunk-EYGVDJ2I.js"; //# sourceMappingURL=commodities-rare.js.map
1
+ export{RARE_COMMODITIES}from"../chunk-GMTAFUAG.js"; //# sourceMappingURL=commodities-rare.js.map
@@ -1 +1 @@
1
- export{COMMODITIES}from"../chunk-7EE5VIHR.js"; //# sourceMappingURL=commodities-standard.js.map
1
+ export{COMMODITIES}from"../chunk-6HMIF2RJ.js"; //# sourceMappingURL=commodities-standard.js.map
@@ -1 +1 @@
1
- export{commoditiesInCategory,getCommodityByName,getCommodityBySymbol}from"../chunk-ZCEAPJDH.js"; //# sourceMappingURL=commodities.js.map
1
+ export{commoditiesInCategory,getCommodityByName,getCommodityBySymbol}from"../chunk-J7BM5NGK.js"; //# sourceMappingURL=commodities.js.map
@@ -1 +1 @@
1
- export{commoditiesInCategory,getCommodityByName,getCommodityBySymbol}from"../chunk-ZCEAPJDH.js";export{ALL_COMMODITIES}from"../chunk-JQG4C67D.js";export{RARE_COMMODITIES}from"../chunk-EYGVDJ2I.js";export{COMMODITIES}from"../chunk-7EE5VIHR.js"; //# sourceMappingURL=index.js.map
1
+ export{commoditiesInCategory,getCommodityByName,getCommodityBySymbol}from"../chunk-J7BM5NGK.js";export{ALL_COMMODITIES}from"../chunk-77TT4K53.js";export{RARE_COMMODITIES}from"../chunk-GMTAFUAG.js";export{COMMODITIES}from"../chunk-6HMIF2RJ.js"; //# sourceMappingURL=index.js.map
@@ -1 +1 @@
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
1
+ export{getMicroResourceByName,getMicroResourceBySymbol,microResourcesInCategory}from"../chunk-MRTTQYT5.js";export{MaterialGrade,MaterialLine,getMaterialByElementSymbol,getMaterialByName,getMaterialBySymbol,materialsByGrade,materialsInCategory,materialsInLine}from"../chunk-IWFQ4ZKF.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-JO52LYO3.js";export{ENCODED_MATERIALS}from"../chunk-AIEC3LBT.js";export{MANUFACTURED_MATERIALS}from"../chunk-ITKZKREP.js";export{RAW_MATERIALS}from"../chunk-Q6YDPREF.js"; //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- export{ALL_MATERIALS}from"../chunk-V4C6FIE2.js"; //# sourceMappingURL=materials-all.js.map
1
+ export{ALL_MATERIALS}from"../chunk-JO52LYO3.js"; //# sourceMappingURL=materials-all.js.map
@@ -1 +1 @@
1
- export{ENCODED_MATERIALS}from"../chunk-Q5XOGATC.js"; //# sourceMappingURL=materials-encoded.js.map
1
+ export{ENCODED_MATERIALS}from"../chunk-AIEC3LBT.js"; //# sourceMappingURL=materials-encoded.js.map
@@ -1 +1 @@
1
- export{MANUFACTURED_MATERIALS}from"../chunk-HKXXFIRI.js"; //# sourceMappingURL=materials-manufactured.js.map
1
+ export{MANUFACTURED_MATERIALS}from"../chunk-ITKZKREP.js"; //# sourceMappingURL=materials-manufactured.js.map
@@ -1 +1 @@
1
- export{RAW_MATERIALS}from"../chunk-SQS7672E.js"; //# sourceMappingURL=materials-raw.js.map
1
+ export{RAW_MATERIALS}from"../chunk-Q6YDPREF.js"; //# sourceMappingURL=materials-raw.js.map
@@ -1 +1 @@
1
- export{MaterialGrade,MaterialLine,getMaterialByElementSymbol,getMaterialByName,getMaterialBySymbol,materialsByGrade,materialsInCategory,materialsInLine}from"../chunk-OYR5HUQZ.js"; //# sourceMappingURL=materials.js.map
1
+ export{MaterialGrade,MaterialLine,getMaterialByElementSymbol,getMaterialByName,getMaterialBySymbol,materialsByGrade,materialsInCategory,materialsInLine}from"../chunk-IWFQ4ZKF.js"; //# sourceMappingURL=materials.js.map
@@ -1 +1 @@
1
- export{armourMetrics}from"../chunk-FYVPZBXN.js"; //# sourceMappingURL=armour.js.map
1
+ export{armourMetrics}from"../chunk-Q5ALV3DI.js"; //# sourceMappingURL=armour.js.map
@@ -1 +1 @@
1
- export{BuildMetrics}from"../chunk-PY5L6WC5.js"; //# sourceMappingURL=build-metrics.js.map
1
+ export{BuildMetrics}from"../chunk-6S36AVA4.js"; //# sourceMappingURL=build-metrics.js.map
@@ -1 +1 @@
1
- export{distributorMetrics}from"../chunk-YXPZ7QQB.js"; //# sourceMappingURL=distributor.js.map
1
+ export{distributorMetrics}from"../chunk-M2TCZKRT.js"; //# sourceMappingURL=distributor.js.map
@@ -1 +1 @@
1
- export{OVERHEAT_HEAT_LEVEL,effectiveWeaponThermalLoad,equilibriumHeatLevel,heatLevelAtTime,heatMetrics,secondsToHeatLevel}from"../chunk-Q2L75GSI.js";//# sourceMappingURL=heat.js.map
1
+ export{OVERHEAT_HEAT_LEVEL,effectiveWeaponThermalLoad,equilibriumHeatLevel,heatLevelAtTime,heatMetrics,secondsToHeatLevel}from"../chunk-6HA2YIKW.js"; //# sourceMappingURL=heat.js.map
@@ -158,7 +158,7 @@ export { FrameShiftDriveParams, TotalRangeDetails, frameShiftDriveMassFactor, fu
158
158
  export { ApplyBlueprintOptions, AvailableBlueprint, EngineeringNormalizationCode, EngineeringNormalizationResult, EngineeringNormalizationUnchanged, EngineeringNormalizationUnsupported, EngineeringNormalized, ExperimentalEffectMutationCode, ExperimentalEffectMutationResult, ExperimentalEffectUnchanged, ExperimentalEffectUnsupported, ExperimentalEffectUpdated, FittedModule, FixedMountRepairResult, ImmovableReason, LoadoutEditError, LoadoutEditErrorCode, LoadoutExportOptions, LoadoutImportOutcome, LoadoutSlot, ShipLoadout, SlefExportOptions } from './ship-loadout.js';
159
159
  export { BuildCost, BuildCredits, BuildMass, BuildMetrics, BuildWeaponMetrics, DistributorOptions, FittedWeaponMetrics, JumpOptions, JumpRangeSummary, MobilityCapacitorOptions, ShieldCapacitorOptions, ShieldRecoveryOptions, StandardLoad, StandardLoadInputs, WeaponsOptions } from './build-metrics.js';
160
160
  export { CalculationIssue, CalculationIssueReason, CalculationResult, FuelCapacity, LoadoutCalculationModule, calculateCargoCapacity, calculateFuelCapacity, calculateUnladenMass } from './loadout-calculations.js';
161
- export { LoadoutIssue, LoadoutIssueCode, LoadoutIssueParam, LoadoutIssueParams, LoadoutValidation, LoadoutValidationInput, ModuleFitConstraint, ValidationModule, validateLoadout } from './loadout-validation.js';
161
+ export { LoadoutIssue, LoadoutIssueCode, LoadoutIssueParam, LoadoutIssueParams, LoadoutMass, LoadoutValidation, LoadoutValidationInput, ModuleFitConstraint, ThrusterLoad, ValidationModule, validateLoadout } from './loadout-validation.js';
162
162
  export { SourceModuleValue, SourcePurchaseRecord, getSourceModuleValue, sourcePurchaseFromLoadout, sumSourceModuleValues } from './source-purchase.js';
163
163
  export { PowerBand, PowerBudget, PowerConsumer, PowerConsumerResult, powerBudget } from './power.js';
164
164
  export { DamageResistanceParams, DamageResistances, DamageType, DamageTypeValues, effectiveHitPoints, mapDamageTypes, stackArmourResistance, stackShieldResistance, systemsResistance } from './resistances.js';
@@ -1 +1 @@
1
- export{LoadoutEditError,ShipLoadout}from"../chunk-OYFMHDYT.js";export{getSourceModuleValue,sourcePurchaseFromLoadout,sumSourceModuleValues}from"../chunk-NIURLW2F.js";export{SHIPS,getShipByName,getShipBySymbol,getShipSlots}from"../chunk-6UNAD74Z.js";export{validateLoadout}from"../chunk-B4ZSTOM4.js";export{SHIP_MODULE_LIMITS,calculateModuleLimits}from"../chunk-KPETDYQX.js";export{hasFrameShiftDriveJumpStats,hasMassCurveStats,hasPowerDistributorStats,hasPowerGenerationStats,hasShieldRegenerationStats,hasWeaponDamageStats}from"../chunk-JTQVWIGL.js";export{OUTFITTING_FAMILIES}from"../chunk-M6G3UDTX.js"; export{SHIP_GUNSIGHTS,getShipGunsight,projectGunsight}from"../chunk-DBGXZF7O.js";export{BuildMetrics}from"../chunk-PY5L6WC5.js";export{weaponsCapacitorMetrics}from"../chunk-RRYBSAPX.js";export{shieldCapacitorMetrics}from"../chunk-6L56LWTT.js";export{cellBankSummary,shieldRecovery}from"../chunk-4KJ7CR74.js"; export{getLoadoutModifier,inspectSlef,parseSlef,stringifySlef,toSlef}from"../chunk-OVUHQEH5.js";export{getPreEngineeredJournalModifiers,getPreEngineeredModifiers,getPreEngineeredStats,identifyPreEngineeredVariant,unresolvedModifiers}from"../chunk-GZYPQIO2.js";export{armourPiercingFactor,combinedRateOfFire,damageFalloff,damagePerSecond,energyPerSecond,heatPerSecond,splitDamage,sumWeaponMetrics,sustainedDamagePerSecond,sustainedFireFactor,weaponMetrics}from"../chunk-7TQ2X6Q3.js";export{PRE_ENGINEERED_MODULES,getPreEngineeredVariants,isPreEngineered}from"../chunk-PL75RTA2.js";export{shieldMassCurveMultiplier,shieldMetrics,shieldStrength}from"../chunk-QTAMQ6ME.js";export{getBulkheadsForShip,getModuleBySymbol,getModulesByName}from"../chunk-PA5EITW5.js"; export{powerBudget}from"../chunk-D6YEHR5S.js";export{frameShiftDriveMassFactor,fuelPerJump,singleJumpRange,totalRange}from"../chunk-6O4NRRSB.js";export{calculateCargoCapacity,calculateFuelCapacity,calculateUnladenMass}from"../chunk-DCB4COCL.js";export{mobilityCapacitorMetrics}from"../chunk-XUHAPOM6.js";export{mobilityMetrics,thrusterMassCurveMultiplier}from"../chunk-Y6KJJMIM.js"; export{distributorMetrics}from"../chunk-YXPZ7QQB.js"; export{EXPERIMENTAL_EFFECTS,getExperimentalEffect}from"../chunk-77I24V6B.js";export{OVERHEAT_HEAT_LEVEL,effectiveWeaponThermalLoad,equilibriumHeatLevel,heatLevelAtTime,heatMetrics,secondsToHeatLevel}from"../chunk-Q2L75GSI.js";export{ammunitionCapacity}from"../chunk-AA3K5XUE.js";export{armourMetrics}from"../chunk-FYVPZBXN.js";export{effectiveHitPoints,mapDamageTypes,stackArmourResistance,stackShieldResistance,systemsResistance}from"../chunk-JGOAQLYW.js"; export{computeModifiers,sumMaterials}from"../chunk-CJQ37JII.js";export{resolveBlueprintForModule}from"../chunk-OLKNYGGT.js";export{ENGINEERING_OPTION_GROUPS,getBlueprintsForModule,getEngineeringGroup,getExperimentalsForBlueprint,getExperimentalsForModule}from"../chunk-GLWPSVFV.js";export{BLUEPRINTS,getBlueprint,getBlueprintGrade}from"../chunk-AYAKU4YA.js"; export{SLOT_RESTRICTION_LABELS,enumerateSlots,parseSlotName}from"../chunk-RAO35XDF.js"; //# sourceMappingURL=index.js.map
1
+ export{LoadoutEditError,ShipLoadout}from"../chunk-SG6YLUQ4.js";export{validateLoadout}from"../chunk-OJC6AUL7.js";export{SHIP_MODULE_LIMITS,calculateModuleLimits}from"../chunk-KPETDYQX.js";export{hasFrameShiftDriveJumpStats,hasMassCurveStats,hasPowerDistributorStats,hasPowerGenerationStats,hasShieldRegenerationStats,hasWeaponDamageStats}from"../chunk-JTQVWIGL.js";export{OUTFITTING_FAMILIES}from"../chunk-M6G3UDTX.js";export{SHIP_GUNSIGHTS,getShipGunsight,projectGunsight}from"../chunk-DBGXZF7O.js";export{BuildMetrics}from"../chunk-6S36AVA4.js";export{weaponsCapacitorMetrics}from"../chunk-M4FZRDAH.js";export{shieldCapacitorMetrics}from"../chunk-XQJERZUS.js";export{cellBankSummary,shieldRecovery}from"../chunk-JMAXSXXQ.js"; export{getLoadoutModifier,inspectSlef,parseSlef,stringifySlef,toSlef}from"../chunk-T4MKUKYS.js";export{getSourceModuleValue,sourcePurchaseFromLoadout,sumSourceModuleValues}from"../chunk-NIURLW2F.js";export{getPreEngineeredJournalModifiers,getPreEngineeredModifiers,getPreEngineeredStats,identifyPreEngineeredVariant,unresolvedModifiers}from"../chunk-JET673E5.js";export{armourPiercingFactor,combinedRateOfFire,damageFalloff,damagePerSecond,energyPerSecond,heatPerSecond,splitDamage,sumWeaponMetrics,sustainedDamagePerSecond,sustainedFireFactor,weaponMetrics}from"../chunk-37JIMWLK.js";export{PRE_ENGINEERED_MODULES,getPreEngineeredVariants,isPreEngineered}from"../chunk-PL75RTA2.js";export{shieldMassCurveMultiplier,shieldMetrics,shieldStrength}from"../chunk-5VWACBTN.js";export{SHIPS,getShipByName,getShipBySymbol,getShipSlots}from"../chunk-6UNAD74Z.js";export{getBulkheadsForShip,getModuleBySymbol,getModulesByName}from"../chunk-HUYYGTRM.js"; export{powerBudget}from"../chunk-GGQMIQPC.js";export{frameShiftDriveMassFactor,fuelPerJump,singleJumpRange,totalRange}from"../chunk-VTMCSCXV.js";export{calculateCargoCapacity,calculateFuelCapacity,calculateUnladenMass}from"../chunk-DCB4COCL.js";export{mobilityCapacitorMetrics}from"../chunk-VEEBJFJ7.js";export{mobilityMetrics,thrusterMassCurveMultiplier}from"../chunk-A4QKXXZD.js"; export{distributorMetrics}from"../chunk-M2TCZKRT.js"; export{EXPERIMENTAL_EFFECTS,getExperimentalEffect}from"../chunk-77I24V6B.js";export{OVERHEAT_HEAT_LEVEL,effectiveWeaponThermalLoad,equilibriumHeatLevel,heatLevelAtTime,heatMetrics,secondsToHeatLevel}from"../chunk-6HA2YIKW.js";export{ammunitionCapacity}from"../chunk-AA3K5XUE.js";export{armourMetrics}from"../chunk-Q5ALV3DI.js";export{effectiveHitPoints,mapDamageTypes,stackArmourResistance,stackShieldResistance,systemsResistance}from"../chunk-F44QX47A.js"; export{computeModifiers,sumMaterials}from"../chunk-CJQ37JII.js";export{resolveBlueprintForModule}from"../chunk-OLKNYGGT.js";export{ENGINEERING_OPTION_GROUPS,getBlueprintsForModule,getEngineeringGroup,getExperimentalsForBlueprint,getExperimentalsForModule}from"../chunk-GLWPSVFV.js";export{BLUEPRINTS,getBlueprint,getBlueprintGrade}from"../chunk-AYAKU4YA.js"; export{SLOT_RESTRICTION_LABELS,enumerateSlots,parseSlotName}from"../chunk-RAO35XDF.js"; //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- export{frameShiftDriveMassFactor,fuelPerJump,singleJumpRange,totalRange}from"../chunk-6O4NRRSB.js";//# sourceMappingURL=jump-range.js.map
1
+ export{frameShiftDriveMassFactor,fuelPerJump,singleJumpRange,totalRange}from"../chunk-VTMCSCXV.js"; //# sourceMappingURL=jump-range.js.map
@@ -18,8 +18,27 @@ import './module-families.js';
18
18
  * `ShipLoadout` reports neither: it is keyed by slot and `fromLoadout` throws a
19
19
  * `TypeError` on a duplicate, and every build fills its fixed mounts from the hull
20
20
  * defaults. Switch on them when you validate your own list; skip them for a build.
21
+ *
22
+ * `thrusterMassExceeded` is the one code that reads a figure rather than the structure,
23
+ * so it is reported only when the input states both a
24
+ * {@link LoadoutValidationInput.mass} and the fitted thrusters'
25
+ * {@link ValidationModule.thrusterMaxMass}. A build supplies both.
26
+ */
27
+ type LoadoutIssueCode = 'duplicateSlot' | 'unknownSlot' | 'missingRequiredSlot' | 'incompatibleModule' | 'duplicateExclusiveModule' | 'moduleLimitExceeded' | 'thrusterMassExceeded';
28
+ /**
29
+ * A load a thruster rating is read against, lightest first.
30
+ *
31
+ * @remarks
32
+ * `dry` is the fit alone — hull plus modules, an empty tank and no cargo. `unladen`
33
+ * adds a full main tank, and is the figure the game and every outfitting tool call a
34
+ * ship's unladen mass; note that {@link ships!ShipLoadout.unladenMass} is the `dry`
35
+ * figure, because that is what a journal's `UnladenMass` states. `laden` adds a full
36
+ * hold on top.
37
+ *
38
+ * A ship cannot undock without fuel, so failing at `dry` or `unladen` is an error.
39
+ * Failing only at `laden` is a warning: the hold is the one load a pilot chooses.
21
40
  */
22
- type LoadoutIssueCode = 'duplicateSlot' | 'unknownSlot' | 'missingRequiredSlot' | 'incompatibleModule' | 'duplicateExclusiveModule' | 'moduleLimitExceeded';
41
+ type ThrusterLoad = 'dry' | 'unladen' | 'laden';
23
42
  /** Stable machine-readable constraint behind an `incompatibleModule` issue. */
24
43
  type ModuleFitConstraint = 'immutableSlot' | 'armourRequired' | 'wrongHullArmour' | 'restrictedHull' | 'restrictedMount' | 'wrongCoreType' | 'hardpointRequired' | 'utilityRequired' | 'optionalInternalRequired' | 'coreModuleInOptionalSlot' | 'oversized' | 'unknownConstraint';
25
44
  /**
@@ -34,8 +53,18 @@ type LoadoutIssueParams = Readonly<Record<string, LoadoutIssueParam>>;
34
53
  interface LoadoutIssue {
35
54
  /** Machine-readable reason. */
36
55
  readonly code: LoadoutIssueCode;
37
- /** Invalid input is an error; a missing required module makes the build incomplete. */
38
- readonly severity: 'error' | 'incomplete';
56
+ /**
57
+ * Invalid input is an error; a missing required module makes the build incomplete;
58
+ * a warning is a build that flies, but not at every load it can carry.
59
+ *
60
+ * @remarks
61
+ * Only `error` clears {@link LoadoutValidation.valid}, and only `error` or
62
+ * `incomplete` clears {@link LoadoutValidation.complete}. A `warning` is a note
63
+ * against a legal, fully-mounted build, so it leaves both answers alone. Branch on
64
+ * {@link code} rather than on this: one severity covers findings that belong in
65
+ * different places on a panel.
66
+ */
67
+ readonly severity: 'error' | 'incomplete' | 'warning';
39
68
  /** Slot involved, in the build's own spelling when possible. */
40
69
  readonly slot?: string;
41
70
  /** Module symbol involved, when any. */
@@ -77,6 +106,18 @@ interface ValidationModule {
77
106
  readonly limitGroup?: ModuleLimitGroup;
78
107
  /** Per-ship count allowance increase this resolved module grants, when any. */
79
108
  readonly limitIncrease?: ModuleLimitIncrease;
109
+ /**
110
+ * The mass this module can still move, in tonnes — a thruster's post-engineering
111
+ * `maxMass`, and the top of its mass curve.
112
+ *
113
+ * @remarks
114
+ * Present only on the fitted thrusters, and only where their record carries the
115
+ * figure. Above it the curve contributes nothing and the ship does not move, which
116
+ * is what {@link LoadoutValidationInput.mass} is weighed against. Leave it off every
117
+ * other module: a shield generator's curve has a `maxMass` of its own and is not a
118
+ * limit on the build's mass.
119
+ */
120
+ readonly thrusterMaxMass?: number;
80
121
  }
81
122
  /** Input to {@link validateLoadout}. */
82
123
  interface LoadoutValidationInput {
@@ -86,12 +127,57 @@ interface LoadoutValidationInput {
86
127
  readonly slots: readonly BuildSlot[];
87
128
  /** Fitted modules. Duplicate keys must be retained here so they can be diagnosed. */
88
129
  readonly modules: readonly ValidationModule[];
130
+ /**
131
+ * What the assembled ship weighs, for the one rule that reads a figure: thrusters
132
+ * rated below the ship's mass cannot move it.
133
+ *
134
+ * Omit it to check structure alone.
135
+ */
136
+ readonly mass?: LoadoutMass;
137
+ }
138
+ /**
139
+ * What a build weighs at each load a thruster rating is read against, in tonnes.
140
+ *
141
+ * @remarks
142
+ * State as much as the build knows. {@link fuel} and {@link cargo} are *capacities*,
143
+ * not a chosen load: the rule weighs a full tank and a full hold, because those are the
144
+ * heaviest the build can become without being re-fitted. Leave one off and the loads
145
+ * above it simply go unchecked.
146
+ */
147
+ interface LoadoutMass {
148
+ /**
149
+ * Hull plus every fitted module, an empty tank and no cargo — a build's
150
+ * {@link ships!ShipLoadout.unladenMass | unladenMass}.
151
+ *
152
+ * @remarks
153
+ * Despite that name this is the *dry* figure: a journal's `UnladenMass` excludes
154
+ * fuel, while the game's own "unladen mass" readout includes a full tank. The two
155
+ * are told apart here as {@link ThrusterLoad}'s `dry` and `unladen`.
156
+ */
157
+ readonly dry: number;
158
+ /** Main-tank capacity. The reserve is not counted, as the flight model does not. */
159
+ readonly fuel?: number;
160
+ /** Cargo capacity, as fitted racks allow rather than as any hold currently holds. */
161
+ readonly cargo?: number;
89
162
  }
90
163
  /**
91
164
  * Validate a resolved fitted build without importing any catalogue.
92
165
  *
93
- * @param input - Hull layout and resolved module classifications.
166
+ * @param input - Hull layout and resolved module classifications, and optionally what
167
+ * the assembled ship weighs.
94
168
  * @returns Structural validity, operational completeness, and diagnostics.
169
+ * @remarks
170
+ * Every rule but one reads the structure alone. The exception is
171
+ * `thrusterMassExceeded`: state {@link LoadoutValidationInput.mass} and the fitted
172
+ * thrusters' {@link ValidationModule.thrusterMaxMass}, and a ship too heavy for its own
173
+ * thrusters is reported, because above that rating the thruster curve contributes
174
+ * nothing and the ship does not move at all.
175
+ *
176
+ * The rating is weighed against each {@link ThrusterLoad} the input can state, and the
177
+ * lightest load that is already too heavy is the one reported. A ship that cannot move
178
+ * `dry` or `unladen` is an error — it cannot leave a pad, where the tank is always
179
+ * full. One that only fails `laden` is a warning, and leaves the build both valid and
180
+ * complete: the hold is the one load a pilot chooses.
95
181
  * @example
96
182
  * ```ts
97
183
  * import { validateLoadout } from '@elite-dangerous-almanac/core/ships/loadout-validation';
@@ -99,9 +185,29 @@ interface LoadoutValidationInput {
99
185
  * const result = validateLoadout({ shipSymbol: 'CustomHull', slots: [], modules: [] });
100
186
  * result.valid; // -> true: no impossible fit was claimed
101
187
  * result.complete; // -> true: the supplied layout has no required mounts
188
+ *
189
+ * const overloaded = validateLoadout({
190
+ * shipSymbol: 'CustomHull',
191
+ * slots: [],
192
+ * mass: { dry: 60.6, fuel: 25 },
193
+ * modules: [
194
+ * {
195
+ * slot: 'MainEngines',
196
+ * symbol: 'Int_Engine_Size2_Class1',
197
+ * requiresKnownSlot: false,
198
+ * fitError: null,
199
+ * thrusterMaxMass: 72,
200
+ * },
201
+ * ],
202
+ * });
203
+ * overloaded.valid; // -> false
204
+ * overloaded.issues[0]?.code; // -> 'thrusterMassExceeded'
205
+ * overloaded.issues[0]?.params?.load; // -> 'unladen': it is the full tank that sinks it
102
206
  * ```
103
207
  * @throws {TypeError} If `input.slots` is not an array.
208
+ * @throws {RangeError} If a figure in `input.mass`, or a module's `thrusterMaxMass`, is
209
+ * present and is not a finite number of zero or more.
104
210
  */
105
211
  declare function validateLoadout(input: LoadoutValidationInput): LoadoutValidation;
106
212
 
107
- export { type LoadoutIssue, type LoadoutIssueCode, type LoadoutIssueParam, type LoadoutIssueParams, type LoadoutValidation, type LoadoutValidationInput, type ModuleFitConstraint, type ValidationModule, validateLoadout };
213
+ export { type LoadoutIssue, type LoadoutIssueCode, type LoadoutIssueParam, type LoadoutIssueParams, type LoadoutMass, type LoadoutValidation, type LoadoutValidationInput, type ModuleFitConstraint, type ThrusterLoad, type ValidationModule, validateLoadout };
@@ -1 +1 @@
1
- export{validateLoadout}from"../chunk-B4ZSTOM4.js"; //# sourceMappingURL=loadout-validation.js.map
1
+ export{validateLoadout}from"../chunk-OJC6AUL7.js"; //# sourceMappingURL=loadout-validation.js.map
@@ -1 +1 @@
1
- export{mobilityCapacitorMetrics}from"../chunk-XUHAPOM6.js"; //# sourceMappingURL=mobility-capacitor.js.map
1
+ export{mobilityCapacitorMetrics}from"../chunk-VEEBJFJ7.js"; //# sourceMappingURL=mobility-capacitor.js.map
@@ -1 +1 @@
1
- export{mobilityMetrics,thrusterMassCurveMultiplier}from"../chunk-Y6KJJMIM.js"; //# sourceMappingURL=mobility.js.map
1
+ export{mobilityMetrics,thrusterMassCurveMultiplier}from"../chunk-A4QKXXZD.js"; //# sourceMappingURL=mobility.js.map
@@ -1 +1 @@
1
- export{ALL_MODULES}from"../chunk-QY3L5BKN.js"; //# sourceMappingURL=modules-all.js.map
1
+ export{ALL_MODULES}from"../chunk-APEG4ZER.js"; //# sourceMappingURL=modules-all.js.map
@@ -1 +1 @@
1
- export{CORE_MODULES}from"../chunk-EVJ32UF3.js"; //# sourceMappingURL=modules-core.js.map
1
+ export{CORE_MODULES}from"../chunk-FA5JVXVG.js"; //# sourceMappingURL=modules-core.js.map
@@ -1 +1 @@
1
- export{INTERNAL_MODULES}from"../chunk-4ZGUSHTP.js"; //# sourceMappingURL=modules-internal.js.map
1
+ export{INTERNAL_MODULES}from"../chunk-4CBMQULR.js"; //# sourceMappingURL=modules-internal.js.map
@@ -44,7 +44,7 @@ import { ModuleSlot, SlotRestriction } from './slots.js';
44
44
  *
45
45
  * @remarks
46
46
  * **This is the one default that costs real bundle weight.** A lookup imported from
47
- * here pulls all four catalogues — 337.4 KiB minified (33.3 KiB gzipped) — since
47
+ * here pulls all four catalogues — 337.6 KiB minified (33.4 KiB gzipped) — since
48
48
  * that is what it falls back to, and passing an explicit catalogue does not undo it.
49
49
  * A build that must carry only one category should import that catalogue and search
50
50
  * it directly:
@@ -333,6 +333,26 @@ interface OutfittingModuleIdentity {
333
333
  * `"ELITE_HORIZONS_V_PLANETARY_LANDINGS"`. Present only on gated modules.
334
334
  */
335
335
  readonly entitlement?: string;
336
+ /**
337
+ * `true` on an article that arrives granted — with a hull or with a bundle — and
338
+ * that no outfitting screen sells. Absent on every module a station offers.
339
+ *
340
+ * @remarks
341
+ * The fifteen are the nine starter `*_free` fittings and the six bundle-granted
342
+ * Vessel Hangars. Each is a second identity for an article the game already sells:
343
+ * `Int_Engine_Size2_Class1_free` is the 2E Thrusters again, which is why
344
+ * {@link ShipLoadout.modulesForSlot} leaves them out — a picker that offered both
345
+ * would list "2E Thrusters" twice, once unpriced.
346
+ *
347
+ * They are still real fitted articles, so they stay in the catalogues and every
348
+ * lookup resolves one: a build imported from a journal can carry one, and
349
+ * {@link getModuleBySymbol} answers for it like any other symbol. Absent is not
350
+ * `false` — nothing carries `grantOnly: false`.
351
+ *
352
+ * Do not read it as a price: {@link OutfittingModule.cost} is missing on these but
353
+ * also on articles that are sold and simply unpriced by every registry.
354
+ */
355
+ readonly grantOnly?: true;
336
356
  /**
337
357
  * The hull symbol(s) a module is restricted to, when it is ship-specific — e.g.
338
358
  * `["Explorer_NX"]` for the Python Mk II's MkII Gravity Optimised thrusters.