@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
@@ -2,7 +2,8 @@ import Ajv from 'ajv/dist/2020';
2
2
  import ts, { StringLiteral, TypeNode, TypeReferenceNode, UnionTypeNode } from 'typescript';
3
3
  import { entry } from '../FilesGenerator';
4
4
  export declare const UnrealEngineString_regex: RegExp;
5
- export declare const UnrealEngineString_general_regex = "/(?:[A-Z-][A-Za-z0-9_-]+/)+(?:[A-Z][A-Za-z_0-9-]+\\.[A-Z][A-Za-z_0-9-]+(?:_C)?(?::[A-Z][A-Za-z0-9_]+)?|[A-Z][A-Za-z_]+\\.[A-Z][A-Za-z_]+)";
5
+ export declare const UnrealEngineString_regex_quoted: RegExp;
6
+ export declare const UnrealEngineString_general_regex = "/(?:[A-Z-][A-Za-z0-9_-]+/)+(?:[A-Z][A-Za-z_0-9-]+\\.[A-Z][A-Za-z_0-9-]+(?:_C)?(?::[A-Z][A-Za-z0-9_]+)?|[A-Z0-9][A-Za-z_]+\\.[A-Z0-9][A-Za-z_]+)";
6
7
  export type UnrealEngineString_string_or_string_array = string | [string, ...string[]];
7
8
  export declare function string_or_string_array_to_node(value: string | [string, ...string[]]): typeof value extends string ? (ts.LiteralTypeNode & {
8
9
  literal: StringLiteral;
@@ -13,11 +14,14 @@ export type UnrealEngineString_right = UnrealEngineString_string_or_string_array
13
14
  export type UnrealEngineString_type = {
14
15
  left: UnrealEngineString_string_or_string_array;
15
16
  right: UnrealEngineString_right;
17
+ quote_mode?: typeof UnrealEngineString['quote_mode'];
16
18
  } | {
17
19
  left: UnrealEngineString_string_or_string_array;
20
+ quote_mode?: typeof UnrealEngineString['quote_mode'];
18
21
  } | {
19
22
  right: UnrealEngineString_right;
20
- } | true;
23
+ quote_mode?: typeof UnrealEngineString['quote_mode'];
24
+ } | typeof UnrealEngineString['quote_mode'] | true;
21
25
  export type UnrealEngineString_parent_type = {
22
26
  type: 'string';
23
27
  minLength: 1;
@@ -97,6 +101,10 @@ export declare const UnrealEngineString_schema_definitions: {
97
101
  items?: undefined;
98
102
  })[];
99
103
  };
104
+ UnrealEngineString_quote_mode: {
105
+ type: string;
106
+ enum: string[];
107
+ };
100
108
  };
