@etothepii/satisfactory-file-parser 0.1.25 → 0.1.26

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