Socket
Socket
Sign inDemoInstall

satisfactory-json

Package Overview
Dependencies
0
Maintainers
1
Versions
63
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

Comparing version 0.0.4 to 0.0.5

2

lib/json2sav.d.ts

@@ -29,3 +29,3 @@ import { Entity } from './types';

writeActor(obj: any): void;
writeObject(obj: any): void;
writeComponent(obj: any): void;
writeEntity(entity: any, withNames: boolean, className: string): void;

@@ -32,0 +32,0 @@ writeNone(): void;

@@ -107,4 +107,3 @@ "use strict";

this.buffer.writeInt(saveJson.objects.length);
for (let i = 0; i < saveJson.objects.length; i++) {
const obj = saveJson.objects[i];
for (const obj of saveJson.objects) {
this.buffer.writeInt(obj.type);

@@ -115,3 +114,3 @@ if (obj.type === 1) {

else if (obj.type === 0) {
this.writeObject(obj);
this.writeComponent(obj);
}

@@ -123,4 +122,3 @@ else {

this.buffer.writeInt(saveJson.objects.length);
for (let i = 0; i < saveJson.objects.length; i++) {
const obj = saveJson.objects[i];
for (const obj of saveJson.objects) {
if (obj.type === 1) {

@@ -134,4 +132,3 @@ this.writeEntity(obj.entity, true, obj.className);

this.buffer.writeInt(saveJson.collected.length);
for (let i = 0; i < saveJson.collected.length; i++) {
const obj = saveJson.collected[i];
for (const obj of saveJson.collected) {
this.buffer.writeLengthPrefixedString(obj.levelName);

@@ -171,3 +168,3 @@ this.buffer.writeLengthPrefixedString(obj.pathName);

}
writeObject(obj) {
writeComponent(obj) {
this.buffer.writeLengthPrefixedString(obj.className);

@@ -184,9 +181,9 @@ this.buffer.writeLengthPrefixedString(obj.levelName);

this.buffer.writeInt(entity.children.length);
for (let i = 0; i < entity.children.length; i++) {
this.buffer.writeLengthPrefixedString(entity.children[i].levelName);
this.buffer.writeLengthPrefixedString(entity.children[i].pathName);
for (const child of entity.children) {
this.buffer.writeLengthPrefixedString(child.levelName);
this.buffer.writeLengthPrefixedString(child.pathName);
}
}
for (let i = 0; i < entity.properties.length; i++) {
this.writeProperty(entity.properties[i]);
for (const property of entity.properties) {
this.writeProperty(property);
}

@@ -290,4 +287,4 @@ this.writeNone();

case 'Transform':
for (let i = 0; i < property.value.properties.length; i++) {
this.writeProperty(property.value.properties[i]);
for (const prop of property.value.properties) {
this.writeProperty(prop);
}

@@ -304,4 +301,4 @@ this.writeNone();

case 'InventoryStack':
for (let i = 0; i < property.value.properties.length; i++) {
this.writeProperty(property.value.properties[i]);
for (const prop of property.value.properties) {
this.writeProperty(prop);
}

@@ -318,3 +315,4 @@ this.writeNone();

this.writeProperty(property.value.properties[0]);
// Dirty hack to make in this one case the inner property only take up 4 bytes
// Dirty hack to make in this one case the inner property
// only take up 4 bytes
this.buffer.buffers[this.buffer.buffers.length - 1].length =

@@ -341,14 +339,14 @@ oldval + 4;

case 'IntProperty':
for (let i = 0; i < property.value.values.length; i++) {
this.buffer.writeInt(property.value.values[i]);
for (const prop of property.value.values) {
this.buffer.writeInt(prop);
}
break;
case 'ByteProperty':
for (let i = 0; i < property.value.values.length; i++) {
this.buffer.writeByte(property.value.values[i]);
for (const prop of property.value.values) {
this.buffer.writeByte(prop);
}
break;
case 'ObjectProperty':
for (let i = 0; i < property.value.values.length; i++) {
const obj = property.value.values[i];
for (const prop of property.value.values) {
const obj = prop;
this.buffer.writeLengthPrefixedString(obj.levelName);

@@ -365,6 +363,6 @@ this.buffer.writeLengthPrefixedString(obj.pathName);

this.buffer.writeHex(property.structUnknown, false);
for (let i = 0; i < property.value.values.length; i++) {
const obj = property.value.values[i];
for (let j = 0; j < obj.properties.length; j++) {
this.writeProperty(obj.properties[j]);
for (const prop of property.value.values) {
const obj = prop;
for (const innerProp of obj.properties) {
this.writeProperty(innerProp);
}

@@ -387,9 +385,8 @@ this.writeNone();

this.buffer.writeInt(keys.length);
for (let i = 0; i < keys.length; i++) {
for (const key of keys) {
// (let [key, value] of property.value.values) {
const key = keys[i];
const value = property.value.values[key];
this.buffer.writeInt(+key); // parse key to int
for (let j = 0; j < value.length; j++) {
this.writeProperty(value[j]);
for (const element of value) {
this.writeProperty(element);
}

@@ -396,0 +393,0 @@ this.writeNone();

/// <reference types="node" />
import { Actor, Entity, Object, Property, SaveGame } from './types';
import { Actor, Entity, Component, Property, SaveGame } from './types';
declare class DataBuffer {

@@ -24,3 +24,3 @@ buffer: Buffer;

readActor(buffer: DataBuffer): Actor;
readObject(buffer: DataBuffer): Object;
readComponent(buffer: DataBuffer): Component;
readEntity(buffer: DataBuffer, withNames: boolean, className: string): Entity;

@@ -27,0 +27,0 @@ readProperty(buffer: DataBuffer, properties: Property[]): boolean;

@@ -64,6 +64,3 @@ "use strict";

if (this.cursor + length > this.buffer.length) {
// throw new Error('TOO LONG: ' +length + ' | ' + this.readHex(32) + ': ' + this.cursor + ' / ' + this.buffer.length );
// console.error(this.readHex(this.buffer.length - this.cursor -1));
console.log(this.readHex(32));
// return '';
console.trace('buffer < ' + length);

@@ -141,3 +138,3 @@ throw new Error('cannot read string of length: ' + length);

else if (type === 0) {
saveJson['objects'].push(this.readObject(buffer));
saveJson['objects'].push(this.readComponent(buffer));
}

@@ -150,3 +147,4 @@ else {

const elementCount = buffer.readInt();
// # So far these counts have always been the same and the entities seem to belong 1 to 1 to the actors/objects read above
// So far these counts have always been the same and the entities seem to belong 1 to 1 to
// the actors/objects read above
if (elementCount !== entryCount) {

@@ -203,3 +201,3 @@ this.error('elementCount (' + elementCount + ') != entryCount(' + entryCount + ')');

}
readObject(buffer) {
readComponent(buffer) {
return {

@@ -310,3 +308,3 @@ type: 0,

break;
case 'ByteProperty':
case 'ByteProperty': {
const unk1 = buffer.readLengthPrefixedString();

@@ -337,2 +335,3 @@ buffer.assertNullByte();

break;
}
case 'EnumProperty':

@@ -368,3 +367,3 @@ const enumName = buffer.readLengthPrefixedString();

case 'Vector':
case 'Rotator':
case 'Rotator': {
properties.push({

@@ -383,3 +382,4 @@ name,

break;
case 'Box':
}
case 'Box': {
properties.push({

@@ -406,3 +406,4 @@ name,

break;
case 'Color':
}
case 'Color': {
properties.push({

@@ -422,3 +423,4 @@ name,

break;
case 'LinearColor':
}
case 'LinearColor': {
properties.push({

@@ -438,3 +440,4 @@ name,

break;
case 'Transform':
}
case 'Transform': {
const props = [];

@@ -453,3 +456,4 @@ while (this.readProperty(buffer, props)) { }

break;
case 'Quat':
}
case 'Quat': {
properties.push({

@@ -469,2 +473,3 @@ name,

break;
}
case 'RemovedInstanceArray':

@@ -492,3 +497,4 @@ case 'InventoryStack': {

const props = [];
this.readProperty(buffer, props); // can't consume null here because it is needed by the entaingling struct
this.readProperty(buffer, props);
// can't consume null here because it is needed by the entaingling struct
properties.push({

@@ -510,3 +516,3 @@ name,

}
case 'RailroadTrackPosition':
case 'RailroadTrackPosition': {
properties.push({

@@ -526,3 +532,4 @@ name,

break;
case 'TimerHandle':
}
case 'TimerHandle': {
properties.push({

@@ -539,2 +546,3 @@ name,

break;
}
default:

@@ -546,3 +554,3 @@ console.log(buffer.readHex(32));

break;
case 'ArrayProperty':
case 'ArrayProperty': {
const itemType = buffer.readLengthPrefixedString();

@@ -582,10 +590,4 @@ buffer.assertNullByte();

}
const type = buffer.readLengthPrefixedString();
const unknown = buffer.readHex(17); // TODO
/*property['structName'] = structName
property['structType'] = structType
property['structInnerType'] = type
property['structUnknown'] = readHex(17) # TODO what are those?
property['_structLength'] = structSize*/
const structInnerType = buffer.readLengthPrefixedString();
const structUnknown = buffer.readHex(17); // TODO
for (let j = 0; j < count; j++) {

@@ -602,6 +604,5 @@ const props = [];

index,
structUnknown: unknown,
structName,
structType,
structInnerType: type,
structInnerType,
value: {

@@ -628,2 +629,3 @@ type: itemType,

break;
}
case 'MapProperty': {

@@ -630,0 +632,0 @@ const mapName = buffer.readLengthPrefixedString();

@@ -11,3 +11,3 @@ export interface SaveGame {

sessionVisibility: number;
objects: ActorOrObject[];
objects: ActorOrComponent[];
collected: ObjectReference[];

@@ -30,3 +30,3 @@ missing: string;

}
export interface Object {
export interface Component {
type: number;

@@ -39,3 +39,3 @@ className: string;

}
export declare type ActorOrObject = Actor | Object;
export declare type ActorOrComponent = Actor | Component;
export interface Entity {

@@ -89,4 +89,6 @@ levelName?: string;

export interface ObjectProperty extends BaseProperty {
levelName: string;
pathName: string;
value: {
levelName: string;
pathName: string;
};
}

@@ -101,2 +103,3 @@ export interface StructProperty extends BaseProperty {

structInnerType?: string;
value: any;
}

@@ -103,0 +106,0 @@ export interface MapProperty extends BaseProperty {

{
"name": "satisfactory-json",
"version": "0.0.4",
"version": "0.0.5",
"description": "Convert Satisfactory save files to JSON and back",

@@ -5,0 +5,0 @@ "main": "lib/index.js",

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Packages

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc