Socket
Socket
Sign inDemoInstall

@capsizecss/unpack

Package Overview
Dependencies
Maintainers
2
Versions
32
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@capsizecss/unpack - npm Package Compare versions

Comparing version 0.0.0-add-language-support-20231121023926 to 0.0.0-add-language-support-v2-20231129052138

66

dist/capsizecss-unpack.browser.cjs.js

@@ -5,3 +5,2 @@ 'use strict';

var sortKeys = require('sort-keys');
require('cross-fetch/polyfill');

@@ -13,3 +12,2 @@ var blobToBuffer = require('blob-to-buffer');

var sortKeys__default = /*#__PURE__*/_interopDefault(sortKeys);
var blobToBuffer__default = /*#__PURE__*/_interopDefault(blobToBuffer);

@@ -447,2 +445,3 @@ var fontkit__default = /*#__PURE__*/_interopDefault(fontkit);

const supportedLanguages = Object.keys(weightings);
const weightingForCharacter = (character, lang) => {

@@ -469,10 +468,3 @@ if (!Object.keys(weightings[lang]).includes(character)) {

};
const avgWidthByLang = font => {
const xWidthAvgByLang = {};
Object.keys(weightings).forEach(lang => {
xWidthAvgByLang[lang] = avgWidthForLang(font, lang);
});
return xWidthAvgByLang;
};
const unpackMetricsFromFont = font => {
const unpackMetricsFromFont = (font, options) => {
const {

@@ -495,23 +487,44 @@ capHeight,

xHeight,
xWidthAvg: avgWidthForLang(font, 'en'),
xWidthAvgByLang: sortKeys__default["default"](avgWidthByLang(font))
xWidthAvg: avgWidthForLang(font, options.language)
};
};
const fromFile = path => fontkit__default["default"].open(path).then(unpackMetricsFromFont);
const fromBlob = async blob => new Promise((resolve, reject) => {
blobToBuffer__default["default"](blob, (err, buffer) => {
if (err) {
return reject(err);
}
try {
resolve(unpackMetricsFromFont(fontkit__default["default"].create(buffer)));
} catch (e) {
reject(e);
}
const resolveOptions = options => {
let language = 'en';
if (!options) {
return {
language
};
} else if (options.language && supportedLanguages.includes(options.language)) {
language = options.language;
} else {
throw new Error("Unsupported language \u201C".concat(options.language, "\u201D. Supported languages are: ").concat(supportedLanguages.join(', ')));
}
return {
language
};
};
const fromFile = (path, options) => {
const resolvedOptions = resolveOptions(options);
return fontkit__default["default"].open(path).then(font => unpackMetricsFromFont(font, resolvedOptions));
};
const fromBlob = async (blob, options) => {
const resolvedOptions = resolveOptions(options);
return new Promise((resolve, reject) => {
blobToBuffer__default["default"](blob, (err, buffer) => {
if (err) {
return reject(err);
}
try {
resolve(unpackMetricsFromFont(fontkit__default["default"].create(buffer), resolvedOptions));
} catch (e) {
reject(e);
}
});
});
});
const fromUrl = async url => {
};
const fromUrl = async (url, options) => {
const response = await fetch(url);
const resolvedOptions = resolveOptions(options);
const blob = await response.blob();
return fromBlob(blob);
return fromBlob(blob, resolvedOptions);
};

@@ -522,1 +535,2 @@

exports.fromUrl = fromUrl;
exports.supportedLanguages = supportedLanguages;

@@ -1,2 +0,1 @@

import sortKeys from 'sort-keys';
import 'cross-fetch/polyfill';

@@ -435,2 +434,3 @@ import blobToBuffer from 'blob-to-buffer';

const supportedLanguages = Object.keys(weightings);
const weightingForCharacter = (character, lang) => {

@@ -457,10 +457,3 @@ if (!Object.keys(weightings[lang]).includes(character)) {

};
const avgWidthByLang = font => {
const xWidthAvgByLang = {};
Object.keys(weightings).forEach(lang => {
xWidthAvgByLang[lang] = avgWidthForLang(font, lang);
});
return xWidthAvgByLang;
};
const unpackMetricsFromFont = font => {
const unpackMetricsFromFont = (font, options) => {
const {

@@ -483,25 +476,46 @@ capHeight,

xHeight,
xWidthAvg: avgWidthForLang(font, 'en'),
xWidthAvgByLang: sortKeys(avgWidthByLang(font))
xWidthAvg: avgWidthForLang(font, options.language)
};
};
const fromFile = path => fontkit.open(path).then(unpackMetricsFromFont);
const fromBlob = async blob => new Promise((resolve, reject) => {
blobToBuffer(blob, (err, buffer) => {
if (err) {
return reject(err);
}
try {
resolve(unpackMetricsFromFont(fontkit.create(buffer)));
} catch (e) {
reject(e);
}
const resolveOptions = options => {
let language = 'en';
if (!options) {
return {
language
};
} else if (options.language && supportedLanguages.includes(options.language)) {
language = options.language;
} else {
throw new Error("Unsupported language \u201C".concat(options.language, "\u201D. Supported languages are: ").concat(supportedLanguages.join(', ')));
}
return {
language
};
};
const fromFile = (path, options) => {
const resolvedOptions = resolveOptions(options);
return fontkit.open(path).then(font => unpackMetricsFromFont(font, resolvedOptions));
};
const fromBlob = async (blob, options) => {
const resolvedOptions = resolveOptions(options);
return new Promise((resolve, reject) => {
blobToBuffer(blob, (err, buffer) => {
if (err) {
return reject(err);
}
try {
resolve(unpackMetricsFromFont(fontkit.create(buffer), resolvedOptions));
} catch (e) {
reject(e);
}
});
});
});
const fromUrl = async url => {
};
const fromUrl = async (url, options) => {
const response = await fetch(url);
const resolvedOptions = resolveOptions(options);
const blob = await response.blob();
return fromBlob(blob);
return fromBlob(blob, resolvedOptions);
};
export { fromBlob, fromFile, fromUrl };
export { fromBlob, fromFile, fromUrl, supportedLanguages };

@@ -5,3 +5,2 @@ 'use strict';

var sortKeys = require('sort-keys');
require('cross-fetch/polyfill');

@@ -13,3 +12,2 @@ var blobToBuffer = require('blob-to-buffer');

var sortKeys__default = /*#__PURE__*/_interopDefault(sortKeys);
var blobToBuffer__default = /*#__PURE__*/_interopDefault(blobToBuffer);

@@ -447,2 +445,3 @@ var fontkit__default = /*#__PURE__*/_interopDefault(fontkit);

const supportedLanguages = Object.keys(weightings);
const weightingForCharacter = (character, lang) => {

@@ -469,10 +468,3 @@ if (!Object.keys(weightings[lang]).includes(character)) {

};
const avgWidthByLang = font => {
const xWidthAvgByLang = {};
Object.keys(weightings).forEach(lang => {
xWidthAvgByLang[lang] = avgWidthForLang(font, lang);
});
return xWidthAvgByLang;
};
const unpackMetricsFromFont = font => {
const unpackMetricsFromFont = (font, options) => {
const {

@@ -495,27 +487,48 @@ capHeight,

xHeight,
xWidthAvg: avgWidthForLang(font, 'en'),
xWidthAvgByLang: sortKeys__default["default"](avgWidthByLang(font))
xWidthAvg: avgWidthForLang(font, options.language)
};
};
const fromFile = path => fontkit__default["default"].open(path).then(unpackMetricsFromFont);
const fromBlob = async blob => new Promise((resolve, reject) => {
blobToBuffer__default["default"](blob, (err, buffer) => {
if (err) {
return reject(err);
}
try {
resolve(unpackMetricsFromFont(fontkit__default["default"].create(buffer)));
} catch (e) {
reject(e);
}
const resolveOptions = options => {
let language = 'en';
if (!options) {
return {
language
};
} else if (options.language && supportedLanguages.includes(options.language)) {
language = options.language;
} else {
throw new Error("Unsupported language \u201C".concat(options.language, "\u201D. Supported languages are: ").concat(supportedLanguages.join(', ')));
}
return {
language
};
};
const fromFile = (path, options) => {
const resolvedOptions = resolveOptions(options);
return fontkit__default["default"].open(path).then(font => unpackMetricsFromFont(font, resolvedOptions));
};
const fromBlob = async (blob, options) => {
const resolvedOptions = resolveOptions(options);
return new Promise((resolve, reject) => {
blobToBuffer__default["default"](blob, (err, buffer) => {
if (err) {
return reject(err);
}
try {
resolve(unpackMetricsFromFont(fontkit__default["default"].create(buffer), resolvedOptions));
} catch (e) {
reject(e);
}
});
});
});
const fromUrl = async url => {
};
const fromUrl = async (url, options) => {
const response = await fetch(url);
const resolvedOptions = resolveOptions(options);
if (typeof window === 'undefined') {
const data = await response.arrayBuffer();
return unpackMetricsFromFont(fontkit__default["default"].create(Buffer.from(data)));
return unpackMetricsFromFont(fontkit__default["default"].create(Buffer.from(data)), resolvedOptions);
}
const blob = await response.blob();
return fromBlob(blob);
return fromBlob(blob, resolvedOptions);
};

@@ -526,1 +539,2 @@

exports.fromUrl = fromUrl;
exports.supportedLanguages = supportedLanguages;

@@ -5,3 +5,2 @@ 'use strict';

var sortKeys = require('sort-keys');
require('cross-fetch/polyfill');

@@ -13,3 +12,2 @@ var blobToBuffer = require('blob-to-buffer');

var sortKeys__default = /*#__PURE__*/_interopDefault(sortKeys);
var blobToBuffer__default = /*#__PURE__*/_interopDefault(blobToBuffer);

@@ -447,2 +445,3 @@ var fontkit__default = /*#__PURE__*/_interopDefault(fontkit);

const supportedLanguages = Object.keys(weightings);
const weightingForCharacter = (character, lang) => {

@@ -469,10 +468,3 @@ if (!Object.keys(weightings[lang]).includes(character)) {

};
const avgWidthByLang = font => {
const xWidthAvgByLang = {};
Object.keys(weightings).forEach(lang => {
xWidthAvgByLang[lang] = avgWidthForLang(font, lang);
});
return xWidthAvgByLang;
};
const unpackMetricsFromFont = font => {
const unpackMetricsFromFont = (font, options) => {
const {

@@ -495,27 +487,48 @@ capHeight,

xHeight,
xWidthAvg: avgWidthForLang(font, 'en'),
xWidthAvgByLang: sortKeys__default["default"](avgWidthByLang(font))
xWidthAvg: avgWidthForLang(font, options.language)
};
};
const fromFile = path => fontkit__default["default"].open(path).then(unpackMetricsFromFont);
const fromBlob = async blob => new Promise((resolve, reject) => {
blobToBuffer__default["default"](blob, (err, buffer) => {
if (err) {
return reject(err);
}
try {
resolve(unpackMetricsFromFont(fontkit__default["default"].create(buffer)));
} catch (e) {
reject(e);
}
const resolveOptions = options => {
let language = 'en';
if (!options) {
return {
language
};
} else if (options.language && supportedLanguages.includes(options.language)) {
language = options.language;
} else {
throw new Error("Unsupported language \u201C".concat(options.language, "\u201D. Supported languages are: ").concat(supportedLanguages.join(', ')));
}
return {
language
};
};
const fromFile = (path, options) => {
const resolvedOptions = resolveOptions(options);
return fontkit__default["default"].open(path).then(font => unpackMetricsFromFont(font, resolvedOptions));
};
const fromBlob = async (blob, options) => {
const resolvedOptions = resolveOptions(options);
return new Promise((resolve, reject) => {
blobToBuffer__default["default"](blob, (err, buffer) => {
if (err) {
return reject(err);
}
try {
resolve(unpackMetricsFromFont(fontkit__default["default"].create(buffer), resolvedOptions));
} catch (e) {
reject(e);
}
});
});
});
const fromUrl = async url => {
};
const fromUrl = async (url, options) => {
const response = await fetch(url);
const resolvedOptions = resolveOptions(options);
if (typeof window === 'undefined') {
const data = await response.arrayBuffer();
return unpackMetricsFromFont(fontkit__default["default"].create(Buffer.from(data)));
return unpackMetricsFromFont(fontkit__default["default"].create(Buffer.from(data)), resolvedOptions);
}
const blob = await response.blob();
return fromBlob(blob);
return fromBlob(blob, resolvedOptions);
};

@@ -526,1 +539,2 @@

exports.fromUrl = fromUrl;
exports.supportedLanguages = supportedLanguages;

@@ -1,2 +0,1 @@

import sortKeys from 'sort-keys';
import 'cross-fetch/polyfill';

@@ -435,2 +434,3 @@ import blobToBuffer from 'blob-to-buffer';

const supportedLanguages = Object.keys(weightings);
const weightingForCharacter = (character, lang) => {

@@ -457,10 +457,3 @@ if (!Object.keys(weightings[lang]).includes(character)) {

};
const avgWidthByLang = font => {
const xWidthAvgByLang = {};
Object.keys(weightings).forEach(lang => {
xWidthAvgByLang[lang] = avgWidthForLang(font, lang);
});
return xWidthAvgByLang;
};
const unpackMetricsFromFont = font => {
const unpackMetricsFromFont = (font, options) => {
const {

@@ -483,29 +476,50 @@ capHeight,

xHeight,
xWidthAvg: avgWidthForLang(font, 'en'),
xWidthAvgByLang: sortKeys(avgWidthByLang(font))
xWidthAvg: avgWidthForLang(font, options.language)
};
};
const fromFile = path => fontkit.open(path).then(unpackMetricsFromFont);
const fromBlob = async blob => new Promise((resolve, reject) => {
blobToBuffer(blob, (err, buffer) => {
if (err) {
return reject(err);
}
try {
resolve(unpackMetricsFromFont(fontkit.create(buffer)));
} catch (e) {
reject(e);
}
const resolveOptions = options => {
let language = 'en';
if (!options) {
return {
language
};
} else if (options.language && supportedLanguages.includes(options.language)) {
language = options.language;
} else {
throw new Error("Unsupported language \u201C".concat(options.language, "\u201D. Supported languages are: ").concat(supportedLanguages.join(', ')));
}
return {
language
};
};
const fromFile = (path, options) => {
const resolvedOptions = resolveOptions(options);
return fontkit.open(path).then(font => unpackMetricsFromFont(font, resolvedOptions));
};
const fromBlob = async (blob, options) => {
const resolvedOptions = resolveOptions(options);
return new Promise((resolve, reject) => {
blobToBuffer(blob, (err, buffer) => {
if (err) {
return reject(err);
}
try {
resolve(unpackMetricsFromFont(fontkit.create(buffer), resolvedOptions));
} catch (e) {
reject(e);
}
});
});
});
const fromUrl = async url => {
};
const fromUrl = async (url, options) => {
const response = await fetch(url);
const resolvedOptions = resolveOptions(options);
if (typeof window === 'undefined') {
const data = await response.arrayBuffer();
return unpackMetricsFromFont(fontkit.create(Buffer.from(data)));
return unpackMetricsFromFont(fontkit.create(Buffer.from(data)), resolvedOptions);
}
const blob = await response.blob();
return fromBlob(blob);
return fromBlob(blob, resolvedOptions);
};
export { fromBlob, fromFile, fromUrl };
export { fromBlob, fromFile, fromUrl, supportedLanguages };
import 'cross-fetch/polyfill';
import { Font as FontKitFont } from 'fontkit';
declare const unpackMetricsFromFont: (font: FontKitFont) => {
import weightings from './weightings.json';
declare type SupportedLanguage = keyof typeof weightings;
export declare const supportedLanguages: ("de" | "en" | "es" | "fr" | "id" | "it" | "th")[];
interface Options {
language?: SupportedLanguage;
}
declare const unpackMetricsFromFont: (font: FontKitFont, options: Required<Options>) => {
familyName: string;

@@ -12,8 +18,7 @@ capHeight: number;

xWidthAvg: number;
xWidthAvgByLang: Record<"de" | "en" | "es" | "fr" | "id" | "it" | "th", number>;
};
export declare type Font = ReturnType<typeof unpackMetricsFromFont>;
export declare const fromFile: (path: string) => Promise<Font>;
export declare const fromBlob: (blob: Blob) => Promise<Font>;
export declare const fromUrl: (url: string) => Promise<Font>;
export declare const fromFile: (path: string, options?: Options) => Promise<Font>;
export declare const fromBlob: (blob: Blob, options?: Options) => Promise<Font>;
export declare const fromUrl: (url: string, options?: Options) => Promise<Font>;
export {};
{
"name": "@capsizecss/unpack",
"version": "0.0.0-add-language-support-20231121023926",
"version": "0.0.0-add-language-support-v2-20231129052138",
"description": "Unpack capsize font metrics from fonts",

@@ -5,0 +5,0 @@ "main": "dist/capsizecss-unpack.cjs.js",

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc