stent
Advanced tools
Comparing version 3.5.7 to 3.5.8
@@ -1,2 +0,2 @@ | ||
## 3.5.3, 3.5.4, 3.5.5, 3.5.6, 3.5.7 | ||
## 3.5.3 - 3.5.8 | ||
@@ -3,0 +3,0 @@ Changes in DevTools extension. |
@@ -7,8 +7,4 @@ 'use strict'; | ||
var _circularJson = require('circular-json'); | ||
var _CircularJSON = require('../helpers/vendors/CircularJSON'); | ||
var _circularJson2 = _interopRequireDefault(_circularJson); | ||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } | ||
var Machine; | ||
@@ -55,3 +51,3 @@ | ||
try { | ||
result = JSON.parse(_circularJson2.default.stringify(something, function (key, value) { | ||
result = JSON.parse((0, _CircularJSON.stringify)(something, function (key, value) { | ||
if (typeof value === 'function') { | ||
@@ -58,0 +54,0 @@ return { __func: value.name === '' ? '<anonymous>' : value.name }; |
{ | ||
"name": "stent", | ||
"version": "3.5.7", | ||
"version": "3.5.8", | ||
"description": "Stent is combining the ideas of redux with the concept of state machines", | ||
@@ -5,0 +5,0 @@ "main": "lib", |
@@ -1,2 +0,2 @@ | ||
import CircularJSON from 'circular-json'; | ||
import { stringify } from '../helpers/vendors/CircularJSON'; | ||
@@ -40,3 +40,3 @@ var Machine; | ||
try { | ||
result = JSON.parse(CircularJSON.stringify(something, function (key, value) { | ||
result = JSON.parse(stringify(something, function (key, value) { | ||
if (typeof value === 'function') { | ||
@@ -43,0 +43,0 @@ return { __func: value.name === '' ? '<anonymous>' : value.name }; |
@@ -6,10 +6,183 @@ (function(f){if(typeof exports==="object"&&typeof module!=="undefined"){module.exports=f()}else if(typeof define==="function"&&define.amd){define([],f)}else{var g;if(typeof window!=="undefined"){g=window}else if(typeof global!=="undefined"){g=global}else if(typeof self!=="undefined"){g=self}else{g=this}g.stentDevTools = f()}})(function(){var define,module,exports;return (function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s})({1:[function(require,module,exports){ | ||
var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; | ||
var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; | ||
var _circularJson = require('circular-json'); | ||
/*! | ||
Copyright (C) 2013-2017 by Andrea Giammarchi - @WebReflection | ||
var _circularJson2 = _interopRequireDefault(_circularJson); | ||
Permission is hereby granted, free of charge, to any person obtaining a copy | ||
of this software and associated documentation files (the "Software"), to deal | ||
in the Software without restriction, including without limitation the rights | ||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell | ||
copies of the Software, and to permit persons to whom the Software is | ||
furnished to do so, subject to the following conditions: | ||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } | ||
The above copyright notice and this permission notice shall be included in | ||
all copies or substantial portions of the Software. | ||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | ||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | ||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE | ||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER | ||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, | ||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN | ||
THE SOFTWARE. | ||
*/ | ||
var | ||
// should be a not so common char | ||
// possibly one JSON does not encode | ||
// possibly one encodeURIComponent does not encode | ||
// right now this char is '~' but this might change in the future | ||
specialChar = '~', | ||
safeSpecialChar = '\\x' + ('0' + specialChar.charCodeAt(0).toString(16)).slice(-2), | ||
escapedSafeSpecialChar = '\\' + safeSpecialChar, | ||
specialCharRG = new RegExp(safeSpecialChar, 'g'), | ||
safeSpecialCharRG = new RegExp(escapedSafeSpecialChar, 'g'), | ||
safeStartWithSpecialCharRG = new RegExp('(?:^|([^\\\\]))' + escapedSafeSpecialChar), | ||
indexOf = [].indexOf || function (v) { | ||
for (var i = this.length; i-- && this[i] !== v;) {} | ||
return i; | ||
}, | ||
$String = String // there's no way to drop warnings in JSHint | ||
// about new String ... well, I need that here! | ||
// faked, and happy linter! | ||
; | ||
function generateReplacer(value, replacer, resolve) { | ||
var inspect = !!replacer, | ||
path = [], | ||
all = [value], | ||
seen = [value], | ||
mapp = [resolve ? specialChar : '[Circular]'], | ||
last = value, | ||
lvl = 1, | ||
i, | ||
fn; | ||
if (inspect) { | ||
fn = (typeof replacer === 'undefined' ? 'undefined' : _typeof(replacer)) === 'object' ? function (key, value) { | ||
return key !== '' && replacer.indexOf(key) < 0 ? void 0 : value; | ||
} : replacer; | ||
} | ||
return function (key, value) { | ||
// the replacer has rights to decide | ||
// if a new object should be returned | ||
// or if there's some key to drop | ||
// let's call it here rather than "too late" | ||
if (inspect) value = fn.call(this, key, value); | ||
// did you know ? Safari passes keys as integers for arrays | ||
// which means if (key) when key === 0 won't pass the check | ||
if (key !== '') { | ||
if (last !== this) { | ||
i = lvl - indexOf.call(all, this) - 1; | ||
lvl -= i; | ||
all.splice(lvl, all.length); | ||
path.splice(lvl - 1, path.length); | ||
last = this; | ||
} | ||
// console.log(lvl, key, path); | ||
if ((typeof value === 'undefined' ? 'undefined' : _typeof(value)) === 'object' && value) { | ||
// if object isn't referring to parent object, add to the | ||
// object path stack. Otherwise it is already there. | ||
if (indexOf.call(all, value) < 0) { | ||
all.push(last = value); | ||
} | ||
lvl = all.length; | ||
i = indexOf.call(seen, value); | ||
if (i < 0) { | ||
i = seen.push(value) - 1; | ||
if (resolve) { | ||
// key cannot contain specialChar but could be not a string | ||
path.push(('' + key).replace(specialCharRG, safeSpecialChar)); | ||
mapp[i] = specialChar + path.join(specialChar); | ||
} else { | ||
mapp[i] = mapp[0]; | ||
} | ||
} else { | ||
value = mapp[i]; | ||
} | ||
} else { | ||
if (typeof value === 'string' && resolve) { | ||
// ensure no special char involved on deserialization | ||
// in this case only first char is important | ||
// no need to replace all value (better performance) | ||
value = value.replace(safeSpecialChar, escapedSafeSpecialChar).replace(specialChar, safeSpecialChar); | ||
} | ||
} | ||
} | ||
return value; | ||
}; | ||
} | ||
function retrieveFromPath(current, keys) { | ||
for (var i = 0, length = keys.length; i < length; current = current[ | ||
// keys should be normalized back here | ||
keys[i++].replace(safeSpecialCharRG, specialChar)]) {} | ||
return current; | ||
} | ||
function generateReviver(reviver) { | ||
return function (key, value) { | ||
var isString = typeof value === 'string'; | ||
if (isString && value.charAt(0) === specialChar) { | ||
return new $String(value.slice(1)); | ||
} | ||
if (key === '') value = regenerate(value, value, {}); | ||
// again, only one needed, do not use the RegExp for this replacement | ||
// only keys need the RegExp | ||
if (isString) value = value.replace(safeStartWithSpecialCharRG, '$1' + specialChar).replace(escapedSafeSpecialChar, safeSpecialChar); | ||
return reviver ? reviver.call(this, key, value) : value; | ||
}; | ||
} | ||
function regenerateArray(root, current, retrieve) { | ||
for (var i = 0, length = current.length; i < length; i++) { | ||
current[i] = regenerate(root, current[i], retrieve); | ||
} | ||
return current; | ||
} | ||
function regenerateObject(root, current, retrieve) { | ||
for (var key in current) { | ||
if (current.hasOwnProperty(key)) { | ||
current[key] = regenerate(root, current[key], retrieve); | ||
} | ||
} | ||
return current; | ||
} | ||
function regenerate(root, current, retrieve) { | ||
return current instanceof Array ? | ||
// fast Array reconstruction | ||
regenerateArray(root, current, retrieve) : current instanceof $String ? | ||
// root is an empty string | ||
current.length ? retrieve.hasOwnProperty(current) ? retrieve[current] : retrieve[current] = retrieveFromPath(root, current.split(specialChar)) : root : current instanceof Object ? | ||
// dedicated Object parser | ||
regenerateObject(root, current, retrieve) : | ||
// value as it is | ||
current; | ||
} | ||
function stringifyRecursion(value, replacer, space, doNotResolve) { | ||
return JSON.stringify(value, generateReplacer(value, replacer, !doNotResolve), space); | ||
} | ||
function parseRecursion(text, reviver) { | ||
return JSON.parse(text, generateReviver(reviver)); | ||
} | ||
exports.default = { | ||
stringify: stringifyRecursion, | ||
parse: parseRecursion | ||
}; | ||
module.exports = exports['default']; | ||
},{}],2:[function(require,module,exports){ | ||
'use strict'; | ||
exports.__esModule = true; | ||
var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; | ||
var _CircularJSON = require('../helpers/vendors/CircularJSON'); | ||
var Machine; | ||
@@ -56,3 +229,3 @@ | ||
try { | ||
result = JSON.parse(_circularJson2.default.stringify(something, function (key, value) { | ||
result = JSON.parse((0, _CircularJSON.stringify)(something, function (key, value) { | ||
if (typeof value === 'function') { | ||
@@ -157,197 +330,3 @@ return { __func: value.name === '' ? '<anonymous>' : value.name }; | ||
module.exports = exports['default']; | ||
},{"circular-json":2}],2:[function(require,module,exports){ | ||
/*! | ||
Copyright (C) 2013-2017 by Andrea Giammarchi - @WebReflection | ||
Permission is hereby granted, free of charge, to any person obtaining a copy | ||
of this software and associated documentation files (the "Software"), to deal | ||
in the Software without restriction, including without limitation the rights | ||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell | ||
copies of the Software, and to permit persons to whom the Software is | ||
furnished to do so, subject to the following conditions: | ||
The above copyright notice and this permission notice shall be included in | ||
all copies or substantial portions of the Software. | ||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | ||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | ||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE | ||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER | ||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, | ||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN | ||
THE SOFTWARE. | ||
*/ | ||
var | ||
// should be a not so common char | ||
// possibly one JSON does not encode | ||
// possibly one encodeURIComponent does not encode | ||
// right now this char is '~' but this might change in the future | ||
specialChar = '~', | ||
safeSpecialChar = '\\x' + ( | ||
'0' + specialChar.charCodeAt(0).toString(16) | ||
).slice(-2), | ||
escapedSafeSpecialChar = '\\' + safeSpecialChar, | ||
specialCharRG = new RegExp(safeSpecialChar, 'g'), | ||
safeSpecialCharRG = new RegExp(escapedSafeSpecialChar, 'g'), | ||
safeStartWithSpecialCharRG = new RegExp('(?:^|([^\\\\]))' + escapedSafeSpecialChar), | ||
indexOf = [].indexOf || function(v){ | ||
for(var i=this.length;i--&&this[i]!==v;); | ||
return i; | ||
}, | ||
$String = String // there's no way to drop warnings in JSHint | ||
// about new String ... well, I need that here! | ||
// faked, and happy linter! | ||
; | ||
function generateReplacer(value, replacer, resolve) { | ||
var | ||
inspect = !!replacer, | ||
path = [], | ||
all = [value], | ||
seen = [value], | ||
mapp = [resolve ? specialChar : '[Circular]'], | ||
last = value, | ||
lvl = 1, | ||
i, fn | ||
; | ||
if (inspect) { | ||
fn = typeof replacer === 'object' ? | ||
function (key, value) { | ||
return key !== '' && replacer.indexOf(key) < 0 ? void 0 : value; | ||
} : | ||
replacer; | ||
} | ||
return function(key, value) { | ||
// the replacer has rights to decide | ||
// if a new object should be returned | ||
// or if there's some key to drop | ||
// let's call it here rather than "too late" | ||
if (inspect) value = fn.call(this, key, value); | ||
// did you know ? Safari passes keys as integers for arrays | ||
// which means if (key) when key === 0 won't pass the check | ||
if (key !== '') { | ||
if (last !== this) { | ||
i = lvl - indexOf.call(all, this) - 1; | ||
lvl -= i; | ||
all.splice(lvl, all.length); | ||
path.splice(lvl - 1, path.length); | ||
last = this; | ||
} | ||
// console.log(lvl, key, path); | ||
if (typeof value === 'object' && value) { | ||
// if object isn't referring to parent object, add to the | ||
// object path stack. Otherwise it is already there. | ||
if (indexOf.call(all, value) < 0) { | ||
all.push(last = value); | ||
} | ||
lvl = all.length; | ||
i = indexOf.call(seen, value); | ||
if (i < 0) { | ||
i = seen.push(value) - 1; | ||
if (resolve) { | ||
// key cannot contain specialChar but could be not a string | ||
path.push(('' + key).replace(specialCharRG, safeSpecialChar)); | ||
mapp[i] = specialChar + path.join(specialChar); | ||
} else { | ||
mapp[i] = mapp[0]; | ||
} | ||
} else { | ||
value = mapp[i]; | ||
} | ||
} else { | ||
if (typeof value === 'string' && resolve) { | ||
// ensure no special char involved on deserialization | ||
// in this case only first char is important | ||
// no need to replace all value (better performance) | ||
value = value .replace(safeSpecialChar, escapedSafeSpecialChar) | ||
.replace(specialChar, safeSpecialChar); | ||
} | ||
} | ||
} | ||
return value; | ||
}; | ||
} | ||
function retrieveFromPath(current, keys) { | ||
for(var i = 0, length = keys.length; i < length; current = current[ | ||
// keys should be normalized back here | ||
keys[i++].replace(safeSpecialCharRG, specialChar) | ||
]); | ||
return current; | ||
} | ||
function generateReviver(reviver) { | ||
return function(key, value) { | ||
var isString = typeof value === 'string'; | ||
if (isString && value.charAt(0) === specialChar) { | ||
return new $String(value.slice(1)); | ||
} | ||
if (key === '') value = regenerate(value, value, {}); | ||
// again, only one needed, do not use the RegExp for this replacement | ||
// only keys need the RegExp | ||
if (isString) value = value .replace(safeStartWithSpecialCharRG, '$1' + specialChar) | ||
.replace(escapedSafeSpecialChar, safeSpecialChar); | ||
return reviver ? reviver.call(this, key, value) : value; | ||
}; | ||
} | ||
function regenerateArray(root, current, retrieve) { | ||
for (var i = 0, length = current.length; i < length; i++) { | ||
current[i] = regenerate(root, current[i], retrieve); | ||
} | ||
return current; | ||
} | ||
function regenerateObject(root, current, retrieve) { | ||
for (var key in current) { | ||
if (current.hasOwnProperty(key)) { | ||
current[key] = regenerate(root, current[key], retrieve); | ||
} | ||
} | ||
return current; | ||
} | ||
function regenerate(root, current, retrieve) { | ||
return current instanceof Array ? | ||
// fast Array reconstruction | ||
regenerateArray(root, current, retrieve) : | ||
( | ||
current instanceof $String ? | ||
( | ||
// root is an empty string | ||
current.length ? | ||
( | ||
retrieve.hasOwnProperty(current) ? | ||
retrieve[current] : | ||
retrieve[current] = retrieveFromPath( | ||
root, current.split(specialChar) | ||
) | ||
) : | ||
root | ||
) : | ||
( | ||
current instanceof Object ? | ||
// dedicated Object parser | ||
regenerateObject(root, current, retrieve) : | ||
// value as it is | ||
current | ||
) | ||
) | ||
; | ||
} | ||
function stringifyRecursion(value, replacer, space, doNotResolve) { | ||
return JSON.stringify(value, generateReplacer(value, replacer, !doNotResolve), space); | ||
} | ||
function parseRecursion(text, reviver) { | ||
return JSON.parse(text, generateReviver(reviver)); | ||
} | ||
this.stringify = stringifyRecursion; | ||
this.parse = parseRecursion; | ||
},{}]},{},[1])(1) | ||
},{"../helpers/vendors/CircularJSON":1}]},{},[2])(2) | ||
}); |
@@ -1,1 +0,1 @@ | ||
(function(f){if(typeof exports==="object"&&typeof module!=="undefined"){module.exports=f()}else if(typeof define==="function"&&define.amd){define([],f)}else{var g;if(typeof window!=="undefined"){g=window}else if(typeof global!=="undefined"){g=global}else if(typeof self!=="undefined"){g=self}else{g=this}g.stentDevTools=f()}})(function(){var define,module,exports;return function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s}({1:[function(require,module,exports){"use strict";exports.__esModule=true;var _extends=Object.assign||function(target){for(var i=1;i<arguments.length;i++){var source=arguments[i];for(var key in source){if(Object.prototype.hasOwnProperty.call(source,key)){target[key]=source[key]}}}return target};var _circularJson=require("circular-json");var _circularJson2=_interopRequireDefault(_circularJson);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var Machine;var message=function message(data){if(window&&window.top&&window.top.postMessage){var machines=Object.keys(Machine.machines).map(function(name){return{name:name,state:sanitize(Machine.machines[name].state)}});window.top.postMessage(_extends({source:"stent",time:(new Date).getTime(),machines:machines},data),"*")}else{console.error("There is no window.postMessage available")}};var formatYielded=function formatYielded(yielded){var y=yielded;if(yielded&&yielded.__type==="call"){var funcName=yielded.func.name;if(funcName===""){funcName="<anonymous>"}try{y=JSON.parse(JSON.stringify(yielded))}catch(error){y={__type:"call"}}y.func=funcName}return y};var sanitize=function sanitize(something){var showErrorInConsole=arguments.length>1&&arguments[1]!==undefined?arguments[1]:false;var result;try{result=JSON.parse(_circularJson2.default.stringify(something,function(key,value){if(typeof value==="function"){return{__func:value.name===""?"<anonymous>":value.name}}return value}))}catch(error){if(showErrorInConsole){console.log(error)}result=null}return result};var getMetaInfo=function getMetaInfo(meta){return Object.assign({},meta,{middlewares:Machine.middlewares.length})};var DevTools={__sanitize:sanitize,__formatYielded:formatYielded,__message:message,__api:function __api(m){Machine=m},onMachineCreated:function onMachineCreated(machine){message({type:"onMachineCreated",machine:sanitize(machine),meta:getMetaInfo()})},onActionDispatched:function onActionDispatched(actionName){for(var _len=arguments.length,args=Array(_len>1?_len-1:0),_key=1;_key<_len;_key++){args[_key-1]=arguments[_key]}message({type:"onActionDispatched",actionName:actionName,args:sanitize(args),machine:sanitize(this),meta:getMetaInfo()})},onActionProcessed:function onActionProcessed(actionName){for(var _len2=arguments.length,args=Array(_len2>1?_len2-1:0),_key2=1;_key2<_len2;_key2++){args[_key2-1]=arguments[_key2]}message({type:"onActionProcessed",actionName:actionName,args:sanitize(args),machine:sanitize(this),meta:getMetaInfo()})},onStateWillChange:function onStateWillChange(){message({type:"onStateWillChange",machine:sanitize(this),meta:getMetaInfo()})},onStateChanged:function onStateChanged(){message({type:"onStateChanged",machine:sanitize(this),meta:getMetaInfo()})},onGeneratorStep:function onGeneratorStep(yielded){message({type:"onGeneratorStep",yielded:formatYielded(yielded),meta:getMetaInfo()})},onMachineConnected:function onMachineConnected(machines,meta){message({type:"onMachineConnected",meta:getMetaInfo(_extends({},meta,{machines:sanitize(machines)}))})},onMachineDisconnected:function onMachineDisconnected(machines,meta){message({type:"onMachineDisconnected",meta:getMetaInfo(_extends({},meta,{machines:sanitize(machines)}))})},onMiddlewareRegister:function onMiddlewareRegister(){message({pageRefresh:true})}};exports.default=DevTools;module.exports=exports["default"]},{"circular-json":2}],2:[function(require,module,exports){var specialChar="~",safeSpecialChar="\\x"+("0"+specialChar.charCodeAt(0).toString(16)).slice(-2),escapedSafeSpecialChar="\\"+safeSpecialChar,specialCharRG=new RegExp(safeSpecialChar,"g"),safeSpecialCharRG=new RegExp(escapedSafeSpecialChar,"g"),safeStartWithSpecialCharRG=new RegExp("(?:^|([^\\\\]))"+escapedSafeSpecialChar),indexOf=[].indexOf||function(v){for(var i=this.length;i--&&this[i]!==v;);return i},$String=String;function generateReplacer(value,replacer,resolve){var inspect=!!replacer,path=[],all=[value],seen=[value],mapp=[resolve?specialChar:"[Circular]"],last=value,lvl=1,i,fn;if(inspect){fn=typeof replacer==="object"?function(key,value){return key!==""&&replacer.indexOf(key)<0?void 0:value}:replacer}return function(key,value){if(inspect)value=fn.call(this,key,value);if(key!==""){if(last!==this){i=lvl-indexOf.call(all,this)-1;lvl-=i;all.splice(lvl,all.length);path.splice(lvl-1,path.length);last=this}if(typeof value==="object"&&value){if(indexOf.call(all,value)<0){all.push(last=value)}lvl=all.length;i=indexOf.call(seen,value);if(i<0){i=seen.push(value)-1;if(resolve){path.push((""+key).replace(specialCharRG,safeSpecialChar));mapp[i]=specialChar+path.join(specialChar)}else{mapp[i]=mapp[0]}}else{value=mapp[i]}}else{if(typeof value==="string"&&resolve){value=value.replace(safeSpecialChar,escapedSafeSpecialChar).replace(specialChar,safeSpecialChar)}}}return value}}function retrieveFromPath(current,keys){for(var i=0,length=keys.length;i<length;current=current[keys[i++].replace(safeSpecialCharRG,specialChar)]);return current}function generateReviver(reviver){return function(key,value){var isString=typeof value==="string";if(isString&&value.charAt(0)===specialChar){return new $String(value.slice(1))}if(key==="")value=regenerate(value,value,{});if(isString)value=value.replace(safeStartWithSpecialCharRG,"$1"+specialChar).replace(escapedSafeSpecialChar,safeSpecialChar);return reviver?reviver.call(this,key,value):value}}function regenerateArray(root,current,retrieve){for(var i=0,length=current.length;i<length;i++){current[i]=regenerate(root,current[i],retrieve)}return current}function regenerateObject(root,current,retrieve){for(var key in current){if(current.hasOwnProperty(key)){current[key]=regenerate(root,current[key],retrieve)}}return current}function regenerate(root,current,retrieve){return current instanceof Array?regenerateArray(root,current,retrieve):current instanceof $String?current.length?retrieve.hasOwnProperty(current)?retrieve[current]:retrieve[current]=retrieveFromPath(root,current.split(specialChar)):root:current instanceof Object?regenerateObject(root,current,retrieve):current}function stringifyRecursion(value,replacer,space,doNotResolve){return JSON.stringify(value,generateReplacer(value,replacer,!doNotResolve),space)}function parseRecursion(text,reviver){return JSON.parse(text,generateReviver(reviver))}this.stringify=stringifyRecursion;this.parse=parseRecursion},{}]},{},[1])(1)}); | ||
(function(f){if(typeof exports==="object"&&typeof module!=="undefined"){module.exports=f()}else if(typeof define==="function"&&define.amd){define([],f)}else{var g;if(typeof window!=="undefined"){g=window}else if(typeof global!=="undefined"){g=global}else if(typeof self!=="undefined"){g=self}else{g=this}g.stentDevTools=f()}})(function(){var define,module,exports;return function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s}({1:[function(require,module,exports){"use strict";exports.__esModule=true;var _typeof=typeof Symbol==="function"&&typeof Symbol.iterator==="symbol"?function(obj){return typeof obj}:function(obj){return obj&&typeof Symbol==="function"&&obj.constructor===Symbol&&obj!==Symbol.prototype?"symbol":typeof obj};var specialChar="~",safeSpecialChar="\\x"+("0"+specialChar.charCodeAt(0).toString(16)).slice(-2),escapedSafeSpecialChar="\\"+safeSpecialChar,specialCharRG=new RegExp(safeSpecialChar,"g"),safeSpecialCharRG=new RegExp(escapedSafeSpecialChar,"g"),safeStartWithSpecialCharRG=new RegExp("(?:^|([^\\\\]))"+escapedSafeSpecialChar),indexOf=[].indexOf||function(v){for(var i=this.length;i--&&this[i]!==v;){}return i},$String=String;function generateReplacer(value,replacer,resolve){var inspect=!!replacer,path=[],all=[value],seen=[value],mapp=[resolve?specialChar:"[Circular]"],last=value,lvl=1,i,fn;if(inspect){fn=(typeof replacer==="undefined"?"undefined":_typeof(replacer))==="object"?function(key,value){return key!==""&&replacer.indexOf(key)<0?void 0:value}:replacer}return function(key,value){if(inspect)value=fn.call(this,key,value);if(key!==""){if(last!==this){i=lvl-indexOf.call(all,this)-1;lvl-=i;all.splice(lvl,all.length);path.splice(lvl-1,path.length);last=this}if((typeof value==="undefined"?"undefined":_typeof(value))==="object"&&value){if(indexOf.call(all,value)<0){all.push(last=value)}lvl=all.length;i=indexOf.call(seen,value);if(i<0){i=seen.push(value)-1;if(resolve){path.push((""+key).replace(specialCharRG,safeSpecialChar));mapp[i]=specialChar+path.join(specialChar)}else{mapp[i]=mapp[0]}}else{value=mapp[i]}}else{if(typeof value==="string"&&resolve){value=value.replace(safeSpecialChar,escapedSafeSpecialChar).replace(specialChar,safeSpecialChar)}}}return value}}function retrieveFromPath(current,keys){for(var i=0,length=keys.length;i<length;current=current[keys[i++].replace(safeSpecialCharRG,specialChar)]){}return current}function generateReviver(reviver){return function(key,value){var isString=typeof value==="string";if(isString&&value.charAt(0)===specialChar){return new $String(value.slice(1))}if(key==="")value=regenerate(value,value,{});if(isString)value=value.replace(safeStartWithSpecialCharRG,"$1"+specialChar).replace(escapedSafeSpecialChar,safeSpecialChar);return reviver?reviver.call(this,key,value):value}}function regenerateArray(root,current,retrieve){for(var i=0,length=current.length;i<length;i++){current[i]=regenerate(root,current[i],retrieve)}return current}function regenerateObject(root,current,retrieve){for(var key in current){if(current.hasOwnProperty(key)){current[key]=regenerate(root,current[key],retrieve)}}return current}function regenerate(root,current,retrieve){return current instanceof Array?regenerateArray(root,current,retrieve):current instanceof $String?current.length?retrieve.hasOwnProperty(current)?retrieve[current]:retrieve[current]=retrieveFromPath(root,current.split(specialChar)):root:current instanceof Object?regenerateObject(root,current,retrieve):current}function stringifyRecursion(value,replacer,space,doNotResolve){return JSON.stringify(value,generateReplacer(value,replacer,!doNotResolve),space)}function parseRecursion(text,reviver){return JSON.parse(text,generateReviver(reviver))}exports.default={stringify:stringifyRecursion,parse:parseRecursion};module.exports=exports["default"]},{}],2:[function(require,module,exports){"use strict";exports.__esModule=true;var _extends=Object.assign||function(target){for(var i=1;i<arguments.length;i++){var source=arguments[i];for(var key in source){if(Object.prototype.hasOwnProperty.call(source,key)){target[key]=source[key]}}}return target};var _CircularJSON=require("../helpers/vendors/CircularJSON");var Machine;var message=function message(data){if(window&&window.top&&window.top.postMessage){var machines=Object.keys(Machine.machines).map(function(name){return{name:name,state:sanitize(Machine.machines[name].state)}});window.top.postMessage(_extends({source:"stent",time:(new Date).getTime(),machines:machines},data),"*")}else{console.error("There is no window.postMessage available")}};var formatYielded=function formatYielded(yielded){var y=yielded;if(yielded&&yielded.__type==="call"){var funcName=yielded.func.name;if(funcName===""){funcName="<anonymous>"}try{y=JSON.parse(JSON.stringify(yielded))}catch(error){y={__type:"call"}}y.func=funcName}return y};var sanitize=function sanitize(something){var showErrorInConsole=arguments.length>1&&arguments[1]!==undefined?arguments[1]:false;var result;try{result=JSON.parse((0,_CircularJSON.stringify)(something,function(key,value){if(typeof value==="function"){return{__func:value.name===""?"<anonymous>":value.name}}return value}))}catch(error){if(showErrorInConsole){console.log(error)}result=null}return result};var getMetaInfo=function getMetaInfo(meta){return Object.assign({},meta,{middlewares:Machine.middlewares.length})};var DevTools={__sanitize:sanitize,__formatYielded:formatYielded,__message:message,__api:function __api(m){Machine=m},onMachineCreated:function onMachineCreated(machine){message({type:"onMachineCreated",machine:sanitize(machine),meta:getMetaInfo()})},onActionDispatched:function onActionDispatched(actionName){for(var _len=arguments.length,args=Array(_len>1?_len-1:0),_key=1;_key<_len;_key++){args[_key-1]=arguments[_key]}message({type:"onActionDispatched",actionName:actionName,args:sanitize(args),machine:sanitize(this),meta:getMetaInfo()})},onActionProcessed:function onActionProcessed(actionName){for(var _len2=arguments.length,args=Array(_len2>1?_len2-1:0),_key2=1;_key2<_len2;_key2++){args[_key2-1]=arguments[_key2]}message({type:"onActionProcessed",actionName:actionName,args:sanitize(args),machine:sanitize(this),meta:getMetaInfo()})},onStateWillChange:function onStateWillChange(){message({type:"onStateWillChange",machine:sanitize(this),meta:getMetaInfo()})},onStateChanged:function onStateChanged(){message({type:"onStateChanged",machine:sanitize(this),meta:getMetaInfo()})},onGeneratorStep:function onGeneratorStep(yielded){message({type:"onGeneratorStep",yielded:formatYielded(yielded),meta:getMetaInfo()})},onMachineConnected:function onMachineConnected(machines,meta){message({type:"onMachineConnected",meta:getMetaInfo(_extends({},meta,{machines:sanitize(machines)}))})},onMachineDisconnected:function onMachineDisconnected(machines,meta){message({type:"onMachineDisconnected",meta:getMetaInfo(_extends({},meta,{machines:sanitize(machines)}))})},onMiddlewareRegister:function onMiddlewareRegister(){message({pageRefresh:true})}};exports.default=DevTools;module.exports=exports["default"]},{"../helpers/vendors/CircularJSON":1}]},{},[2])(2)}); |
413024
93
5860