UNPKG

ag-psd

Version:

Library for reading and writing PSD files

408 lines 16.2 kB
/// Engine data 2 experiments // /test/engineData2.json:1109 is character codes var keysColor = { '0': { uproot: true, children: { '0': { name: 'Type' }, '1': { name: 'Values' }, }, }, }; var keysStyleSheet = { '0': { name: 'Font' }, '1': { name: 'FontSize' }, '2': { name: 'FauxBold' }, '3': { name: 'FauxItalic' }, '4': { name: 'AutoLeading' }, '5': { name: 'Leading' }, '6': { name: 'HorizontalScale' }, '7': { name: 'VerticalScale' }, '8': { name: 'Tracking' }, '9': { name: 'BaselineShift' }, // '10': ??? '11': { name: 'Kerning?' }, '12': { name: 'FontCaps' }, '13': { name: 'FontBaseline' }, '15': { name: 'Strikethrough?' }, '16': { name: 'Underline?' }, '18': { name: 'Ligatures' }, '19': { name: 'DLigatures' }, // '20': ??? // '21': ??? // '22': ??? '23': { name: 'Fractions' }, '24': { name: 'Ordinals' }, // '25': ??? // '26': ??? // '27': ??? '28': { name: 'StylisticAlternates' }, // '29': ??? '30': { name: 'OldStyle?' }, '35': { name: 'BaselineDirection' }, '38': { name: 'Language' }, '52': { name: 'NoBreak' }, '53': { name: 'FillColor', children: keysColor }, '54': { name: 'StrokeColor', children: keysColor }, '55': { children: { '99': { uproot: true } } }, // '68': ??? // '70': ??? // '71': ??? // '72': ??? // '73': ??? '79': { children: keysColor }, // '85': ??? // '87': ??? // '88': ??? }; var keysParagraph = { '0': { name: 'Justification' }, '1': { name: 'FirstLineIndent' }, '2': { name: 'StartIndent' }, '3': { name: 'EndIndent' }, '4': { name: 'SpaceBefore' }, '5': { name: 'SpaceAfter' }, '7': { name: 'AutoLeading' }, '9': { name: 'AutoHyphenate' }, '10': { name: 'HyphenatedWordSize' }, '11': { name: 'PreHyphen' }, '12': { name: 'PostHyphen' }, '13': { name: 'ConsecutiveHyphens?' }, '14': { name: 'Zone' }, '15': { name: 'HypenateCapitalizedWords' }, '17': { name: 'WordSpacing' }, '18': { name: 'LetterSpacing' }, '19': { name: 'GlyphSpacing' }, '32': { name: 'StyleSheet', children: keysStyleSheet }, }; var keysStyleSheetData = { name: 'StyleSheetData', children: keysStyleSheet, }; var keysRoot = { '0': { name: 'ResourceDict', children: { '1': { name: 'FontSet', children: { '0': { uproot: true, children: { '0': { uproot: true, children: { '0': { uproot: true, children: { '0': { name: 'Name' }, '2': { name: 'FontType' }, }, }, }, }, }, }, }, }, '2': { name: '2', children: {}, }, '3': { name: 'MojiKumiSet', children: { '0': { uproot: true, children: { '0': { uproot: true, children: { '0': { name: 'InternalName' }, }, }, }, }, }, }, '4': { name: 'KinsokuSet', children: { '0': { uproot: true, children: { '0': { uproot: true, children: { '0': { name: 'Name' }, '5': { uproot: true, children: { '0': { name: 'NoStart' }, '1': { name: 'NoEnd' }, '2': { name: 'Keep' }, '3': { name: 'Hanging' }, '4': { name: 'Name' }, }, }, }, }, }, }, }, }, '5': { name: 'StyleSheetSet', children: { '0': { uproot: true, children: { '0': { uproot: true, children: { '0': { name: 'Name' }, '6': keysStyleSheetData, }, }, }, }, }, }, '6': { name: 'ParagraphSheetSet', children: { '0': { uproot: true, children: { '0': { uproot: true, children: { '0': { name: 'Name' }, '5': { name: 'Properties', children: keysParagraph, }, '6': { name: 'DefaultStyleSheet' }, }, }, }, }, }, }, '8': { name: 'TextFrameSet', children: { '0': { uproot: true, children: { '0': { name: 'path', children: { '0': { name: 'name' }, '1': { name: 'bezierCurve', children: { '0': { name: 'controlPoints' }, }, }, '2': { name: 'data', children: { '0': { name: 'type' }, '1': { name: 'orientation' }, '2': { name: 'frameMatrix' }, '4': { name: '4' }, '6': { name: 'textRange' }, '7': { name: 'rowGutter' }, '8': { name: 'columnGutter' }, '9': { name: '9' }, '10': { name: 'baselineAlignment', children: { '0': { name: 'flag' }, '1': { name: 'min' }, }, }, '11': { name: 'pathData', children: { '1': { name: '1' }, '0': { name: 'reversed' }, '2': { name: '2' }, '3': { name: '3' }, '4': { name: 'spacing' }, '5': { name: '5' }, '6': { name: '6' }, '7': { name: '7' }, '18': { name: '18' }, }, }, '12': { name: '12' }, '13': { name: '13' }, }, }, '3': { name: '3' }, '97': { name: 'uuid' }, }, }, }, }, }, }, '9': { name: 'Predefined', children: { '0': { children: { '0': { uproot: true } }, }, '1': { children: { '0': { uproot: true } }, }, }, }, }, }, '1': { name: 'EngineDict', children: { '0': { name: '0', children: { // 0: ??? // 1: ??? // 2: ??? '3': { name: 'SuperscriptSize' }, '4': { name: 'SuperscriptPosition' }, '5': { name: 'SubscriptSize' }, '6': { name: 'SubscriptPosition' }, '7': { name: 'SmallCapSize' }, '8': { name: 'UseFractionalGlyphWidths' }, '15': { children: { '0': { uproot: true } } }, // 16: ??? // 17: ??? }, }, '1': { name: 'Editors?', children: { '0': { name: 'Editor', children: { '0': { name: 'Text' }, '5': { name: 'ParagraphRun', children: { '0': { name: 'RunArray', children: { '0': { name: 'ParagraphSheet', children: { '0': { uproot: true, children: { '0': { name: '0' }, '5': { name: '5', children: keysParagraph, }, '6': { name: '6' }, }, }, }, }, '1': { name: 'RunLength' }, }, }, }, }, '6': { name: 'StyleRun', children: { '0': { name: 'RunArray', children: { '0': { name: 'StyleSheet', children: { '0': { uproot: true, children: { '6': keysStyleSheetData, }, }, }, }, '1': { name: 'RunLength' }, }, }, }, }, }, }, '1': { name: 'FontVectorData ???', // children: { // '0': {}, // '2': { // // '5' // // '6' // }, // } // "1": [ // this is probably bounding box? there seem to be many of them nested // 0, // 0, // 999, // 176.30014 // ], // various types: /PC, /F, /R, /L, /S, /G }, }, }, '2': { name: 'StyleSheet', children: keysStyleSheet, }, '3': { name: 'ParagraphSheet', children: keysParagraph, }, }, }, }; function decodeObj(obj, keys) { var _a, _b; if (obj === null) return obj; if (Array.isArray(obj)) return obj.map(function (x) { return decodeObj(x, keys); }); if (typeof obj !== 'object') return obj; var result = {}; for (var _i = 0, _c = Object.keys(obj); _i < _c.length; _i++) { var key = _c[_i]; if (keys[key]) { if (keys[key].uproot) { if (key !== '99') result = decodeObj(obj[key], (_a = keys[key].children) !== null && _a !== void 0 ? _a : {}); if (obj['99']) result._type = obj['99']; break; } else { result[keys[key].name || key] = decodeObj(obj[key], (_b = keys[key].children) !== null && _b !== void 0 ? _b : {}); } } else if (key === '99') { result._type = obj[key]; } else { result[key] = decodeObj(obj[key], {}); } } return result; } export function decodeEngineData2(data) { return decodeObj(data, keysRoot); } //# sourceMappingURL=engineData2.js.map