@etothepii/satisfactory-file-parser 0.4.22 → 1.0.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 (498) hide show
  1. package/README.md +76 -33
  2. package/build/index.d.ts +6 -2
  3. package/build/index.d.ts.map +1 -0
  4. package/build/index.js +6 -2
  5. package/build/index.js.map +1 -0
  6. package/build/parser/byte/alignment.enum.d.ts +1 -0
  7. package/build/parser/byte/alignment.enum.d.ts.map +1 -0
  8. package/build/parser/byte/alignment.enum.js +1 -0
  9. package/build/parser/byte/alignment.enum.js.map +1 -0
  10. package/build/parser/byte/binary-operable.interface.d.ts +1 -0
  11. package/build/parser/byte/binary-operable.interface.d.ts.map +1 -0
  12. package/build/parser/byte/binary-operable.interface.js +1 -0
  13. package/build/parser/byte/binary-operable.interface.js.map +1 -0
  14. package/build/parser/byte/binary-readable.interface.d.ts +1 -0
  15. package/build/parser/byte/binary-readable.interface.d.ts.map +1 -0
  16. package/build/parser/byte/binary-readable.interface.js +1 -0
  17. package/build/parser/byte/binary-readable.interface.js.map +1 -0
  18. package/build/parser/byte/binary-writable.interface.d.ts +1 -0
  19. package/build/parser/byte/binary-writable.interface.d.ts.map +1 -0
  20. package/build/parser/byte/binary-writable.interface.js +1 -0
  21. package/build/parser/byte/binary-writable.interface.js.map +1 -0
  22. package/build/parser/byte/byte-reader.class.d.ts +1 -0
  23. package/build/parser/byte/byte-reader.class.d.ts.map +1 -0
  24. package/build/parser/byte/byte-reader.class.js +4 -4
  25. package/build/parser/byte/byte-reader.class.js.map +1 -0
  26. package/build/parser/byte/byte-writer.class.d.ts +1 -0
  27. package/build/parser/byte/byte-writer.class.d.ts.map +1 -0
  28. package/build/parser/byte/byte-writer.class.js +1 -0
  29. package/build/parser/byte/byte-writer.class.js.map +1 -0
  30. package/build/parser/error/parser.error.d.ts +1 -0
  31. package/build/parser/error/parser.error.d.ts.map +1 -0
  32. package/build/parser/error/parser.error.js +1 -0
  33. package/build/parser/error/parser.error.js.map +1 -0
  34. package/build/parser/file.types.d.ts +1 -0
  35. package/build/parser/file.types.d.ts.map +1 -0
  36. package/build/parser/file.types.js +1 -0
  37. package/build/parser/file.types.js.map +1 -0
  38. package/build/parser/parser.d.ts +18 -3
  39. package/build/parser/parser.d.ts.map +1 -0
  40. package/build/parser/parser.js +40 -6
  41. package/build/parser/parser.js.map +1 -0
  42. package/build/parser/satisfactory/blueprint/blueprint-reader.d.ts +1 -0
  43. package/build/parser/satisfactory/blueprint/blueprint-reader.d.ts.map +1 -0
  44. package/build/parser/satisfactory/blueprint/blueprint-reader.js +2 -1
  45. package/build/parser/satisfactory/blueprint/blueprint-reader.js.map +1 -0
  46. package/build/parser/satisfactory/blueprint/blueprint-writer.d.ts +6 -1
  47. package/build/parser/satisfactory/blueprint/blueprint-writer.d.ts.map +1 -0
  48. package/build/parser/satisfactory/blueprint/blueprint-writer.js +7 -4
  49. package/build/parser/satisfactory/blueprint/blueprint-writer.js.map +1 -0
  50. package/build/parser/satisfactory/blueprint/blueprint.types.d.ts +1 -0
  51. package/build/parser/satisfactory/blueprint/blueprint.types.d.ts.map +1 -0
  52. package/build/parser/satisfactory/blueprint/blueprint.types.js +1 -0
  53. package/build/parser/satisfactory/blueprint/blueprint.types.js.map +1 -0
  54. package/build/parser/satisfactory/edit/edit-constants.d.ts +1 -0
  55. package/build/parser/satisfactory/edit/edit-constants.d.ts.map +1 -0
  56. package/build/parser/satisfactory/edit/edit-constants.js +1 -0
  57. package/build/parser/satisfactory/edit/edit-constants.js.map +1 -0
  58. package/build/parser/satisfactory/save/level.class.d.ts +13 -8
  59. package/build/parser/satisfactory/save/level.class.d.ts.map +1 -0
  60. package/build/parser/satisfactory/save/level.class.js +104 -48
  61. package/build/parser/satisfactory/save/level.class.js.map +1 -0
  62. package/build/parser/satisfactory/save/object-references-list.d.ts +8 -0
  63. package/build/parser/satisfactory/save/object-references-list.d.ts.map +1 -0
  64. package/build/parser/satisfactory/save/object-references-list.js +22 -0
  65. package/build/parser/satisfactory/save/object-references-list.js.map +1 -0
  66. package/build/parser/satisfactory/save/satisfactory-save.d.ts +4 -3
  67. package/build/parser/satisfactory/save/satisfactory-save.d.ts.map +1 -0
  68. package/build/parser/satisfactory/save/satisfactory-save.js +2 -1
  69. package/build/parser/satisfactory/save/satisfactory-save.js.map +1 -0
  70. package/build/parser/satisfactory/save/save-reader.d.ts +11 -3
  71. package/build/parser/satisfactory/save/save-reader.d.ts.map +1 -0
  72. package/build/parser/satisfactory/save/save-reader.js +59 -21
  73. package/build/parser/satisfactory/save/save-reader.js.map +1 -0
  74. package/build/parser/satisfactory/save/save-writer.d.ts +3 -2
  75. package/build/parser/satisfactory/save/save-writer.d.ts.map +1 -0
  76. package/build/parser/satisfactory/save/save-writer.js +12 -12
  77. package/build/parser/satisfactory/save/save-writer.js.map +1 -0
  78. package/build/parser/satisfactory/save/save.types.d.ts +1 -0
  79. package/build/parser/satisfactory/save/save.types.d.ts.map +1 -0
  80. package/build/parser/satisfactory/save/save.types.js +1 -0
  81. package/build/parser/satisfactory/save/save.types.js.map +1 -0
  82. package/build/parser/satisfactory/types/objects/SaveComponent.d.ts +1 -0
  83. package/build/parser/satisfactory/types/objects/SaveComponent.d.ts.map +1 -0
  84. package/build/parser/satisfactory/types/objects/SaveComponent.js +1 -0
  85. package/build/parser/satisfactory/types/objects/SaveComponent.js.map +1 -0
  86. package/build/parser/satisfactory/types/objects/SaveEntity.d.ts +1 -0
  87. package/build/parser/satisfactory/types/objects/SaveEntity.d.ts.map +1 -0
  88. package/build/parser/satisfactory/types/objects/SaveEntity.js +6 -5
  89. package/build/parser/satisfactory/types/objects/SaveEntity.js.map +1 -0
  90. package/build/parser/satisfactory/types/objects/SaveObject.d.ts +3 -2
  91. package/build/parser/satisfactory/types/objects/SaveObject.d.ts.map +1 -0
  92. package/build/parser/satisfactory/types/objects/SaveObject.js +20 -3
  93. package/build/parser/satisfactory/types/objects/SaveObject.js.map +1 -0
  94. package/build/parser/satisfactory/types/property/PropertiesList.d.ts +12 -0
  95. package/build/parser/satisfactory/types/property/PropertiesList.d.ts.map +1 -0
  96. package/build/parser/satisfactory/types/property/PropertiesList.js +250 -0
  97. package/build/parser/satisfactory/types/property/PropertiesList.js.map +1 -0
  98. package/build/parser/satisfactory/types/property/generic/ArrayProperty.d.ts +1 -0
  99. package/build/parser/satisfactory/types/property/generic/ArrayProperty.d.ts.map +1 -0
  100. package/build/parser/satisfactory/types/property/generic/ArrayProperty.js +7 -6
  101. package/build/parser/satisfactory/types/property/generic/ArrayProperty.js.map +1 -0
  102. package/build/parser/satisfactory/types/property/generic/BasicProperty.d.ts +1 -0
  103. package/build/parser/satisfactory/types/property/generic/BasicProperty.d.ts.map +1 -0
  104. package/build/parser/satisfactory/types/property/generic/BasicProperty.js +1 -0
  105. package/build/parser/satisfactory/types/property/generic/BasicProperty.js.map +1 -0
  106. package/build/parser/satisfactory/types/property/generic/BoolProperty.d.ts +1 -0
  107. package/build/parser/satisfactory/types/property/generic/BoolProperty.d.ts.map +1 -0
  108. package/build/parser/satisfactory/types/property/generic/BoolProperty.js +2 -1
  109. package/build/parser/satisfactory/types/property/generic/BoolProperty.js.map +1 -0
  110. package/build/parser/satisfactory/types/property/generic/ByteProperty.d.ts +1 -0
  111. package/build/parser/satisfactory/types/property/generic/ByteProperty.d.ts.map +1 -0
  112. package/build/parser/satisfactory/types/property/generic/ByteProperty.js +1 -0
  113. package/build/parser/satisfactory/types/property/generic/ByteProperty.js.map +1 -0
  114. package/build/parser/satisfactory/types/property/generic/DoubleProperty.d.ts +1 -0
  115. package/build/parser/satisfactory/types/property/generic/DoubleProperty.d.ts.map +1 -0
  116. package/build/parser/satisfactory/types/property/generic/DoubleProperty.js +1 -0
  117. package/build/parser/satisfactory/types/property/generic/DoubleProperty.js.map +1 -0
  118. package/build/parser/satisfactory/types/property/generic/EnumProperty.d.ts +1 -0
  119. package/build/parser/satisfactory/types/property/generic/EnumProperty.d.ts.map +1 -0
  120. package/build/parser/satisfactory/types/property/generic/EnumProperty.js +2 -1
  121. package/build/parser/satisfactory/types/property/generic/EnumProperty.js.map +1 -0
  122. package/build/parser/satisfactory/types/property/generic/FloatProperty.d.ts +1 -0
  123. package/build/parser/satisfactory/types/property/generic/FloatProperty.d.ts.map +1 -0
  124. package/build/parser/satisfactory/types/property/generic/FloatProperty.js +1 -0
  125. package/build/parser/satisfactory/types/property/generic/FloatProperty.js.map +1 -0
  126. package/build/parser/satisfactory/types/property/generic/Int32Property.d.ts +1 -0
  127. package/build/parser/satisfactory/types/property/generic/Int32Property.d.ts.map +1 -0
  128. package/build/parser/satisfactory/types/property/generic/Int32Property.js +1 -0
  129. package/build/parser/satisfactory/types/property/generic/Int32Property.js.map +1 -0
  130. package/build/parser/satisfactory/types/property/generic/Int64Property.d.ts +1 -0
  131. package/build/parser/satisfactory/types/property/generic/Int64Property.d.ts.map +1 -0
  132. package/build/parser/satisfactory/types/property/generic/Int64Property.js +1 -0
  133. package/build/parser/satisfactory/types/property/generic/Int64Property.js.map +1 -0
  134. package/build/parser/satisfactory/types/property/generic/Int8Property.d.ts +1 -0
  135. package/build/parser/satisfactory/types/property/generic/Int8Property.d.ts.map +1 -0
  136. package/build/parser/satisfactory/types/property/generic/Int8Property.js +1 -0
  137. package/build/parser/satisfactory/types/property/generic/Int8Property.js.map +1 -0
  138. package/build/parser/satisfactory/types/property/generic/MapProperty.d.ts +1 -0
  139. package/build/parser/satisfactory/types/property/generic/MapProperty.d.ts.map +1 -0
  140. package/build/parser/satisfactory/types/property/generic/MapProperty.js +12 -5
  141. package/build/parser/satisfactory/types/property/generic/MapProperty.js.map +1 -0
  142. package/build/parser/satisfactory/types/property/generic/ObjectProperty.d.ts +1 -0
  143. package/build/parser/satisfactory/types/property/generic/ObjectProperty.d.ts.map +1 -0
  144. package/build/parser/satisfactory/types/property/generic/ObjectProperty.js +4 -7
  145. package/build/parser/satisfactory/types/property/generic/ObjectProperty.js.map +1 -0
  146. package/build/parser/satisfactory/types/property/generic/SetProperty.d.ts +1 -0
  147. package/build/parser/satisfactory/types/property/generic/SetProperty.d.ts.map +1 -0
  148. package/build/parser/satisfactory/types/property/generic/SetProperty.js +3 -2
  149. package/build/parser/satisfactory/types/property/generic/SetProperty.js.map +1 -0
  150. package/build/parser/satisfactory/types/property/generic/SoftObjectProperty.d.ts +3 -0
  151. package/build/parser/satisfactory/types/property/generic/SoftObjectProperty.d.ts.map +1 -0
  152. package/build/parser/satisfactory/types/property/generic/SoftObjectProperty.js +7 -0
  153. package/build/parser/satisfactory/types/property/generic/SoftObjectProperty.js.map +1 -0
  154. package/build/parser/satisfactory/types/property/generic/StrProperty.d.ts +1 -0
  155. package/build/parser/satisfactory/types/property/generic/StrProperty.d.ts.map +1 -0
  156. package/build/parser/satisfactory/types/property/generic/StrProperty.js +1 -0
  157. package/build/parser/satisfactory/types/property/generic/StrProperty.js.map +1 -0
  158. package/build/parser/satisfactory/types/property/generic/StructProperty.d.ts +3 -11
  159. package/build/parser/satisfactory/types/property/generic/StructProperty.d.ts.map +1 -0
  160. package/build/parser/satisfactory/types/property/generic/StructProperty.js +15 -119
  161. package/build/parser/satisfactory/types/property/generic/StructProperty.js.map +1 -0
  162. package/build/parser/satisfactory/types/property/generic/TextProperty.d.ts +2 -1
  163. package/build/parser/satisfactory/types/property/generic/TextProperty.d.ts.map +1 -0
  164. package/build/parser/satisfactory/types/property/generic/TextProperty.js +6 -5
  165. package/build/parser/satisfactory/types/property/generic/TextProperty.js.map +1 -0
  166. package/build/parser/satisfactory/types/property/generic/Uint32Property.d.ts +1 -0
  167. package/build/parser/satisfactory/types/property/generic/Uint32Property.d.ts.map +1 -0
  168. package/build/parser/satisfactory/types/property/generic/Uint32Property.js +1 -0
  169. package/build/parser/satisfactory/types/property/generic/Uint32Property.js.map +1 -0
  170. package/build/parser/satisfactory/types/property/generic/Uint64Property.d.ts +1 -0
  171. package/build/parser/satisfactory/types/property/generic/Uint64Property.d.ts.map +1 -0
  172. package/build/parser/satisfactory/types/property/generic/Uint64Property.js +1 -0
  173. package/build/parser/satisfactory/types/property/generic/Uint64Property.js.map +1 -0
  174. package/build/parser/satisfactory/types/property/generic/Uint8Property.d.ts +1 -0
  175. package/build/parser/satisfactory/types/property/generic/Uint8Property.d.ts.map +1 -0
  176. package/build/parser/satisfactory/types/property/generic/Uint8Property.js +2 -1
  177. package/build/parser/satisfactory/types/property/generic/Uint8Property.js.map +1 -0
  178. package/build/parser/satisfactory/types/property/special/{SpecialAnyProperty.d.ts → SpecialAnyProperties.d.ts} +11 -10
  179. package/build/parser/satisfactory/types/property/special/SpecialAnyProperties.d.ts.map +1 -0
  180. package/build/parser/satisfactory/{objects/property/special/SpecialAnyProperty.js → types/property/special/SpecialAnyProperties.js} +1 -0
  181. package/build/parser/satisfactory/types/property/special/SpecialAnyProperties.js.map +1 -0
  182. package/build/parser/satisfactory/types/property/special/SpecialProperties.d.ts +8 -0
  183. package/build/parser/satisfactory/types/property/special/SpecialProperties.d.ts.map +1 -0
  184. package/build/parser/satisfactory/types/property/special/SpecialProperties.js +235 -0
  185. package/build/parser/satisfactory/types/property/special/SpecialProperties.js.map +1 -0
  186. package/build/parser/satisfactory/types/structs/DynamicStructPropertyValue.d.ts +12 -0
  187. package/build/parser/satisfactory/types/structs/DynamicStructPropertyValue.d.ts.map +1 -0
  188. package/build/parser/satisfactory/types/structs/DynamicStructPropertyValue.js +38 -0
  189. package/build/parser/satisfactory/types/structs/DynamicStructPropertyValue.js.map +1 -0
  190. package/build/parser/satisfactory/types/structs/GUID.d.ts +1 -0
  191. package/build/parser/satisfactory/types/structs/GUID.d.ts.map +1 -0
  192. package/build/parser/satisfactory/types/structs/GUID.js +1 -0
  193. package/build/parser/satisfactory/types/structs/GUID.js.map +1 -0
  194. package/build/parser/satisfactory/types/structs/GUIDInfo.d.ts +1 -0
  195. package/build/parser/satisfactory/types/structs/GUIDInfo.d.ts.map +1 -0
  196. package/build/parser/satisfactory/types/structs/GUIDInfo.js +1 -0
  197. package/build/parser/satisfactory/types/structs/GUIDInfo.js.map +1 -0
  198. package/build/parser/satisfactory/types/structs/MD5Hash.d.ts +1 -0
  199. package/build/parser/satisfactory/types/structs/MD5Hash.d.ts.map +1 -0
  200. package/build/parser/satisfactory/types/structs/MD5Hash.js +1 -0
  201. package/build/parser/satisfactory/types/structs/MD5Hash.js.map +1 -0
  202. package/build/parser/satisfactory/types/structs/ObjectReference.d.ts +1 -0
  203. package/build/parser/satisfactory/types/structs/ObjectReference.d.ts.map +1 -0
  204. package/build/parser/satisfactory/types/structs/ObjectReference.js +1 -0
  205. package/build/parser/satisfactory/types/structs/ObjectReference.js.map +1 -0
  206. package/build/parser/satisfactory/types/structs/SoftObjectReference.d.ts +1 -0
  207. package/build/parser/satisfactory/types/structs/SoftObjectReference.d.ts.map +1 -0
  208. package/build/parser/satisfactory/types/structs/SoftObjectReference.js +1 -0
  209. package/build/parser/satisfactory/types/structs/SoftObjectReference.js.map +1 -0
  210. package/build/parser/satisfactory/types/structs/Transform.d.ts +1 -0
  211. package/build/parser/satisfactory/types/structs/Transform.d.ts.map +1 -0
  212. package/build/parser/satisfactory/types/structs/Transform.js +1 -0
  213. package/build/parser/satisfactory/types/structs/Transform.js.map +1 -0
  214. package/build/parser/satisfactory/types/structs/col4.d.ts +1 -0
  215. package/build/parser/satisfactory/types/structs/col4.d.ts.map +1 -0
  216. package/build/parser/satisfactory/types/structs/col4.js +1 -0
  217. package/build/parser/satisfactory/types/structs/col4.js.map +1 -0
  218. package/build/parser/satisfactory/types/structs/mods/FicsItCam/FICFrameRange.d.ts +11 -0
  219. package/build/parser/satisfactory/types/structs/mods/FicsItCam/FICFrameRange.d.ts.map +1 -0
  220. package/build/parser/satisfactory/types/structs/mods/FicsItCam/FICFrameRange.js +17 -0
  221. package/build/parser/satisfactory/types/structs/mods/FicsItCam/FICFrameRange.js.map +1 -0
  222. package/build/parser/satisfactory/types/structs/vec2.d.ts +1 -0
  223. package/build/parser/satisfactory/types/structs/vec2.d.ts.map +1 -0
  224. package/build/parser/satisfactory/types/structs/vec2.js +1 -0
  225. package/build/parser/satisfactory/types/structs/vec2.js.map +1 -0
  226. package/build/parser/satisfactory/types/structs/vec3.d.ts +1 -0
  227. package/build/parser/satisfactory/types/structs/vec3.d.ts.map +1 -0
  228. package/build/parser/satisfactory/types/structs/vec3.js +1 -0
  229. package/build/parser/satisfactory/types/structs/vec3.js.map +1 -0
  230. package/build/parser/satisfactory/types/structs/vec4.d.ts +1 -0
  231. package/build/parser/satisfactory/types/structs/vec4.d.ts.map +1 -0
  232. package/build/parser/satisfactory/types/structs/vec4.js +1 -0
  233. package/build/parser/satisfactory/types/structs/vec4.js.map +1 -0
  234. package/build/parser/stream/reworked/readable-stream-parser.d.ts +6 -5
  235. package/build/parser/stream/reworked/readable-stream-parser.d.ts.map +1 -0
  236. package/build/parser/stream/reworked/readable-stream-parser.js +21 -66
  237. package/build/parser/stream/reworked/readable-stream-parser.js.map +1 -0
  238. package/build/parser/stream/reworked/save-stream-json-stringifier.d.ts +1 -0
  239. package/build/parser/stream/reworked/save-stream-json-stringifier.d.ts.map +1 -0
  240. package/build/parser/stream/reworked/save-stream-json-stringifier.js +1 -0
  241. package/build/parser/stream/reworked/save-stream-json-stringifier.js.map +1 -0
  242. package/build/parser/stream/reworked/save-stream-writer.class.d.ts +3 -2
  243. package/build/parser/stream/reworked/save-stream-writer.class.d.ts.map +1 -0
  244. package/build/parser/stream/reworked/save-stream-writer.class.js +1 -0
  245. package/build/parser/stream/reworked/save-stream-writer.class.js.map +1 -0
  246. package/docs/.nojekyll +1 -0
  247. package/docs/assets/highlight.css +92 -0
  248. package/docs/assets/icons.js +18 -0
  249. package/docs/assets/icons.svg +1 -0
  250. package/docs/assets/main.js +60 -0
  251. package/docs/assets/navigation.js +1 -0
  252. package/docs/assets/search.js +1 -0
  253. package/docs/assets/style.css +1493 -0
  254. package/docs/classes/AbstractBaseProperty.html +6 -0
  255. package/docs/classes/AbstractProperty.html +4 -0
  256. package/docs/classes/ArrayProperty.html +13 -0
  257. package/docs/classes/BasicProperty.html +7 -0
  258. package/docs/classes/BlueprintConfigReader.html +35 -0
  259. package/docs/classes/BlueprintConfigWriter.html +37 -0
  260. package/docs/classes/BlueprintReader.html +36 -0
  261. package/docs/classes/BlueprintWriter.html +40 -0
  262. package/docs/classes/BoolProperty.html +13 -0
  263. package/docs/classes/ByteProperty.html +13 -0
  264. package/docs/classes/CompressionLibraryError.html +11 -0
  265. package/docs/classes/CorruptSaveError.html +11 -0
  266. package/docs/classes/DoubleProperty.html +13 -0
  267. package/docs/classes/EnumProperty.html +13 -0
  268. package/docs/classes/FloatProperty.html +13 -0
  269. package/docs/classes/Int32Property.html +13 -0
  270. package/docs/classes/Int64Property.html +13 -0
  271. package/docs/classes/Int8Property.html +13 -0
  272. package/docs/classes/MapProperty.html +17 -0
  273. package/docs/classes/ObjectProperty.html +13 -0
  274. package/docs/classes/Parser.html +35 -0
  275. package/docs/classes/ParserError.html +11 -0
  276. package/docs/classes/ReadableStreamParser.html +8 -0
  277. package/docs/classes/SatisfactorySave.html +8 -0
  278. package/docs/classes/SaveComponent.html +17 -0
  279. package/docs/classes/SaveEntity.html +23 -0
  280. package/docs/classes/SaveReader.html +43 -0
  281. package/docs/classes/SaveStreamJsonStringifier.html +4 -0
  282. package/docs/classes/SaveStreamWriter.html +16 -0
  283. package/docs/classes/SaveWriter.html +42 -0
  284. package/docs/classes/SetProperty.html +12 -0
  285. package/docs/classes/StrProperty.html +13 -0
  286. package/docs/classes/StructProperty.html +18 -0
  287. package/docs/classes/TextProperty.html +13 -0
  288. package/docs/classes/TimeoutError.html +11 -0
  289. package/docs/classes/Uint32Property.html +13 -0
  290. package/docs/classes/Uint64Property.html +13 -0
  291. package/docs/classes/Uint8Property.html +13 -0
  292. package/docs/classes/UnimplementedError.html +11 -0
  293. package/docs/classes/UnsupportedVersionError.html +11 -0
  294. package/docs/functions/DynamicStructPropertyValue.read.html +1 -0
  295. package/docs/functions/DynamicStructPropertyValue.write.html +1 -0
  296. package/docs/functions/FICFrameRange.Parse.html +1 -0
  297. package/docs/functions/FICFrameRange.Serialize.html +1 -0
  298. package/docs/functions/GUID.read.html +1 -0
  299. package/docs/functions/GUID.write.html +1 -0
  300. package/docs/functions/GUIDInfo.read.html +1 -0
  301. package/docs/functions/GUIDInfo.write.html +1 -0
  302. package/docs/functions/Level.ReadAllObjectContents.html +1 -0
  303. package/docs/functions/Level.ReadAllObjectHeaders.html +1 -0
  304. package/docs/functions/Level.ReadLevel.html +1 -0
  305. package/docs/functions/Level.ReadNObjectContents.html +1 -0
  306. package/docs/functions/Level.ReadNObjectHeaders.html +1 -0
  307. package/docs/functions/Level.SerializeAllObjectContents.html +1 -0
  308. package/docs/functions/Level.SerializeAllObjectHeaders.html +1 -0
  309. package/docs/functions/Level.SerializeLevel.html +1 -0
  310. package/docs/functions/MD5Hash.read.html +1 -0
  311. package/docs/functions/MD5Hash.write.html +1 -0
  312. package/docs/functions/ObjectReference.read.html +1 -0
  313. package/docs/functions/ObjectReference.write.html +1 -0
  314. package/docs/functions/PropertiesList.ParseList.html +1 -0
  315. package/docs/functions/PropertiesList.ParseSingleProperty.html +1 -0
  316. package/docs/functions/PropertiesList.SerializeList.html +1 -0
  317. package/docs/functions/PropertiesList.SerializeSingleProperty.html +1 -0
  318. package/docs/functions/SoftObjectReference.read.html +1 -0
  319. package/docs/functions/SoftObjectReference.write.html +1 -0
  320. package/docs/functions/SpecialProperties.ParseClassSpecificSpecialProperties.html +1 -0
  321. package/docs/functions/SpecialProperties.SerializeClassSpecificSpecialProperties.html +1 -0
  322. package/docs/functions/Transform.Parse.html +1 -0
  323. package/docs/functions/Transform.ParseF.html +1 -0
  324. package/docs/functions/Transform.Serialize.html +1 -0
  325. package/docs/functions/Transform.SerializeF.html +1 -0
  326. package/docs/functions/col4.ParseBGRA.html +1 -0
  327. package/docs/functions/col4.ParseRGBA.html +1 -0
  328. package/docs/functions/col4.SerializeBGRA.html +1 -0
  329. package/docs/functions/col4.SerializeRGBA.html +1 -0
  330. package/docs/functions/isArrayProperty.html +1 -0
  331. package/docs/functions/isBoolProperty.html +1 -0
  332. package/docs/functions/isByteProperty.html +1 -0
  333. package/docs/functions/isDoubleProperty.html +1 -0
  334. package/docs/functions/isEnumProperty.html +1 -0
  335. package/docs/functions/isFloatProperty.html +1 -0
  336. package/docs/functions/isInt32Property.html +1 -0
  337. package/docs/functions/isInt64Property.html +1 -0
  338. package/docs/functions/isInt8Property.html +1 -0
  339. package/docs/functions/isMapProperty.html +1 -0
  340. package/docs/functions/isObjectProperty.html +1 -0
  341. package/docs/functions/isSaveComponent.html +1 -0
  342. package/docs/functions/isSaveEntity.html +1 -0
  343. package/docs/functions/isSetProperty.html +1 -0
  344. package/docs/functions/isStrProperty.html +1 -0
  345. package/docs/functions/isStructProperty.html +1 -0
  346. package/docs/functions/isTextProperty.html +1 -0
  347. package/docs/functions/isUInt64Property.html +1 -0
  348. package/docs/functions/isUint32Property.html +1 -0
  349. package/docs/functions/isUint8Property.html +1 -0
  350. package/docs/functions/vec2.Parse.html +1 -0
  351. package/docs/functions/vec2.ParseF.html +1 -0
  352. package/docs/functions/vec2.Serialize.html +1 -0
  353. package/docs/functions/vec2.SerializeF.html +1 -0
  354. package/docs/functions/vec3.Parse.html +1 -0
  355. package/docs/functions/vec3.ParseF.html +1 -0
  356. package/docs/functions/vec3.ParseInt.html +1 -0
  357. package/docs/functions/vec3.Serialize.html +1 -0
  358. package/docs/functions/vec3.SerializeF.html +1 -0
  359. package/docs/functions/vec3.SerializeInt.html +1 -0
  360. package/docs/functions/vec3.add.html +1 -0
  361. package/docs/functions/vec3.length.html +1 -0
  362. package/docs/functions/vec3.mult.html +1 -0
  363. package/docs/functions/vec3.norm.html +1 -0
  364. package/docs/functions/vec3.sub.html +1 -0
  365. package/docs/functions/vec4.Parse.html +1 -0
  366. package/docs/functions/vec4.ParseF.html +1 -0
  367. package/docs/functions/vec4.Serialize.html +1 -0
  368. package/docs/functions/vec4.SerializeF.html +1 -0
  369. package/docs/hierarchy.html +1 -0
  370. package/docs/index.html +146 -0
  371. package/docs/interfaces/Blueprint.html +6 -0
  372. package/docs/interfaces/BlueprintConfig.html +6 -0
  373. package/docs/interfaces/ModData.html +4 -0
  374. package/docs/interfaces/SatisfactoryModMetadata.html +4 -0
  375. package/docs/interfaces/SatisfactorySaveHeader.html +18 -0
  376. package/docs/interfaces/SaveComponentHeader.html +5 -0
  377. package/docs/interfaces/SaveEntityHeader.html +7 -0
  378. package/docs/modules/DynamicStructPropertyValue.html +3 -0
  379. package/docs/modules/FICFrameRange.html +3 -0
  380. package/docs/modules/GUID.html +3 -0
  381. package/docs/modules/GUIDInfo.html +3 -0
  382. package/docs/modules/Level.html +9 -0
  383. package/docs/modules/MD5Hash.html +3 -0
  384. package/docs/modules/ObjectReference.html +3 -0
  385. package/docs/modules/PropertiesList.html +5 -0
  386. package/docs/modules/SoftObjectReference.html +3 -0
  387. package/docs/modules/SpecialProperties.html +3 -0
  388. package/docs/modules/Transform.html +5 -0
  389. package/docs/modules/col4.html +5 -0
  390. package/docs/modules/vec2.html +5 -0
  391. package/docs/modules/vec3.html +12 -0
  392. package/docs/modules/vec4.html +5 -0
  393. package/docs/modules.html +123 -0
  394. package/docs/types/ArrayPropertyStructValueFields.html +1 -0
  395. package/docs/types/BasicMultipleStructPropertyValue.html +1 -0
  396. package/docs/types/BasicStructPropertyValue.html +1 -0
  397. package/docs/types/BlueprintHeader.html +1 -0
  398. package/docs/types/BoxStructPropertyValue.html +1 -0
  399. package/docs/types/BuildableSubsystemSpecialProperties.html +1 -0
  400. package/docs/types/BuildableTypeInstance.html +1 -0
  401. package/docs/types/BytePropertyValue.html +1 -0
  402. package/docs/types/ClientIdentityInfo.html +1 -0
  403. package/docs/types/ConveyorChainActorSpecialProperties.html +1 -0
  404. package/docs/types/ConveyorChainSegmentSpecialProperties.html +1 -0
  405. package/docs/types/ConveyorItemSpecialProperties.html +1 -0
  406. package/docs/types/DynamicStructPropertyValue-1.html +1 -0
  407. package/docs/types/EmptySpecialProperties.html +1 -0
  408. package/docs/types/FICFrameRange-1.html +1 -0
  409. package/docs/types/FICFrameRangeStructPropertyValue.html +1 -0
  410. package/docs/types/GENERIC_MAP_KEY_TYPE.html +1 -0
  411. package/docs/types/GENERIC_MAP_VALUE_TYPE.html +1 -0
  412. package/docs/types/GENERIC_STRUCT_PROPERTY_VALUE.html +1 -0
  413. package/docs/types/GUID-1.html +1 -0
  414. package/docs/types/GUIDInfo-1.html +1 -0
  415. package/docs/types/InventoryItemStructPropertyValue.html +1 -0
  416. package/docs/types/Level-1.html +1 -0
  417. package/docs/types/MAP_STRUCT_KEY_PROXY.html +1 -0
  418. package/docs/types/MD5Hash-1.html +1 -0
  419. package/docs/types/ObjectReference-1.html +1 -0
  420. package/docs/types/PlayerSpecialProperties.html +1 -0
  421. package/docs/types/PowerLineSpecialProperties.html +1 -0
  422. package/docs/types/PropertiesMap.html +1 -0
  423. package/docs/types/RailroadTrackPositionStructPropertyValue.html +1 -0
  424. package/docs/types/RoughSaveVersion.html +1 -0
  425. package/docs/types/SoftObjectReference-1.html +1 -0
  426. package/docs/types/SpecialAnyProperties.html +1 -0
  427. package/docs/types/TextPropertyValue.html +1 -0
  428. package/docs/types/Transform-1.html +1 -0
  429. package/docs/types/col4-1.html +1 -0
  430. package/docs/types/vec2-1.html +1 -0
  431. package/docs/types/vec3-1.html +1 -0
  432. package/docs/types/vec4-1.html +1 -0
  433. package/docs/variables/EDIT.html +1 -0
  434. package/package.json +5 -10
  435. package/build/parser/satisfactory/objects/DataFields.d.ts +0 -15
  436. package/build/parser/satisfactory/objects/DataFields.js +0 -491
  437. package/build/parser/satisfactory/objects/GUIDInfo.d.ts +0 -8
  438. package/build/parser/satisfactory/objects/GUIDInfo.js +0 -26
  439. package/build/parser/satisfactory/objects/SaveComponent.d.ts +0 -19
  440. package/build/parser/satisfactory/objects/SaveComponent.js +0 -31
  441. package/build/parser/satisfactory/objects/SaveEntity.d.ts +0 -30
  442. package/build/parser/satisfactory/objects/SaveEntity.js +0 -66
  443. package/build/parser/satisfactory/objects/SaveObject.d.ts +0 -24
  444. package/build/parser/satisfactory/objects/SaveObject.js +0 -33
  445. package/build/parser/satisfactory/objects/property/generic/ArrayProperty.d.ts +0 -21
  446. package/build/parser/satisfactory/objects/property/generic/ArrayProperty.js +0 -169
  447. package/build/parser/satisfactory/objects/property/generic/BasicProperty.d.ts +0 -25
  448. package/build/parser/satisfactory/objects/property/generic/BasicProperty.js +0 -27
  449. package/build/parser/satisfactory/objects/property/generic/BoolProperty.d.ts +0 -13
  450. package/build/parser/satisfactory/objects/property/generic/BoolProperty.js +0 -30
  451. package/build/parser/satisfactory/objects/property/generic/ByteProperty.d.ts +0 -17
  452. package/build/parser/satisfactory/objects/property/generic/ByteProperty.js +0 -50
  453. package/build/parser/satisfactory/objects/property/generic/DoubleProperty.d.ts +0 -13
  454. package/build/parser/satisfactory/objects/property/generic/DoubleProperty.js +0 -30
  455. package/build/parser/satisfactory/objects/property/generic/EnumProperty.d.ts +0 -19
  456. package/build/parser/satisfactory/objects/property/generic/EnumProperty.js +0 -33
  457. package/build/parser/satisfactory/objects/property/generic/FloatProperty.d.ts +0 -13
  458. package/build/parser/satisfactory/objects/property/generic/FloatProperty.js +0 -30
  459. package/build/parser/satisfactory/objects/property/generic/Int32Property.d.ts +0 -13
  460. package/build/parser/satisfactory/objects/property/generic/Int32Property.js +0 -30
  461. package/build/parser/satisfactory/objects/property/generic/Int64Property.d.ts +0 -13
  462. package/build/parser/satisfactory/objects/property/generic/Int64Property.js +0 -30
  463. package/build/parser/satisfactory/objects/property/generic/Int8Property.d.ts +0 -13
  464. package/build/parser/satisfactory/objects/property/generic/Int8Property.js +0 -30
  465. package/build/parser/satisfactory/objects/property/generic/MapProperty.d.ts +0 -21
  466. package/build/parser/satisfactory/objects/property/generic/MapProperty.js +0 -160
  467. package/build/parser/satisfactory/objects/property/generic/ObjectProperty.d.ts +0 -14
  468. package/build/parser/satisfactory/objects/property/generic/ObjectProperty.js +0 -35
  469. package/build/parser/satisfactory/objects/property/generic/SetProperty.d.ts +0 -11
  470. package/build/parser/satisfactory/objects/property/generic/SetProperty.js +0 -92
  471. package/build/parser/satisfactory/objects/property/generic/SoftObjectProperty.d.ts +0 -12
  472. package/build/parser/satisfactory/objects/property/generic/SoftObjectProperty.js +0 -25
  473. package/build/parser/satisfactory/objects/property/generic/StrProperty.d.ts +0 -13
  474. package/build/parser/satisfactory/objects/property/generic/StrProperty.js +0 -30
  475. package/build/parser/satisfactory/objects/property/generic/StructProperty.d.ts +0 -66
  476. package/build/parser/satisfactory/objects/property/generic/StructProperty.js +0 -361
  477. package/build/parser/satisfactory/objects/property/generic/TextProperty.d.ts +0 -29
  478. package/build/parser/satisfactory/objects/property/generic/TextProperty.js +0 -109
  479. package/build/parser/satisfactory/objects/property/generic/Uint32Property.d.ts +0 -13
  480. package/build/parser/satisfactory/objects/property/generic/Uint32Property.js +0 -30
  481. package/build/parser/satisfactory/objects/property/generic/Uint64Property.d.ts +0 -13
  482. package/build/parser/satisfactory/objects/property/generic/Uint64Property.js +0 -30
  483. package/build/parser/satisfactory/objects/property/generic/Uint8Property.d.ts +0 -13
  484. package/build/parser/satisfactory/objects/property/generic/Uint8Property.js +0 -30
  485. package/build/parser/satisfactory/objects/property/special/SpecialAnyProperty.d.ts +0 -52
  486. package/build/parser/satisfactory/objects/ue/MD5Hash.d.ts +0 -10
  487. package/build/parser/satisfactory/objects/ue/MD5Hash.js +0 -21
  488. package/build/parser/satisfactory/objects/values/GUID.d.ts +0 -7
  489. package/build/parser/satisfactory/objects/values/GUID.js +0 -21
  490. package/build/parser/satisfactory/objects/values/ObjectReference.d.ts +0 -10
  491. package/build/parser/satisfactory/objects/values/ObjectReference.js +0 -17
  492. package/build/parser/satisfactory/objects/values/SoftObjectReference.d.ts +0 -11
  493. package/build/parser/satisfactory/objects/values/SoftObjectReference.js +0 -19
  494. package/build/parser/satisfactory/structs/util.types.d.ts +0 -60
  495. package/build/parser/satisfactory/structs/util.types.js +0 -147
  496. package/build/parser/satisfactory/types/property/DataFields.d.ts +0 -15
  497. package/build/parser/satisfactory/types/property/DataFields.js +0 -493
  498. package/build/parser/satisfactory/types/property/special/SpecialAnyProperty.js +0 -2
