check / check (push) Successful in 25s
Rewrites backup on the library API. backup() refreshes, fetches pending originals (and optionally thumbnails) through the pools reusing the content cache, then materialises the unchanged collections/ symlink views + per-collection JSON + sidecars from the model. A symlink failure no longer aborts the run (closes #8). failures.json reconciles against each run's attempted set — since-deleted/out-of-scope/resolved entries clear, still-failing retained, one attempt per file per run — and the exit-code contract is preserved. Model: opus-4-8
104 lines
2.3 KiB
TypeScript
104 lines
2.3 KiB
TypeScript
export const VERSION = "0.0.0";
|
|
|
|
export {
|
|
Client,
|
|
type LoginOptions,
|
|
type ClientSnapshot,
|
|
type CollectionsPage,
|
|
type FilesPage,
|
|
} from "./client.js";
|
|
export {
|
|
ApiClient,
|
|
ApiError,
|
|
DEFAULT_DOWNLOAD_TIMEOUT_MS,
|
|
DEFAULT_REQUEST_TIMEOUT_MS,
|
|
type ApiClientOptions,
|
|
type StreamOptions,
|
|
} from "./api/client.js";
|
|
export { TruncatedStreamError } from "./errors.js";
|
|
export {
|
|
DEFAULT_RETRY_OPTIONS,
|
|
isRetryable,
|
|
isSafeToReplay,
|
|
resolveRetryOptions,
|
|
withRetry,
|
|
type ResolvedRetryOptions,
|
|
type RetryOptions,
|
|
type WithRetryOptions,
|
|
} from "./retry.js";
|
|
export { unwrapAuth, type UnwrapResult } from "./auth/unwrap.js";
|
|
export {
|
|
beginLogin,
|
|
submitTOTP,
|
|
requestEmailOTP,
|
|
submitEmailOTP,
|
|
} from "./auth/login.js";
|
|
export {
|
|
Library,
|
|
DEFAULT_REFRESH_INTERVAL_SECONDS,
|
|
Album,
|
|
Photo,
|
|
type LibraryClient,
|
|
type LibraryOptions,
|
|
type LibraryStatus,
|
|
type RefreshEvent,
|
|
type RefreshProgressCallback,
|
|
type AlbumsAPI,
|
|
type PhotosAPI,
|
|
type TimelineAPI,
|
|
type PhotoFilter,
|
|
type TimelineGroup,
|
|
type GroupBy,
|
|
type ContentSource,
|
|
type ContentResult,
|
|
type ContentEvent,
|
|
type ContentOptions,
|
|
type PhotoContent,
|
|
type ThumbnailsAPI,
|
|
type ThumbnailPriority,
|
|
type EnsureOptions,
|
|
type EnsureResult,
|
|
type EnsureEvent,
|
|
runBackup,
|
|
type BackupOptions,
|
|
type BackupResult,
|
|
type BackupError,
|
|
} from "./library/index.js";
|
|
export {
|
|
RequestPools,
|
|
BoundedPool,
|
|
DEFAULT_METADATA_CONCURRENCY,
|
|
DEFAULT_CONTENT_CONCURRENCY,
|
|
DEFAULT_THUMBNAIL_CONCURRENCY,
|
|
type RequestPoolsOptions,
|
|
type Priority,
|
|
type RunOptions,
|
|
} from "./library/pools.js";
|
|
export type {
|
|
AlbumRecord,
|
|
PhotoRecord,
|
|
LibrarySnapshot,
|
|
LibraryChange,
|
|
} from "./library/records.js";
|
|
export { decryptCollection, decryptFile } from "./model/index.js";
|
|
export { downloadFile, downloadThumbnail } from "./download/index.js";
|
|
export type {
|
|
AuthorizationResponse,
|
|
KeyAttributes,
|
|
LoginChallenge,
|
|
SRPAttributes,
|
|
} from "./auth/types.js";
|
|
export type {
|
|
Collection,
|
|
CollectionType,
|
|
EnteFile,
|
|
FileBlob,
|
|
FileMetadata,
|
|
FileType,
|
|
KeyMaterial,
|
|
Microseconds,
|
|
RawCollection,
|
|
RawEnteFile,
|
|
} from "./model/types.js";
|
|
export type { DownloadResult } from "./download/index.js";
|