@shipload/sdk 1.0.0-next.56 → 1.0.0-next.57

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.
package/lib/shipload.d.ts CHANGED
@@ -3232,6 +3232,7 @@ interface CategoryStacks {
3232
3232
  declare function encodeStats(values: number[]): bigint;
3233
3233
  declare function decodeStat(stats: bigint, index: number): number;
3234
3234
  declare function decodeStats(stats: bigint, count: number): number[];
3235
+ declare function usedInputStatKeys(outputItemId: number): string[][];
3235
3236
  declare function decodeCraftedItemStats(itemId: number, stats: bigint): Record<string, number>;
3236
3237
  declare function blendStacks(stacks: StackInput[], statKey: string): number;
3237
3238
  declare function blendComponentStacks(stacks: {
@@ -4225,7 +4226,7 @@ declare function simulateRoute(movers: RouteMoverInput[], waypoints: {
4225
4226
  y: number;
4226
4227
  }, recharge: boolean): RouteSim;
4227
4228
 
4228
- type ModuleEntry$2 = Types.module_entry;
4229
+ type ModuleEntry$3 = Types.module_entry;
4229
4230
  type Lane = Types.lane;
4230
4231
  type Schedule = Types.schedule;
4231
4232
  interface ResolvedGathererLane {
@@ -4255,12 +4256,12 @@ interface ResolvedLoaderLane {
4255
4256
  valid: boolean;
4256
4257
  }
4257
4258
  declare function laneKeyForModule(slotIndex: number): number;
4258
- declare function resolveLaneGatherer(modules: ModuleEntry$2[], entityItemId: number, laneKey: number): ResolvedGathererLane;
4259
- declare function selectGatherLane(modules: ModuleEntry$2[], entityItemId: number, lanes: Lane[], stratum: number, explicitSlot?: number): number;
4260
- declare function resolveLaneCrafter(modules: ModuleEntry$2[], entityItemId: number, laneKey: number): ResolvedCrafterLane;
4261
- declare function resolveLaneBuilder(modules: ModuleEntry$2[], entityItemId: number, laneKey: number): ResolvedBuilderLane;
4262
- declare function resolveLaneLoader(modules: ModuleEntry$2[], entityItemId: number, laneKey: number): ResolvedLoaderLane;
4263
- declare function workerLaneKey(modules: ModuleEntry$2[], moduleSubtype: ModuleType, lanes: Lane[], stratum?: number): number;
4259
+ declare function resolveLaneGatherer(modules: ModuleEntry$3[], entityItemId: number, laneKey: number): ResolvedGathererLane;
4260
+ declare function selectGatherLane(modules: ModuleEntry$3[], entityItemId: number, lanes: Lane[], stratum: number, explicitSlot?: number): number;
4261
+ declare function resolveLaneCrafter(modules: ModuleEntry$3[], entityItemId: number, laneKey: number): ResolvedCrafterLane;
4262
+ declare function resolveLaneBuilder(modules: ModuleEntry$3[], entityItemId: number, laneKey: number): ResolvedBuilderLane;
4263
+ declare function resolveLaneLoader(modules: ModuleEntry$3[], entityItemId: number, laneKey: number): ResolvedLoaderLane;
4264
+ declare function workerLaneKey(modules: ModuleEntry$3[], moduleSubtype: ModuleType, lanes: Lane[], stratum?: number): number;
4264
4265
  declare function rawScheduleEnd(schedule: Schedule): Date;
4265
4266
  declare function candidateLaneCompletesAt(entity: ScheduleData, laneKey: number, durationSec: number, now: Date): Date;
4266
4267
 
@@ -4410,21 +4411,52 @@ type IdleResolveTarget = ScheduleData & {
4410
4411
  };
4411
4412
  declare function composeIdleResolve(blocker: IdleResolveTarget, action: Action, actions: ActionsManager, now: Date, lookupCounterpart?: CounterpartLookup): Action[];
4412
4413
 
4414
+ type Task = Types.task;
4415
+ type Coupling = Types.coupling;
4416
+ type CargoItem$2 = Types.cargo_item;
4417
+ type ModuleEntry$2 = Types.module_entry;
4418
+ interface CargoEffect {
4419
+ added: CargoItem$2[];
4420
+ removed: CargoItem$2[];
4421
+ }
4422
+ interface AvailabilityInput extends ScheduleData {
4423
+ cargo: CargoItem$2[];
4424
+ }
4425
+ interface CargoInput {
4426
+ itemId: number;
4427
+ stats: bigint;
4428
+ modules?: ModuleEntry$2[];
4429
+ quantity: number;
4430
+ }
4431
+ interface IncomingSource {
4432
+ holdId: string;
4433
+ until: Date;
4434
+ items: CargoItem$2[];
4435
+ }
4436
+ declare function calcCounterpartDelivery(task: Task, coupling: Coupling): CargoItem$2[];
4437
+ declare function taskCargoEffect(task: Task): CargoEffect;
4438
+ declare function cargoKey(item: CargoItem$2): string;
4439
+ declare function cargoInputKey(input: CargoInput): string;
4440
+ declare function projectedCargoAvailableAt(entity: AvailabilityInput, at: Date, incoming?: readonly IncomingSource[]): Map<string, bigint>;
4441
+ declare function cargoReadyAt(entity: AvailabilityInput, inputs: readonly CargoInput[], incoming?: readonly IncomingSource[]): Date;
4442
+ declare function availableForItem(avail: Map<string, bigint>, itemId: number): bigint;
4443
+
4413
4444
  declare enum CancelBlockReason {
4414
4445
  TASK_NEVER = "TASK_NEVER",
4415
4446
  BEFORE_START_RUNNING = "BEFORE_START_RUNNING",
4416
4447
  DONE = "DONE",
4417
4448
  CONTAINS_LINKED_TASK = "CONTAINS_LINKED_TASK",
4418
4449
  WOULD_STRAND = "WOULD_STRAND",
4450
+ WOULD_STRAND_COUNTERPART = "WOULD_STRAND_COUNTERPART",
4419
4451
  WOULD_OVERFILL = "WOULD_OVERFILL",
4420
4452
  NOT_OWNER = "NOT_OWNER"
4421
4453
  }
4422
4454
  type EntityInfo = InstanceType<typeof Types.entity_info>;
4423
4455
  type EntityRef = InstanceType<typeof Types.entity_ref>;
4424
- type CargoItem$2 = InstanceType<typeof Types.cargo_item>;
4456
+ type CargoItem$1 = InstanceType<typeof Types.cargo_item>;
4425
4457
  interface CancelRefund {
4426
4458
  giver: EntityRef;
4427
- cargo: CargoItem$2[];
4459
+ cargo: CargoItem$1[];
4428
4460
  }
4429
4461
  interface CancelReleasedHold {
4430
4462
  counterpart: EntityRef;
@@ -4442,6 +4474,7 @@ interface CancelEffects {
4442
4474
  interface CancelPlan {
4443
4475
  ok: boolean;
4444
4476
  blockedReason?: CancelBlockReason;
4477
+ blockedByCounterpart?: EntityRef;
4445
4478
  range: {
4446
4479
  count: number;
4447
4480
  taskIndices: number[];
@@ -4451,6 +4484,7 @@ interface CancelPlan {
4451
4484
  interface CancelEligibilityInput {
4452
4485
  now: Date;
4453
4486
  counterparts?: Map<string, EntityInfo>;
4487
+ counterpartIncoming?: Map<string, readonly IncomingSource[]>;
4454
4488
  }
4455
4489
  declare function cancelEligibility(entity: EntityInfo, laneKey: number, fromTaskIndex: number, input: CancelEligibilityInput): CancelPlan;
4456
4490
 
@@ -4520,27 +4554,13 @@ declare function receiveFits(dest: UnwrapDestination & ScheduleData & {
4520
4554
  }[];
4521
4555
  }, item: UnwrapItem, now: Date): boolean;
4522
4556
 
4523
- type Task = Types.task;
4524
- type CargoItem$1 = Types.cargo_item;
4525
- interface CargoEffect {
4526
- added: CargoItem$1[];
4527
- removed: CargoItem$1[];
4528
- }
4529
- interface AvailabilityInput extends ScheduleData {
4530
- cargo: CargoItem$1[];
4531
- }
4532
- declare function taskCargoEffect(task: Task): CargoEffect;
4533
- declare function projectedCargoAvailableAt(entity: AvailabilityInput, at: Date): Map<string, bigint>;
4534
- declare function cargoReadyAt(entity: AvailabilityInput, inputItemIds: readonly number[]): Date;
4535
- declare function availableForItem(avail: Map<string, bigint>, itemId: number): bigint;
4536
-
4537
4557
  type CargoItem = Types.cargo_item;
4538
4558
  type ModuleEntry$1 = Types.module_entry;
4539
4559
  interface CraftableEntity extends ScheduleData {
4540
4560
  cargo: CargoItem[];
4541
4561
  modules: ModuleEntry$1[];
4542
4562
  }
4543
- declare function maxCraftable(entity: CraftableEntity, recipe: Recipe, crafterSpeed: number, now: Date): number;
4563
+ declare function maxCraftable(entity: CraftableEntity, recipe: Recipe, crafterSpeed: number, now: Date, incoming?: readonly IncomingSource[]): number;
4544
4564
 
4545
4565
  declare function energyAtTime(entity: Projectable, now: Date): number;
4546
4566
 
@@ -5449,4 +5469,4 @@ type entity_row = Types.entity_row;
5449
5469
  type location_static = Types.location_static;
5450
5470
  type location_derived = Types.location_derived;
5451
5471
 
5452
- export { ALL_ENTITY_TYPES, ATOMICASSETS_ACCOUNT, AckMessage, ActionsManager, AnyEntity, AtomicAssetRow, AtomicAttributeType, AtomicSchemaRow, BASE_HAUL_PENALTY_MILLI, BASE_ORBITAL_MASS, BLEND_INPUTS_MUST_MATCH, BLEND_REQUIRES_MULTIPLE, BLEND_STAT_LESS_NOT_SUPPORTED, BoundingBox, BoundsDeltaMessage, BoundsSubscriptionHandle, BroadEntitySubscriptionFilter, BuildGatherPlanOpts, BuildMethod, BuildState, BuildableTarget, BuilderStats, CANCEL_CONTAINS_GROUPED_TASK, CAPACITY_TIER_TABLE, CAP_DEMOLISH, CAP_MODULES, CAP_UNDEPLOY, CAP_WRAP, CATEGORY_LABELS, COMMIT_ALREADY_SET, COMMIT_CANNOT_MATCH, COMMIT_NOT_SET, COMPANY_NOT_FOUND, COMPONENT_TIER_PREFIXES, CONTAINER_NOT_FOUND, CONTAINER_Z, COORD_MAX, COORD_MIN, COORD_OFFSET, CRAFT_ENERGY_DIVISOR, CRAFT_EXCEEDS_ENERGY_CAPACITY, CRAFT_NOT_ENOUGH_ENERGY, CancelBlockReason, CancelEffects, CancelEligibilityInput, CancelPlan, CancelRefund, CancelReleasedHold, CapabilityAttribute, CapabilityAttributeRow, CapabilityInput, CargoData, CargoMassInfo, CargoStack, CategoryInfo, CategoryStacks, ClientMessage, Cluster, ClusterCell, ClusterCellWire, ClusterDeltaMessage, ClusterManager, ClusterSlotType, ComputedCapabilities, ConnectionState, ConstructionManager, Container, ContainerEntity, Coord, CoordinateAddress, Coordinates, CoordinatesType, CounterpartLookup, CraftedItemCategory, CrafterCapability, CrafterStats, DEFAULT_BASE_HULLMASS, DEPLOY_ENTITY_HAS_SCHEDULE, DEPTH_THRESHOLD_T1, DEPTH_THRESHOLD_T2, DEPTH_THRESHOLD_T3, DEPTH_THRESHOLD_T4, DEPTH_THRESHOLD_T5, DESTINATION_CAPACITY_EXCEEDED, DecodedAtomicAsset, DemandRow, DerivedLoaders, DerivedStratum, DescribeOptions, DisplayNameResult, Distance, ENGINE_DRAIN_BASE, ENGINE_DRAIN_REF_THM, ENGINE_DRAIN_REF_THRUST, ENTITY_ALREADY_THERE, ENTITY_CAPACITY_EXCEEDED, ENTITY_CARGO_NOT_LOADED, ENTITY_CARGO_NOT_OWNED, ENTITY_CONSTRUCTION_DOCK, ENTITY_CONTAINER, ENTITY_EXTRACTOR, ENTITY_FACTORY, ENTITY_HUB, ENTITY_INVALID_CARGO, ENTITY_INVALID_DESTINATION, ENTITY_INVALID_TRAVEL_DURATION, ENTITY_NEXUS, ENTITY_NOT_ENOUGH_ENERGY, ENTITY_NOT_ENOUGH_ENERGY_CAPACITY, ENTITY_NO_CRAFTER, ENTITY_SHIP, ENTITY_WAREHOUSE, ENTITY_WORKSHOP, EPOCH_NON_ZERO, EPOCH_NOT_READY, ERROR_SYSTEM_ALREADY_INITIALIZED, ERROR_SYSTEM_DISABLED, ERROR_SYSTEM_NOT_INITIALIZED, EffectiveReserveInput, EnergyCapability, EntitiesManager, EntitiesSubscriptionHandle, Entity$1 as Entity, EntityCapabilities, EntityClass, EntityDeletedMessage, EntityInfo$2 as EntityInfo, EntityInstance, EntityInventory, EntityLayout, EntityRefInput, EntitySlot, EntityState, EntityStateInput, EntitySubscriptionFilter, EntitySubscriptionHandle, EntitySubscriptionHandlers, EntitySubscriptionMeta, EntityTypeName, EpochInfo, EpochsManager, ErrorMessage, EstimateTravelTimeOptions, EstimatedTravelTime, EventCatchupCompleteMessage, EventMessage, ExactEntitySubscriptionFilter, Extractor, Factory, FetchAssetsOptions, FillCap, FinalizerCapability, FinalizerEntityRef, FloatPosition, GAME_NOT_FOUND, GAME_SEED_NOT_SET, GATHERER_DEPTH_MAX_TIER, GATHERER_DEPTH_TABLE, GATHER_EXCEEDS_ENERGY_CAPACITY, GATHER_MASS_DIVISOR, GATHER_NOT_ENOUGH_ENERGY, GROUP_DUPLICATE_ENTITY, GROUP_EMPTY, GROUP_ENTITY_NOT_MOVABLE, GROUP_HAUL_CAPACITY_EXCEEDED, GROUP_NOT_FOUND, GROUP_NOT_SAME_LOCATION, GROUP_NOT_SAME_OWNER, GROUP_NO_THRUST, GameState, GatherCycle, GatherLimpet, GatherPlan, GatherPlanEntity, GathererCapability, GathererDepthParams, GathererStats, GridCell, HAULER_EFFICIENCY_DENOM, HasCapacity, HasCargo, HasCargomass, HasScheduleAndLocation, HoldKind, INSUFFICIENT_BALANCE, INSUFFICIENT_ITEM_QUANTITY, INSUFFICIENT_ITEM_SUPPLY, INVALID_AMOUNT, ITEM_BATTERY_T1, ITEM_BEAM, ITEM_BEAM_T2, ITEM_BIOMASS_T1, ITEM_BIOMASS_T10, ITEM_BIOMASS_T2, ITEM_BIOMASS_T3, ITEM_BIOMASS_T4, ITEM_BIOMASS_T5, ITEM_BIOMASS_T6, ITEM_BIOMASS_T7, ITEM_BIOMASS_T8, ITEM_BIOMASS_T9, ITEM_BUILDER_T1, ITEM_CERAMIC, ITEM_CERAMIC_T2, ITEM_CONSTRUCTION_DOCK_T1_PACKED, ITEM_CONTAINER_T1_PACKED, ITEM_CONTAINER_T2_PACKED, ITEM_CRAFTER_T1, ITEM_CRYSTAL_T1, ITEM_CRYSTAL_T10, ITEM_CRYSTAL_T2, ITEM_CRYSTAL_T3, ITEM_CRYSTAL_T4, ITEM_CRYSTAL_T5, ITEM_CRYSTAL_T6, ITEM_CRYSTAL_T7, ITEM_CRYSTAL_T8, ITEM_CRYSTAL_T9, ITEM_DOES_NOT_EXIST, ITEM_DREDGER_T1_PACKED, ITEM_ENGINE_T1, ITEM_EXTRACTOR_T1_PACKED, ITEM_FACTORY_T1_PACKED, ITEM_FRAME, ITEM_FRAME_T2, ITEM_GAS_T1, ITEM_GAS_T10, ITEM_GAS_T2, ITEM_GAS_T3, ITEM_GAS_T4, ITEM_GAS_T5, ITEM_GAS_T6, ITEM_GAS_T7, ITEM_GAS_T8, ITEM_GAS_T9, ITEM_GATHERER_T1, ITEM_GATHERER_T2, ITEM_GENERATOR_T1, ITEM_HAULER_SHIP_T2_PACKED, ITEM_HAULER_T1, ITEM_HAULER_T2, ITEM_HUB_T1_PACKED, ITEM_LAUNCHER_T1, ITEM_LOADER_T1, ITEM_MASS_CATCHER_T1_PACKED, ITEM_MASS_DRIVER_T1_PACKED, ITEM_NOT_AVAILABLE_AT_LOCATION, ITEM_NOT_DEPLOYABLE, ITEM_NOT_PACKED_ENTITY, ITEM_ORE_T1, ITEM_ORE_T10, ITEM_ORE_T2, ITEM_ORE_T3, ITEM_ORE_T4, ITEM_ORE_T5, ITEM_ORE_T6, ITEM_ORE_T7, ITEM_ORE_T8, ITEM_ORE_T9, ITEM_PLASMA_CELL, ITEM_PLASMA_CELL_T2, ITEM_PLATE, ITEM_PLATE_T2, ITEM_POLYMER, ITEM_POLYMER_T2, ITEM_PORTER_T1_PACKED, ITEM_PROSPECTOR_T1_PACKED, ITEM_PROSPECTOR_T2_PACKED, ITEM_REACTOR, ITEM_REACTOR_T2, ITEM_REGOLITH_T1, ITEM_REGOLITH_T10, ITEM_REGOLITH_T2, ITEM_REGOLITH_T3, ITEM_REGOLITH_T4, ITEM_REGOLITH_T5, ITEM_REGOLITH_T6, ITEM_REGOLITH_T7, ITEM_REGOLITH_T8, ITEM_REGOLITH_T9, ITEM_RESIN, ITEM_RESIN_T2, ITEM_RESONATOR, ITEM_RESONATOR_T2, ITEM_ROUSTABOUT_T1_PACKED, ITEM_SENSOR, ITEM_SENSOR_T2, ITEM_SHIP_T1_PACKED, ITEM_STORAGE_T1, ITEM_TENDER_T1_PACKED, ITEM_TUG_T1_PACKED, ITEM_TYPE_COMPONENT, ITEM_TYPE_ENTITY, ITEM_TYPE_MODULE, ITEM_TYPE_RESOURCE, ITEM_WAREHOUSE_T1_PACKED, ITEM_WARP_T1, ITEM_WORKSHOP_T1_PACKED, ITEM_WRANGLER_T1_PACKED, ITEM_WRIGHT_T1_PACKED, IdleResolveTarget, ImmutableEntry, ImmutableModuleSlot, InboundTransfer, InstalledModule, InventoryAccessor, Item, ItemType, JOB_QUEUE_CAP, JobLane, JobLaneEntry, JobWindow, KindMeta, LANE_BARRIER, LANE_MOBILITY, LOCAL_HALF, LOCATION_MAX_DEPTH, LOCATION_MIN_DEPTH, LanePlanEntry, LaneView, LaunchNumericInput, LaunchQuote, LaunchQuoteCatcher, LaunchQuoteLauncher, LaunchStatsInput, LoadTimeBreakdown, LoaderCapability, LoaderStats, Location, LocationStratum, LocationType, LocationsManager, MAX_LEGS, MAX_ORBITAL_ALTITUDE, MAX_STARS_PER_STAT, MAX_STAR_RATING, MIN_ORBITAL_ALTITUDE, MIN_TRANSFER_DISTANCE_ORBITAL_VESSEL, MIN_TRANSFER_DISTANCE_PLANETARY_STRUCTURE, MODULE_ANY, MODULE_BATTERY, MODULE_BUILDER, MODULE_CARGO_NOT_FOUND, MODULE_CRAFTER, MODULE_ENGINE, MODULE_ENTITY_BUSY, MODULE_GATHERER, MODULE_GENERATOR, MODULE_HAULER, MODULE_LAUNCHER, MODULE_LOADER, MODULE_NOT_MODULE, MODULE_SLOT_EMPTY, MODULE_SLOT_INVALID, MODULE_SLOT_OCCUPIED, MODULE_STAT_SCALING_ANCHOR, MODULE_STAT_SCALING_POST_ANCHOR_PERCENT, MODULE_STORAGE, MODULE_TIER_PREFIXES, MODULE_TYPE_MISMATCH, MODULE_WARP, MassCapability, MintAssetParams, ModuleDescription, ModuleEntry, ModuleType, MovementCapability, index as NFT, NFTCargoItem, NFTCommonBase, NFTInstalledModule, NFTModuleSlot, NO_SCHEDULE, NamedStats, Neighbor, Nexus, NftConfigForItem, NftManager, OrderedTask, OwnerSubscriptionHandle, PLANETARY_STRUCTURE_Z, PLANET_SUBTYPE_GAS_GIANT, PLANET_SUBTYPE_ICY, PLANET_SUBTYPE_INDUSTRIAL, PLANET_SUBTYPE_OCEAN, PLANET_SUBTYPE_ROCKY, PLANET_SUBTYPE_TERRESTRIAL, PLAYER_ALREADY_JOINED, PLAYER_NOT_FOUND, PLAYER_NOT_JOINED, PRECISION, PackedModule, PackedModuleInput, PingMessage, PlanRouteParams, PlanTarget, PlanetSubtypeInfo, platform as PlatformContract, Types$1 as PlatformTypes, Player, PlayerRosterEntry, PlayerStateInput, PlayersManager, PongMessage, Projectable, ProjectedEntity, ProjectionOptions, RECIPE_INPUTS_EXCESS, RECIPE_INPUTS_INSUFFICIENT, RECIPE_INPUTS_INVALID, RECIPE_INPUTS_MIXED, RECIPE_NOT_FOUND, REGION_DIV, REGION_PER_AXIS, REQUIRES_MORE_THAN_ONE, REQUIRES_POSITIVE_VALUE, RESERVE_TIERS, RESOLVE_COUNT_EXCEEDS_COMPLETED, RESOURCE_TIER_ADJECTIVES, RESOURCE_TIER_MULT_TENTHS, RawData, ReachStats, Recipe, RecipeConsumer, RecipeInput, RecipeSlotInput, RefitOp, RenderDescriptionOptions, Reservation, ReserveTier, ResolvedAttributeGroup, ResolvedCrafterLane, ResolvedEvent, ResolvedGathererLane, ResolvedItem, ResolvedItemStat, ResolvedItemType, ResolvedLoaderLane, ResolvedModuleSlot, ResourceCategory, ResourceDemand, ResourceStats, RouteFailure, RouteFailureReason, RouteHeuristicCost, RouteLegCost, RouteLegInput, RouteLegSim, RouteMoverInput, RoutePlan, RouteResult, RouteSim, SECTORS_PER_AXIS, SECTOR_DIV, SHIPLOAD_COLLECTION, SHIP_ALREADY_TRAVELING, SHIP_CANNOT_BUY_TRAVELING, SHIP_CANNOT_CANCEL_TASK, SHIP_CANNOT_UPDATE_TRAVELING, SHIP_NOT_ARRIVED, SHIP_NOT_FOUND, SHIP_NOT_IDLE, SHIP_NOT_OWNED, SHIP_NO_COMPLETED_TASKS, SHIP_NO_TASKS_TO_CANCEL, SLOT_FORMULAS, STAR_STEP, ScanProvider, ScheduleAccessor, ScheduleCapability, ScheduleData, ScheduledBuild, SchemaField, server as ServerContract, ServerMessage, Types as ServerTypes, Ship, ShipEntity, ShipLike, Shipload, SlotConsumer, SlotConsumerKind, SnapshotMessage, SourceCargoStack, SourceEntityRef, StackInput, StarSortable, StatDefinition, StatFlow, StatMapping, StatSlot, StorageCapability, StratumInfo, SubscribeEntityMessage, SubscribeEventsMessage, SubscribeMessage, SubscriptionEntityType, SubscriptionsManager, SubscriptionsOptions, SystemGraph, TIER_ROLL_MAX, TRAVEL_MAX_DURATION, TaskCancelable, TaskCargoChange, TaskCargoDirection, TaskType, TemplateMeta, TextSpan, TierRange, TransferEntity, TravelDrainBreakdown, UnsubscribeEntityMessage, UnsubscribeEventsMessage, UnsubscribeMessage, UnwrapDestination, UnwrapItem, UpdateBoundsMessage, UpdateMessage, ValidateDisplayNameOptions, WAREHOUSE_ALREADY_AT_LOCATION, WAREHOUSE_NOT_FOUND, WARP_HAS_CARGO, WARP_HAS_SCHEDULE, WARP_NOT_FULL_ENERGY, WARP_NO_CAPABILITY, WARP_OUT_OF_RANGE, WH, WOULD_OVERFILL, WOULD_STRAND, Warehouse, WarehouseEntity, WebSocketConnection, WebSocketConnectionOptions, WireCoordinates, WireEntity, WrapDeposit, YIELD_FRACTION_DEEP, YIELD_FRACTION_SHALLOW, addressFromCoordinates, allBuildableItems, allPlotBuildableItems, allocateProportional, applyCapacityTier, applyResourceTierMultiplier, availableBuildMethods, availableCapacity$1 as availableCapacity, availableCapacityFromMass, availableForItem, baseName, blendCargoStacks, blendComponentStacks, blendCrossGroup, blendStacks, buildComponentImmutable, buildEntityDescription, buildEntityImmutable, buildGatherPlan, buildImmutableData, buildMintAssetAction, buildModuleImmutable, buildResourceImmutable, calcCargoItemMass, calcCargoMass, calcEnergyUsage, calcStacksMass, calc_acceleration, calc_build_duration, calc_build_energy, calc_craft_duration, calc_craft_energy, calc_energyusage, calc_flighttime, calc_gather_duration, calc_gather_energy, calc_gather_rate, calc_group_flighttime, calc_loader_acceleration, calc_loader_flighttime, calc_onesided_duration, calc_orbital_altitude, calc_rechargetime, calc_ship_acceleration, calc_ship_flighttime, calc_ship_mass, calc_ship_rechargetime, calc_transfer_duration, calc_transit_duration, calc_travel_flighttime, calculateFlightTime, calculateLoadTimeBreakdown, calculateRefuelingTime, calculateTransferTime, canMove, cancelEligibility, candidateLaneCompletesAt, capabilityAttributes, capabilityNames, capacityTierMultiplier, capsHasCrafter, capsHasGatherer, capsHasHauler, capsHasLauncher, capsHasLoaders, capsHasMass, capsHasMovement, capsHasStorage, cargoItem, cargoItemToStack, cargoReadyAt, cargoRef, cargoUtils, cargo_item, categoryColors, categoryFromIndex, categoryLabel, categoryLabelFromIndex, compareByStars, componentIcon, composeIdleResolve, computeBaseCapacity, computeBaseCapacityContainer, computeBaseCapacityShip, computeBaseCapacityWarehouse, computeBaseHullmass, computeBatteryCapabilities, computeBuilderCapabilities, computeBuilderDrain, computeBuilderSpeed, computeComponentStats, computeContainerCapabilities, computeCraftedOutputStats, computeCrafterCapabilities, computeCrafterDrain, computeCrafterSpeed, computeEffectiveModuleStat, computeEngineCapabilities, computeEngineDrain, computeEngineThrust, computeEntityCapabilities, computeEntityStats, computeFreeCells, computeGathererCapabilities, computeGathererDepth, computeGathererDrain, computeGathererYield, computeGeneratorCap, computeGeneratorCapabilities, computeGeneratorRech, computeGroupPerLegReach, computeHaulPenalty, computeHaulerCapabilities, computeHaulerCapacity, computeHaulerEfficiency, computeInputMass, computeLauncherCapabilities, computeLoaderCapabilities, computeLoaderMass, computeLoaderThrust, computeNftImageUrl, computePerLegReach, computeShipHullCapabilities, computeStorageCapabilities, computeTravelDrain, computeWarehouseHullCapabilities, computeWarpCapabilities, computeWarpRange, coordsToLocationId, coupling, createInventoryAccessor, createProjectedEntity, createScheduleAccessor, decodeAddress, decodeAtomicAsset, decodeCraftedItemStats, decodeRegion, decodeSector, decodeStat, decodeStats, Shipload as default, deriveLocation, deriveLocationSize, deriveLocationStatic, deriveResourceStats, deriveStatMappings, deriveStrata, deriveStratum, derivedLoaders, describeItem, describeModule, describeModuleForItem, describeModuleForSlot, deserializeAsset, deserializeAtomicData, deserializeComponent, deserializeEntity, deserializeModule, deserializeResource, displayName, distanceBetweenCoordinates, distanceBetweenPoints, easeFlightProgress, eligibleUpgrades, encodeAddress, encodeAddressMemo, encodeGatheredCargoStats, encodeRegion, encodeSector, encodeStats, energyAtTime, energyPercent, energy_stats, entityDisplayName, entity_row, estimateDealTravelTime, estimateTravelTime, estimateUnwrapDuration, feistel, feistelInv, fetchAtomicAssetsForOwner, fetchAtomicSchemas, filterByBuildMethod, findNearbyPlanets, flightSpeedFactor, formatLocation, formatMass, formatMassDelta, formatMassScaled, formatModuleLine, formatTier, gatherEnergyCost, gathererDepthForTier, getAllRecipes, getBaseHullmassFor, getCapabilityAttributeRows, getCapabilityAttributes, getCategoryInfo, getComponentDemand, getComponents, getCurrentEpoch, getDepthThreshold, getDestinationLocation, getEffectiveReserve, getEligibleResources, getEntityClass, getEntityItems, getEntityLayout, getEpochInfo, getFlightOrigin, getInterpolatedPosition, getItem, getItems, getKindMeta, getLocationCandidates, getLocationKind, getLocationProfile, getLocationType, getLocationTypeName, getModuleCapabilityType, getModules, getPackedEntityType, getPlanetSubtype, getPlanetSubtypes, getPositionAt, getProducersForAttribute, getRecipe, getRecipeConsumers, getResourceDemand, getResourceTier, getResourceWeight, getResources, getStatDefinitions, getStatMappings, getStatMappingsForCapability, getStatMappingsForStat, getStatName, getSystemName, getTemplateMeta, hasEnergy, hasEnergyForDistance, hasGatherer, hasLoaders, hasMass, hasSchedule, hasSpace$1 as hasSpace, hasSpaceForMass, hasStorage, hasSystem, hash, hash512, incomingHoldMass, interpolateFlightPosition, isBuildable, isConstructionDock, isContainer, isCraftedItem, isExtractor, isFactory, isFull$1 as isFull, isFullFromMass, isGatherableLocation, isHub, isInvertedAttribute, isLocationBuildable, isModuleItem, isNexus, isPlot, isPlotBuildable, isRelatedItem, isShip, isSubscriptionsDebugEnabled, isValidWormholePair, isWarehouse, isWorkshop, itemAbbreviations, itemCategory, itemIds, itemOffset, itemTier, itemTypeCode, jobsToLanes, kindCan, lane, laneKeyForModule, lerp, location_derived, location_static, makeEntity, mapEntity, maxCraftable, maxQtyForCharge, maxTravelDistance, mergeStacks, moduleAccepts, moduleDisplayName, moduleIcon, moduleSlotTypeToCode, movement_stats, nearbyWormholes, needsRecharge, normalizeDisplayName, parseWireEntity, partnerRegion, pickFabricator, planParallelTransfer, planRoute, projectEntity, projectEntityAt, projectRemainingAt, projectedCargoAvailableAt, projectedPeakCargomass, rawScheduleEnd, readCommonBase, receiveFits, regionOf, removeFromStacks, renderDescription, resolveItem, resolveItemCategory, resolveLaneBuilder, resolveLaneCrafter, resolveLaneGatherer, resolveLaneLoader, resolveLockedAmount, resolveStats, rollTier, rollWithinTier, rollupBuilder, rollupCrafter, rollupGatherer, rollupLoaders, rotation, schedule, sdkSystemGraph, selectGatherLane, setSubscriptionsDebug, simulateRoute, slotAcceptsModule, socketTail, sourceLabelForOutput, splitCost, stackKey, stackToCargoItem, stacksEqual, starRating, starsForStat, statMagnitude, subtractFromStacks, task, taskCargoChanges, taskCargoEffect, tierAdjective, tierColors, tierOfReserve, toLocation, typeLabel, unwrapLoadDuration, unwrapTransitDuration, validateDisplayName, validateSchedule, workerLaneKey, wormholeAt, wormholeAtRegionEndpoint, yieldThresholdAt };
5472
+ export { ALL_ENTITY_TYPES, ATOMICASSETS_ACCOUNT, AckMessage, ActionsManager, AnyEntity, AtomicAssetRow, AtomicAttributeType, AtomicSchemaRow, BASE_HAUL_PENALTY_MILLI, BASE_ORBITAL_MASS, BLEND_INPUTS_MUST_MATCH, BLEND_REQUIRES_MULTIPLE, BLEND_STAT_LESS_NOT_SUPPORTED, BoundingBox, BoundsDeltaMessage, BoundsSubscriptionHandle, BroadEntitySubscriptionFilter, BuildGatherPlanOpts, BuildMethod, BuildState, BuildableTarget, BuilderStats, CANCEL_CONTAINS_GROUPED_TASK, CAPACITY_TIER_TABLE, CAP_DEMOLISH, CAP_MODULES, CAP_UNDEPLOY, CAP_WRAP, CATEGORY_LABELS, COMMIT_ALREADY_SET, COMMIT_CANNOT_MATCH, COMMIT_NOT_SET, COMPANY_NOT_FOUND, COMPONENT_TIER_PREFIXES, CONTAINER_NOT_FOUND, CONTAINER_Z, COORD_MAX, COORD_MIN, COORD_OFFSET, CRAFT_ENERGY_DIVISOR, CRAFT_EXCEEDS_ENERGY_CAPACITY, CRAFT_NOT_ENOUGH_ENERGY, CancelBlockReason, CancelEffects, CancelEligibilityInput, CancelPlan, CancelRefund, CancelReleasedHold, CapabilityAttribute, CapabilityAttributeRow, CapabilityInput, CargoData, CargoInput, CargoMassInfo, CargoStack, CategoryInfo, CategoryStacks, ClientMessage, Cluster, ClusterCell, ClusterCellWire, ClusterDeltaMessage, ClusterManager, ClusterSlotType, ComputedCapabilities, ConnectionState, ConstructionManager, Container, ContainerEntity, Coord, CoordinateAddress, Coordinates, CoordinatesType, CounterpartLookup, CraftedItemCategory, CrafterCapability, CrafterStats, DEFAULT_BASE_HULLMASS, DEPLOY_ENTITY_HAS_SCHEDULE, DEPTH_THRESHOLD_T1, DEPTH_THRESHOLD_T2, DEPTH_THRESHOLD_T3, DEPTH_THRESHOLD_T4, DEPTH_THRESHOLD_T5, DESTINATION_CAPACITY_EXCEEDED, DecodedAtomicAsset, DemandRow, DerivedLoaders, DerivedStratum, DescribeOptions, DisplayNameResult, Distance, ENGINE_DRAIN_BASE, ENGINE_DRAIN_REF_THM, ENGINE_DRAIN_REF_THRUST, ENTITY_ALREADY_THERE, ENTITY_CAPACITY_EXCEEDED, ENTITY_CARGO_NOT_LOADED, ENTITY_CARGO_NOT_OWNED, ENTITY_CONSTRUCTION_DOCK, ENTITY_CONTAINER, ENTITY_EXTRACTOR, ENTITY_FACTORY, ENTITY_HUB, ENTITY_INVALID_CARGO, ENTITY_INVALID_DESTINATION, ENTITY_INVALID_TRAVEL_DURATION, ENTITY_NEXUS, ENTITY_NOT_ENOUGH_ENERGY, ENTITY_NOT_ENOUGH_ENERGY_CAPACITY, ENTITY_NO_CRAFTER, ENTITY_SHIP, ENTITY_WAREHOUSE, ENTITY_WORKSHOP, EPOCH_NON_ZERO, EPOCH_NOT_READY, ERROR_SYSTEM_ALREADY_INITIALIZED, ERROR_SYSTEM_DISABLED, ERROR_SYSTEM_NOT_INITIALIZED, EffectiveReserveInput, EnergyCapability, EntitiesManager, EntitiesSubscriptionHandle, Entity$1 as Entity, EntityCapabilities, EntityClass, EntityDeletedMessage, EntityInfo$2 as EntityInfo, EntityInstance, EntityInventory, EntityLayout, EntityRefInput, EntitySlot, EntityState, EntityStateInput, EntitySubscriptionFilter, EntitySubscriptionHandle, EntitySubscriptionHandlers, EntitySubscriptionMeta, EntityTypeName, EpochInfo, EpochsManager, ErrorMessage, EstimateTravelTimeOptions, EstimatedTravelTime, EventCatchupCompleteMessage, EventMessage, ExactEntitySubscriptionFilter, Extractor, Factory, FetchAssetsOptions, FillCap, FinalizerCapability, FinalizerEntityRef, FloatPosition, GAME_NOT_FOUND, GAME_SEED_NOT_SET, GATHERER_DEPTH_MAX_TIER, GATHERER_DEPTH_TABLE, GATHER_EXCEEDS_ENERGY_CAPACITY, GATHER_MASS_DIVISOR, GATHER_NOT_ENOUGH_ENERGY, GROUP_DUPLICATE_ENTITY, GROUP_EMPTY, GROUP_ENTITY_NOT_MOVABLE, GROUP_HAUL_CAPACITY_EXCEEDED, GROUP_NOT_FOUND, GROUP_NOT_SAME_LOCATION, GROUP_NOT_SAME_OWNER, GROUP_NO_THRUST, GameState, GatherCycle, GatherLimpet, GatherPlan, GatherPlanEntity, GathererCapability, GathererDepthParams, GathererStats, GridCell, HAULER_EFFICIENCY_DENOM, HasCapacity, HasCargo, HasCargomass, HasScheduleAndLocation, HoldKind, INSUFFICIENT_BALANCE, INSUFFICIENT_ITEM_QUANTITY, INSUFFICIENT_ITEM_SUPPLY, INVALID_AMOUNT, ITEM_BATTERY_T1, ITEM_BEAM, ITEM_BEAM_T2, ITEM_BIOMASS_T1, ITEM_BIOMASS_T10, ITEM_BIOMASS_T2, ITEM_BIOMASS_T3, ITEM_BIOMASS_T4, ITEM_BIOMASS_T5, ITEM_BIOMASS_T6, ITEM_BIOMASS_T7, ITEM_BIOMASS_T8, ITEM_BIOMASS_T9, ITEM_BUILDER_T1, ITEM_CERAMIC, ITEM_CERAMIC_T2, ITEM_CONSTRUCTION_DOCK_T1_PACKED, ITEM_CONTAINER_T1_PACKED, ITEM_CONTAINER_T2_PACKED, ITEM_CRAFTER_T1, ITEM_CRYSTAL_T1, ITEM_CRYSTAL_T10, ITEM_CRYSTAL_T2, ITEM_CRYSTAL_T3, ITEM_CRYSTAL_T4, ITEM_CRYSTAL_T5, ITEM_CRYSTAL_T6, ITEM_CRYSTAL_T7, ITEM_CRYSTAL_T8, ITEM_CRYSTAL_T9, ITEM_DOES_NOT_EXIST, ITEM_DREDGER_T1_PACKED, ITEM_ENGINE_T1, ITEM_EXTRACTOR_T1_PACKED, ITEM_FACTORY_T1_PACKED, ITEM_FRAME, ITEM_FRAME_T2, ITEM_GAS_T1, ITEM_GAS_T10, ITEM_GAS_T2, ITEM_GAS_T3, ITEM_GAS_T4, ITEM_GAS_T5, ITEM_GAS_T6, ITEM_GAS_T7, ITEM_GAS_T8, ITEM_GAS_T9, ITEM_GATHERER_T1, ITEM_GATHERER_T2, ITEM_GENERATOR_T1, ITEM_HAULER_SHIP_T2_PACKED, ITEM_HAULER_T1, ITEM_HAULER_T2, ITEM_HUB_T1_PACKED, ITEM_LAUNCHER_T1, ITEM_LOADER_T1, ITEM_MASS_CATCHER_T1_PACKED, ITEM_MASS_DRIVER_T1_PACKED, ITEM_NOT_AVAILABLE_AT_LOCATION, ITEM_NOT_DEPLOYABLE, ITEM_NOT_PACKED_ENTITY, ITEM_ORE_T1, ITEM_ORE_T10, ITEM_ORE_T2, ITEM_ORE_T3, ITEM_ORE_T4, ITEM_ORE_T5, ITEM_ORE_T6, ITEM_ORE_T7, ITEM_ORE_T8, ITEM_ORE_T9, ITEM_PLASMA_CELL, ITEM_PLASMA_CELL_T2, ITEM_PLATE, ITEM_PLATE_T2, ITEM_POLYMER, ITEM_POLYMER_T2, ITEM_PORTER_T1_PACKED, ITEM_PROSPECTOR_T1_PACKED, ITEM_PROSPECTOR_T2_PACKED, ITEM_REACTOR, ITEM_REACTOR_T2, ITEM_REGOLITH_T1, ITEM_REGOLITH_T10, ITEM_REGOLITH_T2, ITEM_REGOLITH_T3, ITEM_REGOLITH_T4, ITEM_REGOLITH_T5, ITEM_REGOLITH_T6, ITEM_REGOLITH_T7, ITEM_REGOLITH_T8, ITEM_REGOLITH_T9, ITEM_RESIN, ITEM_RESIN_T2, ITEM_RESONATOR, ITEM_RESONATOR_T2, ITEM_ROUSTABOUT_T1_PACKED, ITEM_SENSOR, ITEM_SENSOR_T2, ITEM_SHIP_T1_PACKED, ITEM_STORAGE_T1, ITEM_TENDER_T1_PACKED, ITEM_TUG_T1_PACKED, ITEM_TYPE_COMPONENT, ITEM_TYPE_ENTITY, ITEM_TYPE_MODULE, ITEM_TYPE_RESOURCE, ITEM_WAREHOUSE_T1_PACKED, ITEM_WARP_T1, ITEM_WORKSHOP_T1_PACKED, ITEM_WRANGLER_T1_PACKED, ITEM_WRIGHT_T1_PACKED, IdleResolveTarget, ImmutableEntry, ImmutableModuleSlot, InboundTransfer, IncomingSource, InstalledModule, InventoryAccessor, Item, ItemType, JOB_QUEUE_CAP, JobLane, JobLaneEntry, JobWindow, KindMeta, LANE_BARRIER, LANE_MOBILITY, LOCAL_HALF, LOCATION_MAX_DEPTH, LOCATION_MIN_DEPTH, LanePlanEntry, LaneView, LaunchNumericInput, LaunchQuote, LaunchQuoteCatcher, LaunchQuoteLauncher, LaunchStatsInput, LoadTimeBreakdown, LoaderCapability, LoaderStats, Location, LocationStratum, LocationType, LocationsManager, MAX_LEGS, MAX_ORBITAL_ALTITUDE, MAX_STARS_PER_STAT, MAX_STAR_RATING, MIN_ORBITAL_ALTITUDE, MIN_TRANSFER_DISTANCE_ORBITAL_VESSEL, MIN_TRANSFER_DISTANCE_PLANETARY_STRUCTURE, MODULE_ANY, MODULE_BATTERY, MODULE_BUILDER, MODULE_CARGO_NOT_FOUND, MODULE_CRAFTER, MODULE_ENGINE, MODULE_ENTITY_BUSY, MODULE_GATHERER, MODULE_GENERATOR, MODULE_HAULER, MODULE_LAUNCHER, MODULE_LOADER, MODULE_NOT_MODULE, MODULE_SLOT_EMPTY, MODULE_SLOT_INVALID, MODULE_SLOT_OCCUPIED, MODULE_STAT_SCALING_ANCHOR, MODULE_STAT_SCALING_POST_ANCHOR_PERCENT, MODULE_STORAGE, MODULE_TIER_PREFIXES, MODULE_TYPE_MISMATCH, MODULE_WARP, MassCapability, MintAssetParams, ModuleDescription, ModuleEntry, ModuleType, MovementCapability, index as NFT, NFTCargoItem, NFTCommonBase, NFTInstalledModule, NFTModuleSlot, NO_SCHEDULE, NamedStats, Neighbor, Nexus, NftConfigForItem, NftManager, OrderedTask, OwnerSubscriptionHandle, PLANETARY_STRUCTURE_Z, PLANET_SUBTYPE_GAS_GIANT, PLANET_SUBTYPE_ICY, PLANET_SUBTYPE_INDUSTRIAL, PLANET_SUBTYPE_OCEAN, PLANET_SUBTYPE_ROCKY, PLANET_SUBTYPE_TERRESTRIAL, PLAYER_ALREADY_JOINED, PLAYER_NOT_FOUND, PLAYER_NOT_JOINED, PRECISION, PackedModule, PackedModuleInput, PingMessage, PlanRouteParams, PlanTarget, PlanetSubtypeInfo, platform as PlatformContract, Types$1 as PlatformTypes, Player, PlayerRosterEntry, PlayerStateInput, PlayersManager, PongMessage, Projectable, ProjectedEntity, ProjectionOptions, RECIPE_INPUTS_EXCESS, RECIPE_INPUTS_INSUFFICIENT, RECIPE_INPUTS_INVALID, RECIPE_INPUTS_MIXED, RECIPE_NOT_FOUND, REGION_DIV, REGION_PER_AXIS, REQUIRES_MORE_THAN_ONE, REQUIRES_POSITIVE_VALUE, RESERVE_TIERS, RESOLVE_COUNT_EXCEEDS_COMPLETED, RESOURCE_TIER_ADJECTIVES, RESOURCE_TIER_MULT_TENTHS, RawData, ReachStats, Recipe, RecipeConsumer, RecipeInput, RecipeSlotInput, RefitOp, RenderDescriptionOptions, Reservation, ReserveTier, ResolvedAttributeGroup, ResolvedCrafterLane, ResolvedEvent, ResolvedGathererLane, ResolvedItem, ResolvedItemStat, ResolvedItemType, ResolvedLoaderLane, ResolvedModuleSlot, ResourceCategory, ResourceDemand, ResourceStats, RouteFailure, RouteFailureReason, RouteHeuristicCost, RouteLegCost, RouteLegInput, RouteLegSim, RouteMoverInput, RoutePlan, RouteResult, RouteSim, SECTORS_PER_AXIS, SECTOR_DIV, SHIPLOAD_COLLECTION, SHIP_ALREADY_TRAVELING, SHIP_CANNOT_BUY_TRAVELING, SHIP_CANNOT_CANCEL_TASK, SHIP_CANNOT_UPDATE_TRAVELING, SHIP_NOT_ARRIVED, SHIP_NOT_FOUND, SHIP_NOT_IDLE, SHIP_NOT_OWNED, SHIP_NO_COMPLETED_TASKS, SHIP_NO_TASKS_TO_CANCEL, SLOT_FORMULAS, STAR_STEP, ScanProvider, ScheduleAccessor, ScheduleCapability, ScheduleData, ScheduledBuild, SchemaField, server as ServerContract, ServerMessage, Types as ServerTypes, Ship, ShipEntity, ShipLike, Shipload, SlotConsumer, SlotConsumerKind, SnapshotMessage, SourceCargoStack, SourceEntityRef, StackInput, StarSortable, StatDefinition, StatFlow, StatMapping, StatSlot, StorageCapability, StratumInfo, SubscribeEntityMessage, SubscribeEventsMessage, SubscribeMessage, SubscriptionEntityType, SubscriptionsManager, SubscriptionsOptions, SystemGraph, TIER_ROLL_MAX, TRAVEL_MAX_DURATION, TaskCancelable, TaskCargoChange, TaskCargoDirection, TaskType, TemplateMeta, TextSpan, TierRange, TransferEntity, TravelDrainBreakdown, UnsubscribeEntityMessage, UnsubscribeEventsMessage, UnsubscribeMessage, UnwrapDestination, UnwrapItem, UpdateBoundsMessage, UpdateMessage, ValidateDisplayNameOptions, WAREHOUSE_ALREADY_AT_LOCATION, WAREHOUSE_NOT_FOUND, WARP_HAS_CARGO, WARP_HAS_SCHEDULE, WARP_NOT_FULL_ENERGY, WARP_NO_CAPABILITY, WARP_OUT_OF_RANGE, WH, WOULD_OVERFILL, WOULD_STRAND, Warehouse, WarehouseEntity, WebSocketConnection, WebSocketConnectionOptions, WireCoordinates, WireEntity, WrapDeposit, YIELD_FRACTION_DEEP, YIELD_FRACTION_SHALLOW, addressFromCoordinates, allBuildableItems, allPlotBuildableItems, allocateProportional, applyCapacityTier, applyResourceTierMultiplier, availableBuildMethods, availableCapacity$1 as availableCapacity, availableCapacityFromMass, availableForItem, baseName, blendCargoStacks, blendComponentStacks, blendCrossGroup, blendStacks, buildComponentImmutable, buildEntityDescription, buildEntityImmutable, buildGatherPlan, buildImmutableData, buildMintAssetAction, buildModuleImmutable, buildResourceImmutable, calcCargoItemMass, calcCargoMass, calcCounterpartDelivery, calcEnergyUsage, calcStacksMass, calc_acceleration, calc_build_duration, calc_build_energy, calc_craft_duration, calc_craft_energy, calc_energyusage, calc_flighttime, calc_gather_duration, calc_gather_energy, calc_gather_rate, calc_group_flighttime, calc_loader_acceleration, calc_loader_flighttime, calc_onesided_duration, calc_orbital_altitude, calc_rechargetime, calc_ship_acceleration, calc_ship_flighttime, calc_ship_mass, calc_ship_rechargetime, calc_transfer_duration, calc_transit_duration, calc_travel_flighttime, calculateFlightTime, calculateLoadTimeBreakdown, calculateRefuelingTime, calculateTransferTime, canMove, cancelEligibility, candidateLaneCompletesAt, capabilityAttributes, capabilityNames, capacityTierMultiplier, capsHasCrafter, capsHasGatherer, capsHasHauler, capsHasLauncher, capsHasLoaders, capsHasMass, capsHasMovement, capsHasStorage, cargoInputKey, cargoItem, cargoItemToStack, cargoKey, cargoReadyAt, cargoRef, cargoUtils, cargo_item, categoryColors, categoryFromIndex, categoryLabel, categoryLabelFromIndex, compareByStars, componentIcon, composeIdleResolve, computeBaseCapacity, computeBaseCapacityContainer, computeBaseCapacityShip, computeBaseCapacityWarehouse, computeBaseHullmass, computeBatteryCapabilities, computeBuilderCapabilities, computeBuilderDrain, computeBuilderSpeed, computeComponentStats, computeContainerCapabilities, computeCraftedOutputStats, computeCrafterCapabilities, computeCrafterDrain, computeCrafterSpeed, computeEffectiveModuleStat, computeEngineCapabilities, computeEngineDrain, computeEngineThrust, computeEntityCapabilities, computeEntityStats, computeFreeCells, computeGathererCapabilities, computeGathererDepth, computeGathererDrain, computeGathererYield, computeGeneratorCap, computeGeneratorCapabilities, computeGeneratorRech, computeGroupPerLegReach, computeHaulPenalty, computeHaulerCapabilities, computeHaulerCapacity, computeHaulerEfficiency, computeInputMass, computeLauncherCapabilities, computeLoaderCapabilities, computeLoaderMass, computeLoaderThrust, computeNftImageUrl, computePerLegReach, computeShipHullCapabilities, computeStorageCapabilities, computeTravelDrain, computeWarehouseHullCapabilities, computeWarpCapabilities, computeWarpRange, coordsToLocationId, coupling, createInventoryAccessor, createProjectedEntity, createScheduleAccessor, decodeAddress, decodeAtomicAsset, decodeCraftedItemStats, decodeRegion, decodeSector, decodeStat, decodeStats, Shipload as default, deriveLocation, deriveLocationSize, deriveLocationStatic, deriveResourceStats, deriveStatMappings, deriveStrata, deriveStratum, derivedLoaders, describeItem, describeModule, describeModuleForItem, describeModuleForSlot, deserializeAsset, deserializeAtomicData, deserializeComponent, deserializeEntity, deserializeModule, deserializeResource, displayName, distanceBetweenCoordinates, distanceBetweenPoints, easeFlightProgress, eligibleUpgrades, encodeAddress, encodeAddressMemo, encodeGatheredCargoStats, encodeRegion, encodeSector, encodeStats, energyAtTime, energyPercent, energy_stats, entityDisplayName, entity_row, estimateDealTravelTime, estimateTravelTime, estimateUnwrapDuration, feistel, feistelInv, fetchAtomicAssetsForOwner, fetchAtomicSchemas, filterByBuildMethod, findNearbyPlanets, flightSpeedFactor, formatLocation, formatMass, formatMassDelta, formatMassScaled, formatModuleLine, formatTier, gatherEnergyCost, gathererDepthForTier, getAllRecipes, getBaseHullmassFor, getCapabilityAttributeRows, getCapabilityAttributes, getCategoryInfo, getComponentDemand, getComponents, getCurrentEpoch, getDepthThreshold, getDestinationLocation, getEffectiveReserve, getEligibleResources, getEntityClass, getEntityItems, getEntityLayout, getEpochInfo, getFlightOrigin, getInterpolatedPosition, getItem, getItems, getKindMeta, getLocationCandidates, getLocationKind, getLocationProfile, getLocationType, getLocationTypeName, getModuleCapabilityType, getModules, getPackedEntityType, getPlanetSubtype, getPlanetSubtypes, getPositionAt, getProducersForAttribute, getRecipe, getRecipeConsumers, getResourceDemand, getResourceTier, getResourceWeight, getResources, getStatDefinitions, getStatMappings, getStatMappingsForCapability, getStatMappingsForStat, getStatName, getSystemName, getTemplateMeta, hasEnergy, hasEnergyForDistance, hasGatherer, hasLoaders, hasMass, hasSchedule, hasSpace$1 as hasSpace, hasSpaceForMass, hasStorage, hasSystem, hash, hash512, incomingHoldMass, interpolateFlightPosition, isBuildable, isConstructionDock, isContainer, isCraftedItem, isExtractor, isFactory, isFull$1 as isFull, isFullFromMass, isGatherableLocation, isHub, isInvertedAttribute, isLocationBuildable, isModuleItem, isNexus, isPlot, isPlotBuildable, isRelatedItem, isShip, isSubscriptionsDebugEnabled, isValidWormholePair, isWarehouse, isWorkshop, itemAbbreviations, itemCategory, itemIds, itemOffset, itemTier, itemTypeCode, jobsToLanes, kindCan, lane, laneKeyForModule, lerp, location_derived, location_static, makeEntity, mapEntity, maxCraftable, maxQtyForCharge, maxTravelDistance, mergeStacks, moduleAccepts, moduleDisplayName, moduleIcon, moduleSlotTypeToCode, movement_stats, nearbyWormholes, needsRecharge, normalizeDisplayName, parseWireEntity, partnerRegion, pickFabricator, planParallelTransfer, planRoute, projectEntity, projectEntityAt, projectRemainingAt, projectedCargoAvailableAt, projectedPeakCargomass, rawScheduleEnd, readCommonBase, receiveFits, regionOf, removeFromStacks, renderDescription, resolveItem, resolveItemCategory, resolveLaneBuilder, resolveLaneCrafter, resolveLaneGatherer, resolveLaneLoader, resolveLockedAmount, resolveStats, rollTier, rollWithinTier, rollupBuilder, rollupCrafter, rollupGatherer, rollupLoaders, rotation, schedule, sdkSystemGraph, selectGatherLane, setSubscriptionsDebug, simulateRoute, slotAcceptsModule, socketTail, sourceLabelForOutput, splitCost, stackKey, stackToCargoItem, stacksEqual, starRating, starsForStat, statMagnitude, subtractFromStacks, task, taskCargoChanges, taskCargoEffect, tierAdjective, tierColors, tierOfReserve, toLocation, typeLabel, unwrapLoadDuration, unwrapTransitDuration, usedInputStatKeys, validateDisplayName, validateSchedule, workerLaneKey, wormholeAt, wormholeAtRegionEndpoint, yieldThresholdAt };
package/lib/shipload.js CHANGED
@@ -12632,6 +12632,24 @@ function keyForRecipeInputStat(recipe, inputIndex, statIndex) {
12632
12632
  const innerKeys = getItemStatKeys(input.itemId);
12633
12633
  return innerKeys[statIndex] ?? '';
12634
12634
  }
12635
+ function usedInputStatKeys(outputItemId) {
12636
+ const recipe = getRecipe(outputItemId);
12637
+ if (!recipe)
12638
+ return [];
12639
+ const usedIdx = recipe.inputs.map(() => new Set());
12640
+ for (const slot of recipe.statSlots) {
12641
+ for (const src of slot.sources) {
12642
+ usedIdx[src.inputIndex]?.add(src.statIndex);
12643
+ }
12644
+ }
12645
+ return recipe.inputs.map((input, i) => {
12646
+ const keys = getItemStatKeys(input.itemId);
12647
+ return [...usedIdx[i]]
12648
+ .sort((a, b) => a - b)
12649
+ .map((idx) => keys[idx] ?? '')
12650
+ .filter(Boolean);
12651
+ });
12652
+ }
12635
12653
  function decodeCraftedItemStats(itemId, stats) {
12636
12654
  const keys = getItemStatKeys(itemId);
12637
12655
  const result = {};
@@ -18878,6 +18896,18 @@ function composeIdleResolve(blocker, action, actions, now, lookupCounterpart) {
18878
18896
  return [...ids.map((id) => actions.resolve(id)), action];
18879
18897
  }
18880
18898
 
18899
+ const INCOMING_COUPLING_KINDS = new Set([exports.HoldKind.PUSH, exports.HoldKind.GATHER, exports.HoldKind.FLIGHT]);
18900
+ function isIncomingCouplingKind(kind) {
18901
+ return INCOMING_COUPLING_KINDS.has(kind);
18902
+ }
18903
+ function calcCounterpartDelivery(task, coupling) {
18904
+ if (!isIncomingCouplingKind(coupling.kind.toNumber()))
18905
+ return [];
18906
+ if (task.type.toNumber() === exports.TaskType.CRAFT) {
18907
+ return task.cargo.length === 0 ? [] : [task.cargo[task.cargo.length - 1]];
18908
+ }
18909
+ return task.cargo;
18910
+ }
18881
18911
  function taskCargoEffect(task) {
18882
18912
  switch (task.type.toNumber()) {
18883
18913
  case exports.TaskType.LOAD:
@@ -18885,6 +18915,7 @@ function taskCargoEffect(task) {
18885
18915
  case exports.TaskType.UNDEPLOY:
18886
18916
  return { added: task.cargo, removed: [] };
18887
18917
  case exports.TaskType.UNLOAD:
18918
+ case exports.TaskType.UPGRADE:
18888
18919
  return { added: [], removed: task.cargo };
18889
18920
  case exports.TaskType.GATHER:
18890
18921
  return task.couplings.length > 0
@@ -18901,19 +18932,23 @@ function taskCargoEffect(task) {
18901
18932
  return { added: [], removed: [] };
18902
18933
  }
18903
18934
  }
18904
- function cargoKey(item) {
18905
- const base = `${item.item_id.toNumber()}:${item.stats.toString()}`;
18906
- const modules = item.modules ?? [];
18907
- const entityId = item.entity_id?.toString();
18908
- const normalizedEntityId = entityId && entityId !== '0' ? entityId : '';
18935
+ function refKey(itemId, stats, modules, entityId) {
18936
+ const base = `${itemId}:${stats.toString()}`;
18937
+ const normalizedEntityId = entityId !== '0' ? entityId : '';
18909
18938
  if (modules.length === 0 && normalizedEntityId === '')
18910
18939
  return base;
18911
18940
  return `${base}:modules=${JSON.stringify(modules)}:entity=${normalizedEntityId}`;
18912
18941
  }
18942
+ function cargoKey(item) {
18943
+ return refKey(item.item_id.toNumber(), BigInt(item.stats.toString()), item.modules ?? [], item.entity_id?.toString() ?? '');
18944
+ }
18945
+ function cargoInputKey(input) {
18946
+ return refKey(input.itemId, input.stats, input.modules ?? [], '');
18947
+ }
18913
18948
  function cargoQuantity(item) {
18914
18949
  return BigInt(item.quantity.toString());
18915
18950
  }
18916
- function projectedCargoAvailableAt(entity, at) {
18951
+ function projectedCargoAvailableAt(entity, at, incoming = []) {
18917
18952
  const avail = new Map();
18918
18953
  for (const item of entity.cargo) {
18919
18954
  const key = cargoKey(item);
@@ -18928,6 +18963,14 @@ function projectedCargoAvailableAt(entity, at) {
18928
18963
  avail.set(key, (avail.get(key) ?? 0n) + cargoQuantity(item));
18929
18964
  }
18930
18965
  }
18966
+ for (const src of incoming) {
18967
+ if (src.until.getTime() >= at.getTime())
18968
+ continue;
18969
+ for (const item of src.items) {
18970
+ const key = cargoKey(item);
18971
+ avail.set(key, (avail.get(key) ?? 0n) + cargoQuantity(item));
18972
+ }
18973
+ }
18931
18974
  for (const ordered of tasks) {
18932
18975
  for (const item of taskCargoEffect(ordered.task).removed) {
18933
18976
  const key = cargoKey(item);
@@ -18938,17 +18981,40 @@ function projectedCargoAvailableAt(entity, at) {
18938
18981
  }
18939
18982
  return avail;
18940
18983
  }
18941
- function cargoReadyAt(entity, inputItemIds) {
18942
- let readyMs = 0;
18984
+ function cargoReadyAt(entity, inputs, incoming = []) {
18985
+ const demand = new Map();
18986
+ for (const input of inputs) {
18987
+ const key = cargoInputKey(input);
18988
+ demand.set(key, (demand.get(key) ?? 0n) + BigInt(input.quantity));
18989
+ }
18990
+ const candidates = [0];
18943
18991
  for (const ordered of orderedTasks(entity)) {
18944
18992
  for (const item of taskCargoEffect(ordered.task).added) {
18945
- if (inputItemIds.includes(item.item_id.toNumber())) {
18946
- readyMs = Math.max(readyMs, ordered.completesAt.getTime());
18993
+ if (demand.has(cargoKey(item))) {
18994
+ candidates.push(ordered.completesAt.getTime());
18947
18995
  break;
18948
18996
  }
18949
18997
  }
18950
18998
  }
18951
- return new Date(readyMs);
18999
+ for (const src of incoming) {
19000
+ if (src.items.some((item) => demand.has(cargoKey(item)))) {
19001
+ candidates.push(src.until.getTime());
19002
+ }
19003
+ }
19004
+ candidates.sort((a, b) => a - b);
19005
+ for (const candidateMs of candidates) {
19006
+ const available = projectedCargoAvailableAt(entity, new Date(candidateMs + 1), incoming);
19007
+ let sufficient = true;
19008
+ for (const [key, quantity] of demand) {
19009
+ if ((available.get(key) ?? 0n) < quantity) {
19010
+ sufficient = false;
19011
+ break;
19012
+ }
19013
+ }
19014
+ if (sufficient)
19015
+ return new Date(candidateMs);
19016
+ }
19017
+ return new Date(candidates[candidates.length - 1]);
18952
19018
  }
18953
19019
  function availableForItem(avail, itemId) {
18954
19020
  const prefix = `${itemId}:`;
@@ -18967,6 +19033,7 @@ exports.CancelBlockReason = void 0;
18967
19033
  CancelBlockReason["DONE"] = "DONE";
18968
19034
  CancelBlockReason["CONTAINS_LINKED_TASK"] = "CONTAINS_LINKED_TASK";
18969
19035
  CancelBlockReason["WOULD_STRAND"] = "WOULD_STRAND";
19036
+ CancelBlockReason["WOULD_STRAND_COUNTERPART"] = "WOULD_STRAND_COUNTERPART";
18970
19037
  CancelBlockReason["WOULD_OVERFILL"] = "WOULD_OVERFILL";
18971
19038
  CancelBlockReason["NOT_OWNER"] = "NOT_OWNER";
18972
19039
  })(exports.CancelBlockReason || (exports.CancelBlockReason = {}));
@@ -18977,14 +19044,16 @@ function postCancelEntity(entity, laneKey, fromTaskIndex) {
18977
19044
  lane.schedule.tasks = lane.schedule.tasks.slice(0, fromTaskIndex);
18978
19045
  return clone;
18979
19046
  }
18980
- function feasibleAfterCancel(post) {
18981
- const ordered = orderedTasks(post);
19047
+ function queueFeasible(entity, incoming = []) {
19048
+ const ordered = orderedTasks(entity);
18982
19049
  const base = new Map();
18983
- for (const c of post.cargo ?? []) {
19050
+ for (const c of entity.cargo ?? []) {
18984
19051
  const k = cargoKey(c);
18985
19052
  base.set(k, (base.get(k) ?? 0) + c.quantity.toNumber());
18986
19053
  }
18987
- const isConsumer = (t) => t.type.toNumber() === exports.TaskType.CRAFT || t.type.toNumber() === exports.TaskType.UNLOAD;
19054
+ const isConsumer = (t) => t.type.toNumber() === exports.TaskType.CRAFT ||
19055
+ t.type.toNumber() === exports.TaskType.UNLOAD ||
19056
+ t.type.toNumber() === exports.TaskType.UPGRADE;
18988
19057
  for (const self of ordered) {
18989
19058
  if (!isConsumer(self.task))
18990
19059
  continue;
@@ -18996,6 +19065,13 @@ function feasibleAfterCancel(post) {
18996
19065
  map.set(cargoKey(out), (map.get(cargoKey(out)) ?? 0) + out.quantity.toNumber());
18997
19066
  }
18998
19067
  }
19068
+ for (const src of incoming) {
19069
+ if (src.until.getTime() >= self.completesAt.getTime())
19070
+ continue;
19071
+ for (const item of src.items) {
19072
+ map.set(cargoKey(item), (map.get(cargoKey(item)) ?? 0) + item.quantity.toNumber());
19073
+ }
19074
+ }
18999
19075
  for (const other of ordered) {
19000
19076
  if (other === self)
19001
19077
  continue;
@@ -19009,6 +19085,11 @@ function feasibleAfterCancel(post) {
19009
19085
  return false;
19010
19086
  }
19011
19087
  }
19088
+ return true;
19089
+ }
19090
+ function feasibleAfterCancel(post) {
19091
+ if (!queueFeasible(post))
19092
+ return false;
19012
19093
  try {
19013
19094
  validateSchedule(post);
19014
19095
  }
@@ -19066,6 +19147,35 @@ function cancelEligibility(entity, laneKey, fromTaskIndex, input) {
19066
19147
  const post = postCancelEntity(entity, laneKey, fromTaskIndex);
19067
19148
  if (!feasibleAfterCancel(post))
19068
19149
  return block(exports.CancelBlockReason.WOULD_STRAND);
19150
+ const releasedByCounterpart = new Map();
19151
+ for (const i of taskIndices) {
19152
+ for (const c of tasks[i].couplings ?? []) {
19153
+ if (!isIncomingCouplingKind(c.kind.toNumber()))
19154
+ continue;
19155
+ const id = c.counterpart.entity_id.toString();
19156
+ const entry = releasedByCounterpart.get(id) ?? {
19157
+ counterpart: c.counterpart,
19158
+ holdIds: new Set(),
19159
+ };
19160
+ entry.holdIds.add(c.hold.toString());
19161
+ releasedByCounterpart.set(id, entry);
19162
+ }
19163
+ }
19164
+ for (const [counterpartId, released] of releasedByCounterpart) {
19165
+ const counterpart = input.counterparts?.get(counterpartId);
19166
+ if (!counterpart)
19167
+ continue;
19168
+ const incoming = (input.counterpartIncoming?.get(counterpartId) ?? []).filter((src) => !released.holdIds.has(src.holdId));
19169
+ if (!queueFeasible(counterpart, incoming)) {
19170
+ return {
19171
+ ok: false,
19172
+ blockedReason: exports.CancelBlockReason.WOULD_STRAND_COUNTERPART,
19173
+ blockedByCounterpart: released.counterpart,
19174
+ range,
19175
+ effects: { ...EMPTY_EFFECTS },
19176
+ };
19177
+ }
19178
+ }
19069
19179
  const effects = { refunds: [], releasedHolds: [], abandonsRunning: false };
19070
19180
  let energyForfeited = 0;
19071
19181
  for (const i of taskIndices) {
@@ -19215,7 +19325,24 @@ function receiveFits(dest, item, now) {
19215
19325
  return peak <= capacity;
19216
19326
  }
19217
19327
 
19218
- function maxCraftable(entity, recipe, crafterSpeed, now) {
19328
+ function itemReadyAt(entity, itemIds, incoming) {
19329
+ let readyMs = 0;
19330
+ for (const ordered of orderedTasks(entity)) {
19331
+ for (const item of taskCargoEffect(ordered.task).added) {
19332
+ if (itemIds.includes(item.item_id.toNumber())) {
19333
+ readyMs = Math.max(readyMs, ordered.completesAt.getTime());
19334
+ break;
19335
+ }
19336
+ }
19337
+ }
19338
+ for (const src of incoming) {
19339
+ if (src.items.some((item) => itemIds.includes(item.item_id.toNumber()))) {
19340
+ readyMs = Math.max(readyMs, src.until.getTime());
19341
+ }
19342
+ }
19343
+ return new Date(readyMs);
19344
+ }
19345
+ function maxCraftable(entity, recipe, crafterSpeed, now, incoming = []) {
19219
19346
  if (recipe.inputs.length === 0)
19220
19347
  return 0;
19221
19348
  const perUnitMass = recipe.inputs.reduce((sum, input) => sum + getItem(input.itemId).mass * input.quantity, 0);
@@ -19223,9 +19350,9 @@ function maxCraftable(entity, recipe, crafterSpeed, now) {
19223
19350
  const crafterLane = workerLaneKey(entity.modules, 'crafter', entity.lanes ?? []);
19224
19351
  const naiveCompletesAt = candidateLaneCompletesAt(entity, crafterLane, perUnitDuration, now);
19225
19352
  const laneStartMs = naiveCompletesAt.getTime() - perUnitDuration * 1000;
19226
- const readyMs = cargoReadyAt(entity, recipe.inputs.map((input) => input.itemId)).getTime();
19353
+ const readyMs = itemReadyAt(entity, recipe.inputs.map((input) => input.itemId), incoming).getTime();
19227
19354
  const completesAt = new Date(Math.max(laneStartMs, readyMs) + perUnitDuration * 1000);
19228
- const availability = projectedCargoAvailableAt(entity, completesAt);
19355
+ const availability = projectedCargoAvailableAt(entity, completesAt, incoming);
19229
19356
  let maxUnits;
19230
19357
  for (const input of recipe.inputs) {
19231
19358
  if (input.quantity <= 0)
@@ -21276,6 +21403,7 @@ exports.buildModuleImmutable = buildModuleImmutable;
21276
21403
  exports.buildResourceImmutable = buildResourceImmutable;
21277
21404
  exports.calcCargoItemMass = calcCargoItemMass;
21278
21405
  exports.calcCargoMass = calcCargoMass;
21406
+ exports.calcCounterpartDelivery = calcCounterpartDelivery;
21279
21407
  exports.calcEnergyUsage = calcEnergyUsage;
21280
21408
  exports.calcStacksMass = calcStacksMass;
21281
21409
  exports.calc_acceleration = calc_acceleration;
@@ -21319,8 +21447,10 @@ exports.capsHasLoaders = capsHasLoaders;
21319
21447
  exports.capsHasMass = capsHasMass;
21320
21448
  exports.capsHasMovement = capsHasMovement;
21321
21449
  exports.capsHasStorage = capsHasStorage;
21450
+ exports.cargoInputKey = cargoInputKey;
21322
21451
  exports.cargoItem = cargoItem;
21323
21452
  exports.cargoItemToStack = cargoItemToStack;
21453
+ exports.cargoKey = cargoKey;
21324
21454
  exports.cargoReadyAt = cargoReadyAt;
21325
21455
  exports.cargoRef = cargoRef;
21326
21456
  exports.cargoUtils = cargoUtils;
@@ -21601,6 +21731,7 @@ exports.toLocation = toLocation;
21601
21731
  exports.typeLabel = typeLabel;
21602
21732
  exports.unwrapLoadDuration = unwrapLoadDuration;
21603
21733
  exports.unwrapTransitDuration = unwrapTransitDuration;
21734
+ exports.usedInputStatKeys = usedInputStatKeys;
21604
21735
  exports.validateDisplayName = validateDisplayName;
21605
21736
  exports.validateSchedule = validateSchedule;
21606
21737
  exports.workerLaneKey = workerLaneKey;