Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

@stablelib/utf8

Package Overview
Dependencies
Maintainers
1
Versions
10
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@stablelib/utf8 - npm Package Compare versions

Comparing version 1.0.1 to 1.0.2

41

lib/utf8.bench.js

@@ -5,9 +5,38 @@ "use strict";

Object.defineProperty(exports, "__esModule", { value: true });
var utf8_1 = require("./utf8");
var benchmark_1 = require("@stablelib/benchmark");
var text = "\u2014 \u0415h bien, mon prince. G\u00EAnes et Lucques ne sont plus que des apanages,\ndes \u043F\u043E\u043C\u0435\u0441\u0442\u044C\u044F, de la famille Buonaparte. Non, je vous pr\u00E9viens, que si vous\nne me dites pas, que nous avons la guerre, si vous vous permettez encore de\npallier toutes les infamies, toutes les atrocit\u00E9s de cet Antichrist (ma\nparole, j'y crois) -- je ne vous connais plus, vous n'\u00EAtes plus mon ami,\nvous n'\u00EAtes plus \u043C\u043E\u0439 \u0432\u0435\u0440\u043D\u044B\u0439 \u0440\u0430\u0431, comme vous dites. [1] \u041D\u0443,\n\u0437\u0434\u0440\u0430\u0432\u0441\u0442\u0432\u0443\u0439\u0442\u0435, \u0437\u0434\u0440\u0430\u0432\u0441\u0442\u0432\u0443\u0439\u0442\u0435. Je vois que je vous fais peur, [2]\n\u0441\u0430\u0434\u0438\u0442\u0435\u0441\u044C \u0438 \u0440\u0430\u0441\u0441\u043A\u0430\u0437\u044B\u0432\u0430\u0439\u0442\u0435.\n \u0422\u0430\u043A \u0433\u043E\u0432\u043E\u0440\u0438\u043B\u0430 \u0432 \u0438\u044E\u043B\u0435 1805 \u0433\u043E\u0434\u0430 \u0438\u0437\u0432\u0435\u0441\u0442\u043D\u0430\u044F \u0410\u043D\u043D\u0430 \u041F\u0430\u0432\u043B\u043E\u0432\u043D\u0430 \u0428\u0435\u0440\u0435\u0440, \u0444\u0440\u0435\u0439\u043B\u0438\u043D\u0430 \u0438\n\u043F\u0440\u0438\u0431\u043B\u0438\u0436\u0435\u043D\u043D\u0430\u044F \u0438\u043C\u043F\u0435\u0440\u0430\u0442\u0440\u0438\u0446\u044B \u041C\u0430\u0440\u0438\u0438 \u0424\u0435\u043E\u0434\u043E\u0440\u043E\u0432\u043D\u044B, \u0432\u0441\u0442\u0440\u0435\u0447\u0430\u044F \u0432\u0430\u0436\u043D\u043E\u0433\u043E \u0438 \u0447\u0438\u043D\u043E\u0432\u043D\u043E\u0433\u043E\n\u043A\u043D\u044F\u0437\u044F \u0412\u0430\u0441\u0438\u043B\u0438\u044F, \u043F\u0435\u0440\u0432\u043E\u0433\u043E \u043F\u0440\u0438\u0435\u0445\u0430\u0432\u0448\u0435\u0433\u043E \u043D\u0430 \u0435\u0435 \u0432\u0435\u0447\u0435\u0440. \u0410\u043D\u043D\u0430 \u041F\u0430\u0432\u043B\u043E\u0432\u043D\u0430 \u043A\u0430\u0448\u043B\u044F\u043B\u0430\n\u043D\u0435\u0441\u043A\u043E\u043B\u044C\u043A\u043E \u0434\u043D\u0435\u0439, \u0443 \u043D\u0435\u0435 \u0431\u044B\u043B \u0433\u0440\u0438\u043F\u043F, \u043A\u0430\u043A \u043E\u043D\u0430 \u0433\u043E\u0432\u043E\u0440\u0438\u043B\u0430 (\u0433\u0440\u0438\u043F\u043F \u0431\u044B\u043B \u0442\u043E\u0433\u0434\u0430 \u043D\u043E\u0432\u043E\u0435\n\u0441\u043B\u043E\u0432\u043E, \u0443\u043F\u043E\u0442\u0440\u0435\u0431\u043B\u044F\u0432\u0448\u0435\u0435\u0441\u044F \u0442\u043E\u043B\u044C\u043A\u043E \u0440\u0435\u0434\u043A\u0438\u043C\u0438). \u0412 \u0437\u0430\u043F\u0438\u0441\u043E\u0447\u043A\u0430\u0445, \u0440\u0430\u0437\u043E\u0441\u043B\u0430\u043D\u043D\u044B\u0445 \u0443\u0442\u0440\u043E\u043C \u0441\n\u043A\u0440\u0430\u0441\u043D\u044B\u043C \u043B\u0430\u043A\u0435\u0435\u043C, \u0431\u044B\u043B\u043E \u043D\u0430\u043F\u0438\u0441\u0430\u043D\u043E \u0431\u0435\u0437 \u0440\u0430\u0437\u043B\u0438\u0447\u0438\u044F \u0432\u043E \u0432\u0441\u0435\u0445:\n\n \"Si vous n'avez rien de mieux \u00E0 faire, M. le comte (\u0438\u043B\u0438 mon prince), et\nsi la perspective de passer la soir\u00E9e chez une pauvre malade ne vous effraye\npas trop, je serai charm\u00E9e de vous voir chez moi entre 7 et 10 heures.\nAnnette Scherer\".[3]\n\n \u2014 Dieu, quelle virulente sortie [4] -- \u043E\u0442\u0432\u0435\u0447\u0430\u043B, \u043D\u0438\u0441\u043A\u043E\u043B\u044C\u043A\u043E \u043D\u0435\n\u0441\u043C\u0443\u0442\u044F\u0441\u044C \u0442\u0430\u043A\u043E\u044E \u0432\u0441\u0442\u0440\u0435\u0447\u0435\u0439, \u0432\u043E\u0448\u0435\u0434\u0448\u0438\u0439 \u043A\u043D\u044F\u0437\u044C, \u0432 \u043F\u0440\u0438\u0434\u0432\u043E\u0440\u043D\u043E\u043C, \u0448\u0438\u0442\u043E\u043C \u043C\u0443\u043D\u0434\u0438\u0440\u0435, \u0432\n\u0447\u0443\u043B\u043A\u0430\u0445, \uD83D\uDE06 \uD83D\uDE4F\uD83C\uDFFD \uD83D\uDCB9 \u0431\u0430\u0448\u043C\u0430\u043A\u0430\u0445, \u043F\u0440\u0438 \u0437\u0432\u0435\u0437\u0434\u0430\u0445, \u0441 \u0441\u0432\u0435\u0442\u043B\u044B\u043C \u0432\u044B\u0440\u0430\u0436\u0435\u043D\u0438\u0435\u043C \u043F\u043B\u043E\u0441\u043A\u043E\u0433\u043E \u043B\u0438\u0446\u0430.\n\u041E\u043D \u0433\u043E\u0432\u043E\u0440\u0438\u043B \u043D\u0430 \u0442\u043E\u043C \u0438\u0437\u044B\u0441\u043A\u0430\u043D\u043D\u043E\u043C \u0444\u0440\u0430\u043D\u0446\u0443\u0437\u0441\u043A\u043E\u043C \u044F\u0437\u044B\u043A\u0435, \u043D\u0430 \u043A\u043E\u0442\u043E\u0440\u043E\u043C \u043D\u0435 \u0442\u043E\u043B\u044C\u043A\u043E \u0433\u043E\u0432\u043E\u0440\u0438\u043B\u0438,\n\u043D\u043E \u0438 \u0434\u0443\u043C\u0430\u043B\u0438 \u043D\u0430\u0448\u0438 \u0434\u0435\u0434\u044B, \u0438 \u0441 \u0442\u0435\u043C\u0438 \u0442\u0438\u0445\u0438\u043C\u0438, \u043F\u043E\u043A\u0440\u043E\u0432\u0438\u0442\u0435\u043B\u044C\u0441\u0442\u0432\u0435\u043D\u043D\u044B\u043C\u0438 \u0438\u043D\u0442\u043E\u043D\u0430\u0446\u0438\u044F\u043C\u0438,\n\u043A\u043E\u0442\u043E\u0440\u044B\u0435 \u0441\u0432\u043E\u0439\u0441\u0442\u0432\u0435\u043D\u043D\u044B \u0441\u043E\u0441\u0442\u0430\u0440\u0435\u0432\u0448\u0435\u043C\u0443\u0441\u044F \u0432 \u0441\u0432\u0435\u0442\u0435 \u0438 \u043F\u0440\u0438 \u0434\u0432\u043E\u0440\u0435 \u0437\u043D\u0430\u0447\u0438\u0442\u0435\u043B\u044C\u043D\u043E\u043C\u0443\n\u0447\u0435\u043B\u043E\u0432\u0435\u043A\u0443. \u041E\u043D \u043F\u043E\u0434\u043E\u0448\u0435\u043B \u043A \u0410\u043D\u043D\u0435 \u041F\u0430\u0432\u043B\u043E\u0432\u043D\u0435, \u043F\u043E\u0446\u0435\u043B\u043E\u0432\u0430\u043B \u0435\u0435 \u0440\u0443\u043A\u0443, \u043F\u043E\u0434\u0441\u0442\u0430\u0432\u0438\u0432 \u0435\u0439 \u0441\u0432\u043E\u044E\n\u043D\u0430\u0434\u0443\u0448\u0435\u043D\u043D\u0443\u044E \u0438 \u0441\u0438\u044F\u044E\u0449\u0443\u044E \u043B\u044B\u0441\u0438\u043D\u0443, \u0438 \u043F\u043E\u043A\u043E\u0439\u043D\u043E \u0443\u0441\u0435\u043B\u0441\u044F \u043D\u0430 \u0434\u0438\u0432\u0430\u043D\u0435.\n\n\u6230\u722D\u8207\u548C\u5E73 \u5217\u592B\u00B7\u6258\u723E\u65AF\u6CF0 \uD835\uDFD8\uD835\uDFD9\uD835\uDFDA\uD835\uDFDB\uD835\uDFDC\uD835\uDFDD\uD835\uDFDE\uD835\uDFDF\uD835\uDFE0\uD835\uDFE1";
var enc = utf8_1.encode(text);
const utf8_1 = require("./utf8");
const benchmark_1 = require("@stablelib/benchmark");
const text = `— Еh bien, mon prince. Gênes et Lucques ne sont plus que des apanages,
des поместья, de la famille Buonaparte. Non, je vous préviens, que si vous
ne me dites pas, que nous avons la guerre, si vous vous permettez encore de
pallier toutes les infamies, toutes les atrocités de cet Antichrist (ma
parole, j'y crois) -- je ne vous connais plus, vous n'êtes plus mon ami,
vous n'êtes plus мой верный раб, comme vous dites. [1] Ну,
здравствуйте, здравствуйте. Je vois que je vous fais peur, [2]
садитесь и рассказывайте.
Так говорила в июле 1805 года известная Анна Павловна Шерер, фрейлина и
приближенная императрицы Марии Феодоровны, встречая важного и чиновного
князя Василия, первого приехавшего на ее вечер. Анна Павловна кашляла
несколько дней, у нее был грипп, как она говорила (грипп был тогда новое
слово, употреблявшееся только редкими). В записочках, разосланных утром с
красным лакеем, было написано без различия во всех:
"Si vous n'avez rien de mieux à faire, M. le comte (или mon prince), et
si la perspective de passer la soirée chez une pauvre malade ne vous effraye
pas trop, je serai charmée de vous voir chez moi entre 7 et 10 heures.
Annette Scherer".[3]
— Dieu, quelle virulente sortie [4] -- отвечал, нисколько не
смутясь такою встречей, вошедший князь, в придворном, шитом мундире, в
чулках, 😆 🙏🏽 💹 башмаках, при звездах, с светлым выражением плоского лица.
Он говорил на том изысканном французском языке, на котором не только говорили,
но и думали наши деды, и с теми тихими, покровительственными интонациями,
которые свойственны состаревшемуся в свете и при дворе значительному
человеку. Он подошел к Анне Павловне, поцеловал ее руку, подставив ей свою
надушенную и сияющую лысину, и покойно уселся на диване.
戰爭與和平 列夫·托爾斯泰 𝟘𝟙𝟚𝟛𝟜𝟝𝟞𝟟𝟠𝟡`;
const enc = (0, utf8_1.encode)(text);
// Benchmarks report MiB/s for bytes (UTF-8 encoded).
benchmark_1.report("utf8 encode", benchmark_1.benchmark(function () { return utf8_1.encode(text); }, enc.length));
benchmark_1.report("utf8 decode", benchmark_1.benchmark(function () { return utf8_1.decode(enc); }, enc.length));
(0, benchmark_1.report)("utf8 encode", (0, benchmark_1.benchmark)(() => (0, utf8_1.encode)(text), enc.length));
(0, benchmark_1.report)("utf8 decode", (0, benchmark_1.benchmark)(() => (0, utf8_1.decode)(enc), enc.length));
//# sourceMappingURL=utf8.bench.js.map

