UNPKG

firebase-bolt

Version:

Firebase Bolt Security and Modeling Language Compiler

105 lines (103 loc) 8.45 kB
"use strict"; exports.__esModule = true; /* * Copyright 2015 Google Inc. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ var lastError; var lastMessage; var errorCount; var silenceOutput; var DEBUG = false; var getContext = function () { return ({}); }; reset(); function reset() { lastError = undefined; lastMessage = undefined; errorCount = 0; silenceOutput = false; } exports.reset = reset; function setDebug(debug) { if (debug === void 0) { debug = true; } DEBUG = debug; } exports.setDebug = setDebug; function silent(f) { if (f === void 0) { f = true; } silenceOutput = f; } exports.silent = silent; function setContext(fn) { getContext = fn; } exports.setContext = setContext; function error(s) { var err = errorString(s); // De-dup identical messages if (err === lastMessage) { return; } lastMessage = err; lastError = lastMessage; if (!silenceOutput) { console.error(lastError); if (DEBUG) { var e = new Error("Stack trace"); console.error(e.stack); } } errorCount += 1; } exports.error = error; function warn(s) { var err = errorString(s); // De-dup identical messages if (err === lastMessage) { return; } lastMessage = err; if (!silenceOutput) { console.warn(lastMessage); } } exports.warn = warn; function getLastMessage() { return lastMessage; } exports.getLastMessage = getLastMessage; function errorString(s) { var ctx = getContext(); if (ctx.line !== undefined && ctx.column !== undefined) { return 'bolt:' + ctx.line + ':' + ctx.column + ': ' + s; } else { return 'bolt: ' + s; } } function hasErrors() { return errorCount > 0; } exports.hasErrors = hasErrors; function errorSummary() { if (errorCount === 1) { return lastError; } if (errorCount !== 0) { return "Fatal errors: " + errorCount; } return ""; } exports.errorSummary = errorSummary; //# sourceMappingURL=data:application/json;charset=utf8;base64,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QUFnQixHQUFHLFVBQVUsQ0FBQztLQUN0QztJQUNELE9BQU8sRUFBRSxDQUFDO0FBQ1osQ0FBQztBQVRELG9DQVNDIiwiZmlsZSI6ImxvZ2dlci5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgMjAxNSBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xubGV0IGxhc3RFcnJvcjogc3RyaW5nIHwgdW5kZWZpbmVkO1xubGV0IGxhc3RNZXNzYWdlOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG5sZXQgZXJyb3JDb3VudDogbnVtYmVyO1xubGV0IHNpbGVuY2VPdXRwdXQ6IGJvb2xlYW47XG5cbmxldCBERUJVRyA9IGZhbHNlO1xuXG5sZXQgZ2V0Q29udGV4dCA9ICgpID0+ICg8RXJyb3JDb250ZXh0PiB7fSk7XG5cbnJlc2V0KCk7XG5cbmV4cG9ydCBmdW5jdGlvbiByZXNldCgpIHtcbiAgbGFzdEVycm9yID0gdW5kZWZpbmVkO1xuICBsYXN0TWVzc2FnZSA9IHVuZGVmaW5lZDtcbiAgZXJyb3JDb3VudCA9IDA7XG4gIHNpbGVuY2VPdXRwdXQgPSBmYWxzZTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHNldERlYnVnKGRlYnVnID0gdHJ1ZSkge1xuICBERUJVRyA9IGRlYnVnO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gc2lsZW50KGYgPSB0cnVlKSB7XG4gIHNpbGVuY2VPdXRwdXQgPSBmO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEVycm9yQ29udGV4dCB7XG4gIGxpbmU/OiBudW1iZXI7XG4gIGNvbHVtbj86IG51bWJlcjtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHNldENvbnRleHQoZm46ICgpID0+IEVycm9yQ29udGV4dCkge1xuICBnZXRDb250ZXh0ID0gZm47XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBlcnJvcihzOiBzdHJpbmcpIHtcbiAgbGV0IGVyciA9IGVycm9yU3RyaW5nKHMpO1xuICAvLyBEZS1kdXAgaWRlbnRpY2FsIG1lc3NhZ2VzXG4gIGlmIChlcnIgID09PSBsYXN0TWVzc2FnZSkge1xuICAgIHJldHVybjtcbiAgfVxuICBsYXN0TWVzc2FnZSA9IGVycjtcbiAgbGFzdEVycm9yID0gbGFzdE1lc3NhZ2U7XG4gIGlmICghc2lsZW5jZU91dHB1dCkge1xuICAgIGNvbnNvbGUuZXJyb3IobGFzdEVycm9yKTtcbiAgICBpZiAoREVCVUcpIHtcbiAgICAgIGxldCBlID0gbmV3IEVycm9yKFwiU3RhY2sgdHJhY2VcIik7XG4gICAgICBjb25zb2xlLmVycm9yKGUuc3RhY2spO1xuICAgIH1cbiAgfVxuICBlcnJvckNvdW50ICs9IDE7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB3YXJuKHM6IHN0cmluZykge1xuICBsZXQgZXJyID0gZXJyb3JTdHJpbmcocyk7XG4gIC8vIERlLWR1cCBpZGVudGljYWwgbWVzc2FnZXNcbiAgaWYgKGVyciA9PT0gbGFzdE1lc3NhZ2UpIHtcbiAgICByZXR1cm47XG4gIH1cbiAgbGFzdE1lc3NhZ2UgPSBlcnI7XG4gIGlmICghc2lsZW5jZU91dHB1dCkge1xuICAgIGNvbnNvbGUud2FybihsYXN0TWVzc2FnZSk7XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldExhc3RNZXNzYWdlKCk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gIHJldHVybiBsYXN0TWVzc2FnZTtcbn1cblxuZnVuY3Rpb24gZXJyb3JTdHJpbmcoczogc3RyaW5nKSB7XG4gIGxldCBjdHggPSBnZXRDb250ZXh0KCk7XG4gIGlmIChjdHgubGluZSAhPT0gdW5kZWZpbmVkICYmIGN0eC5jb2x1bW4gIT09IHVuZGVmaW5lZCkge1xuICAgIHJldHVybiAnYm9sdDonICsgY3R4LmxpbmUgKyAnOicgKyBjdHguY29sdW1uICsgJzogJyArIHM7XG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuICdib2x0OiAnICsgcztcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gaGFzRXJyb3JzKCk6IGJvb2xlYW4ge1xuICByZXR1cm4gZXJyb3JDb3VudCA+IDA7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBlcnJvclN1bW1hcnkoKTogc3RyaW5nIHtcbiAgaWYgKGVycm9yQ291bnQgPT09IDEpIHtcbiAgICByZXR1cm4gPHN0cmluZz4gbGFzdEVycm9yO1xuICB9XG5cbiAgaWYgKGVycm9yQ291bnQgIT09IDApIHtcbiAgICByZXR1cm4gXCJGYXRhbCBlcnJvcnM6IFwiICsgZXJyb3JDb3VudDtcbiAgfVxuICByZXR1cm4gXCJcIjtcbn1cbiJdfQ==