Big News: Socket raises $60M Series C at a $1B valuation to secure software supply chains for AI-driven development.Announcement
Sign In

@ot-builder/rectify

Package Overview
Dependencies
Maintainers
1
Versions
74
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@ot-builder/rectify - npm Package Compare versions

Comparing version
1.7.5
to
1.7.6
+5
-1
lib/layout/gsub-gpos/cleanup.d.ts
import * as Ot from "@ot-builder/ot";
import { AxisRectifier } from "../../interface";
export declare function cleanupGsubGposData<L, Table extends Ot.GsubGpos.TableT<L>>(table: Table, newTable: Table, lookupCorrespondence: Map<L, L>, fnRemovable: (lookup: L) => boolean): Table | null;
export interface LookupCleaner<L> {
lookupRemovable(lookup: L): boolean;
cleanupBrokenCrossLinks: (lookup: L, validLookupSet: Set<L>) => void;
}
export declare function cleanupGsubGposData<L, Table extends Ot.GsubGpos.TableT<L>>(table: Table, newTable: Table, lookupCorrespondence: Map<L, L>, cleaner: LookupCleaner<L>): Table | null;
export declare function axesRectifyFeatureVariation<L>(rec: AxisRectifier, fv: Ot.GsubGpos.FeatureVariationT<L>): void;
//# sourceMappingURL=cleanup.d.ts.map
+21
-6

@@ -6,8 +6,4 @@ "use strict";