@@ -0,0 +1 @@
1
+ {"version":3,"file":"save-writer.js","sourceRoot":"","sources":["../../../../src/parser/satisfactory/save/save-writer.ts"],"names":[],"mappings":"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","sourcesContent":["import Pako from \"pako\";\nimport { Alignment } from \"../../byte/alignment.enum\";\nimport { ByteWriter } from \"../../byte/byte-writer.class\";\nimport { CompressionLibraryError, ParserError, UnsupportedVersionError } from \"../../error/parser.error\";\nimport { ChunkCompressionInfo, ChunkSummary, CompressionAlgorithmCode } from \"../../file.types\";\nimport { MD5Hash } from '../types/structs/MD5Hash';\nimport { Level } from './level.class';\nimport { SatisfactorySave } from \"./satisfactory-save\";\nimport { Grids, SaveBodyValidation, SaveReader } from \"./save-reader\";\nimport { SatisfactorySaveHeader } from \"./save.types\";\n\n\nexport class SaveWriter extends ByteWriter {\n\n\tconstructor() {\n\t\tsuper(Alignment.LITTLE_ENDIAN);\n\t}\n\n\tpublic static WriteHeader(writer: ByteWriter, header: SatisfactorySaveHeader): void {\n\n\t\twriter.writeInt32(header.saveHeaderType);\n\t\twriter.writeInt32(header.saveVersion);\n\t\twriter.writeInt32(header.buildVersion);\n\t\twriter.writeString(header.mapName);\n\t\twriter.writeString(header.mapOptions);\n\t\twriter.writeString(header.sessionName);\n\t\twriter.writeInt32(header.playDurationSeconds);\n\t\twriter.writeInt64(BigInt(header.saveDateTime) * 10000n + SaveReader.EPOCH_TICKS);\n\t\twriter.writeByte(header.sessionVisibility);\n\n\t\tif (header.saveHeaderType >= 7) {\n\t\t\twriter.writeInt32(header.fEditorObjectVersion!);\n\t\t}\n\t\tif (header.saveHeaderType >= 8) {\n\t\t\tif (header.modMetadata) {\n\t\t\t\twriter.writeString(JSON.stringify(header.modMetadata));\n\t\t\t} else {\n\t\t\t\twriter.writeString(header.rawModMetadataString!);\n\t\t\t}\n\t\t\twriter.writeInt32(header.isModdedSave!);\n\t\t}\n\t\tif (header.saveHeaderType >= 10) {\n\t\t\twriter.writeString(header.saveIdentifier!);\n\t\t}\n\n\t\t// U8 jumped directly to 13.\n\t\tif (header.saveHeaderType >= 11) {\n\t\t\twriter.writeInt32(header.partitionEnabledFlag ? 1 : 0);\n\t\t}\n\n\t\tif (header.saveHeaderType >= 12) {\n\t\t\tMD5Hash.write(writer, header.consistencyHashBytes!);\n\t\t}\n\n\t\t// 13 is U8 Experimental First Release\n\t\tif (header.saveHeaderType >= 13) {\n\t\t\twriter.writeInt32(header.creativeModeEnabled ? 1 : 0);\n\t\t}\n\n\t\tif (header.saveVersion >= 21) {\n\t\t\t// ready to write levels now.\n\t\t} else {\n\t\t\tthrow new UnsupportedVersionError(\"The save version is too old to be supported currently.\");\n\t\t}\n\t}\n\n\tpublic static WriteSaveBodyHash = (writer: ByteWriter, saveBodyValidation: SaveBodyValidation): void => {\n\t\twriter.writeInt32(0);\n\t\twriter.writeInt32(saveBodyValidation.version);\n\t\twriter.writeString('None');\n\t\twriter.writeInt32(0);\n\t\twriter.writeBytesArray(saveBodyValidation.hash1);\n\t\twriter.writeInt32(1);\n\t\twriter.writeString('None');\n\t\twriter.writeBytesArray(saveBodyValidation.hash2);\n\t}\n\n\tpublic static WriteGrids = (writer: ByteWriter, grids: Grids): void => {\n\t\tfor (const gridEntry of Object.entries(grids)) {\n\t\t\twriter.writeString(gridEntry[0]);\n\t\t\twriter.writeInt32(gridEntry[1].cellSize);\n\t\t\twriter.writeUint32(gridEntry[1].gridHash);\n\n\t\t\twriter.writeUint32(Object.values(gridEntry[1].children).length);\n\t\t\tfor (const child of Object.entries(gridEntry[1].children)) {\n\t\t\t\twriter.writeString(child[0]);\n\t\t\t\twriter.writeUint32(child[1]);\n\t\t\t}\n\t\t}\n\t};\n\n\tpublic static WriteLevels(writer: ByteWriter, save: SatisfactorySave, buildVersion: number): void {\n\t\twriter.writeInt32(save.levels.length - 1);\n\t\tfor (const level of save.levels) {\n\t\t\tif (level.name !== save.header.mapName) {\n\t\t\t\twriter.writeString(level.name);\n\t\t\t}\n\t\t\tLevel.SerializeLevel(writer, level, buildVersion);\n\t\t}\n\t}\n\n\tpublic static GenerateCompressedChunksFromData(\n\t\tbufferArray: ArrayBuffer,\n\t\tcompressionInfo: ChunkCompressionInfo,\n\t\tonBinaryBeforeCompressing: (binary: ArrayBuffer) => void,\n\t\tonChunk: (chunk: Uint8Array) => void,\n\t\talignment: Alignment = Alignment.LITTLE_ENDIAN\n\t): ChunkSummary[] {\n\n\t\tconst totalUncompressedSize = bufferArray.byteLength;\n\n\t\tconst saveBody = new Uint8Array(bufferArray.byteLength + 8);\n\t\tsaveBody.set(new Uint8Array(bufferArray), 4);\n\t\tconst miniView = new DataView(saveBody.buffer);\n\t\tminiView.setInt32(0, totalUncompressedSize, alignment === Alignment.LITTLE_ENDIAN);\n\t\tonBinaryBeforeCompressing(saveBody.buffer);\n\n\t\t// collect slices of chunks with help of compression info for max chunk size\n\t\tlet handledByte = 0;\n\t\tconst chunkSummary: {\n\t\t\tuncompressedSize: number,\n\t\t\tcompressedSize: number\n\t\t}[] = [];\n\t\twhile (handledByte < saveBody.byteLength) {\n\n\t\t\t// create uncompressed chunk.\n\t\t\tconst uncompressedContentSize = Math.min(compressionInfo.maxUncompressedChunkContentSize, saveBody.byteLength - handledByte);\n\t\t\tconst uncompressedChunk = saveBody.buffer.slice(handledByte, handledByte + uncompressedContentSize);\n\n\t\t\t// deflate chunk while we're at it.\n\t\t\tlet compressedChunk: Uint8Array = new Uint8Array(0);\n\t\t\ttry {\n\t\t\t\tcompressedChunk = Pako.deflate(uncompressedChunk);\n\t\t\t}\n\t\t\tcatch (err) {\n\t\t\t\tthrow new CompressionLibraryError(\"Could not compress save data. \" + err);\n\t\t\t}\n\n\t\t\tconst chunk = new Uint8Array(compressionInfo.chunkHeaderSize + compressedChunk.byteLength);\n\t\t\tchunk.set(compressedChunk, compressionInfo.chunkHeaderSize);\n\n\t\t\t// write header\n\t\t\tconst view = new DataView(chunk.buffer);\n\t\t\tview.setInt32(0, compressionInfo.packageFileTag, alignment === Alignment.LITTLE_ENDIAN);\n\t\t\tview.setInt32(4, 0x22222222, alignment === Alignment.LITTLE_ENDIAN);\t\t//v1 header is 0x00000000, v2 is 0x22222222\n\t\t\tview.setInt32(8, compressionInfo.maxUncompressedChunkContentSize, alignment === Alignment.LITTLE_ENDIAN);\n\t\t\tview.setInt32(12, 0, alignment === Alignment.LITTLE_ENDIAN);\n\t\t\tview.setUint8(16, CompressionAlgorithmCode.ZLIB);\t// compression algo, came with U8, only present if header v2. Which means the header is actually 48 bytes long if header is not v2\n\t\t\tview.setInt32(17, compressedChunk.byteLength, alignment === Alignment.LITTLE_ENDIAN); // E0 3A 00 00 / 03 78 64 00\n\t\t\tview.setInt32(21, 0, alignment === Alignment.LITTLE_ENDIAN);\n\t\t\tview.setInt32(25, uncompressedContentSize, alignment === Alignment.LITTLE_ENDIAN);\n\t\t\tview.setInt32(29, 0, alignment === Alignment.LITTLE_ENDIAN);\n\t\t\tview.setInt32(33, compressedChunk.byteLength, alignment === Alignment.LITTLE_ENDIAN);\n\t\t\tview.setInt32(37, 0, alignment === Alignment.LITTLE_ENDIAN);\n\t\t\tview.setInt32(41, uncompressedContentSize, alignment === Alignment.LITTLE_ENDIAN);\n\t\t\tview.setInt32(45, 0, alignment === Alignment.LITTLE_ENDIAN);\n\n\t\t\tonChunk(chunk);\n\t\t\tchunkSummary.push({\n\t\t\t\tuncompressedSize: uncompressedContentSize + compressionInfo.chunkHeaderSize,\n\t\t\t\tcompressedSize: compressedChunk.byteLength + compressionInfo.chunkHeaderSize\n\t\t\t});\n\t\t\thandledByte += uncompressedContentSize;\n\t\t}\n\n\t\treturn chunkSummary;\n\t}\n\n\tpublic generateChunks(\n\t\tcompressionInfo: ChunkCompressionInfo,\n\t\tposAfterHeader: number,\n\n\t\tonBinaryBeforeCompressing: (binary: ArrayBuffer) => void,\n\t\tonHeader: (header: Uint8Array) => void,\n\t\tonChunk: (chunk: Uint8Array) => void\n\t): ChunkSummary[] {\n\n\t\tif (posAfterHeader <= 0) {\n\t\t\tthrow new ParserError('ParserError', 'Seems like this buffer has no header. Please write the header first before you can generate chunks.');\n\t\t}\n\n\t\t// send plain header first.\n\t\tconst header = new Uint8Array(this.bufferArray.slice(0, posAfterHeader));\n\t\tonHeader(header);\n\n\t\t// create save body\n\t\tthis.bufferArray = this.bufferArray.slice(posAfterHeader);\n\t\tconst chunkSummary = SaveWriter.GenerateCompressedChunksFromData(this.bufferArray, compressionInfo, onBinaryBeforeCompressing, onChunk, this.alignment);\n\n\t\treturn chunkSummary;\n\t}\n}\n"]}
@@ -29,3 +29,4 @@ export interface SatisfactorySaveHeader {
29
29
  creativeModeEnabled?: boolean;
30
30
  }
