From 6f8d9cfbac6614ba79111f7eb4c6eab31692f995 Mon Sep 17 00:00:00 2001 From: Johan Brook Date: Thu, 27 Oct 2016 22:05:48 -0400 Subject: [PATCH 1/8] Stylistic changes --- lib/utils.js | 36 ++++++++++++++++-------------------- 1 file changed, 16 insertions(+), 20 deletions(-) diff --git a/lib/utils.js b/lib/utils.js index b0bf80d..9b6b0aa 100644 --- a/lib/utils.js +++ b/lib/utils.js @@ -27,15 +27,13 @@ const sass = (function() { * @param {String} filePath * @return {Boolean} */ -const fileExists = function (filePath) { +const fileExists = (filePath) => { try { return fs.statSync(filePath).isFile(); + } catch (err) { + return false; } - catch (err) - { - return false; - } -} +}; const TAG = 'mailer-utils'; @@ -168,11 +166,11 @@ Utils = { }, readFile(relativePathFromApp) { - let file - if (Meteor.isAppTest - || Meteor.isTest) { - // note: - // * this DOES WORK with Meteor.isTest (=unit test mode) + let file; + + if (Meteor.isAppTest || Meteor.isTest) { + // Note: + // * this does work with Meteor.isTest (=unit test mode) // * Meteor.isAppTest is NOT TESTED yet (=in-app test mode) // // background-info: we had NO luck with "Assets.absoluteFilePath(relativePathFromApp)", @@ -185,9 +183,7 @@ Utils = { } try { - return fs.readFileSync(file, { - encoding: 'utf8' - }); + return fs.readFileSync(file, { encoding: 'utf8' }); } catch (ex) { throw new Meteor.Error(500, `Could not find file: ${file}`, ex.message); } @@ -206,11 +202,11 @@ ${packageToRecommend}`, TAG); return Utils.readFile(scss); } - let file - if (Meteor.isAppTest - || Meteor.isTest) { - // note: - // * this DOES WORK with Meteor.isTest (=unit test mode) + let file; + + if (Meteor.isAppTest || Meteor.isTest) { + // Note: + // * this does work with Meteor.isTest (=unit test mode) // * Meteor.isAppTest is NOT TESTED yet (=in-app test mode) file = Path.join(process.cwd(), 'assets', 'app', scss); } else { @@ -221,7 +217,7 @@ ${packageToRecommend}`, TAG); if (fileExists(file)) { try { return sass.renderSync({ - file: file, + file, sourceMap: false }).css.toString(); } catch (ex) { From 0daf4e6edaed04e17933e94f836baca845bf4aee Mon Sep 17 00:00:00 2001 From: Johan Brook Date: Thu, 27 Oct 2016 22:25:53 -0400 Subject: [PATCH 2/8] Add 'test' tests --- .eslintrc | 5 +---- Makefile | 10 ++++++++++ README.md | 26 ++++++++++++++++++++++---- export.js | 3 +++ lib/mailer.js | 5 +++-- lib/mailer.test.js | 11 +++++++++++ lib/routing.js | 9 ++++----- package.js | 16 +++++++++++++--- package.json | 4 +++- tests.js | 2 ++ 10 files changed, 72 insertions(+), 19 deletions(-) create mode 100644 Makefile create mode 100644 export.js create mode 100644 lib/mailer.test.js create mode 100644 tests.js diff --git a/.eslintrc b/.eslintrc index 57a0db7..d07f674 100644 --- a/.eslintrc +++ b/.eslintrc @@ -7,10 +7,7 @@ "juice": false, "FlowRouter": false, "Router": false, - "TemplateHelpers": true, "SSR": false, - "Picker": false, - "Routing": true, - "Templates": true + "Picker": false } } diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..bc5b6ad --- /dev/null +++ b/Makefile @@ -0,0 +1,10 @@ +PORT=3100 +TEST_DRIVER=dispatch:mocha + +test: + @meteor test-packages ./ --driver-package $(TEST_DRIVER) --once + +test-watch: + @TEST_WATCH=1 meteor test-packages ./ --driver-package $(TEST_DRIVER) --port $(PORT) + +.PHONY: test, test-watch diff --git a/README.md b/README.md index 41daacd..bfc7cc8 100644 --- a/README.md +++ b/README.md @@ -562,7 +562,7 @@ route: { PRs and help is welcomed. -## Develop +### Develop Clone repo, and run: @@ -570,9 +570,27 @@ Clone repo, and run: npm install ``` -to install dev dev dependencies. We're using ESLint for linting. +to install dev dev dependencies. We're using ESLint for linting. Lint with: -## Things to do +``` +npm run lint +``` + +Run tests with: + +``` +npm test +``` + +or have test watching with: + +``` +npm run test:watch +``` + +You'll find tests in the `lib` directory along with the source files. + +### Things to do - [ ] Tests. @@ -580,4 +598,4 @@ Also see [open issues](https://github.com/lookback/meteor-emails/issues). *** -Made by [Lookback](http://github.com/lookback) +Made by [Johan](http://johanbrook.com) in [Lookback](http://github.com/lookback) diff --git a/export.js b/export.js new file mode 100644 index 0000000..45875c7 --- /dev/null +++ b/export.js @@ -0,0 +1,3 @@ +import { theModule } from './lib/mailer'; + +Mailer = theModule; diff --git a/lib/mailer.js b/lib/mailer.js index ec6d8ec..5aba693 100644 --- a/lib/mailer.js +++ b/lib/mailer.js @@ -5,6 +5,7 @@ // See the [GitHub repo](https://github.com/lookback/meteor-emails) for README. // Made by Johan Brook for [Lookback](https://github.com/lookback). +import RoutingMiddleware from './routing'; const TAG = 'mailer'; @@ -19,7 +20,7 @@ const TAG = 'mailer'; // - `disabled`, optionally disable the actual email sending. Useful for E2E testing. // Defaults to `false`. // - `addRoutes`, should we add preview and send routes? Defaults to `true` in development. -Mailer = { +export const Mailer = { settings: { silent: false, routePrefix: 'emails', @@ -300,7 +301,7 @@ Mailer.init = function(opts) { const obj = _.extend(this, factory(opts)); if (obj.settings.addRoutes) { - obj.use(Routing); + obj.use(RoutingMiddleware); } obj.init(); diff --git a/lib/mailer.test.js b/lib/mailer.test.js new file mode 100644 index 0000000..62d8fea --- /dev/null +++ b/lib/mailer.test.js @@ -0,0 +1,11 @@ +/* eslint-env mocha */ + +import Mailer from './mailer'; +import { assert } from 'meteor/practicalmeteor:chai'; + +describe('Mailer', () => { + + it('should be defined', () => { + assert.isObject(Mailer); + }); +}); diff --git a/lib/routing.js b/lib/routing.js index 2cbb425..f519c32 100644 --- a/lib/routing.js +++ b/lib/routing.js @@ -12,11 +12,10 @@ const CONTENT_TYPES = { text: 'text/plain' }; -const arrayOrString = (str) => { - return Array.isArray(str) ? str : str.split(','); -}; +const arrayOrString = (str) => + Array.isArray(str) ? str : str.split(','); -Routing = (template, settings, render, compile) => { +export function Routing(template, settings, render, compile) { check(template, Object); check(template.name, String); @@ -151,4 +150,4 @@ Routing = (template, settings, render, compile) => { Picker.route(path, (params, req, res) => action(req, res, params, template)); }); -}; +} diff --git a/package.js b/package.js index c139ab0..7b0f010 100644 --- a/package.js +++ b/package.js @@ -23,7 +23,7 @@ Package.onUse(function(api) { ], where, { weak: true }); api.use([ - 'ecmascript@0.1.5', + 'ecmascript', 'check', 'underscore', 'email', @@ -35,9 +35,19 @@ Package.onUse(function(api) { api.addFiles([ 'lib/utils.js', 'lib/template-helpers.js', - 'lib/routing.js', - 'lib/mailer.js' + 'export.js' ], where); api.export('Mailer', where); }); + +Package.onTest(function(api) { + api.use([ + 'ecmascript', + 'dispatch:mocha', + 'practicalmeteor:chai', + 'lookback:emails' + ], 'server'); + + api.mainModule('tests.js', 'server'); +}); diff --git a/package.json b/package.json index b701462..151c51c 100644 --- a/package.json +++ b/package.json @@ -7,7 +7,9 @@ "url": "git+https://github.com/lookback/meteor-emails.git" }, "scripts": { - "lint": "./node_modules/.bin/eslint ." + "lint": "./node_modules/.bin/eslint .", + "test": "make test", + "test:watch": "make test-watch" }, "license": "MIT", "bugs": { diff --git a/tests.js b/tests.js new file mode 100644 index 0000000..37cc25d --- /dev/null +++ b/tests.js @@ -0,0 +1,2 @@ +// Run tests on individual modules +import './lib/mailer.test.js'; From 2a60d336785b8c7edf73009f40406884cfa14946 Mon Sep 17 00:00:00 2001 From: Johan Brook Date: Thu, 27 Oct 2016 23:44:06 -0400 Subject: [PATCH 3/8] Convert to modules --- .eslintrc | 1 - export.js | 2 +- lib/mailer.js | 2 ++ lib/mailer.test.js | 1 - lib/routing.js | 6 ++++-- lib/template-helpers.js | 7 +++++-- lib/utils.js | 7 +++++-- package.js | 5 ++--- 8 files changed, 19 insertions(+), 12 deletions(-) diff --git a/.eslintrc b/.eslintrc index d07f674..8065a0e 100644 --- a/.eslintrc +++ b/.eslintrc @@ -3,7 +3,6 @@ "globals": { "Mailer": true, - "Utils": true, "juice": false, "FlowRouter": false, "Router": false, diff --git a/export.js b/export.js index 45875c7..e1bcdb0 100644 --- a/export.js +++ b/export.js @@ -1,3 +1,3 @@ -import { theModule } from './lib/mailer'; +import { Mailer as theModule } from './lib/mailer'; Mailer = theModule; diff --git a/lib/mailer.js b/lib/mailer.js index 5aba693..5e4853a 100644 --- a/lib/mailer.js +++ b/lib/mailer.js @@ -6,6 +6,8 @@ // Made by Johan Brook for [Lookback](https://github.com/lookback). import RoutingMiddleware from './routing'; +import TemplateHelpers from './template-helpers'; +import Utils from './utils'; const TAG = 'mailer'; diff --git a/lib/mailer.test.js b/lib/mailer.test.js index 62d8fea..f30538d 100644 --- a/lib/mailer.test.js +++ b/lib/mailer.test.js @@ -4,7 +4,6 @@ import Mailer from './mailer'; import { assert } from 'meteor/practicalmeteor:chai'; describe('Mailer', () => { - it('should be defined', () => { assert.isObject(Mailer); }); diff --git a/lib/routing.js b/lib/routing.js index f519c32..3897678 100644 --- a/lib/routing.js +++ b/lib/routing.js @@ -7,6 +7,8 @@ // It will apply the returned data from a `data` function on the // provided `route` prop from the template. +import Utils from './utils'; + const CONTENT_TYPES = { html: 'text/html', text: 'text/plain' @@ -15,7 +17,7 @@ const CONTENT_TYPES = { const arrayOrString = (str) => Array.isArray(str) ? str : str.split(','); -export function Routing(template, settings, render, compile) { +export default function Routing(template, settings, render, compile) { check(template, Object); check(template.name, String); @@ -122,7 +124,7 @@ export function Routing(template, settings, render, compile) { res.writeHead(200); const reallySentEmail = !!process.env.MAIL_URL; msg = reallySentEmail - ? `Sent test email to ${to}` + ((cc) ? ` and cc: ${cc}` : '') + ((bcc) ? `, and bcc: ${bcc}` : '') + ? `Sent test email to ${to}` + ((cc) ? ` and cc: ${cc}` : '') + ((bcc) ? `, and bcc: ${bcc}` : '') // eslint-disable-line : 'Sent email to STDOUT'; } diff --git a/lib/template-helpers.js b/lib/template-helpers.js index 53435ef..90329fb 100644 --- a/lib/template-helpers.js +++ b/lib/template-helpers.js @@ -1,7 +1,9 @@ +import Utils from './utils'; + // # Template helpers // // Built-in template helpers. -TemplateHelpers = { +export default { // `baseUrl` gives you a full absolute URL from a relative path. // // {{ baseUrl '/some-path' }} => http://root-domain.com/some-path @@ -17,7 +19,8 @@ TemplateHelpers = { const theRouter = Package['iron:router'] ? Router : FlowRouter; if (theRouter && theRouter.path) { - return Utils.joinUrl(Mailer.settings.baseUrl, theRouter.path.call(theRouter, routeName, params.hash)); + return Utils.joinUrl(Mailer.settings.baseUrl, + theRouter.path.call(theRouter, routeName, params.hash)); } Utils.Logger.warn(`We noticed that neither Iron Router nor FlowRouter is installed, thus 'emailUrlFor' can't render a path to the route '${routeName}.`); diff --git a/lib/utils.js b/lib/utils.js index 9b6b0aa..e2a878a 100644 --- a/lib/utils.js +++ b/lib/utils.js @@ -76,7 +76,7 @@ let ROOT = privateDir && Path.join(privateDir, 'programs', 'server', 'assets', ' ROOT = ROOT || developmentPrivateDir(); -Utils = { +const Utils = { // Takes an HTML string and outputs a text version of it. Catches and logs errors. toText(html, opts = {}) { try { @@ -196,7 +196,8 @@ Utils = { ? 'Please run `meteor npm install --save node-sass` in your app to add sass support.' : 'Please run `meteor add chrisbutler:node-sass` to add sass support.'; - Utils.Logger.warn(`Could not find sass module. Sass support is opt-in since lookback:emails@0.5.0. + Utils.Logger + .warn(`Could not find sass module. Sass support is opt-in since lookback:emails@0.5.0. ${packageToRecommend}`, TAG); return Utils.readFile(scss); @@ -228,3 +229,5 @@ ${packageToRecommend}`, TAG); return ''; // fallback: on error, or if file does NOT exist } }; + +export default Utils; diff --git a/package.js b/package.js index 7b0f010..c07edc4 100644 --- a/package.js +++ b/package.js @@ -33,8 +33,6 @@ Package.onUse(function(api) { ], where); api.addFiles([ - 'lib/utils.js', - 'lib/template-helpers.js', 'export.js' ], where); @@ -44,9 +42,10 @@ Package.onUse(function(api) { Package.onTest(function(api) { api.use([ 'ecmascript', + 'underscore', 'dispatch:mocha', 'practicalmeteor:chai', - 'lookback:emails' + 'lookback:emails', ], 'server'); api.mainModule('tests.js', 'server'); From e4761ec5e581384064637262167fdb4e09ef3a9c Mon Sep 17 00:00:00 2001 From: Johan Brook Date: Thu, 27 Oct 2016 23:44:34 -0400 Subject: [PATCH 4/8] Setup example app for app testing --- Makefile | 13 ++++++++++-- example/.meteor/packages | 3 +++ example/.meteor/versions | 4 ++++ example/package.json | 3 ++- example/server/lib/template-helpers.js | 4 ++-- example/server/lib/templates.js | 28 ++++++++++++------------- example/server/server.app-test.js | 29 ++++++++++++++++++++++++++ example/server/server.js | 3 +++ package.json | 6 ++++-- 9 files changed, 71 insertions(+), 22 deletions(-) create mode 100644 example/server/server.app-test.js diff --git a/Makefile b/Makefile index bc5b6ad..f28beab 100644 --- a/Makefile +++ b/Makefile @@ -1,8 +1,17 @@ PORT=3100 TEST_DRIVER=dispatch:mocha -test: - @meteor test-packages ./ --driver-package $(TEST_DRIVER) --once +lint: + @./node_modules/.bin/eslint . + +test-package: + @meteor test-packages ./ --driver-package $(TEST_DRIVER) --once --port $(PORT) + +test-app: + @cd example && npm test -- --port $(PORT) && cd - + +test-app-watch: + @cd example && npm run test:watch -- --port $(PORT) test-watch: @TEST_WATCH=1 meteor test-packages ./ --driver-package $(TEST_DRIVER) --port $(PORT) diff --git a/example/.meteor/packages b/example/.meteor/packages index b7da44d..9dcc2eb 100644 --- a/example/.meteor/packages +++ b/example/.meteor/packages @@ -15,3 +15,6 @@ kadira:flow-router #iron:router standard-minifier-css standard-minifier-js + +practicalmeteor:chai +dispatch:mocha diff --git a/example/.meteor/versions b/example/.meteor/versions index 17147ac..27f1965 100644 --- a/example/.meteor/versions +++ b/example/.meteor/versions @@ -12,12 +12,14 @@ caching-compiler@1.0.5_1 caching-html-compiler@1.0.6 callback-hook@1.0.9 check@1.2.3 +coffeescript@1.0.17 ddp@1.2.5 ddp-client@1.2.8_1 ddp-common@1.2.6 ddp-server@1.2.8_1 deps@1.0.12 diff-sequence@1.0.6 +dispatch:mocha@0.0.9 ecmascript@0.4.6_1 ecmascript-runtime@0.2.11_1 ejson@1.0.12 @@ -47,6 +49,8 @@ mongo-id@1.0.5 npm-mongo@1.4.44_1 observe-sequence@1.0.12 ordered-dict@1.0.8 +practicalmeteor:chai@2.1.0_1 +practicalmeteor:mocha-core@1.0.1 promise@0.7.2_1 random@1.0.10 reactive-dict@1.1.8 diff --git a/example/package.json b/example/package.json index efb15a8..e7e87e3 100644 --- a/example/package.json +++ b/example/package.json @@ -2,7 +2,8 @@ "name": "example", "version": "1.0.0", "scripts": { - "test": "echo \"Error: no test specified\" && exit 1" + "test": "meteor test --driver-package dispatch:mocha --once --full-app", + "test:watch": "TEST_WATCH=1 meteor test --port 5012 --driver-package dispatch:mocha --full-app" }, "author": "Johan Brook", "license": "MIT", diff --git a/example/server/lib/template-helpers.js b/example/server/lib/template-helpers.js index 613ccae..687faed 100644 --- a/example/server/lib/template-helpers.js +++ b/example/server/lib/template-helpers.js @@ -1,4 +1,4 @@ -TemplateHelpers = { +export default { enumerate(arr, limit, oxfordComma) { if (arr) { @@ -24,7 +24,7 @@ TemplateHelpers = { let suffix = ' and '; if (oxfordComma === true - || (typeof oxfordComma === 'number' && length >= oxfordComma)) { + || typeof oxfordComma === 'number' && length >= oxfordComma) { suffix = `, ${suffix}`; } diff --git a/example/server/lib/templates.js b/example/server/lib/templates.js index dd05cd3..5a770e1 100644 --- a/example/server/lib/templates.js +++ b/example/server/lib/templates.js @@ -1,22 +1,20 @@ -Templates = {}; +export default { + sample: { + path: 'sample-email/template.html', // Relative to the 'private' dir. + scss: 'sample-email/style.scss', // Mail specific SCSS. -Templates.sample = { - path: 'sample-email/template.html', // Relative to the 'private' dir. - scss: 'sample-email/style.scss', // Mail specific SCSS. + helpers: { + capitalizedName() { + return this.name.charAt(0).toUpperCase() + this.name.slice(1); + } + }, - helpers: { - capitalizedName() { - return this.name.charAt(0).toUpperCase() + this.name.slice(1); - } - }, - - route: { - path: '/sample/:name', - data: function(params) { - return { + route: { + path: '/sample/:name', + data: (params) => ({ name: params.name, names: ['Johan', 'John', 'Paul', 'Ringo'] - }; + }) } } }; diff --git a/example/server/server.app-test.js b/example/server/server.app-test.js new file mode 100644 index 0000000..771a2c5 --- /dev/null +++ b/example/server/server.app-test.js @@ -0,0 +1,29 @@ +/* eslint-env mocha */ +import { Mailer } from 'meteor/lookback:emails'; +import { assert } from 'meteor/practicalmeteor:chai'; + +describe('Render email', () => { + + it('should render an email', () => { + const string = Mailer.render('sample', { + name: 'johan', + names: ['Johan', 'John', 'Paul', 'Ringo'] + }); + + assert.isString(string); + assert.match(string, new RegExp('

Hi Johan', 'gm'), 'includes heading with capitalized name'); + }); + + it('should render with a layout', () => { + const searchFor = 'Paul is dead'; + + const string = Mailer.render('sample', { + name: 'johan', + names: ['Johan', 'John', 'Paul', 'Ringo'], + preview: searchFor + }); + + assert.isString(string); + assert.match(string, new RegExp(`${searchFor}`, 'gm'), 'includes a element from layout.html'); + }); +}); diff --git a/example/server/server.js b/example/server/server.js index 53e2d02..dc3575a 100644 --- a/example/server/server.js +++ b/example/server/server.js @@ -1,3 +1,6 @@ +import TemplateHelpers from './lib/template-helpers'; +import Templates from './lib/templates'; + if (!process.env.MAIL_URL) { process.env.MAIL_URL = Meteor.settings.MAIL_URL; } diff --git a/package.json b/package.json index 151c51c..4c9575c 100644 --- a/package.json +++ b/package.json @@ -6,9 +6,11 @@ "type": "git", "url": "git+https://github.com/lookback/meteor-emails.git" }, + "author": "Johan Brook", "scripts": { - "lint": "./node_modules/.bin/eslint .", - "test": "make test", + "lint": "make lint", + "pretest": "npm run lint", + "test": "make test-app && make test-package", "test:watch": "make test-watch" }, "license": "MIT", From 65f3fa97c09a6d9b41d7379241c21479ee25964b Mon Sep 17 00:00:00 2001 From: Johan Brook <johan.jvb@gmail.com> Date: Thu, 27 Oct 2016 23:44:42 -0400 Subject: [PATCH 5/8] Run CI tests in Circle --- circle.yml | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) create mode 100644 circle.yml diff --git a/circle.yml b/circle.yml new file mode 100644 index 0000000..5f27da5 --- /dev/null +++ b/circle.yml @@ -0,0 +1,17 @@ +machine: + node: + version: 5.8.0 + +dependencies: + cache_directories: + - "~/.meteor" + - "~/.npm" + override: + # -- CACHE METEOR -- + # Restore the meteor symlink + - if [ -d ~/.meteor ]; then sudo ln -s ~/.meteor/meteor /usr/local/bin/meteor; fi + # Install Meteor (if not restored from cache) + - if [ ! -e ~/.meteor/meteor ]; then curl https://install.meteor.com | /bin/sh; fi + - npm install --no-progress + - meteor npm install --no-progress: + pwd: example From ba95b7c36d1848aa92cf86c07ee864a547696c65 Mon Sep 17 00:00:00 2001 From: Johan Brook <johan.jvb@gmail.com> Date: Thu, 27 Oct 2016 23:49:53 -0400 Subject: [PATCH 6/8] Add Circle badge to README --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index bfc7cc8..c5732bb 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,7 @@ # Meteor Emails +[![CircleCI](https://circleci.com/gh/lookback/meteor-emails.svg?style=shield)](https://circleci.com/gh/lookback/meteor-emails) + `lookback:emails` is a Meteor package that makes it easier to build, test and debug rich HTML emails. Usually, building HTML emails yourself is tedious. On top of that, add the need for data integration and thus a template language (for sending out daily digest emails, for instance). We wanted a way to preview the email in the browser *with real data* in order to quickly iterate on the design, instead of alternating between code editor and email client. From 9c40a6c312f1b895da545a5b9535a74afd5e9290 Mon Sep 17 00:00:00 2001 From: Johan Brook <johan.jvb@gmail.com> Date: Fri, 28 Oct 2016 10:22:05 -0400 Subject: [PATCH 7/8] Update to Meteor 1.4.2 for example app --- example/.meteor/.finished-upgraders | 2 + example/.meteor/packages | 11 +-- example/.meteor/release | 2 +- example/.meteor/versions | 109 ++++++++++++++-------------- 4 files changed, 65 insertions(+), 59 deletions(-) diff --git a/example/.meteor/.finished-upgraders b/example/.meteor/.finished-upgraders index dacc2c0..aa60704 100644 --- a/example/.meteor/.finished-upgraders +++ b/example/.meteor/.finished-upgraders @@ -11,3 +11,5 @@ notices-for-facebook-graph-api-2 1.2.0-cordova-changes 1.2.0-breaking-changes 1.3.0-split-minifiers-package +1.4.0-remove-old-dev-bundle-link +1.4.1-add-shell-server-package diff --git a/example/.meteor/packages b/example/.meteor/packages index 9dcc2eb..42991ec 100644 --- a/example/.meteor/packages +++ b/example/.meteor/packages @@ -4,17 +4,18 @@ # 'meteor add' and 'meteor remove' will edit this file for you, # but you can also edit it by hand. -ecmascript +ecmascript@0.5.9 lookback:emails #chrisbutler:node-sass@3.2.0 -meteor-base +meteor-base@1.0.4 blaze-html-templates -reload +reload@1.1.11 spacebars kadira:flow-router #iron:router -standard-minifier-css -standard-minifier-js +standard-minifier-css@1.3.2 +standard-minifier-js@1.2.1 practicalmeteor:chai dispatch:mocha +shell-server diff --git a/example/.meteor/release b/example/.meteor/release index 72980bc..c260846 100644 --- a/example/.meteor/release +++ b/example/.meteor/release @@ -1 +1 @@ -METEOR@1.4.1.1 +METEOR@1.4.2 diff --git a/example/.meteor/versions b/example/.meteor/versions index 27f1965..1a4dbb4 100644 --- a/example/.meteor/versions +++ b/example/.meteor/versions @@ -1,73 +1,76 @@ allow-deny@1.0.5 -autoupdate@1.2.10 -babel-compiler@6.8.3 -babel-runtime@0.1.9_1 -base64@1.0.9 -binary-heap@1.0.9 -blaze@2.1.8 -blaze-html-templates@1.0.4 -blaze-tools@1.0.9 -boilerplate-generator@1.0.9 -caching-compiler@1.0.5_1 -caching-html-compiler@1.0.6 -callback-hook@1.0.9 -check@1.2.3 +autoupdate@1.2.11 +babel-compiler@6.13.0 +babel-runtime@0.1.12 +base64@1.0.10 +binary-heap@1.0.10 +blaze@2.1.9 +blaze-html-templates@1.0.5 +blaze-tools@1.0.10 +boilerplate-generator@1.0.11 +caching-compiler@1.1.8 +caching-html-compiler@1.0.7 +callback-hook@1.0.10 +check@1.2.4 coffeescript@1.0.17 ddp@1.2.5 -ddp-client@1.2.8_1 -ddp-common@1.2.6 -ddp-server@1.2.8_1 +ddp-client@1.2.9 +ddp-common@1.2.7 +ddp-server@1.2.10 deps@1.0.12 -diff-sequence@1.0.6 +diff-sequence@1.0.7 dispatch:mocha@0.0.9 -ecmascript@0.4.6_1 -ecmascript-runtime@0.2.11_1 -ejson@1.0.12 -email@1.0.14_1 -geojson-utils@1.0.9 +ecmascript@0.5.9 +ecmascript-runtime@0.3.15 +ejson@1.0.13 +email@1.0.16 +geojson-utils@1.0.10 hot-code-push@1.0.4 -html-tools@1.0.10 -htmljs@1.0.10 -http@1.1.7 -id-map@1.0.8 -jquery@1.11.9 +html-tools@1.0.11 +htmljs@1.0.11 +http@1.1.8 +id-map@1.0.9 +jquery@1.11.10 kadira:flow-router@2.12.1 livedata@1.0.18 -logging@1.0.13_1 +logging@1.0.14 lookback:emails@0.7.5 -meteor@1.1.15_1 +meteor@1.6.0 meteor-base@1.0.4 meteorhacks:picker@1.0.3 meteorhacks:ssr@2.2.0 -minifier-css@1.1.12_1 -minifier-js@1.1.12_1 -minimongo@1.0.17 -modules@0.6.4 -modules-runtime@0.6.4_1 +minifier-css@1.2.15 +minifier-js@1.2.15 +minimongo@1.0.18 +modules@0.7.7 +modules-runtime@0.7.7 mongo@1.1.9_1 -mongo-id@1.0.5 -npm-mongo@1.4.44_1 -observe-sequence@1.0.12 -ordered-dict@1.0.8 +mongo-id@1.0.6 +npm-mongo@1.4.45 +observe-sequence@1.0.14 +ordered-dict@1.0.9 practicalmeteor:chai@2.1.0_1 practicalmeteor:mocha-core@1.0.1 -promise@0.7.2_1 +promise@0.8.8 random@1.0.10 reactive-dict@1.1.8 -reactive-var@1.0.10 -reload@1.1.10 -retry@1.0.8 +reactive-var@1.0.11 +reload@1.1.11 +retry@1.0.9 routepolicy@1.0.11 sacha:juice@0.1.4 -spacebars@1.0.12 -spacebars-compiler@1.0.12 -standard-minifier-css@1.0.7_1 -standard-minifier-js@1.0.7_1 -templating@1.1.12_1 -templating-tools@1.0.4 -tracker@1.0.14 -ui@1.0.11 -underscore@1.0.9 -url@1.0.10 -webapp@1.2.9_1 +shell-server@0.2.1 +spacebars@1.0.13 +spacebars-compiler@1.0.13 +standard-minifier-css@1.3.2 +standard-minifier-js@1.2.1 +templating@1.2.15 +templating-compiler@1.2.15 +templating-runtime@1.2.15 +templating-tools@1.0.5 +tracker@1.1.1 +ui@1.0.12 +underscore@1.0.10 +url@1.0.11 +webapp@1.2.11 webapp-hashing@1.0.9 From 905e1b0a77e455892e6323eb7065e2b6d7d664f4 Mon Sep 17 00:00:00 2001 From: Johan Brook <johan.jvb@gmail.com> Date: Fri, 28 Oct 2016 10:30:04 -0400 Subject: [PATCH 8/8] Rename package symlink in example app to 'emails' --- example/packages/{lookback:emails => emails} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename example/packages/{lookback:emails => emails} (100%) diff --git a/example/packages/lookback:emails b/example/packages/emails similarity index 100% rename from example/packages/lookback:emails rename to example/packages/emails