WIP progress commit
This commit is contained in:
parent
63e07cd42f
commit
770fb57ab0
28
assets/certs/localhost+2-key.pem
Normal file
28
assets/certs/localhost+2-key.pem
Normal file
@ -0,0 +1,28 @@
|
||||
-----BEGIN PRIVATE KEY-----
|
||||
MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQC9S5RNcm4+LnZA
|
||||
l0lGV5Lm8tbnbwHc5UaI2DXVKUP9AjiErY7X1tCq7fqeMsqLPwnYkaDltNq+a5tu
|
||||
BfUHOCfK7tNICIkxZ8QDo1XMByaH3STx8GQ1XRXJr85ZhNxU4xnKUqpSRBFc7KO9
|
||||
ZxtE+1UMZKoiZovmUc9DBQI2gY8fsric9rNOkGSW3N4xKOpeMvKlDrQwTJylJsyK
|
||||
uRAaM6r2t4GuIc/BXj++Oj4r12mFAtAJPBGLs6CQWVb1qLhddgzgOxyysFhM9cQv
|
||||
MbPnexYFLwfIyAXXJFrvJS0lz/HUCYKasqHXt+DD2G08p24Jy/QUX0oS/z/2cW/d
|
||||
7BdMdAflAgMBAAECggEAGxHf12Nx2HqUdpAr7l8/pr87dEUvowM2nwMsT5tjGZ9j
|
||||
rbWUI9GYbZkyqcThqiANrGbG95JxZaHFzGoVrD6fkimtFTQDSoloQoztDAxJukwp
|
||||
qF+UNP1mzDzT6YFScOE5IvHHYZRSV1OP5toD0E2Q0ADlQ54ei4VPemoQ8vJ8ITAS
|
||||
W7XuW0LvNkluS6DLrP/uJ779oPt97wv5x7jCPZVBQWQnkL3WmqX4WK251vPH4bfB
|
||||
NWuZ1CPv7JEzrKK3VWe13VxVt2+RBmTMLEICXU217lLZOTmRggMTciBOvieq5zLf
|
||||
9XRf2WOejU8OQY7ymhO49YD40Z4nSZmYbSqQi+7jAQKBgQD1DW1nlI/bBKeeiCaf
|
||||
SDf0C6jta0/zw4WqkKb4L1OH80HaXDW+B8YOAqndGSl1iYTgp+z7CfJxdYr8o98z
|
||||
178bJIofSzFDOgy/NZOatMA4fubq+YWNHWUFR3sRL6ehOBJLKTGVrFP0w0E3SFvG
|
||||
72ntHFQDxR9ldPvCXImsaot6lQKBgQDFwHpFP2AS4S/FCirZL6rtyCFXUscmrnFc
|
||||
4IsaCetsJYK9JdnzHlFrkakA53oV6/yZP/ZHWpc5zG9J4Uqqbsu5Uy1a1Ek0KO5p
|
||||
k4HyUd4RiDojsOr81ZfZ8ByXeBzsOpCkljT3QJoCDDzc/6A3hNl5/Oh3SrvhuUSs
|
||||
VlzoWxhUEQKBgQDN95c5NFklUWhBi1ZLErxU12gJBeWRkYlLr4FnoP+oiQGUs2RI
|
||||
cOg65mo3d+qs7AVPflVlOxsX2iAT8Pit7mymN7QQUXb6dlQ4cqO5qKrX0XHtlgR2
|
||||
c3pxUX9TFqbijupxWhJfJxT56RNrj9nz/08dCG5lLM4SzJy+5GCjFnpdcQKBgDYq
|
||||
XZNgI5GoSqxe95Obweb1nWRM0S3gND7rZk6QjwKFV8U1e/hiwoyDTlZoEQG2LO9R
|
||||
HMU4pBl5zLXg1tHOHVE63j51zUNTPtJ+S+ay0+/bb4ldKVBttPVGFp7KkKmH9RyP
|
||||
5Bwhfs22ymkCP8FVSzhltMsQFlxiodPOqA4g/Y3xAoGBANlStShGqYVBDu+G1jkG
|
||||
qmXM2eTtrh58RDRXm2ZUcJ+NbSZ1kGA94MdZaWZSSrQXzZzNWajVSE5XOV4dAbGY
|
||||
LQgjCyRJQU4O+VVNfRb9E1q5P8qpECDqmqb1MHMmc7nI7hub2CLhABC+SYOI+Wn2
|
||||
6q4mL0cBiCqnyUncK/mx+U47
|
||||
-----END PRIVATE KEY-----
|
26
assets/certs/localhost+2.pem
Normal file
26
assets/certs/localhost+2.pem
Normal file
@ -0,0 +1,26 @@
|
||||
-----BEGIN CERTIFICATE-----
|
||||
MIIEUjCCArqgAwIBAgIQfGscE02UTD1y2XRmQtXOejANBgkqhkiG9w0BAQsFADBz
|
||||
MR4wHAYDVQQKExVta2NlcnQgZGV2ZWxvcG1lbnQgQ0ExJDAiBgNVBAsMG3R3YXJy
|
||||
ZW5ATWFjQm9vay1Qcm8tMi5sb2NhbDErMCkGA1UEAwwibWtjZXJ0IHR3YXJyZW5A
|
||||
TWFjQm9vay1Qcm8tMi5sb2NhbDAeFw0xOTAxMTYxOTMwNTFaFw0yOTAxMTYxOTMw
|
||||
NTFaME8xJzAlBgNVBAoTHm1rY2VydCBkZXZlbG9wbWVudCBjZXJ0aWZpY2F0ZTEk
|
||||
MCIGA1UECwwbdHdhcnJlbkBNYWNCb29rLVByby0yLmxvY2FsMIIBIjANBgkqhkiG
|
||||
9w0BAQEFAAOCAQ8AMIIBCgKCAQEAvUuUTXJuPi52QJdJRleS5vLW528B3OVGiNg1
|
||||
1SlD/QI4hK2O19bQqu36njLKiz8J2JGg5bTavmubbgX1Bzgnyu7TSAiJMWfEA6NV
|
||||
zAcmh90k8fBkNV0Vya/OWYTcVOMZylKqUkQRXOyjvWcbRPtVDGSqImaL5lHPQwUC
|
||||
NoGPH7K4nPazTpBkltzeMSjqXjLypQ60MEycpSbMirkQGjOq9reBriHPwV4/vjo+
|
||||
K9dphQLQCTwRi7OgkFlW9ai4XXYM4DscsrBYTPXELzGz53sWBS8HyMgF1yRa7yUt
|
||||
Jc/x1AmCmrKh17fgw9htPKduCcv0FF9KEv8/9nFv3ewXTHQH5QIDAQABo4GFMIGC
|
||||
MA4GA1UdDwEB/wQEAwIFoDATBgNVHSUEDDAKBggrBgEFBQcDATAMBgNVHRMBAf8E
|
||||
AjAAMB8GA1UdIwQYMBaAFFcbyc7AJktAZnOSeiE2YE03wcQHMCwGA1UdEQQlMCOC
|
||||
CWxvY2FsaG9zdIcEfwAAAYcQAAAAAAAAAAAAAAAAAAAAATANBgkqhkiG9w0BAQsF
|
||||
AAOCAYEAT1VQmT7WOpTJoEIFD8Mqw+JcpXKOnpc7TdvSpGu6HDKCYvKEwxsDDQEr
|
||||
3JGXzzLAvexfod2W+dhBHqey/p9UqJidiLyzySHY4xIYqoBuEYW0puTO8k3kG8HD
|
||||
j6zYeRkSw/9aRYa1NjjaA4UkMx/Qi74zYjGfiRNpb+RPv0aQI5009fFrD83jf1cG
|
||||
dQeab8cYk5BTIH4HgRTg8azz3HECM+Hp+4i/oSx1GZ3gt4vaXM7MVVQJZtOn6eyf
|
||||
ZqW6JfZOlXC4K4rTl8JX0wKWR7EPu/6CSorgLRndvc+1IfuDPn/OGU27d82a5a6S
|
||||
qXEHTZ2k7Gkl8nfoFWKBmTcqESQAoINvVv3VnHiGltIjX5KfGfW/ypDStwYBhK+e
|
||||
qoYB5ICKjPBUneIgKu+1MPDk1hjeIEZAXjBDxicznbqx8s7TcaWt3+fhLD1wAiXz
|
||||
mJMguPnGoRREh+patpjCltXYD3YOQN5eMkGmKTzhiItex2KNqN13foZE5eHDbpMe
|
||||
ly3G5TlQ
|
||||
-----END CERTIFICATE-----
|
28
assets/certs/rootCA.pem
Normal file
28
assets/certs/rootCA.pem
Normal file
@ -0,0 +1,28 @@
|
||||
-----BEGIN CERTIFICATE-----
|
||||
MIIEtTCCAx2gAwIBAgIQKfl+Gnl63rU7QNzHEtfwBTANBgkqhkiG9w0BAQsFADBz
|
||||
MR4wHAYDVQQKExVta2NlcnQgZGV2ZWxvcG1lbnQgQ0ExJDAiBgNVBAsMG3R3YXJy
|
||||
ZW5ATWFjQm9vay1Qcm8tMi5sb2NhbDErMCkGA1UEAwwibWtjZXJ0IHR3YXJyZW5A
|
||||
TWFjQm9vay1Qcm8tMi5sb2NhbDAeFw0xOTAxMTYxOTMwMDBaFw0yOTAxMTYxOTMw
|
||||
MDBaMHMxHjAcBgNVBAoTFW1rY2VydCBkZXZlbG9wbWVudCBDQTEkMCIGA1UECwwb
|
||||
dHdhcnJlbkBNYWNCb29rLVByby0yLmxvY2FsMSswKQYDVQQDDCJta2NlcnQgdHdh
|
||||
cnJlbkBNYWNCb29rLVByby0yLmxvY2FsMIIBojANBgkqhkiG9w0BAQEFAAOCAY8A
|
||||
MIIBigKCAYEAqzewfMsejpRABJR9U1sk3O9LxoouBZMvtw4SOzNlUrJYTTNI6tJ2
|
||||
ldq2Isyuxm0Jpj5zW9mlIzQWWQDPFJflPatCR3aL6HkvXwrl3QzJUVpgIdIe7ap2
|
||||
rfGUUtu/GvA9zirVoCjtgg+Wixp2IpITwq5g2UhvU8gDjRpxQj/CyIgVmj4uIaMJ
|
||||
uoCmjDQ88LtjW1mtsjuLwrcFwzj1VprcFQBfcFccAnawImvXtDyUpWAtI1EkqMkk
|
||||
8ZupfWSl6Iz5gG7R5acssgo4k20hZ4RbPvk4JwFqxKSnKxkXQrXYdEsxX09jcc5A
|
||||
lCgmZWAGKJDPUwhi0AFxqwJ6UP5TANb9AON+jM/NhE+pSIoEmuhAbMtrRTvnCM2Y
|
||||
sSMT8K0ynDoj51UYJlRf6tgzChJ/Q9hQYHIzD6bRRVf+v+jSrHoC+NPozT/GbINt
|
||||
R+ccMeWs9CDndM6vRinvrnUgyKtjE67Kzvy4oFtQoLTyF1ycOUFfMAagHMNlD7QO
|
||||
i26r66QhfE7HAgMBAAGjRTBDMA4GA1UdDwEB/wQEAwICBDASBgNVHRMBAf8ECDAG
|
||||
AQH/AgEAMB0GA1UdDgQWBBRXG8nOwCZLQGZzknohNmBNN8HEBzANBgkqhkiG9w0B
|
||||
AQsFAAOCAYEAcUrZO2LhcLdVmziFaIMV0YmQumwko1H26xOxefp/Es6UCroqE64M
|
||||
eMvV/xyX2fJn40Dhn/PBc0SvMYQQepC4FnkduvM92o0d+4rOLdTPIyzO7zG+XPqa
|
||||
R7xwcUlDg+oNmkTdSDM+KjGN9y7lgGyRM/CS1f+70mqsNOopSuY7fUMKQmait3iU
|
||||
HIPIsq7dvS5Bah5lCfz7zD86eWdoRuYgIzngA0R9ckz9rSLStB6ZsV2O9TrHlgPI
|
||||
ZBrBqN4SoBe2w9p+WHJ/pSfZhZAK2JDAYIXS5VUQ16QPcNfYRJMzP9RDHZN/0FAo
|
||||
zrWKswEM+UM68a3O+IVK4bSHSqyVYn3owbcsc8lDaMpix+d72MSzevHz2SQfrCZf
|
||||
00xi4HuILrewsQKIlJZEpPkHL1VwPBOjytd/QsxqZ5P3NeVXxb50N9YGdfCVJPw1
|
||||
9S8YNsX84Xa+vIbNYiccWQ+q6iaSVhry+qR0+L7hZRlTaO4cdLjNKtmAw+wRUGPl
|
||||
lHHOrOEGYrH/
|
||||
-----END CERTIFICATE-----
|
@ -56,6 +56,7 @@
|
||||
"eslint-plugin-node": "^8.0.1",
|
||||
"eslint-plugin-promise": "^4.0.1",
|
||||
"eslint-plugin-standard": "^4.0.0",
|
||||
"exiftool-vendored.pl": "^11.24.0",
|
||||
"husky": "^1.3.1",
|
||||
"inferno-devtools": "^7.0.5",
|
||||
"jest": "^23.0.1",
|
||||
|
@ -61,7 +61,7 @@ cssload-loader {
|
||||
margin: auto;
|
||||
}
|
||||
|
||||
.cssload-inner {
|
||||
cssload-inner {
|
||||
position: absolute;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
|
@ -2,6 +2,7 @@ import baseConfig from './rollup.config';
|
||||
|
||||
import alias from 'rollup-plugin-alias';
|
||||
import filesize from 'rollup-plugin-filesize';
|
||||
import fs from 'fs';
|
||||
import livereload from 'rollup-plugin-livereload';
|
||||
import replace from 'rollup-plugin-replace';
|
||||
import serve from 'rollup-plugin-serve';
|
||||
@ -20,15 +21,27 @@ export default {
|
||||
filesize(),
|
||||
serve({
|
||||
contentBase: ['build', 'public'],
|
||||
host: 'localhost',
|
||||
headers: {
|
||||
'Access-Control-Allow-Origin': '*',
|
||||
'Content-Security-Policy': "default-src 'none'; script-src 'self' localhost:35729 localhost:65432; connect-src 'self' ws://localhost:35729 ws://localhost:65432; img-src 'self' data://*; style-src 'self';",
|
||||
'Content-Security-Policy': "default-src 'none'; script-src 'self' localhost:35729 localhost:65432; connect-src 'self' wss://localhost:35729 ws://localhost:65432; img-src 'self' data://*; style-src 'self';",
|
||||
},
|
||||
historyApiFallback: true,
|
||||
host: 'localhost',
|
||||
https: {
|
||||
ca: fs.readFileSync('./assets/certs/rootCA.pem'),
|
||||
cert: fs.readFileSync('./assets/certs/localhost+2.pem'),
|
||||
key: fs.readFileSync('./assets/certs/localhost+2-key.pem'),
|
||||
},
|
||||
port: 3000,
|
||||
}),
|
||||
livereload(),
|
||||
livereload({
|
||||
https: {
|
||||
ca: fs.readFileSync('./assets/certs/rootCA.pem'),
|
||||
cert: fs.readFileSync('./assets/certs/localhost+2.pem'),
|
||||
key: fs.readFileSync('./assets/certs/localhost+2-key.pem'),
|
||||
},
|
||||
watch: 'dist',
|
||||
}),
|
||||
visualizer({
|
||||
filename: './public/stats.html',
|
||||
title: 'Film EXIF modules',
|
||||
|
@ -5,10 +5,6 @@ class WSCache {
|
||||
constructor (ws) {
|
||||
this.ws = ws;
|
||||
|
||||
this.ws.addEventListener('message', this.onWebSocketMessage);
|
||||
this.ws.addEventListener('close', this.onWebSocketClose);
|
||||
this.ws.addEventListener('error', console.error);
|
||||
|
||||
// Websocket channels
|
||||
// These hold previous messages if they are needed later
|
||||
this.slots = {
|
||||
@ -34,9 +30,14 @@ class WSCache {
|
||||
'sendJSON',
|
||||
'subscribe',
|
||||
]);
|
||||
|
||||
this.ws.addEventListener('message', this.onWebSocketMessage);
|
||||
this.ws.addEventListener('close', this.onWebSocketClose);
|
||||
this.ws.addEventListener('error', console.error);
|
||||
}
|
||||
|
||||
onWebSocketClose () {
|
||||
this.ws = null;
|
||||
console.info('WebSocket closed');
|
||||
}
|
||||
|
||||
@ -46,16 +47,21 @@ class WSCache {
|
||||
* @param {mixed} message
|
||||
*/
|
||||
onWebSocketMessage (message) {
|
||||
// `this` is overwritten to be the web socket object,
|
||||
// so use the current instance object instead
|
||||
try {
|
||||
(() => {})();
|
||||
const messageObject = JSON.parse(message.data);
|
||||
WSCache.instance.publish(messageObject[0], messageObject[1]);
|
||||
} catch (e) {
|
||||
console.error('Error resolving web socket message', e);
|
||||
// console.error(message);
|
||||
WSCache.instance.publish('default', message.data);
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* Send a recieved websocket message to the appropriate listener(s)
|
||||
* Send a received websocket message to the appropriate listener(s)
|
||||
*
|
||||
* @param {string} slot
|
||||
* @param {mixed} data
|
||||
@ -66,6 +72,10 @@ class WSCache {
|
||||
return;
|
||||
}
|
||||
|
||||
if (this.slots[slot] === undefined) {
|
||||
this.slots[slot] = [];
|
||||
}
|
||||
|
||||
this.slots[slot].push(data);
|
||||
|
||||
this.listeners[slot].forEach(listener => {
|
||||
@ -118,7 +128,8 @@ class WSCache {
|
||||
this.listeners[slot] = [];
|
||||
}
|
||||
|
||||
const listenerIndex = this.listeners[slot].push(cb) -1;
|
||||
this.listeners[slot].push(cb);
|
||||
const listenerIndex = this.listeners[slot].length - 1;
|
||||
|
||||
return {
|
||||
remove: () => {
|
||||
|
@ -1,5 +1,5 @@
|
||||
import BSAlert from 'inferno-bootstrap/dist/Alert';
|
||||
import Badge from 'inferno-bootstrap/dist/Badge';
|
||||
import BSBadge from 'inferno-bootstrap/dist/Badge';
|
||||
import Breadcrumb from 'inferno-bootstrap/dist/Breadcrumb';
|
||||
import BreadcrumbItem from 'inferno-bootstrap/dist/BreadcrumbItem';
|
||||
import ButtonDropdown from 'inferno-bootstrap/dist/ButtonDropdown';
|
||||
@ -26,16 +26,18 @@ import Table from 'inferno-bootstrap/dist/Table';
|
||||
import Tooltip from 'inferno-bootstrap/dist/Tooltip';
|
||||
|
||||
export const BSWrapper = (Component, tagName) => {
|
||||
return ({children, ...props}) => (
|
||||
return ({children, ...props}) => (Component.defaultProps.wrapTag !== undefined) ? (
|
||||
<Component wrapTag={tagName} {...props}>{children}</Component>
|
||||
) : (
|
||||
<Component tag={tagName} {...props}>{children}</Component>
|
||||
);
|
||||
};
|
||||
|
||||
export const Alert = BSWrapper(BSAlert, 'bs-alert');
|
||||
export const Badge = BSWrapper(BSBadge, 'bs-badge');
|
||||
export const Jumbotron = BSWrapper(BSJumbotron, 'bs-jumbotron');
|
||||
|
||||
export {
|
||||
Badge,
|
||||
Breadcrumb,
|
||||
BreadcrumbItem,
|
||||
ButtonDropdown,
|
||||
|
@ -1,11 +1,11 @@
|
||||
import Modal from 'inferno-bootstrap/dist/Modal/Modal';
|
||||
import ModalBody from 'inferno-bootstrap/dist/Modal/ModalBody';
|
||||
import ModalFooter from 'inferno-bootstrap/dist/Modal/ModalFooter';
|
||||
import ModalHeader from 'inferno-bootstrap/dist/Modal/ModalHeader';
|
||||
import BSModal from 'inferno-bootstrap/dist/Modal/Modal';
|
||||
import BSModalBody from 'inferno-bootstrap/dist/Modal/ModalBody';
|
||||
import BSModalFooter from 'inferno-bootstrap/dist/Modal/ModalFooter';
|
||||
import BSModalHeader from 'inferno-bootstrap/dist/Modal/ModalHeader';
|
||||
|
||||
export {
|
||||
Modal,
|
||||
ModalBody,
|
||||
ModalFooter,
|
||||
ModalHeader,
|
||||
};
|
||||
import { BSWrapper } from './Bootstrap';
|
||||
|
||||
export const Modal = BSWrapper(BSModal, 'bs-modal');
|
||||
export const ModalBody = BSWrapper(BSModalBody, 'bs-modal-body');
|
||||
export const ModalFooter = BSWrapper(BSModalFooter, 'bs-modal-footer');
|
||||
export const ModalHeader = BSWrapper(BSModalHeader, 'bs-modal-header');
|
||||
|
@ -1,6 +1,21 @@
|
||||
import { linkEvent } from 'inferno';
|
||||
import bindAll from 'lodash-es/bindAll';
|
||||
import { Component, linkEvent } from 'inferno';
|
||||
|
||||
function handleChange (props, event) {
|
||||
export class DOMForm extends Component {
|
||||
constructor () {
|
||||
super();
|
||||
|
||||
this.state = {
|
||||
hasBeenValidated: false,
|
||||
};
|
||||
|
||||
bindAll(this, [
|
||||
'handleChange',
|
||||
'handleSubmit',
|
||||
]);
|
||||
}
|
||||
|
||||
handleChange (props, event) {
|
||||
const formElement = event.target.closest('form');
|
||||
const rawFormData = new FormData(formElement);
|
||||
|
||||
@ -15,16 +30,20 @@ function handleChange (props, event) {
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function handleSubmit (props, event) {
|
||||
handleSubmit (props, event) {
|
||||
// Don't want to actually reload the page!
|
||||
event.preventDefault();
|
||||
|
||||
const form = event.target.closest('form');
|
||||
|
||||
this.setState({
|
||||
hasBeenValidated: true,
|
||||
});
|
||||
|
||||
// Parsers are formatters or maskers
|
||||
const parsers = {};
|
||||
|
||||
const form = event.target.closest('form');
|
||||
const data = new FormData(form);
|
||||
|
||||
data.forEach((value, name) => {
|
||||
@ -37,24 +56,34 @@ function handleSubmit (props, event) {
|
||||
}
|
||||
});
|
||||
|
||||
// Don't attempt to submit an invalid form
|
||||
if (!event.target.checkValidity()) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (props.onSubmit) {
|
||||
props.onSubmit(data);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
export function DOMForm (props) {
|
||||
render (props, state, context) {
|
||||
const passProps = {...props};
|
||||
const children = passProps.children;
|
||||
delete passProps.onChange;
|
||||
delete passProps.onSubmit;
|
||||
|
||||
const cssClass = state.hasBeenValidated ? 'was-validated' : 'needs-validation';
|
||||
|
||||
return (
|
||||
<form
|
||||
onInput={linkEvent(props, handleChange)}
|
||||
onSubmit={linkEvent(props, handleSubmit)}
|
||||
class={cssClass}
|
||||
noValidate
|
||||
onInput={linkEvent(props, this.handleChange)}
|
||||
onSubmit={linkEvent(props, this.handleSubmit)}
|
||||
{...passProps}
|
||||
>
|
||||
{children}
|
||||
</form>
|
||||
);
|
||||
}
|
||||
}
|
||||
|
@ -1,25 +1,51 @@
|
||||
import {
|
||||
Col,
|
||||
FormFeedback,
|
||||
FormGroup,
|
||||
FormText,
|
||||
Input,
|
||||
InputGroup,
|
||||
Label,
|
||||
} from '//components/Bootstrap';
|
||||
|
||||
export const FormBlock = ({
|
||||
children,
|
||||
grouped = false,
|
||||
helpText = null,
|
||||
invalidText = null,
|
||||
label,
|
||||
type = 'text',
|
||||
validText = null,
|
||||
...props
|
||||
}) => {
|
||||
const formElement = (children !== undefined)
|
||||
let formElement = (children !== undefined)
|
||||
? children
|
||||
: <Input id={props.name} name={props.name} type={type} {...props} />;
|
||||
|
||||
if (grouped !== false) {
|
||||
formElement = <InputGroup>{formElement}</InputGroup>
|
||||
}
|
||||
|
||||
const helperText = (helpText !== null)
|
||||
? <FormText>{helpText}</FormText>
|
||||
: null;
|
||||
|
||||
let feedbackText = invalidText
|
||||
if (feedbackText === null && props.required === true) {
|
||||
feedbackText = 'This field is required.';
|
||||
}
|
||||
|
||||
const feedback = (feedbackText !== null)
|
||||
? <FormFeedback>{feedbackText}</FormFeedback>
|
||||
: null;
|
||||
|
||||
return (
|
||||
<Col xs={12} md={6} xl={4} className="d-flex align-items-baseline justify-content-around">
|
||||
<Col xs={12} md={6} xl={4} className="d-flex align-items-baseline">
|
||||
<FormGroup>
|
||||
<Label for={props.name}>{label}</Label>
|
||||
{formElement}
|
||||
{helperText}
|
||||
{feedback}
|
||||
</FormGroup>
|
||||
</Col>
|
||||
);
|
||||
|
@ -29,7 +29,7 @@ const createWindow = () => {
|
||||
|
||||
// load the index.html of the app.
|
||||
const startUrl = DEV_MODE
|
||||
? 'http://localhost:3000'
|
||||
? 'https://localhost:3000'
|
||||
: `file://${path.join(__dirname, '/../../build/index.html')}`;
|
||||
mainWindow.loadURL(startUrl);
|
||||
|
||||
|
@ -3,7 +3,7 @@ const log = require('electron-log');
|
||||
const net = require('net');
|
||||
const port = process.env.PORT ? (process.env.PORT - 100) : 3000;
|
||||
|
||||
process.env.ELECTRON_START_URL = `http://localhost:${port}`;
|
||||
process.env.ELECTRON_START_URL = `https://localhost:${port}`;
|
||||
log.transports.file.level = false;
|
||||
|
||||
const client = new net.Socket();
|
||||
|
@ -6,11 +6,17 @@ import {
|
||||
CardFooter,
|
||||
CardTitle,
|
||||
Col,
|
||||
FormGroup,
|
||||
FormText,
|
||||
Input,
|
||||
InputGroup,
|
||||
InputGroupAddon,
|
||||
Label,
|
||||
Row,
|
||||
} from '//components/Bootstrap';
|
||||
|
||||
import { FormBlock } from '//components/Form';
|
||||
import { DOMForm } from '//components';
|
||||
import {FormBlock} from '//components/Form';
|
||||
import {DOMForm} from '//components';
|
||||
|
||||
/*
|
||||
* Fields from AnalogExif
|
||||
@ -40,38 +46,56 @@ function handleSave (formData) {
|
||||
|
||||
export function FilmAddView () {
|
||||
return (
|
||||
<Row className="full-height">
|
||||
<Col sm={12} md={8} lg={4} className="abs-center">
|
||||
<Row class="full-height">
|
||||
<Col sm={12} class="abs-center">
|
||||
<DOMForm onChange={handleFormChange} onSubmit={handleSave}>
|
||||
<Card>
|
||||
<CardHeader>
|
||||
<CardTitle>Add a Film</CardTitle>
|
||||
</CardHeader>
|
||||
<CardBody>
|
||||
<Row className="align-items-baseline">
|
||||
<Row class="form-row align-items-baseline">
|
||||
<FormBlock
|
||||
label="Brand"
|
||||
label="Manufacturer"
|
||||
name="brand"
|
||||
required
|
||||
/>
|
||||
<FormBlock
|
||||
helpText="e.g. Ektar, Fujicolor, etc."
|
||||
label="Film Name"
|
||||
name="film-name"
|
||||
required
|
||||
/>
|
||||
<FormBlock
|
||||
label="Film Speed (ASA/ISO)"
|
||||
<Col sm={12} md={6} lg={4}>
|
||||
<FormGroup>
|
||||
<Label for="film-speed-asa">Film Speed (IS0)</Label>
|
||||
<InputGroup>
|
||||
<Input
|
||||
max="6400"
|
||||
maxLength="4"
|
||||
min="1"
|
||||
name="film-speed-asa"
|
||||
placeholder="100"
|
||||
required
|
||||
type="number"
|
||||
/>
|
||||
<FormBlock
|
||||
label="Film Speed (DIN)"
|
||||
<InputGroupAddon addonType="append">/</InputGroupAddon>
|
||||
<Input
|
||||
max="39"
|
||||
maxLength="2"
|
||||
min="1"
|
||||
name="film-speed-din"
|
||||
placeholder="21"
|
||||
required
|
||||
size="2"
|
||||
step="1"
|
||||
type="number"
|
||||
/>
|
||||
<InputGroupAddon addonType="append">°</InputGroupAddon>
|
||||
</InputGroup>
|
||||
<FormText>Film Sensitivity</FormText>
|
||||
</FormGroup>
|
||||
</Col>
|
||||
<FormBlock
|
||||
label="Film Format"
|
||||
name="film-format"
|
||||
@ -81,10 +105,9 @@ export function FilmAddView () {
|
||||
id="film-format"
|
||||
name="film-format"
|
||||
>
|
||||
<option value=""> </option>
|
||||
<optgroup label="Miniature Format">
|
||||
<option value="110">110</option>
|
||||
<option value="135">35mm (135)</option>
|
||||
<option value="110">110 (Pocket Instamatic)</option>
|
||||
<option selected value="135">35mm (135)</option>
|
||||
</optgroup>
|
||||
<optgroup label="Medium Format">
|
||||
<option value="120">120</option>
|
||||
@ -108,5 +131,4 @@ export function FilmAddView () {
|
||||
</Col>
|
||||
</Row>
|
||||
);
|
||||
};
|
||||
|
||||
}
|
||||
|
@ -1,4 +1,5 @@
|
||||
export * from '//views/Camera';
|
||||
export * from '//views/Film';
|
||||
export * from '//views/HomeView';
|
||||
export * from '//views/Lenses';
|
||||
export * from '//views/OopsView';
|
||||
|
233
yarn.lock
233
yarn.lock
@ -782,10 +782,10 @@ ajv-keywords@^3.2.0:
|
||||
resolved "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.2.0.tgz#e86b819c602cf8821ad637413698f1dec021847a"
|
||||
integrity sha1-6GuBnGAs+IIa1jdBNpjx3sAhhHo=
|
||||
|
||||
ajv@^6.5.3, ajv@^6.5.5, ajv@^6.6.1:
|
||||
version "6.6.2"
|
||||
resolved "https://registry.npmjs.org/ajv/-/ajv-6.6.2.tgz#caceccf474bf3fc3ce3b147443711a24063cc30d"
|
||||
integrity sha512-FBHEW6Jf5TB9MGBgUUA9XHkTbjXYfAUjY43ACMfmdMRHniyoMHjHjzD50OK8LGDWQwp4rWEsIq5kEqq7rvIM1g==
|
||||
ajv@^6.5.3, ajv@^6.5.5, ajv@^6.6.1, ajv@^6.7.0:
|
||||
version "6.7.0"
|
||||
resolved "https://registry.npmjs.org/ajv/-/ajv-6.7.0.tgz#e3ce7bb372d6577bb1839f1dfdfcbf5ad2948d96"
|
||||
integrity sha512-RZXPviBTtfmtka9n9sy1N5M5b82CbxWIR6HIis4s3WQTXDJamc/0gpCWNGz6EWdWp4DOfjzJfhz/AS9zVPjjWg==
|
||||
dependencies:
|
||||
fast-deep-equal "^2.0.1"
|
||||
fast-json-stable-stringify "^2.0.0"
|
||||
@ -859,37 +859,37 @@ anymatch@^2.0.0:
|
||||
micromatch "^3.1.4"
|
||||
normalize-path "^2.1.1"
|
||||
|
||||
app-builder-bin@2.6.1:
|
||||
version "2.6.1"
|
||||
resolved "https://registry.npmjs.org/app-builder-bin/-/app-builder-bin-2.6.1.tgz#aa97f82d341dfa6f1269d78955482d619cc613ed"
|
||||
integrity sha512-W0l85O+s6lOaziWqAhszPfwiG0s15FvMBP9j9i/bknsMccUkwN60u4Cy7yYtf6akCUDuJenLqpTX4/xvkq1egw==
|
||||
app-builder-bin@2.6.3:
|
||||
version "2.6.3"
|
||||
resolved "https://registry.npmjs.org/app-builder-bin/-/app-builder-bin-2.6.3.tgz#428557e8fd517ef6272b3d85593ebb288c2aed90"
|
||||
integrity sha512-JL8C41e6yGIchFsHP/q15aGNedAaUakLhkV6ER0Yxafx08sRnlDnlkAkEIKjX7edg/4i7swpGa6CBv1zX9GgCA==
|
||||
|
||||
app-builder-lib@20.38.4, app-builder-lib@~20.38.3:
|
||||
version "20.38.4"
|
||||
resolved "https://registry.npmjs.org/app-builder-lib/-/app-builder-lib-20.38.4.tgz#71a515d01f4f2bd48a67495804f659a46c35303c"
|
||||
integrity sha512-JbuAJQBndcCW6BJVIb2tPjM5wiuIjz2LUlbyVxNIawM2wFKUBV9kr0N3RNBJFxcrCEuA9oprMUCoymJdrMUVfA==
|
||||
app-builder-lib@20.38.5, app-builder-lib@~20.38.5:
|
||||
version "20.38.5"
|
||||
resolved "https://registry.npmjs.org/app-builder-lib/-/app-builder-lib-20.38.5.tgz#bdfbbc35e10571c6cf1f62daae95991d27686a03"
|
||||
integrity sha512-vVgM9d9twwlhr+8vNAJOAD9dyVBRk7reuVa1BE1OmvaHb1M+fS8KpvcDKVdBqX9KDHy7zSc57mnIcHgax4/XMA==
|
||||
dependencies:
|
||||
"7zip-bin" "~4.1.0"
|
||||
app-builder-bin "2.6.1"
|
||||
app-builder-bin "2.6.3"
|
||||
async-exit-hook "^2.0.1"
|
||||
bluebird-lst "^1.0.6"
|
||||
builder-util "9.6.1"
|
||||
builder-util-runtime "8.1.0"
|
||||
builder-util "9.6.2"
|
||||
builder-util-runtime "8.1.1"
|
||||
chromium-pickle-js "^0.2.0"
|
||||
debug "^4.1.0"
|
||||
debug "^4.1.1"
|
||||
ejs "^2.6.1"
|
||||
electron-osx-sign "0.4.11"
|
||||
electron-publish "20.38.3"
|
||||
electron-publish "20.38.5"
|
||||
fs-extra-p "^7.0.0"
|
||||
hosted-git-info "^2.7.1"
|
||||
is-ci "^2.0.0"
|
||||
isbinaryfile "^3.0.3"
|
||||
js-yaml "^3.12.0"
|
||||
isbinaryfile "^4.0.0"
|
||||
js-yaml "^3.12.1"
|
||||
lazy-val "^1.0.3"
|
||||
minimatch "^3.0.4"
|
||||
normalize-package-data "^2.4.0"
|
||||
plist "^3.0.1"
|
||||
read-config-file "3.2.0"
|
||||
read-config-file "3.2.1"
|
||||
sanitize-filename "^1.6.1"
|
||||
semver "^5.6.0"
|
||||
temp-file "^3.3.2"
|
||||
@ -1197,9 +1197,9 @@ babel-plugin-macros@2.4.2:
|
||||
resolve "^1.8.1"
|
||||
|
||||
babel-plugin-module-resolver@^3.1.1:
|
||||
version "3.1.1"
|
||||
resolved "https://registry.npmjs.org/babel-plugin-module-resolver/-/babel-plugin-module-resolver-3.1.1.tgz#881cf67e3d4b8400d5eaaefc1be44d2dc1fe404f"
|
||||
integrity sha512-1Q77Al4ydp6nYApJ7sQ2fmgz30WuQgJZegIYuyOdbdpxenB/bSezQ3hDPsumIXGlUS4vUIv+EwFjzzXZNWtARw==
|
||||
version "3.1.2"
|
||||
resolved "https://registry.npmjs.org/babel-plugin-module-resolver/-/babel-plugin-module-resolver-3.1.2.tgz#5d4bd3572eb1d1d4c7ca37bd53de8ec82d251dcb"
|
||||
integrity sha512-OiDI8VKCp8zcjhbp/QwqZ5MliRTHp+Fv8tO2IJYiCl1B18/4t8ZCVhm90/8JDe+Zu4Th/DUxeLCHws8kbkVUZQ==
|
||||
dependencies:
|
||||
find-babel-config "^1.1.0"
|
||||
glob "^7.1.2"
|
||||
@ -1483,12 +1483,12 @@ browserslist@4.3.5:
|
||||
node-releases "^1.0.5"
|
||||
|
||||
browserslist@^4.3.4:
|
||||
version "4.3.7"
|
||||
resolved "https://registry.npmjs.org/browserslist/-/browserslist-4.3.7.tgz#f1de479a6466ea47a0a26dcc725e7504817e624a"
|
||||
integrity sha512-pWQv51Ynb0MNk9JGMCZ8VkM785/4MQNXiFYtPqI7EEP0TJO+/d/NqRVn1uiAN0DNbnlUSpL2sh16Kspasv3pUQ==
|
||||
version "4.4.0"
|
||||
resolved "https://registry.npmjs.org/browserslist/-/browserslist-4.4.0.tgz#7050d1412cbfc5274aba609ed5e50359ca1a5fdf"
|
||||
integrity sha512-tQkHS8VVxWbrjnNDXgt7/+SuPJ7qDvD0Y2e6bLtoQluR2SPvlmPUcfcU75L1KAalhqULlIFJlJ6BDfnYyJxJsw==
|
||||
dependencies:
|
||||
caniuse-lite "^1.0.30000925"
|
||||
electron-to-chromium "^1.3.96"
|
||||
caniuse-lite "^1.0.30000928"
|
||||
electron-to-chromium "^1.3.100"
|
||||
node-releases "^1.1.3"
|
||||
|
||||
bser@^2.0.0:
|
||||
@ -1521,31 +1521,31 @@ buffer-from@^1.0.0:
|
||||
resolved "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz#32713bc028f75c02fdb710d7c7bcec1f2c6070ef"
|
||||
integrity sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==
|
||||
|
||||
builder-util-runtime@8.1.0, builder-util-runtime@^8.1.0:
|
||||
version "8.1.0"
|
||||
resolved "https://registry.npmjs.org/builder-util-runtime/-/builder-util-runtime-8.1.0.tgz#dd7fca995d48ceee7580b4851ca057566c94601e"
|
||||
integrity sha512-s1mlJ28mv+56Iebh6c9aXjVe11O3Z0cDTwAGeB0PCcUzHA37fDxGgS8ZGoYNMZP+rBHj21d/od1wuYofTVLaQg==
|
||||
builder-util-runtime@8.1.1, builder-util-runtime@^8.1.1:
|
||||
version "8.1.1"
|
||||
resolved "https://registry.npmjs.org/builder-util-runtime/-/builder-util-runtime-8.1.1.tgz#f2f6fc43e33d26892bd491667fc746ad69bccc50"
|
||||
integrity sha512-+ieS4PMB33vVE2S3ZNWBEQJ1zKmAs/agrBdh7XadE1lKLjrH4aXYuOh9OOGdxqIRldhlhNBaF+yKMMEFOdNVig==
|
||||
dependencies:
|
||||
bluebird-lst "^1.0.6"
|
||||
debug "^4.1.0"
|
||||
debug "^4.1.1"
|
||||
fs-extra-p "^7.0.0"
|
||||
sax "^1.2.4"
|
||||
|
||||
builder-util@9.6.1, builder-util@~9.6.0:
|
||||
version "9.6.1"
|
||||
resolved "https://registry.npmjs.org/builder-util/-/builder-util-9.6.1.tgz#4625620b1535fe40dcacb178d24fe56d0d7c8957"
|
||||
integrity sha512-8MljKTjeV+A+LLVexuWEV3EpWbiUcsHHrB4Bg2qNo/3dC+vTo6g/27+W3Ij7Ij1UTobSkNBstFieWijXJCco9A==
|
||||
builder-util@9.6.2, builder-util@~9.6.2:
|
||||
version "9.6.2"
|
||||
resolved "https://registry.npmjs.org/builder-util/-/builder-util-9.6.2.tgz#3366aefea1b5ce292840be727a094e96fa25802f"
|
||||
integrity sha512-cWl/0/Q851lesMmXp1IjreeAX1QAWA9e+iU2IT61oh+CvMYJnDwao2m9ZCHammdw2zllrwWu4fOC3gvsb/yOCw==
|
||||
dependencies:
|
||||
"7zip-bin" "~4.1.0"
|
||||
app-builder-bin "2.6.1"
|
||||
app-builder-bin "2.6.3"
|
||||
bluebird-lst "^1.0.6"
|
||||
builder-util-runtime "^8.1.0"
|
||||
chalk "^2.4.1"
|
||||
debug "^4.1.0"
|
||||
builder-util-runtime "^8.1.1"
|
||||
chalk "^2.4.2"
|
||||
debug "^4.1.1"
|
||||
fs-extra-p "^7.0.0"
|
||||
is-ci "^2.0.0"
|
||||
js-yaml "^3.12.0"
|
||||
source-map-support "^0.5.9"
|
||||
js-yaml "^3.12.1"
|
||||
source-map-support "^0.5.10"
|
||||
stat-mode "^0.2.2"
|
||||
temp-file "^3.3.2"
|
||||
|
||||
@ -1621,10 +1621,10 @@ camelcase@^5.0.0:
|
||||
resolved "https://registry.npmjs.org/camelcase/-/camelcase-5.0.0.tgz#03295527d58bd3cd4aa75363f35b2e8d97be2f42"
|
||||
integrity sha512-faqwZqnWxbxn+F1d399ygeamQNy3lPp/H9H6rNrqYh4FSVCtcY+3cub1MxA8o9mDd55mM8Aghuu/kuyYA6VTsA==
|
||||
|
||||
caniuse-lite@^1.0.30000912, caniuse-lite@^1.0.30000925:
|
||||
version "1.0.30000928"
|
||||
resolved "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30000928.tgz#805e828dc72b06498e3683a32e61c7507fd67b88"
|
||||
integrity sha512-aSpMWRXL6ZXNnzm8hgE4QDLibG5pVJ2Ujzsuj3icazlIkxXkPXtL+BWnMx6FBkWmkZgBHGUxPZQvrbRw2ZTxhg==
|
||||
caniuse-lite@^1.0.30000912, caniuse-lite@^1.0.30000928:
|
||||
version "1.0.30000929"
|
||||
resolved "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30000929.tgz#7b391b781a9c3097ecc39ea053301aea8ea16317"
|
||||
integrity sha512-n2w1gPQSsYyorSVYqPMqbSaz1w7o9ZC8VhOEGI9T5MfGDzp7sbopQxG6GaQmYsaq13Xfx/mkxJUWC1Dz3oZfzw==
|
||||
|
||||
capture-exit@^1.2.0:
|
||||
version "1.2.0"
|
||||
@ -1663,7 +1663,7 @@ chalk@2.4.1:
|
||||
escape-string-regexp "^1.0.5"
|
||||
supports-color "^5.3.0"
|
||||
|
||||
chalk@^2.0.0, chalk@^2.0.1, chalk@^2.1.0, chalk@^2.4.1:
|
||||
chalk@^2.0.0, chalk@^2.0.1, chalk@^2.1.0, chalk@^2.4.1, chalk@^2.4.2:
|
||||
version "2.4.2"
|
||||
resolved "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424"
|
||||
integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==
|
||||
@ -1996,7 +1996,7 @@ debug@^3.0.0, debug@^3.1.0, debug@^3.2.5:
|
||||
dependencies:
|
||||
ms "^2.1.1"
|
||||
|
||||
debug@^4.0.1, debug@^4.1.0:
|
||||
debug@^4.0.1, debug@^4.1.0, debug@^4.1.1:
|
||||
version "4.1.1"
|
||||
resolved "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz#3b72260255109c6b589cee050f1d516139664791"
|
||||
integrity sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==
|
||||
@ -2113,17 +2113,17 @@ diff@^3.2.0:
|
||||
resolved "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz#800c0dd1e0a8bfbc95835c202ad220fe317e5a12"
|
||||
integrity sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==
|
||||
|
||||
dmg-builder@6.5.3:
|
||||
version "6.5.3"
|
||||
resolved "https://registry.npmjs.org/dmg-builder/-/dmg-builder-6.5.3.tgz#95afe3deab33fd874f68d299bc71b481e94f5312"
|
||||
integrity sha512-ZNl4GFBg6rdFplnuoK56iftxh/qgM7rXJUxgl21eK4WsjxgQwtQ0REZo+pDSL4OzVeyOO8MMNWSNQcCsBLiDyA==
|
||||
dmg-builder@6.5.4:
|
||||
version "6.5.4"
|
||||
resolved "https://registry.npmjs.org/dmg-builder/-/dmg-builder-6.5.4.tgz#18c573a5e777cbb39d84d7eaa84d965e1bb5b01f"
|
||||
integrity sha512-EaEkF8weXez3iAwgYffjcYfumauUh5x+BggMgn/IuihNIA5/WfzRAUR4wMq9aII2zwArlw+rIrX6ZHKbmtkQmA==
|
||||
dependencies:
|
||||
app-builder-lib "~20.38.3"
|
||||
app-builder-lib "~20.38.5"
|
||||
bluebird-lst "^1.0.6"
|
||||
builder-util "~9.6.0"
|
||||
builder-util "~9.6.2"
|
||||
fs-extra-p "^7.0.0"
|
||||
iconv-lite "^0.4.24"
|
||||
js-yaml "^3.12.0"
|
||||
js-yaml "^3.12.1"
|
||||
parse-color "^1.0.0"
|
||||
sanitize-filename "^1.6.1"
|
||||
|
||||
@ -2161,7 +2161,7 @@ dotenv-expand@^4.2.0:
|
||||
resolved "https://registry.npmjs.org/dotenv-expand/-/dotenv-expand-4.2.0.tgz#def1f1ca5d6059d24a766e587942c21106ce1275"
|
||||
integrity sha1-3vHxyl1gWdJKdm5YeULCEQbOEnU=
|
||||
|
||||
dotenv@^6.1.0:
|
||||
dotenv@^6.2.0:
|
||||
version "6.2.0"
|
||||
resolved "https://registry.npmjs.org/dotenv/-/dotenv-6.2.0.tgz#941c0410535d942c8becf28d3f357dbd9d476064"
|
||||
integrity sha512-HygQCKUBSFl8wKQZBSemMywRWcEDNidvNbjGVyZu3nbZ8qq9ubiPoGLMdRDpfSrpkkm9BXYFkpKxxFX38o/76w==
|
||||
@ -2190,20 +2190,20 @@ ejs@^2.6.1:
|
||||
integrity sha512-0xy4A/twfrRCnkhfk8ErDi5DqdAsAqeGxht4xkCUrsvhhbQNs7E+4jV0CN7+NKIY0aHE72+XvqtBIXzD31ZbXQ==
|
||||
|
||||
electron-builder@^20.15.1:
|
||||
version "20.38.4"
|
||||
resolved "https://registry.npmjs.org/electron-builder/-/electron-builder-20.38.4.tgz#67727529ffb87e7fdd78b3a84ea0d6c22bf04ec2"
|
||||
integrity sha512-WHOr3Rz2wktxV5TqmRL6woO9/wrIZeRfJPSEXOhgfgLskE5Sp2Aer0zAF7lHNqXuG6JhU+0I9IYFAxa73MTs9w==
|
||||
version "20.38.5"
|
||||
resolved "https://registry.npmjs.org/electron-builder/-/electron-builder-20.38.5.tgz#31b3913a68b4911afd4cfc7bcd2522c5808040cd"
|
||||
integrity sha512-p88IDHhH2J4hA6KwRBJY+OfVZuFtFIShY3Uh/TwYAfbX0v1RhKZytuGdO8sty2zcWxDYX74xDBv+X9oN6qEIRQ==
|
||||
dependencies:
|
||||
app-builder-lib "20.38.4"
|
||||
app-builder-lib "20.38.5"
|
||||
bluebird-lst "^1.0.6"
|
||||
builder-util "9.6.1"
|
||||
builder-util-runtime "8.1.0"
|
||||
chalk "^2.4.1"
|
||||
dmg-builder "6.5.3"
|
||||
builder-util "9.6.2"
|
||||
builder-util-runtime "8.1.1"
|
||||
chalk "^2.4.2"
|
||||
dmg-builder "6.5.4"
|
||||
fs-extra-p "^7.0.0"
|
||||
is-ci "^2.0.0"
|
||||
lazy-val "^1.0.3"
|
||||
read-config-file "3.2.0"
|
||||
read-config-file "3.2.1"
|
||||
sanitize-filename "^1.6.1"
|
||||
update-notifier "^2.5.0"
|
||||
yargs "^12.0.5"
|
||||
@ -2250,23 +2250,23 @@ electron-osx-sign@0.4.11:
|
||||
minimist "^1.2.0"
|
||||
plist "^3.0.1"
|
||||
|
||||
electron-publish@20.38.3:
|
||||
version "20.38.3"
|
||||
resolved "https://registry.npmjs.org/electron-publish/-/electron-publish-20.38.3.tgz#7c162904f728ba2bbf2640bc3620b65ce1061ce3"
|
||||
integrity sha512-Qomq253NT5DfjUZgFSx6p+gheU5YhM6zZ67fTtBZvwyk0v8HwxNXfa8fZT7h+1c3BwEmjusTbmjZRNW/XZBXFA==
|
||||
electron-publish@20.38.5:
|
||||
version "20.38.5"
|
||||
resolved "https://registry.npmjs.org/electron-publish/-/electron-publish-20.38.5.tgz#c6ed7ea12bc80796b1f36489995f4651f730b1df"
|
||||
integrity sha512-EhdPm6t0nKDfa0r3KjV1kSFcz03VrzgJRv7v5nHkkpQZB6OSmDNlHq7k66NBwQhPK3i4CK+uvehljZAP28vbCA==
|
||||
dependencies:
|
||||
bluebird-lst "^1.0.6"
|
||||
builder-util "~9.6.0"
|
||||
builder-util-runtime "^8.1.0"
|
||||
chalk "^2.4.1"
|
||||
builder-util "~9.6.2"
|
||||
builder-util-runtime "^8.1.1"
|
||||
chalk "^2.4.2"
|
||||
fs-extra-p "^7.0.0"
|
||||
lazy-val "^1.0.3"
|
||||
mime "^2.4.0"
|
||||
|
||||
electron-to-chromium@^1.3.86, electron-to-chromium@^1.3.96:
|
||||
version "1.3.100"
|
||||
resolved "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.100.tgz#899fb088def210aee6b838a47655bbb299190e13"
|
||||
integrity sha512-cEUzis2g/RatrVf8x26L8lK5VEls1AGnLHk6msluBUg/NTB4wcXzExTsGscFq+Vs4WBBU2zbLLySvD4C0C3hwg==
|
||||
electron-to-chromium@^1.3.100, electron-to-chromium@^1.3.86:
|
||||
version "1.3.103"
|
||||
resolved "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.103.tgz#a695777efdbc419cad6cbb0e58458251302cd52f"
|
||||
integrity sha512-tObPqGmY9X8MUM8i3MEimYmbnLLf05/QV5gPlkR8MQ3Uj8G8B2govE1U4cQcBYtv3ymck9Y8cIOu4waoiykMZQ==
|
||||
|
||||
electron@^4.0.1:
|
||||
version "4.0.1"
|
||||
@ -2525,9 +2525,9 @@ eslint@^5.12.0:
|
||||
text-table "^0.2.0"
|
||||
|
||||
esm@^3.0.40:
|
||||
version "3.0.84"
|
||||
resolved "https://registry.npmjs.org/esm/-/esm-3.0.84.tgz#bb108989f4673b32d4f62406869c28eed3815a63"
|
||||
integrity sha512-SzSGoZc17S7P+12R9cg21Bdb7eybX25RnIeRZ80xZs+VZ3kdQKzqTp2k4hZJjR7p9l0186TTXSgrxzlMDBktlw==
|
||||
version "3.1.0"
|
||||
resolved "https://registry.npmjs.org/esm/-/esm-3.1.0.tgz#89eb950b3f04b691b12f96a0d9c8de93039a1a26"
|
||||
integrity sha512-r4Go7Wh7Wh0WPinRXeeM9PIajRsUdt8SAyki5R1obVc0+BwtqvtjbngVSSdXg0jCe2xZkY8hyBMx6q/uymUkPw==
|
||||
|
||||
espree@^5.0.0:
|
||||
version "5.0.0"
|
||||
@ -2617,27 +2617,27 @@ execa@^1.0.0:
|
||||
signal-exit "^3.0.0"
|
||||
strip-eof "^1.0.0"
|
||||
|
||||
exiftool-vendored.exe@11.21.0:
|
||||
version "11.21.0"
|
||||
resolved "https://registry.npmjs.org/exiftool-vendored.exe/-/exiftool-vendored.exe-11.21.0.tgz#623223aba3aef9babc6732732cf790a2b5273b1d"
|
||||
integrity sha512-gLGy2DUln/vhnFY8NDx2ALc/Gz1hHT/Svgkc44ewF+3EGFXE3zD+6gW3TWfhJk/7qEVppLJdc6BxX8ssD//Ztw==
|
||||
exiftool-vendored.exe@11.24.0:
|
||||
version "11.24.0"
|
||||
resolved "https://registry.npmjs.org/exiftool-vendored.exe/-/exiftool-vendored.exe-11.24.0.tgz#5f4f1ea52a43f0056d19cc6207cfa216405a37dc"
|
||||
integrity sha512-HWFfM7N5Oqb9ZulptuyxpQDvPNQ/K/OFSQyufaEyYhXC1jwJ2thmBJ/ESRR+C6rZ+rlIiMiyvXsC0OfA4L5OGw==
|
||||
|
||||
exiftool-vendored.pl@11.21.0:
|
||||
version "11.21.0"
|
||||
resolved "https://registry.npmjs.org/exiftool-vendored.pl/-/exiftool-vendored.pl-11.21.0.tgz#c0a385e1bfd72766556570009e09d4acdc7e652f"
|
||||
integrity sha512-Z3lOoDnSNcOtJaZah5V4OyGK24l1SqMdAxmJ3nls51l8M1dSQYX5LyO1YWtNK2NbO+bC64deMULZB3BPltkPiA==
|
||||
exiftool-vendored.pl@11.24.0, exiftool-vendored.pl@^11.24.0:
|
||||
version "11.24.0"
|
||||
resolved "https://registry.npmjs.org/exiftool-vendored.pl/-/exiftool-vendored.pl-11.24.0.tgz#26ea1ff8661015888be572e300ad2e63b4773678"
|
||||
integrity sha512-LEoKO28SJxvDbbHwG5Iu/AagTFESfxKZl4RHAfk6T8jAQObUbS0XJLQTglfRoDXNgx3RHcI6rzYsk/c7mUU/rg==
|
||||
|
||||
exiftool-vendored@^7.5.0:
|
||||
version "7.5.0"
|
||||
resolved "https://registry.npmjs.org/exiftool-vendored/-/exiftool-vendored-7.5.0.tgz#36d9134e50b450c06c8e196257da2b7ad63a5b43"
|
||||
integrity sha512-APSeQlS4JLcu9OLtuAPILMLmGXcCUwDBCF0wHtV8hrzM01QdCIy3mUuf9Yye0QOWmIUsF8X2ZYrOAyXlRFOZsg==
|
||||
version "7.6.1"
|
||||
resolved "https://registry.npmjs.org/exiftool-vendored/-/exiftool-vendored-7.6.1.tgz#aa5da10780c94c4ede87c4c612173d343c927629"
|
||||
integrity sha512-Y8mtnV77yfWLwsi6vSwjRITrjukya/Q5rGltGOzKRdq6BLn2iF1JfS2RmA3pT8S/mHIMTJxH14b/WbCK/pCgEw==
|
||||
dependencies:
|
||||
batch-cluster "^5.0.1"
|
||||
luxon "^1.8.2"
|
||||
luxon "^1.10.0"
|
||||
tz-lookup "^6.1.8"
|
||||
optionalDependencies:
|
||||
exiftool-vendored.exe "11.21.0"
|
||||
exiftool-vendored.pl "11.21.0"
|
||||
exiftool-vendored.exe "11.24.0"
|
||||
exiftool-vendored.pl "11.24.0"
|
||||
|
||||
exit@^0.1.2:
|
||||
version "0.1.2"
|
||||
@ -2990,9 +2990,9 @@ fs.realpath@^1.0.0:
|
||||
integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8=
|
||||
|
||||
fsevents@^1.0.0, fsevents@^1.2.3:
|
||||
version "1.2.4"
|
||||
resolved "https://registry.npmjs.org/fsevents/-/fsevents-1.2.4.tgz#f41dcb1af2582af3692da36fc55cbd8e1041c426"
|
||||
integrity sha512-z8H8/diyk76B7q5wg+Ud0+CqzcAF3mBBI/bA5ne5zrRUUIvNkJY//D3BqyH571KuAC4Nr7Rw7CjWX4r0y9DvNg==
|
||||
version "1.2.6"
|
||||
resolved "https://registry.npmjs.org/fsevents/-/fsevents-1.2.6.tgz#d3a1864a71876a2eb9b244e3bd8f606eb09568c0"
|
||||
integrity sha512-BalK54tfK0pMC0jQFb2oHn1nz7JNQD/2ex5pBnCHgBi2xG7VV0cAOGy2RS2VbCqUXx5/6obMrMcQTJ8yjcGzbg==
|
||||
dependencies:
|
||||
nan "^2.9.2"
|
||||
node-pre-gyp "^0.10.0"
|
||||
@ -3900,13 +3900,18 @@ isarray@1.0.0, isarray@^1.0.0, isarray@~1.0.0:
|
||||
resolved "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11"
|
||||
integrity sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=
|
||||
|
||||
isbinaryfile@^3.0.2, isbinaryfile@^3.0.3:
|
||||
isbinaryfile@^3.0.2:
|
||||
version "3.0.3"
|
||||
resolved "https://registry.npmjs.org/isbinaryfile/-/isbinaryfile-3.0.3.tgz#5d6def3edebf6e8ca8cae9c30183a804b5f8be80"
|
||||
integrity sha512-8cJBL5tTd2OS0dM4jz07wQd5g0dCCqIhUxPIGtZfa5L6hWlvV5MHTITy/DBAsF+Oe2LS1X3krBUhNwaGUWpWxw==
|
||||
dependencies:
|
||||
buffer-alloc "^1.2.0"
|
||||
|
||||
isbinaryfile@^4.0.0:
|
||||
version "4.0.0"
|
||||
resolved "https://registry.npmjs.org/isbinaryfile/-/isbinaryfile-4.0.0.tgz#07d1061c21598b41292b0f5c68add5eab601ad8e"
|
||||
integrity sha512-RBtmso6l2mCaEsUvXngMTIjg3oheXo0MgYzzfT6sk44RYggPnm9fT+cQJAmzRnJIxPHXg9FZglqDJGW28dvcqA==
|
||||
|
||||
isexe@^2.0.0:
|
||||
version "2.0.0"
|
||||
resolved "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10"
|
||||
@ -4344,7 +4349,7 @@ js-tokens@^3.0.2:
|
||||
resolved "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz#9866df395102130e38f7f996bceb65443209c25b"
|
||||
integrity sha1-mGbfOVECEw449/mWvOtlRDIJwls=
|
||||
|
||||
js-yaml@^3.12.0, js-yaml@^3.7.0, js-yaml@^3.9.0:
|
||||
js-yaml@^3.12.0, js-yaml@^3.12.1, js-yaml@^3.7.0, js-yaml@^3.9.0:
|
||||
version "3.12.1"
|
||||
resolved "https://registry.npmjs.org/js-yaml/-/js-yaml-3.12.1.tgz#295c8632a18a23e054cf5c9d3cecafe678167600"
|
||||
integrity sha512-um46hB9wNOKlwkHgiuyEVAybXBjwFUV0Z/RaHJblRd9DXltue9FTYvzCr9ErQrK9Adz5MU4gHWVaNUfdmrC8qA==
|
||||
@ -4673,7 +4678,7 @@ lru-cache@^4.0.1:
|
||||
pseudomap "^1.0.2"
|
||||
yallist "^2.1.2"
|
||||
|
||||
luxon@^1.8.2:
|
||||
luxon@^1.10.0:
|
||||
version "1.10.0"
|
||||
resolved "https://registry.npmjs.org/luxon/-/luxon-1.10.0.tgz#335b55e2fed50e09f869aee828897a3f67c7044e"
|
||||
integrity sha512-ry3GKh//v3isD6oJN5pFWmdh+3GiScwv9q8VgG6fZ2j1guGOol2vVVdo4GBAWCrcq5RHOqSeipqHBnOu/u024Q==
|
||||
@ -4724,9 +4729,9 @@ map-visit@^1.0.0:
|
||||
object-visit "^1.0.0"
|
||||
|
||||
math-random@^1.0.1:
|
||||
version "1.0.1"
|
||||
resolved "https://registry.npmjs.org/math-random/-/math-random-1.0.1.tgz#8b3aac588b8a66e4975e3cdea67f7bb329601fac"
|
||||
integrity sha1-izqsWIuKZuSXXjzepn97sylgH6w=
|
||||
version "1.0.4"
|
||||
resolved "https://registry.npmjs.org/math-random/-/math-random-1.0.4.tgz#5dd6943c938548267016d4e34f057583080c514c"
|
||||
integrity sha512-rUxjysqif/BZQH2yhd5Aaq7vXMSx9NdEsQcyA07uEzIvxgI7zIr33gGsh+RU0/XjmQpCW7RsVof1vlkvQVCK5A==
|
||||
|
||||
mem@^1.1.0:
|
||||
version "1.1.0"
|
||||
@ -5711,18 +5716,18 @@ rc@^1.0.1, rc@^1.1.6, rc@^1.2.1, rc@^1.2.7:
|
||||
minimist "^1.2.0"
|
||||
strip-json-comments "~2.0.1"
|
||||
|
||||
read-config-file@3.2.0:
|
||||
version "3.2.0"
|
||||
resolved "https://registry.npmjs.org/read-config-file/-/read-config-file-3.2.0.tgz#50a2756a9a128ab9dcbe087e2724c512e3d0ccd1"
|
||||
integrity sha512-i1QRc5jy4sHm9YBGb6ArA5SU1mDrc5wu2mnm3r9gPnm+LVZhBGbpTCKqAXyvV4TJHnBR3Yaaww+9b3DyRZcfww==
|
||||
read-config-file@3.2.1:
|
||||
version "3.2.1"
|
||||
resolved "https://registry.npmjs.org/read-config-file/-/read-config-file-3.2.1.tgz#112dc8636121fa71fd524e1a8a5b4470ef7a2732"
|
||||
integrity sha512-yW4hZZXdNN+Paij5JVAiTv1lUsAN5QRBU5NqotQqwYdVkUczSmDzm66VLu0eojiZt2zFeYptTFDAYlalDGuHdA==
|
||||
dependencies:
|
||||
ajv "^6.5.5"
|
||||
ajv "^6.7.0"
|
||||
ajv-keywords "^3.2.0"
|
||||
bluebird-lst "^1.0.6"
|
||||
dotenv "^6.1.0"
|
||||
dotenv "^6.2.0"
|
||||
dotenv-expand "^4.2.0"
|
||||
fs-extra-p "^7.0.0"
|
||||
js-yaml "^3.12.0"
|
||||
js-yaml "^3.12.1"
|
||||
json5 "^2.1.0"
|
||||
lazy-val "^1.0.3"
|
||||
|
||||
@ -6452,7 +6457,7 @@ source-map-support@^0.4.15:
|
||||
dependencies:
|
||||
source-map "^0.5.6"
|
||||
|
||||
source-map-support@^0.5.6, source-map-support@^0.5.9, source-map-support@~0.5.6:
|
||||
source-map-support@^0.5.10, source-map-support@^0.5.6, source-map-support@~0.5.6:
|
||||
version "0.5.10"
|
||||
resolved "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.10.tgz#2214080bc9d51832511ee2bab96e3c2f9353120c"
|
||||
integrity sha512-YfQ3tQFTK/yzlGJuX8pTwa4tifQj4QS2Mj7UegOu8jAz59MqIiMGPXxQhVQiIMNzayuUSF/jEuVnfFF5JqybmQ==
|
||||
@ -6694,9 +6699,9 @@ symbol-tree@^3.2.2:
|
||||
integrity sha1-rifbOPZgp64uHDt9G8KQgZuFGeY=
|
||||
|
||||
table@^5.0.2:
|
||||
version "5.2.0"
|
||||
resolved "https://registry.npmjs.org/table/-/table-5.2.0.tgz#2e38bd1f16dd3f97085ac80cdc574ad9198af04d"
|
||||
integrity sha512-hAdBBAMCZl4/U3eQhsPN2Z8wRJC98lpRhDW2I86VQbPBqyj4E681VhvUkfb90qUJ4rnRfu8t4/8SGHPsAH1ygg==
|
||||
version "5.2.1"
|
||||
resolved "https://registry.npmjs.org/table/-/table-5.2.1.tgz#e78463702b1be9f7131c39860bcfb1b81114c2a1"
|
||||
integrity sha512-qmhNs2GEHNqY5fd2Mo+8N1r2sw/rvTAAvBZTaTx+Y7PHLypqyrxr1MdIu0pLw6Xvl/Gi4ONu/sdceP8vvUjkyA==
|
||||
dependencies:
|
||||
ajv "^6.6.1"
|
||||
lodash "^4.17.11"
|
||||
|
Loading…
Reference in New Issue
Block a user