You're Invited:Meet the Socket Team at BlackHat and DEF CON in Las Vegas, Aug 7-8.RSVP
Socket
Socket
Sign inDemoInstall

typeson

Package Overview
Dependencies
0
Maintainers
1
Versions
58
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

Comparing version 2.0.1 to 2.1.1

2

package.json
{
"name": "typeson",
"version": "2.0.1",
"version": "2.1.1",
"description": "JSON with types",

@@ -5,0 +5,0 @@ "main": "typeson.js",

@@ -168,20 +168,21 @@ var keys = Object.keys,

var register = this.register = function (typeSpecSets) {
[].concat(typeSpecSets).forEach(function (typeSpec) {
keys(typeSpec).forEach(function (typeIdentifyer) {
var spec = typeSpec[typeIdentifyer],
existingReplacer = replacers.filter(function(r){ return r.type === typeIdentifyer; });
[].concat(typeSpecSets).forEach(function R (typeSpec) {
if (isArray(typeSpec)) return typeSpec.map(R); // Allow arrays of arrays of arrays...
typeSpec && keys(typeSpec).forEach(function (typeId) {
var spec = typeSpec[typeId],
existingReplacer = replacers.filter(function(r){ return r.type === typeId; });
if (existingReplacer.length) {
// Remove existing spec and replace with this one.
replacers.splice(replacers.indexOf(existingReplacer[0]), 1);
delete revivers[typeIdentifyer];
delete regTypes[typeIdentifyer];
delete revivers[typeId];
delete regTypes[typeId];
}
if (spec) {
replacers.push({
type: typeIdentifyer,
type: typeId,
test: spec[0],
replace: spec[1]
});
if (spec[2]) revivers[typeIdentifyer] = spec[2];
regTypes[typeIdentifyer] = spec; // Record to be retrieved via public types property.
if (spec[2]) revivers[typeId] = spec[2];
regTypes[typeId] = spec; // Record to be retrieved via public types property.
}

@@ -188,0 +189,0 @@ });

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

var keys=Object.keys,isArray=Array.isArray;function Typeson(options){var replacers=[];var revivers={};var regTypes=this.types={};this.stringify=function(obj,replacer,space){return JSON.stringify(encapsulate(obj),replacer,space)};this.parse=function(text,reviver){return revive(JSON.parse(text,reviver))};var encapsulate=this.encapsulate=function(obj){var types={},refObjs=[],refKeys=[];var ret=_encapsulate("",obj,options&&"cyclic"in options?options.cyclic:true);if(keys(types).length){if(ret.constructor!==Object||ret.$types)return{$:ret,$types:{$:types}};ret.$types=types}return ret;function _encapsulate(keypath,value,cyclic){var $typeof=typeof value;if($typeof in{string:1,"boolean":1,number:1,undefined:1})return $typeof==="number"?isNaN(value)||value===-Infinity||value===Infinity?replace(keypath,value):value:value;if(value==null)return value;if(cyclic){var refIndex=refObjs.indexOf(value);if(refIndex<0){refObjs.push(value);refKeys.push(keypath)}else{types[keypath]="#";return"#"+refKeys[refIndex]}}var replaced=value.constructor===Object?value:replace(keypath,value);if(replaced!==value)return replaced;if(value==null)return value;var clone;if(value.constructor===Object)clone={};else if(value.constructor===Array)clone=new Array(value.length);else return value;keys(value).forEach(function(key){var val=_encapsulate(keypath+(keypath?".":"")+key,value[key],cyclic);if(val!==undefined)clone[key]=val});return clone}function replace(key,value){var i=replacers.length;while(i--){if(replacers[i].test(value)){var type=replacers[i].type;if(revivers[type]){var existing=types[key];types[key]=existing?[type].concat(existing):type}return _encapsulate(key,replacers[i].replace(value),false)}}return value}};var revive=this.revive=function(obj){var types=obj.$types,ignore$Types=true;if(!types)return obj;if(types.$&&types.$.constructor===Object){obj=obj.$;types=types.$;ignore$Types=false}return _revive("",obj);function _revive(keypath,value,target){if(ignore$Types&&keypath==="$types")return;var type=types[keypath];if(value&&(value.constructor===Object||value.constructor===Array)){var clone=isArray(value)?new Array(value.length):{};keys(value).forEach(function(key){var val=_revive(keypath+(keypath?".":"")+key,value[key],target||clone);if(val!==undefined)clone[key]=val});value=clone}if(!type)return value;if(type==="#")return getByKeyPath(target,value.substr(1));return[].concat(type).reduce(function(val,type){var reviver=revivers[type];if(!reviver)throw new Error("Unregistered type: "+type);return reviver(val)},value)}};var register=this.register=function(typeSpecSets){[].concat(typeSpecSets).forEach(function(typeSpec){keys(typeSpec).forEach(function(typeIdentifyer){var spec=typeSpec[typeIdentifyer],existingReplacer=replacers.filter(function(r){return r.type===typeIdentifyer});if(existingReplacer.length){replacers.splice(replacers.indexOf(existingReplacer[0]),1);delete revivers[typeIdentifyer];delete regTypes[typeIdentifyer]}if(spec){replacers.push({type:typeIdentifyer,test:spec[0],replace:spec[1]});if(spec[2])revivers[typeIdentifyer]=spec[2];regTypes[typeIdentifyer]=spec}})});return this}}function getByKeyPath(obj,keyPath){if(keyPath==="")return obj;var period=keyPath.indexOf(".");if(period!==-1){var innerObj=obj[keyPath.substr(0,period)];return innerObj===undefined?undefined:getByKeyPath(innerObj,keyPath.substr(period+1))}return obj[keyPath]}module.exports=Typeson;
var keys=Object.keys,isArray=Array.isArray;function Typeson(options){var replacers=[];var revivers={};var regTypes=this.types={};this.stringify=function(obj,replacer,space){return JSON.stringify(encapsulate(obj),replacer,space)};this.parse=function(text,reviver){return revive(JSON.parse(text,reviver))};var encapsulate=this.encapsulate=function(obj){var types={},refObjs=[],refKeys=[];var ret=_encapsulate("",obj,options&&"cyclic"in options?options.cyclic:true);if(keys(types).length){if(ret.constructor!==Object||ret.$types)return{$:ret,$types:{$:types}};ret.$types=types}return ret;function _encapsulate(keypath,value,cyclic){var $typeof=typeof value;if($typeof in{string:1,"boolean":1,number:1,undefined:1})return $typeof==="number"?isNaN(value)||value===-Infinity||value===Infinity?replace(keypath,value):value:value;if(value==null)return value;if(cyclic){var refIndex=refObjs.indexOf(value);if(refIndex<0){refObjs.push(value);refKeys.push(keypath)}else{types[keypath]="#";return"#"+refKeys[refIndex]}}var replaced=value.constructor===Object?value:replace(keypath,value);if(replaced!==value)return replaced;if(value==null)return value;var clone;if(value.constructor===Object)clone={};else if(value.constructor===Array)clone=new Array(value.length);else return value;keys(value).forEach(function(key){var val=_encapsulate(keypath+(keypath?".":"")+key,value[key],cyclic);if(val!==undefined)clone[key]=val});return clone}function replace(key,value){var i=replacers.length;while(i--){if(replacers[i].test(value)){var type=replacers[i].type;if(revivers[type]){var existing=types[key];types[key]=existing?[type].concat(existing):type}return _encapsulate(key,replacers[i].replace(value),false)}}return value}};var revive=this.revive=function(obj){var types=obj.$types,ignore$Types=true;if(!types)return obj;if(types.$&&types.$.constructor===Object){obj=obj.$;types=types.$;ignore$Types=false}return _revive("",obj);function _revive(keypath,value,target){if(ignore$Types&&keypath==="$types")return;var type=types[keypath];if(value&&(value.constructor===Object||value.constructor===Array)){var clone=isArray(value)?new Array(value.length):{};keys(value).forEach(function(key){var val=_revive(keypath+(keypath?".":"")+key,value[key],target||clone);if(val!==undefined)clone[key]=val});value=clone}if(!type)return value;if(type==="#")return getByKeyPath(target,value.substr(1));return[].concat(type).reduce(function(val,type){var reviver=revivers[type];if(!reviver)throw new Error("Unregistered type: "+type);return reviver(val)},value)}};var register=this.register=function(typeSpecSets){[].concat(typeSpecSets).forEach(function R(typeSpec){if(isArray(typeSpec))return typeSpec.map(R);typeSpec&&keys(typeSpec).forEach(function(typeId){var spec=typeSpec[typeId],existingReplacer=replacers.filter(function(r){return r.type===typeId});if(existingReplacer.length){replacers.splice(replacers.indexOf(existingReplacer[0]),1);delete revivers[typeId];delete regTypes[typeId]}if(spec){replacers.push({type:typeId,test:spec[0],replace:spec[1]});if(spec[2])revivers[typeId]=spec[2];regTypes[typeId]=spec}})});return this}}function getByKeyPath(obj,keyPath){if(keyPath==="")return obj;var period=keyPath.indexOf(".");if(period!==-1){var innerObj=obj[keyPath.substr(0,period)];return innerObj===undefined?undefined:getByKeyPath(innerObj,keyPath.substr(period+1))}return obj[keyPath]}module.exports=Typeson;
//# sourceMappingURL=typeson.min.js.map

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

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

Packages

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc