fix: externalize lzma for import build
Local Build and Deploy / deploy (push) Successful in 49s

This commit is contained in:
Simo committed 2026-07-12 19:15:08 +02:00
1 parent eb759f54bf
commit c0ffc74f9b
52 files changed
+1 -52

No files matched your search

+1 -1
View File
@@ -30,7 +30,7 @@ const securityHeaders = [
const nextConfig: NextConfig = { const nextConfig: NextConfig = {
turbopack: { root: import.meta.dirname }, turbopack: { root: import.meta.dirname },
serverExternalPackages: ["@prisma/adapter-mariadb", "mariadb", "@prisma/client"], serverExternalPackages: ["@prisma/adapter-mariadb", "mariadb", "@prisma/client", "lzma"],
// Compress responses with gzip // Compress responses with gzip
compress: true, compress: true,
-1
View File
@@ -77,4 +77,3 @@ export const POST = withAdmin({ permission: PERMS.ASSETS_IMPORT }, async (reques
return apiOk() return apiOk()
}) })
@@ -69,4 +69,3 @@ export const POST = withAdmin({ permission: PERMS.ASSETS_IMPORT }, async (reques
}, },
}) })
}) })
@@ -50,4 +50,3 @@ export const GET = withAdmin({ permission: PERMS.ASSETS_IMPORT }, async (request
}, },
}) })
}) })
-1
View File
@@ -92,4 +92,3 @@ export const DELETE = withAdmin({ permission: PERMS.ASSETS_IMPORT }, async (requ
return apiOk({ id }) return apiOk({ id })
}) })
@@ -43,4 +43,3 @@ export const POST = withAdmin({ permission: PERMS.ASSETS_IMPORT }, async (reques
}, },
}) })
}) })
@@ -26,4 +26,3 @@ export const DELETE = withAdmin({ permission: PERMS.ASSETS_IMPORT }, async (requ
}) })
return apiOk({ lib, deletedFile }) return apiOk({ lib, deletedFile })
}) })
@@ -47,4 +47,3 @@ export const POST = withAdmin({ permission: PERMS.ASSETS_IMPORT }, async (reques
}, },
}) })
}) })
@@ -18,4 +18,3 @@ export const GET = withAdmin({ permission: PERMS.ASSETS_IMPORT }, async (request
}) })
return apiOk({ items, meta }) return apiOk({ items, meta })
}) })
@@ -47,4 +47,3 @@ export const POST = withAdmin({ permission: PERMS.ASSETS_IMPORT }, async (reques
}, },
}) })
}) })
@@ -28,4 +28,3 @@ export const DELETE = withAdmin({ permission: PERMS.ASSETS_IMPORT }, async (requ
}) })
return apiOk({ idOrLib, removed, deletedFile }) return apiOk({ idOrLib, removed, deletedFile })
}) })
@@ -228,4 +228,3 @@ export const POST = withAdmin({ permission: PERMS.ASSETS_IMPORT }, async (reques
}, },
}) })
}) })
@@ -195,4 +195,3 @@ export const POST = withAdmin({ permission: PERMS.ASSETS_IMPORT }, async (reques
}, },
}) })
}) })
@@ -163,4 +163,3 @@ export const PUT = withAdmin(
return apiOk({ dimensions: dims }) return apiOk({ dimensions: dims })
}, },
) )
@@ -43,4 +43,3 @@ export const POST = withAdmin({ permission: PERMS.ASSETS_IMPORT }, async (reques
}, },
}) })
}) })
@@ -16,4 +16,3 @@ export const GET = withAdmin({ permission: PERMS.ASSETS_IMPORT }, async (request
}, },
}) })
}) })
-1
View File
@@ -24,4 +24,3 @@ export const DELETE = withAdmin({ permission: PERMS.ASSETS_IMPORT }, async (requ
}) })
return apiOk({ lib, deletedFile }) return apiOk({ lib, deletedFile })
}) })
@@ -9,4 +9,3 @@ export const POST = withAdmin({ permission: PERMS.ASSETS_IMPORT }, async () => {
const summary = await auditImportedAssets() const summary = await auditImportedAssets()
return apiOk(summary as unknown as Record<string, unknown>) return apiOk(summary as unknown as Record<string, unknown>)
}) })
-1
View File
@@ -125,4 +125,3 @@ export const POST = withAdmin({ permission: PERMS.ASSETS_IMPORT }, async (reques
}, },
}) })
}) })
-1
View File
@@ -49,4 +49,3 @@ export function handleApiError(error: unknown): Response {
) )
return apiError('Internal server error', 500) return apiError('Internal server error', 500)
} }
-1
View File
@@ -1,2 +1 @@
export * from './catalog-categories/index' export * from './catalog-categories/index'
-1
View File
@@ -650,4 +650,3 @@ export const SUPREME_CATEGORIES: SupremeCategory[] = [
layout: 'default_3x3', layout: 'default_3x3',
}, },
] ]
-1
View File
@@ -61,4 +61,3 @@ export function matchEra(revision: number): ReleaseEra {
} }
return RELEASE_ERAS[RELEASE_ERAS.length - 1] return RELEASE_ERAS[RELEASE_ERAS.length - 1]
} }
-1
View File
@@ -94,4 +94,3 @@ export function extractPrefix(itemName: string): string | null {
const match = normalized.match(/^([a-z]{2,})/) const match = normalized.match(/^([a-z]{2,})/)
return match ? match[1] : null return match ? match[1] : null
} }
-1
View File
@@ -61,4 +61,3 @@ export function extractFurniIconPng(nitro: Buffer): Buffer | null {
return null return null
} }
} }
-1
View File
@@ -149,4 +149,3 @@ describe('clone-import', () => {
expect(r.error).toMatch(/items_base insert failed/) expect(r.error).toMatch(/items_base insert failed/)
}) })
}) })
-1
View File
@@ -323,4 +323,3 @@ export async function getClonableClassnames(source: CloneSource): Promise<string
} }
return all.filter((e) => !have.has(e.classname)).map((e) => e.classname) return all.filter((e) => !have.has(e.classname)).map((e) => e.classname)
} }
@@ -63,4 +63,3 @@ describe('importClothingSet', () => {
expect(r.ok).toBe(false) expect(r.ok).toBe(false)
}) })
}) })
-1
View File
@@ -202,4 +202,3 @@ export async function getClothingSetStats(): Promise<ClothingSetStats> {
return { total, present, missing: total - present } return { total, present, missing: total - present }
} }
-1
View File
@@ -53,4 +53,3 @@ describe('effect-import.importSingleEffect', () => {
expect(mergeEffect).not.toHaveBeenCalled() expect(mergeEffect).not.toHaveBeenCalled()
}) })
}) })
-1
View File
@@ -135,4 +135,3 @@ export async function getEffectStats(): Promise<{
const imported = official.filter((e) => localLibs.has(e.lib)).length const imported = official.filter((e) => localLibs.has(e.lib)).length
return { official: official.length, imported, missing: official.length - imported } return { official: official.length, imported, missing: official.length - imported }
} }
-1
View File
@@ -65,4 +65,3 @@ describe('figure-import', () => {
expect(r.error).toContain('conversion') expect(r.error).toContain('conversion')
}) })
}) })
-1
View File
@@ -126,4 +126,3 @@ export async function getFigureStats(): Promise<{
).length ).length
return { total: libs.length, imported, missing: libs.length - imported } return { total: libs.length, imported, missing: libs.length - imported }
} }
-1
View File
@@ -44,4 +44,3 @@ describe('buildItemsBaseEnrichmentUpdate', () => {
expect(update.values).toEqual([2, 3, 1.5, '1', '0', '1', '1', 'default', 123]) expect(update.values).toEqual([2, 3, 1.5, '1', '0', '1', '1', 'default', 123])
}) })
}) })
-1
View File
@@ -157,4 +157,3 @@ export async function batchLookupByClassnames(
return result return result
} }
@@ -44,4 +44,3 @@ describe('png-decode', () => {
expect(() => decodePng(Buffer.from([1, 2, 3, 4, 5, 6, 7, 8]))).toThrow('not a PNG') expect(() => decodePng(Buffer.from([1, 2, 3, 4, 5, 6, 7, 8]))).toThrow('not a PNG')
}) })
}) })
-1
View File
@@ -133,4 +133,3 @@ export function cropRgba(
} }
return out return out
} }
@@ -19,4 +19,3 @@ describe('resolveGamedataFile', () => {
expect(resolveGamedataFile(absolutePath, 'FigureMap.json')).toBe(absolutePath) expect(resolveGamedataFile(absolutePath, 'FigureMap.json')).toBe(absolutePath)
}) })
}) })
@@ -26,4 +26,3 @@ export function resolveGamedataFile(url: string, fallbackName: string): string {
if (existsSync(/*turbopackIgnore: true*/ gamedata)) return gamedata if (existsSync(/*turbopackIgnore: true*/ gamedata)) return gamedata
return configured return configured
} }
@@ -18,4 +18,3 @@ describe('import/core/download validators', () => {
expect(validatePngBytes(Buffer.from([1, 2, 3, 4, 5, 6, 7, 8]))).toBe(false) expect(validatePngBytes(Buffer.from([1, 2, 3, 4, 5, 6, 7, 8]))).toBe(false)
}) })
}) })
-1
View File
@@ -65,4 +65,3 @@ export async function downloadFile(
} }
return { ok: false, size: 0 } return { ok: false, size: 0 }
} }
@@ -41,4 +41,3 @@ describe('import/core/gamedata-json', () => {
expect(d.effects).toHaveLength(4) // 1 seed + 3 appended, none lost expect(d.effects).toHaveLength(4) // 1 seed + 3 appended, none lost
}) })
}) })
@@ -61,4 +61,3 @@ export async function writeGamedataJsonAtomic(filePath: string, data: unknown):
await fs.writeFile(/*turbopackIgnore: true*/ tmp, JSON.stringify(data, null, 2), 'utf-8') await fs.writeFile(/*turbopackIgnore: true*/ tmp, JSON.stringify(data, null, 2), 'utf-8')
await fs.rename(/*turbopackIgnore: true*/ tmp, filePath) await fs.rename(/*turbopackIgnore: true*/ tmp, filePath)
} }
@@ -29,4 +29,3 @@ describe('import/core/gordon', () => {
await expect(resolveGordonBuildUrl()).rejects.toThrow() await expect(resolveGordonBuildUrl()).rejects.toThrow()
}) })
}) })
-1
View File
@@ -20,4 +20,3 @@ export async function resolveGordonBuildUrl(): Promise<string> {
gordonCache = { url: normalized, ts: now } gordonCache = { url: normalized, ts: now }
return normalized return normalized
} }
@@ -26,4 +26,3 @@ describe('import/core/sse-batch', () => {
expect(events.at(-1)).toMatchObject({ type: 'batch_complete', succeeded: 2, failed: 1 }) expect(events.at(-1)).toMatchObject({ type: 'batch_complete', succeeded: 2, failed: 1 })
}) })
}) })
@@ -103,4 +103,3 @@ export function runSseBatch<T>(opts: RunSseBatchOptions<T>): Response {
}, },
}) })
} }
-1
View File
@@ -72,4 +72,3 @@ export async function scanAllNitroFiles(): Promise<Set<string>> {
return new Set() return new Set()
} }
} }
-1
View File
@@ -352,4 +352,3 @@ export function getPetIconPng(lib: string): Buffer | null {
return null return null
} }
} }
-1
View File
@@ -46,4 +46,3 @@ describe('pet-import.importSinglePet', () => {
expect(r.error).toContain('conversion') expect(r.error).toContain('conversion')
}) })
}) })
-1
View File
@@ -100,4 +100,3 @@ export function getPetStats(): { total: number; imported: number; missing: numbe
).length ).length
return { total: CANONICAL_PETS.length, imported, missing: CANONICAL_PETS.length - imported } return { total: CANONICAL_PETS.length, imported, missing: CANONICAL_PETS.length - imported }
} }
-1
View File
@@ -16,4 +16,3 @@ export interface ImportEffectResult {
warnings: string[] warnings: string[]
error?: string error?: string
} }