@etothepii/satisfactory-file-parser 0.1.26 → 0.1.28

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 (40) hide show
  1. package/build/index.js +60 -25
  2. package/build/parser/byte/alignment.enum.js +5 -2
  3. package/build/parser/byte/binary-operable.interface.js +2 -1
  4. package/build/parser/byte/binary-readable.interface.js +2 -1
  5. package/build/parser/byte/byte-reader.class.js +14 -10
  6. package/build/parser/byte/byte-writer.class.js +13 -10
  7. package/build/parser/error/parser.error.js +15 -6
  8. package/build/parser/file.types.js +5 -2
  9. package/build/parser/parser.js +26 -23
  10. package/build/parser/satisfactory/blueprint/blueprint-reader.js +36 -28
  11. package/build/parser/satisfactory/blueprint/blueprint-writer.js +25 -20
  12. package/build/parser/satisfactory/blueprint/blueprint.types.js +2 -1
  13. package/build/parser/satisfactory/objects/DataFields.js +83 -79
  14. package/build/parser/satisfactory/objects/GUIDInfo.js +8 -5
  15. package/build/parser/satisfactory/objects/ObjectReference.js +5 -2
  16. package/build/parser/satisfactory/objects/Property.js +120 -91
  17. package/build/parser/satisfactory/objects/SaveComponent.js +11 -7
  18. package/build/parser/satisfactory/objects/SaveEntity.js +17 -13
  19. package/build/parser/satisfactory/objects/SaveObject.js +8 -4
  20. package/build/parser/satisfactory/objects/ue/GUID.js +5 -2
  21. package/build/parser/satisfactory/objects/ue/MD5Hash.js +5 -2
  22. package/build/parser/satisfactory/save/asynchronous-level.class.js +16 -12
  23. package/build/parser/satisfactory/save/level.class.js +28 -24
  24. package/build/parser/satisfactory/save/satisfactory-save.js +5 -1
  25. package/build/parser/satisfactory/save/save-reader.js +34 -28
  26. package/build/parser/satisfactory/save/save-writer.js +40 -34
  27. package/build/parser/satisfactory/save/save.types.js +2 -1
  28. package/build/parser/satisfactory/structs/util.types.js +63 -37
  29. package/build/parser/stream/byte-stream-reader.class.js +21 -17
  30. package/build/parser/stream/json-stream-state-writer.js +6 -2
  31. package/build/parser/stream/json-stream-writable.js +5 -1
  32. package/build/parser/stream/json-stream-writer.js +6 -2
  33. package/build/parser/stream/reworked/readable-stream-parser.js +24 -21
  34. package/build/parser/stream/reworked/stream-parser.js +20 -17
  35. package/build/parser/stream/save-stream-json-stringifier.js +7 -3
  36. package/build/parser/stream/save-stream-reader.class.js +24 -18
  37. package/build/parser/stream/save-stream-writer.class.js +5 -1
  38. package/build/parser/stream/stream-level.class.js +15 -11
  39. package/build/parser/stream/stream-parser.js +15 -11
  40. package/package.json +1 -2
