diff --git a/apps/readest-app/package.json b/apps/readest-app/package.json index bb99808a..8b1904b9 100644 --- a/apps/readest-app/package.json +++ b/apps/readest-app/package.json @@ -52,8 +52,8 @@ "copy-pdfjs-js": "cpx \"../../packages/foliate-js/node_modules/pdfjs-dist/legacy/build/{pdf.worker.min.mjs,pdf.min.mjs,pdf.d.mts}\" ./public/vendor/pdfjs", "copy-pdfjs-wasm": "cpx \"../../packages/foliate-js/node_modules/pdfjs-dist/wasm/*\" ./public/vendor/pdfjs", "copy-pdfjs-fonts": "cpx \"../../packages/foliate-js/node_modules/pdfjs-dist/{cmaps,standard_fonts}/*\" ./public/vendor/pdfjs", - "copy-flatten-pdfjs-annotation-layer-css": "npx postcss \"../../packages/foliate-js/vendor/pdfjs/annotation_layer_builder.css\" --no-map -u postcss-nested > ./public/vendor/pdfjs/annotation_layer_builder.css", - "copy-flatten-pdfjs-text-layer-css": "npx postcss \"../../packages/foliate-js/vendor/pdfjs/text_layer_builder.css\" --no-map -u postcss-nested > ./public/vendor/pdfjs/text_layer_builder.css", + "copy-flatten-pdfjs-annotation-layer-css": "pnpm exec postcss \"../../packages/foliate-js/vendor/pdfjs/annotation_layer_builder.css\" --no-map -u postcss-nested > ./public/vendor/pdfjs/annotation_layer_builder.css", + "copy-flatten-pdfjs-text-layer-css": "pnpm exec postcss \"../../packages/foliate-js/vendor/pdfjs/text_layer_builder.css\" --no-map -u postcss-nested > ./public/vendor/pdfjs/text_layer_builder.css", "copy-flatten-pdfjs-css": "pnpm copy-flatten-pdfjs-annotation-layer-css && pnpm copy-flatten-pdfjs-text-layer-css", "copy-pdfjs": "pnpm copy-pdfjs-js && pnpm copy-pdfjs-wasm && pnpm copy-pdfjs-fonts && pnpm copy-flatten-pdfjs-css", "copy-simplecc": "cpx \"../../packages/simplecc-wasm/dist/web/*\" ./public/vendor/simplecc", diff --git a/apps/readest-app/src/app/review-editor/ReviewEditorLauncher.tsx b/apps/readest-app/src/app/review-editor/ReviewEditorLauncher.tsx index 1580b8e2..d5e638b1 100644 --- a/apps/readest-app/src/app/review-editor/ReviewEditorLauncher.tsx +++ b/apps/readest-app/src/app/review-editor/ReviewEditorLauncher.tsx @@ -163,6 +163,7 @@ type TranslationSourcePayload = { type TranslationJob = { id?: string; status?: string; + source_name?: string; output_epub?: string; output_session_id?: string; error?: string; diff --git a/scripts/open-readest-latest.ps1 b/scripts/open-readest-latest.ps1 index c1be85f3..3298c686 100644 --- a/scripts/open-readest-latest.ps1 +++ b/scripts/open-readest-latest.ps1 @@ -71,6 +71,18 @@ function Start-ReadestWeb { Invoke-Checked "pnpm" @("--filter", "@readest/readest-app", "dev-web") } +function Test-SubmoduleCheckout { + param([string]$RelativePath) + + $fullPath = Join-Path $RepoRoot $RelativePath + if (-not (Test-Path -LiteralPath (Join-Path $fullPath ".git"))) { + return $false + } + + & git -C $fullPath rev-parse --is-inside-work-tree 2>$null | Out-Null + return $LASTEXITCODE -eq 0 +} + function Assert-CleanWorktree { $status = (& git -C $RepoRoot status --porcelain) if ($status) { @@ -130,7 +142,24 @@ try { $afterHead = (& git -C $RepoRoot rev-parse HEAD).Trim() Write-Step "Updating submodules" - Invoke-Checked "git" @("-C", $RepoRoot, "submodule", "update", "--init", "--recursive") + $requiredSubmodules = @( + "packages/foliate-js", + "packages/simplecc-wasm", + "packages/js-mdict", + "apps/readest-app/src-tauri/plugins/tauri-plugin-turso" + ) + $missingSubmodules = @($requiredSubmodules | Where-Object { -not (Test-SubmoduleCheckout $_) }) + if ($missingSubmodules.Count -gt 0) { + $submoduleArgs = @( + "-C", $RepoRoot, + "-c", "http.version=HTTP/1.1", + "-c", "submodule.fetchJobs=1", + "submodule", "update", "--init", "--depth", "1", "--" + ) + $missingSubmodules + Invoke-Checked "git" $submoduleArgs + } else { + Write-Host "Required submodules are already initialized." + } $changedFiles = @() if ($beforeHead -ne $afterHead) { @@ -148,6 +177,23 @@ try { Invoke-Checked "pnpm" @("install", "--frozen-lockfile") } + Write-Step "Building local submodule dependencies" + Invoke-Checked "pnpm" @( + "--dir", + (Join-Path $RepoRoot "apps\readest-app\src-tauri\plugins\tauri-plugin-turso"), + "install", + "--ignore-workspace", + "--frozen-lockfile" + ) + Invoke-Checked "pnpm" @( + "--dir", + (Join-Path $RepoRoot "apps\readest-app\src-tauri\plugins\tauri-plugin-turso"), + "build" + ) + + Write-Step "Preparing browser runtime assets" + Invoke-Checked "pnpm" @("--filter", "@readest/readest-app", "setup-vendors") + if ($CheckOnly) { Write-Step "Launcher check complete" exit 0