31
31
  export type RoughSaveVersion = '<U6' | 'U6/U7' | 'U8' | 'U1.0+';
32
+ //# sourceMappingURL=save.types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"save.types.d.ts","sourceRoot":"","sources":["../../../../src/parser/satisfactory/save/save.types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAC;AAGnD,MAAM,WAAW,OAAO;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;CACnB;AAGD,MAAM,WAAW,uBAAuB;IACpC,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,OAAO,EAAE,CAAC;CACnB;AAGD,MAAM,WAAW,sBAAsB;IACnC,cAAc,EAAE,MAAM,CAAC;IACvB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,YAAY,EAAE,MAAM,CAAC;IACrB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,WAAW,CAAC,EAAE,uBAAuB,CAAC;IACtC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,mBAAmB,CAAC,EAAE,OAAO,CAAC;CACjC;AAGD,MAAM,MAAM,gBAAgB,GAAG,KAAK,GAAG,OAAO,GAAG,IAAI,GAAG,OAAO,CAAC"}
@@ -1,2 +1,3 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=save.types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"save.types.js","sourceRoot":"","sources":["../../../../src/parser/satisfactory/save/save.types.ts"],"names":[],"mappings":"","sourcesContent":["import { MD5Hash } from '../types/structs/MD5Hash';\n\n/** @public */\nexport interface ModData {\n Reference: string;\n Name: string;\n Version: string;\n}\n\n/** @public */\nexport interface SatisfactoryModMetadata {\n Version: number;\n FullMapName: string;\n Mods: ModData[];\n}\n\n/** @public */\nexport interface SatisfactorySaveHeader {\n saveHeaderType: number;\n saveVersion: number;\n buildVersion: number;\n mapName: string;\n mapOptions: string;\n sessionName: string;\n playDurationSeconds: number;\n saveDateTime: string;\n sessionVisibility: number;\n rawModMetadataString?: string;\n modMetadata?: SatisfactoryModMetadata;\n isModdedSave?: number;\n saveIdentifier?: string;\n fEditorObjectVersion?: number;\n partitionEnabledFlag?: boolean;\n consistencyHashBytes?: MD5Hash;\n creativeModeEnabled?: boolean;\n}\n\n/** @public */\nexport type RoughSaveVersion = '<U6' | 'U6/U7' | 'U8' | 'U1.0+';"]}
@@ -17,3 +17,4 @@ export declare class SaveComponent extends SaveObject implements SaveComponentHe
17
17
  static SerializeHeader(writer: ByteWriter, component: SaveComponent): void;
