Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
});
let UnicodeValueRange = new r.Struct({
startUnicodeValue: r.uint24,
additionalCount: r.uint8
});
let UVSMapping = new r.Struct({
unicodeValue: r.uint24,
glyphID: r.uint16
});
let DefaultUVS = new r.Array(UnicodeValueRange, r.uint32);
let NonDefaultUVS = new r.Array(UVSMapping, r.uint32);
let VarSelectorRecord = new r.Struct({
varSelector: r.uint24,
defaultUVS: new r.Pointer(r.uint32, DefaultUVS, {type: 'parent'}),
nonDefaultUVS: new r.Pointer(r.uint32, NonDefaultUVS, {type: 'parent'})
});
let CmapSubtable = new r.VersionedStruct(r.uint16, {
0: { // Byte encoding
length: r.uint16, // Total table length in bytes (set to 262 for format 0)
language: r.uint16, // Language code for this encoding subtable, or zero if language-independent
codeMap: new r.LazyArray(r.uint8, 256)
},
2: { // High-byte mapping (CJK)
length: r.uint16,
language: r.uint16,
subHeaderKeys: new r.Array(r.uint16, 256),
3: {}, // Stretch glyph action (no data, not supported by CoreText)
4: { // Ductile glyph action (not supported by CoreText)
variationAxis: r.uint32,
minimumLimit: r.fixed32,
noStretchValue: r.fixed32,
maximumLimit: r.fixed32
},
5: { // Repeated add glyph action
flags: r.uint16,
glyph: r.uint16
}
});
let Action = new r.Struct({
actionClass: r.uint16,
actionType: r.uint16,
actionLength: r.uint32,
actionData: ActionData,
padding: new r.Reserved(r.uint8, t => t.actionLength - t._currentOffset)
});
let PostcompensationAction = new r.Array(Action, r.uint32);
let PostCompensationTable = new r.Struct({
lookupTable: new LookupTable(new r.Pointer(r.uint16, PostcompensationAction))
});
let JustificationTable = new r.Struct({
classTable: new r.Pointer(r.uint16, ClassTable, { type: 'parent' }),
wdcOffset: r.uint16,
postCompensationTable: new r.Pointer(r.uint16, PostCompensationTable, { type: 'parent' }),
defaultMinMax: new r.Pointer(r.uint16, MinMax), // May be NULL
baseLangSysCount: r.uint16, // May be 0
baseLangSysRecords: new r.Array(BaseLangSysRecord, 'baseLangSysCount') // in alphabetical order by BaseLangSysTag
});
let BaseScriptRecord = new r.Struct({
tag: new r.String(4), // 4-byte script identification tag
script: new r.Pointer(r.uint16, BaseScript, {type: 'parent'})
});
let BaseScriptList = new r.Array(BaseScriptRecord, r.uint16);
// Array of 4-byte baseline identification tags-must be in alphabetical order
let BaseTagList = new r.Array(new r.String(4), r.uint16);
let Axis = new r.Struct({
baseTagList: new r.Pointer(r.uint16, BaseTagList), // May be NULL
baseScriptList: new r.Pointer(r.uint16, BaseScriptList)
});
export default new r.VersionedStruct(r.uint32, {
header: {
horizAxis: new r.Pointer(r.uint16, Axis), // May be NULL
vertAxis: new r.Pointer(r.uint16, Axis) // May be NULL
},
0x00010000: {},
0x00010001: {
itemVariationStore: new r.Pointer(r.uint32, ItemVariationStore)
}
});
'SVG ', 'sbix', 'acnt', 'avar', 'bdat', 'bloc', 'bsln', 'cvar', 'fdsc',
'feat', 'fmtx', 'fvar', 'gvar', 'hsty', 'just', 'lcar', 'mort', 'morx',
'opbd', 'prop', 'trak', 'Zapf', 'Silf', 'Glat', 'Gloc', 'Feat', 'Sill'
];
let WOFF2DirectoryEntry = new r.Struct({
flags: r.uint8,
customTag: new r.Optional(new r.String(4), t => (t.flags & 0x3f) === 0x3f),
tag: t => t.customTag || knownTags[t.flags & 0x3f],// || (() => { throw new Error(`Bad tag: ${flags & 0x3f}`); })(); },
length: Base128,
transformVersion: t => (t.flags >>> 6) & 0x03,
transformed: t => (t.tag === 'glyf' || t.tag === 'loca') ? t.transformVersion === 0 : t.transformVersion !== 0,
transformLength: new r.Optional(Base128, t => t.transformed)
});
let WOFF2Directory = new r.Struct({
tag: new r.String(4), // should be 'wOF2'
flavor: r.uint32,
length: r.uint32,
numTables: r.uint16,
reserved: new r.Reserved(r.uint16),
totalSfntSize: r.uint32,
totalCompressedSize: r.uint32,
majorVersion: r.uint16,
minorVersion: r.uint16,
metaOffset: r.uint32,
metaLength: r.uint32,
metaOrigLength: r.uint32,
privOffset: r.uint32,
privLength: r.uint32,
tables: new r.Array(WOFF2DirectoryEntry, 'numTables')
});
import r from 'restructure';
let KernPair = new r.Struct({
left: r.uint16,
right: r.uint16,
value: r.int16
});
let ClassTable = new r.Struct({
firstGlyph: r.uint16,
nGlyphs: r.uint16,
offsets: new r.Array(r.uint16, 'nGlyphs'),
max: t => t.offsets.length && Math.max.apply(Math, t.offsets)
});
let Kern2Array = new r.Struct({
off: t => t._startOffset - t.parent.parent._startOffset,
len: t => (((t.parent.leftTable.max - t.off) / t.parent.rowWidth) + 1) * (t.parent.rowWidth / 2),
values: new r.LazyArray(r.int16, 'len')
partID: r.uint16le,
level: r.uint16le,
startVertex: r.uint16le,
vertexCount: r.uint16le,
startTriangle: r.uint16le,
triangleCount: r.uint16le,
boneCount: r.uint16le,
startBone: r.uint16le,
boneInfluences: r.uint16le,
rootBone: r.uint16le,
centerMass: Vec3Float,
centerBoundingBox: Vec3Float,
radius: r.floatle,
});
const Batch = new r.Struct({
flags: r.uint16le,
shaderID: r.uint16le,
submeshIndex: r.uint16le,
submeshIndex2: r.uint16le,
vertexColorAnimationIndex: r.int16le,
materialIndex: r.uint16le,
layer: r.uint16le,
opCount: r.uint16le,
textureLookup: r.uint16le,
textureMappingIndex: r.uint16le,
transparencyAnimationLookup: r.uint16le,
uvAnimationLookup: r.uint16le,
});
export default new r.Struct({
signature: new r.String(4),
dataOffset: r.uint24,
handle: r.uint32
});
let Type = new r.Struct({
name: new r.String(4),
maxTypeIndex: r.uint16,
refList: new r.Pointer(r.uint16, new r.Array(Ref, t => t.maxTypeIndex + 1), { type: 'parent' })
});
let TypeList = new r.Struct({
length: r.uint16,
types: new r.Array(Type, t => t.length + 1)
});
let DFontMap = new r.Struct({
reserved: new r.Reserved(r.uint8, 24),
typeList: new r.Pointer(r.uint16, TypeList),
nameListOffset: new r.Pointer(r.uint16, 'void')
});
let DFontHeader = new r.Struct({
dataOffset: r.uint32,
map: new r.Pointer(r.uint32, DFontMap),
dataLength: r.uint32,
mapLength: r.uint32
});
export default class DFont {
static probe(buffer) {
let stream = new r.DecodeStream(buffer);
DBC['for'] = function (type) {
var fields = xtend(this.fields, {
records: new r.Array(type, function () {
return this.recordCount;
})
});
return new r.Struct(fields);
};
'use strict';
var r = require('restructure');
var AnimationBlock = require('./animation-block');
var Nofs = require('./nofs');
var _require = require('../types');
var QuatShort = _require.QuatShort;
var Vec3Float = _require.Vec3Float;
module.exports = new r.Struct({
keyBoneID: r.int32le,
flags: r.uint32le,
parentID: r.int16le,
subMeshID: r.int16le,
unknowns: new r.Reserved(r.uint16le, 2),
translation: new AnimationBlock(Vec3Float),
rotation: new AnimationBlock(QuatShort),
scaling: new AnimationBlock(Vec3Float),
pivotPoint: Vec3Float
});
import r from 'restructure';
let SubHeader = new r.Struct({
firstCode: r.uint16,
entryCount: r.uint16,
idDelta: r.int16,
idRangeOffset: r.uint16
});
let CmapGroup = new r.Struct({
startCharCode: r.uint32,
endCharCode: r.uint32,
glyphID: r.uint32
});
let UnicodeValueRange = new r.Struct({
startUnicodeValue: r.uint24,
additionalCount: r.uint8
});
let UVSMapping = new r.Struct({
unicodeValue: r.uint24,
glyphID: r.uint16
});
let DefaultUVS = new r.Array(UnicodeValueRange, r.uint32);
let NonDefaultUVS = new r.Array(UVSMapping, r.uint32);
let VarSelectorRecord = new r.Struct({
varSelector: r.uint24,
defaultUVS: new r.Pointer(r.uint32, DefaultUVS, {type: 'parent'}),
nonDefaultUVS: new r.Pointer(r.uint32, NonDefaultUVS, {type: 'parent'})