Pup

v1.x

Packages Included

By their very nature, Meteor applications are made up of packages that provide various functionality. In Pup, you will find packages that are included in Meteor by default as well as packages that provide some additional functionality. There are two types of packages in Pup: Atmosphere (Meteor) packages and NPM packages.

Atmosphere (Meteor) Packages

email

An official Meteor package that enables support for the Email.send() method for sending emails. Relies on the MAIL_URL environment variable to determine which SMTP service to relay sends through.

meteor-base

A default Meteor package that combines together other packages that every Meteor app needs to function.

mobile-experience

A default Meteor package that combines together other packages that improve the experience of using Meteor on a mobile device.

mongo

A default Meteor package that provides support for MongoDB in Meteor.

reactive-var

A package that helps with the creation of reactive variables in Meteor. Makes it possible to create a reactive data source that can be used in a reactive data context.

tracker

A default Meteor package that gives access to Meteor's Tracker library, used for creating and managing reactive data context's.

standard-minifier-css

A default Meteor package used for minifying CSS files in your application.

standard-minifier-js

A default Meteor package used for minifying JavaScript files in your application.

es5-shim

A default Meteor package used for improving compatibility of JavaScript in your application with older browsers.

ecmascript

A default Meteor package that enables ES2015/ES6 JavaScript support in your application.

shell-server

A default Meteor package that adds support for Meteor's meteor shell command which gives you access to the running server environment of your application on the command line.

react-meteor-data

Adds support for the withTracker method, used for creating data containers to supply data to React components.

alanning:roles

Adds support for user roles (e.g., "admin" or "manager") to the Meteor.users collection.

fourseven:scss

Adds support for the compilation of .scss files.

twbs:bootstrap

Adds support for the Bootstrap UI framework's CSS and JavaScript files. Included as a compliment to the react-bootstrap NPM package (this package includes Bootstrap components as React components but excludes the CSS and JavaScript files for the framework).

accounts-base

Adds support for the Meteor accounts system. Required in order to support any of the Meteor authentication strategies.

accounts-password

Adds support for the password authentication strategy to the Meteor accounts system.

service-configuration

Adds support for registering and configuring OAuth authentication strategies to the Meteor accounts system.

accounts-facebook

Adds support for the Facebook OAuth authentication strategy to the Meteor accounts system.

accounts-github

Adds support for the GitHub OAuth authentication strategy to the Meteor accounts system.

accounts-google

Adds support for the Google OAuth authentication strategy to the Meteor accounts system.

themeteorchef:bert

Adds support for client-side, Growl-style alerts. Useful for displaying confirmations and warnings to users based on their actions in the application.

fortawesome:fontawesome

Adds support for the Font Awesome icon library. Useful for adding icons to your interface.

aldeed:collection2-core

Adds support for the collection2 library, used for attaching schemas to MongoDB.

audit-argument-checks

Automates the process of ensuring that all Meteor Methods in the application make use of the check() method to validate arguments passed from the client.

ddp-rate-limiter

Adds support for rate-limiting Meteor Methods. Used in Pup's rateLimit() module located at /imports/modules/rate-limit.js. Allows you to control how many requests can be made to a Meteor Method from the client before future requests are blocked.

dynamic-import

Adds support for dynamic JavaScript imports in Meteor. When used properly, can reduce the size of the JavaScript bundle sent to the client and improve initial page load time.

NPM Packages

NPM packages in Pup come in two flavors: dependencies and development dependencies. The former are those that are loaded in the production application, while the latter are those that are loaded in development only and excluded in production.

Dependencies

These are dependencies that are bundled in the application both for development and production.

@cleverbeagle/seeder

Contains a method that aids in seeding MongoDB database collections with fixture or test data.

b64-to-blob

Adds support for converting a base64 string to a file blob. Used for transmitting a zip file from the server to the client when exporting a user's data.

babel-runtime

A default package installed in all new Meteor applications. Adds support for the Babel transpiler, used for converting ES2015+ code into ES5 code.