91

lib/utf8.js

@@ -5,7 +5,8 @@ "use strict";

Object.defineProperty(exports, "__esModule", { value: true });
exports.decode = exports.encodedLength = exports.encode = void 0;
/**
* Package utf8 implements UTF-8 encoding and decoding.
*/
var INVALID_UTF16 = "utf8: invalid string";
var INVALID_UTF8 = "utf8: invalid source encoding";
const INVALID_UTF16 = "utf8: invalid string";
const INVALID_UTF8 = "utf8: invalid source encoding";
/**

@@ -17,8 +18,11 @@ * Encodes the given string into UTF-8 byte array.

// Calculate result length and allocate output array.
// encodedLength() also validates string and throws errors,
// encodedLength() validates string and throws errors,
// so we don't need repeat validation here.
var arr = new Uint8Array(encodedLength(s));
var pos = 0;
for (var i = 0; i < s.length; i++) {
var c = s.charCodeAt(i);
const arr = new Uint8Array(encodedLength(s));
let pos = 0;
for (let i = 0; i < s.length; i++) {
let c = s.charCodeAt(i);
if (c >= 0xd800 && c <= 0xdbff) {
c = ((c - 0xd800) << 10) + (s.charCodeAt(++i) - 0xdc00) + 0x10000;
}
if (c < 0x80) {

@@ -28,19 +32,15 @@ arr[pos++] = c;

else if (c < 0x800) {
arr[pos++] = 0xc0 | c >> 6;
arr[pos++] = 0x80 | c & 0x3f;
arr[pos++] = 0xc0 | (c >> 6);
arr[pos++] = 0x80 | (c & 0x3f);
}
else if (c < 0xd800) {
arr[pos++] = 0xe0 | c >> 12;
arr[pos++] = 0x80 | (c >> 6) & 0x3f;
arr[pos++] = 0x80 | c & 0x3f;
else if (c < 0x10000) {
arr[pos++] = 0xe0 | (c >> 12);
arr[pos++] = 0x80 | ((c >> 6) & 0x3f);
arr[pos++] = 0x80 | (c & 0x3f);
}
else {
i++; // get one more character
c = (c & 0x3ff) << 10;
c |= s.charCodeAt(i) & 0x3ff;
c += 0x10000;
arr[pos++] = 0xf0 | c >> 18;
arr[pos++] = 0x80 | (c >> 12) & 0x3f;
arr[pos++] = 0x80 | (c >> 6) & 0x3f;
arr[pos++] = 0x80 | c & 0x3f;
arr[pos++] = 0xf0 | (c >> 18);
arr[pos++] = 0x80 | ((c >> 12) & 0x3f);
arr[pos++] = 0x80 | ((c >> 6) & 0x3f);
arr[pos++] = 0x80 | (c & 0x3f);
}

@@ -56,5 +56,17 @@ }

function encodedLength(s) {
var result = 0;
for (var i = 0; i < s.length; i++) {
var c = s.charCodeAt(i);
let result = 0;
for (let i = 0; i < s.length; i++) {
let c = s.charCodeAt(i);
if (c >= 0xd800 && c <= 0xdbff) {
// surrogate pair
if (i === s.length - 1) {
throw new Error(INVALID_UTF16);
}
i++;
const c2 = s.charCodeAt(i);
if (c2 < 0xdc00 || c2 > 0xdfff) {
throw new Error(INVALID_UTF16);
}
c = ((c - 0xd800) << 10) + (c2 - 0xdc00) + 0x10000;
}
if (c < 0x80) {

@@ -66,15 +78,8 @@ result += 1;

}
else if (c < 0xd800) {
else if (c < 0x10000) {
result += 3;
}
else if (c <= 0xdfff) {
if (i >= s.length - 1) {
throw new Error(INVALID_UTF16);
}
i++; // "eat" next character
else {
result += 4;
}
else {
throw new Error(INVALID_UTF16);
}
}

@@ -89,7 +94,7 @@ return result;

function decode(arr) {
var chars = [];
for (var i = 0; i < arr.length; i++) {
var b = arr[i];
const chars = [];
for (let i = 0; i < arr.length; i++) {
let b = arr[i];
if (b & 0x80) {
var min = void 0;
let min;
if (b < 0xe0) {

@@ -100,3 +105,3 @@ // Need 1 more byte.

}
var n1 = arr[++i];
const n1 = arr[++i];
if ((n1 & 0xc0) !== 0x80) {

@@ -113,4 +118,4 @@ throw new Error(INVALID_UTF8);

}
var n1 = arr[++i];
var n2 = arr[++i];
const n1 = arr[++i];
const n2 = arr[++i];
if ((n1 & 0xc0) !== 0x80 || (n2 & 0xc0) !== 0x80) {

@@ -127,5 +132,5 @@ throw new Error(INVALID_UTF8);

}
var n1 = arr[++i];
var n2 = arr[++i];
var n3 = arr[++i];
const n1 = arr[++i];
const n2 = arr[++i];
const n3 = arr[++i];
if ((n1 & 0xc0) !== 0x80 || (n2 & 0xc0) !== 0x80 || (n3 & 0xc0) !== 0x80) {

@@ -132,0 +137,0 @@ throw new Error(INVALID_UTF8);

@@ -5,7 +5,7 @@ "use strict";

Object.defineProperty(exports, "__esModule", { value: true });
var hex = require("@stablelib/hex");
var utf8_1 = require("./utf8");
describe("utf8", function () {
it("should encode and decode strings", function () {
var tests = [
const hex = require("@stablelib/hex");
const utf8_1 = require("./utf8");
describe("utf8", () => {
it("should encode and decode strings", () => {
const tests = [
"abcdef",

@@ -17,11 +17,12 @@ "☺☻☹",

"test 测试 тест",
"𝟘𝟙𝟚𝟛𝟜𝟝𝟞𝟟𝟠𝟡"
"𝟘𝟙𝟚𝟛𝟜𝟝𝟞𝟟𝟠𝟡",
"❤️"
];
var encoded = tests.map(utf8_1.encode);
var decoded = encoded.map(utf8_1.decode);
const encoded = tests.map(utf8_1.encode);
const decoded = encoded.map(utf8_1.decode);
expect(decoded).toEqual(tests);
});
it("should not decode malformed bytes", function () {
it("should not decode malformed bytes", () => {
// Source: https://hsivonen.fi/broken-utf-8/test.html
var tests = [
const tests = [
// Non-shortest forms for lowest single-byte (U+0000)

@@ -102,6 +103,6 @@ "C0 80",

];
tests.forEach(function (s, i) {
var b = hex.decode(s.replace(/ /g, ""));
expect(function () {
var x = utf8_1.decode(b);
tests.forEach((s, i) => {
const b = hex.decode(s.replace(/ /g, ""));
expect(() => {
const x = (0, utf8_1.decode)(b);
// The following will only run in case of unsuccessful test:

@@ -112,9 +113,9 @@ console.log(i, "should not have decoded", s, "to", x);

});
it("should decode a huge string", function () {
var s = "";
for (var i = 0; i < 1024 * 1024; i++) {
it("should decode a huge string", () => {
let s = "";
for (let i = 0; i < 1024 * 1024; i++) {
s += "это test";
}
var enc = utf8_1.encode(s);
var dec = utf8_1.decode(enc);
const enc = (0, utf8_1.encode)(s);
const dec = (0, utf8_1.decode)(enc);
expect(dec).toEqual(s);

@@ -121,0 +122,0 @@ });

{
"name": "@stablelib/utf8",
"version": "1.0.1",
"version": "1.0.2",
"description": "UTF-8 encoder and decoder",

@@ -25,3 +25,3 @@ "main": "./lib/utf8.js",

},
"gitHead": "03dadf27703120d54e6be8436525228ee1c4299b"
"gitHead": "5243520e343c217b6a751464dec1bc980cb510d8"
}
{
"extends": "../../configs/tsconfig.json",
"compilerOptions": {
"target": "es5",
"module": "commonjs",
"strict": true,
"noUnusedParameters": true,
"noImplicitReturns": true,
"noUnusedLocals": true,
"removeComments": false,
"preserveConstEnums": true,
"moduleResolution": "node",
"newLine": "LF",
"sourceMap": true,
"declaration": true,
"outDir": "lib",
"lib": [
"es5",
"es2015.promise",
"dom",
"scripthost"
]
},

@@ -23,0 +6,0 @@ "exclude": [

@@ -16,3 +16,4 @@ // Copyright (C) 2016 Dmitry Chestnykh

"test 测试 тест",
"𝟘𝟙𝟚𝟛𝟜𝟝𝟞𝟟𝟠𝟡"
"𝟘𝟙𝟚𝟛𝟜𝟝𝟞𝟟𝟠𝟡",
"❤️"
];

@@ -19,0 +20,0 @@ const encoded = tests.map(encode);

@@ -17,3 +17,3 @@ // Copyright (C) 2016 Dmitry Chestnykh

// Calculate result length and allocate output array.
// encodedLength() also validates string and throws errors,
// encodedLength() validates string and throws errors,
// so we don't need repeat validation here.

@@ -25,21 +25,19 @@ const arr = new Uint8Array(encodedLength(s));

let c = s.charCodeAt(i);
if (c >= 0xd800 && c <= 0xdbff) {
c = ((c - 0xd800) << 10) + (s.charCodeAt(++i) - 0xdc00) + 0x10000;
}
if (c < 0x80) {
arr[pos++] = c;
} else if (c < 0x800) {
arr[pos++] = 0xc0 | c >> 6;
arr[pos++] = 0x80 | c & 0x3f;
} else if (c < 0xd800) {
arr[pos++] = 0xe0 | c >> 12;
arr[pos++] = 0x80 | (c >> 6) & 0x3f;
arr[pos++] = 0x80 | c & 0x3f;
arr[pos++] = 0xc0 | (c >> 6);
arr[pos++] = 0x80 | (c & 0x3f);
} else if (c < 0x10000) {
arr[pos++] = 0xe0 | (c >> 12);
arr[pos++] = 0x80 | ((c >> 6) & 0x3f);
arr[pos++] = 0x80 | (c & 0x3f);
} else {
i++; // get one more character
c = (c & 0x3ff) << 10;
c |= s.charCodeAt(i) & 0x3ff;
c += 0x10000;
arr[pos++] = 0xf0 | c >> 18;
arr[pos++] = 0x80 | (c >> 12) & 0x3f;
arr[pos++] = 0x80 | (c >> 6) & 0x3f;
arr[pos++] = 0x80 | c & 0x3f;
arr[pos++] = 0xf0 | (c >> 18);
arr[pos++] = 0x80 | ((c >> 12) & 0x3f);
arr[pos++] = 0x80 | ((c >> 6) & 0x3f);
arr[pos++] = 0x80 | (c & 0x3f);
}

@@ -57,3 +55,17 @@ }

for (let i = 0; i < s.length; i++) {
const c = s.charCodeAt(i);
let c = s.charCodeAt(i);
if (c >= 0xd800 && c <= 0xdbff) {
// surrogate pair
if (i === s.length - 1) {
throw new Error(INVALID_UTF16);
}
i++;
const c2 = s.charCodeAt(i);
if (c2 < 0xdc00 || c2 > 0xdfff) {
throw new Error(INVALID_UTF16);
}
c = ((c - 0xd800) << 10) + (c2 - 0xdc00) + 0x10000;
}
if (c < 0x80) {

@@ -63,12 +75,6 @@ result += 1;

result += 2;
} else if (c < 0xd800) {
} else if (c < 0x10000) {
result += 3;
} else if (c <= 0xdfff) {
if (i >= s.length - 1) {
throw new Error(INVALID_UTF16);
}
i++; // "eat" next character
} else {
result += 4;
} else {
throw new Error(INVALID_UTF16);
}

@@ -75,0 +81,0 @@ }

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

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