feat: prepare for public release - updated README, added assets, and migration content

- Updated README with banner, navigation, disclaimer, and future features
- Added assets/images directory structure for repository images
- Added JackifyWikiUserGuide.md for wiki content
- Updated installation instructions for 7z archive distribution
- Added comprehensive future planned features section
- Prepared content for GitHub migration and Nexus Mods release
This commit is contained in:
Omni
2025-09-09 14:10:28 +01:00
parent 9f3191f79c
commit af62212b7a
49 changed files with 454 additions and 252 deletions

View File

@@ -5,4 +5,4 @@ This package provides both CLI and GUI interfaces for managing
Wabbajack modlists natively on Linux systems.
"""
__version__ = "0.0.31"
__version__ = "0.0.32"

View File

@@ -673,17 +673,17 @@ class ModlistHandler:
# Use canonical logic for all modlists/games
components = self.get_modlist_wine_components(self.game_name, self.game_var_full)
# Detect special games and use vanilla AppID instead of modlist AppID
special_game_type = self.detect_special_game_type(self.modlist_dir)
self.logger.debug(f"Wine components step - modlist_dir='{self.modlist_dir}', special_game_type='{special_game_type}'")
if special_game_type == "fnv":
target_appid = "22380" # Vanilla Fallout New Vegas AppID
self.logger.info("Installing wine components to vanilla FNV compatdata (AppID 22380)")
elif special_game_type == "enderal":
target_appid = "976620" # Enderal: Forgotten Stories Special Edition AppID
self.logger.info("Installing wine components to vanilla Enderal compatdata (AppID 976620)")
else:
target_appid = self.appid # Normal modlist AppID
# DISABLED: Special game wine component routing - now using registry injection approach
# special_game_type = self.detect_special_game_type(self.modlist_dir)
# if special_game_type == "fnv":
# target_appid = "22380" # Vanilla Fallout New Vegas AppID
# elif special_game_type == "enderal":
# target_appid = "976620" # Enderal: Forgotten Stories Special Edition AppID
# else:
# target_appid = self.appid # Normal modlist AppID
# All modlists now use their own AppID for wine components
target_appid = self.appid
if not self.protontricks_handler.install_wine_components(target_appid, self.game_var_full, specific_components=components):
self.logger.error("Failed to install Wine components. Configuration aborted.")

View File

@@ -1718,18 +1718,21 @@ echo Prefix creation complete.
progress_callback("=== Steam Integration ===")
progress_callback(f"{self._get_progress_timestamp()} Creating Steam shortcut with native service")
# Detect special game types early to generate proper launch options
from ..handlers.modlist_handler import ModlistHandler
modlist_handler = ModlistHandler()
special_game_type = modlist_handler.detect_special_game_type(modlist_install_dir)
# DISABLED: Special game launch options - now using registry injection approach
# from ..handlers.modlist_handler import ModlistHandler
# modlist_handler = ModlistHandler()
# special_game_type = modlist_handler.detect_special_game_type(modlist_install_dir)
#
# # Generate complete launch options for special games
# custom_launch_options = None
# if special_game_type in ["fnv", "enderal"]:
# custom_launch_options = self._generate_special_game_launch_options(special_game_type, modlist_install_dir)
# if not custom_launch_options:
# logger.error(f"Failed to generate launch options for {special_game_type.upper()} modlist")
# return False, None, None, None
# Generate complete launch options for special games
# All modlists now use standard shortcut creation without custom launch options
custom_launch_options = None
if special_game_type in ["fnv", "enderal"]:
custom_launch_options = self._generate_special_game_launch_options(special_game_type, modlist_install_dir)
if not custom_launch_options:
logger.error(f"Failed to generate launch options for {special_game_type.upper()} modlist")
return False, None, None, None
try:
# Step 1: Create shortcut with native Steam service (pointing to ModOrganizer.exe initially)
@@ -1803,8 +1806,17 @@ echo Prefix creation complete.
if progress_callback:
progress_callback(f"{self._get_progress_timestamp()} Setup verification completed")
# Get the prefix path
# Step 5: Inject game registry entries for FNV/Enderal modlists
logger.info("Step 5: Injecting game registry entries")
if progress_callback:
progress_callback(f"{self._get_progress_timestamp()} Injecting game registry entries...")
# Get prefix path for registry injection
prefix_path = self.get_prefix_path(appid)
if prefix_path:
self._inject_game_registry_entries(str(prefix_path))
else:
logger.warning("Could not find prefix path for registry injection")
last_timestamp = self._get_progress_timestamp()
logger.info(f" Working workflow completed successfully! AppID: {appid}, Prefix: {prefix_path}")
@@ -2736,4 +2748,139 @@ echo Prefix creation complete.
return prefix_dir
else:
return None
def _find_steam_game(self, app_id: str, common_names: list) -> Optional[str]:
"""Find a Steam game installation path by AppID and common names"""
import os
from pathlib import Path
# Get Steam libraries from libraryfolders.vdf
steam_config_path = Path.home() / ".steam/steam/config/libraryfolders.vdf"
if not steam_config_path.exists():
return None
steam_libraries = []
try:
with open(steam_config_path, 'r') as f:
content = f.read()
# Parse library paths from VDF
import re
library_matches = re.findall(r'"path"\s+"([^"]+)"', content)
steam_libraries = [Path(path) / "steamapps" / "common" for path in library_matches]
except Exception as e:
logger.warning(f"Failed to parse Steam library folders: {e}")
return None
# Search for game in each library
for library_path in steam_libraries:
if not library_path.exists():
continue
# Check manifest file first (more reliable)
manifest_path = library_path.parent / "appmanifest_{}.acf".format(app_id)
if manifest_path.exists():
try:
with open(manifest_path, 'r') as f:
content = f.read()
install_dir_match = re.search(r'"installdir"\s+"([^"]+)"', content)
if install_dir_match:
game_path = library_path / install_dir_match.group(1)
if game_path.exists():
return str(game_path)
except Exception:
pass
# Fallback: check common folder names
for name in common_names:
game_path = library_path / name
if game_path.exists():
return str(game_path)
return None
def _update_registry_path(self, system_reg_path: str, section_name: str, path_key: str, new_path: str) -> bool:
"""Update a specific path value in Wine registry, preserving other entries"""
if not os.path.exists(system_reg_path):
return False
try:
# Read existing content
with open(system_reg_path, 'r', encoding='utf-8', errors='ignore') as f:
lines = f.readlines()
in_target_section = False
path_updated = False
wine_path = new_path.replace('/', '\\\\')
# Update existing path if found
for i, line in enumerate(lines):
stripped_line = line.strip()
if stripped_line == section_name:
in_target_section = True
elif stripped_line.startswith('[') and in_target_section:
in_target_section = False
elif in_target_section and f'"{path_key}"' in line:
lines[i] = f'"{path_key}"="Z:\\\\{wine_path}\\\\"\n' # Add trailing backslashes
path_updated = True
break
# Add new section if path wasn't updated
if not path_updated:
lines.append(f'\n{section_name}\n')
lines.append(f'"{path_key}"="Z:\\\\{wine_path}\\\\"\n') # Add trailing backslashes
# Write updated content
with open(system_reg_path, 'w', encoding='utf-8') as f:
f.writelines(lines)
return True
except Exception as e:
logger.error(f"Failed to update registry path: {e}")
return False
def _inject_game_registry_entries(self, modlist_compatdata_path: str):
"""Detect and inject FNV/Enderal game paths into modlist's system.reg"""
system_reg_path = os.path.join(modlist_compatdata_path, "pfx", "system.reg")
if not os.path.exists(system_reg_path):
logger.warning("system.reg not found, skipping game path injection")
return
logger.info("Detecting and injecting game registry entries...")
# Game configurations
games_config = {
"22380": { # Fallout New Vegas AppID
"name": "Fallout New Vegas",
"common_names": ["Fallout New Vegas", "FalloutNV"],
"registry_section": "[Software\\\\WOW6432Node\\\\bethesda softworks\\\\falloutnv]",
"path_key": "Installed Path"
},
"976620": { # Enderal Special Edition AppID
"name": "Enderal",
"common_names": ["Enderal: Forgotten Stories (Special Edition)", "Enderal Special Edition", "Enderal"],
"registry_section": "[Software\\\\Wow6432Node\\\\SureAI\\\\Enderal SE]",
"path_key": "installed path"
}
}
# Detect and inject each game
for app_id, config in games_config.items():
game_path = self._find_steam_game(app_id, config["common_names"])
if game_path:
logger.info(f"Detected {config['name']} at: {game_path}")
success = self._update_registry_path(
system_reg_path,
config["registry_section"],
config["path_key"],
game_path
)
if success:
logger.info(f"Updated registry entry for {config['name']}")
else:
logger.warning(f"Failed to update registry entry for {config['name']}")
else:
logger.debug(f"{config['name']} not found in Steam libraries")
logger.info("Game registry injection completed")

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@@ -7,7 +7,7 @@
"targets": {
".NETCoreApp,Version=v8.0": {},
".NETCoreApp,Version=v8.0/linux-x64": {
"jackify-engine/0.3.11": {
"jackify-engine/0.3.12": {
"dependencies": {
"Markdig": "0.40.0",
"Microsoft.Extensions.Configuration.Json": "9.0.1",
@@ -22,16 +22,16 @@
"SixLabors.ImageSharp": "3.1.6",
"System.CommandLine": "2.0.0-beta4.22272.1",
"System.CommandLine.NamingConventionBinder": "2.0.0-beta4.22272.1",
"Wabbajack.CLI.Builder": "0.3.11",
"Wabbajack.Downloaders.Bethesda": "0.3.11",
"Wabbajack.Downloaders.Dispatcher": "0.3.11",
"Wabbajack.Hashing.xxHash64": "0.3.11",
"Wabbajack.Networking.Discord": "0.3.11",
"Wabbajack.Networking.GitHub": "0.3.11",
"Wabbajack.Paths.IO": "0.3.11",
"Wabbajack.Server.Lib": "0.3.11",
"Wabbajack.Services.OSIntegrated": "0.3.11",
"Wabbajack.VFS": "0.3.11",
"Wabbajack.CLI.Builder": "0.3.12",
"Wabbajack.Downloaders.Bethesda": "0.3.12",
"Wabbajack.Downloaders.Dispatcher": "0.3.12",
"Wabbajack.Hashing.xxHash64": "0.3.12",
"Wabbajack.Networking.Discord": "0.3.12",
"Wabbajack.Networking.GitHub": "0.3.12",
"Wabbajack.Paths.IO": "0.3.12",
"Wabbajack.Server.Lib": "0.3.12",
"Wabbajack.Services.OSIntegrated": "0.3.12",
"Wabbajack.VFS": "0.3.12",
"MegaApiClient": "1.0.0.0",
"runtimepack.Microsoft.NETCore.App.Runtime.linux-x64": "8.0.19"
},
@@ -1781,7 +1781,7 @@
}
}
},
"Wabbajack.CLI.Builder/0.3.11": {
"Wabbajack.CLI.Builder/0.3.12": {
"dependencies": {
"Microsoft.Extensions.Configuration.Json": "9.0.1",
"Microsoft.Extensions.DependencyInjection": "9.0.1",
@@ -1791,109 +1791,109 @@
"Microsoft.Extensions.Logging.Abstractions": "9.0.1",
"System.CommandLine": "2.0.0-beta4.22272.1",
"System.CommandLine.NamingConventionBinder": "2.0.0-beta4.22272.1",
"Wabbajack.Paths": "0.3.11"
"Wabbajack.Paths": "0.3.12"
},
"runtime": {
"Wabbajack.CLI.Builder.dll": {}
}
},
"Wabbajack.Common/0.3.11": {
"Wabbajack.Common/0.3.12": {
"dependencies": {
"Microsoft.Extensions.DependencyInjection": "9.0.1",
"Microsoft.Extensions.DependencyInjection.Abstractions": "9.0.1",
"Microsoft.Extensions.Logging.Abstractions": "9.0.1",
"System.Reactive": "6.0.1",
"Wabbajack.DTOs": "0.3.11",
"Wabbajack.Networking.Http": "0.3.11",
"Wabbajack.Paths.IO": "0.3.11"
"Wabbajack.DTOs": "0.3.12",
"Wabbajack.Networking.Http": "0.3.12",
"Wabbajack.Paths.IO": "0.3.12"
},
"runtime": {
"Wabbajack.Common.dll": {}
}
},
"Wabbajack.Compiler/0.3.11": {
"Wabbajack.Compiler/0.3.12": {
"dependencies": {
"F23.StringSimilarity": "6.0.0",
"Microsoft.Extensions.DependencyInjection": "9.0.1",
"Microsoft.Extensions.DependencyInjection.Abstractions": "9.0.1",
"Newtonsoft.Json": "13.0.3",
"SixLabors.ImageSharp": "3.1.6",
"Wabbajack.Downloaders.Dispatcher": "0.3.11",
"Wabbajack.Installer": "0.3.11",
"Wabbajack.VFS": "0.3.11",
"Wabbajack.Downloaders.Dispatcher": "0.3.12",
"Wabbajack.Installer": "0.3.12",
"Wabbajack.VFS": "0.3.12",
"ini-parser-netstandard": "2.5.2"
},
"runtime": {
"Wabbajack.Compiler.dll": {}
}
},
"Wabbajack.Compression.BSA/0.3.11": {
"Wabbajack.Compression.BSA/0.3.12": {
"dependencies": {
"K4os.Compression.LZ4.Streams": "1.3.8",
"Microsoft.Extensions.DependencyInjection": "9.0.1",
"Microsoft.Extensions.DependencyInjection.Abstractions": "9.0.1",
"SharpZipLib": "1.4.2",
"Wabbajack.Common": "0.3.11",
"Wabbajack.DTOs": "0.3.11"
"Wabbajack.Common": "0.3.12",
"Wabbajack.DTOs": "0.3.12"
},
"runtime": {
"Wabbajack.Compression.BSA.dll": {}
}
},
"Wabbajack.Compression.Zip/0.3.11": {
"Wabbajack.Compression.Zip/0.3.12": {
"dependencies": {
"Wabbajack.IO.Async": "0.3.11"
"Wabbajack.IO.Async": "0.3.12"
},
"runtime": {
"Wabbajack.Compression.Zip.dll": {}
}
},
"Wabbajack.Configuration/0.3.11": {
"Wabbajack.Configuration/0.3.12": {
"runtime": {
"Wabbajack.Configuration.dll": {}
}
},
"Wabbajack.Downloaders.Bethesda/0.3.11": {
"Wabbajack.Downloaders.Bethesda/0.3.12": {
"dependencies": {
"LibAES-CTR": "1.1.0",
"Microsoft.Extensions.DependencyInjection": "9.0.1",
"Microsoft.Extensions.DependencyInjection.Abstractions": "9.0.1",
"SharpZipLib": "1.4.2",
"Wabbajack.Common": "0.3.11",
"Wabbajack.Downloaders.Interfaces": "0.3.11",
"Wabbajack.Networking.BethesdaNet": "0.3.11"
"Wabbajack.Common": "0.3.12",
"Wabbajack.Downloaders.Interfaces": "0.3.12",
"Wabbajack.Networking.BethesdaNet": "0.3.12"
},
"runtime": {
"Wabbajack.Downloaders.Bethesda.dll": {}
}
},
"Wabbajack.Downloaders.Dispatcher/0.3.11": {
"Wabbajack.Downloaders.Dispatcher/0.3.12": {
"dependencies": {
"Microsoft.Extensions.DependencyInjection": "9.0.1",
"Microsoft.Extensions.DependencyInjection.Abstractions": "9.0.1",
"Microsoft.Extensions.Logging.Abstractions": "9.0.1",
"Newtonsoft.Json": "13.0.3",
"SixLabors.ImageSharp": "3.1.6",
"Wabbajack.Downloaders.Bethesda": "0.3.11",
"Wabbajack.Downloaders.GameFile": "0.3.11",
"Wabbajack.Downloaders.GoogleDrive": "0.3.11",
"Wabbajack.Downloaders.Http": "0.3.11",
"Wabbajack.Downloaders.IPS4OAuth2Downloader": "0.3.11",
"Wabbajack.Downloaders.Interfaces": "0.3.11",
"Wabbajack.Downloaders.Manual": "0.3.11",
"Wabbajack.Downloaders.MediaFire": "0.3.11",
"Wabbajack.Downloaders.Mega": "0.3.11",
"Wabbajack.Downloaders.ModDB": "0.3.11",
"Wabbajack.Downloaders.Nexus": "0.3.11",
"Wabbajack.Downloaders.VerificationCache": "0.3.11",
"Wabbajack.Downloaders.WabbajackCDN": "0.3.11",
"Wabbajack.Networking.WabbajackClientApi": "0.3.11"
"Wabbajack.Downloaders.Bethesda": "0.3.12",
"Wabbajack.Downloaders.GameFile": "0.3.12",
"Wabbajack.Downloaders.GoogleDrive": "0.3.12",
"Wabbajack.Downloaders.Http": "0.3.12",
"Wabbajack.Downloaders.IPS4OAuth2Downloader": "0.3.12",
"Wabbajack.Downloaders.Interfaces": "0.3.12",
"Wabbajack.Downloaders.Manual": "0.3.12",
"Wabbajack.Downloaders.MediaFire": "0.3.12",
"Wabbajack.Downloaders.Mega": "0.3.12",
"Wabbajack.Downloaders.ModDB": "0.3.12",
"Wabbajack.Downloaders.Nexus": "0.3.12",
"Wabbajack.Downloaders.VerificationCache": "0.3.12",
"Wabbajack.Downloaders.WabbajackCDN": "0.3.12",
"Wabbajack.Networking.WabbajackClientApi": "0.3.12"
},
"runtime": {
"Wabbajack.Downloaders.Dispatcher.dll": {}
}
},
"Wabbajack.Downloaders.GameFile/0.3.11": {
"Wabbajack.Downloaders.GameFile/0.3.12": {
"dependencies": {
"GameFinder.StoreHandlers.EADesktop": "4.5.0",
"GameFinder.StoreHandlers.EGS": "4.5.0",
@@ -1903,360 +1903,360 @@
"Microsoft.Extensions.DependencyInjection": "9.0.1",
"Microsoft.Extensions.DependencyInjection.Abstractions": "9.0.1",
"SixLabors.ImageSharp": "3.1.6",
"Wabbajack.Downloaders.Interfaces": "0.3.11",
"Wabbajack.VFS": "0.3.11"
"Wabbajack.Downloaders.Interfaces": "0.3.12",
"Wabbajack.VFS": "0.3.12"
},
"runtime": {
"Wabbajack.Downloaders.GameFile.dll": {}
}
},
"Wabbajack.Downloaders.GoogleDrive/0.3.11": {
"Wabbajack.Downloaders.GoogleDrive/0.3.12": {
"dependencies": {
"HtmlAgilityPack": "1.11.72",
"Microsoft.AspNetCore.Http.Extensions": "2.3.0",
"Microsoft.Extensions.DependencyInjection": "9.0.1",
"Microsoft.Extensions.DependencyInjection.Abstractions": "9.0.1",
"Microsoft.Extensions.Logging.Abstractions": "9.0.1",
"Wabbajack.Common": "0.3.11",
"Wabbajack.DTOs": "0.3.11",
"Wabbajack.Downloaders.Interfaces": "0.3.11",
"Wabbajack.Networking.Http": "0.3.11",
"Wabbajack.Networking.Http.Interfaces": "0.3.11"
"Wabbajack.Common": "0.3.12",
"Wabbajack.DTOs": "0.3.12",
"Wabbajack.Downloaders.Interfaces": "0.3.12",
"Wabbajack.Networking.Http": "0.3.12",
"Wabbajack.Networking.Http.Interfaces": "0.3.12"
},
"runtime": {
"Wabbajack.Downloaders.GoogleDrive.dll": {}
}
},
"Wabbajack.Downloaders.Http/0.3.11": {
"Wabbajack.Downloaders.Http/0.3.12": {
"dependencies": {
"Microsoft.Extensions.DependencyInjection": "9.0.1",
"Microsoft.Extensions.DependencyInjection.Abstractions": "9.0.1",
"Microsoft.Extensions.Logging.Abstractions": "9.0.1",
"Wabbajack.Common": "0.3.11",
"Wabbajack.DTOs": "0.3.11",
"Wabbajack.Downloaders.Interfaces": "0.3.11",
"Wabbajack.Networking.BethesdaNet": "0.3.11",
"Wabbajack.Networking.Http.Interfaces": "0.3.11",
"Wabbajack.Paths.IO": "0.3.11"
"Wabbajack.Common": "0.3.12",
"Wabbajack.DTOs": "0.3.12",
"Wabbajack.Downloaders.Interfaces": "0.3.12",
"Wabbajack.Networking.BethesdaNet": "0.3.12",
"Wabbajack.Networking.Http.Interfaces": "0.3.12",
"Wabbajack.Paths.IO": "0.3.12"
},
"runtime": {
"Wabbajack.Downloaders.Http.dll": {}
}
},
"Wabbajack.Downloaders.Interfaces/0.3.11": {
"Wabbajack.Downloaders.Interfaces/0.3.12": {
"dependencies": {
"Microsoft.Extensions.DependencyInjection": "9.0.1",
"Microsoft.Extensions.DependencyInjection.Abstractions": "9.0.1",
"Wabbajack.Compression.Zip": "0.3.11",
"Wabbajack.DTOs": "0.3.11",
"Wabbajack.Paths.IO": "0.3.11"
"Wabbajack.Compression.Zip": "0.3.12",
"Wabbajack.DTOs": "0.3.12",
"Wabbajack.Paths.IO": "0.3.12"
},
"runtime": {
"Wabbajack.Downloaders.Interfaces.dll": {}
}
},
"Wabbajack.Downloaders.IPS4OAuth2Downloader/0.3.11": {
"Wabbajack.Downloaders.IPS4OAuth2Downloader/0.3.12": {
"dependencies": {
"F23.StringSimilarity": "6.0.0",
"Microsoft.Extensions.DependencyInjection": "9.0.1",
"Microsoft.Extensions.DependencyInjection.Abstractions": "9.0.1",
"Microsoft.Extensions.Logging.Abstractions": "9.0.1",
"Wabbajack.Common": "0.3.11",
"Wabbajack.Downloaders.Interfaces": "0.3.11",
"Wabbajack.Networking.Http": "0.3.11",
"Wabbajack.Networking.Http.Interfaces": "0.3.11"
"Wabbajack.Common": "0.3.12",
"Wabbajack.Downloaders.Interfaces": "0.3.12",
"Wabbajack.Networking.Http": "0.3.12",
"Wabbajack.Networking.Http.Interfaces": "0.3.12"
},
"runtime": {
"Wabbajack.Downloaders.IPS4OAuth2Downloader.dll": {}
}
},
"Wabbajack.Downloaders.Manual/0.3.11": {
"Wabbajack.Downloaders.Manual/0.3.12": {
"dependencies": {
"Microsoft.Extensions.DependencyInjection": "9.0.1",
"Microsoft.Extensions.DependencyInjection.Abstractions": "9.0.1",
"Microsoft.Extensions.Logging.Abstractions": "9.0.1",
"Wabbajack.Common": "0.3.11",
"Wabbajack.Downloaders.Interfaces": "0.3.11"
"Wabbajack.Common": "0.3.12",
"Wabbajack.Downloaders.Interfaces": "0.3.12"
},
"runtime": {
"Wabbajack.Downloaders.Manual.dll": {}
}
},
"Wabbajack.Downloaders.MediaFire/0.3.11": {
"Wabbajack.Downloaders.MediaFire/0.3.12": {
"dependencies": {
"HtmlAgilityPack": "1.11.72",
"Microsoft.Extensions.DependencyInjection": "9.0.1",
"Microsoft.Extensions.DependencyInjection.Abstractions": "9.0.1",
"Microsoft.Extensions.Logging.Abstractions": "9.0.1",
"Wabbajack.Common": "0.3.11",
"Wabbajack.Downloaders.Interfaces": "0.3.11",
"Wabbajack.Networking.Http.Interfaces": "0.3.11"
"Wabbajack.Common": "0.3.12",
"Wabbajack.Downloaders.Interfaces": "0.3.12",
"Wabbajack.Networking.Http.Interfaces": "0.3.12"
},
"runtime": {
"Wabbajack.Downloaders.MediaFire.dll": {}
}
},
"Wabbajack.Downloaders.Mega/0.3.11": {
"Wabbajack.Downloaders.Mega/0.3.12": {
"dependencies": {
"Microsoft.Extensions.DependencyInjection": "9.0.1",
"Microsoft.Extensions.DependencyInjection.Abstractions": "9.0.1",
"Microsoft.Extensions.Logging.Abstractions": "9.0.1",
"Newtonsoft.Json": "13.0.3",
"Wabbajack.Common": "0.3.11",
"Wabbajack.Downloaders.Interfaces": "0.3.11",
"Wabbajack.Paths.IO": "0.3.11"
"Wabbajack.Common": "0.3.12",
"Wabbajack.Downloaders.Interfaces": "0.3.12",
"Wabbajack.Paths.IO": "0.3.12"
},
"runtime": {
"Wabbajack.Downloaders.Mega.dll": {}
}
},
"Wabbajack.Downloaders.ModDB/0.3.11": {
"Wabbajack.Downloaders.ModDB/0.3.12": {
"dependencies": {
"HtmlAgilityPack": "1.11.72",
"Microsoft.Extensions.DependencyInjection": "9.0.1",
"Microsoft.Extensions.DependencyInjection.Abstractions": "9.0.1",
"Microsoft.Extensions.Logging.Abstractions": "9.0.1",
"Newtonsoft.Json": "13.0.3",
"Wabbajack.Common": "0.3.11",
"Wabbajack.Downloaders.Interfaces": "0.3.11",
"Wabbajack.Networking.Http": "0.3.11",
"Wabbajack.Networking.Http.Interfaces": "0.3.11"
"Wabbajack.Common": "0.3.12",
"Wabbajack.Downloaders.Interfaces": "0.3.12",
"Wabbajack.Networking.Http": "0.3.12",
"Wabbajack.Networking.Http.Interfaces": "0.3.12"
},
"runtime": {
"Wabbajack.Downloaders.ModDB.dll": {}
}
},
"Wabbajack.Downloaders.Nexus/0.3.11": {
"Wabbajack.Downloaders.Nexus/0.3.12": {
"dependencies": {
"Microsoft.Extensions.DependencyInjection": "9.0.1",
"Microsoft.Extensions.DependencyInjection.Abstractions": "9.0.1",
"Wabbajack.DTOs": "0.3.11",
"Wabbajack.Downloaders.Interfaces": "0.3.11",
"Wabbajack.Hashing.xxHash64": "0.3.11",
"Wabbajack.Networking.Http": "0.3.11",
"Wabbajack.Networking.Http.Interfaces": "0.3.11",
"Wabbajack.Networking.NexusApi": "0.3.11",
"Wabbajack.Paths": "0.3.11"
"Wabbajack.DTOs": "0.3.12",
"Wabbajack.Downloaders.Interfaces": "0.3.12",
"Wabbajack.Hashing.xxHash64": "0.3.12",
"Wabbajack.Networking.Http": "0.3.12",
"Wabbajack.Networking.Http.Interfaces": "0.3.12",
"Wabbajack.Networking.NexusApi": "0.3.12",
"Wabbajack.Paths": "0.3.12"
},
"runtime": {
"Wabbajack.Downloaders.Nexus.dll": {}
}
},
"Wabbajack.Downloaders.VerificationCache/0.3.11": {
"Wabbajack.Downloaders.VerificationCache/0.3.12": {
"dependencies": {
"Microsoft.Extensions.DependencyInjection": "9.0.1",
"Microsoft.Extensions.DependencyInjection.Abstractions": "9.0.1",
"Microsoft.Extensions.Logging.Abstractions": "9.0.1",
"Stub.System.Data.SQLite.Core.NetStandard": "1.0.119",
"Wabbajack.DTOs": "0.3.11",
"Wabbajack.Paths.IO": "0.3.11"
"Wabbajack.DTOs": "0.3.12",
"Wabbajack.Paths.IO": "0.3.12"
},
"runtime": {
"Wabbajack.Downloaders.VerificationCache.dll": {}
}
},
"Wabbajack.Downloaders.WabbajackCDN/0.3.11": {
"Wabbajack.Downloaders.WabbajackCDN/0.3.12": {
"dependencies": {
"Microsoft.Extensions.DependencyInjection": "9.0.1",
"Microsoft.Extensions.DependencyInjection.Abstractions": "9.0.1",
"Microsoft.Extensions.Logging.Abstractions": "9.0.1",
"Microsoft.Toolkit.HighPerformance": "7.1.2",
"Wabbajack.Common": "0.3.11",
"Wabbajack.Downloaders.Interfaces": "0.3.11",
"Wabbajack.Networking.Http": "0.3.11",
"Wabbajack.RateLimiter": "0.3.11"
"Wabbajack.Common": "0.3.12",
"Wabbajack.Downloaders.Interfaces": "0.3.12",
"Wabbajack.Networking.Http": "0.3.12",
"Wabbajack.RateLimiter": "0.3.12"
},
"runtime": {
"Wabbajack.Downloaders.WabbajackCDN.dll": {}
}
},
"Wabbajack.DTOs/0.3.11": {
"Wabbajack.DTOs/0.3.12": {
"dependencies": {
"Microsoft.Extensions.DependencyInjection": "9.0.1",
"Microsoft.Extensions.DependencyInjection.Abstractions": "9.0.1",
"Wabbajack.Hashing.xxHash64": "0.3.11",
"Wabbajack.Paths": "0.3.11"
"Wabbajack.Hashing.xxHash64": "0.3.12",
"Wabbajack.Paths": "0.3.12"
},
"runtime": {
"Wabbajack.DTOs.dll": {}
}
},
"Wabbajack.FileExtractor/0.3.11": {
"Wabbajack.FileExtractor/0.3.12": {
"dependencies": {
"Microsoft.Extensions.DependencyInjection": "9.0.1",
"Microsoft.Extensions.DependencyInjection.Abstractions": "9.0.1",
"Microsoft.Extensions.Logging.Abstractions": "9.0.1",
"OMODFramework": "3.0.1",
"Wabbajack.Common": "0.3.11",
"Wabbajack.Compression.BSA": "0.3.11",
"Wabbajack.Hashing.PHash": "0.3.11",
"Wabbajack.Paths": "0.3.11"
"Wabbajack.Common": "0.3.12",
"Wabbajack.Compression.BSA": "0.3.12",
"Wabbajack.Hashing.PHash": "0.3.12",
"Wabbajack.Paths": "0.3.12"
},
"runtime": {
"Wabbajack.FileExtractor.dll": {}
}
},
"Wabbajack.Hashing.PHash/0.3.11": {
"Wabbajack.Hashing.PHash/0.3.12": {
"dependencies": {
"BCnEncoder.Net.ImageSharp": "1.1.1",
"Microsoft.Extensions.DependencyInjection": "9.0.1",
"Microsoft.Extensions.DependencyInjection.Abstractions": "9.0.1",
"Shipwreck.Phash": "0.5.0",
"SixLabors.ImageSharp": "3.1.6",
"Wabbajack.Common": "0.3.11",
"Wabbajack.DTOs": "0.3.11",
"Wabbajack.Paths": "0.3.11",
"Wabbajack.Paths.IO": "0.3.11"
"Wabbajack.Common": "0.3.12",
"Wabbajack.DTOs": "0.3.12",
"Wabbajack.Paths": "0.3.12",
"Wabbajack.Paths.IO": "0.3.12"
},
"runtime": {
"Wabbajack.Hashing.PHash.dll": {}
}
},
"Wabbajack.Hashing.xxHash64/0.3.11": {
"Wabbajack.Hashing.xxHash64/0.3.12": {
"dependencies": {
"Wabbajack.Paths": "0.3.11",
"Wabbajack.RateLimiter": "0.3.11"
"Wabbajack.Paths": "0.3.12",
"Wabbajack.RateLimiter": "0.3.12"
},
"runtime": {
"Wabbajack.Hashing.xxHash64.dll": {}
}
},
"Wabbajack.Installer/0.3.11": {
"Wabbajack.Installer/0.3.12": {
"dependencies": {
"Microsoft.Extensions.DependencyInjection": "9.0.1",
"Microsoft.Extensions.DependencyInjection.Abstractions": "9.0.1",
"Newtonsoft.Json": "13.0.3",
"Octopus.Octodiff": "2.0.548",
"SixLabors.ImageSharp": "3.1.6",
"Wabbajack.DTOs": "0.3.11",
"Wabbajack.Downloaders.Dispatcher": "0.3.11",
"Wabbajack.Downloaders.GameFile": "0.3.11",
"Wabbajack.FileExtractor": "0.3.11",
"Wabbajack.Networking.WabbajackClientApi": "0.3.11",
"Wabbajack.Paths": "0.3.11",
"Wabbajack.Paths.IO": "0.3.11",
"Wabbajack.VFS": "0.3.11",
"Wabbajack.DTOs": "0.3.12",
"Wabbajack.Downloaders.Dispatcher": "0.3.12",
"Wabbajack.Downloaders.GameFile": "0.3.12",
"Wabbajack.FileExtractor": "0.3.12",
"Wabbajack.Networking.WabbajackClientApi": "0.3.12",
"Wabbajack.Paths": "0.3.12",
"Wabbajack.Paths.IO": "0.3.12",
"Wabbajack.VFS": "0.3.12",
"ini-parser-netstandard": "2.5.2"
},
"runtime": {
"Wabbajack.Installer.dll": {}
}
},
"Wabbajack.IO.Async/0.3.11": {
"Wabbajack.IO.Async/0.3.12": {
"runtime": {
"Wabbajack.IO.Async.dll": {}
}
},
"Wabbajack.Networking.BethesdaNet/0.3.11": {
"Wabbajack.Networking.BethesdaNet/0.3.12": {
"dependencies": {
"Microsoft.Extensions.DependencyInjection": "9.0.1",
"Microsoft.Extensions.DependencyInjection.Abstractions": "9.0.1",
"Wabbajack.DTOs": "0.3.11",
"Wabbajack.Networking.Http": "0.3.11",
"Wabbajack.Networking.Http.Interfaces": "0.3.11"
"Wabbajack.DTOs": "0.3.12",
"Wabbajack.Networking.Http": "0.3.12",
"Wabbajack.Networking.Http.Interfaces": "0.3.12"
},
"runtime": {
"Wabbajack.Networking.BethesdaNet.dll": {}
}
},
"Wabbajack.Networking.Discord/0.3.11": {
"Wabbajack.Networking.Discord/0.3.12": {
"dependencies": {
"Microsoft.Extensions.DependencyInjection.Abstractions": "9.0.1",
"Microsoft.Extensions.Logging.Abstractions": "9.0.1",
"Wabbajack.Networking.Http.Interfaces": "0.3.11"
"Wabbajack.Networking.Http.Interfaces": "0.3.12"
},
"runtime": {
"Wabbajack.Networking.Discord.dll": {}
}
},
"Wabbajack.Networking.GitHub/0.3.11": {
"Wabbajack.Networking.GitHub/0.3.12": {
"dependencies": {
"Microsoft.Extensions.DependencyInjection": "9.0.1",
"Microsoft.Extensions.DependencyInjection.Abstractions": "9.0.1",
"Microsoft.Extensions.Logging.Abstractions": "9.0.1",
"Octokit": "14.0.0",
"Wabbajack.DTOs": "0.3.11",
"Wabbajack.Networking.Http.Interfaces": "0.3.11"
"Wabbajack.DTOs": "0.3.12",
"Wabbajack.Networking.Http.Interfaces": "0.3.12"
},
"runtime": {
"Wabbajack.Networking.GitHub.dll": {}
}
},
"Wabbajack.Networking.Http/0.3.11": {
"Wabbajack.Networking.Http/0.3.12": {
"dependencies": {
"Microsoft.Extensions.DependencyInjection": "9.0.1",
"Microsoft.Extensions.DependencyInjection.Abstractions": "9.0.1",
"Microsoft.Extensions.Http": "9.0.1",
"Microsoft.Extensions.Logging": "9.0.1",
"Wabbajack.Configuration": "0.3.11",
"Wabbajack.Downloaders.Interfaces": "0.3.11",
"Wabbajack.Hashing.xxHash64": "0.3.11",
"Wabbajack.Networking.Http.Interfaces": "0.3.11",
"Wabbajack.Paths": "0.3.11",
"Wabbajack.Paths.IO": "0.3.11"
"Wabbajack.Configuration": "0.3.12",
"Wabbajack.Downloaders.Interfaces": "0.3.12",
"Wabbajack.Hashing.xxHash64": "0.3.12",
"Wabbajack.Networking.Http.Interfaces": "0.3.12",
"Wabbajack.Paths": "0.3.12",
"Wabbajack.Paths.IO": "0.3.12"
},
"runtime": {
"Wabbajack.Networking.Http.dll": {}
}
},
"Wabbajack.Networking.Http.Interfaces/0.3.11": {
"Wabbajack.Networking.Http.Interfaces/0.3.12": {
"dependencies": {
"Wabbajack.Hashing.xxHash64": "0.3.11"
"Wabbajack.Hashing.xxHash64": "0.3.12"
},
"runtime": {
"Wabbajack.Networking.Http.Interfaces.dll": {}
}
},
"Wabbajack.Networking.NexusApi/0.3.11": {
"Wabbajack.Networking.NexusApi/0.3.12": {
"dependencies": {
"Microsoft.Extensions.DependencyInjection": "9.0.1",
"Microsoft.Extensions.DependencyInjection.Abstractions": "9.0.1",
"Microsoft.Extensions.Logging.Abstractions": "9.0.1",
"Wabbajack.DTOs": "0.3.11",
"Wabbajack.Networking.Http": "0.3.11",
"Wabbajack.Networking.Http.Interfaces": "0.3.11",
"Wabbajack.Networking.WabbajackClientApi": "0.3.11"
"Wabbajack.DTOs": "0.3.12",
"Wabbajack.Networking.Http": "0.3.12",
"Wabbajack.Networking.Http.Interfaces": "0.3.12",
"Wabbajack.Networking.WabbajackClientApi": "0.3.12"
},
"runtime": {
"Wabbajack.Networking.NexusApi.dll": {}
}
},
"Wabbajack.Networking.WabbajackClientApi/0.3.11": {
"Wabbajack.Networking.WabbajackClientApi/0.3.12": {
"dependencies": {
"Microsoft.Extensions.DependencyInjection": "9.0.1",
"Microsoft.Extensions.DependencyInjection.Abstractions": "9.0.1",
"Microsoft.Extensions.Logging.Abstractions": "9.0.1",
"Octokit": "14.0.0",
"Wabbajack.Common": "0.3.11",
"Wabbajack.DTOs": "0.3.11",
"Wabbajack.Paths.IO": "0.3.11",
"Wabbajack.VFS.Interfaces": "0.3.11",
"Wabbajack.Common": "0.3.12",
"Wabbajack.DTOs": "0.3.12",
"Wabbajack.Paths.IO": "0.3.12",
"Wabbajack.VFS.Interfaces": "0.3.12",
"YamlDotNet": "16.3.0"
},
"runtime": {
"Wabbajack.Networking.WabbajackClientApi.dll": {}
}
},
"Wabbajack.Paths/0.3.11": {
"Wabbajack.Paths/0.3.12": {
"runtime": {
"Wabbajack.Paths.dll": {}
}
},
"Wabbajack.Paths.IO/0.3.11": {
"Wabbajack.Paths.IO/0.3.12": {
"dependencies": {
"Wabbajack.Paths": "0.3.11",
"Wabbajack.Paths": "0.3.12",
"shortid": "4.0.0"
},
"runtime": {
"Wabbajack.Paths.IO.dll": {}
}
},
"Wabbajack.RateLimiter/0.3.11": {
"Wabbajack.RateLimiter/0.3.12": {
"runtime": {
"Wabbajack.RateLimiter.dll": {}
}
},
"Wabbajack.Server.Lib/0.3.11": {
"Wabbajack.Server.Lib/0.3.12": {
"dependencies": {
"FluentFTP": "52.0.0",
"Microsoft.Extensions.DependencyInjection": "9.0.1",
@@ -2264,58 +2264,58 @@
"Nettle": "3.0.0",
"Newtonsoft.Json": "13.0.3",
"SixLabors.ImageSharp": "3.1.6",
"Wabbajack.Common": "0.3.11",
"Wabbajack.Networking.Http.Interfaces": "0.3.11",
"Wabbajack.Services.OSIntegrated": "0.3.11"
"Wabbajack.Common": "0.3.12",
"Wabbajack.Networking.Http.Interfaces": "0.3.12",
"Wabbajack.Services.OSIntegrated": "0.3.12"
},
"runtime": {
"Wabbajack.Server.Lib.dll": {}
}
},
"Wabbajack.Services.OSIntegrated/0.3.11": {
"Wabbajack.Services.OSIntegrated/0.3.12": {
"dependencies": {
"DeviceId": "6.8.0",
"Microsoft.Extensions.DependencyInjection": "9.0.1",
"Microsoft.Extensions.DependencyInjection.Abstractions": "9.0.1",
"Newtonsoft.Json": "13.0.3",
"SixLabors.ImageSharp": "3.1.6",
"Wabbajack.Compiler": "0.3.11",
"Wabbajack.Downloaders.Dispatcher": "0.3.11",
"Wabbajack.Installer": "0.3.11",
"Wabbajack.Networking.BethesdaNet": "0.3.11",
"Wabbajack.Networking.Discord": "0.3.11",
"Wabbajack.VFS": "0.3.11"
"Wabbajack.Compiler": "0.3.12",
"Wabbajack.Downloaders.Dispatcher": "0.3.12",
"Wabbajack.Installer": "0.3.12",
"Wabbajack.Networking.BethesdaNet": "0.3.12",
"Wabbajack.Networking.Discord": "0.3.12",
"Wabbajack.VFS": "0.3.12"
},
"runtime": {
"Wabbajack.Services.OSIntegrated.dll": {}
}
},
"Wabbajack.VFS/0.3.11": {
"Wabbajack.VFS/0.3.12": {
"dependencies": {
"Microsoft.Extensions.DependencyInjection": "9.0.1",
"Microsoft.Extensions.DependencyInjection.Abstractions": "9.0.1",
"Microsoft.Extensions.Logging.Abstractions": "9.0.1",
"SixLabors.ImageSharp": "3.1.6",
"System.Data.SQLite.Core": "1.0.119",
"Wabbajack.Common": "0.3.11",
"Wabbajack.FileExtractor": "0.3.11",
"Wabbajack.Hashing.PHash": "0.3.11",
"Wabbajack.Hashing.xxHash64": "0.3.11",
"Wabbajack.Paths": "0.3.11",
"Wabbajack.Paths.IO": "0.3.11",
"Wabbajack.VFS.Interfaces": "0.3.11"
"Wabbajack.Common": "0.3.12",
"Wabbajack.FileExtractor": "0.3.12",
"Wabbajack.Hashing.PHash": "0.3.12",
"Wabbajack.Hashing.xxHash64": "0.3.12",
"Wabbajack.Paths": "0.3.12",
"Wabbajack.Paths.IO": "0.3.12",
"Wabbajack.VFS.Interfaces": "0.3.12"
},
"runtime": {
"Wabbajack.VFS.dll": {}
}
},
"Wabbajack.VFS.Interfaces/0.3.11": {
"Wabbajack.VFS.Interfaces/0.3.12": {
"dependencies": {
"Microsoft.Extensions.DependencyInjection": "9.0.1",
"Microsoft.Extensions.DependencyInjection.Abstractions": "9.0.1",
"Wabbajack.DTOs": "0.3.11",
"Wabbajack.Hashing.xxHash64": "0.3.11",
"Wabbajack.Paths": "0.3.11"
"Wabbajack.DTOs": "0.3.12",
"Wabbajack.Hashing.xxHash64": "0.3.12",
"Wabbajack.Paths": "0.3.12"
},
"runtime": {
"Wabbajack.VFS.Interfaces.dll": {}
@@ -2332,7 +2332,7 @@
}
},
"libraries": {
"jackify-engine/0.3.11": {
"jackify-engine/0.3.12": {
"type": "project",
"serviceable": false,
"sha512": ""
@@ -3021,202 +3021,202 @@
"path": "yamldotnet/16.3.0",
"hashPath": "yamldotnet.16.3.0.nupkg.sha512"
},
"Wabbajack.CLI.Builder/0.3.11": {
"Wabbajack.CLI.Builder/0.3.12": {
"type": "project",
"serviceable": false,
"sha512": ""
},
"Wabbajack.Common/0.3.11": {
"Wabbajack.Common/0.3.12": {
"type": "project",
"serviceable": false,
"sha512": ""
},
"Wabbajack.Compiler/0.3.11": {
"Wabbajack.Compiler/0.3.12": {
"type": "project",
"serviceable": false,
"sha512": ""
},
"Wabbajack.Compression.BSA/0.3.11": {
"Wabbajack.Compression.BSA/0.3.12": {
"type": "project",
"serviceable": false,
"sha512": ""
},
"Wabbajack.Compression.Zip/0.3.11": {
"Wabbajack.Compression.Zip/0.3.12": {
"type": "project",
"serviceable": false,
"sha512": ""
},
"Wabbajack.Configuration/0.3.11": {
"Wabbajack.Configuration/0.3.12": {
"type": "project",
"serviceable": false,
"sha512": ""
},
"Wabbajack.Downloaders.Bethesda/0.3.11": {
"Wabbajack.Downloaders.Bethesda/0.3.12": {
"type": "project",
"serviceable": false,
"sha512": ""
},
"Wabbajack.Downloaders.Dispatcher/0.3.11": {
"Wabbajack.Downloaders.Dispatcher/0.3.12": {
"type": "project",
"serviceable": false,
"sha512": ""
},
"Wabbajack.Downloaders.GameFile/0.3.11": {
"Wabbajack.Downloaders.GameFile/0.3.12": {
"type": "project",
"serviceable": false,
"sha512": ""
},
"Wabbajack.Downloaders.GoogleDrive/0.3.11": {
"Wabbajack.Downloaders.GoogleDrive/0.3.12": {
"type": "project",
"serviceable": false,
"sha512": ""
},
"Wabbajack.Downloaders.Http/0.3.11": {
"Wabbajack.Downloaders.Http/0.3.12": {
"type": "project",
"serviceable": false,
"sha512": ""
},
"Wabbajack.Downloaders.Interfaces/0.3.11": {
"Wabbajack.Downloaders.Interfaces/0.3.12": {
"type": "project",
"serviceable": false,
"sha512": ""
},
"Wabbajack.Downloaders.IPS4OAuth2Downloader/0.3.11": {
"Wabbajack.Downloaders.IPS4OAuth2Downloader/0.3.12": {
"type": "project",
"serviceable": false,
"sha512": ""
},
"Wabbajack.Downloaders.Manual/0.3.11": {
"Wabbajack.Downloaders.Manual/0.3.12": {
"type": "project",
"serviceable": false,
"sha512": ""
},
"Wabbajack.Downloaders.MediaFire/0.3.11": {
"Wabbajack.Downloaders.MediaFire/0.3.12": {
"type": "project",
"serviceable": false,
"sha512": ""
},
"Wabbajack.Downloaders.Mega/0.3.11": {
"Wabbajack.Downloaders.Mega/0.3.12": {
"type": "project",
"serviceable": false,
"sha512": ""
},
"Wabbajack.Downloaders.ModDB/0.3.11": {
"Wabbajack.Downloaders.ModDB/0.3.12": {
"type": "project",
"serviceable": false,
"sha512": ""
},
"Wabbajack.Downloaders.Nexus/0.3.11": {
"Wabbajack.Downloaders.Nexus/0.3.12": {
"type": "project",
"serviceable": false,
"sha512": ""
},
"Wabbajack.Downloaders.VerificationCache/0.3.11": {
"Wabbajack.Downloaders.VerificationCache/0.3.12": {
"type": "project",
"serviceable": false,
"sha512": ""
},
"Wabbajack.Downloaders.WabbajackCDN/0.3.11": {
"Wabbajack.Downloaders.WabbajackCDN/0.3.12": {
"type": "project",
"serviceable": false,
"sha512": ""
},
"Wabbajack.DTOs/0.3.11": {
"Wabbajack.DTOs/0.3.12": {
"type": "project",
"serviceable": false,
"sha512": ""
},
"Wabbajack.FileExtractor/0.3.11": {
"Wabbajack.FileExtractor/0.3.12": {
"type": "project",
"serviceable": false,
"sha512": ""
},
"Wabbajack.Hashing.PHash/0.3.11": {
"Wabbajack.Hashing.PHash/0.3.12": {
"type": "project",
"serviceable": false,
"sha512": ""
},
"Wabbajack.Hashing.xxHash64/0.3.11": {
"Wabbajack.Hashing.xxHash64/0.3.12": {
"type": "project",
"serviceable": false,
"sha512": ""
},
"Wabbajack.Installer/0.3.11": {
"Wabbajack.Installer/0.3.12": {
"type": "project",
"serviceable": false,
"sha512": ""
},
"Wabbajack.IO.Async/0.3.11": {
"Wabbajack.IO.Async/0.3.12": {
"type": "project",
"serviceable": false,
"sha512": ""
},
"Wabbajack.Networking.BethesdaNet/0.3.11": {
"Wabbajack.Networking.BethesdaNet/0.3.12": {
"type": "project",
"serviceable": false,
"sha512": ""
},
"Wabbajack.Networking.Discord/0.3.11": {
"Wabbajack.Networking.Discord/0.3.12": {
"type": "project",
"serviceable": false,
"sha512": ""
},
"Wabbajack.Networking.GitHub/0.3.11": {
"Wabbajack.Networking.GitHub/0.3.12": {
"type": "project",
"serviceable": false,
"sha512": ""
},
"Wabbajack.Networking.Http/0.3.11": {
"Wabbajack.Networking.Http/0.3.12": {
"type": "project",
"serviceable": false,
"sha512": ""
},
"Wabbajack.Networking.Http.Interfaces/0.3.11": {
"Wabbajack.Networking.Http.Interfaces/0.3.12": {
"type": "project",
"serviceable": false,
"sha512": ""
},
"Wabbajack.Networking.NexusApi/0.3.11": {
"Wabbajack.Networking.NexusApi/0.3.12": {
"type": "project",
"serviceable": false,
"sha512": ""
},
"Wabbajack.Networking.WabbajackClientApi/0.3.11": {
"Wabbajack.Networking.WabbajackClientApi/0.3.12": {
"type": "project",
"serviceable": false,
"sha512": ""
},
"Wabbajack.Paths/0.3.11": {
"Wabbajack.Paths/0.3.12": {
"type": "project",
"serviceable": false,
"sha512": ""
},
"Wabbajack.Paths.IO/0.3.11": {
"Wabbajack.Paths.IO/0.3.12": {
"type": "project",
"serviceable": false,
"sha512": ""
},
"Wabbajack.RateLimiter/0.3.11": {
"Wabbajack.RateLimiter/0.3.12": {
"type": "project",
"serviceable": false,
"sha512": ""
},
"Wabbajack.Server.Lib/0.3.11": {
"Wabbajack.Server.Lib/0.3.12": {
"type": "project",
"serviceable": false,
"sha512": ""
},
"Wabbajack.Services.OSIntegrated/0.3.11": {
"Wabbajack.Services.OSIntegrated/0.3.12": {
"type": "project",
"serviceable": false,
"sha512": ""
},
"Wabbajack.VFS/0.3.11": {
"Wabbajack.VFS/0.3.12": {
"type": "project",
"serviceable": false,
"sha512": ""
},
"Wabbajack.VFS.Interfaces/0.3.11": {
"Wabbajack.VFS.Interfaces/0.3.12": {
"type": "project",
"serviceable": false,
"sha512": ""

Binary file not shown.