notes are now created with correct local dates

This commit is contained in:
zadam 2019-03-13 22:43:59 +01:00
parent b68b0fe783
commit 0d0464549f
28 changed files with 482 additions and 250 deletions

View File

@ -39,7 +39,7 @@ CREATE TABLE IF NOT EXISTS "note_revisions_mig" (
hash TEXT DEFAULT "" NOT NULL); hash TEXT DEFAULT "" NOT NULL);
INSERT INTO note_revisions_mig (noteRevisionId, noteId, title, content, isProtected, utcDateModifiedFrom, utcDateModifiedTo, dateModifiedFrom, dateModifiedTo, type, mime, hash) INSERT INTO note_revisions_mig (noteRevisionId, noteId, title, content, isProtected, utcDateModifiedFrom, utcDateModifiedTo, dateModifiedFrom, dateModifiedTo, type, mime, hash)
SELECT noteRevisionId, noteId, title, content, isProtected, REPLACE(dateModifiedFrom, 'T', ' '), REPLACE(dateModifiedTo, 'T', ' '), REPLACE(REPLACE(dateModifiedFrom, 'T', ' '), 'Z', '+00:00'), REPLACE(REPLACE(dateModifiedTo, 'T', ' '), 'Z', '+00:00'), type, mime, hash FROM note_revisions; SELECT noteRevisionId, noteId, title, content, isProtected, REPLACE(dateModifiedFrom, 'T', ' '), REPLACE(dateModifiedTo, 'T', ' '), REPLACE(REPLACE(dateModifiedFrom, 'T', ' '), 'Z', '+0000'), REPLACE(REPLACE(dateModifiedTo, 'T', ' '), 'Z', '+0000'), type, mime, hash FROM note_revisions;
DROP TABLE note_revisions; DROP TABLE note_revisions;
ALTER TABLE note_revisions_mig RENAME TO note_revisions; ALTER TABLE note_revisions_mig RENAME TO note_revisions;
@ -192,7 +192,7 @@ CREATE TABLE IF NOT EXISTS "notes_mig" (
); );
INSERT INTO notes_mig (noteId, title, isProtected, type, mime, hash, isDeleted, dateCreated, dateModified, utcDateCreated, utcDateModified) INSERT INTO notes_mig (noteId, title, isProtected, type, mime, hash, isDeleted, dateCreated, dateModified, utcDateCreated, utcDateModified)
SELECT noteId, title, isProtected, type, mime, hash, isDeleted, REPLACE(REPLACE(dateCreated, 'T', ' '), 'Z', '+00:00'), REPLACE(REPLACE(dateModified, 'T', ' '), 'Z', '+00:00'), REPLACE(dateCreated, 'T', ' '), REPLACE(dateModified, 'T', ' ') FROM notes; SELECT noteId, title, isProtected, type, mime, hash, isDeleted, REPLACE(REPLACE(dateCreated, 'T', ' '), 'Z', '+0000'), REPLACE(REPLACE(dateModified, 'T', ' '), 'Z', '+0000'), REPLACE(dateCreated, 'T', ' '), REPLACE(dateModified, 'T', ' ') FROM notes;
DROP TABLE notes; DROP TABLE notes;
ALTER TABLE notes_mig RENAME TO notes; ALTER TABLE notes_mig RENAME TO notes;

View File

