@ot-builder/cli-proc
Advanced tools
+58
-1
@@ -5,3 +5,60 @@ { | ||
| { | ||
| "date": "Sat, 15 Apr 2023 01:05:12 GMT", | ||
| "date": "Sat, 22 Apr 2023 00:59:44 GMT", | ||
| "tag": "@ot-builder/cli-proc_v1.6.3", | ||
| "version": "1.6.3", | ||
| "comments": { | ||
| "patch": [ | ||
| { | ||
| "author": "otbbuilder-dev@users.noreply.github.com", | ||
| "package": "@ot-builder/cli-proc", | ||
| "commit": "b19d6f897aa2a52a78cc95ca4832baeda71446a2", | ||
| "comment": "Fix handling of ignore glyph set when merging fonts" | ||
| }, | ||
| { | ||
| "author": "beachball", | ||
| "package": "@ot-builder/cli-proc", | ||
| "comment": "Bump @ot-builder/io-bin-font to v1.6.3", | ||
| "commit": "b19d6f897aa2a52a78cc95ca4832baeda71446a2" | ||
| }, | ||
| { | ||
| "author": "beachball", | ||
| "package": "@ot-builder/cli-proc", | ||
| "comment": "Bump @ot-builder/primitive to v1.6.3", | ||
| "commit": "b19d6f897aa2a52a78cc95ca4832baeda71446a2" | ||
| }, | ||
| { | ||
| "author": "beachball", | ||
| "package": "@ot-builder/cli-proc", | ||
| "comment": "Bump @ot-builder/common-impl to v1.6.3", | ||
| "commit": "b19d6f897aa2a52a78cc95ca4832baeda71446a2" | ||
| }, | ||
| { | ||
| "author": "beachball", | ||
| "package": "@ot-builder/cli-proc", | ||
| "comment": "Bump @ot-builder/rectify to v1.6.3", | ||
| "commit": "b19d6f897aa2a52a78cc95ca4832baeda71446a2" | ||
| }, | ||
| { | ||
| "author": "beachball", | ||
| "package": "@ot-builder/cli-proc", | ||
| "comment": "Bump @ot-builder/trace to v1.6.3", | ||
| "commit": "b19d6f897aa2a52a78cc95ca4832baeda71446a2" | ||
| }, | ||
| { | ||
| "author": "beachball", | ||
| "package": "@ot-builder/cli-proc", | ||
| "comment": "Bump @ot-builder/prelude to v1.6.3", | ||
| "commit": "b19d6f897aa2a52a78cc95ca4832baeda71446a2" | ||
| }, | ||
| { | ||
| "author": "beachball", | ||
| "package": "@ot-builder/cli-proc", | ||
| "comment": "Bump @ot-builder/ot to v1.6.3", | ||
| "commit": "b19d6f897aa2a52a78cc95ca4832baeda71446a2" | ||
| } | ||
| ] | ||
| } | ||
| }, | ||
| { | ||
| "date": "Sat, 15 Apr 2023 01:06:43 GMT", | ||
| "tag": "@ot-builder/cli-proc_v1.6.2", | ||
@@ -8,0 +65,0 @@ "version": "1.6.2", |
+17
-2
| # Change Log - @ot-builder/cli-proc | ||
| This log was last generated on Sat, 15 Apr 2023 01:05:12 GMT and should not be manually modified. | ||
| This log was last generated on Sat, 22 Apr 2023 00:59:44 GMT and should not be manually modified. | ||
| <!-- Start content --> | ||
| ## 1.6.3 | ||
| Sat, 22 Apr 2023 00:59:44 GMT | ||
| ### Patches | ||
| - Fix handling of ignore glyph set when merging fonts (otbbuilder-dev@users.noreply.github.com) | ||
| - Bump @ot-builder/io-bin-font to v1.6.3 | ||
| - Bump @ot-builder/primitive to v1.6.3 | ||
| - Bump @ot-builder/common-impl to v1.6.3 | ||
| - Bump @ot-builder/rectify to v1.6.3 | ||
| - Bump @ot-builder/trace to v1.6.3 | ||
| - Bump @ot-builder/prelude to v1.6.3 | ||
| - Bump @ot-builder/ot to v1.6.3 | ||
| ## 1.6.2 | ||
| Sat, 15 Apr 2023 01:05:12 GMT | ||
| Sat, 15 Apr 2023 01:06:43 GMT | ||
@@ -11,0 +26,0 @@ ### Patches |
| import * as Ot from "@ot-builder/ot"; | ||
| import { Data } from "@ot-builder/prelude"; | ||
| import { FeatureConsolidationSource } from "./consolidate/feature"; | ||
| export declare class GsubGposMerger<L> implements FeatureConsolidationSource<L> { | ||
| export declare class GsubGposMerger<L extends Ot.GsubGpos.LookupProp> implements FeatureConsolidationSource<L> { | ||
| readonly variationDimensions: Data.Order<Ot.Var.Dim>; | ||
| readonly preferred: Ot.GsubGpos.TableT<L>; | ||
| readonly less: Ot.GsubGpos.TableT<L>; | ||
| constructor(variationDimensions: Data.Order<Ot.Var.Dim>, preferred: Ot.GsubGpos.TableT<L>, less: Ot.GsubGpos.TableT<L>); | ||
| private readonly preferredGdef; | ||
| private readonly lessGdef; | ||
| constructor(variationDimensions: Data.Order<Ot.Var.Dim>, preferred: Ot.GsubGpos.TableT<L>, less: Ot.GsubGpos.TableT<L>, preferredGdef: Data.Maybe<Ot.Gdef.Table>, lessGdef: Data.Maybe<Ot.Gdef.Table>); | ||
| resolve(): Ot.GsubGpos.TableT<L>; | ||
| private getLookups; | ||
| private amendIgnoreSet; | ||
| private mergeScriptList; | ||
@@ -12,0 +15,0 @@ private mergeScript; |
@@ -5,9 +5,12 @@ "use strict"; | ||
| const ImpLib = require("@ot-builder/common-impl"); | ||
| const Ot = require("@ot-builder/ot"); | ||
| const feature_1 = require("./consolidate/feature"); | ||
| const utils_1 = require("./utils"); | ||
| class GsubGposMerger { | ||
| constructor(variationDimensions, preferred, less) { | ||
| constructor(variationDimensions, preferred, less, preferredGdef, lessGdef) { | ||
| this.variationDimensions = variationDimensions; | ||
| this.preferred = preferred; | ||
| this.less = less; | ||
| this.preferredGdef = preferredGdef; | ||
| this.lessGdef = lessGdef; | ||
| this.featureMergingPlans = new Map(); | ||
@@ -28,4 +31,55 @@ this.featureVariationCollection = new Map(); | ||
| getLookups() { | ||
| const result = []; | ||
| for (const lookup of this.preferred.lookups) { | ||
| result.push(lookup); | ||
| if (this.preferredGdef && this.lessGdef) { | ||
| this.amendIgnoreSet(lookup, this.preferredGdef, this.lessGdef); | ||
| } | ||
| } | ||
| for (const lookup of this.less.lookups) { | ||
| result.push(lookup); | ||
| if (this.preferredGdef && this.lessGdef) { | ||
| this.amendIgnoreSet(lookup, this.lessGdef, this.preferredGdef); | ||
| } | ||
| } | ||
| return [...this.preferred.lookups, ...this.less.lookups]; | ||
| } | ||
| amendIgnoreSet(lookup, currentGdef, counterGdef) { | ||
| if (!lookup.ignoreGlyphs) | ||
| return; | ||
| if (!currentGdef.glyphClassDef || !counterGdef.glyphClassDef) | ||
| return; | ||
| let hasBase = false, hasLigature = false, hasMark = false; | ||
| for (const [g, c] of currentGdef.glyphClassDef) { | ||
| if (!lookup.ignoreGlyphs.has(g)) | ||
| continue; | ||
| switch (c) { | ||
| case Ot.Gdef.GlyphClass.Base: | ||
| hasBase = true; | ||
| break; | ||
| case Ot.Gdef.GlyphClass.Ligature: | ||
| hasLigature = true; | ||
| break; | ||
| case Ot.Gdef.GlyphClass.Mark: | ||
| hasMark = true; | ||
| break; | ||
| } | ||
| } | ||
| for (const [g, c] of counterGdef.glyphClassDef) { | ||
| switch (c) { | ||
| case Ot.Gdef.GlyphClass.Base: | ||
| if (hasBase) | ||
| lookup.ignoreGlyphs.add(g); | ||
| break; | ||
| case Ot.Gdef.GlyphClass.Ligature: | ||
| if (hasLigature) | ||
| lookup.ignoreGlyphs.add(g); | ||
| break; | ||
| case Ot.Gdef.GlyphClass.Mark: | ||
| if (hasMark) | ||
| lookup.ignoreGlyphs.add(g); | ||
| break; | ||
| } | ||
| } | ||
| } | ||
| mergeScriptList() { | ||
@@ -32,0 +86,0 @@ return (0, utils_1.mergeMapAlt)(this.preferred.scripts, this.less.scripts, this.mergeScript.bind(this)); |
@@ -8,3 +8,3 @@ import * as Ot from "@ot-builder/ot"; | ||
| export declare function consolidateFont<GS extends Ot.GlyphStore>(font: Ot.Font<GS>): void; | ||
| export declare function consolidateGsubGpos<L>(fvar: Data.Maybe<Ot.Fvar.Table>, preferred: Ot.GsubGpos.TableT<L>): Ot.GsubGpos.TableT<L>; | ||
| export declare function consolidateGsubGpos<L extends Ot.GsubGpos.LookupProp>(fvar: Data.Maybe<Ot.Fvar.Table>, preferred: Ot.GsubGpos.TableT<L>): Ot.GsubGpos.TableT<L>; | ||
| //# sourceMappingURL=index.d.ts.map |
@@ -35,4 +35,4 @@ "use strict"; | ||
| basis.cmap = mergeCmap(override.cmap, basis.cmap); | ||
| basis.gsub = mergeGsubGpos(override.fvar, override.gsub, basis.gsub); | ||
| basis.gpos = mergeGsubGpos(override.fvar, override.gpos, basis.gpos); | ||
| basis.gsub = mergeGsubGpos(override.fvar, override.gsub, basis.gsub, override.gdef, basis.gdef); | ||
| basis.gpos = mergeGsubGpos(override.fvar, override.gpos, basis.gpos, override.gdef, basis.gdef); | ||
| basis.gdef = mergeGdef(override.gdef, basis.gdef); | ||
@@ -42,4 +42,4 @@ } | ||
| basis.cmap = mergeCmap(basis.cmap, override.cmap); | ||
| basis.gsub = mergeGsubGpos(basis.fvar, basis.gsub, override.gsub); | ||
| basis.gpos = mergeGsubGpos(basis.fvar, basis.gpos, override.gpos); | ||
| basis.gsub = mergeGsubGpos(basis.fvar, basis.gsub, override.gsub, basis.gdef, override.gdef); | ||
| basis.gpos = mergeGsubGpos(basis.fvar, basis.gpos, override.gpos, basis.gdef, override.gdef); | ||
| basis.gdef = mergeGdef(basis.gdef, override.gdef); | ||
@@ -72,7 +72,7 @@ } | ||
| result.ligCarets = (0, utils_1.mergeMapOpt)(preferred.ligCarets, less.ligCarets, utils_1.Prime); | ||
| result.markAttachClassDef = (0, utils_1.mergeMapOpt)(preferred.markAttachClassDef, less.markAttachClassDef, utils_1.Prime); | ||
| result.markAttachClassDef = (0, utils_1.mergeClassDefOpt)(preferred.markAttachClassDef, less.markAttachClassDef); | ||
| result.markGlyphSets = (0, utils_1.combineList)(preferred.markGlyphSets, less.markGlyphSets); | ||
| return result; | ||
| } | ||
| function mergeGsubGpos(fvar, preferred, less) { | ||
| function mergeGsubGpos(fvar, preferred, less, preferredGdef, lessGdef) { | ||
| if (!preferred) | ||
@@ -82,7 +82,7 @@ return less; | ||
| return preferred; | ||
| const merger = new gsub_gpos_merger_1.GsubGposMerger(ImpLib.Order.fromList("Dimensions", fvar ? fvar.axes.map(a => a.dim) : []), preferred, less); | ||
| const merger = new gsub_gpos_merger_1.GsubGposMerger(ImpLib.Order.fromList("Dimensions", fvar ? fvar.axes.map(a => a.dim) : []), preferred, less, preferredGdef, lessGdef); | ||
| return merger.resolve(); | ||
| } | ||
| function consolidateGsubGpos(fvar, preferred) { | ||
| const merger = new gsub_gpos_merger_1.GsubGposMerger(ImpLib.Order.fromList("Dimensions", fvar ? fvar.axes.map(a => a.dim) : []), preferred, { scripts: new Map(), features: [], lookups: [], featureVariations: [] }); | ||
| const merger = new gsub_gpos_merger_1.GsubGposMerger(ImpLib.Order.fromList("Dimensions", fvar ? fvar.axes.map(a => a.dim) : []), preferred, { scripts: new Map(), features: [], lookups: [], featureVariations: [] }, null, null); | ||
| return merger.resolve(); | ||
@@ -89,0 +89,0 @@ } |
@@ -5,4 +5,6 @@ import { Data } from "@ot-builder/prelude"; | ||
| export declare function mergeMap<K, V>(preferred: Map<K, V>, less: Map<K, V>, mergeValue: (a: V, b: V) => V): Map<K, V>; | ||
| export declare function mergeClassDefOpt<K>(preferred: Data.Maybe<Map<K, number>>, less: Data.Maybe<Map<K, number>>): Data.Maybe<Map<K, number>>; | ||
| export declare function mergeClassDef<K>(preferred: Map<K, number>, less: Map<K, number>): Map<K, number>; | ||
| export declare function mergeMapAlt<K, V>(preferred: Map<K, V>, less: Map<K, V>, mergeValue: (a: undefined | V, b: undefined | V) => V): Map<K, V>; | ||
| export declare function Prime<K>(a: K, b: K): K; | ||
| //# sourceMappingURL=utils.d.ts.map |
| "use strict"; | ||
| Object.defineProperty(exports, "__esModule", { value: true }); | ||
| exports.Prime = exports.mergeMapAlt = exports.mergeMap = exports.mergeMapOpt = exports.combineList = void 0; | ||
| exports.Prime = exports.mergeMapAlt = exports.mergeClassDef = exports.mergeClassDefOpt = exports.mergeMap = exports.mergeMapOpt = exports.combineList = void 0; | ||
| function combineList(a, b) { | ||
| return [...(a || []), ...(a || [])]; | ||
| return [...(a || []), ...(b || [])]; | ||
| } | ||
@@ -29,2 +29,22 @@ exports.combineList = combineList; | ||
| exports.mergeMap = mergeMap; | ||
| function mergeClassDefOpt(preferred, less) { | ||
| if (!preferred) | ||
| return less; | ||
| if (!less) | ||
| return preferred; | ||
| return mergeClassDef(preferred, less); | ||
| } | ||
| exports.mergeClassDefOpt = mergeClassDefOpt; | ||
| function mergeClassDef(preferred, less) { | ||
| const m = new Map(preferred); | ||
| let maxClass = 0; | ||
| for (const v of m.values()) | ||
| if (v > maxClass) | ||
| maxClass = v; | ||
| for (const [k, v] of less) | ||
| if (!m.has(k)) | ||
| m.set(k, v + maxClass); | ||
| return m; | ||
| } | ||
| exports.mergeClassDef = mergeClassDef; | ||
| function mergeMapAlt(preferred, less, mergeValue) { | ||
@@ -31,0 +51,0 @@ const keySet = new Set([...preferred.keys(), ...less.keys()]); |
+8
-8
| { | ||
| "name": "@ot-builder/cli-proc", | ||
| "version": "1.6.2", | ||
| "version": "1.6.3", | ||
| "license": "MIT", | ||
@@ -27,9 +27,9 @@ "repository": { | ||
| "tslib": "^2.0.0", | ||
| "@ot-builder/io-bin-font": "1.6.2", | ||
| "@ot-builder/primitive": "1.6.2", | ||
| "@ot-builder/common-impl": "1.6.2", | ||
| "@ot-builder/rectify": "1.6.2", | ||
| "@ot-builder/trace": "1.6.2", | ||
| "@ot-builder/prelude": "1.6.2", | ||
| "@ot-builder/ot": "1.6.2" | ||
| "@ot-builder/io-bin-font": "1.6.3", | ||
| "@ot-builder/primitive": "1.6.3", | ||
| "@ot-builder/common-impl": "1.6.3", | ||
| "@ot-builder/rectify": "1.6.3", | ||
| "@ot-builder/trace": "1.6.3", | ||
| "@ot-builder/prelude": "1.6.3", | ||
| "@ot-builder/ot": "1.6.3" | ||
| }, | ||
@@ -36,0 +36,0 @@ "devDependencies": { |
106289
5.76%2570
5.59%+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
Updated
Updated
Updated
Updated
Updated