@satisfactory-dev/docs.json.ts 0.10.1 → 0.11.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +43 -27
- package/data-progress--update8.md +2765 -0
- package/data-progress--version_1_0_0_0.md +3053 -0
- package/foo.log +1850 -0
- package/generated-types/1.0/classes/CoreUObject/FGAmmoTypeInstantHit.d.ts +20 -0
- package/generated-types/1.0/classes/CoreUObject/FGAmmoTypeInstantHit.js +1 -0
- package/generated-types/1.0/classes/CoreUObject/FGAmmoTypeProjectile.d.ts +88 -0
- package/generated-types/1.0/classes/CoreUObject/FGAmmoTypeProjectile.js +1 -0
- package/generated-types/1.0/classes/CoreUObject/FGAmmoTypeSpreadshot.d.ts +14 -0
- package/generated-types/1.0/classes/CoreUObject/FGAmmoTypeSpreadshot.js +1 -0
- package/generated-types/1.0/classes/CoreUObject/FGBuildable.d.ts +192 -0
- package/generated-types/1.0/classes/CoreUObject/FGBuildable.js +1 -0
- package/generated-types/1.0/classes/CoreUObject/FGBuildableAttachmentMerger.d.ts +10 -0
- package/generated-types/1.0/classes/CoreUObject/FGBuildableAttachmentMerger.js +1 -0
- package/generated-types/1.0/classes/CoreUObject/FGBuildableAttachmentSplitter.d.ts +6 -0
- package/generated-types/1.0/classes/CoreUObject/FGBuildableAttachmentSplitter.js +1 -0
- package/generated-types/1.0/classes/CoreUObject/FGBuildableBeamLightweight.d.ts +15 -0
- package/generated-types/1.0/classes/CoreUObject/FGBuildableBeamLightweight.js +1 -0
- package/generated-types/1.0/classes/CoreUObject/FGBuildableBlueprintDesigner.d.ts +27 -0
- package/generated-types/1.0/classes/CoreUObject/FGBuildableBlueprintDesigner.js +1 -0
- package/generated-types/1.0/classes/CoreUObject/FGBuildableCircuitSwitch.d.ts +8 -0
- package/generated-types/1.0/classes/CoreUObject/FGBuildableCircuitSwitch.js +1 -0
- package/generated-types/1.0/classes/CoreUObject/FGBuildableConveyorBelt.d.ts +23 -0
- package/generated-types/1.0/classes/CoreUObject/FGBuildableConveyorBelt.js +1 -0
- package/generated-types/1.0/classes/CoreUObject/FGBuildableConveyorLift.d.ts +14 -0
- package/generated-types/1.0/classes/CoreUObject/FGBuildableConveyorLift.js +1 -0
- package/generated-types/1.0/classes/CoreUObject/FGBuildableCornerWall.d.ts +10 -0
- package/generated-types/1.0/classes/CoreUObject/FGBuildableCornerWall.js +1 -0
- package/generated-types/1.0/classes/CoreUObject/FGBuildableCornerWallLightweight.d.ts +5 -0
- package/generated-types/1.0/classes/CoreUObject/FGBuildableCornerWallLightweight.js +1 -0
- package/generated-types/1.0/classes/CoreUObject/FGBuildableDockingStation.d.ts +21 -0
- package/generated-types/1.0/classes/CoreUObject/FGBuildableDockingStation.js +1 -0
- package/generated-types/1.0/classes/CoreUObject/FGBuildableDoor.d.ts +23 -0
- package/generated-types/1.0/classes/CoreUObject/FGBuildableDoor.js +1 -0
- package/generated-types/1.0/classes/CoreUObject/FGBuildableDroneStation.d.ts +30 -0
- package/generated-types/1.0/classes/CoreUObject/FGBuildableDroneStation.js +1 -0
- package/generated-types/1.0/classes/CoreUObject/FGBuildableFactory.d.ts +21 -0
- package/generated-types/1.0/classes/CoreUObject/FGBuildableFactory.js +1 -0
- package/generated-types/1.0/classes/CoreUObject/FGBuildableFactoryBuilding.d.ts +9 -0
- package/generated-types/1.0/classes/CoreUObject/FGBuildableFactoryBuilding.js +1 -0
- package/generated-types/1.0/classes/CoreUObject/FGBuildableFactorySimpleProducer.d.ts +10 -0
- package/generated-types/1.0/classes/CoreUObject/FGBuildableFactorySimpleProducer.js +1 -0
- package/generated-types/1.0/classes/CoreUObject/FGBuildableFloodlight.d.ts +9 -0
- package/generated-types/1.0/classes/CoreUObject/FGBuildableFloodlight.js +1 -0
- package/generated-types/1.0/classes/CoreUObject/FGBuildableFoundation.d.ts +13 -0
- package/generated-types/1.0/classes/CoreUObject/FGBuildableFoundation.js +1 -0
- package/generated-types/1.0/classes/CoreUObject/FGBuildableFoundationLightweight.d.ts +5 -0
- package/generated-types/1.0/classes/CoreUObject/FGBuildableFoundationLightweight.js +1 -0
- package/generated-types/1.0/classes/CoreUObject/FGBuildableFrackingActivator.d.ts +18 -0
- package/generated-types/1.0/classes/CoreUObject/FGBuildableFrackingActivator.js +1 -0
- package/generated-types/1.0/classes/CoreUObject/FGBuildableFrackingExtractor.d.ts +13 -0
- package/generated-types/1.0/classes/CoreUObject/FGBuildableFrackingExtractor.js +1 -0
- package/generated-types/1.0/classes/CoreUObject/FGBuildableGenerator.d.ts +6 -0
- package/generated-types/1.0/classes/CoreUObject/FGBuildableGenerator.js +1 -0
- package/generated-types/1.0/classes/CoreUObject/FGBuildableGeneratorFuel.d.ts +95 -0
- package/generated-types/1.0/classes/CoreUObject/FGBuildableGeneratorFuel.js +1 -0
- package/generated-types/1.0/classes/CoreUObject/FGBuildableGeneratorGeoThermal.d.ts +15 -0
- package/generated-types/1.0/classes/CoreUObject/FGBuildableGeneratorGeoThermal.js +1 -0
- package/generated-types/1.0/classes/CoreUObject/FGBuildableGeneratorNuclear.d.ts +38 -0
- package/generated-types/1.0/classes/CoreUObject/FGBuildableGeneratorNuclear.js +1 -0
- package/generated-types/1.0/classes/CoreUObject/FGBuildableJumppad.d.ts +34 -0
- package/generated-types/1.0/classes/CoreUObject/FGBuildableJumppad.js +1 -0
- package/generated-types/1.0/classes/CoreUObject/FGBuildableLadder.d.ts +13 -0
- package/generated-types/1.0/classes/CoreUObject/FGBuildableLadder.js +1 -0
- package/generated-types/1.0/classes/CoreUObject/FGBuildableLightSource.d.ts +22 -0
- package/generated-types/1.0/classes/CoreUObject/FGBuildableLightSource.js +1 -0
- package/generated-types/1.0/classes/CoreUObject/FGBuildableLightsControlPanel.d.ts +13 -0
- package/generated-types/1.0/classes/CoreUObject/FGBuildableLightsControlPanel.js +1 -0
- package/generated-types/1.0/classes/CoreUObject/FGBuildableMAM.d.ts +14 -0
- package/generated-types/1.0/classes/CoreUObject/FGBuildableMAM.js +1 -0
- package/generated-types/1.0/classes/CoreUObject/FGBuildableManufacturer.d.ts +68 -0
- package/generated-types/1.0/classes/CoreUObject/FGBuildableManufacturer.js +1 -0
- package/generated-types/1.0/classes/CoreUObject/FGBuildableManufacturerVariablePower.d.ts +31 -0
- package/generated-types/1.0/classes/CoreUObject/FGBuildableManufacturerVariablePower.js +1 -0
- package/generated-types/1.0/classes/CoreUObject/FGBuildablePassthrough.d.ts +18 -0
- package/generated-types/1.0/classes/CoreUObject/FGBuildablePassthrough.js +1 -0
- package/generated-types/1.0/classes/CoreUObject/FGBuildablePassthroughPipeHyper.d.ts +5 -0
- package/generated-types/1.0/classes/CoreUObject/FGBuildablePassthroughPipeHyper.js +1 -0
- package/generated-types/1.0/classes/CoreUObject/FGBuildablePillarLightweight.d.ts +13 -0
- package/generated-types/1.0/classes/CoreUObject/FGBuildablePillarLightweight.js +1 -0
- package/generated-types/1.0/classes/CoreUObject/FGBuildablePipeHyper.d.ts +11 -0
- package/generated-types/1.0/classes/CoreUObject/FGBuildablePipeHyper.js +1 -0
- package/generated-types/1.0/classes/CoreUObject/FGBuildablePipeReservoir.d.ts +11 -0
- package/generated-types/1.0/classes/CoreUObject/FGBuildablePipeReservoir.js +1 -0
- package/generated-types/1.0/classes/CoreUObject/FGBuildablePipeline.d.ts +40 -0
- package/generated-types/1.0/classes/CoreUObject/FGBuildablePipeline.js +1 -0
- package/generated-types/1.0/classes/CoreUObject/FGBuildablePipelineJunction.d.ts +6 -0
- package/generated-types/1.0/classes/CoreUObject/FGBuildablePipelineJunction.js +1 -0
- package/generated-types/1.0/classes/CoreUObject/FGBuildablePipelinePump.d.ts +16 -0
- package/generated-types/1.0/classes/CoreUObject/FGBuildablePipelinePump.js +1 -0
- package/generated-types/1.0/classes/CoreUObject/FGBuildablePipelineSupport.d.ts +13 -0
- package/generated-types/1.0/classes/CoreUObject/FGBuildablePipelineSupport.js +1 -0
- package/generated-types/1.0/classes/CoreUObject/FGBuildablePoleBase.d.ts +5 -0
- package/generated-types/1.0/classes/CoreUObject/FGBuildablePoleBase.js +1 -0
- package/generated-types/1.0/classes/CoreUObject/FGBuildablePoleLightweight.d.ts +10 -0
- package/generated-types/1.0/classes/CoreUObject/FGBuildablePoleLightweight.js +1 -0
- package/generated-types/1.0/classes/CoreUObject/FGBuildablePortal.d.ts +61 -0
- package/generated-types/1.0/classes/CoreUObject/FGBuildablePortal.js +1 -0
- package/generated-types/1.0/classes/CoreUObject/FGBuildablePortalSatellite.d.ts +13 -0
- package/generated-types/1.0/classes/CoreUObject/FGBuildablePortalSatellite.js +1 -0
- package/generated-types/1.0/classes/CoreUObject/FGBuildablePowerBooster.d.ts +30 -0
- package/generated-types/1.0/classes/CoreUObject/FGBuildablePowerBooster.js +1 -0
- package/generated-types/1.0/classes/CoreUObject/FGBuildablePowerPole.d.ts +12 -0
- package/generated-types/1.0/classes/CoreUObject/FGBuildablePowerPole.js +1 -0
- package/generated-types/1.0/classes/CoreUObject/FGBuildablePowerStorage.d.ts +20 -0
- package/generated-types/1.0/classes/CoreUObject/FGBuildablePowerStorage.js +1 -0
- package/generated-types/1.0/classes/CoreUObject/FGBuildablePriorityPowerSwitch.d.ts +10 -0
- package/generated-types/1.0/classes/CoreUObject/FGBuildablePriorityPowerSwitch.js +1 -0
- package/generated-types/1.0/classes/CoreUObject/FGBuildableRadarTower.d.ts +11 -0
- package/generated-types/1.0/classes/CoreUObject/FGBuildableRadarTower.js +1 -0
- package/generated-types/1.0/classes/CoreUObject/FGBuildableRailroadSignal.d.ts +23 -0
- package/generated-types/1.0/classes/CoreUObject/FGBuildableRailroadSignal.js +1 -0
- package/generated-types/1.0/classes/CoreUObject/FGBuildableRailroadStation.d.ts +12 -0
- package/generated-types/1.0/classes/CoreUObject/FGBuildableRailroadStation.js +1 -0
- package/generated-types/1.0/classes/CoreUObject/FGBuildableRailroadTrack.d.ts +30 -0
- package/generated-types/1.0/classes/CoreUObject/FGBuildableRailroadTrack.js +1 -0
- package/generated-types/1.0/classes/CoreUObject/FGBuildableRamp.d.ts +7 -0
- package/generated-types/1.0/classes/CoreUObject/FGBuildableRamp.js +1 -0
- package/generated-types/1.0/classes/CoreUObject/FGBuildableRampLightweight.d.ts +5 -0
- package/generated-types/1.0/classes/CoreUObject/FGBuildableRampLightweight.js +1 -0
- package/generated-types/1.0/classes/CoreUObject/FGBuildableResourceExtractor.d.ts +39 -0
- package/generated-types/1.0/classes/CoreUObject/FGBuildableResourceExtractor.js +1 -0
- package/generated-types/1.0/classes/CoreUObject/FGBuildableResourceSink.d.ts +15 -0
- package/generated-types/1.0/classes/CoreUObject/FGBuildableResourceSink.js +1 -0
- package/generated-types/1.0/classes/CoreUObject/FGBuildableResourceSinkShop.d.ts +9 -0
- package/generated-types/1.0/classes/CoreUObject/FGBuildableResourceSinkShop.js +1 -0
- package/generated-types/1.0/classes/CoreUObject/FGBuildableSnowDispenser.d.ts +9 -0
- package/generated-types/1.0/classes/CoreUObject/FGBuildableSnowDispenser.js +1 -0
- package/generated-types/1.0/classes/CoreUObject/FGBuildableSpaceElevator.d.ts +10 -0
- package/generated-types/1.0/classes/CoreUObject/FGBuildableSpaceElevator.js +1 -0
- package/generated-types/1.0/classes/CoreUObject/FGBuildableSplitterSmart.d.ts +20 -0
- package/generated-types/1.0/classes/CoreUObject/FGBuildableSplitterSmart.js +1 -0
- package/generated-types/1.0/classes/CoreUObject/FGBuildableStorage.d.ts +11 -0
- package/generated-types/1.0/classes/CoreUObject/FGBuildableStorage.js +1 -0
- package/generated-types/1.0/classes/CoreUObject/FGBuildableTradingPost.d.ts +52 -0
- package/generated-types/1.0/classes/CoreUObject/FGBuildableTradingPost.js +1 -0
- package/generated-types/1.0/classes/CoreUObject/FGBuildableTrainPlatform.d.ts +16 -0
- package/generated-types/1.0/classes/CoreUObject/FGBuildableTrainPlatform.js +1 -0
- package/generated-types/1.0/classes/CoreUObject/FGBuildableTrainPlatformCargo.d.ts +47 -0
- package/generated-types/1.0/classes/CoreUObject/FGBuildableTrainPlatformCargo.js +1 -0
- package/generated-types/1.0/classes/CoreUObject/FGBuildableTrainPlatformEmpty.d.ts +9 -0
- package/generated-types/1.0/classes/CoreUObject/FGBuildableTrainPlatformEmpty.js +1 -0
- package/generated-types/1.0/classes/CoreUObject/FGBuildableWalkway.d.ts +22 -0
- package/generated-types/1.0/classes/CoreUObject/FGBuildableWalkway.js +1 -0
- package/generated-types/1.0/classes/CoreUObject/FGBuildableWalkwayLightweight.d.ts +11 -0
- package/generated-types/1.0/classes/CoreUObject/FGBuildableWalkwayLightweight.js +1 -0
- package/generated-types/1.0/classes/CoreUObject/FGBuildableWall.d.ts +24 -0
- package/generated-types/1.0/classes/CoreUObject/FGBuildableWall.js +1 -0
- package/generated-types/1.0/classes/CoreUObject/FGBuildableWallLightweight.d.ts +9 -0
- package/generated-types/1.0/classes/CoreUObject/FGBuildableWallLightweight.js +1 -0
- package/generated-types/1.0/classes/CoreUObject/FGBuildableWaterPump.d.ts +20 -0
- package/generated-types/1.0/classes/CoreUObject/FGBuildableWaterPump.js +1 -0
- package/generated-types/1.0/classes/CoreUObject/FGBuildableWidgetSign.d.ts +29 -0
- package/generated-types/1.0/classes/CoreUObject/FGBuildableWidgetSign.js +1 -0
- package/generated-types/1.0/classes/CoreUObject/FGBuildableWire.d.ts +15 -0
- package/generated-types/1.0/classes/CoreUObject/FGBuildableWire.js +1 -0
- package/generated-types/1.0/classes/CoreUObject/FGBuildingDescriptor.d.ts +14 -0
- package/generated-types/1.0/classes/CoreUObject/FGBuildingDescriptor.js +1 -0
- package/generated-types/1.0/classes/CoreUObject/FGCentralStorageContainer.d.ts +14 -0
- package/generated-types/1.0/classes/CoreUObject/FGCentralStorageContainer.js +1 -0
- package/generated-types/1.0/classes/CoreUObject/FGChainsaw.d.ts +53 -0
- package/generated-types/1.0/classes/CoreUObject/FGChainsaw.js +1 -0
- package/generated-types/1.0/classes/CoreUObject/FGChargedWeapon.d.ts +145 -0
- package/generated-types/1.0/classes/CoreUObject/FGChargedWeapon.js +1 -0
- package/generated-types/1.0/classes/CoreUObject/FGConsumableDescriptor.d.ts +18 -0
- package/generated-types/1.0/classes/CoreUObject/FGConsumableDescriptor.js +1 -0
- package/generated-types/1.0/classes/CoreUObject/FGConsumableEquipment.d.ts +67 -0
- package/generated-types/1.0/classes/CoreUObject/FGConsumableEquipment.js +1 -0
- package/generated-types/1.0/classes/CoreUObject/FGConveyorPoleStackable.d.ts +5 -0
- package/generated-types/1.0/classes/CoreUObject/FGConveyorPoleStackable.js +1 -0
- package/generated-types/1.0/classes/CoreUObject/FGCustomizationRecipe.d.ts +35 -0
- package/generated-types/1.0/classes/CoreUObject/FGCustomizationRecipe.js +1 -0
- package/generated-types/1.0/classes/CoreUObject/FGEquipment.d.ts +57 -0
- package/generated-types/1.0/classes/CoreUObject/FGEquipment.js +1 -0
- package/generated-types/1.0/classes/CoreUObject/FGEquipmentDescriptor.d.ts +13 -0
- package/generated-types/1.0/classes/CoreUObject/FGEquipmentDescriptor.js +1 -0
- package/generated-types/1.0/classes/CoreUObject/FGEquipmentStunSpear.d.ts +180 -0
- package/generated-types/1.0/classes/CoreUObject/FGEquipmentStunSpear.js +1 -0
- package/generated-types/1.0/classes/CoreUObject/FGEquipmentZipline.d.ts +48 -0
- package/generated-types/1.0/classes/CoreUObject/FGEquipmentZipline.js +1 -0
- package/generated-types/1.0/classes/CoreUObject/FGGasMask.d.ts +28 -0
- package/generated-types/1.0/classes/CoreUObject/FGGasMask.js +1 -0
- package/generated-types/1.0/classes/CoreUObject/FGGolfCartDispenser.d.ts +27 -0
- package/generated-types/1.0/classes/CoreUObject/FGGolfCartDispenser.js +1 -0
- package/generated-types/1.0/classes/CoreUObject/FGHoverPack.d.ts +60 -0
- package/generated-types/1.0/classes/CoreUObject/FGHoverPack.js +1 -0
- package/generated-types/1.0/classes/CoreUObject/FGItemDescriptor.d.ts +59 -0
- package/generated-types/1.0/classes/CoreUObject/FGItemDescriptor.js +1 -0
- package/generated-types/1.0/classes/CoreUObject/FGItemDescriptorBiomass.d.ts +9 -0
- package/generated-types/1.0/classes/CoreUObject/FGItemDescriptorBiomass.js +1 -0
- package/generated-types/1.0/classes/CoreUObject/FGItemDescriptorNuclearFuel.d.ts +15 -0
- package/generated-types/1.0/classes/CoreUObject/FGItemDescriptorNuclearFuel.js +1 -0
- package/generated-types/1.0/classes/CoreUObject/FGItemDescriptorPowerBoosterFuel.d.ts +10 -0
- package/generated-types/1.0/classes/CoreUObject/FGItemDescriptorPowerBoosterFuel.js +1 -0
- package/generated-types/1.0/classes/CoreUObject/FGJetPack.d.ts +37 -0
- package/generated-types/1.0/classes/CoreUObject/FGJetPack.js +1 -0
- package/generated-types/1.0/classes/CoreUObject/FGJumpingStilts.d.ts +22 -0
- package/generated-types/1.0/classes/CoreUObject/FGJumpingStilts.js +1 -0
- package/generated-types/1.0/classes/CoreUObject/FGObjectScanner.d.ts +39 -0
- package/generated-types/1.0/classes/CoreUObject/FGObjectScanner.js +1 -0
- package/generated-types/1.0/classes/CoreUObject/FGParachute.d.ts +111 -0
- package/generated-types/1.0/classes/CoreUObject/FGParachute.js +1 -0
- package/generated-types/1.0/classes/CoreUObject/FGPipeHyperStart.d.ts +19 -0
- package/generated-types/1.0/classes/CoreUObject/FGPipeHyperStart.js +1 -0
- package/generated-types/1.0/classes/CoreUObject/FGPoleDescriptor.d.ts +13 -0
- package/generated-types/1.0/classes/CoreUObject/FGPoleDescriptor.js +1 -0
- package/generated-types/1.0/classes/CoreUObject/FGPortableMinerDispenser.d.ts +31 -0
- package/generated-types/1.0/classes/CoreUObject/FGPortableMinerDispenser.js +1 -0
- package/generated-types/1.0/classes/CoreUObject/FGPowerShardDescriptor.d.ts +11 -0
- package/generated-types/1.0/classes/CoreUObject/FGPowerShardDescriptor.js +1 -0
- package/generated-types/1.0/classes/CoreUObject/FGRecipe.d.ts +9 -0
- package/generated-types/1.0/classes/CoreUObject/FGRecipe.js +1 -0
- package/generated-types/1.0/classes/CoreUObject/FGResourceDescriptor.d.ts +12 -0
- package/generated-types/1.0/classes/CoreUObject/FGResourceDescriptor.js +1 -0
- package/generated-types/1.0/classes/CoreUObject/FGSchematic.d.ts +169 -0
- package/generated-types/1.0/classes/CoreUObject/FGSchematic.js +1 -0
- package/generated-types/1.0/classes/CoreUObject/FGSuitBase.d.ts +40 -0
- package/generated-types/1.0/classes/CoreUObject/FGSuitBase.js +1 -0
- package/generated-types/1.0/classes/CoreUObject/FGVehicleDescriptor.d.ts +22 -0
- package/generated-types/1.0/classes/CoreUObject/FGVehicleDescriptor.js +1 -0
- package/generated-types/1.0/classes/CoreUObject/FGWeapon.d.ts +159 -0
- package/generated-types/1.0/classes/CoreUObject/FGWeapon.js +1 -0
- package/generated-types/1.0/common/scalar.d.ts +7 -0
- package/generated-types/1.0/common/scalar.js +1 -0
- package/generated-types/1.0/common/unassigned.d.ts +302 -0
- package/generated-types/1.0/common/unassigned.js +1 -0
- package/generated-types/1.0/utils/validators.d.ts +14 -0
- package/generated-types/1.0/utils/validators.js +14 -0
- package/lib/CustomParsingTypes/TypedString.d.ts +28 -2
- package/lib/CustomParsingTypes/TypedStringConst.d.ts +1 -1
- package/lib/CustomParsingTypes/TypedStringConst.js +2 -2
- package/lib/CustomParsingTypes/TypedStringEnum.js +1 -1
- package/lib/CustomParsingTypes/UnrealEngineString.d.ts +51 -2
- package/lib/CustomParsingTypes/UnrealEngineString.js +73 -6
- package/lib/CustomParsingTypes/ValueToRegexFormatter.d.ts +1 -0
- package/lib/CustomParsingTypes/ValueToRegexFormatter.js +12 -6
- package/lib/DataDiscovery/CustomTypes/TypedString.js +9 -1
- package/lib/DataDiscovery/CustomTypes/UnrealEngineString.js +9 -2
- package/lib/DataDiscovery/JsonSchema/Array.d.ts +10 -2
- package/lib/DataDiscovery/JsonSchema/Array.js +56 -12
- package/lib/DataDiscovery/JsonSchema/Object.js +6 -2
- package/lib/DataDiscovery/JsonSchema/OneOf.js +22 -2
- package/lib/DataDiscovery/JsonSchema/Ref.js +1 -1
- package/lib/DataDiscovery.d.ts +3 -2
- package/lib/DataDiscovery.js +7 -5
- package/lib/DocsSchema.d.ts +20 -0
- package/lib/DocsSchema.js +30 -0
- package/lib/DocsTsGenerator/FilesGenerator.d.ts +3 -2
- package/lib/DocsTsGenerator/FilesGenerator.js +5 -3
- package/lib/DocsTsGenerator.d.ts +15350 -12
- package/lib/DocsTsGenerator.js +83 -39
- package/lib/TsFactoryWrapper.d.ts +1 -1
- package/lib/TsFactoryWrapper.js +4 -4
- package/lib/TypeDefinitionDiscovery/CustomParsingTypes/UnrealEngineString.js +5 -2
- package/lib/TypeDefinitionDiscovery/CustomParsingTypes/typed_string.d.ts +5 -5
- package/lib/TypeDefinitionDiscovery/CustomParsingTypes/typed_string.js +3 -1
- package/lib/TypeDefinitionDiscovery.d.ts +3 -2
- package/lib/TypeDefinitionDiscovery.js +49 -5
- package/lib/TypeDefinitionWriter.d.ts +3 -2
- package/lib/TypeDefinitionWriter.js +15 -12
- package/lib/TypesDiscovery.d.ts +4 -3
- package/lib/TypesDiscovery.js +6 -4
- package/lib/helpers.js +14 -4
- package/package.json +3 -2
- package/schema/1.0.schema.json +13152 -0
- package/schema/update8.schema.json +98 -5
- package/types-progress--update8.md +296 -0
- package/types-progress--version_1_0_0_0.md +364 -0
package/lib/DocsTsGenerator.js
CHANGED
|
@@ -5,14 +5,13 @@ import { fileURLToPath, } from 'node:url';
|
|
|
5
5
|
import * as prettier from 'prettier';
|
|
6
6
|
import standalone from 'ajv/dist/standalone';
|
|
7
7
|
import { ESLint, } from 'eslint';
|
|
8
|
-
import update8_schema from '../schema/update8.schema.json' with {
|
|
9
|
-
type: 'json'
|
|
10
|
-
};
|
|
11
8
|
import { createHash, } from 'node:crypto';
|
|
12
9
|
import { is_non_empty_array, is_string, object_has_only_properties_that_match_predicate, object_has_property, property_exists_on_object, value_is_non_array_object, } from '@satisfactory-dev/predicates.ts';
|
|
13
10
|
import { NoMatchError, } from './Exceptions';
|
|
14
11
|
import { TypedString, } from './CustomParsingTypes/TypedString';
|
|
15
12
|
import { compile, esmify, } from '@satisfactory-dev/ajv-utilities';
|
|
13
|
+
import { DocsSchemaByVersion, } from './DocsSchema';
|
|
14
|
+
import { UnrealEngineString, } from './CustomParsingTypes/UnrealEngineString';
|
|
16
15
|
const __dirname = dirname(fileURLToPath(import.meta.url));
|
|
17
16
|
export class ValidationError extends Error {
|
|
18
17
|
errors;
|
|
@@ -23,12 +22,29 @@ export class ValidationError extends Error {
|
|
|
23
22
|
this.json = json;
|
|
24
23
|
}
|
|
25
24
|
}
|
|
26
|
-
export class
|
|
25
|
+
export class DocsTsGeneratorVersion {
|
|
27
26
|
docs;
|
|
28
27
|
cache_path;
|
|
29
28
|
docs_path;
|
|
30
|
-
ajv;
|
|
31
29
|
types_from_module;
|
|
30
|
+
// eslint-disable-next-line max-len
|
|
31
|
+
UnrealEngineString_quote_mode;
|
|
32
|
+
constructor({
|
|
33
|
+
// raw JSON or path to UTF-16LE encoded Docs.json
|
|
34
|
+
docs_path,
|
|
35
|
+
// optional cache folder path for cacheable resources
|
|
36
|
+
cache_path = undefined, UnrealEngineString_quote_mode, types_from_module = undefined, }) {
|
|
37
|
+
this.cache_path = cache_path;
|
|
38
|
+
this.docs_path = docs_path;
|
|
39
|
+
this.UnrealEngineString_quote_mode = UnrealEngineString_quote_mode;
|
|
40
|
+
this.types_from_module = types_from_module;
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
export class DocsTsGenerator {
|
|
44
|
+
// eslint-disable-next-line max-len
|
|
45
|
+
schema_data = new DocsSchemaByVersion();
|
|
46
|
+
ajv;
|
|
47
|
+
docs_versions;
|
|
32
48
|
static PERF_EARLY_RETURN = 'Early Return of Docs.json';
|
|
33
49
|
static PERF_FAILURE = 'Failure to load Docs.json';
|
|
34
50
|
static PERF_FILE_PARSED = 'Docs.json contents parsed';
|
|
@@ -41,17 +57,16 @@ export class DocsTsGenerator {
|
|
|
41
57
|
constructor({
|
|
42
58
|
// Ajv instance
|
|
43
59
|
ajv,
|
|
44
|
-
//
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
60
|
+
// Docs object
|
|
61
|
+
docs_versions, }) {
|
|
62
|
+
if (Object.keys(docs_versions).length < 1) {
|
|
63
|
+
throw new Error('No versions specified!');
|
|
64
|
+
}
|
|
48
65
|
this.ajv = ajv;
|
|
49
|
-
this.
|
|
50
|
-
this.cache_path = cache_path;
|
|
51
|
-
this.types_from_module = types_from_module;
|
|
66
|
+
this.docs_versions = docs_versions;
|
|
52
67
|
}
|
|
53
|
-
async definition($ref) {
|
|
54
|
-
const schema = await this.schema();
|
|
68
|
+
async definition(version, $ref) {
|
|
69
|
+
const schema = await this.schema(version);
|
|
55
70
|
if (!property_exists_on_object(schema.$defs, $ref)) {
|
|
56
71
|
throw new NoMatchError({
|
|
57
72
|
$ref,
|
|
@@ -60,30 +75,53 @@ export class DocsTsGenerator {
|
|
|
60
75
|
}
|
|
61
76
|
return schema.$defs[$ref];
|
|
62
77
|
}
|
|
63
|
-
async get() {
|
|
64
|
-
return this.validate(await this.load(), await this.schema());
|
|
78
|
+
async get(version) {
|
|
79
|
+
return this.validate(version, await this.load(version), await this.schema(version));
|
|
65
80
|
}
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
81
|
+
schema(version) {
|
|
82
|
+
if ('update8' === version) {
|
|
83
|
+
return this.schema_update8();
|
|
84
|
+
}
|
|
85
|
+
else if ('version_1_0_0_0' === version) {
|
|
86
|
+
return this.schema_version_1_0_0_0();
|
|
87
|
+
}
|
|
88
|
+
throw new Error('Could not find specified schema!');
|
|
89
|
+
}
|
|
90
|
+
// eslint-disable-next-line max-len
|
|
91
|
+
async schema_update8() {
|
|
92
|
+
const schema = this.schema_data.update8.en_US.schema;
|
|
93
|
+
// eslint-disable-next-line max-len
|
|
94
|
+
await this.validate_schema('update8', schema);
|
|
95
|
+
return schema;
|
|
69
96
|
}
|
|
70
|
-
|
|
71
|
-
|
|
97
|
+
// eslint-disable-next-line max-len
|
|
98
|
+
async schema_version_1_0_0_0() {
|
|
99
|
+
const schema = this.schema_data.version_1_0_0_0.en_US.schema;
|
|
100
|
+
// eslint-disable-next-line max-len
|
|
101
|
+
await this.validate_schema('version_1_0_0_0', schema);
|
|
102
|
+
return schema;
|
|
103
|
+
}
|
|
104
|
+
async load(version) {
|
|
105
|
+
const docs = this.docs_versions[version];
|
|
106
|
+
if (undefined === docs) {
|
|
107
|
+
throw new Error('Requested version not configured!');
|
|
108
|
+
}
|
|
109
|
+
if (undefined === docs.docs) {
|
|
72
110
|
performance.mark(DocsTsGenerator.PERF_START_LOADING_JSON);
|
|
73
|
-
if ('string' !== typeof
|
|
111
|
+
if ('string' !== typeof docs.docs_path) {
|
|
74
112
|
performance.measure(DocsTsGenerator.PERF_EARLY_RETURN, DocsTsGenerator.PERF_START_LOADING_JSON);
|
|
75
|
-
return
|
|
113
|
+
return docs.docs_path;
|
|
76
114
|
}
|
|
77
|
-
else if (!
|
|
115
|
+
else if (!docs.docs_path.endsWith('.json')) {
|
|
78
116
|
performance.measure(DocsTsGenerator.PERF_FAILURE, DocsTsGenerator.PERF_START_LOADING_JSON);
|
|
79
117
|
throw new Error('Probably not a JSON file');
|
|
80
118
|
}
|
|
81
119
|
else {
|
|
82
120
|
let maybe_json;
|
|
83
121
|
try {
|
|
84
|
-
if (
|
|
85
|
-
const utf8_filename = basename(
|
|
86
|
-
const utf8_filepath = `${
|
|
122
|
+
if (docs.cache_path) {
|
|
123
|
+
const utf8_filename = basename(docs.docs_path).replace(/\.json$/, '.utf8.json');
|
|
124
|
+
const utf8_filepath = `${docs.cache_path}/${utf8_filename}`;
|
|
87
125
|
if (existsSync(utf8_filepath)) {
|
|
88
126
|
const file_contents = await readFile(utf8_filepath);
|
|
89
127
|
performance.measure(DocsTsGenerator.PERF_FILE_READ, DocsTsGenerator.PERF_START_LOADING_JSON);
|
|
@@ -91,13 +129,13 @@ export class DocsTsGenerator {
|
|
|
91
129
|
performance.measure(DocsTsGenerator.PERF_FILE_PARSED, DocsTsGenerator.PERF_START_LOADING_JSON);
|
|
92
130
|
}
|
|
93
131
|
else {
|
|
94
|
-
maybe_json = await this.load_from_file(
|
|
132
|
+
maybe_json = await this.load_from_file(docs.docs_path);
|
|
95
133
|
performance.measure(DocsTsGenerator.PERF_FILE_PARSED, DocsTsGenerator.PERF_START_LOADING_JSON);
|
|
96
134
|
await writeFile(utf8_filepath, JSON.stringify(maybe_json, null, '\t') + '\n');
|
|
97
135
|
}
|
|
98
136
|
}
|
|
99
137
|
else {
|
|
100
|
-
maybe_json = await this.load_from_file(
|
|
138
|
+
maybe_json = await this.load_from_file(docs.docs_path);
|
|
101
139
|
performance.measure(DocsTsGenerator.PERF_FILE_PARSED, DocsTsGenerator.PERF_START_LOADING_JSON);
|
|
102
140
|
}
|
|
103
141
|
}
|
|
@@ -109,13 +147,13 @@ export class DocsTsGenerator {
|
|
|
109
147
|
performance.measure(DocsTsGenerator.PERF_FAILURE, DocsTsGenerator.PERF_START_LOADING_JSON);
|
|
110
148
|
throw new Error('Was expecting json to be an array!');
|
|
111
149
|
}
|
|
112
|
-
|
|
150
|
+
docs.docs = maybe_json;
|
|
113
151
|
}
|
|
114
|
-
if (undefined ===
|
|
115
|
-
throw new Error('
|
|
152
|
+
if (undefined === docs.docs) {
|
|
153
|
+
throw new Error('docs not set!');
|
|
116
154
|
}
|
|
117
155
|
}
|
|
118
|
-
return
|
|
156
|
+
return docs.docs;
|
|
119
157
|
}
|
|
120
158
|
async load_from_file(filepath) {
|
|
121
159
|
const file = await readFile(filepath, {
|
|
@@ -125,18 +163,22 @@ export class DocsTsGenerator {
|
|
|
125
163
|
const utf8 = Buffer.from(file).toString('utf-8');
|
|
126
164
|
return JSON.parse(utf8.trim());
|
|
127
165
|
}
|
|
128
|
-
async validate(json, schema) {
|
|
166
|
+
async validate(version, json, schema) {
|
|
129
167
|
performance.mark(DocsTsGenerator.PERF_VALIDATION_STARTED);
|
|
130
|
-
const validateDocs = await this.validate_schema(schema);
|
|
168
|
+
const validateDocs = await this.validate_schema(version, schema);
|
|
131
169
|
performance.measure(DocsTsGenerator.PERF_VALIDATION_COMPILED, DocsTsGenerator.PERF_VALIDATION_STARTED);
|
|
132
170
|
const result = validateDocs(json);
|
|
133
171
|
performance.measure(DocsTsGenerator.PERF_VALIDATION_FINISHED, DocsTsGenerator.PERF_VALIDATION_STARTED);
|
|
134
172
|
if (!result) {
|
|
135
|
-
throw new ValidationError(
|
|
173
|
+
throw new ValidationError(`Failed to validate ${version} against the provided JSON Schema`, validateDocs.errors, json);
|
|
136
174
|
}
|
|
137
175
|
return json;
|
|
138
176
|
}
|
|
139
|
-
async validate_schema(schema) {
|
|
177
|
+
async validate_schema(version, schema) {
|
|
178
|
+
const docs = this.docs_versions[version];
|
|
179
|
+
if (undefined === docs) {
|
|
180
|
+
throw new Error('Requested version not configured!');
|
|
181
|
+
}
|
|
140
182
|
if (object_has_property(schema, '$defs', value_is_non_array_object)
|
|
141
183
|
&& object_has_only_properties_that_match_predicate(schema.$defs, value_is_non_array_object)) {
|
|
142
184
|
const { $defs } = schema;
|
|
@@ -144,17 +186,19 @@ export class DocsTsGenerator {
|
|
|
144
186
|
TypedString.instance().configure_ajv($defs, this.ajv);
|
|
145
187
|
}
|
|
146
188
|
}
|
|
147
|
-
if (
|
|
189
|
+
if (docs.cache_path) {
|
|
148
190
|
const file_sha512 = createHash('sha512');
|
|
149
191
|
if (!object_has_property(schema, '$id', is_string)) {
|
|
150
192
|
throw new ValidationError('Schema does not have an id!', undefined, schema);
|
|
151
193
|
}
|
|
152
194
|
file_sha512.update(await readFile(`${__dirname}/../schema/${schema['$id']}`));
|
|
153
195
|
const filename = `${schema['$id']}.${file_sha512.digest('hex')}.mjs`;
|
|
154
|
-
const filepath = `${
|
|
196
|
+
const filepath = `${docs.cache_path}/${filename}`;
|
|
155
197
|
if (!existsSync(filepath)) {
|
|
156
198
|
performance.mark(DocsTsGenerator.PERF_VALIDATION_PRECOMPILE);
|
|
157
199
|
performance.measure('ajv configured', DocsTsGenerator.PERF_VALIDATION_PRECOMPILE);
|
|
200
|
+
// eslint-disable-next-line max-len
|
|
201
|
+
UnrealEngineString.quote_mode = docs.UnrealEngineString_quote_mode;
|
|
158
202
|
await writeFile(filepath, esmify(standalone(this.ajv, compile(this.ajv, schema))));
|
|
159
203
|
performance.measure('ajv pre-compilation done', DocsTsGenerator.PERF_VALIDATION_PRECOMPILE, DocsTsGenerator.PERF_VALIDATION_PRECOMPILE);
|
|
160
204
|
}
|
|
@@ -39,7 +39,7 @@ declare const type_map: {
|
|
|
39
39
|
unknown: ts.SyntaxKind;
|
|
40
40
|
};
|
|
41
41
|
export declare function create_type(type: keyof typeof type_map): ts.KeywordTypeNode;
|
|
42
|
-
export declare function create_object_type_from_entries(entries: [string, TypeNode][], required?: [string, ...string[]]): TypeLiteralNode;
|
|
42
|
+
export declare function create_object_type_from_entries(entries: [string, TypeNode][], required?: [string, ...string[]], default_required?: boolean): TypeLiteralNode;
|
|
43
43
|
export declare function createPropertySignature(property: string, type: TypeNode, required?: boolean): PropertySignature;
|
|
44
44
|
export declare function needs_element_access(property: string): boolean;
|
|
45
45
|
export declare function computed_property_name_or_undefined(property: string): ts.ComputedPropertyName | undefined;
|
package/lib/TsFactoryWrapper.js
CHANGED
|
@@ -7,7 +7,7 @@ export function adjust_class_name(class_name) {
|
|
|
7
7
|
if ('class' === class_name) {
|
|
8
8
|
return 'Docs_class';
|
|
9
9
|
}
|
|
10
|
-
return class_name.replace(/[^A-Za-z_\d]/g, '_');
|
|
10
|
+
return class_name.replace(/[^A-Za-z_\d ]/g, '_');
|
|
11
11
|
}
|
|
12
12
|
export const modifier_map = {
|
|
13
13
|
abstract: () => {
|
|
@@ -130,10 +130,10 @@ const type_map = {
|
|
|
130
130
|
export function create_type(type) {
|
|
131
131
|
return ts.factory.createKeywordTypeNode(type_map[type]);
|
|
132
132
|
}
|
|
133
|
-
export function create_object_type_from_entries(entries, required) {
|
|
133
|
+
export function create_object_type_from_entries(entries, required, default_required = true) {
|
|
134
134
|
return ts.factory.createTypeLiteralNode(entries.map((entry) => {
|
|
135
135
|
const [property, type] = entry;
|
|
136
|
-
return createPropertySignature(property, type, required ? required.includes(property) :
|
|
136
|
+
return createPropertySignature(property, type, required ? required.includes(property) : default_required);
|
|
137
137
|
}));
|
|
138
138
|
}
|
|
139
139
|
export function createPropertySignature(property, type, required = true) {
|
|
@@ -142,7 +142,7 @@ export function createPropertySignature(property, type, required = true) {
|
|
|
142
142
|
: ts.factory.createToken(ts.SyntaxKind.QuestionToken), type);
|
|
143
143
|
}
|
|
144
144
|
export function needs_element_access(property) {
|
|
145
|
-
return /[?[\]]/.test(property);
|
|
145
|
+
return /[?[\] ]/.test(property);
|
|
146
146
|
}
|
|
147
147
|
export function computed_property_name_or_undefined(property) {
|
|
148
148
|
return needs_element_access(property)
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Generator, } from '../Generator';
|
|
2
|
-
import { UnrealEngineString_parent_schema, UnrealEngineString_reference_type, UnrealEngineString_regex, UnrealEngineString_schema_definitions, } from '../../CustomParsingTypes/UnrealEngineString';
|
|
2
|
+
import { UnrealEngineString_parent_schema, UnrealEngineString_reference_type, UnrealEngineString_regex, UnrealEngineString_regex_quoted, UnrealEngineString_schema_definitions, } from '../../CustomParsingTypes/UnrealEngineString';
|
|
3
3
|
export class UnrealEngineString extends Generator {
|
|
4
4
|
constructor(ajv) {
|
|
5
5
|
super(ajv, {
|
|
@@ -13,7 +13,10 @@ export class UnrealEngineString extends Generator {
|
|
|
13
13
|
};
|
|
14
14
|
}
|
|
15
15
|
static fromString(value) {
|
|
16
|
-
|
|
16
|
+
let result = UnrealEngineString_regex.exec(value);
|
|
17
|
+
if (!result) {
|
|
18
|
+
result = UnrealEngineString_regex_quoted.exec(value);
|
|
19
|
+
}
|
|
17
20
|
if (!result) {
|
|
18
21
|
throw new Error(`Not an UnrealEngineString (${value})`);
|
|
19
22
|
}
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
import { TupleTypeNode, TypeLiteralNode, UnionTypeNode } from 'typescript';
|
|
2
2
|
import { TypeDefinitionDiscovery } from '../../TypeDefinitionDiscovery';
|
|
3
3
|
import { GeneratorDoesDiscovery } from '../GeneratorDoesDiscovery';
|
|
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_parent_type } from '../../CustomParsingTypes/TypedString';
|
|
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
5
|
import { 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
8
|
constructor(supported_refs: local_ref<string>[], discovery: TypeDefinitionDiscovery);
|
|
9
9
|
generate(): (raw_data: typed_string_parent_type) => TypeLiteralNode | TupleTypeNode | UnionTypeNode;
|
|
10
|
-
static is_array_type(maybe: 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
|
-
static is_object_pattern_type(maybe: 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;
|
|
12
|
-
static is_object_type(maybe: 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_type;
|
|
13
|
-
static is_prefixItems_type(maybe: 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_prefixItems_type;
|
|
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
|
+
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;
|
|
12
|
+
static is_object_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_type | typed_string_inner_object_type_no_required);
|
|
13
|
+
static is_prefixItems_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_prefixItems_type;
|
|
14
14
|
}
|
|
@@ -76,7 +76,9 @@ export class typed_string extends GeneratorDoesDiscovery {
|
|
|
76
76
|
entry[0],
|
|
77
77
|
this.discovery.find(entry[1]),
|
|
78
78
|
];
|
|
79
|
-
}), typed_string_value
|
|
79
|
+
}), ('required' in typed_string_value
|
|
80
|
+
? typed_string_value.required
|
|
81
|
+
: undefined), false);
|
|
80
82
|
};
|
|
81
83
|
}
|
|
82
84
|
static is_array_type(maybe) {
|
|
@@ -4,7 +4,7 @@ import { CandidatesDiscovery } from './TypesDiscovery/CandidatesDiscovery';
|
|
|
4
4
|
import ts, { TypeNode } from 'typescript';
|
|
5
5
|
import { AnyGenerator } from './TypeDefinitionDiscovery/Generator';
|
|
6
6
|
import { FilesGenerator } from './FilesGenerator';
|
|
7
|
-
import { DocsTsGenerator } from './DocsTsGenerator';
|
|
7
|
+
import { docs_versions, DocsTsGenerator } from './DocsTsGenerator';
|
|
8
8
|
import { GeneratesMarkdown } from './MarkdownUtilities';
|
|
9
9
|
export type ref_discovery_type = {
|
|
10
10
|
found_types: {
|
|
@@ -21,6 +21,7 @@ export type ref_discovery_type = {
|
|
|
21
21
|
export declare class TypeDefinitionDiscovery extends FilesGenerator implements GeneratesMarkdown {
|
|
22
22
|
private $ref_discovery;
|
|
23
23
|
private readonly candidates;
|
|
24
|
+
private readonly version;
|
|
24
25
|
readonly docs: DocsTsGenerator;
|
|
25
26
|
readonly types_discovery: TypesDiscovery;
|
|
26
27
|
constructor(types_discovery: [
|
|
@@ -29,7 +30,7 @@ export declare class TypeDefinitionDiscovery extends FilesGenerator implements G
|
|
|
29
30
|
], type_definition_discover: [
|
|
30
31
|
AnyGenerator,
|
|
31
32
|
...AnyGenerator[]
|
|
32
|
-
], docs: DocsTsGenerator);
|
|
33
|
+
], docs: DocsTsGenerator, version: keyof docs_versions);
|
|
33
34
|
add_candidates(...candidates: AnyGenerator[]): void;
|
|
34
35
|
discover_type_$defs(): Promise<ref_discovery_type>;
|
|
35
36
|
find(maybe: unknown): TypeNode;
|
|
@@ -28,13 +28,15 @@ function is_schema_with_$defs(schema, discovered_types) {
|
|
|
28
28
|
export class TypeDefinitionDiscovery extends FilesGenerator {
|
|
29
29
|
$ref_discovery;
|
|
30
30
|
candidates;
|
|
31
|
+
version;
|
|
31
32
|
docs;
|
|
32
33
|
types_discovery;
|
|
33
|
-
constructor(types_discovery, type_definition_discover, docs) {
|
|
34
|
+
constructor(types_discovery, type_definition_discover, docs, version) {
|
|
34
35
|
super();
|
|
35
|
-
this.types_discovery = new TypesDiscovery(types_discovery, docs);
|
|
36
|
+
this.types_discovery = new TypesDiscovery(types_discovery, docs, version);
|
|
36
37
|
this.candidates = type_definition_discover;
|
|
37
38
|
this.docs = docs;
|
|
39
|
+
this.version = version;
|
|
38
40
|
}
|
|
39
41
|
add_candidates(...candidates) {
|
|
40
42
|
this.candidates.push(...candidates);
|
|
@@ -69,7 +71,7 @@ export class TypeDefinitionDiscovery extends FilesGenerator {
|
|
|
69
71
|
const target_file = guess_filename($ref);
|
|
70
72
|
yield {
|
|
71
73
|
file: target_file,
|
|
72
|
-
node: ts.factory.createTypeAliasDeclaration(create_modifiers('export'), adjust_class_name(`${$ref}__type`), undefined, generator(await this.docs.definition($ref))),
|
|
74
|
+
node: ts.factory.createTypeAliasDeclaration(create_modifiers('export'), adjust_class_name(`${$ref}__type`), undefined, generator(await this.docs.definition(this.version, $ref))),
|
|
73
75
|
};
|
|
74
76
|
}
|
|
75
77
|
}
|
|
@@ -177,7 +179,7 @@ export class TypeDefinitionDiscovery extends FilesGenerator {
|
|
|
177
179
|
if (object_has_non_empty_array_property(schema, 'prefixItems', value_is_non_array_object)) {
|
|
178
180
|
const native_class = compile(this.docs.ajv, {
|
|
179
181
|
type: 'object',
|
|
180
|
-
required: ['type', '$ref', 'properties'],
|
|
182
|
+
required: ['$comment', 'type', '$ref', 'properties'],
|
|
181
183
|
additionalProperties: false,
|
|
182
184
|
$defs: {
|
|
183
185
|
$ref_base: {
|
|
@@ -209,6 +211,11 @@ export class TypeDefinitionDiscovery extends FilesGenerator {
|
|
|
209
211
|
},
|
|
210
212
|
},
|
|
211
213
|
properties: {
|
|
214
|
+
$comment: {
|
|
215
|
+
type: 'string',
|
|
216
|
+
// eslint-disable-next-line max-len
|
|
217
|
+
pattern: '^\\/Script\\/CoreUObject\\.Class\'\\/Script\\/FactoryGame\\.',
|
|
218
|
+
},
|
|
212
219
|
type: { type: 'string', const: 'object' },
|
|
213
220
|
$ref: { type: 'string', const: '#/$defs/NativeClass' },
|
|
214
221
|
unevaluatedProperties: { type: 'boolean', const: false },
|
|
@@ -313,12 +320,49 @@ export class TypeDefinitionDiscovery extends FilesGenerator {
|
|
|
313
320
|
},
|
|
314
321
|
},
|
|
315
322
|
},
|
|
323
|
+
{
|
|
324
|
+
type: 'object',
|
|
325
|
+
required: [
|
|
326
|
+
'type',
|
|
327
|
+
'prefixItems',
|
|
328
|
+
'minItems',
|
|
329
|
+
],
|
|
330
|
+
additionalProperties: false,
|
|
331
|
+
properties: {
|
|
332
|
+
type: {
|
|
333
|
+
type: 'string',
|
|
334
|
+
const: 'array',
|
|
335
|
+
},
|
|
336
|
+
minItems: {
|
|
337
|
+
type: 'number',
|
|
338
|
+
minimum: 1,
|
|
339
|
+
},
|
|
340
|
+
maxItems: {
|
|
341
|
+
type: 'number',
|
|
342
|
+
minimum: 1,
|
|
343
|
+
},
|
|
344
|
+
items: {
|
|
345
|
+
type: 'boolean',
|
|
346
|
+
const: false,
|
|
347
|
+
},
|
|
348
|
+
prefixItems: {
|
|
349
|
+
type: 'array',
|
|
350
|
+
minItems: 1,
|
|
351
|
+
items: {
|
|
352
|
+
$ref: '#/$defs/$ref',
|
|
353
|
+
},
|
|
354
|
+
},
|
|
355
|
+
},
|
|
356
|
+
},
|
|
316
357
|
] } },
|
|
317
358
|
},
|
|
318
359
|
},
|
|
319
360
|
});
|
|
320
361
|
for (const item of schema.prefixItems) {
|
|
321
362
|
if (native_class(item)) {
|
|
363
|
+
if ('$comment' in item) {
|
|
364
|
+
delete item.$comment;
|
|
365
|
+
}
|
|
322
366
|
result.found_classes.push(item);
|
|
323
367
|
}
|
|
324
368
|
else {
|
|
@@ -338,7 +382,7 @@ export class TypeDefinitionDiscovery extends FilesGenerator {
|
|
|
338
382
|
* @todo move to DocsTsGenerator
|
|
339
383
|
*/
|
|
340
384
|
async schema_from_json(discovered_types) {
|
|
341
|
-
const schema = await this.docs.schema();
|
|
385
|
+
const schema = await this.docs.schema(this.version);
|
|
342
386
|
if (!is_schema_with_$defs(schema, discovered_types)) {
|
|
343
387
|
throw new Error('Schema $defs not as expected!');
|
|
344
388
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { TypeDefinitionDiscovery } from './TypeDefinitionDiscovery';
|
|
2
2
|
import ts, { ClassDeclaration } from 'typescript';
|
|
3
|
-
import { DocsTsGenerator } from './DocsTsGenerator';
|
|
3
|
+
import { docs_versions, DocsTsGenerator } from './DocsTsGenerator';
|
|
4
4
|
type class_can_have_tree = ClassDeclaration & {
|
|
5
5
|
heritageClauses: [{
|
|
6
6
|
types: [{
|
|
@@ -13,7 +13,8 @@ export declare class TypeDefinitionWriter {
|
|
|
13
13
|
private prepared;
|
|
14
14
|
private readonly data_discovery;
|
|
15
15
|
private readonly docs;
|
|
16
|
-
|
|
16
|
+
private readonly version;
|
|
17
|
+
constructor(docs: DocsTsGenerator, version: keyof docs_versions);
|
|
17
18
|
get discovery(): Promise<TypeDefinitionDiscovery>;
|
|
18
19
|
write(parent_folder: string, cleanup?: boolean): Promise<void>;
|
|
19
20
|
private prepare;
|
|
@@ -26,13 +26,15 @@ export class TypeDefinitionWriter {
|
|
|
26
26
|
prepared = false;
|
|
27
27
|
data_discovery;
|
|
28
28
|
docs;
|
|
29
|
-
|
|
29
|
+
version;
|
|
30
|
+
constructor(docs, version) {
|
|
30
31
|
this.docs = docs;
|
|
31
|
-
this.data_discovery = new DataDiscovery(docs);
|
|
32
|
+
this.data_discovery = new DataDiscovery(docs, version);
|
|
33
|
+
this.version = version;
|
|
32
34
|
}
|
|
33
35
|
get discovery() {
|
|
34
36
|
if (!this._discovery) {
|
|
35
|
-
const schema = this.docs.schema();
|
|
37
|
+
const schema = this.docs.schema(this.version);
|
|
36
38
|
const type_definition_discover = require_non_empty_array([
|
|
37
39
|
...TypeDefinitionDiscovery.standard_jsonschema_discovery(this.docs.ajv),
|
|
38
40
|
...TypeDefinitionDiscovery.custom_parsing_discovery(this.docs.ajv),
|
|
@@ -41,7 +43,7 @@ export class TypeDefinitionWriter {
|
|
|
41
43
|
return new TypeDefinitionDiscovery([
|
|
42
44
|
...TypesDiscovery.standard_jsonschema_discovery(schema),
|
|
43
45
|
...TypesDiscovery.custom_parsing_types(schema),
|
|
44
|
-
], type_definition_discover, this.docs);
|
|
46
|
+
], type_definition_discover, this.docs, this.version);
|
|
45
47
|
}));
|
|
46
48
|
}
|
|
47
49
|
return this._discovery;
|
|
@@ -54,8 +56,8 @@ export class TypeDefinitionWriter {
|
|
|
54
56
|
const discovery = await this.discovery;
|
|
55
57
|
performance.measure(`${this.constructor.name}.write() discovery`, `${this.constructor.name}.write() start`);
|
|
56
58
|
performance.mark(`${this.constructor.name}.write() start`);
|
|
57
|
-
await writeFile(`${__dirname}/../types-progress.md`, await discovery.generate_markdown());
|
|
58
|
-
await writeFile(`${__dirname}/../data-progress.md`, await this.data_discovery.generate_markdown());
|
|
59
|
+
await writeFile(`${__dirname}/../types-progress--${this.version}.md`, await discovery.generate_markdown());
|
|
60
|
+
await writeFile(`${__dirname}/../data-progress--${this.version}.md`, await this.data_discovery.generate_markdown());
|
|
59
61
|
performance.measure(`${this.constructor.name}.write() generate_markdown`, `${this.constructor.name}.write() start`);
|
|
60
62
|
if (cleanup) {
|
|
61
63
|
performance.mark(`${this.constructor.name}.write() start`);
|
|
@@ -66,7 +68,7 @@ export class TypeDefinitionWriter {
|
|
|
66
68
|
}
|
|
67
69
|
performance.mark(`${this.constructor.name}.write() start`);
|
|
68
70
|
const types = await discovery.discover_type_$defs();
|
|
69
|
-
const schema = await this.docs.schema();
|
|
71
|
+
const schema = await this.docs.schema(this.version);
|
|
70
72
|
if (types.missing_classes.length > 0
|
|
71
73
|
|| types.missing_types.length > 0) {
|
|
72
74
|
throw new NoMatchError({
|
|
@@ -88,7 +90,7 @@ export class TypeDefinitionWriter {
|
|
|
88
90
|
}
|
|
89
91
|
const files = await FilesGenerator.merge_files([
|
|
90
92
|
discovery,
|
|
91
|
-
new DocsFiles(validations, discovery),
|
|
93
|
+
new DocsFiles(validations, discovery, this.version),
|
|
92
94
|
new FromArray([
|
|
93
95
|
...legacy_UnrealEngineString_module.CustomGenerators(),
|
|
94
96
|
string_starts_with,
|
|
@@ -101,7 +103,7 @@ export class TypeDefinitionWriter {
|
|
|
101
103
|
const auto_imports = new DocsTsAutoImports(files);
|
|
102
104
|
const import_tracker = auto_imports.generate();
|
|
103
105
|
performance.measure(`${this.constructor.name}.write() auto_imports`, `${this.constructor.name}.write() start`);
|
|
104
|
-
await writeFile(`${__dirname}/../imports-come-from.json`, auto_imports.imports_come_from);
|
|
106
|
+
await writeFile(`${__dirname}/../imports-come-from.${this.version}.json`, auto_imports.imports_come_from);
|
|
105
107
|
const printer = ts.createPrinter({
|
|
106
108
|
newLine: ts.NewLineKind.LineFeed,
|
|
107
109
|
});
|
|
@@ -204,14 +206,15 @@ export class TypeDefinitionWriter {
|
|
|
204
206
|
}
|
|
205
207
|
let code = await format_code(node_strings
|
|
206
208
|
.join('\n\n'));
|
|
207
|
-
|
|
208
|
-
|
|
209
|
+
const types_from_module = this.docs.docs_versions[this.version]?.types_from_module;
|
|
210
|
+
if (types_from_module) {
|
|
211
|
+
code = code.replace(/} from '(?:\.\.\/)+(classes|common|utils)\//g, `} from '${types_from_module}/$1/`);
|
|
209
212
|
}
|
|
210
213
|
await writeFile(file_name, code);
|
|
211
214
|
}
|
|
212
215
|
performance.measure(`${this.constructor.name}.write() actually write files`, `${this.constructor.name}.write() start`);
|
|
213
216
|
performance.mark(`${this.constructor.name}.write() start`);
|
|
214
|
-
await writeFile(`${__dirname}/../data-progress.md`, await this.data_discovery.generate_markdown());
|
|
217
|
+
await writeFile(`${__dirname}/../data-progress--${this.version}.md`, await this.data_discovery.generate_markdown());
|
|
215
218
|
performance.measure(`${this.constructor.name}.write() generate_markdown`, `${this.constructor.name}.write() start`);
|
|
216
219
|
performance.mark(`${this.constructor.name}.write() start`);
|
|
217
220
|
await eslint_generated_types(parent_folder);
|
package/lib/TypesDiscovery.d.ts
CHANGED
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
import { SchemaObject } from 'ajv/dist/2020';
|
|
2
2
|
import { CandidatesDiscovery } from './TypesDiscovery/CandidatesDiscovery';
|
|
3
|
-
import { DocsDataItem, DocsTsGenerator } from './DocsTsGenerator';
|
|
3
|
+
import { docs_versions, DocsDataItem, DocsTsGenerator } from './DocsTsGenerator';
|
|
4
4
|
import { local_ref } from './StringStartsWith';
|
|
5
5
|
export declare class TypesDiscovery {
|
|
6
6
|
private discovery;
|
|
7
7
|
private readonly candidates_discovery;
|
|
8
8
|
private readonly docs;
|
|
9
|
-
|
|
9
|
+
private readonly version;
|
|
10
|
+
constructor(candidates_discovery: [CandidatesDiscovery, ...CandidatesDiscovery[]], docs: DocsTsGenerator, version: keyof docs_versions);
|
|
10
11
|
discover_types(): Promise<{
|
|
11
12
|
discovered_types: local_ref<string>[];
|
|
12
13
|
missed_types: string[];
|
|
@@ -16,7 +17,7 @@ export declare class TypesDiscovery {
|
|
|
16
17
|
CandidatesDiscovery,
|
|
17
18
|
...CandidatesDiscovery[]
|
|
18
19
|
]);
|
|
19
|
-
static generate_is_NativeClass(docs: DocsTsGenerator): Promise<import("ajv/dist/types").ValidateFunction<DocsDataItem>>;
|
|
20
|
+
static generate_is_NativeClass(docs: DocsTsGenerator, version: keyof docs_versions): Promise<import("ajv/dist/types").ValidateFunction<DocsDataItem>>;
|
|
20
21
|
static standard_jsonschema_discovery(schema: SchemaObject): ([
|
|
21
22
|
CandidatesDiscovery,
|
|
22
23
|
...CandidatesDiscovery[]
|
package/lib/TypesDiscovery.js
CHANGED
|
@@ -13,13 +13,15 @@ export class TypesDiscovery {
|
|
|
13
13
|
discovery;
|
|
14
14
|
candidates_discovery;
|
|
15
15
|
docs;
|
|
16
|
-
|
|
16
|
+
version;
|
|
17
|
+
constructor(candidates_discovery, docs, version) {
|
|
17
18
|
this.candidates_discovery = candidates_discovery;
|
|
18
19
|
this.docs = docs;
|
|
20
|
+
this.version = version;
|
|
19
21
|
}
|
|
20
22
|
async discover_types() {
|
|
21
23
|
if (!this.discovery) {
|
|
22
|
-
const schema = await this.docs.schema();
|
|
24
|
+
const schema = await this.docs.schema(this.version);
|
|
23
25
|
const discovered_types = new Set();
|
|
24
26
|
this.discover_types_from(schema, schema, discovered_types);
|
|
25
27
|
this.discovery = Promise.resolve({
|
|
@@ -48,8 +50,8 @@ export class TypesDiscovery {
|
|
|
48
50
|
new typed_string(schema),
|
|
49
51
|
];
|
|
50
52
|
}
|
|
51
|
-
static async generate_is_NativeClass(docs) {
|
|
52
|
-
const schema = await docs.schema();
|
|
53
|
+
static async generate_is_NativeClass(docs, version) {
|
|
54
|
+
const schema = await docs.schema(version);
|
|
53
55
|
if (!object_has_property(schema, '$defs', value_is_non_array_object)) {
|
|
54
56
|
throw new Error('Schema appears to have no $defs');
|
|
55
57
|
}
|
package/lib/helpers.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { existsSync, } from 'node:fs';
|
|
2
|
-
import { DocsTsGenerator, } from './DocsTsGenerator';
|
|
2
|
+
import { DocsTsGenerator, DocsTsGeneratorVersion, } from './DocsTsGenerator';
|
|
3
3
|
import { __dirname_from_meta, } from './__dirname';
|
|
4
4
|
import Ajv from 'ajv/dist/2020';
|
|
5
5
|
import { configure_ajv, } from './DocsValidation';
|
|
@@ -18,11 +18,21 @@ const ajv = new Ajv({
|
|
|
18
18
|
configure_ajv(ajv);
|
|
19
19
|
export const docs = new DocsTsGenerator({
|
|
20
20
|
ajv,
|
|
21
|
-
|
|
22
|
-
|
|
21
|
+
docs_versions: {
|
|
22
|
+
version_1_0_0_0: new DocsTsGeneratorVersion({
|
|
23
|
+
docs_path: `${__dirname}/../data/1.0/en-US.json`,
|
|
24
|
+
cache_path: `${__dirname}/../data/1.0/`,
|
|
25
|
+
UnrealEngineString_quote_mode: 'double',
|
|
26
|
+
}),
|
|
27
|
+
update8: new DocsTsGeneratorVersion({
|
|
28
|
+
docs_path: `${__dirname}/../data/update8/Docs.json`,
|
|
29
|
+
cache_path: `${__dirname}/../data/update8/`,
|
|
30
|
+
UnrealEngineString_quote_mode: 'original',
|
|
31
|
+
}),
|
|
32
|
+
},
|
|
23
33
|
});
|
|
24
34
|
export const skip_because_docs_dot_json_not_yet_bundled = {
|
|
25
|
-
skip: existsSync(`${__dirname}/../data/Docs.json`)
|
|
35
|
+
skip: existsSync(`${__dirname}/../data/update8/Docs.json`)
|
|
26
36
|
? false
|
|
27
37
|
: 'Docs.json not yet bundled!',
|
|
28
38
|
};
|