@ -91,7 +91,7 @@ app.on('ready', async () => {
const dateNoteService = require('./src/services/date_notes'); const dateNoteService = require('./src/services/date_notes');
const dateUtils = require('./src/services/date_utils'); const dateUtils = require('./src/services/date_utils');
const parentNote = await dateNoteService.getDateNote(dateUtils.nowLocalDate()); const parentNote = await dateNoteService.getDateNote(dateUtils.localNowDate());
// window may be hidden / not in focus // window may be hidden / not in focus
mainWindow.focus(); mainWindow.focus();

596
package-lock.json generated
View File

@ -508,9 +508,9 @@
} }
}, },
"ajv-keywords": { "ajv-keywords": {
"version": "3.2.0", "version": "3.4.0",
"resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.2.0.tgz", "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.4.0.tgz",
"integrity": "sha1-6GuBnGAs+IIa1jdBNpjx3sAhhHo=", "integrity": "sha512-aUjdRFISbuFOl0EIZc+9e4FfZp0bDZgAdOOf30bJmw8VM9v84SHyVyxDfbWxpGYbdZD/9XoKxfHVNmxPkhwyGw==",
"dev": true "dev": true
}, },
"ansi-align": { "ansi-align": {
@ -590,38 +590,38 @@
"integrity": "sha512-uMgjozySS8adZZYePpaWs8cxB9/kdzmpX6SgJZ+wbz1K5eYk5QMYDVJaZKhxyIHUdnnJkfR7SVgStgH7LkGUyg==" "integrity": "sha512-uMgjozySS8adZZYePpaWs8cxB9/kdzmpX6SgJZ+wbz1K5eYk5QMYDVJaZKhxyIHUdnnJkfR7SVgStgH7LkGUyg=="
}, },
"app-builder-bin": { "app-builder-bin": {
"version": "2.6.3", "version": "2.6.4",
"resolved": "https://registry.npmjs.org/app-builder-bin/-/app-builder-bin-2.6.3.tgz", "resolved": "https://registry.npmjs.org/app-builder-bin/-/app-builder-bin-2.6.4.tgz",
"integrity": "sha512-JL8C41e6yGIchFsHP/q15aGNedAaUakLhkV6ER0Yxafx08sRnlDnlkAkEIKjX7edg/4i7swpGa6CBv1zX9GgCA==", "integrity": "sha512-wC9HYqiC1XqpunT/9y2VuF90KbarnIHL90Tv8BD3TITTgbVIdRTXAsvWvmaR/ImvAX0+l5Z3jZtXjdJ7Pw3bLQ==",
"dev": true "dev": true
}, },
"app-builder-lib": { "app-builder-lib": {
"version": "20.38.5", "version": "20.39.0",
"resolved": "https://registry.npmjs.org/app-builder-lib/-/app-builder-lib-20.38.5.tgz", "resolved": "https://registry.npmjs.org/app-builder-lib/-/app-builder-lib-20.39.0.tgz",
"integrity": "sha512-vVgM9d9twwlhr+8vNAJOAD9dyVBRk7reuVa1BE1OmvaHb1M+fS8KpvcDKVdBqX9KDHy7zSc57mnIcHgax4/XMA==", "integrity": "sha512-lkxGyBrQwueYb3ViqHt5WjyzVVBQqXMXc7TF+JqkuuUWp5DF7SXAYZYd+rsR3gmCbdNxw4SPIEmWmm+I9LK2gw==",
"dev": true, "dev": true,
"requires": { "requires": {
"7zip-bin": "~4.1.0", "7zip-bin": "~4.1.0",
"app-builder-bin": "2.6.3", "app-builder-bin": "2.6.4",
"async-exit-hook": "^2.0.1", "async-exit-hook": "^2.0.1",
"bluebird-lst": "^1.0.6", "bluebird-lst": "^1.0.7",
"builder-util": "9.6.2", "builder-util": "9.7.0",
"builder-util-runtime": "8.1.1", "builder-util-runtime": "8.2.0",
"chromium-pickle-js": "^0.2.0", "chromium-pickle-js": "^0.2.0",
"debug": "^4.1.1", "debug": "^4.1.1",
"ejs": "^2.6.1", "ejs": "^2.6.1",
"electron-osx-sign": "0.4.11", "electron-osx-sign": "0.4.11",
"electron-publish": "20.38.5", "electron-publish": "20.39.0",
"fs-extra-p": "^7.0.0", "fs-extra-p": "^7.0.1",
"hosted-git-info": "^2.7.1", "hosted-git-info": "^2.7.1",
"is-ci": "^2.0.0", "is-ci": "^2.0.0",
"isbinaryfile": "^4.0.0", "isbinaryfile": "^4.0.0",
"js-yaml": "^3.12.1", "js-yaml": "^3.12.1",
"lazy-val": "^1.0.3", "lazy-val": "^1.0.4",
"minimatch": "^3.0.4", "minimatch": "^3.0.4",
"normalize-package-data": "^2.4.0", "normalize-package-data": "^2.5.0",
"plist": "^3.0.1", "plist": "^3.0.1",
"read-config-file": "3.2.1", "read-config-file": "3.2.2",
"sanitize-filename": "^1.6.1", "sanitize-filename": "^1.6.1",
"semver": "^5.6.0", "semver": "^5.6.0",
"temp-file": "^3.3.2" "temp-file": "^3.3.2"
@ -633,12 +633,6 @@
"integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==", "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==",
"dev": true "dev": true
}, },
"esprima": {
"version": "4.0.1",
"resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz",
"integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==",
"dev": true
},
"is-ci": { "is-ci": {
"version": "2.0.0", "version": "2.0.0",
"resolved": "https://registry.npmjs.org/is-ci/-/is-ci-2.0.0.tgz", "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-2.0.0.tgz",
@ -648,20 +642,25 @@
"ci-info": "^2.0.0" "ci-info": "^2.0.0"
} }
}, },
"isbinaryfile": { "normalize-package-data": {
"version": "4.0.0", "version": "2.5.0",
"resolved": "https://registry.npmjs.org/isbinaryfile/-/isbinaryfile-4.0.0.tgz", "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz",
"integrity": "sha512-RBtmso6l2mCaEsUvXngMTIjg3oheXo0MgYzzfT6sk44RYggPnm9fT+cQJAmzRnJIxPHXg9FZglqDJGW28dvcqA==", "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==",
"dev": true
},
"js-yaml": {
"version": "3.12.1",
"resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.12.1.tgz",
"integrity": "sha512-um46hB9wNOKlwkHgiuyEVAybXBjwFUV0Z/RaHJblRd9DXltue9FTYvzCr9ErQrK9Adz5MU4gHWVaNUfdmrC8qA==",
"dev": true, "dev": true,
"requires": { "requires": {
"argparse": "^1.0.7", "hosted-git-info": "^2.1.4",
"esprima": "^4.0.0" "resolve": "^1.10.0",
"semver": "2 || 3 || 4 || 5",
"validate-npm-package-license": "^3.0.1"
}
},
"resolve": {
"version": "1.10.0",
"resolved": "https://registry.npmjs.org/resolve/-/resolve-1.10.0.tgz",
"integrity": "sha512-3sUr9aq5OfSg2S9pNtPA9hL1FVEAjvfOC4leW0SNf/mpnaakz2a9femSd6LqAww2RaFctwyf1lCqnTHuF1rxDg==",
"dev": true,
"requires": {
"path-parse": "^1.0.6"
} }
} }
} }
@ -1070,12 +1069,20 @@
"dev": true "dev": true
}, },
"bluebird-lst": { "bluebird-lst": {
"version": "1.0.6", "version": "1.0.7",
"resolved": "https://registry.npmjs.org/bluebird-lst/-/bluebird-lst-1.0.6.tgz", "resolved": "https://registry.npmjs.org/bluebird-lst/-/bluebird-lst-1.0.7.tgz",
"integrity": "sha512-CBWFoPuUPpcvMUxfyr8DKdI5d4kjxFl1h39+VbKxP3KJWJHEsLtuT4pPLkjpxCGU6Ask21tvbnftWXdqIxYldQ==", "integrity": "sha512-5ix04IbXVIZ6nSRM4aZnwQfk40Td0D57WAl8LfhnICF6XwT4efCZYh0veOHvfDmgpbqE4ju5L5XEAMIcAe13Kw==",
"dev": true, "dev": true,
"requires": { "requires": {
"bluebird": "^3.5.2" "bluebird": "^3.5.3"
},
"dependencies": {
"bluebird": {
"version": "3.5.3",
"resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.5.3.tgz",
"integrity": "sha512-/qKPUQlaW1OyR51WeCPBvRnAlnZFUJkCSG5HzGnuIqhgyJtF+T94lFnn33eiazjRm2LAHVy2guNnaq48X9SJuw==",
"dev": true
}
} }
}, },
"bmp-js": { "bmp-js": {
@ -1319,18 +1326,18 @@
} }
}, },
"builder-util": { "builder-util": {
"version": "9.6.2", "version": "9.7.0",
"resolved": "https://registry.npmjs.org/builder-util/-/builder-util-9.6.2.tgz", "resolved": "https://registry.npmjs.org/builder-util/-/builder-util-9.7.0.tgz",
"integrity": "sha512-cWl/0/Q851lesMmXp1IjreeAX1QAWA9e+iU2IT61oh+CvMYJnDwao2m9ZCHammdw2zllrwWu4fOC3gvsb/yOCw==", "integrity": "sha512-QA2RxbaSKvaFVNGcYsjmlkTn03tcdPxgIxHCOgw38G7NK91QWc76RBY9+T1sU8BLVEZJ4qNRWx+pd5rG9tTi+Q==",
"dev": true, "dev": true,
"requires": { "requires": {
"7zip-bin": "~4.1.0", "7zip-bin": "~4.1.0",
"app-builder-bin": "2.6.3", "app-builder-bin": "2.6.4",
"bluebird-lst": "^1.0.6", "bluebird-lst": "^1.0.7",
"builder-util-runtime": "^8.1.1", "builder-util-runtime": "^8.2.0",
"chalk": "^2.4.2", "chalk": "^2.4.2",
"debug": "^4.1.1", "debug": "^4.1.1",
"fs-extra-p": "^7.0.0", "fs-extra-p": "^7.0.1",
"is-ci": "^2.0.0", "is-ci": "^2.0.0",
"js-yaml": "^3.12.1", "js-yaml": "^3.12.1",
"source-map-support": "^0.5.10", "source-map-support": "^0.5.10",
@ -1364,12 +1371,6 @@
"integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==", "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==",
"dev": true "dev": true
}, },
"esprima": {
"version": "4.0.1",
"resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz",
"integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==",
"dev": true
},
"is-ci": { "is-ci": {
"version": "2.0.0", "version": "2.0.0",
"resolved": "https://registry.npmjs.org/is-ci/-/is-ci-2.0.0.tgz", "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-2.0.0.tgz",
@ -1379,16 +1380,6 @@
"ci-info": "^2.0.0" "ci-info": "^2.0.0"
} }
}, },
"js-yaml": {
"version": "3.12.1",
"resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.12.1.tgz",
"integrity": "sha512-um46hB9wNOKlwkHgiuyEVAybXBjwFUV0Z/RaHJblRd9DXltue9FTYvzCr9ErQrK9Adz5MU4gHWVaNUfdmrC8qA==",
"dev": true,
"requires": {
"argparse": "^1.0.7",
"esprima": "^4.0.0"
}
},
"supports-color": { "supports-color": {
"version": "5.5.0", "version": "5.5.0",
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
@ -1401,14 +1392,14 @@
} }
}, },
"builder-util-runtime": { "builder-util-runtime": {
"version": "8.1.1", "version": "8.2.0",
"resolved": "https://registry.npmjs.org/builder-util-runtime/-/builder-util-runtime-8.1.1.tgz", "resolved": "https://registry.npmjs.org/builder-util-runtime/-/builder-util-runtime-8.2.0.tgz",
"integrity": "sha512-+ieS4PMB33vVE2S3ZNWBEQJ1zKmAs/agrBdh7XadE1lKLjrH4aXYuOh9OOGdxqIRldhlhNBaF+yKMMEFOdNVig==", "integrity": "sha512-2Q3YrxANTrDs2NjSG5mbNGLPuUhPnSNYF9w5i4jWfHcNfQ3TgRrGXq4UfnkCiZVX8Axp4eAOSscaLLScKp/XLg==",
"dev": true, "dev": true,
"requires": { "requires": {
"bluebird-lst": "^1.0.6", "bluebird-lst": "^1.0.7",
"debug": "^4.1.1", "debug": "^4.1.1",
"fs-extra-p": "^7.0.0", "fs-extra-p": "^7.0.1",
"sax": "^1.2.4" "sax": "^1.2.4"
} }
}, },
@ -2501,27 +2492,21 @@
} }
}, },
"dmg-builder": { "dmg-builder": {
"version": "6.5.4", "version": "6.6.0",
"resolved": "https://registry.npmjs.org/dmg-builder/-/dmg-builder-6.5.4.tgz", "resolved": "https://registry.npmjs.org/dmg-builder/-/dmg-builder-6.6.0.tgz",
"integrity": "sha512-EaEkF8weXez3iAwgYffjcYfumauUh5x+BggMgn/IuihNIA5/WfzRAUR4wMq9aII2zwArlw+rIrX6ZHKbmtkQmA==", "integrity": "sha512-voodd3qdpdRiaciFZTfrFq/e82UPmUqSJq6R3Wc2Ql6XqXYLQcKo1h9rSZiivwls8PqE4Mk1IHTIOwmvJaq+MA==",
"dev": true, "dev": true,
"requires": { "requires": {
"app-builder-lib": "~20.38.5", "app-builder-lib": "~20.39.0",
"bluebird-lst": "^1.0.6", "bluebird-lst": "^1.0.7",
"builder-util": "~9.6.2", "builder-util": "~9.7.0",
"fs-extra-p": "^7.0.0", "fs-extra-p": "^7.0.1",
"iconv-lite": "^0.4.24", "iconv-lite": "^0.4.24",
"js-yaml": "^3.12.1", "js-yaml": "^3.12.1",
"parse-color": "^1.0.0", "parse-color": "^1.0.0",
"sanitize-filename": "^1.6.1" "sanitize-filename": "^1.6.1"
}, },
"dependencies": { "dependencies": {
"esprima": {
"version": "4.0.1",
"resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz",
"integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==",
"dev": true
},
"iconv-lite": { "iconv-lite": {
"version": "0.4.24", "version": "0.4.24",
"resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz",
@ -2530,16 +2515,6 @@
"requires": { "requires": {
"safer-buffer": ">= 2.1.2 < 3" "safer-buffer": ">= 2.1.2 < 3"
} }
},
"js-yaml": {
"version": "3.12.1",
"resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.12.1.tgz",
"integrity": "sha512-um46hB9wNOKlwkHgiuyEVAybXBjwFUV0Z/RaHJblRd9DXltue9FTYvzCr9ErQrK9Adz5MU4gHWVaNUfdmrC8qA==",
"dev": true,
"requires": {
"argparse": "^1.0.7",
"esprima": "^4.0.0"
}
} }
} }
}, },
@ -2720,26 +2695,32 @@
} }
}, },
"electron-builder": { "electron-builder": {
"version": "20.38.5", "version": "20.39.0",
"resolved": "https://registry.npmjs.org/electron-builder/-/electron-builder-20.38.5.tgz", "resolved": "https://registry.npmjs.org/electron-builder/-/electron-builder-20.39.0.tgz",
"integrity": "sha512-p88IDHhH2J4hA6KwRBJY+OfVZuFtFIShY3Uh/TwYAfbX0v1RhKZytuGdO8sty2zcWxDYX74xDBv+X9oN6qEIRQ==", "integrity": "sha512-50SNZ/G+iE9MpTwxzeHt1Cqg8jZKeFLuJ9wubR4e/8VIzAe0ERUmwAQw+77UrlwXZD/PKKoYblc0Sr08Vm4exg==",
"dev": true, "dev": true,
"requires": { "requires": {
"app-builder-lib": "20.38.5", "app-builder-lib": "20.39.0",
"bluebird-lst": "^1.0.6", "bluebird-lst": "^1.0.7",
"builder-util": "9.6.2", "builder-util": "9.7.0",
"builder-util-runtime": "8.1.1", "builder-util-runtime": "8.2.0",
"chalk": "^2.4.2", "chalk": "^2.4.2",
"dmg-builder": "6.5.4", "dmg-builder": "6.6.0",
"fs-extra-p": "^7.0.0", "fs-extra-p": "^7.0.1",
"is-ci": "^2.0.0", "is-ci": "^2.0.0",
"lazy-val": "^1.0.3", "lazy-val": "^1.0.4",
"read-config-file": "3.2.1", "read-config-file": "3.2.2",
"sanitize-filename": "^1.6.1", "sanitize-filename": "^1.6.1",
"update-notifier": "^2.5.0", "update-notifier": "^2.5.0",
"yargs": "^12.0.5" "yargs": "^13.2.1"
}, },
"dependencies": { "dependencies": {
"ansi-regex": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz",
"integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=",
"dev": true
},
"ansi-styles": { "ansi-styles": {
"version": "3.2.1", "version": "3.2.1",
"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
@ -2749,6 +2730,12 @@
"color-convert": "^1.9.0" "color-convert": "^1.9.0"
} }
}, },
"camelcase": {
"version": "5.2.0",
"resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.2.0.tgz",
"integrity": "sha512-IXFsBS2pC+X0j0N/GE7Dm7j3bsEBp+oTpb7F50dwEVX7rf3IgwO9XatnegTsDtniKCUtEJH4fSU6Asw7uoVLfQ==",
"dev": true
},
"chalk": { "chalk": {
"version": "2.4.2", "version": "2.4.2",
"resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
@ -2766,6 +2753,87 @@
"integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==", "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==",
"dev": true "dev": true
}, },
"cliui": {
"version": "4.1.0",
"resolved": "https://registry.npmjs.org/cliui/-/cliui-4.1.0.tgz",
"integrity": "sha512-4FG+RSG9DL7uEwRUZXZn3SS34DiDPfzP0VOiEwtUWlE+AR2EIg+hSyvrIgUUfhdgR/UkAeW2QHgeP+hWrXs7jQ==",
"dev": true,
"requires": {
"string-width": "^2.1.1",
"strip-ansi": "^4.0.0",
"wrap-ansi": "^2.0.0"
},
"dependencies": {
"string-width": {
"version": "2.1.1",
"resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz",
"integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==",
"dev": true,
"requires": {
"is-fullwidth-code-point": "^2.0.0",
"strip-ansi": "^4.0.0"
}
}
}
},
"cross-spawn": {
"version": "6.0.5",
"resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz",
"integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==",
"dev": true,
"requires": {
"nice-try": "^1.0.4",
"path-key": "^2.0.1",
"semver": "^5.5.0",
"shebang-command": "^1.2.0",
"which": "^1.2.9"
}
},
"execa": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz",
"integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==",
"dev": true,
"requires": {
"cross-spawn": "^6.0.0",
"get-stream": "^4.0.0",
"is-stream": "^1.1.0",
"npm-run-path": "^2.0.0",
"p-finally": "^1.0.0",
"signal-exit": "^3.0.0",
"strip-eof": "^1.0.0"
}
},
"find-up": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz",
"integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==",
"dev": true,
"requires": {
"locate-path": "^3.0.0"
}
},
"get-caller-file": {
"version": "2.0.5",
"resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz",
"integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==",
"dev": true
},
"get-stream": {
"version": "4.1.0",
"resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz",
"integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==",
"dev": true,
"requires": {
"pump": "^3.0.0"
}
},
"invert-kv": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-2.0.0.tgz",
"integrity": "sha512-wPVv/y/QQ/Uiirj/vh3oP+1Ww+AWehmi1g5fFWGPF6IpCBCDVrhgHRMvrLfdYcwDh3QJbGXDW4JAuzxElLSqKA==",
"dev": true
},
"is-ci": { "is-ci": {
"version": "2.0.0", "version": "2.0.0",
"resolved": "https://registry.npmjs.org/is-ci/-/is-ci-2.0.0.tgz", "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-2.0.0.tgz",
@ -2775,6 +2843,109 @@
"ci-info": "^2.0.0" "ci-info": "^2.0.0"
} }
}, },
"is-fullwidth-code-point": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz",
"integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=",
"dev": true
},
"lcid": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/lcid/-/lcid-2.0.0.tgz",
"integrity": "sha512-avPEb8P8EGnwXKClwsNUgryVjllcRqtMYa49NTsbQagYuT1DcXnl1915oxWjoyGrXR6zH/Y0Zc96xWsPcoDKeA==",
"dev": true,
"requires": {
"invert-kv": "^2.0.0"
}
},
"locate-path": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz",
"integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==",
"dev": true,
"requires": {
"p-locate": "^3.0.0",
"path-exists": "^3.0.0"
}
},
"os-locale": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/os-locale/-/os-locale-3.1.0.tgz",
"integrity": "sha512-Z8l3R4wYWM40/52Z+S265okfFj8Kt2cC2MKY+xNi3kFs+XGI7WXu/I309QQQYbRW4ijiZ+yxs9pqEhJh0DqW3Q==",
"dev": true,
"requires": {
"execa": "^1.0.0",
"lcid": "^2.0.0",
"mem": "^4.0.0"
}
},
"p-limit": {
"version": "2.2.0",
"resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.2.0.tgz",
"integrity": "sha512-pZbTJpoUsCzV48Mc9Nh51VbwO0X9cuPFE8gYwx9BTCt9SF8/b7Zljd2fVgOxhIF/HDTKgpVzs+GPhyKfjLLFRQ==",
"dev": true,
"requires": {
"p-try": "^2.0.0"
}
},
"p-locate": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz",
"integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==",
"dev": true,
"requires": {
"p-limit": "^2.0.0"
}
},
"p-try": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/p-try/-/p-try-2.0.0.tgz",
"integrity": "sha512-hMp0onDKIajHfIkdRk3P4CdCmErkYAxxDtP3Wx/4nZ3aGlau2VKh3mZpcuFkH27WQkL/3WBCPOktzA9ZOAnMQQ==",
"dev": true
},
"require-main-filename": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz",
"integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==",
"dev": true
},
"string-width": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz",
"integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==",
"dev": true,
"requires": {
"emoji-regex": "^7.0.1",
"is-fullwidth-code-point": "^2.0.0",
"strip-ansi": "^5.1.0"
},
"dependencies": {
"ansi-regex": {
"version": "4.1.0",
"resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz",
"integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==",
"dev": true
},
"strip-ansi": {
"version": "5.1.0",
"resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.1.0.tgz",
"integrity": "sha512-TjxrkPONqO2Z8QDCpeE2j6n0M6EwxzyDgzEeGp+FbdvaJAt//ClYi6W5my+3ROlC/hZX2KACUwDfK49Ka5eDvg==",
"dev": true,
"requires": {
"ansi-regex": "^4.1.0"
}
}
}
},
"strip-ansi": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz",
"integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=",
"dev": true,
"requires": {
"ansi-regex": "^3.0.0"
}
},
"supports-color": { "supports-color": {
"version": "5.5.0", "version": "5.5.0",
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
@ -2783,6 +2954,47 @@
"requires": { "requires": {
"has-flag": "^3.0.0" "has-flag": "^3.0.0"
} }
},
"which-module": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz",
"integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=",
"dev": true
},
"y18n": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.0.tgz",
"integrity": "sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==",
"dev": true
},
"yargs": {
"version": "13.2.2",
"resolved": "https://registry.npmjs.org/yargs/-/yargs-13.2.2.tgz",
"integrity": "sha512-WyEoxgyTD3w5XRpAQNYUB9ycVH/PQrToaTXdYXRdOXvEy1l19br+VJsc0vcO8PTGg5ro/l/GY7F/JMEBmI0BxA==",
"dev": true,
"requires": {
"cliui": "^4.0.0",
"find-up": "^3.0.0",
"get-caller-file": "^2.0.1",
"os-locale": "^3.1.0",
"require-directory": "^2.1.1",
"require-main-filename": "^2.0.0",
"set-blocking": "^2.0.0",
"string-width": "^3.0.0",
"which-module": "^2.0.0",
"y18n": "^4.0.0",
"yargs-parser": "^13.0.0"
}
},
"yargs-parser": {
"version": "13.0.0",
"resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.0.0.tgz",
"integrity": "sha512-w2LXjoL8oRdRQN+hOyppuXs+V/fVAYtpcrRxZuF7Kt/Oc+Jr2uAcVntaUTNT6w5ihoWfFDpNY8CPx1QskxZ/pw==",
"dev": true,
"requires": {
"camelcase": "^5.0.0",
"decamelize": "^1.2.0"
}
} }
} }
}, },
@ -3041,13 +3253,22 @@
"requires": { "requires": {
"ms": "2.0.0" "ms": "2.0.0"
} }
},
"isbinaryfile": {
"version": "3.0.3",
"resolved": "https://registry.npmjs.org/isbinaryfile/-/isbinaryfile-3.0.3.tgz",
"integrity": "sha512-8cJBL5tTd2OS0dM4jz07wQd5g0dCCqIhUxPIGtZfa5L6hWlvV5MHTITy/DBAsF+Oe2LS1X3krBUhNwaGUWpWxw==",
"dev": true,
"requires": {
"buffer-alloc": "^1.2.0"
}
} }
} }
}, },
"electron-packager": { "electron-packager": {
"version": "13.1.0", "version": "13.1.1",
"resolved": "https://registry.npmjs.org/electron-packager/-/electron-packager-13.1.0.tgz", "resolved": "https://registry.npmjs.org/electron-packager/-/electron-packager-13.1.1.tgz",
"integrity": "sha512-XHoDqgG90NGBfgUJ3NcOmELAuvHucOIYzi7AhZKIC8FivRR45PDs0pXSf53OqTXXOkdL/1xSveogvJLjKJwkAQ==", "integrity": "sha512-3Drgcw8OEOP3Psw/PprloAFJSkSUSQgjUq3AmWffJGB3Kj5WXmZl6A3GOUs8aT7bP/8GWg4oYqSiCSnA5PQkdQ==",
"dev": true, "dev": true,
"requires": { "requires": {
"asar": "^1.0.0", "asar": "^1.0.0",
@ -3070,9 +3291,9 @@
}, },
"dependencies": { "dependencies": {
"camelcase": { "camelcase": {
"version": "5.0.0", "version": "5.2.0",
"resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.0.0.tgz", "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.2.0.tgz",
"integrity": "sha512-faqwZqnWxbxn+F1d399ygeamQNy3lPp/H9H6rNrqYh4FSVCtcY+3cub1MxA8o9mDd55mM8Aghuu/kuyYA6VTsA==", "integrity": "sha512-IXFsBS2pC+X0j0N/GE7Dm7j3bsEBp+oTpb7F50dwEVX7rf3IgwO9XatnegTsDtniKCUtEJH4fSU6Asw7uoVLfQ==",
"dev": true "dev": true
}, },
"pify": { "pify": {
@ -3094,17 +3315,17 @@
} }
}, },
"electron-publish": { "electron-publish": {
"version": "20.38.5", "version": "20.39.0",
"resolved": "https://registry.npmjs.org/electron-publish/-/electron-publish-20.38.5.tgz", "resolved": "https://registry.npmjs.org/electron-publish/-/electron-publish-20.39.0.tgz",
"integrity": "sha512-EhdPm6t0nKDfa0r3KjV1kSFcz03VrzgJRv7v5nHkkpQZB6OSmDNlHq7k66NBwQhPK3i4CK+uvehljZAP28vbCA==", "integrity": "sha512-PWrGUru994CSmtsA56GnjyLB3EnIS3zyEmrW0hDXtwuctZLGMnrxjK/7WEORYkgTQ/GufD5b/8T05Q2Kr42nqQ==",
"dev": true, "dev": true,
"requires": { "requires": {
"bluebird-lst": "^1.0.6", "bluebird-lst": "^1.0.7",
"builder-util": "~9.6.2", "builder-util": "~9.7.0",
"builder-util-runtime": "^8.1.1", "builder-util-runtime": "^8.2.0",
"chalk": "^2.4.2", "chalk": "^2.4.2",
"fs-extra-p": "^7.0.0", "fs-extra-p": "^7.0.1",
"lazy-val": "^1.0.3", "lazy-val": "^1.0.4",
"mime": "^2.4.0" "mime": "^2.4.0"
}, },
"dependencies": { "dependencies": {
@ -3218,6 +3439,12 @@
"shimmer": "^1.2.0" "shimmer": "^1.2.0"
} }
}, },
"emoji-regex": {
"version": "7.0.3",
"resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz",
"integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==",
"dev": true
},
"encodeurl": { "encodeurl": {
"version": "1.0.2", "version": "1.0.2",
"resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz",
@ -4462,9 +4689,9 @@
} }
}, },
"file-type": { "file-type": {
"version": "10.8.0", "version": "10.9.0",
"resolved": "https://registry.npmjs.org/file-type/-/file-type-10.8.0.tgz", "resolved": "https://registry.npmjs.org/file-type/-/file-type-10.9.0.tgz",
"integrity": "sha512-287YScp3cpRWzhM+/E+A85O4FJi4dHus0eA6eBUzkRc08d/JAwqeczU/nwLstRuzzq/S7TqvQg9mhv7xVsdINQ==" "integrity": "sha512-9C5qtGR/fNibHC5gzuMmmgnjH3QDDLKMa8lYe9CiZVmAnI4aUaoMh40QyUPzzs0RYo837SOBKh7TYwle4G8E4w=="
}, },
"filename-regex": { "filename-regex": {
"version": "2.0.1", "version": "2.0.1",
@ -4798,13 +5025,13 @@
} }
}, },
"fs-extra-p": { "fs-extra-p": {
"version": "7.0.0", "version": "7.0.1",
"resolved": "https://registry.npmjs.org/fs-extra-p/-/fs-extra-p-7.0.0.tgz", "resolved": "https://registry.npmjs.org/fs-extra-p/-/fs-extra-p-7.0.1.tgz",
"integrity": "sha512-5tg5jBOd0xIXjwj4PDnafOXL5TyPVzjxLby4DPKev53wurEXp7IsojBaD4Lj5M5w7jxw0pbkEU0fFEPmcKoMnA==", "integrity": "sha512-yhd2OV0HnHt2oitlp+X9hl2ReX4X/7kQeL7/72qzPHTZj5eUPGzAKOvEglU02Fa1OeG2rSy/aKB4WGVaLiF8tw==",
"dev": true, "dev": true,
"requires": { "requires": {
"bluebird-lst": "^1.0.6", "bluebird-lst": "^1.0.7",
"fs-extra": "^7.0.0" "fs-extra": "^7.0.1"
} }
}, },
"fs-minipass": { "fs-minipass": {
@ -5550,9 +5777,9 @@
"integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==" "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw=="
}, },
"helmet": { "helmet": {
"version": "3.15.1", "version": "3.16.0",
"resolved": "https://registry.npmjs.org/helmet/-/helmet-3.15.1.tgz", "resolved": "https://registry.npmjs.org/helmet/-/helmet-3.16.0.tgz",
"integrity": "sha512-hgoNe/sjKlKNvJ3g9Gz149H14BjMMWOCmW/DTXl7IfyKGtIK37GePwZrHNfr4aPXdKVyXcTj26RgRFbPKDy9lw==", "integrity": "sha512-rsTKRogc5OYGlvSHuq5QsmOsOzF6uDoMqpfh+Np8r23+QxDq+SUx90Rf8HyIKQVl7H6NswZEwfcykinbAeZ6UQ==",
"requires": { "requires": {
"depd": "2.0.0", "depd": "2.0.0",
"dns-prefetch-control": "0.1.0", "dns-prefetch-control": "0.1.0",
@ -5564,8 +5791,8 @@
"helmet-csp": "2.7.1", "helmet-csp": "2.7.1",
"hide-powered-by": "1.0.0", "hide-powered-by": "1.0.0",
"hpkp": "2.0.0", "hpkp": "2.0.0",
"hsts": "2.1.0", "hsts": "2.2.0",
"ienoopen": "1.0.0", "ienoopen": "1.1.0",
"nocache": "2.0.0", "nocache": "2.0.0",
"referrer-policy": "1.1.0", "referrer-policy": "1.1.0",
"x-xss-protection": "1.1.0" "x-xss-protection": "1.1.0"
@ -5616,9 +5843,19 @@
"integrity": "sha1-EOFCJk52IVpdMMROxD3mTe5tFnI=" "integrity": "sha1-EOFCJk52IVpdMMROxD3mTe5tFnI="
}, },
"hsts": { "hsts": {
"version": "2.1.0", "version": "2.2.0",
"resolved": "https://registry.npmjs.org/hsts/-/hsts-2.1.0.tgz", "resolved": "https://registry.npmjs.org/hsts/-/hsts-2.2.0.tgz",
"integrity": "sha512-zXhh/DqgrTXJ7erTN6Fh5k/xjMhDGXCqdYN3wvxUvGUQvnxcFfUd8E+6vLg/nk3ss1TYMb+DhRl25fYABioTvA==" "integrity": "sha512-ToaTnQ2TbJkochoVcdXYm4HOCliNozlviNsg+X2XQLQvZNI/kCHR9rZxVYpJB3UPcHz80PgxRyWQ7PdU1r+VBQ==",
"requires": {
"depd": "2.0.0"
},
"dependencies": {
"depd": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz",
"integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw=="
}
}
}, },
"html": { "html": {
"version": "1.0.0", "version": "1.0.0",
@ -5717,9 +5954,9 @@
"integrity": "sha512-GguP+DRY+pJ3soyIiGPTvdiVXjZ+DbXOxGpXn3eMvNW4x4irjqXm4wHKscC+TfxSJ0yw/S1F24tqdMNsMZTiLA==" "integrity": "sha512-GguP+DRY+pJ3soyIiGPTvdiVXjZ+DbXOxGpXn3eMvNW4x4irjqXm4wHKscC+TfxSJ0yw/S1F24tqdMNsMZTiLA=="
}, },
"ienoopen": { "ienoopen": {
"version": "1.0.0", "version": "1.1.0",
"resolved": "https://registry.npmjs.org/ienoopen/-/ienoopen-1.0.0.tgz", "resolved": "https://registry.npmjs.org/ienoopen/-/ienoopen-1.1.0.tgz",
"integrity": "sha1-NGpCj0dKrI9QzzeE6i0PFvYr2ms=" "integrity": "sha512-MFs36e/ca6ohEKtinTJ5VvAJ6oDRAYFdYXweUnGY9L9vcoqFOU4n2ZhmJ0C4z/cwGZ3YIQRSB3XZ1+ghZkY5NQ=="
}, },
"ignore": { "ignore": {
"version": "3.3.10", "version": "3.3.10",
@ -5735,18 +5972,11 @@
} }
}, },
"image-type": { "image-type": {
"version": "3.0.0", "version": "4.0.0",
"resolved": "https://registry.npmjs.org/image-type/-/image-type-3.0.0.tgz", "resolved": "https://registry.npmjs.org/image-type/-/image-type-4.0.0.tgz",
"integrity": "sha1-FQKvMTX5BuEiyHfDHpSve3qRRsU=", "integrity": "sha512-V1NCIexmmA9dBoO07NOFXe2nTU06siLuuaGD1zLRbLfTYmGMLPShPakPf3ts6J0ctdpLpJRKFcJWKjuacwZzWA==",
"requires": { "requires": {
"file-type": "^4.1.0" "file-type": "^10.9.0"
},
"dependencies": {
"file-type": {
"version": "4.4.0",
"resolved": "https://registry.npmjs.org/file-type/-/file-type-4.4.0.tgz",
"integrity": "sha1-G2AOX8ofvcboDApwxxyNul95BsU="
}
} }
}, },
"imagemin": { "imagemin": {
@ -6471,13 +6701,10 @@
"integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE="
}, },
"isbinaryfile": { "isbinaryfile": {
"version": "3.0.3", "version": "4.0.0",
"resolved": "https://registry.npmjs.org/isbinaryfile/-/isbinaryfile-3.0.3.tgz", "resolved": "https://registry.npmjs.org/isbinaryfile/-/isbinaryfile-4.0.0.tgz",
"integrity": "sha512-8cJBL5tTd2OS0dM4jz07wQd5g0dCCqIhUxPIGtZfa5L6hWlvV5MHTITy/DBAsF+Oe2LS1X3krBUhNwaGUWpWxw==", "integrity": "sha512-RBtmso6l2mCaEsUvXngMTIjg3oheXo0MgYzzfT6sk44RYggPnm9fT+cQJAmzRnJIxPHXg9FZglqDJGW28dvcqA==",
"dev": true, "dev": true
"requires": {
"buffer-alloc": "^1.2.0"
}
}, },
"isexe": { "isexe": {
"version": "2.0.0", "version": "2.0.0",
@ -6709,9 +6936,9 @@
"integrity": "sha1-va6+rTD42CQDnODOFJ1Nqge6H6w=" "integrity": "sha1-va6+rTD42CQDnODOFJ1Nqge6H6w="
}, },
"lazy-val": { "lazy-val": {
"version": "1.0.3", "version": "1.0.4",
"resolved": "https://registry.npmjs.org/lazy-val/-/lazy-val-1.0.3.tgz", "resolved": "https://registry.npmjs.org/lazy-val/-/lazy-val-1.0.4.tgz",
"integrity": "sha512-pjCf3BYk+uv3ZcPzEVM0BFvO9Uw58TmlrU0oG5tTrr9Kcid3+kdKxapH8CjdYmVa2nO5wOoZn2rdvZx2PKj/xg==", "integrity": "sha512-u93kb2fPbIrfzBuLjZE+w+fJbUUMhNDXxNmMfaqNgpfQf1CO5ZSe2LfsnBqVAk7i/2NF48OSoRj+Xe2VT+lE8Q==",
"dev": true "dev": true
}, },
"lazystream": { "lazystream": {
@ -9749,26 +9976,26 @@
} }
}, },
"read-config-file": { "read-config-file": {
"version": "3.2.1", "version": "3.2.2",
"resolved": "https://registry.npmjs.org/read-config-file/-/read-config-file-3.2.1.tgz", "resolved": "https://registry.npmjs.org/read-config-file/-/read-config-file-3.2.2.tgz",
"integrity": "sha512-yW4hZZXdNN+Paij5JVAiTv1lUsAN5QRBU5NqotQqwYdVkUczSmDzm66VLu0eojiZt2zFeYptTFDAYlalDGuHdA==", "integrity": "sha512-PuFpMgZF01VB0ydH1dfitAxCP/fh+qnfbA9cYNIPoxPbz0SMngsrafCtaHDWfER7MwlDz4fmrNBhPkakxxFpTg==",
"dev": true, "dev": true,
"requires": { "requires": {
"ajv": "^6.7.0", "ajv": "^6.9.2",
"ajv-keywords": "^3.2.0", "ajv-keywords": "^3.4.0",
"bluebird-lst": "^1.0.6", "bluebird-lst": "^1.0.7",
"dotenv": "^6.2.0", "dotenv": "^6.2.0",
"dotenv-expand": "^4.2.0", "dotenv-expand": "^4.2.0",
"fs-extra-p": "^7.0.0", "fs-extra-p": "^7.0.1",
"js-yaml": "^3.12.1", "js-yaml": "^3.12.1",
"json5": "^2.1.0", "json5": "^2.1.0",
"lazy-val": "^1.0.3" "lazy-val": "^1.0.4"
}, },
"dependencies": { "dependencies": {
"ajv": { "ajv": {
"version": "6.7.0", "version": "6.10.0",
"resolved": "https://registry.npmjs.org/ajv/-/ajv-6.7.0.tgz", "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.10.0.tgz",
"integrity": "sha512-RZXPviBTtfmtka9n9sy1N5M5b82CbxWIR6HIis4s3WQTXDJamc/0gpCWNGz6EWdWp4DOfjzJfhz/AS9zVPjjWg==", "integrity": "sha512-nffhOpkymDECQyR0mnsUtoCE8RlX38G0rYP+wgLWFyZuUyuuojSSvi/+euOiQBIn63whYwYVIIH1TvE3tu4OEg==",
"dev": true, "dev": true,
"requires": { "requires": {
"fast-deep-equal": "^2.0.1", "fast-deep-equal": "^2.0.1",
@ -9777,28 +10004,12 @@
"uri-js": "^4.2.2" "uri-js": "^4.2.2"
} }
}, },
"esprima": {
"version": "4.0.1",
"resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz",
"integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==",
"dev": true
},
"fast-deep-equal": { "fast-deep-equal": {
"version": "2.0.1", "version": "2.0.1",
"resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz", "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz",
"integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=", "integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=",
"dev": true "dev": true
}, },
"js-yaml": {
"version": "3.12.1",
"resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.12.1.tgz",
"integrity": "sha512-um46hB9wNOKlwkHgiuyEVAybXBjwFUV0Z/RaHJblRd9DXltue9FTYvzCr9ErQrK9Adz5MU4gHWVaNUfdmrC8qA==",
"dev": true,
"requires": {
"argparse": "^1.0.7",
"esprima": "^4.0.0"
}
},
"json-schema-traverse": { "json-schema-traverse": {
"version": "0.4.1", "version": "0.4.1",
"resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
@ -10668,9 +10879,9 @@
} }
}, },
"source-map-support": { "source-map-support": {
"version": "0.5.10", "version": "0.5.11",
"resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.10.tgz", "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.11.tgz",
"integrity": "sha512-YfQ3tQFTK/yzlGJuX8pTwa4tifQj4QS2Mj7UegOu8jAz59MqIiMGPXxQhVQiIMNzayuUSF/jEuVnfFF5JqybmQ==", "integrity": "sha512-//sajEx/fGL3iw6fltKMdPvy8kL3kJ2O3iuYlRoT3k9Kb4BjOoZ+BZzaNHeuaruSt+Kf3Zk9tnfAQg9/AJqUVQ==",
"dev": true, "dev": true,
"requires": { "requires": {
"buffer-from": "^1.0.0", "buffer-from": "^1.0.0",
@ -10977,11 +11188,6 @@
"escape-string-regexp": "^1.0.2" "escape-string-regexp": "^1.0.2"
} }
}, },
"striptags": {
"version": "3.1.1",
"resolved": "https://registry.npmjs.org/striptags/-/striptags-3.1.1.tgz",
"integrity": "sha1-yMPn/db7S7OjKjt1LltePjgJPr0="
},
"sum-up": { "sum-up": {
"version": "1.0.3", "version": "1.0.3",
"resolved": "https://registry.npmjs.org/sum-up/-/sum-up-1.0.3.tgz", "resolved": "https://registry.npmjs.org/sum-up/-/sum-up-1.0.3.tgz",
@ -12142,9 +12348,9 @@
} }
}, },
"ws": { "ws": {
"version": "6.1.4", "version": "6.2.0",
"resolved": "https://registry.npmjs.org/ws/-/ws-6.1.4.tgz", "resolved": "https://registry.npmjs.org/ws/-/ws-6.2.0.tgz",
"integrity": "sha512-eqZfL+NE/YQc1/ZynhojeV8q+H050oR8AZ2uIev7RU10svA9ZnJUddHcOUZTJLinZ9yEfdA2kSATS2qZK5fhJA==", "integrity": "sha512-deZYUNlt2O4buFCa3t5bKLf8A7FPP/TVjwOeVNpw818Ma5nk4MLXls2eoEGS39o8119QIYxTrTDoPQ5B/gTD6w==",
"requires": { "requires": {
"async-limiter": "~1.0.0" "async-limiter": "~1.0.0"
} }

View File

@ -36,13 +36,13 @@
"electron-window-state": "^5.0.3", "electron-window-state": "^5.0.3",
"express": "4.16.4", "express": "4.16.4",
"express-session": "1.15.6", "express-session": "1.15.6",
"file-type": "10.8.0", "file-type": "10.9.0",
"fs-extra": "7.0.1", "fs-extra": "7.0.1",
"get-port": "4.2.0", "get-port": "4.2.0",
"helmet": "3.15.1", "helmet": "3.16.0",
"html": "1.0.0", "html": "1.0.0",
"html2plaintext": "^2.1.2", "html2plaintext": "^2.1.2",
"image-type": "3.0.0", "image-type": "4.0.0",
"imagemin": "6.1.0", "imagemin": "6.1.0",
"imagemin-giflossy": "5.1.10", "imagemin-giflossy": "5.1.10",
"imagemin-mozjpeg": "8.0.0", "imagemin-mozjpeg": "8.0.0",
@ -67,16 +67,16 @@
"tar-stream": "2.0.1", "tar-stream": "2.0.1",
"turndown": "5.0.3", "turndown": "5.0.3",
"unescape": "1.0.1", "unescape": "1.0.1",
"ws": "6.1.4", "ws": "6.2.0",
"xml2js": "0.4.19" "xml2js": "0.4.19"
}, },
"devDependencies": { "devDependencies": {
"devtron": "1.4.0", "devtron": "1.4.0",
"electron": "4.0.3", "electron": "4.0.3",
"electron-builder": "20.38.5", "electron-builder": "20.39.0",
"electron-compile": "6.4.4", "electron-compile": "6.4.4",
"electron-installer-debian": "^1.1.1", "electron-installer-debian": "^1.1.1",
"electron-packager": "13.1.0", "electron-packager": "13.1.1",
"electron-rebuild": "1.8.4", "electron-rebuild": "1.8.4",
"lorem-ipsum": "1.0.6", "lorem-ipsum": "1.0.6",
"tape": "4.10.1", "tape": "4.10.1",

View File

@ -24,7 +24,7 @@ class ApiToken extends Entity {
} }
if (!this.utcDateCreated) { if (!this.utcDateCreated) {
this.utcDateCreated = dateUtils.nowDate(); this.utcDateCreated = dateUtils.utcNowDateTime();
} }
super.beforeSaving(); super.beforeSaving();

View File

@ -96,13 +96,13 @@ class Attribute extends Entity {
} }
if (!this.utcDateCreated) { if (!this.utcDateCreated) {
this.utcDateCreated = dateUtils.nowDate(); this.utcDateCreated = dateUtils.utcNowDateTime();
} }
super.beforeSaving(); super.beforeSaving();
if (this.isChanged) { if (this.isChanged) {
this.utcDateModified = dateUtils.nowDate(); this.utcDateModified = dateUtils.utcNowDateTime();
} }
} }

