@satisfactory-dev/docs.json.ts 0.11.0 → 0.12.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/common-imports.json +63 -0
- package/data-progress--common.md +38 -0
- package/data-progress--version_1_0_0_0.md +0 -0
- package/foo.log +837 -1093
- package/generated-types/1.0/classes/CoreUObject/FGAmmoTypeInstantHit.d.ts +2 -2
- package/generated-types/1.0/classes/CoreUObject/FGAmmoTypeProjectile.d.ts +3 -2
- package/generated-types/1.0/classes/CoreUObject/FGAmmoTypeSpreadshot.d.ts +2 -2
- package/generated-types/1.0/classes/CoreUObject/FGBuildable.d.ts +10 -38
- package/generated-types/1.0/classes/CoreUObject/FGBuildableAttachmentMerger.d.ts +2 -2
- package/generated-types/1.0/classes/CoreUObject/FGBuildableAttachmentSplitter.d.ts +1 -1
- package/generated-types/1.0/classes/CoreUObject/FGBuildableBeamLightweight.d.ts +2 -2
- package/generated-types/1.0/classes/CoreUObject/FGBuildableBlueprintDesigner.d.ts +3 -2
- package/generated-types/1.0/classes/CoreUObject/FGBuildableCircuitSwitch.d.ts +1 -1
- package/generated-types/1.0/classes/CoreUObject/FGBuildableConveyorBelt.d.ts +6 -3
- package/generated-types/1.0/classes/CoreUObject/FGBuildableConveyorLift.d.ts +7 -3
- package/generated-types/1.0/classes/CoreUObject/FGBuildableCornerWall.d.ts +2 -2
- package/generated-types/1.0/classes/CoreUObject/FGBuildableCornerWallLightweight.d.ts +1 -1
- package/generated-types/1.0/classes/CoreUObject/FGBuildableDockingStation.d.ts +2 -2
- package/generated-types/1.0/classes/CoreUObject/FGBuildableDoor.d.ts +2 -2
- package/generated-types/1.0/classes/CoreUObject/FGBuildableDroneStation.d.ts +2 -2
- package/generated-types/1.0/classes/CoreUObject/FGBuildableFactory.d.ts +2 -2
- package/generated-types/1.0/classes/CoreUObject/FGBuildableFactoryBuilding.d.ts +1 -1
- package/generated-types/1.0/classes/CoreUObject/FGBuildableFactorySimpleProducer.d.ts +2 -2
- package/generated-types/1.0/classes/CoreUObject/FGBuildableFloodlight.d.ts +2 -2
- package/generated-types/1.0/classes/CoreUObject/FGBuildableFoundation.d.ts +3 -2
- package/generated-types/1.0/classes/CoreUObject/FGBuildableFoundationLightweight.d.ts +1 -1
- package/generated-types/1.0/classes/CoreUObject/FGBuildableFrackingActivator.d.ts +2 -2
- package/generated-types/1.0/classes/CoreUObject/FGBuildableFrackingExtractor.d.ts +1 -1
- package/generated-types/1.0/classes/CoreUObject/FGBuildableGenerator.d.ts +1 -1
- package/generated-types/1.0/classes/CoreUObject/FGBuildableGeneratorFuel.d.ts +2 -2
- package/generated-types/1.0/classes/CoreUObject/FGBuildableGeneratorGeoThermal.d.ts +2 -2
- package/generated-types/1.0/classes/CoreUObject/FGBuildableGeneratorNuclear.d.ts +2 -2
- package/generated-types/1.0/classes/CoreUObject/FGBuildableJumppad.d.ts +2 -2
- package/generated-types/1.0/classes/CoreUObject/FGBuildableLadder.d.ts +2 -2
- package/generated-types/1.0/classes/CoreUObject/FGBuildableLightSource.d.ts +3 -2
- package/generated-types/1.0/classes/CoreUObject/FGBuildableLightsControlPanel.d.ts +3 -2
- package/generated-types/1.0/classes/CoreUObject/FGBuildableMAM.d.ts +2 -2
- package/generated-types/1.0/classes/CoreUObject/FGBuildableManufacturer.d.ts +6 -3
- package/generated-types/1.0/classes/CoreUObject/FGBuildableManufacturerVariablePower.d.ts +2 -2
- package/generated-types/1.0/classes/CoreUObject/FGBuildablePassthrough.d.ts +2 -2
- package/generated-types/1.0/classes/CoreUObject/FGBuildablePassthroughPipeHyper.d.ts +1 -1
- package/generated-types/1.0/classes/CoreUObject/FGBuildablePillarLightweight.d.ts +2 -2
- package/generated-types/1.0/classes/CoreUObject/FGBuildablePipeHyper.d.ts +2 -2
- package/generated-types/1.0/classes/CoreUObject/FGBuildablePipeReservoir.d.ts +2 -2
- package/generated-types/1.0/classes/CoreUObject/FGBuildablePipeline.d.ts +3 -2
- package/generated-types/1.0/classes/CoreUObject/FGBuildablePipelineJunction.d.ts +1 -1
- package/generated-types/1.0/classes/CoreUObject/FGBuildablePipelinePump.d.ts +2 -2
- package/generated-types/1.0/classes/CoreUObject/FGBuildablePipelineSupport.d.ts +2 -2
- package/generated-types/1.0/classes/CoreUObject/FGBuildablePoleBase.d.ts +1 -1
- package/generated-types/1.0/classes/CoreUObject/FGBuildablePoleLightweight.d.ts +2 -2
- package/generated-types/1.0/classes/CoreUObject/FGBuildablePortal.d.ts +2 -2
- package/generated-types/1.0/classes/CoreUObject/FGBuildablePortalSatellite.d.ts +2 -2
- package/generated-types/1.0/classes/CoreUObject/FGBuildablePowerBooster.d.ts +6 -3
- package/generated-types/1.0/classes/CoreUObject/FGBuildablePowerPole.d.ts +2 -2
- package/generated-types/1.0/classes/CoreUObject/FGBuildablePowerStorage.d.ts +2 -2
- package/generated-types/1.0/classes/CoreUObject/FGBuildablePriorityPowerSwitch.d.ts +2 -2
- package/generated-types/1.0/classes/CoreUObject/FGBuildableRadarTower.d.ts +2 -2
- package/generated-types/1.0/classes/CoreUObject/FGBuildableRailroadSignal.d.ts +2 -2
- package/generated-types/1.0/classes/CoreUObject/FGBuildableRailroadStation.d.ts +2 -2
- package/generated-types/1.0/classes/CoreUObject/FGBuildableRailroadTrack.d.ts +2 -11
- package/generated-types/1.0/classes/CoreUObject/FGBuildableRamp.d.ts +1 -1
- package/generated-types/1.0/classes/CoreUObject/FGBuildableRampLightweight.d.ts +1 -1
- package/generated-types/1.0/classes/CoreUObject/FGBuildableResourceExtractor.d.ts +3 -2
- package/generated-types/1.0/classes/CoreUObject/FGBuildableResourceSink.d.ts +2 -2
- package/generated-types/1.0/classes/CoreUObject/FGBuildableResourceSinkShop.d.ts +2 -2
- package/generated-types/1.0/classes/CoreUObject/FGBuildableSnowDispenser.d.ts +1 -1
- package/generated-types/1.0/classes/CoreUObject/FGBuildableSpaceElevator.d.ts +1 -1
- package/generated-types/1.0/classes/CoreUObject/FGBuildableSplitterSmart.d.ts +2 -2
- package/generated-types/1.0/classes/CoreUObject/FGBuildableStorage.d.ts +2 -2
- package/generated-types/1.0/classes/CoreUObject/FGBuildableTradingPost.d.ts +2 -2
- package/generated-types/1.0/classes/CoreUObject/FGBuildableTrainPlatform.d.ts +2 -2
- package/generated-types/1.0/classes/CoreUObject/FGBuildableTrainPlatformCargo.d.ts +2 -2
- package/generated-types/1.0/classes/CoreUObject/FGBuildableTrainPlatformEmpty.d.ts +1 -1
- package/generated-types/1.0/classes/CoreUObject/FGBuildableWalkway.d.ts +2 -2
- package/generated-types/1.0/classes/CoreUObject/FGBuildableWalkwayLightweight.d.ts +2 -1
- package/generated-types/1.0/classes/CoreUObject/FGBuildableWall.d.ts +2 -2
- package/generated-types/1.0/classes/CoreUObject/FGBuildableWallLightweight.d.ts +1 -1
- package/generated-types/1.0/classes/CoreUObject/FGBuildableWaterPump.d.ts +2 -2
- package/generated-types/1.0/classes/CoreUObject/FGBuildableWidgetSign.d.ts +2 -2
- package/generated-types/1.0/classes/CoreUObject/FGBuildableWire.d.ts +2 -2
- package/generated-types/1.0/classes/CoreUObject/FGBuildingDescriptor.d.ts +4 -8
- package/generated-types/1.0/classes/CoreUObject/FGCentralStorageContainer.d.ts +2 -2
- package/generated-types/1.0/classes/CoreUObject/FGChainsaw.d.ts +3 -2
- package/generated-types/1.0/classes/CoreUObject/FGChargedWeapon.d.ts +3 -2
- package/generated-types/1.0/classes/CoreUObject/FGConsumableDescriptor.d.ts +2 -2
- package/generated-types/1.0/classes/CoreUObject/FGConsumableEquipment.d.ts +3 -2
- package/generated-types/1.0/classes/CoreUObject/FGConveyorPoleStackable.d.ts +1 -1
- package/generated-types/1.0/classes/CoreUObject/FGCustomizationRecipe.d.ts +2 -14
- package/generated-types/1.0/classes/CoreUObject/FGEquipment.d.ts +3 -24
- package/generated-types/1.0/classes/CoreUObject/FGEquipmentDescriptor.d.ts +2 -2
- package/generated-types/1.0/classes/CoreUObject/FGEquipmentStunSpear.d.ts +3 -2
- package/generated-types/1.0/classes/CoreUObject/FGEquipmentZipline.d.ts +3 -2
- package/generated-types/1.0/classes/CoreUObject/FGGasMask.d.ts +7 -3
- package/generated-types/1.0/classes/CoreUObject/FGGolfCartDispenser.d.ts +3 -2
- package/generated-types/1.0/classes/CoreUObject/FGHoverPack.d.ts +3 -2
- package/generated-types/1.0/classes/CoreUObject/FGItemDescriptor.d.ts +6 -42
- package/generated-types/1.0/classes/CoreUObject/FGItemDescriptorBiomass.d.ts +1 -1
- package/generated-types/1.0/classes/CoreUObject/FGItemDescriptorNuclearFuel.d.ts +2 -2
- package/generated-types/1.0/classes/CoreUObject/FGItemDescriptorPowerBoosterFuel.d.ts +2 -2
- package/generated-types/1.0/classes/CoreUObject/FGJetPack.d.ts +2 -2
- package/generated-types/1.0/classes/CoreUObject/FGJumpingStilts.d.ts +3 -3
- package/generated-types/1.0/classes/CoreUObject/FGObjectScanner.d.ts +6 -2
- package/generated-types/1.0/classes/CoreUObject/FGParachute.d.ts +16 -5
- package/generated-types/1.0/classes/CoreUObject/FGPipeHyperStart.d.ts +2 -2
- package/generated-types/1.0/classes/CoreUObject/FGPoleDescriptor.d.ts +1 -1
- package/generated-types/1.0/classes/CoreUObject/FGPortableMinerDispenser.d.ts +2 -1
- package/generated-types/1.0/classes/CoreUObject/FGPowerShardDescriptor.d.ts +2 -2
- package/generated-types/1.0/classes/CoreUObject/FGRecipe.d.ts +1 -1
- package/generated-types/1.0/classes/CoreUObject/FGResourceDescriptor.d.ts +2 -2
- package/generated-types/1.0/classes/CoreUObject/FGSchematic.d.ts +6 -122
- package/generated-types/1.0/classes/CoreUObject/FGSuitBase.d.ts +2 -2
- package/generated-types/1.0/classes/CoreUObject/FGVehicleDescriptor.d.ts +2 -2
- package/generated-types/1.0/classes/CoreUObject/FGWeapon.d.ts +3 -2
- package/generated-types/1.0/common/unassigned.d.ts +2 -115
- package/generated-types/common/classes/CoreUObject/FGFauxEntry.d.ts +7 -0
- package/generated-types/common/classes/CoreUObject/FGSchematic.d.ts +74 -0
- package/generated-types/common/common/scalar.js +1 -0
- package/generated-types/common/common/unassigned.d.ts +377 -0
- package/generated-types/common/common/unassigned.js +1 -0
- package/generated-types/common/utils/validators.d.ts +14 -0
- package/generated-types/common/utils/validators.js +14 -0
- package/generated-types/update8/classes/CoreUObject/FGAmmoTypeInstantHit.d.ts +2 -2
- package/generated-types/update8/classes/CoreUObject/FGAmmoTypeProjectile.d.ts +3 -2
- package/generated-types/update8/classes/CoreUObject/FGAmmoTypeSpreadshot.d.ts +2 -2
- package/generated-types/update8/classes/CoreUObject/FGBuildable.d.ts +4 -38
- package/generated-types/update8/classes/CoreUObject/FGBuildableAttachmentMerger.d.ts +2 -2
- package/generated-types/update8/classes/CoreUObject/FGBuildableAttachmentSplitter.d.ts +1 -1
- package/generated-types/update8/classes/CoreUObject/FGBuildableBeamLightweight.d.ts +2 -2
- package/generated-types/update8/classes/CoreUObject/FGBuildableBlueprintDesigner.d.ts +2 -2
- package/generated-types/update8/classes/CoreUObject/FGBuildableCircuitSwitch.d.ts +1 -1
- package/generated-types/update8/classes/CoreUObject/FGBuildableConveyorBelt.d.ts +6 -3
- package/generated-types/update8/classes/CoreUObject/FGBuildableConveyorLift.d.ts +7 -3
- package/generated-types/update8/classes/CoreUObject/FGBuildableCornerWall.d.ts +2 -2
- package/generated-types/update8/classes/CoreUObject/FGBuildableDockingStation.d.ts +2 -2
- package/generated-types/update8/classes/CoreUObject/FGBuildableDoor.d.ts +2 -2
- package/generated-types/update8/classes/CoreUObject/FGBuildableDroneStation.d.ts +2 -2
- package/generated-types/update8/classes/CoreUObject/FGBuildableFactory.d.ts +2 -2
- package/generated-types/update8/classes/CoreUObject/FGBuildableFactoryBuilding.d.ts +1 -1
- package/generated-types/update8/classes/CoreUObject/FGBuildableFactorySimpleProducer.d.ts +2 -2
- package/generated-types/update8/classes/CoreUObject/FGBuildableFloodlight.d.ts +2 -2
- package/generated-types/update8/classes/CoreUObject/FGBuildableFoundation.d.ts +3 -2
- package/generated-types/update8/classes/CoreUObject/FGBuildableFoundationLightweight.d.ts +1 -1
- package/generated-types/update8/classes/CoreUObject/FGBuildableFrackingActivator.d.ts +2 -2
- package/generated-types/update8/classes/CoreUObject/FGBuildableFrackingExtractor.d.ts +1 -1
- package/generated-types/update8/classes/CoreUObject/FGBuildableGenerator.d.ts +1 -1
- package/generated-types/update8/classes/CoreUObject/FGBuildableGeneratorFuel.d.ts +2 -2
- package/generated-types/update8/classes/CoreUObject/FGBuildableGeneratorGeoThermal.d.ts +2 -2
- package/generated-types/update8/classes/CoreUObject/FGBuildableGeneratorNuclear.d.ts +3 -2
- package/generated-types/update8/classes/CoreUObject/FGBuildableJumppad.d.ts +2 -2
- package/generated-types/update8/classes/CoreUObject/FGBuildableLadder.d.ts +2 -2
- package/generated-types/update8/classes/CoreUObject/FGBuildableLightSource.d.ts +3 -2
- package/generated-types/update8/classes/CoreUObject/FGBuildableLightsControlPanel.d.ts +3 -2
- package/generated-types/update8/classes/CoreUObject/FGBuildableMAM.d.ts +2 -2
- package/generated-types/update8/classes/CoreUObject/FGBuildableManufacturer.d.ts +7 -3
- package/generated-types/update8/classes/CoreUObject/FGBuildableManufacturerVariablePower.d.ts +2 -2
- package/generated-types/update8/classes/CoreUObject/FGBuildablePassthrough.d.ts +2 -2
- package/generated-types/update8/classes/CoreUObject/FGBuildablePassthroughPipeHyper.d.ts +1 -1
- package/generated-types/update8/classes/CoreUObject/FGBuildablePillarLightweight.d.ts +2 -2
- package/generated-types/update8/classes/CoreUObject/FGBuildablePipeHyper.d.ts +2 -2
- package/generated-types/update8/classes/CoreUObject/FGBuildablePipeReservoir.d.ts +2 -2
- package/generated-types/update8/classes/CoreUObject/FGBuildablePipeline.d.ts +3 -2
- package/generated-types/update8/classes/CoreUObject/FGBuildablePipelineJunction.d.ts +1 -1
- package/generated-types/update8/classes/CoreUObject/FGBuildablePipelinePump.d.ts +2 -2
- package/generated-types/update8/classes/CoreUObject/FGBuildablePipelineSupport.d.ts +2 -2
- package/generated-types/update8/classes/CoreUObject/FGBuildablePoleLightweight.d.ts +2 -2
- package/generated-types/update8/classes/CoreUObject/FGBuildablePowerPole.d.ts +2 -2
- package/generated-types/update8/classes/CoreUObject/FGBuildablePowerStorage.d.ts +2 -2
- package/generated-types/update8/classes/CoreUObject/FGBuildablePriorityPowerSwitch.d.ts +2 -2
- package/generated-types/update8/classes/CoreUObject/FGBuildableRadarTower.d.ts +2 -2
- package/generated-types/update8/classes/CoreUObject/FGBuildableRailroadSignal.d.ts +2 -2
- package/generated-types/update8/classes/CoreUObject/FGBuildableRailroadStation.d.ts +2 -2
- package/generated-types/update8/classes/CoreUObject/FGBuildableRailroadTrack.d.ts +2 -2
- package/generated-types/update8/classes/CoreUObject/FGBuildableRamp.d.ts +2 -2
- package/generated-types/update8/classes/CoreUObject/FGBuildableResourceExtractor.d.ts +3 -2
- package/generated-types/update8/classes/CoreUObject/FGBuildableResourceSink.d.ts +2 -2
- package/generated-types/update8/classes/CoreUObject/FGBuildableResourceSinkShop.d.ts +2 -2
- package/generated-types/update8/classes/CoreUObject/FGBuildableSnowDispenser.d.ts +1 -1
- package/generated-types/update8/classes/CoreUObject/FGBuildableSpaceElevator.d.ts +1 -1
- package/generated-types/update8/classes/CoreUObject/FGBuildableSplitterSmart.d.ts +2 -2
- package/generated-types/update8/classes/CoreUObject/FGBuildableStair.d.ts +2 -2
- package/generated-types/update8/classes/CoreUObject/FGBuildableStorage.d.ts +2 -2
- package/generated-types/update8/classes/CoreUObject/FGBuildableTradingPost.d.ts +2 -2
- package/generated-types/update8/classes/CoreUObject/FGBuildableTrainPlatform.d.ts +2 -2
- package/generated-types/update8/classes/CoreUObject/FGBuildableTrainPlatformCargo.d.ts +2 -2
- package/generated-types/update8/classes/CoreUObject/FGBuildableTrainPlatformEmpty.d.ts +1 -1
- package/generated-types/update8/classes/CoreUObject/FGBuildableWalkway.d.ts +2 -2
- package/generated-types/update8/classes/CoreUObject/FGBuildableWalkwayLightweight.d.ts +2 -1
- package/generated-types/update8/classes/CoreUObject/FGBuildableWall.d.ts +2 -2
- package/generated-types/update8/classes/CoreUObject/FGBuildableWallLightweight.d.ts +1 -1
- package/generated-types/update8/classes/CoreUObject/FGBuildableWaterPump.d.ts +2 -2
- package/generated-types/update8/classes/CoreUObject/FGBuildableWidgetSign.d.ts +2 -2
- package/generated-types/update8/classes/CoreUObject/FGBuildableWire.d.ts +2 -2
- package/generated-types/update8/classes/CoreUObject/FGBuildingDescriptor.d.ts +4 -8
- package/generated-types/update8/classes/CoreUObject/FGChainsaw.d.ts +3 -2
- package/generated-types/update8/classes/CoreUObject/FGChargedWeapon.d.ts +2 -2
- package/generated-types/update8/classes/CoreUObject/FGConsumableDescriptor.d.ts +2 -2
- package/generated-types/update8/classes/CoreUObject/FGConsumableEquipment.d.ts +1 -1
- package/generated-types/update8/classes/CoreUObject/FGConveyorPoleStackable.d.ts +1 -1
- package/generated-types/update8/classes/CoreUObject/FGCustomizationRecipe.d.ts +2 -14
- package/generated-types/update8/classes/CoreUObject/FGEquipment.d.ts +4 -25
- package/generated-types/update8/classes/CoreUObject/FGEquipmentDescriptor.d.ts +2 -2
- package/generated-types/update8/classes/CoreUObject/FGEquipmentStunSpear.d.ts +2 -2
- package/generated-types/update8/classes/CoreUObject/FGEquipmentZipline.d.ts +2 -2
- package/generated-types/update8/classes/CoreUObject/FGGasMask.d.ts +2 -2
- package/generated-types/update8/classes/CoreUObject/FGGolfCartDispenser.d.ts +2 -2
- package/generated-types/update8/classes/CoreUObject/FGHoverPack.d.ts +2 -2
- package/generated-types/update8/classes/CoreUObject/FGItemDescriptor.d.ts +5 -42
- package/generated-types/update8/classes/CoreUObject/FGItemDescriptorBiomass.d.ts +1 -1
- package/generated-types/update8/classes/CoreUObject/FGItemDescriptorNuclearFuel.d.ts +2 -2
- package/generated-types/update8/classes/CoreUObject/FGJetPack.d.ts +2 -2
- package/generated-types/update8/classes/CoreUObject/FGJumpingStilts.d.ts +2 -2
- package/generated-types/update8/classes/CoreUObject/FGObjectScanner.d.ts +2 -2
- package/generated-types/update8/classes/CoreUObject/FGParachute.d.ts +2 -2
- package/generated-types/update8/classes/CoreUObject/FGPipeHyperStart.d.ts +2 -2
- package/generated-types/update8/classes/CoreUObject/FGPoleDescriptor.d.ts +1 -1
- package/generated-types/update8/classes/CoreUObject/FGPortableMinerDispenser.d.ts +1 -1
- package/generated-types/update8/classes/CoreUObject/FGRecipe.d.ts +1 -1
- package/generated-types/update8/classes/CoreUObject/FGResourceDescriptor.d.ts +2 -2
- package/generated-types/update8/classes/CoreUObject/FGSchematic.d.ts +5 -122
- package/generated-types/update8/classes/CoreUObject/FGSuitBase.d.ts +2 -2
- package/generated-types/update8/classes/CoreUObject/FGVehicleDescriptor.d.ts +2 -2
- package/generated-types/update8/classes/CoreUObject/FGWeapon.d.ts +3 -2
- package/generated-types/update8/common/unassigned.d.ts +3 -116
- package/lib/CustomParsingTypes/TypedString.d.ts +5 -3
- package/lib/CustomParsingTypes/TypedString.js +11 -6
- package/lib/CustomParsingTypes/ValueToRegexFormatter.d.ts +7 -0
- package/lib/CustomParsingTypes/ValueToRegexFormatter.js +70 -2
- package/lib/DataDiscovery/CustomTypes/BooleanOrBooleanExtended.d.ts +2 -2
- package/lib/DataDiscovery/CustomTypes/BooleanOrBooleanExtended.js +3 -1
- package/lib/DataDiscovery/CustomTypes/TypedString.d.ts +2 -0
- package/lib/DataDiscovery/CustomTypes/TypedString.js +4 -3
- package/lib/DataDiscovery/JsonSchema/Object.d.ts +5 -2
- package/lib/DataDiscovery/JsonSchema/Object.js +35 -4
- package/lib/DataDiscovery/JsonSchema/OneOf.js +3 -0
- package/lib/DataDiscovery/JsonSchema/Ref.js +10 -2
- package/lib/DataDiscovery.js +10 -1
- package/lib/DocsSchema.d.ts +2 -0
- package/lib/DocsSchema.js +7 -0
- package/lib/DocsToAutoImport/from_Node_array.js +12 -12
- package/lib/DocsTsAutoImports.d.ts +4 -1
- package/lib/DocsTsAutoImports.js +45 -4
- package/lib/DocsTsGenerator.d.ts +9746 -10512
- package/lib/DocsTsGenerator.js +32 -9
- package/lib/DocsValidation.js +2 -0
- package/lib/StringStartsWith.d.ts +5 -0
- package/lib/StringStartsWith.js +15 -0
- package/lib/TsFactoryWrapper.js +2 -1
- package/lib/TypeDefinitionDiscovery/CustomParsingTypes/typed_string.d.ts +2 -2
- package/lib/TypeDefinitionDiscovery/CustomParsingTypes/typed_string.js +2 -2
- package/lib/TypeDefinitionDiscovery/JsonSchema/Object/ExtendsObject.d.ts +3 -3
- package/lib/TypeDefinitionDiscovery/JsonSchema/Object/ExtendsObject.js +9 -3
- package/lib/TypeDefinitionDiscovery/JsonSchema/ObjectType.d.ts +4 -2
- package/lib/TypeDefinitionDiscovery/JsonSchema/ObjectType.js +10 -2
- package/lib/TypeDefinitionDiscovery.js +56 -10
- package/lib/TypeDefinitionWriter.js +28 -7
- package/lib/TypesDiscovery/JsonSchema/$ref.d.ts +7 -0
- package/lib/TypesDiscovery/JsonSchema/$ref.js +42 -0
- package/lib/TypesDiscovery.js +7 -4
- package/lib/helpers.js +5 -0
- package/package.json +1 -1
- package/schema/1.0.schema.json +1236 -2584
- package/schema/common.schema.json +2005 -0
- package/schema/update8.schema.json +803 -2216
- package/types-progress--common.md +98 -0
- package/types-progress--update8.md +58 -47
- package/types-progress--version_1_0_0_0.md +65 -48
- package/generated-types/update8/common/scalar.d.ts +0 -7
- /package/generated-types/{1.0/common/scalar.js → common/classes/CoreUObject/FGFauxEntry.js} +0 -0
- /package/generated-types/{update8/common/scalar.js → common/classes/CoreUObject/FGSchematic.js} +0 -0
- /package/generated-types/{1.0 → common}/common/scalar.d.ts +0 -0
package/lib/DocsTsGenerator.js
CHANGED
|
@@ -12,6 +12,7 @@ import { TypedString, } from './CustomParsingTypes/TypedString';
|
|
|
12
12
|
import { compile, esmify, } from '@satisfactory-dev/ajv-utilities';
|
|
13
13
|
import { DocsSchemaByVersion, } from './DocsSchema';
|
|
14
14
|
import { UnrealEngineString, } from './CustomParsingTypes/UnrealEngineString';
|
|
15
|
+
import common_schema from '../schema/common.schema.json' with { type: 'json' };
|
|
15
16
|
const __dirname = dirname(fileURLToPath(import.meta.url));
|
|
16
17
|
export class ValidationError extends Error {
|
|
17
18
|
errors;
|
|
@@ -25,17 +26,21 @@ export class ValidationError extends Error {
|
|
|
25
26
|
export class DocsTsGeneratorVersion {
|
|
26
27
|
docs;
|
|
27
28
|
cache_path;
|
|
29
|
+
common_types_from_module;
|
|
28
30
|
docs_path;
|
|
31
|
+
types_from_module;
|
|
29
32
|
// eslint-disable-next-line max-len
|
|
30
33
|
UnrealEngineString_quote_mode;
|
|
31
34
|
constructor({
|
|
32
35
|
// raw JSON or path to UTF-16LE encoded Docs.json
|
|
33
36
|
docs_path,
|
|
34
37
|
// optional cache folder path for cacheable resources
|
|
35
|
-
cache_path = undefined, UnrealEngineString_quote_mode, }) {
|
|
38
|
+
cache_path = undefined, UnrealEngineString_quote_mode, types_from_module = undefined, common_types_from_module = undefined, }) {
|
|
36
39
|
this.cache_path = cache_path;
|
|
37
40
|
this.docs_path = docs_path;
|
|
38
41
|
this.UnrealEngineString_quote_mode = UnrealEngineString_quote_mode;
|
|
42
|
+
this.types_from_module = types_from_module;
|
|
43
|
+
this.common_types_from_module = common_types_from_module;
|
|
39
44
|
}
|
|
40
45
|
}
|
|
41
46
|
export class DocsTsGenerator {
|
|
@@ -43,7 +48,6 @@ export class DocsTsGenerator {
|
|
|
43
48
|
schema_data = new DocsSchemaByVersion();
|
|
44
49
|
ajv;
|
|
45
50
|
docs_versions;
|
|
46
|
-
types_from_module;
|
|
47
51
|
static PERF_EARLY_RETURN = 'Early Return of Docs.json';
|
|
48
52
|
static PERF_FAILURE = 'Failure to load Docs.json';
|
|
49
53
|
static PERF_FILE_PARSED = 'Docs.json contents parsed';
|
|
@@ -57,23 +61,28 @@ export class DocsTsGenerator {
|
|
|
57
61
|
// Ajv instance
|
|
58
62
|
ajv,
|
|
59
63
|
// Docs object
|
|
60
|
-
docs_versions,
|
|
64
|
+
docs_versions, }) {
|
|
61
65
|
if (Object.keys(docs_versions).length < 1) {
|
|
62
66
|
throw new Error('No versions specified!');
|
|
63
67
|
}
|
|
64
68
|
this.ajv = ajv;
|
|
65
69
|
this.docs_versions = docs_versions;
|
|
66
|
-
this.types_from_module = types_from_module;
|
|
67
70
|
}
|
|
68
71
|
async definition(version, $ref) {
|
|
69
72
|
const schema = await this.schema(version);
|
|
70
73
|
if (!property_exists_on_object(schema.$defs, $ref)) {
|
|
74
|
+
return this.definition_from_common($ref);
|
|
75
|
+
}
|
|
76
|
+
return schema.$defs[$ref];
|
|
77
|
+
}
|
|
78
|
+
definition_from_common($ref) {
|
|
79
|
+
if (!property_exists_on_object(common_schema.$defs, $ref)) {
|
|
71
80
|
throw new NoMatchError({
|
|
72
81
|
$ref,
|
|
73
|
-
options: Object.keys(
|
|
82
|
+
options: Object.keys(common_schema.$defs),
|
|
74
83
|
});
|
|
75
84
|
}
|
|
76
|
-
return
|
|
85
|
+
return Promise.resolve(common_schema.$defs[$ref]);
|
|
77
86
|
}
|
|
78
87
|
async get(version) {
|
|
79
88
|
return this.validate(version, await this.load(version), await this.schema(version));
|
|
@@ -85,9 +94,19 @@ export class DocsTsGenerator {
|
|
|
85
94
|
else if ('version_1_0_0_0' === version) {
|
|
86
95
|
return this.schema_version_1_0_0_0();
|
|
87
96
|
}
|
|
97
|
+
else if ('common' === version) {
|
|
98
|
+
return this.schema_common();
|
|
99
|
+
}
|
|
88
100
|
throw new Error('Could not find specified schema!');
|
|
89
101
|
}
|
|
90
102
|
// eslint-disable-next-line max-len
|
|
103
|
+
async schema_common() {
|
|
104
|
+
const schema = this.schema_data.common.en_US.schema;
|
|
105
|
+
// eslint-disable-next-line max-len
|
|
106
|
+
await this.validate_schema('common', schema);
|
|
107
|
+
return schema;
|
|
108
|
+
}
|
|
109
|
+
// eslint-disable-next-line max-len
|
|
91
110
|
async schema_update8() {
|
|
92
111
|
const schema = this.schema_data.update8.en_US.schema;
|
|
93
112
|
// eslint-disable-next-line max-len
|
|
@@ -120,7 +139,9 @@ export class DocsTsGenerator {
|
|
|
120
139
|
let maybe_json;
|
|
121
140
|
try {
|
|
122
141
|
if (docs.cache_path) {
|
|
123
|
-
const
|
|
142
|
+
const file_sha512 = createHash('sha512');
|
|
143
|
+
file_sha512.update(await readFile(docs.docs_path));
|
|
144
|
+
const utf8_filename = basename(docs.docs_path).replace(/\.json$/, `.utf8.${file_sha512.digest('hex')}.json`);
|
|
124
145
|
const utf8_filepath = `${docs.cache_path}/${utf8_filename}`;
|
|
125
146
|
if (existsSync(utf8_filepath)) {
|
|
126
147
|
const file_contents = await readFile(utf8_filepath);
|
|
@@ -182,8 +203,10 @@ export class DocsTsGenerator {
|
|
|
182
203
|
if (object_has_property(schema, '$defs', value_is_non_array_object)
|
|
183
204
|
&& object_has_only_properties_that_match_predicate(schema.$defs, value_is_non_array_object)) {
|
|
184
205
|
const { $defs } = schema;
|
|
185
|
-
|
|
186
|
-
|
|
206
|
+
const { $defs: common_$defs, } = common_schema;
|
|
207
|
+
if (object_has_only_properties_that_match_predicate($defs, value_is_non_array_object)
|
|
208
|
+
&& object_has_only_properties_that_match_predicate(common_$defs, value_is_non_array_object)) {
|
|
209
|
+
TypedString.instance().configure_ajv($defs, common_$defs, this.ajv);
|
|
187
210
|
}
|
|
188
211
|
}
|
|
189
212
|
if (docs.cache_path) {
|
package/lib/DocsValidation.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { _, } from 'ajv/dist/2020';
|
|
2
2
|
import { UnrealEngineString, } from './CustomParsingTypes/UnrealEngineString';
|
|
3
3
|
import { is_string, } from '@satisfactory-dev/predicates.ts';
|
|
4
|
+
import common_schema from '../schema/common.schema.json' with { type: 'json' };
|
|
4
5
|
export function string_to_native_type(data, shallow = false) {
|
|
5
6
|
data = data.trim();
|
|
6
7
|
if (/^\(.+\)$/.test(data)) {
|
|
@@ -157,6 +158,7 @@ export function configure_ajv(ajv) {
|
|
|
157
158
|
return;
|
|
158
159
|
}
|
|
159
160
|
already_configured.add(ajv);
|
|
161
|
+
ajv.addSchema(common_schema);
|
|
160
162
|
UnrealEngineString.configure_ajv(ajv);
|
|
161
163
|
ajv.addKeyword({
|
|
162
164
|
keyword: 'string_starts_with',
|
|
@@ -4,6 +4,11 @@ export type StringStartsWith<Prefix extends string, Suffix extends string = stri
|
|
|
4
4
|
} as T extends string ? `${Prefix}${Suffix}` : never]: string;
|
|
5
5
|
};
|
|
6
6
|
export type local_ref<T extends string> = StringStartsWith<'#/$defs/', T>;
|
|
7
|
+
export type common_ref<T extends string> = StringStartsWith<'common.schema.json#/$defs/', T>;
|
|
8
|
+
export type any_ref<T extends string> = (local_ref<T> | common_ref<T>);
|
|
7
9
|
export declare function local_ref<T extends string = string>(ref_like_string: T): local_ref<T>;
|
|
10
|
+
export declare function common_ref<T extends string = string>(ref_like_string: T): common_ref<T>;
|
|
8
11
|
export declare function is_$ref(maybe: unknown): maybe is (typeof maybe extends string ? local_ref<typeof maybe> : never);
|
|
12
|
+
export declare function is_common_$ref(maybe: unknown): maybe is (typeof maybe extends string ? common_ref<typeof maybe> : never);
|
|
9
13
|
export declare function $ref_in_array(maybe_$ref: unknown, $ref_array: local_ref<string>[]): maybe_$ref is never;
|
|
14
|
+
export declare function common_$ref_in_array(maybe_$ref: unknown, $ref_array: common_ref<string>[]): maybe_$ref is never;
|
package/lib/StringStartsWith.js
CHANGED
|
@@ -9,9 +9,24 @@ export function local_ref(ref_like_string) {
|
|
|
9
9
|
}
|
|
10
10
|
return `#/$defs/${ref_like_string}`;
|
|
11
11
|
}
|
|
12
|
+
export function common_ref(ref_like_string) {
|
|
13
|
+
if (/\s+/.test(ref_like_string)) {
|
|
14
|
+
throw new Error('No spacing characters allowed!');
|
|
15
|
+
}
|
|
16
|
+
if (ref_like_string.startsWith('common.schema.json#/$defs/')) {
|
|
17
|
+
throw new NoMatchError(ref_like_string, 'Already a common ref!');
|
|
18
|
+
}
|
|
19
|
+
return `common.schema.json#/$defs/${ref_like_string}`;
|
|
20
|
+
}
|
|
12
21
|
export function is_$ref(maybe) {
|
|
13
22
|
return is_string(maybe) && maybe.startsWith('#/$defs/');
|
|
14
23
|
}
|
|
24
|
+
export function is_common_$ref(maybe) {
|
|
25
|
+
return is_string(maybe) && maybe.startsWith('common.schema.json#/$defs/');
|
|
26
|
+
}
|
|
15
27
|
export function $ref_in_array(maybe_$ref, $ref_array) {
|
|
16
28
|
return is_$ref(maybe_$ref) && $ref_array.includes(maybe_$ref);
|
|
17
29
|
}
|
|
30
|
+
export function common_$ref_in_array(maybe_$ref, $ref_array) {
|
|
31
|
+
return is_common_$ref(maybe_$ref) && $ref_array.includes(maybe_$ref);
|
|
32
|
+
}
|
package/lib/TsFactoryWrapper.js
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import ts from 'typescript';
|
|
2
2
|
import { is_string, non_empty_map, } from '@satisfactory-dev/predicates.ts';
|
|
3
3
|
export function adjust_class_name(class_name) {
|
|
4
|
-
if ('boolean' === class_name
|
|
4
|
+
if ('boolean' === class_name
|
|
5
|
+
|| 'common_type__boolean' === class_name) {
|
|
5
6
|
return 'Docs_boolean';
|
|
6
7
|
}
|
|
7
8
|
if ('class' === class_name) {
|
|
@@ -2,10 +2,10 @@ import { TupleTypeNode, TypeLiteralNode, UnionTypeNode } from 'typescript';
|
|
|
2
2
|
import { TypeDefinitionDiscovery } from '../../TypeDefinitionDiscovery';
|
|
3
3
|
import { GeneratorDoesDiscovery } from '../GeneratorDoesDiscovery';
|
|
4
4
|
import { typed_string_inner_array_prefixItems_type, typed_string_inner_array_type, typed_string_inner_object_pattern_type, typed_string_inner_object_type, typed_string_inner_object_type_no_required, typed_string_parent_type } from '../../CustomParsingTypes/TypedString';
|
|
5
|
-
import { local_ref } from '../../StringStartsWith';
|
|
5
|
+
import { common_ref, local_ref } from '../../StringStartsWith';
|
|
6
6
|
export declare class typed_string extends GeneratorDoesDiscovery<typed_string_parent_type, TypeLiteralNode | TupleTypeNode | UnionTypeNode> {
|
|
7
7
|
private readonly known_types;
|
|
8
|
-
constructor(supported_refs: local_ref<string>[], discovery: TypeDefinitionDiscovery);
|
|
8
|
+
constructor(supported_refs: local_ref<string>[], supported_common_refs: common_ref<string>[], discovery: TypeDefinitionDiscovery);
|
|
9
9
|
generate(): (raw_data: typed_string_parent_type) => TypeLiteralNode | TupleTypeNode | UnionTypeNode;
|
|
10
10
|
static is_array_type(maybe: typed_string_inner_object_type_no_required | typed_string_inner_object_type | typed_string_inner_object_pattern_type | typed_string_inner_array_type | typed_string_inner_array_prefixItems_type): maybe is typed_string_inner_array_type;
|
|
11
11
|
static is_object_pattern_type(maybe: typed_string_inner_object_type_no_required | typed_string_inner_object_type | typed_string_inner_object_pattern_type | typed_string_inner_array_type | typed_string_inner_array_prefixItems_type): maybe is typed_string_inner_object_pattern_type;
|
|
@@ -28,11 +28,11 @@ function create_combinations(values) {
|
|
|
28
28
|
}
|
|
29
29
|
export class typed_string extends GeneratorDoesDiscovery {
|
|
30
30
|
known_types;
|
|
31
|
-
constructor(supported_refs, discovery) {
|
|
31
|
+
constructor(supported_refs, supported_common_refs, discovery) {
|
|
32
32
|
super({
|
|
33
33
|
...generate_object_parent_schema(),
|
|
34
34
|
$defs: {
|
|
35
|
-
...generate_typed_string_$defs(supported_refs),
|
|
35
|
+
...generate_typed_string_$defs(supported_refs, supported_common_refs),
|
|
36
36
|
},
|
|
37
37
|
}, discovery);
|
|
38
38
|
this.known_types = [
|
|
@@ -2,7 +2,7 @@ import { IntersectionTypeNode, LiteralTypeNode, TypeReferenceNode } from 'typesc
|
|
|
2
2
|
import { RawData as ObjectTypeRawData } from '../ObjectType';
|
|
3
3
|
import { TypeDefinitionDiscovery } from '../../../TypeDefinitionDiscovery';
|
|
4
4
|
import { GeneratorDoesDiscovery } from '../../GeneratorDoesDiscovery';
|
|
5
|
-
import { local_ref } from '../../../StringStartsWith';
|
|
5
|
+
import { common_ref, local_ref } from '../../../StringStartsWith';
|
|
6
6
|
type RawData = ObjectTypeRawData & {
|
|
7
7
|
properties: {
|
|
8
8
|
[key: string]: unknown;
|
|
@@ -16,8 +16,8 @@ type Type = TypeReferenceNode | (IntersectionTypeNode & {
|
|
|
16
16
|
];
|
|
17
17
|
});
|
|
18
18
|
export declare class ExtendsObject extends GeneratorDoesDiscovery<RawData, Type> {
|
|
19
|
-
constructor(supported_refs: string[], discovery: TypeDefinitionDiscovery);
|
|
19
|
+
constructor(supported_refs: string[], common_supported_refs: string[], discovery: TypeDefinitionDiscovery);
|
|
20
20
|
generate(): (raw_data: RawData) => Type;
|
|
21
|
-
protected create_reference_type($ref: local_ref<string>): TypeReferenceNode;
|
|
21
|
+
protected create_reference_type($ref: local_ref<string> | common_ref<string>): TypeReferenceNode;
|
|
22
22
|
}
|
|
23
23
|
export {};
|
|
@@ -3,7 +3,7 @@ import { schema as ObjectTypeSchema, } from '../ObjectType';
|
|
|
3
3
|
import { adjust_class_name, } from '../../../TsFactoryWrapper';
|
|
4
4
|
import { GeneratorDoesDiscovery, } from '../../GeneratorDoesDiscovery';
|
|
5
5
|
export class ExtendsObject extends GeneratorDoesDiscovery {
|
|
6
|
-
constructor(supported_refs, discovery) {
|
|
6
|
+
constructor(supported_refs, common_supported_refs, discovery) {
|
|
7
7
|
const { type, additionalProperties, properties, ...rest } = ObjectTypeSchema;
|
|
8
8
|
super({
|
|
9
9
|
...rest,
|
|
@@ -12,7 +12,10 @@ export class ExtendsObject extends GeneratorDoesDiscovery {
|
|
|
12
12
|
required: ['$ref'],
|
|
13
13
|
properties: {
|
|
14
14
|
...properties,
|
|
15
|
-
$ref: { type: 'string', enum:
|
|
15
|
+
$ref: { type: 'string', enum: [
|
|
16
|
+
...supported_refs,
|
|
17
|
+
...common_supported_refs,
|
|
18
|
+
] },
|
|
16
19
|
unevaluatedProperties: { type: 'boolean', const: false },
|
|
17
20
|
},
|
|
18
21
|
}, discovery);
|
|
@@ -34,6 +37,9 @@ export class ExtendsObject extends GeneratorDoesDiscovery {
|
|
|
34
37
|
};
|
|
35
38
|
}
|
|
36
39
|
create_reference_type($ref) {
|
|
37
|
-
|
|
40
|
+
const ref_substring = $ref.startsWith('common.schema.json#/$defs/')
|
|
41
|
+
? `common_type__${$ref.substring(26)}`
|
|
42
|
+
: $ref.substring(8);
|
|
43
|
+
return ts.factory.createTypeReferenceNode(adjust_class_name(`${ref_substring}__type`));
|
|
38
44
|
}
|
|
39
45
|
}
|
|
@@ -7,7 +7,12 @@ export const schema = {
|
|
|
7
7
|
required: ['type', 'properties'],
|
|
8
8
|
additionalProperties: false,
|
|
9
9
|
properties: {
|
|
10
|
-
$ref: {
|
|
10
|
+
$ref: {
|
|
11
|
+
oneOf: [
|
|
12
|
+
{ type: 'string', pattern: '^#/\\$defs/' },
|
|
13
|
+
{ type: 'string', pattern: '^common\\.schema\\.json#/\\$defs/' },
|
|
14
|
+
],
|
|
15
|
+
},
|
|
11
16
|
type: { type: 'string', const: 'object' },
|
|
12
17
|
additionalProperties: { type: 'boolean', const: false },
|
|
13
18
|
unevaluatedProperties: { type: 'boolean', const: false },
|
|
@@ -64,8 +69,11 @@ export class ObjectType extends GeneratorDoesDiscovery {
|
|
|
64
69
|
type = type_reference_node('Exclude', type, exclude);
|
|
65
70
|
}
|
|
66
71
|
else if ('$ref' in raw_data && is_string(raw_data.$ref)) {
|
|
72
|
+
const $ref_substring = raw_data.$ref.startsWith('common.schema.json#/$defs/')
|
|
73
|
+
? `common_type__${raw_data.$ref.substring(26)}`
|
|
74
|
+
: raw_data.$ref.substring(8);
|
|
67
75
|
type = ts.factory.createIntersectionTypeNode([
|
|
68
|
-
type_reference_node(adjust_class_name(`${
|
|
76
|
+
type_reference_node(adjust_class_name(`${$ref_substring}__type`)),
|
|
69
77
|
type,
|
|
70
78
|
]);
|
|
71
79
|
}
|
|
@@ -13,16 +13,24 @@ import { adjust_class_name, create_modifiers, } from './TsFactoryWrapper';
|
|
|
13
13
|
import { reduce, remap, remove_indentation, } from './MarkdownUtilities';
|
|
14
14
|
import { compile, } from '@satisfactory-dev/ajv-utilities';
|
|
15
15
|
import { NoMatchError, } from './Exceptions';
|
|
16
|
+
import common_schema from '../schema/common.schema.json' with { type: 'json' };
|
|
16
17
|
function is_schema_with_$defs(schema, discovered_types) {
|
|
17
18
|
return (object_has_property(schema, '$defs', value_is_non_array_object)
|
|
18
|
-
&& Object.keys(schema.$defs).every(maybe => (maybe.startsWith('#/$defs/')
|
|
19
|
+
&& Object.keys(schema.$defs).every(maybe => (maybe.startsWith('common.schema.json#/$defs/')
|
|
19
20
|
? maybe
|
|
20
|
-
:
|
|
21
|
+
: (maybe.startsWith('#/$defs/')
|
|
22
|
+
? maybe
|
|
23
|
+
: `#/$defs/${maybe}`)) in discovered_types)
|
|
21
24
|
&& Object.keys(discovered_types).every(maybe => {
|
|
25
|
+
if (maybe.startsWith('common.schema.json#/$defs/')) {
|
|
26
|
+
const ref = maybe.substring(26);
|
|
27
|
+
const common_$defs = common_schema.$defs;
|
|
28
|
+
return (object_has_property(common_$defs, ref, value_is_non_array_object));
|
|
29
|
+
}
|
|
22
30
|
const ref = (maybe.startsWith('#/$defs/')
|
|
23
31
|
? maybe.substring(8)
|
|
24
32
|
: maybe);
|
|
25
|
-
return value_is_non_array_object(schema.$defs[ref]);
|
|
33
|
+
return value_is_non_array_object(schema.$defs[ref]) || (ref in common_schema.$defs);
|
|
26
34
|
}));
|
|
27
35
|
}
|
|
28
36
|
export class TypeDefinitionDiscovery extends FilesGenerator {
|
|
@@ -67,7 +75,9 @@ export class TypeDefinitionDiscovery extends FilesGenerator {
|
|
|
67
75
|
const types = await this.discover_type_$defs();
|
|
68
76
|
for (const entry of Object.entries(types.found_types)) {
|
|
69
77
|
const [definition, generator] = entry;
|
|
70
|
-
const $ref = definition.
|
|
78
|
+
const $ref = definition.startsWith('common.schema.json#/$defs/')
|
|
79
|
+
? definition.substring(26)
|
|
80
|
+
: definition.substring(8);
|
|
71
81
|
const target_file = guess_filename($ref);
|
|
72
82
|
yield {
|
|
73
83
|
file: target_file,
|
|
@@ -106,11 +116,27 @@ export class TypeDefinitionDiscovery extends FilesGenerator {
|
|
|
106
116
|
'FGEquipmentDescriptor--base': 'FGEquipment',
|
|
107
117
|
};
|
|
108
118
|
const discovered_types = await this.types_discovery.discover_types();
|
|
119
|
+
const all_referenced_common_types = [
|
|
120
|
+
...discovered_types.discovered_types,
|
|
121
|
+
...discovered_types.missed_types,
|
|
122
|
+
]
|
|
123
|
+
.filter(e => e.startsWith('common.schema.json#/$defs/'))
|
|
124
|
+
.map(e => e.substring(26));
|
|
109
125
|
const all_referenced_types = [
|
|
110
126
|
...discovered_types.discovered_types,
|
|
111
127
|
...discovered_types.missed_types,
|
|
112
|
-
].map(e =>
|
|
113
|
-
|
|
128
|
+
].map(e => {
|
|
129
|
+
if (e.startsWith('common.schema.json#/$defs/')) {
|
|
130
|
+
return e.substring(26);
|
|
131
|
+
}
|
|
132
|
+
return e.substring(8);
|
|
133
|
+
}).sort((a, b) => a.localeCompare(b));
|
|
134
|
+
const supported_types = discovered_types.discovered_types.map((e) => {
|
|
135
|
+
if (e.startsWith('common.schema.json#/$defs/')) {
|
|
136
|
+
return e.substring(26);
|
|
137
|
+
}
|
|
138
|
+
return e.substring(8);
|
|
139
|
+
});
|
|
114
140
|
for (const item of all_referenced_types) {
|
|
115
141
|
const parts = item.split('--');
|
|
116
142
|
let checking = grouped_progress;
|
|
@@ -153,7 +179,9 @@ export class TypeDefinitionDiscovery extends FilesGenerator {
|
|
|
153
179
|
${'#'.repeat(group.depth)} ${group.title}
|
|
154
180
|
|
|
155
181
|
${group.members.map((key) => {
|
|
156
|
-
return `- [${supported_types.includes(key) ? 'x' : ' '}] ${key.replace(/__/g, '\\_\\_')}
|
|
182
|
+
return `- [${supported_types.includes(key) ? 'x' : ' '}] ${key.replace(/__/g, '\\_\\_')}${all_referenced_common_types.includes(key)
|
|
183
|
+
? ' (common type)'
|
|
184
|
+
: ''}`;
|
|
157
185
|
}).join('\n')}`);
|
|
158
186
|
}).join('\n\n')}
|
|
159
187
|
`);
|
|
@@ -162,15 +190,30 @@ export class TypeDefinitionDiscovery extends FilesGenerator {
|
|
|
162
190
|
const result = {
|
|
163
191
|
found_types: {},
|
|
164
192
|
missing_types: [],
|
|
193
|
+
common_types: [],
|
|
165
194
|
found_classes: [],
|
|
166
195
|
missing_classes: [],
|
|
167
196
|
};
|
|
168
197
|
const $defs = Object.keys(discovered_types);
|
|
169
198
|
for (const definition of $defs) {
|
|
170
|
-
const $ref = definition.
|
|
199
|
+
const $ref = (definition.startsWith('#/$defs/')
|
|
200
|
+
? definition.substring(8)
|
|
201
|
+
: definition.substring(26));
|
|
202
|
+
let use_definition = definition;
|
|
203
|
+
if ('common' === this.version
|
|
204
|
+
&& definition.startsWith('common.schema.json#/$defs/')) {
|
|
205
|
+
use_definition = definition.substring(18);
|
|
206
|
+
}
|
|
171
207
|
const generator = this.candidates.find(e => e.check(schema.$defs[$ref]));
|
|
172
208
|
if (generator) {
|
|
173
|
-
result.found_types[
|
|
209
|
+
result.found_types[use_definition] = generator.generate();
|
|
210
|
+
}
|
|
211
|
+
else if ('common' !== this.version
|
|
212
|
+
&& ((definition.startsWith('#/$defs/')
|
|
213
|
+
&& definition.substring(8) in common_schema.$defs)
|
|
214
|
+
|| (definition.startsWith('common.schema.json#/$defs/')
|
|
215
|
+
&& definition.substring(26) in common_schema.$defs))) {
|
|
216
|
+
result.common_types.push(definition);
|
|
174
217
|
}
|
|
175
218
|
else {
|
|
176
219
|
result.missing_types.push(definition);
|
|
@@ -217,7 +260,10 @@ export class TypeDefinitionDiscovery extends FilesGenerator {
|
|
|
217
260
|
pattern: '^\\/Script\\/CoreUObject\\.Class\'\\/Script\\/FactoryGame\\.',
|
|
218
261
|
},
|
|
219
262
|
type: { type: 'string', const: 'object' },
|
|
220
|
-
$ref: { type: 'string',
|
|
263
|
+
$ref: { type: 'string', enum: [
|
|
264
|
+
'#/$defs/NativeClass',
|
|
265
|
+
'common.schema.json#/$defs/NativeClass',
|
|
266
|
+
] },
|
|
221
267
|
unevaluatedProperties: { type: 'boolean', const: false },
|
|
222
268
|
properties: {
|
|
223
269
|
type: 'object',
|
|
@@ -10,7 +10,7 @@ import { glob, } from 'glob';
|
|
|
10
10
|
import { object_has_property, require_non_empty_array, value_is_non_array_object, } from '@satisfactory-dev/predicates.ts';
|
|
11
11
|
import ts from 'typescript';
|
|
12
12
|
import { DocsTsAutoImports, } from './DocsTsAutoImports';
|
|
13
|
-
import { dirname, } from 'node:path';
|
|
13
|
+
import { dirname, relative, } from 'node:path';
|
|
14
14
|
import { eslint_generated_types, format_code, } from './DocsTsGenerator';
|
|
15
15
|
import { UnrealEngineString as legacy_UnrealEngineString_module, } from './CustomParsingTypes/UnrealEngineString';
|
|
16
16
|
import { string_starts_with, StringPassedRegExp, } from './TypesGeneration/validators';
|
|
@@ -20,6 +20,8 @@ import { FilesGenerator as DocsFiles, } from './DocsTsGenerator/FilesGenerator';
|
|
|
20
20
|
import { DataDiscovery, } from './DataDiscovery';
|
|
21
21
|
import { __dirname_from_meta, } from './__dirname';
|
|
22
22
|
import { compile, } from '@satisfactory-dev/ajv-utilities';
|
|
23
|
+
import common_schema from '../schema/common.schema.json' with { type: 'json' };
|
|
24
|
+
import { common_ref, } from './StringStartsWith';
|
|
23
25
|
const __dirname = __dirname_from_meta(import.meta);
|
|
24
26
|
export class TypeDefinitionWriter {
|
|
25
27
|
_discovery = undefined;
|
|
@@ -85,7 +87,9 @@ export class TypeDefinitionWriter {
|
|
|
85
87
|
$defs: schema.$defs,
|
|
86
88
|
...e,
|
|
87
89
|
}));
|
|
88
|
-
if (
|
|
90
|
+
if ('common' === this.version
|
|
91
|
+
? !object_has_property(schema.$defs, 'NativeClass', value_is_non_array_object)
|
|
92
|
+
: !object_has_property(common_schema.$defs, 'NativeClass', value_is_non_array_object)) {
|
|
89
93
|
throw new Error('Could not find NativeClass on provided schema!');
|
|
90
94
|
}
|
|
91
95
|
const files = await FilesGenerator.merge_files([
|
|
@@ -100,10 +104,13 @@ export class TypeDefinitionWriter {
|
|
|
100
104
|
]);
|
|
101
105
|
performance.measure(`${this.constructor.name}.write() FilesGenerator`, `${this.constructor.name}.write() start`);
|
|
102
106
|
performance.mark(`${this.constructor.name}.write() start`);
|
|
103
|
-
const auto_imports = new DocsTsAutoImports(files);
|
|
107
|
+
const auto_imports = new DocsTsAutoImports(files, this.version);
|
|
104
108
|
const import_tracker = auto_imports.generate();
|
|
105
109
|
performance.measure(`${this.constructor.name}.write() auto_imports`, `${this.constructor.name}.write() start`);
|
|
106
110
|
await writeFile(`${__dirname}/../imports-come-from.${this.version}.json`, auto_imports.imports_come_from);
|
|
111
|
+
if ('common' === this.version) {
|
|
112
|
+
await writeFile(`${__dirname}/../common-imports.json`, auto_imports.non_faux_imports_come_from);
|
|
113
|
+
}
|
|
107
114
|
const printer = ts.createPrinter({
|
|
108
115
|
newLine: ts.NewLineKind.LineFeed,
|
|
109
116
|
});
|
|
@@ -206,9 +213,20 @@ export class TypeDefinitionWriter {
|
|
|
206
213
|
}
|
|
207
214
|
let code = await format_code(node_strings
|
|
208
215
|
.join('\n\n'));
|
|
209
|
-
|
|
210
|
-
|
|
216
|
+
const { types_from_module, common_types_from_module, } = this.docs.docs_versions[this.version] || {
|
|
217
|
+
types_from_module: undefined,
|
|
218
|
+
common_types_from_module: undefined,
|
|
219
|
+
};
|
|
220
|
+
if (types_from_module) {
|
|
221
|
+
code = code.replace(/} from '(?:\.\.\/)+(classes|common|utils)\//g, `} from '${types_from_module}/$1/`);
|
|
222
|
+
}
|
|
223
|
+
if (common_types_from_module) {
|
|
224
|
+
code = code.replace(/} from 'import_from_common;(classes|common|utils)\//g, `} from '${common_types_from_module}/$1/`);
|
|
211
225
|
}
|
|
226
|
+
else {
|
|
227
|
+
code = code.replace(/} from 'import_from_common;(classes|common|utils)\//g, `} from '${relative(dir, dirname(parent_folder))}/common/$1/`);
|
|
228
|
+
}
|
|
229
|
+
code = code.replace(/common_type__/g, '');
|
|
212
230
|
await writeFile(file_name, code);
|
|
213
231
|
}
|
|
214
232
|
performance.measure(`${this.constructor.name}.write() actually write files`, `${this.constructor.name}.write() start`);
|
|
@@ -223,8 +241,11 @@ export class TypeDefinitionWriter {
|
|
|
223
241
|
if (!this.prepared) {
|
|
224
242
|
this.prepared = true;
|
|
225
243
|
const discovery = await this.discovery;
|
|
226
|
-
const discovered_types = (await discovery.types_discovery.discover_types())
|
|
227
|
-
|
|
244
|
+
const { discovered_types, } = (await discovery.types_discovery.discover_types());
|
|
245
|
+
if ('common' === this.version) {
|
|
246
|
+
discovered_types.push(...Object.keys(common_schema.$defs).map((e) => `#/$defs/${e}`).filter(maybe => !discovered_types.includes(maybe)));
|
|
247
|
+
}
|
|
248
|
+
discovery.add_candidates(new ObjectType(discovery), new ArrayType(discovered_types, discovery), new ExtendsObject(discovered_types, Object.keys(common_schema.$defs).map(common_ref), discovery), new typed_string(discovered_types, Object.keys(common_schema.$defs).map(common_ref), discovery), new oneOf_or_anyOf(discovery));
|
|
228
249
|
}
|
|
229
250
|
}
|
|
230
251
|
static can_class_have_tree(class_node) {
|
|
@@ -5,3 +5,10 @@ export declare class $ref extends CandidatesDiscovery {
|
|
|
5
5
|
constructor(schema: SchemaObject);
|
|
6
6
|
discovery_candidates(current: unknown, discovered_types: Set<string>): [unknown, ...unknown[]] | undefined;
|
|
7
7
|
}
|
|
8
|
+
export declare class common_$ref extends CandidatesDiscovery {
|
|
9
|
+
readonly $defs: {
|
|
10
|
+
[key: string]: true;
|
|
11
|
+
};
|
|
12
|
+
constructor();
|
|
13
|
+
discovery_candidates(current: unknown, discovered_types: Set<string>): [unknown, ...unknown[]] | undefined;
|
|
14
|
+
}
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import { CandidatesDiscovery, } from '../CandidatesDiscovery';
|
|
2
2
|
import { is_string, object_has_property, value_is_non_array_object, } from '@satisfactory-dev/predicates.ts';
|
|
3
|
+
// eslint-disable-next-line max-len
|
|
4
|
+
import common_schema from '../../../schema/common.schema.json' with { type: 'json' };
|
|
3
5
|
export class $ref extends CandidatesDiscovery {
|
|
4
6
|
$defs;
|
|
5
7
|
constructor(schema) {
|
|
@@ -29,3 +31,43 @@ export class $ref extends CandidatesDiscovery {
|
|
|
29
31
|
return undefined;
|
|
30
32
|
}
|
|
31
33
|
}
|
|
34
|
+
export class common_$ref extends CandidatesDiscovery {
|
|
35
|
+
$defs;
|
|
36
|
+
constructor() {
|
|
37
|
+
super(common_schema);
|
|
38
|
+
this.$defs =
|
|
39
|
+
object_has_property(common_schema, '$defs', value_is_non_array_object)
|
|
40
|
+
? Object.fromEntries(Object.keys(common_schema.$defs).map(e => [e, true]))
|
|
41
|
+
: {};
|
|
42
|
+
}
|
|
43
|
+
discovery_candidates(current, discovered_types) {
|
|
44
|
+
const $defs = this.$defs;
|
|
45
|
+
function has_definition_$ref(maybe) {
|
|
46
|
+
return (object_has_property(maybe, '$ref', is_string)
|
|
47
|
+
&& maybe.$ref.startsWith('#/$defs/')
|
|
48
|
+
&& maybe.$ref.substring(8) in $defs);
|
|
49
|
+
}
|
|
50
|
+
function schema_has_definition(maybe, schema) {
|
|
51
|
+
return (maybe.startsWith('#/$defs/')
|
|
52
|
+
&& maybe.substring(8) in schema.$defs);
|
|
53
|
+
}
|
|
54
|
+
function schema_has_definition_from_external(maybe, schema) {
|
|
55
|
+
return (maybe.startsWith('common.schema.json#/$defs/')
|
|
56
|
+
&& maybe.substring(26) in schema.$defs);
|
|
57
|
+
}
|
|
58
|
+
if (has_definition_$ref(current)
|
|
59
|
+
&& schema_has_definition(current.$ref, this.schema)
|
|
60
|
+
&& !discovered_types.has(current.$ref)) {
|
|
61
|
+
discovered_types.add(current.$ref);
|
|
62
|
+
return [this.schema.$defs[current.$ref.substring(8)]];
|
|
63
|
+
}
|
|
64
|
+
if (value_is_non_array_object(current)
|
|
65
|
+
&& object_has_property(current, '$ref', is_string)
|
|
66
|
+
&& schema_has_definition_from_external(current.$ref, this.schema)
|
|
67
|
+
&& !discovered_types.has(current.$ref)) {
|
|
68
|
+
discovered_types.add(current.$ref);
|
|
69
|
+
return [this.schema.$defs[current.$ref.substring(26)]];
|
|
70
|
+
}
|
|
71
|
+
return undefined;
|
|
72
|
+
}
|
|
73
|
+
}
|
package/lib/TypesDiscovery.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { object_has_property, value_is_non_array_object, } from '@satisfactory-dev/predicates.ts';
|
|
2
2
|
import { properties, } from './TypesDiscovery/JsonSchema/properties';
|
|
3
3
|
import { non_empty_array_property, } from './TypesDiscovery/non_empty_array_property';
|
|
4
|
-
import { $ref, } from './TypesDiscovery/JsonSchema/$ref';
|
|
4
|
+
import { $ref, common_$ref, } from './TypesDiscovery/JsonSchema/$ref';
|
|
5
5
|
import { non_array_object_property, } from './TypesDiscovery/non_array_object_property';
|
|
6
6
|
import { compile, } from '@satisfactory-dev/ajv-utilities';
|
|
7
7
|
import { local_ref, } from './StringStartsWith';
|
|
@@ -9,6 +9,7 @@ import { typed_string, } from './TypesDiscovery/CustomParsingTypes/typed_string'
|
|
|
9
9
|
import { ConstString, } from './TypesDiscovery/JsonSchema/const';
|
|
10
10
|
import { EnumString, } from './TypesDiscovery/JsonSchema/enum';
|
|
11
11
|
import { UnrealEngineString, } from './TypesDiscovery/CustomParsingTypes/UnrealEngineString';
|
|
12
|
+
import common_schema from '../schema/common.schema.json' with { type: 'json' };
|
|
12
13
|
export class TypesDiscovery {
|
|
13
14
|
discovery;
|
|
14
15
|
candidates_discovery;
|
|
@@ -55,12 +56,13 @@ export class TypesDiscovery {
|
|
|
55
56
|
if (!object_has_property(schema, '$defs', value_is_non_array_object)) {
|
|
56
57
|
throw new Error('Schema appears to have no $defs');
|
|
57
58
|
}
|
|
58
|
-
|
|
59
|
+
const target_schema = 'common' === version ? schema : common_schema;
|
|
60
|
+
if (!object_has_property(target_schema.$defs, 'NativeClass', value_is_non_array_object)) {
|
|
59
61
|
throw new Error('Could not find NativeClass on provided schema!');
|
|
60
62
|
}
|
|
61
63
|
return compile(docs.ajv, {
|
|
62
|
-
$defs:
|
|
63
|
-
...
|
|
64
|
+
$defs: target_schema.$defs,
|
|
65
|
+
...target_schema.$defs.NativeClass,
|
|
64
66
|
});
|
|
65
67
|
}
|
|
66
68
|
static standard_jsonschema_discovery(schema) {
|
|
@@ -71,6 +73,7 @@ export class TypesDiscovery {
|
|
|
71
73
|
new non_array_object_property('items', schema),
|
|
72
74
|
new properties(schema),
|
|
73
75
|
new $ref(schema),
|
|
76
|
+
new common_$ref(),
|
|
74
77
|
new ConstString(schema),
|
|
75
78
|
new EnumString(schema),
|
|
76
79
|
];
|
package/lib/helpers.js
CHANGED
|
@@ -19,6 +19,11 @@ configure_ajv(ajv);
|
|
|
19
19
|
export const docs = new DocsTsGenerator({
|
|
20
20
|
ajv,
|
|
21
21
|
docs_versions: {
|
|
22
|
+
common: new DocsTsGeneratorVersion({
|
|
23
|
+
docs_path: `${__dirname}/../data/common/faux.json`,
|
|
24
|
+
cache_path: `${__dirname}/../data/common/`,
|
|
25
|
+
UnrealEngineString_quote_mode: 'original',
|
|
26
|
+
}),
|
|
22
27
|
version_1_0_0_0: new DocsTsGeneratorVersion({
|
|
23
28
|
docs_path: `${__dirname}/../data/1.0/en-US.json`,
|
|
24
29
|
cache_path: `${__dirname}/../data/1.0/`,
|
package/package.json
CHANGED