some refactoring...

Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
This commit is contained in:
Alex A. Naanou 2018-03-05 00:39:13 +03:00
parent 050c11e72b
commit 8e34c76fb7
5 changed files with 328 additions and 38 deletions

View File

@ -104,7 +104,8 @@ var ImageGridMetaActions =
module.ImageGridMetaActions = { module.ImageGridMetaActions = {
// Test if the action is a Toggler... // Test if the action is a Toggler...
// //
isToggler: actions.doWithRootAction(function(action){ isToggler:
actions.doWithRootAction(function(action){
return action instanceof toggler.Toggler }), return action instanceof toggler.Toggler }),
// Handle special cases where we need to get the action result early, // Handle special cases where we need to get the action result early,
@ -300,11 +301,7 @@ var IntrospectionActions = actions.Actions({
d.slice() d.slice()
: this.actions.filter(this.isEvent.bind(this)) }) }, : this.actions.filter(this.isEvent.bind(this)) }) },
isUserCallable: ['- System/', isUserCallable:
doc`Test if an action is callable by user.
.isUserCallable(<action-name>)
`,
// XXX should this check only the root action or the whole set??? // XXX should this check only the root action or the whole set???
// ...in other words: can we make an action non-user-callable // ...in other words: can we make an action non-user-callable
// anywhere other than the root action? // anywhere other than the root action?
@ -312,10 +309,10 @@ var IntrospectionActions = actions.Actions({
//function(action){ //function(action){
// return this.getActionAttr(action, '__not_user_callable__') != true }], // return this.getActionAttr(action, '__not_user_callable__') != true }],
actions.doWithRootAction(function(action){ actions.doWithRootAction(function(action){
return action.__not_user_callable__ != true })], return action.__not_user_callable__ != true }),
isEvent: ['- System/', isEvent:
actions.doWithRootAction(function(action){ actions.doWithRootAction(function(action){
return !!action.__event__ })], return !!action.__event__ }),
}) })
@ -339,6 +336,19 @@ module.Introspection = ImageGridFeatures.Feature({
// XXX should his have state??? // XXX should his have state???
// ...if so, should this be a toggler??? // ...if so, should this be a toggler???
var LifeCycleActions = actions.Actions({ var LifeCycleActions = actions.Actions({
__stop_handler: null,
__ready: null,
__ready_announce_requested: null,
// introspection...
isStarted: function(){
return !!this.__stop_handler },
isStopped: function(){
return !this.__stop_handler },
isReady: function(){
return !!this.__ready },
start: ['- System/', start: ['- System/',
doc`Start core action/event doc`Start core action/event
@ -355,11 +365,17 @@ var LifeCycleActions = actions.Actions({
This will trigger .declareReady() if no action called This will trigger .declareReady() if no action called
.requestReadyAnnounce() .requestReadyAnnounce()
This will trigger .started() event when done.
NOTE: .runtime attribute will not be available on the .pre handler NOTE: .runtime attribute will not be available on the .pre handler
phase. phase.
NOTE: .requestReadyAnnounce() should be called exclusively on the NOTE: .requestReadyAnnounce() should be called exclusively on the
.pre handler phase as this will check and trigger the .ready() .pre handler phase as this will check and trigger the .ready()
event before the .post phase starts. event before the .post phase starts.
NOTE: handlers bound to this action/event will get called on the
start *event* thus handlers bound when the system is already
started will not get called until next start, to bind a handler
to the started *state* bind to 'started' / .started()
`, `,
function(){ function(){
var that = this var that = this
@ -440,7 +456,18 @@ var LifeCycleActions = actions.Actions({
this.declareReady() this.declareReady()
} }
} }
// trigger the started event...
this.started()
}], }],
started: ['- System/System started event',
doc`
`,
Event(function(){
// System started event...
//
// Not intended for direct use.
})],
ready: ['- System/System ready event', ready: ['- System/System ready event',
doc`Ready core event doc`Ready core event
@ -546,6 +573,58 @@ var LifeCycleActions = actions.Actions({
delete this.__stop_handler delete this.__stop_handler
this.logger && this.logger.emit('stop') this.logger && this.logger.emit('stop')
// trigger the stopped event...
this.stopped()
}],
stopped: ['- System/System stopped event',
doc`
`,
Event(function(){
// System stopped event...
//
// Not intended for direct use.
})],
// trigger core events...
//
// NOTE: we do not need to do .one(..) as it is implemented via .on(..)
//
// XXX EXPERIMENTAL...
// ...should this be an action???
on: ['- System/',
function(evt, ...rest){
var func = rest.slice().pop()
evt = typeof(evt) == typeof('') ? evt.split(/\s/g) : evt
// we trigger the handler AFTER it is registered...
return function(){
// started...
Math.max(
evt.indexOf('started'),
evt.indexOf('started.pre'),
evt.indexOf('started.post')) >= 0
&& this.isStarted()
&& func.call(this)
// ready...
// NOTE: we are ignoring the '.pre' events here as we are already
// in the specific state...
Math.max(
evt.indexOf('ready'),
evt.indexOf('ready.post')) >= 0
&& this.isReady()
&& func.call(this)
// started...
Math.max(
evt.indexOf('stopped'),
evt.indexOf('stopped.pre'),
evt.indexOf('stopped.post')) >= 0
&& this.isStopped()
&& func.call(this)
}
}], }],
}) })

View File

@ -573,9 +573,7 @@ function makeStorageHandler(storage){
keys = a instanceof Array ? a : keys keys = a instanceof Array ? a : keys
keys keys
// add parsed candidates... // add parsed candidates...
.concat(keys .map(function(k){ return resolvePath(k) })
.map(function(k){ return resolvePath(k) }))
.unique()
// clear keys not in store... // clear keys not in store...
.filter(function(k){ .filter(function(k){
return dict[k] in storage || k in storage }) return dict[k] in storage || k in storage })

View File

@ -658,33 +658,30 @@ var DialogsActions = actions.Actions({
// testers... // testers...
// //
// ui elements... // ui elements...
isUIContainer: ['- Interface/', isUIContainer: function(action){
function(action){ return !!this.getActionAttr(action, '__container__') },
return !!this.getActionAttr(action, '__container__') }], isUIDialog: function(action){
isUIDialog: ['- Interface/', return !!this.getActionAttr(action, '__dialog__') },
function(action){ isUIElement: function(action){
return !!this.getActionAttr(action, '__dialog__') }], return this.isUIDialog(action) || this.isUIContainer(action) },
isUIElement: ['- Interface/',
function(action){
return this.isUIDialog(action) || this.isUIContainer(action) }],
// extended ui elements // extended ui elements
// ...first defined as a non-ui action and extended to a ui element. // ...first defined as a non-ui action and extended to a ui element.
isUIExtendedContainer: ['- Interface/', isUIExtendedContainer:
actions.doWithRootAction(function(action, name){ actions.doWithRootAction(function(action, name){
return action != null return action != null
&& !action.__container__ && !action.__container__
&& this.isUIContainer(name) })], && this.isUIContainer(name) }),
isUIExtendedDialog: ['- Interface/', isUIExtendedDialog:
actions.doWithRootAction(function(action, name){ actions.doWithRootAction(function(action, name){
return action != null return action != null
&& !action.__dialog__ && !action.__dialog__
&& this.isUIDialog(name) })], && this.isUIDialog(name) }),
isUIExtendedElement: ['- Interface/', isUIExtendedElement:
actions.doWithRootAction(function(action, name){ actions.doWithRootAction(function(action, name){
return action != null return action != null
&& !action.__dialog__ && !action.__dialog__
&& !action.__container__ && !action.__container__
&& this.isUIElement(name) })], && this.isUIElement(name) }),
// container constructors... // container constructors...

View File

@ -4,6 +4,15 @@
"lockfileVersion": 1, "lockfileVersion": 1,
"requires": true, "requires": true,
"dependencies": { "dependencies": {
"agent-base": {
"version": "4.2.0",
"resolved": "https://registry.npmjs.org/agent-base/-/agent-base-4.2.0.tgz",
"integrity": "sha512-c+R/U5X+2zz2+UCrCFv6odQzJdoqI+YecuhnAJLa1zYaMc13zPfwMwZrr91Pd1DYNo/yPRbiM4WVf9whgwFsIg==",
"dev": true,
"requires": {
"es6-promisify": "5.0.0"
}
},
"ajv": { "ajv": {
"version": "4.11.8", "version": "4.11.8",
"resolved": "https://registry.npmjs.org/ajv/-/ajv-4.11.8.tgz", "resolved": "https://registry.npmjs.org/ajv/-/ajv-4.11.8.tgz",
@ -48,6 +57,12 @@
"resolved": "https://registry.npmjs.org/async-json/-/async-json-0.0.2.tgz", "resolved": "https://registry.npmjs.org/async-json/-/async-json-0.0.2.tgz",
"integrity": "sha1-qnEn2wOejkPaxyvR+7Z7oz9WgnA=" "integrity": "sha1-qnEn2wOejkPaxyvR+7Z7oz9WgnA="
}, },
"async-limiter": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.0.tgz",
"integrity": "sha512-jp/uFnooOiO+L211eZOoSyzpOITMXx1rBITauYykG3BRYPu8h0UcxsPNB04RR5vo4Tyz3+ay17tR6JVf9qzYWg==",
"dev": true
},
"asynckit": { "asynckit": {
"version": "0.4.0", "version": "0.4.0",
"resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
@ -193,12 +208,22 @@
"resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
"integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s="
}, },
"concat-stream": {
"version": "1.6.0",
"resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.0.tgz",
"integrity": "sha1-CqxmL9Ur54lk1VMvaUeE5wEQrPc=",
"dev": true,
"requires": {
"inherits": "2.0.3",
"readable-stream": "2.3.5",
"typedarray": "0.0.6"
}
},
"core-util-is": { "core-util-is": {
"version": "1.0.2", "version": "1.0.2",
"resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz",
"integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=",
"dev": true, "dev": true
"optional": true
}, },
"create-error-class": { "create-error-class": {
"version": "3.0.2", "version": "3.0.2",
@ -314,6 +339,21 @@
"prr": "1.0.1" "prr": "1.0.1"
} }
}, },
"es6-promise": {
"version": "4.2.4",
"resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.4.tgz",
"integrity": "sha512-/NdNZVJg+uZgtm9eS3O6lrOLYmQag2DjdEXuPaHlZ6RuVqgqaVZfgYCepEIKsLqwdQArOPtC3XzRLqGGfT8KQQ==",
"dev": true
},
"es6-promisify": {
"version": "5.0.0",
"resolved": "https://registry.npmjs.org/es6-promisify/-/es6-promisify-5.0.0.tgz",
"integrity": "sha1-UQnWLz5W6pZ8S2NQWu8IKRyKUgM=",
"dev": true,
"requires": {
"es6-promise": "4.2.4"
}
},
"exiftool": { "exiftool": {
"version": "0.0.3", "version": "0.0.3",
"resolved": "https://registry.npmjs.org/exiftool/-/exiftool-0.0.3.tgz", "resolved": "https://registry.npmjs.org/exiftool/-/exiftool-0.0.3.tgz",
@ -326,6 +366,44 @@
"dev": true, "dev": true,
"optional": true "optional": true
}, },
"extract-zip": {
"version": "1.6.6",
"resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-1.6.6.tgz",
"integrity": "sha1-EpDt6NINCHK0Kf0/NRyhKOxe+Fw=",
"dev": true,
"requires": {
"concat-stream": "1.6.0",
"debug": "2.6.9",
"mkdirp": "0.5.0",
"yauzl": "2.4.1"
},
"dependencies": {
"debug": {
"version": "2.6.9",
"resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
"integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
"dev": true,
"requires": {
"ms": "2.0.0"
}
},
"minimist": {
"version": "0.0.8",
"resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz",
"integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=",
"dev": true
},
"mkdirp": {
"version": "0.5.0",
"resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.0.tgz",
"integrity": "sha1-HXMHam35hs2TROFecfzAWkyavxI=",
"dev": true,
"requires": {
"minimist": "0.0.8"
}
}
}
},
"extsprintf": { "extsprintf": {
"version": "1.3.0", "version": "1.3.0",
"resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz",
@ -353,6 +431,15 @@
} }
} }
}, },
"fd-slicer": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.0.1.tgz",
"integrity": "sha1-i1vL2ewyfFBBv5qwI/1nUPEXfmU=",
"dev": true,
"requires": {
"pend": "1.2.0"
}
},
"flickrapi": { "flickrapi": {
"version": "0.3.36", "version": "0.3.36",
"resolved": "https://registry.npmjs.org/flickrapi/-/flickrapi-0.3.36.tgz", "resolved": "https://registry.npmjs.org/flickrapi/-/flickrapi-0.3.36.tgz",
@ -1067,15 +1154,25 @@
"sshpk": "1.13.1" "sshpk": "1.13.1"
} }
}, },
"https-proxy-agent": {
"version": "2.2.0",
"resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-2.2.0.tgz",
"integrity": "sha512-uUWcfXHvy/dwfM9bqa6AozvAjS32dZSTUYd/4SEpYKRg6LEcPLshksnQYRudM9AyNvUARMfAg5TLjUDyX/K4vA==",
"dev": true,
"requires": {
"agent-base": "4.2.0",
"debug": "3.1.0"
}
},
"iconv-lite": { "iconv-lite": {
"version": "0.4.19", "version": "0.4.19",
"resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.19.tgz", "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.19.tgz",
"integrity": "sha512-oTZqweIP51xaGPI4uPa56/Pri/480R+mo7SeU+YETByQNhDG55ycFyNLIgta9vXhILrxXDmF7ZGhqZIcuN0gJQ==" "integrity": "sha512-oTZqweIP51xaGPI4uPa56/Pri/480R+mo7SeU+YETByQNhDG55ycFyNLIgta9vXhILrxXDmF7ZGhqZIcuN0gJQ=="
}, },
"ig-actions": { "ig-actions": {
"version": "3.18.0", "version": "3.19.0",
"resolved": "https://registry.npmjs.org/ig-actions/-/ig-actions-3.18.0.tgz", "resolved": "https://registry.npmjs.org/ig-actions/-/ig-actions-3.19.0.tgz",
"integrity": "sha512-wiN7pjt5CfklD/XNiehJnxrAn6/K7/dorUAYG0zTItYTCtp3iqyPCDtFiAF/PAFMbWjbiQxA2w8oIrZNV1QECQ==", "integrity": "sha512-8X5W7yNtsrwi35RnR+K5H6+/CtEb/dFVXrJEPxOxeByH3njuHwC44MMr3wLIXS0XVH1vM8xjlHsUd0uFU37J5A==",
"requires": { "requires": {
"ig-object": "1.0.2" "ig-object": "1.0.2"
} }
@ -1085,7 +1182,7 @@
"resolved": "https://registry.npmjs.org/ig-features/-/ig-features-3.3.4.tgz", "resolved": "https://registry.npmjs.org/ig-features/-/ig-features-3.3.4.tgz",
"integrity": "sha512-nJmMDfY6JiyQ2mQj31oMOmw/HOY4zbN6yyPEFu61ySXU/f3+CC/GZjdaYFemVbnZThC7hcxYfmj62eSjt7oT+Q==", "integrity": "sha512-nJmMDfY6JiyQ2mQj31oMOmw/HOY4zbN6yyPEFu61ySXU/f3+CC/GZjdaYFemVbnZThC7hcxYfmj62eSjt7oT+Q==",
"requires": { "requires": {
"ig-actions": "3.18.0", "ig-actions": "3.19.0",
"ig-object": "1.0.2" "ig-object": "1.0.2"
} }
}, },
@ -1146,6 +1243,12 @@
"dev": true, "dev": true,
"optional": true "optional": true
}, },
"isarray": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
"integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=",
"dev": true
},
"isomorphic-fetch": { "isomorphic-fetch": {
"version": "2.2.1", "version": "2.2.1",
"resolved": "https://registry.npmjs.org/isomorphic-fetch/-/isomorphic-fetch-2.2.1.tgz", "resolved": "https://registry.npmjs.org/isomorphic-fetch/-/isomorphic-fetch-2.2.1.tgz",
@ -1334,8 +1437,7 @@
"version": "1.6.0", "version": "1.6.0",
"resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz",
"integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==",
"dev": true, "dev": true
"optional": true
}, },
"mime-db": { "mime-db": {
"version": "1.30.0", "version": "1.30.0",
@ -1433,6 +1535,12 @@
"resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
"integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=" "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18="
}, },
"pend": {
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz",
"integrity": "sha1-elfrVQpng/kRUzH89GY9XI4AelA=",
"dev": true
},
"performance-now": { "performance-now": {
"version": "0.2.0", "version": "0.2.0",
"resolved": "https://registry.npmjs.org/performance-now/-/performance-now-0.2.0.tgz", "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-0.2.0.tgz",
@ -1462,6 +1570,18 @@
"resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-1.0.4.tgz", "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-1.0.4.tgz",
"integrity": "sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw=" "integrity": "sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw="
}, },
"process-nextick-args": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.0.tgz",
"integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw==",
"dev": true
},
"progress": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/progress/-/progress-2.0.0.tgz",
"integrity": "sha1-ihvjZr+Pwj2yvSPxDG/pILQ4nR8=",
"dev": true
},
"promise": { "promise": {
"version": "https://registry.npmjs.org/promise/-/promise-7.1.1.tgz", "version": "https://registry.npmjs.org/promise/-/promise-7.1.1.tgz",
"integrity": "sha512-mxw1Fcl1jxLdpzS7MTIxrdiWk3CeMvZvVSGWE4P9eml3diZPBZTNV4oQsdYY3fY6j9udbmC1mSP6lqlzg6voBA==", "integrity": "sha512-mxw1Fcl1jxLdpzS7MTIxrdiWk3CeMvZvVSGWE4P9eml3diZPBZTNV4oQsdYY3fY6j9udbmC1mSP6lqlzg6voBA==",
@ -1480,6 +1600,12 @@
"object-assign": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz" "object-assign": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz"
} }
}, },
"proxy-from-env": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.0.0.tgz",
"integrity": "sha1-M8UDmPcOp+uW0h97gXYwpVeRx+4=",
"dev": true
},
"prr": { "prr": {
"version": "1.0.1", "version": "1.0.1",
"resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz", "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz",
@ -1494,6 +1620,33 @@
"dev": true, "dev": true,
"optional": true "optional": true
}, },
"puppeteer": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/puppeteer/-/puppeteer-1.1.1.tgz",
"integrity": "sha1-rb8l5J9e8DRDwQq44JqVTKDHv+4=",
"dev": true,
"requires": {
"debug": "2.6.9",
"extract-zip": "1.6.6",
"https-proxy-agent": "2.2.0",
"mime": "1.6.0",
"progress": "2.0.0",
"proxy-from-env": "1.0.0",
"rimraf": "2.6.2",
"ws": "3.3.3"
},
"dependencies": {
"debug": {
"version": "2.6.9",
"resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
"integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
"dev": true,
"requires": {
"ms": "2.0.0"
}
}
}
},
"qs": { "qs": {
"version": "6.4.0", "version": "6.4.0",
"resolved": "https://registry.npmjs.org/qs/-/qs-6.4.0.tgz", "resolved": "https://registry.npmjs.org/qs/-/qs-6.4.0.tgz",
@ -1537,6 +1690,21 @@
"prop-types": "15.6.0" "prop-types": "15.6.0"
} }
}, },
"readable-stream": {
"version": "2.3.5",
"resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.5.tgz",
"integrity": "sha512-tK0yDhrkygt/knjowCUiWP9YdV7c5R+8cR0r/kt9ZhBU906Fs6RpQJCEilamRJj1Nx2rWI6LkW9gKqjTkshhEw==",
"dev": true,
"requires": {
"core-util-is": "1.0.2",
"inherits": "2.0.3",
"isarray": "1.0.0",
"process-nextick-args": "2.0.0",
"safe-buffer": "5.1.1",
"string_decoder": "1.0.3",
"util-deprecate": "1.0.2"
}
},
"request": { "request": {
"version": "2.81.0", "version": "2.81.0",
"resolved": "https://registry.npmjs.org/request/-/request-2.81.0.tgz", "resolved": "https://registry.npmjs.org/request/-/request-2.81.0.tgz",
@ -1686,6 +1854,15 @@
} }
} }
}, },
"string_decoder": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz",
"integrity": "sha512-4AH6Z5fzNNBcH+6XDMfA/BTt87skxqJlO0lAh3Dker5zThcAxG6mKz+iGu308UKoPPQ8Dcqx/4JhujzltRa+hQ==",
"dev": true,
"requires": {
"safe-buffer": "5.1.1"
}
},
"stringstream": { "stringstream": {
"version": "0.0.5", "version": "0.0.5",
"resolved": "https://registry.npmjs.org/stringstream/-/stringstream-0.0.5.tgz", "resolved": "https://registry.npmjs.org/stringstream/-/stringstream-0.0.5.tgz",
@ -1748,11 +1925,23 @@
"dev": true, "dev": true,
"optional": true "optional": true
}, },
"typedarray": {
"version": "0.0.6",
"resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz",
"integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=",
"dev": true
},
"ua-parser-js": { "ua-parser-js": {
"version": "0.7.14", "version": "0.7.14",
"resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.14.tgz", "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.14.tgz",
"integrity": "sha1-EQ1T+kw/MmwSEpK76skE0uAzh8o=" "integrity": "sha1-EQ1T+kw/MmwSEpK76skE0uAzh8o="
}, },
"ultron": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/ultron/-/ultron-1.1.1.tgz",
"integrity": "sha512-UIEXBNeYmKptWH6z8ZnqTeS8fV74zG0/eRU9VGkpzz+LIJNs8W/zM/L+7ctCkRrgbNnnR0xxw4bKOr0cW0N0Og==",
"dev": true
},
"universalify": { "universalify": {
"version": "0.1.1", "version": "0.1.1",
"resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.1.tgz", "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.1.tgz",
@ -1771,6 +1960,12 @@
"prepend-http": "1.0.4" "prepend-http": "1.0.4"
} }
}, },
"util-deprecate": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
"integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=",
"dev": true
},
"uuid": { "uuid": {
"version": "3.2.1", "version": "3.2.1",
"resolved": "https://registry.npmjs.org/uuid/-/uuid-3.2.1.tgz", "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.2.1.tgz",
@ -1929,6 +2124,26 @@
"version": "1.0.2", "version": "1.0.2",
"resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
"integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8="
},
"ws": {
"version": "3.3.3",
"resolved": "https://registry.npmjs.org/ws/-/ws-3.3.3.tgz",
"integrity": "sha512-nnWLa/NwZSt4KQJu51MYlCcSQ5g7INpOrOMt4XV8j4dqTXdmlUmSHQ8/oLC069ckre0fRsgfvsKwbTdtKLCDkA==",
"dev": true,
"requires": {
"async-limiter": "1.0.0",
"safe-buffer": "5.1.1",
"ultron": "1.1.1"
}
},
"yauzl": {
"version": "2.4.1",
"resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.4.1.tgz",
"integrity": "sha1-lSj0QtqxsihOWLQ3m7GU4i4MQAU=",
"dev": true,
"requires": {
"fd-slicer": "1.0.1"
}
} }
} }
} }

View File

@ -26,7 +26,7 @@
"fs-walk": "^0.0.1", "fs-walk": "^0.0.1",
"glob": "^4.0.6", "glob": "^4.0.6",
"guarantee-events": "^1.0.0", "guarantee-events": "^1.0.0",
"ig-actions": "^3.18.0", "ig-actions": "^3.19.0",
"ig-features": "^3.3.4", "ig-features": "^3.3.4",
"ig-object": "^1.0.2", "ig-object": "^1.0.2",
"moment": "^2.21.0", "moment": "^2.21.0",
@ -46,7 +46,8 @@
}, },
"devDependencies": { "devDependencies": {
"electron-wix-msi": "^1.3.0", "electron-wix-msi": "^1.3.0",
"less": "^3.0.1" "less": "^3.0.1",
"puppeteer": "^1.1.1"
}, },
"bin": { "bin": {
"ig": "ig.js" "ig": "ig.js"