@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.
Files changed (268) hide show
  1. package/README.md +43 -27
  2. package/data-progress--update8.md +2765 -0
  3. package/data-progress--version_1_0_0_0.md +3053 -0
  4. package/foo.log +1850 -0
  5. package/generated-types/1.0/classes/CoreUObject/FGAmmoTypeInstantHit.d.ts +20 -0
  6. package/generated-types/1.0/classes/CoreUObject/FGAmmoTypeInstantHit.js +1 -0
  7. package/generated-types/1.0/classes/CoreUObject/FGAmmoTypeProjectile.d.ts +88 -0
  8. package/generated-types/1.0/classes/CoreUObject/FGAmmoTypeProjectile.js +1 -0
  9. package/generated-types/1.0/classes/CoreUObject/FGAmmoTypeSpreadshot.d.ts +14 -0
  10. package/generated-types/1.0/classes/CoreUObject/FGAmmoTypeSpreadshot.js +1 -0
  11. package/generated-types/1.0/classes/CoreUObject/FGBuildable.d.ts +192 -0
  12. package/generated-types/1.0/classes/CoreUObject/FGBuildable.js +1 -0
  13. package/generated-types/1.0/classes/CoreUObject/FGBuildableAttachmentMerger.d.ts +10 -0
  14. package/generated-types/1.0/classes/CoreUObject/FGBuildableAttachmentMerger.js +1 -0
  15. package/generated-types/1.0/classes/CoreUObject/FGBuildableAttachmentSplitter.d.ts +6 -0
  16. package/generated-types/1.0/classes/CoreUObject/FGBuildableAttachmentSplitter.js +1 -0
  17. package/generated-types/1.0/classes/CoreUObject/FGBuildableBeamLightweight.d.ts +15 -0
  18. package/generated-types/1.0/classes/CoreUObject/FGBuildableBeamLightweight.js +1 -0
  19. package/generated-types/1.0/classes/CoreUObject/FGBuildableBlueprintDesigner.d.ts +27 -0
  20. package/generated-types/1.0/classes/CoreUObject/FGBuildableBlueprintDesigner.js +1 -0
  21. package/generated-types/1.0/classes/CoreUObject/FGBuildableCircuitSwitch.d.ts +8 -0
  22. package/generated-types/1.0/classes/CoreUObject/FGBuildableCircuitSwitch.js +1 -0
  23. package/generated-types/1.0/classes/CoreUObject/FGBuildableConveyorBelt.d.ts +23 -0
  24. package/generated-types/1.0/classes/CoreUObject/FGBuildableConveyorBelt.js +1 -0
  25. package/generated-types/1.0/classes/CoreUObject/FGBuildableConveyorLift.d.ts +14 -0
  26. package/generated-types/1.0/classes/CoreUObject/FGBuildableConveyorLift.js +1 -0
  27. package/generated-types/1.0/classes/CoreUObject/FGBuildableCornerWall.d.ts +10 -0
  28. package/generated-types/1.0/classes/CoreUObject/FGBuildableCornerWall.js +1 -0
  29. package/generated-types/1.0/classes/CoreUObject/FGBuildableCornerWallLightweight.d.ts +5 -0
  30. package/generated-types/1.0/classes/CoreUObject/FGBuildableCornerWallLightweight.js +1 -0
  31. package/generated-types/1.0/classes/CoreUObject/FGBuildableDockingStation.d.ts +21 -0
  32. package/generated-types/1.0/classes/CoreUObject/FGBuildableDockingStation.js +1 -0
  33. package/generated-types/1.0/classes/CoreUObject/FGBuildableDoor.d.ts +23 -0
  34. package/generated-types/1.0/classes/CoreUObject/FGBuildableDoor.js +1 -0
  35. package/generated-types/1.0/classes/CoreUObject/FGBuildableDroneStation.d.ts +30 -0
  36. package/generated-types/1.0/classes/CoreUObject/FGBuildableDroneStation.js +1 -0
  37. package/generated-types/1.0/classes/CoreUObject/FGBuildableFactory.d.ts +21 -0
  38. package/generated-types/1.0/classes/CoreUObject/FGBuildableFactory.js +1 -0
  39. package/generated-types/1.0/classes/CoreUObject/FGBuildableFactoryBuilding.d.ts +9 -0
  40. package/generated-types/1.0/classes/CoreUObject/FGBuildableFactoryBuilding.js +1 -0
  41. package/generated-types/1.0/classes/CoreUObject/FGBuildableFactorySimpleProducer.d.ts +10 -0
  42. package/generated-types/1.0/classes/CoreUObject/FGBuildableFactorySimpleProducer.js +1 -0
  43. package/generated-types/1.0/classes/CoreUObject/FGBuildableFloodlight.d.ts +9 -0
  44. package/generated-types/1.0/classes/CoreUObject/FGBuildableFloodlight.js +1 -0
  45. package/generated-types/1.0/classes/CoreUObject/FGBuildableFoundation.d.ts +13 -0
  46. package/generated-types/1.0/classes/CoreUObject/FGBuildableFoundation.js +1 -0
  47. package/generated-types/1.0/classes/CoreUObject/FGBuildableFoundationLightweight.d.ts +5 -0
  48. package/generated-types/1.0/classes/CoreUObject/FGBuildableFoundationLightweight.js +1 -0
  49. package/generated-types/1.0/classes/CoreUObject/FGBuildableFrackingActivator.d.ts +18 -0
  50. package/generated-types/1.0/classes/CoreUObject/FGBuildableFrackingActivator.js +1 -0
  51. package/generated-types/1.0/classes/CoreUObject/FGBuildableFrackingExtractor.d.ts +13 -0
  52. package/generated-types/1.0/classes/CoreUObject/FGBuildableFrackingExtractor.js +1 -0
  53. package/generated-types/1.0/classes/CoreUObject/FGBuildableGenerator.d.ts +6 -0
  54. package/generated-types/1.0/classes/CoreUObject/FGBuildableGenerator.js +1 -0
  55. package/generated-types/1.0/classes/CoreUObject/FGBuildableGeneratorFuel.d.ts +95 -0
  56. package/generated-types/1.0/classes/CoreUObject/FGBuildableGeneratorFuel.js +1 -0
  57. package/generated-types/1.0/classes/CoreUObject/FGBuildableGeneratorGeoThermal.d.ts +15 -0
  58. package/generated-types/1.0/classes/CoreUObject/FGBuildableGeneratorGeoThermal.js +1 -0
  59. package/generated-types/1.0/classes/CoreUObject/FGBuildableGeneratorNuclear.d.ts +38 -0
  60. package/generated-types/1.0/classes/CoreUObject/FGBuildableGeneratorNuclear.js +1 -0
  61. package/generated-types/1.0/classes/CoreUObject/FGBuildableJumppad.d.ts +34 -0
  62. package/generated-types/1.0/classes/CoreUObject/FGBuildableJumppad.js +1 -0
  63. package/generated-types/1.0/classes/CoreUObject/FGBuildableLadder.d.ts +13 -0
  64. package/generated-types/1.0/classes/CoreUObject/FGBuildableLadder.js +1 -0
  65. package/generated-types/1.0/classes/CoreUObject/FGBuildableLightSource.d.ts +22 -0
  66. package/generated-types/1.0/classes/CoreUObject/FGBuildableLightSource.js +1 -0
  67. package/generated-types/1.0/classes/CoreUObject/FGBuildableLightsControlPanel.d.ts +13 -0
  68. package/generated-types/1.0/classes/CoreUObject/FGBuildableLightsControlPanel.js +1 -0
  69. package/generated-types/1.0/classes/CoreUObject/FGBuildableMAM.d.ts +14 -0
  70. package/generated-types/1.0/classes/CoreUObject/FGBuildableMAM.js +1 -0
  71. package/generated-types/1.0/classes/CoreUObject/FGBuildableManufacturer.d.ts +68 -0
  72. package/generated-types/1.0/classes/CoreUObject/FGBuildableManufacturer.js +1 -0
  73. package/generated-types/1.0/classes/CoreUObject/FGBuildableManufacturerVariablePower.d.ts +31 -0
  74. package/generated-types/1.0/classes/CoreUObject/FGBuildableManufacturerVariablePower.js +1 -0
  75. package/generated-types/1.0/classes/CoreUObject/FGBuildablePassthrough.d.ts +18 -0
  76. package/generated-types/1.0/classes/CoreUObject/FGBuildablePassthrough.js +1 -0
  77. package/generated-types/1.0/classes/CoreUObject/FGBuildablePassthroughPipeHyper.d.ts +5 -0
  78. package/generated-types/1.0/classes/CoreUObject/FGBuildablePassthroughPipeHyper.js +1 -0
  79. package/generated-types/1.0/classes/CoreUObject/FGBuildablePillarLightweight.d.ts +13 -0
  80. package/generated-types/1.0/classes/CoreUObject/FGBuildablePillarLightweight.js +1 -0
  81. package/generated-types/1.0/classes/CoreUObject/FGBuildablePipeHyper.d.ts +11 -0
  82. package/generated-types/1.0/classes/CoreUObject/FGBuildablePipeHyper.js +1 -0
  83. package/generated-types/1.0/classes/CoreUObject/FGBuildablePipeReservoir.d.ts +11 -0
  84. package/generated-types/1.0/classes/CoreUObject/FGBuildablePipeReservoir.js +1 -0
  85. package/generated-types/1.0/classes/CoreUObject/FGBuildablePipeline.d.ts +40 -0
  86. package/generated-types/1.0/classes/CoreUObject/FGBuildablePipeline.js +1 -0
  87. package/generated-types/1.0/classes/CoreUObject/FGBuildablePipelineJunction.d.ts +6 -0
  88. package/generated-types/1.0/classes/CoreUObject/FGBuildablePipelineJunction.js +1 -0
  89. package/generated-types/1.0/classes/CoreUObject/FGBuildablePipelinePump.d.ts +16 -0
  90. package/generated-types/1.0/classes/CoreUObject/FGBuildablePipelinePump.js +1 -0
  91. package/generated-types/1.0/classes/CoreUObject/FGBuildablePipelineSupport.d.ts +13 -0
  92. package/generated-types/1.0/classes/CoreUObject/FGBuildablePipelineSupport.js +1 -0
  93. package/generated-types/1.0/classes/CoreUObject/FGBuildablePoleBase.d.ts +5 -0
  94. package/generated-types/1.0/classes/CoreUObject/FGBuildablePoleBase.js +1 -0
  95. package/generated-types/1.0/classes/CoreUObject/FGBuildablePoleLightweight.d.ts +10 -0
  96. package/generated-types/1.0/classes/CoreUObject/FGBuildablePoleLightweight.js +1 -0
  97. package/generated-types/1.0/classes/CoreUObject/FGBuildablePortal.d.ts +61 -0
  98. package/generated-types/1.0/classes/CoreUObject/FGBuildablePortal.js +1 -0
  99. package/generated-types/1.0/classes/CoreUObject/FGBuildablePortalSatellite.d.ts +13 -0
  100. package/generated-types/1.0/classes/CoreUObject/FGBuildablePortalSatellite.js +1 -0
  101. package/generated-types/1.0/classes/CoreUObject/FGBuildablePowerBooster.d.ts +30 -0
  102. package/generated-types/1.0/classes/CoreUObject/FGBuildablePowerBooster.js +1 -0
  103. package/generated-types/1.0/classes/CoreUObject/FGBuildablePowerPole.d.ts +12 -0
  104. package/generated-types/1.0/classes/CoreUObject/FGBuildablePowerPole.js +1 -0
  105. package/generated-types/1.0/classes/CoreUObject/FGBuildablePowerStorage.d.ts +20 -0
  106. package/generated-types/1.0/classes/CoreUObject/FGBuildablePowerStorage.js +1 -0
  107. package/generated-types/1.0/classes/CoreUObject/FGBuildablePriorityPowerSwitch.d.ts +10 -0
  108. package/generated-types/1.0/classes/CoreUObject/FGBuildablePriorityPowerSwitch.js +1 -0
  109. package/generated-types/1.0/classes/CoreUObject/FGBuildableRadarTower.d.ts +11 -0
  110. package/generated-types/1.0/classes/CoreUObject/FGBuildableRadarTower.js +1 -0
  111. package/generated-types/1.0/classes/CoreUObject/FGBuildableRailroadSignal.d.ts +23 -0
  112. package/generated-types/1.0/classes/CoreUObject/FGBuildableRailroadSignal.js +1 -0
  113. package/generated-types/1.0/classes/CoreUObject/FGBuildableRailroadStation.d.ts +12 -0
  114. package/generated-types/1.0/classes/CoreUObject/FGBuildableRailroadStation.js +1 -0
  115. package/generated-types/1.0/classes/CoreUObject/FGBuildableRailroadTrack.d.ts +30 -0
  116. package/generated-types/1.0/classes/CoreUObject/FGBuildableRailroadTrack.js +1 -0
  117. package/generated-types/1.0/classes/CoreUObject/FGBuildableRamp.d.ts +7 -0
  118. package/generated-types/1.0/classes/CoreUObject/FGBuildableRamp.js +1 -0
  119. package/generated-types/1.0/classes/CoreUObject/FGBuildableRampLightweight.d.ts +5 -0
  120. package/generated-types/1.0/classes/CoreUObject/FGBuildableRampLightweight.js +1 -0
  121. package/generated-types/1.0/classes/CoreUObject/FGBuildableResourceExtractor.d.ts +39 -0
  122. package/generated-types/1.0/classes/CoreUObject/FGBuildableResourceExtractor.js +1 -0
  123. package/generated-types/1.0/classes/CoreUObject/FGBuildableResourceSink.d.ts +15 -0
  124. package/generated-types/1.0/classes/CoreUObject/FGBuildableResourceSink.js +1 -0
  125. package/generated-types/1.0/classes/CoreUObject/FGBuildableResourceSinkShop.d.ts +9 -0
  126. package/generated-types/1.0/classes/CoreUObject/FGBuildableResourceSinkShop.js +1 -0
  127. package/generated-types/1.0/classes/CoreUObject/FGBuildableSnowDispenser.d.ts +9 -0
  128. package/generated-types/1.0/classes/CoreUObject/FGBuildableSnowDispenser.js +1 -0
  129. package/generated-types/1.0/classes/CoreUObject/FGBuildableSpaceElevator.d.ts +10 -0
  130. package/generated-types/1.0/classes/CoreUObject/FGBuildableSpaceElevator.js +1 -0
  131. package/generated-types/1.0/classes/CoreUObject/FGBuildableSplitterSmart.d.ts +20 -0
  132. package/generated-types/1.0/classes/CoreUObject/FGBuildableSplitterSmart.js +1 -0
  133. package/generated-types/1.0/classes/CoreUObject/FGBuildableStorage.d.ts +11 -0
  134. package/generated-types/1.0/classes/CoreUObject/FGBuildableStorage.js +1 -0
  135. package/generated-types/1.0/classes/CoreUObject/FGBuildableTradingPost.d.ts +52 -0
  136. package/generated-types/1.0/classes/CoreUObject/FGBuildableTradingPost.js +1 -0
  137. package/generated-types/1.0/classes/CoreUObject/FGBuildableTrainPlatform.d.ts +16 -0
  138. package/generated-types/1.0/classes/CoreUObject/FGBuildableTrainPlatform.js +1 -0
  139. package/generated-types/1.0/classes/CoreUObject/FGBuildableTrainPlatformCargo.d.ts +47 -0
  140. package/generated-types/1.0/classes/CoreUObject/FGBuildableTrainPlatformCargo.js +1 -0
  141. package/generated-types/1.0/classes/CoreUObject/FGBuildableTrainPlatformEmpty.d.ts +9 -0
  142. package/generated-types/1.0/classes/CoreUObject/FGBuildableTrainPlatformEmpty.js +1 -0
  143. package/generated-types/1.0/classes/CoreUObject/FGBuildableWalkway.d.ts +22 -0
  144. package/generated-types/1.0/classes/CoreUObject/FGBuildableWalkway.js +1 -0
  145. package/generated-types/1.0/classes/CoreUObject/FGBuildableWalkwayLightweight.d.ts +11 -0
  146. package/generated-types/1.0/classes/CoreUObject/FGBuildableWalkwayLightweight.js +1 -0
  147. package/generated-types/1.0/classes/CoreUObject/FGBuildableWall.d.ts +24 -0
  148. package/generated-types/1.0/classes/CoreUObject/FGBuildableWall.js +1 -0
  149. package/generated-types/1.0/classes/CoreUObject/FGBuildableWallLightweight.d.ts +9 -0
  150. package/generated-types/1.0/classes/CoreUObject/FGBuildableWallLightweight.js +1 -0
  151. package/generated-types/1.0/classes/CoreUObject/FGBuildableWaterPump.d.ts +20 -0
  152. package/generated-types/1.0/classes/CoreUObject/FGBuildableWaterPump.js +1 -0
  153. package/generated-types/1.0/classes/CoreUObject/FGBuildableWidgetSign.d.ts +29 -0
  154. package/generated-types/1.0/classes/CoreUObject/FGBuildableWidgetSign.js +1 -0
  155. package/generated-types/1.0/classes/CoreUObject/FGBuildableWire.d.ts +15 -0
  156. package/generated-types/1.0/classes/CoreUObject/FGBuildableWire.js +1 -0
  157. package/generated-types/1.0/classes/CoreUObject/FGBuildingDescriptor.d.ts +14 -0
  158. package/generated-types/1.0/classes/CoreUObject/FGBuildingDescriptor.js +1 -0
  159. package/generated-types/1.0/classes/CoreUObject/FGCentralStorageContainer.d.ts +14 -0
  160. package/generated-types/1.0/classes/CoreUObject/FGCentralStorageContainer.js +1 -0
  161. package/generated-types/1.0/classes/CoreUObject/FGChainsaw.d.ts +53 -0
  162. package/generated-types/1.0/classes/CoreUObject/FGChainsaw.js +1 -0
  163. package/generated-types/1.0/classes/CoreUObject/FGChargedWeapon.d.ts +145 -0
  164. package/generated-types/1.0/classes/CoreUObject/FGChargedWeapon.js +1 -0
  165. package/generated-types/1.0/classes/CoreUObject/FGConsumableDescriptor.d.ts +18 -0
  166. package/generated-types/1.0/classes/CoreUObject/FGConsumableDescriptor.js +1 -0
  167. package/generated-types/1.0/classes/CoreUObject/FGConsumableEquipment.d.ts +67 -0
  168. package/generated-types/1.0/classes/CoreUObject/FGConsumableEquipment.js +1 -0
  169. package/generated-types/1.0/classes/CoreUObject/FGConveyorPoleStackable.d.ts +5 -0
  170. package/generated-types/1.0/classes/CoreUObject/FGConveyorPoleStackable.js +1 -0
  171. package/generated-types/1.0/classes/CoreUObject/FGCustomizationRecipe.d.ts +35 -0
  172. package/generated-types/1.0/classes/CoreUObject/FGCustomizationRecipe.js +1 -0
  173. package/generated-types/1.0/classes/CoreUObject/FGEquipment.d.ts +57 -0
  174. package/generated-types/1.0/classes/CoreUObject/FGEquipment.js +1 -0
  175. package/generated-types/1.0/classes/CoreUObject/FGEquipmentDescriptor.d.ts +13 -0
  176. package/generated-types/1.0/classes/CoreUObject/FGEquipmentDescriptor.js +1 -0
  177. package/generated-types/1.0/classes/CoreUObject/FGEquipmentStunSpear.d.ts +180 -0
  178. package/generated-types/1.0/classes/CoreUObject/FGEquipmentStunSpear.js +1 -0
  179. package/generated-types/1.0/classes/CoreUObject/FGEquipmentZipline.d.ts +48 -0
  180. package/generated-types/1.0/classes/CoreUObject/FGEquipmentZipline.js +1 -0
  181. package/generated-types/1.0/classes/CoreUObject/FGGasMask.d.ts +28 -0
  182. package/generated-types/1.0/classes/CoreUObject/FGGasMask.js +1 -0
  183. package/generated-types/1.0/classes/CoreUObject/FGGolfCartDispenser.d.ts +27 -0
  184. package/generated-types/1.0/classes/CoreUObject/FGGolfCartDispenser.js +1 -0
  185. package/generated-types/1.0/classes/CoreUObject/FGHoverPack.d.ts +60 -0
  186. package/generated-types/1.0/classes/CoreUObject/FGHoverPack.js +1 -0
  187. package/generated-types/1.0/classes/CoreUObject/FGItemDescriptor.d.ts +59 -0
  188. package/generated-types/1.0/classes/CoreUObject/FGItemDescriptor.js +1 -0
  189. package/generated-types/1.0/classes/CoreUObject/FGItemDescriptorBiomass.d.ts +9 -0
  190. package/generated-types/1.0/classes/CoreUObject/FGItemDescriptorBiomass.js +1 -0
  191. package/generated-types/1.0/classes/CoreUObject/FGItemDescriptorNuclearFuel.d.ts +15 -0
  192. package/generated-types/1.0/classes/CoreUObject/FGItemDescriptorNuclearFuel.js +1 -0
  193. package/generated-types/1.0/classes/CoreUObject/FGItemDescriptorPowerBoosterFuel.d.ts +10 -0
  194. package/generated-types/1.0/classes/CoreUObject/FGItemDescriptorPowerBoosterFuel.js +1 -0
  195. package/generated-types/1.0/classes/CoreUObject/FGJetPack.d.ts +37 -0
  196. package/generated-types/1.0/classes/CoreUObject/FGJetPack.js +1 -0
  197. package/generated-types/1.0/classes/CoreUObject/FGJumpingStilts.d.ts +22 -0
  198. package/generated-types/1.0/classes/CoreUObject/FGJumpingStilts.js +1 -0
  199. package/generated-types/1.0/classes/CoreUObject/FGObjectScanner.d.ts +39 -0
  200. package/generated-types/1.0/classes/CoreUObject/FGObjectScanner.js +1 -0
  201. package/generated-types/1.0/classes/CoreUObject/FGParachute.d.ts +111 -0
  202. package/generated-types/1.0/classes/CoreUObject/FGParachute.js +1 -0
  203. package/generated-types/1.0/classes/CoreUObject/FGPipeHyperStart.d.ts +19 -0
  204. package/generated-types/1.0/classes/CoreUObject/FGPipeHyperStart.js +1 -0
  205. package/generated-types/1.0/classes/CoreUObject/FGPoleDescriptor.d.ts +13 -0
  206. package/generated-types/1.0/classes/CoreUObject/FGPoleDescriptor.js +1 -0
  207. package/generated-types/1.0/classes/CoreUObject/FGPortableMinerDispenser.d.ts +31 -0
  208. package/generated-types/1.0/classes/CoreUObject/FGPortableMinerDispenser.js +1 -0
  209. package/generated-types/1.0/classes/CoreUObject/FGPowerShardDescriptor.d.ts +11 -0
  210. package/generated-types/1.0/classes/CoreUObject/FGPowerShardDescriptor.js +1 -0
  211. package/generated-types/1.0/classes/CoreUObject/FGRecipe.d.ts +9 -0
  212. package/generated-types/1.0/classes/CoreUObject/FGRecipe.js +1 -0
  213. package/generated-types/1.0/classes/CoreUObject/FGResourceDescriptor.d.ts +12 -0
  214. package/generated-types/1.0/classes/CoreUObject/FGResourceDescriptor.js +1 -0
  215. package/generated-types/1.0/classes/CoreUObject/FGSchematic.d.ts +169 -0
  216. package/generated-types/1.0/classes/CoreUObject/FGSchematic.js +1 -0
  217. package/generated-types/1.0/classes/CoreUObject/FGSuitBase.d.ts +40 -0
  218. package/generated-types/1.0/classes/CoreUObject/FGSuitBase.js +1 -0
  219. package/generated-types/1.0/classes/CoreUObject/FGVehicleDescriptor.d.ts +22 -0
  220. package/generated-types/1.0/classes/CoreUObject/FGVehicleDescriptor.js +1 -0
  221. package/generated-types/1.0/classes/CoreUObject/FGWeapon.d.ts +159 -0
  222. package/generated-types/1.0/classes/CoreUObject/FGWeapon.js +1 -0
  223. package/generated-types/1.0/common/scalar.d.ts +7 -0
  224. package/generated-types/1.0/common/scalar.js +1 -0
  225. package/generated-types/1.0/common/unassigned.d.ts +302 -0
  226. package/generated-types/1.0/common/unassigned.js +1 -0
  227. package/generated-types/1.0/utils/validators.d.ts +14 -0
  228. package/generated-types/1.0/utils/validators.js +14 -0
  229. package/lib/CustomParsingTypes/TypedString.d.ts +28 -2
  230. package/lib/CustomParsingTypes/TypedStringConst.d.ts +1 -1
  231. package/lib/CustomParsingTypes/TypedStringConst.js +2 -2
  232. package/lib/CustomParsingTypes/TypedStringEnum.js +1 -1
  233. package/lib/CustomParsingTypes/UnrealEngineString.d.ts +51 -2
  234. package/lib/CustomParsingTypes/UnrealEngineString.js +73 -6
  235. package/lib/CustomParsingTypes/ValueToRegexFormatter.d.ts +1 -0
  236. package/lib/CustomParsingTypes/ValueToRegexFormatter.js +12 -6
  237. package/lib/DataDiscovery/CustomTypes/TypedString.js +9 -1
  238. package/lib/DataDiscovery/CustomTypes/UnrealEngineString.js +9 -2
  239. package/lib/DataDiscovery/JsonSchema/Array.d.ts +10 -2
  240. package/lib/DataDiscovery/JsonSchema/Array.js +56 -12
  241. package/lib/DataDiscovery/JsonSchema/Object.js +6 -2
  242. package/lib/DataDiscovery/JsonSchema/OneOf.js +22 -2
  243. package/lib/DataDiscovery/JsonSchema/Ref.js +1 -1
  244. package/lib/DataDiscovery.d.ts +3 -2
  245. package/lib/DataDiscovery.js +7 -5
  246. package/lib/DocsSchema.d.ts +20 -0
  247. package/lib/DocsSchema.js +30 -0
  248. package/lib/DocsTsGenerator/FilesGenerator.d.ts +3 -2
  249. package/lib/DocsTsGenerator/FilesGenerator.js +5 -3
  250. package/lib/DocsTsGenerator.d.ts +15350 -12
  251. package/lib/DocsTsGenerator.js +83 -39
  252. package/lib/TsFactoryWrapper.d.ts +1 -1
  253. package/lib/TsFactoryWrapper.js +4 -4
  254. package/lib/TypeDefinitionDiscovery/CustomParsingTypes/UnrealEngineString.js +5 -2
  255. package/lib/TypeDefinitionDiscovery/CustomParsingTypes/typed_string.d.ts +5 -5
  256. package/lib/TypeDefinitionDiscovery/CustomParsingTypes/typed_string.js +3 -1
  257. package/lib/TypeDefinitionDiscovery.d.ts +3 -2
  258. package/lib/TypeDefinitionDiscovery.js +49 -5
  259. package/lib/TypeDefinitionWriter.d.ts +3 -2
  260. package/lib/TypeDefinitionWriter.js +15 -12
  261. package/lib/TypesDiscovery.d.ts +4 -3
  262. package/lib/TypesDiscovery.js +6 -4
  263. package/lib/helpers.js +14 -4
  264. package/package.json +3 -2
  265. package/schema/1.0.schema.json +13152 -0
  266. package/schema/update8.schema.json +98 -5
  267. package/types-progress--update8.md +296 -0
  268. package/types-progress--version_1_0_0_0.md +364 -0