View File

@ -50,13 +50,13 @@ class Branch extends Entity {
} }
if (!this.utcDateCreated) { if (!this.utcDateCreated) {
this.utcDateCreated = dateUtils.nowDate(); this.utcDateCreated = dateUtils.utcNowDateTime();
} }
super.beforeSaving(); super.beforeSaving();
if (this.isChanged) { if (this.isChanged) {
this.utcDateModified = dateUtils.nowDate(); this.utcDateModified = dateUtils.utcNowDateTime();
} }
} }

View File

@ -37,13 +37,13 @@ class Link extends Entity {
} }
if (!this.utcDateCreated) { if (!this.utcDateCreated) {
this.utcDateCreated = dateUtils.nowDate(); this.utcDateCreated = dateUtils.utcNowDateTime();
} }
super.beforeSaving(); super.beforeSaving();
if (this.isChanged) { if (this.isChanged) {
this.utcDateModified = dateUtils.nowDate(); this.utcDateModified = dateUtils.utcNowDateTime();
} }
} }
} }

View File

@ -25,6 +25,8 @@ const STRING_MIME_TYPES = ["application/x-javascript"];
* @property {string} title - note title * @property {string} title - note title
* @property {boolean} isProtected - true if note is protected * @property {boolean} isProtected - true if note is protected
* @property {boolean} isDeleted - true if note is deleted * @property {boolean} isDeleted - true if note is deleted
* @property {string} dateCreated - local date time (with offset)
* @property {string} dateModified - local date time (with offset)
* @property {string} utcDateCreated * @property {string} utcDateCreated
* @property {string} utcDateModified * @property {string} utcDateModified
* *
@ -660,14 +662,19 @@ class Note extends Entity {
this.isDeleted = false; this.isDeleted = false;
} }
if (!this.dateCreated) {
this.dateCreated = dateUtils.localNowDateTime();
}
if (!this.utcDateCreated) { if (!this.utcDateCreated) {
this.utcDateCreated = dateUtils.nowDate(); this.utcDateCreated = dateUtils.utcNowDateTime();
} }
super.beforeSaving(); super.beforeSaving();
if (this.isChanged) { if (this.isChanged) {
this.utcDateModified = dateUtils.nowDate(); this.dateModified = dateUtils.localNowDateTime();
this.utcDateModified = dateUtils.utcNowDateTime();
} }
} }

