Socket
Socket
Sign inDemoInstall

suffix-thumb

Package Overview
Dependencies
Maintainers
1
Versions
17
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

suffix-thumb - npm Package Compare versions

Comparing version 5.0.1 to 5.0.2

78

builds/suffix-thumb.js

@@ -1,7 +0,7 @@

/* suffix-thumb 5.0.1 MIT */
/* suffix-thumb 5.0.2 MIT */
(function (global, factory) {
typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('efrt')) :
typeof define === 'function' && define.amd ? define(['exports', 'efrt'], factory) :
(global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.suffixThumb = {}, global.efrt));
})(this, (function (exports, efrt) { 'use strict';
typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :
typeof define === 'function' && define.amd ? define(['exports'], factory) :
(global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.suffixThumb = {}));
})(this, (function (exports) { 'use strict';

@@ -335,2 +335,16 @@ // 01- full-word exceptions

const pack = function (obj) {
let byVal = {};
Object.keys(obj).forEach(k => {
let val = obj[k];
byVal[val] = byVal[val] || [];
byVal[val].push(k);
});
let out = [];
Object.keys(byVal).forEach(val => {
out.push(`${val}:${byVal[val].join(',')}`);
});
return out.join('¦')
};
const packObj = function (obj = {}) {

@@ -342,3 +356,3 @@ let tmp = {};

});
return efrt.pack(tmp)
return pack(tmp)
};

@@ -356,2 +370,46 @@

// let model = {
// fwd: {
// foo: 'food',
// bar: 'bard',
// cool: 'nice'
// }
// }
// console.log(compress(model))
const prefix = /^([0-9]+)/;
const toObject = function (txt) {
let obj = {};
txt.split('¦').forEach(str => {
let [key, vals] = str.split(':');
vals = (vals || '').split(',');
vals.forEach(val => {
obj[val] = key;
});
});
return obj
};
const growObject = function (key = '', val = '') {
val = String(val);
let m = val.match(prefix);
if (m === null) {
return val
}
let num = Number(m[1]) || 0;
let pre = key.substring(0, num);
let full = pre + val.replace(prefix, '');
return full
};
const unpackOne = function (str) {
let obj = toObject(str);
return Object.keys(obj).reduce((h, k) => {
h[k] = growObject(k, obj[k]);
return h
}, {})
};
const uncompress = function (model = {}) {

@@ -361,6 +419,6 @@ if (typeof model === 'string') {

}
model.fwd = efrt.unpack(model.fwd);
model.both = efrt.unpack(model.both);
model.bkwd = efrt.unpack(model.bkwd);
model.ex = efrt.unpack(model.ex);
model.fwd = unpackOne(model.fwd || '');
model.both = unpackOne(model.both || '');
model.rev = unpackOne(model.rev || '');
model.ex = unpackOne(model.ex || '');
return model

@@ -367,0 +425,0 @@ };

2

builds/suffix-thumb.min.js

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

!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("efrt")):"function"==typeof define&&define.amd?define(["exports","efrt"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).suffixThumb={},e.efrt)}(this,(function(e,t){"use strict";const n=function(e="",t={}){let n=function(e,t={}){return t.hasOwnProperty(e)?t[e]:null}(e,t.ex);return n=n||function(e,t=[]){for(let n=0;n<t.length;n+=1)if(e.endsWith(t[n]))return e;return null}(e,t.same),n=n||function(e,t,n={}){t=t||{};for(let r=e.length-1;r>=1;r-=1){let l=e.length-r,o=e.substring(l,e.length);if(!0===t.hasOwnProperty(o))return e.slice(0,l)+t[o];if(!0===n.hasOwnProperty(o))return e.slice(0,l)+n[o]}return t.hasOwnProperty("")?e+t[""]:n.hasOwnProperty("")?e+n[""]:null}(e,t.fwd,t.both),n=n||e,n},r=function(e){return Object.entries(e).reduce(((e,t)=>(e[t[1]]=t[0],e)),{})},l=function(e={}){return{reversed:!0,both:r(e.both),ex:r(e.ex),fwd:e.rev||{}}},o=function(e,t={}){let n=new Set,r=new Set;return e=e.filter((e=>!n.has(e[0])&&(!r.has(e[1])&&(n.add(e[0]),r.add(e[1]),!0))))},u=function(e,t=0){let n=[],[r,l]=e;for(let e=0;e<r.length&&r[e]===l[e];e+=1)n.push(r[e]);let o=n.length-t;return t>=n.length?null:{from:r.substring(o),to:l.substring(o)}},i=(e,t)=>{if(0===t)return 100;let n=e/t*100;return n=Math.round(10*n)/10,n},f=function(e,t){let n=0,r=new Set;return e?0===t.length?{total:n,percent:100,rule:e,clear:r,count:0}:(t.forEach((t=>{let l=function(e,t){if(t.from.length>=e.length)return null;if(e.endsWith(t.from)){let n=e.length-t.from.length;return e.slice(0,n)+t.to}return null}(t[0],e);null!==l&&(n+=1,l===t[1]&&r.add(t[0]))})),{total:n,count:r.size,percent:i(r.size,n),rule:e,clear:r}):{total:n,percent:0,rule:e,clear:r,count:0}},s=function(e,t,n){let r=e.slice(0),l={};for(let e=0;e<6;e+=1)for(let o=0;o<r.length;o+=1){let i=u(r[o],e),s=f(i,r);if(s.rule&&s.percent>n.threshold&&s.count>n.min){if(f(i,t).percent<100)continue;l[i.from]=i.to,r=r.filter((e=>!s.clear.has(e[0])||(t.push(e),!1)))}}return{rules:l,pending:r,finished:t}},c={threshold:80,min:0},h=e=>[e[1],e[0]];const a=function(e={}){let n={};return Object.keys(e).forEach((t=>{let r=function(e,t){let n=((e,t)=>{let n=[];for(let r=0;r<e.length&&e[r]===t[r];r+=1)n.push(e[r]);return n.join("")})(e,t);return n.length<1?t:n.length+t.substr(n.length)}(t,e[t]);n[t]=r})),t.pack(n)},d=e=>[e[1],e[0]],p=function(e,t){let r=0;return e.forEach((e=>{let l=n(e[0],t);l===e[1]?r+=1:console.log("❌ ",e,"→ "+l)})),((e,t)=>{let n=e/t*100;return n=Math.round(10*n)/10,n+"%"})(r,e.length)};e.compress=function(e){return{fwd:a(e.fwd),both:a(e.both),rev:a(e.rev),ex:a(e.ex)}},e.convert=n,e.learn=function(e,t={}){t=Object.assign({},c,t);let n={},r={};e=function(e,t){return(e=o(e)).filter((e=>{let[n,r]=e;return n.substring(0,1)===r.substring(0,1)||(t[n]=r,!1)}))}(e,n);let{rules:l,pending:u,finished:i}=s(e,[],t),{fwd:a,both:d,revPairs:p}=function(e,t,n){let r={},l=t.slice(0),o=[];return Object.entries(e).reverse().forEach((u=>{let i={from:u[1],to:u[0]};if(!i.to)return;let s=f(i,t);s.percent>n.threshold&&(r[i.to]=i.from,delete e[i.to],l=l.filter((e=>!s.clear.has(e[0])||(o.push(e),!1))))})),{fwd:e,both:r,revPairs:{pending:l,finished:o}}}(l,e.map(h),t),g=[];if(!1!==t.reverse){let e=s(p.pending,p.finished,t);g=e.pending,r=e.rules}return t.min<=1&&(u.forEach((e=>{n[e[0]]=e[1]})),g.forEach((e=>{n[e[1]]=e[0]}))),{fwd:a,both:d,rev:r,ex:n}},e.reverse=l,e.test=function(e,t={}){e=o(e);let n=p(e,t),r=p(e.map(d),l(t));var u;console.log(`${u=n,""+u+""} - 🔄 ${(e=>""+e+"")(r)}`)},e.uncompress=function(e={}){return"string"==typeof e&&(e=JSON.parse(e)),e.fwd=t.unpack(e.fwd),e.both=t.unpack(e.both),e.bkwd=t.unpack(e.bkwd),e.ex=t.unpack(e.ex),e},e.validate=o,Object.defineProperty(e,"__esModule",{value:!0})}));
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).suffixThumb={})}(this,(function(e){"use strict";const t=function(e="",t={}){let n=function(e,t={}){return t.hasOwnProperty(e)?t[e]:null}(e,t.ex);return n=n||function(e,t=[]){for(let n=0;n<t.length;n+=1)if(e.endsWith(t[n]))return e;return null}(e,t.same),n=n||function(e,t,n={}){t=t||{};for(let r=e.length-1;r>=1;r-=1){let l=e.length-r,o=e.substring(l,e.length);if(!0===t.hasOwnProperty(o))return e.slice(0,l)+t[o];if(!0===n.hasOwnProperty(o))return e.slice(0,l)+n[o]}return t.hasOwnProperty("")?e+t[""]:n.hasOwnProperty("")?e+n[""]:null}(e,t.fwd,t.both),n=n||e,n},n=function(e){return Object.entries(e).reduce(((e,t)=>(e[t[1]]=t[0],e)),{})},r=function(e={}){return{reversed:!0,both:n(e.both),ex:n(e.ex),fwd:e.rev||{}}},l=function(e,t={}){let n=new Set,r=new Set;return e=e.filter((e=>!n.has(e[0])&&(!r.has(e[1])&&(n.add(e[0]),r.add(e[1]),!0))))},o=function(e,t=0){let n=[],[r,l]=e;for(let e=0;e<r.length&&r[e]===l[e];e+=1)n.push(r[e]);let o=n.length-t;return t>=n.length?null:{from:r.substring(o),to:l.substring(o)}},u=(e,t)=>{if(0===t)return 100;let n=e/t*100;return n=Math.round(10*n)/10,n},i=function(e,t){let n=0,r=new Set;return e?0===t.length?{total:n,percent:100,rule:e,clear:r,count:0}:(t.forEach((t=>{let l=function(e,t){if(t.from.length>=e.length)return null;if(e.endsWith(t.from)){let n=e.length-t.from.length;return e.slice(0,n)+t.to}return null}(t[0],e);null!==l&&(n+=1,l===t[1]&&r.add(t[0]))})),{total:n,count:r.size,percent:u(r.size,n),rule:e,clear:r}):{total:n,percent:0,rule:e,clear:r,count:0}},f=function(e,t,n){let r=e.slice(0),l={};for(let e=0;e<6;e+=1)for(let u=0;u<r.length;u+=1){let f=o(r[u],e),s=i(f,r);if(s.rule&&s.percent>n.threshold&&s.count>n.min){if(i(f,t).percent<100)continue;l[f.from]=f.to,r=r.filter((e=>!s.clear.has(e[0])||(t.push(e),!1)))}}return{rules:l,pending:r,finished:t}},s={threshold:80,min:0},c=e=>[e[1],e[0]];const h=function(e={}){let t={};return Object.keys(e).forEach((n=>{let r=function(e,t){let n=((e,t)=>{let n=[];for(let r=0;r<e.length&&e[r]===t[r];r+=1)n.push(e[r]);return n.join("")})(e,t);return n.length<1?t:n.length+t.substr(n.length)}(n,e[n]);t[n]=r})),function(e){let t={};Object.keys(e).forEach((n=>{let r=e[n];t[r]=t[r]||[],t[r].push(n)}));let n=[];return Object.keys(t).forEach((e=>{n.push(`${e}:${t[e].join(",")}`)})),n.join("¦")}(t)},a=/^([0-9]+)/,d=function(e){let t=function(e){let t={};return e.split("¦").forEach((e=>{let[n,r]=e.split(":");r=(r||"").split(","),r.forEach((e=>{t[e]=n}))})),t}(e);return Object.keys(t).reduce(((e,n)=>(e[n]=function(e="",t=""){let n=(t=String(t)).match(a);if(null===n)return t;let r=Number(n[1])||0;return e.substring(0,r)+t.replace(a,"")}(n,t[n]),e)),{})},p=e=>[e[1],e[0]],g=function(e,n){let r=0;return e.forEach((e=>{let l=t(e[0],n);l===e[1]?r+=1:console.log("❌ ",e,"→ "+l)})),((e,t)=>{let n=e/t*100;return n=Math.round(10*n)/10,n+"%"})(r,e.length)};e.compress=function(e){return{fwd:h(e.fwd),both:h(e.both),rev:h(e.rev),ex:h(e.ex)}},e.convert=t,e.learn=function(e,t={}){t=Object.assign({},s,t);let n={},r={};e=function(e,t){return(e=l(e)).filter((e=>{let[n,r]=e;return n.substring(0,1)===r.substring(0,1)||(t[n]=r,!1)}))}(e,n);let{rules:o,pending:u,finished:h}=f(e,[],t),{fwd:a,both:d,revPairs:p}=function(e,t,n){let r={},l=t.slice(0),o=[];return Object.entries(e).reverse().forEach((u=>{let f={from:u[1],to:u[0]};if(!f.to)return;let s=i(f,t);s.percent>n.threshold&&(r[f.to]=f.from,delete e[f.to],l=l.filter((e=>!s.clear.has(e[0])||(o.push(e),!1))))})),{fwd:e,both:r,revPairs:{pending:l,finished:o}}}(o,e.map(c),t),g=[];if(!1!==t.reverse){let e=f(p.pending,p.finished,t);g=e.pending,r=e.rules}return t.min<=1&&(u.forEach((e=>{n[e[0]]=e[1]})),g.forEach((e=>{n[e[1]]=e[0]}))),{fwd:a,both:d,rev:r,ex:n}},e.reverse=r,e.test=function(e,t={}){e=l(e);let n=g(e,t),o=g(e.map(p),r(t));var u;console.log(`${u=n,""+u+""} - 🔄 ${(e=>""+e+"")(o)}`)},e.uncompress=function(e={}){return"string"==typeof e&&(e=JSON.parse(e)),e.fwd=d(e.fwd||""),e.both=d(e.both||""),e.rev=d(e.rev||""),e.ex=d(e.ex||""),e},e.validate=l,Object.defineProperty(e,"__esModule",{value:!0})}));
{
"name": "suffix-thumb",
"description": "learn transformations between two sets of words",
"version": "5.0.1",
"version": "5.0.2",
"author": "Spencer Kelly <spencermountain@gmail.com> (http://spencermounta.in)",

@@ -42,6 +42,3 @@ "main": "./src/index.js",

],
"dependencies": {
"efrt": "^2.7.0",
"json-diff": "^1.0.0"
},
"dependencies": {},
"devDependencies": {

@@ -48,0 +45,0 @@ "@rollup/plugin-commonjs": "21.0.1",

import keyVal from './key-val.js'
import { pack } from 'efrt'
const pack = function (obj) {
let byVal = {}
Object.keys(obj).forEach(k => {
let val = obj[k]
byVal[val] = byVal[val] || []
byVal[val].push(k)
})
let out = []
Object.keys(byVal).forEach(val => {
out.push(`${val}:${byVal[val].join(',')}`)
})
return out.join('¦')
}
const packObj = function (obj = {}) {

@@ -23,1 +36,11 @@ let tmp = {}

export default compress
// let model = {
// fwd: {
// foo: 'food',
// bar: 'bard',
// cool: 'nice'
// }
// }
// console.log(compress(model))

@@ -1,3 +0,35 @@

import { unpack } from 'efrt'
const prefix = /^([0-9]+)/
const toObject = function (txt) {
let obj = {}
txt.split('¦').forEach(str => {
let [key, vals] = str.split(':')
vals = (vals || '').split(',')
vals.forEach(val => {
obj[val] = key
})
})
return obj
}
const growObject = function (key = '', val = '') {
val = String(val)
let m = val.match(prefix)
if (m === null) {
return val
}
let num = Number(m[1]) || 0
let pre = key.substring(0, num)
let full = pre + val.replace(prefix, '')
return full
}
const unpackOne = function (str) {
let obj = toObject(str)
return Object.keys(obj).reduce((h, k) => {
h[k] = growObject(k, obj[k])
return h
}, {})
}
const uncompress = function (model = {}) {

@@ -7,8 +39,8 @@ if (typeof model === 'string') {

}
model.fwd = unpack(model.fwd)
model.both = unpack(model.both)
model.bkwd = unpack(model.bkwd)
model.ex = unpack(model.ex)
model.fwd = unpackOne(model.fwd || '')
model.both = unpackOne(model.both || '')
model.rev = unpackOne(model.rev || '')
model.ex = unpackOne(model.ex || '')
return model
}
export default uncompress
export default uncompress

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