18
18
  static ParseData(component: SaveComponent, length: number, reader: BinaryReadable, buildVersion: number, typePath: string): void;
19
19
  }
20
+ //# sourceMappingURL=SaveComponent.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SaveComponent.d.ts","sourceRoot":"","sources":["../../../../../src/parser/satisfactory/types/objects/SaveComponent.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,yCAAyC,CAAC;AACzE,OAAO,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAC7D,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAE5D,eAAO,MAAM,eAAe,QAAS,GAAG,KAAG,GAAG,IAAI,aAEjD,CAAA;AAED,MAAM,WAAW,mBAAoB,SAAQ,gBAAgB;IAC5D,gBAAgB,EAAE,MAAM,CAAC;CACzB;AAED,qBAAa,aAAc,SAAQ,UAAW,YAAW,mBAAmB;IAKxD,QAAQ,EAAE,MAAM;IAAS,UAAU,EAAE,MAAM;IAAS,YAAY,EAAE,MAAM;IAAS,gBAAgB;IAJpH,gBAAuB,MAAM,KAAK;IAElC,SAAgB,IAAI,mBAAmB;gBAEpB,QAAQ,EAAE,MAAM,EAAS,UAAU,EAAE,MAAM,EAAS,YAAY,EAAE,MAAM,EAAS,gBAAgB,SAAK;WAI3G,WAAW,CAAC,MAAM,EAAE,cAAc,EAAE,GAAG,EAAE,aAAa,GAAG,IAAI;WAK7D,eAAe,CAAC,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,aAAa;WAK5D,SAAS,CAAC,SAAS,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI;CAGvI"}
@@ -29,3 +29,4 @@ class SaveComponent extends SaveObject_1.SaveObject {
29
29
  }
30
30
  exports.SaveComponent = SaveComponent;
31
31
  SaveComponent.TypeID = 0;
32
+ //# sourceMappingURL=SaveComponent.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SaveComponent.js","sourceRoot":"","sources":["../../../../../src/parser/satisfactory/types/objects/SaveComponent.ts"],"names":[],"mappings":";;;AAEA,6CAA4D;AAErD,MAAM,eAAe,GAAG,CAAC,GAAQ,EAAwB,EAAE;IACjE,OAAO,GAAG,CAAC,IAAI,KAAK,eAAe,CAAC;AACrC,CAAC,CAAA;AAFY,QAAA,eAAe,mBAE3B;AAMD,MAAa,aAAc,SAAQ,uBAAU;IAK5C,YAAmB,QAAgB,EAAS,UAAkB,EAAS,YAAoB,EAAS,mBAAmB,EAAE;QACxH,KAAK,CAAC,QAAQ,EAAE,UAAU,EAAE,YAAY,CAAC,CAAC;QADxB,aAAQ,GAAR,QAAQ,CAAQ;QAAS,eAAU,GAAV,UAAU,CAAQ;QAAS,iBAAY,GAAZ,YAAY,CAAQ;QAAS,qBAAgB,GAAhB,gBAAgB,CAAK;QAFzG,SAAI,GAAG,eAAe,CAAC;IAIvC,CAAC;IAEM,MAAM,CAAC,WAAW,CAAC,MAAsB,EAAE,GAAkB;QACnE,uBAAU,CAAC,WAAW,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;QACpC,GAAG,CAAC,gBAAgB,GAAG,MAAM,CAAC,UAAU,EAAE,CAAC;IAC5C,CAAC;IAEM,MAAM,CAAC,eAAe,CAAC,MAAkB,EAAE,SAAwB;QACzE,uBAAU,CAAC,eAAe,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;QAC9C,MAAM,CAAC,WAAW,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAAC;IAChD,CAAC;IAEM,MAAM,CAAC,SAAS,CAAC,SAAwB,EAAE,MAAc,EAAE,MAAsB,EAAE,YAAoB,EAAE,QAAgB;QAC/H,uBAAU,CAAC,SAAS,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,QAAQ,CAAC,CAAC;IACzE,CAAC;;AArBF,sCAsBC;AArBuB,oBAAM,GAAG,CAAC,AAAJ,CAAK","sourcesContent":["import { BinaryReadable } from \"../../../byte/binary-readable.interface\";\nimport { ByteWriter } from \"../../../byte/byte-writer.class\";\nimport { SaveObject, SaveObjectHeader } from \"./SaveObject\";\n\nexport const isSaveComponent = (obj: any): obj is SaveComponent => {\n\treturn obj.type === 'SaveComponent';\n}\n\nexport interface SaveComponentHeader extends SaveObjectHeader {\n\tparentEntityName: string;\n}\n\nexport class SaveComponent extends SaveObject implements SaveComponentHeader {\n\tpublic static readonly TypeID = 0;\n\n\tpublic readonly type = 'SaveComponent';\n\n\tconstructor(public typePath: string, public rootObject: string, public instanceName: string, public parentEntityName = '') {\n\t\tsuper(typePath, rootObject, instanceName);\n\t}\n\n\tpublic static ParseHeader(reader: BinaryReadable, obj: SaveComponent): void {\n\t\tSaveObject.ParseHeader(reader, obj);\n\t\tobj.parentEntityName = reader.readString();\n\t}\n\n\tpublic static SerializeHeader(writer: ByteWriter, component: SaveComponent) {\n\t\tSaveObject.SerializeHeader(writer, component);\n\t\twriter.writeString(component.parentEntityName);\n\t}\n\n\tpublic static ParseData(component: SaveComponent, length: number, reader: BinaryReadable, buildVersion: number, typePath: string): void {\n\t\tSaveObject.ParseData(component, length, reader, buildVersion, typePath);\n\t}\n}"]}
@@ -28,3 +28,4 @@ export declare class SaveEntity extends SaveObject {
28
28
  static SerializeHeader(writer: ByteWriter, entity: SaveEntity): void;
29
29
  static SerializeData(writer: ByteWriter, entity: SaveEntity, buildVersion: number): void;
30
30
  }
