@satisfactory-dev/docs.json.ts 0.11.1 → 0.12.0

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