New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

json-summary

Package Overview
Dependencies
Maintainers
1
Versions
15
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

json-summary - npm Package Compare versions

Comparing version 1.0.0 to 1.1.0

dist/json-summary-node.js

108

dist/json-summary.js

@@ -1,25 +0,28 @@

// https://andrewtburks.dev/json-summary v1.0.0 Copyright 2019 Andrew Burks
// https://andrewtburks.dev/json-summary v1.1.0 Copyright 2019 Andrew Burks
(function (global, factory) {
typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :
typeof define === 'function' && define.amd ? define(['exports'], factory) :
(global = global || self, factory(global.jsonSummary = {}));
}(this, function (exports) { 'use strict';
typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :
typeof define === 'function' && define.amd ? define(factory) :
(global = global || self, global.jsonSummary = factory());
}(this, function () { 'use strict';
var defaults = {
arraySampleCount: 10,
indentation: " ", // or "\t"
indentCount: 2,
showExampleValue: true,
startExpanded: false,
theme: "dark"
};
let arraySampleCount = 10,
indentation = " ", // or "\t"
indentCount = 2,
showExampleValue = true,
startExpanded = false,
theme = "dark";
let defaultSummOpt = {
arraySampleCount: defaults.arraySampleCount
};
var defaults = /*#__PURE__*/Object.freeze({
arraySampleCount: arraySampleCount,
indentation: indentation,
indentCount: indentCount,
showExampleValue: showExampleValue,
startExpanded: startExpanded,
theme: theme
});
// utility function to extract overall json structure without printing entire data object
function summarizeJSON(data, {
arraySampleCount = defaultSummOpt.arraySampleCount
} = defaultSummOpt) {
arraySampleCount: arraySampleCount$1 = arraySampleCount
} = defaults) {
let summary = summarizeItem(data);

@@ -44,4 +47,4 @@

if (arr.length) {
if (arraySampleCount > 0) {
let numToSample = arraySampleCount === "all" ? arr.length : Math.min(arraySampleCount, arr.length);
if (arraySampleCount$1 > 0) {
let numToSample = arraySampleCount$1 === "all" ? arr.length : Math.min(arraySampleCount$1, arr.length);
let sampledItems = {};

@@ -293,11 +296,11 @@

var summarize = summarizeJSON;
// let defaults = require("./defaults");
let defaultPrintOpt = {
indentation: defaults.indentation, // or "\t"
indentCount: defaults.indentCount,
showExampleValue: defaults.showExampleValue,
startExpanded: defaults.startExpanded,
theme: defaults.theme
};
// let defaultPrintOpt = {
// indentation: defaults.indentation, // or "\t"
// indentCount: defaults.indentCount,
// showExampleValue: defaults.showExampleValue,
// startExpanded: defaults.startExpanded,
// theme: defaults.theme
// };

@@ -308,12 +311,12 @@ // utility function to stringify the summary output from summarizeJSON

{
indentation = defaultPrintOpt.indentation, // or "\t"
indentCount = defaultPrintOpt.indentCount,
showExampleValue = defaultPrintOpt.showExampleValue,
startExpanded = defaultPrintOpt.startExpanded,
theme = defaultPrintOpt.theme
} = defaultPrintOpt
indentation: indentation$1 = indentation, // or "\t"
indentCount: indentCount$1 = indentCount,
showExampleValue: showExampleValue$1 = showExampleValue,
startExpanded: startExpanded$1 = startExpanded,
theme: theme$1 = theme
} = defaults
) {
// start at 0 indentation
return (
`<div class="theme ${theme}"><div class='json-summary-wrapper'>` +
`<div class="theme ${theme$1}"><div class='json-summary-wrapper'>` +
printSummaryLevel(summary, 0) +

@@ -344,3 +347,3 @@ `<div></div>`

for (let i = 0; i < data.keys.length; i++) {
childStringCombined += indentation.repeat((l + 1) * indentCount);
childStringCombined += indentation$1.repeat((l + 1) * indentCount$1);

@@ -364,3 +367,3 @@ childStringCombined += wrapInHTML(data.keys[i], "name") + ": ";

childStringCombined += indentation.repeat(l * indentCount);
childStringCombined += indentation$1.repeat(l * indentCount$1);

@@ -387,3 +390,3 @@ string += wrapInHTML(childStringCombined, "child");

if (needsNewlines) {
string += "\n" + indentation.repeat((l + 1) * indentCount);
string += "\n" + indentation$1.repeat((l + 1) * indentCount$1);
}

@@ -394,3 +397,3 @@

if (needsNewlines) {
string += "\n" + indentation.repeat(l * indentCount);
string += "\n" + indentation$1.repeat(l * indentCount$1);
}

@@ -409,3 +412,3 @@ }

if (showExampleValue) {
if (showExampleValue$1) {
string += wrapInHTML(data.example, "value", data.type);

@@ -437,5 +440,5 @@ data.count > 1 &&

layer: () => `<span class="json-summary json-summary-checkbox ${
startExpanded ? "checked" : ""
startExpanded$1 ? "checked" : ""
}">
<input type="checkbox" ${startExpanded ? "checked" : ""}>
<input type="checkbox" ${startExpanded$1 ? "checked" : ""}>
<span class="json-summary-checkboxmarker" onclick="(function(me){

@@ -458,21 +461,14 @@ me.parentNode.classList.toggle('checked');

}
// module.exports = printSummarizedJSON;
var printSummary = printSummarizedJSON;
// https://andrewtburks.dev/json-summary Copyright 2019 Andrew Burks
var jsonSummary = {
defaults: defaults,
summarize: summarize,
printSummary: printSummary
var index = {
defaults,
summarize: summarizeJSON,
printSummary: printSummarizedJSON
};
var jsonSummary_1 = jsonSummary.defaults;
var jsonSummary_2 = jsonSummary.summarize;
var jsonSummary_3 = jsonSummary.printSummary;
exports.default = jsonSummary;
exports.defaults = jsonSummary_1;
exports.printSummary = jsonSummary_3;
exports.summarize = jsonSummary_2;
return index;
Object.defineProperty(exports, '__esModule', { value: true });
}));

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

// https://andrewtburks.dev/json-summary v1.0.0 Copyright 2019 Andrew Burks
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e=e||self).jsonSummary={})}(this,function(e){"use strict";var t={arraySampleCount:10,indentation:" ",indentCount:2,showExampleValue:!0,startExpanded:!1,theme:"dark"};let n={arraySampleCount:t.arraySampleCount};let a={indentation:t.indentation,indentCount:t.indentCount,showExampleValue:t.showExampleValue,startExpanded:t.startExpanded,theme:t.theme};var r={defaults:t,summarize:function(e,{arraySampleCount:t=n.arraySampleCount}=n){let a=function e(n){let a={Array:n=>{let a={count:1,type:"Array",length:n.length};if(n.length)if(t>0){let s="all"===t?n.length:Math.min(t,n.length),l={};for(;s>0;){let e=Math.floor(Math.random()*n.length);l.hasOwnProperty(e)||(l[e]=n[e],s--)}let u=[];for(let t of Object.entries(l)){let n=t[1];u.push(e(n))}let m=r(u);a.items={0:m}}else a.items={0:e(n[0])};else a.items={0:void 0};return a},Object:t=>{let n={count:1,type:"Object",keys:Object.keys(t),items:{}};for(let a of n.keys)n.items[a]=e(t[a]);return n},Other:e=>{let t;return"string"==typeof e?t=[e.length,e.length]:"number"==typeof e&&(t=[e,e]),{type:typeof e,example:e,count:1,range:t}}},s="Other";return n instanceof Array?s="Array":n instanceof Object&&(s="Object"),n&&n["*snippets_mark*"]?{type:s,circular:!0}:("Other"!==s&&(Object.defineProperty(n,"*snippets_mark*",{enumerable:!1,writable:!0,configurable:!0}),n["*snippets_mark*"]=!0),a[s](n))}(e);return function e(t){if(t&&t["*snippets_mark*"])if(delete t["*snippets_mark*"],t instanceof Array&&t.length)e(t[0]);else if(t instanceof Object)for(let n of Object.keys(t))e(t[n])}(e),a;function r(e){let t={Array:!0,Object:!0,boolean:!0,string:!0,number:!0},n=e.filter(e=>t[e.type]);if(n.length){let e=n[0].type;return function(e,t){return e=e.filter(e=>e.type===t),{string:function(e){let t=e.reduce((e,t)=>Math.min(e,t.range[0]),1/0),n=e.reduce((e,t)=>Math.max(e,t.range[1]),-1/0);return{type:"string",example:e[0].example,range:[t,n],count:e.reduce((e,t)=>e+t.count,0)}},number:function(e){let t=e.reduce((e,t)=>Math.min(e,t.range[0]),1/0),n=e.reduce((e,t)=>Math.max(e,t.range[1]),-1/0);return{type:"number",example:e[0].example,range:[t,n],count:e.reduce((e,t)=>e+t.count,0)}},boolean:function(e){return{type:"boolean",example:e[0].example,count:e.reduce((e,t)=>e+t.count,0)}},Object:function(e){let t={};for(let n of e)if(!n.circular)for(let e of n.keys)!t[e]&&(t[e]=[]),t[e].push(n.items[e]);let n={type:"Object",keys:[],items:{},count:e.length};for(let e of Object.keys(t))n.keys.push(e),n.items[e]=r(t[e]);return n},Array:function(e){let t=r(e.map(e=>e.items[0]).filter(e=>e));return{count:e.length,items:{0:t},length:t.count/e.length,type:"Array"}}}[t](e)}(n.filter(t=>t.type===e),e)}return{count:0}}},printSummary:function(e,{indentation:t=a.indentation,indentCount:n=a.indentCount,showExampleValue:r=a.showExampleValue,startExpanded:s=a.startExpanded,theme:l=a.theme}=a){return`<div class="theme ${l}"><div class='json-summary-wrapper'>`+function e(a,s){let l="";if(a.circular)l+=u("(circular reference)","circular");else if("Object"===a.type){l+="{";let r=a.keys.map(e=>`'${e}'`).join(", ");l+=u(r,"keys");let o=a.keys.map(t=>e(a.items[t],s+1));if(o.length){let e="\n";for(let r=0;r<a.keys.length;r++)e+=t.repeat((s+1)*n),e+=u(a.keys[r],"name")+": ",a.count>1&&(e+=`<div class="json-summary json-summary-bar" title="${(m=a.items[a.keys[r]].count/a.count*100).toFixed(2)}%"><div class="json-summary json-summary-percentage" style="width:${m}%;"></div></div>`),e+=o[r],r<a.keys.length-1&&(e+=","),e+="\n";e+=t.repeat(s*n),l+=u(e,"child")}l=u(l+="}","layer")}else if("Array"===a.type){if(l+=u(a.count>1?"μ = "+a.length.toFixed(1):a.length,"length")+" [",a.length){let r="Object"===a.items[0].type||"Array"===a.items[0].type;r&&(l+="\n"+t.repeat((s+1)*n)),l+=e(a.items[0],s+1,a.count),r&&(l+="\n"+t.repeat(s*n))}l+="]"}else null==a.example||null==a.example?l+=u("?","type"):l+=u(a.type,"type"),r&&(l+=u(a.example,"value",a.type),a.count>1&&a.range&&(l+=u(a.range,"range",a.type)));var m;return l}(e,0)+"<div></div>";function u(e,t,n){return{type:()=>`<span class="json-summary json-summary-type json-summary-type-${e}">&lt;${e}&gt;</span>`,value:()=>`<span class="json-summary json-summary-value json-summary-value-${n}">${e}</span>`,range:()=>`<span class="json-summary json-summary-range json-summary-range-${n}">[${e[0]}, ${e[1]}]</span>`,name:()=>`<span class="json-summary json-summary-name">${e}</span>`,length:()=>`<span class="json-summary json-summary-length">(${e})</span>`,circular:()=>`<span class="json-summary json-summary-circular">${e}</span>`,layer:()=>`<span class="json-summary json-summary-checkbox ${s?"checked":""}">\n <input type="checkbox" ${s?"checked":""}>\n <span class="json-summary-checkboxmarker" onclick="(function(me){\n me.parentNode.classList.toggle('checked');\n })(this)"></span>\n </span><div class="json-summary json-summary-layer">${e}</div>`,child:()=>`<div class="json-summary json-summary-child">${e}</div>`,keys:()=>`<span class="json-summary json-summary-keys">${e}</span>`}[t]()}}},s=r.defaults,l=r.summarize,u=r.printSummary;e.default=r,e.defaults=s,e.printSummary=u,e.summarize=l,Object.defineProperty(e,"__esModule",{value:!0})});
// https://andrewtburks.dev/json-summary v1.1.0 Copyright 2019 Andrew Burks
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(e=e||self).jsonSummary=t()}(this,function(){"use strict";let e=10,t=" ",n=2,r=!0,s=!1,a="dark";var l=Object.freeze({arraySampleCount:e,indentation:t,indentCount:n,showExampleValue:r,startExpanded:s,theme:a});return{defaults:l,summarize:function(t,{arraySampleCount:n=e}=l){let r=function e(t){let r={Array:t=>{let r={count:1,type:"Array",length:t.length};if(t.length)if(n>0){let a="all"===n?t.length:Math.min(n,t.length),l={};for(;a>0;){let e=Math.floor(Math.random()*t.length);l.hasOwnProperty(e)||(l[e]=t[e],a--)}let u=[];for(let t of Object.entries(l)){let n=t[1];u.push(e(n))}let o=s(u);r.items={0:o}}else r.items={0:e(t[0])};else r.items={0:void 0};return r},Object:t=>{let n={count:1,type:"Object",keys:Object.keys(t),items:{}};for(let r of n.keys)n.items[r]=e(t[r]);return n},Other:e=>{let t;return"string"==typeof e?t=[e.length,e.length]:"number"==typeof e&&(t=[e,e]),{type:typeof e,example:e,count:1,range:t}}},a="Other";return t instanceof Array?a="Array":t instanceof Object&&(a="Object"),t&&t["*snippets_mark*"]?{type:a,circular:!0}:("Other"!==a&&(Object.defineProperty(t,"*snippets_mark*",{enumerable:!1,writable:!0,configurable:!0}),t["*snippets_mark*"]=!0),r[a](t))}(t);return function e(t){if(t&&t["*snippets_mark*"])if(delete t["*snippets_mark*"],t instanceof Array&&t.length)e(t[0]);else if(t instanceof Object)for(let n of Object.keys(t))e(t[n])}(t),r;function s(e){let t={Array:!0,Object:!0,boolean:!0,string:!0,number:!0},n=e.filter(e=>t[e.type]);if(n.length){let e=n[0].type;return function(e,t){return e=e.filter(e=>e.type===t),{string:function(e){let t=e.reduce((e,t)=>Math.min(e,t.range[0]),1/0),n=e.reduce((e,t)=>Math.max(e,t.range[1]),-1/0);return{type:"string",example:e[0].example,range:[t,n],count:e.reduce((e,t)=>e+t.count,0)}},number:function(e){let t=e.reduce((e,t)=>Math.min(e,t.range[0]),1/0),n=e.reduce((e,t)=>Math.max(e,t.range[1]),-1/0);return{type:"number",example:e[0].example,range:[t,n],count:e.reduce((e,t)=>e+t.count,0)}},boolean:function(e){return{type:"boolean",example:e[0].example,count:e.reduce((e,t)=>e+t.count,0)}},Object:function(e){let t={};for(let n of e)if(!n.circular)for(let e of n.keys)!t[e]&&(t[e]=[]),t[e].push(n.items[e]);let n={type:"Object",keys:[],items:{},count:e.length};for(let e of Object.keys(t))n.keys.push(e),n.items[e]=s(t[e]);return n},Array:function(e){let t=s(e.map(e=>e.items[0]).filter(e=>e));return{count:e.length,items:{0:t},length:t.count/e.length,type:"Array"}}}[t](e)}(n.filter(t=>t.type===e),e)}return{count:0}}},printSummary:function(e,{indentation:u=t,indentCount:o=n,showExampleValue:m=r,startExpanded:c=s,theme:i=a}=l){return`<div class="theme ${i}"><div class='json-summary-wrapper'>`+function e(t,n){let r="";if(t.circular)r+=y("(circular reference)","circular");else if("Object"===t.type){r+="{";let a=t.keys.map(e=>`'${e}'`).join(", ");r+=y(a,"keys");let l=t.keys.map(r=>e(t.items[r],n+1));if(l.length){let e="\n";for(let r=0;r<t.keys.length;r++)e+=u.repeat((n+1)*o),e+=y(t.keys[r],"name")+": ",t.count>1&&(e+=`<div class="json-summary json-summary-bar" title="${(s=t.items[t.keys[r]].count/t.count*100).toFixed(2)}%"><div class="json-summary json-summary-percentage" style="width:${s}%;"></div></div>`),e+=l[r],r<t.keys.length-1&&(e+=","),e+="\n";e+=u.repeat(n*o),r+=y(e,"child")}r=y(r+="}","layer")}else if("Array"===t.type){if(r+=y(t.count>1?"μ = "+t.length.toFixed(1):t.length,"length")+" [",t.length){let s="Object"===t.items[0].type||"Array"===t.items[0].type;s&&(r+="\n"+u.repeat((n+1)*o)),r+=e(t.items[0],n+1,t.count),s&&(r+="\n"+u.repeat(n*o))}r+="]"}else null==t.example||null==t.example?r+=y("?","type"):r+=y(t.type,"type"),m&&(r+=y(t.example,"value",t.type),t.count>1&&t.range&&(r+=y(t.range,"range",t.type)));var s;return r}(e,0)+"<div></div>";function y(e,t,n){return{type:()=>`<span class="json-summary json-summary-type json-summary-type-${e}">&lt;${e}&gt;</span>`,value:()=>`<span class="json-summary json-summary-value json-summary-value-${n}">${e}</span>`,range:()=>`<span class="json-summary json-summary-range json-summary-range-${n}">[${e[0]}, ${e[1]}]</span>`,name:()=>`<span class="json-summary json-summary-name">${e}</span>`,length:()=>`<span class="json-summary json-summary-length">(${e})</span>`,circular:()=>`<span class="json-summary json-summary-circular">${e}</span>`,layer:()=>`<span class="json-summary json-summary-checkbox ${c?"checked":""}">\n <input type="checkbox" ${c?"checked":""}>\n <span class="json-summary-checkboxmarker" onclick="(function(me){\n me.parentNode.classList.toggle('checked');\n })(this)"></span>\n </span><div class="json-summary json-summary-layer">${e}</div>`,child:()=>`<div class="json-summary json-summary-child">${e}</div>`,keys:()=>`<span class="json-summary json-summary-keys">${e}</span>`}[t]()}}}});

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

"use strict";
// https://andrewtburks.dev/json-summary Copyright 2019 Andrew Burks
module.exports = {
defaults: require("./src/defaults"),
summarize: require("./src/summarize"),
printSummary: require("./src/printSummary")
};
import * as defaults from "./src/defaults";
import summarize from "./src/summarize";
import printSummary from "./src/printSummary";
export default {
defaults,
summarize,
printSummary
};
{
"name": "json-summary",
"version": "1.0.0",
"version": "1.1.0",
"description": "A simple JSON summarizer to extract the structure from a JSON object",

@@ -11,3 +11,4 @@ "keywords": [

],
"main": "index.js",
"main": "dist/json-summary-node.js",
"module": "index.js",
"browser": "dist/json-summary.js",

@@ -20,4 +21,5 @@ "browserMin": "dist/json-summary.min.js",

"scripts": {
"lint": "eslint -c .eslintrc.json 'index.js' 'src/**'",
"jest": "jest",
"test": "jest --coverage --coverageReporters=text-lcov | coveralls",
"test": "npm run lint && jest --coverage --coverageReporters=text-lcov | coveralls",
"prepublish": "npm run build && npm test",

@@ -40,5 +42,9 @@ "build": "rollup -c && cp dist/json-summary.js docs/json-summary.js && sass style/main.scss dist/summarizer.css && cp dist/summarizer.css docs/summarizer.css"

"devDependencies": {
"@babel/core": "^7.4.3",
"@babel/preset-env": "^7.4.3",
"babel-jest": "^24.7.1",
"coveralls": "^3.0.3",
"eslint": "^5.16.0",
"jest": "^24.7.1",
"jsdom": "^15.0.0",
"rollup": "^1.9.0",

@@ -50,4 +56,14 @@ "rollup-plugin-commonjs": "^9.3.4",

},
"jest": {
"transform": {
"^.+\\.jsx?$": "./node_modules/babel-jest"
}
},
"babel": {
"presets": [
"@babel/env"
]
},
"dependencies": {},
"eslintConfig": "./.eslintrc.json"
}
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