mirror of
https://github.com/moparisthebest/mail
synced 2025-02-07 02:20:14 -05:00
WIP: begin browserify build
This commit is contained in:
parent
73ed053c66
commit
c36cd069e0
3
.gitignore
vendored
3
.gitignore
vendored
@ -7,7 +7,4 @@ src/css/
|
||||
dist/
|
||||
release/
|
||||
test/integration/src/
|
||||
src/lib/*.js
|
||||
src/js/crypto/aes-gcm.js
|
||||
src/js/crypto/util.js
|
||||
.elasticbeanstalk/
|
||||
|
16
.jshintrc
16
.jshintrc
@ -23,15 +23,7 @@
|
||||
"importScripts",
|
||||
"process",
|
||||
"Event",
|
||||
"QUnit",
|
||||
"test",
|
||||
"asyncTest",
|
||||
"ok",
|
||||
"equal",
|
||||
"deepEqual",
|
||||
"start",
|
||||
"chrome",
|
||||
"requirejs",
|
||||
"define",
|
||||
"self",
|
||||
"describe",
|
||||
@ -42,7 +34,13 @@
|
||||
"before",
|
||||
"beforeEach",
|
||||
"after",
|
||||
"afterEach"
|
||||
"afterEach",
|
||||
"FastClick",
|
||||
"angular",
|
||||
"forge",
|
||||
"Lawnchair",
|
||||
"_",
|
||||
"openpgp"
|
||||
],
|
||||
|
||||
"globals": {
|
||||
|
140
Gruntfile.js
140
Gruntfile.js
@ -6,6 +6,7 @@ module.exports = function(grunt) {
|
||||
|
||||
// Project configuration.
|
||||
grunt.initConfig({
|
||||
|
||||
connect: {
|
||||
dev: {
|
||||
options: {
|
||||
@ -47,8 +48,9 @@ module.exports = function(grunt) {
|
||||
},
|
||||
|
||||
clean: {
|
||||
dist: ['dist', 'src/lib/*.js', 'test/lib', 'test/integration/src']
|
||||
dist: ['dist', 'test/lib', 'test/integration/src']
|
||||
},
|
||||
|
||||
sass: {
|
||||
dist: {
|
||||
files: {
|
||||
@ -57,6 +59,7 @@ module.exports = function(grunt) {
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
autoprefixer: {
|
||||
options: {
|
||||
browsers: ['last 2 versions']
|
||||
@ -68,9 +71,10 @@ module.exports = function(grunt) {
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
csso: {
|
||||
options: {
|
||||
banner: '/*! Copyright © 2013, Whiteout Networks GmbH. All rights reserved.*/\n'
|
||||
banner: '/*! Copyright © <%= grunt.template.today("yyyy") %>, Whiteout Networks GmbH.*/\n'
|
||||
},
|
||||
dist: {
|
||||
files: {
|
||||
@ -79,6 +83,7 @@ module.exports = function(grunt) {
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
watch: {
|
||||
css: {
|
||||
files: ['src/sass/**/*.scss'],
|
||||
@ -86,7 +91,7 @@ module.exports = function(grunt) {
|
||||
},
|
||||
js: {
|
||||
files: ['src/js/**/*.js'],
|
||||
tasks: ['copy:js', 'copy:integration', 'manifest']
|
||||
tasks: ['dist-js', 'copy:integration', 'manifest']
|
||||
},
|
||||
lib: {
|
||||
files: ['src/lib/**/*.js'],
|
||||
@ -97,36 +102,52 @@ module.exports = function(grunt) {
|
||||
tasks: ['copy:app', 'copy:ca', 'copy:tpl', 'copy:img', 'copy:font', 'manifest-dev', 'manifest']
|
||||
}
|
||||
},
|
||||
copy: {
|
||||
npm: {
|
||||
expand: true,
|
||||
flatten: true,
|
||||
cwd: 'node_modules/',
|
||||
src: [
|
||||
'requirejs/require.js',
|
||||
'imap-client/src/*.js',
|
||||
'imap-client/node_modules/browserbox/src/*.js',
|
||||
'imap-client/node_modules/browserbox/node_modules/wo-imap-handler/src/*.js',
|
||||
'imap-client/node_modules/browserbox/node_modules/mimefuncs/src/*.js',
|
||||
'imap-client/node_modules/browserbox/node_modules/tcp-socket/src/*.js',
|
||||
'imap-client/node_modules/browserbox/node_modules/wo-utf7/src/*.js',
|
||||
'mailreader/src/*.js',
|
||||
'mailreader/node_modules/mimeparser/src/*.js',
|
||||
'mailreader/node_modules/mimeparser/node_modules/wo-addressparser/src/*.js',
|
||||
'pgpbuilder/src/*.js',
|
||||
'pgpbuilder/node_modules/mailbuild/src/*.js',
|
||||
'pgpbuilder/node_modules/mailbuild/node_modules/mimetypes/src/*.js',
|
||||
'pgpbuilder/node_modules/mailbuild/node_modules/punycode/punycode.min.js',
|
||||
'pgpmailer/src/*.js',
|
||||
'pgpmailer/node_modules/wo-smtpclient/src/*.js',
|
||||
'pgpmailer/node_modules/wo-smtpclient/node_modules/wo-stringencoding/dist/stringencoding.js',
|
||||
'axe-logger/axe.js',
|
||||
'dompurify/purify.js',
|
||||
'jquery/dist/jquery.min.js',
|
||||
'ng-infinite-scroll/build/ng-infinite-scroll.min.js'
|
||||
],
|
||||
dest: 'src/lib/'
|
||||
|
||||
browserify: {
|
||||
all: {
|
||||
files: {
|
||||
'dist/js/app.min.js': ['src/js/app.js']
|
||||
},
|
||||
options: {
|
||||
external: ['node-forge', 'net', 'tls'] // common.js apis not required at build time
|
||||
}
|
||||
},
|
||||
/* TODO:
|
||||
tls-worker: {},
|
||||
mailreader-worker: {},
|
||||
pbkdf2-worker: {},
|
||||
unitTest: {},
|
||||
unitTest: {},
|
||||
integrationTest: {}
|
||||
*/
|
||||
},
|
||||
|
||||
uglify: {
|
||||
all: {
|
||||
files: {
|
||||
'dist/js/app.min.js': [
|
||||
'src/lib/underscore/underscore-min.js',
|
||||
'node_modules/jquery/dist/jquery.min.js',
|
||||
'src/lib/angular/angular.min.js',
|
||||
'src/lib/angular/angular-route.min.js',
|
||||
'src/lib/angular/angular-animate.min.js',
|
||||
'src/lib/ngtagsinput/ng-tags-input.min.js',
|
||||
'src/lib/fastclick/fastclick.js',
|
||||
'node_modules/ng-infinite-scroll/build/ng-infinite-scroll.min.js',
|
||||
'src/lib/lawnchair/lawnchair-git.js',
|
||||
'src/lib/lawnchair/lawnchair-adapter-webkit-sqlite-git.js',
|
||||
'src/lib/lawnchair/lawnchair-adapter-indexed-db-git.js',
|
||||
'node_modules/dompurify/purify.js',
|
||||
'dist/js/app.min.js'
|
||||
]
|
||||
}
|
||||
},
|
||||
options: {
|
||||
banner: '/*! Copyright © <%= grunt.template.today("yyyy") %>, Whiteout Networks GmbH.*/\n'
|
||||
}
|
||||
},
|
||||
|
||||
copy: {
|
||||
npmDev: {
|
||||
expand: true,
|
||||
flatten: true,
|
||||
@ -134,24 +155,6 @@ module.exports = function(grunt) {
|
||||
src: ['requirejs/require.js', 'mocha/mocha.css', 'mocha/mocha.js', 'chai/chai.js', 'sinon/pkg/sinon.js', 'angularjs/src/ngMock/angular-mocks.js', 'browsercrow/src/*.js', 'browsersmtp/src/*.js'],
|
||||
dest: 'test/lib/'
|
||||
},
|
||||
cryptoLib: {
|
||||
expand: true,
|
||||
cwd: 'node_modules/crypto-lib/src/',
|
||||
src: ['*.js'],
|
||||
dest: 'src/js/crypto/'
|
||||
},
|
||||
lib: {
|
||||
expand: true,
|
||||
cwd: 'src/lib/',
|
||||
src: ['**'],
|
||||
dest: 'dist/lib/'
|
||||
},
|
||||
js: {
|
||||
expand: true,
|
||||
cwd: 'src/js/',
|
||||
src: ['**'],
|
||||
dest: 'dist/js/'
|
||||
},
|
||||
font: {
|
||||
expand: true,
|
||||
cwd: 'src/font/',
|
||||
@ -170,12 +173,6 @@ module.exports = function(grunt) {
|
||||
src: ['*'],
|
||||
dest: 'dist/tpl/'
|
||||
},
|
||||
ca: {
|
||||
expand: true,
|
||||
cwd: 'src/ca/',
|
||||
src: ['*'],
|
||||
dest: 'dist/ca/'
|
||||
},
|
||||
app: {
|
||||
expand: true,
|
||||
cwd: 'src/',
|
||||
@ -200,16 +197,6 @@ module.exports = function(grunt) {
|
||||
cwd: 'dist/',
|
||||
src: ['**/*'],
|
||||
dest: 'release/'
|
||||
},
|
||||
nodeWebkit: {
|
||||
options: {
|
||||
mode: 'zip',
|
||||
archive: 'release/whiteout-mail_' + zipName + '.nw'
|
||||
},
|
||||
expand: true,
|
||||
cwd: 'dist/',
|
||||
src: ['**/*'],
|
||||
dest: '/'
|
||||
}
|
||||
},
|
||||
|
||||
@ -226,22 +213,13 @@ module.exports = function(grunt) {
|
||||
src: ['**/*.*'],
|
||||
dest: 'dist/appcache.manifest'
|
||||
}
|
||||
},
|
||||
}
|
||||
|
||||
nodewebkit: {
|
||||
options: {
|
||||
version: '0.9.2', // node-webkit version
|
||||
build_dir: './release/node-webkit/', // Where the build version of my node-webkit app is saved
|
||||
mac: true, // We want to build it for mac
|
||||
win: false, // We want to build it for win
|
||||
linux32: false, // We don't need linux32
|
||||
linux64: false, // We don't need linux64
|
||||
},
|
||||
src: ['./dist/**/*'] // Your node-webkit app
|
||||
},
|
||||
});
|
||||
|
||||
// Load the plugin(s)
|
||||
grunt.loadNpmTasks('grunt-browserify');
|
||||
grunt.loadNpmTasks('grunt-contrib-uglify');
|
||||
grunt.loadNpmTasks('grunt-contrib-connect');
|
||||
grunt.loadNpmTasks('grunt-contrib-jshint');
|
||||
grunt.loadNpmTasks('grunt-mocha');
|
||||
@ -252,14 +230,14 @@ module.exports = function(grunt) {
|
||||
grunt.loadNpmTasks('grunt-contrib-watch');
|
||||
grunt.loadNpmTasks('grunt-contrib-copy');
|
||||
grunt.loadNpmTasks('grunt-contrib-compress');
|
||||
grunt.loadNpmTasks('grunt-node-webkit-builder');
|
||||
grunt.loadNpmTasks('grunt-manifest');
|
||||
|
||||
// Build tasks
|
||||
grunt.registerTask('dist-npm', ['copy:npm', 'copy:npmDev', 'copy:cryptoLib']);
|
||||
grunt.registerTask('dist-npm', ['copy:npmDev']);
|
||||
grunt.registerTask('dist-css', ['sass', 'autoprefixer', 'csso']);
|
||||
grunt.registerTask('dist-js', ['browserify', 'uglify']);
|
||||
grunt.registerTask('dist-copy', ['copy']);
|
||||
grunt.registerTask('dist', ['clean', 'dist-npm', 'dist-css', 'dist-copy', 'manifest']);
|
||||
grunt.registerTask('dist', ['clean', 'dist-npm', 'dist-css', 'dist-js', 'dist-copy', 'manifest']);
|
||||
|
||||
// Test/Dev tasks
|
||||
grunt.registerTask('dev', ['connect:dev']);
|
||||
|
20
package.json
20
package.json
@ -29,20 +29,21 @@
|
||||
"dependencies": {
|
||||
"axe-logger": "~0.0.2",
|
||||
"compression": "^1.0.11",
|
||||
"config": "^1.0.2",
|
||||
"crypto-lib": "~0.2.1",
|
||||
"dompurify": "~0.4.2",
|
||||
"express": "^4.8.3",
|
||||
"imap-client": "~0.4.3",
|
||||
"jquery": "~2.1.1",
|
||||
"mailreader": "~0.3.5",
|
||||
"morgan": "^1.2.3",
|
||||
"ng-infinite-scroll": "~1.1.2",
|
||||
"npmlog": "^0.1.1",
|
||||
"pgpbuilder": "~0.4.0",
|
||||
"pgpmailer": "~0.4.0",
|
||||
"requirejs": "~2.1.14",
|
||||
"config": "^1.0.2",
|
||||
"morgan": "^1.2.3",
|
||||
"npmlog": "^0.1.1",
|
||||
"socket.io": "^1.0.6"
|
||||
"socket.io": "^1.0.6",
|
||||
"tcp-socket": "^0.3.9",
|
||||
"wo-smtpclient": "^0.3.8"
|
||||
},
|
||||
"devDependencies": {
|
||||
"angularjs": "https://github.com/whiteout-io/angular.js/tarball/npm-version",
|
||||
@ -50,18 +51,19 @@
|
||||
"browsersmtp": "https://github.com/whiteout-io/browsersmtp/tarball/master",
|
||||
"chai": "~1.7.2",
|
||||
"grunt": "~0.4.1",
|
||||
"grunt-contrib-clean": "~0.5.0",
|
||||
"grunt-contrib-copy": "~0.4.1",
|
||||
"grunt-manifest": "^0.4.0",
|
||||
"grunt-autoprefixer": "~0.7.2",
|
||||
"grunt-browserify": "^3.0.1",
|
||||
"grunt-contrib-clean": "~0.5.0",
|
||||
"grunt-contrib-compress": "~0.5.2",
|
||||
"grunt-contrib-connect": "~0.5.0",
|
||||
"grunt-contrib-copy": "~0.4.1",
|
||||
"grunt-contrib-jshint": "~0.6.4",
|
||||
"grunt-contrib-sass": "~0.7.3",
|
||||
"grunt-contrib-uglify": "^0.6.0",
|
||||
"grunt-contrib-watch": "~0.5.3",
|
||||
"grunt-csso": "~0.6.1",
|
||||
"grunt-manifest": "^0.4.0",
|
||||
"grunt-mocha": "~0.4.1",
|
||||
"grunt-node-webkit-builder": "~0.1.17",
|
||||
"mocha": "~1.13.0",
|
||||
"sinon": "~1.7.3"
|
||||
}
|
||||
|
@ -26,9 +26,7 @@
|
||||
|
||||
<!-- The Scripts -->
|
||||
<script src="socket.io/socket.io.js"></script>
|
||||
<script src="lib/require.js"></script>
|
||||
<script src="require-config.js"></script>
|
||||
<script src="js/app.js"></script>
|
||||
<script src="js/app.min.js"></script>
|
||||
</head>
|
||||
|
||||
<body key-shortcuts>
|
||||
|
@ -1,9 +1,6 @@
|
||||
define(function(require) {
|
||||
'use strict';
|
||||
|
||||
var _ = require('underscore'),
|
||||
app = {},
|
||||
appVersion, cloudUrl, keychainUrl, clientId;
|
||||
var appVersion, cloudUrl, keychainUrl, clientId;
|
||||
|
||||
// parse manifest to get configurations for current runtime
|
||||
try {
|
||||
@ -29,7 +26,7 @@ define(function(require) {
|
||||
/**
|
||||
* Global app configurations
|
||||
*/
|
||||
app.config = {
|
||||
exports.config = {
|
||||
cloudUrl: cloudUrl || 'https://keys.whiteout.io',
|
||||
privkeyServerUrl: keychainUrl || 'https://keychain.whiteout.io',
|
||||
adminUrl: 'https://admin-node.whiteout.io',
|
||||
@ -185,7 +182,7 @@ define(function(require) {
|
||||
/**
|
||||
* Strings are maintained here
|
||||
*/
|
||||
app.string = {
|
||||
exports.string = {
|
||||
fallbackSubject: '(no subject)',
|
||||
invitationSubject: 'Invitation to a private conversation',
|
||||
invitationMessage: 'Hi,\n\nI use Whiteout Mail to send and receive encrypted email. I would like to exchange encrypted messages with you as well.\n\nPlease install the Whiteout Mail application. This application makes it easy to read and write messages securely with PGP encryption applied.\n\nGo to the Whiteout Networks homepage to learn more and to download the application: https://whiteout.io\n\n',
|
||||
@ -218,6 +215,3 @@ define(function(require) {
|
||||
connDocNoInbox: 'We could not detect an IMAP inbox folder on {0}. Please have a look at the FAQ for information on how to fix this error.',
|
||||
connDocGenericError: 'There was an error connecting to {0}: {1}'
|
||||
};
|
||||
|
||||
return app;
|
||||
});
|
@ -1,31 +1,31 @@
|
||||
/**
|
||||
* The main application controller
|
||||
*/
|
||||
define(function(require) {
|
||||
|
||||
'use strict';
|
||||
|
||||
var axe = require('axe'),
|
||||
Auth = require('js/bo/auth'),
|
||||
PGP = require('js/crypto/pgp'),
|
||||
var axe = require('axe-logger'),
|
||||
Auth = require('./bo/auth'),
|
||||
PGP = require('./crypto/pgp'),
|
||||
PgpMailer = require('pgpmailer'),
|
||||
OAuth = require('js/util/oauth'),
|
||||
OAuth = require('./util/oauth'),
|
||||
PgpBuilder = require('pgpbuilder'),
|
||||
OutboxBO = require('js/bo/outbox'),
|
||||
OutboxBO = require('./bo/outbox'),
|
||||
mailreader = require('mailreader'),
|
||||
ImapClient = require('imap-client'),
|
||||
Crypto = require('js/crypto/crypto'),
|
||||
RestDAO = require('js/dao/rest-dao'),
|
||||
appConfig = require('js/app-config'),
|
||||
EmailDAO = require('js/dao/email-dao'),
|
||||
AdminDao = require('js/dao/admin-dao'),
|
||||
KeychainDAO = require('js/dao/keychain-dao'),
|
||||
PublicKeyDAO = require('js/dao/publickey-dao'),
|
||||
LawnchairDAO = require('js/dao/lawnchair-dao'),
|
||||
PrivateKeyDAO = require('js/dao/privatekey-dao'),
|
||||
InvitationDAO = require('js/dao/invitation-dao'),
|
||||
DeviceStorageDAO = require('js/dao/devicestorage-dao'),
|
||||
ConnectionDoctor = require('js/util/connection-doctor'),
|
||||
UpdateHandler = require('js/util/update/update-handler'),
|
||||
Crypto = require('./crypto/crypto'),
|
||||
RestDAO = require('./dao/rest-dao'),
|
||||
appConfig = require('./app-config'),
|
||||
EmailDAO = require('./dao/email-dao'),
|
||||
AdminDao = require('./dao/admin-dao'),
|
||||
KeychainDAO = require('./dao/keychain-dao'),
|
||||
PublicKeyDAO = require('./dao/publickey-dao'),
|
||||
LawnchairDAO = require('./dao/lawnchair-dao'),
|
||||
PrivateKeyDAO = require('./dao/privatekey-dao'),
|
||||
InvitationDAO = require('./dao/invitation-dao'),
|
||||
DeviceStorageDAO = require('./dao/devicestorage-dao'),
|
||||
ConnectionDoctor = require('./util/connection-doctor'),
|
||||
UpdateHandler = require('./util/update/update-handler'),
|
||||
config = appConfig.config,
|
||||
str = appConfig.string;
|
||||
|
||||
@ -183,8 +183,6 @@ define(function(require) {
|
||||
* Log the current user out by clear the app config store and deleting instances of imap-client and pgp-mailer.
|
||||
*/
|
||||
self.logout = function() {
|
||||
var self = this;
|
||||
|
||||
// clear app config store
|
||||
self._auth.logout(function(err) {
|
||||
if (err) {
|
||||
@ -267,5 +265,4 @@ define(function(require) {
|
||||
}
|
||||
};
|
||||
|
||||
return self;
|
||||
});
|
||||
exports = self;
|
@ -14,64 +14,26 @@ if (typeof window.applicationCache !== 'undefined') {
|
||||
};
|
||||
}
|
||||
|
||||
// hey Angular, we're bootstrapping manually!
|
||||
window.name = 'NG_DEFER_BOOTSTRAP!';
|
||||
|
||||
requirejs([
|
||||
'angular',
|
||||
'js/controller/dialog',
|
||||
'js/controller/popover',
|
||||
'js/controller/add-account',
|
||||
'js/controller/account',
|
||||
'js/controller/set-passphrase',
|
||||
'js/controller/privatekey-upload',
|
||||
'js/controller/contacts',
|
||||
'js/controller/about',
|
||||
'js/controller/login',
|
||||
'js/controller/login-initial',
|
||||
'js/controller/login-new-device',
|
||||
'js/controller/login-existing',
|
||||
'js/controller/login-privatekey-download',
|
||||
'js/controller/login-set-credentials',
|
||||
'js/controller/mail-list',
|
||||
'js/controller/read',
|
||||
'js/controller/write',
|
||||
'js/controller/navigation',
|
||||
'js/crypto/util',
|
||||
'js/util/error',
|
||||
'js/util/backbutton-handler',
|
||||
'fastclick',
|
||||
'angularRoute',
|
||||
'angularAnimate',
|
||||
'ngInfiniteScroll',
|
||||
'ngTagsInput'
|
||||
], function(
|
||||
angular,
|
||||
DialogCtrl,
|
||||
PopoverCtrl,
|
||||
AddAccountCtrl,
|
||||
AccountCtrl,
|
||||
SetPassphraseCtrl,
|
||||
PrivateKeyUploadCtrl,
|
||||
ContactsCtrl,
|
||||
AboutCtrl,
|
||||
LoginCtrl,
|
||||
LoginInitialCtrl,
|
||||
LoginNewDeviceCtrl,
|
||||
LoginExistingCtrl,
|
||||
LoginPrivateKeyDownloadCtrl,
|
||||
LoginSetCredentialsCtrl,
|
||||
MailListCtrl,
|
||||
ReadCtrl,
|
||||
WriteCtrl,
|
||||
NavigationCtrl,
|
||||
util,
|
||||
errorUtil,
|
||||
backButtonUtil,
|
||||
FastClick
|
||||
) {
|
||||
// reset window.name
|
||||
window.name = util.UUID();
|
||||
var DialogCtrl = require('./controller/dialog'),
|
||||
PopoverCtrl = require('./controller/popover'),
|
||||
AddAccountCtrl = require('./controller/add-account'),
|
||||
AccountCtrl = require('./controller/account'),
|
||||
SetPassphraseCtrl = require('./controller/set-passphrase'),
|
||||
PrivateKeyUploadCtrl = require('./controller/privatekey-upload'),
|
||||
ContactsCtrl = require('./controller/contacts'),
|
||||
AboutCtrl = require('./controller/about'),
|
||||
LoginCtrl = require('./controller/login'),
|
||||
LoginInitialCtrl = require('./controller/login-initial'),
|
||||
LoginNewDeviceCtrl = require('./controller/login-new-device'),
|
||||
LoginExistingCtrl = require('./controller/login-existing'),
|
||||
LoginPrivateKeyDownloadCtrl = require('./controller/login-privatekey-download'),
|
||||
LoginSetCredentialsCtrl = require('./controller/login-set-credentials'),
|
||||
MailListCtrl = require('./controller/mail-list'),
|
||||
ReadCtrl = require('./controller/read'),
|
||||
WriteCtrl = require('./controller/write'),
|
||||
NavigationCtrl = require('./controller/navigation'),
|
||||
errorUtil = require('./util/error'),
|
||||
backButtonUtil = require('./util/backbutton-handler');
|
||||
|
||||
// init main angular module including dependencies
|
||||
var app = angular.module('mail', [
|
||||
@ -153,9 +115,3 @@ requirejs([
|
||||
app.controller('AboutCtrl', AboutCtrl);
|
||||
app.controller('DialogCtrl', DialogCtrl);
|
||||
app.controller('PopoverCtrl', PopoverCtrl);
|
||||
|
||||
// manually bootstrap angular due to require.js
|
||||
angular.element().ready(function() {
|
||||
angular.bootstrap(document, ['mail']);
|
||||
});
|
||||
});
|
@ -1,8 +1,7 @@
|
||||
define(function(require) {
|
||||
'use strict';
|
||||
|
||||
var axe = require('axe'),
|
||||
str = require('js/app-config').string;
|
||||
var axe = require('axe-logger'),
|
||||
str = require('../app-config').string;
|
||||
|
||||
var EMAIL_ADDR_DB_KEY = 'emailaddress';
|
||||
var USERNAME_DB_KEY = 'username';
|
||||
@ -449,5 +448,4 @@ define(function(require) {
|
||||
});
|
||||
};
|
||||
|
||||
return Auth;
|
||||
});
|
||||
exports = Auth;
|
@ -1,9 +1,7 @@
|
||||
define(function(require) {
|
||||
'use strict';
|
||||
|
||||
var _ = require('underscore'),
|
||||
util = require('js/crypto/util'),
|
||||
config = require('js/app-config').config,
|
||||
var util = require('crypto-lib').util,
|
||||
config = require('../app-config').config,
|
||||
outboxDb = 'email_OUTBOX';
|
||||
|
||||
/**
|
||||
@ -228,5 +226,4 @@ define(function(require) {
|
||||
}
|
||||
};
|
||||
|
||||
return OutboxBO;
|
||||
});
|
||||
exports = OutboxBO;
|
@ -1,7 +1,6 @@
|
||||
define(function(require) {
|
||||
'use strict';
|
||||
|
||||
var cfg = require('js/app-config').config;
|
||||
var cfg = require('../app-config').config;
|
||||
|
||||
//
|
||||
// Controller
|
||||
@ -27,5 +26,4 @@ define(function(require) {
|
||||
//
|
||||
};
|
||||
|
||||
return AboutCtrl;
|
||||
});
|
||||
exports = AboutCtrl;
|
@ -1,9 +1,8 @@
|
||||
define(function(require) {
|
||||
'use strict';
|
||||
|
||||
var appController = require('js/app-controller'),
|
||||
dl = require('js/util/download'),
|
||||
config = require('js/app-config').config,
|
||||
var appController = require('../app-controller'),
|
||||
dl = require('../util/download'),
|
||||
config = require('../app-config').config,
|
||||
pgp, keychain, userId;
|
||||
|
||||
//
|
||||
@ -57,5 +56,4 @@ define(function(require) {
|
||||
};
|
||||
};
|
||||
|
||||
return AccountCtrl;
|
||||
});
|
||||
exports = AccountCtrl;
|
@ -1,8 +1,7 @@
|
||||
define(function(require) {
|
||||
'use strict';
|
||||
|
||||
var appCtrl = require('js/app-controller'),
|
||||
cfg = require('js/app-config').config;
|
||||
var appCtrl = require('../app-controller'),
|
||||
cfg = require('../app-config').config;
|
||||
|
||||
var AddAccountCtrl = function($scope, $location, $routeParams) {
|
||||
if (!appCtrl._auth && !$routeParams.dev) {
|
||||
@ -116,5 +115,4 @@ define(function(require) {
|
||||
};
|
||||
};
|
||||
|
||||
return AddAccountCtrl;
|
||||
});
|
||||
exports = AddAccountCtrl;
|
@ -1,9 +1,6 @@
|
||||
define(function(require) {
|
||||
'use strict';
|
||||
|
||||
var angular = require('angular'),
|
||||
_ = require('underscore'),
|
||||
appController = require('js/app-controller'),
|
||||
var appController = require('../app-controller'),
|
||||
keychain, pgp;
|
||||
|
||||
//
|
||||
@ -139,5 +136,4 @@ define(function(require) {
|
||||
};
|
||||
});
|
||||
|
||||
return ContactsCtrl;
|
||||
});
|
||||
exports = ContactsCtrl;
|
@ -1,4 +1,3 @@
|
||||
define(function() {
|
||||
'use strict';
|
||||
|
||||
var DialogCtrl = function($scope) {
|
||||
@ -12,5 +11,4 @@ define(function() {
|
||||
};
|
||||
};
|
||||
|
||||
return DialogCtrl;
|
||||
});
|
||||
exports = DialogCtrl;
|
@ -1,7 +1,6 @@
|
||||
define(function(require) {
|
||||
'use strict';
|
||||
|
||||
var appController = require('js/app-controller');
|
||||
var appController = require('../app-controller');
|
||||
|
||||
var LoginExistingCtrl = function($scope, $location, $routeParams) {
|
||||
if (!appController._emailDao && !$routeParams.dev) {
|
||||
@ -69,5 +68,4 @@ define(function(require) {
|
||||
}
|
||||
};
|
||||
|
||||
return LoginExistingCtrl;
|
||||
});
|
||||
exports = LoginExistingCtrl;
|
@ -1,7 +1,6 @@
|
||||
define(function(require) {
|
||||
'use strict';
|
||||
|
||||
var appController = require('js/app-controller');
|
||||
var appController = require('../app-controller');
|
||||
|
||||
var LoginInitialCtrl = function($scope, $location, $routeParams) {
|
||||
if (!appController._emailDao && !$routeParams.dev) {
|
||||
@ -117,5 +116,4 @@ define(function(require) {
|
||||
};
|
||||
};
|
||||
|
||||
return LoginInitialCtrl;
|
||||
});
|
||||
exports = LoginInitialCtrl;
|
@ -1,8 +1,6 @@
|
||||
define(function(require) {
|
||||
'use strict';
|
||||
|
||||
var angular = require('angular'),
|
||||
appController = require('js/app-controller');
|
||||
var appController = require('../app-controller');
|
||||
|
||||
var LoginExistingCtrl = function($scope, $location, $routeParams) {
|
||||
if (!appController._emailDao && !$routeParams.dev) {
|
||||
@ -137,5 +135,4 @@ define(function(require) {
|
||||
};
|
||||
});
|
||||
|
||||
return LoginExistingCtrl;
|
||||
});
|
||||
exports = LoginExistingCtrl;
|
@ -1,7 +1,6 @@
|
||||
define(function(require) {
|
||||
'use strict';
|
||||
|
||||
var appController = require('js/app-controller');
|
||||
var appController = require('../app-controller');
|
||||
|
||||
var LoginPrivateKeyDownloadCtrl = function($scope, $location, $routeParams) {
|
||||
if (!appController._emailDao && !$routeParams.dev) {
|
||||
@ -130,5 +129,4 @@ define(function(require) {
|
||||
};
|
||||
};
|
||||
|
||||
return LoginPrivateKeyDownloadCtrl;
|
||||
});
|
||||
exports = LoginPrivateKeyDownloadCtrl;
|
@ -1,12 +1,11 @@
|
||||
define(function(require) {
|
||||
'use strict';
|
||||
|
||||
var ENCRYPTION_METHOD_NONE = 0;
|
||||
var ENCRYPTION_METHOD_STARTTLS = 1;
|
||||
var ENCRYPTION_METHOD_TLS = 2;
|
||||
|
||||
var appCtrl = require('js/app-controller'),
|
||||
config = require('js/app-config').config;
|
||||
var appCtrl = require('../app-controller'),
|
||||
config = require('../app-config').config;
|
||||
|
||||
var SetCredentialsCtrl = function($scope, $location, $routeParams) {
|
||||
if (!appCtrl._auth && !$routeParams.dev) {
|
||||
@ -116,5 +115,4 @@ define(function(require) {
|
||||
};
|
||||
};
|
||||
|
||||
return SetCredentialsCtrl;
|
||||
});
|
||||
exports = SetCredentialsCtrl;
|
@ -1,7 +1,6 @@
|
||||
define(function(require) {
|
||||
'use strict';
|
||||
|
||||
var appController = require('js/app-controller');
|
||||
var appController = require('../app-controller');
|
||||
|
||||
var LoginCtrl = function($scope, $location) {
|
||||
|
||||
@ -99,5 +98,4 @@ define(function(require) {
|
||||
}
|
||||
};
|
||||
|
||||
return LoginCtrl;
|
||||
});
|
||||
exports = LoginCtrl;
|
@ -1,10 +1,7 @@
|
||||
define(function(require) {
|
||||
'use strict';
|
||||
|
||||
var angular = require('angular'),
|
||||
_ = require('underscore'),
|
||||
appController = require('js/app-controller'),
|
||||
notification = require('js/util/notification'),
|
||||
var appController = require('../app-controller'),
|
||||
notification = require('../util/notification'),
|
||||
emailDao, outboxBo, keychainDao, searchTimeout, firstSelect;
|
||||
|
||||
var INIT_DISPLAY_LEN = 20,
|
||||
@ -596,5 +593,4 @@ define(function(require) {
|
||||
return dummies;
|
||||
}
|
||||
|
||||
return MailListCtrl;
|
||||
});
|
||||
exports = MailListCtrl;
|
@ -1,12 +1,9 @@
|
||||
define(function(require) {
|
||||
'use strict';
|
||||
|
||||
var angular = require('angular'),
|
||||
appController = require('js/app-controller'),
|
||||
config = require('js/app-config').config,
|
||||
notification = require('js/util/notification'),
|
||||
backBtnHandler = require('js/util/backbutton-handler'),
|
||||
_ = require('underscore'),
|
||||
var appController = require('../app-controller'),
|
||||
config = require('../app-config').config,
|
||||
notification = require('../util/notification'),
|
||||
backBtnHandler = require('../util/backbutton-handler'),
|
||||
emailDao, outboxBo;
|
||||
|
||||
//
|
||||
@ -206,5 +203,4 @@ define(function(require) {
|
||||
};
|
||||
});
|
||||
|
||||
return NavigationCtrl;
|
||||
});
|
||||
exports = NavigationCtrl;
|
@ -1,8 +1,5 @@
|
||||
define(function(require) {
|
||||
'use strict';
|
||||
|
||||
var angular = require('angular');
|
||||
|
||||
//
|
||||
// Controller
|
||||
//
|
||||
@ -43,5 +40,4 @@ define(function(require) {
|
||||
};
|
||||
});
|
||||
|
||||
return PopoverCtrl;
|
||||
});
|
||||
exports = PopoverCtrl;
|
@ -1,9 +1,7 @@
|
||||
define(function(require) {
|
||||
'use strict';
|
||||
|
||||
var angular = require('angular'),
|
||||
appController = require('js/app-controller'),
|
||||
util = require('js/crypto/util'),
|
||||
var appController = require('../app-controller'),
|
||||
util = require('crypto-lib').util,
|
||||
keychain, pgp;
|
||||
|
||||
var PrivateKeyUploadCtrl = function($scope) {
|
||||
@ -200,5 +198,4 @@ define(function(require) {
|
||||
};
|
||||
});
|
||||
|
||||
return PrivateKeyUploadCtrl;
|
||||
});
|
||||
exports = PrivateKeyUploadCtrl;
|
@ -1,4 +1,3 @@
|
||||
(function() {
|
||||
'use strict';
|
||||
|
||||
// set listener for event from main window
|
||||
@ -214,5 +213,3 @@
|
||||
view.style['-webkit-transform'] = scale;
|
||||
view.style.transform = scale;
|
||||
}
|
||||
|
||||
})();
|
@ -1,10 +1,8 @@
|
||||
define(function(require) {
|
||||
'use strict';
|
||||
|
||||
var appController = require('js/app-controller'),
|
||||
download = require('js/util/download'),
|
||||
angular = require('angular'),
|
||||
str = require('js/app-config').string,
|
||||
var appController = require('../app-controller'),
|
||||
download = require('../util/download'),
|
||||
str = require('../app-config').string,
|
||||
emailDao, invitationDao, outbox, pgp, keychain;
|
||||
|
||||
//
|
||||
@ -282,5 +280,4 @@ define(function(require) {
|
||||
};
|
||||
});
|
||||
|
||||
return ReadCtrl;
|
||||
});
|
||||
exports = ReadCtrl;
|
@ -1,7 +1,6 @@
|
||||
define(function(require) {
|
||||
'use strict';
|
||||
|
||||
var appController = require('js/app-controller'),
|
||||
var appController = require('../app-controller'),
|
||||
pgp, keychain;
|
||||
|
||||
//
|
||||
@ -134,5 +133,4 @@ define(function(require) {
|
||||
}
|
||||
};
|
||||
|
||||
return SetPassphraseCtrl;
|
||||
});
|
||||
exports = SetPassphraseCtrl;
|
@ -1,12 +1,9 @@
|
||||
define(function(require) {
|
||||
'use strict';
|
||||
|
||||
var angular = require('angular'),
|
||||
_ = require('underscore'),
|
||||
appController = require('js/app-controller'),
|
||||
axe = require('axe'),
|
||||
util = require('js/crypto/util'),
|
||||
str = require('js/app-config').string,
|
||||
var appController = require('../app-controller'),
|
||||
axe = require('axe-logger'),
|
||||
util = require('crypto-lib').util,
|
||||
str = require('../app-config').string,
|
||||
pgp, emailDao, outbox, keychainDao, auth;
|
||||
|
||||
//
|
||||
@ -530,5 +527,4 @@ define(function(require) {
|
||||
};
|
||||
});
|
||||
|
||||
return WriteCtrl;
|
||||
});
|
||||
exports = WriteCtrl;
|
@ -2,13 +2,13 @@
|
||||
* High level crypto api that invokes native crypto (if available) and
|
||||
* gracefully degrades to JS crypto (if unavailable)
|
||||
*/
|
||||
define(function(require) {
|
||||
|
||||
'use strict';
|
||||
|
||||
var aes = require('js/crypto/aes-gcm'),
|
||||
pbkdf2 = require('js/crypto/pbkdf2'),
|
||||
config = require('js/app-config').config,
|
||||
axe = require('axe');
|
||||
var aes = require('crypto-lib').aes,
|
||||
pbkdf2 = require('./pbkdf2'),
|
||||
config = require('../app-config').config,
|
||||
axe = require('axe-logger');
|
||||
|
||||
var PBKDF2_WORKER = '/crypto/pbkdf2-worker.js';
|
||||
|
||||
@ -119,5 +119,4 @@ define(function(require) {
|
||||
options.callback(null, result);
|
||||
}
|
||||
|
||||
return Crypto;
|
||||
});
|
||||
exports = Crypto;
|
@ -1,22 +1,12 @@
|
||||
(function() {
|
||||
'use strict';
|
||||
|
||||
// import web worker dependencies
|
||||
importScripts('../../lib/require.js');
|
||||
var pbkdf2 = require('./pbkdf2');
|
||||
|
||||
/**
|
||||
* In the web worker thread context, 'this' and 'self' can be used as a global
|
||||
* variable namespace similar to the 'window' object in the main thread
|
||||
*/
|
||||
self.onmessage = function(e) {
|
||||
// fetch dependencies via require.js
|
||||
require(['../../require-config'], function() {
|
||||
require.config({
|
||||
baseUrl: '../../lib'
|
||||
});
|
||||
|
||||
require(['js/crypto/pbkdf2'], function(pbkdf2) {
|
||||
|
||||
var i = e.data,
|
||||
key = null;
|
||||
|
||||
@ -30,9 +20,4 @@
|
||||
|
||||
// pass output back to main thread
|
||||
self.postMessage(key);
|
||||
|
||||
});
|
||||
});
|
||||
};
|
||||
|
||||
}());
|
@ -1,7 +1,7 @@
|
||||
/**
|
||||
* A Wrapper for Forge's PBKDF2 function
|
||||
*/
|
||||
define(['forge'], function(forge) {
|
||||
|
||||
'use strict';
|
||||
|
||||
var self = {};
|
||||
@ -21,5 +21,4 @@ define(['forge'], function(forge) {
|
||||
return forge.util.encode64(key);
|
||||
};
|
||||
|
||||
return self;
|
||||
});
|
||||
exports = self;
|
@ -1,12 +1,11 @@
|
||||
/**
|
||||
* High level crypto api that handles all calls to OpenPGP.js
|
||||
*/
|
||||
define(function(require) {
|
||||
|
||||
'use strict';
|
||||
|
||||
var openpgp = require('openpgp'),
|
||||
util = require('openpgp').util,
|
||||
config = require('js/app-config').config;
|
||||
var util = openpgp.util,
|
||||
config = require('../app-config').config;
|
||||
|
||||
var PGP = function() {
|
||||
openpgp.config.prefer_hash_algorithm = openpgp.enums.hash.sha256;
|
||||
@ -448,5 +447,4 @@ define(function(require) {
|
||||
return true;
|
||||
}
|
||||
|
||||
return PGP;
|
||||
});
|
||||
exports = PGP;
|
@ -1,4 +1,3 @@
|
||||
define(function() {
|
||||
'use strict';
|
||||
|
||||
var AdminDAO = function(restDao) {
|
||||
@ -59,5 +58,4 @@ define(function() {
|
||||
});
|
||||
};
|
||||
|
||||
return AdminDAO;
|
||||
});
|
||||
exports = AdminDAO;
|
@ -1,10 +1,7 @@
|
||||
/**
|
||||
* High level storage api that handles all persistence on the device. If
|
||||
* SQLcipher/SQLite is available, all data is securely persisted there,
|
||||
* through transparent encryption. If not, the crypto API is
|
||||
* used to encrypt data on the fly before persisting via a JSON store.
|
||||
* High level storage api that handles all persistence on the device.
|
||||
*/
|
||||
define(function() {
|
||||
|
||||
'use strict';
|
||||
|
||||
var DeviceStorageDAO = function(localDbDao) {
|
||||
@ -93,5 +90,4 @@ define(function() {
|
||||
return key;
|
||||
}
|
||||
|
||||
return DeviceStorageDAO;
|
||||
});
|
||||
exports = DeviceStorageDAO;
|
@ -1,11 +1,8 @@
|
||||
define(function(require) {
|
||||
'use strict';
|
||||
|
||||
var util = require('js/crypto/util'),
|
||||
_ = require('underscore'),
|
||||
config = require('js/app-config').config,
|
||||
str = require('js/app-config').string;
|
||||
|
||||
var util = require('crypto-lib').util,
|
||||
config = require('../app-config').config,
|
||||
str = require('../app-config').string;
|
||||
|
||||
//
|
||||
//
|
||||
@ -1727,5 +1724,4 @@ define(function(require) {
|
||||
});
|
||||
}
|
||||
|
||||
return EmailDAO;
|
||||
});
|
||||
exports = EmailDAO;
|
@ -1,4 +1,3 @@
|
||||
define(function() {
|
||||
'use strict';
|
||||
|
||||
/**
|
||||
@ -58,5 +57,4 @@ define(function() {
|
||||
}
|
||||
};
|
||||
|
||||
return InvitationDAO;
|
||||
});
|
||||
exports = InvitationDAO;
|
@ -2,12 +2,11 @@
|
||||
* A high-level Data-Access Api for handling Keypair synchronization
|
||||
* between the cloud service and the device's local storage
|
||||
*/
|
||||
define(function(require) {
|
||||
|
||||
'use strict';
|
||||
|
||||
var _ = require('underscore'),
|
||||
util = require('js/crypto/util'),
|
||||
config = require('js/app-config').config;
|
||||
var util = require('crypto-lib').util,
|
||||
config = require('../app-config').config;
|
||||
|
||||
var DB_PUBLICKEY = 'publickey',
|
||||
DB_PRIVATEKEY = 'privatekey',
|
||||
@ -934,5 +933,4 @@ define(function(require) {
|
||||
this._localDbDao.persist(prkLookupKey, privkey, callback);
|
||||
};
|
||||
|
||||
return KeychainDAO;
|
||||
});
|
||||
exports = KeychainDAO;
|
@ -1,13 +1,8 @@
|
||||
/**
|
||||
* Handles generic caching of JSON objects in a lawnchair adapter
|
||||
*/
|
||||
define(function(require) {
|
||||
'use strict';
|
||||
|
||||
var _ = require('underscore'),
|
||||
Lawnchair = require('lawnchair');
|
||||
require('lawnchairSQL');
|
||||
require('lawnchairIDB');
|
||||
'use strict';
|
||||
|
||||
var LawnchairDAO = function() {};
|
||||
|
||||
@ -218,5 +213,4 @@ define(function(require) {
|
||||
this._db.nuke(callback);
|
||||
};
|
||||
|
||||
return LawnchairDAO;
|
||||
});
|
||||
exports = LawnchairDAO;
|
@ -1,4 +1,3 @@
|
||||
define(function() {
|
||||
'use strict';
|
||||
|
||||
var PrivateKeyDAO = function(restDao) {
|
||||
@ -194,5 +193,4 @@ define(function() {
|
||||
}, callback);
|
||||
};
|
||||
|
||||
return PrivateKeyDAO;
|
||||
});
|
||||
exports = PrivateKeyDAO;
|
@ -1,4 +1,3 @@
|
||||
define(function() {
|
||||
'use strict';
|
||||
|
||||
var PublicKeyDAO = function(restDao) {
|
||||
@ -101,5 +100,4 @@ define(function() {
|
||||
this._restDao.remove(uri, callback);
|
||||
};
|
||||
|
||||
return PublicKeyDAO;
|
||||
});
|
||||
exports = PublicKeyDAO;
|
@ -1,7 +1,6 @@
|
||||
define(function(require) {
|
||||
'use strict';
|
||||
|
||||
var config = require('js/app-config').config;
|
||||
var config = require('../app-config').config;
|
||||
|
||||
var RestDAO = function(baseUri) {
|
||||
if (baseUri) {
|
||||
@ -119,5 +118,4 @@ define(function(require) {
|
||||
xhr.send(options.payload ? JSON.stringify(options.payload) : undefined);
|
||||
};
|
||||
|
||||
return RestDAO;
|
||||
});
|
||||
exports = RestDAO;
|
@ -1,7 +1,6 @@
|
||||
define(function(require) {
|
||||
'use strict';
|
||||
|
||||
var axe = require('axe'),
|
||||
var axe = require('axe-logger'),
|
||||
DEBUG_TAG = 'backbutton handler';
|
||||
|
||||
/**
|
||||
@ -53,5 +52,4 @@ define(function(require) {
|
||||
}
|
||||
}
|
||||
|
||||
return backBtnHandler;
|
||||
});
|
||||
exports = backBtnHandler;
|
@ -1,12 +1,11 @@
|
||||
define(function(require) {
|
||||
'use strict';
|
||||
|
||||
var TCPSocket = require('tcp-socket'),
|
||||
appConfig = require('js/app-config'),
|
||||
appConfig = require('../app-config'),
|
||||
cfg = appConfig.config,
|
||||
strings = appConfig.string,
|
||||
ImapClient = require('imap-client'),
|
||||
SmtpClient = require('smtpclient');
|
||||
SmtpClient = require('wo-smtpclient');
|
||||
|
||||
/**
|
||||
* The connection doctor can check your connection. In essence, it reconstructs what happens when
|
||||
@ -291,5 +290,4 @@ define(function(require) {
|
||||
return error;
|
||||
}
|
||||
|
||||
return ConnectionDoctor;
|
||||
});
|
||||
exports = ConnectionDoctor;
|
@ -1,7 +1,6 @@
|
||||
define(function(require) {
|
||||
'use strict';
|
||||
|
||||
var util = require('js/crypto/util');
|
||||
var util = require('crypto-lib').util;
|
||||
|
||||
var dl = {};
|
||||
|
||||
@ -56,5 +55,4 @@ define(function(require) {
|
||||
}
|
||||
};
|
||||
|
||||
return dl;
|
||||
});
|
||||
exports = dl;
|
@ -1,7 +1,6 @@
|
||||
define(function(require) {
|
||||
'use strict';
|
||||
|
||||
var axe = require('axe');
|
||||
var axe = require('axe-logger');
|
||||
|
||||
var er = {};
|
||||
er.attachHandler = function(scope) {
|
||||
@ -31,5 +30,4 @@ define(function(require) {
|
||||
};
|
||||
};
|
||||
|
||||
return er;
|
||||
});
|
||||
exports = er;
|
@ -1,7 +1,6 @@
|
||||
define(function(require) {
|
||||
'use strict';
|
||||
|
||||
var cfg = require('js/app-config').config;
|
||||
var cfg = require('../app-config').config;
|
||||
|
||||
var self = {};
|
||||
|
||||
@ -56,5 +55,4 @@ define(function(require) {
|
||||
notification.close();
|
||||
};
|
||||
|
||||
return self;
|
||||
});
|
||||
exports = self;
|
@ -1,4 +1,3 @@
|
||||
define(function() {
|
||||
'use strict';
|
||||
|
||||
var OAuth = function(googleApi) {
|
||||
@ -97,5 +96,4 @@ define(function() {
|
||||
});
|
||||
};
|
||||
|
||||
return OAuth;
|
||||
});
|
||||
exports = OAuth;
|
@ -1,13 +1,12 @@
|
||||
define(function(require) {
|
||||
'use strict';
|
||||
|
||||
var axe = require('axe'),
|
||||
cfg = require('js/app-config').config,
|
||||
updateV1 = require('js/util/update/update-v1'),
|
||||
updateV2 = require('js/util/update/update-v2'),
|
||||
updateV3 = require('js/util/update/update-v3'),
|
||||
updateV4 = require('js/util/update/update-v4'),
|
||||
updateV5 = require('js/util/update/update-v5');
|
||||
var axe = require('axe-logger'),
|
||||
cfg = require('../../app-config').config,
|
||||
updateV1 = require('./update-v1'),
|
||||
updateV2 = require('./update-v2'),
|
||||
updateV3 = require('./update-v3'),
|
||||
updateV4 = require('./update-v4'),
|
||||
updateV5 = require('./update-v5');
|
||||
|
||||
/**
|
||||
* Handles database migration
|
||||
@ -128,5 +127,4 @@ define(function(require) {
|
||||
}
|
||||
};
|
||||
|
||||
return UpdateHandler;
|
||||
});
|
||||
exports = UpdateHandler;
|
@ -1,4 +1,3 @@
|
||||
define(function() {
|
||||
'use strict';
|
||||
|
||||
/**
|
||||
@ -25,5 +24,4 @@ define(function() {
|
||||
});
|
||||
}
|
||||
|
||||
return updateV1;
|
||||
});
|
||||
exports = updateV1;
|
@ -1,4 +1,3 @@
|
||||
define(function() {
|
||||
'use strict';
|
||||
|
||||
/**
|
||||
@ -24,5 +23,4 @@ define(function() {
|
||||
});
|
||||
}
|
||||
|
||||
return updateV2;
|
||||
});
|
||||
exports = updateV2;
|
@ -1,4 +1,3 @@
|
||||
define(function() {
|
||||
'use strict';
|
||||
|
||||
/**
|
||||
@ -24,5 +23,4 @@ define(function() {
|
||||
});
|
||||
}
|
||||
|
||||
return update;
|
||||
});
|
||||
exports = update;
|
@ -1,7 +1,6 @@
|
||||
define(function(require) {
|
||||
'use strict';
|
||||
|
||||
var config = require('js/app-config').config;
|
||||
var config = require('../../app-config').config;
|
||||
|
||||
|
||||
/**
|
||||
@ -101,5 +100,4 @@ define(function(require) {
|
||||
}
|
||||
}
|
||||
|
||||
return update;
|
||||
});
|
||||
exports = update;
|
@ -1,4 +1,3 @@
|
||||
define(function() {
|
||||
'use strict';
|
||||
|
||||
var FOLDER_TYPE_INBOX = 'Inbox';
|
||||
@ -52,5 +51,4 @@ define(function() {
|
||||
});
|
||||
}
|
||||
|
||||
return update;
|
||||
});
|
||||
exports = update;
|
@ -1,245 +0,0 @@
|
||||
// uuid.js
|
||||
//
|
||||
// (c) 2010-2012 Robert Kieffer
|
||||
// MIT License
|
||||
// https://github.com/broofa/node-uuid
|
||||
(function() {
|
||||
var _global = this;
|
||||
|
||||
// Unique ID creation requires a high quality random # generator. We feature
|
||||
// detect to determine the best RNG source, normalizing to a function that
|
||||
// returns 128-bits of randomness, since that's what's usually required
|
||||
var _rng;
|
||||
|
||||
// Node.js crypto-based RNG - http://nodejs.org/docs/v0.6.2/api/crypto.html
|
||||
//
|
||||
// Moderately fast, high quality
|
||||
if (typeof(require) == 'function') {
|
||||
try {
|
||||
var _rb = require('crypto').randomBytes;
|
||||
_rng = _rb && function() {return _rb(16);};
|
||||
} catch(e) {}
|
||||
}
|
||||
|
||||
if (!_rng && _global.crypto && crypto.getRandomValues) {
|
||||
// WHATWG crypto-based RNG - http://wiki.whatwg.org/wiki/Crypto
|
||||
//
|
||||
// Moderately fast, high quality
|
||||
var _rnds8 = new Uint8Array(16);
|
||||
_rng = function whatwgRNG() {
|
||||
crypto.getRandomValues(_rnds8);
|
||||
return _rnds8;
|
||||
};
|
||||
}
|
||||
|
||||
if (!_rng) {
|
||||
// Math.random()-based (RNG)
|
||||
//
|
||||
// If all else fails, use Math.random(). It's fast, but is of unspecified
|
||||
// quality.
|
||||
var _rnds = new Array(16);
|
||||
_rng = function() {
|
||||
for (var i = 0, r; i < 16; i++) {
|
||||
if ((i & 0x03) === 0) r = Math.random() * 0x100000000;
|
||||
_rnds[i] = r >>> ((i & 0x03) << 3) & 0xff;
|
||||
}
|
||||
|
||||
return _rnds;
|
||||
};
|
||||
}
|
||||
|
||||
// Buffer class to use
|
||||
var BufferClass = typeof(Buffer) == 'function' ? Buffer : Array;
|
||||
|
||||
// Maps for number <-> hex string conversion
|
||||
var _byteToHex = [];
|
||||
var _hexToByte = {};
|
||||
for (var i = 0; i < 256; i++) {
|
||||
_byteToHex[i] = (i + 0x100).toString(16).substr(1);
|
||||
_hexToByte[_byteToHex[i]] = i;
|
||||
}
|
||||
|
||||
// **`parse()` - Parse a UUID into it's component bytes**
|
||||
function parse(s, buf, offset) {
|
||||
var i = (buf && offset) || 0, ii = 0;
|
||||
|
||||
buf = buf || [];
|
||||
s.toLowerCase().replace(/[0-9a-f]{2}/g, function(oct) {
|
||||
if (ii < 16) { // Don't overflow!
|
||||
buf[i + ii++] = _hexToByte[oct];
|
||||
}
|
||||
});
|
||||
|
||||
// Zero out remaining bytes if string was short
|
||||
while (ii < 16) {
|
||||
buf[i + ii++] = 0;
|
||||
}
|
||||
|
||||
return buf;
|
||||
}
|
||||
|
||||
// **`unparse()` - Convert UUID byte array (ala parse()) into a string**
|
||||
function unparse(buf, offset) {
|
||||
var i = offset || 0, bth = _byteToHex;
|
||||
return bth[buf[i++]] + bth[buf[i++]] +
|
||||
bth[buf[i++]] + bth[buf[i++]] + '-' +
|
||||
bth[buf[i++]] + bth[buf[i++]] + '-' +
|
||||
bth[buf[i++]] + bth[buf[i++]] + '-' +
|
||||
bth[buf[i++]] + bth[buf[i++]] + '-' +
|
||||
bth[buf[i++]] + bth[buf[i++]] +
|
||||
bth[buf[i++]] + bth[buf[i++]] +
|
||||
bth[buf[i++]] + bth[buf[i++]];
|
||||
}
|
||||
|
||||
// **`v1()` - Generate time-based UUID**
|
||||
//
|
||||
// Inspired by https://github.com/LiosK/UUID.js
|
||||
// and http://docs.python.org/library/uuid.html
|
||||
|
||||
// random #'s we need to init node and clockseq
|
||||
var _seedBytes = _rng();
|
||||
|
||||
// Per 4.5, create and 48-bit node id, (47 random bits + multicast bit = 1)
|
||||
var _nodeId = [
|
||||
_seedBytes[0] | 0x01,
|
||||
_seedBytes[1], _seedBytes[2], _seedBytes[3], _seedBytes[4], _seedBytes[5]
|
||||
];
|
||||
|
||||
// Per 4.2.2, randomize (14 bit) clockseq
|
||||
var _clockseq = (_seedBytes[6] << 8 | _seedBytes[7]) & 0x3fff;
|
||||
|
||||
// Previous uuid creation time
|
||||
var _lastMSecs = 0, _lastNSecs = 0;
|
||||
|
||||
// See https://github.com/broofa/node-uuid for API details
|
||||
function v1(options, buf, offset) {
|
||||
var i = buf && offset || 0;
|
||||
var b = buf || [];
|
||||
|
||||
options = options || {};
|
||||
|
||||
var clockseq = options.clockseq != null ? options.clockseq : _clockseq;
|
||||
|
||||
// UUID timestamps are 100 nano-second units since the Gregorian epoch,
|
||||
// (1582-10-15 00:00). JSNumbers aren't precise enough for this, so
|
||||
// time is handled internally as 'msecs' (integer milliseconds) and 'nsecs'
|
||||
// (100-nanoseconds offset from msecs) since unix epoch, 1970-01-01 00:00.
|
||||
var msecs = options.msecs != null ? options.msecs : new Date().getTime();
|
||||
|
||||
// Per 4.2.1.2, use count of uuid's generated during the current clock
|
||||
// cycle to simulate higher resolution clock
|
||||
var nsecs = options.nsecs != null ? options.nsecs : _lastNSecs + 1;
|
||||
|
||||
// Time since last uuid creation (in msecs)
|
||||
var dt = (msecs - _lastMSecs) + (nsecs - _lastNSecs)/10000;
|
||||
|
||||
// Per 4.2.1.2, Bump clockseq on clock regression
|
||||
if (dt < 0 && options.clockseq == null) {
|
||||
clockseq = clockseq + 1 & 0x3fff;
|
||||
}
|
||||
|
||||
// Reset nsecs if clock regresses (new clockseq) or we've moved onto a new
|
||||
// time interval
|
||||
if ((dt < 0 || msecs > _lastMSecs) && options.nsecs == null) {
|
||||
nsecs = 0;
|
||||
}
|
||||
|
||||
// Per 4.2.1.2 Throw error if too many uuids are requested
|
||||
if (nsecs >= 10000) {
|
||||
throw new Error('uuid.v1(): Can\'t create more than 10M uuids/sec');
|
||||
}
|
||||
|
||||
_lastMSecs = msecs;
|
||||
_lastNSecs = nsecs;
|
||||
_clockseq = clockseq;
|
||||
|
||||
// Per 4.1.4 - Convert from unix epoch to Gregorian epoch
|
||||
msecs += 12219292800000;
|
||||
|
||||
// `time_low`
|
||||
var tl = ((msecs & 0xfffffff) * 10000 + nsecs) % 0x100000000;
|
||||
b[i++] = tl >>> 24 & 0xff;
|
||||
b[i++] = tl >>> 16 & 0xff;
|
||||
b[i++] = tl >>> 8 & 0xff;
|
||||
b[i++] = tl & 0xff;
|
||||
|
||||
// `time_mid`
|
||||
var tmh = (msecs / 0x100000000 * 10000) & 0xfffffff;
|
||||
b[i++] = tmh >>> 8 & 0xff;
|
||||
b[i++] = tmh & 0xff;
|
||||
|
||||
// `time_high_and_version`
|
||||
b[i++] = tmh >>> 24 & 0xf | 0x10; // include version
|
||||
b[i++] = tmh >>> 16 & 0xff;
|
||||
|
||||
// `clock_seq_hi_and_reserved` (Per 4.2.2 - include variant)
|
||||
b[i++] = clockseq >>> 8 | 0x80;
|
||||
|
||||
// `clock_seq_low`
|
||||
b[i++] = clockseq & 0xff;
|
||||
|
||||
// `node`
|
||||
var node = options.node || _nodeId;
|
||||
for (var n = 0; n < 6; n++) {
|
||||
b[i + n] = node[n];
|
||||
}
|
||||
|
||||
return buf ? buf : unparse(b);
|
||||
}
|
||||
|
||||
// **`v4()` - Generate random UUID**
|
||||
|
||||
// See https://github.com/broofa/node-uuid for API details
|
||||
function v4(options, buf, offset) {
|
||||
// Deprecated - 'format' argument, as supported in v1.2
|
||||
var i = buf && offset || 0;
|
||||
|
||||
if (typeof(options) == 'string') {
|
||||
buf = options == 'binary' ? new BufferClass(16) : null;
|
||||
options = null;
|
||||
}
|
||||
options = options || {};
|
||||
|
||||
var rnds = options.random || (options.rng || _rng)();
|
||||
|
||||
// Per 4.4, set bits for version and `clock_seq_hi_and_reserved`
|
||||
rnds[6] = (rnds[6] & 0x0f) | 0x40;
|
||||
rnds[8] = (rnds[8] & 0x3f) | 0x80;
|
||||
|
||||
// Copy bytes to buffer, if provided
|
||||
if (buf) {
|
||||
for (var ii = 0; ii < 16; ii++) {
|
||||
buf[i + ii] = rnds[ii];
|
||||
}
|
||||
}
|
||||
|
||||
return buf || unparse(rnds);
|
||||
}
|
||||
|
||||
// Export public API
|
||||
var uuid = v4;
|
||||
uuid.v1 = v1;
|
||||
uuid.v4 = v4;
|
||||
uuid.parse = parse;
|
||||
uuid.unparse = unparse;
|
||||
uuid.BufferClass = BufferClass;
|
||||
|
||||
if (_global.define && define.amd) {
|
||||
// Publish as AMD module
|
||||
define(function() {return uuid;});
|
||||
} else if (typeof(module) != 'undefined' && module.exports) {
|
||||
// Publish as node.js module
|
||||
module.exports = uuid;
|
||||
} else {
|
||||
// Publish as global (in browsers)
|
||||
var _previousRoot = _global.uuid;
|
||||
|
||||
// **`noConflict()` - (browser only) to reset global 'uuid' var**
|
||||
uuid.noConflict = function() {
|
||||
_global.uuid = _previousRoot;
|
||||
return uuid;
|
||||
};
|
||||
|
||||
_global.uuid = uuid;
|
||||
}
|
||||
}());
|
@ -1,10 +0,0 @@
|
||||
{
|
||||
"name": "Whiteout Mail",
|
||||
"version": "0.0.1",
|
||||
"main": "index.html",
|
||||
"window": {
|
||||
"toolbar": false,
|
||||
"width": 1024,
|
||||
"height": 768
|
||||
}
|
||||
}
|
@ -1,68 +0,0 @@
|
||||
(function() {
|
||||
'use strict';
|
||||
|
||||
requirejs.config({
|
||||
nodeRequire: (typeof module !== 'undefined' && module.exports) ? require : undefined,
|
||||
baseUrl: 'lib',
|
||||
paths: {
|
||||
js: '../js',
|
||||
test: '../../test',
|
||||
jquery: 'jquery.min',
|
||||
underscore: 'underscore/underscore-min',
|
||||
lawnchair: 'lawnchair/lawnchair-git',
|
||||
lawnchairSQL: 'lawnchair/lawnchair-adapter-webkit-sqlite-git',
|
||||
lawnchairIDB: 'lawnchair/lawnchair-adapter-indexed-db-git',
|
||||
angular: 'angular/angular.min',
|
||||
angularRoute: 'angular/angular-route.min',
|
||||
angularAnimate: 'angular/angular-animate.min',
|
||||
ngInfiniteScroll: 'ng-infinite-scroll.min',
|
||||
ngTagsInput: 'ngtagsinput/ng-tags-input.min',
|
||||
uuid: 'uuid/uuid',
|
||||
forge: 'forge/forge.min',
|
||||
punycode: 'punycode.min',
|
||||
openpgp: 'openpgp/openpgp',
|
||||
fastclick: 'fastclick/fastclick'
|
||||
},
|
||||
shim: {
|
||||
forge: {
|
||||
exports: 'forge'
|
||||
},
|
||||
jquery: {
|
||||
exports: '$'
|
||||
},
|
||||
angular: {
|
||||
exports: 'angular',
|
||||
deps: ['jquery']
|
||||
},
|
||||
angularRoute: {
|
||||
exports: 'angular',
|
||||
deps: ['angular']
|
||||
},
|
||||
angularAnimate: {
|
||||
exports: 'angular',
|
||||
deps: ['angular']
|
||||
},
|
||||
ngInfiniteScroll: {
|
||||
exports: 'angular',
|
||||
deps: ['jquery', 'angular']
|
||||
},
|
||||
ngTagsInput: {
|
||||
exports: 'angular',
|
||||
deps: ['angular']
|
||||
},
|
||||
lawnchair: {
|
||||
exports: 'Lawnchair'
|
||||
},
|
||||
lawnchairSQL: {
|
||||
deps: ['lawnchair']
|
||||
},
|
||||
lawnchairIDB: {
|
||||
deps: ['lawnchair', 'lawnchairSQL']
|
||||
},
|
||||
underscore: {
|
||||
exports: '_'
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
}());
|
Loading…
Reference in New Issue
Block a user