package/build/index.js CHANGED
@@ -1,25 +1,60 @@
1
- export * from './parser/satisfactory/blueprint/blueprint.types';
2
- export { DataFields } from './parser/satisfactory/objects/DataFields';
3
- export * from './parser/satisfactory/objects/GUIDInfo';
4
- export { ObjectReference } from './parser/satisfactory/objects/ObjectReference';
5
- export * from './parser/satisfactory/objects/Property';
6
- export { SaveComponent } from './parser/satisfactory/objects/SaveComponent';
7
- export { SaveEntity } from './parser/satisfactory/objects/SaveEntity';
8
- export * from './parser/satisfactory/objects/ue/GUID';
9
- export * from './parser/satisfactory/objects/ue/MD5Hash';
10
- export { Level } from './parser/satisfactory/save/level.class';
11
- export { SatisfactorySave } from './parser/satisfactory/save/satisfactory-save';
12
- export * from './parser/satisfactory/save/save.types';
13
- export { ByteReader } from './parser/byte/byte-reader.class';
14
- export { ByteWriter } from './parser/byte/byte-writer.class';
15
- export { BlueprintConfigReader, BlueprintReader } from './parser/satisfactory/blueprint/blueprint-reader';
16
- export { BlueprintConfigWriter, BlueprintWriter } from './parser/satisfactory/blueprint/blueprint-writer';
17
- export { SaveReader } from './parser/satisfactory/save/save-reader';
18
- export { SaveWriter } from './parser/satisfactory/save/save-writer';
19
- export * from './parser/satisfactory/structs/util.types';
20
- export { SaveStreamJsonStringifier } from './parser/stream/save-stream-json-stringifier';
21
- export { SaveStreamWriter } from './parser/stream/save-stream-writer.class';
22
- export * from './parser/error/parser.error';
23
- export * from './parser/file.types';
24
- export { Parser } from './parser/parser';
25
- export { ReadableStreamParser } from './parser/stream/reworked/readable-stream-parser';
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ exports.ReadableStreamParser = exports.Parser = exports.SaveStreamWriter = exports.SaveStreamJsonStringifier = exports.SaveWriter = exports.SaveReader = exports.BlueprintWriter = exports.BlueprintConfigWriter = exports.BlueprintReader = exports.BlueprintConfigReader = exports.ByteWriter = exports.ByteReader = exports.SatisfactorySave = exports.Level = exports.SaveEntity = exports.SaveComponent = exports.ObjectReference = exports.DataFields = void 0;
18
+ __exportStar(require("./parser/satisfactory/blueprint/blueprint.types"), exports);
19
+ var DataFields_1 = require("./parser/satisfactory/objects/DataFields");
20
+ Object.defineProperty(exports, "DataFields", { enumerable: true, get: function () { return DataFields_1.DataFields; } });
21
+ __exportStar(require("./parser/satisfactory/objects/GUIDInfo"), exports);
22
+ var ObjectReference_1 = require("./parser/satisfactory/objects/ObjectReference");
23
+ Object.defineProperty(exports, "ObjectReference", { enumerable: true, get: function () { return ObjectReference_1.ObjectReference; } });
24
+ __exportStar(require("./parser/satisfactory/objects/Property"), exports);
25
+ var SaveComponent_1 = require("./parser/satisfactory/objects/SaveComponent");
26
+ Object.defineProperty(exports, "SaveComponent", { enumerable: true, get: function () { return SaveComponent_1.SaveComponent; } });
27
+ var SaveEntity_1 = require("./parser/satisfactory/objects/SaveEntity");
28
+ Object.defineProperty(exports, "SaveEntity", { enumerable: true, get: function () { return SaveEntity_1.SaveEntity; } });
29
+ __exportStar(require("./parser/satisfactory/objects/ue/GUID"), exports);
30
+ __exportStar(require("./parser/satisfactory/objects/ue/MD5Hash"), exports);
31
+ var level_class_1 = require("./parser/satisfactory/save/level.class");
32
+ Object.defineProperty(exports, "Level", { enumerable: true, get: function () { return level_class_1.Level; } });
33
+ var satisfactory_save_1 = require("./parser/satisfactory/save/satisfactory-save");
34
+ Object.defineProperty(exports, "SatisfactorySave", { enumerable: true, get: function () { return satisfactory_save_1.SatisfactorySave; } });
35
+ __exportStar(require("./parser/satisfactory/save/save.types"), exports);
36
+ var byte_reader_class_1 = require("./parser/byte/byte-reader.class");
37
+ Object.defineProperty(exports, "ByteReader", { enumerable: true, get: function () { return byte_reader_class_1.ByteReader; } });
38
+ var byte_writer_class_1 = require("./parser/byte/byte-writer.class");
39
+ Object.defineProperty(exports, "ByteWriter", { enumerable: true, get: function () { return byte_writer_class_1.ByteWriter; } });
40
+ var blueprint_reader_1 = require("./parser/satisfactory/blueprint/blueprint-reader");
41
+ Object.defineProperty(exports, "BlueprintConfigReader", { enumerable: true, get: function () { return blueprint_reader_1.BlueprintConfigReader; } });
42
+ Object.defineProperty(exports, "BlueprintReader", { enumerable: true, get: function () { return blueprint_reader_1.BlueprintReader; } });
43
+ var blueprint_writer_1 = require("./parser/satisfactory/blueprint/blueprint-writer");
44
+ Object.defineProperty(exports, "BlueprintConfigWriter", { enumerable: true, get: function () { return blueprint_writer_1.BlueprintConfigWriter; } });
45
+ Object.defineProperty(exports, "BlueprintWriter", { enumerable: true, get: function () { return blueprint_writer_1.BlueprintWriter; } });
46
+ var save_reader_1 = require("./parser/satisfactory/save/save-reader");
47
+ Object.defineProperty(exports, "SaveReader", { enumerable: true, get: function () { return save_reader_1.SaveReader; } });
48
+ var save_writer_1 = require("./parser/satisfactory/save/save-writer");
49
+ Object.defineProperty(exports, "SaveWriter", { enumerable: true, get: function () { return save_writer_1.SaveWriter; } });
50
+ __exportStar(require("./parser/satisfactory/structs/util.types"), exports);
51
+ var save_stream_json_stringifier_1 = require("./parser/stream/save-stream-json-stringifier");
52
+ Object.defineProperty(exports, "SaveStreamJsonStringifier", { enumerable: true, get: function () { return save_stream_json_stringifier_1.SaveStreamJsonStringifier; } });
53
+ var save_stream_writer_class_1 = require("./parser/stream/save-stream-writer.class");
54
+ Object.defineProperty(exports, "SaveStreamWriter", { enumerable: true, get: function () { return save_stream_writer_class_1.SaveStreamWriter; } });
55
+ __exportStar(require("./parser/error/parser.error"), exports);
56
+ __exportStar(require("./parser/file.types"), exports);
57
+ var parser_1 = require("./parser/parser");
58
+ Object.defineProperty(exports, "Parser", { enumerable: true, get: function () { return parser_1.Parser; } });
59
+ var readable_stream_parser_1 = require("./parser/stream/reworked/readable-stream-parser");
60
+ Object.defineProperty(exports, "ReadableStreamParser", { enumerable: true, get: function () { return readable_stream_parser_1.ReadableStreamParser; } });
@@ -1,5 +1,8 @@
1
- export var Alignment;
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Alignment = void 0;
4
+ var Alignment;
2
5
  (function (Alignment) {
3
6
  Alignment[Alignment["BIG_ENDIAN"] = 0] = "BIG_ENDIAN";
4
7
  Alignment[Alignment["LITTLE_ENDIAN"] = 1] = "LITTLE_ENDIAN";
5
- })(Alignment || (Alignment = {}));
8
+ })(Alignment = exports.Alignment || (exports.Alignment = {}));
@@ -1 +1,2 @@
1
- export {};
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -1 +1,2 @@
1
- export {};
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -1,5 +1,8 @@
1
- import { Alignment } from "./alignment.enum";
2
- export class ByteReader {
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ByteReader = void 0;
4
+ const alignment_enum_1 = require("./alignment.enum");
5
+ class ByteReader {
3
6
  constructor(fileBuffer, alignment) {
4
7
  this.debug = false;
5
8
  this.currentByte = 0;
@@ -46,27 +49,27 @@ export class ByteReader {
46
49
  return data;
47
50
  }
48
51
  readInt16() {
49
- let data = this.bufferView.getInt16(this.currentByte, this.alignment === Alignment.LITTLE_ENDIAN);
52
+ let data = this.bufferView.getInt16(this.currentByte, this.alignment === alignment_enum_1.Alignment.LITTLE_ENDIAN);
50
53
  this.currentByte += 2;
51
54
  return data;
52
55
  }
53
56
  readUint16() {
54
- let data = this.bufferView.getUint16(this.currentByte, this.alignment === Alignment.LITTLE_ENDIAN);
57
+ let data = this.bufferView.getUint16(this.currentByte, this.alignment === alignment_enum_1.Alignment.LITTLE_ENDIAN);
55
58
  this.currentByte += 2;
56
59
  return data;
57
60
  }
58
61
  readInt32() {
59
- let data = this.bufferView.getInt32(this.currentByte, this.alignment === Alignment.LITTLE_ENDIAN);
62
+ let data = this.bufferView.getInt32(this.currentByte, this.alignment === alignment_enum_1.Alignment.LITTLE_ENDIAN);
60
63
  this.currentByte += 4;
61
64
  return data;
62
65
  }
63
66
  readUint32() {
64
- let data = this.bufferView.getUint32(this.currentByte, this.alignment === Alignment.LITTLE_ENDIAN);
67
+ let data = this.bufferView.getUint32(this.currentByte, this.alignment === alignment_enum_1.Alignment.LITTLE_ENDIAN);
65
68
  this.currentByte += 4;
66
69
  return data;
67
70
  }
68
71
  readLong() {
69
- let data = this.bufferView.getBigInt64(this.currentByte, this.alignment === Alignment.LITTLE_ENDIAN);
72
+ let data = this.bufferView.getBigInt64(this.currentByte, this.alignment === alignment_enum_1.Alignment.LITTLE_ENDIAN);
70
73
  this.currentByte += 8;
71
74
  return data;
72
75
  }
@@ -74,17 +77,17 @@ export class ByteReader {
74
77
  return this.readLong();
75
78
  }
76
79
  readUint64() {
77
- let data = this.bufferView.getBigUint64(this.currentByte, this.alignment === Alignment.LITTLE_ENDIAN);
80
+ let data = this.bufferView.getBigUint64(this.currentByte, this.alignment === alignment_enum_1.Alignment.LITTLE_ENDIAN);
78
81
  this.currentByte += 8;
79
82
  return data;
80
83
  }
81
84
  readFloat32() {
82
- let data = this.bufferView.getFloat32(this.currentByte, this.alignment === Alignment.LITTLE_ENDIAN);
85
+ let data = this.bufferView.getFloat32(this.currentByte, this.alignment === alignment_enum_1.Alignment.LITTLE_ENDIAN);
83
86
  this.currentByte += 4;
84
87
  return data;
85
88
  }
86
89
  readDouble() {
87
- let data = this.bufferView.getFloat64(this.currentByte, this.alignment === Alignment.LITTLE_ENDIAN);
90
+ let data = this.bufferView.getFloat64(this.currentByte, this.alignment === alignment_enum_1.Alignment.LITTLE_ENDIAN);
88
91
  this.currentByte += 8;
89
92
  return data;
90
93
  }
@@ -121,3 +124,4 @@ export class ByteReader {
121
124
  return Promise.resolve();
122
125
  }
123
126
  }
127
+ exports.ByteReader = ByteReader;
@@ -1,4 +1,7 @@
1
- import { Alignment } from "./alignment.enum";
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ByteWriter = void 0;
4
+ const alignment_enum_1 = require("./alignment.enum");
2
5
  class ByteWriter {
3
6
  constructor(alignment, bufferSize = 500) {
4
7
  this.getBufferPosition = () => this.currentByte;
@@ -38,42 +41,42 @@ class ByteWriter {
38
41
  }
39
42
  writeInt16(value) {
40
43
  this.extendBufferIfNeeded(2);
41
- this.bufferView.setInt16(this.currentByte, value, this.alignment === Alignment.LITTLE_ENDIAN);
44
+ this.bufferView.setInt16(this.currentByte, value, this.alignment === alignment_enum_1.Alignment.LITTLE_ENDIAN);
42
45
  this.currentByte += 2;
43
46
  }
44
47
  writeUint16(value) {
45
48
  this.extendBufferIfNeeded(2);
46
- this.bufferView.setUint16(this.currentByte, value, this.alignment === Alignment.LITTLE_ENDIAN);
49
+ this.bufferView.setUint16(this.currentByte, value, this.alignment === alignment_enum_1.Alignment.LITTLE_ENDIAN);
47
50
  this.currentByte += 2;
48
51
  }
49
52
  writeInt32(value) {
50
53
  this.extendBufferIfNeeded(4);
51
- this.bufferView.setInt32(this.currentByte, value, this.alignment === Alignment.LITTLE_ENDIAN);
54
+ this.bufferView.setInt32(this.currentByte, value, this.alignment === alignment_enum_1.Alignment.LITTLE_ENDIAN);
52
55
  this.currentByte += 4;
53
56
  }
54
57
  writeUint32(value) {
55
58
  this.extendBufferIfNeeded(4);
56
- this.bufferView.setUint32(this.currentByte, value, this.alignment === Alignment.LITTLE_ENDIAN);
59
+ this.bufferView.setUint32(this.currentByte, value, this.alignment === alignment_enum_1.Alignment.LITTLE_ENDIAN);
57
60
  this.currentByte += 4;
58
61
  }
59
62
  writeInt64(value) {
60
63
  this.extendBufferIfNeeded(8);
61
- this.bufferView.setBigInt64(this.currentByte, value, this.alignment === Alignment.LITTLE_ENDIAN);
64
+ this.bufferView.setBigInt64(this.currentByte, value, this.alignment === alignment_enum_1.Alignment.LITTLE_ENDIAN);
62
65
  this.currentByte += 8;
63
66
  }
64
67
  writeUint64(value) {
65
68
  this.extendBufferIfNeeded(8);
66
- this.bufferView.setBigUint64(this.currentByte, value, this.alignment === Alignment.LITTLE_ENDIAN);
69
+ this.bufferView.setBigUint64(this.currentByte, value, this.alignment === alignment_enum_1.Alignment.LITTLE_ENDIAN);
67
70
  this.currentByte += 8;
68
71
  }
69
72
  writeFloat(value) {
70
73
  this.extendBufferIfNeeded(4);
71
- this.bufferView.setFloat32(this.currentByte, value, this.alignment === Alignment.LITTLE_ENDIAN);
74
+ this.bufferView.setFloat32(this.currentByte, value, this.alignment === alignment_enum_1.Alignment.LITTLE_ENDIAN);
72
75
  this.currentByte += 4;
73
76
  }
74
77
  writeDouble(value) {
75
78
  this.extendBufferIfNeeded(8);
76
- this.bufferView.setFloat64(this.currentByte, value, this.alignment === Alignment.LITTLE_ENDIAN);
79
+ this.bufferView.setFloat64(this.currentByte, value, this.alignment === alignment_enum_1.Alignment.LITTLE_ENDIAN);
77
80
  this.currentByte += 8;
78
81
  }
79
82
  writeString(value) {
@@ -133,4 +136,4 @@ class ByteWriter {
133
136
  ;
134
137
  }
135
138
  ByteWriter.IsASCIICompatible = (value) => /^[\x00-\x7F]*$/.test(value);
136
- export { ByteWriter };
139
+ exports.ByteWriter = ByteWriter;
@@ -1,31 +1,40 @@
1
- export class ParserError extends Error {
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.UnimplementedError = exports.TimeoutError = exports.CompressionLibraryError = exports.CorruptSaveError = exports.UnsupportedVersionError = exports.ParserError = void 0;
4
+ class ParserError extends Error {
2
5
  constructor(name, message) {
3
6
  super(message);
4
7
  this.name = name;
5
8
  }
6
9
  }
7
- export class UnsupportedVersionError extends ParserError {
10
+ exports.ParserError = ParserError;
11
+ class UnsupportedVersionError extends ParserError {
8
12
  constructor(message) {
9
13
  super('UnsupportedVersionError', message ?? 'This save version is not supported.');
10
14
  }
11
15
  }
12
- export class CorruptSaveError extends ParserError {
16
+ exports.UnsupportedVersionError = UnsupportedVersionError;
17
+ class CorruptSaveError extends ParserError {
13
18
  constructor(message) {
14
19
  super('CorruptSaveError', message ?? 'This save data is most likely corrupt.');
15
20
  }
16
21
  }
17
- export class CompressionLibraryError extends ParserError {
22
+ exports.CorruptSaveError = CorruptSaveError;
23
+ class CompressionLibraryError extends ParserError {
18
24
  constructor(message) {
19
25
  super('CompressionLibraryError', message ?? 'Failed to compress/decompress save data.');
20
26
  }
21
27
  }
22
- export class TimeoutError extends ParserError {
28
+ exports.CompressionLibraryError = CompressionLibraryError;
29
+ class TimeoutError extends ParserError {
23
30
  constructor(message) {
24
31
  super('TimeoutError', message ?? 'Operation timed out.');
25
32
  }
26
33
  }
27
- export class UnimplementedError extends ParserError {
34
+ exports.TimeoutError = TimeoutError;
35
+ class UnimplementedError extends ParserError {
28
36
  constructor(message) {
29
37
  super('UnimplementedError', message ?? 'Unimplemented Operation.');
30
38
  }
31
39
  }
40
+ exports.UnimplementedError = UnimplementedError;
@@ -1,4 +1,7 @@
1
- export var CompressionAlgorithmCode;
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.CompressionAlgorithmCode = void 0;
4
+ var CompressionAlgorithmCode;
2
5
  (function (CompressionAlgorithmCode) {
3
6
  CompressionAlgorithmCode[CompressionAlgorithmCode["ZLIB"] = 3] = "ZLIB";
4
- })(CompressionAlgorithmCode || (CompressionAlgorithmCode = {}));
7
+ })(CompressionAlgorithmCode = exports.CompressionAlgorithmCode || (exports.CompressionAlgorithmCode = {}));
@@ -1,24 +1,27 @@
1
- import { BlueprintConfigReader, BlueprintReader } from "./satisfactory/blueprint/blueprint-reader";
2
- import { BlueprintConfigWriter, BlueprintWriter } from "./satisfactory/blueprint/blueprint-writer";
3
- import { SatisfactorySave } from "./satisfactory/save/satisfactory-save";
4
- import { SaveReader } from "./satisfactory/save/save-reader";
5
- import { SaveWriter } from "./satisfactory/save/save-writer";
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Parser = void 0;
4
+ const blueprint_reader_1 = require("./satisfactory/blueprint/blueprint-reader");
5
+ const blueprint_writer_1 = require("./satisfactory/blueprint/blueprint-writer");
6
+ const satisfactory_save_1 = require("./satisfactory/save/satisfactory-save");
7
+ const save_reader_1 = require("./satisfactory/save/save-reader");
8
+ const save_writer_1 = require("./satisfactory/save/save-writer");
6
9
  class Parser {
7
10
  static WriteSave(save, onBinaryBeforeCompressing, onHeader, onChunk) {
8
- const writer = new SaveWriter();
9
- SaveWriter.WriteHeader(writer, save.header);
11
+ const writer = new save_writer_1.SaveWriter();
12
+ save_writer_1.SaveWriter.WriteHeader(writer, save.header);
10
13
  const posAfterHeader = writer.getBufferPosition();
11
- SaveWriter.WriteSaveBodyHash(writer, save.gridHash);
12
- SaveWriter.WriteGrids(writer, save.grids);
13
- SaveWriter.WriteLevels(writer, save, save.header.buildVersion);
14
+ save_writer_1.SaveWriter.WriteSaveBodyHash(writer, save.gridHash);
15
+ save_writer_1.SaveWriter.WriteGrids(writer, save.grids);
16
+ save_writer_1.SaveWriter.WriteLevels(writer, save, save.header.buildVersion);
14
17
  writer.endWriting();
15
18
  const chunkSummary = writer.generateChunks(save.compressionInfo, posAfterHeader, onBinaryBeforeCompressing, onHeader, onChunk);
16
19
  return chunkSummary;
17
20
  }
18
21
  static ParseSaveFile(name, file, onDecompressedSaveBody = () => { }, onProgress = () => { }) {
19
- const reader = new SaveReader(new Uint8Array(file).buffer, onProgress);
22
+ const reader = new save_reader_1.SaveReader(new Uint8Array(file).buffer, onProgress);
20
23
  const header = reader.readHeader();
21
- const save = new SatisfactorySave(name, header);
24
+ const save = new satisfactory_save_1.SatisfactorySave(name, header);
22
25
  const inflateResult = reader.inflateChunks();
23
26
  onDecompressedSaveBody(reader.getBuffer());
24
27
  const gridHash = reader.readSaveBodyHash();
@@ -31,16 +34,16 @@ class Parser {
31
34
  return save;
32
35
  }
33
36
  static WriteBlueprintFiles(blueprint, onMainFileBinaryBeforeCompressing = () => { }, onMainFileHeader = () => { }, onMainFileChunk = () => { }) {
34
- const blueprintWriter = new BlueprintWriter();
35
- BlueprintWriter.SerializeHeader(blueprintWriter, blueprint.header);
37
+ const blueprintWriter = new blueprint_writer_1.BlueprintWriter();
38
+ blueprint_writer_1.BlueprintWriter.SerializeHeader(blueprintWriter, blueprint.header);
36
39
  const saveBodyPos = blueprintWriter.getBufferPosition();
37
- BlueprintWriter.SerializeObjects(blueprintWriter, blueprint.objects);
40
+ blueprint_writer_1.BlueprintWriter.SerializeObjects(blueprintWriter, blueprint.objects);
38
41
  blueprintWriter.endWriting();
39
42
  let binaryChunks = [];
40
43
  let binaryHeader;
41
44
  const mainFileChunkSummary = blueprintWriter.generateChunks(blueprint.compressionInfo, saveBodyPos, onMainFileBinaryBeforeCompressing, onMainFileHeader, onMainFileChunk);
42
- const configWriter = new BlueprintConfigWriter();
43
- BlueprintConfigWriter.SerializeConfig(configWriter, blueprint.config);
45
+ const configWriter = new blueprint_writer_1.BlueprintConfigWriter();
46
+ blueprint_writer_1.BlueprintConfigWriter.SerializeConfig(configWriter, blueprint.config);
44
47
  const configFileBinary = configWriter.endWriting();
45
48
  return {
46
49
  mainFileChunkSummary,
@@ -48,13 +51,13 @@ class Parser {
48
51
  };
49
52
  }
50
53
  static ParseBlueprintFiles(name, blueprintFile, blueprintConfigFile, onDecompressedBlueprintBody = () => { }) {
51
- const blueprintConfigReader = new BlueprintConfigReader(new Uint8Array(blueprintConfigFile).buffer);
52
- const config = BlueprintConfigReader.ParseConfig(blueprintConfigReader);
53
- const blueprintReader = new BlueprintReader(new Uint8Array(blueprintFile).buffer);
54
- const header = BlueprintReader.ReadHeader(blueprintReader);
54
+ const blueprintConfigReader = new blueprint_reader_1.BlueprintConfigReader(new Uint8Array(blueprintConfigFile).buffer);
55
+ const config = blueprint_reader_1.BlueprintConfigReader.ParseConfig(blueprintConfigReader);
56
+ const blueprintReader = new blueprint_reader_1.BlueprintReader(new Uint8Array(blueprintFile).buffer);
57
+ const header = blueprint_reader_1.BlueprintReader.ReadHeader(blueprintReader);
55
58
  const inflateResult = blueprintReader.inflateChunks();
56
59
  onDecompressedBlueprintBody(inflateResult.inflatedData);
57
- const blueprintObjects = BlueprintReader.ParseObjects(blueprintReader);
60
+ const blueprintObjects = blueprint_reader_1.BlueprintReader.ParseObjects(blueprintReader);
58
61
  const blueprint = {
59
62
  name,
60
63
  compressionInfo: blueprintReader.compressionInfo,
@@ -74,4 +77,4 @@ Parser.JSONStringifyModified = (obj, indent = 0) => JSON.stringify(obj, (key, va
74
77
  }
75
78
  return value;
76
79
  }, indent);
77
- export { Parser };
80
+ exports.Parser = Parser;
@@ -1,25 +1,31 @@
1
- import Pako from "pako";
2
- import { Alignment } from "../../byte/alignment.enum";
3
- import { ByteReader } from "../../byte/byte-reader.class";
4
- import { CorruptSaveError, ParserError } from "../../error/parser.error";
5
- import { SaveComponent, isSaveComponent } from "../objects/SaveComponent";
6
- import { SaveEntity, isSaveEntity } from "../objects/SaveEntity";
7
- import { Level } from "../save/level.class";
8
- import { DEFAULT_SATISFACTORY_CHUNK_HEADER_SIZE } from "../save/save-reader";
9
- import { ParseCol4RGBA, ParseVec3f } from "../structs/util.types";
10
- export class BlueprintReader extends ByteReader {
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.BlueprintConfigReader = exports.BlueprintReader = void 0;
7
+ const pako_1 = __importDefault(require("pako"));
8
+ const alignment_enum_1 = require("../../byte/alignment.enum");
9
+ const byte_reader_class_1 = require("../../byte/byte-reader.class");
10
+ const parser_error_1 = require("../../error/parser.error");
11
+ const SaveComponent_1 = require("../objects/SaveComponent");
12
+ const SaveEntity_1 = require("../objects/SaveEntity");
13
+ const level_class_1 = require("../save/level.class");
14
+ const save_reader_1 = require("../save/save-reader");
15
+ const util_types_1 = require("../structs/util.types");
16
+ class BlueprintReader extends byte_reader_class_1.ByteReader {
11
17
  constructor(bluePrintBuffer) {
12
- super(bluePrintBuffer, Alignment.LITTLE_ENDIAN);
18
+ super(bluePrintBuffer, alignment_enum_1.Alignment.LITTLE_ENDIAN);
13
19
  this.compressionInfo = {
14
20
  packageFileTag: 0,
15
21
  maxUncompressedChunkContentSize: 0,
16
- chunkHeaderSize: DEFAULT_SATISFACTORY_CHUNK_HEADER_SIZE
22
+ chunkHeaderSize: save_reader_1.DEFAULT_SATISFACTORY_CHUNK_HEADER_SIZE
17
23
  };
18
24
  }
19
25
  static ReadHeader(reader) {
20
26
  const blueprintTypeOrWhat = reader.readBytes(4);
21
27
  const versionThing = reader.readBytes(2 * 4);
22
- const dimensions = ParseVec3f(reader);
28
+ const dimensions = (0, util_types_1.ParseVec3f)(reader);
23
29
  let itemTypeCount = reader.readInt32();
24
30
  const itemCosts = new Array(itemTypeCount).fill(['', 0]);
25
31
  for (let i = 0; i < itemTypeCount; i++) {
@@ -53,13 +59,13 @@ export class BlueprintReader extends ByteReader {
53
59
  this.currentByte = this.compressionInfo.chunkHeaderSize;
54
60
  this.handledByte += this.compressionInfo.chunkHeaderSize;
55
61
  if (this.compressionInfo.packageFileTag <= 0) {
56
- this.compressionInfo.packageFileTag = chunkHeader.getUint32(0, this.alignment === Alignment.LITTLE_ENDIAN);
62
+ this.compressionInfo.packageFileTag = chunkHeader.getUint32(0, this.alignment === alignment_enum_1.Alignment.LITTLE_ENDIAN);
57
63
  }
58
64
  if (this.compressionInfo.maxUncompressedChunkContentSize <= 0) {
59
- this.compressionInfo.maxUncompressedChunkContentSize = chunkHeader.getInt32(8, this.alignment === Alignment.LITTLE_ENDIAN);
65
+ this.compressionInfo.maxUncompressedChunkContentSize = chunkHeader.getInt32(8, this.alignment === alignment_enum_1.Alignment.LITTLE_ENDIAN);
60
66
  }
61
- const chunkCompressedLength = chunkHeader.getInt32(33, this.alignment === Alignment.LITTLE_ENDIAN);
62
- const chunkUncompressedLength = chunkHeader.getInt32(25, this.alignment === Alignment.LITTLE_ENDIAN);
67
+ const chunkCompressedLength = chunkHeader.getInt32(33, this.alignment === alignment_enum_1.Alignment.LITTLE_ENDIAN);
68
+ const chunkUncompressedLength = chunkHeader.getInt32(25, this.alignment === alignment_enum_1.Alignment.LITTLE_ENDIAN);
63
69
  totalUncompressedBodySize += chunkUncompressedLength;
64
70
  const currentChunkSize = chunkCompressedLength;
65
71
  let currentChunk = this.fileBuffer.slice(this.currentByte, this.currentByte + currentChunkSize);
@@ -69,11 +75,11 @@ export class BlueprintReader extends ByteReader {
69
75
  this.currentByte = 0;
70
76
  try {
71
77
  let currentInflatedChunk = null;
72
- currentInflatedChunk = Pako.inflate(currentChunk);
78
+ currentInflatedChunk = pako_1.default.inflate(currentChunk);
73
79
  currentChunks.push(currentInflatedChunk);
74
80
  }
75
81
  catch (err) {
76
- throw new ParserError('ParserError', 'An error occurred while calling pako inflate.' + err);
82
+ throw new parser_error_1.ParserError('ParserError', 'An error occurred while calling pako inflate.' + err);
77
83
  }
78
84
  }
79
85
  let newChunkLength = currentChunks.map(cc => cc.length).reduce((prev, cur) => prev + cur);
@@ -96,7 +102,7 @@ export class BlueprintReader extends ByteReader {
96
102
  const totalBodyRestSize = reader.readInt32();
97
103
  const objectHeadersBinarySize = reader.readInt32();
98
104
  let objects = [];
99
- Level.ReadObjectHeaders(reader, objects, () => { });
105
+ level_class_1.Level.ReadObjectHeaders(reader, objects, () => { });
100
106
  const someChecksumThing = reader.readInt32();
101
107
  BlueprintReader.ReadBlueprintObjectContents(reader, objects, 0);
102
108
  const pos = reader.getBufferPosition();
@@ -107,21 +113,22 @@ export class BlueprintReader extends ByteReader {
107
113
  for (let i = 0; i < countEntities; i++) {
108
114
  const len = reader.readInt32();
109
115
  if (len === 0) {
110
- throw new CorruptSaveError(`check number is a wrong value (${len}). This normally indicates a corrupt entity or blueprint.`);
116
+ throw new parser_error_1.CorruptSaveError(`check number is a wrong value (${len}). This normally indicates a corrupt entity or blueprint.`);
111
117
  }
112
118
  const obj = objectsList[i];
113
- if (isSaveEntity(obj)) {
114
- SaveEntity.ParseData(obj, len, reader, buildVersion, obj.typePath);
119
+ if ((0, SaveEntity_1.isSaveEntity)(obj)) {
120
+ SaveEntity_1.SaveEntity.ParseData(obj, len, reader, buildVersion, obj.typePath);
115
121
  }
116
- else if (isSaveComponent(obj)) {
117
- SaveComponent.ParseData(obj, len, reader, buildVersion, obj.typePath);
122
+ else if ((0, SaveComponent_1.isSaveComponent)(obj)) {
123
+ SaveComponent_1.SaveComponent.ParseData(obj, len, reader, buildVersion, obj.typePath);
118
124
  }
119
125
  }
120
126
  }
121
127
  }
122
- export class BlueprintConfigReader extends ByteReader {
128
+ exports.BlueprintReader = BlueprintReader;
129
+ class BlueprintConfigReader extends byte_reader_class_1.ByteReader {
123
130
  constructor(bluePrintConfigBuffer) {
124
- super(bluePrintConfigBuffer, Alignment.LITTLE_ENDIAN);
131
+ super(bluePrintConfigBuffer, alignment_enum_1.Alignment.LITTLE_ENDIAN);
125
132
  this.bluePrintConfigBuffer = bluePrintConfigBuffer;
126
133
  this.parse = () => BlueprintConfigReader.ParseConfig(this);
127
134
  }
@@ -129,7 +136,7 @@ export class BlueprintConfigReader extends ByteReader {
129
136
  const unk = reader.readInt32();
130
137
  const description = reader.readString();
131
138
  const unk3 = reader.readInt32();
132
- const colorMaybe = ParseCol4RGBA(reader);
139
+ const colorMaybe = (0, util_types_1.ParseCol4RGBA)(reader);
133
140
  return {
134
141
  description,
135
142
  color: colorMaybe,
@@ -137,3 +144,4 @@ export class BlueprintConfigReader extends ByteReader {
137
144
  };
138
145
  }
139
146
  }
147
+ exports.BlueprintConfigReader = BlueprintConfigReader;
@@ -1,14 +1,17 @@
1
- import { Alignment } from "../../byte/alignment.enum";
2
- import { ByteWriter } from "../../byte/byte-writer.class";
3
- import { ParserError } from "../../error/parser.error";
4
- import { SaveComponent, isSaveComponent } from "../objects/SaveComponent";
5
- import { SaveEntity, isSaveEntity } from "../objects/SaveEntity";
6
- import { Level } from "../save/level.class";
7
- import { SaveWriter } from "../save/save-writer";
8
- import { SerializeCol4RGBA } from "../structs/util.types";
9
- export class BlueprintWriter extends ByteWriter {
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.BlueprintConfigWriter = exports.BlueprintWriter = void 0;
4
+ const alignment_enum_1 = require("../../byte/alignment.enum");
5
+ const byte_writer_class_1 = require("../../byte/byte-writer.class");
6
+ const parser_error_1 = require("../../error/parser.error");
7
+ const SaveComponent_1 = require("../objects/SaveComponent");
8
+ const SaveEntity_1 = require("../objects/SaveEntity");
9
+ const level_class_1 = require("../save/level.class");
10
+ const save_writer_1 = require("../save/save-writer");
11
+ const util_types_1 = require("../structs/util.types");
12
+ class BlueprintWriter extends byte_writer_class_1.ByteWriter {
10
13
  constructor() {
11
- super(Alignment.LITTLE_ENDIAN);
14
+ super(alignment_enum_1.Alignment.LITTLE_ENDIAN);
12
15
  }
13
16
  static SerializeHeader(writer, header) {
14
17
  writer.writeInt32(2);
@@ -36,18 +39,18 @@ export class BlueprintWriter extends ByteWriter {
36
39
  }
37
40
  generateChunks(compressionInfo, posAfterHeader, onBinaryBeforeCompressing, onHeader, onChunk) {
38
41
  if (posAfterHeader <= 0) {
39
- throw new ParserError('ParserError', 'seems like this buffer has no header. Please write the header first before you can generate chunks.');
42
+ throw new parser_error_1.ParserError('ParserError', 'seems like this buffer has no header. Please write the header first before you can generate chunks.');
40
43
  }
41
44
  const header = new Uint8Array(this.bufferArray.slice(0, posAfterHeader));
42
45
  onHeader(header);
43
46
  this.bufferArray = this.bufferArray.slice(posAfterHeader);
44
- const chunkSummary = SaveWriter.GenerateCompressedChunksFromData(this.bufferArray, compressionInfo, onBinaryBeforeCompressing, onChunk, this.alignment);
47
+ const chunkSummary = save_writer_1.SaveWriter.GenerateCompressedChunksFromData(this.bufferArray, compressionInfo, onBinaryBeforeCompressing, onChunk, this.alignment);
45
48
  return chunkSummary;
46
49
  }
47
50
  static SerializeObjects(writer, objects) {
48
51
  const headersLenIndicator = writer.getBufferPosition();
49
52
  writer.writeInt32(0);
50
- Level.SerializeObjectHeaders(writer, objects);
53
+ level_class_1.Level.SerializeObjectHeaders(writer, objects);
51
54
  writer.writeBinarySizeFromPosition(headersLenIndicator, headersLenIndicator + 4);
52
55
  BlueprintWriter.SerializeObjectContents(writer, objects, 0, '');
53
56
  }
@@ -58,25 +61,27 @@ export class BlueprintWriter extends ByteWriter {
58
61
  for (const obj of objects) {
59
62
  const lenReplacementPosition = writer.getBufferPosition();
60
63
  writer.writeInt32(0);
61
- if (isSaveEntity(obj)) {
62
- SaveEntity.SerializeData(writer, obj, buildVersion);
64
+ if ((0, SaveEntity_1.isSaveEntity)(obj)) {
65
+ SaveEntity_1.SaveEntity.SerializeData(writer, obj, buildVersion);
63
66
  }
64
- else if (isSaveComponent(obj)) {
65
- SaveComponent.SerializeData(writer, obj, buildVersion);
67
+ else if ((0, SaveComponent_1.isSaveComponent)(obj)) {
68
+ SaveComponent_1.SaveComponent.SerializeData(writer, obj, buildVersion);
66
69
  }
67
70
  writer.writeBinarySizeFromPosition(lenReplacementPosition, lenReplacementPosition + 4);
68
71
  }
69
72
  writer.writeBinarySizeFromPosition(lenIndicatorEntities, lenIndicatorEntities + 4);
70
73
  }
71
74
  }
72
- export class BlueprintConfigWriter extends ByteWriter {
75
+ exports.BlueprintWriter = BlueprintWriter;
76
+ class BlueprintConfigWriter extends byte_writer_class_1.ByteWriter {
73
77
  constructor() {
74
- super(Alignment.LITTLE_ENDIAN);
78
+ super(alignment_enum_1.Alignment.LITTLE_ENDIAN);
75
79
  }
76
80
  static SerializeConfig(writer, config) {
77
81
  writer.writeInt32(2);
78
82
  writer.writeString(config.description);
79
83
  writer.writeInt32(config.iconID);
80
- SerializeCol4RGBA(writer, config.color);
84
+ (0, util_types_1.SerializeCol4RGBA)(writer, config.color);
81
85
  }
82
86
  }
87
+ exports.BlueprintConfigWriter = BlueprintConfigWriter;
@@ -1 +1,2 @@
1
- export {};
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });