Comparing version 3.0.2 to 3.0.3
"use strict"; | ||
var __values = (this && this.__values) || function(o) { | ||
var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0; | ||
if (m) return m.call(o); | ||
if (o && typeof o.length === "number") return { | ||
next: function () { | ||
if (o && i >= o.length) o = void 0; | ||
return { value: o && o[i++], done: !o }; | ||
} | ||
}; | ||
throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined."); | ||
}; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
exports.addSlashes = void 0; | ||
var get_escaped_any_1 = require("./get-escaped-any"); | ||
var get_escaped_json_unsafe_1 = require("./get-escaped-json-unsafe"); | ||
var addSlashes = function (str, _a) { | ||
var e_1, _b; | ||
var _c = _a === void 0 ? {} : _a, _d = _c.getEscaped, getEscaped = _d === void 0 ? get_escaped_json_unsafe_1.getEscapedJsonUnsafe : _d; | ||
var result = ''; | ||
try { | ||
for (var str_1 = __values(str), str_1_1 = str_1.next(); !str_1_1.done; str_1_1 = str_1.next()) { | ||
var char = str_1_1.value; | ||
if (char === '\\') { | ||
result += '\\\\'; | ||
continue; | ||
} | ||
var escaped = getEscaped(char); | ||
if (!escaped) { | ||
result += char; | ||
} | ||
else if (escaped === true) { | ||
result += (0, get_escaped_any_1.getEscapedAny)(char); | ||
} | ||
else { | ||
result += escaped; | ||
} | ||
const get_escaped_any_1 = require("./get-escaped-any"); | ||
const get_escaped_json_unsafe_1 = require("./get-escaped-json-unsafe"); | ||
const addSlashes = (str, { getEscaped = get_escaped_json_unsafe_1.getEscapedJsonUnsafe } = {}) => { | ||
let result = ''; | ||
for (const char of str) { | ||
if (char === '\\') { | ||
result += '\\\\'; | ||
continue; | ||
} | ||
} | ||
catch (e_1_1) { e_1 = { error: e_1_1 }; } | ||
finally { | ||
try { | ||
if (str_1_1 && !str_1_1.done && (_b = str_1.return)) _b.call(str_1); | ||
const escaped = getEscaped(char); | ||
if (!escaped) { | ||
result += char; | ||
} | ||
finally { if (e_1) throw e_1.error; } | ||
else if (escaped === true) { | ||
result += (0, get_escaped_any_1.getEscapedAny)(char); | ||
} | ||
else { | ||
result += escaped; | ||
} | ||
} | ||
@@ -47,0 +24,0 @@ return result; |
"use strict"; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
exports.getEscapedAny = void 0; | ||
var getEscapedAny = function (char) { | ||
const getEscapedAny = (char) => { | ||
switch (char) { | ||
@@ -16,8 +16,8 @@ case '\b': | ||
return '\\t'; | ||
case "\"": | ||
return "\\".concat(char); | ||
case `"`: | ||
return `\\${char}`; | ||
} | ||
var unicode = ''; | ||
for (var index = char.length - 1; index >= 0; index--) { | ||
unicode = "\\u".concat(('000' + char.charCodeAt(index).toString(16)).slice(-4)).concat(unicode); | ||
let unicode = ''; | ||
for (let index = char.length - 1; index >= 0; index--) { | ||
unicode = `\\u${('000' + char.charCodeAt(index).toString(16)).slice(-4)}${unicode}`; | ||
} | ||
@@ -24,0 +24,0 @@ return unicode; |
"use strict"; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
exports.getEscapedJsonUnsafe = void 0; | ||
var getEscapedJsonUnsafe = function (char) { | ||
const getEscapedJsonUnsafe = (char) => { | ||
switch (char) { | ||
@@ -13,3 +13,3 @@ case '\b': | ||
case '\0': | ||
case "\"": | ||
case `"`: | ||
return true; | ||
@@ -16,0 +16,0 @@ } |
"use strict"; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
exports.getUnescapedAny = void 0; | ||
var getUnescapedAny = function (sequence, code) { | ||
const getUnescapedAny = (sequence, code) => { | ||
if (code != null) { | ||
@@ -6,0 +6,0 @@ return String.fromCodePoint(code); |
import { type EscapeSequence } from './types/escape-sequence'; | ||
declare type RemoveSlashesOptions = { | ||
readonly getUnescaped?: (sequence: EscapeSequence, code: number | null) => string | false; | ||
readonly getUnescaped?: (sequence: EscapeSequence, code: number | null) => boolean | string; | ||
}; | ||
@@ -5,0 +5,0 @@ declare const removeSlashes: (source: string, { getUnescaped }?: RemoveSlashesOptions) => string; |
"use strict"; | ||
var __read = (this && this.__read) || function (o, n) { | ||
var m = typeof Symbol === "function" && o[Symbol.iterator]; | ||
if (!m) return o; | ||
var i = m.call(o), r, ar = [], e; | ||
try { | ||
while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value); | ||
} | ||
catch (error) { e = { error: error }; } | ||
finally { | ||
try { | ||
if (r && !r.done && (m = i["return"])) m.call(i); | ||
} | ||
finally { if (e) throw e.error; } | ||
} | ||
return ar; | ||
}; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
exports.stripSlashes = exports.removeSlashes = void 0; | ||
var get_unescaped_any_1 = require("./get-unescaped-any"); | ||
var removeSlashes = function (source, _a) { | ||
var _b = _a === void 0 ? {} : _a, _c = _b.getUnescaped, getUnescaped = _c === void 0 ? get_unescaped_any_1.getUnescapedAny : _c; | ||
var rx = /(?:\\(u([0-9a-f]{4})|u\{([0-9a-f]+)\}|x([0-9a-f]{2})|(\d{1,3})|([\s\S]|$))|[\s\S])/giu; | ||
var match; | ||
var result = ''; | ||
const get_unescaped_any_1 = require("./get-unescaped-any"); | ||
const removeSlashes = (source, { getUnescaped = get_unescaped_any_1.getUnescapedAny } = {}) => { | ||
const rx = /(?:(\\(u([0-9a-f]{4})|u\{([0-9a-f]+)\}|x([0-9a-f]{2})|(\d{1,3})|([\s\S]|$)))|([\s\S]))/giu; | ||
let match; | ||
let result = ''; | ||
while (null != (match = rx.exec(source))) { | ||
var _d = __read(match, 7), sequence = _d[0], escapedFallback = _d[1], unicode = _d[2], unicodePoint = _d[3], hex = _d[4], octal = _d[5], char = _d[6]; | ||
const [, sequence, fallback, unicode, unicodePoint, hex, octal, char, literal] = match; | ||
if (literal) { | ||
result += literal; | ||
continue; | ||
} | ||
let code; | ||
if (char != null) { | ||
code = null; | ||
} | ||
else if (octal) { | ||
code = Number.parseInt(octal, 8); | ||
} | ||
else { | ||
code = Number.parseInt(unicodePoint || unicode || hex, 16); | ||
} | ||
try { | ||
if (char != null) { | ||
result += getUnescaped(sequence, null) || escapedFallback; | ||
const unescaped = getUnescaped(sequence, code); | ||
if (!unescaped) { | ||
result += fallback; | ||
} | ||
else if (octal) { | ||
result += getUnescaped(sequence, Number.parseInt(octal, 8)) || escapedFallback; | ||
else if (unescaped === true) { | ||
result += (0, get_unescaped_any_1.getUnescapedAny)(sequence, code) || fallback; | ||
} | ||
else { | ||
var code = unicodePoint || unicode || hex; | ||
if (code) { | ||
result += getUnescaped(sequence, Number.parseInt(code, 16)) || escapedFallback; | ||
} | ||
else { | ||
result += sequence; | ||
} | ||
result += unescaped; | ||
} | ||
} | ||
catch (_error) { | ||
result += escapedFallback; | ||
result += fallback; | ||
} | ||
@@ -52,4 +44,4 @@ } | ||
exports.removeSlashes = removeSlashes; | ||
var stripSlashes = removeSlashes; | ||
const stripSlashes = removeSlashes; | ||
exports.stripSlashes = stripSlashes; | ||
//# sourceMappingURL=remove-slashes.js.map |
@@ -1,43 +0,20 @@ | ||
var __values = (this && this.__values) || function(o) { | ||
var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0; | ||
if (m) return m.call(o); | ||
if (o && typeof o.length === "number") return { | ||
next: function () { | ||
if (o && i >= o.length) o = void 0; | ||
return { value: o && o[i++], done: !o }; | ||
} | ||
}; | ||
throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined."); | ||
}; | ||
import { getEscapedAny } from './get-escaped-any'; | ||
import { getEscapedJsonUnsafe } from './get-escaped-json-unsafe'; | ||
var addSlashes = function (str, _a) { | ||
var e_1, _b; | ||
var _c = _a === void 0 ? {} : _a, _d = _c.getEscaped, getEscaped = _d === void 0 ? getEscapedJsonUnsafe : _d; | ||
var result = ''; | ||
try { | ||
for (var str_1 = __values(str), str_1_1 = str_1.next(); !str_1_1.done; str_1_1 = str_1.next()) { | ||
var char = str_1_1.value; | ||
if (char === '\\') { | ||
result += '\\\\'; | ||
continue; | ||
} | ||
var escaped = getEscaped(char); | ||
if (!escaped) { | ||
result += char; | ||
} | ||
else if (escaped === true) { | ||
result += getEscapedAny(char); | ||
} | ||
else { | ||
result += escaped; | ||
} | ||
const addSlashes = (str, { getEscaped = getEscapedJsonUnsafe } = {}) => { | ||
let result = ''; | ||
for (const char of str) { | ||
if (char === '\\') { | ||
result += '\\\\'; | ||
continue; | ||
} | ||
} | ||
catch (e_1_1) { e_1 = { error: e_1_1 }; } | ||
finally { | ||
try { | ||
if (str_1_1 && !str_1_1.done && (_b = str_1.return)) _b.call(str_1); | ||
const escaped = getEscaped(char); | ||
if (!escaped) { | ||
result += char; | ||
} | ||
finally { if (e_1) throw e_1.error; } | ||
else if (escaped === true) { | ||
result += getEscapedAny(char); | ||
} | ||
else { | ||
result += escaped; | ||
} | ||
} | ||
@@ -44,0 +21,0 @@ return result; |
@@ -1,2 +0,2 @@ | ||
var getEscapedAny = function (char) { | ||
const getEscapedAny = (char) => { | ||
switch (char) { | ||
@@ -13,8 +13,8 @@ case '\b': | ||
return '\\t'; | ||
case "\"": | ||
return "\\".concat(char); | ||
case `"`: | ||
return `\\${char}`; | ||
} | ||
var unicode = ''; | ||
for (var index = char.length - 1; index >= 0; index--) { | ||
unicode = "\\u".concat(('000' + char.charCodeAt(index).toString(16)).slice(-4)).concat(unicode); | ||
let unicode = ''; | ||
for (let index = char.length - 1; index >= 0; index--) { | ||
unicode = `\\u${('000' + char.charCodeAt(index).toString(16)).slice(-4)}${unicode}`; | ||
} | ||
@@ -21,0 +21,0 @@ return unicode; |
@@ -1,2 +0,2 @@ | ||
var getEscapedJsonUnsafe = function (char) { | ||
const getEscapedJsonUnsafe = (char) => { | ||
switch (char) { | ||
@@ -10,3 +10,3 @@ case '\b': | ||
case '\0': | ||
case "\"": | ||
case `"`: | ||
return true; | ||
@@ -13,0 +13,0 @@ } |
@@ -1,2 +0,2 @@ | ||
var getUnescapedAny = function (sequence, code) { | ||
const getUnescapedAny = (sequence, code) => { | ||
if (code != null) { | ||
@@ -3,0 +3,0 @@ return String.fromCodePoint(code); |
import { type EscapeSequence } from './types/escape-sequence'; | ||
declare type RemoveSlashesOptions = { | ||
readonly getUnescaped?: (sequence: EscapeSequence, code: number | null) => string | false; | ||
readonly getUnescaped?: (sequence: EscapeSequence, code: number | null) => boolean | string; | ||
}; | ||
@@ -5,0 +5,0 @@ declare const removeSlashes: (source: string, { getUnescaped }?: RemoveSlashesOptions) => string; |
@@ -1,44 +0,36 @@ | ||
var __read = (this && this.__read) || function (o, n) { | ||
var m = typeof Symbol === "function" && o[Symbol.iterator]; | ||
if (!m) return o; | ||
var i = m.call(o), r, ar = [], e; | ||
try { | ||
while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value); | ||
} | ||
catch (error) { e = { error: error }; } | ||
finally { | ||
try { | ||
if (r && !r.done && (m = i["return"])) m.call(i); | ||
} | ||
finally { if (e) throw e.error; } | ||
} | ||
return ar; | ||
}; | ||
import { getUnescapedAny } from './get-unescaped-any'; | ||
var removeSlashes = function (source, _a) { | ||
var _b = _a === void 0 ? {} : _a, _c = _b.getUnescaped, getUnescaped = _c === void 0 ? getUnescapedAny : _c; | ||
var rx = /(?:\\(u([0-9a-f]{4})|u\{([0-9a-f]+)\}|x([0-9a-f]{2})|(\d{1,3})|([\s\S]|$))|[\s\S])/giu; | ||
var match; | ||
var result = ''; | ||
const removeSlashes = (source, { getUnescaped = getUnescapedAny } = {}) => { | ||
const rx = /(?:(\\(u([0-9a-f]{4})|u\{([0-9a-f]+)\}|x([0-9a-f]{2})|(\d{1,3})|([\s\S]|$)))|([\s\S]))/giu; | ||
let match; | ||
let result = ''; | ||
while (null != (match = rx.exec(source))) { | ||
var _d = __read(match, 7), sequence = _d[0], escapedFallback = _d[1], unicode = _d[2], unicodePoint = _d[3], hex = _d[4], octal = _d[5], char = _d[6]; | ||
const [, sequence, fallback, unicode, unicodePoint, hex, octal, char, literal] = match; | ||
if (literal) { | ||
result += literal; | ||
continue; | ||
} | ||
let code; | ||
if (char != null) { | ||
code = null; | ||
} | ||
else if (octal) { | ||
code = Number.parseInt(octal, 8); | ||
} | ||
else { | ||
code = Number.parseInt(unicodePoint || unicode || hex, 16); | ||
} | ||
try { | ||
if (char != null) { | ||
result += getUnescaped(sequence, null) || escapedFallback; | ||
const unescaped = getUnescaped(sequence, code); | ||
if (!unescaped) { | ||
result += fallback; | ||
} | ||
else if (octal) { | ||
result += getUnescaped(sequence, Number.parseInt(octal, 8)) || escapedFallback; | ||
else if (unescaped === true) { | ||
result += getUnescapedAny(sequence, code) || fallback; | ||
} | ||
else { | ||
var code = unicodePoint || unicode || hex; | ||
if (code) { | ||
result += getUnescaped(sequence, Number.parseInt(code, 16)) || escapedFallback; | ||
} | ||
else { | ||
result += sequence; | ||
} | ||
result += unescaped; | ||
} | ||
} | ||
catch (_error) { | ||
result += escapedFallback; | ||
result += fallback; | ||
} | ||
@@ -48,4 +40,4 @@ } | ||
}; | ||
var stripSlashes = removeSlashes; | ||
const stripSlashes = removeSlashes; | ||
export { removeSlashes, stripSlashes }; | ||
//# sourceMappingURL=remove-slashes.js.map |
import { type EscapeSequence } from './types/escape-sequence'; | ||
declare type RemoveSlashesOptions = { | ||
readonly getUnescaped?: (sequence: EscapeSequence, code: number | null) => string | false; | ||
readonly getUnescaped?: (sequence: EscapeSequence, code: number | null) => boolean | string; | ||
}; | ||
@@ -5,0 +5,0 @@ /** |
{ | ||
"name": "slashes", | ||
"description": "Add or remove backslashes (escape or unescape).", | ||
"version": "3.0.2", | ||
"version": "3.0.3", | ||
"license": "ISC", | ||
@@ -6,0 +6,0 @@ "author": { |
@@ -31,2 +31,3 @@ import { removeSlashes } from './remove-slashes'; | ||
expect(removeSlashes('\\r\\n\\t', { getUnescaped: (sequence) => `${sequence}`.slice(1) })).toBe('rnt'); | ||
expect(removeSlashes('\\r\\n\\t\\a', { getUnescaped: () => true })).toBe('\r\n\ta'); | ||
}); |
@@ -5,3 +5,3 @@ import { getUnescapedAny } from './get-unescaped-any'; | ||
type RemoveSlashesOptions = { | ||
readonly getUnescaped?: (sequence: EscapeSequence, code: number | null) => string | false; | ||
readonly getUnescaped?: (sequence: EscapeSequence, code: number | null) => boolean | string; | ||
}; | ||
@@ -16,3 +16,3 @@ | ||
const removeSlashes = (source: string, { getUnescaped = getUnescapedAny }: RemoveSlashesOptions = {}): string => { | ||
const rx = /(?:\\(u([0-9a-f]{4})|u\{([0-9a-f]+)\}|x([0-9a-f]{2})|(\d{1,3})|([\s\S]|$))|[\s\S])/giu; | ||
const rx = /(?:(\\(u([0-9a-f]{4})|u\{([0-9a-f]+)\}|x([0-9a-f]{2})|(\d{1,3})|([\s\S]|$)))|([\s\S]))/giu; | ||
@@ -23,20 +23,31 @@ let match: RegExpExecArray | null; | ||
while (null != (match = rx.exec(source))) { | ||
const [sequence, escapedFallback, unicode, unicodePoint, hex, octal, char] = match; | ||
const [, sequence, fallback, unicode, unicodePoint, hex, octal, char, literal] = match; | ||
if (literal) { | ||
result += literal; | ||
continue; | ||
} | ||
let code: number | null; | ||
if (char != null) { | ||
code = null; | ||
} else if (octal) { | ||
code = Number.parseInt(octal, 8); | ||
} else { | ||
code = Number.parseInt(unicodePoint || unicode || hex, 16); | ||
} | ||
try { | ||
if (char != null) { | ||
result += getUnescaped(sequence as EscapeSequence, null) || escapedFallback; | ||
} else if (octal) { | ||
result += getUnescaped(sequence as EscapeSequence, Number.parseInt(octal, 8)) || escapedFallback; | ||
const unescaped = getUnescaped(sequence as EscapeSequence, code); | ||
if (!unescaped) { | ||
result += fallback; | ||
} else if (unescaped === true) { | ||
result += getUnescapedAny(sequence as EscapeSequence, code) || fallback; | ||
} else { | ||
const code = unicodePoint || unicode || hex; | ||
if (code) { | ||
result += getUnescaped(sequence as EscapeSequence, Number.parseInt(code, 16)) || escapedFallback; | ||
} else { | ||
result += sequence; | ||
} | ||
result += unescaped; | ||
} | ||
} catch (_error) { | ||
result += escapedFallback; | ||
result += fallback; | ||
} | ||
@@ -43,0 +54,0 @@ } |
@@ -6,4 +6,4 @@ // Modern code (to be polyfilled) and explicit ambient types. | ||
"module": "ES2020", | ||
"target": "ES5", | ||
"lib": ["ES2015"], | ||
"target": "ES2021", | ||
"lib": ["ES2021"], | ||
"types": ["jest"], | ||
@@ -10,0 +10,0 @@ "strict": true, |
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
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
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
Sorry, the diff of this file is not supported yet
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
73
39975
802