werks here
This commit is contained in:
+1
-2
@@ -2,7 +2,6 @@ kind: pipeline
|
|||||||
name: default
|
name: default
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
|
|
||||||
- name: restore cache
|
- name: restore cache
|
||||||
image: drillster/drone-volume-cache
|
image: drillster/drone-volume-cache
|
||||||
settings:
|
settings:
|
||||||
@@ -45,7 +44,7 @@ steps:
|
|||||||
image: alpine:3.9
|
image: alpine:3.9
|
||||||
commands:
|
commands:
|
||||||
- apk add --no-cache zip
|
- apk add --no-cache zip
|
||||||
- zip -9r ./dist/plugin.zip static
|
- zip -9r ./plugin.zip *.js
|
||||||
when:
|
when:
|
||||||
event:
|
event:
|
||||||
- tag
|
- tag
|
||||||
|
|||||||
@@ -3,3 +3,6 @@ lib
|
|||||||
static
|
static
|
||||||
kfs
|
kfs
|
||||||
plugins
|
plugins
|
||||||
|
.rpt2_cache
|
||||||
|
*.js
|
||||||
|
*.d.ts
|
||||||
Generated
+384
-30
@@ -4,6 +4,22 @@
|
|||||||
"lockfileVersion": 1,
|
"lockfileVersion": 1,
|
||||||
"requires": true,
|
"requires": true,
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
|
"@angular/common": {
|
||||||
|
"version": "5.2.11",
|
||||||
|
"resolved": "https://registry.npmjs.org/@angular/common/-/common-5.2.11.tgz",
|
||||||
|
"integrity": "sha512-LniJjGAeftUJDJh+2+LEjltcGen08C/VMxQ/eUYmesytKy1sN+MWzh3GbpKfEWtWmyUsYTG9lAAJNo3L3jPwsw==",
|
||||||
|
"requires": {
|
||||||
|
"tslib": "^1.7.1"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"@angular/core": {
|
||||||
|
"version": "5.2.11",
|
||||||
|
"resolved": "https://registry.npmjs.org/@angular/core/-/core-5.2.11.tgz",
|
||||||
|
"integrity": "sha512-h2vpvXNAdOqKzbVaZcHnHGMT5A8uDnizk6FgGq6SPyw9s3d+/VxZ9LJaPjUk3g2lICA7og1tUel+2YfF971MlQ==",
|
||||||
|
"requires": {
|
||||||
|
"tslib": "^1.7.1"
|
||||||
|
}
|
||||||
|
},
|
||||||
"@babel/code-frame": {
|
"@babel/code-frame": {
|
||||||
"version": "7.5.5",
|
"version": "7.5.5",
|
||||||
"resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.5.5.tgz",
|
"resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.5.5.tgz",
|
||||||
@@ -573,8 +589,7 @@
|
|||||||
"@types/node": {
|
"@types/node": {
|
||||||
"version": "11.13.18",
|
"version": "11.13.18",
|
||||||
"resolved": "https://registry.npmjs.org/@types/node/-/node-11.13.18.tgz",
|
"resolved": "https://registry.npmjs.org/@types/node/-/node-11.13.18.tgz",
|
||||||
"integrity": "sha512-sMHdXLccscaxI+Hlzz58yLQue3lQyXP+6aQniDRi5oju3n0123kcjhicVGF20WF7cHiwJ2vxMbXc4skOclosoA==",
|
"integrity": "sha512-sMHdXLccscaxI+Hlzz58yLQue3lQyXP+6aQniDRi5oju3n0123kcjhicVGF20WF7cHiwJ2vxMbXc4skOclosoA=="
|
||||||
"dev": true
|
|
||||||
},
|
},
|
||||||
"@types/q": {
|
"@types/q": {
|
||||||
"version": "1.5.2",
|
"version": "1.5.2",
|
||||||
@@ -1318,6 +1333,14 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"base-x": {
|
||||||
|
"version": "3.0.6",
|
||||||
|
"resolved": "https://registry.npmjs.org/base-x/-/base-x-3.0.6.tgz",
|
||||||
|
"integrity": "sha512-4PaF8u2+AlViJxRVjurkLTxpp7CaFRD/jo5rPT9ONnKxyhQ8f59yzamEvq7EkriG56yn5On4ONyaG75HLqr46w==",
|
||||||
|
"requires": {
|
||||||
|
"safe-buffer": "^5.0.1"
|
||||||
|
}
|
||||||
|
},
|
||||||
"base64-arraybuffer": {
|
"base64-arraybuffer": {
|
||||||
"version": "0.1.5",
|
"version": "0.1.5",
|
||||||
"resolved": "https://registry.npmjs.org/base64-arraybuffer/-/base64-arraybuffer-0.1.5.tgz",
|
"resolved": "https://registry.npmjs.org/base64-arraybuffer/-/base64-arraybuffer-0.1.5.tgz",
|
||||||
@@ -1343,6 +1366,11 @@
|
|||||||
"tweetnacl": "^0.14.3"
|
"tweetnacl": "^0.14.3"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"bech32": {
|
||||||
|
"version": "1.1.3",
|
||||||
|
"resolved": "https://registry.npmjs.org/bech32/-/bech32-1.1.3.tgz",
|
||||||
|
"integrity": "sha512-yuVFUvrNcoJi0sv5phmqc6P+Fl1HjRDRNOOkHY2X/3LBy2bIGNSFx4fZ95HMaXHupuS7cZR15AsvtmCIF4UEyg=="
|
||||||
|
},
|
||||||
"better-assert": {
|
"better-assert": {
|
||||||
"version": "1.0.2",
|
"version": "1.0.2",
|
||||||
"resolved": "https://registry.npmjs.org/better-assert/-/better-assert-1.0.2.tgz",
|
"resolved": "https://registry.npmjs.org/better-assert/-/better-assert-1.0.2.tgz",
|
||||||
@@ -1372,6 +1400,101 @@
|
|||||||
"integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==",
|
"integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==",
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
|
"bindings": {
|
||||||
|
"version": "1.5.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz",
|
||||||
|
"integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==",
|
||||||
|
"requires": {
|
||||||
|
"file-uri-to-path": "1.0.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"bip174": {
|
||||||
|
"version": "1.0.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/bip174/-/bip174-1.0.0.tgz",
|
||||||
|
"integrity": "sha512-AaoWrkYtv6A2y8H+qzs6NvRWypzNbADT8PQGpM9rnP+jLzeol+uzhe3Myeuq/dwrHYtmsW8V71HmX2oXhQGagw=="
|
||||||
|
},
|
||||||
|
"bip32": {
|
||||||
|
"version": "2.0.4",
|
||||||
|
"resolved": "https://registry.npmjs.org/bip32/-/bip32-2.0.4.tgz",
|
||||||
|
"integrity": "sha512-ioPytarPDIrWckWMuK4RNUtvwhvWEc2fvuhnO0WEwu732k5OLjUXv4rXi2c/KJHw9ZMNQMkYRJrBw81RujShGQ==",
|
||||||
|
"requires": {
|
||||||
|
"@types/node": "10.12.18",
|
||||||
|
"bs58check": "^2.1.1",
|
||||||
|
"create-hash": "^1.2.0",
|
||||||
|
"create-hmac": "^1.1.7",
|
||||||
|
"tiny-secp256k1": "^1.1.0",
|
||||||
|
"typeforce": "^1.11.5",
|
||||||
|
"wif": "^2.0.6"
|
||||||
|
},
|
||||||
|
"dependencies": {
|
||||||
|
"@types/node": {
|
||||||
|
"version": "10.12.18",
|
||||||
|
"resolved": "https://registry.npmjs.org/@types/node/-/node-10.12.18.tgz",
|
||||||
|
"integrity": "sha512-fh+pAqt4xRzPfqA6eh3Z2y6fyZavRIumvjhaCL753+TVkGKGhpPeyrJG2JftD0T9q4GF00KjefsQ+PQNDdWQaQ=="
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"bip39": {
|
||||||
|
"version": "3.0.2",
|
||||||
|
"resolved": "https://registry.npmjs.org/bip39/-/bip39-3.0.2.tgz",
|
||||||
|
"integrity": "sha512-J4E1r2N0tUylTKt07ibXvhpT2c5pyAFgvuA5q1H9uDy6dEGpjV8jmymh3MTYJDLCNbIVClSB9FbND49I6N24MQ==",
|
||||||
|
"requires": {
|
||||||
|
"@types/node": "11.11.6",
|
||||||
|
"create-hash": "^1.1.0",
|
||||||
|
"pbkdf2": "^3.0.9",
|
||||||
|
"randombytes": "^2.0.1"
|
||||||
|
},
|
||||||
|
"dependencies": {
|
||||||
|
"@types/node": {
|
||||||
|
"version": "11.11.6",
|
||||||
|
"resolved": "https://registry.npmjs.org/@types/node/-/node-11.11.6.tgz",
|
||||||
|
"integrity": "sha512-Exw4yUWMBXM3X+8oqzJNRqZSwUAaS4+7NdvHqQuFi/d+synz++xmX3QIf+BFqneW8N31R8Ky+sikfZUXq07ggQ=="
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"bip66": {
|
||||||
|
"version": "1.1.5",
|
||||||
|
"resolved": "https://registry.npmjs.org/bip66/-/bip66-1.1.5.tgz",
|
||||||
|
"integrity": "sha1-AfqHSHhcpwlV1QESF9GzE5lpyiI=",
|
||||||
|
"requires": {
|
||||||
|
"safe-buffer": "^5.0.1"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"bitcoin-ops": {
|
||||||
|
"version": "1.4.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/bitcoin-ops/-/bitcoin-ops-1.4.1.tgz",
|
||||||
|
"integrity": "sha512-pef6gxZFztEhaE9RY9HmWVmiIHqCb2OyS4HPKkpc6CIiiOa3Qmuoylxc5P2EkU3w+5eTSifI9SEZC88idAIGow=="
|
||||||
|
},
|
||||||
|
"bitcoinjs-lib": {
|
||||||
|
"version": "5.1.2",
|
||||||
|
"resolved": "https://registry.npmjs.org/bitcoinjs-lib/-/bitcoinjs-lib-5.1.2.tgz",
|
||||||
|
"integrity": "sha512-Qa1TY8xaFRaLPD2YunfQX1vhHAh0387SJ/Zu7lNSRyzpg8lDru8gv+w6pqxOkcdj4dm4Fn1JmWb0m8Oy+8TfiA==",
|
||||||
|
"requires": {
|
||||||
|
"@types/node": "10.12.18",
|
||||||
|
"bech32": "^1.1.2",
|
||||||
|
"bip174": "^1.0.0",
|
||||||
|
"bip32": "^2.0.4",
|
||||||
|
"bip66": "^1.1.0",
|
||||||
|
"bitcoin-ops": "^1.4.0",
|
||||||
|
"bs58check": "^2.0.0",
|
||||||
|
"create-hash": "^1.1.0",
|
||||||
|
"create-hmac": "^1.1.3",
|
||||||
|
"merkle-lib": "^2.0.10",
|
||||||
|
"pushdata-bitcoin": "^1.0.1",
|
||||||
|
"randombytes": "^2.0.1",
|
||||||
|
"tiny-secp256k1": "^1.1.1",
|
||||||
|
"typeforce": "^1.11.3",
|
||||||
|
"varuint-bitcoin": "^1.0.4",
|
||||||
|
"wif": "^2.0.1"
|
||||||
|
},
|
||||||
|
"dependencies": {
|
||||||
|
"@types/node": {
|
||||||
|
"version": "10.12.18",
|
||||||
|
"resolved": "https://registry.npmjs.org/@types/node/-/node-10.12.18.tgz",
|
||||||
|
"integrity": "sha512-fh+pAqt4xRzPfqA6eh3Z2y6fyZavRIumvjhaCL753+TVkGKGhpPeyrJG2JftD0T9q4GF00KjefsQ+PQNDdWQaQ=="
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
"blob": {
|
"blob": {
|
||||||
"version": "0.0.5",
|
"version": "0.0.5",
|
||||||
"resolved": "https://registry.npmjs.org/blob/-/blob-0.0.5.tgz",
|
"resolved": "https://registry.npmjs.org/blob/-/blob-0.0.5.tgz",
|
||||||
@@ -1395,8 +1518,7 @@
|
|||||||
"bn.js": {
|
"bn.js": {
|
||||||
"version": "4.11.8",
|
"version": "4.11.8",
|
||||||
"resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.8.tgz",
|
"resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.8.tgz",
|
||||||
"integrity": "sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA==",
|
"integrity": "sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA=="
|
||||||
"dev": true
|
|
||||||
},
|
},
|
||||||
"body-parser": {
|
"body-parser": {
|
||||||
"version": "1.19.0",
|
"version": "1.19.0",
|
||||||
@@ -1462,8 +1584,7 @@
|
|||||||
"brorand": {
|
"brorand": {
|
||||||
"version": "1.1.0",
|
"version": "1.1.0",
|
||||||
"resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz",
|
"resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz",
|
||||||
"integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=",
|
"integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8="
|
||||||
"dev": true
|
|
||||||
},
|
},
|
||||||
"browser-process-hrtime": {
|
"browser-process-hrtime": {
|
||||||
"version": "0.1.3",
|
"version": "0.1.3",
|
||||||
@@ -1492,7 +1613,6 @@
|
|||||||
"version": "1.2.0",
|
"version": "1.2.0",
|
||||||
"resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz",
|
"resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz",
|
||||||
"integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==",
|
"integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==",
|
||||||
"dev": true,
|
|
||||||
"requires": {
|
"requires": {
|
||||||
"buffer-xor": "^1.0.3",
|
"buffer-xor": "^1.0.3",
|
||||||
"cipher-base": "^1.0.0",
|
"cipher-base": "^1.0.0",
|
||||||
@@ -1579,6 +1699,24 @@
|
|||||||
"fast-json-stable-stringify": "2.x"
|
"fast-json-stable-stringify": "2.x"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"bs58": {
|
||||||
|
"version": "4.0.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/bs58/-/bs58-4.0.1.tgz",
|
||||||
|
"integrity": "sha1-vhYedsNU9veIrkBx9j806MTwpCo=",
|
||||||
|
"requires": {
|
||||||
|
"base-x": "^3.0.2"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"bs58check": {
|
||||||
|
"version": "2.1.2",
|
||||||
|
"resolved": "https://registry.npmjs.org/bs58check/-/bs58check-2.1.2.tgz",
|
||||||
|
"integrity": "sha512-0TS1jicxdU09dwJMNZtVAfzPi6Q6QeN0pM1Fkzrjn+XYHvzMKPU3pHVpva+769iNVSfIYWf7LJ6WR+BuuMf8cA==",
|
||||||
|
"requires": {
|
||||||
|
"bs58": "^4.0.0",
|
||||||
|
"create-hash": "^1.1.0",
|
||||||
|
"safe-buffer": "^5.1.2"
|
||||||
|
}
|
||||||
|
},
|
||||||
"bser": {
|
"bser": {
|
||||||
"version": "2.1.0",
|
"version": "2.1.0",
|
||||||
"resolved": "https://registry.npmjs.org/bser/-/bser-2.1.0.tgz",
|
"resolved": "https://registry.npmjs.org/bser/-/bser-2.1.0.tgz",
|
||||||
@@ -1629,8 +1767,7 @@
|
|||||||
"buffer-xor": {
|
"buffer-xor": {
|
||||||
"version": "1.0.3",
|
"version": "1.0.3",
|
||||||
"resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz",
|
"resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz",
|
||||||
"integrity": "sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk=",
|
"integrity": "sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk="
|
||||||
"dev": true
|
|
||||||
},
|
},
|
||||||
"buffers": {
|
"buffers": {
|
||||||
"version": "0.1.1",
|
"version": "0.1.1",
|
||||||
@@ -1897,7 +2034,6 @@
|
|||||||
"version": "1.0.4",
|
"version": "1.0.4",
|
||||||
"resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz",
|
"resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz",
|
||||||
"integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==",
|
"integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==",
|
||||||
"dev": true,
|
|
||||||
"requires": {
|
"requires": {
|
||||||
"inherits": "^2.0.1",
|
"inherits": "^2.0.1",
|
||||||
"safe-buffer": "^5.0.1"
|
"safe-buffer": "^5.0.1"
|
||||||
@@ -2024,6 +2160,22 @@
|
|||||||
"integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=",
|
"integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=",
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
|
"coinstring": {
|
||||||
|
"version": "2.3.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/coinstring/-/coinstring-2.3.0.tgz",
|
||||||
|
"integrity": "sha1-zbYzY6lhUCQEolr7gsLibV/2J6Q=",
|
||||||
|
"requires": {
|
||||||
|
"bs58": "^2.0.1",
|
||||||
|
"create-hash": "^1.1.1"
|
||||||
|
},
|
||||||
|
"dependencies": {
|
||||||
|
"bs58": {
|
||||||
|
"version": "2.0.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/bs58/-/bs58-2.0.1.tgz",
|
||||||
|
"integrity": "sha1-VZCNWPGYKrogCPob7Y+RmYopv40="
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
"collection-visit": {
|
"collection-visit": {
|
||||||
"version": "1.0.0",
|
"version": "1.0.0",
|
||||||
"resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz",
|
"resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz",
|
||||||
@@ -2090,6 +2242,12 @@
|
|||||||
"integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=",
|
"integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=",
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
|
"compare-versions": {
|
||||||
|
"version": "2.0.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/compare-versions/-/compare-versions-2.0.1.tgz",
|
||||||
|
"integrity": "sha1-Htwfk2h/2XoyXFn1XkWgfbEGrKY=",
|
||||||
|
"dev": true
|
||||||
|
},
|
||||||
"component-bind": {
|
"component-bind": {
|
||||||
"version": "1.0.0",
|
"version": "1.0.0",
|
||||||
"resolved": "https://registry.npmjs.org/component-bind/-/component-bind-1.0.0.tgz",
|
"resolved": "https://registry.npmjs.org/component-bind/-/component-bind-1.0.0.tgz",
|
||||||
@@ -2258,7 +2416,6 @@
|
|||||||
"version": "1.2.0",
|
"version": "1.2.0",
|
||||||
"resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz",
|
"resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz",
|
||||||
"integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==",
|
"integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==",
|
||||||
"dev": true,
|
|
||||||
"requires": {
|
"requires": {
|
||||||
"cipher-base": "^1.0.1",
|
"cipher-base": "^1.0.1",
|
||||||
"inherits": "^2.0.1",
|
"inherits": "^2.0.1",
|
||||||
@@ -2271,7 +2428,6 @@
|
|||||||
"version": "1.1.7",
|
"version": "1.1.7",
|
||||||
"resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz",
|
"resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz",
|
||||||
"integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==",
|
"integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==",
|
||||||
"dev": true,
|
|
||||||
"requires": {
|
"requires": {
|
||||||
"cipher-base": "^1.0.3",
|
"cipher-base": "^1.0.3",
|
||||||
"create-hash": "^1.1.0",
|
"create-hash": "^1.1.0",
|
||||||
@@ -2813,6 +2969,16 @@
|
|||||||
"is-obj": "^1.0.0"
|
"is-obj": "^1.0.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"drbg.js": {
|
||||||
|
"version": "1.0.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/drbg.js/-/drbg.js-1.0.1.tgz",
|
||||||
|
"integrity": "sha1-Pja2xCs3BDgjzbwzLVjzHiRFSAs=",
|
||||||
|
"requires": {
|
||||||
|
"browserify-aes": "^1.0.6",
|
||||||
|
"create-hash": "^1.1.2",
|
||||||
|
"create-hmac": "^1.1.4"
|
||||||
|
}
|
||||||
|
},
|
||||||
"duplexify": {
|
"duplexify": {
|
||||||
"version": "3.7.1",
|
"version": "3.7.1",
|
||||||
"resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.7.1.tgz",
|
"resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.7.1.tgz",
|
||||||
@@ -2882,7 +3048,6 @@
|
|||||||
"version": "6.5.0",
|
"version": "6.5.0",
|
||||||
"resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.0.tgz",
|
"resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.0.tgz",
|
||||||
"integrity": "sha512-eFOJTMyCYb7xtE/caJ6JJu+bhi67WCYNbkGSknu20pmM8Ke/bqOfdnZWxyoGN26JgfxTbXrsCkEw4KheCT/KGg==",
|
"integrity": "sha512-eFOJTMyCYb7xtE/caJ6JJu+bhi67WCYNbkGSknu20pmM8Ke/bqOfdnZWxyoGN26JgfxTbXrsCkEw4KheCT/KGg==",
|
||||||
"dev": true,
|
|
||||||
"requires": {
|
"requires": {
|
||||||
"bn.js": "^4.4.0",
|
"bn.js": "^4.4.0",
|
||||||
"brorand": "^1.0.1",
|
"brorand": "^1.0.1",
|
||||||
@@ -3120,6 +3285,12 @@
|
|||||||
"integrity": "sha1-De4/7TH81GlhjOc0IJn8GvoL2xM=",
|
"integrity": "sha1-De4/7TH81GlhjOc0IJn8GvoL2xM=",
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
|
"estree-walker": {
|
||||||
|
"version": "0.2.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-0.2.1.tgz",
|
||||||
|
"integrity": "sha1-va/oCVOD2EFNXcLs9MkXO225QS4=",
|
||||||
|
"dev": true
|
||||||
|
},
|
||||||
"esutils": {
|
"esutils": {
|
||||||
"version": "2.0.3",
|
"version": "2.0.3",
|
||||||
"resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz",
|
"resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz",
|
||||||
@@ -3141,7 +3312,6 @@
|
|||||||
"version": "1.0.3",
|
"version": "1.0.3",
|
||||||
"resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz",
|
"resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz",
|
||||||
"integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==",
|
"integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==",
|
||||||
"dev": true,
|
|
||||||
"requires": {
|
"requires": {
|
||||||
"md5.js": "^1.3.4",
|
"md5.js": "^1.3.4",
|
||||||
"safe-buffer": "^5.1.1"
|
"safe-buffer": "^5.1.1"
|
||||||
@@ -3421,6 +3591,11 @@
|
|||||||
"schema-utils": "^1.0.0"
|
"schema-utils": "^1.0.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"file-uri-to-path": {
|
||||||
|
"version": "1.0.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz",
|
||||||
|
"integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw=="
|
||||||
|
},
|
||||||
"fill-range": {
|
"fill-range": {
|
||||||
"version": "4.0.0",
|
"version": "4.0.0",
|
||||||
"resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz",
|
"resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz",
|
||||||
@@ -4584,7 +4759,6 @@
|
|||||||
"version": "3.0.4",
|
"version": "3.0.4",
|
||||||
"resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.0.4.tgz",
|
"resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.0.4.tgz",
|
||||||
"integrity": "sha1-X8hoaEfs1zSZQDMZprCj8/auSRg=",
|
"integrity": "sha1-X8hoaEfs1zSZQDMZprCj8/auSRg=",
|
||||||
"dev": true,
|
|
||||||
"requires": {
|
"requires": {
|
||||||
"inherits": "^2.0.1",
|
"inherits": "^2.0.1",
|
||||||
"safe-buffer": "^5.0.1"
|
"safe-buffer": "^5.0.1"
|
||||||
@@ -4594,12 +4768,21 @@
|
|||||||
"version": "1.1.7",
|
"version": "1.1.7",
|
||||||
"resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz",
|
"resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz",
|
||||||
"integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==",
|
"integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==",
|
||||||
"dev": true,
|
|
||||||
"requires": {
|
"requires": {
|
||||||
"inherits": "^2.0.3",
|
"inherits": "^2.0.3",
|
||||||
"minimalistic-assert": "^1.0.1"
|
"minimalistic-assert": "^1.0.1"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"hdkey": {
|
||||||
|
"version": "1.1.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/hdkey/-/hdkey-1.1.1.tgz",
|
||||||
|
"integrity": "sha512-DvHZ5OuavsfWs5yfVJZestsnc3wzPvLWNk6c2nRUfo6X+OtxypGt20vDDf7Ba+MJzjL3KS1og2nw2eBbLCOUTA==",
|
||||||
|
"requires": {
|
||||||
|
"coinstring": "^2.0.0",
|
||||||
|
"safe-buffer": "^5.1.1",
|
||||||
|
"secp256k1": "^3.0.1"
|
||||||
|
}
|
||||||
|
},
|
||||||
"he": {
|
"he": {
|
||||||
"version": "1.2.0",
|
"version": "1.2.0",
|
||||||
"resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz",
|
"resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz",
|
||||||
@@ -4616,7 +4799,6 @@
|
|||||||
"version": "1.0.1",
|
"version": "1.0.1",
|
||||||
"resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz",
|
"resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz",
|
||||||
"integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=",
|
"integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=",
|
||||||
"dev": true,
|
|
||||||
"requires": {
|
"requires": {
|
||||||
"hash.js": "^1.0.3",
|
"hash.js": "^1.0.3",
|
||||||
"minimalistic-assert": "^1.0.0",
|
"minimalistic-assert": "^1.0.0",
|
||||||
@@ -5149,6 +5331,12 @@
|
|||||||
"is-glob": "^2.0.0"
|
"is-glob": "^2.0.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"is-module": {
|
||||||
|
"version": "1.0.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/is-module/-/is-module-1.0.0.tgz",
|
||||||
|
"integrity": "sha1-Mlj7afeMFNW4FdZkM2tM/7ZEFZE=",
|
||||||
|
"dev": true
|
||||||
|
},
|
||||||
"is-number": {
|
"is-number": {
|
||||||
"version": "3.0.0",
|
"version": "3.0.0",
|
||||||
"resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz",
|
"resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz",
|
||||||
@@ -6228,7 +6416,6 @@
|
|||||||
"version": "1.3.5",
|
"version": "1.3.5",
|
||||||
"resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz",
|
"resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz",
|
||||||
"integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==",
|
"integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==",
|
||||||
"dev": true,
|
|
||||||
"requires": {
|
"requires": {
|
||||||
"hash-base": "^3.0.0",
|
"hash-base": "^3.0.0",
|
||||||
"inherits": "^2.0.1",
|
"inherits": "^2.0.1",
|
||||||
@@ -6462,6 +6649,11 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"merkle-lib": {
|
||||||
|
"version": "2.0.10",
|
||||||
|
"resolved": "https://registry.npmjs.org/merkle-lib/-/merkle-lib-2.0.10.tgz",
|
||||||
|
"integrity": "sha1-grjbrnXieneFOItz+ddyXQ9vMyY="
|
||||||
|
},
|
||||||
"methods": {
|
"methods": {
|
||||||
"version": "1.1.2",
|
"version": "1.1.2",
|
||||||
"resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz",
|
"resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz",
|
||||||
@@ -6536,14 +6728,12 @@
|
|||||||
"minimalistic-assert": {
|
"minimalistic-assert": {
|
||||||
"version": "1.0.1",
|
"version": "1.0.1",
|
||||||
"resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz",
|
"resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz",
|
||||||
"integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==",
|
"integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A=="
|
||||||
"dev": true
|
|
||||||
},
|
},
|
||||||
"minimalistic-crypto-utils": {
|
"minimalistic-crypto-utils": {
|
||||||
"version": "1.0.1",
|
"version": "1.0.1",
|
||||||
"resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz",
|
"resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz",
|
||||||
"integrity": "sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo=",
|
"integrity": "sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo="
|
||||||
"dev": true
|
|
||||||
},
|
},
|
||||||
"minimatch": {
|
"minimatch": {
|
||||||
"version": "3.0.3",
|
"version": "3.0.3",
|
||||||
@@ -6652,8 +6842,7 @@
|
|||||||
"nan": {
|
"nan": {
|
||||||
"version": "2.14.0",
|
"version": "2.14.0",
|
||||||
"resolved": "https://registry.npmjs.org/nan/-/nan-2.14.0.tgz",
|
"resolved": "https://registry.npmjs.org/nan/-/nan-2.14.0.tgz",
|
||||||
"integrity": "sha512-INOFj37C7k3AfaNTtX8RhsTw7qRy7eLET14cROi9+5HAVbbHuIWUHEauBv5qT4Av2tWasiTY1Jw6puUNqRJXQg==",
|
"integrity": "sha512-INOFj37C7k3AfaNTtX8RhsTw7qRy7eLET14cROi9+5HAVbbHuIWUHEauBv5qT4Av2tWasiTY1Jw6puUNqRJXQg=="
|
||||||
"dev": true
|
|
||||||
},
|
},
|
||||||
"nanomatch": {
|
"nanomatch": {
|
||||||
"version": "1.2.13",
|
"version": "1.2.13",
|
||||||
@@ -7444,7 +7633,6 @@
|
|||||||
"version": "3.0.17",
|
"version": "3.0.17",
|
||||||
"resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.0.17.tgz",
|
"resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.0.17.tgz",
|
||||||
"integrity": "sha512-U/il5MsrZp7mGg3mSQfn742na2T+1/vHDCG5/iTI3X9MKUuYUZVLQhyRsg06mCgDBTd57TxzgZt7P+fYfjRLtA==",
|
"integrity": "sha512-U/il5MsrZp7mGg3mSQfn742na2T+1/vHDCG5/iTI3X9MKUuYUZVLQhyRsg06mCgDBTd57TxzgZt7P+fYfjRLtA==",
|
||||||
"dev": true,
|
|
||||||
"requires": {
|
"requires": {
|
||||||
"create-hash": "^1.1.2",
|
"create-hash": "^1.1.2",
|
||||||
"create-hmac": "^1.1.4",
|
"create-hmac": "^1.1.4",
|
||||||
@@ -8285,6 +8473,14 @@
|
|||||||
"integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==",
|
"integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==",
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
|
"pushdata-bitcoin": {
|
||||||
|
"version": "1.0.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/pushdata-bitcoin/-/pushdata-bitcoin-1.0.1.tgz",
|
||||||
|
"integrity": "sha1-FZMdPNlnreUiBvUjqnMxrvfUOvc=",
|
||||||
|
"requires": {
|
||||||
|
"bitcoin-ops": "^1.3.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
"q": {
|
"q": {
|
||||||
"version": "1.5.1",
|
"version": "1.5.1",
|
||||||
"resolved": "https://registry.npmjs.org/q/-/q-1.5.1.tgz",
|
"resolved": "https://registry.npmjs.org/q/-/q-1.5.1.tgz",
|
||||||
@@ -8312,7 +8508,6 @@
|
|||||||
"version": "2.1.0",
|
"version": "2.1.0",
|
||||||
"resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz",
|
"resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz",
|
||||||
"integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==",
|
"integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==",
|
||||||
"dev": true,
|
|
||||||
"requires": {
|
"requires": {
|
||||||
"safe-buffer": "^5.1.0"
|
"safe-buffer": "^5.1.0"
|
||||||
}
|
}
|
||||||
@@ -8738,12 +8933,106 @@
|
|||||||
"version": "2.0.2",
|
"version": "2.0.2",
|
||||||
"resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz",
|
"resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz",
|
||||||
"integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==",
|
"integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==",
|
||||||
"dev": true,
|
|
||||||
"requires": {
|
"requires": {
|
||||||
"hash-base": "^3.0.0",
|
"hash-base": "^3.0.0",
|
||||||
"inherits": "^2.0.1"
|
"inherits": "^2.0.1"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"rollup": {
|
||||||
|
"version": "0.55.5",
|
||||||
|
"resolved": "https://registry.npmjs.org/rollup/-/rollup-0.55.5.tgz",
|
||||||
|
"integrity": "sha512-2hke9NOy332kxvnmMQOgl7DHm94zihNyYJNd8ZLWo4U0EjFvjUkeWa0+ge+70bTg+mY0xJ7NUsf5kIhDtrGrtA=="
|
||||||
|
},
|
||||||
|
"rollup-plugin-node-resolve": {
|
||||||
|
"version": "3.4.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/rollup-plugin-node-resolve/-/rollup-plugin-node-resolve-3.4.0.tgz",
|
||||||
|
"integrity": "sha512-PJcd85dxfSBWih84ozRtBkB731OjXk0KnzN0oGp7WOWcarAFkVa71cV5hTJg2qpVsV2U8EUwrzHP3tvy9vS3qg==",
|
||||||
|
"dev": true,
|
||||||
|
"requires": {
|
||||||
|
"builtin-modules": "^2.0.0",
|
||||||
|
"is-module": "^1.0.0",
|
||||||
|
"resolve": "^1.1.6"
|
||||||
|
},
|
||||||
|
"dependencies": {
|
||||||
|
"builtin-modules": {
|
||||||
|
"version": "2.0.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-2.0.0.tgz",
|
||||||
|
"integrity": "sha512-3U5kUA5VPsRUA3nofm/BXX7GVHKfxz0hOBAPxXrIvHzlDRkQVqEn6yi8QJegxl4LzOHLdvb7XF5dVawa/VVYBg==",
|
||||||
|
"dev": true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"rollup-plugin-typescript": {
|
||||||
|
"version": "0.8.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/rollup-plugin-typescript/-/rollup-plugin-typescript-0.8.1.tgz",
|
||||||
|
"integrity": "sha1-L/fuzCHPa7K0P8J+W2iJUs5xkko=",
|
||||||
|
"dev": true,
|
||||||
|
"requires": {
|
||||||
|
"compare-versions": "2.0.1",
|
||||||
|
"object-assign": "^4.0.1",
|
||||||
|
"rollup-pluginutils": "^1.3.1",
|
||||||
|
"tippex": "^2.1.1",
|
||||||
|
"typescript": "^1.8.9"
|
||||||
|
},
|
||||||
|
"dependencies": {
|
||||||
|
"typescript": {
|
||||||
|
"version": "1.8.10",
|
||||||
|
"resolved": "https://registry.npmjs.org/typescript/-/typescript-1.8.10.tgz",
|
||||||
|
"integrity": "sha1-tHXW4N/wv1DyluXKbvn7tccyDx4=",
|
||||||
|
"dev": true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"rollup-plugin-typescript2": {
|
||||||
|
"version": "0.10.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/rollup-plugin-typescript2/-/rollup-plugin-typescript2-0.10.0.tgz",
|
||||||
|
"integrity": "sha512-Sa2/lFV6VvaMmydyt5lL9L6lk78v2X3x1YpATl2hZIyI/HuiRpP0ls5T3Tmfk3Mniuxx33HXUfmcseIvevqI8Q==",
|
||||||
|
"dev": true,
|
||||||
|
"requires": {
|
||||||
|
"fs-extra": "^4.0.2",
|
||||||
|
"resolve": "^1.5.0",
|
||||||
|
"rollup-pluginutils": "^2.0.1",
|
||||||
|
"tslib": "^1.8.0"
|
||||||
|
},
|
||||||
|
"dependencies": {
|
||||||
|
"estree-walker": {
|
||||||
|
"version": "0.6.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-0.6.1.tgz",
|
||||||
|
"integrity": "sha512-SqmZANLWS0mnatqbSfRP5g8OXZC12Fgg1IwNtLsyHDzJizORW4khDfjPqJZsemPWBB2uqykUah5YpQ6epsqC/w==",
|
||||||
|
"dev": true
|
||||||
|
},
|
||||||
|
"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"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"rollup-pluginutils": {
|
||||||
|
"version": "2.8.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/rollup-pluginutils/-/rollup-pluginutils-2.8.1.tgz",
|
||||||
|
"integrity": "sha512-J5oAoysWar6GuZo0s+3bZ6sVZAC0pfqKz68De7ZgDi5z63jOVZn1uJL/+z1jeKHNbGII8kAyHF5q8LnxSX5lQg==",
|
||||||
|
"dev": true,
|
||||||
|
"requires": {
|
||||||
|
"estree-walker": "^0.6.1"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"rollup-pluginutils": {
|
||||||
|
"version": "1.5.2",
|
||||||
|
"resolved": "https://registry.npmjs.org/rollup-pluginutils/-/rollup-pluginutils-1.5.2.tgz",
|
||||||
|
"integrity": "sha1-HhVud4+UtyVb+hs9AXi+j1xVJAg=",
|
||||||
|
"dev": true,
|
||||||
|
"requires": {
|
||||||
|
"estree-walker": "^0.2.1",
|
||||||
|
"minimatch": "^3.0.2"
|
||||||
|
}
|
||||||
|
},
|
||||||
"rsvp": {
|
"rsvp": {
|
||||||
"version": "4.8.5",
|
"version": "4.8.5",
|
||||||
"resolved": "https://registry.npmjs.org/rsvp/-/rsvp-4.8.5.tgz",
|
"resolved": "https://registry.npmjs.org/rsvp/-/rsvp-4.8.5.tgz",
|
||||||
@@ -8759,6 +9048,19 @@
|
|||||||
"aproba": "^1.1.1"
|
"aproba": "^1.1.1"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"rxjs": {
|
||||||
|
"version": "6.5.2",
|
||||||
|
"resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.5.2.tgz",
|
||||||
|
"integrity": "sha512-HUb7j3kvb7p7eCUHE3FqjoDsC1xfZQ4AHFWfTKSpZ+sAhhz5X1WX0ZuUqWbzB2QhSLp3DoLUG+hMdEDKqWo2Zg==",
|
||||||
|
"requires": {
|
||||||
|
"tslib": "^1.9.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"rxjs-compat": {
|
||||||
|
"version": "6.5.2",
|
||||||
|
"resolved": "https://registry.npmjs.org/rxjs-compat/-/rxjs-compat-6.5.2.tgz",
|
||||||
|
"integrity": "sha512-TRMkTp4FgSxE2HtGvxmgRukh3JqdFM7ejAj1Ti/VdodbPGfWvZR5+KdLKRV9jVDFyu2SknM8RD+PR54KGnoLjg=="
|
||||||
|
},
|
||||||
"safe-buffer": {
|
"safe-buffer": {
|
||||||
"version": "5.1.2",
|
"version": "5.1.2",
|
||||||
"resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
|
"resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
|
||||||
@@ -9058,6 +9360,21 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"secp256k1": {
|
||||||
|
"version": "3.7.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/secp256k1/-/secp256k1-3.7.1.tgz",
|
||||||
|
"integrity": "sha512-1cf8sbnRreXrQFdH6qsg2H71Xw91fCCS9Yp021GnUNJzWJS/py96fS4lHbnTnouLp08Xj6jBoBB6V78Tdbdu5g==",
|
||||||
|
"requires": {
|
||||||
|
"bindings": "^1.5.0",
|
||||||
|
"bip66": "^1.1.5",
|
||||||
|
"bn.js": "^4.11.8",
|
||||||
|
"create-hash": "^1.2.0",
|
||||||
|
"drbg.js": "^1.0.1",
|
||||||
|
"elliptic": "^6.4.1",
|
||||||
|
"nan": "^2.14.0",
|
||||||
|
"safe-buffer": "^5.1.2"
|
||||||
|
}
|
||||||
|
},
|
||||||
"semver": {
|
"semver": {
|
||||||
"version": "5.7.0",
|
"version": "5.7.0",
|
||||||
"resolved": "https://registry.npmjs.org/semver/-/semver-5.7.0.tgz",
|
"resolved": "https://registry.npmjs.org/semver/-/semver-5.7.0.tgz",
|
||||||
@@ -9151,7 +9468,6 @@
|
|||||||
"version": "2.4.11",
|
"version": "2.4.11",
|
||||||
"resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz",
|
"resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz",
|
||||||
"integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==",
|
"integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==",
|
||||||
"dev": true,
|
|
||||||
"requires": {
|
"requires": {
|
||||||
"inherits": "^2.0.1",
|
"inherits": "^2.0.1",
|
||||||
"safe-buffer": "^5.0.1"
|
"safe-buffer": "^5.0.1"
|
||||||
@@ -10099,6 +10415,24 @@
|
|||||||
"integrity": "sha1-QFQRqOfmM5/mTbmiNN4R3DHgK9Q=",
|
"integrity": "sha1-QFQRqOfmM5/mTbmiNN4R3DHgK9Q=",
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
|
"tiny-secp256k1": {
|
||||||
|
"version": "1.1.3",
|
||||||
|
"resolved": "https://registry.npmjs.org/tiny-secp256k1/-/tiny-secp256k1-1.1.3.tgz",
|
||||||
|
"integrity": "sha512-ZpobrhOtHP98VYEN51IYQH1YcrbFpnxFhI6ceWa3OEbJn7eHvSd8YFjGPxbedGCy7PNYU1v/+BRsdvyr5uRd4g==",
|
||||||
|
"requires": {
|
||||||
|
"bindings": "^1.3.0",
|
||||||
|
"bn.js": "^4.11.8",
|
||||||
|
"create-hmac": "^1.1.7",
|
||||||
|
"elliptic": "^6.4.0",
|
||||||
|
"nan": "^2.13.2"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"tippex": {
|
||||||
|
"version": "2.3.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/tippex/-/tippex-2.3.1.tgz",
|
||||||
|
"integrity": "sha1-ov1bcIfXy/sgyYBqbBYQjCwPr9o=",
|
||||||
|
"dev": true
|
||||||
|
},
|
||||||
"tmpl": {
|
"tmpl": {
|
||||||
"version": "1.0.4",
|
"version": "1.0.4",
|
||||||
"resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.4.tgz",
|
"resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.4.tgz",
|
||||||
@@ -10279,8 +10613,7 @@
|
|||||||
"tslib": {
|
"tslib": {
|
||||||
"version": "1.10.0",
|
"version": "1.10.0",
|
||||||
"resolved": "https://registry.npmjs.org/tslib/-/tslib-1.10.0.tgz",
|
"resolved": "https://registry.npmjs.org/tslib/-/tslib-1.10.0.tgz",
|
||||||
"integrity": "sha512-qOebF53frne81cf0S9B41ByenJ3/IuH8yJKngAX35CmiZySA0khhkovshKK+jGCaMnVomla7gVlIcc3EvKPbTQ==",
|
"integrity": "sha512-qOebF53frne81cf0S9B41ByenJ3/IuH8yJKngAX35CmiZySA0khhkovshKK+jGCaMnVomla7gVlIcc3EvKPbTQ=="
|
||||||
"dev": true
|
|
||||||
},
|
},
|
||||||
"tslint": {
|
"tslint": {
|
||||||
"version": "5.18.0",
|
"version": "5.18.0",
|
||||||
@@ -10387,6 +10720,11 @@
|
|||||||
"integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=",
|
"integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=",
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
|
"typeforce": {
|
||||||
|
"version": "1.18.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/typeforce/-/typeforce-1.18.0.tgz",
|
||||||
|
"integrity": "sha512-7uc1O8h1M1g0rArakJdf0uLRSSgFcYexrVoKo+bzJd32gd4gDy2L/Z+8/FjPnU9ydY3pEnVPtr9FyscYY60K1g=="
|
||||||
|
},
|
||||||
"typescript": {
|
"typescript": {
|
||||||
"version": "3.5.3",
|
"version": "3.5.3",
|
||||||
"resolved": "https://registry.npmjs.org/typescript/-/typescript-3.5.3.tgz",
|
"resolved": "https://registry.npmjs.org/typescript/-/typescript-3.5.3.tgz",
|
||||||
@@ -10696,6 +11034,14 @@
|
|||||||
"spdx-expression-parse": "^3.0.0"
|
"spdx-expression-parse": "^3.0.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"varuint-bitcoin": {
|
||||||
|
"version": "1.1.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/varuint-bitcoin/-/varuint-bitcoin-1.1.0.tgz",
|
||||||
|
"integrity": "sha512-jCEPG+COU/1Rp84neKTyDJQr478/hAfVp5xxYn09QEH0yBjbmPeMfuuQIrp+BUD83hybtYZKhr5elV3bvdV1bA==",
|
||||||
|
"requires": {
|
||||||
|
"safe-buffer": "^5.1.1"
|
||||||
|
}
|
||||||
|
},
|
||||||
"vary": {
|
"vary": {
|
||||||
"version": "1.1.2",
|
"version": "1.1.2",
|
||||||
"resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz",
|
"resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz",
|
||||||
@@ -10971,6 +11317,14 @@
|
|||||||
"string-width": "^1.0.2 || 2"
|
"string-width": "^1.0.2 || 2"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"wif": {
|
||||||
|
"version": "2.0.6",
|
||||||
|
"resolved": "https://registry.npmjs.org/wif/-/wif-2.0.6.tgz",
|
||||||
|
"integrity": "sha1-CNP1IFbGZnkplyb63g1DKudLRwQ=",
|
||||||
|
"requires": {
|
||||||
|
"bs58check": "<3.0.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
"wordwrap": {
|
"wordwrap": {
|
||||||
"version": "0.0.3",
|
"version": "0.0.3",
|
||||||
"resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.3.tgz",
|
"resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.3.tgz",
|
||||||
|
|||||||
+20
-4
@@ -5,9 +5,11 @@
|
|||||||
"tsc": "tsc",
|
"tsc": "tsc",
|
||||||
"start": "npm run build; node lib/FrontblockAdmin.js",
|
"start": "npm run build; node lib/FrontblockAdmin.js",
|
||||||
"build": "npm run clean; npm run build-backend; npm run build-frontend",
|
"build": "npm run clean; npm run build-backend; npm run build-frontend",
|
||||||
"build-backend": "tsc; webpack --display-error-details --config static.webpack.config.prod.js --progress --colors",
|
"build-backend": "tsc; webpack --display-error-details --config src/backend/webpack.prod.js --progress --colors; pwd; cp -r lib/PluginManager/* .",
|
||||||
"build-frontend": "cd src/frontend; npm run build; cp -r dist/* ../../static",
|
"build-frontend": "npm run build-dashboard; npm run build-widget",
|
||||||
"clean": "rm -rf lib static; rm -rf src/frontend/dist",
|
"build-dashboard": "cd src/frontend/dashboard; npm run build; cp -r dist/* ../../../static",
|
||||||
|
"build-widget": "rollup -c src/frontend/widget/rollup.config.js",
|
||||||
|
"clean": "rm -rf lib static dist plugins widget .rpt2_cache *.js *.ts; rm -rf src/frontend/dashboard/dist",
|
||||||
"update-frontblock": "rm -rf node_modules/frontblock*; npm install"
|
"update-frontblock": "rm -rf node_modules/frontblock*; npm install"
|
||||||
},
|
},
|
||||||
"repository": {
|
"repository": {
|
||||||
@@ -17,22 +19,36 @@
|
|||||||
"author": "frontblock.me",
|
"author": "frontblock.me",
|
||||||
"license": "ISC",
|
"license": "ISC",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
|
"@angular/common": "^5.2.11",
|
||||||
|
"@angular/core": "^5.2.2",
|
||||||
|
"@types/node": "^11.13.10",
|
||||||
"@uirouter/angularjs": "^1.0.5",
|
"@uirouter/angularjs": "^1.0.5",
|
||||||
"angular": "^1.7.8",
|
"angular": "^1.7.8",
|
||||||
|
"bip39": "^3.0.2",
|
||||||
|
"bitcoinjs-lib": "^5.0.4",
|
||||||
"bsert": "0.0.10",
|
"bsert": "0.0.10",
|
||||||
"bsock": "^0.1.9",
|
"bsock": "^0.1.9",
|
||||||
"express": "^4.16.4",
|
"express": "^4.16.4",
|
||||||
"frontblock-generic": "latest",
|
"frontblock-generic": "latest",
|
||||||
|
"hdkey": "^1.1.1",
|
||||||
"http": "0.0.0",
|
"http": "0.0.0",
|
||||||
"key-file-storage": "^2.2.1",
|
"key-file-storage": "^2.2.1",
|
||||||
"log4js": "^4.4.0",
|
"log4js": "^4.4.0",
|
||||||
"memfs": "^2.15.5",
|
"memfs": "^2.15.5",
|
||||||
|
"minimist": "^1.2.0",
|
||||||
"node-fetch": "^2.6.0",
|
"node-fetch": "^2.6.0",
|
||||||
|
"rollup": "^0.55.1",
|
||||||
|
"rxjs": "^6.5.2",
|
||||||
|
"rxjs-compat": "^6.5.2",
|
||||||
"socket.io": "^2.2.0",
|
"socket.io": "^2.2.0",
|
||||||
"stream-buffers": "^3.0.2",
|
"stream-buffers": "^3.0.2",
|
||||||
"unzip": "^0.1.11"
|
"unzip": "^0.1.11",
|
||||||
|
"uuid": "^3.3.2"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
|
"rollup-plugin-node-resolve": "^3.0.2",
|
||||||
|
"rollup-plugin-typescript": "^0.8.1",
|
||||||
|
"rollup-plugin-typescript2": "^0.10.0",
|
||||||
"@types/express": "^4.17.0",
|
"@types/express": "^4.17.0",
|
||||||
"@types/node": "^11.13.18",
|
"@types/node": "^11.13.18",
|
||||||
"@types/semver": "^6.0.1",
|
"@types/semver": "^6.0.1",
|
||||||
|
|||||||
@@ -1,6 +0,0 @@
|
|||||||
module.exports = {
|
|
||||||
plugins: {
|
|
||||||
autoprefixer: {},
|
|
||||||
cssnano: {}
|
|
||||||
}
|
|
||||||
};
|
|
||||||
@@ -112,7 +112,7 @@ export class FrontblockAdmin extends ConfigLoader<AdminConf>{
|
|||||||
//translate RPCs to socket-bound function metadata
|
//translate RPCs to socket-bound function metadata
|
||||||
const loadedPlugins = this.pm.getLoadedPlugins()
|
const loadedPlugins = this.pm.getLoadedPlugins()
|
||||||
for(const name in loadedPlugins){
|
for(const name in loadedPlugins){
|
||||||
loadedPlugins[name].exportRPCs().forEach(rpc => {
|
loadedPlugins[name].backend.exportRPCs().forEach(rpc => {
|
||||||
const info = this.rpcToRpcInfo(name, rpc)
|
const info = this.rpcToRpcInfo(name, rpc)
|
||||||
rpcInfos.push(info)
|
rpcInfos.push(info)
|
||||||
})
|
})
|
||||||
@@ -170,6 +170,13 @@ export class FrontblockAdmin extends ConfigLoader<AdminConf>{
|
|||||||
this.express = express()
|
this.express = express()
|
||||||
this.express.use(express.static('static'))
|
this.express.use(express.static('static'))
|
||||||
|
|
||||||
|
this.express.get('/plugins/:id'+".js", (request, response) => {
|
||||||
|
let frontend = this.pm.getFrontend(request.params.id)
|
||||||
|
response.status(200)
|
||||||
|
response.set('Content-Type', 'application/javascript')
|
||||||
|
response.send(frontend)
|
||||||
|
})
|
||||||
|
|
||||||
this.httpServer = new http.Server(this.express)
|
this.httpServer = new http.Server(this.express)
|
||||||
this.httpServer.listen(port, () => {
|
this.httpServer.listen(port, () => {
|
||||||
logger.info('Admin panel listening for HTTP on *'+port)
|
logger.info('Admin panel listening for HTTP on *'+port)
|
||||||
@@ -257,6 +264,4 @@ export class FrontblockAdmin extends ConfigLoader<AdminConf>{
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
(async() => {
|
new FrontblockAdmin()
|
||||||
new FrontblockAdmin()
|
|
||||||
})()
|
|
||||||
|
|||||||
@@ -22,7 +22,7 @@ export class PluginManagerPlugin extends PluginManager implements Plugin{
|
|||||||
constructor(){
|
constructor(){
|
||||||
super()
|
super()
|
||||||
|
|
||||||
this.loadedPlugins[this.name] = this
|
this.loadedPlugins[this.name] = {backend:this, frontend: this.loadFrontend(this.name)}
|
||||||
}
|
}
|
||||||
|
|
||||||
exportRPCs(): import("frontblock-generic/Plugin").socketioRPC[] {
|
exportRPCs(): import("frontblock-generic/Plugin").socketioRPC[] {
|
||||||
@@ -44,8 +44,12 @@ export class PluginManagerPlugin extends PluginManager implements Plugin{
|
|||||||
visibility: "private",
|
visibility: "private",
|
||||||
rpc: async () => { return this.getLoadedPlugins() },
|
rpc: async () => { return this.getLoadedPlugins() },
|
||||||
type: 'call'
|
type: 'call'
|
||||||
},
|
},{
|
||||||
{
|
name: "getLoadedPluginNames",
|
||||||
|
visibility: "private",
|
||||||
|
rpc: async () => { return this.getLoadedPluginNames() },
|
||||||
|
type: 'call'
|
||||||
|
},{
|
||||||
name: "installPlugin",
|
name: "installPlugin",
|
||||||
visibility: "private",
|
visibility: "private",
|
||||||
rpc: async(pluginName:string) => { return await this.installPlugin(pluginName) },
|
rpc: async(pluginName:string) => { return await this.installPlugin(pluginName) },
|
||||||
|
|||||||
@@ -29,7 +29,7 @@ type PluginVersion = {
|
|||||||
export type PluginVersioning = {
|
export type PluginVersioning = {
|
||||||
[pluginName in string]?: PluginVersion | string
|
[pluginName in string]?: PluginVersion | string
|
||||||
}
|
}
|
||||||
export type PluginMap = {[pluginName:string]: Plugin}
|
export type PluginMap = {[pluginName:string]: {backend: Plugin, frontend:any}}
|
||||||
|
|
||||||
export type PluginManagerConfig = {
|
export type PluginManagerConfig = {
|
||||||
resourceLocation: string,
|
resourceLocation: string,
|
||||||
@@ -45,11 +45,13 @@ export default class PluginManager extends ConfigLoader<PluginManagerConfig&Plug
|
|||||||
super("PluginManager")
|
super("PluginManager")
|
||||||
this.cacheDir = path.join(this.conf.installDir, '.cache')
|
this.cacheDir = path.join(this.conf.installDir, '.cache')
|
||||||
this.initialize()
|
this.initialize()
|
||||||
this.loadPlugin("../../../../../../apiclient")
|
|
||||||
|
this.installPlugin("ApiClient")
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
getDefaultConfig(): PluginManagerConfig&PluginVersioning{
|
getDefaultConfig(): PluginManagerConfig&PluginVersioning{
|
||||||
return {resourceLocation: "https://gitea.frontblock.me/api/v1/repos/fb-vendor/", installDir: "./plugins"}
|
return {resourceLocation: "https://gitea.frontblock.me/api/v1/repos/fb-vendor/", installDir: "plugins"}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -91,6 +93,10 @@ export default class PluginManager extends ConfigLoader<PluginManagerConfig&Plug
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public getLoadedPluginNames(): string[] {
|
||||||
|
return Object.keys(this.loadedPlugins)
|
||||||
|
}
|
||||||
|
|
||||||
public getLoadedPlugins(): PluginMap {
|
public getLoadedPlugins(): PluginMap {
|
||||||
return this.loadedPlugins
|
return this.loadedPlugins
|
||||||
}
|
}
|
||||||
@@ -98,12 +104,6 @@ export default class PluginManager extends ConfigLoader<PluginManagerConfig&Plug
|
|||||||
|
|
||||||
private async downloadFile(url: URL, dest: string) {
|
private async downloadFile(url: URL, dest: string) {
|
||||||
try {
|
try {
|
||||||
fs.access(path.dirname(dest), err => {
|
|
||||||
if (err && err.code === 'ENOENT') {
|
|
||||||
fs.mkdirSync(path.dirname(dest), {recursive: true})
|
|
||||||
}
|
|
||||||
})
|
|
||||||
|
|
||||||
const file = fs.createWriteStream(dest)
|
const file = fs.createWriteStream(dest)
|
||||||
file.on('error', err => {throw new Error(err)})
|
file.on('error', err => {throw new Error(err)})
|
||||||
const response = await fetch(url)
|
const response = await fetch(url)
|
||||||
@@ -119,6 +119,7 @@ export default class PluginManager extends ConfigLoader<PluginManagerConfig&Plug
|
|||||||
try {
|
try {
|
||||||
logger.info("Downloading Plugin")
|
logger.info("Downloading Plugin")
|
||||||
|
|
||||||
|
logger.error(this.conf.resourceLocation + pluginName + '/releases')
|
||||||
const response = await fetch(this.conf.resourceLocation + pluginName + '/releases')
|
const response = await fetch(this.conf.resourceLocation + pluginName + '/releases')
|
||||||
if (!response.ok) throw new Error(response.statusText)
|
if (!response.ok) throw new Error(response.statusText)
|
||||||
|
|
||||||
@@ -127,27 +128,44 @@ export default class PluginManager extends ConfigLoader<PluginManagerConfig&Plug
|
|||||||
|
|
||||||
const latest = releases[0]
|
const latest = releases[0]
|
||||||
const version = latest.tag_name
|
const version = latest.tag_name
|
||||||
const archiveURL = latest.assets.filter(asset => asset.name === pluginName + '.zip')[0].browser_download_url
|
const archiveURL = latest.assets.filter(asset => asset.name === 'plugin.zip')[0].browser_download_url
|
||||||
const checksumURL = latest.assets.filter(asset => asset.name === 'md5sum.txt')[0].browser_download_url
|
const checksumURL = latest.assets.filter(asset => asset.name === 'md5sum.txt')[0].browser_download_url
|
||||||
if (!version || ! archiveURL || !checksumURL) throw new Error('Malformed response')
|
if (!version || ! archiveURL || !checksumURL) throw new Error('Malformed response')
|
||||||
|
|
||||||
await this.downloadFile(archiveURL, path.join(this.cacheDir, pluginName, version, 'plugin.zip'))
|
await fs.access(path.join(this.cacheDir, pluginName), err => {
|
||||||
await this.downloadFile(checksumURL, path.join(this.cacheDir, pluginName, version, 'md5sum.txt'))
|
if (err && err.code === 'ENOENT') {
|
||||||
|
fs.mkdirSync(path.join(this.cacheDir, pluginName), {recursive: true})
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
await this.downloadFile(archiveURL, path.join(this.cacheDir, pluginName, 'plugin.zip'))
|
||||||
|
await this.downloadFile(checksumURL, path.join(this.cacheDir, pluginName, 'md5sum.txt'))
|
||||||
|
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
logger.error(error)
|
logger.error(error)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private extractPlugin(pluginName: string){
|
||||||
|
fs
|
||||||
|
.createReadStream(path.join(this.cacheDir, pluginName, "plugin.zip"))
|
||||||
|
.pipe(unzip.Extract({ path: path.join(this.conf.installDir,pluginName) }));
|
||||||
|
}
|
||||||
|
|
||||||
public async installPlugin(pluginName: string) {
|
public async installPlugin(pluginName: string) {
|
||||||
try {
|
try {
|
||||||
await this.downloadPlugin(pluginName)
|
await this.downloadPlugin(pluginName)
|
||||||
//TODO do something
|
await this.extractPlugin(pluginName)
|
||||||
|
await this.loadPlugin(pluginName)
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
logger.error(error)
|
logger.error(error)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public getFrontend(pluginName: string){
|
||||||
|
return this.loadedPlugins[pluginName].frontend.toString()
|
||||||
|
}
|
||||||
|
|
||||||
public async uninstallPlugin(pluginName: string) {
|
public async uninstallPlugin(pluginName: string) {
|
||||||
//TODO check for exists
|
//TODO check for exists
|
||||||
logger.info("Deleting plugin", pluginName)
|
logger.info("Deleting plugin", pluginName)
|
||||||
@@ -156,12 +174,18 @@ export default class PluginManager extends ConfigLoader<PluginManagerConfig&Plug
|
|||||||
|
|
||||||
|
|
||||||
public async loadPlugin(pluginName:string) {
|
public async loadPlugin(pluginName:string) {
|
||||||
const pth = path.join(this.conf.installDir, pluginName, "Plugin")
|
const pth = path.join("..", "..", this.conf.installDir, pluginName, "static")
|
||||||
logger.info("Loading plugin from fs", pth)
|
logger.info("Loading plugin from fs", pth+"/Plugin")
|
||||||
const clazz = await import(pth)
|
const clazz = await import(pth+"/Plugin")
|
||||||
let obj:Plugin = new clazz.default()
|
let obj:Plugin = new clazz.default()
|
||||||
await obj.start()
|
await obj.start()
|
||||||
this.loadedPlugins[pluginName] = obj
|
this.loadedPlugins[pluginName] = {backend: obj, frontend: this.loadFrontend(pluginName)}
|
||||||
|
}
|
||||||
|
|
||||||
|
public loadFrontend(pluginName:string){
|
||||||
|
const pth = path.join("..", "..", this.conf.installDir, pluginName, "static")
|
||||||
|
logger.info("Loading frontend plugin from fs", path.join(__dirname,pth,"FrontendPlugin.js"))
|
||||||
|
return fs.readFileSync(path.join(__dirname, pth,"FrontendPlugin.js"))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -171,7 +195,7 @@ export default class PluginManager extends ConfigLoader<PluginManagerConfig&Plug
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
logger.info("Unloading plugin ", pluginName)
|
logger.info("Unloading plugin ", pluginName)
|
||||||
this.loadedPlugins[pluginName].stop()
|
this.loadedPlugins[pluginName].backend.stop()
|
||||||
delete this.loadedPlugins[pluginName]
|
delete this.loadedPlugins[pluginName]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -2650,9 +2650,9 @@
|
|||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"electron-to-chromium": {
|
"electron-to-chromium": {
|
||||||
"version": "1.3.211",
|
"version": "1.3.212",
|
||||||
"resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.211.tgz",
|
"resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.212.tgz",
|
||||||
"integrity": "sha512-GZAiK3oHrs0K+LwH+HD+bdjZ17v40oQQdXbbd3dgrwgbENvazrGpcuIADSAREWnxzo9gADB1evuizrbXsnoU2Q==",
|
"integrity": "sha512-H8z5Smi1s1u1zGegEBfbxUAzrxyk1JoRHHHrlNGfhxv3sTb+p/Jz7JDvrR4196Q/Ip8r4+XwWcLvKrUjFKoJAg==",
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"elliptic": {
|
"elliptic": {
|
||||||
@@ -0,0 +1,13 @@
|
|||||||
|
import { Injectable } from '@angular/core';
|
||||||
|
|
||||||
|
declare const fb
|
||||||
|
|
||||||
|
@Injectable()
|
||||||
|
export class DashboardService {
|
||||||
|
constructor() { }
|
||||||
|
|
||||||
|
getWidgetConfigs(): Promise<string[]> {
|
||||||
|
return fb.PluginManager.getLoadedPluginNames()
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
+10
-8
@@ -27,7 +27,6 @@ SystemJS.config({ meta: { '*': { authorization: true } } });
|
|||||||
|
|
||||||
import { AfterViewInit, Component, Compiler, Injector, OnInit, ViewChild, ViewContainerRef } from '@angular/core';
|
import { AfterViewInit, Component, Compiler, Injector, OnInit, ViewChild, ViewContainerRef } from '@angular/core';
|
||||||
import { DashboardService } from '../dashboard.service';
|
import { DashboardService } from '../dashboard.service';
|
||||||
import { WidgetConfig } from '../widget-config.model';
|
|
||||||
|
|
||||||
@Component({
|
@Component({
|
||||||
selector: 'app-dashboard',
|
selector: 'app-dashboard',
|
||||||
@@ -42,29 +41,32 @@ export class DashboardComponent implements AfterViewInit {
|
|||||||
private injector: Injector) { }
|
private injector: Injector) { }
|
||||||
|
|
||||||
ngAfterViewInit() {
|
ngAfterViewInit() {
|
||||||
|
setTimeout( () => {
|
||||||
this.loadWidgets();
|
this.loadWidgets();
|
||||||
|
}, 250)
|
||||||
}
|
}
|
||||||
|
|
||||||
private async loadWidgets() {
|
private async loadWidgets() {
|
||||||
const widgets = await this.dashboardService.getWidgetConfigs().toPromise();
|
const widgets = await this.dashboardService.getWidgetConfigs()
|
||||||
widgets.forEach((widget) => this.createWidget(widget));
|
widgets.forEach((widget) => this.createWidget(widget));
|
||||||
}
|
}
|
||||||
|
|
||||||
private async createWidget(widget: WidgetConfig) {
|
private async createWidget(pluginName: string) {
|
||||||
// import external module bundle
|
// import external module bundle
|
||||||
console.log(`Importing module bundle: ${widget.moduleBundlePath}`);
|
|
||||||
const module = await SystemJS.import(widget.moduleBundlePath);
|
|
||||||
|
|
||||||
|
const module = await SystemJS.import("plugins/"+pluginName+".js");
|
||||||
|
|
||||||
|
console.log(module)
|
||||||
// compile module
|
// compile module
|
||||||
const moduleFactory = await this.compiler.compileModuleAsync(module[widget.moduleName]);
|
const moduleFactory = await this.compiler.compileModuleAsync(module["PluginModule"]);
|
||||||
|
|
||||||
// resolve component factory
|
// resolve component factory
|
||||||
const moduleRef = moduleFactory.create(this.injector);
|
const moduleRef = moduleFactory.create(this.injector);
|
||||||
const componentProvider = moduleRef.injector.get(widget.name);
|
const componentProvider = moduleRef.injector.get("provider");
|
||||||
const componentFactory = moduleRef.componentFactoryResolver.resolveComponentFactory(componentProvider);
|
const componentFactory = moduleRef.componentFactoryResolver.resolveComponentFactory(componentProvider);
|
||||||
|
|
||||||
// compile component
|
// compile component
|
||||||
console.log(`Creating widget: ${widget.name}`);
|
console.log(`Creating widget: ${pluginName}`);
|
||||||
this.content.createComponent(componentFactory);
|
this.content.createComponent(componentFactory);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Before Width: | Height: | Size: 5.3 KiB After Width: | Height: | Size: 5.3 KiB |
@@ -1,33 +0,0 @@
|
|||||||
// Karma configuration file, see link for more information
|
|
||||||
// https://karma-runner.github.io/1.0/config/configuration-file.html
|
|
||||||
|
|
||||||
module.exports = function (config) {
|
|
||||||
config.set({
|
|
||||||
basePath: '',
|
|
||||||
frameworks: ['jasmine', '@angular/cli'],
|
|
||||||
plugins: [
|
|
||||||
require('karma-jasmine'),
|
|
||||||
require('karma-chrome-launcher'),
|
|
||||||
require('karma-jasmine-html-reporter'),
|
|
||||||
require('karma-coverage-istanbul-reporter'),
|
|
||||||
require('@angular/cli/plugins/karma')
|
|
||||||
],
|
|
||||||
client:{
|
|
||||||
clearContext: false // leave Jasmine Spec Runner output visible in browser
|
|
||||||
},
|
|
||||||
coverageIstanbulReporter: {
|
|
||||||
reports: [ 'html', 'lcovonly' ],
|
|
||||||
fixWebpackSourcePaths: true
|
|
||||||
},
|
|
||||||
angularCli: {
|
|
||||||
environment: 'dev'
|
|
||||||
},
|
|
||||||
reporters: ['progress', 'kjhtml'],
|
|
||||||
port: 9876,
|
|
||||||
colors: true,
|
|
||||||
logLevel: config.LOG_INFO,
|
|
||||||
autoWatch: true,
|
|
||||||
browsers: ['Chrome'],
|
|
||||||
singleRun: false
|
|
||||||
});
|
|
||||||
};
|
|
||||||
@@ -1,28 +0,0 @@
|
|||||||
// Protractor configuration file, see link for more information
|
|
||||||
// https://github.com/angular/protractor/blob/master/lib/config.ts
|
|
||||||
|
|
||||||
const { SpecReporter } = require('jasmine-spec-reporter');
|
|
||||||
|
|
||||||
exports.config = {
|
|
||||||
allScriptsTimeout: 11000,
|
|
||||||
specs: [
|
|
||||||
'./e2e/**/*.e2e-spec.ts'
|
|
||||||
],
|
|
||||||
capabilities: {
|
|
||||||
'browserName': 'chrome'
|
|
||||||
},
|
|
||||||
directConnect: true,
|
|
||||||
baseUrl: 'http://localhost:4200/',
|
|
||||||
framework: 'jasmine',
|
|
||||||
jasmineNodeOpts: {
|
|
||||||
showColors: true,
|
|
||||||
defaultTimeoutInterval: 30000,
|
|
||||||
print: function() {}
|
|
||||||
},
|
|
||||||
onPrepare() {
|
|
||||||
require('ts-node').register({
|
|
||||||
project: 'e2e/tsconfig.e2e.json'
|
|
||||||
});
|
|
||||||
jasmine.getEnv().addReporter(new SpecReporter({ spec: { displayStacktrace: true } }));
|
|
||||||
}
|
|
||||||
};
|
|
||||||
@@ -1,17 +0,0 @@
|
|||||||
import { Injectable } from '@angular/core';
|
|
||||||
import { HttpClient } from '@angular/common/http';
|
|
||||||
import { Observable } from 'rxjs/Observable';
|
|
||||||
import { WidgetConfig } from './widget-config.model';
|
|
||||||
|
|
||||||
@Injectable()
|
|
||||||
export class DashboardService {
|
|
||||||
|
|
||||||
constructor(private http: HttpClient) { }
|
|
||||||
|
|
||||||
private readonly url = 'widgets-repo/widgets.config.json';
|
|
||||||
|
|
||||||
getWidgetConfigs(): Observable<WidgetConfig[]> {
|
|
||||||
return this.http.get<WidgetConfig[]>(this.url);
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
Vendored
-5
@@ -1,5 +0,0 @@
|
|||||||
/* SystemJS module definition */
|
|
||||||
declare var module: NodeModule;
|
|
||||||
interface NodeModule {
|
|
||||||
id: string;
|
|
||||||
}
|
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
export { PluginModule } from './widget/module';
|
||||||
@@ -0,0 +1,15 @@
|
|||||||
|
import { Component, OnInit } from '@angular/core';
|
||||||
|
|
||||||
|
@Component({
|
||||||
|
selector: 'exclamations',
|
||||||
|
template: `
|
||||||
|
<span style="color: blue">!!!</span>
|
||||||
|
`
|
||||||
|
})
|
||||||
|
export class ANestedComponent implements OnInit {
|
||||||
|
|
||||||
|
constructor() { }
|
||||||
|
|
||||||
|
ngOnInit() { }
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,24 @@
|
|||||||
|
import { Component, OnInit } from '@angular/core';
|
||||||
|
declare const fb
|
||||||
|
@Component({
|
||||||
|
selector: 'APICLIENT', //!!!!
|
||||||
|
template: `
|
||||||
|
<div class="card">
|
||||||
|
<div class="card-block">
|
||||||
|
<div class="card-title">
|
||||||
|
APICLIENT ${Object.keys(fb.ApiClient).join("<br>")}
|
||||||
|
</div>
|
||||||
|
<div class="card-text">
|
||||||
|
Hello World <exclamations></exclamations>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
`
|
||||||
|
})
|
||||||
|
export class PluginComponent implements OnInit {
|
||||||
|
|
||||||
|
constructor() { }
|
||||||
|
|
||||||
|
ngOnInit() { }
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,18 @@
|
|||||||
|
import { NgModule } from '@angular/core';
|
||||||
|
import { CommonModule } from '@angular/common';
|
||||||
|
import { PluginComponent } from './component';
|
||||||
|
import { ANestedComponent } from './a-nested.component';
|
||||||
|
|
||||||
|
@NgModule({
|
||||||
|
imports: [CommonModule],
|
||||||
|
declarations: [
|
||||||
|
PluginComponent,
|
||||||
|
ANestedComponent
|
||||||
|
],
|
||||||
|
entryComponents: [PluginComponent],
|
||||||
|
providers: [{
|
||||||
|
provide: 'provider',
|
||||||
|
useValue: PluginComponent
|
||||||
|
}]
|
||||||
|
})
|
||||||
|
export class PluginModule { }
|
||||||
@@ -1,185 +0,0 @@
|
|||||||
const MiniCssExtractPlugin = require('mini-css-extract-plugin');
|
|
||||||
const CleanWebpackPlugin = require('clean-webpack-plugin');
|
|
||||||
const HtmlWebpackPlugin = require('html-webpack-plugin');
|
|
||||||
const TerserPlugin = require('terser-webpack-plugin');
|
|
||||||
|
|
||||||
const webpack = require('webpack');
|
|
||||||
const path = require('path');
|
|
||||||
const ROOT_PATH = path.resolve(__dirname);
|
|
||||||
const APP_PATH = path.resolve(ROOT_PATH, 'src');
|
|
||||||
const NODE_MODULES_PATH = path.resolve(ROOT_PATH, 'node_modules');
|
|
||||||
const ENTRY_FILE = path.resolve(APP_PATH, 'index');
|
|
||||||
const TEMPLATE_FILE = path.resolve(APP_PATH, 'index.html');
|
|
||||||
|
|
||||||
const BUILD_PATH = path.resolve(ROOT_PATH, './static');
|
|
||||||
|
|
||||||
const angularPage = {
|
|
||||||
mode: 'production',
|
|
||||||
entry: {
|
|
||||||
app: ENTRY_FILE,
|
|
||||||
vendor: [
|
|
||||||
"angular",
|
|
||||||
'@uirouter/angularjs'
|
|
||||||
]
|
|
||||||
},
|
|
||||||
output: {
|
|
||||||
path: BUILD_PATH,
|
|
||||||
filename: 'js/[name].[hash:8].js',
|
|
||||||
chunkFilename: 'js/[name].[chunkhash:8].js'
|
|
||||||
},
|
|
||||||
module: {
|
|
||||||
rules: [
|
|
||||||
{
|
|
||||||
test: /\.html$/,
|
|
||||||
use: {
|
|
||||||
loader: 'html-loader',
|
|
||||||
options: {
|
|
||||||
exportAsEs6Default: true,
|
|
||||||
minimize: true,
|
|
||||||
removeComments: true
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
test: /\.css$/,
|
|
||||||
exclude: NODE_MODULES_PATH,
|
|
||||||
use: [MiniCssExtractPlugin.loader, 'css-loader', 'postcss-loader'],
|
|
||||||
include: APP_PATH
|
|
||||||
},
|
|
||||||
{
|
|
||||||
test: /\.less$/,
|
|
||||||
use: [MiniCssExtractPlugin.loader, 'css-loader', 'postcss-loader', 'less-loader'],
|
|
||||||
},
|
|
||||||
{
|
|
||||||
test: /\.scss$/,
|
|
||||||
exclude: NODE_MODULES_PATH,
|
|
||||||
use: [MiniCssExtractPlugin.loader, 'css-loader', 'postcss-loader', 'sass-loader'],
|
|
||||||
include: APP_PATH
|
|
||||||
},
|
|
||||||
{
|
|
||||||
test: /\.(eot|woff|ttf|woff2)(\?|$)/,
|
|
||||||
exclude: NODE_MODULES_PATH,
|
|
||||||
use: {
|
|
||||||
loader: 'file-loader',
|
|
||||||
options: {
|
|
||||||
name: '[name].[ext]'
|
|
||||||
}
|
|
||||||
},
|
|
||||||
include: APP_PATH
|
|
||||||
},
|
|
||||||
{
|
|
||||||
test: /\.(png|jpg|gif|svg)$/,
|
|
||||||
exclude: NODE_MODULES_PATH,
|
|
||||||
use: {
|
|
||||||
loader: 'url-loader',
|
|
||||||
options: {
|
|
||||||
limit: 8192,
|
|
||||||
name: 'images/[name].[hash:8].[ext]'
|
|
||||||
}
|
|
||||||
},
|
|
||||||
include: APP_PATH
|
|
||||||
},
|
|
||||||
{
|
|
||||||
test: /\.ts$/,
|
|
||||||
exclude: NODE_MODULES_PATH,
|
|
||||||
use: 'ts-loader',
|
|
||||||
include: APP_PATH
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
plugins: [
|
|
||||||
new webpack.DefinePlugin({
|
|
||||||
'process.env': {
|
|
||||||
NODE_ENV: JSON.stringify('production')
|
|
||||||
}
|
|
||||||
}),
|
|
||||||
new HtmlWebpackPlugin({
|
|
||||||
filename: path.resolve(BUILD_PATH, 'index.html'),
|
|
||||||
template: TEMPLATE_FILE,
|
|
||||||
hash: false,
|
|
||||||
}),
|
|
||||||
new CleanWebpackPlugin(['./static'], {
|
|
||||||
root: path.resolve(__dirname, './'),
|
|
||||||
verbose: true
|
|
||||||
}),
|
|
||||||
new MiniCssExtractPlugin({
|
|
||||||
filename: 'css/[name].css?v=[contenthash:8]'
|
|
||||||
})
|
|
||||||
],
|
|
||||||
optimization: {
|
|
||||||
splitChunks: {
|
|
||||||
cacheGroups: {
|
|
||||||
common: {
|
|
||||||
chunks: 'all',
|
|
||||||
minChunks: 2,
|
|
||||||
maxInitialRequests: 5,
|
|
||||||
minSize: 0,
|
|
||||||
name: 'common'
|
|
||||||
},
|
|
||||||
vendor: {
|
|
||||||
test: /node_modules/,
|
|
||||||
chunks: 'all',
|
|
||||||
name: 'vendor',
|
|
||||||
priority: 10,
|
|
||||||
enforce: true,
|
|
||||||
minChunks: 2
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
resolve: {
|
|
||||||
extensions: ['.js', '.ts', '.less', '.scss', '.css'],
|
|
||||||
alias: {
|
|
||||||
'@': APP_PATH,
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
const FrontblockLib = {
|
|
||||||
mode: 'production',
|
|
||||||
entry: path.resolve(__dirname, 'lib/FrontblockLib.js'),
|
|
||||||
output: {
|
|
||||||
path: path.resolve(__dirname, 'static'),
|
|
||||||
filename: 'FrontblockLib.js',
|
|
||||||
},
|
|
||||||
module: {
|
|
||||||
rules: [
|
|
||||||
{ test: /\FrontblockLib.ts/, use: 'ts-loader' }
|
|
||||||
]
|
|
||||||
},
|
|
||||||
optimization: {
|
|
||||||
minimizer: [new TerserPlugin({
|
|
||||||
cache: true,
|
|
||||||
parallel: true,
|
|
||||||
terserOptions:{
|
|
||||||
mangle: false,
|
|
||||||
keep_classnames: true
|
|
||||||
}
|
|
||||||
})],
|
|
||||||
splitChunks: {
|
|
||||||
cacheGroups: {
|
|
||||||
common: {
|
|
||||||
chunks: 'all',
|
|
||||||
minChunks: 2,
|
|
||||||
maxInitialRequests: 5,
|
|
||||||
minSize: 0,
|
|
||||||
name: 'common'
|
|
||||||
},
|
|
||||||
vendor: {
|
|
||||||
test: /node_modules/,
|
|
||||||
chunks: 'all',
|
|
||||||
name: 'vendor',
|
|
||||||
priority: 10,
|
|
||||||
enforce: true,
|
|
||||||
minChunks: 2
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
module.exports = [
|
|
||||||
//Object.assign({}, angularPage),
|
|
||||||
Object.assign({}, FrontblockLib),
|
|
||||||
];
|
|
||||||
@@ -0,0 +1,7 @@
|
|||||||
|
{
|
||||||
|
"extends": "./tsconfig.json",
|
||||||
|
"include": ["src/frontend/widget"],
|
||||||
|
"exclude": [
|
||||||
|
"src/backend"
|
||||||
|
]
|
||||||
|
}
|
||||||
+2
-1
@@ -6,7 +6,8 @@
|
|||||||
"module": "commonjs",
|
"module": "commonjs",
|
||||||
"declaration": true,
|
"declaration": true,
|
||||||
"outDir": "./lib",
|
"outDir": "./lib",
|
||||||
"strict": true
|
"strict": true,
|
||||||
|
"experimentalDecorators": true
|
||||||
},
|
},
|
||||||
"include": ["src/backend"],
|
"include": ["src/backend"],
|
||||||
"exclude": ["node_modules", "**/__tests__/*"],
|
"exclude": ["node_modules", "**/__tests__/*"],
|
||||||
|
|||||||
Reference in New Issue
Block a user