View File

@ -67,13 +67,13 @@ class NoteContent extends Entity {
beforeSaving() { beforeSaving() {
if (!this.utcDateCreated) { if (!this.utcDateCreated) {
this.utcDateCreated = dateUtils.nowDate(); this.utcDateCreated = dateUtils.utcNowDateTime();
} }
super.beforeSaving(); super.beforeSaving();
if (this.isChanged) { if (this.isChanged) {
this.utcDateModified = dateUtils.nowDate(); this.utcDateModified = dateUtils.utcNowDateTime();
} }
} }

View File

@ -14,6 +14,8 @@ const repository = require('../services/repository');
* @param {string} title * @param {string} title
* @param {string} content * @param {string} content
* @param {string} isProtected * @param {string} isProtected
* @param {string} dateModifiedFrom
* @param {string} dateModifiedTo
* @param {string} utcDateModifiedFrom * @param {string} utcDateModifiedFrom
* @param {string} utcDateModifiedTo * @param {string} utcDateModifiedTo
* *
@ -22,7 +24,7 @@ const repository = require('../services/repository');
class NoteRevision extends Entity { class NoteRevision extends Entity {
static get entityName() { return "note_revisions"; } static get entityName() { return "note_revisions"; }
static get primaryKeyName() { return "noteRevisionId"; } static get primaryKeyName() { return "noteRevisionId"; }
static get hashedProperties() { return ["noteRevisionId", "noteId", "title", "content", "isProtected", "utcDateModifiedFrom", "utcDateModifiedTo"]; } static get hashedProperties() { return ["noteRevisionId", "noteId", "title", "content", "isProtected", "dateModifiedFrom", "dateModifiedTo", "utcDateModifiedFrom", "utcDateModifiedTo"]; }
constructor(row) { constructor(row) {
super(row); super(row);

View File

@ -29,7 +29,7 @@ class Option extends Entity {
super.beforeSaving(); super.beforeSaving();
if (this.isChanged) { if (this.isChanged) {
this.utcDateModified = dateUtils.nowDate(); this.utcDateModified = dateUtils.utcNowDateTime();
} }
} }
} }

View File

@ -24,7 +24,7 @@ class RecentNote extends Entity {
} }
if (!this.utcDateCreated) { if (!this.utcDateCreated) {
this.utcDateCreated = dateUtils.nowDate(); this.utcDateCreated = dateUtils.utcNowDateTime();
} }
super.beforeSaving(); super.beforeSaving();

1
src/public/libraries/dayjs.min.js vendored Normal file

File diff suppressed because one or more lines are too long

View File

@ -35,8 +35,8 @@ function BackendScriptApi(currentNote, apiParams) {
this.utils = { this.utils = {
unescapeHtml: utils.unescapeHtml, unescapeHtml: utils.unescapeHtml,
isoDateTimeStr: dateUtils.dateStr, isoDateTimeStr: dateUtils.utcDateStr,
isoDateStr: date => dateUtils.dateStr(date).substr(0, 10) isoDateStr: date => dateUtils.utcDateStr(date).substr(0, 10)
}; };
/** /**

View File

@ -24,7 +24,7 @@ async function periodBackup(optionName, fileName, periodInSeconds) {
if (now.getTime() - lastDailyBackupDate.getTime() > periodInSeconds * 1000) { if (now.getTime() - lastDailyBackupDate.getTime() > periodInSeconds * 1000) {
await backupNow(fileName); await backupNow(fileName);
await optionService.setOption(optionName, dateUtils.nowDate()); await optionService.setOption(optionName, dateUtils.utcNowDateTime());
} }
} }

View File

@ -144,7 +144,7 @@ async function getWeekNote(dateStr, options = {}) {
const dateObj = getStartOfTheWeek(dateUtils.parseLocalDate(dateStr), startOfTheWeek); const dateObj = getStartOfTheWeek(dateUtils.parseLocalDate(dateStr), startOfTheWeek);
dateStr = dateUtils.dateStr(dateObj); dateStr = dateUtils.utcDateStr(dateObj);
return getDateNote(dateStr); return getDateNote(dateStr);
} }

View File

@ -1,8 +1,14 @@
function nowDate() { const dayjs = require('dayjs');
return dateStr(new Date());
function utcNowDateTime() {
return utcDateStr(new Date());
} }
function nowLocalDate() { function localNowDateTime() {
return dayjs().format('YYYY-MM-DD HH:mm:ss.SSSZZ')
}
function localNowDate() {
const date = new Date(); const date = new Date();
return date.getFullYear() + "-" + pad(date.getMonth() + 1) + "-" + pad(date.getDate()); return date.getFullYear() + "-" + pad(date.getMonth() + 1) + "-" + pad(date.getDate());
@ -12,8 +18,8 @@ function pad(num) {
return num <= 9 ? `0${num}` : `${num}`; return num <= 9 ? `0${num}` : `${num}`;
} }
function dateStr(date) { function utcDateStr(date) {
return date.toISOString(); return date.toISOString().replace('T', ' ');
} }
/** /**
@ -47,9 +53,10 @@ function getDateTimeForFile() {
} }
module.exports = { module.exports = {
nowDate, utcNowDateTime,
nowLocalDate, localNowDateTime,
dateStr, localNowDate,
utcDateStr,
parseDate, parseDate,
parseDateTime, parseDateTime,
parseLocalDate, parseLocalDate,

View File

@ -12,7 +12,7 @@ async function addNoteEvent(noteId, comment) {
eventId: utils.newEntityId(), eventId: utils.newEntityId(),
noteId : noteId, noteId : noteId,
comment: comment, comment: comment,
utcDateCreated: dateUtils.nowDate() utcDateCreated: dateUtils.utcNowDateTime()
}); });
log.info("Event log for " + noteId + ": " + comment); log.info("Event log for " + noteId + ": " + comment);

View File

@ -64,7 +64,8 @@ async function migrate() {
throw new Error("Unknown migration type " + mig.type); throw new Error("Unknown migration type " + mig.type);
} }
await optionService.setOption("dbVersion", mig.dbVersion); // not using repository because of changed utcDateModified column in migration 129
await sql.execute(`UPDATE options SET value = ? WHERE name = ?`, [mig.dbVersion, "dbVersion"]);
}); });
log.info("Migration to version " + mig.dbVersion + " has been successful."); log.info("Migration to version " + mig.dbVersion + " has been successful.");

View File

@ -299,7 +299,7 @@ async function saveNoteRevision(note) {
const now = new Date(); const now = new Date();
const noteRevisionSnapshotTimeInterval = parseInt(await optionService.getOption('noteRevisionSnapshotTimeInterval')); const noteRevisionSnapshotTimeInterval = parseInt(await optionService.getOption('noteRevisionSnapshotTimeInterval'));
const revisionCutoff = dateUtils.dateStr(new Date(now.getTime() - noteRevisionSnapshotTimeInterval * 1000)); const revisionCutoff = dateUtils.utcDateStr(new Date(now.getTime() - noteRevisionSnapshotTimeInterval * 1000));
const existingNoteRevisionId = await sql.getValue( const existingNoteRevisionId = await sql.getValue(
"SELECT noteRevisionId FROM note_revisions WHERE noteId = ? AND utcDateModifiedTo >= ?", [note.noteId, revisionCutoff]); "SELECT noteRevisionId FROM note_revisions WHERE noteId = ? AND utcDateModifiedTo >= ?", [note.noteId, revisionCutoff]);
@ -315,8 +315,10 @@ async function saveNoteRevision(note) {
type: note.type, type: note.type,
mime: note.mime, mime: note.mime,
isProtected: false, // will be fixed in the protectNoteRevisions() call isProtected: false, // will be fixed in the protectNoteRevisions() call
dateModifiedFrom: note.dateModified,
dateModifiedTo: dateUtils.localNowDateTime(),
utcDateModifiedFrom: note.utcDateModified, utcDateModifiedFrom: note.utcDateModified,
utcDateModifiedTo: dateUtils.nowDate() utcDateModifiedTo: dateUtils.utcNowDateTime()
}).save(); }).save();
} }
} }
@ -405,9 +407,9 @@ async function cleanupDeletedNotes() {
// it's better to not use repository for this because it will complain about saving protected notes // it's better to not use repository for this because it will complain about saving protected notes
// out of protected session // out of protected session
await sql.execute("UPDATE note_contents SET content = NULL WHERE content IS NOT NULL AND noteId IN (SELECT noteId FROM notes WHERE isDeleted = 1 AND notes.utcDateModified <= ?)", [dateUtils.dateStr(cutoffDate)]); await sql.execute("UPDATE note_contents SET content = NULL WHERE content IS NOT NULL AND noteId IN (SELECT noteId FROM notes WHERE isDeleted = 1 AND notes.utcDateModified <= ?)", [dateUtils.utcDateStr(cutoffDate)]);
await sql.execute("UPDATE note_revisions SET content = NULL WHERE note_revisions.content IS NOT NULL AND noteId IN (SELECT noteId FROM notes WHERE isDeleted = 1 AND notes.utcDateModified <= ?)", [dateUtils.dateStr(cutoffDate)]); await sql.execute("UPDATE note_revisions SET content = NULL WHERE note_revisions.content IS NOT NULL AND noteId IN (SELECT noteId FROM notes WHERE isDeleted = 1 AND notes.utcDateModified <= ?)", [dateUtils.utcDateStr(cutoffDate)]);
} }
sqlInit.dbReady.then(() => { sqlInit.dbReady.then(() => {

View File

@ -31,9 +31,9 @@ async function initSyncedOptions(username, password) {
async function initNotSyncedOptions(initialized, startNotePath = 'root', syncServerHost = '', syncProxy = '') { async function initNotSyncedOptions(initialized, startNotePath = 'root', syncServerHost = '', syncProxy = '') {
await optionService.createOption('startNotePath', startNotePath, false); await optionService.createOption('startNotePath', startNotePath, false);
await optionService.createOption('hoistedNoteId', 'root', false); await optionService.createOption('hoistedNoteId', 'root', false);
await optionService.createOption('lastDailyBackupDate', dateUtils.nowDate(), false); await optionService.createOption('lastDailyBackupDate', dateUtils.utcNowDateTime(), false);
await optionService.createOption('lastWeeklyBackupDate', dateUtils.nowDate(), false); await optionService.createOption('lastWeeklyBackupDate', dateUtils.utcNowDateTime(), false);
await optionService.createOption('lastMonthlyBackupDate', dateUtils.nowDate(), false); await optionService.createOption('lastMonthlyBackupDate', dateUtils.utcNowDateTime(), false);
await optionService.createOption('dbVersion', appInfo.dbVersion, false); await optionService.createOption('dbVersion', appInfo.dbVersion, false);
await optionService.createOption('lastSyncedPull', 0, false); await optionService.createOption('lastSyncedPull', 0, false);

View File

@ -8,7 +8,7 @@ const cls = require('./cls');
async function saveSourceId(sourceId) { async function saveSourceId(sourceId) {
await sql.insert("source_ids", { await sql.insert("source_ids", {
sourceId: sourceId, sourceId: sourceId,
utcDateCreated: dateUtils.nowDate() utcDateCreated: dateUtils.utcNowDateTime()
}); });
await refreshSourceIds(); await refreshSourceIds();

View File

@ -79,7 +79,7 @@ async function login() {
} }
async function doLogin() { async function doLogin() {
const timestamp = dateUtils.nowDate(); const timestamp = dateUtils.utcNowDateTime();
const documentSecret = await optionService.getOption('documentSecret'); const documentSecret = await optionService.getOption('documentSecret');
const hash = utils.hmac(documentSecret, timestamp); const hash = utils.hmac(documentSecret, timestamp);

View File

@ -48,7 +48,7 @@ async function addEntitySync(entityName, entityId, sourceId) {
await sql.replace("sync", { await sql.replace("sync", {
entityName: entityName, entityName: entityName,
entityId: entityId, entityId: entityId,
utcSyncDate: dateUtils.nowDate(), utcSyncDate: dateUtils.utcNowDateTime(),
sourceId: sourceId || cls.getSourceId() || sourceIdService.getCurrentSourceId() sourceId: sourceId || cls.getSourceId() || sourceIdService.getCurrentSourceId()
}); });
} }
@ -78,7 +78,7 @@ async function fillSyncRows(entityName, entityKey, condition = '') {
entityName: entityName, entityName: entityName,
entityId: entityId, entityId: entityId,
sourceId: "SYNC_FILL", sourceId: "SYNC_FILL",
utcSyncDate: dateUtils.nowDate() utcSyncDate: dateUtils.utcNowDateTime()
}); });
} }
} }

View File

@ -263,6 +263,8 @@
<script src="libraries/autocomplete.jquery.min.js"></script> <script src="libraries/autocomplete.jquery.min.js"></script>
<script src="libraries/dayjs.min.js"></script>
<link href="stylesheets/style.css" rel="stylesheet"> <link href="stylesheets/style.css" rel="stylesheet">
<link href="stylesheets/desktop.css" rel="stylesheet"> <link href="stylesheets/desktop.css" rel="stylesheet">

View File

@ -19,11 +19,13 @@
<button class="btn btn-danger" id="sql-console-execute">Execute <kbd>CTRL+ENTER</kbd></button> <button class="btn btn-danger" id="sql-console-execute">Execute <kbd>CTRL+ENTER</kbd></button>
</div> </div>
<table id="sql-console-results" class="table table-striped" style="overflow: scroll; width: 100%;"> <div style="width: 100%; overflow: auto;"> <!-- This is necessary for the table to be scrollable -->
<table id="sql-console-results" class="table table-striped">
<thead></thead> <thead></thead>
<tbody></tbody> <tbody></tbody>
</table> </table>
</div> </div>
</div> </div>
</div> </div>
</div>
</div> </div>

View File

@ -84,6 +84,8 @@
<script src="libraries/jquery.min.js"></script> <script src="libraries/jquery.min.js"></script>
<script src="libraries/dayjs.min.js"></script>
<link href="libraries/fancytree/skin-win8/ui.fancytree.css" rel="stylesheet"> <link href="libraries/fancytree/skin-win8/ui.fancytree.css" rel="stylesheet">
<script src="libraries/fancytree/jquery.fancytree-all-deps.min.js"></script> <script src="libraries/fancytree/jquery.fancytree-all-deps.min.js"></script>