added .togglePersistent(..) + experimenting with special tags...

Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
This commit is contained in:
Alex A. Naanou 2018-12-12 00:53:17 +03:00
parent a19391d085
commit f89a4ce170
7 changed files with 256 additions and 108 deletions

View File

@ -98,7 +98,7 @@ module.CLI = core.ImageGridFeatures.Feature({
actions: CLIActions,
handlers: [
['start',
['ready',
function(){
var that = this
// get the arguments...
@ -205,6 +205,8 @@ module.CLI = core.ImageGridFeatures.Feature({
.option('repl, --repl', 'start an ImageGrid REPL', function(){
var repl = nodeRequire('repl')
keep_running = true
// setup the global ns...
global.ig =
global.ImageGrid =
@ -214,17 +216,21 @@ module.CLI = core.ImageGridFeatures.Feature({
global.ImageGridFeatures = core.ImageGridFeatures
//var ig = core.ImageGridFeatures
repl
.start({
prompt: 'ig> ',
repl.start({
prompt: 'ig> ',
useGlobal: true,
useGlobal: true,
input: process.stdin,
output: process.stdout,
input: process.stdin,
output: process.stdout,
//ignoreUndefined: true,
})
//ignoreUndefined: true,
})
.on('exit', function(){
ig.stop()
})
})
// XXX this needs both a local/linked nwjs installed and an
@ -270,9 +276,16 @@ module.CLI = core.ImageGridFeatures.Feature({
.parse(argv)
// XXX is this the right way to trigger state change
// from within a state action...
!keep_running
&& this.stop()
}]
&& this.afterAction(function(){ process.exit() })
}],
/*
['stop',
function(){
console.log('STOP') }],
//*/
],
})

View File

@ -325,12 +325,12 @@ var LifeCycleActions = actions.Actions({
return !!this.__ready },
// XXX is this the right name for this???
get runtimeState(){
return this.isStarted() ?
'started'
: this.isStarted() ?
return this.isStopped() ?
'stopped'
: this.isReady() ?
'ready'
: this.isStarted() ?
'started'
: undefined },
start: ['- System/',

View File

@ -36,9 +36,9 @@ var ExampleActions = actions.Actions({
// i.e. once defined it can't be overwritten...
exampleAction: ['Test/Action',
function(){
console.log('>>>', [...arguments])
console.log('>>>', ...arguments)
return function(){
console.log('<<<', [...arguments]) }}],
console.log('<<<', ...arguments) }}],
exampleActionFull: ['- Test/',
core.doc`Example full action long documentation string
`,
@ -62,6 +62,22 @@ var ExampleActions = actions.Actions({
exampleAliasDebounced: ['Test/',
core.debounce(1000, 'exampleAction: ...')],
exampleAfterActionCall: ['Test/',
function(){
// schedule a call after the action is done...
this.afterAction('local',
function(){ console.log('exampleAfterActionCall: done.') })
// schedule a call after the top action call...
this.afterAction('top',
function(){ console.log('exampleAfterActionCall: final done.') })
}],
exampleNestedAfterActionCall: ['Test/',
function(){
this.afterAction(function(){ console.log('exampleNestedAfterActionCall: done.') })
this.exampleAfterActionCall()
}],
// a normal method...
exampleMethod: function(){
console.log('example method:', [...arguments])
@ -284,7 +300,11 @@ module.Example = core.ImageGridFeatures.Feature({
// XXX make this not applicable in production...
handlers: [
['exampleAsyncAction.pre exampleSyncAction.pre',
[[
'exampleAsyncAction.pre',
'exampleSyncAction.pre',
'exampleAfterActionCall.pre',
],
function(){
console.log('PRE')
return function(){

View File

@ -10,8 +10,6 @@
require('v8-compile-cache')
// NOTE: this fixes several issues with lib/util conflicting with stuff...
// XXX this might also pose some other issues within the repl, needs
// testing...
require('repl')
require('./cfg/requirejs')

View File

@ -200,7 +200,7 @@ var TagsPrototype = {
// data...
//
// Format:
// [ <tag>, ... ]
// Set([ <tag>, ... ])
//
// XXX Q: should these be normalized???
__persistent_tags: null,
@ -221,6 +221,43 @@ var TagsPrototype = {
// }
__index: null,
// XXX
// XXX need a way to edit the compound tag...
__special_tag_handlers__: {
'*persistent*': function(action, tag, value){
// XXX remove the tag...
// XXX add the tag to .__persistent_tags
// XXX return the new tag for normal handling...
},
},
handleSpecialTag: function(action, tag, value){
var that = this
var handlers = this.__special_tag_handlers__ || {}
// get the matching handler key...
var key = Object.keys(handlers)
.filter(function(k){
return that.match(k, tag) })
// XXX should we handle multiple matches???
.shift()
// resolve handler aliases...
var match = key
do {
match = handlers[match]
} while(!(match instanceof Function) && match in handlers)
// no handler...
if(!(match instanceof Function)){
// XXX
return false
}
// XXX remove key from tag...
return match.call(this, action, tag, value)
},
// Utils...
//
@ -298,6 +335,8 @@ var TagsPrototype = {
//
//
// NOTE: this is not symmetric e.g. a will match a:b but not vice-versa.
//
// XXX BUG: /aaa matching...
match: function(a, b, cmp){
var that = this
@ -433,6 +472,28 @@ var TagsPrototype = {
get length(){
return this.values().length },
// Toggle a tag to persistent/non-persistent...
//
// A persistent is not removed when untagging a value.
//
// .togglePersistent(tag)
// .togglePersistent(tag, tag, ...)
// .togglePersistent([tag, tag, ...])
// -> states
//
// .togglePersistent(tag, action)
// .togglePersistent(tag, tag, ..., action)
// .togglePersistent([tag, tag, ...], action)
// -> states
//
//
// action can be:
// 'on' - toggle all tags on
// 'off' - toggle all off
// 'toggle' - toggle all depending on initial state
// '?' - return list of states
//
//
// XXX one way to play with this is to add a special tag to set/path
// to make it persistent...
// Example:
@ -444,9 +505,27 @@ var TagsPrototype = {
// We would need "virtual" tags for this, i.e. tags that are
// not actually added to the index but are used for system
// stuff...
// XXX need a way to add/remove these...
persistent: function(){
// XXX
togglePersistent: function(...tags){
action = ['on', 'off', 'toggle', '?'].includes(tags[tags.length-1]) ?
tags.pop()
: 'toggle'
tags = tags[0] instanceof Array && tags.length == 1 ? tags.pop() : tags
var persistent = this.__persistent_tags = this.__persistent_tags || new Set()
return tags
.map(function(tag){
return action == 'on' ?
(persistent.add(tag), 'on')
: action == 'off' ?
(persistent.delete(tag), 'off')
: action == 'toggle' ?
(persistent.has(tag) ?
(persistent.delete(tag), 'off')
: (persistent.add(tag), 'on'))
: (persistent.has(tag) ?
'on'
: 'off') })
},
// XXX can these be faster???
@ -517,7 +596,7 @@ var TagsPrototype = {
// get all tags...
} else {
return Object.keys(this.__index || {})
.concat((this.__persistent_tags || [])
.concat([...(this.__persistent_tags || [])]
.map(function(t){
return that.normalizeTags(t) }))
.unique()
@ -1085,8 +1164,8 @@ var TagsPrototype = {
&& (res.aliases = Object.assign({}, this.__aliases))
// persistent tags...
this.__persistent_tags && this.__persistent_tags.length > 0
&& (res.persistent = this.__persistent_tags.slice())
this.__persistent_tags && this.__persistent_tags.size > 0
&& (res.persistent = [...this.__persistent_tags])
// tags...
res.tags = {}
@ -1106,7 +1185,7 @@ var TagsPrototype = {
// persistent tags...
json.persistent
&& (this.__persistent_tags = json.persistent.slice())
&& (this.__persistent_tags = new Set(json.persistent))
// tags...
json.tags

View File

@ -14,16 +14,16 @@
}
},
"ajv": {
"version": "5.5.2",
"resolved": "https://registry.npmjs.org/ajv/-/ajv-5.5.2.tgz",
"integrity": "sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU=",
"version": "6.6.1",
"resolved": "https://registry.npmjs.org/ajv/-/ajv-6.6.1.tgz",
"integrity": "sha512-ZoJjft5B+EJBjUyu9C9Hc0OZyPZSSlOF+plzouTrg6UlA8f+e/n8NIgBFG/9tppJtpPWfthHakK7juJdNDODww==",
"dev": true,
"optional": true,
"requires": {
"co": "^4.6.0",
"fast-deep-equal": "^1.0.0",
"fast-deep-equal": "^2.0.1",
"fast-json-stable-stringify": "^2.0.0",
"json-schema-traverse": "^0.3.0"
"json-schema-traverse": "^0.4.1",
"uri-js": "^4.2.2"
}
},
"app-module-path": {
@ -156,13 +156,6 @@
"integrity": "sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18=",
"dev": true
},
"co": {
"version": "4.6.0",
"resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz",
"integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=",
"dev": true,
"optional": true
},
"color": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/color/-/color-1.0.3.tgz",
@ -195,9 +188,9 @@
}
},
"combined-stream": {
"version": "1.0.6",
"resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.6.tgz",
"integrity": "sha1-cj599ugBrFYTETp+RFqbactjKBg=",
"version": "1.0.7",
"resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.7.tgz",
"integrity": "sha512-brWl9y6vOB1xYPZcpZde3N9zDByXTosAeMDo4p1wzo6UMOX4vumB+TP1RZ76sfE6Md68Q0NJSrE/gbezd4Ul+w==",
"dev": true,
"requires": {
"delayed-stream": "~1.0.0"
@ -311,6 +304,19 @@
"klaw": "^2.1.0",
"lodash": "^4.17.4",
"uuid": "^3.1.0"
},
"dependencies": {
"fs-extra": {
"version": "4.0.3",
"resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-4.0.3.tgz",
"integrity": "sha512-q6rbdDd1o2mAnQreO7YADIxf/Whx4AHBiRf6d+/cVT8h44ss+lHgxf1FemcqDnQt9X3ct4McHr+JMGlYSsK7Cg==",
"dev": true,
"requires": {
"graceful-fs": "^4.1.2",
"jsonfile": "^4.0.0",
"universalify": "^0.1.0"
}
}
}
},
"encoding": {
@ -339,7 +345,7 @@
},
"es6-promisify": {
"version": "5.0.0",
"resolved": "https://registry.npmjs.org/es6-promisify/-/es6-promisify-5.0.0.tgz",
"resolved": "http://registry.npmjs.org/es6-promisify/-/es6-promisify-5.0.0.tgz",
"integrity": "sha1-UQnWLz5W6pZ8S2NQWu8IKRyKUgM=",
"dev": true,
"requires": {
@ -388,9 +394,9 @@
"dev": true
},
"fast-deep-equal": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-1.1.0.tgz",
"integrity": "sha1-wFNHeBfIa1HaqFPIHgWbcz0CNhQ=",
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz",
"integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=",
"dev": true,
"optional": true
},
@ -921,21 +927,21 @@
"optional": true
},
"form-data": {
"version": "2.3.2",
"resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.2.tgz",
"integrity": "sha1-SXBJi+YEwgwAXU9cI67NIda0kJk=",
"version": "2.3.3",
"resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz",
"integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==",
"dev": true,
"optional": true,
"requires": {
"asynckit": "^0.4.0",
"combined-stream": "1.0.6",
"combined-stream": "^1.0.6",
"mime-types": "^2.1.12"
}
},
"fs-extra": {
"version": "4.0.3",
"resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-4.0.3.tgz",
"integrity": "sha512-q6rbdDd1o2mAnQreO7YADIxf/Whx4AHBiRf6d+/cVT8h44ss+lHgxf1FemcqDnQt9X3ct4McHr+JMGlYSsK7Cg==",
"version": "7.0.1",
"resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz",
"integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==",
"requires": {
"graceful-fs": "^4.1.2",
"jsonfile": "^4.0.0",
@ -1098,13 +1104,13 @@
"optional": true
},
"har-validator": {
"version": "5.1.0",
"resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.0.tgz",
"integrity": "sha512-+qnmNjI4OfH2ipQ9VQOw23bBd/ibtfbVdK2fYbY4acTDqKTW/YDp9McimZdDbG8iV9fZizUqQMD5xvriB146TA==",
"version": "5.1.3",
"resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.3.tgz",
"integrity": "sha512-sNvOCzEQNr/qrvJgc3UG/kD4QtlHycrzwS+6mfTrrSq97BvaYcPZZI1ZSqGSPR73Cxn4LKTD4PttRwfU7jWq5g==",
"dev": true,
"optional": true,
"requires": {
"ajv": "^5.3.0",
"ajv": "^6.5.5",
"har-schema": "^2.0.0"
}
},
@ -1149,9 +1155,9 @@
"integrity": "sha512-oTZqweIP51xaGPI4uPa56/Pri/480R+mo7SeU+YETByQNhDG55ycFyNLIgta9vXhILrxXDmF7ZGhqZIcuN0gJQ=="
},
"ig-actions": {
"version": "3.21.1",
"resolved": "https://registry.npmjs.org/ig-actions/-/ig-actions-3.21.1.tgz",
"integrity": "sha512-Xkb8UefjCA6mZrgtIh41GDMfkWC3+QETwhcqYqEHfwLZQ/+340HbPvkOIq7W42OrwLHwS3pzI3n879L6zZesJA==",
"version": "3.22.0",
"resolved": "https://registry.npmjs.org/ig-actions/-/ig-actions-3.22.0.tgz",
"integrity": "sha512-pyZpA/3tdXrfHUyWKq/tvOGjLDHqsPD/jaO7Jl2qRsfrCgmK6Tof/3POwl+O8j/W0wD3EH25xLitkR+Hvo9q/Q==",
"requires": {
"ig-object": "^1.0.7"
}
@ -1268,8 +1274,7 @@
"version": "0.1.1",
"resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz",
"integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=",
"dev": true,
"optional": true
"dev": true
},
"json-schema": {
"version": "0.2.3",
@ -1279,9 +1284,9 @@
"optional": true
},
"json-schema-traverse": {
"version": "0.3.1",
"resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz",
"integrity": "sha1-NJptRMU6Ud6JtAgFxdXlm0F9M0A=",
"version": "0.4.1",
"resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
"integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==",
"dev": true,
"optional": true
},
@ -1331,9 +1336,9 @@
}
},
"less": {
"version": "3.8.1",
"resolved": "https://registry.npmjs.org/less/-/less-3.8.1.tgz",
"integrity": "sha512-8HFGuWmL3FhQR0aH89escFNBQH/nEiYPP2ltDFdQw2chE28Yx2E3lhAIq9Y2saYwLSwa699s4dBVEfCY8Drf7Q==",
"version": "3.9.0",
"resolved": "https://registry.npmjs.org/less/-/less-3.9.0.tgz",
"integrity": "sha512-31CmtPEZraNUtuUREYjSqRkeETFdyEHSEPAGq4erDlUXtda7pzNmctdljdIagSb589d/qXGWiiP31R5JVf+v0w==",
"dev": true,
"requires": {
"clone": "^2.1.2",
@ -1374,18 +1379,18 @@
"optional": true
},
"mime-db": {
"version": "1.35.0",
"resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.35.0.tgz",
"integrity": "sha512-JWT/IcCTsB0Io3AhWUMjRqucrHSPsSf2xKLaRldJVULioggvkJvggZ3VXNNSRkCddE6D+BUI4HEIZIA2OjwIvg==",
"version": "1.37.0",
"resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.37.0.tgz",
"integrity": "sha512-R3C4db6bgQhlIhPU48fUtdVmKnflq+hRdad7IyKhtFj06VPNVdk2RhiYL3UjQIlso8L+YxAtFkobT0VK+S/ybg==",
"dev": true
},
"mime-types": {
"version": "2.1.19",
"resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.19.tgz",
"integrity": "sha512-P1tKYHVSZ6uFo26mtnve4HQFE3koh1UWVkp8YUC+ESBHe945xWSoXuHHiGarDqcEZ+whpCDnlNw5LON0kLo+sw==",
"version": "2.1.21",
"resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.21.tgz",
"integrity": "sha512-3iL6DbwpyLzjR3xHSFNFeb9Nz/M8WDkX33t1GFQnFOllWk8pOrh/LSrB5OXlnlW5P9LH73X6loW/eogc+F5lJg==",
"dev": true,
"requires": {
"mime-db": "~1.35.0"
"mime-db": "~1.37.0"
}
},
"minimatch": {
@ -1522,9 +1527,9 @@
"dev": true
},
"progress": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/progress/-/progress-2.0.1.tgz",
"integrity": "sha512-OE+a6vzqazc+K6LxJrX5UPyKFvGnL5CYmq2jFGNIBWHpc4QyE49/YOumcrpQFJpfejmvRtbJzgO1zPmMCqlbBg==",
"version": "2.0.3",
"resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz",
"integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==",
"dev": true
},
"promise": {
@ -1572,32 +1577,47 @@
"optional": true
},
"punycode": {
"version": "1.4.1",
"resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz",
"integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=",
"version": "2.1.1",
"resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz",
"integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==",
"dev": true,
"optional": true
},
"puppeteer": {
"version": "1.9.0",
"resolved": "https://registry.npmjs.org/puppeteer/-/puppeteer-1.9.0.tgz",
"integrity": "sha512-GH4PmhJf9wBRAPvtJkEJLAvdNNOofZortmBZSj8cGWYni98GUFqsf66blOEfJbo5B8l0KG5HR2d/W2MejnUrzg==",
"version": "1.11.0",
"resolved": "https://registry.npmjs.org/puppeteer/-/puppeteer-1.11.0.tgz",
"integrity": "sha512-iG4iMOHixc2EpzqRV+pv7o3GgmU2dNYEMkvKwSaQO/vMZURakwSOn/EYJ6OIRFYOque1qorzIBvrytPIQB3YzQ==",
"dev": true,
"requires": {
"debug": "^3.1.0",
"debug": "^4.1.0",
"extract-zip": "^1.6.6",
"https-proxy-agent": "^2.2.1",
"mime": "^2.0.3",
"progress": "^2.0.0",
"progress": "^2.0.1",
"proxy-from-env": "^1.0.0",
"rimraf": "^2.6.1",
"ws": "^5.1.1"
"ws": "^6.1.0"
},
"dependencies": {
"debug": {
"version": "4.1.0",
"resolved": "https://registry.npmjs.org/debug/-/debug-4.1.0.tgz",
"integrity": "sha512-heNPJUJIqC+xB6ayLAMHaIrmN9HKa7aQO8MGqKpvCA+uJYVcvR6l5kgdrhRuwPFHU7P5/A1w0BjByPHwpfTDKg==",
"dev": true,
"requires": {
"ms": "^2.1.1"
}
},
"mime": {
"version": "2.3.1",
"resolved": "https://registry.npmjs.org/mime/-/mime-2.3.1.tgz",
"integrity": "sha512-OEUllcVoydBHGN1z84yfQDimn58pZNNNXgZlHXSboxMlFvgI6MXSWpWKpFRra7H1HxpVhHTkrghfRW49k6yjeg==",
"version": "2.4.0",
"resolved": "https://registry.npmjs.org/mime/-/mime-2.4.0.tgz",
"integrity": "sha512-ikBcWwyqXQSHKtciCcctu9YfPbFYZ4+gbHEmE0Q8jzcTYQg5dHCr3g2wwAZjPoJfQVXZq6KXAjpXOTf5/cjT7w==",
"dev": true
},
"ms": {
"version": "2.1.1",
"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz",
"integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==",
"dev": true
}
}
@ -1636,7 +1656,7 @@
},
"readable-stream": {
"version": "2.3.6",
"resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz",
"resolved": "http://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz",
"integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==",
"dev": true,
"requires": {
@ -1777,9 +1797,9 @@
"optional": true
},
"sshpk": {
"version": "1.14.2",
"resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.14.2.tgz",
"integrity": "sha1-xvxhZIo9nE52T9P8306hBeSSupg=",
"version": "1.15.2",
"resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.15.2.tgz",
"integrity": "sha512-Ra/OXQtuh0/enyl4ETZAfTaeksa6BXks5ZcjpSUNrjBr0DvrJKX+1fsKDPpT9TBXgHAFsa4510aNVgI8g/+SzA==",
"dev": true,
"optional": true,
"requires": {
@ -1796,7 +1816,7 @@
},
"string_decoder": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
"resolved": "http://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
"integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
"dev": true,
"requires": {
@ -1832,6 +1852,15 @@
"requires": {
"psl": "^1.1.24",
"punycode": "^1.4.1"
},
"dependencies": {
"punycode": {
"version": "1.4.1",
"resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz",
"integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=",
"dev": true,
"optional": true
}
}
},
"tunnel-agent": {
@ -1846,8 +1875,7 @@
"version": "0.14.5",
"resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz",
"integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=",
"dev": true,
"optional": true
"dev": true
},
"typedarray": {
"version": "0.0.6",
@ -1861,15 +1889,25 @@
"integrity": "sha1-EQ1T+kw/MmwSEpK76skE0uAzh8o="
},
"universalify": {
"version": "0.1.1",
"resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.1.tgz",
"integrity": "sha1-+nG63UQ3r0wUiEHjs7Fl+enlkLc="
"version": "0.1.2",
"resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz",
"integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg=="
},
"unzip-response": {
"version": "2.0.1",
"resolved": false,
"integrity": "sha1-0vD3N9FrBhXnKmk17QQhRXLVb5c="
},
"uri-js": {
"version": "4.2.2",
"resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz",
"integrity": "sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==",
"dev": true,
"optional": true,
"requires": {
"punycode": "^2.1.0"
}
},
"url-parse-lax": {
"version": "1.0.0",
"resolved": false,
@ -2045,9 +2083,9 @@
"integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8="
},
"ws": {
"version": "5.2.2",
"resolved": "https://registry.npmjs.org/ws/-/ws-5.2.2.tgz",
"integrity": "sha512-jaHFD6PFv6UgoIVda6qZllptQsMlDEJkTQcybzzXDYM1XO9Y8em691FGMPmM46WGyLU4z9KMgQN+qrux/nhlHA==",
"version": "6.1.2",
"resolved": "https://registry.npmjs.org/ws/-/ws-6.1.2.tgz",
"integrity": "sha512-rfUqzvz0WxmSXtJpPMX2EeASXabOrSMk1ruMOV3JBTBjo4ac2lDjGGsbQSyxj8Odhw5fBib8ZKEjDNvgouNKYw==",
"dev": true,
"requires": {
"async-limiter": "~1.0.0"

View File

@ -22,11 +22,11 @@
"async-json": "0.0.2",
"commander": "^2.19.0",
"exiftool": "^0.0.3",
"fs-extra": "*",
"fs-extra": "^7.0.1",
"fs-walk": "^0.0.1",
"glob": "^4.0.6",
"guarantee-events": "^1.0.0",
"ig-actions": "^3.21.1",
"ig-actions": "^3.22.0",
"ig-features": "^3.3.4",
"ig-object": "^1.0.7",
"moment": "^2.22.2",
@ -47,8 +47,8 @@
},
"devDependencies": {
"electron-wix-msi": "^1.3.0",
"less": "^3.8.1",
"puppeteer": "^1.9.0"
"less": "^3.9.0",
"puppeteer": "^1.11.0"
},
"bin": {
"ig": "ig.js"