- Kit CLI 由 office-kit/locate 在 Host 中定位(含 ASAR 映射与可选 root 越界检查),删除 Desktop 壳的 office-cli 与诊断文件;生产版 Desktop 由壳通过 DSH_BUNDLED_RUNTIME_ROOT 显式传入 Kit 根目录,开发版与 Web 不检查 - office-to-pdf 与 office-kit-resolver 合并为 @deepseek-ai/dsh-office-kit,由同一包定位 Kit 并提供转换服务 - Kit 缺失时 provider 照常注册,转换请求以 OfficeKitError unavailable 拒绝,之后安装 Kit 无需重载 - 类型统一使用 OfficeKit 前缀(OfficeKitRequest/Result/Priority/Key),同步消费方、文档、升级指南与 catalog - 处理 ds-review-bot 意见,并更新 unknown 断言基线 本 PR 的 snapshot 统一在这个提交里用 keyless refresh 重新生成,前 3 个提交中的 snapshot 不一定和那一步的代码对应。
24 lines
1.2 KiB
TypeScript
24 lines
1.2 KiB
TypeScript
/** The provider's actual Kit installation is the reference for engine package resolution. */
|
|
import { createRequire } from 'node:module'
|
|
import { resolveKitModule } from '../src/locate.ts'
|
|
import { expect, it } from 'vitest'
|
|
|
|
it('matches the consumer Kit installation for native and WASM engine manifests', () => {
|
|
const kitEntry = import.meta.resolve('@deepseek-ai/libreoffice-kit')
|
|
const fromKit = createRequire(kitEntry)
|
|
const kit = resolveKitModule(() => import.meta.resolve('@deepseek-ai/libreoffice-kit'))
|
|
if (kit.kind !== 'available') throw new Error('Expected the provider Kit installation')
|
|
expect(kit.entry).toBe(kitEntry)
|
|
const { resolveEnginePackage } = kit
|
|
const outcome = (resolve: (name: string) => string, name: string): string => {
|
|
try { return resolve(name) } catch (error) {
|
|
if (error instanceof Error && 'code' in error) return String(error.code)
|
|
throw error
|
|
}
|
|
}
|
|
for (const name of ['@deepseek-ai/libreoffice-kit-wasm', `@deepseek-ai/libreoffice-kit-${process.platform}-${process.arch}`]) {
|
|
const expected = outcome(name => fromKit.resolve(`${name}/package.json`), name)
|
|
expect(outcome(resolveEnginePackage, name)).toBe(expected)
|
|
}
|
|
})
|