diff --git a/.eslintrc b/.eslintrc index b24111e..7898fbf 100644 --- a/.eslintrc +++ b/.eslintrc @@ -1,99 +1,3 @@ { - "env": { - "browser": true, - "builtin": true, - "es6": true, - "jasmine": true, - "mocha": true, - "node": true - }, - "parserOptions": { - "ecmaVersion": 7, - "sourceType": "module", - "ecmaFeatures": { - "legacyDecorators": true - } - }, - "globals": { - "$": true, - "_": true, - "andThen": true, - "asyncRender": true, - "Blob": true, - "bootbox": true, - "click": true, - "waitUntil": true, - "getSettledState": true, - "count": true, - "currentPath": true, - "currentRouteName": true, - "currentURL": true, - "define": true, - "Discourse": true, - "Ember": true, - "exists": true, - "File": true, - "fillIn": true, - "find": true, - "Handlebars": true, - "hasModule": true, - "I18n": true, - "invisible": true, - "jQuery": true, - "keyboardHelper": true, - "keyEvent": true, - "moduleFor": true, - "moduleForComponent": true, - "moment": true, - "Pretender": true, - "QUnit": true, - "require": true, - "requirejs": true, - "RSVP": true, - "sandbox": true, - "sinon": true, - "test": true, - "triggerEvent": true, - "visible": true, - "visit": true, - "pauseTest": true - }, - "rules": { - "block-scoped-var": 2, - "dot-notation": 0, - "eqeqeq": [2, "allow-null"], - "guard-for-in": 2, - "no-alert": 2, - "no-bitwise": 2, - "no-caller": 2, - "no-cond-assign": 0, - "no-console": 2, - "no-debugger": 2, - "no-empty": 0, - "no-eval": 2, - "no-extend-native": 2, - "no-extra-parens": 0, - "no-inner-declarations": 2, - "no-irregular-whitespace": 2, - "no-iterator": 2, - "no-loop-func": 2, - "no-mixed-spaces-and-tabs": 2, - "no-multi-str": 2, - "no-new": 2, - "no-plusplus": 0, - "no-proto": 2, - "no-script-url": 2, - "no-sequences": 2, - "no-shadow": 2, - "no-this-before-super": 2, - "no-trailing-spaces": 2, - "no-undef": 2, - "no-unused-vars": 2, - "no-with": 2, - "semi": 2, - "strict": 0, - "valid-typeof": 2, - "wrap-iife": [2, "inside"] - }, - "parser": "babel-eslint" + "extends": "eslint-config-discourse" } diff --git a/.gitignore b/.gitignore index 69bebcd..868469a 100644 --- a/.gitignore +++ b/.gitignore @@ -6,4 +6,6 @@ auto_generated *.swp *.swo node_modules/ -.idea/ \ No newline at end of file +.idea/node_modules +yarn-error.log +.rubocop-https---raw-githubusercontent-com-discourse-* diff --git a/.template-lintrc.js b/.template-lintrc.js new file mode 100644 index 0000000..a558b8e --- /dev/null +++ b/.template-lintrc.js @@ -0,0 +1,4 @@ +module.exports = { + plugins: ["ember-template-lint-plugin-discourse"], + extends: "discourse:recommended", +}; diff --git a/assets/javascripts/discourse/components/explorer-container.js.es6 b/assets/javascripts/discourse/components/explorer-container.js.es6 index ff93dfb..e2f9181 100644 --- a/assets/javascripts/discourse/components/explorer-container.js.es6 +++ b/assets/javascripts/discourse/components/explorer-container.js.es6 @@ -34,7 +34,7 @@ export default Ember.Component.extend({ this.set("grippie", $grippie); - const mousemove = e => { + const mousemove = (e) => { const diffY = this.startY - e.screenY; const diffX = this.startX - e.screenX; @@ -47,7 +47,7 @@ export default Ember.Component.extend({ this.appEvents.trigger("ace:resize"); }; - const throttledMousemove = (event => { + const throttledMousemove = ((event) => { event.preventDefault(); Ember.run.throttle(this, mousemove, event, 20); }).bind(this); @@ -59,16 +59,16 @@ export default Ember.Component.extend({ startY: null, startX: null, startHeight: null, - startWidth: null + startWidth: null, }); }).bind(this); - $grippie.on("mousedown", e => { + $grippie.on("mousedown", (e) => { this.setProperties({ startY: e.screenY, startX: e.screenX, startHeight: $target.height(), - startWidth: $target.width() + startWidth: $target.width(), }); $document.on("mousemove", throttledMousemove); @@ -90,5 +90,5 @@ export default Ember.Component.extend({ this.grippie && this.grippie.off("mousedown"); this.set("grippie", null); } - } + }, }); diff --git a/assets/javascripts/discourse/components/explorer-schema-enuminfo.js.es6 b/assets/javascripts/discourse/components/explorer-schema-enuminfo.js.es6 index b35b780..d5a652a 100644 --- a/assets/javascripts/discourse/components/explorer-schema-enuminfo.js.es6 +++ b/assets/javascripts/discourse/components/explorer-schema-enuminfo.js.es6 @@ -13,5 +13,5 @@ export default Ember.Component.extend({ result.push({ value: key, name: hash[key] }); } return result; - } + }, }); diff --git a/assets/javascripts/discourse/components/explorer-schema-onetable.js.es6 b/assets/javascripts/discourse/components/explorer-schema-onetable.js.es6 index ace12e1..9ddb7f4 100644 --- a/assets/javascripts/discourse/components/explorer-schema-onetable.js.es6 +++ b/assets/javascripts/discourse/components/explorer-schema-onetable.js.es6 @@ -10,7 +10,7 @@ export default Ember.Component.extend({ _bindClicks() { $(this.element) .find(".schema-table-name") - .click(e => { + .click((e) => { this.set("table.open", !this.table.open); e.preventDefault(); }); @@ -18,8 +18,6 @@ export default Ember.Component.extend({ @on("willDestroyElement") _cleanup() { - $(this.element) - .find(".schema-table-name") - .off("click"); - } + $(this.element).find(".schema-table-name").off("click"); + }, }); diff --git a/assets/javascripts/discourse/components/explorer-schema.js.es6 b/assets/javascripts/discourse/components/explorer-schema.js.es6 index ab69109..8ad3d02 100644 --- a/assets/javascripts/discourse/components/explorer-schema.js.es6 +++ b/assets/javascripts/discourse/components/explorer-schema.js.es6 @@ -1,6 +1,6 @@ import { default as computed, - observes + observes, } from "discourse-common/utils/decorators"; import debounce from "discourse/lib/debounce"; @@ -8,7 +8,7 @@ export default Ember.Component.extend({ actions: { collapseSchema() { this.set("hideSchema", true); - } + }, }, @computed("schema") @@ -18,7 +18,7 @@ export default Ember.Component.extend({ continue; } - schema[key].forEach(col => { + schema[key].forEach((col) => { const notes_components = []; if (col.primary) { notes_components.push("primary key"); @@ -71,7 +71,7 @@ export default Ember.Component.extend({ tables.push({ name: key, columns: schema[key], - open: false + open: false, }); continue; } @@ -81,19 +81,19 @@ export default Ember.Component.extend({ tables.unshift({ name: key, columns: schema[key], - open: haveFilter + open: haveFilter, }); } else if (filter.test(key)) { // whole table matches tables.push({ name: key, columns: schema[key], - open: haveFilter + open: haveFilter, }); } else { // filter the columns let filterCols = []; - schema[key].forEach(col => { + schema[key].forEach((col) => { if (filter.source === col.column_name) { filterCols.unshift(col); } else if (filter.test(col.column_name)) { @@ -104,7 +104,7 @@ export default Ember.Component.extend({ tables.push({ name: key, columns: filterCols, - open: haveFilter + open: haveFilter, }); } } @@ -113,7 +113,7 @@ export default Ember.Component.extend({ }, @observes("filter") - triggerFilter: debounce(function() { + triggerFilter: debounce(function () { this.set("filteredTables", this.filterTables(this.transformedSchema)); this.set("loading", false); }, 500), @@ -128,5 +128,5 @@ export default Ember.Component.extend({ this.set("loading", true); this.triggerFilter(); - } + }, }); diff --git a/assets/javascripts/discourse/components/group-reports-nav-item.js.es6 b/assets/javascripts/discourse/components/group-reports-nav-item.js.es6 index 04c3d9c..136d7ad 100644 --- a/assets/javascripts/discourse/components/group-reports-nav-item.js.es6 +++ b/assets/javascripts/discourse/components/group-reports-nav-item.js.es6 @@ -5,7 +5,7 @@ export default Ember.Component.extend({ showReportsTab: false, checkForReports() { - return ajax(`/g/${this.group.name}/reports`).then(response => { + return ajax(`/g/${this.group.name}/reports`).then((response) => { return this.set("showReportsTab", response.queries.length > 0); }); }, @@ -13,12 +13,12 @@ export default Ember.Component.extend({ init(args) { this.set("group", args.group); if ( - (this.get("currentUser.groups") || []).some(g => g.id === this.group.id) + (this.get("currentUser.groups") || []).some((g) => g.id === this.group.id) ) { // User is a part of the group. Now check if the group has reports this.checkForReports(); } this._super(args); - } + }, }); diff --git a/assets/javascripts/discourse/components/json-file-uploader.js.es6 b/assets/javascripts/discourse/components/json-file-uploader.js.es6 index 3b0549e..4ab4cfd 100644 --- a/assets/javascripts/discourse/components/json-file-uploader.js.es6 +++ b/assets/javascripts/discourse/components/json-file-uploader.js.es6 @@ -1,7 +1,7 @@ import { default as computed, on, - observes + observes, } from "discourse-common/utils/decorators"; export default Ember.Component.extend({ @@ -20,21 +20,21 @@ export default Ember.Component.extend({ $(fileInput).on("change", () => this.fileSelected(fileInput.files)); - $this.on("dragover", e => { + $this.on("dragover", (e) => { if (e.preventDefault) e.preventDefault(); return false; }); - $this.on("dragenter", e => { + $this.on("dragenter", (e) => { if (e.preventDefault) e.preventDefault(); this.set("hover", this.hover + 1); return false; }); - $this.on("dragleave", e => { + $this.on("dragleave", (e) => { if (e.preventDefault) e.preventDefault(); this.set("hover", this.hover - 1); return false; }); - $this.on("drop", e => { + $this.on("drop", (e) => { if (e.preventDefault) e.preventDefault(); this.set("hover", 0); @@ -73,7 +73,7 @@ export default Ember.Component.extend({ actions: { selectFile() { $(this.fileInput).click(); - } + }, }, fileSelected(fileList) { @@ -82,7 +82,7 @@ export default Ember.Component.extend({ files[i] = fileList[i]; } const fileNameRegex = /\.(json|txt)$/; - files = files.filter(file => { + files = files.filter((file) => { if (fileNameRegex.test(file.name)) { return true; } @@ -96,10 +96,10 @@ export default Ember.Component.extend({ this.set("loading", true); const reader = new FileReader(); - reader.onload = evt => { + reader.onload = (evt) => { this.setProperties({ value: evt.target.result, loading: false }); }; reader.readAsText(firstFile); - } + }, }); diff --git a/assets/javascripts/discourse/components/param-input.js.es6 b/assets/javascripts/discourse/components/param-input.js.es6 index 3d42511..0369054 100644 --- a/assets/javascripts/discourse/components/param-input.js.es6 +++ b/assets/javascripts/discourse/components/param-input.js.es6 @@ -1,3 +1,4 @@ +import I18n from "I18n"; import { default as computed } from "discourse-common/utils/decorators"; // import Category from 'discourse/models/category'; @@ -20,7 +21,7 @@ const layoutMap = { badge_id: "generic", int_list: "generic", string_list: "generic", - user_list: "user_list" + user_list: "user_list", }; function allowsInputTypeTime() { @@ -40,7 +41,7 @@ export default Ember.Component.extend({ boolTypes: [ { name: I18n.t("explorer.types.bool.true"), id: "Y" }, { name: I18n.t("explorer.types.bool.false"), id: "N" }, - { name: I18n.t("explorer.types.bool.null_"), id: "#null" } + { name: I18n.t("explorer.types.bool.null_"), id: "#null" }, ], value: Ember.computed("params", "info.identifier", { @@ -50,7 +51,7 @@ export default Ember.Component.extend({ set(key, value) { this.params[this.get("info.identifier")] = value.toString(); return value; - } + }, }), valueBool: Ember.computed("params", "info.identifier", { @@ -61,7 +62,7 @@ export default Ember.Component.extend({ value = !!value; this.params[this.get("info.identifier")] = value.toString(); return value; - } + }, }), @computed("value", "info.type", "info.nullable") @@ -88,7 +89,7 @@ export default Ember.Component.extend({ /^(-?)NaN$/i.test(value) ); case "int_list": - return value.split(",").every(i => /^(-?\d+|null)$/.test(i.trim())); + return value.split(",").every((i) => /^(-?\d+|null)$/.test(i.trim())); case "post_id": return isPositiveInt || /\d+\/\d+(\?u=.*)?$/.test(value); case "category_id": @@ -97,7 +98,7 @@ export default Ember.Component.extend({ } if (isPositiveInt) { - return !!this.site.categories.find(c => c.id === intVal); + return !!this.site.categories.find((c) => c.id === intVal); } else if (/\//.test(value)) { const match = /(.*)\/(.*)/.exec(value); if (!match) return false; @@ -112,9 +113,9 @@ export default Ember.Component.extend({ case "group_id": const groups = this.site.get("groups"); if (isPositiveInt) { - return !!groups.find(g => g.id === intVal); + return !!groups.find((g) => g.id === intVal); } else { - return !!groups.find(g => g.name === value); + return !!groups.find((g) => g.name === value); } } return true; @@ -134,5 +135,5 @@ export default Ember.Component.extend({ @computed("layoutType") layoutName(layoutType) { return `admin/components/q-params/${layoutType}`; - } + }, }); diff --git a/assets/javascripts/discourse/components/query-result.js.es6 b/assets/javascripts/discourse/components/query-result.js.es6 index dc8d42f..c8dc39d 100644 --- a/assets/javascripts/discourse/components/query-result.js.es6 +++ b/assets/javascripts/discourse/components/query-result.js.es6 @@ -1,3 +1,4 @@ +import I18n from "I18n"; import { ajax } from "discourse/lib/ajax"; import getURL from "discourse-common/lib/get-url"; import Badge from "discourse/models/badge"; @@ -13,7 +14,7 @@ function randomIdShort() { function transformedRelTable(table, modelClass) { const result = {}; - table.forEach(item => { + table.forEach((item) => { if (modelClass) { result[item.id] = modelClass.create(item); } else { @@ -62,7 +63,7 @@ const QueryResultComponent = Ember.Component.extend({ @computed("content.duration") duration(contentDuration) { return I18n.t("explorer.run_time", { - value: I18n.toNumber(contentDuration, { precision: 1 }) + value: I18n.toNumber(contentDuration, { precision: 1 }), }); }, @@ -82,7 +83,7 @@ const QueryResultComponent = Ember.Component.extend({ if (!columns) { return []; } - return columns.map(colName => { + return columns.map((colName) => { if (colName.endsWith("_id")) { return colName.slice(0, -3); } @@ -201,7 +202,7 @@ const QueryResultComponent = Ember.Component.extend({ addInput("explain", this.hasExplain); addInput("limit", "1000000"); - ajax("/session/csrf.json").then(csrf => { + ajax("/session/csrf.json").then((csrf) => { addInput("authenticity_token", csrf.csrf); document.body.appendChild(form); @@ -216,8 +217,8 @@ const QueryResultComponent = Ember.Component.extend({ }, downloadResultCsv() { this.downloadResult("csv"); - } - } + }, + }, }); export default QueryResultComponent; diff --git a/assets/javascripts/discourse/components/query-row-content.js.es6 b/assets/javascripts/discourse/components/query-row-content.js.es6 index 4256601..ab2aa3f 100644 --- a/assets/javascripts/discourse/components/query-row-content.js.es6 +++ b/assets/javascripts/discourse/components/query-row-content.js.es6 @@ -1,3 +1,4 @@ +import Handlebars from "handlebars"; import { categoryLinkHTML } from "discourse/helpers/category-link"; import { autoUpdatingRelativeAge } from "discourse/lib/formatter"; import { iconHTML, convertIconClass } from "discourse-common/lib/icon-library"; @@ -19,7 +20,7 @@ function icon_or_image_replacement(str, ctx) { function category_badge_replacement(str, ctx) { const category = Ember.get(ctx.contexts[0], str); return categoryLinkHTML(category, { - allowUncategorized: true + allowUncategorized: true, }); } @@ -57,7 +58,7 @@ const QueryRowContentComponent = Ember.Component.extend({ const helpers = { "icon-or-image": icon_or_image_replacement, "category-link": category_badge_replacement, - reltime: bound_date_replacement + reltime: bound_date_replacement, }; const parts = this.columnTemplates.map((t, idx) => { @@ -67,7 +68,7 @@ const QueryRowContentComponent = Ember.Component.extend({ const ctx = { value, id, - baseuri: Discourse.BaseUri === "/" ? "" : Discourse.BaseUri + baseuri: Discourse.BaseUri === "/" ? "" : Discourse.BaseUri, }; const params = {}; @@ -101,7 +102,7 @@ const QueryRowContentComponent = Ember.Component.extend({ }); this.set("rowContents", `${parts.join("")}`.htmlSafe()); - } + }, }); export default QueryRowContentComponent; diff --git a/assets/javascripts/discourse/components/share-report.js.es6 b/assets/javascripts/discourse/components/share-report.js.es6 index ac5ab14..5c5f59d 100644 --- a/assets/javascripts/discourse/components/share-report.js.es6 +++ b/assets/javascripts/discourse/components/share-report.js.es6 @@ -61,17 +61,13 @@ export default Ember.Component.extend({ open() { this.set("visible", true); window.setTimeout( - () => - $(this.element) - .find("input") - .select() - .focus(), + () => $(this.element).find("input").select().focus(), 160 ); }, close() { this.set("visible", false); - } - } + }, + }, }); diff --git a/assets/javascripts/discourse/controllers/admin-plugins-explorer.js.es6 b/assets/javascripts/discourse/controllers/admin-plugins-explorer.js.es6 index d55de08..07dd278 100644 --- a/assets/javascripts/discourse/controllers/admin-plugins-explorer.js.es6 +++ b/assets/javascripts/discourse/controllers/admin-plugins-explorer.js.es6 @@ -4,7 +4,7 @@ import { popupAjaxError } from "discourse/lib/ajax-error"; import { ajax } from "discourse/lib/ajax"; import { default as computed, - observes + observes, } from "discourse-common/utils/decorators"; const NoQuery = Query.create({ name: "No queries", fake: true, group_ids: [] }); @@ -34,7 +34,7 @@ export default Ember.Controller.extend({ filteredContent(search) { const regexp = new RegExp(search, "i"); return this.sortedQueries.filter( - result => regexp.test(result.name) || regexp.test(result.description) + (result) => regexp.test(result.name) || regexp.test(result.description) ); }, @@ -58,22 +58,23 @@ export default Ember.Controller.extend({ @computed("selectedItem", "editing") selectedGroupNames() { const groupIds = this.selectedItem.group_ids || []; - const groupNames = groupIds.map(id => { - return this.groupOptions.find(groupOption => groupOption.id === id).name; + const groupNames = groupIds.map((id) => { + return this.groupOptions.find((groupOption) => groupOption.id === id) + .name; }); return groupNames.join(", "); }, @computed("groups") groupOptions(groups) { - return groups.map(g => { + return groups.map((g) => { return { id: g.id, name: g.name }; }); }, @computed("selectedItem", "selectedItem.dirty") othersDirty(selectedItem) { - return !!this.model.find(q => q !== selectedItem && q.dirty); + return !!this.model.find((q) => q !== selectedItem && q.dirty); }, @observes("editing") @@ -90,7 +91,7 @@ export default Ember.Controller.extend({ this.setProperties({ showResults: false, results: null, - editing: true + editing: true, }); }, @@ -106,7 +107,7 @@ export default Ember.Controller.extend({ query.markNotDirty(); this.set("editing", false); }) - .catch(x => { + .catch((x) => { popupAjaxError(x); throw x; }) @@ -149,7 +150,7 @@ export default Ember.Controller.extend({ showResults: false, editDisabled: false, selectedQueryId: null, - sortBy: ["last_run_at:desc"] + sortBy: ["last_run_at:desc"], }); this.send("refreshModel"); this.transitionToRoute("adminPlugins.explorer"); @@ -184,12 +185,12 @@ export default Ember.Controller.extend({ this.setProperties({ loading: true, showCreate: false, - showRecentQueries: false + showRecentQueries: false, }); this.store .createRecord("query", { name }) .save() - .then(result => this.addCreatedRecord(result.target)) + .then((result) => this.addCreatedRecord(result.target)) .catch(popupAjaxError) .finally(() => this.set("loading", false)); }, @@ -198,7 +199,7 @@ export default Ember.Controller.extend({ this.set("loading", true); this.store .find("query", this.get("selectedItem.id")) - .then(result => { + .then((result) => { const query = this.get("selectedItem"); query.setProperties(result.getProperties(Query.updatePropertyNames)); if (!query.group_ids || !Array.isArray(query.group_ids)) @@ -249,11 +250,11 @@ export default Ember.Controller.extend({ type: "POST", data: { params: JSON.stringify(this.get("selectedItem.params")), - explain: this.explain - } + explain: this.explain, + }, } ) - .then(result => { + .then((result) => { this.set("results", result); if (!result.success) { this.set("showResults", false); @@ -262,7 +263,7 @@ export default Ember.Controller.extend({ this.set("showResults", true); }) - .catch(err => { + .catch((err) => { this.set("showResults", false); if (err.jqXHR && err.jqXHR.status === 422 && err.jqXHR.responseJSON) { this.set("results", err.jqXHR.responseJSON); @@ -271,6 +272,6 @@ export default Ember.Controller.extend({ } }) .finally(() => this.set("loading", false)); - } - } + }, + }, }); diff --git a/assets/javascripts/discourse/controllers/group-reports-index.js.es6 b/assets/javascripts/discourse/controllers/group-reports-index.js.es6 index caa8ba1..6b946b1 100644 --- a/assets/javascripts/discourse/controllers/group-reports-index.js.es6 +++ b/assets/javascripts/discourse/controllers/group-reports-index.js.es6 @@ -1,3 +1,3 @@ export default Ember.Controller.extend({ - queries: Ember.computed.alias("model.queries") + queries: Ember.computed.alias("model.queries"), }); diff --git a/assets/javascripts/discourse/controllers/group-reports-show.js.es6 b/assets/javascripts/discourse/controllers/group-reports-show.js.es6 index ed516b7..708f866 100644 --- a/assets/javascripts/discourse/controllers/group-reports-show.js.es6 +++ b/assets/javascripts/discourse/controllers/group-reports-show.js.es6 @@ -15,10 +15,10 @@ export default Ember.Controller.extend({ type: "POST", data: { params: JSON.stringify(this.model.params), - explain: this.explain - } + explain: this.explain, + }, }) - .then(result => { + .then((result) => { this.set("results", result); if (!result.success) { return; @@ -26,7 +26,7 @@ export default Ember.Controller.extend({ this.set("showResults", true); }) - .catch(err => { + .catch((err) => { if (err.jqXHR && err.jqXHR.status === 422 && err.jqXHR.responseJSON) { this.set("results", err.jqXHR.responseJSON); } else { @@ -34,6 +34,6 @@ export default Ember.Controller.extend({ } }) .finally(() => this.set("loading", false)); - } - } + }, + }, }); diff --git a/assets/javascripts/discourse/controllers/import-query.js.es6 b/assets/javascripts/discourse/controllers/import-query.js.es6 index 21d6411..8cc3b5f 100644 --- a/assets/javascripts/discourse/controllers/import-query.js.es6 +++ b/assets/javascripts/discourse/controllers/import-query.js.es6 @@ -30,7 +30,7 @@ export default Ember.Controller.extend(ModalFunctionality, { this.store .createRecord("query", object) .save() - .then(query => { + .then((query) => { this.send("closeModal"); this.set("loading", false); @@ -38,6 +38,6 @@ export default Ember.Controller.extend(ModalFunctionality, { parentController.addCreatedRecord(query.target); }) .catch(popupAjaxError); - } - } + }, + }, }); diff --git a/assets/javascripts/discourse/explorer-route-map.js.es6 b/assets/javascripts/discourse/explorer-route-map.js.es6 index ed720a2..985d520 100644 --- a/assets/javascripts/discourse/explorer-route-map.js.es6 +++ b/assets/javascripts/discourse/explorer-route-map.js.es6 @@ -3,5 +3,5 @@ export default { path: "/plugins", map() { this.route("explorer"); - } + }, }; diff --git a/assets/javascripts/discourse/group-reports-route-map.js.es6 b/assets/javascripts/discourse/group-reports-route-map.js.es6 index f354996..d8a3bfe 100644 --- a/assets/javascripts/discourse/group-reports-route-map.js.es6 +++ b/assets/javascripts/discourse/group-reports-route-map.js.es6 @@ -2,8 +2,8 @@ export default { resource: "group", map() { - this.route("reports", function() { + this.route("reports", function () { this.route("show", { path: "/:query_id" }); }); - } + }, }; diff --git a/assets/javascripts/discourse/initializers/initialize-data-explorer.js.es6 b/assets/javascripts/discourse/initializers/initialize-data-explorer.js.es6 index 82e4284..b8da6ae 100644 --- a/assets/javascripts/discourse/initializers/initialize-data-explorer.js.es6 +++ b/assets/javascripts/discourse/initializers/initialize-data-explorer.js.es6 @@ -5,7 +5,7 @@ export default { if (!String.prototype.endsWith) { // eslint-disable-next-line no-extend-native - String.prototype.endsWith = function(searchString, position) { + String.prototype.endsWith = function (searchString, position) { const subjectString = this.toString(); if (position === undefined || position > subjectString.length) { position = subjectString.length; @@ -15,5 +15,5 @@ export default { return lastIndex !== -1 && lastIndex === position; }; } - } + }, }; diff --git a/assets/javascripts/discourse/models/query.js.es6 b/assets/javascripts/discourse/models/query.js.es6 index b0ccf94..7380146 100644 --- a/assets/javascripts/discourse/models/query.js.es6 +++ b/assets/javascripts/discourse/models/query.js.es6 @@ -1,7 +1,7 @@ import { default as computed, on, - observes + observes, } from "discourse-common/utils/decorators"; import getURL from "discourse-common/lib/get-url"; import RestModel from "discourse/models/rest"; @@ -39,7 +39,7 @@ const Query = RestModel.extend({ const newParams = {}; const oldParams = this.params; const paramInfo = this.param_info || []; - paramInfo.forEach(pinfo => { + paramInfo.forEach((pinfo) => { const name = pinfo.identifier; if (oldParams[pinfo.identifier]) { newParams[name] = oldParams[name]; @@ -74,7 +74,7 @@ const Query = RestModel.extend({ props.id = this.id; } return props; - } + }, }); Query.reopenClass({ @@ -85,8 +85,8 @@ Query.reopenClass({ "user_id", "created_at", "group_ids", - "last_run_at" - ] + "last_run_at", + ], }); export default Query; diff --git a/assets/javascripts/discourse/routes/admin-plugins-explorer.js.es6 b/assets/javascripts/discourse/routes/admin-plugins-explorer.js.es6 index a22bd9f..4bad072 100644 --- a/assets/javascripts/discourse/routes/admin-plugins-explorer.js.es6 +++ b/assets/javascripts/discourse/routes/admin-plugins-explorer.js.es6 @@ -7,23 +7,23 @@ export default DiscourseRoute.extend({ model() { const groupPromise = ajax("/admin/plugins/explorer/groups.json"); const schemaPromise = ajax("/admin/plugins/explorer/schema.json", { - cache: true + cache: true, }); const queryPromise = this.store.findAll("query"); return groupPromise - .then(groups => { + .then((groups) => { let groupNames = {}; - groups.forEach(g => { + groups.forEach((g) => { groupNames[g.id] = g.name; }); - return schemaPromise.then(schema => { - return queryPromise.then(model => { - model.forEach(query => { + return schemaPromise.then((schema) => { + return queryPromise.then((model) => { + model.forEach((query) => { query.markNotDirty(); query.set( "group_names", - (query.group_ids || []).map(id => groupNames[id]) + (query.group_ids || []).map((id) => groupNames[id]) ); }); return { model, schema, groups }; @@ -45,6 +45,6 @@ export default DiscourseRoute.extend({ refreshModel() { this.refresh(); return false; - } - } + }, + }, }); diff --git a/assets/javascripts/discourse/routes/group-reports-index.js.es6 b/assets/javascripts/discourse/routes/group-reports-index.js.es6 index 9e1d535..fce105e 100644 --- a/assets/javascripts/discourse/routes/group-reports-index.js.es6 +++ b/assets/javascripts/discourse/routes/group-reports-index.js.es6 @@ -7,10 +7,10 @@ export default DiscourseRoute.extend({ model() { const group = this.modelFor("group"); return ajax(`/g/${group.name}/reports`) - .then(queries => { + .then((queries) => { return { model: queries, - group + group, }; }) .catch(() => this.transitionTo("group.members", group)); @@ -33,6 +33,6 @@ export default DiscourseRoute.extend({ refreshModel() { this.refresh(); return false; - } - } + }, + }, }); diff --git a/assets/javascripts/discourse/routes/group-reports-show.js.es6 b/assets/javascripts/discourse/routes/group-reports-show.js.es6 index 9062e94..a1b5c9a 100644 --- a/assets/javascripts/discourse/routes/group-reports-show.js.es6 +++ b/assets/javascripts/discourse/routes/group-reports-show.js.es6 @@ -7,7 +7,7 @@ export default DiscourseRoute.extend({ model(params) { const group = this.modelFor("group"); return ajax(`/g/${group.name}/reports/${params.query_id}`) - .then(response => { + .then((response) => { const queryParamInfo = response.query.param_info; const queryParams = queryParamInfo.reduce((acc, param) => { acc[param.identifier] = param.default; @@ -16,7 +16,7 @@ export default DiscourseRoute.extend({ return { model: Object.assign({ params: queryParams }, response.query), - group + group, }; }) .catch(() => { @@ -32,6 +32,6 @@ export default DiscourseRoute.extend({ refreshModel() { this.refresh(); return false; - } - } + }, + }, }); diff --git a/package.json b/package.json index f69c39e..f63217c 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,5 @@ { "dependencies": { - "babel-eslint": "^10.0.3", - "eslint": "^6.3.0", - "prettier": "^1.18.2" + "eslint-config-discourse": "latest" } } diff --git a/yarn.lock b/yarn.lock index 9b96cf9..0faf4e3 100644 --- a/yarn.lock +++ b/yarn.lock @@ -94,6 +94,68 @@ lodash "^4.17.13" to-fast-properties "^2.0.0" +"@ember-data/rfc395-data@^0.0.4": + version "0.0.4" + resolved "https://registry.yarnpkg.com/@ember-data/rfc395-data/-/rfc395-data-0.0.4.tgz#ecb86efdf5d7733a76ff14ea651a1b0ed1f8a843" + integrity sha512-tGRdvgC9/QMQSuSuJV45xoyhI0Pzjm7A9o/MVVA3HakXIImJbbzx/k/6dO9CUEQXIyS2y0fW6C1XaYOG7rY0FQ== + +"@glimmer/env@0.1.7": + version "0.1.7" + resolved "https://registry.yarnpkg.com/@glimmer/env/-/env-0.1.7.tgz#fd2d2b55a9029c6b37a6c935e8c8871ae70dfa07" + integrity sha1-/S0rVakCnGs3psk16MiHGucN+gc= + +"@glimmer/interfaces@^0.54.2": + version "0.54.2" + resolved "https://registry.yarnpkg.com/@glimmer/interfaces/-/interfaces-0.54.2.tgz#d7735869050ca7e1731424aa64ae37b1cb853091" + integrity sha512-Gqvr6Eh4Xy7lF14GZi6RbnVeA7gDj2pXMJtdh68TFL2u/VqfhTXy4+IFRvUh4bpJj+1YayNFupuJSn0oVrEDGQ== + dependencies: + "@simple-dom/interface" "^1.4.0" + +"@glimmer/syntax@^0.54.1": + version "0.54.2" + resolved "https://registry.yarnpkg.com/@glimmer/syntax/-/syntax-0.54.2.tgz#60d08458002c106791d4c5b648227ec0f29a1b2a" + integrity sha512-EpQGbbzfvBmeztc15SsriyAgD0aKgsxMOARVtW5buvCPw3dGYYNdSeyUJ3vInbrFGxkZLV390ht8VCbsDbqtlA== + dependencies: + "@glimmer/interfaces" "^0.54.2" + "@glimmer/util" "^0.54.2" + handlebars "^4.7.4" + simple-html-tokenizer "^0.5.9" + +"@glimmer/util@^0.54.2": + version "0.54.2" + resolved "https://registry.yarnpkg.com/@glimmer/util/-/util-0.54.2.tgz#211b027982006b6bcd393312cf474c7ee17922a0" + integrity sha512-ggJY3qayAxjiMuoToxxtwai+AI2KXrJSbOEvbvBV9K+IMykmdjhWGRWWEONnd9xJzQDlus5D9ROMypOEvsbS9w== + dependencies: + "@glimmer/env" "0.1.7" + "@glimmer/interfaces" "^0.54.2" + "@simple-dom/interface" "^1.4.0" + +"@nodelib/fs.scandir@2.1.3": + version "2.1.3" + resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.3.tgz#3a582bdb53804c6ba6d146579c46e52130cf4a3b" + integrity sha512-eGmwYQn3gxo4r7jdQnkrrN6bY478C3P+a/y72IJukF8LjB6ZHeB3c+Ehacj3sYeSmUXGlnA67/PmbM9CVwL7Dw== + dependencies: + "@nodelib/fs.stat" "2.0.3" + run-parallel "^1.1.9" + +"@nodelib/fs.stat@2.0.3", "@nodelib/fs.stat@^2.0.2": + version "2.0.3" + resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-2.0.3.tgz#34dc5f4cabbc720f4e60f75a747e7ecd6c175bd3" + integrity sha512-bQBFruR2TAwoevBEd/NWMoAAtNGzTRgdrqnYCc7dhzfoNvqPzLyqlEQnzZ3kVnNrSp25iyxE00/3h2fqGAGArA== + +"@nodelib/fs.walk@^1.2.3": + version "1.2.4" + resolved "https://registry.yarnpkg.com/@nodelib/fs.walk/-/fs.walk-1.2.4.tgz#011b9202a70a6366e436ca5c065844528ab04976" + integrity sha512-1V9XOY4rDW0rehzbrcqAmHnz8e7SKvX27gh8Gt2WgB0+pdzdiLV83p72kZPU+jvMbS1qU5mauP2iOvO8rhmurQ== + dependencies: + "@nodelib/fs.scandir" "2.1.3" + fastq "^1.6.0" + +"@simple-dom/interface@^1.4.0": + version "1.4.0" + resolved "https://registry.yarnpkg.com/@simple-dom/interface/-/interface-1.4.0.tgz#e8feea579232017f89b0138e2726facda6fbb71f" + integrity sha512-l5qumKFWU0S+4ZzMaLXFU8tQZsicHEMEyAxI5kDFGhJsRqDwe0a7/iPA/GdxlGyDKseQQAgIz5kzU7eXTrlSpA== + "@types/color-name@^1.1.1": version "1.1.1" resolved "https://registry.yarnpkg.com/@types/color-name/-/color-name-1.1.1.tgz#1c1261bbeaa10a8055bbc5d8ab84b7b2afc846a0" @@ -143,7 +205,7 @@ ansi-styles@^3.2.0, ansi-styles@^3.2.1: dependencies: color-convert "^1.9.0" -ansi-styles@^4.1.0: +ansi-styles@^4.0.0, ansi-styles@^4.1.0: version "4.2.1" resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.2.1.tgz#90ae75c424d008d2624c5bf29ead3177ebfcf359" integrity sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA== @@ -158,12 +220,32 @@ argparse@^1.0.7: dependencies: sprintf-js "~1.0.2" +array-union@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/array-union/-/array-union-2.1.0.tgz#b798420adbeb1de828d84acd8a2e23d3efe85e8d" + integrity sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw== + astral-regex@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-1.0.0.tgz#6c8c3fb827dd43ee3918f27b82782ab7658a6fd9" integrity sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg== -babel-eslint@^10.0.3: +async-promise-queue@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/async-promise-queue/-/async-promise-queue-1.0.5.tgz#cb23bce9fce903a133946a700cc85f27f09ea49d" + integrity sha512-xi0aQ1rrjPWYmqbwr18rrSKbSaXIeIwSd1J4KAgVfkq8utNbdZoht7GfvfY6swFUAMJ9obkc4WPJmtGwl+B8dw== + dependencies: + async "^2.4.1" + debug "^2.6.8" + +async@^2.4.1: + version "2.6.3" + resolved "https://registry.yarnpkg.com/async/-/async-2.6.3.tgz#d72625e2344a3656e3a3ad4fa749fa83299d82ff" + integrity sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg== + dependencies: + lodash "^4.17.14" + +babel-eslint@^10.1.0: version "10.1.0" resolved "https://registry.yarnpkg.com/babel-eslint/-/babel-eslint-10.1.0.tgz#6968e568a910b78fb3779cdd8b6ac2f479943232" integrity sha512-ifWaTHQ0ce+448CYop8AdrQiBsGrnC+bMgfyKFdi6EsPLTAWG+QfyDeM6OH+FmWnKvEq5NnBMLvlBUPKQZoDSg== @@ -188,12 +270,24 @@ brace-expansion@^1.1.7: balanced-match "^1.0.0" concat-map "0.0.1" +braces@^3.0.1: + version "3.0.2" + resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107" + integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A== + dependencies: + fill-range "^7.0.1" + callsites@^3.0.0: version "3.1.0" resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== -chalk@^2.0.0, chalk@^2.1.0: +camelcase@^5.0.0: + version "5.3.1" + resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320" + integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== + +chalk@^2.0.0, chalk@^2.1.0, chalk@^2.4.2: version "2.4.2" resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== @@ -210,6 +304,14 @@ chalk@^3.0.0: ansi-styles "^4.1.0" supports-color "^7.1.0" +chalk@^4.0.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.0.tgz#4e14870a618d9e2edd97dd8345fd9d9dc315646a" + integrity sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A== + dependencies: + ansi-styles "^4.1.0" + supports-color "^7.1.0" + chardet@^0.7.0: version "0.7.0" resolved "https://registry.yarnpkg.com/chardet/-/chardet-0.7.0.tgz#90094849f0937f2eedc2425d0d28a9e5f0cbad9e" @@ -222,11 +324,30 @@ cli-cursor@^3.1.0: dependencies: restore-cursor "^3.1.0" +cli-spinners@^2.2.0: + version "2.4.0" + resolved "https://registry.yarnpkg.com/cli-spinners/-/cli-spinners-2.4.0.tgz#c6256db216b878cfba4720e719cec7cf72685d7f" + integrity sha512-sJAofoarcm76ZGpuooaO0eDy8saEy+YoZBLjC4h8srt4jeBnkYeOgqxgsJQTpyt2LjI5PTfLJHSL+41Yu4fEJA== + cli-width@^2.0.0: version "2.2.1" resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-2.2.1.tgz#b0433d0b4e9c847ef18868a4ef16fd5fc8271c48" integrity sha512-GRMWDxpOB6Dgk2E5Uo+3eEBvtOOlimMmpbFiKuLFnQzYDavtLFY3K5ona41jgN/WdRZtG7utuVSVTL4HbZHGkw== +cliui@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/cliui/-/cliui-6.0.0.tgz#511d702c0c4e41ca156d7d0e96021f23e13225b1" + integrity sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ== + dependencies: + string-width "^4.2.0" + strip-ansi "^6.0.0" + wrap-ansi "^6.2.0" + +clone@^1.0.2: + version "1.0.4" + resolved "https://registry.yarnpkg.com/clone/-/clone-1.0.4.tgz#da309cc263df15994c688ca902179ca3c7cd7c7e" + integrity sha1-2jCcwmPfFZlMaIypAheco8fNfH4= + color-convert@^1.9.0: version "1.9.3" resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" @@ -251,6 +372,16 @@ color-name@~1.1.4: resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== +colors@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/colors/-/colors-1.4.0.tgz#c50491479d4c1bdaed2c9ced32cf7c7dc2360f78" + integrity sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA== + +commander@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/commander/-/commander-5.1.0.tgz#46abbd1652f8e059bddaef99bbdcb2ad9cf179ae" + integrity sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg== + concat-map@0.0.1: version "0.0.1" resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" @@ -267,6 +398,13 @@ cross-spawn@^6.0.5: shebang-command "^1.2.0" which "^1.2.9" +debug@^2.6.8: + version "2.6.9" + resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" + integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== + dependencies: + ms "2.0.0" + debug@^4.0.1, debug@^4.1.0: version "4.1.1" resolved "https://registry.yarnpkg.com/debug/-/debug-4.1.1.tgz#3b72260255109c6b589cee050f1d516139664791" @@ -274,11 +412,30 @@ debug@^4.0.1, debug@^4.1.0: dependencies: ms "^2.1.1" +decamelize@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" + integrity sha1-9lNNFRSCabIDUue+4m9QH5oZEpA= + deep-is@~0.1.3: version "0.1.3" resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34" integrity sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ= +defaults@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/defaults/-/defaults-1.0.3.tgz#c656051e9817d9ff08ed881477f3fe4019f3ef7d" + integrity sha1-xlYFHpgX2f8I7YgUd/P+QBnz730= + dependencies: + clone "^1.0.2" + +dir-glob@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/dir-glob/-/dir-glob-3.0.1.tgz#56dbf73d992a4a93ba1584f4534063fd2e41717f" + integrity sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA== + dependencies: + path-type "^4.0.0" + doctrine@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-3.0.0.tgz#addebead72a6574db783639dc87a121773973961" @@ -286,6 +443,47 @@ doctrine@^3.0.0: dependencies: esutils "^2.0.2" +ember-rfc176-data@^0.3.11: + version "0.3.15" + resolved "https://registry.yarnpkg.com/ember-rfc176-data/-/ember-rfc176-data-0.3.15.tgz#af3f1da5a0339b6feda380edc2f7190e0f416c2d" + integrity sha512-GPKa7zRDBblRy0orxTXt5yrpp/Pf5CkuRFSIR8qMFDww0CqCKjCRwdZnWYzCM4kAEfZnXRIDDefe1tBaFw7v7w== + +ember-template-lint-plugin-discourse@latest: + version "1.0.1" + resolved "https://registry.yarnpkg.com/ember-template-lint-plugin-discourse/-/ember-template-lint-plugin-discourse-1.0.1.tgz#518f5a925f4bab2466315865e85cad1fd555ca00" + integrity sha512-BMd5QyUCTRFgIYXlzS0yO5nfg3U4oZ/UpFEYw7KuZ/zPbTSP17g22KfbCydi4ByaP5lw3jn3Fu/dIKQ9aCuoJQ== + +ember-template-lint@^2.11.0: + version "2.11.0" + resolved "https://registry.yarnpkg.com/ember-template-lint/-/ember-template-lint-2.11.0.tgz#90a074bd7ef86df07dca622c70debe7bce375ff2" + integrity sha512-GFjrhD73vgmSgk15dfT8xwPJdUh8WzmOR2FPdN26KGbB7bB1mJREf5QD+ddgXzi0o6oFGq6A0xhowpy0RwuNIQ== + dependencies: + chalk "^4.0.0" + ember-template-recast "^4.1.5" + find-up "^5.0.0" + get-stdin "^8.0.0" + globby "^11.0.1" + is-valid-glob "^1.0.0" + micromatch "^4.0.2" + resolve "^1.17.0" + v8-compile-cache "^2.1.1" + yargs "^15.4.1" + +ember-template-recast@^4.1.5: + version "4.1.5" + resolved "https://registry.yarnpkg.com/ember-template-recast/-/ember-template-recast-4.1.5.tgz#cc6581c9c7dff8b8345991326ee5b7c132757db3" + integrity sha512-+k4v1vmeSlqT8y5T/B25JE8iD1tkrs7TwDofMsqHgPw0Zr8hwdnx/FfB1ZqOscyiiaZiFvNh7eYv+vXaUtKJDg== + dependencies: + "@glimmer/syntax" "^0.54.1" + async-promise-queue "^1.0.5" + colors "^1.4.0" + commander "^5.1.0" + globby "^11.0.1" + ora "^4.0.4" + slash "^3.0.0" + tmp "^0.2.1" + workerpool "^6.0.0" + emoji-regex@^7.0.1: version "7.0.3" resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-7.0.3.tgz#933a04052860c85e83c122479c4748a8e4c72156" @@ -301,6 +499,62 @@ escape-string-regexp@^1.0.5: resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ= +eslint-config-discourse@latest: + version "1.1.3" + resolved "https://registry.yarnpkg.com/eslint-config-discourse/-/eslint-config-discourse-1.1.3.tgz#38b85e810cad72280073d659565bf25611331ac3" + integrity sha512-n6ZRuFPMVn+jHpszZhNQwFRsIG1mRq5LrFdbN/WNDW7ohk+iyYyLkwB8btJFms5CcfHLsiiey92EAh3oNavrpw== + dependencies: + babel-eslint "^10.1.0" + ember-template-lint "^2.11.0" + ember-template-lint-plugin-discourse latest + eslint "^6.8.0" + eslint-plugin-discourse-ember latest + eslint-plugin-ember "^6.10.0" + eslint-plugin-lodash "^7.1.0" + eslint-plugin-node "^8.0.0" + prettier "^2.1.1" + +eslint-plugin-discourse-ember@latest: + version "0.0.3" + resolved "https://registry.yarnpkg.com/eslint-plugin-discourse-ember/-/eslint-plugin-discourse-ember-0.0.3.tgz#69e5876c2ece38ab3d6c4a05f0a20a7dc4c21e37" + integrity sha512-EFwWU4FlOSLBa4RolKZL8QD1eGOnvSkACLt4Big+o1ZUIpW7gGvfnJPtxkbaQ4XmhtZ5HetYt6862vVqhUMv9A== + dependencies: + requireindex "~1.1.0" + +eslint-plugin-ember@^6.10.0: + version "6.10.1" + resolved "https://registry.yarnpkg.com/eslint-plugin-ember/-/eslint-plugin-ember-6.10.1.tgz#ca7a5cc28b91a247c31b1686421a66281467f238" + integrity sha512-RZI0+UoR4xeD6UE3KQCUwbN2nZOIIPaFCCXqBIRXDr0rFuwvknAHqYtDPJVZicvTzNHa4TEZvAKqfbE8t7SztQ== + dependencies: + "@ember-data/rfc395-data" "^0.0.4" + ember-rfc176-data "^0.3.11" + snake-case "^2.1.0" + +eslint-plugin-es@^1.3.1: + version "1.4.1" + resolved "https://registry.yarnpkg.com/eslint-plugin-es/-/eslint-plugin-es-1.4.1.tgz#12acae0f4953e76ba444bfd1b2271081ac620998" + integrity sha512-5fa/gR2yR3NxQf+UXkeLeP8FBBl6tSgdrAz1+cF84v1FMM4twGwQoqTnn+QxFLcPOrF4pdKEJKDB/q9GoyJrCA== + dependencies: + eslint-utils "^1.4.2" + regexpp "^2.0.1" + +eslint-plugin-lodash@^7.1.0: + version "7.1.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-lodash/-/eslint-plugin-lodash-7.1.0.tgz#5ad9bf1240a01c6c3f94e956213e2d6422af3192" + integrity sha512-BRkEI/+ZjmeDCM1DfzR+NVwYkC/+ChJhaOSm3Xm7rer/fs89TKU6AMtkQiDdqQel1wZ4IJM+B6hlep9xwVKaMQ== + +eslint-plugin-node@^8.0.0: + version "8.0.1" + resolved "https://registry.yarnpkg.com/eslint-plugin-node/-/eslint-plugin-node-8.0.1.tgz#55ae3560022863d141fa7a11799532340a685964" + integrity sha512-ZjOjbjEi6jd82rIpFSgagv4CHWzG9xsQAVp1ZPlhRnnYxcTgENUVBvhYmkQ7GvT1QFijUSo69RaiOJKhMu6i8w== + dependencies: + eslint-plugin-es "^1.3.1" + eslint-utils "^1.3.1" + ignore "^5.0.2" + minimatch "^3.0.4" + resolve "^1.8.1" + semver "^5.5.0" + eslint-scope@^5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-5.0.0.tgz#e87c8887c73e8d1ec84f1ca591645c358bfc8fb9" @@ -309,7 +563,7 @@ eslint-scope@^5.0.0: esrecurse "^4.1.0" estraverse "^4.1.1" -eslint-utils@^1.4.3: +eslint-utils@^1.3.1, eslint-utils@^1.4.2, eslint-utils@^1.4.3: version "1.4.3" resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-1.4.3.tgz#74fec7c54d0776b6f67e0251040b5806564e981f" integrity sha512-fbBN5W2xdY45KulGXmLHZ3c3FHfVYmKg0IrAKGOkT/464PQsx2UeIzfz1RmEci+KLm1bBaAzZAh8+/E+XAeZ8Q== @@ -321,7 +575,7 @@ eslint-visitor-keys@^1.0.0, eslint-visitor-keys@^1.1.0: resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-1.1.0.tgz#e2a82cea84ff246ad6fb57f9bde5b46621459ec2" integrity sha512-8y9YjtM1JBJU/A9Kc+SbaOV4y29sSWckBwMHa+FGtVj5gN/sbnKDf6xJUl+8g7FAij9LVaP8C24DUiH/f/2Z9A== -eslint@^6.3.0: +eslint@^6.8.0: version "6.8.0" resolved "https://registry.yarnpkg.com/eslint/-/eslint-6.8.0.tgz#62262d6729739f9275723824302fb227c8c93ffb" integrity sha512-K+Iayyo2LtyYhDSYwz5D5QdWw0hCacNzyq1Y821Xna2xSJj7cijoLLYmLxTQgcgZ9mC61nryMy9S7GRbYpI5Ig== @@ -421,6 +675,18 @@ fast-deep-equal@^3.1.1: resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.1.tgz#545145077c501491e33b15ec408c294376e94ae4" integrity sha512-8UEa58QDLauDNfpbrX55Q9jrGHThw2ZMdOky5Gl1CDtVeJDPVrG4Jxx1N8jw2gkWaff5UUuX1KJd+9zGe2B+ZA== +fast-glob@^3.1.1: + version "3.2.4" + resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.2.4.tgz#d20aefbf99579383e7f3cc66529158c9b98554d3" + integrity sha512-kr/Oo6PX51265qeuCYsyGypiO5uJFgBS0jksyG7FUeCyQzNwYnzrNIMR1NXfkZXsMYXYLRAHgISHBz8gQcxKHQ== + dependencies: + "@nodelib/fs.stat" "^2.0.2" + "@nodelib/fs.walk" "^1.2.3" + glob-parent "^5.1.0" + merge2 "^1.3.0" + micromatch "^4.0.2" + picomatch "^2.2.1" + fast-json-stable-stringify@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" @@ -431,6 +697,13 @@ fast-levenshtein@~2.0.6: resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" integrity sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc= +fastq@^1.6.0: + version "1.8.0" + resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.8.0.tgz#550e1f9f59bbc65fe185cb6a9b4d95357107f481" + integrity sha512-SMIZoZdLh/fgofivvIkmknUXyPnvxRE3DhtZ5Me3Mrsk5gyPL42F0xr51TdRXskBxHfMp+07bcYzfsYEsSQA9Q== + dependencies: + reusify "^1.0.4" + figures@^3.0.0: version "3.2.0" resolved "https://registry.yarnpkg.com/figures/-/figures-3.2.0.tgz#625c18bd293c604dc4a8ddb2febf0c88341746af" @@ -445,6 +718,29 @@ file-entry-cache@^5.0.1: dependencies: flat-cache "^2.0.1" +fill-range@^7.0.1: + version "7.0.1" + resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40" + integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ== + dependencies: + to-regex-range "^5.0.1" + +find-up@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-4.1.0.tgz#97afe7d6cdc0bc5928584b7c8d7b16e8a9aa5d19" + integrity sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw== + dependencies: + locate-path "^5.0.0" + path-exists "^4.0.0" + +find-up@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-5.0.0.tgz#4c92819ecb7083561e4f4a240a86be5198f536fc" + integrity sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng== + dependencies: + locate-path "^6.0.0" + path-exists "^4.0.0" + flat-cache@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-2.0.1.tgz#5d296d6f04bda44a4630a301413bdbc2ec085ec0" @@ -469,7 +765,17 @@ functional-red-black-tree@^1.0.1: resolved "https://registry.yarnpkg.com/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz#1b0ab3bd553b2a0d6399d29c0e3ea0b252078327" integrity sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc= -glob-parent@^5.0.0: +get-caller-file@^2.0.1: + version "2.0.5" + resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" + integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== + +get-stdin@^8.0.0: + version "8.0.0" + resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-8.0.0.tgz#cbad6a73feb75f6eeb22ba9e01f89aa28aa97a53" + integrity sha512-sY22aA6xchAzprjyqmSEQv4UbAAzRN0L2dQB0NlN5acTTK9Don6nhoc3eAbUnpZiCANAMfd/+40kVdKfFygohg== + +glob-parent@^5.0.0, glob-parent@^5.1.0: version "5.1.1" resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.1.tgz#b6c1ef417c4e5663ea498f1c45afac6916bbc229" integrity sha512-FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ== @@ -500,6 +806,30 @@ globals@^12.1.0: dependencies: type-fest "^0.8.1" +globby@^11.0.1: + version "11.0.1" + resolved "https://registry.yarnpkg.com/globby/-/globby-11.0.1.tgz#9a2bf107a068f3ffeabc49ad702c79ede8cfd357" + integrity sha512-iH9RmgwCmUJHi2z5o2l3eTtGBtXek1OYlHrbcxOYugyHLmAsZrPj43OtHThd62Buh/Vv6VyCBD2bdyWcGNQqoQ== + dependencies: + array-union "^2.1.0" + dir-glob "^3.0.1" + fast-glob "^3.1.1" + ignore "^5.1.4" + merge2 "^1.3.0" + slash "^3.0.0" + +handlebars@^4.7.4: + version "4.7.6" + resolved "https://registry.yarnpkg.com/handlebars/-/handlebars-4.7.6.tgz#d4c05c1baf90e9945f77aa68a7a219aa4a7df74e" + integrity sha512-1f2BACcBfiwAfStCKZNrUCgqNZkGsAT7UM3kkYtXuLo0KnaVfjKOyf7PRzB6++aK9STyT1Pd2ZCPe3EGOXleXA== + dependencies: + minimist "^1.2.5" + neo-async "^2.6.0" + source-map "^0.6.1" + wordwrap "^1.0.0" + optionalDependencies: + uglify-js "^3.1.4" + has-flag@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" @@ -522,6 +852,11 @@ ignore@^4.0.6: resolved "https://registry.yarnpkg.com/ignore/-/ignore-4.0.6.tgz#750e3db5862087b4737ebac8207ffd1ef27b25fc" integrity sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg== +ignore@^5.0.2, ignore@^5.1.4: + version "5.1.8" + resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.1.8.tgz#f150a8b50a34289b33e22f5889abd4d8016f0e57" + integrity sha512-BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw== + import-fresh@^3.0.0: version "3.2.1" resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.2.1.tgz#633ff618506e793af5ac91bf48b72677e15cbe66" @@ -589,6 +924,21 @@ is-glob@^4.0.0, is-glob@^4.0.1: dependencies: is-extglob "^2.1.1" +is-interactive@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-interactive/-/is-interactive-1.0.0.tgz#cea6e6ae5c870a7b0a0004070b7b587e0252912e" + integrity sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w== + +is-number@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" + integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== + +is-valid-glob@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-valid-glob/-/is-valid-glob-1.0.0.tgz#29bf3eff701be2d4d315dbacc39bc39fe8f601aa" + integrity sha1-Kb8+/3Ab4tTTFdusw5vDn+j2Aao= + isexe@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" @@ -630,11 +980,50 @@ levn@^0.3.0, levn@~0.3.0: prelude-ls "~1.1.2" type-check "~0.3.2" +locate-path@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-5.0.0.tgz#1afba396afd676a6d42504d0a67a3a7eb9f62aa0" + integrity sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g== + dependencies: + p-locate "^4.1.0" + +locate-path@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-6.0.0.tgz#55321eb309febbc59c4801d931a72452a681d286" + integrity sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw== + dependencies: + p-locate "^5.0.0" + lodash@^4.17.13, lodash@^4.17.14, lodash@^4.17.15: version "4.17.15" resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.15.tgz#b447f6670a0455bbfeedd11392eff330ea097548" integrity sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A== +log-symbols@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-3.0.0.tgz#f3a08516a5dea893336a7dee14d18a1cfdab77c4" + integrity sha512-dSkNGuI7iG3mfvDzUuYZyvk5dD9ocYCYzNU6CYDE6+Xqd+gwme6Z00NS3dUh8mq/73HaEtT7m6W+yUPtU6BZnQ== + dependencies: + chalk "^2.4.2" + +lower-case@^1.1.1: + version "1.1.4" + resolved "https://registry.yarnpkg.com/lower-case/-/lower-case-1.1.4.tgz#9a2cabd1b9e8e0ae993a4bf7d5875c39c42e8eac" + integrity sha1-miyr0bno4K6ZOkv31YdcOcQujqw= + +merge2@^1.3.0: + version "1.4.1" + resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae" + integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== + +micromatch@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.2.tgz#4fcb0999bf9fbc2fcbdd212f6d629b9a56c39259" + integrity sha512-y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q== + dependencies: + braces "^3.0.1" + picomatch "^2.0.5" + mimic-fn@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b" @@ -659,6 +1048,11 @@ mkdirp@^0.5.1: dependencies: minimist "^1.2.5" +ms@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" + integrity sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g= + ms@^2.1.1: version "2.1.2" resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" @@ -674,11 +1068,23 @@ natural-compare@^1.4.0: resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" integrity sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc= +neo-async@^2.6.0: + version "2.6.2" + resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.2.tgz#b4aafb93e3aeb2d8174ca53cf163ab7d7308305f" + integrity sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw== + nice-try@^1.0.4: version "1.0.5" resolved "https://registry.yarnpkg.com/nice-try/-/nice-try-1.0.5.tgz#a3378a7696ce7d223e88fc9b764bd7ef1089e366" integrity sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ== +no-case@^2.2.0: + version "2.3.2" + resolved "https://registry.yarnpkg.com/no-case/-/no-case-2.3.2.tgz#60b813396be39b3f1288a4c1ed5d1e7d28b464ac" + integrity sha512-rmTZ9kz+f3rCvK2TD1Ue/oZlns7OGoIWP4fc3llxxRXlOkHKoWPPWJOfFYpITabSow43QJbRIoHQXtt10VldyQ== + dependencies: + lower-case "^1.1.1" + once@^1.3.0: version "1.4.0" resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" @@ -705,11 +1111,58 @@ optionator@^0.8.3: type-check "~0.3.2" word-wrap "~1.2.3" +ora@^4.0.4: + version "4.1.1" + resolved "https://registry.yarnpkg.com/ora/-/ora-4.1.1.tgz#566cc0348a15c36f5f0e979612842e02ba9dddbc" + integrity sha512-sjYP8QyVWBpBZWD6Vr1M/KwknSw6kJOz41tvGMlwWeClHBtYKTbHMki1PsLZnxKpXMPbTKv9b3pjQu3REib96A== + dependencies: + chalk "^3.0.0" + cli-cursor "^3.1.0" + cli-spinners "^2.2.0" + is-interactive "^1.0.0" + log-symbols "^3.0.0" + mute-stream "0.0.8" + strip-ansi "^6.0.0" + wcwidth "^1.0.1" + os-tmpdir@~1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" integrity sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ= +p-limit@^2.2.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.3.0.tgz#3dd33c647a214fdfffd835933eb086da0dc21db1" + integrity sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w== + dependencies: + p-try "^2.0.0" + +p-limit@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-3.0.2.tgz#1664e010af3cadc681baafd3e2a437be7b0fb5fe" + integrity sha512-iwqZSOoWIW+Ew4kAGUlN16J4M7OB3ysMLSZtnhmqx7njIHFPlxWBX8xo3lVTyFVq6mI/lL9qt2IsN1sHwaxJkg== + dependencies: + p-try "^2.0.0" + +p-locate@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-4.1.0.tgz#a3428bb7088b3a60292f66919278b7c297ad4f07" + integrity sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A== + dependencies: + p-limit "^2.2.0" + +p-locate@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-5.0.0.tgz#83c8315c6785005e3bd021839411c9e110e6d834" + integrity sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw== + dependencies: + p-limit "^3.0.2" + +p-try@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6" + integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ== + parent-module@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/parent-module/-/parent-module-1.0.1.tgz#691d2709e78c79fae3a156622452d00762caaaa2" @@ -717,6 +1170,11 @@ parent-module@^1.0.0: dependencies: callsites "^3.0.0" +path-exists@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3" + integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w== + path-is-absolute@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" @@ -732,15 +1190,25 @@ path-parse@^1.0.6: resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.6.tgz#d62dbb5679405d72c4737ec58600e9ddcf06d24c" integrity sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw== +path-type@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b" + integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw== + +picomatch@^2.0.5, picomatch@^2.2.1: + version "2.2.2" + resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.2.2.tgz#21f333e9b6b8eaff02468f5146ea406d345f4dad" + integrity sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg== + prelude-ls@~1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54" integrity sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ= -prettier@^1.18.2: - version "1.19.1" - resolved "https://registry.yarnpkg.com/prettier/-/prettier-1.19.1.tgz#f7d7f5ff8a9cd872a7be4ca142095956a60797cb" - integrity sha512-s7PoyDv/II1ObgQunCbB9PdLmUcBZcnWOcxDh7O0N/UwDEsHyqkW+Qh28jW+mVuCdx7gLB0BotYI1Y6uI9iyew== +prettier@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.1.1.tgz#d9485dd5e499daa6cb547023b87a6cf51bee37d6" + integrity sha512-9bY+5ZWCfqj3ghYBLxApy2zf6m+NJo5GzmLTpr9FsApsfjriNnS2dahWReHMi7qNPhhHl9SYHJs2cHZLgexNIw== progress@^2.0.0: version "2.0.3" @@ -757,12 +1225,27 @@ regexpp@^2.0.1: resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-2.0.1.tgz#8d19d31cf632482b589049f8281f93dbcba4d07f" integrity sha512-lv0M6+TkDVniA3aD1Eg0DVpfU/booSu7Eev3TDO/mZKHBfVjgCGTV4t4buppESEYDtkArYFOxTJWv6S5C+iaNw== +require-directory@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" + integrity sha1-jGStX9MNqxyXbiNE/+f3kqam30I= + +require-main-filename@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-2.0.0.tgz#d0b329ecc7cc0f61649f62215be69af54aa8989b" + integrity sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg== + +requireindex@~1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/requireindex/-/requireindex-1.1.0.tgz#e5404b81557ef75db6e49c5a72004893fe03e162" + integrity sha1-5UBLgVV+91225JxacgBIk/4D4WI= + resolve-from@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6" integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g== -resolve@^1.12.0: +resolve@^1.12.0, resolve@^1.17.0, resolve@^1.8.1: version "1.17.0" resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.17.0.tgz#b25941b54968231cc2d1bb76a79cb7f2c0bf8444" integrity sha512-ic+7JYiV8Vi2yzQGFWOkiZD5Z9z7O2Zhm9XMaTxdJExKasieFCr+yXZ/WmXsckHiKl12ar0y6XiXDx3m4RHn1w== @@ -777,6 +1260,11 @@ restore-cursor@^3.1.0: onetime "^5.1.0" signal-exit "^3.0.2" +reusify@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76" + integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw== + rimraf@2.6.3: version "2.6.3" resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.3.tgz#b2d104fe0d8fb27cf9e0a1cda8262dd3833c6cab" @@ -784,11 +1272,23 @@ rimraf@2.6.3: dependencies: glob "^7.1.3" +rimraf@^3.0.0: + version "3.0.2" + resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a" + integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA== + dependencies: + glob "^7.1.3" + run-async@^2.4.0: version "2.4.1" resolved "https://registry.yarnpkg.com/run-async/-/run-async-2.4.1.tgz#8440eccf99ea3e70bd409d49aab88e10c189a455" integrity sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ== +run-parallel@^1.1.9: + version "1.1.9" + resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.1.9.tgz#c9dd3a7cf9f4b2c4b6244e173a6ed866e61dd679" + integrity sha512-DEqnSRTDw/Tc3FXf49zedI638Z9onwUotBMiUFKmrO2sdFKIbXamXGQ3Axd4qgphxKB4kw/qP1w5kTxnfU1B9Q== + rxjs@^6.5.3: version "6.5.5" resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-6.5.5.tgz#c5c884e3094c8cfee31bf27eb87e54ccfc87f9ec" @@ -811,6 +1311,11 @@ semver@^6.1.2: resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== +set-blocking@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" + integrity sha1-BF+XgtARrppoA93TgrJDkrPYkPc= + shebang-command@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea" @@ -828,6 +1333,16 @@ signal-exit@^3.0.2: resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.3.tgz#a1410c2edd8f077b08b4e253c8eacfcaf057461c" integrity sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA== +simple-html-tokenizer@^0.5.9: + version "0.5.9" + resolved "https://registry.yarnpkg.com/simple-html-tokenizer/-/simple-html-tokenizer-0.5.9.tgz#1a83fe97f5a3e39b335fddf71cfe9b0263b581c2" + integrity sha512-w/3FEDN94r4JQ9WoYrIr8RqDIPZdyNkdpbK9glFady1CAEyD97XWCv8HFetQO21w81e7h7Nh59iYTyG1mUJftg== + +slash@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634" + integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q== + slice-ansi@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-2.1.0.tgz#cacd7693461a637a5788d92a7dd4fba068e81636" @@ -837,11 +1352,23 @@ slice-ansi@^2.1.0: astral-regex "^1.0.0" is-fullwidth-code-point "^2.0.0" +snake-case@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/snake-case/-/snake-case-2.1.0.tgz#41bdb1b73f30ec66a04d4e2cad1b76387d4d6d9f" + integrity sha1-Qb2xtz8w7GagTU4srRt2OH1NbZ8= + dependencies: + no-case "^2.2.0" + source-map@^0.5.0: version "0.5.7" resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" integrity sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w= +source-map@^0.6.1: + version "0.6.1" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" + integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== + sprintf-js@~1.0.2: version "1.0.3" resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" @@ -856,7 +1383,7 @@ string-width@^3.0.0: is-fullwidth-code-point "^2.0.0" strip-ansi "^5.1.0" -string-width@^4.1.0: +string-width@^4.1.0, string-width@^4.2.0: version "4.2.0" resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.0.tgz#952182c46cc7b2c313d1596e623992bd163b72b5" integrity sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg== @@ -925,11 +1452,25 @@ tmp@^0.0.33: dependencies: os-tmpdir "~1.0.2" +tmp@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.2.1.tgz#8457fc3037dcf4719c251367a1af6500ee1ccf14" + integrity sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ== + dependencies: + rimraf "^3.0.0" + to-fast-properties@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e" integrity sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4= +to-regex-range@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4" + integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== + dependencies: + is-number "^7.0.0" + tslib@^1.9.0: version "1.13.0" resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.13.0.tgz#c881e13cc7015894ed914862d276436fa9a47043" @@ -952,6 +1493,11 @@ type-fest@^0.8.1: resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.8.1.tgz#09e249ebde851d3b1e48d27c105444667f17b83d" integrity sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA== +uglify-js@^3.1.4: + version "3.10.3" + resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.10.3.tgz#f0d2f99736c14de46d2d24649ba328be3e71c3bf" + integrity sha512-Lh00i69Uf6G74mvYpHCI9KVVXLcHW/xu79YTvH7Mkc9zyKUeSPz0owW0dguj0Scavns3ZOh3wY63J0Zb97Za2g== + uri-js@^4.2.2: version "4.2.2" resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.2.2.tgz#94c540e1ff772956e2299507c010aea6c8838eb0" @@ -964,6 +1510,23 @@ v8-compile-cache@^2.0.3: resolved "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.1.0.tgz#e14de37b31a6d194f5690d67efc4e7f6fc6ab30e" integrity sha512-usZBT3PW+LOjM25wbqIlZwPeJV+3OSz3M1k1Ws8snlW39dZyYL9lOGC5FgPVHfk0jKmjiDV8Z0mIbVQPiwFs7g== +v8-compile-cache@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.1.1.tgz#54bc3cdd43317bca91e35dcaf305b1a7237de745" + integrity sha512-8OQ9CL+VWyt3JStj7HX7/ciTL2V3Rl1Wf5OL+SNTm0yK1KvtReVulksyeRnCANHHuUxHlQig+JJDlUhBt1NQDQ== + +wcwidth@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/wcwidth/-/wcwidth-1.0.1.tgz#f0b0dcf915bc5ff1528afadb2c0e17b532da2fe8" + integrity sha1-8LDc+RW8X/FSivrbLA4XtTLaL+g= + dependencies: + defaults "^1.0.3" + +which-module@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a" + integrity sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho= + which@^1.2.9: version "1.3.1" resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a" @@ -976,6 +1539,25 @@ word-wrap@~1.2.3: resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.3.tgz#610636f6b1f703891bd34771ccb17fb93b47079c" integrity sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ== +wordwrap@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb" + integrity sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus= + +workerpool@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/workerpool/-/workerpool-6.0.0.tgz#85aad67fa1a2c8ef9386a1b43539900f61d03d58" + integrity sha512-fU2OcNA/GVAJLLyKUoHkAgIhKb0JoCpSjLC/G2vYKxUjVmQwGbRVeoPJ1a8U4pnVofz4AQV5Y/NEw8oKqxEBtA== + +wrap-ansi@^6.2.0: + version "6.2.0" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-6.2.0.tgz#e9393ba07102e6c91a3b221478f0257cd2856e53" + integrity sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA== + dependencies: + ansi-styles "^4.0.0" + string-width "^4.1.0" + strip-ansi "^6.0.0" + wrappy@1: version "1.0.2" resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" @@ -987,3 +1569,33 @@ write@1.0.3: integrity sha512-/lg70HAjtkUgWPVZhZcm+T4hkL8Zbtp1nFNOn3lRrxnlv50SRBv7cR7RqR+GMsd3hUXy9hWBo4CHTbFTcOYwig== dependencies: mkdirp "^0.5.1" + +y18n@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/y18n/-/y18n-4.0.0.tgz#95ef94f85ecc81d007c264e190a120f0a3c8566b" + integrity sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w== + +yargs-parser@^18.1.2: + version "18.1.3" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-18.1.3.tgz#be68c4975c6b2abf469236b0c870362fab09a7b0" + integrity sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ== + dependencies: + camelcase "^5.0.0" + decamelize "^1.2.0" + +yargs@^15.4.1: + version "15.4.1" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-15.4.1.tgz#0d87a16de01aee9d8bec2bfbf74f67851730f4f8" + integrity sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A== + dependencies: + cliui "^6.0.0" + decamelize "^1.2.0" + find-up "^4.1.0" + get-caller-file "^2.0.1" + require-directory "^2.1.1" + require-main-filename "^2.0.0" + set-blocking "^2.0.0" + string-width "^4.2.0" + which-module "^2.0.0" + y18n "^4.0.0" + yargs-parser "^18.1.2"