@lvce-editor/shared-process 0.115.25 → 0.115.27

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lvce-editor/shared-process",
3
- "version": "0.115.25",
3
+ "version": "0.115.27",
4
4
  "main": "index.js",
5
5
  "type": "module",
6
6
  "keywords": [
@@ -3,6 +3,6 @@ import { fileURLToPath } from 'url'
3
3
 
4
4
  export const getBuiltinExtensionsPath = () => {
5
5
  const staticServerPath = fileURLToPath(import.meta.resolve('@lvce-editor/static-server'))
6
- const builtinExtensionsPath = join(staticServerPath, '..', '..', 'static', '5c8581c', 'extensions')
6
+ const builtinExtensionsPath = join(staticServerPath, '..', '..', 'static', 'c2f78b2', 'extensions')
7
7
  return builtinExtensionsPath
8
8
  }
@@ -56,11 +56,11 @@ export const getSetupName = () => {
56
56
  return 'Lvce-Setup'
57
57
  }
58
58
 
59
- export const version = '0.115.25'
59
+ export const version = '0.115.27'
60
60
 
61
- export const commit = '5c8581c'
61
+ export const commit = 'c2f78b2'
62
62
 
63
- export const date = '2026-09-19T12:57:04.000Z'
63
+ export const date = '2026-09-19T13:51:30.000Z'
64
64
 
65
65
  export const getVersion = () => {
66
66
  return version
@@ -2,5 +2,5 @@ import { join } from 'node:path'
2
2
  import * as Root from '../Root/Root.js'
3
3
 
4
4
  export const getPreloadUrl = () => {
5
- return join(Root.root, 'static', '5c8581c', 'packages', 'preload', 'dist', 'index.js')
5
+ return join(Root.root, 'static', 'c2f78b2', 'packages', 'preload', 'dist', 'index.js')
6
6
  }
@@ -84,7 +84,11 @@ try {
84
84
  if ($newProcess.HasExited) { throw 'Updated application exited during startup' }
85
85
  Journal 'cleanup-started'
86
86
  try {
87
- Remove-Item -LiteralPath $backup -Recurse -Force
87
+ # The backup prefix lengthens already-deep extension paths. PowerShell's
88
+ # filesystem provider needs an extended path for recursive cleanup.
89
+ $longBackup = '\\?\' + $backup
90
+ if ($backup.StartsWith('\\')) { $longBackup = '\\?\UNC\' + $backup.Substring(2) }
91
+ Remove-Item -LiteralPath $longBackup -Recurse -Force
88
92
  if ($plan.archive -eq (Join-Path ($install + '.updates') ($plan.token + '.zip'))) {
89
93
  Remove-Item -LiteralPath $plan.archive -Force -ErrorAction SilentlyContinue
90
94
  }
@@ -115,9 +119,12 @@ try {
115
119
 
116
120
  export const extract = String.raw`
117
121
  $ErrorActionPreference = 'Stop'
118
- Add-Type -AssemblyName System.IO.Compression.FileSystem
119
122
  $plan = Get-Content -LiteralPath $env:LVCE_UPDATE_PLAN -Raw | ConvertFrom-Json
120
- # ExtractToDirectory rejects entries outside the destination and does not
121
- # overwrite existing files. Preparation never modifies the running app.
122
- [IO.Compression.ZipFile]::ExtractToDirectory($plan.archive, $plan.stage)
123
+ # Windows PowerShell's .NET Framework ZIP extraction fails on deeply nested
124
+ # extension paths. The Windows inbox bsdtar supports these long paths and
125
+ # rejects parent-directory traversal by default. Never reuse a partial stage.
126
+ if (Test-Path -LiteralPath $plan.stage) { throw 'Staging directory already exists' }
127
+ [IO.Directory]::CreateDirectory($plan.stage) | Out-Null
128
+ & (Join-Path $env:SystemRoot 'System32\tar.exe') -xf $plan.archive -C $plan.stage
129
+ if ($LASTEXITCODE -ne 0) { throw "Windows update extraction failed ($LASTEXITCODE)" }
123
130
  `