Files
BlueArchiveToolkit/infrastructure/src/lib.rs
T

144 lines
6.9 KiB
Rust

//! # BAT Infrastructure - 基础设施层
//!
//! 提供技术实现
//!
//! 包含:
//! - CAS 存储实现
//! - 下载器
//! - 解析器
#![warn(missing_docs)]
#![warn(clippy::all)]
pub mod cas;
mod curl_transfer;
pub mod downloader;
pub mod import;
pub mod localized_patch;
pub mod official_changes;
pub mod official_download;
pub mod official_game_main_config;
pub mod official_launcher;
pub mod official_parse;
pub mod official_pull;
pub mod official_repository;
pub mod official_sync;
pub mod official_textunit_queue;
pub mod official_update;
pub mod patch_ops;
pub mod path_security;
pub mod release_flow;
pub mod resources;
pub mod translation_tasks;
mod zip_validation;
pub use cas::FileSystemCasRepository;
pub use curl_transfer::{
redact_proxy_url, resolve_curl_proxy, CurlProxyConfig, CurlProxyMode, ResolvedCurlProxy,
};
pub use downloader::{
DownloadScheduler, DownloaderBackend, DEFAULT_DOWNLOAD_CONCURRENCY, MAX_DOWNLOAD_CONCURRENCY,
MIN_DOWNLOAD_CONCURRENCY,
};
pub use import::{
BundleSource, ImportedResource, ResourceImportCategory, ResourceImportReport,
ResourceImportService,
};
pub use localized_patch::{
read_localized_patch_manifest_at, read_localized_version_state, LocalizedPatchConfig,
LocalizedPatchFile, LocalizedPatchIntegrity, LocalizedPatchManifest, LocalizedPatchOperation,
LocalizedPatchReport, LocalizedPatchRollbackInfo, LocalizedPatchService,
LocalizedTextAssetPatch, LocalizedVersionState, LOCALIZED_CURRENT_LINK,
LOCALIZED_PATCH_MANIFEST_FILE, LOCALIZED_PATCH_MANIFEST_VERSION, LOCALIZED_STAGING_DIR,
LOCALIZED_VERSIONS_DIR, LOCALIZED_VERSION_STATE_FILE,
};
pub use official_changes::{
read_resource_change_set_at, write_crowdin_translation_handoff_at,
write_official_resource_change_handoff, write_resource_change_set_at,
CrowdinTranslationHandoff, OfficialResourceChange, OfficialResourceChangeHandoffReport,
OfficialResourceChangeKind, OfficialResourceChangeSet, OfficialResourceChangeSummary,
OfficialResourceDescriptor, TranslationHandoffProvider, TranslationHandoffResource,
TranslationHandoffStatus, CROWDIN_TRANSLATION_HANDOFF_FILE,
CROWDIN_TRANSLATION_HANDOFF_VERSION, OFFICIAL_RESOURCE_CHANGES_FILE,
OFFICIAL_RESOURCE_CHANGES_VERSION,
};
pub use official_download::{
read_download_manifest_at, DownloadError, OfficialDownloadManifest,
OfficialDownloadManifestEntry, OfficialLocalManifestAuditItem,
OfficialLocalManifestAuditReport, OfficialLocalManifestAuditStatus,
OfficialLocalVerificationReport, OfficialResourceHashAlgorithm,
OfficialResourceHashVerification, OfficialResourcePullItem, OfficialResourcePullProgress,
OfficialResourcePullProgressKind, OfficialResourcePullReport, OfficialResourcePullService,
OfficialResourcePullStatus, OfficialResourceVerification,
};
pub use official_game_main_config::OfficialGameMainConfigBootstrapService;
pub use official_launcher::{
is_official_launcher_package_url, launcher_api_url, launcher_authorization_header,
OfficialLauncherBootstrapService, YostarJpLauncherCdnConfig, YostarJpLauncherGameConfig,
YostarJpLauncherManifestUrl, YostarJpLauncherRemoteManifest,
};
pub use official_parse::{
query_textunit_index_errors, query_textunit_index_units, read_parse_cache_at,
read_textunit_index_at, write_parse_cache_at, write_textunit_index_at, OfficialParseCache,
OfficialParseCacheEntry, OfficialParseCacheService, OfficialParseConfig, OfficialParseReport,
OfficialParseSourceFingerprint, OfficialParseSourceKind, OfficialParseStatus,
OfficialParseSummary, OfficialTextUnitIndex, OfficialTextUnitIndexError,
OfficialTextUnitIndexSummary, OfficialTextUnitIndexUnit, OfficialTextUnitQuery,
OFFICIAL_PARSE_CACHE_FILE, OFFICIAL_PARSE_CACHE_VERSION, OFFICIAL_TEXTUNIT_INDEX_FILE,
OFFICIAL_TEXTUNIT_INDEX_VERSION,
};
pub use official_pull::{
build_official_pull_plan, build_official_pull_plan_for_platform_inventory,
build_official_pull_plan_for_platforms, build_official_pull_plan_from_platform_inventory,
OfficialResourcePullPlan,
};
pub use official_repository::{
OfficialReleaseImportConfig, OfficialReleaseImportReport, OfficialReleaseImportService,
};
pub use official_sync::{
build_official_sync_plan, changed_endpoint_urls, classify_sync_decision,
default_official_platforms, OfficialSyncDecision, OfficialSyncPlan,
};
pub use official_textunit_queue::{
query_textunit_tasks, read_textunit_task_queue_at, write_crowdin_textunit_queue_at,
write_official_textunit_queues, write_textunit_task_queue_at, CrowdinTextUnitQueue,
CrowdinTextUnitQueueItem, OfficialTextUnitQueueReport, OfficialTextUnitTask,
OfficialTextUnitTaskQuery, OfficialTextUnitTaskQueue, OfficialTextUnitTaskStatus,
OfficialTextUnitTaskSummary, CROWDIN_TEXTUNIT_QUEUE_FILE, CROWDIN_TEXTUNIT_QUEUE_VERSION,
OFFICIAL_TEXTUNIT_TASK_QUEUE_FILE, OFFICIAL_TEXTUNIT_TASK_QUEUE_VERSION,
};
pub use official_update::{
cached_game_main_config_for_metadata, diff_extended_snapshot, gc_orphan_staging,
read_bootstrap_cache, read_snapshot, read_version_state, write_bootstrap_cache, write_snapshot,
write_version_state, ExtendedSnapshotDelta, GameMainConfigSnapshot, LauncherMetadataSnapshot,
LocalizedReleaseStatus, OfficialBootstrapCache, OfficialEndpointMarkerRole,
OfficialEndpointMarkerSnapshot, OfficialFailedVersionRecord, OfficialServerInfoSource,
OfficialUpdateConfig, OfficialUpdateProgress, OfficialUpdateReport, OfficialUpdateService,
OfficialUpdateSnapshot, OfficialUpdateStatus, OfficialVerificationSummary,
OfficialVersionRecord, OfficialVersionState, ResolvedBootstrap,
};
pub use patch_ops::{
apply_patch_file, apply_unityfs_field_patch_file, apply_unityfs_string_field_patch_file,
apply_unityfs_text_asset_patch_file, PatchApplyKind, PatchApplyParams, PatchApplyReport,
UnityFsFieldPatchParams, UnityFsPatchReport, UnityFsStringFieldPatchParams,
UnityFsTextAssetPatchParams,
};
pub use path_security::{
ensure_path_within_root, ensure_safe_directory_path, ensure_safe_file_target, lexical_absolute,
open_append_file, read_file_no_symlink, set_file_mode, validate_output_root,
validate_runtime_state_dir, write_file_atomic, PRIVATE_FILE_MODE, STATE_FILE_MODE,
};
pub use release_flow::ReleaseFlowStatusCode;
pub use resources::{InMemoryResourceRepository, SqliteResourceRepository};
pub use translation_tasks::{
build_translation_handoff, read_translation_handoff_at, sync_translation_task_repository_at,
write_translation_handoff_at, PersistedTranslationTask, ProviderRun, ProviderRunStatus,
SqliteTranslationTaskRepository, TranslationHandoff, TranslationJob, TranslationJobStatus,
TranslationTaskStatus, TranslationTaskSyncReport, TranslationUnit, TranslationUnitStatus,
TRANSLATION_HANDOFF_FILE, TRANSLATION_HANDOFF_SCHEMA_VERSION, TRANSLATION_TASK_REPOSITORY_FILE,
TRANSLATION_TASK_SCHEMA_VERSION,
};
/// Infrastructure 版本号
pub const VERSION: &str = env!("CARGO_PKG_VERSION");