const shared_1 = require("../../shared");
function cleanupGsubGposData(table, newTable, lookupCorrespondence, fnRemovable) {
const lookups = [];
for (const lookup of [...lookupCorrespondence.values()]) {
if (!fnRemovable(lookup))
lookups.push(lookup);
}
function cleanupGsubGposData(table, newTable, lookupCorrespondence, cleaner) {
const lookups = cleanupLookups([...lookupCorrespondence.values()], cleaner);
newTable.lookups = lookups;

@@ -28,2 +24,21 @@ const lookupSet = new Set(lookups);

}
function cleanupLookups(source, cleaner) {
let lookups = source;
let n = lookups.length;
let n1 = n;
do {
n = n1;
const lookups1 = [];
for (const lookup of lookups) {
if (!cleaner.lookupRemovable(lookup))
lookups1.push(lookup);
}
const validSet = new Set(lookups1);
for (const lookup of lookups1)
cleaner.cleanupBrokenCrossLinks(lookup, validSet);
n1 = lookups1.length;
lookups = lookups1;
} while (n1 < n);
return lookups;
}
function cleanupFeature(ft, lookupCorrespondence, ls, featureCorrespondence, keepEmptyFeature) {

@@ -30,0 +45,0 @@ const l1 = shared_1.RectifyImpl.Elim.listSome(ft.lookups.map(l => lookupCorrespondence.get(l)), ls);

@@ -9,18 +9,9 @@ "use strict";

const rectify_1 = require("./rectify");
function fnApplyGsubLookup(lookup, alg) {
return alg.process(lookup);
}
function fnGsubLookupRemovable(lookup) {
return lookup_removable_alg_1.LookupRemovableAlg.process(lookup);
}
function fnApplyGposLookup(lookup, alg) {
return alg.process(lookup);
}
function fnGposLookupRemovable(lookup) {
return lookup_removable_alg_1.LookupRemovableAlg.process(lookup);
}
function rectifyGsubTable(recGlyphs, recAxes, recCoord, recPA, table) {
const alg = new rectify_1.RectifyGsubGlyphCoordAlg(recGlyphs, recCoord, recPA);
const lookupCorrespondence = (0, rectify_1.rectifyLookupList)(table.lookups, alg, fnApplyGsubLookup);
const newTable = (0, cleanup_1.cleanupGsubGposData)(table, new Ot.Gsub.Table(), lookupCorrespondence, fnGsubLookupRemovable);
const lookupCorrespondence = (0, rectify_1.rectifyLookupList)(table.lookups, alg, (l, a) => a.process(l));
const newTable = (0, cleanup_1.cleanupGsubGposData)(table, new Ot.Gsub.Table(), lookupCorrespondence, {
lookupRemovable: l => lookup_removable_alg_1.LookupRemovableAlg.process(l),
cleanupBrokenCrossLinks: (l, v) => lookup_removable_alg_1.RemoveBrokenLinkAlg.process(l, v)
});
if (newTable && newTable.featureVariations) {

@@ -34,4 +25,7 @@ for (const fv of newTable.featureVariations)

const alg = new rectify_1.RectifyGposGlyphCoordAlg(recGlyphs, recCoord, recPA);
const lookupCorrespondence = (0, rectify_1.rectifyLookupList)(table.lookups, alg, fnApplyGposLookup);
const newTable = (0, cleanup_1.cleanupGsubGposData)(table, new Ot.Gpos.Table(), lookupCorrespondence, fnGposLookupRemovable);
const lookupCorrespondence = (0, rectify_1.rectifyLookupList)(table.lookups, alg, (l, a) => a.process(l));
const newTable = (0, cleanup_1.cleanupGsubGposData)(table, new Ot.Gpos.Table(), lookupCorrespondence, {
lookupRemovable: l => lookup_removable_alg_1.LookupRemovableAlg.process(l),
cleanupBrokenCrossLinks: (l, v) => lookup_removable_alg_1.RemoveBrokenLinkAlg.process(l, v)
});
if (newTable && newTable.featureVariations) {

@@ -38,0 +32,0 @@ for (const fv of newTable.featureVariations)

@@ -19,2 +19,7 @@ import * as Ot from "@ot-builder/ot";

export declare const LookupRemovableAlg: CLookupRemovableAlg;
export declare class CRemoveBrokenLinkAlg {
process(lookup: Ot.Gsub.Lookup | Ot.Gpos.Lookup, validSet: Set<Ot.Gsub.Lookup | Ot.Gpos.Lookup>): void;
chaining(props: Ot.Gsub.Chaining | Ot.Gpos.Chaining, validSet: Set<Ot.Gsub.Lookup | Ot.Gpos.Lookup>): void;
}
export declare const RemoveBrokenLinkAlg: CRemoveBrokenLinkAlg;
//# sourceMappingURL=lookup-removable-alg.d.ts.map
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.LookupRemovableAlg = exports.CLookupRemovableAlg = void 0;
exports.RemoveBrokenLinkAlg = exports.CRemoveBrokenLinkAlg = exports.LookupRemovableAlg = exports.CLookupRemovableAlg = void 0;
const Ot = require("@ot-builder/ot");

@@ -89,2 +89,32 @@ class CLookupRemovableAlg {

exports.LookupRemovableAlg = new CLookupRemovableAlg();
class CRemoveBrokenLinkAlg {
process(lookup, validSet) {
switch (lookup.type) {
case Ot.Gsub.LookupType.Chaining:
this.chaining(lookup, validSet);
break;
case Ot.Gpos.LookupType.Chaining:
this.chaining(lookup, validSet);
break;
}
}
chaining(props, validSet) {
let rear = 0;
for (let front = 0; front < props.rules.length; front++) {
const rule = props.rules[front];
let apRear = 0;
for (let apFront = 0; apFront < rule.applications.length; apFront++) {
if (validSet.has(rule.applications[apFront].apply)) {
rule.applications[apRear++] = rule.applications[apFront];
}
}
rule.applications.length = apRear;
if (rule.applications.length)
props.rules[rear++] = rule;
}
props.rules.length = rear;
}
}
exports.CRemoveBrokenLinkAlg = CRemoveBrokenLinkAlg;
exports.RemoveBrokenLinkAlg = new CRemoveBrokenLinkAlg();
//# sourceMappingURL=lookup-removable-alg.js.map
{
"name": "@ot-builder/rectify",
"version": "1.7.5",
"version": "1.7.6",
"license": "MIT",

@@ -26,8 +26,8 @@ "repository": {

"dependencies": {
"@ot-builder/ot": "1.7.5",
"@ot-builder/ot": "1.7.6",
"@ot-builder/common-impl": "1.7.5",
"@ot-builder/ot-glyphs": "1.7.5",
"@ot-builder/ot-metadata": "1.7.5",
"@ot-builder/ot-glyphs": "1.7.6",
"@ot-builder/ot-metadata": "1.7.6",
"@ot-builder/prelude": "1.7.5",
"@ot-builder/variance": "1.7.5",
"@ot-builder/variance": "1.7.6",
"tslib": "^2.8.1"

@@ -34,0 +34,0 @@ },