101
109
  export declare const UnrealEngineString_schema: {
102
110
  oneOf: ({
@@ -110,7 +118,11 @@ export declare const UnrealEngineString_schema: {
110
118
  right: {
111
119
  $ref: "#/$defs/UnrealEngineString_right";
112
120
  };
121
+ quote_mode: {
122
+ $ref: "#/$defs/UnrealEngineString_quote_mode";
123
+ };
113
124
  };
125
+ $ref?: undefined;
114
126
  const?: undefined;
115
127
  } | {
116
128
  type: string;
@@ -120,8 +132,12 @@ export declare const UnrealEngineString_schema: {
120
132
  left: {
121
133
  $ref: "#/$defs/UnrealEngineString_left";
122
134
  };
135
+ quote_mode: {
136
+ $ref: "#/$defs/UnrealEngineString_quote_mode";
137
+ };
123
138
  right?: undefined;
124
139
  };
140
+ $ref?: undefined;
125
141
  const?: undefined;
126
142
  } | {
127
143
  type: string;
@@ -131,8 +147,19 @@ export declare const UnrealEngineString_schema: {
131
147
  right: {
132
148
  $ref: "#/$defs/UnrealEngineString_right";
133
149
  };
150
+ quote_mode: {
151
+ $ref: "#/$defs/UnrealEngineString_quote_mode";
152
+ };
134
153
  left?: undefined;
135
154
  };
155
+ $ref?: undefined;
156
+ const?: undefined;
157
+ } | {
158
+ $ref: "#/$defs/UnrealEngineString_quote_mode";
159
+ type?: undefined;
160
+ required?: undefined;
161
+ additionalProperties?: undefined;
162
+ properties?: undefined;
136
163
  const?: undefined;
137
164
  } | {
138
165
  type: string;
@@ -140,6 +167,7 @@ export declare const UnrealEngineString_schema: {
140
167
  required?: undefined;
141
168
  additionalProperties?: undefined;
142
169
  properties?: undefined;
170
+ $ref?: undefined;
143
171
  })[];
144
172
  };
145
173
  export declare const UnrealEngineString_parent_schema: {
@@ -167,7 +195,11 @@ export declare const UnrealEngineString_parent_schema: {
167
195
  right: {
168
196
  $ref: "#/$defs/UnrealEngineString_right";
169
197
  };
198
+ quote_mode: {
199
+ $ref: "#/$defs/UnrealEngineString_quote_mode";
200
+ };
170
201
  };
202
+ $ref?: undefined;
171
203
  const?: undefined;
172
204
  } | {
173
205
  type: string;
@@ -177,8 +209,12 @@ export declare const UnrealEngineString_parent_schema: {
177
209
  left: {
178
210
  $ref: "#/$defs/UnrealEngineString_left";
179
211
  };
212
+ quote_mode: {
213
+ $ref: "#/$defs/UnrealEngineString_quote_mode";
214
+ };
180
215
  right?: undefined;
181
216
  };
217
+ $ref?: undefined;
182
218
  const?: undefined;
183
219
  } | {
184
220
  type: string;
@@ -188,8 +224,19 @@ export declare const UnrealEngineString_parent_schema: {
188
224
  right: {
189
225
  $ref: "#/$defs/UnrealEngineString_right";
190
226
  };
227
+ quote_mode: {
228
+ $ref: "#/$defs/UnrealEngineString_quote_mode";
229
+ };
191
230
  left?: undefined;
192
231
  };
232
+ $ref?: undefined;
233
+ const?: undefined;
234
+ } | {
235
+ $ref: "#/$defs/UnrealEngineString_quote_mode";
236
+ type?: undefined;
237
+ required?: undefined;
238
+ additionalProperties?: undefined;
239
+ properties?: undefined;
193
240
  const?: undefined;
194
241
  } | {
195
242
  type: string;
@@ -197,6 +244,7 @@ export declare const UnrealEngineString_parent_schema: {
197
244
  required?: undefined;
198
245
  additionalProperties?: undefined;
199
246
  properties?: undefined;
247
+ $ref?: undefined;
200
248
  })[];
201
249
  };
202
250
  };
@@ -204,6 +252,7 @@ export declare const UnrealEngineString_parent_schema: {
204
252
  export declare const UnrealEngineString_left_default: string[];
205
253
  export declare class UnrealEngineString {
206
254
  private static already_configured;
255
+ static quote_mode: 'both' | 'original' | 'new' | 'double_escaped' | 'double';
207
256
  static ajv_macro_generator(inner: boolean): (data_from_schema: UnrealEngineString_type) => {
208
257
  pattern: string;
209
258
  };
@@ -3,7 +3,9 @@ import { is_string, object_has_property, value_is_non_array_object, } from '@sat
3
3
  import { adjust_class_name, create_const_statement, create_index_access, create_literal, create_method_with_type_parameters, create_method_without_type_parameters, create_modifiers, create_property_access, create_this_assignment, create_throw_if, create_type, createClass, createParameter, not, parenthesize, possibly_create_lazy_union, template_expression_from_string, type_reference_node, variable, } from '../TsFactoryWrapper';
4
4
  import { local_ref, } from '../StringStartsWith';
5
5
  export const UnrealEngineString_regex = /^([^']+)'(?:"([^"]+)"|([^"]+))'$/;
