Transition from SFJS to SNJS
This commit is contained in:
@@ -71,7 +71,6 @@ module.exports = function(grunt) {
|
|||||||
},
|
},
|
||||||
app: {
|
app: {
|
||||||
src: [
|
src: [
|
||||||
'node_modules/snjs/dist/snjs.js',
|
|
||||||
'app/assets/javascripts/app/*.js',
|
'app/assets/javascripts/app/*.js',
|
||||||
'app/assets/javascripts/app/models/**/*.js',
|
'app/assets/javascripts/app/models/**/*.js',
|
||||||
'app/assets/javascripts/app/controllers/**/*.js',
|
'app/assets/javascripts/app/controllers/**/*.js',
|
||||||
@@ -84,8 +83,8 @@ module.exports = function(grunt) {
|
|||||||
|
|
||||||
lib: {
|
lib: {
|
||||||
src: [
|
src: [
|
||||||
'node_modules/standard-file-js/dist/regenerator.js',
|
'node_modules/snjs/dist/regenerator.js',
|
||||||
'node_modules/standard-file-js/dist/sfjs.js',
|
'node_modules/snjs/dist/snjs.js',
|
||||||
'node_modules/sn-stylekit/dist/stylekit.js',
|
'node_modules/sn-stylekit/dist/stylekit.js',
|
||||||
'node_modules/angular/angular.js',
|
'node_modules/angular/angular.js',
|
||||||
'vendor/assets/javascripts/angular-sanitize.js',
|
'vendor/assets/javascripts/angular-sanitize.js',
|
||||||
|
|||||||
@@ -308,9 +308,9 @@ class AccountMenu {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if(data.auth_params) {
|
if(data.auth_params) {
|
||||||
SFJS.crypto.computeEncryptionKeysForUser(password, data.auth_params).then((keys) => {
|
SNJS.crypto.computeEncryptionKeysForUser(password, data.auth_params).then((keys) => {
|
||||||
try {
|
try {
|
||||||
SFJS.itemTransformer.decryptMultipleItems(data.items, keys, false) /* throws = false as we don't want to interrupt all decryption if just one fails */
|
SNJS.itemTransformer.decryptMultipleItems(data.items, keys, false) /* throws = false as we don't want to interrupt all decryption if just one fails */
|
||||||
.then(() => {
|
.then(() => {
|
||||||
// delete items enc_item_key since the user's actually key will do the encrypting once its passed off
|
// delete items enc_item_key since the user's actually key will do the encrypting once its passed off
|
||||||
data.items.forEach(function(item){
|
data.items.forEach(function(item){
|
||||||
|
|||||||
@@ -211,7 +211,7 @@ class PasswordWizard {
|
|||||||
// Ensure value for current password matches what's saved
|
// Ensure value for current password matches what's saved
|
||||||
let authParams = await authManager.getAuthParams();
|
let authParams = await authManager.getAuthParams();
|
||||||
let password = $scope.formData.currentPassword;
|
let password = $scope.formData.currentPassword;
|
||||||
SFJS.crypto.computeEncryptionKeysForUser(password, authParams).then(async (keys) => {
|
SNJS.crypto.computeEncryptionKeysForUser(password, authParams).then(async (keys) => {
|
||||||
let success = keys.mk === (await authManager.keys()).mk;
|
let success = keys.mk === (await authManager.keys()).mk;
|
||||||
if(success) {
|
if(success) {
|
||||||
this.currentServerPw = keys.pw;
|
this.currentServerPw = keys.pw;
|
||||||
@@ -239,7 +239,7 @@ class PasswordWizard {
|
|||||||
|
|
||||||
let currentServerPw = this.currentServerPw;
|
let currentServerPw = this.currentServerPw;
|
||||||
|
|
||||||
let results = await SFJS.crypto.generateInitialKeysAndAuthParamsForUser(authManager.user.email, newUserPassword);
|
let results = await SNJS.crypto.generateInitialKeysAndAuthParamsForUser(authManager.user.email, newUserPassword);
|
||||||
let newKeys = results.keys;
|
let newKeys = results.keys;
|
||||||
let newAuthParams = results.authParams;
|
let newAuthParams = results.authParams;
|
||||||
|
|
||||||
|
|||||||
@@ -32,7 +32,7 @@ class RevisionPreviewModal {
|
|||||||
// but then generate new uuid for note as not to save changes to original, if editor makes changes.
|
// but then generate new uuid for note as not to save changes to original, if editor makes changes.
|
||||||
$scope.note.uuid = $scope.uuid;
|
$scope.note.uuid = $scope.uuid;
|
||||||
let editorForNote = componentManager.editorForNote($scope.note);
|
let editorForNote = componentManager.editorForNote($scope.note);
|
||||||
$scope.note.uuid = SFJS.crypto.generateUUIDSync();
|
$scope.note.uuid = SNJS.crypto.generateUUIDSync();
|
||||||
|
|
||||||
if(editorForNote) {
|
if(editorForNote) {
|
||||||
// Create temporary copy, as a lot of componentManager is uuid based,
|
// Create temporary copy, as a lot of componentManager is uuid based,
|
||||||
|
|||||||
@@ -71,7 +71,7 @@ class ActionsManager {
|
|||||||
let handleResponseDecryption = async (response, keys, merge) => {
|
let handleResponseDecryption = async (response, keys, merge) => {
|
||||||
var item = response.item;
|
var item = response.item;
|
||||||
|
|
||||||
await SFJS.itemTransformer.decryptItem(item, keys);
|
await SNJS.itemTransformer.decryptItem(item, keys);
|
||||||
|
|
||||||
if(!item.errorDecrypting) {
|
if(!item.errorDecrypting) {
|
||||||
if(merge) {
|
if(merge) {
|
||||||
@@ -101,7 +101,7 @@ class ActionsManager {
|
|||||||
}
|
}
|
||||||
triedPasswords.push(passwordCandidate);
|
triedPasswords.push(passwordCandidate);
|
||||||
|
|
||||||
var keyResults = await SFJS.crypto.computeEncryptionKeysForUser(passwordCandidate, response.auth_params);
|
var keyResults = await SNJS.crypto.computeEncryptionKeysForUser(passwordCandidate, response.auth_params);
|
||||||
if(!keyResults) {
|
if(!keyResults) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -17,7 +17,7 @@ class ArchiveManager {
|
|||||||
|
|
||||||
async downloadBackupOfItems(items, encrypted) {
|
async downloadBackupOfItems(items, encrypted) {
|
||||||
let run = async () => {
|
let run = async () => {
|
||||||
// download in Standard File format
|
// download in Standard Notes format
|
||||||
var keys, authParams;
|
var keys, authParams;
|
||||||
if(encrypted) {
|
if(encrypted) {
|
||||||
if(this.authManager.offline() && this.passcodeManager.hasPasscode()) {
|
if(this.authManager.offline() && this.passcodeManager.hasPasscode()) {
|
||||||
|
|||||||
@@ -99,7 +99,7 @@ class AuthManager extends SFAuthManager {
|
|||||||
|
|
||||||
async verifyAccountPassword(password) {
|
async verifyAccountPassword(password) {
|
||||||
let authParams = await this.getAuthParams();
|
let authParams = await this.getAuthParams();
|
||||||
let keys = await SFJS.crypto.computeEncryptionKeysForUser(password, authParams);
|
let keys = await SNJS.crypto.computeEncryptionKeysForUser(password, authParams);
|
||||||
let success = keys.mk === (await this.keys()).mk;
|
let success = keys.mk === (await this.keys()).mk;
|
||||||
return success;
|
return success;
|
||||||
}
|
}
|
||||||
@@ -109,7 +109,7 @@ class AuthManager extends SFAuthManager {
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
let latest = SFJS.version();
|
let latest = SNJS.version();
|
||||||
let updateAvailable = await this.protocolVersion() !== latest;
|
let updateAvailable = await this.protocolVersion() !== latest;
|
||||||
if(updateAvailable !== this.securityUpdateAvailable) {
|
if(updateAvailable !== this.securityUpdateAvailable) {
|
||||||
this.securityUpdateAvailable = updateAvailable;
|
this.securityUpdateAvailable = updateAvailable;
|
||||||
|
|||||||
@@ -83,7 +83,7 @@ class PasscodeManager {
|
|||||||
async verifyPasscode(passcode) {
|
async verifyPasscode(passcode) {
|
||||||
return new Promise(async (resolve, reject) => {
|
return new Promise(async (resolve, reject) => {
|
||||||
var params = this.passcodeAuthParams();
|
var params = this.passcodeAuthParams();
|
||||||
let keys = await SFJS.crypto.computeEncryptionKeysForUser(passcode, params);
|
let keys = await SNJS.crypto.computeEncryptionKeysForUser(passcode, params);
|
||||||
if(keys.pw !== params.hash) {
|
if(keys.pw !== params.hash) {
|
||||||
resolve(false);
|
resolve(false);
|
||||||
} else {
|
} else {
|
||||||
@@ -94,7 +94,7 @@ class PasscodeManager {
|
|||||||
|
|
||||||
unlock(passcode, callback) {
|
unlock(passcode, callback) {
|
||||||
var params = this.passcodeAuthParams();
|
var params = this.passcodeAuthParams();
|
||||||
SFJS.crypto.computeEncryptionKeysForUser(passcode, params).then((keys) => {
|
SNJS.crypto.computeEncryptionKeysForUser(passcode, params).then((keys) => {
|
||||||
if(keys.pw !== params.hash) {
|
if(keys.pw !== params.hash) {
|
||||||
callback(false);
|
callback(false);
|
||||||
return;
|
return;
|
||||||
@@ -110,9 +110,9 @@ class PasscodeManager {
|
|||||||
}
|
}
|
||||||
|
|
||||||
setPasscode(passcode, callback) {
|
setPasscode(passcode, callback) {
|
||||||
var uuid = SFJS.crypto.generateUUIDSync();
|
var uuid = SNJS.crypto.generateUUIDSync();
|
||||||
|
|
||||||
SFJS.crypto.generateInitialKeysAndAuthParamsForUser(uuid, passcode).then((results) => {
|
SNJS.crypto.generateInitialKeysAndAuthParamsForUser(uuid, passcode).then((results) => {
|
||||||
let keys = results.keys;
|
let keys = results.keys;
|
||||||
let authParams = results.authParams;
|
let authParams = results.authParams;
|
||||||
|
|
||||||
|
|||||||
@@ -168,7 +168,7 @@ class StorageManager extends SFStorageManager {
|
|||||||
|
|
||||||
async decryptStorage() {
|
async decryptStorage() {
|
||||||
var stored = JSON.parse(this.getItemSync("encryptedStorage", StorageManager.Fixed));
|
var stored = JSON.parse(this.getItemSync("encryptedStorage", StorageManager.Fixed));
|
||||||
await SFJS.itemTransformer.decryptItem(stored, this.encryptedStorageKeys);
|
await SNJS.itemTransformer.decryptItem(stored, this.encryptedStorageKeys);
|
||||||
var encryptedStorage = new SNEncryptedStorage(stored);
|
var encryptedStorage = new SNEncryptedStorage(stored);
|
||||||
|
|
||||||
for(var key of Object.keys(encryptedStorage.content.storage)) {
|
for(var key of Object.keys(encryptedStorage.content.storage)) {
|
||||||
|
|||||||
40628
dist/javascripts/compiled.js
vendored
40628
dist/javascripts/compiled.js
vendored
File diff suppressed because it is too large
Load Diff
2
dist/javascripts/compiled.min.js
vendored
2
dist/javascripts/compiled.min.js
vendored
File diff suppressed because one or more lines are too long
2140
package-lock.json
generated
2140
package-lock.json
generated
File diff suppressed because it is too large
Load Diff
13
package.json
13
package.json
@@ -12,11 +12,11 @@
|
|||||||
"test": "karma start karma.conf.js --single-run"
|
"test": "karma start karma.conf.js --single-run"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@babel/cli": "^7.6.4",
|
"@babel/cli": "^7.7.5",
|
||||||
"@babel/core": "^7.6.4",
|
"@babel/core": "^7.7.5",
|
||||||
"@babel/plugin-transform-runtime": "^7.6.2",
|
"@babel/plugin-transform-runtime": "^7.7.6",
|
||||||
"@babel/preset-env": "^7.6.3",
|
"@babel/preset-env": "^7.7.6",
|
||||||
"@babel/runtime": "^7.6.3",
|
"@babel/runtime": "^7.7.6",
|
||||||
"angular": "1.7.9",
|
"angular": "1.7.9",
|
||||||
"babel-plugin-angularjs-annotate": "^0.10.0",
|
"babel-plugin-angularjs-annotate": "^0.10.0",
|
||||||
"chai": "^4.2.0",
|
"chai": "^4.2.0",
|
||||||
@@ -39,7 +39,6 @@
|
|||||||
"mocha": "^6.2.2",
|
"mocha": "^6.2.2",
|
||||||
"serve-static": "^1.14.1",
|
"serve-static": "^1.14.1",
|
||||||
"sn-stylekit": "2.0.19",
|
"sn-stylekit": "2.0.19",
|
||||||
"snjs": "0.2.9",
|
"snjs": "1.0.0"
|
||||||
"standard-file-js": "0.3.71"
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -4,14 +4,14 @@ import '../vendor/chai-as-promised-built.js';
|
|||||||
import '../../../vendor/assets/javascripts/lodash/lodash.custom.js';
|
import '../../../vendor/assets/javascripts/lodash/lodash.custom.js';
|
||||||
|
|
||||||
import LocalStorageManager from './localStorageManager.js';
|
import LocalStorageManager from './localStorageManager.js';
|
||||||
const sf_default = new StandardFile();
|
const sf_default = new StandardNotes();
|
||||||
SFItem.AppDomain = "org.standardnotes.sn";
|
SFItem.AppDomain = "org.standardnotes.sn";
|
||||||
|
|
||||||
var _globalStorageManager = null;
|
var _globalStorageManager = null;
|
||||||
var _globalHttpManager = null;
|
var _globalHttpManager = null;
|
||||||
var _globalAuthManager = null;
|
var _globalAuthManager = null;
|
||||||
var _globalModelManager = null;
|
var _globalModelManager = null;
|
||||||
var _globalStandardFile = null;
|
var _globalStandardNotes = null;
|
||||||
|
|
||||||
export default class Factory {
|
export default class Factory {
|
||||||
|
|
||||||
@@ -47,9 +47,9 @@ export default class Factory {
|
|||||||
return _globalModelManager;
|
return _globalModelManager;
|
||||||
}
|
}
|
||||||
|
|
||||||
static globalStandardFile() {
|
static globalStandardNotes() {
|
||||||
if(_globalStandardFile == null) { _globalStandardFile = new StandardFile(); }
|
if(_globalStandardNotes == null) { _globalStandardNotes = new StandardNotes(); }
|
||||||
return _globalStandardFile;
|
return _globalStandardNotes;
|
||||||
}
|
}
|
||||||
|
|
||||||
static createModelManager() {
|
static createModelManager() {
|
||||||
@@ -62,7 +62,7 @@ export default class Factory {
|
|||||||
|
|
||||||
static createItemParams() {
|
static createItemParams() {
|
||||||
var params = {
|
var params = {
|
||||||
uuid: SFJS.crypto.generateUUIDSync(),
|
uuid: SNJS.crypto.generateUUIDSync(),
|
||||||
content_type: "Note",
|
content_type: "Note",
|
||||||
content: {
|
content: {
|
||||||
title: "hello",
|
title: "hello",
|
||||||
@@ -9,7 +9,7 @@ var expect = chai.expect;
|
|||||||
|
|
||||||
const getNoteParams = () => {
|
const getNoteParams = () => {
|
||||||
var params = {
|
var params = {
|
||||||
uuid: SFJS.crypto.generateUUIDSync(),
|
uuid: SNJS.crypto.generateUUIDSync(),
|
||||||
content_type: "Note",
|
content_type: "Note",
|
||||||
content: {
|
content: {
|
||||||
title: "hello",
|
title: "hello",
|
||||||
@@ -22,7 +22,7 @@ const getNoteParams = () => {
|
|||||||
const createRelatedNoteTagPair = () => {
|
const createRelatedNoteTagPair = () => {
|
||||||
let noteParams = getNoteParams();
|
let noteParams = getNoteParams();
|
||||||
let tagParams = {
|
let tagParams = {
|
||||||
uuid: SFJS.crypto.generateUUIDSync(),
|
uuid: SNJS.crypto.generateUUIDSync(),
|
||||||
content_type: "Tag",
|
content_type: "Tag",
|
||||||
content: {
|
content: {
|
||||||
title: "thoughts",
|
title: "thoughts",
|
||||||
@@ -441,8 +441,8 @@ describe("syncing", () => {
|
|||||||
var totalItemCount = 0;
|
var totalItemCount = 0;
|
||||||
|
|
||||||
beforeEach((done) => {
|
beforeEach((done) => {
|
||||||
var email = Factory.globalStandardFile().crypto.generateUUIDSync();
|
var email = Factory.globalStandardNotes().crypto.generateUUIDSync();
|
||||||
var password = Factory.globalStandardFile().crypto.generateUUIDSync();
|
var password = Factory.globalStandardNotes().crypto.generateUUIDSync();
|
||||||
Factory.globalStorageManager().clearAllData().then(() => {
|
Factory.globalStorageManager().clearAllData().then(() => {
|
||||||
Factory.newRegisteredUser(email, password).then((user) => {
|
Factory.newRegisteredUser(email, password).then((user) => {
|
||||||
done();
|
done();
|
||||||
@@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
var connect = require('connect');
|
var connect = require('connect');
|
||||||
var serveStatic = require('serve-static');
|
var serveStatic = require('serve-static');
|
||||||
var port = 7000;
|
var port = 9002;
|
||||||
connect().use(serveStatic(__dirname)).listen(port, function(){
|
connect().use(serveStatic(__dirname)).listen(port, function(){
|
||||||
console.log(`Server running on ${port}...`);
|
console.log(`Server running on ${port}...`);
|
||||||
});
|
});
|
||||||
Reference in New Issue
Block a user