bcrypt

A default package installed in all new Meteor applications. Adds support for the bcrypt encryption library, used in Meteor core for handling various encryption tasks. The NPM version is installed to circumvent falling back to the version bundled with Meteor.

commonmark

Adds support for the Commonmark Markdown parser. Used in Pup to help with the conversion of static pages from Markdown into HTML.

core-js

A standard library containing polyfills for ECMAScript 5, 6, and 7. Used by the Meteor core library.

file-saver

The File Saver package is used as part of Pup's data export feature for users. It helps us to download the .zip file generated on the server to the user's computer.

jquery

Adds support for the jQuery JavaScript framework. Used in Pup in conjunction with the jquery-validation package for adding client-side validation to forms.

jquery-validation

Adds support for the jQuery validation library, used for validating forms on the client in Pup.

jszip

Adds support for creating .zip files. Used in conjunction with Pup's data export feature for users.

juice

Adds support for converting the <style></style> tags in HTML email templates into inline styles.

lodash

Adds support for the lodash utility library. Gives access to an assortment of helper functions that simplify common tasks in JavaScript.

meteor-node-stubs

A default package installed in all new Meteor applications. Used for stubbing built-in modules in Node.js.

moment

Used in conjunction with the /imports/modules/dates.js file for creating helpers for converting and manipulating dates.

moment-timezone

An extension library for the moment library. Helps in the conversion of dates to specific timezones. Used in conjunction with the /imports/modules/dates.js file.

prop-types

Adds support for the PropTypes library which aids in the validation of props passed to React components.

react

Adds support for the React user interface library.

react-addons-pure-render-mixin

Adds support for React's pure render mixin which allows React components to be rendered purely, potentially improving the performance of React components.

react-autobind

Adds support for the `react-autobind package which simplifies the process of binding the React component instance to non-lifecycle methods in ES2015/ES6 Class based components.

react-bootstrap

Adds support for the react-bootstrap package which gives us access to Bootstrap components defined as React components.

react-dom

Adds support for the ReactDOM library which is used for rendering and managing React components in the DOM.

react-markdown

The react-markdown package is used for rendering the Markdown-based content included in Pup's static pages feature.

react-router-bootstrap

Adds helper functions for making React Bootstrap navigation components to play friendly with React Router. Helps specifically with the correct application of the .active class to navigation items, highlighting the present page.

react-router-dom

Adds support for the React Router library, used for defining routes in Pup.

simpl-schema

Adds support for the SimpleSchema library, used in conjunction with the collection2 package for defining schemas on MongoDB collections in Pup.

Development dependencies

These are dependencies that are bundled in the application both for development purposes only.

babel-jest

Adds support for the usage of ES2015/ES6 JavaScript when writing tests in Jest.

babel-plugin-lodash

Helps to reduce the bundle size of Lodash at compilation time by automatically removing any unused functions from the library.

babel-preset-env

Adds support for the compilation of ES2015/ES6 code in Babel. Used in order to support ES2015/ES6 JavaScript when writing tests in Jest.

babel-preset-react

Adds support for the compilation of React JSX-based components when writing tests in Jest and Enzyme.

enzyme

Adds support for the Enzyme library, used for rendering React components for testing within Jest.

eslint

Adds support for the ESLint linting library, used for linting code in Pup.

eslint-config-airbnb

Adds support for the AirBnB ESLint ruleset to ESLint.

eslint-import-resolver-meteor

Helps prevent errors from ESLint in relation to Meteor's import and package structure.

eslint-plugin-import

Adds support for the JavaScript import syntax to ESLint.

eslint-plugin-jsx-a11y

Adds support for the React a11y (accessibility) ruleset to ESLint.

eslint-plugin-meteor

Adds support for the Meteor linting ruleset to ESLint.

eslint-plugin-react

Adds support for the React linting ruleset to ESLint.

jest

Adds support for the Jest testing library. Used for writing and running tests in Pup.