6
- export const UnrealEngineString_general_regex = `/(?:[A-Z-][A-Za-z0-9_-]+/)+(?:[A-Z][A-Za-z_0-9-]+\\.[A-Z][A-Za-z_0-9-]+(?:_C)?(?::[A-Z][A-Za-z0-9_]+)?|[A-Z][A-Za-z_]+\\.[A-Z][A-Za-z_]+)`;
6
+ // eslint-disable-next-line max-len
7
+ export const UnrealEngineString_regex_quoted = /^"([^']+)'(?:"([^"]+)"|([^"]+))'"$/;
8
+ export const UnrealEngineString_general_regex = `/(?:[A-Z-][A-Za-z0-9_-]+/)+(?:[A-Z][A-Za-z_0-9-]+\\.[A-Z][A-Za-z_0-9-]+(?:_C)?(?::[A-Z][A-Za-z0-9_]+)?|[A-Z0-9][A-Za-z_]+\\.[A-Z0-9][A-Za-z_]+)`;
7
9
  export function string_or_string_array_to_node(value) {
8
10
  if (is_string(value)) {
9
11
  return create_literal(value);
@@ -19,7 +21,15 @@ export function is_UnrealEngineString_parent(maybe) {
19
21
  && 1 === maybe.minLength
20
22
  && object_has_property(maybe, 'UnrealEngineString')
21
23
  && (true === maybe.UnrealEngineString
22
- || is_UnrealEngineString_object(maybe.UnrealEngineString)));
24
+ || is_UnrealEngineString_object(maybe.UnrealEngineString)
25
+ || (is_string(maybe.UnrealEngineString)
26
+ && [
27
+ 'original',
28
+ 'new',
29
+ 'double_escaped',
30
+ 'double',
31
+ 'both',
32
+ ].includes(maybe.UnrealEngineString))));
23
33
  }
24
34
  export const UnrealEngineString_schema_definitions = {
25
35
  UnrealEngineString_left_string: {
@@ -77,6 +87,16 @@ export const UnrealEngineString_schema_definitions = {
77
87
  ] } },
78
88
  },
79
89
  ] },
90
+ UnrealEngineString_quote_mode: {
91
+ type: 'string',
92
+ enum: [
93
+ 'original',
94
+ 'both',
95
+ 'double_escaped',
96
+ 'double',
97
+ 'new',
98
+ ],
99
+ },
80
100
  };
