Inbucket is an email testing service; it will accept email for any email
2 | address and make it available to view without a password.
3 |
4 |
To view email for a particular address, enter the username portion
5 | of the address into the box on the upper right and click View.
6 |
7 |
This message can be customized by editing greeting.html. Change the
8 | configuration option greeting.file if you'd like to move it
9 | outside of the Inbucket installation directory.
Inbucket is an email testing service; it will accept email for any email
2 | address and make it available to view without a password.
3 |
4 |
To view email for a particular address, enter the username portion
5 | of the address into the box on the upper right and click View.
6 |
7 |
This instance of Inbucket is running inside of a Docker container. It is
9 | configured to retain messages for a maximum of 3 days, and will enforce a limit
10 | of 300 messages per mailbox - the oldest messages will be deleted to stay under
11 | that limit.
12 |
13 |
Messages addressed to any recipient in the @bitbucket.local
14 | domain will be accepted but not written to disk. Use this domain for load or
15 | soak testing your application.
16 |
--------------------------------------------------------------------------------
/themes/bootstrap/public/bower_components/moment/src/lib/duration/get.js:
--------------------------------------------------------------------------------
1 | import { normalizeUnits } from '../units/aliases';
2 | import absFloor from '../utils/abs-floor';
3 |
4 | export function get (units) {
5 | units = normalizeUnits(units);
6 | return this[units + 's']();
7 | }
8 |
9 | function makeGetter(name) {
10 | return function () {
11 | return this._data[name];
12 | };
13 | }
14 |
15 | export var milliseconds = makeGetter('milliseconds');
16 | export var seconds = makeGetter('seconds');
17 | export var minutes = makeGetter('minutes');
18 | export var hours = makeGetter('hours');
19 | export var days = makeGetter('days');
20 | export var months = makeGetter('months');
21 | export var years = makeGetter('years');
22 |
23 | export function weeks () {
24 | return absFloor(this.days() / 7);
25 | }
26 |
--------------------------------------------------------------------------------
/themes/bootstrap/public/bower_components/moment/src/lib/create/date-from-array.js:
--------------------------------------------------------------------------------
1 | export function createDate (y, m, d, h, M, s, ms) {
2 | //can't just apply() to create a date:
3 | //http://stackoverflow.com/questions/181348/instantiating-a-javascript-object-by-calling-prototype-constructor-apply
4 | var date = new Date(y, m, d, h, M, s, ms);
5 |
6 | //the date constructor remaps years 0-99 to 1900-1999
7 | if (y < 100 && y >= 0 && isFinite(date.getFullYear())) {
8 | date.setFullYear(y);
9 | }
10 | return date;
11 | }
12 |
13 | export function createUTCDate (y) {
14 | var date = new Date(Date.UTC.apply(null, arguments));
15 |
16 | //the Date.UTC function remaps years 0-99 to 1900-1999
17 | if (y < 100 && y >= 0 && isFinite(date.getUTCFullYear())) {
18 | date.setUTCFullYear(y);
19 | }
20 | return date;
21 | }
22 |
--------------------------------------------------------------------------------
/themes/bootstrap/public/bower_components/bootstrap/less/component-animations.less:
--------------------------------------------------------------------------------
1 | //
2 | // Component animations
3 | // --------------------------------------------------
4 |
5 | // Heads up!
6 | //
7 | // We don't use the `.opacity()` mixin here since it causes a bug with text
8 | // fields in IE7-8. Source: https://github.com/twbs/bootstrap/pull/3552.
9 |
10 | .fade {
11 | opacity: 0;
12 | .transition(opacity .15s linear);
13 | &.in {
14 | opacity: 1;
15 | }
16 | }
17 |
18 | .collapse {
19 | display: none;
20 |
21 | &.in { display: block; }
22 | tr&.in { display: table-row; }
23 | tbody&.in { display: table-row-group; }
24 | }
25 |
26 | .collapsing {
27 | position: relative;
28 | height: 0;
29 | overflow: hidden;
30 | .transition-property(~"height, visibility");
31 | .transition-duration(.35s);
32 | .transition-timing-function(ease);
33 | }
34 |
--------------------------------------------------------------------------------
/themes/bootstrap/public/bower_components/bootstrap/less/mixins/table-row.less:
--------------------------------------------------------------------------------
1 | // Tables
2 |
3 | .table-row-variant(@state; @background) {
4 | // Exact selectors below required to override `.table-striped` and prevent
5 | // inheritance to nested tables.
6 | .table > thead > tr,
7 | .table > tbody > tr,
8 | .table > tfoot > tr {
9 | > td.@{state},
10 | > th.@{state},
11 | &.@{state} > td,
12 | &.@{state} > th {
13 | background-color: @background;
14 | }
15 | }
16 |
17 | // Hover states for `.table-hover`
18 | // Note: this is not available for cells or rows within `thead` or `tfoot`.
19 | .table-hover > tbody > tr {
20 | > td.@{state}:hover,
21 | > th.@{state}:hover,
22 | &.@{state}:hover > td,
23 | &:hover > .@{state},
24 | &.@{state}:hover > th {
25 | background-color: darken(@background, 5%);
26 | }
27 | }
28 | }
29 |
--------------------------------------------------------------------------------
/themes/bootstrap/public/bower_components/clipboard/.bower.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "clipboard",
3 | "version": "1.5.9",
4 | "description": "Modern copy to clipboard. No Flash. Just 2kb",
5 | "license": "MIT",
6 | "main": "dist/clipboard.js",
7 | "ignore": [
8 | "/.*/",
9 | "/demo/",
10 | "/test/",
11 | "/.*",
12 | "/bower.json",
13 | "/karma.conf.js",
14 | "/src",
15 | "/lib"
16 | ],
17 | "keywords": [
18 | "clipboard",
19 | "copy",
20 | "cut"
21 | ],
22 | "homepage": "https://github.com/zenorocha/clipboard.js",
23 | "_release": "1.5.9",
24 | "_resolution": {
25 | "type": "version",
26 | "tag": "v1.5.9",
27 | "commit": "ff3cd2c722b744fa21d0fc621a08ad88b7a38189"
28 | },
29 | "_source": "git://github.com/zenorocha/clipboard.js.git",
30 | "_target": "^1.5.9",
31 | "_originalSource": "clipboard",
32 | "_direct": true
33 | }
--------------------------------------------------------------------------------
/themes/bootstrap/public/bower_components/moment/.bower.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "moment",
3 | "main": "moment.js",
4 | "ignore": [
5 | "**/.*",
6 | "benchmarks",
7 | "bower_components",
8 | "meteor",
9 | "node_modules",
10 | "scripts",
11 | "tasks",
12 | "test",
13 | "component.json",
14 | "composer.json",
15 | "CONTRIBUTING.md",
16 | "ender.js",
17 | "Gruntfile.js",
18 | "Moment.js.nuspec",
19 | "package.js",
20 | "package.json"
21 | ],
22 | "homepage": "https://github.com/moment/moment",
23 | "version": "2.11.2",
24 | "_release": "2.11.2",
25 | "_resolution": {
26 | "type": "version",
27 | "tag": "2.11.2",
28 | "commit": "c9afcbd8c4e0177d03b220a89ab19f62c6cc7bcf"
29 | },
30 | "_source": "git://github.com/moment/moment.git",
31 | "_target": "^2.11.2",
32 | "_originalSource": "moment",
33 | "_direct": true
34 | }
--------------------------------------------------------------------------------
/etc/ubuntu-12/inbucket-upstart.conf:
--------------------------------------------------------------------------------
1 | # inbucket - disposable email service
2 | #
3 | # Inbucket is an SMTP server with a web interface for testing application
4 | # functionality
5 |
6 | description "inbucket - disposable email service"
7 | author "http://jhillyerd.github.com/inbucket"
8 |
9 | start on (local-filesystems and net-device-up IFACE!=lo)
10 | stop on runlevel [!2345]
11 |
12 | env program=/opt/inbucket/inbucket
13 | env config=/etc/opt/inbucket.conf
14 | env logfile=/var/log/inbucket.log
15 | env runas=inbucket
16 |
17 | # Give SMTP connections time to drain
18 | kill timeout 20
19 |
20 | pre-start script
21 | [ -x $program ]
22 | [ -r $config ]
23 | touch $logfile
24 | chown $runas: $logfile
25 | # Allow bind to ports under 1024
26 | setcap 'cap_net_bind_service=+ep' $program
27 | end script
28 |
29 | exec start-stop-daemon --start --chuid $runas --exec $program -- -logfile $logfile $config
30 |
--------------------------------------------------------------------------------
/log/stdout_unix.go:
--------------------------------------------------------------------------------
1 | // +build !windows
2 |
3 | package log
4 |
5 | import (
6 | "golang.org/x/sys/unix"
7 | "os"
8 | )
9 |
10 | // closeStdin will close stdin on Unix platforms - this is standard practice
11 | // for daemons
12 | func closeStdin() {
13 | if err := os.Stdin.Close(); err != nil {
14 | // Not a fatal error
15 | Errorf("Failed to close os.Stdin during log setup")
16 | }
17 | }
18 |
19 | // reassignStdout points stdout/stderr to our logfile on systems that support
20 | // the Dup2 syscall per https://github.com/golang/go/issues/325
21 | func reassignStdout() {
22 | Tracef("Unix reassignStdout()")
23 | if err := unix.Dup2(int(logf.Fd()), 1); err != nil {
24 | // Not considered fatal
25 | Errorf("Failed to re-assign stdout to logfile: %v", err)
26 | }
27 | if err := unix.Dup2(int(logf.Fd()), 2); err != nil {
28 | // Not considered fatal
29 | Errorf("Failed to re-assign stderr to logfile: %v", err)
30 | }
31 | }
32 |
--------------------------------------------------------------------------------
/themes/bootstrap/public/bower_components/jquery/src/manipulation/wrapMap.js:
--------------------------------------------------------------------------------
1 | define( function() {
2 |
3 | // We have to close these tags to support XHTML (#13200)
4 | var wrapMap = {
5 |
6 | // Support: IE9
7 | option: [ 1, "" ],
8 |
9 | // XHTML parsers do not magically insert elements in the
10 | // same way that tag soup parsers do. So we cannot shorten
11 | // this by omitting or other required elements.
12 | thead: [ 1, "
", "
" ],
13 | col: [ 2, "
", "
" ],
14 | tr: [ 2, "
", "
" ],
15 | td: [ 3, "
", "
" ],
16 |
17 | _default: [ 0, "", "" ]
18 | };
19 |
20 | // Support: IE9
21 | wrapMap.optgroup = wrapMap.option;
22 |
23 | wrapMap.tbody = wrapMap.tfoot = wrapMap.colgroup = wrapMap.caption = wrapMap.thead;
24 | wrapMap.th = wrapMap.td;
25 |
26 | return wrapMap;
27 | } );
28 |
--------------------------------------------------------------------------------
/swaks-tests/README.md:
--------------------------------------------------------------------------------
1 | swaks-tests
2 | ===========
3 |
4 | [Swaks](http://www.jetmore.org/john/code/swaks/) - Swiss Army Knife for SMTP
5 |
6 | Swaks gives us an easy way to generate mail to send into Inbucket. You will need to
7 | install Swaks before you can use the provided scripts.
8 |
9 | ## Usage
10 |
11 | To deliver a batch of test email to the `swaks` mailbox, assuming Inbucket SMTP is listening
12 | on localhost:2500:
13 |
14 | ./run-tests.sh
15 |
16 | To deliver a batch of test email to the `james` mailbox:
17 |
18 | ./run-tests.sh james
19 |
20 | You may also pass swaks options to deliver to a alternate host/port:
21 |
22 | ./run-tests --server inbucket.mydomain.com:25
23 |
24 | To specify the mailbox with an alternate server, use `--to` with a local and host part:
25 |
26 | ./run-tests --server inbucket.mydomain.com:25 --to james@mydomain.com
27 |
28 | ## To Do
29 |
30 | Replace Swaks with a native Go solution.
31 |
--------------------------------------------------------------------------------
/themes/bootstrap/public/bower_components/moment/src/lib/locale/locale.js:
--------------------------------------------------------------------------------
1 | // Side effect imports
2 | import './prototype';
3 |
4 | import {
5 | getSetGlobalLocale,
6 | defineLocale,
7 | getLocale
8 | } from './locales';
9 |
10 | import {
11 | listMonths,
12 | listMonthsShort,
13 | listWeekdays,
14 | listWeekdaysShort,
15 | listWeekdaysMin
16 | } from './lists';
17 |
18 | export {
19 | getSetGlobalLocale,
20 | defineLocale,
21 | getLocale,
22 | listMonths,
23 | listMonthsShort,
24 | listWeekdays,
25 | listWeekdaysShort,
26 | listWeekdaysMin
27 | };
28 |
29 | import { deprecate } from '../utils/deprecate';
30 | import { hooks } from '../utils/hooks';
31 |
32 | hooks.lang = deprecate('moment.lang is deprecated. Use moment.locale instead.', getSetGlobalLocale);
33 | hooks.langData = deprecate('moment.langData is deprecated. Use moment.localeData instead.', getLocale);
34 |
35 | import './en';
36 |
--------------------------------------------------------------------------------
/themes/bootstrap/public/bower_components/bootstrap/less/close.less:
--------------------------------------------------------------------------------
1 | //
2 | // Close icons
3 | // --------------------------------------------------
4 |
5 |
6 | .close {
7 | float: right;
8 | font-size: (@font-size-base * 1.5);
9 | font-weight: @close-font-weight;
10 | line-height: 1;
11 | color: @close-color;
12 | text-shadow: @close-text-shadow;
13 | .opacity(.2);
14 |
15 | &:hover,
16 | &:focus {
17 | color: @close-color;
18 | text-decoration: none;
19 | cursor: pointer;
20 | .opacity(.5);
21 | }
22 |
23 | // Additional properties for button version
24 | // iOS requires the button element instead of an anchor tag.
25 | // If you want the anchor version, it requires `href="#"`.
26 | // See https://developer.mozilla.org/en-US/docs/Web/Events/click#Safari_Mobile
27 | button& {
28 | padding: 0;
29 | cursor: pointer;
30 | background: transparent;
31 | border: 0;
32 | -webkit-appearance: none;
33 | }
34 | }
35 |
--------------------------------------------------------------------------------
/themes/bootstrap/public/bower_components/bootstrap/less/thumbnails.less:
--------------------------------------------------------------------------------
1 | //
2 | // Thumbnails
3 | // --------------------------------------------------
4 |
5 |
6 | // Mixin and adjust the regular image class
7 | .thumbnail {
8 | display: block;
9 | padding: @thumbnail-padding;
10 | margin-bottom: @line-height-computed;
11 | line-height: @line-height-base;
12 | background-color: @thumbnail-bg;
13 | border: 1px solid @thumbnail-border;
14 | border-radius: @thumbnail-border-radius;
15 | .transition(border .2s ease-in-out);
16 |
17 | > img,
18 | a > img {
19 | &:extend(.img-responsive);
20 | margin-left: auto;
21 | margin-right: auto;
22 | }
23 |
24 | // Add a hover state for linked versions only
25 | a&:hover,
26 | a&:focus,
27 | a&.active {
28 | border-color: @link-color;
29 | }
30 |
31 | // Image captions
32 | .caption {
33 | padding: @thumbnail-caption-padding;
34 | color: @thumbnail-caption-color;
35 | }
36 | }
37 |
--------------------------------------------------------------------------------
/themes/bootstrap/public/bower_components/jquery-color/test/test.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
Test string
11 |
12 |
26 |
27 |
28 |
29 |
--------------------------------------------------------------------------------
/themes/bootstrap/public/bower_components/moment/src/lib/units/aliases.js:
--------------------------------------------------------------------------------
1 | import hasOwnProp from '../utils/has-own-prop';
2 |
3 | var aliases = {};
4 |
5 | export function addUnitAlias (unit, shorthand) {
6 | var lowerCase = unit.toLowerCase();
7 | aliases[lowerCase] = aliases[lowerCase + 's'] = aliases[shorthand] = unit;
8 | }
9 |
10 | export function normalizeUnits(units) {
11 | return typeof units === 'string' ? aliases[units] || aliases[units.toLowerCase()] : undefined;
12 | }
13 |
14 | export function normalizeObjectUnits(inputObject) {
15 | var normalizedInput = {},
16 | normalizedProp,
17 | prop;
18 |
19 | for (prop in inputObject) {
20 | if (hasOwnProp(inputObject, prop)) {
21 | normalizedProp = normalizeUnits(prop);
22 | if (normalizedProp) {
23 | normalizedInput[normalizedProp] = inputObject[prop];
24 | }
25 | }
26 | }
27 |
28 | return normalizedInput;
29 | }
30 |
--------------------------------------------------------------------------------
/themes/bootstrap/public/bower_components/moment/src/lib/locale/relative.js:
--------------------------------------------------------------------------------
1 | export var defaultRelativeTime = {
2 | future : 'in %s',
3 | past : '%s ago',
4 | s : 'a few seconds',
5 | m : 'a minute',
6 | mm : '%d minutes',
7 | h : 'an hour',
8 | hh : '%d hours',
9 | d : 'a day',
10 | dd : '%d days',
11 | M : 'a month',
12 | MM : '%d months',
13 | y : 'a year',
14 | yy : '%d years'
15 | };
16 |
17 | import isFunction from '../utils/is-function';
18 |
19 | export function relativeTime (number, withoutSuffix, string, isFuture) {
20 | var output = this._relativeTime[string];
21 | return (isFunction(output)) ?
22 | output(number, withoutSuffix, string, isFuture) :
23 | output.replace(/%d/i, number);
24 | }
25 |
26 | export function pastFuture (diff, output) {
27 | var format = this._relativeTime[diff > 0 ? 'future' : 'past'];
28 | return isFunction(format) ? format(output) : format.replace(/%s/i, output);
29 | }
30 |
--------------------------------------------------------------------------------
/themes/bootstrap/public/bower_components/moment/src/lib/moment/to-type.js:
--------------------------------------------------------------------------------
1 | export function valueOf () {
2 | return +this._d - ((this._offset || 0) * 60000);
3 | }
4 |
5 | export function unix () {
6 | return Math.floor(+this / 1000);
7 | }
8 |
9 | export function toDate () {
10 | return this._offset ? new Date(+this) : this._d;
11 | }
12 |
13 | export function toArray () {
14 | var m = this;
15 | return [m.year(), m.month(), m.date(), m.hour(), m.minute(), m.second(), m.millisecond()];
16 | }
17 |
18 | export function toObject () {
19 | var m = this;
20 | return {
21 | years: m.year(),
22 | months: m.month(),
23 | date: m.date(),
24 | hours: m.hours(),
25 | minutes: m.minutes(),
26 | seconds: m.seconds(),
27 | milliseconds: m.milliseconds()
28 | };
29 | }
30 |
31 | export function toJSON () {
32 | // JSON.stringify(new Date(NaN)) === 'null'
33 | return this.isValid() ? this.toISOString() : 'null';
34 | }
35 |
--------------------------------------------------------------------------------
/log/stdout_windows.go:
--------------------------------------------------------------------------------
1 | // +build windows
2 |
3 | package log
4 |
5 | import (
6 | "os"
7 | )
8 |
9 | var stdOutsClosed = false
10 |
11 | // closeStdin does nothing on Windows, it would always fail
12 | func closeStdin() {
13 | // Nop
14 | }
15 |
16 | // reassignStdout points stdout/stderr to our logfile on systems that do not
17 | // support the Dup2 syscall
18 | func reassignStdout() {
19 | Tracef("Windows reassignStdout()")
20 | if !stdOutsClosed {
21 | // Close std* streams to prevent accidental output, they will be redirected to
22 | // our logfile below
23 |
24 | // Warning: this will hide panic() output, sorry Windows users
25 | if err := os.Stderr.Close(); err != nil {
26 | // Not considered fatal
27 | Errorf("Failed to close os.Stderr during log setup")
28 | }
29 | if err := os.Stdin.Close(); err != nil {
30 | // Not considered fatal
31 | Errorf("Failed to close os.Stdin during log setup")
32 | }
33 | os.Stdout = logf
34 | os.Stderr = logf
35 | stdOutsClosed = true
36 | }
37 | }
38 |
--------------------------------------------------------------------------------
/themes/bootstrap/public/bower_components/jquery-color/color.jquery.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "color",
3 | "title": "jQuery Color",
4 | "description": "jQuery plugin for color manipulation and animation support.",
5 | "keywords": [
6 | "color",
7 | "animation"
8 | ],
9 | "version": "2.1.2",
10 | "author": {
11 | "name": "jQuery Foundation and other contributors",
12 | "url": "https://github.com/jquery/jquery-color/blob/2.1.2/AUTHORS.txt"
13 | },
14 | "maintainers": [
15 | {
16 | "name": "Corey Frang",
17 | "email": "gnarf37@gmail.com",
18 | "url": "http://gnarf.net"
19 | }
20 | ],
21 | "licenses": [
22 | {
23 | "type": "MIT",
24 | "url": "https://github.com/jquery/jquery-color/blob/2.1.2/MIT-LICENSE.txt"
25 | }
26 | ],
27 | "bugs": "https://github.com/jquery/jquery-color/issues",
28 | "homepage": "https://github.com/jquery/jquery-color",
29 | "docs": "https://github.com/jquery/jquery-color",
30 | "download": "http://code.jquery.com/#color",
31 | "dependencies": {
32 | "jquery": ">=1.5"
33 | }
34 | }
--------------------------------------------------------------------------------
/themes/bootstrap/public/bower_components/moment/src/lib/moment/calendar.js:
--------------------------------------------------------------------------------
1 | import { createLocal } from '../create/local';
2 | import { cloneWithOffset } from '../units/offset';
3 | import isFunction from '../utils/is-function';
4 |
5 | export function calendar (time, formats) {
6 | // We want to compare the start of today, vs this.
7 | // Getting start-of-today depends on whether we're local/utc/offset or not.
8 | var now = time || createLocal(),
9 | sod = cloneWithOffset(now, this).startOf('day'),
10 | diff = this.diff(sod, 'days', true),
11 | format = diff < -6 ? 'sameElse' :
12 | diff < -1 ? 'lastWeek' :
13 | diff < 0 ? 'lastDay' :
14 | diff < 1 ? 'sameDay' :
15 | diff < 2 ? 'nextDay' :
16 | diff < 7 ? 'nextWeek' : 'sameElse';
17 |
18 | var output = formats && (isFunction(formats[format]) ? formats[format]() : formats[format]);
19 |
20 | return this.format(output || this.localeData().calendar(format, this, createLocal(now)));
21 | }
22 |
--------------------------------------------------------------------------------
/httpd/helpers_test.go:
--------------------------------------------------------------------------------
1 | package httpd
2 |
3 | import (
4 | "html/template"
5 | "testing"
6 |
7 | "github.com/stretchr/testify/assert"
8 | )
9 |
10 | func TestTextToHtml(t *testing.T) {
11 | // Identity
12 | assert.Equal(t, TextToHTML("html"), template.HTML("html"))
13 |
14 | // Check it escapes
15 | assert.Equal(t, TextToHTML(""), template.HTML("<html>"))
16 |
17 | // Check for linebreaks
18 | assert.Equal(t, TextToHTML("line\nbreak"), template.HTML("line \nbreak"))
19 | assert.Equal(t, TextToHTML("line\r\nbreak"), template.HTML("line \nbreak"))
20 | assert.Equal(t, TextToHTML("line\rbreak"), template.HTML("line \nbreak"))
21 | }
22 |
23 | func TestURLDetection(t *testing.T) {
24 | assert.Equal(t,
25 | TextToHTML("http://google.com/"),
26 | template.HTML("http://google.com/"))
27 | assert.Equal(t,
28 | TextToHTML("http://a.com/?q=a&n=v"),
29 | template.HTML("http://a.com/?q=a&n=v"))
30 | }
31 |
--------------------------------------------------------------------------------
/themes/bootstrap/public/bower_components/jquery-load-template/bower.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "jquery-load-template",
3 | "homepage": "http://codepb.github.io/jquery-template/",
4 | "authors": [
5 | "Paul Burgess "
6 | ],
7 | "description": "jQuery plugin for loading and using templates. The plugin is designed to be simple yet powerful, and supports loading templates from within the page, or using AJAX to load html files.",
8 | "repository": {
9 | "type": "git",
10 | "url": "https://github.com/codepb/jquery-template.git"
11 | },
12 | "main": "dist/jquery.loadTemplate-1.5.6.js",
13 | "keywords": [
14 | "templates",
15 | "templating",
16 | "jquery-plugin"
17 | ],
18 | "ignore": [
19 | "Examples",
20 | "tests",
21 | ".gitattributes",
22 | ".gitignore",
23 | ".travis.yml",
24 | "loadTemplate.jquery.json",
25 | "MIT-LICENSE.txt",
26 | "package.json",
27 | "readme.md"
28 | ],
29 | "dependencies": {
30 | "jquery": ">=1.8"
31 | }
32 | }
33 |
--------------------------------------------------------------------------------
/themes/bootstrap/public/bower_components/bootstrap/less/utilities.less:
--------------------------------------------------------------------------------
1 | //
2 | // Utility classes
3 | // --------------------------------------------------
4 |
5 |
6 | // Floats
7 | // -------------------------
8 |
9 | .clearfix {
10 | .clearfix();
11 | }
12 | .center-block {
13 | .center-block();
14 | }
15 | .pull-right {
16 | float: right !important;
17 | }
18 | .pull-left {
19 | float: left !important;
20 | }
21 |
22 |
23 | // Toggling content
24 | // -------------------------
25 |
26 | // Note: Deprecated .hide in favor of .hidden or .sr-only (as appropriate) in v3.0.1
27 | .hide {
28 | display: none !important;
29 | }
30 | .show {
31 | display: block !important;
32 | }
33 | .invisible {
34 | visibility: hidden;
35 | }
36 | .text-hide {
37 | .text-hide();
38 | }
39 |
40 |
41 | // Hide from screenreaders and browsers
42 | //
43 | // Credit: HTML5 Boilerplate
44 |
45 | .hidden {
46 | display: none !important;
47 | }
48 |
49 |
50 | // For Affix plugin
51 | // -------------------------
52 |
53 | .affix {
54 | position: fixed;
55 | }
56 |
--------------------------------------------------------------------------------
/themes/bootstrap/public/bower_components/moment/src/lib/units/day-of-month.js:
--------------------------------------------------------------------------------
1 | import { makeGetSet } from '../moment/get-set';
2 | import { addFormatToken } from '../format/format';
3 | import { addUnitAlias } from './aliases';
4 | import { addRegexToken, match1to2, match2 } from '../parse/regex';
5 | import { addParseToken } from '../parse/token';
6 | import { DATE } from './constants';
7 | import toInt from '../utils/to-int';
8 |
9 | // FORMATTING
10 |
11 | addFormatToken('D', ['DD', 2], 'Do', 'date');
12 |
13 | // ALIASES
14 |
15 | addUnitAlias('date', 'D');
16 |
17 | // PARSING
18 |
19 | addRegexToken('D', match1to2);
20 | addRegexToken('DD', match1to2, match2);
21 | addRegexToken('Do', function (isStrict, locale) {
22 | return isStrict ? locale._ordinalParse : locale._ordinalParseLenient;
23 | });
24 |
25 | addParseToken(['D', 'DD'], DATE);
26 | addParseToken('Do', function (input, array) {
27 | array[DATE] = toInt(input.match(match1to2)[0], 10);
28 | });
29 |
30 | // MOMENTS
31 |
32 | export var getSetDayOfMonth = makeGetSet('Date', true);
33 |
--------------------------------------------------------------------------------
/themes/bootstrap/public/bower_components/moment/src/lib/utils/deprecate.js:
--------------------------------------------------------------------------------
1 | import extend from './extend';
2 | import { hooks } from './hooks';
3 | import isUndefined from './is-undefined';
4 |
5 | function warn(msg) {
6 | if (hooks.suppressDeprecationWarnings === false &&
7 | (typeof console !== 'undefined') && console.warn) {
8 | console.warn('Deprecation warning: ' + msg);
9 | }
10 | }
11 |
12 | export function deprecate(msg, fn) {
13 | var firstTime = true;
14 |
15 | return extend(function () {
16 | if (firstTime) {
17 | warn(msg + '\nArguments: ' + Array.prototype.slice.call(arguments).join(', ') + '\n' + (new Error()).stack);
18 | firstTime = false;
19 | }
20 | return fn.apply(this, arguments);
21 | }, fn);
22 | }
23 |
24 | var deprecations = {};
25 |
26 | export function deprecateSimple(name, msg) {
27 | if (!deprecations[name]) {
28 | warn(msg);
29 | deprecations[name] = true;
30 | }
31 | }
32 |
33 | hooks.suppressDeprecationWarnings = false;
34 |
--------------------------------------------------------------------------------
/themes/bootstrap/public/bower_components/moment/src/lib/parse/token.js:
--------------------------------------------------------------------------------
1 | import hasOwnProp from '../utils/has-own-prop';
2 | import toInt from '../utils/to-int';
3 |
4 | var tokens = {};
5 |
6 | export function addParseToken (token, callback) {
7 | var i, func = callback;
8 | if (typeof token === 'string') {
9 | token = [token];
10 | }
11 | if (typeof callback === 'number') {
12 | func = function (input, array) {
13 | array[callback] = toInt(input);
14 | };
15 | }
16 | for (i = 0; i < token.length; i++) {
17 | tokens[token[i]] = func;
18 | }
19 | }
20 |
21 | export function addWeekParseToken (token, callback) {
22 | addParseToken(token, function (input, array, config, token) {
23 | config._w = config._w || {};
24 | callback(input, config._w, config, token);
25 | });
26 | }
27 |
28 | export function addTimeToArrayFromToken(token, input, config) {
29 | if (input != null && hasOwnProp(tokens, token)) {
30 | tokens[token](input, config._a, config, token);
31 | }
32 | }
33 |
--------------------------------------------------------------------------------
/themes/bootstrap/public/bower_components/moment/src/lib/units/day-of-year.js:
--------------------------------------------------------------------------------
1 | import { addFormatToken } from '../format/format';
2 | import { addUnitAlias } from './aliases';
3 | import { addRegexToken, match3, match1to3 } from '../parse/regex';
4 | import { daysInYear } from './year';
5 | import { createUTCDate } from '../create/date-from-array';
6 | import { addParseToken } from '../parse/token';
7 | import toInt from '../utils/to-int';
8 |
9 | // FORMATTING
10 |
11 | addFormatToken('DDD', ['DDDD', 3], 'DDDo', 'dayOfYear');
12 |
13 | // ALIASES
14 |
15 | addUnitAlias('dayOfYear', 'DDD');
16 |
17 | // PARSING
18 |
19 | addRegexToken('DDD', match1to3);
20 | addRegexToken('DDDD', match3);
21 | addParseToken(['DDD', 'DDDD'], function (input, array, config) {
22 | config._dayOfYear = toInt(input);
23 | });
24 |
25 | // HELPERS
26 |
27 | // MOMENTS
28 |
29 | export function getSetDayOfYear (input) {
30 | var dayOfYear = Math.round((this.clone().startOf('day') - this.clone().startOf('year')) / 864e5) + 1;
31 | return input == null ? dayOfYear : this.add((input - dayOfYear), 'd');
32 | }
33 |
--------------------------------------------------------------------------------
/webui/recent.go:
--------------------------------------------------------------------------------
1 | package webui
2 |
3 | import (
4 | "github.com/jhillyerd/inbucket/httpd"
5 | )
6 |
7 | const (
8 | // maximum mailboxes to remember
9 | maxRemembered = 8
10 | // session value key; referenced in templates, do not change
11 | mailboxKey = "recentMailboxes"
12 | )
13 |
14 | // RememberMailbox manages the list of recently accessed mailboxes stored in the session
15 | func RememberMailbox(ctx *httpd.Context, mailbox string) {
16 | recent := RecentMailboxes(ctx)
17 | newRecent := make([]string, 1, maxRemembered)
18 | newRecent[0] = mailbox
19 |
20 | for _, recBox := range recent {
21 | // Insert until newRecent is full, but don't repeat the new mailbox
22 | if len(newRecent) < maxRemembered && mailbox != recBox {
23 | newRecent = append(newRecent, recBox)
24 | }
25 | }
26 |
27 | ctx.Session.Values[mailboxKey] = newRecent
28 | }
29 |
30 | // RecentMailboxes returns a slice of the most recently accessed mailboxes
31 | func RecentMailboxes(ctx *httpd.Context) []string {
32 | val := ctx.Session.Values[mailboxKey]
33 | recent, _ := val.([]string)
34 | return recent
35 | }
36 |
--------------------------------------------------------------------------------
/themes/bootstrap/public/bower_components/moment/src/lib/moment/format.js:
--------------------------------------------------------------------------------
1 | import { formatMoment } from '../format/format';
2 | import { hooks } from '../utils/hooks';
3 | import isFunction from '../utils/is-function';
4 |
5 | hooks.defaultFormat = 'YYYY-MM-DDTHH:mm:ssZ';
6 |
7 | export function toString () {
8 | return this.clone().locale('en').format('ddd MMM DD YYYY HH:mm:ss [GMT]ZZ');
9 | }
10 |
11 | export function toISOString () {
12 | var m = this.clone().utc();
13 | if (0 < m.year() && m.year() <= 9999) {
14 | if (isFunction(Date.prototype.toISOString)) {
15 | // native implementation is ~50x faster, use it when we can
16 | return this.toDate().toISOString();
17 | } else {
18 | return formatMoment(m, 'YYYY-MM-DD[T]HH:mm:ss.SSS[Z]');
19 | }
20 | } else {
21 | return formatMoment(m, 'YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]');
22 | }
23 | }
24 |
25 | export function format (inputString) {
26 | var output = formatMoment(this, inputString || hooks.defaultFormat);
27 | return this.localeData().postformat(output);
28 | }
29 |
--------------------------------------------------------------------------------
/themes/bootstrap/public/bower_components/jquery/src/attributes/support.js:
--------------------------------------------------------------------------------
1 | define( [
2 | "../var/document",
3 | "../var/support"
4 | ], function( document, support ) {
5 |
6 | ( function() {
7 | var input = document.createElement( "input" ),
8 | select = document.createElement( "select" ),
9 | opt = select.appendChild( document.createElement( "option" ) );
10 |
11 | input.type = "checkbox";
12 |
13 | // Support: iOS<=5.1, Android<=4.2+
14 | // Default value for a checkbox should be "on"
15 | support.checkOn = input.value !== "";
16 |
17 | // Support: IE<=11+
18 | // Must access selectedIndex to make default options select
19 | support.optSelected = opt.selected;
20 |
21 | // Support: Android<=2.3
22 | // Options inside disabled selects are incorrectly marked as disabled
23 | select.disabled = true;
24 | support.optDisabled = !opt.disabled;
25 |
26 | // Support: IE<=11+
27 | // An input loses its value after becoming a radio
28 | input = document.createElement( "input" );
29 | input.value = "t";
30 | input.type = "radio";
31 | support.radioValue = input.value === "t";
32 | } )();
33 |
34 | return support;
35 |
36 | } );
37 |
--------------------------------------------------------------------------------
/themes/bootstrap/public/bower_components/bootstrap/package.js:
--------------------------------------------------------------------------------
1 | // package metadata file for Meteor.js
2 |
3 | /* jshint strict:false */
4 | /* global Package:true */
5 |
6 | Package.describe({
7 | name: 'twbs:bootstrap', // http://atmospherejs.com/twbs/bootstrap
8 | summary: 'The most popular front-end framework for developing responsive, mobile first projects on the web.',
9 | version: '3.3.6',
10 | git: 'https://github.com/twbs/bootstrap.git'
11 | });
12 |
13 | Package.onUse(function (api) {
14 | api.versionsFrom('METEOR@1.0');
15 | api.use('jquery', 'client');
16 | var assets = [
17 | 'dist/fonts/glyphicons-halflings-regular.eot',
18 | 'dist/fonts/glyphicons-halflings-regular.svg',
19 | 'dist/fonts/glyphicons-halflings-regular.ttf',
20 | 'dist/fonts/glyphicons-halflings-regular.woff',
21 | 'dist/fonts/glyphicons-halflings-regular.woff2'
22 | ];
23 | if (api.addAssets) {
24 | api.addAssets(assets, 'client');
25 | } else {
26 | api.addFiles(assets, 'client', { isAsset: true });
27 | }
28 | api.addFiles([
29 | 'dist/css/bootstrap.css',
30 | 'dist/js/bootstrap.js'
31 | ], 'client');
32 | });
33 |
--------------------------------------------------------------------------------
/themes/bootstrap/public/bower_components/moment/src/lib/moment/locale.js:
--------------------------------------------------------------------------------
1 | import { getLocale } from '../locale/locales';
2 | import { deprecate } from '../utils/deprecate';
3 |
4 | // If passed a locale key, it will set the locale for this
5 | // instance. Otherwise, it will return the locale configuration
6 | // variables for this instance.
7 | export function locale (key) {
8 | var newLocaleData;
9 |
10 | if (key === undefined) {
11 | return this._locale._abbr;
12 | } else {
13 | newLocaleData = getLocale(key);
14 | if (newLocaleData != null) {
15 | this._locale = newLocaleData;
16 | }
17 | return this;
18 | }
19 | }
20 |
21 | export var lang = deprecate(
22 | 'moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.',
23 | function (key) {
24 | if (key === undefined) {
25 | return this.localeData();
26 | } else {
27 | return this.locale(key);
28 | }
29 | }
30 | );
31 |
32 | export function localeData () {
33 | return this._locale;
34 | }
35 |
--------------------------------------------------------------------------------
/themes/bootstrap/public/bower_components/bootstrap/.bower.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "bootstrap",
3 | "description": "The most popular front-end framework for developing responsive, mobile first projects on the web.",
4 | "keywords": [
5 | "css",
6 | "js",
7 | "less",
8 | "mobile-first",
9 | "responsive",
10 | "front-end",
11 | "framework",
12 | "web"
13 | ],
14 | "homepage": "http://getbootstrap.com",
15 | "license": "MIT",
16 | "moduleType": "globals",
17 | "main": [
18 | "less/bootstrap.less",
19 | "dist/js/bootstrap.js"
20 | ],
21 | "ignore": [
22 | "/.*",
23 | "_config.yml",
24 | "CNAME",
25 | "composer.json",
26 | "CONTRIBUTING.md",
27 | "docs",
28 | "js/tests",
29 | "test-infra"
30 | ],
31 | "dependencies": {
32 | "jquery": "1.9.1 - 2"
33 | },
34 | "version": "3.3.6",
35 | "_release": "3.3.6",
36 | "_resolution": {
37 | "type": "version",
38 | "tag": "v3.3.6",
39 | "commit": "81df608a40bf0629a1dc08e584849bb1e43e0b7a"
40 | },
41 | "_source": "git://github.com/twbs/bootstrap.git",
42 | "_target": "3.3",
43 | "_originalSource": "bootstrap"
44 | }
--------------------------------------------------------------------------------
/themes/bootstrap/public/bower_components/bootstrap/less/pager.less:
--------------------------------------------------------------------------------
1 | //
2 | // Pager pagination
3 | // --------------------------------------------------
4 |
5 |
6 | .pager {
7 | padding-left: 0;
8 | margin: @line-height-computed 0;
9 | list-style: none;
10 | text-align: center;
11 | &:extend(.clearfix all);
12 | li {
13 | display: inline;
14 | > a,
15 | > span {
16 | display: inline-block;
17 | padding: 5px 14px;
18 | background-color: @pager-bg;
19 | border: 1px solid @pager-border;
20 | border-radius: @pager-border-radius;
21 | }
22 |
23 | > a:hover,
24 | > a:focus {
25 | text-decoration: none;
26 | background-color: @pager-hover-bg;
27 | }
28 | }
29 |
30 | .next {
31 | > a,
32 | > span {
33 | float: right;
34 | }
35 | }
36 |
37 | .previous {
38 | > a,
39 | > span {
40 | float: left;
41 | }
42 | }
43 |
44 | .disabled {
45 | > a,
46 | > a:hover,
47 | > a:focus,
48 | > span {
49 | color: @pager-disabled-color;
50 | background-color: @pager-bg;
51 | cursor: @cursor-disabled;
52 | }
53 | }
54 | }
55 |
--------------------------------------------------------------------------------
/themes/bootstrap/public/bower_components/jquery/src/exports/amd.js:
--------------------------------------------------------------------------------
1 | define( [
2 | "../core"
3 | ], function( jQuery ) {
4 |
5 | // Register as a named AMD module, since jQuery can be concatenated with other
6 | // files that may use define, but not via a proper concatenation script that
7 | // understands anonymous AMD modules. A named AMD is safest and most robust
8 | // way to register. Lowercase jquery is used because AMD module names are
9 | // derived from file names, and jQuery is normally delivered in a lowercase
10 | // file name. Do this after creating the global so that if an AMD module wants
11 | // to call noConflict to hide this version of jQuery, it will work.
12 |
13 | // Note that for maximum portability, libraries that are not jQuery should
14 | // declare themselves as anonymous modules, and avoid setting a global if an
15 | // AMD loader is present. jQuery is a special case. For more information, see
16 | // https://github.com/jrburke/requirejs/wiki/Updating-existing-libraries#wiki-anon
17 |
18 | if ( typeof define === "function" && define.amd ) {
19 | define( "jquery", [], function() {
20 | return jQuery;
21 | } );
22 | }
23 |
24 | } );
25 |
--------------------------------------------------------------------------------
/themes/bootstrap/public/bower_components/jquery-sparkline/sparkline.jquery.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "sparkline",
3 | "title": "jQuery Sparkline",
4 | "description": "Easily generate small, inline sparkline charts directly in the browser",
5 | "keywords": [
6 | "canvas",
7 | "charts",
8 | "graphics",
9 | "graphing",
10 | "graphs",
11 | "sparklines",
12 | "ui",
13 | "vml"
14 | ],
15 | "version": "2.1.2",
16 | "author": {
17 | "name": "Gareth Watts",
18 | "url": "http://gwatts.com/"
19 | },
20 | "licenses": [
21 | {
22 | "type": "BSD-3-Clause",
23 | "url": "http://opensource.org/licenses/BSD-3-Clause"
24 | }
25 | ],
26 | "bugs": "https://github.com/gwatts/jquery.sparkline/issues",
27 | "homepage": "http://omnipotent.net/jquery.sparkline/",
28 | "demo": "http://omnipotent.net/jquery.sparkline/",
29 | "docs": "http://omnipotent.net/jquery.sparkline/#s-docs",
30 | "download": "http://omnipotent.net/jquery.sparkline/#s-download",
31 | "dependencies": {
32 | "jquery": ">=1.4.3"
33 | }
34 | }
35 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | The MIT License (MIT)
2 |
3 | Copyright (c) 2012 James Hillyerd, All Rights Reserved
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy of
6 | this software and associated documentation files (the "Software"), to deal in
7 | the Software without restriction, including without limitation the rights to
8 | use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
9 | the Software, and to permit persons to whom the Software is furnished to do so,
10 | subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
17 | FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
18 | COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
19 | IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
20 | CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
21 |
--------------------------------------------------------------------------------
/themes/bootstrap/public/bower_components/bootstrap/grunt/bs-commonjs-generator.js:
--------------------------------------------------------------------------------
1 | /*!
2 | * Bootstrap Grunt task for the CommonJS module generation
3 | * http://getbootstrap.com
4 | * Copyright 2014-2015 Twitter, Inc.
5 | * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
6 | */
7 |
8 | 'use strict';
9 |
10 | var fs = require('fs');
11 | var path = require('path');
12 |
13 | var COMMONJS_BANNER = '// This file is autogenerated via the `commonjs` Grunt task. You can require() this file in a CommonJS environment.\n';
14 |
15 | module.exports = function generateCommonJSModule(grunt, srcFiles, destFilepath) {
16 | var destDir = path.dirname(destFilepath);
17 |
18 | function srcPathToDestRequire(srcFilepath) {
19 | var requirePath = path.relative(destDir, srcFilepath).replace(/\\/g, '/');
20 | return 'require(\'' + requirePath + '\')';
21 | }
22 |
23 | var moduleOutputJs = COMMONJS_BANNER + srcFiles.map(srcPathToDestRequire).join('\n');
24 | try {
25 | fs.writeFileSync(destFilepath, moduleOutputJs);
26 | } catch (err) {
27 | grunt.fail.warn(err);
28 | }
29 | grunt.log.writeln('File ' + destFilepath.cyan + ' created.');
30 | };
31 |
--------------------------------------------------------------------------------
/swaks-tests/run-tests.sh:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 | # run-tests.sh
3 | # description: Generate test emails for Inbucket
4 |
5 | set -eo pipefail
6 |
7 | # We need to be in swaks-tests directory
8 | cmdpath="$(dirname "$0")"
9 | if [ "$cmdpath" != "." ]; then
10 | cd "$cmdpath"
11 | fi
12 |
13 | case "$1" in
14 | "")
15 | to="swaks"
16 | ;;
17 | --*)
18 | to="swaks"
19 | ;;
20 | *)
21 | to="$1"
22 | ;;
23 | esac
24 |
25 | export SWAKS_OPT_server="127.0.0.1:2500"
26 | export SWAKS_OPT_to="$to@inbucket.local"
27 |
28 | # Basic test
29 | swaks $* --h-Subject: "Swaks Plain Text" --body text.txt
30 |
31 | # HTML test
32 | swaks $* --h-Subject: "Swaks HTML" --data mime-html.raw
33 |
34 | # Top level HTML test
35 | swaks $* --h-Subject: "Swaks Top Level HTML" --data nonmime-html.raw
36 |
37 | # Attachment test
38 | swaks $* --h-Subject: "Swaks Attachment" --attach-type image/png --attach favicon.png --body text.txt
39 |
40 | # Encoded subject line test
41 | swaks $* --data utf8-subject.raw
42 |
43 | # Gmail test
44 | swaks $* --data gmail.raw
45 |
46 | # Outlook test
47 | swaks $* --data outlook.raw
48 |
49 | # Nonemime responsive HTML test
50 | swaks $* --data nonmime-html-responsive.raw
51 |
--------------------------------------------------------------------------------
/themes/bootstrap/public/bower_components/bootstrap/LICENSE:
--------------------------------------------------------------------------------
1 | The MIT License (MIT)
2 |
3 | Copyright (c) 2011-2015 Twitter, Inc
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in
13 | all copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
21 | THE SOFTWARE.
22 |
--------------------------------------------------------------------------------
/themes/bootstrap/public/bower_components/moment/src/lib/create/valid.js:
--------------------------------------------------------------------------------
1 | import extend from '../utils/extend';
2 | import { createUTC } from './utc';
3 | import getParsingFlags from '../create/parsing-flags';
4 |
5 | export function isValid(m) {
6 | if (m._isValid == null) {
7 | var flags = getParsingFlags(m);
8 | m._isValid = !isNaN(m._d.getTime()) &&
9 | flags.overflow < 0 &&
10 | !flags.empty &&
11 | !flags.invalidMonth &&
12 | !flags.invalidWeekday &&
13 | !flags.nullInput &&
14 | !flags.invalidFormat &&
15 | !flags.userInvalidated;
16 |
17 | if (m._strict) {
18 | m._isValid = m._isValid &&
19 | flags.charsLeftOver === 0 &&
20 | flags.unusedTokens.length === 0 &&
21 | flags.bigHour === undefined;
22 | }
23 | }
24 | return m._isValid;
25 | }
26 |
27 | export function createInvalid (flags) {
28 | var m = createUTC(NaN);
29 | if (flags != null) {
30 | extend(getParsingFlags(m), flags);
31 | }
32 | else {
33 | getParsingFlags(m).userInvalidated = true;
34 | }
35 |
36 | return m;
37 | }
38 |
--------------------------------------------------------------------------------
/themes/bootstrap/public/bower_components/jquery-color/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "jquery-color",
3 | "title": "jQuery Color",
4 | "description": "jQuery plugin for color manipulation and animation support.",
5 | "version": "2.1.2",
6 | "homepage": "https://github.com/jquery/jquery-color",
7 | "author": {
8 | "name": "jQuery Foundation and other contributors",
9 | "url": "https://github.com/jquery/jquery-color/blob/master/AUTHORS.txt"
10 | },
11 | "maintainers": [
12 | {
13 | "name": "Corey Frang",
14 | "email": "gnarf37@gmail.com",
15 | "url": "http://gnarf.net"
16 | }
17 | ],
18 | "repository": {
19 | "type": "git",
20 | "url": "git://github.com/jquery/jquery-color.git"
21 | },
22 | "bugs": "https://github.com/jquery/jquery-color/issues",
23 | "licenses": [
24 | {
25 | "type": "MIT",
26 | "url": "https://github.com/jquery/jquery-color/blob/master/MIT-LICENSE.txt"
27 | }
28 | ],
29 | "dependencies": {},
30 | "devDependencies": {
31 | "grunt": "~0.3.17",
32 | "grunt-compare-size": ">=0.1.4",
33 | "grunt-git-authors": "1.0.0",
34 | "testswarm": "0.2.2"
35 | },
36 | "keywords": [ "color", "animation" ]
37 | }
38 |
--------------------------------------------------------------------------------
/themes/bootstrap/public/bower_components/moment/LICENSE:
--------------------------------------------------------------------------------
1 | Copyright (c) 2011-2016 Tim Wood, Iskren Chernev, Moment.js contributors
2 |
3 | Permission is hereby granted, free of charge, to any person
4 | obtaining a copy of this software and associated documentation
5 | files (the "Software"), to deal in the Software without
6 | restriction, including without limitation the rights to use,
7 | copy, modify, merge, publish, distribute, sublicense, and/or sell
8 | copies of the Software, and to permit persons to whom the
9 | Software is furnished to do so, subject to the following
10 | conditions:
11 |
12 | The above copyright notice and this permission notice shall be
13 | included in all copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
16 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
17 | OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
18 | NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
19 | HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
20 | WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
21 | FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
22 | OTHER DEALINGS IN THE SOFTWARE.
23 |
--------------------------------------------------------------------------------
/themes/bootstrap/public/bower_components/jquery/src/manipulation/support.js:
--------------------------------------------------------------------------------
1 | define( [
2 | "../var/document",
3 | "../var/support"
4 | ], function( document, support ) {
5 |
6 | ( function() {
7 | var fragment = document.createDocumentFragment(),
8 | div = fragment.appendChild( document.createElement( "div" ) ),
9 | input = document.createElement( "input" );
10 |
11 | // Support: Android 4.0-4.3, Safari<=5.1
12 | // Check state lost if the name is set (#11217)
13 | // Support: Windows Web Apps (WWA)
14 | // `name` and `type` must use .setAttribute for WWA (#14901)
15 | input.setAttribute( "type", "radio" );
16 | input.setAttribute( "checked", "checked" );
17 | input.setAttribute( "name", "t" );
18 |
19 | div.appendChild( input );
20 |
21 | // Support: Safari<=5.1, Android<4.2
22 | // Older WebKit doesn't clone checked state correctly in fragments
23 | support.checkClone = div.cloneNode( true ).cloneNode( true ).lastChild.checked;
24 |
25 | // Support: IE<=11+
26 | // Make sure textarea (and checkbox) defaultValue is properly cloned
27 | div.innerHTML = "";
28 | support.noCloneChecked = !!div.cloneNode( true ).lastChild.defaultValue;
29 | } )();
30 |
31 | return support;
32 |
33 | } );
34 |
--------------------------------------------------------------------------------
/themes/bootstrap/public/bower_components/jquery-color/MIT-LICENSE.txt:
--------------------------------------------------------------------------------
1 | Copyright 2013 jQuery Foundation and other contributors,
2 | http://jquery.com
3 |
4 | Permission is hereby granted, free of charge, to any person obtaining
5 | a copy of this software and associated documentation files (the
6 | "Software"), to deal in the Software without restriction, including
7 | without limitation the rights to use, copy, modify, merge, publish,
8 | distribute, sublicense, and/or sell copies of the Software, and to
9 | permit persons to whom the Software is furnished to do so, subject to
10 | the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be
13 | included in all copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
16 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
17 | MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
18 | NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
19 | LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
20 | OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
21 | WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
22 |
--------------------------------------------------------------------------------
/themes/bootstrap/public/bower_components/bootstrap/less/media.less:
--------------------------------------------------------------------------------
1 | .media {
2 | // Proper spacing between instances of .media
3 | margin-top: 15px;
4 |
5 | &:first-child {
6 | margin-top: 0;
7 | }
8 | }
9 |
10 | .media,
11 | .media-body {
12 | zoom: 1;
13 | overflow: hidden;
14 | }
15 |
16 | .media-body {
17 | width: 10000px;
18 | }
19 |
20 | .media-object {
21 | display: block;
22 |
23 | // Fix collapse in webkit from max-width: 100% and display: table-cell.
24 | &.img-thumbnail {
25 | max-width: none;
26 | }
27 | }
28 |
29 | .media-right,
30 | .media > .pull-right {
31 | padding-left: 10px;
32 | }
33 |
34 | .media-left,
35 | .media > .pull-left {
36 | padding-right: 10px;
37 | }
38 |
39 | .media-left,
40 | .media-right,
41 | .media-body {
42 | display: table-cell;
43 | vertical-align: top;
44 | }
45 |
46 | .media-middle {
47 | vertical-align: middle;
48 | }
49 |
50 | .media-bottom {
51 | vertical-align: bottom;
52 | }
53 |
54 | // Reset margins on headings for tighter default spacing
55 | .media-heading {
56 | margin-top: 0;
57 | margin-bottom: 5px;
58 | }
59 |
60 | // Media list variation
61 | //
62 | // Undo default ul/ol styles
63 | .media-list {
64 | padding-left: 0;
65 | list-style: none;
66 | }
67 |
--------------------------------------------------------------------------------
/themes/bootstrap/public/bower_components/jquery/src/css/showHide.js:
--------------------------------------------------------------------------------
1 | define( [
2 | "../data/var/dataPriv"
3 | ], function( dataPriv ) {
4 |
5 | function showHide( elements, show ) {
6 | var display, elem,
7 | values = [],
8 | index = 0,
9 | length = elements.length;
10 |
11 | // Determine new display value for elements that need to change
12 | for ( ; index < length; index++ ) {
13 | elem = elements[ index ];
14 | if ( !elem.style ) {
15 | continue;
16 | }
17 |
18 | display = elem.style.display;
19 | if ( show ) {
20 | if ( display === "none" ) {
21 |
22 | // Restore a pre-hide() value if we have one
23 | values[ index ] = dataPriv.get( elem, "display" ) || "";
24 | }
25 | } else {
26 | if ( display !== "none" ) {
27 | values[ index ] = "none";
28 |
29 | // Remember the value we're replacing
30 | dataPriv.set( elem, "display", display );
31 | }
32 | }
33 | }
34 |
35 | // Set the display of the elements in a second loop
36 | // to avoid the constant reflow
37 | for ( index = 0; index < length; index++ ) {
38 | if ( values[ index ] != null ) {
39 | elements[ index ].style.display = values[ index ];
40 | }
41 | }
42 |
43 | return elements;
44 | }
45 |
46 | return showHide;
47 |
48 | } );
49 |
--------------------------------------------------------------------------------
/themes/integral/templates/mailbox/_show.html:
--------------------------------------------------------------------------------
1 | {{$name := .name}}
2 | {{$id := .message.ID}}
3 |