web-font/package.json
崮生(子虚) 5c118121ff v1.14.0: GSUB/GPOS 共享 gidLookup 查找表 + remapGid 数组化 + WF2_NOTRANSFORM 实验开关
- 优化340:buildGidLookup 提取导出,rewriteLayoutTablesForSubset 构造一次共享传入
  subsetGPOS/subsetGSUB(省每侧独立的 maxOrigGid 扫描+fill+Map 遍历,big3500 -4.2%)
- 优化342:remapGid/parseChainRuleFormat1or2 从 Map.get 改为 gidLookup 数组索引
  (~9ns→~1ns,语义等价:越界/-1 均映射为 null),GSUB 查询路径 Map 残余清零
- 实验341:woff2-encode.js 增加 WF2_NOTRANSFORM=1 环境变量开关,跳过 glyf/loca
  transform(规范合法 untransformed 路径,-13% CPU 但 +10% 体积,默认关闭不影响生产)

验证:tsc 通过;基准 30/30 PASS min ssim 0.9876 与基线一致;输出字节总量 449,440B
与基线完全一致;7 用例 sha256 字节级 IDENTICAL;leafer 渲染 7 用例 SSIM≥0.99;
24 字体结构扫描通过(6 个缺字均为原字体本身无此字形);40/40 边界输入扫描通过。
2026-08-27 07:57:32 +08:00

49 lines
1.5 KiB
JSON

{
"name": "webfont",
"private": true,
"version": "1.14.0",
"type": "module",
"scripts": {
"dev": "pnpx tsx scripts/dev-all.ts",
"dev:frontend": "vite",
"dev:backend": "pnpx tsx backend/app.ts",
"dev:backend:llrt": "pnpm build_backend && ./llrt ./dist_backend/app.cjs",
"serve:llrt": "./llrt ./dist_backend/app.cjs",
"build": "vite-ssg build",
"build_backend": "pnpx tsx scripts/build-backend.ts",
"lint:font-config": "pnpx tsx scripts/lint-font-config.ts",
"docker_build": "docker build -t llej0/web-font:${npm_package_version} -t llej0/web-font:latest .",
"docker_push": "docker push llej0/web-font:${npm_package_version} && docker push llej0/web-font:latest",
"preview": "vite preview",
"release": "pnpm build && pnpm build_backend && pnpm docker_build && pnpm docker_push"
},
"dependencies": {
"@unhead/vue": "^2.1.17",
"pinyin-pro": "^3.29.1",
"web-streams-polyfill": "^4.3.0",
"webfont-sdk": "workspace:*"
},
"devDependencies": {
"@leafer-ui/node": "2.2.9",
"@types/node": "^26.2.0",
"@vitejs/plugin-vue": "^6.0.8",
"@xmldom/xmldom": "^0.9.11",
"jsdom": "^30.0.1",
"pngjs": "^7.0.0",
"puppeteer": "^25.7.0",
"tsdown": "^0.22.14",
"typescript": "^7.0.2",
"undici": "^8.10.0",
"vite": "^8.2.1",
"vite-plugin-commonjs": "^0.10.4",
"vite-plugin-pilot": "^1.0.35",
"vite-ssg": "^28.3.0",
"vitest": "^4.1.10",
"vue": "3.6.0-beta.17",
"vue-router": "^5.2.0"
},
"optionalDependencies": {
"@napi-rs/canvas": "^1.0.6"
}
}