31
+ //# sourceMappingURL=SaveEntity.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SaveEntity.d.ts","sourceRoot":"","sources":["../../../../../src/parser/satisfactory/types/objects/SaveEntity.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,yCAAyC,CAAC;AACzE,OAAO,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAC7D,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAC7D,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAE5D,eAAO,MAAM,YAAY,QAAS,GAAG,KAAG,GAAG,IAAI,UAE9C,CAAA;AAED,MAAM,WAAW,gBAAiB,SAAQ,gBAAgB;IACzD,aAAa,EAAE,OAAO,CAAC;IACvB,SAAS,EAAE,SAAS,CAAC;IACrB,gBAAgB,EAAE,OAAO,CAAC;CAC1B;AAED,qBAAa,UAAW,SAAQ,UAAU;IAYtB,QAAQ,EAAE,MAAM;IAAS,UAAU,EAAE,MAAM;IAAS,YAAY,EAAE,MAAM;IAAS,gBAAgB;IAXpH,gBAAuB,MAAM,KAAK;IAElC,SAAgB,IAAI,gBAAgB;IAE7B,aAAa,EAAE,OAAO,CAAC;IACvB,SAAS,EAAE,SAAS,CAAC;IACrB,gBAAgB,EAAE,OAAO,CAAC;IAC1B,gBAAgB,EAAE,MAAM,CAAC;IACzB,gBAAgB,EAAE,MAAM,CAAC;IACzB,UAAU,EAAE,eAAe,EAAE,CAAC;gBAElB,QAAQ,EAAE,MAAM,EAAS,UAAU,EAAE,MAAM,EAAS,YAAY,EAAE,MAAM,EAAS,gBAAgB,SAAK,EAAE,cAAc,GAAE,OAAe;WAc5I,WAAW,CAAC,MAAM,EAAE,cAAc,EAAE,GAAG,EAAE,UAAU,GAAG,IAAI;WAO1D,SAAS,CAAC,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI;WAiBnH,eAAe,CAAC,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,UAAU,GAAG,IAAI;WAQ7D,aAAa,CAAC,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,GAAG,IAAI;CAY/F"}
@@ -34,7 +34,7 @@ class SaveEntity extends SaveObject_1.SaveObject {
34
34
  obj.wasPlacedInLevel = reader.readInt32() == 1;
35
35
  }
36
36
  static ParseData(entity, length, reader, buildVersion, typePath) {
37
- const afterSizeIndicator = reader.getBufferPosition();
37
+ const start = reader.getBufferPosition();
38
38
  entity.parentObjectRoot = reader.readString();
39
39
  entity.parentObjectName = reader.readString();
40
40
  var componentCount = reader.readInt32();
@@ -42,7 +42,7 @@ class SaveEntity extends SaveObject_1.SaveObject {
42
42
  var componentRef = ObjectReference_1.ObjectReference.read(reader);
43
43
  entity.components.push(componentRef);
44
44
  }
45
- const remainingSize = length - (reader.getBufferPosition() - afterSizeIndicator);
45
+ const remainingSize = length - (reader.getBufferPosition() - start);
46
46
  return SaveObject_1.SaveObject.ParseData(entity, remainingSize, reader, buildVersion, typePath);
47
47
  }