@@ -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 DocsTsGenerator {
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
- // raw JSON or path to UTF-16LE encoded Docs.json
45
- docs_path,
46
- // optional cache folder path for cacheable resources
47
- cache_path = undefined, types_from_module = undefined, }) {
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.docs_path = docs_path;
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
- async schema() {
67
- await this.validate_schema(update8_schema);
68
- return update8_schema;
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
- async load() {
71
- if (undefined === this.docs) {
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 this.docs_path) {
111
+ if ('string' !== typeof docs.docs_path) {
74
112
  performance.measure(DocsTsGenerator.PERF_EARLY_RETURN, DocsTsGenerator.PERF_START_LOADING_JSON);
75
- return this.docs_path;
113
+ return docs.docs_path;
76
114
  }
77
- else if (!this.docs_path.endsWith('.json')) {
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 (this.cache_path) {
85
- const utf8_filename = basename(this.docs_path).replace(/\.json$/, '.utf8.json');
86
- const utf8_filepath = `${this.cache_path}/${utf8_filename}`;
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(this.docs_path);
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(this.docs_path);
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
- this.docs = maybe_json;
150
+ docs.docs = maybe_json;
113
151
  }
114
- if (undefined === this.docs) {
115
- throw new Error('this.docs not set!');
152
+ if (undefined === docs.docs) {
153
+ throw new Error('docs not set!');
116
154
  }
117
155
  }
118
- return this.docs;
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('Failed to validate against the provided JSON Schema', validateDocs.errors, json);
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 (this.cache_path) {
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 = `${this.cache_path}/${filename}`;
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;
@@ -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) : true);
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
- const result = UnrealEngineString_regex.exec(value);
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.required);
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
- constructor(docs: DocsTsGenerator);
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
- constructor(docs) {
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
- if (this.docs.types_from_module) {
208
- code = code.replace(/} from '(?:\.\.\/)+(classes|common|utils)\//g, `} from '${this.docs.types_from_module}/$1/`);
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);
@@ -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
- constructor(candidates_discovery: [CandidatesDiscovery, ...CandidatesDiscovery[]], docs: DocsTsGenerator);
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[]
@@ -13,13 +13,15 @@ export class TypesDiscovery {
13
13
  discovery;
14
14
  candidates_discovery;
15
15
  docs;
16
- constructor(candidates_discovery, docs) {
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
- docs_path: `${__dirname}/../data/Docs.json`,
22
- cache_path: `${__dirname}/../data/`,
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
  };