Commit 27c13421 by zuizuihao

refactor

parent 93fd2e6d
Showing with 4 additions and 2212 deletions
{ {
"appName": "demo_meteor", "appName": "demo_meteor",
"appLocation": { "appLocation": {
"local": "./" "local": "../"
}, },
"meteorSettingsLocation": "C:\\Users\\王扬\\Desktop\\demo_meteor\\settings.json", "meteorSettingsLocation": "./settings.json",
"meteorSettingsInRepo": false, "meteorSettingsInRepo": false,
"prebuildScript": "", "prebuildScript": "",
"meteorBuildFlags": "--architecture os.linux.x86_64", "meteorBuildFlags": "--architecture os.linux.x86_64",
"env": { "env": {
"ROOT_URL": "", "ROOT_URL": "http://39.100.116.31",
"PORT": 3000, "PORT": 3000,
"MONGO_URL": "" "MONGO_URL": ""
}, },
......
node_modules/ node_modules/
bundle
No preview for this file type
This is a Meteor application bundle. It has only one external dependency:
Node.js v8.15.1. To run the application:
$ (cd programs/server && npm install)
$ export MONGO_URL='mongodb://user:password@host:port/databasename'
$ export ROOT_URL='http://example.com'
$ export MAIL_URL='smtp://user:password@mailhost:port/'
$ node main.js
Use the PORT environment variable to set the port where the
application will listen. The default is 80, but that will require
root on most systems.
Find out more about Meteor at meteor.com.
process.argv.splice(2, 0, 'program.json');
process.chdir(require('path').join(__dirname, 'programs', 'server'));
require('./programs/server/boot.js');
\ No newline at end of file
var require = meteorInstall({"server":{"main.js":function(require,exports,module){
///////////////////////////////////////////////////////////////////////
// //
// server/main.js //
// //
///////////////////////////////////////////////////////////////////////
//
let Meteor;
module.link("meteor/meteor", {
Meteor(v) {
Meteor = v;
}
}, 0);
Meteor.startup(() => {// code to run on server at startup
});
///////////////////////////////////////////////////////////////////////
}}},{
"extensions": [
".js",
".json"
]
});
var exports = require("/server/main.js");
//# sourceURL=meteor://💻app/app/app.js
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm1ldGVvcjovL/CfkrthcHAvc2VydmVyL21haW4uanMiXSwibmFtZXMiOlsiTWV0ZW9yIiwibW9kdWxlIiwibGluayIsInYiLCJzdGFydHVwIl0sIm1hcHBpbmdzIjoiOzs7Ozs7OztBQUFBLElBQUlBLE1BQUo7QUFBV0MsTUFBTSxDQUFDQyxJQUFQLENBQVksZUFBWixFQUE0QjtBQUFDRixRQUFNLENBQUNHLENBQUQsRUFBRztBQUFDSCxVQUFNLEdBQUNHLENBQVA7QUFBUzs7QUFBcEIsQ0FBNUIsRUFBa0QsQ0FBbEQ7QUFFWEgsTUFBTSxDQUFDSSxPQUFQLENBQWUsTUFBTSxDQUNuQjtBQUNELENBRkQsRSIsImZpbGUiOiIvYXBwLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTWV0ZW9yIH0gZnJvbSAnbWV0ZW9yL21ldGVvcic7XG5cbk1ldGVvci5zdGFydHVwKCgpID0+IHtcbiAgLy8gY29kZSB0byBydW4gb24gc2VydmVyIGF0IHN0YXJ0dXBcbn0pO1xuIl19
{"version":3,"sources":["meteor://💻app/server/main.js"],"names":["Meteor","module","link","v","startup"],"mappings":";;;;;;;;AAAA,IAAIA,MAAJ;AAAWC,MAAM,CAACC,IAAP,CAAY,eAAZ,EAA4B;AAACF,QAAM,CAACG,CAAD,EAAG;AAACH,UAAM,GAACG,CAAP;AAAS;;AAApB,CAA5B,EAAkD,CAAlD;AAEXH,MAAM,CAACI,OAAP,CAAe,MAAM,CACnB;AACD,CAFD,E","file":"/app.js","sourcesContent":["import { Meteor } from 'meteor/meteor';\n\nMeteor.startup(() => {\n // code to run on server at startup\n});\n"]}
\ No newline at end of file
/* Imports for global scope */
MongoInternals = Package.mongo.MongoInternals;
Mongo = Package.mongo.Mongo;
ReactiveVar = Package['reactive-var'].ReactiveVar;
Tracker = Package.tracker.Tracker;
Deps = Package.tracker.Deps;
ECMAScript = Package.ecmascript.ECMAScript;
Meteor = Package.meteor.Meteor;
global = Package.meteor.global;
meteorEnv = Package.meteor.meteorEnv;
WebApp = Package.webapp.WebApp;
WebAppInternals = Package.webapp.WebAppInternals;
main = Package.webapp.main;
DDP = Package['ddp-client'].DDP;
DDPServer = Package['ddp-server'].DDPServer;
LaunchScreen = Package['launch-screen'].LaunchScreen;
Blaze = Package.ui.Blaze;
UI = Package.ui.UI;
Handlebars = Package.ui.Handlebars;
Spacebars = Package.spacebars.Spacebars;
meteorInstall = Package.modules.meteorInstall;
meteorBabelHelpers = Package['babel-runtime'].meteorBabelHelpers;
Promise = Package.promise.Promise;
Autoupdate = Package.autoupdate.Autoupdate;
HTML = Package.htmljs.HTML;
// Separated from boot.js for testing.
// Check that we have a pid that looks like an integer (non-decimal
// integer is okay).
exports.validPid = function (pid) {
return ! isNaN(+pid);
};
{
"meteorRelease": "METEOR@1.8.1",
"appId": "lztljtyc7lt.qz3r4xhdnbm",
"clientArchs": [
"web.browser",
"web.browser.legacy"
]
}
\ No newline at end of file
exports.pause = function () {
// The debugger pauses here when you run `meteor debug`, so that you can
// set breakpoints or add `debugger` statements to your server code
// before the code begins executing. Once you have set any breakpoints
// you wish to set, click the |▶ button to continue.
debugger;
};
\ No newline at end of file
var _ = require("underscore");
var os = require("os");
var path = require("path");
var assert = require("assert");
// All of these functions are attached to files.js for the tool;
// they live here because we need them in boot.js as well to avoid duplicating
// a lot of the code.
//
// Note that this file does NOT contain any of the "perform I/O maybe
// synchronously" functions from files.js; this is intentional, because we want
// to make it very hard to accidentally use fs.*Sync functions in the app server
// after bootup (since they block all concurrency!)
var files = module.exports;
// Detect that we are on a Windows-like Filesystem, such as that in a WSL
// (Windows Subsystem for Linux) even if it otherwise looks like we're on Unix.
// https://github.com/Microsoft/BashOnWindows/issues/423#issuecomment-221627364
var isWindowsLikeFilesystem = function () {
return process.platform === "win32" ||
(os.release().indexOf("Microsoft") > -1);
};
var toPosixPath = function (p, partialPath) {
// Sometimes, you can have a path like \Users\IEUser on windows, and this
// actually means you want C:\Users\IEUser
if (p[0] === "\\" && (! partialPath)) {
p = process.env.SystemDrive + p;
}
p = p.replace(/\\/g, '/');
if (p[1] === ':' && ! partialPath) {
// transform "C:/bla/bla" to "/c/bla/bla"
p = '/' + p[0] + p.slice(2);
}
return p;
};
var toDosPath = function (p, partialPath) {
if (p[0] === '/' && ! partialPath) {
if (! /^\/[A-Za-z](\/|$)/.test(p))
throw new Error("Surprising path: " + p);
// transform a previously windows path back
// "/C/something" to "c:/something"
p = p[1] + ":" + p.slice(2);
}
p = p.replace(/\//g, '\\');
return p;
};
var convertToOSPath = function (standardPath, partialPath) {
if (process.platform === "win32") {
return toDosPath(standardPath, partialPath);
}
return standardPath;
};
var convertToStandardPath = function (osPath, partialPath) {
if (process.platform === "win32") {
return toPosixPath(osPath, partialPath);
}
return osPath;
}
var convertToOSLineEndings = function (fileContents) {
return fileContents.replace(/\n/g, os.EOL);
};
var convertToStandardLineEndings = function (fileContents) {
// Convert all kinds of end-of-line chars to linuxy "\n".
return fileContents.replace(new RegExp("\r\n", "g"), "\n")
.replace(new RegExp("\r", "g"), "\n");
};
// Return the Unicode Normalization Form of the passed in path string, using
// "Normalization Form Canonical Composition"
const unicodeNormalizePath = (path) => {
return (path) ? path.normalize('NFC') : path;
};
// wrappings for path functions that always run as they were on unix (using
// forward slashes)
var wrapPathFunction = function (name, partialPaths) {
var f = path[name];
assert.strictEqual(typeof f, "function");
return function (/* args */) {
if (process.platform === 'win32') {
var args = _.toArray(arguments);
args = _.map(args, function (p, i) {
// if partialPaths is turned on (for path.join mostly)
// forget about conversion of absolute paths for Windows
return toDosPath(p, partialPaths);
});
var result = f.apply(path, args);
if (typeof result === "string") {
result = toPosixPath(result, partialPaths);
}
return result;
}
return f.apply(path, arguments);
};
};
files.pathJoin = wrapPathFunction("join", true);
files.pathNormalize = wrapPathFunction("normalize");
files.pathRelative = wrapPathFunction("relative");
files.pathResolve = wrapPathFunction("resolve");
files.pathDirname = wrapPathFunction("dirname");
files.pathBasename = wrapPathFunction("basename");
files.pathExtname = wrapPathFunction("extname");
// The path.isAbsolute function is implemented in Node v4.
files.pathIsAbsolute = wrapPathFunction("isAbsolute");
files.pathSep = '/';
files.pathDelimiter = ':';
files.pathOsDelimiter = path.delimiter;
files.isWindowsLikeFilesystem = isWindowsLikeFilesystem;
files.convertToStandardPath = convertToStandardPath;
files.convertToOSPath = convertToOSPath;
files.convertToWindowsPath = toDosPath;
files.convertToPosixPath = toPosixPath;
files.convertToStandardLineEndings = convertToStandardLineEndings;
files.convertToOSLineEndings = convertToOSLineEndings;
files.unicodeNormalizePath = unicodeNormalizePath;
// Command-line arguments passed to npm when rebuilding binary packages.
var args = [
"rebuild",
// The --update-binary flag tells node-pre-gyp to replace previously
// installed local binaries with remote binaries:
// https://github.com/mapbox/node-pre-gyp#options
"--update-binary"
];
// Allow additional flags to be passed via the $METEOR_NPM_REBUILD_FLAGS
// environment variable.
var flags = process.env.METEOR_NPM_REBUILD_FLAGS;
if (flags) {
args = ["rebuild"];
flags.split(/\s+/g).forEach(function (flag) {
if (flag) {
args.push(flag);
}
});
}
exports.get = function () {
// Make a defensive copy.
return args.slice(0);
};
// If a developer wants to go to the trouble of building on exactly the
// same architecture as the production machine, then it should be possible
// to skip running `npm rebuild`.
if (process.env.METEOR_SKIP_NPM_REBUILD) {
process.exit(0);
}
var fs = require("fs");
var path = require("path");
var spawn = require("child_process").spawn;
var rebuildArgs = require("./npm-rebuild-args.js").get();
try {
// This JSON file gets written in meteor/tools/isobuild/bundler.js.
var rebuilds = require("./npm-rebuilds.json");
} catch (e) {
if (e.code !== "MODULE_NOT_FOUND") {
throw e;
}
// If npm-rebuilds.json was not written, assume there is nothing that
// needs to be rebuilt.
process.exit(0);
}
// Make sure the npm finds this exact version of node in its $PATH.
var binDir = path.dirname(process.execPath);
process.env.PATH = binDir + path.delimiter + process.env.PATH;
var npmCmd = "npm";
if (process.platform === "win32") {
var npmCmdPath = path.join(binDir, "npm.cmd");
if (fs.existsSync(npmCmdPath)) {
npmCmd = npmCmdPath;
}
}
function rebuild(i) {
var dir = rebuilds && rebuilds[i];
if (! dir) {
// Print Node/V8/etc. versions for diagnostic purposes.
spawn(npmCmd, ["version", "--json"], {
stdio: "inherit"
});
return;
}
spawn(npmCmd, rebuildArgs, {
cwd: path.join(__dirname, dir),
stdio: "inherit"
}).on("exit", function (code) {
if (code !== 0) {
process.exit(code);
} else {
rebuild(i + 1);
}
});
}
rebuild(0);
[
"npm/node_modules/meteor/babel-compiler"
]
var assert = require("assert");
var fs = require("fs");
var path = require("path");
var _ = require('underscore');
var files = require('./mini-files.js');
var serverJson = require("./server-json.js");
var topLevelIdPattern = /^[^./]/;
function statOrNull(path) {
try {
return fs.statSync(path);
} catch (e) {
return null;
}
}
function findAppDirHelper(absOSPath) {
if (fs.statSync(absOSPath).isDirectory() &&
statOrNull(path.join(absOSPath, ".meteor"))) {
return absOSPath;
}
var parentDir = path.dirname(absOSPath);
if (parentDir !== absOSPath) {
return findAppDirHelper(parentDir);
}
throw new Error("Cannot find application root directory");
}
function findAppDir(absPath) {
return files.convertToPosixPath(
findAppDirHelper(files.convertToOSPath(absPath)));
}
// Map from virtual module identifiers for node_modules directories (like
// "/node_modules/meteor/blaze/node_modules") to the absolute paths of the
// read node_modules directories on disk. The npmRequire function below
// needs to look up absolute paths using virtual identifiers as input.
var nodeModulesRegistry = Object.create(null);
_.each(serverJson.load, function (fileInfo) {
if (fileInfo.node_modules) {
var match = /^(packages|app)\/(\S+)?\.js/.exec(fileInfo.path);
if (match) {
if (match[1] === "packages") {
registerNodeModules(match[2], fileInfo.node_modules);
} else if (match[1] === "app") {
registerNodeModules(null, fileInfo.node_modules);
}
}
}
});
function registerNodeModules(name, node_modules) {
if (typeof node_modules === "string") {
addByPath(node_modules);
} else {
Object.keys(node_modules).forEach(addByPath);
}
function addByPath(node_modules) {
assert.strictEqual(typeof node_modules, "string");
var parts = node_modules.split(files.pathSep);
if (parts[0] === "") parts.shift();
if (files.pathIsAbsolute(node_modules)) {
if (! name) {
var appDir = findAppDir(node_modules);
var relPathWithinApp = files.pathRelative(appDir, node_modules);
addByParts(relPathWithinApp.split(files.pathSep), node_modules);
return;
}
parts.forEach(function (part, i) {
if (part === "npm") {
addByParts(parts.slice(i + 1), node_modules);
} else if (part === ".npm") {
if (name) {
parts.unshift("node_modules", "meteor", name);
}
if (parts[i + 1] === "package") {
addByParts(parts.slice(i + 2), node_modules);
} else if (parts[i + 1] === "plugin") {
assert.strictEqual(parts[i + 2], name);
addByParts(parts.slice(i + 3), node_modules);
}
}
});
} else if (parts[0] === "npm") {
var absPath = files.pathResolve(__dirname, parts.join(files.pathSep));
addByParts(parts.slice(1), absPath);
} else {
throw new Error("unknown node_modules path: " + node_modules);
}
}
function addByParts(parts, absPath) {
assert.ok(parts.length > 0);
assert.notEqual(parts[0], "");
assert.notEqual(parts[0], "..");
// Ensure a leading / character.
if (parts[0].length > 0) {
parts.unshift("");
}
nodeModulesRegistry[parts.join("/")] = absPath;
}
}
function getRelID(id) {
assert.strictEqual(id.charAt(0), "/");
return "./npm" + id.replace(/:/g, "_");
}
// Sort the keys in reverse alphabetical order so that longer paths will
// come before their prefixes.
var sortedNodeModulesPaths =
Object.keys(nodeModulesRegistry).sort(function (a, b) {
if (a < b) return 1;
if (b < a) return -1;
return 0;
});
function npmRequire(id) {
return require(resolve(id));
}
var resolveCache = Object.create(null);
function resolve(id) {
var res = resolveCache[id];
if (typeof res === "string") {
return res;
}
if (res === null) {
var idParts = id.split("/");
var meteorAddTip = "";
// If it looks like `meteor/xxx`, the user may forgot to add the
// package before importing it.
if (idParts.length === 2 &&
idParts[0] === "meteor") {
meteorAddTip = ". Try `meteor add " + idParts[1] + "` " +
"as it looks like you tried to import it without adding " +
"to the project.";
}
res = new Error("Cannot find module '" + id + "'" + meteorAddTip);
res.code = "MODULE_NOT_FOUND";
throw res;
}
resolveCache[id] =
resolveInLocalBuild(id) ||
resolveInNodeModules(id) ||
resolveInDevBundle(id) ||
null;
return resolve(id);
}
function resolveInLocalBuild(id) {
return tryResolve(getRelID(id));
}
function resolveInNodeModules(id) {
var absId;
sortedNodeModulesPaths.some(function (prefix) {
var relId = files.pathRelative(
files.pathJoin(".", prefix),
files.pathJoin(".", id)
);
if (relId.slice(0, 2) !== "..") {
return absId =
files.pathJoin(nodeModulesRegistry[prefix], relId);
}
});
return absId && tryResolve(files.convertToOSPath(absId));
}
function resolveInDevBundle(id) {
// Fall back to dev_bundle/lib/node_modules and built-in modules.
return topLevelIdPattern.test(id) && tryResolve(id);
}
function tryResolve(id) {
try {
return require.resolve(id);
} catch (e) {
return null;
}
}
exports.require = npmRequire;
exports.resolve = npmRequire.resolve = resolve;
{
"name": "meteor-dev-bundle",
"requires": true,
"lockfileVersion": 1,
"dependencies": {
"amdefine": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz",
"integrity": "sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU="
},
"ansi-regex": {
"version": "0.2.1",
"resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-0.2.1.tgz",
"integrity": "sha1-DY6UaWej2BQ/k+JOKYUl/BsiNfk=",
"dev": true
},
"ansi-styles": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-1.1.0.tgz",
"integrity": "sha1-6uy/Zs1waIJ2Cy9GkVgrj1XXp94=",
"dev": true
},
"asap": {
"version": "2.0.6",
"resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz",
"integrity": "sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY="
},
"chalk": {
"version": "0.5.1",
"resolved": "https://registry.npmjs.org/chalk/-/chalk-0.5.1.tgz",
"integrity": "sha1-Zjs6ZItotV0EaQ1JFnqoN4WPIXQ=",
"dev": true,
"requires": {
"ansi-styles": "^1.1.0",
"escape-string-regexp": "^1.0.0",
"has-ansi": "^0.1.0",
"strip-ansi": "^0.3.0",
"supports-color": "^0.2.0"
}
},
"core-util-is": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz",
"integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=",
"dev": true
},
"detect-libc": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz",
"integrity": "sha1-+hN8S9aY7fVc1c0CrFWfkaTEups="
},
"duplexer2": {
"version": "0.1.4",
"resolved": "https://registry.npmjs.org/duplexer2/-/duplexer2-0.1.4.tgz",
"integrity": "sha1-ixLauHjA1p4+eJEFFmKjL8a93ME=",
"dev": true,
"requires": {
"readable-stream": "^2.0.2"
}
},
"escape-string-regexp": {
"version": "1.0.5",
"resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
"integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=",
"dev": true
},
"fibers": {
"version": "3.1.1",
"resolved": "https://registry.npmjs.org/fibers/-/fibers-3.1.1.tgz",
"integrity": "sha512-dl3Ukt08rHVQfY8xGD0ODwyjwrRALtaghuqGH2jByYX1wpY+nAnRQjJ6Dbqq0DnVgNVQ9yibObzbF4IlPyiwPw==",
"requires": {
"detect-libc": "^1.0.3"
}
},
"has-ansi": {
"version": "0.1.0",
"resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-0.1.0.tgz",
"integrity": "sha1-hPJlqujA5qiKEtcCKJS3VoiUxi4=",
"dev": true,
"requires": {
"ansi-regex": "^0.2.0"
}
},
"inherits": {
"version": "2.0.3",
"resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
"integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=",
"dev": true
},
"isarray": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
"integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=",
"dev": true
},
"meteor-promise": {
"version": "0.8.7",
"resolved": "https://registry.npmjs.org/meteor-promise/-/meteor-promise-0.8.7.tgz",
"integrity": "sha512-wAu9XI3+35H1YyhTnnk5QXCfdrho5n/0Ltj65DhsUwtFCuktV7hre92FjtJgBbs+RHj5/iZ8Zcbml40EGLcFTQ=="
},
"multipipe": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/multipipe/-/multipipe-1.0.2.tgz",
"integrity": "sha1-zBPv2DPJzamfIk+GhGG44aP9k50=",
"dev": true,
"requires": {
"duplexer2": "^0.1.2",
"object-assign": "^4.1.0"
}
},
"object-assign": {
"version": "4.1.1",
"resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
"integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=",
"dev": true
},
"process-nextick-args": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.0.tgz",
"integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw==",
"dev": true
},
"promise": {
"version": "8.0.2",
"resolved": "https://registry.npmjs.org/promise/-/promise-8.0.2.tgz",
"integrity": "sha512-EIyzM39FpVOMbqgzEHhxdrEhtOSDOtjMZQ0M6iVfCE+kWNgCkAyOdnuCWqfmflylftfadU6FkiMgHZA2kUzwRw==",
"requires": {
"asap": "~2.0.6"
}
},
"readable-stream": {
"version": "2.3.6",
"resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz",
"integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==",
"dev": true,
"requires": {
"core-util-is": "~1.0.0",
"inherits": "~2.0.3",
"isarray": "~1.0.0",
"process-nextick-args": "~2.0.0",
"safe-buffer": "~5.1.1",
"string_decoder": "~1.1.1",
"util-deprecate": "~1.0.1"
}
},
"safe-buffer": {
"version": "5.1.2",
"resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
"integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==",
"dev": true
},
"semver": {
"version": "5.4.1",
"resolved": "https://registry.npmjs.org/semver/-/semver-5.4.1.tgz",
"integrity": "sha512-WfG/X9+oATh81XtllIo/I8gOiY9EXRdv1cQdyykeXK17YcUW3EXUAi2To4pcH6nZtJPr7ZOpM5OMyWJZm+8Rsg=="
},
"source-map": {
"version": "0.1.32",
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.1.32.tgz",
"integrity": "sha1-yLbBZ3l7pHQKjqMyUhYv8IWRsmY=",
"requires": {
"amdefine": ">=0.0.4"
}
},
"source-map-support": {
"version": "https://github.com/meteor/node-source-map-support/tarball/1912478769d76e5df4c365e147f25896aee6375e",
"integrity": "sha512-2A3Rox3Zq2hUrDE/Vi3LEa/zLCOMj8F1HlMttze0jZmmQLzJjosp1mVtUCMbOTKIurqVm5xOatncI+6KJrngCg==",
"requires": {
"source-map": "0.1.32"
}
},
"split2": {
"version": "2.1.1",
"resolved": "https://registry.npmjs.org/split2/-/split2-2.1.1.tgz",
"integrity": "sha1-eh9VHhdqkOzTNF9yRqDP4XXvT9A=",
"dev": true,
"requires": {
"through2": "^2.0.2"
}
},
"string_decoder": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
"integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
"dev": true,
"requires": {
"safe-buffer": "~5.1.0"
}
},
"strip-ansi": {
"version": "0.3.0",
"resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-0.3.0.tgz",
"integrity": "sha1-JfSOoiynkYfzF0pNuHWTR7sSYiA=",
"dev": true,
"requires": {
"ansi-regex": "^0.2.1"
}
},
"supports-color": {
"version": "0.2.0",
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-0.2.0.tgz",
"integrity": "sha1-2S3iaU6z9nMjlz1649i1W0wiGQo=",
"dev": true
},
"through2": {
"version": "2.0.5",
"resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz",
"integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==",
"dev": true,
"requires": {
"readable-stream": "~2.3.6",
"xtend": "~4.0.1"
}
},
"underscore": {
"version": "1.5.2",
"resolved": "https://registry.npmjs.org/underscore/-/underscore-1.5.2.tgz",
"integrity": "sha1-EzXF5PXm0zu7SwBrqMhqAPVW3gg="
},
"util-deprecate": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
"integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=",
"dev": true
},
"xtend": {
"version": "4.0.1",
"resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz",
"integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68=",
"dev": true
}
}
}
{
"name": "meteor-dev-bundle",
"private": true,
"dependencies": {
"fibers": "3.1.1",
"meteor-promise": "0.8.7",
"promise": "8.0.2",
"underscore": "1.5.2",
"source-map-support": "https://github.com/meteor/node-source-map-support/tarball/1912478769d76e5df4c365e147f25896aee6375e",
"semver": "5.4.1",
"node-gyp": "3.7.0",
"node-pre-gyp": "0.10.3"
},
"devDependencies": {
"split2": "2.1.1",
"multipipe": "1.0.2",
"chalk": "0.5.1"
},
"scripts": {
"install": "node npm-rebuild.js"
}
}
(function () {
/* Exports */
Package._define("autopublish");
})();
(function () {
/* Imports */
var Meteor = Package.meteor.Meteor;
var global = Package.meteor.global;
var meteorEnv = Package.meteor.meteorEnv;
var meteorInstall = Package.modules.meteorInstall;
/* Package-scope variables */
var meteorBabelHelpers;
var require = meteorInstall({"node_modules":{"meteor":{"babel-runtime":{"babel-runtime.js":function(require,exports){
/////////////////////////////////////////////////////////////////////////////////////
// //
// packages/babel-runtime/babel-runtime.js //
// //
/////////////////////////////////////////////////////////////////////////////////////
//
exports.meteorBabelHelpers = require("meteor-babel-helpers");
try {
var babelRuntimeVersion = require("@babel/runtime/package.json").version;
} catch (e) {
throw new Error([
"",
"The @babel/runtime npm package could not be found in your node_modules ",
"directory. Please run the following command to install it:",
"",
" meteor npm install --save @babel/runtime",
""
].join("\n"));
}
if (parseInt(babelRuntimeVersion, 10) < 7 ||
(babelRuntimeVersion.indexOf("7.0.0-beta.") === 0 &&
parseInt(babelRuntimeVersion.split(".").pop(), 10) < 56)) {
console.error([
"The version of @babel/runtime installed in your node_modules directory ",
"(" + babelRuntimeVersion + ") is out of date. Please upgrade it by running ",
"",
" meteor npm install --save @babel/runtime@latest",
"",
"in your application directory.",
""
].join("\n"));
}
/////////////////////////////////////////////////////////////////////////////////////
},"node_modules":{"meteor-babel-helpers":{"package.json":function(require,exports,module){
/////////////////////////////////////////////////////////////////////////////////////
// //
// node_modules/meteor/babel-runtime/node_modules/meteor-babel-helpers/package.jso //
// //
/////////////////////////////////////////////////////////////////////////////////////
//
module.exports = {
"name": "meteor-babel-helpers",
"version": "0.0.3",
"main": "index.js"
};
/////////////////////////////////////////////////////////////////////////////////////
},"index.js":function(require,exports,module){
/////////////////////////////////////////////////////////////////////////////////////
// //
// node_modules/meteor/babel-runtime/node_modules/meteor-babel-helpers/index.js //
// //
/////////////////////////////////////////////////////////////////////////////////////
//
module.useNode();
/////////////////////////////////////////////////////////////////////////////////////
}}}}}}},{
"extensions": [
".js",
".json"
]
});
var exports = require("/node_modules/meteor/babel-runtime/babel-runtime.js");
/* Exports */
Package._define("babel-runtime", exports, {
meteorBabelHelpers: meteorBabelHelpers
});
})();
{"version":3,"sources":["meteor://💻app/packages/base64/base64.js"],"names":["module","export","Base64","BASE_64_CHARS","BASE_64_VALS","Object","create","getChar","val","charAt","getVal","ch","i","length","encode","array","str","newBinary","charCodeAt","Error","answer","a","b","c","d","forEach","elm","push","join","len","Uint8Array","ArrayBuffer","ret","$Uint8ArrayPolyfill","decode","Math","floor","arr","one","two","three","j","v"],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAAAA,MAAM,CAACC,MAAP,CAAc;AAACC,QAAM,EAAC,MAAIA;AAAZ,CAAd;AAAA;AAEA,MAAMC,aAAa,GAAG,kEAAtB;AAEA,MAAMC,YAAY,GAAGC,MAAM,CAACC,MAAP,CAAc,IAAd,CAArB;;AAEA,MAAMC,OAAO,GAAGC,GAAG,IAAIL,aAAa,CAACM,MAAd,CAAqBD,GAArB,CAAvB;;AACA,MAAME,MAAM,GAAGC,EAAE,IAAIA,EAAE,KAAK,GAAP,GAAa,CAAC,CAAd,GAAkBP,YAAY,CAACO,EAAD,CAAnD;;AAEA,KAAK,IAAIC,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGT,aAAa,CAACU,MAAlC,EAA0CD,CAAC,EAA3C,EAA+C;AAC7CR,cAAY,CAACG,OAAO,CAACK,CAAD,CAAR,CAAZ,GAA2BA,CAA3B;AACD;;AAAA;;AAED,MAAME,MAAM,GAAGC,KAAK,IAAI;AACtB,MAAI,OAAOA,KAAP,KAAiB,QAArB,EAA+B;AAC7B,UAAMC,GAAG,GAAGD,KAAZ;AACAA,SAAK,GAAGE,SAAS,CAACD,GAAG,CAACH,MAAL,CAAjB;;AACA,SAAK,IAAID,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGI,GAAG,CAACH,MAAxB,EAAgCD,CAAC,EAAjC,EAAqC;AACnC,YAAMD,EAAE,GAAGK,GAAG,CAACE,UAAJ,CAAeN,CAAf,CAAX;;AACA,UAAID,EAAE,GAAG,IAAT,EAAe;AACb,cAAM,IAAIQ,KAAJ,CACJ,uDADI,CAAN;AAED;;AAEDJ,WAAK,CAACH,CAAD,CAAL,GAAWD,EAAX;AACD;AACF;;AAED,QAAMS,MAAM,GAAG,EAAf;AACA,MAAIC,CAAC,GAAG,IAAR;AACA,MAAIC,CAAC,GAAG,IAAR;AACA,MAAIC,CAAC,GAAG,IAAR;AACA,MAAIC,CAAC,GAAG,IAAR;AAEAT,OAAK,CAACU,OAAN,CAAc,CAACC,GAAD,EAAMd,CAAN,KAAY;AACxB,YAAQA,CAAC,GAAG,CAAZ;AACE,WAAK,CAAL;AACES,SAAC,GAAIK,GAAG,IAAI,CAAR,GAAa,IAAjB;AACAJ,SAAC,GAAG,CAACI,GAAG,GAAG,IAAP,KAAgB,CAApB;AACA;;AACF,WAAK,CAAL;AACEJ,SAAC,GAAGA,CAAC,GAAII,GAAG,IAAI,CAAR,GAAa,GAArB;AACAH,SAAC,GAAG,CAACG,GAAG,GAAG,GAAP,KAAe,CAAnB;AACA;;AACF,WAAK,CAAL;AACEH,SAAC,GAAGA,CAAC,GAAIG,GAAG,IAAI,CAAR,GAAa,IAArB;AACAF,SAAC,GAAGE,GAAG,GAAG,IAAV;AACAN,cAAM,CAACO,IAAP,CAAYpB,OAAO,CAACc,CAAD,CAAnB;AACAD,cAAM,CAACO,IAAP,CAAYpB,OAAO,CAACe,CAAD,CAAnB;AACAF,cAAM,CAACO,IAAP,CAAYpB,OAAO,CAACgB,CAAD,CAAnB;AACAH,cAAM,CAACO,IAAP,CAAYpB,OAAO,CAACiB,CAAD,CAAnB;AACAH,SAAC,GAAG,IAAJ;AACAC,SAAC,GAAG,IAAJ;AACAC,SAAC,GAAG,IAAJ;AACAC,SAAC,GAAG,IAAJ;AACA;AApBJ;AAsBD,GAvBD;;AAyBA,MAAIH,CAAC,IAAI,IAAT,EAAe;AACbD,UAAM,CAACO,IAAP,CAAYpB,OAAO,CAACc,CAAD,CAAnB;AACAD,UAAM,CAACO,IAAP,CAAYpB,OAAO,CAACe,CAAD,CAAnB;;AACA,QAAIC,CAAC,IAAI,IAAT,EAAe;AACbH,YAAM,CAACO,IAAP,CAAY,GAAZ;AACD,KAFD,MAEO;AACLP,YAAM,CAACO,IAAP,CAAYpB,OAAO,CAACgB,CAAD,CAAnB;AACD;;AAED,QAAIC,CAAC,IAAI,IAAT,EAAe;AACbJ,YAAM,CAACO,IAAP,CAAY,GAAZ;AACD;AACF;;AAED,SAAOP,MAAM,CAACQ,IAAP,CAAY,EAAZ,CAAP;AACD,CA7DD,C,CAiEA;AACA;AACA;AACA;AACA;;;AACA,MAAMX,SAAS,GAAGY,GAAG,IAAI;AACvB,MAAI,OAAOC,UAAP,KAAsB,WAAtB,IAAqC,OAAOC,WAAP,KAAuB,WAAhE,EAA6E;AAC3E,UAAMC,GAAG,GAAG,EAAZ;;AACA,SAAK,IAAIpB,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGiB,GAApB,EAAyBjB,CAAC,EAA1B,EAA8B;AAC5BoB,SAAG,CAACL,IAAJ,CAAS,CAAT;AACD;;AAEDK,OAAG,CAACC,mBAAJ,GAA0B,IAA1B;AACA,WAAOD,GAAP;AACD;;AACD,SAAO,IAAIF,UAAJ,CAAe,IAAIC,WAAJ,CAAgBF,GAAhB,CAAf,CAAP;AACD,CAXD;;AAaA,MAAMK,MAAM,GAAGlB,GAAG,IAAI;AACpB,MAAIa,GAAG,GAAGM,IAAI,CAACC,KAAL,CAAYpB,GAAG,CAACH,MAAJ,GAAa,CAAd,GAAmB,CAA9B,CAAV;;AACA,MAAIG,GAAG,CAACP,MAAJ,CAAWO,GAAG,CAACH,MAAJ,GAAa,CAAxB,KAA8B,GAAlC,EAAuC;AACrCgB,OAAG;;AACH,QAAIb,GAAG,CAACP,MAAJ,CAAWO,GAAG,CAACH,MAAJ,GAAa,CAAxB,KAA8B,GAAlC,EAAuC;AACrCgB,SAAG;AACJ;AACF;;AAED,QAAMQ,GAAG,GAAGpB,SAAS,CAACY,GAAD,CAArB;AAEA,MAAIS,GAAG,GAAG,IAAV;AACA,MAAIC,GAAG,GAAG,IAAV;AACA,MAAIC,KAAK,GAAG,IAAZ;AAEA,MAAIC,CAAC,GAAG,CAAR;;AAEA,OAAK,IAAI7B,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGI,GAAG,CAACH,MAAxB,EAAgCD,CAAC,EAAjC,EAAqC;AACnC,UAAMW,CAAC,GAAGP,GAAG,CAACP,MAAJ,CAAWG,CAAX,CAAV;AACA,UAAM8B,CAAC,GAAGhC,MAAM,CAACa,CAAD,CAAhB;;AACA,YAAQX,CAAC,GAAG,CAAZ;AACE,WAAK,CAAL;AACE,YAAI8B,CAAC,GAAG,CAAR,EAAW;AACT,gBAAM,IAAIvB,KAAJ,CAAU,uBAAV,CAAN;AACD;;AAEDmB,WAAG,GAAGI,CAAC,IAAI,CAAX;AACA;;AACF,WAAK,CAAL;AACE,YAAIA,CAAC,GAAG,CAAR,EAAW;AACT,gBAAM,IAAIvB,KAAJ,CAAU,uBAAV,CAAN;AACD;;AAEDmB,WAAG,GAAGA,GAAG,GAAII,CAAC,IAAI,CAAlB;AACAL,WAAG,CAACI,CAAC,EAAF,CAAH,GAAWH,GAAX;AACAC,WAAG,GAAG,CAACG,CAAC,GAAG,IAAL,KAAc,CAApB;AACA;;AACF,WAAK,CAAL;AACE,YAAIA,CAAC,IAAI,CAAT,EAAY;AACVH,aAAG,GAAGA,GAAG,GAAIG,CAAC,IAAI,CAAlB;AACAL,aAAG,CAACI,CAAC,EAAF,CAAH,GAAWF,GAAX;AACAC,eAAK,GAAG,CAACE,CAAC,GAAG,IAAL,KAAc,CAAtB;AACD;;AAED;;AACF,WAAK,CAAL;AACE,YAAIA,CAAC,IAAI,CAAT,EAAY;AACVL,aAAG,CAACI,CAAC,EAAF,CAAH,GAAWD,KAAK,GAAGE,CAAnB;AACD;;AAED;AA9BJ;AAgCD;;AAED,SAAOL,GAAP;AACD,CAvDD;;AAyDO,MAAMnC,MAAM,GAAG;AAAEY,QAAF;AAAUoB,QAAV;AAAkBjB;AAAlB,CAAf,C","file":"/packages/base64.js","sourcesContent":["// Base 64 encoding\n\nconst BASE_64_CHARS = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\";\n\nconst BASE_64_VALS = Object.create(null);\n\nconst getChar = val => BASE_64_CHARS.charAt(val);\nconst getVal = ch => ch === '=' ? -1 : BASE_64_VALS[ch];\n\nfor (let i = 0; i < BASE_64_CHARS.length; i++) {\n BASE_64_VALS[getChar(i)] = i;\n};\n\nconst encode = array => {\n if (typeof array === \"string\") {\n const str = array;\n array = newBinary(str.length);\n for (let i = 0; i < str.length; i++) {\n const ch = str.charCodeAt(i);\n if (ch > 0xFF) {\n throw new Error(\n \"Not ascii. Base64.encode can only take ascii strings.\");\n }\n\n array[i] = ch;\n }\n }\n\n const answer = [];\n let a = null;\n let b = null;\n let c = null;\n let d = null;\n\n array.forEach((elm, i) => {\n switch (i % 3) {\n case 0:\n a = (elm >> 2) & 0x3F;\n b = (elm & 0x03) << 4;\n break;\n case 1:\n b = b | (elm >> 4) & 0xF;\n c = (elm & 0xF) << 2;\n break;\n case 2:\n c = c | (elm >> 6) & 0x03;\n d = elm & 0x3F;\n answer.push(getChar(a));\n answer.push(getChar(b));\n answer.push(getChar(c));\n answer.push(getChar(d));\n a = null;\n b = null;\n c = null;\n d = null;\n break;\n }\n });\n\n if (a != null) {\n answer.push(getChar(a));\n answer.push(getChar(b));\n if (c == null) {\n answer.push('=');\n } else {\n answer.push(getChar(c));\n }\n \n if (d == null) {\n answer.push('=');\n }\n }\n\n return answer.join(\"\");\n};\n\n\n\n// XXX This is a weird place for this to live, but it's used both by\n// this package and 'ejson', and we can't put it in 'ejson' without\n// introducing a circular dependency. It should probably be in its own\n// package or as a helper in a package that both 'base64' and 'ejson'\n// use.\nconst newBinary = len => {\n if (typeof Uint8Array === 'undefined' || typeof ArrayBuffer === 'undefined') {\n const ret = [];\n for (let i = 0; i < len; i++) {\n ret.push(0);\n }\n\n ret.$Uint8ArrayPolyfill = true;\n return ret;\n }\n return new Uint8Array(new ArrayBuffer(len));\n};\n\nconst decode = str => {\n let len = Math.floor((str.length * 3) / 4);\n if (str.charAt(str.length - 1) == '=') {\n len--;\n if (str.charAt(str.length - 2) == '=') {\n len--;\n }\n }\n \n const arr = newBinary(len);\n\n let one = null;\n let two = null;\n let three = null;\n\n let j = 0;\n\n for (let i = 0; i < str.length; i++) {\n const c = str.charAt(i);\n const v = getVal(c);\n switch (i % 4) {\n case 0:\n if (v < 0) {\n throw new Error('invalid base64 string');\n }\n\n one = v << 2;\n break;\n case 1:\n if (v < 0) {\n throw new Error('invalid base64 string');\n }\n\n one = one | (v >> 4);\n arr[j++] = one;\n two = (v & 0x0F) << 4;\n break;\n case 2:\n if (v >= 0) {\n two = two | (v >> 2);\n arr[j++] = two;\n three = (v & 0x03) << 6;\n }\n\n break;\n case 3:\n if (v >= 0) {\n arr[j++] = three | v;\n }\n\n break;\n }\n }\n \n return arr;\n};\n\nexport const Base64 = { encode, decode, newBinary };\n"]}
\ No newline at end of file
(function () {
/* Exports */
Package._define("blaze-html-templates");
})();
{"version":3,"sources":["meteor://💻app/packages/callback-hook/hook.js"],"names":["module","export","Hook","hasOwn","Object","prototype","hasOwnProperty","constructor","options","nextCallbackId","callbacks","create","bindEnvironment","exceptionHandler","debugPrintExceptions","Error","register","callback","exception","Meteor","dontBindEnvironment","id","stop","each","iterator","_nodeCodeMustBeInFiber","ids","keys","i","length","call","func","onException","_this","description","error","_debug","stack","args","ret","apply","e"],"mappings":"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","file":"/packages/callback-hook.js","sourcesContent":["// XXX This pattern is under development. Do not add more callsites\n// using this package for now. See:\n// https://meteor.hackpad.com/Design-proposal-Hooks-YxvgEW06q6f\n//\n// Encapsulates the pattern of registering callbacks on a hook.\n//\n// The `each` method of the hook calls its iterator function argument\n// with each registered callback. This allows the hook to\n// conditionally decide not to call the callback (if, for example, the\n// observed object has been closed or terminated).\n//\n// By default, callbacks are bound with `Meteor.bindEnvironment`, so they will be\n// called with the Meteor environment of the calling code that\n// registered the callback. Override by passing { bindEnvironment: false }\n// to the constructor.\n//\n// Registering a callback returns an object with a single `stop`\n// method which unregisters the callback.\n//\n// The code is careful to allow a callback to be safely unregistered\n// while the callbacks are being iterated over.\n//\n// If the hook is configured with the `exceptionHandler` option, the\n// handler will be called if a called callback throws an exception.\n// By default (if the exception handler doesn't itself throw an\n// exception, or if the iterator function doesn't return a falsy value\n// to terminate the calling of callbacks), the remaining callbacks\n// will still be called.\n//\n// Alternatively, the `debugPrintExceptions` option can be specified\n// as string describing the callback. On an exception the string and\n// the exception will be printed to the console log with\n// `Meteor._debug`, and the exception otherwise ignored.\n//\n// If an exception handler isn't specified, exceptions thrown in the\n// callback will propagate up to the iterator function, and will\n// terminate calling the remaining callbacks if not caught.\n\nconst hasOwn = Object.prototype.hasOwnProperty;\n\nexport class Hook {\n constructor(options) {\n options = options || {};\n this.nextCallbackId = 0;\n this.callbacks = Object.create(null);\n // Whether to wrap callbacks with Meteor.bindEnvironment\n this.bindEnvironment = true;\n if (options.bindEnvironment === false) {\n this.bindEnvironment = false;\n }\n\n if (options.exceptionHandler) {\n this.exceptionHandler = options.exceptionHandler;\n } else if (options.debugPrintExceptions) {\n if (typeof options.debugPrintExceptions !== \"string\") {\n throw new Error(\"Hook option debugPrintExceptions should be a string\");\n }\n this.exceptionHandler = options.debugPrintExceptions;\n }\n }\n\n register(callback) {\n var exceptionHandler = this.exceptionHandler || function (exception) {\n // Note: this relies on the undocumented fact that if bindEnvironment's\n // onException throws, and you are invoking the callback either in the\n // browser or from within a Fiber in Node, the exception is propagated.\n throw exception;\n };\n\n if (this.bindEnvironment) {\n callback = Meteor.bindEnvironment(callback, exceptionHandler);\n } else {\n callback = dontBindEnvironment(callback, exceptionHandler);\n }\n\n var id = this.nextCallbackId++;\n this.callbacks[id] = callback;\n\n return {\n stop: () => {\n delete this.callbacks[id];\n }\n };\n }\n\n // For each registered callback, call the passed iterator function\n // with the callback.\n //\n // The iterator function can choose whether or not to call the\n // callback. (For example, it might not call the callback if the\n // observed object has been closed or terminated).\n //\n // The iteration is stopped if the iterator function returns a falsy\n // value or throws an exception.\n //\n each(iterator) {\n // Invoking bindEnvironment'd callbacks outside of a Fiber in Node doesn't\n // run them to completion (and exceptions thrown from onException are not\n // propagated), so we need to be in a Fiber.\n Meteor._nodeCodeMustBeInFiber();\n\n var ids = Object.keys(this.callbacks);\n for (var i = 0; i < ids.length; ++i) {\n var id = ids[i];\n // check to see if the callback was removed during iteration\n if (hasOwn.call(this.callbacks, id)) {\n var callback = this.callbacks[id];\n if (! iterator(callback)) {\n break;\n }\n }\n }\n }\n}\n\n// Copied from Meteor.bindEnvironment and removed all the env stuff.\nfunction dontBindEnvironment(func, onException, _this) {\n if (!onException || typeof(onException) === 'string') {\n var description = onException || \"callback of async function\";\n onException = function (error) {\n Meteor._debug(\n \"Exception in \" + description + \":\",\n error && error.stack || error\n );\n };\n }\n\n return function (...args) {\n try {\n var ret = func.apply(_this, args);\n } catch (e) {\n onException(e);\n }\n return ret;\n };\n}\n"]}
\ No newline at end of file
This diff could not be displayed because it is too large.
This diff could not be displayed because it is too large.
This diff could not be displayed because it is too large.
This diff could not be displayed because it is too large.
(function () {
/* Imports */
var DDP = Package['ddp-client'].DDP;
var DDPServer = Package['ddp-server'].DDPServer;
/* Exports */
Package._define("ddp", {
DDP: DDP,
DDPServer: DDPServer
});
})();
(function () {
/* Imports */
var Tracker = Package.tracker.Tracker;
var Deps = Package.tracker.Deps;
/* Exports */
Package._define("deps", {
Tracker: Tracker,
Deps: Deps
});
})();
(function () {
/* Imports */
var Meteor = Package.meteor.Meteor;
var global = Package.meteor.global;
var meteorEnv = Package.meteor.meteorEnv;
var meteorInstall = Package.modules.meteorInstall;
var Promise = Package.promise.Promise;
var require = meteorInstall({"node_modules":{"meteor":{"ecmascript-runtime-client":{"versions.js":function(require,exports,module){
///////////////////////////////////////////////////////////////////////////////////
// //
// packages/ecmascript-runtime-client/versions.js //
// //
///////////////////////////////////////////////////////////////////////////////////
//
const {
setMinimumBrowserVersions,
} = require("meteor/modern-browsers");
setMinimumBrowserVersions({
chrome: 49,
edge: 12,
// Since there is no IE11, this effectively excludes Internet Explorer
// (pre-Edge) from the modern classification. #9818 #9839
ie: 12,
firefox: 45,
mobileSafari: 10,
opera: 38,
safari: 10,
// Electron 1.6.0+ matches Chromium 55, per
// https://github.com/Kilian/electron-to-chromium/blob/master/full-versions.js
electron: [1, 6],
}, module.id);
///////////////////////////////////////////////////////////////////////////////////
}}}}},{
"extensions": [
".js",
".json"
]
});
var exports = require("/node_modules/meteor/ecmascript-runtime-client/versions.js");
/* Exports */
Package._define("ecmascript-runtime-client", exports);
})();
(function () {
/* Imports */
var Meteor = Package.meteor.Meteor;
var global = Package.meteor.global;
var meteorEnv = Package.meteor.meteorEnv;
var meteorInstall = Package.modules.meteorInstall;
var require = meteorInstall({"node_modules":{"meteor":{"ecmascript-runtime-server":{"runtime.js":function(require){
/////////////////////////////////////////////////////////////////////////////
// //
// packages/ecmascript-runtime-server/runtime.js //
// //
/////////////////////////////////////////////////////////////////////////////
//
// The ecmascript-runtime-server package depends on its own copy of
// core-js using Npm.depends, so we don't have to check that core-js is
// available (as we do in ecmascript-runtime-client/runtime.js).
// List of polyfills generated by babel-preset-env with the following
// .babelrc configuration:
//
// {
// "presets": [
// ["env", {
// "targets": {
// "node": 8
// },
// "modules": false,
// "polyfill": true,
// "useBuiltIns": true
// }]
// ]
// }
//
// Note that the es6.reflect.* and es6.typed.* modules have been commented
// out for bundle size reasons.
require("core-js/modules/es7.string.pad-start");
require("core-js/modules/es7.string.pad-end");
/////////////////////////////////////////////////////////////////////////////
},"node_modules":{"core-js":{"modules":{"es7.string.pad-start.js":function(require,exports,module){
/////////////////////////////////////////////////////////////////////////////
// //
// node_modules/meteor/ecmascript-runtime-server/node_modules/core-js/modu //
// //
/////////////////////////////////////////////////////////////////////////////
//
module.useNode();
/////////////////////////////////////////////////////////////////////////////
},"es7.string.pad-end.js":function(require,exports,module){
/////////////////////////////////////////////////////////////////////////////
// //
// node_modules/meteor/ecmascript-runtime-server/node_modules/core-js/modu //
// //
/////////////////////////////////////////////////////////////////////////////
//
module.useNode();
/////////////////////////////////////////////////////////////////////////////
}}}}}}}},{
"extensions": [
".js",
".json"
]
});
var exports = require("/node_modules/meteor/ecmascript-runtime-server/runtime.js");
/* Exports */
Package._define("ecmascript-runtime-server", exports);
})();
(function () {
/* Exports */
Package._define("ecmascript-runtime");
})();
(function () {
/* Imports */
var Meteor = Package.meteor.Meteor;
var global = Package.meteor.global;
var meteorEnv = Package.meteor.meteorEnv;
var Babel = Package['babel-compiler'].Babel;
var BabelCompiler = Package['babel-compiler'].BabelCompiler;
/* Package-scope variables */
var ECMAScript;
(function(){
///////////////////////////////////////////////////////////////////////
// //
// packages/ecmascript/ecmascript.js //
// //
///////////////////////////////////////////////////////////////////////
//
ECMAScript = {
compileForShell(command, cacheOptions) {
const babelOptions = Babel.getDefaultOptions({
nodeMajorVersion: parseInt(process.versions.node, 10)
});
delete babelOptions.sourceMap;
delete babelOptions.sourceMaps;
babelOptions.ast = false;
return Babel.compile(command, babelOptions, cacheOptions).code;
}
};
///////////////////////////////////////////////////////////////////////
}).call(this);
/* Exports */
Package._define("ecmascript", {
ECMAScript: ECMAScript
});
})();
//# sourceURL=meteor://💻app/packages/ecmascript.js
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm1ldGVvcjovL/CfkrthcHAvcGFja2FnZXMvZWNtYXNjcmlwdC9lY21hc2NyaXB0LmpzIl0sIm5hbWVzIjpbIkVDTUFTY3JpcHQiLCJjb21waWxlRm9yU2hlbGwiLCJjb21tYW5kIiwiY2FjaGVPcHRpb25zIiwiYmFiZWxPcHRpb25zIiwiQmFiZWwiLCJnZXREZWZhdWx0T3B0aW9ucyIsIm5vZGVNYWpvclZlcnNpb24iLCJwYXJzZUludCIsInByb2Nlc3MiLCJ2ZXJzaW9ucyIsIm5vZGUiLCJzb3VyY2VNYXAiLCJzb3VyY2VNYXBzIiwiYXN0IiwiY29tcGlsZSIsImNvZGUiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUFBLFVBQVUsR0FBRztBQUNYQyxpQkFBZSxDQUFDQyxPQUFELEVBQVVDLFlBQVYsRUFBd0I7QUFDckMsVUFBTUMsWUFBWSxHQUFHQyxLQUFLLENBQUNDLGlCQUFOLENBQXdCO0FBQzNDQyxzQkFBZ0IsRUFBRUMsUUFBUSxDQUFDQyxPQUFPLENBQUNDLFFBQVIsQ0FBaUJDLElBQWxCLEVBQXdCLEVBQXhCO0FBRGlCLEtBQXhCLENBQXJCO0FBR0EsV0FBT1AsWUFBWSxDQUFDUSxTQUFwQjtBQUNBLFdBQU9SLFlBQVksQ0FBQ1MsVUFBcEI7QUFDQVQsZ0JBQVksQ0FBQ1UsR0FBYixHQUFtQixLQUFuQjtBQUNBLFdBQU9ULEtBQUssQ0FBQ1UsT0FBTixDQUFjYixPQUFkLEVBQXVCRSxZQUF2QixFQUFxQ0QsWUFBckMsRUFBbURhLElBQTFEO0FBQ0Q7O0FBVFUsQ0FBYixDIiwiZmlsZSI6Ii9wYWNrYWdlcy9lY21hc2NyaXB0LmpzIiwic291cmNlc0NvbnRlbnQiOlsiRUNNQVNjcmlwdCA9IHtcbiAgY29tcGlsZUZvclNoZWxsKGNvbW1hbmQsIGNhY2hlT3B0aW9ucykge1xuICAgIGNvbnN0IGJhYmVsT3B0aW9ucyA9IEJhYmVsLmdldERlZmF1bHRPcHRpb25zKHtcbiAgICAgIG5vZGVNYWpvclZlcnNpb246IHBhcnNlSW50KHByb2Nlc3MudmVyc2lvbnMubm9kZSwgMTApXG4gICAgfSk7XG4gICAgZGVsZXRlIGJhYmVsT3B0aW9ucy5zb3VyY2VNYXA7XG4gICAgZGVsZXRlIGJhYmVsT3B0aW9ucy5zb3VyY2VNYXBzO1xuICAgIGJhYmVsT3B0aW9ucy5hc3QgPSBmYWxzZTtcbiAgICByZXR1cm4gQmFiZWwuY29tcGlsZShjb21tYW5kLCBiYWJlbE9wdGlvbnMsIGNhY2hlT3B0aW9ucykuY29kZTtcbiAgfVxufTtcbiJdfQ==
{"version":3,"sources":["meteor://💻app/packages/ecmascript/ecmascript.js"],"names":["ECMAScript","compileForShell","command","cacheOptions","babelOptions","Babel","getDefaultOptions","nodeMajorVersion","parseInt","process","versions","node","sourceMap","sourceMaps","ast","compile","code"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAAA,UAAU,GAAG;AACXC,iBAAe,CAACC,OAAD,EAAUC,YAAV,EAAwB;AACrC,UAAMC,YAAY,GAAGC,KAAK,CAACC,iBAAN,CAAwB;AAC3CC,sBAAgB,EAAEC,QAAQ,CAACC,OAAO,CAACC,QAAR,CAAiBC,IAAlB,EAAwB,EAAxB;AADiB,KAAxB,CAArB;AAGA,WAAOP,YAAY,CAACQ,SAApB;AACA,WAAOR,YAAY,CAACS,UAApB;AACAT,gBAAY,CAACU,GAAb,GAAmB,KAAnB;AACA,WAAOT,KAAK,CAACU,OAAN,CAAcb,OAAd,EAAuBE,YAAvB,EAAqCD,YAArC,EAAmDa,IAA1D;AACD;;AATU,CAAb,C","file":"/packages/ecmascript.js","sourcesContent":["ECMAScript = {\n compileForShell(command, cacheOptions) {\n const babelOptions = Babel.getDefaultOptions({\n nodeMajorVersion: parseInt(process.versions.node, 10)\n });\n delete babelOptions.sourceMap;\n delete babelOptions.sourceMaps;\n babelOptions.ast = false;\n return Babel.compile(command, babelOptions, cacheOptions).code;\n }\n};\n"]}
\ No newline at end of file
(function () {
/* Exports */
Package._define("es5-shim");
})();
(function () {
/* Imports */
var Meteor = Package.meteor.Meteor;
var global = Package.meteor.global;
var meteorEnv = Package.meteor.meteorEnv;
var meteorInstall = Package.modules.meteorInstall;
var Promise = Package.promise.Promise;
/* Package-scope variables */
var fetch;
var require = meteorInstall({"node_modules":{"meteor":{"fetch":{"server.js":function(require,exports,module){
///////////////////////////////////////////////////////////////////////////////////
// //
// packages/fetch/server.js //
// //
///////////////////////////////////////////////////////////////////////////////////
//
const fetch = require("node-fetch");
exports.fetch = fetch;
exports.Headers = fetch.Headers;
exports.Request = fetch.Request;
exports.Response = fetch.Response;
const { setMinimumBrowserVersions } = require("meteor/modern-browsers");
// https://caniuse.com/#feat=fetch
setMinimumBrowserVersions({
chrome: 42,
edge: 14,
firefox: 39,
mobile_safari: [10, 3],
opera: 29,
safari: [10, 1],
phantomjs: Infinity,
// https://github.com/Kilian/electron-to-chromium/blob/master/full-versions.js
electron: [0, 25],
}, module.id);
///////////////////////////////////////////////////////////////////////////////////
},"node_modules":{"node-fetch":{"package.json":function(require,exports,module){
///////////////////////////////////////////////////////////////////////////////////
// //
// node_modules/meteor/fetch/node_modules/node-fetch/package.json //
// //
///////////////////////////////////////////////////////////////////////////////////
//
module.exports = {
"name": "node-fetch",
"version": "2.3.0",
"main": "lib/index"
};
///////////////////////////////////////////////////////////////////////////////////
},"lib":{"index.js":function(require,exports,module){
///////////////////////////////////////////////////////////////////////////////////
// //
// node_modules/meteor/fetch/node_modules/node-fetch/lib/index.js //
// //
///////////////////////////////////////////////////////////////////////////////////
//
module.useNode();
///////////////////////////////////////////////////////////////////////////////////
}}}}}}}},{
"extensions": [
".js",
".json"
]
});
var exports = require("/node_modules/meteor/fetch/server.js");
/* Exports */
Package._define("fetch", exports, {
fetch: fetch
});
})();
(function () {
/* Exports */
Package._define("hot-code-push");
})();
(function () {
/* Imports */
var Meteor = Package.meteor.Meteor;
var global = Package.meteor.global;
var meteorEnv = Package.meteor.meteorEnv;
var ECMAScript = Package.ecmascript.ECMAScript;
var EJSON = Package.ejson.EJSON;
var meteorInstall = Package.modules.meteorInstall;
var meteorBabelHelpers = Package['babel-runtime'].meteorBabelHelpers;
var Promise = Package.promise.Promise;
/* Package-scope variables */
var IdMap;
var require = meteorInstall({"node_modules":{"meteor":{"id-map":{"id-map.js":function(require,exports,module){
////////////////////////////////////////////////////////////////////////////////////////////
// //
// packages/id-map/id-map.js //
// //
////////////////////////////////////////////////////////////////////////////////////////////
//
module.export({
IdMap: () => IdMap
});
const hasOwn = Object.prototype.hasOwnProperty;
class IdMap {
constructor(idStringify, idParse) {
this.clear();
this._idStringify = idStringify || JSON.stringify;
this._idParse = idParse || JSON.parse;
} // Some of these methods are designed to match methods on OrderedDict, since
// (eg) ObserveMultiplex and _CachingChangeObserver use them interchangeably.
// (Conceivably, this should be replaced with "UnorderedDict" with a specific
// set of methods that overlap between the two.)
get(id) {
var key = this._idStringify(id);
return this._map[key];
}
set(id, value) {
var key = this._idStringify(id);
this._map[key] = value;
}
remove(id) {
var key = this._idStringify(id);
delete this._map[key];
}
has(id) {
var key = this._idStringify(id);
return hasOwn.call(this._map, key);
}
empty() {
for (let key in this._map) {
return false;
}
return true;
}
clear() {
this._map = Object.create(null);
} // Iterates over the items in the map. Return `false` to break the loop.
forEach(iterator) {
// don't use _.each, because we can't break out of it.
var keys = Object.keys(this._map);
for (var i = 0; i < keys.length; i++) {
var breakIfFalse = iterator.call(null, this._map[keys[i]], this._idParse(keys[i]));
if (breakIfFalse === false) {
return;
}
}
}
size() {
return Object.keys(this._map).length;
}
setDefault(id, def) {
var key = this._idStringify(id);
if (hasOwn.call(this._map, key)) {
return this._map[key];
}
this._map[key] = def;
return def;
} // Assumes that values are EJSON-cloneable, and that we don't need to clone
// IDs (ie, that nobody is going to mutate an ObjectId).
clone() {
var clone = new IdMap(this._idStringify, this._idParse);
this.forEach(function (value, id) {
clone.set(id, EJSON.clone(value));
});
return clone;
}
}
////////////////////////////////////////////////////////////////////////////////////////////
}}}}},{
"extensions": [
".js",
".json"
]
});
var exports = require("/node_modules/meteor/id-map/id-map.js");
/* Exports */
Package._define("id-map", exports, {
IdMap: IdMap
});
})();
//# sourceURL=meteor://💻app/packages/id-map.js
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm1ldGVvcjovL/CfkrthcHAvcGFja2FnZXMvaWQtbWFwL2lkLW1hcC5qcyJdLCJuYW1lcyI6WyJtb2R1bGUiLCJleHBvcnQiLCJJZE1hcCIsImhhc093biIsIk9iamVjdCIsInByb3RvdHlwZSIsImhhc093blByb3BlcnR5IiwiY29uc3RydWN0b3IiLCJpZFN0cmluZ2lmeSIsImlkUGFyc2UiLCJjbGVhciIsIl9pZFN0cmluZ2lmeSIsIkpTT04iLCJzdHJpbmdpZnkiLCJfaWRQYXJzZSIsInBhcnNlIiwiZ2V0IiwiaWQiLCJrZXkiLCJfbWFwIiwic2V0IiwidmFsdWUiLCJyZW1vdmUiLCJoYXMiLCJjYWxsIiwiZW1wdHkiLCJjcmVhdGUiLCJmb3JFYWNoIiwiaXRlcmF0b3IiLCJrZXlzIiwiaSIsImxlbmd0aCIsImJyZWFrSWZGYWxzZSIsInNpemUiLCJzZXREZWZhdWx0IiwiZGVmIiwiY2xvbmUiLCJFSlNPTiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQUEsTUFBTSxDQUFDQyxNQUFQLENBQWM7QUFBQ0MsT0FBSyxFQUFDLE1BQUlBO0FBQVgsQ0FBZDtBQUFBLE1BQU1DLE1BQU0sR0FBR0MsTUFBTSxDQUFDQyxTQUFQLENBQWlCQyxjQUFoQzs7QUFFTyxNQUFNSixLQUFOLENBQVk7QUFDakJLLGFBQVcsQ0FBQ0MsV0FBRCxFQUFjQyxPQUFkLEVBQXVCO0FBQ2hDLFNBQUtDLEtBQUw7QUFDQSxTQUFLQyxZQUFMLEdBQW9CSCxXQUFXLElBQUlJLElBQUksQ0FBQ0MsU0FBeEM7QUFDQSxTQUFLQyxRQUFMLEdBQWdCTCxPQUFPLElBQUlHLElBQUksQ0FBQ0csS0FBaEM7QUFDRCxHQUxnQixDQU9uQjtBQUNBO0FBQ0E7QUFDQTs7O0FBRUVDLEtBQUcsQ0FBQ0MsRUFBRCxFQUFLO0FBQ04sUUFBSUMsR0FBRyxHQUFHLEtBQUtQLFlBQUwsQ0FBa0JNLEVBQWxCLENBQVY7O0FBQ0EsV0FBTyxLQUFLRSxJQUFMLENBQVVELEdBQVYsQ0FBUDtBQUNEOztBQUVERSxLQUFHLENBQUNILEVBQUQsRUFBS0ksS0FBTCxFQUFZO0FBQ2IsUUFBSUgsR0FBRyxHQUFHLEtBQUtQLFlBQUwsQ0FBa0JNLEVBQWxCLENBQVY7O0FBQ0EsU0FBS0UsSUFBTCxDQUFVRCxHQUFWLElBQWlCRyxLQUFqQjtBQUNEOztBQUVEQyxRQUFNLENBQUNMLEVBQUQsRUFBSztBQUNULFFBQUlDLEdBQUcsR0FBRyxLQUFLUCxZQUFMLENBQWtCTSxFQUFsQixDQUFWOztBQUNBLFdBQU8sS0FBS0UsSUFBTCxDQUFVRCxHQUFWLENBQVA7QUFDRDs7QUFFREssS0FBRyxDQUFDTixFQUFELEVBQUs7QUFDTixRQUFJQyxHQUFHLEdBQUcsS0FBS1AsWUFBTCxDQUFrQk0sRUFBbEIsQ0FBVjs7QUFDQSxXQUFPZCxNQUFNLENBQUNxQixJQUFQLENBQVksS0FBS0wsSUFBakIsRUFBdUJELEdBQXZCLENBQVA7QUFDRDs7QUFFRE8sT0FBSyxHQUFHO0FBQ04sU0FBSyxJQUFJUCxHQUFULElBQWdCLEtBQUtDLElBQXJCLEVBQTJCO0FBQ3pCLGFBQU8sS0FBUDtBQUNEOztBQUNELFdBQU8sSUFBUDtBQUNEOztBQUVEVCxPQUFLLEdBQUc7QUFDTixTQUFLUyxJQUFMLEdBQVlmLE1BQU0sQ0FBQ3NCLE1BQVAsQ0FBYyxJQUFkLENBQVo7QUFDRCxHQXpDZ0IsQ0EyQ2pCOzs7QUFDQUMsU0FBTyxDQUFDQyxRQUFELEVBQVc7QUFDaEI7QUFDQSxRQUFJQyxJQUFJLEdBQUd6QixNQUFNLENBQUN5QixJQUFQLENBQVksS0FBS1YsSUFBakIsQ0FBWDs7QUFDQSxTQUFLLElBQUlXLENBQUMsR0FBRyxDQUFiLEVBQWdCQSxDQUFDLEdBQUdELElBQUksQ0FBQ0UsTUFBekIsRUFBaUNELENBQUMsRUFBbEMsRUFBc0M7QUFDcEMsVUFBSUUsWUFBWSxHQUFHSixRQUFRLENBQUNKLElBQVQsQ0FDakIsSUFEaUIsRUFFakIsS0FBS0wsSUFBTCxDQUFVVSxJQUFJLENBQUNDLENBQUQsQ0FBZCxDQUZpQixFQUdqQixLQUFLaEIsUUFBTCxDQUFjZSxJQUFJLENBQUNDLENBQUQsQ0FBbEIsQ0FIaUIsQ0FBbkI7O0FBS0EsVUFBSUUsWUFBWSxLQUFLLEtBQXJCLEVBQTRCO0FBQzFCO0FBQ0Q7QUFDRjtBQUNGOztBQUVEQyxNQUFJLEdBQUc7QUFDTCxXQUFPN0IsTUFBTSxDQUFDeUIsSUFBUCxDQUFZLEtBQUtWLElBQWpCLEVBQXVCWSxNQUE5QjtBQUNEOztBQUVERyxZQUFVLENBQUNqQixFQUFELEVBQUtrQixHQUFMLEVBQVU7QUFDbEIsUUFBSWpCLEdBQUcsR0FBRyxLQUFLUCxZQUFMLENBQWtCTSxFQUFsQixDQUFWOztBQUNBLFFBQUlkLE1BQU0sQ0FBQ3FCLElBQVAsQ0FBWSxLQUFLTCxJQUFqQixFQUF1QkQsR0FBdkIsQ0FBSixFQUFpQztBQUMvQixhQUFPLEtBQUtDLElBQUwsQ0FBVUQsR0FBVixDQUFQO0FBQ0Q7O0FBQ0QsU0FBS0MsSUFBTCxDQUFVRCxHQUFWLElBQWlCaUIsR0FBakI7QUFDQSxXQUFPQSxHQUFQO0FBQ0QsR0F0RWdCLENBd0VqQjtBQUNBOzs7QUFDQUMsT0FBSyxHQUFHO0FBQ04sUUFBSUEsS0FBSyxHQUFHLElBQUlsQyxLQUFKLENBQVUsS0FBS1MsWUFBZixFQUE2QixLQUFLRyxRQUFsQyxDQUFaO0FBQ0EsU0FBS2EsT0FBTCxDQUFhLFVBQVVOLEtBQVYsRUFBaUJKLEVBQWpCLEVBQXFCO0FBQ2hDbUIsV0FBSyxDQUFDaEIsR0FBTixDQUFVSCxFQUFWLEVBQWNvQixLQUFLLENBQUNELEtBQU4sQ0FBWWYsS0FBWixDQUFkO0FBQ0QsS0FGRDtBQUdBLFdBQU9lLEtBQVA7QUFDRDs7QUFoRmdCLEMiLCJmaWxlIjoiL3BhY2thZ2VzL2lkLW1hcC5qcyIsInNvdXJjZXNDb250ZW50IjpbImNvbnN0IGhhc093biA9IE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHk7XG5cbmV4cG9ydCBjbGFzcyBJZE1hcCB7XG4gIGNvbnN0cnVjdG9yKGlkU3RyaW5naWZ5LCBpZFBhcnNlKSB7XG4gICAgdGhpcy5jbGVhcigpO1xuICAgIHRoaXMuX2lkU3RyaW5naWZ5ID0gaWRTdHJpbmdpZnkgfHwgSlNPTi5zdHJpbmdpZnk7XG4gICAgdGhpcy5faWRQYXJzZSA9IGlkUGFyc2UgfHwgSlNPTi5wYXJzZTtcbiAgfVxuXG4vLyBTb21lIG9mIHRoZXNlIG1ldGhvZHMgYXJlIGRlc2lnbmVkIHRvIG1hdGNoIG1ldGhvZHMgb24gT3JkZXJlZERpY3QsIHNpbmNlXG4vLyAoZWcpIE9ic2VydmVNdWx0aXBsZXggYW5kIF9DYWNoaW5nQ2hhbmdlT2JzZXJ2ZXIgdXNlIHRoZW0gaW50ZXJjaGFuZ2VhYmx5LlxuLy8gKENvbmNlaXZhYmx5LCB0aGlzIHNob3VsZCBiZSByZXBsYWNlZCB3aXRoIFwiVW5vcmRlcmVkRGljdFwiIHdpdGggYSBzcGVjaWZpY1xuLy8gc2V0IG9mIG1ldGhvZHMgdGhhdCBvdmVybGFwIGJldHdlZW4gdGhlIHR3by4pXG5cbiAgZ2V0KGlkKSB7XG4gICAgdmFyIGtleSA9IHRoaXMuX2lkU3RyaW5naWZ5KGlkKTtcbiAgICByZXR1cm4gdGhpcy5fbWFwW2tleV07XG4gIH1cblxuICBzZXQoaWQsIHZhbHVlKSB7XG4gICAgdmFyIGtleSA9IHRoaXMuX2lkU3RyaW5naWZ5KGlkKTtcbiAgICB0aGlzLl9tYXBba2V5XSA9IHZhbHVlO1xuICB9XG5cbiAgcmVtb3ZlKGlkKSB7XG4gICAgdmFyIGtleSA9IHRoaXMuX2lkU3RyaW5naWZ5KGlkKTtcbiAgICBkZWxldGUgdGhpcy5fbWFwW2tleV07XG4gIH1cblxuICBoYXMoaWQpIHtcbiAgICB2YXIga2V5ID0gdGhpcy5faWRTdHJpbmdpZnkoaWQpO1xuICAgIHJldHVybiBoYXNPd24uY2FsbCh0aGlzLl9tYXAsIGtleSk7XG4gIH1cblxuICBlbXB0eSgpIHtcbiAgICBmb3IgKGxldCBrZXkgaW4gdGhpcy5fbWFwKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgY2xlYXIoKSB7XG4gICAgdGhpcy5fbWFwID0gT2JqZWN0LmNyZWF0ZShudWxsKTtcbiAgfVxuXG4gIC8vIEl0ZXJhdGVzIG92ZXIgdGhlIGl0ZW1zIGluIHRoZSBtYXAuIFJldHVybiBgZmFsc2VgIHRvIGJyZWFrIHRoZSBsb29wLlxuICBmb3JFYWNoKGl0ZXJhdG9yKSB7XG4gICAgLy8gZG9uJ3QgdXNlIF8uZWFjaCwgYmVjYXVzZSB3ZSBjYW4ndCBicmVhayBvdXQgb2YgaXQuXG4gICAgdmFyIGtleXMgPSBPYmplY3Qua2V5cyh0aGlzLl9tYXApO1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwga2V5cy5sZW5ndGg7IGkrKykge1xuICAgICAgdmFyIGJyZWFrSWZGYWxzZSA9IGl0ZXJhdG9yLmNhbGwoXG4gICAgICAgIG51bGwsXG4gICAgICAgIHRoaXMuX21hcFtrZXlzW2ldXSxcbiAgICAgICAgdGhpcy5faWRQYXJzZShrZXlzW2ldKVxuICAgICAgKTtcbiAgICAgIGlmIChicmVha0lmRmFsc2UgPT09IGZhbHNlKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBzaXplKCkge1xuICAgIHJldHVybiBPYmplY3Qua2V5cyh0aGlzLl9tYXApLmxlbmd0aDtcbiAgfVxuXG4gIHNldERlZmF1bHQoaWQsIGRlZikge1xuICAgIHZhciBrZXkgPSB0aGlzLl9pZFN0cmluZ2lmeShpZCk7XG4gICAgaWYgKGhhc093bi5jYWxsKHRoaXMuX21hcCwga2V5KSkge1xuICAgICAgcmV0dXJuIHRoaXMuX21hcFtrZXldO1xuICAgIH1cbiAgICB0aGlzLl9tYXBba2V5XSA9IGRlZjtcbiAgICByZXR1cm4gZGVmO1xuICB9XG5cbiAgLy8gQXNzdW1lcyB0aGF0IHZhbHVlcyBhcmUgRUpTT04tY2xvbmVhYmxlLCBhbmQgdGhhdCB3ZSBkb24ndCBuZWVkIHRvIGNsb25lXG4gIC8vIElEcyAoaWUsIHRoYXQgbm9ib2R5IGlzIGdvaW5nIHRvIG11dGF0ZSBhbiBPYmplY3RJZCkuXG4gIGNsb25lKCkge1xuICAgIHZhciBjbG9uZSA9IG5ldyBJZE1hcCh0aGlzLl9pZFN0cmluZ2lmeSwgdGhpcy5faWRQYXJzZSk7XG4gICAgdGhpcy5mb3JFYWNoKGZ1bmN0aW9uICh2YWx1ZSwgaWQpIHtcbiAgICAgIGNsb25lLnNldChpZCwgRUpTT04uY2xvbmUodmFsdWUpKTtcbiAgICB9KTtcbiAgICByZXR1cm4gY2xvbmU7XG4gIH1cbn1cbiJdfQ==
{"version":3,"sources":["meteor://💻app/packages/id-map/id-map.js"],"names":["module","export","IdMap","hasOwn","Object","prototype","hasOwnProperty","constructor","idStringify","idParse","clear","_idStringify","JSON","stringify","_idParse","parse","get","id","key","_map","set","value","remove","has","call","empty","create","forEach","iterator","keys","i","length","breakIfFalse","size","setDefault","def","clone","EJSON"],"mappings":"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","file":"/packages/id-map.js","sourcesContent":["const hasOwn = Object.prototype.hasOwnProperty;\n\nexport class IdMap {\n constructor(idStringify, idParse) {\n this.clear();\n this._idStringify = idStringify || JSON.stringify;\n this._idParse = idParse || JSON.parse;\n }\n\n// Some of these methods are designed to match methods on OrderedDict, since\n// (eg) ObserveMultiplex and _CachingChangeObserver use them interchangeably.\n// (Conceivably, this should be replaced with \"UnorderedDict\" with a specific\n// set of methods that overlap between the two.)\n\n get(id) {\n var key = this._idStringify(id);\n return this._map[key];\n }\n\n set(id, value) {\n var key = this._idStringify(id);\n this._map[key] = value;\n }\n\n remove(id) {\n var key = this._idStringify(id);\n delete this._map[key];\n }\n\n has(id) {\n var key = this._idStringify(id);\n return hasOwn.call(this._map, key);\n }\n\n empty() {\n for (let key in this._map) {\n return false;\n }\n return true;\n }\n\n clear() {\n this._map = Object.create(null);\n }\n\n // Iterates over the items in the map. Return `false` to break the loop.\n forEach(iterator) {\n // don't use _.each, because we can't break out of it.\n var keys = Object.keys(this._map);\n for (var i = 0; i < keys.length; i++) {\n var breakIfFalse = iterator.call(\n null,\n this._map[keys[i]],\n this._idParse(keys[i])\n );\n if (breakIfFalse === false) {\n return;\n }\n }\n }\n\n size() {\n return Object.keys(this._map).length;\n }\n\n setDefault(id, def) {\n var key = this._idStringify(id);\n if (hasOwn.call(this._map, key)) {\n return this._map[key];\n }\n this._map[key] = def;\n return def;\n }\n\n // Assumes that values are EJSON-cloneable, and that we don't need to clone\n // IDs (ie, that nobody is going to mutate an ObjectId).\n clone() {\n var clone = new IdMap(this._idStringify, this._idParse);\n this.forEach(function (value, id) {\n clone.set(id, EJSON.clone(value));\n });\n return clone;\n }\n}\n"]}
\ No newline at end of file
(function () {
/* Exports */
Package._define("insecure");
})();
(function () {
/* Exports */
Package._define("jquery");
})();
(function () {
/* Package-scope variables */
var LaunchScreen;
/* Exports */
Package._define("launch-screen", {
LaunchScreen: LaunchScreen
});
})();
(function () {
/* Imports */
var DDP = Package['ddp-client'].DDP;
var DDPServer = Package['ddp-server'].DDPServer;
/* Package-scope variables */
var LivedataTest;
/* Exports */
Package._define("livedata", {
DDP: DDP,
DDPServer: DDPServer,
LivedataTest: LivedataTest
});
})();
(function () {
/* Exports */
Package._define("meteor-base");
})();
This diff could not be displayed because it is too large.
This diff could not be displayed because it is too large.
(function () {
/* Exports */
Package._define("mobile-experience");
})();
(function () {
/* Imports */
var Meteor = Package.meteor.Meteor;
var global = Package.meteor.global;
var meteorEnv = Package.meteor.meteorEnv;
var meteorInstall = Package.modules.meteorInstall;
var require = meteorInstall({"node_modules":{"meteor":{"modern-browsers":{"modern.js":function(require,exports,module){
///////////////////////////////////////////////////////////////////////////////////
// //
// packages/modern-browsers/modern.js //
// //
///////////////////////////////////////////////////////////////////////////////////
//
const minimumVersions = Object.create(null);
const hasOwn = Object.prototype.hasOwnProperty;
// This map defines aliasing behavior in a generic way which still permits
// minimum versions to be specified for a specific browser family.
const browserAliases = {
chrome: [
// chromeMobile*, per https://github.com/meteor/meteor/pull/9793,
"chromeMobile",
"chromeMobileIOS",
// The major version number of Chromium and Headless Chrome track with the
// releases of Chrome Dev, Canary and Stable, so we should be okay to
// alias them to Chrome in a generic sense.
// https://www.chromium.org/developers/version-numbers
//
// Chromium is particularly important to list here since, unlike macOS
// builds, Linux builds list Chromium in the userAgent along with Chrome:
// e.g. Chromium/70.0.3538.77 Chrome/70.0.3538.77
"chromium",
"headlesschrome",
],
// If a call to setMinimumBrowserVersions specifies Edge 12 as a minimum
// version, that means no version of Internet Explorer pre-Edge should
// be classified as modern. This edge:["ie"] alias effectively enforces
// that logic, because there is no IE12. #9818 #9839
edge: ["ie"],
// The webapp package converts browser names to camel case, so
// mobile_safari and mobileSafari should be synonymous.
mobile_safari: ["mobileSafari"],
};
// Expand the given minimum versions by reusing chrome versions for
// chromeMobile (according to browserAliases above).
function applyAliases(versions) {
const lowerCaseVersions = Object.create(null);
Object.keys(versions).forEach(browser => {
lowerCaseVersions[browser.toLowerCase()] = versions[browser];
});
Object.keys(browserAliases).forEach(original => {
const aliases = browserAliases[original];
original = original.toLowerCase();
if (hasOwn.call(lowerCaseVersions, original)) {
aliases.forEach(alias => {
alias = alias.toLowerCase();
if (! hasOwn.call(lowerCaseVersions, alias)) {
lowerCaseVersions[alias] = lowerCaseVersions[original];
}
});
}
});
return lowerCaseVersions;
}
// TODO Should it be possible for callers to setMinimumBrowserVersions to
// forbid any version of a particular browser?
// Given a { name, major, minor, patch } object like the one provided by
// webapp via request.browser, return true if that browser qualifies as
// "modern" according to all requested version constraints.
function isModern(browser) {
const lowerCaseName = browser &&
typeof browser.name === "string" &&
browser.name.toLowerCase();
return !!lowerCaseName &&
hasOwn.call(minimumVersions, lowerCaseName) &&
greaterThanOrEqualTo([
~~browser.major,
~~browser.minor,
~~browser.patch,
], minimumVersions[lowerCaseName].version);
}
// Any package that depends on the modern-browsers package can call this
// function to communicate its expectations for the minimum browser
// versions that qualify as "modern." The final decision between
// web.browser.legacy and web.browser will be based on the maximum of all
// requested minimum versions for each browser.
function setMinimumBrowserVersions(versions, source) {
const lowerCaseVersions = applyAliases(versions);
Object.keys(lowerCaseVersions).forEach(lowerCaseName => {
const version = lowerCaseVersions[lowerCaseName];
if (hasOwn.call(minimumVersions, lowerCaseName) &&
! greaterThan(version, minimumVersions[lowerCaseName].version)) {
return;
}
minimumVersions[lowerCaseName] = {
version: copy(version),
source: source || getCaller("setMinimumBrowserVersions")
};
});
}
function getCaller(calleeName) {
const error = new Error;
Error.captureStackTrace(error);
const lines = error.stack.split("\n");
let caller;
lines.some((line, i) => {
if (line.indexOf(calleeName) >= 0) {
caller = lines[i + 1].trim();
return true;
}
});
return caller;
}
Object.assign(exports, {
isModern,
setMinimumBrowserVersions,
calculateHashOfMinimumVersions() {
const { createHash } = require("crypto");
return createHash("sha1").update(
JSON.stringify(minimumVersions)
).digest("hex");
}
});
// For making defensive copies of [major, minor, ...] version arrays, so
// they don't change unexpectedly.
function copy(version) {
if (typeof version === "number") {
return version;
}
if (Array.isArray(version)) {
return version.map(copy);
}
return version;
}
function greaterThanOrEqualTo(a, b) {
return ! greaterThan(b, a);
}
function greaterThan(a, b) {
const as = (typeof a === "number") ? [a] : a;
const bs = (typeof b === "number") ? [b] : b;
const maxLen = Math.max(as.length, bs.length);
for (let i = 0; i < maxLen; ++i) {
a = (i < as.length) ? as[i] : 0;
b = (i < bs.length) ? bs[i] : 0;
if (a > b) {
return true;
}
if (a < b) {
return false;
}
}
return false;
}
function makeSource(feature) {
return module.id + " (" + feature + ")"
}
setMinimumBrowserVersions({
chrome: 49,
edge: 12,
firefox: 45,
mobileSafari: [9, 2],
opera: 36,
safari: 9,
// Electron 1.0.0+ matches Chromium 49, per
// https://github.com/Kilian/electron-to-chromium/blob/master/full-versions.js
electron: 1,
}, makeSource("classes"));
setMinimumBrowserVersions({
chrome: 39,
edge: 13,
firefox: 26,
mobileSafari: 10,
opera: 26,
safari: 10,
// Disallow any version of PhantomJS.
phantomjs: Infinity,
electron: [0, 20],
}, makeSource("generator functions"));
setMinimumBrowserVersions({
chrome: 41,
edge: 13,
firefox: 34,
mobileSafari: [9, 2],
opera: 29,
safari: [9, 1],
electron: [0, 24],
}, makeSource("template literals"));
setMinimumBrowserVersions({
chrome: 38,
edge: 12,
firefox: 36,
mobileSafari: 9,
opera: 25,
safari: 9,
electron: [0, 20],
}, makeSource("symbols"));
///////////////////////////////////////////////////////////////////////////////////
}}}}},{
"extensions": [
".js",
".json"
]
});
var exports = require("/node_modules/meteor/modern-browsers/modern.js");
/* Exports */
Package._define("modern-browsers", exports);
})();
(function () {
/* Imports */
var Meteor = Package.meteor.Meteor;
var global = Package.meteor.global;
var meteorEnv = Package.meteor.meteorEnv;
var ECMAScript = Package.ecmascript.ECMAScript;
var EJSON = Package.ejson.EJSON;
var meteorInstall = Package.modules.meteorInstall;
var meteorBabelHelpers = Package['babel-runtime'].meteorBabelHelpers;
var Promise = Package.promise.Promise;
/* Package-scope variables */
var Decimal;
var require = meteorInstall({"node_modules":{"meteor":{"mongo-decimal":{"decimal.js":function(require,exports,module){
///////////////////////////////////////////////////////////////////////
// //
// packages/mongo-decimal/decimal.js //
// //
///////////////////////////////////////////////////////////////////////
//
module.export({
Decimal: () => Decimal
});
let EJSON;
module.link("meteor/ejson", {
EJSON(v) {
EJSON = v;
}
}, 0);
let Decimal;
module.link("decimal.js", {
Decimal(v) {
Decimal = v;
}
}, 1);
Decimal.prototype.typeName = function () {
return 'Decimal';
};
Decimal.prototype.toJSONValue = function () {
return this.toJSON();
};
Decimal.prototype.clone = function () {
return Decimal(this.toString());
};
EJSON.addType('Decimal', function (str) {
return Decimal(str);
});
///////////////////////////////////////////////////////////////////////
},"node_modules":{"decimal.js":{"package.json":function(require,exports,module){
///////////////////////////////////////////////////////////////////////
// //
// node_modules/meteor/mongo-decimal/node_modules/decimal.js/package //
// //
///////////////////////////////////////////////////////////////////////
//
module.exports = {
"name": "decimal.js",
"version": "10.0.2",
"main": "decimal"
};
///////////////////////////////////////////////////////////////////////
},"decimal.js":function(require,exports,module){
///////////////////////////////////////////////////////////////////////
// //
// node_modules/meteor/mongo-decimal/node_modules/decimal.js/decimal //
// //
///////////////////////////////////////////////////////////////////////
//
module.useNode();
///////////////////////////////////////////////////////////////////////
}}}}}}},{
"extensions": [
".js",
".json"
]
});
var exports = require("/node_modules/meteor/mongo-decimal/decimal.js");
/* Exports */
Package._define("mongo-decimal", exports, {
Decimal: Decimal
});
})();
//# sourceURL=meteor://💻app/packages/mongo-decimal.js
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm1ldGVvcjovL/CfkrthcHAvcGFja2FnZXMvbW9uZ28tZGVjaW1hbC9kZWNpbWFsLmpzIl0sIm5hbWVzIjpbIm1vZHVsZSIsImV4cG9ydCIsIkRlY2ltYWwiLCJFSlNPTiIsImxpbmsiLCJ2IiwicHJvdG90eXBlIiwidHlwZU5hbWUiLCJ0b0pTT05WYWx1ZSIsInRvSlNPTiIsImNsb25lIiwidG9TdHJpbmciLCJhZGRUeXBlIiwic3RyIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBQSxNQUFNLENBQUNDLE1BQVAsQ0FBYztBQUFDQyxTQUFPLEVBQUMsTUFBSUE7QUFBYixDQUFkO0FBQXFDLElBQUlDLEtBQUo7QUFBVUgsTUFBTSxDQUFDSSxJQUFQLENBQVksY0FBWixFQUEyQjtBQUFDRCxPQUFLLENBQUNFLENBQUQsRUFBRztBQUFDRixTQUFLLEdBQUNFLENBQU47QUFBUTs7QUFBbEIsQ0FBM0IsRUFBK0MsQ0FBL0M7QUFBa0QsSUFBSUgsT0FBSjtBQUFZRixNQUFNLENBQUNJLElBQVAsQ0FBWSxZQUFaLEVBQXlCO0FBQUNGLFNBQU8sQ0FBQ0csQ0FBRCxFQUFHO0FBQUNILFdBQU8sR0FBQ0csQ0FBUjtBQUFVOztBQUF0QixDQUF6QixFQUFpRCxDQUFqRDs7QUFHN0dILE9BQU8sQ0FBQ0ksU0FBUixDQUFrQkMsUUFBbEIsR0FBNkIsWUFBVztBQUN0QyxTQUFPLFNBQVA7QUFDRCxDQUZEOztBQUlBTCxPQUFPLENBQUNJLFNBQVIsQ0FBa0JFLFdBQWxCLEdBQWdDLFlBQVk7QUFDMUMsU0FBTyxLQUFLQyxNQUFMLEVBQVA7QUFDRCxDQUZEOztBQUlBUCxPQUFPLENBQUNJLFNBQVIsQ0FBa0JJLEtBQWxCLEdBQTBCLFlBQVk7QUFDcEMsU0FBT1IsT0FBTyxDQUFDLEtBQUtTLFFBQUwsRUFBRCxDQUFkO0FBQ0QsQ0FGRDs7QUFJQVIsS0FBSyxDQUFDUyxPQUFOLENBQWMsU0FBZCxFQUF5QixVQUFVQyxHQUFWLEVBQWU7QUFDdEMsU0FBT1gsT0FBTyxDQUFDVyxHQUFELENBQWQ7QUFDRCxDQUZELEUiLCJmaWxlIjoiL3BhY2thZ2VzL21vbmdvLWRlY2ltYWwuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFSlNPTiB9IGZyb20gJ21ldGVvci9lanNvbic7XG5pbXBvcnQgeyBEZWNpbWFsIH0gZnJvbSAnZGVjaW1hbC5qcyc7XG5cbkRlY2ltYWwucHJvdG90eXBlLnR5cGVOYW1lID0gZnVuY3Rpb24oKSB7XG4gIHJldHVybiAnRGVjaW1hbCc7XG59O1xuXG5EZWNpbWFsLnByb3RvdHlwZS50b0pTT05WYWx1ZSA9IGZ1bmN0aW9uICgpIHtcbiAgcmV0dXJuIHRoaXMudG9KU09OKCk7XG59O1xuXG5EZWNpbWFsLnByb3RvdHlwZS5jbG9uZSA9IGZ1bmN0aW9uICgpIHtcbiAgcmV0dXJuIERlY2ltYWwodGhpcy50b1N0cmluZygpKTtcbn07XG5cbkVKU09OLmFkZFR5cGUoJ0RlY2ltYWwnLCBmdW5jdGlvbiAoc3RyKSB7XG4gIHJldHVybiBEZWNpbWFsKHN0cik7XG59KTtcblxuZXhwb3J0IHsgRGVjaW1hbCB9O1xuIl19
{"version":3,"sources":["meteor://💻app/packages/mongo-decimal/decimal.js"],"names":["module","export","Decimal","EJSON","link","v","prototype","typeName","toJSONValue","toJSON","clone","toString","addType","str"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAAAA,MAAM,CAACC,MAAP,CAAc;AAACC,SAAO,EAAC,MAAIA;AAAb,CAAd;AAAqC,IAAIC,KAAJ;AAAUH,MAAM,CAACI,IAAP,CAAY,cAAZ,EAA2B;AAACD,OAAK,CAACE,CAAD,EAAG;AAACF,SAAK,GAACE,CAAN;AAAQ;;AAAlB,CAA3B,EAA+C,CAA/C;AAAkD,IAAIH,OAAJ;AAAYF,MAAM,CAACI,IAAP,CAAY,YAAZ,EAAyB;AAACF,SAAO,CAACG,CAAD,EAAG;AAACH,WAAO,GAACG,CAAR;AAAU;;AAAtB,CAAzB,EAAiD,CAAjD;;AAG7GH,OAAO,CAACI,SAAR,CAAkBC,QAAlB,GAA6B,YAAW;AACtC,SAAO,SAAP;AACD,CAFD;;AAIAL,OAAO,CAACI,SAAR,CAAkBE,WAAlB,GAAgC,YAAY;AAC1C,SAAO,KAAKC,MAAL,EAAP;AACD,CAFD;;AAIAP,OAAO,CAACI,SAAR,CAAkBI,KAAlB,GAA0B,YAAY;AACpC,SAAOR,OAAO,CAAC,KAAKS,QAAL,EAAD,CAAd;AACD,CAFD;;AAIAR,KAAK,CAACS,OAAN,CAAc,SAAd,EAAyB,UAAUC,GAAV,EAAe;AACtC,SAAOX,OAAO,CAACW,GAAD,CAAd;AACD,CAFD,E","file":"/packages/mongo-decimal.js","sourcesContent":["import { EJSON } from 'meteor/ejson';\nimport { Decimal } from 'decimal.js';\n\nDecimal.prototype.typeName = function() {\n return 'Decimal';\n};\n\nDecimal.prototype.toJSONValue = function () {\n return this.toJSON();\n};\n\nDecimal.prototype.clone = function () {\n return Decimal(this.toString());\n};\n\nEJSON.addType('Decimal', function (str) {\n return Decimal(str);\n});\n\nexport { Decimal };\n"]}
\ No newline at end of file
{"version":3,"sources":["meteor://💻app/packages/mongo-id/id.js"],"names":["module","export","MongoID","EJSON","link","v","Random","_looksLikeObjectID","str","length","match","ObjectID","constructor","hexString","toLowerCase","Error","_str","equals","other","valueOf","toString","clone","typeName","getTimestamp","Number","parseInt","substr","toJSONValue","toHexString","addType","idStringify","id","startsWith","undefined","JSON","stringify","idParse","parse"],"mappings":"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","file":"/packages/mongo-id.js","sourcesContent":["import { EJSON } from 'meteor/ejson';\nimport { Random } from 'meteor/random';\n\nconst MongoID = {};\n\nMongoID._looksLikeObjectID = str => str.length === 24 && str.match(/^[0-9a-f]*$/);\n\nMongoID.ObjectID = class ObjectID {\n constructor (hexString) {\n //random-based impl of Mongo ObjectID\n if (hexString) {\n hexString = hexString.toLowerCase();\n if (!MongoID._looksLikeObjectID(hexString)) {\n throw new Error('Invalid hexadecimal string for creating an ObjectID');\n }\n // meant to work with _.isEqual(), which relies on structural equality\n this._str = hexString;\n } else {\n this._str = Random.hexString(24);\n }\n }\n\n equals(other) {\n return other instanceof MongoID.ObjectID &&\n this.valueOf() === other.valueOf();\n }\n\n toString() {\n return `ObjectID(\"${this._str}\")`;\n }\n\n clone() {\n return new MongoID.ObjectID(this._str);\n }\n\n typeName() {\n return 'oid';\n }\n \n getTimestamp() {\n return Number.parseInt(this._str.substr(0, 8), 16);\n }\n\n valueOf() {\n return this._str;\n }\n\n toJSONValue() {\n return this.valueOf();\n }\n\n toHexString() {\n return this.valueOf();\n }\n\n}\n\nEJSON.addType('oid', str => new MongoID.ObjectID(str));\n\nMongoID.idStringify = (id) => {\n if (id instanceof MongoID.ObjectID) {\n return id.valueOf();\n } else if (typeof id === 'string') {\n if (id === '') {\n return id;\n } else if (id.startsWith('-') || // escape previously dashed strings\n id.startsWith('~') || // escape escaped numbers, true, false\n MongoID._looksLikeObjectID(id) || // escape object-id-form strings\n id.startsWith('{')) { // escape object-form strings, for maybe implementing later\n return `-${id}`;\n } else {\n return id; // other strings go through unchanged.\n }\n } else if (id === undefined) {\n return '-';\n } else if (typeof id === 'object' && id !== null) {\n throw new Error('Meteor does not currently support objects other than ObjectID as ids');\n } else { // Numbers, true, false, null\n return `~${JSON.stringify(id)}`;\n }\n};\n\nMongoID.idParse = (id) => {\n if (id === '') {\n return id;\n } else if (id === '-') {\n return undefined;\n } else if (id.startsWith('-')) {\n return id.substr(1);\n } else if (id.startsWith('~')) {\n return JSON.parse(id.substr(1));\n } else if (MongoID._looksLikeObjectID(id)) {\n return new MongoID.ObjectID(id);\n } else {\n return id;\n }\n};\n\nexport { MongoID };\n"]}
\ No newline at end of file
This diff could not be displayed because it is too large.
This diff could not be displayed because it is too large.
(function () {
/* Imports */
var Meteor = Package.meteor.Meteor;
var global = Package.meteor.global;
var meteorEnv = Package.meteor.meteorEnv;
/* Package-scope variables */
var NpmModuleMongodb, NpmModuleMongodbVersion;
(function(){
/////////////////////////////////////////////////////////////////////////////
// //
// packages/npm-mongo/wrapper.js //
// //
/////////////////////////////////////////////////////////////////////////////
//
const oldNoDeprecationValue = process.noDeprecation;
try {
// Silence deprecation warnings introduced in a patch update to mongodb:
// https://github.com/meteor/meteor/pull/9942#discussion_r218564879
process.noDeprecation = true;
NpmModuleMongodb = Npm.require('mongodb');
} finally {
process.noDeprecation = oldNoDeprecationValue;
}
NpmModuleMongodbVersion = Npm.require('mongodb/package.json').version;
/////////////////////////////////////////////////////////////////////////////
}).call(this);
/* Exports */
Package._define("npm-mongo", {
NpmModuleMongodb: NpmModuleMongodb,
NpmModuleMongodbVersion: NpmModuleMongodbVersion
});
})();
(function () {
/* Imports */
var Meteor = Package.meteor.Meteor;
var global = Package.meteor.global;
var meteorEnv = Package.meteor.meteorEnv;
var meteorInstall = Package.modules.meteorInstall;
/* Package-scope variables */
var Promise;
var require = meteorInstall({"node_modules":{"meteor":{"promise":{"modern.js":function(){
///////////////////////////////////////////////////////////////////////////////////
// //
// packages/promise/modern.js //
// //
///////////////////////////////////////////////////////////////////////////////////
//
// Initialize the package-scoped Promise variable with global.Promise in
// all environments, even if it's not defined.
Promise = global.Promise;
///////////////////////////////////////////////////////////////////////////////////
},"server.js":function(require,exports,module){
///////////////////////////////////////////////////////////////////////////////////
// //
// packages/promise/server.js //
// //
///////////////////////////////////////////////////////////////////////////////////
//
require("./extensions.js");
require("meteor-promise").makeCompatible(
Promise,
// Allow every Promise callback to run in a Fiber drawn from a pool of
// reusable Fibers.
require("fibers")
);
// Reference: https://caniuse.com/#feat=promises
require("meteor/modern-browsers").setMinimumBrowserVersions({
chrome: 32,
edge: 12,
// Since there is no IE11, this effectively excludes Internet Explorer
// (pre-Edge) from the modern classification. #9818 #9839
ie: 12,
firefox: 29,
mobileSafari: 8,
opera: 20,
safari: [7, 1],
// https://github.com/Kilian/electron-to-chromium/blob/master/full-versions.js
electron: [0, 20],
}, module.id);
///////////////////////////////////////////////////////////////////////////////////
},"extensions.js":function(){
///////////////////////////////////////////////////////////////////////////////////
// //
// packages/promise/extensions.js //
// //
///////////////////////////////////////////////////////////////////////////////////
//
var proto = Promise.prototype;
var hasOwn = Object.prototype.hasOwnProperty;
proto.done = function (onFulfilled, onRejected) {
var self = this;
if (arguments.length > 0) {
self = this.then.apply(this, arguments);
}
self.then(null, function (err) {
Meteor._setImmediate(function () {
throw err;
});
});
};
if (! hasOwn.call(proto, "finally")) {
proto["finally"] = function (onFinally) {
var threw = false, result;
return this.then(function (value) {
result = value;
// Most implementations of Promise.prototype.finally call
// Promise.resolve(onFinally()) (or this.constructor.resolve or even
// this.constructor[Symbol.species].resolve, depending on how spec
// compliant they're trying to be), but this implementation simply
// relies on the standard Promise behavior of resolving any value
// returned from a .then callback function.
return onFinally();
}, function (error) {
// Make the final .then callback (below) re-throw the error instead
// of returning it.
threw = true;
result = error;
return onFinally();
}).then(function () {
if (threw) throw result;
return result;
});
};
}
///////////////////////////////////////////////////////////////////////////////////
},"node_modules":{"meteor-promise":{"package.json":function(require,exports,module){
///////////////////////////////////////////////////////////////////////////////////
// //
// node_modules/meteor/promise/node_modules/meteor-promise/package.json //
// //
///////////////////////////////////////////////////////////////////////////////////
//
module.exports = {
"name": "meteor-promise",
"version": "0.8.7",
"main": "promise_server.js"
};
///////////////////////////////////////////////////////////////////////////////////
},"promise_server.js":function(require,exports,module){
///////////////////////////////////////////////////////////////////////////////////
// //
// node_modules/meteor/promise/node_modules/meteor-promise/promise_server.js //
// //
///////////////////////////////////////////////////////////////////////////////////
//
module.useNode();
///////////////////////////////////////////////////////////////////////////////////
}}}}}}},{
"extensions": [
".js",
".json"
]
});
require("/node_modules/meteor/promise/modern.js");
var exports = require("/node_modules/meteor/promise/server.js");
/* Exports */
Package._define("promise", exports, {
Promise: Promise
});
})();
(function () {
/* Imports */
var Meteor = Package.meteor.Meteor;
var global = Package.meteor.global;
var meteorEnv = Package.meteor.meteorEnv;
var Tracker = Package.tracker.Tracker;
var Deps = Package.tracker.Deps;
/* Package-scope variables */
var ReactiveVar;
(function(){
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// //
// packages/reactive-var/reactive-var.js //
// //
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//
/*
* ## [new] ReactiveVar(initialValue, [equalsFunc])
*
* A ReactiveVar holds a single value that can be get and set,
* such that calling `set` will invalidate any Computations that
* called `get`, according to the usual contract for reactive
* data sources.
*
* A ReactiveVar is much like a Session variable -- compare `foo.get()`
* to `Session.get("foo")` -- but it doesn't have a global name and isn't
* automatically migrated across hot code pushes. Also, while Session
* variables can only hold JSON or EJSON, ReactiveVars can hold any value.
*
* An important property of ReactiveVars, which is sometimes the reason
* to use one, is that setting the value to the same value as before has
* no effect, meaning ReactiveVars can be used to absorb extra
* invalidations that wouldn't serve a purpose. However, by default,
* ReactiveVars are extremely conservative about what changes they
* absorb. Calling `set` with an object argument will *always* trigger
* invalidations, because even if the new value is `===` the old value,
* the object may have been mutated. You can change the default behavior
* by passing a function of two arguments, `oldValue` and `newValue`,
* to the constructor as `equalsFunc`.
*
* This class is extremely basic right now, but the idea is to evolve
* it into the ReactiveVar of Geoff's Lickable Forms proposal.
*/
/**
* @class
* @instanceName reactiveVar
* @summary Constructor for a ReactiveVar, which represents a single reactive variable.
* @locus Client
* @param {Any} initialValue The initial value to set. `equalsFunc` is ignored when setting the initial value.
* @param {Function} [equalsFunc] Optional. A function of two arguments, called on the old value and the new value whenever the ReactiveVar is set. If it returns true, no set is performed. If omitted, the default `equalsFunc` returns true if its arguments are `===` and are of type number, boolean, string, undefined, or null.
*/
ReactiveVar = function (initialValue, equalsFunc) {
if (! (this instanceof ReactiveVar))
// called without `new`
return new ReactiveVar(initialValue, equalsFunc);
this.curValue = initialValue;
this.equalsFunc = equalsFunc;
this.dep = new Tracker.Dependency;
};
ReactiveVar._isEqual = function (oldValue, newValue) {
var a = oldValue, b = newValue;
// Two values are "equal" here if they are `===` and are
// number, boolean, string, undefined, or null.
if (a !== b)
return false;
else
return ((!a) || (typeof a === 'number') || (typeof a === 'boolean') ||
(typeof a === 'string'));
};
/**
* @summary Returns the current value of the ReactiveVar, establishing a reactive dependency.
* @locus Client
*/
ReactiveVar.prototype.get = function () {
if (Tracker.active)
this.dep.depend();
return this.curValue;
};
/**
* @summary Sets the current value of the ReactiveVar, invalidating the Computations that called `get` if `newValue` is different from the old value.
* @locus Client
* @param {Any} newValue
*/
ReactiveVar.prototype.set = function (newValue) {
var oldValue = this.curValue;
if ((this.equalsFunc || ReactiveVar._isEqual)(oldValue, newValue))
// value is same as last time
return;
this.curValue = newValue;
this.dep.changed();
};
ReactiveVar.prototype.toString = function () {
return 'ReactiveVar{' + this.get() + '}';
};
ReactiveVar.prototype._numListeners = function() {
// Tests want to know.
// Accesses a private field of Tracker.Dependency.
var count = 0;
for (var id in this.dep._dependentsById)
count++;
return count;
};
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////
}).call(this);
/* Exports */
Package._define("reactive-var", {
ReactiveVar: ReactiveVar
});
})();
(function () {
/* Exports */
Package._define("reload");
})();
(function () {
/* Imports */
var Meteor = Package.meteor.Meteor;
var global = Package.meteor.global;
var meteorEnv = Package.meteor.meteorEnv;
var ECMAScript = Package.ecmascript.ECMAScript;
var Random = Package.random.Random;
var meteorInstall = Package.modules.meteorInstall;
var meteorBabelHelpers = Package['babel-runtime'].meteorBabelHelpers;
var Promise = Package.promise.Promise;
/* Package-scope variables */
var Retry;
var require = meteorInstall({"node_modules":{"meteor":{"retry":{"retry.js":function(require,exports,module){
///////////////////////////////////////////////////////////////////////////////
// //
// packages/retry/retry.js //
// //
///////////////////////////////////////////////////////////////////////////////
//
module.export({
Retry: () => Retry
});
class Retry {
constructor({
baseTimeout = 1000,
exponent = 2.2,
// The default is high-ish to ensure a server can recover from a
// failure caused by load.
maxTimeout = 5 * 60 * 1000,
minTimeout = 10,
minCount = 2,
fuzz = 0.5
} = {}) {
this.baseTimeout = baseTimeout;
this.exponent = exponent;
this.maxTimeout = maxTimeout;
this.minTimeout = minTimeout;
this.minCount = minCount;
this.fuzz = fuzz;
this.retryTimer = null;
} // Reset a pending retry, if any.
clear() {
if (this.retryTimer) {
clearTimeout(this.retryTimer);
}
this.retryTimer = null;
} // Calculate how long to wait in milliseconds to retry, based on the
// `count` of which retry this is.
_timeout(count) {
if (count < this.minCount) {
return this.minTimeout;
} // fuzz the timeout randomly, to avoid reconnect storms when a
// server goes down.
var timeout = Math.min(this.maxTimeout, this.baseTimeout * Math.pow(this.exponent, count)) * (Random.fraction() * this.fuzz + (1 - this.fuzz / 2));
return timeout;
} // Call `fn` after a delay, based on the `count` of which retry this is.
retryLater(count, fn) {
var timeout = this._timeout(count);
if (this.retryTimer) clearTimeout(this.retryTimer);
this.retryTimer = Meteor.setTimeout(fn, timeout);
return timeout;
}
}
///////////////////////////////////////////////////////////////////////////////
}}}}},{
"extensions": [
".js",
".json"
]
});
var exports = require("/node_modules/meteor/retry/retry.js");
/* Exports */
Package._define("retry", exports, {
Retry: Retry
});
})();
//# sourceURL=meteor://💻app/packages/retry.js
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm1ldGVvcjovL/CfkrthcHAvcGFja2FnZXMvcmV0cnkvcmV0cnkuanMiXSwibmFtZXMiOlsibW9kdWxlIiwiZXhwb3J0IiwiUmV0cnkiLCJjb25zdHJ1Y3RvciIsImJhc2VUaW1lb3V0IiwiZXhwb25lbnQiLCJtYXhUaW1lb3V0IiwibWluVGltZW91dCIsIm1pbkNvdW50IiwiZnV6eiIsInJldHJ5VGltZXIiLCJjbGVhciIsImNsZWFyVGltZW91dCIsIl90aW1lb3V0IiwiY291bnQiLCJ0aW1lb3V0IiwiTWF0aCIsIm1pbiIsInBvdyIsIlJhbmRvbSIsImZyYWN0aW9uIiwicmV0cnlMYXRlciIsImZuIiwiTWV0ZW9yIiwic2V0VGltZW91dCJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQUEsTUFBTSxDQUFDQyxNQUFQLENBQWM7QUFBQ0MsT0FBSyxFQUFDLE1BQUlBO0FBQVgsQ0FBZDs7QUFVTyxNQUFNQSxLQUFOLENBQVk7QUFDakJDLGFBQVcsQ0FBQztBQUNWQyxlQUFXLEdBQUcsSUFESjtBQUVWQyxZQUFRLEdBQUcsR0FGRDtBQUdWO0FBQ0E7QUFDQUMsY0FBVSxHQUFHLElBQUksRUFBSixHQUFTLElBTFo7QUFNVkMsY0FBVSxHQUFHLEVBTkg7QUFPVkMsWUFBUSxHQUFHLENBUEQ7QUFRVkMsUUFBSSxHQUFHO0FBUkcsTUFTUixFQVRPLEVBU0g7QUFDTixTQUFLTCxXQUFMLEdBQW1CQSxXQUFuQjtBQUNBLFNBQUtDLFFBQUwsR0FBZ0JBLFFBQWhCO0FBQ0EsU0FBS0MsVUFBTCxHQUFrQkEsVUFBbEI7QUFDQSxTQUFLQyxVQUFMLEdBQWtCQSxVQUFsQjtBQUNBLFNBQUtDLFFBQUwsR0FBZ0JBLFFBQWhCO0FBQ0EsU0FBS0MsSUFBTCxHQUFZQSxJQUFaO0FBQ0EsU0FBS0MsVUFBTCxHQUFrQixJQUFsQjtBQUNELEdBbEJnQixDQW9CakI7OztBQUNBQyxPQUFLLEdBQUc7QUFDTixRQUFJLEtBQUtELFVBQVQsRUFBcUI7QUFDbkJFLGtCQUFZLENBQUMsS0FBS0YsVUFBTixDQUFaO0FBQ0Q7O0FBQ0QsU0FBS0EsVUFBTCxHQUFrQixJQUFsQjtBQUNELEdBMUJnQixDQTRCakI7QUFDQTs7O0FBQ0FHLFVBQVEsQ0FBQ0MsS0FBRCxFQUFRO0FBQ2QsUUFBSUEsS0FBSyxHQUFHLEtBQUtOLFFBQWpCLEVBQTJCO0FBQ3pCLGFBQU8sS0FBS0QsVUFBWjtBQUNELEtBSGEsQ0FLZDtBQUNBOzs7QUFDQSxRQUFJUSxPQUFPLEdBQUdDLElBQUksQ0FBQ0MsR0FBTCxDQUNaLEtBQUtYLFVBRE8sRUFFWixLQUFLRixXQUFMLEdBQW1CWSxJQUFJLENBQUNFLEdBQUwsQ0FBUyxLQUFLYixRQUFkLEVBQXdCUyxLQUF4QixDQUZQLEtBSVpLLE1BQU0sQ0FBQ0MsUUFBUCxLQUFvQixLQUFLWCxJQUF6QixJQUFpQyxJQUFJLEtBQUtBLElBQUwsR0FBWSxDQUFqRCxDQUpZLENBQWQ7QUFPQSxXQUFPTSxPQUFQO0FBQ0QsR0E3Q2dCLENBK0NqQjs7O0FBQ0FNLFlBQVUsQ0FBQ1AsS0FBRCxFQUFRUSxFQUFSLEVBQVk7QUFDcEIsUUFBSVAsT0FBTyxHQUFHLEtBQUtGLFFBQUwsQ0FBY0MsS0FBZCxDQUFkOztBQUNBLFFBQUksS0FBS0osVUFBVCxFQUNFRSxZQUFZLENBQUMsS0FBS0YsVUFBTixDQUFaO0FBQ0YsU0FBS0EsVUFBTCxHQUFrQmEsTUFBTSxDQUFDQyxVQUFQLENBQWtCRixFQUFsQixFQUFzQlAsT0FBdEIsQ0FBbEI7QUFDQSxXQUFPQSxPQUFQO0FBQ0Q7O0FBdERnQixDIiwiZmlsZSI6Ii9wYWNrYWdlcy9yZXRyeS5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8vIFJldHJ5IGxvZ2ljIHdpdGggYW4gZXhwb25lbnRpYWwgYmFja29mZi5cbi8vXG4vLyBvcHRpb25zOlxuLy8gIGJhc2VUaW1lb3V0OiB0aW1lIGZvciBpbml0aWFsIHJlY29ubmVjdCBhdHRlbXB0IChtcykuXG4vLyAgZXhwb25lbnQ6IGV4cG9uZW50aWFsIGZhY3RvciB0byBpbmNyZWFzZSB0aW1lb3V0IGVhY2ggYXR0ZW1wdC5cbi8vICBtYXhUaW1lb3V0OiBtYXhpbXVtIHRpbWUgYmV0d2VlbiByZXRyaWVzIChtcykuXG4vLyAgbWluQ291bnQ6IGhvdyBtYW55IHRpbWVzIHRvIHJlY29ubmVjdCBcImluc3RhbnRseVwiLlxuLy8gIG1pblRpbWVvdXQ6IHRpbWUgdG8gd2FpdCBmb3IgdGhlIGZpcnN0IGBtaW5Db3VudGAgcmV0cmllcyAobXMpLlxuLy8gIGZ1eno6IGZhY3RvciB0byByYW5kb21pemUgcmV0cnkgdGltZXMgYnkgKHRvIGF2b2lkIHJldHJ5IHN0b3JtcykuXG5cbmV4cG9ydCBjbGFzcyBSZXRyeSB7XG4gIGNvbnN0cnVjdG9yKHtcbiAgICBiYXNlVGltZW91dCA9IDEwMDAsXG4gICAgZXhwb25lbnQgPSAyLjIsXG4gICAgLy8gVGhlIGRlZmF1bHQgaXMgaGlnaC1pc2ggdG8gZW5zdXJlIGEgc2VydmVyIGNhbiByZWNvdmVyIGZyb20gYVxuICAgIC8vIGZhaWx1cmUgY2F1c2VkIGJ5IGxvYWQuXG4gICAgbWF4VGltZW91dCA9IDUgKiA2MCAqIDEwMDAsXG4gICAgbWluVGltZW91dCA9IDEwLFxuICAgIG1pbkNvdW50ID0gMixcbiAgICBmdXp6ID0gMC41LFxuICB9ID0ge30pIHtcbiAgICB0aGlzLmJhc2VUaW1lb3V0ID0gYmFzZVRpbWVvdXQ7XG4gICAgdGhpcy5leHBvbmVudCA9IGV4cG9uZW50O1xuICAgIHRoaXMubWF4VGltZW91dCA9IG1heFRpbWVvdXQ7XG4gICAgdGhpcy5taW5UaW1lb3V0ID0gbWluVGltZW91dDtcbiAgICB0aGlzLm1pbkNvdW50ID0gbWluQ291bnQ7XG4gICAgdGhpcy5mdXp6ID0gZnV6ejtcbiAgICB0aGlzLnJldHJ5VGltZXIgPSBudWxsO1xuICB9XG5cbiAgLy8gUmVzZXQgYSBwZW5kaW5nIHJldHJ5LCBpZiBhbnkuXG4gIGNsZWFyKCkge1xuICAgIGlmICh0aGlzLnJldHJ5VGltZXIpIHtcbiAgICAgIGNsZWFyVGltZW91dCh0aGlzLnJldHJ5VGltZXIpO1xuICAgIH1cbiAgICB0aGlzLnJldHJ5VGltZXIgPSBudWxsO1xuICB9XG5cbiAgLy8gQ2FsY3VsYXRlIGhvdyBsb25nIHRvIHdhaXQgaW4gbWlsbGlzZWNvbmRzIHRvIHJldHJ5LCBiYXNlZCBvbiB0aGVcbiAgLy8gYGNvdW50YCBvZiB3aGljaCByZXRyeSB0aGlzIGlzLlxuICBfdGltZW91dChjb3VudCkge1xuICAgIGlmIChjb3VudCA8IHRoaXMubWluQ291bnQpIHtcbiAgICAgIHJldHVybiB0aGlzLm1pblRpbWVvdXQ7XG4gICAgfVxuXG4gICAgLy8gZnV6eiB0aGUgdGltZW91dCByYW5kb21seSwgdG8gYXZvaWQgcmVjb25uZWN0IHN0b3JtcyB3aGVuIGFcbiAgICAvLyBzZXJ2ZXIgZ29lcyBkb3duLlxuICAgIHZhciB0aW1lb3V0ID0gTWF0aC5taW4oXG4gICAgICB0aGlzLm1heFRpbWVvdXQsXG4gICAgICB0aGlzLmJhc2VUaW1lb3V0ICogTWF0aC5wb3codGhpcy5leHBvbmVudCwgY291bnQpXG4gICAgKSAqIChcbiAgICAgIFJhbmRvbS5mcmFjdGlvbigpICogdGhpcy5mdXp6ICsgKDEgLSB0aGlzLmZ1enogLyAyKVxuICAgICk7XG5cbiAgICByZXR1cm4gdGltZW91dDtcbiAgfVxuXG4gIC8vIENhbGwgYGZuYCBhZnRlciBhIGRlbGF5LCBiYXNlZCBvbiB0aGUgYGNvdW50YCBvZiB3aGljaCByZXRyeSB0aGlzIGlzLlxuICByZXRyeUxhdGVyKGNvdW50LCBmbikge1xuICAgIHZhciB0aW1lb3V0ID0gdGhpcy5fdGltZW91dChjb3VudCk7XG4gICAgaWYgKHRoaXMucmV0cnlUaW1lcilcbiAgICAgIGNsZWFyVGltZW91dCh0aGlzLnJldHJ5VGltZXIpO1xuICAgIHRoaXMucmV0cnlUaW1lciA9IE1ldGVvci5zZXRUaW1lb3V0KGZuLCB0aW1lb3V0KTtcbiAgICByZXR1cm4gdGltZW91dDtcbiAgfVxufVxuIl19
{"version":3,"sources":["meteor://💻app/packages/retry/retry.js"],"names":["module","export","Retry","constructor","baseTimeout","exponent","maxTimeout","minTimeout","minCount","fuzz","retryTimer","clear","clearTimeout","_timeout","count","timeout","Math","min","pow","Random","fraction","retryLater","fn","Meteor","setTimeout"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAAAA,MAAM,CAACC,MAAP,CAAc;AAACC,OAAK,EAAC,MAAIA;AAAX,CAAd;;AAUO,MAAMA,KAAN,CAAY;AACjBC,aAAW,CAAC;AACVC,eAAW,GAAG,IADJ;AAEVC,YAAQ,GAAG,GAFD;AAGV;AACA;AACAC,cAAU,GAAG,IAAI,EAAJ,GAAS,IALZ;AAMVC,cAAU,GAAG,EANH;AAOVC,YAAQ,GAAG,CAPD;AAQVC,QAAI,GAAG;AARG,MASR,EATO,EASH;AACN,SAAKL,WAAL,GAAmBA,WAAnB;AACA,SAAKC,QAAL,GAAgBA,QAAhB;AACA,SAAKC,UAAL,GAAkBA,UAAlB;AACA,SAAKC,UAAL,GAAkBA,UAAlB;AACA,SAAKC,QAAL,GAAgBA,QAAhB;AACA,SAAKC,IAAL,GAAYA,IAAZ;AACA,SAAKC,UAAL,GAAkB,IAAlB;AACD,GAlBgB,CAoBjB;;;AACAC,OAAK,GAAG;AACN,QAAI,KAAKD,UAAT,EAAqB;AACnBE,kBAAY,CAAC,KAAKF,UAAN,CAAZ;AACD;;AACD,SAAKA,UAAL,GAAkB,IAAlB;AACD,GA1BgB,CA4BjB;AACA;;;AACAG,UAAQ,CAACC,KAAD,EAAQ;AACd,QAAIA,KAAK,GAAG,KAAKN,QAAjB,EAA2B;AACzB,aAAO,KAAKD,UAAZ;AACD,KAHa,CAKd;AACA;;;AACA,QAAIQ,OAAO,GAAGC,IAAI,CAACC,GAAL,CACZ,KAAKX,UADO,EAEZ,KAAKF,WAAL,GAAmBY,IAAI,CAACE,GAAL,CAAS,KAAKb,QAAd,EAAwBS,KAAxB,CAFP,KAIZK,MAAM,CAACC,QAAP,KAAoB,KAAKX,IAAzB,IAAiC,IAAI,KAAKA,IAAL,GAAY,CAAjD,CAJY,CAAd;AAOA,WAAOM,OAAP;AACD,GA7CgB,CA+CjB;;;AACAM,YAAU,CAACP,KAAD,EAAQQ,EAAR,EAAY;AACpB,QAAIP,OAAO,GAAG,KAAKF,QAAL,CAAcC,KAAd,CAAd;;AACA,QAAI,KAAKJ,UAAT,EACEE,YAAY,CAAC,KAAKF,UAAN,CAAZ;AACF,SAAKA,UAAL,GAAkBa,MAAM,CAACC,UAAP,CAAkBF,EAAlB,EAAsBP,OAAtB,CAAlB;AACA,WAAOA,OAAP;AACD;;AAtDgB,C","file":"/packages/retry.js","sourcesContent":["// Retry logic with an exponential backoff.\n//\n// options:\n// baseTimeout: time for initial reconnect attempt (ms).\n// exponent: exponential factor to increase timeout each attempt.\n// maxTimeout: maximum time between retries (ms).\n// minCount: how many times to reconnect \"instantly\".\n// minTimeout: time to wait for the first `minCount` retries (ms).\n// fuzz: factor to randomize retry times by (to avoid retry storms).\n\nexport class Retry {\n constructor({\n baseTimeout = 1000,\n exponent = 2.2,\n // The default is high-ish to ensure a server can recover from a\n // failure caused by load.\n maxTimeout = 5 * 60 * 1000,\n minTimeout = 10,\n minCount = 2,\n fuzz = 0.5,\n } = {}) {\n this.baseTimeout = baseTimeout;\n this.exponent = exponent;\n this.maxTimeout = maxTimeout;\n this.minTimeout = minTimeout;\n this.minCount = minCount;\n this.fuzz = fuzz;\n this.retryTimer = null;\n }\n\n // Reset a pending retry, if any.\n clear() {\n if (this.retryTimer) {\n clearTimeout(this.retryTimer);\n }\n this.retryTimer = null;\n }\n\n // Calculate how long to wait in milliseconds to retry, based on the\n // `count` of which retry this is.\n _timeout(count) {\n if (count < this.minCount) {\n return this.minTimeout;\n }\n\n // fuzz the timeout randomly, to avoid reconnect storms when a\n // server goes down.\n var timeout = Math.min(\n this.maxTimeout,\n this.baseTimeout * Math.pow(this.exponent, count)\n ) * (\n Random.fraction() * this.fuzz + (1 - this.fuzz / 2)\n );\n\n return timeout;\n }\n\n // Call `fn` after a delay, based on the `count` of which retry this is.\n retryLater(count, fn) {\n var timeout = this._timeout(count);\n if (this.retryTimer)\n clearTimeout(this.retryTimer);\n this.retryTimer = Meteor.setTimeout(fn, timeout);\n return timeout;\n }\n}\n"]}
\ No newline at end of file
{"version":3,"sources":["meteor://💻app/packages/routepolicy/main.js","meteor://💻app/packages/routepolicy/routepolicy.js"],"names":["module","export","RoutePolicy","RoutePolicyConstructor","link","default","v","constructor","urlPrefixTypes","urlPrefixMatches","urlPrefix","url","startsWith","checkType","type","includes","checkUrlPrefix","existingType","checkForConflictWithStatic","_testManifest","policy","check","manifest","conflict","find","resource","where","WebApp","require","errorMessage","Object","keys","clientPrograms","some","arch","declare","problem","Error","isValidUrl","classify","prefix","urlPrefixesFor","entries","filter","_prefix","_type","map","sort"],"mappings":"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","file":"/packages/routepolicy.js","sourcesContent":["import { default as RoutePolicyConstructor } from './routepolicy';\nexport const RoutePolicy = new RoutePolicyConstructor();\n","// In addition to listing specific files to be cached, the browser\n// application cache manifest allows URLs to be designated as NETWORK\n// (always fetched from the Internet) and FALLBACK (which we use to\n// serve app HTML on arbitrary URLs).\n//\n// The limitation of the manifest file format is that the designations\n// are by prefix only: if \"/foo\" is declared NETWORK then \"/foobar\"\n// will also be treated as a network route.\n//\n// RoutePolicy is a low-level API for declaring the route type of URL prefixes:\n//\n// \"network\": for network routes that should not conflict with static\n// resources. (For example, if \"/sockjs/\" is a network route, we\n// shouldn't have \"/sockjs/red-sock.jpg\" as a static resource).\n//\n// \"static-online\": for static resources which should not be cached in\n// the app cache. This is implemented by also adding them to the\n// NETWORK section (as otherwise the browser would receive app HTML\n// for them because of the FALLBACK section), but static-online routes\n// don't need to be checked for conflict with static resources.\n\n\nexport default class RoutePolicy {\n constructor() {\n // maps prefix to a type\n this.urlPrefixTypes = {};\n }\n\n urlPrefixMatches(urlPrefix, url) {\n return url.startsWith(urlPrefix);\n }\n\n checkType(type) {\n if (!['network', 'static-online'].includes(type)) {\n return 'the route type must be \"network\" or \"static-online\"';\n }\n return null;\n }\n\n checkUrlPrefix(urlPrefix, type) {\n if (!urlPrefix.startsWith('/')) {\n return 'a route URL prefix must begin with a slash';\n }\n\n if (urlPrefix === '/') {\n return 'a route URL prefix cannot be /';\n }\n\n const existingType = this.urlPrefixTypes[urlPrefix];\n if (existingType && existingType !== type) {\n return `the route URL prefix ${urlPrefix} has already been declared ` +\n `to be of type ${existingType}`;\n }\n\n return null;\n }\n\n checkForConflictWithStatic(urlPrefix, type, _testManifest) {\n if (type === 'static-online') {\n return null;\n }\n\n const policy = this;\n\n function check(manifest) {\n const conflict = manifest.find(resource => (\n resource.type === 'static' &&\n resource.where === 'client' &&\n policy.urlPrefixMatches(urlPrefix, resource.url)\n ));\n\n if (conflict) {\n return `static resource ${conflict.url} conflicts with ${type} ` +\n `route ${urlPrefix}`;\n }\n\n return null;\n };\n\n if (_testManifest) {\n return check(_testManifest);\n }\n\n const { WebApp } = require(\"meteor/webapp\");\n let errorMessage = null;\n\n Object.keys(WebApp.clientPrograms).some(arch => {\n const { manifest } = WebApp.clientPrograms[arch];\n return errorMessage = check(manifest);\n });\n\n return errorMessage;\n }\n\n declare(urlPrefix, type) {\n const problem =\n this.checkType(type) ||\n this.checkUrlPrefix(urlPrefix, type) ||\n this.checkForConflictWithStatic(urlPrefix, type);\n if (problem) {\n throw new Error(problem);\n }\n // TODO overlapping prefixes, e.g. /foo/ and /foo/bar/\n this.urlPrefixTypes[urlPrefix] = type;\n }\n\n isValidUrl(url) {\n return url.startsWith('/');\n }\n\n classify(url) {\n if (!this.isValidUrl(url)) {\n throw new Error(`url must be a relative URL: ${url}`);\n }\n\n const prefix = Object.keys(this.urlPrefixTypes).find(prefix =>\n this.urlPrefixMatches(prefix, url)\n );\n\n return prefix ? this.urlPrefixTypes[prefix] : null;\n }\n\n urlPrefixesFor(type) {\n return Object.entries(this.urlPrefixTypes)\n .filter(([_prefix, _type]) => _type === type)\n .map(([_prefix]) => _prefix)\n .sort();\n }\n}\n"]}
\ No newline at end of file
This diff could not be displayed because it is too large.
This diff could not be displayed because it is too large.
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or sign in to comment