48
48
  static SerializeHeader(writer, entity) {
@@ -55,12 +55,13 @@ class SaveEntity extends SaveObject_1.SaveObject {
55
55
  writer.writeString(entity.parentObjectRoot);
56
56
  writer.writeString(entity.parentObjectName);
57
57
  writer.writeInt32(entity.components.length);
58
- for (const com of entity.components) {
59
- writer.writeString(com.levelName);
60
- writer.writeString(com.pathName);
58
+ for (const component of entity.components) {
59
+ writer.writeString(component.levelName);
60
+ writer.writeString(component.pathName);
61
61
  }
62
62
  SaveObject_1.SaveObject.SerializeData(writer, entity, buildVersion);
63
63
  }
64
64
  }
65
65
  exports.SaveEntity = SaveEntity;
66
66
  SaveEntity.TypeID = 1;
67
+ //# sourceMappingURL=SaveEntity.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SaveEntity.js","sourceRoot":"","sources":["../../../../../src/parser/satisfactory/types/objects/SaveEntity.ts"],"names":[],"mappings":"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","sourcesContent":["\nimport { BinaryReadable } from \"../../../byte/binary-readable.interface\";\nimport { ByteWriter } from \"../../../byte/byte-writer.class\";\nimport { ObjectReference } from \"../structs/ObjectReference\";\nimport { Transform } from '../structs/Transform';\nimport { SaveObject, SaveObjectHeader } from \"./SaveObject\";\n\nexport const isSaveEntity = (obj: any): obj is SaveEntity => {\n\treturn obj.type === 'SaveEntity';\n}\n\nexport interface SaveEntityHeader extends SaveObjectHeader {\n\tneedTransform: boolean;\n\ttransform: Transform;\n\twasPlacedInLevel: boolean;\n}\n\nexport class SaveEntity extends SaveObject {\n\tpublic static readonly TypeID = 1;\n\n\tpublic readonly type = 'SaveEntity';\n\n\tpublic needTransform: boolean;\n\tpublic transform: Transform;\n\tpublic wasPlacedInLevel: boolean;\n\tpublic parentObjectRoot: string;\n\tpublic parentObjectName: string;\n\tpublic components: ObjectReference[];\n\n\tconstructor(public typePath: string, public rootObject: string, public instanceName: string, public parentEntityName = '', needsTransform: boolean = false) {\n\t\tsuper(typePath, rootObject, instanceName);\n\t\tthis.needTransform = needsTransform;\n\t\tthis.wasPlacedInLevel = false;\n\t\tthis.parentObjectRoot = '';\n\t\tthis.parentObjectName = '';\n\t\tthis.transform = {\n\t\t\trotation: { x: 0, y: 0, z: 0, w: 1 },\n\t\t\ttranslation: { x: 0, y: 0, z: 0 },\n\t\t\tscale3d: { x: 1, y: 1, z: 1 }\n\t\t}\n\t\tthis.components = [];\n\t}\n\n\tpublic static ParseHeader(reader: BinaryReadable, obj: SaveEntity): void {\n\t\tSaveObject.ParseHeader(reader, obj);\n\t\tobj.needTransform = reader.readInt32() == 1;\n\t\tobj.transform = Transform.ParseF(reader);\n\t\tobj.wasPlacedInLevel = reader.readInt32() == 1;\n\t}\n\n\tpublic static ParseData(entity: SaveEntity, length: number, reader: BinaryReadable, buildVersion: number, typePath: string): void {\n\n\t\tconst start = reader.getBufferPosition();\n\n\t\tentity.parentObjectRoot = reader.readString();\n\t\tentity.parentObjectName = reader.readString();\n\n\t\tvar componentCount = reader.readInt32();\n\t\tfor (let i = 0; i < componentCount; i++) {\n\t\t\tvar componentRef = ObjectReference.read(reader);\n\t\t\tentity.components.push(componentRef);\n\t\t}\n\n\t\tconst remainingSize = length - (reader.getBufferPosition() - start);\n\t\treturn SaveObject.ParseData(entity, remainingSize, reader, buildVersion, typePath);\n\t}\n\n\tpublic static SerializeHeader(writer: ByteWriter, entity: SaveEntity): void {\n\t\tSaveObject.SerializeHeader(writer, entity);\n\n\t\twriter.writeInt32(entity.needTransform ? 1 : 0);\n\t\tTransform.SerializeF(writer, entity.transform);\n\t\twriter.writeInt32(entity.wasPlacedInLevel ? 1 : 0);\n\t}\n\n\tpublic static SerializeData(writer: ByteWriter, entity: SaveEntity, buildVersion: number): void {\n\t\twriter.writeString(entity.parentObjectRoot);\n\t\twriter.writeString(entity.parentObjectName);\n\n\t\twriter.writeInt32(entity.components.length);\n\t\tfor (const component of entity.components) {\n\t\t\twriter.writeString(component.levelName);\n\t\t\twriter.writeString(component.pathName);\n\t\t}\n\n\t\tSaveObject.SerializeData(writer, entity, buildVersion);\n\t}\n}\n"]}
@@ -1,7 +1,7 @@
1
1
  import { BinaryReadable } from "../../../byte/binary-readable.interface";
2
2
  import { ByteWriter } from "../../../byte/byte-writer.class";
3
3
  import { PropertiesMap } from "../property/generic/BasicProperty";
4
- import { SpecialAnyProperty } from '../property/special/SpecialAnyProperty';
4
+ import { SpecialAnyProperties } from '../property/special/SpecialAnyProperties';
5
5
  export interface SaveObjectHeader {
6
6
  typePath: string;
7
7
  rootObject: string;
@@ -12,7 +12,7 @@ export declare abstract class SaveObject implements SaveObjectHeader {
12
12
  rootObject: string;
13
13
  instanceName: string;
14
14
  properties: PropertiesMap;
15
- specialProperties: SpecialAnyProperty;
15
+ specialProperties: SpecialAnyProperties;
16
16
  trailingData: number[];
17
17
  objectVersion: number;
18
18
  unknownType2: number;
@@ -22,3 +22,4 @@ export declare abstract class SaveObject implements SaveObjectHeader {
22
22
  static ParseData(obj: SaveObject, length: number, reader: BinaryReadable, buildVersion: number, typePath: string): void;
23
23
  static SerializeData(writer: any, obj: SaveObject, buildVersion: number): void;
24
24
  }
25
+ //# sourceMappingURL=SaveObject.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SaveObject.d.ts","sourceRoot":"","sources":["../../../../../src/parser/satisfactory/types/objects/SaveObject.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,yCAAyC,CAAC;AACzE,OAAO,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAG7D,OAAO,EAAE,aAAa,EAAE,MAAM,mCAAmC,CAAC;AAClE,OAAO,EAAE,oBAAoB,EAAE,MAAM,0CAA0C,CAAC;AAGhF,MAAM,WAAW,gBAAgB;IAChC,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;CACrB;AAED,8BAAsB,UAAW,YAAW,gBAAgB;IASxC,QAAQ,EAAE,MAAM;IAAS,UAAU,EAAE,MAAM;IAAS,YAAY,EAAE,MAAM;IAPpF,UAAU,EAAE,aAAa,CAAM;IAC/B,iBAAiB,EAAE,oBAAoB,CAAM;IAC7C,YAAY,EAAE,MAAM,EAAE,CAAM;IAE5B,aAAa,EAAE,MAAM,CAAK;IAC1B,YAAY,EAAE,MAAM,CAAK;gBAEb,QAAQ,EAAE,MAAM,EAAS,UAAU,EAAE,MAAM,EAAS,YAAY,EAAE,MAAM;IAI3F,SAAS,CAAC,MAAM,CAAC,WAAW,CAAC,MAAM,EAAE,cAAc,EAAE,GAAG,EAAE,UAAU,GAAG,IAAI;IAM3E,SAAS,CAAC,MAAM,CAAC,eAAe,CAAC,MAAM,EAAE,UAAU,EAAE,GAAG,EAAE,UAAU,GAAG,IAAI;WAM7D,SAAS,CAAC,GAAG,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI;WAkBhH,aAAa,CAAC,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,GAAG,IAAI;CAMrF"}
@@ -1,7 +1,9 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.SaveObject = void 0;
4
- const DataFields_1 = require("../property/DataFields");
4
+ const parser_error_1 = require("../../../error/parser.error");
5
+ const PropertiesList_1 = require("../property/PropertiesList");
6
+ const SpecialProperties_1 = require("../property/special/SpecialProperties");
5
7
  class SaveObject {
6
8
  constructor(typePath, rootObject, instanceName) {
7
9
  this.typePath = typePath;
@@ -24,10 +26,25 @@ class SaveObject {
24
26
  writer.writeString(obj.instanceName);
25
27
  }
26
28
  static ParseData(obj, length, reader, buildVersion, typePath) {
27
- DataFields_1.DataFields.ParseProperties(obj, length, reader, buildVersion, typePath);
29
+ const start = reader.getBufferPosition();
30
+ PropertiesList_1.PropertiesList.ParseList(obj, length, reader, buildVersion, typePath);
31
+ reader.readInt32();
32
+ let remainingSize = length - (reader.getBufferPosition() - start);
33
+ obj.specialProperties = SpecialProperties_1.SpecialProperties.ParseClassSpecificSpecialProperties(reader, typePath, remainingSize);
34
+ remainingSize = length - (reader.getBufferPosition() - start);
35
+ if (remainingSize > 0) {
36
+ obj.trailingData = Array.from(reader.readBytes(remainingSize));
37
+ }
38
+ else if (remainingSize < 0) {
39
+ throw new parser_error_1.ParserError('ParserError', `Unexpected. Read more bytes than are indicated for entity ${obj.instanceName}. bytes left to read is ${remainingSize}`);
40
+ }
28
41
  }
29
42
  static SerializeData(writer, obj, buildVersion) {
30
- DataFields_1.DataFields.Serialize(obj, writer, buildVersion, obj.typePath);
43
+ PropertiesList_1.PropertiesList.SerializeList(obj, writer, buildVersion, obj.typePath);
44
+ writer.writeInt32(0);
45
+ SpecialProperties_1.SpecialProperties.SerializeClassSpecificSpecialProperties(writer, obj.typePath, obj.specialProperties);
46
+ writer.writeBytesArray(obj.trailingData);
31
47
  }
32
48
  }
33
49
  exports.SaveObject = SaveObject;
50
+ //# sourceMappingURL=SaveObject.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SaveObject.js","sourceRoot":"","sources":["../../../../../src/parser/satisfactory/types/objects/SaveObject.ts"],"names":[],"mappings":";;;AAEA,8DAA0D;AAC1D,+DAA4D;AAG5D,6EAA0E;AAQ1E,MAAsB,UAAU;IAS/B,YAAmB,QAAgB,EAAS,UAAkB,EAAS,YAAoB;QAAxE,aAAQ,GAAR,QAAQ,CAAQ;QAAS,eAAU,GAAV,UAAU,CAAQ;QAAS,iBAAY,GAAZ,YAAY,CAAQ;QAPpF,eAAU,GAAkB,EAAE,CAAC;QAC/B,sBAAiB,GAAyB,EAAE,CAAC;QAC7C,iBAAY,GAAa,EAAE,CAAC;QAE5B,kBAAa,GAAW,CAAC,CAAC;QAC1B,iBAAY,GAAW,CAAC,CAAC;IAIhC,CAAC;IAES,MAAM,CAAC,WAAW,CAAC,MAAsB,EAAE,GAAe;QACnE,GAAG,CAAC,QAAQ,GAAG,MAAM,CAAC,UAAU,EAAE,CAAC;QACnC,GAAG,CAAC,UAAU,GAAG,MAAM,CAAC,UAAU,EAAE,CAAC;QACrC,GAAG,CAAC,YAAY,GAAG,MAAM,CAAC,UAAU,EAAE,CAAC;IACxC,CAAC;IAES,MAAM,CAAC,eAAe,CAAC,MAAkB,EAAE,GAAe;QACnE,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QACjC,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QACnC,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;IACtC,CAAC;IAEM,MAAM,CAAC,SAAS,CAAC,GAAe,EAAE,MAAc,EAAE,MAAsB,EAAE,YAAoB,EAAE,QAAgB;QACtH,MAAM,KAAK,GAAG,MAAM,CAAC,iBAAiB,EAAE,CAAC;QAEzC,+BAAc,CAAC,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,QAAQ,CAAC,CAAC;QAEtE,MAAM,CAAC,SAAS,EAAE,CAAC;QAEnB,IAAI,aAAa,GAAG,MAAM,GAAG,CAAC,MAAM,CAAC,iBAAiB,EAAE,GAAG,KAAK,CAAC,CAAC;QAClE,GAAG,CAAC,iBAAiB,GAAG,qCAAiB,CAAC,mCAAmC,CAAC,MAAM,EAAE,QAAQ,EAAE,aAAa,CAAC,CAAC;QAE/G,aAAa,GAAG,MAAM,GAAG,CAAC,MAAM,CAAC,iBAAiB,EAAE,GAAG,KAAK,CAAC,CAAC;QAC9D,IAAI,aAAa,GAAG,CAAC,EAAE,CAAC;YACvB,GAAG,CAAC,YAAY,GAAG,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC,CAAC;QAChE,CAAC;aAAM,IAAI,aAAa,GAAG,CAAC,EAAE,CAAC;YAC9B,MAAM,IAAI,0BAAW,CAAC,aAAa,EAAE,6DAA6D,GAAG,CAAC,YAAY,2BAA2B,aAAa,EAAE,CAAC,CAAC;QAC/J,CAAC;IACF,CAAC;IAEM,MAAM,CAAC,aAAa,CAAC,MAAW,EAAE,GAAe,EAAE,YAAoB;QAC7E,+BAAc,CAAC,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,YAAY,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAC;QACtE,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;QACrB,qCAAiB,CAAC,uCAAuC,CAAC,MAAM,EAAE,GAAG,CAAC,QAAQ,EAAE,GAAG,CAAC,iBAAiB,CAAC,CAAC;QACvG,MAAM,CAAC,eAAe,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;IAC1C,CAAC;CACD;AAjDD,gCAiDC","sourcesContent":["import { BinaryReadable } from \"../../../byte/binary-readable.interface\";\nimport { ByteWriter } from \"../../../byte/byte-writer.class\";\nimport { ParserError } from '../../../error/parser.error';\nimport { PropertiesList } from '../property/PropertiesList';\nimport { PropertiesMap } from \"../property/generic/BasicProperty\";\nimport { SpecialAnyProperties } from '../property/special/SpecialAnyProperties';\nimport { SpecialProperties } from '../property/special/SpecialProperties';\n\nexport interface SaveObjectHeader {\n\ttypePath: string;\n\trootObject: string;\n\tinstanceName: string;\n}\n\nexport abstract class SaveObject implements SaveObjectHeader {\n\n\tpublic properties: PropertiesMap = {};\n\tpublic specialProperties: SpecialAnyProperties = {};\n\tpublic trailingData: number[] = [];\n\n\tpublic objectVersion: number = 0;\n\tpublic unknownType2: number = 0;\n\n\tconstructor(public typePath: string, public rootObject: string, public instanceName: string) {\n\n\t}\n\n\tprotected static ParseHeader(reader: BinaryReadable, obj: SaveObject): void {\n\t\tobj.typePath = reader.readString();\n\t\tobj.rootObject = reader.readString();\n\t\tobj.instanceName = reader.readString();\n\t}\n\n\tprotected static SerializeHeader(writer: ByteWriter, obj: SaveObject): void {\n\t\twriter.writeString(obj.typePath);\n\t\twriter.writeString(obj.rootObject);\n\t\twriter.writeString(obj.instanceName);\n\t}\n\n\tpublic static ParseData(obj: SaveObject, length: number, reader: BinaryReadable, buildVersion: number, typePath: string): void {\n\t\tconst start = reader.getBufferPosition();\n\n\t\tPropertiesList.ParseList(obj, length, reader, buildVersion, typePath);\n\n\t\treader.readInt32(); // 0\n\n\t\tlet remainingSize = length - (reader.getBufferPosition() - start);\n\t\tobj.specialProperties = SpecialProperties.ParseClassSpecificSpecialProperties(reader, typePath, remainingSize);\n\n\t\tremainingSize = length - (reader.getBufferPosition() - start);\n\t\tif (remainingSize > 0) {\n\t\t\tobj.trailingData = Array.from(reader.readBytes(remainingSize));\n\t\t} else if (remainingSize < 0) {\n\t\t\tthrow new ParserError('ParserError', `Unexpected. Read more bytes than are indicated for entity ${obj.instanceName}. bytes left to read is ${remainingSize}`);\n\t\t}\n\t}\n\n\tpublic static SerializeData(writer: any, obj: SaveObject, buildVersion: number): void {\n\t\tPropertiesList.SerializeList(obj, writer, buildVersion, obj.typePath);\n\t\twriter.writeInt32(0);\n\t\tSpecialProperties.SerializeClassSpecificSpecialProperties(writer, obj.typePath, obj.specialProperties);\n\t\twriter.writeBytesArray(obj.trailingData);\n\t}\n}"]}
@@ -0,0 +1,12 @@
1
+ import { BinaryReadable } from '../../../byte/binary-readable.interface';
2
+ import { ByteWriter } from '../../../byte/byte-writer.class';
3
+ import { SaveWriter } from '../../save/save-writer';
4
+ import { SaveObject } from '../objects/SaveObject';
5
+ import { AbstractBaseProperty } from './generic/BasicProperty';
6
+ export declare namespace PropertiesList {
7
+ const ParseList: (obj: SaveObject, length: number, reader: BinaryReadable, buildVersion: number, typePath: string) => void;
8
+ const SerializeList: (obj: SaveObject, writer: SaveWriter, buildVersion: number, typePath: string) => void;
9
+ const ParseSingleProperty: (reader: BinaryReadable, buildVersion: number, propertyName: string) => AbstractBaseProperty;
10
+ const SerializeSingleProperty: (writer: ByteWriter, property: AbstractBaseProperty, propertyName: string, buildVersion: number) => void;
11
+ }
12
+ //# sourceMappingURL=PropertiesList.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PropertiesList.d.ts","sourceRoot":"","sources":["../../../../../src/parser/satisfactory/types/property/PropertiesList.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,yCAAyC,CAAC;AACzE,OAAO,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAE7D,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACpD,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAEnD,OAAO,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAqB/D,yBAAiB,cAAc,CAAC;IAExB,MAAM,SAAS,QAAS,UAAU,UAAU,MAAM,UAAU,cAAc,gBAAgB,MAAM,YAAY,MAAM,KAAG,IAyB3H,CAAA;IAEM,MAAM,aAAa,QAAS,UAAU,UAAU,UAAU,gBAAgB,MAAM,YAAY,MAAM,KAAG,IAM3G,CAAA;IAEM,MAAM,mBAAmB,WAAY,cAAc,gBAAgB,MAAM,gBAAgB,MAAM,KAAG,oBA4HxG,CAAA;IAEM,MAAM,uBAAuB,WAAY,UAAU,YAAY,oBAAoB,gBAAgB,MAAM,gBAAgB,MAAM,KAAG,IA4HxI,CAAA;CACD"}
@@ -0,0 +1,250 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.PropertiesList = void 0;
4
+ const parser_error_1 = require("../../../error/parser.error");
5
+ const ArrayProperty_1 = require("./generic/ArrayProperty");
6
+ const BoolProperty_1 = require("./generic/BoolProperty");
7
+ const ByteProperty_1 = require("./generic/ByteProperty");
8
+ const DoubleProperty_1 = require("./generic/DoubleProperty");
9
+ const EnumProperty_1 = require("./generic/EnumProperty");
10
+ const FloatProperty_1 = require("./generic/FloatProperty");
11
+ const Int32Property_1 = require("./generic/Int32Property");
12
+ const Int64Property_1 = require("./generic/Int64Property");
13
+ const Int8Property_1 = require("./generic/Int8Property");
14
+ const MapProperty_1 = require("./generic/MapProperty");
15
+ const ObjectProperty_1 = require("./generic/ObjectProperty");
16
+ const SetProperty_1 = require("./generic/SetProperty");
17
+ const SoftObjectProperty_1 = require("./generic/SoftObjectProperty");
18
+ const StrProperty_1 = require("./generic/StrProperty");
19
+ const StructProperty_1 = require("./generic/StructProperty");
20
+ const TextProperty_1 = require("./generic/TextProperty");
21
+ const Uint32Property_1 = require("./generic/Uint32Property");
22
+ const Uint64Property_1 = require("./generic/Uint64Property");
23
+ const Uint8Property_1 = require("./generic/Uint8Property");
24
+ var PropertiesList;
25
+ (function (PropertiesList) {
26
+ PropertiesList.ParseList = (obj, length, reader, buildVersion, typePath) => {
27
+ obj.properties = {};
28
+ if (length === 0) {
29
+ console.warn(`properties length for object ${obj.instanceName} was indicated as 0. Which is suspicious. Skipping object properties.`);
30
+ return;
31
+ }
32
+ let propertyName = reader.readString();
33
+ while (propertyName !== 'None') {
34
+ const parsedProperty = PropertiesList.ParseSingleProperty(reader, buildVersion, propertyName);
35
+ if (obj.properties[propertyName]) {
36
+ if (!Array.isArray(obj.properties[propertyName])) {
37
+ obj.properties[propertyName] = [obj.properties[propertyName]];
38
+ }
39
+ obj.properties[propertyName].push(parsedProperty);
40
+ }
41
+ else {
42
+ obj.properties[propertyName] = parsedProperty;
43
+ }
44
+ propertyName = reader.readString();
45
+ }
46
+ };
47
+ PropertiesList.SerializeList = (obj, writer, buildVersion, typePath) => {
48
+ for (const property of Object.values(obj.properties).flatMap(val => Array.isArray(val) ? val : [val])) {
49
+ writer.writeString(property.name);
50
+ PropertiesList.SerializeSingleProperty(writer, property, property.name, buildVersion);
51
+ }
52
+ writer.writeString('None');
53
+ };
54
+ PropertiesList.ParseSingleProperty = (reader, buildVersion, propertyName) => {
55
+ let currentProperty = {};
56
+ const propertyType = reader.readString();
57
+ const binarySize = reader.readInt32();
58
+ const index = reader.readInt32();
59
+ const before = reader.getBufferPosition();
60
+ let overhead = 0;
61
+ switch (propertyType) {
62
+ case 'BoolProperty':
63
+ currentProperty = BoolProperty_1.BoolProperty.Parse(reader, propertyType, index);
64
+ overhead = BoolProperty_1.BoolProperty.CalcOverhead(currentProperty);
65
+ break;
66
+ case 'ByteProperty':
67
+ currentProperty = ByteProperty_1.ByteProperty.Parse(reader, propertyType, index);
68
+ overhead = ByteProperty_1.ByteProperty.CalcOverhead(currentProperty);
69
+ break;
70
+ case 'Int8Property':
71
+ currentProperty = Int8Property_1.Int8Property.Parse(reader, propertyType, index);
72
+ overhead = Int8Property_1.Int8Property.CalcOverhead(currentProperty);
73
+ break;
74
+ case 'UInt8Property':
75
+ currentProperty = Uint8Property_1.Uint8Property.Parse(reader, propertyType, index);
76
+ overhead = Uint8Property_1.Uint8Property.CalcOverhead(currentProperty);
77
+ break;
78
+ case 'IntProperty':
79
+ case 'Int32Property':
80
+ currentProperty = Int32Property_1.Int32Property.Parse(reader, propertyType, index);
81
+ overhead = Int32Property_1.Int32Property.CalcOverhead(currentProperty);
82
+ break;
83
+ case 'UInt32Property':
84
+ currentProperty = Uint32Property_1.Uint32Property.Parse(reader, propertyType, index);
85
+ overhead = Uint32Property_1.Uint32Property.CalcOverhead(currentProperty);
86
+ break;
87
+ case 'Int64Property':
88
+ currentProperty = Int64Property_1.Int64Property.Parse(reader, propertyType, index);
89
+ overhead = Int64Property_1.Int64Property.CalcOverhead(currentProperty);
90
+ break;
91
+ case 'UInt64Property':
92
+ currentProperty = Uint64Property_1.Uint64Property.Parse(reader, propertyType, index);
93
+ break;
94
+ case 'SingleProperty':
95
+ case 'FloatProperty':
96
+ currentProperty = FloatProperty_1.FloatProperty.Parse(reader, propertyType, index);
97
+ overhead = FloatProperty_1.FloatProperty.CalcOverhead(currentProperty);
98
+ break;
99
+ case 'DoubleProperty':
100
+ currentProperty = DoubleProperty_1.DoubleProperty.Parse(reader, propertyType, index);
101
+ overhead = DoubleProperty_1.DoubleProperty.CalcOverhead(currentProperty);
102
+ break;
103
+ case 'StrProperty':
104
+ case 'NameProperty':
105
+ currentProperty = StrProperty_1.StrProperty.Parse(reader, propertyType, index);
106
+ overhead = StrProperty_1.StrProperty.CalcOverhead(currentProperty);
107
+ break;
108
+ case 'ObjectProperty':
109
+ case 'InterfaceProperty':
110
+ currentProperty = ObjectProperty_1.ObjectProperty.Parse(reader, propertyType, index);
111
+ overhead = ObjectProperty_1.ObjectProperty.CalcOverhead(currentProperty);
112
+ break;
113
+ case 'SoftObjectProperty':
114
+ currentProperty = SoftObjectProperty_1.SoftObjectProperty.Parse(reader, propertyType, index);
115
+ overhead = SoftObjectProperty_1.SoftObjectProperty.CalcOverhead(currentProperty);
116
+ break;
117
+ case 'EnumProperty':
118
+ currentProperty = EnumProperty_1.EnumProperty.Parse(reader, propertyType, index);
119
+ overhead = EnumProperty_1.EnumProperty.CalcOverhead(currentProperty);
120
+ break;
121
+ case 'StructProperty':
122
+ currentProperty = StructProperty_1.StructProperty.Parse(reader, propertyType, index, binarySize);
123
+ overhead = StructProperty_1.StructProperty.CalcOverhead(currentProperty);
124
+ break;
125
+ case 'ArrayProperty':
126
+ currentProperty = ArrayProperty_1.ArrayProperty.Parse(reader, propertyType, index, propertyName);
127
+ overhead = ArrayProperty_1.ArrayProperty.CalcOverhead(currentProperty);
128
+ break;
129
+ case 'MapProperty':
130
+ currentProperty = MapProperty_1.MapProperty.Parse(reader, propertyName, buildVersion, binarySize);
131
+ overhead = MapProperty_1.MapProperty.CalcOverhead(currentProperty);
132
+ break;
133
+ case 'TextProperty':
134
+ currentProperty = TextProperty_1.TextProperty.Parse(reader, propertyType, index);
135
+ overhead = TextProperty_1.TextProperty.CalcOverhead(currentProperty);
136
+ break;
137
+ case 'SetProperty':
138
+ currentProperty = SetProperty_1.SetProperty.Parse(reader, propertyType, index, propertyName);
139
+ overhead = SetProperty_1.SetProperty.CalcOverhead(currentProperty);
140
+ break;
141
+ default:
142
+ throw new Error(`Unimplemented type ${propertyType}`);
143
+ }
144
+ currentProperty.name = propertyName;
145
+ const readBytes = reader.getBufferPosition() - before - overhead;
146
+ if (readBytes !== binarySize) {
147
+ console.warn(`possibly corrupt. Read ${readBytes} for ${propertyType} ${propertyName}, but ${binarySize} were indicated.`);
148
+ throw new parser_error_1.ParserError('ParserError', `possibly corrupt. Read ${readBytes} bytes for ${propertyType} ${propertyName}, but ${binarySize} bytes were indicated.`);
149
+ }
150
+ return currentProperty;
151
+ };
152
+ PropertiesList.SerializeSingleProperty = (writer, property, propertyName, buildVersion) => {
153
+ writer.writeString(property.ueType);
154
+ const lenIndicator = writer.getBufferPosition();
155
+ writer.writeInt32(0);
156
+ writer.writeInt32(property.index ?? 0);
157
+ const start = writer.getBufferPosition();
158
+ let overhead = 0;
159
+ switch (property.ueType) {
160
+ case 'BoolProperty':
161
+ overhead = BoolProperty_1.BoolProperty.CalcOverhead(property);
162
+ BoolProperty_1.BoolProperty.Serialize(writer, property);
163
+ break;
164
+ case 'ByteProperty':
165
+ overhead = ByteProperty_1.ByteProperty.CalcOverhead(property);
166
+ ByteProperty_1.ByteProperty.Serialize(writer, property);
167
+ break;
168
+ case 'Int8Property':
169
+ overhead = Int8Property_1.Int8Property.CalcOverhead(property);
170
+ Int8Property_1.Int8Property.Serialize(writer, property);
171
+ break;
172
+ case 'UInt8Property':
173
+ overhead = Uint8Property_1.Uint8Property.CalcOverhead(property);
174
+ Uint8Property_1.Uint8Property.Serialize(writer, property);
175
+ break;
176
+ case 'IntProperty':
177
+ case 'Int32Property':
178
+ overhead = Int32Property_1.Int32Property.CalcOverhead(property);
179
+ Int32Property_1.Int32Property.Serialize(writer, property);
180
+ break;
181
+ case 'UInt32Property':
182
+ overhead = Uint32Property_1.Uint32Property.CalcOverhead(property);
183
+ Uint32Property_1.Uint32Property.Serialize(writer, property);
184
+ break;
185
+ case 'Int64Property':
186
+ overhead = Int64Property_1.Int64Property.CalcOverhead(property);
187
+ Int64Property_1.Int64Property.Serialize(writer, property);
188
+ break;
189
+ case 'UInt64PRoperty':
190
+ overhead = Uint64Property_1.Uint64Property.CalcOverhead(property);
191
+ Uint64Property_1.Uint64Property.Serialize(writer, property);
192
+ break;
193
+ case 'SingleProperty':
194
+ case 'FloatProperty':
195
+ overhead = FloatProperty_1.FloatProperty.CalcOverhead(property);
196
+ FloatProperty_1.FloatProperty.Serialize(writer, property);
197
+ break;
198
+ case 'DoubleProperty':
199
+ overhead = DoubleProperty_1.DoubleProperty.CalcOverhead(property);
200
+ DoubleProperty_1.DoubleProperty.Serialize(writer, property);
201
+ break;
202
+ case 'StrProperty':
203
+ case 'NameProperty':
204
+ overhead = StrProperty_1.StrProperty.CalcOverhead(property);
205
+ StrProperty_1.StrProperty.Serialize(writer, property);
206
+ break;
207
+ case 'ObjectProperty':
208
+ case 'InterfaceProperty':
209
+ overhead = ObjectProperty_1.ObjectProperty.CalcOverhead(property);
210
+ ObjectProperty_1.ObjectProperty.Serialize(writer, property);
211
+ break;
212
+ case 'SoftObjectProperty':
213
+ overhead = SoftObjectProperty_1.SoftObjectProperty.CalcOverhead(property);
214
+ SoftObjectProperty_1.SoftObjectProperty.Serialize(writer, property);
215
+ break;
216
+ case 'EnumProperty':
217
+ overhead = EnumProperty_1.EnumProperty.CalcOverhead(property);
218
+ EnumProperty_1.EnumProperty.Serialize(writer, property);
219
+ break;
220
+ case 'ByteProperty':
221
+ overhead = ByteProperty_1.ByteProperty.CalcOverhead(property);
222
+ ByteProperty_1.ByteProperty.Serialize(writer, property);
223
+ break;
224
+ case 'StructProperty':
225
+ overhead = StructProperty_1.StructProperty.CalcOverhead(property);
226
+ StructProperty_1.StructProperty.Serialize(writer, property);
227
+ break;
228
+ case 'ArrayProperty':
229
+ overhead = ArrayProperty_1.ArrayProperty.CalcOverhead(property);
230
+ ArrayProperty_1.ArrayProperty.Serialize(writer, property, propertyName);
231
+ break;
232
+ case 'MapProperty':
233
+ overhead = MapProperty_1.MapProperty.CalcOverhead(property);
234
+ MapProperty_1.MapProperty.Serialize(writer, property);
235
+ break;
236
+ case 'TextProperty':
237
+ overhead = TextProperty_1.TextProperty.CalcOverhead(property);
238
+ TextProperty_1.TextProperty.Serialize(writer, property);
239
+ break;
240
+ case 'SetProperty':
241
+ overhead = SetProperty_1.SetProperty.CalcOverhead(property);
242
+ SetProperty_1.SetProperty.Serialize(writer, property);
243
+ break;
244
+ default:
245
+ throw new Error(`Unimplemented type ${property.type}`);
246
+ }
247
+ writer.writeBinarySizeFromPosition(lenIndicator, start + overhead);
248
+ };
249
+ })(PropertiesList || (exports.PropertiesList = PropertiesList = {}));
250
+ //# sourceMappingURL=PropertiesList.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PropertiesList.js","sourceRoot":"","sources":["../../../../../src/parser/satisfactory/types/property/PropertiesList.ts"],"names":[],"mappings":"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","sourcesContent":["import { BinaryReadable } from '../../../byte/binary-readable.interface';\nimport { ByteWriter } from '../../../byte/byte-writer.class';\nimport { ParserError } from '../../../error/parser.error';\nimport { SaveWriter } from '../../save/save-writer';\nimport { SaveObject } from '../objects/SaveObject';\nimport { ArrayProperty } from './generic/ArrayProperty';\nimport { AbstractBaseProperty } from './generic/BasicProperty';\nimport { BoolProperty } from './generic/BoolProperty';\nimport { ByteProperty } from './generic/ByteProperty';\nimport { DoubleProperty } from './generic/DoubleProperty';\nimport { EnumProperty } from './generic/EnumProperty';\nimport { FloatProperty } from './generic/FloatProperty';\nimport { Int32Property } from './generic/Int32Property';\nimport { Int64Property } from './generic/Int64Property';\nimport { Int8Property } from './generic/Int8Property';\nimport { MapProperty } from './generic/MapProperty';\nimport { ObjectProperty } from './generic/ObjectProperty';\nimport { SetProperty } from './generic/SetProperty';\nimport { SoftObjectProperty } from './generic/SoftObjectProperty';\nimport { StrProperty } from './generic/StrProperty';\nimport { StructProperty } from './generic/StructProperty';\nimport { TextProperty } from './generic/TextProperty';\nimport { Uint32Property } from './generic/Uint32Property';\nimport { Uint64Property } from './generic/Uint64Property';\nimport { Uint8Property } from './generic/Uint8Property';\n\n\nexport namespace PropertiesList {\n\n\texport const ParseList = (obj: SaveObject, length: number, reader: BinaryReadable, buildVersion: number, typePath: string): void => {\n\n\t\tobj.properties = {};\n\t\tif (length === 0) {\n\t\t\tconsole.warn(`properties length for object ${obj.instanceName} was indicated as 0. Which is suspicious. Skipping object properties.`);\n\t\t\treturn;\n\t\t}\n\n\t\tlet propertyName: string = reader.readString();\n\t\twhile (propertyName !== 'None') {\n\t\t\tconst parsedProperty = PropertiesList.ParseSingleProperty(reader, buildVersion, propertyName);\n\n\t\t\t// if it already exists, make it an array.\n\t\t\tif (obj.properties[propertyName]) {\n\t\t\t\tif (!Array.isArray(obj.properties[propertyName])) {\n\t\t\t\t\tobj.properties[propertyName] = [obj.properties[propertyName] as AbstractBaseProperty];\n\t\t\t\t}\n\t\t\t\t(obj.properties[propertyName] as AbstractBaseProperty[]).push(parsedProperty);\n\t\t\t} else {\n\t\t\t\tobj.properties[propertyName] = parsedProperty;\n\t\t\t}\n\n\t\t\tpropertyName = reader.readString();\n\t\t}\n\n\t}\n\n\texport const SerializeList = (obj: SaveObject, writer: SaveWriter, buildVersion: number, typePath: string): void => {\n\t\tfor (const property of Object.values(obj.properties).flatMap(val => Array.isArray(val) ? val : [val])) {\n\t\t\twriter.writeString(property.name);\n\t\t\tPropertiesList.SerializeSingleProperty(writer, property, property.name, buildVersion);\n\t\t}\n\t\twriter.writeString('None');\n\t}\n\n\texport const ParseSingleProperty = (reader: BinaryReadable, buildVersion: number, propertyName: string): AbstractBaseProperty => {\n\t\tlet currentProperty: any = {};\n\n\t\t//TODO assign type and index after parsing.\n\t\tconst propertyType = reader.readString();\n\t\tconst binarySize = reader.readInt32();\n\n\t\tconst index = reader.readInt32();\n\t\tconst before = reader.getBufferPosition();\n\n\t\tlet overhead = 0;\n\t\tswitch (propertyType) {\n\t\t\tcase 'BoolProperty':\n\t\t\t\tcurrentProperty = BoolProperty.Parse(reader, propertyType, index);\n\t\t\t\toverhead = BoolProperty.CalcOverhead(currentProperty);\n\t\t\t\tbreak;\n\n\t\t\tcase 'ByteProperty':\n\t\t\t\tcurrentProperty = ByteProperty.Parse(reader, propertyType, index);\n\t\t\t\toverhead = ByteProperty.CalcOverhead(currentProperty);\n\t\t\t\tbreak;\n\n\t\t\tcase 'Int8Property':\n\t\t\t\tcurrentProperty = Int8Property.Parse(reader, propertyType, index);\n\t\t\t\toverhead = Int8Property.CalcOverhead(currentProperty);\n\t\t\t\tbreak;\n\n\n\t\t\tcase 'UInt8Property':\n\t\t\t\tcurrentProperty = Uint8Property.Parse(reader, propertyType, index);\n\t\t\t\toverhead = Uint8Property.CalcOverhead(currentProperty);\n\t\t\t\tbreak;\n\n\t\t\tcase 'IntProperty':\n\t\t\tcase 'Int32Property':\n\t\t\t\tcurrentProperty = Int32Property.Parse(reader, propertyType, index);\n\t\t\t\toverhead = Int32Property.CalcOverhead(currentProperty);\n\t\t\t\tbreak;\n\n\t\t\tcase 'UInt32Property':\n\t\t\t\tcurrentProperty = Uint32Property.Parse(reader, propertyType, index);\n\t\t\t\toverhead = Uint32Property.CalcOverhead(currentProperty);\n\t\t\t\tbreak;\n\n\t\t\tcase 'Int64Property':\n\t\t\t\tcurrentProperty = Int64Property.Parse(reader, propertyType, index);\n\t\t\t\toverhead = Int64Property.CalcOverhead(currentProperty);\n\t\t\t\tbreak;\n\n\t\t\tcase 'UInt64Property':\n\t\t\t\tcurrentProperty = Uint64Property.Parse(reader, propertyType, index);\n\t\t\t\tbreak;\n\n\t\t\tcase 'SingleProperty':\n\t\t\tcase 'FloatProperty':\n\t\t\t\tcurrentProperty = FloatProperty.Parse(reader, propertyType, index);\n\t\t\t\toverhead = FloatProperty.CalcOverhead(currentProperty);\n\t\t\t\tbreak;\n\n\t\t\tcase 'DoubleProperty':\n\t\t\t\tcurrentProperty = DoubleProperty.Parse(reader, propertyType, index);\n\t\t\t\toverhead = DoubleProperty.CalcOverhead(currentProperty);\n\t\t\t\tbreak;\n\n\t\t\tcase 'StrProperty':\n\t\t\tcase 'NameProperty':\n\t\t\t\tcurrentProperty = StrProperty.Parse(reader, propertyType, index);\n\t\t\t\toverhead = StrProperty.CalcOverhead(currentProperty);\n\t\t\t\tbreak;\n\n\t\t\tcase 'ObjectProperty':\n\t\t\tcase 'InterfaceProperty':\n\t\t\t\tcurrentProperty = ObjectProperty.Parse(reader, propertyType, index);\n\t\t\t\toverhead = ObjectProperty.CalcOverhead(currentProperty);\n\t\t\t\tbreak;\n\n\t\t\tcase 'SoftObjectProperty':\n\t\t\t\tcurrentProperty = SoftObjectProperty.Parse(reader, propertyType, index);\n\t\t\t\toverhead = SoftObjectProperty.CalcOverhead(currentProperty);\n\t\t\t\tbreak;\n\n\t\t\tcase 'EnumProperty':\n\t\t\t\tcurrentProperty = EnumProperty.Parse(reader, propertyType, index);\n\t\t\t\toverhead = EnumProperty.CalcOverhead(currentProperty);\n\t\t\t\tbreak;\n\n\t\t\tcase 'StructProperty':\n\t\t\t\tcurrentProperty = StructProperty.Parse(reader, propertyType, index, binarySize);\n\t\t\t\toverhead = StructProperty.CalcOverhead(currentProperty);\n\t\t\t\tbreak;\n\n\t\t\tcase 'ArrayProperty':\n\t\t\t\tcurrentProperty = ArrayProperty.Parse(reader, propertyType, index, propertyName);\n\t\t\t\toverhead = ArrayProperty.CalcOverhead(currentProperty);\n\t\t\t\tbreak;\n\n\t\t\tcase 'MapProperty':\n\t\t\t\tcurrentProperty = MapProperty.Parse(reader, propertyName, buildVersion, binarySize);\n\t\t\t\toverhead = MapProperty.CalcOverhead(currentProperty);\n\t\t\t\tbreak;\n\n\t\t\tcase 'TextProperty':\n\t\t\t\tcurrentProperty = TextProperty.Parse(reader, propertyType, index);\n\t\t\t\toverhead = TextProperty.CalcOverhead(currentProperty);\n\t\t\t\tbreak;\n\n\t\t\tcase 'SetProperty':\n\t\t\t\tcurrentProperty = SetProperty.Parse(reader, propertyType, index, propertyName);\n\t\t\t\toverhead = SetProperty.CalcOverhead(currentProperty);\n\t\t\t\tbreak;\n\n\t\t\tdefault:\n\t\t\t\tthrow new Error(`Unimplemented type ${propertyType}`);\n\t\t}\n\n\t\tcurrentProperty.name = propertyName;\n\n\t\tconst readBytes = reader.getBufferPosition() - before - overhead;\n\t\tif (readBytes !== binarySize) {\n\t\t\tconsole.warn(`possibly corrupt. Read ${readBytes} for ${propertyType} ${propertyName}, but ${binarySize} were indicated.`);\n\t\t\tthrow new ParserError('ParserError', `possibly corrupt. Read ${readBytes} bytes for ${propertyType} ${propertyName}, but ${binarySize} bytes were indicated.`);\n\t\t}\n\n\t\treturn currentProperty;\n\t}\n\n\texport const SerializeSingleProperty = (writer: ByteWriter, property: AbstractBaseProperty, propertyName: string, buildVersion: number): void => {\n\n\t\twriter.writeString(property.ueType);\n\n\t\t// binary length indicator\n\t\tconst lenIndicator = writer.getBufferPosition();\n\t\twriter.writeInt32(0);\n\n\t\t// write index if it is not 0. Since it normally is.\n\t\twriter.writeInt32(property.index ?? 0);\n\n\t\tconst start = writer.getBufferPosition();\n\t\tlet overhead = 0;\n\t\tswitch (property.ueType) {\n\t\t\tcase 'BoolProperty':\n\t\t\t\toverhead = BoolProperty.CalcOverhead(property as BoolProperty);\n\t\t\t\tBoolProperty.Serialize(writer, property as BoolProperty);\n\t\t\t\tbreak;\n\n\t\t\tcase 'ByteProperty':\n\t\t\t\toverhead = ByteProperty.CalcOverhead(property as ByteProperty);\n\t\t\t\tByteProperty.Serialize(writer, property as ByteProperty);\n\t\t\t\tbreak;\n\n\t\t\tcase 'Int8Property':\n\t\t\t\toverhead = Int8Property.CalcOverhead(property as Int8Property);\n\t\t\t\tInt8Property.Serialize(writer, property as Int8Property);\n\t\t\t\tbreak;\n\n\t\t\tcase 'UInt8Property':\n\t\t\t\toverhead = Uint8Property.CalcOverhead(property as Uint8Property);\n\t\t\t\tUint8Property.Serialize(writer, property as Uint8Property);\n\t\t\t\tbreak;\n\n\t\t\tcase 'IntProperty':\n\t\t\tcase 'Int32Property':\n\t\t\t\toverhead = Int32Property.CalcOverhead(property as Int32Property);\n\t\t\t\tInt32Property.Serialize(writer, property as Int32Property);\n\t\t\t\tbreak;\n\n\t\t\tcase 'UInt32Property':\n\t\t\t\toverhead = Uint32Property.CalcOverhead(property as Uint32Property);\n\t\t\t\tUint32Property.Serialize(writer, property as Uint32Property);\n\t\t\t\tbreak;\n\n\t\t\tcase 'Int64Property':\n\t\t\t\toverhead = Int64Property.CalcOverhead(property as Int64Property);\n\t\t\t\tInt64Property.Serialize(writer, property as Int64Property);\n\t\t\t\tbreak;\n\n\t\t\tcase 'UInt64PRoperty':\n\t\t\t\toverhead = Uint64Property.CalcOverhead(property as Int64Property);\n\t\t\t\tUint64Property.Serialize(writer, property as Int64Property);\n\t\t\t\tbreak;\n\n\t\t\tcase 'SingleProperty':\n\t\t\tcase 'FloatProperty':\n\t\t\t\toverhead = FloatProperty.CalcOverhead(property as FloatProperty);\n\t\t\t\tFloatProperty.Serialize(writer, property as FloatProperty);\n\t\t\t\tbreak;\n\n\t\t\tcase 'DoubleProperty':\n\t\t\t\toverhead = DoubleProperty.CalcOverhead(property as DoubleProperty);\n\t\t\t\tDoubleProperty.Serialize(writer, property as DoubleProperty);\n\t\t\t\tbreak;\n\n\t\t\tcase 'StrProperty':\n\t\t\tcase 'NameProperty':\n\t\t\t\toverhead = StrProperty.CalcOverhead(property as StrProperty);\n\t\t\t\tStrProperty.Serialize(writer, property as StrProperty);\n\t\t\t\tbreak;\n\n\t\t\tcase 'ObjectProperty':\n\t\t\tcase 'InterfaceProperty':\n\t\t\t\toverhead = ObjectProperty.CalcOverhead(property as ObjectProperty);\n\t\t\t\tObjectProperty.Serialize(writer, property as ObjectProperty);\n\t\t\t\tbreak;\n\n\t\t\tcase 'SoftObjectProperty':\n\t\t\t\toverhead = SoftObjectProperty.CalcOverhead(property as SoftObjectProperty);\n\t\t\t\tSoftObjectProperty.Serialize(writer, property as SoftObjectProperty);\n\t\t\t\tbreak;\n\n\t\t\tcase 'EnumProperty':\n\t\t\t\toverhead = EnumProperty.CalcOverhead(property as EnumProperty);\n\t\t\t\tEnumProperty.Serialize(writer, property as EnumProperty);\n\t\t\t\tbreak;\n\n\t\t\tcase 'ByteProperty':\n\t\t\t\toverhead = ByteProperty.CalcOverhead(property as ByteProperty);\n\t\t\t\tByteProperty.Serialize(writer, property as ByteProperty);\n\t\t\t\tbreak;\n\n\t\t\tcase 'StructProperty':\n\t\t\t\toverhead = StructProperty.CalcOverhead(property as StructProperty);\n\t\t\t\tStructProperty.Serialize(writer, property as StructProperty);\n\t\t\t\tbreak;\n\n\t\t\tcase 'ArrayProperty':\n\t\t\t\toverhead = ArrayProperty.CalcOverhead(property as ArrayProperty<any>);\n\t\t\t\tArrayProperty.Serialize(writer, property as ArrayProperty<any>, propertyName);\n\t\t\t\tbreak;\n\n\t\t\tcase 'MapProperty':\n\t\t\t\toverhead = MapProperty.CalcOverhead(property as MapProperty);\n\t\t\t\tMapProperty.Serialize(writer, property as MapProperty);\n\t\t\t\tbreak;\n\n\t\t\tcase 'TextProperty':\n\t\t\t\toverhead = TextProperty.CalcOverhead(property as TextProperty);\n\t\t\t\tTextProperty.Serialize(writer, property as TextProperty);\n\t\t\t\tbreak;\n\n\t\t\tcase 'SetProperty':\n\t\t\t\toverhead = SetProperty.CalcOverhead(property as SetProperty<any>);\n\t\t\t\tSetProperty.Serialize(writer, property as SetProperty<any>);\n\t\t\t\tbreak;\n\n\t\t\tdefault:\n\t\t\t\tthrow new Error(`Unimplemented type ${property.type}`);\n\t\t}\n\n\t\t// replace len indicator.\n\t\twriter.writeBinarySizeFromPosition(lenIndicator, start + overhead);\n\t}\n}\n\n"]}
@@ -20,3 +20,4 @@ export declare class ArrayProperty<T> extends BasicProperty {
20
20
  static CalcOverhead(property: ArrayProperty<any>): number;
21
21
  static Serialize(writer: ByteWriter, property: ArrayProperty<any>, propertyName: string): void;
22
22
  }
23
+ //# sourceMappingURL=ArrayProperty.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ArrayProperty.d.ts","sourceRoot":"","sources":["../../../../../../src/parser/satisfactory/types/property/generic/ArrayProperty.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,4CAA4C,CAAC;AAC5E,OAAO,EAAE,UAAU,EAAE,MAAM,oCAAoC,CAAC;AAIhE,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAehD,MAAM,MAAM,8BAA8B,GAAG;IACzC,aAAa,EAAE,MAAM,CAAC;IACtB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,eAAO,MAAM,eAAe,aAAc,aAAa,KAAG,QAAQ,IAAI,aAAa,CAAC,GAAG,CAAsC,CAAC;AAE9H,qBAAa,aAAa,CAAC,CAAC,CAAE,SAAQ,aAAa;IAE5B,OAAO,EAAE,MAAM;IAAS,MAAM,EAAE,CAAC,EAAE;IAA8D,iBAAiB,CAAC,EAAE,8BAA8B;gBAAnJ,OAAO,EAAE,MAAM,EAAS,MAAM,EAAE,CAAC,EAAE,EAAE,MAAM,GAAE,MAAwB,EAAE,KAAK,GAAE,MAAU,EAAS,iBAAiB,CAAC,EAAE,8BAA8B,YAAA;WAIxJ,KAAK,CAAC,MAAM,EAAE,cAAc,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,aAAa,CAAC,GAAG,CAAC;WA8GtG,YAAY,CAAC,QAAQ,EAAE,aAAa,CAAC,GAAG,CAAC,GAAG,MAAM;WAIlD,SAAS,CAAC,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,aAAa,CAAC,GAAG,CAAC,EAAE,YAAY,EAAE,MAAM,GAAG,IAAI;CA8ExG"}
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.ArrayProperty = exports.isArrayProperty = void 0;
4
- const SoftObjectReference_1 = require("../../structs/SoftObjectReference");
4
+ const parser_error_1 = require("../../../../error/parser.error");
5
5
  const BasicProperty_1 = require("./BasicProperty");
6
6
  const BoolProperty_1 = require("./BoolProperty");
7
7
  const ByteProperty_1 = require("./ByteProperty");
@@ -11,6 +11,7 @@ const FloatProperty_1 = require("./FloatProperty");
11
11
  const Int32Property_1 = require("./Int32Property");
12
12
  const Int64Property_1 = require("./Int64Property");
13
13
  const ObjectProperty_1 = require("./ObjectProperty");
14
+ const SoftObjectProperty_1 = require("./SoftObjectProperty");
14
15
  const StrProperty_1 = require("./StrProperty");
15
16
  const StructProperty_1 = require("./StructProperty");
16
17
  const TextProperty_1 = require("./TextProperty");
@@ -54,14 +55,14 @@ class ArrayProperty extends BasicProperty_1.BasicProperty {
54
55
  property = new ArrayProperty(subtype, new Array(elementCount).fill(0).map(() => EnumProperty_1.EnumProperty.ReadValue(reader)), ueType, index);
55
56
  break;
56
57
  case "TextProperty":
57
- property = new ArrayProperty(subtype, new Array(elementCount).fill(0).map(() => TextProperty_1.TextProperty.ParseValue(reader)), ueType, index);
58
+ property = new ArrayProperty(subtype, new Array(elementCount).fill(0).map(() => TextProperty_1.TextProperty.ReadValue(reader)), ueType, index);
58
59
  break;
59
60
  case "InterfaceProperty":
60
61
  case "ObjectProperty":
61
62
  property = new ArrayProperty(subtype, new Array(elementCount).fill(0).map(() => ObjectProperty_1.ObjectProperty.ReadValue(reader)), ueType, index);
62
63
  break;
63
64
  case "SoftObjectProperty":
64
- property = new ArrayProperty(subtype, new Array(elementCount).fill(0).map(() => SoftObjectReference_1.SoftObjectReference.read(reader)), ueType, index);
65
+ property = new ArrayProperty(subtype, new Array(elementCount).fill(0).map(() => SoftObjectProperty_1.SoftObjectProperty.ReadValue(reader)), ueType, index);
65
66
  break;
66
67
  case "StructProperty":
67
68
  const name = reader.readString();
@@ -100,8 +101,7 @@ class ArrayProperty extends BasicProperty_1.BasicProperty {
100
101
  property = new ArrayProperty(subtype, maArr, ueType, index, innerStructValueFields);
101
102
  break;
102
103
  default:
103
- console.log(subtype, ueType);
104
- throw new Error();
104
+ throw new parser_error_1.UnimplementedError(`Unknown subtype ${subtype} for ${ueType}. Not implemented.`);
105
105
  }
106
106
  return property;
107
107
  }
@@ -145,7 +145,7 @@ class ArrayProperty extends BasicProperty_1.BasicProperty {
145
145
  property.values.forEach(v => ObjectProperty_1.ObjectProperty.SerializeValue(writer, v));
146
146
  break;
147
147
  case "SoftObjectProperty":
148
- property.values.forEach(v => SoftObjectReference_1.SoftObjectReference.write(writer, v));
148
+ property.values.forEach(v => SoftObjectProperty_1.SoftObjectProperty.SerializeValue(writer, v));
149
149
  break;
150
150
  case "StructProperty":
151
151
  writer.writeString(propertyName);
@@ -169,3 +169,4 @@ class ArrayProperty extends BasicProperty_1.BasicProperty {
169
169
  }
170
170
  }
171
171
  exports.ArrayProperty = ArrayProperty;
172
+ //# sourceMappingURL=ArrayProperty.js.map