81
101
  export const UnrealEngineString_schema = {
82
102
  oneOf: [
@@ -91,6 +111,9 @@ export const UnrealEngineString_schema = {
91
111
  right: {
92
112
  $ref: local_ref('UnrealEngineString_right'),
93
113
  },
114
+ quote_mode: {
115
+ $ref: local_ref('UnrealEngineString_quote_mode'),
116
+ },
94
117
  },
95
118
  },
96
119
  {
@@ -101,6 +124,9 @@ export const UnrealEngineString_schema = {
101
124
  left: {
102
125
  $ref: local_ref('UnrealEngineString_left'),
103
126
  },
127
+ quote_mode: {
128
+ $ref: local_ref('UnrealEngineString_quote_mode'),
129
+ },
104
130
  },
105
131
  },
106
132
  {
@@ -111,8 +137,14 @@ export const UnrealEngineString_schema = {
111
137
  right: {
112
138
  $ref: local_ref('UnrealEngineString_right'),
113
139
  },
140
+ quote_mode: {
141
+ $ref: local_ref('UnrealEngineString_quote_mode'),
142
+ },
114
143
  },
115
144
  },
145
+ {
146
+ $ref: local_ref('UnrealEngineString_quote_mode'),
147
+ },
116
148
  {
117
149
  type: 'boolean',
118
150
  const: true,
@@ -132,12 +164,17 @@ export const UnrealEngineString_parent_schema = {
132
164
  export const UnrealEngineString_left_default = [
133
165
  '/Script/Engine.BlueprintGeneratedClass',
134
166
  ];
135
- const right_value_starts_with_suffix = '(?:[A-Z][A-Za-z0-9_.]+/)*[A-Z][A-Za-z_.0-9-]+(?::[A-Z][A-Za-z0-9]+)?';
167
+ const right_value_starts_with_suffix =
168
+ // eslint-disable-next-line max-len
169
+ '(?:_?[A-Z0-9][A-Za-z0-9_.]+/)*[A-Z0-9][A-Za-z_.0-9-]+(?::[A-Z0-9][A-Za-z0-9]+)?';
136
170
  export class UnrealEngineString {
137
171
  static already_configured = new WeakSet();
172
+ // eslint-disable-next-line max-len
173
+ static quote_mode = 'both';
138
174
  static ajv_macro_generator(inner) {
139
175
  return (data_from_schema) => {
140
- const data = true === data_from_schema ? {} : data_from_schema;
176
+ const data = (true === data_from_schema
177
+ || is_string(data_from_schema)) ? {} : data_from_schema;
141
178
  const left_value = ('left' in data
142
179
  ? data.left instanceof Array
143
180
  ? data.left
@@ -157,7 +194,26 @@ export class UnrealEngineString {
157
194
  .join('|')})`,
158
195
  ]).join('|')})`
159
196
  : UnrealEngineString_general_regex;
160
- const regex = `(?:(?:${left_value})'(?:${right_value}|"${right_value}")')`;
197
+ let regex = `(?:(?:${left_value})'(?:${right_value}|"${right_value}")'|"(?:${left_value})'${right_value}'"|\\\\"(?:${left_value})'${right_value}'\\\\")`;
198
+ let quote_mode = this.quote_mode;
199
+ if (is_string(data_from_schema)) {
200
+ quote_mode = data_from_schema;
201
+ }
202
+ else if ('quote_mode' in data && undefined !== data.quote_mode) {
203
+ quote_mode = data.quote_mode;
204
+ }
205
+ if ('original' === quote_mode) {
206
+ regex = `(?:(?:${left_value})'(?:${right_value}|"${right_value}")')`;
207
+ }
208
+ else if ('new' === quote_mode) {
209
+ regex = `(?:"(?:${left_value})'${right_value}'"|\\\\"(?:${left_value})'${right_value}'\\\\")`;
210
+ }
211
+ else if ('double_escaped' === quote_mode) {
212
+ regex = `(?:\\\\"(?:${left_value})'${right_value}'\\\\")`;
213
+ }
214
+ else if ('double' === quote_mode) {
215
+ regex = `(?:"(?:${left_value})'${right_value}'")`;
216
+ }
161
217
  return {
162
218
  pattern: inner ? regex : `^${regex}$`,
163
219
  };
@@ -301,6 +357,17 @@ function is_UnrealEngineString_object(maybe) {
301
357
  && 1 === Object.keys(maybe.right).length
302
358
  && is_string_or_string_array(maybe.right.starts_with)
303
359
  : is_string_or_string_array(maybe.right));
304
- return ((2 === keys.length && has_left && has_right)
360
+ const has_quote_mode = ('quote_mode' in maybe
361
+ && is_string(maybe.quote_mode)
362
+ && [
363
+ 'original',
364
+ 'double_escaped',
365
+ 'double',
366
+ 'both',
367
+ 'new',
368
+ ].includes(maybe.quote_mode));
369
+ return ((3 === keys.length && has_left && has_right && has_quote_mode)
370
+ || (2 === keys.length && has_left && has_right)
371
+ || (2 === keys.length && has_quote_mode && (has_left || has_right))
305
372
  || (1 === keys.length && (has_left || has_right)));
306
373
  }
@@ -24,6 +24,7 @@ export declare class ValueToRegexFormatter {
24
24
  private static is_typed_string_array_inner;
25
25
  private static is_typed_string_array_prefixItems;
26
26
  private static is_typed_string_object_inner;
27
+ private static is_typed_string_object_inner_no_required;
27
28
  private static is_typed_string_object_parent;
28
29
  private static is_typed_string_object_pattern_inner;
29
30
  }
@@ -68,14 +68,14 @@ export class ValueToRegexFormatter {
68
68
  const regex = this.value_to_regex(typed_string_array.items);
69
69
  return `\\(${regex}${undefined === typed_string_array.minItems
70
70
  ? ''
71
- : `(?:,${regex}){${typed_string_array.minItems - 1},}`}\\)`;
71
+ : `(?:, ?${regex}){${typed_string_array.minItems - 1},}`}\\)`;
72
72
  }
73
73
  typed_string_object_inner_to_regex(typed_string_object) {
74
74
  return `\\(${Object.entries(typed_string_object.properties).map((entry, index) => {
75
75
  const [property, value] = entry;
76
- return `(?:${index > 0
77
- ? ','
78
- : ''}${annoyingly_have_to_escape_property(property)}=(?:${this.value_to_regex(value)}))${typed_string_object.required.includes(property)
76
+ return `(?:(?:${index > 0
77
+ ? ',?'
78
+ : ''}${annoyingly_have_to_escape_property(property)})=(?:${this.value_to_regex(value)}))${(typed_string_object?.required || []).includes(property)
79
79
  ? ''
80
80
  : '?'}`;
81
81
  }).join('')}\\)`;
@@ -86,7 +86,8 @@ export class ValueToRegexFormatter {
86
86
  return `\\(${regex}(,${regex}){${typed_string_object.minProperties - 1},}\\)`;
87
87
  }
88
88
  value_to_regex(value) {
89
- if (ValueToRegexFormatter.is_typed_string_object_inner(value)) {
89
+ if (ValueToRegexFormatter.is_typed_string_object_inner(value)
90
+ || ValueToRegexFormatter.is_typed_string_object_inner_no_required(value)) {
90
91
  return this.typed_string_object_inner_to_regex(value);
91
92
  }
92
93
  else if (ValueToRegexFormatter.is_typed_string_object_pattern_inner(value)) {
@@ -189,13 +190,18 @@ export class ValueToRegexFormatter {
189
190
  && object_has_property(maybe, 'properties', value_is_non_array_object)
190
191
  && 2 === Object.keys(maybe).length);
191
192
  }
193
+ static is_typed_string_object_inner_no_required(maybe) {
194
+ return (object_has_property(maybe, 'properties', value_is_non_array_object)
195
+ && 1 === Object.keys(maybe).length);
196
+ }
192
197
  static is_typed_string_object_parent(maybe) {
193
198
  return (object_has_property_that_equals(maybe, 'type', 'string')
194
199
  && object_has_property_that_equals(maybe, 'minLength', 1)
195
200
  && object_has_property(maybe, 'typed_string')
196
201
  && 3 === Object.keys(maybe).length
197
202
  && (this.is_typed_string_object_inner(maybe.typed_string)
198
- || this.is_typed_string_array_inner(maybe.typed_string)));
203
+ || this.is_typed_string_array_inner(maybe.typed_string)
204
+ || this.is_typed_string_object_inner_no_required(maybe.typed_string)));
199
205
  }
200
206
  static is_typed_string_object_pattern_inner(maybe) {
201
207
  return (object_has_property(maybe, 'minProperties', is_number)
@@ -34,13 +34,21 @@ export class TypedStringConverter extends ConverterMatchesSchema {
34
34
  && ((typed_string.is_array_type(schema.typed_string)
35
35
  && this.check_shallow_array_schema(schema.typed_string, string_to_array(raw_data, true)))
36
36
  || (typed_string.is_prefixItems_type(schema.typed_string)
37
- && this.check_shallow_array_prefixItems_schema(schema.typed_string, string_to_array(raw_data, true)))))));
37
+ && this.check_shallow_array_prefixItems_schema(schema.typed_string, string_to_array(raw_data, true)))))
38
+ || (!('required' in schema.typed_string)
39
+ && ('properties' in schema.typed_string)
40
+ && typed_string.is_object_type(schema.typed_string))));
38
41
  }
39
42
  async convert(schema, raw_data) {
40
43
  if (!await this.can_convert_schema_and_raw_data(schema, raw_data)) {
41
44
  throw new NoMatchError({
42
45
  schema,
43
46
  raw_data,
47
+ can_convert: this.can_convert_schema(schema),
48
+ is_string: is_string(raw_data),
49
+ is_array_type: typed_string.is_array_type(schema.typed_string),
50
+ string_to_array: string_to_array(raw_data),
51
+ shallow: (typed_string.is_array_type(schema.typed_string) && this.check_shallow_array_schema(schema.typed_string, string_to_array(raw_data))),
44
52
  }, 'Cannot convert!');
45
53
  }
46
54
  else if (typed_string.is_object_type(schema.typed_string)
@@ -1,6 +1,6 @@
1
1
  import { is_string, object_has_property, value_is_non_array_object, } from '@satisfactory-dev/predicates.ts';
2
2
  import { Converter, ExpressionResult, } from '../Generator';
3
- import { is_UnrealEngineString_parent, string_or_string_array_to_node, UnrealEngineString_regex, } from '../../CustomParsingTypes/UnrealEngineString';
3
+ import { is_UnrealEngineString_parent, string_or_string_array_to_node, UnrealEngineString_regex, UnrealEngineString_regex_quoted, } from '../../CustomParsingTypes/UnrealEngineString';
4
4
  import ts from 'typescript';
5
5
  import { create_literal, create_property_access, create_type, type_reference_node, } from '../../TsFactoryWrapper';
6
6
  import { NoMatchError, } from '../../Exceptions';
@@ -11,13 +11,20 @@ export class UnrealEngineStringConverter extends Converter {
11
11
  can_convert_schema_and_raw_data(schema, raw_data) {
12
12
  return Promise.resolve(this.can_convert_schema(schema)
13
13
  && is_string(raw_data)
14
- && UnrealEngineString_regex.test(raw_data));
14
+ && (UnrealEngineString_regex.test(raw_data)
15
+ || UnrealEngineString_regex_quoted.test(raw_data)));
15
16
  }
16
17
  async convert(schema, raw_data) {
17
18
  if (!await this.can_convert_schema_and_raw_data(schema, raw_data)) {
18
19
  throw new NoMatchError({
19
20
  schema,
20
21
  raw_data,
22
+ can_convert: this.can_convert_schema(schema),
23
+ is_string: is_string(raw_data),
24
+ regex: UnrealEngineString_regex,
25
+ regex_quoted: UnrealEngineString_regex_quoted,
26
+ test_regex: UnrealEngineString_regex.test(raw_data),
27
+ test_regex_quoted: UnrealEngineString_regex_quoted.test(raw_data),
21
28
  }, 'Not an UnrealEngineString!');
22
29
  }
23
30
  const type_args = [
@@ -8,10 +8,18 @@ type array_type = {
8
8
  minItems: number;
9
9
  maxItems?: number;
10
10
  };
11
- export declare class ArrayConverter extends ConverterMatchesSchema<array_type, unknown[], ArrayLiteralExpression> {
11
+ type prefix_array_type = {
12
+ type: 'array';
13
+ items?: false;
14
+ prefixItems: [SchemaObject, ...SchemaObject[]];
15
+ minItems: number;
16
+ maxItems?: number;
17
+ };
18
+ export declare class ArrayConverter extends ConverterMatchesSchema<array_type | prefix_array_type, unknown[], ArrayLiteralExpression> {
19
+ #private;
12
20
  private readonly discovery;
13
21
  constructor(discovery: DataDiscovery);
14
22
  can_convert_schema_and_raw_data(schema: SchemaObject, raw_data: unknown): Promise<boolean>;
15
- convert(schema: array_type, raw_data: unknown[]): Promise<ExpressionResult<ArrayLiteralExpression>>;
23
+ convert(schema: array_type | prefix_array_type, raw_data: unknown[]): Promise<ExpressionResult<ArrayLiteralExpression>>;
16
24
  }
17
25
  export {};
@@ -4,23 +4,45 @@ export class ArrayConverter extends ConverterMatchesSchema {
4
4
  discovery;
5
5
  constructor(discovery) {
6
6
  super(discovery.docs.ajv, {
7
- type: 'object',
8
- required: ['type', 'minItems', 'items'],
9
- additionalProperties: false,
10
- properties: {
11
- type: { type: 'string', const: 'array' },
12
- items: { type: 'object' },
13
- minItems: { type: 'number', minimum: 0 },
14
- maxItems: { type: 'number', minimum: 1 },
15
- },
7
+ oneOf: [
8
+ {
9
+ type: 'object',
10
+ required: ['type', 'minItems', 'items'],
11
+ additionalProperties: false,
12
+ properties: {
13
+ type: { type: 'string', const: 'array' },
14
+ items: { type: 'object' },
15
+ minItems: { type: 'number', minimum: 0 },
16
+ maxItems: { type: 'number', minimum: 1 },
17
+ },
18
+ },
19
+ {
20
+ type: 'object',
21
+ required: ['type', 'minItems', 'prefixItems'],
22
+ additionalProperties: false,
23
+ properties: {
24
+ type: { type: 'string', const: 'array' },
25
+ items: { type: 'boolean', const: false },
26
+ prefixItems: { type: 'array', items: {
27
+ type: 'object',
28
+ } },
29
+ minItems: { type: 'number', minimum: 0 },
30
+ maxItems: { type: 'number', minimum: 1 },
31
+ },
32
+ },
33
+ ],
16
34
  });
17
35
  this.discovery = discovery;
18
36
  }
19
37
  async can_convert_schema_and_raw_data(schema, raw_data) {
20
38
  return Promise.resolve(this.can_convert_schema(schema)
21
39
  && raw_data instanceof Array
22
- && !!((await this.discovery.candidates).find(e => e.can_convert_schema(schema.items)))
23
- && !!Converter.has_matching_schema(await this.discovery.candidates, schema.items));
40
+ && ((!('prefixItems' in schema)
41
+ && !!((await this.discovery.candidates).find(e => e.can_convert_schema(schema.items)))
42
+ && !!Converter.has_matching_schema(await this.discovery.candidates, schema.items))
43
+ || (('prefixItems' in schema)
44
+ && !!await Promise.all(schema.prefixItems.map(async (sub_schema) => (!!(await this.discovery.candidates).find(e => e.can_convert_schema(sub_schema))
45
+ && !!Converter.has_matching_schema(await this.discovery.candidates, sub_schema)))))));
24
46
  }
25
47
  async convert(schema, raw_data) {
26
48
  if (!this.can_convert_schema(schema)
@@ -30,11 +52,33 @@ export class ArrayConverter extends ConverterMatchesSchema {
30
52
  raw_data,
31
53
  }, 'Cannot convert!');
32
54
  }
55
+ const converted = 'prefixItems' in schema
56
+ ? await this.#convert_prefixItems_type(schema, raw_data)
57
+ : await this.#convert_array_type(schema, raw_data);
58
+ return new ExpressionResult(await this.discovery.literal.array_literal(converted));
59
+ }
60
+ async #convert_array_type(schema, raw_data) {
33
61
  const converter = await Converter.find_matching_schema(await this.discovery.candidates, schema.items);
34
62
  const converted = [];
35
63
  for (const entry of raw_data) {
36
64
  converted.push(await converter.convert(schema.items, entry));
37
65
  }
38
- return new ExpressionResult(await this.discovery.literal.array_literal(converted));
66
+ return converted;
67
+ }
68
+ async #convert_prefixItems_type(schema, raw_data) {
69
+ if (raw_data.length > schema.prefixItems.length) {
70
+ throw new NoMatchError({
71
+ schema,
72
+ raw_data,
73
+ }, `Schema requires prefixItems of no more than ${schema.prefixItems.length}, ${raw_data.length} found!`);
74
+ }
75
+ const converted = [];
76
+ let index = 0;
77
+ for (const entry of schema.prefixItems) {
78
+ const converter = await Converter.find_matching_schema(await this.discovery.candidates, entry);
79
+ converted.push(await converter.convert(entry, raw_data[index]));
80
+ ++index;
81
+ }
82
+ return converted;
39
83
  }
40
84
  }
@@ -61,7 +61,7 @@ class ObjectConverterMatchesSchema extends ConverterMatchesSchema {
61
61
  return converters;
62
62
  }
63
63
  async resolve_converters_for_$ref($ref) {
64
- const definition = await this.discovery.docs.definition($ref.substring(8));
64
+ const definition = await this.discovery.docs.definition(this.discovery.version, $ref.substring(8));
65
65
  return this.resolve_converters(definition);
66
66
  }
67
67
  async resolve_schema(schema, depth = 0) {
@@ -85,7 +85,7 @@ class ObjectConverterMatchesSchema extends ConverterMatchesSchema {
85
85
  if ('$ref' in schema
86
86
  && is_string(schema.$ref)
87
87
  && schema.$ref.startsWith('#/$defs/')) {
88
- for (const entry of Object.entries(await this.resolve_schema(await this.discovery.docs.definition(schema.$ref.substring(8)), depth + 1))) {
88
+ for (const entry of Object.entries(await this.resolve_schema(await this.discovery.docs.definition(this.discovery.version, schema.$ref.substring(8)), depth + 1))) {
89
89
  const [property, sub_schema] = entry;
90
90
  if (!(property in resolved_schema)) {
91
91
  resolved_schema[property] = sub_schema;
@@ -128,10 +128,14 @@ export class ObjectConverter extends ObjectConverterMatchesSchema {
128
128
  performance.mark(`${this.constructor.name}.convert() property start`);
129
129
  if (!await converters[property].can_convert_schema_and_raw_data(sub_schema[property], value)) {
130
130
  throw new NoMatchError({
131
+ raw_data,
131
132
  property,
133
+ converter: converters[property].constructor.name,
134
+ can_convert_schema: converters[property].can_convert_schema(sub_schema[property]),
132
135
  value,
133
136
  sub_schema: sub_schema[property],
134
137
  instance: converters[property].constructor.name,
138
+ schema,
135
139
  }, 'Cannot convert value!');
136
140
  }
137
141
  performance.measure(`${this.constructor.name}.convert() property checked`, `${this.constructor.name}.convert() property start`);
@@ -30,17 +30,37 @@ export class OneOfConverter extends ConverterMatchesSchema {
30
30
  }
31
31
  async convert(schema, raw_data) {
32
32
  const candidates = await this.discovery.candidates;
33
+ const failures = [];
33
34
  for (const entry of schema.oneOf) {
34
35
  const converter = await Converter.has_matching_schema_and_raw_data(candidates, entry, raw_data);
35
36
  if (converter
36
37
  && await converter.can_convert_schema_and_raw_data(entry, raw_data)) {
37
- return await converter.convert(entry, raw_data);
38
+ try {
39
+ return await converter.convert(entry, raw_data);
40
+ }
41
+ catch (err) {
42
+ if (err instanceof NoMatchError) {
43
+ failures.push(err);
44
+ }
45
+ }
38
46
  }
39
47
  }
40
48
  throw new NoMatchError({
41
49
  schema,
42
50
  raw_data,
43
- oneOf: await Promise.all(schema.oneOf.map((e) => Converter.has_matching_schema_and_raw_data(candidates, e, raw_data))),
51
+ failures,
52
+ oneOf: await Promise.all(schema.oneOf.map(async (e) => {
53
+ // eslint-disable-next-line max-len
54
+ const converter = await Converter.has_matching_schema_and_raw_data(candidates, e, raw_data);
55
+ return [
56
+ e,
57
+ converter,
58
+ (converter
59
+ // eslint-disable-next-line max-len
60
+ ? await converter.can_convert_schema_and_raw_data(e, raw_data)
61
+ : 'no converter'),
62
+ ];
63
+ })),
44
64
  }, 'Unable to convert data!');
45
65
  }
46
66
  }
@@ -45,7 +45,7 @@ export class Ref extends ConverterMatchesSchema {
45
45
  performance.mark(`${this.constructor.name}.resolve_to_final_converter_schema_only() start`);
46
46
  if (!(schema.$ref in this.cache)) {
47
47
  while (this.can_convert_schema(checking)) {
48
- checking = await this.discovery.docs.definition(checking.$ref.substring(8));
48
+ checking = await this.discovery.docs.definition(this.discovery.version, checking.$ref.substring(8));
49
49
  }
50
50
  if (this.can_convert_schema(checking)) {
51
51
  throw new NoMatchError({
@@ -1,4 +1,4 @@
1
- import { DocsDataItem, DocsTsGenerator } from './DocsTsGenerator';
1
+ import { docs_versions, DocsDataItem, DocsTsGenerator } from './DocsTsGenerator';
2
2
  import { GeneratesMarkdown } from './MarkdownUtilities';
3
3
  import { Converter } from './DataDiscovery/Generator';
4
4
  import { FilesGenerator } from './FilesGenerator';
@@ -16,7 +16,8 @@ export declare class DataDiscovery extends FilesGenerator implements GeneratesMa
16
16
  ]>;
17
17
  readonly docs: DocsTsGenerator;
18
18
  readonly literal: Literal;
19
- constructor(docs: DocsTsGenerator, literal?: Literal);
19
+ readonly version: keyof docs_versions;
20
+ constructor(docs: DocsTsGenerator, version: keyof docs_versions, literal?: Literal);
20
21
  expecting(): Promise<progress>;
21
22
  generate(): Promise<[ts.Expression, DocsDataItem][]>;
22
23
  generate_files(): AsyncGenerator<{
@@ -20,11 +20,13 @@ export class DataDiscovery extends FilesGenerator {
20
20
  candidates;
21
21
  docs;
22
22
  literal;
23
- constructor(docs, literal) {
23
+ version;
24
+ constructor(docs, version, literal) {
24
25
  super();
25
26
  this.docs = docs;
26
27
  this.literal = literal || new Literal();
27
- this.candidates = docs.schema().then(({ $defs }) => {
28
+ this.version = version;
29
+ this.candidates = docs.schema(version).then(({ $defs }) => {
28
30
  return [
29
31
  new BooleanConverter(docs.ajv),
30
32
  new ArrayConverter(this),
@@ -43,14 +45,14 @@ export class DataDiscovery extends FilesGenerator {
43
45
  });
44
46
  }
45
47
  async expecting() {
46
- const json = await this.docs.get();
48
+ const json = await this.docs.get(this.version);
47
49
  return Object.fromEntries(json.map(e => [e.NativeClass, e.Classes.map(e => e.ClassName)]));
48
50
  }
49
51
  async generate() {
50
52
  const result = [];
51
53
  const [schema, docs,] = await Promise.all([
52
- this.docs.schema(),
53
- this.docs.get(),
54
+ this.docs.schema(this.version),
55
+ this.docs.get(this.version),
54
56
  ]);
55
57
  let index = 0;
56
58
  for (const e of docs) {